
:root{--ink:#1f2933;--mut:#5f6c7b;--line:#e3e7ec;--bg:#f6f7f9;--pri:#1c5a91;--pri2:#e8f0f8;--ok:#2f7d4f;--warn:#a15c07}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.7 -apple-system,"Segoe UI","PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif}
.side{position:fixed;inset:0 auto 0 0;width:236px;overflow:auto;background:#12263a;color:#cfd8e3;padding:16px 0 32px;z-index:20}
.side a{display:block;color:#cfd8e3;text-decoration:none;padding:6px 18px;font-size:14px;line-height:1.4}
.side a:hover{background:#1c3a57}.side a.on{background:#1c5a91;color:#fff}
.side .brand{font-weight:700;color:#fff;font-size:15px;padding:4px 18px 14px}
.side .ng{font-size:12px;color:#8ea2b6;padding:14px 18px 4px;letter-spacing:.04em}
main{margin-left:236px;padding:28px 36px 40px;max-width:1320px}
h1{font-size:24px;margin:0 0 12px;line-height:1.3;display:flex;gap:8px;align-items:center}
h2{font-size:18px;margin:28px 0 10px;display:flex;gap:8px;align-items:center;border-left:4px solid var(--pri);padding-left:10px;line-height:1.35}
.lead{background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px 16px;margin:0 0 16px}
.lead p{margin:4px 0}.lead b{color:var(--pri)}
.q{all:unset;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--pri2);color:var(--pri);font-size:13px;font-weight:700;flex:none}
.q:hover{background:var(--pri);color:#fff}.q:focus-visible{outline:2px solid var(--pri);outline-offset:2px}
.card{background:#fff;border:1px solid var(--line);border-radius:8px;margin:0 0 16px;padding:12px;min-width:0}
figcaption{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:8px;font-size:14px}
.card img{display:block;max-width:100%;height:auto;margin:0 auto}
.dl{font-size:12px;padding:1px 8px;border:1px solid var(--line);border-radius:10px;text-decoration:none;color:var(--pri);background:#fff;white-space:nowrap}
.dl:hover{background:var(--pri2)}.dl:first-of-type{margin-left:auto}
.rc{font-size:12px;color:var(--mut)}
.tw{overflow:auto;max-height:440px;border:1px solid var(--line);border-radius:6px}
table{border-collapse:collapse;font-size:13px;width:100%}
th{position:sticky;top:0;background:#eef1f5;text-align:left;padding:5px 8px;white-space:nowrap;border-bottom:1px solid var(--line)}
td{padding:4px 8px;border-bottom:1px solid #f0f2f5;white-space:nowrap}
tr:hover td{background:#f8fafc}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:0 0 16px}
.stat{background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px 14px}.stat b{display:block;font-size:22px;color:var(--pri);line-height:1.3}.stat span{font-size:13px;color:var(--mut)}
.gal{display:grid;grid-template-columns:190px minmax(0,1fr);gap:14px;align-items:start}
.keys{position:sticky;top:12px;max-height:calc(100vh - 24px);overflow:auto;background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px}
.keys input{width:100%;padding:5px 8px;border:1px solid var(--line);border-radius:6px;font-size:13px;margin-bottom:6px}
.kt{font-size:12px;color:var(--mut);padding:6px 4px 2px}.kt span{float:right}
.keys button{all:unset;display:block;width:100%;box-sizing:border-box;cursor:pointer;padding:3px 8px;border-radius:5px;font-size:13px;word-break:break-all}
.keys button:hover{background:var(--pri2)}.keys button.on{background:var(--pri);color:#fff}.keys button:focus-visible{outline:2px solid var(--pri)}
.pane{min-width:0}
.modal{position:fixed;inset:0;background:rgba(15,25,35,.5);display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}
.modal[hidden]{display:none}.box{background:#fff;border-radius:10px;max-width:720px;width:100%;max-height:84vh;overflow:auto;padding:20px 24px;position:relative}
.box h3{margin:0 28px 8px 0;font-size:18px}.box h4{margin:14px 0 4px;color:var(--pri);font-size:15px}.box p{margin:4px 0}
.x{all:unset;cursor:pointer;position:absolute;top:10px;right:14px;font-size:24px;color:var(--mut)}
.mt{display:none;position:fixed;top:8px;left:8px;z-index:30;border:0;background:#12263a;color:#fff;font-size:18px;border-radius:6px;padding:4px 10px}
.link{columns:2;column-gap:24px}.miss{color:var(--warn)}.warn{background:#fff8ec;border:1px solid #f2dcb3;border-radius:8px;padding:10px 14px;margin:0 0 16px}
footer{margin-top:32px;color:var(--mut);font-size:12px}
@media(max-width:860px){.side{transform:translateX(-100%);transition:.2s}.side.open{transform:none}.mt{display:block}main{margin:0;padding:48px 16px 28px}.gal{grid-template-columns:1fr}.keys{position:static;max-height:190px}.link{columns:1}}
@media print{.side,.mt,.q,.keys{display:none}main{margin:0}.gal{display:block}}
