*{box-sizing:border-box}body{margin:0;font:15px/1.5 -apple-system,system-ui,Segoe UI,Roboto,sans-serif;background:#f4f5f8;color:#1d2330}
.top{background:#1f3a68;color:#fff;padding:10px 14px}.top h1{font-size:18px;margin:0}.sticky{position:sticky;top:0;z-index:5;box-shadow:0 2px 6px #0003}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.row+.row{margin-top:8px}.back{color:#cfe0ff;text-decoration:none;font-size:14px}
button{font:inherit;border:1px solid #ccd;border-radius:8px;background:#fff;padding:5px 10px;cursor:pointer}
.stats button{background:#2c4d85;color:#fff;border-color:#4a6aa3;font-size:13px}.stats .f.on{background:#fff;color:#1f3a68}.stats .danger{background:#a33;border-color:#c55;margin-left:auto}
.wrap{max-width:820px;margin:0 auto;padding:12px}.plan{display:block;background:#fff;border-radius:12px;padding:14px;margin:10px 0;text-decoration:none;color:inherit;box-shadow:0 1px 3px #0002}
.pt{font-weight:600;font-size:17px}.pm{color:#667;font-size:13px}.ok{color:#17803d}.bad{color:#b42318}.hint{color:#889;font-size:13px}
.intro{background:#fff;border-radius:10px;padding:8px 12px;margin-bottom:10px}
.item{background:#fff;border-radius:12px;padding:12px;margin:10px 0;box-shadow:0 1px 3px #0002;border-left:5px solid #ccd}
.item.child{margin-left:18px}.item.is-pass{border-left-color:#22a04b;background:#f3fbf5}.item.is-fail{border-left-color:#d33;background:#fdf4f3}
.ih{display:flex;gap:8px;align-items:baseline}.ih h2{font-size:16px;margin:0;flex:1}.num{font-weight:700;color:#1f3a68;min-width:2.2em}
.badge{font-size:11px;font-weight:700}.is-pass .badge{color:#17803d}.is-fail .badge{color:#b42318}
summary{cursor:pointer;color:#2c4d85;font-size:14px;margin:6px 0}.body p{margin:6px 0}
.cards{display:grid;gap:8px}.card{margin:6px 0;background:#f7f8fb;border:1px solid #e3e6ee;border-radius:8px;padding:8px 10px}
.card dt{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#778;margin-top:4px}.card dd{margin:0 0 2px}
.lbl{font-size:12px;font-weight:600;color:#556;margin-top:6px}.ctx{color:#445;font-size:14px}
code{background:#eef;padding:0 4px;border-radius:4px;font-size:13px}li.sub{margin-left:18px;list-style:circle}
.refs{font-size:12px;color:#778;margin:6px 0;display:flex;flex-wrap:wrap;gap:5px;align-items:center}.ref{font-size:12px;padding:2px 8px;border-radius:12px;color:#556}.ref.rel{border-color:#2c4d85;color:#1f3a68;font-weight:600}
.act{display:flex;gap:8px;align-items:center}.pf{padding:7px 14px}.is-pass .pf.pass{background:#22a04b;color:#fff;border-color:#22a04b}.is-fail .pf.fail{background:#d33;color:#fff;border-color:#d33}
.saved{font-size:12px;color:#17803d}.note{width:100%;margin-top:8px;border:1px solid #ccd;border-radius:8px;padding:6px 8px;font:inherit;resize:vertical}
#panel{position:fixed;top:0;right:0;bottom:0;width:min(420px,100%);background:#fff;z-index:10;box-shadow:-4px 0 16px #0003;overflow-y:auto;padding:0 14px 30px}
.ph{position:sticky;top:0;background:#fff;display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid #eee}
.ptabs{position:sticky;top:46px;background:#fff;display:flex;flex-wrap:wrap;gap:5px;padding:8px 0}.ptabs button{font-size:12px;padding:3px 8px}.ptabs .on{background:#1f3a68;color:#fff}
.sx{scroll-margin-top:110px;border-radius:8px;transition:background .6s}.sx.hl{background:#fff6cc}.sx h3{color:#1f3a68;margin:14px 0 4px}
@media(min-width:1100px){body.pOpen .wrap{margin-right:440px}}
.gate{display:flex;min-height:100vh;align-items:center;justify-content:center;background:#1f3a68}.gatebox{background:#fff;padding:28px;border-radius:14px;text-align:center;width:min(340px,92%)}
.gatebox input{width:100%;padding:10px;border:1px solid #ccd;border-radius:8px;margin:10px 0;font:inherit}.gatebox button{width:100%;background:#1f3a68;color:#fff;padding:10px}
.em{display:flex;gap:6px;align-items:center;margin-top:8px}.email{flex:1;min-width:0;border:1px solid #ccd;border-radius:8px;padding:6px 8px;font:inherit}.esaved{font-size:12px;color:#17803d;white-space:nowrap}.esaved.err{color:#b42318}
