:root{--fg:#1b1b1b;--bg:#fafaf7;--mut:#5b5b5b;--acc:#0a5c4a;--line:#8884;--card:#fff;--warn:#9a3b00}
@media(prefers-color-scheme:dark){:root{--fg:#eee;--bg:#141414;--mut:#a8a8a8;--acc:#5fd3b5;--card:#1d1d1d;--warn:#ffb27a}}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.55 system-ui,sans-serif}
main{max-width:860px;margin:0 auto;padding:20px 16px 48px}h1{font-size:1.6rem;margin:.2em 0}h2{font-size:1.2rem;margin:1.4em 0 .4em}
a{color:var(--acc)}.mut{color:var(--mut);font-size:.92rem}.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin:12px 0}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:end}label{display:flex;flex-direction:column;font-size:.85rem;color:var(--mut);gap:3px}
input,select,button{font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--fg);min-height:40px}
button,.btn{background:var(--acc);color:var(--bg);border-color:var(--acc);cursor:pointer;text-decoration:none;display:inline-block;border-radius:8px;padding:9px 16px}
button.alt{background:transparent;color:var(--acc)}button.x{background:transparent;color:var(--warn);border-color:var(--line);padding:4px 10px;min-height:32px}
table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:6px 4px;border-bottom:1px solid var(--line)}
.big{font-size:2rem;font-weight:700;line-height:1.1}.over{color:var(--warn)}.err{color:var(--warn)}
.note{border-left:4px solid var(--acc);padding:6px 12px;margin:14px 0;background:var(--card)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}
footer{margin-top:32px;font-size:.88rem;color:var(--mut)}
@media print{.noprint{display:none}body{background:#fff;color:#000}}
nav.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}nav.tabs button{background:transparent;color:var(--acc)}nav.tabs button[aria-selected=true]{background:var(--acc);color:var(--bg)}
ul.log{list-style:none;padding:0;margin:0}ul.log li{display:flex;justify-content:space-between;gap:8px;padding:6px 0;border-bottom:1px solid var(--line)}
.warn{border-left:4px solid var(--warn);padding:6px 12px;margin:14px 0;background:var(--card)}.hide{display:none}
