.access-toast{position:fixed;right:20px;bottom:20px;z-index:60;display:flex;align-items:center;gap:10px;max-width:360px;padding:12px 16px;border-radius:var(--radius-md);background:var(--ink);color:#fff;box-shadow:var(--shadow-lg);font-size:14px;animation:access-toast-in .2s ease}.access-toast svg{color:var(--teal-bright);flex:0 0 auto}@keyframes access-toast-in{0%{opacity:0;transform:translateY(8px)}}@media(prefers-reduced-motion:reduce){.access-toast{animation:none}}@media(max-width:640px){.access-toast{left:16px;right:16px;bottom:76px;max-width:none}}.cal-page{--cal-line: var(--border);--cal-soft: color-mix(in srgb, var(--surface) 92%, var(--canvas));gap:18px}.cal-page button:where(:not(.dialog *)){background:var(--b-bg, transparent);color:var(--b-fg, inherit);border:var(--b-border, 0);min-height:var(--b-h, 0);padding:var(--b-pad, 0);border-radius:var(--b-r, 0);font-weight:var(--b-w, inherit);box-shadow:var(--b-shadow, none);display:inline-flex;align-items:center;gap:6px;text-align:left}.cal-page button:where(:not(.dialog *)):hover:not(:disabled){background:var(--b-bg-hover, var(--b-bg, transparent));color:var(--b-fg-hover, var(--b-fg, inherit))}.cal-page button:where(:not(.dialog *)):focus-visible{outline:2px solid var(--signal);outline-offset:2px}.cal-page .cal-primary-btn{--b-bg: linear-gradient(135deg, var(--signal), var(--signal-deep));--b-bg-hover: linear-gradient(135deg, var(--signal-deep), var(--signal-deep));--b-fg: #fff;--b-h: 42px;--b-pad: 0 18px;--b-r: 12px;--b-w: 700;--b-shadow: 0 8px 20px color-mix(in srgb, var(--signal) 32%, transparent);white-space:nowrap}.cal-page .cal-primary-btn.is-success{--b-bg: linear-gradient(135deg, #12a594, #0a6b62);--b-bg-hover: #0a6b62;--b-shadow: 0 8px 20px rgba(18, 165, 148, .3)}.cal-page .cal-ghost-btn{--b-bg: var(--surface);--b-bg-hover: var(--signal-soft);--b-fg: var(--text-primary);--b-border: 1px solid var(--border-strong);--b-h: 40px;--b-pad: 0 14px;--b-r: 12px;--b-w: 600;white-space:nowrap}.cal-page .cal-ghost-btn.is-danger{--b-fg: var(--coral-text);--b-bg-hover: var(--coral-soft)}.cal-page .cal-icon-btn{--b-bg: var(--surface);--b-bg-hover: var(--signal-soft);--b-border: 1px solid var(--border);--b-h: 38px;--b-r: 11px;width:38px;justify-content:center}.cal-page .cal-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;padding:30px 32px;border-radius:var(--radius-xl);color:#fff;background:radial-gradient(1200px 400px at 110% -20%,color-mix(in srgb,var(--signal) 55%,transparent),transparent 60%),radial-gradient(600px 300px at -10% 120%,rgba(25,194,177,.35),transparent 60%),linear-gradient(135deg,var(--ink) 0%,var(--ink-raised) 55%,#1a2a6b 100%);box-shadow:var(--shadow-lg);isolation:isolate}.cal-page .cal-hero-glow{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:linear-gradient(120deg,transparent 20%,#000 70%);mask-image:linear-gradient(120deg,transparent 20%,#000 70%)}.cal-page .cal-kicker{display:inline-flex;align-items:center;gap:8px;margin:0;padding:5px 12px;border-radius:999px;background:#ffffff1a;border:1px solid rgba(255,255,255,.16);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--teal-bright)}.cal-page .cal-hero-title{margin:14px 0 6px;font-family:var(--font-display);font-size:clamp(30px,4vw,44px);font-weight:800;letter-spacing:-.035em;line-height:1.02}.cal-page .cal-hero-sub{margin:0;max-width:62ch;color:var(--ink-soft);font-size:15px}.cal-page .cal-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:22px}.cal-page .cal-stat{position:relative;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:center;padding:14px 16px;border-radius:16px;background:#ffffff12;border:1px solid rgba(255,255,255,.12);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:cal-rise .42s ease both}.cal-page .cal-stat:nth-child(2){animation-delay:60ms}.cal-page .cal-stat:nth-child(3){animation-delay:.12s}.cal-page .cal-stat:nth-child(4){animation-delay:.18s}.cal-page .cal-stat-icon{grid-row:span 2;display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--tone);color:#fff;box-shadow:0 6px 18px color-mix(in srgb,var(--tone) 45%,transparent)}.cal-page .cal-stat.tone-blue{--tone: #4f7cff}.cal-page .cal-stat.tone-teal{--tone: #12a594}.cal-page .cal-stat.tone-violet{--tone: #8e4ec6}.cal-page .cal-stat.tone-amber{--tone: #f59e0b}.cal-page .cal-stat-value{font-family:var(--font-display);font-size:26px;font-weight:800;line-height:1}.cal-page .cal-stat-label{font-size:12.5px;color:var(--ink-soft)}.cal-page .cal-stat-hint{position:absolute;top:-9px;right:10px;padding:2px 8px;border-radius:999px;background:#ff5a6e38;color:#ffc2ca;font-size:11px;font-weight:700}.cal-page .cal-hero-side{display:grid;gap:12px;align-content:start;width:260px}.cal-page .cal-today{display:grid;justify-items:center;padding:14px 18px 16px;border-radius:20px;background:#fff;color:var(--ink);box-shadow:0 18px 40px #00000059;transform:rotate(-2deg);animation:cal-pop .52s cubic-bezier(.2,1.4,.4,1) both}.cal-page .cal-today-month{width:100%;margin:-14px -18px 6px;padding:6px 0;border-radius:20px 20px 0 0;background:linear-gradient(135deg,#ff5a6e,#d42a40);color:#fff;text-align:center;font-size:12px;font-weight:800;letter-spacing:.18em;box-sizing:content-box;padding-inline:18px}.cal-page .cal-today-day{font-family:var(--font-display);font-size:56px;font-weight:800;line-height:1;letter-spacing:-.04em}.cal-page .cal-today-weekday{font-size:13px;font-weight:600;color:#556079}.cal-page .cal-next{--b-bg: rgba(255, 255, 255, .08);--b-bg-hover: rgba(255, 255, 255, .14);--b-border: 1px solid rgba(255, 255, 255, .16);--b-pad: 12px 14px;--b-r: 16px;--b-fg: #fff;display:grid;gap:4px;width:100%;cursor:pointer}.cal-page .cal-next.is-empty{padding:12px 14px;border-radius:16px;border:1px dashed rgba(255,255,255,.2)}.cal-page .cal-next-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--teal-bright)}.cal-page .cal-next-title{display:flex;align-items:center;gap:8px;font-weight:700;font-size:15px;line-height:1.3}.cal-page .cal-next-meta{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ink-soft)}.cal-page .cal-principal-note{display:flex;align-items:flex-start;gap:10px;padding:12px 16px;border-radius:14px;background:linear-gradient(90deg,color-mix(in srgb,#2ee6a6 16%,var(--surface)),var(--surface));border:1px solid color-mix(in srgb,#2ee6a6 40%,var(--border));color:var(--text-primary);font-size:14px}.cal-page .cal-principal-note svg{flex:none;margin-top:2px;color:#0a8f66}.cal-page .cal-toast{position:fixed;left:50%;bottom:28px;z-index:90;transform:translate(-50%);padding:12px 20px;border-radius:999px;background:var(--ink);color:#fff;font-weight:600;box-shadow:var(--shadow-lg);animation:cal-toast 3.5s ease both}.cal-page .cal-toolbar{display:grid;gap:12px;padding:14px 16px;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);position:sticky;top:calc(var(--header-height) + 8px);z-index:20}.cal-page .cal-toolbar-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.cal-page .cal-toolbar-row:first-child{justify-content:space-between}.cal-page .cal-nav{display:flex;align-items:center;gap:8px}.cal-page .cal-today-btn{--b-bg: var(--surface);--b-bg-hover: var(--signal-soft);--b-border: 1px solid var(--border);--b-h: 38px;--b-pad: 0 14px;--b-r: 11px;--b-w: 700}.cal-page .cal-month-label{margin:0 0 0 8px;font-family:var(--font-display);font-size:24px;font-weight:800;letter-spacing:-.02em;min-width:190px}.cal-page .cal-segment,.cal-page .cal-colour-toggle{display:inline-flex;padding:4px;gap:2px;border-radius:12px;background:var(--canvas);border:1px solid var(--border)}.cal-page .cal-segment button,.cal-page .cal-colour-toggle button{--b-h: 34px;--b-pad: 0 14px;--b-r: 9px;--b-w: 600;--b-fg: var(--text-secondary);--b-fg-hover: var(--text-primary)}.cal-page .cal-segment button.is-active,.cal-page .cal-colour-toggle button.is-active{--b-bg: var(--surface);--b-fg: var(--signal);--b-fg-hover: var(--signal);--b-shadow: var(--shadow-sm)}.cal-page .cal-colour-toggle{align-items:center}.cal-page .cal-colour-toggle>span{padding:0 8px;font-size:12px;font-weight:600;color:var(--text-secondary)}.cal-page .cal-colour-toggle button{--b-h: 30px;--b-pad: 0 10px;font-size:13px}.cal-page .cal-actions{display:flex;gap:8px}.cal-page .cal-filters select{min-height:40px;padding:8px 12px;font-size:14px;max-width:220px}.cal-page .cal-search{position:relative;display:flex;align-items:center;flex:1 1 260px;min-width:200px}.cal-page .cal-search svg{position:absolute;left:12px;color:var(--text-secondary)}.cal-page .cal-search input{width:100%;min-height:40px;padding:8px 12px 8px 36px;font-size:14px}.cal-page .cal-search.is-small input{min-height:36px}.cal-page .cal-clear{--b-fg: var(--coral-text);--b-pad: 6px 8px;--b-r: 8px;--b-bg-hover: var(--coral-soft);font-size:13px;font-weight:600}.cal-page .cal-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start}.cal-page .cal-layout.is-wide{grid-template-columns:minmax(0,1fr)}.cal-page .cal-main{min-width:0;transition:opacity .2s ease}.cal-page .cal-main.is-loading{opacity:.55}.cal-page .cal-shortcuts{margin:-4px 0 0;font-size:12px;color:var(--text-secondary);text-align:right}.cal-page .cal-month{border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-md);overflow:hidden}.cal-page .cal-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:var(--cal-soft);border-bottom:1px solid var(--border)}.cal-page .cal-weekdays span{padding:10px 12px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary)}.cal-page .cal-weekdays span.is-weekend{color:var(--coral-text)}.cal-page .cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:minmax(118px,1fr)}.cal-page .cal-cell{position:relative;display:flex;flex-direction:column;gap:4px;min-width:0;padding:8px 6px 6px;border-right:1px solid var(--cal-line);border-bottom:1px solid var(--cal-line);cursor:pointer;transition:background .14s ease,box-shadow .14s ease}.cal-page .cal-cell:nth-child(7n){border-right:0}.cal-page .cal-cell:hover{background:color-mix(in srgb,var(--signal) 4%,var(--surface))}.cal-page .cal-cell:focus-visible{outline:2px solid var(--signal);outline-offset:-2px}.cal-page .cal-cell.is-weekend{background:color-mix(in srgb,var(--canvas) 55%,var(--surface))}.cal-page .cal-cell.is-holiday{background:repeating-linear-gradient(135deg,transparent 0 10px,rgba(18,165,148,.06) 10px 20px),color-mix(in srgb,#12a594 7%,var(--surface))}.cal-page .cal-cell.is-outside{background:var(--cal-soft)}.cal-page .cal-cell.is-outside .cal-cell-num,.cal-page .cal-cell.is-outside .cal-chip{opacity:.45}.cal-page .cal-cell.is-selected{box-shadow:inset 0 0 0 2px var(--signal);background:color-mix(in srgb,var(--signal) 6%,var(--surface))}.cal-page .cal-cell-head{display:flex;align-items:center;gap:6px;padding:0 4px;min-height:26px}.cal-page .cal-cell-num{display:grid;place-items:center;min-width:26px;height:26px;border-radius:50%;font-weight:700;font-size:13.5px;font-variant-numeric:tabular-nums}.cal-page .cal-cell.is-today .cal-cell-num{background:linear-gradient(135deg,var(--signal),var(--signal-deep));color:#fff;box-shadow:0 4px 12px color-mix(in srgb,var(--signal) 40%,transparent)}.cal-page .cal-cell-today{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--signal)}.cal-page .cal-cell-add{--b-h: 22px;--b-r: 7px;--b-bg-hover: var(--signal);--b-fg: var(--text-secondary);--b-fg-hover: #fff;width:22px;margin-left:auto;justify-content:center;opacity:0;transition:opacity .12s ease}.cal-page .cal-cell:hover .cal-cell-add,.cal-page .cal-cell:focus-within .cal-cell-add{opacity:1}.cal-page .cal-chips{display:grid;gap:3px;min-width:0}.cal-page .cal-chip{--b-bg: color-mix(in srgb, var(--chip) 13%, var(--surface));--b-bg-hover: color-mix(in srgb, var(--chip) 22%, var(--surface));--b-fg: color-mix(in srgb, var(--chip) 70%, var(--text-primary));--b-pad: 3px 7px;--b-r: 7px;--b-w: 600;gap:5px;width:100%;min-width:0;font-size:12px;line-height:1.35;border-left:3px solid var(--chip);cursor:pointer;transition:transform .12s ease}.cal-page .cal-chip:hover{transform:translate(1px)}.cal-page .cal-chip.is-task{--b-bg: var(--surface);border:1px dashed color-mix(in srgb,var(--chip) 60%,transparent);border-left:3px solid var(--chip)}.cal-page .cal-chip.is-cont{--b-r: 0 7px 7px 0;border-left-color:color-mix(in srgb,var(--chip) 35%,transparent)}.cal-page .cal-chip.continues{margin-right:-7px;--b-r: 7px 0 0 7px}.cal-page .cal-chip.is-cont.continues{--b-r: 0}.cal-page .cal-chip.is-done .cal-chip-title{text-decoration:line-through;opacity:.6}.cal-page .cal-chip svg{flex:none}.cal-page .cal-chip-time{flex:none;font-variant-numeric:tabular-nums;opacity:.8}.cal-page .cal-chip-title{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.cal-page .cal-chip-title.is-faint{opacity:.7}.cal-page .cal-more{padding:0 6px;font-size:11.5px;font-weight:700;color:var(--signal)}.cal-page .cal-card{--b-bg: var(--surface);--b-bg-hover: color-mix(in srgb, var(--chip) 5%, var(--surface));--b-border: 1px solid var(--border);--b-pad: 12px 14px;--b-r: 14px;--b-fg: var(--text-primary);align-items:flex-start;gap:12px;width:100%;position:relative;overflow:hidden;cursor:pointer;transition:transform .14s ease,box-shadow .14s ease}.cal-page .cal-card:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--chip)}.cal-page .cal-card:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.cal-page .cal-card.is-compact{--b-pad: 10px 12px}.cal-page .cal-card.is-done .cal-card-title{text-decoration:line-through;color:var(--text-secondary)}.cal-page .cal-card-icon{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:color-mix(in srgb,var(--chip) 14%,var(--surface));color:var(--chip)}.cal-page .cal-card.is-compact .cal-card-icon{width:30px;height:30px;border-radius:9px}.cal-page .cal-card-body{display:grid;gap:4px;min-width:0}.cal-page .cal-card-top{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.cal-page .cal-card-type{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--chip)}.cal-page .cal-card-rel{margin-left:auto;font-size:11.5px;font-weight:700;color:var(--text-secondary)}.cal-page .cal-card-title{font-weight:700;font-size:15px;line-height:1.3}.cal-page .cal-card.is-compact .cal-card-title{font-size:14px}.cal-page .cal-card-meta{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12.5px;color:var(--text-secondary)}.cal-page .cal-card-meta span{display:inline-flex;align-items:center;gap:5px}.cal-page .cal-pill{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:999px;font-size:11px;font-weight:700;background:var(--canvas);color:var(--text-secondary)}.cal-page .cal-pill.is-high{background:var(--coral-soft);color:var(--coral-text)}.cal-page .cal-pill.is-private{background:var(--violet-soft);color:#6e3fb3}.cal-page .cal-pill.status-open{background:var(--amber-soft);color:var(--amber-text)}.cal-page .cal-pill.status-in_progress{background:var(--signal-soft);color:var(--active-text)}.cal-page .cal-pill.status-done{background:var(--teal-soft);color:var(--teal-ink)}.cal-page .cal-rail{display:grid;gap:14px;position:sticky;top:calc(var(--header-height) + 130px)}.cal-page .cal-panel{padding:16px;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm)}.cal-page .cal-panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px}.cal-page .cal-panel-head h3{margin:2px 0 0;font-size:16px;font-weight:800}.cal-page .cal-panel-kicker{margin:0;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--signal)}.cal-page .cal-panel-list{display:grid;gap:8px}.cal-page .cal-panel-empty{display:flex;align-items:center;gap:8px;margin:0;padding:14px;border-radius:12px;background:var(--cal-soft);color:var(--text-secondary);font-size:13.5px}.cal-page .cal-legend{display:grid;gap:4px;margin:0;padding:0;list-style:none}.cal-page .cal-legend button,.cal-page .cal-legend-static{--b-pad: 6px 8px;--b-r: 8px;--b-bg-hover: var(--cal-soft);display:flex;align-items:center;gap:8px;width:100%;font-size:13.5px;font-weight:600}.cal-page .cal-legend-static{padding:4px 8px;color:color-mix(in srgb,var(--chip) 75%,var(--text-primary))}.cal-page .cal-legend b{margin-left:auto;padding:0 8px;border-radius:999px;background:var(--canvas);font-size:12px}.cal-page .cal-dot{width:10px;height:10px;border-radius:50%;background:var(--chip);box-shadow:0 0 0 3px color-mix(in srgb,var(--chip) 20%,transparent)}.cal-page .cal-agenda{display:grid;gap:22px}.cal-page .cal-agenda-month{display:grid;gap:10px}.cal-page .cal-agenda-heading{display:flex;align-items:baseline;gap:12px;margin:0;font-family:var(--font-display);font-size:22px;font-weight:800}.cal-page .cal-agenda-heading span{font-family:var(--font);font-size:13px;font-weight:600;color:var(--text-secondary)}.cal-page .cal-agenda-day{display:grid;grid-template-columns:74px minmax(0,1fr);gap:14px;padding:10px;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border)}.cal-page .cal-agenda-day.is-today{border-color:var(--signal);box-shadow:0 0 0 3px color-mix(in srgb,var(--signal) 15%,transparent)}.cal-page .cal-agenda-day.is-past{opacity:.7}.cal-page .cal-agenda-date{display:grid;justify-items:center;align-content:start;padding:8px 0;border-radius:12px;background:var(--cal-soft)}.cal-page .cal-agenda-num{font-family:var(--font-display);font-size:28px;font-weight:800;line-height:1}.cal-page .cal-agenda-wd{font-size:12px;font-weight:700;text-transform:uppercase;color:var(--text-secondary)}.cal-page .cal-agenda-badge{margin-top:6px;padding:1px 8px;border-radius:999px;background:var(--signal);color:#fff;font-size:10.5px;font-weight:800}.cal-page .cal-agenda-list{display:grid;gap:8px}.cal-page .cal-tasks{display:grid;gap:14px}.cal-page .cal-owner-strip{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}.cal-page .cal-owner-strip button{--b-bg: var(--surface);--b-bg-hover: var(--signal-soft);--b-border: 1px solid var(--border);--b-h: 36px;--b-pad: 0 12px 0 6px;--b-r: 999px;--b-w: 600;white-space:nowrap;font-size:13.5px}.cal-page .cal-owner-strip button:first-child{--b-pad: 0 12px}.cal-page .cal-owner-strip button.is-active{--b-bg: var(--ink);--b-bg-hover: var(--ink);--b-fg: #fff}.cal-page .cal-owner-strip b{padding:0 7px;border-radius:999px;background:color-mix(in srgb,currentColor 14%,transparent);font-size:12px}.cal-page .cal-avatar{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,#8e4ec6,#3358e8);color:#fff;font-size:11px;font-weight:800}.cal-page .cal-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}.cal-page .cal-column{display:grid;gap:10px;padding:12px;border-radius:var(--radius-lg);background:var(--cal-soft);border:1px solid var(--border);border-top:4px solid var(--col);min-height:220px}.cal-page .cal-column.col-open{--col: #f59e0b}.cal-page .cal-column.col-in_progress{--col: #3358e8}.cal-page .cal-column.col-done{--col: #12a594}.cal-page .cal-column header{display:flex;align-items:center;gap:8px;font-weight:800;color:var(--col)}.cal-page .cal-count{margin-left:auto;padding:1px 9px;border-radius:999px;background:var(--surface);color:var(--text-primary);font-size:12px}.cal-page .cal-column-empty{margin:0;padding:18px;text-align:center;border:1px dashed var(--border-strong);border-radius:12px;color:var(--text-secondary);font-size:13px}.cal-page .cal-task{position:relative;display:grid;gap:6px}.cal-page .cal-task.is-overdue .cal-card{--b-border: 1px solid color-mix(in srgb, #e5484d 45%, var(--border))}.cal-page .cal-overdue{position:absolute;top:-7px;right:10px;z-index:1;padding:1px 8px;border-radius:999px;background:#e5484d;color:#fff;font-size:10.5px;font-weight:800;letter-spacing:.04em}.cal-page .cal-task-actions{display:flex;gap:6px;padding-left:4px}.cal-page .cal-task-actions button{--b-bg: var(--surface);--b-bg-hover: var(--signal-soft);--b-border: 1px solid var(--border);--b-h: 28px;--b-pad: 0 10px;--b-r: 8px;--b-w: 600;font-size:12.5px}.cal-page .cal-task-actions button.is-done{--b-fg: var(--teal-ink);--b-bg-hover: var(--teal-soft)}.cal-page .cal-empty{display:grid;justify-items:center;gap:6px;padding:48px 24px;border-radius:var(--radius-lg);background:var(--surface);border:1px dashed var(--border-strong);text-align:center;color:var(--text-secondary)}.cal-page .cal-empty h3{margin:6px 0 0;color:var(--text-primary)}.cal-page .cal-empty p{margin:0;max-width:46ch}.cal-page .cal-drawer-backdrop,.cal-page .cal-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;display:flex;background:#070e2280;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:cal-fade .16s ease both}.cal-page .cal-drawer-backdrop{justify-content:flex-end}.cal-page .cal-drawer{display:flex;flex-direction:column;width:min(520px,100%);height:100%;background:var(--surface);box-shadow:var(--shadow-lg);animation:cal-slide .24s cubic-bezier(.2,.9,.3,1) both}.cal-page .cal-drawer-head{position:relative;padding:26px 26px 20px;color:#fff;background:radial-gradient(400px 200px at 100% 0%,rgba(255,255,255,.22),transparent 60%),linear-gradient(135deg,var(--chip),color-mix(in srgb,var(--chip) 55%,var(--ink)))}.cal-page .cal-drawer-head h2{margin:12px 40px 6px 0;font-family:var(--font-display);font-size:26px;font-weight:800;line-height:1.12;letter-spacing:-.02em}.cal-page .cal-drawer-close{--b-bg: rgba(255, 255, 255, .16);--b-bg-hover: rgba(255, 255, 255, .28);--b-fg: #fff;--b-h: 34px;--b-r: 10px;width:34px;justify-content:center;position:absolute;top:18px;right:18px}.cal-page .cal-modal-head .cal-drawer-close{--b-bg: var(--canvas);--b-bg-hover: var(--border);--b-fg: var(--text-primary);position:static}.cal-page .cal-drawer-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:#ffffff2e;font-size:12px;font-weight:700}.cal-page .cal-drawer-when{margin:0;font-size:14px;opacity:.92}.cal-page .cal-drawer-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.cal-page .cal-drawer-tags span{padding:3px 10px;border-radius:999px;background:#0000002e;font-size:12px;font-weight:600}.cal-page .cal-drawer-body{flex:1;overflow-y:auto;display:grid;align-content:start;gap:4px;padding:18px 22px}.cal-page .cal-detail-row{display:grid;grid-template-columns:36px minmax(0,1fr);gap:12px;padding:10px 4px;border-bottom:1px solid var(--border)}.cal-page .cal-detail-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:color-mix(in srgb,var(--chip) 12%,var(--surface));color:var(--chip)}.cal-page .cal-detail-label{margin:0 0 2px;font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--text-secondary)}.cal-page .cal-detail-value{font-weight:600;font-size:14.5px}.cal-page .cal-detail-sub{margin:2px 0 0;font-size:13px;font-weight:500;color:var(--text-secondary)}.cal-page .cal-code{margin-left:8px;padding:1px 8px;border-radius:6px;background:var(--canvas);font-size:11.5px;font-weight:700;color:var(--text-secondary)}.cal-page .cal-people{display:flex;flex-wrap:wrap;gap:6px}.cal-page .cal-person{display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 3px;border-radius:999px;background:var(--canvas);font-size:13px;font-weight:600}.cal-page .cal-person.is-removable{--b-bg: var(--signal-soft);--b-bg-hover: var(--coral-soft);--b-pad: 3px 10px 3px 3px;--b-r: 999px;font-size:13px}.cal-page .cal-drawer-desc{padding:14px 4px}.cal-page .cal-drawer-desc p:last-child{margin:4px 0 0;white-space:pre-wrap;line-height:1.6}.cal-page .cal-drawer-foot,.cal-page .cal-modal-foot{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:14px 22px;border-top:1px solid var(--border);background:var(--cal-soft)}.cal-page .cal-drawer-foot .cal-ghost-btn:first-child{margin-right:auto}.cal-page .cal-modal-backdrop{align-items:flex-start;justify-content:center;overflow-y:auto;padding:40px 16px}.cal-page .cal-modal{display:flex;flex-direction:column;width:min(760px,100%);border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-lg);animation:cal-pop .26s cubic-bezier(.2,1.2,.4,1) both}.cal-page .cal-modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:22px 24px 8px}.cal-page .cal-modal-head h2{margin:4px 0 0;font-family:var(--font-display);font-size:24px;font-weight:800}.cal-page .cal-modal-body{display:grid;gap:16px;padding:12px 24px 20px}.cal-page .cal-modal-foot{border-radius:0 0 var(--radius-xl) var(--radius-xl)}.cal-page .cal-kind-switch{display:grid;grid-template-columns:1fr 1fr;gap:10px}.cal-page .cal-kind-switch button,.cal-page .cal-visibility button,.cal-page .cal-type-grid button{--b-bg: var(--surface);--b-bg-hover: var(--cal-soft);--b-border: 1px solid var(--border-strong);--b-r: 14px;cursor:pointer}.cal-page .cal-kind-switch button{--b-pad: 14px;gap:12px;align-items:flex-start;font-size:13px;color:var(--text-secondary)}.cal-page .cal-kind-switch strong{display:block;color:var(--text-primary);font-size:15px}.cal-page .cal-kind-switch button.is-active,.cal-page .cal-visibility button.is-active{--b-bg: var(--signal-soft);--b-bg-hover: var(--signal-soft);--b-border: 2px solid var(--signal)}.cal-page .cal-kind-switch button.is-active svg{color:var(--signal)}.cal-page .cal-title-field input{font-size:17px;font-weight:600}.cal-page .cal-type-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:8px}.cal-page .cal-type-grid button{--b-pad: 9px 10px;--b-r: 12px;--b-w: 600;font-size:13px}.cal-page .cal-type-grid button svg{color:var(--chip)}.cal-page .cal-type-grid button.is-active{--b-bg: color-mix(in srgb, var(--chip) 14%, var(--surface));--b-bg-hover: color-mix(in srgb, var(--chip) 14%, var(--surface));--b-border: 2px solid var(--chip);--b-fg: color-mix(in srgb, var(--chip) 70%, var(--text-primary))}.cal-page .cal-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px}.cal-page .cal-form-grid .is-wide,.cal-page .cal-modal-body>.is-wide{grid-column:1 / -1}.cal-page .cal-field-label{margin:0;font-size:13px;font-weight:700}.cal-page .cal-check{display:flex;align-items:center;gap:8px;font-weight:600}.cal-page .cal-check.is-inline{grid-column:1 / -1}.cal-page .cal-check input{width:17px;height:17px;min-height:0;padding:0}.cal-page .cal-visibility{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.cal-page .cal-visibility button{--b-pad: 12px;display:grid;gap:2px;justify-items:start;font-size:12.5px;color:var(--text-secondary)}.cal-page .cal-visibility button strong{font-size:14px;color:var(--text-primary)}.cal-page .cal-visibility button svg{color:var(--signal)}.cal-page .cal-assignees{display:grid;gap:8px;padding:14px;border-radius:14px;background:var(--cal-soft);border:1px solid var(--border)}.cal-page .cal-assignee-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 12px;max-height:180px;overflow-y:auto}.cal-page .cal-assignee-list .cal-check{padding:5px 4px;font-size:13.5px}.cal-page .cal-assignee-list .muted{margin-left:auto;font-size:12px}.cal-page .cal-form-error{margin:0;padding:10px 14px;border-radius:12px;background:var(--coral-soft);color:var(--coral-text);font-weight:600}.cal-page .required-mark{color:var(--coral-strong)}@keyframes cal-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes cal-pop{0%{opacity:0;transform:scale(.94)}}@keyframes cal-fade{0%{opacity:0}}@keyframes cal-slide{0%{transform:translate(40px);opacity:0}}@keyframes cal-toast{0%{opacity:0;transform:translate(-50%,12px)}8%,88%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,6px)}}.cal-page .cal-today{animation-name:cal-pop}@media(max-width:1280px){.cal-page .cal-layout{grid-template-columns:minmax(0,1fr)}.cal-page .cal-rail{position:static;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}}@media(max-width:960px){.cal-page .cal-hero{grid-template-columns:1fr}.cal-page .cal-hero-side{width:auto;grid-template-columns:auto 1fr;align-items:stretch}.cal-page .cal-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.cal-page .cal-board{grid-template-columns:1fr}.cal-page .cal-toolbar{position:static}}@media(max-width:720px){.cal-page .cal-hero{padding:22px 18px}.cal-page .cal-grid{grid-auto-rows:minmax(64px,auto)}.cal-page .cal-chip-title,.cal-page .cal-chip-time{display:none}.cal-page .cal-chip{--b-pad: 2px 4px;justify-content:center}.cal-page .cal-cell-today{display:none}.cal-page .cal-weekdays span{padding:8px 4px;text-align:center;font-size:10.5px}.cal-page .cal-form-grid,.cal-page .cal-visibility,.cal-page .cal-kind-switch,.cal-page .cal-assignee-list{grid-template-columns:1fr}.cal-page .cal-month-label{min-width:0;font-size:20px}.cal-page .cal-agenda-day{grid-template-columns:56px minmax(0,1fr)}}@media print{.cal-page .cal-toolbar .cal-actions,.cal-page .cal-filters,.cal-page .cal-rail,.cal-page .cal-shortcuts,.cal-page .cal-cell-add{display:none!important}.cal-page .cal-hero{box-shadow:none}.cal-page .cal-layout{grid-template-columns:1fr}}.cal-page .cal-modal-body label:not(.cal-check):not(.cal-search){display:flex;flex-wrap:wrap;align-items:baseline;column-gap:4px;row-gap:6px}.cal-page .cal-modal-body label:not(.cal-check):not(.cal-search)>:is(input,select,textarea){flex:1 0 100%;min-width:0}.cal-page .cal-modal-body label .muted{font-weight:500}.hod-page{display:grid;gap:24px}.hod-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.hod-kicker{margin:0 0 4px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--role, var(--signal))}.hod-hero h1{margin:0 0 4px;font-family:var(--font-display);font-size:clamp(22px,4vw,30px);font-weight:800;line-height:1.1;color:var(--text-primary)}.hod-sub{margin:0;color:var(--text-secondary)}.hod-refresh{display:inline-flex;align-items:center;gap:6px;flex-shrink:0}.hod-kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.hod-kpi{display:grid;gap:2px;padding:16px 18px;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border)}.hod-kpi-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary)}.hod-kpi-value{font-family:var(--font-display);font-size:28px;font-weight:800;color:var(--text-primary);font-variant-numeric:tabular-nums}.hod-kpi-link{font-size:12px;color:var(--signal);text-decoration:none}.hod-kpi-link:hover{text-decoration:underline}.hod-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:20px}.hod-action-list{margin:0;padding:0;list-style:none;display:grid;gap:4px}.hod-action-row{display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius-md);color:var(--text-primary);text-decoration:none;transition:background var(--transition)}.hod-action-row:hover{background:var(--ivory)}.hod-action-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:10px}.hod-action-label{font-weight:500;font-size:14px}.hod-action-count{font-size:20px;font-weight:800;font-variant-numeric:tabular-nums;font-family:var(--font-display)}.faculty-quick{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px}.faculty-quick-link{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 12px;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);color:var(--text-secondary);text-decoration:none;font-size:13px;font-weight:600;transition:background var(--transition),border-color var(--transition),color var(--transition)}.faculty-quick-link:hover{background:var(--signal-soft);border-color:var(--signal);color:var(--signal)}.admin-page{padding:8px 0 40px;display:grid;gap:28px}.admin-quick{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr));gap:12px}.admin-quick-link{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 12px;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);color:var(--text-primary);text-decoration:none;font-size:13px;font-weight:600;text-align:center;transition:background .15s,border-color .15s,color .15s}.admin-quick-link svg{color:var(--signal)}.admin-quick-link:hover{background:var(--signal-soft);border-color:var(--signal);color:var(--signal)}.admin-alert-row{display:flex;align-items:center;gap:10px;padding:14px 18px;border-radius:var(--radius-lg);background:var(--amber-soft);border:1px solid var(--amber);color:var(--amber-text, var(--text-primary));font-size:14px}.admin-alert-row svg{color:var(--amber);flex-shrink:0}.admin-alert-row a{margin-left:auto;font-weight:600;color:var(--signal);text-decoration:none;white-space:nowrap}.admin-alert-row a:hover{text-decoration:underline}.admin-tenant-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.admin-tenant-tile{flex:1 1 140px;display:flex;flex-direction:column;gap:4px;padding:18px 20px;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border)}.admin-tenant-tile span{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary)}.admin-tenant-tile strong{font-size:28px;font-weight:800;font-family:var(--font-display);color:var(--text-primary);line-height:1}.admin-tenant-tile--active strong{color:var(--teal-bright, var(--signal))}.admin-tenant-link{font-size:13px;font-weight:600;color:var(--signal);text-decoration:none;margin-left:auto;white-space:nowrap}.admin-tenant-link:hover{text-decoration:underline}.quick-create{display:flex;flex-direction:column;gap:16px}.sec-page{display:grid;gap:20px}.sec-pulses{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}.sec-pulse{display:grid;gap:6px;padding:18px;border-radius:18px;background:var(--ink-raised);border:1px solid var(--ink-line)}.sec-pulse span{font-size:13px;font-weight:600;color:var(--ink-muted)}.sec-pulse strong{font-family:var(--font-display);font-size:38px;font-weight:800;line-height:1;color:#fff;font-variant-numeric:tabular-nums}.sec-pulse:first-child strong{color:var(--teal-bright)}.sec-pulse p{margin:0;font-size:13px;color:var(--ink-soft)}.sec-panel{display:grid;gap:14px;align-content:start;padding:24px;border-radius:var(--radius-xl);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm)}.sec-panel-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px}.sec-panel-head h2{margin:0;font-family:var(--font-display);font-size:21px;letter-spacing:-.01em}.sec-panel-head a{font-size:14px;font-weight:600}.sec-lowest h3{margin:4px 0 8px;font-size:14px}.sec-lowest ul,.sec-changes{list-style:none;margin:0;padding:0;display:grid;gap:8px}.sec-lowest li,.sec-changes li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:10px 12px;border-radius:12px;background:var(--canvas);font-size:14px}.sec-lowest li span,.sec-changes time{color:var(--text-secondary);font-size:13px}.sec-agenda{width:100%;border-collapse:collapse;font-size:14px}.sec-agenda th{padding:10px 8px;text-align:left;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary)}.sec-agenda td{padding:12px 8px;border-top:1px solid var(--border);vertical-align:top}.sec-agenda td a{font-weight:700}.sec-count{display:inline-grid;place-items:center;min-width:44px;height:36px;padding:0 8px;border-radius:10px;background:var(--amber);color:var(--amber-ink);font-family:var(--font-display);font-size:16px;font-weight:800}@media(max-width:720px){.sec-agenda thead{display:none}.sec-agenda tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;padding:12px 0;border-top:1px solid var(--border)}.sec-agenda td{padding:0;border:0}.sec-agenda td:last-child{grid-column:1 / -1}}.sec-hero-top{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:16px}.sec-hero-top .hero-copy{flex:1 1 420px;min-width:0}.live-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 6px 6px 14px;border-radius:999px;background:var(--ink-raised);border:1px solid var(--ink-line);color:var(--ink-soft);font-size:13px}.live-text strong{color:#fff}.live-hint{color:var(--ink-muted)}.live-dot{position:relative;width:10px;height:10px;border-radius:50%;background:var(--teal-bright);flex:none}.is-live .live-dot:after{content:"";position:absolute;top:-5px;right:-5px;bottom:-5px;left:-5px;border-radius:50%;border:2px solid var(--teal-bright);animation:live-ping 1.8s ease-out infinite}.is-paused .live-dot{background:var(--amber)}.is-stale .live-dot{background:var(--coral)}@keyframes live-ping{0%{transform:scale(.6);opacity:.9}to{transform:scale(1.6);opacity:0}}button.live-btn{display:inline-grid;place-items:center;width:34px;height:34px;min-height:0;padding:0;border-radius:50%;background:var(--ink-hover);color:#fff}button.live-btn:hover:not(:disabled){background:var(--ink-line)}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.sec-pulse-row{display:flex;align-items:flex-end;justify-content:space-between;gap:8px}.pulse-value{animation:pulse-flash .9s ease-out}@keyframes pulse-flash{0%{text-shadow:0 0 18px rgba(107,227,212,.9)}to{text-shadow:none}}.pulse-spark path{fill:none;stroke:var(--teal-bright);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.pulse-delta{font-weight:700;color:var(--ink-soft)}.pulse-delta.is-good{color:var(--teal-bright)}.pulse-delta.is-bad{color:#ff9aa6}.sec-panel-kicker{margin:0 0 2px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary)}.sec-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:20px}.sec-att-grid{display:grid;grid-template-columns:auto minmax(0,1fr);gap:28px;align-items:start}.sec-att-lower{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:28px;padding-top:16px;border-top:1px solid var(--border)}.sec-chart-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px;margin-bottom:8px}.sec-chart-head h3{margin:0;font-size:15px}.sec-chart-head span{font-size:13px;color:var(--text-secondary)}.chart-empty{margin:0;padding:18px 0}.donut{display:flex;flex-wrap:wrap;align-items:center;gap:20px}.donut-figure{position:relative;flex:none}.donut-track{fill:none;stroke:var(--canvas-deep)}.donut-track.is-empty{stroke-dasharray:8 6;stroke:var(--border)}.donut-arc{fill:none;cursor:pointer;transition:stroke-dasharray .7s cubic-bezier(.2,.8,.2,1),stroke-dashoffset .7s cubic-bezier(.2,.8,.2,1),stroke-width .16s ease,opacity .16s ease}.donut-arc.is-dim{opacity:.35}.donut-center{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;text-align:center;pointer-events:none;padding:30px}.donut-center strong{font-family:var(--font-display);font-size:30px;font-weight:800;line-height:1.05;font-variant-numeric:tabular-nums}.donut-center span{font-size:12px;font-weight:600;color:var(--text-secondary)}.donut-center em{font-style:normal;font-size:13px;font-weight:700}.donut-empty{max-width:120px;font-size:13px;font-weight:500;color:var(--text-secondary);text-align:center;line-height:1.4}.donut-legend{flex:1 1 180px;min-width:0;display:grid;gap:4px;margin:0;padding:0;list-style:none}.donut-legend-row{display:grid;grid-template-columns:12px minmax(0,1fr) auto 48px;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;color:var(--text-primary);font-weight:500;font-size:14px;cursor:default;outline-offset:0}a.donut-legend-row{cursor:pointer}.donut-legend-row:hover,.donut-legend-row.is-active{background:var(--ivory);color:var(--text-primary)}.donut-legend-row i{width:12px;height:12px;border-radius:4px}.donut-legend-label small{display:block;font-size:12px;color:var(--text-secondary)}.donut-legend-row b{font-variant-numeric:tabular-nums}.donut-legend-share{text-align:right;font-size:12px;color:var(--text-secondary);font-variant-numeric:tabular-nums}.barlist{display:grid;gap:4px}.barlist-row{display:grid;grid-template-columns:minmax(96px,150px) minmax(0,1fr) 56px;align-items:center;gap:4px 12px;padding:8px 10px;border-radius:10px;color:var(--text-primary);font-weight:500;font-size:14px;transition:background var(--transition),opacity var(--transition)}.barlist-row:hover,.barlist-row.is-active{background:var(--ivory);color:var(--text-primary)}.barlist-row.is-dim{opacity:.6}.barlist-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.barlist-track{position:relative;height:12px;border-radius:999px;background:var(--canvas-deep)}.barlist-fill{position:absolute;inset:0 auto 0 0;border-radius:999px;background:var(--signal);transition:width .7s cubic-bezier(.2,.8,.2,1)}.barlist-guide{position:absolute;top:-4px;bottom:-4px;border-left:2px dashed var(--text-primary);opacity:.55}.barlist-value{text-align:right;font-variant-numeric:tabular-nums}.barlist-detail{grid-column:2 / -1;max-height:0;overflow:hidden;font-size:12px;color:var(--text-secondary);transition:max-height .2s ease}.barlist-detail.is-open{max-height:40px}.barlist-key{display:flex;align-items:center;gap:8px;margin:6px 0 0;font-size:12px;color:var(--text-secondary)}.barlist-key-line{width:18px;border-top:2px dashed var(--text-primary);opacity:.55}.trend{position:relative;width:100%;min-width:0}.trend svg{display:block;overflow:visible;touch-action:pan-y}.trend-grid line{stroke:var(--border)}.trend-grid text,.trend-x{font-size:11px;fill:var(--text-secondary)}.trend-line{fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.trend-guide{stroke:var(--text-primary);stroke-dasharray:4 4;opacity:.45}.trend-cross line{stroke:var(--text-primary);opacity:.35}.trend-cross circle{stroke:var(--surface);stroke-width:3}.chart-tip{position:absolute;top:0;transform:translate(-50%,-8px);display:grid;gap:2px;min-width:150px;padding:8px 12px;border-radius:10px;background:var(--ink);color:#fff;font-size:13px;box-shadow:var(--shadow-lg);pointer-events:none;white-space:nowrap}.chart-tip span{color:var(--ink-soft)}.sec-progress{padding-top:14px;border-top:1px solid var(--border)}.sec-progress p{margin:8px 0 0;font-size:13px}.sec-progress-track{height:12px;border-radius:999px;background:var(--canvas-deep);overflow:hidden}.sec-progress-track span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--signal),#19c2b1);transition:width .7s cubic-bezier(.2,.8,.2,1)}.sec-money-tile{display:grid;gap:2px;padding:16px 18px;border-radius:16px;background:var(--ink);color:#fff}.sec-money-tile:hover{background:var(--ink-raised);color:#fff}.sec-money-tile span{font-size:13px;color:var(--ink-muted)}.sec-money-tile strong{font-family:var(--font-display);font-size:32px;font-weight:800;line-height:1.1;color:var(--amber)}.sec-money-tile em{font-style:normal;font-size:13px;color:var(--ink-soft)}@media(max-width:900px){.sec-att-grid,.sec-att-lower{grid-template-columns:minmax(0,1fr)}}@media(max-width:560px){.donut{justify-content:center}.barlist-row{grid-template-columns:minmax(0,1fr) 52px}.barlist-track{grid-column:1 / -1;grid-row:2}.barlist-value{grid-row:1;grid-column:2}.live-hint{display:none}}.trend-dot{stroke:var(--surface);stroke-width:2}.donut-figure svg{overflow:visible}.ci-card{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);transition:border-color var(--transition),background var(--transition)}.ci-card--open{border-color:var(--signal);background:var(--signal-soft)}.ci-card--in{border-color:var(--status-good, #16a34a);background:color-mix(in srgb,var(--status-good, #16a34a) 8%,transparent)}.ci-card--done{opacity:.75}.ci-card--closed{opacity:.65}.ci-card--loading{flex-direction:column;gap:8px;align-items:stretch}.ci-icon{flex-shrink:0;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center}.ci-icon--signal{background:var(--signal-soft);color:var(--signal)}.ci-icon--good{background:color-mix(in srgb,var(--status-good, #16a34a) 15%,transparent);color:var(--status-good, #16a34a)}.ci-icon--muted{background:var(--surface-2, #1a2140);color:var(--text-muted)}.ci-body{flex:1;min-width:0}.ci-title{font-size:13px;font-weight:600;color:var(--text-primary);margin:0;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.ci-sub{font-size:11px;color:var(--text-muted);margin:2px 0 0;display:flex;align-items:center;gap:4px}.ci-error{font-size:11px;color:var(--status-critical, #dc2626);margin:2px 0 0}.ci-late-badge{font-size:10px;font-weight:700;padding:1px 6px;border-radius:20px;background:color-mix(in srgb,var(--status-warning, #ca8a04) 15%,transparent);color:var(--status-warning, #ca8a04);letter-spacing:.03em}.ci-btn{flex-shrink:0;display:inline-flex;align-items:center;gap:5px;border:none;border-radius:var(--radius-sm, 6px);padding:7px 13px;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit;transition:filter var(--transition)}.ci-btn:disabled{opacity:.6;cursor:not-allowed}.ci-btn--in{background:var(--signal);color:#fff}.ci-btn--in:not(:disabled):hover{filter:brightness(1.1)}.ci-btn--out{background:var(--surface-2, #1a2140);color:var(--text-secondary);border:1px solid var(--border)}.ci-btn--out:not(:disabled):hover{background:var(--border)}.ci-shimmer{border-radius:6px;background:linear-gradient(90deg,var(--surface) 25%,var(--surface-2, #1a2140) 50%,var(--surface) 75%);background-size:200% 100%;animation:ci-shimmer 1.4s ease infinite}.ci-shimmer--title{height:14px;width:55%}.ci-shimmer--body{height:11px;width:40%;opacity:.6}@keyframes ci-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.sa-page .page-actions{display:flex;gap:.5rem;flex-wrap:wrap}.sa-filters{display:flex;flex-wrap:wrap;gap:.75rem 1rem;align-items:flex-end}.sa-filters label,.sa-form label{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem}.sa-filters-inline{margin-bottom:.75rem}.sa-grow{flex:1 1 14rem}.sa-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.75rem}.sa-kpi{display:flex;flex-direction:column;gap:.25rem;padding:.9rem 1rem}.sa-kpi strong{font-size:1.6rem;line-height:1.1}.sa-kpi-warning strong,.sa-warn{color:var(--warning, #b45309)}.sa-kpi-danger strong,.sa-bad{color:var(--danger, #b91c1c)}.sa-section-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.sa-section-head h2{margin:0;font-size:1.05rem}.sa-sub{display:block;font-size:.8rem}.sa-pager{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;margin-top:.75rem}.sa-roster-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,26rem),1fr));gap:1rem;align-items:start}.sa-form{display:flex;flex-direction:column;gap:.75rem}.sa-form-row{display:flex;flex-wrap:wrap;gap:.75rem}.sa-form-row input[type=number]{width:7rem}.sa-days{display:flex;flex-wrap:wrap;gap:.5rem;border:0;padding:0;margin:0}.sa-days legend{font-size:.85rem;margin-bottom:.25rem}.sa-form .sa-day{flex-direction:row;align-items:center;gap:.3rem;padding:.3rem .6rem;border:1px solid var(--border, #d6d3d1);border-radius:999px}.sa-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.sa-error{color:var(--danger, #b91c1c);margin:0}.sa-segment{display:flex;flex-wrap:wrap;gap:.4rem}.sa-options{list-style:none;margin:0;padding:.25rem;max-height:12rem;overflow-y:auto;border:1px solid var(--border, #d6d3d1);border-radius:8px}.sa-options button{width:100%;text-align:left}.sa-options li.muted{padding:.4rem .6rem}.sa-picked{display:flex;flex-wrap:wrap;gap:.4rem}.sa-tag{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .3rem .2rem .6rem;border-radius:999px;background:var(--surface-muted, #f1f5f9);font-size:.85rem}.sa-tag button{padding:.15rem;min-height:0;background:transparent;color:inherit;border:0}.sa-shift-list{list-style:none;margin:.75rem 0 0;padding:0;display:flex;flex-direction:column;gap:.5rem}.sa-shift-list li{display:flex;justify-content:space-between;gap:.75rem;padding:.6rem .75rem;border:1px solid var(--border, #d6d3d1);border-radius:8px}.sa-row-actions{display:flex;gap:.25rem;align-items:flex-start}.sa-type{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted, #64748b);margin-right:.25rem}.sa-preview{max-height:28rem;overflow-y:auto}.sa-week{margin-top:.75rem}.sa-chip-detail{display:block;font-size:.75rem;color:var(--text-muted, #64748b);margin-top:.15rem}.tp-shell{display:flex;flex-direction:column;gap:0}.tp-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.tp-row{display:grid;grid-template-columns:90px 1fr auto;align-items:center;gap:12px;padding:10px 14px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);transition:background var(--transition),border-color var(--transition)}.tp-row--open{border-color:var(--signal);background:var(--signal-soft)}.tp-row--marked{opacity:.65}.tp-row--closed{opacity:.5}.tp-time{display:flex;flex-direction:column;gap:1px;font-size:12px;font-weight:600;color:var(--text-secondary);white-space:nowrap;font-variant-numeric:tabular-nums}.tp-time-sep{display:none}.tp-time-end{font-weight:400;font-size:11px;color:var(--text-muted)}.tp-info{display:flex;flex-direction:column;gap:2px;min-width:0}.tp-course{font-size:13px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:6px}.tp-course-code{font-size:11px;font-weight:700;color:var(--signal);background:var(--signal-soft);border-radius:4px;padding:1px 5px;letter-spacing:.04em}.tp-meta{display:flex;gap:8px;font-size:11px;color:var(--text-muted)}.tp-meta span:after{content:"·";margin-left:8px}.tp-meta span:last-child:after{content:"";margin:0}.tp-action{flex-shrink:0}.tp-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;padding:3px 8px;border-radius:20px;white-space:nowrap}.tp-badge--upcoming{background:var(--surface-2, #1a2140);color:var(--text-muted)}.tp-badge--open{background:var(--signal);color:#fff}.tp-badge--marked{background:var(--status-good, #16a34a);color:#fff}.tp-badge--closed{background:var(--surface-2, #1a2140);color:var(--text-muted)}.tp-btn-mark{display:inline-flex;align-items:center;gap:4px;background:none;border:none;padding:0;cursor:pointer;font-family:inherit}.tp-btn-mark:hover .tp-badge--open{filter:brightness(1.1)}.tp-btn-mark svg{color:var(--signal)}.tp-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 16px;gap:8px;text-align:center}.tp-empty-icon{color:var(--text-muted)}.tp-empty-text{font-size:13px;color:var(--text-muted);margin:0}.tp-loading{gap:8px;padding:4px 0}.tp-shimmer{height:52px;border-radius:var(--radius);background:linear-gradient(90deg,var(--surface) 25%,var(--surface-2, #1a2140) 50%,var(--surface) 75%);background-size:200% 100%;animation:shimmer 1.4s ease infinite}.tp-shimmer--short{height:52px;opacity:.6}.faculty-all-clear{display:flex;flex-direction:column;align-items:center;gap:10px;padding:32px 0;color:var(--teal)}.faculty-all-clear p{margin:0;color:var(--text-secondary);font-size:14px}.student-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}.student-hero-text{flex:1 1 260px}.student-hero-ring{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:8px}.student-att-warn{margin:0;font-size:12px;font-weight:600;color:var(--coral);text-align:center}.student-kpi{position:relative}.student-kpi-icon{color:var(--signal);margin-bottom:4px}.student-alerts{border-left:3px solid var(--amber)}.student-alert-list{margin:0;padding:0;list-style:none;display:grid;gap:4px}.student-alert-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-md);color:var(--text-primary);text-decoration:none;font-size:14px;font-weight:500;transition:background var(--transition)}.student-alert-row:hover{background:var(--ivory)}.student-alert-row svg{color:var(--amber);flex-shrink:0}.student-alert-count{margin-left:auto;font-weight:700;font-size:18px;color:var(--amber);font-variant-numeric:tabular-nums}@media(max-width:560px){.student-hero{flex-direction:column-reverse;align-items:flex-start}}.examiner-page{max-width:720px;margin:0 auto;display:grid;gap:32px;padding:8px 0 40px}.examiner-hero{display:flex;gap:20px;align-items:flex-start}.examiner-icon-wrap{flex-shrink:0;width:56px;height:56px;border-radius:16px;background:var(--signal-soft);color:var(--signal);display:grid;place-items:center}.examiner-kicker{margin:0 0 4px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary)}.examiner-hero h1{margin:0 0 8px;font-family:var(--font-display);font-size:clamp(22px,4vw,30px);font-weight:800;line-height:1.1}.examiner-sub{margin:0;color:var(--text-secondary);max-width:540px;line-height:1.6}.examiner-cards{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}.examiner-card{display:grid;gap:10px;padding:24px;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);color:var(--text-secondary)}.examiner-card--primary{background:var(--ink);border-color:var(--ink-line);color:var(--ink-soft)}.examiner-card--primary h2{color:#fff}.examiner-card--primary svg{color:var(--teal-bright)}.examiner-card svg{color:var(--signal)}.examiner-card h2{margin:0;font-size:16px;font-weight:700;color:var(--text-primary)}.examiner-card p{margin:0;font-size:14px;line-height:1.6}.examiner-card code{font-family:monospace;font-size:13px;background:var(--canvas-deep);padding:2px 6px;border-radius:4px;color:var(--signal)}.examiner-card--primary code{background:var(--ink-raised);color:var(--teal-bright)}.di-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:20px;align-items:start}.di-side{display:grid;gap:20px;position:sticky;top:16px}.di-steps{list-style:none;margin:0;padding:0;display:grid;gap:18px}.di-step{display:grid;gap:12px;padding-left:14px;border-left:3px solid var(--border)}.di-step.is-open{border-left-color:var(--signal)}.di-step-title{font-weight:700;font-size:15px}.di-step:not(.is-open) .di-step-title{color:var(--text-secondary)}.di-picker,.di-group{display:grid;gap:10px}.di-group header h3{margin:0;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary)}.di-group header p{margin:2px 0 0;font-size:13px}.di-search{display:flex;align-items:center;gap:8px;color:var(--text-secondary)}.di-search input{flex:1}.di-kind-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}button.di-kind{display:flex;gap:10px;align-items:flex-start;text-align:left;padding:12px;min-height:0;background:var(--surface);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:none;font-weight:400}button.di-kind:hover:not(:disabled){background:var(--ivory);border-color:color-mix(in srgb,var(--signal) 45%,var(--border));color:var(--text-primary)}button.di-kind.is-active{border-color:var(--signal);background:var(--signal-soft);box-shadow:0 0 0 2px color-mix(in srgb,var(--signal) 25%,transparent)}.di-kind-step{flex:0 0 26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;background:var(--canvas-deep);color:var(--text-secondary)}.di-kind.is-active .di-kind-step{background:var(--signal);color:#fff}.di-kind-body{display:grid;gap:2px;font-size:13px}.di-kind-body strong{font-size:14px}.di-needs{margin-top:4px;font-size:12px;color:var(--amber-text)}.di-template{display:grid;gap:12px}.di-template-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}.di-template-head h3{margin:0;font-size:16px}.di-template-head p{margin:4px 0 0;max-width:60ch;font-size:13px}.di-columns .table td,.di-columns .table th{font-size:13px;padding:8px 10px}.di-example{color:var(--text-secondary)}.di-tips{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:13px;color:var(--text-secondary)}.di-tips svg{vertical-align:-2px;color:var(--signal)}.di-upload{display:grid;gap:12px}.di-drop{display:grid;justify-items:center;gap:6px;padding:26px 16px;border:2px dashed var(--border-strong);border-radius:var(--radius-lg);background:var(--ivory);color:var(--text-secondary);text-align:center;transition:border-color var(--transition),background var(--transition)}.di-drop.is-dragging{border-color:var(--signal);background:var(--signal-soft)}.di-drop.has-file{border-style:solid;border-color:color-mix(in srgb,var(--teal) 60%,var(--border));background:var(--teal-soft)}.di-drop strong{color:var(--text-primary)}.di-file{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center}.di-browse input{position:absolute;width:1px;height:1px;opacity:0}.di-browse .secondary-like{display:inline-block;padding:8px 16px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--text-primary);font-weight:600;cursor:pointer}.di-browse:focus-within .secondary-like{outline:3px solid color-mix(in srgb,var(--signal) 40%,transparent);outline-offset:2px}.di-limit{font-size:12px}.di-preview{padding:10px 12px;border-radius:var(--radius-sm);font-size:14px}.di-preview p{margin:0;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.di-preview.is-good{background:var(--teal-soft);color:var(--teal-ink)}.di-preview.is-bad{background:var(--coral-soft);color:var(--coral-text)}.di-inline-error{margin:0;color:var(--coral-text);font-size:14px}.di-actions,.di-detail-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.di-detail-actions button{display:inline-flex;gap:6px;align-items:center}.di-progress{display:grid;gap:8px}.di-bar{height:10px;border-radius:999px;background:var(--canvas-deep);overflow:hidden}.di-progress.is-compact .di-bar{height:6px}.di-bar span{display:block;height:100%;border-radius:inherit;background:var(--signal);transition:width .4s ease}.di-bar.tone-success span{background:var(--teal)}.di-bar.tone-warning span{background:var(--amber)}.di-bar.tone-danger span{background:var(--coral)}.di-bar.is-running span{background-image:linear-gradient(90deg,var(--signal) 0%,color-mix(in srgb,var(--signal) 60%,#fff) 50%,var(--signal) 100%);background-size:200% 100%;animation:di-shimmer 1.6s linear infinite}@keyframes di-shimmer{0%{background-position:200% 0}to{background-position:0 0}}@media(prefers-reduced-motion:reduce){.di-bar.is-running span{animation:none}}.di-progress-meta{display:flex;justify-content:space-between;gap:8px;font-size:13px;color:var(--text-secondary);font-variant-numeric:tabular-nums}.di-stages{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;font-size:12px}.di-stages li{padding-top:6px;border-top:3px solid var(--border);color:var(--text-secondary)}.di-stages li.is-done{border-top-color:var(--teal)}.di-stages li.is-current{border-top-color:var(--signal);color:var(--text-primary);font-weight:700}.di-counters{margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.di-counters div{padding:10px;border-radius:var(--radius-sm);background:var(--ivory);border:1px solid var(--border)}.di-counters dt{font-size:12px;color:var(--text-secondary)}.di-counters dd{margin:2px 0 0;font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}.di-counters .tone-good dd{color:var(--teal-ink)}.di-counters .tone-warn{background:var(--amber-soft)}.di-counters .tone-warn dd{color:var(--amber-text)}.di-counters .tone-bad{background:var(--coral-soft)}.di-counters .tone-bad dd{color:var(--coral-text)}.di-detail-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.di-detail-head h2{margin:0;font-size:18px;word-break:break-all}.di-detail-head p{margin:4px 0 0;font-size:13px}.di-kicker{margin:0;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--signal)}.di-detail-status{display:flex;align-items:center;gap:8px}.di-live{font-size:11px;color:var(--text-secondary)}.di-live-live:before{content:"";display:inline-block;width:7px;height:7px;margin-right:4px;border-radius:50%;background:var(--teal)}.di-warning,.di-flash{margin:0;padding:8px 12px;border-radius:var(--radius-sm);font-size:13px}.di-warning{background:var(--amber-soft);color:var(--amber-text)}.di-flash{background:var(--signal-soft);color:var(--active-text)}.di-issues{display:grid;gap:10px}.di-issues h3{margin:0;font-size:15px}.di-help{display:block;font-size:12px;color:var(--text-secondary)}.di-jobs-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.di-segment{display:inline-flex;gap:4px}.di-segment button{min-height:32px;padding:4px 12px;font-size:13px}.di-active{list-style:none;margin:0;padding:0;display:grid;gap:8px}button.di-job{width:100%;display:grid;gap:6px;text-align:left;padding:12px;background:var(--surface);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:none;font-weight:400}button.di-job:hover:not(:disabled),button.di-job.is-selected{background:var(--ivory);color:var(--text-primary);border-color:var(--signal)}.di-job-top{display:flex;justify-content:space-between;gap:8px;align-items:center}.di-job-file{display:block;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:260px}.di-history tr.is-selected td{background:var(--signal-soft)}.di-bad{color:var(--coral-text)}@media(max-width:1180px){.di-layout{grid-template-columns:1fr}.di-side{position:static}}@media(max-width:640px){.di-counters{grid-template-columns:repeat(2,minmax(0,1fr))}.di-stages{font-size:11px}.di-detail-head{flex-direction:column}}.di-page{--di-ease: cubic-bezier(.2, .7, .2, 1)}.di-wizard{padding:26px;gap:22px}.di-wizard-head h2{margin:0}.di-wizard-head p{margin:4px 0 0;font-size:14px}.di-step{position:relative;padding:0 0 4px 44px;border-left:none}.di-step:before{content:"";position:absolute;left:15px;top:34px;bottom:-18px;width:2px;background:var(--border)}.di-step:last-child:before{display:none}.di-step-title{display:flex;align-items:center;gap:12px;margin-left:-44px;font-size:16px;min-height:32px}.di-step-num{flex:0 0 32px;height:32px;border-radius:50%;display:grid;place-items:center;font-size:14px;font-weight:800;background:var(--canvas-deep);color:var(--text-secondary);transition:background var(--transition),color var(--transition)}.di-step.is-open .di-step-num{background:var(--signal);color:#fff;box-shadow:0 0 0 4px var(--signal-soft)}.di-step.is-done .di-step-num{background:var(--teal);box-shadow:0 0 0 4px var(--teal-soft)}.di-step.is-done:before{background:var(--teal)}.di-step:not(.is-open)>:not(.di-step-title){opacity:.6}button.di-kind{padding:14px;transition:border-color var(--transition),background var(--transition),transform .18s var(--di-ease),box-shadow .18s var(--di-ease)}button.di-kind:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-sm)}button.di-kind:focus-visible,button.di-job:focus-visible,.di-history tr:focus-visible{outline:3px solid color-mix(in srgb,var(--signal) 45%,transparent);outline-offset:2px}.di-group+.di-group{margin-top:6px}.di-columns{border-radius:var(--radius-md);overflow:auto;max-height:340px}.di-columns code{font-size:12.5px;padding:2px 6px;border-radius:6px;background:var(--ivory);border:1px solid var(--border)}.di-tips{padding:12px 14px;border-radius:var(--radius-md);background:var(--ivory);border:1px solid var(--border)}.di-drop{padding:34px 18px}.di-drop:hover{border-color:color-mix(in srgb,var(--signal) 50%,var(--border-strong))}.di-drop>svg{color:var(--signal);transition:transform .2s var(--di-ease)}.di-drop.is-dragging>svg{transform:translateY(-4px) scale(1.08)}.di-actions{padding-top:4px;border-top:1px solid var(--border)}.di-actions>button{min-width:160px}.di-detail,.di-jobs{animation:di-rise .22s var(--di-ease)}.di-detail{border-top:4px solid var(--signal)}@keyframes di-rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.di-counters dd{font-size:22px;letter-spacing:-.02em}.di-history td{vertical-align:middle}.di-history tbody tr{cursor:pointer}.di-empty{display:grid;justify-items:center;gap:4px;padding:28px 12px;text-align:center;border:1px dashed var(--border-strong);border-radius:var(--radius-md)}.di-empty-icon{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;margin-bottom:4px;background:var(--signal-soft);color:var(--signal);font-weight:800}@media(prefers-reduced-motion:reduce){.di-detail,.di-jobs,button.di-kind,.di-drop>svg{animation:none;transition:none}}@media(max-width:640px){.di-wizard{padding:18px}.di-step{padding-left:0}.di-step-title{margin-left:0}.di-step:before{display:none}}.di-inst{display:grid;gap:6px;padding:12px 14px;border-radius:var(--radius-md);background:var(--signal-soft);font-weight:600}.di-inst>span:first-child,.di-inst-note{display:flex;align-items:center;gap:6px}.di-inst.is-missing select{border-color:var(--amber)}.di-inst-hint{font-weight:400;font-size:13px}.di-inst-note{margin:0;font-size:13px}.di-inst-tag{display:inline-block;margin-left:4px;padding:1px 7px;border-radius:999px;font-size:11px;font-weight:700;background:var(--canvas-deep);color:var(--text-secondary)}.di-inst-filter{max-width:180px;min-height:32px;font-size:13px}.ac-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:20px;align-items:start}.ac-roles{position:sticky;top:16px;padding:16px}.ac-roles h2,.ac-editor h2{margin:0;font-size:18px}.ac-roles ul,.ac-group ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}button.ac-role{width:100%;display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;background:transparent;color:var(--text-primary);border:1px solid transparent;border-radius:var(--radius-sm);box-shadow:none;font-weight:600;text-align:left}button.ac-role:hover:not(:disabled){background:var(--ivory);color:var(--text-primary)}button.ac-role.is-active{background:var(--signal-soft);border-color:color-mix(in srgb,var(--signal) 35%,transparent);color:var(--active-text)}.ac-count{font-size:12px;font-weight:600;color:var(--text-secondary);font-variant-numeric:tabular-nums}.ac-editor{gap:16px}.ac-editor-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.ac-kicker{margin:0;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--signal)}.ac-status{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;font-size:13px;font-weight:600;background:var(--ivory);color:var(--text-secondary)}.ac-status.is-saved{background:var(--teal-soft);color:var(--teal-ink)}.ac-status.is-error{background:var(--coral-soft);color:var(--coral-text)}.ac-spin{animation:ac-spin .9s linear infinite}@keyframes ac-spin{to{transform:rotate(360deg)}}.ac-live{margin:0;display:flex;align-items:center;gap:6px;font-size:13px}.ac-search{display:flex;align-items:center;gap:8px;color:var(--text-secondary)}.ac-search input{flex:1}.ac-group{display:grid;gap:8px}.ac-group>header{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;padding-bottom:6px;border-bottom:1px solid var(--border)}.ac-group h3{margin:0;font-size:14px;text-transform:uppercase;letter-spacing:.05em}.ac-group h3 .muted{margin-left:6px;text-transform:none;letter-spacing:0;font-weight:500}.ac-group-actions{display:flex;gap:6px}.ac-group-actions button{min-height:32px;padding:4px 12px;font-size:13px}.ac-row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);transition:background var(--transition),border-color var(--transition)}.ac-row.is-on{border-color:color-mix(in srgb,var(--teal) 40%,var(--border));background:color-mix(in srgb,var(--teal-soft) 45%,var(--surface))}.ac-row-main{display:flex;align-items:center;gap:10px}.ac-switch{display:inline-flex;align-items:center;gap:10px;margin:0;cursor:pointer;font-weight:600}.ac-switch input{position:absolute;opacity:0;width:1px;height:1px}.ac-track{position:relative;width:38px;height:22px;border-radius:999px;background:var(--border-strong);transition:background var(--transition);flex:0 0 auto}.ac-track:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:var(--shadow-sm);transition:transform .16s ease}.ac-switch input:checked+.ac-track{background:var(--teal)}.ac-switch input:checked+.ac-track:after{transform:translate(16px)}.ac-switch input:focus-visible+.ac-track{outline:3px solid color-mix(in srgb,var(--signal) 45%,transparent);outline-offset:2px}.ac-switch input:disabled+.ac-track{opacity:.6}.ac-lock{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--text-secondary)}.ac-actions{display:flex;gap:6px;flex-wrap:wrap}button.ac-chip{min-height:30px;padding:4px 12px;border-radius:999px;font-size:13px;font-weight:600;background:var(--surface);color:var(--text-secondary);border:1px solid var(--border-strong);box-shadow:none}button.ac-chip:hover:not(:disabled){background:var(--ivory);color:var(--text-primary)}button.ac-chip.is-on{background:var(--signal);border-color:var(--signal);color:#fff}.ac-viewonly{font-size:12px}@media(max-width:960px){.ac-layout{grid-template-columns:1fr}.ac-roles{position:static}.ac-roles ul{display:flex;gap:6px;overflow-x:auto}button.ac-role{white-space:nowrap}}@media(prefers-reduced-motion:reduce){.ac-spin{animation:none}}.lv-page .page-actions{display:flex;gap:.5rem}.lv-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end}.lv-between{justify-content:space-between}.lv-grow{flex:1 1 14rem}.lv-field{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem}.lv-inline{flex-direction:row;align-items:center;gap:.5rem}.lv-sub{display:block;font-size:.8rem}.lv-form{display:flex;flex-direction:column;gap:.9rem}.lv-form h2,.lv-classes h3{margin:0;font-size:1.05rem}.lv-actions{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}.lv-problem{color:var(--danger, #b91c1c);margin:0}.lv-plan{display:flex;flex-direction:column;gap:.6rem;padding-top:.25rem;border-top:1px solid var(--border, #e7e5e4)}.lv-plan p{margin:0}.lv-classes{display:flex;flex-direction:column;gap:.6rem}.lv-fill{justify-content:space-between}.lv-classes select{min-width:14rem;max-width:100%}tr.lv-needs td{background:color-mix(in srgb,var(--warning, #b45309) 7%,transparent)}.lv-balances{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.75rem}.lv-balance{display:flex;flex-direction:column;gap:.15rem;padding:.9rem 1rem}.lv-balance strong{font-size:1.6rem;line-height:1.1}.lv-card{display:flex;flex-direction:column;gap:.5rem}.lv-card-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.lv-card-head h3{margin:0;font-size:1rem}.lv-card-head p{margin:0}.lv-person{margin:0 0 .2rem}.lv-reason{margin:0;white-space:pre-wrap}.lv-subs summary{cursor:pointer;font-weight:600;font-size:.9rem;margin-bottom:.4rem}.lv-pill{display:inline-block;padding:.15rem .6rem;border-radius:999px;font-size:.78rem;font-weight:600;white-space:nowrap;background:var(--surface-muted, #f1f5f9)}.lv-pill-success{background:color-mix(in srgb,var(--success, #15803d) 14%,transparent);color:var(--success, #15803d)}.lv-pill-warning{background:color-mix(in srgb,var(--warning, #b45309) 14%,transparent);color:var(--warning, #b45309)}.lv-pill-danger{background:color-mix(in srgb,var(--danger, #b91c1c) 14%,transparent);color:var(--danger, #b91c1c)}.lv-tabs{display:flex;gap:.4rem;flex-wrap:wrap}.lv-checks,.lv-insts{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;border:0;padding:0;margin:0}.lv-insts legend{font-size:.85rem;margin-bottom:.3rem}.lv-check{display:flex;gap:.45rem;align-items:flex-start;font-size:.9rem}.lv-check input{margin-top:.2rem}.lv-rules{font-size:.85rem}.lv-row-actions{white-space:nowrap}tr.lv-inactive td{opacity:.6}.lv-field textarea{width:100%}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:18px;box-shadow:var(--shadow-sm);width:auto;display:grid;gap:12px}.card.wide,.card.tile{width:auto}.card.tile{text-decoration:none;color:inherit;align-content:start;min-height:148px;transition:border-color var(--transition),box-shadow var(--transition)}.card.tile:hover{border-color:#d7b3bb;box-shadow:var(--shadow-md)}.card.tile h2{margin:0;font-size:16px}.card.tile p{margin:0}.workspace{display:grid;gap:16px}.page-header{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.page-title{margin:0;font-size:28px;font-weight:700;letter-spacing:-.02em}.page-description{margin:6px 0 0;color:#3e4c66;max-width:68ch}.screen-brief{display:grid;gap:18px;padding:22px 24px;background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--primary-burgundy);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.brief-kicker{margin:0 0 6px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--primary-burgundy)}.brief-title{margin:0;font-size:clamp(26px,3vw,34px);letter-spacing:-.03em;line-height:1.15}.brief-summary{margin:8px 0 0;max-width:68ch;font-size:15px;line-height:1.5;color:#243049}.brief-action{margin-top:14px}.brief-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin:0}.brief-facts div{margin:0;padding:12px 14px;background:var(--background);border-radius:10px}.brief-facts dt{margin:0;font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;color:var(--text-secondary)}.brief-facts dd{margin:6px 0 0;display:grid;gap:2px}.brief-facts strong{font-size:26px;letter-spacing:-.03em;line-height:1}.brief-facts span,.field-help,.record-purpose,.screen-note,.record-identity{font-size:12px;font-weight:500;color:var(--text-secondary);line-height:1.4}.brief-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.brief-steps li{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start}.brief-steps li>span{width:22px;height:22px;border-radius:999px;display:grid;place-items:center;background:var(--soft-red);color:var(--primary-burgundy);font-size:12px;font-weight:700}.brief-steps strong{display:block;font-size:13px}.brief-steps p{margin:2px 0 0;font-size:12px;color:var(--text-secondary)}.brief-asof,.screen-note,.record-purpose,.record-identity{margin:4px 0 0}.screen-note{margin:0;max-width:72ch;font-size:14px;color:#243049}.dashboard .panel,.policy-notes{min-height:0}.decision-list,.change-feed,.metric-lines,.policy-notes ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}.decision-list article{display:grid;gap:6px;padding-bottom:12px;border-bottom:1px solid var(--border)}.decision-list article:last-child{border-bottom:0;padding-bottom:0}.decision-head{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.decision-head h3,.decision-list p,.change-feed strong{margin:0;font-size:14px}.decision-list ul{margin:0;padding:0;list-style:none;display:grid;gap:4px}.decision-list li,.metric-lines li,.change-feed li{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:baseline;font-size:13px}.decision-list li span,.change-feed span,.change-feed time,.metric-lines p{color:var(--text-secondary);font-size:12px;margin:0}.change-feed li{display:grid;gap:2px;padding-bottom:10px;border-bottom:1px solid var(--border)}.metric-lines li{display:grid;grid-template-columns:64px 1fr auto;gap:12px;align-items:center}.metric-lines strong{font-size:22px}.list-bar{align-items:start}.record-purpose{max-width:68ch}.page-actions{display:flex;gap:8px;flex-wrap:wrap}.toolbar,.filter-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:end;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px}.toolbar label,.filter-bar label{flex:1 1 180px;min-width:160px;margin:0}.toolbar button,.filter-bar button{flex:0 0 auto}.list-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:42px}.list-bar h2{margin:0;font-size:18px}.list-pager{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:12px}.list-pager .muted{margin-right:auto}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-section{display:grid;gap:12px}.tenant-create{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px;margin-bottom:20px}.form-hint{margin:0 0 12px;font-size:.875rem;color:var(--muted);line-height:1.45;max-width:52rem}.tenant-brand-editor{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px;margin-bottom:20px;gap:14px}.tenant-brand-editor-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.brand-preset-row{display:flex;flex-wrap:wrap;gap:8px}.brand-preset-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--ivory);font-size:12px;cursor:pointer}.brand-preset-chip:hover:not(:disabled){border-color:var(--primary-burgundy)}.brand-swatch{width:14px;height:14px;border-radius:4px;border:1px solid rgba(0,0,0,.12);display:inline-block}.brand-color-row{display:flex;gap:8px;align-items:center}.brand-color-row input[type=color]{width:42px;height:36px;padding:2px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.brand-preview{display:flex;flex-direction:column;gap:4px;padding:16px;border-radius:var(--radius-md)}.brand-table-swatches{display:inline-flex;align-items:center;gap:6px;font-size:12px}.table-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.form-section-title{margin:0;font-size:14px;font-weight:700;color:var(--text-primary)}.form-footer{display:flex;justify-content:flex-end;gap:8px;padding-top:8px;border-top:1px solid var(--border)}.required-mark{color:var(--danger)}.dashboard{gap:18px}.command-hero{display:grid;grid-template-columns:1.4fr .8fr;gap:20px;align-items:stretch;padding:28px;border-radius:var(--radius-lg);background:radial-gradient(circle at 85% 20%,rgba(158,24,48,.28),transparent 40%),linear-gradient(135deg,var(--deep-burgundy) 0%,var(--primary-burgundy) 62%,#7a1428 100%);color:#fff;box-shadow:var(--shadow-md)}.command-kicker{margin:0 0 10px;font-size:11px;letter-spacing:.12em;font-weight:700;color:var(--light-gold);text-transform:uppercase}.command-greeting{margin:0 0 6px;font-size:14px;opacity:.92}.command-title{margin:0 0 8px;font-size:clamp(28px,3vw,36px);font-weight:700;letter-spacing:-.02em}.command-copy{margin:0 0 16px;max-width:48ch;opacity:.9;font-size:14px}.command-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;border:1px solid rgba(232,210,122,.55);background:#4f0b1873;color:var(--light-gold);font-size:12px;font-weight:600}.command-metric{align-self:center;justify-self:end;width:min(260px,100%);background:#00000038;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-md);padding:18px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.command-metric .label{margin:0 0 8px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--light-gold);font-weight:700}.command-metric .value{margin:0;font-size:28px;font-weight:700}.command-metric .meta{margin:8px 0 0;font-size:12px;opacity:.85}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.kpi-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px;box-shadow:var(--shadow-sm);display:grid;gap:10px;min-height:112px}.kpi-card a{color:inherit;text-decoration:none}.kpi-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center}.kpi-icon.tone-red{background:var(--soft-red);color:var(--primary-burgundy)}.kpi-icon.tone-gold{background:#f7f0d8;color:#8a6d12}.kpi-icon.tone-blue{background:var(--info-soft);color:var(--info)}.kpi-icon.tone-green{background:var(--success-soft);color:var(--success)}.kpi-icon.tone-orange{background:#fff1e6;color:#c45c12}.kpi-icon.tone-neutral{background:#eef1f5;color:var(--text-secondary)}.kpi-value{margin:0;font-size:26px;font-weight:700;letter-spacing:-.02em;line-height:1.1}.kpi-label{margin:0;font-size:13px;font-weight:600;color:var(--text-primary)}.kpi-meta{margin:0;font-size:12px;color:var(--text-secondary)}.dashboard-panels{display:grid;grid-template-columns:1.45fr .9fr;gap:14px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:18px;display:grid;gap:14px;min-height:280px}.panel-header{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.panel-header h2{margin:0;font-size:16px;font-weight:700}.bar-list{display:grid;gap:12px}.bar-row{display:grid;gap:6px}.bar-meta{display:flex;justify-content:space-between;gap:12px;font-size:13px}.bar-meta strong{font-weight:600}.bar-track{height:10px;border-radius:999px;background:#f0f2f5;overflow:hidden}.bar-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--gold),var(--primary-burgundy))}.inbox-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.inbox-item{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:start;padding:12px;border:1px solid var(--border);border-radius:10px;text-decoration:none;color:inherit;transition:border-color var(--transition),background var(--transition)}.inbox-item:hover{background:var(--ivory);border-color:#d7b3bb;color:inherit}.inbox-item.unread{border-color:#d7b3bb;background:#fffafb}.inbox-item h3{margin:0 0 4px;font-size:14px}.inbox-item p{margin:0;font-size:12px;color:var(--text-secondary)}.inbox-tags{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.status-badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.02em;text-transform:lowercase}.badge-success{background:var(--success-soft);color:var(--success)}.badge-warning{background:var(--warning-soft);color:var(--warning)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.badge-neutral{background:#eef1f5;color:var(--text-secondary)}.badge-info{background:var(--info-soft);color:var(--info)}.badge-gold{background:#f7f0d8;color:#8a6d12}.open-reqs{margin:0;padding-left:18px;color:var(--text-secondary);font-size:13px}.table-shell{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);overflow:auto;box-shadow:var(--shadow-sm)}.table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.table-shell .table{border:0;border-radius:0;box-shadow:none}.table th,.table td{border-bottom:1px solid var(--border);padding:10px 12px;text-align:left;font-size:13px}.table th{font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--text-secondary);background:#fafbfc;font-weight:700}.table tbody tr{transition:background var(--transition)}.table tbody tr.is-clickable{cursor:pointer}.table tbody tr:hover{background:#fbf6f7}.table tbody tr:last-child td{border-bottom:0}.table th.col-status,.table td.col-status{width:132px;white-space:nowrap}.empty-state{display:grid;justify-items:start;gap:8px;padding:20px;border:1px dashed var(--border);border-radius:var(--radius-md);background:#fafbfc}.empty-state .empty-icon{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--soft-red);color:var(--primary-burgundy)}.empty-state h3{margin:0;font-size:15px}.empty-state p{margin:0;color:var(--text-secondary);font-size:13px}.banner{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:10px;border:1px solid var(--border);font-size:13px}.banner.error{background:var(--danger-soft);border-color:#f3c3c3;color:var(--danger)}.banner.success{background:var(--success-soft);border-color:#bfe4cf;color:var(--success)}.skeleton-grid{display:grid;gap:12px}.skeleton{background:linear-gradient(90deg,#eceff3 25%,#f7f8fa,#eceff3 75%);background-size:200% 100%;animation:shimmer 1.2s infinite linear;border-radius:10px}.skeleton.hero{height:180px}.skeleton.kpi{height:112px}.skeleton.panel{height:280px}.skeleton.row{height:42px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.timetable-board{display:grid;gap:14px}.day-group{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.day-group-header{padding:10px 14px;background:#fafbfc;border-bottom:1px solid var(--border);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary)}.slot-list{display:grid}.slot-row{display:grid;grid-template-columns:148px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--border)}.slot-row:last-child{border-bottom:0}.slot-time{font-size:12px;font-weight:600;color:var(--primary-burgundy)}.slot-title{margin:0;font-size:14px;font-weight:600}.slot-meta{margin:2px 0 0;font-size:12px;color:var(--text-secondary)}.conflict-box{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:10px;background:var(--success-soft);color:var(--success);font-size:13px;font-weight:600}.conflict-box.warn{background:var(--warning-soft);color:var(--warning)}.module-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;align-items:stretch}.metric-grid,.action-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.metric-value{font-size:1.6rem;font-weight:700;margin:0}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#17203373;display:grid;place-items:center;padding:16px;z-index:60}.dialog{width:min(440px,100%)}.plan-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end}label.inline{display:flex;flex-direction:row;align-items:center;gap:8px;align-self:end}label.inline input[type=checkbox]{width:16px;height:16px;min-height:16px;padding:0}.kind-label{display:inline-block;font-weight:700;letter-spacing:.04em;border:1px solid var(--border);padding:2px 8px;background:var(--surface);border-radius:999px;font-size:11px}.kind-label.back-attendance,.session-back .kind-label{border-color:#b45309;background:#fff7ed;color:#9a3412}.row-back-attendance,.session-back{background:#fff7ed}.row-back-attendance td,.session-back td{border-color:#fed7aa}.hall-ticket-sheet{display:grid;gap:12px}.hall-ticket-card{border:1px solid var(--border);padding:16px;background:var(--surface)}.hall-ticket-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.hall-ticket-photo{width:72px;height:88px;border:1px dashed var(--border);display:grid;place-items:center;font-size:11px;color:var(--muted);flex-shrink:0}.hall-ticket-card h3{margin:0 0 8px;font-size:16px}.stat-strip{display:flex;flex-wrap:wrap;gap:16px;margin:12px 0}@media print{.app-shell,.sidebar,.topbar,.toolbar,.tabs,.banner,button,.page-header-actions{display:none!important}.workspace,.hall-ticket-sheet,.print-only-block{display:block!important;width:100%!important}.hall-ticket-card,.marksheet-sheet{break-inside:avoid;page-break-inside:avoid;border:1px solid #111;margin-bottom:16px}.screen-only{display:none!important}}.tabs{margin:0;display:flex;flex-wrap:wrap;gap:8px;align-items:center}.toolbar.tabs{align-items:center}.toolbar.tabs button,.tabs button,.step-strip button{min-height:40px}.stepper button{font-size:.85rem}.step-strip{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.step-strip button{display:inline-flex;align-items:center;gap:8px}.step-index{width:22px;height:22px;border-radius:999px;display:inline-grid;place-items:center;background:#ffffff38;font-size:12px;font-weight:700}button.secondary .step-index{background:var(--soft-red);color:var(--primary-burgundy)}.record-list{display:grid;gap:16px;align-content:start}.record-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#17203373;z-index:55;display:flex;justify-content:flex-end}.record-panel{width:min(520px,100%);height:100%;background:var(--surface);box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:16px;padding:20px;overflow:auto}.record-panel h3{margin:0;font-size:18px}.context-facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.context-facts div{display:grid;gap:2px;align-content:start}.context-facts span{font-size:12px;font-weight:600;color:var(--text-secondary)}.rule-card{display:grid;gap:12px}.rule-card h3{margin:0;font-size:15px}.field-error{color:var(--danger);font-size:12px;font-weight:500}.mark-grid input{width:6rem}.mark-grid input[aria-invalid=true]{border-color:var(--danger)}.change-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px 20px}.overview-dl{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px;margin:0}.overview-dl div{display:grid;gap:2px;align-content:start}.overview-dl dt{font-size:12px;font-weight:600;color:var(--text-secondary)}.overview-dl dd{margin:0}.pref-table{width:100%;background:var(--surface);border-collapse:collapse}.pref-table th,.pref-table td{border:1px solid var(--border);padding:8px 12px;text-align:left;vertical-align:top}:root{--primary-burgundy: #3358e8;--deep-burgundy: #1f3db8;--primary-red: #0f9488;--red-accent: #0f9488;--soft-red: #e9eeff;--active-bg: #e9eeff;--active-text: #2443b8;--gold: #ffb020;--light-gold: #ffd27a;--ink: #0a1230;--ink-raised: #111b40;--ink-hover: #18244f;--ink-line: #22306a;--ink-text: #c7cfe2;--ink-muted: #8e9ab8;--ink-soft: #b7c1da;--signal: var(--primary-burgundy);--signal-deep: var(--deep-burgundy);--signal-soft: var(--soft-red);--teal: #19c2b1;--teal-bright: #6be3d4;--teal-ink: #0a6b62;--teal-soft: #ddf6f2;--amber: #ffb020;--amber-ink: #2a1a00;--amber-text: #8a5300;--amber-soft: #fff3db;--coral: #ff5a6e;--coral-strong: #d42a40;--coral-text: #b42318;--coral-soft: #ffe6e3;--violet: #9b7bff;--violet-soft: #efeaff;--canvas: #edf0f7;--canvas-deep: #e3e8f2;--background: var(--canvas);--surface: #ffffff;--text-primary: #0b1224;--text-secondary: #556079;--border: #dfe4ee;--border-strong: #cfd6e4;--ivory: #f6f8fc;--success: var(--teal-ink);--success-soft: var(--teal-soft);--warning: var(--amber-text);--warning-soft: var(--amber-soft);--danger: var(--coral-text);--danger-soft: var(--coral-soft);--info: var(--signal);--info-soft: var(--signal-soft);--muted: var(--text-secondary);--shadow-sm: 0 1px 2px rgba(11, 18, 36, .05);--shadow-md: 0 12px 30px rgba(11, 18, 36, .08);--shadow-lg: 0 20px 44px rgba(11, 18, 36, .14);--radius-sm: 10px;--radius-md: 14px;--radius-lg: 18px;--radius-xl: 22px;--sidebar-width: 272px;--header-height: 68px;--font: "Instrument Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display: "Bricolage Grotesque", "Instrument Sans", system-ui, sans-serif;--transition: .16s ease;color:var(--text-primary);background:var(--canvas);font-family:var(--font);line-height:1.5;font-size:15px;-webkit-font-smoothing:antialiased}.role-faculty{--role: #4f7cff}.role-hod{--role: #9b7bff}.role-student{--role: #19c2b1}.role-secretary{--role: #ffb020}.role-principal{--role: #2ee6a6}.role-admin{--role: #5aa9ff}.role-super-admin{--role: #ff8a4c}.role-coe{--role: #ff5a6e}.role-external-examiner{--role: #ff8a99}.role-platform-master,.role-none{--role: #c7cfe2}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--canvas);color:var(--text-primary)}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.01em}a{color:var(--signal);text-decoration:none;font-weight:600}a:hover{color:var(--signal-deep)}:focus-visible{outline:3px solid color-mix(in srgb,var(--signal) 55%,white);outline-offset:2px}button,input,select,textarea{font:inherit}button{border:0;background:var(--signal);color:#fff;border-radius:12px;padding:10px 18px;min-height:44px;font-weight:700;cursor:pointer;transition:background var(--transition),border-color var(--transition),color var(--transition),box-shadow var(--transition),transform var(--transition)}button:hover:not(:disabled){background:var(--signal-deep)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.55;cursor:not-allowed}a.btn-secondary,button.secondary,.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 18px;border-radius:12px;background:var(--surface);color:var(--text-primary);border:1px solid var(--border-strong);font-weight:600;text-decoration:none}button.secondary:hover:not(:disabled),.btn-secondary:hover:not(:disabled){background:var(--ivory);border-color:var(--text-secondary);color:var(--text-primary)}button.btn-gold,.btn-gold,.btn-urgent{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:0 22px;border-radius:14px;background:var(--amber);color:var(--amber-ink);font-weight:800;box-shadow:0 10px 28px #ffb0204d}button.btn-gold:hover:not(:disabled),.btn-urgent:hover{background:#ffbf47;color:var(--amber-ink)}.btn-on-ink{display:inline-flex;align-items:center;gap:8px;min-height:50px;padding:0 20px;border-radius:14px;background:var(--ink-raised);border:1px solid var(--ink-line);color:#fff;font-weight:600}.btn-on-ink:hover{background:var(--ink-hover);color:#fff}button.btn-danger,.btn-danger{background:var(--coral-strong);color:#fff}button.btn-danger:hover:not(:disabled){background:#b81f34}button.btn-ghost,.btn-ghost{background:transparent;color:var(--text-secondary);min-height:40px;padding:6px 10px;font-weight:600}button.btn-ghost:hover:not(:disabled){background:var(--canvas);color:var(--text-primary)}label{display:grid;gap:6px;font-size:13px;font-weight:700;color:var(--text-primary)}input,select,textarea{padding:11px 14px;min-height:46px;border:1px solid var(--border-strong);border-radius:12px;background:var(--surface);color:var(--text-primary);font-weight:500;transition:border-color var(--transition),box-shadow var(--transition)}input[type=checkbox],input[type=radio]{min-height:0;width:18px;height:18px;accent-color:var(--signal)}input:hover,select:hover,textarea:hover{border-color:var(--text-secondary)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--signal);box-shadow:0 0 0 4px color-mix(in srgb,var(--signal) 16%,transparent)}input[aria-invalid=true],select[aria-invalid=true]{border-color:var(--coral-strong);background:snow}.muted{color:var(--text-secondary)}.error{color:var(--coral-text);margin:0;font-weight:600}.success{color:var(--teal-ink);margin:0;font-weight:600}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:absolute;left:12px;top:-60px;z-index:100;padding:10px 14px;border-radius:10px;background:var(--amber);color:var(--amber-ink)}.skip-link:focus{top:12px}.stack-lg{display:grid;gap:20px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}@media(prefers-color-scheme:dark){:root{--canvas: #0a1230;--canvas-deep: #070e22;--background: #070e22;--surface: #111b40;--ivory: #111b40;--border: #22306a;--border-strong: #2d3f80;--text-primary: #c7cfe2;--text-secondary: #8e9ab8;--muted: #8e9ab8;--signal-soft: rgba(51, 88, 232, .18);--soft-red: rgba(51, 88, 232, .18);--active-bg: rgba(51, 88, 232, .18);--active-text: #7a9bff;--teal-soft: rgba(25, 194, 177, .12);--amber-soft: rgba(255, 176, 32, .12);--coral-soft: rgba(255, 90, 110, .12);--violet-soft: rgba(155, 123, 255, .12);--success-soft: rgba(25, 194, 177, .12);--warning-soft: rgba(255, 176, 32, .12);--danger-soft: rgba(255, 90, 110, .12);--info-soft: rgba(51, 88, 232, .18);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 12px 30px rgba(0, 0, 0, .5);--shadow-lg: 0 20px 44px rgba(0, 0, 0, .65);color:var(--text-primary);background:var(--canvas)}}.auth-layout{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--canvas)}.auth-restoring{display:grid;justify-items:center;gap:14px;color:var(--text-secondary);font-weight:600}.auth-restoring .brand-mark{animation:pulse-mark 1.4s ease-in-out infinite}@keyframes pulse-mark{50%{transform:scale(.92);opacity:.7}}.login-split{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}.login-brand{position:relative;overflow:hidden;background:var(--ink);color:#fff;padding:44px 56px;display:flex;flex-direction:column;justify-content:space-between;gap:32px}.login-brand:after{content:"";position:absolute;right:-160px;bottom:-160px;width:420px;height:420px;border-radius:50%;border:56px solid color-mix(in srgb,var(--signal) 35%,transparent);pointer-events:none}.login-brand-top{display:flex;align-items:center;gap:12px}.login-brand-top strong{display:block;font-family:var(--font-display);font-size:19px}.login-brand-top span{display:block;font-size:13px;color:var(--ink-muted)}.login-brand-copy{position:relative;z-index:1;display:grid;gap:18px;max-width:600px}.login-brand-copy h1{margin:0;font-size:clamp(36px,4.4vw,60px);font-weight:800;line-height:1;letter-spacing:-.035em}.login-brand-copy p{margin:0;max-width:46ch;font-size:18px;color:var(--ink-soft)}.login-features{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.login-features li{display:grid;gap:4px;padding:16px;border-radius:16px;background:var(--ink-raised);border:1px solid var(--ink-line)}.login-features strong{font-family:var(--font-display);font-size:24px;color:var(--teal-bright)}.login-features li:nth-child(2) strong{color:#ffc75a}.login-features li:nth-child(3) strong{color:#a9bcff}.login-features span{font-size:13px;color:var(--ink-soft)}.login-brand-footer{position:relative;z-index:1;margin:0;font-size:12px;color:#6f7c9e}.login-panel{display:grid;place-items:center;padding:40px 24px;background:var(--surface)}.login-form{width:min(400px,100%);display:grid;gap:18px}.login-form h1{margin:0;font-size:36px;font-weight:800;letter-spacing:-.02em}.login-form .lead{margin:4px 0;color:var(--text-secondary)}.login-form input{min-height:52px;font-size:16px}.login-form button[type=submit]{width:100%;min-height:54px;margin-top:4px;border-radius:14px;font-size:16px;font-weight:800;box-shadow:0 12px 28px color-mix(in srgb,var(--signal) 32%,transparent)}.login-links{margin:0;font-size:14px}.login-note{margin:0;padding:14px;border-radius:12px;background:var(--ivory);font-size:13px;color:var(--text-secondary)}.login-note strong{color:var(--text-primary)}.login-compliance,.login-dev-hint{margin:0;font-size:12px;color:var(--text-secondary)}.exam-entry{width:min(880px,100%);display:grid;gap:16px}.criteria-editor,.criteria-marks{display:grid;gap:8px}.marksheet-sheet{border:1px solid var(--border);border-radius:var(--radius-md);padding:16px;margin-top:12px}.password-field{position:relative}.password-field input{width:100%;padding-right:52px}.password-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:transparent;color:var(--text-secondary);min-height:40px;padding:4px 10px}.password-toggle:hover:not(:disabled){background:var(--canvas);color:var(--text-primary)}.brand-mark{display:inline-flex;color:var(--signal);flex-shrink:0}.brand-mark-glow svg{filter:drop-shadow(0 6px 16px color-mix(in srgb,var(--signal) 55%,transparent))}.app-shell{min-height:100vh;display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);background:var(--canvas)}.app-main{min-width:0;display:flex;flex-direction:column;min-height:100vh}.app-content{flex:1;width:100%;max-width:1440px;padding:24px 32px 48px;outline:none}.sidebar{position:sticky;top:0;height:100vh;background:var(--ink);color:var(--ink-text);display:flex;flex-direction:column;gap:16px;padding:18px 14px 16px;z-index:40}.sidebar-backdrop{display:none}.sidebar-brand{display:flex;align-items:center;gap:12px;padding:0 6px}.sidebar-brand strong{display:block;font-family:var(--font-display);font-size:16px;color:#fff}.sidebar-brand span{display:block;font-size:12px;color:var(--ink-muted)}.sidebar-close{display:none;margin-left:auto}.sidebar .sidebar-close{color:var(--ink-text)}.sidebar .sidebar-close:hover:not(:disabled){background:var(--ink-hover);color:#fff}.role-card{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;padding:10px 12px;border-radius:14px;background:var(--ink-raised);border:1px solid var(--ink-line)}.role-dot{width:10px;height:10px;border-radius:50%;background:var(--role);box-shadow:0 0 0 4px color-mix(in srgb,var(--role) 22%,transparent)}.role-card-text{display:grid;min-width:0}.role-card-kicker{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted)}.role-card strong{color:#fff;font-size:14px}.role-card-select{position:relative;display:flex;align-items:center;color:#fff}.role-card-select select{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;min-height:28px;padding:0 24px 0 0;border:0;background:transparent;color:#fff;font-size:14px;font-weight:700;cursor:pointer}.role-card-select select:focus{box-shadow:none}.role-card-select option{color:var(--text-primary)}.role-card-select svg{position:absolute;right:0;pointer-events:none;color:var(--ink-muted)}.role-card-error{grid-column:1 / -1;margin:0;font-size:12px;color:#ff8a99}.sidebar-nav{flex:1;overflow-y:auto;margin:0 -6px;padding:0 6px 8px;display:grid;align-content:start;gap:18px;scrollbar-width:thin;scrollbar-color:var(--ink-line) transparent}.nav-section-title{margin:0 12px 6px;font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#6f7c9e}.nav-section ul,.nav-group-items{list-style:none;margin:0;padding:0;display:grid;gap:2px}.nav-item{display:flex;align-items:center;gap:12px;min-height:42px;padding:0 12px;border-radius:12px;color:var(--ink-text);font-size:14px;font-weight:500;text-decoration:none;transition:background var(--transition),color var(--transition)}.nav-item:hover{background:var(--ink-hover);color:#fff}.nav-item.is-active{background:var(--signal);color:#fff;font-weight:700;box-shadow:0 8px 20px color-mix(in srgb,var(--signal) 38%,transparent)}.nav-item svg{flex-shrink:0}.nav-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-count{min-width:22px;height:22px;padding:0 7px;border-radius:11px;display:grid;place-items:center;background:var(--amber);color:var(--amber-ink);font-size:12px;font-weight:800;font-variant-numeric:tabular-nums}.nav-item.is-active .nav-count{background:#fff;color:var(--ink)}button.nav-group-toggle{display:flex;width:100%;align-items:center;justify-content:space-between;gap:8px;min-height:34px;margin-top:4px;padding:6px 12px;border-radius:10px;background:transparent;color:var(--ink-muted);font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}button.nav-group-toggle:hover:not(:disabled){background:var(--ink-hover);color:#fff}button.nav-group-toggle svg{transition:transform var(--transition);transform:rotate(-90deg)}button.nav-group-toggle svg.is-open{transform:rotate(0)}.nav-group-items .nav-item{padding-left:20px}.sidebar-user{display:flex;align-items:center;gap:10px;padding:10px;border-radius:14px;background:var(--ink-raised)}.sidebar-avatar,.user-avatar{width:38px;height:38px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;background:var(--role);color:var(--ink);font-size:13px;font-weight:800}.sidebar-user-text{flex:1;min-width:0;display:grid;line-height:1.3}.sidebar-user-text strong,.sidebar-user-text span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-text strong{color:#fff;font-size:13px}.sidebar-user-text span{color:var(--ink-muted);font-size:12px}button.sidebar-signout{width:40px;min-height:40px;padding:0;display:grid;place-items:center;background:transparent;color:var(--ink-muted)}button.sidebar-signout:hover:not(:disabled){background:var(--ink-hover);color:#fff}.app-header{position:sticky;top:0;z-index:30;min-height:var(--header-height);display:flex;align-items:center;gap:14px;padding:12px 32px;background:var(--ink);border-bottom:1px solid #1a2550;color:#fff}button.header-menu-btn{display:none;width:44px;min-height:44px;padding:0;place-items:center;border-radius:12px;background:var(--ink-raised);border:1px solid var(--ink-line);color:#fff}.breadcrumbs{display:flex;align-items:center;gap:6px;min-width:0;font-size:13px;color:var(--ink-muted);white-space:nowrap}.breadcrumb-item{display:inline-flex;align-items:center;gap:6px;min-width:0}.breadcrumb-sep{color:#56628a}.breadcrumbs a{color:var(--ink-muted);font-weight:500}.breadcrumbs a:hover{color:#fff}.breadcrumb-current{color:#fff;font-weight:600;overflow:hidden;text-overflow:ellipsis}.app-header-search{flex:1 1 280px;max-width:480px;margin-left:auto}.app-header-right{display:flex;align-items:center;gap:10px}.header-chip{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px;border-radius:18px;background:#16224d;color:var(--ink-text);font-size:13px;font-weight:600;white-space:nowrap}.header-icon-btn{position:relative;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--ink-raised);border:1px solid var(--ink-line);color:#fff}.header-icon-btn:hover{background:var(--ink-hover);color:#fff}.header-dot{position:absolute;top:-6px;right:-6px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;display:grid;place-items:center;background:var(--coral);border:2px solid var(--ink);color:#fff;font-size:11px;font-weight:800}.user-menu{position:relative}button.user-menu-trigger{display:flex;align-items:center;gap:10px;min-height:44px;padding:3px 10px 3px 3px;border-radius:24px;background:var(--ink-raised);border:1px solid var(--ink-line);color:#fff;font-weight:500}button.user-menu-trigger:hover:not(:disabled){background:var(--ink-hover)}.user-meta{display:grid;text-align:left;line-height:1.25}.user-meta strong{font-size:13px;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-meta span{font-size:12px;color:var(--ink-muted)}.user-menu-dropdown{position:absolute;right:0;top:calc(100% + 8px);min-width:260px;padding:8px;border-radius:16px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);color:var(--text-primary);display:grid;gap:2px;z-index:50}.user-menu-heading{display:grid;padding:10px 12px 12px;margin-bottom:4px;border-bottom:1px solid var(--border);font-size:14px}.user-menu-heading .muted{font-size:13px}.user-menu-item,button.user-menu-item{display:flex;align-items:center;gap:10px;width:100%;min-height:42px;padding:0 12px;border-radius:10px;background:transparent;color:var(--text-primary);font-size:14px;font-weight:600;text-align:left}.user-menu-item:hover,button.user-menu-item:hover:not(:disabled){background:var(--canvas);color:var(--text-primary)}button.user-menu-item.danger{color:var(--coral-text)}.global-search{position:relative}.global-search-field{display:flex;align-items:center;gap:10px;height:44px;padding:0 14px;border-radius:12px;background:var(--ink-raised);border:1px solid var(--ink-line);color:var(--ink-muted)}.global-search-field:focus-within{border-color:color-mix(in srgb,var(--signal) 70%,white);box-shadow:0 0 0 4px color-mix(in srgb,var(--signal) 25%,transparent)}.global-search input{flex:1;min-width:0;min-height:0;padding:0;border:0;background:transparent;color:#fff;font-size:14px}.global-search input::placeholder{color:var(--ink-muted)}.global-search input:focus{box-shadow:none}.search-kbd{padding:2px 8px;border-radius:6px;border:1px solid var(--ink-line);font-size:11px;font-weight:700;color:var(--ink-muted);white-space:nowrap}.search-results{position:absolute;left:0;right:0;top:calc(100% + 8px);max-height:420px;overflow:auto;padding:8px;border-radius:16px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);z-index:60;display:grid;gap:2px}.search-results .muted{margin:8px}.search-hit{display:block;padding:10px 12px;border-radius:10px;color:var(--text-primary);font-weight:600;font-size:14px}.search-hit:hover{background:var(--canvas);color:var(--text-primary)}.mobile-tabs{display:none}.workspace{display:grid;gap:20px}.page-header{position:relative;overflow:hidden;display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:18px;padding:26px 28px;border-radius:var(--radius-xl);background:var(--ink);color:#fff;box-shadow:var(--shadow-md)}.page-header:after{content:"";position:absolute;right:-90px;top:-90px;width:220px;height:220px;border-radius:50%;border:34px solid color-mix(in srgb,var(--role, var(--signal)) 26%,transparent);pointer-events:none}.page-header>*{position:relative;z-index:1}.page-title{margin:0;font-size:clamp(26px,3vw,36px);font-weight:800;line-height:1.08;letter-spacing:-.03em}.page-description{margin:8px 0 0;max-width:70ch;color:var(--ink-soft);font-size:15px}.page-actions{display:flex;flex-wrap:wrap;gap:10px}.page-header .btn-secondary,.page-header button.secondary{background:var(--ink-raised);border-color:var(--ink-line);color:#fff}.page-header .btn-secondary:hover:not(:disabled),.page-header button.secondary:hover:not(:disabled){background:var(--ink-hover);color:#fff}.card,.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);padding:22px;box-shadow:var(--shadow-sm);display:grid;gap:14px;align-content:start}.panel{min-height:0}.card h2,.panel-header h2{margin:0;font-size:21px;font-weight:700}.card.tile{min-height:150px;color:inherit;text-decoration:none;transition:border-color var(--transition),box-shadow var(--transition),transform var(--transition)}.card.tile:hover{border-color:color-mix(in srgb,var(--signal) 40%,var(--border));box-shadow:var(--shadow-md);transform:translateY(-2px);color:inherit}.card.tile h2{font-size:17px}.module-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.kpi-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center}.kpi-icon.tone-red,.kpi-icon.tone-blue{background:var(--signal-soft);color:var(--signal)}.kpi-icon.tone-gold,.kpi-icon.tone-orange{background:var(--amber-soft);color:var(--amber-text)}.kpi-icon.tone-green{background:var(--teal-soft);color:var(--teal-ink)}.kpi-icon.tone-neutral{background:var(--violet-soft);color:#5b3fd0}.toolbar,.filter-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:end;padding:16px;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm)}.toolbar label,.filter-bar label{flex:1 1 180px;min-width:0}.toolbar select,.toolbar input:not([type=checkbox]):not([type=radio]),.filter-bar select,.filter-bar input:not([type=checkbox]):not([type=radio]){width:100%;min-width:0}.tabs,.toolbar.tabs{display:flex;flex-wrap:wrap;gap:4px;align-items:center;align-self:start;justify-self:start;max-width:100%;padding:5px;border-radius:14px;background:var(--canvas-deep);border:0;box-shadow:none}.tabs button,.toolbar.tabs button{min-height:40px;padding:0 16px;border-radius:10px;background:var(--surface);color:var(--text-primary);font-weight:700;box-shadow:0 1px 3px #0b12241f}.tabs button:hover:not(:disabled),.toolbar.tabs button:hover:not(:disabled){background:var(--surface)}.tabs button.secondary,.toolbar.tabs button.secondary{background:transparent;border:0;color:var(--text-secondary);font-weight:600;box-shadow:none}.tabs button.secondary:hover:not(:disabled),.toolbar.tabs button.secondary:hover:not(:disabled){background:color-mix(in srgb,var(--surface) 60%,transparent);color:var(--text-primary)}.step-index{width:24px;height:24px;border-radius:50%;background:#ffffff3d;font-size:12px;font-weight:800}button.secondary .step-index{background:var(--signal-soft);color:var(--signal)}.status-badge{display:inline-flex;align-items:center;height:26px;padding:0 10px;border-radius:13px;font-size:12px;font-weight:700;letter-spacing:0;text-transform:none;white-space:nowrap}.badge-neutral{background:#eef1f6;color:#3b4560}.badge-gold{background:var(--amber-soft);color:var(--amber-text)}.table-shell{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:auto;box-shadow:var(--shadow-sm)}.table th,.table td{padding:13px 14px;border-bottom:1px solid #eef1f6;font-size:14px}.table th{position:sticky;top:0;z-index:1;background:var(--ivory);color:var(--text-secondary);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.table td{font-variant-numeric:tabular-nums}.table tbody tr:hover{background:color-mix(in srgb,var(--signal) 5%,white)}.table tbody tr.is-clickable td:first-child{font-weight:700}.empty-state{justify-items:center;text-align:center;gap:8px;padding:32px 20px;border:2px dashed var(--border-strong);border-radius:var(--radius-lg);background:var(--ivory)}.empty-state .empty-icon{width:48px;height:48px;border-radius:14px;background:var(--signal-soft);color:var(--signal)}.empty-state h3{font-size:17px}.empty-state p{max-width:52ch;font-size:14px}.banner{align-items:center;padding:14px 16px;border-radius:14px;font-size:14px;font-weight:600}.banner.error{background:var(--coral-soft);border-color:#ffb4ab;color:#7a1a10}.banner.success{background:var(--teal-soft);border-color:#a8e6dd;color:#064a43}.skeleton{background:linear-gradient(90deg,#e3e8f2 25%,#f3f5fa,#e3e8f2 75%);background-size:200% 100%;border-radius:var(--radius-lg)}.skeleton.hero{height:220px;background:linear-gradient(90deg,#0a1230 25%,#18244f,#0a1230 75%);background-size:200% 100%}.record-backdrop{background:#0a12308c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.record-panel{width:min(540px,100%);padding:24px;gap:18px;border-radius:22px 0 0 22px;box-shadow:var(--shadow-lg)}.record-panel h3{font-size:22px}.dialog{border-radius:var(--radius-xl);box-shadow:var(--shadow-lg)}.screen-brief{border-radius:var(--radius-xl)}.quick-create{display:grid;gap:14px;justify-items:start}.quick-create>:not(button){justify-self:stretch}.inbox-item{border-radius:var(--radius-lg)}.inbox-item.unread{border-color:color-mix(in srgb,var(--signal) 30%,var(--border));background:color-mix(in srgb,var(--signal) 4%,white);box-shadow:inset 4px 0 0 var(--signal)}.dashboard{display:grid;gap:20px}.hero-band{position:relative;overflow:hidden;display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:24px;margin:-24px -32px 0;padding:36px 32px 104px;background:var(--ink);color:#fff}.hero-band:before{content:"";position:absolute;right:-120px;top:-140px;width:380px;height:380px;border-radius:50%;border:52px solid color-mix(in srgb,var(--role, var(--signal)) 18%,transparent);pointer-events:none}.hero-band>*{position:relative;z-index:1}.hero-band-stack{display:grid;grid-template-columns:minmax(0,1fr);justify-content:stretch;align-items:start;gap:22px;padding-bottom:32px}.hero-copy{display:grid;gap:10px;max-width:760px}.hero-kicker{margin:0;font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--role, var(--amber))}.hero-title{margin:0;font-size:clamp(34px,4.2vw,50px);font-weight:800;line-height:1.02;letter-spacing:-.035em}.hero-summary{margin:0;max-width:62ch;font-size:17px;color:var(--ink-soft)}.hero-summary strong{color:#fff}.hero-asof{color:var(--ink-muted)}.hero-actions{display:flex;flex-wrap:wrap;gap:10px}.hero-overlap{margin-top:-84px;position:relative;z-index:2}.hero-band .filter-bar{background:var(--ink-raised);border-color:var(--ink-line);box-shadow:none}.hero-band .filter-bar label{color:var(--ink-soft)}.hero-band .filter-bar select,.hero-band .filter-bar input{background:var(--ink);border-color:var(--ink-line);color:#fff;color-scheme:dark}.metric-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px}.metric-tile{display:grid;align-content:start;gap:8px;min-height:132px;padding:20px;border-radius:var(--radius-xl);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-md);color:var(--text-primary);font-weight:500;transition:transform var(--transition),box-shadow var(--transition)}a.metric-tile:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);color:var(--text-primary)}.metric-tile-label{font-size:13px;font-weight:600;color:var(--text-secondary)}.metric-tile-value{font-family:var(--font-display);font-size:40px;font-weight:800;line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.metric-tile-hint{font-size:13px;color:var(--text-secondary)}.metric-tile.is-lead{background:var(--signal);border-color:var(--signal);color:#fff;box-shadow:0 16px 36px color-mix(in srgb,var(--signal) 34%,transparent)}a.metric-tile.is-lead:hover{color:#fff}.metric-tile.is-lead .metric-tile-label,.metric-tile.is-lead .metric-tile-hint{color:#ffffffd1}.hero-overlap-tight{margin-top:0}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));gap:20px;align-items:start}.panel-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px}.panel-meta{font-size:13px;color:var(--text-secondary)}.panel-empty{margin:0;color:var(--text-secondary)}.panel-link{display:inline-flex;align-items:center;gap:4px;font-size:14px}.queue-list,.timeline,.figure-list,.setup-list,.session-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.queue-row{display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:14px;background:var(--ivory);color:var(--text-primary);font-weight:500;transition:background var(--transition),transform var(--transition)}.queue-row:hover{background:color-mix(in srgb,var(--signal) 8%,white);color:var(--text-primary);transform:translate(2px)}.queue-count{flex-shrink:0;min-width:48px;height:46px;padding:0 8px;border-radius:12px;display:grid;place-items:center;background:var(--signal-soft);color:var(--signal-deep);font-family:var(--font-display);font-size:18px;font-weight:800;font-variant-numeric:tabular-nums}.queue-row.is-top .queue-count{background:var(--amber);color:var(--amber-ink)}.queue-row.is-done .queue-count{background:var(--teal-soft);color:var(--teal-ink)}.queue-row.is-done{opacity:.75}.queue-text{flex:1;min-width:0;display:grid;gap:2px}.queue-text strong{font-size:15px}.queue-text span{font-size:13px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.queue-go{color:#8e9ab8;flex-shrink:0}.all-clear{display:flex;gap:14px;align-items:center;padding:18px;border-radius:16px;background:var(--teal-soft);color:var(--teal-ink)}.all-clear strong{color:#064a43}.all-clear p{margin:2px 0 0;color:#2f6a63;font-size:14px}.timeline li{position:relative;display:grid;grid-template-columns:14px minmax(0,1fr);gap:12px;padding-bottom:6px}.timeline li:before{content:"";position:absolute;left:6px;top:16px;bottom:-6px;width:2px;background:var(--border)}.timeline li:last-child:before{display:none}.timeline-dot{width:14px;height:14px;margin-top:3px;border-radius:50%;background:var(--surface);border:3px solid var(--signal)}.timeline-text{display:grid;gap:2px}.timeline-text strong{font-size:14px}.timeline-text span{font-size:13px;color:var(--text-secondary)}.figure-list li{display:grid;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 0;border-top:1px solid #eef1f6}.figure-list li:first-child{border-top:0}.figure-list strong{font-family:var(--font-display);font-size:24px;font-weight:800;font-variant-numeric:tabular-nums}.figure-text{display:grid;font-size:14px;font-weight:600}.figure-text small{font-size:12px;font-weight:500;color:var(--text-secondary)}.panel-setup{background:#fff7f2;border-color:#ffd9c4}.setup-list li{display:flex;gap:12px;align-items:flex-start;font-size:14px}.setup-index{flex-shrink:0;width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:#ff8a4c;color:#2a1000;font-weight:800;font-size:13px}.dashboard-asof{margin:0;font-size:12px;color:var(--text-secondary)}.cycle-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:14px}.cycle-phase{display:grid;gap:12px;align-content:start;padding:16px;border-radius:18px;background:var(--ink-raised);border:1px solid var(--ink-line)}.cycle-phase-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.cycle-phase-head span{font-size:12px;font-weight:700;color:var(--ink-muted)}.cycle-steps{display:flex;flex-wrap:wrap;gap:6px}.cycle-step{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 10px;border-radius:10px;border:1px solid var(--ink-line);color:var(--ink-text);font-size:12px;font-weight:700}.cycle-step:hover{background:var(--ink-hover);color:#fff}.cycle-step-no{color:var(--ink-muted);font-variant-numeric:tabular-nums}.cycle-step.is-waiting{background:#3a2a0a;border:1px dashed var(--amber);color:#ffc75a}.cycle-step-count{min-width:20px;height:20px;padding:0 6px;border-radius:10px;display:grid;place-items:center;background:var(--amber);color:var(--amber-ink);font-size:11px;font-weight:800}.session-list li{display:grid;grid-template-columns:96px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 0;border-top:1px solid #eef1f6}.session-list li:first-child{border-top:0}.session-time{font-size:13px;font-weight:700;color:#3b4560;font-variant-numeric:tabular-nums}.session-text{display:grid;gap:2px;min-width:0}.session-text span{font-size:13px;color:var(--text-secondary)}.quick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}.quick-tile{display:flex;align-items:center;min-height:56px;padding:0 16px;border-radius:14px;background:var(--ink);color:#fff;font-weight:700;transition:background var(--transition),transform var(--transition)}.quick-tile:hover{background:var(--ink-hover);color:#fff;transform:translateY(-2px)}@media(max-width:1200px){.header-chip{display:none}.login-features{grid-template-columns:1fr}}@media(max-width:960px){.app-shell{grid-template-columns:minmax(0,1fr)}.sidebar{position:fixed;left:0;top:0;bottom:0;height:auto;width:min(var(--sidebar-width),86vw);transform:translate(-105%);transition:transform .22s ease;box-shadow:0 0 60px #00000059;z-index:70}.sidebar.is-open{transform:translate(0)}.sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0a12308c;opacity:0;pointer-events:none;transition:opacity .22s ease;z-index:65}.sidebar-backdrop.is-open{opacity:1;pointer-events:auto}.sidebar-close,button.header-menu-btn{display:inline-grid}.app-header{padding:10px 16px;gap:10px}.breadcrumbs{display:none}.app-header-search{flex:1 1 0;min-width:0;margin-left:0;max-width:none}.app-header-right{gap:8px}.user-meta,.user-menu-trigger>svg{display:none}button.user-menu-trigger{padding:3px}.app-content{padding:16px 16px 104px}.hero-band{margin:-16px -16px 0;padding:26px 16px 96px}.hero-band-stack{padding-bottom:24px}.hero-actions,.hero-actions>*{width:100%}.hero-actions>*{justify-content:center}.login-split{grid-template-columns:1fr}.login-brand{padding:28px 20px;gap:20px}.login-brand-copy h1{font-size:34px}.login-brand-copy p,.login-features,.login-brand-footer{display:none}.form-grid,.brief-steps,.slot-row{grid-template-columns:1fr}.mobile-tabs{position:fixed;left:0;right:0;bottom:0;z-index:60;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:6px 6px calc(10px + env(safe-area-inset-bottom));background:var(--ink);border-top:1px solid #1a2550}.mobile-tab,button.mobile-tab{display:grid;justify-items:center;align-content:center;gap:3px;min-height:56px;padding:4px 2px;border-radius:12px;background:transparent;color:var(--ink-muted);font-size:11px;font-weight:700}.mobile-tab:hover,button.mobile-tab:hover:not(:disabled){background:var(--ink-hover);color:#fff}.mobile-tab.is-active{background:var(--signal);color:#fff}.mobile-tab-icon{position:relative;display:grid}.mobile-tab-count{position:absolute;top:-6px;right:-12px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;display:grid;place-items:center;background:var(--amber);color:var(--amber-ink);font-size:10px;font-weight:800}.mobile-tab-label{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media(max-width:720px){.page-header{padding:22px 18px;border-radius:18px}.metric-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.metric-tile{min-height:0;padding:14px}.metric-tile-value{font-size:30px}.metric-tile-hint{display:none}.card,.panel{padding:18px;border-radius:18px}.session-list li{grid-template-columns:minmax(0,1fr) auto}.session-time{grid-column:1 / -1}.figure-list li{grid-template-columns:56px minmax(0,1fr) auto}.search-kbd{display:none}.table th,.table td{padding:11px 10px}}@media print{.sidebar,.app-header,.mobile-tabs{display:none!important}.app-shell{display:block}}
