:root{--c-bg: #f4f6f7;--c-surface: #ffffff;--c-surface-2: #f8fafa;--c-border: #d6dde1;--c-border-strong: #aab6bd;--c-text: #17212b;--c-text-muted: #4f5d69;--c-primary: #1d5f6b;--c-primary-hover: #154a54;--c-primary-soft: #e3f0f1;--c-on-primary: #ffffff;--c-accent: #b4541a;--c-success: #1b6b43;--c-success-bg: #e3f3ea;--c-warning: #7a4a00;--c-warning-bg: #fff1d6;--c-danger: #b0261b;--c-danger-bg: #fdeceb;--c-info: #1f4fa8;--c-info-bg: #e7eefc;--c-neutral: #4a5561;--c-neutral-bg: #eceff1;--c-weekend: #eef1f3;--c-holiday: #fbeee3;--c-closure: #efe9f8;--c-absence: #2f7d6e;--c-absence-pending: #8fbfb4;--focus-ring: 0 0 0 3px #ffffff, 0 0 0 5px #1f4fa8;--font-sans: "Inter", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--fs-xs: .75rem;--fs-sm: .875rem;--fs-md: 1rem;--fs-lg: 1.125rem;--fs-xl: 1.375rem;--fs-2xl: 1.75rem;--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.5rem;--sp-6: 2rem;--sp-7: 3rem;--radius-sm: 4px;--radius: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 2px rgb(16 24 32 / .06);--shadow: 0 2px 8px rgb(16 24 32 / .08);--shadow-lg: 0 12px 32px rgb(16 24 32 / .18);--sidebar-w: 248px;--header-h: 60px}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--c-bg);color:var(--c-text);font-family:var(--font-sans);font-size:var(--fs-md);line-height:1.5}h1,h2,h3,h4{line-height:1.25;margin:0 0 var(--sp-3);font-weight:650}h1{font-size:var(--fs-2xl)}h2{font-size:var(--fs-xl)}h3{font-size:var(--fs-lg)}p{margin:0 0 var(--sp-3)}a{color:var(--c-primary);text-underline-offset:2px}a:hover{color:var(--c-primary-hover)}code{font-family:var(--font-mono);font-size:.9em;word-break:break-all}small,.muted{color:var(--c-text-muted)}.text-sm{font-size:var(--fs-sm)}.nowrap{white-space:nowrap}.num{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--radius-sm)}[tabindex="-1"]:focus{outline:none;box-shadow:none}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:var(--sp-3);top:-100px;z-index:100;background:var(--c-surface);color:var(--c-primary);padding:var(--sp-2) var(--sp-4);border-radius:var(--radius);box-shadow:var(--shadow-lg);font-weight:600}.skip-link:focus{top:var(--sp-3)}.shell{min-height:100vh;display:grid;grid-template-columns:var(--sidebar-w) 1fr;grid-template-rows:var(--header-h) 1fr;grid-template-areas:"header header" "sidebar main"}.app-header{grid-area:header;position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:var(--sp-3);padding:0 var(--sp-4);background:var(--c-surface);border-bottom:1px solid var(--c-border)}.brand{display:flex;align-items:center;gap:var(--sp-2);font-weight:700;color:var(--c-text);text-decoration:none;margin-right:auto;min-width:0}.brand-mark{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:8px;background:var(--c-primary);color:var(--c-on-primary);font-size:var(--fs-sm);letter-spacing:.02em;flex:none}.brand-company{font-weight:500;color:var(--c-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-tools{display:flex;align-items:center;gap:var(--sp-2)}.header-tools select{width:auto}.shell.is-collapsed{grid-template-columns:72px 1fr}.is-collapsed .sidebar{padding:var(--sp-4) var(--sp-2)}.is-collapsed .nav-section{display:none}.is-collapsed .nav-list+.nav-list,.is-collapsed .sidebar-inner>div+div{margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--c-border)}.is-collapsed .nav-link{position:relative;justify-content:center;padding:var(--sp-3) 0}.is-collapsed .nav-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.is-collapsed .nav-count{position:absolute;top:2px;right:2px;min-width:1.1rem;padding:0 4px}.sidebar{grid-area:sidebar;background:var(--c-surface);border-right:1px solid var(--c-border);padding:var(--sp-4) var(--sp-3)}.sidebar-inner{position:sticky;top:calc(var(--header-h) + var(--sp-4));max-height:calc(100vh - var(--header-h) - var(--sp-5));overflow-y:auto}.nav-list{list-style:none;margin:0;padding:0;display:grid;gap:2px}.nav-section{margin:var(--sp-4) var(--sp-3) var(--sp-1);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--c-text-muted);font-weight:600}.nav-link{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius);color:var(--c-text);text-decoration:none;font-weight:500}.nav-link:hover{background:var(--c-surface-2);color:var(--c-text)}.nav-link[aria-current=page]{background:var(--c-primary-soft);color:var(--c-primary-hover);font-weight:650}.nav-icon{width:20px;height:20px;flex:none}.nav-label{min-width:0;line-height:1.25;overflow-wrap:break-word}.nav-count{flex:none;margin-left:auto;min-width:1.5rem;padding:0 var(--sp-2);border-radius:999px;background:var(--c-primary);color:var(--c-on-primary);font-size:var(--fs-xs);font-weight:700;text-align:center}.main{position:relative;grid-area:main;padding:var(--sp-5) var(--sp-6) var(--sp-7);min-width:0;max-width:1400px;width:100%}.main:focus{outline:none}.sidebar-backdrop{display:none}@media (max-width: 900px){.shell{grid-template-columns:1fr;grid-template-areas:"header" "main"}.shell.is-collapsed{grid-template-columns:1fr}.sidebar{position:fixed;top:var(--header-h);left:0;bottom:0;height:auto;width:min(86vw,300px);overflow-y:auto;z-index:30;transform:translate(-105%);visibility:hidden;transition:transform .2s ease,visibility .2s;box-shadow:var(--shadow-lg)}.sidebar[data-open=true]{transform:none;visibility:visible}.sidebar-backdrop[data-open=true]{display:block;position:fixed;inset:var(--header-h) 0 0 0;background:#10182059;z-index:25}.main{padding:var(--sp-4) var(--sp-4) var(--sp-7)}.brand-company,.hide-mobile{display:none!important}.app-header{padding:0 var(--sp-2);gap:var(--sp-1)}.header-tools{gap:var(--sp-1)}.header-tools .row{flex-wrap:nowrap;gap:0}}@media (max-width: 420px){.brand-name{display:none}}@media (prefers-reduced-motion: reduce){.sidebar{transition:none}}.page-header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-5)}.page-header h1{margin:0}.page-header p{margin:var(--sp-1) 0 0;color:var(--c-text-muted)}.page-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.stack{display:grid;gap:var(--sp-5)}.stack-sm{display:grid;gap:var(--sp-3)}.row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2)}.row-between{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-3)}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-5);align-items:start}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-5);align-items:start}.split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:var(--sp-5);align-items:start}@media (max-width: 1100px){.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.split{grid-template-columns:1fr}}@media (max-width: 700px){.grid-2,.grid-3{grid-template-columns:1fr}}.card{position:relative;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--sp-5);min-width:0}.card>h2,.card>header h2{font-size:var(--fs-lg)}.card-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-2);margin-bottom:var(--sp-4)}.card-header h2,.card-header h3{margin:0;font-size:var(--fs-lg)}.card-flush{padding:0;overflow:hidden}.card-flush>.card-header{padding:var(--sp-4) var(--sp-5) 0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:40px;padding:var(--sp-2) var(--sp-4);border:1px solid transparent;border-radius:var(--radius);font:inherit;font-weight:600;font-size:var(--fs-sm);line-height:1.2;cursor:pointer;text-decoration:none;white-space:nowrap;background:var(--c-surface);color:var(--c-text);border-color:var(--c-border-strong)}.btn:hover{background:var(--c-surface-2);color:var(--c-text)}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--c-primary);border-color:var(--c-primary);color:var(--c-on-primary)}.btn-primary:hover{background:var(--c-primary-hover);border-color:var(--c-primary-hover);color:var(--c-on-primary)}.btn-danger{background:var(--c-surface);color:var(--c-danger);border-color:#e3a8a2}.btn-danger:hover{background:var(--c-danger-bg);color:var(--c-danger)}.btn-ghost{background:transparent;border-color:transparent;color:var(--c-primary)}.btn-ghost:hover{background:var(--c-primary-soft);color:var(--c-primary-hover)}.btn-sm{min-height:32px;padding:var(--sp-1) var(--sp-3);font-size:var(--fs-xs)}.btn-icon{min-width:40px;padding:var(--sp-2)}.btn-link{background:none;border:none;padding:0;color:var(--c-primary);font:inherit;text-decoration:underline;cursor:pointer}.form{display:grid;gap:var(--sp-4)}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--sp-4)}.form-grid-tight{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.sticky-card{position:sticky;top:calc(var(--header-h) + var(--sp-4))}.field{display:grid;align-content:start;gap:var(--sp-1);min-width:0}.field>label,.field-label{font-weight:600;font-size:var(--fs-sm)}.field-hint{font-size:var(--fs-xs);color:var(--c-text-muted)}.field-error{font-size:var(--fs-xs);color:var(--c-danger);font-weight:600}.required-mark,label.is-required:after{color:var(--c-danger)}label.is-required:after{content:" *";content:" *" / ""}input,select,textarea{font:inherit;color:var(--c-text);width:100%;min-height:40px;padding:var(--sp-2) var(--sp-3);border:1px solid var(--c-border-strong);border-radius:var(--radius);background:var(--c-surface)}textarea{min-height:80px;resize:vertical}input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--c-info)}input[aria-invalid=true],select[aria-invalid=true]{border-color:var(--c-danger)}input:disabled,select:disabled{background:var(--c-surface-2);color:var(--c-text-muted)}input[type=checkbox],input[type=radio]{width:18px;height:18px;min-height:0;margin:0;accent-color:var(--c-primary);flex:none}.check{display:flex;align-items:flex-start;gap:var(--sp-2);font-size:var(--fs-sm);cursor:pointer}.check input{margin-top:2px}fieldset{border:1px solid var(--c-border);border-radius:var(--radius);padding:var(--sp-3) var(--sp-4) var(--sp-4);margin:0;min-width:0}legend{font-weight:650;font-size:var(--fs-sm);padding:0 var(--sp-1)}.form-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2);justify-content:flex-end}.inline-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--sp-3)}.inline-form .field{min-width:160px}.inline-form .check{min-height:40px;align-items:center}.table-wrap{position:relative;width:100%;overflow-x:auto}table.table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.table caption{text-align:left;font-weight:650;padding:var(--sp-2) 0}.table th,.table td{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--c-border);text-align:left;vertical-align:top}.table thead th{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--c-text-muted);background:var(--c-surface-2);white-space:nowrap}.table tbody tr:hover{background:#fafcfc}.table tfoot th,.table tfoot td{font-weight:700;border-top:2px solid var(--c-border-strong);background:var(--c-surface-2)}.table .num{text-align:right}.table-actions{display:flex;flex-wrap:wrap;gap:var(--sp-1);justify-content:flex-end}.table-actions-stack{flex-direction:column;align-items:stretch;min-width:112px}.col-details{min-width:180px}.cell-details .badge{white-space:normal}.card-flush .table th:first-child,.card-flush .table td:first-child{padding-left:var(--sp-5)}.card-flush .table th:last-child,.card-flush .table td:last-child{padding-right:var(--sp-5)}.row-detail>td{background:var(--c-surface-2)}.badge{display:inline-flex;align-items:center;gap:.3em;padding:.1rem .55rem;border-radius:999px;font-size:var(--fs-xs);font-weight:650;line-height:1.5;white-space:nowrap;border:1px solid transparent;background:var(--c-neutral-bg);color:var(--c-neutral)}.badge-success{background:var(--c-success-bg);color:var(--c-success);border-color:#b5dcc6}.badge-warning{background:var(--c-warning-bg);color:var(--c-warning);border-color:#f0cf8e}.badge-danger{background:var(--c-danger-bg);color:var(--c-danger);border-color:#f0b6b0}.badge-info{background:var(--c-info-bg);color:var(--c-info);border-color:#bccdf2}.badge-icon{font-size:.9em}.badge-critical{background:var(--c-danger);color:#fff;border-color:var(--c-danger)}.alert{display:flex;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--radius);border:1px solid;border-left-width:4px;font-size:var(--fs-sm)}.alert-title{font-weight:700;margin:0 0 var(--sp-1)}.alert p:last-child,.alert ul:last-child{margin-bottom:0}.alert ul{margin:var(--sp-1) 0;padding-left:var(--sp-5)}.alert-info{background:var(--c-info-bg);border-color:var(--c-info);color:#173a7a}.alert-success{background:var(--c-success-bg);border-color:var(--c-success);color:#134a2f}.alert-warning{background:var(--c-warning-bg);border-color:#c98a12;color:#5c3800}.alert-error{background:var(--c-danger-bg);border-color:var(--c-danger);color:#7d1a12}.alert-icon{flex:none;font-weight:800}.disclaimer{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--radius);background:#fff6e8;border:1px solid #e9b25a;color:#5c3800;font-weight:650;margin-bottom:var(--sp-5)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--sp-3);margin:0}.stat{background:var(--c-surface-2);border:1px solid var(--c-border);border-radius:var(--radius);padding:var(--sp-3);min-width:0}.stat dt{font-size:var(--fs-xs);color:var(--c-text-muted);font-weight:600;text-transform:uppercase;letter-spacing:0;hyphens:auto;overflow-wrap:normal;word-break:normal}.stat dd{margin:var(--sp-1) 0 0;font-size:var(--fs-xl);font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.stats-compact{grid-template-columns:repeat(auto-fit,minmax(136px,1fr))}.stats-compact .stat dd{font-size:var(--fs-lg)}.stat-highlight{background:var(--c-primary-soft);border-color:#a9cfd3}.stat-highlight dd{color:var(--c-primary-hover)}.stat-negative dd{color:var(--c-danger)}.kv{display:grid;grid-template-columns:minmax(120px,max-content) 1fr;gap:var(--sp-2) var(--sp-5);margin:0;font-size:var(--fs-sm)}.kv dt{color:var(--c-text-muted);font-weight:600}.kv dd{margin:0;min-width:0;overflow-wrap:anywhere}.tabs{display:flex;gap:var(--sp-1);border-bottom:1px solid var(--c-border);margin-bottom:var(--sp-5);overflow-x:auto}.tab{appearance:none;background:none;border:none;border-bottom:3px solid transparent;padding:var(--sp-2) var(--sp-4);font:inherit;font-weight:600;font-size:var(--fs-sm);color:var(--c-text-muted);cursor:pointer;white-space:nowrap}.tab:hover{color:var(--c-text)}.tab[aria-selected=true]{color:var(--c-primary-hover);border-bottom-color:var(--c-primary)}.steps{display:flex;flex-wrap:wrap;gap:var(--sp-2);list-style:none;padding:0;margin:0 0 var(--sp-5);counter-reset:step}.steps li{counter-increment:step;display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:999px;font-size:var(--fs-sm);color:var(--c-text-muted);background:var(--c-surface);border:1px solid var(--c-border)}.steps li:before{content:counter(step);display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--c-neutral-bg);font-weight:700;font-size:var(--fs-xs)}.steps li[aria-current=step]{color:var(--c-primary-hover);border-color:var(--c-primary);font-weight:650}.steps li[aria-current=step]:before{background:var(--c-primary);color:var(--c-on-primary)}.steps li[data-done=true]:before{content:"✓";background:var(--c-success-bg);color:var(--c-success)}dialog.dialog{border:none;border-radius:var(--radius-lg);padding:0;width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 48px);box-shadow:var(--shadow-lg);color:var(--c-text)}dialog.dialog::backdrop{background:#10182073}.dialog-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--c-border)}.dialog-header h2{margin:0;font-size:var(--fs-lg)}.dialog-body{padding:var(--sp-5);display:grid;gap:var(--sp-4)}.dialog-footer{display:flex;justify-content:flex-end;gap:var(--sp-2);padding:var(--sp-3) var(--sp-5) var(--sp-4);border-top:1px solid var(--c-border)}.toasts{position:fixed;right:var(--sp-4);bottom:var(--sp-4);z-index:60;display:grid;gap:var(--sp-2);width:min(380px,calc(100vw - 32px))}.toast{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--radius);background:#17212b;color:#fff;box-shadow:var(--shadow-lg);font-size:var(--fs-sm)}.toast-error{background:#7d1a12}.toast button{margin-left:auto;background:none;border:none;color:inherit;cursor:pointer;font-size:var(--fs-lg);line-height:1}.loading{display:flex;align-items:center;gap:var(--sp-2);color:var(--c-text-muted);padding:var(--sp-4) 0}.spinner{width:18px;height:18px;border:2px solid var(--c-border);border-top-color:var(--c-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spinner{animation-duration:3s}}.empty{padding:var(--sp-5);text-align:center;color:var(--c-text-muted);border:1px dashed var(--c-border-strong);border-radius:var(--radius);background:var(--c-surface-2)}.list-plain{list-style:none;margin:0;padding:0;display:grid;gap:var(--sp-2)}.list-item{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3);border:1px solid var(--c-border);border-radius:var(--radius);background:var(--c-surface)}.list-item[data-unread=true]{border-left:4px solid var(--c-primary);background:#fbfdfd}.list-item-body{flex:1;min-width:0}.list-item-title{font-weight:650;margin:0}.pre-line{white-space:pre-line}.divider{border:none;border-top:1px solid var(--c-border);margin:var(--sp-4) 0}.big-number{font-size:var(--fs-2xl);font-weight:750;font-variant-numeric:tabular-nums}.pattern-editor{display:grid;grid-template-columns:repeat(7,minmax(56px,1fr));gap:var(--sp-2)}@media (max-width: 560px){.pattern-editor{grid-template-columns:repeat(4,minmax(56px,1fr))}}.pattern-editor .field label{font-size:var(--fs-xs);text-align:center}.pattern-editor input{text-align:center;padding:var(--sp-2) var(--sp-1)}.pattern-inline{display:flex;flex-wrap:wrap;gap:var(--sp-1);max-width:200px}.pattern-inline span{font-size:var(--fs-xs);padding:0 var(--sp-2);border-radius:var(--radius-sm);background:var(--c-neutral-bg);font-variant-numeric:tabular-nums}.pattern-inline span[data-off=true]{background:transparent;color:var(--c-text-muted);box-shadow:inset 0 0 0 1px var(--c-border-strong)}.login{min-height:100vh;display:grid;place-items:center;padding:var(--sp-5) var(--sp-4)}.login-card{width:min(560px,100%)}.login-card-wide{width:min(760px,100%)}.login-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-5)}.user-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--sp-2);list-style:none;padding:0;margin:0}.user-picker button{width:100%;display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:1px solid var(--c-border);border-radius:var(--radius);background:var(--c-surface);font:inherit;text-align:left;cursor:pointer;color:var(--c-text)}.user-picker button:hover{border-color:var(--c-primary);background:var(--c-primary-soft)}.avatar{display:inline-grid;place-items:center;flex:none;width:36px;height:36px;border-radius:50%;background:var(--c-primary-soft);color:var(--c-primary-hover);font-weight:700;font-size:var(--fs-sm)}.user-picker .user-meta{display:grid;min-width:0}.user-picker .user-email{font-size:var(--fs-xs);color:var(--c-text-muted);overflow:hidden;text-overflow:ellipsis}.user-picker .badge{margin-left:auto}.preview-days{max-height:320px;overflow-y:auto;border:1px solid var(--c-border);border-radius:var(--radius)}.preview-days table{margin:0}.preview-days tr[data-counted=false] td{color:var(--c-text-muted)}.preview-days tr[data-reason=public_holiday] td,.preview-days tr[data-reason=half_public_holiday] td{background:var(--c-holiday)}.preview-days tr[data-reason^=company_closure] td,.preview-days tr[data-reason=half_company_closure] td{background:var(--c-closure)}.calendar-wrap{overflow-x:auto;border:1px solid var(--c-border);border-radius:var(--radius-lg);background:var(--c-surface)}table.calendar{border-collapse:separate;border-spacing:0;font-size:var(--fs-xs);width:100%;min-width:900px;table-layout:fixed}.calendar col.cal-name-col{width:172px}.calendar th,.calendar td{border-bottom:1px solid var(--c-border);border-right:1px solid #edf0f2;padding:0;text-align:center;height:36px}.calendar thead th{position:sticky;top:0;background:var(--c-surface);z-index:2;font-weight:600;padding:var(--sp-1) 2px;line-height:1.2}.calendar .cal-day-num{display:block;font-size:var(--fs-sm);font-weight:700}.calendar th[scope=row],.calendar thead th:first-child{position:sticky;left:0;z-index:3;background:var(--c-surface);text-align:left;padding:0 var(--sp-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--fs-sm);font-weight:600;border-right:1px solid var(--c-border)}.calendar th[scope=row] small{display:block;font-weight:400;font-size:var(--fs-xs)}.calendar .is-weekend{background:var(--c-weekend)}.calendar .is-holiday{background:var(--c-holiday)}.calendar .is-closure{background:var(--c-closure)}.calendar .is-today{box-shadow:inset 0 -3px 0 var(--c-accent)}.cal-cell{position:relative}.cal-abs{display:grid;place-items:center;height:26px;margin:0 1px;border-radius:4px;font-weight:700;font-size:11px;color:#fff;background:var(--c-absence)}.cal-abs[data-status=requested]{color:#0f3a33;background:repeating-linear-gradient(135deg,var(--c-absence-pending) 0 4px,#d4ebe5 4px 8px);border:1px dashed #2f7d6e}.cal-abs[data-half=true]{width:50%}.cal-marker{position:absolute;top:1px;right:2px;font-size:9px;line-height:1;color:var(--c-text-muted)}.legend{display:flex;flex-wrap:wrap;gap:var(--sp-3) var(--sp-5);list-style:none;padding:0;margin:0;font-size:var(--fs-sm)}.legend li{display:flex;align-items:center;gap:var(--sp-2)}.swatch{display:inline-block;width:22px;height:16px;border-radius:4px;border:1px solid var(--c-border-strong);flex:none}.payroll-table{font-size:var(--fs-xs)}.payroll-table th,.payroll-table td{white-space:nowrap;padding:var(--sp-2)}.table.payroll-table thead th{white-space:normal;vertical-align:bottom;min-width:72px}.payroll-table tbody th[scope=row],.payroll-table thead th:first-child,.payroll-table tfoot th{position:sticky;left:0;z-index:1;background:var(--c-surface);box-shadow:1px 0 0 var(--c-border)}.payroll-table thead th:first-child,.payroll-table tfoot th{background:var(--c-surface-2)}.card-flush .table.payroll-table th:first-child{padding-left:var(--sp-4)}.row-detail .breakdown{position:sticky;left:0;max-width:min(900px,calc(100vw - var(--sidebar-w) - 120px))}.disclosure{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) 0;border:none;background:none;font:inherit;font-weight:650;color:var(--c-primary);cursor:pointer;text-align:left}.disclosure:hover span:not(.disclosure-icon){text-decoration:underline}.disclosure-icon{display:inline-block;transition:transform .15s}.disclosure[aria-expanded=true] .disclosure-icon{transform:rotate(90deg)}.breakdown{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--sp-4);padding:var(--sp-3) 0;white-space:normal}.breakdown h3{font-size:var(--fs-sm);margin-bottom:var(--sp-2)}.breakdown ul{margin:0;padding-left:var(--sp-5)}.breakdown-tables{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--sp-5);align-items:start}.amounts{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.amounts th,.amounts td{padding:var(--sp-1) 0;border-bottom:1px solid #edf0f2;text-align:left;font-weight:400}.amounts td{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.amounts tr.total th,.amounts tr.total td{font-weight:700;border-top:2px solid var(--c-border-strong)}.print-only{display:none}@media print{@page{size:A4 landscape;margin:12mm}body{background:#fff;font-size:10pt}.shell{display:block}.app-header,.sidebar,.sidebar-backdrop,.skip-link,.toasts,.no-print,.page-actions,.btn{display:none!important}.print-only{display:block}.main{padding:0;max-width:none}.card{border:none;box-shadow:none;padding:0}.disclaimer{border:1px solid #000000;background:none;color:#000}.table-wrap{overflow:visible}.table{font-size:8pt}.table th,.table td{padding:2px 4px}.table thead th{background:none;color:#000}tr{break-inside:avoid}a{color:#000;text-decoration:none}}.env-banner{position:sticky;top:0;z-index:40;padding:var(--sp-1) var(--sp-4);background:#6b2d8f;color:#fff;text-align:center;font-size:var(--fs-sm);letter-spacing:.02em}.card-flush>.empty,.card-flush>.loading,.card-flush>.alert{margin:0 var(--sp-5) var(--sp-5)}.card-flush>.loading{padding-left:0}.card-header .field{flex-direction:row;align-items:center;display:flex;gap:var(--sp-2)}.card-header .field select{width:auto;min-height:32px;padding-top:var(--sp-1);padding-bottom:var(--sp-1)}details summary{cursor:pointer;font-weight:600;font-size:var(--fs-sm)}.date-field{position:relative;display:flex;align-items:stretch}.date-field input[type=text]{padding-right:44px}.date-field-button{position:absolute;right:2px;top:50%;transform:translateY(-50%);min-height:34px;min-width:36px;padding:0;color:var(--c-text-muted)}.date-field-native{position:absolute;right:0;bottom:0;width:1px;height:1px;min-height:0;padding:0;border:0;opacity:0;pointer-events:none}.month-picker select{width:auto}@media (max-width: 480px){.card{padding:var(--sp-4)}.stats,.stats-compact{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-2)}.stat{padding:var(--sp-2) var(--sp-3)}.stat dd{font-size:var(--fs-lg)}.page-header h1{font-size:var(--fs-xl)}}.amounts th.num{text-align:right}.amounts thead th{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--c-text-muted);font-weight:600}.h4{font-size:var(--fs-md);font-weight:700;margin:0}.d-block{display:block}.card-inset{padding:0 var(--sp-5) var(--sp-4)}.bullet-list,.steps-list{margin:0 0 var(--sp-3);padding-left:1.25rem;display:grid;gap:var(--sp-1)}.steps-list{margin:0}.segmented{display:inline-flex;border:1px solid var(--c-border-strong);border-radius:var(--radius);padding:2px;margin:0;gap:2px;background:var(--c-surface)}.segmented-option{position:relative;display:inline-flex}.segmented-option input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}.segmented-option span{display:inline-flex;align-items:center;min-height:32px;padding:0 var(--sp-3);border-radius:calc(var(--radius) - 2px);font-size:var(--fs-sm);font-weight:600;color:var(--c-text-muted)}.segmented-option input:checked+span{background:var(--c-primary);color:var(--c-on-primary)}.segmented-option input:focus-visible+span{box-shadow:var(--focus-ring)}.switch{position:relative;display:inline-flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);font-weight:600;cursor:pointer}.switch input{position:absolute;z-index:1;opacity:0;width:36px;height:20px;margin:0;cursor:pointer}.switch-track{position:relative;flex:none;width:36px;height:20px;border-radius:999px;background:var(--c-neutral);transition:background-color .15s}.switch-track:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .15s}.switch input:checked+.switch-track{background:var(--c-success)}.switch input:checked+.switch-track:after{transform:translate(16px)}.switch input:focus-visible+.switch-track{box-shadow:var(--focus-ring)}.switch input:disabled,.switch input:disabled~span{cursor:not-allowed}.switch input:disabled+.switch-track{background:var(--c-border-strong)}.switch input:disabled:checked+.switch-track{background:#8fb8a3}@media (prefers-reduced-motion: reduce){.switch-track,.switch-track:after{transition:none}}.access-cell{display:grid;gap:var(--sp-1);justify-items:start}.access-idp{color:var(--c-danger);font-weight:600}.table tr[data-disabled=true] th{color:var(--c-text-muted)}.copy-fields{display:grid;gap:var(--sp-2)}.copy-field{display:grid;grid-template-columns:minmax(96px,max-content) minmax(0,1fr) auto;align-items:center;gap:var(--sp-2) var(--sp-3);font-size:var(--fs-sm)}.copy-field-label{font-weight:600;color:var(--c-text-muted)}.copy-field-value{display:block;padding:var(--sp-1) var(--sp-2);border:1px solid var(--c-border);border-radius:var(--radius-sm);background:var(--c-surface-2);user-select:all;overflow-wrap:anywhere;min-width:0}@media (max-width: 560px){.copy-field{grid-template-columns:minmax(0,1fr) auto}.copy-field-label{grid-column:1 / -1}}.domain-item{display:grid;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:1px solid var(--c-border);border-radius:var(--radius);background:var(--c-surface)}.dns-record{display:grid;gap:var(--sp-2);padding:var(--sp-3);border:1px dashed var(--c-border-strong);border-radius:var(--radius);background:var(--c-surface-2)}.dns-record p{margin:0}.secret-box{display:grid;gap:var(--sp-3);padding:var(--sp-4);border:2px solid #c98a12;border-radius:var(--radius);background:#fffaf0}.security-table th[scope=row]{min-width:180px}.security-table .event-title{display:block}.security-table th[scope=row] .text-sm{font-weight:400;margin-top:2px}.security-table tr[data-acknowledged=true] th,.security-table tr[data-acknowledged=true] td{color:var(--c-text-muted)}.btn-block{width:100%}.sso-buttons{display:grid;gap:var(--sp-2)}.login-divider{display:flex;align-items:center;gap:var(--sp-3);margin:0;color:var(--c-text-muted);font-size:var(--fs-sm)}.login-divider:before,.login-divider:after{content:"";flex:1;border-top:1px solid var(--c-border)}.cal-bday{display:block;font-size:.8rem;line-height:1;text-align:center}
