[hidden]{display:none!important}
:root{--ink:#15211b;--ink2:#4a5a51;--rule:#dfe7e1;--accent:#0f6b47;--soft:#e9f3ec;--warn:#a6460c;--warnsoft:#fdf0e6;--bad:#b3261e;--in:#0f6b47;--out:#8a2f1c;
  --fd:"Bricolage Grotesque","Segoe UI",system-ui,sans-serif;--fb:"Public Sans","Segoe UI",system-ui,-apple-system,sans-serif;--fm:"IBM Plex Mono",ui-monospace,Consolas,monospace}
*{box-sizing:border-box}
body{margin:0;background:#fff;color:var(--ink);font:16px/1.6 var(--fb)}
a{color:var(--accent)}
.top{display:flex;justify-content:space-between;align-items:center;gap:16px;max-width:1080px;margin:0 auto;padding:16px 20px;border-bottom:1px solid var(--rule)}
.brand{display:flex;align-items:center;gap:8px;font:800 18px var(--fd);color:var(--ink);text-decoration:none}
.top nav{display:flex;gap:18px;font-size:14.5px}.top nav a{color:var(--ink2);text-decoration:none}
main{max-width:1080px;margin:0 auto;padding:0 20px}
.hero{padding:44px 0 18px;max-width:760px}
.eyebrow{font:600 12.5px var(--fm);letter-spacing:.14em;text-transform:uppercase;color:var(--ink2);margin:0}
h1{font:800 clamp(32px,5vw,50px)/1.08 var(--fd);letter-spacing:-.02em;margin:10px 0 14px}
h1 em{font-style:normal;color:var(--accent)}
.lead{font-size:18px;color:var(--ink2);margin:0}
.intake{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:26px 0 8px}
.drop{border:2px dashed #c8d6cc;border-radius:12px;padding:20px;transition:.15s}
.drop.over{border-color:var(--accent);background:var(--soft)}
.drop.done{border-style:solid;border-color:var(--accent)}
.dh{font:800 19px var(--fd)}
.drop p{margin:4px 0 14px;color:var(--ink2);font-size:14.5px}
.got{margin-top:10px;font:500 13.5px var(--fm);color:var(--accent);word-break:break-all}
.btn{display:inline-block;font:600 15px var(--fb);padding:10px 16px;border-radius:8px;border:1px solid var(--rule);background:#fff;color:var(--ink);cursor:pointer}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.opts{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:14px;font-size:14.5px}
.opts select{font:inherit;padding:3px 6px;border-radius:6px;border:1px solid var(--rule)}
.local{color:var(--ink2);font-size:13.5px}.local::before{content:"🔒 "}
.msg{grid-column:1/-1;min-height:1.6em;font-size:15px}.msg.err{color:var(--bad)}.msg.warn{color:var(--warn)}
.result{margin:18px 0 40px}
.sum{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--rule);border-radius:12px;overflow:hidden}
.sum div{padding:16px 18px;border-left:1px solid var(--rule)}.sum div:first-child{border-left:0}
.sum b{display:block;font:800 30px var(--fd)}.sum span{font-size:13.5px;color:var(--ink2)}
.sum .ok b{color:var(--accent)}.sum .warn b{color:var(--warn)}
.bar{display:flex;align-items:center;gap:14px;margin:16px 0 4px;font-size:14px;color:var(--ink2)}
h3{font:800 20px var(--fd);margin:30px 0 4px}
h3 small{font:500 14px var(--fb);color:var(--ink2);margin-left:8px}
.why{margin:0 0 10px;color:var(--ink2);font-size:14.5px}
table{width:100%;border-collapse:collapse;font-size:14.5px}
th{text-align:left;font:600 12px var(--fm);letter-spacing:.06em;text-transform:uppercase;color:var(--ink2);padding:8px 10px;border-bottom:2px solid var(--ink)}
td{padding:8px 10px;border-bottom:1px solid var(--rule);vertical-align:top}
td.num{text-align:right;font-family:var(--fm);white-space:nowrap}
td.d{font-family:var(--fm);white-space:nowrap}
.neg{color:var(--out)}.pos{color:var(--in)}
.hint{background:var(--warnsoft)}
details.matched summary{cursor:pointer;font:800 20px var(--fd);margin-top:30px}
.ref{border-top:1px solid var(--rule);padding:30px 0}
.ref h2{font:800 26px var(--fd);margin:0 0 10px}
.ref ol{padding-left:20px}.ref li{margin:8px 0}
.ref details{border-bottom:1px solid var(--rule);padding:12px 0}.ref summary{cursor:pointer;font-weight:700}
.foot{max-width:1080px;margin:0 auto;padding:24px 20px 40px;color:var(--ink2);font-size:14px;border-top:1px solid var(--rule)}
@media(max-width:720px){.intake{grid-template-columns:1fr}.sum{grid-template-columns:1fr 1fr}.sum div:nth-child(3){border-left:0}.sum div:nth-child(n+3){border-top:1px solid var(--rule)}.top nav a:not(:last-child){display:none}table{font-size:13.5px}}
