:root{--black: #04080c;--black-2: #07111a;--black-3: #0b1821;--surface: #0f1b25;--surface-2: #162533;--green: #84ef5a;--green-dim: #57cf79;--green-glow: rgba(132, 239, 90, .2);--blue: #1698ff;--blue-light: #55dfff;--blue-glow: rgba(22, 152, 255, .18);--text: #eef8ff;--text-muted: #9bb4c2;--border: rgba(167, 213, 239, .14);--border-accent: rgba(85, 223, 255, .28);--error: #ff6b7a;--error-soft: rgba(255, 107, 122, .12);--warn: #ffc857;--warn-soft: rgba(255, 200, 87, .12);--success: var(--green);--success-soft: var(--green-glow);--color-primary: var(--green);--color-text: var(--text);--color-muted: var(--text-muted);--color-border: var(--border);--color-bg: var(--surface);--color-bg-alt: var(--black-2);--color-error: var(--error);--font-display: "Fraunces", Georgia, "Times New Roman", serif;--font-body: "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--fs-12: .75rem;--fs-13: .8125rem;--fs-14: .875rem;--fs-15: .9375rem;--fs-17: 1.0625rem;--fs-20: 1.25rem;--fs-24: 1.5rem;--fs-30: 1.875rem;--fs-40: 2.5rem;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 12px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 8px 24px rgba(4, 12, 24, .55);--shadow-glow: 0 0 24px var(--green-glow);--shadow-glow-blue: 0 0 24px var(--blue-glow);--ease: cubic-bezier(.2, .8, .2, 1);--duration-fast: .12s;--duration-base: .18s;font-family:var(--font-body);font-size:15px;line-height:1.55;color:var(--text);color-scheme:dark;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}:root[data-theme=light]{--black: #f6f9fc;--black-2: #ffffff;--black-3: #f0f5fa;--surface: #ffffff;--surface-2: #eef3f8;--green: #2d8a0f;--green-dim: #226d09;--green-glow: rgba(45, 138, 15, .2);--blue: #0b6fcc;--blue-light: #0f7ad6;--blue-glow: rgba(11, 111, 204, .14);--text: #0b1821;--text-muted: #52687a;--border: rgba(11, 24, 33, .12);--border-accent: rgba(11, 111, 204, .35);--error: #c53030;--error-soft: rgba(197, 48, 48, .08);--warn: #b8722a;--warn-soft: rgba(184, 114, 42, .1);--shadow-sm: 0 1px 2px rgba(11, 24, 33, .08);--shadow-md: 0 8px 24px rgba(11, 24, 33, .12);--shadow-glow: 0 0 0 4px var(--green-glow);--shadow-glow-blue: 0 0 0 4px var(--blue-glow);color-scheme:light}:root[data-theme=light] body{background-color:var(--black);background-image:radial-gradient(60% 40% at 50% -10%,#0b6fcc0f,#0b6fcc00 70%),linear-gradient(180deg,#ffffff 0%,var(--black) 100%)}:root[data-theme=light] body:before{display:none}:root[data-theme=light] .brand{background:none;-webkit-background-clip:initial;background-clip:initial;-webkit-text-fill-color:currentColor;color:var(--text)}:root[data-theme=light] .app-header{background:#ffffffc7}:root[data-theme=light] .app-footer{background:#fff9}:root[data-theme=light] .btn-primary:hover,:root[data-theme=light] .btn-primary:focus-visible{background:var(--green-dim);border-color:var(--green-dim)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}body{min-height:100vh;background-color:var(--black);background-image:radial-gradient(80% 50% at 50% -10%,#1698ff24,#1698ff00 60%),radial-gradient(55% 35% at 110% 110%,#84ef5a14,#84ef5a00 70%),linear-gradient(180deg,var(--black-2) 0%,var(--black) 70%);background-attachment:fixed;color:var(--text);overflow-x:hidden;position:relative}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background-image:linear-gradient(rgba(85,223,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(85,223,255,.035) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:radial-gradient(circle at 50% 30%,black 30%,transparent 80%);mask-image:radial-gradient(circle at 50% 30%,black 30%,transparent 80%)}#root{position:relative;z-index:1;min-height:100vh}a{color:var(--blue-light);text-decoration:none;transition:color var(--duration-fast) var(--ease)}a:hover{color:var(--green);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);letter-spacing:-.01em;line-height:1.15;color:var(--text);margin:0 0 .5em;font-weight:600;font-variation-settings:"opsz" 48}h1{font-size:var(--fs-40);font-variation-settings:"opsz" 96;letter-spacing:-.02em}h2{font-size:var(--fs-30)}h3{font-size:var(--fs-24)}h4{font-size:var(--fs-20)}h5{font-size:var(--fs-17)}h6{font-size:var(--fs-13);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-family:var(--font-body);font-weight:600}p{margin:0 0 .75em}code,pre,kbd{font-family:var(--font-mono);font-size:.9em;background:var(--surface-2);padding:.1em .35em;border-radius:var(--radius-sm);border:1px solid var(--border)}pre{padding:.9em 1em;overflow:auto}hr{border:none;border-top:1px solid var(--border);margin:1.5rem 0}.app-grid{display:grid;grid-template-columns:var(--sidebar-w, 240px) 1fr;grid-template-rows:auto 1fr auto;grid-template-areas:"sidebar top" "sidebar main" "sidebar footer";min-height:100vh}.app-shell-anon{display:flex;flex-direction:column;min-height:100vh}.skip-link{position:absolute;left:.75rem;top:.75rem;background:var(--green);color:var(--text);padding:.6rem 1rem;font-weight:600;font-size:var(--fs-14);border-radius:var(--radius-md);text-decoration:none;transform:translateY(-200%);transition:transform var(--duration-fast) var(--ease);z-index:1100}.skip-link:focus,.skip-link:focus-visible{transform:translateY(0);outline:2px solid var(--blue-light);outline-offset:2px}.top-utility-bar{grid-area:top;display:flex;align-items:center;gap:1rem;padding:.5rem 1.25rem;min-height:56px;background:#07111ab8;backdrop-filter:saturate(140%) blur(10px);-webkit-backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50}:root[data-theme=light] .top-utility-bar{background:#ffffffd1}.utility-bar-menu-btn{display:none;width:44px;height:44px;padding:0;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;color:var(--text);border-radius:var(--radius-md);cursor:pointer}.utility-bar-menu-btn:hover{background:var(--surface);border-color:var(--border)}.utility-bar-brand{text-decoration:none;margin:0}.utility-bar-spacer{flex:1}.utility-bar-auth{display:flex;align-items:center;gap:.6rem}.app-shell-anon .top-utility-bar{position:static}.brand{font-family:var(--font-display);font-weight:600;font-size:var(--fs-20);letter-spacing:-.01em;background:linear-gradient(90deg,var(--text) 55%,var(--green) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;white-space:nowrap}.nav-sidebar{grid-area:sidebar;display:flex;flex-direction:column;background:#07111a8c;border-right:1px solid var(--border);position:sticky;top:0;height:100vh;overflow-y:auto;overflow-x:hidden;z-index:40;transition:width var(--duration-base) var(--ease)}:root[data-theme=light] .nav-sidebar{background:#ffffffd1}.nav-sidebar-inner{flex:1;padding:1rem .75rem;display:flex;flex-direction:column;gap:.25rem}.nav-sidebar-group{margin-top:.6rem}.nav-sidebar-group-label{font-size:var(--fs-12);font-weight:700;letter-spacing:.14em;color:var(--text-muted);padding:.5rem .6rem .3rem;text-transform:uppercase}.nav-sidebar-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.15rem}.nav-sidebar-link{display:flex;align-items:center;gap:.7rem;padding:.55rem .7rem;min-height:40px;font-size:var(--fs-14);font-weight:500;color:var(--text-muted);border-radius:var(--radius-md);text-decoration:none;transition:color var(--duration-fast) var(--ease),background var(--duration-fast) var(--ease);position:relative}.nav-sidebar-link:hover{color:var(--text);background:var(--surface);text-decoration:none}.nav-sidebar-link[aria-current=page]{color:var(--text);background:var(--surface)}.nav-sidebar-link[aria-current=page]:before{content:"";position:absolute;left:-.75rem;top:.45rem;bottom:.45rem;width:3px;background:var(--green);border-radius:var(--radius-pill);box-shadow:0 0 8px var(--green-glow)}.nav-sidebar-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;flex-shrink:0;color:currentColor}.nav-sidebar-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-sidebar-collapse-toggle{margin:.5rem .75rem;width:calc(100% - 1.5rem);height:36px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border);color:var(--text-muted);border-radius:var(--radius-md);cursor:pointer}.nav-sidebar-collapse-toggle:hover{background:var(--surface);color:var(--text)}.nav-sidebar[data-collapsed=true]{width:56px}.nav-sidebar[data-collapsed=true]~* .app-grid,.app-grid:has(.nav-sidebar[data-collapsed=true]){--sidebar-w: 56px}.nav-sidebar[data-collapsed=true] .nav-sidebar-label,.nav-sidebar[data-collapsed=true] .nav-sidebar-group-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.nav-sidebar[data-collapsed=true] .nav-sidebar-link{justify-content:center;padding:.55rem}.nav-sidebar[data-collapsed=true] .nav-sidebar-link[aria-current=page]:before{left:-.4rem}@media(max-width:899px){.app-grid{grid-template-columns:1fr;grid-template-areas:"top" "main" "footer"}.nav-sidebar{position:fixed;left:0;top:0;bottom:0;width:280px;transform:translate(-100%);transition:transform var(--duration-base) var(--ease);box-shadow:var(--shadow-md)}.nav-sidebar[data-mobile-open=true]{transform:translate(0)}.nav-sidebar-collapse-toggle{display:none}.utility-bar-menu-btn{display:inline-flex}}.nav-sidebar-backdrop{display:none}@media(max-width:899px){.nav-sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:35;opacity:0;pointer-events:none;transition:opacity var(--duration-base) var(--ease)}.nav-sidebar-backdrop[data-visible=true]{opacity:1;pointer-events:auto}}.app-main{grid-area:main;padding:2rem 1.75rem 3rem;width:100%;position:relative;z-index:1;min-width:0}.app-shell-anon .app-main{flex:1;padding:0}.app-footer{grid-area:footer;padding:.85rem 1.5rem;color:var(--text-muted);font-size:var(--fs-12);border-top:1px solid var(--border);background:#07111a99;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);text-align:center;letter-spacing:.02em;display:flex;justify-content:center;align-items:center;gap:.5rem;flex-wrap:wrap}.app-footer .footer-sep{opacity:.4}.app-footer .footer-version{cursor:help;font-variant-numeric:tabular-nums}.admin-nav{position:relative}.admin-nav[open]>summary:after{transform:rotate(180deg)}.admin-nav>summary{display:inline-flex;align-items:center;gap:.3rem;padding:.4rem .75rem;font-size:var(--fs-14);font-weight:500;color:var(--text-muted);border-radius:var(--radius-md);cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none;transition:color var(--duration-fast) var(--ease),background var(--duration-fast) var(--ease)}.admin-nav>summary::-webkit-details-marker{display:none}.admin-nav>summary:after{content:"";width:8px;height:8px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-left:.15rem;margin-bottom:2px;transition:transform var(--duration-fast) var(--ease)}.admin-nav>summary:hover{color:var(--text);background:var(--surface)}.admin-nav-menu{position:absolute;top:calc(100% + 4px);right:0;min-width:160px;background:var(--surface);border:1px solid var(--border-accent);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:.35rem;display:flex;flex-direction:column;gap:.15rem;z-index:20;animation:admin-nav-drop var(--duration-base) var(--ease)}.admin-nav-menu a{display:block;padding:.45rem .7rem;font-size:var(--fs-14);color:var(--text-muted);border-radius:var(--radius-sm);text-decoration:none;white-space:nowrap}.admin-nav-menu a:hover{background:var(--surface-2);color:var(--text);text-decoration:none}@keyframes admin-nav-drop{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.auth-slot{display:flex;align-items:center;gap:.75rem;font-size:var(--fs-14);color:var(--text-muted)}.auth-slot .auth-user{padding:.35rem .7rem;border-radius:var(--radius-pill);background:var(--surface);border:1px solid var(--border);color:var(--text);font-weight:500;font-size:var(--fs-13)}.auth-slot .role{color:var(--text-muted);font-style:normal;font-size:var(--fs-12);margin-left:.25rem;text-transform:lowercase;letter-spacing:.02em}button,.btn{font-family:var(--font-body);font-size:var(--fs-14);font-weight:500;line-height:1;padding:.65rem 1rem;min-height:44px;border-radius:var(--radius-md);border:1px solid var(--border-accent);background:var(--surface);color:var(--text);cursor:pointer;transition:background var(--duration-fast) var(--ease),border-color var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease),box-shadow var(--duration-fast) var(--ease),transform var(--duration-fast) var(--ease);display:inline-flex;align-items:center;justify-content:center;gap:.4rem;white-space:nowrap;-webkit-user-select:none;user-select:none}button:hover:not(:disabled),.btn:hover:not(:disabled){background:var(--surface-2);border-color:var(--blue-light);color:var(--text)}button:active:not(:disabled),.btn:active:not(:disabled){transform:translateY(1px)}button:disabled,.btn:disabled,button[aria-disabled=true],.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--green);border-color:var(--green);color:var(--black);font-weight:600;box-shadow:inset 0 1px #ffffff40,0 0 0 1px #84ef5a33}.btn-primary:hover:not(:disabled){background:#9bff70;border-color:#9bff70;color:var(--black);box-shadow:inset 0 1px #ffffff4d,var(--shadow-glow)}.btn-secondary{background:var(--surface);border-color:var(--border-accent);color:var(--text)}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-muted);padding-inline:.5rem}.btn-ghost:hover:not(:disabled){background:var(--surface);border-color:var(--border);color:var(--text)}.btn-danger{background:transparent;border-color:#ff6b7a59;color:var(--error)}.btn-danger:hover:not(:disabled){background:var(--error-soft);border-color:var(--error);color:var(--error)}.btn-sm{font-size:var(--fs-13);padding:.35rem .7rem;min-height:32px}.btn-lg{font-size:var(--fs-17);padding:.85rem 1.4rem;min-height:48px}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;min-height:44px;padding:0;line-height:1}.theme-toggle svg{display:block}input,select,textarea{font-family:var(--font-body);font-size:var(--fs-14);color:var(--text);background:var(--black-3);border:1px solid var(--border);border-radius:var(--radius-md);padding:.5rem .7rem;line-height:1.4;transition:border-color var(--duration-fast) var(--ease),box-shadow var(--duration-fast) var(--ease);-webkit-appearance:none;-moz-appearance:none;appearance:none}select{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path fill='%2355dfff' d='M0 0l5 6 5-6z'/></svg>");background-repeat:no-repeat;background-position:right .7rem center;padding-right:1.8rem}textarea{resize:vertical;min-height:5rem}input::placeholder,textarea::placeholder{color:var(--text-muted);opacity:.7}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;border-color:var(--blue-light);box-shadow:0 0 0 3px var(--blue-glow)}input:disabled,select:disabled,textarea:disabled{opacity:.55;cursor:not-allowed}label{font-size:var(--fs-13);color:var(--text-muted);font-weight:500}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem 1.4rem;box-shadow:var(--shadow-sm);transition:border-color var(--duration-base) var(--ease),box-shadow var(--duration-base) var(--ease),transform var(--duration-base) var(--ease);position:relative}.card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.03),transparent 40%)}.card:hover{border-color:var(--border-accent)}.card-accent{border-top-color:var(--green);border-top-width:2px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem 1.75rem;margin-bottom:1.5rem}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.panel-header h2,.panel-header h3{margin:0}.chip{display:inline-flex;align-items:center;gap:.35rem;padding:.18rem .6rem;border-radius:var(--radius-pill);font-size:var(--fs-12);font-weight:600;letter-spacing:.04em;text-transform:uppercase;background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border);line-height:1.4;white-space:nowrap}.chip:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.85}.chip-success{background:var(--green-glow);color:var(--green);border-color:#84ef5a59}.chip-info{background:var(--blue-glow);color:var(--blue-light);border-color:#55dfff4d}.chip-warn{background:var(--warn-soft);color:var(--warn);border-color:#ffc8574d}.chip-danger{background:var(--error-soft);color:var(--error);border-color:#ff6b7a4d}.chip-muted{background:var(--surface-2);color:var(--text-muted);border-color:var(--border)}.stat{display:flex;flex-direction:column;gap:.35rem}.stat-label{font-size:var(--fs-12);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-weight:600}.stat-value{font-family:var(--font-display);font-size:var(--fs-30);font-weight:600;font-variation-settings:"opsz" 96;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--text);line-height:1.05}.stat-value.is-good{color:var(--green)}.stat-value.is-bad{color:var(--error)}.stat-sub{font-size:var(--fs-13);color:var(--text-muted)}.stat-grid{display:grid;gap:1.25rem 2rem;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin:0}.mono{font-family:ui-monospace,SF Mono,JetBrains Mono,Fira Code,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums;letter-spacing:0}.tabs{display:inline-flex;padding:3px;background:var(--black-3);border:1px solid var(--border);border-radius:var(--radius-md);gap:2px}.tabs .tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:var(--text-muted);font-family:var(--font-body);font-size:var(--fs-13);font-weight:500;padding:.45rem .9rem;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease);line-height:1;white-space:nowrap}.tabs .tab:hover:not(.tab-active):not(:disabled){color:var(--text);background:var(--surface)}.tabs .tab-active{background:var(--surface-2);color:var(--text);box-shadow:inset 0 1px #ffffff0a,0 0 0 1px var(--border-accent)}.tabs .tab:focus-visible{outline:none;box-shadow:0 0 0 2px var(--blue-light)}.alert{border:1px solid var(--border);border-left:3px solid var(--blue-light);background:var(--surface);border-radius:var(--radius-md);padding:.75rem 1rem;color:var(--text);font-size:var(--fs-14)}.alert-success{border-left-color:var(--green)}.alert-warn{border-left-color:var(--warn)}.alert-danger{border-left-color:var(--error)}.alert-info{border-left-color:var(--blue-light)}.alert-title{display:block;font-weight:600;margin-bottom:.15rem;color:var(--text)}.health{display:grid;grid-template-columns:max-content 1fr;gap:.4rem 1.25rem;margin-top:1rem;padding:1rem 1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md)}.health dt{color:var(--text-muted);font-size:var(--fs-13);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.health dd{margin:0;color:var(--text);font-family:var(--font-mono);font-size:var(--fs-13)}.error{color:var(--error);font-weight:500}.login-hero{display:flex;justify-content:center;align-items:center;padding:3rem 1rem;min-height:calc(100vh - 180px)}.login-hero-card{width:100%;max-width:420px;display:flex;flex-direction:column;gap:.75rem;text-align:left;position:relative}.login-hero-card:before{content:"";position:absolute;inset:-80px -40px auto -40px;height:240px;background:radial-gradient(50% 50% at 50% 35%,var(--blue-glow) 0%,transparent 70%);pointer-events:none;z-index:-1}.login-hero-brand{font-family:var(--font-display);font-size:var(--fs-13);color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;margin:0}.login-hero-card h1{font-size:var(--fs-40);margin:0;background:linear-gradient(100deg,var(--text) 70%,var(--green) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}.login-hero-lede{margin:0 0 1rem;font-size:var(--fs-15);line-height:1.5}.login-form{display:flex;flex-direction:column;gap:.85rem;max-width:380px;padding:1.75rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);position:relative}.login-form:before{content:"";position:absolute;inset:0 1.5rem auto;height:1px;background:linear-gradient(90deg,transparent,var(--blue-light),transparent);opacity:.6;top:-1px}.login-form label{display:flex;flex-direction:column;gap:.3rem;font-size:var(--fs-13);color:var(--text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.06em}.login-form input,.login-form select{font-size:var(--fs-15);padding:.6rem .8rem;text-transform:none;letter-spacing:normal}.login-form button[type=submit]{align-self:stretch;justify-content:center;background:var(--green);color:var(--black);border-color:var(--green);font-weight:600;font-size:var(--fs-15);padding:.7rem 1rem;margin-top:.25rem;box-shadow:inset 0 1px #ffffff40,0 0 0 1px #84ef5a33}.login-form button[type=submit]:hover:not(:disabled){background:#9bff70;border-color:#9bff70;color:var(--black);box-shadow:inset 0 1px #ffffff4d,var(--shadow-glow)}.filter-bar{display:flex;flex-wrap:wrap;gap:.75rem 1rem;align-items:flex-end;margin:.75rem 0 1.25rem;padding:.85rem 1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md)}.filter-bar label{display:flex;flex-direction:column;gap:.3rem;font-size:var(--fs-12);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.filter-bar input,.filter-bar select{font-size:var(--fs-14);padding:.4rem .6rem;background:var(--black-3);text-transform:none;letter-spacing:normal}.data-table{width:100%;border-collapse:separate;border-spacing:0;margin:1rem 0;font-size:var(--fs-14);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.data-table th,.data-table td{text-align:left;padding:.7rem 1rem;border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle}.data-table tbody tr:last-child th,.data-table tbody tr:last-child td{border-bottom:none}.data-table th{background:var(--black-3);color:var(--text-muted);font-weight:600;font-size:var(--fs-12);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border-accent);font-family:var(--font-body)}.data-table tbody tr{transition:background var(--duration-fast) var(--ease)}.data-table tbody tr:hover{background:var(--surface-2)}.data-table .num,.data-table td.num,.data-table th.num{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--font-body);letter-spacing:0}.data-table tr.total-row td,.data-table tr.total-row th{background:var(--black-3);color:var(--text);font-weight:600;font-variant-numeric:tabular-nums;border-top:1px solid var(--border-accent)}.data-table tr.total-row:hover td{background:var(--black-3)}.error-boundary{max-width:640px;margin:5rem auto;padding:2rem 2.25rem;background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--error);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.error-boundary h1{color:var(--error);margin-top:0;font-size:var(--fs-24)}.error-detail{background:var(--black-3);padding:1rem 1.1rem;border-radius:var(--radius-md);font-family:var(--font-mono);font-size:var(--fs-12);overflow:auto;white-space:pre-wrap;margin:1rem 0;color:var(--text-muted);border:1px solid var(--border)}.error-actions{display:flex;gap:.6rem;margin-top:1.25rem}.text-muted{color:var(--text-muted)}.text-accent{color:var(--blue-light)}.text-success{color:var(--green)}.text-danger{color:var(--error)}.text-right{text-align:right}.text-center{text-align:center}.stack{display:flex;flex-direction:column;gap:1rem}.stack-sm{gap:.5rem}.stack-lg{gap:1.5rem}.row{display:flex;align-items:center;gap:.75rem}.row-wrap{flex-wrap:wrap}.row-between{justify-content:space-between}.grid{display:grid;gap:1rem}.grid-auto{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}:focus-visible{outline:2px solid var(--blue-light);outline-offset:2px;border-radius:var(--radius-sm)}button:focus-visible,.btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--blue-glow),0 0 0 1px var(--blue-light)}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}body{background-image:linear-gradient(180deg,var(--black-2) 0%,var(--black) 70%)}body:before{display:none}}*{scrollbar-color:var(--surface-2) transparent;scrollbar-width:thin}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--surface-2);border-radius:var(--radius-pill);border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:var(--border-accent);background-clip:padding-box}::selection{background:var(--green-glow);color:var(--text)}.dashboard{display:flex;flex-direction:column;gap:1.5rem}.dashboard-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap}.dashboard-header h1{margin:0 0 .15em}.quick-actions{display:flex;flex-wrap:wrap;gap:.6rem}.quick-actions .btn{font-size:var(--fs-14)}.quick-actions .btn[aria-disabled=true]{opacity:.55;filter:grayscale(.4)}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.dashboard-grid{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(0,1fr);gap:1.5rem}.dashboard-col-left,.dashboard-col-right{min-width:0;display:flex;flex-direction:column;gap:1.25rem}@media(max-width:900px){.dashboard-grid{grid-template-columns:1fr}}.cashflow-chart{width:100%;height:auto;max-height:280px;display:block;margin-top:.25rem}.chart-legend{display:flex;flex-wrap:wrap;gap:.85rem 1.25rem;margin-top:.85rem;padding-top:.75rem;border-top:1px solid var(--border);font-size:var(--fs-13);color:var(--text-muted)}.legend-item{display:inline-flex;align-items:center;gap:.5rem}.legend-swatch{display:inline-block;width:14px;height:10px;border-radius:2px}.legend-swatch-line{height:3px;width:20px;border-radius:var(--radius-pill)}.empty-state{padding:1.5rem 0 .5rem;text-align:left}.empty-state p:first-child{font-weight:500;color:var(--text);margin-bottom:.4rem}.empty-state p{margin:0 0 .5rem}.activity-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.activity-row{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem;padding:.6rem 0;border-bottom:1px solid var(--border);font-size:var(--fs-14)}.activity-row:last-child{border-bottom:none;padding-bottom:0}.activity-row-main{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-client{color:var(--text);font-weight:500}.activity-row-meta{display:inline-flex;align-items:baseline;gap:.75rem;font-size:var(--fs-13);white-space:nowrap}.activity-hours{font-family:var(--font-body);font-variant-numeric:tabular-nums;font-weight:600;color:var(--blue-light)}.report-summary{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:1rem 1.4rem}.report-summary .stat-label{font-size:var(--fs-13)}.report-summary .stat-value{font-size:var(--fs-30)}.invoice-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:1.5rem;align-items:start}.invoice-layout-main{min-width:0;display:flex;flex-direction:column;gap:1.25rem}.invoice-layout-side{position:sticky;top:calc(72px + 1rem);display:flex;flex-direction:column;gap:1rem}@media(max-width:900px){.invoice-layout{grid-template-columns:1fr}.invoice-layout-side{position:static}}.invoice-totals{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--green);border-radius:var(--radius-lg);padding:1.25rem 1.4rem;box-shadow:var(--shadow-sm);position:relative}.invoice-totals:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;background:linear-gradient(180deg,rgba(132,239,90,.035) 0%,transparent 40%)}.invoice-totals h2,.invoice-totals h3{margin:0 0 .75rem;font-size:var(--fs-17);font-family:var(--font-body);font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.invoice-totals-row{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem;padding:.4rem 0;font-size:var(--fs-14)}.invoice-totals-row .label{color:var(--text-muted)}.invoice-totals-row .value{font-variant-numeric:tabular-nums;color:var(--text);font-weight:500}.invoice-totals-row.is-grand{padding-top:.75rem;margin-top:.25rem;border-top:1px solid var(--border)}.invoice-totals-row.is-grand .label{color:var(--text);font-weight:600;font-size:var(--fs-15)}.invoice-totals-row.is-grand .value{font-family:var(--font-display);font-size:var(--fs-24);font-variation-settings:"opsz" 48;letter-spacing:-.01em;color:var(--green);font-weight:600}.invoice-totals-row.is-balance .value{font-weight:600}.invoice-totals-row.is-balance.is-due .value{color:var(--warn)}.invoice-totals-row.is-balance.is-settled .value{color:var(--green)}@keyframes skeleton-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{display:block;height:1em;border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--surface) 0%,var(--surface-2) 50%,var(--surface) 100%);background-size:200% 100%;animation:skeleton-shimmer 1.6s ease-in-out infinite}.skeleton-row{display:table-row}.skeleton-row td{padding:.65rem .85rem;border-bottom:1px solid var(--border)}.skeleton-row td .skeleton{height:.9em;width:80%}.skeleton-row td.num .skeleton{margin-left:auto;width:4em}.empty-state-panel{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:2.5rem 1.5rem;text-align:center;background:var(--surface);border:1px dashed var(--border-accent);border-radius:var(--radius-lg);color:var(--text)}.empty-state-panel .empty-glyph{font-size:1.75rem;line-height:1;color:var(--blue-light);opacity:.65;margin-bottom:.25rem}.empty-state-panel h3{margin:0;font-family:var(--font-display);font-size:var(--fs-20);font-weight:500;color:var(--text)}.empty-state-panel p{margin:0;max-width:42ch;color:var(--text-muted);font-size:var(--fs-14);line-height:1.55}.empty-state-panel .empty-cta{margin-top:.75rem}.toast-stack{position:fixed;bottom:1.25rem;right:1.25rem;display:flex;flex-direction:column;gap:.5rem;z-index:1000;pointer-events:none;max-width:min(360px,calc(100vw - 2.5rem))}@keyframes toast-in{0%{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}.toast{pointer-events:auto;display:flex;align-items:flex-start;gap:.6rem;padding:.75rem .9rem;background:var(--black-3);border:1px solid var(--border);border-left:3px solid var(--blue-light);border-radius:var(--radius-md);box-shadow:var(--shadow-md);color:var(--text);font-size:var(--fs-14);animation:toast-in .18s ease-out}.toast-success{border-left-color:var(--green)}.toast-danger{border-left-color:var(--error)}.toast-warn{border-left-color:var(--warn)}.toast-info{border-left-color:var(--blue-light)}.toast-body{flex:1;min-width:0;word-break:break-word}.toast-close{background:transparent;border:none;color:var(--text-muted);cursor:pointer;font-size:1.1rem;line-height:1;padding:0 .15rem;border-radius:var(--radius-sm)}.toast-close:hover{color:var(--text)}.toast-close:focus-visible{outline:2px solid var(--blue-light);outline-offset:2px}dialog.confirm-dialog{padding:0;border:1px solid var(--border-accent);border-radius:var(--radius-lg);background:var(--black-3);color:var(--text);box-shadow:var(--shadow-md);max-width:min(420px,calc(100vw - 2rem));width:100%}dialog.confirm-dialog::backdrop{background:#02060a99;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.confirm-dialog-body{padding:1.25rem 1.4rem .5rem}.confirm-dialog-body h3{margin:0 0 .4rem;font-family:var(--font-display);font-size:var(--fs-20);color:var(--text)}.confirm-dialog-body p{margin:0;color:var(--text-muted);font-size:var(--fs-14);line-height:1.5}.confirm-dialog-actions{display:flex;justify-content:flex-end;gap:.5rem;padding:1rem 1.4rem 1.25rem}.dialog-form{display:flex;flex-direction:column;gap:.85rem}.dialog-form label{display:flex;flex-direction:column;gap:.3rem;font-size:var(--fs-13);color:var(--text-muted);font-weight:500;letter-spacing:.04em}.dialog-form input,.dialog-form select,.dialog-form textarea{font-size:var(--fs-15);padding:.55rem .75rem;letter-spacing:normal;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);width:100%;box-sizing:border-box}.dialog-form input:focus,.dialog-form select:focus,.dialog-form textarea:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.dialog-form-row{display:flex;gap:.6rem}.dialog-form-row>label{flex:1 1 0;min-width:0}.dialog-form label.dialog-form-check{flex-direction:row;align-items:center;gap:.5rem;text-transform:none;font-size:var(--fs-14);color:var(--text);letter-spacing:normal}.dialog-form label.dialog-form-check input[type=checkbox]{width:auto}@media(prefers-reduced-motion:reduce){.skeleton,.toast{animation:none}}.author-cell{display:inline-flex;align-items:center;gap:.5rem;flex-wrap:wrap;min-width:0}.filter-bar .filter-check{display:inline-flex;flex-direction:row;align-items:center;gap:.45rem;padding-top:1.2em;text-transform:none;letter-spacing:normal;font-size:var(--fs-13);cursor:pointer}.filter-bar .filter-check input[type=checkbox]{accent-color:var(--blue-light);width:1rem;height:1rem;margin:0;padding:0;background:transparent;border:none}.media-dropzone{display:flex;align-items:center;justify-content:center;border:1px dashed var(--border-accent);border-radius:var(--radius-md);padding:1.1rem 1rem;margin-bottom:1rem;background:var(--surface);text-align:center;font-size:var(--fs-13);transition:border-color var(--duration-base) var(--ease),background var(--duration-base) var(--ease)}.media-dropzone.is-dragover{border-color:var(--green);background:var(--green-glow)}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.85rem}.media-tile{display:flex;flex-direction:column;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:0;cursor:pointer;overflow:hidden;transition:border-color var(--duration-base) var(--ease),transform var(--duration-base) var(--ease)}.media-tile:hover{border-color:var(--border-accent);transform:translateY(-1px)}.media-tile img{width:100%;aspect-ratio:1 / 1;object-fit:cover;display:block;background:var(--black-3)}.media-tile-placeholder{width:100%;aspect-ratio:1 / 1;display:flex;align-items:center;justify-content:center;background:var(--black-3);color:var(--text-muted);font-weight:700;letter-spacing:.1em}.media-tile-glyph{font-size:var(--fs-15)}.media-tile-meta{display:flex;flex-direction:column;gap:.15rem;padding:.5rem .65rem;border-top:1px solid var(--border)}.media-tile-name{font-size:var(--fs-13);color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-tile-size{font-size:var(--fs-12);color:var(--text-muted)}.media-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#02060ac7;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:2rem;z-index:1100}.media-lightbox-inner{display:flex;flex-direction:column;gap:.75rem;background:var(--surface);border:1px solid var(--border-accent);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);max-width:min(1100px,calc(100vw - 2rem));max-height:calc(100vh - 4rem);overflow:hidden;width:100%}.media-lightbox-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem .9rem;border-bottom:1px solid var(--border)}.media-lightbox-title{font-size:var(--fs-14);color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-lightbox-body{flex:1 1 auto;display:flex;align-items:center;justify-content:center;padding:1rem;background:var(--black-3);min-height:0}.media-lightbox-body img{max-width:100%;max-height:calc(100vh - 12rem);object-fit:contain;display:block}.media-lightbox-body object{width:100%;height:calc(100vh - 12rem);border:none}@media(max-width:720px){.app-header{flex-direction:column;gap:.5rem;padding:.75rem 1rem}.app-header nav{order:3;justify-content:flex-start;width:100%;overflow-x:auto;scrollbar-width:none}.app-header nav::-webkit-scrollbar{display:none}.app-main{padding:1.25rem 1rem 2rem}h1{font-size:var(--fs-30)}h2{font-size:var(--fs-24)}}
