/* 企补查 Web · 设计系统（自小程序 app.wxss 移植，档案墨色板 §3） */
:root{
  --ink:#16191A; --slate:#3D5A6C; --slate-lift:#7FA3B4; --paper:#F0F1F0;
  --ink-80:#43484A; --ink-55:#7A8184; --ink-35:#A9AFB1;
  --line:#DCDEDD; --line-soft:#E7E9E8; --surface:#FFFFFF; --surface-2:#F7F8F7;
  --pass:#3F6B54; --warn:#8A6A22; --fail:#9E3B2C;
  --pass-bg:rgba(63,107,84,.10); --warn-bg:rgba(138,106,34,.12); --fail-bg:rgba(158,59,44,.09); --slate-bg:rgba(61,90,108,.10);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--paper); color:var(--ink);
  font-family:-apple-system,"PingFang SC","HarmonyOS Sans SC",sans-serif;
  font-size:16px; line-height:1.7; -webkit-font-smoothing:antialiased;
}
.serif{font-family:"Songti SC","STSong",serif}
.mono{font-family:"SF Mono",Menlo,monospace}

/* 手机宽度容器，居中，模拟小程序观感 */
#app{max-width:460px; margin:0 auto; min-height:100vh; background:var(--paper); position:relative; padding-bottom:96px}
.wrap{padding:0 20px}

/* 顶栏 */
.nav{position:sticky; top:0; z-index:30; background:var(--ink); color:var(--paper); display:flex; align-items:center; gap:10px; padding:12px 16px}
.nav .back{cursor:pointer; font-size:15px; opacity:.85}
.nav .t{font-family:"Songti SC",serif; font-size:17px; font-weight:700; flex:1}
.nav .ent{font-size:12px; opacity:.7; cursor:pointer}

.eyebrow{font-family:"SF Mono",Menlo,monospace; font-size:11px; letter-spacing:2px; text-transform:uppercase; color:var(--ink-55); margin-bottom:8px}
.vtitle{font-family:"Songti SC","STSong",serif; font-size:27px; font-weight:700; line-height:1.3; white-space:pre-line}
.vsub{color:var(--ink-55); font-size:14px; margin-top:8px}
.sec-hd{font-family:"Songti SC",serif; font-size:19px; font-weight:700; margin:26px 0 12px}

.card{background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:18px; margin-bottom:14px}
.divider{height:1px; background:var(--line-soft); margin:18px 0}

/* 按钮 */
.btn{display:block; width:100%; background:var(--ink); color:var(--paper); border:none; border-radius:10px; font-size:16px; font-weight:500; padding:14px 0; text-align:center; cursor:pointer; line-height:1.4}
.btn:disabled{background:var(--ink-35); cursor:not-allowed}
.btn.ghost{background:transparent; color:var(--ink); border:1px solid var(--line)}
.btn.sm{font-size:14px; padding:10px 16px; width:auto; display:inline-block}
.footbar{position:fixed; left:0; right:0; bottom:0; z-index:20; max-width:460px; margin:0 auto; background:rgba(255,255,255,.97); border-top:1px solid var(--line); padding:12px 20px; display:flex; gap:12px}
.footbar .btn{flex:1}
.footbar .btn.ghost{flex:0 0 120px}

/* 选项按钮（诊断表单） */
.opt{display:block; width:100%; text-align:left; background:var(--surface); border:1px solid var(--line); border-radius:10px; padding:14px 16px; margin-bottom:10px; font-size:15px; cursor:pointer; color:var(--ink)}
.opt.on{border-color:var(--slate); background:var(--slate-bg); color:var(--ink); font-weight:600}
.opt.multi.on{border-color:var(--slate)}
.field-label{font-size:14px; color:var(--ink-80); font-weight:600; margin:16px 0 8px}
.field-hint{font-size:12px; color:var(--ink-55); margin-bottom:8px}

/* 进度点 */
.dots{display:flex; gap:6px; padding:14px 0}
.dots .d{width:7px; height:7px; border-radius:50%; background:var(--line)}
.dots .d.on{background:var(--ink)}
.dots .d.done{background:var(--ink-55)}

