@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";.app-shell{min-height:100vh;display:grid;grid-template-columns:300px 1fr}.nav{position:sticky;top:0;height:100vh;overflow-y:auto;overscroll-behavior:contain;background:linear-gradient(180deg,#122235fa,#0f1b2af5),linear-gradient(145deg,rgba(255,255,255,.06),transparent 58%);color:#eff7ff;padding:28px 22px;border-right:1px solid rgba(255,255,255,.08);box-shadow:var(--shadow-panel);display:flex;flex-direction:column;gap:22px;z-index:1001;scrollbar-width:thin;scrollbar-color:rgba(169,197,221,.5) rgba(255,255,255,.08)}.nav::-webkit-scrollbar{width:10px}.nav::-webkit-scrollbar-track{background:#ffffff14;border-radius:999px}.nav::-webkit-scrollbar-thumb{background:#a9c5dd80;border-radius:999px;border:2px solid rgba(255,255,255,.08)}.sidebar-brand{display:grid;gap:10px}.sidebar-eyebrow{font-size:.76rem;text-transform:uppercase;letter-spacing:.18em;color:#eff7ff9e}.sidebar-title{color:#fff;font-size:1.8rem;line-height:1.02;margin:0}.sidebar-copy{color:#eff7ffbd;margin:0}.sidebar-panel{background:#ffffff14;border:1px solid rgba(255,255,255,.08);border-radius:24px;padding:18px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.sidebar-user{display:grid;gap:4px}.sidebar-user-label{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:#eff7ff8f}.sidebar-user strong,.sidebar-user span{color:#fff}.sidebar-nav{display:grid;gap:10px}.sidebar-nav button{width:100%;text-align:left}.sidebar-nav .active,.btn-secondary.active{background:linear-gradient(135deg,var(--color-accent),#b7d0e4);color:#102133;box-shadow:0 14px 28px #8fb7d83d}.sidebar-footer{margin-top:auto}.mobile-menu-button,.nav-backdrop{display:none}.main{min-width:0;padding:34px}.page-frame{max-width:var(--page-max);margin:0 auto;display:grid;gap:24px}.hero-card{background:radial-gradient(circle at top right,rgba(169,197,221,.22),transparent 26%),linear-gradient(135deg,#162235fa,#1f5d8ce6);color:#fff;border-radius:32px;padding:32px;box-shadow:var(--shadow-panel);position:relative;overflow:hidden}.hero-card:after{content:"";position:absolute;inset:auto -40px -80px auto;width:220px;height:220px;border-radius:50%;background:#ffffff1a}.hero-card h1,.hero-card h2,.hero-card h3,.hero-card h4,.hero-card p,.hero-card span{color:inherit}.hero-eyebrow{margin:0 0 10px;text-transform:uppercase;letter-spacing:.18em;font-size:.8rem;color:#ffffffb8}.hero-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,.9fr);gap:24px;align-items:end}.hero-copy{max-width:680px}.hero-copy p{color:#fffc;font-size:1.03rem;margin-bottom:0}.hero-metrics{display:grid;gap:12px}.metric-card{background:#ffffff1f;border:1px solid rgba(255,255,255,.14);border-radius:22px;padding:16px 18px}.metric-label{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.14em;color:#ffffffb3;margin-bottom:6px}.metric-value{display:block;font-size:2rem;font-weight:700}.card{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-soft);padding:1.6rem;position:relative;overflow:hidden;border:1px solid var(--color-border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(145deg,rgba(31,93,140,.07),transparent 68%);pointer-events:none}.card>*{position:relative;z-index:1}.section-header{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap}.section-header p{margin:0;color:var(--color-muted-strong)}.stats-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.stats-strip .card{padding:20px}.stats-strip strong{display:block;font-size:1.8rem;color:var(--color-primary)}.form-grid{display:grid;gap:16px}.form-grid--two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-group{display:grid;gap:8px}.form-group label{color:var(--color-muted-strong);font-size:.85rem;font-weight:600;letter-spacing:.02em}.form-help{color:var(--color-muted);font-size:.84rem}.inline-actions{display:flex;gap:10px;flex-wrap:wrap}.surface-panel{background:#ffffff8c;border:1px solid var(--color-border);border-radius:24px;padding:20px}.alert{padding:1rem 1.1rem;border-radius:18px;margin-bottom:1rem;border:1px solid transparent}.alert-info{background:#1f5d8c1a;border-color:#1f5d8c29;color:var(--color-primary)}.alert-warning{background:#b7791f1f;border-color:#b7791f38;color:var(--color-warning)}.alert-danger{background:#c55b661f;border-color:#c55b662e;color:var(--color-danger)}.alert-success{background:#2e7d6d1f;border-color:#2e7d6d33;color:var(--color-success)}.status-badge,.pill{display:inline-flex;align-items:center;gap:6px;padding:.38rem .76rem;border-radius:999px;font-size:.82rem;font-weight:600;letter-spacing:.01em}.status-pending{background:#b7791f1f;color:var(--color-warning)}.status-approved{background:#2e7d6d1f;color:var(--color-success)}.status-declined,.status-cancelled{background:#c55b661f;color:var(--color-danger)}.status-neutral{background:#5c6b7c1f;color:var(--color-muted-strong)}.btn,.btn:visited{display:inline-flex;align-items:center;justify-content:center}.btn-secondary,.admin-chip,.filter-chip,.btn-ghost{background:#ffffffb3;color:var(--color-text);border:1px solid var(--color-border);box-shadow:none}.btn-secondary:hover,.admin-chip:hover,.filter-chip:hover,.btn-ghost:hover{background:#ffffffe6}.btn-danger{background:linear-gradient(135deg,var(--color-danger),#d47b84)}.btn-success{background:linear-gradient(135deg,var(--color-success),#4b9485)}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.summary-card{background:#ffffff8c;border:1px solid var(--color-border);border-radius:22px;padding:18px}.summary-label{display:block;color:#f4f8fc;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px;font-weight:700}.summary-value{font-size:1.8rem;font-weight:700;opacity:1;text-shadow:none}.summary-value--success{color:var(--color-success)}.summary-value--warning{color:var(--color-warning)}.summary-value--danger{color:var(--color-danger)}.summary-value--primary{color:var(--color-primary)}.summary-value--muted{color:#eef4fb}.summary-card .muted-text{color:#f4f8fce0}.table-card{overflow:hidden}.table-wrap{overflow-x:auto}.table-note,.muted-text{color:var(--color-muted)}.stack{display:grid;gap:16px}.legend-grid{display:flex;flex-wrap:wrap;gap:1rem}.legend-item{display:flex;align-items:center;gap:.5rem}.legend-swatch{width:16px;height:16px;border-radius:4px;flex-shrink:0}.calendar-toolbar{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:#16223514;border:1px solid rgba(22,34,53,.08);border-radius:24px;overflow:hidden}.calendar-header-cell{background:#ffffffd1;padding:.9rem .5rem;text-align:center;font-weight:600;color:var(--color-muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}.calendar-cell{background:#ffffffe0;min-height:120px;padding:.65rem;display:flex;flex-direction:column;gap:.35rem}.calendar-cell.empty{background:#ffffff73}.calendar-cell.weekend{background:#1f5d8c0d}.calendar-cell.today{background:#1f5d8c24;box-shadow:inset 0 0 0 2px #1f5d8c42}.calendar-cell.has-leave{background:#8fb7d82e}.calendar-date{font-weight:700;font-size:.9rem;color:var(--color-muted-strong)}.calendar-events{display:flex;flex-direction:column;gap:4px;overflow-y:auto}.calendar-event{padding:4px 8px;border-radius:999px;font-size:.72rem;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.loading-state,.error-state,.empty-state{text-align:center;padding:3rem 1rem}.error-state{color:var(--color-danger)}@media(max-width:960px){.app-shell{grid-template-columns:1fr}.nav{position:fixed;right:0;top:0;width:min(320px,88vw);transform:translate(100%);transition:transform .3s ease}.nav.open{transform:translate(0)}.mobile-menu-button{display:inline-flex;position:fixed;top:18px;right:18px;z-index:1002;width:54px;height:54px;align-items:center;justify-content:center;padding:0}.main{padding:78px 18px 24px}.nav-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0a121d6b;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000}.hero-grid,.form-grid--two{grid-template-columns:1fr}}@media(max-width:768px){.calendar-cell{min-height:72px;padding:.35rem}.calendar-event{font-size:.62rem;padding:3px 6px}th,td{padding:.8rem .65rem}}@media(max-width:640px){.hero-card,.card{padding:24px}.main{padding-inline:14px}}:root{--color-bg-top: #f4f7fb;--color-bg-bottom: #e9eff6;--color-surface: rgba(255, 255, 255, .92);--color-surface-strong: #ffffff;--color-panel: rgba(18, 34, 53, .96);--color-text: #162235;--color-muted: #5c6b7c;--color-muted-strong: #48586a;--color-primary: #1f5d8c;--color-primary-hover: #17486d;--color-accent: #8fb7d8;--color-success: #2e7d6d;--color-warning: #b7791f;--color-danger: #c55b66;--color-border: rgba(22, 34, 53, .1);--shadow-soft: 0 18px 44px rgba(22, 34, 53, .08);--shadow-panel: 0 28px 60px rgba(17, 31, 49, .18);--radius-xl: 1.25rem;--radius-lg: 1rem;--page-max: 1180px}@media(prefers-color-scheme:dark){:root{--color-bg-top: #0d1520;--color-bg-bottom: #1a2736;--color-surface: rgba(22, 34, 50, .88);--color-surface-strong: #1b2a3b;--color-panel: rgba(12, 20, 32, .96);--color-text: #edf3fa;--color-muted: #b2c2d0;--color-muted-strong: #d3deea;--color-primary: #6b9cc2;--color-primary-hover: #89b2d1;--color-accent: #a9c5dd;--color-success: #53a090;--color-warning: #d9a353;--color-danger: #ef8892;--color-border: rgba(226, 236, 248, .1);--shadow-soft: 0 20px 52px rgba(0, 0, 0, .35);--shadow-panel: 0 30px 70px rgba(0, 0, 0, .45)}}*{box-sizing:border-box;transition:background-color .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease}html,body{min-width:320px;margin:0;background:radial-gradient(circle at top left,rgba(31,93,140,.12),transparent 34%),radial-gradient(circle at top right,rgba(143,183,216,.18),transparent 24%),linear-gradient(180deg,var(--color-bg-top),var(--color-bg-bottom));color:var(--color-text);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Inter,Helvetica Neue,sans-serif;font-weight:400;line-height:1.6;letter-spacing:-.01em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body,#root{min-height:100vh}h1,h2,h3,h4{font-family:SF Pro Display,Inter,-apple-system,BlinkMacSystemFont,sans-serif;color:var(--color-text);font-weight:600;letter-spacing:-.015em;text-rendering:optimizeLegibility;margin-top:0;margin-bottom:.6rem}h1{font-size:clamp(2.4rem,5vw,4rem)}h2{font-size:clamp(1.7rem,2vw,2.3rem)}h3{font-size:1.2rem}h4{font-size:1.05rem;color:var(--color-primary)}p,span,li,button,input,select,textarea,label,small{font-family:SF Pro Text,Inter,-apple-system,BlinkMacSystemFont,sans-serif;color:var(--color-text)}a,a:visited{color:var(--color-primary);text-decoration:none}a:hover{color:var(--color-primary-hover)}button{border:none;border-radius:9999px;padding:.78rem 1.4rem;font-weight:600;font-size:.92rem;letter-spacing:.01em;background:linear-gradient(135deg,var(--color-primary),#4479a3);color:#f7f7f7;box-shadow:0 14px 28px #1f5d8c33;cursor:pointer;position:relative;overflow:hidden}button:hover{background:linear-gradient(135deg,var(--color-primary-hover),var(--color-primary));transform:translateY(-2px);box-shadow:0 18px 30px #17486d3d}button:focus,button:focus-visible{outline:none;box-shadow:0 0 0 3px #1f5d8c33,0 18px 30px #17486d3d}button:disabled{opacity:.65;cursor:not-allowed;transform:none}input,select,textarea{width:100%;padding:.85rem .95rem;font-size:.97rem;color:var(--color-text);background:#ffffff9e;border:1px solid var(--color-border);border-radius:14px}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #1f5d8c26}input::placeholder,textarea::placeholder{color:var(--color-muted-strong);opacity:1}select option{background:var(--color-surface-strong);color:var(--color-text)}table{width:100%;border-collapse:collapse;background:transparent}th,td{padding:1rem .9rem;text-align:left;border-bottom:1px solid rgba(22,34,53,.08);vertical-align:top}th{color:var(--color-muted);font-size:.76rem;text-transform:uppercase;letter-spacing:.08em}tbody tr:hover{background:#1f5d8c0d}::selection{background:var(--color-primary);color:#fff}
