:root{--bg:#fbfaf7;--fg:#1d1b18;--mut:#6a645b;--card:#fff;--line:#e4dfd6;--acc:#1f5f4a;--acc-fg:#fff;--warn:#8a4b00;--warnbg:#fff4e0;--hot:#eaf3ee}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#15130f;--fg:#efebe3;--mut:#a39c90;--card:#1e1b16;--line:#363128;--acc:#6fc4a3;--acc-fg:#0c1612;--warn:#f0b868;--warnbg:#2b2112;--hot:#1c2a24}}
:root[data-theme="dark"]{--bg:#15130f;--fg:#efebe3;--mut:#a39c90;--card:#1e1b16;--line:#363128;--acc:#6fc4a3;--acc-fg:#0c1612;--warn:#f0b868;--warnbg:#2b2112;--hot:#1c2a24}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.55 system-ui,-apple-system,Segoe UI,sans-serif}
.wrap{max-width:860px;margin:0 auto;padding:20px 16px 64px}
nav.top{display:flex;gap:14px;flex-wrap:wrap;align-items:center;font-size:14px;margin-bottom:18px}
nav.top a{color:var(--mut);text-decoration:none}nav.top a:hover{color:var(--fg)}nav.top .here{color:var(--fg);font-weight:600}
h1{font-size:clamp(1.55rem,4.6vw,2.2rem);line-height:1.2;margin:.2em 0 .4em}
h2{font-size:1.25rem;margin:1.4em 0 .5em}h3{font-size:1.05rem;margin:0 0 .6em}
.lede{font-size:1.08rem;color:var(--fg);max-width:60ch}
.muted{color:var(--mut);font-size:.92rem}
a{color:var(--acc)}
#drop{border:2px dashed var(--line);border-radius:12px;background:var(--card);padding:28px 18px;text-align:center;cursor:pointer;margin:18px 0 8px}
#drop:focus-visible,#drop.hot{border-color:var(--acc);background:var(--hot);outline:none}
#drop h2{margin:0 0 .3em;font-size:1.15rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;margin:14px 0}
.card.warn{background:var(--warnbg);color:var(--warn);border-color:var(--warn)}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin:10px 0}
.kpi{border:1px solid var(--line);border-radius:10px;padding:10px 12px}.kpi .v{font-size:1.5rem;font-weight:650}.kpi .k{color:var(--mut);font-size:.85rem}
.scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.93rem}
th,td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line);white-space:nowrap}td:first-child{white-space:normal;min-width:8ch}
th.num,td.num{text-align:right;font-variant-numeric:tabular-nums}
button,.btn{font:inherit;background:var(--acc);color:var(--acc-fg);border:1px solid var(--acc);border-radius:8px;padding:9px 16px;cursor:pointer;text-decoration:none;display:inline-block;margin:4px 6px 4px 0}
button.ghost,.btn.ghost{background:transparent;color:var(--acc)}
button:focus-visible,.btn:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--acc);outline-offset:2px}
input,select,textarea{font:inherit;color:var(--fg);background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px 10px;max-width:100%}
textarea{width:100%}
.mapper{display:grid;grid-template-columns:minmax(120px,max-content) 1fr;gap:8px 12px;align-items:center;margin:10px 0}
.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.plan{border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--card)}.plan .price{font-size:1.7rem;font-weight:650}
.terms li{margin:.25em 0}
.note{margin-left:8px;font-size:.92rem;color:var(--mut)}.note.warn{color:var(--warn)}
ul.links{padding-left:1.1em}
footer{margin-top:40px;color:var(--mut);font-size:.88rem;border-top:1px solid var(--line);padding-top:14px}
@media (max-width:520px){.mapper{grid-template-columns:1fr}}
@media print{nav.top,#drop,button,.btn{display:none}}
