/* ===========================================================
   不存在的同学 · ARG
   assets/style.css  —  全局基座 + 各伪站点皮肤
   =========================================================== */

/* ---------- 基座 ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; min-height:100dvh;
  font-family:"Outfit","Noto Sans SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif;
  font-size:15px; line-height:1.7; color:var(--fg); background:var(--bg);
  -webkit-font-smoothing:antialiased;
  background-image:var(--bgimg,none);
  background-attachment:fixed;
}
a{color:var(--accent); text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4{font-family:"Noto Serif SC","Songti SC","SimSun",serif; line-height:1.35; margin:0 0 .5em}
p{margin:0 0 1em}
img{max-width:100%}
code,kbd,.mono{font-family:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace}
button{font-family:inherit}
.wrap{max-width:880px; margin:0 auto; padding:26px 20px 120px}
.wrap.narrow{max-width:660px}
.wrap.wide{max-width:1080px}
.center{text-align:center}
.hidden{display:none !important}
.rule{height:1px; background:var(--border); border:0; margin:22px 0}
.muted{color:var(--muted)}
.small{font-size:13px}
.tiny{font-size:11.5px}
kbd{
  background:var(--panel); border:1px solid var(--border); border-bottom-width:2px;
  border-radius:5px; padding:1px 6px; font-size:12px;
}
.nowrap{white-space:nowrap}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* 按钮 */
.btn{
  display:inline-flex; align-items:center; gap:7px; cursor:pointer;
  border:1px solid var(--border); background:var(--panel); color:var(--fg);
  padding:8px 15px; border-radius:8px; font-size:14px; line-height:1.2;
  transition:background .18s, border-color .18s, transform .1s, color .18s;
}
.btn:hover{background:var(--panel-hi); border-color:var(--accent); color:var(--accent); text-decoration:none}
.btn:active{transform:translateY(1px)}
.btn.primary{background:var(--accent); border-color:var(--accent); color:var(--bg); font-weight:600}
.btn.primary:hover{filter:brightness(1.08); color:var(--bg)}
.btn.sm{padding:5px 11px; font-size:13px}
.btn[disabled]{opacity:.45; cursor:not-allowed}
.btn svg{width:15px;height:15px;flex:none}

/* 提示 */
.notice{
  border-left:3px solid var(--accent); background:var(--accent-soft);
  padding:11px 15px; border-radius:0 9px 9px 0; margin:16px 0; font-size:14px;
}
.notice.bad{border-color:var(--danger); background:var(--danger-soft); color:var(--danger)}
.notice.good{border-color:var(--ok); background:var(--ok-soft); color:var(--ok)}
.notice b{color:var(--fg)}

/* 表单 */
input[type=text],input[type=password],input[type=number],textarea,select{
  background:var(--input-bg); border:1px solid var(--border); color:var(--fg);
  padding:9px 12px; border-radius:7px; font-size:14px; font-family:inherit; outline:none;
  transition:border-color .18s, box-shadow .18s;
}
input:focus,textarea:focus,select:focus{border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft)}
label{display:block; font-size:12.5px; color:var(--muted); margin:0 0 6px; letter-spacing:.04em}

