@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--color-bg: #f6f5f1;--color-surface: #ffffff;--color-surface-alt: #efede6;--color-text: #16212b;--color-muted: #55616d;--color-border: #dedad0;--color-card-border: #ebe8e0;--color-input-border: #a8a296;--color-primary: #0e6b6b;--color-primary-hover: #0a5050;--color-primary-text: #ffffff;--color-primary-soft: #e3f1ef;--color-primary-strong: #0a5050;--color-accent: #f4b740;--color-accent-text: #10282c;--color-focus: #b7791f;--color-danger: #b42318;--color-danger-bg: #fdecea;--color-warning: #7a4b00;--color-warning-bg: #fdf1d6;--color-success: #0a5a3a;--color-success-bg: #dff3e8;--color-info-bg: #e3f1ef;--nav-bg: #10282c;--nav-text: #d6e5e2;--nav-muted: #a9c4c0;--nav-hover: #1b3a3f;--nav-border: #23454a;--nav-active-bg: #f4b740;--nav-active-text: #10282c;--status-approved: #0e6b6b;--status-pending: #e9a23b;--status-rejected: #b42318;--cal-workday: #f6f5f1;--cal-weekend: #e8e5dc;--cal-holiday: #fbe7b8;--cal-today: #10282c;--cal-today-text: #ffffff;--radius: 12px;--radius-sm: 10px;--radius-lg: 18px;--shadow: 0 1px 2px rgba(22, 33, 43, .05), 0 4px 14px rgba(22, 33, 43, .04);--shadow-lift: 0 6px 16px rgba(14, 107, 107, .22);--backdrop: rgba(16, 40, 44, .55);--font: "Inter Variable", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display: "Bricolage Grotesque Variable", var(--font);color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--color-bg: #0f1517;--color-surface: #172023;--color-surface-alt: #1f2a2e;--color-text: #e8eeec;--color-muted: #a3b2b0;--color-border: #2f3d41;--color-card-border: #263236;--color-input-border: #56666a;--color-primary: #5fc2b7;--color-primary-hover: #85d3ca;--color-primary-text: #08201e;--color-primary-soft: #15302f;--color-primary-strong: #85d3ca;--color-focus: #f4b740;--color-danger: #f17066;--color-danger-bg: #3a1d1b;--color-warning: #f5b453;--color-warning-bg: #3a2c14;--color-success: #6fcf97;--color-success-bg: #16301f;--color-info-bg: #15302f;--nav-bg: #0a1a1c;--nav-hover: #15302f;--nav-border: #1f3a3e;--status-approved: #1d7a70;--status-pending: #e39b2d;--status-rejected: #f17066;--cal-workday: #1f2a2e;--cal-weekend: #263236;--cal-holiday: #4a3c1f;--cal-today: #f4b740;--cal-today-text: #10282c;--shadow: 0 1px 2px rgba(0, 0, 0, .3);--shadow-lift: 0 6px 16px rgba(0, 0, 0, .35);--backdrop: rgba(0, 0, 0, .75);color-scheme:dark}}:root[data-theme=dark]{--color-bg: #0f1517;--color-surface: #172023;--color-surface-alt: #1f2a2e;--color-text: #e8eeec;--color-muted: #a3b2b0;--color-border: #2f3d41;--color-card-border: #263236;--color-input-border: #56666a;--color-primary: #5fc2b7;--color-primary-hover: #85d3ca;--color-primary-text: #08201e;--color-primary-soft: #15302f;--color-primary-strong: #85d3ca;--color-focus: #f4b740;--color-danger: #f17066;--color-danger-bg: #3a1d1b;--color-warning: #f5b453;--color-warning-bg: #3a2c14;--color-success: #6fcf97;--color-success-bg: #16301f;--color-info-bg: #15302f;--nav-bg: #0a1a1c;--nav-hover: #15302f;--nav-border: #1f3a3e;--status-approved: #1d7a70;--status-pending: #e39b2d;--status-rejected: #f17066;--cal-workday: #1f2a2e;--cal-weekend: #263236;--cal-holiday: #4a3c1f;--cal-today: #f4b740;--cal-today-text: #10282c;--shadow: 0 1px 2px rgba(0, 0, 0, .3);--shadow-lift: 0 6px 16px rgba(0, 0, 0, .35);--backdrop: rgba(0, 0, 0, .75);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scrollbar-gutter:stable}body{margin:0;font-family:var(--font);font-size:1rem;line-height:1.5;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased}h1,h2,.display{font-family:var(--font-display);font-weight:700;letter-spacing:-.02em}h1{font-size:2rem;margin:0 0 .25rem;line-height:1.15}h2{font-size:1.3rem;margin:0 0 .75rem;line-height:1.25}h3,.h3{font-family:var(--font-display);font-size:1.12rem;font-weight:700;margin:0 0 .6rem;letter-spacing:-.01em}h1.display{font-size:2.5rem}p{margin:0 0 .75rem}a{color:var(--color-primary);text-underline-offset:.15em}a:hover{color:var(--color-primary-hover)}.icon{flex-shrink:0}:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.muted{color:var(--color-muted)}.hint{color:var(--color-muted);font-size:.875rem;margin:.25rem 0 0}.skip-link{position:absolute;left:.5rem;top:-3rem;background:var(--color-primary);color:var(--color-primary-text);padding:.5rem 1rem;border-radius:var(--radius-sm);z-index:100}.skip-link:focus{top:.5rem}.app-shell{min-height:100vh}.app-body{min-height:100vh;display:flex;flex-direction:column;min-width:0}.sidebar{background:var(--nav-bg);color:var(--nav-text)}.sidebar :focus-visible{outline-color:var(--color-accent)}.app-header{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem}.brand{display:flex;align-items:center;gap:.75rem;margin-right:auto;min-width:0}.brand-mark{flex-shrink:0}.brand-text{display:flex;flex-direction:column;line-height:1.2;min-width:0}.brand-text strong{font-family:var(--font-display);font-size:1.12rem;color:#fff}.brand-company{font-size:.82rem;color:var(--nav-muted)}.user-area{display:flex;align-items:center;gap:.5rem}.user-link{display:flex;align-items:center;gap:.7rem;min-width:0;text-decoration:none;color:var(--nav-text);border-radius:var(--radius-sm);padding:.35rem}.user-link:hover{background:var(--nav-hover);color:#fff}.user-link.active{background:var(--nav-hover)}.user-text{display:flex;flex-direction:column;min-width:0;line-height:1.25}.user-name{font-weight:600;color:#fff}.role-tag{font-size:.8rem;color:var(--nav-muted)}.menu-toggle{display:inline-flex;align-items:center;gap:.5rem;flex-shrink:0;font:inherit;font-weight:600;background:none;color:#fff;border:1px solid var(--nav-border);border-radius:var(--radius-sm);padding:.45rem .85rem;min-height:44px;cursor:pointer}.menu-toggle:hover{background:var(--nav-hover)}.main-nav{display:none}.main-nav.open{display:block;border-top:1px solid var(--nav-border)}.main-nav ul{list-style:none;display:flex;flex-direction:column;gap:2px;margin:0;padding:.5rem .75rem}.main-nav a{display:flex;align-items:center;gap:.75rem;min-height:44px;padding:.55rem .75rem;border-radius:var(--radius-sm);text-decoration:none;color:var(--nav-text);font-weight:500;white-space:nowrap}.main-nav a:hover{background:var(--nav-hover);color:#fff}.main-nav a.active{background:var(--nav-active-bg);color:var(--nav-active-text);font-weight:600}.nav-extra{display:grid;gap:.5rem;padding:.75rem 1rem 1rem;border-top:1px solid var(--nav-border)}.nav-extra .theme-select{color:var(--nav-text);width:100%;gap:.5rem}.nav-extra .theme-select select{flex:1}.btn-nav{background:transparent;color:var(--nav-text);border-color:#3e676c}.btn-nav:hover{background:var(--nav-hover);color:#fff}.sidebar .btn-ghost{color:var(--nav-text)}.sidebar .btn-ghost:hover{background:var(--nav-hover);color:#fff}.main{flex:1;outline:none}.page{max-width:1160px;margin:0 auto;padding:1.75rem 1rem 3rem}.page-wide{max-width:1480px}.page-header{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem}.app-footer{padding:1rem;text-align:center;font-size:.8rem;color:var(--color-muted)}.section{margin-top:2rem}.section-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}@media (min-width: 1024px){.app-shell:not(.no-sidebar){display:grid;grid-template-columns:16.5rem minmax(0,1fr)}.app-shell:not(.no-sidebar) .sidebar{position:sticky;top:0;height:100vh;overflow-y:auto;display:flex;flex-direction:column}.app-shell:not(.no-sidebar) .app-header{padding:1.5rem 1.25rem 1rem}.app-shell:not(.no-sidebar) .menu-toggle{display:none}.app-shell:not(.no-sidebar) .main-nav{display:flex;flex-direction:column;flex:1;border-top:none}.app-shell:not(.no-sidebar) .nav-extra{margin-top:auto}.page{padding:2.5rem 2.5rem 3.5rem}}@media (max-width: 760px){h1{font-size:1.6rem}h1.display{font-size:2rem}}.card{background:var(--color-surface);border:1px solid var(--color-card-border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:1.5rem}.cards{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-bottom:1rem}.two-columns{display:grid;gap:1rem;grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start}.grid-2{display:grid;gap:0 1rem;grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{display:grid;gap:0 1rem;grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{display:grid;gap:0 1rem;grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width: 860px){.two-columns,.grid-3,.grid-4{grid-template-columns:1fr}}@media (max-width: 600px){.grid-2{grid-template-columns:1fr}}.kpis{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:1rem}.kpi{display:flex;flex-direction:column;gap:.25rem;padding:1.1rem 1.35rem;text-decoration:none;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-card-border);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.kpi-value{font-family:var(--font-display);font-size:2.25rem;font-weight:700;line-height:1}.kpi-label{color:var(--color-muted)}.balance-number{font-family:var(--font-display);font-size:4rem;font-weight:700;color:var(--color-primary);line-height:.9;letter-spacing:-.03em}.balance-main{display:flex;align-items:flex-end;flex-wrap:wrap;gap:.25rem .75rem;margin-bottom:1rem;font-size:1.05rem}.progress{height:.6rem;border-radius:999px;background:var(--color-surface-alt);overflow:hidden;margin-bottom:.75rem}.progress-bar{height:100%;background:var(--color-primary)}.progress-warning .progress-bar{background:var(--color-warning)}.inline-dl{display:grid;grid-template-columns:auto auto;gap:.2rem 1rem;margin:0 0 .5rem;justify-content:start}.inline-dl dt{color:var(--color-muted)}.inline-dl dd{margin:0;font-weight:600}.stacked-dl dt{font-weight:600;margin-top:.6rem}.stacked-dl dd{margin:0}.plain-list{list-style:none;padding:0;margin:0 0 .75rem}.plain-list li{padding:.5rem 0;border-bottom:1px solid var(--color-border)}.plain-list li:last-child{border-bottom:none}.empty-state{text-align:center;padding:2rem 1rem}.empty-title{font-weight:600;font-size:1.05rem}.field{margin-bottom:1rem}.field label{display:block;font-weight:600;margin-bottom:.3rem}.required{color:var(--color-danger)}input,select,textarea{font:inherit;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-input-border);border-radius:var(--radius-sm);padding:.6rem .8rem;width:100%;min-height:2.75rem}input:hover,select:hover,textarea:hover{border-color:var(--color-muted)}input[readonly]{background:var(--color-surface-alt);color:var(--color-muted)}textarea{resize:vertical}input[type=checkbox]{width:1.1rem;height:1.1rem;min-height:0;margin:0;accent-color:var(--color-primary)}.field-error input,.field-error select,.field-error textarea{border-color:var(--color-danger);border-width:2px}.error-text{color:var(--color-danger);font-size:.875rem;margin:.3rem 0 0;font-weight:500}.error-text:before{content:"⚠ "}.checkbox{display:inline-flex;align-items:center;gap:.5rem;font-weight:400;cursor:pointer;margin:.25rem 1rem .75rem 0}.checkbox-multiline{align-items:flex-start;margin-right:0}.checkbox-multiline input[type=checkbox]{margin-top:.2rem;flex-shrink:0}fieldset{border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1rem;margin:0 0 1rem}legend{font-weight:700;padding:0 .4rem}.inline-fieldset{border:none;padding:0}.inline-fieldset legend{padding:0;margin-bottom:.3rem}.input-group{display:flex;gap:.5rem}.form-actions{display:flex;justify-content:flex-end;gap:.5rem;flex-wrap:wrap;margin-top:.5rem}.inline-form{background:var(--color-surface-alt);padding:1.25rem;border-radius:var(--radius);margin-bottom:1rem}.filters,.toolbar,.presets{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-bottom:1rem}.filters label{display:flex;align-items:center;gap:.4rem;max-width:100%;min-width:0}.filters input,.filters select{width:auto;min-width:0;flex:1 1 auto}.toolbar-filter{display:flex;align-items:center;gap:.4rem;margin-left:auto}.toolbar-filter select{width:auto}.month-title{margin:0;min-width:11rem;text-align:center;font-size:1.15rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;font:inherit;font-weight:600;text-decoration:none;cursor:pointer;border-radius:var(--radius-sm);padding:.6rem 1.1rem;min-height:2.75rem;border:1px solid transparent;transition:background .15s,box-shadow .15s}.btn-lg{min-height:3.1rem;padding:.75rem 1.4rem;font-size:1.02rem}.btn:disabled,.btn.disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.btn-sm{padding:.3rem .7rem;min-height:2.1rem;font-size:.9rem}.btn-block{width:100%}.btn-primary{background:var(--color-primary);color:var(--color-primary-text);box-shadow:var(--shadow-lift)}.btn-primary:hover{background:var(--color-primary-hover);color:var(--color-primary-text)}.btn-secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-input-border)}.btn-secondary:hover{background:var(--color-surface-alt);color:var(--color-text)}.btn-ghost{background:transparent;color:var(--color-primary)}.btn-ghost:hover{background:var(--color-surface-alt)}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger-outline{background:var(--color-surface);color:var(--color-danger);border:1.5px solid var(--color-danger)}.btn-icon{background:none;border:none;font-size:1.5rem;line-height:1;cursor:pointer;color:var(--color-muted);padding:.25rem .5rem}.alert{display:flex;gap:.75rem;padding:.9rem 1.1rem;border-radius:var(--radius);margin-bottom:1rem;border:1px solid}.alert ul{margin:.25rem 0 0;padding-left:1.2rem}.alert-title{display:block;margin-bottom:.15rem}.alert-action{margin-top:.5rem}.alert-error{background:var(--color-danger-bg);border-color:color-mix(in srgb,var(--color-danger) 40%,transparent)}.alert-warning{background:var(--color-warning-bg);border-color:color-mix(in srgb,var(--color-warning) 40%,transparent)}.alert-success{background:var(--color-success-bg);border-color:color-mix(in srgb,var(--color-success) 40%,transparent)}.alert-info{background:var(--color-info-bg);border-color:color-mix(in srgb,var(--color-primary) 40%,transparent)}.badge{display:inline-flex;align-items:center;gap:.25rem;white-space:nowrap;font-size:.8rem;font-weight:600;padding:.2rem .65rem;border-radius:999px;border:1px solid transparent}.badge-approved{color:var(--color-success);background:var(--color-success-bg)}.badge-pending{color:var(--color-warning);background:var(--color-warning-bg)}.badge-rejected{color:var(--color-danger);background:var(--color-danger-bg)}.badge-cancelled{color:var(--color-muted);background:var(--color-surface-alt)}.loading{display:flex;align-items:center;gap:.75rem;padding:2rem;justify-content:center;color:var(--color-muted)}.spinner{width:1.4rem;height:1.4rem;border-radius:50%;border:3px solid var(--color-border);border-top-color:var(--color-primary);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toasts{position:fixed;bottom:1rem;right:1rem;left:1rem;z-index:200;display:flex;flex-direction:column;align-items:flex-end;gap:.5rem;pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:center;gap:.75rem;max-width:28rem;background:var(--color-surface);color:var(--color-text);border-left:5px solid var(--color-primary);border-radius:var(--radius);box-shadow:0 10px 30px #10282c33;padding:.75rem .75rem .75rem 1rem}.toast-success{border-left-color:var(--color-success)}.toast-error{border-left-color:var(--color-danger)}.toast-close{background:none;border:none;font-size:1.3rem;cursor:pointer;color:var(--color-muted)}.dialog{border:none;border-radius:var(--radius-lg);padding:0;width:min(32rem,calc(100vw - 2rem));background:var(--color-surface);color:var(--color-text);box-shadow:0 20px 50px #0000004d}.dialog::backdrop{background:var(--backdrop)}.dialog{border:1px solid var(--color-border)}.dialog-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem 0}.dialog-header h2{margin:0}.dialog-body{padding:1rem 1.5rem}.dialog-footer{display:flex;justify-content:flex-end;gap:.5rem;padding:0 1.5rem 1.5rem}.table-wrap{position:relative;overflow-x:auto}.table{width:100%;border-collapse:collapse;background:var(--color-surface)}.table-wrap>.table,.card>.table{border-radius:var(--radius)}.table th,.table td{text-align:left;padding:.75rem .85rem;border-bottom:1px solid var(--color-card-border);vertical-align:top}.table thead th{font-size:.78rem;font-weight:600;color:var(--color-muted);text-transform:uppercase;letter-spacing:.05em}.table tbody tr:hover{background:color-mix(in srgb,var(--color-surface-alt) 50%,transparent)}.table .actions{text-align:right;white-space:nowrap}.table .actions>*+*{margin-left:.4rem}.table .actions-wrap{white-space:normal}.table .actions-wrap>*{margin-block:.15rem}.break-anywhere{overflow-wrap:anywhere}.is-inactive td{color:var(--color-muted)}@media (max-width: 860px){.table.responsive thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.table.responsive tr{display:block;border:1px solid var(--color-card-border);border-radius:var(--radius);margin-bottom:.75rem;padding:.6rem;box-shadow:var(--shadow)}.table.responsive td{display:block;border:none;padding:.3rem .25rem}.table.responsive td[data-label]:before{content:attr(data-label);display:block;font-size:.75rem;color:var(--color-muted);text-transform:uppercase}.table.responsive .actions{text-align:left}.table.responsive tbody th{display:block;border:none;padding:.3rem .25rem}.table.responsive td.num{text-align:left}}.type-info{background:var(--color-info-bg);border-radius:var(--radius);padding:.85rem 1.1rem;margin:-.25rem 0 1rem}.type-info p{margin-bottom:.4rem}.tags{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;padding:0;margin:0 0 .4rem}.tags li{background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;padding:.1rem .6rem;font-size:.82rem}.preview{position:sticky;top:1rem}.preview-days{margin-bottom:.25rem}.request-cards{list-style:none;padding:0;margin:0;display:grid;gap:1rem}.request-card{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.request-title{font-size:1.15rem;margin:0}.request-person{display:flex;align-items:center;gap:.85rem;margin-bottom:.75rem}.request-person p{margin:0}.request-actions{display:flex;gap:.5rem;align-items:flex-start}blockquote{margin:.5rem 0 0;padding:.6rem .85rem;border-radius:var(--radius-sm);background:var(--color-surface-alt);color:var(--color-muted);font-style:italic}.legend{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem 1.25rem;padding:0;margin:0 0 1rem;font-size:.875rem;align-items:center}.legend li{display:flex;align-items:center;gap:.4rem}.legend-swatch{display:inline-block;width:1.25rem;height:1.25rem;border-radius:6px;border:1px solid var(--color-border)}.calendar-wrap{position:relative;overflow-x:auto;padding:.5rem;border:1px solid var(--color-card-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow)}.calendar{border-collapse:separate;border-spacing:3px;font-size:.82rem;width:100%}.calendar th,.calendar td{border:none;border-radius:7px}.cal-name{position:sticky;left:0;z-index:2;background:var(--color-surface);text-align:left;min-width:11rem;max-width:14rem;padding:.4rem .6rem;font-weight:600;border-radius:0}.cal-dept{display:block;font-weight:400;font-size:.75rem;color:var(--color-muted)}.cal-day-head{min-width:2.1rem;padding:.3rem 0;text-align:center;font-weight:600}.cal-day-head span{display:block}.cal-weekday{font-size:.7rem;color:var(--color-muted);font-weight:400}.cal-cell{height:2.3rem;text-align:center;font-weight:700;font-size:.75rem;background:var(--cal-workday)}.is-weekend{background:var(--cal-weekend)}.is-holiday{background:var(--cal-holiday)}.cal-day-head.is-today{background:var(--cal-today);color:var(--cal-today-text)}.cal-day-head.is-today .cal-weekday{color:inherit}.cal-cell.is-today{box-shadow:inset 0 0 0 2px var(--cal-today)}tr.is-me .cal-name{color:var(--color-primary)}.entry-approved{background:var(--status-approved);color:#fff}.entry-pending{background:repeating-linear-gradient(45deg,var(--status-pending) 0 4px,color-mix(in srgb,var(--status-pending) 55%,white) 4px 8px);color:#1b1200}.entry-rejected{background:var(--color-surface);color:var(--status-rejected);box-shadow:inset 0 0 0 2px var(--status-rejected);text-decoration:line-through}.auth-page{min-height:100vh;display:grid;place-items:center;padding:1.5rem 1rem;background:radial-gradient(circle at 20% 0%,var(--color-primary-soft),transparent 55%),var(--color-bg)}.auth-card{width:min(26rem,100%);background:var(--color-surface);border:1px solid var(--color-card-border);border-radius:var(--radius-lg);padding:2rem;box-shadow:0 10px 30px #10282c14}.auth-card-wide{width:min(46rem,100%)}.auth-card hr{border:none;border-top:1px solid var(--color-border);margin:1.25rem 0}.faq{border:1px solid var(--color-card-border);border-radius:var(--radius);background:var(--color-surface);margin-bottom:.5rem;padding:.85rem 1.1rem}.faq summary{cursor:pointer;font-weight:600}.faq p{margin:.6rem 0 0}.is-refreshing>:not(.refreshing-note){opacity:.55;transition:opacity .15s}.refreshing-note{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--color-muted);margin:0 0 .5rem}.spinner-sm{width:.9rem;height:.9rem;border-width:2px}.btn-danger-outline:hover{background:var(--color-danger-bg);color:var(--color-danger)}.btn-danger:hover{filter:brightness(.92)}.tabs{display:inline-flex;gap:4px;max-width:100%;overflow-x:auto;margin-bottom:1.25rem;padding:4px;border-radius:var(--radius);background:var(--color-surface-alt)}.tab{font:inherit;font-weight:600;background:none;border:none;cursor:pointer;white-space:nowrap;padding:.5rem 1.1rem;min-height:40px;border-radius:9px;color:var(--color-muted)}.tab:hover{color:var(--color-text)}.tab.active{background:var(--color-surface);color:var(--color-text);box-shadow:0 1px 3px #16212b1f}.context-box{background:var(--color-surface-alt);border-radius:var(--radius);padding:.85rem 1rem;margin-top:.75rem;font-size:.9rem}.context-box p{margin:0 0 .3rem}.compact-list{margin:0;padding-left:1.1rem}.compact-list li{margin:.15rem 0}.legend-box{margin-bottom:.75rem}.legend-box .legend{margin-bottom:.5rem}.legend-codes{display:flex;flex-wrap:wrap;gap:.25rem 1rem;margin:0;font-size:.82rem}.legend-codes div{display:flex;gap:.3rem;align-items:baseline}.legend-codes dt{font-weight:700;min-width:1.6rem;text-align:center;border:1px solid var(--color-border);border-radius:3px;padding:0 .2rem;background:var(--color-surface)}.legend-codes dd{margin:0;color:var(--color-muted)}.cal-entry{all:unset;box-sizing:border-box;display:block;width:100%;height:100%;min-height:2.3rem;line-height:2.3rem;text-align:center;font-weight:700;cursor:pointer}.cal-entry:focus-visible{outline:3px solid var(--color-focus);outline-offset:-3px}.cal-cell{padding:0}.cal-cell.is-clickable{cursor:pointer}.cal-cell.is-clickable:hover{background:var(--color-info-bg);box-shadow:inset 0 0 0 2px var(--color-primary)}.entry-detail{margin:1rem 0}.entry-detail p{margin-bottom:.4rem}.legend-details summary{cursor:pointer;font-size:.875rem;font-weight:600;color:var(--color-primary);margin-bottom:.4rem;min-height:24px}.legend-details:not([open]) summary{margin-bottom:0}@media (max-width: 860px){.table.responsive{background:transparent}.table.responsive tr{background:var(--color-surface)}}.balance-breakdown{display:grid;grid-template-columns:1fr auto;gap:.25rem 1rem;margin:0 0 .75rem}.balance-breakdown dt{color:var(--color-muted)}.balance-breakdown dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}.balance-breakdown .total{border-top:1px solid var(--color-border);padding-top:.25rem;color:var(--color-text);font-weight:600}.adjustment-item{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start}.compact-select select{width:auto;min-height:2.1rem;padding:.25rem .5rem}.input-narrow{width:5.5rem}.policies-table td{vertical-align:middle}.policies-table select{width:auto}.attachment-item{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start}.attachment-item a{word-break:break-word}.file-label{cursor:pointer}.file-label:focus-within{outline:3px solid var(--color-focus);outline-offset:2px}.card-attachments{margin-top:.75rem}.card-attachments summary{cursor:pointer;font-weight:600;color:var(--color-primary);min-height:24px}.card-attachments[open] summary{margin-bottom:.5rem}.half-day{margin-bottom:1rem}.half-day .checkbox{margin-right:1.25rem}.half-mark{font-size:.7em;vertical-align:super;margin-left:1px}.map-sheet{background:var(--color-surface);border:1px solid var(--color-card-border);border-radius:var(--radius-lg);padding:1.5rem}.map-header h2{margin-bottom:.25rem}.map-header p{margin:0 0 .25rem}.map-legal{font-size:.85rem;color:var(--color-muted)}.map-table{margin-top:1rem}.map-table th[scope=row]{font-weight:600}.map-table .num{text-align:right;white-space:nowrap}.map-periods{list-style:none;margin:0;padding:0}.map-footer{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:2rem;font-size:.9rem}@media print{@page{size:A4 landscape;margin:12mm}:root,:root[data-theme]{--color-bg: #fff;--color-surface: #fff;--color-text: #000;--color-muted: #333;--color-border: #999;color-scheme:light}body{background:#fff;color:#000;font-size:10pt}.skip-link,.sidebar,.app-header,.main-nav,.app-footer,.toasts,.no-print,.refreshing-note{display:none!important}.app-shell{display:block!important}.main,.page,.page-wide{max-width:none;padding:0;margin:0}.map-sheet{border:none;padding:0}.map-table th,.map-table td{padding:4pt 6pt;border-bottom:.5pt solid #999}.map-table thead{display:table-header-group}.map-table tr{break-inside:avoid}.is-refreshing>*{opacity:1!important}a{color:#000;text-decoration:none}}.trial-banner{display:flex;align-items:center;justify-content:center;gap:1rem;flex-wrap:wrap;padding:.5rem 1rem;background:var(--color-info-bg);border-bottom:1px solid var(--color-border);font-size:.9rem}.trial-banner.urgent{background:var(--color-warning-bg)}.plan-choice{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem;margin-bottom:1rem}.plan-option{display:flex;flex-direction:column;gap:.25rem;padding:.85rem 1rem;cursor:pointer;border:2px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface)}.plan-option:hover{border-color:var(--color-input-border)}.plan-option input{align-self:flex-start}.plan-option.selected{border-color:var(--color-primary)}.plan-option:focus-within{outline:3px solid var(--color-focus);outline-offset:2px}.estimate{font-size:1.05rem;font-weight:600;margin-top:1.9rem}.pre-line{white-space:pre-line}.onboarding-steps{list-style:none;padding:0;margin:0;display:grid;gap:.6rem}.onboarding-steps li{display:flex;gap:.6rem;align-items:flex-start}.onboarding-steps .step-mark{font-weight:700;color:var(--color-muted);min-width:1.2rem}.onboarding-steps li.done .step-mark{color:var(--color-success)}.onboarding-steps li.done a{color:var(--color-muted);text-decoration:line-through}@media print{.trial-banner{display:none!important}}.theme-select{display:inline-flex;align-items:center;gap:.25rem}.theme-select select{width:auto;min-height:2.1rem;padding:.2rem .4rem;font-size:.85rem}.theme-fieldset{margin-top:1rem}.first-access{max-width:34rem}.side-stack{display:grid;gap:1rem;align-content:start}.pending-access{display:table;margin-top:.2rem;white-space:normal}.more-link{display:inline-block;padding:.5rem 0}@media (max-width: 760px){.app-header{flex-wrap:nowrap;padding-block:.5rem}.brand,.brand-text{min-width:0}.brand-company,.brand-text strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-toggle{flex-shrink:0}.user-area{display:none}.no-menu{flex-wrap:wrap}.no-menu .user-area{display:flex;width:100%;justify-content:space-between;gap:.5rem}.no-menu .header-theme{display:none}.no-menu .user-link{flex:1 1 auto;min-width:0}.no-menu .role-tag{display:none}.no-menu .user-area .btn{white-space:nowrap;flex-shrink:0}.user-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-extra .theme-select label{position:static!important;width:auto;height:auto;margin:0;overflow:visible;clip:auto;white-space:nowrap;font-weight:600}.nav-extra .theme-select .icon{display:none}input,select,textarea,.theme-select select{font-size:16px}}@media (pointer: coarse),(max-width: 760px){input,select,textarea,.theme-select select{font-size:16px}.btn,.btn-sm,.menu-toggle{min-height:44px}input:not([type=checkbox]):not([type=radio]),select,.theme-select select,.compact-select select{min-height:44px}.checkbox{min-height:44px;margin-top:0;margin-bottom:.25rem}.user-link{min-height:44px}.more-link{padding:.7rem 0}summary,.faq summary,.legend-details summary,.card-attachments summary{padding-block:.6rem}.faq{padding-block:.25rem}td>input[type=checkbox]{width:1.6rem;height:1.6rem}}.auth-forgot{margin:.75rem 0 0;text-align:center}.auth-forgot a{display:inline-block;padding:.5rem .25rem}@media (pointer: coarse){.auth-forgot a{display:inline-flex;align-items:center;min-height:44px}}.backoffice-page{grid-template-columns:minmax(0,1fr)}.backoffice-card{width:min(72rem,100%)}.backoffice-table .checkbox{margin:0}@media (min-width: 701px){.backoffice-table th,.backoffice-table td{white-space:nowrap;vertical-align:middle}.backoffice-table td:first-child{white-space:normal;min-width:12rem}}.dash-header{align-items:flex-end}.dash-date{margin:0 0 .25rem}.dash-date:first-letter{text-transform:uppercase}.dash-grid{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));margin-bottom:1rem}@media (min-width: 900px){.dash-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.dash-grid .balance-card{grid-column:span 2}.dash-grid:has(.card-feature)>.card:last-child{grid-column:1 / -1}}.card-feature{display:flex;flex-direction:column;gap:.5rem;text-decoration:none;background:var(--nav-bg);color:var(--nav-text);border-color:var(--nav-bg)}.card-feature:hover{color:var(--nav-text);background:var(--nav-hover)}.feature-value{font-family:var(--font-display);font-size:4rem;font-weight:700;line-height:.9;color:#fff}.card-feature.is-attention .feature-value{color:var(--color-accent)}.feature-label{font-size:1.02rem}.feature-action{margin-top:auto;align-self:flex-start;display:inline-flex;align-items:center;gap:.25rem;background:var(--color-accent);color:var(--color-accent-text);font-weight:600;padding:.6rem 1rem;border-radius:var(--radius-sm);min-height:44px}.segment-bar{display:flex;gap:3px;height:.85rem;border-radius:999px;overflow:hidden;background:var(--color-surface-alt);margin-bottom:.9rem}.segment{display:block;flex-basis:0}.segment-approved{background:var(--color-primary)}.segment-pending{background:var(--color-accent)}.segment-available{background:var(--color-primary-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--color-primary) 35%,transparent)}.segment-legend{list-style:none;margin:0 0 .5rem;padding:0;display:flex;flex-wrap:wrap;gap:.5rem 1.5rem}.segment-legend li{display:flex;align-items:center;gap:.5rem}.segment-swatch{display:inline-block;width:.8rem;height:.8rem;border-radius:4px;flex-shrink:0}.event-list{list-style:none;margin:0 0 .5rem;padding:0}.event-list li{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .85rem;padding:.7rem 0;border-top:1px solid var(--color-card-border)}.event-list li:first-child{border-top:none;padding-top:.25rem}.event-text{display:flex;flex-direction:column;flex:1 1 7rem;min-width:0}.event-text .muted{font-size:.9rem}.date-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;width:3.25rem;padding:.35rem 0;border-radius:var(--radius);background:var(--color-primary-soft);color:var(--color-primary-strong);line-height:1.1}.date-tile strong{font-size:1.2rem}.date-tile span{font-size:.75rem}.avatar{display:inline-grid;place-items:center;flex-shrink:0;border-radius:50%;width:2.5rem;height:2.5rem;font-size:.85rem;font-weight:600;letter-spacing:.02em}.avatar-sm{width:2rem;height:2rem;font-size:.75rem}.avatar-tone-1{background:#cde7e3;color:#0a5050}.avatar-tone-2{background:#fbe7b8;color:#6b4200}.avatar-tone-3{background:#e2ddf5;color:#43308a}.avatar-tone-4{background:#fbd9c4;color:#8a3a0b}.avatar-tone-5{background:#dde6f3;color:#24406b}.avatar-tone-6{background:#f3dde8;color:#7a2550}
