:root{--color-primary:#4169e1;--color-primary-light:#e8eefa;--color-primary-text:#3055c8;--color-audience-shared-bg:var(--color-primary-light);--color-audience-shared-text:var(--color-primary-text);--audience-rule-width:3px;--color-danger:#cf2b2b;--color-danger-bg:#ffebee;--color-danger-strong:#9c1d1d;--color-danger-text:#9c1d1d;--color-danger-fill:#d32f2f;--color-danger-fill-hover:#b32828;--color-success:#28a745;--color-success-bg:#e8f5e9;--color-success-strong:#1e7e34;--color-success-text:#1e7e34;--color-warning:#ff9500;--color-warning-bg:#fff8e1;--color-warning-deep:#b45309;--color-warning-text:#b45309;--color-success-bg-strong:#c4e6c9;--color-warning-bg-strong:#ffe8a3;--color-success-graphic:#26a042;--color-warning-graphic:#c70;--color-danger-graphic:var(--color-danger);--color-success-flash:#28a74538;--color-danger-flash:#cf2b2b38;--color-rating-star-graphic:#c07c00;--color-ink-on-white:#0f172a;--color-on-saturated:#fff;--color-on-saturated-muted:#ffffff8c;--color-text:#333;--color-neutral-strong:#666;--color-faint:#999;--color-border:#ddd;--color-surface:white;--color-bg:#f5f5f5;--color-bg-alt:#f0f0f0;--color-surface-hover:var(--color-bg-alt);--color-text-strong:#222;--color-text-soft:#555;--color-text-placeholder:#888;--color-border-light:#ebebeb;--color-text-muted:#6d6d6d;--shadow-card:0 1px 3px #0000001a;--shadow-card-hover:0 4px 12px #00000026;--shadow-modal:0 8px 32px #0003;--shadow-toast:0 4px 12px #00000026;--shadow-popover:0 6px 18px #00000026;--shadow-btn-primary:0 4px 12px #4169e166;--shadow-btn-danger:0 4px 12px #d32f2f66;--overlay-scrim:#00000080;--overlay-tooltip-bg:#000c;--scrollbar-thumb:#ccc;--scrollbar-thumb-hover:var(--color-faint);--radius:8px;--radius-sm:6px;--radius-xs:4px;--radius-md:10px;--radius-pill:999px;--radius-lg:16px;--spacing-2:2px;--spacing-4:4px;--spacing-8:8px;--spacing-12:12px;--spacing-16:16px;--spacing-20:20px;--spacing-24:24px;--spacing-32:32px;--spacing-48:48px;--spacing-64:64px;--card-gap:var(--spacing-8);--card-edge-inset:var(--spacing-8);--empty-state-color:var(--color-text-muted);--empty-state-font-size:.9375rem;--empty-state-font-weight:400;--empty-state-padding-block:var(--spacing-32);--empty-state-padding-inline-block:var(--spacing-12);--color-breathing-circle:var(--color-primary);--segmented-ring-track:var(--color-neutral-strong);--segmented-ring-dash:var(--color-primary);--segmented-ring-fill:var(--color-primary);--segmented-ring-complete:var(--color-success-graphic);--touch-target-size:32px;--btn-min-height:32px;--touch-gap:var(--spacing-4);--counter-button-max:calc(var(--touch-target-size) * 2);--attachment-thumb-size:48px;--input-height:36px;--nav-rail-width:144px;--settings-shell-max-width:640px;--settings-field-max-width:320px;--form-field-max-width:640px;--layout-fill-body-min-height:320px;--layout-body-min-height:96px;--font-size-2xs:.6875rem;--font-size-eyebrow:.625rem;--font-size-micro:.5rem;--font-size-xs:.75rem;--font-size-sm:.8125rem;--font-size-base:.9375rem;--font-size-btn:.875rem;--font-size-secondary:.875rem;--font-size-lg:1rem;--font-size-xl:1.125rem;--font-size-2xl:1.25rem;--font-size-xxl:1.375rem;--font-size-3xl:1.5rem;--font-size-display:2.5rem;--font-size-display-sm:2rem;--font-size-input:var(--font-size-base);--font-size-input-secondary:var(--font-size-secondary);--font-size-input-sm:var(--font-size-sm);--font-size-input-xs:var(--font-size-xs);--font-size-input-lg:var(--font-size-lg);--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-black:900;--line-height-tight:1.2;--line-height-snug:1.35;--line-height-normal:1.5;--duration-instant:80ms;--duration-fast:.16s;--duration-base:.24s;--duration-slow:.36s;--duration-celebr:.52s;--duration-pulse:2.5s;--duration-shimmer:1.4s;--duration-spin:1s;--duration-jiggle-recycle:.65s;--duration-jiggle-archive:.75s;--easing-standard:cubic-bezier(.4, 0, .2, 1);--easing-decelerate:cubic-bezier(0, 0, .2, 1);--easing-accelerate:cubic-bezier(.4, 0, 1, 1);--easing-overshoot:cubic-bezier(.34, 1.56, .64, 1);--easing-linear:linear;--direction-sign:1;--audio-tone-step-ms:90;--audio-chord-gap-ms:120;--z-base:0;--z-card:1;--z-raised:2;--z-sticky:10;--z-overlay:100;--z-modal:700;--z-popover:800;--z-toast:900;--z-tooltip:950;--z-celebration:1000;--z-immersive-chip:1100;--z-immersive:1200;--z-immersive-popover:1300;--bp-sm:480px;--bp-md:768px;--bp-lg:1024px;--focus-ring-width:2px;--focus-ring-offset:2px;--focus-ring-color:var(--color-primary);--brand-text-shadow-on-tartan:0 0 1px #000000d9, 0 1px 1px #000000d9, 0 -1px 1px #000000d9, 1px 0 1px #000000d9, -1px 0 1px #000000d9, 0 1px 4px #00000073;--brand-glyph-shadow-on-tartan:drop-shadow(0 1px 1px #0009);--nav-rail-tartan-size:72px;--nav-rail-tartan-size-narrow:40px;--nav-rail-tartan-scrim:#1212348c;--nav-rail-navy:#1e1e56;--nav-rail-toggle-hit-size:44px;--role-admin:#c62828;--role-operator:#b45309;--role-concierge:#946c00;--role-finance:#2e7d32;--role-auditor:#6a3fb5;--role-support:#0e7490;--role-user:#2e5bbd;--chart-ref-baseline:#ef4444;--chart-ref-target:#009560;--chart-ref-stretch:#008fa8;--chart-tier-minimum:#6b7280;--chart-tier-low:#008bc5;--chart-tier-high:#8b5cf6;--chart-series-1:#007aff;--chart-series-2:#008f36;--chart-series-3:#b56800;--chart-series-4:#af52de;--chart-series-5:#f5004a;--chart-series-6:#007b9e;--chart-series-7:#8b7c00;--chart-series-8:#e24100;--nav-badge-size:8px;--nav-badge-ring-width:2px}.nav-rail{--nav-rail-bg:var(--nav-rail-navy);--nav-rail-item-color:var(--color-on-saturated-muted);--nav-rail-hover-bg:#ffffff1a;--nav-rail-active-bg:#fff3;--nav-rail-divider:#ffffff1f}[dir=rtl]{--direction-sign:-1}[dir=rtl] .u-flip-rtl{transform:scaleX(-1)}.u-visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}html[data-theme=dark]{--color-primary-light:#1d2a4c;--color-primary-text:#7c94f0;--color-danger:#f45855;--color-danger-bg:#3a1f20;--color-danger-text:#f07470;--color-danger-fill-hover:#d93636;--color-success:#4caf50;--color-success-bg:#1d2f22;--color-success-text:#4caf50;--color-warning:#ffb74d;--color-warning-bg:#3a2f1d;--color-warning-text:#e0850f;--color-success-graphic:var(--color-success);--color-warning-graphic:var(--color-warning);--color-rating-star-graphic:#fbbf24;--color-success-flash:#4caf5038;--color-danger-flash:#f4585538;--color-success-bg-strong:#2c4a34;--color-warning-bg-strong:#57431f;--color-text:#e8ecf3;--color-text-strong:#f5f7fa;--color-text-soft:#c0c7d3;--color-text-placeholder:#8891a1;--color-neutral-strong:#a8b0bd;--color-text-muted:#87909e;--color-border:#2a3650;--color-border-light:#22314a;--color-surface:#162033;--color-bg:#0f1826;--color-bg-alt:#1c2940;--shadow-card:0 1px 3px #0006;--shadow-card-hover:0 4px 12px #00000080;--shadow-modal:0 8px 32px #0009;--shadow-toast:0 4px 12px #00000080;--shadow-popover:0 6px 18px #0000008c;--shadow-btn-primary:0 4px 12px #4169e18c;--shadow-btn-danger:0 4px 12px #d32f2f8c;--overlay-scrim:#000000b3;--overlay-tooltip-bg:#0a101ceb;--scrollbar-thumb:#2a3650;--scrollbar-thumb-hover:#3a4a6a;--brand-text-shadow-on-tartan:0 0 1px #000000b3, 0 1px 1px #000000b3, 0 -1px 1px #000000b3, 1px 0 1px #000000b3, -1px 0 1px #000000b3, 0 1px 4px #00000073;--chart-ref-baseline:#f87171;--chart-ref-target:#4ade80;--chart-ref-stretch:#22d3ee;--chart-tier-minimum:#9ca3af;--chart-tier-low:#38bdf8;--chart-tier-high:#a78bfa;--chart-series-1:#0a84ff;--chart-series-2:#30d158;--chart-series-3:#ff9f0a;--chart-series-4:#bf5af2;--chart-series-5:#ff375f;--chart-series-6:#64d2ff;--chart-series-7:#ffd60a;--chart-series-8:#ff7a45}@media (pointer:coarse){:root{--touch-target-size:48px;--btn-min-height:48px;--touch-gap:var(--spacing-8);--input-height:48px;--font-size-input:1rem;--font-size-input-secondary:1rem;--font-size-input-sm:1rem;--font-size-input-xs:1rem;--font-size-input-lg:1rem}html input,html textarea,html select{font-size:1rem}}html.simulate-coarse{--touch-target-size:48px;--btn-min-height:48px;--touch-gap:var(--spacing-8);--input-height:48px;--font-size-input:1rem;--font-size-input-secondary:1rem;--font-size-input-sm:1rem;--font-size-input-xs:1rem;--font-size-input-lg:1rem}html.simulate-coarse input,html.simulate-coarse textarea,html.simulate-coarse select{font-size:1rem}html{-webkit-tap-highlight-color:transparent}html,body{overscroll-behavior:none}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}:where(button,[role=button],a[href],select,summary):focus-visible,.text-input:focus-visible,.text-area:focus-visible,.select-input:focus-visible,.date-select:focus-visible,.range-input:focus-visible,.number-editor:focus-visible,.checkbox-box:focus-visible,.btn-icon:focus-visible,.btn-create:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.radio-pills:has(.radio-pills__input:focus-visible){outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.multi-select-radio__input:focus-visible+.multi-select-radio__label{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset);border-radius:var(--radius-pill)}.lesson-target-highlight{box-shadow:0 0 0 var(--focus-ring-width) var(--color-primary);position:relative}.lesson-target-highlight:after{content:"";border-radius:inherit;pointer-events:none;box-shadow:0 0 0 var(--focus-ring-width) var(--color-primary);opacity:0;animation:lesson-target-pulse var(--duration-pulse) var(--easing-decelerate) 2;position:absolute;inset:0}@keyframes lesson-target-pulse{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.4)}}@media (prefers-reduced-motion:reduce){.lesson-target-highlight:after{animation:none}}.lesson-anchor-contents{display:contents}@media (pointer:coarse){.u-touch-hit{position:relative}.u-touch-hit:before{content:"";inset-inline:min(0px, calc((100% - var(--touch-target-size)) / 2));inset-block:min(0px, calc((100% - var(--touch-target-size)) / 2));position:absolute}}*{box-sizing:border-box;margin:0;padding:0}.app-shell{background:var(--color-bg);min-width:0;min-height:0;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);padding-inline-start:env(safe-area-inset-left,0px);padding-inline-end:env(safe-area-inset-right,0px);display:flex;position:fixed;inset:0;overflow:hidden}@media (width<=480px){.app-shell{flex-direction:column}}.auth-viewport{height:100dvh;padding:var(--spacing-16);padding-top:calc(var(--spacing-16) + env(safe-area-inset-top,0px));padding-bottom:calc(var(--spacing-16) + env(safe-area-inset-bottom,0px));padding-left:calc(var(--spacing-16) + env(safe-area-inset-left,0px));padding-right:calc(var(--spacing-16) + env(safe-area-inset-right,0px));justify-content:center;display:flex;overflow-y:auto}.auth-viewport>*{margin-block:auto}.scroll-region::-webkit-scrollbar{width:8px;height:8px}.scroll-region::-webkit-scrollbar-track{background:0 0}.scroll-region::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:4px}@media (hover:hover){.scroll-region::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}}.edit-fields{gap:var(--spacing-8);margin-bottom:var(--spacing-4);padding:var(--spacing-16);flex-direction:column;display:flex;position:relative}.edit-fields>.edit-field:first-child,.edit-fields>:first-child+.edit-field{padding-inline-end:calc(var(--touch-target-size) * 2 + var(--spacing-4) + var(--spacing-8))}.modal .edit-fields>.edit-field:first-child,.modal .edit-fields>:first-child+.edit-field{padding-inline-end:0}.edit-fields--form{gap:var(--spacing-16);padding:0}.edit-fields--form>.form-field+.form-field{margin-top:0}.modal-dialog .form-field+.disclosure{margin-top:var(--spacing-16)}.more-details .disclosure-body{padding-top:var(--spacing-16)}.edit-field{gap:var(--spacing-8);flex-direction:column;display:flex}.edit-field-row{gap:var(--spacing-12);display:flex}.edit-field>label{font-size:var(--font-size-2xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.edit-field input:not(.text-input):not(.date-select):not(.time-select):not(.u-visually-hidden),.edit-field select:not(.select-input),.edit-field textarea:not(.text-area){padding:var(--spacing-4) var(--spacing-8);border:1px solid var(--color-border);font-size:var(--font-size-input-secondary);min-height:var(--input-height);box-sizing:border-box;color:var(--color-text);transition:border-color var(--duration-fast);background:var(--color-surface);border-radius:5px}.edit-field input[type=date]{max-width:180px}.edit-field input[type=number],.edit-field .number-editor{max-width:140px}.edit-field input:focus,.edit-field select:focus,.edit-field textarea:focus{border-color:var(--color-primary)}.edit-field textarea{resize:vertical;font-family:inherit}.edit-field-row{gap:var(--spacing-12);min-height:var(--input-height);flex-wrap:wrap;align-items:flex-end;display:flex}.edit-field-row--align-start{align-items:flex-start}.edit-field-row>.edit-field{flex:0 auto;min-width:140px}.edit-field-row>.form-field{flex:1 1 0;min-width:0}.edit-field-row--tight>.form-field,.edit-field-row--tight>.edit-field{flex:none;min-width:auto}.edit-field-row--nowrap{flex-wrap:nowrap}.edit-field-row--nowrap>.edit-field-row__filler{flex:1 1 0;min-width:0}.edit-field-row--nowrap .form-field__label{line-height:var(--line-height-tight);min-height:calc(var(--font-size-2xs) * var(--line-height-tight) * 2)}@media (width<=640px){.edit-field-row--nowrap{grid-template-columns:1fr 1fr;align-items:end;display:grid}.edit-field-row--nowrap>:first-child{grid-column:1/-1}.edit-field-row--nowrap>:nth-child(n+2){min-height:calc(var(--font-size-2xs) * var(--line-height-tight) * 2 + var(--spacing-8) + var(--input-height))}}.modal-dialog .edit-field-row>.form-field+.form-field{margin-top:0}.modal-dialog>.form-field+.edit-field-row,.modal-dialog>.edit-field-row+.form-field,.modal-dialog>.edit-field-row+.edit-field-row,.modal-dialog .more-details>.disclosure-body>.form-field+.edit-field-row,.modal-dialog .more-details>.disclosure-body>.edit-field-row+.form-field,.modal-dialog .more-details>.disclosure-body>.edit-field-row+.edit-field-row{margin-top:var(--spacing-16)}.btn-icon{width:var(--touch-target-size);height:var(--touch-target-size);border:2px solid var(--color-neutral-strong);border-radius:var(--radius-sm);background:var(--color-bg-alt);color:var(--color-text-muted);cursor:pointer;transition:background var(--duration-fast), color var(--duration-fast), border-color var(--duration-fast);flex-shrink:0;justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex}.btn-icon:disabled{opacity:.4;cursor:not-allowed}@media (hover:hover){.btn-icon--primary:hover:not(:disabled){background:var(--color-primary-light);color:var(--color-primary-text);border-color:var(--color-primary)}}.btn-icon--primary:active:not(:disabled){background:var(--color-primary-light);color:var(--color-primary-text);border-color:var(--color-primary);filter:brightness(.95)}.btn-icon--primary.btn-icon--active{color:var(--color-primary-text);background:var(--color-primary-light);border-color:var(--color-primary)}@media (hover:hover){.btn-icon--danger:hover:not(:disabled){background:var(--color-danger-bg);color:var(--color-danger);border-color:var(--color-danger)}}.btn-icon--danger:active:not(:disabled){background:var(--color-danger-bg);color:var(--color-danger);border-color:var(--color-danger);filter:brightness(.95)}.btn-create{width:var(--touch-target-size);height:var(--touch-target-size);border:1px solid var(--color-primary);border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;cursor:pointer;transition:background var(--duration-fast), border-color var(--duration-fast), filter var(--duration-fast);flex-shrink:0;justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex}@media (hover:hover){.btn-create:hover:not(:disabled){filter:brightness(.92)}}.btn-create:disabled{opacity:.4;cursor:not-allowed}.btn-select-trigger{justify-content:space-between;align-items:center;gap:var(--spacing-8);padding:var(--spacing-8) var(--spacing-12);width:260px;min-width:var(--touch-target-size);height:var(--input-height);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-size:var(--font-size-sm);cursor:pointer;text-align:start;transition:border-color var(--duration-fast);display:flex}@media (hover:hover){.btn-select-trigger:hover:not(:disabled){border-color:var(--color-primary)}}.btn-select-trigger:disabled{opacity:.5;cursor:not-allowed}.btn-combo-caret{min-width:var(--touch-target-size);padding:0 var(--spacing-8);border:0;border-inline-start:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;transition:color var(--duration-fast);background:0 0;justify-content:center;align-self:stretch;align-items:center;display:inline-flex}@media (hover:hover){.btn-combo-caret:hover:not(:disabled){color:var(--color-primary)}}.btn-combo-caret:disabled{opacity:.5;cursor:not-allowed}.btn-combo-body{align-items:center;gap:var(--spacing-8);min-width:0;min-height:var(--btn-min-height);padding:var(--spacing-8) var(--spacing-12);color:var(--color-text-muted);font-size:var(--font-size-sm);cursor:pointer;text-align:start;background:0 0;border:0;flex:1;display:inline-flex}@media (hover:hover){.btn-combo-body:hover:not(:disabled){color:var(--color-primary)}}.btn-menu-option{align-items:center;gap:var(--spacing-8);width:100%;padding:var(--spacing-8) var(--spacing-12);min-height:var(--touch-target-size);color:var(--color-text);font-size:var(--font-size-sm);text-align:start;cursor:pointer;white-space:nowrap;transition:background var(--duration-instant);background:0 0;border:none;display:flex}@media (hover:hover){.btn-menu-option:hover:not(:disabled){background:var(--color-bg-alt)}}.btn-menu-option:disabled{opacity:.5;cursor:not-allowed}.btn-rating{cursor:pointer;padding:var(--spacing-4);color:var(--color-border);transition:color var(--duration-fast);border-radius:var(--radius-sm);background:0 0;border:none}@media (pointer:coarse){.btn-rating{min-width:var(--touch-target-size);min-height:var(--touch-target-size);justify-content:center;align-items:center;display:inline-flex}}.btn-rating.rating-star.filled{color:var(--color-rating-star-graphic)}@media (hover:hover){.btn-rating.rating-star:hover:not(:disabled){color:var(--color-rating-star-graphic)}}.btn-rating.rating-heart.filled{color:var(--color-danger)}@media (hover:hover){.btn-rating.rating-heart:hover:not(:disabled){color:var(--color-danger)}}.btn-circle{width:var(--touch-target-size);height:var(--touch-target-size);border:1px solid var(--color-border);background:var(--color-surface);font-size:var(--font-size-2xs);cursor:pointer;color:var(--color-text-muted);transition:all var(--duration-instant);border-radius:50%;justify-content:center;align-items:center;padding:0;font-weight:600;display:flex}@media (hover:hover){.btn-circle:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}}.btn-circle.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}@media (hover:hover){.btn-circle.active:hover:not(:disabled){background:var(--color-primary);border-color:var(--color-primary);color:#fff;filter:brightness(.92);outline:2px solid var(--color-on-saturated-muted);outline-offset:-3px}}.btn-circle:disabled{opacity:.5;cursor:not-allowed}.btn-icon-ghost{min-width:var(--touch-target-size);min-height:var(--touch-target-size);color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:color var(--duration-fast), background var(--duration-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}@media (hover:hover){.btn-icon-ghost:hover:not(:disabled){color:var(--color-primary)}}.btn-icon-ghost:disabled{opacity:.4;cursor:not-allowed}.btn-column-header{align-items:center;gap:var(--spacing-4);width:100%;color:inherit;font:inherit;text-align:inherit;cursor:pointer;white-space:nowrap;transition:color var(--duration-fast);background:0 0;border:none;padding:0;display:inline-flex}@media (hover:hover){.btn-column-header:hover:not(:disabled){color:var(--color-text)}}.btn-column-header:disabled{cursor:not-allowed}@media (pointer:coarse){.btn-select-trigger,.btn-column-header,.btn-row-select{min-height:var(--touch-target-size)}.btn-column-header{min-width:var(--touch-target-size)}.btn-combo-caret{min-width:var(--touch-target-size);min-height:var(--touch-target-size)}}.btn{justify-content:center;align-items:center;gap:var(--spacing-4);padding:var(--spacing-8) var(--spacing-16);border-radius:var(--radius-sm);font-size:var(--font-size-btn);cursor:pointer;transition:background-color var(--duration-fast) var(--easing-standard), color var(--duration-fast) var(--easing-standard), border-color var(--duration-fast) var(--easing-standard), transform var(--duration-fast) var(--easing-standard), filter var(--duration-fast) var(--easing-standard);white-space:nowrap;min-width:110px;min-height:var(--btn-min-height);border:none;font-weight:500;display:inline-flex}.btn-primary{background:var(--color-primary);color:#fff}@media (hover:hover){.btn-primary:hover:not(:disabled){filter:brightness(.9);box-shadow:var(--shadow-btn-primary);transform:translateY(-1px)}}.btn-secondary{background:var(--color-bg);color:var(--color-text-muted);border:1px solid var(--color-border)}@media (hover:hover){.btn-secondary:hover:not(:disabled){background:var(--color-bg-alt)}}.btn-danger{background:var(--color-danger-fill);color:#fff}@media (hover:hover){.btn-danger:hover:not(:disabled){background:var(--color-danger-fill-hover);box-shadow:var(--shadow-btn-danger);transform:translateY(-1px)}}.btn-link{color:var(--color-brand);font-weight:var(--font-weight-semibold);min-width:0;min-height:0;font-size:inherit;text-underline-offset:2px;background:0 0;border:none;padding:0;text-decoration:underline}html[data-theme=dark] .btn-link{color:var(--color-primary-text)}@media (hover:hover){.btn-link:hover:not(:disabled){filter:brightness(.85);box-shadow:none;background:0 0;transform:none}}@media (pointer:coarse){.btn-link{position:relative}.btn-link:before{content:"";inset-inline:min(0px, calc((100% - var(--touch-target-size)) / 2));inset-block:calc((100% - var(--touch-target-size)) / 2);position:absolute}}.btn-sm{padding:var(--spacing-4) var(--spacing-12);font-size:var(--font-size-xs);min-width:unset}@media (pointer:coarse){.btn-sm{position:relative}.btn-sm:before{content:"";inset-inline:0;height:var(--touch-target-size);position:absolute;top:50%;transform:translateY(-50%)}}.btn-lg{padding:var(--spacing-16) var(--spacing-32);font-size:var(--font-size-lg)}.btn:disabled,.btn-primary:disabled,.btn-secondary:disabled,.btn-danger:disabled,.btn-link:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-square{width:var(--touch-target-size);height:var(--touch-target-size);border:1px solid var(--color-primary);border-radius:var(--radius);background:var(--color-primary);color:#fff;cursor:pointer;transition:background-color var(--duration-fast) var(--easing-decelerate), border-color var(--duration-fast) var(--easing-decelerate);flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}@media (hover:hover){.btn-square:hover:not(:disabled){background:var(--color-brand);border-color:var(--color-brand)}}.btn-square:disabled{opacity:.5;cursor:not-allowed}.btn-counter{justify-content:space-between;align-items:center;gap:var(--spacing-4);min-width:calc(var(--touch-target-size) + var(--spacing-8));max-width:var(--counter-button-max);height:var(--touch-target-size);padding:0 var(--spacing-4);border:2px solid var(--color-neutral-strong);border-radius:var(--radius-sm);background:var(--color-bg-alt);color:var(--color-text-muted);cursor:pointer;transition:background var(--duration-fast), color var(--duration-fast), border-color var(--duration-fast);flex:1 1 0;line-height:1;display:inline-flex}.btn-counter:disabled{opacity:.4;cursor:not-allowed}.btn-counter__icon{flex-shrink:0;display:inline-flex}.btn-counter__count{min-width:2ch;font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);font-variant-numeric:tabular-nums;text-align:end;color:var(--color-text)}.btn-counter__count--zero{color:var(--color-text-muted)}.btn-counter.btn-counter--lit{color:var(--color-warning-graphic);border-color:var(--color-warning-graphic);background:var(--color-warning-bg);animation:btn-counter-pulse var(--duration-pulse) var(--easing-standard) infinite}.btn-counter.btn-counter--active{animation:btn-counter-pulse var(--duration-pulse) var(--easing-standard) infinite}@keyframes btn-counter-pulse{0%,to{box-shadow:0 0}50%{box-shadow:0 0 0 var(--spacing-4) transparent}}@media (prefers-reduced-motion:reduce){.btn-counter.btn-counter--lit,.btn-counter.btn-counter--active{animation:none}}.btn,.btn-icon,.btn-square,.btn-select-trigger,.btn-combo-caret,.btn-combo-body,.btn-menu-option,.btn-rating,.btn-circle,.btn-icon-ghost,.btn-column-header,.btn-counter,.btn-bare{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.btn-row-select{width:100%;height:100%;color:inherit;font:inherit;text-align:inherit;cursor:pointer;background:0 0;border:none;align-items:center;padding:0;display:flex}.btn-row-select:disabled{cursor:not-allowed}.btn-stat-tile{color:inherit;font:inherit;text-align:inherit;cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;padding:0;display:flex}.btn-stat-tile:disabled{cursor:not-allowed}:where(.btn-bare){color:inherit;font:inherit;text-align:inherit;cursor:pointer;background:0 0;border:none;align-items:center;padding:0;display:inline-flex}:where(.btn-bare):disabled{cursor:not-allowed}@media (pointer:coarse){:where(.btn-bare){position:relative}:where(.btn-bare):before{content:"";inset-inline:min(0px, calc((100% - var(--touch-target-size)) / 2));inset-block:min(0px, calc((100% - var(--touch-target-size)) / 2));position:absolute}}.touch-tooltip{background:var(--overlay-tooltip-bg);color:#fff;padding:var(--spacing-4) var(--spacing-8);border-radius:var(--radius-xs);font-size:var(--font-size-xs);white-space:nowrap;pointer-events:none;z-index:var(--z-tooltip);box-shadow:var(--shadow-card-hover);font-weight:400;position:fixed;transform:translate(-50%)translateY(calc(-100% - 8px))}.root-error-boundary{min-height:100dvh;padding:var(--spacing-16);background:var(--color-bg);justify-content:center;align-items:center;display:flex}.root-error-boundary__panel{text-align:center;max-width:360px}.root-error-boundary__title{margin:0 0 var(--spacing-8);font-size:var(--font-size-2xl);color:var(--color-text);font-weight:600}.root-error-boundary__body{margin:0 0 var(--spacing-16);font-size:var(--font-size-base);color:var(--color-text-muted)}.root-error-boundary__actions{justify-content:center;gap:var(--spacing-8);flex-wrap:wrap;display:flex}.app-update-screen{z-index:var(--z-modal);justify-content:center;align-items:center;gap:var(--spacing-16);padding:var(--spacing-32);padding-top:calc(var(--spacing-32) + env(safe-area-inset-top,0px));padding-bottom:calc(var(--spacing-32) + env(safe-area-inset-bottom,0px));padding-left:calc(var(--spacing-32) + env(safe-area-inset-left,0px));padding-right:calc(var(--spacing-32) + env(safe-area-inset-right,0px));background:var(--color-bg);color:var(--color-text);text-align:center;flex-direction:column;display:flex;position:fixed;inset:0}.app-update-screen__icon{color:var(--color-primary)}.app-update-screen__title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);margin:0}.app-update-screen__body{font-size:var(--font-size-base);line-height:var(--line-height-snug);color:var(--color-text-muted);max-width:28rem;margin:0}.maintenance-banner{z-index:var(--z-sticky);align-items:flex-start;gap:var(--spacing-8);width:100%;padding:var(--spacing-12) var(--spacing-16);padding-top:calc(var(--spacing-12) + env(safe-area-inset-top,0px));padding-left:calc(var(--spacing-16) + env(safe-area-inset-left,0px));padding-right:calc(var(--spacing-16) + env(safe-area-inset-right,0px));background:var(--color-danger-strong);color:var(--color-on-saturated);box-shadow:var(--shadow-toast);display:flex;position:sticky;top:0}.maintenance-banner--unreachable{background:var(--color-warning-bg);color:var(--color-text)}.maintenance-banner--unreachable .maintenance-banner__icon{color:var(--color-warning-text)}.maintenance-banner--scheduled{background:var(--color-primary-light);color:var(--color-text)}.maintenance-banner--scheduled .maintenance-banner__icon{color:var(--color-primary)}.maintenance-banner--scheduled-soon{background:var(--color-warning-bg);color:var(--color-text)}.maintenance-banner--scheduled-soon .maintenance-banner__icon{color:var(--color-warning-text)}.maintenance-banner--update{background:var(--color-primary-light);color:var(--color-text);align-items:center}.maintenance-banner--update .maintenance-banner__icon{color:var(--color-primary);margin-top:0}.maintenance-banner--update .maintenance-banner__text{flex:1;min-width:0}.maintenance-banner__icon{margin-top:var(--spacing-2);color:var(--color-on-saturated);flex:none}.maintenance-banner__text{gap:var(--spacing-4);flex-direction:column;min-width:0;display:flex}.maintenance-banner__headline{font-size:var(--font-size-base);font-weight:var(--font-weight-regular);line-height:var(--line-height-snug)}.maintenance-banner__headline strong{font-weight:var(--font-weight-semibold)}.maintenance-banner__message{font-size:var(--font-size-sm);line-height:var(--line-height-snug);-webkit-line-clamp:3;overflow-wrap:anywhere;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.card{background:var(--color-surface);border-radius:var(--radius);border:1px solid var(--color-border-light);padding:var(--spacing-12) var(--spacing-16);box-shadow:var(--shadow-card);box-sizing:border-box}.card.card--dashed{border:1px dashed var(--color-border);box-shadow:none;background:0 0}.card.card--row{align-items:center;gap:var(--spacing-12);padding:var(--spacing-8) var(--spacing-12);flex-direction:row;display:flex}.card.card--bare{box-shadow:none;padding:var(--spacing-12) 0;background:0 0;border:none}.card.card--auth{box-shadow:var(--shadow-modal);padding:var(--spacing-32);border:none;width:100%;max-width:400px}@media (hover:hover){.card.card--dashed:hover,.card.card--bare:hover{box-shadow:none}.card.card--auth:hover{box-shadow:var(--shadow-modal);transform:none}}.form-field{gap:var(--spacing-8);flex-direction:column;display:flex}.form-field__label{font-size:var(--font-size-2xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.form-field__required{color:var(--color-danger)}.form-field__message{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-bottom:var(--spacing-4)}.form-field__action{margin-bottom:var(--spacing-4);align-self:flex-start}.form-field__message--error{color:var(--color-danger)}.modal-dialog .form-field+.form-field,.modal-dialog__title+.form-field,.modal-context-subtitle+.form-field{margin-top:var(--spacing-16)}.form-field__group{display:block}.text-input{height:var(--input-height);padding:0 var(--spacing-12);font-size:var(--font-size-input);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-sizing:border-box;transition:border-color var(--duration-fast) var(--easing-standard), box-shadow var(--duration-fast) var(--easing-standard);font-family:inherit}.text-input:focus{border-color:var(--color-primary)}.text-input::placeholder{color:var(--color-text-placeholder)}.text-input[aria-invalid=true]{border-color:var(--color-danger)}.text-input[aria-invalid=true]:focus-visible{outline-color:var(--color-danger)}.sticky-layout{min-height:0;margin-inline:calc(-1 * var(--spacing-4));padding-inline:var(--spacing-4);flex-direction:column;flex:1;display:flex;overflow:hidden auto}.sticky-layout__header{padding:var(--spacing-12) var(--spacing-8) var(--spacing-8);flex-direction:column;flex-shrink:0;display:flex}.sticky-layout__body{min-height:0;padding:0 var(--spacing-8) var(--spacing-8);min-height:min(100%, var(--layout-body-min-height));flex:1;overflow-y:auto}.sticky-layout__body:first-child{padding-top:var(--spacing-12)}.sticky-layout__body--fill{min-height:min(100%, var(--layout-fill-body-min-height));flex-direction:column;display:flex;overflow:hidden}.sticky-layout--fill{overflow-y:auto}.sticky-layout__body::-webkit-scrollbar{width:8px;height:8px}.sticky-layout__body::-webkit-scrollbar-track{background:0 0}.sticky-layout__body::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:4px}@media (hover:hover){.sticky-layout__body::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}}.empty-state{text-align:center;padding:var(--empty-state-padding-block) var(--spacing-20);color:var(--empty-state-color);font-size:var(--empty-state-font-size);font-weight:var(--empty-state-font-weight);margin:0;font-style:normal}.empty-state>p{font-size:inherit;font-weight:inherit;color:inherit;margin:0}.empty-state--inline{text-align:start;padding:var(--empty-state-padding-inline-block) 0}@keyframes empty-state-pulse{0%,to{opacity:.5}50%{opacity:1}}.empty-state--animated{animation:empty-state-pulse var(--duration-pulse) var(--easing-standard) infinite}@media (prefers-reduced-motion:reduce){.empty-state--animated{animation:none}}.sso-signed-in-notice__message{overflow-wrap:anywhere;min-width:0}.modal-scrim{z-index:var(--z-modal);background:var(--overlay-scrim);padding:var(--spacing-16);animation:modal-scrim-fade-in var(--duration-fast) var(--easing-standard);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}@keyframes modal-scrim-fade-in{0%{opacity:0}to{opacity:1}}.modal-dialog{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow-modal);overscroll-behavior-x:contain;width:100%;max-width:560px;max-height:100%;padding:var(--spacing-16);animation:modal-dialog-slide-in var(--duration-base) var(--easing-decelerate);overflow:auto}@keyframes modal-dialog-slide-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.modal-dialog__title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--color-text-strong);margin:0 0 var(--spacing-12)}.modal-dialog__header{align-items:center;gap:var(--spacing-8);margin-bottom:var(--spacing-12);display:flex}.modal-dialog__header .modal-dialog__title{flex:1;min-width:0;margin-bottom:0}.modal-dialog__header-action,.modal-dialog__close{flex-shrink:0}.modal-context-subtitle{color:var(--color-text-muted);font-size:var(--font-size-base);margin:0 0 var(--spacing-16)}.modal-error{background:var(--color-danger-bg);color:var(--color-danger);border:1px solid var(--color-danger);border-radius:var(--radius-xs);padding:var(--spacing-8) var(--spacing-12);font-size:var(--font-size-base);line-height:var(--line-height-snug);margin:var(--spacing-12) 0 0}@media (prefers-reduced-motion:reduce){.modal-scrim,.modal-dialog{animation:none}}@media (width<=480px){.modal-scrim{align-items:flex-end;padding:0}.modal-dialog{border-radius:var(--radius) var(--radius) 0 0;max-height:min(90dvh,100%)}}.modal-actions{gap:var(--spacing-12);margin-top:var(--spacing-16);padding-top:var(--spacing-16);border-top:1px solid var(--color-border);justify-content:flex-end;display:flex}.modal-dialog .modal-actions{bottom:calc(-1 * var(--spacing-16));z-index:var(--z-raised);background:var(--color-surface);padding-bottom:var(--spacing-16);margin-bottom:calc(-1 * var(--spacing-16));position:sticky}.modal-actions--wrap{flex-wrap:wrap}@media (width<=480px){.modal-actions{flex-wrap:wrap}.modal-actions>.btn{min-width:var(--touch-target-size)}.modal-actions--wrap>.audience-line{flex-basis:100%}}.audience-line{align-items:center;gap:var(--spacing-8);margin:0;color:var(--color-text-muted);font-size:var(--font-size-sm);margin-inline-end:auto;display:flex}.audience-line>svg{flex-shrink:0}.select-input-wrap{width:max-content;max-width:100%;display:inline-flex;position:relative}.select-input-wrap>.select-input{flex:auto;min-width:0}.select-input__chevron{inset-inline-end:var(--spacing-12);pointer-events:none;color:var(--color-text-muted);position:absolute;top:50%;transform:translateY(-50%)}.select-input{height:var(--input-height);padding:0 var(--spacing-32) 0 var(--spacing-12);font-size:var(--font-size-input);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-sizing:border-box;appearance:none;font-family:inherit}.select-input--compact{height:var(--btn-min-height);font-size:var(--font-size-input-sm)}.select-input:focus{border-color:var(--color-primary)}.select-input[aria-invalid=true]{border-color:var(--color-danger)}.select-input[aria-invalid=true]:focus-visible{outline-color:var(--color-danger)}.radio-pills{border:1px solid var(--color-border);border-radius:var(--radius);--radio-pills-fade-edge:right;flex-shrink:0;align-self:flex-start;gap:0;display:inline-flex;overflow:hidden}[dir=rtl] .radio-pills{--radio-pills-fade-edge:left}.radio-pills--overflowing{-webkit-mask-image:linear-gradient(to var(--radio-pills-fade-edge), black calc(100% - var(--spacing-24)), transparent);mask-image:linear-gradient(to var(--radio-pills-fade-edge), black calc(100% - var(--spacing-24)), transparent)}.radio-pills__pill{justify-content:center;align-items:center;gap:var(--spacing-4);min-height:var(--btn-min-height);padding:0 var(--spacing-12);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-muted);background:var(--color-surface);border:none;border-inline-end:1px solid var(--color-border);cursor:pointer;transition:background var(--duration-fast) var(--easing-standard), color var(--duration-fast) var(--easing-standard);-webkit-user-select:none;user-select:none;white-space:nowrap;display:inline-flex}.radio-pills__pill:last-child{border-inline-end:none}@media (hover:hover){.radio-pills__pill:hover:not(.radio-pills__pill--disabled):not(.radio-pills__pill--selected){background:var(--color-primary-light);color:var(--color-primary-text)}}.radio-pills__pill--selected{background:var(--color-primary);color:var(--color-on-saturated)}.radio-pills__pill--disabled{opacity:.5;cursor:not-allowed}.radio-pills__label{align-items:center;gap:var(--spacing-4);display:inline-flex}.radio-pills--stack{flex-direction:column;align-self:stretch;width:100%;display:flex}.radio-pills--stack .radio-pills__pill{white-space:normal;border-inline-end:none;border-bottom:1px solid var(--color-border);padding:var(--spacing-8) var(--spacing-12);min-height:var(--touch-target-size);justify-content:flex-start}.radio-pills--stack .radio-pills__pill:last-child{border-bottom:none}.radio-pills--stack.radio-pills--compact .radio-pills__pill{min-height:var(--btn-min-height);padding-block:0}.time-select{width:max-content;max-width:100%;height:var(--input-height);padding:0 var(--spacing-12);font-size:var(--font-size-input);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-sizing:border-box;transition:border-color var(--duration-fast) var(--easing-standard), box-shadow var(--duration-fast) var(--easing-standard);font-family:inherit}.time-select:focus{border-color:var(--color-primary)}.time-select[aria-invalid=true]{border-color:var(--color-danger)}.time-select[aria-invalid=true]:focus-visible{outline-color:var(--color-danger)}.settings-shell{max-width:min(var(--settings-shell-max-width), 100%);min-height:0;padding-top:var(--spacing-16);padding-bottom:var(--spacing-16);flex:1;margin-inline:auto;overflow-y:auto}.settings-section{margin-bottom:var(--spacing-16)}.settings-section__title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-top:0;margin-bottom:var(--spacing-12);display:block}.settings-section__hint{font-size:var(--font-size-xs);color:var(--color-text-muted);margin:0 0 var(--spacing-12)}:not(.settings-section__title):not(.settings-section__hint)+.settings-section__hint{margin-top:var(--spacing-12)}.settings-section__label{font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:.35rem;display:block}.audience-frame__label{align-items:center;gap:var(--spacing-8);margin:0 0 var(--spacing-16);padding:var(--spacing-8) var(--spacing-12);background:var(--color-audience-shared-bg);color:var(--color-audience-shared-text);border-inline-start:var(--audience-rule-width) solid var(--color-audience-shared-text);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border-start-end-radius:var(--radius-sm);border-end-end-radius:var(--radius-sm);display:flex}.audience-frame__label>svg{flex-shrink:0}.detail-row{gap:var(--spacing-4);flex-direction:column;display:flex}.detail-row__label{font-size:var(--font-size-2xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.detail-row__value{font-size:var(--font-size-base);color:var(--color-text)}.detail-row--inline{justify-content:space-between;align-items:baseline;gap:var(--spacing-12);flex-direction:row}.detail-row--inline .detail-row__value{overflow-wrap:break-word;min-width:0}.list-rows{gap:var(--spacing-4);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.list-row{align-items:flex-start;gap:var(--spacing-12);padding:var(--spacing-8) 0;display:flex}.list-row__icon{padding-top:var(--spacing-2);color:var(--color-text-muted);flex-shrink:0;display:inline-flex}.list-row__body{gap:var(--spacing-2);flex-direction:column;flex:auto;min-width:0;display:flex}.list-row__heading{align-items:center;gap:var(--spacing-8);flex-wrap:wrap;display:inline-flex}.list-row__primary{font-size:var(--font-size-base);color:var(--color-text);overflow-wrap:anywhere;font-weight:600}.list-row__tag{font-size:var(--font-size-eyebrow);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:0 var(--spacing-4);font-weight:700}.list-row__meta{column-gap:var(--spacing-12);row-gap:var(--spacing-2);font-size:var(--font-size-sm);color:var(--color-text-muted);flex-wrap:wrap;display:flex}.list-row__actions{align-items:center;gap:var(--touch-gap);flex-shrink:0;display:inline-flex}.popover-trigger{display:inline-flex}.popover-surface{z-index:var(--z-popover);background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius);box-shadow:var(--shadow-popover);padding:var(--spacing-8);min-width:160px;max-width:calc(100vw - var(--spacing-16));max-height:calc(100dvh - var(--spacing-16));animation:popover-fade-in var(--duration-fast) var(--easing-decelerate);position:fixed;overflow-y:auto}@keyframes popover-fade-in{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.popover-surface{animation:none}}
