
:root{
  --bg:#f3f6fa;--card:#fff;--ink:#16243a;--muted:#68758a;--line:#d9e1ea;
  --navy:#17365d;--blue:#2f75b5;--teal:#0f6b78;--green:#2f7d45;--orange:#c55a11;
  --red:#b42318;--yellow:#8a6600;--shadow:0 8px 26px rgba(22,36,58,.08);
}
*{box-sizing:border-box} body{margin:0;font-family:system-ui,-apple-system,"Microsoft YaHei","PingFang SC",sans-serif;background:var(--bg);color:var(--ink)}
button,input,select,textarea{font:inherit}
.appbar{position:sticky;top:0;z-index:20;background:linear-gradient(135deg,var(--navy),#234f82);color:#fff;padding:14px 16px;box-shadow:0 2px 10px rgba(0,0,0,.16)}
.appbar .title{font-size:18px;font-weight:800}.appbar .sub{font-size:11px;opacity:.82;margin-top:2px}
.wrap{max-width:900px;margin:auto;padding:14px 12px 88px}
.tabs{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin:10px 0 14px}
.tab{border:0;border-radius:10px;padding:9px 4px;background:#e8eef5;color:#33445c;font-size:12px;font-weight:700}
.tab.active{background:var(--navy);color:#fff}
.view{display:none}.view.active{display:block}
.card{background:var(--card);border:1px solid #e1e7ee;border-radius:16px;padding:15px;margin:0 0 12px;box-shadow:var(--shadow)}
.card h2{font-size:16px;margin:0 0 12px}.card h3{font-size:14px;margin:14px 0 8px}
.hint{font-size:12px;color:var(--muted);line-height:1.55}.note{background:#fff7da;border-left:4px solid #d6a500;padding:10px;border-radius:8px;font-size:12px;line-height:1.55}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:620px){.grid{grid-template-columns:1fr}.tabs{grid-template-columns:repeat(5,1fr);gap:4px}.tab{font-size:10px;padding:8px 2px}}
.field label{display:block;font-size:12px;font-weight:700;margin:0 0 5px;color:#33445c}
.field input,.field select,.field textarea{width:100%;border:1px solid #cdd6e1;border-radius:10px;padding:10px 11px;background:#fff;color:var(--ink)}
.field textarea{min-height:70px;resize:vertical}
.field small{display:block;color:var(--muted);font-size:10px;line-height:1.4;margin-top:4px}
details{border-top:1px solid var(--line);padding-top:8px;margin-top:9px} summary{font-weight:800;cursor:pointer;font-size:13px}
.primary,.secondary,.danger{border:0;border-radius:11px;padding:11px 14px;font-weight:800;cursor:pointer}
.primary{background:var(--blue);color:#fff}.secondary{background:#e9eff5;color:#24415f}.danger{background:#fce9e7;color:var(--red)}
.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.actions button{flex:1;min-width:120px}
.hero{padding:18px;border-radius:16px;color:#fff;margin-bottom:12px;background:linear-gradient(135deg,#244c7a,#0f6b78)}
.hero h1{font-size:21px;margin:0 0 5px}.hero p{font-size:12px;line-height:1.6;margin:0;opacity:.9}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}
.kpi{background:#fff;border-radius:12px;padding:10px;text-align:center;border:1px solid var(--line)}
.kpi b{display:block;font-size:19px}.kpi span{font-size:10px;color:var(--muted)}
@media(max-width:620px){.kpis{grid-template-columns:repeat(2,1fr)}}
.gate{border-radius:14px;padding:14px;margin:10px 0;border:2px solid}.gate.red{background:#fff0ee;border-color:#e2695f}.gate.orange{background:#fff2e8;border-color:#dc8446}.gate.yellow{background:#fff9df;border-color:#d2b33e}.gate.green{background:#edf8ef;border-color:#68a979}
.gate strong{font-size:17px}.gate p{font-size:12px;line-height:1.55;margin:5px 0 0}
.issue{border:1px solid var(--line);border-left:5px solid #9aa7b7;border-radius:12px;padding:11px;margin:8px 0;background:#fff}
.issue.block{border-left-color:var(--red)}.issue.high{border-left-color:var(--orange)}.issue.warn{border-left-color:#d4a400}.issue.pass{border-left-color:var(--green)}
.issue .top{display:flex;justify-content:space-between;gap:8px;align-items:start}.issue .level{font-size:10px;font-weight:900;padding:3px 7px;border-radius:10px;background:#edf1f5;white-space:nowrap}
.issue h4{font-size:13px;margin:0}.issue p{font-size:11px;line-height:1.55;margin:5px 0 0;color:#46566d}.issue .basis{font-size:10px;color:#7a8798}
.badge{display:inline-block;padding:3px 7px;border-radius:999px;background:#eaf1f7;color:#36536f;font-size:10px;margin:2px}
.record{border:1px solid var(--line);border-radius:12px;padding:11px;margin:8px 0;background:#fff}.record h4{margin:0 0 4px;font-size:13px}.record p{margin:2px 0;font-size:11px;color:var(--muted)}
.source{border-bottom:1px solid var(--line);padding:10px 0}.source:last-child{border:0}.source b{font-size:12px}.source p{font-size:11px;color:var(--muted);margin:3px 0}.source a{font-size:10px;word-break:break-all}
.toggle-row{display:flex;align-items:center;gap:8px}
footer{font-size:10px;color:#7a8798;text-align:center;padding:15px}
.test-pass{color:var(--green);font-weight:800}.test-fail{color:var(--red);font-weight:800}
.hidden{display:none!important}
@media print{
  .appbar,.tabs,.no-print,.actions{display:none!important}.wrap{max-width:none;padding:0}.view{display:none!important}
  #resultView{display:block!important}.card,.issue,.gate{box-shadow:none;break-inside:avoid}
}