/* 标签 */
.tag{display:inline-block; font-size:11px; font-weight:600; padding:2px 9px; border-radius:5px; line-height:1.6}
.t-ELIGIBLE{color:var(--pass); background:var(--pass-bg)}
.t-LIKELY_ELIGIBLE{color:var(--warn); background:var(--warn-bg)}
.t-PLANNABLE{color:var(--ink-80); background:var(--surface-2); border:1px solid var(--line)}
.t-NOT_APPLICABLE{color:var(--fail); background:var(--fail-bg)}
.degraded{display:inline-block; font-size:11px; color:var(--warn); background:var(--warn-bg); padding:1px 8px; border-radius:4px; margin-top:6px}
.basis{font-size:11px; color:var(--ink-35); margin-top:4px; line-height:1.5}

/* 数据基准条 */
.databar{display:flex; align-items:center; gap:10px; background:var(--surface); border:1px solid var(--line); border-radius:10px; padding:12px 14px; font-size:13px; color:var(--ink-55); margin-bottom:14px}
.databar .txt{flex:1}.databar .b{color:var(--ink); font-weight:600}
.databar .act{color:var(--ink); border:1px solid var(--line); background:var(--surface-2); padding:6px 12px; border-radius:8px; cursor:pointer; font-size:13px}

/* 统计卡 */
.stat{background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:18px; margin-bottom:14px}
.st-row{display:flex}.st{flex:1}
.st-n{font-size:28px; font-weight:700; line-height:1.2}
.st-l{font-size:12px; color:var(--ink-55); margin-top:2px}
.st-m{font-family:"Songti SC",serif; font-size:22px; font-weight:700; margin-top:4px}
.st-div{height:1px; background:var(--line-soft); margin:14px 0}
.st-note{font-size:11px; color:var(--ink-55); margin-top:12px; padding-top:10px; border-top:1px dashed var(--line-soft)}

/* 分组标题 */
.grp-hd{display:flex; align-items:baseline; margin:22px 0 10px}
.grp-hd .when{font-family:"Songti SC",serif; font-size:18px; font-weight:700}
.grp-hd .cnt{font-family:"SF Mono",Menlo,monospace; font-size:12px; color:var(--ink-55); margin-left:8px}
.grp-hd .sum{margin-left:auto; font-family:"SF Mono",Menlo,monospace; font-size:13px; font-weight:600}
.note{font-size:13px; color:var(--ink-80); background:var(--surface-2); padding:12px 14px; border-radius:10px; margin-bottom:12px; line-height:1.7}
.note .b{color:var(--ink); font-weight:600}

/* 政策条目 */
.opp{background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:14px 16px; margin-bottom:10px}
.opp.now,.opp.tax{border-left:5px solid var(--pass)}
.opp.soon,.opp.event{border-left:5px solid var(--ink-55)}
.opp.later{border-left:5px solid var(--ink-35)}
.opp.unsure{border-left:5px solid var(--warn)}
.opp.accent-item{border-left:5px solid var(--slate)}
.opp-row{display:flex; justify-content:space-between; align-items:flex-start}
.opp-nm{font-size:16px; font-weight:600; line-height:1.4; flex:1; padding-right:10px}
.opp-amt{font-family:"SF Mono",Menlo,monospace; font-size:15px; font-weight:600; text-align:right; white-space:nowrap}
.opp-amt.none{font-size:12px; color:var(--ink-35); font-weight:400}
.opp-meta{font-size:12px; color:var(--ink-55); margin-top:6px}
.opp-meta .lv{font-family:"SF Mono",Menlo,monospace; font-size:11px; padding:1px 7px; background:var(--surface-2); border:1px solid var(--line-soft); border-radius:4px; margin-right:8px}
.opp-need{font-size:13px; color:var(--ink-80); margin-top:8px; padding-top:8px; border-top:1px dashed var(--line-soft)}
.opp-need .b{color:var(--ink); font-weight:600}

