:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ground:#1a2c40;--header:#0f1f2e;--card:#233c60;--border:#334e68;--text:#e5e7eb;--muted:#b4c5d6;--accent:#00e676;--on-accent:#0f1f2e;--warn:#ff9800;--on-warn:#0f1f2e;--refused:#d81b60;--on-refused:#fff;--ok-text:#00e676;--warn-text:#ffb74d;--refused-text:#ff8fb6;--ok-bg:#00e6761a;--warn-bg:#ff98001f;--refused-bg:#d81b6029;--chip-muted:#334e68;--input:#15283c;--focus:#00e676;--backdrop:#050c14b3;--view-bg:#0f1f2e;--view-table:#2a4566;--view-board:#d8c3a0;--view-edge:#5b4a33;--view-fence:#8fa3b8;--view-ok:#00e676;--view-refused:#d81b60;--view-feed:#ff9800}@media (prefers-color-scheme:light){:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ground:#eef2f6;--header:#fff;--card:#fff;--border:#c3cfdb;--text:#0f1f2e;--muted:#4a5f75;--accent:#00e676;--on-accent:#0f1f2e;--warn:#ff9800;--on-warn:#0f1f2e;--refused:#d81b60;--on-refused:#fff;--ok-text:#007a3d;--warn-text:#9a5200;--refused-text:#b0124c;--ok-bg:#00c8531a;--warn-bg:#ff98001f;--refused-bg:#d81b6014;--chip-muted:#e1e8ef;--input:#f7f9fb;--focus:#007a3d;--backdrop:#0f1f2e73;--view-bg:#e4eaf0;--view-table:#c4d0dc;--view-board:#d8c3a0;--view-edge:#6b5639;--view-fence:#5d7186;--view-ok:#00a152;--view-refused:#d81b60;--view-feed:#e68900}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--ground);min-height:100vh;color:var(--text);font-variant-numeric:tabular-nums;-webkit-tap-highlight-color:transparent;margin:0;font:16px/1.45 system-ui,Roboto,sans-serif}a{color:inherit}p{margin:0}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.muted{color:var(--muted)}.nums{font-variant-numeric:tabular-nums}.refused-text{color:var(--refused-text)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.icon{flex:none;width:24px;height:24px}.icon-inline{vertical-align:-4px;width:20px;height:20px;margin-right:6px}.appbar{z-index:10;min-height:calc(56px + env(safe-area-inset-top));padding:env(safe-area-inset-top) max(4px, env(safe-area-inset-right)) 0 max(4px, env(safe-area-inset-left));background:var(--header);border-bottom:1px solid var(--border);align-items:center;gap:4px;display:flex;position:sticky;top:0}.appbar h1{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;margin:0 4px;font-size:20px;font-weight:600;overflow:hidden}.appbar-actions{display:flex}.mark{width:48px;height:48px;color:var(--ok-text);justify-content:center;align-items:center;display:inline-flex}.icon-button{width:48px;height:48px;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:12px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-button:active{background:var(--border)}.icon-button-danger{color:var(--refused-text);border:1px solid var(--border)}.content{width:100%;max-width:640px;padding:12px max(16px, env(safe-area-inset-right)) calc(32px + env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));margin:0 auto}.content.has-bottom{padding-bottom:calc(112px + env(safe-area-inset-bottom))}.bottombar{z-index:10;padding:12px max(16px, env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));background:var(--header);border-top:1px solid var(--border);gap:8px;display:grid;position:fixed;bottom:0;left:0;right:0}.bottombar>*{width:100%;max-width:608px;margin:0 auto}.bottom-note:empty{display:none}.bottom-note .notice{margin:0}.offline{padding:calc(8px + env(safe-area-inset-top)) 16px 8px;background:var(--warn);color:var(--on-warn);font-size:15px;font-weight:600}.offline[hidden]{display:none}.update{left:12px;right:12px;bottom:calc(100px + env(safe-area-inset-bottom));z-index:20;border:1px solid var(--accent);background:var(--header);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;max-width:608px;margin:0 auto;padding:8px 8px 8px 16px;display:flex;position:fixed}.button{min-height:48px;font:inherit;cursor:pointer;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-weight:600;text-decoration:none;display:inline-flex}.button-wide{width:100%}.button-small{padding:0 14px;font-size:15px}.button-primary{background:var(--accent);color:var(--on-accent)}.button-primary:active{filter:brightness(.9)}.button-primary:disabled{background:var(--border);color:var(--muted);cursor:default}.button-secondary{border-color:var(--border);color:var(--text);background:0 0}.button-danger{border-color:var(--refused);color:var(--refused-text);background:0 0}.button:disabled{cursor:default}.field{gap:6px;min-width:0;display:grid}.label{color:var(--muted);font-size:14px;font-weight:600}.input{border:1px solid var(--border);background:var(--input);width:100%;min-height:48px;color:var(--text);font:inherit;border-radius:10px;padding:0 12px}.input:focus{outline:2px solid var(--focus);outline-offset:0}.input-code{font-family:ui-monospace,Roboto Mono,monospace;font-size:14px}.field-error{color:var(--refused-text);margin-top:8px;font-size:14px}code{background:var(--ground);white-space:nowrap;border-radius:6px;padding:1px 6px;font-family:ui-monospace,Roboto Mono,monospace;font-size:14px}.chip{letter-spacing:.03em;text-transform:uppercase;white-space:nowrap;border-radius:999px;flex:none;align-items:center;height:28px;padding:0 10px;font-size:13px;font-weight:700;display:inline-flex}.chip-ok{background:var(--accent);color:var(--on-accent)}.chip-moving,.chip-warn{background:var(--warn);color:var(--on-warn)}.chip-refused{background:var(--refused);color:var(--on-refused)}.chip-idle{border:1px solid var(--border);color:var(--muted)}.chip-muted{background:var(--chip-muted);color:var(--text)}.loading{min-height:48px;color:var(--muted);align-items:center;gap:10px;display:flex}.spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;flex:none;width:18px;height:18px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation:none}}.notice{border:1px solid var(--border);border-radius:12px;grid-template-columns:24px 1fr;gap:10px;margin-bottom:12px;padding:12px 14px;display:grid}.notice ul{margin:6px 0 0;padding-left:18px}.notice li+li{margin-top:4px}.notice>.button{grid-column:1/-1}.notice-title{font-weight:600}.notice-info{grid-template-columns:1fr}.notice-ok{border-color:var(--accent);background:var(--ok-bg)}.notice-ok .notice-icon{color:var(--ok-text)}.notice-warn{border-color:var(--warn);background:var(--warn-bg)}.notice-warn .notice-icon{color:var(--warn-text)}.notice-refused{border-color:var(--refused);background:var(--refused-bg)}.notice-refused .notice-icon{color:var(--refused-text)}.form-status:empty{display:none}.form-status .notice{margin:0}.stack{gap:12px;display:grid}.list{gap:10px;display:grid}.section{margin-top:24px}.section>h2{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 10px;font-size:13px;font-weight:700}.section>.muted{margin:-4px 0 10px;font-size:15px}.card{border:1px solid var(--border);background:var(--card);border-radius:12px;min-width:0;padding:14px 16px}.card-title{margin:0;font-size:18px}.card-link{align-items:center;gap:12px;min-height:64px;text-decoration:none;display:flex}.card-link:active{border-color:var(--muted)}.row-main{flex:1;gap:2px;min-width:0;display:grid}.row-title{overflow-wrap:anywhere;font-size:17px;font-weight:600}.row-sub{color:var(--muted);overflow-wrap:anywhere;font-size:14px}.row-link{border:1px solid var(--border);border-radius:12px;align-items:center;gap:12px;min-height:56px;margin-top:16px;padding:0 12px 0 16px;font-weight:600;text-decoration:none;display:flex}.row-link .chevron{color:var(--muted);margin-left:auto}.empty{gap:6px;padding:4px 2px;display:grid}.steps{gap:10px;margin:0;padding-left:22px;display:grid}.table-status{flex-wrap:wrap;align-items:center;gap:4px 10px;min-height:48px;font-size:15px;text-decoration:none;display:flex}.table-name{font-weight:600}.dot{border-radius:50%;flex:none;width:10px;height:10px}.dot-online{background:var(--accent)}.dot-offline{border:2px solid var(--muted)}.upload{gap:10px;margin-top:4px;display:grid}.upload .button-primary{min-height:56px;font-size:17px}.part{gap:10px;margin-top:20px;display:grid}.part-head{min-height:48px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:auto 1fr;align-items:center;column-gap:10px;padding:4px 0;display:grid}.part-count{grid-row:span 2;font-size:20px;font-weight:700}.part-name{overflow-wrap:anywhere;font-size:18px;font-weight:600}.part-sub{color:var(--muted);font-size:14px}.groove{cursor:pointer}.groove.is-selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.groove-refused.is-selected{border-color:var(--refused);box-shadow:inset 0 0 0 1px var(--refused)}.groove-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.groove-head h3{overflow-wrap:anywhere;margin:0;font-size:17px}.groove-kind{color:var(--muted);margin-top:2px;font-size:15px}.setup{gap:4px;margin-top:12px;display:grid}.setup-main{font-size:22px;font-weight:700;line-height:1.2}.edge-toggle{gap:6px;margin-top:14px;display:grid}.segmented{border:1px solid var(--border);border-radius:10px;grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.segment{min-height:48px;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:0;padding:0 8px;font-weight:600}.segment+.segment{border-left:1px solid var(--border)}.segment[aria-pressed=true]{background:var(--accent);color:var(--on-accent)}.segment:disabled{color:var(--muted);opacity:.55;cursor:not-allowed}.edge-refused{color:var(--refused-text);font-size:14px}.lines{gap:8px;margin:12px 0 0;padding:0;list-style:none;display:grid}.lines li{grid-template-columns:20px 1fr;gap:8px;font-size:15px;display:grid}.line-icon{width:20px;height:20px;margin-top:1px}.lines-warn .line-icon{color:var(--warn-text)}.lines-refused .line-icon{color:var(--refused-text)}.other{border:1px dashed var(--border);border-radius:12px;padding:12px 16px}.other-title{font-weight:600}.other ul{color:var(--muted);margin:4px 0 0;padding-left:18px}.view3d{-webkit-user-select:none;user-select:none;gap:8px;display:grid}.view3d-stage{border:1px solid var(--border);background:var(--view-bg);border-radius:12px;position:relative;overflow:hidden}.view3d-canvas{touch-action:none;width:100%;height:min(72vw,340px);display:block}.view3d-reset{background:var(--header);border:1px solid var(--border);position:absolute;top:4px;right:4px}.view3d-legend{color:var(--muted);flex-wrap:wrap;gap:4px 16px;font-size:14px;display:flex}.view3d-legend>span{align-items:center;display:inline-flex}.swatch{border-radius:3px;width:14px;height:14px;margin-right:6px;display:inline-block}.swatch-fence{background:var(--view-fence)}.swatch-groove{background:var(--view-ok)}.legend-feed .icon{color:var(--view-feed)}.job-head{align-items:center;gap:12px;margin-bottom:14px;display:flex}.bit-change{border:1px dashed var(--warn);min-height:48px;color:var(--warn-text);border-radius:12px;align-items:center;gap:10px;padding:8px 14px;font-weight:600;display:flex}.job-actions{margin-top:16px}.op-done .setup,.op-skipped .setup{color:var(--muted)}.facts{grid-template-columns:auto 1fr;gap:6px 16px;margin:12px 0 0;display:grid}.facts dt{color:var(--muted)}.facts dd{text-align:right;margin:0}.bit.has-error{border-color:var(--refused)}.bit-name{grid-template-columns:1fr 48px;align-items:end;gap:10px;display:grid}.bit-numbers{grid-template-columns:1fr 1fr;align-items:end;gap:10px;margin-top:10px;display:grid}.token-row{align-items:center;gap:12px;display:flex}.token-icon{color:var(--muted)}.copy-row{grid-template-columns:1fr auto;gap:8px;display:grid}.dialog{border:1px solid var(--border);background:var(--card);width:min(100vw - 32px,420px);color:var(--text);border-radius:16px;padding:20px}.dialog::backdrop{background:var(--backdrop)}.dialog h2{margin:0 0 8px;font-size:19px}.dialog ul{gap:6px;margin:8px 0 0;padding-left:18px;display:grid}.dialog-actions{grid-auto-columns:1fr;grid-auto-flow:column;gap:10px;margin-top:18px;display:grid}.noscript{padding:16px}.legend-feed.towards .icon{transform:rotate(-90deg)}.refused-options{gap:6px;margin:0;padding:0;list-style:none;display:grid}
