@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";:root{--bg:#fff;--bg-page:#f7f8fa;--bg-hover:#f0f1f4;--bg-active:#e8eaef;--border:#e2e4e9;--border-light:#eff0f3;--blue:#2563eb;--blue-light:#dbeafe;--blue-bg:#eff6ff;--orange:#ea580c;--orange-light:#ffedd5;--purple:#7c3aed;--purple-light:#ede9fe;--green:#16a34a;--green-light:#dcfce7;--gold:#ca8a04;--gold-light:#fef9c3;--red:#dc2626;--cyan:#0891b2;--cyan-light:#cffafe;--text:#1a1a2e;--text-secondary:#525266;--text-muted:#8e8ea0;--text-placeholder:#b0b0bf;--font:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--radius:8px;--radius-sm:6px;--radius-xs:4px;--radius-lg:12px;--shadow-sm:0 1px 2px #0000000d;--shadow:0 1px 3px #00000014, 0 1px 2px #0000000a;--shadow-lg:0 4px 12px #00000014;--shell-header-h:44px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;overflow:hidden}body{font-family:var(--font);background:var(--bg-page);color:var(--text);-webkit-font-smoothing:antialiased;font-size:14px}@keyframes pulse-ring{0%{r:5;opacity:.7}to{r:16;opacity:0}}@keyframes bloom-ring{0%{r:8;opacity:.6}to{r:22;opacity:0}}@keyframes float-up{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-30px)}}@keyframes fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-in{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}@keyframes glow-pulse{0%,to{filter:drop-shadow(0 0 3px #2563eb4d)}50%{filter:drop-shadow(0 0 8px #2563eb80)}}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.svg-upload{border:2px dashed var(--border);border-radius:var(--radius);cursor:pointer;background:var(--bg-page);flex-direction:column;align-items:center;gap:6px;margin:12px;padding:24px 16px;transition:all .15s;display:flex}.svg-upload:hover{border-color:var(--blue);background:var(--blue-bg)}.upload-icon{color:var(--text-muted)}.svg-upload:hover .upload-icon{color:var(--blue)}.upload-text{color:var(--text-secondary);font-size:13px;font-weight:600}.upload-sub{color:var(--text-muted);font-size:11px}.layer-panel{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.lp-header{border-bottom:1px solid var(--border-light);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.lp-header h3{text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);font-size:11px;font-weight:600}.lp-actions{gap:4px;display:flex}.lp-btn{font-family:var(--font);border:1px solid var(--border);background:var(--bg);color:var(--text-muted);cursor:pointer;border-radius:3px;padding:2px 6px;font-size:10px;font-weight:500}.lp-btn:hover{background:var(--bg-hover);color:var(--text-secondary)}.lp-btn-danger:hover{color:#dc2626;background:#fef2f2;border-color:#fca5a5}.lp-list{flex:1;padding:4px 0;overflow-y:auto}.lp-footer{color:var(--text-muted);border-top:1px solid var(--border-light);flex-shrink:0;padding:8px 14px;font-size:11px}.layer-row{border-bottom:1px solid var(--border-light)}.layer-row.inactive{opacity:.55}.layer-row-main{cursor:pointer;align-items:center;gap:8px;padding:7px 14px;transition:background .1s;display:flex}.layer-row-main:hover,.layer-row.expanded .layer-row-main{background:var(--bg-hover)}.layer-eye{cursor:pointer;text-align:center;width:20px;color:var(--text-muted);background:0 0;border:none;padding:0;font-size:12px}.layer-swatch{border:1px solid #0000001a;border-radius:3px;flex-shrink:0;width:14px;height:14px}.layer-name-col{flex:1;align-items:center;gap:6px;min-width:0;display:flex}.layer-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:500;overflow:hidden}.layer-cap{color:var(--text-muted);flex-shrink:0;font-size:10px}.layer-badge-off{color:var(--text-muted);background:var(--bg-active);letter-spacing:.5px;border-radius:3px;padding:1px 5px;font-size:9px;font-weight:600}.layer-detail{background:var(--bg-page);border-top:1px solid var(--border-light);flex-direction:column;gap:8px;padding:8px 14px 12px;display:flex}.layer-detail label{color:var(--text-muted);flex-direction:column;gap:3px;font-size:11px;font-weight:500;display:flex}.layer-detail input[type=text],.layer-detail input[type=number],.layer-detail select{font-family:var(--font);border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--bg);color:var(--text);outline:none;padding:5px 8px;font-size:12px}.layer-detail input:focus,.layer-detail select:focus{border-color:var(--blue)}.layer-detail input[type=range]{width:100%}.color-row{align-items:center;gap:6px;display:flex}.color-row input[type=color]{border:1px solid var(--border);cursor:pointer;border-radius:4px;width:30px;height:26px;padding:0}.color-hex{flex:1}.layer-actions{gap:6px;margin-top:4px;display:flex}.layer-toggle-btn{font-family:var(--font);border-radius:var(--radius-xs);border:1px solid var(--border);background:var(--bg);color:var(--text-muted);cursor:pointer;flex:1;padding:5px 0;font-size:11px;font-weight:600}.layer-toggle-btn.is-active{color:#16a34a;background:#dcfce7;border-color:#86efac}.layer-delete-btn{font-family:var(--font);border-radius:var(--radius-xs);border:1px solid var(--border);background:var(--bg);color:var(--text-muted);cursor:pointer;padding:5px 10px;font-size:11px;font-weight:500}.layer-delete-btn:hover{color:#dc2626;background:#fef2f2;border-color:#fca5a5}.node-panel{flex-direction:column;min-height:0;display:flex;overflow:hidden}.np-header{border-bottom:1px solid var(--border-light);flex-shrink:0;padding:10px 14px}.np-header h3{text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);font-size:11px;font-weight:600}.np-toolbar{flex-wrap:wrap;flex-shrink:0;gap:4px;padding:8px 14px;display:flex}.np-add-btn{font-family:var(--font);border-radius:var(--radius-xs);border:1px solid var(--border);background:var(--bg);color:var(--text-secondary);cursor:pointer;padding:4px 10px;font-size:11px;font-weight:600;transition:all .1s}.np-add-btn:hover{background:var(--bg-hover);color:var(--btn-color);border-color:var(--btn-color)}.np-add-btn.placing{background:color-mix(in srgb, var(--btn-color) 10%, white);border-color:var(--btn-color);color:var(--btn-color)}.np-placing-hint{color:var(--blue);background:var(--blue-bg);border-bottom:1px solid var(--border-light);padding:6px 14px;font-size:11px;font-weight:500}.np-list{flex:1;overflow-y:auto}.np-empty{color:var(--text-placeholder);text-align:center;padding:20px 14px;font-size:12px}.node-row{border-bottom:1px solid var(--border-light)}.node-row-main{cursor:pointer;align-items:center;gap:8px;padding:7px 14px;transition:background .1s;display:flex}.node-row-main:hover,.node-row.expanded .node-row-main{background:var(--bg-hover)}.node-type-dot{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:9px;font-weight:700;display:flex}.node-name-col{flex:1;min-width:0}.node-row-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:500;display:block;overflow:hidden}.node-row-meta{color:var(--text-muted);font-size:10px}.node-detail{background:var(--bg-page);border-top:1px solid var(--border-light);flex-direction:column;gap:8px;padding:8px 14px 12px;display:flex}.node-detail label{color:var(--text-muted);flex-direction:column;gap:3px;font-size:11px;font-weight:500;display:flex}.node-detail input[type=text],.node-detail input[type=number],.node-detail select{font-family:var(--font);border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--bg);color:var(--text);outline:none;padding:5px 8px;font-size:12px}.node-detail input:focus,.node-detail select:focus{border-color:var(--blue)}.access-section{flex-direction:column;gap:4px;display:flex}.access-header{color:var(--text-muted);justify-content:space-between;align-items:center;font-size:11px;font-weight:500;display:flex}.access-toggle{font-family:var(--font);color:var(--blue);cursor:pointer;background:0 0;border:none;font-size:10px;font-weight:500}.access-list{border:1px solid var(--border-light);border-radius:var(--radius-xs);background:var(--bg);flex-direction:column;gap:2px;max-height:120px;padding:4px;display:flex;overflow-y:auto}.access-item{color:var(--text);cursor:pointer;align-items:center;gap:6px;padding:2px 0;font-size:11px;display:flex;flex-direction:row!important}.access-item input[type=checkbox]{margin:0}.access-dot{border-radius:2px;flex-shrink:0;width:8px;height:8px}.access-name{flex:1}.access-parent{color:var(--text-muted);background:var(--bg-active);border-radius:2px;margin-left:4px;padding:0 4px;font-size:9px}.node-actions{gap:6px;margin-top:4px;display:flex}.node-toggle-btn{font-family:var(--font);border-radius:var(--radius-xs);border:1px solid var(--border);background:var(--bg);color:var(--text-muted);cursor:pointer;flex:1;padding:5px 0;font-size:11px;font-weight:600}.node-toggle-btn.is-active{color:#16a34a;background:#dcfce7;border-color:#86efac}.node-delete-btn{font-family:var(--font);border-radius:var(--radius-xs);border:1px solid var(--border);background:var(--bg);color:var(--text-muted);cursor:pointer;padding:5px 10px;font-size:11px;font-weight:500}.node-delete-btn:hover{color:#dc2626;background:#fef2f2;border-color:#fca5a5}.venue-svg{width:100%;height:100%;transition:transform .2s;display:block}.venue-svg.placing{cursor:crosshair}.comp-layer{transition:opacity .15s}.comp-layer:hover{filter:brightness(1.08)}.comp-layer.selected{filter:brightness(1.1);stroke:var(--blue);stroke-width:2px}.comp-layer.layer-inactive{filter:saturate(.3)brightness(.95)}.rn-marker{transition:transform .1s}.rn-marker:hover circle{r:8}.rn-selected circle:first-of-type{stroke:var(--blue);stroke-width:2.5px}.rn-label{fill:#fff;pointer-events:none;font-size:5.5px;font-weight:700;font-family:var(--font)}.pulse-ring-anim{animation:1.5s ease-out infinite pulse-ring}.bloom-ring-anim{animation:1.2s ease-out infinite bloom-ring}.rule-builder{height:100%;min-height:0;display:flex}.rb-sidebar{border-right:1px solid var(--border);background:var(--bg);flex-direction:column;flex-shrink:0;width:240px;min-height:0;display:flex}.rb-header{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.rb-header h3{color:var(--text-secondary);font-size:12px;font-weight:600}.rb-add{font-family:var(--font);border-radius:var(--radius-xs);border:1px solid var(--blue);background:var(--blue-bg);color:var(--blue);cursor:pointer;padding:4px 10px;font-size:11px;font-weight:600}.rb-add:hover{background:var(--blue-light)}.rb-list{flex:1;overflow-y:auto}.rb-item{cursor:pointer;border-bottom:1px solid var(--border-light);align-items:center;gap:8px;padding:8px 14px;transition:background .1s;display:flex}.rb-item:hover{background:var(--bg-hover)}.rb-item.selected{background:var(--blue-bg)}.rb-item.inactive{opacity:.5}.rb-toggle{cursor:pointer;color:var(--green);background:0 0;border:none;padding:0;font-size:10px}.rb-item.inactive .rb-toggle{color:var(--text-muted)}.rb-item-info{flex:1;min-width:0}.rb-item-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:500;display:block;overflow:hidden}.rb-item-meta{color:var(--text-muted);font-size:10px}.rb-empty{color:var(--text-muted);text-align:center;padding:24px 14px;font-size:12px}.rb-editor-area{overscroll-behavior:contain;background:var(--bg-page);flex:1;min-height:0;overflow:hidden auto}.rb-no-selection{box-sizing:border-box;text-align:center;height:100%;min-height:min(320px,100%);color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:32px 48px;display:flex}.rb-no-icon{opacity:.3;font-size:32px;line-height:1}.rb-no-title{color:var(--text-secondary);text-wrap:balance;max-width:28rem;font-size:15px;font-weight:600}.rb-no-sub{text-wrap:balance;max-width:28rem;font-size:12px}.rule-editor{flex-direction:column;gap:16px;max-width:680px;padding:20px;display:flex}.re-label{color:var(--text-muted);flex-direction:column;gap:3px;font-size:11px;font-weight:500;display:flex}.re-label input,.re-label select,.re-label textarea{font-family:var(--font);border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--bg);color:var(--text);resize:vertical;outline:none;padding:6px 10px;font-size:13px}.re-label input:focus,.re-label select:focus,.re-label textarea:focus{border-color:var(--blue)}.re-label-full{grid-column:1/-1}.re-section{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:12px}.re-section-header{color:var(--text-secondary);justify-content:space-between;align-items:center;margin-bottom:10px;font-size:12px;font-weight:600;display:flex}.re-logic-toggle{gap:2px;display:flex}.re-logic-btn{font-family:var(--font);border:1px solid var(--border);background:var(--bg);color:var(--text-muted);cursor:pointer;border-radius:3px;padding:2px 8px;font-size:10px;font-weight:600}.re-logic-btn.active{background:var(--blue-bg);border-color:var(--blue);color:var(--blue)}.cond-row{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:6px;display:flex}.cond-select{font-family:var(--font);border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--bg);color:var(--text);outline:none;padding:5px 8px;font-size:12px}.cond-target{max-width:140px}.cond-op{max-width:90px}.cond-input{font-family:var(--font);border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--bg);color:var(--text);outline:none;width:60px;padding:5px 8px;font-size:12px}.cond-input:focus{border-color:var(--blue)}.cond-input-sm{width:52px}.cond-time-range{align-items:center;gap:4px;display:flex}.cond-sep{color:var(--text-muted);font-size:12px}.cond-unit{color:var(--text-muted);flex-shrink:0;font-size:11px}.cond-del{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:2px 4px;font-size:14px}.cond-del:hover{color:#dc2626;background:#fef2f2}.re-add-cond{font-family:var(--font);color:var(--blue);border:1px dashed var(--border);border-radius:var(--radius-xs);cursor:pointer;background:0 0;width:100%;margin-top:4px;padding:5px 10px;font-size:11px;font-weight:500}.re-add-cond:hover{border-color:var(--blue);background:var(--blue-bg)}.re-action-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.re-target-grid{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px;display:grid}.re-access{margin-top:4px}.re-access-header{color:var(--text-muted);justify-content:space-between;align-items:center;margin-bottom:4px;font-size:11px;font-weight:500;display:flex}.re-access-toggle{font-family:var(--font);color:var(--blue);cursor:pointer;background:0 0;border:none;font-size:10px}.re-access-list{border:1px solid var(--border-light);border-radius:var(--radius-xs);background:var(--bg-page);flex-direction:column;gap:2px;max-height:120px;padding:4px;display:flex;overflow-y:auto}.re-access-item{color:var(--text);cursor:pointer;align-items:center;gap:6px;padding:2px 0;font-size:11px;display:flex;flex-direction:row!important}.re-access-dot{border-radius:2px;flex-shrink:0;width:8px;height:8px}.re-footer{justify-content:flex-end;gap:8px;display:flex}.re-btn-dup{font-family:var(--font);border-radius:var(--radius-xs);border:1px solid var(--border);background:var(--bg);color:var(--text-secondary);cursor:pointer;padding:5px 12px;font-size:11px}.re-btn-dup:hover{background:var(--bg-hover)}.re-btn-del{font-family:var(--font);border-radius:var(--radius-xs);border:1px solid var(--border);background:var(--bg);color:var(--text-muted);cursor:pointer;padding:5px 12px;font-size:11px}.re-btn-del:hover{color:#dc2626;background:#fef2f2;border-color:#fca5a5}.sim-ctrl{flex-direction:column;gap:14px;padding:16px;display:flex}.sc-header{justify-content:space-between;align-items:center;display:flex}.sc-header h3{color:var(--text);font-size:13px;font-weight:600}.sc-status{border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600}.sc-idle{color:#64748b;background:#f1f5f9}.sc-running{background:var(--blue-light);color:var(--blue)}.sc-finished{color:#16a34a;background:#dcfce7}.sc-progress{align-items:center;gap:10px;display:flex}.sc-progress-bar{background:var(--border);border-radius:3px;flex:1;height:6px;overflow:hidden}.sc-progress-fill{background:linear-gradient(90deg, var(--blue), #ca8a04);border-radius:3px;height:100%;transition:width .3s}.sc-progress-label{color:var(--text-muted);white-space:nowrap;font-size:11px}.sc-section{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px}.sc-duration-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.sc-duration-input{font-family:var(--font);border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--bg-page);width:60px;color:var(--text);outline:none;padding:5px 8px;font-size:13px;font-weight:600}.sc-duration-input:focus{border-color:var(--blue)}.sc-duration-input:disabled{opacity:.5}.sc-duration-unit{color:var(--text-muted);font-size:12px}.sc-duration-presets{gap:3px;margin-left:auto;display:flex}.sc-preset{font-family:var(--font);border:1px solid var(--border);background:var(--bg);color:var(--text-muted);cursor:pointer;border-radius:3px;padding:3px 7px;font-size:10px;font-weight:500}.sc-preset:hover:not(:disabled){color:var(--text-secondary);border-color:#c0c2c8}.sc-preset.active{background:var(--blue-bg);border-color:var(--blue);color:var(--blue)}.sc-preset:disabled{opacity:.5;cursor:default}.sc-section-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.4px;margin-bottom:8px;font-size:11px;font-weight:600}.sc-speed-row{gap:4px;display:flex}.sc-speed-btn{font-family:var(--font);border-radius:var(--radius-xs);border:1px solid var(--border);background:var(--bg);color:var(--text-muted);cursor:pointer;flex:1;padding:5px 0;font-size:11px;font-weight:500}.sc-speed-btn:hover:not(:disabled){color:var(--text-secondary);border-color:#c0c2c8}.sc-speed-btn.active{background:var(--blue-bg);border-color:var(--blue);color:var(--blue)}.sc-speed-btn:disabled{opacity:.5;cursor:default}.sc-slider{color:var(--text-secondary);grid-template-columns:1fr auto;align-items:center;gap:2px 8px;margin-bottom:8px;font-size:12px;display:grid}.sc-slider-value{color:var(--blue);text-align:right;font-size:12px;font-weight:600}.sc-slider input[type=range]{width:100%;accent-color:var(--blue);grid-column:1/-1}.sc-param-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.sc-param-grid .sc-param-full{grid-column:1/-1}.sc-hint{color:var(--text-muted);margin:8px 0 0;font-size:10px;line-height:1.4}.sc-param{color:var(--text-muted);flex-direction:column;gap:3px;font-size:11px;font-weight:500;display:flex}.sc-param-label{font-size:10px}.sc-param-row{align-items:center;gap:4px;display:flex}.sc-param-row input{font-family:var(--font);border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--bg-page);width:100%;color:var(--text);outline:none;padding:5px 8px;font-size:12px;font-weight:500}.sc-param-row input:focus{border-color:var(--blue)}.sc-param-row input:disabled{opacity:.5}.sc-param-unit{color:var(--text-muted);flex-shrink:0;font-size:11px}.sc-row-2{margin-bottom:8px}.sc-summary{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.sc-stat{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-xs);text-align:center;padding:8px}.sc-stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;font-size:10px;display:block}.sc-stat-value{color:var(--text);margin-top:2px;font-size:16px;font-weight:700;display:block}.sc-actions{gap:8px;display:flex}.sc-run-btn{font-family:var(--font);border-radius:var(--radius);background:var(--blue);color:#fff;cursor:pointer;border:none;flex:1;padding:10px 0;font-size:13px;font-weight:600}.sc-run-btn:hover{background:#1d4ed8}.sc-stop-btn{font-family:var(--font);border-radius:var(--radius);border:1px solid var(--border);background:var(--bg);color:var(--text-secondary);cursor:pointer;flex:1;padding:10px 0;font-size:13px;font-weight:600}.sc-stop-btn:hover{background:var(--bg-hover)}.sim-results{flex-direction:column;gap:16px;display:flex}.sr-headline{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.sr-hl-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);text-align:center;padding:16px}.sr-hl-primary{border-top:3px solid #ca8a04}.sr-hl-green{border-top:3px solid #16a34a}.sr-hl-label{text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);font-size:10px;font-weight:600}.sr-hl-value{color:var(--text);margin:4px 0 2px;font-size:26px;font-weight:700}.sr-hl-primary .sr-hl-value{color:#ca8a04}.sr-hl-green .sr-hl-value{color:#16a34a}.sr-hl-sub{color:var(--text-muted);font-size:11px;line-height:1.35}.sr-hl-sub-detail{color:var(--text-muted);opacity:.95;margin-top:4px;font-size:10px;display:block}.sr-budget-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.sr-budget-title{color:var(--text-secondary);margin-bottom:10px;font-size:12px;font-weight:600}.sr-budget-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.sr-budget-item{background:var(--bg-page);border-radius:var(--radius-xs);text-align:center;padding:8px}.sr-budget-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;font-size:9px;font-weight:500;display:block}.sr-budget-value{color:var(--text);margin-top:4px;font-size:16px;font-weight:700;display:block}.sr-budget-note{color:#b45309;border-radius:var(--radius-xs);background:#fffbeb;border:1px solid #fde68a;margin-top:10px;padding:8px;font-size:11px}.sr-comparison{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.sr-comp-title{color:var(--text);margin-bottom:4px;font-size:13px;font-weight:600}.sr-comp-legend{color:var(--text-muted);gap:16px;margin-bottom:12px;font-size:11px;display:flex}.sr-leg-base{color:#94a3b8}.sr-leg-uplift{color:#ca8a04}.comp-bar{margin-bottom:10px}.comp-label{color:var(--text-secondary);margin-bottom:3px;font-size:11px;font-weight:500}.comp-visual{margin-bottom:3px}.comp-track{background:var(--bg-page);border-radius:4px;height:20px;display:flex;overflow:hidden}.comp-base{background:#cbd5e1;transition:width .6s}.comp-uplift{background:linear-gradient(90deg,#f59e0b,#ca8a04);transition:width .6s}.comp-values{align-items:center;gap:6px;font-size:12px;display:flex}.comp-val-base{color:var(--text-muted)}.comp-val-arrow{color:var(--text-muted);font-size:10px}.comp-val-total{color:var(--text);font-weight:600}.comp-val-change{color:#16a34a;background:#dcfce7;border-radius:8px;padding:1px 6px;font-size:10px;font-weight:600}.sr-interaction-kpis{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.sr-ik-title{color:var(--text-secondary);margin-bottom:10px;font-size:12px;font-weight:600}.sr-ik-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.sr-ik{text-align:center;background:var(--bg-page);border-radius:var(--radius-xs);padding:8px}.sr-ik-value{color:var(--text);font-size:18px;font-weight:700;display:block}.sr-ik-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;margin-top:2px;font-size:9px;font-weight:500;display:block}.sr-table-wrap{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:14px;overflow-x:auto}.sr-table-title{color:var(--text-secondary);margin-bottom:8px;font-size:12px;font-weight:600}.sr-table{border-collapse:collapse;width:100%;font-size:12px}.sr-table th{text-align:left;text-transform:uppercase;letter-spacing:.3px;color:var(--text-muted);border-bottom:1px solid var(--border);padding:6px 8px;font-size:10px;font-weight:600}.sr-table td{border-bottom:1px solid var(--border-light);color:var(--text-secondary);padding:6px 8px}.sr-td-name{color:var(--text);font-weight:500}.sr-td-rev{color:#ca8a04;font-weight:600}.heatmap-overlay{pointer-events:none}.sim-timeline{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.st-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.st-title{color:var(--text-secondary);font-size:12px;font-weight:600}.st-range{color:var(--text-muted);font-size:10px}.st-chart{align-items:flex-end;gap:1px;height:80px;padding:0 1px;display:flex}.st-bar-col{cursor:pointer;border-radius:1px;flex:1;align-items:flex-end;height:100%;transition:background .1s;display:flex}.st-bar-col:hover{background:#2563eb0f}.st-bar-col.st-selected{background:#2563eb1a}.st-bar{background:linear-gradient(180deg, var(--blue), #60a5fa);border-radius:1px 1px 0 0;width:100%;min-height:1px;transition:height .3s}.st-bar-col:hover .st-bar{background:#ca8a04}.st-bar-col.st-selected .st-bar{background:linear-gradient(180deg, #1d4ed8, var(--blue))}.st-axis{color:var(--text-muted);justify-content:space-between;margin-top:4px;font-size:9px;display:flex}.st-detail{background:var(--bg-page);border:1px solid var(--border);border-radius:var(--radius-sm);margin-top:10px;padding:10px 12px;animation:.15s fade-in}.st-detail-header{align-items:center;gap:10px;margin-bottom:8px;display:flex}.st-detail-time{color:var(--text);font-size:12px;font-weight:600}.st-detail-total{color:var(--text-muted);flex:1;font-size:11px}.st-detail-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:0 2px;font-size:14px}.st-detail-close:hover{background:var(--bg-hover);color:var(--text)}.st-detail-rules{flex-direction:column;gap:3px;display:flex}.st-rule-row{background:var(--bg);border-radius:var(--radius-xs);border:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:4px 8px;display:flex}.st-rule-name{color:var(--text);font-size:11px;font-weight:500}.st-rule-count{color:var(--text-muted);font-size:11px;font-weight:500}.app{background:var(--bg-page);flex-direction:column;flex:1;height:100%;min-height:0;display:flex}.topbar{background:var(--bg);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;height:52px;padding:0 20px;display:flex}.topbar-left{align-items:center;gap:16px;display:flex}.back-btn{width:32px;height:32px;color:var(--text);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.back-btn:hover{background:var(--bg-hover)}.topbar-title h1{color:var(--text);font-size:15px;font-weight:600;line-height:1.2}.topbar-title p{color:var(--text-muted);font-size:12px}.topbar-tabs{align-items:stretch;gap:0;height:100%;display:flex}.topbar-tab{font-family:var(--font);color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 16px;font-size:13px;font-weight:500;transition:color .15s;position:relative}.topbar-tab:hover{color:var(--text-secondary)}.topbar-tab.active{color:var(--blue);font-weight:600}.topbar-tab.active:after{content:"";background:var(--blue);border-radius:1px 1px 0 0;height:2px;position:absolute;bottom:0;left:16px;right:16px}.topbar-right{align-items:center;gap:8px;display:flex}.topbar-status{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:240px;font-size:11px;overflow:hidden}.btn{font-family:var(--font);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);color:var(--text-secondary);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:6px 14px;font-size:13px;font-weight:500;transition:all .12s;display:inline-flex}.btn:hover{background:var(--bg-hover);color:var(--text);border-color:#d0d2d8}.btn-primary{background:var(--blue);color:#fff;border-color:var(--blue)}.btn-primary:hover{background:#1d4ed8;border-color:#1d4ed8}.btn-active{background:var(--blue-bg);border-color:var(--blue);color:var(--blue)}.btn-sm{padding:4px 10px;font-size:12px}.btn-icon{justify-content:center;width:32px;height:32px;padding:6px}.avatar{color:#fff;background:linear-gradient(135deg,#ca8a04,#d97706);border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;font-size:12px;font-weight:700;display:flex}.body-layout{flex:1;min-height:0;display:flex;overflow:hidden}.sidebar{background:var(--bg);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:240px;display:flex;overflow-y:auto}.sidebar-section{border-bottom:1px solid var(--border-light);padding:14px 16px}.sidebar-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.sidebar-header h3{text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);font-size:11px;font-weight:600}.sidebar-header button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px;font-size:14px}.sidebar-header button:hover{background:var(--bg-hover)}.node-list{flex-direction:column;gap:2px;display:flex}.node-item{border-radius:var(--radius-xs);cursor:pointer;align-items:center;gap:10px;padding:7px 8px;transition:background .1s;display:flex}.node-item:hover{background:var(--bg-hover)}.node-item.active{background:var(--blue-bg)}.node-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.node-dot.merch{background:var(--gold)}.node-dot.f_and_b{background:var(--blue)}.node-dot.vip{background:var(--purple)}.node-info{flex:1;min-width:0}.node-info .node-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:500;overflow:hidden}.node-info .node-meta{color:var(--text-muted);font-size:11px}.node-count{color:var(--text-muted);font-size:12px;font-weight:500}.sim-controls{flex-direction:column;gap:8px;display:flex}.speed-row{gap:4px;display:flex}.speed-btn{font-family:var(--font);border-radius:var(--radius-xs);border:1px solid var(--border);background:var(--bg);color:var(--text-muted);cursor:pointer;flex:1;padding:4px 0;font-size:11px;font-weight:500;transition:all .1s}.speed-btn:hover{color:var(--text-secondary);border-color:#c0c2c8}.speed-btn.active{background:var(--blue-bg);border-color:var(--blue);color:var(--blue)}.sim-status{color:var(--text-muted);text-align:center;padding:4px 0;font-size:11px}.center-area{flex-direction:column;flex:1;min-width:0;display:flex;position:relative}.map-toolbar{border-bottom:1px solid var(--border-light);background:var(--bg);justify-content:space-between;align-items:center;padding:8px 16px;display:flex}.map-toolbar-left{align-items:center;gap:8px;display:flex}.sell-order-btn{display:none}.map-wrapper{background:var(--bg);flex:1;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.map-zoom-controls{z-index:5;flex-direction:column;gap:2px;display:flex;position:absolute;bottom:16px;right:16px}.zoom-btn{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;box-shadow:var(--shadow-sm);justify-content:center;align-items:center;font-size:16px;transition:all .1s;display:flex}.zoom-btn:hover{background:var(--bg-hover);color:var(--text)}.tool-palette{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);z-index:5;flex-direction:column;gap:2px;padding:6px;display:flex;position:absolute;top:16px;right:16px}.tool-btn{border-radius:var(--radius-xs);color:var(--text-secondary);font-family:var(--font);cursor:pointer;white-space:nowrap;background:0 0;border:none;align-items:center;gap:8px;padding:6px 10px;font-size:12px;transition:all .1s;display:flex}.tool-btn:hover{background:var(--bg-hover);color:var(--text)}.tool-btn.active{background:var(--blue-bg);color:var(--blue)}.tool-icon{width:16px;color:var(--text-muted);justify-content:center;align-items:center;font-size:13px;display:flex}.tool-btn.active .tool-icon{color:var(--blue)}.bottom-bar{background:var(--bg);border-top:1px solid var(--border);flex-shrink:0;padding:10px 20px}.bottom-bar-toggle{align-items:center;gap:8px;margin-bottom:8px;display:flex}.bottom-bar-toggle h3{text-transform:uppercase;letter-spacing:.3px;color:var(--text);font-size:12px;font-weight:600}.bottom-bar-toggle .toggle-link{color:var(--blue);cursor:pointer;text-transform:uppercase;letter-spacing:.3px;font-size:11px;font-weight:600;font-family:var(--font);background:0 0;border:none}.financial-row{align-items:baseline;gap:32px;display:flex}.financial-item label{color:var(--text-muted);margin-bottom:2px;font-size:11px;display:block}.financial-item .fin-value{color:var(--text);font-size:14px;font-weight:600}.financial-sub{color:var(--text-muted);margin-top:6px;font-size:11px}.timeline-overlay{background:var(--bg);border-top:1px solid var(--border);z-index:4;padding:8px 16px 10px;position:absolute;bottom:0;left:0;right:0}.timeline-top{align-items:center;gap:12px;margin-bottom:4px;display:flex}.timeline-time{color:var(--text-secondary);min-width:48px;font-size:12px;font-weight:600}.timeline-track{background:var(--border);border-radius:2px;flex:1;height:4px;overflow:hidden}.timeline-fill{background:linear-gradient(90deg, var(--blue), var(--gold));border-radius:2px;height:100%;transition:width .2s}.timeline-step-label{color:var(--text-muted);text-align:right;min-width:70px;font-size:11px}.timeline-annotation{color:var(--text-secondary);min-height:16px;font-size:12px}.status-badge{text-transform:uppercase;letter-spacing:.5px;border-radius:10px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.status-idle{color:#64748b;background:#f1f5f9}.status-interaction{color:#b45309;background:#fef3c7}.status-moving{background:var(--blue-light);color:var(--blue)}.status-transition{background:var(--purple-light);color:var(--purple)}.status-arrived{background:var(--green-light);color:var(--green)}.status-revenue{background:var(--gold-light);color:var(--gold)}.phone-overlay{z-index:10;animation:.3s slide-in;position:absolute;top:50%;right:60px;transform:translateY(-50%)}.edit-indicator{z-index:10;color:var(--blue);background:var(--blue-bg);border:1px solid #2563eb33;border-radius:20px;padding:4px 12px;font-size:12px;font-weight:500;position:absolute;top:12px;left:12px}.sidebar-tabs{border-bottom:1px solid var(--border);flex-shrink:0;display:flex}.sidebar-tab{font-family:var(--font);color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex:1;padding:10px 0;font-size:12px;font-weight:500;transition:color .12s;position:relative}.sidebar-tab:hover{color:var(--text-secondary)}.sidebar-tab.active{color:var(--blue);font-weight:600}.sidebar-tab.active:after{content:"";background:var(--blue);border-radius:1px 1px 0 0;height:2px;position:absolute;bottom:0;left:20%;right:20%}.sidebar-upload-small{border-top:1px solid var(--border-light);flex-shrink:0}.sidebar-upload-small .svg-upload{margin:8px;padding:12px 8px}.sidebar-upload-small .upload-icon{display:none}.sidebar-upload-small .upload-text{font-size:11px}.sidebar-upload-small .upload-sub{display:none}.sidebar-events{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.sim-controls-sidebar{border-bottom:1px solid var(--border-light);flex-shrink:0;padding:10px 14px}.empty-canvas{height:100%;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.empty-icon{opacity:.3}.empty-title{color:var(--text-secondary);font-size:16px;font-weight:600}.empty-sub{color:var(--text-muted);font-size:13px}.sim-sidebar{background:var(--bg);border-right:1px solid var(--border);flex-shrink:0;width:300px;overflow-y:auto}.sim-main{background:var(--bg-page);flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.sim-map-area{background:var(--bg);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:center;align-items:center;height:320px;display:flex;position:relative;overflow:hidden}.sim-map-svg{width:100%;height:100%;display:block}.heatmap-legend{color:var(--text-muted);border-radius:var(--radius-xs);border:1px solid var(--border);background:#ffffffe6;align-items:center;gap:6px;padding:4px 10px;font-size:10px;display:flex;position:absolute;bottom:10px;right:16px}.heatmap-gradient{background:linear-gradient(90deg,#3b82f633,#eab30866,#dc262699);border-radius:2px;width:60px;height:8px}.sim-results-area{flex-direction:column;gap:16px;padding:16px;display:flex}.sim-placeholder{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:48px 24px;display:flex}.sim-ph-icon{opacity:.3;font-size:36px}.sim-ph-title{color:var(--text-secondary);font-size:15px;font-weight:600}.sim-ph-sub{color:var(--text-muted);max-width:360px;font-size:12px}.show-control-layout{background:var(--bg-page);flex:1;grid-template-rows:minmax(0,1fr);grid-template-columns:1fr 360px;width:100%;height:100%;min-height:0;display:grid}.show-control-canvas-wrap{min-width:0;min-height:0;padding:14px;overflow:hidden}.show-control-stage{width:100%;height:100%;position:relative}.show-control-avatar{transform-origin:50% 100%;cursor:grab;z-index:15;touch-action:none;filter:drop-shadow(0 2px 4px #0006);background:0 0;border:none;border-radius:0;width:40px;height:46px;margin:0;padding:0;position:absolute;transform:translate(-50%,-100%)}.show-control-avatar-svg{pointer-events:none;display:block}.show-control-avatar:hover{filter:drop-shadow(0 3px 6px #00000073)}.show-control-avatar:active{cursor:grabbing}.show-control-avatar-label{z-index:14;color:#e5e7eb;background:#0000008c;border:1px solid #fb923c59;border-radius:6px;padding:5px 8px;font-size:11px;position:absolute;top:10px;left:10px}.show-control-svg{border:1px solid var(--border);background:#090b10;border-radius:10px;width:100%;height:100%}.show-control-led-canvas{pointer-events:none;position:absolute;inset:0}.sc-layer{opacity:1}.show-control-panel{border-left:1px solid var(--border);background:var(--bg);overscroll-behavior:contain;-webkit-overflow-scrolling:touch;min-height:0;padding:12px 12px 20px;overflow:hidden auto}.scp-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.scp-header h3{font-size:14px}.scp-stats{color:var(--text-muted);gap:2px;margin-bottom:12px;font-size:11px;display:grid}.scp-group{border:1px solid var(--border);background:var(--bg-page);border-radius:8px;gap:10px;margin-bottom:10px;padding:10px;display:grid}.scp-group--master{background:#fb923c0f;border-color:#fb923c80;box-shadow:inset 0 0 0 1px #fb923c1f}.scp-group label,.scp-card label{color:var(--text-secondary);gap:5px;font-size:11px;display:grid}.scp-group input[type=range],.scp-card input[type=range]{width:100%}.scp-check{align-items:center;gap:6px;display:flex!important}.scp-run-buttons{gap:6px;display:flex}.scp-card select,.scp-card input[type=color]{border:1px solid var(--border);background:var(--bg);height:28px;color:var(--text);border-radius:6px}.scp-card input[type=color]{padding:2px}.scp-sections{gap:8px;display:grid}.scp-card{border:1px solid var(--border);background:var(--bg-page);border-radius:8px;gap:7px;padding:10px;transition:border-color .15s,background .15s,box-shadow .15s;display:grid}.scp-card--selected{background:#fb923c12;border-color:#fb923c99;box-shadow:inset 0 0 0 1px #fb923c2e}.scp-card-top{justify-content:space-between;align-items:center;font-size:11px;display:flex}.scp-card-sub{color:var(--text-muted);text-transform:uppercase;letter-spacing:.35px;font-size:10px}.scp-field-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.35px;margin-top:2px;font-size:10px}.sc-btn{border:1px solid var(--border);background:var(--bg);color:var(--text-secondary);cursor:pointer;border-radius:6px;padding:6px 10px;font-size:11px}.sc-btn-active-running{color:#ecfdf5;background:#14532d;border-color:#22c55e}.sc-btn-active-stop{color:#fef2f2;background:#7f1d1d;border-color:#ef4444}.scp-swatch-row{flex-wrap:wrap;gap:6px;display:flex}.scp-swatch{cursor:pointer;border:1px solid #ffffff40;border-radius:999px;width:22px;height:22px}.scp-swatch.active{outline-offset:1px;outline:2px solid #ffffff73}.show-empty{border:1px dashed var(--border);text-align:center;height:100%;color:var(--text-secondary);border-radius:10px;place-content:center;gap:8px;display:grid}.show-empty h3{font-size:16px}.show-empty p{color:var(--text-muted);max-width:480px;font-size:13px}.scp-warnings{color:#facc15;background:#1f1a0b;border:1px solid #4b3d13;border-radius:8px;gap:4px;margin-bottom:8px;padding:8px;font-size:11px;display:grid}.scp-card-title{color:#f3f4f6;letter-spacing:.2px;font-size:14px;font-weight:800}.scp-card-cap{color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;font-size:10px}.scp-sync-row{color:var(--text-secondary);justify-content:space-between;align-items:center;gap:8px;font-size:11px;display:flex}.scp-group-title{color:#f3f4f6;text-transform:uppercase;letter-spacing:.35px;font-size:11px}.scp-wristband-details,.scp-dmx-details{padding:0}.scp-dmx-details{margin-top:12px}.scp-wristband-details{margin-top:8px}.scp-wristband-details>.scp-wristband-summary,.scp-dmx-details>.scp-wristband-summary{list-style:none}.scp-wristband-details>.scp-wristband-summary::-webkit-details-marker{display:none}.scp-dmx-details>.scp-wristband-summary::-webkit-details-marker{display:none}.scp-wristband-summary{color:#f3f4f6;text-transform:uppercase;letter-spacing:.35px;cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;margin:0;padding:10px 10px 8px;font-size:11px;font-weight:700;display:flex}.scp-wristband-summary:after{content:"";opacity:.85;border-top:6px solid #94a3b8;border-left:5px solid #0000;border-right:5px solid #0000;width:0;height:0;transition:transform .15s}.scp-wristband-details[open]>.scp-wristband-summary:after,.scp-dmx-details[open]>.scp-wristband-summary:after{transform:rotate(180deg)}.scp-wristband-body{gap:10px;padding:0 10px 10px;display:grid}.scp-transport-row{align-items:center;gap:6px;display:flex}.scp-sync-feedback{color:#94a3b8;border-top:1px solid #ffffff0f;margin:4px 0 0;padding-top:8px;font-size:11px;line-height:1.4}.scp-note{color:var(--text-muted);font-size:10px;line-height:1.35}.sc-btn{border-color:var(--border)}.scp-group input[type=range],.scp-card input[type=range],.scp-group input[type=checkbox],.scp-card input[type=checkbox]{accent-color:#94a3b8}.auth-page{background:var(--bg-page);place-items:center;width:100%;height:100%;padding:24px;display:grid}.auth-page--dark{--bg-page:#070709;--bg:#12151c;--bg-hover:#181b22;--bg-page-input:#0a0c10;--border:#2b2f38;--text:#edf0f7;--text-secondary:#c9d0e0;--text-muted:#8b93a8;--blue:#3b82f6;--blue-light:#3b82f640;--red:#f87171;--green:#4ade80}.auth-page--dark .auth-brand-logo{filter:none;opacity:1;border-radius:14px;width:64px;height:64px}.auth-page--dark.auth-login{padding:20px 16px}.auth-page--dark.auth-login .auth-stack{gap:36px;width:min(340px,100%)}.auth-page--dark.auth-login .auth-brand-logo{border-radius:22px;width:120px;height:120px}.auth-page--dark.auth-login .auth-card--minimal{width:100%;box-shadow:none;background:#0f1116eb;border-color:#ffffff12;border-radius:16px;gap:14px;padding:20px 22px}.auth-field-min{letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);gap:5px;font-size:10px;font-weight:600;display:grid}.auth-page--dark.auth-login .auth-field-min input{border-radius:10px;padding:12px 14px;font-size:15px}.auth-page--dark.auth-login .auth-field-min input::placeholder{color:#5c6478;letter-spacing:normal;text-transform:none;font-weight:400}.auth-btn--minimal{border-radius:10px;margin-top:4px;padding:12px 14px;font-size:14px}.auth-page--dark.auth-login .auth-link-btn--minimal{color:var(--text-muted);background:0 0;border:none;margin-top:-2px;padding:8px;font-size:12px;font-weight:500}.auth-page--dark .auth-card{background:var(--bg);border-color:var(--border);box-shadow:0 12px 40px #0000008c}.auth-page--dark .auth-card h1{color:var(--text)}.auth-page--dark .auth-card p{color:var(--text-muted)}.auth-page--dark .auth-card code{background:var(--bg-page-input);border:1px solid var(--border);color:var(--text-secondary);border-radius:4px;padding:2px 6px;font-size:11px}.auth-page--dark .auth-card input,.auth-page--dark .auth-card select{background:var(--bg-page-input);border-color:var(--border);color:var(--text)}.auth-page--dark .auth-card input:focus,.auth-page--dark .auth-card select:focus{border-color:var(--blue);box-shadow:0 0 0 2px var(--blue-light)}.auth-page--dark .auth-link-btn{background:var(--bg);border-color:var(--border);color:var(--text-secondary)}.auth-page--dark .auth-link-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text)}.auth-page--dark.auth-login .auth-link-btn.auth-link-btn--minimal:hover:not(:disabled){color:var(--text-secondary);background:0 0}.auth-page--dark .auth-error{color:var(--red)}.auth-page--dark .auth-message{color:var(--green)}.auth-loading--dark{color:#8b93a8;background:#070709}.auth-stack{flex-direction:column;align-items:center;gap:20px;width:min(420px,100%);display:flex}.auth-brand{justify-content:center;display:flex}.auth-brand-logo{object-fit:contain;filter:grayscale()brightness(.38);opacity:.92;border-radius:12px;width:56px;height:56px;display:block}.auth-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);width:min(420px,100%);box-shadow:var(--shadow-sm);gap:12px;padding:20px;display:grid}.auth-card h1{font-size:18px}.auth-card p{color:var(--text-muted);font-size:13px}.auth-card label{color:var(--text-secondary);gap:6px;font-size:12px;display:grid}.auth-card input,.auth-card select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-page);color:var(--text);outline:none;padding:8px 10px;font-size:14px}.auth-card input:focus,.auth-card select:focus{border-color:var(--blue)}.auth-btn{background:var(--blue);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;padding:9px 12px;font-size:13px;font-weight:600}.auth-btn:disabled{opacity:.6;cursor:default}.auth-link-btn{border:1px solid var(--border);background:var(--bg);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;padding:8px 10px;font-size:12px}.auth-error{color:var(--red);font-size:12px}.auth-message{color:var(--green);font-size:12px}.auth-loading{width:100%;height:100%;color:var(--text-muted);place-items:center;font-size:14px;display:grid}.shell-root{flex-direction:column;width:100%;height:100%;min-height:0;transition:background-color .18s,color .18s;display:flex}.app-shell-header{flex:0 0 var(--shell-header-h);height:var(--shell-header-h);min-height:var(--shell-header-h);background:var(--bg);border-bottom:1px solid var(--border);z-index:100;align-items:center;gap:12px;padding:0 14px 0 16px;display:flex}.app-shell-brand{border-right:1px solid var(--border-light);flex-shrink:0;align-items:center;gap:8px;padding-right:12px;display:flex}.app-shell-nav{flex-shrink:0;align-items:center;gap:6px;display:flex}.app-shell-nav button{border:1px solid var(--border);background:var(--bg-page);color:var(--text-secondary);cursor:pointer;border-radius:6px;padding:5px 12px;font-size:12px;font-weight:600;transition:background .12s,border-color .12s,color .12s}.app-shell-nav button:hover{background:var(--bg-hover);color:var(--text)}.app-shell-nav button.active{border-color:var(--blue);color:var(--blue);background:var(--blue-bg)}.app-shell-spacer{flex:1;min-width:8px}.app-shell-session{flex-shrink:0;align-items:center;gap:8px;min-width:0;display:flex}.app-shell-session .session-email{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:min(220px,28vw);font-size:11px;overflow:hidden}.app-shell-session .session-role{color:var(--blue);text-transform:uppercase;letter-spacing:.3px;font-size:11px;font-weight:600}.app-shell-session button{border:1px solid var(--border);background:var(--bg-page);color:var(--text-secondary);cursor:pointer;border-radius:6px;padding:5px 10px;font-size:11px;transition:background .12s}.app-shell-session button:hover{background:var(--bg-hover);color:var(--text)}.app-shell-main{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.theme-operator{--bg-page:#070709;--bg:#0f1115;--bg-hover:#181b22;--bg-active:#1f2330;--border:#2b2f38;--border-light:#232831;--text:#edf0f7;--text-secondary:#d1d7e6;--text-muted:#9ca5bb;--text-placeholder:#7f889e}.admin-panel{top:calc(var(--shell-header-h) + 8px);z-index:99;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);width:320px;box-shadow:var(--shadow-lg);padding:12px;position:fixed;right:8px}.admin-panel h3{margin-bottom:8px;font-size:13px}.admin-panel form{gap:8px;display:grid}.admin-status{color:var(--text-secondary);white-space:pre-wrap;max-width:420px;margin-top:8px;font-size:12px;line-height:1.4}.admin-help{color:var(--text-muted);margin-top:8px;font-size:11px}.brand-logo{object-fit:contain;border-radius:6px;width:28px;height:28px;display:block}.brand-text{flex-direction:column;line-height:1.05;display:flex}.brand-text strong{letter-spacing:.35px;color:var(--text-secondary);font-size:10px}.brand-text small{color:var(--text-muted);font-size:9px}.sc-page{background:var(--bg-page);place-items:center;width:100%;height:100%;padding:24px;display:grid}.sc-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);width:min(620px,100%);box-shadow:var(--shadow-sm);padding:22px}.sc-card h2{margin-bottom:8px;font-size:22px}.sc-card p{color:var(--text-secondary);line-height:1.5}.sc-badges{gap:8px;margin-top:14px;display:flex}.sc-badges span{color:var(--text-secondary);border:1px solid var(--border);background:var(--bg-page);border-radius:999px;padding:4px 8px;font-size:12px}.theme-venue .brand-logo{filter:grayscale()brightness(.42);opacity:.95}.theme-operator .app-shell-header{background:var(--bg);border-bottom-color:var(--border)}.theme-operator .app-shell-brand{border-right-color:var(--border)}.theme-operator .admin-panel{background:#0a0a0af2;border-color:#2b2b2b}.theme-operator .sc-page{background:radial-gradient(100% 100% at 0 0,#111527 0%,#070709 55%,#060607 100%)}.theme-operator .sc-card{background:#10141e;border-color:#2b3348}.theme-operator .app-shell-nav button{color:#c9c9c9;background:#131313;border-color:#343434}.theme-operator .app-shell-nav button:hover{color:#e8e8e8;background:#1a1a1a}.theme-operator .app-shell-nav button.active{color:#c8dcff;background:#1d2842;border-color:#36528d}.theme-operator .app-shell-session .session-email,.theme-operator .brand-text strong,.theme-operator .brand-text small,.theme-operator .admin-status,.theme-operator .admin-help{color:#a9acb5}.theme-operator .app-shell-session .session-role{color:#c8dcff}.theme-operator .app-shell-session button{color:#c9c9c9;background:#131313;border-color:#343434}.theme-operator .app-shell-session button:hover{color:#e8e8e8;background:#1a1a1a}
