﻿/* /styles/common.css - 通用样式（简洁、圆角、响应式） */
:root{
  --bg:#f4f7fb;
  --card:#ffffff;
  --muted:#6b7280;
  --accent:#2563eb;
  --radius:12px;
  --shadow: 0 6px 18px rgba(17,24,39,0.06);
  --max-width:980px;
  --gap:16px;
  font-family: Inter, "Helvetica Neue", Arial, sans-serif;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  /* 背景保持全页渐变（视觉基底） */
  background:linear-gradient(180deg,#f7fafc 0%, var(--bg) 100%);
  color:#0f172a;
  /* 由 page-wrapper/page-content 控制整体布局，不在 body 上重复居中 */
  padding:0;
  font-size:16px;
  line-height:1.45;
}

/* container: 仅负责窄列宽度（内边距移动到 page-content） */
.container{
  width:100%;
  max-width:var(--max-width);
  padding:0;             /* 关键：移除 container 内边距，避免与 page-content 重复 */
  margin:0 auto;
}

/* header */
.header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:18px;
}
.brand{
  display:flex;
  gap:12px;
  align-items:center;
}
.logo{
  width:52px;
  height:52px;
  border-radius:12px;
  background:linear-gradient(135deg,var(--accent),#7c3aed);
  display:flex;
  align-items:center;
  justify-content:center;
  color:white;
  font-weight:700;
  font-size:18px;
  box-shadow:var(--shadow);
}
.site-title{font-weight:700;font-size:18px}
.nav{display:flex;gap:8px;align-items:center}

/* cards */
/* 关键：让卡片宽度填满容器，避免与 header / container 宽度不一致 */
.card{
  background:var(--card);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:14px;
  width:100%;
  max-width:100%;
  margin:0 auto;
}

/* buttons */
.btn{
  display:inline-block;
  padding:8px 12px;
  border-radius:10px;
  text-decoration:none;
  border:none;
  cursor:pointer;
  font-weight:600;
}
.btn-primary{background:var(--accent);color:white}
.btn-ghost{background:transparent;color:var(--accent);border:1px solid rgba(37,99,235,0.12)}

/* layout helpers */
.row{display:flex;gap:12px;align-items:center}
.col{display:flex;flex-direction:column;gap:12px}
.split{display:grid;grid-template-columns:1fr 340px;gap:12px}
@media (max-width:880px){ .split{grid-template-columns:1fr} }

/* chat */
.chat-window{
  height:60vh;
  min-height:320px;
  overflow:auto;
  padding:12px;
  background:linear-gradient(180deg,#fbfdff,#ffffff);
  border-radius:10px;
  border:1px solid rgba(15,23,42,0.04);
  white-space:pre-wrap;
  font-family:Menlo, monospace;
  font-size:14px;
}
.msg-area{display:flex;gap:8px}
.msg-input{flex:1;padding:10px;border-radius:10px;border:1px solid rgba(15,23,42,0.06);}

/* notepad */
.note{
  border-radius:10px;
  padding:12px;
  border:1px solid rgba(15,23,42,0.04);
}
.note-title{font-weight:700; margin-bottom:6px}
.note-meta{font-size:12px;color:var(--muted)}

/* small */
.small{font-size:13px;color:var(--muted)}
.center{text-align:center}
.footer{margin-top:18px;color:var(--muted);font-size:13px}

/* links */
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}

/* ---------- Sticky / flow footer 支持 ---------- */
/* page-wrapper: 保证视口高度内将 footer 推到底部，内容超出时 footer 跟随内容 */
.page-wrapper{
  min-height:100vh;             /* 至少占满一屏 */
  display:flex;
  flex-direction:column;
  align-items:stretch;          /* 背景面板横向伸开以适配视口 */
}

/* 主体 visual panel：横向占满，并以响应式内边距决定“内容与视口边缘”的距离 */
.page-content{
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:center;

  /* 让主体占据剩余空间，以便 footer 在短页时被推到底部 */
  flex: 1 0 auto;

  /* 响应式内边距：视口小则使用像素为主，视口大则按百分比扩大 */
  padding-block: clamp(20px, 6vh, 80px);     /* 上下内边距：min 20px, ideal 6vh, max 80px */
  padding-inline: clamp(16px, 6vw, 120px);   /* 左右内边距：min 16px, ideal 6vw, max 120px */

  box-sizing:border-box;

  /* 背景视觉（轻微渐变），确保视觉面板不会与窄列内容显得不协调 */
  background: linear-gradient(180deg, rgba(247,250,252,0.95) 0%, rgba(244,247,251,0.8) 100%);

  /* 可选视觉增强（卡片式）：圆角 + 轻阴影；若希望背景贴边可注释掉以下两行 */
  border-radius: calc(var(--radius) + 4px);
  box-shadow: 0 8px 28px rgba(17,24,39,0.04);
}

/* container 保持窄列布局（位于视觉面板内部），不再有内边距 */
.container{
  width:100%;
  max-width:var(--max-width);
  padding:0;
}

/* 版权栏样式（灰色、居中、居底） */
.site-footer{
  width:100%;
  max-width:var(--max-width);
  height:48px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--muted);
  font-size:14px;
  box-sizing:border-box;
  padding:8px 16px;
  margin:12px auto 0;   /* 关键：水平居中且在主面板之下 */
  background:transparent;
}

/* 在超窄屏幕上调整 footer 高度与文字大小 */
@media (max-width:420px){
  .site-footer{height:56px;font-size:13px;padding:10px}
  .page-content{ border-radius:10px; padding-inline:14px; padding-block:18px; box-shadow:none; }
}