@import"https://fonts.googleapis.com/css2?family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700&family=Manrope:wght@500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap";:root{--navy-50: #EEF2FA;--navy-100: #D6DEEF;--navy-200: #A6B5D6;--navy-300: #6E83B8;--navy-400: #3D589A;--navy-500: #1E3F86;--navy-600: #133273;--navy-700: #0A2A66;--navy-800: #061E4D;--navy-900: #03132E;--teal-50: #E6FBF4;--teal-100: #B7F3DD;--teal-200: #7FE7C2;--teal-300: #3FD9A5;--teal-400: #1FC891;--teal-500: #10B981;--teal-600: #0E9F70;--teal-700: #0B7F5B;--teal-800: #075E43;--violet-50: #EFEEFE;--violet-100: #DAD7FC;--violet-200: #B7B1F8;--violet-300: #948CF4;--violet-400: #7C72F0;--violet-500: #6366F1;--violet-600: #5048D6;--violet-700: #3F38B0;--violet-800: #2E2A82;--sky-50: #EBF3FE;--sky-100: #C8DFFC;--sky-200: #93BFF9;--sky-300: #5DA0F6;--sky-400: #3B82F6;--sky-500: #2569D8;--sky-600: #1A52AE;--neutral-0: #FFFFFF;--neutral-25: #FAFBFD;--neutral-50: #F4F6FB;--neutral-100: #ECEFF6;--neutral-200: #DDE2EC;--neutral-300: #C4CAD8;--neutral-400: #9099AB;--neutral-500: #6B7385;--neutral-600: #4B5466;--neutral-700: #2F3647;--neutral-800: #1B2030;--neutral-900: #0E1220;--success-bg: #E6FBF4;--success-fg: #0B7F5B;--warning-bg: #FFF4E0;--warning-fg: #9A6300;--danger-bg: #FDECEC;--danger-fg: #B42318;--info-bg: #EBF3FE;--info-fg: --sky-600;--brand-primary: var(--navy-700);--brand-primary-hover: var(--navy-800);--brand-primary-fg: var(--neutral-0);--brand-accent: var(--teal-500);--brand-accent-hover: var(--teal-600);--brand-accent-fg: var(--neutral-0);--brand-secondary: var(--violet-500);--brand-secondary-hover:var(--violet-600);--link: var(--sky-400);--link-hover: var(--sky-500);--bg-page: var(--neutral-25);--bg-card: var(--neutral-0);--bg-muted: var(--neutral-50);--bg-inverse: var(--navy-700);--fg-1: var(--navy-900);--fg-2: var(--neutral-700);--fg-3: var(--neutral-500);--fg-4: var(--neutral-400);--fg-on-brand: var(--neutral-0);--border-1: var(--neutral-200);--border-2: var(--neutral-100);--border-strong: var(--neutral-300);--border-focus: var(--sky-400);--gradient-violet: linear-gradient(135deg, #7C72F0 0%, #5048D6 100%);--gradient-teal: linear-gradient(135deg, #1FC891 0%, #0E9F70 100%);--gradient-hero-bg: radial-gradient(1200px 600px at 80% -10%, #EFEEFE 0%, transparent 60%), radial-gradient(900px 500px at 0% 110%, #E6FBF4 0%, transparent 55%), var(--neutral-25);--font-display: "Manrope", "DM Sans", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;--font-body: "DM Sans", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--fs-12: .75rem;--fs-14: .875rem;--fs-16: 1rem;--fs-18: 1.125rem;--fs-20: 1.25rem;--fs-24: 1.5rem;--fs-30: 1.875rem;--fs-36: 2.25rem;--fs-48: 3rem;--fs-60: 3.75rem;--fs-72: 4.5rem;--lh-tight: 1.1;--lh-snug: 1.25;--lh-normal: 1.5;--lh-relaxed: 1.65;--tracking-tight: -.02em;--tracking-snug: -.01em;--tracking-normal: 0;--tracking-wide: .04em;--tracking-eyebrow: .12em;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--space-20: 80px;--space-24: 96px;--space-32: 128px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 20px;--radius-2xl: 28px;--radius-pill: 999px;--shadow-xs: 0 1px 2px rgba(20, 36, 90, .06);--shadow-sm: 0 2px 6px rgba(20, 36, 90, .06), 0 1px 2px rgba(20, 36, 90, .04);--shadow-md: 0 8px 24px rgba(20, 36, 90, .08), 0 2px 6px rgba(20, 36, 90, .05);--shadow-lg: 0 18px 48px rgba(20, 36, 90, .12), 0 4px 12px rgba(20, 36, 90, .06);--shadow-xl: 0 32px 80px rgba(20, 36, 90, .18);--shadow-focus: 0 0 0 4px rgba(59, 130, 246, .25);--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--dur-fast: .14s;--dur-base: .22s;--dur-slow: .36s;--container-narrow: 720px;--container-base: 1120px;--container-wide: 1280px;--container-bleed: 1440px}.os-eyebrow{font-family:var(--font-body);font-size:var(--fs-12);font-weight:600;letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--brand-accent)}.os-h1{font-family:var(--font-display);font-size:clamp(var(--fs-36),4vw + 1rem,var(--fs-72));font-weight:800;line-height:var(--lh-tight);letter-spacing:var(--tracking-tight);color:var(--fg-1)}.os-h2{font-family:var(--font-display);font-size:clamp(var(--fs-30),2.4vw + 1rem,var(--fs-48));font-weight:700;line-height:var(--lh-tight);letter-spacing:var(--tracking-tight);color:var(--fg-1)}.os-h3{font-family:var(--font-display);font-size:var(--fs-24);font-weight:700;line-height:var(--lh-snug);letter-spacing:var(--tracking-snug);color:var(--fg-1)}.os-h4{font-family:var(--font-body);font-size:var(--fs-20);font-weight:600;line-height:var(--lh-snug);color:var(--fg-1)}.os-h5{font-family:var(--font-body);font-size:var(--fs-18);font-weight:600;line-height:var(--lh-snug);color:var(--fg-1)}.os-lead{font-family:var(--font-body);font-size:var(--fs-20);font-weight:400;line-height:var(--lh-relaxed);color:var(--fg-2)}.os-body{font-family:var(--font-body);font-size:var(--fs-16);font-weight:400;line-height:var(--lh-relaxed);color:var(--fg-2)}.os-body-sm{font-family:var(--font-body);font-size:var(--fs-14);font-weight:400;line-height:var(--lh-normal);color:var(--fg-2)}.os-caption{font-family:var(--font-body);font-size:var(--fs-12);font-weight:500;line-height:var(--lh-normal);color:var(--fg-3)}.os-mono{font-family:var(--font-mono);font-size:var(--fs-14);font-weight:400;color:var(--fg-2)}.os-typography{font-family:var(--font-body);color:var(--fg-2);font-size:var(--fs-16);line-height:var(--lh-relaxed)}.os-typography h1{all:unset}:root{--accent: var(--teal-500);--accent-hover: var(--teal-600);--accent-fg: #fff;--accent-soft: var(--teal-50);--accent-soft-fg: var(--teal-700);--row-pad: 14px;--card-pad: 22px}body.density-compact{--row-pad: 9px;--card-pad: 16px}*{box-sizing:border-box}html,body{margin:0;height:100%}body{font-family:var(--font-body);background:var(--bg-page);color:var(--fg-2);-webkit-font-smoothing:antialiased}#root{height:100%}button{font-family:inherit}a{color:inherit}.vt-ico{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.vt-ico svg{width:100%;height:100%;display:block}.app{display:grid;min-height:100vh}.app.emp,.app.adm{grid-template-columns:248px 1fr}.app.collapsed{grid-template-columns:76px 1fr}.main-body{display:grid;grid-template-columns:1fr 300px;align-items:start}.rightrail{position:sticky;top:88px;align-self:start;margin:28px 32px 28px 0;max-height:calc(100vh - 116px);overflow-y:auto;background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.rightrail .rr-head{padding:18px 20px 12px;border-bottom:1px solid var(--border-2)}.rightrail .rr-head h2{font-family:var(--font-display);font-size:16px;font-weight:800;color:var(--fg-1);margin:0;letter-spacing:-.01em}.rightrail .rr-head .sub{font-size:12px;color:var(--fg-3);margin-top:3px}@media(max-width:1139px){.main-body{grid-template-columns:1fr}.rightrail{display:none}}.sidebar.collapsed{padding:22px 10px}.sidebar.collapsed .logo{justify-content:center;padding:4px 0 10px}.sidebar.collapsed .nav-item{justify-content:center;padding:10px}.sidebar.collapsed .side-user{justify-content:center;padding:10px 0}.sidebar .nav-item{position:relative}.side-mark{width:38px;height:38px;border-radius:10px;background:var(--brand-primary);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:800;font-size:18px}.btn{font-family:inherit;font-weight:600;font-size:14px;padding:10px 16px;border-radius:var(--radius-md);border:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:background var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),transform var(--dur-fast);white-space:nowrap}.btn:active{transform:scale(.98)}.btn-primary{background:var(--brand-primary);color:#fff}.btn-primary:hover{background:var(--brand-primary-hover)}.btn-accent{background:var(--accent);color:var(--accent-fg)}.btn-accent:hover{background:var(--accent-hover)}.btn-ghost{background:transparent;color:var(--fg-2)}.btn-ghost:hover{background:var(--neutral-100)}.btn-secondary{background:var(--bg-card);color:var(--fg-1);border:1px solid var(--border-1)}.btn-secondary:hover{background:var(--neutral-50)}.btn-success{background:var(--teal-500);color:#fff}.btn-success:hover{background:var(--teal-600)}.btn-danger{background:var(--bg-card);color:var(--danger-fg);border:1px solid #F3C9C5}.btn-danger:hover{background:var(--danger-bg)}.btn-sm{padding:7px 12px;font-size:13px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-icon{width:38px;height:38px;padding:0;border-radius:var(--radius-md);background:transparent;color:var(--fg-3);cursor:pointer;border:0;display:inline-flex;align-items:center;justify-content:center;transition:background var(--dur-fast)}.btn-icon:hover{background:var(--neutral-100);color:var(--fg-1)}.sidebar{background:var(--bg-card);border-right:1px solid var(--border-2);padding:22px 16px;display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100vh}.sidebar .logo{padding:4px 8px 8px;display:flex;align-items:center;gap:10px}.sidebar .logo img{height:26px}.sidebar .logo .tag{font-size:11px;font-weight:700;color:var(--fg-3);letter-spacing:.04em;border-left:1px solid var(--border-1);padding-left:10px;line-height:1.15}.nav-section{font-size:11px;font-weight:600;color:var(--fg-3);text-transform:uppercase;letter-spacing:.08em;padding:18px 12px 6px}.nav-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius-md);font-size:14px;font-weight:500;color:var(--fg-2);cursor:pointer;border:0;background:transparent;width:100%;text-align:left;transition:background var(--dur-fast)}.nav-item:hover{background:var(--neutral-50)}.nav-item.active{background:var(--navy-50);color:var(--brand-primary);font-weight:600}.nav-item .badge-count{margin-left:auto;background:var(--accent);color:var(--accent-fg);font-size:11px;font-weight:700;min-width:20px;height:20px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;padding:0 6px}.sidebar .spacer{flex:1}.side-user{display:flex;align-items:center;gap:10px;padding:10px 8px;border-top:1px solid var(--border-2);margin-top:6px}.side-user .meta{min-width:0}.side-user .meta .n{font-size:13px;font-weight:600;color:var(--fg-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-user .meta .e{font-size:11px;color:var(--fg-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rail{background:var(--brand-primary);display:flex;flex-direction:column;align-items:center;padding:18px 0;gap:6px;position:sticky;top:0;height:100vh}.rail .mark{width:38px;height:38px;border-radius:10px;background:#fff;display:flex;align-items:center;justify-content:center;margin-bottom:14px;color:var(--brand-primary);font-family:var(--font-display);font-weight:800;font-size:18px}.rail-item{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:12px;cursor:pointer;color:#ffffffa6;transition:all var(--dur-fast);border:0;background:transparent;position:relative}.rail-item:hover{background:#ffffff1a;color:#fff}.rail-item.active{background:#ffffff29;color:#fff}.rail-item .dot{position:absolute;top:7px;right:7px;width:8px;height:8px;border-radius:50%;background:var(--teal-400);border:2px solid var(--brand-primary)}.rail .spacer{flex:1}.main{display:flex;flex-direction:column;min-width:0}.topbar{display:flex;align-items:center;gap:14px;padding:14px 32px;border-bottom:1px solid var(--border-2);background:#ffffffb8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:20;min-height:68px}.topbar .tb-title{font-family:var(--font-display);font-size:18px;font-weight:700;color:var(--fg-1);letter-spacing:-.01em}.topbar .crumbs{font-size:13px;color:var(--fg-3)}.topbar .crumbs strong{color:var(--fg-1);font-weight:600}.topbar .spacer{flex:1}.search{display:flex;align-items:center;gap:10px;padding:9px 14px;background:var(--neutral-50);border-radius:var(--radius-md);color:var(--fg-3);font-size:14px;min-width:260px;border:1px solid transparent}.seg{display:inline-flex;background:var(--neutral-100);border-radius:var(--radius-pill);padding:3px;gap:2px}.seg button{border:0;background:transparent;font-family:inherit;font-size:13px;font-weight:600;color:var(--fg-3);padding:6px 14px;border-radius:var(--radius-pill);cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all var(--dur-fast)}.seg button.on{background:var(--bg-card);color:var(--brand-primary);box-shadow:var(--shadow-xs)}.avatar{border-radius:50%;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}.avatar.x-sm{width:24px;height:24px;font-size:10px}.avatar.sm{width:30px;height:30px;font-size:11px}.avatar.md{width:38px;height:38px;font-size:13px}.avatar.lg{width:48px;height:48px;font-size:16px}.avatar-stack{display:inline-flex}.avatar-stack .avatar{border:2px solid var(--bg-card);margin-left:-8px}.avatar-stack .avatar:first-child{margin-left:0}.content{padding:28px 32px 56px;max-width:1240px;width:100%}.page-head{margin-bottom:22px;display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}.page-head h1{font-family:var(--font-display);font-size:28px;font-weight:800;color:var(--fg-1);margin:0 0 4px;letter-spacing:-.02em}.page-head p{font-size:15px;color:var(--fg-3);margin:0}.eyebrow{font-family:var(--font-body);font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.card{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.card.pad{padding:var(--card-pad)}.card-head{padding:16px 20px;border-bottom:1px solid var(--border-2);display:flex;align-items:center;justify-content:space-between;gap:12px}.card-head h2{font-family:var(--font-display);font-size:17px;font-weight:700;color:var(--fg-1);margin:0}.card-head .sub{font-size:12px;color:var(--fg-3);margin-top:2px}.card-body{padding:20px}.grid{display:grid;gap:16px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}.two-col{display:grid;grid-template-columns:1.7fr 1fr;gap:18px}@media(max-width:1100px){.stats{grid-template-columns:repeat(2,1fr)}.two-col{grid-template-columns:1fr}}.stat{background:var(--bg-card);border-radius:var(--radius-lg);padding:18px 18px 16px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:8px;position:relative;overflow:hidden}.stat .top{display:flex;align-items:center;justify-content:space-between}.stat .lbl{font-size:12px;color:var(--fg-3);font-weight:600}.stat .ico{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent-soft-fg)}.stat .num{font-family:var(--font-display);font-size:32px;font-weight:800;color:var(--fg-1);line-height:1}.stat .num span{font-size:16px;color:var(--fg-3);font-weight:700}.stat .foot{font-size:12px;color:var(--fg-3)}.stat.grad-violet{background:var(--gradient-violet);color:#fff}.stat.grad-teal{background:var(--gradient-teal);color:#fff}.stat.grad-violet .lbl,.stat.grad-teal .lbl,.stat.grad-violet .num,.stat.grad-teal .num,.stat.grad-violet .foot,.stat.grad-teal .foot{color:#fff}.stat.grad-violet .num span,.stat.grad-teal .num span{color:#fffc}.stat.grad-violet .ico,.stat.grad-teal .ico{background:#ffffff2e;color:#fff}.badge{font-size:11.5px;font-weight:700;padding:4px 10px;border-radius:var(--radius-pill);display:inline-flex;align-items:center;gap:5px;white-space:nowrap;line-height:1.3}.badge .d{width:7px;height:7px;border-radius:50%}.b-approved{background:var(--success-bg);color:var(--success-fg)}.b-pending{background:var(--warning-bg);color:var(--warning-fg)}.b-rejected{background:var(--danger-bg);color:var(--danger-fg)}.b-cancelled{background:var(--neutral-100);color:var(--fg-3)}.type-pill{font-size:11.5px;font-weight:600;padding:3px 10px;border-radius:var(--radius-pill)}.row-list{display:flex;flex-direction:column}.lrow{display:flex;align-items:center;gap:14px;padding:var(--row-pad) 20px;border-bottom:1px solid var(--border-2)}.lrow:last-child{border-bottom:0}.lrow .grow{flex:1;min-width:0}.lrow .ttl{font-size:14px;font-weight:600;color:var(--fg-1)}.lrow .sub{font-size:12.5px;color:var(--fg-3);margin-top:2px}.lrow .icon-tile{width:42px;height:42px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0}.tbl{width:100%;border-collapse:collapse;font-size:13.5px}.tbl th{text-align:left;padding:11px 18px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--fg-3);background:var(--neutral-50);border-bottom:1px solid var(--border-2);white-space:nowrap}.tbl td{padding:13px 18px;border-bottom:1px solid var(--border-2);color:var(--fg-2);vertical-align:middle}.tbl tr:last-child td{border-bottom:0}.tbl td strong{color:var(--fg-1);font-weight:600}.tbl tbody tr{transition:background var(--dur-fast)}.tbl tbody tr:hover{background:var(--neutral-25)}.cell-emp{display:flex;align-items:center;gap:10px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:12.5px;font-weight:600;color:var(--fg-2)}.field input,.field select,.field textarea{font-family:inherit;font-size:14px;padding:10px 12px;border:1px solid var(--border-1);border-radius:var(--radius-md);background:var(--bg-card);color:var(--fg-1);width:100%;transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--border-focus);box-shadow:var(--shadow-focus)}.field .hint{font-size:11.5px;color:var(--fg-3)}.field textarea{resize:vertical;min-height:72px;line-height:1.5}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{padding:9px 14px;border-radius:var(--radius-md);border:1px solid var(--border-1);background:var(--bg-card);font-size:13px;font-weight:600;color:var(--fg-2);cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:all var(--dur-fast)}.chip:hover{border-color:var(--border-strong)}.chip.on{border-color:transparent}.chip .swatch{width:10px;height:10px;border-radius:3px}.toggle{display:inline-flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle .track{width:40px;height:23px;border-radius:999px;background:var(--neutral-300);position:relative;transition:background var(--dur-fast);flex-shrink:0}.toggle .track .knob{position:absolute;top:2px;left:2px;width:19px;height:19px;border-radius:50%;background:#fff;box-shadow:var(--shadow-xs);transition:transform var(--dur-fast) var(--ease-out)}.toggle.on .track{background:var(--accent)}.toggle.on .track .knob{transform:translate(17px)}.callout{display:flex;gap:12px;padding:14px 16px;border-radius:var(--radius-md);font-size:13px;line-height:1.5;align-items:flex-start}.callout .ci{flex-shrink:0;margin-top:1px}.callout strong{font-weight:700}.callout.info{background:var(--info-bg);color:var(--sky-600)}.callout.warn{background:var(--warning-bg);color:var(--warning-fg)}.callout.ok{background:var(--success-bg);color:var(--success-fg)}.callout.neutral{background:var(--neutral-50);color:var(--fg-2)}.bar-track{height:10px;border-radius:999px;background:var(--neutral-100);overflow:hidden}.bar-track>div{height:100%;border-radius:999px;transition:width var(--dur-slow) var(--ease-out)}.ring-stack{position:relative;display:inline-flex;align-items:center;justify-content:center}.ring-stack .ring-label{position:absolute;text-align:center}.month-heat{display:grid;grid-template-columns:repeat(12,1fr);gap:6px}.month-heat .mh{text-align:center}.month-heat .mh .bar{height:56px;border-radius:6px;background:var(--neutral-100);display:flex;align-items:flex-end;overflow:hidden}.month-heat .mh .bar>div{width:100%;border-radius:6px;background:var(--accent);transition:height var(--dur-slow) var(--ease-out)}.month-heat .mh .lbl{font-size:10px;color:var(--fg-3);margin-top:5px;font-weight:600}.cal{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.cal-head{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border-2)}.cal-head h2{font-family:var(--font-display);font-size:20px;font-weight:700;color:var(--fg-1);margin:0}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr)}.cal-dow{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--fg-3);text-align:left;padding:10px 12px;border-bottom:1px solid var(--border-2)}.cal-cell{min-height:116px;border-right:1px solid var(--border-2);border-bottom:1px solid var(--border-2);padding:8px;display:flex;flex-direction:column;gap:5px;position:relative}.cal-cell:nth-child(7n){border-right:0}.cal-cell.out-month{background:var(--neutral-25)}.cal-cell.weekend{background:#fcfcfe}.cal-cell.is-holiday{background:var(--violet-50)}.cal-cell.is-today{box-shadow:inset 0 0 0 2px var(--accent)}.cal-cell .dnum{font-size:13px;font-weight:700;color:var(--fg-2);display:flex;align-items:center;justify-content:space-between}.cal-cell.out-month .dnum{color:var(--fg-4)}.cal-cell.is-today .dnum .today-dot{background:var(--accent);color:#fff;width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:12px}.cal-cell .hol-tag{font-size:10.5px;font-weight:700;color:var(--violet-700);display:flex;align-items:center;gap:4px}.cal-pill{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;padding:3px 7px;border-radius:6px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-pill .av{width:16px;height:16px;border-radius:50%;background:#ffffff4d;display:inline-flex;align-items:center;justify-content:center;font-size:8px;font-weight:800;flex-shrink:0}.cal-more{font-size:11px;font-weight:700;color:var(--fg-3);padding:1px 7px;cursor:pointer}.cal-cell.busy:after{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--warning-fg);opacity:.85}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a1e4d6b;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:80;display:flex;align-items:center;justify-content:center;padding:24px;animation:fade .18s var(--ease-out)}.modal{background:var(--bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:100%;max-width:520px;max-height:90vh;overflow:auto;animation:pop .22s var(--ease-out)}.modal-head{padding:20px 24px;border-bottom:1px solid var(--border-2);display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.modal-head h2{font-family:var(--font-display);font-size:20px;font-weight:700;color:var(--fg-1);margin:0}.modal-body{padding:24px}.modal-foot{padding:16px 24px;border-top:1px solid var(--border-2);display:flex;justify-content:flex-end;gap:10px}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(10px) scale(.98)}}.toast-wrap{position:fixed;bottom:26px;left:50%;transform:translate(-50%);z-index:120;display:flex;flex-direction:column;gap:10px;align-items:center}.toast{background:var(--navy-800);color:#fff;padding:12px 18px;border-radius:var(--radius-pill);font-size:13.5px;font-weight:600;box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:10px;animation:toastIn .26s var(--ease-out)}.toast .ti{color:var(--teal-300);display:inline-flex}@keyframes toastIn{0%{opacity:0;transform:translateY(14px)}}.empty{text-align:center;padding:48px 24px;color:var(--fg-3)}.empty .ei{width:52px;height:52px;border-radius:14px;background:var(--neutral-50);display:inline-flex;align-items:center;justify-content:center;color:var(--fg-4);margin-bottom:14px}.empty h3{font-size:16px;color:var(--fg-1);margin:0 0 4px;font-family:var(--font-display)}.empty p{font-size:13.5px;margin:0}.fade-up{animation:fadeUp .4s var(--ease-out) both}@keyframes fadeUp{0%{transform:translateY(9px)}}@media(prefers-reduced-motion:reduce){.fade-up{animation:none}}.minitabs{display:inline-flex;gap:2px;background:var(--neutral-100);padding:3px;border-radius:var(--radius-md)}.minitabs button{border:0;background:transparent;font-family:inherit;font-size:13px;font-weight:600;color:var(--fg-3);padding:6px 12px;border-radius:7px;cursor:pointer}.minitabs button.on{background:var(--bg-card);color:var(--brand-primary);box-shadow:var(--shadow-xs)}.divider{height:1px;background:var(--border-2);margin:4px 0}.kv{display:flex;justify-content:space-between;align-items:center;font-size:13.5px;padding:7px 0}.kv span{color:var(--fg-3)}.kv strong{color:var(--fg-1);font-weight:600}
