:root{color-scheme:dark;--font-body: "Inter", "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI Variable Text", "Segoe UI", system-ui, sans-serif;--font-display: "Inter", "SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI Variable Display", "Segoe UI", system-ui, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", ui-monospace, "Cascadia Mono", Menlo, Consolas, monospace;--text-xs: 11px;--text-sm: 12px;--text-md: 13px;--text-base: 14px;--text-lg: 16px;--text-xl: 18px;--text-2xl: 22px;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 650;--color-bg-canvas: #070b12;--color-bg-canvas-alt: #0a0f18;--color-surface-1: #0d131d;--color-surface-2: #121a26;--color-surface-3: #18212f;--color-surface-solid-1: #0d131d;--color-surface-solid-2: #121a26;--color-surface-solid-3: #18212f;--color-surface-inset: #0a0f18;--color-border-subtle: rgba(148, 166, 204, .08);--color-border-default: rgba(148, 166, 204, .13);--color-border-strong: rgba(148, 166, 204, .22);--color-border-focus: #4c95e6;--color-text-primary: #eef2f8;--color-text-secondary: #b8c2d3;--color-text-tertiary: #8b97ab;--color-text-quaternary: #677388;--color-text-on-accent: #ffffff;--brand-blue: #00509e;--brand-red: #db0132;--color-accent-500: #4c95e6;--color-accent-400: #78b0ef;--color-accent-600: #0b5cb5;--color-accent-700: #00509e;--color-accent-soft: rgba(76, 149, 230, .12);--color-accent-softer: rgba(76, 149, 230, .07);--color-accent-glow: rgba(76, 149, 230, .28);--color-success-500: #34c79e;--color-success-soft: rgba(52, 199, 158, .12);--color-warning-500: #f0b452;--color-warning-soft: rgba(240, 180, 82, .12);--color-danger-500: #f2737d;--color-danger-soft: rgba(242, 115, 125, .12);--color-info-500: #6cc4ff;--color-info-soft: rgba(108, 196, 255, .12);--color-overlay-scrim: rgba(3, 6, 12, .66);--color-overlay-scrim-strong: rgba(3, 6, 12, .82);--control-height: 38px;--control-height-sm: 32px;--control-height-lg: 44px;--control-padding-x: 12px;--focus-ring: 0 0 0 3px rgba(76, 149, 230, .42);--focus-ring-danger: 0 0 0 3px rgba(242, 115, 125, .32);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .24);--shadow-sm: 0 4px 12px rgba(0, 0, 0, .24);--shadow-md: 0 12px 28px rgba(0, 0, 0, .32);--shadow-lg: 0 24px 56px rgba(0, 0, 0, .44);--shadow: var(--shadow-md);--shadow-glow-accent: 0 0 0 1px rgba(76, 149, 230, .12);--space-2: 2px;--space-4: 4px;--space-6: 6px;--space-8: 8px;--space-12: 12px;--space-16: 16px;--space-20: 20px;--space-24: 24px;--space-32: 32px;--space-40: 40px;--space-48: 48px;--radius-8: 6px;--radius-12: 8px;--radius-16: 10px;--radius-20: 12px;--radius-24: 14px;--radius-pill: 999px;--radius-control: 8px;--radius-panel: 12px;--radius-overlay: 14px;--transition-fast: .15s cubic-bezier(.2, .6, .2, 1);--transition: .2s cubic-bezier(.2, .6, .2, 1);--transition-slow: .22s cubic-bezier(.2, .6, .2, 1);--icon-size: 18px;--select-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238b97ab' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");--app-bg: var(--color-bg-canvas);--bg-primary: var(--color-bg-canvas);--bg-secondary: rgba(148, 166, 204, .04);--bg-tertiary: rgba(148, 166, 204, .06);--bg-elevated: var(--color-surface-2);--surface: var(--color-surface-1);--surface-hover: var(--color-surface-2);--surface-active: var(--color-surface-3);--border: var(--color-border-default);--border-hover: var(--color-border-strong);--glass-border: var(--color-border-default);--glass-border-strong: var(--color-border-strong);--glass-highlight: transparent;--glass-blur: 0px;--text-primary: var(--color-text-primary);--text-secondary: var(--color-text-secondary);--text-tertiary: var(--color-text-tertiary);--accent-blue: var(--color-accent-500);--accent-blue-hover: var(--color-accent-400);--accent-glow: var(--color-accent-soft);--accent-green: var(--color-success-500);--accent-green-glow: var(--color-success-soft);--accent-red: var(--color-danger-500);--accent-red-glow: var(--color-danger-soft);--accent-amber: var(--color-warning-500);--accent: var(--color-accent-500);--danger: var(--color-danger-500);--ok: var(--color-success-500);--input-bg: var(--color-surface-inset);--input-border: var(--color-border-default);--input-border-hover: var(--color-border-strong);--input-border-focus: var(--color-border-focus);--button-bg: var(--color-surface-2);--button-bg-hover: var(--color-surface-3);--button-text: var(--color-text-primary);--button-text-strong: var(--color-text-on-accent);--button-border: var(--color-border-default);--button-border-strong: var(--color-border-strong);--button-active-bg: var(--color-accent-soft);--button-active-text: var(--color-text-primary);--button-active-border: rgba(76, 149, 230, .34);--button-primary-bg: var(--color-accent-600);--button-primary-bg-hover: #1668c4;--button-primary-border: transparent;--button-danger-bg: rgba(242, 115, 125, .1);--button-danger-bg-hover: rgba(242, 115, 125, .16);--button-danger-border: rgba(242, 115, 125, .24);--button-success-bg: rgba(52, 199, 158, .1);--button-success-border: rgba(52, 199, 158, .24);--toggle-track-bg: rgba(148, 166, 204, .2);--toggle-track-active-bg: var(--color-accent-600);--toggle-knob-bg: #f4f7fc;--toggle-label-color: var(--color-text-secondary);--panel-sheen: transparent;--panel-sheen-muted: transparent;--panel-stripe: rgba(148, 166, 204, .03);--blob-primary: transparent;--blob-secondary: transparent;--z-base: 0;--z-sidebar: 100;--z-topbar: 200;--z-sticky-toolbar: 300;--z-detail-panel: 400;--z-dropdown: 500;--z-popover: 550;--z-tooltip: 600;--z-drawer-backdrop: 700;--z-drawer: 750;--z-modal-backdrop: 800;--z-modal: 850;--z-command-backdrop: 900;--z-command: 950;--z-toast: 1000}html[data-theme=dark]{color-scheme:dark}html[data-theme=light]{color-scheme:light;--color-bg-canvas: #f4f6f9;--color-bg-canvas-alt: #eef1f5;--color-surface-1: #ffffff;--color-surface-2: #f7f9fc;--color-surface-3: #eef2f7;--color-surface-solid-1: #ffffff;--color-surface-solid-2: #f7f9fc;--color-surface-solid-3: #eef2f7;--color-surface-inset: #ffffff;--color-border-subtle: rgba(15, 23, 42, .06);--color-border-default: rgba(15, 23, 42, .11);--color-border-strong: rgba(15, 23, 42, .2);--color-border-focus: #00509e;--color-text-primary: #0f172a;--color-text-secondary: #3f4c63;--color-text-tertiary: #5b6880;--color-text-quaternary: #8a95a8;--color-accent-500: #00509e;--color-accent-400: #004385;--color-accent-600: #00509e;--color-accent-soft: rgba(0, 80, 158, .09);--color-accent-softer: rgba(0, 80, 158, .05);--color-success-500: #1d7c58;--color-success-soft: rgba(29, 124, 88, .1);--color-warning-500: #9a6206;--color-warning-soft: rgba(180, 120, 10, .12);--color-danger-500: #b8424d;--color-danger-soft: rgba(184, 66, 77, .1);--color-info-500: #1f6fae;--color-info-soft: rgba(31, 111, 174, .1);--color-overlay-scrim: rgba(15, 23, 42, .24);--color-overlay-scrim-strong: rgba(15, 23, 42, .4);--focus-ring: 0 0 0 3px rgba(0, 80, 158, .28);--shadow-xs: 0 1px 2px rgba(15, 23, 42, .06);--shadow-sm: 0 4px 12px rgba(15, 23, 42, .06);--shadow-md: 0 12px 28px rgba(15, 23, 42, .1);--shadow-lg: 0 24px 56px rgba(15, 23, 42, .14);--select-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235b6880' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");--bg-secondary: rgba(15, 23, 42, .025);--bg-tertiary: rgba(15, 23, 42, .04);--button-bg: #ffffff;--button-bg-hover: #f4f6fa;--button-active-border: rgba(0, 80, 158, .28);--button-active-text: #00427f;--button-primary-bg: #00509e;--button-primary-bg-hover: #004385;--button-danger-bg: #fbeef0;--button-danger-bg-hover: #f6e1e4;--button-danger-border: rgba(184, 66, 77, .24);--button-success-bg: #eaf6f0;--button-success-border: rgba(29, 124, 88, .22);--toggle-track-bg: rgba(15, 23, 42, .16);--toggle-knob-bg: #ffffff;--panel-stripe: rgba(15, 23, 42, .03)}*{box-sizing:border-box}body{margin:0;min-height:100vh;overflow-y:scroll;scrollbar-gutter:stable;background:var(--app-bg);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-base);line-height:1.5;font-feature-settings:"cv11","ss01","tnum" 0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body:before,body:after{display:none}#root{position:relative;z-index:1}a{color:var(--accent);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--accent-blue-hover)}::selection{background:#4c95e652}code,pre,kbd,samp{font-family:var(--font-mono);font-size:.92em}.container{width:100%;margin:0 auto;padding:24px 20px 32px;display:grid;gap:16px}.card{position:relative;background:var(--surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-panel);padding:20px;box-shadow:none;transition:border-color var(--transition-fast)}.card:before{display:none}.card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px;position:relative}.card-header:after{display:none}.card-title{margin:0;font-family:var(--font-body);font-size:var(--text-lg);font-weight:var(--weight-semibold);letter-spacing:-.01em;color:var(--text-primary);text-transform:none}.card-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}.grid{display:grid;gap:16px}@media(max-width:768px){.container{padding:14px}.card{padding:16px}}h1,h2,h3,h4,h5,h6{margin:0 0 12px;font-family:var(--font-display);font-weight:var(--weight-semibold);line-height:1.25;letter-spacing:-.015em;color:var(--text-primary)}h1{font-size:var(--text-2xl)}h2{font-size:20px}h3{font-size:var(--text-xl)}h4{font-size:var(--text-lg)}label{display:block;margin:0 0 6px;font-size:var(--text-sm);font-weight:var(--weight-medium);line-height:1.4;color:var(--text-secondary);text-transform:none;letter-spacing:0}input,select,textarea{width:100%;min-height:var(--control-height);padding:8px var(--control-padding-x);border-radius:var(--radius-control);border:1px solid var(--input-border);background:var(--input-bg);color:var(--text-primary);font-family:inherit;font-size:var(--text-base);line-height:1.4;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast)}textarea{line-height:1.5}input:hover:not(:disabled):not(:focus),select:hover:not(:disabled):not(:focus),textarea:hover:not(:disabled):not(:focus){border-color:var(--input-border-hover)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--input-border-focus);box-shadow:var(--focus-ring)}input:disabled,select:disabled,textarea:disabled{opacity:.55;cursor:not-allowed}input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border-color:#f2737d99}input[aria-invalid=true]:focus,select[aria-invalid=true]:focus,textarea[aria-invalid=true]:focus{box-shadow:var(--focus-ring-danger)}.field-error{margin-top:6px;font-size:var(--text-sm);color:var(--accent-red)}input[type=checkbox],input[type=radio]{width:16px;height:16px;min-height:0;padding:0;margin:0;cursor:pointer;accent-color:var(--accent-blue);vertical-align:middle}input[type=checkbox]:focus,input[type=radio]:focus{box-shadow:none}input[type=checkbox]:focus-visible,input[type=radio]:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}input[type=color]{padding:4px;cursor:pointer}input[type=file]{padding:4px;color:var(--text-secondary);font-size:var(--text-md);cursor:pointer}input[type=file]::file-selector-button{margin-right:10px;min-height:28px;padding:0 12px;border-radius:6px;border:1px solid var(--button-border);background:var(--button-bg);color:var(--text-primary);font:inherit;font-weight:var(--weight-medium);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}input[type=file]::file-selector-button:hover{background:var(--button-bg-hover);border-color:var(--button-border-strong)}input::placeholder,textarea::placeholder{color:var(--color-text-quaternary)}select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:var(--select-chevron);background-repeat:no-repeat;background-position:right 12px center;background-size:14px;padding-right:34px;cursor:pointer}select[multiple]{background-image:none;padding-right:12px}select option,select optgroup{background-color:var(--color-surface-2);color:var(--text-primary)}.time-picker{position:relative}.time-picker-input{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.time-picker-toggle{padding:0 10px}.time-picker-popover{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:20;background:var(--color-surface-2);border:1px solid var(--color-border-default);border-radius:var(--radius-panel);padding:6px;box-shadow:var(--shadow-md);display:grid;grid-template-columns:repeat(auto-fill,minmax(68px,1fr));gap:4px;max-height:240px;overflow:auto}.time-picker-option{min-height:30px;padding:4px 8px;border-radius:6px;border:1px solid transparent;background:transparent;font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-secondary);cursor:pointer;justify-content:center}.time-picker-option:hover{background:var(--color-surface-3);color:var(--text-primary)}.time-picker-option.active{border-color:var(--button-active-border);color:var(--text-primary);background:var(--color-accent-soft)}.time-picker-empty{grid-column:1 / -1;padding:8px;font-size:var(--text-sm);color:var(--text-tertiary);text-align:center}button{--icon-size: 16px;min-height:var(--control-height);padding:0 14px;border-radius:var(--radius-control);border:1px solid var(--button-border);background:var(--button-bg);color:var(--button-text);font-family:inherit;font-size:var(--text-md);font-weight:var(--weight-medium);line-height:1.2;letter-spacing:0;cursor:pointer;display:inline-flex;align-items:center;gap:8px;white-space:nowrap;box-shadow:none;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast)}button:hover:not(:disabled){background:var(--button-bg-hover);border-color:var(--button-border-strong);color:var(--button-text)}button:active:not(:disabled){transform:translateY(.5px)}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible{outline:none;box-shadow:var(--focus-ring)}button[aria-current=page]{opacity:1;cursor:default;border-color:var(--button-active-border);background:var(--button-active-bg);color:var(--button-active-text)}button[aria-pressed=true],button[aria-pressed=true]:hover:not(:disabled){background:var(--button-active-bg);border-color:var(--button-active-border);color:var(--button-active-text)}button.primary,button.primary[aria-current=page]{background:var(--button-primary-bg);border-color:var(--button-primary-border);color:var(--button-text-strong);font-weight:var(--weight-semibold)}button.primary:hover:not(:disabled){background:var(--button-primary-bg-hover);border-color:var(--button-primary-border);color:var(--button-text-strong)}button.primary[aria-pressed=true],button.primary[aria-pressed=true]:hover:not(:disabled){background:var(--button-active-bg);border-color:var(--button-active-border);color:var(--text-primary);font-weight:var(--weight-semibold)}button.danger{background:var(--button-danger-bg);border-color:var(--button-danger-border);color:var(--danger)}button.danger:hover:not(:disabled){background:var(--button-danger-bg-hover);border-color:var(--button-danger-border);color:var(--danger)}button.success{background:var(--button-success-bg);border-color:var(--button-success-border);color:var(--ok)}button.success:hover:not(:disabled){color:var(--ok);border-color:var(--button-success-border)}button>span,button>strong,button>small{color:inherit}button.icon-button{padding:0 12px}.credentials-actions{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;width:100%;max-width:100%}.credentials-actions button{flex:1 1 0;justify-content:center;min-height:var(--control-height-sm);padding:0 10px;font-size:var(--text-sm);min-width:0;overflow:hidden;text-overflow:ellipsis}@media(max-width:560px){.credentials-actions{flex-wrap:wrap}.credentials-actions button{flex:1 1 140px}}.badge{display:inline-flex;align-items:center;gap:6px;min-height:22px;padding:0 8px;border-radius:var(--radius-pill);border:1px solid var(--color-border-default);background:var(--bg-tertiary);color:var(--text-secondary);font-size:var(--text-xs);font-weight:var(--weight-semibold);line-height:1;letter-spacing:.01em;white-space:nowrap;box-shadow:none}.badge.success{background:var(--color-success-soft);border-color:#34c79e42;color:var(--color-success-500)}.badge.error{background:var(--color-danger-soft);border-color:#f2737d42;color:var(--color-danger-500)}.badge.warning{background:var(--color-warning-soft);border-color:#f0b45242;color:var(--color-warning-500)}.badge.info{background:var(--color-info-soft);border-color:#6cc4ff42;color:var(--color-info-500)}.badge.api-loading,.api-loading{position:relative;overflow:hidden;gap:6px;border-color:#4c95e647;background:var(--color-accent-soft);color:var(--accent-blue)}.error,.ok{display:flex;align-items:center;gap:8px;margin:10px 0;padding:10px 12px;border-radius:var(--radius-control);font-size:var(--text-md);font-weight:var(--weight-medium);line-height:1.45}.error{background:var(--color-danger-soft);border:1px solid rgba(242,115,125,.24);color:var(--accent-red)}.ok{background:var(--color-success-soft);border:1px solid rgba(52,199,158,.24);color:var(--accent-green)}.notice-stack{position:fixed;top:20px;right:20px;z-index:var(--z-toast);display:grid;gap:8px;pointer-events:none}.notice{pointer-events:auto;min-width:280px;max-width:min(380px,calc(100vw - 40px));display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:var(--radius-panel);border:1px solid var(--color-border-default);background:var(--color-surface-2);box-shadow:var(--shadow-md)}.notice-dot{width:8px;height:8px;margin-top:6px;border-radius:999px;background:var(--accent-green);flex:0 0 auto}.notice.error{border-color:#f2737d47}.notice.error .notice-dot{background:var(--accent-red)}.notice-message{flex:1;font-size:var(--text-md);line-height:1.45;color:var(--text-primary)}.notice-close{min-height:24px;min-width:24px;padding:2px;justify-content:center;background:transparent;border:none;color:var(--text-tertiary)}.notice-close:hover:not(:disabled){color:var(--text-primary);background:var(--bg-tertiary);border-color:transparent}@keyframes notice-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media(max-width:720px){.notice-stack{top:72px;left:16px;right:16px}.notice{max-width:none}}.table-wrapper{position:relative;margin-top:12px;padding:0;overflow-x:auto;border-radius:var(--radius-panel);border:1px solid var(--color-border-subtle);background:var(--surface);box-shadow:none}.table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--text-md);color:var(--text-primary)}.table th,.table td{text-align:left;vertical-align:middle}.table th{height:40px;padding:0 16px;font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary);background:var(--color-surface-inset);border-bottom:1px solid var(--color-border-default);white-space:nowrap}.table thead tr:first-child th:first-child{border-top-left-radius:calc(var(--radius-panel) - 1px)}.table thead tr:first-child th:last-child{border-top-right-radius:calc(var(--radius-panel) - 1px)}.table td{padding:12px 16px;background:transparent;border:0;border-top:1px solid var(--color-border-subtle);transition:background var(--transition-fast)}.table tbody tr:first-child td{border-top:0}.table th:has(>input[type=checkbox]),.table td:has(>input[type=checkbox]){width:44px;text-align:center}.table th input[type=checkbox]{display:block;margin:0 auto}.table tbody tr:hover td{background:var(--color-accent-softer)}.table tbody tr.highlight td,.table tbody tr.highlight:hover td{background:var(--color-accent-soft)}.table tbody tr.highlight td:first-child{box-shadow:inset 2px 0 0 var(--accent)}.table tbody tr.conflict td,.table tbody tr.conflict:hover td{background:var(--color-danger-soft)}.table tbody tr.conflict td:first-child{box-shadow:inset 2px 0 0 var(--accent-red)}.status-indicator{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex:0 0 30px;border-radius:50%;font-size:14px;font-weight:700;position:relative}.status-indicator.online{background:var(--color-success-soft);color:var(--accent-green);box-shadow:inset 0 0 0 1px #34c79e52}.status-indicator.online:after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--accent-green);opacity:0;pointer-events:none}@keyframes status-online-pulse{0%{transform:scale(1);opacity:.55}80%,to{transform:scale(1.6);opacity:0}}@media(prefers-reduced-motion:no-preference){.status-indicator.online:after{animation:status-online-pulse 2s cubic-bezier(.2,.6,.2,1) infinite}}.status-indicator.offline{background:var(--color-danger-soft);color:var(--accent-red);box-shadow:inset 0 0 0 1px #f2737d52}.topbar{position:sticky;top:10px;z-index:100;display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;width:calc(100% - 32px);margin:12px auto 0;padding:10px 14px;border:1px solid var(--color-border-subtle);border-radius:var(--radius-panel);background:var(--surface)}.topbar-left{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.brand{display:inline-flex;align-items:center;gap:10px}.brand-logo{width:28px;height:28px;flex:0 0 28px;display:block}.brand-text{display:flex;flex-direction:column;line-height:1.1}.brand-title{font-size:var(--text-base);font-weight:var(--weight-semibold);letter-spacing:-.01em}.brand-subtitle{margin-top:2px;font-size:var(--text-xs);color:var(--text-tertiary)}.enrollment-popover{position:absolute;top:calc(100% + 8px);left:auto;right:0;width:min(360px,calc(100vw - 32px));min-width:320px;max-height:min(70vh,480px);overflow:auto;display:grid;gap:10px;padding:12px;background:var(--color-surface-2);border:1px solid var(--color-border-default);border-radius:var(--radius-panel);box-shadow:var(--shadow-md);z-index:var(--z-popover, 550)}.enrollment-label,.enrollment-title{font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary)}.enrollment-row{display:flex;align-items:center;gap:4px}.enrollment-row-label{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-secondary)}.enrollment-row-sep{color:var(--text-tertiary)}.enrollment-value{display:flex;align-items:center;gap:6px}.enrollment-value code{font-size:var(--text-sm);color:var(--text-primary);word-break:break-all}.topbar-actions{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.topbar-actions .user-badge{border-radius:var(--radius-pill)}.action-group{display:inline-flex;align-items:center;gap:6px;position:relative}.nav{display:flex;gap:4px;flex-wrap:wrap;position:relative}.nav.admin-tabs{flex-wrap:nowrap;gap:6px;width:100%;overflow-x:auto}.nav.admin-tabs button{flex:1 0 160px;min-width:160px;justify-content:center}.admin-tab-content{width:100%;display:grid;gap:16px}.nav button{background:transparent;border-color:transparent;color:var(--text-secondary)}.nav button:hover:not(:disabled){background:var(--bg-tertiary);border-color:transparent;color:var(--text-primary)}.nav button.primary{background:var(--button-active-bg);border-color:var(--button-active-border);color:var(--text-primary)}@media(max-width:720px){.topbar{width:calc(100% - 20px);margin:10px auto 0}.nav{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.nav::-webkit-scrollbar{display:none}.nav button{flex:0 0 auto}.nav.admin-tabs button{min-width:180px}}.theme-toggle{padding:4px 10px 4px 4px;border-radius:var(--radius-pill);gap:8px;font-size:var(--text-xs)}.theme-toggle-track{width:30px;height:18px;border-radius:999px;background:var(--toggle-track-bg);position:relative;flex:0 0 auto}.theme-toggle-track:after{content:"";width:14px;height:14px;border-radius:50%;background:var(--toggle-knob-bg);position:absolute;top:2px;left:2px;transition:transform var(--transition-fast)}.theme-toggle[aria-checked=true] .theme-toggle-track{background:var(--toggle-track-active-bg)}.theme-toggle[aria-checked=true] .theme-toggle-track:after{transform:translate(12px)}.theme-toggle-label{color:var(--toggle-label-color)}hr{border:0;border-top:1px solid var(--color-border-subtle);margin:16px 0}.muted{color:var(--text-tertiary)}small,small.muted{font-size:var(--text-sm)}small.muted{color:var(--text-tertiary)}.mono,.font-mono{font-family:var(--font-mono);font-size:.92em;font-variant-numeric:tabular-nums}.kv{display:flex;gap:10px;flex-wrap:wrap}.kv>div{flex:1;min-width:180px;padding:10px 12px;border-radius:var(--radius-control);border:1px solid var(--color-border-subtle);background:var(--color-surface-inset);font-size:var(--text-md)}.kv strong{display:block;margin-bottom:3px;font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary)}.filter-chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.filter-chip{min-height:var(--control-height-sm);padding:0 12px;border-radius:var(--radius-control);border:1px solid var(--color-border-default);background:transparent;color:var(--text-secondary);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer}.filter-chip:hover:not(:disabled){background:var(--bg-tertiary);border-color:var(--color-border-strong);color:var(--text-primary)}.filter-chip.active,.filter-chip.active:hover:not(:disabled){background:var(--button-active-bg);border-color:var(--button-active-border);color:var(--text-primary)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(6px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes modal-overlay{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:no-preference){.notice{animation:notice-in var(--transition) ease-out}[role=dialog][aria-modal=true]{animation:modal-overlay var(--transition-fast)}[role=dialog][aria-modal=true]>div{animation:modal-in var(--transition-slow) ease-out}}:root[data-low-gpu=true] .notice,:root[data-low-gpu=true] .app-loading-bar:before,:root[data-low-gpu=true] .loading{animation-duration:1.2s}.app-loading-bar{position:fixed;top:0;left:0;width:100%;height:2px;z-index:2000;pointer-events:none;opacity:0;transition:opacity var(--transition-fast)}.app-loading-bar:before{content:"";display:block;width:30%;height:100%;background:linear-gradient(90deg,transparent 0%,var(--accent-blue) 50%,transparent 100%);transform:translate(-120%);animation:loading-bar 1.1s ease-in-out infinite}.app-loading-bar.active{opacity:1}@keyframes loading-bar{to{transform:translate(320%)}}@media(prefers-reduced-motion:reduce){.app-loading-bar:before{animation:none;width:100%;transform:none;background:var(--accent-blue)}}.loading{display:inline-block;width:14px;height:14px;border:2px solid var(--color-border-strong);border-top-color:var(--accent-blue);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{min-height:160px;display:grid;place-content:center;justify-items:center;gap:10px;padding:28px 20px;text-align:center;font-size:var(--text-md);color:var(--text-tertiary)}.empty-state-icon{width:36px;height:36px;margin:0 auto;border-radius:10px;border:1px solid var(--color-border-default);background:var(--color-surface-2);display:inline-flex;align-items:center;justify-content:center;color:var(--text-tertiary)}[data-icon]{display:inline-flex;align-items:center;gap:8px}[data-icon]:before{content:"";width:var(--icon-size);height:var(--icon-size);flex:0 0 var(--icon-size);background:currentColor;mask:var(--icon) no-repeat center / contain;-webkit-mask:var(--icon) no-repeat center / contain;opacity:.9}.icon-only,[data-icon][data-icon-only=true]{justify-content:center;min-width:var(--control-height);padding-left:10px;padding-right:10px}.icon-only:before,[data-icon][data-icon-only=true]:before{margin-right:0}.empty-state-icon[data-icon]:before{--icon-size: 18px;opacity:.8}.status-indicator[data-icon]:before{--icon-size: 14px;opacity:1}[data-icon=refresh]{--icon: url(data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20489.935%20489.935%27%3E%3Cpath%20d%3D%27M278.235%2C33.267c-116.7%2C0-211.6%2C95-211.6%2C211.7v0.7l-41.9-63.1c-4.1-6.2-12.5-7.9-18.7-3.8c-6.2%2C4.1-7.9%2C12.5-3.8%2C18.7%0Al60.8%2C91.5c2.2%2C3.3%2C5.7%2C5.4%2C9.6%2C5.9c0.6%2C0.1%2C1.1%2C0.1%2C1.7%2C0.1c3.3%2C0%2C6.5-1.2%2C9-3.5l84.5-76.1c5.5-5%2C6-13.5%2C1-19.1%0Ac-5-5.5-13.5-6-19.1-1l-56.1%2C50.7v-1c0-101.9%2C82.8-184.7%2C184.6-184.7s184.7%2C82.8%2C184.7%2C184.7s-82.8%2C184.7-184.6%2C184.7%0Ac-49.3%2C0-95.7-19.2-130.5-54.1c-5.3-5.3-13.8-5.3-19.1%2C0c-5.3%2C5.3-5.3%2C13.8%2C0%2C19.1c40%2C40%2C93.1%2C62%2C149.6%2C62%0Ac116.6%2C0%2C211.6-94.9%2C211.6-211.7S394.935%2C33.267%2C278.235%2C33.267z%27%20fill%3D%27currentColor%27%2F%3E%3C%2Fsvg%3E)}[data-icon=save]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z'/%3E%3Cpolyline points='17 21 17 13 7 13 7 21'/%3E%3Cpolyline points='7 3 7 8 15 8'/%3E%3C/svg%3E")}[data-icon=plus]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='12' y1='5' x2='12' y2='19'/%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3C/svg%3E")}[data-icon=trash]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='3 6 5 6 21 6'/%3E%3Cpath d='M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6'/%3E%3Cpath d='M10 11v6'/%3E%3Cpath d='M14 11v6'/%3E%3Cpath d='M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2'/%3E%3C/svg%3E")}[data-icon=edit]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 3a2.828 2.828 0 1 1 4 4L7 21l-4 1 1-4L17 3z'/%3E%3C/svg%3E")}[data-icon=clock]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 3'/%3E%3C/svg%3E")}[data-icon=upload]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='7 10 12 5 17 10'/%3E%3Cline x1='12' y1='5' x2='12' y2='16'/%3E%3C/svg%3E")}[data-icon=download]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='7 10 12 15 17 10'/%3E%3Cline x1='12' y1='5' x2='12' y2='15'/%3E%3C/svg%3E")}[data-icon=logout]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4'/%3E%3Cpolyline points='16 17 21 12 16 7'/%3E%3Cline x1='21' y1='12' x2='9' y2='12'/%3E%3C/svg%3E")}[data-icon=lock]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E")}[data-icon=eye]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s4-7 10-7 10 7 10 7-4 7-10 7-10-7-10-7z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E")}[data-icon=eye-off]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17.94 17.94A10.94 10.94 0 0 1 12 19c-6 0-10-7-10-7a20.12 20.12 0 0 1 5.06-5.94'/%3E%3Cpath d='M9.9 4.24A10.8 10.8 0 0 1 12 4c6 0 10 7 10 7a20.05 20.05 0 0 1-3.26 4.52'/%3E%3Cline x1='1' y1='1' x2='23' y2='23'/%3E%3C/svg%3E")}[data-icon=check]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E")}[data-icon=x]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E")}[data-icon=play]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolygon points='6 4 20 12 6 20 6 4'/%3E%3C/svg%3E")}[data-icon=pause]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='6' y='4' width='4' height='16' rx='1'/%3E%3Crect x='14' y='4' width='4' height='16' rx='1'/%3E%3C/svg%3E")}[data-icon=ban]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cline x1='5' y1='5' x2='19' y2='19'/%3E%3C/svg%3E")}[data-icon=bolt]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 2L4 14h7l-1 8 10-14h-7l1-6z'/%3E%3C/svg%3E")}[data-icon=copy]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='9' width='13' height='13' rx='2'/%3E%3Cpath d='M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1'/%3E%3C/svg%3E")}[data-icon=device]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='7' y='2' width='10' height='20' rx='2'/%3E%3Ccircle cx='12' cy='18' r='1'/%3E%3C/svg%3E")}[data-icon=desktop]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='12' rx='2'/%3E%3Cline x1='8' y1='20' x2='16' y2='20'/%3E%3Cline x1='12' y1='16' x2='12' y2='20'/%3E%3C/svg%3E")}[data-icon=calculator]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='2' width='16' height='20' rx='2'/%3E%3Crect x='8' y='5' width='8' height='4' rx='1'/%3E%3Ccircle cx='8.5' cy='13' r='1' fill='white' stroke='none'/%3E%3Ccircle cx='12' cy='13' r='1' fill='white' stroke='none'/%3E%3Ccircle cx='15.5' cy='13' r='1' fill='white' stroke='none'/%3E%3Ccircle cx='8.5' cy='17.5' r='1' fill='white' stroke='none'/%3E%3Ccircle cx='12' cy='17.5' r='1' fill='white' stroke='none'/%3E%3Ccircle cx='15.5' cy='17.5' r='1' fill='white' stroke='none'/%3E%3C/svg%3E")}[data-icon=ticket]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v1a2 2 0 0 0 0 4v1a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-1a2 2 0 0 0 0-4V9z'/%3E%3Cpath d='M13 5v14'/%3E%3C/svg%3E")}[data-icon=key]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='6.5' r='3.5'/%3E%3Cpath d='M12 10v11'/%3E%3Cpath d='M12 17h4'/%3E%3Cpath d='M12 20h3'/%3E%3C/svg%3E")}*{scrollbar-width:thin;scrollbar-color:rgba(148,166,204,.22) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#94a6cc2e;border-radius:10px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:#94a6cc4d;background-clip:padding-box}.warning:not(.badge):not(.notice){display:flex;align-items:center;gap:8px;margin:10px 0;padding:10px 12px;border-radius:var(--radius-control);border:1px solid rgba(240,180,82,.26);background:var(--color-warning-soft);color:var(--color-warning-500);font-size:var(--text-md);font-weight:var(--weight-medium);line-height:1.45}html,body,#root{min-height:100%}body{font-family:var(--font-body);background:var(--app-bg);color:var(--text-primary)}#root{isolation:isolate}.dashboard-shell{--sidebar-width: 224px;--sidebar-width-collapsed: 64px;min-height:100vh;display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr)}.dashboard-shell.sidebar-collapsed{grid-template-columns:var(--sidebar-width-collapsed) minmax(0,1fr)}.dashboard-sidebar{position:sticky;top:0;height:100vh;padding:14px 10px 12px;display:grid;grid-template-rows:auto 1fr auto;gap:18px;border-right:1px solid var(--color-border-subtle);background:var(--color-bg-canvas-alt);z-index:var(--z-sidebar);overflow:visible}.dashboard-sidebar-toggle{position:absolute;top:22px;right:-12px;width:24px;min-width:24px;height:24px;min-height:24px;padding:0;border-radius:999px;justify-content:center;font-size:12px;line-height:1;color:var(--text-tertiary);background:var(--color-surface-2);border-color:var(--color-border-default);z-index:2;opacity:0;transition:opacity var(--transition-fast),color var(--transition-fast),background var(--transition-fast)}.dashboard-sidebar:hover .dashboard-sidebar-toggle,.dashboard-sidebar:focus-within .dashboard-sidebar-toggle,.dashboard-sidebar.is-collapsed .dashboard-sidebar-toggle{opacity:1}.dashboard-sidebar-toggle:hover:not(:disabled){color:var(--text-primary)}.dashboard-brand{display:flex;align-items:center;gap:10px;width:100%;min-height:36px;padding:4px 10px}.dashboard-brand-logo{width:26px;height:26px;flex:0 0 26px}.dashboard-brand-copy{display:flex;text-align:left;min-width:0}.dashboard-brand-copy strong{font-size:var(--text-base);font-weight:var(--weight-semibold);letter-spacing:-.01em;color:var(--text-primary);white-space:nowrap}.dashboard-command-trigger{width:38px;min-width:38px;justify-content:center;padding:0;border-radius:var(--radius-control);justify-self:start}.dashboard-nav{display:grid;gap:2px;align-content:start}.dashboard-nav-item{--icon-size: 18px;position:relative;width:100%;min-height:36px;padding:0 10px;gap:10px;justify-content:flex-start;border-radius:var(--radius-control);border:1px solid transparent;background:transparent;color:var(--text-secondary);font-size:var(--text-md);font-weight:var(--weight-medium)}.dashboard-nav-item:before{opacity:.8}.dashboard-nav-item:after{content:"";position:absolute;left:-10px;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;background:var(--accent-blue);opacity:0;transition:opacity var(--transition-fast)}.dashboard-nav-item:hover:not(:disabled){background:var(--bg-tertiary);border-color:transparent;color:var(--text-primary)}.dashboard-nav-item.active,.dashboard-nav-item[aria-current=page],.dashboard-nav-item.active:hover,.dashboard-nav-item[aria-current=page]:hover{cursor:pointer;background:var(--color-accent-soft);border-color:transparent;color:var(--text-primary)}.dashboard-nav-item.active:before,.dashboard-nav-item[aria-current=page]:before{opacity:1;color:var(--accent-blue);background:var(--accent-blue)}.dashboard-nav-item.active:after,.dashboard-nav-item[aria-current=page]:after{opacity:1}.dashboard-nav-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-sidebar.is-collapsed .dashboard-brand{justify-content:center;padding:4px 0}.dashboard-sidebar.is-collapsed .dashboard-brand-copy,.dashboard-sidebar.is-collapsed .dashboard-nav-label,.dashboard-sidebar.is-collapsed .dashboard-user-copy{display:none}.dashboard-sidebar.is-collapsed .dashboard-nav-item{justify-content:center;padding:0;gap:0}.dashboard-sidebar.is-collapsed .dashboard-user-card{justify-content:center;padding:6px 0}.dashboard-sidebar-footer{display:grid;gap:8px;align-content:end;padding-top:10px;border-top:1px solid var(--color-border-subtle)}.dashboard-status-pill,.dashboard-user-card{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:6px 8px;border-radius:var(--radius-control);background:transparent;border:1px solid transparent;justify-content:flex-start}.dashboard-user-card:hover:not(:disabled){background:var(--bg-tertiary);border-color:transparent}.dashboard-status-pill{width:auto;justify-self:start;border-color:var(--color-border-subtle)}.dashboard-status-pill span,.dashboard-user-copy span{display:block;font-size:var(--text-xs);font-weight:var(--weight-regular);color:var(--text-tertiary)}.dashboard-status-dot{width:8px;height:8px;border-radius:999px;background:var(--color-success-500)}.dashboard-status-dot.is-live{background:var(--color-info-500)}.dashboard-user-avatar{width:28px;height:28px;flex:0 0 28px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:var(--color-accent-soft);box-shadow:inset 0 0 0 1px #4c95e63d;color:var(--color-accent-400);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.02em}.dashboard-user-copy{min-width:0;text-align:left;line-height:1.3}.dashboard-user-copy strong{display:block;overflow:hidden;text-overflow:ellipsis;font-size:var(--text-md);font-weight:var(--weight-medium);color:var(--text-primary)}.dashboard-frame{min-width:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;align-content:start;padding:0 28px 32px;gap:20px}.dashboard-topbar{position:sticky;top:0;z-index:var(--z-topbar);display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:60px;margin:0 -28px;padding:10px 28px;border-bottom:1px solid var(--color-border-subtle);background:color-mix(in srgb,var(--color-bg-canvas) 88%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.dashboard-topbar-context{display:flex;align-items:center;min-height:36px;min-width:0}.dashboard-breadcrumbs{display:flex;align-items:center;gap:8px;font-family:var(--font-display);font-size:var(--text-xl);line-height:1.2;font-weight:var(--weight-semibold);letter-spacing:-.015em;color:var(--text-tertiary)}.dashboard-breadcrumbs .is-current{color:var(--text-primary)}.dashboard-topbar-titles h1{margin:0;font-size:var(--text-xl);line-height:1.2;font-weight:var(--weight-semibold)}.dashboard-topbar-actions{display:flex;align-items:center;gap:4px;flex-wrap:wrap;justify-content:flex-end}.dashboard-topbar-primary-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-right:8px;padding-right:12px;border-right:1px solid var(--color-border-subtle)}.dashboard-topbar-primary-actions button{min-height:34px}.dashboard-topbar-button{min-height:34px;min-width:34px;padding:0 10px;border-radius:var(--radius-control);background:transparent;border-color:transparent;color:var(--text-secondary)}.dashboard-topbar-button:hover:not(:disabled){background:var(--bg-tertiary);border-color:transparent;color:var(--text-primary)}.dashboard-topbar-button.active{background:var(--button-active-bg);border-color:var(--button-active-border);color:var(--text-primary)}.dashboard-inline-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--bg-tertiary);box-shadow:inset 0 0 0 1px var(--color-border-default);color:var(--text-secondary);font-family:var(--font-mono);font-size:10px;font-weight:var(--weight-semibold)}.dashboard-topbar-anchor{position:relative}.dashboard-popover{position:absolute;top:calc(100% + 8px);right:0;width:340px;max-width:min(340px,calc(100vw - 48px));padding:14px;border-radius:var(--radius-panel);border:1px solid var(--color-border-default);background:var(--color-surface-2);box-shadow:var(--shadow-md);z-index:var(--z-popover);display:grid;gap:12px}.dashboard-popover-header strong{display:block;font-size:var(--text-base);font-weight:var(--weight-semibold)}.dashboard-popover-header span{display:block;margin-top:2px;font-size:var(--text-sm);color:var(--text-tertiary)}.dashboard-key-list{display:grid;gap:6px}.dashboard-key-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:var(--radius-control);background:var(--color-surface-inset);border:1px solid var(--color-border-subtle)}.dashboard-key-copy{min-width:0}.dashboard-key-label{display:block;margin-bottom:2px;font-size:var(--text-sm);color:var(--text-secondary)}.dashboard-key-item code{display:block;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-primary);word-break:break-all}.dashboard-key-item button{min-height:32px;min-width:32px}.dashboard-eyebrow{display:inline-block;margin-bottom:8px;color:var(--text-tertiary);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.06em;text-transform:uppercase}.dashboard-main{min-width:0;display:grid;gap:16px}.dashboard-notification-center{position:fixed;top:120px;right:28px;width:360px;max-width:calc(100vw - 56px);border-radius:var(--radius-overlay);border:1px solid var(--color-border-default);background:var(--color-surface-2);box-shadow:var(--shadow-md);padding:16px;z-index:var(--z-popover);display:grid;gap:14px}.dashboard-notification-center-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.dashboard-notification-center-header strong{display:block;font-size:16px}.dashboard-notification-center-header span{display:block;margin-top:4px;color:var(--text-tertiary);font-size:12px}.dashboard-notification-list{display:grid;gap:10px;max-height:420px;overflow:auto}.dashboard-notification-item{display:grid;gap:4px;padding:12px 14px;border-radius:var(--radius-16);border:1px solid var(--color-border-subtle);background:#ffffff08}.dashboard-notification-item strong{font-size:13px}.dashboard-notification-item span{font-size:12px;color:var(--text-secondary)}.dashboard-notification-item.error{border-color:#f06f7a47;background:#f06f7a14}.dashboard-page-body{min-width:0}.dashboard-page-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:24px;align-items:start}.dashboard-page-grid>*{min-width:0}.dashboard-page-stack{display:grid;gap:24px}.dashboard-side-stack{display:grid;gap:24px;align-content:start}.dashboard-side-panel{border-radius:var(--radius-20);border:1px solid var(--color-border-subtle);background:var(--surface);padding:16px;display:grid;gap:12px}.dashboard-side-panel h3{margin:0;font-size:18px}.dashboard-side-panel p{margin:0;font-size:13px;color:var(--text-secondary)}.dashboard-side-list{display:grid;gap:10px}.dashboard-side-item{padding:10px 12px;border-radius:var(--radius-16);border:1px solid var(--color-border-subtle);background:transparent}.dashboard-side-item strong{display:block;font-size:13px}.dashboard-side-item span{display:block;margin-top:4px;font-size:12px;color:var(--text-tertiary)}.dashboard-workspace-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,520px);gap:24px;align-items:start}.dashboard-workspace-grid>*{min-width:0}.dashboard-workspace-stack{display:grid;gap:24px}.dashboard-workspace-panel{border-radius:var(--radius-panel);padding:20px;border:1px solid var(--color-border-subtle);background:var(--surface);box-shadow:none}html[data-theme=light] .dashboard-workspace-panel,html[data-theme=light] .card,html[data-theme=light] .table-wrapper{border-color:#0f172a14}html[data-theme=light] .table tbody tr:hover td{background:#00509e0d}html[data-theme=light] .table tbody tr.highlight td,html[data-theme=light] .table tbody tr.highlight:hover td{background:#00509e14}html[data-theme=light] button.primary:not([aria-pressed=true]){background:var(--button-primary-bg)!important;border-color:var(--button-primary-border)!important;color:var(--button-text-strong)!important}html[data-theme=light] button.primary:not([aria-pressed=true]):hover:not(:disabled){background:var(--button-primary-bg-hover)!important;border-color:var(--button-primary-border)!important;color:var(--button-text-strong)!important}.dashboard-workspace-panel.is-sticky{position:sticky;top:120px}.dashboard-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:14px}.dashboard-panel-header h2,.dashboard-panel-header h3{margin:0;color:var(--text-primary);font-size:var(--text-lg);font-weight:var(--weight-semibold);line-height:1.3}.locations-panel-title{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;font-family:var(--font-body);font-size:18px;font-weight:700;letter-spacing:-.02em}.locations-panel-title-location{color:var(--text-secondary);font-size:15px;font-weight:600;letter-spacing:-.01em}.locations-panel-title-location:before{content:"·";margin-right:10px;color:var(--text-tertiary);font-weight:500}.dashboard-panel-header p{margin:4px 0 0;color:var(--text-tertiary);font-size:12px}.dashboard-panel-section{display:grid;gap:16px}.dashboard-overlay-backdrop{position:fixed;inset:0;z-index:var(--z-modal-backdrop);background:var(--color-overlay-scrim);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.dashboard-overlay-backdrop--modal{display:flex;align-items:center;justify-content:center;padding:24px}.dashboard-overlay-backdrop--drawer{display:flex;justify-content:flex-end;align-items:stretch;padding:12px}.dashboard-overlay-panel{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:var(--dashboard-overlay-width, auto);max-height:calc(100vh - 48px);color:var(--text-primary);border-radius:var(--radius-overlay);border:1px solid var(--color-border-default);background:var(--color-surface-1);box-shadow:var(--shadow-lg);overflow:hidden}.dashboard-overlay-panel--modal{max-width:min(1200px,100%)}.dashboard-overlay-panel--drawer{width:min(1360px,calc(100vw - 24px));height:calc(100vh - 24px);max-height:calc(100vh - 24px)}.dashboard-overlay-header{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:60px;padding:12px 16px 12px 20px;border-bottom:1px solid var(--color-border-subtle);background:var(--color-surface-1)}.dashboard-overlay-title{min-width:0;font-size:var(--text-lg);font-weight:var(--weight-semibold);letter-spacing:-.01em}.dashboard-overlay-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.dashboard-overlay-close{width:34px;min-width:34px;height:34px;min-height:34px;padding:0;display:inline-grid;place-items:center;background:transparent;border-color:transparent;color:var(--text-tertiary)}.dashboard-overlay-close:hover:not(:disabled){background:var(--bg-tertiary);border-color:transparent;color:var(--text-primary)}.dashboard-overlay-close[data-icon][data-icon-only=true]{padding:0;min-width:34px}.dashboard-overlay-close[data-icon][data-icon-only=true]:before{--icon-size: 16px}.dashboard-overlay-body{padding:20px;overflow:auto}.dashboard-overlay-footer{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid var(--color-border-subtle);background:var(--color-surface-1)}.account-password-form{display:grid;gap:18px}.account-password-fields{display:grid;gap:16px}.account-password-field{display:grid;gap:6px}.account-password-field label{margin:0;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-secondary)}.account-password-modal{background:var(--color-surface-1)}.account-password-modal .dashboard-overlay-header{min-height:0;padding:20px 20px 4px;border-bottom:0;position:static;background:transparent}.account-password-modal .dashboard-overlay-title{font-size:var(--text-xl);font-weight:var(--weight-semibold);letter-spacing:-.015em;color:var(--text-primary)}.account-password-modal .dashboard-overlay-body{padding:12px 20px 20px;background:transparent}.account-password-modal .account-password-form{gap:18px;background:transparent}.account-password-modal .dashboard-input{min-height:40px}.account-password-modal .error,.account-password-modal .ok{margin:0}html[data-theme=light] .dashboard-overlay-backdrop{background:#0f172a2e;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}html[data-theme=light] .dashboard-overlay-panel{background:#fff!important;border-color:#0f172a14!important;box-shadow:0 18px 42px #0f172a1f}html[data-theme=light] .dashboard-overlay-header,html[data-theme=light] .dashboard-overlay-body,html[data-theme=light] .dashboard-overlay-footer,html[data-theme=light] .dashboard-overlay-actions{background:#fff!important}html[data-theme=light] .dashboard-overlay-title{color:#0f172a!important}html[data-theme=light] .dashboard-overlay-panel .dashboard-tabs,html[data-theme=light] .dashboard-overlay-panel .dashboard-segmented-control,html[data-theme=light] .dashboard-overlay-panel .dashboard-segmented-option,html[data-theme=light] .dashboard-overlay-panel .dashboard-tab-button,html[data-theme=light] .dashboard-overlay-panel .dashboard-input,html[data-theme=light] .dashboard-overlay-panel .dashboard-select,html[data-theme=light] .dashboard-overlay-panel details,html[data-theme=light] .dashboard-overlay-panel summary,html[data-theme=light] .dashboard-overlay-panel .dashboard-editor-main,html[data-theme=light] .dashboard-overlay-panel .dashboard-editor-card{background-color:#fff!important}html[data-theme=light] .dashboard-overlay-panel .dashboard-tab-button,html[data-theme=light] .dashboard-overlay-panel .dashboard-segmented-option,html[data-theme=light] .dashboard-overlay-panel .dashboard-input,html[data-theme=light] .dashboard-overlay-panel .dashboard-select,html[data-theme=light] .dashboard-overlay-panel details{border-color:#0f172a1f!important}html[data-theme=light] .dashboard-overlay-panel .dashboard-button:not(.dashboard-button--primary):not(.dashboard-button--danger){background:#fff!important;border-color:#0f172a1f!important;color:#0f172a!important}html[data-theme=light] .account-password-modal{background:#fff!important;border-color:#0f172a14!important;box-shadow:0 14px 30px #0f172a14!important}html[data-theme=light] .account-password-modal .dashboard-overlay-header,html[data-theme=light] .account-password-modal .dashboard-overlay-body,html[data-theme=light] .account-password-modal .account-password-form,html[data-theme=light] .account-password-modal .account-password-actions,html[data-theme=light] .account-password-modal .account-password-fields,html[data-theme=light] .account-password-modal .account-password-field{background:#fff!important}html[data-theme=light] .account-password-modal .account-password-field label{color:#475569}html[data-theme=light] .account-password-modal .dashboard-overlay-title{color:#0f172a}html[data-theme=light] .account-password-modal .dashboard-input{background-color:#fff!important;border-color:#0f172a1f!important;color:#0f172a!important}.account-password-actions{display:flex;justify-content:flex-end;gap:8px;width:100%;padding-top:4px}.account-password-actions .dashboard-button{min-width:96px;justify-content:center}html[data-theme=light] .account-password-modal .error,html[data-theme=light] .account-password-modal .ok{background:#fff;border-color:#0f172a1a;color:#0f172a}html[data-theme=light] .account-password-actions .dashboard-button{background:#fff;border-color:#0f172a1f;color:#0f172a}html[data-theme=light] .account-password-actions .dashboard-button--primary{background:var(--button-primary-bg);border-color:var(--button-primary-border);color:#fff}.selected-events-surface{display:grid;gap:0}.selected-events-count-chip{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:0 12px;border-radius:10px;border:1px solid color-mix(in srgb,var(--border) 78%,transparent);background:color-mix(in srgb,var(--surface-hover) 86%,transparent);color:var(--text-secondary);font-size:13px;font-weight:600;white-space:nowrap}.selected-events-summary{margin-bottom:20px;padding:16px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.selected-events-delete{background:color-mix(in srgb,var(--button-danger-bg) 92%,var(--surface));border-color:var(--button-danger-border);color:var(--accent-red);box-shadow:none}html[data-theme=light] .selected-events-modal{background:#fff;border-color:var(--border);box-shadow:0 18px 42px #0f172a1f}html[data-theme=light] .selected-events-surface,html[data-theme=light] .selected-events-surface.is-embedded{background:#fff}html[data-theme=light] .selected-events-count-chip{background:#fff;border-color:#0f172a1f;color:#475569}html[data-theme=light] .selected-events-modal .dashboard-overlay-header,html[data-theme=light] .selected-events-modal .dashboard-overlay-footer{background:#fff;border-color:var(--border)}html[data-theme=light] .selected-events-modal .dashboard-overlay-body{background:#fff}html[data-theme=light] .selected-events-summary,html[data-theme=light] .selected-events-table{background:#fff;border-color:#0f172a1a;box-shadow:none}html[data-theme=light] .selected-events-table.table-wrapper{padding:0}html[data-theme=light] .selected-events-table .table td,html[data-theme=light] .selected-events-table .table th{background:#fff}html[data-theme=light] .selected-events-table .table tbody tr:hover td{background:#f6f8fb}html[data-theme=light] .selected-events-delete{background:#f7e2e4;border-color:#d64b4b47;color:#b63e48}.assign-devices-action-label-short{display:none}.assign-devices-drawer{background:var(--surface);border-color:var(--border)}.assign-devices-drawer .dashboard-overlay-header,.assign-devices-drawer .dashboard-overlay-footer{background:transparent;border-color:var(--border)}.assign-devices-drawer .dashboard-overlay-body{padding:14px 20px 20px;background:transparent}.assign-devices-title{display:flex;flex-direction:column;gap:6px}.assign-devices-layout{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.assign-devices-zone{border-radius:14px;box-shadow:none}.assign-devices-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--text-tertiary)}.assign-devices-meta span:last-child{color:var(--text-secondary)}.assign-devices-list{flex:1;overflow:auto;border:0;border-radius:0;background:transparent}.assign-devices-item{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-bottom:1px solid color-mix(in srgb,var(--border) 56%,transparent);background:transparent;cursor:grab;transition:background var(--transition-fast)}.assign-devices-item-headline{display:flex;align-items:center;justify-content:space-between;gap:8px}.assign-devices-item-meta{margin-top:4px;display:flex;flex-wrap:wrap;gap:6px;font-size:12px;color:var(--text-tertiary)}.assign-devices-item-meta span{padding:1px 8px;border-radius:999px;border:1px solid color-mix(in srgb,var(--border) 70%,transparent);background:color-mix(in srgb,var(--surface) 85%,transparent)}.assign-devices-item:last-child{border-bottom:0}.assign-devices-item.is-selected{background:var(--button-active-bg)}html[data-theme=light] .assign-devices-drawer{background:#fff;box-shadow:0 18px 42px #0f172a1f}html[data-theme=light] .assign-devices-drawer .dashboard-overlay-header,html[data-theme=light] .assign-devices-drawer .dashboard-overlay-body,html[data-theme=light] .assign-devices-drawer .dashboard-overlay-footer{background:#fff}html[data-theme=light] .assign-devices-drawer .dashboard-button--primary{background:var(--button-primary-bg)!important;border-color:var(--button-primary-border)!important;color:var(--button-text-strong)!important}html[data-theme=light] .assign-devices-drawer .dashboard-button--primary:hover:not(:disabled){background:var(--button-primary-bg-hover)!important;border-color:var(--button-primary-border)!important;color:var(--button-text-strong)!important}html[data-theme=light] .assign-devices-zone{background:#fff!important;border:1px solid rgba(15,23,42,.1)!important;box-shadow:none!important}html[data-theme=light] .assign-devices-list,html[data-theme=light] .assign-devices-item{background:#fff}html[data-theme=light] .assign-devices-item-meta span{border-color:#0f172a24;background:#0f172a0a}html[data-theme=light] .assign-devices-item.is-selected{background:#00509e14}html[data-theme=light] .assign-devices-item .badge.success{background:#e8f5ee;border-color:#228a6033;color:#1f7a57}.dashboard-editor-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:20px;align-items:start}.dashboard-editor-sidebar{display:grid;gap:16px;align-content:start;position:sticky;top:0}.dashboard-editor-main{min-width:0;display:grid;gap:12px}.config-editor-modal{border-radius:14px;border-color:color-mix(in srgb,var(--border) 72%,transparent);background:var(--surface);box-shadow:0 12px 28px #0308122e}.config-editor-modal .dashboard-overlay-header,.config-editor-modal .dashboard-overlay-body,.config-editor-modal .dashboard-overlay-footer{background:transparent}.config-editor-modal .dashboard-overlay-header{padding:16px 18px 8px;border-bottom:0;position:static}.config-editor-modal .dashboard-overlay-title{font-size:17px;font-weight:700;letter-spacing:-.02em}.config-editor-modal .dashboard-overlay-body{padding:6px 18px 0}.config-editor-modal .dashboard-overlay-footer{padding:12px 18px 18px;border-top:0;position:static}.config-editor-modal .dashboard-overlay-actions{gap:8px;flex-wrap:nowrap}.config-editor-modal__titlebar{display:flex;align-items:center;gap:10px;min-width:0;width:100%;flex-wrap:wrap}.config-editor-modal__title{min-width:0;flex:1 1 auto}.config-editor-modal__mode{display:flex;min-width:0;flex:0 1 auto}.config-editor-modal__action-label-short{display:none}.config-editor-modal .dashboard-tabs{padding:0;border:0;border-radius:0;background:transparent}.config-editor-modal .dashboard-tab-button{border-color:color-mix(in srgb,var(--border) 76%,transparent);background:transparent}.config-editor-modal .dashboard-tab-button.is-active{border-color:var(--button-active-border);background:color-mix(in srgb,var(--button-active-bg) 84%,var(--surface))}.config-editor-modal .dashboard-segmented-control{background:transparent;border-color:transparent;padding:0;gap:6px}.config-editor-modal .dashboard-segmented-option{min-height:44px;border-color:color-mix(in srgb,var(--border) 76%,transparent);background:transparent;padding-inline:16px}.config-editor-modal .dashboard-button--danger{background:color-mix(in srgb,var(--button-danger-bg) 88%,var(--surface));border-color:color-mix(in srgb,var(--button-danger-border) 92%,transparent);color:var(--accent-red)}.config-editor-modal .dashboard-overlay-close{min-width:44px;min-height:44px;padding:0;border-radius:12px;background:transparent;border-color:color-mix(in srgb,var(--border) 76%,transparent)}.config-editor-modal__footer-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;width:100%}.config-editor-modal__action{min-width:108px}.config-editor-modal__action.config-editor-modal__action--push,.config-editor-modal__action.config-editor-modal__action--push:hover:not(:disabled){background:var(--button-primary-bg);border-color:var(--button-primary-border);color:var(--button-text-strong)}.config-editor-modal__action.config-editor-modal__action--push:hover:not(:disabled){background:var(--button-primary-bg-hover)}.config-editor-modal__action.config-editor-modal__action--save{background:var(--button-bg);border-color:var(--button-border-strong);color:var(--text-primary);font-weight:var(--weight-semibold)}.config-editor-modal__action.config-editor-modal__action--save:hover:not(:disabled){background:var(--button-bg-hover);border-color:var(--color-border-strong)}.config-editor-modal__action.config-editor-modal__action--discard{background:var(--button-danger-bg);border-color:var(--button-danger-border);color:var(--accent-red)}html[data-theme=light] .config-editor-modal{background:#fff;border-color:#0f172a14;box-shadow:0 16px 34px #0f172a1a}html[data-theme=light] .config-editor-modal .dashboard-overlay-header,html[data-theme=light] .config-editor-modal .dashboard-overlay-body,html[data-theme=light] .config-editor-modal .dashboard-overlay-footer,html[data-theme=light] .config-editor-modal .dashboard-editor-main,html[data-theme=light] .config-editor-modal__titlebar,html[data-theme=light] .config-editor-modal__footer-actions{background:#fff}html[data-theme=light] .config-editor-modal .dashboard-overlay-title{color:#0f172a}html[data-theme=light] .config-editor-modal .dashboard-tabs{background:#fff}html[data-theme=light] .config-editor-modal .dashboard-tab-button{border-color:#0f172a1f;background:#fff;color:#475569}html[data-theme=light] .config-editor-modal .dashboard-tab-button.is-active{border-color:#00509e47;background:#edf3ff;color:#00427f}html[data-theme=light] .config-editor-modal .dashboard-segmented-control{background:#fff;border-color:transparent}html[data-theme=light] .config-editor-modal .dashboard-segmented-option{color:#475569;background:#fff;border-color:#0f172a1f}html[data-theme=light] .config-editor-modal .dashboard-segmented-option.is-active.is-entrance-control{border-color:#00509e42;background:#eaf1ff;color:#00427f}html[data-theme=light] .config-editor-modal .dashboard-segmented-option.is-active.is-self-checkin{border-color:#228a6042;background:#eaf8f0;color:#156c4a}html[data-theme=light] .config-editor-modal .dashboard-segmented-option.is-active.is-ticketing{border-color:#b47d0042;background:#fff7df;color:#7a5200}html[data-theme=light] .config-editor-modal .dashboard-overlay-close{background:#fff;border-color:#0f172a1f;color:#334155}html[data-theme=light] .config-editor-modal .dashboard-button:not(.dashboard-button--primary):not(.dashboard-button--danger):not(.config-editor-modal__action--save):not(.config-editor-modal__action--push){background:#fff;border-color:#0f172a1f;color:#0f172a}html[data-theme=light] .config-editor-modal .dashboard-button--danger{background:#f5dcdf;border-color:#b9475147;color:#b2404b}html[data-theme=light] .config-editor-modal__action--save{background:#fff;border-color:#0f172a2e;color:#0f172a}html[data-theme=light] .config-editor-modal__action--push{background:#2f5fbf!important;border-color:#00509e42!important;color:#fff!important}html[data-theme=light] .config-editor-modal__action--push:disabled{background:#dfe7f7!important;border-color:#00509e29!important;color:#6c7ea6!important;opacity:1}html[data-theme=light] .config-editor-modal .dashboard-input,html[data-theme=light] .config-editor-modal .dashboard-select,html[data-theme=light] .config-editor-modal details,html[data-theme=light] .config-editor-modal .dashboard-editor-card{background-color:#fff}.dashboard-editor-card{border-radius:var(--radius-20);border:1px solid var(--color-border-subtle);background:linear-gradient(180deg,#ffffff0a,#ffffff03),#ffffff05;padding:16px 18px}.dashboard-editor-card strong{display:block;font-size:12px;color:var(--text-tertiary);letter-spacing:.08em;text-transform:uppercase}.dashboard-editor-card span,.dashboard-editor-card p{display:block;margin-top:8px;font-size:13px;color:var(--text-secondary)}.dashboard-editor-value{display:block;margin-top:8px;font-size:24px;line-height:1.05;letter-spacing:-.03em;font-weight:700;color:var(--text-primary)}.command-palette-backdrop{position:fixed;inset:0;background:var(--color-overlay-scrim-strong);z-index:var(--z-command-backdrop);display:grid;place-items:start center;padding:88px 24px 24px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.command-palette{width:min(640px,100%);border-radius:30px;border:1px solid rgba(255,255,255,.18);background:linear-gradient(180deg,#ffffff2e,#ffffff0a),#1c16286b;box-shadow:var(--shadow-lg);display:grid;gap:14px;padding:16px;-webkit-backdrop-filter:blur(40px) saturate(140%);backdrop-filter:blur(40px) saturate(140%)}.command-palette-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.command-palette-header strong{display:block;font-size:18px}.command-palette-header span{display:block;margin-top:4px;font-size:13px;color:var(--text-tertiary)}.command-palette-search input{min-height:52px;font-size:15px}.command-palette-list{display:grid;gap:8px;max-height:min(60vh,560px);overflow:auto}.command-palette-item{width:100%;min-height:58px;justify-content:flex-start;gap:12px;padding:14px 16px;border-radius:var(--radius-16);background:#ffffff08;border-color:var(--color-border-subtle)}.command-palette-item-copy{display:grid;gap:4px;text-align:left}.command-palette-item-copy strong{font-size:14px}.command-palette-item-copy span{color:var(--text-tertiary);font-size:12px}.auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr);background:radial-gradient(ellipse 60% 50% at 50% 0%,rgba(76,149,230,.07),transparent 70%),var(--app-bg)}html[data-theme=light] .auth-shell{background:var(--app-bg)}.auth-brand-mark{display:inline-flex;align-items:center;gap:12px}.auth-brand-mark img{width:36px;height:36px}.auth-brand-copy strong{display:block;font-size:var(--text-xl);font-weight:var(--weight-semibold);letter-spacing:-.015em;line-height:1.2}.auth-brand-copy span{display:block;margin-top:2px;color:var(--text-tertiary);font-size:var(--text-md)}.auth-panel{display:grid;place-items:center;padding:32px 16px}.auth-card{width:min(380px,100%);padding:28px;border-radius:var(--radius-overlay);border:1px solid var(--color-border-default);background:var(--color-surface-1);box-shadow:var(--shadow-lg)}.auth-card-header{margin-bottom:24px}.auth-card .error{margin:0 0 16px}.auth-footer{margin-top:24px;padding-top:20px;border-top:1px solid var(--color-border-subtle);flex-direction:column;justify-content:center;gap:10px}.auth-footer .brand-footer-logo{height:44px;padding:6px 10px;border-radius:8px}.auth-form{display:grid;gap:16px}.auth-form-field{display:grid;gap:0}.auth-form-field input{min-height:40px;font-size:var(--text-base)}.auth-remember-row{display:flex;align-items:center;gap:10px;margin:0;color:var(--text-secondary);font-size:var(--text-md)}.auth-submit{width:100%;min-height:40px;margin-top:4px;justify-content:center;font-size:var(--text-base)}.auth-submit:disabled{opacity:.45}.configs-type-badge-icon{display:none}.configs-table tbody td{font-weight:400}.configs-table thead th:nth-child(1),.configs-table tbody td:nth-child(1),.configs-table thead th:nth-child(5),.configs-table tbody td:nth-child(5),.configs-table thead th:nth-child(7),.configs-table tbody td:nth-child(7),.configs-table thead th:nth-child(8),.configs-table tbody td:nth-child(8){text-align:center}.configs-table tbody td:nth-child(2)>div,.configs-table tbody td:nth-child(5) span,.configs-table tbody td:nth-child(7) span{font-weight:400!important}.config-mode-badge{white-space:nowrap;flex-shrink:0;line-height:1}.dashboard-inline-note{display:inline-flex;align-items:center;min-height:30px;padding:0 10px;border-radius:999px;border:1px solid rgba(255,255,255,.1);background:#ffffff0a;color:var(--text-tertiary);font-size:12px;white-space:nowrap}.dashboard-section-block{display:grid;gap:12px;padding:0 0 8px;margin-bottom:16px;border-bottom:1px solid rgba(255,255,255,.08)}.dashboard-section-title{font-size:12px;color:var(--text-tertiary);font-weight:700;letter-spacing:.04em;text-transform:uppercase}.locations-create-block{border-bottom:0;padding-bottom:0;margin-bottom:0}.locations-create-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1.05fr) minmax(220px,.7fr);gap:12px 16px;align-items:start}.locations-create-field{min-width:0}.locations-create-field--name{grid-column:1}.locations-create-field--event{grid-column:2}.locations-create-field--keys{grid-column:3;grid-row:1}.locations-create-field--timezone{grid-column:1}.locations-create-field--notes{grid-column:2}.locations-create-actions{grid-column:3;grid-row:2;display:grid;gap:12px;align-content:start;align-self:start;min-height:0}.locations-create-active{display:inline-flex;gap:8px;align-items:center;cursor:pointer;text-transform:none;margin:0;min-height:40px}.locations-create-active span{font-size:13px;font-weight:600;color:var(--text-primary)}.locations-create-action{display:flex}.locations-create-action button{width:100%;min-width:0;min-height:46px;justify-content:center}html[data-theme=light] .locations-create-action button.primary{background:#2f5fbf;border-color:#00509e42;color:#fff}html[data-theme=light] .locations-create-action button.primary:disabled{background:#dfe7f7;border-color:#00509e29;color:#6c7ea6;opacity:1}.admin-action-label-short{display:none}.admin-page{display:grid;gap:16px;padding:8px 0}.admin-toolbar{display:flex;justify-content:flex-end;align-items:center;gap:12px}.admin-message{display:flex;align-items:center;gap:12px}.admin-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.admin-overview-item{display:grid;gap:6px;min-width:0;padding:10px 12px;border:1px solid color-mix(in srgb,var(--border) 78%,transparent);border-radius:10px;background:color-mix(in srgb,var(--surface) 96%,transparent)}.admin-overview-label{font-size:11px;color:var(--text-tertiary);font-weight:700;letter-spacing:.04em;text-transform:uppercase}.admin-overview-value{font-size:14px;font-weight:600;color:var(--text-primary)}.admin-overview-stack{display:flex;flex-wrap:wrap;gap:6px;min-width:0}.admin-overview-row{display:inline-flex;align-items:baseline;gap:6px;min-width:0;font-size:13px;color:var(--text-secondary)}.admin-inline-stats{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.admin-devices-delete-cell{display:grid;gap:8px;align-content:end;justify-items:end}.admin-devices-delete-meta{font-size:12px;color:var(--text-tertiary);font-weight:800}.admin-devices-delete-button{min-height:46px}.admin-inline-stat{display:inline-flex;align-items:baseline;gap:8px;padding:8px 10px;border-radius:999px;border:1px solid var(--color-border-subtle);background:#ffffff05}.admin-inline-stat strong{font-size:15px;font-weight:700;color:var(--text-primary)}.admin-inline-stat span{font-size:12px;color:var(--text-tertiary)}.devices-workspace{display:grid;gap:16px}.devices-toolbar{display:flex;flex-wrap:nowrap;gap:8px;align-items:center}.devices-toolbar-input{min-width:0;height:var(--control-height);min-height:var(--control-height)}.devices-toolbar-input--search{flex:0 1 240px;width:240px;max-width:240px}.devices-toolbar-input--event{flex:0 1 180px;width:180px;max-width:180px}.devices-toolbar-input--sort{flex:0 1 200px;width:200px;max-width:200px}.devices-refresh-button{min-height:var(--control-height);padding:0 14px}.devices-filter-chips{margin-bottom:0;margin-left:auto;justify-content:flex-end;flex-wrap:nowrap;flex:0 0 auto}.devices-table-shell{margin-top:0;overflow:hidden}.devices-table td{padding-top:12px;padding-bottom:12px}.devices-table thead th:nth-child(5),.devices-table tbody td:nth-child(5),.devices-table .devices-action-cell{width:1%;white-space:nowrap;text-align:right;padding-left:8px;padding-right:16px}.devices-device-cell{display:flex;align-items:center;gap:12px}.devices-device-cell .status-indicator{width:24px;height:24px;flex:0 0 24px}.devices-device-cell .status-indicator[data-icon]:before{--icon-size: 12px}.devices-device-copy{min-width:0;font-weight:var(--weight-medium)}.devices-config-select{min-width:0;width:min(100%,320px);min-height:34px;padding-top:6px;padding-bottom:6px;font-size:var(--text-md)}.devices-programme-point{display:grid;gap:2px;min-width:0}.devices-programme-point-name{display:flex;align-items:center;gap:8px;min-width:0;font-size:var(--text-md);font-weight:var(--weight-medium);color:var(--text-primary)}.devices-programme-point-live{width:7px;height:7px;flex:0 0 7px;margin:0 2px;border-radius:999px;background:var(--accent-green);box-shadow:0 0 0 3px var(--color-success-soft)}.devices-programme-point-name.is-idle{font-weight:var(--weight-regular);color:var(--text-tertiary)}.devices-programme-point-meta{font-size:var(--text-sm)}.devices-last-seen{font-family:var(--font-mono);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.devices-info-stack,.devices-battery{display:grid;gap:2px;min-width:0}.devices-battery-row{display:flex;align-items:center;gap:6px;min-width:0}.devices-battery-level{font-family:var(--font-mono);font-size:var(--text-md);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;color:var(--text-primary);white-space:nowrap}.devices-battery.is-low .devices-battery-level,.devices-battery.is-low .devices-battery-charge{color:var(--accent-amber)}.devices-battery-charge{--icon-size: 14px;color:var(--accent-green);gap:0}.devices-battery-charge:before{opacity:1}.devices-battery-updated{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:11rem}.devices-action-button{min-width:0;min-height:var(--control-height-sm);height:var(--control-height-sm);padding:0 12px}.devices-action-button.is-primary{background:var(--button-bg);border-color:var(--button-border);color:var(--text-primary)}.devices-action-button.is-primary:hover:not(:disabled){background:var(--color-accent-soft);border-color:var(--button-active-border);color:var(--text-primary)}.devices-action-button.is-muted{background:transparent;border-color:var(--color-border-subtle);color:var(--text-tertiary)}.devices-pagination{margin-top:0;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.devices-pagination-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.devices-page-size{width:120px;min-height:var(--control-height-sm);padding-top:4px;padding-bottom:4px;font-size:var(--text-md)}.devices-page-button{min-height:var(--control-height-sm);padding:0 12px}.devices-page-count{min-width:90px;text-align:center;font-variant-numeric:tabular-nums}.preview-shell{min-height:100vh;background:var(--app-bg);display:grid;grid-template-rows:auto minmax(0,1fr)}.preview-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 24px;border-bottom:1px solid var(--color-border-subtle);background:#080e1cdb;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.preview-toolbar-copy strong{display:block;font-size:18px}.preview-toolbar-copy span{display:block;margin-top:4px;color:var(--text-tertiary);font-size:12px}.preview-workspace{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:24px;padding:24px}.preview-sidebar{border-radius:var(--radius-24);border:1px solid var(--color-border-subtle);background:#080e1cc7;padding:20px;display:grid;gap:16px;align-content:start}.preview-sidebar h3{margin:0;font-size:18px}.preview-sidebar p,.preview-sidebar li{margin:0;color:var(--text-secondary);font-size:13px}.preview-sidebar ul{margin:0;padding-left:16px;display:grid;gap:8px}.preview-stage-card{border-radius:32px;border:1px solid var(--color-border-subtle);background:#060b14c7;box-shadow:var(--shadow-lg);overflow:hidden}.dashboard-surface-grid{display:grid;gap:24px}.workspace-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}.workspace-toolbar-copy{display:grid;gap:2px;min-width:0}.workspace-toolbar-copy strong{font-size:22px;line-height:1.05;letter-spacing:-.03em}.workspace-toolbar-copy span{font-size:12px;color:var(--text-tertiary)}.workspace-toolbar-group{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.calendar-period-controls{flex-wrap:nowrap;align-items:center}.calendar-month-grid{display:grid;gap:0;overflow:hidden;border:1px solid var(--color-border-subtle);border-radius:var(--radius-panel);background:var(--color-surface-inset)}.calendar-weekday-header{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-bottom:1px solid var(--color-border-subtle);background:var(--surface)}.calendar-weekday-label{padding:10px 12px;font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.06em;text-transform:uppercase;text-align:left;color:var(--text-tertiary)}.calendar-week{position:relative;padding:0;border-top:1px solid var(--color-border-default)}.calendar-weekday-header+.calendar-week{border-top:0}.calendar-week-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-day-cell{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:8px;background:var(--surface);border-left:1px solid var(--color-border-default);transition:background var(--transition-fast)}.calendar-day-cell:first-child{border-left:0}.calendar-day-cell.is-out-month{background:var(--color-surface-inset)}.calendar-day-cell.is-today{background:var(--color-accent-softer)}.calendar-day-number{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;font-size:var(--text-sm);font-weight:var(--weight-medium);font-variant-numeric:tabular-nums;color:var(--text-secondary)}.calendar-day-cell.is-out-month .calendar-day-number{color:var(--color-text-quaternary)}.calendar-day-cell.is-today .calendar-day-number{background:var(--button-primary-bg);color:var(--button-text-strong);font-weight:var(--weight-semibold)}.calendar-event-chip{border-width:1px;border-style:solid;font-weight:var(--weight-medium)}.calendar-mobile-agenda,.calendar-nav-label-short,.calendar-weekday-short{display:none}.dashboard-compact-list{display:grid;gap:8px}.dashboard-compact-list-button{width:100%;justify-content:flex-start;align-items:center;padding:12px 14px;border-radius:16px;background:#ffffff08;border-color:#ffffff1f;color:var(--text-primary)}.dashboard-compact-list-copy{min-width:0;text-align:left}.dashboard-compact-list-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:680;letter-spacing:-.02em}.dashboard-compact-list-meta{margin-top:4px;font-size:12px;color:var(--text-tertiary)}.workspace-summary-bar{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:18px 20px;margin-bottom:18px;border-radius:var(--radius-20);border:1px solid var(--color-border-subtle);background:radial-gradient(circle at top right,rgba(76,149,230,.12),transparent 40%),linear-gradient(180deg,#ffffff0a,#ffffff03),#ffffff05}.workspace-summary-copy{min-width:0}.workspace-summary-copy strong{display:block;font-size:28px;line-height:1.05;letter-spacing:-.03em}.workspace-summary-copy span{display:block;margin-top:6px;color:var(--text-tertiary);font-size:13px}.metric-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-bottom:18px}.metric-card{padding:16px 18px;border-radius:var(--radius-20);border:1px solid var(--color-border-subtle);background:linear-gradient(180deg,#ffffff0a,#ffffff03),#ffffff05}.metric-card strong{display:block;margin-bottom:8px;font-size:12px;color:var(--text-tertiary);letter-spacing:.08em;text-transform:uppercase}.metric-card span{display:block;font-size:28px;line-height:1.05;font-weight:700;letter-spacing:-.03em}.metric-card em{display:block;margin-top:8px;font-style:normal;font-size:12px;color:var(--text-secondary)}.workspace-field-grid{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:14px}.workspace-field-grid>*{flex:1 1 220px;min-width:0}.locations-toolbar{margin-bottom:8px}.locations-toolbar>:first-child{flex:0 1 320px}.locations-toolbar>:nth-child(2){flex:1 1 320px;align-self:end}.locations-toolbar>:last-child{flex:0 0 auto}.locations-toolbar-control{min-height:44px;border-radius:10px}.locations-filter-chips{align-self:end;justify-content:flex-start;flex-wrap:nowrap}.locations-filter-chips .filter-chip{min-height:44px;padding:0 16px;border-radius:10px}.locations-table-shell,.import-events-table-shell{margin-top:4px}.import-events-table th,.import-events-table td{text-align:left;vertical-align:middle}.import-events-table thead th:nth-child(4),.import-events-table tbody td:nth-child(4){text-align:center}.hosts-table-shell{margin-top:4px}.hosts-table th,.hosts-table td{text-align:left;vertical-align:middle}.hosts-table tbody td:nth-child(3),.hosts-table thead th:nth-child(3){text-align:center}.hosts-table tbody td:nth-child(4),.hosts-table thead th:nth-child(4){text-align:center}.hosts-table tbody td:nth-child(4)>div{justify-content:center}.hosts-table tbody td:nth-child(3) .badge{display:inline-flex;justify-content:center;align-items:center;min-width:4.25rem}.admin-devices-table-shell{margin-top:4px}.admin-devices-table th,.admin-devices-table td{text-align:left;vertical-align:middle}.admin-devices-table thead th:last-child,.admin-devices-table tbody td:last-child{text-align:center}.admin-devices-table tbody td:last-child>div{justify-content:center}.admin-devices-table--with-select thead th:first-child,.admin-devices-table--with-select tbody td:first-child{text-align:center}.admin-keys-table thead th:nth-child(3),.admin-keys-table tbody td:nth-child(3),.admin-keys-table thead th:nth-child(5),.admin-keys-table tbody td:nth-child(5),.admin-keys-table thead th:nth-child(6),.admin-keys-table tbody td:nth-child(6),.admin-keys-table thead th:nth-child(7),.admin-keys-table tbody td:nth-child(7){text-align:center}.admin-keys-table tbody td:nth-child(7)>div{justify-content:center}.admin-users-table thead th:nth-child(3),.admin-users-table tbody td:nth-child(3),.admin-users-table thead th:nth-child(5),.admin-users-table tbody td:nth-child(5),.admin-users-table thead th:nth-child(6),.admin-users-table tbody td:nth-child(6){text-align:center}.admin-users-table tbody td:nth-child(6)>div{justify-content:center}.admin-selected-events-table thead th:last-child,.admin-selected-events-table tbody td:last-child{text-align:center}.admin-selected-events-table tbody td:last-child>div{justify-content:center}.schedules-data-table thead th:nth-child(2),.schedules-data-table tbody td:nth-child(2),.schedules-data-table thead th:nth-child(7),.schedules-data-table tbody td:nth-child(7),.schedules-data-table thead th:nth-child(8),.schedules-data-table tbody td:nth-child(8),.schedules-data-table thead th:nth-child(9),.schedules-data-table tbody td:nth-child(9){text-align:center}.schedules-data-table tbody td:nth-child(9)>div{justify-content:center}.location-panel-schedules-table thead th:nth-child(4),.location-panel-schedules-table tbody td:nth-child(4){text-align:center}.report-mini-table th,.report-mini-table td{text-align:center}.report-mini-table-total-row td{font-weight:700;border-top:1px solid var(--border)}.selected-events-table .selected-events-data-table thead th:last-child,.selected-events-table .selected-events-data-table tbody td:last-child{text-align:center}.locations-table th,.locations-table td{text-align:left;vertical-align:middle}.locations-table tbody tr.highlight td,.locations-table tbody tr.highlight:hover td{background:color-mix(in srgb,var(--button-active-bg) 100%,transparent)}.locations-table tbody tr.highlight td:first-child{box-shadow:inset 4px 0 0 var(--accent)}.locations-table tbody td:nth-child(3),.locations-table thead th:nth-child(3),.locations-table tbody td:nth-child(4),.locations-table thead th:nth-child(4),.locations-table tbody td:nth-child(5),.locations-table thead th:nth-child(5){text-align:center}.locations-table tbody td:last-child,.locations-table thead th:last-child{text-align:right}.locations-table tbody td:nth-child(4) .badge,.locations-table tbody td:nth-child(5) .badge{display:inline-flex;justify-content:center;align-items:center;min-width:2.25rem}.configs-table-shell{margin-top:4px}.configs-table td:last-child,.configs-table th:last-child{width:148px}.configs-row-actions{display:grid;grid-template-columns:repeat(3,34px);gap:4px;justify-content:center}.configs-row-actions .dashboard-button{min-height:34px!important;width:34px!important;min-width:34px!important;background:transparent;border-color:var(--color-border-subtle);color:var(--text-secondary)}.configs-row-actions .dashboard-button:hover:not(:disabled){background:var(--bg-tertiary);border-color:var(--color-border-strong);color:var(--text-primary)}.configs-row-actions .dashboard-button--danger{color:var(--accent-red)}.configs-row-actions .dashboard-button--danger:hover:not(:disabled){background:var(--button-danger-bg);border-color:var(--button-danger-border);color:var(--accent-red)}.configs-type-badge.is-entrance-control{background:var(--color-accent-soft);border-color:#4c95e642;color:var(--color-accent-400)}.configs-type-badge.is-self-checkin{background:var(--color-success-soft);border-color:#34c79e42;color:var(--color-success-500)}.configs-type-badge.is-ticketing{background:var(--color-warning-soft);border-color:#f0b45242;color:var(--color-warning-500)}.locations-table td:last-child,.locations-table th:last-child{width:148px}.locations-row-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px}.locations-edit-button{min-height:36px;width:36px;min-width:36px;padding:0;border-radius:10px;justify-content:center;align-items:center;gap:0}.locations-delete-button{min-height:36px;width:36px;padding:0;border-radius:10px;justify-content:center;align-items:center;gap:0}.locations-row-actions button,.locations-schedule-row-actions button{background:transparent;border-color:var(--color-border-subtle);color:var(--text-secondary)}.locations-row-actions button:hover:not(:disabled),.locations-schedule-row-actions button:hover:not(:disabled){background:var(--bg-tertiary);border-color:var(--color-border-strong);color:var(--text-primary)}.locations-row-actions button.primary,.locations-row-actions button.primary:hover:not(:disabled){background:var(--button-active-bg);border-color:var(--button-active-border);color:var(--text-primary)}.locations-row-actions button.danger,.locations-schedule-row-actions button.danger{color:var(--danger)}.locations-row-actions button.danger:hover:not(:disabled),.locations-schedule-row-actions button.danger:hover:not(:disabled){background:var(--button-danger-bg);border-color:var(--button-danger-border);color:var(--danger)}.locations-schedule-row-actions{display:flex;justify-content:center;align-items:center;gap:8px}.locations-schedule-action-button{min-height:36px;width:36px;min-width:36px;padding:0;border-radius:10px;justify-content:center;align-items:center;gap:0}.workspace-legend{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.workspace-legend-item{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:var(--radius-pill);border:1px solid var(--color-border-subtle);background:#ffffff08;color:var(--text-secondary);font-size:12px}.workspace-legend-swatch{width:10px;height:10px;border-radius:999px;background:var(--color-accent-500)}.dashboard-tabs{display:flex;flex-wrap:wrap;gap:2px;margin-bottom:16px;padding:3px;width:fit-content;max-width:100%;border:1px solid var(--color-border-subtle);border-radius:calc(var(--radius-control) + 3px);background:var(--color-surface-inset)}.dashboard-tabs--flat{width:auto;gap:4px;padding:0;border:0;border-bottom:1px solid var(--color-border-subtle);border-radius:0;background:transparent}.dashboard-tab-button{min-height:32px;padding:0 14px;border-radius:var(--radius-control);border:1px solid transparent;background:transparent;color:var(--text-tertiary);font-weight:var(--weight-medium);cursor:pointer}.dashboard-tab-button:hover:not(:disabled){background:transparent;border-color:transparent;color:var(--text-primary)}.dashboard-tab-button.is-active,.dashboard-tab-button.is-active:hover:not(:disabled){background:var(--color-surface-3);border-color:var(--color-border-default);color:var(--text-primary)}.dashboard-tabs--flat .dashboard-tab-button{min-height:38px;margin-bottom:-1px;border:0;border-bottom:2px solid transparent;border-radius:0;padding:0 12px}.dashboard-tabs--flat .dashboard-tab-button.is-active,.dashboard-tabs--flat .dashboard-tab-button.is-active:hover:not(:disabled){background:transparent;border-bottom-color:var(--accent-blue);color:var(--text-primary)}.dashboard-tab-button:disabled,.dashboard-tab-button.is-disabled{color:var(--text-tertiary);cursor:not-allowed;opacity:.5}.dashboard-segmented-control{display:flex;gap:2px;padding:3px;overflow:hidden;border:1px solid var(--color-border-subtle);border-radius:calc(var(--radius-control) + 3px);background:var(--color-surface-inset)}.dashboard-segmented-option{min-width:var(--dashboard-segment-min-width, 148px);min-height:32px;padding:0 12px;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:var(--radius-control);background:transparent;color:var(--text-tertiary);font-size:var(--text-md);font-weight:var(--weight-medium);cursor:pointer}.dashboard-segmented-option span{white-space:nowrap}.dashboard-segmented-option:hover:not(:disabled){background:transparent;border-color:transparent;color:var(--text-primary)}.dashboard-segmented-option.is-active,.dashboard-segmented-option.is-active:hover:not(:disabled){border-color:var(--color-border-default);background:var(--color-surface-3);color:var(--text-primary)}.dashboard-segmented-option.is-active.is-entrance-control{border-color:#4c95e652;background:#4c95e61f;color:#dbe7ff}.dashboard-segmented-option.is-active.is-self-checkin{border-color:#34c79e52;background:#34c79e1f;color:#d6f5ea}.dashboard-segmented-option.is-active.is-ticketing{border-color:#f0b45252;background:#f0b4521f;color:#fbecd0}html[data-theme=light] .dashboard-segmented-option.is-active.is-entrance-control{color:#1e4799}html[data-theme=light] .dashboard-segmented-option.is-active.is-self-checkin{color:#156c4a}html[data-theme=light] .dashboard-segmented-option.is-active.is-ticketing{color:#7a5200}.dashboard-field-label{display:block;margin-bottom:6px;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-secondary)}.dashboard-field-label.has-badge{display:flex;align-items:center;gap:8px}.dashboard-field-badge{padding:2px 6px;border-radius:var(--radius-pill);border:1px solid rgba(76,149,230,.28);background:var(--color-accent-soft);color:var(--accent);font-size:10px;font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.06em}.dashboard-input,.dashboard-select{width:100%;min-height:var(--control-height);padding:8px var(--control-padding-x);border:1px solid var(--input-border);border-radius:var(--radius-control);background-color:var(--input-bg);color:var(--text-primary);font-size:var(--text-base);box-shadow:none;outline:none}.dashboard-select{padding-right:34px}.dashboard-input:focus,.dashboard-select:focus{border-color:var(--input-border-focus);box-shadow:var(--focus-ring)}.dashboard-button{min-height:var(--control-height);padding:0 14px;border-radius:var(--radius-control);border:1px solid var(--button-border);background:var(--button-bg);color:var(--text-primary);font-weight:var(--weight-medium);display:inline-flex;align-items:center;gap:8px;cursor:pointer}.dashboard-button:hover:not(:disabled){background:var(--button-bg-hover);border-color:var(--button-border-strong)}.dashboard-button--primary,.dashboard-button--primary:hover:not(:disabled){background:var(--button-primary-bg);color:var(--button-text-strong);border-color:var(--button-primary-border);font-weight:var(--weight-semibold)}.dashboard-button--primary:hover:not(:disabled){background:var(--button-primary-bg-hover)}.dashboard-button--danger,.dashboard-button--danger:hover:not(:disabled){background:var(--button-danger-bg);color:var(--accent-red);border-color:var(--button-danger-border)}.dashboard-button--danger:hover:not(:disabled){background:var(--button-danger-bg-hover)}.dashboard-button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:1280px){.dashboard-editor-layout,.dashboard-workspace-grid{grid-template-columns:minmax(0,1fr)}.dashboard-workspace-panel.is-sticky,.dashboard-editor-sidebar{position:static}}[data-icon=search]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E")}[data-icon=bell]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 8a6 6 0 0 0-12 0c0 7-3 9-3 9h18s-3-2-3-9'/%3E%3Cpath d='M13.73 21a2 2 0 0 1-3.46 0'/%3E%3C/svg%3E")}[data-icon=calendar]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E")}[data-icon=sliders]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='4' y1='21' x2='4' y2='14'/%3E%3Cline x1='4' y1='10' x2='4' y2='3'/%3E%3Cline x1='12' y1='21' x2='12' y2='12'/%3E%3Cline x1='12' y1='8' x2='12' y2='3'/%3E%3Cline x1='20' y1='21' x2='20' y2='16'/%3E%3Cline x1='20' y1='12' x2='20' y2='3'/%3E%3Cline x1='1' y1='14' x2='7' y2='14'/%3E%3Cline x1='9' y1='8' x2='15' y2='8'/%3E%3Cline x1='17' y1='16' x2='23' y2='16'/%3E%3C/svg%3E")}[data-icon=map]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolygon points='1 6 8 2 16 6 23 2 23 18 16 22 8 18 1 22 1 6'/%3E%3Cline x1='8' y1='2' x2='8' y2='18'/%3E%3Cline x1='16' y1='6' x2='16' y2='22'/%3E%3C/svg%3E")}[data-icon=globe]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18'/%3E%3Cpath d='M12 3c2.7 2.4 4.2 5.6 4.2 9S14.7 18.6 12 21'/%3E%3Cpath d='M12 3c-2.7 2.4-4.2 5.6-4.2 9S9.3 18.6 12 21'/%3E%3Cpath d='M5.5 7.5c1.9 1 4.2 1.5 6.5 1.5s4.6-.5 6.5-1.5'/%3E%3Cpath d='M5.5 16.5c1.9-1 4.2-1.5 6.5-1.5s4.6.5 6.5 1.5'/%3E%3C/svg%3E")}[data-icon=shield]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/%3E%3C/svg%3E")}[data-icon=list-checks]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 6h8'/%3E%3Cpath d='M13 12h8'/%3E%3Cpath d='M13 18h8'/%3E%3Cpath d='M3 6l1.5 1.5L7 4'/%3E%3Cpath d='M3 12l1.5 1.5L7 10'/%3E%3Cpath d='M3 18l1.5 1.5L7 16'/%3E%3C/svg%3E")}[data-icon=spark]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l1.9 5.1L19 10l-5.1 1.9L12 17l-1.9-5.1L5 10l5.1-1.9L12 3z'/%3E%3C/svg%3E")}[data-icon=command]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 3a3 3 0 1 0 0 6h3V6a3 3 0 0 0-3-3z'/%3E%3Cpath d='M6 3a3 3 0 1 1 0 6H3V6a3 3 0 0 1 3-3z'/%3E%3Cpath d='M18 21a3 3 0 1 1 0-6h3v3a3 3 0 0 1-3 3z'/%3E%3Cpath d='M6 21a3 3 0 0 0 0-6H3v3a3 3 0 0 0 3 3z'/%3E%3Cpath d='M8 9h8v6H8z'/%3E%3C/svg%3E")}[data-icon=moon]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12.79A9 9 0 1 1 11.21 3c0 .38.03.75.09 1.12A7 7 0 0 0 19.88 12c.37.06.74.09 1.12.09Z'/%3E%3C/svg%3E")}[data-icon=sun]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2v2'/%3E%3Cpath d='M12 20v2'/%3E%3Cpath d='M4.93 4.93l1.41 1.41'/%3E%3Cpath d='M17.66 17.66l1.41 1.41'/%3E%3Cpath d='M2 12h2'/%3E%3Cpath d='M20 12h2'/%3E%3Cpath d='M6.34 17.66l-1.41 1.41'/%3E%3Cpath d='M19.07 4.93l-1.41 1.41'/%3E%3C/svg%3E")}.policy-page{display:grid;gap:16px;min-width:0}.policy-toolbar{gap:10px;padding:14px 18px}.policy-toolbar-row{display:flex;align-items:center;gap:14px 24px;flex-wrap:wrap}.policy-toolbar-field{display:grid;gap:4px;flex:1 1 260px;max-width:400px;min-width:0}.policy-toolbar-label{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-tertiary)}.policy-toolbar-actions{display:flex;align-items:flex-end;gap:8px;margin-left:auto;align-self:flex-end}.policy-save-button{min-width:128px;justify-content:center}.policy-toolbar-status{display:flex;align-items:center;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;padding-top:12px;border-top:1px solid var(--color-border-subtle)}.policy-toolbar-status .policy-context-switches{flex:0 1 auto}.policy-save-state{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.policy-link-button.is-danger{color:var(--danger)}.policy-link-button.is-danger:hover:not(:disabled){background:var(--color-danger-soft);color:var(--danger)}.policy-add-body{display:grid;gap:20px}.policy-add-step{display:grid;gap:10px}.policy-add-step-label{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-secondary)}.policy-add-step .dashboard-segmented-control{justify-self:start;max-width:100%}.policy-add-footer{display:flex;justify-content:flex-end;gap:8px;width:100%}.policy-picker-copy{display:grid;min-width:0}.policy-picker-meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-tertiary);font-size:var(--text-sm)}.policy-paid-check{display:flex;align-items:flex-start;gap:10px;margin:0;padding:10px 12px;border:1px solid var(--color-border-default);border-radius:var(--radius-control);background:var(--color-surface-inset);cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast)}.policy-paid-check:hover{border-color:var(--color-border-strong)}.policy-paid-check.is-checked{border-color:#f0b45266;background:var(--color-warning-soft)}.policy-paid-check input{margin-top:2px}.policy-paid-check.is-disabled{cursor:not-allowed;opacity:.55}.policy-paid-check.is-disabled:hover{border-color:var(--color-border-default)}.policy-paid-copy{display:grid;gap:2px;color:var(--text-primary);font-size:var(--text-base);font-weight:var(--weight-medium)}.policy-paid-copy small{color:var(--text-tertiary);font-size:var(--text-xs);font-weight:var(--weight-regular)}.policy-editor-paid{display:flex;align-items:flex-end;padding-top:18px}.policy-editor-paid .policy-paid-check{width:100%}.policy-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,40%);gap:20px;align-items:start}.policy-builder{display:grid;gap:16px;min-width:0}.policy-preview{min-width:0;position:sticky;top:80px}.policy-panel{display:grid;gap:14px;padding:18px 20px;border:1px solid var(--color-border-subtle);border-radius:var(--radius-panel);background:var(--surface)}.policy-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.policy-panel-header>div:first-child{flex:1 1 260px;min-width:0}.policy-panel-header h3,.policy-preview-header h3{margin:0;font-size:var(--text-lg);font-weight:var(--weight-semibold)}.policy-panel-actions{display:flex;align-items:center;gap:8px}.policy-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:20px;margin-left:6px;padding:0 6px;border-radius:999px;background:var(--bg-tertiary);color:var(--text-secondary);font-family:var(--font-mono);font-size:var(--text-xs);vertical-align:2px}.policy-hint{margin:4px 0 0;color:var(--text-tertiary);font-size:var(--text-sm);line-height:1.45}.policy-attr-hint{display:inline-block;margin-top:4px;color:var(--color-text-quaternary);font-family:var(--font-mono);font-size:11px}.policy-context{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}.policy-context-switches{display:flex;gap:12px 28px;flex-wrap:wrap}.policy-switch{display:inline-flex;align-items:center;gap:10px;margin:0;cursor:pointer;color:var(--text-primary);font-size:var(--text-md);font-weight:var(--weight-medium)}.policy-switch input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.policy-switch-track{position:relative;flex:0 0 34px;width:34px;height:20px;border-radius:999px;background:var(--toggle-track-bg);transition:background var(--transition-fast)}.policy-switch-track:after{content:"";position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:var(--toggle-knob-bg);transition:transform var(--transition-fast)}.policy-switch input:checked+.policy-switch-track{background:var(--toggle-track-active-bg)}.policy-switch input:checked+.policy-switch-track:after{transform:translate(14px)}.policy-switch input:focus-visible+.policy-switch-track{box-shadow:var(--focus-ring)}.policy-switch-copy{display:grid;line-height:1.3}.policy-switch-copy small{color:var(--text-tertiary);font-size:var(--text-xs);font-weight:var(--weight-regular)}.policy-disclosure{justify-self:start;min-height:28px;padding:0 6px 0 2px;gap:6px;border-color:transparent;background:transparent;color:var(--text-secondary);font-size:var(--text-sm)}.policy-disclosure:hover:not(:disabled){background:var(--bg-tertiary);border-color:transparent;color:var(--text-primary)}.policy-disclosure-chevron{width:7px;height:7px;margin:0 4px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);transition:transform var(--transition-fast)}.policy-disclosure[aria-expanded=true] .policy-disclosure-chevron{transform:rotate(45deg)}.policy-link-button{min-height:28px;padding:0 8px;border-color:transparent;background:transparent;color:var(--accent);font-size:var(--text-sm)}.policy-link-button:hover:not(:disabled){background:var(--color-accent-softer);border-color:transparent;color:var(--accent-blue-hover)}.policy-picker{display:grid;gap:10px}.policy-picker-toolbar{display:flex;align-items:center;gap:6px}.policy-picker-toolbar .dashboard-input{flex:1 1 auto}.policy-picker-list{display:grid;max-height:300px;overflow:auto;border:1px solid var(--color-border-subtle);border-radius:var(--radius-control);background:var(--color-surface-inset)}.policy-picker-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:10px;margin:0;padding:9px 12px;border-top:1px solid var(--color-border-subtle);color:var(--text-primary);font-size:var(--text-base);font-weight:var(--weight-regular);cursor:pointer;transition:background var(--transition-fast)}.policy-picker-item:first-child{border-top:0}.policy-picker-item:hover{background:var(--bg-tertiary)}.policy-picker-item.is-checked{background:var(--color-accent-soft)}.policy-picker-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.policy-picker-id{color:var(--text-tertiary);font-family:var(--font-mono);font-size:var(--text-xs)}.policy-picker-empty{margin:0;padding:18px 12px;text-align:center}.policy-picker-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.policy-picker-footer>.dashboard-button{margin-left:auto}.policy-picker-time{display:flex;align-items:center;gap:8px;flex:1 1 100%;order:3;color:var(--text-tertiary)}.policy-picker-time .dashboard-input{flex:1 1 0;min-width:0}.policy-rule-list{display:grid;margin:0;padding:0;list-style:none;border:1px solid var(--color-border-subtle);border-radius:var(--radius-control);overflow:hidden}.policy-rule{border-top:1px solid var(--color-border-subtle);background:var(--surface)}.policy-rule:first-child{border-top:0}.policy-rule.is-expanded{background:var(--color-surface-2);box-shadow:inset 2px 0 0 var(--accent)}.policy-rule-row{display:grid;grid-template-columns:24px auto minmax(0,1fr) auto;align-items:center;gap:10px;min-height:56px;padding:8px 10px 8px 12px}.policy-rule-index{color:var(--text-tertiary);font-family:var(--font-mono);font-size:var(--text-sm);text-align:center}.policy-type-pill{display:inline-flex;align-items:center;min-height:22px;padding:0 8px;border-radius:var(--radius-pill);border:1px solid var(--color-border-default);font-size:var(--text-xs);font-weight:var(--weight-semibold);white-space:nowrap}.policy-type-pill.is-allow{color:var(--color-success-500);background:var(--color-success-soft);border-color:#34c79e42}.policy-type-pill.is-deny{color:var(--color-danger-500);background:var(--color-danger-soft);border-color:#f2737d42}.policy-type-pill.is-continue{color:var(--color-info-500);background:var(--color-info-soft);border-color:#6cc4ff42}.policy-rule-main{display:grid;gap:1px;min-width:0}.policy-rule-comment{min-height:28px;padding:2px 6px;margin-left:-6px;border-color:transparent;background:transparent;font-size:var(--text-base);font-weight:var(--weight-medium)}.policy-rule-comment:hover:not(:focus){border-color:var(--color-border-default)}.policy-rule-comment:focus{background:var(--input-bg)}.policy-rule-summary{justify-content:flex-start;min-height:22px;padding:0;border:0;background:transparent;color:var(--text-tertiary);font-size:var(--text-sm);font-weight:var(--weight-regular);overflow:hidden;text-overflow:ellipsis}.policy-rule-summary:hover:not(:disabled){background:transparent;color:var(--text-primary)}.policy-rule-actions{display:flex;align-items:center;gap:2px}.policy-icon-button,.policy-icon-button[data-icon][data-icon-only=true]{--icon-size: 15px;width:30px;min-width:30px;min-height:30px;padding:0;border-color:transparent;background:transparent;color:var(--text-tertiary)}.policy-icon-button:hover:not(:disabled){background:var(--bg-tertiary);border-color:transparent;color:var(--text-primary)}.policy-icon-button.is-danger:hover:not(:disabled){background:var(--button-danger-bg);color:var(--danger)}.policy-icon-button:disabled{opacity:.3}.policy-expand.is-open{background:var(--button-active-bg);color:var(--text-primary)}@media(hover:hover){.policy-rule-row .policy-icon-button:not(.policy-expand){opacity:0}.policy-rule-row:hover .policy-icon-button:not(:disabled),.policy-rule-row:focus-within .policy-icon-button:not(:disabled),.policy-rule.is-expanded .policy-icon-button:not(:disabled){opacity:1}}.policy-rule--final{background:var(--color-surface-inset)}.policy-rule--final.is-off{opacity:.7}.policy-rule-final-title{font-weight:var(--weight-medium)}.policy-rule-final-meta{color:var(--text-tertiary);font-size:var(--text-sm)}.policy-rule--final.is-off .policy-rule-final-meta{color:var(--color-warning-500)}.policy-switch--compact{justify-self:end;padding-right:4px}.policy-rules-empty{margin:-4px 0 0}.policy-rule-editor{display:grid;gap:14px;padding:4px 16px 18px 46px}.policy-editor-row{display:grid;gap:2px}.policy-type-switch{display:inline-flex;justify-self:start;gap:2px;padding:3px;border:1px solid var(--color-border-subtle);border-radius:calc(var(--radius-control) + 3px);background:var(--color-surface-inset)}.policy-type-option{min-height:30px;padding:0 14px;border-color:transparent;background:transparent;color:var(--text-tertiary)}.policy-type-option:hover:not(:disabled){background:transparent;border-color:transparent;color:var(--text-primary)}.policy-type-option.is-active.is-allow,.policy-type-option.is-active.is-allow:hover:not(:disabled){background:var(--color-success-soft);border-color:#34c79e4d;color:var(--color-success-500)}.policy-type-option.is-active.is-deny,.policy-type-option.is-active.is-deny:hover:not(:disabled){background:var(--color-danger-soft);border-color:#f2737d4d;color:var(--color-danger-500)}.policy-type-option.is-active.is-continue,.policy-type-option.is-active.is-continue:hover:not(:disabled){background:var(--color-info-soft);border-color:#6cc4ff4d;color:var(--color-info-500)}.policy-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}.policy-editor-grid--advanced{padding:14px;border:1px solid var(--color-border-subtle);border-radius:var(--radius-control);background:var(--color-surface-inset)}.policy-whole-day{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.policy-whole-day .dashboard-input{width:auto;min-height:var(--control-height-sm)}.policy-whole-day button{min-height:var(--control-height-sm)}.policy-preview-card{display:grid;gap:12px;padding:18px 20px;border:1px solid var(--color-border-subtle);border-radius:var(--radius-panel);background:var(--surface)}.policy-preview-header strong{color:var(--text-secondary);font-weight:var(--weight-medium)}.policy-xml-actions{display:flex;gap:8px}.policy-copy-button{flex:1 1 auto;justify-content:center;min-height:44px;font-size:var(--text-base)}.policy-download-button[data-icon][data-icon-only=true]{min-width:44px;min-height:44px}.policy-xml{margin:0;max-height:min(60vh,620px);overflow:auto;padding:14px;border-radius:var(--radius-control);border:1px solid var(--color-border-subtle);background:var(--color-surface-inset);color:var(--text-primary);font-family:var(--font-mono);font-size:12px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}.policy-issues{margin:0;padding:10px 12px 10px 28px;border-radius:var(--radius-control);font-size:var(--text-sm);line-height:1.45}.policy-issues.is-error{color:var(--color-danger-500);background:var(--color-danger-soft)}.policy-issues.is-warning{color:var(--color-warning-500);background:var(--color-warning-soft)}@media(max-width:1240px){.policy-layout{grid-template-columns:1fr}.policy-preview{position:static}}[data-icon=arrow-up]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='12' y1='19' x2='12' y2='5'/%3E%3Cpolyline points='5 12 12 5 19 12'/%3E%3C/svg%3E")}[data-icon=arrow-down]{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='12' y1='5' x2='12' y2='19'/%3E%3Cpolyline points='19 12 12 19 5 12'/%3E%3C/svg%3E")}@media(max-width:1240px){.dashboard-shell{--sidebar-width: 200px}.dashboard-frame{padding-left:20px;padding-right:20px}.dashboard-topbar{margin:0 -20px;padding-left:20px;padding-right:20px}.dashboard-page-grid,.preview-workspace,.auth-shell{grid-template-columns:1fr}}.location-schedule-timeline-card{padding:16px;border-radius:var(--radius-panel);border:1px solid var(--color-border-subtle);background:var(--color-surface-inset);margin-bottom:16px;min-width:0;max-width:100%}.schedule-timeline-label{margin-bottom:12px;font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary)}.schedule-timeline{display:grid;gap:12px}.schedule-timeline-scroll{overflow-x:auto;max-width:100%;min-width:0;-webkit-overflow-scrolling:touch}.schedule-timeline-canvas{display:grid;gap:12px;min-width:760px}.schedule-timeline-axis,.schedule-timeline-row{display:grid;grid-template-columns:84px minmax(640px,1fr);gap:12px}.schedule-timeline-axis{align-items:end}.schedule-timeline-axis-hours{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:10px;font-weight:var(--weight-medium);color:var(--text-tertiary)}.schedule-timeline-rows{display:grid;gap:16px}.schedule-timeline-day-label{font-size:12px;font-weight:700;color:var(--text-tertiary);padding-top:6px;white-space:nowrap}.schedule-timeline-track{position:relative;height:44px;border-radius:var(--radius-control);background:var(--surface);border:1px solid var(--color-border-subtle);overflow:hidden}.schedule-timeline-track-grid{position:absolute;inset:0;background-image:repeating-linear-gradient(to right,var(--border) 0,var(--border) 1px,transparent 1px,transparent calc(100% / 24));opacity:.35;pointer-events:none}.schedule-timeline-block{position:absolute;box-sizing:border-box;top:6px;bottom:6px;border-radius:6px;padding:4px 8px;color:var(--text-primary);display:flex;flex-direction:column;justify-content:center;gap:2px;overflow:hidden;z-index:1}.schedule-timeline-block.is-clickable{cursor:pointer}.schedule-timeline-block-headline{font-size:11px;font-weight:600;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.schedule-timeline-block-headline-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.schedule-timeline-block-meta{font-size:10px;color:var(--text-secondary);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.schedule-timeline-block-priority{font-size:10px;font-weight:700;opacity:.8;flex:0 0 auto}.admin-check-list{display:flex;flex-wrap:wrap;gap:6px}.admin-check-chip,label.admin-check-chip{display:inline-flex;align-items:center;gap:8px;min-height:var(--control-height-sm);margin:0;padding:0 12px;border-radius:var(--radius-control);border:1px solid var(--color-border-default);background:transparent;color:var(--text-secondary);font-size:var(--text-md);font-weight:var(--weight-medium);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.admin-check-chip:hover:not(:disabled){background:var(--bg-tertiary);border-color:var(--color-border-strong);color:var(--text-primary)}.admin-check-chip.is-checked,.admin-check-chip.is-checked:hover:not(:disabled){background:var(--button-active-bg);border-color:var(--button-active-border);color:var(--text-primary)}.admin-check-chip:focus-within{box-shadow:var(--focus-ring)}.downloads-groups{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(360px,100%),1fr))}.downloads-group{padding:20px;border-radius:var(--radius-panel);border:1px solid var(--color-border-subtle);background:var(--color-surface-inset)}.downloads-group-title{margin:0 0 14px;font-size:var(--text-lg);font-weight:var(--weight-semibold)}.downloads-items{display:grid;gap:12px}.downloads-item{display:grid;gap:8px;justify-items:center;align-content:start;padding:24px 16px 20px;border-radius:var(--radius-panel);border:1px solid var(--color-border-subtle);background:var(--surface);text-align:center}.downloads-item-logo{width:48px;height:48px;margin-bottom:4px;display:grid;place-items:center;border-radius:var(--radius-panel);border:1px solid var(--color-border-default);background:var(--color-surface-2);font-size:var(--text-lg);font-weight:var(--weight-bold)}.downloads-item-logo-img{width:28px;height:28px;object-fit:contain}.downloads-item-platform{font-size:var(--text-2xl);font-weight:var(--weight-semibold);letter-spacing:-.015em;line-height:1.2}.downloads-item-version{margin-bottom:8px;font-family:var(--font-mono);font-size:var(--text-md);color:var(--text-secondary)}.downloads-item small{font-size:var(--text-sm)}.brand-footer{display:flex;align-items:center;gap:10px;color:var(--text-tertiary);font-size:var(--text-sm)}.brand-footer-logo{display:inline-flex;align-items:center;height:28px;padding:4px 7px;border-radius:6px;background:#fff;box-shadow:0 0 0 1px var(--color-border-subtle)}.brand-footer-logo img{display:block;width:auto;height:100%}.dashboard-footer{justify-content:flex-start;padding:16px 0 0;border-top:1px solid var(--color-border-subtle)}html[data-theme=light] .brand-footer-logo{box-shadow:none;padding:0;background:transparent}.assign-devices-platform{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}.assign-devices-platform-label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-secondary)}.assign-devices-item-badges{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto}.dashboard-topbar-account-mobile{display:none}@media(max-width:767px){.dashboard-shell,.dashboard-shell.sidebar-collapsed{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;grid-template-columns:minmax(0,1fr)}.dashboard-frame{order:1;flex:1 1 auto;min-width:0;padding:0 12px calc(78px + env(safe-area-inset-bottom,0px));gap:12px}.dashboard-topbar{top:0;flex-wrap:nowrap;align-items:center;gap:8px;margin:0 -12px;padding:8px 12px;min-height:56px}.dashboard-topbar-primary-actions{margin-right:2px;padding-right:6px}.dashboard-topbar-context{flex:1 1 auto;width:auto;min-width:0;padding-inline:2px}.dashboard-breadcrumbs{font-size:16px;flex-wrap:nowrap;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-topbar-actions{flex:0 0 auto;width:auto;justify-content:flex-end;flex-wrap:nowrap;gap:6px}.dashboard-topbar-primary-actions{width:auto;flex-wrap:nowrap}.dashboard-topbar-primary-actions>*{flex:0 0 auto;min-width:36px}.dashboard-topbar-primary-actions button{min-width:36px!important;width:36px;min-height:36px;padding:0!important;justify-content:center;font-size:0!important;gap:0}.dashboard-topbar-primary-actions button:before{margin:0}.dashboard-topbar-button{min-width:36px;min-height:36px}.calendar-card{padding:12px}.calendar-toolbar{flex-direction:column;align-items:stretch;gap:10px}.calendar-period-controls,.calendar-nav-controls{width:100%;flex-wrap:wrap}.calendar-year-select,.calendar-month-select{flex:1 1 calc(50% - 6px);min-width:0!important;width:auto!important;font-size:16px}.calendar-nav-controls>button{flex:1 1 auto;min-width:0;justify-content:center}.calendar-nav-label{display:none}.calendar-nav-label-short{display:inline}.calendar-add-label{display:none}.calendar-add-events{flex:0 0 36px!important;min-width:36px!important;width:36px!important;padding:0!important}.calendar-month-grid{display:grid!important;width:100%;max-width:100%}.calendar-weekday-header{min-width:0!important;width:100%}.calendar-weekday-label{padding:4px 2px!important;text-align:center;letter-spacing:0!important;font-size:10px!important;min-width:0}.calendar-weekday-full{display:none}.calendar-weekday-short{display:inline}.calendar-week{min-width:0!important;width:100%}.calendar-day-cell{padding:4px!important;min-width:0}.calendar-day-number{width:20px!important;height:20px!important;font-size:11px!important}.calendar-week-events{left:4px!important;right:4px!important}.calendar-event-chip{padding:1px 4px!important;font-size:9px!important;min-height:18px!important;max-height:18px!important}.calendar-mobile-agenda{display:none}.dashboard-compact-list-button{padding:12px;border-radius:12px}.dashboard-compact-list-title{white-space:normal;word-break:break-word}.selected-events-modal.dashboard-overlay-panel{width:100%!important;max-width:100%!important;height:100dvh;max-height:100dvh;border-radius:0}.dashboard-overlay-backdrop:has(.selected-events-modal){padding:0;align-items:stretch}.selected-events-modal .dashboard-overlay-header{flex-wrap:wrap;gap:8px;padding:12px}.selected-events-modal .dashboard-overlay-actions{width:100%;flex-wrap:wrap;justify-content:flex-start}.selected-events-modal .dashboard-overlay-actions button{min-height:36px}.selected-events-modal .dashboard-overlay-actions button[data-icon=plus],.selected-events-modal .dashboard-overlay-actions button[data-icon=refresh]{font-size:0;min-width:36px;width:36px;padding:0;justify-content:center}.selected-events-col-hide-mobile{display:none!important}.selected-events-table{overflow:visible;border:none;background:transparent;padding:0}.selected-events-data-table{display:block;width:100%}.selected-events-data-table thead{display:none}.selected-events-data-table tbody{display:flex;flex-direction:column;gap:10px}.selected-events-data-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name actions" "time time";gap:8px 10px;padding:12px;border:1px solid color-mix(in srgb,var(--border) 78%,transparent);border-radius:12px;background:var(--surface);width:100%;box-sizing:border-box;align-items:center}.selected-events-data-table tbody td{display:block;padding:0!important;border:none!important;background:transparent!important}.selected-events-col-name{grid-area:name}.selected-events-col-time{grid-area:time}.selected-events-col-actions{grid-area:actions}.selected-events-data-table tbody tr:has(td[colspan]){display:block;padding:24px 12px;text-align:center}.selected-events-delete{min-width:36px!important;width:36px;min-height:36px;padding:0!important;justify-content:center}.selected-events-delete-label{display:none}.dashboard-sidebar,.dashboard-sidebar.is-collapsed{order:2;position:fixed;inset:auto 0 0;z-index:var(--z-sidebar);height:auto;min-height:0;padding:8px 10px calc(8px + env(safe-area-inset-bottom,0px));border-right:none;border-top:1px solid var(--border);background:color-mix(in srgb,var(--surface) 96%,transparent);-webkit-backdrop-filter:blur(20px) saturate(130%);backdrop-filter:blur(20px) saturate(130%);display:block;overflow:visible}.dashboard-sidebar-toggle,.dashboard-brand,.dashboard-sidebar-footer{display:none!important}.dashboard-nav{display:flex;flex-direction:row;align-items:stretch;gap:4px;overflow:visible;padding-bottom:0;width:100%}.dashboard-nav::-webkit-scrollbar{display:none}.dashboard-nav-item,.dashboard-sidebar.is-collapsed .dashboard-nav-item{flex:1 1 0;flex-direction:column;justify-content:center;align-items:center;gap:0;min-width:0;max-width:none;min-height:48px;padding:8px 4px;border-radius:12px;font-size:0;line-height:1;text-align:center}.dashboard-nav-item:after,.dashboard-sidebar.is-collapsed .dashboard-nav-item:after{display:none}.dashboard-nav-label,.dashboard-sidebar.is-collapsed .dashboard-nav-label{display:none!important}.dashboard-nav-item[data-icon]:before{margin-right:0;--icon-size: 22px}.dashboard-nav-item[data-nav-key=downloads]{display:none!important}.dashboard-page-grid,.policy-layout,.dashboard-workspace-grid,.dashboard-editor-layout{grid-template-columns:minmax(0,1fr);gap:14px}.dashboard-workspace-panel.is-sticky,.dashboard-editor-sidebar{position:static;top:auto}.dashboard-panel-header{flex-direction:column;align-items:stretch;gap:10px}.dashboard-panel-header>div:last-child{display:flex;flex-wrap:wrap;gap:8px}.dashboard-panel-header button,.dashboard-panel-header .primary{width:100%;justify-content:center}.dashboard-segmented-control{display:flex;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;max-width:100%}.dashboard-segmented-control::-webkit-scrollbar{display:none}.dashboard-segmented-option{flex:0 0 auto;min-width:max-content}.dashboard-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap}.dashboard-tabs::-webkit-scrollbar{display:none}.dashboard-tab-button{flex:0 0 auto;white-space:nowrap}.filter-chips,.devices-filter-chips,.locations-filter-chips{flex-wrap:wrap;gap:8px}.devices-toolbar{flex-wrap:wrap;align-items:stretch}.devices-toolbar-input--search,.devices-toolbar-input--event,.devices-toolbar-input--sort{flex:1 1 100%;width:100%;max-width:none}.devices-filter-chips{width:100%;margin-left:0;justify-content:flex-start;flex-wrap:wrap}.devices-filter-chips .filter-chip{flex:1 1 calc(50% - 8px);justify-content:center;min-width:0}.devices-table-shell{overflow:visible;border:none;background:transparent;padding:0}.devices-table{display:block;width:100%}.devices-table thead{display:none}.devices-table tbody{display:flex;flex-direction:column;gap:10px}.devices-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"device action" "config config" "pp pp" "info info";column-gap:10px;row-gap:10px;align-items:center;padding:12px;border:1px solid color-mix(in srgb,var(--border) 78%,transparent);border-radius:12px;background:var(--surface);width:100%;box-sizing:border-box}.devices-table tbody td{display:block;padding:0!important;border:none!important;background:transparent!important;width:auto!important;min-width:0}.devices-table tbody td:nth-child(1){grid-area:device}.devices-table tbody td:nth-child(2){grid-area:config}.devices-table tbody td:nth-child(3),.devices-table .devices-programme-point-cell{grid-area:pp}.devices-table tbody td:nth-child(4),.devices-table .devices-info-cell{grid-area:info}.devices-table tbody td:nth-child(5),.devices-table .devices-action-cell{grid-area:action}.devices-programme-point-name{font-size:12px}.devices-table tbody tr:has(td[colspan]){display:block;padding:24px 12px;text-align:center}.devices-device-cell{gap:10px;min-width:0}.devices-device-copy>div{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.devices-config-select{width:100%;max-width:none;font-size:16px}.devices-action-button{min-width:36px!important;width:36px;min-height:36px;padding:0;justify-content:center;gap:0}.devices-action-label{display:none}.devices-pagination{flex-wrap:wrap;gap:10px}.devices-pagination-controls{flex-wrap:wrap;width:100%;justify-content:space-between}.filter-chip{flex:1 1 calc(50% - 8px);justify-content:center;min-width:0}.admin-toolbar{flex-wrap:wrap;justify-content:stretch}.admin-toolbar>*{flex:1 1 100%}.admin-overview{grid-template-columns:minmax(0,1fr)}.admin-page .card{padding:12px}.admin-page .card-header{flex-wrap:wrap;gap:8px}.admin-page .card-actions{width:100%;justify-content:flex-start;flex-wrap:wrap}.admin-inline-stats{flex-wrap:wrap;gap:8px}.admin-devices-filters{margin-bottom:12px!important}.admin-devices-delete-cell{justify-items:stretch}.admin-devices-delete-cell .danger,.admin-devices-delete-button{width:100%;justify-content:center}.admin-col-hide-mobile{display:none!important}.admin-action-label{display:none}.admin-action-label-short{display:inline}.admin-row-actions{flex-wrap:wrap!important;justify-content:flex-start!important;gap:6px!important}.admin-row-actions>button{min-width:36px;min-height:36px;padding-left:10px;padding-right:10px;justify-content:center}.admin-host-url{display:none!important}.admin-host-url-mobile{display:block!important;word-break:break-all}.admin-keys-table,.admin-users-table,.admin-devices-table,.admin-selected-events-table,.hosts-table,.import-events-table{display:block;width:100%}.admin-keys-table thead,.admin-users-table thead,.admin-devices-table thead,.admin-selected-events-table thead,.hosts-table thead,.import-events-table thead{display:none}.admin-keys-table tbody,.admin-users-table tbody,.admin-devices-table tbody,.admin-selected-events-table tbody,.hosts-table tbody,.import-events-table tbody{display:flex;flex-direction:column;gap:10px}.admin-keys-table tbody tr,.admin-users-table tbody tr,.admin-devices-table tbody tr,.admin-selected-events-table tbody tr,.hosts-table tbody tr,.import-events-table tbody tr{display:grid;gap:8px 10px;padding:12px;border:1px solid color-mix(in srgb,var(--border) 78%,transparent);border-radius:12px;background:var(--surface);width:100%;box-sizing:border-box;align-items:center}.admin-keys-table tbody td,.admin-users-table tbody td,.admin-devices-table tbody td,.admin-selected-events-table tbody td,.hosts-table tbody td,.import-events-table tbody td{display:block;padding:0!important;border:none!important;background:transparent!important;width:auto!important;min-width:0;text-align:left!important}.admin-keys-table tbody tr:has(td[colspan]),.admin-users-table tbody tr:has(td[colspan]),.admin-devices-table tbody tr:has(td[colspan]),.admin-selected-events-table tbody tr:has(td[colspan]),.hosts-table tbody tr:has(td[colspan]),.import-events-table tbody tr:has(td[colspan]){display:block;padding:24px 12px;text-align:center}.admin-keys-table tbody tr{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name status" "key key" "actions actions"}.admin-keys-table .admin-col-primary{grid-area:name}.admin-keys-table .admin-col-key{grid-area:key}.admin-keys-table .admin-col-status{grid-area:status;justify-self:end}.admin-keys-table .admin-col-actions{grid-area:actions}.admin-users-table tbody tr{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name status" "roles roles" "actions actions"}.admin-users-table .admin-col-primary{grid-area:name}.admin-users-table .admin-col-secondary{grid-area:roles}.admin-users-table .admin-col-status{grid-area:status;justify-self:end}.admin-users-table .admin-col-actions{grid-area:actions}.hosts-table tbody tr{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name status" "actions actions"}.hosts-table .admin-col-primary{grid-area:name}.hosts-table .admin-col-status{grid-area:status;justify-self:end}.hosts-table .admin-col-actions{grid-area:actions}.admin-selected-events-table tbody tr{grid-template-columns:minmax(0,1fr);grid-template-areas:"event" "key" "actions"}.admin-selected-events-table .admin-col-primary{grid-area:event}.admin-selected-events-table .admin-col-secondary{grid-area:key}.admin-selected-events-table .admin-col-actions{grid-area:actions}.admin-selected-events-table .admin-col-secondary select,.admin-device-key select{width:100%;font-size:16px}.admin-devices-table-shell{overflow:visible;border:none;background:transparent;padding:0}.admin-devices-table tbody tr{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"check serial online" "name name name" "key key key" "actions actions actions"}.admin-devices-table:not(.admin-devices-table--with-select) tbody tr{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"serial online" "name name" "key key" "actions actions"}.admin-devices-table .admin-device-check{grid-area:check}.admin-devices-table .admin-device-serial{grid-area:serial}.admin-devices-table .admin-device-name{grid-area:name;font-weight:600}.admin-devices-table .admin-device-online{grid-area:online;justify-self:end}.admin-devices-table .admin-device-key{grid-area:key}.admin-devices-table .admin-device-actions{grid-area:actions}.admin-devices-table .admin-device-serial code{font-size:12px;word-break:break-all}.import-events-table tbody tr{grid-template-columns:minmax(0,1fr) auto}.import-events-table-shell{overflow:visible}.admin-page .card>div>button.primary,.admin-page .card>div>button.danger{width:100%;min-width:0!important;justify-content:center}.admin-page input,.admin-page select{font-size:16px;max-width:100%}.table-wrapper{margin-left:-2px;margin-right:-2px;border-radius:12px}.table{font-size:12px}.table th,.table td{padding:8px 10px}.configs-table-shell{overflow:visible;border:none;background:transparent;padding:0;margin-left:0;margin-right:0}.configs-table{display:block;width:100%;table-layout:auto;border-spacing:0}.configs-table thead{display:none}.configs-table tbody{display:flex;flex-direction:column;gap:10px}.configs-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr) 40px auto;grid-template-areas:"name type actions" "event type actions";column-gap:10px;row-gap:4px;align-items:center;padding:12px;border:1px solid color-mix(in srgb,var(--border) 78%,transparent);border-radius:12px;background:var(--surface);width:100%;box-sizing:border-box}.configs-table tbody tr.highlight{background:color-mix(in srgb,var(--button-active-bg) 100%,transparent)}.configs-table tbody td{display:block;padding:0!important;border:none!important;background:transparent!important;width:auto!important;max-width:none!important;min-width:0}.configs-table tbody td:nth-child(1),.configs-table tbody td:nth-child(4),.configs-table tbody td:nth-child(6),.configs-table tbody td:nth-child(7){display:none!important}.configs-table tbody td:nth-child(2){grid-area:name}.configs-table tbody td:nth-child(3){grid-area:event}.configs-table tbody td:nth-child(5){grid-area:type;justify-self:center}.configs-table tbody td:nth-child(8),.configs-table tbody td:last-child{grid-area:actions;width:auto!important}.configs-table tbody td:nth-child(2)>div{display:block;font-size:14px;font-weight:600;color:var(--text-primary);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.configs-table tbody td:nth-child(3) small{display:block;font-size:12px;color:var(--text-tertiary);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.configs-table tbody tr:has(td[colspan]){display:block;padding:24px 12px;text-align:center}.configs-type-badge{width:36px;height:36px;min-width:36px;padding:0!important;gap:0;justify-content:center;border-radius:10px!important}.configs-type-badge-icon[data-icon]:before{margin:0}.configs-type-badge-label{display:none}.configs-type-badge-icon{display:inline-flex;--icon-size: 18px}.configs-row-actions{display:flex!important;grid-template-columns:none!important;justify-content:flex-end!important;align-items:center;gap:6px!important;max-width:none}.configs-row-actions [data-icon=upload],.configs-row-actions [data-icon=eye],.configs-row-actions [data-icon=copy],.configs-row-actions [data-icon=trash]{display:none!important}.configs-toolbar-actions{min-width:0!important;width:100%;margin-left:0!important;flex-wrap:wrap;gap:10px!important}.configs-toolbar-actions>div:first-child{min-width:0!important;flex:1 1 auto}.configs-header-action{min-width:36px!important;width:36px!important;min-height:36px!important;padding:0!important;justify-content:center;gap:0}.configs-header-action-label{display:none}input,select,textarea,.dashboard-input,.dashboard-select{font-size:16px;max-width:100%}.row{grid-template-columns:minmax(0,1fr)}.container{padding:12px;gap:12px}.card{padding:14px}.dashboard-overlay-backdrop--modal,.dashboard-overlay-backdrop--drawer{padding:8px;align-items:flex-end}.dashboard-overlay-panel,.dashboard-overlay-panel--modal,.dashboard-overlay-panel--drawer{width:100%!important;max-width:100%!important;max-height:calc(100dvh - 16px);height:auto;border-radius:14px 14px 0 0}.dashboard-overlay-panel--drawer{height:min(92dvh,calc(100dvh - 16px))}.dashboard-overlay-backdrop:has(.config-editor-modal),.dashboard-overlay-backdrop:has(.assign-devices-drawer){padding:0;align-items:stretch}.config-editor-modal,.assign-devices-drawer.dashboard-overlay-panel{width:100%!important;max-width:100%!important;max-height:100dvh;height:100dvh;border-radius:0}.config-editor-modal{display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}.config-editor-modal .dashboard-overlay-header{padding:12px 12px 8px;gap:8px;align-items:flex-start}.config-editor-modal .dashboard-overlay-title{width:100%;min-width:0}.config-editor-modal__titlebar{flex-direction:column;align-items:stretch;gap:10px;padding-right:4px}.config-editor-modal__title{font-size:16px;line-height:1.25;padding-right:40px}.config-editor-modal__mode{width:100%;flex:1 1 auto}.config-editor-modal__mode .dashboard-segmented-control{width:100%;display:flex;gap:4px;overflow-x:auto;-webkit-overflow-scrolling:touch}.config-editor-modal__mode .dashboard-segmented-option{flex:1 1 0;min-width:0!important;--dashboard-segment-min-width: 0px;min-height:40px;padding-inline:6px;font-size:10px;letter-spacing:0}.config-editor-modal__mode .dashboard-segmented-option span{white-space:normal;text-align:center;line-height:1.15}.config-editor-modal .dashboard-overlay-actions{position:absolute;top:8px;right:8px;z-index:2}.config-editor-modal .dashboard-overlay-header{position:relative}.config-editor-modal .dashboard-overlay-body{padding:8px 12px 12px;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.config-editor-modal .dashboard-overlay-footer{padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));border-top:1px solid color-mix(in srgb,var(--border) 70%,transparent);background:color-mix(in srgb,var(--surface) 96%,transparent)}.config-editor-modal .dashboard-tabs{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:6px}.config-editor-modal .dashboard-tabs::-webkit-scrollbar{display:none}.config-editor-modal .dashboard-tab-button{flex:0 0 auto;white-space:nowrap;font-size:12px;padding-inline:12px}.config-editor-modal .dashboard-editor-main{gap:10px;min-width:0}.config-editor-modal .dashboard-field-label,.config-editor-modal label{font-size:12px}.config-editor-modal input,.config-editor-modal select,.config-editor-modal textarea,.config-editor-modal .dashboard-input,.config-editor-modal .dashboard-select{font-size:16px;max-width:100%}.config-editor-split-grid,.config-editor-participant-grid,.config-editor-options-grid{grid-template-columns:minmax(0,1fr)!important}.config-editor-modal__footer-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:stretch}.config-editor-modal__action,.config-editor-modal__action--save,.config-editor-modal__action--push,.config-editor-modal__action--discard{width:100%;min-width:0!important;justify-content:center}.config-editor-modal__action--save,.config-editor-modal__action--push{grid-column:span 1}.config-editor-modal__action-label{display:none}.config-editor-modal__action-label-short{display:inline}.config-editor-modal__footer-actions>.config-editor-modal__action:not(.config-editor-modal__action--save):not(.config-editor-modal__action--push){grid-column:1 / -1}.config-editor-modal__footer-actions>.config-editor-modal__action--push{grid-column:1}.config-editor-modal__footer-actions>.config-editor-modal__action--save{grid-column:2}.dashboard-popover,.enrollment-popover{position:fixed;left:12px;right:12px;top:auto;bottom:calc(78px + env(safe-area-inset-bottom,0px));width:auto;max-width:none}.auth-panel{padding:20px 16px;align-items:stretch}.auth-card{width:100%;padding:18px 16px}.locations-create-action,.locations-toolbar-row,.locations-toolbar,.workspace-field-grid{flex-direction:column;flex-wrap:nowrap;align-items:stretch}.locations-create-action>*,.locations-toolbar-row>*,.locations-toolbar>*,.workspace-field-grid>*{width:100%;flex:0 0 auto!important;align-self:stretch!important;justify-self:stretch!important}.locations-toolbar>:last-child button{width:100%;justify-content:center}.locations-create-grid{grid-template-columns:minmax(0,1fr)}.locations-create-field,.locations-create-field--name,.locations-create-field--event,.locations-create-field--keys,.locations-create-field--timezone,.locations-create-field--notes,.locations-create-actions{grid-column:auto;grid-row:auto}.locations-filter-chips{flex-wrap:wrap;overflow-x:auto;-webkit-overflow-scrolling:touch}.assign-devices-layout{grid-template-columns:minmax(0,1fr);gap:12px;min-height:0}.assign-devices-drawer{display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}.assign-devices-drawer .dashboard-overlay-header{padding:12px 12px 8px;position:relative}.assign-devices-drawer .dashboard-overlay-actions{position:absolute;top:8px;right:8px;z-index:2}.assign-devices-drawer .dashboard-overlay-body{padding:8px 12px 12px;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;min-height:0}.assign-devices-drawer .dashboard-overlay-footer{padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));display:grid;grid-template-columns:1fr 1fr;gap:8px}.assign-devices-drawer .dashboard-overlay-footer .dashboard-button{width:100%;min-width:0;justify-content:center}.assign-devices-title>div:first-child{font-size:16px!important;padding-right:40px}.assign-devices-meta{gap:6px;font-size:11px}.assign-devices-zone{min-height:0!important;padding:10px!important}.assign-devices-zone-header{flex-direction:column;align-items:stretch!important}.assign-devices-zone-actions{width:100%}.assign-devices-zone-actions .dashboard-button{flex:1 1 auto;justify-content:center;min-width:0}.assign-devices-action-label{display:none}.assign-devices-action-label-short{display:inline}.assign-devices-list{max-height:min(42dvh,360px);min-height:140px;overflow-y:auto;-webkit-overflow-scrolling:touch;border:1px solid color-mix(in srgb,var(--border) 70%,transparent);border-radius:10px}.assign-devices-item{align-items:center;padding:10px;gap:8px}.assign-devices-item-headline{gap:6px}.assign-devices-item-headline>div{font-size:13px;font-weight:600}.assign-devices-last-seen{display:none!important}.assign-devices-item .badge{font-size:10px;padding:2px 8px}.assign-devices-drawer .dashboard-input,.assign-devices-drawer .dashboard-select,.assign-devices-drawer input{font-size:16px}.dashboard-overlay-footer{flex-direction:column;align-items:stretch;gap:8px}.dashboard-overlay-footer .dashboard-button{width:100%;justify-content:center}.dashboard-topbar-account-mobile{display:inline-flex;align-items:center;justify-content:center;padding:6px}.dashboard-topbar-account-mobile .dashboard-user-avatar{width:28px;height:28px}.dashboard-main{min-width:0}.notice-stack{top:12px;left:12px;right:12px}.notice{max-width:none}.dashboard-workspace-panel,.dashboard-workspace-stack{min-width:0;max-width:100%}.schedule-timeline-scroll{overflow-x:visible}.schedule-timeline-canvas{min-width:0;gap:10px}.schedule-timeline-axis{display:none}.schedule-timeline-axis,.schedule-timeline-row{grid-template-columns:minmax(0,1fr);gap:8px}.schedule-timeline-day-label{padding-top:0;font-size:11px;letter-spacing:.04em;text-transform:uppercase}.schedule-timeline-track{height:auto;min-height:0;padding:8px;display:grid;gap:8px;overflow:visible}.schedule-timeline-track-grid{display:none}.schedule-timeline-block{position:static!important;left:auto!important;width:auto!important;top:auto!important;bottom:auto!important;min-height:44px}.schedule-timeline-block-headline,.schedule-timeline-block-meta{white-space:normal;overflow:visible;text-overflow:unset}.table-wrapper:has(.location-panel-schedules-table){overflow:visible;border:none;background:transparent;padding:0;margin-left:0;margin-right:0}.location-panel-schedules-table{border-spacing:0}.location-panel-schedules-table thead{display:none}.location-panel-schedules-table tbody tr:not(.location-panel-schedules-detail-row){display:block;margin-bottom:12px;border:1px solid color-mix(in srgb,var(--border) 78%,transparent);border-radius:12px;overflow:hidden;background:var(--surface)}.location-panel-schedules-table tbody tr.conflict{box-shadow:inset 4px 0 0 var(--accent-red)}.location-panel-schedules-table tbody td{display:grid;grid-template-columns:minmax(96px,34%) minmax(0,1fr);gap:8px 12px;padding:10px 12px;border-top:1px solid color-mix(in srgb,var(--border) 44%,transparent);align-items:start;word-break:break-word}.location-panel-schedules-table tbody tr>td:first-child{border-top:none}.location-panel-schedules-table tbody td:before{content:attr(data-label);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary)}.location-panel-schedules-table tbody td[data-label=""]:before,.location-panel-schedules-table tbody td:last-child:before{content:none}.location-panel-schedules-table .locations-schedule-row-actions{justify-content:flex-start;flex-wrap:wrap}.location-panel-schedules-table .location-panel-schedules-detail-row td{display:block;padding:0 0 12px;border:none}.location-panel-schedules-table .location-panel-schedules-detail-row td:before{display:none}html,body{overflow-x:hidden}}@media(max-width:767px)and (orientation:landscape){.dashboard-frame{padding-bottom:calc(68px + env(safe-area-inset-bottom,0px))}.dashboard-nav-item{min-height:44px;min-width:0}}@media(max-width:767px){.dashboard-footer{justify-content:center;padding-top:14px}.policy-page{padding-bottom:72px}.policy-panel,.policy-preview-card{padding:14px}.policy-context,.policy-editor-grid{grid-template-columns:minmax(0,1fr)}.policy-context-switches{flex-direction:column;gap:12px}.policy-toolbar-field{flex:1 1 100%;max-width:none}.policy-toolbar-actions{width:100%;margin-left:0}.policy-toolbar-actions>.dashboard-button{flex:1 1 0;justify-content:center}.policy-add-step .dashboard-segmented-control{justify-self:stretch}.policy-add-step .dashboard-segmented-option{min-width:0!important;flex:1 1 0}.policy-editor-paid{padding-top:0}.policy-picker-item{grid-template-columns:auto minmax(0,1fr) auto}.policy-picker-id{display:none}.policy-picker-footer>.dashboard-button{width:100%;justify-content:center}.policy-picker-time{flex-direction:column;align-items:stretch}.policy-picker-time>span{display:none}.policy-rule-row{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"pill main expand" "actions actions actions";gap:6px 10px}.policy-rule-index{display:none}.policy-rule-row>.policy-type-pill{grid-area:pill}.policy-rule-row>.policy-rule-main{grid-area:main}.policy-rule-actions{display:contents}.policy-rule-actions .policy-expand{grid-area:expand}.policy-rule.is-expanded .policy-rule-actions{display:flex;grid-area:actions;justify-content:flex-end}.policy-rule:not(.is-expanded) .policy-rule-actions .policy-icon-button:not(.policy-expand){display:none}.policy-rule--final .policy-rule-row{grid-template-areas:"pill main expand"}.policy-rule--final .policy-switch--compact{grid-area:expand}.policy-rule-editor{padding:4px 12px 14px}.policy-preview{position:static}.policy-xml-actions{position:fixed;left:12px;right:12px;bottom:calc(76px + env(safe-area-inset-bottom,0px));z-index:var(--z-sticky-toolbar);padding:8px;border:1px solid var(--color-border-default);border-radius:var(--radius-panel);background:var(--color-surface-2);box-shadow:var(--shadow-md)}}@media(max-width:767px){.locations-table-shell{overflow:visible;border:0;background:transparent}.locations-table,.locations-table tbody{display:block;width:100%}.locations-table thead{display:none}.locations-table tbody{display:grid;gap:10px}.locations-table tbody tr{display:grid;grid-template-columns:auto auto auto minmax(0,1fr);grid-template-areas:"name name name actions" "tz tz tz tz" "active sched dev .";gap:8px 10px;align-items:center;padding:12px;border:1px solid var(--color-border-subtle);border-radius:var(--radius-panel);background:var(--surface)}.locations-table tbody tr.highlight{border-color:var(--button-active-border);background:var(--color-accent-soft)}.locations-table tbody td{display:block;width:auto!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;text-align:left!important}.locations-table tbody td:nth-child(1){grid-area:name;font-weight:var(--weight-semibold)}.locations-table tbody td:nth-child(2){grid-area:tz;font-size:var(--text-sm);color:var(--text-tertiary)}.locations-table tbody td:nth-child(3){grid-area:active}.locations-table tbody td:nth-child(4){grid-area:sched}.locations-table tbody td:nth-child(5){grid-area:dev}.locations-table tbody td:nth-child(6){grid-area:actions;justify-self:end}.locations-table tbody td:nth-child(4):before{content:"Schedules "}.locations-table tbody td:nth-child(5):before{content:"Devices "}.locations-table tbody td:nth-child(4):before,.locations-table tbody td:nth-child(5):before{font-size:var(--text-xs);color:var(--text-tertiary)}.locations-table tbody tr:has(td[colspan]){display:block}.locations-table tbody tr:has(td[colspan]) td:before{content:none}}@media(max-width:767px){.location-panel-schedules-table tbody tr:not(.location-panel-schedules-detail-row)>td:last-child{display:block}.location-panel-schedules-table .locations-schedule-row-actions{flex-wrap:nowrap}}@media(max-width:767px){.downloads-group{padding:14px}}@media(max-width:767px){.assign-devices-platform .dashboard-segmented-control{width:100%}.assign-devices-platform .dashboard-segmented-option{min-width:0!important;flex:1 1 0}}
