:root{--bg:#121214;--panel:#1c1c20;--panel-2:#24242a;--border:#33333b;--text:#ececf1;--muted:#9a9aa6;--accent:#4a8dff;--accent-soft:#4a8dff29;--warn:#e8b04a;--danger:#ef5b5b;--radius:6px;color:var(--text);background:var(--bg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:13px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;overflow:hidden}h1,h2,h3,h4{margin:0;font-weight:600}button{font:inherit;color:inherit;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;padding:5px 10px}button:hover:not(:disabled){background:#2c2c33;border-color:#50505c}button:disabled{opacity:.4;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover{background:#3d7ff0}button.danger{color:var(--danger);border-color:#ef5b5b59}button.danger:hover:not(:disabled){border-color:var(--danger);background:#ef5b5b1f}.ghost-button{background:0 0;border-color:#0000}.icon-button{min-width:28px;padding:3px 8px}.icon-button.small{min-width:0;padding:0 4px;font-size:11px}.link-button{color:var(--accent);background:0 0;border:none;padding:2px 0}.link-button:hover:not(:disabled){background:0 0;text-decoration:underline}.danger-text{color:var(--danger)}.muted{color:var(--muted)}.small{font-size:11.5px}.warn-text{color:var(--warn)}.error-text{color:var(--danger)}.indent{padding-left:18px}.spacer{flex:1}kbd,code{background:var(--panel-2);border:1px solid var(--border);border-radius:4px;padding:0 4px;font-family:ui-monospace,Menlo,monospace;font-size:12px}.input{width:100%;font:inherit;color:inherit;border:1px solid var(--border);border-radius:var(--radius);background:#141417;padding:5px 8px}.input:focus{border-color:var(--accent);outline:none}.input.error{border-color:var(--danger)}textarea.input{resize:vertical}.app{flex-direction:column;height:100%;display:flex}.topbar{background:var(--panel);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:12px;height:48px;padding:0 12px;display:flex}.brand{letter-spacing:.02em;color:#f3d58a;align-items:center;gap:8px;font-weight:700;display:flex}.production-name{font:inherit;color:var(--text);border-radius:var(--radius);background:0 0;border:1px solid #0000;width:260px;padding:4px 8px;font-size:14px;font-weight:600}.production-name:hover{border-color:var(--border)}.production-name:focus{border-color:var(--accent);background:#141417;outline:none}.topbar-group{gap:2px;display:flex}.workspace{flex:1;grid-template-columns:260px 1fr 300px;min-height:0;display:grid}.workspace.build{display:block;overflow:auto}.sidebar{background:var(--panel);min-height:0;overflow-y:auto}.sidebar.left{border-right:1px solid var(--border)}.sidebar.right{border-left:1px solid var(--border);flex-direction:column;display:flex}.sidebar-body{flex:1;overflow-y:auto}.stage-area{flex-direction:column;min-width:0;min-height:0;display:flex}.panel-section{border-bottom:1px solid var(--border);padding:12px}.panel-section h2{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:8px;font-size:12px}.library-group h3{margin:10px 0 6px;font-size:12px;font-weight:500}.template-grid{grid-template-columns:1fr 1fr;gap:6px;display:grid}.template-card{background:#222228;flex-direction:column;align-items:center;gap:2px;padding:4px 4px 6px;display:flex}.template-card img{aspect-ratio:160/112;background:radial-gradient(circle at 50% 40%,#34343c,#222228);border-radius:4px;width:100%}.template-card span{font-size:12px}.piece-list,.instance-list,.recent-list,.shift-list,.warnings{margin:0;padding:0;list-style:none}.piece-list>li{margin-bottom:8px}.piece-type-row{align-items:center;gap:6px;display:flex}.piece-type-name{text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:600;overflow:hidden}.color-dot{border:1px solid #ffffff40;border-radius:50%;flex-shrink:0;width:10px;height:10px}.instance-row{text-align:left;width:100%;color:var(--muted);background:0 0;border:none;justify-content:space-between;align-items:center;padding:3px 6px 3px 18px;display:flex}.instance-row.active{background:var(--accent-soft);color:var(--text)}.badge{background:var(--panel-2);border:1px solid var(--border);border-radius:10px;padding:1px 6px;font-size:11px;display:inline-block}.badge.state-offstage{color:#9ec3ff}.badge.state-flown{color:#c6a3ff}.badge.state-struck{color:var(--muted);text-decoration:line-through}.viewport{flex:1;min-height:0;position:relative}.viewport canvas{display:block}.viewport-toolbar{pointer-events:none;align-items:center;gap:8px;display:flex;position:absolute;top:10px;left:10px}.viewport-toolbar>*{pointer-events:auto}.toolbar-field{border:1px solid var(--border);border-radius:var(--radius);color:var(--muted);background:#1c1c20e6;align-items:center;gap:6px;padding:2px 4px 2px 8px;display:flex}.toolbar-field select{color:var(--text);font:inherit;background:0 0;border:none}.viewport-toolbar .ghost-button{border-color:var(--border);background:#1c1c20e6}.viewport-hint{border:1px solid var(--border);pointer-events:none;background:#1c1c20eb;border-radius:10px;flex-direction:column;align-items:center;gap:4px;padding:14px 18px;display:flex;position:absolute;top:40%;left:50%;transform:translate(-50%,-50%)}.seat-banner{border:1px solid var(--border);white-space:nowrap;background:#1c1c20eb;border-radius:20px;align-items:center;gap:12px;padding:6px 8px 6px 14px;display:flex;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.seat-banner.picking{border-color:var(--accent)}.segmented{border:1px solid var(--border);border-radius:var(--radius);background:#141417;gap:2px;padding:2px;display:inline-flex}.segmented button{color:var(--muted);background:0 0;border:none;border-radius:4px;padding:4px 10px}.segmented button.active{background:var(--panel-2);color:var(--text);box-shadow:inset 0 0 0 1px #45454f}.scene-strip{background:var(--panel);border-top:1px solid var(--border);flex-shrink:0;align-items:center;gap:10px;padding:6px 10px;display:flex}.scene-strip-label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:11px}.scene-tabs{flex:1;gap:6px;display:flex;overflow-x:auto}.scene-tab{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel-2);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:4px 6px 4px 4px;display:flex}.scene-tab.active{border-color:var(--accent);background:var(--accent-soft)}.scene-number{min-width:18px;height:18px;color:var(--muted);background:#111;border-radius:4px;place-items:center;font-size:11px;display:grid}.scene-close{color:var(--muted);visibility:hidden;background:0 0;border:none;padding:0 2px}.scene-tab:hover .scene-close{visibility:visible}.scene-rename{font:inherit;color:inherit;border:1px solid var(--accent);background:#141417;border-radius:4px;width:140px;padding:1px 4px}.scene-add{white-space:nowrap;background:0 0;border-style:dashed}.tabs{border-bottom:1px solid var(--border);flex-shrink:0;display:flex}.tabs button{color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;flex:1;padding:10px 0}.tabs button.active{color:var(--text);border-bottom-color:var(--accent)}.inspector{flex-direction:column;gap:10px;padding:12px;display:flex}.empty-note{color:var(--muted);text-align:center;padding:24px 16px;line-height:1.5}.section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border-top:1px solid var(--border);margin-top:8px;padding-top:10px;font-size:11px}.field{flex-direction:column;gap:4px;min-width:0;display:flex}.field-label{color:var(--muted);font-size:11.5px}.field-help{color:#7c7c88;font-size:11px}.field-grid{grid-template-columns:1fr 1fr;gap:10px 8px;display:grid}.inline{gap:4px;display:flex}.inline .input{min-width:0}.checkbox{grid-template-columns:auto 1fr;align-items:center;gap:2px 8px;display:grid}.checkbox .field-help{grid-column:2}.piece-summary{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.callout{border-radius:var(--radius);background:var(--accent-soft);border:1px solid #4a8dff59;flex-direction:column;align-items:flex-start;gap:4px;padding:8px 10px;display:flex}.warnings li{color:var(--warn);border-radius:var(--radius);background:#e8b04a1a;margin-bottom:4px;padding:6px 8px}.build-summary{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.button-row{flex-wrap:wrap;gap:6px;display:flex}.button-row.end{justify-content:flex-end}.swatches{flex-wrap:wrap;gap:4px;display:flex}.swatch{border:1px solid #fff3;border-radius:4px;width:22px;height:22px;padding:0}.swatch.active{outline:2px solid var(--accent);outline-offset:1px}.swatch.custom{cursor:pointer;background:conic-gradient(red,#ff0,#0f0,#0ff,#00f,#f0f,red);display:inline-block;position:relative}.swatch.custom input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.shift-list li{padding:3px 0}.seating-block{border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:8px;padding:8px 10px;display:flex}.seating-block[open]>summary{margin-bottom:8px}.seating-block summary{cursor:pointer;font-weight:600}.splash{height:100%;color:var(--muted);place-items:center;display:grid}.welcome{background:radial-gradient(ellipse at top, #2a2118 0%, var(--bg) 60%);height:100%;padding:48px;overflow:auto}.welcome-intro{max-width:980px;margin:0 auto 32px}.welcome-intro h1{color:#f3d58a;letter-spacing:.02em;font-size:40px}.welcome-intro p{color:var(--muted);font-size:16px}.welcome .manager{max-width:980px;margin:0 auto}.manager{grid-template-columns:1.4fr 1fr;gap:24px;display:grid}.manager-new,.manager-recent{background:var(--panel);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:12px;padding:20px;display:flex}.manager h2{font-size:16px}.new-production{flex-direction:column;gap:14px;display:flex}.stage-type-cards{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.stage-type-card{text-align:left;flex-direction:column;align-items:flex-start;gap:4px;padding:10px;display:flex}.stage-type-card svg{width:64px;height:60px;color:var(--muted)}.stage-type-card span{color:var(--muted);font-size:11.5px;line-height:1.4}.stage-type-card.active{border-color:var(--accent);background:var(--accent-soft)}.stage-type-card.active svg{color:var(--accent)}.recent-list li{align-items:center;gap:4px;display:flex}.recent-list li.current .recent-open{border-color:var(--accent)}.recent-open{text-align:left;flex-direction:column;flex:1;align-items:flex-start;gap:2px;margin-bottom:6px;display:flex}.modal-backdrop{z-index:100;background:#0009;place-items:center;display:grid;position:fixed;inset:0}.modal{background:var(--bg);border:1px solid var(--border);border-radius:12px;flex-direction:column;width:min(1000px,100vw - 48px);max-height:calc(100vh - 48px);display:flex}.modal>header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.modal-body{padding:18px;overflow:auto}.build-view{flex-direction:column;gap:16px;max-width:1200px;margin:0 auto;padding:24px 32px 64px;display:flex}.build-header{justify-content:space-between;align-items:flex-end;display:flex}.build-header h1{font-size:24px}.build-total{flex-direction:column;align-items:flex-end;display:flex}.build-total strong{color:#f3d58a;font-size:28px}.build-actions{align-items:center;gap:8px;display:flex}.table{border-collapse:collapse;width:100%;margin-bottom:18px}.table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--border);padding:6px 8px;font-size:11.5px;font-weight:500}.table td{vertical-align:middle;border-bottom:1px solid #26262c;padding:6px 8px}.table.compact td,.table.compact th{padding:4px 6px}.table .num{text-align:right;white-space:nowrap}.table.editable .input{padding:3px 6px}.price-input{align-items:center;gap:2px;display:inline-flex}.price-input .input{width:80px}.price-input.overridden .input{border-color:#f3d58a99}.cut-section{margin-bottom:24px}.cut-section h3{margin-bottom:10px}.board-row{grid-template-columns:110px 1fr;align-items:center;gap:8px;margin-bottom:4px;display:grid}.board-label{color:var(--muted);font-size:11.5px}.board{background:repeating-linear-gradient(45deg,#2a2a30,#2a2a30 4px,#222227 4px 8px);border:1px solid #4a4a52;border-radius:2px;height:30px;display:flex;overflow:hidden}.board-cut{color:#2a1e0e;white-space:nowrap;border-right:2px solid #121214;flex-direction:column;justify-content:center;padding:0 4px;font-size:11px;line-height:1.1;display:flex;overflow:hidden}.board-cut small{opacity:.75;font-size:9.5px}.sheet-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;display:grid}.sheet{margin:0}.sheet svg{width:100%;display:block}.sheet-bg{fill:#2a2a30;stroke:#5a5a64;stroke-width:.4px}.sheet-part{stroke:#121214;stroke-width:.4px}.sheet text{fill:#2a1e0e}.sheet figcaption{color:var(--muted);margin-top:4px;font-size:11.5px}.sheet figcaption ul{margin:4px 0 0;padding-left:16px}.piece-cards{flex-direction:column;gap:16px;display:flex}.piece-card{background:var(--panel);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:8px;padding:14px 16px;display:flex}.piece-card header{align-items:center;gap:8px;display:flex}.piece-card h4{color:var(--muted);margin-top:4px;font-size:12px}@media print{:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--text:#000;--muted:#444;--bg:#fff;--panel:#fff;--border:#bbb}html,body,#root,.app,.workspace.build{height:auto;overflow:visible}.topbar,.build-actions,.link-button,.icon-button{display:none!important}.input{background:0 0;border:none;padding:0}.table td{border-bottom-color:#ddd}}.library-note{margin:-2px 0 6px}.template-card.custom{background:0 0;border-style:dashed;justify-content:center}.custom-plus{color:var(--muted);aspect-ratio:160/88;place-items:center;font-size:30px;line-height:1;display:grid}.assembly-editor{flex-direction:column;gap:10px;display:flex}.subsection-title{margin-top:4px;font-size:12px;font-weight:600}.callout.warn{background:#e8b04a1a;border-color:#e8b04a66}.part-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.part-row{border:1px solid var(--border);border-radius:var(--radius);background:#19191d}.part-row.open{border-color:#ff9a2e}.part-header{text-align:left;background:0 0;border:none;align-items:center;gap:6px;width:100%;padding:6px 8px;display:flex}.part-name{text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:500;overflow:hidden}.chevron{color:var(--muted);width:10px}.part-body{border-top:1px solid var(--border);flex-direction:column;gap:10px;padding:4px 8px 10px;display:flex}.add-part{color:var(--accent)}.multi-list{margin:0;padding-left:18px;line-height:1.6}.paint-row{align-items:center;gap:8px;display:flex}.paint-backdrop{z-index:200}.paint-editor{background:var(--bg);border:1px solid var(--border);border-radius:12px;flex-direction:column;width:calc(100vw - 48px);height:calc(100vh - 48px);display:flex;overflow:hidden}.paint-header{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:12px 16px;display:flex}.paint-header h2{font-size:16px}.inline-check{align-items:center;gap:6px;margin:0 6px;display:flex}.paint-body{flex:1;grid-template-columns:220px 1fr;min-height:0;display:grid}.paint-tools{border-right:1px solid var(--border);background:var(--panel);flex-direction:column;gap:16px;padding:14px;display:flex;overflow-y:auto}.tool-grid{grid-template-columns:1fr 1fr;gap:6px;display:grid}.tool{flex-direction:column;align-items:center;gap:2px;padding:8px 4px 6px;font-size:11.5px;display:flex}.tool svg{width:22px;height:22px}.tool.active{border-color:var(--accent);background:var(--accent-soft);color:#cfe0ff}.current-color{align-items:center;gap:8px;display:flex}.swatch.big{border-radius:6px;width:36px;height:36px;display:inline-block}.current-color input[type=color]{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;width:36px;height:36px;padding:0}.paint-area{background:repeating-conic-gradient(#1b1b1f 0% 25%,#222227 0% 50%) 0 0/24px 24px;place-items:center;min-width:0;min-height:0;display:grid}.paint-stack{position:relative;box-shadow:0 6px 30px #00000080}.paint-stack canvas{image-rendering:auto;width:100%;height:100%;position:absolute;inset:0}.paint-overlay{cursor:crosshair;touch-action:none}.paint-overlay.tool-brush,.paint-overlay.tool-eraser{cursor:none}.paint-swatch{vertical-align:-2px;border:1px solid #ffffff40;border-radius:3px;width:14px;height:14px;display:inline-block}.paint-swatch.picture{background:conic-gradient(#c44,#dc4,#4c6,#48c,#a4c,#c44)}.paint-name{align-items:center;gap:8px;display:inline-flex}.paint-summary span{white-space:nowrap;margin-right:10px}.paint-prices{flex-wrap:wrap;align-items:center;gap:6px;margin-top:-10px;margin-bottom:18px;display:flex}.picture-menu{border:1px solid var(--accent);border-radius:var(--radius);background:var(--accent-soft);flex-direction:column;gap:6px;padding:10px;display:flex}.picture-menu img{object-fit:contain;border-radius:4px;max-width:100%;max-height:100px}.picture-menu button{text-align:left}.text-options,.reference-options{gap:8px}.text-draft{color:#fff;resize:none;field-sizing:content;background:#141418bf;border:1px dashed #4a8dff;border-radius:4px;outline:none;min-width:140px;padding:4px 6px;font:14px Inter,system-ui,sans-serif;position:absolute;transform:translate(-50%,-50%)}.paint-overlay.tool-text{cursor:text}.section{border-top:1px solid var(--border);margin:0 -12px}.section-header{text-align:left;background:0 0;border:none;border-radius:0;align-items:center;gap:6px;width:100%;padding:10px 12px;display:flex}.section-header:hover:not(:disabled){background:#222227}.section-name{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:11px;font-weight:600}.section.open .section-name{color:var(--text)}.section-aside{color:var(--muted);margin-left:auto;font-size:11.5px}.section-body{flex-direction:column;gap:10px;padding:0 12px 14px;display:flex}.piece-actions{flex-wrap:wrap;gap:6px;display:flex}.piece-actions button{padding:3px 9px;font-size:12px}.toast{z-index:300;background:#2a2a31;border:1px solid #45454f;border-radius:8px;align-items:center;gap:10px;padding:8px 8px 8px 16px;animation:.18s ease-out toast-in;display:flex;position:fixed;bottom:56px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0006}.toast button:not(.icon-button){color:#9ec3ff;font-weight:600}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}}.sidebar.left{flex-direction:column;display:flex}.library-search{margin-bottom:8px}.viewport.drop-target:after{content:"Drop to place it here";border:2px dashed var(--accent);color:#cfe0ff;pointer-events:none;background:#4a8dff14;border-radius:10px;place-items:center;font-weight:600;display:grid;position:absolute;inset:8px}.hint-bar{color:#b8b8c4;border:1px solid var(--border);pointer-events:none;background:#141418d1;border-radius:12px;max-width:calc(100% - 240px);padding:4px 10px;font-size:11.5px;position:absolute;bottom:10px;left:10px}.viewport-corner{pointer-events:none;flex-direction:column;align-items:flex-end;gap:6px;display:flex;position:absolute;bottom:10px;right:10px}.coord-readout,.measure-panel{color:#b8b8c4;border:1px solid var(--border);font-variant-numeric:tabular-nums;background:#141418db;border-radius:8px;min-width:200px;padding:5px 10px;font-size:11.5px}.measure-panel{border-color:var(--accent);color:var(--text)}.measure-title{flex-direction:column;margin-bottom:3px;font-weight:600;display:flex}.measure-hint,.measure-note{color:var(--muted);font-weight:400}.coord-row{pointer-events:auto;justify-content:space-between;gap:14px;display:flex}.coord-label{color:var(--muted)}.coord-value{color:var(--text);text-align:right}.measure-total{border-top:1px solid var(--border);margin-top:2px;padding-top:2px;font-weight:600}.viewport.measuring canvas{cursor:crosshair}.viewport-toolbar .measure-button.active{background:var(--accent);border-color:var(--accent);color:#fff}.menu-anchor{position:relative}.menu-anchor>button.active{border-color:var(--accent)}.file-menu>button{background:0 0;border-color:#0000}.menu{background:var(--panel);border:1px solid var(--border);z-index:150;border-radius:8px;flex-direction:column;width:270px;padding:4px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 10px 30px #00000073}.menu button{text-align:left;background:0 0;border:none;flex-direction:column;align-items:flex-start;gap:1px;padding:7px 10px;display:flex}.menu button:hover{background:var(--panel-2)}.menu.left{left:0;right:auto}.menu hr{border:none;border-top:1px solid var(--border);margin:4px 6px}.menu-line{justify-content:space-between;align-items:baseline;gap:12px;width:100%;display:flex}.menu kbd{color:var(--muted);background:0 0;border:none;padding:0;font-size:11px}.file-status{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;max-width:220px;padding:2px 4px;font-size:12px;overflow:hidden}button.file-status:hover{color:var(--text)}.file-status.edited{color:var(--warn);align-items:center;gap:5px;display:inline-flex}.file-status .dot{background:var(--warn);border-radius:50%;width:7px;height:7px}.dialog-backdrop{z-index:500}.modal.dialog{width:min(440px,100vw - 48px)}.dialog h2{margin:0 0 8px;font-size:17px}.dialog p{margin:0 0 16px;line-height:1.45}.dialog-choices{flex-direction:column;gap:6px;display:flex}.dialog-choices button{text-align:left;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 12px;display:flex}.dialog-choices button .small{opacity:.8}.drop-overlay{z-index:450;border:3px dashed var(--accent);pointer-events:none;background:#121214bf;place-items:center;font-size:20px;display:grid;position:fixed;inset:0}.tour-layer{z-index:400;pointer-events:none;position:fixed;inset:0}.tour-spotlight{border:2px solid #ffb547;border-radius:8px;transition:all .2s;position:fixed;box-shadow:0 0 0 9999px #00000061}.tour-dim{background:#00000061;position:fixed;inset:0}.tour-card{pointer-events:auto;background:#1f1f25;border:1px solid #ffb547;border-radius:12px;flex-direction:column;gap:6px;padding:12px 16px;transition:top .2s,left .2s;display:flex;position:fixed;box-shadow:0 14px 40px #0000008c}.tour-card header{justify-content:space-between;align-items:center;display:flex}.tour-progress{color:#ffb547;text-transform:uppercase;letter-spacing:.06em;font-size:11px}.tour-card h3{font-size:16px}.tour-body p,.tour-action p{margin:0 0 6px;line-height:1.45}.tour-action{background:#ffb5471a;border-radius:8px;padding:8px 10px}.tour-try{text-transform:uppercase;letter-spacing:.06em;color:#ffb547;margin-bottom:2px;font-size:11px;display:block}.tour-card.completed .tour-action{color:#9be3b0;background:#5ac87826}.tour-stages{counter-reset:stage;margin:4px 0 0;padding:0;list-style:none}.tour-stages li{counter-increment:stage;color:var(--muted);gap:8px;display:flex}.tour-stages li:before{content:counter(stage);border:1px solid var(--border);text-align:center;border-radius:50%;flex:0 0 18px;height:18px;margin-top:1px;font-size:11px;line-height:16px}.tour-stages li.current{color:var(--text)}.tour-stages li.current:before{color:#ffb547;border-color:#ffb547}.tour-stages li.done:before{content:"✓";color:#9be3b0;border-color:#5ac87899}.tour-stages li p{margin:0 0 4px}.tour-missing{color:#ffb547;border-top:1px dashed #ffb54766;margin-top:6px;padding-top:6px}.tour-card footer{gap:6px;margin-top:4px;display:flex}.welcome-actions{gap:10px;margin-top:16px;display:flex}.welcome-actions button{padding:9px 16px;font-size:14px}.tour-invite{z-index:120;background:#1f1f25;border:1px solid #ffb547;border-radius:12px;flex-direction:column;gap:6px;width:300px;padding:14px 16px;display:flex;position:fixed;bottom:60px;right:316px;box-shadow:0 12px 30px #00000073}.tutorial-view{max-width:760px;line-height:1.5}.tutorial-view>button.primary{margin-bottom:8px}.tutorial-steps{padding-left:22px}.tutorial-steps li{margin-bottom:20px}.tutorial-steps h3{margin-bottom:4px}.tutorial-steps p{margin:0 0 6px}.tutorial-try{background:#ffb54714;border-radius:8px;margin-bottom:6px;padding:6px 10px}.tutorial-view h2{margin:20px 0 10px}.tutorial-ref h3{margin:14px 0 4px}.paint-row{flex-wrap:wrap}.paint-faces{flex-wrap:wrap;gap:4px;display:flex}.paint-count{background:var(--accent);color:#fff;border-radius:8px;margin-left:6px;padding:0 5px;font-size:10.5px}.area-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.seating-block summary{align-items:center;gap:4px;display:flex}.view-here{margin-left:auto;font-size:11.5px;font-weight:500}.seat-picker{gap:6px;padding:6px 8px 6px 14px}.seat-picker select{font:inherit;color:var(--text);border:1px solid var(--border);background:#141417;border-radius:6px;padding:3px 6px}.measurements{background:var(--panel-2,#ffffff0a);border-radius:var(--radius);grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:4px 12px;margin:6px 0 10px;padding:8px;display:grid}.measurements div{flex-direction:column;display:flex}.measurements dt{color:var(--muted);font-size:11px}.measurements dd{margin:0;font-weight:600}.select-box{border:1px dashed var(--accent);background:var(--accent-soft);pointer-events:none;z-index:5;position:absolute}.group-badge{background:var(--accent-soft);color:var(--accent)}.param-repeat-title{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);justify-content:space-between;align-items:baseline;margin:14px 0 4px;font-size:12px;font-weight:600;display:flex}.param-group-head{border-top:1px solid var(--border);justify-content:space-between;align-items:baseline;margin:10px 0 2px;padding-top:8px;font-weight:600;display:flex}.param-add{margin:6px 0 12px;display:block}.toolbar-sep{background:var(--border);flex-shrink:0;width:1px;height:22px;margin:0 4px}.group-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:11px;font-weight:600}.panel-group{flex-direction:column;gap:8px;display:flex}.panel-group+.panel-group{border-top:1px solid var(--border);padding-top:14px}.toolgroup{border:1px solid var(--border);border-radius:var(--radius);background:#1c1c20e6;align-items:center;gap:2px;padding:2px;display:flex}.toolgroup .segmented,.toolgroup .toolbar-field{background:0 0;border-color:#0000}.toolgroup .segmented{padding:0}.viewport-toolbar .toolgroup .ghost-button:not(.active){background:0 0;border-color:#0000}.viewport-toolbar .toolgroup .ghost-button:not(.active):hover{background:#2c2c33}.action-row{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;gap:6px;padding:6px;display:flex}.action-row button.danger{margin-left:auto}.tool-tray{border:1px solid var(--border);border-radius:var(--radius);background:#ffffff05;flex-direction:column;align-items:flex-start;gap:6px;padding:8px 10px;display:flex}.tool-tray:has(>.group-label:only-child){display:none}.add-row button{background:0 0;border-style:dashed}.mode-switch .segmented button.active{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.workshop-palette>*+*{border-top:1px solid var(--border);padding-top:14px}.workshop-palette .subsection-title{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 8px;font-size:11px}.workshop-palette>.hole-choice{border:1px solid var(--border);border-radius:var(--radius);background:#ffffff05;flex-direction:column;gap:6px;margin-top:-6px;padding:8px 10px;display:flex}.workshop-palette>.hole-choice .subsection-title{margin:0}.sketch-panel .sketch-finish{border-top:1px solid var(--border);padding-top:10px}.library-group+.library-group{border-top:1px solid var(--border);margin-top:12px;padding-top:2px}.workshop-body{flex:1;grid-template-columns:220px 1fr 360px;min-height:0;display:grid}.workshop-palette .tool svg path{stroke-width:1.6px}.shape-list{flex-direction:column;gap:2px;margin:6px 0 0;padding:0;list-style:none;display:flex}.shape-row{text-align:left;background:0 0;border-color:#0000;align-items:center;gap:8px;width:100%;padding:4px 8px;display:flex}.shape-row.active{border-color:var(--accent);background:var(--accent-soft)}.color-dot.hole{background:repeating-linear-gradient(45deg,#8a8f99 0 2px,#0000 2px 4px)}.workshop-keys table{margin-top:6px;font-size:11.5px}.workshop-stage{min-width:0;min-height:0;position:relative}.workshop-canvas{position:absolute;inset:0}.workshop-views{position:absolute;top:10px;left:10px}.workshop-hint{pointer-events:none;text-shadow:0 1px 2px #000;position:absolute;bottom:8px;left:10px;right:10px}.workshop-inspector{border-left:1px solid var(--border);background:var(--panel);padding:14px;overflow-y:auto}.workshop-inspector .inspector{flex-direction:column;gap:10px;display:flex}.field-grid.three{grid-template-columns:1fr 1fr 1fr}.turn-fields{gap:6px;display:grid}.turn-fields .field{grid-template-columns:100px 1fr;align-items:center;display:grid}.shapes-summary{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.workshop{--sketch-fill:#a08c7473;--sketch-add:#5ba06a66;--sketch-cut:#e07a3a66}.sketch-layer{position:absolute;inset:0;overflow:hidden}.sketch-svg{touch-action:none;cursor:crosshair;-webkit-user-select:none;user-select:none;display:block;position:absolute;inset:0}.sketch-svg.tool-select{cursor:default}.sketch-grid{stroke-width:1px}.sketch-grid.minor{stroke:#ffffff0f}.sketch-grid.major{stroke:#ffffff21}.sketch-grid.axis{stroke:#ffffff4d}.sketch-face{fill:#4a8dff0f;stroke:var(--accent);stroke-width:1.5px}.sketch-nogo{fill:#0000004d}.sketch-bar{border:1px solid var(--accent);z-index:2;background:#1c1c20eb;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 10px;display:flex;position:absolute;top:10px;left:10px;right:10px}.sketch-bar strong{flex:1;font-weight:600}.sketch-layer .workshop-hint{bottom:8px}.plane-options{flex-direction:column;gap:4px;display:flex}.plane-options button{text-align:left}.plane-options button.active{border-color:var(--accent);background:var(--accent-soft)}.plane-chooser,.sketch-panel{flex-direction:column;gap:10px;display:flex}.sketch-finish{margin-top:6px}.sketch-axis{stroke:var(--warn);stroke-width:1.5px;stroke-dasharray:8 5}.sketch-note{fill:var(--muted);font-size:12px}.sketch-region{pointer-events:none}.sketch-entity{fill:#0000;stroke:#ececf1;stroke-width:1.5px;filter:drop-shadow(0 0 1px #000000f2)drop-shadow(0 0 2px #0009)}.tool-select .sketch-entity{cursor:move}.sketch-svg:not(.tool-select) .sketch-entity{pointer-events:none}.sketch-entity.selected{stroke:var(--accent);stroke-width:2.5px}.sketch-entity.draft{stroke:var(--accent);stroke-dasharray:6 4;pointer-events:none}.sketch-handle{fill:#fff;stroke:var(--accent);stroke-width:2px;cursor:grab}.sketch-handle.smooth{fill:var(--accent)}.sketch-handle.first{fill:var(--accent-soft)}.sketch-cursor{fill:var(--accent);pointer-events:none}.sketch-measure{stroke:var(--accent);stroke-width:1px;stroke-dasharray:3 3;pointer-events:none}.sketch-dim{fill:#fff;paint-order:stroke;stroke:#17171a;stroke-width:4px;stroke-linejoin:round;pointer-events:none;font-size:11.5px}.corner-list{flex-direction:column;gap:6px;display:flex}.corner-head,.corner-row{grid-template-columns:16px minmax(0,1fr) minmax(0,1fr) 24px 24px;align-items:center;gap:6px;display:grid}.corner-head{color:var(--muted);padding:0 7px;font-size:11px}.corner{border:1px solid var(--border);border-radius:var(--radius);background:#ffffff05;flex-direction:column;gap:5px;padding:6px;display:flex}.corner-n{text-align:center;font-weight:600}.side-row{color:var(--muted);grid-template-columns:30px 44px minmax(0,1fr) repeat(3,auto);align-items:center;gap:6px;font-size:11.5px;display:grid}.side-name{white-space:nowrap}.corner-list .lock-field .input{padding:4px 6px}.entity-fields{flex-direction:column;gap:8px;display:flex}.workshop-pick{background:var(--panel);border:1px solid var(--accent);border-radius:8px;align-items:center;gap:8px;padding:8px 12px;display:flex;position:absolute;top:10px;left:50%;transform:translate(-50%)}.shape-row .shape-on{font-size:11px}.sketch-entity.free,.sketch-hole.free circle,.sketch-hole.free line{stroke:#6aa8ff}.sketch-entity.selected,.sketch-hole.selected circle,.sketch-hole.selected line{stroke:#ff5fd2;stroke-width:2.5px}.sketch-entity.draft{stroke:#ff5fd2;stroke-width:2px}.sketch-free-side{fill:none;stroke:#6aa8ff;stroke-width:2.5px;pointer-events:none;filter:drop-shadow(0 0 1px #000000f2)}.sketch-free-side.selected{stroke-dasharray:6 4}.sketch-corner{fill:#ececf1;stroke:#17171a;stroke-width:1px;pointer-events:none}.sketch-corner.free{fill:#17171a;stroke:#6aa8ff;stroke-width:2px}.sketch-hover,.sketch-hover-line{fill:none;stroke:#fff;stroke-width:10px;stroke-opacity:.6;stroke-linejoin:round;stroke-linecap:round;pointer-events:none}.sketch-hover{fill:#ffffff26;stroke-width:2px;stroke-opacity:.9}.corner-row.hover,.side-row.hover,.hover-wrap.hover{background:var(--accent-soft);box-shadow:0 0 0 3px var(--accent-soft);border-radius:4px}.shape-row.sketch-part.hover{border-color:var(--accent)}.sketch-bend{fill:#17171a;stroke:#ff5fd2;stroke-width:2px;cursor:grab}.sketch-bend.arc{fill:#ff5fd2}.sketch-hole circle,.sketch-hole line{fill:none;stroke:#ececf1;stroke-width:1.5px}.sketch-hole line{stroke-width:1px;stroke-dasharray:3 2}.sketch-hole circle.sink{stroke-dasharray:4 3}.sketch-hole circle.hit{fill:#00000059;stroke:none}.tool-select .sketch-hole{cursor:move}.sketch-svg:not(.tool-select) .sketch-hole{pointer-events:none}.sketch-dimension line,.sketch-dimension .arc{fill:none;stroke:#f0a35e;stroke-width:1.2px;pointer-events:none}.sketch-dimension line.ext{stroke-width:.8px;stroke-dasharray:2 2}.sketch-dimension text{fill:#ffd2a6;paint-order:stroke;stroke:#17171a;stroke-width:4px;stroke-linejoin:round;font-size:12px;font-weight:600}.sketch-dimension .rel{fill:#17171a;stroke:#f0a35e}.sketch-dimension .dot{fill:#f0a35e}.tool-select .sketch-dimension,.tool-dimension .sketch-dimension{cursor:move}.sketch-dimension.selected line{stroke:#ffb547;stroke-width:2px}.sketch-dimension.selected text{fill:#fff}.sketch-pick{fill:#ffb54740;stroke:#ffb547;stroke-width:2px;pointer-events:none}.sketch-pick-line{stroke:#ffb547;stroke-width:3px;pointer-events:none}.lock-field{align-items:center;gap:2px;display:flex}.lock-field .input{flex:1;min-width:0}.lock-field.locked .input{border-color:#f0a35e}.icon-button.lock,.icon-button.rel{opacity:.55;padding:2px 4px;font-size:11px;line-height:1}.icon-button.lock.on,.icon-button.rel.on{opacity:1;background:#f0a35e26;border-color:#f0a35e}.rel-cell{white-space:nowrap}.free-dot{color:#6aa8ff;margin-left:auto;font-size:11px}.callout.ok{background:#5ba06a1f;border-color:#5ba06a99}.dim-status{flex-direction:column;align-items:flex-start;gap:4px}.badge.warn{border-color:var(--warn);color:var(--warn)}.badge.ok{color:#9fd6a8;border-color:#5ba06acc}.hole-choice,.hole-row{flex-direction:column;gap:6px;display:flex}.workshop-palette .tool-grid .tool:disabled{opacity:.35}
