:root{font-family:Segoe UI,Arial,sans-serif;color:#17262d;background:#f5f7f8;font-synthesis:none;font-feature-settings:"kern" 1,"tnum" 1;--brand-900: #073f4d;--brand-800: #064f5e;--brand-700: #086a73;--brand-600: #087f83;--brand-500: #0d9698;--brand-400: #25acab;--canvas: #f5f7f8;--surface: #fff;--surface-subtle: #fafbfb;--text-primary: #17262d;--text-secondary: #61717a;--text-muted: #8a989f;--border: #dee5e7;--border-subtle: #e9eef0;--success: #24815d;--warning: #b77a24;--danger: #bf4545;--teal: var(--brand-600);--teal-dark: var(--brand-800);--navy: var(--brand-900);--navy-deep: var(--brand-900);--text: var(--text-primary);--muted: var(--text-secondary);--line: var(--border)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--canvas)}button,input,select,textarea{font:inherit}button{cursor:pointer;transition:background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--brand-500);outline-offset:2px}table,.day-cell,.freshness{font-variant-numeric:tabular-nums}.app-shell{min-height:100vh;background:var(--canvas)}.app-workspace{min-width:0;min-height:100vh;background:var(--canvas)}.app-header{min-height:72px;padding:0 max(32px,calc((100vw - 1440px)/2));display:flex;align-items:center;gap:18px;color:#fff;background:var(--brand-900)}.sidebar-logo{order:1;width:116px;height:52px;flex:0 0 116px;display:flex;align-items:center}.sidebar-logo img{width:112px;height:46px;object-fit:contain}.header-title{order:2;min-width:180px}.header-title span{display:none}.header-title h1{margin:0 0 3px;color:#fff;font-size:17px;font-weight:700;letter-spacing:-.02em;line-height:1.1;white-space:nowrap}.header-title p{margin:0;color:#b8d0d4;font-size:11px}.sidebar-nav{order:3;margin:0 auto;min-width:0;display:flex;align-items:center;gap:22px}.sidebar-nav button{min-height:72px;padding:0 1px;color:#b7cdd1;background:transparent;border:0;border-bottom:2px solid transparent;border-radius:0;font-size:12px;font-weight:600;white-space:nowrap}.sidebar-nav button:hover{color:#fff}.sidebar-nav button.active{color:#fff;border-bottom-color:var(--brand-400)}.header-account{order:4;min-width:0;display:flex;align-items:center;gap:12px;color:#e6eff1;font-size:12px}.header-account span{max-width:142px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-account button{min-height:34px;padding:6px 11px;color:#fff;background:transparent;border:1px solid #668b94;border-radius:7px;font-size:12px;font-weight:600}.header-account button:hover{background:#ffffff18;border-color:#afcdd1}.mobile-menu-toggle{display:none}.auth-loading,.login-page{min-height:100vh;display:grid;place-items:center;color:#fff;background:#56717a url(/itramas-building.png) center / cover fixed;background-blend-mode:multiply}.auth-loading{font-size:14px}.login-card{width:min(420px,calc(100vw - 32px));padding:34px;color:#17384f;background:#f8fbfc;border:1px solid #80a9b7;border-top:4px solid #1fb9b5;border-radius:12px;box-shadow:0 24px 70px #001a2b80}.login-card>img{width:150px;height:58px;margin-bottom:24px;display:block;object-fit:contain;object-position:left center}.login-card h1{margin:6px 0 5px;color:#092d4a;font-size:27px;letter-spacing:-.025em}.login-card>p{margin:0 0 24px;color:#657d8d;font-size:13px}.login-card form,.login-card label{display:grid}.login-card form{gap:16px}.login-card label{gap:6px;color:#345267;font-size:11px;font-weight:700}.login-card input{height:43px;padding:0 12px;color:#17384f;background:#fff;border:1px solid #b9cdd5;border-radius:6px;outline:none}.login-card input:focus{border-color:#078b91;box-shadow:0 0 0 3px #078b911a}.login-card form>button{height:43px;color:#fff;background:#078b91;border:1px solid #06787d;border-radius:6px;font-weight:700}.login-card form>button:disabled{cursor:wait;opacity:.65}.login-error{padding:10px 12px;color:#8a2632;background:#fff0f2;border:1px solid #efc1c8;border-radius:5px;font-size:11px}.my-leave-page{display:grid;gap:20px;margin:0 auto;color:var(--text-primary)}.my-leave-hero{min-height:0;padding:0 0 20px;display:flex;align-items:center;border-bottom:1px solid var(--border)}.my-leave-hero-copy{position:relative;z-index:1}.my-leave-hero-copy{max-width:520px}.my-leave-hero .eyebrow{display:none}.my-leave-hero h2{margin:0 0 7px;color:var(--text-primary);font-size:30px;letter-spacing:-.025em}.my-leave-hero p{margin:0;color:var(--text-secondary);font-size:15px;line-height:1.5}.my-leave-workspace{display:grid;grid-template-columns:minmax(0,1fr);gap:20px}.my-leave-section{color:var(--text-primary);background:var(--surface);border:1px solid var(--border);border-radius:11px;box-shadow:0 1px 2px #10242c0a;overflow:hidden}.my-leave-section-heading{min-height:68px;padding:14px 19px;display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff;border-bottom:1px solid #dbe6ea}.my-leave-section-heading>div{display:grid;gap:3px}.my-leave-section-heading h3{margin:0;color:#092d4a;font-size:18px;letter-spacing:-.015em}.my-leave-section-heading>span{color:#6b8290;font-size:10px}.my-leave-section-heading .section-kicker{color:#078b91;font-size:9px;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.write-status{padding:6px 9px;color:#765310!important;background:#fff2cc;border:1px solid #f0d78b;border-radius:20px;font-weight:750}.write-status.enabled{color:#12633f!important;background:#e1f6e9;border-color:#b9e4ca}.leave-page-state{padding:42px 18px;color:#607887;text-align:center;font-size:12px}.leave-page-state.error{color:#8a2632;background:#fff1f2}.balance-card-grid{padding:18px;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));align-items:start;gap:12px}.balance-card{padding:15px;background:#fff;border:1px solid #d2e0e5;border-radius:9px;box-shadow:0 2px 8px #0b32450d;transition:transform .15s ease,border-color .15s ease}.balance-card:hover{transform:translateY(-1px);border-color:#74b9ba}.balance-card header{display:flex;justify-content:space-between;gap:14px}.balance-card header b{color:#078b91;font-size:10px;letter-spacing:.09em}.balance-card h4{margin:3px 0 0;color:#16384f;font-size:13px}.balance-card header>strong{color:#092d4a;font-size:24px;text-align:right}.balance-card header>strong small{display:block;color:#728794;font-size:8px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.balance-card dl{margin:13px 0 11px;display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.balance-card dl div{padding:8px;background:#f1f6f7;border-radius:6px}.balance-card dt{color:#718791;font-size:8px;text-transform:uppercase}.balance-card dd{margin:3px 0 0;color:#16384f;font-size:12px;font-weight:750}.balance-card details{color:#527080;font-size:10px}.balance-card summary{cursor:pointer;color:#087a82;font-weight:750}.balance-details{margin-top:9px;display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.balance-details span{min-width:0;display:grid}.balance-details small{overflow:hidden;color:#7b909b;text-overflow:ellipsis;white-space:nowrap}.balance-details b{overflow-wrap:anywhere;color:#284d61}.my-leave-table-wrap{overflow-x:auto}.balance-report-scroll{max-width:100%;overflow-x:auto}.balance-report{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;white-space:nowrap}.balance-report th,.balance-report td{padding:12px 16px;border-bottom:1px solid #e5eaee;border-right:1px solid #eef1f4;text-align:right}.balance-report thead th{background:#f4f7f9;color:#526575;font-size:12px;font-weight:600}.balance-report tr>:first-child{position:sticky;left:0;z-index:1;background:#fff;text-align:left;border-right-color:#ccd7df}.balance-report thead tr>:first-child{background:#f4f7f9}.balance-report tr>:nth-child(2){text-align:left}.balance-report tbody tr:last-child>*{border-bottom:0}.balance-report .balance-report-total{color:#096d73;background:#f0f8f7;font-weight:700}.balance-report-footer{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:12px 20px;border-top:1px solid #e5eaee;color:#62717f;font-size:12px}.leave-history-pagination{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:14px 20px;border-top:1px solid #e5eaee;color:#62717f;font-size:12px;background:#fafbfc}.leave-history-pagination>div{display:flex;align-items:center;gap:12px}.leave-history-pagination button{padding:7px 12px;border:1px solid #ced8df;border-radius:5px;color:#29485b;background:#fff;font-size:12px}.leave-history-pagination button:hover:not(:disabled){background:#edf5f5;border-color:#087f87}.leave-history-pagination button:disabled{opacity:.45;cursor:default}.my-leave-table{width:100%;border-collapse:collapse}.my-leave-table th{padding:11px 16px;color:#6c8290;background:#f2f6f8;border-bottom:1px solid #dbe5e9;font-size:9px;letter-spacing:.07em;text-align:left;text-transform:uppercase}.my-leave-table td{padding:14px 16px;color:#365568;border-bottom:1px solid #e5ecef;font-size:11px;vertical-align:middle}.my-leave-table tbody tr:last-child td{border-bottom:0}.my-leave-table tbody tr:hover{background:#f7fbfc}.my-leave-table td strong{display:block;color:#123b52}.my-leave-table td small{display:block;margin-top:3px;color:#728895}.my-leave-table .history-date{white-space:nowrap}.history-remark{max-width:260px;color:#5d7482!important}.withdraw-leave-button{border:1px solid #e2a9a2;border-radius:6px;background:#fff;color:#a8352b;padding:7px 11px;font-size:10px;font-weight:750;transition:background .15s ease,border-color .15s ease}.withdraw-leave-button:hover{border-color:#b42318;background:#fff3f1}.withdraw-modal{width:min(520px,94vw)}.withdraw-modal .modal-body{overflow:visible}.withdraw-modal-header{display:flex;align-items:center;gap:13px}.withdraw-modal-header p{margin:4px 0 0;color:#71838f;font-size:11px}.withdraw-warning-icon{width:38px;height:38px;display:grid;place-items:center;flex:0 0 38px;color:#a8352b;background:#fff0ed;border:1px solid #f0c3bd;border-radius:50%;font-size:19px;font-weight:800}.withdraw-summary{display:grid;gap:8px;margin:18px;padding:16px;color:#365568;background:#f6f9fa;border:1px solid #dce7ea;border-radius:8px}.withdraw-summary p{margin:0}.withdraw-summary strong{color:#123b52}.withdraw-actions{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;background:#f7f9fa;border-top:1px solid #dde6e9}.withdraw-actions button{border:1px solid #b8c8ce;border-radius:6px;background:#fff;color:#27485a;padding:9px 14px;font-weight:700}.withdraw-actions button.danger{border-color:#b42318;background:#b42318;color:#fff}.withdraw-actions button.danger:hover{background:#941d14}.withdraw-actions button:disabled{cursor:wait;opacity:.6}.my-leave-status{padding:5px 9px;display:inline-flex;align-items:center;gap:5px;border-radius:14px;font-size:9px;font-weight:750}.my-leave-status i{width:5px;height:5px;background:currentColor;border-radius:50%}.leave-application-form{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:15px;padding:20px}.leave-type-picker{grid-column:1 / -1;margin:0;padding:0;border:0}.leave-type-picker legend{margin-bottom:8px;color:#365568;font-size:11px;font-weight:750}.leave-type-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:9px}.leave-type-options button{min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #cedde2;border-radius:9px;background:#fff;color:#123b52;padding:11px 13px;text-align:left;cursor:pointer;box-shadow:0 2px 6px #0b334b0d}.leave-type-options button:hover{border-color:#5caeb4;background:#f5fbfb}.leave-type-options button.selected{border-color:#008d96;background:#e7f7f5;box-shadow:inset 3px 0 #008d96,0 0 0 2px #008d961e}.leave-type-options button span,.leave-type-options button b{display:grid;gap:2px}.leave-type-options button strong{font-size:13px}.leave-type-options button small{color:#6b8290;font-size:9px;font-weight:600}.leave-type-options button b{color:#087a82;font-size:14px;text-align:right}.leave-application-form label{display:grid;gap:6px;color:#365568;font-size:11px;font-weight:700}.leave-application-form input,.leave-application-form select,.leave-application-form textarea{width:100%;box-sizing:border-box;border:1px solid #c1d2d8;border-radius:7px;background:#fff;color:#092d4a;padding:11px 12px;font:inherit;font-size:12px;transition:border-color .15s ease,box-shadow .15s ease}.leave-application-form input:focus,.leave-application-form select:focus,.leave-application-form textarea:focus{outline:2px solid #24abb1;outline-offset:1px}.leave-application-remark{grid-column:1 / -1}.leave-application-approver{grid-column:1 / -1;display:flex;align-items:center;gap:16px;padding:13px 15px;border:1px solid #d7e3e7;border-radius:6px;background:#f7fafb;color:#365568}.leave-application-approver>span,.leave-review-approver>span{min-width:72px;font-size:12px;font-weight:700;color:#607783}.leave-application-approver div{display:grid;gap:2px}.leave-application-approver strong{color:#173c50;font-size:14px}.leave-application-approver small{color:#607783;font-size:12px}.leave-application-approver p{margin:0;color:#607783;font-size:13px}.leave-time-range{grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px;max-width:650px}.leave-time-picker{min-width:0;margin:0;padding:0;border:0}.leave-time-picker legend{margin-bottom:6px;color:#365568;font-size:13px;font-weight:600}.leave-time-picker>div{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px}.leave-time-range>small{grid-column:1 / -1;color:#62717f;font-size:12px}@media(max-width:480px){.leave-time-range{grid-template-columns:1fr}}.leave-application-actions{grid-column:1 / -1;padding-top:4px;display:flex;align-items:center;gap:14px}.leave-application-actions button{min-height:42px;display:inline-flex;align-items:center;gap:18px;border:0;border-radius:7px;background:#087f87;color:#fff;padding:10px 17px;font-weight:750;cursor:pointer;box-shadow:0 4px 10px #087f8729}.leave-application-actions button:disabled{opacity:.55;cursor:not-allowed}.leave-application-actions small{color:#6b8290}.leave-application-message{margin:14px 18px 0;border-radius:7px;padding:11px 13px;font-size:12px}.leave-application-message.error{background:#fff0f0;color:#991b1b}.leave-application-message.success{background:#e5f7ef;color:#166044}.leave-submit-confirmation{margin:0 18px 18px;padding:20px;border:1px solid #dee5e7;border-radius:10px;background:#fff;color:#173c50}.leave-review-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.leave-review-heading h4{margin:0;font-size:16px;font-weight:700}.leave-review-badge{flex:none;padding:5px 9px;border-radius:999px;background:#e8f4f4;color:#176c73;font-size:10px;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.leave-review-request{display:grid;gap:4px;margin-bottom:20px}.leave-review-request strong{font-size:19px;line-height:1.25}.leave-review-request span{color:#607783;font-size:12px}.leave-review-request time{margin-top:8px;font-size:14px;font-weight:650}.leave-review-approver{display:grid;gap:6px;padding:16px 0;border-top:1px solid #dee5e7}.leave-review-approver div{display:grid;gap:3px}.leave-review-approver strong{color:#173c50;font-size:13px;overflow-wrap:anywhere}.leave-review-approver small{color:#607783;font-size:12px}.leave-review-footer{padding-top:14px;border-top:1px solid #dee5e7}.leave-review-footer p{margin:0;color:#607783;font-size:12px}.leave-submit-confirmation button{border:0;border-radius:7px;background:#087f87;color:#fff;padding:10px 16px;font-weight:750;cursor:pointer}.leave-submit-confirmation button:disabled{opacity:.55;cursor:not-allowed}.status-a{color:#12633f;background:#d8f2e5}.status-p{color:#765310;background:#fff0c7}.status-r{color:#892d39;background:#f9dce1}.status-c,.status-unknown{color:#536b78;background:#dfe8ec}.my-leave-page .section-kicker{display:none}.my-leave-page .my-leave-hero h2{margin:0 0 6px;color:#203449;font-size:28px;font-weight:650;letter-spacing:-.02em}.my-leave-page .my-leave-hero p{color:#62717f;font-size:14px}.my-leave-page .my-leave-hero-copy{max-width:none}.my-leave-page .my-leave-section{background:#fff;border-color:#dce2e7;border-radius:8px;box-shadow:none;min-width:0}.my-leave-page .my-leave-section-heading{min-height:58px;padding:16px 20px}.my-leave-page .my-leave-section-heading h3{font-size:17px;font-weight:650}.my-leave-page .my-leave-section-heading>span{font-size:12px}.my-leave-page .write-status.enabled{display:none}.my-leave-page .balance-card{box-shadow:none;border-radius:6px;padding:14px}.my-leave-page .balance-card:hover{transform:none;border-color:#d2e0e5}.my-leave-page .balance-card header b{font-size:12px;letter-spacing:0}.my-leave-page .balance-card header>strong{font-size:22px}.my-leave-page .balance-card details{margin-top:12px;font-size:12px}.my-leave-page .balance-card dt{font-size:10px}.my-leave-page .balance-card dl{grid-template-columns:repeat(2,1fr)}.my-leave-page .balance-card .balance-full-details{padding-top:10px;border-top:1px solid #e5eaee}.my-leave-page .balance-full-details dt{text-transform:none;line-height:1.4}.my-leave-page .balance-full-details dd{overflow-wrap:anywhere}.my-leave-page .leave-type-options{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.my-leave-page .leave-type-options button{box-shadow:none;border-radius:6px}.my-leave-page .leave-type-options button.selected{box-shadow:inset 3px 0 #087f87;background:#f0f8f7}.my-leave-page .leave-type-options button small{font-size:12px;font-weight:400;line-height:1.4}.my-leave-page .leave-application-form label,.my-leave-page .leave-type-picker legend{font-size:13px;font-weight:600}.my-leave-page .leave-application-form input,.my-leave-page .leave-application-form select,.my-leave-page .leave-application-form textarea{font-size:14px;border-radius:5px}.my-leave-page .leave-application-actions{border-top:1px solid #e5eaee;padding-top:18px}.my-leave-page .leave-application-actions button{border-radius:5px;box-shadow:none;font-size:14px}.my-leave-page .leave-application-actions small{font-size:12px}.my-leave-page .my-leave-table th{font-size:11px;letter-spacing:.025em}.my-leave-page .my-leave-table td{font-size:13px}.my-leave-page .my-leave-status,.my-leave-page .withdraw-leave-button{font-size:12px}.my-leave-page button:focus-visible,.my-leave-page summary:focus-visible{outline:2px solid #087f87;outline-offset:3px}@media(max-width:1100px){.my-leave-workspace{grid-template-columns:1fr}.balance-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.my-leave-page{gap:16px}.my-leave-page .leave-type-options{grid-template-columns:1fr}.my-leave-hero{align-items:stretch;flex-direction:column}.balance-card-grid{grid-template-columns:1fr}.my-leave-section-heading{align-items:flex-start;flex-direction:column;gap:3px}.my-leave-table{min-width:720px}.leave-application-form{grid-template-columns:1fr}.leave-application-remark,.leave-application-actions{grid-column:auto}.leave-application-actions{align-items:stretch;flex-direction:column}.leave-application-actions button{justify-content:space-between}}.leave-approval-page{max-width:1440px;min-height:calc(100vh - 140px);margin:0 auto;padding:20px;color:#17384f;background:#f2f6f7;border:1px solid #bfd0d6;border-radius:12px;box-shadow:0 14px 36px #001c2c4d}.approval-hero{min-height:126px;padding:24px 28px 34px;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;color:var(--text-primary);background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden}.approval-kicker{display:block;margin-bottom:8px;color:#8fe0db;font-size:10px;font-weight:750;letter-spacing:.14em;text-transform:uppercase}.approval-hero h2{margin:0 0 7px;color:#fff;font-size:28px;font-weight:700;letter-spacing:-.025em}.approval-hero p{margin:0;color:#d6e9ed;font-size:13px}.approval-data-source{padding:7px 9px;color:#d8e9ec;background:#ffffff12;border:1px solid #ffffff35;border-radius:5px;font-size:10px;white-space:nowrap}.approval-data-source b{margin-left:5px;padding:3px 6px;color:#094354;background:#d9f1ef;border-radius:3px;font-size:9px;letter-spacing:.04em;text-transform:uppercase}.approval-summary{position:relative;z-index:1;margin:-22px 18px 20px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.approval-summary article{min-height:86px;padding:16px 18px;display:flex;align-items:center;justify-content:space-between;background:#fff;border:1px solid #d7e2e6;border-radius:8px;box-shadow:0 5px 16px #173c5017}.approval-summary article>div{display:grid;grid-template-columns:8px 1fr;align-items:center;gap:3px 9px}.approval-summary article i{width:8px;height:8px;grid-row:1 / 3;background:#9aabb4;border-radius:50%;box-shadow:0 0 0 4px #9aabb41a}.approval-summary article.pending i{background:#d39a25;box-shadow:0 0 0 4px #d39a251b}.approval-summary article.approved i{background:#299263;box-shadow:0 0 0 4px #2992631b}.approval-summary article.rejected i{background:#bd5965;box-shadow:0 0 0 4px #bd59651b}.approval-summary span{color:#365366;font-size:12px;font-weight:750}.approval-summary small{color:#7a8d97;font-size:10px}.approval-summary strong{color:#123b51;font-size:28px;line-height:1}.approval-panel{background:#fff;border:1px solid #d3dfe4;border-radius:9px;box-shadow:0 5px 18px #173c5012;overflow:hidden}.approval-tabs{min-height:56px;padding:0 18px;display:flex;align-items:stretch;gap:6px;border-bottom:1px solid #dfe7ea}.approval-tabs button{min-width:112px;height:56px;padding:0 12px;color:#667b86;background:transparent;border:0;border-bottom:3px solid transparent;font-size:12px;font-weight:700;cursor:pointer}.approval-tabs button:hover{color:#08777e;background:#f5fafa}.approval-tabs button[aria-selected=true]{color:#08777e;background:#f0f8f8;border-bottom-color:#0a9296}.approval-tabs button span{margin-left:5px;padding:2px 6px;color:#647985;background:#e8eef0;border-radius:10px;font-size:9px}.approval-filters{padding:16px 18px;display:flex;gap:12px;background:#f7f9fa;border-bottom:1px solid #e0e7ea}.approval-filters label{width:min(360px,55%);display:grid;gap:6px;color:#496474;font-size:10px;font-weight:750;letter-spacing:.02em}.approval-filters label:last-child{width:min(260px,40%)}.approval-filters input,.approval-filters select{height:40px;padding:0 11px;color:#17384f;background:#fff;border:1px solid #becfd6;border-radius:5px;font:inherit;font-size:12px;transition:border-color .15s ease,box-shadow .15s ease}.approval-filters input:hover,.approval-filters select:hover{border-color:#8daab4}.approval-filters input:focus,.approval-filters select:focus{border-color:#098c90;box-shadow:0 0 0 3px #098c9015}.approval-table-wrap{width:100%;overflow:auto}.approval-table{width:100%;min-width:1060px;border-collapse:collapse}.approval-table th{padding:11px 14px;color:#54707e;background:#edf3f5;border-bottom:1px solid #d4e0e4;font-size:9px;font-weight:750;letter-spacing:.055em;text-align:left;text-transform:uppercase}.approval-table td{padding:14px;color:#365568;border-bottom:1px solid #e5ecef;font-size:11px;vertical-align:middle}.approval-table tbody tr{transition:background .12s ease}.approval-table tbody tr:hover{background:#f6fbfb}.approval-table tr:last-child td{border-bottom:0}.approval-table td strong,.approval-table td small{display:block}.approval-table td strong{color:#123b51;font-size:11px}.approval-table td small{margin-top:3px;color:#748994;font-size:9px}.approval-remark{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.approval-status{padding:5px 9px;display:inline-flex;align-items:center;gap:5px;border-radius:14px;font-size:9px;font-weight:750}.approval-status:before{content:"";width:5px;height:5px;background:currentColor;border-radius:50%}.approval-status.pending{color:#765310;background:#fff0c7}.approval-status.approved{color:#12633f;background:#d8f2e5}.approval-status.rejected{color:#892d39;background:#f9dce1}.approval-view{min-width:54px;padding:7px 12px;color:#08777e;background:#fff;border:1px solid #78b6ba;border-radius:5px;font-size:10px;font-weight:750;cursor:pointer;transition:color .15s ease,background .15s ease,border-color .15s ease}.approval-view:hover{color:#fff;background:#087f87;border-color:#087f87}.approval-state{min-height:190px;padding:30px;display:grid;place-content:center;gap:8px;color:#6c808b;text-align:center}.approval-state.error{color:#8d3340;background:snow}.approval-state p{margin:0}.approval-state button{justify-self:center;padding:7px 13px;color:#fff;background:#087f87;border:0;border-radius:5px}.approval-skeleton{width:180px;height:10px;background:#e3e9ec;border-radius:6px}.approval-detail{width:min(820px,94vw)}.approval-close{width:34px;height:34px;color:#536b78;background:#f2f5f6;border:1px solid #d7e1e5;border-radius:50%;font-size:21px;cursor:pointer}.approval-detail-body{padding:18px;display:grid;gap:14px;overflow:auto}.approval-detail-body section{padding:15px;border:1px solid #e0e7ea;border-radius:7px}.approval-detail-body h3{margin:0 0 13px;color:#173c50;font-size:13px}.approval-detail-body dl{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 24px}.approval-detail-body dl div{min-width:0}.approval-detail-body dt{margin-bottom:4px;color:#748791;font-size:10px;font-weight:700;text-transform:uppercase}.approval-detail-body dd{margin:0;color:#203f51;font-size:13px;overflow-wrap:anywhere}.approval-detail-wide{grid-column:1 / -1}.approval-detail-actions{padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap:20px;background:#f7f9fa;border-top:1px solid #dfe6e9}.approval-detail-actions p{max-width:480px;margin:0;color:#687c87;font-size:11px}.approval-detail-actions div{display:flex;gap:8px}.approval-detail-actions button{min-width:90px;padding:9px 14px;border:1px solid #becbd1;border-radius:5px;font-weight:700}.approval-detail-actions button:disabled{color:#87959c;background:#e8edef;cursor:not-allowed}.approval-detail-actions button:not(:disabled):last-child,.approval-confirmation-actions button:last-child{color:#fff;background:#087f87;border-color:#087f87}.approval-action-success{margin:0 0 14px;padding:11px 14px;color:#12633f;background:#e1f5e9;border:1px solid #acd9bf;border-radius:6px;font-size:12px;font-weight:700}.approval-confirmation{width:min(620px,94vw)}.approval-confirmation-body{padding:20px;display:grid;gap:18px}.approval-confirmation-body dl{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 22px}.approval-confirmation-body dt{margin-bottom:4px;color:#748791;font-size:9px;font-weight:750;text-transform:uppercase}.approval-confirmation-body dd{margin:0;color:#203f51;font-size:12px}.approval-confirmation-body label{display:grid;gap:6px;color:#496474;font-size:10px;font-weight:750}.approval-confirmation-body textarea{min-height:82px;padding:10px;resize:vertical;border:1px solid #becfd6;border-radius:5px;font:inherit;font-size:12px}.approval-action-error{padding:10px 12px;color:#8d3340;background:#fff1f2;border:1px solid #efc4c8;border-radius:5px;font-size:11px}.approval-confirmation-actions{padding:14px 20px;display:flex;justify-content:flex-end;gap:9px;background:#f7f9fa;border-top:1px solid #dfe6e9}.approval-confirmation-actions button{min-width:112px;padding:9px 14px;border:1px solid #becbd1;border-radius:5px;font-weight:700}.approval-confirmation-actions button:disabled{opacity:.6;cursor:wait}.leave-approval-page button:focus-visible,.leave-approval-page input:focus-visible,.leave-approval-page select:focus-visible{outline:2px solid #087f87;outline-offset:2px}@media(max-width:720px){.leave-approval-page{min-height:0;padding:12px}.approval-hero{min-height:0;padding:20px;align-items:flex-start;flex-direction:column}.approval-summary{margin:12px 0;grid-template-columns:1fr}.approval-summary article{min-height:72px}.approval-tabs{padding:0 8px;overflow-x:auto}.approval-tabs button{min-width:94px}.approval-filters{flex-direction:column}.approval-filters label,.approval-filters label:last-child{width:100%}.approval-detail-body dl{grid-template-columns:1fr}.approval-detail-wide{grid-column:auto}.approval-detail-actions{align-items:stretch;flex-direction:column}.approval-detail-actions div{justify-content:flex-end}}.profile-page{width:min(1180px,100%);margin:0 auto;padding:0 0 26px;display:grid;gap:14px;color:#17384f}.profile-hero{position:relative;min-height:158px;padding:22px 24px;display:grid;grid-template-columns:auto minmax(250px,.9fr) minmax(430px,1.35fr);align-items:center;gap:20px;color:var(--text-primary);background:var(--surface);border:1px solid var(--border);border-radius:11px;overflow:hidden}.profile-hero:after{content:"";position:absolute;inset:auto -65px -100px auto;width:260px;height:260px;border:42px solid #ffffff0a;border-radius:50%;pointer-events:none}.profile-avatar{position:relative;z-index:1;width:94px;height:94px;display:grid;place-items:center;color:var(--brand-800);background:#e7f3f2;border:1px solid #c3dfdf;border-radius:50%;font-size:29px;font-weight:800;letter-spacing:-.03em}.profile-identity{position:relative;z-index:1;min-width:0}.profile-identity>span{color:#92e5df;font-size:9px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.profile-identity h2{margin:7px 0 4px;color:#fff;font-size:clamp(21px,2vw,27px);line-height:1.12;overflow-wrap:anywhere}.profile-identity p{margin:0;color:#d4e9ed;font-size:12px;font-weight:650}.profile-password-button{margin-top:14px;padding:7px 11px;color:#eaffff;background:#ffffff12;border:1px solid #9bd7d6;border-radius:5px;font-size:10px;font-weight:750;cursor:pointer}.profile-password-button:hover{background:#ffffff21}.profile-summary{position:relative;z-index:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.profile-summary div{min-height:52px;padding:10px 12px;display:grid;align-content:center;gap:4px;background:#ffffff12;border:1px solid #a8dcda5c;border-radius:6px}.profile-summary small{color:#bfe2e2;font-size:8px;font-weight:750;letter-spacing:.035em;text-transform:uppercase}.profile-summary strong{color:#fff;font-size:12px;overflow-wrap:anywhere}.profile-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.profile-card{padding:18px 20px 20px;background:#fff;border:1px solid #ccdce2;border-radius:8px;box-shadow:0 5px 16px #173c5014}.profile-personal,.profile-employment{grid-column:1 / -1}.profile-sections h3{margin:0 0 14px;padding-bottom:11px;display:flex;align-items:center;gap:9px;color:#0b5265;border-bottom:1px solid #dfe8eb;font-size:11px;letter-spacing:.075em;text-transform:uppercase}.profile-sections h3 span{width:24px;height:24px;display:grid;place-items:center;color:#087c80;background:#e8f5f4;border-radius:50%;font-size:8px;letter-spacing:0}.profile-fields{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}.profile-fields div{min-width:0;min-height:58px;padding:9px 12px;border-bottom:1px solid #edf1f3}.profile-fields div:nth-last-child(-n+2){border-bottom:0}.profile-fields dt{margin-bottom:5px;color:#708690;font-size:9px;font-weight:700;letter-spacing:.01em}.profile-fields dd{margin:0;color:#173e52;font-size:12px;font-weight:560;overflow-wrap:anywhere}.profile-personal .profile-fields{grid-template-columns:repeat(5,minmax(0,1fr))}.profile-personal .profile-fields div,.profile-employment .profile-fields div{border-bottom:0;border-right:1px solid #edf1f3}.profile-personal .profile-fields div:last-child{border-right:0}.profile-employment .profile-fields{grid-template-columns:repeat(4,minmax(0,1fr))}.profile-employment .profile-fields div:nth-child(4n){border-right:0}.profile-employment .profile-fields div:nth-child(n+5){border-top:1px solid #edf1f3}.profile-state{min-height:360px;max-width:1180px;margin:0 auto;display:grid;place-content:center;gap:10px;color:#dcecf1;text-align:center}.profile-state h2,.profile-state p{margin:0}.profile-error{padding:30px;color:#8d3340;background:#fff;border-radius:9px}.profile-state button{justify-self:center;padding:8px 14px;color:#fff;background:#087f87;border:0;border-radius:5px}.profile-password-backdrop{position:fixed;z-index:2000;inset:0;padding:20px;display:grid;place-items:center;background:#001d2db8;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.profile-password-modal{width:min(470px,100%);color:#17384f;background:#fff;border:1px solid #b9cdd5;border-radius:10px;box-shadow:0 24px 70px #001a2b80;overflow:hidden}.profile-password-modal>header{padding:18px 20px;display:flex;align-items:flex-start;justify-content:space-between;background:#f2f7f8;border-bottom:1px solid #dce6e9}.profile-password-modal header span{color:#087f87;font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.profile-password-modal header h2{margin:4px 0 0;font-size:20px}.profile-password-modal header button{width:30px;height:30px;color:#58717d;background:transparent;border:0;font-size:22px}.profile-password-modal form{padding:20px;display:grid;gap:14px}.profile-password-modal form>p{margin:0 0 2px;color:#627985;font-size:11px;line-height:1.5}.profile-password-modal label{display:grid;gap:6px;color:#3e5c6d;font-size:10px;font-weight:750}.profile-password-modal input{height:40px;padding:0 11px;border:1px solid #b9cdd5;border-radius:5px;font:inherit}.profile-password-modal input:focus{outline:2px solid #0a929633;border-color:#0a9296}.profile-password-modal footer{margin-top:4px;padding-top:15px;display:flex;justify-content:flex-end;gap:8px;border-top:1px solid #e1e8eb}.profile-password-modal footer button{min-width:108px;padding:9px 12px;border:1px solid #b8c9d0;border-radius:5px;font-weight:700}.profile-password-modal footer button:last-child{color:#fff;background:#087f87;border-color:#087f87}.profile-password-modal button:disabled{opacity:.6;cursor:wait}.profile-password-error{padding:9px 11px;color:#8d3340;background:#fff1f2;border:1px solid #efc4c8;border-radius:5px;font-size:11px}.profile-password-success{padding:34px 24px;text-align:center}.profile-password-success strong{color:#176942;font-size:16px}.profile-password-success p{margin:8px 0 0;color:#627985;font-size:12px}@media(max-width:1000px){.profile-hero{grid-template-columns:auto 1fr}.profile-summary{grid-column:1 / -1}.profile-personal .profile-fields,.profile-employment .profile-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-personal .profile-fields div,.profile-employment .profile-fields div{border-top:1px solid #edf1f3}.profile-personal .profile-fields div:nth-child(2n),.profile-employment .profile-fields div:nth-child(2n){border-right:0}}@media(max-width:720px){.profile-sections{grid-template-columns:1fr}.profile-card,.profile-personal,.profile-employment{grid-column:auto}}@media(max-width:600px){.profile-page{gap:10px}.profile-hero{padding:22px 16px;grid-template-columns:1fr;text-align:center}.profile-avatar{margin:0 auto}.profile-summary,.profile-fields,.profile-personal .profile-fields,.profile-employment .profile-fields{grid-template-columns:1fr}.profile-summary{grid-column:auto}.profile-fields div,.profile-personal .profile-fields div,.profile-employment .profile-fields div{border-right:0;border-top:0;border-bottom:1px solid #edf1f3}.profile-fields div:last-child{border-bottom:0}.profile-identity h2{font-size:22px}}.app-main{width:min(100%,1440px);margin:0 auto;padding:40px 40px 64px}.page-heading{margin:0 0 24px}.page-heading h2{margin:0 0 7px;color:var(--text-primary);font-size:30px;font-weight:700;letter-spacing:-.025em}.page-heading p{margin:0;color:var(--text-secondary);font-size:15px}.toolbar{min-height:76px;padding:16px 22px;display:grid;grid-template-columns:minmax(200px,1fr) auto minmax(200px,1fr);align-items:center;gap:20px;color:var(--text-primary);background:var(--surface);border:1px solid var(--border);border-radius:11px 11px 0 0}.toolbar .eyebrow{color:var(--text-muted)}.eyebrow{color:#62798b;font-size:10px;font-weight:700;letter-spacing:.11em;text-transform:uppercase}.toolbar h2{margin:3px 0 0;color:var(--text-primary);font-size:22px;font-weight:700;letter-spacing:-.02em}.month-actions{display:flex;gap:6px}.month-actions button,.pagination button{min-height:38px;padding:0 14px;color:var(--text-primary);background:var(--surface);border:1px solid var(--border);border-radius:8px;font-size:12px;font-weight:600}.month-actions button:hover,.pagination button:hover:not(:disabled){color:var(--brand-800);background:#f2f8f8;border-color:#a8cacb}.month-actions .today-button{color:var(--brand-800);background:#fff;border-color:var(--brand-500)}.freshness{min-height:43px;padding:7px 12px;justify-self:end;display:flex;align-items:center;gap:9px;color:var(--text-secondary);background:var(--surface-subtle);border:1px solid var(--border-subtle);border-radius:7px;font-size:11px}.freshness span:last-child{display:grid}.freshness strong{color:var(--text-primary);font-size:12px}.pulse{width:7px;height:7px;background:#36d0c7;border-radius:50%;box-shadow:0 0 0 4px #36d0c726}.panel{margin-top:16px;margin-bottom:20px;background:var(--surface);border:1px solid var(--border);border-radius:11px;box-shadow:0 1px 2px #10242c0a;overflow:hidden}.calendar-panel{margin-top:0;border-top:0;border-radius:0 0 11px 11px}.panel-heading{min-height:52px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e1e9ed}.panel-heading h2{margin:0;color:var(--navy);font-size:18px;font-weight:700}.panel-heading p{margin:3px 0 0;color:#718293;font-size:10px}.loading-label,.record-count{color:#63798a;font-size:10px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.weekday-row{color:var(--text-secondary);background:var(--surface-subtle);border-bottom:1px solid var(--border)}.weekday-row div{padding:11px;font-size:12px;font-weight:700;letter-spacing:.05em;text-align:center;text-transform:uppercase;border-right:1px solid #e3eaed}.month-grid{background:var(--surface)}.day-cell{position:relative;min-height:112px;padding:12px;color:var(--text-primary);background:#fff;border:0;border-right:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);text-align:left;overflow:hidden}.day-cell:hover{z-index:1;background:#f4f9f9;box-shadow:inset 0 0 0 1px #9cc6c8}.day-cell.outside{color:var(--text-muted);background:var(--surface-subtle)}.day-cell.public-holiday{background:#f8f4fb;box-shadow:inset 3px 0 #9975b4}.day-cell.public-holiday:hover{background:#f2eaf8;box-shadow:inset 3px 0 #9975b4}.day-number{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;font-size:14px;font-weight:700}.day-cell.today .day-number{color:var(--brand-800);background:#e9f7f6;box-shadow:inset 0 0 0 1px var(--brand-500)}.day-content{margin-top:7px;display:grid;justify-items:start;gap:5px}.metric{padding:5px 8px;display:inline-block;border:1px solid;border-radius:4px;font-size:12px;font-weight:500;line-height:1.25}.metric b{font-size:12px;font-weight:700}.metric.present{color:#12644a;background:#edf9f4;border-color:#bce7d4}.metric.incomplete{color:#7e5a13;background:#fff8e7;border-color:#eed79c}.metric.neutral,.metric.pending{color:#526b78;background:#f1f5f6;border-color:#d7e1e4}.metric.holiday{color:#7c426d;background:#fbf1f8;border-color:#e6c7df}.metric.holiday small{margin-top:3px;display:block;color:#69405f;font-size:11px;font-weight:600;white-space:normal}.metric.leave-total{color:#08696c;background:#ebf8f7;border-color:#bce5e2}.no-data{display:none}.filters{padding:12px 16px;display:grid;grid-template-columns:2fr repeat(5,1fr);gap:10px;background:#f8fafb;border-bottom:1px solid #e3eaed}.filters label{display:grid;gap:4px;color:#526a7b;font-size:9px;font-weight:700}.filters input,.filters select{height:34px;padding:0 9px;color:#263e51;background:#fff;border:1px solid #cfdce2;border-radius:4px;font-size:11px}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;font-size:11px}th{padding:8px 11px;color:#50687a;background:#f5f8fa;font-size:9px;letter-spacing:.04em;text-align:left;text-transform:uppercase;white-space:nowrap}td{padding:9px 11px;border-top:1px solid #e5ecef;vertical-align:top}td small{margin-top:2px;display:block;color:#8495a2;font-size:9px}.status{padding:3px 7px;display:inline-block;border-radius:10px;font-size:9px;font-weight:700}.status.green{color:#176c46;background:#e6f6ed}.status.amber{color:#7c590e;background:#fff4d6}.leave-line{display:block;white-space:nowrap}.pagination{padding:10px 14px;display:flex;justify-content:flex-end;align-items:center;gap:12px;color:#63798a;font-size:10px;border-top:1px solid #e3eaed}.pagination button{color:#36556b;background:#fff;border-color:#cbdbe1}.pagination button:hover:not(:disabled){color:var(--teal-dark);background:#f2fbfb;border-color:#74b9bb}.pagination button:disabled{cursor:default;opacity:.45}.state{padding:28px;color:#667b8b;text-align:center;font-size:11px}.state.error{color:#8b2530;background:#fff4f5}.global-error{margin-bottom:16px;border:1px solid #efc4c8}.modal-backdrop{position:fixed;inset:0;z-index:20;padding:5vh 4vw;display:grid;place-items:center;background:#102b43a6}.modal{width:min(1100px,94vw);max-height:88vh;display:flex;flex-direction:column;background:#fff;border:1px solid #d5e0e4;border-radius:9px;box-shadow:0 24px 70px #071b2b66;overflow:hidden}.modal.public-holiday-modal{background:#f5f0fb;border-color:#a985cb}.public-holiday-modal .modal-header{background:#eee4f8;border-bottom-color:#cbb6df}.holiday-modal-summary{margin:16px;padding:15px 17px;display:grid;gap:5px;color:#593878;background:#e4d5f2;border:1px solid #b99bd3;border-left:5px solid #8053a8;border-radius:7px}.holiday-modal-summary span{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.holiday-modal-summary strong{color:#3f245a;font-size:17px}.modal-header{min-height:66px;padding:12px 17px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #dce5e9}.modal-header h2{margin:3px 0 0;color:var(--navy);font-size:19px}.icon-button{width:34px;height:34px;color:#465e70;background:#f0f4f6;border:0;border-radius:50%;font-size:21px}.modal-body{min-height:0;display:flex;flex:1;flex-direction:column;overflow:hidden}.modal-tools{min-height:58px;padding:10px 14px;display:flex;align-items:flex-end;justify-content:space-between;gap:18px;background:#f7f9fa;border-bottom:1px solid #dde6e9}.modal-tools label{width:min(360px,60%);display:grid;gap:4px;color:#647981;font-size:9px;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.modal-tools input{height:34px;padding:0 10px;border:1px solid #cbd9de;border-radius:4px;font-size:11px;outline:none}.modal-count{padding-bottom:9px;color:#71838b;font-size:10px}.modal .table-scroll{min-height:0;flex:1;overflow:auto}.modal thead{position:sticky;top:0;z-index:1}.leave-card-grid{min-height:0;padding:14px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:9px;overflow:auto}.leave-employee-card{border:1px solid #dbe5e8;border-radius:6px;overflow:hidden}.leave-summary-card{min-height:72px;padding:12px 14px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;background:#f2f8fd;border-color:#9bc9eb}.leave-summary-person{min-width:0;display:grid;gap:3px}.leave-summary-person strong{overflow:hidden;color:#16384e;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.leave-summary-person small{color:#6d8798;font-size:10px}.leave-summary-types{display:grid;justify-items:end;gap:4px;color:#07558f;font-size:11px}.leave-summary-types span{padding:5px 8px;background:#cfe8ff;border-radius:4px;white-space:nowrap}.leave-summary-types b{font-weight:750}@media(max-width:1450px){.app-header{padding-inline:24px}.app-main{padding-inline:32px}}@media(max-width:1100px){.app-header{gap:14px}.sidebar-logo{width:94px;flex-basis:94px}.sidebar-logo img{width:92px}.header-title{min-width:156px}.header-title h1{font-size:15px}.sidebar-nav{gap:12px}.sidebar-nav button{font-size:11px}.filters{grid-template-columns:repeat(3,1fr)}}@media(max-width:900px){.app-header{position:relative;min-height:72px;padding-inline:20px;gap:12px}.sidebar-logo{width:92px;flex-basis:92px}.sidebar-logo img{width:90px}.header-title{min-width:0;flex:1}.mobile-menu-toggle{order:5;min-height:40px;padding:6px 10px;display:flex;align-items:center;gap:7px;color:#fff;background:transparent;border:1px solid #668b94;border-radius:8px;font-size:12px}.mobile-menu-toggle span:first-child{font-size:18px;line-height:1}.sidebar-nav{position:absolute;z-index:10;top:100%;left:12px;right:12px;margin:0;padding:8px;display:none;flex-direction:column;align-items:stretch;gap:0;background:var(--brand-900);border:1px solid #517d84;border-radius:0 0 11px 11px;box-shadow:0 16px 24px #10242c33}.sidebar-nav.is-open{display:flex}.sidebar-nav button{min-height:44px;padding:0 14px;text-align:left;border:0;border-radius:6px;font-size:14px}.sidebar-nav button.active{color:#fff;background:#ffffff13;box-shadow:inset 3px 0 var(--brand-400)}.header-account{margin-left:auto}.app-main{padding:32px 24px 48px}.toolbar{grid-template-columns:1fr auto}.freshness{grid-column:1 / -1;justify-self:start}.calendar-panel{overflow-x:auto}.calendar-grid{min-width:0}.leave-card-grid{grid-template-columns:1fr}}@media(max-width:600px){.app-header{flex-wrap:wrap;padding:10px 16px}.sidebar-logo{flex-basis:72px;width:72px}.sidebar-logo img{width:70px}.header-title h1{font-size:15px}.header-title p{font-size:10px}.header-account{order:5;width:100%;justify-content:space-between}.mobile-menu-toggle{order:4}.app-main{padding:24px 16px 40px}.page-heading h2{font-size:26px}.toolbar{padding:16px;grid-template-columns:1fr;gap:12px}.month-actions{flex-wrap:wrap}.freshness{grid-column:auto}.calendar-grid{min-width:0}}.payslips-page{max-width:1440px;margin:0 auto;padding:24px;display:grid;align-content:start;gap:18px;color:#203449;background:#f3f5f7;border-radius:8px}.payslips-hero{padding:0 0 18px;border-bottom:1px solid #dce2e7}.payslips-hero h2{margin:0 0 6px;font-size:28px;font-weight:650;letter-spacing:-.02em}.payslips-hero p{margin:0;color:#62717f;font-size:14px}.payslip-detail{display:grid;gap:12px}.payslip-year-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}.payslip-year-card{min-height:174px;padding:20px;display:flex;flex-direction:column;align-items:flex-start;text-align:left;color:#203449;background:#fff;border:1px solid #dce2e7;border-radius:10px;cursor:pointer;box-shadow:0 2px 8px #0f31410a;transition:border-color .15s,box-shadow .15s,transform .15s}.payslip-year-card:hover,.payslip-run:hover{border-color:#087f87;box-shadow:0 5px 16px #0f31411a;transform:translateY(-2px)}.payslip-year-label,.payslip-section-heading span{color:#087f87;font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.08em}.payslip-year-card>strong{margin-top:14px;font-size:36px;line-height:1;letter-spacing:-.04em}.payslip-year-footer{width:100%;margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:10px;color:#637887;font-size:13px}.payslip-year-footer b{display:grid;place-items:center;width:30px;height:30px;color:#075f70;background:#eaf5f5;border-radius:50%;font-size:18px}.payslip-section-heading{display:flex;justify-content:space-between;align-items:end;gap:12px}.payslip-section-heading h3{margin:4px 0 0;font-size:21px}.payslip-section-heading p{margin:0;color:#637887;font-size:13px}.payslip-month-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.payslip-run{width:100%;min-height:88px;padding:16px 18px;display:flex;align-items:center;gap:14px;text-align:left;color:#203449;background:#fff;border:1px solid #dce2e7;border-radius:8px;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s}.payslip-month-number{flex:0 0 auto;width:42px;height:42px;display:grid;place-items:center;color:#075f70;background:#eaf5f5;border-radius:8px;font-size:15px;font-weight:750}.payslip-run-copy{min-width:0;display:grid;gap:5px}.payslip-run strong{font-size:16px;font-weight:650}.payslip-run small{color:#637887;font-size:12px}.payslip-run b{margin-left:auto;color:#087f87;font-size:19px;white-space:nowrap}.payslip-state{padding:24px;color:#526b78;background:#fff;border:1px solid #dce2e7;border-radius:8px;font-size:14px}.payslip-state.error{color:#8a2632;background:#fff7f7;border-color:#efc1c8}.payslip-state p{margin:0 0 14px}.payslip-state button,.payslip-back{padding:9px 13px;color:#087f87;background:#fff;border:1px solid #a7c9ca;border-radius:5px;font-weight:700;cursor:pointer}.payslip-back{justify-self:start}.payslip-back:hover{background:#eaf5f5}.payslip-detail{gap:0;overflow:hidden;background:#fff;border:1px solid #dce2e7;border-radius:10px;box-shadow:0 4px 18px #0f31410d}.payslip-statement-header{padding:25px 28px;display:flex;justify-content:space-between;align-items:flex-start;gap:16px;color:#fff;background:#103c55}.payslip-statement-eyebrow{color:#a6dbe0;font-size:10px;font-weight:750;letter-spacing:.1em}.payslip-statement-header h3{margin:10px 0 3px;font-size:27px;letter-spacing:-.02em}.payslip-statement-header p{margin:0;color:#d4e6eb;font-size:13px}.payslip-statement-tag{padding:7px 11px;color:#d8f4f3;border:1px solid #6e9da9;border-radius:5px;font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.07em}.payslip-meta{margin:0;padding:18px 28px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;border-bottom:1px solid #dce2e7;background:#f8fafb}.payslip-meta dl{margin:0;display:grid;align-content:start;gap:10px}.payslip-meta dl>div{display:grid;grid-template-columns:minmax(115px,38%) minmax(0,1fr);gap:10px;align-items:baseline}.payslip-meta div{min-width:0}.payslip-meta dt{margin-bottom:5px;color:#687b88;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.payslip-meta dd{margin:0;overflow-wrap:anywhere;color:#203449;font-size:14px;font-weight:650}.payslip-ledger{padding:22px 28px 26px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.payslip-ledger-column{display:grid;align-content:start;gap:22px}.payslip-panel{min-width:0;--payslip-columns: minmax(0, 1fr) 76px 112px}.payslip-panel-no-rate{--payslip-columns: minmax(0, 1fr) 112px}.payslip-panel h3{margin:0 0 9px;padding-bottom:11px;color:#0a5861;border-bottom:2px solid #b8dadd;font-size:15px}.payslip-lines{display:grid}.payslip-line-head{display:grid;grid-template-columns:var(--payslip-columns);align-items:baseline;gap:8px;color:#687b88;font-size:10px;font-weight:750;text-transform:uppercase}.payslip-line-head span:nth-child(2):not(:last-child){text-align:right}.payslip-line-head span:last-child{text-align:right}.payslip-line{min-width:0;display:grid;grid-template-columns:var(--payslip-columns);align-items:baseline;gap:8px;padding:11px 0}.payslip-line .payslip-line-rate{display:block;text-align:right;font-size:12px;font-variant-numeric:tabular-nums}.payslip-line+.payslip-line{border-top:1px solid #eef1f3}.payslip-line span{min-width:0;display:grid;gap:3px}.payslip-line strong{overflow-wrap:anywhere;font-size:12px;font-weight:650}.payslip-line small{color:#718590;font-size:11px}.payslip-line b{text-align:right;font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}.payslip-empty-group{color:#718590;font-size:13px}.payslip-summary{margin:0 28px;padding:17px 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;border-top:2px solid #b8dadd}.payslip-summary div{display:grid;gap:5px}.payslip-summary span{color:#637887;font-size:12px}.payslip-summary strong{color:#103c55;font-size:16px;font-variant-numeric:tabular-nums}.payslip-net{padding:20px 28px;display:flex;justify-content:space-between;align-items:baseline;gap:16px;color:#fff;background:#075f70}.payslip-net span{font-size:15px;font-weight:650}.payslip-net strong{font-size:clamp(22px,3vw,30px);font-variant-numeric:tabular-nums;white-space:nowrap}.payslip-download{display:flex;align-items:center;gap:12px}.payslip-download button{padding:10px 15px;color:#fff;background:#075f70;border:1px solid #075f70;border-radius:5px;font-weight:700;cursor:pointer}.payslip-download button:disabled{opacity:.65;cursor:wait}.payslip-download [role=alert]{color:#8a2632;font-size:13px}.payslips-page button:focus-visible{outline:2px solid #087f87;outline-offset:3px}@media(max-width:760px){.payslips-page{padding:0}.payslip-ledger{grid-template-columns:1fr;gap:22px}.payslip-meta{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.payslip-run,.payslip-statement-header,.payslip-ledger,.payslip-net{padding:16px}.payslip-panel{--payslip-columns: minmax(0, 1fr) 64px 96px}.payslip-panel-no-rate{--payslip-columns: minmax(0, 1fr) 96px}.payslip-meta{padding:16px;grid-template-columns:1fr}.payslip-meta dl>div{grid-template-columns:minmax(112px,40%) minmax(0,1fr)}.payslip-summary{margin:0 16px;grid-template-columns:1fr}.payslip-section-heading{align-items:flex-start;flex-direction:column}.payslip-month-grid,.payslip-year-grid{grid-template-columns:1fr}.payslip-net{align-items:flex-start;flex-direction:column}}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 20px 60px #001a2b45}.login-card h1{color:var(--text-primary)}.login-card label{color:var(--text-secondary);font-size:12px}.login-card input{border-color:var(--border);border-radius:8px}.login-card form>button{background:var(--brand-700);border-color:var(--brand-700);border-radius:8px}.login-card form>button:hover:not(:disabled){background:var(--brand-800)}.my-leave-section,.profile-card,.payslip-detail,.payslip-year-card,.payslip-run,.payslip-state{border-color:var(--border);border-radius:11px;box-shadow:0 1px 2px #10242c0a,0 4px 16px #10242c0a}.my-leave-table th,.approval-table th,.balance-report thead th,th{color:var(--text-secondary);background:var(--surface-subtle);border-bottom-color:var(--border);font-size:11px;font-weight:650;letter-spacing:.01em;text-transform:none}.my-leave-table td,.approval-table td,td{border-bottom-color:var(--border-subtle)}.my-leave-table tbody tr:hover,.approval-table tbody tr:hover{background:#f7fbfb}.leave-application-form input,.leave-application-form select,.leave-application-form textarea,.approval-filters input,.approval-filters select,.modal-tools input{min-height:40px;color:var(--text-primary);background:#fff;border-color:var(--border);border-radius:8px}.leave-application-actions button,.payslip-download button{min-height:42px;color:#fff;background:var(--brand-700);border-color:var(--brand-700);border-radius:8px;box-shadow:none}.leave-application-actions button:hover:not(:disabled),.payslip-download button:hover:not(:disabled){background:var(--brand-800)}.my-leave-status,.approval-status{font-size:11px}.status-a,.approval-status.approved{color:#1c684c;background:#e7f5ec}.status-p,.approval-status.pending{color:#815814;background:#fff5dd}.status-r,.approval-status.rejected{color:#993b43;background:#fbebed}.status-c,.status-unknown{color:#52636b;background:#edf1f2}.leave-page-state.error,.payslip-state.error,.state.error{color:#923d42;background:#fdf0f1}.profile-page{width:100%;max-width:none;gap:20px;color:var(--text-primary)}.profile-page .page-heading{margin-bottom:0}.profile-hero{min-height:0;padding:24px;color:var(--text-primary);background:var(--surface);border:1px solid var(--border);border-radius:11px;box-shadow:0 1px 2px #10242c0a}.profile-hero:after{display:none}.profile-avatar{width:72px;height:72px;color:var(--brand-800);background:#e7f3f2;border:1px solid #c3dfdf;box-shadow:none;font-size:23px}.profile-identity>span{color:var(--text-secondary);letter-spacing:.04em}.profile-identity h2{color:var(--text-primary);font-size:25px}.profile-identity p{color:var(--text-secondary)}.profile-password-button{color:var(--brand-800);background:#fff;border-color:#a9cacc;border-radius:8px;font-size:12px}.profile-password-button:hover{background:#f1f9f8}.profile-summary div{background:var(--surface-subtle);border-color:var(--border-subtle);border-radius:8px}.profile-summary small{color:var(--text-secondary);font-size:10px}.profile-summary strong{color:var(--text-primary);font-size:13px}.profile-sections{gap:16px}.profile-card{padding:22px 24px}.profile-sections h3{color:var(--text-primary);font-size:17px;letter-spacing:0;text-transform:none}.profile-sections h3 span{background:#eaf5f4;font-size:10px}.profile-fields dt{color:var(--text-secondary);font-size:11px}.profile-fields dd{color:var(--text-primary);font-size:14px}.profile-state{color:var(--text-secondary)}.payslips-page{max-width:none;padding:0;gap:20px;color:var(--text-primary);background:transparent}.payslips-hero{padding-bottom:0;border-bottom:0}.payslips-hero h2{color:var(--text-primary);font-size:30px;font-weight:700}.payslips-hero p{color:var(--text-secondary);font-size:15px}.payslip-year-card{min-height:164px}.payslip-year-card:hover,.payslip-run:hover{border-color:#91c3c3;box-shadow:0 4px 16px #10242c14;transform:translateY(-1px)}.payslip-run{min-height:90px}.payslip-month-number{color:var(--brand-800);background:#ecf6f5}.payslip-back,.payslip-state button{color:var(--brand-800);border-color:var(--border);border-radius:8px}.payslip-statement-header{color:var(--text-primary);background:var(--surface);border-bottom:1px solid var(--border)}.payslip-statement-eyebrow{color:var(--text-secondary)}.payslip-statement-header h3{color:var(--text-primary);font-size:23px}.payslip-statement-tag{color:var(--brand-800);border-color:#b7d3d5}.payslip-meta{background:var(--surface-subtle);border-bottom-color:var(--border)}.payslip-panel h3{color:var(--text-primary);border-bottom:1px solid var(--border)}.payslip-summary{border-top:1px solid var(--border)}.payslip-net{color:var(--text-primary);background:#f1f7f7;border-top:1px solid var(--border)}.payslip-net strong{color:var(--brand-900)}.leave-approval-page{max-width:none;min-height:0;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none}.approval-hero{min-height:0;padding:0 0 24px;color:var(--text-primary);background:transparent;border:0;border-radius:0}.approval-hero h2{color:var(--text-primary)}.approval-hero p{color:var(--text-secondary)}.approval-kicker{color:var(--brand-700)}.approval-data-source{color:var(--text-secondary);background:var(--surface);border-color:var(--border)}.approval-summary{margin:0 0 20px}.approval-panel{border-color:var(--border);border-radius:11px;box-shadow:0 1px 2px #10242c0a}@media(max-width:900px){.profile-hero{grid-template-columns:auto minmax(0,1fr)}.profile-summary{grid-column:1 / -1}}@media(max-width:600px){.payslips-hero h2{font-size:26px}.payslip-month-grid,.payslip-year-grid{grid-template-columns:1fr}.calendar-grid{min-width:0}.weekday-row div{padding:10px 1px;font-size:10px}.day-cell{min-height:76px;padding:6px 3px}.day-number{width:27px;height:27px;font-size:12px}.day-content{gap:3px}.metric{padding:3px;font-size:9px;overflow-wrap:anywhere}.metric b,.metric.holiday small{font-size:9px}.profile-hero{padding:20px;grid-template-columns:1fr;text-align:left}.profile-avatar{margin:0}.profile-summary{grid-template-columns:1fr 1fr}.profile-card{padding:18px}.profile-fields,.profile-personal .profile-fields,.profile-employment .profile-fields{grid-template-columns:1fr}.payslip-statement-header{flex-wrap:wrap}.payslip-net{align-items:center;flex-direction:row}}.sidebar-nav{gap:20px}.sidebar-nav button.active{border-bottom-color:var(--brand-400)}.header-account{gap:14px}.login-card{padding:36px}.login-card>img{margin-bottom:20px}.login-card form{gap:18px}.login-card form>button{height:45px}.my-leave-page{gap:28px}.my-leave-page .my-leave-hero{padding:0;border-bottom:0}.my-leave-page .my-leave-hero h2{margin-bottom:7px;font-size:30px;font-weight:700}.my-leave-page .my-leave-hero p{color:var(--text-secondary);font-size:15px}.my-leave-workspace{gap:28px}.my-leave-section-heading{border-bottom-color:var(--border)}.my-leave-page .my-leave-section{border-color:var(--border);border-radius:11px}.balance-card-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:16px}.my-leave-page .balance-card{padding:18px;border-color:var(--border);border-radius:9px}.my-leave-page .balance-card:hover{border-color:#a9cacc}.balance-card h4{font-size:14px;line-height:1.35}.my-leave-page .balance-card header>strong{color:var(--brand-900);font-size:24px}.my-leave-page .balance-card>dl{margin:16px 0 8px;padding-top:14px;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;border-top:1px solid var(--border-subtle)}.my-leave-page .balance-card>dl div{min-width:0;padding:0;background:transparent}.my-leave-page .balance-card>dl dt{color:var(--text-secondary);font-size:10px}.my-leave-page .balance-card>dl dd{color:var(--text-primary);font-size:13px}.my-leave-page .balance-card details{margin-top:10px}.profile-page,.profile-hero{gap:24px}.profile-identity h2{max-width:100%;line-height:1.22;overflow-wrap:break-word}.profile-summary{gap:10px}.profile-summary div{min-height:58px}.profile-sections{gap:20px}.profile-card{padding:24px}.profile-fields div{padding:11px 12px}.profile-fields .is-unavailable,.profile-summary .is-unavailable{color:var(--text-muted);font-weight:400}.payslips-page{gap:24px}.payslip-year-grid{grid-template-columns:1fr;gap:12px}.payslip-year-card{width:100%;min-height:104px;padding:20px 24px;display:grid;grid-template-columns:120px minmax(100px,1fr) auto;align-items:center;gap:20px}.payslip-year-card>strong{margin:0;font-size:32px}.payslip-year-footer{width:auto;margin:0;gap:24px;justify-self:end}.payslip-month-grid{gap:16px}.payslip-section-heading{margin-top:4px}.day-cell{border-right-color:var(--border-subtle);border-bottom-color:var(--border-subtle)}.day-cell:focus-visible{z-index:2;outline:2px solid var(--brand-600);outline-offset:-2px}.day-cell.today{background:#fbfdfd}.day-cell.today .day-number{font-weight:750;box-shadow:inset 0 0 0 1.5px var(--brand-600)}.metric{border-radius:6px;line-height:1.3}.metric.leave-total{color:var(--brand-800);background:#edf8f7;border-color:#c7e5e3}@media(max-width:900px){.sidebar-nav{gap:0}.payslip-year-card{grid-template-columns:105px minmax(80px,1fr) auto}}@media(max-width:600px){.login-card{padding:30px}.my-leave-page,.my-leave-workspace,.profile-page{gap:20px}.my-leave-page .my-leave-hero h2{font-size:26px}.my-leave-page .balance-card>dl{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:12px}.profile-card{padding:18px}.payslip-year-card{min-height:100px;padding:18px;grid-template-columns:1fr auto;gap:4px 12px}.payslip-year-label{grid-column:1;grid-row:1}.payslip-year-card>strong{grid-column:1;grid-row:2;font-size:30px}.payslip-year-footer{grid-column:2;grid-row:1 / 3;align-self:center;gap:10px}}.app-main,.my-leave-workspace>*,.profile-sections>*,.payslip-detail,.leave-application-form>*,.leave-type-options>*,.payslip-panel{min-width:0}.calendar-holiday-short{display:none}.loading-skeleton{padding:18px;width:100%;min-width:0}.skeleton-items{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:16px}.skeleton-item{display:grid;align-content:start;gap:14px;padding:20px;border:1px solid var(--border-subtle);border-radius:9px;background:var(--surface)}.skeleton-bar{display:block;width:100%;height:12px;border-radius:5px;background:#e7edef;animation:skeleton-pulse 1.6s ease-in-out infinite}.skeleton-short{width:30%}.skeleton-title{width:65%;height:24px;margin-bottom:10px}.skeleton-medium{width:80%}.loading-skeleton-rows .skeleton-items{grid-template-columns:1fr}.loading-skeleton-rows .skeleton-item{grid-template-columns:1fr 2fr 1fr 1fr;align-items:center}.loading-skeleton-rows .skeleton-bar{width:100%;margin:0;height:14px}.loading-skeleton-profile{padding:0}.loading-skeleton-profile .skeleton-item:first-child{grid-column:1 / -1;min-height:180px}.calendar-skeleton{width:80%;margin-top:4px}@keyframes skeleton-pulse{50%{opacity:.45}}@media(prefers-reduced-motion:reduce){.skeleton-bar{animation:none}}@media(min-width:901px)and (max-width:1200px){.app-header{flex-wrap:wrap;gap:8px 20px;padding-top:10px}.header-title{flex:1}.header-account{order:3}.sidebar-nav{order:4;width:100%;justify-content:center;gap:28px}.sidebar-nav button{min-height:48px;font-size:13px}}@media(max-width:900px){.day-cell{padding:8px 5px;min-height:96px;vertical-align:top}.metric{max-width:100%;padding:4px;font-size:11px}.metric b{font-size:11px}.header-account span{max-width:110px}.mobile-menu-toggle,.header-account button{min-height:44px}}@media(max-width:680px){.my-leave-table{min-width:0}.my-leave-table thead{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.my-leave-table tbody{display:block;padding:12px}.my-leave-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px 16px;padding:16px;margin-bottom:12px;border:1px solid var(--border);border-radius:9px;background:#fff}.my-leave-table tbody tr:last-child{margin-bottom:0}.my-leave-page .my-leave-table td{min-width:0;padding:0;border:0;font-size:13px;overflow-wrap:anywhere}.my-leave-table td:before{content:attr(data-label);display:block;margin-bottom:5px;color:var(--text-secondary);font-size:11px;font-weight:600}.my-leave-table .history-remark{grid-column:1 / -1;max-width:none}.my-leave-table .history-actions{grid-column:1 / -1}.my-leave-table .history-actions:empty,.my-leave-table .history-actions:before{display:none}.withdraw-leave-button{min-height:44px;width:100%}.leave-history-pagination{padding:14px 16px;gap:12px}.leave-history-pagination>div{width:100%;justify-content:space-between;gap:6px}.leave-history-pagination button{min-height:44px}}@media(max-width:600px){.app-header{display:grid;grid-template-columns:60px minmax(0,1fr) 44px;gap:8px 10px;padding:10px 16px}.sidebar-logo{order:0;grid-column:1;grid-row:1;width:60px;height:40px}.sidebar-logo img{width:60px;height:36px}.header-title{order:0;grid-column:2;grid-row:1}.header-title h1{font-size:14px;white-space:normal;line-height:1.25}.header-title p{margin-top:3px;font-size:10px}.mobile-menu-toggle{order:0;grid-column:3;grid-row:1;width:44px;padding:0;justify-content:center}.mobile-menu-toggle>span{display:none}.header-account{order:0;grid-column:1 / -1;width:100%;padding-top:8px;border-top:1px solid #ffffff24;gap:12px}.header-account span{max-width:none;flex:1;font-size:12px}.header-account button{padding:6px 12px}.sidebar-nav{left:16px;right:16px}.app-main{padding:22px 16px 36px}.page-heading{margin-bottom:20px}.page-heading h2,.my-leave-page .my-leave-hero h2,.payslips-hero h2,.approval-hero h2{font-size:24px;line-height:1.25}.page-heading p,.my-leave-page .my-leave-hero p,.payslips-hero p{font-size:14px;line-height:1.5}.toolbar{padding:16px;gap:14px}.toolbar h2{font-size:21px}.month-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.month-actions button{min-height:44px;padding:0 8px}.freshness{width:100%;font-size:11px}.panel-heading{padding:12px;min-height:48px;gap:8px}.panel-heading h2{font-size:15px}.calendar-panel{overflow:hidden}.weekday-row div{padding:10px 0;font-size:10px;letter-spacing:0}.day-cell{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;min-height:84px;padding:7px 2px}.day-number{width:26px;height:26px;font-size:12px;flex-shrink:0}.day-content{width:100%;margin-top:6px;justify-items:center;gap:4px}.metric{max-width:100%;padding:2px 4px;border-radius:4px;line-height:1.2;overflow-wrap:normal}.metric.leave-total{min-width:24px;text-align:center}.metric.leave-total b{font-size:11px}.calendar-leave-label,.calendar-holiday-full,.metric.holiday small{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.calendar-holiday-short{display:inline}.calendar-legend{display:flex;flex-wrap:wrap;gap:8px 16px;padding:12px;border-top:1px solid var(--border);color:var(--text-secondary);font-size:11px}.calendar-legend span{display:flex;align-items:center;gap:6px}.calendar-legend i{width:8px;height:8px;border-radius:50%;background:#087f83}.calendar-legend .holiday-dot{background:#9975b4}.my-leave-section-heading{padding:16px;gap:6px}.my-leave-section-heading h3{font-size:17px}.my-leave-section-heading>span{font-size:11px}.leave-application-form{padding:16px;gap:18px}.leave-type-options button{min-height:72px}.leave-application-approver{align-items:flex-start;flex-direction:column;gap:6px;padding:12px;overflow-wrap:anywhere}.balance-card-grid{padding:12px;gap:12px}.balance-card summary{min-height:36px;padding-top:8px;font-size:12px}.leave-submit-confirmation{margin:0 16px 16px;padding:16px}.leave-review-heading{flex-wrap:wrap}.profile-hero{grid-template-columns:48px minmax(0,1fr);padding:16px;gap:16px 12px;align-items:start}.profile-avatar{width:48px;height:48px;font-size:18px}.profile-identity h2{margin-top:4px;font-size:20px}.profile-summary{grid-column:1 / -1;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.profile-password-button{min-height:44px}.profile-card{padding:16px}.profile-fields div{padding-inline:0}.payslip-year-card{padding:16px}.payslip-year-footer{flex-wrap:wrap;justify-content:flex-end;max-width:140px}.payslip-section-heading{align-items:flex-start;flex-direction:column;gap:10px}.payslip-download{flex-wrap:wrap}.payslip-net{flex-wrap:wrap;gap:8px}.payslip-panel{--payslip-columns: minmax(0, 1fr) 48px 82px}.payslip-panel-no-rate{--payslip-columns: minmax(0, 1fr) 82px}.approval-hero{padding-bottom:20px;gap:12px}.approval-tabs{padding-inline:4px;gap:0}.approval-tabs button{min-width:0;flex:1;padding-inline:8px}.modal-backdrop,.profile-password-backdrop{padding:12px}.modal,.profile-password-modal{width:100%;max-height:calc(100dvh - 24px);overflow-y:auto}.modal-header{gap:12px;padding:14px 16px;flex-shrink:0}.modal-header h2{font-size:18px}.icon-button,.approval-close,.profile-password-modal header button{width:44px;height:44px;flex-shrink:0}.modal-tools{align-items:stretch;flex-direction:column;gap:8px}.modal-tools label{width:100%}.modal-count{padding:0}.leave-summary-card{padding:12px;gap:8px}.leave-summary-person strong{white-space:normal;overflow-wrap:anywhere}.leave-summary-types span{white-space:normal}.withdraw-actions,.approval-confirmation-actions,.profile-password-modal footer{flex-wrap:wrap}.withdraw-actions button,.approval-confirmation-actions button,.profile-password-modal footer button{flex:1;min-height:44px}.approval-confirmation-body dl{grid-template-columns:1fr}.my-leave-page .leave-application-form input,.my-leave-page .leave-application-form select,.my-leave-page .leave-application-form textarea,.approval-filters input,.approval-filters select,.modal-tools input,.profile-password-modal input,.approval-confirmation-body textarea,.login-card input{min-width:0;min-height:44px;font-size:16px}.loading-skeleton{padding:12px}.loading-skeleton-profile{padding:0}.loading-skeleton-rows .skeleton-item{grid-template-columns:1fr 1fr;gap:18px;min-height:110px}}@media(min-width:601px){.calendar-legend{display:none}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}@media(max-width:680px){.approval-table{min-width:0}.approval-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.approval-table tbody{display:block;padding:12px}.approval-table tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;margin-bottom:12px;padding:16px;border:1px solid var(--border);border-radius:9px}.approval-table tbody tr:last-child{margin-bottom:0;border-bottom:1px solid var(--border)}.approval-table td{min-width:0;padding:0;border:0;font-size:13px;overflow-wrap:anywhere}.approval-table td strong{font-size:13px}.approval-table td small{font-size:11px}.approval-table td:before{content:attr(data-label);display:block;margin-bottom:5px;color:var(--text-secondary);font-size:11px;font-weight:600}.approval-table .approval-remark{max-width:none;white-space:normal;grid-column:1 / -1}.approval-row-action{grid-column:1 / -1}.approval-row-action:before{display:none!important}.approval-view{width:100%;min-height:44px;font-size:13px}}.mobile-nav-icon,.mobile-leave-switcher,.mobile-profile-toggle{display:none}@media(max-width:600px){.app-header{grid-template-columns:54px minmax(0,1fr);padding:10px 16px 8px;gap:4px 10px}.sidebar-logo,.sidebar-logo img{width:54px}.header-title h1{font-size:14px}.header-title p{display:none}.header-account{padding-top:0;border:0;font-size:11px}.header-account button{min-height:36px;padding:4px 12px;border-color:#ffffff38;font-size:11px}.header-account span{color:#c5dcdf;font-size:11px}.mobile-menu-toggle{display:none}.sidebar-nav,.sidebar-nav.is-open{position:fixed;inset:auto 0 0;z-index:15;display:flex;flex-direction:row;align-items:stretch;justify-content:space-around;gap:0;margin:0;padding:6px 8px calc(6px + env(safe-area-inset-bottom));color:var(--text-secondary);background:#fff;border:0;border-top:1px solid var(--border);border-radius:0;box-shadow:0 -4px 20px #10242c08}.sidebar-nav button{position:relative;display:flex;flex:1;min-width:0;min-height:56px;padding:7px 2px 4px;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:#6a7b83;background:transparent;border:0;border-radius:10px;font-size:10px;font-weight:600;line-height:1.2;text-align:center}.sidebar-nav button:after{content:attr(data-mobile-label)}.sidebar-nav .nav-label{display:none}.mobile-nav-icon{display:block;flex-shrink:0}.sidebar-nav button.active{color:var(--brand-700);background:#edf7f6;box-shadow:none}.sidebar-nav button:hover{color:var(--brand-700)}.sidebar-nav button:active{background:#e0f1ef}.app-main{padding:22px 16px calc(96px + env(safe-area-inset-bottom))}.page-heading,.my-leave-page .my-leave-hero,.payslips-hero{margin-bottom:0}.page-heading h2,.my-leave-page .my-leave-hero h2,.payslips-hero h2,.approval-hero h2{font-size:25px;letter-spacing:-.035em}.page-heading p,.my-leave-page .my-leave-hero p,.payslips-hero p{font-size:13px}.app-main>.page-heading{margin-bottom:20px}.my-leave-page,.profile-page,.payslips-page{gap:18px}.mobile-leave-switcher{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;background:#e9eff0;border-radius:12px}.mobile-leave-switcher button{min-height:44px;padding:8px;border:0;border-radius:9px;background:transparent;color:#64777e;font-size:13px;font-weight:650}.mobile-leave-switcher button[aria-pressed=true]{color:var(--brand-800);background:#fff;box-shadow:0 1px 4px #18393e12}.my-leave-page[data-mobile-section=balances] .my-leave-apply,.my-leave-page[data-mobile-section=balances] .my-leave-history,.my-leave-page[data-mobile-section=apply] .my-leave-balances,.my-leave-page[data-mobile-section=apply] .my-leave-history,.my-leave-page[data-mobile-section=history] .my-leave-workspace{display:none}.my-leave-page .my-leave-section{border-radius:14px;box-shadow:none}.my-leave-section-heading{gap:6px;padding:16px}.my-leave-section-heading h3{font-size:16px}.my-leave-apply .my-leave-section-heading{flex-direction:row;align-items:center;flex-wrap:wrap}.write-status{font-size:10px!important;padding:5px 8px}.my-leave-page .balance-card{padding:16px;box-shadow:none}.my-leave-page .balance-card>dl{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.my-leave-page .balance-card>dl dt{font-size:9px;text-transform:none;overflow-wrap:anywhere}.my-leave-page .balance-card header>strong{font-size:28px}.balance-card summary{min-height:44px;padding-top:14px}.my-leave-page .leave-type-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.my-leave-page .leave-type-options button{min-width:0;min-height:88px;flex-direction:column;align-items:flex-start;justify-content:space-between;padding:12px;gap:10px;border-radius:10px}.my-leave-page .leave-type-options button small{font-size:11px}.leave-type-options button b{display:flex;align-items:baseline;gap:4px;text-align:left}.leave-application-actions{gap:10px}.leave-application-actions button,.leave-review-footer button{width:100%;min-height:48px;border-radius:10px!important}.leave-application-actions small{line-height:1.5}.leave-application-form textarea{resize:vertical}.my-leave-table tbody tr{gap:12px 16px;box-shadow:none}.toolbar{position:relative;padding:14px;gap:12px;border-radius:14px 14px 0 0}.toolbar .eyebrow{display:none}.toolbar h2{margin:0;font-size:20px}.month-actions{gap:8px}.month-actions button{background:#f5f8f8;border-color:#e4ebed;border-radius:9px}.month-actions .today-button{background:#edf7f6;color:var(--brand-800);border-color:#d0e5e3}.freshness{min-height:0;padding:0;background:transparent;border:0;font-size:10px}.freshness span:last-child{display:flex;gap:4px;flex-wrap:wrap}.freshness strong{font-size:10px;font-weight:600}.pulse{width:5px;height:5px;flex-shrink:0;box-shadow:none}.calendar-panel{border-radius:0 0 14px 14px;margin-bottom:0}.calendar-panel .panel-heading{min-height:42px}.calendar-panel .panel-heading h2{font-size:12px;color:var(--text-secondary);font-weight:500}.day-cell{min-height:68px;padding:5px 2px}.day-content{margin-top:4px;gap:3px}.calendar-legend{border:0;padding:14px 2px;gap:8px 12px;font-size:10px}.calendar-legend span:last-child{width:100%;color:var(--text-secondary)}.profile-hero{border-radius:14px}.profile-summary div{min-height:52px;padding:9px}.profile-sections{gap:10px}.profile-card{padding:0 16px;border-radius:12px;box-shadow:none}.profile-sections h3{position:relative;min-height:60px;padding:16px 30px 16px 0;margin:0;border:0;font-size:14px}.mobile-profile-toggle{position:absolute;inset:0;display:flex;align-items:center;justify-content:flex-end;width:100%;padding:0;background:transparent;border:0;color:var(--text-secondary);border-radius:8px}.mobile-profile-toggle svg{transition:transform .18s ease}.mobile-profile-toggle[aria-expanded=true] svg{transform:rotate(180deg)}.profile-card[data-mobile-expanded=false] .profile-section-body{display:none}.profile-card[data-mobile-expanded=true] .profile-section-body{border-top:1px solid var(--border-subtle);padding-bottom:12px}.payslip-year-card,.payslip-run,.payslip-detail{border-radius:14px;box-shadow:none}.payslip-year-card{min-height:100px}.payslip-back{min-height:44px;align-self:start}.payslip-download button{width:100%;min-height:48px}.approval-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:16px}.approval-summary article{min-height:90px;padding:12px 8px;flex-direction:column-reverse;align-items:flex-start;gap:8px;border-radius:12px;box-shadow:none}.approval-summary article>div{display:block}.approval-summary article i,.approval-summary small{display:none}.approval-summary span{font-size:11px;font-weight:500}.approval-summary strong{font-size:26px}.approval-tabs button{font-size:11px}.approval-tabs button span{margin-left:3px}.approval-tabs{position:sticky;top:0;background:#fff;z-index:1}.approval-view{border-radius:8px;background:#f0f8f7}.modal-backdrop,.profile-password-backdrop{align-items:end;padding:0}.modal,.profile-password-modal{width:100%;max-height:calc(100dvh - 24px);border:0;border-radius:20px 20px 0 0;padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -12px 48px #102b4330}.modal-header,.profile-password-modal>header{position:relative;padding-top:24px}.modal-header:before,.profile-password-modal>header:before{content:"";position:absolute;top:8px;left:calc(50% - 18px);width:36px;height:4px;border-radius:8px;background:#cbd6d9}.withdraw-actions{flex-direction:column}.withdraw-actions button{flex:auto}.loading-skeleton .skeleton-item{padding:16px}.loading-skeleton .skeleton-item:nth-child(3){display:none}.loading-skeleton-rows .skeleton-item{min-height:90px}button{-webkit-tap-highlight-color:transparent;touch-action:manipulation}}@media(max-width:600px)and (prefers-reduced-motion:reduce){.mobile-profile-toggle svg{transition:none}}
