:root{--background:#f7fafc;--foreground:#102033;--card:#fff;--muted:#eef4f8;--muted-foreground:#67768a;--primary:#214fd7;--primary-dark:#183c9f;--secondary:#0f9f9a;--accent:#ff8a5c;--border:#dce7ef;--danger:#d95168;--warning:#d78324;--success:#0f9f9a;--shadow:0 12px 32px #10203317}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{color:var(--foreground);background:linear-gradient(180deg, #ffffffb8, #eef4f8b8), var(--background);-webkit-font-smoothing:antialiased;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}button{-webkit-tap-highlight-color:transparent}.app-loading-backdrop{z-index:9999;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);cursor:wait;background:#f7fafc9e;place-items:center;display:grid;position:fixed;inset:0}.app-loading-card{max-width:calc(100vw - 32px);min-height:48px;color:var(--foreground);box-shadow:var(--shadow);background:#fffffff5;border:1px solid #dce7eff0;border-radius:8px;align-items:center;gap:10px;padding:12px 16px;font-size:14px;font-weight:700;display:inline-flex}.app-loading-spinner,.button:disabled svg{animation:.8s linear infinite workplus-spin}@keyframes workplus-spin{to{transform:rotate(360deg)}}.brand-row{grid-template-columns:1fr;align-items:center;gap:6px;display:grid}.brand-wordmark{width:154px;height:auto;display:block}.brand-mark{background:var(--primary);color:#fff;border-radius:8px;place-items:center;width:64px;height:64px;font-size:24px;font-weight:800;display:grid}.brand-row h1,.brand-row p{margin:0}.brand-row h1{font-size:28px;line-height:1.08}.brand-row p{color:var(--muted-foreground);margin-top:5px;font-size:14px}.login-page{min-height:100svh;padding:max(24px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(26px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));background:#f5f5f7;justify-content:center;align-items:center;display:flex}.login-wrap{gap:14px;width:min(100%,390px);display:grid}.login-topbar{justify-content:flex-start;align-items:center;gap:14px;display:flex}.login-brand{align-items:center;display:flex}.login-brand img{width:154px;height:auto;display:block}.login-branding-image{border-radius:8px;width:100%;height:auto;display:block;box-shadow:0 12px 28px #1d1d1f14}.login-intro{padding:2px 2px 0;display:grid}.login-intro h1,.login-intro p{margin:0}.login-intro h1{color:#1d1d1f;letter-spacing:0;font-size:28px;line-height:1.1}.login-intro p:not(.login-eyebrow){color:#6e6e73;max-width:34ch;font-size:15px;line-height:1.45}.login-card{border:1px solid var(--border);background:#fffffff5;border-radius:8px;padding:18px;box-shadow:0 12px 30px #1d1d1f12}.panel,.card{border:1px solid var(--border);box-shadow:var(--shadow);background:#fffffff0;border-radius:8px}.panel{padding:18px}.stack{gap:12px;display:grid}.login-form-title{color:#1d1d1f;margin:0 0 2px;font-size:18px;line-height:1.2}.login-card-head{align-items:flex-start;gap:11px;margin-bottom:3px;display:flex}.login-card-icon{color:#007aff;background:#e8f2ff;border-radius:11px;flex:none;place-items:center;width:36px;height:36px;display:grid}.login-card-head h2,.login-card-head p{margin:0}.login-card-head h2{color:#1d1d1f;font-size:18px;line-height:1.2}.login-card-head p{color:#6e6e73;margin-top:4px;font-size:13px;line-height:1.35}.field{gap:7px;display:grid}.field label{color:var(--muted-foreground);font-size:13px;font-weight:700}.field input,.field select,.field textarea{border:1px solid var(--border);width:100%;min-height:44px;color:var(--foreground);background:#fff;border-radius:8px;padding:0 12px}.field select{height:44px}.login-card .field label{font-size:13px}.login-card .field input,.login-card .field select,.login-card .field textarea{color:#1d1d1f;background:#f7f7f8;border:1px solid #d2d2d7;border-radius:10px;outline:none;width:100%;min-height:48px;padding:0 14px;font-size:16px;transition:border-color .16s,box-shadow .16s,background .16s}.login-card .field select{height:48px}.login-card .field input:focus{background:#fff;border-color:#007aff;box-shadow:0 0 0 3px #007aff29}.field textarea{resize:vertical;min-height:88px;padding:10px 12px}.password-input{position:relative}.password-input input{padding-right:44px}.password-toggle{width:44px;height:44px;color:var(--muted-foreground);cursor:pointer;background:0 0;border:0;border-radius:12px;place-items:center;display:grid;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.password-toggle:hover{background:var(--muted);color:var(--foreground)}.login-card .password-input input{padding-right:54px}.login-card .password-toggle:hover{color:#007aff;background:#e8f2ff}.password-toggle:disabled{cursor:not-allowed;opacity:.45}.button{background:var(--primary);color:#fff;cursor:pointer;border:0;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 14px;font-weight:750;display:inline-flex}.button.secondary{border:1px solid var(--border);color:var(--foreground);background:#fff}.button.danger{background:var(--danger)}.button:disabled{opacity:.56;cursor:not-allowed}.login-submit{background:#007aff;border-radius:10px;min-height:48px;font-size:16px;transition:background .16s,box-shadow .16s,transform .16s;box-shadow:0 6px 14px #007aff33}.login-submit:hover{background:#006fe6;box-shadow:0 8px 18px #007aff3d}.login-submit:active{transform:translateY(1px);box-shadow:0 3px 8px #007aff2e}.login-link{color:#007aff;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;gap:6px;min-height:40px;font-size:14px;font-weight:700;display:inline-flex}.login-link:hover{color:#006fe6}.login-install{border-color:#d2d2d7;border-radius:10px;width:100%;min-height:46px;font-size:15px}.status{min-height:36px;color:var(--muted-foreground);background:#f3f8fc;border-radius:8px;padding:9px 11px;font-size:13px;line-height:1.35}.status.error{top:max(16px, env(safe-area-inset-top));right:max(16px, env(safe-area-inset-right));z-index:10001;width:min(420px,100vw - 32px);max-height:min(40vh,220px);color:var(--danger);background:#fff1f4;animation:10s forwards workplus-error-toast-dismiss;position:fixed;overflow:auto;box-shadow:0 14px 34px #1020332e}@keyframes workplus-error-toast-dismiss{0%,88%{opacity:1;visibility:visible;transform:translateY(0)}to{opacity:0;visibility:hidden;transform:translateY(-8px)}}.status.success{color:var(--success);background:#effbf9}.login-status{border-radius:10px;padding:10px 11px;font-size:13px}.app-shell{--dashboard-scale:.9;grid-template-rows:auto 1fr;min-height:100svh;display:grid}.dashboard-topbar{z-index:20;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff0;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;min-height:68px;padding:10px 26px;display:grid;position:sticky;top:0}.dashboard-brand{min-width:0;color:var(--foreground);text-transform:uppercase;align-items:center;gap:10px;font-size:12px;font-weight:800;display:flex}.dashboard-brand .brand-wordmark{width:132px}.nav-list{scrollbar-width:none;gap:6px;min-width:0;display:flex;overflow-x:auto}.nav-list::-webkit-scrollbar{display:none}.nav-item{min-height:38px;color:var(--muted-foreground);white-space:nowrap;border-radius:8px;flex:none;align-items:center;gap:10px;padding:0 12px;font-size:13px;font-weight:700;display:flex}.nav-item.active,.nav-item:hover{background:var(--muted);color:var(--foreground)}.nav-item.active,.nav-item.active:hover{background:var(--primary);color:#fff}.main{min-width:0;padding:22px 26px 26px}.dashboard-scale{width:calc(100% / var(--dashboard-scale));transform:scale(var(--dashboard-scale));transform-origin:0 0}.dashboard-actions{justify-content:flex-end;min-width:0}.dashboard-user-name{max-width:220px;min-height:38px;color:var(--foreground);text-overflow:ellipsis;white-space:nowrap;align-items:center;font-size:13px;font-weight:800;display:inline-flex;overflow:hidden}.page-head{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:20px;display:flex}.header-actions{align-items:center;gap:8px;display:flex}.page-head h1{margin:0;font-size:26px;line-height:1.15}.page-head p{color:var(--muted-foreground);margin:6px 0 0}.grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.route-loading{gap:12px;display:grid}.route-loading-line{background:#e7eef4;border-radius:6px;width:70%;height:40px;animation:1.2s ease-in-out infinite settings-skeleton-pulse}.route-loading-line.wide{width:100%;height:54px}.route-loading-line.short{width:45%}.metric{padding:16px}.metric span{color:var(--muted-foreground);font-size:13px;font-weight:700}.metric strong{margin-top:8px;font-size:30px;display:block}.table-wrap{border:1px solid var(--border);background:#fff;border-radius:8px;overflow:auto}.table-toolbar{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.table-toolbar h2,.table-toolbar p{margin:0}.table-toolbar h2{font-size:20px;line-height:1.2}.table-toolbar p{color:var(--muted-foreground);margin-top:4px;font-size:13px}table{border-collapse:collapse;width:100%;min-width:1040px}table.compact-table{min-width:760px}.device-audit-list{min-width:150px;color:var(--muted-foreground);gap:3px;font-size:12px;line-height:1.25;display:grid}.device-audit-list span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.employee-table{min-width:1280px}.employee-table-wrap{max-height:min(880px,100svh - 120px)}.employee-manager-panel .employee-table-wrap{border-top:0;border-top-left-radius:0;border-top-right-radius:0}.employee-deactivate-button{color:var(--danger);border-color:#f3c5cc}.employee-deactivate-button:hover{background:#fff1f4;border-color:#e89aaa}.employee-load-more-row td{text-align:center}.employee-loading-more{color:var(--muted-foreground);align-items:center;gap:8px;font-weight:750;display:inline-flex}th,td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:10px 12px;font-size:13px}th{color:var(--muted-foreground);text-transform:uppercase;background:#f3f8fc;font-size:12px}.th-sort{min-width:100%;min-height:28px;color:inherit;text-align:left;text-transform:uppercase;cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:space-between;align-items:center;gap:7px;padding:0;font-size:12px;font-weight:800;display:inline-flex}.th-sort.active{color:var(--primary)}.salary-head{grid-template-columns:minmax(0,1fr) 32px;align-items:center;gap:6px;display:grid}.table-filter-row th{text-transform:none;background:#f8fbfd;padding-top:0}.employee-table thead>tr:first-child>th{border-bottom:0}.table-filter-control{border:1px solid var(--border);width:100%;min-width:0;height:34px;color:var(--foreground);text-transform:none;background:#fff;border-radius:8px;outline:none;padding:0 10px;font-size:12px;font-weight:650}.table-filter-control:focus{border-color:#214fd78c;box-shadow:0 0 0 3px #214fd71f}.table-filter-control:disabled{color:#8b98a8;cursor:not-allowed;background:#eef4f8}.table-filter-reset{border:1px solid var(--border);width:100%;min-height:34px;color:var(--foreground);cursor:pointer;background:#fff;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:0 10px;font-size:12px;font-weight:800;display:inline-flex}.table-filter-reset:hover{color:var(--primary);border-color:#214fd747}.salary-value{font-variant-numeric:tabular-nums;min-width:78px;font-weight:750;display:inline-flex}.salary-value.masked{color:var(--muted-foreground);letter-spacing:0}.icon-button{border:1px solid var(--border);width:32px;height:32px;color:var(--foreground);cursor:pointer;background:#fff;border-radius:8px;place-items:center;display:inline-grid}.icon-button.active{color:var(--primary);background:#eef4ff;border-color:#214fd747}.notification-wrap,.notification-button{position:relative}.notification-dot{background:var(--danger);border:2px solid #fff;border-radius:999px;width:8px;height:8px;position:absolute;top:5px;right:5px}.notification-popover{z-index:30;border:1px solid var(--border);width:min(320px,100vw - 28px);box-shadow:var(--shadow);background:#fff;border-radius:8px;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}.notification-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.notification-head>div{gap:3px;display:grid}.notification-head strong{font-size:13px}.notification-head span{color:var(--muted-foreground);font-size:12px}.notification-clear{border:1px solid var(--border);min-height:30px;color:var(--muted-foreground);cursor:pointer;background:#fff;border-radius:8px;align-items:center;gap:5px;padding:0 9px;font-size:12px;font-weight:750;display:inline-flex}.notification-clear:hover{color:var(--danger);border-color:#f0b7c0}.notification-clear:disabled{opacity:.65;cursor:not-allowed}.notification-item,.notification-empty{border-bottom:1px solid var(--border);gap:4px;padding:12px;font-size:13px;display:grid}.notification-item:last-child,.notification-empty:last-child{border-bottom:0}.notification-item:hover{background:#f3f8fc}.notification-item span,.notification-empty{color:var(--muted-foreground)}.modal-backdrop{z-index:40;background:#10203352;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-panel{border:1px solid var(--border);width:min(100%,420px);max-height:calc(100svh - 40px);box-shadow:var(--shadow);background:#fff;border-radius:8px;padding:18px;overflow:auto}.employee-form-modal{width:min(100%,1040px);font-size:14px}.employee-form-modal .modal-head h2{font-size:20px}.employee-code-label{text-align:right;gap:2px;margin-left:auto;display:grid}.employee-code-label span{color:var(--muted-foreground);font-size:11px;font-weight:700}.employee-code-label strong{color:var(--primary);letter-spacing:.02em;font-size:14px}.employee-form-sections{gap:14px;display:grid}.employee-form-section{border:1px solid var(--border);background:#f8fbfd;border-radius:10px;gap:12px;padding:14px;display:grid}.employee-form-section h3{color:var(--foreground);margin:0;font-size:14px}.employee-form-modal .field label,.employee-form-modal .field>span{font-size:12px}.employee-form-modal .field input,.employee-form-modal .field select{min-height:40px;font-size:14px}.employee-location-combobox{position:relative}.employee-location-trigger{border:1px solid var(--border);width:100%;min-height:40px;color:var(--foreground);text-align:left;font:inherit;cursor:pointer;background:#fff;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;font-size:14px;display:flex}.employee-location-trigger>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.employee-location-trigger.placeholder{color:var(--muted-foreground)}.employee-location-trigger.open{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 14%, transparent)}.employee-location-menu{z-index:30;border:1px solid var(--border);background:#fff;border-radius:10px;gap:8px;padding:8px;display:grid;position:absolute;top:calc(100% + 6px);left:0;right:0;box-shadow:0 12px 30px #0f172a29}.employee-location-search{border:1px solid var(--border);color:var(--muted-foreground);border-radius:7px;align-items:center;gap:7px;padding:0 8px;display:flex}.employee-location-search input{outline:0;width:100%;min-height:34px!important;box-shadow:none!important;border:0!important;padding:5px 0!important}.employee-location-options{max-height:min(240px,36vh);display:grid;overflow-y:auto}.employee-location-option{width:100%;color:var(--foreground);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:7px;align-items:flex-start;gap:9px;padding:8px;display:flex}.employee-location-option:hover,.employee-location-option.selected{background:#eef6ff}.employee-location-check{color:#fff;border:1px solid #b7c3d0;border-radius:5px;flex:0 0 20px;place-items:center;width:20px;height:20px;margin-top:1px;display:grid}.employee-location-option.selected .employee-location-check{border-color:var(--primary);background:var(--primary)}.employee-location-option-copy{gap:2px;min-width:0;display:grid}.employee-location-option-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.employee-location-option-copy small{color:var(--muted-foreground);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.employee-location-empty{color:var(--muted-foreground);padding:12px 8px;font-size:13px}.employee-location-clear{color:var(--primary);text-align:left;cursor:pointer;background:0 0;border:0;padding:3px 8px;font-size:12px;font-weight:700}.payroll-other-deduction-input{width:140px;min-width:120px}.employee-form-section-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.employee-form-section-head a{color:var(--primary);font-size:12px;font-weight:700}.employee-form-section-head a:hover{text-decoration:underline}.employee-form-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.employee-form-grid .span-2{grid-column:span 2}.employee-form-grid .span-4{grid-column:1/-1}.employee-placement-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.employee-deduction-list{gap:10px;display:grid}.employee-deduction-row{border:1px solid var(--border);background:#fff;border-radius:8px;grid-template-columns:minmax(150px,1fr) minmax(180px,1.1fr) minmax(190px,1.15fr) minmax(160px,1fr);align-items:end;gap:10px;padding:12px;display:grid}.employee-deduction-row>strong{color:var(--foreground);align-self:center;font-size:14px}.employee-deduction-note{color:var(--muted-foreground);grid-column:span 2;align-self:center;font-size:13px;font-weight:650}.field-label-row{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.field-label-row a{color:var(--primary);font-size:12px;font-weight:700}.field-label-row a:hover{text-decoration:underline}.modal-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.modal-head h2,.modal-head p{margin:0}.modal-head h2{font-size:20px}.modal-head p{color:var(--muted-foreground);margin-top:4px;font-size:13px}.form-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.form-grid .span-2{grid-column:span 2}.mobile-stage{background:#eef4f8;justify-content:center;min-height:100svh;display:flex}.mobile-shell{background:var(--background);width:min(100%,480px);min-height:100svh;box-shadow:0 0 0 1px #14213d0f}.mobile-screen{min-height:100svh;padding:24px 18px 96px}.mobile-top{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:18px;display:flex}.mobile-top-actions{align-items:center;gap:8px;display:flex}.mobile-top h1{margin:2px 0 5px;font-size:22px}.mobile-top p{color:var(--muted-foreground);margin:0;font-size:13px}.avatar{background:var(--primary);color:#fff;border-radius:8px;place-items:center;width:46px;height:46px;font-weight:800;display:grid}.mobile-card{border:1px solid var(--border);box-shadow:var(--shadow);background:#fff;border-radius:8px;gap:14px;padding:16px;display:grid}.mobile-card h2{margin:0;font-size:18px;line-height:1.2}.check-row{color:var(--foreground);align-items:center;gap:9px;font-size:13px;font-weight:700;display:flex}.attendance-times{grid-template-columns:1fr 1fr;gap:10px;display:grid}.time-box{border:1px solid var(--border);background:#f8fbfd;border-radius:8px;padding:12px}.time-box span{color:var(--muted-foreground);font-size:12px;font-weight:750}.time-box strong{margin-top:6px;font-size:18px;display:block}.mobile-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.mobile-actions .button:disabled svg{animation:none;transform:none}.file-field{color:var(--muted-foreground);gap:8px;font-size:13px;font-weight:700;display:grid}.file-field input{border:1px solid var(--border);background:#fff;border-radius:8px;min-height:42px;padding:8px}.mobile-stage{background:#f2f2f7}.mobile-screen{padding:26px 18px calc(116px + env(safe-area-inset-bottom))}.mobile-top{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.mobile-top-main{align-items:center;gap:11px;min-width:0;display:flex}.mobile-brand-logo{flex:none;width:38px;height:auto;display:block}.mobile-greeting{gap:4px;min-width:0;display:grid}.mobile-top-actions{flex:none;align-items:center;gap:8px;display:flex}.mobile-profile,.mobile-logout{width:42px;height:42px}.mobile-profile{color:var(--primary);border-color:#214fd738}.mobile-logout{color:var(--danger);border-color:#f3c5cc}.mobile-profile:hover,.mobile-profile.active{color:var(--primary);background:#eef4ff;border-color:#214fd74d}.mobile-logout:hover{color:var(--danger);background:#fff1f4;border-color:#e89aaa}.mobile-greeting>span{color:#8e8e93;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:700;overflow:hidden}.mobile-greeting h1{color:#1d1d1f;text-overflow:ellipsis;white-space:nowrap;font-size:26px;line-height:1.12;overflow:hidden}.mobile-greeting p{color:#6e6e73;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.avatar-button{cursor:pointer;background:0 0;border:0;border-radius:16px;flex:none}.avatar-button:focus-visible,.mobile-nav button:focus-visible,.shortcut-button:focus-visible,.text-button:focus-visible,.mobile-photo-picker:focus-within{outline-offset:2px;outline:3px solid #007aff33}.avatar{background:#007aff;border-radius:16px;width:46px;height:46px;font-size:15px;box-shadow:0 5px 12px #007aff33}.mobile-content{gap:22px;display:grid}.mobile-alert-card{background:#fff8ef;border:1px solid #ffd6aa;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px;display:grid}.mobile-alert-card.single{grid-template-columns:minmax(0,1fr)}.substitute-leave-card{background:#ecfbf3;border-color:#b8ead2}.substitute-leave-card .mobile-alert-icon{color:#16824e;background:#d8f7e6}.substitute-leave-card h2{color:#126c43}.substitute-leave-card p{color:#2d7651}.mobile-alert-copy{align-items:center;gap:12px;min-width:0;display:flex}.mobile-alert-icon{color:#ff7a00;background:#fff0df;border-radius:8px;flex:none;place-items:center;width:40px;height:40px;display:grid}.mobile-alert-card h2,.mobile-alert-card p{margin:0}.mobile-alert-card h2{color:#9a4b00;font-size:17px;line-height:1.2}.mobile-alert-card p{color:#946d45;margin-top:3px;font-size:12px;line-height:1.3}.mobile-alert-action{border-radius:12px;min-height:40px;padding:0 16px;font-size:13px}.mobile-attendance-card,.mobile-form,.profile-hero{background:#fff;border:1px solid #dedee3;border-radius:8px;gap:16px;padding:18px;display:grid;box-shadow:0 10px 28px #1d1d1f12}.mobile-section-heading,.mobile-section-title{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.mobile-section-heading h2,.mobile-section-heading p,.mobile-section-title h2,.mobile-section-title p{margin:0}.mobile-section-kicker{color:#007aff;margin-bottom:5px;font-size:11px;font-weight:800;display:block}.mobile-section-heading h2,.mobile-section-title h2{color:#1d1d1f;font-size:21px;line-height:1.18}.mobile-state-pill{color:#1d1d1f;background:#f2f2f7;border-radius:999px;align-items:center;width:fit-content;min-height:28px;margin-top:7px;padding:0 10px;font-size:12px;font-weight:750;display:inline-flex}.mobile-section-heading p,.mobile-section-title p{color:#6e6e73;margin-top:5px;font-size:13px;line-height:1.35}.mobile-metrics{border-top:1px solid #ededf0;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:10px;padding-top:13px;display:grid}.mobile-metrics span{color:#8e8e93;gap:4px;font-size:12px;display:grid}.mobile-metrics strong{color:#1d1d1f;font-size:14px}.mobile-photo-picker{color:#6e6e73;cursor:pointer;background:#f7f7f8;border:1px solid #d2d2d7;border-radius:12px;grid-template-columns:42px minmax(0,1fr) 20px;align-items:center;gap:10px;min-height:58px;padding:7px 10px;display:grid}button.mobile-photo-picker{width:100%;font:inherit;text-align:left}.mobile-photo-picker img,.mobile-photo-icon{border-radius:11px;place-items:center;width:42px;height:42px;display:grid}.mobile-photo-picker img{object-fit:cover}.mobile-photo-icon{color:#007aff;background:#e8f2ff}.mobile-photo-copy{gap:3px;min-width:0;display:grid}.mobile-photo-copy strong{color:#1d1d1f;text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.mobile-photo-copy small{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.mobile-photo-picker>svg{color:#8e8e93}.attendance-location-note{color:#6e6e73;text-align:center;margin:-6px 0 0;font-size:12px;line-height:1.4}.attendance-location-note.inside{color:var(--success)}.attendance-location-note.outside{color:var(--danger)}.attendance-lock-card{background:#fff4f4;border-color:#ffc9c9}.attendance-lock-card .mobile-alert-icon{color:var(--danger);background:#ffe0e0}.attendance-lock-card h2{color:#9f1d2e}.attendance-lock-card p{color:#7a2a36}.attendance-lock-card .text-button{min-height:0;margin-top:8px;padding:0}.attendance-retry{color:var(--danger);text-align:center;margin:0;font-size:13px;line-height:1.35}.assignment-camera-frame video.mirrored{transform:scaleX(-1)}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.mobile-actions{grid-template-columns:1fr 1fr;gap:10px}.mobile-actions .button{border-radius:12px;min-height:50px}.mobile-shortcuts{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.shortcut-button{color:#1d1d1f;cursor:pointer;background:#fff;border:1px solid #dedee3;border-radius:12px;place-items:center;gap:8px;min-height:88px;font-size:12px;font-weight:750;transition:border-color .16s,transform .16s;display:grid}.shortcut-button:hover{border-color:#b7d6ff;transform:translateY(-1px)}.shortcut-icon{border-radius:12px;place-items:center;width:38px;height:38px;display:grid}.shortcut-icon.blue{color:#007aff;background:#e8f2ff}.shortcut-icon.orange{color:#ff7a00;background:#fff1e8}.shortcut-icon.green{color:#19a463;background:#e8f8ef}.mobile-section-block,.mobile-section-page{gap:16px;display:grid}.text-button{color:#007aff;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;min-height:32px;font-size:13px;font-weight:750;display:inline-flex}.history-list,.leave-list,.assignment-history-list{display:grid}.history-row,.leave-row,.assignment-history-row{border-bottom:1px solid #ededf0;justify-content:space-between;align-items:center;gap:12px;padding:14px 0;display:flex}.history-row:first-child,.leave-row:first-child,.assignment-history-row:first-child{border-top:1px solid #ededf0}.history-date,.history-times,.leave-row>div,.assignment-history-row>div{gap:4px;display:grid}.history-date strong,.leave-row strong,.assignment-history-row strong{color:#1d1d1f;font-size:14px}.history-date span,.history-times span,.leave-row span,.assignment-history-row span{color:#8e8e93;font-size:12px}.history-times{text-align:right;flex:none}.history-row.single{justify-content:flex-start}.history-row.single .history-date{width:100%}.history-times strong{color:#1d1d1f;margin-left:4px;font-weight:750}.payroll-mobile-page{gap:18px}.payroll-mobile-summary{background:linear-gradient(#fff 0%,#f7fbff 100%);border:1px solid #d2d2d7;border-radius:16px;gap:14px;padding:16px;display:grid;box-shadow:0 8px 20px #1d1d1f0f}.payroll-mobile-summary>div:first-child{gap:4px;display:grid}.payroll-mobile-summary span,.payroll-mobile-summary small,.payroll-history-row span{color:#6e6e73;font-size:12px;font-weight:700}.payroll-mobile-summary>div:first-child strong{color:#1d1d1f;font-size:30px;line-height:1.1}.payroll-mobile-facts{border-top:1px solid #e5e5ea;gap:8px;padding-top:12px;display:grid}.payroll-mobile-facts span,.payroll-history-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.payroll-mobile-facts strong{color:#1d1d1f}.payroll-history-list{display:grid}.payroll-history-row{cursor:pointer;border-bottom:1px solid #ededf0;padding:14px 0}.payroll-history-row.selected{background:#f2f7ff;border-radius:10px;padding-inline:10px}.payroll-history-row:focus-visible{outline-offset:2px;outline:2px solid #0a84ff}.payroll-history-row:first-child{border-top:1px solid #ededf0}.payroll-history-row>div{gap:4px;display:grid}.payroll-history-row>div:last-child{text-align:right}.payroll-history-row strong{color:#1d1d1f;font-size:14px}.empty-state{color:#8e8e93;text-align:center;border:1px dashed #d2d2d7;border-radius:12px;margin:0;padding:18px;font-size:13px}.assignment-mobile-page{gap:18px}.assignment-card{background:#fff;border:1px solid #d2d2d7;border-radius:16px;gap:13px;padding:16px;display:grid;box-shadow:0 8px 20px #1d1d1f0f}.assignment-state{gap:4px;display:grid}.assignment-state span,.assignment-facts span{color:#6e6e73;font-size:12px;font-weight:700}.assignment-state strong{color:#1d1d1f;font-size:20px;line-height:1.2}.assignment-facts{border-top:1px solid #ededf0;gap:8px;padding-top:12px;display:grid}.assignment-facts span{gap:3px;display:grid}.assignment-facts strong{color:#1d1d1f;font-size:13px}.assignment-photo-picker{background:#f8fbfd}.assignment-camera-backdrop{z-index:70;background:#00000073;place-items:end center;padding:18px;display:grid;position:fixed;inset:0}.assignment-camera-panel{background:#fff;border:1px solid #d2d2d7;border-radius:18px;gap:13px;width:min(100%,430px);max-height:calc(100dvh - 36px);padding:14px;display:grid;overflow-y:auto;box-shadow:0 18px 50px #0000003d}.assignment-camera-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.assignment-camera-head h2{color:#1d1d1f;margin:0;font-size:18px;line-height:1.2}.assignment-camera-head p{color:#6e6e73;margin:4px 0 0;font-size:12px}.assignment-camera-frame{aspect-ratio:3/4;background:#111827;border-radius:14px;min-height:0;position:relative;overflow:hidden}.assignment-camera-frame video{object-fit:cover;width:100%;height:100%}.assignment-camera-loading{color:#fff;background:#111827b8;place-items:center;gap:8px;font-size:13px;font-weight:750;display:grid;position:absolute;inset:0}.assignment-camera-error{color:#b42318;background:#fff5f5;border:1px solid #ffd1d1;border-radius:10px;margin:0;padding:10px;font-size:12px;line-height:1.35}.assignment-history-row{align-items:flex-start}.issue-row{background:#fff;border:1px solid #dedee3;border-radius:8px;gap:12px;padding:15px;display:grid}.issue-row.selected{border-color:#a9d0ff;box-shadow:0 6px 16px #007aff1a}.issue-row-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.issue-row-head>div{gap:4px;display:grid}.issue-row-head strong{color:#1d1d1f;font-size:15px}.issue-row-head span:not(.request-badge){color:#8e8e93;font-size:12px}.issue-times{color:#8e8e93;border-top:1px solid #ededf0;grid-template-columns:1fr 1fr;gap:10px;padding-top:11px;font-size:12px;display:grid}.issue-times strong{color:#1d1d1f;margin-left:4px}.issue-open-button{justify-content:flex-start;min-height:34px}.issue-form{border-top:1px solid #ededf0;gap:12px;padding-top:13px;display:grid}.mobile-form .field input,.mobile-form .field select,.mobile-form .field textarea{background:#f7f7f8;border-radius:12px;min-height:48px}.mobile-form .field select{height:48px}.mobile-form .field textarea{min-height:96px;padding:12px 14px}.mobile-date-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.mobile-wide-button{border-radius:12px;min-height:50px}.request-heading{margin-top:8px}.request-badge{white-space:nowrap;background:#f2f2f7;border-radius:999px;justify-content:center;align-items:center;min-height:28px;padding:0 9px;font-weight:750;display:inline-flex;color:#6e6e73!important;font-size:11px!important}.request-badge.approved{background:#e8f8ef;color:#16824e!important}.request-badge.rejected{background:#fff1f4;color:#d95168!important}.profile-hero{grid-template-columns:62px minmax(0,1fr);align-items:center}.profile-avatar{color:#fff;background:#007aff;border-radius:20px;place-items:center;width:62px;height:62px;font-size:20px;font-weight:800;display:grid;box-shadow:0 6px 14px #007aff33}.profile-hero h2,.profile-hero p{margin:0}.profile-hero h2{color:#1d1d1f;text-overflow:ellipsis;white-space:nowrap;font-size:19px;overflow:hidden}.profile-hero p{color:#6e6e73;margin-top:4px;font-size:13px}.profile-list{background:#fff;border:1px solid #dedee3;border-radius:8px;display:grid;overflow:hidden}.profile-row{color:#007aff;border-bottom:1px solid #ededf0;align-items:center;gap:12px;min-height:64px;padding:10px 14px;display:flex}.profile-row:last-child{border-bottom:0}.profile-row span:not(.profile-shield){gap:3px;display:grid}.profile-row small{color:#8e8e93;font-size:12px}.profile-row strong{color:#1d1d1f;font-size:14px;font-weight:700}.profile-shield{color:#19a463;background:#e8f8ef;border-radius:7px;place-items:center;width:21px;height:21px;display:grid}.mobile-nav{z-index:20;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);width:min(100%,480px);padding:7px 10px max(7px, env(safe-area-inset-bottom));background:#fffffff0;border-top:1px solid #d2d2d7e6;grid-template-columns:repeat(5,minmax(0,1fr));display:grid;position:fixed;bottom:0;left:50%;right:auto;transform:translate(-50%);box-shadow:0 -8px 24px #1d1d1f14}.mobile-nav.with-leave{grid-template-columns:repeat(6,minmax(0,1fr))}.mobile-nav button{color:#8e8e93;cursor:pointer;background:0 0;border:0;border-radius:12px;place-items:center;gap:3px;min-width:0;min-height:50px;font-size:11px;font-weight:750;display:grid}.mobile-nav-icon-wrap{place-items:center;display:inline-grid;position:relative}.tab-badge{color:#fff;background:#ff3b30;border:2px solid #fffffff0;border-radius:999px;place-items:center;min-width:17px;height:17px;font-size:10px;font-weight:800;line-height:1;display:grid;position:absolute;top:-9px;right:-12px}.mobile-nav button.active{color:#007aff;background:#e8f2ff}.mobile-nav button:hover{color:#007aff}.settings-panel{margin-top:14px}.settings-panel:first-child{margin-top:0}.leave-type-form{align-items:end}.leave-type-toggles{align-content:center;gap:9px;min-height:42px;display:grid}.leave-type-actions{justify-content:flex-end}.table-actions{align-items:center;gap:7px;display:flex}.danger-icon{color:var(--danger);border-color:#f3c5cc}.row-muted{color:var(--muted-foreground);background:#fafafa}.schedule-name-field{max-width:360px}.schedule-rules{border:1px solid var(--border);border-radius:8px;display:grid;overflow:hidden}.schedule-rule-row{border-bottom:1px solid var(--border);grid-template-columns:minmax(92px,1fr) minmax(90px,.8fr) minmax(110px,.9fr) minmax(110px,.9fr) minmax(136px,1fr);align-items:center;gap:12px;min-height:58px;padding:8px 12px;display:grid}.schedule-rule-row:last-child{border-bottom:0}.schedule-rule-row input[type=time],.schedule-rule-row input[type=number]{min-width:0;min-height:38px}.schedule-grace{color:var(--muted-foreground);grid-template-columns:auto minmax(48px,70px) auto;align-items:center;gap:6px;font-size:12px;display:grid}.schedule-grace small{color:var(--muted-foreground)}.payroll-manager{gap:14px}.payroll-toolbar,.payroll-status-row,.payroll-actions{align-items:center}.payroll-period-field{min-width:148px}.payroll-period-field label{font-size:12px}.payroll-status-row{color:var(--muted-foreground);gap:9px;font-size:13px;display:flex}.status-chip{border-radius:999px;align-items:center;min-height:28px;padding:0 10px;font-size:12px;font-weight:750;display:inline-flex}.status-chip.draft{color:#a65f00;background:#fff4df}.status-chip.completed{color:#16824e;background:#e8f8ef}.status-chip.locked{color:#0066d6;background:#e8f2ff}.payroll-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.payroll-metrics .metric strong{font-size:24px}.payroll-actions{flex-wrap:wrap}.payroll-reminder{background:#fff8ef;border:1px solid #ffd6aa;border-radius:8px;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;display:flex}.payroll-reminder div{gap:3px;display:grid}.payroll-reminder strong{color:#9a4b00}.payroll-reminder span{color:#946d45;font-size:13px}.payroll-reminder-dialog{gap:14px;padding:22px;display:grid;position:relative}.payroll-reminder-dialog h2,.payroll-reminder-dialog p{margin:0}.payroll-reminder-dialog p{color:var(--muted-foreground);margin-top:5px;font-size:14px;line-height:1.45}.payroll-reminder-icon{color:#ff7a00;background:#fff1df;border-radius:8px;place-items:center;width:42px;height:42px;display:grid}.reminder-close{position:absolute;top:14px;right:14px}.audit-search span{border:1px solid var(--border);min-height:40px;color:var(--muted-foreground);border-radius:8px;align-items:center;gap:7px;padding:0 10px;display:flex}.audit-search input{border:0;outline:0;width:180px;min-height:36px;padding:0}@media (max-width:820px){.app-shell{--dashboard-scale:1;display:block}.dashboard-scale{width:100%;transform:none}.dashboard-topbar{grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:10px 14px;position:sticky;top:0}.dashboard-brand .brand-wordmark{width:122px}.dashboard-nav{grid-column:1/-1;margin:0 -2px;padding-bottom:2px}.nav-item{min-height:36px;padding:0 10px}.main{padding:18px 14px}.grid,.form-grid,.employee-form-grid,.employee-deduction-row{grid-template-columns:1fr}.table-toolbar{display:grid}.form-grid .span-2,.employee-form-grid .span-2,.employee-form-grid .span-4,.employee-deduction-note{grid-column:auto}.schedule-rule-row{grid-template-columns:1fr 1fr}.schedule-rule-row strong{grid-column:span 2}.schedule-grace{grid-column:span 2;width:min(100%,220px)}.payroll-metrics{grid-template-columns:1fr}}@media (max-width:520px){.login-page{padding-top:max(28px, env(safe-area-inset-top));align-items:flex-start}.login-wrap{gap:20px}.login-intro h1{font-size:30px}.login-card{padding:18px}}@media (prefers-reduced-motion:reduce){.login-card .field input,.login-submit{transition:none}}.attendance-admin-overview{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.attendance-admin-overview h2,.attendance-admin-overview p{margin:0}.attendance-overview-actions{align-items:center;gap:8px;display:flex}.attendance-admin-overview h2{color:#1d1d1f;font-size:26px;line-height:1.15}.attendance-admin-overview p{color:#6e6e73;margin-top:6px;font-size:13px}.attendance-admin-kicker{color:var(--primary);margin-bottom:5px;font-size:11px;font-weight:800;display:block}.attendance-admin-stats{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;display:grid}.attendance-admin-stat{border:1px solid var(--border);background:#fff;border-radius:8px;gap:8px;padding:14px;display:grid}.attendance-admin-stat span{color:var(--muted-foreground);font-size:12px;font-weight:700}.attendance-admin-stat strong{color:var(--foreground);font-size:24px;line-height:1}.attendance-admin-tabs{border:1px solid var(--border);background:#f3f8fc;border-radius:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:6px;padding:5px;display:grid}.attendance-admin-tabs button{min-height:48px;color:var(--muted-foreground);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:0 12px;font-size:13px;font-weight:750;display:grid}.attendance-issue-evidence{border:1px solid var(--border);object-fit:contain;background:#f3f8fc;border-radius:8px;width:100%;max-height:280px;display:block}.attendance-issue-modal{width:min(100%,560px)}.attendance-admin-tabs button.active{color:var(--primary);background:#fff;box-shadow:0 2px 8px #10203314}.attendance-admin-tabs button b{min-width:24px;height:24px;color:var(--muted-foreground);background:#e4edf5;border-radius:999px;place-items:center;font-size:11px;display:grid}.attendance-admin-tabs button.active b{color:var(--primary);background:#e8f2ff}@media (max-width:820px){.attendance-admin-overview h2{font-size:22px}.attendance-admin-stats{gap:8px}.attendance-admin-stat{padding:12px}.attendance-admin-stat strong{font-size:21px}.attendance-admin-tabs button{text-align:center;grid-template-columns:1fr;justify-items:center;gap:4px;min-height:64px;padding:6px 4px}.attendance-admin-tabs button b{margin:0}.attendance-admin-panel{padding:14px}.attendance-admin-panel .form-grid{grid-template-columns:1fr 1fr}.attendance-admin-panel .form-grid .field:nth-child(2){grid-column:span 2}.attendance-admin-panel .header-actions{grid-template-columns:1fr 1fr;display:grid}.attendance-admin-panel .header-actions .button:last-child{grid-column:span 2}}@media (max-width:480px){.attendance-admin-overview p{max-width:28ch}.attendance-admin-tabs button{font-size:11px}.attendance-admin-tabs button b{margin:0}}.settings-tab-shell{gap:14px}.settings-tab-shell .settings-panel{margin-top:0}.settings-panel-state{align-content:start;gap:24px;min-height:300px;display:grid}.settings-panel-state-head{justify-content:space-between;align-items:center;gap:14px;display:flex}.settings-panel-state-head>div{gap:4px;display:grid}.settings-panel-state-head strong{color:var(--foreground);font-size:15px}.settings-panel-state-head span{color:var(--muted-foreground);font-size:13px}.settings-panel-state-head>.app-loading-spinner{color:var(--primary);flex:none}.settings-panel-state-head:has(>.app-loading-spinner){justify-content:flex-start}.settings-panel-skeleton{gap:12px;display:grid}.settings-panel-skeleton span{background:#e7eef4;border-radius:6px;width:70%;height:40px;animation:1.2s ease-in-out infinite settings-skeleton-pulse}.settings-panel-skeleton .wide{width:100%;height:54px}.settings-panel-skeleton .short{width:45%}@keyframes settings-skeleton-pulse{0%,to{opacity:.55}50%{opacity:1}}.settings-admin-tabs{scrollbar-width:thin;grid-template-columns:repeat(5,minmax(0,1fr));overflow-x:auto}.settings-admin-tabs.with-leave{grid-template-columns:repeat(6,minmax(0,1fr))}.settings-admin-tabs button span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.branch-location-modal,.schedule-form-modal,.schedule-assignment-modal{width:min(100%,920px)}.branch-location-modal{gap:14px;width:min(100%,820px);padding:20px;display:grid}.branch-location-modal .modal-head{border-bottom:1px solid var(--border);align-items:center;padding-bottom:12px}.branch-location-modal .modal-head h2{font-size:24px;line-height:1.15}.branch-location-panel{gap:16px}.branch-location-toolbar .header-actions{flex-wrap:wrap;justify-content:flex-end}.branch-location-table{min-width:1040px}.branch-location-cell{gap:8px;min-width:260px;display:grid}.branch-location-name{align-items:flex-start;gap:8px;min-width:0;display:inline-flex}.branch-location-name svg{color:var(--primary);flex:none;margin-top:1px}.branch-location-name span{gap:3px;min-width:0;display:grid}.branch-location-name strong{color:var(--foreground);line-height:1.25}.branch-location-name small{color:var(--muted-foreground);font-size:12px;font-weight:750}.branch-location-actions{flex-wrap:wrap;min-width:250px}.branch-location-action{white-space:nowrap;min-height:32px;padding:0 10px;font-size:12px}.branch-location-modal-body{gap:12px;display:grid}.branch-location-modal-section{border:1px solid var(--border);background:#fbfdff;border-radius:8px;gap:12px;padding:14px;display:grid}.branch-location-section-head h3{margin:0}.branch-location-section-head{display:block}.branch-location-section-head h3{color:var(--foreground);font-size:16px;line-height:1.2}.branch-location-branch-form,.branch-location-location-form{align-items:end}.branch-location-branch-form{grid-template-columns:1fr 1fr}.branch-location-location-form{grid-template-columns:repeat(12,minmax(0,1fr))}.branch-location-name-field{grid-column:span 6}.branch-location-coordinate-field,.branch-location-number-field{grid-column:span 3}.branch-location-submit{min-width:180px;min-height:46px}.branch-location-form-actions{border-top:1px solid var(--border);grid-column:1/-1;justify-content:flex-start;padding-top:12px;display:flex}.branch-location-form-actions .button{min-height:42px;padding:0 12px}.branch-location-modal-footer{border-top:1px solid var(--border);justify-content:flex-end;padding-top:14px;display:flex}.holiday-form-modal,.leave-type-modal{width:min(100%,680px)}.settings-facts{border-top:1px solid var(--border);grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0;padding-top:16px;display:grid}.settings-facts dt{color:var(--muted-foreground);font-size:12px;font-weight:800}.settings-facts dd{color:var(--foreground);margin:4px 0 0;font-size:16px;font-weight:750}.payroll-settings-summary{border-top:1px solid var(--border);grid-template-columns:minmax(240px,.75fr) minmax(0,1.25fr);gap:12px;padding-top:16px;display:grid}.payroll-settings-summary-section{border:1px solid var(--border);background:#f8fbfd;border-radius:10px;align-content:start;gap:10px;padding:14px;display:grid}.payroll-settings-summary-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding-bottom:10px;display:flex}.payroll-settings-summary-head h3{margin:0;font-size:15px}.payroll-section-edit{min-height:32px;padding:0 10px}.payroll-settings-late-section{grid-column:1/-1}.payroll-reminder-summary,.payroll-tier-summary div{border:1px solid var(--border);background:#fff;border-radius:8px;padding:12px}.payroll-reminder-summary{align-content:center;display:grid}.payroll-tier-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.payroll-tier-summary span,.payroll-tier-range span{color:var(--muted-foreground);font-size:12px;font-weight:800}.payroll-reminder-summary strong,.payroll-tier-summary strong{color:var(--foreground);margin-top:4px;font-size:16px;display:block}.payroll-settings-modal{width:min(100%,860px)}.payroll-settings-modal-grid{gap:14px;display:grid}.payroll-settings-block{border:1px solid var(--border);background:#f8fbfd;border-radius:8px;gap:12px;padding:14px;display:grid}.payroll-settings-block h3{border-bottom:1px solid var(--border);margin:0;padding-bottom:10px;font-size:16px}.payroll-settings-block-head,.payroll-reminder-fields{justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.payroll-settings-block-head{border-bottom:1px solid var(--border);padding-bottom:10px}.payroll-settings-block-head h3{border:0;padding:0}.payroll-reminder-fields{justify-content:flex-start}.payroll-reminder-fields .field{width:min(100%,180px)}.payroll-tier-add{min-height:38px;padding:0 12px}.payroll-tier-actions{justify-content:flex-end;display:flex}.payroll-tier-editor{gap:10px;display:grid}.payroll-deduction-editor{gap:12px;display:grid}.payroll-deduction-row{border:1px solid var(--border);background:#fff;border-radius:8px;grid-template-columns:minmax(150px,1fr) 74px minmax(160px,1.15fr) minmax(150px,1fr);align-items:end;gap:12px;padding:12px;display:grid}.payroll-deduction-toggle{justify-items:start}.payroll-deduction-toggle input[type=checkbox]{accent-color:#2854d9;width:20px;height:20px;min-height:20px;margin:12px 0;padding:0}.payroll-tier-row{border:1px solid var(--border);background:#fff;border-radius:8px;grid-template-columns:minmax(120px,1fr) minmax(130px,160px) minmax(190px,220px) 42px;align-items:end;gap:10px;padding:10px;display:grid}.payroll-tier-range{align-self:center;gap:4px;display:grid}.payroll-tier-range strong{color:var(--foreground);font-size:15px}.payroll-tier-end-static{border:1px dashed var(--border);min-height:44px;color:var(--muted-foreground);border-radius:8px;align-items:center;padding:0 12px;font-size:13px;font-weight:800;display:flex}.payroll-tier-remove{align-self:end}@media (max-width:820px){.settings-admin-tabs{grid-template-columns:repeat(5,minmax(150px,1fr))}.settings-admin-tabs.with-leave{grid-template-columns:repeat(6,minmax(150px,1fr))}.branch-location-branch-form,.branch-location-location-form{grid-template-columns:1fr 1fr}.branch-location-name-field,.branch-location-form-actions{grid-column:1/-1}.branch-location-coordinate-field,.branch-location-number-field{grid-column:span 1}.branch-location-submit{grid-column:span 2}.payroll-settings-summary{grid-template-columns:1fr}.payroll-settings-late-section{grid-column:auto}.payroll-deduction-row{grid-template-columns:minmax(150px,1fr) 74px minmax(150px,1fr)}.payroll-deduction-row>:first-child{grid-column:1/-1}}@media (max-width:520px){.settings-admin-tabs button{padding:6px 2px}.settings-admin-tabs button span{font-size:10px}.branch-location-branch-form,.branch-location-location-form,.branch-location-form-actions,.settings-facts,.payroll-settings-summary,.payroll-tier-summary,.payroll-tier-row,.payroll-deduction-row{grid-template-columns:1fr}.payroll-deduction-row>:first-child{grid-column:auto}.payroll-reminder-fields{flex-direction:column;align-items:stretch}.payroll-reminder-fields .field{width:100%}.payroll-settings-block-head{flex-direction:column;align-items:stretch}.payroll-tier-remove{justify-self:start}.branch-location-name-field,.branch-location-coordinate-field,.branch-location-number-field,.branch-location-form-actions,.branch-location-submit{grid-column:auto}}.field-hint{color:var(--muted-foreground);font-size:12px}.schedule-overview{border-top:1px solid var(--border);gap:14px;padding-top:16px;display:grid}.schedule-overview-head h3{margin:4px 0 0;font-size:18px}.schedule-summary-list{border:1px solid var(--border);border-radius:8px;display:grid;overflow:hidden}.schedule-summary-row{border-bottom:1px solid var(--border);grid-template-columns:minmax(90px,.8fr) minmax(130px,1fr) minmax(150px,1.2fr);align-items:center;gap:12px;min-height:48px;padding:8px 12px;display:grid}.schedule-summary-row:last-child{border-bottom:0}.schedule-summary-row span,.schedule-summary-row small{color:var(--muted-foreground);font-size:12px}.schedule-assignment-panel{gap:18px}.schedule-assignment-form{align-items:end}.compact-schedule-rules .schedule-rule-row{min-height:52px}.schedule-assignment-list{border:1px solid var(--border);background:#fff;border-radius:8px;display:grid;overflow:hidden}.schedule-assignment-row{border-bottom:1px solid var(--border);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;min-height:70px;padding:10px 12px;display:grid}.schedule-assignment-row:last-child{border-bottom:0}.schedule-assignment-icon{color:#007aff;background:#eaf3ff;border-radius:10px;place-items:center;width:36px;height:36px;display:grid}.schedule-assignment-row>div:not(.table-actions){gap:2px;display:grid}.schedule-assignment-row strong{font-size:13px}.schedule-assignment-row span,.schedule-assignment-row small{color:var(--muted-foreground);font-size:12px}.holiday-toolbar-actions{flex-wrap:wrap;align-items:end}.mobile-offline-banner{color:#8a5a00;background:#fff8e8;border:1px solid #f4cf84;border-radius:10px;align-items:center;gap:10px;padding:11px 13px;font-size:12px;display:flex}.mobile-offline-banner span{gap:1px;display:grid}.profile-row span:not(.profile-shield){flex:1}.profile-row .text-button{flex:none}@media (max-width:820px){.schedule-assignment-form{grid-template-columns:1fr 1fr}.schedule-assignment-form .span-2{grid-column:span 2}}@media (max-width:560px){.schedule-assignment-form{grid-template-columns:1fr}.schedule-assignment-form .span-2{grid-column:auto}.holiday-toolbar-actions{width:100%}.holiday-toolbar-actions .button{flex:1}}.holiday-manager{gap:18px}.holiday-year-field{flex:none;width:110px}.holiday-form{grid-template-columns:minmax(0,1fr) minmax(0,2fr);align-items:end}.holiday-list{border:1px solid var(--border);background:#fff;border-radius:8px;display:grid;overflow:hidden}.holiday-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;min-height:56px;padding:8px 12px;display:flex}.holiday-row:last-child{border-bottom:0}.holiday-row>div:first-child{gap:3px;display:grid}.holiday-row strong{color:var(--foreground);font-size:13px}.holiday-row span{color:var(--muted-foreground);font-size:12px}@media (max-width:820px){.holiday-manager .table-toolbar{align-items:flex-start;display:flex}.holiday-form{grid-template-columns:1fr 1fr}}@media (max-width:480px){.holiday-manager .table-toolbar{display:grid}.holiday-year-field{width:100%}.holiday-form{grid-template-columns:1fr}.schedule-summary-row{grid-template-columns:1fr 1fr}.schedule-summary-row small{grid-column:span 2}}.report-manager{container-type:inline-size}.report-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.report-card{border:1px solid var(--border);background:#fff;border-radius:8px;flex-direction:column;gap:16px;min-width:0;padding:16px;display:flex}.report-card-icon{width:44px;height:44px;color:var(--primary);background:#2563eb14;border-radius:8px;place-items:center;display:grid}.report-card-body{gap:10px;min-width:0;display:grid}.report-card-header{align-items:center;gap:12px;min-height:44px;display:flex}.report-card-header .report-card-icon{flex-shrink:0}.report-card-header h3{color:var(--foreground);margin:0;font-size:18px}.report-card-actions{gap:8px;min-width:0;margin-top:auto;display:grid}.report-card-actions .button{width:100%;min-width:0;padding:10px}.report-card-actions .button svg{flex-shrink:0}.report-payroll-actions,.report-payment-actions,.report-attendance-actions,.report-attendance-range{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.report-attendance-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.report-attendance-summary div{border:1px solid var(--border);background:#f8fbfd;border-radius:8px;gap:3px;min-width:0;padding:8px 10px;display:grid}.report-attendance-summary span{min-width:0;color:var(--muted-foreground);text-transform:uppercase;overflow-wrap:anywhere;font-size:10px;font-weight:750;line-height:1.15}.report-attendance-summary strong{color:var(--foreground);font-size:19px;line-height:1.05}.attendance-report-modal{width:min(100%,1080px)}.attendance-report-table-wrap{max-height:min(680px,100svh - 220px)}.attendance-report-table{min-width:920px}.assignment-report-modal{width:min(100%,1280px)}.assignment-report-table-wrap{max-height:min(680px,100svh - 220px)}.assignment-report-table{min-width:1540px}.maps-link{min-width:128px;color:var(--primary);font-size:12px;font-weight:750;line-height:1.3;display:inline-flex}.attendance-report-photo-link{border:1px solid var(--border);background:#f8fbfd;border-radius:8px;justify-content:center;align-items:center;width:58px;height:58px;display:inline-flex;overflow:hidden}.attendance-report-photo{object-fit:cover;width:100%;height:100%;display:block}.report-period-field{width:100%;min-width:0}.report-period-field input{min-width:0}@container (max-width:980px){.report-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@container (max-width:640px){.report-grid{grid-template-columns:1fr}}@container (max-width:360px){.report-attendance-range{grid-template-columns:1fr}.report-attendance-summary{gap:4px}.report-attendance-summary div{padding:7px 6px}.report-attendance-summary span{font-size:9px}.report-attendance-summary strong{font-size:17px}}
