:root{--ink:#1c2433;--ink-soft:#5b6477;--line:#e2e5ec;--bg:#f7f8fa;--panel:#fff;--accent:#2f5d8a;--accent-soft:#eaf1f8;--accent2:#b5780a;--amber:#b5780a;--amber-bg:#fdf3e1;--red:#b3322a;--green:#2f7a4f;--radius-lg:10px;--radius-md:6px;--radius-sm:4px;--panel-glass:#ffffffbf;--shell-glow:radial-gradient(circle at 12% 8%, #6366f11a, transparent 40%), radial-gradient(circle at 90% 6%, #38bdf814, transparent 38%);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0}h1,h2,h3{letter-spacing:-.01em;font-weight:700}button{color:inherit;font-family:inherit}input,select,textarea{color:#1c2433;background:#fff;font-family:inherit}.center-screen{justify-content:center;align-items:center;height:100vh;display:flex}.muted{color:var(--ink-soft);font-size:.9rem}.auth-screen{box-sizing:border-box;background-color:#05070d;background-image:radial-gradient(circle at 20% 15%,#22d3ee47,#0000 42%),radial-gradient(circle at 85% 10%,#a855f738,#0000 40%),radial-gradient(circle at 50% 105%,#6366f129,#0000 45%);background-position:0 0;background-repeat:repeat;background-size:auto;background-attachment:scroll;background-origin:padding-box;background-clip:border-box;justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;transition:background-color .3s;display:flex;position:relative;overflow:hidden}.auth-screen:before{content:"";pointer-events:none;background-image:radial-gradient(#ffffff0f 1px,#0000 1px);background-size:28px 28px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(70% 60% at 50% 40%,#000 40%,#0000 100%);mask-image:radial-gradient(70% 60% at 50% 40%,#000 40%,#0000 100%)}.auth-screen:after{content:"";pointer-events:none;opacity:.35;background-image:radial-gradient(#38bdf880 1px,#0000 1.4px);background-size:16px 16px;height:45%;position:absolute;bottom:-8%;left:-10%;right:-10%;transform:rotate(-3deg)scaleY(.6);-webkit-mask-image:linear-gradient(#0000 10%,#000 90%);mask-image:linear-gradient(#0000 10%,#000 90%)}.auth-screen.light-mode{background-color:#eef1f8;background-image:radial-gradient(circle at 20% 15%,#22d3ee24,#0000 42%),radial-gradient(circle at 85% 10%,#a855f71f,#0000 40%),radial-gradient(circle at 50% 105%,#6366f114,#0000 45%);background-position:0 0;background-repeat:repeat;background-size:auto;background-attachment:scroll;background-origin:padding-box;background-clip:border-box}.auth-screen.light-mode:before{background-image:radial-gradient(#141e320f 1px,#0000 1px)}.auth-screen.light-mode:after{opacity:.25;background-image:radial-gradient(#2f5d8a59 1px,#0000 1.4px)}.auth-card{-webkit-backdrop-filter:blur(22px);--auth-accent:#22d3ee;--auth-accent2:#a855f7;--auth-accent-glow:#22d3ee59;background:#ffffff0f;border:1px solid #ffffff24;border-radius:20px;flex-direction:column;gap:1rem;width:100%;max-width:360px;padding:2.5rem 2rem;display:flex;position:relative;box-shadow:0 8px 40px #00000059,inset 0 1px #ffffff14}.auth-icon-badge{color:#c7d2fe;background:#ffffff14;border:1px solid #ffffff29;border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;margin-bottom:.25rem;display:flex;overflow:hidden}.auth-icon-badge img{object-fit:contain;width:100%;height:100%}.auth-card h1,.auth-card h3{letter-spacing:-.03em;color:#f5f6fa;margin:0;font-size:1.6rem;font-weight:800}.auth-card .muted{color:#e5e7eb99;font-size:.88rem}.auth-card label{color:#e5e7ebbf;flex-direction:column;gap:.35rem;font-size:.82rem;display:flex}.auth-card input{color:#f5f6fa;box-sizing:border-box;background:#ffffff0d;border:1px solid #ffffff24;border-radius:10px;width:100%;padding:.6rem .75rem;font-size:.95rem}.auth-card input::placeholder{color:#e5e7eb59}.auth-card input:focus{border-color:var(--auth-accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--auth-accent) 30%, transparent);outline:none}.auth-card button[type=submit],.auth-card .btn-primary{cursor:pointer;color:#fff;background:linear-gradient(135deg, var(--auth-accent), var(--auth-accent2));box-shadow:0 4px 16px var(--auth-accent-glow);border:none;border-radius:10px;margin-top:.2rem;padding:.7rem;font-size:.95rem;font-weight:600}.auth-card button[type=submit]:disabled,.auth-card .btn-primary:disabled{opacity:.5;cursor:default}.auth-card .btn-secondary,.auth-card .link-btn{cursor:pointer;color:#e5e7ebd9;background:#ffffff0f;border:1px solid #ffffff24;border-radius:10px;padding:.7rem;font-size:.9rem}.auth-card .link-btn{text-align:left;background:0 0;border:none;padding:0;text-decoration:underline}.auth-screen.light-mode .auth-card{background:#ffffffb8;border-color:#141e3214;box-shadow:0 8px 40px #141e321f,inset 0 1px #fff9}.auth-screen.light-mode .auth-icon-badge{color:#2f5d8a;background:#141e320d;border-color:#141e321a}.auth-screen.light-mode .auth-card h1,.auth-screen.light-mode .auth-card h3{color:#1c2433}.auth-screen.light-mode .auth-card .muted{color:#1c243399}.auth-screen.light-mode .auth-card label{color:#1c2433a6}.auth-screen.light-mode .auth-card input{color:#1c2433;background:#ffffffa6;border-color:#141e3224}.auth-screen.light-mode .auth-card input::placeholder{color:#1c243359}.auth-screen.light-mode .auth-card .btn-secondary,.auth-screen.light-mode .auth-card .link-btn{color:#1c2433bf;background:#141e320a;border-color:#141e321a}.auth-screen.light-mode .auth-card .error-text{color:#b3322a}.auth-card .modal-actions{gap:.6rem;margin-top:.2rem;display:flex}.auth-card .modal-actions>*{flex:1}.password-field{display:flex;position:relative}.password-field input{padding-right:2.4rem}.password-toggle{cursor:pointer;color:inherit;opacity:.6;background:0 0;border:none;padding:.3rem;line-height:0;position:absolute;top:50%;right:.4rem;transform:translateY(-50%)}.password-toggle:hover{opacity:1}.error-text{color:var(--red);margin:0;font-size:.85rem}.auth-card .error-text{color:#fca5a5}.app-shell{background-color:var(--bg);background-image:var(--shell-glow);background-attachment:fixed;min-height:100vh}.app-header{background:var(--panel-glass);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--line);z-index:30;align-items:center;gap:1.5rem;height:56px;padding:0 1.5rem;display:flex;position:sticky;top:0}.brand{letter-spacing:-.02em;align-items:center;gap:.5rem;font-weight:800;display:flex}.brand-logo{object-fit:contain;width:auto;max-width:120px;height:24px}.app-header nav{flex:1;gap:.3rem;display:flex}.app-header nav a{color:var(--ink-soft);border:1px solid #0000;border-radius:999px;padding:.4rem .8rem;font-size:.9rem;text-decoration:none}.app-header nav a.active{color:var(--accent);background:var(--accent-soft);border-color:#00000008;font-weight:600}.header-right{align-items:center;gap:.8rem;display:flex}.role-pill{text-transform:uppercase;letter-spacing:.04em;background:var(--accent-soft);color:var(--accent);border-radius:100px;padding:.2rem .55rem;font-size:.75rem}.link-btn{color:var(--ink-soft);cursor:pointer;background:0 0;border:none;font-size:.85rem}.app-switcher{position:relative}.app-switcher-btn{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--panel);width:32px;height:32px;color:var(--ink-soft);cursor:pointer;justify-content:center;align-items:center;display:flex}.app-switcher-btn:hover{background:var(--bg);color:var(--ink)}.app-switcher-menu{z-index:60;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);width:260px;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden;box-shadow:0 8px 28px #141e3224}.app-switcher-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:.7rem .9rem;font-size:.85rem;font-weight:600;display:flex}.app-switcher-hub-link{color:var(--accent);font-size:.78rem;font-weight:500;text-decoration:none}.app-switcher-hub-link.disabled{color:var(--ink-soft);cursor:default}.app-switcher-loading{margin:0;padding:.9rem}.app-switcher-list{flex-direction:column;gap:.15rem;margin:0;padding:.4rem;list-style:none;display:flex}.app-switcher-item{border-radius:var(--radius-md);color:var(--ink);cursor:pointer;align-items:center;gap:.6rem;padding:.55rem .6rem;font-size:.88rem;text-decoration:none;display:flex}.app-switcher-item:not(.disabled):hover{background:var(--bg)}.app-switcher-item.current{background:var(--accent-soft);cursor:default}.app-switcher-item.disabled{color:var(--ink-soft);cursor:default;opacity:.65}.app-switcher-icon{font-size:1.1rem;line-height:1}.app-switcher-name{flex-direction:column;flex:1;gap:.1rem;display:flex}.app-switcher-status{color:var(--ink-soft);font-size:.7rem}.app-switcher-current-tag{text-transform:uppercase;letter-spacing:.03em;background:var(--accent);color:#fff;border-radius:100px;padding:.12rem .4rem;font-size:.68rem}main{max-width:1400px;margin:0 auto;padding:1.5rem}.panel{background:var(--panel-glass);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.25rem 1.5rem}.panel h2{margin:0 0 .2rem;font-size:1.1rem}.notice{background:var(--amber-bg);color:var(--amber);border-radius:var(--radius-md);padding:.5rem .8rem;font-size:.85rem}.data-grid{border-collapse:collapse;width:100%;margin-top:.75rem;font-size:.85rem}.data-grid th,.data-grid td{border-bottom:1px solid var(--line);text-align:left;padding:.5rem .6rem}.data-grid th{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.03em;font-size:.78rem;font-weight:500}.mono{font-variant-numeric:tabular-nums;font-family:SF Mono,Menlo,monospace}.badge{text-transform:capitalize;border-radius:100px;padding:.15rem .5rem;font-size:.72rem}.badge-active{color:var(--green);background:#e7f4ec}.badge-on_leave{background:var(--amber-bg);color:var(--amber)}.badge-terminated,.badge-deceased{color:var(--red);background:#fbe9e8}.badge-pending{background:var(--amber-bg);color:var(--amber);margin-left:.3rem}.grid-header{justify-content:space-between;align-items:center;display:flex}.mode-toggle{border:1px solid var(--line);border-radius:var(--radius-lg);display:flex;overflow:hidden}.mode-toggle button{background:var(--panel);cursor:pointer;color:var(--ink-soft);border:none;padding:.4rem .9rem;font-size:.85rem}.mode-toggle button.active{background:var(--accent);color:#fff}.grid-scroll{max-height:calc(100vh - 300px);margin-top:.5rem;overflow:auto}.register-grid{white-space:nowrap}.register-grid th,.register-grid td{padding:.35rem .4rem}.register-grid thead th{z-index:2;background:var(--panel);position:sticky;top:0}.sticky-col{background:var(--panel);z-index:1;min-width:160px;position:sticky;left:0}.register-grid thead th.sticky-col{z-index:3}.lock-icon{margin-left:.2rem;font-size:.7rem}.locked-cell{background:#f4f4f6}.register-grid select,.register-grid input{border:1px solid var(--line);border-radius:var(--radius-sm);color:#1c2433;background:0 0;width:64px;padding:.25rem;font-size:.82rem}.register-grid select:disabled,.register-grid input:disabled{color:#5b6477;background:#f0f1f3}.grid-header{flex-direction:column;align-items:stretch;gap:.75rem;padding-right:3rem;display:flex}.header-left{flex-direction:column;gap:.4rem;display:flex}.header-right-controls{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.month-nav{align-items:center;gap:.5rem;display:flex}.month-nav button{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-md);cursor:pointer;color:var(--ink-soft);padding:.2rem .6rem;font-size:1.1rem}.month-nav button:hover{background:var(--bg)}.month-label{text-align:center;min-width:90px;font-size:.95rem;font-weight:600}.emp-filter{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--panel);color:var(--ink);min-width:140px;padding:.35rem .5rem;font-size:.85rem}.date-col{text-align:center;min-width:48px}.date-hdr{flex-direction:column;align-items:center;gap:1px;font-size:.75rem;display:flex}.dow{color:var(--ink-soft);font-size:.68rem}.weekend-col{color:#1c2433;background:#f9f9fb}.locked-col{color:var(--ink-soft)}.lock-icon{font-size:.62rem}.agent-name{font-size:.85rem}.agent-code{font-size:.72rem}.att-cell,.ot-cell{text-align:center;padding:.25rem .2rem}.att-cell select,.ot-cell input{border:1px solid var(--line);border-radius:var(--radius-sm);text-align:center;background:0 0;width:46px;padding:.2rem .1rem;font-size:.78rem}.id-col{text-overflow:ellipsis;max-width:150px;font-size:.8rem;overflow:hidden}.id-col-code{width:72px;min-width:72px;left:0}.id-col-name{min-width:170px;left:72px}.muted-cell{color:var(--ink-soft)}.mono{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.78rem}.view-controls{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.date-slicer{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--panel);color:var(--ink);padding:.25rem .4rem;font-family:inherit;font-size:.85rem}.today-btn{padding:.25rem .6rem!important;font-size:.78rem!important}.daily-grid .date-col{min-width:170px}.today-col{color:#1c2433;background:#eef6ff}.weekend-col .dow,.today-col .dow{color:#5b6477}.daily-cell{padding:.35rem .4rem}.daily-cell-row{justify-content:center;align-items:center;gap:.35rem;display:flex}.daily-cell-row select{width:72px}.hours-input{width:58px!important}.hours-short{border-color:var(--amber)!important;background:var(--amber-bg)!important}.hours-unpaid{color:var(--red);font-weight:600;background:#fbe9e8!important;border-color:#e3aaa6!important}.comment-flag{cursor:help;font-size:.7rem}.total-col{text-align:right;background:var(--bg);border-left:1px solid var(--line);min-width:52px;font-size:.8rem;padding:.35rem .55rem!important}th.total-col{text-align:right;font-weight:600}.total-negative{color:var(--red);font-weight:600}.total-strong{font-weight:600}.display-toggle{align-items:center;gap:.4rem;display:flex}.display-toggle-label{color:var(--ink-soft);font-size:.78rem}.display-toggle button{border:1px solid var(--line);background:var(--panel);cursor:pointer;color:var(--ink-soft);border-radius:999px;padding:.28rem .8rem;font-size:.8rem}.display-toggle button.active{background:var(--green);border-color:var(--green);color:#fff}.panel,.export-menu-wrap{position:relative}.export-corner{z-index:20;position:absolute;top:1.1rem;right:1.25rem}.export-icon-btn{align-items:center;padding:.4rem .55rem;display:flex}.export-menu{z-index:50;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);min-width:170px;position:absolute;top:calc(100% + 4px);right:0;overflow:hidden;box-shadow:0 6px 20px #141e321f}.export-menu button{text-align:left;cursor:pointer;width:100%;color:var(--ink);background:0 0;border:none;padding:.55rem .9rem;font-size:.85rem;display:block}.export-menu button:hover{background:var(--bg)}.export-orientation-toggle{border-bottom:1px solid var(--line);display:flex}.export-orientation-toggle button{text-align:center;color:var(--ink-soft);flex:1;padding:.5rem .4rem;font-size:.78rem}.export-orientation-toggle button.active{color:var(--accent);background:var(--bg);font-weight:600}.comment-input{box-sizing:border-box;border:1px solid var(--line);border-radius:var(--radius-md);resize:vertical;width:100%;padding:.5rem;font-family:inherit;font-size:.88rem}.field-label{color:var(--ink-soft);flex-direction:column;gap:.3rem;margin-top:.8rem;font-size:.85rem;display:flex}.field-label select,.field-label input,.field-label textarea{border:1px solid var(--line);border-radius:var(--radius-md);color:var(--ink);background:var(--panel);padding:.45rem .6rem;font-family:inherit;font-size:.9rem}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.ot-pending{background:var(--amber-bg)}.input-pending{color:var(--amber);border-color:var(--amber)!important}.notice{border-radius:var(--radius-md);cursor:pointer;justify-content:space-between;align-items:center;padding:.5rem .9rem;font-size:.85rem;display:flex}.notice-error{color:var(--red);background:#fbe9e8}.notice-info{background:var(--amber-bg);color:var(--amber)}.dismiss{opacity:.6;font-size:.8rem}.modal-overlay{-webkit-backdrop-filter:blur(3px);z-index:100;background:#0a0c1273;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--panel-glass);-webkit-backdrop-filter:blur(24px);border:1px solid var(--line);border-radius:var(--radius-lg);width:90%;max-width:420px;padding:1.75rem;box-shadow:0 12px 40px #0a0c1240}.modal h3{margin:0 0 .75rem;font-size:1rem}.modal p{color:var(--ink-soft);margin:0 0 .6rem;font-size:.9rem}.modal p strong{color:var(--ink)}.modal-actions{justify-content:flex-end;gap:.6rem;margin-top:1.25rem;display:flex}.modal-wide{max-width:780px}.bulk-upload-row{flex-wrap:wrap;align-items:center;gap:.6rem;margin:.75rem 0;display:flex}.file-input-label{cursor:pointer}.dropzone{border:2px dashed var(--line);border-radius:var(--radius-lg);text-align:center;cursor:pointer;margin:.75rem 0;padding:1.5rem;transition:border-color .15s,background .15s}.dropzone:hover{border-color:var(--accent)}.dropzone-active{border-color:var(--accent);background:var(--accent-soft)}.dropzone-icon{margin-bottom:.3rem;font-size:1.8rem}.dropzone p{margin:.15rem 0}.bulk-preview-scroll{border:1px solid var(--line);border-radius:var(--radius-lg);max-height:340px;margin-top:.5rem;overflow-y:auto}.bulk-preview-scroll table{margin:0}.bulk-preview-scroll thead th{background:var(--panel);position:sticky;top:0}.branding-grid{grid-template-columns:200px 1fr;gap:2rem;max-width:640px;margin-top:.5rem;display:grid}.branding-logo-block{flex-direction:column;gap:.5rem;display:flex}.field-label-text{font-size:.85rem;font-weight:500}.branding-logo-preview{border:1px dashed var(--line);border-radius:var(--radius-lg);background:var(--bg);justify-content:center;align-items:center;width:180px;height:90px;display:flex;overflow:hidden}.branding-logo-preview img{object-fit:contain;max-width:100%;max-height:100%}.branding-fields{flex-direction:column;gap:.9rem;display:flex}.color-picker-row{align-items:center;gap:.6rem;display:flex}.color-picker-row input[type=color]{border:1px solid var(--line);border-radius:var(--radius-md);cursor:pointer;width:44px;height:34px;padding:2px}.theme-preset-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.6rem;max-width:720px;display:grid}.theme-preset-card{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--panel);cursor:pointer;color:var(--ink);flex-direction:column;align-items:center;gap:.4rem;padding:.7rem .5rem;font-size:.78rem;display:flex}.theme-preset-card:hover{border-color:var(--accent)}.theme-preset-swatches{gap:.25rem;display:flex}.theme-swatch{border:1px solid #0000001a;border-radius:50%;width:18px;height:18px}.theme-preset-name{text-align:center}.corner-style-row{gap:.4rem;display:flex}.corner-style-row button{border:1px solid var(--line);background:var(--panel);border-radius:var(--radius-md);cursor:pointer;color:var(--ink-soft);padding:.35rem .8rem;font-size:.85rem}.corner-style-row button.active{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary{color:#fff;background:linear-gradient(135deg, var(--accent), color-mix(in srgb, var(--accent) 65%, white));box-shadow:0 3px 12px color-mix(in srgb, var(--accent) 35%, transparent);border-radius:var(--radius-md);cursor:pointer;border:none;padding:.5rem 1.1rem;font-size:.9rem;font-weight:600}.btn-secondary{background:var(--panel-glass);color:var(--ink-soft);-webkit-backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:var(--radius-md);cursor:pointer;padding:.5rem 1.1rem;font-size:.9rem}.legend{flex-wrap:wrap;gap:.4rem;margin-top:.9rem;display:flex}.legend-item{border-radius:var(--radius-sm);color:#1c2433;border:1px solid #00000012;padding:.2rem .5rem;font-size:.72rem}.dashboard,.approvals-page,.terminations-page{flex-direction:column;gap:1.25rem;display:flex}.dash-heading{justify-content:space-between;align-items:flex-start;display:flex}.dash-heading h2{margin:0 0 .2rem}.dash-grid{grid-template-columns:1fr 1fr;gap:1.25rem;display:grid}@media (width<=900px){.dash-grid{grid-template-columns:1fr}}.panel h3{margin:0 0 .75rem;font-size:.95rem;font-weight:600}.stat-cards{grid-template-columns:repeat(4,1fr);gap:.75rem;display:grid}@media (width<=700px){.stat-cards{grid-template-columns:repeat(2,1fr)}}.stat-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.1rem 1.25rem}.stat-value{margin-bottom:.25rem;font-size:2rem;font-weight:700;line-height:1}.stat-label{color:var(--ink-soft);font-size:.8rem}.stat-green .stat-value{color:var(--green)}.stat-red .stat-value{color:var(--red)}.stat-amber .stat-value{color:var(--amber)}.breakdown-list{flex-direction:column;gap:.45rem;margin-top:.5rem;display:flex}.breakdown-row{grid-template-columns:40px 1fr 1fr 36px;align-items:center;gap:.5rem;display:grid}.bdr-code{font-variant-numeric:tabular-nums;font-size:.8rem;font-weight:700}.bdr-desc{font-size:.78rem}.bdr-bar-track{background:var(--line);border-radius:100px;height:8px;overflow:hidden}.bdr-bar-fill{border-radius:100px;height:100%;transition:width .4s}.bdr-count{text-align:right;color:var(--ink-soft);font-size:.8rem}.att-pct{font-size:.85rem;font-weight:600}.pct-green{color:var(--green)}.pct-amber{color:var(--amber)}.pct-red{color:var(--red)}.nav-badge{background:var(--red);color:#fff;vertical-align:middle;border-radius:100px;justify-content:center;align-items:center;min-width:16px;height:16px;margin-left:.35rem;padding:0 4px;font-size:.65rem;font-weight:700;display:inline-flex}.approval-row:hover{background:var(--bg)}.count-badge{background:var(--amber-bg);color:var(--amber);border-radius:100px;justify-content:center;align-items:center;margin-left:.4rem;padding:.1rem .45rem;font-size:.72rem;font-weight:700;display:inline-flex}.action-btns{gap:.35rem;display:flex}.btn-approve{color:var(--green);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;background:#e7f4ec;border:1px solid #b2d9c0;padding:.3rem .65rem;font-size:.8rem}.btn-approve:hover{background:#d0edda}.btn-reject{color:var(--red);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;background:#fbe9e8;border:1px solid #e8b0ad;padding:.3rem .65rem;font-size:.8rem}.btn-reject:hover{background:#f5d3d1}.btn-approve:disabled,.btn-reject:disabled{opacity:.5;cursor:default}.badge-ottype{text-transform:capitalize}.badge-kind{color:#5b4a8a;background:#efeafc;font-weight:600}.badge-normal{color:var(--ink-soft);background:#f4f4f6}.badge-sunday{background:var(--amber-bg);color:var(--amber)}.badge-public_holiday{color:var(--accent);background:#eaf1f8}.term-month-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.term-month-header h3{margin:0}.sp-list td{vertical-align:top}.sp-row:hover{background:var(--bg)}.sp-row:hover .edit-hint{opacity:1}.editable-cell{cursor:pointer;align-items:center;gap:.3rem;display:inline-flex}.editable-cell:hover{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.edit-hint{color:var(--ink-soft);opacity:0;font-size:.7rem;transition:opacity .15s}.form-grid{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.form-grid label{color:var(--ink-soft);flex-direction:column;gap:.3rem;font-size:.85rem;display:flex}.form-grid label select,.form-grid label input,.form-grid label textarea{border:1px solid var(--line);border-radius:var(--radius-md);color:var(--ink);background:var(--panel);padding:.45rem .6rem;font-size:.9rem}.req{color:var(--red)}.admin-page{flex-direction:column;gap:1rem;display:flex}.admin-tabs{border-bottom:2px solid var(--line);gap:0;display:flex}.admin-tabs button{cursor:pointer;color:var(--ink-soft);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;padding:.55rem 1.1rem;font-size:.9rem}.admin-tabs button.active{color:var(--accent);border-color:var(--accent);font-weight:500}.admin-panel{padding:1.25rem 1.5rem}.tab-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.codes-grid td,.codes-grid th{padding:.4rem .55rem}.num{text-align:center;font-variant-numeric:tabular-nums;font-size:.82rem}.badge-codetype{text-transform:capitalize;font-size:.72rem}.badge-attendance{color:var(--green);background:#e7f4ec}.badge-scheduling{background:var(--accent-soft);color:var(--accent)}.badge-lifecycle{color:var(--red);background:#fbe9e8}.toggle{width:36px;height:20px;display:inline-block;position:relative}.toggle input{opacity:0;width:0;height:0}.toggle span{background:var(--line);cursor:pointer;border-radius:100px;transition:all .2s;position:absolute;inset:0}.toggle input:checked+span{background:var(--accent)}.toggle span:before{content:"";background:#fff;border-radius:50%;width:14px;height:14px;transition:all .2s;position:absolute;bottom:3px;left:3px}.toggle input:checked+span:before{transform:translate(16px)}.add-form{background:var(--bg);border:1px dashed var(--line);margin-bottom:1rem}.code-form-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.6rem;margin:.75rem 0;display:grid}.code-form-grid label{color:var(--ink-soft);flex-direction:column;gap:.25rem;font-size:.8rem;display:flex}.code-form-grid input,.code-form-grid select{border:1px solid var(--line);border-radius:var(--radius-sm);padding:.35rem .5rem;font-size:.85rem}.code-form-grid .check-label{flex-direction:row;align-items:center;gap:.4rem}.code-form-grid .check-label input{width:auto}.role-select{border:1px solid var(--line);border-radius:var(--radius-sm);padding:.3rem .5rem;font-size:.85rem}.policy-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem;max-width:780px;margin-top:.5rem;display:grid}.policy-grid label{flex-direction:column;gap:.35rem;display:flex}.policy-grid label>span{font-size:.85rem;font-weight:500}.policy-grid input{border:1px solid var(--line);border-radius:var(--radius-md);max-width:140px;padding:.45rem .6rem;font-size:.95rem}.policy-grid small{font-size:.75rem;line-height:1.3}.rate-input{border:1px solid var(--line);border-radius:var(--radius-sm);text-align:right;width:90px;padding:.35rem .5rem;font-size:.85rem}.holiday-add{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.holiday-add input{border:1px solid var(--line);border-radius:var(--radius-md);padding:.4rem .6rem;font-size:.88rem}.holiday-add .btn-reject,.data-grid .btn-reject{padding:.3rem .7rem;font-size:.8rem}.pw-set-row{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.pw-set-row input{border:1px solid var(--line);border-radius:var(--radius-sm);min-width:180px;padding:.35rem .5rem;font-size:.85rem}.pw-set-row .btn-primary,.pw-set-row .btn-secondary{padding:.35rem .7rem;font-size:.8rem}
