:root{color:#1f2937;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f3f4f6}*{box-sizing:border-box}body{margin:0}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(100%,360px);display:grid;gap:16px;padding:28px;background:#fff;border-radius:12px;box-shadow:0 12px 28px #0f172a1f}.login-card h1{margin:0 0 8px;font-size:24px}.login-card label{display:grid;gap:6px;font-size:14px}.login-card input,.login-card button{min-height:40px;border-radius:6px;font:inherit}.login-card input{border:1px solid #cbd5e1;padding:8px 10px}.login-card button{border:0;background:#2563eb;color:#fff;cursor:pointer}.login-card button:disabled{cursor:wait;opacity:.7}.form-error{margin:0;color:#b91c1c;font-size:14px}.modal-error{padding:10px;background:#fef2f2;border-radius:7px}.route-error{margin:12px 24px;color:#b91c1c}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgb(37 99 235 / 35%);outline-offset:2px}.app-layout{min-height:100vh;display:grid;grid-template-columns:220px minmax(0,1fr)}.app-sidebar{display:flex;flex-direction:column;gap:28px;padding:28px 16px;background:#172554;color:#fff}.app-brand{margin:0 8px;font-size:18px;font-weight:700}.app-sidebar nav{display:grid;gap:6px}.nav-link{padding:10px 12px;color:#dbeafe;border-radius:8px;text-decoration:none}.nav-link.router-link-active{background:#2563eb;color:#fff}.nav-link-disabled{color:#93a4c7;cursor:not-allowed}.logout-button{margin-top:auto;padding:9px 12px;color:#dbeafe;text-align:left;background:transparent;border:1px solid #49618e;border-radius:7px}.app-content{min-width:0}.employees-page,.attendance-records-page,.work-calendar-page{max-width:1500px;padding:32px;margin:0 auto}.attendance-rules-page{max-width:1100px;padding:32px;margin:0 auto}.page-header{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:24px}.page-header h1{margin:2px 0 0;font-size:28px}.eyebrow{margin:0;color:#64748b;font-size:14px}.page-actions,.drawer-actions,.confirmation-actions,.table-actions{display:flex;gap:8px;align-items:center}.primary-button,.secondary-button,.danger-button{min-height:38px;padding:8px 13px;border-radius:7px}.primary-button{color:#fff;background:#2563eb;border:1px solid #2563eb}.secondary-button{color:#1e3a8a;background:#fff;border:1px solid #93c5fd}.danger-button{color:#b91c1c;background:#fff;border:1px solid #fca5a5}.text-button{padding:4px;color:#1d4ed8;background:transparent;border:0}.text-button.danger-button{padding:4px;border:0}.summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:20px 0}.summary-grid article{display:grid;gap:8px;padding:20px;background:#fff;border:1px solid #e2e8f0;border-radius:10px}.summary-grid span{color:#64748b;font-size:14px}.summary-grid strong{font-size:28px}.attendance-rules-readonly{margin:0;color:#64748b;font-size:14px}.attendance-rule-card{display:grid;gap:14px;padding:22px;margin:20px 0 28px;background:#fff;border:1px solid #e2e8f0;border-radius:10px}.attendance-rule-card h2,.attendance-rule-card p{margin:0}.attendance-rule-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.attendance-rule-values div{display:grid;gap:5px;padding:14px;background:#f8fafc;border-radius:8px}.attendance-rule-values span{color:#64748b;font-size:13px}.attendance-rule-values strong{font-size:20px}.attendance-rule-note{color:#475569;font-size:14px}.attendance-rule-section-heading{margin-bottom:12px}.attendance-rule-section-heading h2{margin:0 0 5px}.attendance-rule-section-heading p{margin:0;color:#64748b}.attendance-rule-table-wrap{overflow-x:auto;background:#fff;border:1px solid #e2e8f0;border-radius:10px}.employee-toolbar{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}.employee-toolbar input,.employee-toolbar select{min-height:38px;padding:7px 10px;background:#fff;border:1px solid #cbd5e1;border-radius:7px}.search-field{min-width:min(100%,280px);flex:1}.search-field input{width:100%}.employee-table-wrap{overflow-x:auto;background:#fff;border:1px solid #e2e8f0;border-radius:10px}.employee-table-wrap table{min-width:980px}.pending-profile-value{color:#64748b;background:#f8fafc}.employee-loading{margin:0;padding:10px 16px;color:#1d4ed8;background:#eff6ff}table{width:100%;border-collapse:collapse;white-space:nowrap}th,td{padding:13px 16px;text-align:left;border-bottom:1px solid #e2e8f0}th{color:#475569;font-size:13px;background:#f8fafc}.empty-cell{color:#64748b;text-align:center}.status-tag{display:inline-block;padding:3px 8px;font-size:13px;border-radius:999px}.status-active{color:#166534;background:#dcfce7}.status-left{color:#9a3412;background:#ffedd5}.status-disabled{color:#991b1b;background:#fee2e2}.drawer-backdrop{position:fixed;inset:0;display:flex;justify-content:flex-end;padding:16px;background:#0f172a73;z-index:10}.employee-drawer{width:min(100%,470px);height:100%;padding:24px;overflow-y:auto;background:#fff;border-radius:12px;box-shadow:0 20px 50px #0f172a40}.import-drawer{width:min(100%,1120px)}.drawer-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.drawer-header h2{margin:0;font-size:20px}.import-stage{margin:5px 0 0;color:#64748b;font-size:13px}.import-message{margin-top:16px}.import-select-panel{display:grid;gap:16px;margin-top:24px}.import-select-panel label{display:grid;gap:7px;color:#334155;font-size:14px}.import-select-panel input,.import-select-panel select,.import-control select{min-height:39px;padding:8px 10px;border:1px solid #cbd5e1;border-radius:7px;background:#fff}.import-hint{margin:0;color:#64748b;font-size:13px}.import-memory-hint{margin-top:12px}.import-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:20px 0 14px}.import-counts span{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px;color:#475569;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px}.import-counts strong{color:#0f172a;font-size:20px}.import-table-wrap{overflow:auto;max-height:calc(100vh - 260px);border:1px solid #e2e8f0;border-radius:8px}.import-preview-table{min-width:1020px;white-space:normal}.import-preview-table td{vertical-align:top}.import-values{min-width:320px}.import-value-pair{display:grid;grid-template-columns:64px 1fr 1fr;gap:6px;padding:3px 0;font-size:12px}.import-value-pair strong{color:#475569}.import-classification{display:inline-block;min-width:78px;padding:4px 8px;color:#1e3a8a;background:#dbeafe;border-radius:999px;text-align:center;font-size:12px}.import-control{display:grid;gap:5px;min-width:190px;margin-bottom:8px;color:#475569;font-size:12px}.import-errors{min-width:190px;color:#b91c1c;font-size:13px}.import-errors p{margin:0 0 6px}.attendance-import-table small,.attendance-table-wrap small{display:block;margin-top:4px;color:#64748b}.attendance-import-table select{min-height:36px;padding:6px 8px;border:1px solid #cbd5e1;border-radius:6px}.attendance-notices{max-height:120px;padding:10px 14px;margin-bottom:12px;overflow:auto;color:#92400e;background:#fffbeb;border-radius:8px}.attendance-notices p{margin:4px 0}.attendance-preview-errors{padding:10px 14px;margin-bottom:12px;color:#b91c1c;background:#fef2f2;border-radius:8px}.attendance-preview-errors p{margin:4px 0}.import-notices{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.import-notice{padding:12px 14px;border:1px solid;border-radius:8px}.import-notice-warning{color:#92400e;background:#fffbeb;border-color:#fde68a}.import-notice-error{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.import-notice-head{display:flex;align-items:flex-start;gap:10px}.import-notice-badge{flex:none;padding:2px 8px;font-size:12px;line-height:20px;color:#fff;border-radius:999px}.import-notice-warning .import-notice-badge{background:#d97706}.import-notice-error .import-notice-badge{background:#dc2626}.import-notice-body{flex:1 1 auto;min-width:0}.import-notice-message{margin:0;font-weight:600}.import-notice-scope,.import-notice-rows{margin:4px 0 0;font-size:13px;opacity:.85}.import-notice-hint{margin:8px 0 0;font-size:13px;line-height:1.6;opacity:.95}.import-notice-detail{padding-top:10px;margin-top:10px;border-top:1px dashed currentcolor}.import-notice-employees{max-height:200px;padding:0;margin:0;overflow:auto;list-style:none}.import-notice-employees li{display:flex;align-items:baseline;gap:8px;padding:4px 0}.import-notice-employees small{flex:1 1 auto;font-size:12px;opacity:.75}.conflict-section-head{margin:18px 0 0}.conflict-section-head h3{margin:0 0 4px;font-size:15px}.import-blocked-reason{padding:10px 14px;margin:12px 0 0;color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:8px}.batch-actions{display:flex;justify-content:flex-end;gap:8px;margin:10px 0}.confirmation-summary,.result-panel{padding:22px;margin-top:22px;line-height:1.65;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px}.confirmation-summary p,.result-panel p{margin:0 0 10px}.committed-notice{padding:10px 14px;color:#166534;background:#dcfce7;border-radius:8px}.calendar-month-switcher{display:flex;align-items:center;gap:12px}.calendar-month-switcher strong{min-width:110px;text-align:center}.calendar-help{margin:-10px 0 18px;color:#64748b;font-size:14px}.work-calendar-table-wrap{overflow-x:auto;background:#fff;border:1px solid #e2e8f0;border-radius:10px}.work-calendar-table-wrap table{min-width:1120px}.calendar-type-tag{display:inline-block;padding:3px 8px;border-radius:999px;font-size:13px}.calendar-workday{color:#166534;background:#dcfce7}.calendar-rest-day{color:#9a3412;background:#ffedd5}.calendar-remark{max-width:300px;overflow:hidden;text-overflow:ellipsis}.calendar-modal-backdrop{align-items:center;justify-content:center}.calendar-modal{width:min(100%,520px);max-height:100%;padding:24px;overflow-y:auto;background:#fff;border-radius:12px;box-shadow:0 20px 50px #0f172a40}.calendar-override-form{display:grid;gap:14px;margin-top:20px}.calendar-override-form label{display:grid;gap:6px;color:#334155;font-size:14px}.calendar-override-form input,.calendar-override-form select,.calendar-override-form textarea{width:100%;min-height:39px;padding:8px 10px;background:#fff;border:1px solid #cbd5e1;border-radius:7px;resize:vertical}.attendance-toolbar{display:grid;grid-template-columns:150px minmax(220px,1fr) 160px minmax(160px,.6fr) 150px;gap:10px;margin:18px 0}.attendance-toolbar label{display:grid;gap:5px;color:#475569;font-size:12px}.attendance-toolbar input,.attendance-toolbar select{width:100%;min-height:39px;padding:7px 10px;background:#fff;border:1px solid #cbd5e1;border-radius:7px}.attendance-table-wrap table{min-width:1280px}.attendance-record-drawer{width:min(100%,980px)}.drawer-header p{margin:5px 0 0;color:#64748b;font-size:13px}.attendance-detail-content,.attendance-edit-form{display:grid;gap:16px;margin-top:20px}.record-section{padding:16px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:9px}.record-section h3,.record-section h4{margin:0 0 12px}.record-section h4{margin-top:12px;color:#475569}.record-section p{margin:5px 0;line-height:1.5}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.readonly-grid,.metric-grid,.fact-editor{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.readonly-grid label,.metric-grid label,.fact-editor label{display:grid;gap:5px;color:#475569;font-size:12px}.readonly-grid input,.metric-grid input,.fact-editor input,.fact-editor select,.fact-editor textarea{min-height:37px;padding:7px 9px;background:#fff;border:1px solid #cbd5e1;border-radius:6px}.readonly-grid input:disabled{color:#475569;background:#e2e8f0}.fact-editor{padding:12px;margin-top:10px;background:#fff;border:1px solid #dbeafe;border-radius:8px}.fact-editor .wide-field{grid-column:1 / -1}.fact-card{padding:10px 12px;margin-top:8px;background:#fff;border-left:3px solid #93c5fd}.metric-list{display:grid;grid-template-columns:minmax(170px,1fr) minmax(80px,.4fr);margin:0}.metric-list dt,.metric-list dd{padding:7px 9px;margin:0;border-bottom:1px solid #e2e8f0}.metric-list dd{text-align:right}.audit-list{display:grid;gap:8px;padding-left:22px}.audit-list li span{display:block;color:#64748b;font-size:12px}.import-footer{position:sticky;bottom:-24px;padding:16px 0 0;background:#fff}.employee-form{display:grid;gap:14px;margin-top:22px}.employee-form label{display:grid;gap:6px;font-size:14px;color:#334155}.employee-form input{min-height:39px;padding:8px 10px;border:1px solid #cbd5e1;border-radius:7px}.employee-form input:disabled,.employee-form input:read-only{color:#475569;background:#f1f5f9}.drawer-actions{justify-content:flex-end;margin-top:10px}.confirmation-card{position:fixed;right:32px;bottom:32px;width:min(calc(100% - 32px),470px);padding:20px;background:#fff;border:1px solid #cbd5e1;border-radius:10px;box-shadow:0 15px 35px #0f172a38;z-index:11}.confirmation-card p{margin:0 0 16px;line-height:1.5}.confirmation-actions{justify-content:flex-end;flex-wrap:wrap}.pagination{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:16px;color:#475569;font-size:14px}.bonus-threshold-page,.attendance-summary-page{max-width:1440px;padding:32px;margin:0 auto}.threshold-workdays,.summary-month-meta{margin:0 0 16px;color:#475569}.threshold-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.threshold-card{padding:22px;background:#fff;border:1px solid #e2e8f0;border-radius:10px}.threshold-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.threshold-card-header h2{margin:0;font-size:20px}.threshold-fields{display:grid;grid-template-columns:minmax(150px,.6fr) minmax(220px,1fr);gap:14px;margin-top:20px}.threshold-fields label,.summary-toolbar label{display:grid;gap:6px;color:#475569;font-size:13px}.threshold-fields input,.summary-toolbar input,.summary-toolbar select{width:100%;min-height:39px;padding:7px 10px;background:#fff;border:1px solid #cbd5e1;border-radius:7px}.threshold-warning{padding:10px 12px;color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:8px}.threshold-state-note{color:#64748b;font-size:13px}.threshold-actions{min-height:42px}.summary-toolbar{display:grid;grid-template-columns:160px minmax(280px,1fr) 180px;gap:12px;margin-bottom:16px}.attendance-summary-totals{grid-template-columns:repeat(8,minmax(0,1fr))}.attendance-summary-totals article{padding:16px}.attendance-summary-totals strong{font-size:22px}.summary-threshold-guide{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px;color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:10px}.summary-threshold-guide p{margin:5px 0 0}.attendance-summary-page td small{display:block;margin-top:4px;color:#64748b;font-size:12px}.summary-drawer{width:min(100%,1120px)}.summary-detail-section{padding:16px;margin-top:16px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:9px}.summary-detail-section h3{margin:0 0 14px}.summary-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:0;background:#e2e8f0}.summary-detail-grid div{display:grid;grid-template-columns:minmax(120px,.7fr) minmax(0,1fr);gap:10px;padding:10px 12px;background:#fff}.summary-detail-grid dt{color:#64748b}.summary-detail-grid dd{margin:0;font-weight:600}.summary-config-line{margin:0;color:#475569;line-height:1.7}.summary-days-header{display:flex;align-items:center;justify-content:space-between;gap:14px}.summary-toggle{color:#475569;font-size:13px}.summary-toggle input{margin-right:6px}.summary-days-table-wrap table{min-width:900px}.summary-day-abnormal td{background:#fff7ed}.summary-total-row th,.summary-total-row td{font-weight:700;background:#eff6ff}.summary-consistency-warning{padding:12px 14px;color:#991b1b;background:#fee2e2;border:1px solid #fecaca;border-radius:8px}.summary-exclusion-note{padding:11px 14px;margin:-8px 0 18px;color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:8px}.summary-exception-notice{padding:10px 12px;color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px}.summary-exception-notice-error{color:#991b1b;background:#fef2f2;border-color:#fecaca}.summary-exception-dialog{position:fixed;top:50%;left:50%;z-index:12;width:min(calc(100% - 32px),520px);padding:22px;background:#fff;border:1px solid #cbd5e1;border-radius:12px;box-shadow:0 20px 50px #0f172a47;transform:translate(-50%,-50%)}.summary-exception-dialog h3{margin:0 0 10px}.summary-exception-dialog>p{color:#475569;line-height:1.6}.summary-exception-dialog label{display:grid;gap:7px;margin:16px 0;color:#334155;font-weight:600}.summary-exception-dialog textarea{width:100%;padding:10px;font:inherit;resize:vertical;border:1px solid #cbd5e1;border-radius:8px}.danger-text{color:#b91c1c}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:760px){.app-layout{grid-template-columns:1fr}.app-sidebar{gap:12px;padding:14px 16px}.app-sidebar nav{display:flex;overflow-x:auto}.logout-button{margin-top:0}.employees-page,.attendance-records-page,.work-calendar-page,.bonus-threshold-page,.attendance-summary-page,.attendance-rules-page{padding:20px 16px}.page-header{align-items:flex-start;flex-direction:column}.calendar-month-switcher{width:100%;justify-content:space-between}.summary-grid,.attendance-rule-values{grid-template-columns:1fr}.import-counts{grid-template-columns:repeat(2,minmax(0,1fr))}.attendance-toolbar,.readonly-grid,.metric-grid,.fact-editor,.threshold-card-grid,.threshold-fields,.summary-toolbar,.summary-detail-grid{grid-template-columns:1fr}.attendance-summary-totals{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-threshold-guide,.summary-days-header{align-items:flex-start;flex-direction:column}}:root{--warm-canvas: #fff8ef;--warm-surface: #fffdf9;--warm-ink: #27251f;--warm-muted: #716b62;--warm-yellow: #ffd85a;--warm-yellow-soft: #fff0a8;--warm-blue: #3267e8;--warm-blue-dark: #244fb9;--warm-mint: #dff4e5;--warm-coral: #ff9b72;--warm-pink: #ffe2df;--warm-danger: #b83a3a;--warm-border: #ded3c6;--warm-radius-panel: 22px;--warm-radius-card: 18px;--warm-radius-control: 13px;--warm-shadow: 0 14px 34px rgb(74 57 37 / 10%);color:var(--warm-ink);background:var(--warm-canvas)}.friendly-mascot{position:relative;display:inline-block;flex:none;width:52px;height:52px;background:var(--warm-yellow);border:2px solid var(--warm-ink);border-radius:48% 52% 46% 54%;box-shadow:3px 4px #27251f29;transform:rotate(-4deg)}.friendly-mascot-small{width:38px;height:38px}.friendly-mascot-large{width:118px;height:118px;border-width:3px;box-shadow:7px 9px #27251f24}.friendly-mascot-eye{position:absolute;top:37%;width:8%;aspect-ratio:1;background:var(--warm-ink);border-radius:50%}.friendly-mascot-eye-left{left:29%}.friendly-mascot-eye-right{right:29%}.friendly-mascot-smile{position:absolute;left:35%;top:50%;width:30%;height:19%;border-bottom:2px solid var(--warm-ink);border-radius:0 0 999px 999px}.friendly-mascot-large .friendly-mascot-smile{border-bottom-width:3px}html{background:var(--warm-canvas)}body{min-width:320px;background:var(--warm-canvas)}button,input,select,textarea{color:var(--warm-ink)}button,a,input,select,textarea{transition:border-color .16s ease,background-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgb(50 103 232 / 30%);outline-offset:3px}@media(max-width:760px){:root{--warm-radius-panel: 18px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app-layout{grid-template-columns:238px minmax(0,1fr);background:var(--warm-canvas)}.app-sidebar{gap:24px;padding:24px 16px;color:var(--warm-ink);background:var(--warm-surface);border-right:1px solid var(--warm-border);box-shadow:8px 0 28px #4a39250d}.app-brand-lockup{display:flex;align-items:center;gap:11px;padding:8px 7px 18px;border-bottom:1px dashed var(--warm-border)}.app-brand-copy{min-width:0}.app-brand{margin:0;color:var(--warm-ink);font-size:18px;font-weight:850;letter-spacing:-.02em}.app-brand-kicker{margin:4px 0 0;color:var(--warm-muted);font-size:11px}.app-sidebar nav{gap:7px}.nav-link{position:relative;padding:11px 13px;color:#4f4a43;border-radius:999px;font-weight:650}.nav-link:not(.nav-link-disabled):hover{color:var(--warm-ink);background:var(--warm-yellow-soft)}.nav-link.router-link-active,.nav-link.router-link-active:hover{color:#fff;background:var(--warm-blue);box-shadow:0 7px 16px #3267e838}.nav-link-disabled{color:#aaa196;background:#f5efe7}.logout-button{padding:11px 13px;color:#665e55;background:#fff8f2;border:1px solid var(--warm-border);border-radius:var(--warm-radius-control);font-weight:650}.logout-button:hover{color:var(--warm-danger);border-color:#edb6ae;background:#fff0ed}.app-content{background:radial-gradient(circle at 92% 5%,rgb(255 216 90 / 22%) 0 88px,transparent 89px),var(--warm-canvas)}@media(max-width:760px){.app-layout{grid-template-columns:1fr}.app-sidebar{min-width:0;gap:12px;padding:12px 14px;border-right:0;border-bottom:1px solid var(--warm-border)}.app-brand-lockup{padding:2px 3px 9px;border-bottom:0}.app-brand-kicker{display:none}.app-sidebar nav{display:flex;overflow-x:auto;padding-bottom:3px}.nav-link{flex:none}}.login-page{min-height:100vh;grid-template-columns:minmax(0,1.1fr) minmax(360px,.7fr);gap:clamp(32px,7vw,100px);padding:clamp(28px,7vw,92px);background:radial-gradient(circle at 12% 16%,rgb(255 216 90 / 38%) 0 120px,transparent 121px),radial-gradient(circle at 44% 84%,rgb(223 244 229 / 80%) 0 95px,transparent 96px),var(--warm-canvas)}.login-welcome{display:flex;align-items:center;justify-content:center;gap:clamp(24px,4vw,54px)}.login-welcome-copy{max-width:560px}.login-welcome h1{max-width:540px;margin:8px 0 16px;font-size:clamp(38px,5.2vw,72px);line-height:1.04;letter-spacing:-.05em}.login-welcome-copy>p:last-child{max-width:460px;margin:0;color:var(--warm-muted);font-size:18px;line-height:1.8}.login-card{width:min(100%,440px);gap:19px;padding:36px;background:var(--warm-surface);border:1px solid var(--warm-border);border-radius:28px;box-shadow:var(--warm-shadow)}.login-card-kicker{margin:0 0 5px;color:var(--warm-blue);font-size:13px;font-weight:800}.login-form-heading{margin:0;font-size:30px}.login-card-copy{margin:7px 0 0;color:var(--warm-muted);font-size:14px}.login-card label{color:#504a42;font-weight:650}.login-card input{min-height:48px;padding:10px 13px;background:#fff;border:1px solid var(--warm-border);border-radius:var(--warm-radius-control)}.login-card button{min-height:50px;color:#fff;background:var(--warm-blue);border:0;border-radius:999px;box-shadow:0 8px 18px #3267e838;font-weight:800}.login-card button:not(:disabled):hover{background:var(--warm-blue-dark);transform:translateY(-1px)}@media(max-width:900px){.login-page{grid-template-columns:1fr;gap:28px}.login-welcome{flex-direction:column;text-align:center}.login-welcome-copy>p:last-child{margin-inline:auto}.login-card{justify-self:center}}@media(max-width:560px){.login-page{padding:24px 16px}.login-welcome{gap:14px}.login-welcome .friendly-mascot{width:76px;height:76px}.login-welcome h1{font-size:36px}.login-card{padding:25px 21px;border-radius:var(--warm-radius-panel)}}.employees-page,.attendance-records-page,.work-calendar-page,.attendance-rules-page,.bonus-threshold-page,.attendance-summary-page{padding-top:38px;padding-bottom:48px}.page-header{margin-bottom:26px}.page-header h1{color:var(--warm-ink);font-size:clamp(28px,3vw,36px);letter-spacing:-.035em}.eyebrow{color:#a4492d;font-weight:750}.primary-button,.secondary-button,.danger-button{min-height:42px;padding:9px 16px;border-radius:999px;font-weight:750}.primary-button{background:var(--warm-blue);border-color:var(--warm-blue);box-shadow:0 7px 16px #3267e82e}.primary-button:not(:disabled):hover{background:var(--warm-blue-dark);border-color:var(--warm-blue-dark);transform:translateY(-1px)}.secondary-button{color:var(--warm-blue-dark);background:var(--warm-surface);border-color:#a9bce9}.danger-button{color:var(--warm-danger);background:#fff8f6;border-color:#edb6ae}.text-button{color:var(--warm-blue-dark);font-weight:700}.text-button.danger-button{min-height:0}.primary-button:disabled,.secondary-button:disabled,.danger-button:disabled{cursor:not-allowed;opacity:.62;box-shadow:none;transform:none}.employee-toolbar,.attendance-toolbar,.summary-toolbar{padding:14px;background:#fffdf9d1;border:1px solid var(--warm-border);border-radius:var(--warm-radius-card);box-shadow:0 7px 20px #4a39250d}.employee-toolbar input,.employee-toolbar select,.attendance-toolbar input,.attendance-toolbar select,.summary-toolbar input,.summary-toolbar select,.threshold-fields input,.calendar-override-form input,.calendar-override-form select,.calendar-override-form textarea,.employee-form input,.import-select-panel input,.import-select-panel select,.import-control select{background:#fff;border-color:var(--warm-border);border-radius:var(--warm-radius-control)}.summary-grid article,.attendance-rule-card,.threshold-card{background:var(--warm-surface);border-color:var(--warm-border);border-radius:var(--warm-radius-card);box-shadow:0 8px 24px #4a39250f}.summary-grid article:nth-child(3n+1){background:var(--warm-yellow-soft)}.summary-grid article:nth-child(3n+2){background:var(--warm-mint)}.summary-grid article:nth-child(3n){background:var(--warm-pink)}.summary-grid span{color:#655f56;font-weight:650}.summary-grid strong{color:var(--warm-ink)}.employee-table-wrap,.attendance-table-wrap,.attendance-rule-table-wrap,.work-calendar-table-wrap,.summary-days-table-wrap{background:var(--warm-surface);border-color:var(--warm-border);border-radius:var(--warm-radius-card);box-shadow:0 9px 26px #4a39250f}th{color:#5d574f;background:#f8f1e8}th,td{border-bottom-color:#ebe2d8}tbody tr:not(.summary-day-abnormal):not(.summary-total-row):hover td{background:#fffaf0}.empty-cell{padding-block:28px;color:var(--warm-muted);font-weight:600}.empty-cell:before{content:"☀";display:inline-grid;place-items:center;width:28px;height:28px;margin-right:8px;color:var(--warm-ink);background:var(--warm-yellow);border:1px solid var(--warm-ink);border-radius:50%;vertical-align:middle}.drawer-backdrop{padding:18px;background:#27251f70;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.employee-drawer,.calendar-modal,.summary-exception-dialog,.confirmation-card{background:var(--warm-surface);border-color:var(--warm-border);border-radius:var(--warm-radius-panel);box-shadow:0 24px 64px #27251f3d}.drawer-header{padding-bottom:14px;border-bottom:1px dashed var(--warm-border)}.drawer-header h2{color:var(--warm-ink);font-size:23px}.record-section,.summary-detail-section,.confirmation-summary,.result-panel{background:#faf5ee;border-color:var(--warm-border);border-radius:var(--warm-radius-card)}.fact-card{border-left-color:var(--warm-yellow);border-radius:0 var(--warm-radius-control) var(--warm-radius-control) 0}.import-counts span{background:#faf5ee;border-color:var(--warm-border);border-radius:var(--warm-radius-control)}.import-counts span:nth-child(1){background:var(--warm-mint)}.import-counts span:nth-child(2){background:var(--warm-yellow-soft)}.import-counts span:nth-child(3){background:var(--warm-pink)}.status-tag,.calendar-type-tag,.import-classification,.import-notice-badge{font-weight:700}.status-active,.calendar-workday{color:#24633c;background:var(--warm-mint)}.status-left,.calendar-rest-day{color:#8d4a22;background:#ffebd5}.form-error,.route-error,.summary-consistency-warning{color:var(--warm-danger)}.modal-error,.summary-consistency-warning{background:#fff0ed;border-color:#efc0b9;border-radius:var(--warm-radius-control)}.attendance-notices,.import-notice-warning,.threshold-warning,.summary-threshold-guide,.summary-exclusion-note{color:#80540f;background:#fff6c9;border-color:#ead06a;border-radius:var(--warm-radius-control)}.pagination{color:var(--warm-muted);font-weight:650}.pagination button{border-radius:999px}
