:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f4f2;--surface:#fcfcfb;--border:#e2e1dc;--text:#0b0b0b;--text-2:#52514e;--muted:#7a7974;--accent:#2a78d6;--accent-ink:#fff;--warn-bg:#fff4dc;--warn-ink:#6b4a00;--err-bg:#fde8e8;--err-ink:#8a1f1f;--grid:#ecebe7;--plane:#8a8984;--box:#0b0b0b;--ghost:#b9b8b2;--aim:#2a78d659;--series-1:#2a78d6;--series-2:#eb6834;--series-3:#1baf7a;--series-4:#eda100;--series-5:#e87ba4;--sw-support-accent:var(--accent)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#111110;--surface:#1a1a19;--border:#2f2f2c;--text:#fff;--text-2:#c3c2b7;--muted:#8f8e86;--accent:#3987e5;--warn-bg:#3a2e10;--warn-ink:#f3d58a;--err-bg:#3d1a1a;--err-ink:#f5b5b5;--grid:#262624;--plane:#9a998f;--box:#f2f2ee;--ghost:#55554f;--aim:#3987e566;--series-1:#3987e5;--series-2:#d95926;--series-3:#199e70;--series-4:#c98500;--series-5:#d55181}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#111110;--surface:#1a1a19;--border:#2f2f2c;--text:#fff;--text-2:#c3c2b7;--muted:#8f8e86;--accent:#3987e5;--warn-bg:#3a2e10;--warn-ink:#f3d58a;--err-bg:#3d1a1a;--err-ink:#f5b5b5;--grid:#262624;--plane:#9a998f;--box:#f2f2ee;--ghost:#55554f;--aim:#3987e566;--series-1:#3987e5;--series-2:#d95926;--series-3:#199e70;--series-4:#c98500;--series-5:#d55181}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);margin:0}body{font:14px/1.45 system-ui,-apple-system,Segoe UI,sans-serif}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em}h1{letter-spacing:-.01em;margin:0;font-size:20px}h2{margin:0 0 8px;font-size:22px}h3{text-transform:uppercase;letter-spacing:.05em;color:var(--text-2);margin:18px 0 8px;font-size:13px}.card-head h3{margin:0}.muted{color:var(--muted)}.small{font-size:12px}.app{flex-direction:column;min-height:100vh;display:flex}.app.dragging{outline:3px dashed var(--accent);outline-offset:-8px}.top{border-bottom:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;display:flex}.brand{flex-wrap:wrap;align-items:baseline;gap:12px;display:flex}.tag{color:var(--muted);font-size:13px}.preview{text-transform:uppercase;letter-spacing:.06em;border:1px solid var(--accent);color:var(--accent);border-radius:99px;padding:1px 7px;font-size:11px;font-weight:600}.top-actions{align-items:center;gap:8px;display:flex}.btn.ghost{color:var(--text-2);background:0 0;border-color:#0000}.foot{margin-top:auto;padding:16px 20px}.btn{border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;padding:7px 14px;font-weight:500;display:inline-flex}.btn:hover{border-color:var(--muted)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn:disabled{opacity:.5;cursor:default}.banner{border-radius:8px;margin:8px 0;padding:8px 12px}.banner.error{background:var(--err-bg);color:var(--err-ink);margin:12px 20px 0}.banner.warn{background:var(--warn-bg);color:var(--warn-ink)}.empty{text-align:center;border:2px dashed var(--border);background:var(--surface);border-radius:16px;max-width:640px;margin:12vh auto;padding:32px}.empty p{color:var(--text-2)}.layout{flex:1;grid-template-columns:300px minmax(0,1fr);gap:16px;padding:16px 20px;display:grid}.panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;align-self:start;max-height:calc(100vh - 32px);padding:14px 16px;position:sticky;top:16px;overflow:auto}.field{flex-direction:column;gap:4px;margin-bottom:12px;display:flex}.field.row{flex-direction:row;gap:10px}.field.row>label{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.label{color:var(--text-2);font-size:12px}.value{overflow-wrap:anywhere;font-weight:600}select,input[type=number]{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:6px;width:100%;min-width:0;padding:5px 8px}input[type=range]{width:100%;accent-color:var(--accent)}.check{align-items:baseline;gap:8px;margin:4px 0;display:flex}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:99px;padding:3px 10px;font-size:12px}.chip input{display:none}.chip.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.actions{align-items:center;gap:10px;margin-top:16px;display:flex}details ul{margin:6px 0;padding-left:18px}.results{flex-direction:column;gap:16px;min-width:0;display:flex}.scores{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.score{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:2px;padding:12px 14px;display:flex}.score .big{font-variant-numeric:tabular-nums;font-size:24px;font-weight:650}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;min-width:0;padding:14px 16px}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.grid2{grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:16px;display:grid}.export{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.export p{max-width:70ch;margin:0}.chart,.section{width:100%;position:relative}.chart svg,.section svg{display:block}.legend{color:var(--text-2);flex-wrap:wrap;gap:14px;margin-bottom:6px;font-size:12px;display:flex}.key{align-items:center;gap:6px;display:inline-flex}.key i,.tooltip i{border-radius:2px;width:14px;height:3px;display:inline-block}.key i.dash{background:repeating-linear-gradient(90deg, var(--muted) 0 4px, transparent 4px 7px)}.grid{stroke:var(--grid);stroke-width:1px}.axis{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.trace{fill:none;stroke-width:2px;stroke-linejoin:round}.trace.before{stroke-width:1.5px;stroke-dasharray:4 3;opacity:.55}.target{fill:none;stroke:var(--muted);stroke-width:1.5px;stroke-dasharray:6 4}.excluded{fill:var(--text);opacity:.05}.cross{stroke:var(--muted);stroke-width:1px}.dot{stroke:var(--surface);stroke-width:2px}.tooltip{pointer-events:none;background:var(--surface);border:1px solid var(--border);font-variant-numeric:tabular-nums;border-radius:8px;min-width:150px;padding:6px 10px;font-size:12px;position:absolute;top:34px;box-shadow:0 4px 16px #0000001f}.tooltip i{vertical-align:middle;margin-right:6px}.plane{fill:none;stroke:var(--plane);stroke-width:3px;stroke-linecap:round}.box{fill:var(--surface);stroke:var(--box);stroke-width:1.2px}.box.ghost{fill:none;stroke:var(--ghost);stroke-dasharray:3 2}.aim{stroke:var(--aim);stroke-width:1px}.section{flex-direction:column;align-items:center;gap:12px;display:flex}.section.side{flex-direction:row-reverse;justify-content:space-between;align-items:flex-start}svg.inset{border:1px solid var(--border);background:var(--bg);border-radius:8px;flex:none}table.splays{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.splays th{text-align:left;color:var(--text-2);border-bottom:1px solid var(--border);padding:4px 6px;font-size:12px;font-weight:500}.splays td{border-bottom:1px solid var(--grid);padding:3px 6px}.splays select,.splays input{width:80px;padding:2px 6px}.splays .changed{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}@media (width<=900px){.layout{grid-template-columns:minmax(0,1fr);padding:12px 16px}.panel{max-height:none;position:static}.grid2{grid-template-columns:minmax(0,1fr)}.top{padding:12px 16px}}@media (width<=520px){.scores{grid-template-columns:minmax(0,1fr)}.tag{display:none}}.saving{gap:6px;width:100%}.saved-row{border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;align-items:baseline;gap:10px;padding:6px 10px;display:flex}.saved-row.current{border-color:var(--accent)}.saved-row .small{font-variant-numeric:tabular-nums;flex:1;min-width:12ch}.linkish{font:inherit;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:0;padding:0;font-weight:600}.linkish:hover{color:var(--accent)}.small-btn{padding:2px 8px;font-size:12px}
