:root{--void:#0a0e14;--panel:#101b23;--surface:#1c2430;--border:#283442;--ice:#7ec8ff;--cyan:#00e5ff;--text:#e9f1ff;--muted:#a9bacb;--amber:#ffb020;--danger:#ff3b3b;font:13px 'Roboto','Segoe UI',sans-serif;color:var(--text);background:var(--void);color-scheme:dark}
*{box-sizing:border-box}body{margin:0;height:100vh;display:flex;flex-direction:column;overflow:hidden}button,input,select{font:inherit}button{color:var(--text);background:var(--surface);border:1px solid var(--border);padding:8px 12px;border-radius:4px;min-height:34px;cursor:pointer;white-space:nowrap}button:hover{border-color:var(--ice);background:#243141}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}button:active{transform:translateY(1px)}button:disabled{cursor:default;opacity:.45;transform:none}button.active{color:var(--cyan);border-color:var(--cyan);background:#142e39}.primary{border-color:var(--cyan);color:var(--cyan);background:#12313b}.quiet{background:transparent;color:var(--muted)}.danger{border-color:#633038;color:#ffb2b2;background:transparent}button[hidden],[hidden]{display:none!important}header{height:80px;display:flex;align-items:center;gap:32px;padding:16px 24px;border-bottom:1px solid var(--border);flex-shrink:0}.brand{display:flex;gap:12px;align-items:center;font-size:22px;letter-spacing:2px;font-weight:650;min-width:220px}.brand span:not(.brandmark){color:var(--ice);font-weight:350}.brandmark{display:grid;place-items:center;width:36px;height:40px;border:1px solid var(--ice);color:var(--ice);clip-path:polygon(0 0,75% 0,100% 25%,100% 100%,25% 100%,0 75%)}.brand small{font-size:9px;letter-spacing:1.5px;display:block;color:var(--muted);margin-top:4px}.document-title{flex:1;min-width:100px}.document-title input{background:none;border:0;padding:0;font-size:16px;color:var(--text);width:100%;max-width:440px}.document-title span{display:block;color:var(--muted);font-size:11px;margin-top:5px}.file-actions,.tool-group{display:flex;gap:8px}.toolbar{height:64px;padding:12px 24px;display:flex;align-items:center;border-bottom:1px solid var(--border);gap:24px;flex-shrink:0}.toolbar .tool-group+ .tool-group{border-left:1px solid var(--border);padding-left:24px}.toolbar button{background:transparent}.toolbar b{color:var(--ice);font-size:20px;line-height:14px;margin-right:8px;font-weight:400}.unit-tag{margin-left:auto;color:var(--muted);border:1px solid var(--border);border-radius:4px;padding:5px 10px}main{display:grid;grid-template-columns:240px minmax(260px,1fr) 320px;flex:1;min-height:0}.history{background:var(--panel);display:flex;flex-direction:column;overflow:auto;border-right:1px solid var(--border)}.panel-heading{display:flex;justify-content:space-between;font-size:10px;letter-spacing:1.5px;padding:24px 20px 16px;color:var(--muted)}.panel-heading span+span{letter-spacing:0;color:var(--ice)}.part-root{display:flex;gap:10px;padding:12px 20px;color:var(--text);font-weight:600}.part-root>span:first-child{color:var(--ice)}#features{padding:0 8px 24px}.feature-item{display:flex;gap:10px;width:100%;text-align:left;background:none;border:1px solid transparent;border-radius:3px;margin:4px 0;padding:12px 10px;white-space:normal}.feature-item .number{color:var(--muted);font-size:10px;padding-top:3px}.feature-item strong{font-size:12px;font-weight:500;display:block}.feature-item small{font-size:10px;display:block;color:var(--muted);padding-top:5px}.feature-item.active{border-color:var(--border);border-left:2px solid var(--cyan);background:var(--surface)}.history-bottom{margin-top:auto;padding:20px;border-top:1px solid var(--border)}.eyebrow,.section-label{font-size:10px;letter-spacing:1.5px;color:var(--muted)}#health{color:var(--ice);margin:12px 0 6px}#model-stats{font-size:11px;line-height:1.8;color:var(--muted);white-space:pre-line}.history-bottom button{width:100%;margin-top:12px}.workspace{display:flex;flex-direction:column;min-width:0;min-height:0}.view-header{height:48px;display:flex;align-items:stretch;justify-content:space-between;border-bottom:1px solid var(--border);gap:8px}.tabs{display:flex}.tabs button{border:0;border-radius:0;background:none;padding:8px 20px}.tabs button.active{border-bottom:2px solid var(--cyan);color:var(--cyan)}.view-actions{display:flex;align-items:center;gap:4px;padding-right:12px}.view-actions button{background:none;border:0;font-size:11px;padding:6px 8px;min-height:28px}#view{flex:1;position:relative;min-height:180px;overflow:hidden}#three,#sketch{position:absolute;inset:0;width:100%;height:100%;touch-action:none}#three canvas{display:block;width:100%;height:100%}#view-badge{position:absolute;left:20px;top:20px;color:var(--muted);font-size:10px;letter-spacing:1.3px;pointer-events:none}#empty{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:340px;text-align:center;background:#0a0e14dd;padding:24px;border:1px solid var(--border);border-radius:8px}h1{font-size:28px;font-weight:400}#empty p{color:var(--muted);line-height:1.7}#busy{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);padding:12px 20px;background:var(--panel);border:1px solid var(--border);border-radius:6px;color:var(--ice)}#busy span{display:inline-block;width:6px;height:6px;background:var(--cyan);border-radius:50%;margin-right:8px}.view-footer{height:36px;display:flex;justify-content:space-between;align-items:center;padding:0 16px;color:var(--muted);font-size:10px;border-top:1px solid var(--border);gap:8px}#message{padding:12px 16px;background:var(--panel);min-height:42px;font-size:11px;border-top:1px solid var(--border);overflow:auto;max-height:120px}#message.error{color:var(--amber)}.inspector{border-left:1px solid var(--border);background:var(--panel);display:flex;flex-direction:column;min-height:0}.inspector-tabs{display:flex;height:48px;flex-shrink:0}.inspector-tabs button{flex:1;border:0;border-bottom:1px solid var(--border);border-radius:0;background:none;font-size:12px}.inspector-tabs button.active{border-bottom:2px solid var(--cyan);color:var(--cyan)}.inspector-panel{padding:24px 20px;overflow:auto;flex:1;min-height:0}h2{font-size:24px;line-height:1.35;font-weight:400;letter-spacing:-.5px;margin:16px 0}p{line-height:1.65;color:var(--muted);font-size:12px}label{display:block;font-size:11px;color:var(--muted);margin:16px 0}input,select{display:block;width:100%;min-width:0;color:var(--text);background:var(--void);padding:9px 10px;border:1px solid var(--border);border-radius:4px;margin-top:6px;min-height:36px}input:disabled{opacity:.5}.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.row label{margin-bottom:0}.help{font-size:10px;line-height:1.6;color:var(--muted)}.section-label{margin:20px 0 12px}.section-label:first-child{margin-top:0}.sketch-tools{display:grid;grid-template-columns:1fr 1fr;gap:6px}.sketch-tools button{font-size:11px;padding:8px 6px}.profile-item{font-size:11px;width:100%;text-align:left;margin:3px 0;background:transparent}.profile-props{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.profile-props label{margin:8px 0}.form-actions{display:flex;gap:8px;margin:24px 0 8px}.form-actions button{flex:1}#cancel,#remove-feature{width:100%;margin-top:8px}.hint-card{background:var(--void);border:1px solid var(--border);border-left:2px solid var(--ice);padding:16px;margin:24px 0}.hint-card strong{font-size:12px;font-weight:500;color:var(--ice)}.hint-card p{margin-bottom:0;font-size:11px}ol{padding-left:20px;color:var(--muted);font-size:12px;line-height:1.8}li{padding:4px 0}.full{width:100%;margin-top:16px}code{font-size:11px;color:var(--ice);overflow-wrap:anywhere}details{margin-top:24px;font-size:11px;color:var(--muted)}details code{display:block;line-height:1.8;margin-top:12px}#revision{font-size:9px;overflow-wrap:anywhere}.parameter-row{padding:12px 0;border-bottom:1px solid var(--border)}.parameter-row .row{grid-template-columns:1fr 1fr;gap:8px}.parameter-row input{font-size:12px}.parameter-row button{font-size:10px;min-height:24px;padding:4px 6px;margin-top:8px;color:var(--muted);background:none;border:0}#add-parameter{margin-top:16px;width:100%}#profile-properties textarea{width:100%;height:100px;background:var(--void);color:var(--text);border:1px solid var(--border);padding:8px;font-size:11px}
@media(max-width:1100px){main{grid-template-columns:190px minmax(240px,1fr) 280px}header{gap:16px;padding:12px 16px}.brand{min-width:175px;font-size:18px}.toolbar{padding:12px 16px;gap:12px}.toolbar .tool-group+ .tool-group{padding-left:12px}.view-actions button{padding:4px}.file-actions{gap:4px}.file-actions button{padding:6px 8px}.view-footer{font-size:9px}.inspector-panel{padding:20px 16px}.brandmark{display:none}}
@media(max-width:850px){body{overflow:auto;min-width:700px}main{grid-template-columns:160px minmax(240px,1fr) 280px;min-height:560px}.brand{min-width:140px}.brand small{font-size:7px}.toolbar .tool-group{gap:4px}.toolbar button{font-size:11px;padding:6px 8px}.toolbar b{display:none}.tabs button{padding:8px 10px}.view-actions{gap:0;padding-right:4px}.view-actions button[data-view=front],.view-actions button[data-view=right]{display:none}header{gap:12px}.document-title{min-width:80px}.document-title input{font-size:13px}.brandmark{display:none}}

#command-popup{position:fixed;z-index:50;width:318px;max-width:calc(100vw - 16px);max-height:calc(100vh - 16px);overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:5px;box-shadow:0 8px 30px #172b4c30;padding:8px}.command-heading{display:flex;justify-content:space-between;align-items:center;padding:0 2px 8px;gap:12px}.command-heading strong{font-size:12px}.command-heading button{font-size:18px;min-height:26px;padding:0 7px;border-color:transparent;background:transparent}.command-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px}.command-grid button{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-height:50px;text-align:left;white-space:normal;gap:5px;padding:8px;font-size:11px;background:var(--panel)}.command-grid kbd{font-family:inherit;font-size:10px;color:var(--muted)}#three canvas:focus-visible{outline:1px solid var(--cyan);outline-offset:-1px}

/* Explicit user direction: familiar SolidWorks-style engineering workspace.
   This independent CAD application intentionally overrides the game's UI Bible. */
:root{--void:#f7f8fa;--panel:#f0f2f5;--surface:#fff;--border:#c6ccd4;--ice:#2b6496;--cyan:#1668af;--text:#253242;--muted:#627084;--amber:#955500;--danger:#a92a2a;font-family:'Segoe UI',Arial,sans-serif;color-scheme:light}
header{height:64px;gap:24px;padding:12px 20px;background:linear-gradient(#fafbfd,#e8ecf1)}.brand{font-size:20px;letter-spacing:.6px;min-width:270px}.brandmark{border-color:#9caebe;clip-path:none;border-radius:4px;height:32px;width:32px}.brand small{letter-spacing:.8px;font-size:9px}.toolbar{height:80px;background:#f7f8fa;padding:10px 20px;gap:20px;align-items:center}.toolbar .tool-group:first-child button{height:56px;min-width:80px;font-size:11px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;padding:6px 12px}.toolbar b{margin:0;font-size:24px}.toolbar .tool-group+ .tool-group{gap:4px;padding-left:20px}button:hover{background:#e1ecf7;border-color:#98b6d3}button:active{transform:none}button.active,.primary{background:#e1edf8;color:#145b98;border-color:#8baccc}.primary:hover{background:#d1e5f7}.danger{color:#a92a2a;border-color:#ca9d9d}main{grid-template-columns:290px minmax(300px,1fr) 280px}.history{overflow:hidden;background:#f3f4f6}.manager-tabs{display:flex;height:42px;flex-shrink:0;border-bottom:1px solid var(--border)}.manager-tabs button{flex:1;font-size:11px;border:0;border-radius:0;background:transparent;padding:6px}.manager-tabs button.active{border-bottom:2px solid var(--cyan);background:white}.history #tree-panel{display:flex;flex-direction:column;overflow:auto;flex:1}.history #panel-feature{padding:20px 16px;flex:1;overflow:auto}.panel-heading{padding:18px 16px 8px}.part-root{padding:12px 16px}.feature-item{padding:10px 8px;gap:8px}.feature-item.active{background:#dae8f5;border-color:#adc5df}.feature-item strong{font-size:12px}.feature-item small{font-size:10px}.reference-planes{padding:2px 8px 8px;border-bottom:1px solid #dae0e6;margin-bottom:8px}.reference-planes button{display:block;text-align:left;background:transparent;border:0;font-size:11px;padding:6px;min-height:30px;color:#506579}.reference-planes button:hover{background:#e1e8ef}.workspace{background:linear-gradient(#d7e0ec,#f7f9fc)}.view-header{background:#f5f7fa;height:42px}.view-actions button:hover{background:#dce8f4}.view-footer{background:#f4f6f8}#view-badge{color:#63758a}#empty{background:#f9fbfddd}#busy{box-shadow:0 3px 20px #0001;background:#f8fbff}#message{background:#f8f9fb}.inspector-tabs{height:42px}.inspector-panel{padding:20px 16px}h2{font-size:21px}input,select{min-height:34px;padding:7px 8px}.help{font-size:10px}#profile-properties textarea{background:#fff;color:#253242}.section-label{letter-spacing:1px}.hint-card{background:#fff}.history-bottom{padding:16px}.history-bottom button{margin-top:4px}.form-actions{position:sticky;bottom:0;background:var(--panel);padding:10px 0;margin-bottom:0}#save-state{color:#576b7f}
@media(max-width:1150px){main{grid-template-columns:270px minmax(240px,1fr) 240px}.brand{min-width:250px}.toolbar{gap:12px;padding-left:12px}.toolbar .tool-group:first-child button{padding:6px 8px;font-size:10px;min-width:64px}.toolbar .tool-group+ .tool-group{padding-left:12px}.toolbar button{font-size:11px}.file-actions{gap:4px}.inspector-panel{padding:16px 12px}.view-actions button{padding:4px 6px}}
@media(max-width:900px){main{grid-template-columns:260px minmax(300px,1fr);min-height:540px}.inspector{display:none}.brand{min-width:190px}.toolbar .tool-group+ .tool-group{border:0;padding:0}.toolbar button{padding:6px}.unit-tag{display:none}.file-actions button{font-size:11px}.document-title span{font-size:9px}}
@media(max-width:900px){body{min-width:0;overflow:auto;height:auto;min-height:100vh}header{height:auto;flex-wrap:wrap;padding:12px;gap:12px}.brand{min-width:150px}.document-title{min-width:180px}.file-actions{width:100%;justify-content:flex-end}.toolbar{overflow-x:auto;flex-shrink:0;min-height:76px}.toolbar .tool-group{flex-shrink:0}main{grid-template-columns:230px minmax(240px,1fr);grid-template-rows:600px 400px;min-width:470px;flex:auto}.history{min-height:0}.workspace{min-height:0}.inspector{display:flex;grid-column:1/-1;border-top:1px solid var(--border)}.inspector-panel{padding:20px}.view-actions{overflow-x:auto}.tabs{flex-shrink:0}.view-footer{height:auto;min-height:36px;flex-wrap:wrap;padding:8px;font-size:9px}.history #panel-feature{padding:16px 12px}.manager-tabs button{font-size:10px}.brandmark{display:none}.form-actions{flex-wrap:wrap}.view-header{overflow:hidden}.view-actions button{font-size:10px}.view-actions button[data-view=front],.view-actions button[data-view=right]{display:none}}
#selection-bar{display:flex;align-items:center;flex-wrap:wrap;gap:5px;min-height:38px;padding:5px 8px;background:var(--panel);border-bottom:1px solid var(--border);font-size:10px}#selection-bar button{padding:4px 7px;min-height:26px;font-size:10px}#selection-info{flex:1;min-width:100px;color:var(--muted)}#face-support-label{padding:8px;background:#e1edf8;border-left:2px solid var(--cyan)}
#relations-panel{margin-top:12px}#solver-status{padding:8px;border-left:3px solid #236bb7;background:#e5eef8;font-size:12px;font-weight:600}#solver-status.defined{border-color:#314337;background:#e7efe9}#entity-selection{font-size:11px;margin:8px 0;overflow-wrap:anywhere}#sketch-entities{display:grid;gap:3px;margin:8px 0}#sketch-entities button{text-align:left;min-height:27px;font-size:11px}.relation-row{display:flex;align-items:center;gap:5px;border-bottom:1px solid var(--border);padding:5px 0}.relation-row label{flex:1;min-width:0;font-size:10px;overflow-wrap:anywhere}.relation-row button{padding:4px;min-width:24px}.relation-row input{font-size:12px}#add-relation{width:100%}#sketch-relations{margin-bottom:8px}
#arc-options{margin:8px 0}#arc-options label{display:flex;align-items:center;gap:6px;font-size:11px}#arc-options input{width:auto;min-height:18px;margin:0}#opposite-arc{font-size:11px;min-height:28px;padding:5px 8px}

#dimension-layer{position:absolute;inset:0;pointer-events:none;overflow:hidden}button.sketch-dimension{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;touch-action:none;min-height:22px;padding:2px 5px;font-size:12px;line-height:16px;border:1px solid transparent;border-radius:2px;background:#f8fafce8;color:#354f68;white-space:nowrap;cursor:move}button.sketch-dimension:hover,button.sketch-dimension.active{background:#fff4df;border-color:#d8a969;color:#9b510b}button.sketch-dimension:focus-visible{outline:2px solid #2477bb}#modify-dimension{position:fixed;z-index:1000;width:240px;padding:12px;background:#f7f9fc;border:1px solid #95abc0;border-radius:4px;box-shadow:0 5px 20px #0003}#modify-dimension strong{font-size:12px}#modify-dimension label{margin:10px 0}#modify-dimension input{width:100%}.dimension-actions{display:flex;gap:6px}.dimension-actions button{flex:1;font-size:11px}#modify-dimension-error{font-size:11px;color:#a62d2d;margin:6px 0 0}
/* Feature commands stay reachable as the parts toolset grows. */
.toolbar{height:auto;min-height:54px;flex-wrap:wrap;gap:8px 16px}.toolbar .tool-group{flex-wrap:wrap}.check-row{display:flex;align-items:center;gap:8px}.check-row input[type=checkbox]{width:auto;margin:0}
#pattern-seeds,#mirror-seeds{min-height:86px}#pattern-second-fields{padding-left:10px;border-left:2px solid var(--border)}
button.sketch-dimension.reference:not(.active){color:#747c84}#modify-dimension input[type=checkbox]{width:auto}#modify-dimension input[readonly],.relation-row input[readonly]{color:#747c84;background:#f0f2f4}.relation-row label button{font-size:10px;margin-top:3px;padding:3px 6px}
/* Feature history uses the same compact editor palette as the PropertyManager. */
.feature-item.feature-inactive{color:#7a8490;background:transparent}.feature-item.feature-inactive .number{opacity:.45}.feature-item.feature-inactive small{color:#7a8490}
#history-actions{margin:8px;padding:10px;border:1px solid var(--border);background:var(--panel)}#history-selection{font-size:12px}.history-buttons{display:flex;flex-wrap:wrap;gap:5px}.history-buttons button{font-size:10px;padding:5px 8px}
.history-controls{padding:10px 16px;border-top:1px solid var(--border)}.history-controls label{font-size:10px}.history-controls button{margin-top:6px;font-size:11px}
.rollback-slot{min-height:5px;margin:0 8px}.rollback-slot.drop-target{background:#98b6d3}.rollback-bar{border-top:3px solid #2477bb;color:#24689e;background:#e1edf8;font-size:10px;line-height:18px;text-align:center;cursor:ns-resize;user-select:none}.rollback-bar:focus{outline:2px solid #2477bb;outline-offset:2px}
.reorder-controls{margin-top:12px;padding-top:10px;border-top:1px solid var(--border)}.reorder-controls label{font-size:10px}.feature-item{touch-action:none;user-select:none}.feature-item.reorder-target{box-shadow:inset 0 -3px #2477bb;background:#e1edf8}.feature-item.reorder-invalid{box-shadow:inset 0 -3px #ad3c3c;background:#f5e6e6}

#feature-context-menu{position:fixed;z-index:900;min-width:170px;max-height:calc(100vh - 16px);overflow:auto;padding:5px;background:var(--panel);border:1px solid var(--border);box-shadow:0 4px 16px #0003}#feature-context-menu button{display:block;width:100%;text-align:left;border:0;background:transparent;font-size:12px;padding:7px 10px}#feature-context-menu button:hover,#feature-context-menu button:focus-visible{background:#e1edf8;outline:1px solid #8baccc}.feature-item:focus-visible{outline:2px solid #2477bb;outline-offset:-2px}

#loft-sections{min-height:108px}#loft-fields .history-buttons{margin-bottom:12px}#loft-add{margin-bottom:12px}

.measure-panel{position:fixed;z-index:800;left:18px;top:260px;width:260px;max-height:calc(100vh - 278px);overflow:auto;padding:14px;background:var(--panel);border:1px solid var(--border);box-shadow:0 4px 18px #0003;font-size:12px}.measure-panel header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.measure-panel header button{padding:3px 8px}.measure-panel .help{margin:8px 0;font-size:11px}.measure-panel label{font-size:11px;margin:8px 0}.measure-panel ul{list-style:none;padding:0;margin:8px 0}.measure-panel li{display:flex;align-items:center;justify-content:space-between;padding:3px 0}.measure-panel li button{padding:2px 7px}.measure-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}.measure-panel [data-results]{margin:12px 0;display:grid;grid-template-columns:1fr;gap:3px;overflow-wrap:anywhere}.measure-panel dt{font-size:10px;color:var(--muted);margin-top:7px}.measure-panel dd{margin:0;font-variant-numeric:tabular-nums}@media(max-height:600px){.measure-panel{top:130px;max-height:calc(100vh - 148px)}}


.material-tree{display:block;width:100%;text-align:left;margin:7px 0;font-size:11px;overflow-wrap:anywhere}.mass-panel form{border-bottom:1px solid var(--border);padding-bottom:10px}.mass-panel .history-buttons{gap:5px}
.mass-panel header{height:auto;padding:0 0 8px;gap:8px;background:transparent}.mass-panel header button{min-height:26px}
.section-panel header{height:auto;padding:0 0 8px;gap:8px;background:transparent}.section-panel header button{min-height:26px}.section-panel .history-buttons{gap:5px}
.history-split{display:inline-flex;align-items:stretch;gap:0}.history-split>button:first-child{border-radius:4px 0 0 4px}.toolbar .history-split .history-arrow{min-width:22px;padding:5px;border-left:0;border-radius:0 4px 4px 0}.history-arrow[aria-expanded=true]{background:var(--accent-soft,#d6e9f7)}
#undo-history-menu{position:fixed;z-index:1100;width:320px;max-width:calc(100vw - 16px);max-height:calc(100vh - 16px);background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:4px;box-shadow:0 8px 24px #20344830;overflow:hidden;font-size:12px}
#undo-history-menu[hidden]{display:none}#undo-history-menu>strong,.undo-history-count{display:block;padding:9px 12px}.undo-history-list{max-height:min(340px,calc(100vh - 96px));overflow-y:auto;border-block:1px solid var(--border);padding:3px}.undo-history-list button{display:block;width:100%;text-align:left;border:1px solid transparent;background:transparent;box-shadow:none;border-radius:2px;font-size:12px;padding:7px 9px;overflow-wrap:anywhere}.undo-history-list button.included{background:#d6e9f7;color:#153c59}.undo-history-list button:focus-visible{outline:2px solid #3977a2;outline-offset:-2px}.undo-history-count{color:var(--muted)}

#sketch-mirror-options{border-block:1px solid var(--border);padding:12px 0;margin:10px 0}#sketch-mirror-options>strong{display:block;margin-bottom:8px}#mirror-entity-list{min-height:32px;max-height:96px;overflow-y:auto;overflow-wrap:anywhere;border:1px solid var(--border);padding:7px;margin:5px 0}#sketch-mirror-options .sketch-tools{flex-wrap:wrap}#sketch-mirror-status{overflow-wrap:anywhere}

/* Keep the desktop command strip inside its viewport column. Keyboard focus
   scrolls the same strip as the visible scrollbar; no commands disappear. */
.view-header{height:auto;min-height:42px;flex-shrink:0;overflow-x:auto;overflow-y:hidden;justify-content:flex-start}
.view-header .tabs,.view-header .view-actions{flex-shrink:0}
.view-header .view-actions{overflow:visible}
.view-actions button[data-view=front],.view-actions button[data-view=right]{display:block}
.history,.inspector{min-width:0}
.view-footer{height:auto;min-height:36px;flex-shrink:0;flex-wrap:wrap;padding-block:6px}
.view-footer span{overflow-wrap:anywhere}
#message{flex-shrink:0;overflow-wrap:anywhere}
.measure-panel{max-width:calc(100vw - 36px)}
.measure-panel header{height:auto;padding:0 0 8px;gap:8px;background:transparent;flex-wrap:nowrap}
.measure-panel header strong{min-width:0;overflow-wrap:anywhere}
.measure-panel header button{flex-shrink:0}
/* Short desktop windows keep the modeling area and its footer reachable.
   Tool growth scrolls within a bounded ribbon instead of consuming the view. */
@media(min-width:901px) and (max-height:650px){
  body{overflow:auto;height:auto;min-height:100vh}
  .toolbar{max-height:140px;overflow-y:auto}
  main{flex:none;height:max(360px,calc(100vh - 204px));min-height:360px}
}

.feature-rename-label{flex:1;min-width:0}.feature-rename-row{cursor:text}.feature-rename-input{margin:0;min-height:26px;padding:3px 5px;font-size:12px;user-select:text}.feature-rename-label small{white-space:normal;overflow-wrap:anywhere}.feature-rename-label [role=status]:empty{display:none}.feature-rename-label [role=status]{color:var(--amber)}
.plane-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.plane-label{position:absolute;pointer-events:auto;white-space:nowrap;padding:3px 6px;min-height:22px;font-size:11px;color:#44647f;background:#eff5fad9;border:1px solid #718ba3;border-radius:2px}.plane-label[aria-pressed=true]{color:#1764a9;border-color:#2581df;background:#e1f0ff}.plane-label.hover{border-color:#e79925}.plane-label:focus-visible{outline:2px solid #2581df;outline-offset:2px}.plane-visibility{position:absolute;right:8px;top:8px;z-index:12;width:240px;max-width:calc(100% - 16px);max-height:calc(100% - 16px);overflow:auto;padding:12px;background:var(--panel,#f8fafc);border:1px solid #aebcca;box-shadow:0 4px 16px #273b5329}.plane-visibility label{display:flex;flex-direction:row;align-items:center;gap:8px;margin:8px 0;font-size:12px;overflow-wrap:anywhere}.plane-visibility input{width:auto;min-height:0;margin:0;flex-shrink:0}.plane-visibility-list{border-top:1px solid #cbd5df;margin-top:8px;padding-top:4px}.plane-visibility p{font-size:11px;color:#596b7d;line-height:1.5}.plane-labels[hidden],.plane-label[hidden],.plane-visibility[hidden]{display:none}
#sketch-plane-choice h2{font-size:20px;margin:12px 0}#sketch-plane-choice p{font-size:12px;line-height:1.6;color:var(--muted)}.sketch-plane-options{display:grid;gap:8px;margin:18px 0}.sketch-plane-options button{text-align:left;white-space:normal}#cancel-sketch-plane{width:100%;margin-top:8px}

.draft-confirmation{width:480px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);overflow:auto;padding:24px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);box-shadow:0 12px 48px #25324240}.draft-confirmation::backdrop{background:#25324266}.draft-confirmation h2{margin:0 0 12px;font-size:20px}.draft-confirmation p{line-height:1.6;color:var(--muted);overflow-wrap:anywhere}.draft-confirmation-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:22px}.draft-confirmation-actions button{white-space:normal}.draft-confirmation .danger{color:var(--danger);border-color:var(--danger)}

.keyboard-customization{width:800px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow:auto;padding:20px;border:1px solid var(--border);border-radius:5px;background:var(--panel);color:var(--text);box-shadow:0 12px 48px #25324240}.keyboard-customization::backdrop{background:#25324266}.keyboard-customization h2{font-size:20px;margin:0 0 12px}.keyboard-customization .help{font-size:12px}.keyboard-tab{border-bottom:1px solid var(--border)}.keyboard-tab button{border-bottom:2px solid var(--cyan);border-radius:0}.keyboard-filters{display:grid;grid-template-columns:1fr 1fr 2fr;gap:12px}.keyboard-table{max-height:240px;overflow:auto;background:var(--surface);border:1px solid var(--border)}.keyboard-table table{width:100%;border-collapse:collapse;font-size:12px}.keyboard-table th{position:sticky;top:0;background:var(--panel);text-align:left;padding:9px;z-index:1}.keyboard-table td{padding:3px 8px;border-top:1px solid var(--border);overflow-wrap:anywhere}.keyboard-table td button{text-align:left;white-space:normal;background:transparent;border-color:transparent;width:100%}.keyboard-table button[aria-pressed=true],.keyboard-keys button[aria-pressed=true]{border-color:var(--cyan);background:#e3effa;color:var(--cyan)}.keyboard-customization fieldset{border:1px solid var(--border);padding:12px;margin-top:10px}.keyboard-customization legend{font-weight:600;padding:0 6px}.keyboard-keys{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.keyboard-assignment{display:flex;gap:12px;align-items:end}.keyboard-assignment label{flex:1;margin:12px 0 0}.keyboard-assignment input{margin:0}.keyboard-footer{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.keyboard-footer span{flex:1}.keyboard-customization #keyboard-status{font-size:12px;line-height:1.5;min-height:18px;margin:12px 0 0}.keyboard-customization .error{color:var(--danger)}.keyboard-customization #keyboard-conflict{padding:12px;background:var(--surface);margin-top:12px;border-left:3px solid var(--amber)}.keyboard-customization #keyboard-conflict p{font-size:12px;line-height:1.5;margin-top:0}.command-customize{margin-top:12px;width:100%;text-align:left}@media(max-width:560px){.keyboard-filters{grid-template-columns:1fr 1fr}.keyboard-filters label:last-child{grid-column:1/-1}.keyboard-customization{padding:12px}.keyboard-footer span{display:none}}

.feature-dimensions{position:absolute;top:42px;right:16px;max-width:min(320px,calc(100% - 32px));max-height:calc(100% - 64px);overflow:auto;padding:10px;background:var(--panel);border:1px solid var(--border);border-radius:4px;z-index:5;font-size:12px;box-shadow:0 3px 12px #25324222}.feature-dimensions>strong{display:inline-block;margin-right:12px}.feature-dimensions>div{display:grid;gap:5px;margin-top:8px}.feature-dimensions>div button{text-align:left;white-space:normal;color:var(--cyan)}.feature-dimension-modify{width:400px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow:auto;padding:20px;border:1px solid var(--border);border-radius:5px;background:var(--panel);color:var(--text)}.feature-dimension-modify::backdrop{background:#25324255}.feature-dimension-modify h2{font-size:19px;margin:0 0 14px}.feature-dimension-modify #feature-dimension-error{color:var(--danger);font-size:12px;line-height:1.5;min-height:18px}.feature-dimension-modify .form-actions{display:flex;gap:8px;flex-wrap:wrap}

.feature-dimension-annotations{position:absolute;inset:0;pointer-events:none;z-index:4;overflow:hidden}.feature-dimension-annotations svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;stroke:var(--cyan);stroke-width:1;fill:var(--cyan)}.model-dimension{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;padding:2px 5px;min-height:22px;border:1px solid transparent;border-radius:3px;background:var(--panel);color:var(--cyan);font-size:12px;font-weight:500;touch-action:none;white-space:nowrap;cursor:move}.model-dimension:hover,.model-dimension:focus-visible{border-color:var(--cyan);background:var(--surface)}

/* Compact parts workspace: keep complete command names and existing actions,
   while reserving the majority of desktop height for the model. */
body>header{height:48px;padding:6px 12px;gap:16px}
body>header .brand{min-width:232px;font-size:17px;gap:8px}
body>header .brand small{font-size:8px;margin-top:2px}
body>header .document-title input{font-size:14px;min-height:22px}
body>header .document-title span{font-size:10px;margin-top:1px}
body>header button{min-height:28px;padding:4px 9px;font-size:12px}
.toolbar{padding:6px 12px;gap:6px 10px;max-height:none;overflow:visible}
.toolbar .tool-group:first-child{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:4px;flex:0 0 100%;min-width:0}
.toolbar .tool-group:first-child button{min-width:0;min-height:32px;height:auto;padding:3px 6px;flex-direction:row;justify-content:flex-start;gap:6px;font-size:11px;line-height:13px;white-space:normal;text-align:left}
.toolbar .tool-group:first-child b{display:block;flex:0 0 20px;font-size:19px;line-height:22px;text-align:center}
.toolbar .tool-group+.tool-group{padding-left:0;border-left:0;gap:4px}
.toolbar button{min-height:28px;padding:4px 8px;font-size:11px}
.toolbar .unit-tag{padding:3px 8px;font-size:11px}
.manager-tabs,.inspector-tabs{height:34px}
.view-header{min-height:34px;gap:4px;overflow:visible;flex-wrap:wrap}
.view-header .tabs button{padding:5px 10px;font-size:11px}
.view-header .view-actions{flex:1;min-width:0;flex-shrink:1;flex-wrap:wrap;justify-content:flex-end;gap:0;padding-right:4px}
.view-actions button{padding:3px 5px;font-size:11px;min-height:28px}
.view-footer{min-height:26px;padding:4px 10px}
#message{padding:6px 10px;font-size:11px;min-height:28px}
.panel-heading{padding:10px 12px 5px}
.part-root{padding:6px 12px}
.material-tree{margin:3px 0;min-height:26px;padding:4px 8px}
#features{padding:0 6px 10px}
.reference-planes{padding-bottom:4px;margin-bottom:4px}
.reference-planes button{min-height:24px;padding:3px 6px}
.feature-item{padding:5px 6px;margin:2px 0;min-height:32px;gap:6px}
.feature-item small{padding-top:2px}
.history-bottom{padding:10px 12px}
.inspector-panel{padding:14px 12px}
.inspector-panel h2{font-size:18px;margin:10px 0}
.inspector-panel .hint-card{padding:10px;margin:14px 0}
.feature-dimensions{top:8px;right:8px;padding:6px;max-height:calc(100% - 16px)}
.feature-dimensions>strong{font-size:11px;margin-right:6px}
.feature-dimensions>button{min-height:26px;padding:3px 6px;font-size:11px}
@media(min-width:901px){
  main{grid-template-columns:248px minmax(280px,1fr) 260px}
  body{height:100dvh;min-height:0;overflow:hidden}
}
@media(min-width:901px) and (max-width:1100px){
  main{grid-template-columns:220px minmax(280px,1fr) 230px}
  body>header .brand{min-width:204px}
  .toolbar .tool-group:first-child{grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}
}
@media(min-width:901px) and (max-height:650px){
  main{flex:1;height:auto;min-height:0}
  .toolbar{max-height:126px;overflow-y:auto}
  #view{min-height:120px}
}
@media(max-width:900px){
  body>header{height:auto;gap:6px 12px}
  body>header .brand{min-width:150px}
  .toolbar{max-height:160px;overflow-y:auto}
  .toolbar .tool-group:first-child{flex-shrink:1}
  .view-header .tabs{width:100%;height:30px}
}

/* The hosted edition starts with an actionable design request beside the model. */
@media(min-width:901px){.with-ai-design main{grid-template-columns:220px minmax(280px,1fr) 340px}}
@media(min-width:901px) and (max-width:1100px){.with-ai-design main{grid-template-columns:190px minmax(260px,1fr) 304px}}
#panel-design{overflow-y:auto;min-height:0;padding:18px 16px}
.ai-heading{display:flex;justify-content:space-between;align-items:center;gap:8px}
.ai-heading .eyebrow{font-size:9px;letter-spacing:1.2px}.ai-beta{font-size:9px;color:var(--muted);border:1px solid var(--border);padding:2px 5px;border-radius:3px}
#panel-design h2{font-size:21px;letter-spacing:-.5px;margin:13px 0 8px}
#panel-design .ai-intro{font-size:12px;line-height:1.55;margin:0 0 14px}
.ai-examples{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 18px}.ai-examples button{font-size:11px;min-height:27px;padding:4px 7px;background:transparent}
#ai-form label{font-size:11px;font-weight:600;margin-bottom:6px}
#ai-prompt{width:100%;resize:vertical;min-height:120px;max-height:330px;padding:11px;border:1px solid var(--border);border-radius:5px;font:12px/1.55 'Segoe UI',sans-serif;color:var(--text);background:var(--panel)}
#ai-prompt:focus-visible{outline:2px solid var(--cyan);outline-offset:1px}
.ai-actions{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}.ai-actions button{font-size:12px;padding:8px 12px;min-height:34px}.ai-actions .primary{flex:1}
#panel-design .ai-privacy{font-size:10px;line-height:1.5;color:var(--muted);margin:10px 0 18px}
.ai-status:not(:empty){padding:10px 11px;background:#e8eff6;border:1px solid #b5cadd;border-radius:4px;line-height:1.5;font-size:12px;font-weight:600;margin:12px 0}
.ai-status.error,.ai-status.stale{background:#fff3ed;border-color:#dcbcaf;color:#873c23}.ai-status.accepted{background:#eef7f0;border-color:#a7cbb0;color:#285e37}
.ai-status.planning,.ai-status.repairing,.ai-status.validating{border-left:3px solid var(--cyan)}
#ai-result{font-size:12px;line-height:1.6;overflow-wrap:anywhere}#ai-explanation{white-space:pre-line;color:var(--text)}#ai-assumptions{padding-left:18px;color:var(--muted)}#ai-assumptions:empty{display:none}
#ai-geometry{white-space:pre-line;padding:10px;background:var(--surface);border:1px solid var(--border);font-variant-numeric:tabular-nums;border-radius:4px}
#ai-changes{margin:12px 0}#ai-changes summary{cursor:pointer;font-size:11px}#ai-changes ul{padding-left:17px;font-size:11px;max-height:230px;overflow:auto}
#panel-design .ai-limit{font-size:10px;line-height:1.7;color:var(--muted);border-top:1px solid var(--border);padding-top:14px;margin-top:20px}

.web-notice{flex-shrink:0;padding:5px 12px;background:#e1edf8;border-bottom:1px solid #aebfce;font-size:11px;color:#25445e}
