/* 御前论坛 PWA · 质感对齐原版议政厅 + Project Signet 背景 */
:root{
  /* —— 原版议政厅配色（皇上指定的质感基准）—— */
  --neon:#22D3EE; --neon2:#A78BFA; --coral:#FF6B4A;
  --glass:rgba(255,255,255,0.06); --glass-border:rgba(34,211,238,0.28);
  --ink:#E8F4FF; --muted:#8FA6C4;
  /* —— Signet 专属（皇上/金）—— */
  --gold:#FFD76E; --gold-bd:rgba(255,215,110,.45);
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{
  background:#02040d; color:var(--ink); min-height:100vh;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  -webkit-font-smoothing:antialiased;
  padding-bottom:env(safe-area-inset-bottom); overflow-x:hidden;
}

/* ===== 背景：Project Signet 视觉（bg.jpg）+ 原版签名「扫光」动画 + 暗角 ===== */
#bg{position:fixed;inset:0;z-index:-2;background:url('assets/bg.jpg') center/cover no-repeat #02040d}
#bg::before{
  content:"";position:fixed;inset:0;width:140px;z-index:-1;
  background:linear-gradient(90deg,transparent,rgba(34,211,238,0.10),transparent);
  animation:sweep 10s ease-in-out infinite alternate;
}
@keyframes sweep{ from{transform:translateX(-140px)} to{transform:translateX(100vw)} }
.scrim{
  position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(circle at 50% 30%, rgba(3,6,16,0.30), rgba(3,6,16,0.70)),
             linear-gradient(180deg, rgba(3,6,16,0.62), rgba(3,6,16,0.84));
}
#starfield{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.dot{
  position:absolute;bottom:-12px;border-radius:50%;
  background:radial-gradient(circle at 40% 40%, rgba(255,255,255,.9), rgba(34,211,238,.55) 45%, rgba(34,211,238,0) 72%);
  box-shadow:0 0 6px rgba(34,211,238,.55);
  animation-name:float;animation-timing-function:linear;animation-iteration-count:infinite;will-change:transform,opacity;
}
@keyframes float{
  0%{transform:translate3d(0,20vh,0) scale(.55);opacity:0}
  10%{opacity:.85}
  60%{transform:translate3d(14px,-40vh,0) scale(1)}
  88%{opacity:.3}
  100%{transform:translate3d(-10px,-118vh,0) scale(1.2);opacity:0}
}
@media (prefers-reduced-motion: reduce){ .dot,.bg::before,.scrim::before{animation:none} #bg::before{display:none} }

/* ===== 顶栏（对齐原版 header 质感） ===== */
.app{position:relative;z-index:2;width:100%;max-width:560px;margin:0 auto;padding:0 0 48px}
.bar{
  position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:10px;
  padding:16px 16px 12px;margin:0 0 14px;
  background:rgba(5,10,25,0.40);backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(34,211,238,0.18);
}
.brand{
  display:flex;align-items:center;gap:9px;
  font-size:16px;font-weight:700;letter-spacing:2px;color:#fff;
  text-shadow:0 0 12px rgba(34,211,238,0.8), 0 0 26px rgba(34,211,238,0.4);
}
.brand-logo{width:22px;height:22px;border-radius:7px;box-shadow:0 0 10px rgba(34,211,238,.45)}
.brand-sub{font-size:16px;font-weight:600;letter-spacing:2px;color:var(--neon);font-family:ui-monospace,monospace;-webkit-text-fill-color:var(--neon)}
.spacer{flex:1}

/* ===== Project Signet 品牌横幅（保留，加辉光对齐整体气质） ===== */
.hero{
  position:relative;overflow:hidden;text-align:center;
  padding:26px 12px 20px;margin-bottom:16px;
  border:1px solid rgba(34,211,238,0.16);border-radius:18px;
  background:linear-gradient(180deg, rgba(10,22,48,.45), rgba(8,15,36,.30));
  backdrop-filter:blur(10px);
  box-shadow:0 0 26px rgba(34,211,238,0.10);
}
.hero::before{
  content:'';position:absolute;top:-45%;left:50%;transform:translateX(-50%);
  width:460px;height:230px;border-radius:50%;
  background:radial-gradient(closest-side, rgba(34,211,238,.28), transparent);
  filter:blur(8px);pointer-events:none;
}
.hero-title{
  position:relative;font-size:40px;font-weight:900;letter-spacing:10px;text-indent:10px;
  background:linear-gradient(90deg,#9fe8ff,#22D3EE 60%,#7fe3ff);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 0 18px rgba(34,211,238,0.45));
}
.hero-slogan{position:relative;margin-top:4px;font-size:12.5px;letter-spacing:2.5px;color:#bcd8ff}
.hero-cn{position:relative;margin-top:9px;font-size:15px;font-weight:800;letter-spacing:7px;text-indent:7px;color:var(--gold);
  text-shadow:0 0 14px rgba(255,215,110,.4)}
.hero-code{position:relative;margin-top:6px;font-size:11px;letter-spacing:2px;color:var(--muted);font-family:ui-monospace,monospace}

/* ===== 按钮（对齐原版 .btn 药丸 + 内外辉光） ===== */
.btn{font:inherit;color:var(--neon);background:rgba(34,211,238,0.10);
  border:1px solid var(--neon);border-radius:999px;padding:8px 14px;font-size:13px;cursor:pointer;
  box-shadow:0 0 14px rgba(34,211,238,0.25) inset, 0 0 10px rgba(34,211,238,0.2);
  -webkit-tap-highlight-color:transparent}
.btn:active{background:rgba(34,211,238,0.20)}
.btn-primary{background:var(--neon);color:#04121a;font-weight:600;border-color:transparent;box-shadow:0 0 16px rgba(34,211,238,0.5)}
.btn.coral{color:var(--coral);border-color:var(--coral);box-shadow:0 0 14px rgba(255,107,74,0.25) inset}
.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}

/* ===== 卡片（对齐原版 .card 玻璃 + 每卡外发光） ===== */
.card{
  background:var(--glass);border:1px solid var(--glass-border);border-radius:16px;
  padding:14px;margin-bottom:12px;backdrop-filter:blur(14px);
  box-shadow:0 0 18px rgba(34,211,238,0.08);
}
.row{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.replies,.time{font-size:11px;color:var(--muted)}
.ttl{font-size:15px;font-weight:600;color:#fff;line-height:1.4;margin:0 0 10px}
.meta{display:flex;gap:8px;align-items:center}
.chip{font-size:12px;color:var(--neon);border:1px solid rgba(34,211,238,0.4);
  background:rgba(34,211,238,0.07);padding:2px 10px;border-radius:999px;font-family:ui-monospace,monospace}
.chip.v{color:var(--neon2);border-color:rgba(167,139,250,0.45);background:rgba(167,139,250,0.08)}
.sec-title{font-size:13px;font-weight:800;color:var(--neon);letter-spacing:.6px;margin:14px 0 8px;
  text-shadow:0 0 10px rgba(34,211,238,0.3)}

/* 徽章（对齐原版 OPEN 荧光绿 + 内发光） */
.badge{font-size:11px;padding:3px 10px;border-radius:999px;letter-spacing:1px;font-family:ui-monospace,monospace}
.badge.open{color:#7CFFB2;border:1px solid rgba(124,255,178,0.5);background:rgba(124,255,178,0.08);box-shadow:0 0 10px rgba(124,255,178,0.25)}
.badge.closed{color:var(--muted);border:1px solid rgba(143,166,196,0.4);background:rgba(143,166,196,0.06)}
.badge.king{color:#2a1a00;background:linear-gradient(135deg,var(--gold),#ffb03a);border-color:transparent;font-weight:800}

/* 主帖 / 评论（对齐原版 .post / .cmt） */
.post{border-left:3px solid var(--neon);padding:4px 0 4px 12px;margin-bottom:4px}
.body-text{white-space:pre-wrap;word-break:break-word;font-size:13px;line-height:1.65;color:#cfe6ff}
.post .body,.cmt .body{font-size:13px;color:#cfe6ff;line-height:1.65;white-space:pre-wrap;word-break:break-word}
.cmt{background:var(--glass);border:1px solid rgba(167,139,250,0.28);border-radius:14px;padding:11px 13px;margin-bottom:10px}
.cmt .meta{margin-bottom:6px}

/* 一键复制正文（靠右小按钮，不抢内容注意力） */
.copybtn{
  margin-left:auto; flex:0 0 auto;
  font:inherit; font-size:11.5px; line-height:1;
  padding:5px 11px; border-radius:999px; cursor:pointer;
  color:var(--neon); background:rgba(34,211,238,0.08);
  border:1px solid rgba(34,211,238,0.45);
  transition:background .15s, border-color .15s, color .15s;
  white-space:nowrap;
}
.copybtn:hover{background:rgba(34,211,238,0.18); border-color:var(--neon)}
.copybtn:active{transform:translateY(1px)}
.copybtn.ok{color:#7CFFB2; border-color:rgba(124,255,178,0.6); background:rgba(124,255,178,0.12)}

/* 皇上专属整理（沿用 composer 质感） */
.king-only{display:none}
body.king .king-only{display:block}
.btn.danger{color:var(--coral);border-color:var(--coral);box-shadow:0 0 14px rgba(255,107,74,0.25) inset}

/* 输入框（对齐原版 composer） */
.composer{border:1px solid var(--glass-border);border-radius:14px;padding:12px;background:rgba(5,10,25,0.40);margin-top:6px}
textarea,input{width:100%;font:inherit;color:var(--ink);font-size:13px;
  background:rgba(255,255,255,0.03);border:1px solid rgba(34,211,238,0.3);border-radius:10px;padding:9px 11px;min-height:48px;outline:none}
textarea:disabled{opacity:.5}

/* 横幅 / 提示（对齐玻璃 + 辉光） */
.banner{background:rgba(34,211,238,0.08);border:1px solid var(--glass-border);color:#bcd8ff;
  font-size:12.5px;line-height:1.65;border-radius:12px;padding:10px 12px;margin-bottom:14px;
  box-shadow:0 0 14px rgba(34,211,238,0.10)}
.notice{background:rgba(167,139,250,0.08);border:1px solid rgba(167,139,250,0.28);color:#cdbcff;
  font-size:12px;line-height:1.6;border-radius:10px;padding:9px 11px}
.king-only.banner,.banner.kingonly{background:rgba(255,215,110,0.10);border-color:var(--gold-bd);color:#ffe0a8}
.meta.identity{font-size:12px;color:var(--muted);display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.hero + .banner{margin-top:0}

/* 登录弹层（对齐原版 .modal 大辉光） */
.modal{position:fixed;inset:0;z-index:50;display:none;align-items:center;justify-content:center;
  background:rgba(2,4,13,0.70);backdrop-filter:blur(4px);padding:20px}
.modal.show{display:flex}
.sheet{width:100%;max-width:480px;background:#070b22;border:1px solid var(--glass-border);
  border-radius:18px;padding:18px;box-shadow:0 0 40px rgba(34,211,238,0.2)}

/* ===== 桌面端默认放大显示比例（皇上 2026-10-20 钦定 ≈1.6x）=====
   只缩放 .app 内容列与登录弹层，背景(#bg/scrim/星尘)仍全屏铺满；
   手机端(<768px)不生效，自然拉伸接近屏宽。
   觉得大了/小了，只调 zoom 一个数即可。 */
@media (min-width: 768px){
  .app{ zoom: 1.6; }
  .modal .sheet{ zoom: 1.6; }
}
