:root{--color-bg: #f4f6f9;--color-surface: #ffffff;--color-surface-sunken: #ebeef3;--color-border: #dce1e8;--color-border-strong: #b9c2ce;--color-text-primary: #151a21;--color-text-secondary: #4b5563;--color-text-tertiary: #8a94a3;--color-text-inverse: #ffffff;--color-accent: #2f6fed;--color-accent-hover: #2558c7;--color-accent-soft: #e8effe;--color-success-bg: #e4f5e9;--color-success-fg: #166534;--color-warning-bg: #fdf3db;--color-warning-fg: #7a5b02;--color-danger-bg: #fce8e8;--color-danger-fg: #991b1b;--color-sos-card-bg: #feecec;--color-sos-glow: rgba(220, 38, 38, .42);--color-neutral-bg: #ebeef3;--color-neutral-fg: #4b5563;--color-focus-ring: #2f6fed;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Inter, Helvetica, Arial, sans-serif;--font-mono: "SF Mono", "Roboto Mono", Consolas, "Liberation Mono", monospace;--text-xs: .75rem;--text-sm: .8125rem;--text-base: .875rem;--text-md: 1rem;--text-lg: 1.25rem;--text-xl: 1.75rem;--text-2xl: 2.125rem;--text-3xl: 2.75rem;--font-weight-display: 650;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--radius-xs: 2px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(16, 24, 36, .06);--shadow-md: 0 4px 12px rgba(16, 24, 36, .08);--shadow-hover: 0 8px 20px rgba(16, 24, 36, .1);--shadow-modal: 0 12px 32px rgba(16, 24, 36, .18);--shadow-floating: 0 2px 6px rgba(16, 24, 36, .06), 0 16px 40px rgba(16, 24, 36, .14);--color-overlay: rgba(16, 24, 36, .45);--motion-fast: .12s;--motion-base: .2s;--motion-ease: cubic-bezier(.2, 0, 0, 1);--color-map-marker-stale: #f59e0b;--color-map-marker-expired: #dc2626;--color-map-marker-shadow: rgb(15 23 42 / 30%);--color-map-track-muted: #94a3b8;--color-map-unassigned-released: #7c3aed;--color-map-unassigned-provisioned: #0284c7;--color-map-unassigned-unprovisioned: #64748b;--color-map-popup-text: #0f172a;--color-map-popup-text-secondary: #475569;--color-phone-bezel: #1a1d22;--color-graph-queue-bg: #efeafd;--color-graph-queue-fg: #5b3fb8;--content-max: 1120px;--topbar-height: 64px;--sidebar-width: 240px;--sidebar-width-collapsed: 64px;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--color-bg: #12161c;--color-surface: #1a2029;--color-surface-sunken: #222933;--color-border: #2e3743;--color-border-strong: #3d4855;--color-text-primary: #edf0f4;--color-text-secondary: #aeb8c4;--color-text-tertiary: #7e8a99;--color-accent: #5b8dfb;--color-accent-hover: #7ba4fc;--color-accent-soft: #1d2b45;--color-success-bg: #1b3a2a;--color-success-fg: #6fdb9a;--color-warning-bg: #3a2e0e;--color-warning-fg: #f0c64b;--color-danger-bg: #3a1717;--color-danger-fg: #f29b9b;--color-sos-card-bg: #421d23;--color-sos-glow: rgba(248, 113, 113, .5);--color-neutral-bg: #222933;--color-neutral-fg: #aeb8c4;--color-focus-ring: #7ba4fc;--shadow-hover: 0 8px 24px rgba(0, 0, 0, .45);--color-overlay: rgba(8, 10, 14, .6);--color-map-marker-stale: #f59e0b;--color-map-marker-expired: #dc2626;--color-map-marker-shadow: rgb(15 23 42 / 30%);--color-map-track-muted: #94a3b8;--color-map-unassigned-released: #7c3aed;--color-map-unassigned-provisioned: #0284c7;--color-map-unassigned-unprovisioned: #64748b;--color-map-popup-text: #0f172a;--color-map-popup-text-secondary: #475569;--color-phone-bezel: #1a1d22;--color-graph-queue-bg: #2a2342;--color-graph-queue-fg: #c4b5fd;--shadow-floating: 0 2px 8px rgba(0, 0, 0, .3), 0 18px 44px rgba(0, 0, 0, .45);color-scheme:dark}}:root[data-theme=dark]{--color-bg: #12161c;--color-surface: #1a2029;--color-surface-sunken: #222933;--color-border: #2e3743;--color-border-strong: #3d4855;--color-text-primary: #edf0f4;--color-text-secondary: #aeb8c4;--color-text-tertiary: #7e8a99;--color-accent: #5b8dfb;--color-accent-hover: #7ba4fc;--color-accent-soft: #1d2b45;--color-success-bg: #1b3a2a;--color-success-fg: #6fdb9a;--color-warning-bg: #3a2e0e;--color-warning-fg: #f0c64b;--color-danger-bg: #3a1717;--color-danger-fg: #f29b9b;--color-sos-card-bg: #421d23;--color-sos-glow: rgba(248, 113, 113, .5);--color-neutral-bg: #222933;--color-neutral-fg: #aeb8c4;--color-focus-ring: #7ba4fc;--shadow-hover: 0 8px 24px rgba(0, 0, 0, .45);--color-overlay: rgba(8, 10, 14, .6);--color-map-marker-stale: #f59e0b;--color-map-marker-expired: #dc2626;--color-map-marker-shadow: rgb(15 23 42 / 30%);--color-map-track-muted: #94a3b8;--color-map-unassigned-released: #7c3aed;--color-map-unassigned-provisioned: #0284c7;--color-map-unassigned-unprovisioned: #64748b;--color-map-popup-text: #0f172a;--color-map-popup-text-secondary: #475569;--color-phone-bezel: #1a1d22;--color-graph-queue-bg: #2a2342;--color-graph-queue-fg: #c4b5fd;--shadow-floating: 0 2px 8px rgba(0, 0, 0, .3), 0 18px 44px rgba(0, 0, 0, .45);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--color-bg);color:var(--color-text-primary);font-family:var(--font-sans);font-size:var(--text-base);line-height:1.45;-webkit-font-smoothing:antialiased}h1,h2,h3,p{margin:0}:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.001ms!important;animation-duration:.001ms!important;scroll-behavior:auto!important}}@keyframes fc-fade-in{0%{opacity:0}}@keyframes fc-fade-out{to{opacity:0}}@keyframes fc-pop-in{0%{opacity:0;transform:scale(.96) translateY(4px)}}@keyframes fc-pop-out{to{opacity:0;transform:scale(.96) translateY(4px)}}@keyframes fc-slide-in-left{0%{transform:translate(-100%)}}@keyframes fc-slide-out-left{to{transform:translate(-100%)}}.modal-backdrop,.overlay,.drawer-backdrop{animation:fc-fade-in var(--motion-base) var(--motion-ease)}.modal-backdrop.is-closing,.overlay.is-closing,.drawer-backdrop.is-closing{animation:fc-fade-out var(--motion-base) var(--motion-ease) forwards}.modal,.command-palette{animation:fc-pop-in var(--motion-base) var(--motion-ease)}.modal.is-closing{animation:fc-pop-out var(--motion-base) var(--motion-ease) forwards}.menu-panel{transform-origin:top right;animation:fc-pop-in var(--motion-fast) var(--motion-ease)}.menu-panel.is-closing{animation:fc-pop-out var(--motion-fast) var(--motion-ease) forwards}.drawer{animation:fc-slide-in-left var(--motion-base) var(--motion-ease)}.drawer.is-closing{animation:fc-slide-out-left var(--motion-base) var(--motion-ease) forwards}.menu-section-label{font-size:var(--text-xs);font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.04em;margin-top:var(--space-3);margin-bottom:var(--space-2)}.page{max-width:var(--content-max);margin:0 auto;padding:var(--space-8)}.page-header{margin-bottom:var(--space-6)}.page-header h1{font-size:var(--text-lg);font-weight:600}.page-header p{margin-top:var(--space-1);font-size:var(--text-sm);color:var(--color-text-secondary)}.section{margin-bottom:var(--space-10)}.section-title{font-size:var(--text-md);font-weight:600;margin-bottom:var(--space-1)}.section-note{font-size:var(--text-xs);color:var(--color-text-tertiary);margin-bottom:var(--space-4);max-width:62ch}.grid-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-4)}.grid-metrics--two{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-5)}.card--wide{padding:var(--space-6)}.metric-label{font-size:var(--text-sm);font-weight:500;color:var(--color-text-secondary);display:flex;align-items:center;gap:var(--space-2)}.metric-value{font-size:var(--text-xl);font-weight:700;margin-top:var(--space-2);font-variant-numeric:tabular-nums}.metric-value--hero{font-size:var(--text-3xl);font-weight:var(--font-weight-display);letter-spacing:-.01em}.metric-value--unavailable{font-size:var(--text-lg);font-style:italic;color:var(--color-text-tertiary);font-weight:600}.metric-hint{font-size:var(--text-xs);color:var(--color-text-tertiary);margin-top:var(--space-2)}.chip{display:inline-flex;align-items:center;gap:var(--space-1);border-radius:var(--radius-pill);padding:var(--space-1) var(--space-3);font-size:var(--text-xs);font-weight:600;white-space:nowrap}.chip--lg{font-size:var(--text-sm);padding:var(--space-2) var(--space-4)}.chip--success{background:var(--color-success-bg);color:var(--color-success-fg)}.chip--warning{background:var(--color-warning-bg);color:var(--color-warning-fg)}.chip--danger{background:var(--color-danger-bg);color:var(--color-danger-fg)}.chip--neutral{background:var(--color-neutral-bg);color:var(--color-neutral-fg)}.chip--accent{background:var(--color-accent-soft);color:var(--color-accent)}.notice{display:flex;gap:var(--space-3);align-items:flex-start;border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);margin-bottom:var(--space-4)}.notice strong{font-weight:600}.notice--success{background:var(--color-success-bg);color:var(--color-success-fg)}.notice--warning{background:var(--color-warning-bg);color:var(--color-warning-fg)}.notice--danger{background:var(--color-danger-bg);color:var(--color-danger-fg)}.notice--info{background:var(--color-accent-soft);color:var(--color-accent)}.field{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4)}.field>label{font-size:var(--text-sm);font-weight:500;color:var(--color-text-secondary)}.field-hint{font-size:var(--text-xs);color:var(--color-text-tertiary)}.field-error{font-size:var(--text-xs);color:var(--color-danger-fg);font-weight:500}input[type=text],input[type=email],input[type=password],input[type=url],input[type=tel],input[type=number],textarea,select{font:inherit;color:var(--color-text-primary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);width:100%}input[aria-invalid=true]{border-color:var(--color-danger-fg)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font:inherit;font-weight:600;border-radius:var(--radius-sm);padding:var(--space-2) var(--space-4);cursor:pointer;border:1px solid transparent}.btn--primary{background:var(--color-accent-hover);color:var(--color-text-inverse)}.btn--primary:hover{background:var(--color-accent)}.btn--secondary{background:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border-strong)}.btn--ghost{background:transparent;color:var(--color-text-primary);border:1px solid var(--color-border)}.btn--danger{background:var(--color-danger-bg);color:var(--color-danger-fg);border:1px solid var(--color-danger-fg)}.btn--block{width:100%}.btn:disabled{opacity:.55;cursor:not-allowed}.skeleton{background:var(--color-surface-sunken);border-radius:var(--radius-sm);height:76px;animation:skeleton-pulse 1.2s ease-in-out infinite}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.45}}.state-block{text-align:center;padding:var(--space-12) var(--space-6);border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-surface)}.state-block h2{font-size:var(--text-md);font-weight:600;margin-bottom:var(--space-2)}.state-block p{font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-4)}.breadcrumbs{margin-bottom:var(--space-3)}.breadcrumb-list{display:flex;align-items:center;gap:var(--space-2);list-style:none;margin:0;padding:0;font-size:var(--text-sm)}.breadcrumb-item{display:flex;align-items:center;gap:var(--space-2)}.breadcrumb-link{color:var(--color-text-tertiary);text-decoration:none;transition:color var(--motion-fast) var(--motion-ease)}.breadcrumb-link:hover{color:var(--color-text-primary)}.breadcrumb-current{color:var(--color-text-primary);font-weight:600}.breadcrumb-separator{display:inline-flex;color:var(--color-text-tertiary)}.sidebar-section{display:flex;flex-direction:column}.empty-state{text-align:center;padding:var(--space-12) var(--space-6);border-radius:var(--radius-lg);background:var(--color-surface)}.empty-state h2{font-size:var(--text-md);font-weight:600;margin-bottom:var(--space-2)}.empty-state p{font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-4);max-width:48ch;margin-left:auto;margin-right:auto}.empty-state-icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;margin-bottom:var(--space-4)}.empty-state--empty{border:1px dashed var(--color-border-strong)}.empty-state--empty .empty-state-icon{background:var(--color-neutral-bg);color:var(--color-neutral-fg)}.empty-state--error{border:1px solid var(--color-border)}.empty-state--error .empty-state-icon{background:var(--color-danger-bg);color:var(--color-danger-fg)}.empty-state--no-permission{border:1px solid var(--color-border)}.empty-state--no-permission .empty-state-icon{background:var(--color-warning-bg);color:var(--color-warning-fg)}.data-table{width:100%;border-collapse:collapse;background:var(--color-surface);font-size:var(--text-sm)}.data-table-th{text-align:left;padding:var(--space-2) var(--space-3);border-bottom:2px solid var(--color-border);color:var(--color-text-secondary);font-weight:600;white-space:nowrap}.data-table-th--sortable{padding:0}.data-table-sort-btn{display:inline-flex;align-items:center;gap:var(--space-1);width:100%;font:inherit;font-weight:600;color:inherit;background:none;border:none;padding:var(--space-2) var(--space-3);cursor:pointer;transition:color var(--motion-fast) var(--motion-ease)}.data-table-sort-btn:hover{color:var(--color-text-primary)}.data-table-sort-icon{display:inline-flex;width:12px}.data-table-td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);vertical-align:middle}.data-table-row{transition:background var(--motion-fast) var(--motion-ease)}.data-table-row:hover{background:var(--color-surface-sunken)}.kbd-pill{display:inline-flex;align-items:center;gap:var(--space-2);background:var(--color-surface-sunken);color:var(--color-text-tertiary);font-size:var(--text-sm);font-weight:500;padding:var(--space-2) var(--space-3);border-radius:var(--radius-pill);border:1px solid var(--color-border);cursor:pointer;transition:background var(--motion-fast) var(--motion-ease)}.kbd-pill:hover{background:var(--color-border)}.kbd-pill-label{white-space:nowrap}@media(max-width:640px){.kbd-pill-label{display:none}}.kbd-hint{font-size:var(--text-xs);font-weight:700;background:var(--color-surface-sunken);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);padding:1px 6px;color:var(--color-text-secondary)}.command-palette-overlay{position:fixed;inset:0;background:var(--color-overlay);display:flex;align-items:flex-start;justify-content:center;padding-top:14vh;z-index:55}.command-palette{width:100%;max-width:560px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal);overflow:hidden;margin:0 var(--space-4)}.command-palette-input-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--color-border)}.command-palette-input{flex-grow:1;border:none;background:transparent;font:inherit;font-size:var(--text-md);color:var(--color-text-primary);outline:none}.command-palette-list{list-style:none;margin:0;padding:var(--space-2);max-height:320px;overflow-y:auto}.command-palette-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--text-sm);cursor:pointer}.command-palette-item[aria-selected=true]{background:var(--color-accent-soft);color:var(--color-accent)}.command-palette-empty{padding:var(--space-6);text-align:center;color:var(--color-text-tertiary);font-size:var(--text-sm)}.pagination{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-4)}.pagination-summary{font-size:var(--text-xs);color:var(--color-text-tertiary)}.pagination-controls{display:flex;gap:var(--space-2)}.chart-hbars{display:flex;flex-direction:column;gap:var(--space-2)}.chart-hbar-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr) auto;gap:var(--space-2);align-items:center}.chart-hbar-label{font-size:var(--text-xs);color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chart-hbar-track{background:var(--color-surface-sunken);border-radius:var(--radius-pill);height:var(--space-3);overflow:hidden}.chart-hbar-fill{display:block;height:100%;background:var(--color-accent);border-radius:var(--radius-pill)}.chart-hbar-value{font-size:var(--text-xs);font-weight:600;font-variant-numeric:tabular-nums;min-width:3ch;text-align:right}.chart-wrap{position:relative}.chart-tooltip{position:absolute;top:-8px;left:0;transform:translate(-50%,-100%);background:var(--color-text-primary);color:var(--color-text-inverse);font-size:var(--text-xs);font-weight:600;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);white-space:nowrap;box-shadow:var(--shadow-md);pointer-events:none;z-index:5}.chart-vbars,.chart-line{display:block;width:100%;height:auto}.chart-bar{fill:var(--color-accent);rx:var(--radius-xs);cursor:pointer}.chart-area{fill:var(--color-accent-soft)}.chart-line-stroke{stroke:var(--color-accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.chart-dot{fill:var(--color-accent);cursor:pointer;transition:r var(--motion-fast) var(--motion-ease)}.chart-progress{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-2);align-items:center}.chart-progress-track{background:var(--color-surface-sunken);border-radius:var(--radius-pill);height:var(--space-3);overflow:hidden}.chart-progress-fill{display:block;height:100%;border-radius:var(--radius-pill)}.chart-progress-fill--accent{background:var(--color-accent)}.chart-progress-fill--success{background:var(--color-success-fg)}.chart-progress-fill--warning{background:var(--color-warning-fg)}.chart-progress-fill--danger{background:var(--color-danger-fg)}.chart-progress-value{font-size:var(--text-xs);font-weight:600;font-variant-numeric:tabular-nums;min-width:3ch;text-align:right}.toast{position:fixed;bottom:var(--space-6);left:50%;transform:translate(-50%);border-radius:var(--radius-md);padding:var(--space-3) var(--space-5);font-size:var(--text-sm);box-shadow:var(--shadow-md);z-index:60}.modal-backdrop{position:fixed;inset:0;background:var(--color-overlay);display:flex;align-items:center;justify-content:center;z-index:50}.modal-backdrop--top{z-index:70}.modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal);padding:var(--space-6);max-width:440px;width:calc(100% - var(--space-8))}.modal h2{font-size:var(--text-md);font-weight:600;margin-bottom:var(--space-2)}.modal p{font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-4)}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-bg);padding:var(--space-6)}.login-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--space-8);width:100%;max-width:420px}.settings-tabs{display:flex;gap:var(--space-4);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-6)}.settings-tab{appearance:none;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;padding:var(--space-3) var(--space-1);font:inherit;font-size:var(--text-sm);font-weight:500;color:var(--color-text-secondary);cursor:pointer;transition:color var(--motion-fast) var(--motion-ease),border-color var(--motion-fast) var(--motion-ease)}.settings-tab:hover{color:var(--color-text-primary)}.settings-tab--active{color:var(--color-accent);border-bottom-color:var(--color-accent);font-weight:600}.auth-layout-aside{display:none}@media(min-width:960px){.login-screen{gap:var(--space-12)}.auth-layout-aside{display:flex;flex-direction:column;justify-content:center;max-width:340px}.auth-layout-aside h2{font-size:var(--text-xl);font-weight:700;letter-spacing:-.01em;margin-bottom:var(--space-3)}.auth-layout-aside p{color:var(--color-text-secondary);font-size:var(--text-sm);line-height:1.6}}.login-remember{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-secondary);cursor:pointer}.login-remember input{width:16px;height:16px;accent-color:var(--color-accent)}.password-wrap{position:relative}.password-wrap input{width:100%;padding-right:44px}.password-toggle{position:absolute;right:var(--space-1);top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer}.password-toggle:hover{color:var(--color-text-primary)}.password-toggle:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:1px}.login-card .wordmark{font-size:var(--text-lg);font-weight:700;letter-spacing:-.01em}.login-sub{font-size:var(--text-sm);color:var(--color-text-secondary);margin-top:var(--space-1);margin-bottom:var(--space-6)}.auth-divider{display:flex;align-items:center;gap:var(--space-3);margin:var(--space-5) 0;color:var(--color-text-tertiary);font-size:var(--text-xs)}.auth-divider:before,.auth-divider:after{content:"";flex:1;border-top:1px solid var(--color-border)}.oauth-buttons{display:flex;flex-direction:column;gap:var(--space-3)}.oauth-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font:inherit;font-weight:600;border-radius:var(--radius-sm);padding:var(--space-2) var(--space-4);cursor:pointer;background:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border-strong)}.link-button{background:none;border:none;padding:0;font:inherit;color:var(--color-accent);text-decoration:underline;cursor:pointer}.enroll-secret{font-family:var(--font-mono);font-size:var(--text-sm);background:var(--color-surface-sunken);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);word-break:break-all;-webkit-user-select:all;user-select:all}.backup-codes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2);font-family:var(--font-mono);font-size:var(--text-sm);background:var(--color-surface-sunken);border-radius:var(--radius-sm);padding:var(--space-3)}.qr-frame{display:inline-block;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4)}.shell{display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);min-height:100vh}.shell--collapsed{grid-template-columns:var(--sidebar-width-collapsed) minmax(0,1fr)}.topbar{position:sticky;top:0;z-index:40;height:var(--topbar-height);display:flex;align-items:center;gap:var(--space-4);background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:0 var(--space-6)}.topbar-left{display:flex;align-items:center;gap:var(--space-3)}.wordmark{font-size:var(--text-md);font-weight:700;letter-spacing:-.01em;white-space:nowrap}.brand-logo{height:36px;width:auto;object-fit:contain}.brand-logo--lg{height:60px}.topbar-right{display:flex;align-items:center;gap:var(--space-3);margin-left:auto}.hamburger{display:none}.sidebar{position:sticky;top:var(--topbar-height);align-self:start;height:calc(100vh - var(--topbar-height));background:var(--color-surface);border-right:1px solid var(--color-border);overflow-y:auto;padding:var(--space-4) var(--space-3)}.sidebar-group-title{font-size:var(--text-xs);font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.04em;padding:var(--space-2) var(--space-3)}.sidebar-link{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:500;text-decoration:none;width:100%}.sidebar-link:hover{background:var(--color-surface-sunken);color:var(--color-text-primary)}.sidebar-link.active{background:var(--color-accent-soft);color:var(--color-accent);font-weight:600}.sidebar-link .nav-label{flex:1}.sidebar-collapse{display:flex;align-items:center;justify-content:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border);font-size:var(--text-sm);cursor:pointer;margin-top:var(--space-4)}.shell--collapsed .sidebar-link{justify-content:center;padding:var(--space-2)}.shell--collapsed .nav-label,.shell--collapsed .sidebar-group-title,.shell--collapsed .sidebar-collapse span{display:none}.drawer-backdrop{position:fixed;inset:0;background:var(--color-overlay);z-index:45}.drawer{position:fixed;top:0;bottom:0;left:0;width:min(var(--sidebar-width),85vw);background:var(--color-surface);border-right:1px solid var(--color-border);box-shadow:var(--shadow-modal);z-index:46;overflow-y:auto;padding:var(--space-4) var(--space-3)}.drawer-header{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-4)}.drawer-close{background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--text-sm);cursor:pointer;padding:var(--space-1) var(--space-3)}.menu{position:relative}.avatar{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--color-accent-soft);color:var(--color-accent);font-size:var(--text-sm);font-weight:700;border:1px solid var(--color-border);cursor:pointer}.menu-panel{position:absolute;right:0;top:calc(100% + var(--space-2));min-width:240px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:45;padding:var(--space-3)}.menu-email{font-size:var(--text-sm);color:var(--color-text-secondary);word-break:break-all;padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border)}.menu-item{display:block;width:100%;text-align:left;background:transparent;border:none;font:inherit;font-size:var(--text-sm);color:var(--color-danger-fg);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);cursor:pointer;margin-top:var(--space-2)}.menu-item:hover{background:var(--color-danger-bg)}.audit-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto auto;gap:var(--space-3);align-items:end;margin-bottom:var(--space-4)}.audit-filters .field{display:flex;flex-direction:column;gap:var(--space-1)}.audit-filters .field>span{font-size:var(--text-xs);color:var(--color-text-secondary)}.audit-filters input,.audit-filters select{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-primary);font-size:var(--text-sm)}.audit-table{width:100%;border-collapse:collapse;background:var(--color-surface);font-size:var(--text-sm)}.audit-table th{text-align:left;padding:var(--space-2) var(--space-3);border-bottom:2px solid var(--color-border);color:var(--color-text-secondary);font-weight:600}.audit-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);vertical-align:top}.audit-table code{font-size:var(--text-xs);background:var(--color-surface-sunken);padding:0 var(--space-1);border-radius:var(--radius-sm)}.audit-pagination{display:flex;gap:var(--space-2);margin-top:var(--space-4)}.bell-button{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border);cursor:pointer;text-decoration:none;position:relative}.bell-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 var(--space-1);border-radius:var(--radius-pill);background:var(--color-danger-bg);color:var(--color-danger-fg);font-size:var(--text-xs);font-weight:700;line-height:18px;text-align:center}.notification-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.notification-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4)}.notification-item--unread{border-left:3px solid var(--color-accent)}.notification-head{display:flex;align-items:center;gap:var(--space-2)}.notification-date{font-size:var(--text-xs);color:var(--color-text-tertiary);margin-left:auto}.notification-title{font-size:var(--text-md);font-weight:600;margin-top:var(--space-2)}.notification-body{font-size:var(--text-sm);color:var(--color-text-secondary);margin-top:var(--space-1)}.notification-actions{display:flex;gap:var(--space-2);margin-top:var(--space-3)}@media(max-width:1024px){.shell,.shell--collapsed{grid-template-columns:minmax(0,1fr)}.sidebar{display:none}.hamburger{display:inline-flex}.page{padding:var(--space-6)}.grid-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.page{padding:var(--space-4)}.grid-metrics,.grid-metrics--two{grid-template-columns:minmax(0,1fr)}.topbar{padding:0 var(--space-4)}.backup-codes{grid-template-columns:minmax(0,1fr)}}.table-wrap{overflow-x:auto}.cell-title{font-weight:600}.cell-sub{font-size:var(--text-xs);color:var(--color-text-tertiary)}.field-check{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);margin-bottom:var(--space-4);cursor:pointer}.field-check input[type=checkbox]{width:auto;height:auto}.modal-actions{display:flex;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-4)}.btn--sm{min-height:28px;padding:0 var(--space-2);font-size:var(--text-sm)}.cell-reason{font-size:var(--text-xs);color:var(--color-danger-fg);margin-top:var(--space-1)}.thumb{width:118px;height:32px;border-radius:var(--radius-sm);border:1px solid var(--color-border);flex-shrink:0}.thumb--image{object-fit:cover;display:block}.back-link{display:inline-block;font-size:var(--text-sm);color:var(--color-accent);margin-bottom:var(--space-2)}.preview-caption{font-size:var(--text-xs);font-weight:600;color:var(--color-text-secondary);margin-bottom:var(--space-2)}.phone-frame{border:4px solid var(--color-phone-bezel);border-radius:var(--radius-lg);padding:4px;background:var(--color-phone-bezel);width:fit-content}.banner-preview{width:307px;aspect-ratio:358 / 96;border-radius:1.143em;padding:.857em;display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden;font-size:12px}.banner-preview--image{background-size:cover;background-position:center}.banner-preview-copy{position:relative;z-index:1;display:flex;flex-direction:column;gap:.143em}.banner-preview-scrim{position:absolute;inset:0;background:linear-gradient(to bottom,transparent 40%,rgba(0,0,0,.65) 100%)}.banner-preview-overlay{position:absolute;inset:0;background:#000}.banner-preview-title{font-size:1em;font-weight:700;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.banner-preview-sub{font-size:.857em;font-weight:400;opacity:.9;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.banner-preview-link{position:absolute;top:.857em;right:.857em;font-size:.857em;opacity:.85}.overlay{position:fixed;inset:0;background:#151a2166;display:grid;place-items:center;padding:var(--space-4);z-index:30;overflow-y:auto}.modal{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal);width:100%;max-width:720px;max-height:92dvh;display:flex;flex-direction:column}.modal--wide{max-width:1080px}.modal-head{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.modal-head h2{font-size:var(--text-md);font-weight:600}.modal-body{padding:var(--space-6);overflow-y:auto;display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:var(--space-6);align-items:start}.modal-foot{padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border);display:flex;gap:var(--space-3);justify-content:flex-end;flex-wrap:wrap}.banner-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-6);align-items:start}.banner-fields{display:grid;gap:var(--space-3);margin-top:var(--space-4)}.banner-fields .field{display:flex;flex-direction:column;gap:var(--space-1)}.banner-fields .field>span{font-size:var(--text-xs);font-weight:500;color:var(--color-text-secondary)}.banner-fields input,.banner-fields select,.banner-fields textarea{font:inherit;font-size:var(--text-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2);background:var(--color-surface);color:var(--color-text)}.banner-fields input:disabled,.banner-fields select:disabled,.banner-fields textarea:disabled{background:var(--color-neutral-bg);color:var(--color-text-secondary)}.history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.history-item{padding:var(--space-3) 0;border-bottom:1px solid var(--color-border)}.history-item:last-child{border-bottom:none}.history-item-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3)}.history-action{font-size:var(--text-sm);font-weight:600}.history-date{font-size:var(--text-xs);color:var(--color-text-tertiary);white-space:nowrap}.history-item-sub{display:flex;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-1);font-size:var(--text-xs);color:var(--color-text-secondary)}.history-actor{color:var(--color-text-tertiary);white-space:nowrap}.history-note{margin-top:var(--space-1);font-size:var(--text-xs);color:var(--color-accent);border-left:2px solid var(--color-accent-soft);padding-left:var(--space-2)}.moderation-bar{grid-column:1 / -1;display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;padding-top:var(--space-4);border-top:1px solid var(--color-border);margin-top:var(--space-2)}.moderation-bar-label{font-size:var(--text-sm);font-weight:600;color:var(--color-text-secondary);margin-right:var(--space-1)}@media(max-width:900px){.banner-detail-grid,.modal-body{grid-template-columns:minmax(0,1fr)}}.segmented{display:inline-flex;border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.segmented button{font:inherit;font-size:var(--text-sm);font-weight:500;background:var(--color-surface);border:none;padding:var(--space-2) var(--space-4);min-height:40px;cursor:pointer;color:var(--color-text-secondary)}.segmented button[aria-pressed=true]{background:var(--color-accent-soft);color:var(--color-accent);font-weight:600}.live-map-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}.live-map-header-actions,.live-map-toolbar{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.live-map-toolbar{margin:var(--space-5) 0 var(--space-4)}.live-map-legend{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap;font-size:var(--text-xs);color:var(--color-text-secondary);margin-bottom:var(--space-4)}.live-map-legend-item{display:inline-flex;align-items:center;gap:var(--space-2)}.live-map-legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex-shrink:0}.live-map-legend-dot--fresh{background:var(--color-accent)}.live-map-legend-dot--stale{background:var(--color-map-marker-stale)}.live-map-legend-dot--expired{background:var(--color-map-marker-expired)}.live-map-legend-dot--sos{background:var(--color-danger-fg)}.live-map-legend-dot--unassigned-released{background:var(--color-map-unassigned-released)}.live-map-legend-dot--unassigned-provisioned{background:var(--color-map-unassigned-provisioned)}.live-map-legend-dot--unassigned-unprovisioned{background:var(--color-map-unassigned-unprovisioned)}.live-map-popup-previous{display:grid;gap:2px;margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-border)}.live-map-list-search{width:100%;margin-bottom:var(--space-2)}.live-map-basemap{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--color-text-secondary);font-size:var(--text-sm)}.live-map-check{display:inline-flex;align-items:center;gap:var(--space-2);min-height:40px;color:var(--color-text-secondary);font-size:var(--text-sm)}.live-map-check input{width:16px;height:16px;accent-color:var(--color-accent)}.live-map-updated{margin-left:auto;color:var(--color-text-tertiary);font-size:var(--text-xs)}.live-map-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;min-height:620px;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm)}.live-map-canvas{min-height:620px;background:var(--color-surface-subtle)}.live-map-list{overflow:auto;max-height:620px;border-left:1px solid var(--color-border);padding:var(--space-2)}.live-map-list-item{width:100%;display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:var(--space-3);border:0;border-bottom:1px solid var(--color-border);background:transparent;color:var(--color-text-primary);padding:var(--space-3);text-align:left;cursor:pointer}.live-map-list-item:hover,.live-map-list-item:focus-visible{background:var(--color-surface-subtle);outline:none}.live-map-list-item--sos{position:relative;z-index:1;background:var(--color-sos-card-bg);box-shadow:inset 0 0 0 1px var(--color-danger-fg);animation:live-map-sos-glow 1.8s ease-in-out infinite}.live-map-list-item--sos:hover,.live-map-list-item--sos:focus-visible{background:var(--color-sos-card-bg)}.live-map-list-item strong,.live-map-list-item small{display:block}.live-map-list-item small{margin-top:2px;color:var(--color-text-tertiary)}.live-map-list-avatar,.live-map-marker{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;font-weight:800}.live-map-list-avatar{position:relative;width:34px;height:34px;overflow:hidden;background:var(--color-accent)}.live-map-list-avatar img,.live-map-marker-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.live-map-marker{width:38px;height:38px;border:3px solid #fff;box-shadow:0 3px 12px var(--color-map-marker-shadow);cursor:pointer}.live-map-marker-avatar{position:relative;display:inline-flex;align-items:center;justify-content:center;width:100%;height:100%;overflow:hidden;border-radius:50%}.live-map-marker--tag{background:var(--color-accent)}.live-map-marker--phone{background:#7c3aed}.live-map-list-status{display:flex;align-items:flex-end;gap:var(--space-1);flex-direction:column}@keyframes live-map-sos-glow{0%,to{box-shadow:inset 0 0 0 1px var(--color-danger-fg),0 0 5px 1px var(--color-sos-glow)}50%{box-shadow:inset 0 0 0 1px var(--color-danger-fg),0 0 18px 5px var(--color-sos-glow)}}@keyframes live-map-marker-sos-glow{0%,to{box-shadow:0 0 0 4px var(--color-danger-fg),0 0 8px 3px var(--color-sos-glow)}50%{box-shadow:0 0 0 4px var(--color-danger-fg),0 0 22px 9px var(--color-sos-glow)}}.live-map-marker--stale{box-shadow:0 0 0 4px var(--color-map-marker-stale),0 3px 12px var(--color-map-marker-shadow)}.live-map-marker--expired{opacity:.72;filter:grayscale(.55);box-shadow:0 0 0 4px var(--color-map-marker-expired),0 3px 12px var(--color-map-marker-shadow)}.live-map-marker--sos{box-shadow:0 0 0 4px var(--color-danger-fg),0 0 18px 7px var(--color-sos-glow);animation:live-map-marker-sos-glow 1.5s ease-in-out infinite}@keyframes live-map-marker-pulse-ring{0%{transform:scale(.6);opacity:.9}to{transform:scale(1.9);opacity:0}}.live-map-marker--pulse{position:relative}.live-map-marker--pulse:after{content:"";position:absolute;inset:-4px;border-radius:50%;border:3px solid var(--color-accent);animation:live-map-marker-pulse-ring .9s ease-out;pointer-events:none}@media(prefers-reduced-motion:reduce){.live-map-list-item--sos,.live-map-marker--sos{animation:none}.live-map-marker--pulse:after{animation:none;display:none}}.live-map-popup{display:grid;gap:3px;min-width:180px;color:var(--color-map-popup-text)}.live-map-popup span{font-size:12px;color:var(--color-map-popup-text-secondary)}.live-map-popup-sos{color:#991b1b}@media(max-width:1024px){.live-map-layout{grid-template-columns:minmax(0,1fr)}.live-map-list{max-height:280px;border-left:0;border-top:1px solid var(--color-border)}}@media(max-width:640px){.live-map-header{display:block}.live-map-header-actions{margin-top:var(--space-3)}.live-map-updated{width:100%;margin-left:0}.live-map-layout,.live-map-canvas{min-height:480px}}.partner-sos{border-top:1px solid var(--color-border);margin-top:var(--space-4);padding-top:var(--space-4)}.partner-sos-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.partner-sos-subtitle{margin:var(--space-4) 0 var(--space-2)}.partner-sos-history{margin:var(--space-2) 0;padding-left:var(--space-5);display:flex;flex-direction:column;gap:var(--space-1)}.checkbox-row{display:flex;align-items:flex-start;gap:var(--space-2);margin:var(--space-2) 0;cursor:pointer}.fieldset{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);margin:var(--space-3) 0}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-3)}.section-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.cell-actions{white-space:nowrap}.loader-phrase-preview{margin-top:var(--space-3);padding:var(--space-3);border:1px dashed var(--color-border);border-radius:var(--radius-md);text-align:center}.loader-phrase-preview p{margin:var(--space-1) 0 0;color:var(--color-text-secondary)}.constellation-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4);flex-wrap:wrap}.origin-switch{display:flex;gap:var(--space-2);flex-wrap:wrap;margin:var(--space-4) 0 var(--space-2)}.constellation-demo-toggle{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-secondary);white-space:nowrap}.constellation-card{display:grid;gap:var(--space-4)}.constellation-scroll{overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.constellation{display:block;width:100%;min-width:860px;height:auto;font-family:var(--font-sans)}.constellation-orbit{fill:none;stroke:var(--color-graph-queue-fg);stroke-opacity:.25;stroke-dasharray:2 6}.constellation-edge path{fill:none;stroke:var(--color-border-strong);stroke-width:1.5}.constellation-edge--conditional path,.constellation-edge--retry path{stroke-dasharray:6 5}.constellation-edge--retry path{stroke:var(--color-graph-queue-fg);stroke-opacity:.7}.constellation-edge--dead path{stroke:var(--color-danger-fg);stroke-dasharray:3 4}.constellation-arrow{fill:var(--color-border-strong)}.constellation-arrow--danger{fill:var(--color-danger-fg)}.constellation-edge-label{font-size:11px;fill:var(--color-text-secondary);paint-order:stroke;stroke:var(--color-surface);stroke-width:4px;stroke-linejoin:round}.constellation-node{cursor:pointer;outline:none}.constellation-node-body{stroke-width:1.5;transition:stroke-width var(--motion-fast) var(--motion-ease)}.constellation-node--ingress .constellation-node-body{fill:var(--color-accent-soft);stroke:var(--color-accent)}.constellation-node--queue .constellation-node-body{fill:var(--color-graph-queue-bg);stroke:var(--color-graph-queue-fg)}.constellation-node--process .constellation-node-body{fill:var(--color-neutral-bg);stroke:var(--color-border-strong)}.constellation-node--store .constellation-node-body{fill:var(--color-success-bg);stroke:var(--color-success-fg)}.constellation-node--error .constellation-node-body{fill:var(--color-danger-bg);stroke:var(--color-danger-fg)}.constellation-node--state-unavailable .constellation-node-body,.constellation-node--state-idle .constellation-node-body{stroke-dasharray:4 3;opacity:.75}.constellation-node--state-retrying .constellation-node-body{stroke:var(--color-warning-fg);stroke-width:2.5}.constellation-node--state-delayed .constellation-node-body,.constellation-node--state-dead .constellation-node-body{stroke:var(--color-danger-fg);stroke-width:2.5}.constellation-node-ring{fill:none;stroke:transparent;stroke-width:2}.constellation-node:focus-visible .constellation-node-ring{stroke:var(--color-focus-ring)}.constellation-node--selected .constellation-node-ring{stroke:var(--color-accent);stroke-dasharray:3 3}.constellation-node:hover .constellation-node-body{stroke-width:3}.constellation-node-icon{font-size:15px;font-weight:700;fill:var(--color-text-primary);pointer-events:none}.constellation-node--state-delayed .constellation-node-icon,.constellation-node--state-dead .constellation-node-icon{fill:var(--color-danger-fg)}.constellation-node-name{font-size:12px;font-weight:600;fill:var(--color-text-primary);pointer-events:none}.constellation-node-state{font-size:11px;fill:var(--color-text-secondary);pointer-events:none}.constellation-node-volume{font-size:11px;font-weight:600;fill:var(--color-accent);font-variant-numeric:tabular-nums;pointer-events:none}.constellation-node--delayed .constellation-node-state,.constellation-node--state-dead .constellation-node-state{fill:var(--color-danger-fg);font-weight:600}.constellation-halo{fill:var(--color-sos-glow);stroke:var(--color-danger-fg);stroke-width:1.5;transform-box:fill-box;transform-origin:center;animation:constellation-halo 2.4s ease-out infinite}@keyframes constellation-halo{0%{transform:scale(.95);opacity:.85}70%{transform:scale(1.35);opacity:0}to{transform:scale(1.35);opacity:0}}.constellation-edge path.constellation-flow{fill:none;stroke:var(--color-accent);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:2 10;animation:constellation-flow 1.5s linear infinite}.constellation-edge--retry path.constellation-flow{stroke:var(--color-graph-queue-fg)}@keyframes constellation-flow{0%{stroke-dashoffset:24}to{stroke-dashoffset:0}}.constellation--paused .constellation-halo,.constellation--paused .constellation-edge path.constellation-flow{animation-play-state:paused}@media(prefers-reduced-motion:reduce){.constellation-halo{animation:none;transform:scale(1.15);opacity:.6}.constellation-edge path.constellation-flow{animation:none}}.constellation-legend{display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-6);justify-content:space-between}.constellation-legend-list{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0;padding:0;list-style:none}.constellation-legend-list--edges li{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-secondary)}.constellation-legend-line{stroke:var(--color-border-strong);stroke-width:2}.constellation-legend-line--dashed{stroke:var(--color-graph-queue-fg);stroke-dasharray:5 4}.constellation-legend-line--dead{stroke:var(--color-danger-fg);stroke-dasharray:3 3}.constellation-hint{margin:0}.constellation-detail{border-top:1px solid var(--color-border);padding-top:var(--space-4)}.constellation-detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-3)}.constellation-detail h3{margin:0;font-size:var(--text-md)}.constellation-detail-metrics{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-3);margin:var(--space-3) 0}.constellation-detail-metrics dt{font-size:var(--text-xs);color:var(--color-text-secondary)}.constellation-detail-metrics dd{margin:0;font-weight:600}.constellation-unavailable{font-weight:400;color:var(--color-text-secondary);font-style:italic}.constellation-table summary{cursor:pointer;font-size:var(--text-sm);color:var(--color-accent)}.constellation-stage{position:relative;min-width:860px}.node-panel{position:absolute;z-index:5;width:max-content;min-width:250px;max-width:min(460px,calc(100% - 16px));background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-floating);padding:var(--space-3);display:grid;gap:6px;font-size:var(--text-sm);animation:fc-fade-in var(--motion-base) var(--motion-ease)}.node-panel--expanded{width:min(800px,calc(100% - 16px));max-width:none}.node-panel-body{display:grid;gap:6px}.node-panel-main,.node-panel-side{display:grid;gap:var(--space-2);align-content:start;min-width:0}.node-panel--expanded .node-panel-body{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:var(--space-4);border-top:1px solid var(--color-border);padding-top:var(--space-2)}.node-panel--expanded .node-panel-flows{width:100%}.node-panel-body h4{margin:0 0 var(--space-1);font-size:var(--text-sm)}.node-panel-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0}.node-panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-2)}.node-panel-head h3{margin:0;font-size:var(--text-md)}.node-panel-tech{font-size:var(--text-xs);color:var(--color-text-tertiary)}.node-panel-actions{display:flex;gap:var(--space-1);flex-shrink:0}.node-panel-state{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.node-panel-volume{font-weight:600;color:var(--color-accent);font-variant-numeric:tabular-nums}.node-panel-flows{width:auto;border-collapse:collapse;font-variant-numeric:tabular-nums}.node-panel-flows th,.node-panel-flows td{padding:2px 0 2px var(--space-3);text-align:right;white-space:nowrap}.node-panel-flows thead th{font-size:var(--text-xs);font-weight:600;color:var(--color-text-secondary);border-bottom:1px solid var(--color-border)}.node-panel-flows tbody th{text-align:left;font-weight:400;padding-left:0}.node-panel-flows thead th:first-child{padding-left:0}.node-panel-flows tbody td{font-weight:600}.node-panel-tag{display:inline-block;min-width:30px;margin-right:var(--space-2);padding:0 var(--space-1);border-radius:var(--radius-xs);font-size:var(--text-xs);font-weight:700;text-align:center}.node-panel-tag--in{background:var(--color-accent-soft);color:var(--color-accent)}.node-panel-tag--out{background:var(--color-success-bg);color:var(--color-success-fg)}.node-panel-flow-label{font-size:var(--text-xs);color:var(--color-text-secondary);display:inline-block;max-width:130px;white-space:normal;vertical-align:middle}.node-panel-flows tbody th{display:flex;align-items:center}.node-panel-empty,.node-panel-insight{margin:0;color:var(--color-text-secondary)}.node-panel-insight{border-left:3px solid var(--color-accent);padding-left:var(--space-2)}.node-panel-section-head{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2)}.node-panel-range{display:flex;gap:var(--space-1)}.node-panel-chart{position:relative}.node-panel-legend{display:flex;gap:var(--space-3);flex-wrap:wrap;font-size:var(--text-xs);color:var(--color-text-secondary);margin-bottom:var(--space-1)}.node-panel-legend span{display:inline-flex;align-items:center;gap:var(--space-1)}.node-panel-svg{display:block;width:100%;height:auto}.node-chart-in{stroke:var(--color-accent);stroke-width:2}.node-chart-out{stroke:var(--color-success-fg);stroke-width:2;stroke-dasharray:5 3}.node-chart-axis{stroke:var(--color-border)}.node-chart-tick{font-size:10px;fill:var(--color-text-tertiary)}.node-chart-hit{fill:transparent}.node-chart-hit:hover{fill:var(--color-accent-soft);fill-opacity:.5}.node-panel-tooltip{position:absolute;top:18px;transform:translate(-50%);background:var(--color-text-primary);color:var(--color-surface);font-size:var(--text-xs);padding:2px var(--space-2);border-radius:var(--radius-xs);white-space:nowrap;pointer-events:none}.node-panel-errors{display:grid;gap:2px;margin:0}.node-panel-error{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-2)}.node-panel-errors dt{font-size:var(--text-xs);color:var(--color-text-secondary)}.node-panel-errors dd{margin:0;font-weight:600;text-align:right;font-variant-numeric:tabular-nums}.node-panel-error{border-left:3px solid var(--color-border);padding-left:var(--space-2)}.node-panel-error--ok{border-left-color:var(--color-success-fg)}.node-panel-error--warn{border-left-color:var(--color-warning-fg)}.node-panel-error--bad{border-left-color:var(--color-danger-fg)}.node-panel-error--bad dd{color:var(--color-danger-fg)}.node-panel-insights{margin:0;padding-left:var(--space-4);display:grid;gap:2px}.node-panel-footnote{margin:0;font-size:var(--text-xs);color:var(--color-text-tertiary)}@media(prefers-reduced-motion:reduce){.node-panel{animation:none}}.node-panel-chart-empty{margin:0;font-size:var(--text-xs);color:var(--color-text-tertiary)}.device-lookup-search{display:flex;gap:var(--space-3);align-items:end;margin-bottom:var(--space-4);max-width:520px}.device-lookup-search .field,.device-lookup-custom-range .field{display:flex;flex-direction:column;gap:var(--space-1);flex:1;margin-bottom:0}.device-lookup-search .btn,.device-lookup-custom-range .btn{min-height:40px}.device-lookup-search .field>span,.device-lookup-custom-range .field>span{font-size:var(--text-xs);color:var(--color-text-secondary)}.device-lookup-search input,.device-lookup-custom-range input,.device-lookup-custom-range select{padding:var(--space-2) var(--space-3);min-height:40px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-primary);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.device-lookup-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:var(--space-4);align-items:start}.device-lookup-main,.device-lookup-side{display:grid;gap:var(--space-4);min-width:0}.device-lookup-map{overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm)}.device-lookup-map-bar{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border)}.device-lookup-canvas{min-height:520px}.device-lookup-marker{display:block;width:22px;height:22px;border-radius:50%;border:3px solid #fff;background:var(--color-accent);box-shadow:0 0 0 4px var(--color-accent-soft),0 3px 12px var(--color-map-marker-shadow);cursor:pointer}.device-lookup-marker--stale{box-shadow:0 0 0 4px var(--color-map-marker-stale),0 3px 12px var(--color-map-marker-shadow)}.device-lookup-marker--expired{filter:grayscale(.55);box-shadow:0 0 0 4px var(--color-map-marker-expired),0 3px 12px var(--color-map-marker-shadow)}.device-lookup-cursor{display:block;width:16px;height:16px;border-radius:50%;background:#fff;border:4px solid var(--color-accent);box-shadow:0 2px 8px var(--color-map-marker-shadow);pointer-events:none}.device-lookup-history-head{display:flex;justify-content:space-between;gap:var(--space-3)}.device-lookup-range{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:end;margin-bottom:var(--space-4)}.device-lookup-range .segmented{flex-wrap:wrap}.device-lookup-custom-range{display:flex;gap:var(--space-2);align-items:end}.device-lookup-custom-range .field{flex:0 0 auto}.device-lookup-custom-range input{width:88px}.device-lookup-player{display:grid;gap:var(--space-3)}.device-lookup-player-controls{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.device-lookup-slider{width:100%;accent-color:var(--color-accent)}.device-lookup-player-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.device-lookup-player-meta strong{color:var(--color-text-primary)}.device-lookup-dl{display:grid;gap:var(--space-2);margin:var(--space-3) 0 0}.device-lookup-dl--split{margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--color-border)}.device-lookup-field{display:grid;grid-template-columns:140px minmax(0,1fr);gap:var(--space-2);font-size:var(--text-sm)}.device-lookup-field dt{color:var(--color-text-secondary)}.device-lookup-field dd{margin:0;overflow-wrap:anywhere}.device-lookup-muted{color:var(--color-text-tertiary)}.device-lookup-shared{display:grid;gap:var(--space-2);list-style:none;margin:var(--space-3) 0 0;padding:0}.device-lookup-shared li{display:grid;gap:2px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-sm)}.device-lookup-shared span{color:var(--color-text-secondary);overflow-wrap:anywhere}.device-lookup-shared small{color:var(--color-text-tertiary)}@media(max-width:1024px){.device-lookup-layout{grid-template-columns:minmax(0,1fr)}}@media(max-width:640px){.device-lookup-search{flex-direction:column;align-items:stretch}.device-lookup-canvas{min-height:380px}.device-lookup-field{grid-template-columns:minmax(0,1fr);gap:2px}}.transfer-layout{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--space-4);margin-bottom:var(--space-6);align-items:start}.transfer-kv{display:grid;grid-template-columns:max-content 1fr;gap:var(--space-1) var(--space-4);font-size:var(--text-sm);margin:var(--space-3) 0}.transfer-kv dt{color:var(--color-text-secondary)}.transfer-kv dd{margin:0;overflow-wrap:anywhere}.transfer-log{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-3)}.transfer-log-head{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.transfer-steps{list-style:none;padding:0;margin:var(--space-2) 0 0;display:flex;flex-direction:column;gap:var(--space-2)}.transfer-step{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;font-size:var(--text-sm)}.transfer-confirm ul{margin:var(--space-3) 0;padding-left:var(--space-5);display:flex;flex-direction:column;gap:var(--space-1)}@media(max-width:600px){.transfer-kv{grid-template-columns:1fr}}.tabs{display:flex;gap:var(--space-2);margin-bottom:var(--space-4)}.kv{display:grid;grid-template-columns:max-content 1fr;gap:var(--space-2) var(--space-4);margin:var(--space-4) 0}.kv dt{color:var(--color-text-secondary);font-size:var(--text-sm)}.stack{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3);margin-top:var(--space-4)}.stack textarea{width:100%}.users-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.users-link{appearance:none;background:none;border:none;padding:0;font:inherit;color:var(--color-accent);cursor:pointer;text-align:left;text-decoration:underline}.users-link:hover{color:var(--color-accent-hover)}.users-plan-cell{display:inline-flex;gap:var(--space-1);flex-wrap:wrap}.users-back{margin-bottom:var(--space-4)}.users-head{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-4)}.users-head-main{flex:1 1 240px;min-width:0}.users-head-main h1{font-size:var(--text-lg);font-weight:600;overflow-wrap:anywhere}.users-head-main p{font-size:var(--text-sm);color:var(--color-text-secondary);overflow-wrap:anywhere}.users-chips{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-top:var(--space-2)}.users-actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.users-avatar{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:var(--color-accent-soft);color:var(--color-accent);font-size:var(--text-md);font-weight:700;border:1px solid var(--color-border);flex:none}.users-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-6)}.users-kv-row{display:contents}.users-kv-row dd{margin:0;overflow-wrap:anywhere}.users-sub-list,.users-device-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-4)}.users-sub,.users-device{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4)}.users-device--revoked{background:var(--color-surface-sunken)}.users-sub-head,.users-device-head{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.users-tagid{font-family:var(--font-mono);font-size:var(--text-sm);background:var(--color-surface-sunken);padding:2px var(--space-2);border-radius:var(--radius-sm)}.users-inline{margin:0}.users-timeline{list-style:none;margin:var(--space-3) 0 0;padding:0 0 0 var(--space-4);border-left:2px solid var(--color-border);display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--text-sm)}.users-timeline-date{display:block;font-size:var(--text-xs);color:var(--color-text-secondary)}.users-plain-list{margin:var(--space-1) 0 0;padding-left:var(--space-4);font-size:var(--text-sm)}.users-prev{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border);font-size:var(--text-sm)}.users-battery{display:inline-flex;align-items:center;gap:var(--space-2)}.users-battery-bar{width:56px;height:8px;border-radius:var(--radius-pill);background:var(--color-surface-sunken);overflow:hidden;border:1px solid var(--color-border)}.users-battery-bar>span{display:block;height:100%;background:var(--color-success-fg)}.users-battery[data-tone=danger] .users-battery-bar>span{background:var(--color-danger-fg)}.users-battery[data-tone=warning] .users-battery-bar>span{background:var(--color-warning-fg)}.users-battery[data-tone=neutral] .users-battery-bar>span{background:var(--color-neutral-fg)}.users-modal{max-height:calc(100vh - var(--space-8));overflow-y:auto}.users-readonly{display:grid;grid-template-columns:max-content 1fr;gap:var(--space-1) var(--space-4);font-size:var(--text-sm);margin-bottom:var(--space-2)}.users-readonly dt{color:var(--color-text-secondary)}.users-readonly dd{margin:0;overflow-wrap:anywhere}@media(max-width:760px){.users-grid{grid-template-columns:1fr}.users-actions{width:100%}}
