:root{--bg:#f7faf9;--fg:#16302d;--card:#fff;--ac:#0f766e;--mut:#5b6f6c;--bd:#cfdcd9;--err:#b42318}
@media (prefers-color-scheme:dark){:root{--bg:#10201e;--fg:#e4f0ee;--card:#17302c;--ac:#5eead4;--mut:#9db5b1;--bd:#2c4a45;--err:#fda29b}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.5 system-ui,sans-serif}
header,main,aside,footer,nav{max-width:680px;margin:0 auto;padding:0 16px}
h1{font-size:1.5rem;margin:16px 0 4px}h2{font-size:1.1rem;margin:20px 0 8px}
.sub{color:var(--mut);margin:0 0 8px}
.warn{background:var(--card);border:1px solid var(--bd);border-left:4px solid var(--ac);padding:8px 12px;border-radius:6px;font-size:.9rem}
nav{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px;margin-bottom:4px}
nav button{flex:1;min-width:80px;padding:8px;border:1px solid var(--bd);background:var(--card);color:var(--fg);border-radius:6px;font:inherit}
nav button.on{background:var(--ac);color:var(--bg);border-color:var(--ac)}
label{display:block;margin:8px 0;font-size:.9rem;color:var(--mut)}
input,select{display:block;width:100%;padding:9px;margin-top:3px;border:1px solid var(--bd);border-radius:6px;background:var(--card);color:var(--fg);font:inherit}
.row{display:flex;gap:8px}.row label:first-child{flex:2}.row label:last-child{flex:1}
button{padding:10px 14px;border-radius:6px;border:1px solid var(--bd);background:var(--card);color:var(--fg);font:inherit;cursor:pointer;margin:4px 4px 4px 0}
button.primary,.btn{background:var(--ac);color:var(--bg);border-color:var(--ac)}
button.danger{color:var(--err);border-color:var(--err)}
.btn{display:inline-block;padding:10px 14px;border-radius:6px;text-decoration:none}
.err{color:var(--err);min-height:1.2em;margin:4px 0}.small{font-size:.85rem;color:var(--mut)}
.item{background:var(--card);border:1px solid var(--bd);border-radius:6px;padding:8px 12px;margin:6px 0;display:flex;justify-content:space-between;gap:8px}
.item button{padding:2px 8px;margin:0}
canvas{width:100%;height:auto;margin:10px 0;background:var(--card);border:1px solid var(--bd);border-radius:6px}
#site-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.site{background:var(--card);border:1px solid var(--bd);border-radius:6px;padding:10px}.site b{display:block}
.plus{margin-top:24px;padding-bottom:8px;border-top:1px solid var(--bd)}
footer{font-size:.8rem;color:var(--mut);padding-bottom:32px}
#report table{width:100%;border-collapse:collapse;font-size:.9rem;margin:8px 0}#report td,#report th{border-bottom:1px solid var(--bd);padding:4px;text-align:left}
@media print{body{background:#fff;color:#000}header,nav,aside,footer,#tab-log,#tab-effects,#tab-weight,#tab-sites,#tab-data,#tab-report>*:not(#report){display:none!important}#tab-report{display:block!important}}
