@import"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,300;1,400&family=JetBrains+Mono:wght@400;500&display=swap";:root{--brand-indigo: #211645;--brand-indigo-95: #2C1F50;--brand-cyan: #00A7CE;--brand-cyan-10: #E5F6FB;--brand-purple: #712177;--brand-green: #00AF41;--brand-navy: var(--brand-indigo);--brand-blue: var(--brand-cyan);--brand-blue-deep: #00859E;--brand-teal: #00859E;--ink: #1A1F2A;--ink-2: #4B5563;--ink-3: #7A8696;--ink-inverse: #FFFFFF;--surface: #FFFFFF;--surface-2: #F5F7FA;--surface-3: #EAF1F8;--surface-dark: #0E2A47;--rule: #E3E8EF;--rule-strong: #C9D2DE;--fg1: var(--ink);--fg2: var(--ink-2);--fg3: var(--ink-3);--bg1: var(--surface);--bg2: var(--surface-2);--bg3: var(--surface-3);--link: var(--brand-cyan);--link-hover: var(--brand-blue-deep);--accent: var(--brand-cyan);--primary: var(--brand-indigo);--success: var(--brand-green);--warning: #C77A1B;--danger: #B0322B;--font-display: "Open Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-body: "Open Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--fs-display: clamp(48px, 6vw, 80px);--fs-h1: clamp(40px, 5vw, 56px);--fs-h2: clamp(28px, 3.5vw, 44px);--fs-h3: 26px;--fs-h4: 20px;--fs-body: 17px;--fs-body-lg: 19px;--fs-small: 14px;--fs-eyebrow: 13px;--lh-tight: 1.05;--lh-snug: 1.2;--lh-normal: 1.45;--lh-relaxed: 1.6;--tracking-tight: -.02em;--tracking-normal: 0;--tracking-eyebrow: .08em;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--s-7: 48px;--s-8: 64px;--s-9: 96px;--s-10: 120px;--r-1: 4px;--r-2: 8px;--r-3: 12px;--r-pill: 999px;--shadow-1: 0 1px 2px rgba(14, 42, 71, .06);--shadow-2: 0 6px 16px rgba(14, 42, 71, .08);--shadow-3: 0 16px 40px rgba(14, 42, 71, .12);--ease: cubic-bezier(.2,.7,.2,1);--dur-fast: .12s;--dur: .18s;--dur-slow: .4s;--content-max: 1200px;--gutter: 24px}.di-display{font-family:var(--font-display);font-size:var(--fs-display);line-height:var(--lh-tight);letter-spacing:var(--tracking-tight);font-weight:800;color:var(--fg1);text-wrap:balance}.di-h1{font-family:var(--font-display);font-size:var(--fs-h1);line-height:var(--lh-tight);letter-spacing:var(--tracking-tight);font-weight:700;color:var(--fg1);text-wrap:balance}.di-h2{font-family:var(--font-display);font-size:var(--fs-h2);line-height:var(--lh-snug);font-weight:700;color:var(--fg1);text-wrap:balance}.di-h3{font-family:var(--font-display);font-size:var(--fs-h3);line-height:var(--lh-snug);font-weight:700;color:var(--fg1)}.di-h4{font-family:var(--font-display);font-size:var(--fs-h4);line-height:var(--lh-snug);font-weight:600;color:var(--fg1)}.di-eyebrow{font-family:var(--font-body);font-size:var(--fs-eyebrow);letter-spacing:var(--tracking-eyebrow);font-weight:700;text-transform:uppercase;color:var(--brand-cyan)}.di-p{font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--lh-relaxed);color:var(--fg2);text-wrap:pretty}.di-lead{font-family:var(--font-body);font-size:var(--fs-body-lg);line-height:var(--lh-relaxed);color:var(--fg1);text-wrap:pretty}.di-small{font-family:var(--font-body);font-size:var(--fs-small);color:var(--fg3)}.di-mono{font-family:var(--font-mono);font-size:14px;background:var(--surface-2);padding:2px 6px;border-radius:var(--r-1)}.di-divider{width:64px;height:2px;background:var(--brand-cyan);border:0;margin:24px 0}.di-accent-cyan{color:var(--brand-cyan)}.di-accent-purple{color:var(--brand-purple)}.di-accent-green{color:var(--brand-green)}.di-btn{font-family:var(--font-body);font-weight:600;font-size:16px;padding:14px 28px;border-radius:var(--r-1);border:1px solid transparent;cursor:pointer;display:inline-flex;align-items:center;gap:8px;text-decoration:none;transition:background var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease),transform var(--dur-fast) var(--ease);line-height:1}.di-btn-primary{background:var(--brand-indigo);color:var(--ink-inverse)}.di-btn-primary:hover{background:#322162}.di-btn-primary:active{transform:translateY(1px);filter:brightness(.95)}.di-btn-outline{background:transparent;color:var(--brand-indigo);border-color:var(--brand-indigo)}.di-btn-outline:hover{background:var(--brand-cyan-10)}.di-btn-cyan{background:var(--brand-cyan);color:#fff}.di-btn-cyan:hover{background:var(--brand-blue-deep);color:var(--ink-inverse)}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}body{font-family:var(--font-body);color:var(--ink);background:var(--surface-2);-webkit-font-smoothing:antialiased}#root,.app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{height:60px;flex:0 0 60px;background:var(--surface);border-bottom:1px solid var(--rule);display:flex;align-items:center;padding:0 var(--s-5)}.brand-name{font-weight:700;font-size:16px;color:var(--ink)}.brand-name b{color:var(--brand-cyan)}.topbar-user{margin-left:auto;display:flex;align-items:center;gap:var(--s-4);color:var(--ink-2)}.topbar-signout{font-family:var(--font-body);font-size:var(--fs-small);font-weight:600;color:var(--brand-cyan);text-decoration:none;background:none;border:none;padding:0;cursor:pointer}.topbar-signout:hover{color:var(--brand-blue-deep);text-decoration:underline}.nav-tabs{display:flex;gap:var(--s-2);padding:0 var(--s-5);background:var(--surface);border-bottom:1px solid var(--rule)}.nav-tab{padding:var(--s-3) var(--s-2);font-size:var(--fs-small);font-weight:600;color:var(--ink-2);text-decoration:none;border-bottom:2px solid transparent;transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease)}.nav-tab:hover{color:var(--ink)}.nav-tab-active{color:var(--brand-indigo);border-bottom-color:var(--brand-cyan)}.page-main{flex:1;display:flex;justify-content:center;padding:var(--s-6) var(--s-5)}.page{width:100%;max-width:var(--content-max);display:flex;flex-direction:column;gap:var(--s-5)}.page-header{display:flex;align-items:center;justify-content:space-between}.di-card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-3);padding:var(--s-5);box-shadow:var(--shadow-1);display:flex;flex-direction:column;gap:var(--s-4)}.di-input{width:100%;font-family:var(--font-body);font-size:var(--fs-body);padding:var(--s-2) var(--s-3);border:1px solid var(--rule-strong);border-radius:var(--r-1);background:var(--surface);color:var(--ink)}.di-input:focus{outline:2px solid var(--brand-cyan);outline-offset:1px}.request-form{max-width:560px}.form-row{display:flex;flex-direction:column;gap:var(--s-1)}.form-row-split{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4)}.form-actions{display:flex;justify-content:flex-end;gap:var(--s-3)}.form-error{color:var(--danger);font-size:var(--fs-small)}.form-note{color:var(--fg3);margin:var(--s-1) 0 0}.type-toggle{display:flex;gap:var(--s-2);flex-wrap:wrap}.type-chip{font-family:var(--font-body);font-size:var(--fs-small);font-weight:600;padding:var(--s-2) var(--s-4);border-radius:var(--r-pill);border:1px solid var(--rule-strong);background:var(--surface);color:var(--ink-2);cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease)}.type-chip:hover{border-color:var(--brand-cyan)}.type-chip-active{background:var(--brand-indigo);color:var(--ink-inverse);border-color:var(--brand-indigo)}.di-btn-small{padding:6px 14px;font-size:var(--fs-small)}.di-table{width:100%;border-collapse:collapse;font-size:var(--fs-small)}.di-table th{text-align:left;padding:var(--s-2) var(--s-3);color:var(--fg3);font-weight:600;border-bottom:1px solid var(--rule);text-transform:uppercase;font-size:11px;letter-spacing:var(--tracking-eyebrow)}.di-table td{padding:var(--s-3);border-bottom:1px solid var(--rule);color:var(--fg2);vertical-align:middle}.di-table tr:last-child td{border-bottom:none}.actions-cell{text-align:right;white-space:nowrap}.action-group{display:flex;gap:var(--s-2);justify-content:flex-end}.empty-state{padding:var(--s-4) 0}.deny-reason{color:var(--fg3)}.status-badge{display:inline-block;padding:2px 10px;border-radius:var(--r-pill);font-size:12px;font-weight:600}.status-pending{background:#fcefd9;color:var(--warning)}.status-approved{background:#dff4e3;color:var(--success)}.status-denied{background:#f8e1df;color:var(--danger)}.status-cancelled{background:var(--surface-2);color:var(--fg3)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0e2a4759;display:grid;place-items:center;z-index:100;padding:var(--s-5)}.modal-card{background:var(--surface);border-radius:var(--r-3);padding:var(--s-5);max-width:420px;width:100%;box-shadow:var(--shadow-3);display:flex;flex-direction:column;gap:var(--s-3)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--s-4)}.stat-card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-3);padding:var(--s-4);text-align:center}.stat-card-clickable{cursor:pointer;text-align:left;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.stat-card-clickable:hover{border-color:var(--brand-indigo)}.stat-card-selected{border-color:var(--brand-indigo);box-shadow:0 0 0 1px var(--brand-indigo)}.stat-number{font-family:var(--font-display);font-size:36px;font-weight:700;color:var(--brand-indigo);margin:0}.exec-toolbar{display:flex;align-items:center;gap:var(--s-3);flex-wrap:wrap}.di-select{font-family:var(--font-body);font-size:var(--fs-small);font-weight:600;padding:8px 12px;border-radius:var(--r-1);border:1px solid var(--rule);background:var(--surface);color:var(--ink);cursor:pointer}.month-bars{display:flex;flex-direction:column;gap:var(--s-2)}.month-bar-row{display:grid;grid-template-columns:80px 1fr 24px;align-items:center;gap:var(--s-3)}.month-bar-label{color:var(--fg3)}.month-bar-track{height:8px;background:var(--surface-2);border-radius:var(--r-pill);overflow:hidden}.month-bar-fill{height:100%;background:var(--brand-cyan);border-radius:var(--r-pill)}.legend-row{display:flex;flex-wrap:wrap;gap:var(--s-4);margin:0 0 var(--s-3)}.legend-item{display:inline-flex;align-items:center;gap:var(--s-2);color:var(--fg3)}.legend-swatch{width:10px;height:10px;border-radius:2px;display:inline-block}.person-bars{display:flex;flex-direction:column;gap:var(--s-2)}.person-bar-row{display:grid;grid-template-columns:140px 1fr 40px;align-items:center;gap:var(--s-3)}.person-bar-label{color:var(--fg2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.person-bar-track{height:10px;background:var(--surface-2);border-radius:var(--r-pill);overflow:hidden}.person-bar-fill{height:100%;display:flex;border-radius:var(--r-pill);overflow:hidden}.person-bar-segment{height:100%}.person-bar-total{color:var(--fg3);text-align:right}.login-screen{min-height:100vh;width:100%;background-image:url(/login-background.png);background-size:cover;background-position:center;background-repeat:no-repeat;display:flex;align-items:flex-end;justify-content:flex-start;padding:4vw 4vw max(22vh,220px)}.login-card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-3);padding:var(--s-7);max-width:400px;width:100%;box-shadow:var(--shadow-3)}@media(max-width:720px){.login-screen{align-items:center;justify-content:center;padding:var(--s-5)}}.cal-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--s-4)}.cal-nav{display:flex;align-items:center;gap:var(--s-3)}.cal-month-title{margin:0;font-size:20px;font-weight:700;min-width:170px;text-align:center}.cal-type-filters{display:flex;gap:var(--s-4);flex-wrap:wrap}.cal-type-toggle{border:0;background:transparent;cursor:pointer;display:flex;align-items:center;gap:7px;font-family:var(--font-body);font-size:var(--fs-small);font-weight:600;color:var(--ink)}.cal-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.cal-head{display:grid;grid-template-columns:repeat(7,1fr);margin-top:var(--s-5);font-size:12px;font-weight:700;color:var(--fg3);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);padding-bottom:var(--s-2);border-bottom:1px solid var(--rule)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr)}.cal-cell{min-height:92px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:var(--s-2);display:flex;flex-direction:column;gap:3px}.cal-cell:nth-child(7n){border-right:none}.cal-cell-out,.cal-cell-weekend{background:var(--surface-2)}.cal-cell-today{background:var(--brand-cyan-10)}.cal-date{font-size:12px;font-weight:700;color:var(--fg3);margin-bottom:2px}.cal-chip{font-size:11px;font-weight:600;border-radius:var(--r-1);padding:2px 6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-more{font-size:11px;font-weight:700;color:var(--fg3);padding-left:2px}.cal-legend{display:flex;gap:var(--s-5);margin-top:var(--s-4);font-size:12px;color:var(--fg3)}.cal-legend span{display:flex;align-items:center;gap:6px}.cal-legend-swatch{width:14px;height:14px;border-radius:4px;display:inline-block}.cal-legend-confirmed{background:var(--brand-cyan);opacity:.5}.cal-legend-pending{border:1px dashed var(--rule-strong)}.rise-card{max-width:480px}.rise-icon{width:56px;height:56px;border-radius:var(--r-3);background:var(--brand-cyan-10);color:var(--brand-cyan);display:grid;place-items:center;margin:0 auto var(--s-4);font-family:var(--font-display);font-weight:700;font-size:22px;font-style:italic}.greeting-banner{padding:var(--s-5) var(--s-5) 0;max-width:var(--content-max);margin:0 auto;width:100%;box-sizing:border-box}.greeting-banner .di-h3{margin:2px 0 0}.help-page{max-width:820px}.help-jumpnav{display:flex;gap:var(--s-3);flex-wrap:wrap}.help-jumplink{font-size:var(--fs-small);font-weight:600;color:var(--brand-indigo);background:var(--surface);border:1px solid var(--rule-strong);border-radius:var(--r-pill);padding:6px 14px;text-decoration:none}.help-jumplink:hover{border-color:var(--brand-cyan);color:var(--brand-cyan)}.help-subhead{font-size:15px;font-weight:700;margin:var(--s-4) 0 var(--s-1)}.help-steps{margin:0;padding-left:1.25em;display:flex;flex-direction:column;gap:6px}.help-steps li{color:var(--fg2);font-size:var(--fs-body)}.help-code{font-family:var(--font-mono);font-size:.9em;background:var(--bg2);border-radius:4px;padding:1px 6px}.centered-screen{flex:1;display:grid;place-items:center;padding:var(--s-6)}.centered-card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-3);padding:var(--s-7);max-width:440px;text-align:center;box-shadow:var(--shadow-2)}
