/* ============================================================
   设计令牌与基础样式 —— 展示站与后台共用
   改这里，前后台视觉同步变化
   ============================================================ */

:root{
  /* 色彩 */
  --ink:#07070a;
  --ink-2:#0f0f14;
  --ink-3:#16161c;
  --text:#e8e6e1;
  --muted:#8a8781;
  --dim:#5c5a57;
  --accent:#E8452C;
  --line:rgba(232,230,225,.10);
  --line-strong:rgba(232,230,225,.18);

  /* 语义色 */
  --ok:#4CAF7D;
  --warn:#D9A05B;
  --err:#E8452C;

  /* 字体 */
  --serif:"Songti SC","STSong","Noto Serif SC","Source Han Serif SC",SimSun,serif;
  --sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Arial,sans-serif;
  --mono:"SFMono-Regular",Menlo,Consolas,"Courier New",monospace;

  /* 动效 */
  --ease:cubic-bezier(.22,.61,.36,1);
  --fast:.28s;
  --base:.42s;
  --slow:.8s;

  /* 尺度 */
  --gap:14px;
  --radius:3px;
  --radius-lg:12px;
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  background:var(--ink);
  color:var(--text);
  font-family:var(--sans);
  font-weight:300;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
  line-height:1.7;
  min-height:100vh;
}
::selection{background:var(--accent);color:#fff;}

/* 全局胶片颗粒 —— 品牌质感的一部分，后台同样保留 */
body::after{
  content:'';
  position:fixed;inset:0;z-index:9999;pointer-events:none;
  opacity:.055;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E");
}

a{color:inherit;text-decoration:none;}
img{display:block;max-width:100%;}
button{font-family:inherit;cursor:pointer;}

/* ---------- 通用文字 ---------- */
.eyebrow{
  font-size:10px;letter-spacing:.42em;color:var(--accent);
  text-transform:uppercase;
}
.serif{font-family:var(--serif);}
.mono{font-family:var(--mono);}

/* ---------- 按钮 ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:11px 22px;border-radius:100px;
  border:1px solid var(--line-strong);
  background:transparent;color:var(--text);
  font-size:12px;letter-spacing:.16em;font-weight:300;
  transition:border-color var(--base) var(--ease),background var(--base) var(--ease),color var(--base) var(--ease);
}
.btn:hover{border-color:var(--accent);color:var(--accent);}
.btn-primary{
  background:var(--accent);border-color:var(--accent);color:#fff;
}
.btn-primary:hover{background:#ff5238;border-color:#ff5238;color:#fff;}
.btn-sm{padding:7px 14px;font-size:11px;letter-spacing:.1em;}
.btn:disabled{opacity:.4;cursor:not-allowed;}

/* ---------- 表单 ---------- */
.field{margin-bottom:20px;}
.field label{
  display:block;font-size:10.5px;letter-spacing:.2em;color:var(--dim);
  margin-bottom:9px;
}
.field .hint{font-size:11px;color:var(--dim);margin-top:7px;letter-spacing:.02em;}

input[type=text],input[type=password],input[type=number],input[type=email],textarea,select{
  width:100%;padding:12px 14px;
  background:var(--ink-2);
  border:1px solid var(--line);
  border-radius:var(--radius);
  color:var(--text);
  font-family:var(--sans);font-size:13.5px;font-weight:300;
  transition:border-color var(--base) var(--ease),background var(--base) var(--ease);
}
input:focus,textarea:focus,select:focus{
  outline:none;border-color:var(--accent);background:#0c0c11;
}
textarea{resize:vertical;min-height:96px;line-height:1.8;}
::placeholder{color:#4a4845;}
input[type=color]{
  width:56px;height:38px;padding:2px;
  background:var(--ink-2);border:1px solid var(--line);border-radius:var(--radius);
}

/* ---------- 状态徽章 ---------- */
.badge{
  display:inline-flex;align-items:center;gap:6px;
  padding:4px 10px;border-radius:100px;
  font-size:10.5px;letter-spacing:.12em;
  border:1px solid var(--line-strong);color:var(--muted);
  white-space:nowrap;
}
.badge::before{content:'';width:5px;height:5px;border-radius:50%;background:currentColor;}
.badge.ok{color:var(--ok);border-color:rgba(76,175,125,.4);}
.badge.warn{color:var(--warn);border-color:rgba(217,160,91,.4);}
.badge.err{color:var(--err);border-color:rgba(232,69,44,.4);}
.badge.accent{color:var(--accent);border-color:rgba(232,69,44,.4);}

/* ---------- 提示条 ---------- */
.notice{
  padding:12px 16px;border-radius:var(--radius);
  border-left:2px solid var(--accent);
  background:rgba(232,69,44,.07);
  font-size:12.5px;color:#c9c2bc;line-height:1.75;
}
.notice.err{border-left-color:var(--err);background:rgba(232,69,44,.1);}
.notice.ok{border-left-color:var(--ok);background:rgba(76,175,125,.08);}

/* ---------- 进度条 ---------- */
.bar{
  height:3px;background:rgba(255,255,255,.07);border-radius:100px;overflow:hidden;
}
.bar > i{
  display:block;height:100%;background:var(--accent);
  border-radius:100px;transition:width .5s var(--ease);
}

/* ---------- 入场动画 ---------- */
.reveal{opacity:0;transform:translateY(30px);transition:opacity 1s var(--ease),transform 1s var(--ease);}
.reveal.in{opacity:1;transform:none;}

/* 尊重系统减弱动效设置 */
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;}
  html{scroll-behavior:auto;}
}
