:root{--font-sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--sidebar-width: 246px;--sidebar-collapsed-width: 72px;--text-h1: 24px;--leading-h1: 32px;--text-h2: 18px;--leading-h2: 24px;--text-h3: 16px;--leading-h3: 22px;--text-h5: 14px;--leading-h5: 20px;--text-body: 13px;--leading-body: 18px;--text-small: 12px;--leading-small: 16px;--text-caption: 11px;--leading-caption: 16px;--text-overline: 10px;--leading-overline: 14px;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-pill: 100px;--shadow-xs: 0 1px 3px rgba(0, 0, 0, .04);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .04), 0 4px 6px rgba(0, 0, 0, .02);--shadow-md: 0 8px 24px rgba(15, 23, 42, .1);--shadow-lg: 0 20px 48px rgba(15, 23, 42, .18);--shadow-accent: 0 4px 14px rgba(37, 99, 235, .2);--color-accent: #2563eb;--color-accent-strong: #1d4ed8;--color-accent-soft: #eff6ff;--color-accent-soft-strong: #dbeafe;--color-accent-ring: rgba(37, 99, 235, .2);--color-canvas: #f8fafc;--color-surface: #ffffff;--color-surface-raised: #ffffff;--color-surface-soft: #f8fafc;--color-surface-muted: #f1f5f9;--color-border: #e2e8f0;--color-border-strong: #cbd5e1;--color-footer: #f2f5f7;--color-footer-border: #e0e3e8;--color-text: #0f172a;--color-text-secondary: #334155;--color-text-muted: #64748b;--color-text-faint: #94a3b8;--color-nav: #1f242e;--color-sidebar: #1e293b;--color-sidebar-raised: #334155;--color-sidebar-border: #334155;--color-sidebar-hover: #2b3648;--color-sidebar-active: #334155;--color-sidebar-text: #f8fafc;--color-sidebar-muted: #a6adbd;--color-sidebar-faint: #8c949e;--color-success: #15803d;--color-success-strong: #10b981;--color-success-soft: #f0fdf4;--color-success-border: #dcfce7;--color-warning: #a16207;--color-warning-soft: #fefce8;--color-warning-border: #fef9c3;--color-danger: #b91c1c;--color-danger-strong: #ef4444;--color-danger-soft: #fef2f2;--color-danger-border: #fee2e2;--color-info: #1d4ed8;--color-info-soft: #eff6ff;--color-info-border: #dbeafe;--color-orange: #ea580c;--color-orange-soft: #ffedd5;--color-purple: #7e22ce;--color-purple-soft: #faf5ff;--color-purple-border: #f3e8ff;--color-neutral: #475569;--color-neutral-soft: #f1f5f9;--color-neutral-border: #e2e8f0}[data-theme=dark]{--color-accent: #6fa1ff;--color-accent-strong: #9bbcff;--color-accent-soft: #1d355c;--color-accent-soft-strong: #24427a;--color-accent-ring: rgba(111, 161, 255, .25);--color-canvas: #0d1522;--color-surface: #111c2c;--color-surface-raised: #172439;--color-surface-soft: #152235;--color-surface-muted: #1a2a41;--color-border: #27384e;--color-border-strong: #3b4d65;--color-footer: #0f1a29;--color-footer-border: #27384e;--color-text: #eef4ff;--color-text-secondary: #cfdaeb;--color-text-muted: #a6b5c9;--color-text-faint: #74869e;--color-success: #65d3a8;--color-success-strong: #34d399;--color-success-soft: #163b34;--color-success-border: #1f5245;--color-warning: #f3bd63;--color-warning-soft: #43331c;--color-warning-border: #5a4422;--color-danger: #ff8e98;--color-danger-strong: #f87171;--color-danger-soft: #48232c;--color-danger-border: #5c2c37;--color-info: #9bbcff;--color-info-soft: #1d355c;--color-info-border: #24427a;--color-orange: #fb923c;--color-orange-soft: #4a2a15;--color-purple: #c084fc;--color-purple-soft: #3b2455;--color-purple-border: #4d2f6d;--color-neutral: #cbd5e1;--color-neutral-soft: #1e2b3d;--color-neutral-border: #2f4059;--shadow-xs: 0 1px 3px rgba(0, 0, 0, .3);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .2), 0 4px 12px rgba(0, 0, 0, .12);--shadow-md: 0 14px 32px rgba(0, 0, 0, .3);--shadow-lg: 0 24px 56px rgba(0, 0, 0, .45)}*{box-sizing:border-box}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}html{color-scheme:light;font-size:16px}html[data-theme=dark]{color-scheme:dark}body{min-width:320px;min-height:100vh;margin:0;color:var(--color-text);background:var(--color-canvas);font-family:var(--font-sans);font-size:var(--text-body);line-height:var(--leading-body);-webkit-font-smoothing:antialiased}h1,.text-h1{font-size:var(--text-h1);line-height:var(--leading-h1);font-weight:700;letter-spacing:-.01em}h2,.text-h2{font-size:var(--text-h2);line-height:var(--leading-h2);font-weight:700}h3,.text-h3{font-size:var(--text-h3);line-height:var(--leading-h3);font-weight:700}h4,h5,.text-h5{font-size:var(--text-h5);line-height:var(--leading-h5);font-weight:600}h1,h2,h3,h4,h5{margin:0;color:var(--color-text)}.text-body{font-size:var(--text-body);line-height:var(--leading-body);font-weight:400}.text-body-medium{font-size:var(--text-body);line-height:var(--leading-body);font-weight:500}.text-small{font-size:var(--text-small);line-height:var(--leading-small)}.text-caption{font-size:var(--text-caption);line-height:var(--leading-caption)}.text-overline,.overline{font-size:var(--text-overline);line-height:var(--leading-overline);font-weight:600;letter-spacing:.06em;text-transform:uppercase}.text-muted{color:var(--color-text-muted)}a{color:var(--color-accent)}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{color:inherit}button:not(.btn):not(.icon-button):not(.sidebar-collapse):not(.employee-row):not(.summary-line):not(.payroll-tab):not(.payroll-menu-button):not(.period-number):not(.text-button):not(.tab):not(.page-item):not(.dialog-close):not(.toast-close){min-height:32px;padding:0 14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);background:var(--color-surface);cursor:pointer;font-size:var(--text-body);font-weight:600;transition:border-color .15s ease,color .15s ease,background .15s ease,box-shadow .15s ease}button:not(.btn):not(.icon-button):not(.sidebar-collapse):not(.employee-row):not(.summary-line):not(.payroll-tab):not(.payroll-menu-button):not(.period-number):not(.text-button):not(.tab):not(.page-item):not(.dialog-close):not(.toast-close):hover:not(:disabled){border-color:var(--color-border-strong);background:var(--color-surface-soft)}button[type=submit]:not(.btn):not(.icon-button):not(.sidebar-collapse){border-color:var(--color-accent);color:#fff;background:var(--color-accent);box-shadow:var(--shadow-accent)}button[type=submit]:not(.btn):not(.icon-button):not(.sidebar-collapse):hover:not(:disabled){border-color:var(--color-accent-strong);color:#fff;background:var(--color-accent-strong)}button.secondary:not(.btn),button.ghost:not(.btn){border-color:var(--color-border);color:var(--color-text);background:var(--color-surface)}button.danger:not(.btn){border-color:var(--color-danger-strong);color:#fff;background:var(--color-danger-strong)}button.danger:not(.btn):hover:not(:disabled){border-color:var(--color-danger);background:var(--color-danger)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--color-accent-ring);outline-offset:2px}button:disabled{cursor:not-allowed;opacity:.55}.icon-button{width:32px;height:32px;display:inline-grid;place-items:center;flex:0 0 auto;padding:0;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--color-text-muted);background:transparent;cursor:pointer;transition:color .15s ease,border-color .15s ease,background .15s ease}.icon-button:hover{border-color:var(--color-border);color:var(--color-text);background:var(--color-surface-soft)}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:20px}.page-heading{min-width:0}.eyebrow{display:block;margin-bottom:4px;color:var(--color-text-muted);font-size:var(--text-overline);line-height:var(--leading-overline);font-weight:600;letter-spacing:.06em;text-transform:uppercase}.page-header h1,.page-header h2,.page-header h3{margin:0;color:var(--color-text);font-weight:700}.page-header h1{font-size:var(--text-h1);line-height:var(--leading-h1);letter-spacing:-.01em}.page-header h2{font-size:var(--text-h2);line-height:var(--leading-h2)}.page-header h3{font-size:var(--text-h3);line-height:var(--leading-h3)}.page-subtitle{max-width:680px;margin:4px 0 0;color:var(--color-text-muted);font-size:var(--text-body)}.page-actions,.actions,.form-buttons,.buttons,.toolbar-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.btn{min-height:32px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 16px;border:1px solid var(--color-accent);border-radius:var(--radius-sm);color:#fff;background:var(--color-accent);box-shadow:var(--shadow-accent);cursor:pointer;font-size:var(--text-body);line-height:var(--leading-body);font-weight:600;text-decoration:none;white-space:nowrap;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease,color .15s ease}.btn:hover:not(:disabled){border-color:var(--color-accent-strong);background:var(--color-accent-strong)}.btn.secondary{border-color:var(--color-border);color:var(--color-text);background:var(--color-surface);box-shadow:none}.btn.secondary:hover:not(:disabled){border-color:var(--color-border-strong);background:var(--color-surface-soft)}.btn.danger{border-color:var(--color-danger-strong);color:#fff;background:var(--color-danger-strong);box-shadow:none}.btn.danger:hover:not(:disabled){border-color:var(--color-danger);background:var(--color-danger)}.btn.danger-outline{border-color:var(--color-danger-border);color:var(--color-danger);background:var(--color-surface);box-shadow:none}.btn.danger-outline:hover:not(:disabled){background:var(--color-danger-soft);border-color:var(--color-danger-strong)}.btn.ghost,.btn.text{border-color:transparent;color:var(--color-text-secondary);background:transparent;box-shadow:none}.btn.ghost:hover:not(:disabled),.btn.text:hover:not(:disabled){color:var(--color-accent-strong);background:var(--color-accent-soft)}.btn.soft{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-accent-soft);box-shadow:none}.btn.soft:hover:not(:disabled){background:var(--color-accent-soft-strong)}.btn.small,.btn.btn-sm{min-height:28px;padding-inline:10px;font-size:var(--text-small)}.btn:disabled{cursor:not-allowed;opacity:.55}.btn.btn-danger{border-color:var(--color-danger-strong);color:#fff;background:var(--color-danger-strong);box-shadow:none}.btn.btn-danger:hover:not(:disabled){border-color:var(--color-danger);background:var(--color-danger)}.btn.btn-cancel{border-color:var(--color-border);color:var(--color-text);background:var(--color-surface);box-shadow:none}.btn.btn-cancel:hover:not(:disabled){border-color:var(--color-border-strong);background:var(--color-surface-soft)}.form-section{margin-top:16px;padding:16px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-xs)}.form-row{display:flex;align-items:flex-end;flex-wrap:wrap;gap:10px}.form-row label{display:flex;flex-direction:column;gap:4px}.input-sm{max-width:110px}.toolbar,.filter-bar{display:flex;align-items:flex-end;flex-wrap:wrap;gap:10px;margin-bottom:16px;padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-xs)}.toolbar>label,.filter-bar>label{min-width:150px;display:flex;flex-direction:column;gap:4px}.toolbar>label:has(input[type=checkbox]),.filter-bar>label:has(input[type=checkbox]){min-height:36px;flex-direction:row;align-items:center;gap:8px;padding-bottom:1px}.toolbar input[type=text],.toolbar input[type=search],.toolbar input[type=number],.toolbar select,.filter-bar input[type=text],.filter-bar input[type=search],.filter-bar input[type=number],.filter-bar select{min-width:220px}input:not([type=checkbox]):not([type=radio]),select,textarea{min-height:36px;padding:8px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);outline:none;background:var(--color-surface);font-size:var(--text-body);line-height:var(--leading-body);transition:border-color .15s ease,box-shadow .15s ease}input::placeholder,textarea::placeholder{color:var(--color-text-faint)}input:not([type=checkbox]):not([type=radio]):hover,select:hover,textarea:hover{border-color:var(--color-border-strong)}input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-ring)}input:disabled,select:disabled,textarea:disabled{color:var(--color-text-muted);background:var(--color-surface-muted);cursor:not-allowed}select{padding-right:30px;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}select[multiple],select[size]{padding-right:10px;background-image:none}input[type=checkbox],input[type=radio]{width:16px;height:16px;flex:0 0 auto;margin:0;appearance:none;border:1.5px solid var(--color-border-strong);background:var(--color-surface);cursor:pointer;vertical-align:-3px;display:inline-grid;place-items:center;transition:border-color .12s ease,background .12s ease}input[type=checkbox]{border-radius:var(--radius-xs)}input[type=radio]{border-radius:50%}input[type=checkbox]:hover,input[type=radio]:hover{border-color:var(--color-accent)}input[type=checkbox]:checked,input[type=radio]:checked{border-color:var(--color-accent);background:var(--color-accent)}input[type=checkbox]:checked:after{content:"";width:5px;height:9px;margin-top:-2px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}input[type=radio]:checked{background:var(--color-surface)}input[type=radio]:checked:after{content:"";width:8px;height:8px;border-radius:50%;background:var(--color-accent)}input[type=checkbox]:disabled,input[type=radio]:disabled{opacity:.55;cursor:not-allowed}label{color:var(--color-text-secondary);font-size:var(--text-caption);line-height:var(--leading-caption);font-weight:600;letter-spacing:.04em;text-transform:uppercase}label>input,label>select,label>textarea{width:100%;margin-top:4px}label:has(>input[type=checkbox]),label:has(>input[type=radio]),label.checkbox,label.checkbox-label,label.radio-label,.checkbox-field label,.radio-group label{display:inline-flex;align-items:center;gap:8px;color:var(--color-text);font-size:var(--text-body);line-height:var(--leading-body);font-weight:400;letter-spacing:normal;text-transform:none}label:has(>input[type=checkbox])>input,label:has(>input[type=radio])>input{width:16px;margin-top:0}.data-table-wrap,.table-wrap{overflow:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-xs)}.data-table{width:100%;min-width:690px;border-collapse:separate;border-spacing:0;color:var(--color-text);font-size:var(--text-body);line-height:var(--leading-body)}.data-table th,.data-table td{padding:10px 14px;border-bottom:1px solid var(--color-border);text-align:left;vertical-align:middle}.data-table th{position:sticky;top:0;z-index:1;color:var(--color-text-muted);background:var(--color-surface-soft);font-size:var(--text-caption);line-height:var(--leading-caption);font-weight:600;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.data-table tbody tr{background:var(--color-surface);transition:background .14s ease}.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:var(--color-surface-soft)}.data-table tbody tr.selected,.data-table tbody tr[aria-selected=true]{background:var(--color-accent-soft);box-shadow:inset 3px 0 0 var(--color-accent)}.data-table tbody tr.clickable{cursor:pointer}.data-table td:first-child,.data-table th:first-child{padding-left:16px}.data-table td:last-child,.data-table th:last-child{padding-right:16px}.data-table td:first-child{font-weight:500}.data-table .actions{justify-content:flex-end;white-space:nowrap}.data-table td.numeric{text-align:right;font-variant-numeric:tabular-nums}.payroll-window app-dynamic-table{display:block}.payroll-window app-dynamic-table .dynamic-table-wrap{border:0;border-radius:0;box-shadow:none}.payroll-window app-dynamic-table .data-table{min-width:760px}.payroll-window app-dynamic-table .data-table th,.payroll-window app-dynamic-table .data-table td{padding:10px 16px}.payroll-window app-dynamic-table .data-table td:first-child{font-weight:600;white-space:nowrap}.payroll-window app-dynamic-table .data-table td.numeric{font-weight:600}.payroll-window app-dynamic-table .data-table tbody tr{cursor:pointer}.payroll-window app-dynamic-table .data-table tbody tr.period-row-history td{color:var(--color-text-faint)}.data-table tbody tr.payroll-row-10{background:color-mix(in srgb,var(--color-success-soft) 72%,var(--color-surface))}.data-table tbody tr.payroll-row-15{background:color-mix(in srgb,var(--color-accent-soft) 72%,var(--color-surface))}.data-table tbody tr.payroll-row-20{background:color-mix(in srgb,var(--color-danger-soft) 64%,var(--color-surface))}.data-table tbody tr.payroll-row-25{background:color-mix(in srgb,var(--color-info-soft) 72%,var(--color-surface))}.data-table tbody tr.payroll-row-30{background:color-mix(in srgb,var(--color-purple-border) 68%,var(--color-surface))}.data-table tbody tr.payroll-row-35,.data-table tbody tr.payroll-row-40,.data-table tbody tr.payroll-row-45,.data-table tbody tr.payroll-row-50,.data-table tbody tr.payroll-row-55,.data-table tbody tr.payroll-row-60,.data-table tbody tr.payroll-row-65,.data-table tbody tr.payroll-row-70,.data-table tbody tr.payroll-row-75{background:color-mix(in srgb,var(--color-warning-border) 58%,var(--color-surface))}.data-table tbody tr.period-row-history td{color:var(--color-text-muted)}.table-primary{color:var(--color-text);font-weight:600}.table-secondary{display:block;margin-top:2px;color:var(--color-text-muted);font-size:var(--text-caption);line-height:var(--leading-caption)}.form-card,.panel,.card{margin-bottom:16px;padding:20px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-xs)}.form-card h3,.panel h3,.card h3,.section-card h3{margin:0 0 16px;color:var(--color-accent);font-size:var(--text-h5);line-height:var(--leading-h5);font-weight:700;letter-spacing:.04em;text-transform:uppercase}.form-card>p,.panel>p,.card>p{color:var(--color-text-muted)}.section-card{position:relative;overflow:hidden;margin-bottom:16px;padding:20px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-xs)}.section-card:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--section-accent, var(--color-accent))}.section-card.tone-danger{--section-accent: var(--color-danger-strong)}.section-card.tone-success{--section-accent: var(--color-success-strong)}.section-card.tone-warning{--section-accent: #eab308}.section-card.tone-purple{--section-accent: var(--color-purple)}.section-card.tone-neutral{--section-accent: var(--color-border-strong)}.form-grid,.panel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid .wide,.panel-grid .wide{grid-column:1 / -1}.form-buttons,.buttons{margin-top:20px;padding-top:16px;border-top:1px solid var(--color-border)}.tabs{display:flex;align-items:flex-end;gap:4px;overflow-x:auto;margin-bottom:20px;padding:0;border:0;border-bottom:1px solid var(--color-border);border-radius:0;background:transparent}.tabs button,.tabs .tab{position:relative;min-height:40px;flex:0 0 auto;padding:0 14px;margin-bottom:-1px;border:0;border-bottom:2px solid transparent;border-radius:0;color:var(--color-text-muted);background:transparent;cursor:pointer;font-size:var(--text-body);line-height:var(--leading-body);font-weight:500;white-space:nowrap;text-decoration:none;transition:color .12s ease,border-color .12s ease}.tabs button:hover,.tabs .tab:hover{color:var(--color-text)}.tabs button.active,.tabs .tab.active,.tabs button[aria-selected=true],.tabs .tab[aria-selected=true]{color:var(--color-accent);border-bottom-color:var(--color-accent);background:transparent;box-shadow:none;font-weight:600}.badge,.status-badge,.chip,.status-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border:1px solid transparent;border-radius:var(--radius-sm);font-size:var(--text-caption);line-height:14px;font-weight:600;white-space:nowrap;color:var(--color-neutral);background:var(--color-neutral-soft);border-color:var(--color-neutral-border)}.badge-success,.status-active,.badge.success,.status-pill.success{color:var(--color-success);background:var(--color-success-soft);border-color:var(--color-success-border)}.badge-info,.badge.info,.badge-primary,.status-pill.info{color:var(--color-info);background:var(--color-info-soft);border-color:var(--color-info-border)}.badge-warning,.status-pending,.badge.warning,.status-pill.warning{color:var(--color-warning);background:var(--color-warning-soft);border-color:var(--color-warning-border)}.badge-neutral,.badge.neutral,.status-pill.neutral{color:var(--color-neutral);background:var(--color-neutral-soft);border-color:var(--color-neutral-border)}.badge-danger,.status-inactive,.badge.danger,.status-pill.danger{color:var(--color-danger);background:var(--color-danger-soft);border-color:var(--color-danger-border)}.badge-purple,.badge.purple,.status-pill.purple{color:var(--color-purple);background:var(--color-purple-soft);border-color:var(--color-purple-border)}.chip{color:var(--color-text-muted);background:var(--color-surface);border-color:var(--color-border)}.badge .status-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.avatar{display:inline-grid;place-items:center;flex:0 0 auto;width:32px;height:32px;border-radius:50%;color:#fff;background:var(--color-accent);font-size:var(--text-caption);font-weight:600;letter-spacing:.02em;text-transform:uppercase;-webkit-user-select:none;user-select:none}.avatar.sm{width:24px;height:24px;font-size:9px}.avatar.lg{width:40px;height:40px;font-size:var(--text-small)}.avatar.xl{width:56px;height:56px;font-size:var(--text-h3)}.avatar.soft{color:var(--color-accent);background:var(--color-accent-soft)}.employee-list-heading,.dashboard-list-heading{display:flex;justify-content:space-between;padding:0 20px 8px;color:var(--color-text-faint);font-size:var(--text-overline);line-height:var(--leading-overline);font-weight:600;letter-spacing:.06em;text-transform:uppercase}.employee-list,.dashboard-employee-list{display:grid;gap:2px;overflow:auto;padding:0 8px 18px}.employee-row,.dashboard-employee-row{width:100%;min-height:51px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:0;border-radius:var(--radius-md);color:var(--color-sidebar-text);background:transparent;cursor:pointer;text-align:left;text-decoration:none}.employee-row:hover,.employee-row:focus-visible,.employee-row.selected,.dashboard-employee-row:hover,.dashboard-employee-row.active{outline:0;background:var(--color-sidebar-raised)}.employee-row-copy,.dashboard-employee-row>span{min-width:0;display:grid;gap:2px}.employee-row-copy strong,.employee-row-copy small,.dashboard-employee-row strong,.dashboard-employee-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.employee-row-copy strong,.dashboard-employee-row strong{color:var(--color-sidebar-text);font-size:var(--text-body);line-height:var(--leading-body);font-weight:600}.employee-row-copy small,.dashboard-employee-row small{color:var(--color-text-faint);font-size:var(--text-caption);line-height:var(--leading-caption)}.employee-row-id,.dashboard-employee-row>small{flex:0 0 auto;margin:0;color:var(--color-text-faint);font-size:var(--text-caption);font-variant-numeric:tabular-nums}.employee-row.selected .employee-row-id{color:var(--color-sidebar-text)}.sidebar-empty,.dashboard-sidebar-empty{margin:16px;color:var(--color-text-faint);font-size:var(--text-body)}.stat-box{display:grid;gap:2px;min-width:160px;padding:10px 14px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.stat-box .stat-label{color:var(--color-text-muted);font-size:var(--text-overline);font-weight:600;letter-spacing:.06em;text-transform:uppercase}.stat-box .stat-value{color:var(--color-text);font-size:var(--text-h3);line-height:var(--leading-h3);font-weight:700;font-variant-numeric:tabular-nums}.stat-box .stat-unit{color:var(--color-text-muted);font-size:var(--text-caption)}.balance{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 12px;border:1px solid var(--color-success-border);border-radius:var(--radius-sm);color:var(--color-success);background:var(--color-success-soft);font-size:var(--text-body)}.balance strong{font-size:var(--text-h5)}.error,.success,.info-message,.warning-message,.alert{display:flex;align-items:center;gap:10px;margin:12px 0;padding:8px 12px;border:1px solid transparent;border-radius:var(--radius-sm);font-size:var(--text-body);line-height:var(--leading-body);font-weight:500}.error,.alert.alert-error{border-color:var(--color-danger-border);color:var(--color-danger);background:var(--color-danger-soft)}.success,.alert.alert-success{border-color:var(--color-success-border);color:var(--color-success);background:var(--color-success-soft)}.warning-message,.alert.alert-warning{border-color:var(--color-warning-border);color:var(--color-warning);background:var(--color-warning-soft)}.info-message,.alert.alert-info{border-color:var(--color-info-border);color:var(--color-info);background:var(--color-info-soft)}.field-error{display:block;margin:4px 0 0;color:var(--color-danger);font-size:var(--text-caption);font-weight:500;text-transform:none;letter-spacing:normal}.hint{color:var(--color-text-muted);font-size:var(--text-small)}.breadcrumb,.breadcrumbs{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:0 0 6px;padding:0;list-style:none;color:var(--color-text-muted);font-size:var(--text-small);line-height:var(--leading-small)}.breadcrumb a,.breadcrumbs a{color:var(--color-accent);text-decoration:none}.breadcrumb a:hover,.breadcrumbs a:hover{text-decoration:underline}.breadcrumb .separator,.breadcrumbs .separator{color:var(--color-text-faint)}.breadcrumb .current,.breadcrumbs .current{color:var(--color-text);font-weight:500}[data-tooltip]{position:relative}[data-tooltip]:after{content:attr(data-tooltip);position:absolute;left:50%;bottom:calc(100% + 6px);z-index:50;padding:4px 8px;border-radius:var(--radius-xs);color:#fff;background:var(--color-text);font-size:var(--text-caption);line-height:var(--leading-caption);font-weight:500;white-space:nowrap;transform:translate(-50%);opacity:0;pointer-events:none;transition:opacity .12s ease}[data-tooltip]:hover:after,[data-tooltip]:focus-visible:after{opacity:1}.search-bar,.input-with-icon{position:relative;display:flex;align-items:center}.search-bar>app-icon,.input-with-icon>app-icon,.search-bar>svg,.input-with-icon>svg{position:absolute;left:10px;color:var(--color-text-faint);pointer-events:none}.search-bar>input,.input-with-icon>input{width:100%;padding-left:32px}.empty-state{display:grid;justify-items:center;gap:6px;padding:34px 20px;color:var(--color-text-muted);text-align:center}.empty-state-icon{width:38px;height:38px;display:grid;place-items:center;margin-bottom:3px;border-radius:var(--radius-md);color:var(--color-accent);background:var(--color-accent-soft)}.empty-state strong{color:var(--color-text);font-size:var(--text-body)}.empty-state p{max-width:380px;margin:0;font-size:var(--text-small)}.skeleton{min-height:14px;border-radius:var(--radius-xs);background:linear-gradient(90deg,var(--color-surface-soft),var(--color-border),var(--color-surface-soft));background-size:200% 100%;animation:skeleton-shimmer 1.25s ease-in-out infinite}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.inline-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px;padding:16px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-soft)}.inline-form .actions{align-self:end}.dynamic-table-wrap{min-height:90px}.dynamic-table-loading{display:grid;gap:1px;padding:12px 16px}.dynamic-skeleton-row{display:grid;grid-template-columns:1fr 1fr .7fr;gap:14px;padding:13px 0;border-bottom:1px solid var(--color-border)}.dynamic-skeleton-row:last-child{border-bottom:0}.dynamic-skeleton-row .skeleton{height:13px}.pager,.pagination{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:14px;color:var(--color-text-muted);font-size:var(--text-small)}.pager .btn{min-width:32px;padding-inline:8px}.pagination-items{display:inline-flex;align-items:center;gap:4px}.page-item{min-width:28px;height:28px;display:inline-grid;place-items:center;padding:0 6px;border:1px solid var(--color-border);border-radius:var(--radius-xs);color:var(--color-text-secondary);background:var(--color-surface);cursor:pointer;font-size:var(--text-small);font-weight:500;transition:border-color .12s ease,background .12s ease,color .12s ease}.page-item:hover:not(:disabled){border-color:var(--color-border-strong);background:var(--color-surface-soft)}.page-item.active{border-color:var(--color-accent);color:#fff;background:var(--color-accent)}.page-item:disabled{cursor:not-allowed;opacity:.45}.page-item.ellipsis{border-color:transparent;background:transparent;cursor:default}.dialog-backdrop{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:16px;background:#0f172a73;animation:toast-in .12s ease-out}.dialog{width:min(440px,100%);max-height:calc(100vh - 32px);display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-lg)}.dialog.wide{width:min(720px,100%)}.dialog-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;border-bottom:1px solid var(--color-border)}.dialog-header h2,.dialog-title{margin:0;color:var(--color-text);font-size:var(--text-h3);line-height:var(--leading-h3);font-weight:700}.dialog-close{width:28px;height:28px;display:inline-grid;place-items:center;padding:0;border:0;border-radius:var(--radius-sm);color:var(--color-text-muted);background:transparent;cursor:pointer}.dialog-close:hover{color:var(--color-text);background:var(--color-surface-muted)}.dialog-body{padding:20px;overflow:auto;color:var(--color-text-secondary);font-size:var(--text-body);line-height:var(--leading-body)}.dialog-body p{margin:0 0 8px}.dialog-body p:last-child{margin-bottom:0}.dialog-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid var(--color-border)}.toast-region{position:fixed;right:24px;bottom:24px;z-index:100;display:grid;gap:8px;width:min(380px,calc(100vw - 32px))}.toast{display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);background:var(--color-surface);box-shadow:var(--shadow-md);animation:toast-in .18s ease-out}.toast-icon{width:20px;height:20px;display:grid;place-items:center;flex:0 0 auto;border-radius:var(--radius-xs);color:inherit}.toast-success{color:var(--color-success);background:var(--color-success-soft);border-color:var(--color-success-border)}.toast-error{color:var(--color-danger);background:var(--color-danger-soft);border-color:var(--color-danger-border)}.toast-warning{color:var(--color-warning);background:var(--color-warning-soft);border-color:var(--color-warning-border)}.toast-info{color:var(--color-info);background:var(--color-info-soft);border-color:var(--color-info-border)}.toast-copy{min-width:0;display:grid;gap:1px;flex:1}.toast-copy strong{color:inherit;font-size:var(--text-body);font-weight:600}.toast-copy span{color:inherit;opacity:.85;font-size:var(--text-small)}.toast-close{width:24px;height:24px;display:inline-grid;place-items:center;padding:0;border:0;border-radius:var(--radius-xs);color:inherit;background:transparent;cursor:pointer;opacity:.7}.toast-close:hover{opacity:1;background:#0f172a0f}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(max-width:760px){.page-header{align-items:stretch;flex-direction:column;gap:14px}.page-actions{justify-content:flex-start}.toolbar,.filter-bar{align-items:stretch;flex-direction:column}.toolbar>label,.filter-bar>label,.toolbar input[type=text],.toolbar input[type=search],.toolbar input[type=number],.toolbar select,.filter-bar input[type=text],.filter-bar input[type=search],.filter-bar input[type=number],.filter-bar select{width:100%;min-width:0}.form-grid,.panel-grid,.inline-form{grid-template-columns:1fr}.form-grid .wide,.panel-grid .wide{grid-column:auto}.form-card,.panel,.card{padding:16px}.toast-region{right:16px;bottom:16px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
