:root{--bg:#eef1f4;--surface:#fff;--border:#d5dbe1;--text:#1f2328;--muted:#59636e;--accent:#0c7c8f;--accent-soft:#e3f4f6;--error:#c92a2a;--error-soft:#fff0f0;--ok:#2b8a3e;--ok-soft:#ebfbee;--workspace:#dde2e7;--on-fill:#fff;--disabled-bg:#f3f4f6;--warn:#9a5b00;--warn-soft:#fff4e0;--rule:#eceff2;--row-hover:#f6f8fa;--shadow:#00000040;--cta-bg:#d3f9d8;--cta-bg-hover:#b2f2bb;--cta-fg:#14532d;--cta-border:#2b8a3e;--help-ink:var(--text);--help-soft:var(--muted);--help-curve:var(--accent);--help-bad:var(--error);--help-halo:transparent;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.4}:root[data-theme=dark]{--bg:#15181c;--surface:#1e2227;--border:#3a424b;--text:#e6e8eb;--muted:#a3acb6;--accent:#4fc3d6;--accent-soft:#163a40;--error:#ff8787;--error-soft:#3b1e21;--ok:#69db7c;--ok-soft:#16321d;--workspace:#0e1013;--on-fill:#0b1a1e;--disabled-bg:#262b31;--warn:#ffc078;--warn-soft:#3a2a10;--rule:#2c3238;--row-hover:#252a30;--shadow:#0009;--cta-border:#8ce99a;--help-halo:#ffffffd9;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}button,input,select{font:inherit;color:inherit}button{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:6px;padding:4px 10px}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:var(--on-fill)}button.small{padding:2px 8px;font-size:13px}button.icon{background:0 0;border:none;padding:0 4px}button.link{color:var(--accent);background:0 0;border:none;padding:0;text-decoration:underline}input[type=text],input[type=number],select{border:1px solid var(--border);background:var(--surface);border-radius:5px;min-width:0;padding:3px 6px}input[aria-invalid=true]{border-color:var(--error);background:var(--error-soft)}input:disabled{background:var(--disabled-bg)}kbd{border:1px solid var(--border);background:var(--surface);border-bottom-width:2px;border-radius:4px;padding:0 4px;font-family:inherit;font-size:12px}.muted{color:var(--muted)}.small-text{margin:2px 0 6px;font-size:12px}.app{grid-template-rows:auto 1fr auto;height:100%;min-height:0;display:grid}.toolbar{background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:6px 10px;min-height:44px;padding:6px 12px;display:flex}.toolbar h1{color:var(--accent);white-space:nowrap;margin:0 8px 0 0;font-size:16px}.zoom{align-items:center;gap:4px;display:flex}.zoom-level{text-align:center;font-variant-numeric:tabular-nums;min-width:48px}.spacer{flex:1}.notice-layer{left:0;right:var(--panel-width);pointer-events:none;z-index:2;justify-content:center;padding:0 12px;display:flex;position:absolute;bottom:16px}.notice{border:1px solid var(--border);min-width:0;max-width:min(720px,100%);box-shadow:0 2px 10px var(--shadow);border-radius:6px;align-items:center;gap:6px;padding:4px 4px 4px 12px;font-size:13px;display:flex}.notice button{pointer-events:auto}.notice.info{background:var(--accent-soft)}.notice.error{background:var(--error-soft);color:var(--error)}.main{--panel-width:360px;grid-template-columns:1fr var(--panel-width);min-height:0;display:grid;position:relative}.workspace{background:var(--workspace);min-width:0;min-height:0;position:relative;overflow:hidden}.workspace>canvas{touch-action:none;display:block;position:absolute;inset:0}.workspace.dropping{outline:3px dashed var(--accent);outline-offset:-8px}.empty-state{text-align:center;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.empty-state button{pointer-events:auto}.empty-title{margin:0 0 4px;font-size:20px;font-weight:600}.drop-hint{background:var(--accent);color:var(--on-fill);pointer-events:none;border-radius:6px;padding:4px 12px;position:absolute;top:16px;left:50%;transform:translate(-50%)}.panel{background:var(--surface);border-left:1px solid var(--border);flex-direction:column;min-height:0;display:flex}.steps{border-bottom:1px solid var(--border);display:flex}.step-tab{border:none;border-bottom:3px solid #0000;border-radius:0;flex:1;justify-content:center;align-items:center;gap:6px;padding:8px 4px;font-weight:500;display:flex}.step-tab.current{border-bottom-color:var(--accent);color:var(--accent)}.step-num{background:var(--bg);border-radius:50%;place-items:center;width:20px;height:20px;font-size:12px;display:inline-grid}.step-tab.done .step-num{background:var(--ok);color:var(--on-fill)}.step-scroll{border-bottom:1px solid var(--border);flex:0 auto;min-height:0;overflow:auto}.step-body{flex-direction:column;gap:8px;padding:10px 12px;display:flex}.step-body p{margin:0}.prompt{font-weight:500}.row{flex-wrap:wrap;gap:8px;display:flex}.row.two>*{flex:1}.field{color:var(--muted);flex-direction:column;gap:2px;font-size:12px;display:flex}.field select{color:var(--text);font-size:14px}.refs{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.ref{border:1px solid #0000;border-radius:6px;align-items:flex-start;gap:8px;padding:4px;display:flex}.ref.placing{border-color:var(--accent);background:var(--accent-soft)}.ref-badge{color:#fff;border-radius:4px;margin-top:3px;padding:3px 6px;font-size:12px;font-weight:700}.ref-main{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.ref .small{min-width:58px;margin-top:2px}.hint{font-size:12px}.hint.ok{color:var(--ok)}.hint.bad,.error{color:var(--error)}.error,.info{border-radius:6px;padding:6px 8px;font-size:13px}.error{background:var(--error-soft)}.info{background:var(--accent-soft)}.ok-box{background:var(--ok-soft);color:var(--ok);border-radius:6px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;font-size:13px;display:flex}.auto{flex-direction:column;gap:6px;display:flex}.auto-result{border:1px dashed var(--accent);background:var(--surface);border-radius:8px;padding:8px}.auto-result .prompt{margin:0}.auto-axis{flex-direction:column;gap:2px;display:flex}.auto-head{align-items:center;gap:8px;display:flex}.auto-head .badge{margin-left:auto}.badge{white-space:nowrap;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:700}.badge.high{background:var(--ok-soft);color:var(--ok)}.badge.medium{background:var(--warn-soft);color:var(--warn)}.badge.low{background:var(--error-soft);color:var(--error)}.auto-axis .hint{margin:0}.ref-badge.ghost{color:var(--text);background:var(--surface);border:1.5px dashed}.trace .prompt{align-items:center;gap:6px;display:flex}.trace p{margin:0}.swatch.ghost{box-sizing:border-box;border:2px dashed;width:12px;height:12px}.trace-settings input[type=range]{width:110px}.trace-prompt{background:var(--accent);color:var(--on-fill,#fff);pointer-events:none;border-radius:6px;padding:4px 12px;position:absolute;top:16px;left:50%;transform:translate(-50%)}.datasets{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.datasets li{border-radius:6px;align-items:center;gap:6px;padding:2px 4px;display:flex}.datasets li.active{background:var(--accent-soft)}.datasets input[type=color]{border:1px solid var(--border);background:0 0;border-radius:4px;width:26px;height:22px;padding:0}.datasets .name{flex:1;padding-block:2px}.datasets .count{color:var(--muted);text-align:right;min-width:22px;font-size:12px}.datasets button.eye{color:var(--muted);align-items:center;display:inline-flex}.datasets li.line-hidden button.eye{color:var(--text)}.datasets li.line-hidden input[type=color],.datasets li.line-hidden .name,.datasets li.line-hidden .count{opacity:.5}.table-panel{flex-direction:column;flex:1 1 0;min-height:136px;display:flex}.table-options{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:4px 12px;padding:6px 12px;font-size:13px;display:flex}.check,.inline{align-items:center;gap:4px;display:flex}.inline input[type=number]{width:52px}.inline.wide input{width:150px}.table-options .collapse-all{gap:4px;margin-left:auto;display:flex}.tables{flex:1 1 0;min-height:0;padding:4px 12px;overflow:auto}.dataset-table h3{margin:4px 0 2px;font-size:13px}.line-header{align-items:center;gap:4px;display:flex}.line-header .line-toggle{flex:auto;min-width:0}.line-header .select-line{flex:none;font-weight:400}button.line-toggle{text-align:left;background:0 0;border:none;border-radius:4px;align-items:center;gap:6px;width:100%;padding:2px 4px;font-weight:600;display:flex}button.line-toggle:hover:not(:disabled){background:var(--row-hover)}button.line-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.line-toggle .muted{font-weight:400}.line-toggle .chevron{color:var(--muted);margin-left:auto;transition:transform .12s}.line-toggle[aria-expanded=false] .chevron{transform:rotate(-90deg)}.swatch{border-radius:50%;width:10px;height:10px;display:inline-block}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:13px}th,td{border-bottom:1px solid var(--rule);text-align:left;padding:2px 6px}th{background:var(--surface);color:var(--muted);font-weight:500;position:sticky;top:0}td.num{text-align:right}tbody tr{cursor:pointer;scroll-margin-top:26px}tbody tr:hover{background:var(--row-hover)}tbody tr.selected{background:var(--accent-soft)}.export-bar{border-top:1px solid var(--border);flex-wrap:wrap;gap:6px;padding:6px 8px;display:flex}.export-bar button{white-space:nowrap;padding:2px 6px}.statusbar{background:var(--surface);border-top:1px solid var(--border);font-variant-numeric:tabular-nums;align-items:center;gap:16px;min-width:0;min-height:24px;padding:3px 12px;font-size:12px;display:flex;overflow:hidden}.tool-group{align-items:center;gap:4px;display:flex}.toolbar button{white-space:nowrap}button.icon-text{min-width:30px;padding-left:6px;padding-right:6px;font-size:16px;line-height:1}button.icon-label{align-items:center;gap:4px;display:inline-flex}.tool-icon{flex:none}button.toggle[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.notice-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.notice .small{flex:none}.statusbar .bad{color:var(--error)}.statusbar>span:not(.spacer){white-space:nowrap;flex:none}.statusbar .shortcuts{text-overflow:ellipsis;flex:0 auto;min-width:0;overflow:hidden}.statusbar .credit a{color:var(--accent)}.loupe{pointer-events:none;background:var(--surface);border:1px solid var(--border);box-shadow:0 2px 10px var(--shadow);border-radius:6px;position:absolute;top:12px;overflow:hidden}.loupe.top-left{left:12px}.loupe.top-right{right:12px}.loupe canvas{display:block}.loupe-caption{font-variant-numeric:tabular-nums;border-top:1px solid var(--border);justify-content:space-between;gap:8px;padding:2px 6px;font-size:11px;display:flex}.crop-panel{border:1px dashed var(--accent);background:var(--surface);border-radius:8px;flex-direction:column;gap:8px;padding:8px;display:flex}.crop-panel p{margin:0}.crop-fields{grid-template-columns:1fr 1fr;gap:6px 8px;display:grid}.field input[type=number]{color:var(--text);width:100%;font-size:14px}.axes-head{flex-wrap:wrap;align-items:flex-start;gap:8px;display:flex}.axes-head .prompt{flex:1;min-width:0}button.help-btn{border-color:var(--accent);width:24px;height:24px;color:var(--accent);border-radius:50%;flex:none;padding:0;font-weight:700;line-height:1}button.help-btn[aria-expanded=true]{background:var(--accent);color:var(--on-fill)}button.help-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.axes-help{border:1px solid var(--accent);background:var(--surface);border-radius:8px;flex-direction:column;flex:1 0 100%;gap:6px;padding:8px;display:flex}.axes-help-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.axes-help figure{margin:0}.help-svg{width:100%;max-width:340px;height:auto;display:block}.help-axis{stroke:var(--help-ink);stroke-width:1.5px}.help-curve{fill:none;stroke:var(--help-curve);stroke-width:1.5px;opacity:.6}.help-label{fill:var(--help-ink);font-size:11px}.help-note{fill:var(--help-soft);font-size:10px}.help-note.bad{fill:var(--help-bad)}.help-ring{fill:none;stroke-width:2px}.help-halo{fill:none;stroke:var(--help-halo);stroke-width:4px}.help-ring.x{stroke:var(--ref-x)}.help-ring.y{stroke:var(--ref-y)}.help-badge-text{fill:#fff;font-size:9px;font-weight:700}.help-dim{stroke:var(--help-soft);stroke-width:1px}.help-arrowhead{fill:var(--help-soft)}.help-cross{stroke:var(--help-bad);stroke-width:2px;stroke-linecap:round}.axes-help-steps{flex-direction:column;gap:2px;margin:0;padding-left:18px;font-size:13px;display:flex}.axes-help-steps code{font-size:12px}button.cta{background:var(--cta-bg);width:100%;min-height:44px;color:var(--cta-fg);border:1.5px solid var(--cta-border);border-radius:8px;font-size:16px;font-weight:600}button.cta:hover:not(:disabled){background:var(--cta-bg-hover);border-color:var(--cta-border)}button.cta:active:not(:disabled){transform:translateY(1px)}button.cta:focus-visible{outline:3px solid var(--cta-border);outline-offset:2px}button.cta:disabled{opacity:.55;border-style:dashed}
