:root{--bg: #090812;--bg-soft: #11101d;--surface: #171425;--surface-raised: #1f1934;--surface-subtle: #241d3d;--border: #342a54;--border-strong: #57418b;--text: #f7f2ff;--text-muted: #b9add1;--text-soft: #9184a8;--purple: #a78bfa;--purple-strong: #8b5cf6;--purple-deep: #6d28d9;--teal: #2dd4bf;--blue: #60a5fa;--amber: #fbbf24;--red: #fb7185;--shadow: 0 18px 50px rgb(0 0 0 / 28%);color:var(--text);background:var(--bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;line-height:1.5;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{background:linear-gradient(180deg,#100d1e 0%,var(--bg) 360px),var(--bg);margin:0;min-width:320px}button{font:inherit}button:disabled{cursor:not-allowed;opacity:.55}.app-shell{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100vh}.auth-shell{align-items:center;display:grid;min-height:100vh;padding:24px}.auth-panel{background:#171425f0;border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow);display:grid;gap:18px;justify-self:center;max-width:420px;padding:24px;width:min(100%,420px)}.auth-mark{align-items:center;background:var(--purple);border-radius:8px;color:#120a22;display:grid;height:46px;justify-content:center;width:46px}.auth-heading{display:grid;gap:4px}.auth-heading h1{font-size:1.55rem;line-height:1.1;margin:0}.sidebar{align-content:start;background:#0d0b17;border-right:1px solid var(--border);color:var(--text);display:grid;gap:24px;padding:24px 16px}.brand{align-items:center;display:flex;gap:12px;min-width:0}.brand-mark{align-items:center;background:var(--purple);border-radius:8px;color:#120a22;display:grid;height:42px;justify-content:center;width:42px}.brand h1,.brand span,.topbar h2,.topbar p,.panel h2,.panel h3,.panel p{margin:0}.brand h1{font-size:1rem;font-weight:800}.brand span{color:var(--text-muted);display:block;font-size:.82rem}.nav-list{display:grid;gap:8px}.nav-button{align-items:center;background:transparent;border:1px solid transparent;border-radius:8px;color:var(--text-muted);cursor:pointer;display:flex;gap:10px;height:42px;padding:0 12px;text-align:left;width:100%}.nav-button:hover,.nav-button.is-active{background:#221a3a;border-color:var(--border-strong);color:var(--text)}.workspace{align-content:start;display:grid;gap:18px;grid-auto-rows:max-content;min-width:0;padding:24px}.topbar{align-items:center;display:flex;gap:16px;justify-content:space-between}.eyebrow{color:var(--purple);font-size:.78rem;font-weight:800;letter-spacing:0;text-transform:uppercase}.topbar h2{font-size:clamp(1.45rem,2vw,2rem);line-height:1.1}.topbar-actions{align-items:center;display:flex;gap:10px}.connection{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--text-muted);display:flex;font-size:.88rem;font-weight:700;gap:8px;height:36px;padding:0 12px}.connection span{background:var(--red);border-radius:999px;height:8px;width:8px}.connection.is-live span{background:var(--teal)}.icon-button{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--text);cursor:pointer;display:grid;height:38px;justify-content:center;width:38px}.icon-button:hover{border-color:var(--border-strong);color:var(--purple)}.spin{animation:spin .9s linear infinite}.stat-grid{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.stat-card,.panel,.module-card,.mini-card{background:#171425f0;border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow)}.stat-card{display:grid;gap:4px;min-height:86px;padding:16px}.stat-card span{color:var(--text-muted);font-size:.85rem;font-weight:700}.stat-card strong{color:var(--text);font-size:1.65rem;line-height:1}.content-grid{align-items:start;display:grid;gap:18px;grid-template-columns:minmax(0,1.5fr) minmax(320px,.8fr)}.stacked-panels{display:grid;gap:18px}.panel{min-width:0;padding:18px}.panel.wide{min-width:0}.panel-header{align-items:center;border-bottom:1px solid var(--border);display:flex;gap:10px;justify-content:space-between;margin-bottom:16px;padding-bottom:14px}.panel-title{align-items:center;display:flex;gap:10px;min-width:0}.panel-title svg,.panel-header>svg{color:var(--purple)}.panel-header h2{font-size:1rem}.panel-actions{align-items:center;display:flex;gap:8px}.module-grid,.card-grid{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.module-card,.mini-card{display:grid;gap:12px;min-height:174px;padding:14px}.module-card-top,.mini-card-title{align-items:center;display:flex;gap:10px;justify-content:space-between}.status-icon{align-items:center;border-radius:8px;display:grid;height:34px;justify-content:center;width:34px}.status-ready{background:#2dd4bf29;color:var(--teal)}.status-starting{background:#60a5fa29;color:var(--blue)}.status-disabled{background:#9184a829;color:var(--text-soft)}.status-error{background:#fb718529;color:var(--red)}.status-pill{align-items:center;border-radius:7px;display:inline-flex;font-size:.72rem;font-weight:800;justify-content:center;line-height:1;min-height:24px;padding:0 8px;text-transform:uppercase}.module-card h3,.mini-card h3,.table-row h3,.log-row h3{color:var(--text);font-size:.98rem;line-height:1.25;margin:0}.module-card p,.mini-card p,.table-row p,.log-row p{color:var(--text-muted);font-size:.9rem;margin:0}.table-list{display:grid;gap:10px}.table-list.compact{gap:8px}.table-row{align-items:center;background:var(--surface-raised);border:1px solid var(--border);border-radius:8px;display:grid;gap:14px;grid-template-columns:minmax(0,1fr) auto;min-height:94px;padding:14px}.row-actions{align-items:center;display:flex;gap:10px}.editor-layout{align-items:start;display:grid;gap:18px;grid-template-columns:minmax(0,1fr) minmax(360px,.68fr)}.editor-form{display:grid;gap:14px}.backup-layout{display:grid;gap:16px}.backup-summary{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.event-summary{grid-template-columns:repeat(6,minmax(0,1fr))}.token-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.readiness-grid{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.readiness-item{background:var(--surface-raised);border:1px solid var(--border);border-radius:8px;display:grid;gap:4px;min-height:68px;padding:12px}.readiness-item span{color:var(--text-muted);font-size:.78rem;font-weight:800}.readiness-item strong{color:var(--text);font-size:1rem}.readiness-ready{border-color:#2dd4bf6b}.readiness-missing{border-color:#fb718561}.readiness-unknown{border-color:#fbbf2461}.backup-actions{display:flex;flex-wrap:wrap;gap:10px}.tool-stack{display:grid;gap:14px}.tool-status{align-items:center;background:var(--surface-raised);border:1px solid var(--border);border-radius:8px;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) auto;min-height:88px;padding:14px}.tool-status h3{color:var(--text);font-size:.98rem;line-height:1.25;margin:0}.tool-status p{color:var(--text-muted);font-size:.88rem;margin:4px 0 0}.alert-rule-grid{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.alert-rule-card{background:var(--surface-raised);border:1px solid var(--border);border-radius:8px;display:grid;gap:14px;min-width:0;padding:14px}.alert-rule-header{align-items:center;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) auto}.alert-rule-title{align-items:center;display:flex;gap:10px;min-width:0}.alert-rule-title h3{color:var(--text);font-size:.98rem;line-height:1.25;margin:0}.alert-rule-title p{color:var(--text-muted);font-size:.88rem;margin:4px 0 0}.alert-swatch{border:1px solid rgb(255 255 255 / 26%);border-radius:8px;flex:0 0 auto;height:34px;width:34px}.alert-asset-preview{align-items:center;aspect-ratio:16 / 7;background:#100d1e;border:1px solid var(--border);border-radius:8px;display:flex;justify-content:center;overflow:hidden}.alert-asset-preview img{height:100%;object-fit:contain;width:100%}.asset-library{display:grid;gap:14px}.asset-upload-form{background:var(--surface-raised);border:1px solid var(--border);border-radius:8px;display:grid;gap:12px;padding:12px}.asset-picker-row{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.selected-file{color:var(--text-muted);font-size:.82rem;font-weight:800;overflow-wrap:anywhere}.asset-list{display:grid;gap:10px}.asset-row{align-items:center;background:var(--surface-raised);border:1px solid var(--border);border-radius:8px;display:grid;gap:12px;grid-template-columns:62px minmax(0,1fr) auto;min-width:0;padding:12px}.asset-preview{align-items:center;background:#100d1e;border:1px solid var(--border);border-radius:8px;color:var(--purple);display:grid;height:62px;justify-content:center;overflow:hidden;width:62px}.asset-preview img{height:100%;object-fit:contain;width:100%}.asset-body{display:grid;gap:6px;min-width:0}.asset-body h3{color:var(--text);font-size:.94rem;line-height:1.2;margin:0;overflow-wrap:anywhere}.asset-body p{color:var(--text-muted);font-size:.8rem;margin:0}.asset-url-input{font-size:.78rem;min-height:34px}.stream-widget-settings{display:grid;gap:12px}.widget-preview-list{display:grid;gap:10px}.widget-preview-row{background:var(--surface-raised);border:1px solid var(--border);border-left:4px solid var(--purple-strong);border-radius:8px;display:grid;min-height:78px;padding:12px}.widget-preview-row div{display:grid;gap:3px;min-width:0}.widget-preview-row span{color:var(--purple);font-size:.75rem;font-weight:900;text-transform:uppercase}.widget-preview-row strong{color:var(--text);font-size:1.05rem;line-height:1.15;overflow-wrap:anywhere}.widget-preview-row p{color:var(--text-muted);font-size:.82rem;margin:0;overflow-wrap:anywhere}.danger-icon{color:#fecdd3}.announcement-card{background:var(--surface-raised);border:1px solid var(--border);border-radius:8px;display:grid;gap:14px;padding:14px}.announcement-card-header{align-items:center;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) auto}.announcement-card-header h3{color:var(--text);font-size:.98rem;line-height:1.25;margin:0}.announcement-card-header p{color:var(--text-muted);font-size:.88rem;margin:4px 0 0}.template-token-row{margin-top:0}.form-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.field{color:var(--text-muted);display:grid;gap:7px;font-size:.82rem;font-weight:800}.field small{color:var(--teal);font-size:.72rem;font-weight:800;margin-left:6px;text-transform:uppercase}.text-input,.select-input,.textarea{background:#100d1e;border:1px solid var(--border);border-radius:8px;color:var(--text);font:inherit;min-height:40px;outline:none;padding:9px 10px;width:100%}.color-input{padding:5px}.range-input{accent-color:var(--purple);width:100%}.range-value{color:var(--text);font-size:.82rem;line-height:1}.textarea{min-height:96px;resize:vertical}.textarea.compact{min-height:78px}.text-input:focus,.select-input:focus,.textarea:focus{border-color:var(--purple);box-shadow:0 0 0 3px #a78bfa2e}.choice-group{border:1px solid var(--border);border-radius:8px;margin:0;padding:12px}.choice-group legend{color:var(--text-muted);font-size:.82rem;font-weight:800;padding:0 6px}.choice-list{display:flex;flex-wrap:wrap;gap:8px}.choice{align-items:center;background:#2a2244;border:1px solid #45356d;border-radius:8px;color:#d7cced;cursor:pointer;display:flex;font-size:.78rem;font-weight:800;gap:6px;min-height:32px;padding:0 10px}.choice input{accent-color:var(--purple)}.role-mapping-group{padding:14px}.role-mapping-list{display:grid;gap:12px}.role-mapping-row{background:#100d1e;border:1px solid var(--border);border-radius:8px;padding:12px}.command-exposure-group{display:grid;gap:12px}.command-exposure-list{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.slash-options-group,.slash-option-list{display:grid;gap:12px}.slash-option-row{background:#100d1e;border:1px solid var(--border);border-radius:8px;display:grid;gap:12px;padding:12px}.slash-option-header{align-items:center;display:flex;gap:10px;justify-content:space-between}.slash-option-header strong{color:var(--text);font-size:.88rem}.inline-check{align-items:center;color:var(--text-muted);display:flex;font-size:.82rem;font-weight:800;gap:8px}.inline-check input{accent-color:var(--purple)}.button-row{display:flex;flex-wrap:wrap;gap:8px}.action-button,.primary-button,.ghost-button,.danger-button,.file-button,.wide-toggle{align-items:center;border-radius:8px;cursor:pointer;display:inline-flex;font-weight:800;gap:8px;justify-content:center;min-height:38px;padding:0 12px}.action-button,.primary-button,.file-button{background:var(--purple-strong);border:1px solid var(--purple);color:#f8f4ff}.file-button input{display:none}.ghost-button,.wide-toggle{background:var(--surface-subtle);border:1px solid var(--border);color:var(--text)}.wide-toggle{width:100%}.wide-toggle.is-on{background:#8b5cf63d;border-color:var(--purple);color:var(--text)}.danger-button{background:#fb71851f;border:1px solid rgb(251 113 133 / 38%);color:#fecdd3}.notice{background:#2dd4bf1f;border:1px solid rgb(45 212 191 / 36%);border-radius:8px;box-shadow:var(--shadow);color:#ccfbf1;font-weight:800;padding:10px 12px}.notice.is-error{background:#fb71851f;border-color:#fb71855c;color:#fecdd3}.toast-region{left:50%;pointer-events:none;position:fixed;top:16px;transform:translate(-50%);width:min(560px,calc(100vw - 32px));z-index:50}.toast{animation:toast-in .18s ease-out;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);text-align:center}.chip-row{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.chip{align-items:center;background:#2a2244;border:1px solid #45356d;border-radius:8px;color:#d7cced;display:inline-flex;font-size:.76rem;font-weight:700;justify-content:center;line-height:1;min-height:30px;padding:0 10px}.toggle{align-items:center;background:#463b5f;border:0;border-radius:999px;cursor:pointer;display:flex;height:28px;padding:3px;width:52px}.toggle span{background:#f8f4ff;border-radius:999px;box-shadow:0 1px 2px #00000052;display:block;height:22px;transition:transform .16s ease;width:22px}.toggle.is-on{background:var(--purple-strong)}.toggle.is-on span{transform:translate(24px)}.log-list{display:grid;gap:8px}.log-row{align-items:start;border-bottom:1px solid var(--border);display:grid;gap:10px;grid-template-columns:64px minmax(0,1fr);min-height:58px;padding:8px 0}.log-row:last-child{border-bottom:0}.log-level{align-items:center;border-radius:7px;display:inline-flex;font-size:.68rem;font-weight:800;min-height:22px;justify-self:start;padding:0 7px;text-transform:uppercase}.level-info,.level-debug{background:#60a5fa29;color:var(--blue)}.level-warn{background:#fbbf2429;color:var(--amber)}.level-error{background:#fb718529;color:var(--red)}.mod-log-stack,.mod-log-list{display:grid;gap:10px}.filter-bar{align-items:end;display:grid;gap:10px;grid-template-columns:minmax(140px,.35fr) minmax(140px,.35fr) minmax(220px,1fr)}.viewer-filter-bar{grid-template-columns:minmax(220px,1fr)}.event-filter-bar{grid-template-columns:minmax(140px,.25fr) minmax(220px,1fr)}.mod-log-row{background:var(--surface-raised);border:1px solid var(--border);border-radius:8px;display:grid;gap:10px;padding:14px}.mod-log-header{align-items:start;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) auto}.mod-log-header h3{color:var(--text);font-size:1rem;line-height:1.25;margin:0}.mod-log-header p,.mod-log-meta{color:var(--text-muted);font-size:.86rem;margin:4px 0 0}.mod-log-badges{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.mod-log-message{background:#100d1e;border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:.9rem;margin:0;overflow-wrap:anywhere;padding:10px}.mod-status{align-items:center;border-radius:7px;display:inline-flex;font-size:.68rem;font-weight:800;min-height:24px;padding:0 8px;text-transform:uppercase}.mod-status-flagged{background:#60a5fa29;color:var(--blue)}.mod-status-succeeded{background:#2dd4bf29;color:var(--teal)}.mod-status-skipped{background:#fbbf2429;color:var(--amber)}.mod-status-failed{background:#fb718529;color:var(--red)}.empty-state{color:var(--text-muted);margin:0}.roadmap-card{min-height:150px}.roadmap-icon{align-items:center;background:#a78bfa29;border-radius:8px;color:var(--purple);display:grid;height:38px;justify-content:center;width:38px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1100px){.app-shell{grid-template-columns:86px minmax(0,1fr)}.brand div:last-child,.nav-button span{display:none}.nav-button{justify-content:center;padding:0}.alert-rule-grid,.module-grid,.card-grid,.content-grid,.editor-layout,.backup-summary,.event-summary,.token-grid,.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.app-shell{display:block}.sidebar{border-right:0;grid-template-columns:auto 1fr;padding:14px}.nav-list{display:flex;gap:8px;overflow-x:auto}.nav-button{flex:0 0 42px}.workspace{padding:16px}.topbar{align-items:flex-start;flex-direction:column}.topbar-actions{width:100%}.connection{flex:1}.content-grid,.editor-layout,.backup-summary,.event-summary,.token-grid,.readiness-grid,.module-grid,.alert-rule-grid,.card-grid,.stat-grid,.form-grid,.command-exposure-list{grid-template-columns:1fr}.table-row,.asset-row{align-items:start;grid-template-columns:1fr}.asset-preview{height:96px;width:100%}.filter-bar,.mod-log-header{grid-template-columns:1fr}.mod-log-badges{justify-content:flex-start}}
