:root{--bg:#f5f7fb;--fg:#1a2433;--card:#fff;--muted:#eef5ff;--line:#e3e8ef;--in:#c5cfdc;--head:#0f3d63;--acc:#1d7a46;--soft:#f0f3f8}
[data-theme=dark]{--bg:#0f141b;--fg:#e4e9f0;--card:#18202b;--muted:#1f2c3d;--line:#2a3646;--in:#3a4a5e;--head:#0a2a45;--acc:#2a9d5c;--soft:#1f2a37}
*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--fg);background:var(--bg);line-height:1.6}
a{color:#2f7fd1}header,footer{background:var(--head);color:#fff;padding:12px 20px}header a,footer a{color:#fff}
.hd{max-width:960px;margin:auto;display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center}.brand{font-weight:700;font-size:1.15rem;text-decoration:none;margin-right:auto}
nav{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:.9rem}nav a{text-decoration:none;opacity:.9}nav a:hover{text-decoration:underline}
#theme{background:transparent;border:0;color:#fff;opacity:.7;margin:0 0 0 auto;padding:0;width:28px;height:28px;min-width:0;line-height:28px;font-size:16px;border-radius:50%;cursor:pointer;box-shadow:none}#theme:hover{opacity:1;background:#fff2}
main{max-width:960px;margin:auto;padding:16px}h1{font-size:1.7rem;margin:.4em 0}
.card{background:var(--card);border-radius:12px;padding:18px;box-shadow:0 1px 4px #0001;margin:16px 0}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
label{font-size:.9rem;font-weight:600;display:block}input,select,textarea{width:100%;padding:10px;border:1px solid var(--in);border-radius:8px;font-size:1rem;margin-top:4px;background:var(--card);color:var(--fg)}
button,.btn{background:var(--acc);color:#fff;border:0;border-radius:8px;padding:10px 16px;font-size:.95rem;cursor:pointer;margin:8px 6px 0 0;text-decoration:none;display:inline-block}
.btn2{background:#3c5a7a}.chk{display:flex;align-items:center;gap:8px;margin-top:12px;font-weight:600}.chk input{width:auto;margin:0}
.scen{border:1px solid var(--line);border-radius:10px;padding:12px;margin-top:12px}.scen h3{margin:0 0 8px;font-size:1rem}
.res{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.res div{background:var(--muted);border-radius:8px;padding:12px}.res b{display:block;font-size:1.25rem}
.cmp{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.cmp h3{margin:.2em 0}
canvas{width:100%;height:260px;margin-top:12px}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{padding:6px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}th:first-child,td:first-child{text-align:left}
.tw{overflow-x:auto;max-height:420px}.ad{min-height:90px;border:1px dashed #999;color:#999;display:flex;align-items:center;justify-content:center;margin:16px 0;font-size:.8rem}
.formula{background:var(--soft);padding:10px;border-radius:8px;font-family:monospace;overflow-x:auto}.note{font-size:.85rem;opacity:.8}.legend span{margin-right:12px}
.hub{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}.hub a{display:block;background:var(--card);border-radius:12px;padding:18px;box-shadow:0 1px 4px #0001;text-decoration:none;color:var(--fg);border-top:4px solid var(--acc)}.hub a:hover{transform:translateY(-2px)}.hub h2{margin:0 0 6px;font-size:1.15rem;color:var(--acc)}
#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#222;color:#fff;padding:8px 16px;border-radius:8px;display:none}
@media print{header,footer,nav,.ad,form,.actions,.noprint,#toast{display:none!important}body{background:#fff;color:#000}.card{box-shadow:none;border:0;padding:0}.tw{max-height:none;overflow:visible}main{max-width:none}}
.sharebox{margin-top:12px;display:flex;flex-wrap:wrap;gap:0}.sharebox .btn2{text-decoration:none;display:inline-block}
.linkbtn{background:none;border:0;padding:2px 0;margin:0;font-size:.85rem;color:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer;display:inline}
.linkbtn:hover,.linkbtn:focus{opacity:1;color:var(--acc)}
