@import"https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700;800&family=Geist+Mono:wght@500;600&display=swap";:root{color-scheme:light;--font-body: "Geist", "Segoe UI", sans-serif;--font-display: "Geist", "Segoe UI", sans-serif;--font-mono: "Geist Mono", ui-monospace, SFMono-Regular, Consolas, monospace;--color-bg: #F5F7FA;--color-panel: #FFFFFF;--color-panel-alt: #E8EDF3;--color-text: #1A1A1A;--color-text-soft: #4F5B66;--color-border: #D8DEE8;--color-brand: #0C50A7;--color-brand-strong: #064CA5;--color-accent: #5B3FD4;--color-accent-glow: rgba(91, 63, 212, .25);--color-success: #0c8b59;--color-danger: #c2474f;--color-warning: #eab308;--color-info: #3b82f6;--shadow-panel: 0 4px 12px rgba(0, 0, 0, .15), 0 0 0 1px rgba(216, 222, 232, .5);--shadow-hover: 0 12px 40px rgba(91, 63, 212, .14), 0 0 0 1px var(--color-accent);--shadow-card-press: 0 2px 8px rgba(0, 0, 0, .06);--radius-lg: 12px;--radius-md: 10px;--radius-sm: 6px;--color-accent-strong: #3F73B6;--color-on-accent: #FFFFFF;--color-warning-surface: #fef3c7;--shadow-card-hover: 0 4px 12px rgba(0, 0, 0, .15), 0 0 0 1px rgba(216, 222, 232, .6);--ease-out: cubic-bezier(.25, .46, .45, .94);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--sidebar-width: 272px;--sidebar-collapsed: 72px;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-spring: .3s cubic-bezier(.34, 1.56, .64, 1)}[data-theme=dark]{color-scheme:dark;--color-bg: #0A1628;--color-panel: #132040;--color-panel-alt: #0E1A32;--color-text: #E8EDF3;--color-text-soft: #A8B8C8;--color-border: #1E3355;--color-brand: #0C50A7;--color-brand-strong: #4A9AE8;--color-accent: #7C5FE8;--color-accent-glow: rgba(91, 63, 212, .3);--color-on-accent: #FFFFFF;--shadow-panel: 0 8px 32px rgba(0, 0, 0, .45), 0 0 0 1px rgba(30, 51, 85, .5);--shadow-hover: 0 12px 40px rgba(91, 63, 212, .22), 0 0 0 1px var(--color-accent);--shadow-card-press: 0 2px 8px rgba(0, 0, 0, .3);--shadow-card-hover: 0 8px 24px rgba(0, 0, 0, .35), 0 0 0 1px rgba(30, 51, 85, .6);--color-accent-strong: #8B5CF6;--color-warning-surface: #2a2008}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font-body);color:var(--color-text);background:var(--color-bg);transition:background-color .25s ease,color .25s ease}button,input,select{font:inherit}.status-mode{--status-mode-color: var(--color-text-soft);--status-mode-bg: color-mix(in srgb, var(--status-mode-color) 14%, var(--color-panel));--status-mode-border: color-mix(in srgb, var(--status-mode-color) 36%, var(--color-border));color:var(--status-mode-color);background:var(--status-mode-bg);border-color:var(--status-mode-border)}.status-mode--available{--status-mode-color: var(--color-success)}.status-mode--approval-required{--status-mode-color: var(--color-accent)}.status-mode--danger{--status-mode-color: var(--color-danger)}.auth-layout{min-height:100vh;display:grid;place-items:center;padding:24px}.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}.auth-panel,.panel,.state-card{background:var(--color-panel);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-panel);transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.panel:hover,.state-card:hover,.metric-card:hover,.pass-card:hover,.admin-card:hover,.destination-card:hover{border-color:color-mix(in srgb,var(--color-accent) 58%,var(--color-border));box-shadow:var(--shadow-hover)}.metric-card:active,.pass-card:active,.admin-card:active,.destination-card:active{transform:scale(.97);box-shadow:var(--shadow-card-press)}.metric-card.is-urgent{position:relative;border-color:color-mix(in srgb,var(--color-danger) 48%,var(--color-border));animation:urgency-pulse 1.8s ease-in-out infinite}.auth-panel{width:min(100%,440px);padding:32px}.auth-form,.stack-md{display:grid;gap:16px}.auth-divider{display:flex;align-items:center;gap:12px;margin:18px 0;color:var(--color-text-soft);font-size:13px}.auth-divider:before,.auth-divider:after{content:"";flex:1;border-top:1px solid var(--color-border)}.auth-or-row{display:flex;align-items:center;gap:14px;margin:6px 0}.auth-or-row:before,.auth-or-row:after{content:"";flex:1;border-top:1px solid var(--color-border)}.auth-manual-toggle{display:flex;align-items:center;justify-content:center;font-weight:600;padding:8px 18px}.auth-manual-toggle>span{display:inline-flex;align-items:center;gap:8px}.auth-manual-toggle>span:after{content:"";width:7px;height:7px;margin-top:-3px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .25s ease}.auth-manual-toggle[aria-expanded=true]>span:after{margin-top:2px;transform:rotate(-135deg)}.auth-manual{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .32s var(--ease-out, ease),opacity .32s ease}.auth-manual.is-open{grid-template-rows:1fr;opacity:1}.auth-manual-inner{min-height:0;overflow:hidden}.auth-manual.is-open .auth-manual-inner{padding-top:4px}@media(prefers-reduced-motion:reduce){.auth-manual{transition:none}}.page-eyebrow{display:inline-flex;align-items:center;gap:6px;margin:0 0 6px;text-transform:uppercase;letter-spacing:.1em;font-size:11px;font-weight:700;color:var(--color-accent);padding:3px 8px;background:color-mix(in srgb,var(--color-accent) 10%,transparent);border-radius:999px;width:fit-content}.primary-button,.ghost-button,.danger-button,.sidebar-toggle{border:none;border-radius:999px;cursor:pointer;transition:transform .2s ease,opacity .2s ease,box-shadow .2s ease,border-color .2s ease}.primary-button:hover,.ghost-button:hover,.danger-button:hover:not(:disabled),.sidebar-toggle:hover{transform:translateY(-1px)}.primary-button:active,.ghost-button:active,.danger-button:active:not(:disabled),.sidebar-toggle:active,.filter-pill:active,.destination-tile:active{transform:scale(.97)}.primary-button:focus-visible,.ghost-button:focus-visible,.danger-button:focus-visible,.sidebar-toggle:focus-visible,.sidebar-link:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid color-mix(in srgb,var(--color-accent) 82%,white);outline-offset:3px}.primary-button{background:var(--color-accent);color:var(--color-on-accent);padding:12px 18px;font-weight:700}.ghost-button,.sidebar-toggle{background:color-mix(in srgb,var(--color-panel-alt) 80%,transparent);color:var(--color-text);padding:10px 14px;border:1px solid var(--color-border)}.danger-button{border:1px solid color-mix(in srgb,var(--color-danger) 42%,var(--color-border));border-radius:999px;cursor:pointer;padding:10px 14px;font:inherit;font-weight:600;background:color-mix(in srgb,var(--color-danger) 8%,var(--color-panel));color:var(--color-danger);transition:transform .2s ease,opacity .2s ease,box-shadow .2s ease,border-color .2s ease,background .2s ease}.danger-button:hover:not(:disabled){transform:translateY(-1px);background:color-mix(in srgb,var(--color-danger) 14%,var(--color-panel));border-color:color-mix(in srgb,var(--color-danger) 55%,var(--color-border))}.danger-button:active:not(:disabled){transform:scale(.97)}.danger-button:focus-visible{outline:3px solid color-mix(in srgb,var(--color-danger) 55%,white);outline-offset:3px}.danger-button:disabled{opacity:.55;cursor:not-allowed}.danger-text{color:var(--color-danger)}.icon-button{min-width:42px}.icon-close{position:relative;display:inline-block;width:16px;height:16px}.icon-close:before,.icon-close:after{content:"";position:absolute;top:7px;right:0;bottom:7px;left:0;height:2px;background:currentColor}.icon-close:before{transform:rotate(45deg)}.icon-close:after{transform:rotate(-45deg)}.icon-warning{position:relative;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;flex-shrink:0;color:var(--color-danger);margin-top:2px}.icon-warning:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:currentColor;clip-path:polygon(50% 8%,6% 92%,94% 92%)}.icon-warning-mark{position:relative;z-index:1;display:block;width:2px;height:7px;background:var(--color-panel);border-radius:1px;margin-top:-2px}.icon-warning-mark:after{content:"";position:absolute;left:50%;bottom:-5px;width:2px;height:2px;background:var(--color-panel);border-radius:999px;transform:translate(-50%)}.danger-callout{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:var(--radius-md);border:1px solid var(--color-danger);background:color-mix(in srgb,var(--color-danger) 10%,var(--color-panel))}.danger-callout-body{display:grid;gap:6px;color:var(--color-text)}.danger-callout-body strong{display:block;color:var(--color-danger);font-weight:800}.danger-callout-body ul{margin:0;padding-left:18px;display:grid;gap:4px;color:var(--color-text-soft)}.inline-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--color-accent) 18%,var(--color-panel))}.secure-credential-reveal{display:grid;gap:14px}.secure-credential-field input{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:0}.form-field{display:grid;gap:8px}.form-field-label{font-size:13px;font-weight:600;color:var(--color-text);letter-spacing:.01em}.form-field input,.form-field select,.table-search input{width:100%;border-radius:14px;border:1px solid var(--color-border);background:color-mix(in srgb,var(--color-panel-alt) 54%,var(--color-panel));padding:12px 14px;color:var(--color-text)}.form-field-error{color:var(--color-danger);font-size:14px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:16px;align-items:end}.permission-picker{display:grid;gap:14px}.permission-picker-intro{margin:0 0 4px}.permission-picker-heading{margin:4px 0 0;font-size:15px}.permission-starting-selections{padding:14px 16px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--color-primary) 5%,var(--color-panel));box-shadow:var(--shadow-panel)}.permission-starting-actions{margin-top:4px}.permission-starting-actions .ghost-button{min-height:36px;padding:8px 14px;font-size:13px}.permission-auto-added{margin:0;padding:10px 14px;border-radius:var(--radius-md);border:1px solid color-mix(in srgb,var(--color-accent) 35%,var(--color-border));background:color-mix(in srgb,var(--color-accent) 8%,var(--color-panel));color:var(--color-text);font-size:13px}.permission-search-panel{padding:16px 18px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-panel);box-shadow:var(--shadow-panel)}.permission-search-field{display:grid;gap:8px;margin:0}.permission-search-shell{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:color-mix(in srgb,var(--color-panel-alt) 58%,var(--color-panel));padding:0 14px;box-shadow:inset 0 1px color-mix(in srgb,var(--color-panel) 70%,white);transition:border-color .15s ease,box-shadow .15s ease}.permission-search-shell:focus-within{border-color:color-mix(in srgb,var(--color-primary) 45%,var(--color-border));box-shadow:inset 0 1px color-mix(in srgb,var(--color-panel) 70%,white),0 0 0 3px color-mix(in srgb,var(--color-primary) 14%,transparent)}.permission-search-icon{color:var(--color-text-soft);flex-shrink:0}.permission-search-input{width:100%;min-height:44px;border:none;background:transparent;color:var(--color-text);font:inherit;outline:none}.permission-search-input::placeholder{color:var(--color-text-soft)}.permission-search-clear{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:999px;background:transparent;color:var(--color-text-soft);cursor:pointer}.permission-search-clear:hover{background:color-mix(in srgb,var(--color-border) 55%,transparent);color:var(--color-text)}.permission-search-empty{margin:0;padding:18px 16px;border-radius:var(--radius-lg);border:1px dashed var(--color-border);background:color-mix(in srgb,var(--color-panel-alt) 40%,var(--color-panel));color:var(--color-text-soft);text-align:center;font-size:14px}.permission-groups{display:grid;gap:12px}.permission-domain{border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:14px 16px 12px;margin:0;background:var(--color-panel);box-shadow:var(--shadow-panel);transition:border-color .2s ease,box-shadow .2s ease}.permission-domain:hover{border-color:color-mix(in srgb,var(--color-accent) 45%,var(--color-border))}.permission-domain legend{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:0 8px;margin-bottom:2px;color:color-mix(in srgb,var(--color-primary) 72%,var(--color-text))}.permission-group-actions{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px;padding-bottom:12px;border-bottom:1px solid var(--color-border)}.permission-group-actions .ghost-button{min-height:32px;padding:6px 12px;font-size:12px}.permission-matrix{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:12px;margin:0}.permission-option{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:color-mix(in srgb,var(--color-panel-alt) 54%,var(--color-panel));font-size:14px;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.permission-option:hover{border-color:color-mix(in srgb,var(--color-accent) 55%,var(--color-border));box-shadow:var(--shadow-card-hover)}.permission-option.is-checked,.permission-option:has(input:checked){border-color:color-mix(in srgb,var(--color-primary) 48%,var(--color-border));background:color-mix(in srgb,var(--color-primary) 7%,var(--color-panel));box-shadow:0 0 0 1px color-mix(in srgb,var(--color-primary) 10%,transparent)}.permission-option input[type=checkbox]{width:18px;height:18px;margin-top:2px;accent-color:var(--color-primary);flex-shrink:0;cursor:pointer}.permission-option span{display:grid;gap:6px;min-width:0}.permission-option strong{font-size:14px;font-weight:600;line-height:1.35;color:var(--color-text)}.permission-option em{color:var(--color-text-soft);font-style:normal;font-size:13px}.permission-code{display:inline-block;width:fit-content;max-width:100%;padding:2px 8px;border-radius:999px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px;line-height:1.4;background:color-mix(in srgb,var(--color-panel-alt) 72%,var(--color-border));color:var(--color-text-soft);overflow:hidden;text-overflow:ellipsis}.permission-description{font-size:12px;line-height:1.4}.permission-source{display:inline-block;width:fit-content;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.02em}.permission-source--role{color:var(--color-text-soft);background:color-mix(in srgb,var(--color-panel-alt) 70%,var(--color-border))}.permission-source--off{color:var(--color-text-soft);background:color-mix(in srgb,var(--color-panel-alt) 55%,var(--color-panel));opacity:.9}.permission-source--granted{color:var(--color-success);background:color-mix(in srgb,var(--color-success) 14%,var(--color-panel))}.permission-source--revoked{color:var(--color-danger);background:color-mix(in srgb,var(--color-danger) 12%,var(--color-panel))}.permission-option--granted{border-color:color-mix(in srgb,var(--color-success) 40%,var(--color-border));background:color-mix(in srgb,var(--color-success) 8%,var(--color-panel))}.permission-option--revoked{border-color:color-mix(in srgb,var(--color-danger) 35%,var(--color-border));background:color-mix(in srgb,var(--color-danger) 6%,var(--color-panel));opacity:.92}.permission-option .permission-requires{color:var(--color-accent);font-size:12px}.permission-removal-warning{border:1px solid color-mix(in srgb,var(--color-danger) 45%,var(--color-border));background:color-mix(in srgb,var(--color-danger) 12%,var(--color-panel));border-radius:var(--radius-lg);padding:14px 16px;margin:0;box-shadow:var(--shadow-panel)}.modal-card--wide .modal-body:has(.permission-picker){gap:14px}.form-field-note{font-size:13px;color:var(--color-text-soft);margin:6px 0}.rules-timeline{display:grid;gap:6px;margin:8px 0 16px}.rules-timeline-track{position:relative;height:14px;border-radius:999px;background:var(--color-panel-alt);border:1px solid var(--color-border);overflow:hidden}.rules-timeline-lockout{height:100%;border-radius:999px 0 0 999px}.rules-timeline-labels{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--color-text-soft)}.rules-timeline-lockout-label{color:var(--color-danger);font-weight:600}.rules-comparator-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.rules-comparator{width:100%;min-width:420px;border-collapse:collapse;margin:12px 0;font-size:14px}.rules-comparator caption{text-align:left;font-weight:700;margin-bottom:6px}.rules-comparator th,.rules-comparator td{border:1px solid var(--color-border);padding:6px 10px;text-align:left}.rules-comparator-row.is-different td:last-child{font-weight:700}.pass-timeline{display:grid;gap:14px;padding:14px;border:1px solid var(--color-border);border-radius:12px;background:color-mix(in srgb,var(--color-panel-alt) 54%,var(--color-panel))}.pass-timeline-marker,.pass-timeline-handle{display:grid;gap:4px;margin:0}.pass-timeline-marker-label{font-weight:700;font-size:13px;color:var(--color-text-soft)}.pass-timeline-handle input[type=range]{width:100%;accent-color:var(--color-accent)}.pass-timeline-time{font-variant-numeric:tabular-nums;font-weight:600}.ghost-button.danger{color:var(--color-danger);border-color:color-mix(in srgb,var(--color-danger) 35%,var(--color-border));background:color-mix(in srgb,var(--color-danger) 6%,var(--color-panel))}.ghost-button.danger:hover:not(:disabled){border-color:color-mix(in srgb,var(--color-danger) 50%,var(--color-border));background:color-mix(in srgb,var(--color-danger) 12%,var(--color-panel))}.app-shell{min-height:100vh;display:grid;grid-template-columns:var(--sidebar-width) 1fr;transition:grid-template-columns .28s cubic-bezier(.25,1,.5,1)}.app-shell.is-sidebar-collapsed{grid-template-columns:var(--sidebar-collapsed) 1fr}.app-shell-main{display:grid;grid-template-rows:auto 1fr}.sidebar{min-height:100vh;background:var(--color-brand);color:#fff;padding:18px 14px;display:grid;grid-template-rows:auto auto 1fr auto;gap:16px;width:var(--sidebar-width);box-shadow:4px 0 24px #0000001f;z-index:10;transition:width .28s cubic-bezier(.25,1,.5,1),padding .28s cubic-bezier(.25,1,.5,1)}.sidebar.is-collapsed{width:var(--sidebar-collapsed);padding-inline:12px}.sidebar-brand{display:flex;gap:12px;align-items:center;min-height:54px}.sidebar-logo{width:42px;height:42px;border-radius:999px;display:grid;place-items:center;background:var(--color-accent);color:#fff;flex:0 0 auto;box-shadow:0 0 0 4px #5b3fd44d}.sidebar-brand p{margin:4px 0 0;color:#f5f7fbbf}.sidebar>nav{display:grid;gap:8px;margin-top:16px;align-content:start}.sidebar-link{position:relative;display:flex;align-items:center;gap:12px;min-height:44px;padding:10px 12px;border-radius:8px;color:#ffffffd9;text-decoration:none;overflow:hidden;transition:background-color .2s ease,color .2s ease,transform .15s ease,box-shadow .2s ease}.sidebar-link:hover{background:#ffffff0f;color:#fff}.sidebar:not(.is-collapsed) .sidebar-link:hover{transform:translate(3px)}.sidebar-link:active{transform:scale(.98)}.sidebar-link.is-active{background:#ffffff1f;color:#fff;box-shadow:0 4px 12px #00000014,inset 0 1px #ffffff0d}.sidebar-pill{position:absolute;inset:8px auto 8px 0;width:4px;height:auto;border-radius:999px;background:var(--color-accent);opacity:0;transform:translate(-8px);transition:opacity .22s cubic-bezier(.34,1.56,.64,1),transform .22s cubic-bezier(.34,1.56,.64,1);box-shadow:0 0 8px var(--color-accent-glow)}.sidebar-link.is-active .sidebar-pill{opacity:1;transform:translate(0)}.sidebar-icon{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:#ffffff14;color:#ffffffc7;flex:0 0 auto}.sidebar-link.is-active .sidebar-icon{color:#fff;background:var(--color-accent)}.sidebar-link-label{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%}.sidebar-badge{min-width:24px;min-height:24px;padding:2px 7px;border-radius:999px;display:inline-grid;place-items:center;background:var(--color-accent);color:#fff;font-size:12px;font-weight:800}.sidebar-badge--collapsed{position:absolute;top:4px;right:6px;min-width:18px;min-height:18px;padding:0 5px}.sidebar-group{display:grid;gap:2px}.sidebar-group-header{position:relative;display:flex;align-items:center;gap:12px;width:100%;min-height:44px;padding:10px 12px;border:none;border-radius:8px;background:transparent;color:#ffffffd9;font:inherit;text-align:left;cursor:pointer;overflow:hidden;transition:background-color .2s ease,color .2s ease,transform .15s ease}.sidebar-group-header:hover{background:#ffffff0f;color:#fff}.sidebar-group-header:active{transform:scale(.98)}.sidebar-group-header:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.sidebar-group-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-group-header .sidebar-badge{flex:0 0 auto}.sidebar-chevron{flex:0 0 auto;color:#fff9;transition:transform .28s cubic-bezier(.25,1,.5,1)}.sidebar-group-header[aria-expanded=true] .sidebar-chevron{transform:rotate(180deg)}.sidebar-group-header--current .sidebar-pill{opacity:1;transform:translate(0)}.sidebar-group-panel{display:grid;grid-template-rows:0fr;opacity:0;margin-inline-start:24px;padding-inline-start:12px;border-left:1.5px solid rgba(255,255,255,.08);overflow:hidden;transition:grid-template-rows .28s cubic-bezier(.25,1,.5,1),opacity .28s cubic-bezier(.25,1,.5,1),border-color .25s ease}.sidebar-group-panel:hover{border-left-color:#ffffff29}.sidebar-group-panel.is-expanded{grid-template-rows:1fr;opacity:1}.sidebar-group-panel>div{min-height:0;display:grid;gap:4px;transition:transform .28s cubic-bezier(.25,1,.5,1);transform:translateY(-8px)}.sidebar-group-panel.is-expanded>div{transform:translateY(0)}.sidebar-footer{display:grid;grid-template-columns:auto 1fr auto auto;gap:8px;align-items:center;padding:10px;border-radius:8px;background:#ffffff0d;box-shadow:0 4px 12px #0000001f,inset 0 1px #ffffff14;border:1px solid rgba(255,255,255,.04);transition:background-color .25s ease,box-shadow .25s ease,border-color .25s ease}.sidebar-footer:hover{background:#ffffff14;box-shadow:0 6px 16px #00000029,inset 0 1px #ffffff1f;border-color:#ffffff14}.sidebar.is-collapsed .sidebar-footer{grid-template-columns:1fr}.sidebar-avatar{width:34px;height:34px;border-radius:999px;display:grid;place-items:center;background:#5b3fd42e;border:1px solid rgba(91,63,212,.44);color:#fff;font-weight:800;font-size:12px;box-shadow:0 2px 6px #5b3fd440;transition:transform .25s cubic-bezier(.25,1,.5,1)}.sidebar-footer:hover .sidebar-avatar{transform:scale(1.06)}@keyframes sidebarFadeIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.sidebar-brand div,.sidebar-link-label,.sidebar-user,.sidebar-group-title,.sidebar-chevron{animation:sidebarFadeIn .3s cubic-bezier(.25,1,.5,1) both}.sidebar-user{display:grid;gap:2px;min-width:0}.sidebar-user strong,.sidebar-user span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user span{color:#ffffffa8;font-size:12px}.sidebar-footer-button{border:1px solid rgba(255,255,255,.16);background:#ffffff14;color:#fff;border-radius:8px;width:34px;height:34px;cursor:pointer;display:grid;place-items:center}.sidebar-footer-button:disabled{opacity:.45;cursor:not-allowed}.topbar{display:flex;justify-content:space-between;align-items:center;padding:16px clamp(20px,4vw,40px) 0}.topbar-user-name{margin:0;font-size:18px;font-weight:700;line-height:1.2}.topbar-actions,.page-actions,.row-actions,.modal-footer,.table-pagination,.table-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.topbar-leading{display:flex;align-items:center;gap:14px;min-width:0}.mobile-nav-toggle{display:none}.mobile-nav-icon{position:relative;display:inline-block;width:18px;height:2px;background:currentColor;border-radius:999px}.mobile-nav-icon:before,.mobile-nav-icon:after{content:"";position:absolute;left:0;width:18px;height:2px;background:currentColor;border-radius:999px}.mobile-nav-icon:before{top:-6px}.mobile-nav-icon:after{top:6px}.notification-bell,.notification-bell-trigger{position:relative}.notification-bell-icon{position:relative;display:inline-block;width:18px;height:18px;border:2px solid currentColor;border-radius:999px 999px 2px 2px}.notification-bell-icon:after{content:"";position:absolute;top:-5px;left:50%;width:6px;height:4px;transform:translate(-50%);border:2px solid currentColor;border-bottom:0;border-radius:4px 4px 0 0}.notification-bell-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:var(--color-danger);color:#fff;font-size:10px;font-weight:800;line-height:18px;text-align:center}.notification-panel{position:absolute;top:calc(100% + 10px);right:0;width:min(360px,calc(100vw - 32px));max-height:min(420px,70vh);display:grid;grid-template-rows:auto 1fr;overflow:hidden;background:var(--color-panel);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-hover);z-index:30}.notification-panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--color-border)}.notification-panel-header h2{margin:0;font-size:16px}.notification-panel-actions{display:flex;gap:8px;flex-wrap:wrap}.notification-panel-empty{margin:0;padding:20px 16px;color:var(--color-text-soft)}.notification-list{list-style:none;margin:0;padding:8px;overflow:auto;display:grid;gap:6px}.notification-item{width:100%;display:grid;gap:4px;text-align:left;padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-panel-alt);color:inherit;cursor:pointer}.notification-item.is-read{opacity:.72}.notification-item--success{border-color:color-mix(in srgb,var(--color-success) 40%,var(--color-border))}.notification-item--error{border-color:color-mix(in srgb,var(--color-danger) 40%,var(--color-border))}.notification-item--info{border-color:color-mix(in srgb,var(--color-accent) 40%,var(--color-border))}.notification-item-message{font-size:14px;line-height:1.4}.notification-item-time{font-size:12px;color:var(--color-text-soft)}.sidebar-backdrop{display:none}body.is-mobile-nav-open{overflow:hidden}.content-area{padding:24px clamp(20px,4vw,40px) 40px}.student-shell{min-height:100vh;display:flex;flex-direction:column;background:var(--color-bg)}.student-topbar{display:flex;align-items:center;gap:24px;padding:12px clamp(16px,4vw,40px);background:var(--color-panel);border-bottom:1px solid var(--color-border)}.student-topbar-brand{display:flex;align-items:center;gap:10px;font-size:15px}.student-topbar-nav{display:flex;align-items:center;gap:8px}.student-topbar-actions{margin-left:auto;display:flex;align-items:center;gap:8px}.student-nav-link{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:var(--radius-md);color:var(--color-text-soft);text-decoration:none;font-weight:600;transition:background var(--transition-fast),color var(--transition-fast)}.student-nav-link:hover{background:var(--color-panel-alt);color:var(--color-text)}.student-nav-link.is-active{background:var(--color-accent-glow);color:var(--color-accent-strong)}.student-content{flex:1;width:100%;max-width:960px;margin:0 auto;padding:24px clamp(16px,4vw,40px) 48px}.page-shell{display:grid;gap:24px}.page-shell--constrained{max-width:960px;width:100%;margin-inline:auto}.active-pass{min-height:min(70vh,640px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:40px clamp(16px,4vw,48px);border-radius:var(--radius-lg);background:var(--color-brand);color:#fff;text-align:center}.active-pass-eyebrow{margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.18em;font-weight:700;color:color-mix(in srgb,#FFFFFF 65%,transparent)}.active-pass-destination{margin:0;font-size:clamp(28px,5vw,44px);font-weight:800;color:#fff}.active-pass-from{margin:0;color:color-mix(in srgb,#FFFFFF 70%,transparent)}.active-pass-help{margin:0;max-width:40ch;color:color-mix(in srgb,#FFFFFF 75%,transparent)}.active-pass-ring{position:relative;display:grid;place-items:center;margin:8px 0}.active-pass-ring svg{display:block}.active-pass-clock{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.active-pass-clock strong{font-family:var(--font-mono);font-size:26px;font-weight:800;line-height:1}.active-pass-clock span{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:color-mix(in srgb,#FFFFFF 65%,transparent)}.active-pass-end{min-width:220px;font-size:16px;padding:14px 24px}.active-pass-stats{display:flex;gap:28px;margin-top:8px}.active-pass-stats div{display:flex;flex-direction:column;gap:2px}.active-pass-stats strong{font-size:22px;font-weight:800}.active-pass-stats span{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:color-mix(in srgb,#FFFFFF 60%,transparent)}.page-header{display:flex;justify-content:space-between;gap:24px;align-items:end}.page-header h1{margin:0;font-family:var(--font-display);font-size:clamp(28px,3.8vw,44px);background:linear-gradient(135deg,var(--color-text) 0%,color-mix(in srgb,var(--color-accent) 80%,var(--color-text)) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}[data-theme=dark] .page-header h1{background:none;-webkit-text-fill-color:unset;color:var(--color-text)}[data-theme=dark] .page-eyebrow{color:color-mix(in srgb,var(--color-text-soft) 88%,var(--color-accent))}.page-header p:last-child{max-width:56ch;color:var(--color-text-soft)}.page-header--compact h1{font-size:clamp(24px,2.4vw,32px)}.page-header-meta{margin:2px 0 0;font-size:14px;color:var(--color-text-soft)}.filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;padding:20px}.helper-text{color:var(--color-text-soft);align-self:end}.approver-tag-input{display:flex;flex-direction:column;gap:6px;padding:8px;min-height:44px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-panel)}.approver-tag{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px 6px 12px;background:color-mix(in srgb,var(--color-accent) 14%,var(--color-panel));border:1px solid color-mix(in srgb,var(--color-accent) 38%,var(--color-border));border-radius:var(--radius-sm);font-size:13px;font-weight:500;color:var(--color-text)}.approver-tag-remove{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;flex-shrink:0;background:none;border:none;border-radius:3px;cursor:pointer;font-size:15px;line-height:1;color:var(--color-text-soft);padding:0;transition:background var(--transition-fast),color var(--transition-fast)}.approver-tag-remove:hover{background:color-mix(in srgb,var(--color-danger) 15%,transparent);color:var(--color-danger)}.approver-tag-add{font-size:13px;color:var(--color-text-soft);cursor:pointer;outline:none;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;align-self:flex-start}.form-field .approver-tag-input .approver-tag-add,.template-assigned-section .approver-tag-input .approver-tag-add{border:none;border-radius:0;background:transparent;padding:2px 4px;width:auto}.form-field.approver-role-field{grid-column:1 / -1}.form-section{display:flex;flex-direction:column;gap:8px;padding-top:12px;border-top:1px solid var(--color-border, #D8DEE8);margin-top:4px}.form-section-label{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-soft)}.form-ceiling-warning{font-size:13px;color:var(--color-warning, #b45309);background:var(--color-warning-surface, #fef3c7);border-radius:6px;padding:8px 10px;align-self:stretch}.panel{padding:20px}.table-toolbar{justify-content:space-between;margin-bottom:18px}.table-search{min-width:min(100%,320px);display:grid;gap:8px}.table-scroll{overflow-x:auto}.data-table{width:100%;border-collapse:collapse}.data-table caption{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.data-table th,.data-table td{padding:14px 12px;border-bottom:1px solid var(--color-border);text-align:left;vertical-align:top}.data-table th{color:var(--color-text-soft);font-weight:600}.status-cell{display:grid;gap:6px}.status-badge{display:inline-flex;align-items:center;width:fit-content;padding:6px 10px;border-radius:999px;font-weight:700;font-size:13px}.status-badge.is-positive{background:color-mix(in srgb,var(--color-success) 18%,transparent);color:var(--color-success)}.status-badge.is-danger{background:color-mix(in srgb,var(--color-danger) 18%,transparent);color:var(--color-danger)}.status-badge.is-neutral{background:color-mix(in srgb,var(--color-brand) 12%,transparent);color:var(--color-brand)}.status-badge-inactive{min-height:24px;padding:2px 10px;font-size:11px;letter-spacing:.04em;text-transform:uppercase;background:color-mix(in srgb,var(--color-text-soft) 14%,var(--color-panel));color:var(--color-text-soft);border:1px solid color-mix(in srgb,var(--color-text-soft) 22%,var(--color-border))}.state-card{display:grid;place-items:center;gap:12px;padding:36px;text-align:center}.state-card-error{align-items:start;justify-items:start}.state-spinner{width:42px;height:42px;border-radius:999px;border:4px solid color-mix(in srgb,var(--color-accent) 40%,transparent);border-top-color:var(--color-accent);animation:spin .8s linear infinite}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#08172d9e;display:grid;place-items:center;padding:24px}.modal-card{width:min(100%,760px);max-height:calc(100vh - 48px);background:var(--color-panel);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-panel);display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}.modal-card--wide{width:min(1120px,calc(100vw - 48px));max-height:calc(100vh - 48px)}.modal-card:has(.new-pass-layout){width:min(100%,980px)}.modal-header,.modal-body,.modal-footer{padding:20px 24px}.modal-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--color-border)}.modal-body{display:grid;gap:16px;overflow-y:auto}.modal-footer{justify-content:end;border-top:1px solid var(--color-border)}.placeholder-page{position:relative}.placeholder-page:before{content:"";position:absolute;inset:24px 0 auto auto;width:clamp(220px,26vw,360px);height:clamp(220px,26vw,360px);border-radius:999px;filter:blur(20px);opacity:.24;pointer-events:none}*{scrollbar-color:color-mix(in srgb,var(--color-accent) 55%,var(--color-border)) transparent;scrollbar-width:thin}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--color-accent) 42%,var(--color-border));border-radius:999px;border:3px solid transparent;background-clip:content-box}.pass-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px}.admin-card-grid,.destination-card-grid,.department-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.metric-card,.pass-card,.admin-card,.destination-card,.department-card{position:relative;overflow:hidden;background:var(--color-panel);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-panel);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.metric-card{display:grid;gap:8px;padding:20px 22px;min-width:0}.metric-card span{color:var(--color-text-soft);font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.06em}.metric-card strong{font-family:var(--font-mono);font-size:clamp(20px,4vw,32px);letter-spacing:-.02em;line-height:1.1;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.metric-card.metric-card--text strong{font-family:inherit;font-size:15px;line-height:1.3;letter-spacing:0;overflow-wrap:break-word;align-self:end}.metric-card:after{content:"";position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--color-accent);opacity:0;transition:opacity var(--transition-normal)}.metric-card:hover:after{opacity:1}.metric-card--link{text-decoration:none;color:inherit;cursor:pointer}.metric-card--link:hover{border-color:var(--color-accent);box-shadow:var(--shadow-hover)}.metric-card--link:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.metric-card.is-urgent strong{color:var(--color-danger)}.metric-card.is-urgent{border-color:color-mix(in srgb,var(--color-danger) 48%,var(--color-border));animation:urgency-pulse 1.8s ease-in-out infinite}.metric-card--skeleton{min-height:88px;background:linear-gradient(90deg,var(--color-panel-alt) 0%,color-mix(in srgb,var(--color-panel-alt) 70%,var(--color-panel)) 50%,var(--color-panel-alt) 100%);background-size:200% 100%;animation:metric-skeleton-shimmer 1.4s ease infinite;pointer-events:none}@keyframes metric-skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.pass-filter-bar{display:grid;gap:16px;border-left:3px solid var(--color-accent);background:color-mix(in srgb,var(--color-accent) 3%,var(--color-panel))}.pass-status-pills,.pass-date-presets,.active-filter-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.filter-pill{border:1px solid var(--color-border);background:var(--color-panel);color:var(--color-text);border-radius:999px;display:inline-flex;gap:8px;align-items:center;padding:8px 12px;cursor:pointer;font-weight:700;transition:background .2s ease,border-color .2s ease,transform .2s ease}.filter-pill span,.active-filter-chip{border-radius:999px;background:color-mix(in srgb,var(--color-accent) 18%,var(--color-panel));color:var(--color-brand-strong);padding:2px 8px;font-size:12px;font-weight:800}.filter-pill.is-active{border-color:var(--color-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-accent) 18%,transparent)}.pass-search-field{display:grid;gap:8px}.pass-search-shell{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;border:1px solid var(--color-border);border-radius:999px;background:color-mix(in srgb,var(--color-panel-alt) 58%,var(--color-panel));padding:0 12px}.pass-search-shell input{border:none;background:transparent;min-height:44px;color:var(--color-text);outline:none}.pass-search-shell button{border:none;background:transparent;color:var(--color-text-soft);cursor:pointer}.pass-search-slash{color:var(--color-text-soft);font-weight:700}.pass-search-slash:before{content:"/"}.dot-separator:before{content:"·";margin:0 6px;color:var(--color-text-soft)}.pass-date-layer{display:grid;grid-template-columns:1fr repeat(2,minmax(160px,220px));gap:12px;align-items:end}.active-filter-chip{animation:chip-enter .18s ease both;cursor:pointer;border:none;font:inherit;display:inline-flex;align-items:center;gap:4px}.active-filter-chip .icon-close{width:12px;height:12px;opacity:.7;transition:opacity .15s ease}.active-filter-chip:hover .icon-close{opacity:1}.pass-new-arrivals{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;border-radius:var(--radius-md);border:1px solid var(--color-accent);background:color-mix(in srgb,var(--color-accent) 12%,var(--color-panel));font-weight:700;animation:chip-enter .2s ease both}.requests-paused-banner{display:grid;gap:4px;padding:14px 18px;border-radius:var(--radius-md);border:1px solid var(--color-warning, var(--color-danger));background:color-mix(in srgb,var(--color-warning, var(--color-danger)) 10%,var(--color-panel))}.requests-paused-banner h2{margin:0;font-size:1.05rem}.requests-paused-banner p{margin:0}.rule-blocked-panel{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:14px 18px;border-radius:var(--radius-md);border:1px solid var(--color-danger);background:color-mix(in srgb,var(--color-danger) 10%,var(--color-panel))}.rule-blocked-copy strong{display:block;color:var(--color-danger);font-weight:800;margin-bottom:2px}.rule-blocked-copy p{margin:0}.rule-blocked-actions{display:flex;gap:8px;align-items:center}.pass-card-grid{display:grid;gap:14px}.pass-empty-state{display:grid;place-items:center;gap:16px;padding:48px 24px;text-align:center}.pass-empty-state h2{font-family:var(--font-display);font-size:22px;font-weight:800;margin:0}.pass-empty-state p{color:var(--color-text-soft);max-width:40ch;margin:0}.pass-card{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:20px;align-items:center;padding:16px 20px;animation:card-enter .22s ease both;transition:border-color .2s ease,box-shadow .2s ease}.pass-card--overdue{border-color:color-mix(in srgb,var(--color-danger) 48%,var(--color-border));animation:urgency-pulse 1.8s ease-in-out infinite}.pass-card-elapsed{font-family:var(--font-mono);font-size:28px;font-weight:600;letter-spacing:-.03em;line-height:1;color:var(--color-accent);text-align:center}.pass-card--pending .pass-card-elapsed{color:var(--color-accent);opacity:.7}.pass-card--approved .pass-card-elapsed,.pass-card--active .pass-card-elapsed{color:var(--color-accent)}.pass-card--closed .pass-card-elapsed{color:var(--color-text-soft);opacity:.5}.pass-card--overdue .pass-card-elapsed{color:var(--color-danger)}.pass-card-body{display:grid;gap:6px;min-width:0}.pass-card-identity{display:flex;align-items:center;gap:12px;min-width:0}.pass-card-main{display:grid;gap:2px;min-width:0}.pass-card-main h2{margin:0;font-size:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pass-card-main p{margin:0;color:var(--color-text-soft);font-size:14px}.pass-card-meta span{margin:0;color:var(--color-text-soft)}.pass-card-pending-hint{margin:4px 0 0;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.pass-card-pending-hint a{font-weight:700;color:var(--color-accent)}.student-avatar{width:44px;height:44px;border-radius:999px;display:grid;place-items:center;background:color-mix(in srgb,var(--color-accent) 24%,var(--color-panel));border:1px solid color-mix(in srgb,var(--color-accent) 48%,var(--color-border));color:var(--color-brand-strong);font-weight:800;flex:0 0 auto}.pass-card-meta{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;align-items:center}.new-pass-layout{display:grid;grid-template-columns:minmax(240px,.9fr) minmax(300px,1.1fr);gap:18px}.new-pass-layout>.form-field-error{grid-column:1 / -1}.new-pass-panel{min-height:360px;display:grid;gap:14px;align-content:start;padding:16px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--color-panel-alt) 44%,var(--color-panel))}.new-pass-panel h3{margin:0}.new-pass-summary{border-color:color-mix(in srgb,var(--color-accent) 52%,var(--color-border));box-shadow:0 0 0 3px color-mix(in srgb,var(--color-accent) 14%,transparent)}.custom-report-table{width:100%;border-collapse:collapse;overflow:hidden}.custom-report-table th,.custom-report-table td{border-bottom:1px solid var(--color-border);padding:12px;text-align:left}.custom-report-table th{color:var(--color-text-soft);-webkit-user-select:none;user-select:none}.table-sort-button{border:none;background:transparent;color:inherit;font:inherit;font-weight:800;cursor:pointer;padding:0}.custom-report-table tbody tr:hover{background:color-mix(in srgb,var(--color-accent) 9%,transparent)}.admin-card,.destination-card,.department-card{padding:16px;display:grid;gap:12px;min-width:0}.destination-card .row-actions,.admin-card .row-actions,.department-card .row-actions{flex-wrap:wrap;gap:6px}.destination-card .row-actions .ghost-button,.admin-card .row-actions .ghost-button{flex:1 1 auto;justify-content:center;min-height:36px;font-size:13px;padding:8px 10px}.user-list{display:grid;gap:10px}.user-list-row{display:grid;grid-template-columns:minmax(280px,1fr) auto minmax(260px,auto);gap:18px;align-items:center;padding:14px 16px;background:var(--color-panel);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-panel);transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.user-list-row:hover{border-color:color-mix(in srgb,var(--color-accent) 58%,var(--color-border));box-shadow:var(--shadow-hover)}.user-list-identity{display:flex;align-items:center;gap:12px;min-width:0}.user-list-identity h2,.user-list-identity p{margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-list-identity h2{font-size:18px}.user-list-identity p{color:var(--color-text-soft)}.user-list-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end}.role-chip{display:inline-flex;align-items:center;min-height:26px;padding:4px 10px;border-radius:999px;background:color-mix(in srgb,var(--color-brand) 8%,var(--color-panel));color:var(--color-text-soft);font-size:13px;font-weight:700}.user-list-actions{justify-content:flex-end}.department-list{display:grid;gap:10px}.department-list-row{display:grid;grid-template-columns:minmax(180px,1fr) auto;gap:16px 20px;align-items:center;padding:16px 18px 16px 22px;background:var(--color-panel);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-panel);transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.department-list-row.is-retired{background:color-mix(in srgb,var(--color-panel-alt) 42%,var(--color-panel))}.department-list-row:hover{border-color:color-mix(in srgb,var(--color-accent) 58%,var(--color-border));box-shadow:var(--shadow-hover)}.department-list-main{display:flex;align-items:center;gap:12px;min-width:0}.department-list-main h2{margin:0;font-size:18px;font-weight:700;display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0;overflow:hidden;text-overflow:ellipsis}.department-list-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.department-list-actions .ghost-button,.department-list-actions .danger-button{min-height:36px;padding:8px 14px;font-size:13px;font-weight:600}.department-list-actions .ghost-button{background:color-mix(in srgb,var(--color-panel-alt) 65%,var(--color-panel))}.department-list-actions .ghost-button:hover:not(:disabled){border-color:color-mix(in srgb,var(--color-accent) 45%,var(--color-border));background:color-mix(in srgb,var(--color-accent) 6%,var(--color-panel))}.monitor-assignment-row{cursor:pointer}.monitor-assignment-main{display:flex;flex-direction:column;align-items:flex-start;gap:6px;grid-template-columns:unset}.monitor-assignment-main h2{white-space:normal}.monitor-assignment-main .card-meta span{padding:4px 10px;border-radius:999px;background:color-mix(in srgb,var(--color-accent) 12%,var(--color-panel));border:1px solid color-mix(in srgb,var(--color-accent) 24%,var(--color-border));font-size:13px}.monitor-staff-picker{display:grid;gap:12px;margin-top:18px}.monitor-staff-picker-list{max-height:360px;overflow:auto;padding-right:4px}.monitor-staff-picker-row{cursor:default}.role-list{display:grid;gap:10px}.lock-bar.requests-pause-bar{display:flex;flex-direction:column;gap:8px;align-items:stretch}.requests-pause-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;min-width:0}.requests-pause-row--new-pass-only{display:flex;justify-content:flex-end}.requests-pause-label{font-size:.9375rem;font-weight:700;color:var(--color-text);white-space:nowrap}.requests-pause-class{min-width:160px;margin:0}.requests-pause-class-name{font-size:.875rem;color:var(--color-text-soft);white-space:nowrap}.requests-pause-new-pass{margin-inline-start:auto}.requests-pause-chip{padding:2px 10px;border-radius:999px;font-size:.75rem;font-weight:700;letter-spacing:.02em;white-space:nowrap}.requests-pause-chip.is-blocked{color:var(--color-warning, #b45309);background:var(--color-warning-surface, #fef3c7)}.requests-pause-chip.is-open{color:var(--color-text-soft);background:color-mix(in srgb,var(--color-text-soft) 18%,var(--color-panel))}.requests-pause-note{margin:0;font-size:.8125rem;align-self:start}.requests-pause-switch{display:inline-flex;align-items:center;gap:10px;margin:0;padding:6px 8px;border:0;border-radius:var(--radius-md, 10px);background:transparent;color:var(--color-text);font:inherit;font-size:.875rem;font-weight:600;cursor:pointer;min-height:44px}.requests-pause-switch:disabled{opacity:.55;cursor:not-allowed}.requests-pause-switch:focus-visible{outline:3px solid color-mix(in srgb,var(--color-accent) 82%,white);outline-offset:2px}.requests-pause-switch-track{position:relative;display:block;width:44px;height:26px;flex-shrink:0;border-radius:999px;background:color-mix(in srgb,var(--color-text-soft) 28%,var(--color-panel));transition:background-color .18s ease}.requests-pause-switch.is-on .requests-pause-switch-track{background:var(--color-accent)}.requests-pause-switch.is-off .requests-pause-switch-track{background:color-mix(in srgb,var(--color-warning, #b45309) 55%,var(--color-panel))}.requests-pause-switch-thumb{position:absolute;top:3px;inset-inline-start:3px;width:20px;height:20px;border-radius:999px;background:#fff;box-shadow:0 1px 3px #00000047;transition:transform .18s ease}.requests-pause-switch.is-on .requests-pause-switch-thumb{transform:translate(18px)}.requests-pause-switch.is-off .requests-pause-switch-thumb{transform:translate(0)}[dir=rtl] .requests-pause-switch.is-on .requests-pause-switch-thumb{transform:translate(-18px)}@media(prefers-reduced-motion:reduce){.requests-pause-switch-track,.requests-pause-switch-thumb{transition:none}}.requests-pause-bar .helper-text{margin:0}.dashboard-chart-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;align-items:start}.dashboard-chart-card{display:grid;gap:16px;min-height:0}.dashboard-chart-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.dashboard-chart-header h2,.dashboard-chart-header p{margin:0}.dashboard-chart-header p{color:var(--color-text-soft);margin-top:4px}.dashboard-chart-header strong{font-size:28px;color:var(--color-brand-strong)}.dashboard-bar-chart{display:grid;gap:12px}.dashboard-bar-row{display:grid;grid-template-columns:minmax(130px,auto) minmax(120px,1fr) auto;gap:12px;align-items:center}.dashboard-bar-copy{display:flex;align-items:center;justify-content:space-between;gap:12px}.dashboard-bar-track{height:12px;border-radius:999px;background:color-mix(in srgb,var(--color-border) 70%,var(--color-panel-alt));overflow:hidden}.dashboard-bar-fill{display:block;height:100%;border-radius:inherit}.dashboard-bar-fill--pending,.dashboard-legend-swatch--pending,.dashboard-stack-segment--pending{background:color-mix(in srgb,var(--color-warning) 80%,#f8d26a)}.dashboard-bar-fill--open,.dashboard-legend-swatch--open,.dashboard-stack-segment--open{background:color-mix(in srgb,var(--color-success) 78%,#57d49b)}.dashboard-bar-fill--overdue,.dashboard-legend-swatch--overdue,.dashboard-stack-segment--overdue{background:color-mix(in srgb,var(--color-danger) 82%,#f06d6d)}.dashboard-bar-fill--rejected,.dashboard-legend-swatch--rejected,.dashboard-stack-segment--rejected{background:color-mix(in srgb,var(--color-danger) 60%,#b85a5a)}.dashboard-bar-fill--closed,.dashboard-legend-swatch--closed,.dashboard-stack-segment--closed{background:color-mix(in srgb,var(--color-accent) 68%,var(--color-brand))}.dashboard-bar-share{color:var(--color-text-soft);font-weight:700;min-width:42px;text-align:right}.dashboard-stack-chart{display:flex;min-height:22px;border-radius:999px;overflow:hidden;background:color-mix(in srgb,var(--color-border) 70%,var(--color-panel-alt))}.dashboard-stack-segment{min-width:0}.dashboard-legend-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.dashboard-legend-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-md);background:color-mix(in srgb,var(--color-panel-alt) 60%,var(--color-panel));border:1px solid var(--color-border)}.dashboard-legend-item strong{margin-left:auto}.dashboard-legend-swatch{width:12px;height:12px;border-radius:999px;flex:0 0 auto}.reports-chart-grid{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:960px){.reports-chart-grid{grid-template-columns:1fr}}.report-trend-chart{display:flex;gap:12px;align-items:end;min-height:220px;overflow-x:auto;padding-bottom:4px}.report-trend-chart--day{display:grid;grid-template-columns:repeat(auto-fit,minmax(56px,1fr));overflow-x:visible}.report-trend-column{display:grid;gap:8px;justify-items:center;flex:0 0 56px;min-width:56px}.report-trend-chart--day .report-trend-column{flex:initial;min-width:0}.report-trend-value{font-size:12px;font-weight:800;color:var(--color-text-soft)}.report-trend-track{width:100%;min-height:140px;display:flex;align-items:end;justify-content:center;border-radius:var(--radius-md);background:color-mix(in srgb,var(--color-border) 70%,var(--color-panel-alt));overflow:hidden}.report-trend-fill{width:100%;border-radius:inherit;background:linear-gradient(180deg,color-mix(in srgb,var(--color-accent) 70%,white),var(--color-brand))}.report-trend-label{font-size:12px;color:var(--color-text-soft);text-align:center}.role-list-row{display:grid;grid-template-columns:minmax(220px,1fr) auto minmax(180px,auto);gap:18px;align-items:center;padding:14px 16px;background:var(--color-panel);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-panel);transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.role-list-row:hover{border-color:color-mix(in srgb,var(--color-accent) 58%,var(--color-border));box-shadow:var(--shadow-hover)}.role-list-main{display:flex;align-items:center;gap:12px;min-width:0}.role-list-main h2{margin:0;font-size:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.role-list-meta{color:var(--color-text-soft);font-weight:700}.role-list-actions{justify-content:flex-end}.card-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.card-title-row h2{margin:0;font-size:18px}.card-meta{display:flex;flex-wrap:wrap;gap:8px;color:var(--color-text-soft)}.destination-type-icon{display:inline-flex;align-items:center;justify-content:center}.destination-icon{--destination-icon-badge-size: calc(var(--destination-icon-size, 28px) + 14px);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.destination-icon__badge{width:var(--destination-icon-badge-size);min-height:var(--destination-icon-badge-size);border-radius:12px;display:grid;place-items:center;background:transparent;border:none;overflow:visible}.destination-icon__badge--sign{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:2px;padding:2px 0 4px;width:auto;min-width:var(--destination-icon-badge-size)}.destination-icon__graphic{display:flex;align-items:center;justify-content:center;line-height:0}.destination-icon__svg{width:calc(var(--destination-icon-size, 28px) * 1.12);height:calc(var(--destination-icon-size, 28px) * .92);display:block;overflow:visible}.destination-icon__code{font-size:clamp(8px,calc(var(--destination-icon-size, 28px) * .24),11px);font-weight:800;letter-spacing:.06em;line-height:1;color:var(--color-text);text-transform:uppercase;max-width:calc(var(--destination-icon-size, 28px) * 1.35);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.destination-icon:not(.destination-icon--fallback) .destination-icon__badge{box-shadow:none}.destination-icon--fallback .destination-icon__badge,.destination-icon--letter .destination-icon__badge{width:var(--destination-icon-badge-size);height:var(--destination-icon-badge-size);font-weight:800;font-size:calc(var(--destination-icon-size, 28px) * .5);letter-spacing:-.03em;background:color-mix(in srgb,var(--color-brand) 12%,white);border:1px solid color-mix(in srgb,var(--color-brand) 28%,var(--color-border));color:var(--color-brand)}.destination-icon-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:10px}.destination-icon-picker-option{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 10px 10px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-panel);cursor:pointer;min-height:100%}.destination-icon-picker-option:hover{border-color:color-mix(in srgb,var(--color-brand) 40%,var(--color-border));background:color-mix(in srgb,var(--color-brand) 4%,var(--color-panel))}.destination-icon-picker-option.is-selected{border-color:var(--color-brand);background:color-mix(in srgb,var(--color-brand) 8%,var(--color-panel));box-shadow:0 0 0 1px color-mix(in srgb,var(--color-brand) 35%,var(--color-border)),0 8px 20px color-mix(in srgb,var(--color-brand) 10%,transparent)}.destination-icon-picker-label{text-align:center;font-size:13px;font-weight:700;line-height:1.25;color:var(--color-text)}.destination-icon-picker-hint{text-align:center;font-size:11px;line-height:1.3;color:var(--color-text-soft)}.destination-icon-picker-option.is-selected .destination-icon-picker-label{color:var(--color-brand)}.destination-type-icon--restroom{background:color-mix(in srgb,#06b6d4 20%,var(--color-panel));border-color:color-mix(in srgb,#06b6d4 44%,var(--color-border));color:#0891b2}.destination-type-icon--medical{background:color-mix(in srgb,var(--color-danger) 20%,var(--color-panel));border-color:color-mix(in srgb,var(--color-danger) 44%,var(--color-border));color:var(--color-danger)}.destination-type-icon--academic{background:color-mix(in srgb,var(--color-accent) 20%,var(--color-panel));border-color:color-mix(in srgb,var(--color-accent) 44%,var(--color-border));color:var(--color-accent)}.destination-type-icon--admin{background:color-mix(in srgb,var(--color-brand) 14%,var(--color-panel));border-color:color-mix(in srgb,var(--color-brand) 30%,var(--color-border));color:var(--color-text)}.status-badge--active{background:color-mix(in srgb,var(--color-success) 18%,transparent);color:var(--color-success)}.status-badge--rejected{background:color-mix(in srgb,var(--color-danger) 18%,transparent);color:var(--color-danger)}.status-badge--neutral{background:color-mix(in srgb,var(--color-brand) 12%,transparent);color:var(--color-text)}@keyframes card-enter{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes chip-enter{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes urgency-pulse{0%,to{box-shadow:0 0 color-mix(in srgb,var(--color-danger) 28%,transparent),var(--shadow-panel)}50%{box-shadow:0 0 0 8px color-mix(in srgb,var(--color-danger) 0%,transparent),var(--shadow-panel)}}@media(max-width:980px){.app-shell,.app-shell.is-sidebar-collapsed{grid-template-columns:1fr}.sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;border:0;padding:0;background:#0f172a8c;opacity:0;pointer-events:none;transition:opacity .25s ease;z-index:25}.sidebar-backdrop.is-visible{opacity:1;pointer-events:auto}.sidebar{position:fixed;inset:0 auto 0 0;width:min(var(--sidebar-width),88vw);min-height:100dvh;z-index:30;transform:translate(-105%);transition:transform .25s cubic-bezier(.4,0,.2,1)}.sidebar.is-mobile-open{transform:translate(0)}.mobile-nav-toggle{display:inline-flex}.pass-card,.new-pass-layout,.pass-date-layer,.live-lanes,.user-list-row,.department-list-row,.role-list-row{grid-template-columns:1fr}.user-list-meta,.user-list-actions,.department-list-actions,.role-list-actions{justify-content:flex-start}.pass-card-elapsed{text-align:left}.pass-card-meta,.row-actions,.page-actions{justify-content:flex-start}.page-header,.topbar{align-items:start;flex-direction:column;gap:12px}.topbar-actions{width:100%;justify-content:flex-end}.pass-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pass-filter-bar,.pass-date-layer{min-width:0}.pass-status-pills,.pass-date-presets,.active-filter-row{width:100%}.admin-card-grid,.destination-card-grid,.department-card-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}}.placeholder-page--teal:before{background:radial-gradient(circle,rgba(50,180,190,.45),transparent 68%)}.placeholder-page--amber:before{background:radial-gradient(circle,rgba(241,178,53,.42),transparent 68%)}.placeholder-page--coral:before{background:radial-gradient(circle,rgba(232,111,85,.38),transparent 68%)}.placeholder-page--ink:before{background:radial-gradient(circle,rgba(68,88,170,.34),transparent 68%)}.placeholder-page--mint:before{background:radial-gradient(circle,rgba(81,176,142,.34),transparent 68%)}.placeholder-hero{position:relative;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.9fr);gap:20px;overflow:hidden}.placeholder-hero:after{content:"";position:absolute;inset:auto -40px -60px auto;width:240px;height:240px;border-radius:48px;transform:rotate(22deg);background:linear-gradient(180deg,rgba(255,255,255,.1),transparent);border:1px solid color-mix(in srgb,var(--color-border) 82%,white)}.placeholder-hero-copy,.placeholder-spotlight,.placeholder-panel{position:relative;z-index:1}.placeholder-summary{margin:0;max-width:58ch;font-size:18px;line-height:1.6}.placeholder-badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.placeholder-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;font-size:13px;font-weight:700;color:var(--color-text-soft);background:color-mix(in srgb,var(--color-panel-alt) 72%,transparent);border:1px solid color-mix(in srgb,var(--color-border) 82%,white)}.placeholder-spotlight{display:grid;align-content:start;gap:12px;padding:20px;border-radius:calc(var(--radius-lg) - 4px);background:linear-gradient(180deg,color-mix(in srgb,var(--color-brand) 12%,var(--color-panel)),transparent),color-mix(in srgb,var(--color-panel-alt) 68%,var(--color-panel));border:1px solid color-mix(in srgb,var(--color-border) 76%,white)}.placeholder-spotlight h2,.placeholder-panel h2{margin:0;font-family:var(--font-display);font-size:24px}.placeholder-spotlight p:last-of-type,.placeholder-card p,.placeholder-panel li{color:var(--color-text-soft)}.placeholder-sigil{display:grid;place-items:center;width:68px;height:68px;border-radius:22px;font-family:var(--font-display);font-size:24px;letter-spacing:.08em;color:#fff;background:linear-gradient(135deg,var(--color-brand),color-mix(in srgb,var(--color-accent) 54%,var(--color-brand)));box-shadow:0 18px 28px #0b1c382e}.placeholder-metrics{display:grid;gap:10px;margin-top:6px}.placeholder-metric{display:flex;justify-content:space-between;gap:16px;align-items:baseline;padding-top:10px;border-top:1px solid color-mix(in srgb,var(--color-border) 70%,transparent)}.placeholder-metric span{color:var(--color-text-soft);font-size:14px}.placeholder-metric strong{font-size:16px}.placeholder-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.placeholder-panel--wide{grid-column:1 / -1}.placeholder-panel-header{display:grid;gap:6px;margin-bottom:18px}.placeholder-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.placeholder-card{display:grid;gap:8px;padding:18px;border-radius:calc(var(--radius-lg) - 6px);background:linear-gradient(180deg,color-mix(in srgb,var(--color-panel-alt) 56%,transparent),transparent),var(--color-panel);border:1px solid color-mix(in srgb,var(--color-border) 82%,white)}.placeholder-card h3{margin:0;font-size:18px}.placeholder-card p{margin:0;line-height:1.6}.placeholder-list{list-style:none;display:grid;gap:14px;margin:0;padding:0}.placeholder-list li{position:relative;padding-left:22px;line-height:1.6}.placeholder-list li:before{content:"";position:absolute;left:0;top:10px;width:10px;height:10px;border-radius:999px;background:var(--color-accent);box-shadow:0 0 0 6px color-mix(in srgb,var(--color-accent) 14%,transparent)}.placeholder-list--soft li:before{background:var(--color-brand);box-shadow:0 0 0 6px color-mix(in srgb,var(--color-brand) 10%,transparent)}@keyframes spin{to{transform:rotate(360deg)}}.slide-in{animation:slide-in .25s ease both}@keyframes slide-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes progress-fill{0%{width:0}}.budget-indicator{display:grid;gap:8px;padding:14px 16px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-panel-alt);transition:border-color .2s ease,background .2s ease}.budget-indicator--at-limit{border-color:color-mix(in srgb,var(--color-danger) 48%,var(--color-border));background:color-mix(in srgb,var(--color-danger) 10%,var(--color-panel))}.budget-indicator--unlimited{display:flex;align-items:center;gap:10px;padding:10px 16px;border-color:color-mix(in srgb,var(--color-success) 40%,var(--color-border));background:color-mix(in srgb,var(--color-success) 8%,var(--color-panel))}.budget-indicator-icon:before{content:"∞"}.budget-indicator-icon{font-size:20px;font-weight:800;color:var(--color-success)}.budget-indicator-header{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.budget-indicator-label{font-weight:700;font-size:15px}.budget-indicator-label--danger{color:var(--color-danger)}.budget-indicator-detail{font-size:13px;color:var(--color-text-soft)}.budget-indicator-bar{height:6px;border-radius:999px;background:color-mix(in srgb,var(--color-border) 70%,var(--color-panel-alt));overflow:hidden}.budget-indicator-fill{height:100%;border-radius:inherit;background:var(--color-success);transition:width .5s cubic-bezier(.4,0,.2,1);animation:progress-fill .5s ease both}.budget-indicator-fill--danger{background:var(--color-danger)}.desk-selected-student{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-radius:var(--radius-md);border:1px solid color-mix(in srgb,var(--color-success) 48%,var(--color-border));background:color-mix(in srgb,var(--color-success) 10%,var(--color-panel))}.desk-selected-student-name{font-weight:700;font-size:14px;color:var(--color-success)}.desk-selected-student .ghost-button{min-width:32px;min-height:32px;padding:0;border-radius:999px;font-size:18px;line-height:1;display:grid;place-items:center}.desk-session-picker{display:grid;gap:8px;max-height:0;opacity:0;overflow:hidden;transition:max-height .3s cubic-bezier(.4,0,.2,1),opacity .2s ease}.desk-session-picker.is-open{max-height:300px;opacity:1}.desk-confirm-bar{position:sticky;bottom:0;z-index:10;background:var(--color-panel);border-top:1px solid var(--color-border);padding:14px 0;display:flex;justify-content:flex-end;gap:12px;margin-top:8px}.destination-tile--closed{opacity:.55;background:var(--color-panel-alt)}.destination-tile--closed .destination-tile-name{text-decoration:line-through;opacity:.7}.destination-tile--closed:hover{opacity:.65}.destination-tile:disabled:not(.destination-tile--closed){opacity:.5;cursor:not-allowed}.destination-tiles-frequent-heading{display:flex;align-items:center;gap:6px;font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--color-accent);font-weight:800;margin:8px 0 4px}.destination-tiles-frequent-heading:before{content:"🕑";font-size:12px;line-height:1}.desk-flow{display:flex;flex-direction:column;gap:16px}.desk-rail{padding:8px 14px;border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-panel)}.desk-rail-list{display:flex;align-items:center;gap:4px;margin:0;padding:0;list-style:none}.desk-rail-step{display:flex;align-items:center;gap:10px;min-width:0}.desk-rail-step+.desk-rail-step{flex:1 1 auto}.desk-rail-button{flex:0 0 auto}.desk-rail-step+.desk-rail-step:before{content:"";flex:1 1 auto;min-width:12px;height:2px;border-radius:2px;background:var(--color-border)}.desk-rail-step--done+.desk-rail-step:before{background:color-mix(in srgb,var(--color-accent) 55%,var(--color-border))}.desk-rail-button{display:inline-flex;align-items:center;gap:10px;padding:7px 14px 7px 7px;border:1px solid transparent;border-radius:999px;background:none;font:inherit;font-weight:700;font-size:14px;color:var(--color-text-soft);cursor:pointer}.desk-rail-button:disabled{cursor:default}.desk-rail-button:not(:disabled):hover{background:color-mix(in srgb,var(--color-accent) 8%,transparent)}.desk-rail-index{flex:0 0 auto;width:30px;height:30px;display:grid;place-items:center;border-radius:999px;font-size:13px;font-weight:800;line-height:1;color:var(--color-text-soft);background:var(--color-panel-alt);border:1px solid var(--color-border)}.desk-rail-step--active .desk-rail-button{color:var(--color-accent);border-color:color-mix(in srgb,var(--color-accent) 40%,var(--color-border));background:color-mix(in srgb,var(--color-accent) 10%,var(--color-panel))}.desk-rail-step--active .desk-rail-index{color:#fff;background:var(--color-accent);border-color:var(--color-accent)}.desk-rail-step--done .desk-rail-index{color:var(--color-success);background:color-mix(in srgb,var(--color-success) 14%,var(--color-panel));border-color:color-mix(in srgb,var(--color-success) 40%,var(--color-border))}.desk-rail-step--locked .desk-rail-button{opacity:.55}.desk-rail-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.desk-zone--student .student-picker-list{max-height:clamp(200px,calc(100dvh - 672px),460px)}.desk-session-block{display:grid;gap:10px;padding-top:14px;border-top:1px solid var(--color-border)}.desk-session-block h4{margin:0}.desk-zone{display:grid;gap:14px;padding:18px 20px;border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-panel)}.desk-zone--student{position:relative;z-index:2;overflow:visible}.desk-zone-head{display:flex;align-items:center;gap:12px}.desk-zone-head h3,.desk-zone-head .page-eyebrow{margin:0}.desk-rules-inline{display:grid;gap:14px}.desk-outcome-bar{position:sticky;bottom:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:4px;padding:16px 20px;border-radius:var(--radius-lg);border:1px solid var(--color-border);border-top-width:3px;background:var(--color-panel);box-shadow:var(--shadow-panel)}.desk-outcome-bar--approved{border-top-color:var(--color-success)}.desk-outcome-bar--pending{border-top-color:var(--color-warning)}.desk-outcome-bar--blocked{border-top-color:var(--color-danger)}.desk-outcome-summary{display:grid;gap:2px;min-width:0}.desk-outcome-route{font-weight:800;font-size:15px}.desk-outcome-message{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--color-text-soft)}.desk-outcome-icon{font-weight:800}.desk-outcome-bar--approved .desk-outcome-icon{color:var(--color-success)}.desk-outcome-bar--pending .desk-outcome-icon{color:var(--color-warning)}.desk-outcome-bar--blocked .desk-outcome-message,.desk-outcome-bar--blocked .desk-outcome-icon{color:var(--color-danger)}.desk-outcome-facts{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:14px;color:var(--color-text-soft)}.desk-outcome-fact+.desk-outcome-fact:before{content:"·";margin-right:10px}.desk-outcome-actions{display:flex;gap:12px;align-items:center;margin-left:auto}@media(max-width:720px){.desk-rail-step:not(.desk-rail-step--active) .desk-rail-label{display:none}.desk-rail-button{padding:7px}.desk-rail-step--active .desk-rail-button{padding-right:14px}.desk-outcome-bar{flex-direction:column;align-items:stretch;gap:12px}.desk-outcome-actions{margin-left:0}.desk-outcome-actions>*{flex:1 1 0;justify-content:center}}.session-picker{display:grid;gap:10px}.session-option{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;text-align:left;padding:12px 16px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-panel);cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease}.session-option:hover,.session-option.is-selected{border-color:var(--color-accent);box-shadow:0 0 0 1px var(--color-accent)}.session-option:disabled{opacity:.6;cursor:not-allowed}.session-option-main{display:grid;gap:2px;min-width:0}.session-option-course{font-weight:700;font-size:15px}.session-option-teacher{font-size:13px;color:var(--color-text-soft)}.session-option-meta{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.session-option-time{font-size:13px;color:var(--color-text-soft);white-space:nowrap}.session-option-tag{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:3px 8px;border-radius:999px}.session-option-tag--suggested{color:var(--color-success);background:color-mix(in srgb,var(--color-success) 14%,var(--color-panel))}.session-option-tag--locked{color:var(--color-info);background:color-mix(in srgb,var(--color-info) 16%,var(--color-panel))}.bulk-verdict-list{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:8px}.bulk-verdict{display:grid;gap:8px;padding:12px 14px;border:1px solid var(--color-border);border-inline-start:3px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-panel)}.bulk-verdict--ok{border-inline-start-color:var(--color-success)}.bulk-verdict--refused{border-inline-start-color:var(--color-danger)}.bulk-verdict-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.bulk-verdict-mark{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px;font-size:12px;font-weight:800}.bulk-verdict--ok .bulk-verdict-mark{color:var(--color-success);background:color-mix(in srgb,var(--color-success) 14%,var(--color-panel))}.bulk-verdict--refused .bulk-verdict-mark{color:var(--color-danger);background:color-mix(in srgb,var(--color-danger) 14%,var(--color-panel))}.bulk-verdict-main{display:grid;gap:2px;flex:1 1 220px;min-width:0}.bulk-verdict-name{font-weight:700;font-size:15px}.bulk-verdict-reason{font-size:13px;color:var(--color-text-soft)}.bulk-verdict-meta{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.bulk-verdict-tag{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:3px 8px;border-radius:999px;white-space:nowrap}.bulk-verdict-tag--ok{color:var(--color-success);background:color-mix(in srgb,var(--color-success) 14%,var(--color-panel))}.bulk-verdict-tag--refused{color:var(--color-danger);background:color-mix(in srgb,var(--color-danger) 14%,var(--color-panel))}.bulk-verdict-changed{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:3px 8px;border-radius:999px;color:var(--color-warning);background:color-mix(in srgb,var(--color-warning) 18%,var(--color-panel));white-space:nowrap}.bulk-verdict-credit{font-size:13px;color:var(--color-text-soft);white-space:nowrap}.bulk-review-tally{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0}.bulk-review-count{font-size:13px;font-weight:700;padding:4px 10px;border-radius:999px;border:1px solid var(--color-border);background:var(--color-panel-alt)}.bulk-review-count--ok{color:var(--color-success);border-color:color-mix(in srgb,var(--color-success) 40%,var(--color-border));background:color-mix(in srgb,var(--color-success) 12%,var(--color-panel))}.bulk-review-count--refused{color:var(--color-danger);border-color:color-mix(in srgb,var(--color-danger) 40%,var(--color-border));background:color-mix(in srgb,var(--color-danger) 12%,var(--color-panel))}.bulk-verdict-sessions{margin-top:8px}.bulk-verdict-sessions ul{list-style:none;margin:8px 0 0;padding:0}.desk-student{max-width:640px;margin-inline:auto}.desk-student-card{display:grid;gap:18px}.pass-card{animation:card-enter .28s cubic-bezier(.34,1.56,.64,1) both;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.toast-region .toast{animation:toast-slide-in .25s ease both}@keyframes toast-slide-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.toast-region{position:fixed;right:24px;bottom:24px;z-index:100;display:grid;gap:10px;width:min(360px,calc(100vw - 48px));pointer-events:none}.toast{display:flex;align-items:start;justify-content:space-between;gap:12px;padding:14px 16px;border-radius:var(--radius-md);background:var(--color-panel);border:1px solid var(--color-border);box-shadow:var(--shadow-panel);pointer-events:auto}.toast p{margin:0}.toast--success{border-color:color-mix(in srgb,var(--color-success) 40%,var(--color-border))}.toast--error{border-color:color-mix(in srgb,var(--color-danger) 40%,var(--color-border))}.toast-dismiss{flex-shrink:0}.undo-toast-region{position:fixed;right:24px;bottom:24px;z-index:110;width:min(420px,calc(100vw - 48px));pointer-events:auto}.undo-toast{align-items:center}.approval-toast{display:flex;flex-direction:column;gap:10px;padding:16px}.approval-toast-message{margin:0;font-size:.95rem;line-height:1.4}.approval-toast-queue-hint{color:var(--color-muted);font-size:.85rem}.approval-toast-actions{display:flex;gap:8px;flex-wrap:wrap}.approval-toast-btn{font-size:.85rem;padding:6px 14px}.primary-button.danger-button{background:var(--color-danger);border:none;color:#fff}.primary-button.danger-button:hover:not(:disabled){background:color-mix(in srgb,var(--color-danger) 88%,black)}.lock-bar{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}.lock-bar-actions{display:flex;gap:10px}.class-rule-panel{display:grid;gap:16px}.rule-entity-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:16px}.rule-entity-search{flex:1 1 240px;max-width:360px}.rule-entity-count{font-size:12px;color:var(--color-text-soft);white-space:nowrap}.rule-entity-list{display:grid;gap:12px;margin-top:12px}.rule-entity-row{display:grid;gap:14px;padding:16px;border:1px solid var(--color-border);border-radius:var(--radius-md, 14px);background:var(--color-panel-alt);transition:border-color .16s ease,box-shadow .16s ease}.rule-entity-row.is-editing{border-color:color-mix(in srgb,var(--color-accent) 55%,var(--color-border));box-shadow:0 0 0 1px color-mix(in srgb,var(--color-accent) 32%,transparent)}.rule-entity-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.rule-entity-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}.rule-entity-name{font-weight:700;font-size:16px}.rule-entity-meta{font-size:12px;color:var(--color-text-soft)}.rule-entity-badge{font-size:11px;font-weight:600;padding:2px 9px;border-radius:999px;background:color-mix(in srgb,var(--color-accent) 14%,transparent);color:var(--color-accent-strong, var(--color-accent));white-space:nowrap}.rule-entity-badge.is-muted{background:color-mix(in srgb,var(--color-text-soft) 16%,transparent);color:var(--color-text-soft)}.rule-entity-badge.is-info{background:color-mix(in srgb,var(--color-info) 16%,transparent);color:var(--color-info)}.rule-entity-values{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin:0}.rule-entity-metric{display:grid;gap:2px}.rule-entity-metric dt{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-soft);font-weight:600}.rule-entity-metric dd{margin:0;font-size:22px;font-weight:800;font-family:var(--font-display);font-variant-numeric:tabular-nums}.rule-entity-metric dd.is-empty{color:var(--color-text-soft);font-weight:600}.rule-entity-editor{display:grid;gap:14px;padding-top:4px}.rule-entity-editor .page-actions{margin-top:2px;justify-content:flex-start;gap:10px}.rule-entity-editor .page-actions .primary-button,.rule-entity-editor .page-actions .ghost-button{min-height:40px;padding:10px 16px;font-size:14px;font-weight:600}.rule-entity-editor .page-actions .ghost-button{background:var(--color-panel);border:1px solid var(--color-border)}.rule-entity-head .ghost-button{background:var(--color-panel);border:1px solid var(--color-border);font-size:13px;font-weight:600;padding:8px 14px}.rule-entity-empty{padding:24px;text-align:center;color:var(--color-text-soft);border:1px dashed var(--color-border);border-radius:var(--radius-md, 14px);margin-top:12px}.class-rule-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:16px}.class-rule-card{display:grid;gap:12px;padding:16px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-panel-alt)}.class-rule-card h3{margin:0}.class-rule-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:10px;margin:0}.class-rule-metrics div{display:grid;gap:4px;min-width:0}.class-rule-metrics dt{color:var(--color-text-soft);font-size:.78rem}.class-rule-metrics dd,.class-rule-lock-mode{margin:0;font-weight:800;color:var(--color-text)}.reason-chip-grid{display:flex;flex-wrap:wrap;gap:8px}.reason-chip.is-selected{background:color-mix(in srgb,var(--color-accent) 22%,var(--color-panel));border:1px solid color-mix(in srgb,var(--color-accent) 60%,var(--color-border))}.pass-freshness{margin-inline-start:auto}.pass-row--pending{background:color-mix(in srgb,var(--color-accent) 14%,var(--color-panel))}.pass-row--overdue{background:color-mix(in srgb,var(--color-danger) 10%,var(--color-panel))}.row-actions .primary-button,.row-actions .ghost-button{min-height:44px}.student-combobox,.student-picker{display:grid;gap:10px}.student-combobox-filters,.student-picker-filters{display:grid;grid-template-columns:1fr minmax(0,160px);gap:8px}.student-combobox-filters:has(>input:only-child),.student-picker-filters:has(>input:only-child){grid-template-columns:1fr}.text-input{width:100%;min-height:40px;border-radius:14px;border:1px solid var(--color-border);background:color-mix(in srgb,var(--color-panel-alt) 54%,var(--color-panel));padding:8px 14px;color:var(--color-text);font:inherit}.text-input:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px;border-color:var(--color-accent)}.text-input:disabled{opacity:.6;cursor:not-allowed}.student-picker-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.student-picker-count{margin:0;margin-inline-start:auto;font-size:13px;color:var(--color-text-soft)}.student-picker-meta{margin:0}.student-picker-list,.student-combobox-list{list-style:none;margin:0;padding:4px;background:var(--color-panel-alt);border:1px solid var(--color-border);border-radius:var(--radius-md);max-height:min(320px,45vh);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.student-picker-empty{padding:12px 14px}.student-picker-row,.student-combobox-option{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;padding:10px 12px;border:none;border-radius:var(--radius-sm);background:transparent;cursor:pointer}.student-picker-name{font-weight:600}.student-picker-row .student-picker-name{flex:1 1 auto;min-width:0}.student-picker-credit{flex:0 0 auto;font-size:13px;color:var(--color-text-soft);white-space:nowrap}.student-picker-grade{flex:0 0 auto;font-size:13px;color:var(--color-text-soft)}.student-picker-row:hover,.student-combobox-option:hover{background:color-mix(in srgb,var(--color-brand) 10%,var(--color-panel))}.student-picker-row.is-selected,.student-picker-row[aria-selected=true],.student-combobox-option[aria-selected=true]{background:color-mix(in srgb,var(--color-accent) 16%,var(--color-panel));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--color-accent) 45%,var(--color-border))}.student-picker-row.is-selected .student-picker-name{color:var(--color-accent-strong)}.destination-tiles-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px}.destination-tile{min-height:108px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:8px;padding:12px 10px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-panel-alt);cursor:pointer;text-align:center}.destination-tile-icon{flex:0 0 auto}.destination-tile-icon .destination-icon__badge{border-radius:18px}.destination-tile.is-selected .destination-icon__badge{box-shadow:0 0 0 2px color-mix(in srgb,var(--color-brand) 35%,white),0 6px 16px color-mix(in srgb,var(--color-brand) 18%,transparent)}.destination-tile.is-selected{border-color:var(--color-brand);background:color-mix(in srgb,var(--color-brand) 12%,var(--color-panel));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--color-brand) 35%,var(--color-border))}.destination-tile-name{font-weight:600;font-size:.92rem;line-height:1.25;width:100%}.destination-tile-meta{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;width:100%}.destination-tile-meta .status-mode{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;border:1px solid var(--status-mode-border);font-size:.72rem;font-weight:700}.destination-tile-duration{font-size:.72rem;color:var(--color-text-soft)}.lock-bar-config{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}.explorer-controls{display:grid;gap:12px;padding:16px 0}.explorer-filter-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.explorer-column-toggle{display:flex;flex-wrap:wrap;gap:8px}.checkbox-label{display:inline-flex;align-items:center;gap:6px;font-size:14px;color:var(--color-text-soft);cursor:pointer}.checkbox-label input[type=checkbox]{accent-color:var(--color-accent)}.explorer-total{font-weight:700;color:var(--color-text-soft);font-size:14px;padding:8px 0}.filter-chips{display:flex;flex-wrap:wrap;gap:8px}.filter-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:color-mix(in srgb,var(--color-accent) 14%,var(--color-panel));border:1px solid color-mix(in srgb,var(--color-accent) 40%,var(--color-border));font-size:13px;animation:chip-enter .18s ease both}.filter-chip-label{font-weight:600}.filter-chip-remove{border:none;background:transparent;color:var(--color-text-soft);cursor:pointer;font-size:16px;line-height:1;padding:0}.live-lanes{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.live-lane-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.live-lane-list{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:10px}.live-lane-card{display:flex;justify-content:space-between;gap:12px;padding:12px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-panel-alt)}.live-lane--overdue .live-lane-card--overdue{border-color:color-mix(in srgb,var(--color-danger) 45%,var(--color-border));animation:overdue-pulse 1.8s ease-in-out infinite}@keyframes overdue-pulse{0%,to{box-shadow:0 0 color-mix(in srgb,var(--color-danger) 40%,transparent)}50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--color-danger) 0%,transparent)}}.is-urgent:before{content:"";position:absolute;top:12px;right:12px;width:12px;height:12px;border-radius:50%;background:var(--color-danger);animation:radar-ping 2s ease-out infinite}@keyframes radar-ping{0%{box-shadow:0 0 color-mix(in srgb,var(--color-danger) 60%,transparent)}70%{box-shadow:0 0 0 14px color-mix(in srgb,var(--color-danger) 0%,transparent)}to{box-shadow:0 0 color-mix(in srgb,var(--color-danger) 0%,transparent)}}.live-overdue-chip{display:inline-flex;align-items:center;padding:4px 12px;border-radius:999px;border:1px solid var(--status-mode-border);font-weight:700;font-size:.85rem}.live-connection.is-online{color:var(--color-success)}.live-connection.is-offline{color:var(--color-danger)}.wallboard{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;overflow:auto;padding:clamp(20px,4vw,56px);background:var(--color-bg);color:var(--color-text);font-size:clamp(1rem,1.4vw,1.5rem)}.wallboard-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:clamp(16px,3vw,40px)}.wallboard-header h1{font-size:clamp(2rem,4vw,3.5rem);margin:0}.wallboard-header-actions{display:flex;align-items:center;gap:16px}.wallboard-overdue{display:inline-flex;align-items:center;padding:8px 20px;border-radius:999px;border:1px solid var(--status-mode-border);font-weight:800;font-size:clamp(1.1rem,2vw,1.8rem)}.wallboard-body .live-lane-card{padding:clamp(12px,1.5vw,22px);font-size:clamp(1rem,1.4vw,1.4rem)}@media(prefers-reduced-motion:reduce){.live-lane--overdue .live-lane-card--overdue{animation:none}}.status-badge-glyph{font-weight:700}.theme-toggle{min-width:44px;min-height:44px}@media(prefers-reduced-motion:reduce){.live-lane-card--overdue{animation:none}}@media(max-width:960px){.placeholder-hero,.placeholder-grid,.placeholder-card-grid{grid-template-columns:1fr}}@media(max-width:640px){.admin-card-grid,.destination-card-grid,.department-card-grid{grid-template-columns:1fr}.destination-card .row-actions,.admin-card .row-actions{flex-direction:column;align-items:stretch}.destination-card .row-actions .ghost-button,.admin-card .row-actions .ghost-button{text-align:center;justify-content:center}.modal-card{width:100%;max-height:100dvh;border-radius:0}.panel{padding:14px}.form-grid,.class-rule-grid,.effective-rules-grid{grid-template-columns:1fr}.pass-view-tabs{gap:0;padding:0}.pass-view-tabs .ghost-button{padding:10px 12px;font-size:13px;flex:1 1 auto;text-align:center}.lock-bar-actions{flex-wrap:wrap}.lock-bar-actions button{flex:1 1 auto;min-width:0}.page-actions{flex-wrap:wrap}.page-actions button{flex:1 1 auto;min-width:0}}@media(max-width:520px){.pass-stats-grid{grid-template-columns:1fr}.topbar-user-name{font-size:22px}.notification-panel{position:fixed;top:auto;right:16px;left:16px;bottom:16px;width:auto;max-height:min(60vh,420px)}}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}@keyframes live-online-pulse{0%,to{box-shadow:0 0 color-mix(in srgb,var(--color-success) 60%,transparent)}50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--color-success) 0%,transparent)}}@keyframes slide-in-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes stagger-fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes press-bounce{0%{transform:scale(1)}50%{transform:scale(.94)}to{transform:scale(1)}}@keyframes glow-pulse{0%,to{box-shadow:0 0 0 0 var(--color-accent-glow)}50%{box-shadow:0 0 0 8px transparent}}.stagger>*{animation:stagger-fade .35s var(--ease-out) both}.stagger>*:nth-child(1){animation-delay:.04s}.stagger>*:nth-child(2){animation-delay:.08s}.stagger>*:nth-child(3){animation-delay:.12s}.stagger>*:nth-child(4){animation-delay:.16s}.stagger>*:nth-child(5){animation-delay:.2s}.stagger>*:nth-child(6){animation-delay:.24s}.stagger>*:nth-child(7){animation-delay:.28s}.stagger>*:nth-child(8){animation-delay:.32s}@media(prefers-reduced-motion:reduce){.stagger>*,.slide-in,.scale-in,.pulse-dot,.urgency-pulse,.live-online-dot{animation:none!important}}.scale-in{animation:scale-in .2s var(--ease-out) both}.press-on-active:active{animation:press-bounce .18s var(--ease-spring)}.live-lane-card-body{display:grid;grid-template-columns:24px 1fr auto;gap:10px;align-items:center;min-width:0}.live-lane-avatar{width:24px;height:24px;border-radius:999px;display:grid;place-items:center;background:var(--color-accent-glow);color:var(--color-accent-strong);font-size:10px;font-weight:800;flex:0 0 auto}.live-lane-card-text{min-width:0}.live-lane-card-text strong{display:block;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-lane-card-text p{margin:0;font-size:12px;color:var(--color-text-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-lane-elapsed{font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--color-text-soft)}.live-lane-card-timer{display:grid;justify-items:end;gap:4px}.live-lane-elapsed-hero{font-family:var(--font-mono);font-size:20px;font-weight:800;line-height:1;letter-spacing:-.01em;color:var(--color-text)}.live-lane-elapsed-hero--warning{color:var(--color-accent-strong)}.live-lane-elapsed-hero--overdue{color:var(--color-danger)}.live-lane-card--warning{border-color:color-mix(in srgb,var(--color-accent) 50%,var(--color-border));border-left:3px solid var(--color-accent)}.live-lane-card--overdue{border-left:3px solid var(--color-danger)}.live-lane-close{font-size:12px;padding:4px 10px;min-height:0}.live-online-dot{position:relative;display:inline-block;width:8px;height:8px;border-radius:999px;background:var(--color-success)}.live-online-dot:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:var(--color-success);animation:live-online-pulse 1.6s ease-in-out infinite;z-index:-1}.custom-report-table tbody tr{transition:background-color var(--transition-fast, .15s ease)}.custom-report-table tbody tr:hover{background:color-mix(in srgb,var(--color-accent) 8%,var(--color-panel))}.custom-report-table th{text-transform:uppercase;font-size:11px;letter-spacing:.06em;padding:10px 12px}.custom-report-table td{font-size:14px}.table-sort-button{display:inline-flex;align-items:center;gap:4px}.table-sort-button:after{content:"";width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid currentColor;opacity:.3;transition:opacity .15s ease}.table-sort-button.is-asc:after{border-top:0;border-bottom:5px solid currentColor;opacity:1}.table-sort-button.is-desc:after{opacity:1}.pass-view-tabs{position:relative;border-bottom:2px solid var(--color-border);background:var(--color-panel);border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:4px 8px 0;margin-bottom:-2px;display:flex;flex-wrap:wrap;gap:2px}.pass-view-tabs .ghost-button{border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:transparent;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;padding:10px 18px;color:var(--color-text-soft);font-weight:600;font-size:14px;position:relative;transition:color var(--transition-fast, .15s ease),background var(--transition-fast)}.pass-view-tabs .ghost-button:hover{color:var(--color-text);background:color-mix(in srgb,var(--color-accent) 6%,transparent)}.pass-view-tabs .is-active-tab{color:var(--color-text);background:color-mix(in srgb,var(--color-accent) 8%,var(--color-panel));border-bottom-color:var(--color-accent)}.pass-view-tabs .is-active-tab:after{display:none}.class-rule-card{transition:transform var(--transition-fast, .15s ease),border-color .2s ease}.class-rule-card:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--color-accent) 38%,var(--color-border))}.class-rule-metrics dt{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-soft)}.user-list-row,.department-list-row{position:relative;transition:transform var(--transition-fast, .15s ease),border-color .2s ease,box-shadow .2s ease}.user-list-row:hover,.department-list-row:hover{transform:translateY(-1px);box-shadow:var(--shadow-card-hover)}.user-list-row:before,.department-list-row:before{content:"";position:absolute;inset-inline-start:0;top:16px;bottom:16px;width:3px;border-radius:0 3px 3px 0;background:transparent;transition:background .2s ease}.user-list-row:hover:before,.department-list-row:hover:before{background:var(--color-accent)}.destination-type-icon{transition:transform var(--transition-fast, .15s ease)}.destination-card:hover .destination-type-icon{transform:rotate(-4deg) scale(1.05)}.page-shell>*{animation:slide-in-up .4s var(--ease-out) both}.page-shell>*:nth-child(1){animation-delay:0s}.page-shell>*:nth-child(2){animation-delay:.06s}.page-shell>*:nth-child(3){animation-delay:.12s}.page-shell>*:nth-child(4){animation-delay:.18s}.page-shell>*:nth-child(5){animation-delay:.24s}@media(prefers-reduced-motion:reduce){.page-shell>*{animation:none}}.sidebar{background:var(--color-brand)}.sidebar-link{transition:background .2s var(--ease-out),color .2s var(--ease-out),transform .15s ease}.sidebar-link:active{transform:scale(.97)}.sidebar-pill{transition:opacity .22s var(--ease-out),transform .22s var(--ease-out)}.sidebar-badge{transition:transform .2s var(--ease-spring)}.sidebar-link:hover .sidebar-badge{transform:scale(1.1)}.sidebar-toggle{transition:transform .25s var(--ease-out)}.sidebar-toggle:hover{transform:rotate(180deg)}.sidebar.is-collapsed .sidebar-toggle:hover{transform:rotate(-180deg)}.rule-source-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;border:1px solid var(--color-border);background:var(--color-panel-alt);color:var(--color-text-soft);line-height:1.4;white-space:nowrap}.rule-source-badge--sm{font-size:10px;padding:2px 6px}.rule-source-icon{font-size:12px;line-height:1}.rule-source-badge--department{background:color-mix(in srgb,var(--color-info, #3b82f6) 10%,var(--color-panel));border-color:color-mix(in srgb,var(--color-info, #3b82f6) 30%,var(--color-border));color:color-mix(in srgb,var(--color-info, #3b82f6) 80%,var(--color-text))}.rule-source-badge--override{background:color-mix(in srgb,var(--color-accent) 12%,var(--color-panel));border-color:color-mix(in srgb,var(--color-accent) 38%,var(--color-border));color:var(--color-accent-strong, #3F73B6)}.rule-source-badge--template{background:color-mix(in srgb,var(--color-success) 10%,var(--color-panel));border-color:color-mix(in srgb,var(--color-success) 28%,var(--color-border));color:var(--color-success)}.rule-source-badge--destination{background:color-mix(in srgb,#8b5cf6 10%,var(--color-panel));border-color:color-mix(in srgb,#8b5cf6 28%,var(--color-border));color:#6d28d9}.rule-source-badge--system{background:var(--color-panel-alt);color:var(--color-text-soft)}.effective-rules-dashboard{display:grid;gap:12px}.effective-rules-dashboard-header h3{margin:0;font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-soft)}.effective-rules-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr));gap:12px}.effective-metric-card{display:grid;gap:8px;padding:16px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-panel);position:relative;transition:transform var(--transition-fast, .15s ease),border-color .2s ease,box-shadow .2s ease}.effective-metric-card:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;border-radius:3px 0 0 3px;background:transparent;transition:background .2s ease}.effective-metric-card.is-amber:before{background:var(--color-accent)}.effective-metric-card.is-rose:before{background:var(--color-danger)}.effective-metric-card.is-sky:before{background:var(--color-info, #3b82f6)}.effective-metric-card:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--color-accent) 38%,var(--color-border));box-shadow:var(--shadow-card-hover)}.effective-metric-head{display:flex;align-items:center;gap:6px}.effective-metric-icon{font-size:14px;line-height:1}.effective-metric-label{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-soft);font-weight:700}.effective-metric-value{display:flex;align-items:baseline;gap:4px}.effective-metric-number{font-family:var(--font-mono);font-size:32px;font-weight:700;line-height:1;letter-spacing:-.02em;color:var(--color-text);font-variant-numeric:tabular-nums}.effective-metric-number.is-empty{color:var(--color-text-soft);opacity:.4}.effective-metric-unit{font-size:13px;font-weight:600;color:var(--color-text-soft)}.effective-metric-foot{display:flex;align-items:center;min-height:22px}.approval-mode-card{display:grid;gap:10px;padding:20px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-panel);position:relative;overflow:hidden}.approval-mode-card--auto{border-color:color-mix(in srgb,var(--color-success) 38%,var(--color-border));background:color-mix(in srgb,var(--color-success) 6%,var(--color-panel))}.approval-mode-card--manual{border-color:color-mix(in srgb,var(--color-accent) 48%,var(--color-border));background:color-mix(in srgb,var(--color-accent) 8%,var(--color-panel))}.approval-mode-card--rules{border-color:color-mix(in srgb,var(--color-info) 42%,var(--color-border));background:color-mix(in srgb,var(--color-info) 7%,var(--color-panel))}.approval-mode-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.approval-mode-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-soft);font-weight:700}.approval-mode-dot{width:10px;height:10px;border-radius:999px}.approval-mode-dot.is-auto{background:var(--color-success);box-shadow:0 0 0 4px color-mix(in srgb,var(--color-success) 18%,transparent)}.approval-mode-dot.is-manual{background:var(--color-accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--color-accent) 18%,transparent);animation:pulse-dot 1.6s ease-in-out infinite}.approval-mode-dot.is-rules{background:var(--color-info);box-shadow:0 0 0 4px color-mix(in srgb,var(--color-info) 18%,transparent)}.approval-mode-state{font-family:var(--font-display);font-size:24px;font-weight:800;letter-spacing:-.01em;line-height:1.1}.approval-mode-card--auto .approval-mode-state{color:var(--color-success)}.approval-mode-card--manual .approval-mode-state{color:var(--color-accent-strong, #3F73B6)}.approval-mode-card--rules .approval-mode-state{color:var(--color-info)}.approval-mode-help{margin:0;color:var(--color-text-soft);font-size:13px;line-height:1.5}.approval-mode-footer{display:flex;align-items:center;padding-top:8px;border-top:1px solid color-mix(in srgb,var(--color-border) 60%,transparent)}.approval-mode-approver{font-size:12px;font-weight:600;color:var(--color-text-soft)}.approval-mode-locked-hint{margin:0;font-size:12px;color:var(--color-text-soft);padding:8px 10px;background:var(--color-panel-alt);border-radius:var(--radius-sm)}.class-rule-card--wide{grid-column:1 / -1}.templates-toolbar{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:16px}.templates-toolbar .table-search{flex:1;min-width:200px}.template-card-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}.template-card{display:flex;flex-direction:column;gap:10px;padding:16px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-panel)}.template-card.is-inactive{opacity:.6;border-style:dashed}.template-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.template-card-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.template-active-toggle{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--color-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.template-inactive-badge{margin-inline-start:8px;padding:1px 8px;border-radius:var(--radius-sm);background:var(--color-border);color:var(--color-text-muted);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.02em}.template-card-name{font-size:15px;font-weight:600;color:var(--color-text);margin:0}.template-rule-summary{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.template-rule-chip{display:flex;align-items:center;gap:8px;padding:5px 10px;background:var(--color-panel-alt);border-radius:var(--radius-sm);font-size:13px}.template-rule-chip-label{flex:1;color:var(--color-text-soft)}.template-rule-chip-value{font-weight:600;font-variant-numeric:tabular-nums;color:var(--color-text)}.template-rule-chip-dest{font-size:11px;font-weight:500;padding:1px 6px;border-radius:4px;background:color-mix(in srgb,var(--color-accent) 14%,var(--color-panel));border:1px solid color-mix(in srgb,var(--color-accent) 30%,var(--color-border));color:var(--color-text);white-space:nowrap}.template-rule-row{display:grid;grid-template-columns:1fr 100px 1fr auto;gap:10px;align-items:end;padding:10px;background:var(--color-panel-alt);border-radius:var(--radius-sm);border:1px solid var(--color-border)}.template-rule-row.is-invalid{border-color:var(--color-danger);box-shadow:0 0 0 1px var(--color-danger)}.template-assign-preview{display:flex;flex-direction:column;gap:8px;padding:12px;background:var(--color-panel-alt);border-radius:var(--radius-sm);border:1px solid var(--color-border);margin-bottom:12px}.class-rule-template-hint{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding-top:14px;border-top:1px solid var(--color-border);margin-top:12px}.class-rule-template-hint .helper-text{flex:1 1 220px;margin:0}.class-rule-template-hint .ghost-button{flex-shrink:0;white-space:nowrap;font-weight:600;color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 12%,transparent);border-color:color-mix(in srgb,var(--color-accent) 45%,var(--color-border))}.class-rule-template-hint .ghost-button:hover{color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 20%,transparent);border-color:var(--color-accent)}.class-rule-notice{display:flex;flex-direction:column;align-items:center;gap:14px;max-width:520px;margin:0 auto;padding:40px 28px;text-align:center}.class-rule-notice-badge{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:999px;background:color-mix(in srgb,var(--color-accent) 16%,transparent);color:var(--color-accent);font-size:28px;font-weight:800;line-height:1}.class-rule-notice h2{margin:0;font-size:20px}.class-rule-notice p{margin:0;color:var(--color-text-soft);line-height:1.55}.class-rule-notice .primary-button{margin-top:4px;text-decoration:none}.template-assigned-section{display:flex;flex-direction:column;gap:6px;padding-top:10px;border-top:1px solid var(--color-border)}.template-card-section{display:flex;flex-direction:column;gap:6px}.template-assignee-name{flex:1}.tag-input-group-label{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-soft);padding:0 4px;margin-top:2px;line-height:1.4}.tag-input-divider{border:none;border-top:1px solid var(--color-border);margin:4px 0 2px}.approver-tag.class-chip{background:color-mix(in srgb,var(--color-text-soft) 8%,var(--color-panel));border-color:color-mix(in srgb,var(--color-text-soft) 20%,var(--color-border));font-weight:400}.tag-chip-teacher{font-size:11px;color:var(--color-text-soft);flex-shrink:0}.reports-toolbar{display:grid;gap:12px;border-left:3px solid var(--color-accent);background:color-mix(in srgb,var(--color-accent) 3%,var(--color-panel));position:relative;z-index:20}.reports-toolbar-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.reports-toolbar-search,.reports-toolbar-student{flex:1 1 220px;min-width:180px}.reports-toolbar-search input{width:100%}.reports-toolbar-select{min-height:40px;padding:8px 12px;border-radius:var(--radius-md, 10px);border:1px solid var(--color-border);background:var(--color-panel);color:var(--color-text);font-size:14px}.reports-toolbar-date{min-width:0}.reports-toolbar-date input{min-height:40px}.reports-toolbar-toggle{position:relative;display:inline-flex;align-items:center;gap:8px;min-height:40px}.reports-toolbar-toggle.is-active{border-color:var(--color-accent);color:var(--color-text);background:color-mix(in srgb,var(--color-accent) 10%,transparent)}.reports-toolbar-dot{width:7px;height:7px;border-radius:50%;background:var(--color-accent)}.reports-advanced-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding-top:4px;border-top:1px dashed var(--color-border)}.reports-column-toggle{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px 24px;padding-top:12px;border-top:1px dashed var(--color-border)}.reports-column-toggle-group{display:grid;gap:8px;align-content:start}.reports-column-toggle-group h4{margin:0;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-soft)}.reports-explorer-scroll{max-width:100%;overflow-x:auto}.reports-explorer-table{width:max-content;min-width:100%}.reports-explorer-table th,.reports-explorer-table td{padding:14px 12px;vertical-align:middle}.reports-explorer-table th{white-space:nowrap;font-size:14px}.reports-explorer-table td[data-column=student_grade],.reports-explorer-table th[data-column=student_grade],.reports-explorer-table td[data-column=duration_min],.reports-explorer-table td[data-column=requested_at]{white-space:nowrap}.reports-explorer-table th[data-column=status],.reports-explorer-table td[data-column=status]{min-width:100px}.reports-explorer-table th[data-column=was_overdue],.reports-explorer-table td[data-column=was_overdue]{min-width:120px}.reports-explorer-table .reports-col-right{text-align:right;white-space:nowrap}.reports-explorer-table th.reports-col-right{text-align:right}.reports-explorer-table td.reports-col-right .status-badge{display:inline-flex}.reports-explorer-table td[data-column=student_id],.reports-explorer-table th[data-column=student_id]{min-width:288px}.reports-cell-id{display:inline-block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13px;color:var(--color-text-soft);line-height:1.4;white-space:nowrap}.reports-explorer-table td[data-column=requested_by],.reports-explorer-table td[data-column=actioned_by],.reports-explorer-table td[data-column=closed_by],.reports-explorer-table th[data-column=requested_by],.reports-explorer-table th[data-column=actioned_by],.reports-explorer-table th[data-column=closed_by]{min-width:152px}.reports-accountability-value{display:grid;gap:2px;font-size:14px;line-height:1.35;min-width:0}.reports-accountability-value-name{font-weight:500;word-break:break-word}.reports-accountability-value-role{font-size:13px;color:var(--color-text-soft);word-break:break-word}.reports-accountability-value.is-token,.reports-accountability-value.is-empty{color:var(--color-text-soft);display:block}.reports-cell-truncate{display:inline-block;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}.reports-cell-muted{color:var(--color-text-soft)}.reports-cell-compact{white-space:nowrap;font-variant-numeric:tabular-nums}.reports-cell-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13px;color:var(--color-text-soft);white-space:nowrap}.reports-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.metric-card--kpi{display:flex;align-items:center;gap:16px}.metric-card--kpi>div{display:grid;gap:4px;min-width:0}.metric-card--kpi strong{font-family:inherit;font-size:22px;line-height:1.15;letter-spacing:-.01em;overflow-wrap:anywhere}.metric-card--kpi em{font-style:normal;font-size:12px;color:var(--color-text-soft)}.metric-card-icon{flex-shrink:0;width:48px;height:48px;border-radius:var(--radius-md, 12px);background:color-mix(in srgb,var(--color-accent) 18%,transparent);position:relative}.metric-card-icon:after{content:"";position:absolute;top:14px;right:14px;bottom:14px;left:14px;border-radius:5px;background:var(--color-accent);opacity:.85}.metric-card-icon--amber{background:color-mix(in srgb,var(--color-accent) 18%,transparent)}.metric-card-icon--amber:after{background:var(--color-accent)}.metric-card-icon--blue{background:color-mix(in srgb,var(--color-info) 18%,transparent)}.metric-card-icon--blue:after{background:var(--color-info)}.metric-card-icon--violet{background:color-mix(in srgb,#8b5cf6 18%,transparent)}.metric-card-icon--violet:after{background:#8b5cf6}.metric-card-icon--red{background:color-mix(in srgb,var(--color-danger) 18%,transparent)}.metric-card-icon--red:after{background:var(--color-danger)}.student-filter-combobox{position:relative;width:100%}.student-filter-combobox-field{position:relative;display:flex;align-items:center}.student-filter-combobox-field .text-input{width:100%;min-height:40px;padding-right:34px}.student-filter-combobox-field .text-input:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px;border-color:var(--color-accent)}.student-filter-combobox-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:transparent;color:var(--color-text-soft);font-size:18px;line-height:1;cursor:pointer;transition:background var(--transition-fast, .15s ease),color var(--transition-fast, .15s ease)}.student-filter-combobox-clear:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.student-filter-combobox-clear:hover{background:color-mix(in srgb,var(--color-danger) 16%,transparent);color:var(--color-danger)}.student-filter-combobox-list{position:absolute;z-index:40;top:calc(100% + 4px);left:0;right:0;margin:0;padding:4px;list-style:none;max-height:280px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;background:var(--color-panel);border:1px solid var(--color-border);border-radius:var(--radius-md, 10px);box-shadow:var(--shadow-hover, 0 12px 32px rgba(0, 0, 0, .28));animation:chip-enter .14s ease both}.student-filter-combobox-empty{padding:10px 12px;color:var(--color-text-soft)}.student-filter-combobox-option{width:100%;text-align:left;padding:9px 12px;border:none;border-radius:var(--radius-sm, 8px);background:transparent;color:var(--color-text);font-size:14px;cursor:pointer;transition:background var(--transition-fast, .15s ease)}.student-filter-combobox-option:hover,.student-filter-combobox-option.is-active{background:color-mix(in srgb,var(--color-accent) 12%,transparent)}.student-filter-combobox-option.is-active{box-shadow:inset 3px 0 0 var(--color-accent)}.student-filter-combobox-option:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.student-filter-combobox-option[aria-selected=true]{background:color-mix(in srgb,var(--color-accent) 18%,transparent);font-weight:600}.student-filter-combobox-match{background:transparent;color:var(--color-accent);font-weight:700}.reports-tabs{margin-bottom:0}@media(max-width:640px){.reports-toolbar-row{gap:8px}.reports-toolbar-search{flex-basis:100%}.student-filter-combobox-field .text-input{min-height:44px}.student-filter-combobox-clear{width:32px;height:32px}.student-filter-combobox-option{min-height:44px;padding:12px}}.credits-destination-limits{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:2px;font-size:.85em}.credits-destination-limits li{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.credits-destination-limits li.is-binding{font-weight:600}.credits-destination-limits li .rule-source-badge{font-weight:400}.watchlist-panel .role-list,.recent-passes-panel .role-list{gap:0}.watchlist-panel .role-list-row,.recent-passes-panel .role-list-row{grid-template-columns:1fr auto;gap:16px;background:transparent;border:none;border-bottom:1px solid var(--color-border);border-radius:0;box-shadow:none;padding:12px 0;margin:0;transition:background-color .2s ease}.watchlist-panel .role-list-row:last-child,.recent-passes-panel .role-list-row:last-child{border-bottom:none}.watchlist-panel .role-list-row:hover,.recent-passes-panel .role-list-row:hover{background:color-mix(in srgb,var(--color-accent) 4%,transparent);box-shadow:none;border-color:var(--color-border)}.watchlist-panel .role-list-main,.recent-passes-panel .role-list-main{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0}.watchlist-panel .role-list-main h2,.recent-passes-panel .role-list-main h2{font-size:16px;font-weight:700;line-height:1.3;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%}.watchlist-panel .role-list-main .helper-text,.recent-passes-panel .role-list-main .helper-text{font-size:13px;line-height:1.3;color:var(--color-text-soft);text-align:left}.watchlist-panel .role-list-meta,.recent-passes-panel .role-list-meta{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;text-align:right;gap:4px;font-size:13px;font-weight:500;white-space:nowrap;color:var(--color-text-soft)}.watchlist-panel .role-list-meta span:first-child,.recent-passes-panel .role-list-meta span:first-child{font-weight:700;color:var(--color-text)}.watchlist-panel .role-list-meta span:last-child,.recent-passes-panel .role-list-meta span:last-child{color:var(--color-text-soft);font-size:12px;font-weight:500}.watchlist-filter-bar{padding:16px;border-radius:var(--radius-lg);border-left:3px solid var(--color-accent);background:color-mix(in srgb,var(--color-accent) 6%,var(--color-panel-alt));margin-bottom:20px}
