:root{--bg:#f4f5f7;--panel:#fff;--fg:#1d2330;--muted:#667085;--line:#dfe3ea;--accent:#1f5fbf;--accent-fg:#fff;--danger:#d92d20;--warn:#b54708;--ok:#067647;--axis-x:#d9480f;--axis-y:#1971c2;--under:#b8bec9;--canvas:#fbfcfd;--radius:6px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font:14px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#11151c;--panel:#1a1f29;--fg:#e6e9ef;--muted:#98a2b3;--line:#2c3442;--accent:#5b9bf0;--accent-fg:#0b1220;--danger:#f97066;--warn:#fdb022;--ok:#47cd89;--axis-x:#ff8c42;--axis-y:#63a8f2;--under:#4a5263;--canvas:#141922}}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);margin:0}main{max-width:1600px;margin:0 auto;padding:16px 24px 48px}h1{margin:0 0 12px;font-size:20px}h2{margin:0 0 10px;font-size:16px}h3{margin:0;font-size:14px}a{color:var(--accent)}code,.mono{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:13px}.muted{color:var(--muted)}.small{font-size:12px}.error{color:var(--danger)}.warn{color:var(--warn)}.ok{color:var(--ok)}.center{place-items:center;min-height:60vh;display:grid}.topbar{background:var(--panel);border-bottom:1px solid var(--line);z-index:5;align-items:center;gap:24px;height:52px;padding:0 24px;display:flex;position:sticky;top:0}.topbar nav{flex:1;gap:4px;display:flex;overflow-x:auto}.topbar nav a{border-radius:var(--radius);color:var(--fg);white-space:nowrap;padding:8px 12px;text-decoration:none}.topbar nav a:hover{background:var(--bg)}.topbar nav a.active{background:var(--accent);color:var(--accent-fg)}.brand{font-size:16px}.user{color:var(--muted);white-space:nowrap}button,.button{font:inherit;color:var(--fg);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;padding:6px 12px;text-decoration:none;display:inline-block}button:hover:not(:disabled),.button:hover{border-color:var(--accent)}button:disabled{opacity:.5;cursor:not-allowed}.primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}button.link{color:var(--accent);background:0 0;border:0;padding:0;text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input,select,textarea{font:inherit;color:var(--fg);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);width:100%;padding:6px 8px}input[type=checkbox]{width:auto}input.short{width:70px}label{color:var(--muted);flex-direction:column;gap:4px;font-size:13px;display:flex}label>input,label>select,label>textarea{color:var(--fg)}label.check,.chip{color:var(--fg);flex-direction:row;align-items:center;gap:6px}fieldset{border:1px solid var(--line);border-radius:var(--radius);gap:8px;padding:10px 12px;display:grid}legend{color:var(--muted);padding:0 4px;font-size:13px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:16px;padding:16px}.ok-card{border-color:var(--ok)}.notice{background:color-mix(in srgb, var(--accent) 8%, var(--panel));border:1px solid var(--line);border-radius:var(--radius);padding:8px 12px}.toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;display:flex}.toolbar h1,.toolbar h2{margin:0}.toolbar.compact{gap:8px;margin-bottom:8px}.toolbar input[type=search]{max-width:280px}.spacer{flex:1}.buttons{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row{align-items:end;gap:8px;display:flex}.row>button{white-space:nowrap;flex:none}fieldset>button{justify-self:start}.form-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));align-items:end;gap:12px;display:grid}.form-grid .wide,.form-grid h1,.form-grid h2{grid-column:1/-1}.form-grid.inset{border:1px dashed var(--line);border-radius:var(--radius);margin-bottom:12px;padding:12px}.filters{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;display:grid}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line);border-radius:999px;padding:3px 10px;font-size:13px}.chip.inactive{opacity:.6}table{border-collapse:collapse;background:var(--panel);width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:7px 10px}th{color:var(--muted);font-size:12px;font-weight:600}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}td.actions{white-space:nowrap;text-align:right}td.actions>*+*{margin-left:4px}tr.inactive td{opacity:.55}tr.child td{font-size:13px}tr.child td:first-child{padding-left:22px}tr.selected td{background:color-mix(in srgb, var(--accent) 10%, transparent)}tr.has-issue td{background:color-mix(in srgb, var(--danger) 8%, transparent)}tr.detail td{background:var(--bg)}table.dense td,table.dense th{padding:4px 6px}table.dense input{padding:3px 6px}.badge{border:1px solid var(--line);border-radius:999px;margin-left:6px;padding:1px 8px;font-size:11px;font-weight:400;display:inline-block}.badge.ok{color:var(--ok);border-color:var(--ok)}.badge.error{color:var(--danger);border-color:var(--danger)}.badge.warn{color:var(--warn);border-color:var(--warn)}.login{gap:12px;max-width:360px;margin:12vh auto;display:grid}.login h1{margin:0}.editor-grid{grid-template-columns:minmax(0,1fr) 380px;align-items:start;gap:16px;display:grid}@media (width<=1100px){.editor-grid{grid-template-columns:1fr}}.segmented{display:inline-flex}.segmented button{border-radius:0}.segmented button:first-child{border-radius:var(--radius) 0 0 var(--radius)}.segmented button:last-child{border-radius:0 var(--radius) var(--radius) 0}.segmented button+button{margin-left:-1px}.segmented button.on{background:var(--accent);color:var(--accent-fg);border-color:var(--accent);position:relative}.axis{font-weight:700}.axis-x{color:var(--axis-x)}.axis-y{color:var(--axis-y)}.issues{color:var(--danger);margin:8px 0;padding-left:18px}.versions{gap:8px;margin:0;padding:0;list-style:none;display:grid}.versions li{border-radius:var(--radius);padding:6px 8px}.versions li.selected{background:color-mix(in srgb, var(--accent) 10%, transparent)}.dropzone{border:2px dashed var(--line);border-radius:var(--radius);text-align:center;color:var(--muted);cursor:pointer;margin-bottom:8px;padding:18px;display:block}.dropzone.over{border-color:var(--accent);color:var(--accent)}.select{-webkit-user-select:all;user-select:all}.viewer{border:1px solid var(--line);border-radius:var(--radius);background:var(--canvas);position:relative;overflow:hidden}.viewer svg{touch-action:none;width:100%;height:100%;display:block}.viewer svg.tool-pan{cursor:grab}.viewer svg.tool-pan:active{cursor:grabbing}.viewer svg.tool-add{cursor:crosshair}.viewer-tools{z-index:1;position:absolute;top:8px;right:8px}.viewer-dims{color:var(--muted);pointer-events:none;font-size:12px;position:absolute;bottom:6px;left:10px}.zone{opacity:.08;pointer-events:none}.zone-x{fill:var(--axis-x)}.zone-y{fill:var(--axis-y)}.sline line{stroke-width:1.5px;stroke-dasharray:6 4}.sline-x line,.sline-x text{stroke:var(--axis-x);fill:var(--axis-x)}.sline-y line,.sline-y text{stroke:var(--axis-y);fill:var(--axis-y)}.sline text{stroke:none;font-family:system-ui,sans-serif}.sline.selected line{stroke-width:3px;stroke-dasharray:none}.sline.error line,.sline.error text{stroke:var(--danger);fill:var(--danger)}.sline.error text{stroke:none}.sline line.grip{stroke:#0000;stroke-width:12px;stroke-dasharray:none;cursor:col-resize}.sline-y line.grip{cursor:row-resize}.axis-formula .row{align-items:center}.axis-formula code.base{white-space:nowrap;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);padding:6px 8px}.piece-diagram{flex-wrap:wrap;align-items:center;gap:16px;margin:0;display:flex}.piece-diagram svg{width:300px;max-width:100%;height:auto}.piece-diagram figcaption{gap:4px;max-width:420px;display:grid}.pd-sheet{fill:color-mix(in srgb, var(--fg) 6%, transparent);stroke:var(--fg);stroke-width:1.5px}.pd-name{fill:var(--muted);font-size:12px}.pd-axis{stroke-width:1.5px}.pd-label{font-size:13px;font-weight:600}line.pd-x{stroke:var(--axis-x)}line.pd-y{stroke:var(--axis-y)}path.pd-x,text.pd-x{fill:var(--axis-x)}path.pd-y,text.pd-y{fill:var(--axis-y)}.pd-zone{opacity:.12}rect.pd-x{fill:var(--axis-x)}rect.pd-y{fill:var(--axis-y)}.pd-stretch{stroke-width:1.5px;stroke-dasharray:6 4}line.pd-stretch.pd-x{stroke:var(--axis-x)}line.pd-stretch.pd-y{stroke:var(--axis-y)}.pd-weak{opacity:.45}rect.pd-zone.pd-weak{opacity:.05}.pd-tag{font-size:11px;font-weight:600}details.card>summary{cursor:pointer}details.card[open]>summary{margin-bottom:8px}.config{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.mosaic{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin:16px 0;display:grid}.tile{text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;flex-direction:column;gap:4px;padding:10px;display:flex}.tile.selected{border-color:var(--accent)}.tile.has-error{border-color:var(--danger)}.tile button.link{color:var(--fg);text-align:left;text-decoration:none}
