/* ==========================================================================
   portal-theme.css — 检测系统各页面共用的统一视觉层（2026-11-03）
   加载在各模板自带 <style> 之后：只统一外观（令牌、按钮、表单、卡片、状态、焦点、手机尺寸），
   不改任何 id / name / data-* / 事件绑定，也不改接口与权限。
   ========================================================================== */
:root{
  --ink:#17352f;--ink2:#2c5047;--deep:#12302a;
  --bg:#f8f5ee;--card:#fff;--text:#17352f;--line:#d9d5c6;--soft:#eef3ef;
  --muted:#55665e;--accent:#1d4f7a;--accent-weak:#e6eef5;
  --ok:#1f6a4a;--warn:#8a4b1f;--err:#a32d2d;--danger:#a32d2d;--bad:#a32d2d;
  --radius:10px;--pt-shadow:0 1px 2px rgba(23,53,47,.06),0 6px 18px rgba(23,53,47,.05);
}
html{-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,"PingFang SC","Microsoft YaHei","Segoe UI",sans-serif;-webkit-font-smoothing:antialiased;overflow-wrap:anywhere}

/* ---- 统一顶部导航（pt-nav）---- */
.pt-nav{background:var(--deep);color:#e9efe9;border-bottom:3px solid #b29b69;font-size:14px}
.pt-nav .pt-in{max-width:1180px;margin:0 auto;padding:6px 14px;display:flex;flex-wrap:wrap;align-items:center;gap:2px 4px}
.pt-nav .pt-brand{font-weight:700;letter-spacing:.04em;margin-right:10px;padding:8px 0;color:#fff;text-decoration:none;white-space:nowrap}
.pt-nav .pt-tag{font-size:11px;border:1px solid #b29b69;color:#e6cf9a;border-radius:4px;padding:1px 6px;margin-right:8px;white-space:nowrap}
.pt-nav .pt-in a{color:#dfe8e2;text-decoration:none;padding:10px 10px;min-height:44px;display:inline-flex;align-items:center;border-radius:6px}
.pt-nav .pt-in a:hover{background:rgba(255,255,255,.1)}
.pt-nav .pt-in a[aria-current="page"]{background:#fff;color:var(--deep);font-weight:700}
.pt-nav .pt-in a.pt-site{margin-left:auto;color:#e6cf9a}
.pt-nav .pt-site[hidden]{display:none}

/* ---- 头部 / 标题 ---- */
header{background:var(--ink);color:#fff}
h1,h2,h3{letter-spacing:.01em}
a{text-underline-offset:3px}
main a:not([class]):not(.linkbtn){color:var(--accent)}
header a:not([class]){color:#d6e4dc}

/* ---- 卡片 / 区块 ---- */
.card,section.card{border-radius:var(--radius);border-color:var(--line);box-shadow:var(--pt-shadow)}
main>section,main section.card{border-radius:var(--radius)}

/* ---- 按钮（主/次/危险/禁用）---- */
button,a.linkbtn{border-radius:8px;font-family:inherit;min-height:44px;touch-action:manipulation;transition:background .15s,box-shadow .15s,opacity .15s}
button:not(.ghost):not(.alt):not(.danger):not(.primary):not([class*="tab"]){background:var(--ink);color:#fff;border:1px solid var(--ink)}
button.primary{background:var(--accent);border-color:var(--accent);color:#fff}
button.ghost{background:#fff;color:var(--ink);border:1px solid var(--ink)}
button.danger{background:var(--err);border-color:var(--err);color:#fff}
button:hover:not(:disabled){box-shadow:0 2px 8px rgba(23,53,47,.18)}
button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}

/* ---- 表单 ---- */
label{font-weight:600;color:var(--ink)}
input,select,textarea{font-family:inherit;border:1px solid #7f8f86;border-radius:8px;background:#fff;color:var(--ink);min-height:44px}
textarea{min-height:72px}
input[type=checkbox],input[type=radio]{min-height:0;width:auto;accent-color:var(--ink)}
input[type=file]{padding:8px}
input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-weak);outline:none}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
header :focus-visible,.pt-nav :focus-visible{outline-color:#f0dcae}
::placeholder{color:#7a877f}

/* ---- 状态：不只靠颜色，文字仍需写明（模板文案不变）---- */
.muted{color:var(--muted)}
.err,.error{color:var(--err)}
.ok{color:var(--ok)}
.badge,.pill,.tag,.chip{border-radius:999px;padding:2px 9px;font-size:12px;background:var(--soft);color:var(--ink);border:1px solid #c9d6ce;display:inline-block}
.badge.warn{background:#f6e9d8;border-color:#e0c9a8;color:#6b3a14}
.badge.bad,.badge.err{background:#f7e1e1;border-color:#e3b9b9;color:#7d1f1f}
.badge.ok{background:#e1f0e8;border-color:#b6d6c4;color:#14543a}
.locked-warning{border:1px solid #e0c9a8;background:#fbf2e4;border-radius:8px;padding:10px 12px}

/* ---- 表格 ---- */
table{border-collapse:collapse;font-variant-numeric:tabular-nums}
th{background:#eef1ea;color:var(--ink);font-weight:600}
th,td{border-bottom:1px solid var(--line)}

/* ---- 图片 / 编号 ---- */
img{max-width:100%;height:auto}
code,.mono,.code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow-wrap:anywhere;word-break:break-all}

/* ---- 手机 ---- */
@media(max-width:700px){
  .pt-nav .pt-in{padding:4px 10px;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
  .pt-nav .pt-in>*{flex:none}
  .pt-nav .pt-in a.pt-site{margin-left:0}
  .pt-nav a{padding:10px 9px}
  table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  main{padding-left:12px;padding-right:12px}
  button{min-height:48px}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ---- 后台宽屏布局：电脑端放宽内容区、卡片更紧凑；手机仍单列 ---- */
@media(min-width:1100px){
  body:has(.pt-nav[data-aud="staff"]) main{max-width:min(1240px,96vw)}
  body:has(.pt-nav[data-aud="staff"]) section.card,body:has(.pt-nav[data-aud="staff"]) .card{padding:18px 20px}
}
body:has(.pt-nav[data-aud="staff"]) header{border-bottom:1px solid rgba(255,255,255,.12)}
.internal-only{background:#f6e9d8;border-color:#d9b98a;color:#6b3a14;font-weight:700}


/* ---- 科技 × 古典（与主站一致）---- */
.pt-nav{border-bottom:0;position:relative;background-image:linear-gradient(rgba(127,208,230,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(127,208,230,.05) 1px,transparent 1px);background-size:28px 28px}
.pt-nav::after{content:"";display:block;height:8px;background:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='12' viewBox='0 0 16 12'%3E%3Cpath d='M1 11V1h12v8H5V5h4' fill='none' stroke='%23b29b69' stroke-width='1.3' stroke-linecap='square'/%3E%3C/svg%3E") repeat-x center/16px 8px;opacity:.8}
.pt-nav .pt-brand{font-family:Georgia,"Songti SC","Noto Serif SC",serif;font-size:16px}
.pt-nav .pt-tag{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.08em}
header{background-image:linear-gradient(rgba(127,208,230,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(127,208,230,.05) 1px,transparent 1px);background-size:28px 28px;background-color:var(--ink)}
h1,h2{font-family:Georgia,"Songti SC","Noto Serif SC","PingFang SC",serif}
.card,section.card,main>section{border-color:#cdbf97}
.card h2,section.card>h2{position:relative;padding-bottom:8px}
.card h2::after,section.card>h2::after{content:"";position:absolute;left:0;bottom:0;width:48px;height:2px;background:linear-gradient(90deg,var(--accent),#b29b69)}
body{background-image:radial-gradient(900px 400px at 90% -10%,rgba(178,155,105,.10),transparent 60%)}
