:root{color-scheme:light dark;--bg:#f7f7fa;--bg-elevated:#ffffff;--surface:#ffffff;--surface-sunken:#f2f2f6;--border:#e4e4ec;--border-strong:#d2d2de;--text:#14141b;--text-dim:#5d5d70;--text-faint:#8b8b9e;--accent:#4b3fa8;--accent-soft:#ede9fb;--green:#1a7f4b;--green-soft:#e3f5ea;--red:#b3261e;--red-soft:#fdeceb;--amber:#8a5300;--amber-soft:#fdf0dc;--shadow:0 1px 2px rgb(20 20 27/0.04),0 8px 24px -12px rgb(20 20 27/0.12);--radius:16px;--radius-sm:10px}@media (prefers-color-scheme:dark){:root{--bg:#0d0d13;--bg-elevated:#16161f;--surface:#16161f;--surface-sunken:#1e1e29;--border:#262633;--border-strong:#343444;--text:#f4f4f8;--text-dim:#a3a3b8;--text-faint:#74748a;--accent:#a99cff;--accent-soft:#221d3d;--green:#4ade80;--green-soft:#10291c;--red:#ff6b6b;--red-soft:#2c1414;--amber:#ffb154;--amber-soft:#2b1e0c;--shadow:0 1px 2px rgb(0 0 0/0.3),0 8px 24px -12px rgb(0 0 0/0.5)}}*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}main{max-width:44rem;margin:0 auto;padding:2rem 1.25rem 5rem}main.narrow{max-width:26rem;padding-top:3.5rem}.stack{flex-direction:column}.row,.stack{display:flex;gap:.75rem}.row{align-items:center;flex-wrap:wrap}.row.spread{justify-content:space-between}h1{font-size:clamp(1.6rem,1.2rem + 1.6vw,2rem);line-height:1.2;letter-spacing:-.02em;margin:0 0 .35rem}h1,h2{font-weight:700}h2{font-size:.8rem;text-transform:uppercase;letter-spacing:.07em;color:var(--text-faint);margin:2rem 0 .75rem}p{margin:0 0 .75rem}.lede{font-size:1.02rem;margin-bottom:1.75rem}.lede,.muted{color:var(--text-dim)}.small{font-size:.86rem}.mono{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.brand{display:inline-flex;align-items:center;gap:.6rem;font-weight:700;letter-spacing:-.01em;text-decoration:none;color:var(--text)}.brand-mark{width:1.9rem;height:1.9rem;flex:none}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.15rem 1.25rem;box-shadow:var(--shadow)}.card+.card{margin-top:.75rem}.card-title{font-weight:650;font-size:1.02rem;margin:0}.empty{text-align:center;padding:3rem 1.5rem;border:1px dashed var(--border-strong);border-radius:var(--radius);background:var(--surface-sunken)}.empty svg{color:var(--text-faint);margin-bottom:.75rem}.empty strong{display:block;margin-bottom:.3rem}.button,button{font:inherit;font-weight:600;border:1px solid transparent;border-radius:var(--radius-sm);padding:.62rem 1.1rem;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;transition:filter .15s ease,background .15s ease,border-color .15s ease;white-space:nowrap}.button:disabled,button:disabled{opacity:.45;cursor:not-allowed}.button:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.primary:hover:not(:disabled){filter:brightness(1.08)}@media (prefers-color-scheme:dark){.primary{color:#16161f}}.secondary{background:var(--surface);border-color:var(--border-strong);color:var(--text)}.secondary:hover:not(:disabled){background:var(--surface-sunken)}.danger{background:transparent;border-color:var(--red);color:var(--red)}.danger:hover:not(:disabled){background:var(--red-soft)}.ghost{background:none;border:none;color:var(--accent);padding:.35rem 0;font-weight:600}.ghost:hover:not(:disabled){text-decoration:underline}.full{width:100%}label.field{display:block;font-weight:600;font-size:.88rem;margin-bottom:.4rem}input[type=email],input[type=password],input[type=text]{font:inherit;width:100%;padding:.7rem .85rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text);transition:border-color .15s ease}input::placeholder{color:var(--text-faint)}input:focus{border-color:var(--accent)}.field-group+.field-group{margin-top:.85rem}.divider{display:flex;align-items:center;gap:.75rem;margin:1.25rem 0;color:var(--text-faint);font-size:.8rem;text-transform:uppercase;letter-spacing:.06em}.divider:after,.divider:before{content:"";flex:1 1;height:1px;background:var(--border)}.topbar{border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:-webkit-sticky;position:sticky;top:0;z-index:10}.topbar-inner{max-width:44rem;margin:0 auto;padding:.8rem 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}nav.tabs{display:flex;gap:.25rem}nav.tabs a{color:var(--text-dim);text-decoration:none;padding:.4rem .8rem;border-radius:999px;font-weight:600;font-size:.92rem;transition:background .15s ease,color .15s ease}nav.tabs a:hover{color:var(--text);background:var(--surface-sunken)}nav.tabs a[aria-current=page]{background:var(--accent-soft);color:var(--accent)}.pill{font-size:.78rem;font-weight:700;padding:.22rem .6rem;border-radius:999px;white-space:nowrap}.pill.on_break,.pill.pending{color:var(--amber);background:var(--amber-soft)}.pill.approved,.pill.ended{color:var(--green);background:var(--green-soft)}.pill.cancelled,.pill.denied{color:var(--red);background:var(--red-soft)}.pill.expired{color:var(--text-faint);background:var(--surface-sunken)}.pill.active,.pill.waiting_for_approval{color:var(--accent);background:var(--accent-soft)}.banner{display:flex;gap:.65rem;padding:.85rem 1rem;border-radius:var(--radius-sm);font-size:.92rem;margin-bottom:1rem;align-items:flex-start}.banner.info{background:var(--accent-soft);color:var(--accent)}.banner.error{background:var(--red-soft);color:var(--red)}.banner.success{background:var(--green-soft);color:var(--green)}.meta{display:flex;flex-wrap:wrap;gap:.35rem 1rem;color:var(--text-dim);font-size:.86rem;margin-top:.5rem}@media (prefers-reduced-motion:reduce){*,:after,:before{transition-duration:.01ms!important;animation-duration:.01ms!important}}.segmented{display:flex;gap:.2rem;padding:.2rem;background:var(--surface-sunken);border-radius:var(--radius-sm)}.segmented button{flex:1 1;padding:.45rem .75rem;border-radius:calc(var(--radius-sm) - 3px);background:none;border:none;color:var(--text-dim);font-size:.92rem}.segmented button[aria-selected=true]{background:var(--surface);color:var(--text);box-shadow:0 1px 2px rgb(20 20 27/.08)}