/* ---------- 调查笔记（全局浮层） ---------- */
#pb-notes-fab{
  position:fixed; right:18px; bottom:18px; z-index:70;
  display:inline-flex; align-items:center; gap:8px;
  background:#1d2130; color:#e8e4db; border:1px solid rgba(255,255,255,.14);
  border-radius:99px; padding:9px 16px 9px 13px; cursor:pointer; font-size:13.5px;
  box-shadow:0 16px 40px -20px #000; transition:transform .16s, background .16s;
}
#pb-notes-fab:hover{background:#262c3d; transform:translateY(-2px)}
#pb-notes-fab svg{width:16px;height:16px}
#pb-notes-fab .cnt{
  background:var(--accent,#d9a441); color:#14161f; border-radius:99px;
  min-width:19px; height:19px; display:grid; place-items:center; font-size:11px; font-weight:700; padding:0 5px;
}
#pb-notes-panel{
  position:fixed; right:0; bottom:0; top:0; width:min(430px,100vw); z-index:80;
  background:#171a24; border-left:1px solid rgba(255,255,255,.1);
  transform:translateX(102%); transition:transform .3s cubic-bezier(.3,.9,.3,1);
  display:flex; flex-direction:column; box-shadow:-30px 0 70px -40px #000;
}
#pb-notes-panel.open{transform:none}
#pb-notes-head{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:15px 18px; border-bottom:1px solid rgba(255,255,255,.1);
}
#pb-notes-head h3{margin:0; font-size:16px; color:#e8e4db}
#pb-notes-body{flex:1; overflow-y:auto; padding:16px 18px 40px}
.note-item{
  border:1px solid rgba(255,255,255,.1); border-radius:10px; padding:11px 13px;
  margin-bottom:10px; background:rgba(255,255,255,.035);
}
.note-item .s{
  font-family:"JetBrains Mono",monospace; font-size:10px; letter-spacing:.18em;
  color:#d9a441; text-transform:uppercase;
}
.note-item .t{color:#e8e4db; font-size:14.5px; margin-top:4px; line-height:1.6}
.note-item .d{color:#9b978e; font-size:12.5px; margin-top:4px}
.note-item.fresh{border-color:rgba(217,164,65,.45); animation:pop .5s ease}
@keyframes pop{0%{transform:scale(.97);opacity:.4}100%{transform:none;opacity:1}}
#pb-notes-empty{color:#7c796f; font-size:14px; text-align:center; padding:36px 10px}
.hint-line{
  border:1px dashed rgba(217,164,65,.42); border-radius:10px; padding:11px 13px;
  color:#e0c489; font-size:13.5px; margin-bottom:10px; background:rgba(217,164,65,.08);
}
#toast,#pb-toast{
  position:fixed; left:50%; bottom:26px; transform:translate(-50%,20px);
  background:#262b3a; color:#eee; padding:10px 20px; border-radius:99px;
  font-size:14px; z-index:90; opacity:0; pointer-events:none;
  transition:opacity .25s, transform .25s; box-shadow:0 14px 34px -18px #000; max-width:92vw;
}
#toast.on,#pb-toast.on{opacity:1; transform:translate(-50%,0)}

/* 线索发现时的通用动效 */
@keyframes shimmer{0%{box-shadow:0 0 0 0 rgba(217,164,65,.5)}100%{box-shadow:0 0 0 14px rgba(217,164,65,0)}}
.found{animation:shimmer .8s ease-out}
.reveal{
  border:1px dashed var(--accent); border-radius:8px; padding:9px 12px; margin:10px 0;
  background:var(--accent-soft); font-family:"JetBrains Mono",monospace; letter-spacing:.08em;
}
.hidden-block{filter:blur(7px); opacity:.5; transition:filter .4s, opacity .4s; cursor:pointer}
.hidden-block:hover{filter:blur(2px); opacity:.8}
.hidden-block.open{filter:none; opacity:1; cursor:default}

/* ===========================================================
   皮肤 1：伪搜索引擎（入口）
   =========================================================== */
.site-search{
  --bg:#ffffff; --fg:#222222; --muted:#9195A3; --accent:#4e6ef2;
  --border:#e6e8ee; --panel:#ffffff; --panel-hi:#f5f7fa; --input-bg:#ffffff;
  --accent-soft:rgba(78,110,242,.1); --danger:#c4403a; --danger-soft:rgba(196,64,58,.08);
  --ok:#4a7c59; --ok-soft:rgba(74,124,89,.12);
  background:#ffffff;
}
/* 百度风格顶部：白底，右上小链接 + 登录按钮 */
.bd-top{
  display:flex; justify-content:flex-end; align-items:center; gap:24px;
  padding:14px 22px 0; background:#fff;
}
.bd-top-links{display:flex; gap:20px; font-size:13px;}
.bd-top-links a{color:#222; text-decoration:none;}
.bd-top-links a:hover{color:#4e6ef2;}
.bd-top-right{display:flex; align-items:center; gap:16px;}
.bd-setting{color:#222; font-size:13px; text-decoration:none;}
.bd-login{
  background:#4e6ef2; color:#fff; font-size:13px; padding:6px 18px; border-radius:6px;
  text-decoration:none; transition:background .15s;
}
.bd-login:hover{background:#4663d9;}

.hero{padding:20px 20px 26px; text-align:center; min-height:calc(100vh - 180px); display:flex; flex-direction:column; justify-content:center; align-items:center;}
.bd-logo{display:inline-block; margin-bottom:14px;}
.bd-logo svg{width:240px; height:auto; display:block;}
.bd-slogan{color:#9195A3; font-size:13.5px; margin:0 0 22px;}

.searchbox{
  max-width:640px; margin:0 auto; display:flex; align-items:stretch;
  background:#fff; border:2px solid #c4c7ce; border-radius:10px; overflow:visible;
  box-shadow:none; height:44px;
}
.searchbox:hover{border-color:#a7aab5;}
.searchbox:focus-within{border-color:#4e6ef2; box-shadow:0 1px 6px rgba(78,110,242,.18);}
.searchbox input{
  flex:1; border:0; border-radius:10px 0 0 10px; padding:0 14px 0 16px; font-size:16px; background:transparent;
  outline:none; height:100%;
}
.searchbox input:focus{box-shadow:none;}
.bd-camera{
  display:flex; align-items:center; padding:0 10px 0 0; cursor:pointer;
}
.searchbox button{
  border:0; background:#4e6ef2; color:#fff; padding:0 30px; cursor:pointer; font-size:16px;
  border-radius:0 8px 8px 0; height:100%; letter-spacing:2px; transition:background .15s;
}
.searchbox button:hover{background:#4663d9;}

/* 百度结果页分类 tab 行 */
.bd-tabs{
  max-width:640px; margin:18px auto 0; display:flex; gap:28px; font-size:14px;
  justify-content:center;
}
.bd-tabs a{color:#222; text-decoration:none; padding-bottom:6px;}
.bd-tabs a.on{color:#222; font-weight:600; border-bottom:2px solid #4e6ef2;}
.bd-tabs a:not(.on):hover{color:#4e6ef2;}

.sugg{margin:14px auto 0; max-width:640px; text-align:center; color:var(--muted); font-size:13px;}
.sugg b{color:var(--accent); cursor:pointer; border-bottom:1px dashed var(--accent);}
.results{margin-top:26px; text-align:left;}
.result{
  padding:13px 0; border-bottom:1px solid #f0f2f5;
}
.result .url{font-size:13px; color:#3ba35a; margin-bottom:3px; word-break:break-all;}
.result .ti{font-size:18px; color:#2440b3; margin-bottom:4px; display:inline-block;}
.result .ti:hover{color:#1a55b5; text-decoration:underline;}
.result .sn{color:#4a4a46; font-size:14px; line-height:1.65;}
.result .tag{
  display:inline-block; font-size:10.5px; letter-spacing:.1em; color:#fff; background:#8a97a8;
  border-radius:3px; padding:1px 6px; margin-left:7px; vertical-align:2px;
}
.result .tag.warn{background:#b4473a}
.result .tag.old{background:#7a6a4a}
.portal-foot{
  border-top:1px solid #f0f2f5; margin-top:40px; padding:26px 20px 60px;
  color:#9195A3; font-size:12.5px; text-align:center;
}
.friendlinks{display:flex; gap:18px; flex-wrap:wrap; margin:0 auto 14px; justify-content:center; max-width:640px;}
.friendlinks a{
  border:0; padding:0; background:transparent;
  font-size:12.5px; color:#9195A3;
}
.friendlinks a:hover{border-color:transparent; color:#4e6ef2; text-decoration:none;}
.friendlinks a.dead{color:#c8c9cc; text-decoration:line-through;}
.bd-icp{margin:6px 0; line-height:1.9;}
.bd-note{max-width:640px; margin:8px auto 0; line-height:1.8;}

/* ===========================================================
   皮肤 2：伪论坛
   =========================================================== */
.site-zhihu{
  --bg:#fff; --fg:#1a1a1a; --muted:#8590a0; --accent:#0084ff;
  --border:#ebebeb; --panel:#f6f6f6; --panel-hi:#eee; --input-bg:#fff;
  --accent-soft:rgba(0,132,255,.08); --danger:#c4403a; --danger-soft:rgba(196,64,58,.08);
  --ok:#3d7a4d; --ok-soft:rgba(61,122,77,.1);
  background:#fff;
}
.zh-head{
  border-bottom:1px solid var(--border); padding:9px 20px; display:flex; align-items:center;
  justify-content:space-between; gap:14px; position:sticky; top:0; background:rgba(255,255,255,.96);
  backdrop-filter:blur(8px); z-index:30;
}
.zh-logo{display:inline-flex; align-items:center; gap:7px; text-decoration:none;}
.zh-logo-mark{
  display:inline-grid; place-items:center; width:34px; height:34px; border-radius:6px;
  background:#056de8; color:#fff; font-weight:800; font-size:20px; font-family:"Microsoft YaHei",sans-serif;
}
.zh-logo-text{font-size:24px; font-weight:800; color:#056de8; letter-spacing:1px; font-family:"Microsoft YaHei",sans-serif;}
.zh-search{
  display:flex; align-items:center; gap:8px; border:1px solid #ebebeb; border-radius:6px;
  padding:7px 12px; background:#f6f6f6; flex:1; max-width:420px; color:#8590a6; font-size:13.5px;
}
.zh-search:hover{background:#fff; border-color:#056de8;}
.zh-user{display:flex; align-items:center; gap:9px; font-size:13.5px; color:#444}
.zh-follow{background:#056de8; color:#fff; border-color:#056de8;}
.zh-follow:hover{background:#045dc7; color:#fff; border-color:#045dc7;}
.avatar{
  width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#c9d6e8,#8fa3bd);
  display:grid;place-items:center;color:#fff;font-size:13px;font-weight:600;flex:none;
}
.avatar.pan{background:linear-gradient(135deg,#3b3b3b,#1d1d1d); position:relative; filter:none}
/* 旧头像低清晰度：只糊背景，文字仍要认得出人 */
.avatar.pan::after{
  content:''; position:absolute; inset:0; border-radius:50%;
  background:rgba(0,0,0,.18); backdrop-filter:blur(1.1px); -webkit-backdrop-filter:blur(1.1px);
  pointer-events:none;
}
.q-title{font-size:21px; line-height:1.45; margin:0 0 6px; font-weight:600}
.q-meta{color:var(--muted); font-size:13.5px; padding-bottom:14px; border-bottom:1px solid var(--border)}
.answer{padding:22px 0; border-bottom:1px solid var(--border)}
.answer-meta{display:flex; align-items:center; gap:11px; margin-bottom:16px}
.answer-meta .nm{font-size:15px; color:#1a1a1a; font-weight:600}
.answer-meta .tag{font-size:12.5px; color:var(--muted)}
.vote{display:flex; flex-direction:column; align-items:center; gap:4px; width:80px; flex:none}
.vote button{
  border:0; background:transparent; cursor:pointer; color:#b9c0c9; font-size:19px; line-height:1;
  padding:2px; transition:color .16s;
}
.vote button:hover{color:#0084ff}
.vote .n{font-size:13px; color:#8590a6}
/* 知乎风格赞同按钮：蓝色矩形 */
.zh-vote{align-items:stretch; width:auto}
.zh-up{
  background:#056de8 !important; color:#fff !important; border-radius:4px;
  padding:7px 16px !important; font-size:14px !important; display:inline-flex;
  flex-direction:row; align-items:center; justify-content:center; gap:6px;
  white-space:nowrap; min-width:80px;
}
.zh-up:hover{background:#045dc7 !important; color:#fff !important;}
.zh-caret{font-size:10px; opacity:.85}
.zh-vote .n{margin-top:5px; text-align:center; font-size:12.5px; color:#8590a6; white-space:nowrap}
.answer-body{font-size:16px; line-height:1.85; color:#1a1a1a; max-width:720px}
.answer-body p{margin:0 0 16px}
.answer-body blockquote{
  border-left:3px solid #ddd; margin:16px 0; padding:2px 0 2px 14px; color:#555; font-size:15px;
}
.more-btn{
  color:#0084ff; cursor:pointer; font-size:15px; display:inline-block; margin:2px 0 16px;
  border-bottom:1px solid transparent;
}
.more-btn:hover{border-bottom-color:#0084ff}
.zh-comments{margin-top:8px}
.comment{
  padding:13px 0; border-bottom:1px solid #f0f0f0; display:flex; gap:11px;
}
.comment .cbody{flex:1; font-size:14.5px; line-height:1.7}
.comment .cmeta{color:#b2b8bf; font-size:12.5px; margin-top:5px}
.comment .cmeta a{color:#999}
.pill{
  display:inline-block; background:#f0f2f7; color:#4a5c73; border-radius:20px;
  padding:1px 9px; font-size:12px; margin-right:5px;
}

/* ===========================================================
   皮肤 3：伪教务系统（2009 年代老系统）
   =========================================================== */
.site-school{
  --bg:#e9e5d6; --fg:#2a2a24; --muted:#6f6a55; --accent:#1f5c3d;
  --border:#bfb8a0; --panel:#f4f1e4; --panel-hi:#eae6d5; --input-bg:#fffef8;
  --accent-soft:rgba(31,92,61,.1); --danger:#a83b30; --danger-soft:rgba(168,59,48,.1);
  --ok:#1f5c3d; --ok-soft:rgba(31,92,61,.12);
  background-image:linear-gradient(rgba(0,0,0,.02) 1px,transparent 1px);
  background-size:100% 3px;
}
.sc-top{
  background:linear-gradient(180deg,#1f5c3d,#164a30); color:#e8f2ea; padding:10px 18px;
  display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap;
  border-bottom:3px double #d8e6dc;
}
.sc-top .t{font-family:"Noto Serif SC",serif; font-size:17px; letter-spacing:.08em}
.sc-top .t small{display:block; font-size:11px; opacity:.75; letter-spacing:.04em; font-family:"JetBrains Mono",monospace}
.sc-top .r{font-family:"JetBrains Mono",monospace; font-size:12px; opacity:.85; text-align:right}
.sc-body{padding:20px}
.sc-panel{
  background:var(--panel); border:1px solid var(--border); border-radius:3px; margin-bottom:18px;
  box-shadow:2px 2px 0 rgba(0,0,0,.06);
}
.sc-panel > h3{
  margin:0; padding:8px 14px; font-size:14px; font-family:"Noto Serif SC",serif;
  background:linear-gradient(180deg,#dfe6d8,#cfd9c8); border-bottom:1px solid var(--border);
  color:#26402f; letter-spacing:.06em;
}
.sc-panel > .in{padding:15px}
table.roster{width:100%; border-collapse:collapse; font-size:13.5px; background:#fffef8}
table.roster th{
  background:#dfe6d8; border:1px solid var(--border); padding:7px 9px; text-align:left;
  font-family:"JetBrains Mono",monospace; font-size:11.5px; letter-spacing:.1em; color:#26402f;
}
table.roster td{border:1px solid var(--border); padding:5px 9px}
table.roster tr:nth-child(even) td{background:#f8f6ec}
table.roster tr.gap td{background:#f3ece0}
table.roster tr.gap:hover td{background:#f0e6d5}
.blk{
  display:inline-block; width:88px; height:14px; border-radius:2px;
  background:repeating-linear-gradient(45deg,#33302a 0 6px,#262420 6px 12px);
}
.sc-foot{
  border-top:1px solid var(--border); margin-top:26px; padding:14px 20px 50px;
  font-size:12.5px; color:var(--muted); text-align:center;
}
.oldform{max-width:430px}
.oldform .row{display:flex; gap:9px; align-items:center; margin-bottom:11px}
.oldform .row label{margin:0; width:76px; flex:none; font-family:"JetBrains Mono",monospace; font-size:12px}
.captcha{
  font-family:"JetBrains Mono",monospace; letter-spacing:.3em; font-size:19px; user-select:none;
  color:#5b4a2a; background:
    repeating-linear-gradient(28deg,rgba(0,0,0,.05) 0 3px,transparent 3px 6px),
    linear-gradient(180deg,#e8dcb8,#dccfa4);
  border:1px solid #b9a86f; border-radius:3px; padding:6px 14px; transform:rotate(-1.5deg);
  display:inline-block;
}

/* ===========================================================
   皮肤 4：伪 QQ 聊天记录（2009）
   =========================================================== */
.site-qq{
  --bg:#e9edf3; --fg:#20242b; --muted:#7a828f; --accent:#1d6fb8;
  --border:#d4dbe4; --panel:#f7f9fc; --panel-hi:#eef2f8; --input-bg:#fff;
  --accent-soft:rgba(29,111,184,.1); --danger:#b23c34; --danger-soft:rgba(178,60,52,.1);
  --ok:#2f7a4f; --ok-soft:rgba(47,122,79,.1);
}
.qq-win{
  max-width:1020px; margin:18px auto; background:#f4f7fb; border:1px solid #b9c4d3;
  border-radius:8px; overflow:hidden; box-shadow:0 18px 50px -30px rgba(0,0,0,.7);
}
.qq-titlebar{
  background:linear-gradient(180deg,#3d7bb5,#2a5f92); color:#fff; padding:7px 13px;
  font-size:12.5px; display:flex; align-items:center; justify-content:space-between;
}
.qq-grid{display:grid; grid-template-columns:232px 1fr; min-height:520px}
.qq-side{background:#eef2f7; border-right:1px solid #cfd8e4}
.qq-side .search{
  margin:10px; background:#fff; border:1px solid #d4dbe4; border-radius:4px;
  padding:5px 9px; font-size:12.5px; color:#9aa3b0;
}
.qq-side .grp{
  font-size:11.5px; color:#8b95a3; padding:7px 12px; background:#e3e9f1;
  letter-spacing:.06em; border-bottom:1px solid #d4dbe4;
}
.friend{
  display:flex; align-items:center; gap:9px; padding:8px 12px; cursor:pointer;
  border-bottom:1px solid rgba(0,0,0,.035); font-size:13.5px; transition:background .15s;
}
.friend:hover{background:#e2ebf5}
.friend.on{background:#d7e6f5}
.friend .nm{flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.friend .dot{width:8px;height:8px;border-radius:50%;background:#e05a4f;flex:none}
.qq-main{display:flex; flex-direction:column; background:#f7f9fc}
.qq-chathead{
  padding:11px 16px; border-bottom:1px solid #dfe5ed; background:#fff;
  display:flex; align-items:center; gap:10px;
}
.qq-chathead .t{font-size:15px; font-weight:600}
.qq-chathead .s{font-size:12px; color:#98a2b0}
.qq-chathead .btn{white-space:nowrap; flex:none}
.qq-msgs{flex:1; padding:18px 18px 10px; overflow-y:auto; max-height:480px; background:#f5f8fb}
.msg{margin-bottom:15px; display:flex; gap:10px; align-items:flex-start}
.msg .av{width:34px;height:34px;border-radius:4px;flex:none;display:grid;place-items:center;
  font-size:12px;color:#fff;font-weight:600;background:linear-gradient(135deg,#7fa8d4,#4d7cb0)}
.msg.me{flex-direction:row-reverse}
.msg.me .av{background:linear-gradient(135deg,#8fc48f,#4f9a55)}
.msg .bub{
  background:#fff; border:1px solid #e0e6ee; border-radius:5px; padding:9px 13px;
  max-width:min(72%,560px); font-size:14.5px; line-height:1.7; position:relative;
  box-shadow:0 1px 2px rgba(0,0,0,.04);
}
.msg.me .bub{background:#d8f0d3; border-color:#c3e6bc}
.msg .bub::after{
  content:""; position:absolute; left:-6px; top:12px; border:6px solid transparent;
  border-right-color:#e0e6ee; border-left:0;
}
.msg.me .bub::after{left:auto; right:-6px; border-right-color:transparent; border-left-color:#c3e6bc}
.msg .tme{font-size:11px; color:#a6aeb9; margin:4px 2px 0}
.msg.me .tme{text-align:right}
.sysline{
  text-align:center; color:#9aa3b0; font-size:12.5px; margin:14px 0;
  display:flex; align-items:center; gap:12px; justify-content:center;
}
.sysline::before,.sysline::after{content:""; height:1px; background:#dde4ec; flex:1; max-width:120px}
.qq-input{
  border-top:1px solid #dfe5ed; background:#fff; padding:9px 14px; display:flex; gap:9px; align-items:center;
}
.qq-input .fake{
  flex:1; background:#f2f5f9; border:1px solid #dbe2ea; border-radius:4px; padding:8px 12px;
  font-size:13.5px; color:#b3bac4;
}

/* ===========================================================
   皮肤 5：伪监控录像
   =========================================================== */
.site-cam{
  --bg:#050807; --fg:#c8d6cc; --muted:#6d8074; --accent:#7dffb0;
  --border:#1d2a23; --panel:#0a110d; --panel-hi:#0f1812; --input-bg:#060a08;
  --accent-soft:rgba(125,255,176,.1); --danger:#ff6b5e; --danger-soft:rgba(255,107,94,.1);
  --ok:#7dffb0; --ok-soft:rgba(125,255,176,.1);
  font-family:"JetBrains Mono",ui-monospace,monospace;
}
.cam-shell{max-width:1000px; margin:0 auto; padding:18px 14px 90px}
.cam-bar{
  display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
  background:#0b120e; border:1px solid #1d2a23; border-radius:6px; padding:9px 14px; margin-bottom:12px;
}
.cam-bar .l{display:flex; align-items:center; gap:14px; font-size:12.5px; color:#8ba396; flex-wrap:wrap}
.rec{display:inline-flex; align-items:center; gap:6px; color:#ff6b5e; font-size:12px; letter-spacing:.12em}
.rec i{width:9px;height:9px;border-radius:50%;background:#ff6b5e;animation:blink 1.15s steps(1) infinite}
@keyframes blink{0%,49%{opacity:1}50%,100%{opacity:.12}}
.cam-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(215px,1fr)); gap:12px}
.cam-cell{
  position:relative; background:#060a08; border:1px solid #1d2a23; border-radius:5px;
  aspect-ratio:4/3; overflow:hidden; cursor:pointer;
}
.cam-cell::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 1px,transparent 1px 3px);
  mix-blend-mode:overlay;
}
.cam-cell .lbl{
  position:absolute; top:7px; left:9px; font-size:11px; color:#7dffb0; z-index:3;
  text-shadow:0 0 6px rgba(125,255,176,.5);
}
.cam-cell .ts{
  position:absolute; bottom:7px; right:9px; font-size:11.5px; color:#dff5e6; z-index:3;
  text-shadow:0 0 6px rgba(0,0,0,.9);
}
.cam-cell .scene{position:absolute; inset:0}
.cam-cell.focus{border-color:#7dffb0; box-shadow:0 0 0 1px #7dffb0, 0 0 26px -6px rgba(125,255,176,.5)}
.cam-note{
  border:1px solid #1d2a23; background:#0a110d; border-radius:6px; padding:14px 16px; margin-top:12px;
  font-size:13px; line-height:1.85; color:#9fb3a7;
}
.cam-note b{color:#7dffb0}
.cam-hint{color:#6d8074; font-size:12.5px}
.big-screen{
  border:1px solid #1d2a23; background:#060a08; border-radius:6px; padding:0; overflow:hidden;
  margin-bottom:12px;
}
.big-screen .scene{aspect-ratio:16/9; position:relative}

/* 监控画面元素 */
.scene{background:
  radial-gradient(ellipse at 50% 42%, #16241c 0%, #0a1210 55%, #050807 100%);}
.scene .floor{
  position:absolute; left:0; right:0; bottom:0; height:42%;
  background:linear-gradient(180deg,rgba(120,150,135,.10),rgba(0,0,0,.5));
  border-top:1px solid rgba(160,190,170,.16);
}
.scene .wall-l{
  position:absolute; left:0; top:0; bottom:42%; width:34%;
  background:linear-gradient(90deg,rgba(0,0,0,.5),rgba(0,0,0,0));
  border-right:1px solid rgba(160,190,170,.12);
}
.scene .pillar{
  position:absolute; left:22%; top:0; bottom:42%; width:11%;
  background:linear-gradient(90deg,rgba(150,180,160,.13),rgba(0,0,0,.35));
  border-left:1px solid rgba(160,190,170,.14); border-right:1px solid rgba(0,0,0,.4);
}
.scene .light{
  position:absolute; right:16%; top:8%; width:16%; height:20%;
  background:radial-gradient(ellipse,rgba(220,255,235,.75),rgba(160,220,190,.12) 55%,transparent 72%);
  filter:blur(2px);
}
.scene .vent{
  position:absolute; right:8%; bottom:46%; width:22%; height:9%;
  border:1px solid rgba(170,200,180,.3); border-radius:2px;
  background:repeating-linear-gradient(0deg,rgba(170,200,180,.28) 0 2px,transparent 2px 6px);
}
.scene .figure{
  position:absolute; left:47%; bottom:42%; width:6.5%; height:34%;
  background:linear-gradient(180deg,rgba(10,16,13,.95),rgba(0,0,0,.98));
  border-radius:44% 44% 12% 12%/26% 26% 6% 6%;
  filter:blur(1.4px);
}
.scene .figure::before{
  content:""; position:absolute; left:50%; top:-24%; transform:translateX(-50%);
  width:74%; height:34%; border-radius:50%; background:rgba(6,10,8,.97);
}
.scene .chalk{
  position:absolute; left:7%; bottom:47%; font-size:18px; letter-spacing:.12em;
  color:rgba(232,250,238,.95); text-shadow:0 0 10px rgba(125,255,176,.55), 0 0 3px rgba(0,0,0,.9);
  transform:rotate(-2deg); white-space:nowrap; line-height:1.5;
}
.scene .ball{
  position:absolute; left:33%; bottom:44%; width:9px; height:9px; border-radius:50%;
  background:radial-gradient(circle at 32% 30%,#e9f3ec,#8fa396);
  box-shadow:0 0 10px rgba(200,240,215,.45);
}
.scene .gate{
  position:absolute; left:0; bottom:42%; width:100%; height:3px;
  background:linear-gradient(90deg,transparent,rgba(160,190,170,.28),transparent);
}
.scene .noise{
  position:absolute; inset:0; opacity:.16; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E");
}
.scene .scan{
  position:absolute; left:0; right:0; height:26%; pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(125,255,176,.05),transparent);
  animation:scan 5.5s linear infinite;
}
@keyframes scan{0%{top:-26%}100%{top:100%}}

/* ===========================================================
   皮肤 6：伪报纸（2009）
   =========================================================== */
.site-paper{
  --bg:#d9d5c8; --fg:#1d1b16; --muted:#5f594c; --accent:#7a1f14;
  --border:#a9a292; --panel:#eeeade; --panel-hi:#e5e0d1; --input-bg:#f6f2e6;
  --accent-soft:rgba(122,31,20,.08); --danger:#8c2b1d; --danger-soft:rgba(140,43,29,.1);
  --ok:#2c5a35; --ok-soft:rgba(44,90,53,.1);
  background:#d9d5c8;
}
.news-sheet{
  max-width:1000px; margin:16px auto; background:#f2eee2; padding:22px 26px 34px;
  box-shadow:0 14px 40px -24px rgba(0,0,0,.65);
}
.masthead{text-align:center; border-bottom:3px double #1d1b16; padding-bottom:10px}
.masthead .name{
  font-family:"Noto Serif SC",serif; font-size:clamp(30px,6vw,50px); font-weight:800;
  letter-spacing:.28em; margin-left:.28em; line-height:1.1;
}
.masthead .sub{
  display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap;
  font-family:"JetBrains Mono",monospace; font-size:11.5px; color:var(--muted);
  border-top:1px solid #1d1b16; margin-top:9px; padding-top:6px; letter-spacing:.05em;
}
.cols{columns:3; column-gap:24px; column-rule:1px solid #c3bdad; margin-top:16px; font-size:13.6px; line-height:1.72; text-align:justify}
.cols p{margin:0 0 .7em; text-indent:2em}
.cols h3{font-size:15px; margin:0 0 .4em; break-after:avoid}
.cols .brief{text-indent:0; font-size:12.4px; color:#46413a}
.cols .brief b{color:#111}
.classified{
  border-top:3px double #1d1b16; margin-top:16px; padding-top:9px;
  font-size:12.2px; line-height:1.7; columns:2; column-gap:22px;
}
.classified h4{font-size:13px; letter-spacing:.3em; margin:0 0 7px; break-after:avoid}
.dots{
  font-family:"JetBrains Mono",monospace; letter-spacing:.28em; font-size:14px;
  color:#2b2b26; word-break:break-all; line-height:1.9;
}
.dots i{font-style:normal; opacity:.82}

/* ===========================================================
   皮肤 7：伪微博 / 热搜
   =========================================================== */
.site-weibo{
  --bg:#f6f6f6; --fg:#1f1f1f; --muted:#8a8a8a; --accent:#e6162d;
  --border:#e6e6e6; --panel:#fff; --panel-hi:#fafafa; --input-bg:#f2f2f2;
  --accent-soft:rgba(230,22,45,.08); --danger:#c4403a; --danger-soft:rgba(196,64,58,.08);
  --ok:#2f7a4f; --ok-soft:rgba(47,122,79,.1);
}
.wb-top{
  background:linear-gradient(90deg,#ff8200,#ff9a3d); padding:10px 22px;
  display:flex; align-items:center; gap:18px;
}
.wb-logo{
  font-size:22px; font-weight:800; color:#fff; letter-spacing:.5px; text-decoration:none;
  display:inline-flex; align-items:center; gap:7px;
}
.wb-logo-eye{
  width:26px; height:20px; border:2.5px solid #fff; border-radius:50%;
  display:inline-block; position:relative;
}
.wb-logo-eye::after{
  content:''; position:absolute; left:50%; top:50%; width:8px; height:8px;
  background:#fff; border-radius:50%; transform:translate(-50%,-50%);
}
.wb-search{
  flex:1; max-width:420px; background:rgba(255,255,255,.92); border-radius:99px; padding:8px 16px;
  color:#888; font-size:13.5px; display:flex; align-items:center; gap:8px;
}
.wb-top-right{margin-left:auto; display:flex; align-items:center; gap:16px;}
.wb-top-right a{color:#fff; font-size:13px; text-decoration:none; opacity:.95;}
.wb-top-right a:hover{opacity:1; text-decoration:underline;}
.wb-login{
  background:#fff; color:#ff8200 !important; padding:5px 16px; border-radius:4px; font-weight:600;
}
.wb-login:hover{text-decoration:none !important; opacity:.9;}
.hot{background:#fff; border:1px solid var(--border); border-radius:10px; overflow:hidden; margin:16px 0}
.hot h3{
  margin:0; padding:11px 16px; font-size:15px; font-family:"Noto Sans SC",sans-serif;
  border-bottom:1px solid var(--border); display:flex; align-items:center; gap:8px;
}
.hot h3::before{content:""; width:4px; height:15px; background:#e6162d; border-radius:2px}
.hot-item{
  display:flex; align-items:center; gap:12px; padding:10px 16px; border-bottom:1px solid #f2f2f2;
  font-size:14.5px; transition:background .15s;
}
.hot-item:hover{background:#fafafa}
.hot-item .r{
  font-family:"JetBrains Mono",monospace; font-size:13px; color:#9a9a9a; width:22px; flex:none;
}
.hot-item .r.top{color:#e6162d; font-weight:700}
.hot-item .lb{
  font-size:10.5px; color:#fff; background:#e6162d; border-radius:3px; padding:0 5px; flex:none;
}
.hot-item .lb.gray{background:#9a9a9a}
.hot-item .tx{flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.hot-item .num{font-family:"JetBrains Mono",monospace; font-size:12px; color:#b0b0b0}
.wb-card{background:#fff; border:1px solid var(--border); border-radius:10px; padding:18px; margin:16px 0}
.wb-user{display:flex; gap:11px; align-items:flex-start}
.wb-user .nm{font-size:15px; color:#e6162d; font-weight:600}
.wb-user .dt{font-size:12px; color:#9a9a9a; margin-left:7px}
.wb-text{font-size:15.5px; line-height:1.8; margin:12px 0 0}
.wb-text p{margin:0 0 12px}
.wb-acts{
  display:flex; gap:26px; margin-top:14px; padding-top:12px; border-top:1px solid #f0f0f0;
  color:#8a8a8a; font-size:13px;
}
.wb-acts span{display:inline-flex; align-items:center; gap:5px}
.wb-acts svg{width:15px;height:15px}
.wb-repost{border-left:2px solid #eee; padding-left:14px; margin-top:14px}
.wb-repost .who{font-size:13.5px; color:#e6162d; margin-bottom:6px}

/* ===========================================================
   皮肤 8：档案终局（终端）
   =========================================================== */
.site-archive{
  --bg:#0e1116; --fg:#cfd6cd; --muted:#78806f; --accent:#8fd3a4;
  --border:#283027; --panel:#141a15; --panel-hi:#1b231c; --input-bg:#0a0d10;
  --accent-soft:rgba(143,211,164,.1); --danger:#e0705f; --danger-soft:rgba(224,112,95,.1);
  --ok:#8fd3a4; --ok-soft:rgba(143,211,164,.1);
  font-family:"JetBrains Mono",ui-monospace,monospace;
  background-image:
    radial-gradient(800px 500px at 50% -10%, rgba(143,211,164,.06), transparent 60%),
    repeating-linear-gradient(0deg,rgba(255,255,255,.015) 0 1px,transparent 1px 3px);
}
.arc-shell{max-width:880px; margin:0 auto; padding:26px 18px 90px}
.arc-banner{
  border:1px solid var(--border); background:#12180f; border-radius:6px; padding:14px 18px; margin-bottom:18px;
  display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; font-size:12.5px; color:var(--muted);
}
.arc-banner b{color:var(--accent); letter-spacing:.1em}
.arc-panel{border:1px solid var(--border); border-radius:6px; overflow:hidden; margin-bottom:16px; background:#0b0f0c}
.arc-panel > h3{
  margin:0; padding:9px 16px; font-size:12.5px; letter-spacing:.16em; color:var(--accent);
  background:#131a14; border-bottom:1px solid var(--border);
}
.arc-panel > .in{padding:18px}
.arc-kv{display:grid; grid-template-columns:150px 1fr; font-size:13.5px; border:1px solid var(--border); border-radius:5px; overflow:hidden}
.arc-kv dt{padding:10px 13px; background:#111712; color:var(--muted); border-bottom:1px solid var(--border); font-size:12.5px}
.arc-kv dd{padding:10px 13px; margin:0; border-bottom:1px solid var(--border); min-height:40px; display:flex; align-items:center}
.arc-kv dt:last-of-type,.arc-kv dd:last-of-type{border-bottom:0}
.arc-kv .empty{color:#4f5a4d}
.arc-kv .val{color:#e4efe5}
.arc-foot{font-size:12px; color:#4f5a4d; margin-top:22px; text-align:center; line-height:1.9}
.cursor{display:inline-block;width:8px;height:15px;background:var(--accent);vertical-align:-2px;animation:blink 1.05s steps(1) infinite}
.terminal-log{
  font-size:13px; line-height:1.9; color:#9fb3a2; background:#080b09; border:1px solid var(--border);
  border-radius:5px; padding:14px 16px; margin:14px 0; max-height:340px; overflow-y:auto;
}
.terminal-log .ok{color:var(--accent)}
.terminal-log .er{color:var(--danger)}
.terminal-log .dim{color:#4f5a4d}

/* ---------- 结局页 ---------- */
.site-ending{
  --bg:#0b0d12; --fg:#d9d6ce; --muted:#8d8a83; --accent:#d9a441;
  --border:#262a33; --panel:#14171f; --panel-hi:#1c202a; --input-bg:#0e1117;
  --accent-soft:rgba(217,164,65,.1); --danger:#cd6f61; --danger-soft:rgba(205,111,97,.1);
  --ok:#8fb08a; --ok-soft:rgba(143,176,138,.1);
  background-image:radial-gradient(900px 600px at 50% 0%, rgba(217,164,65,.07), transparent 62%);
}
.finale{max-width:720px; margin:0 auto; padding:52px 20px 100px}
.finale h1{font-size:clamp(26px,5vw,38px); margin-bottom:6px; text-align:center}
.finale .sub{text-align:center; color:var(--muted); font-size:14px; margin-bottom:34px}
.finale p{font-family:"Noto Serif SC",serif; font-size:16.5px; line-height:2.05; color:#ddd9d0}
.finale p.big{font-size:18px; color:#eeeae1}
.finale .gap{height:18px}
.finale .hr{height:1px;background:linear-gradient(90deg,transparent,var(--border),transparent);margin:32px 0}
.finale .tbox{border:1px solid var(--border); background:rgba(255,255,255,.03); border-radius:12px; padding:20px 22px; margin:22px 0}
.finale .tbox h3{margin:0 0 10px; font-size:16px; color:var(--accent); font-family:"Noto Sans SC",sans-serif; letter-spacing:.06em}
.finale .tbox p{font-size:14.5px; line-height:1.85; font-family:"Notfit",inherit;font-family:var(--sans); color:#c6c2ba}
.finale .tbox li{font-size:14.5px; line-height:1.85; color:#c6c2ba; margin-bottom:7px; font-family:var(--sans)}
.finale .tbox ul{padding-left:20px; margin:0}
.finale .tbox a{color:var(--accent); border-bottom:1px solid rgba(217,164,65,.4)}
.chooser{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:13px; margin:26px 0}
.choose{
  text-align:left; cursor:pointer; border:1px solid var(--border); border-radius:12px; padding:16px 18px;
  background:rgba(255,255,255,.035); color:var(--fg); font-family:var(--sans);
  transition:border-color .2s, background .2s, transform .12s;
}
.choose:hover{border-color:rgba(217,164,65,.5); background:rgba(217,164,65,.08); transform:translateY(-2px)}
.choose .t{font-family:"Noto Serif SC",serif; font-size:16.5px; margin-bottom:5px}
.choose .d{font-size:13px; color:var(--muted); line-height:1.6}
.finale .credits{font-size:12.5px; color:#6d6a63; line-height:1.9; text-align:center; margin-top:36px}

@media (max-width:760px){
  .wrap{padding:20px 15px 130px}
  .qq-grid{grid-template-columns:1fr}
  .qq-chathead{flex-wrap:wrap; gap:8px}
  .qq-chathead .btn{padding:5px 9px; font-size:12.5px}
  .qq-side{border-right:0; border-bottom:1px solid #cfd8e4; max-height:186px; overflow-y:auto}
  .qq-msgs{max-height:430px}
  .cols{columns:1}
  .classified{columns:1}
  .arc-kv{grid-template-columns:104px 1fr}
  .news-sheet{padding:16px 15px 26px}
  .masthead .name{letter-spacing:.14em; margin-left:.14em}
}

/* ===========================================================
   工具箱抽屉（全局）
   =========================================================== */
#pb-toolbox{
  position:fixed; left:50%; top:50%; z-index:86;
  width:min(560px, calc(100vw - 28px)); max-height:min(84dvh, 780px);
  background:#1d2230; border:1px solid rgba(255,255,255,.22); border-radius:15px;
  display:flex; flex-direction:column; overflow:hidden;
  box-shadow:0 34px 90px -34px #000;
  opacity:0; pointer-events:none;
  transform:translate(-50%,-48%) scale(.965);
  transition:opacity .24s, transform .24s;
}
#pb-toolbox.open{opacity:1; pointer-events:auto; transform:translate(-50%,-50%) scale(1)}
#pb-toolbox-backdrop{
  position:fixed; inset:0; z-index:85; background:rgba(6,7,11,.66);
  backdrop-filter:blur(2px); opacity:0; pointer-events:none; transition:opacity .24s;
}
#pb-toolbox-backdrop.on{opacity:1; pointer-events:auto}
#pb-toolbox-head{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:13px 18px; border-bottom:1px solid rgba(255,255,255,.1);
}
#pb-toolbox-head h3{margin:0; font-size:15.5px; color:#e8e4db; font-family:"Noto Serif SC",serif}
#pb-toolbox-body{flex:1; overflow-y:auto; padding:16px 18px 40px}
.tb-tabs{display:flex; gap:4px; margin-bottom:16px; flex-wrap:wrap}
.tb-tab{
  border:1px solid rgba(255,255,255,.1); background:rgba(255,255,255,.04); color:#9b978e;
  padding:6px 11px; border-radius:7px; font-size:12.5px; cursor:pointer; transition:.16s;
}
.tb-tab:hover{color:#e8e4db; border-color:rgba(255,255,255,.24)}
.tb-tab.on{background:rgba(217,164,65,.16); border-color:rgba(217,164,65,.45); color:#e2c489}
.tb-body h4{
  font-family:"JetBrains Mono",monospace; font-size:10.5px; letter-spacing:.2em; color:#6d6a64;
  margin:0 0 10px; text-transform:uppercase;
}
#pb-toolbox .out{background:rgba(0,0,0,.45); border:1px solid rgba(255,255,255,.22); color:#f0ebdd}
#pb-toolbox .morse-cell{border-color:rgba(255,255,255,.2); background:rgba(255,255,255,.06)}
#pb-toolbox .morse-cell b{color:#f0ebdd}
#pb-toolbox .morse-cell span{color:#e8b84a}
#pb-toolbox .az div{border-color:rgba(255,255,255,.2); background:rgba(255,255,255,.06)}
#pb-toolbox .az div b{color:#e8b84a}
#pb-toolbox .rail-item{border-color:rgba(255,255,255,.2); background:rgba(255,255,255,.06)}
#pb-toolbox .rail-item b{color:#f0ebdd}
#pb-toolbox input[type=text]{background:rgba(0,0,0,.45); border-color:rgba(255,255,255,.25); color:#f0ebdd}
#pb-toolbox input:focus{border-color:rgba(232,184,74,.6)}

/* 紧凑布局：一屏放下 */
#pb-toolbox-body{padding:12px 16px 16px !important; overflow:hidden !important}
.tb-tabs{margin-bottom:10px !important}
.tb-body h4{margin:0 0 6px !important; color:#8a867d !important}
.tb-body h4 + h4{margin-top:10px !important}

.morse-grid{
  display:grid; grid-template-columns:repeat(8, 1fr); gap:4px;
}
.morse-cell{
  border:1px solid rgba(255,255,255,.2); border-radius:5px;
  padding:5px 4px; text-align:center; font-size:11px; line-height:1.25;
  background:rgba(255,255,255,.06);
}
.morse-cell b{display:block; font-size:13px; color:#f0ebdd; font-weight:600}
.morse-cell span{display:block; font-family:'JetBrains Mono',monospace; font-size:10px; color:#e8b84a; letter-spacing:.03em}

.az{display:grid; grid-template-columns:repeat(6,1fr); gap:4px}
.az div{
  border:1px solid rgba(255,255,255,.2); border-radius:5px;
  padding:5px; text-align:center; font-size:11px; line-height:1.25;
  background:rgba(255,255,255,.06);
}
.az div b{color:#e8b84a; font-size:13px; display:block; font-weight:600}
.az div span{color:#c5c0b5; font-family:'JetBrains Mono',monospace; font-size:10px}

.slider-row{display:flex; align-items:center; gap:12px; margin:8px 0 10px}
.slider-row input[type=range]{flex:1; accent-color:#e8b84a; height:5px}
.shift-val{
  font-family:'JetBrains Mono',monospace; font-size:20px; font-weight:700;
  color:#1d2230; min-width:40px; text-align:center;
  background:#e8b84a; border:1px solid #e8b84a;
  border-radius:6px; padding:3px 8px;
}

.rail-list{display:grid; grid-template-columns:1fr 1fr; gap:6px; margin-top:10px}
.rail-item{
  border:1px solid rgba(255,255,255,.2); border-radius:6px; padding:7px 9px;
  background:rgba(255,255,255,.06); font-size:12.5px; line-height:1.4;
}
.rail-item i{font-style:normal; color:#e8b84a; font-family:'JetBrains Mono',monospace; font-size:11px; margin-right:6px; font-weight:600}
.rail-item b{font-family:'JetBrains Mono',monospace; font-weight:500; word-break:break-all; color:#f0ebdd}

#pb-toolbox .out{
  margin-top:8px !important; padding:9px 11px; font-size:14px;
  font-family:'JetBrains Mono',monospace; min-height:22px; word-break:break-all;
}
.tb-fab{
  position:fixed; left:18px; bottom:18px; z-index:70;
  display:inline-flex; align-items:center; gap:8px;
  background:#1d2130; color:#e8e4db; border:1px solid rgba(255,255,255,.14);
  border-radius:99px; padding:9px 16px 9px 13px; cursor:pointer; font-size:13.5px;
  box-shadow:0 16px 40px -20px #000; transition:transform .16s, background .16s;
}
.tb-fab:hover{background:#262c3d; transform:translateY(-2px)}
.tb-fab svg{width:16px;height:16px}
@media (max-width:760px){
  #pb-toolbox{width:calc(100vw - 20px); max-height:82dvh; border-radius:13px}
}

/* 额外：QQ 文件区 / 书本页 / 报纸分类栏 等小件 */
.file-list{display:grid; gap:8px; margin:14px 0}
.file{
  display:flex; align-items:center; gap:12px; padding:11px 14px; cursor:pointer;
  border:1px solid var(--border); border-radius:9px; background:rgba(255,255,255,.035);
  transition:border-color .18s, background .18s, transform .12s;
}
.file:hover{border-color:var(--accent); background:var(--accent-soft); transform:translateX(3px)}
.file .ic{
  width:34px;height:34px;border-radius:7px;display:grid;place-items:center;flex:none;
  font-family:"JetBrains Mono",monospace; font-size:9px; font-weight:700; letter-spacing:.04em;
}
.file .ic.txt{background:rgba(90,140,190,.18); color:#8fb4dc}
.file .ic.img{background:rgba(120,170,110,.18); color:#a3cf95}
.file .ic.pdf{background:rgba(190,110,90,.18); color:#dda694}
.file .nm{font-size:14.5px}
.file .sz{font-size:12px; color:var(--muted); margin-left:auto; font-family:"JetBrains Mono",monospace}
.file .lock{color:var(--muted); font-size:12px; margin-left:auto}

.book{
  background:linear-gradient(160deg,#f3eee0,#e5dcc7); color:#2b2721;
  border-radius:4px 12px 12px 4px; padding:34px 30px 40px 46px;
  box-shadow:inset 14px 0 22px -18px rgba(0,0,0,.55), 0 20px 44px -26px #000;
  font-family:"Noto Serif SC",serif; position:relative;
}
.book::before{
  content:""; position:absolute; left:24px; top:0; bottom:0; width:1px; background:rgba(120,100,70,.28);
}
.book h3{font-size:19px; letter-spacing:.08em; margin:0 0 4px; text-align:center}
.book .pub{text-align:center; font-size:12px; color:#6d6455; margin-bottom:26px; letter-spacing:.1em}
.book .sig{
  margin-top:38px; text-align:right; font-size:20px; letter-spacing:.14em;
  font-family:"Kaiti SC","STKaiti","KaiTi",var(--serif); color:#1f3f6b;
  transform:rotate(-2.5deg);
}
.book .sig small{display:block; font-size:11px; color:#6d6455; letter-spacing:.1em; font-family:var(--mono); transform:rotate(1.4deg)}
.book .stamp{
  position:absolute; left:52px; top:40px; width:76px; height:76px; border:2.5px solid rgba(180,55,45,.45);
  border-radius:50%; color:rgba(180,55,45,.5); display:grid; place-items:center; text-align:center;
  font-size:12px; font-weight:700; letter-spacing:.1em; transform:rotate(-16deg);
}
.book .preface{font-size:14.5px; line-height:1.95; color:#413a30}
.book .tab{
  position:absolute; right:-16px; top:28px; background:rgba(160,40,30,.9); color:#f5e9d6;
  font-size:11px; letter-spacing:.14em; padding:7px 5px 7px 9px; border-radius:0 6px 6px 0;
  writing-mode:vertical-rl;
}
.photo-frame{
  background:#0d0f12; padding:14px 14px 44px; border-radius:3px;
  box-shadow:0 20px 50px -28px #000; position:relative;
}
.photo-frame .cap{
  position:absolute; left:0; right:0; bottom:10px; text-align:center;
  font-family:"JetBrains Mono",monospace; font-size:11.5px; color:#8d8577; letter-spacing:.06em;
}
.photo-paper{
  background:linear-gradient(150deg,#efe9db,#dcd4c2); aspect-ratio:3/4; position:relative;
  display:grid; place-items:center; overflow:hidden;
}
.album-tile{display:block; color:inherit}
.album-tile:hover{text-decoration:none; filter:brightness(1.04)}
.album-tile:focus-visible{outline:2px solid #d9a441; outline-offset:2px}
.photo-paper .hand{
  font-family:"Kaiti SC","STKaiti","KaiTi",var(--serif); font-size:30px; color:#1f3f6b;
  transform:rotate(-3deg); letter-spacing:.1em;
}
.photo-paper .date{
  position:absolute; bottom:16px; right:20px; font-family:"Kaiti SC","STKaiti",var(--serif);
  font-size:15px; color:#3a4a63; transform:rotate(-2deg);
}
.qrbox{
  display:inline-grid; place-items:center; width:104px; height:104px; border-radius:6px;
  background:
    repeating-linear-gradient(90deg,#1c1c1c 0 6px,transparent 6px 12px),
    repeating-linear-gradient(0deg,#1c1c1c 0 6px,transparent 6px 12px);
  background-blend-mode:multiply; position:relative;
}
.qrbox::after{content:""; position:absolute; inset:26px 26px auto 26px; height:14px; border:4px solid #1c1c1c; border-radius:2px; background:#fff}
.weird{mix-blend-mode:difference}

/* ===========================================================
   皮肤 9：伪文件服务器终端
   =========================================================== */
.site-term{
  --bg:#07090a; --fg:#c8d6c2; --muted:#6f7d6a; --accent:#e0b060;
  --border:#1e2a20; --panel:#0c120e; --panel-hi:#111a13; --input-bg:#050706;
  --accent-soft:rgba(224,176,96,.1); --danger:#e0705f; --danger-soft:rgba(224,112,95,.1);
  --ok:#8fd3a4; --ok-soft:rgba(143,211,164,.1);
  font-family:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;
  background-image:
    radial-gradient(900px 500px at 50% -10%, rgba(224,176,96,.05), transparent 60%),
    repeating-linear-gradient(0deg,rgba(255,255,255,.012) 0 1px,transparent 1px 3px);
}
.term-wrap{max-width:1040px;margin:0 auto;padding:16px 14px 60px}
.term-bar{
  display:flex;align-items:center;gap:9px;padding:8px 14px;
  background:linear-gradient(180deg,#1b211d,#121714);
  border:1px solid #1e2a20;border-bottom:0;border-radius:9px 9px 0 0;
  font-size:11.5px;color:#7d8c7a;letter-spacing:.04em;
}
.term-bar .dot{width:10px;height:10px;border-radius:50%;display:inline-block}
.term-bar .dot.r{background:#c8574c}.term-bar .dot.y{background:#c9a13f}.term-bar .dot.g{background:#4f9a5c}
.term-bar .ttl{margin-left:8px;color:#93a38f}
.term-bar .right{margin-left:auto;color:#5f6d5c}
.term-screen{
  position:relative;background:#050706;border:1px solid #1e2a20;
  min-height:64vh;max-height:78vh;overflow-y:auto;padding:16px 18px 26px;
  box-shadow:inset 0 0 60px rgba(0,0,0,.9), 0 20px 50px -30px #000;
}
.term-screen::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(0deg,rgba(0,0,0,.16) 0 1px,transparent 1px 3px);
}
.term-out{position:relative;z-index:2}
.tl{font-size:13.5px;line-height:1.72;white-space:pre-wrap;word-break:break-word;color:#b9c9b2}
.tl.pre{color:#c3d2bb}
.tl .ok{color:#8fd3a4}.tl .err{color:#e0705f}.tl .warn{color:#e0b060}
.tl .dir{color:#7fb8d8}.tl .path{color:#8a9ab5}.tl .ln{color:#6f7d6a}
.tl .cmd{color:#e0b060}.tl.echo{color:#68786a;margin-top:10px}
.term-input-line{
  position:relative;z-index:2;display:flex;align-items:center;gap:0;
  font-size:13.5px;line-height:1.72;margin-top:8px;white-space:pre-wrap;word-break:break-all;
}
.term-input-line .prompt{color:#e0b060}
.term-input-line .cursor{
  display:inline-block;width:8px;height:16px;background:#c8d6c2;vertical-align:-3px;
  animation:blink 1.05s steps(1) infinite;margin-left:1px;
}
#kbd{
  position:absolute;inset:0;width:100%;height:100%;
  opacity:0;border:0;background:transparent;caret-color:transparent;
  font-family:inherit;font-size:16px;padding:0;margin:0;
}
.term-bar2{
  display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;
  border:1px solid #1e2a20;border-top:0;border-radius:0 0 9px 9px;padding:11px 15px;
  background:#0c120e;font-size:12.5px;color:#7d8c7a;
}
.term-bar2 code{background:#16201a;border:1px solid #26362a;border-radius:4px;padding:1px 6px;color:#e0b060;font-size:12px}
.term-bar2 b{color:#c8d6c2}
.term-hint .dim,.term-side .dim{color:#56634f;margin-left:8px}
.term-side{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.term-side a{color:#8fd3a4}
@media (max-width:720px){
  .term-wrap{padding:8px 8px 40px}
  .term-screen{min-height:58vh;padding:12px 12px 20px}
  .tl,.term-input-line{font-size:12.5px}
  .term-bar .ttl{font-size:10.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}

/* 记忆恢复文本 + 证据等级徽章（笔记面板） */
.memory{
  border:1px solid rgba(143,211,164,.28); border-radius:10px; padding:12px 14px; margin-bottom:10px;
  background:linear-gradient(180deg,rgba(143,211,164,.08),rgba(143,211,164,.02));
}
.memory .s{
  font-family:"JetBrains Mono",monospace; font-size:10px; letter-spacing:.2em; color:#8fd3a4;
  text-transform:uppercase; margin-bottom:5px;
}
.memory .b{font-family:"Noto Serif SC",serif; font-size:15px; line-height:1.75; color:#dfe9df}
.note-item .s{display:flex;align-items:center;gap:7px; flex-wrap:wrap}
.note-item .kind{
  font-size:9.5px; letter-spacing:.1em; border:1px solid; border-radius:3px;
  padding:0 5px; line-height:15px; opacity:.9;
}

/* ---------- 笔记面板：密钥环 ---------- */
.nb-tabs{
  display:flex; gap:4px; padding:9px 14px 0; border-bottom:1px solid rgba(255,255,255,.09);
}
.nb-tab{
  border:none; background:transparent; color:#8d8a82; font-family:var(--sans); font-size:12.5px;
  padding:7px 11px; cursor:pointer; border-bottom:2px solid transparent; transition:.16s;
}
.nb-tab:hover{color:#e8e4db}
.nb-tab.on{color:#d9a441; border-bottom-color:#d9a441}
.kr-head{margin-bottom:12px}
.kr-num{font-family:"JetBrains Mono",monospace; font-size:13px; color:#9b978e; margin-bottom:8px}
.kr-num b{font-size:26px; color:#d9a441; margin-right:4px}
.kr-bar{height:6px; background:rgba(255,255,255,.08); border-radius:99px; overflow:hidden}
.kr-bar i{display:block; height:100%; background:linear-gradient(90deg,#a97c2b,#d9a441); transition:width .5s}
.kr-tip{font-size:12.5px; color:#8d8a82; line-height:1.7; margin:0 0 14px}
.kr-tip a{color:#d9a441}
.kr-item{
  border:1px solid rgba(255,255,255,.1); border-radius:10px; padding:11px 13px; margin-bottom:9px;
  background:rgba(255,255,255,.03);
}
.kr-item.done{border-color:rgba(143,176,138,.4); background:rgba(143,176,138,.07)}
.kr-item.locked{opacity:.5}
.kr-top{display:flex; align-items:center; gap:9px; margin-bottom:6px}
.kr-no{
  font-family:"JetBrains Mono",monospace; font-size:11px; color:#d9a441; border:1px solid rgba(217,164,65,.4);
  border-radius:5px; padding:1px 7px; flex:none;
}
.kr-name{font-size:14.5px; color:#e8e4db; flex:1}
.kr-st{font-family:"JetBrains Mono",monospace; font-size:10.5px; letter-spacing:.1em; color:#8d8a82}
.kr-item.done .kr-st{color:#8fb08a}
.kr-desc{font-size:12.5px; color:#9b978e; line-height:1.65; margin-bottom:7px}
.kr-row{display:flex; gap:9px; font-size:12px; line-height:1.8; align-items:baseline}
.kr-k{font-family:"JetBrains Mono",monospace; font-size:10px; color:#6d6a64; letter-spacing:.1em; min-width:32px; flex:none}
.kr-grant{color:#d9a441}
.kr-dim{color:#7c796f}

/* 监控授权码遮罩 */
.cam-gate{
  position:absolute; inset:0; z-index:6; display:grid; place-items:center;
  background:rgba(4,7,6,.93); padding:22px; text-align:center;
}
.cam-gate-box{max-width:460px}
.cam-gate-box b{
  display:block; font-size:15px; color:#ff6b5e; letter-spacing:.1em; margin-bottom:12px;
}
.cam-gate-box p{font-size:13px; line-height:1.9; color:#8ba396; margin:0 0 16px}
.cam-gate-box p b{color:#c8d6cc; display:inline}
.cam-gate-box input{
  background:#060a08; border:1px solid #1d2a23; color:#dff5e6; padding:8px 12px;
  border-radius:6px; font-size:14px; outline:none;
}
.cam-gate-box input:focus{border-color:#7dffb0}
.cam-gate-box .btn{
  background:#0f1812; border:1px solid #2b3a30; color:#c8d6cc;
}
.cam-gate-box .btn:hover{border-color:#7dffb0; color:#7dffb0}
.nb-stat{font-family:"JetBrains Mono",monospace;font-size:10.5px;color:#8d8a82;letter-spacing:.08em;margin-left:auto;margin-right:12px;white-space:nowrap}

/* ---------- 记忆褪色 ---------- */
.note-item.gone{opacity:.55; border-style:dashed; border-color:rgba(255,255,255,.08)}
.note-item.gone .t{color:#6d6a64; font-style:italic}
.note-item .kind-mem{background:rgba(194,160,232,.07)}
.note-item .d{transition:filter .6s, opacity .6s}
.scribe-btn{
  border:1px solid rgba(143,211,164,.45); background:rgba(143,211,164,.08); color:#9fd0ab;
  border-radius:6px; padding:3px 9px; font-size:11.5px; cursor:pointer; margin-left:6px;
  transition:background .16s, color .16s;
}
.scribe-btn:hover{background:rgba(143,211,164,.2); color:#c6e6cd}
.scribe-btn:disabled{opacity:.35; cursor:not-allowed}
.scribe-pane{border:1px solid var(--border); border-radius:10px; padding:14px 15px; margin:0 0 14px; background:rgba(255,255,255,.03)}
.scribe-head{display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:10px}
.scribe-title{font-size:14.5px; color:#e6e2da}
.scribe-left{font-family:"JetBrains Mono",monospace; font-size:12px; color:#8fd3a4}
.scribe-hint{font-size:12.5px; color:#9b978e; line-height:1.75; margin:0 0 12px}
.scribe-item{
  display:flex; align-items:center; gap:10px; padding:9px 0; border-bottom:1px solid rgba(255,255,255,.05);
  font-size:13.5px;
}
.scribe-item .st{font-family:"JetBrains Mono",monospace; font-size:10.5px; letter-spacing:.08em; padding:1px 6px; border-radius:4px; flex:none}
.scribe-item .st.ok{color:#8fd3a4; border:1px solid rgba(143,211,164,.4)}
.scribe-item .st.warn{color:#c2a0e8; border:1px solid rgba(194,160,232,.4)}
.scribe-item .nm{flex:1; color:#ddd9d0}
.scribe-item .nm.faded{color:#6d6a64; font-style:italic}
.scribe-item .pct{font-family:"JetBrains Mono",monospace; font-size:11px; color:#7c796f; min-width:40px; text-align:right}

/* ---------- 结局：带走的线索 ---------- */
.kept{margin:18px 0 6px;border:1px solid rgba(255,255,255,.08);border-radius:8px;overflow:hidden;background:rgba(0,0,0,.18)}
.kept-item{display:flex;gap:14px;align-items:flex-start;padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.05);transition:opacity .5s, filter .5s}
.kept-item:last-child{border-bottom:none}
.kept-item .kt{flex:0 0 132px;font-size:12.5px;color:#b7b2a6;padding-top:1px}
.kept-item .kb{flex:1;font-size:13px;color:#8f8b81;line-height:1.8}
.kept-pin{background:rgba(143,211,164,.045)}
.kept-pin .kt{color:#8fd3a4}
.kept-pin .kb{color:#cfd8cf}
.kept-fuzz .kb{color:#6f6b62;font-style:italic}
.kept-gone{opacity:.35}
.kept-gone .kb{color:#5f5c55;font-style:italic}
.kept-fading{opacity:.22; filter:blur(1.6px); transition:opacity .9s, filter .9s}
.kept-fade .kept-item{transition:opacity .9s, filter .9s}

/* ===========================================================
   响应式修复包（v5.1）
   —— 目标：窄屏下不遮挡、不挤压、不横向溢出
   =========================================================== */

/* 1) 全局：长串不撑破容器 */
html,body{max-width:100%; overflow-x:hidden}
body{overflow-wrap:break-word; word-break:break-word}
img,svg,table,pre{max-width:100%}
table{display:block; overflow-x:auto; white-space:nowrap}
@media (min-width:900px){ table{display:table; overflow-x:visible; white-space:normal} }

/* 2) 底部安全区：FAB 不再压正文 */
@media (max-width:760px){
  body{padding-bottom:78px}
  .wrap{padding-bottom:34px}
  .finale{padding-bottom:30px}
  .sc-body{padding-bottom:24px}
}

/* 3) FAB 窄屏图标化，避免左右两枚挤满屏宽 */
@media (max-width:760px){
  #pb-notes-fab span:not(.cnt){display:none}
  #pb-notes-fab{width:44px; height:44px; padding:0; border-radius:50%; justify-content:center; gap:0}
  #pb-notes-fab .cnt{
    position:absolute; top:-3px; right:-3px; min-width:17px; height:17px; padding:0 4px;
    font-size:10px; line-height:17px; border-radius:9px;
  }
  .tb-fab span:not(.cnt){display:none}
  .tb-fab{width:44px; height:44px; padding:0; border-radius:50%; justify-content:center; gap:0}
  .tb-fab svg{width:17px;height:17px}
}

/* 4) 教务登录表单：窄屏堆叠 */
@media (max-width:560px){
  .sc-panel .in .row{flex-wrap:wrap; gap:6px}
  .sc-panel .in .row label{flex:0 0 100%; margin-bottom:0}
  .sc-panel .in .row input{flex:1 1 100%; width:100% !important; min-width:0}
  .sc-panel .in .row .captcha{flex:0 0 auto}
  .sc-panel .in .row button{flex:1 1 auto}
}

/* 5) 终端：窄屏不留大片空白 */
@media (max-width:760px){
  .term-screen{min-height:46vh}
  .term-wrap{padding-bottom:22px}
}

/* 6) 伪站通用：标题块、按钮行、表格容器 */
@media (max-width:560px){
  .row{flex-wrap:wrap}
  .row .btn{flex:0 1 auto}
  .qq-chathead{font-size:12px}
  .arc-kv{grid-template-columns:1fr; gap:2px 0}
  .arc-kv > div:nth-child(odd){font-size:12px; opacity:.8; padding-top:8px}
  .sc-panel .in{padding:14px 13px}
  .sc-panel{padding:0}
  .masthead .name{font-size:16px; letter-spacing:.08em}
  .paper{padding:18px 15px}
  .paper-head{flex-wrap:wrap; gap:6px}
  .file{flex-wrap:wrap}
  .file .ic{width:28px;height:28px}
  .kept-item{flex-direction:column; gap:3px}
  .kept-item .kt{flex:none; font-size:12px}
  .scribe-item{flex-wrap:wrap; gap:7px}
}

/* 7) 笔记面板：窄屏全屏化 */
@media (max-width:560px){
  #pb-notes-panel{width:100vw !important; max-width:100vw; right:0 !important; border-radius:0}
  #pb-notes-panel .nb-panel-body{padding:12px 13px}
  .nb-tab{padding:8px 10px; font-size:12.5px}
}

/* 8) 搜索框：窄屏竖排 */
@media (max-width:460px){
  .sbox{display:flex; flex-direction:column; height:auto}
  .sbox input{border-radius:12px 12px 0 0; border-bottom:none}
  .sbox button{border-radius:0 0 12px 12px; width:100%}
}

/* 9) 结局页：窄屏行距与表格 */
@media (max-width:560px){
  .finale h1{font-size:30px}
  .finale p{font-size:15px; line-height:1.95}
  .finale .big{font-size:19px}
  .tbox{padding:14px 13px}
}

/* 验证码行：窄屏下输入框与验证码图仍同行 */
@media (max-width:560px){
  .cap-row input{flex:1 1 0 !important; width:auto !important; min-width:70px}
  .cap-row .captcha{flex:0 0 auto; width:82px; height:38px; font-size:17px}
}
/* 页脚：给底部 FAB 留足空间 */
@media (max-width:760px){
  .sc-body .sc-panel:last-of-type{margin-bottom:10px}
  .arc-foot, .sc-panel + .tiny, .wrap > .tiny:last-child{margin-bottom:12px}
}

/* ===========================================================
   v8.1 · 统一页脚导航（每页都能一键回到主干，避免迷路）
   =========================================================== */
.foot-nav {
  margin: 30px auto 0;
  padding: 14px 18px;
  max-width: 880px;
  border-top: 1px solid var(--border, rgba(128,128,128,.22));
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 8px 16px;
  font-size: 12.5px;
  line-height: 1.9;
  color: #8a8a86;
  text-align: center;
}
.foot-nav a {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px dotted currentColor;
  padding-bottom: 1px;
  transition: color .15s ease;
}
.foot-nav a:hover { color: var(--accent, #c9621d); }
.foot-nav .fn-sep { opacity: .4; }
.foot-nav .fn-note { opacity: .65; font-size: 11.5px; }
@media (max-width: 600px) {
  .foot-nav { margin-top: 20px; padding: 12px 10px; gap: 6px 12px; font-size: 12px; }
}

/* ===========================================================
   v9 · 年代设计系统
   ------------------------------------------------------------
   这个作品里有两套"年代"，控件必须分开做：

   LEGACY（2014 年那套系统）：四班旧档的 IM 导出工具、教务系统、
   晚报电子版、教育局监控平台、校史文件服务器、档案调阅终端。
   特征：直角或 2px 微圆、1px 灰边、渐变立体、无 hover 光晕、
   无柔和投影、字号偏小、表格有完整边框。

   MODERN（2026 年当下）：百度、四班旧档论坛、微博、雁城百科、
   科普帖、进度表、日志、尾页。特征：克制的圆角、极轻投影、
   焦点环、较大字号。

   两套共用基座，只在 .legacy / .modern 的作用域内分别覆写。
   =========================================================== */

/* ---------- 通用：更克制的焦点环 ---------- */
:where(a,button,input,textarea,select,[tabindex]):focus-visible{
  outline:2px solid var(--accent,#c9621d); outline-offset:2px; border-radius:2px;
}
input:focus,textarea:focus,select:focus{
  box-shadow:none;                 /* 取消现代光晕 */
  border-color:var(--accent);
}

/* ===========================================================
   A · LEGACY 控件（2014）
   =========================================================== */
.site-qq, .site-school, .site-paper, .site-cam, .site-term, .site-archive{
  --radius:2px;
  --radius-lg:2px;
  --shadow-panel:none;
  --shadow-pop:0 2px 6px rgba(0,0,0,.14);
}
.site-qq .btn, .site-school .btn, .site-paper .btn, .site-cam .btn,
.site-term .btn, .site-archive .btn{
  border-radius:2px;
  background:linear-gradient(180deg,#fcfcfc,#e6e6e6);
  border:1px solid #b9b9b9;
  color:#333;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.95);
  transition:background .14s linear, border-color .14s linear, color .14s linear;
}
.site-qq .btn:hover, .site-school .btn:hover, .site-paper .btn:hover,
.site-cam .btn:hover, .site-term .btn:hover, .site-archive .btn:hover{
  background:linear-gradient(180deg,#f4f4f4,#dcdcdc);
  border-color:#8fa8c8; color:#1a4b86; text-decoration:none;
}
.site-qq .btn:active, .site-school .btn:active, .site-paper .btn:active,
.site-cam .btn:active, .site-term .btn:active, .site-archive .btn:active{
  background:linear-gradient(180deg,#e2e2e2,#efefef);
  box-shadow:inset 0 1px 2px rgba(0,0,0,.12);
}
.site-qq .btn.primary, .site-school .btn.primary, .site-paper .btn.primary,
.site-cam .btn.primary, .site-term .btn.primary, .site-archive .btn.primary{
  background:linear-gradient(180deg,#5b8fc4,#3d6ea3);
  border-color:#2f5a8a; color:#fff; font-weight:400;
  text-shadow:0 1px 0 rgba(0,0,0,.25);
}
.site-qq .btn.primary:hover, .site-school .btn.primary:hover, .site-paper .btn.primary:hover,
.site-cam .btn.primary:hover, .site-term .btn.primary:hover, .site-archive .btn.primary:hover{
  background:linear-gradient(180deg,#6a9bd0,#4878ad); color:#fff; filter:none;
}
.site-qq .btn.sm, .site-school .btn.sm, .site-paper .btn.sm,
.site-cam .btn.sm, .site-term .btn.sm, .site-archive .btn.sm{
  padding:4px 9px; font-size:12.5px;
}

/* legacy 输入框：直角 + 浅内阴影 */
.site-qq input[type=text], .site-qq input[type=password],
.site-school input[type=text], .site-school input[type=password],
.site-paper input[type=text], .site-cam input[type=text],
.site-term input[type=text], .site-archive input[type=text],
.site-qq textarea, .site-school textarea, .site-archive textarea,
.site-qq select, .site-school select{
  border-radius:2px; background:#fff;
  border:1px solid #b5b5b5;
  box-shadow:inset 0 1px 2px rgba(0,0,0,.07);
  padding:7px 10px; font-size:13.5px;
}
.site-qq input:focus, .site-school input:focus, .site-paper input:focus,
.site-cam input:focus, .site-term input:focus, .site-archive input:focus{
  border-color:#3d6ea3; box-shadow:inset 0 1px 2px rgba(0,0,0,.07), 0 0 0 1px rgba(61,110,163,.25);
}
/* legacy 提示条：直角 + 左侧 2px 强调 */
.site-qq .notice, .site-school .notice, .site-paper .notice,
.site-cam .notice, .site-term .notice, .site-archive .notice{
  border-radius:0; border-left-width:2px;
  background-image:none; border:1px solid var(--border); border-left:2px solid var(--accent);
  padding:9px 13px; font-size:13.5px;
}
.site-qq .notice.bad, .site-school .notice.bad, .site-paper .notice.bad,
.site-cam .notice.bad, .site-archive .notice.bad{
  border-left-color:var(--danger); color:var(--danger);
}
.site-qq .notice.good, .site-school .notice.good, .site-paper .notice.good,
.site-cam .notice.good, .site-archive .notice.good{
  border-left-color:var(--ok); color:var(--ok);
}
/* legacy 标签页 / 药丸 */
.site-zhihu .pill, .site-qq .pill, .site-school .pill{
  border-radius:2px; background:#eef1f5; border:1px solid #dfe3e9;
}
/* legacy 页面底部导航：做成 2014 年的方块小链接，而不是圆角按钮 */
.foot-nav a{
  display:inline-block; padding:4px 11px; border:1px solid var(--border);
  border-radius:2px; background:var(--panel); text-decoration:none;
  transition:border-color .14s, color .14s;
}
.foot-nav a:hover{border-color:var(--accent); text-decoration:none}
.foot-nav .fn-sep{border:0; background:none; padding:0}

/* ===========================================================
   B · 逐站细节
   =========================================================== */

/* ---------- B1 教务系统（老高校系统） ----------
   典型特征：顶部窄 banner + 双线分隔、米黄底、表格全边框、
   表头浅绿、等宽标签、输入框 inline、无圆角卡片。 */
.site-school{
  --bg:#e8e4d4; --fg:#26261f; --muted:#6b6653; --accent:#1f5c3d;
  --border:#b9b39b; --panel:#f3f0e2; --panel-hi:#e9e5d3; --input-bg:#fffdf6;
}
.site-school .sc-top{
  background:linear-gradient(180deg,#22664a,#17492f);
  padding:8px 16px; border-bottom:3px double #cfe0d4; position:relative;
}
.site-school .sc-top::after{
  content:""; position:absolute; left:0; right:0; bottom:-6px; height:3px;
  background:repeating-linear-gradient(90deg,#22664a 0 12px,transparent 12px 24px);
  opacity:.35;
}
.site-school .sc-top .t{font-family:"SimSun","Songti SC","Noto Serif SC",serif; font-size:16.5px; letter-spacing:.14em}
.site-school .sc-top .t small{font-family:"JetBrains Mono",monospace; font-size:10.5px; letter-spacing:.06em}
.site-school .sc-body{padding:22px 18px}
.site-school .sc-panel{
  border-radius:0; box-shadow:none; background:var(--panel);
  border:1px solid var(--border); border-top:2px solid #4c6b52;
  margin-bottom:16px;
}
.site-school .sc-panel > h3{
  font-family:"SimSun","Songti SC",serif; font-size:13.5px; letter-spacing:.1em;
  background:linear-gradient(180deg,#e3e8da,#d2d9c7); color:#25412f;
  padding:7px 13px; border-bottom:1px solid var(--border);
}
.site-school .sc-panel > .in{padding:14px}
.site-school table.roster{font-size:13px; border:1px solid var(--border)}
.site-school table.roster th{
  background:#dde4d6; font-size:11px; padding:6px 9px; border:1px solid var(--border);
  font-family:"JetBrains Mono",monospace; letter-spacing:.08em;
}
.site-school table.roster td{padding:4px 9px; border:1px solid var(--border); line-height:1.55}
.site-school table.roster tr:nth-child(even) td{background:#faf8ef}
.site-school table.roster tr.gap td{background:#efe6d6; color:#8a7a5c}
.site-school .oldform{max-width:470px}
.site-school .oldform .row{margin-bottom:10px; gap:8px}
.site-school .oldform .row label{width:74px; font-family:"JetBrains Mono",monospace; font-size:11.5px; color:#4f4a39}
.site-school .captcha{border-radius:0; font-size:18px; letter-spacing:.32em}
.site-school .sc-foot{font-size:12px; letter-spacing:.02em}

/* ---------- B2 IM 导出工具（Win8 客户端） ----------
   2014 年的 QQ 8 / 聊天记录导出工具：平直分割、微软雅黑、
   蓝色标题栏但更平、好友列表灰底、消息气泡圆角（气泡本身确实圆）。 */
.site-qq .qq-win{
  border-radius:2px; box-shadow:0 1px 3px rgba(0,0,0,.16);
  border:1px solid #a9b6c8;
}
.site-qq .qq-titlebar{
  background:linear-gradient(180deg,#3f7fb8,#2c5f92); padding:6px 12px;
  border-bottom:1px solid #24507a; font-size:12px;
}
.site-qq .qq-side{background:#eef2f7}
.site-qq .qq-side .search{border-radius:2px; background:#fff}
.site-qq .qq-chathead{background:#f2f5f9; border-bottom:1px solid #d3dbe6}
.site-qq .qq-msgs{background:#f5f8fb}
.site-qq .qq-input .fake{border-radius:2px}
.site-qq .file{
  border-radius:2px; border:1px solid #d4dbe4; background:#fff;
}
.site-qq .file:hover{border-color:#9fb6cf; background:#f7fafd}
.site-qq .file .ic{border-radius:2px}

/* 去掉现代位移动效，改成 2014 的高亮 */
.site-qq .file{border-radius:2px; border:1px solid #d4dbe4; background:#fff}
.site-qq .file:hover{border-color:#8fb0d2; background:#f4f8fc; transform:none}
.site-qq .file .ic{border-radius:2px}

/* ---------- B3 晚报电子版（2014 报纸） ----------
   报纸不是网页：不用按钮框，靠细栏线和文字层级。 */
.site-paper .btn{
  background:none; border:1px solid #8a7f66; color:#4a4438;
  border-radius:0; padding:5px 12px; font-family:"SimSun","Songti SC",serif; font-size:13px;
  box-shadow:none; letter-spacing:.06em;
}
.site-paper .btn:hover{background:#efeade; border-color:#4a4438; color:#2b2721}
.site-paper .news-sheet{
  box-shadow:none; border:1px solid #cfc8b4; background:#fffdf7;
  max-width:920px; margin:0 auto; padding:26px 30px 20px;
}
.site-paper .name{font-family:"SimSun","Songti SC","Noto Serif SC",serif; letter-spacing:.22em}
.site-paper .cols{column-gap:26px}
.site-paper .cols h3{font-family:"SimSun","Songti SC",serif; letter-spacing:.03em}
.site-paper .brief{font-family:"SimSun","Songti SC",serif; text-indent:2em; line-height:1.85}
.site-paper .classified{border-top:2px solid #1d1b16; margin-top:16px}
.site-paper .classified h4{letter-spacing:.5em; font-family:"SimSun","Songti SC",serif}

/* ---------- B4 监控平台（老安防系统） ----------
   深色、荧光绿、等宽、扫描线、硬边框。 */
.site-cam .cam-shell{max-width:1060px}
.site-cam .cam-bar{border-radius:0; background:#080d0a}
.site-cam .cam-cell{border-radius:0; box-shadow:none}
.site-cam .cam-cell.focus{box-shadow:0 0 0 1px #7dffb0}
.site-cam .btn{
  background:linear-gradient(180deg,#1a2a20,#0f1a13); border-color:#2f4a38; color:#9ec7a8;
  border-radius:2px; box-shadow:none; font-family:"JetBrains Mono",monospace; font-size:12px;
}
.site-cam .btn:hover{background:#22362a; border-color:#7dffb0; color:#7dffb0}
.site-cam input[type=text]{
  background:#060b08; color:#9ee6b4; border:1px solid #2b4634; border-radius:0;
  font-family:"JetBrains Mono",monospace; letter-spacing:.14em;
}

/* ---------- B5 档案调阅终端（老内网） ----------
   方角、等宽、CRT 扫描线与荧光。 */
.site-archive .arc-shell{max-width:920px}
.site-archive .arc-banner{
  border-radius:0; background:linear-gradient(180deg,#101a13,#0a120d);
  border:1px solid #24382a; padding:10px 16px;
}
.site-archive .arc-panel{border-radius:0; box-shadow:none; border-color:#24382a}
.site-archive .arc-panel > h3{
  border-radius:0; background:linear-gradient(180deg,#16241a,#0f1a12);
  font-family:"JetBrains Mono",monospace; letter-spacing:.16em; font-size:13px;
}
.site-archive .arc-kv{border-radius:0; border-color:#24382a}
.site-archive .arc-kv dt{background:#0e1710; font-family:"JetBrains Mono",monospace; font-size:12px}
.site-archive .arc-kv dd{background:#080d09}
.site-archive .terminal-log{border-radius:0; border-color:#24382a; background:#060b07}
.site-archive .btn{
  background:linear-gradient(180deg,#1a2a20,#0f1a13); border-color:#2f4a38; color:#9ec7a8;
  border-radius:2px; box-shadow:none; font-family:"JetBrains Mono",monospace;
}
.site-archive .btn.primary{background:linear-gradient(180deg,#22503a,#163a29); border-color:#3d7a56; color:#cfeadd}
.site-archive input[type=text]{
  background:#060b08; color:#9ee6b4; border:1px solid #2b4634; border-radius:0;
  font-family:"JetBrains Mono",monospace;
}

/* ---------- B6 校史文件服务器（真终端） ---------- */
.site-term .btn{border-radius:2px}

/* ===========================================================
   C · MODERN 站（2026）精修
   =========================================================== */

/* ---------- C1 四班旧档论坛（知乎 2016-2019 的白色极简） ---------- */
.site-zhihu{
  --bg:#fff; --fg:#1a1a1a; --muted:#8590a0; --accent:#0084ff; --border:#ebebeb;
}
.site-zhihu .zh-head{
  background:#fff; border-bottom:1px solid #ebebeb; padding:0 20px; height:52px;
  position:sticky; top:0; z-index:30; backdrop-filter:none;
}
.site-zhihu .zh-logo{
  font-size:18px; font-weight:700; letter-spacing:0; color:#0084ff;
  font-family:"Noto Serif SC","Songti SC",serif;
}
.site-zhihu .zh-search{
  background:#f6f6f6; border:1px solid transparent; border-radius:3px;
  padding:6px 12px; max-width:400px;
}
.site-zhihu .zh-search:focus-within{background:#fff; border-color:#c8c8c8}
.site-zhihu .q-title{font-size:20px; font-weight:600; line-height:1.5}
.site-zhihu .answer{padding:20px 0}
.site-zhihu .answer-body{font-size:15.5px; line-height:1.85; max-width:760px}
.site-zhihu .answer-body p{margin:0 0 15px}
.site-zhihu .answer-body h3{font-family:inherit; font-size:15.5px; font-weight:600; color:#1a1a1a; margin:22px 0 8px}
.site-zhihu .vote button{font-size:18px; color:#c6c9cc}
.site-zhihu .comment{padding:12px 0}
.site-zhihu .comment .cbody{font-size:14.5px; line-height:1.7}
.site-zhihu .btn{border-radius:3px}
.site-zhihu .btn.primary{background:#0084ff; border-color:#0084ff; color:#fff; font-weight:400}

/* ---------- C2 雁城百科（维基百科风：左目录 + 右正文） ---------- */
.baike-grid{
  display:grid; grid-template-columns:186px minmax(0,1fr); gap:28px; align-items:start;
}
.baike-grid > .baike-toc{grid-column:1}
.baike-grid > *:not(.baike-toc){grid-column:2}
.baike-grid > .q-title, .baike-grid > .q-meta, .baike-grid > .answer,
.baike-grid > .tiny{grid-column:2}
.site-zhihu .baike-toc{
  position:sticky; top:70px; font-size:13px; line-height:1.9;
  border:1px solid #e6e8eb; border-radius:3px; padding:11px 13px; background:#f8f9fa;
}
.site-zhihu .baike-toc b{display:block; font-size:12px; letter-spacing:.08em; color:#54595d; margin-bottom:5px; font-family:"Noto Serif SC",serif}
.site-zhihu .baike-toc a{display:block; color:#3366cc; padding:1px 0; font-size:13px}
.site-zhihu .baike-toc a:hover{text-decoration:underline}
.baike-grid > .tiny{grid-column:2}
.site-zhihu .baike-article{
  font-family:"Noto Serif SC","Songti SC",serif; font-size:15.5px; line-height:1.9;
  border-bottom:1px solid #eaecf0; padding-bottom:18px; margin-bottom:18px;
}
.site-zhihu .baike-article h2{
  font-family:"Noto Serif SC","Songti SC",serif; font-size:19px; font-weight:400;
  border-bottom:1px solid #a2a9b1; padding-bottom:5px; margin:22px 0 12px;
}
.site-zhihu .baike-article h2:first-child{margin-top:0}
.site-zhihu .baike-box{
  float:right; width:270px; margin:0 0 14px 20px; padding:11px 13px;
  border:1px solid #eaecf0; background:#f8f9fa; font-family:"Noto Sans SC",sans-serif; font-size:12.5px;
}

/* ---------- C3 微博（2026） ---------- */
.site-weibo .wb-card{
  border-radius:8px; border:1px solid #e6e8eb; background:#fff;
  box-shadow:0 1px 2px rgba(0,0,0,.03);
}
.site-weibo .wb-user .avatar{border-radius:50%}
.site-weibo .btn{border-radius:6px}
.site-weibo .btn.primary{background:#e6162d; border-color:#e6162d; color:#fff; font-weight:400}
.site-weibo .btn.primary:hover{background:#c91429; border-color:#c91429; color:#fff; filter:none}

/* ---------- C4 百度（搜索引擎） ---------- */
.site-search .searchbox{border-radius:10px; box-shadow:none}
.site-search .searchbox button{border-radius:0 8px 8px 0}
.site-search .btn{border-radius:6px}
.site-search .result .ti{font-size:18px; color:#1a0dab}
.site-search .result .ti:hover{color:#1a55b5}

/* ---------- C5 工具页（进度表 / 日志 / 尾页） ---------- */
.site-ending .btn{border-radius:4px}
.site-ending .btn.primary{background:#c9621d; border-color:#c9621d; color:#fff; font-weight:500}
.site-ending .finale{max-width:860px}
.site-ending .tbox{border-radius:6px}

/* 百科窄屏：目录变成顶部横向标签条 */
@media (max-width:900px){
  .baike-grid{grid-template-columns:1fr; gap:14px}
  .baike-grid > .baike-toc{
    grid-column:1; position:static; display:flex; flex-wrap:wrap; gap:4px 14px;
    border-radius:4px; padding:9px 13px;
  }
  .baike-grid > .baike-toc b{width:100%; margin-bottom:2px}
  .baike-grid > .baike-toc a{display:inline; padding:1px 0}
  .baike-grid > .q-title, .baike-grid > .q-meta, .baike-grid > .answer,
  .baike-grid > .tiny{grid-column:1}
  .site-zhihu .baike-article{font-size:15px}
}

/* ===========================================================
   D · 自适应补齐（v9）
   目标：任何宽度都不横向溢出；窄屏下表单/表格/多栏都能用。
   =========================================================== */

/* ---------- 全局：表格永远可横滚，不撑破布局 ---------- */
table{ max-width:100% }
.site-school .sc-panel, .site-qq .sc-panel{ overflow-x:auto }
.site-school .sc-panel > h3{ position:sticky; left:0 }

/* ---------- 平板 ≤ 900px ---------- */
@media (max-width:900px){
  /* 报纸：三栏 → 两栏 → 单栏 */
  .site-paper .news-sheet{ padding:20px 20px 16px }
  .site-paper .cols{ column-count:2; column-gap:22px }
  .site-paper .news-sheet .name{ font-size:26px }

  /* 监控：网格收窄 */
  .site-cam .cam-shell{ padding:14px 12px 90px }
  .site-cam .cam-grid{ grid-template-columns:repeat(auto-fit,minmax(180px,1fr)) }

  /* IM：侧栏收窄 */
  .site-qq .qq-grid{ grid-template-columns:196px 1fr }
  .site-qq .qq-win{ max-width:100%; margin:12px auto; border-radius:0; border-left:0; border-right:0 }

  /* 档案终端：字段两列 → 一列 */
  .site-archive .arc-kv{ grid-template-columns:120px 1fr }
  .site-archive .arc-shell{ padding:18px 12px 90px }

  /* 论坛：正文收窄 */
  .site-zhihu .answer-body{ max-width:100% }
  .site-zhihu .vote{ width:36px }
}

/* ---------- 手机 ≤ 760px ---------- */
@media (max-width:760px){
  body{ font-size:14.5px }
  .wrap{ padding:18px 14px 110px }

  /* 表格横滚提示 */
  .site-school .sc-panel > .in{ padding:11px }
  .site-school table.roster{ min-width:520px }
  .site-school .sc-panel{ overflow-x:auto; -webkit-overflow-scrolling:touch }

  /* IM：侧栏移到上方，横向排列 */
  .site-qq .qq-grid{ grid-template-columns:1fr }
  .site-qq .qq-side{
    border-right:0; border-bottom:1px solid #cfd8e4;
    max-height:none; overflow:visible; padding-bottom:8px;
  }
  .site-qq .qq-side .friend{ display:inline-flex; margin-right:6px }
  .site-qq .qq-side .grp{ margin-top:6px }
  .site-qq .qq-win{ margin:0; border-radius:0; border-left:0; border-right:0 }
  .site-qq .qq-msgs{ max-height:58vh; padding:14px 12px 8px }
  .site-qq .qq-chathead{ padding:9px 12px }

  /* 教务：表单竖排 */
  .site-school .oldform .row{ flex-wrap:wrap }
  .site-school .oldform .row label{ width:auto; flex-basis:100% }
  .site-school .sc-top{ flex-direction:column; align-items:flex-start; gap:4px }
  .site-school .sc-top .r{ text-align:left }

  /* 报纸：单栏 */
  .site-paper .cols{ column-count:1 }
  .site-paper .news-sheet{ padding:16px 14px 12px; border-left:0; border-right:0 }
  .site-paper .name{ font-size:22px; letter-spacing:.14em }
  .site-paper .btn{ padding:6px 10px; font-size:12.5px }

  /* 档案：五项字段竖排 */
  .site-archive .arc-kv{ grid-template-columns:1fr }
  .site-archive .arc-kv dt{ padding:7px 11px 2px; border-bottom:0 }
  .site-archive .arc-kv dd{ padding:2px 11px 9px; min-height:0 }
  .site-archive .arc-banner{ flex-direction:column; align-items:flex-start; gap:4px }
  .site-archive input[type=text]{ font-size:16px }   /* 移动端不触发缩放 */

  /* 监控 */
  .site-cam .cam-grid{ grid-template-columns:1fr 1fr; gap:8px }
  .site-cam .cam-bar{ font-size:11.5px; padding:8px 10px }
  .site-cam input[type=text]{ font-size:16px }

  /* 论坛 */
  .site-zhihu .zh-head{ height:auto; padding:8px 14px; flex-wrap:wrap }
  .site-zhihu .zh-search{ order:3; flex-basis:100%; max-width:none }
  .site-zhihu .answer-body{ font-size:15px }
  .site-zhihu .answer-meta{ flex-wrap:wrap; gap:8px }

  /* 搜索 */
  .site-search .hero{ padding:24px 14px 18px }
  .site-search .bd-logo svg{width:200px}
  .site-search .searchbox{ border-radius:10px; height:42px }
  .site-search .searchbox input{ padding:0 12px; font-size:16px }
  .site-search .searchbox button{ padding:0 14px; font-size:14px; letter-spacing:1px; white-space:nowrap }
  .site-search .bd-tabs{ gap:16px; font-size:13px; flex-wrap:wrap }
  .site-search .bd-top{ gap:10px; padding:10px 12px 0 }
  .site-search .bd-top-links{ gap:12px; font-size:12px }
  .site-search .bd-top-links a:nth-child(even){display:none}
  .site-search .bd-login{ padding:5px 12px; font-size:12px }
  .site-search .result .ti{ font-size:16.5px }

  /* 微博 */
  .site-weibo .wb-card{ border-radius:6px }
  .site-weibo .wb-text{ font-size:14.5px }

  /* 通用输入字号（防 iOS 缩放） */
  .site-qq input[type=text], .site-school input[type=text], .site-paper input[type=text],
  .site-archive input[type=text], .site-weibo input[type=text]{ font-size:16px }
}

/* ---------- 小手机 ≤ 460px ---------- */
@media (max-width:460px){
  .site-cam .cam-grid{ grid-template-columns:1fr }
  .site-paper .name{ font-size:19px }
  .site-qq .qq-side .friend{ font-size:13px }
  .foot-nav{ gap:6px 10px }
  .foot-nav a{ padding:3px 9px; font-size:12px }
  #pb-notes-fab{ padding:9px 13px; font-size:13px }
}

/* ===========================================================
   E · 细节修正（v9）
   =========================================================== */

/* 气泡里的密文不能折行——这是玩家要抄的东西 */
.msg .bub span[style*="letter-spacing"]{
  white-space:nowrap; display:inline-block;
  font-family:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;
  font-size:15px; letter-spacing:.18em !important;
}
.msg .bub{ max-width:min(78%,620px) }

/* 教务表格：限制最大宽度，避免"姓名"列空得发慌 */
.site-school .sc-panel > .in > table.roster{ max-width:900px }
.site-school table.roster td:nth-child(2){ width:22% }

/* 2014 老系统的小细节：分辨率提示 + 浏览器图标位 */
.site-school .sc-foot{ position:relative }
.site-school .sc-foot::before{
  content:"建议使用 1024×768 以上分辨率浏览　·　最佳效果：Internet Explorer 9 / Chrome";
  display:block; font-size:11.5px; opacity:.62; margin-bottom:6px; letter-spacing:.02em;
}
.site-school .sc-top::before{
  content:"IE"; position:absolute; left:-1px; top:-1px;
  font-family:"JetBrains Mono",monospace; font-size:8.5px; letter-spacing:.06em;
  background:#eaf3ec; color:#2f6b4a; padding:1px 3px; border-radius:0 0 3px 0;
  opacity:.75;
}

/* 打印样式：把伪网站打成能存档的一页纸 */
@media print{
  #pb-notes-fab, #pb-notes-panel, #pb-toast, #toast, .foot-nav, .sc-panel button{ display:none !important }
  body{ background:#fff !important; color:#000 }
  a{ color:#000; text-decoration:underline }
  .site-paper .news-sheet{ border:0; box-shadow:none }
}

/* 选中文本与焦点可见性 */
::selection{ background:rgba(201,98,29,.22); color:inherit }
.site-cam ::selection, .site-archive ::selection, .site-term ::selection{
  background:rgba(125,255,176,.28); color:#fff;
}

/* ===========================================================
   F · 年代锚点（v9）
   2014 年的国产网站几乎都有这几样：备案号、"友情链接"小字行、
   "建议分辨率"、IE 徽章。它们比任何配色都更能定住年代。
   =========================================================== */

/* 伪备案号条 */
.old-sitelaw{
  max-width:880px; margin:26px auto 0; padding:12px 18px;
  border-top:1px solid var(--border); border-bottom:1px solid var(--border);
  text-align:center; font-size:11.5px; line-height:2; color:var(--muted);
  letter-spacing:.02em; opacity:.9;
}
.old-sitelaw a{ color:var(--muted); margin:0 7px; white-space:nowrap }
.old-sitelaw a:hover{ color:var(--accent) }
.old-sitelaw .sep{ opacity:.4; margin:0 2px }
.old-sitelaw .icp{
  display:inline-block; border:1px solid currentColor; border-radius:2px;
  padding:0 4px; margin-left:6px; font-size:10.5px; opacity:.8;
}
/* 老系统专属字体与行距 */
.site-qq, .site-school, .site-paper, .site-cam, .site-term, .site-archive{
  letter-spacing:.01em;
}
.site-paper .old-sitelaw{ max-width:920px; background:#fffdf7; border-color:#cfc8b4 }

/* 监控平台：老安防特有的角标 */
.site-cam .cam-note{
  border-radius:0; border-left:2px solid #2f4a38; background:#080d0a;
}
.site-cam .cam-bar .rec{
  border:1px solid #2f4a38; border-radius:0;
}

/* IM 导出工具：底部的工具条小字 */
.site-qq .qq-foot{
  text-align:center; font-size:11.5px; color:#8a95a4; padding:10px 0 0;
  letter-spacing:.02em;
}

/* 百科正文内部：左照片/信息栏 + 右文 */
.baike-cols{ display:grid; grid-template-columns:170px minmax(0,1fr); gap:24px; align-items:start }
@media (max-width:760px){
  .baike-cols{ grid-template-columns:1fr; gap:16px }
  .baike-cols > div:first-child{ max-width:190px; margin:0 auto }
}

/* ===========================================================
   G · 横向滚动提示（经典 background-attachment 技巧）
   表格能滑，但玩家得知道右边还有东西。
   =========================================================== */
.scroll-x{
  overflow-x:auto; -webkit-overflow-scrolling:touch;
  background:
    linear-gradient(to right, var(--panel,#f3f0e2) 30%, rgba(243,240,226,0)) left center,
    linear-gradient(to left,  var(--panel,#f3f0e2) 30%, rgba(243,240,226,0)) right center,
    radial-gradient(farthest-side at 0 50%, rgba(0,0,0,.13), rgba(0,0,0,0)) left center,
    radial-gradient(farthest-side at 100% 50%, rgba(0,0,0,.13), rgba(0,0,0,0)) right center;
  background-repeat:no-repeat;
  background-size:34px 100%, 34px 100%, 13px 100%, 13px 100%;
  background-attachment:local, local, scroll, scroll;
}
@media (max-width:760px){
  .site-school .sc-panel{ overflow-x:visible }
  .site-school .sc-panel > .in{ overflow-x:auto; -webkit-overflow-scrolling:touch;
    background:
      linear-gradient(to right, var(--panel) 30%, rgba(243,240,226,0)) left center,
      linear-gradient(to left,  var(--panel) 30%, rgba(243,240,226,0)) right center,
      radial-gradient(farthest-side at 0 50%, rgba(0,0,0,.13), rgba(0,0,0,0)) left center,
      radial-gradient(farthest-side at 100% 50%, rgba(0,0,0,.13), rgba(0,0,0,0)) right center;
    background-repeat:no-repeat;
    background-size:34px 100%, 34px 100%, 13px 100%, 13px 100%;
    background-attachment:local, local, scroll, scroll;
  }
  /* 检索行：输入框和按钮同一行 */
  .site-school .sc-panel > .in > .row{ flex-wrap:nowrap }
  .site-school .sc-panel > .in > .row input[type=text]{ flex:1; min-width:0 }
  .site-school .sc-panel > .in > .row .btn{ flex:none }
}

/* ===========================================================
   H · 作者署名与彩蛋（v10）
   水印必须低调：它是署名，不是广告。靠字距和透明度，
   让人在读完一页之后才注意到。
   =========================================================== */
.author-mark{
  max-width:880px; margin:34px auto 10px; padding:0 16px;
  text-align:center; font-size:11px; line-height:1.9;
  letter-spacing:.16em; color:var(--muted); opacity:.5;
  font-family:"Noto Serif SC",Georgia,"Songti SC",serif;
}
.author-mark b{ font-weight:600; letter-spacing:.24em; opacity:.9 }
@media print{ .author-mark{ opacity:1 } }

/* 彩蛋：点开才出现的那一段 */
.egg{
  margin:22px auto 0; max-width:560px; text-align:left;
  border:1px dashed rgba(143,211,164,.32); border-radius:6px;
  background:rgba(143,211,164,.04); padding:14px 18px;
  font-size:13px; line-height:2; color:#c9c4b8;
}
.egg b{ color:#8fd3a4; font-weight:500 }
.egg-sign{
  display:inline-block; margin-top:10px; font-style:italic;
  color:#8fd3a4; letter-spacing:.06em;
}
.egg-toggle{
  display:inline-block; cursor:pointer; user-select:none;
  border-bottom:1px dotted currentColor; color:var(--muted);
  font-size:12px; letter-spacing:.08em;
}
.egg-toggle:hover{ color:var(--accent) }

/* 提示阶梯的视觉：不能像系统消息，要像"有人在旁边说了一句" */
.gate-hint{
  display:block; margin-top:8px; padding:8px 11px;
  border-left:2px solid rgba(217,164,65,.55);
  background:rgba(217,164,65,.07);
  color:#d8c9a6; font-size:13px; line-height:1.85;
}
.gate-hint b{ color:#d9a441; font-weight:600; letter-spacing:.06em }
.gate-hint-btn{
  margin:6px 0 0; font-size:12px; padding:4px 11px;
  border:1px dashed rgba(217,164,65,.45); color:#c3a878;
  background:transparent; cursor:pointer; border-radius:4px;
}
.gate-hint-btn:hover:not(:disabled){ border-style:solid; color:#d9a441 }
.gate-hint-btn:disabled{ opacity:.35; cursor:default }

/* 结局页作者后记 */
.author-note{
  margin:30px auto 0; max-width:720px; text-align:left;
  border-top:1px solid rgba(255,255,255,.08); padding-top:20px;
  font-family:"Noto Serif SC",Georgia,"Songti SC",serif;
  font-size:13.5px; line-height:2.1; color:#8d8878;
}
.author-note b{ color:#c9c4b8; font-weight:500 }
.author-note .sign{
  display:block; margin-top:14px; font-style:italic;
  color:#a8a294; letter-spacing:.08em;
}

/* 擦掉重写：危险色，和"誊写"区分开 */
.scribe-btn.warn{
  color:#c07a5c; border-color:rgba(192,122,92,.42);
}
.scribe-btn.warn:hover{ background:rgba(192,122,92,.12); border-color:#c07a5c; color:#d98a68 }

/* 调查日志里的输入框 / 文本域（site-ending 皮肤） */
.site-ending input[type=text],
.site-ending textarea{
  background:rgba(0,0,0,.3); color:#ddd;
  border:1px solid var(--border); border-radius:8px;
  padding:10px 12px; font-size:13.5px;
}
.site-ending input[type=text]:focus,
.site-ending textarea:focus{ outline:none; border-color:var(--accent) }
.site-ending textarea{ width:100%; font-family:"JetBrains Mono",ui-monospace,monospace }

/* 提示框独立成块，和「不对」那行分层 */
.gate-hint-box:empty{ display:none }
.gate-hint-box{ margin-top:8px }
.gate-hint{
  display:block; padding:9px 13px;
  border-left:2px solid rgba(217,164,65,.55);
  background:rgba(217,164,65,.08);
  color:#d8c9a6; font-size:13px; line-height:1.85;
}
.gate-hint b{ color:#d9a441; font-weight:600; letter-spacing:.06em }
.site-school .gate-hint, .site-archive .gate-hint, .site-cam .gate-hint{ color:#cfc4a6 }

/* ===========================================================
   I · 离开与回来（v11）
   机制是「时间会带走记忆」——那就让玩家自己撞上它一次。
   =========================================================== */
.away-note{
  position:fixed; right:18px; bottom:78px; z-index:9998;
  max-width:300px; padding:11px 15px;
  background:rgba(18,16,13,.95); border:1px solid rgba(217,164,65,.42);
  border-radius:8px; color:#d8c9a6; font-size:12.5px; line-height:1.8;
  box-shadow:0 10px 34px rgba(0,0,0,.55);
  animation:awayIn .55s cubic-bezier(.2,.8,.3,1) both;
}
.away-note b{ color:#d9a441; font-weight:600 }
.away-note-out{ animation:awayOut .7s ease both }
@keyframes awayIn{ from{ opacity:0; transform:translateY(10px) } to{ opacity:1; transform:none } }
@keyframes awayOut{ from{ opacity:1 } to{ opacity:0; transform:translateY(6px) } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}
@media (max-width:460px){
  .away-note{ left:12px; right:12px; max-width:none; bottom:74px; font-size:12px }
}
/* 结局页：切走标签页时，标题会变 */
body.away-title-hide{ }

/* 足迹列表 */
.trail-item{
  display:flex; align-items:center; gap:10px;
  padding:8px 10px; margin-bottom:4px; cursor:pointer;
  border:1px solid transparent; border-radius:7px;
  font-size:13px; color:#c9c4b8; transition:background .15s, border-color .15s;
}
.trail-item:hover{ background:rgba(143,211,164,.08); border-color:rgba(143,211,164,.28) }
.trail-item.on{ color:#8fd3a4; background:rgba(143,211,164,.06); cursor:default }
.trail-item .t-no{
  font-family:'JetBrains Mono',ui-monospace,monospace; font-size:10px;
  color:#6d6a63; min-width:18px; text-align:right;
}
.trail-item .t-nm{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap }
.trail-item .t-go{ font-size:11px; color:#5f5a52; flex:none }
.trail-item:hover .t-go{ color:#8fd3a4 }
.trail-item.on .t-go{ color:#4f9a6f }

/* 结局枚举 */
.out-count{
  margin:26px auto 0; max-width:720px; text-align:left;
  border:1px solid rgba(255,255,255,.07); border-radius:8px; padding:14px 18px;
  background:rgba(255,255,255,.02);
}
.out-count .oc-head{ font-size:13px; color:#9b978e; margin-bottom:10px }
.out-count .oc-head b{ color:#d9a441; font-size:17px; font-weight:600 }
.out-count .oc-list{ display:flex; flex-wrap:wrap; gap:8px }
.out-count .oc-item{
  font-size:12px; color:#5f5a52; padding:4px 10px;
  border:1px dashed rgba(255,255,255,.12); border-radius:5px;
}
.out-count .oc-item.on{ color:#8fd3a4; border-style:solid; border-color:rgba(143,211,164,.35); background:rgba(143,211,164,.06) }
.out-count .oc-note{ margin-top:11px; font-size:12.5px; color:#7d7a72; line-height:1.85 }
.out-count .oc-note b{ color:#c9c4b8 }

/* 四出口导航：查看自由，决定不可撤销 */
.out-nav{
  margin:0 auto 22px; max-width:760px; text-align:left;
  border:1px solid rgba(255,255,255,.07); border-radius:9px;
  padding:14px 16px; background:rgba(255,255,255,.02);
}
.out-nav .on-title{ font-size:12.5px; color:#9b978e; letter-spacing:.1em }
.out-nav .on-sub{ font-size:12px; color:#6d6a63; margin:4px 0 11px; line-height:1.7 }
.out-nav .on-list{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:8px }
.on-btn{
  display:flex; flex-direction:column; align-items:flex-start; gap:3px;
  padding:9px 12px; cursor:pointer; text-align:left;
  background:rgba(255,255,255,.03); color:#c9c4b8;
  border:1px solid rgba(255,255,255,.1); border-radius:7px;
  transition:border-color .15s, background .15s;
}
.on-btn:hover{ border-color:rgba(143,211,164,.45); background:rgba(143,211,164,.07) }
.on-btn .on-n{ font-size:10.5px; letter-spacing:.14em; color:#6d6a63 }
.on-btn .on-t{ font-size:13px; color:#ddd9d0 }
.on-btn.locked{ opacity:.5; border-style:dashed }
.on-btn.locked .on-t{ color:#6d6a63 }
.on-btn.cur{ border-color:rgba(217,164,65,.6); background:rgba(217,164,65,.08) }
.on-btn.cur .on-n{ color:#d9a441 }

/* 回看另外三个出口 */
.rechoose{
  display:inline-block; padding:8px 18px; border-radius:7px;
  border:1px solid rgba(255,255,255,.14); color:#c9c4b8;
  font-size:13px; text-decoration:none; transition:border-color .15s, background .15s;
}
.rechoose:hover{ border-color:rgba(217,164,65,.55); color:#d9a441; background:rgba(217,164,65,.07) }

/* ---------- Interaction and small-screen finishing pass ---------- */
html.pb-overlay-open{overflow:hidden}

#pb-notes-backdrop{
  position:fixed; inset:0; z-index:79; background:rgba(7,8,11,.38);
  opacity:0; pointer-events:none; transition:opacity .2s;
}
#pb-notes-backdrop.on{opacity:1;pointer-events:auto}
#pb-notes-panel{max-height:100dvh;overscroll-behavior:contain}
#pb-notes-body,#pb-toolbox-body{overscroll-behavior:contain}
#pb-notes-head{flex-wrap:wrap}
#pb-notes-head .nb-stat{margin-left:auto}
.nb-tabs{overflow-x:auto;overscroll-behavior-x:contain}
.nb-tab{min-height:40px;white-space:nowrap}
#pb-toolbox{max-height:min(82dvh,760px);padding-bottom:env(safe-area-inset-bottom,0px)}
#pb-toolbox-backdrop{touch-action:none}
#pb-notes-fab,.tb-fab{
  min-width:44px;min-height:44px;
  bottom:calc(16px + env(safe-area-inset-bottom,0px));
}
.trail-item{
  appearance:none;width:100%;text-align:left;font-family:inherit;
  background:transparent;border-width:1px;
}
.trail-item:disabled{opacity:1}
.kr-item.locked{opacity:.72}
.kr-dim{color:#a7a398}
.kr-item .kr-row{flex-wrap:wrap}

/* A clue that can be opened by click also advertises that action to keyboard users. */
[data-clue][role="button"]{
  cursor:pointer;text-decoration:underline;text-decoration-style:dotted;
  text-decoration-color:rgba(217,164,65,.65);text-underline-offset:3px;
}
[data-clue][role="button"]:hover{color:var(--accent)}
[data-clue][role="button"]:focus-visible{
  outline:2px solid var(--accent);outline-offset:3px;border-radius:2px;
}

.gate-hint-box{flex:1 0 100%;width:100%;min-width:0}
.gate-hint{overflow-wrap:anywhere}
.site-qq .gate-hint,.site-school .gate-hint,.site-paper .gate-hint,
.site-weibo .gate-hint,.site-zhihu .gate-hint{
  color:#55462d;background:rgba(217,164,65,.13);border-left-color:#9b6d1c;
}
.site-qq .gate-hint b,.site-school .gate-hint b,.site-paper .gate-hint b,
.site-weibo .gate-hint b,.site-zhihu .gate-hint b{color:#714d11}

.site-search .sugg{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}
.site-search .sugg > span{color:#9195A3}
.site-search .sugg-chip{
  appearance:none;border:1px solid #e6e8ee;border-radius:14px;padding:3px 12px;
  background:#f5f7fa;color:#222;font:inherit;font-size:13px;cursor:pointer;
}
.site-search .sugg-chip:hover{border-color:#4e6ef2;color:#4e6ef2;background:#fff}
.site-search .sugg-chip:focus-visible,.egg-toggle:focus-visible{
  outline:2px solid var(--accent);outline-offset:3px;border-radius:3px;
}
.egg-toggle{
  appearance:none;border:0;border-bottom:1px dotted currentColor;padding:2px 0;
  background:transparent;font:inherit;color:var(--muted);cursor:pointer;
}

.school-title{
  display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;
}
.school-account{font-weight:400;font-size:12px;font-family:var(--mono)}
.record-rules{border:1px solid #b9c3ac;background:#f4f5e9;padding:10px 13px;margin:0 0 16px;color:#535b48;font-size:12px;line-height:1.75}
.record-rules ol{margin:5px 0 0;padding-left:20px}
.roster-view-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px;padding:9px 11px;border:1px solid #b9c3ac;background:#eeefdf}
.roster-view-tabs{display:flex;gap:7px;flex-wrap:wrap}
.roster-view-note{font-size:11.5px;color:#6f6a55;line-height:1.6}
.roster-version{margin:0 0 12px;padding:10px 12px;border-left:3px solid #8a6b3a;background:#f5f2e5;color:#58513f;font-size:12.5px;line-height:1.8}
.roster-anomaly{margin-top:14px}
.archive-rules{border:1px solid rgba(143,211,164,.24);padding:9px 12px;margin:0 0 16px;color:#91a58f;font-size:12px;line-height:1.8}
.school-account a{color:#1f5c3d;text-decoration:underline}
.school-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.school-tabs,.school-search{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.school-search{margin-left:auto}
.school-search input{width:min(220px,55vw);min-width:0}
.school-tabs [aria-pressed="true"]{box-shadow:inset 0 0 0 1px rgba(47,122,79,.22)}

.site-archive .arc-panel > .in{min-width:0}
.site-archive .arc-kv dd{min-width:0;overflow-wrap:anywhere}
.site-archive .terminal-log{overflow-wrap:anywhere}
.site-cam .cam-gate-box{width:min(100%,460px)}
.site-cam .cam-grid{min-width:0}
.site-paper .classified{break-inside:avoid}
.progress-steps{display:grid;gap:10px}
.progress-step{
  min-width:0;border:1px solid rgba(255,255,255,.09);border-left:3px solid rgba(217,164,65,.45);
  border-radius:7px;padding:13px 14px;background:rgba(255,255,255,.025);
}
.progress-step.done{border-left-color:#8fb08a;background:rgba(143,176,138,.045)}
.progress-step-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.progress-step-no{font:11px "JetBrains Mono",monospace;color:#d9a441;white-space:nowrap}
.progress-step-name{flex:1;min-width:150px;font-size:15px}
.progress-step-name a{color:#e8e4db}
.progress-step-name a:hover{color:var(--accent);text-decoration:underline}
.progress-step-status{font-size:12px;white-space:nowrap}
.progress-step-desc{margin:7px 0 10px;color:#b8b3aa;font-size:13px;line-height:1.7}
.progress-step-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 14px}
.progress-step-meta>div{display:grid;gap:3px;min-width:0}
.progress-step-meta b{font:10px "JetBrains Mono",monospace;letter-spacing:.05em;color:#8d8a82}
.progress-step-meta span{font-size:12.5px;line-height:1.65;color:#b8b3aa;overflow-wrap:anywhere}
.progress-step-meta .grant{color:#d9c080}
.progress-step-meta .pending{color:#77736b}

@media(max-width:760px){
  body{padding-bottom:calc(82px + env(safe-area-inset-bottom,0px))}
  .wrap,.cam-shell,.arc-shell{padding-bottom:calc(86px + env(safe-area-inset-bottom,0px))}
  .school-toolbar{align-items:stretch}
  .school-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}
  .school-tabs .btn{justify-content:center;padding-inline:6px;font-size:12px;white-space:normal;min-height:44px}
  .school-search{width:100%;margin-left:0}
  .school-search input{flex:1;width:auto;font-size:16px;min-height:44px}
  .school-search .btn{min-height:44px}
  .site-qq .friend{min-height:44px}
  .site-qq .file{min-height:54px}
  .site-cam .cam-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .site-cam .cam-cell{min-width:0}
  .site-archive .arc-shell{padding-inline:12px}
  .site-archive .arc-panel > .in{padding:14px 12px}
  .site-archive .arc-kv dd{font-size:13px}
  .site-archive .arc-panel .row{flex-wrap:wrap}
  .site-archive .arc-panel .row .btn{flex:1 1 140px;min-height:44px}
}
@media(max-width:560px){
  #pb-notes-head{
    display:grid;grid-template-columns:minmax(0,1fr) auto;
    gap:6px 10px;padding:12px 14px;
  }
  #pb-notes-head h3{grid-column:1;grid-row:1}
  #nb-stat{grid-column:1/-1;grid-row:2;margin:0;white-space:normal;line-height:1.5}
  #pb-prev{grid-column:1;grid-row:3;justify-self:start;max-width:100%;overflow:hidden;text-overflow:ellipsis}
  #pb-notes-close{grid-column:2;grid-row:1;min-height:40px}
  #pb-notes-body{padding:12px 13px calc(24px + env(safe-area-inset-bottom,0px))}
  .nb-tabs{padding-inline:10px}
  .nb-tab{flex:1 0 auto;padding-inline:9px}
  #pb-toolbox{width:calc(100vw - 16px);max-height:calc(88dvh - env(safe-area-inset-top,0px));border-radius:10px}
  #pb-toolbox-body{padding:13px 12px calc(24px + env(safe-area-inset-bottom,0px))}
  .site-paper .masthead .sub{justify-content:center}
  .site-qq .qq-chathead{align-items:flex-start}
  .site-qq .qq-chathead .spacer{display:none}
  .site-qq .qq-chathead .btn{min-height:40px}
  .site-archive .arc-kv{grid-template-columns:minmax(0,1fr)}
  .site-archive .arc-kv dt{padding:8px 10px 2px}
  .site-archive .arc-kv dd{padding:2px 10px 9px}
  .site-archive .terminal-log{max-height:42vh;padding:10px;font-size:12px}
  .site-ending .tbox{padding:15px 13px}
  .site-ending .out-nav .on-list{grid-template-columns:1fr}
  .site-ending .on-btn{min-height:48px}
  .site-ending .kept-item .kt{flex-basis:auto}
  .progress-step{padding:11px 10px}
  .progress-step-head{gap:7px}
  .progress-step-name{min-width:0;font-size:14px}
  .progress-step-meta{grid-template-columns:1fr;gap:8px}
}
@media(max-width:380px){
  .school-tabs{grid-template-columns:1fr}
  .site-cam .cam-grid{grid-template-columns:1fr}
  .site-cam .cam-bar .l{gap:7px}
  #pb-notes-fab,#pb-notes-fab:hover,.tb-fab,.tb-fab:hover{
    width:44px;height:44px;padding:0;justify-content:center;
  }
}
.site-paper button.dots{
  appearance:none;display:block;width:100%;padding:5px 2px;border:0;border-radius:3px;
  background:transparent;text-align:left;font:inherit;color:#2b2b26;cursor:pointer;
}
.site-paper button.dots:hover{background:rgba(122,31,20,.06)}
.site-paper button.dots:focus-visible{outline:2px solid #7a1f14;outline-offset:2px}
.site-school .captcha{appearance:none;cursor:pointer;min-height:40px}
.site-school .captcha:focus-visible{outline:2px solid #2f6b4a;outline-offset:2px}
.site-search .sugg-chip{min-height:32px}
@media(max-width:760px){
  #pb-notes-fab{right:calc(14px + env(safe-area-inset-right,0px))}
  .tb-fab{left:calc(14px + env(safe-area-inset-left,0px))}
  .btn.sm,.nb-tab,.tb-tab,.scribe-btn{min-height:40px}
  .site-paper button.dots{min-height:44px}
  .site-school .captcha{min-height:44px;min-width:96px;padding-inline:5px;letter-spacing:.18em;white-space:nowrap}
}
@media(max-width:560px){
  #pb-notes-head{
    grid-template-columns:minmax(0,1fr) auto;
  }
  #pb-notes-head .nb-stat{font-size:11px;letter-spacing:.02em}
}

/* 玩家自己的证据批注：选中只表示“我的表述”，不表示系统判定。 */
.evidence-note{
  margin:16px 0 4px;padding:14px 15px;border:1px solid rgba(217,164,65,.34);
  border-radius:6px;background:rgba(217,164,65,.045);color:#c9c4b8;
}
.evidence-note-kicker{
  margin-bottom:7px;font-family:'JetBrains Mono',monospace;font-size:10.5px;
  letter-spacing:.16em;color:#d9a441;
}
.evidence-note-q{margin:0 0 10px;font-size:13.5px;line-height:1.75}
.evidence-note-options{display:grid;gap:7px}
.evidence-note-option{
  appearance:none;width:100%;padding:9px 11px;border:1px solid rgba(255,255,255,.12);
  border-radius:4px;background:transparent;color:inherit;font:inherit;font-size:13px;
  line-height:1.65;text-align:left;cursor:pointer;
}
.evidence-note-option:hover{border-color:rgba(217,164,65,.55)}
.evidence-note-option.selected{border-color:#d9a441;background:rgba(217,164,65,.09)}
.evidence-note-option:focus-visible{outline:2px solid #d9a441;outline-offset:2px}
.site-school .evidence-note{background:#faf8f1;border-color:#d8cba9;color:#403e37}
.site-school .evidence-note-kicker{color:#806427}
.site-school .evidence-note-option{border-color:#d6d0c0;background:#fff}
.site-school .evidence-note-option.selected{border-color:#a1833d;background:#f5efdd}
.site-term .evidence-note{margin:12px 8px 0}
@media(max-width:560px){.evidence-note-option{min-height:44px}}

/* ===========================================================
   百度百科皮肤覆盖（在 site-zhihu 基础上换皮）
   =========================================================== */
.site-baike{--accent:#2932e1;}
.site-baike .zh-head{background:#fff; border-bottom:1px solid #e6e8ee;}
.bd-baike-logo{display:inline-flex; align-items:baseline; gap:4px; text-decoration:none;}
.bd-baike-word{
  font-family:Arial, sans-serif; font-size:26px; font-weight:700; color:#2932e1; letter-spacing:-1px;
}
.bd-baike-cn{
  font-family:"Microsoft YaHei",sans-serif; font-size:22px; font-weight:700; color:#f01414; margin-left:2px;
}
.bd-baike-btn{
  background:#fff; color:#333; border:1px solid #c8c8c8; padding:6px 14px; font-size:13px;
}
.bd-baike-btn:hover{border-color:#2932e1; color:#2932e1; background:#fff;}
.bd-baike-btn.primary{
  background:#2932e1; color:#fff; border-color:#2932e1;
}
.bd-baike-btn.primary:hover{background:#1f26b8; color:#fff; border-color:#1f26b8;}
.site-baike .q-title{font-size:28px; font-weight:600; color:#222;}
.site-baike .baike-toc{
  background:#f7f8fa; border:1px solid #e6e8ee; border-radius:6px; padding:14px 16px;
}
.site-baike .baike-toc b{color:#222; font-size:14px;}
.site-baike .baike-toc a{color:#2932e1; font-size:13.5px; padding:3px 0; display:block;}
.site-baike .baike-toc a:hover{text-decoration:underline;}
.site-baike h2{color:#222; border-left:3px solid #2932e1; padding-left:10px;}

/* 证据对照与窄屏操作 */
.btn:focus-visible,a:focus-visible,[role="button"]:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
#tab-changes{overflow-x:auto}
#tab-changes table.roster{min-width:620px}
@media(max-width:760px){
  .roster-view-bar{align-items:stretch}
  .roster-view-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
  .roster-view-tabs .btn{justify-content:center;min-height:44px;padding-inline:7px}
  .roster-view-note{width:100%}
  .site-archive #write-name{min-width:0;font-size:16px}
  .progress-reference{min-width:600px}
}
.server-record{max-width:520px;margin:18px auto 0;padding:12px;border:1px solid #35473d;background:#101713;color:#a9b6ad}
.server-record img{display:block;width:100%;height:auto;border:1px solid #526158}
.server-record figcaption{margin-top:9px;font-size:12px;line-height:1.8}
