@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--primary:#0369a1;--primary-hover:#075985;--primary-active:#0c4a6e;--primary-ink:#0c4a6e;--primary-light:#e0f2fe;--primary-soft:#f0f9ff;--danger:#dc2626;--danger-hover:#b91c1c;--danger-light:#fef2f2;--warning:#d97706;--warning-light:#fffbeb;--success:#059669;--success-light:#ecfdf5;--info:#0369a1;--info-light:#e0f2fe;--purple:#6d28d9;--purple-light:#ede9fe;--modal-backdrop:#0f172a73;--brand-gradient:linear-gradient(135deg, #0369a1 0%, #38bdf8 100%);--gray-50:#f8fafc;--gray-100:#f1f5f9;--gray-200:#e2e8f0;--gray-300:#cbd5e1;--gray-400:#94a3b8;--gray-500:#64748b;--gray-600:#475569;--gray-700:#334155;--gray-800:#1e293b;--gray-900:#0f172a;--bg-app:#f8fafc;--bg-surface:#fff;--bg-elev:#fff;--bg-subtle:#f1f5f9;--bg-contrast:#0f172a;--ink-contrast:#fff;--ink-contrast-muted:#ffffffa6;--sidebar-bg:#fff;--sidebar-text:#475569;--sidebar-text-muted:#94a3b8;--sidebar-hover:#f1f5f9;--sidebar-active-bg:#e0f2fe;--sidebar-active-text:#0369a1;--sidebar-border:#e2e8f0;--radius-sm:8px;--radius-md:10px;--radius-lg:14px;--radius-xl:18px;--radius-full:9999px;--shadow-sm:0 1px 2px #0f172a0a;--shadow-md:0 2px 4px #0f172a0a, 0 4px 12px #0f172a0a;--shadow-lg:0 8px 24px #0f172a14, 0 2px 6px #0f172a0a;--shadow-xl:0 20px 45px #0f172a24, 0 4px 10px #0f172a0f;--shadow-focus:0 0 0 3px #0369a12e;--shadow-focus-danger:0 0 0 3px #dc262633;--font:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", "Menlo", monospace;--ease:cubic-bezier(.4, 0, .2, 1);--dur-fast:.12s;--dur-base:.18s;--sidebar-w:244px;--topbar-h:56px;--page-pad:28px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--gray-50:#1e293b;--gray-100:#273548;--gray-200:#334155;--gray-300:#475569;--gray-400:#64748b;--gray-500:#94a3b8;--gray-600:#cbd5e1;--gray-700:#e2e8f0;--gray-800:#f1f5f9;--gray-900:#f8fafc;--bg-app:#0b1220;--bg-surface:#0f172a;--bg-elev:#152033;--bg-subtle:#1e293b;--bg-contrast:#020617;--ink-contrast:#fff;--ink-contrast-muted:#ffffffa6;--sidebar-bg:#0d1526;--sidebar-border:#1e293b;--sidebar-hover:#1e293b;--sidebar-active-bg:#0c2746;--sidebar-active-text:#7dd3fc;--sidebar-text:#94a3b8;--sidebar-text-muted:#64748b;--primary:#38bdf8;--primary-hover:#7dd3fc;--primary-active:#bae6fd;--primary-ink:#bae6fd;--primary-light:#164e63;--primary-soft:#0c2746;--danger:#f87171;--danger-hover:#fca5a5;--danger-light:#3f0d0d;--warning:#fbbf24;--warning-light:#2b1d05;--success:#34d399;--success-light:#06281c;--info:#38bdf8;--info-light:#0c2746;--purple:#c4b5fd;--purple-light:#2e1065;--modal-backdrop:#000000a6;--brand-gradient:linear-gradient(135deg, #38bdf8 0%, #7dd3fc 100%);--shadow-sm:0 1px 2px #00000073;--shadow-md:0 2px 4px #0006, 0 4px 12px #00000059;--shadow-lg:0 8px 24px #0000008c, 0 2px 6px #0006;--shadow-xl:0 20px 45px #0009, 0 4px 10px #0006;--shadow-focus:0 0 0 3px #38bdf847;--shadow-focus-danger:0 0 0 3px #f8717147;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html,body{height:100%}body{font-family:var(--font);color:var(--gray-800);background:var(--bg-app);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;transition:background var(--dur-base) var(--ease), color var(--dur-base) var(--ease);font-size:14px;line-height:1.55}#root{min-height:100vh}h1{color:var(--gray-900);letter-spacing:-.02em;font-size:26px;font-weight:700;line-height:1.25}h2{color:var(--gray-900);letter-spacing:-.015em;font-size:19px;font-weight:600;line-height:1.35}h3{color:var(--gray-800);letter-spacing:-.005em;font-size:15px;font-weight:600;line-height:1.4}p{color:inherit}code,pre,.mono{font-family:var(--font-mono);font-size:.92em}input,select,textarea{font-family:var(--font);color:var(--gray-800);background:var(--bg-surface);font-size:14px}select{border-radius:var(--radius-sm);border:1px solid var(--gray-300);background:var(--bg-surface);cursor:pointer;transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);padding:10px 12px}input::placeholder,textarea::placeholder{color:var(--gray-400)}input:focus,select:focus,textarea:focus{box-shadow:var(--shadow-focus);outline:none;border-color:var(--primary)!important}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{appearance:textfield}.weekday-margin-input:focus{box-shadow:none!important;border-color:#0000!important}.kbd{min-width:18px;height:18px;font-family:var(--font);color:var(--gray-600);background:var(--bg-surface);border:1px solid var(--gray-200);border-bottom-width:2px;border-radius:4px;justify-content:center;align-items:center;padding:0 5px;font-size:10.5px;font-weight:600;line-height:1;display:inline-flex}tr.row-clickable{cursor:pointer;transition:background-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease)}tr.row-clickable:hover{background-color:var(--primary-soft);box-shadow:inset 3px 0 0 var(--primary)}.row-link{color:var(--gray-900);transition:color var(--dur-fast) var(--ease);font-weight:500;text-decoration:none}tr.row-clickable:hover .row-link{color:var(--primary);text-underline-offset:2px;text-decoration:underline}tr.row-clickable:hover .row-chevron{color:var(--primary);transform:translate(3px)}a{color:var(--primary);transition:color var(--dur-fast) var(--ease), opacity var(--dur-fast) var(--ease)}a:hover:not(.ui-btn):not(.row-link):not(.sidebar-link):not(.nolink){color:var(--primary-hover);text-underline-offset:2px;text-decoration:underline}.nolink{color:inherit;text-decoration:none}.ui-btn{-webkit-user-select:none;user-select:none;letter-spacing:-.005em;position:relative}.ui-btn:not(:disabled):active{transform:translateY(1px)}.ui-btn--primary:not(:disabled):hover{background:var(--primary-hover)!important}.ui-btn--primary:not(:disabled):active{background:var(--primary-active)!important}.ui-btn--primary:not(:disabled):focus-visible{box-shadow:var(--shadow-focus);outline:none}.ui-btn--danger:not(:disabled):hover{background:var(--danger-hover)!important}.ui-btn--danger:not(:disabled):focus-visible{box-shadow:var(--shadow-focus-danger);outline:none}.ui-btn--secondary:not(:disabled):hover{background:var(--gray-50)!important;border-color:var(--gray-400)!important;color:var(--gray-900)!important}.ui-btn--secondary:not(:disabled):focus-visible{box-shadow:var(--shadow-focus);outline:none;border-color:var(--primary)!important}.ui-btn--ghost:not(:disabled):hover{background:var(--gray-100)!important;color:var(--gray-900)!important}.ui-btn--ghost:not(:disabled):focus-visible{box-shadow:var(--shadow-focus);outline:none}.interactive{cursor:pointer;transition:background-color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), transform 80ms var(--ease), box-shadow var(--dur-fast) var(--ease)}.interactive:hover{background-color:var(--gray-50)}.interactive:active{transform:translateY(1px)}.sidebar-link{color:var(--sidebar-text);transition:background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);text-decoration:none}.sidebar-link:hover{background:var(--sidebar-hover)!important;color:var(--gray-900)!important;text-decoration:none!important}.sidebar-link--active{background:var(--sidebar-active-bg)!important;color:var(--sidebar-active-text)!important;font-weight:600!important}.sidebar-link--active:hover{background:var(--sidebar-active-bg)!important;color:var(--sidebar-active-text)!important}.sidebar-link svg{opacity:.9;flex-shrink:0}.sidebar-link--active svg{opacity:1}.sidebar-logout:hover{background:var(--gray-100)!important;border-color:var(--gray-300)!important;color:var(--gray-900)!important}.iconbtn{border:1px solid var(--gray-200);border-radius:var(--radius-sm);width:34px;height:34px;color:var(--gray-600);cursor:pointer;transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);background:0 0;justify-content:center;align-items:center;display:inline-flex;position:relative}.iconbtn:hover{background:var(--gray-100);color:var(--gray-900);border-color:var(--gray-300)}.iconbtn:focus-visible{box-shadow:var(--shadow-focus);border-color:var(--primary);outline:none}.fab{background:var(--bg-surface);border:1px solid var(--gray-200);border-radius:var(--radius-full);color:var(--gray-700);font-family:var(--font);cursor:pointer;box-shadow:var(--shadow-md);transition:transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);align-items:center;gap:8px;padding:9px 14px;font-size:12.5px;font-weight:500;display:inline-flex}.fab:hover{box-shadow:var(--shadow-lg);color:var(--gray-900);transform:translateY(-1px)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--gray-200);border-radius:var(--radius-full);background-clip:padding-box;border:2px solid #0000}::-webkit-scrollbar-thumb:hover{background:var(--gray-300);background-clip:padding-box;border:2px solid #0000}::selection{background:var(--primary-light);color:var(--primary-active)}@keyframes slideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes bellShake{0%,to{transform:rotate(0)}15%{transform:rotate(-12deg)}30%{transform:rotate(10deg)}45%{transform:rotate(-8deg)}60%{transform:rotate(6deg)}75%{transform:rotate(-3deg)}90%{transform:rotate(1deg)}}@keyframes badgePulse{0%,to{transform:scale(1);box-shadow:0 0 #ef44448c}50%{transform:scale(1.08);box-shadow:0 0 0 6px #ef444400}}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}body.cmdk-open{overflow:hidden}
