:root{--bg:#f5f4f1;--panel:#fff;--ink:#1d1d1f;--muted:#6b6b72;--line:#e2e0db;--field:#faf9f7;--accent:#d2561b;--accent-ink:#fff;--cmp1:#2f6fd0;--cmp2:#7b3fb8;--cmp3:#1e8f7a;--ok:#2e8b57;--warn:#b07800;--bad:#c0392b;--wood:#c9a273;--grid:#ecebe7}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#131315;--panel:#1c1c1f;--ink:#ececee;--muted:#9a9aa3;--line:#2d2d32;--field:#232327;--accent:#ff7a3d;--accent-ink:#1a1a1a;--cmp1:#6aa2ff;--cmp2:#c08cff;--cmp3:#4fd1b5;--ok:#4cc38a;--warn:#e8b339;--bad:#ff6b5b;--wood:#a8835a;--grid:#26262a}}:root[data-theme=dark]{--bg:#131315;--panel:#1c1c1f;--ink:#ececee;--muted:#9a9aa3;--line:#2d2d32;--field:#232327;--accent:#ff7a3d;--accent-ink:#1a1a1a;--cmp1:#6aa2ff;--cmp2:#c08cff;--cmp3:#4fd1b5;--ok:#4cc38a;--warn:#e8b339;--bad:#ff6b5b;--wood:#a8835a;--grid:#26262a}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);margin:0;font:14px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.muted{color:var(--muted);font-weight:400}.spacer{flex:1}header{border-bottom:1px solid var(--line);background:var(--panel);flex-wrap:wrap;align-items:center;gap:12px;padding:12px 16px;display:flex}header h1{margin:0;font-size:16px;font-weight:650}header select.compact{width:auto;padding:5px 4px}button,.btn{font:inherit;border:1px solid var(--line);background:var(--field);color:var(--ink);cursor:pointer;border-radius:7px;padding:6px 11px}button:hover,.btn:hover{border-color:var(--muted)}button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}button.wide{width:100%;margin-top:6px}.app{grid-template-columns:340px 1fr;min-height:calc(100vh - 55px);display:grid}aside{border-right:1px solid var(--line);background:var(--panel);max-height:calc(100vh - 55px);padding:8px 14px 24px;overflow:auto}main{min-width:0;padding:14px 16px 32px}fieldset{border:0;border-top:1px solid var(--line);margin:10px 0 0;padding:10px 0 0}legend{padding:0 6px 0 0;font-size:13px;font-weight:650}.row{grid-template-columns:1fr 92px 34px;align-items:center;gap:6px;margin:5px 0;display:grid}.row label{color:var(--muted);font-size:13px}.row .u{color:var(--muted);font-size:12px}.row select{grid-column:2/span 2}input,select{font:inherit;border:1px solid var(--line);background:var(--field);width:100%;color:var(--ink);border-radius:6px;padding:5px 7px}.hint{color:var(--muted);margin:4px 0;font-size:12px}input:disabled{color:var(--accent);background:0 0;border-style:dashed;font-weight:600}.row.check{grid-template-columns:1fr}.row.check label{color:var(--ink);cursor:pointer;align-items:center;gap:8px;display:flex}.row.check input{width:auto;margin:0}.extras{margin:8px 0 4px}.wdr{gap:6px;margin:4px 0 8px;display:grid}.wdr .btn{text-align:center}.driver-name{overflow-wrap:anywhere;font-size:13px;font-weight:600}.calib{margin-top:6px}.calib-result{border-left:3px solid var(--ok);background:var(--field);margin:4px 0 6px;padding:6px 8px;font-size:13px}.calib-result.bad{border-left-color:var(--bad)}.extras-title{color:var(--muted);margin-bottom:4px;font-size:13px}.extra-row{grid-template-columns:1fr 70px 16px 28px;align-items:center;gap:6px;margin:4px 0;display:grid}.extra-row .u{color:var(--muted);font-size:12px}button.icon{padding:3px 0;line-height:1}.cards{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-bottom:12px;display:grid}.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:9px 11px}.card .k{color:var(--muted);font-size:12px}.card .v{font-variant-numeric:tabular-nums;font-size:18px;font-weight:650}.card .v small{color:var(--muted);font-size:12px;font-weight:500}.warns{gap:6px;margin:0 0 12px;padding:0;list-style:none;display:grid}.warns li{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:7px 10px;font-size:13px}.warns li.bad{border-left:4px solid var(--bad)}.warns li.warn{border-left:4px solid var(--warn)}.warns li.ok{border-left:4px solid var(--ok)}.tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:4px;margin-bottom:10px;display:flex}.tabs button{color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;padding:8px 12px}.tabs button.on{color:var(--ink);border-bottom-color:var(--accent);font-weight:600}.view{display:none}.view.on{display:block}#three{border:1px solid var(--line);background:var(--panel);border-radius:10px;width:100%;height:520px;overflow:hidden}.toolbar{flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0;display:flex}.chart-wrap{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px}canvas.chart{width:100%;height:340px;display:block}.legend{color:var(--muted);gap:14px;margin:6px 4px 0;font-size:12px;display:flex}.legend i{border-top:2px solid var(--accent);vertical-align:middle;width:18px;margin-right:5px;display:inline-block}.legend i.cmp{border-top:2px dashed var(--cmp1)}.variants{margin-top:10px}.variant{grid-template-columns:auto auto 1fr auto auto;align-items:center;gap:8px;max-width:520px;margin:6px 0;display:grid}.variant input[type=checkbox]{width:auto}.swatch{vertical-align:middle;border-top:3px dashed;width:22px;margin-right:6px;display:inline-block}table.compare{margin-top:8px}#whatif,.variants{overflow-x:auto}table.compare td,table.compare th{white-space:nowrap}.delta{color:var(--muted)}.delta.good{color:var(--ok)}.delta.bad{color:var(--bad)}button:disabled{opacity:.5;cursor:not-allowed}.modal{z-index:60;background:#00000059;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal-box{background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:12px;gap:8px;width:min(520px,100%);padding:18px;display:grid;box-shadow:0 12px 40px #00000040}.modal-box h2{margin:0;font-size:16px}.modal-box label{color:var(--muted);font-size:13px}.modal-box textarea{font:inherit;border:1px solid var(--line);background:var(--field);width:100%;color:var(--ink);resize:vertical;border-radius:6px;padding:8px}.modal-actions{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.modal-box.wizard{width:min(600px,100%);max-height:calc(100vh - 32px);overflow:auto}.wz-steps{color:var(--muted);flex-wrap:wrap;gap:4px 10px;font-size:12px;display:flex}.wz-steps .on{color:var(--accent);font-weight:650}.wz-steps .done{color:var(--ink)}.choices{gap:6px;display:grid}.choice{border:1px solid var(--line);background:var(--field);cursor:pointer;border-radius:8px;grid-template-columns:auto 1fr;align-items:start;gap:10px;padding:8px 10px;display:grid;color:var(--ink)!important}.choice:has(input:checked){border-color:var(--accent)}.choice input{width:auto;margin:3px 0 0}.choice small{color:var(--muted);font-size:12px;display:block}.wizard .row{grid-template-columns:1fr 110px 34px}table.wz-sum th{width:34%}button.choice{text-align:left;width:100%;font:inherit;grid-template-columns:1fr}.choice.on{border-color:var(--accent)}.dp{gap:6px;min-width:0;margin:8px 0;display:grid}.dp-sizes{flex-wrap:wrap;gap:4px;display:flex}.dp-sizes button{padding:3px 9px;font-size:13px}.dp-sizes button.on{border-color:var(--accent);color:var(--accent);font-weight:600}.dp-list{border:1px solid var(--line);background:var(--field);border-radius:8px;max-height:min(320px,45vh);margin:0;padding:0;list-style:none;overflow:auto}.dp-list li{border-bottom:1px solid var(--line)}.dp-list li:last-child{border-bottom:0}.dp-list li.hint{padding:10px}.dp-list button{text-align:left;background:0 0;border:0;border-radius:0;gap:1px;width:100%;padding:7px 10px;display:grid}.dp-list button:hover{background:var(--panel)}.dp-list button.on{background:var(--panel);box-shadow:inset 3px 0 0 var(--accent)}.dp-name{overflow-wrap:anywhere;font-weight:600}.dp-list small{color:var(--muted);font-size:12px}.dp-warn,.dp-warn-line{color:var(--warn)}.dp-info{overflow-wrap:anywhere;font-size:13px}.dp-info:empty{display:none}.dp-issues{color:var(--warn);margin:4px 0;padding-left:18px}.dp-info a{color:var(--accent)}.wdr button.primary{width:100%}.toast{left:50%;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:50;background:var(--panel);max-width:min(560px,100% - 32px);color:var(--ink);border:1px solid var(--line);border-left:4px solid var(--ok);border-radius:8px;padding:10px 14px;font-size:13px;position:fixed;transform:translate(-50%);box-shadow:0 6px 24px #0000002e}.toast.warn{border-left-color:var(--warn)}.toast.bad{border-left-color:var(--bad)}#updatebar{align-items:center;gap:10px;display:flex}header .version{font-size:12px}table{border-collapse:collapse;background:var(--panel);border:1px solid var(--line);width:100%}th,td{border-bottom:1px solid var(--line);text-align:left;font-variant-numeric:tabular-nums;padding:7px 10px}th{color:var(--muted);font-size:12px;font-weight:600}.drawings{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:10px;display:grid}.drawings figure{background:var(--panel);border:1px solid var(--line);border-radius:10px;margin:0;padding:8px}.drawings figcaption{color:var(--muted);margin-bottom:4px;font-size:12px}svg.dwg{width:100%;height:auto;display:block}svg.dwg .w{fill:var(--wood);fill-opacity:.55;stroke:var(--ink);stroke-width:.8px}svg.dwg .h{fill:var(--bg);stroke:var(--ink);stroke-width:1px}svg.dwg .p{fill:var(--accent);fill-opacity:.18;stroke:var(--accent);stroke-width:1px}svg.dwg .d{stroke:var(--muted);stroke-width:.8px;fill:none}svg.dwg .ds{stroke:var(--muted);stroke-width:.8px;fill:none;stroke-dasharray:4 3}svg.dwg .axis{stroke:var(--accent)}svg.dwg text{fill:var(--ink);font-family:system-ui,sans-serif;font-size:11px}svg.dwg text.muted{fill:var(--muted)}.notes{color:var(--muted);margin-top:10px;font-size:12px}.subhead{margin:18px 0 8px;font-size:14px}.sheets{grid-template-columns:1fr}svg.dwg .sheet{fill:var(--bg);stroke:var(--ink);stroke-width:1px;stroke-dasharray:5 3}svg.dwg text.num{font-size:12px;font-weight:700}svg.dwg text.dim{fill:var(--muted);font-size:10px}.warnline{border-left:4px solid var(--bad);background:var(--panel);border-radius:8px;padding:7px 10px;font-size:13px}#report{display:none}@media (width<=860px){.app{grid-template-columns:1fr}aside{border-right:0;border-bottom:1px solid var(--line);max-height:none}#three{height:380px}}.steps{padding-left:22px}.steps li{margin:6px 0;line-height:1.45}@page{size:A4;margin:12mm}@media print{:root,:root[data-theme=dark]{--bg:#fff;--panel:#fff;--ink:#000;--muted:#555;--line:#ccc;--field:#fff;--accent:#d2561b;--wood:#e7d3b5;--grid:#e5e5e5}header,.app{display:none!important}body{background:#fff}#report{color:#000;display:block}#report h1{margin:0 0 4px;font-size:18px}#report h2{break-after:avoid;margin:14px 0 6px;font-size:15px}#report .meta{color:#555;font-size:12px}#report table{border:1px solid #999}#report th,#report td{border-bottom:1px solid #ccc}#report tr,#report figure{break-inside:avoid}#report .warns li{font-size:12px}#report .drawings{grid-template-columns:1fr 1fr}#report .drawings.sheets{grid-template-columns:1fr}#report section.page{break-before:page}#report figure{border-color:#ccc}}.wdr #f_fit{width:100%}.fit-v{border:1px solid;border-radius:999px;margin-left:4px;padding:1px 6px;font-size:11px;font-weight:600}.fit-v.good{color:var(--ok)}.fit-v.ok{color:var(--warn)}.fit-v.poor{color:var(--bad)}#fit .dp-list{max-height:min(360px,45vh)}.help-btn{width:18px;height:18px;color:var(--muted);vertical-align:1px;border-radius:50%;place-items:center;margin-left:5px;padding:0;font-size:11px;font-weight:700;line-height:1;display:inline-grid}.help-btn[aria-expanded=true]{color:var(--accent-ink);background:var(--accent);border-color:var(--accent)}.row .help{color:var(--ink);background:var(--field);border-left:3px solid var(--accent);border-radius:4px;grid-column:1/-1;margin:0 0 4px;padding:6px 8px;font-size:12px;line-height:1.45}html.booting body{visibility:hidden;animation:0s 3s forwards reveal}@keyframes reveal{to{visibility:visible}}
