:root{--paper: #f5f3ec;--card: #fffdf8;--ink: #1a1916;--ink-soft: #57554e;--line: #e5e2d9;--hero: #211f1b;--hero-text: #f2efe7;--hero-soft: #a9a59a;--accent: #d85a30;--accent-ink: #993c1d;--good: #0f6e56;--good-soft: #e1f5ee;--mono: "JetBrains Mono", monospace;--disp: "Bricolage Grotesque", serif;--sans: "Hanken Grotesk", sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.55}.wrap{max-width:980px;margin:0 auto;padding:0 22px}.wrap.calc-wrap,.wrap.results{max-width:1240px}.hero{background:var(--hero);color:var(--hero-text);padding:46px 0 84px}.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin:0 0 12px}.hero h1{font-family:var(--disp);font-weight:700;font-size:clamp(30px,5vw,46px);margin:0;letter-spacing:-.02em}.hero p{color:var(--hero-soft);font-size:16px;max-width:56ch;margin:14px 0 0}.badge{display:inline-block;margin-top:16px;font-family:var(--mono);font-size:12px;padding:4px 12px;border-radius:999px}.badge.on{background:var(--good-soft);color:var(--good)}.badge.off{background:#3a3631;color:var(--hero-soft)}.calc{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:26px;margin-top:-56px}.controls{display:flex;gap:26px;flex-wrap:wrap;margin-bottom:18px}.field-label{font-size:12px;color:var(--ink-soft);margin:0 0 8px}.seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}.seg button{border:0;background:var(--card);color:var(--ink-soft);font:inherit;font-size:14px;padding:9px 16px;cursor:pointer;border-right:1px solid var(--line)}.seg button:last-child{border-right:0}.seg button.active{background:var(--ink);color:var(--paper);font-weight:500}label{display:block;font-size:12px;color:var(--ink-soft);margin-bottom:6px}input,select{width:100%;padding:10px 11px;border:1px solid var(--line);border-radius:9px;font:inherit;font-size:14px;background:var(--paper);color:var(--ink)}input.num{font-family:var(--mono)}input:focus,select:focus{outline:none;border-color:var(--accent);background:var(--card)}input:disabled{background:#ece9e0;color:var(--ink-soft);cursor:not-allowed}.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}@media (max-width: 560px){.grid4{grid-template-columns:repeat(2,1fr)}}.rows{overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:var(--card)}.rows .r{display:grid;grid-template-columns:minmax(120px,1.4fr) minmax(110px,1fr) minmax(80px,.9fr) minmax(90px,.9fr) minmax(70px,.8fr) minmax(70px,.8fr) minmax(60px,.7fr) minmax(95px,.95fr) minmax(80px,.8fr) minmax(70px,.7fr) 44px;gap:8px;align-items:center;padding:7px 10px;min-width:940px}.rows .r:not(.head){border-top:1px solid var(--line)}.rows .r:not(.head):nth-child(2n){background:#00000005}.rows .r.head{background:var(--paper);border-radius:10px 10px 0 0;padding-top:10px;padding-bottom:10px;position:sticky;top:0}.rows .r.head label{margin-bottom:0;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.02em;color:var(--ink-soft)}.xbtn{border:1px solid var(--line);background:var(--card);border-radius:8px;height:40px;cursor:pointer;color:var(--ink-soft);font-size:18px}.xbtn.add{width:auto;padding:0 14px;height:36px;font-size:14px}.ghn{display:none;gap:12px;margin-top:14px}.ghn.on{display:flex}.ghn>div{flex:1}.go{margin-top:18px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}.hint{font-size:13px;color:var(--ink-soft)}.btn{border:0;border-radius:11px;padding:12px 24px;font:inherit;font-size:15px;font-weight:600;cursor:pointer;background:var(--accent);color:#fff}.btn:hover{background:var(--accent-ink)}.btn:disabled{opacity:.6;cursor:default}.err{color:#a32d2d;font-size:13px;margin-top:10px}.results{padding:30px 0 60px}.reco{background:var(--good-soft);border:1px solid var(--good);border-radius:14px;padding:20px;margin-bottom:22px}.reco .tag{font-family:var(--mono);font-size:11px;color:var(--good);text-transform:uppercase;letter-spacing:.05em}.reco .big{font-family:var(--disp);font-size:26px;margin:6px 0 2px}.reco .meta{font-family:var(--mono);font-size:13px;color:var(--ink-soft)}h2{font-family:var(--disp);font-weight:500;font-size:20px;margin:0 0 12px}.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px}table{width:100%;border-collapse:collapse;background:var(--card);min-width:560px}th,td{text-align:left;padding:11px 14px;font-size:14px;border-bottom:1px solid var(--line)}th{font-size:11px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.03em;background:var(--paper)}tr:last-child td{border-bottom:0}td.num{font-family:var(--mono)}tr.best td{background:var(--good-soft)}tbody tr{cursor:pointer}tbody tr.sel td{box-shadow:inset 3px 0 0 var(--accent);background:#fbe9e0}.dim-tag{font-family:var(--mono);font-size:12px;font-weight:400;color:var(--accent-ink);background:#fbe9e0;padding:2px 8px;border-radius:6px;margin-left:6px}.boxsec{margin-top:16px;padding-top:14px;border-top:1px dashed var(--line)}.boxsec-toggle{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-soft);margin-bottom:10px}.boxsec-toggle input{width:auto}.boxsec-note{font-size:13px;color:var(--ink-soft);margin:0 0 10px}.seg-btn-settings{border:1px solid var(--line);background:var(--card);border-radius:10px;padding:9px 16px;font:inherit;font-size:14px;cursor:pointer;color:var(--ink)}.seg-btn-settings:hover{border-color:var(--accent)}.settings-panel{border:1px solid var(--accent);border-radius:12px;background:#fbe9e0;padding:14px 16px;margin-bottom:18px}.settings-head{display:flex;flex-direction:column;gap:2px;margin-bottom:10px}.settings-head .hint{font-size:12px}.custombox{margin-top:4px}.custombox-row{display:flex;gap:12px;flex-wrap:wrap}.custombox-row label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--ink-soft)}.custombox-row input{width:90px}.topnav{margin-top:14px;display:inline-flex;gap:4px}.topnav button{border:1px solid rgba(255,255,255,.25);background:#ffffff1a;color:var(--hero-text);padding:7px 16px;border-radius:8px;font:inherit;font-size:14px;cursor:pointer}.topnav button.active{background:var(--accent);border-color:var(--accent);font-weight:600}.admin h2{font-family:var(--disp);font-weight:500;font-size:19px;margin:18px 0 6px}.admin .rows{min-width:0}.r.boxr-adm{display:grid;grid-template-columns:minmax(70px,1.2fr) repeat(4,minmax(60px,1fr)) minmax(80px,1fr) 44px;gap:8px;align-items:center;padding:7px 10px;min-width:560px}.r.boxr-adm:not(.head){border-top:1px solid var(--line)}.admin-actions{display:flex;gap:12px;align-items:center;margin-top:12px}.settings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.setting-item{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--ink-soft)}.setting-item input{padding:8px 10px;border:1px solid var(--line);border-radius:8px;font:inherit;font-size:14px}.warn-banner{background:#fffbeb;border:1px solid #fde68a;color:var(--warn, #b45309);padding:10px 14px;border-radius:10px;margin-bottom:14px;font-size:14px}.ok-banner{background:var(--good-soft);border:1px solid var(--good);color:var(--good);padding:10px 14px;border-radius:10px;margin-bottom:14px;font-size:14px}.api-status-grid{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.snap-input{width:70px}.safety-slider{width:180px;accent-color:var(--accent);cursor:pointer}.boxlist{margin-top:10px}.boxlist .rows{min-width:0}.rows .r.boxr{grid-template-columns:minmax(90px,1.2fr) minmax(70px,1fr) minmax(70px,1fr) minmax(70px,1fr) minmax(80px,1fr) 44px;min-width:520px}.note{font-size:13px;color:var(--ink-soft);margin-top:14px}.empty{color:var(--ink-soft);text-align:center;padding:40px 0}.plan-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 12px}.plan-tab{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:120px;padding:9px 14px;border:1px solid var(--line);border-radius:10px;background:var(--card);cursor:pointer;font:inherit;text-align:left}.plan-tab:hover{border-color:var(--accent)}.plan-tab.active{border-color:var(--accent);background:#fbe9e0;box-shadow:inset 0 -2px 0 var(--accent)}.plan-tab:disabled{opacity:.45;cursor:not-allowed}.plan-tab-name{font-weight:600;font-size:14px}.plan-tab-vol{font-family:var(--mono);font-size:15px;color:var(--accent-ink)}.plan-tab-dim{font-family:var(--mono);font-size:11px;color:var(--ink-soft)}.viewer3d{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--paper);margin-bottom:22px}.viewer3d-canvas{width:100%;height:420px}.viewer3d-legend{display:flex;flex-wrap:wrap;gap:14px;align-items:center;padding:10px 14px;border-top:1px solid var(--line);background:var(--card);font-size:13px}.legend-item{display:inline-flex;align-items:center;gap:6px;color:var(--ink-soft);cursor:pointer}.legend-item i{width:13px;height:13px;border-radius:3px;display:inline-block;border:1px solid rgba(0,0,0,.2)}.legend-color{width:22px;height:18px;padding:0;border:1px solid var(--line);border-radius:4px;cursor:pointer;background:none}.legend-color::-webkit-color-swatch{border:none;border-radius:3px}.legend-color::-webkit-color-swatch-wrapper{padding:1px}.legend-stagger{gap:5px}.pad-swatch{display:inline-block;width:13px;height:13px;border-radius:3px;background:#7fc9e6;opacity:.7;border:1px solid #4fa3c7}.legend-stagger input{width:auto;cursor:pointer}.legend-hint{margin-left:auto;font-family:var(--mono);font-size:12px;color:var(--ink-soft)}
