@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Noto+Serif:wght@500;600&display=swap";:root{font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--color-foreground);background:var(--color-background);--space-1:2px;--space-2:4px;--space-3:6px;--space-4:8px;--space-5:10px;--space-6:12px;--panel-padding:var(--space-4);--page-gutter:var(--space-6);--control-height:38px;--topbar-height:50px;--table-row-padding:5px;--font-heading:"Noto Serif", Georgia, "Times New Roman", serif;--brand-navy:#122844;--color-primary:#2563eb;--color-primary-hover:#1d4ed8;--color-primary-soft:#eff6ff;--color-background:#f5f7fb;--color-surface:#fff;--color-foreground:#1b2c43;--color-muted-foreground:#52647a;--color-border:#dce4ee;--color-control-border:#7b8ba0;--color-focus:#2563eb;--status-success:#10b981;--status-success-soft:#ecfdf5;--status-success-text:#166534;--status-warning:#f59e0b;--status-warning-soft:#fffbeb;--status-warning-text:#92400e;--status-danger:#ef4444;--status-danger-soft:#fef2f2;--status-danger-text:#991b1b;--status-info:#2563eb;--status-info-soft:#eff6ff;--status-info-text:#1e40af;--status-special:#8b5cf6;--status-special-soft:#f5f3ff;--status-special-text:#5b21b6;--status-neutral:#64748b;--status-neutral-soft:#f1f5f9;--status-neutral-text:#334155;--radius-control:8px;--radius-panel:12px;--shadow-panel:0 3px 10px #10233b0f;--motion-duration:.2s;--motion-easing:ease-in-out;font-family:Inter,Segoe UI,Arial,sans-serif;font-size:16px;line-height:1.6}*{box-sizing:border-box}body{min-width:320px;margin:0;font-size:.875rem;line-height:1.5}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,select{cursor:pointer}button:disabled,select:disabled{cursor:not-allowed}button,a,input,select{transition:background-color var(--motion-duration) var(--motion-easing), border-color var(--motion-duration) var(--motion-easing), color var(--motion-duration) var(--motion-easing)}:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}a{color:var(--color-primary);text-underline-offset:3px}h1,h2,h3,p{margin-top:0}h1,h2,h3{color:var(--color-foreground)}h1,h2{font-family:var(--font-heading);font-weight:500;line-height:1.35}h1{letter-spacing:-.4px;margin-bottom:var(--space-2);font-size:clamp(1.5rem,2.6vw - 4px,1.875rem)}h2{margin-bottom:var(--space-2);font-size:1rem}h3{font-size:.875rem}p{margin-bottom:var(--space-3)}small{font-size:.75rem}svg{flex-shrink:0}::selection{color:var(--brand-navy);background:#bfdbfe}@media (pointer:coarse),(width<=767px){:root{--control-height:44px}input,select,textarea{font-size:1rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.workspace-shell{--panel-padding:16px;--page-gutter:20px;--container-gap:12px;--table-row-padding:8px;--color-surface:#ffffffbd;--color-background:#f2f7fda6;--color-muted-foreground:#40536c;--color-border:#ffffffc7;--color-control-border:#5b6f897a;--glass-overlay-surface:#f8fbffeb;--glass-sidebar-surface:#122844d1;--glass-backdrop:blur(18px) saturate(1.12);--shadow-panel:0 8px 24px #12284414, inset 0 1px 0 #ffffffb8;--sidebar-width:228px;--sidebar-text:#dce7f5;--sidebar-muted:#b5c8df;--sidebar-active:#234976;--sidebar-line:#35506e;--sidebar-surface:#193552;--sidebar-mark:#fff;isolation:isolate;grid-template-columns:var(--sidebar-width) minmax(0, 1fr);min-height:100svh;transition:grid-template-columns var(--motion-duration) var(--motion-easing);display:grid;position:relative}.workspace-shell:before{content:"";z-index:-1;pointer-events:none;background-image:linear-gradient(120deg,#ebf3fdad,#e6effb99),url(/assets/background-j10YOG_o.png);background-position:50%;background-size:cover;position:fixed;inset:0}.workspace-shell .panel,.workspace-shell .alert,.workspace-shell .user-success{-webkit-backdrop-filter:var(--glass-backdrop);backdrop-filter:var(--glass-backdrop)}.workspace-shell :is(.daily-summary-panel,.attendance-chart,.monthly-table-panel,.user-directory){padding:0}.workspace-shell .page-heading{gap:16px;margin-bottom:16px}.workspace-shell .reporting-page>.page-heading{margin-bottom:0}.workspace-shell .reporting-page,.workspace-shell .kpi-grid,.workspace-shell .monthly-summary-strip,.workspace-shell .monthly-report-grid,.workspace-shell .report-filter-fields,.workspace-shell .user-create-form{gap:var(--container-gap)}.workspace-shell .field{gap:var(--space-3)}.workspace-shell .field :is(input,select,textarea){padding-inline:10px}.workspace-shell .toolbar{gap:var(--container-gap)}.workspace-shell .button{padding-inline:12px}.workspace-shell .empty-state{padding:24px var(--panel-padding)}.workspace-shell :is(th,td){padding-inline:12px}.workspace-shell thead th{background:#ffffff7a}.workspace-shell tbody th{background:#ffffff47}.workspace-shell tbody tr:hover{background:#ffffff7a}.workspace-shell :is(.daily-summary-panel,.monthly-table-panel,.user-directory)>.table-wrap{width:calc(100% - 2 * var(--panel-padding));margin:0 var(--panel-padding) var(--panel-padding)}.workspace-shell .report-filter-panel{z-index:2;position:relative}.workspace-shell :is(.user-dialog,.export-popover,.notifications-panel){background:var(--glass-overlay-surface);border-color:var(--color-border);-webkit-backdrop-filter:var(--glass-backdrop);backdrop-filter:var(--glass-backdrop);box-shadow:var(--shadow-panel)}.workspace-shell .user-dialog::backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#12284447}.workspace-compact{--sidebar-width:64px}.workspace-sidebar{z-index:10;height:100svh;padding:var(--space-6);background:var(--glass-sidebar-surface);-webkit-backdrop-filter:var(--glass-backdrop);backdrop-filter:var(--glass-backdrop);color:var(--sidebar-text);border-right:1px solid #ffffff2e;flex-direction:column;display:flex;position:sticky;top:0}.shell-brand-row{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.shell-brand{align-items:center;gap:var(--space-3);min-width:0;color:var(--sidebar-mark);text-decoration:none;display:flex}.shell-brand-copy{white-space:nowrap;font-size:16px;font-weight:650}.shell-brand small{color:var(--sidebar-muted);font-size:12px;font-weight:400;display:block}.shell-brand-mark{background:var(--color-primary);width:32px;height:32px;color:var(--sidebar-mark);border-radius:var(--radius-control);flex:none;place-items:center;display:grid}.sidebar-toggle{border-radius:var(--radius-control);width:36px;min-height:36px;padding:var(--space-2);color:var(--sidebar-muted);background:0 0;border:0;flex:none;place-items:center;display:grid}.sidebar-toggle:hover{background:var(--sidebar-active);color:var(--sidebar-mark)}.shell-nav-caption{margin:var(--space-3) var(--space-3);color:var(--sidebar-muted);font-size:12px;font-weight:600}.shell-navigation{gap:var(--space-2);display:grid}.shell-navigation a{min-height:var(--control-height);padding:var(--space-3) 10px;border-radius:var(--radius-control);color:var(--sidebar-text);align-items:center;gap:10px;font-size:14px;font-weight:500;text-decoration:none;display:flex;position:relative}.shell-navigation a:hover{background:var(--sidebar-surface);color:var(--sidebar-mark)}.shell-navigation a[aria-current=page]{background:var(--sidebar-active);color:var(--sidebar-mark);box-shadow:inset 3px 0 var(--color-primary)}.shell-nav-tooltip{display:none}.sidebar-note{align-items:flex-start;gap:var(--space-3);padding:var(--space-4) var(--space-3);color:var(--sidebar-muted);margin-top:auto;display:flex}.sidebar-note p{margin:0;font-size:12px;font-weight:600}.sidebar-note small{margin-top:var(--space-1);font-size:12px;font-weight:400;line-height:1.5;display:block}.shell-account{align-items:center;gap:var(--space-3);border-top:1px solid var(--sidebar-line);padding-top:var(--space-3);min-width:0;display:flex}.shell-avatar{background:var(--sidebar-active);border-radius:50%;flex:none;place-items:center;width:28px;height:28px;font-weight:600;display:grid}.shell-account-copy{flex:1;min-width:0}.shell-account strong{overflow-wrap:anywhere;font-size:12px;font-weight:600;display:block}.shell-account small{color:var(--sidebar-muted);font-size:12px;display:block}.workspace-compact .workspace-sidebar .shell-brand-row{flex-direction:column}.workspace-compact .workspace-sidebar{padding:var(--space-4)}.workspace-compact .workspace-sidebar .shell-brand-copy,.workspace-compact .workspace-sidebar .shell-nav-caption,.workspace-compact .workspace-sidebar .shell-nav-label,.workspace-compact .workspace-sidebar .sidebar-note{display:none}.workspace-compact .workspace-sidebar .shell-navigation a{justify-content:center}.workspace-compact .workspace-sidebar .shell-account{flex-direction:column;margin-top:auto}.workspace-compact .workspace-sidebar .shell-account-copy{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.workspace-compact .workspace-sidebar .shell-nav-tooltip{left:calc(100% + var(--space-4));visibility:hidden;opacity:0;pointer-events:none;z-index:30;padding:var(--space-2) var(--space-4);color:var(--sidebar-mark);background:var(--brand-navy);border:1px solid var(--sidebar-line);border-radius:var(--radius-control);box-shadow:var(--shadow-panel);white-space:nowrap;font-size:12px;display:block;position:absolute;top:50%;transform:translateY(-50%)}.shell-nav-tooltip:before{content:"";width:var(--space-4);position:absolute;inset:0 100% 0 auto}.workspace-compact .workspace-sidebar .shell-navigation a:not([data-tooltip-dismissed=true]):is(:hover,:focus-visible) .shell-nav-tooltip{visibility:visible;opacity:1;pointer-events:auto}.workspace-main{flex-direction:column;min-width:0;display:flex}.workspace-topbar{z-index:20;justify-content:space-between;align-items:center;gap:var(--space-3);min-height:var(--topbar-height);padding:var(--space-2) var(--page-gutter);border-bottom:1px solid var(--color-border);background:var(--color-surface);-webkit-backdrop-filter:var(--glass-backdrop);backdrop-filter:var(--glass-backdrop);display:flex;position:relative}.topbar-leading{align-items:center;gap:var(--space-3);min-width:0;display:flex}.shell-breadcrumb{gap:var(--space-3);color:var(--color-muted-foreground);flex-wrap:wrap;align-items:center;font-size:12px;display:flex}.shell-breadcrumb strong{color:var(--color-foreground);font-weight:600}.shell-breadcrumb.dashboard-page-label{color:var(--color-primary);letter-spacing:1px;text-transform:uppercase;font-weight:700}.dashboard-page-label strong{color:inherit;font-weight:inherit}.topbar-utilities{gap:var(--space-3);align-items:center;min-width:0;display:flex}.service-health{gap:var(--space-3);align-items:center;display:flex}.health-pill-group{align-items:center;gap:var(--space-2);display:flex}.health-pill{align-items:center;gap:var(--space-2);border:1px solid var(--color-border);padding:var(--space-1) var(--space-2);border-radius:var(--radius-control);color:var(--color-muted-foreground);background:var(--color-surface);white-space:nowrap;font-size:12px;display:flex}.health-pill>span:last-child{align-items:center;gap:var(--space-2);display:flex}.health-pill strong{color:var(--color-foreground);font-weight:600}.health-dot{background:var(--status-neutral);border-radius:50%;flex:none;width:6px;height:6px}.health-online .health-dot{background:var(--status-success)}.health-offline .health-dot{background:var(--status-danger)}.health-refresh{color:var(--color-muted-foreground);width:36px;height:36px;padding:var(--space-2);border-radius:var(--radius-control);background:0 0;border:0;flex:none;place-items:center;display:grid}.health-refresh:hover{background:var(--color-background)}.health-refresh:disabled{opacity:.55;cursor:wait}.service-health>small{color:var(--color-muted-foreground);white-space:nowrap;font-size:12px}.office-clock{align-items:center;gap:var(--space-2);color:var(--color-muted-foreground);padding-left:var(--space-3);border-left:1px solid var(--color-border);white-space:nowrap;display:flex}.office-clock time{color:var(--color-foreground);font-variant-numeric:tabular-nums;font-size:14px;font-weight:600}.office-clock small{font-size:12px}.shell-notifications{position:relative}.notification-button{background:var(--color-surface);color:var(--color-foreground);border:1px solid var(--color-border);border-radius:var(--radius-control);place-items:center;width:36px;height:36px;display:grid;position:relative}.notification-button:hover{background:var(--color-background)}.notification-count{min-width:18px;height:18px;padding:0 var(--space-1);background:var(--color-background);border:1px solid var(--color-border);color:var(--color-muted-foreground);border-radius:10px;place-items:center;font-size:12px;font-weight:600;display:grid;position:absolute;top:-4px;right:-4px}.notifications-panel{right:0;top:calc(100% + var(--space-3));z-index:20;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-panel);width:min(320px,100vw - 24px);box-shadow:var(--shadow-panel);position:absolute}.notifications-heading{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--panel-padding);border-bottom:1px solid var(--color-border);display:flex}.notifications-heading h2{margin:0;font-size:14px}.notifications-heading span{color:var(--color-muted-foreground);font-size:12px}.notifications-empty{justify-items:center;gap:var(--space-3);padding:var(--space-6) var(--panel-padding);text-align:center;color:var(--color-muted-foreground);display:grid}.notifications-empty strong{color:var(--color-foreground);font-size:14px}.notifications-empty p{margin:0;font-size:12px}.notifications-footnote{padding:var(--panel-padding);border-top:1px solid var(--color-border);color:var(--color-muted-foreground);margin:0;font-size:12px}.workspace-content{width:100%;max-width:1600px;padding:20px var(--page-gutter);flex:1;min-width:0;margin-inline:auto}.workspace-content:focus{outline:none}.workspace-footer{justify-content:space-between;gap:var(--space-3);padding:var(--space-6) var(--page-gutter);color:var(--color-muted-foreground);-webkit-backdrop-filter:var(--glass-backdrop);backdrop-filter:var(--glass-backdrop);background:#ffffff75;font-size:12px;display:flex}.workspace-footer span span{margin-inline:var(--space-2)}.navigation-drawer,.mobile-menu-button.button{display:none}.skip-link{top:-100px;left:var(--space-4);z-index:100;padding:var(--space-4);border-radius:var(--radius-control);color:var(--color-surface);background:var(--color-primary);position:fixed}.skip-link:focus{top:var(--space-4)}@media (width<=1439px){.shell-breadcrumb>span,.office-clock>svg{display:none}}@media (width<=1023px){.workspace-shell{grid-template-columns:minmax(0,1fr)}.workspace-sidebar{display:none}.mobile-menu-button.button{display:inline-flex}.navigation-drawer[open]{width:min(280px,90vw);max-width:none;height:100svh;max-height:none;padding:var(--space-6);background:var(--glass-sidebar-surface);-webkit-backdrop-filter:var(--glass-backdrop);backdrop-filter:var(--glass-backdrop);color:var(--sidebar-text);border:1px solid #ffffff2e;margin:0;display:block;position:fixed;inset:0 auto 0 0}.navigation-drawer>div{flex-direction:column;height:100%;display:flex}.navigation-drawer::backdrop{background:#0f172a8c}.workspace-topbar{flex-wrap:wrap}.topbar-leading{flex:1}.topbar-utilities{flex-wrap:wrap}}@media (width<=767px){:root{--page-gutter:var(--space-4)}.workspace-shell{--page-gutter:12px;--panel-padding:14px}.workspace-topbar{gap:var(--space-2)}.topbar-leading{flex-basis:100%}.topbar-utilities{justify-content:space-between;width:100%}.service-health{gap:var(--space-2);flex-wrap:wrap;flex-basis:100%}.health-pill-group,.health-pill>span:last-child{flex-wrap:wrap}.office-clock{border:0;padding:0}.workspace-footer{gap:var(--space-1);flex-direction:column}}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.workspace-shell{--color-surface:#fffffff5;--glass-sidebar-surface:#122844f7}}@media (pointer:coarse),(width<=767px){.sidebar-toggle,.health-refresh,.notification-button{width:44px;min-width:44px;height:44px;min-height:44px}.workspace-compact{--sidebar-width:68px}}@media (prefers-reduced-motion:reduce){.workspace-shell{transition:none}}.auth-screen{background:var(--color-surface);grid-template-columns:minmax(0,1fr) minmax(420px,1fr);min-height:100svh;display:grid}.auth-story{justify-content:space-between;gap:var(--space-3);padding:var(--page-gutter);color:#fff;background-position:50%;background-size:cover;flex-direction:column;min-height:100svh;display:flex}.auth-brand{align-items:center;gap:var(--space-3);color:#fff;width:fit-content;font-size:18px;font-weight:700;text-decoration:none;display:flex}.auth-brand-symbol{width:38px;height:38px;font-family:var(--font-heading);background:#ffffff12;border:1px solid #ffffff70;border-radius:12px;place-items:center;font-size:22px;display:grid}.auth-brand small{margin-top:var(--space-1);color:#e2e8f0;font-size:12px;font-weight:400;display:block}.auth-story-copy{max-width:520px;padding-block:var(--space-4);margin-block:auto}.auth-kicker{color:#dbeafe;letter-spacing:1px;font-size:12px;font-weight:600;line-height:1.5}.auth-story h2{font-family:var(--font-heading);letter-spacing:-1px;margin:var(--space-3) 0;color:#fff;font-size:clamp(28px,3.8vw - 4px,52px);font-weight:500;line-height:1.24}.auth-story-copy>p:last-of-type{color:#e2e8f0;max-width:420px;font-size:14px;line-height:1.5}.auth-capabilities{gap:var(--space-3);margin:var(--space-4) 0 0;color:#f1f5f9;padding:0;font-size:14px;list-style:none;display:grid}.auth-capabilities li{align-items:center;gap:var(--space-3);display:flex}.auth-capabilities span{background:#93c5fd;width:7px;height:7px;transform:rotate(45deg)}.auth-story-footer{letter-spacing:2px;color:#cbd5e1;font-size:12px}.auth-form-panel{padding:var(--page-gutter);background:var(--color-surface);place-items:center;display:grid}.auth-form-wrap{width:min(100%,500px)}.auth-form-heading{margin-bottom:var(--space-4)}.auth-form-heading h1{font-family:var(--font-heading);letter-spacing:-.7px;margin:var(--space-3) 0;font-size:28px;font-weight:500;line-height:1.3}.auth-form-heading .muted{line-height:1.5}.auth-roles-section{margin-bottom:var(--space-4)}.auth-roles-header{margin-bottom:var(--space-3)}.auth-roles-kicker{letter-spacing:.8px;color:var(--color-primary);text-transform:uppercase;font-size:11px;font-weight:700;display:block}.auth-roles-grid{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.auth-role-btn{text-align:left;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface);cursor:pointer;transition:transform var(--motion-duration) var(--motion-easing), box-shadow var(--motion-duration) var(--motion-easing), border-color var(--motion-duration) var(--motion-easing), background-color var(--motion-duration) var(--motion-easing);flex-direction:column;align-items:stretch;display:flex;position:relative;overflow:hidden}.auth-role-btn:hover:not(:disabled){border-color:var(--color-primary);transform:translateY(-2px);box-shadow:0 6px 16px #2563eb1f}.auth-role-btn:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.auth-role-btn:disabled{opacity:.65;cursor:not-allowed}.auth-role-btn.is-loading{border-color:var(--color-primary);background:var(--color-primary-soft)}.auth-role-top{justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);display:flex}.auth-role-icon-box{background:var(--color-primary-soft);width:36px;height:36px;color:var(--color-primary);border-radius:8px;place-items:center;display:grid}.auth-role-btn.role-admin .auth-role-icon-box{background:var(--status-special-soft);color:var(--status-special-text)}.auth-role-btn.role-hr .auth-role-icon-box{background:var(--status-success-soft);color:var(--status-success-text)}.auth-role-btn.role-dept_lead .auth-role-icon-box{background:var(--status-info-soft);color:var(--status-info-text)}.auth-role-btn.role-security .auth-role-icon-box{background:var(--status-warning-soft);color:var(--status-warning-text)}.auth-role-badge{background:var(--color-background);color:var(--color-muted-foreground);border:1px solid var(--color-border);white-space:nowrap;border-radius:999px;padding:2px 7px;font-size:11px;font-weight:600}.auth-role-info{margin-bottom:var(--space-3);flex:1}.auth-role-name{color:var(--color-foreground);margin-bottom:2px;font-size:15px;font-weight:600;display:block}.auth-role-name small{color:var(--color-muted-foreground);margin-left:4px;font-size:12px;font-weight:400}.auth-role-desc{color:var(--color-muted-foreground);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:12px;line-height:1.4;display:-webkit-box;overflow:hidden}.auth-role-action{color:var(--color-primary);padding-top:var(--space-2);border-top:1px dashed var(--color-border);margin-top:auto;font-size:12px;font-weight:600}.auth-role-btn:hover:not(:disabled) .auth-role-action{color:var(--color-primary-hover)}.auth-divider{text-align:center;margin:var(--space-4) 0;color:var(--color-muted-foreground);letter-spacing:.8px;align-items:center;font-size:11px;font-weight:600;display:flex}.auth-divider:before,.auth-divider:after{content:"";border-bottom:1px solid var(--color-border);flex:1}.auth-divider span{padding:0 var(--space-3)}.auth-form{gap:var(--space-3);display:grid}.auth-form .field{margin:0}.auth-password{border:1px solid var(--color-control-border);background:var(--color-surface);border-radius:8px;align-items:center;display:flex;overflow:hidden}.auth-password:focus-within{outline:2px solid var(--color-focus);outline-offset:2px}.auth-password input{flex:1;width:100%;min-width:0;box-shadow:none!important;border:0!important;border-radius:0!important;outline:none!important}.auth-visibility{padding:0 var(--space-3);color:var(--color-primary);cursor:pointer;min-width:var(--control-height);min-height:var(--control-height);background:0 0;border:0;align-self:stretch;font-size:14px;font-weight:600}.auth-visibility:hover{background:var(--status-info-soft)}.auth-submit{width:100%;min-height:var(--control-height)}.auth-error{margin:0!important}.auth-form-footer{margin:var(--space-4) 0 0;color:var(--color-muted-foreground);text-align:center;font-size:12px;line-height:1.5}@media (width<=1050px){.auth-story,.auth-form-panel{padding:var(--page-gutter)}.auth-story h2{font-size:34px}}@media (width<=767px){.auth-screen{grid-template-columns:1fr}.auth-story{min-height:auto;padding:var(--page-gutter);gap:var(--space-3)}.auth-story-copy{margin:0;padding:0}.auth-story h2{margin:var(--space-3) 0;font-size:26px}.auth-story h2 br{display:none}.auth-story-copy>p:last-of-type{margin:0;font-size:14px}.auth-kicker,.auth-capabilities,.auth-story-footer{display:none}.auth-form-panel{padding:var(--page-gutter)}.auth-form-heading h1{font-size:25px}.auth-form-heading{margin-bottom:var(--space-4)}}@media (width<=520px){.auth-roles-grid{grid-template-columns:1fr}.auth-form-panel{padding:var(--page-gutter)}.auth-brand{font-size:16px}}.reporting-page{gap:var(--space-3);display:grid}.reporting-page>.page-heading{margin-bottom:0}.page-heading.dashboard-heading{align-items:center}.dashboard-heading h1{margin-bottom:0}.dashboard-heading-actions{justify-items:end;gap:10px;margin-left:auto;display:grid}.dashboard-date{gap:var(--space-3);color:var(--color-muted-foreground);align-items:center;font-size:14px;display:flex}.dashboard-date time{color:var(--color-foreground);font-weight:600}.dashboard-update-bar{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--panel-padding);display:flex}.dashboard-update-bar .badge{padding:var(--space-3) var(--space-6);font-size:.875rem}.dashboard-update-bar p{margin:var(--space-1) 0 0;font-size:12px}.refresh-field{min-width:190px}.scope-caption{margin:0}.kpi-grid{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.kpi-card{padding:var(--panel-padding)}.kpi-card-heading{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.kpi-card-heading h2{color:var(--color-muted-foreground);margin:0;font-family:inherit;font-size:14px;font-weight:500}.kpi-icon{border-radius:var(--radius-control);place-items:center;width:32px;height:32px;display:grid}.kpi-info .kpi-icon{color:var(--status-info-text);background:var(--status-info-soft)}.kpi-success .kpi-icon{color:var(--status-success-text);background:var(--status-success-soft)}.kpi-warning .kpi-icon{color:var(--status-warning-text);background:var(--status-warning-soft)}.kpi-danger .kpi-icon{color:var(--status-danger-text);background:var(--status-danger-soft)}.kpi-number{margin:var(--space-2) 0;letter-spacing:-1px;font-variant-numeric:tabular-nums;font-size:36px;font-weight:600;line-height:1.15}.kpi-number span{margin-left:var(--space-3);color:var(--color-muted-foreground);letter-spacing:normal;font-size:14px;font-weight:400}.kpi-note{margin:0;font-size:12px}.report-panel-heading{padding:var(--panel-padding)}.report-panel-heading h2{margin:var(--space-2) 0;font-family:var(--font-heading);font-size:18px;font-weight:600}.report-panel-heading p{margin-bottom:0}.report-panel-heading>.muted{font-size:12px;line-height:1.5}.report-panel-heading-row{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.report-link{align-items:center;gap:var(--space-2);min-height:var(--control-height);color:var(--color-primary);font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.report-link:hover{text-decoration:underline}.daily-summary-panel{overflow:hidden}.daily-summary-panel,.attendance-chart,.monthly-table-panel{padding:0}.reporting-page .numeric{text-align:right;font-variant-numeric:tabular-nums}.report-filter-panel{justify-content:space-between;align-items:flex-start;gap:var(--space-3);padding:var(--panel-padding);display:flex}.report-filter-fields{gap:var(--space-3);flex-wrap:wrap;flex:1;align-items:flex-start;display:flex}.report-filter-fields>.field{min-width:190px}.report-department-field{flex:1;max-width:390px}.scope-readonly{min-height:var(--control-height);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-background);margin:0;font-size:14px}.export-control{max-width:330px;padding-top:25px}.export-menu-anchor{position:relative}.export-popover{z-index:5;right:0;top:calc(100% + var(--space-3));width:330px;padding:var(--panel-padding);box-shadow:var(--shadow-panel);position:absolute}.export-popover h3{align-items:center;gap:var(--space-3);margin:0 0 var(--space-3);font-size:14px;display:flex}.export-popover dl{gap:var(--space-3);grid-template-columns:95px minmax(0,1fr);font-size:14px;display:grid}.export-popover dt{color:var(--color-muted-foreground)}.export-popover dd{overflow-wrap:anywhere;margin:0}.export-popover .muted{font-size:12px;line-height:1.6}.export-popover .button{width:100%;margin-top:var(--space-2)}.export-feedback{overflow-wrap:anywhere;margin:var(--space-2) 0 0;font-size:12px;line-height:1.5}.export-error{color:var(--status-danger-text)}.export-success{color:var(--status-success-text)}.report-context{justify-content:space-between;align-items:flex-start;gap:var(--space-3);font-size:12px;display:flex}.monthly-summary-strip{gap:var(--space-3);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.monthly-summary-strip>div{padding:var(--panel-padding);border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-panel);gap:var(--space-2);display:grid}.monthly-summary-strip span{color:var(--color-muted-foreground);font-size:12px}.monthly-summary-strip strong{font-variant-numeric:tabular-nums;font-size:22px;font-weight:600}.monthly-report-grid{gap:var(--space-3);grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:start;display:grid}.monthly-table-panel{overflow:hidden}.attendance-chart{--chart-plot-height:200px}.chart-legend{padding:0 var(--panel-padding) var(--space-3);gap:var(--space-3);flex-wrap:wrap;margin:0;font-size:12px;list-style:none;display:flex}.chart-legend li{align-items:center;gap:var(--space-2);display:flex}.legend-mark{border-radius:2px;width:10px;height:10px;display:inline-block}.on-time{background:var(--status-success)}.late{background:var(--status-warning)}.absent{background:var(--status-danger)}.stacked-chart{margin:0 var(--panel-padding);gap:var(--space-3);height:calc(var(--chart-plot-height) + 40px);display:flex}.chart-axis{width:35px;color:var(--color-muted-foreground);font-variant-numeric:tabular-nums;flex-direction:column;flex-shrink:0;justify-content:space-between;padding-bottom:40px;font-size:12px;display:flex}.chart-axis span:first-child{transform:translateY(-50%)}.chart-axis span:last-child{transform:translateY(50%)}.chart-bars{gap:var(--space-3);min-width:0;padding:0 var(--space-3);background-image:repeating-linear-gradient(to bottom, var(--color-border) 0, var(--color-border) 1px, transparent 1px, transparent calc(var(--chart-plot-height) / 2));background-size:100% calc(var(--chart-plot-height) + 1px);background-repeat:no-repeat;flex:1;display:flex;overflow-x:auto}.chart-bar-column{align-items:center;gap:var(--space-2);flex-direction:column;flex:1 0 60px;min-width:60px;max-width:110px;display:flex}.chart-bar{width:100%;max-width:64px;height:var(--chart-plot-height);background:var(--color-background);border-radius:5px 5px 0 0;flex-direction:column-reverse;flex-shrink:0;display:flex;position:relative;overflow:hidden}.chart-bar-segment{flex-shrink:0;display:block}.chart-bar-label{text-align:center;overflow-wrap:anywhere;width:100%;color:var(--color-muted-foreground);font-size:12px;font-weight:600}.chart-zero{text-align:center;color:var(--color-muted-foreground);position:absolute;inset:auto 0 10px}.chart-footnote{padding:var(--panel-padding);margin:0;font-size:12px;line-height:1.5}.table-cell-note{margin-top:var(--space-1);font-size:12px;font-weight:400;display:block}@media (width<=1199px){.monthly-report-grid{grid-template-columns:minmax(0,1fr)}.monthly-summary-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=767px){.dashboard-update-bar{flex-direction:column;align-items:stretch}.refresh-field{min-width:0}.kpi-card-heading{align-items:flex-start}.kpi-icon{flex-shrink:0;width:32px;height:32px}.kpi-number{font-size:28px}.kpi-number span{margin:var(--space-2) 0 0;font-size:14px;display:block}.report-panel-heading-row{flex-direction:column;align-items:flex-start}.report-filter-panel{flex-direction:column;align-items:stretch}.report-filter-fields{grid-template-columns:minmax(0,1fr);display:grid}.report-filter-fields>.field{min-width:0;max-width:none}.export-control{max-width:none;padding-top:0}.export-menu-anchor>.button,.export-popover{width:100%}.report-context{gap:var(--space-2);flex-direction:column}}@media (width<=420px){.kpi-grid{grid-template-columns:minmax(0,1fr)}.kpi-number span{margin-left:var(--space-3);display:inline}}.user-directory{overflow:hidden;padding:0!important}.user-directory-heading{justify-content:space-between;align-items:flex-start;gap:var(--space-3);padding:var(--panel-padding);border-bottom:1px solid var(--color-border);display:flex}.user-directory-heading h2{font-size:16px;font-family:var(--font-heading);margin:0;font-weight:500}.user-directory-heading .muted{margin:var(--space-2) 0 0;font-size:12px;line-height:1.5}.user-filter-toolbar{grid-template-columns:minmax(220px,1.5fr) minmax(150px,.8fr) minmax(190px,1fr);align-items:end;padding:var(--panel-padding)!important;gap:var(--space-3)!important;display:grid!important}.user-filter-toolbar .field{min-width:0;margin:0}.user-search-input{position:relative}.user-search-input svg{left:var(--space-3);color:var(--color-muted-foreground);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.user-search-input input{width:100%;padding-left:30px!important}.user-table{min-width:750px}.user-table th{white-space:nowrap}.user-table td{vertical-align:middle}.user-name-cell{align-items:center;gap:var(--space-3);display:flex}.user-name-cell strong{overflow-wrap:anywhere;font-weight:600}.user-initial{background:var(--status-info-soft);width:28px;height:28px;color:var(--status-info-text);border-radius:9px;flex:0 0 28px;place-items:center;font-weight:600;display:grid}.user-username{overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:14px}.badge.user-status-active{background:var(--status-success-soft);color:var(--status-success-text)}.badge.user-status-inactive{background:var(--status-neutral-soft);color:var(--status-neutral-text)}.user-status-active>span,.user-status-inactive>span{background:currentColor;border-radius:50%;width:6px;height:6px;margin-right:6px;display:inline-block}.user-results-count{padding:var(--space-2) var(--panel-padding);border-top:1px solid var(--color-border);color:var(--color-muted-foreground);margin:0;font-size:12px}.user-success{padding:var(--panel-padding);margin:0 0 var(--space-4);background:var(--status-success-soft);color:var(--status-success-text);border-radius:var(--radius-panel,12px);font-size:14px;line-height:1.5}.user-department-error{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex;margin:0 var(--panel-padding) var(--space-3)!important}.user-loading-mark{border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:24px;height:24px;animation:.8s linear infinite user-spin}@keyframes user-spin{to{transform:rotate(360deg)}}.user-dialog{width:min(100% - 16px,520px);max-height:calc(100svh - 16px);padding:var(--panel-padding);border:1px solid var(--color-border);border-radius:var(--radius-panel,12px);background:var(--color-surface);color:var(--color-foreground);overflow:auto;box-shadow:0 24px 80px #12284435}.user-dialog::backdrop{background:#0f172a80}.user-dialog-heading{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.user-dialog-heading h2{font-family:var(--font-heading);margin:var(--space-2) 0 0;font-size:22px;font-weight:500;line-height:1.3}.user-dialog>.muted{margin:var(--space-3) 0;font-size:14px;line-height:1.5}.user-dialog-close{min-width:var(--control-height);min-height:var(--control-height);flex-shrink:0;padding:var(--space-2)!important}.user-create-form{gap:var(--space-3);display:grid}.user-create-form .field{margin:0}.field-hint{color:var(--color-muted-foreground);font-size:12px;font-weight:400;line-height:1.6;display:block}.field-error{color:var(--status-danger-text);font-size:12px;font-weight:500;line-height:1.6;display:block}.user-error-summary{font-size:14px;line-height:1.5;margin:0!important}.user-error-summary ul{margin:var(--space-2) 0 0;padding-left:20px}.user-error-summary ul:empty{display:none}.user-error-summary a{color:inherit;text-decoration:underline}.user-inline-note{padding:var(--panel-padding);color:var(--status-warning-text);background:var(--status-warning-soft);border-radius:8px;margin:0;font-size:12px;line-height:1.5}.user-dialog-actions{justify-content:flex-end;gap:var(--space-3);border-top:1px solid var(--color-border);padding-top:var(--space-3);margin-top:var(--space-2);display:flex}@media (width<=1050px){.user-filter-toolbar{grid-template-columns:1fr 1fr}.user-search{grid-column:1/-1}}@media (width<=600px){.user-directory-heading{padding:var(--panel-padding);flex-wrap:wrap}.user-filter-toolbar{grid-template-columns:1fr;padding:var(--panel-padding)!important}.user-search{grid-column:auto}.user-dialog{padding:var(--panel-padding)}.user-dialog-heading h2{font-size:20px}.user-dialog-actions .button{flex:1}.user-department-error{margin-inline:var(--panel-padding)!important}.user-results-count{padding:var(--space-2) var(--panel-padding)}}.biometrics-page{max-width:100%;padding:0}.biometrics-filter-toolbar{align-items:flex-end;gap:var(--space-4);padding:var(--panel-padding);margin-bottom:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-panel);flex-wrap:wrap;display:flex}.enroll-viewport-container{aspect-ratio:4/3;border-radius:var(--radius-control);background:#0f172a;justify-content:center;align-items:center;width:100%;max-height:360px;display:flex;position:relative;overflow:hidden}.camera-feed-box{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative}.camera-video-stream{object-fit:cover;width:100%;height:100%;transform:scaleX(-1)}.camera-guide-overlay{pointer-events:none;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.face-oval-guide{border:2px dashed #fffc;border-radius:50%;width:190px;height:250px;box-shadow:0 0 0 9999px #00000059}.guide-hint{color:#fff;background:#000000b3;border-radius:12px;margin-top:12px;padding:4px 12px;font-size:.75rem}.file-drop-box{color:#94a3b8;text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:2rem;display:flex}.drop-icon{color:#64748b}.file-input-hidden{display:none}.preview-container{background:#000;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative}.preview-image,.preview-canvas{object-fit:contain;max-width:100%;max-height:100%}.btn-retake{color:#fff;cursor:pointer;background:#000000bf;border:1px solid #ffffff4d;border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-size:.75rem;transition:background .15s;display:inline-flex;position:absolute;bottom:12px;right:12px}.btn-retake:hover{background:#000000e6}.gate-card{padding:var(--panel-padding);border-radius:var(--radius-panel)}.gate-card-header{margin-bottom:var(--space-5);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.gate-header-title{align-items:center;gap:var(--space-3);display:flex}.gate-header-title h3{font-size:1.125rem;font-family:var(--font-heading);margin:0;font-weight:500}.gate-icon-badge{background:var(--color-primary-soft);width:40px;height:40px;color:var(--color-primary);border-radius:10px;justify-content:center;align-items:center;display:flex}.gate-card-content{gap:var(--space-5);grid-template-columns:1fr 1.2fr;display:grid}@media (width<=900px){.gate-card-content{grid-template-columns:1fr}}.gate-dropzone{border:2px dashed var(--color-border);border-radius:var(--radius-control);text-align:center;align-items:center;gap:var(--space-2);cursor:pointer;background:var(--status-neutral-soft);flex-direction:column;padding:2.5rem 1rem;transition:all .2s;display:flex}.gate-dropzone:hover{border-color:var(--color-primary);background:var(--color-primary-soft)}.gate-preview-box{border-radius:var(--radius-control);background:#000;justify-content:center;align-items:center;max-height:280px;display:flex;position:relative;overflow:hidden}.gate-preview-img{object-fit:cover;max-width:100%;max-height:280px}.gate-change-btn{color:#fff;cursor:pointer;background:#000000b3;border-radius:6px;padding:4px 8px;font-size:.75rem;position:absolute;top:8px;right:8px}.gate-placeholder{border:1px dashed var(--color-border);border-radius:var(--radius-control);text-align:center;height:100%;min-height:240px;color:var(--color-muted-foreground);flex-direction:column;justify-content:center;align-items:center;padding:2rem;display:flex}.result-metric-grid{gap:var(--space-3);flex-direction:column;display:flex}.result-card{background:var(--status-neutral-soft);border:1px solid var(--color-border);border-radius:var(--radius-control);padding:14px}.result-label{letter-spacing:.5px;color:var(--color-muted-foreground);margin-bottom:6px;font-size:.75rem;font-weight:700;display:block}.emp-match-name{color:var(--color-foreground);font-size:1.125rem;font-weight:700}.emp-match-code{color:var(--color-muted-foreground);font-size:.875rem}.attendance-page{max-width:100%;padding:0}.attendance-toolbar{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--panel-padding);margin-bottom:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-panel);flex-wrap:wrap;display:flex}.attendance-filter-toolbar{align-items:flex-end;gap:var(--space-4);padding:var(--panel-padding);margin-bottom:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-panel);flex-wrap:wrap;display:flex}.field-caption{letter-spacing:.5px;color:var(--color-muted-foreground);font-size:.75rem;font-weight:700}.kpi-grid{gap:var(--space-4);margin-bottom:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(190px,1fr));display:grid}.kpi-card{align-items:center;gap:var(--space-4);padding:16px var(--panel-padding);border-radius:var(--radius-panel);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-panel);transition:transform .15s,box-shadow .15s;display:flex}.kpi-card:hover{transform:translateY(-2px);box-shadow:0 6px 16px #10233b14}.kpi-icon-wrap{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.bg-blue{background:var(--status-info-soft);color:var(--status-info-text)}.bg-green{background:var(--status-success-soft);color:var(--status-success-text)}.bg-yellow{background:var(--status-warning-soft);color:var(--status-warning-text)}.bg-purple{background:var(--status-special-soft);color:var(--status-special-text)}.bg-red{background:var(--status-danger-soft);color:var(--status-danger-text)}.kpi-content{flex-direction:column;min-width:0;display:flex}.kpi-label{color:var(--color-muted-foreground);white-space:nowrap;font-size:.8125rem;font-weight:500}.kpi-number{color:var(--color-foreground);font-variant-numeric:tabular-nums;font-size:1.625rem;font-weight:700;line-height:1.2}.text-success{color:var(--status-success-text)!important}.text-warning{color:var(--status-warning-text)!important}.text-special{color:var(--status-special-text)!important}.time-mono{color:var(--color-foreground);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.875rem;font-weight:500}.emp-name-cell{align-items:center;gap:var(--space-3);display:flex}.emp-avatar{background:var(--color-primary-soft);width:28px;height:28px;color:var(--color-primary);border-radius:8px;flex:0 0 28px;place-items:center;font-size:.8125rem;font-weight:600;display:inline-grid}.zone-editor-page{gap:var(--container-gap,12px);flex-direction:column;min-height:calc(100svh - 100px);display:flex}.zone-editor-layout{gap:var(--container-gap,14px);grid-template-columns:310px minmax(0,1fr);align-items:flex-start;display:grid}@media (width<=1024px){.zone-editor-layout{grid-template-columns:1fr}}.zone-editor-workspace{gap:var(--container-gap,14px);flex-direction:column;min-width:0;display:flex}.camera-panel{flex-direction:column;gap:12px;display:flex}.camera-panel-heading{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.camera-panel-heading h2{margin:0;font-size:1.05rem}.camera-list{flex-direction:column;gap:8px;max-height:520px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.camera-item{border-radius:var(--radius-control,8px);border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;flex-direction:column;gap:6px;padding:10px 12px;transition:all .15s;display:flex;position:relative}.camera-item:hover{background:var(--color-primary-soft);border-color:#2563eb4d}.camera-item.active{background:var(--color-primary-soft);border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary)}.camera-item-main{flex-direction:column;gap:2px;display:flex}.camera-item-title{justify-content:space-between;align-items:center;gap:6px;display:flex}.camera-code{color:var(--color-foreground);font-size:.875rem;font-weight:600}.camera-name{margin:0;font-size:.8125rem}.camera-menu-container{position:relative}.camera-menu-trigger{color:var(--color-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:2px 4px;transition:all .15s;display:flex}.camera-menu-trigger:hover{color:var(--color-foreground);background:#00000014}.camera-menu-dropdown{background:var(--color-surface,#fff);border:1px solid var(--color-border);border-radius:var(--radius-control,8px);box-shadow:var(--shadow-panel,0 4px 14px #00000026);z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);flex-direction:column;gap:2px;min-width:140px;margin-top:4px;padding:4px;display:flex;position:absolute;top:100%;right:0}.camera-menu-item{cursor:pointer;width:100%;color:var(--color-foreground);text-align:left;background:0 0;border:none;border-radius:4px;align-items:center;gap:8px;padding:6px 10px;font-size:.8125rem;transition:background .12s;display:flex}.camera-menu-item:hover{background:#0000000d}.camera-menu-item.text-danger{color:#ef4444}.camera-menu-item.text-danger:hover{background:#ef44441f}.camera-item-meta{justify-content:space-between;align-items:center;gap:6px;margin-top:2px;font-size:.75rem;display:flex}.camera-status-cluster{align-items:center;gap:6px;display:flex}.status-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.status-dot.online{background-color:var(--status-success,#10b981);box-shadow:0 0 6px #10b98199}.status-dot.offline{background-color:var(--status-neutral,#94a3b8)}.badge-subtle{padding:2px 6px;font-size:.7rem}.camera-calibration-actions{margin-top:4px}.canvas-main-panel{flex-direction:column;gap:10px;display:flex}.zone-canvas-container{flex-direction:column;gap:8px;display:flex}.canvas-wrapper{aspect-ratio:16/9;border-radius:var(--radius-panel,12px);width:100%;box-shadow:var(--shadow-panel);border:1px solid var(--color-border);background:#0f172a;position:relative;overflow:hidden}.canvas-video-layer{object-fit:cover;z-index:1;width:100%;height:100%;position:absolute;top:0;left:0}.zone-canvas{z-index:2;cursor:crosshair;width:100%;height:100%;display:block;position:relative}.canvas-toolbar{pointer-events:none;z-index:3;justify-content:space-between;align-items:center;gap:8px;display:flex;position:absolute;top:12px;left:12px;right:12px}.canvas-toolbar-left{pointer-events:auto;flex-wrap:wrap;align-items:center;gap:8px;display:flex}.canvas-toolbar button{pointer-events:auto;cursor:pointer}.canvas-toolbar button:disabled{cursor:not-allowed;opacity:.65}.canvas-threshold-selector{pointer-events:auto;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--color-foreground,#e2e8f0);background:#0f172ad9;border:1px solid #ffffff24;border-radius:6px;align-items:center;gap:6px;padding:3px 8px;font-size:.75rem;display:inline-flex}.threshold-label{color:#94a3b8;white-space:nowrap;font-size:.72rem;font-weight:600}.threshold-select{color:#f8fafc;cursor:pointer;background:0 0;border:none;outline:none;padding:2px 4px;font-size:.74rem;font-weight:600}.threshold-select option{color:#f8fafc;background:#0f172a}.threshold-select:disabled{cursor:not-allowed;opacity:.7}.live-dot{background-color:#fff;border-radius:50%;width:8px;height:8px;animation:1.2s ease-in-out infinite pulse-live;display:inline-block}@keyframes pulse-live{0%{opacity:.6;transform:scale(.85)}50%{opacity:1;transform:scale(1.25)}to{opacity:.6;transform:scale(.85)}}.canvas-stat-pill{pointer-events:auto;color:#f8fafc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172acc;border:1px solid #ffffff26;border-radius:20px;align-items:center;gap:6px;padding:6px 12px;font-size:.8125rem;display:inline-flex}.warning-pill{color:#fee2e2;background:#991b1bd9;border-color:#ef444466}.ai-stat-pill{color:#fef3c7!important;background:#b45309d9!important;border-color:#f59e0b80!important;gap:8px!important}.ai-clear-btn{color:#fef3c7;cursor:pointer;opacity:.8;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:0 4px;font-size:.75rem;transition:opacity .15s;display:inline-flex}.ai-clear-btn:hover{opacity:1;background:#fff3}.canvas-actions-row{pointer-events:auto;align-items:center;gap:6px;display:flex}.button-xs{min-height:30px!important;padding:4px 10px!important;font-size:.75rem!important}.button-sm{min-height:34px!important;padding:4px 12px!important;font-size:.8125rem!important}.button-block{width:100%}.canvas-bottom-bar,.canvas-cheatsheet-bar{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-control,8px);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;min-height:48px;padding:8px 14px;font-size:.8125rem;display:flex}.canvas-controls-left{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.canvas-controls-left button{cursor:pointer}.canvas-controls-left button:disabled{cursor:not-allowed;opacity:.65}.canvas-cheatsheet-compact{flex-wrap:wrap;align-items:center;gap:6px;margin-left:auto;display:flex}.fsm-status-legend{color:var(--color-muted);flex-wrap:wrap;align-items:center;gap:10px;font-size:.75rem;display:flex}.legend-chip{letter-spacing:.02em;align-items:center;gap:5px;font-size:.725rem;font-weight:500;display:inline-flex}.legend-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.legend-dot.dot-gray{background-color:#94a3b8;box-shadow:0 0 0 2px #94a3b840}.legend-dot.dot-green{background-color:#10b981;box-shadow:0 0 0 2px #10b9814d}.legend-dot.dot-amber{background-color:#f59e0b;box-shadow:0 0 0 2px #f59e0b4d}.legend-dot.dot-red{background-color:#ef4444;box-shadow:0 0 0 2px #ef44444d}.cheatsheet-title{color:var(--color-foreground);letter-spacing:.02em;flex-shrink:0;align-items:center;gap:6px;font-size:.8rem;font-weight:600;display:inline-flex}.cheatsheet-items{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.cheatsheet-chip{color:var(--color-muted);align-items:center;gap:5px;font-size:.775rem;display:inline-flex}.cheatsheet-chip kbd{background:var(--color-background);border:1px solid var(--color-border);color:var(--color-foreground);border-radius:4px;padding:2px 6px;font-family:inherit;font-size:.725rem;font-weight:600;box-shadow:0 1px #0000001a}.cheatsheet-chip.highlight kbd{color:var(--color-primary);background:#2563eb1f;border-color:#2563eb66}.cheatsheet-chip.highlight-green kbd{color:#10b981;background:#10b98126;border-color:#10b98173}.canvas-notice-toast{color:#f8fafc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10;pointer-events:none;background:#0f172aeb;border:1px solid #fff3;border-radius:20px;padding:8px 20px;font-size:.8125rem;font-weight:500;animation:.2s ease-out toastFade;position:absolute;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #00000059}@keyframes toastFade{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}.live-ai-stat-pill{color:#fff!important;background:#10b981e0!important;border-color:#10b98199!important}.live-indicator{align-items:center;gap:6px;display:inline-flex;color:#fff!important;background:#dc2626e6!important;border-color:#ef444499!important}.seat-bottom-panel{flex-direction:column;display:flex}.seat-panel-header{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:12px;display:flex}.seat-panel-header h2{margin:0;font-size:1.05rem}.seat-bottom-grid{grid-template-columns:1.3fr .9fr;align-items:flex-start;gap:18px;display:grid}@media (width<=900px){.seat-bottom-grid{grid-template-columns:1fr}}.seat-bottom-form{flex-direction:column;gap:12px;display:flex}.seat-form-fields-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=640px){.seat-form-fields-grid{grid-template-columns:1fr}}.seat-form-footer{border-top:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-top:6px;display:flex}.polygon-meta-box{border-radius:var(--radius-control,8px);background:var(--color-background);border:1px solid var(--color-border);padding:8px 12px;font-size:.8125rem}.polygon-meta-box.horizontal{align-items:center;display:flex}.seat-form-actions-row{align-items:center;gap:8px;display:flex}.seat-bottom-meta-col{flex-direction:column;gap:12px;display:flex}.existing-seats-card{border-radius:var(--radius-control,8px);background:var(--color-background);border:1px solid var(--color-border);flex-direction:column;gap:8px;padding:10px 14px;display:flex}.existing-seats-card-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.seat-chips-wrapper{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;max-height:200px;padding-right:2px;display:grid;overflow-y:auto}.seat-chip-compact{background:var(--color-surface);border:1px solid var(--color-border);cursor:pointer;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:6px 10px;transition:all .12s;display:flex}.seat-chip-compact:hover{background:var(--color-primary-soft);border-color:#2563eb4d}.seat-chip-compact.active{background:var(--color-primary-soft);border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary)}.seat-chip-main{flex-direction:column;min-width:0;display:flex}.seat-chip-code{color:var(--color-foreground);text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;font-weight:600;overflow:hidden}.seat-chip-name{text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.seat-chip-badge{flex-shrink:0;align-items:center;gap:6px;display:flex}.seat-chip-del-icon{color:var(--color-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:3px 5px;transition:all .15s;display:inline-flex}.seat-chip-del-icon:hover{color:#ef4444;background:#ef44441f}.text-danger{color:#ef4444!important}.disabled-field{cursor:not-allowed;opacity:.85;background:#0000000a!important}.modal-backdrop{-webkit-backdrop-filter:blur(4px);z-index:99999;box-sizing:border-box;background:#0f172ab8;justify-content:center;align-items:center;width:100vw;height:100vh;padding:16px;animation:.18s cubic-bezier(.16,1,.3,1) modalFadeIn;display:flex;position:fixed;inset:0}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes dialogScaleUp{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.modal-backdrop .app-dialog{margin:auto;animation:.18s cubic-bezier(.16,1,.3,1) dialogScaleUp}.app-dialog-confirm{background:var(--color-surface,#fff)!important;border-radius:var(--radius-panel,12px)!important;border:1px solid #ef444447!important;width:min(100% - 24px,450px)!important;padding:24px!important;box-shadow:0 24px 80px #0006,0 0 0 1px #ef444426!important}.confirm-delete-header{align-items:center;gap:12px;margin-bottom:16px;display:flex}.confirm-delete-icon-box{color:#ef4444;background:#ef44441f;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.confirm-delete-header-text h2{color:#1e293b;margin:0;font-size:1.15rem;font-weight:600}.confirm-delete-header-text p{color:var(--color-muted,#64748b);margin:2px 0 0;font-size:.8125rem}.confirm-delete-callout{border-radius:var(--radius-control,8px);color:#b91c1c;background:#ef444414;border:1px solid #ef444433;margin-top:12px;padding:12px 14px;font-size:.8125rem;line-height:1.5}.view-switcher-group{background:var(--color-background);border-radius:var(--radius-control,8px);border:1px solid var(--color-border);align-items:center;gap:2px;padding:3px;display:inline-flex}.view-switcher-btn{border-radius:calc(var(--radius-control,8px) - 2px);color:var(--color-muted-foreground);cursor:pointer;white-space:nowrap;background:0 0;border:none;align-items:center;gap:6px;padding:5px 12px;font-size:.75rem;font-weight:600;transition:all .15s;display:inline-flex}.view-switcher-btn:hover{color:var(--color-foreground)}.view-switcher-btn.active{background:var(--color-surface,#fff);color:var(--color-primary);box-shadow:0 1px 4px #00000014}.live-grid-container{gap:16px;width:100%;display:grid}.live-grid-container.cols-1{grid-template-columns:1fr}.live-grid-container.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.live-grid-container.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}@media (width<=900px){.live-grid-container.cols-2,.live-grid-container.cols-3{grid-template-columns:1fr}}.live-grid-card{background:var(--color-surface,#fff);border:1px solid var(--color-border);border-radius:var(--radius-panel,12px);flex-direction:column;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex;overflow:hidden;box-shadow:0 2px 8px #0000000a}.live-grid-card:hover{border-color:#2563eb73;transform:translateY(-2px);box-shadow:0 8px 24px #2563eb1f}.live-grid-card.selected{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb40}.live-grid-card-header{background:var(--color-background);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;display:flex}.live-grid-header-info{align-items:center;gap:8px;min-width:0;display:flex}.live-grid-header-info .camera-code-label{color:var(--color-foreground);white-space:nowrap;font-size:.8125rem;font-weight:600}.live-grid-header-info .camera-name-label{color:var(--color-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;overflow:hidden}.live-grid-header-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.live-grid-media-wrap{aspect-ratio:16/9;background:#0f172a;width:100%;position:relative;overflow:hidden}.live-grid-media{object-fit:cover;width:100%;height:100%;display:block}.live-grid-overlay-canvas{pointer-events:none;z-index:2;width:100%;height:100%;position:absolute;inset:0}.live-grid-tag{z-index:3;color:#fff;letter-spacing:.5px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ef4444e6;border-radius:12px;align-items:center;gap:5px;padding:3px 8px;font-size:.6875rem;font-weight:700;display:inline-flex;position:absolute;top:8px;left:8px}.live-grid-placeholder{color:#94a3b8;background:#0f172a;flex-direction:column;justify-content:center;align-items:center;gap:8px;height:100%;font-size:.8125rem;display:flex}.seat-map-page-layout{gap:var(--space-4);flex-direction:column;min-width:0;display:flex}.seat-map-header{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-2);flex-wrap:wrap;display:flex}.seat-map-title-wrap h1{color:var(--color-foreground);margin:0;font-size:1.5rem;font-weight:700}.seat-map-actions-wrap{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.signalr-status-badge{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--color-border);background:#ffffffa6;border-radius:9999px;align-items:center;gap:8px;padding:6px 14px;font-size:.8125rem;font-weight:600;display:inline-flex;box-shadow:0 1px 3px #0000000d}.signalr-status-badge.connected{color:#065f46;background:#ecfdf5d9;border-color:#a7f3d0}.signalr-status-badge.reconnecting{color:#92400e;background:#fef3c7d9;border-color:#fde68a}.signalr-status-badge.disconnected{color:#991b1b;background:#fef2f2d9;border-color:#fecaca}.status-indicator-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.connected .status-indicator-dot{background-color:#10b981;box-shadow:0 0 0 3px #10b9814d}.reconnecting .status-indicator-dot{background-color:#f59e0b;animation:1.5s infinite pulse}.disconnected .status-indicator-dot{background-color:#ef4444}.dept-select-wrap select{border-radius:var(--radius-control);border:1px solid var(--color-control-border);background:var(--color-surface);min-height:38px;color:var(--color-foreground);cursor:pointer;padding:6px 12px;font-size:.875rem;font-weight:500}.seat-kpi-strip{gap:var(--space-3);margin-bottom:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(170px,1fr));display:grid}.seat-kpi-item{align-items:center;gap:var(--space-3);border-radius:var(--radius-panel);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-panel);padding:14px 16px;display:flex}.kpi-icon-wrap{border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.kpi-total .kpi-icon-wrap{color:#475569;background:#f1f5f9}.kpi-present .kpi-icon-wrap{color:#16a34a;background:#dcfce7}.kpi-away .kpi-icon-wrap{color:#d97706;background:#fef3c7}.kpi-alert .kpi-icon-wrap{color:#dc2626;background:#fee2e2}.kpi-empty .kpi-icon-wrap{color:#94a3b8;background:#f8fafc}.kpi-restricted .kpi-icon-wrap{color:#7c3aed;background:#ede9fe}.kpi-data{flex-direction:column;display:flex}.kpi-label{color:var(--color-muted-foreground);text-transform:uppercase;letter-spacing:.5px;font-size:.75rem;font-weight:600}.kpi-value{color:var(--color-foreground);font-size:1.25rem;font-weight:700;line-height:1.3}.kpi-value small{color:var(--color-muted-foreground);font-size:.8125rem;font-weight:500}.seat-filter-bar{justify-content:space-between;align-items:center;gap:var(--space-3);border-radius:var(--radius-panel);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-panel);margin-bottom:var(--space-4);flex-wrap:wrap;padding:12px 16px;display:flex}.seat-search-input-wrap{flex:1;min-width:260px;position:relative}.seat-search-input-wrap .search-icon{color:var(--color-muted-foreground);position:absolute;top:50%;left:12px;transform:translateY(-50%)}.seat-search-input{border-radius:var(--radius-control);border:1px solid var(--color-control-border);background:var(--color-surface);width:100%;color:var(--color-foreground);padding:8px 36px;font-size:.875rem}.seat-search-clear{color:var(--color-muted-foreground);cursor:pointer;background:0 0;border:none;padding:4px;font-size:.75rem;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.seat-filter-chips{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.filter-chip{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-muted-foreground);cursor:pointer;border-radius:9999px;padding:6px 12px;font-size:.8125rem;font-weight:500;transition:all .15s}.filter-chip:hover{background:var(--color-primary-soft);color:var(--color-primary)}.filter-chip.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary);font-weight:600}.seat-card-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(250px,1fr));min-width:0;display:grid}.seat-card{border-radius:var(--radius-panel);background:var(--color-surface);border:2px solid var(--color-border);box-shadow:var(--shadow-panel);cursor:pointer;flex-direction:column;justify-content:space-between;min-height:165px;padding:16px;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex}.seat-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #1228441f}.seat-card-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.seat-card-code-wrap{align-items:center;gap:6px;display:flex}.seat-card-code{color:var(--color-foreground);letter-spacing:.5px;font-size:.9375rem;font-weight:700}.seat-card-badge{text-transform:uppercase;letter-spacing:.3px;border-radius:6px;align-items:center;gap:5px;padding:3px 8px;font-size:.6875rem;font-weight:700;display:inline-flex}.seat-card-body{flex-direction:column;flex:1;gap:10px;display:flex}.seat-card-name{color:var(--color-muted-foreground);white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;font-weight:500;overflow:hidden}.seat-card-employee-row{align-items:center;gap:10px;display:flex}.seat-card-avatar{background:var(--color-primary-soft);width:36px;height:36px;color:var(--color-primary);border:1px solid #0000000d;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.8125rem;font-weight:700;display:flex}.seat-card-employee-info{flex-direction:column;display:flex;overflow:hidden}.seat-card-employee-name{color:var(--color-foreground);white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;font-weight:600;overflow:hidden}.seat-card-employee-code{color:var(--color-muted-foreground);font-size:.75rem}.seat-card-footer{border-top:1px solid var(--color-border);margin-top:12px;padding-top:10px;font-size:.75rem}.seat-card-stat{justify-content:space-between;align-items:center;font-weight:500;display:flex}.seat-card-stat strong{font-size:.8125rem;font-weight:700}.stat-active strong{color:#10b981}.stat-away strong{color:#f59e0b}.stat-alert strong{color:#ef4444}.stat-lunch strong{color:#0284c7}.seat-card-present{background:linear-gradient(180deg, #ecfdf5b3 0%, var(--color-surface) 100%);border-color:#10b981}.seat-card-present .seat-card-icon{color:#10b981}.seat-card-present-badge,.seat-card-present .seat-card-avatar{color:#15803d;background:#dcfce7}.seat-card-away{background:linear-gradient(180deg, #fef3c7b3 0%, var(--color-surface) 100%);border-color:#f59e0b}.seat-card-away .seat-card-icon{color:#f59e0b}.seat-card-away-badge,.seat-card-away .seat-card-avatar{color:#b45309;background:#fef3c7}.seat-card-prolonged{background:linear-gradient(180deg, #fef2f2cc 0%, var(--color-surface) 100%);border-color:#ef4444}.seat-card-prolonged .seat-card-icon{color:#ef4444}.seat-card-prolonged-badge,.seat-card-prolonged .seat-card-avatar{color:#b91c1c;background:#fee2e2}.seat-card-restricted{background:linear-gradient(180deg, #f5f3ffb3 0%, var(--color-surface) 100%);border-color:#7c3aed}.seat-card-restricted .seat-card-icon{color:#7c3aed}.seat-card-restricted-badge{color:#6d28d9;background:#ede9fe}.seat-card-lunch{background:linear-gradient(180deg, #f0f9ffb3 0%, var(--color-surface) 100%);border-color:#38bdf8}.seat-card-lunch .seat-card-icon{color:#0284c7}.seat-card-lunch-badge{color:#0369a1;background:#e0f2fe}.seat-card-empty{border-color:#e2e8f0}.seat-card-empty .seat-card-icon{color:#94a3b8}.seat-card-empty-badge{color:#64748b;background:#f1f5f9}.seat-card-empty .seat-card-avatar{color:#94a3b8;background:#f1f5f9}.seat-card-pulse{animation:2s ease-in-out infinite card-alert-pulse}@keyframes card-alert-pulse{0%{box-shadow:0 0 #ef444480}70%{box-shadow:0 0 0 8px #ef444400}to{box-shadow:0 0 #ef444400}}.seat-map-alerts-container{margin-bottom:var(--space-3);flex-direction:column;gap:8px;display:flex}.seat-map-alert-toast{border-radius:var(--radius-control);color:#991b1b;background:#fee2e2;border:1px solid #fca5a5;justify-content:space-between;align-items:center;padding:10px 16px;font-size:.875rem;font-weight:500;animation:.3s slideInDown;display:flex;box-shadow:0 4px 12px #ef444426}.seat-map-alert-content{align-items:center;gap:10px;display:flex}.seat-map-alert-close{color:#991b1b;cursor:pointer;background:0 0;border:none;padding:4px;font-size:.8125rem}@keyframes slideInDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.seat-map-empty{border-radius:var(--radius-panel);background:var(--color-surface);border:1px dashed var(--color-border);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:60px 20px;display:flex}.panel{min-width:0;padding:var(--panel-padding);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-panel);box-shadow:var(--shadow-panel)}.page-heading{justify-content:space-between;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.page-heading p:last-child{margin-bottom:0}.eyebrow{color:var(--color-primary);letter-spacing:1px;margin-bottom:var(--space-2);font-size:.75rem;font-weight:700}.muted{color:var(--color-muted-foreground)}.button{justify-content:center;align-items:center;gap:var(--space-3);min-height:var(--control-height);padding:var(--space-2) var(--space-4);border-radius:var(--radius-control);white-space:normal;border:1px solid #0000;font-size:.875rem;font-weight:600;line-height:1.4;text-decoration:none;display:inline-flex}.button-primary{color:#fff;background:var(--color-primary);border-color:var(--color-primary)}.button-primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.button-secondary{color:var(--color-foreground);border-color:var(--color-control-border);background:var(--color-surface)}.button-secondary:hover:not(:disabled){background:var(--status-neutral-soft)}.button:disabled{opacity:.6}.field{gap:var(--space-2);min-width:0;font-size:.875rem;font-weight:500;display:grid}.field input,.field select,.field textarea{width:100%;min-width:0;min-height:var(--control-height);padding:var(--space-2) var(--space-3);color:var(--color-foreground);background:var(--color-surface);border:1px solid var(--color-control-border);border-radius:var(--radius-control);font-weight:400}.field input::placeholder{color:var(--color-muted-foreground)}.field small{color:var(--color-muted-foreground);font-weight:400}.field [aria-invalid=true]{border-color:var(--status-danger-text)}.field .field-error,.field-error{color:var(--status-danger-text);font-size:.8125rem}.toolbar{align-items:flex-end;gap:var(--space-3);flex-wrap:wrap;display:flex}.badge{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);background:var(--status-neutral-soft);color:var(--status-neutral-text);border-radius:6px;font-size:.75rem;font-weight:600;display:inline-flex}.badge-warning{background:var(--status-warning-soft);color:var(--status-warning-text)}.badge-success{background:var(--status-success-soft);color:var(--status-success-text)}.badge-danger{background:var(--status-danger-soft);color:var(--status-danger-text)}.badge-info{background:var(--status-info-soft);color:var(--status-info-text)}.badge-special{background:var(--status-special-soft);color:var(--status-special-text)}.alert{align-items:center;gap:var(--space-3);padding:var(--panel-padding);border:1px solid var(--color-border);border-radius:var(--radius-control);margin-bottom:var(--space-4);background:var(--status-info-soft);color:var(--status-info-text);flex-wrap:wrap;display:flex}.alert p{margin-bottom:0}.alert-error{background:var(--status-danger-soft);color:var(--status-danger-text);border-color:var(--status-danger)}.alert-success{background:var(--status-success-soft);color:var(--status-success-text);border-color:var(--status-success)}.empty-state{padding:var(--space-6) var(--panel-padding);text-align:center;color:var(--color-muted-foreground)}.empty-state h2,.empty-state h3{color:var(--color-foreground)}.table-wrap{border-radius:var(--radius-control);width:100%;max-width:100%;overflow-x:auto}table{border-collapse:collapse;text-align:left;width:100%;font-size:.875rem}th{color:var(--color-muted-foreground);background:var(--status-neutral-soft);white-space:nowrap;font-size:.75rem;font-weight:600}th,td{padding:var(--table-row-padding) var(--space-4);border-bottom:1px solid var(--color-border)}td{vertical-align:middle}tbody th{color:var(--color-foreground);font-size:.875rem}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:var(--color-primary-soft)}.numeric,time{font-variant-numeric:tabular-nums}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.access-message{max-width:760px;margin:var(--space-6) auto}.access-message .button{margin-top:var(--space-3)}.app-dialog{border:1px solid var(--color-border);border-radius:var(--radius-panel,12px);background:var(--color-surface,#fff);width:min(100% - 24px,560px);max-height:calc(100svh - 40px);color:var(--color-foreground,#1b2c43);margin:auto;padding:24px;overflow:auto;box-shadow:0 24px 80px #12284440}.app-dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a99}.app-dialog-lg{width:min(100% - 24px,780px)}.app-dialog-heading{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-4);display:flex}.app-dialog-heading h2{font-family:var(--font-heading);margin:var(--space-1) 0 0;color:var(--color-foreground);font-size:1.35rem;font-weight:500;line-height:1.3}.app-dialog-heading .eyebrow{margin-bottom:var(--space-1)}.app-dialog-heading .muted{margin:var(--space-1) 0 0;font-size:.875rem}.app-dialog-close{min-width:var(--control-height);flex-shrink:0;padding:var(--space-2)!important}.app-dialog-actions{justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--color-border);display:flex}.subnav-tabs{gap:var(--space-2);margin-bottom:var(--space-5);border-bottom:1px solid var(--color-border);padding-bottom:var(--space-2);display:flex}.subnav-tab{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-control);color:var(--color-muted-foreground);cursor:pointer;background:0 0;border:1px solid #0000;font-size:.875rem;font-weight:500;transition:all .2s;display:inline-flex}.subnav-tab:hover{background:var(--status-neutral-soft);color:var(--color-foreground)}.subnav-tab.active{background:var(--color-primary-soft);color:var(--color-primary);border-color:#2563eb40;font-weight:600}@media (width<=767px){.page-heading{gap:var(--space-3);margin-bottom:var(--space-4)}}
