:root{--bg:#0c0e12;--canvas:#0b0e12;--panel:#14181e;--panel-quiet:#11151a;--field:#0d1116;--card:#171c23;--card-hover:#1a2130;--rule:#232a33;--rule-soft:#1d232c;--rule-field:#262e38;--rule-raised:#2c343f;--rule-hover:#3d4757;--ink:#e7ebf2;--ink-quiet:#cdd5e0;--ink-dim:#aab3c0;--muted:#8b95a5;--muted-2:#7d8798;--muted-3:#68727f;--muted-4:#5c6673;--accent:#1d5fd6;--accent-bright:#2f70e6;--accent-wash:#16305c;--accent-ink:#9dc0ff;--ok:#35c37d;--warn:#f0a12e;--danger:#ff8b80;--mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--sans:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;--toolbar-height:44px;--steps-height:182px;--status-height:26px;--buncss-light: ;--buncss-dark:initial;color-scheme:dark}*{box-sizing:border-box;min-width:0}fieldset{min-width:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);font:13px/1.45 var(--sans);margin:0}a{color:#5b9cff;text-decoration:none}a:hover{color:#86b8ff}h1,h2,h3{margin:0;font-weight:600}h1{letter-spacing:-.01em;font-size:1.4rem}h2,h3{letter-spacing:.14em;color:var(--muted-2);text-transform:uppercase;font-size:10px;font-weight:600}.muted{color:var(--muted-3)}.grow{flex:1;min-width:0}.spacer{flex:1}.mono{font-family:var(--mono)}button,input,select,textarea{font:inherit;color:inherit}button{border:1px solid var(--rule-raised);color:var(--ink-quiet);cursor:pointer;white-space:nowrap;background:#1a1f27;border-radius:5px;height:26px;padding:0 10px}button:hover:not(:disabled){border-color:var(--rule-hover);color:#fff}button:disabled{opacity:.4;cursor:default}button.primary{background:var(--accent);border-color:var(--accent-bright);color:#fff;font-weight:500}button.primary:hover:not(:disabled){border-color:var(--accent-bright);background:#2a6ce6}button.ghost{color:var(--ink-dim);background:0 0;border-color:#0000}button.ghost:hover:not(:disabled){color:var(--ink);background:#1d232c}button.danger{color:var(--danger)}button.danger:hover:not(:disabled){color:var(--danger);border-color:#ff6b5e}button.link{color:#5b9cff;text-align:left;background:0 0;border:0;height:auto;padding:0}button.on{background:var(--accent);border-color:var(--accent-bright);color:#fff}button.icon{display:grid;color:var(--ink-dim);background:0 0;border-color:#0000;place-items: center;width:28px;padding:0}button.icon:hover:not(:disabled){color:var(--ink);background:#1d232c}input,select,textarea{background:var(--field);border:1px solid var(--rule-field);color:var(--ink);outline:none;border-radius:4px;width:100%;height:26px;padding:0 8px;font-size:12px}input:focus,select:focus,textarea:focus{border-color:var(--accent-bright)}input[type=color]{width:2.4rem;padding:2px}input[type=checkbox]{accent-color:var(--accent);width:auto;height:auto}textarea{resize:none;color:#c6cdd8;height:auto;padding:5px 8px;font-family:inherit;font-size:11.5px;line-height:1.4}label{display:block;color:var(--muted-2);margin-bottom:8px;font-size:10.5px}label input,label select,label textarea{margin-top:4px}label.checkbox{display:flex;color:var(--ink-dim);align-items: flex-start;gap:7px;margin:0;font-size:11px;line-height:1.35}.row{display:flex;flex-wrap:wrap;align-items: center;gap:5px}.segmented{display:flex;border:1px solid var(--rule-field);background:#0f1319;border-radius:6px;flex:none;gap:2px;padding:2px}.segmented button{color:var(--muted);background:0 0;border:0;border-radius:4px;height:22px;padding:0 12px;font-size:11.5px;font-weight:500}.segmented button.on{background:var(--accent);color:#fff}.segmented button:hover:not(:disabled):not(.on){color:var(--ink)}.badge{font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;border:1px solid var(--rule-raised);color:var(--muted);white-space:nowrap;border-radius:999px;flex:none;padding:1px 6px;font-size:9.5px}.badge.open,.badge.unset{color:var(--ok);border-color:#35c37d55}.badge.closed,.badge.set{color:var(--danger);border-color:#ff8b8055}.badge.mixed{color:var(--warn);border-color:#f0a12e55}.status{color:var(--muted);font-size:11.5px}.status.error{color:var(--danger)}.status.banner{background:#2a1417;margin:0;padding:.5rem 1rem}.dot{display:inline-flex;white-space:nowrap;align-items: center;gap:6px}.dot:before{content:"";background:var(--ok);border-radius:50%;flex:none;width:6px;height:6px}.dot.warn:before{background:var(--warn)}.dot.bad:before{background:var(--danger)}.swatch{border:1px solid #0005;border-radius:3px;flex:none;width:12px;height:12px}.loading,.auth,.dashboard{padding:clamp(1rem,4vw,3rem)}.auth{max-width:24rem;margin:0 auto}.auth form{margin:1.5rem 0 1rem}.auth .lede{color:var(--muted-2);margin:.25rem 0 0}.auth button.primary{width:100%;height:32px}.auth-note{color:var(--muted-3);margin:.75rem 0;font-size:12px;line-height:1.5}.admin{display:grid;gap:1.5rem;max-width:62rem;margin:0 auto;padding:clamp(1rem,4vw,3rem)}.admin-bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items: flex-end;gap:1rem}.admin-bar h1{margin:0}.admin-bar p{max-width:46ch;margin:.25rem 0 0}.card{background:var(--panel);border:1px solid var(--line);display:grid;border-radius:8px;gap:1rem;padding:1rem 1.25rem 1.25rem}.card h2{margin:0}.card h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted-3);margin:.5rem 0 0;font-size:12px}.row.wrap{flex-wrap:wrap;align-items: flex-end}.right{text-align:right}.small{font-size:11px}table.listing{border-collapse:collapse;width:100%;font-size:13px}table.listing th{text-align:left;text-transform:uppercase;letter-spacing:.08em;color:var(--muted-3);padding:0 .5rem .5rem 0;font-size:11px;font-weight:500}table.listing td{border-top:1px solid var(--line);vertical-align:middle;padding:.4rem .5rem .4rem 0}table.listing td.mono.small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted-3);max-width:22rem}.revision-form{display:grid;gap:.75rem}.revision-form .code-field{flex:none;width:6rem}.revision-list{list-style:none;display:grid;gap:.9rem;margin:.5rem 0 0;padding:0}.revision-list>li{border-top:1px solid var(--line);padding-top:.75rem}.revision-list p{margin:.25rem 0 0}.rev-code{min-width:2rem;font-size:14px;font-weight:600}.issue-to{display:grid;gap:.4rem;margin-top:.5rem}.issue-to input[type=search]{width:100%}.chip{display:inline-flex;background:var(--card);border:1px solid var(--line);border-radius:999px;align-items: center;gap:.35rem;padding:.1rem .3rem .1rem .6rem;font-size:12px}.chip button{color:var(--muted-3);cursor:pointer;background:0 0;border:0;padding:0 .2rem}.chip button:hover{color:var(--danger,#e2555a)}ul.directory{list-style:none;border:1px solid var(--line);overflow:hidden;border-radius:6px;margin:0;padding:0}ul.directory button{text-align:left;background:var(--panel-quiet);border:0;border-radius:0;width:100%}ul.directory button:hover{background:var(--card)}.issued{margin-top:2rem}.issued h2{margin:0}.issued p{max-width:60ch;margin:.25rem 0 1rem}.dashboard>header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items: flex-end;gap:1rem;margin-bottom:1.5rem}.dashboard header input[type=search]{width:min(18rem,60vw)}.drawings-scroll{overflow-x:auto}table.drawings{border-collapse:collapse;background:var(--panel-quiet);border:1px solid var(--rule);border-radius:6px;width:100%;min-width:44rem}table.drawings th,table.drawings td{text-align:left;border-bottom:1px solid var(--rule-soft);vertical-align:middle;padding:.5rem .75rem}table.drawings th{text-transform:uppercase;letter-spacing:.12em;color:var(--muted-2);font-size:10px}table.drawings tr:last-child td{border-bottom:0}.editor{display:grid;grid-template-rows:var(--toolbar-height)minmax(0,1fr)var(--steps-height)var(--status-height);overflow:hidden;min-width:1320px;height:100%}.toolbar{display:flex;background:var(--panel);border-bottom:1px solid var(--rule);align-items: center;gap:10px;padding:0 10px 0 12px}.doc-identity{display:flex;border-right:1px solid var(--rule);flex:none;align-items: center;gap:8px;height:100%;padding-right:10px}.doc-mark{background:var(--accent);display:grid;font-family:var(--mono);color:#fff;border-radius:4px;flex:none;place-items: center;width:22px;height:22px;font-size:10px;font-weight:600}.doc-identity>div{display:flex;white-space:nowrap;flex-direction:column;line-height:1.2}.doc-title{letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;max-width:28ch;font-size:12.5px;font-weight:600}.doc-meta{font-family:var(--mono);color:var(--muted-2);letter-spacing:.04em;font-size:9.5px}.mode-hint{font-family:var(--mono);color:var(--muted-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:10.5px}.toolbar .divider{background:var(--rule);flex:none;width:1px;height:20px}.workspace{display:grid;grid-template-columns:46px 250px minmax(0,1fr)296px;min-height:0}.workspace.no-library{grid-template-columns:46px minmax(0,1fr)296px}.tool-rail{background:var(--panel);border-right:1px solid var(--rule);display:flex;flex-direction:column;align-items: center;gap:3px;padding:8px 0}.tool-rail button{display:grid;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:6px;place-items: center;width:32px;height:32px;padding:0}.tool-rail button:hover:not(:disabled){color:var(--ink);background:#1d232c;border-color:#0000}.tool-rail button.on{border-color:var(--accent-bright);background:var(--accent-wash);color:var(--accent-ink)}.tool-rail .rail-divider{background:var(--rule-field);width:22px;height:1px;margin:5px 0}.panel{background:var(--panel-quiet);border-right:1px solid var(--rule);overflow:auto;display:flex;flex-direction:column}.inspector{border-right:0;border-left:1px solid var(--rule)}.panel section{border-bottom:1px solid var(--rule-soft);padding:12px}.panel section:last-child{border-bottom:0}.subsection{margin-top:12px}.panel-head{position:sticky;z-index:2;background:var(--panel-quiet);border-bottom:1px solid var(--rule-soft);display:flex;flex-direction:column;gap:8px;padding:10px 10px 8px;top:0}.panel-head .row{justify-content:space-between}.panel-head input{border-radius:5px;height:28px;padding:0 9px}.panel-head button{color:var(--ink-dim);height:22px;padding:0 8px;font-size:11px}.library-body{padding:10px}.library-body section{border:0;margin-bottom:14px;padding:0}.library-body h3{letter-spacing:.12em;color:var(--muted-3);margin-bottom:7px;font-size:10px}.palette-items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.palette-blocks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.palette-items button,.palette-block>button{display:flex;background:var(--card);border:1px solid var(--rule-field);cursor:grab;text-align:center;white-space:normal;border-radius:6px;flex-direction:column;align-items: center;gap:5px;height:auto;padding:8px 4px}.palette-block>button{text-align:left;align-items: flex-start;width:100%;padding:7px}.palette-items button:hover,.palette-block>button:hover{border-color:var(--accent-bright);background:var(--card-hover);color:var(--ink-quiet)}.palette-items span,.palette-blocks span{color:var(--muted);font-size:9.5px;line-height:1.2}.palette-blocks span{color:#9aa4b2;font-size:10.5px}.palette-items button.armed,.palette-block>button.armed{border-color:var(--accent-bright);background:var(--accent-wash)}.palette-items svg [stroke=\#000000],.palette-blocks svg [stroke=\#000000],.selected-part .preview svg [stroke=\#000000]{stroke:#c3ccd8}.palette-items svg [fill=\#000000],.palette-blocks svg [fill=\#000000],.selected-part .preview svg [fill=\#000000]{fill:#c3ccd8}.palette-items svg [fill=\#ffffff],.palette-blocks svg [fill=\#ffffff],.selected-part .preview svg [fill=\#ffffff]{fill:none}.palette-items svg text,.palette-blocks svg text,.selected-part .preview svg text{fill:#c3ccd8}.palette-block{position:relative;display:flex}.block-actions{position:absolute;display:flex;gap:3px;top:4px;right:4px}.block-actions button{background:#1f252e;height:19px;padding:0 6px;font-size:10px}.canvas{position:relative;overflow:hidden;background-color:var(--canvas);background-image:linear-gradient(#ffffff08 1px,#0000 1px),linear-gradient(90deg,#ffffff08 1px,#0000 1px);background-size:28px 28px;min-width:0;min-height:0}.canvas svg.sheet{touch-action:none;filter:drop-shadow(0 18px 60px #0009);width:100%;height:100%}.sheet.mode-operate [data-component-id]{cursor:pointer}.sheet.tool-pan{cursor:grab}.sheet.tool-pan:active{cursor:grabbing}.canvas-hud{position:absolute;display:flex;font-family:var(--mono);color:#9aa4b2;overflow:hidden;white-space:nowrap;background:#12161cf2;border:1px solid #2a323d;border-radius:7px;align-items: center;max-width:calc(100% - 24px);font-size:10.5px;bottom:12px;left:12px}.canvas-hud button{border:0;border-right:1px solid var(--rule);color:var(--ink-quiet);font-family:var(--mono);background:0 0;border-radius:0;height:26px;padding:0 9px;font-size:10.5px}.canvas-hud button:hover:not(:disabled){background:#1d232c}.canvas-hud>span{border-right:1px solid var(--rule);padding:0 10px}.canvas-hud>span:last-child{border-right:0}.canvas-hud .ok{color:var(--ok)}.canvas-hud .bad{color:var(--danger)}.canvas-note{position:absolute;font-family:var(--mono);color:var(--muted-2);white-space:nowrap;background:#12161cf2;border:1px solid #2a323d;border-radius:7px;padding:5px 10px;font-size:10.5px;bottom:12px;right:12px}.canvas-note.error{color:var(--danger);border-color:#ff8b8055}.inspector-tabs{position:sticky;z-index:2;display:flex;background:var(--panel-quiet);border-bottom:1px solid var(--rule-soft);gap:16px;padding:0 12px;top:0}.inspector-tabs button{letter-spacing:.14em;text-transform:uppercase;color:var(--muted-3);background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;height:auto;padding:11px 0 9px;font-size:10px;font-weight:600}.inspector-tabs button.on{color:var(--ink);border-bottom-color:var(--accent)}.selected-part{display:flex;align-items: center;gap:10px;margin-bottom:12px}.selected-part .preview{border:1px solid var(--rule-field);background:var(--field);display:grid;border-radius:5px;flex:none;place-items: center;width:56px;height:44px}.selected-part .tag{font-family:var(--mono);font-size:15px;font-weight:600}.selected-part .part{color:var(--muted-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px}.fields{display:grid;grid-template-columns:74px minmax(0,1fr);align-items: center;gap:7px 10px}.fields>span{color:var(--muted-2);font-size:10.5px}.fields label{margin:0}.readout{display:grid;grid-template-columns:1fr 1fr;font-family:var(--mono);gap:6px}.readout>div{display:flex;background:var(--field);border:1px solid var(--rule-field);border-radius:4px;align-items: center;gap:6px;height:26px;padding:0 8px;font-size:12px}.readout .axis{color:var(--muted-4)}ul.sources,ul.groups,ul.media,ul.shares,ul.versions{list-style:none;display:flex;flex-direction:column;gap:6px;margin:0;padding:0}ul.sources li,ul.groups li,ul.media li,ul.shares li,ul.versions li{display:flex;background:var(--card);border:1px solid var(--rule-field);border-radius:5px;flex-wrap:wrap;align-items: center;gap:8px;padding:7px 8px}ul.sources li>button,ul.groups li>button,ul.media li>button,ul.shares li>button,ul.versions li>button{color:var(--ink-dim);background:#1f252e;flex:none;height:20px;padding:0 7px;font-size:10.5px}ul.groups li>input,ul.media li>input:not([type=color]){background:0 0;border-color:#0000;flex:7rem;width:auto;height:22px}ul.sources small,ul.shares small,ul.versions small{display:block;font-family:var(--mono);color:var(--muted-3);font-size:9.5px}.priority{font-family:var(--mono);text-align:center;flex:none;width:3.2rem;height:22px;font-size:10.5px}.section-head{display:flex;justify-content:space-between;align-items: center;gap:8px;margin-bottom:9px}.section-head .count{font-family:var(--mono);color:var(--muted-4);font-size:10px}.steps{background:var(--panel);border-top:1px solid var(--rule);display:grid;grid-template-columns:minmax(0,1fr)300px;min-height:0}.step-main{display:flex;flex-direction:column;gap:8px;min-width:0;padding:9px 12px}.step-list{display:flex;overflow-x:auto;gap:8px;padding-bottom:4px}.step-chip{display:flex;background:var(--card);border:1px solid var(--rule-field);border-radius:6px;flex-direction:column;flex:none;min-width:178px}.step-chip.current{border-color:var(--accent-bright);box-shadow:inset 0 2px 0 var(--accent-bright);background:#16202f}.step-chip>button{display:flex;color:var(--ink);text-align:left;background:0 0;border:0;border-radius:6px;flex-direction:column;align-items: flex-start;gap:4px;height:auto;padding:7px 10px}.step-chip .step-name{display:flex;align-items: center;gap:7px}.step-chip .step-number{font-family:var(--mono);display:grid;color:var(--ink-quiet);background:#232b36;border-radius:4px;flex:none;place-items: center;width:17px;height:17px;font-size:10px}.step-chip .step-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:18ch;font-size:12px;font-weight:500}.step-chip .step-sub{font-family:var(--mono);color:var(--muted-3);text-transform:uppercase;letter-spacing:.04em;font-size:9.5px}.step-chip-actions{display:flex;border-top:1px solid var(--rule-soft)}.step-chip-actions button{color:var(--muted-3);background:0 0;border:0;border-radius:0;flex:1;height:20px;padding:0;font-size:11px}.step-chip-actions button:hover:not(:disabled){color:var(--ink);background:#1d232c}.step-detail{display:flex;align-items: flex-start;gap:10px}.step-detail label{display:flex;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-3);flex-direction:column;gap:4px;margin:0;font-size:10px}.step-detail label input,.step-detail label textarea{margin:0}.step-detail .step-title-field{flex:0 0 210px}.step-detail .step-description{flex:1;min-width:0}.step-detail .step-carry{flex:0 0 150px;padding-top:16px}.changes{border-left:1px solid var(--rule);overflow:auto;padding:9px 12px}.changes ul{list-style:none;display:grid;grid-template-columns:1fr 1fr;font-family:var(--mono);gap:4px 8px;margin:0;padding:0;font-size:10.5px}.changes li{display:flex;background:var(--card);border:1px solid var(--rule);border-radius:4px;align-items: center;gap:6px;padding:3px 6px}.changes li button{color:var(--ink-quiet);font-family:var(--mono);text-align:left;background:0 0;border:0;flex:1;height:auto;padding:0;font-size:10.5px}.changes .from{color:var(--muted-3)}.changes .arrow{color:#4b5563}.changes .to.open,.changes .to.unset{color:var(--ok)}.changes .to.closed,.changes .to.set{color:var(--danger)}.status-bar{display:flex;border-top:1px solid var(--rule-soft);font-family:var(--mono);color:#5f6a78;letter-spacing:.03em;white-space:nowrap;overflow:hidden;background:#0f1319;align-items: center;gap:14px;padding:0 12px;font-size:10px}.status-bar .lead{color:var(--muted)}.status-bar .ok{color:var(--ok)}.status-bar .bad{color:var(--danger)}.block-editor{position:fixed;z-index:30;display:grid;grid-template-rows:var(--toolbar-height)minmax(0,1fr)auto;background:var(--bg);border:1px solid var(--rule-raised);overflow:hidden;border-radius:8px;inset:2.5rem;box-shadow:0 24px 80px #000000b3}.block-editor .workspace{grid-template-columns:250px minmax(0,1fr)296px}.block-editor .block-name{width:12rem}.block-editor .block-description{width:min(22rem,30vw)}.block-editor-hint{background:var(--panel);border-top:1px solid var(--rule-soft);font-family:var(--mono);color:var(--muted-3);margin:0;padding:6px 12px;font-size:10px}.drawer{position:fixed;background:var(--panel-quiet);border-left:1px solid var(--rule);overflow:auto;z-index:20;width:min(32rem,100%);padding:1rem;inset:0 0 0 auto;box-shadow:-12px 0 40px #00000080}.drawer-head{display:flex;justify-content:space-between;align-items: center;margin-bottom:1rem}.drawer section{border-bottom:1px solid var(--rule-soft);margin-bottom:1rem;padding-bottom:1rem}.drawer section:last-child{border-bottom:0}.drawer .fields{grid-template-columns:repeat(auto-fit,minmax(min(11rem,100%),1fr))}.drawer .fields label{margin:0}table.revisions{border-collapse:collapse;width:100%;font-size:11.5px}table.revisions th{text-align:left;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-3);padding-bottom:4px;font-size:10px;font-weight:500}table.revisions td{padding:1px 2px 1px 0}table.revisions input{height:24px;padding:0 6px}