/* 深色区块 / 付费墙 */
.dark,.paywall{background:var(--ink); color:var(--paper); border-radius:12px; padding:20px; margin-top:18px}
.dark .h,.pw-t{font-family:"Songti SC",serif; font-size:19px; font-weight:700; margin-bottom:10px}
.dark .p{font-size:13px; color:rgba(240,241,240,.78); line-height:1.75}
.pw-l{font-size:14px; color:rgba(240,241,240,.82); line-height:1.7; padding:6px 0 6px 18px; position:relative}
.pw-l::before{content:''; position:absolute; left:0; top:14px; width:8px; height:2px; background:var(--slate-lift)}

/* 选址卡 */
.site{background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:16px; margin-bottom:12px}
.site.best{border-color:var(--slate); border-left:5px solid var(--slate)}
.si-hd{display:flex; align-items:baseline; justify-content:space-between}
.si-n{font-family:"Songti SC",serif; font-size:19px; font-weight:700}
.si-r{font-size:11px; color:var(--ink-55)}.si-r.top{color:var(--slate); background:var(--slate-bg); padding:2px 9px; border-radius:5px}
.si-amt{font-family:"Songti SC",serif; font-size:24px; font-weight:700; margin-top:10px}
.si-stat{display:flex; flex-wrap:wrap; margin-top:12px; padding-top:10px; border-top:1px solid var(--line-soft)}
.ss{width:50%; display:flex; align-items:baseline; gap:6px; padding:4px 0}
.ss-n{font-size:14px; font-weight:600}.ss-l{font-size:11px; color:var(--ink-55)}

/* 报告 tabs */
.tabs{display:flex; border-bottom:1px solid var(--line); margin:14px 0}
.tab{padding:10px 16px; font-size:15px; color:var(--ink-55); border-bottom:3px solid transparent; margin-bottom:-1px; cursor:pointer}
.tab.on{color:var(--ink); font-weight:600; border-bottom-color:var(--ink)}
.cond{background:var(--surface-2); border-radius:8px; padding:10px 12px; margin:8px 0; font-size:13px}
.cond .cd-r{display:flex; justify-content:space-between; margin-top:4px; color:var(--ink-55)}
.s-pass{color:var(--pass)}.s-fail{color:var(--fail)}.s-unc{color:var(--warn)}.s-unk{color:var(--ink-35)}
.quote{font-size:12px; color:var(--ink-55); background:var(--surface-2); border-left:3px solid var(--line); padding:10px 12px; border-radius:0 8px 8px 0; margin-top:8px; line-height:1.7}
.deadline{color:var(--fail); font-weight:700}

.warnbar{background:var(--warn-bg); border-left:5px solid var(--warn); padding:10px 14px; font-size:13px; color:var(--warn); border-radius:0 8px 8px 0; margin:12px 0; line-height:1.6}

/* 空/加载/错误 */
.center{padding:60px 24px; text-align:center; color:var(--ink-55)}
.center .t{font-family:"Songti SC",serif; font-size:19px; font-weight:700; color:var(--ink); margin-bottom:8px}
.spin{width:26px; height:26px; border:3px solid var(--line); border-top-color:var(--ink); border-radius:50%; animation:sp .8s linear infinite; margin:0 auto 16px}
@keyframes sp{to{transform:rotate(360deg)}}

.toast{position:fixed; left:50%; bottom:110px; transform:translateX(-50%); background:rgba(22,25,26,.94); color:#fff; padding:10px 18px; border-radius:8px; font-size:14px; z-index:100; max-width:80%}

/* 首页样例卡 */
.hero{padding:22px 0 8px}
.h1{font-family:"Songti SC",serif; font-size:30px; font-weight:700; line-height:1.35}
.h1 .em{color:var(--slate)}
.pill{font-size:13px; color:var(--ink-80); line-height:1.7; padding:10px 0 10px 18px; position:relative; border-bottom:1px solid var(--line-soft)}
.pill::before{content:''; position:absolute; left:0; top:18px; width:9px; height:2px; background:var(--ink-35)}
.chips{display:flex; gap:8px; flex-wrap:wrap; margin-top:8px}
.chip{font-size:11px; color:var(--ink-55); background:var(--surface-2); border:1px solid var(--line-soft); padding:3px 10px; border-radius:20px}
.range-grid{display:flex; gap:8px; flex-wrap:wrap}
.range-grid .opt{width:calc(50% - 4px); margin-bottom:8px; text-align:center; padding:12px 8px}
