:root{--attendance-text: #172033;--attendance-secondary: #66758a;--attendance-border: #dce5ee;--attendance-bg: #f7f9fc;--attendance-surface: #ffffff;--attendance-primary: #155eef;--attendance-warning: #e89210;--attendance-danger: #d93b3b;--attendance-success: #0f9f63;--attendance-space-1: 4px;--attendance-space-2: 8px;--attendance-space-3: 12px;--attendance-space-4: 16px;--attendance-space-5: 20px;--attendance-space-6: 24px;--attendance-space-7: 32px;--attendance-space-tight: 2px;--attendance-space-compact: 3px;--attendance-space-control: 5px;--attendance-space-label: 6px;--attendance-space-inline: 7px;--attendance-space-field: 9px;--attendance-space-panel: 10px;--attendance-space-control-lg: 11px;--attendance-space-panel-lg: 14px;--attendance-space-panel-xl: 15px;--attendance-space-section: 18px;--attendance-space-title: 23px;--attendance-space-shell: 26px;--attendance-space-page-gutter: 38px;--attendance-space-page-bottom: 48px;--attendance-space-mobile-gutter: 14px;--attendance-space-mobile-bottom: 36px;--attendance-space-empty: 48px;--attendance-space-card-offset: 22px;--attendance-space-brand-bottom: 30px;--attendance-space-brand-centered-bottom: 22px;--attendance-space-mobile-sidebar-y: 12px;--attendance-space-mobile-nav-bottom: 3px;--attendance-space-mobile-main-y: 18px;--attendance-space-sidebar-footnote: 10px;--attendance-size-brand: 44px;--attendance-size-nav-icon: 22px;--attendance-size-step: 25px;--attendance-size-status: 23px;--attendance-size-role-marker: 27px;--attendance-size-status-dot: 7px;--attendance-size-empty-illustration: 74px;--attendance-size-input: 15px;--attendance-size-control: 35px;--attendance-size-button: 37px;--attendance-radius-sm: 6px;--attendance-radius-md: 8px;--attendance-radius-lg: 12px;--attendance-radius-xl: 16px;--attendance-radius-round: 50%;--attendance-radius-pill: 999px;--attendance-font-xs: 11px;--attendance-font-sm: 12px;--attendance-font-body: 14px;--attendance-font-md: 14px;--attendance-font-lg: 16px;--attendance-font-xl: 23px;--attendance-font-display: 25px;--attendance-font-table: 13px;--attendance-font-brand: 15px;--attendance-font-brand-subtitle: 9px;--attendance-font-brand-mark: 19px;--attendance-font-emphasis: 19px;--attendance-font-metric: 24px;--attendance-font-summary: 31px;--attendance-font-illustration: 20px;--attendance-font-dialog: 18px;--attendance-font-mobile-title: 21px;--attendance-elevation-card: 0 8px 24px rgba(36, 68, 102, .06);--attendance-elevation-primary: 0 4px 10px var(--attendance-shadow-primary);--attendance-elevation-modal: 0 20px 60px var(--attendance-shadow-modal);--attendance-elevation-drawer: -18px 0 50px var(--attendance-shadow-drawer);--attendance-elevation-brand: 0 5px 14px var(--attendance-shadow-brand);--attendance-elevation-auth: 0 18px 50px var(--attendance-shadow-auth);--attendance-layer-month-modal: 50;--attendance-layer-month-editor: 60;--attendance-radius-code: 4px;--attendance-radius-hint: 5px;--attendance-radius-issue: 9px;--attendance-radius-illustration: 20px;--attendance-size-sidebar: 256px;--attendance-size-sidebar-collapsed: 66px;--attendance-size-body-min: 0px;--attendance-size-nav-glyph: 15px;--attendance-size-nav-active-rail: 3px;--attendance-size-status-halo: 4px;--attendance-size-progress-min: 104px;--attendance-size-progress-mobile: 103px;--attendance-size-progress-cue: 22px;--attendance-size-count-pill: 24px;--attendance-size-column-lg: 330px;--attendance-size-date-note: 160px;--attendance-size-empty-state: 105px;--attendance-size-selection-min: 150px;--attendance-size-filter-flex: 260px;--attendance-size-filter-min: 180px;--attendance-size-filter-field: 120px;--attendance-size-filter-height: 32px;--attendance-size-table-min: 620px;--attendance-size-template-min: 620px;--attendance-size-template-name: 150px;--attendance-size-template-key: 140px;--attendance-size-template-version: 55px;--attendance-size-template-status: 78px;--attendance-size-template-schema: 220px;--attendance-size-preview-table: 560px;--attendance-size-preview-status: 22px;--attendance-size-modal: 460px;--attendance-size-month-modal: 1500px;--attendance-size-month-modal-height: 900px;--attendance-size-month-editor: 820px;--attendance-size-month-editor-height: 760px;--attendance-size-drawer: 520px;--attendance-size-drawer-height: 620px;--attendance-size-audit-column: 14px;--attendance-size-timeline-dot: 9px;--attendance-size-timeline-border: 2px;--attendance-size-auth: 430px;--attendance-size-auth-input: 40px;--attendance-size-mobile-label: 64px;--attendance-size-focus-ring: 3px;--attendance-size-border: 1px;--attendance-size-line: 1px;--attendance-text-heading: var(--attendance-text);--attendance-text-heading-strong: #1f2a3d;--attendance-text-action: #36536f;--attendance-primary-surface: #eef4ff;--attendance-success-surface: #eaf8f1;--attendance-warning-surface: #fff8e9;--attendance-danger-surface: #fff0f0;--attendance-surface-inverse: #fff;--attendance-surface-sidebar: #fbf9f6;--attendance-surface-sidebar-hover: #f4eee5;--attendance-text-faint: #8aa0b7;--attendance-text-nav: #50647a;--attendance-surface-hover: #f2f6fb;--attendance-border-icon: #c6d5e5;--attendance-border-sidebar: #ece5db;--attendance-success-indicator: #21b574;--attendance-text-eyebrow: #64839a;--attendance-success-text: #21694e;--attendance-success-border: #bee4d2;--attendance-danger-text: #963b3b;--attendance-danger-border: #f0c8c7;--attendance-info-border: #d8e6ed;--attendance-info-surface: #eff7fb;--attendance-info-text: #4b7087;--attendance-warning-text: #896323;--attendance-warning-border: #f0d6ad;--attendance-accent-purple: #795c9d;--attendance-session-surface: #f5effc;--attendance-session-border: #dccbf1;--attendance-locked-text: #347055;--attendance-locked-border: #c6e5d4;--attendance-progress-muted: #98a7b1;--attendance-border-step: #d9e2e8;--attendance-success-border-light: #83c9a8;--attendance-border-progress: #e5ebef;--attendance-success-line: #8dceb0;--attendance-code-text: #2f6f98;--attendance-code-surface: #eef5f8;--attendance-border-button: #c8d9e2;--attendance-border-status: #d7e2e8;--attendance-status-surface: #eef3f6;--attendance-status-text: #6c7c88;--attendance-danger-border-soft: #f1cfcc;--attendance-danger-surface-soft: #fffafa;--attendance-surface-muted: #edf4f7;--attendance-danger-surface-strong: #ffe6e4;--attendance-danger-border-card: #f3d6d2;--attendance-danger-text-card: #913f3f;--attendance-danger-text-code: #a6544e;--attendance-danger-surface-light: #fff0ef;--attendance-success-text-soft: #50816e;--attendance-info-border-strong: #cddff0;--attendance-info-surface-soft: #f4f8ff;--attendance-border-subtle: #dce7f1;--attendance-text-label: #536977;--attendance-border-summary: #e2ebf1;--attendance-surface-subtle: #fbfdfe;--attendance-border-input: #cddbe3;--attendance-border-focus: #6ba9c9;--attendance-scrollbar-thumb: #9bb9c8;--attendance-text-table-head: #80929e;--attendance-border-table: #edf1f3;--attendance-text-table: #415462;--attendance-border-checklist: #d8e2e8;--attendance-text-checklist: #8a9aa5;--attendance-success-border-strong: #9bd2b5;--attendance-info-text-strong: #4d6e82;--attendance-info-border-strong-soft: #d4e8f2;--attendance-border-empty: #d2e0e7;--attendance-surface-form: #fcfeff;--attendance-surface-panel: #ffffff;--attendance-border-panel: #e1ebf0;--attendance-border-selection: #d9e5ed;--attendance-warning-surface-soft: #fffbf1;--attendance-danger-text-tag: #944c47;--attendance-surface-filter: #f8fbfc;--attendance-border-preview: #c7dce8;--attendance-surface-preview: #f8fcfe;--attendance-surface-preview-neutral: #f1f4f6;--attendance-danger-border-issue: #ecd7d4;--attendance-danger-border-type: #e7bcb8;--attendance-text-faint-strong: #8b9aa4;--attendance-accent-purple-surface: #f2eafd;--attendance-surface-contract: #f7fafb;--attendance-auth-glow: #e3f1f8;--attendance-border-nav-hint: #d7e4f2;--attendance-text-nav-hint: #7b94ab;--attendance-shadow-brand: rgba(21,94,239,.22);--attendance-shadow-success-halo: rgba(33,181,116,.14);--attendance-shadow-primary: rgba(21, 94, 239, .18);--attendance-focus-ring: rgba(75,147,190,.12);--attendance-overlay: rgba(16,37,60,.36);--attendance-shadow-modal: rgba(16,37,60,.22);--attendance-shadow-drawer: rgba(16,37,60,.18);--attendance-shadow-auth: rgba(17,47,71,.1);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif;color:var(--attendance-text);background:var(--attendance-bg);font-synthesis:none;text-rendering:optimizeLegibility;--attendance-sidebar-toggle-border: #ded6c9;--attendance-sidebar-header-border: #f0eae1;--attendance-sidebar-active-border: #e2d8cb;--attendance-sidebar-footer-border: #ece4d9;--attendance-sidebar-mode-border: #e5dcd0;--attendance-sidebar-tooltip: #172033;--attendance-sidebar-shadow: 1px 0 12px rgba(0, 0, 0, .03);--attendance-sidebar-brand-shadow: 0 5px 14px rgba(37, 99, 235, .25);--attendance-sidebar-user-surface: #fef3c7;--attendance-sidebar-user-text: #92400e;--attendance-sidebar-brand-border: rgba(255, 255, 255, .8);--attendance-sidebar-pro-border: rgba(147, 197, 253, .6);--attendance-sidebar-pro-text: #1d4ed8;--attendance-sidebar-pro-surface: rgba(219, 234, 254, .7);--attendance-sidebar-hover-border: #c7d8ee;--attendance-sidebar-icon: #7b8797;--attendance-sidebar-toggle-top: 36px;--attendance-sidebar-toggle-offset: -14px;--attendance-size-sidebar-toggle-width: 28px;--attendance-size-sidebar-toggle-height: 36px;--attendance-size-sidebar-toggle-glyph: 16px;--attendance-size-sidebar-nav-icon: 32px;--attendance-size-sidebar-nav-radius: 10px;--attendance-size-sidebar-rail-width: 5px;--attendance-size-sidebar-rail-height: 24px;--attendance-size-sidebar-tooltip: 220px;--attendance-size-sidebar-mode-icon: 24px;--attendance-size-sidebar-mode-track: 36px;--attendance-size-sidebar-mode-height: 20px;--attendance-size-sidebar-mode-knob: 16px;--attendance-size-sidebar-user-avatar: 32px;--attendance-sidebar-toggle-hover-shadow: 0 6px 16px -2px rgba(37, 99, 235, .18), 0 3px 8px -1px rgba(0, 0, 0, .08);--attendance-sidebar-rail-shadow: 0 1px 4px rgba(37, 99, 235, .25);--attendance-sidebar-control-shadow: 0 1px 3px rgba(0, 0, 0, .16);--attendance-sidebar-icon-hover: rgba(255, 255, 255, .8);--attendance-sidebar-user-hover: rgba(255, 255, 255, .8);--attendance-layer-sidebar: 50;--attendance-size-sidebar-header: 80px;--attendance-space-sidebar-tooltip-offset: 10px;--attendance-size-sidebar-tooltip-arrow: 5px;--attendance-size-sidebar-section-heading: 32px;--attendance-size-sidebar-brand-text: 180px;--attendance-size-sidebar-nav-label: 160px;--attendance-size-sidebar-brand-border: 2px;--attendance-size-sidebar-user-border: 2px;--attendance-space-sidebar-mode-track: 2px;--attendance-size-sidebar-mode-label: 130px;--attendance-size-sidebar-user-info: 155px;--attendance-space-sidebar-pro-x: 6px;--attendance-space-sidebar-pro-y: 2px;--attendance-font-sidebar-pro: 10px;--attendance-font-sidebar-status: 10px;--attendance-size-sidebar-user-logout: 22px;--attendance-space-sidebar-motion-shift: 8px;--attendance-space-sidebar-tooltip-shift: 6px}*{box-sizing:border-box}body{margin:0;min-width:var(--attendance-size-body-min);overflow-x:clip;background:var(--attendance-bg)}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}.app-shell{position:relative;display:flex;min-height:100vh;overflow-x:hidden}.sidebar-mode-enabled{--attendance-bg: #1c2533;--attendance-text: #e5ecf5;--attendance-secondary: #a9b7c9;--attendance-border: #3a4759;--attendance-surface: #263244;--attendance-surface-inverse: #263244;--attendance-surface-form: #2a384b;--attendance-surface-preview: #2a384b;--attendance-surface-preview-neutral: #293546;--attendance-text-heading: #f7fafc;--attendance-text-heading-strong: #f7fafc;--attendance-text-action: #c3d3e8;--attendance-text-nav: #c1ccda;--attendance-text-eyebrow: #9bb9e3;--attendance-text-table: #d3deeb;--attendance-text-table-head: #a7b7c9;--attendance-text-checklist: #a7b7c9;--attendance-text-nav-hint: #a8bad1;--attendance-surface-hover: #303c4d;--attendance-surface-muted: #334154;--attendance-primary-surface: #2d456b;--attendance-surface-sidebar: #1c2533;--attendance-surface-sidebar-hover: #2b3748;--attendance-border-sidebar: #344154;--attendance-border-panel: #435267;--attendance-border-table: #39485b;--attendance-border-subtle: #405066;--attendance-surface-panel: #263244;--attendance-surface-subtle: #253143;--attendance-surface-filter: #202d3e;--attendance-border-input: #53647b;--attendance-text-label: #cbd5e1;--attendance-text-faint: #91a3bb;--attendance-text-faint-strong: #a3b1c2;--attendance-primary: #70a5ff;--attendance-success: #52c58d;--attendance-success-text: #8fddb7;--attendance-success-text-soft: #8fddb7;--attendance-success-border: #4c9e78;--attendance-success-border-light: #5aad87;--attendance-success-border-strong: #5aad87;--attendance-success-indicator: #52c58d;--attendance-success-line: #5aad87;--attendance-info-border: #4f6682;--attendance-info-border-strong: #5d7fa7;--attendance-info-border-strong-soft: #4f6682;--attendance-info-surface: #23344a;--attendance-info-surface-soft: #263a53;--attendance-info-text: #c5d5e8;--attendance-info-text-strong: #c5d5e8;--attendance-warning: #e6b86c;--attendance-warning-text: #e6c17e;--attendance-warning-border: #80673c;--attendance-warning-surface: #4b3a20;--attendance-warning-surface-soft: #3c3222;--attendance-danger: #f08d8d;--attendance-danger-text: #f3a0a0;--attendance-danger-text-card: #f3a0a0;--attendance-danger-text-code: #f3a0a0;--attendance-danger-text-tag: #f3a0a0;--attendance-danger-border: #915b63;--attendance-danger-border-card: #754e55;--attendance-danger-border-issue: #754e55;--attendance-danger-border-soft: #754e55;--attendance-danger-border-type: #915b63;--attendance-danger-surface: #4a282c;--attendance-danger-surface-light: #4a282c;--attendance-danger-surface-soft: #38252c;--attendance-danger-surface-strong: #5a3033;--attendance-status-surface: #334154;--attendance-status-text: #c3d3e8;--attendance-code-text: #9fc4ee;--attendance-code-surface: #263a53;--attendance-border-button: #53647b;--attendance-border-status: #53647b;--attendance-border-summary: #435267;--attendance-border-checklist: #53647b;--attendance-border-empty: #53647b;--attendance-border-preview: #5d7fa7;--attendance-border-selection: #53647b;--attendance-border-progress: #435267;--attendance-border-step: #53647b;--attendance-scrollbar-thumb: #667994;--attendance-accent-purple: #c6a9f0;--attendance-accent-purple-surface: #3b3150;--attendance-session-surface: #3b3150;--attendance-session-border: #6f5b91;--attendance-locked-text: #8fddb7;--attendance-locked-border: #4c9e78;--attendance-progress-muted: #a7b7c9;--attendance-surface-contract: #263a53;--attendance-auth-glow: #29425c;background:var(--attendance-bg)}.sidebar-mode-enabled .main-area{background:var(--attendance-bg)}.sidebar{position:sticky;top:0;width:var(--attendance-size-sidebar);height:100vh;min-height:100vh;flex:0 0 var(--attendance-size-sidebar);align-self:flex-start;display:flex;flex-direction:column;overflow-x:hidden;overflow-y:auto;background:var(--attendance-surface-sidebar);color:var(--attendance-text-heading);border-right:var(--attendance-size-border) solid var(--attendance-border-sidebar);box-shadow:var(--attendance-sidebar-shadow);transition:width .35s cubic-bezier(.4,0,.2,1),flex-basis .35s cubic-bezier(.4,0,.2,1)}.sidebar-toggle{position:absolute;top:var(--attendance-sidebar-toggle-top);left:var(--attendance-size-sidebar);right:auto;z-index:var(--attendance-layer-sidebar);display:inline-grid;width:var(--attendance-size-sidebar-toggle-width);height:var(--attendance-size-sidebar-toggle-height);place-items:center;border:var(--attendance-size-border) solid var(--attendance-sidebar-toggle-border);border-left:0;border-radius:0 var(--attendance-radius-lg) var(--attendance-radius-lg) 0;color:var(--attendance-secondary);background:var(--attendance-surface-inverse);cursor:pointer;box-shadow:var(--attendance-elevation-card);transform:translateY(-50%);transition:color .25s cubic-bezier(.4,0,.2,1),background .25s cubic-bezier(.4,0,.2,1),transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s cubic-bezier(.4,0,.2,1)}.sidebar-toggle svg{width:var(--attendance-size-sidebar-toggle-glyph);height:var(--attendance-size-sidebar-toggle-glyph);transition:transform .2s ease}.sidebar-toggle:hover{color:var(--attendance-primary);background:var(--attendance-primary-surface);transform:translateY(-50%) scale(1.06);box-shadow:var(--attendance-sidebar-toggle-hover-shadow)}.sidebar-toggle:active{transform:translateY(-50%) scale(.95)}.sidebar-toggle:focus-visible{outline:var(--attendance-size-focus-ring) solid var(--attendance-focus-ring);outline-offset:var(--attendance-space-tight)}.sidebar-collapsed .sidebar{width:var(--attendance-size-sidebar-collapsed);flex-basis:var(--attendance-size-sidebar-collapsed)}.sidebar-collapsed .brand-lockup{justify-content:center;gap:0}.sidebar-collapsed .brand-text,.sidebar-collapsed .nav-label,.sidebar-collapsed .nav-section-heading,.sidebar-collapsed .sidebar-mode-label,.sidebar-collapsed .sidebar-user-info,.sidebar-collapsed .sidebar-user-logout{max-width:0;opacity:0;overflow:hidden;transform:translate(calc(-1 * var(--attendance-space-sidebar-motion-shift)))}.sidebar-collapsed .nav-item{justify-content:center;gap:0;padding-right:var(--attendance-space-2);padding-left:var(--attendance-space-2)}.sidebar-collapsed .sidebar-mode-switch,.sidebar-collapsed .sidebar-user-card{justify-content:center}.brand-row{position:relative;min-height:var(--attendance-size-sidebar-header);display:flex;align-items:center;justify-content:space-between;gap:var(--attendance-space-3);padding:0 var(--attendance-space-4);border-bottom:var(--attendance-size-border) solid var(--attendance-sidebar-header-border)}.brand-lockup{display:flex;min-width:0;align-items:center;gap:var(--attendance-space-3)}.brand-mark{width:var(--attendance-size-brand);height:var(--attendance-size-brand);flex:0 0 var(--attendance-size-brand);display:grid;place-items:center;border:var(--attendance-size-sidebar-brand-border) solid var(--attendance-sidebar-brand-border);border-radius:var(--attendance-radius-xl);background:var(--attendance-primary);color:var(--attendance-surface-inverse);font-weight:800;font-size:var(--attendance-font-brand-mark);box-shadow:var(--attendance-sidebar-brand-shadow);transition:transform .2s ease}.brand-mark:hover{transform:scale(1.05)}.brand-text{min-width:0;max-width:var(--attendance-size-sidebar-brand-text);overflow:hidden;white-space:nowrap;transition:opacity .25s ease,max-width .3s ease,transform .25s ease}.brand-title-row{display:flex;align-items:center;gap:var(--attendance-space-control)}.brand-name{font-size:var(--attendance-font-brand);line-height:1.2;color:var(--attendance-text-heading);font-weight:750;letter-spacing:.02em}.brand-pro-badge{padding:var(--attendance-space-sidebar-pro-y) var(--attendance-space-sidebar-pro-x);border:var(--attendance-size-border) solid var(--attendance-sidebar-pro-border);border-radius:var(--attendance-radius-pill);color:var(--attendance-sidebar-pro-text);background:var(--attendance-sidebar-pro-surface);font-size:var(--attendance-font-sidebar-pro);font-weight:700;line-height:1.2}.brand-subtitle{margin-top:var(--attendance-space-control);font-size:var(--attendance-font-brand-subtitle);letter-spacing:.18em;color:var(--attendance-text-faint)}.mobile-menu-toggle{display:none;align-items:center;justify-content:center;gap:var(--attendance-space-control);min-height:var(--attendance-size-button);padding:0 var(--attendance-space-panel);border:var(--attendance-size-border) solid var(--attendance-border-button);border-radius:var(--attendance-radius-md);color:var(--attendance-text-action);background:var(--attendance-surface-inverse);cursor:pointer;font-size:var(--attendance-font-sm);font-weight:750}.mobile-menu-toggle:focus-visible,.nav-item:focus-visible,.ghost-button:focus-visible,.text-button:focus-visible,.sidebar-mode-switch:focus-visible,.sidebar-user-logout:focus-visible{outline:var(--attendance-size-focus-ring) solid var(--attendance-focus-ring);outline-offset:var(--attendance-space-tight)}.mobile-menu-icon{display:inline-flex;width:var(--attendance-size-nav-icon);height:var(--attendance-size-nav-icon);align-items:center;justify-content:center}.mobile-menu-icon svg{width:var(--attendance-size-nav-glyph);height:var(--attendance-size-nav-glyph);display:block}.primary-nav{display:grid;flex:1;align-content:start;gap:var(--attendance-space-control);padding:var(--attendance-space-4) var(--attendance-space-2);overflow:visible}.nav-section-heading{max-height:var(--attendance-size-sidebar-section-heading);padding:var(--attendance-space-tight) var(--attendance-space-3) var(--attendance-space-control);overflow:hidden;color:var(--attendance-text-faint);font-size:var(--attendance-font-xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase;transition:opacity .25s ease,max-height .3s ease,padding .3s ease,margin .3s ease}.nav-section-heading-secondary{margin-top:var(--attendance-space-3)}.nav-item{position:relative;display:flex;min-width:0;align-items:center;gap:var(--attendance-space-control-lg);border:var(--attendance-size-border) solid transparent;border-radius:var(--attendance-radius-lg);padding:var(--attendance-space-control-lg) var(--attendance-space-3);color:var(--attendance-text-nav);font-size:var(--attendance-font-md);transition:background .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease,gap .3s ease,padding .3s ease}.nav-item:hover{background:var(--attendance-surface-sidebar-hover);color:var(--attendance-text-heading)}.nav-item.active{border-color:var(--attendance-sidebar-active-border);color:var(--attendance-primary);background:var(--attendance-surface-inverse);box-shadow:var(--attendance-elevation-card)}.nav-item.active:before{position:absolute;top:50%;left:0;width:var(--attendance-size-sidebar-rail-width);height:var(--attendance-size-sidebar-rail-height);border-radius:0 var(--attendance-radius-pill) var(--attendance-radius-pill) 0;background:var(--attendance-primary);box-shadow:var(--attendance-sidebar-rail-shadow);content:"";transform:translateY(-50%)}.nav-label{min-width:0;max-width:var(--attendance-size-sidebar-nav-label);overflow:hidden;white-space:nowrap;transition:opacity .25s ease,max-width .3s ease,transform .25s ease}.nav-icon{width:var(--attendance-size-sidebar-nav-icon);height:var(--attendance-size-sidebar-nav-icon);flex:0 0 var(--attendance-size-sidebar-nav-icon);display:grid;place-items:center;border:0;border-radius:var(--attendance-size-sidebar-nav-radius);color:var(--attendance-sidebar-icon);background:transparent;transition:color .18s ease,background .18s ease}.nav-item:hover .nav-icon{color:var(--attendance-primary);background:var(--attendance-sidebar-icon-hover)}.nav-item.active .nav-icon{color:var(--attendance-primary);background:var(--attendance-primary-surface)}.nav-icon svg{width:var(--attendance-size-nav-glyph);height:var(--attendance-size-nav-glyph);display:block}.nav-item-tooltip{position:absolute;top:50%;left:calc(100% + var(--attendance-space-sidebar-tooltip-offset));z-index:var(--attendance-layer-sidebar);visibility:hidden;max-width:var(--attendance-size-sidebar-tooltip);padding:var(--attendance-space-2) var(--attendance-space-panel);border-radius:var(--attendance-radius-md);color:var(--attendance-surface-inverse);background:var(--attendance-sidebar-tooltip);box-shadow:var(--attendance-elevation-card);font-size:var(--attendance-font-sm);font-weight:650;line-height:1.4;white-space:nowrap;opacity:0;pointer-events:none;transform:translate(calc(-1 * var(--attendance-space-sidebar-tooltip-shift)),-50%);transition:opacity .2s ease,transform .2s ease,visibility .2s ease}.nav-item-tooltip:before{position:absolute;top:50%;right:100%;border:var(--attendance-size-sidebar-tooltip-arrow) solid transparent;border-right-color:var(--attendance-sidebar-tooltip);content:"";transform:translateY(-50%)}.sidebar-collapsed .nav-item:hover .nav-item-tooltip,.sidebar-collapsed .nav-item:focus-visible .nav-item-tooltip{visibility:visible;opacity:1;transform:translateY(-50%)}.sidebar-footer{display:grid;gap:var(--attendance-space-2);margin-top:auto;padding:var(--attendance-space-3);border-top:var(--attendance-size-border) solid var(--attendance-sidebar-footer-border);background:var(--attendance-surface-sidebar)}.sidebar-mode-switch{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:var(--attendance-space-2);padding:var(--attendance-space-2);border:var(--attendance-size-border) solid var(--attendance-sidebar-mode-border);border-radius:var(--attendance-radius-md);color:var(--attendance-secondary);background:var(--attendance-surface-inverse);cursor:pointer;transition:background .18s ease,border-color .18s ease}.sidebar-mode-switch:hover,.sidebar-mode-switch.is-enabled{border-color:var(--attendance-sidebar-hover-border);background:var(--attendance-primary-surface)}.sidebar-mode-copy{display:flex;min-width:0;align-items:center;gap:var(--attendance-space-2)}.sidebar-mode-icon{width:var(--attendance-size-sidebar-mode-icon);height:var(--attendance-size-sidebar-mode-icon);display:grid;flex:0 0 var(--attendance-size-sidebar-mode-icon);place-items:center;border-radius:var(--attendance-radius-sm);color:var(--attendance-primary);background:var(--attendance-primary-surface);font-size:var(--attendance-font-sm)}.sidebar-mode-label,.sidebar-user-info,.sidebar-user-logout{transition:opacity .25s ease,max-width .3s ease,transform .25s ease}.sidebar-mode-label{max-width:var(--attendance-size-sidebar-mode-label);overflow:hidden;white-space:nowrap;font-size:var(--attendance-font-xs);font-weight:650}.sidebar-mode-track{width:var(--attendance-size-sidebar-mode-track);height:var(--attendance-size-sidebar-mode-height);display:flex;flex:0 0 var(--attendance-size-sidebar-mode-track);align-items:center;padding:var(--attendance-space-sidebar-mode-track);border-radius:var(--attendance-radius-pill);background:var(--attendance-border-icon);transition:background .2s ease}.sidebar-mode-switch.is-enabled .sidebar-mode-track{justify-content:flex-end;background:var(--attendance-primary)}.sidebar-mode-knob{width:var(--attendance-size-sidebar-mode-knob);height:var(--attendance-size-sidebar-mode-knob);border-radius:var(--attendance-radius-round);background:var(--attendance-primary);box-shadow:var(--attendance-sidebar-control-shadow);transition:transform .3s cubic-bezier(.34,1.56,.64,1),background .2s ease}.sidebar-mode-switch.is-enabled .sidebar-mode-knob{background:var(--attendance-surface-inverse)}.sidebar-user-card{display:flex;min-width:0;align-items:center;gap:var(--attendance-space-2);padding:var(--attendance-space-control);border-radius:var(--attendance-radius-lg);transition:background .18s ease}.sidebar-user-card:hover{background:var(--attendance-sidebar-user-hover)}.sidebar-user-avatar{width:var(--attendance-size-sidebar-user-avatar);height:var(--attendance-size-sidebar-user-avatar);display:grid;flex:0 0 var(--attendance-size-sidebar-user-avatar);place-items:center;border:var(--attendance-size-sidebar-user-border) solid var(--attendance-surface-inverse);border-radius:var(--attendance-radius-round);color:var(--attendance-sidebar-user-text);background:var(--attendance-sidebar-user-surface);box-shadow:var(--attendance-elevation-card);font-size:var(--attendance-font-xs);font-weight:800}.sidebar-user-info{display:grid;min-width:0;max-width:var(--attendance-size-sidebar-user-info);gap:var(--attendance-space-tight);overflow:hidden}.sidebar-user-info strong,.sidebar-user-info span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-info strong{color:var(--attendance-text-heading);font-size:var(--attendance-font-xs)}.sidebar-user-info span{display:flex;align-items:center;gap:var(--attendance-space-control);color:var(--attendance-success);font-size:var(--attendance-font-sidebar-status)}.sidebar-user-logout{width:var(--attendance-size-sidebar-user-logout);height:var(--attendance-size-sidebar-user-logout);display:grid;max-width:var(--attendance-size-sidebar-user-logout);flex:0 0 var(--attendance-size-sidebar-user-logout);place-items:center;border:0;color:var(--attendance-text-faint);background:transparent;cursor:pointer;font-size:var(--attendance-font-sm)}.sidebar-user-logout:hover{color:var(--attendance-danger)}.status-dot{width:var(--attendance-size-status-dot);height:var(--attendance-size-status-dot);border-radius:var(--attendance-radius-round);display:inline-block}.status-dot.online{background:var(--attendance-success-indicator);box-shadow:0 0 0 var(--attendance-size-status-halo) var(--attendance-shadow-success-halo)}.main-area{flex:1;min-width:0;width:0;padding:var(--attendance-space-shell) var(--attendance-space-page-gutter) var(--attendance-space-page-bottom)}.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--attendance-space-5);margin-bottom:var(--attendance-space-title)}.topbar h1{margin:var(--attendance-space-control) 0 0;font-size:var(--attendance-font-display);letter-spacing:-.025em;color:var(--attendance-text-heading)}.eyebrow{color:var(--attendance-text-eyebrow);font-size:var(--attendance-font-xs);font-weight:800;letter-spacing:.16em;text-transform:uppercase}.eyebrow.danger{color:var(--attendance-danger)}.account-menu{display:flex;align-items:center;gap:var(--attendance-space-panel)}.account-avatar{display:inline-grid;width:30px;height:30px;place-items:center;border:var(--attendance-size-border) solid var(--attendance-border-panel);border-radius:var(--attendance-radius-round);color:var(--attendance-primary);background:var(--attendance-primary-surface);font-size:var(--attendance-font-xs);font-weight:800}.account-copy{display:grid;gap:var(--attendance-space-compact);text-align:right}.account-copy strong{font-size:var(--attendance-font-md);color:var(--attendance-text-heading)}.account-copy span{font-size:var(--attendance-font-sm);color:var(--attendance-secondary)}.ghost-button,.text-button{border:0;background:transparent;color:var(--attendance-primary);cursor:pointer;padding:var(--attendance-space-control)}.ghost-button{color:var(--attendance-secondary);font-size:var(--attendance-font-body)}.flash{margin:calc(-1 * var(--attendance-space-2)) 0 var(--attendance-space-section);padding:var(--attendance-space-control-lg) var(--attendance-space-panel-lg);border-radius:var(--attendance-radius-md);font-size:var(--attendance-font-md)}.flash.success{color:var(--attendance-success-text);background:var(--attendance-success-surface);border:var(--attendance-size-border) solid var(--attendance-success-border)}.flash.error{color:var(--attendance-danger-text);background:var(--attendance-danger-surface);border:var(--attendance-size-border) solid var(--attendance-danger-border)}.global-state{display:flex;align-items:center;justify-content:space-between;gap:var(--attendance-space-3);margin:calc(-1 * var(--attendance-space-2)) 0 var(--attendance-space-panel-lg);padding:var(--attendance-space-field) var(--attendance-space-3);border:var(--attendance-size-border) solid var(--attendance-info-border);border-radius:var(--attendance-radius-md);background:var(--attendance-info-surface);color:var(--attendance-info-text);font-size:var(--attendance-font-sm)}.global-state-copy{display:grid;gap:var(--attendance-space-tight);min-width:0}.global-state-copy strong{color:var(--attendance-text-heading-strong);font-size:var(--attendance-font-sm)}.global-state-copy small{color:inherit;font-size:var(--attendance-font-xs);line-height:1.45}.global-state-actions{display:flex;flex:0 0 auto;gap:var(--attendance-space-2)}.global-state button{border:var(--attendance-size-border) solid currentColor;border-radius:var(--attendance-radius-sm);padding:var(--attendance-space-tight) var(--attendance-space-2);color:var(--attendance-primary);background:var(--attendance-surface-inverse);cursor:pointer;font-size:var(--attendance-font-xs);font-weight:800}.global-state-timeout,.global-state-version{color:var(--attendance-warning-text);background:var(--attendance-warning-surface);border-color:var(--attendance-warning-border)}.global-state-forbidden,.global-state-error{color:var(--attendance-danger-text);background:var(--attendance-danger-surface);border-color:var(--attendance-danger-border)}.global-state-session{color:var(--attendance-accent-purple);background:var(--attendance-session-surface);border-color:var(--attendance-session-border)}.global-state-locked{color:var(--attendance-locked-text);background:var(--attendance-success-surface);border-color:var(--attendance-locked-border)}.task-center{display:grid;gap:var(--attendance-space-2);margin:calc(-1 * var(--attendance-space-2)) 0 var(--attendance-space-panel-lg);padding:var(--attendance-space-field) var(--attendance-space-3);border:var(--attendance-size-border) solid var(--attendance-border-panel);border-radius:var(--attendance-radius-md);background:var(--attendance-surface);box-shadow:var(--attendance-elevation-card)}.task-center-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--attendance-space-3)}.task-center-toggle{display:inline-flex;align-items:center;gap:var(--attendance-space-2);padding:var(--attendance-space-tight) 0;border:0;color:var(--attendance-text-heading-strong);background:transparent;cursor:pointer;font-size:var(--attendance-font-sm);font-weight:800}.task-center-toggle strong{min-width:var(--attendance-size-count-pill);padding:var(--attendance-space-tight) var(--attendance-space-1);border-radius:var(--attendance-radius-pill);color:var(--attendance-primary);background:var(--attendance-primary-surface);text-align:center}.task-center-dot{width:var(--attendance-size-status-dot);height:var(--attendance-size-status-dot);border-radius:var(--attendance-radius-round);background:var(--attendance-progress-muted)}.task-center-dot.active{background:var(--attendance-primary);box-shadow:0 0 0 var(--attendance-size-status-halo) var(--attendance-shadow-primary)}.task-center-toast{color:var(--attendance-success-text);font-size:var(--attendance-font-xs);font-weight:700;text-align:right}.task-center-panel{display:grid;gap:var(--attendance-space-3);padding-top:var(--attendance-space-2);border-top:var(--attendance-size-border) solid var(--attendance-border-subtle)}.task-center-group{display:grid;gap:var(--attendance-space-2)}.task-center-group-title{color:var(--attendance-secondary);font-size:var(--attendance-font-xs);font-weight:800}.task-center-item{display:grid;gap:var(--attendance-space-1)}.task-center-item>div{display:flex;align-items:baseline;justify-content:space-between;gap:var(--attendance-space-2)}.task-center-item strong{color:var(--attendance-text-heading);font-size:var(--attendance-font-xs)}.task-center-item small,.task-center-error{color:var(--attendance-secondary);font-size:var(--attendance-font-xs)}.task-center-item progress{width:100%;height:var(--attendance-space-1);accent-color:var(--attendance-primary)}.task-center-error{margin:0;color:var(--attendance-danger-text)}.progress-strip{display:flex;align-items:center;gap:var(--attendance-space-control-lg);min-width:0;padding:var(--attendance-space-control-lg) var(--attendance-space-4);margin-bottom:var(--attendance-space-section);background:var(--attendance-surface);border:var(--attendance-size-border) solid var(--attendance-border);border-radius:var(--attendance-radius-lg);box-shadow:var(--attendance-elevation-card)}.progress-step{display:flex;align-items:center;gap:var(--attendance-space-2);min-width:var(--attendance-size-progress-min);color:var(--attendance-progress-muted)}.progress-step>span{width:var(--attendance-size-step);height:var(--attendance-size-step);display:grid;place-items:center;border-radius:var(--attendance-radius-md);border:var(--attendance-size-border) solid var(--attendance-border-step);font-size:var(--attendance-font-xs);font-weight:800}.progress-step strong,.progress-step small{display:block}.progress-step strong{font-size:var(--attendance-font-body);color:var(--attendance-text)}.progress-step small{margin-top:var(--attendance-space-tight);font-size:var(--attendance-font-xs);color:var(--attendance-secondary)}.progress-step.done>span{border-color:var(--attendance-success-border-light);background:var(--attendance-success-surface);color:var(--attendance-success)}.progress-line{height:var(--attendance-size-line);flex:1;background:var(--attendance-border-progress)}.progress-line.done{background:var(--attendance-success-line)}.workspace-hero,.page-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--attendance-space-6);margin-bottom:var(--attendance-space-section)}.month-title-row{display:flex;align-items:center;gap:var(--attendance-space-3);margin-top:var(--attendance-space-control)}.workspace-hero h2,.page-intro h2{margin:0;color:var(--attendance-text-heading);font-size:var(--attendance-font-xl);letter-spacing:-.03em}.workspace-hero p,.page-intro p{margin:var(--attendance-space-control) 0 0;color:var(--attendance-secondary);font-size:var(--attendance-font-body)}code{color:var(--attendance-code-text);font-size:var(--attendance-font-sm);background:var(--attendance-code-surface);border-radius:var(--attendance-radius-code);padding:var(--attendance-space-tight) var(--attendance-space-control)}.hero-actions,.button-row{display:flex;gap:var(--attendance-space-field);flex-wrap:wrap;justify-content:flex-end}.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;min-height:var(--attendance-size-button);border-radius:var(--attendance-radius-md);padding:0 var(--attendance-space-panel-lg);border:var(--attendance-size-border) solid transparent;cursor:pointer;font-size:var(--attendance-font-body);font-weight:700;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}.primary-button{background:var(--attendance-primary);color:var(--attendance-surface-inverse);box-shadow:var(--attendance-elevation-primary)}.primary-button:hover,.secondary-button:hover{transform:translateY(-1px)}.primary-button:disabled,.secondary-button:disabled,.text-button:disabled{cursor:not-allowed;opacity:.45;transform:none}.secondary-button{background:var(--attendance-surface-inverse);border-color:var(--attendance-border-button);color:var(--attendance-text-action)}.full{width:100%}.status-badge{display:inline-flex;align-items:center;gap:var(--attendance-space-control);width:max-content;min-height:var(--attendance-size-status);padding:0 var(--attendance-space-2);border:var(--attendance-size-border) solid var(--attendance-border-status);border-radius:var(--attendance-radius-pill);background:var(--attendance-status-surface);color:var(--attendance-status-text);font-size:var(--attendance-font-xs);font-weight:750;white-space:nowrap}.status-mark{width:var(--attendance-size-status-dot);height:var(--attendance-size-status-dot);flex:0 0 var(--attendance-size-status-dot);border:var(--attendance-size-border) solid currentColor;border-radius:var(--attendance-radius-round)}.status-ready,.status-active,.status-parsed,.status-succeeded{background:var(--attendance-success-surface);color:var(--attendance-success)}.status-blocked,.status-exception,.status-failed{background:var(--attendance-danger-surface);color:var(--attendance-danger)}.status-review,.status-confirming,.status-imported{background:var(--attendance-primary-surface);color:var(--attendance-primary)}.status-draft,.status-pending,.status-parsing,.status-uploaded,.status-readonly{background:var(--attendance-warning-surface);color:var(--attendance-warning)}.blocker-panel,.panel,.info-card,.role-card{min-width:0;background:var(--attendance-surface);border:var(--attendance-size-border) solid var(--attendance-border);border-radius:var(--attendance-radius-lg);box-shadow:var(--attendance-elevation-card)}.blocker-panel{padding:var(--attendance-space-4);margin-bottom:var(--attendance-space-section);border-color:var(--attendance-danger-border-soft);background:var(--attendance-danger-surface-soft)}.blocker-panel.compact{margin-top:var(--attendance-space-section)}.panel{padding:var(--attendance-space-4);margin-bottom:var(--attendance-space-section)}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--attendance-space-panel-lg);margin-bottom:var(--attendance-space-panel-xl)}.panel-heading h3{margin:var(--attendance-space-control) 0 0;color:var(--attendance-text-heading);font-size:var(--attendance-font-lg)}.muted{color:var(--attendance-secondary);font-size:var(--attendance-font-sm)}.count-pill{display:inline-flex;align-items:center;min-height:var(--attendance-size-count-pill);padding:0 var(--attendance-space-field);border-radius:var(--attendance-radius-pill);color:var(--attendance-text-action);background:var(--attendance-surface-muted);font-size:var(--attendance-font-xs);font-weight:750}.count-pill.danger-bg{color:var(--attendance-danger);background:var(--attendance-danger-surface-strong)}.blocker-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--attendance-space-field)}.blocker-card{display:grid;gap:var(--attendance-space-label);padding:var(--attendance-space-control-lg);border:var(--attendance-size-border) solid var(--attendance-danger-border-card);border-radius:var(--attendance-radius-md);background:var(--attendance-surface-inverse)}.blocker-card strong{color:var(--attendance-danger-text-card);font-size:var(--attendance-font-body)}.blocker-card span{color:var(--attendance-secondary);font-size:var(--attendance-font-sm);line-height:1.5}.blocker-card code{width:max-content;color:var(--attendance-danger-text-code);background:var(--attendance-danger-surface-light)}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--attendance-space-3);margin-bottom:var(--attendance-space-section)}.metric-card{display:grid;gap:var(--attendance-space-control);padding:var(--attendance-space-panel-xl) var(--attendance-space-4);background:var(--attendance-surface);border:var(--attendance-size-border) solid var(--attendance-border);border-radius:var(--attendance-radius-lg);box-shadow:var(--attendance-elevation-card)}.metric-card span,.metric-card small{color:var(--attendance-secondary);font-size:var(--attendance-font-sm)}.metric-card strong{color:var(--attendance-text-heading);font-size:var(--attendance-font-metric);letter-spacing:-.03em}.metric-card small{color:var(--attendance-success-text-soft)}.content-grid{display:grid;gap:var(--attendance-space-section);min-width:0}.two-column{grid-template-columns:minmax(0,1.25fr) minmax(var(--attendance-size-column-lg),.75fr)}.upload-row,.create-month-row{display:flex;gap:var(--attendance-space-field);align-items:center;margin-bottom:var(--attendance-space-control-lg)}.file-selection-preview{display:grid;gap:var(--attendance-space-compact);margin:calc(-1 * var(--attendance-space-compact)) 0 var(--attendance-space-control-lg);padding:var(--attendance-space-field) var(--attendance-space-panel);border:var(--attendance-size-border) solid var(--attendance-info-border-strong);border-radius:var(--attendance-radius-sm);background:var(--attendance-info-surface-soft);color:var(--attendance-primary);font-size:var(--attendance-font-sm)}.file-selection-preview span{color:var(--attendance-secondary);font-size:var(--attendance-font-xs)}.import-summary{display:flex;flex-wrap:wrap;gap:var(--attendance-space-inline);margin:0 0 var(--attendance-space-control-lg)}.import-summary>span{display:inline-flex;align-items:center;gap:var(--attendance-space-control);padding:var(--attendance-space-control) var(--attendance-space-2);border:var(--attendance-size-border) solid var(--attendance-border-subtle);border-radius:var(--attendance-radius-sm);color:var(--attendance-secondary);background:var(--attendance-surface-inverse);font-size:var(--attendance-font-xs)}.import-summary strong{color:var(--attendance-text-heading);font-size:var(--attendance-font-sm)}.date-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(var(--attendance-size-date-note),1.5fr) auto;gap:var(--attendance-space-field);align-items:end}.date-controls label{display:grid;gap:var(--attendance-space-label);color:var(--attendance-text-label);font-size:var(--attendance-font-sm);font-weight:700}.date-controls input,.date-controls select{min-height:var(--attendance-size-control);padding:var(--attendance-space-control) var(--attendance-space-2);font-size:var(--attendance-font-sm)}.wide-field{min-width:0}.run-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--attendance-space-2)}.run-summary>div{display:grid;gap:var(--attendance-space-tight);min-width:0;padding:var(--attendance-space-field);border:var(--attendance-size-border) solid var(--attendance-border-summary);border-radius:var(--attendance-radius-sm);background:var(--attendance-surface-subtle)}.run-summary span{color:var(--attendance-secondary);font-size:var(--attendance-font-xs)}.run-summary strong{color:var(--attendance-text-heading);font-size:var(--attendance-font-emphasis)}.run-summary code{width:max-content;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.danger-text{color:var(--attendance-danger)!important}.compact-empty{min-height:var(--attendance-space-card-offset)}input,select,textarea{width:100%;border:var(--attendance-size-border) solid var(--attendance-border-input);border-radius:var(--attendance-radius-sm);padding:var(--attendance-space-field) var(--attendance-space-panel);background:var(--attendance-surface-inverse);color:var(--attendance-text);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--attendance-border-focus);box-shadow:0 0 0 var(--attendance-size-focus-ring) var(--attendance-focus-ring)}input[type=file]{padding:var(--attendance-space-inline);font-size:var(--attendance-font-sm)}.table-wrap{min-width:0;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-color:var(--attendance-scrollbar-thumb) var(--attendance-surface-muted)}table{width:100%;border-collapse:collapse;min-width:var(--attendance-size-table-min)}th{padding:var(--attendance-space-field) var(--attendance-space-panel);border-bottom:var(--attendance-size-border) solid var(--attendance-border);text-align:left;color:var(--attendance-text-table-head);font-size:var(--attendance-font-table);font-weight:800;letter-spacing:.05em;white-space:nowrap}td{padding:var(--attendance-space-control-lg) var(--attendance-space-panel);border-bottom:var(--attendance-size-border) solid var(--attendance-border-table);color:var(--attendance-text-table);font-size:var(--attendance-font-table);vertical-align:middle}tbody tr:last-child td{border-bottom:0}td strong,td small{display:block}td strong{color:var(--attendance-text-heading);font-size:var(--attendance-font-md)}td small{margin-top:var(--attendance-space-compact);color:var(--attendance-secondary);font-size:var(--attendance-font-sm)}.checklist{display:grid;gap:var(--attendance-space-3);margin:0;padding:0;list-style:none}.checklist li{display:flex;gap:var(--attendance-space-panel);align-items:flex-start}.checklist li>span{width:var(--attendance-size-status);height:var(--attendance-size-status);display:grid;place-items:center;border:var(--attendance-size-border) solid var(--attendance-border-checklist);border-radius:var(--attendance-radius-sm);color:var(--attendance-text-checklist);font-size:var(--attendance-font-xs);font-weight:800}.checklist li.done>span{border-color:var(--attendance-success-border-strong);background:var(--attendance-success-surface);color:var(--attendance-success)}.checklist strong,.checklist small{display:block}.checklist strong{color:var(--attendance-text-heading);font-size:var(--attendance-font-body)}.checklist small{margin-top:var(--attendance-space-compact);color:var(--attendance-secondary);font-size:var(--attendance-font-xs)}.inline-callout{margin-top:var(--attendance-space-4);padding:var(--attendance-space-panel) var(--attendance-space-control-lg);border-radius:var(--attendance-radius-sm);color:var(--attendance-info-text-strong);background:var(--attendance-info-surface);border:var(--attendance-size-border) solid var(--attendance-info-border-strong-soft);font-size:var(--attendance-font-sm);line-height:1.5}.success-callout{color:var(--attendance-locked-text);background:var(--attendance-success-surface);border-color:var(--attendance-locked-border)}.empty-state,.empty-page{display:grid;place-items:center;text-align:center;color:var(--attendance-secondary)}.empty-state{min-height:var(--attendance-size-empty-state);border:var(--attendance-size-border) dashed var(--attendance-border-empty);border-radius:var(--attendance-radius-md);font-size:var(--attendance-font-body)}.empty-page{min-height:65vh;padding:var(--attendance-space-empty) var(--attendance-space-5)}.empty-page h2{margin:var(--attendance-space-2) 0 0;color:var(--attendance-text-heading);font-size:var(--attendance-font-xl)}.empty-page p{margin:var(--attendance-space-2) 0 var(--attendance-space-section);font-size:var(--attendance-font-body)}.empty-illustration{width:var(--attendance-size-empty-illustration);height:var(--attendance-size-empty-illustration);display:grid;place-items:center;margin-bottom:var(--attendance-space-section);border-radius:var(--attendance-radius-illustration);background:var(--attendance-primary-surface);color:var(--attendance-primary);font-size:var(--attendance-font-illustration);font-weight:800}.text-link{color:var(--attendance-primary);font-size:var(--attendance-font-sm)}.page-intro{align-items:center}.summary-stat{display:grid;justify-items:end;gap:var(--attendance-space-tight)}.summary-stat strong{color:var(--attendance-danger);font-size:var(--attendance-font-summary);line-height:1}.summary-stat span{color:var(--attendance-secondary);font-size:var(--attendance-font-sm)}.form-panel{background:var(--attendance-surface-form)}.inline-form,.rule-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--attendance-space-3);align-items:end}.inline-form label,.rule-form label,.stack-form label{display:grid;gap:var(--attendance-space-label);color:var(--attendance-text-label);font-size:var(--attendance-font-sm);font-weight:700}.rule-form{grid-template-columns:1.4fr .8fr .8fr .8fr 1fr}.check-line{display:flex!important;align-items:center;grid-auto-flow:column;justify-content:start;gap:var(--attendance-space-inline)!important;white-space:nowrap}.check-line input{width:var(--attendance-size-input);height:var(--attendance-size-input)}.selection-list{display:flex;flex-wrap:wrap;gap:var(--attendance-space-inline);margin-bottom:var(--attendance-space-panel-lg);padding:var(--attendance-space-panel);border:var(--attendance-size-border) solid var(--attendance-border-panel);border-radius:var(--attendance-radius-md);background:var(--attendance-surface-subtle)}.selection-item{display:inline-flex;align-items:center;gap:var(--attendance-space-inline);min-width:var(--attendance-size-selection-min);padding:var(--attendance-space-inline) var(--attendance-space-control-lg);border:var(--attendance-size-border) solid var(--attendance-border-selection);border-radius:var(--attendance-radius-sm);background:var(--attendance-surface-inverse);cursor:pointer}.selection-item input{width:var(--attendance-size-input);height:var(--attendance-size-input)}.selection-item strong,.selection-item small{display:block}.selection-item strong{color:var(--attendance-text-heading);font-size:var(--attendance-font-sm)}.selection-item small{margin-top:var(--attendance-space-tight);color:var(--attendance-secondary);font-size:var(--attendance-font-xs)}.info-grid,.role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--attendance-space-3)}.info-card{display:grid;gap:var(--attendance-space-label);padding:var(--attendance-space-panel-lg) var(--attendance-space-4);box-shadow:none}.info-card strong{color:var(--attendance-text-heading);font-size:var(--attendance-font-body)}.info-card span,.role-card p{margin:0;color:var(--attendance-secondary);font-size:var(--attendance-font-sm);line-height:1.55}.warning-card{border-color:var(--attendance-warning-border);background:var(--attendance-warning-surface-soft);color:var(--attendance-warning-text);margin-bottom:var(--attendance-space-section)}.tag-list{display:flex;flex-wrap:wrap;gap:var(--attendance-space-2)}.tag{padding:var(--attendance-space-label) var(--attendance-space-field);border-radius:var(--attendance-radius-sm);color:var(--attendance-danger-text-tag);background:var(--attendance-danger-surface-light);font-size:var(--attendance-font-sm)}.filter-bar{display:flex;align-items:center;gap:var(--attendance-space-panel);flex-wrap:wrap;margin-bottom:var(--attendance-space-panel-lg);padding:var(--attendance-space-panel) var(--attendance-space-3);border:var(--attendance-size-border) solid var(--attendance-border);border-radius:var(--attendance-radius-md);background:var(--attendance-surface-filter)}.filter-fields{display:flex;align-items:center;gap:var(--attendance-space-2);flex:1 1 var(--attendance-size-filter-flex);min-width:var(--attendance-size-filter-min)}.filter-fields input,.filter-fields select{width:auto;min-width:var(--attendance-size-filter-field);min-height:var(--attendance-size-filter-height);padding:var(--attendance-space-label) var(--attendance-space-2);font-size:var(--attendance-font-sm)}.batch-preview{margin-top:var(--attendance-space-panel-lg);padding:var(--attendance-space-panel-lg);border:var(--attendance-size-border) solid var(--attendance-border-preview);border-radius:var(--attendance-radius-lg);background:var(--attendance-surface-preview)}.preview-table-wrap{border:var(--attendance-size-border) solid var(--attendance-border-panel);border-radius:var(--attendance-radius-sm);background:var(--attendance-surface-inverse)}.preview-table{min-width:var(--attendance-size-preview-table)}.preview-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--attendance-space-3);margin-top:var(--attendance-space-3)}.preview-status{display:inline-flex;align-items:center;min-height:var(--attendance-size-preview-status);padding:0 var(--attendance-space-inline);border:var(--attendance-size-border) solid currentColor;border-radius:var(--attendance-radius-pill);font-size:var(--attendance-font-xs);font-weight:750}.preview-added{color:var(--attendance-success);background:var(--attendance-success-surface)}.preview-updated{color:var(--attendance-primary);background:var(--attendance-primary-surface)}.preview-unchanged{color:var(--attendance-secondary);background:var(--attendance-surface-preview-neutral)}.preview-conflict,.preview-invalid{color:var(--attendance-danger);background:var(--attendance-danger-surface)}.modal-backdrop,.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;padding:var(--attendance-space-5);background:var(--attendance-overlay)}.confirm-dialog{width:min(var(--attendance-size-modal),100%);padding:var(--attendance-space-card-offset);border:var(--attendance-size-border) solid var(--attendance-border);border-radius:var(--attendance-radius-lg);background:var(--attendance-surface-inverse);box-shadow:var(--attendance-elevation-modal)}.confirm-dialog h3{margin:var(--attendance-space-inline) 0 var(--attendance-space-control-lg);color:var(--attendance-text-heading);font-size:var(--attendance-font-dialog)}.confirm-dialog p{margin:0 0 var(--attendance-space-section);color:var(--attendance-secondary);font-size:var(--attendance-font-body);line-height:1.6}.drawer-backdrop{justify-items:end}.drawer-backdrop:has(.people-action-drawer),.drawer-backdrop:has(.rule-editor-drawer),.drawer-backdrop:has(.rule-history-panel){justify-items:center}.evidence-drawer{width:min(var(--attendance-size-drawer),100%);height:min(var(--attendance-size-drawer-height),100%);overflow-y:auto;padding:var(--attendance-space-5);border-left:var(--attendance-size-border) solid var(--attendance-border);background:var(--attendance-surface-inverse);box-shadow:var(--attendance-elevation-drawer)}.evidence-drawer.people-action-drawer,.evidence-drawer.rule-editor-drawer,.evidence-drawer.rule-history-panel{width:min(1040px,100%);height:auto;max-height:calc(100vh - var(--attendance-space-empty));border:var(--attendance-size-border) solid var(--attendance-border);border-radius:var(--attendance-radius-lg);box-shadow:var(--attendance-elevation-modal)}.evidence-list{display:grid;gap:var(--attendance-space-field);margin:0;padding:0;list-style:none}.evidence-list li{padding:var(--attendance-space-field);border:var(--attendance-size-border) solid var(--attendance-border-panel);border-radius:var(--attendance-radius-sm);background:var(--attendance-surface-filter)}.evidence-list code{white-space:normal;overflow-wrap:anywhere}.issue-queue{display:grid;gap:var(--attendance-space-field)}.issue-card{display:grid;gap:var(--attendance-space-2);padding:var(--attendance-space-3);border:var(--attendance-size-border) solid var(--attendance-danger-border-issue);border-radius:var(--attendance-radius-issue);background:var(--attendance-danger-surface-soft)}.issue-card-heading,.issue-card-footer{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--attendance-space-3)}.issue-card-heading strong,.issue-card-heading small{display:block}.issue-card-heading strong{color:var(--attendance-text-heading);font-size:var(--attendance-font-body)}.issue-card-heading small{margin-top:var(--attendance-space-compact);color:var(--attendance-secondary);font-size:var(--attendance-font-xs)}.issue-card p{margin:0;color:var(--attendance-text-label);font-size:var(--attendance-font-sm);line-height:1.5}.issue-type{flex:0 0 auto;padding:var(--attendance-space-tight) var(--attendance-space-label);border:var(--attendance-size-border) solid var(--attendance-danger-border-type);border-radius:var(--attendance-radius-hint);color:var(--attendance-danger);font-size:var(--attendance-font-xs)}.audit-timeline{display:grid;gap:var(--attendance-space-panel-lg);margin:0;padding:0 0 0 var(--attendance-space-tight);list-style:none}.audit-timeline li{display:grid;grid-template-columns:var(--attendance-size-audit-column) 1fr;gap:var(--attendance-space-field)}.timeline-dot{width:var(--attendance-size-timeline-dot);height:var(--attendance-size-timeline-dot);margin-top:var(--attendance-space-compact);border:var(--attendance-size-timeline-border) solid var(--attendance-primary);border-radius:var(--attendance-radius-round);background:var(--attendance-surface-inverse)}.audit-timeline strong,.audit-timeline small,.audit-timeline time{display:block}.audit-timeline strong{color:var(--attendance-text-heading);font-size:var(--attendance-font-sm)}.audit-timeline small,.audit-timeline time{margin-top:var(--attendance-space-compact);color:var(--attendance-secondary);font-size:var(--attendance-font-xs)}.audit-timeline time{color:var(--attendance-text-faint-strong)}.overview-progress-value{color:var(--attendance-primary);font-size:var(--attendance-font-lg)}.recalculation-basket{white-space:nowrap}.overview-progress-track{height:var(--attendance-space-control);overflow:hidden;border-radius:var(--attendance-radius-pill);background:var(--attendance-border-progress)}.overview-progress-track span{display:block;height:100%;border-radius:inherit;background:var(--attendance-primary);transition:width .2s ease}.overview-progress-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--attendance-space-2);margin:var(--attendance-space-panel-lg) 0 0;padding:0;list-style:none}.overview-progress-list li{display:grid;grid-template-columns:auto 1fr;gap:var(--attendance-space-2);min-width:0;padding:var(--attendance-space-control-lg);border:var(--attendance-size-border) solid var(--attendance-border-panel);border-radius:var(--attendance-radius-md);background:var(--attendance-surface-subtle)}.overview-progress-list li.complete{border-color:var(--attendance-success-border-strong);background:var(--attendance-success-surface)}.overview-step-mark{width:var(--attendance-size-step);height:var(--attendance-size-step);display:grid;place-items:center;border-radius:var(--attendance-radius-md);border:var(--attendance-size-border) solid var(--attendance-border-step);color:var(--attendance-secondary);font-size:var(--attendance-font-xs);font-weight:800}.overview-progress-list li.complete .overview-step-mark{border-color:var(--attendance-success-border-light);color:var(--attendance-success);background:var(--attendance-surface-inverse)}.overview-progress-list strong,.overview-progress-list small{display:block;overflow-wrap:anywhere}.overview-progress-list strong{color:var(--attendance-text-heading);font-size:var(--attendance-font-sm)}.overview-progress-list small{margin-top:var(--attendance-space-compact);color:var(--attendance-secondary);font-size:var(--attendance-font-xs);line-height:1.45}.overview-lower-grid{display:grid}.overview-actions{display:grid;gap:var(--attendance-space-2);margin:0;padding:0;list-style:none}.overview-actions li{min-width:0}.overview-actions a,.overview-action-muted>span{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--attendance-space-tight) var(--attendance-space-2);align-items:center;padding:var(--attendance-space-panel-lg);border:var(--attendance-size-border) solid var(--attendance-border-panel);border-radius:var(--attendance-radius-md);background:var(--attendance-surface-subtle)}.overview-actions a:hover{border-color:var(--attendance-border-focus);background:var(--attendance-primary-surface)}.overview-actions strong,.overview-actions small{grid-column:1;display:block}.overview-actions strong{color:var(--attendance-text-heading);font-size:var(--attendance-font-sm)}.overview-actions small{color:var(--attendance-secondary);font-size:var(--attendance-font-xs);line-height:1.45}.overview-actions a>span{grid-column:2;grid-row:1 / span 2;color:var(--attendance-primary);font-size:var(--attendance-font-lg)}.overview-action-muted>span{color:var(--attendance-secondary)}@media(max-width:1300px){.overview-progress-list{grid-template-columns:repeat(3,minmax(0,1fr))}}.decision-panel textarea{margin:var(--attendance-space-tight) 0 var(--attendance-space-control-lg)}.review-meta{display:flex;gap:var(--attendance-space-section);color:var(--attendance-secondary);font-size:var(--attendance-font-sm);margin-bottom:var(--attendance-space-control-lg)}.role-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:var(--attendance-space-section)}.role-card{display:grid;gap:var(--attendance-space-label);padding:var(--attendance-space-panel-xl);box-shadow:none}.role-card strong{color:var(--attendance-text-heading);font-size:var(--attendance-font-md)}.role-marker{width:var(--attendance-size-role-marker);height:var(--attendance-size-role-marker);display:grid;place-items:center;border-radius:var(--attendance-radius-md);font-weight:800;font-size:var(--attendance-font-sm)}.role-marker.admin{color:var(--attendance-accent-purple);background:var(--attendance-accent-purple-surface)}.role-marker.ops{color:var(--attendance-primary);background:var(--attendance-primary-surface)}.role-marker.audit{color:var(--attendance-success);background:var(--attendance-success-surface)}.contract-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--attendance-space-panel)}.contract-grid span{padding:var(--attendance-space-control-lg);border-radius:var(--attendance-radius-md);background:var(--attendance-surface-contract);color:var(--attendance-secondary);font-size:var(--attendance-font-sm)}.contract-grid strong{display:block;margin-bottom:var(--attendance-space-control);color:var(--attendance-text-heading);font-size:var(--attendance-font-sm)}.auth-page{min-height:100vh;display:grid;place-items:center;padding:var(--attendance-space-6);background:radial-gradient(circle at top right,var(--attendance-auth-glow) 0,transparent 40%),var(--attendance-bg)}.auth-card{width:min(var(--attendance-size-auth),100%);padding:var(--attendance-space-7);border:var(--attendance-size-border) solid var(--attendance-border);border-radius:var(--attendance-radius-xl);background:var(--attendance-surface-inverse);box-shadow:var(--attendance-elevation-auth)}.auth-heading{text-align:center;margin-bottom:var(--attendance-space-6)}.auth-heading h1{margin:var(--attendance-space-inline) 0 var(--attendance-space-2);color:var(--attendance-text-heading);font-size:var(--attendance-font-xl)}.auth-heading p{margin:0;color:var(--attendance-secondary);font-size:var(--attendance-font-body);line-height:1.6}.stack-form{display:grid;gap:var(--attendance-space-panel-lg)}.stack-form label{color:var(--attendance-text-label)}.stack-form input{min-height:var(--attendance-size-auth-input)}.auth-footnote{margin:var(--attendance-space-section) 0 0;color:var(--attendance-text-faint-strong);text-align:center;font-size:var(--attendance-font-xs);line-height:1.5}.form-error{color:var(--attendance-danger);font-size:var(--attendance-font-sm)}@media(max-width:1100px){.main-area{padding:var(--attendance-space-6)}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.two-column{grid-template-columns:1fr}.blocker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rule-form{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:900px){.app-shell{display:block}.sidebar{width:100%;padding:var(--attendance-space-mobile-sidebar-y) var(--attendance-space-mobile-gutter)}.brand-lockup{padding:0 var(--attendance-space-control) var(--attendance-space-3)}.primary-nav{display:flex;position:relative;overflow-x:auto;gap:var(--attendance-space-control);padding-bottom:var(--attendance-space-mobile-nav-bottom);scrollbar-width:thin}.primary-nav:after{content:"横向滑动查看更多";position:sticky;right:0;flex:0 0 auto;align-self:center;padding:var(--attendance-space-control) var(--attendance-space-label);border:var(--attendance-size-border) solid var(--attendance-border-nav-hint);border-radius:var(--attendance-radius-hint);color:var(--attendance-text-nav-hint);background:var(--attendance-surface-inverse);font-size:var(--attendance-font-brand-subtitle);pointer-events:none}.nav-item{flex:0 0 auto;padding:var(--attendance-space-2) var(--attendance-space-panel)}.nav-icon,.sidebar-footnote{display:none}.main-area{width:auto;padding:var(--attendance-space-mobile-main-y) var(--attendance-space-mobile-gutter) var(--attendance-space-mobile-bottom)}.topbar,.workspace-hero,.page-intro{display:grid;gap:var(--attendance-space-panel-lg);align-items:start}.account-menu{justify-content:space-between}.account-copy{text-align:left}.hero-actions,.button-row{justify-content:start}.progress-strip{overflow-x:auto;scrollbar-width:thin}.progress-step{min-width:var(--attendance-size-progress-mobile)}.metric-grid,.info-grid,.role-grid,.contract-grid,.blocker-grid,.inline-form,.rule-form{grid-template-columns:1fr}.upload-row,.create-month-row{align-items:stretch;flex-direction:column}.upload-row .secondary-button,.create-month-row .primary-button{width:100%}.panel{padding:var(--attendance-space-panel-lg)}.panel-heading{flex-wrap:wrap}.panel-heading>.muted{margin-left:auto}.workspace-hero h2,.page-intro h2{font-size:var(--attendance-font-mobile-title)}}@media(min-width:901px){.sidebar-collapsed .sidebar-toggle{left:var(--attendance-size-sidebar-collapsed);right:auto}}@media(max-width:900px){.sidebar-collapsed .sidebar{width:100%;padding:var(--attendance-space-mobile-sidebar-y) var(--attendance-space-mobile-gutter)}.sidebar-toggle{display:none}.sidebar-collapsed .brand-lockup>div:not(.brand-mark),.sidebar-collapsed .nav-item>span{display:block}.sidebar-collapsed .nav-item{justify-content:flex-start;padding-right:var(--attendance-space-panel);padding-left:var(--attendance-space-panel)}}@media(max-width:900px){.date-controls{grid-template-columns:1fr 1fr}.date-controls .wide-field{grid-column:1 / -1}.date-controls>.secondary-button{width:100%}.run-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.preview-footer{align-items:stretch;flex-direction:column}.preview-footer .primary-button{width:100%}.global-state{align-items:flex-start}.global-state-actions{margin-top:var(--attendance-space-tight)}.evidence-drawer{width:100%;height:100%}.confirm-dialog{padding:var(--attendance-space-section)}}@media(max-width:900px){.template-table{min-width:var(--attendance-size-template-min);table-layout:fixed}.template-table th:nth-child(1),.template-table td:nth-child(1){width:var(--attendance-size-template-name);white-space:nowrap}.template-table th:nth-child(2),.template-table td:nth-child(2){width:var(--attendance-size-template-key)}.template-table th:nth-child(3),.template-table td:nth-child(3){width:var(--attendance-size-template-version)}.template-table th:nth-child(4),.template-table td:nth-child(4){width:var(--attendance-size-template-status)}.template-table th:nth-child(5),.template-table td:nth-child(5){width:var(--attendance-size-template-schema)}.template-table td:nth-child(5) code{display:block;max-width:var(--attendance-size-template-schema);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media(max-width:480px){.progress-strip{position:relative}.progress-strip:after{content:"→";position:sticky;right:0;display:inline-flex;width:var(--attendance-size-progress-cue);flex:0 0 var(--attendance-size-progress-cue);align-items:center;justify-content:center;align-self:center;padding:var(--attendance-space-tight) 0;border:var(--attendance-size-border) solid var(--attendance-border-nav-hint);border-radius:var(--attendance-radius-hint);color:var(--attendance-text-nav-hint);background:var(--attendance-surface-inverse);font-size:var(--attendance-font-md);font-weight:800;pointer-events:none}}@media(max-width:480px){.primary-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--attendance-space-1);overflow:visible}.primary-nav:after{content:none}.nav-item{min-width:0;justify-content:center;padding:var(--attendance-space-2) var(--attendance-space-label);text-align:center}}@media(max-width:480px){.table-wrap:not(.settings-table-wrap){padding-top:var(--attendance-space-panel)}.table-wrap:not(.settings-table-wrap):before{content:"左右滑动查看全部字段";display:block;margin:calc(-1 * var(--attendance-space-panel)) 0 var(--attendance-space-label);padding:var(--attendance-space-label) var(--attendance-space-2);border-bottom:var(--attendance-size-border) solid var(--attendance-border-panel);color:var(--attendance-text-nav-hint);background:var(--attendance-surface-filter);font-size:var(--attendance-font-xs);text-align:right}.settings-table-wrap{overflow:visible}.settings-table{width:100%;min-width:0;table-layout:auto}.settings-table thead{display:none}.settings-table tbody,.settings-table tr,.settings-table td{display:block;width:100%}.settings-table tbody tr{padding:var(--attendance-space-panel) 0;border-bottom:var(--attendance-size-border) solid var(--attendance-border-table)}.settings-table tbody tr:last-child{border-bottom:0}.settings-table td{display:grid;grid-template-columns:var(--attendance-size-mobile-label) minmax(0,1fr);gap:var(--attendance-space-2);align-items:start;padding:var(--attendance-space-label) 0;border-bottom:0}.settings-table.template-table td{width:100%}.settings-table td:before{content:attr(data-label);color:var(--attendance-text-table-head);font-size:var(--attendance-font-xs);font-weight:800}.settings-table td>*{min-width:0}.settings-table td code{max-width:100%;white-space:normal;overflow-wrap:anywhere}.settings-table td select{min-width:0}.progress-strip{display:flex;flex-wrap:nowrap;gap:var(--attendance-space-2);overflow-x:auto;overflow-y:hidden}.progress-strip:after{content:none;display:none}.progress-step{min-width:var(--attendance-size-progress-mobile);flex:0 0 var(--attendance-size-progress-mobile);padding:var(--attendance-space-2);border:var(--attendance-size-border) solid var(--attendance-border-panel);border-radius:var(--attendance-radius-md);background:var(--attendance-surface-subtle)}.progress-line{display:block;flex:0 0 var(--attendance-space-7)}}@media(max-width:900px){.sidebar{position:sticky;top:0;z-index:30}.brand-row{min-height:var(--attendance-size-button)}.mobile-menu-toggle{display:inline-flex}.primary-nav{display:none;overflow:visible;padding:0}.sidebar.sidebar-open .primary-nav{display:grid}.nav-item{width:100%;justify-content:flex-start}.nav-icon{display:grid}}@media(max-width:900px){.mobile-menu-toggle{position:absolute;top:var(--attendance-space-4);right:var(--attendance-space-4);z-index:calc(var(--attendance-layer-sidebar) + 1)}.primary-nav{overflow-x:hidden}.primary-nav:after{content:none}}@media(max-width:480px){.primary-nav{display:none;grid-template-columns:repeat(2,minmax(0,1fr))}.sidebar.sidebar-open .primary-nav{display:grid}.nav-item{justify-content:flex-start}.overview-progress-list{grid-template-columns:1fr}}@media(max-width:480px){.filter-bar{align-items:stretch}.filter-fields{width:100%;min-width:0;flex-direction:column;align-items:stretch}.filter-fields input,.filter-fields select{width:100%;min-width:0}}@media(max-width:900px){.sidebar{width:100%;height:auto;min-height:0;flex-basis:100%;align-self:stretch;box-shadow:var(--attendance-sidebar-shadow);touch-action:pan-y}.sidebar-collapsed .sidebar{width:100%;height:auto;min-height:0;flex-basis:100%}.sidebar-toggle{display:none}.brand-row{min-height:var(--attendance-size-button);padding:0 var(--attendance-space-control);border-bottom:0}.brand-lockup{gap:var(--attendance-space-3)}.brand-text,.sidebar-collapsed .brand-text{max-width:var(--attendance-size-sidebar-brand-text);opacity:1;overflow:visible;transform:none}.sidebar-collapsed .nav-label{max-width:var(--attendance-size-sidebar-nav-label);opacity:1;overflow:hidden;transform:none}.sidebar-collapsed .nav-section-heading{max-height:var(--attendance-size-sidebar-section-heading);opacity:1;overflow:hidden;transform:none}.sidebar-collapsed .nav-item{justify-content:flex-start;gap:var(--attendance-space-control-lg);padding-right:var(--attendance-space-panel);padding-left:var(--attendance-space-panel)}.sidebar-footer{display:grid;margin-top:var(--attendance-space-2)}}:root{--attendance-size-sidebar: 224px;--attendance-size-sidebar-collapsed: 68px;--attendance-surface-sidebar: #fff;--attendance-border-sidebar: #dce5ee;--attendance-space-page-gutter: 24px;--attendance-space-shell: 0px;--attendance-elevation-card: none;--attendance-elevation-auth: none}.app-shell{height:100dvh;min-height:0;overflow:hidden;background:var(--attendance-bg)}.sidebar{height:100dvh;min-height:0;box-shadow:none;overflow-y:auto}.brand-row{min-height:64px;padding:0 var(--attendance-space-4);border-bottom:1px solid var(--attendance-border)}.brand-lockup{padding:0}.brand-name{font-size:16px}.brand-subtitle,.brand-pro-badge,.brand-title-row{display:none}.primary-nav{gap:4px;padding:16px 8px}.nav-section-heading{display:none}.nav-item{min-height:40px;padding:9px 12px;border-radius:6px;color:var(--attendance-secondary)}.nav-item.active{color:var(--attendance-primary);background:var(--attendance-primary-surface);box-shadow:inset 3px 0 0 var(--attendance-primary)}.nav-item:hover{color:var(--attendance-primary);background:#f7f9fc}.sidebar-footer{display:flex;justify-content:center;padding:12px;border-top:1px solid var(--attendance-border)}.sidebar-shortcut{color:var(--attendance-secondary);font-size:12px}.main-area{height:100dvh;width:auto;overflow-y:auto;overflow-x:hidden;padding:0 var(--attendance-space-page-gutter) 32px}.topbar{position:sticky;top:0;z-index:20;min-height:64px;align-items:center;margin:0 -24px 20px;padding:0 24px;border-bottom:1px solid var(--attendance-border);background:var(--attendance-surface)}.topbar h1{margin:0;font-size:23px}.topbar .eyebrow,.page-intro>div>.eyebrow,.section-heading .eyebrow,.matrix-eyebrow,.workspace-topbar-title .eyebrow,.download-menu .eyebrow,.record-header .eyebrow,.evidence-drawer .eyebrow{display:none}.account-menu{gap:8px}.account-copy span{display:none}.account-menu .ghost-button{padding:6px 8px;border:0}.global-state{position:sticky;top:64px;z-index:19;margin:0 -24px;border-radius:0}.task-center{position:sticky;top:64px;z-index:18;margin:0 -24px;padding:0 24px;background:var(--attendance-surface)}.page-intro,.workspace-hero{margin-bottom:16px;padding:0;border:0;background:transparent;box-shadow:none}.page-intro p,.workspace-hero p,.section-heading p,.tab-copy,.section-description{max-width:72ch;margin-top:4px;font-size:13px;line-height:1.45}.panel,.blocker-panel,.processing-workbench>section,.record-panel{margin-bottom:16px;padding:16px;border:1px solid var(--attendance-border);border-radius:8px;background:var(--attendance-surface);box-shadow:none}.panel-heading{min-height:32px;margin-bottom:12px}.panel-heading h3,.section-heading h2,.record-header h3{font-size:17px}.metric-grid,.kpi-grid{display:flex;flex-wrap:wrap;gap:0;margin:0 0 16px;padding:12px 0;border:1px solid var(--attendance-border);border-radius:8px;background:var(--attendance-surface)}.metric-card,.kpi-card{min-width:150px;flex:1 1 150px;padding:0 16px;border:0;border-right:1px solid var(--attendance-border);border-radius:0;background:transparent;box-shadow:none}.metric-card:last-child,.kpi-card:last-child{border-right:0}.metric-card strong,.kpi-card strong{font-size:24px}.metric-card small{color:var(--attendance-secondary)}.blocker-panel{border-left:3px solid var(--attendance-danger);background:#fff8f8}.blocker-grid{grid-template-columns:1fr;gap:4px}.blocker-card{padding:4px 0;border:0;background:transparent}.overview-progress{padding:16px}.overview-progress-list{display:flex;gap:0;margin-top:12px}.overview-progress-list li{flex:1;padding:8px;border:0;border-radius:0;background:transparent}.overview-progress-list li.complete{background:transparent}.overview-step-mark{border-radius:50%}.two-column{gap:16px}.table-wrap{border:1px solid var(--attendance-border);border-radius:8px}.table-wrap table{margin:0}.table-wrap th{position:sticky;top:0;z-index:2;background:#f7f9fc}.table-wrap th,.table-wrap td{height:42px;padding:8px 10px}.filter-bar,.matrix-toolbar,.quick-filter-bar{gap:8px;padding:0;border:0;background:transparent}.filter-bar .eyebrow{display:none}.evidence-drawer{width:min(420px,100%);height:100dvh;border-left:1px solid var(--attendance-border);border-radius:0}.drawer-backdrop:has(.people-action-drawer),.drawer-backdrop:has(.rule-editor-drawer),.drawer-backdrop:has(.rule-history-panel){justify-items:end}.evidence-drawer.people-action-drawer,.evidence-drawer.rule-editor-drawer,.evidence-drawer.rule-history-panel{width:min(420px,100%);height:100dvh;max-height:none;border:0;border-left:1px solid var(--attendance-border);border-radius:0}.auth-page{padding:24px;background:var(--attendance-bg)}.auth-card{width:min(400px,100%);padding:24px;border-radius:8px;box-shadow:none}.auth-heading{margin-bottom:20px;text-align:left}.auth-heading h1{font-size:24px}.auth-footnote{display:none}.page-tabs{display:flex;gap:4px;overflow-x:auto;margin:0 0 16px;border-bottom:1px solid var(--attendance-border)}.page-tabs a{flex:0 0 auto;padding:8px 10px;color:var(--attendance-secondary);font-size:13px;text-decoration:none}.page-tabs a:hover,.page-tabs a:focus-visible{color:var(--attendance-primary);outline:0;box-shadow:inset 0 -2px 0 var(--attendance-primary)}@media(max-width:900px){.app-shell{display:block;overflow:visible;overflow-x:clip}.sidebar{position:fixed;inset:0 auto 0 0;width:min(280px,86vw);height:100dvh;overflow-x:hidden;touch-action:pan-y;transform:translate(-102%);transition:transform .2s ease;z-index:60}.sidebar.sidebar-open{transform:translate(0)}.sidebar-collapsed .sidebar{width:min(280px,86vw)}.main-area{height:auto;min-height:100dvh;overflow:visible;overflow-x:clip;padding:0 14px 24px}.topbar{margin:0 -14px 16px;padding:0 14px}.mobile-menu-toggle{position:fixed;top:var(--attendance-space-4);right:var(--attendance-space-4);display:inline-flex}.app-shell.sidebar-open .mobile-menu-toggle{left:min(280px,86vw);right:auto}.primary-nav,.sidebar.sidebar-open .primary-nav{display:grid;grid-template-columns:1fr;overflow-x:hidden}.sidebar-footer{margin-top:auto}.metric-grid,.kpi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.metric-card,.kpi-card{min-width:0;padding:8px 12px;border-right:0}.overview-progress-list{overflow-x:auto}.overview-progress-list li{min-width:130px}.global-state,.task-center{margin:0 -14px}.evidence-drawer,.evidence-drawer.people-action-drawer,.evidence-drawer.rule-editor-drawer,.evidence-drawer.rule-history-panel{width:100vw}.auth-page{padding:16px}.auth-card{padding:20px}}@media(min-width:901px){.topbar{padding-left:calc(var(--attendance-space-page-gutter) + var(--attendance-size-sidebar-toggle-width))}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
