:root{--brand-deep-sea: #1a2935;--brand-glacier: #5d8493;--brand-putty: #efdfca;--brand-gold: #dab565;--brand-moon: #f5e7d4;--bg-app: #efdfca;--bg-panel: #f8eedc;--bg-sunken: #d8c4a8;--bg-elevated: #fbf3e3;--border: #c4ad84;--border-strong: #8e7a55;--text-primary: #1a2935;--text-secondary: #3e5b6e;--text-muted: #837c66;--accent: #1a2935;--accent-hover: #11202c;--accent-bg: #d6e2e8;--accent-ring: rgba(26, 41, 53, .22);--accent-on: #efdfca;--gold: #dab565;--gold-soft: #ecd49a;--gold-deep: #b6913d;--gold-bg: rgba(218, 181, 101, .18);--danger: #b45309;--danger-hover: #92400e;--danger-bg: #fef3c7;--danger-border: #fcd34d;--success: #2e7d52;--success-bg: rgba(46, 125, 82, .14);--warning: var(--gold-deep);--warning-bg: var(--gold-bg);--error: #b8462e;--error-bg: rgba(184, 70, 46, .1);--info: var(--accent);--info-bg: var(--accent-bg);--tool-measure: #06b6d4;--tool-flag: var(--error);--tool-freeform: var(--brand-glacier);--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-pill: 9999px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--text-xs: 11px;--text-sm: 12px;--text-base: 13px;--text-md: 14px;--text-lg: 16px;--text-xl: 18px;--text-2xl: 22px;--shadow-sm: 0 1px 2px rgba(26, 25, 20, .06);--shadow-md: 0 4px 12px rgba(26, 25, 20, .08);--shadow-dialog: 0 20px 40px rgba(26, 25, 20, .25);--overlay: rgba(30, 26, 20, .35)}html[data-theme=dark]{--bg-app: #0c1820;--bg-panel: #16283a;--bg-sunken: #0a1620;--bg-elevated: #1d3447;--border: #294a60;--border-strong: #4d7088;--text-primary: #efdfca;--text-secondary: #b8a98e;--text-muted: #7d8898;--accent: #5d8493;--accent-hover: #769bab;--accent-bg: rgba(93, 132, 147, .22);--accent-ring: rgba(93, 132, 147, .38);--accent-on: #0c1820;--gold: #e7c376;--gold-soft: #f1d89e;--gold-deep: #b6913d;--gold-bg: rgba(231, 195, 118, .18);--danger: var(--gold-deep);--danger-hover: #c89a4d;--danger-bg: rgba(231, 195, 118, .18);--danger-border: rgba(231, 195, 118, .45);--success: #5ea389;--success-bg: rgba(94, 163, 137, .2);--warning: var(--gold);--warning-bg: var(--gold-bg);--error: #d28b6e;--error-bg: rgba(210, 139, 110, .18);--info: var(--accent);--info-bg: var(--accent-bg);--tool-measure: var(--accent);--tool-flag: var(--gold);--tool-freeform: var(--gold-soft);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .35);--shadow-md: 0 4px 14px rgba(0, 0, 0, .45);--shadow-dialog: 0 20px 40px rgba(0, 0, 0, .6);--overlay: rgba(0, 0, 0, .55)}*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden}body{font-family:Segoe UI,system-ui,-apple-system,Helvetica Neue,sans-serif;background:var(--bg-app);color:var(--text-primary);transition:background .2s,color .2s}#layout{display:flex;width:100vw;height:100vh}#sidebar{width:280px;flex:0 0 280px;background:var(--bg-panel);border-right:1px solid var(--border);padding:14px 16px;overflow-y:auto;display:flex;flex-direction:column}#main-column{flex:1;display:flex;flex-direction:column;min-width:0}#app{flex:1;position:relative;background-color:var(--bg-app);background-image:radial-gradient(circle at 20% 30%,rgba(120,110,90,.035),transparent 60%),radial-gradient(circle at 80% 70%,rgba(120,110,90,.028),transparent 55%);cursor:grab;min-height:0;overflow:hidden}#app:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 55%,rgba(20,15,10,.1) 100%);z-index:1}[data-theme=dark] #app{background-image:radial-gradient(circle at 20% 30%,rgba(255,245,220,.02),transparent 60%),radial-gradient(circle at 80% 70%,rgba(255,245,220,.015),transparent 55%)}[data-theme=dark] #app:after{background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.35) 100%)}#app:active{cursor:grabbing}#tab-bar{height:36px;flex:0 0 36px;background:var(--bg-sunken);border-top:1px solid var(--border);display:flex;align-items:stretch;padding:0 4px;overflow-x:auto;overflow-y:hidden}.tabs-wrap{display:flex;align-items:stretch;gap:2px;padding:4px 0}.tab{display:flex;align-items:center;gap:4px;padding:0 8px 0 12px;background:var(--bg-panel);border:1px solid var(--border);border-bottom:none;border-radius:5px 5px 0 0;font-size:12px;color:var(--text-secondary);cursor:pointer;max-width:180px;-webkit-user-select:none;user-select:none;transition:background .12s,color .12s}.tab:hover{background:var(--bg-elevated)}.tab-active{background:var(--bg-panel);color:var(--text-primary);font-weight:600;border-color:var(--border-strong);box-shadow:0 -2px 0 var(--accent) inset}.tab-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}.tab-name-input{border:1px solid var(--accent);border-radius:3px;padding:2px 4px;font-size:12px;font-family:inherit;width:140px;background:var(--bg-panel);color:var(--text-primary)}.tab-name-input:focus{outline:none;box-shadow:0 0 0 2px var(--accent-ring)}.tab-close{background:transparent;border:none;color:var(--text-muted);font-size:16px;line-height:1;padding:0 4px;cursor:pointer;border-radius:3px}.tab-close:hover{background:var(--danger-bg);color:var(--danger)}.tab-actions{display:flex;align-items:center;gap:2px;padding:4px 0 4px 4px;margin-left:4px;border-left:1px solid var(--border)}.tab-action{background:transparent;border:1px solid transparent;border-radius:4px;padding:2px 8px;font-size:14px;color:var(--text-secondary);cursor:pointer;font-family:inherit}.tab-action:hover{background:var(--accent-bg);border-color:var(--accent);color:var(--accent)}.sidebar-header{position:relative;display:flex;flex-direction:column;gap:6px;margin:-14px -16px 12px;padding:14px 16px 12px;border-bottom:1px solid var(--border);background:linear-gradient(90deg,var(--gold-bg) 0%,transparent 35%),url(/eclipse/eclipse-accent-graphic-glacier.png) right center / auto 140% no-repeat,var(--bg-panel);background-blend-mode:multiply,multiply,normal}.sidebar-header:after{content:"";position:absolute;left:16px;right:16px;bottom:-1px;height:2px;background:linear-gradient(90deg,var(--gold) 0%,transparent 60%);pointer-events:none}.sidebar-header-row{display:flex;align-items:center;gap:4px}.sidebar-toolbar{gap:3px;padding:3px;background:var(--bg-sunken);border-radius:6px}.sidebar-toolbar .toolbar-spacer{flex:1}.sidebar-eclipse-mark{height:22px;width:22px;object-fit:contain;flex:0 0 auto;margin-right:4px}.app-name{flex:1;font-size:14px;font-weight:700;letter-spacing:.04em;background:linear-gradient(135deg,var(--accent) 0%,var(--text-primary) 80%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-toolbar .icon-btn{background:transparent;border:1px solid transparent;border-radius:5px;width:26px;height:26px;padding:0;display:inline-flex;align-items:center;justify-content:center;color:var(--text-secondary);cursor:pointer;transition:background .12s,border-color .12s,color .12s}.sidebar-toolbar .icon-btn:hover{background:var(--bg-panel);border-color:var(--border);color:var(--text-primary)}.sidebar-search{position:relative;margin-bottom:12px}.sidebar-search input{width:100%;padding:7px 28px 7px 30px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-sunken);font-size:var(--text-sm);font-family:inherit;color:var(--text-primary);transition:border-color .12s,box-shadow .12s}.sidebar-search input::placeholder{color:var(--text-muted)}.sidebar-search input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-ring)}.sidebar-search input.sidebar-search-empty{border-color:var(--warning);box-shadow:0 0 0 2px var(--warning-bg)}.sidebar-search-icon{position:absolute;left:9px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.sidebar-search-clear{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:20px;height:20px;padding:0;background:transparent;border:none;border-radius:var(--radius-sm);font-size:16px;line-height:1;color:var(--text-muted);cursor:pointer}.sidebar-search-clear:hover{background:var(--bg-panel);color:var(--text-primary)}.sidebar-search-clear[hidden]{display:none}.theme-toggle{background:transparent;border:1px solid var(--border);border-radius:6px;padding:4px 8px;font-size:11px;font-family:inherit;color:var(--text-secondary);cursor:pointer;transition:background .12s,border-color .12s,color .12s}.theme-toggle:hover{background:var(--bg-sunken);border-color:var(--border-strong);color:var(--text-primary)}.sidebar-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:10px}.fixture-buttons{display:flex;flex-direction:column;gap:6px}.fixture-btn{display:flex;align-items:center;gap:8px;padding:7px 10px;background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;cursor:pointer;font-size:13px;color:var(--text-primary);text-align:left;transition:background .12s,border-color .12s;font-family:inherit;min-width:0}.fixture-btn:hover:not(:disabled){background:var(--accent-bg);border-color:var(--accent)}.fixture-btn:disabled{opacity:.4;cursor:not-allowed}.fixture-btn .swatch{width:16px;height:16px;border-radius:3px;border:1.5px solid;flex:0 0 auto}.fixture-btn .label{flex:1;min-width:0;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fixture-btn .dims{font-size:11px;color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0}.workspace-actions{display:flex;gap:4px;margin-bottom:6px}.ws-btn{flex:1;padding:6px 8px;background:var(--bg-sunken);border:1px solid var(--border);border-radius:4px;font-size:11px;font-family:inherit;color:var(--text-secondary);cursor:pointer;transition:background .12s,border-color .12s}.ws-btn:hover{background:var(--bg-panel);border-color:var(--border-strong);color:var(--text-primary)}.ws-btn.ws-danger{color:var(--danger)}.ws-btn.ws-danger:hover{background:var(--danger-bg);border-color:var(--danger-border)}.sidebar-hint{margin-top:14px;font-size:11px;color:var(--text-muted);line-height:1.55;letter-spacing:.01em}.sidebar-hint b{font-weight:600;color:var(--text-secondary)}.products-hint{margin:0 0 8px;padding:6px 8px;background:var(--bg-sunken);border-radius:4px;font-size:11px;color:var(--text-muted);line-height:1.4}.sidebar-section{margin-top:12px;display:grid;grid-template-rows:auto 0fr;transition:grid-template-rows .22s cubic-bezier(.2,.7,.2,1)}.sidebar-section[open]{grid-template-rows:auto 1fr}.sidebar-section>.section-body{overflow:hidden;min-height:0;display:block}.sidebar-section+.sidebar-section:not([hidden]){position:relative}.sidebar-section+.sidebar-section:not([hidden]):before{content:"";position:absolute;top:-6px;left:14%;right:14%;height:1px;background:var(--border);opacity:.55;pointer-events:none}.sidebar-section>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:4px;-webkit-user-select:none;user-select:none;margin-bottom:0;padding:4px 0}.sidebar-section>summary:before{content:"▸";display:inline-block;font-size:10px;color:var(--text-muted);transition:transform .15s}.sidebar-section[open]>summary:before{transform:rotate(90deg)}.sidebar-section>summary::-webkit-details-marker{display:none}.sidebar-section>summary:hover{color:var(--text-secondary)}.section-body{padding:8px 0 4px}.add-custom-btn{margin-top:8px;width:100%;padding:8px 10px;background:transparent;color:var(--accent);border:1px dashed var(--accent);border-radius:6px;cursor:pointer;font-size:12px;font-family:inherit;transition:background .12s}.add-custom-btn:hover:not(:disabled){background:var(--accent-bg)}.add-custom-btn:disabled{opacity:.4;cursor:not-allowed}.fixture-btn-custom{position:relative}.fixture-btn-custom .btn-delete{position:absolute;top:2px;right:4px;font-size:14px;color:var(--text-muted);padding:0 4px;line-height:1;border-radius:3px;opacity:0;transition:opacity .12s,color .12s,background .12s}.fixture-btn-custom:hover .btn-delete{opacity:1}.fixture-btn-custom .btn-delete:hover{color:var(--danger);background:var(--danger-bg)}.form-row{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.form-row>label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.form-row>input[type=text]{padding:8px 10px;border:1px solid var(--border);border-radius:4px;font-size:14px;font-family:inherit;background:var(--bg-panel);color:var(--text-primary);width:100%}.form-row>input[type=text]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.form-dims{display:flex;align-items:center;gap:6px}.form-dims input{width:70px;padding:6px 8px;border:1px solid var(--border);border-radius:4px;font-size:13px;font-family:inherit;font-variant-numeric:tabular-nums;text-align:right;background:var(--bg-panel);color:var(--text-primary)}.form-dims input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.form-shape{display:flex;gap:18px}.form-shape label{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:400;text-transform:none;letter-spacing:0;color:var(--text-primary);cursor:pointer}.form-row>input[type=color]{width:56px;height:32px;padding:2px;border:1px solid var(--border);border-radius:4px;background:var(--bg-panel);cursor:pointer}.wall-buttons{display:flex;flex-direction:column;gap:4px;margin-bottom:6px}.wall-btn{padding:8px 10px;background:var(--bg-panel);border:1px dashed var(--border-strong);border-radius:6px;cursor:pointer;font-size:13px;font-family:inherit;text-align:left;color:var(--text-primary);transition:background .12s,border-color .12s,border-style .12s}.wall-btn:hover:not(:disabled){background:var(--accent-bg);border-color:var(--accent);border-style:solid;color:var(--accent-hover)}.wall-btn:disabled{opacity:.4;cursor:not-allowed}.hud{position:fixed;background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;padding:6px 10px;font-size:12px;color:var(--text-secondary);font-variant-numeric:tabular-nums;box-shadow:var(--shadow-md);z-index:10}.hud[hidden]{display:none}#selection-hud{transition:opacity .18s cubic-bezier(.2,.7,.2,1),transform .18s cubic-bezier(.2,.7,.2,1)}#selection-hud[hidden]{display:flex;opacity:0;transform:translate(-50%,-10px);visibility:hidden;pointer-events:none;transition:opacity .18s cubic-bezier(.2,.7,.2,1),transform .18s cubic-bezier(.2,.7,.2,1),visibility 0s linear .18s}.hud-bottom-right{bottom:12px;right:12px}.sidebar-footer{margin:auto -16px -14px;padding:14px 16px;display:flex;align-items:center;gap:12px;text-decoration:none;border-top:1px solid var(--border);background:linear-gradient(90deg,var(--gold-bg) 0%,transparent 65%),url(/eclipse/eclipse-accent-graphic-glacier.png) right center / auto 80% no-repeat,var(--bg-sunken);background-blend-mode:multiply,multiply,normal;transition:background .2s}.sidebar-footer:hover{background:linear-gradient(90deg,var(--gold-bg) 0%,transparent 60%),url(/eclipse/eclipse-accent-graphic-glacier.png) right center / auto 90% no-repeat,var(--bg-elevated);background-blend-mode:multiply,multiply,normal}.sidebar-footer-logo{height:32px;width:auto;object-fit:contain;filter:drop-shadow(0 1px 2px rgba(26,41,53,.18));flex:0 0 auto}.sidebar-footer-text{display:flex;flex-direction:column;gap:1px;min-width:0}.sidebar-footer-eyebrow{font-size:9px;letter-spacing:.18em;color:var(--text-muted);text-transform:uppercase}.sidebar-footer-brand{font-size:12px;font-weight:700;color:var(--text-primary);letter-spacing:.01em}.hud-top-left{top:56px;left:260px;padding:0;border:none;background:transparent;box-shadow:none}.hud-undo{top:12px;left:296px;padding:4px;display:flex;gap:4px}.hud-undo .undo-btn{width:32px;height:32px;padding:0;background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;font-size:16px;color:var(--text-primary);cursor:pointer;font-family:inherit;line-height:1;transition:background .12s,border-color .12s,color .12s}.hud-undo .undo-btn:hover:not(:disabled){background:var(--accent-bg);border-color:var(--accent);color:var(--accent-hover)}.hud-undo .undo-btn:disabled{opacity:.32;color:var(--text-muted);background:transparent;border-color:transparent;cursor:not-allowed}.hud-undo #back-hud{display:inline-flex;align-items:center;margin-left:4px}.hud-undo #back-hud[hidden]{display:none}.hud-undo .back-btn{height:32px;padding:0 12px;background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;font-size:13px;color:var(--text-primary);cursor:pointer;font-family:inherit;line-height:1;transition:background .12s,border-color .12s,color .12s}.hud-undo .back-btn:hover{background:var(--accent-bg);border-color:var(--accent);color:var(--accent-hover)}.hud-top-left button{padding:6px 12px;background:var(--accent);color:var(--accent-on);border:none;border-radius:6px;font-size:13px;cursor:pointer;font-family:inherit;box-shadow:var(--shadow-sm)}.hud-top-left button:hover{background:var(--accent-hover)}.hud-top-center{top:12px;left:50%;transform:translate(-50%);display:flex;gap:10px;align-items:center}.hud-bottom-center{bottom:52px;left:50%;transform:translate(-50%);font-size:12px;color:var(--text-secondary)}.contents-panel{position:fixed;top:160px;left:320px;width:380px;height:360px;max-height:calc(100vh - 200px);background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-md);z-index:10;display:flex;flex-direction:column}.contents-panel[hidden]{display:none}.contents-header{padding:8px 12px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:8px}.contents-actions{display:flex;gap:2px}.contents-action-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:transparent;border:1px solid transparent;border-radius:4px;cursor:pointer;color:var(--text-muted)}.contents-action-btn:hover:not(:disabled){background:var(--accent-bg);border-color:var(--border);color:var(--text-primary)}.contents-action-btn:disabled{opacity:.35;cursor:not-allowed}.contents-action-btn:active,.contents-action-btn.is-flash{background:var(--accent);color:var(--accent-on);border-color:var(--accent)}.contents-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.contents-table-head{display:flex;gap:4px;padding:6px 10px 4px;border-bottom:1px solid var(--border);background:var(--bg-sunken);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.contents-table-head .col,.contents-row .col{display:flex;align-items:center}.col-desc{flex:1 1 auto;min-width:0}.col-sku{flex:0 0 100px}.col-qty{flex:0 0 46px;text-align:center;justify-content:center}.col-placed{flex:0 0 56px;justify-content:center}.col-act{flex:0 0 24px}.placed-pill{display:inline-flex;align-items:center;justify-content:center;min-width:42px;padding:1px 6px;border-radius:8px;font-size:11px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;border:1px solid var(--border);background:var(--bg-sunken);color:var(--text-muted)}.placed-pill.placed-zero{color:var(--text-muted)}.placed-pill.placed-partial{color:#b45309;background:#fef3c7;border-color:#fde68a}[data-theme=dark] .placed-pill.placed-partial{color:#fbbf24;background:#fbbf241f;border-color:#fbbf2447}.placed-pill.placed-full{color:#166534;background:#dcfce7;border-color:#bbf7d0}[data-theme=dark] .placed-pill.placed-full{color:#4ade80;background:#4ade8024;border-color:#4ade804d}.contents-rows{flex:1;overflow-y:auto;padding:4px 0}.contents-row{display:flex;gap:4px;padding:2px 10px;border-bottom:1px solid transparent}.contents-row:hover{background:var(--bg-sunken)}.contents-row input{width:100%;padding:4px 6px;border:1px solid transparent;border-radius:3px;font-size:12px;font-family:inherit;font-variant-numeric:tabular-nums;background:transparent;color:var(--text-primary)}.contents-row input:hover{border-color:var(--border)}.contents-row input:focus{outline:none;border-color:var(--accent);background:var(--bg-panel);box-shadow:0 0 0 2px var(--accent-ring)}.contents-row input[type=number]{text-align:right;padding-right:4px}.contents-row .col-act button{background:transparent;border:none;color:var(--text-muted);font-size:14px;line-height:1;padding:0 4px;border-radius:3px;cursor:pointer}.contents-row .col-act button:hover{background:var(--danger-bg);color:var(--danger)}.add-row-btn{margin:6px 10px 10px;padding:6px 10px;background:transparent;border:1px dashed var(--accent);border-radius:6px;color:var(--accent);cursor:pointer;font-family:inherit;font-size:12px;transition:background .12s}.add-row-btn:hover{background:var(--accent-bg)}.flag-reason-panel{position:fixed;top:72px;right:12px;width:280px;background:var(--bg-elevated);border:1px solid var(--tool-flag);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);z-index:10;display:flex;flex-direction:column}.wall-edit-panel{position:fixed;top:72px;right:12px;width:240px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);z-index:10;padding:10px;display:flex;flex-direction:column;gap:10px}.wall-edit-panel[hidden]{display:none}.wall-edit-title{font-size:12px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.wall-edit-buttons{display:flex;gap:6px}.wall-edit-btn{flex:1;padding:6px 8px;font-size:12px;border:1px solid var(--border);border-radius:6px;background:var(--bg-sunken);color:var(--text-primary);cursor:pointer;font-family:inherit}.wall-edit-btn:hover{border-color:var(--accent);color:var(--accent)}.wall-edit-btn.is-active{background:var(--accent-bg);border-color:var(--accent);color:var(--accent)}.wall-edit-toggles{display:flex;flex-direction:column;gap:4px}.wall-edit-toggle{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-primary);cursor:pointer}.bin-view-toggle{top:56px;left:50%;transform:translate(-50%);background:var(--bg-elevated);border:1px solid var(--border);border-radius:999px;padding:3px;display:inline-flex;gap:2px}.bin-view-toggle[hidden]{display:none}.bin-view-btn{padding:5px 14px;border:none;background:transparent;color:var(--text-secondary);border-radius:999px;cursor:pointer;font-size:12px;font-family:inherit;font-weight:500}.bin-view-btn:hover{color:var(--text-primary)}.bin-view-btn.is-active{background:var(--accent);color:var(--accent-on)}.flag-reason-panel[hidden]{display:none}.flag-reason-header{padding:6px 10px;border-bottom:1px solid var(--border);background:var(--error-bg);border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.flag-reason-title{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--tool-flag)}.flag-reason-input{border:none;outline:none;resize:vertical;min-height:72px;padding:8px 10px;font-family:inherit;font-size:var(--text-base);color:var(--text-primary);background:var(--bg-elevated);border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}#flag-btn.active{background:var(--tool-flag);color:#fff;border-color:var(--tool-flag)}#free-btn.active{background:var(--tool-freeform);color:#fff;border-color:var(--tool-freeform)}.flag-badge-tooltip{position:fixed;background:#1f2937;color:#fff;padding:6px 10px;border-radius:4px;font-size:12px;max-width:260px;box-shadow:0 4px 12px #0003;pointer-events:none;z-index:1000;white-space:pre-wrap}.flag-badge-tooltip[hidden]{display:none}.notes-panel{position:fixed;top:72px;right:12px;width:320px;height:360px;min-width:220px;min-height:180px;max-height:calc(100vh - 24px);max-width:calc(100vw - 24px);background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-md);z-index:10;display:flex;flex-direction:column}.resize-handle{position:absolute;width:14px;height:14px;z-index:2;background:transparent}.resize-handle-tl{top:-3px;left:-3px;cursor:nwse-resize}.resize-handle-tr{top:-3px;right:-3px;cursor:nesw-resize}.resize-handle-bl{bottom:-3px;left:-3px;cursor:nesw-resize}.resize-handle-br{bottom:-3px;right:-3px;cursor:nwse-resize}.resize-handle-br:after{content:"";position:absolute;right:4px;bottom:4px;width:8px;height:8px;border-right:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);opacity:.5;border-bottom-right-radius:2px}.notes-panel[hidden]{display:none}.notes-header{padding:8px 12px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.notes-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.notes-toolbar{display:flex;gap:4px;padding:6px 8px;border-bottom:1px solid var(--border);align-items:center}.notes-toolbar button{padding:4px 8px;background:transparent;border:1px solid transparent;border-radius:4px;cursor:pointer;font-size:12px;color:var(--text-primary);font-family:inherit;min-width:28px}.notes-toolbar button:hover{background:var(--bg-sunken);border-color:var(--border)}.notes-toolbar button.active{background:var(--accent);color:var(--accent-on);border-color:var(--accent)}.notes-toolbar-sep{width:1px;height:16px;background:var(--border);margin:0 4px}.notes-content{padding:10px 12px;flex:1 1 0;overflow-y:auto;font-size:13px;line-height:1.45;color:var(--text-primary);min-height:0;outline:none}.notes-content:focus{box-shadow:inset 0 0 0 2px var(--accent-ring)}.notes-content:empty:before{content:attr(data-placeholder);color:var(--text-muted);font-style:italic;pointer-events:none}.notes-content ul,.notes-content ol{padding-left:22px;margin:4px 0}.notes-content p{margin-bottom:4px}.notes-content b,.notes-content strong{font-weight:700}#selection-hud[data-mode=single] .multi-only,#selection-hud[data-mode=single] #multi-count,#selection-hud[data-mode=single] #group-btn,#selection-hud[data-mode=multi] .single-only,#selection-hud[data-mode=multi] #edit-label,#selection-hud[data-mode=multi] .dim-inputs,#selection-hud[data-mode=multi] .rot-inputs,#selection-hud[data-mode=multi] #lock-btn,#selection-hud[data-mode=accessory] #multi-count,#selection-hud[data-mode=accessory] .rot-inputs,#selection-hud[data-mode=accessory] #group-btn,#selection-hud[data-mode=accessory-multi] #edit-label,#selection-hud[data-mode=accessory-multi] .dim-inputs,#selection-hud[data-mode=accessory-multi] .rot-inputs,#selection-hud[data-mode=accessory-multi] #group-btn,#selection-hud[data-mode=accessory-multi] #lock-btn,#selection-hud[data-mode=product] #multi-count,#selection-hud[data-mode=product] #group-btn,#selection-hud[data-mode=product] #edit-depth,#selection-hud[data-mode=product] .dim-sep-wd,#selection-hud[data-mode=single] #snap-btn,#selection-hud[data-mode=multi] #snap-btn,#selection-hud[data-mode=accessory-multi] #snap-btn{display:none}.sidebar-subsection{margin-bottom:6px}.sidebar-subsection>summary{cursor:pointer;list-style:none;padding:4px 0;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);-webkit-user-select:none;user-select:none}.sidebar-subsection>summary:before{content:"▸";display:inline-block;margin-right:4px;font-size:9px;color:var(--text-muted);transition:transform .12s}.sidebar-subsection[open]>summary:before{transform:rotate(90deg)}.sidebar-subsection>summary::-webkit-details-marker{display:none}.sidebar-subsection .fixture-buttons{padding-left:4px}.dim-inputs input:disabled,.rot-inputs input:disabled,.selection-label-input:disabled{opacity:.45;cursor:not-allowed;background:var(--bg-sunken)}.multi-count,#multi-count{font-size:13px;font-weight:600;color:var(--text-primary);padding:0 4px}.selection-label-input{padding:4px 8px;border:1px solid var(--border);border-radius:4px;font-size:13px;font-family:inherit;width:160px;font-weight:500;color:var(--text-primary);background:var(--bg-panel)}.selection-label-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.dim-inputs,.rot-inputs,.levels-inputs{display:flex;align-items:center;gap:4px}.levels-inputs[hidden]{display:none}#selection-hud[data-view=elevation] #edit-rotation,#selection-hud[data-view=elevation] .rot-inputs>.dim-unit,#selection-hud[data-view=elevation] #rotate-90-btn{display:none}.levels-inputs input{width:44px;padding:4px 6px;border:1px solid var(--border);border-radius:4px;font-size:12px;font-family:inherit;font-variant-numeric:tabular-nums;text-align:right;color:var(--text-primary);background:var(--bg-panel)}.levels-inputs input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.dim-inputs input,.rot-inputs input{width:52px;padding:4px 6px;border:1px solid var(--border);border-radius:4px;font-size:12px;font-family:inherit;font-variant-numeric:tabular-nums;text-align:right;color:var(--text-primary);background:var(--bg-panel)}.dim-inputs input:focus,.rot-inputs input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.dim-sep{color:var(--text-muted);font-size:12px}.dim-unit{color:var(--text-muted);font-size:11px;margin-left:2px}.btn-light{padding:4px 10px;background:var(--bg-sunken);color:var(--text-primary);border:1px solid var(--border);border-radius:4px;font-size:12px;font-family:inherit;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.btn-light:hover{background:var(--bg-panel);border-color:var(--border-strong)}.btn-light.active{background:var(--accent);border-color:var(--accent);color:var(--accent-on);font-weight:600}.hud-top-center .danger{padding:4px 10px;background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger-border);border-radius:4px;font-size:12px;font-family:inherit;cursor:pointer}.hud-top-center .danger:hover{background:var(--danger-bg);border-color:var(--danger);color:var(--danger-hover)}.align-hud{top:60px;left:50%;transform:translate(-50%);padding:4px 6px;display:flex;align-items:center;gap:2px}.align-hud[hidden]{display:none}.align-hud .align-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding:0 8px 0 4px}.align-hud .align-btn{width:28px;height:28px;padding:0;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;border-radius:4px;color:var(--text-secondary);cursor:pointer;transition:background .1s,border-color .1s,color .1s}.align-hud .align-btn:hover{background:var(--accent-bg);border-color:var(--border);color:var(--accent)}.align-hud .align-btn:active{background:var(--accent);color:var(--accent-on);border-color:var(--accent)}.align-hud .align-sep{width:1px;height:18px;background:var(--border);margin:0 4px}.align-hud.hide-distribute .distribute-btn,.align-hud.hide-distribute .align-sep-distribute{display:none}.dialog{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);display:flex;align-items:center;justify-content:center;z-index:100}.dialog[hidden]{display:none}.dialog-box{background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;padding:20px;box-shadow:var(--shadow-dialog);min-width:300px;color:var(--text-primary)}.dialog-title{font-weight:600;margin-bottom:12px;color:var(--text-primary);display:flex;align-items:center;gap:8px}.dialog-title:before{content:"";width:16px;height:16px;background:url(/eclipse/eclipse-web-icon.png) center / contain no-repeat;flex:0 0 auto;opacity:.85}.dialog-row{display:flex;align-items:center;gap:6px}.dialog-box input{padding:8px 10px;border:1px solid var(--border);border-radius:4px;font-size:14px;width:120px;font-family:inherit;background:var(--bg-panel);color:var(--text-primary)}.dialog-box input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.dialog-unit{color:var(--text-secondary);font-size:13px}.dialog-buttons{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.dialog-buttons button{padding:6px 14px;border-radius:6px;font-family:inherit;cursor:pointer;font-size:13px;border:none}.dialog-buttons .cancel{background:var(--bg-sunken);border:1px solid var(--border);color:var(--text-secondary)}.dialog-buttons .cancel:hover{background:var(--bg-panel);color:var(--text-primary)}.dialog-buttons .ok{background:var(--accent);color:var(--accent-on)}.dialog-buttons .ok:hover{background:var(--accent-hover)}.start-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;overflow:hidden;transition:opacity .2s ease-out}.start-screen[hidden]{display:none}.start-screen.is-fading-out{opacity:0}.start-screen.is-settled .ss-accent,.start-screen.is-settled .ss-hero-sun,.start-screen.is-settled .ss-hero-logo,.start-screen.is-settled .ss-hero-eyebrow,.start-screen.is-settled .ss-hero-title-floor,.start-screen.is-settled .ss-hero-title-forge,.start-screen.is-settled .ss-card,.start-screen.is-settled .ss-bottom-bar{animation:none!important;opacity:1;transform:none;filter:none;text-shadow:none}.start-screen.is-settled .ss-accent{opacity:.14}.start-screen.is-settled .ss-spark-burst{display:none}.start-screen:not(.is-running) *,.start-screen:not(.is-running){animation-play-state:paused!important}.start-screen-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(1200px 700px at 22% 12%,var(--gold-bg) 0%,transparent 55%),radial-gradient(1000px 700px at 82% 92%,var(--accent-ring) 0%,transparent 55%),url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='600' height='400' viewBox='0 0 600 400'><g fill='none' stroke='%231a2935' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round' opacity='0.10'><path d='M0 320 Q 75 280 150 300 T 300 290 Q 380 270 460 295 T 600 280'/><path d='M0 280 Q 80 240 160 260 T 320 250 Q 400 230 480 255 T 600 240'/><path d='M0 240 Q 90 200 180 220 T 360 210 Q 440 190 520 215 T 600 200'/><path d='M0 200 Q 100 160 200 180 T 400 170 Q 480 150 560 175 T 600 165'/><path d='M0 160 Q 120 120 240 140 T 480 130 Q 540 115 600 130'/><path d='M0 120 Q 140 85 280 105 T 520 100 Q 560 90 600 100'/><path d='M0 80 Q 160 50 320 70 T 600 65'/></g></svg>"),var(--bg-app);background-size:auto,auto,600px 400px,auto;background-repeat:no-repeat,no-repeat,repeat,no-repeat;animation:ss-topo-drift 120s linear infinite}@keyframes ss-topo-drift{0%{background-position:0 0,0 0,0 0,0 0}to{background-position:0 0,0 0,600px -400px,0 0}}.ss-accent{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;z-index:0;pointer-events:none;opacity:0;filter:saturate(1.05);mix-blend-mode:multiply;animation:ss-accent-in 3.6s cubic-bezier(.16,1,.3,1) .4s forwards}@keyframes ss-accent-in{0%{opacity:0;transform:scale(1.04)}to{opacity:.14;transform:scale(1)}}.start-screen-particles{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;opacity:.55}.start-screen-stage{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:grid;grid-template-columns:1.4fr 1fr;gap:48px;padding:48px 56px 128px;align-items:center}@media(max-width:980px){.start-screen-stage{grid-template-columns:1fr;grid-template-rows:auto 1fr;gap:24px;padding:24px 24px 96px;align-items:start}}.start-screen-hero{display:flex;flex-direction:column;justify-content:center;gap:24px;min-width:0;padding:24px 0}.ss-hero-art{position:relative;width:min(440px,80%);aspect-ratio:1 / 1;margin:0 auto}@media(max-width:980px){.ss-hero-art{width:min(280px,60%)}}.ss-hero-sun{position:absolute;left:50%;bottom:18%;width:36%;aspect-ratio:1 / 1;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--brand-moon) 0%,var(--gold) 55%,var(--gold-deep) 100%);box-shadow:0 0 60px 20px #dab56573,0 0 120px 60px #dab5652e;transform:translate(-50%,100%) scale(.8);opacity:0;animation:ss-sun-rise 4.5s cubic-bezier(.16,1,.3,1) .8s forwards}@keyframes ss-sun-rise{0%{transform:translate(-50%,150%) scale(.65);opacity:0}40%{opacity:.85}to{transform:translate(-50%,-8%) scale(1);opacity:.92}}.ss-hero-logo{position:relative;z-index:2;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 24px 48px rgba(26,41,53,.32));transform:translateY(50px) scale(.92);opacity:0;animation:ss-logo-rise 3s cubic-bezier(.16,1,.3,1) 1.8s forwards}@keyframes ss-logo-rise{0%{transform:translateY(50px) scale(.92);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.ss-hero-text{text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px}.ss-hero-eyebrow{margin:0;font-size:14px;font-weight:700;letter-spacing:.32em;color:var(--text-secondary);opacity:0;animation:ss-hammer-strike .4s cubic-bezier(.22,1.6,.4,1) 3.3s forwards}.ss-hero-title{margin:0;font-size:clamp(48px,8vw,96px);font-weight:800;letter-spacing:-.01em;line-height:1.1;color:var(--text-primary);display:flex;flex-wrap:wrap;justify-content:center;gap:.18em;overflow:visible}.ss-hero-title-floor,.ss-hero-title-forge{display:inline-block;position:relative;padding-bottom:.08em;opacity:0;animation:ss-hammer-strike .42s cubic-bezier(.18,1.7,.5,1) forwards;transform-origin:50% 60%}.ss-hero-title-floor{animation-delay:3.65s}.ss-hero-title-forge{animation-delay:4s;background:linear-gradient(135deg,var(--gold) 0%,var(--gold-deep) 70%,var(--accent) 130%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.ss-spark-burst{position:absolute;left:50%;bottom:.08em;width:0;height:0;pointer-events:none;z-index:2}.ss-spark{position:absolute;left:-1.5px;top:0;width:3px;height:16px;border-radius:2px;background:linear-gradient(180deg,#fff5d7,#ffc36e 25%,#ff6e32f2,#be281499 85%,#780a0000);filter:blur(.4px) drop-shadow(0 0 4px rgba(255,130,60,.6));opacity:0;transform-origin:50% 0%}.ss-spark:nth-child(1){--spark-angle: -118deg;--spark-dist: 84px;--spark-stagger: 10ms}.ss-spark:nth-child(2){--spark-angle: -92deg;--spark-dist: 110px;--spark-stagger: 0ms}.ss-spark:nth-child(3){--spark-angle: -70deg;--spark-dist: 92px;--spark-stagger: 25ms}.ss-spark:nth-child(4){--spark-angle: -45deg;--spark-dist: 76px;--spark-stagger: 50ms}.ss-spark:nth-child(5){--spark-angle: -22deg;--spark-dist: 64px;--spark-stagger: 35ms}.ss-spark:nth-child(6){--spark-angle: 22deg;--spark-dist: 70px;--spark-stagger: 30ms}.ss-spark:nth-child(7){--spark-angle: 45deg;--spark-dist: 80px;--spark-stagger: 50ms}.ss-spark:nth-child(8){--spark-angle: 72deg;--spark-dist: 96px;--spark-stagger: 5ms}.ss-spark:nth-child(9){--spark-angle: 95deg;--spark-dist: 104px;--spark-stagger: 20ms}.ss-spark:nth-child(10){--spark-angle: 120deg;--spark-dist: 78px;--spark-stagger: 40ms}.ss-hero-title-floor .ss-spark{animation:ss-spark-fly .7s cubic-bezier(.18,.7,.4,1) forwards;animation-delay:calc(3.7s + var(--spark-stagger, 0ms))}.ss-hero-title-forge .ss-spark{animation:ss-spark-fly .7s cubic-bezier(.18,.7,.4,1) forwards;animation-delay:calc(4.05s + var(--spark-stagger, 0ms))}@keyframes ss-spark-fly{0%{opacity:0;transform:rotate(var(--spark-angle, 0deg)) translateY(0) scaleY(.4)}10%{opacity:1;transform:rotate(var(--spark-angle, 0deg)) translateY(-8px) scaleY(1)}60%{opacity:.85}to{opacity:0;transform:rotate(var(--spark-angle, 0deg)) translateY(calc(var(--spark-dist, 80px) * -1)) scaleY(.25)}}@keyframes ss-fade-up{to{opacity:1;transform:none}}@keyframes ss-hammer-strike{0%{opacity:0;transform:translateY(-80px) scale(1.45);filter:blur(6px);text-shadow:0 0 0 transparent}55%{opacity:1;transform:translateY(6px) scale(1.06);filter:blur(0);text-shadow:0 0 28px rgba(218,181,101,.85),0 0 12px rgba(218,181,101,.6)}72%{transform:translateY(-3px) scale(.985);text-shadow:0 0 14px rgba(218,181,101,.5),0 0 6px rgba(218,181,101,.35)}88%{transform:translateY(1px) scale(1.01);text-shadow:0 0 4px rgba(218,181,101,.18)}to{opacity:1;transform:translateY(0) scale(1);text-shadow:0 0 0 transparent}}.ss-bottom-bar{position:absolute;left:0;right:0;bottom:0;z-index:3;height:96px;padding:0 56px;display:flex;align-items:center;gap:28px;text-decoration:none;background:linear-gradient(90deg,#1a2935f5,#1a2935db 60%,#1a2935b8),url(/eclipse/eclipse-accent-graphic-glacier.png) right center / auto 220% no-repeat,var(--brand-deep-sea);background-blend-mode:normal,multiply,normal;border-top:3px solid var(--gold);box-shadow:0 -10px 30px #1a293540;transition:background .2s,border-color .2s;opacity:0;transform:translateY(40px);animation:ss-bottom-bar-rise .7s cubic-bezier(.22,1,.36,1) 5.3s forwards}@keyframes ss-bottom-bar-rise{to{opacity:1;transform:translateY(0)}}.ss-bottom-bar:hover{border-top-color:var(--gold-soft);background:linear-gradient(90deg,#1a2935fa,#1a2935e6 60%,#1a2935c7),url(/eclipse/eclipse-accent-graphic-glacier.png) right center / auto 240% no-repeat,var(--brand-deep-sea);background-blend-mode:normal,multiply,normal}.ss-bottom-bar-eyebrow{font-size:14px;font-weight:700;letter-spacing:.36em;text-transform:uppercase;color:var(--brand-putty);opacity:.78;flex:0 0 auto}.ss-bottom-bar-logo{height:56px;width:auto;object-fit:contain;flex:0 0 auto;filter:drop-shadow(0 2px 8px rgba(0,0,0,.4))}.ss-bottom-bar-rule{flex:1;height:1px;background:linear-gradient(90deg,var(--gold) 0%,transparent 100%);opacity:.55}.ss-bottom-bar-version{flex:0 0 auto;font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--brand-putty, #efdfca);opacity:.45;font-feature-settings:"tnum" 1}@media(max-width:980px){.ss-bottom-bar{height:76px;padding:0 24px;gap:14px}.ss-bottom-bar-logo{height:42px}.ss-bottom-bar-eyebrow{font-size:11px;letter-spacing:.24em}}.start-screen-slots{position:relative;display:flex;flex-direction:column;justify-content:safe center;height:100%;max-height:calc(100vh - 96px);overflow:hidden}.start-screen-cards{display:flex;flex-direction:column;gap:14px}.ss-slots-disclaimer{margin:16px 4px 0;padding:10px 14px;border-left:3px solid var(--gold, #dab565);background:#dab56514;border-radius:4px;font-size:12px;line-height:1.45;color:var(--text-secondary);opacity:0;animation:ss-fade-up .6s ease-out 5.4s forwards}.ss-slots-disclaimer strong{color:var(--gold-deep, #b6913d)}.ss-card{opacity:0;transform:translate(180px);animation:ss-card-wave 1s cubic-bezier(.22,1,.36,1) forwards}.ss-card:nth-child(1){animation-delay:4s}.ss-card:nth-child(2){animation-delay:4.07s}.ss-card:nth-child(3){animation-delay:4.14s}@keyframes ss-card-wave{0%{opacity:0;transform:translate(180px)}40%{opacity:.9}to{opacity:1;transform:translate(0)}}@keyframes ss-card-in{to{opacity:1;transform:none}}.ss-card{position:relative;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:12px;display:grid;grid-template-columns:92px 1fr;column-gap:12px;row-gap:2px;align-items:start;transition:border-color .15s,box-shadow .15s,transform .15s}.ss-card .ss-card-thumb{grid-column:1;grid-row:1 / span 3;aspect-ratio:1 / 1;margin-bottom:0;align-self:center}.ss-card .ss-card-title{grid-column:2;grid-row:1}.ss-card .ss-card-meta{grid-column:2;grid-row:2}.ss-card .ss-card-modified{grid-column:2;grid-row:3}.ss-card .ss-card-actions{grid-column:1 / -1;margin-top:8px}.ss-card .ss-card-secondary{grid-column:1 / -1;margin-top:4px}.ss-card:after{content:"";position:absolute;bottom:8px;right:8px;width:24px;height:24px;background:url(/eclipse/eclipse-web-icon.png) center / contain no-repeat;opacity:.18;pointer-events:none}.ss-card-filled{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.ss-card-filled:hover{border-color:var(--accent);box-shadow:0 6px 16px #1a191414;transform:translateY(-1px)}.ss-card-empty{border-style:dashed;background:transparent}.ss-card-empty:hover{border-color:var(--accent);color:var(--accent)}.ss-card-active{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring),var(--shadow-md)}.ss-card.is-drop-over{border-color:var(--accent);background:var(--accent-ring);box-shadow:0 0 0 3px var(--accent-ring),var(--shadow-md);transform:translateY(-1px)}.ss-card.is-drop-over *{pointer-events:none}.ss-card-thumb{aspect-ratio:16 / 10;background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;margin-bottom:12px;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.ss-card-thumb .ss-thumb-svg{width:100%;height:100%;display:block;padding:6px}.ss-card-thumb .ss-thumb-empty{width:36px;height:36px;opacity:.55}.ss-card-empty .ss-card-thumb{background:transparent;border:none}.ss-card-title{font-weight:600;font-size:var(--text-md);color:var(--text-primary);margin-bottom:4px;word-break:break-word}.ss-card-meta{font-size:var(--text-sm);color:var(--text-secondary)}.ss-card-modified{font-size:var(--text-xs);color:var(--text-muted);margin-bottom:12px;min-height:14px;font-variant-numeric:tabular-nums}.ss-card-actions{margin-top:auto;margin-bottom:8px}.ss-card-secondary{display:flex;flex-wrap:wrap;gap:6px;padding-top:10px;border-top:1px solid var(--border)}.ss-btn{padding:8px 12px;border-radius:var(--radius-md);font-family:inherit;font-size:var(--text-sm);cursor:pointer;border:1px solid transparent;transition:background .12s,border-color .12s,color .12s,transform .12s}.ss-btn-primary{background:var(--accent);color:var(--accent-on);border-color:var(--accent);width:100%;padding:10px 14px;font-size:var(--text-md);font-weight:600}.ss-btn-primary:hover{background:var(--accent-hover);transform:translateY(-1px)}.ss-btn-primary:active{transform:translateY(0)}.ss-btn-secondary{background:var(--bg-sunken);color:var(--text-secondary);border-color:var(--border)}.ss-btn-secondary:hover{background:var(--bg-panel);color:var(--text-primary);border-color:var(--border-strong)}.ss-btn-danger{color:var(--danger)}.ss-btn-danger:hover{background:var(--danger-bg);border-color:var(--danger-border)}.menu-btn{background:transparent;border:1px solid var(--border);border-radius:6px;padding:4px 10px;font-size:11px;font-family:inherit;color:var(--text-secondary);cursor:pointer;transition:background .12s,border-color .12s,color .12s}.menu-btn:hover{background:var(--bg-sunken);border-color:var(--border-strong);color:var(--text-primary)}.sidebar-toolbar .measure-btn.active{background:var(--tool-measure);border-color:var(--tool-measure);color:#fff}.sidebar-toolbar .dimension-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}body.dimension-active #app{cursor:crosshair}.sidebar-toolbar .aisle-btn.active{background:var(--tool-flag);border-color:var(--tool-flag);color:#fff}.sidebar-toolbar .ref-img-btn.active{background:#0d9488;border-color:#0d9488;color:#fff}.ref-img-hud{display:inline-flex;align-items:center;gap:6px;margin-left:6px;padding:2px 6px;border-radius:6px;background:var(--bg-sunken);border:1px solid var(--border);font-size:11px}.ref-img-hud[hidden]{display:none}.ref-img-hud-label{color:var(--text-muted);font-weight:600;letter-spacing:.03em}.ref-img-opacity input[type=range]{width:70px;accent-color:#0d9488}.ref-img-hud-btn{background:transparent;border:1px solid var(--border);color:var(--text-primary);padding:1px 6px;border-radius:4px;cursor:pointer;font-size:11px}.ref-img-hud-btn:hover{border-color:var(--border-strong)}.ref-img-hud-btn.active{background:#0d9488;border-color:#0d9488;color:#fff}.ref-img-hud-btn.ref-img-danger{color:var(--tool-flag)}body.ref-img-calibrating #app{cursor:crosshair}#zone-list{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.zone-empty{margin:4px 0}.zone-row{display:grid;grid-template-columns:14px 1fr auto auto auto auto;gap:6px;align-items:center;padding:3px 6px;border-radius:6px;background:var(--bg-sunken);border:1px solid var(--border)}.zone-row.is-hidden .zone-name{color:var(--text-muted);text-decoration:line-through}.zone-row.is-drawing{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent-ring)}.zone-swatch{width:14px;height:14px;border-radius:4px;border:1px solid var(--border);padding:0;cursor:pointer}.zone-assign{background:transparent;border:none;text-align:left;padding:2px 0;cursor:pointer;color:var(--text-primary);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.zone-assign:hover{color:var(--accent)}.zone-eye,.zone-delete,.zone-draw,.zone-clear-regions{background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:2px 4px;border-radius:4px;line-height:1}.zone-eye:hover,.zone-delete:hover,.zone-draw:hover,.zone-clear-regions:hover{color:var(--text-primary);background:var(--border)}.zone-delete{font-size:16px}.zone-draw.is-active{color:var(--accent);background:var(--accent-bg)}.zone-clear-regions{font-size:11px;font-weight:600}body.zone-draw-active{cursor:crosshair}#snippet-list{display:flex;flex-direction:column;gap:4px;margin-bottom:6px}.snippet-row{display:grid;grid-template-columns:1fr auto;gap:6px;padding:3px 6px;border-radius:6px;background:var(--bg-sunken);border:1px solid var(--border);align-items:center}.snippet-insert{background:transparent;border:none;padding:2px 0;cursor:pointer;text-align:left;display:flex;align-items:baseline;gap:8px;color:var(--text-primary);font-size:12px}.snippet-insert:hover{color:var(--accent)}.snippet-count{color:var(--text-muted);font-size:11px}.snippet-delete{background:transparent;border:none;color:var(--text-muted);cursor:pointer;font-size:16px;padding:2px 4px;border-radius:4px;line-height:1}.snippet-delete:hover{color:var(--tool-flag);background:var(--border)}body.measure-active #app{cursor:crosshair}.export-format{display:flex;gap:14px;align-items:center;margin:4px 0 10px;padding:6px 10px;border:1px solid var(--border);border-radius:6px;font-size:13px}.export-format legend{font-size:11px;color:var(--text-muted);padding:0 4px}.export-format label{display:inline-flex;align-items:center;gap:4px;cursor:pointer}.export-options{display:flex;flex-direction:column;gap:8px;padding:12px 16px}.export-option{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 14px;background:var(--bg-sunken);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);cursor:pointer;font-family:inherit;text-align:left;transition:background .12s,border-color .12s}.export-option strong{font-size:13px;font-weight:700}.export-option span{font-size:11.5px;color:var(--text-muted)}.export-option:hover{background:var(--accent-bg);border-color:var(--accent)}.sidebar-toolbar .help-btn{font-size:13px;font-weight:700;font-family:inherit}.help-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center}.help-modal[hidden]{display:none}.help-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f172a8c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.help-box{position:relative;width:min(960px,92vw);height:min(720px,88vh);background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;box-shadow:0 20px 60px #00000059;display:flex;flex-direction:column;overflow:hidden}.help-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--border);background:var(--bg-sunken)}.help-eclipse-mark{width:26px;height:26px;object-fit:contain;flex:0 0 auto}.help-header h1{flex:1;font-size:16px;font-weight:700;margin:0;color:var(--text-primary)}.help-close{background:transparent;border:1px solid transparent;border-radius:6px;width:28px;height:28px;font-size:18px;line-height:1;color:var(--text-secondary);cursor:pointer;transition:background .12s,border-color .12s,color .12s}.help-close:hover{background:var(--bg-elevated);border-color:var(--border);color:var(--text-primary)}.help-layout{display:flex;flex:1 1 0;min-height:0}.help-toc{width:220px;flex-shrink:0;border-right:1px solid var(--border);padding:12px 0;overflow-y:auto;background:var(--bg-sunken)}.help-toc a{display:block;padding:7px 16px;font-size:12.5px;color:var(--text-secondary);text-decoration:none;border-left:3px solid transparent;transition:background .12s,color .12s,border-color .12s}.help-toc a:hover{background:var(--bg-elevated);color:var(--text-primary)}.help-toc a.is-active{background:var(--accent-bg);color:var(--accent);border-left-color:var(--accent);font-weight:600}.help-body{flex:1 1 0;overflow-y:auto;padding:20px 28px 60px;font-size:13.5px;line-height:1.55;color:var(--text-primary)}.help-body section{margin-bottom:32px}.help-body section:last-child{margin-bottom:0}.help-body h2{font-size:18px;font-weight:700;margin:0 0 10px;padding-bottom:6px;border-bottom:1px solid var(--border);color:var(--text-primary)}.help-body h3{font-size:14px;font-weight:700;margin:18px 0 6px;color:var(--text-primary)}.help-body p{margin:6px 0 10px}.help-body ul{margin:6px 0 12px;padding-left:22px}.help-body li{margin-bottom:4px}.help-body strong{color:var(--text-primary);font-weight:700}.help-body em{font-style:italic;color:var(--text-secondary)}.help-body code{background:var(--bg-sunken);border:1px solid var(--border);border-radius:3px;padding:1px 5px;font-size:12px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.help-body p.note{background:var(--accent-bg);border-left:3px solid var(--accent);padding:8px 12px;border-radius:4px;font-size:12.5px;color:var(--text-secondary)}.help-body p.callout{background:#dab5651f;border-left:4px solid var(--gold-deep, #b6913d);padding:12px 16px;border-radius:4px;font-size:13.5px;line-height:1.55;color:var(--text-primary);margin:0 0 16px}.help-body p.callout strong{color:var(--gold-deep, #b6913d)}.shortcuts-table{width:100%;border-collapse:collapse;margin-top:10px;font-size:12.5px}.shortcuts-table th,.shortcuts-table td{text-align:left;padding:7px 10px;border-bottom:1px solid var(--border);vertical-align:top}.shortcuts-table th{font-weight:700;color:var(--text-primary);background:var(--bg-sunken)}.shortcuts-table td:first-child{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:12px;color:var(--accent);white-space:nowrap;width:40%}.bookmarks-menu{position:fixed;min-width:240px;max-width:320px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:6px;z-index:1080;animation:context-menu-pop .14s ease-out}.bookmarks-menu-header{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding:4px 8px 6px}.bookmarks-menu-list{display:flex;flex-direction:column;gap:2px;max-height:260px;overflow-y:auto}.bookmarks-menu-empty{padding:14px 8px 12px;font-size:var(--text-sm);color:var(--text-muted);font-style:italic}.bookmarks-menu-empty.empty-state{display:flex;flex-direction:column;align-items:center;gap:6px}.bookmarks-menu-empty .empty-state-text{text-align:center}.empty-state{display:flex;flex-direction:column;align-items:center;gap:8px;padding:10px 4px 4px;text-align:center}.empty-state-art{color:var(--text-muted);opacity:.85;flex:0 0 auto}.empty-state-mark{width:40px;height:40px;object-fit:contain;opacity:.55;flex:0 0 auto}.empty-state .sidebar-hint{margin-top:0;max-width:240px}.bookmarks-menu-row{display:flex;align-items:center;gap:2px}.bookmarks-menu-jump{flex:1;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-primary);font-family:inherit;font-size:var(--text-sm);text-align:left;cursor:pointer;transition:background .08s,border-color .08s}.bookmarks-menu-jump:hover{background:var(--accent-bg);border-color:var(--accent)}.bookmarks-menu-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bookmarks-menu-zoom{font-size:var(--text-xs);color:var(--text-muted);font-variant-numeric:tabular-nums;flex-shrink:0}.bookmarks-menu-delete{width:24px;height:24px;padding:0;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-muted);font-size:16px;line-height:1;cursor:pointer}.bookmarks-menu-delete:hover{background:var(--error-bg);color:var(--error)}.bookmarks-menu-form{display:flex;gap:4px;margin-top:6px;padding-top:6px;border-top:1px solid var(--border)}.bookmarks-menu-form input{flex:1;padding:5px 8px;background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--text-sm);font-family:inherit;color:var(--text-primary)}.bookmarks-menu-form input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-ring)}.bookmarks-menu-save{padding:5px 12px;background:var(--accent);color:var(--accent-on);border:1px solid var(--accent);border-radius:var(--radius-sm);font-family:inherit;font-size:var(--text-sm);cursor:pointer}.bookmarks-menu-save:hover{background:var(--accent-hover)}.context-menu{position:fixed;min-width:180px;max-height:60vh;overflow-y:auto;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md),0 0 0 1px #00000005;padding:4px;z-index:1080;animation:context-menu-pop .12s ease-out}@keyframes context-menu-pop{0%{opacity:0;transform:translateY(-3px) scale(.98)}to{opacity:1;transform:none}}.context-menu-item{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;padding:6px 10px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-primary);font-family:inherit;font-size:var(--text-sm);text-align:left;cursor:pointer;transition:background .08s,color .08s}.context-menu-item:hover:not(:disabled){background:var(--accent-bg);color:var(--accent)}.context-menu-item:disabled{opacity:.4;cursor:not-allowed}.context-menu-item.is-danger{color:var(--error)}.context-menu-item.is-danger:hover:not(:disabled){background:var(--error-bg);color:var(--error)}.context-menu-label{flex:1}.context-menu-hint{font-size:var(--text-xs);color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.context-menu-item:hover .context-menu-hint{color:var(--accent)}.context-menu-item.is-danger:hover .context-menu-hint{color:var(--error)}.context-menu-divider{height:1px;background:var(--border);margin:4px 2px}.confirm-dialog{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;background:var(--overlay);display:flex;align-items:center;justify-content:center;padding:32px;animation:confirm-fade .15s ease-out}@keyframes confirm-fade{0%{opacity:0}to{opacity:1}}.confirm-dialog-box{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-dialog);max-width:440px;width:100%;padding:20px 22px;animation:confirm-pop .18s ease-out}@keyframes confirm-pop{0%{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}.confirm-dialog-title{font-size:var(--text-md);font-weight:700;color:var(--text-primary);margin-bottom:6px}.confirm-dialog-message{font-size:var(--text-base);color:var(--text-secondary);line-height:1.5;margin-bottom:18px}.confirm-dialog-buttons{display:flex;gap:8px;justify-content:flex-end}.confirm-dialog-btn{padding:8px 14px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-sunken);color:var(--text-primary);font-family:inherit;font-size:var(--text-sm);cursor:pointer;transition:background .12s,border-color .12s,color .12s}.confirm-dialog-btn:hover{background:var(--bg-panel);border-color:var(--border-strong)}.confirm-dialog-btn.is-primary{background:var(--accent);color:var(--accent-on);border-color:var(--accent)}.confirm-dialog-btn.is-primary:hover{background:var(--accent-hover)}.confirm-dialog-btn.is-danger{background:var(--error);color:#fff;border-color:var(--error)}.confirm-dialog-btn.is-danger:hover{filter:brightness(.92)}.confirm-dialog-btn:focus-visible{outline:2px solid var(--accent-ring);outline-offset:2px}.toast-container{position:fixed;bottom:28px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;z-index:1100;pointer-events:none}.toast{min-width:220px;max-width:440px;padding:10px 16px;background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:6px;box-shadow:0 10px 28px #00000038;font-size:13px;line-height:1.4;opacity:0;transform:translateY(14px) scale(.96);transition:opacity .22s cubic-bezier(.2,.7,.2,1),transform .22s cubic-bezier(.2,.7,.2,1);pointer-events:auto;cursor:pointer;-webkit-user-select:none;user-select:none}.toast.is-visible{opacity:1;transform:translateY(0) scale(1)}.toast.is-leaving{opacity:0;transform:translateY(-8px) scale(.98)}.toast-info{border-left-color:var(--info)}.toast-success{border-left-color:var(--success)}.toast-warning{border-left-color:var(--warning)}.toast-error{border-left-color:var(--error)}.toast{display:inline-flex;align-items:center;gap:10px}.toast-text{display:inline-block}.toast-icon{display:inline-flex;width:20px;height:20px;flex:0 0 auto}.toast-check{width:100%;height:100%;fill:none;stroke:var(--success, #22c55e);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.toast-check-ring{stroke-dasharray:64;stroke-dashoffset:64;opacity:0}.toast-check-mark{stroke-dasharray:24;stroke-dashoffset:24}.toast.is-visible .toast-check-ring{animation:toast-ring-in .32s ease-out .06s forwards}.toast.is-visible .toast-check-mark{animation:toast-mark-in .34s cubic-bezier(.6,0,.4,1) .34s forwards}@keyframes toast-ring-in{to{stroke-dashoffset:0;opacity:1}}@keyframes toast-mark-in{to{stroke-dashoffset:0}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}.mode-indicator{position:fixed;top:64px;left:50%;transform:translate(-50%);z-index:20;display:inline-flex;align-items:center;gap:8px;padding:6px 12px;background:var(--bg-elevated);border:1px solid var(--border);border-left:3px solid var(--mode-accent, var(--accent));border-radius:999px;font-size:12px;color:var(--text-primary);box-shadow:var(--shadow-md);pointer-events:none;-webkit-user-select:none;user-select:none;animation:mode-indicator-in .18s cubic-bezier(.2,.7,.2,1)}.mode-indicator[hidden]{display:none}.mode-indicator-dot{width:7px;height:7px;border-radius:50%;background:var(--mode-accent, var(--accent));animation:save-pulse 1.4s ease-in-out infinite}.mode-indicator-label{font-weight:600;letter-spacing:.01em}.mode-indicator-hint{color:var(--text-muted);font-size:11px}@keyframes mode-indicator-in{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}.save-indicator{position:fixed;bottom:12px;right:76px;z-index:10;display:inline-flex;align-items:center;gap:6px;padding:5px 9px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:999px;font-size:11px;color:var(--text-secondary);box-shadow:var(--shadow-sm, 0 2px 6px rgba(0, 0, 0, .12));pointer-events:none;-webkit-user-select:none;user-select:none;transition:opacity .18s ease-out}.save-indicator[hidden]{display:none}.save-indicator-dot{width:7px;height:7px;border-radius:50%;background:var(--text-muted);flex:0 0 auto}.save-indicator[data-status=pending] .save-indicator-dot{background:#d97706;animation:save-pulse 1s ease-in-out infinite}.save-indicator[data-status=saved] .save-indicator-dot{background:var(--success, #10b981)}.save-indicator[data-status=error]{color:var(--error, #dc2626);border-color:var(--error, #dc2626);pointer-events:auto}.save-indicator[data-status=error] .save-indicator-dot{background:var(--error, #dc2626)}@keyframes save-pulse{0%,to{opacity:1}50%{opacity:.4}}.duprow-dialog .dialog-box{min-width:340px;max-width:380px}.duprow-dialog .dialog-row{gap:12px;margin-bottom:14px}.duprow-field{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.duprow-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.duprow-field input{width:100%;box-sizing:border-box}.duprow-direction-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-weight:600;margin-bottom:6px}.duprow-directions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:10px}.duprow-dir-btn{padding:8px 10px;background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;font-family:inherit;font-size:13px;color:var(--text-primary);cursor:pointer;transition:background .12s,border-color .12s,color .12s}.duprow-dir-btn:hover{border-color:var(--border-strong)}.duprow-dir-btn.is-active{background:var(--accent-bg);border-color:var(--accent);color:var(--accent)}.duprow-hint{font-size:11px;color:var(--text-muted);line-height:1.5;margin-bottom:12px}.prompt-text-dialog{z-index:1100}.buildroom-dialog .dialog-box{min-width:440px;max-width:480px;max-height:86vh;overflow-y:auto}.buildroom-row{display:flex;gap:12px;margin-bottom:12px}.buildroom-field{display:flex;flex-direction:column;gap:4px;flex:1}.buildroom-name{margin-bottom:12px}.buildroom-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.buildroom-section-title{font-size:12px;font-weight:600;color:var(--text-secondary);margin:12px 0 6px}.buildroom-radios{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}.buildroom-pt-list{display:flex;flex-direction:column;gap:6px;margin:6px 0 8px}.buildroom-pt-row{display:grid;grid-template-columns:18px 88px 78px 1fr;align-items:center;gap:8px}.buildroom-pt-label{font-size:11px;color:var(--text-muted);text-align:center}.buildroom-pt-row select,.buildroom-pt-row input[type=number]{padding:4px 6px;border:1px solid var(--border);border-radius:4px;background:var(--bg-sunken);color:var(--text-primary);font-size:12px}.buildroom-pt-row input[type=range]{width:100%}.buildroom-radio{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg-sunken);font-size:12px;color:var(--text-primary);cursor:pointer}.buildroom-radio:hover{border-color:var(--border-strong)}.buildroom-radio input[type=radio]{margin:0;accent-color:var(--accent)}.buildroom-radio:has(input:checked){background:var(--accent-bg);border-color:var(--accent);color:var(--accent)}.br-dooroffset-readout{font-size:11px;color:var(--text-muted);text-align:right}.cheat-sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:150;display:flex;align-items:center;justify-content:center}.cheat-sheet-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f172a73;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.cheat-sheet-card{position:relative;width:min(760px,92vw);max-height:86vh;background:var(--bg-elevated);border:1px solid var(--border);border-radius:14px;box-shadow:0 20px 60px #00000059;display:flex;flex-direction:column;overflow:hidden}.cheat-sheet-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border)}.cheat-sheet-title{margin:0;font-size:var(--text-lg, 1.05rem);font-weight:600;color:var(--text-primary)}.cheat-sheet-close{background:transparent;border:none;color:var(--text-muted);font-size:22px;line-height:1;cursor:pointer;padding:2px 6px;border-radius:6px}.cheat-sheet-close:hover{color:var(--text-primary);background:var(--bg-sunken)}.cheat-sheet-body{padding:14px 18px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 28px;overflow-y:auto}.shortcut-group-title{margin:0 0 6px;font-size:var(--text-xs, .78rem);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.shortcut-list{margin:0;display:grid;grid-template-columns:auto 1fr;row-gap:4px;column-gap:14px;align-items:baseline}.shortcut-row{display:contents}.shortcut-keys{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:12px;color:var(--text-primary);white-space:nowrap}.shortcut-label{margin:0;font-size:13px;color:var(--text-secondary)}.cheat-sheet-footer{padding:10px 18px;border-top:1px solid var(--border);font-size:12px;color:var(--text-muted);text-align:center}.cheat-sheet-footer kbd{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;background:var(--bg-sunken);border:1px solid var(--border);border-radius:4px;padding:1px 5px;font-size:11px}@media(max-width:640px){.cheat-sheet-body{grid-template-columns:1fr}}.empty-state-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:0;transform:translateY(8px);transition:opacity .28s ease-out,transform .32s cubic-bezier(.16,1,.3,1);z-index:2}.empty-state-overlay.is-visible{opacity:1;transform:translateY(0)}.empty-state-stage{width:min(360px,80vw);text-align:center;-webkit-user-select:none;user-select:none}.empty-state-art{display:flex;justify-content:center;margin-bottom:18px;filter:drop-shadow(0 12px 28px rgba(26,41,53,.18))}.empty-state-svg{width:240px;height:180px;display:block}.empty-state-sun{transform-origin:120px 110px;animation:empty-sun-bob 4.5s ease-in-out infinite}@keyframes empty-sun-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.empty-state-mountain-back{animation:empty-mtn-back 9s ease-in-out infinite}.empty-state-mountain-front{animation:empty-mtn-front 11s ease-in-out infinite}@keyframes empty-mtn-back{0%,to{transform:translate(0)}50%{transform:translate(2px)}}@keyframes empty-mtn-front{0%,to{transform:translate(0)}50%{transform:translate(-2px)}}.empty-state-eyebrow{margin:0 0 6px;font-size:11px;font-weight:700;letter-spacing:.18em;color:var(--brand-glacier, #5d8493);text-transform:uppercase}.empty-state-title{margin:0 0 8px;font-size:18px;font-weight:600;color:var(--text);line-height:1.35}.empty-state-hint{margin:0;font-size:13px;color:var(--text-muted, #6b7280)}.empty-state-hint kbd{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;background:var(--bg-sunken);border:1px solid var(--border);border-radius:4px;padding:1px 5px;font-size:11px}.pdf-export-spinner{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1500;display:flex;align-items:center;justify-content:center;background:#1a29358c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .18s ease-out}.pdf-export-spinner.is-visible{opacity:1;pointer-events:auto}.pdf-export-spinner-card{background:var(--bg-elev, #ffffff);border-radius:14px;padding:32px 44px;text-align:center;box-shadow:0 24px 60px #00000059;border:1px solid var(--border);max-width:360px}.pdf-export-spinner-ring{width:64px;height:64px;margin:0 auto 18px;position:relative;border:4px solid rgba(218,181,101,.15);border-top-color:var(--brand-gold, #dab565);border-right-color:var(--brand-glacier, #5d8493);border-radius:50%;animation:pdf-spinner-rotate 1.1s linear infinite}.pdf-export-spinner-orbit{position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border:2px dashed rgba(93,132,147,.3);border-radius:50%;animation:pdf-spinner-rotate 4.4s linear infinite reverse}@keyframes pdf-spinner-rotate{to{transform:rotate(360deg)}}.pdf-export-spinner-title{margin:0 0 4px;font-size:16px;font-weight:600;color:var(--text)}.pdf-export-spinner-sub{margin:0;font-size:13px;color:var(--text-muted, #6b7280)}#mobile-fallback{display:none}@media(hover:none)and (pointer:coarse)and (max-width:1100px){html:not(.mobile-fallback-allow) #mobile-fallback{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:32px 24px;background:radial-gradient(800px 500px at 30% 20%,rgba(218,181,101,.18),transparent 60%),radial-gradient(700px 500px at 80% 90%,rgba(93,132,147,.22),transparent 55%),var(--brand-deep-sea, #1a2935);color:var(--brand-putty, #efdfca);text-align:center;overflow-y:auto}html:not(.mobile-fallback-allow) #layout,html:not(.mobile-fallback-allow) #start-screen,html:not(.mobile-fallback-allow) #undo-hud,html:not(.mobile-fallback-allow) #selection-hud{display:none!important}}.mobile-fallback-card{max-width:420px;display:flex;flex-direction:column;align-items:center;gap:14px}.mobile-fallback-logo{width:84px;height:auto;margin-bottom:4px;filter:drop-shadow(0 8px 24px rgba(0,0,0,.4))}.mobile-fallback-eyebrow{margin:0;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--brand-gold, #dab565);font-weight:700}.mobile-fallback-title{margin:0;font-size:28px;line-height:1.15;font-weight:700;color:#fff}.mobile-fallback-body{margin:0;font-size:15px;line-height:1.5;opacity:.92}.mobile-fallback-tip{margin:0;font-size:14px;opacity:.78}.mobile-fallback-override{margin-top:8px;background:transparent;color:var(--brand-gold, #dab565);border:1px solid rgba(218,181,101,.5);border-radius:999px;padding:10px 22px;font-size:13px;font-weight:600;letter-spacing:.04em;cursor:pointer;transition:background .18s ease,color .18s ease,border-color .18s ease}.mobile-fallback-override:hover,.mobile-fallback-override:focus-visible{background:var(--brand-gold, #dab565);color:var(--brand-deep-sea, #1a2935);border-color:var(--brand-gold, #dab565);outline:none}.mobile-fallback-foot{margin:18px 0 0;font-size:11px;letter-spacing:.22em;text-transform:uppercase;opacity:.55}.ss-begin{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px 24px 110px;cursor:pointer;text-align:center;background:radial-gradient(80% 50% at 50% 100%,rgba(217,74,44,.22),transparent 60%),radial-gradient(120% 70% at 50% 18%,rgba(218,181,101,.18),transparent 65%),var(--brand-deep-sea, #1a2935);transition:opacity .4s ease-out,transform .4s ease-out}.ss-begin:focus-visible{outline:none}.ss-begin.is-leaving{pointer-events:none;opacity:0;transform:scale(.98)}.ss-begin-stage{display:flex;flex-direction:column;align-items:center;gap:22px}.ss-begin-eyebrow{margin:0;font-size:13px;letter-spacing:.36em;text-transform:uppercase;color:var(--brand-gold, #dab565);font-weight:700}.ss-begin-title{margin:0;display:flex;gap:.18em;font-size:clamp(72px,12vw,168px);font-weight:800;line-height:.95;letter-spacing:-.02em;filter:drop-shadow(0 16px 36px rgba(0,0,0,.45))}.ss-begin-title-floor,.ss-begin-title-forge{background:linear-gradient(180deg,#f5e7d4,#dab565 60%,#a87f32);-webkit-background-clip:text;background-clip:text;color:transparent;padding-bottom:.08em}.ss-begin-anvil{display:inline-flex;flex-direction:column;align-items:center;gap:12px;margin-top:12px;padding:14px 24px;background:transparent;border:none;border-radius:12px;cursor:pointer;font-family:inherit;font-size:13px;letter-spacing:.24em;text-transform:uppercase;font-weight:700;color:#fff;transition:transform .22s cubic-bezier(.16,1,.3,1);animation:ss-anvil-breathe 3.4s ease-in-out infinite}.start-screen:not(.is-running) .ss-begin-anvil{animation-play-state:running!important}.ss-begin-anvil:hover,.ss-begin-anvil:focus-visible{transform:scale(1.06);outline:none}.ss-begin-anvil-svg{width:110px;height:auto;filter:drop-shadow(0 0 16px rgba(217,74,44,.45)) drop-shadow(0 18px 38px rgba(0,0,0,.55));transition:filter .24s ease-out}.ss-begin-anvil:hover .ss-begin-anvil-svg,.ss-begin-anvil:focus-visible .ss-begin-anvil-svg{filter:drop-shadow(0 0 22px rgba(255,110,70,.75)) drop-shadow(0 20px 44px rgba(0,0,0,.6))}@keyframes ss-anvil-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}.ss-begin-cta{color:var(--brand-gold, #dab565)}.ss-begin-foot{position:absolute;bottom:36px;left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none}.ss-begin-foot-eyebrow{font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:var(--brand-putty, #efdfca);opacity:.7}.ss-begin-foot-logo{height:38px;width:auto;opacity:.92;filter:drop-shadow(0 4px 14px rgba(0,0,0,.4))}.ss-mute{position:absolute;top:24px;right:28px;z-index:5;width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid rgba(218,181,101,.35);background:#1a29358c;color:var(--brand-putty, #efdfca);cursor:pointer;transition:background .18s ease,border-color .18s ease,transform .18s ease}.ss-mute:hover,.ss-mute:focus-visible{background:#1a2935d9;border-color:var(--brand-gold, #dab565);outline:none;transform:scale(1.05)}.ss-mute-icon-on,.ss-mute-icon-off{width:20px;height:20px}.ss-mute[aria-pressed=false] .ss-mute-icon-off,.ss-mute[aria-pressed=true] .ss-mute-icon-on{display:none}
