:root{--color-primary:#1a2332;--color-primary-soft:#2a3648;--color-accent:#d4920b;--color-accent-ink:#7a5206;--surface:#fff;--surface-sunken:#f4f6f8;--surface-raised:#fff;--border:#e2e6ec;--border-strong:#cbd2dc;--text-primary:#1a2332;--text-secondary:#4d5a6e;--text-muted:#7a8599;--text-on-dark:#f4f6f8;--text-on-accent:#1a2332;--status-green:#2d8a56;--status-green-bg:#e6f3ec;--status-amber:#ad7209;--status-amber-bg:#fbf0da;--status-red:#c44b3f;--status-red-bg:#fbeae8;--status-orange:#c05a1f;--status-orange-bg:#fbeee1;--status-blue:#4a6fa5;--status-blue-bg:#eaf0f8;--chart-green:#2d8a56;--chart-amber:#d4920b;--chart-red:#c44b3f;--chart-orange:#c05a1f;--chart-blue:#4a6fa5;--chart-navy:#1a2332;--chart-grid:#e2e6ec;--shadow-sm:0 1px 2px #1a23320f, 0 1px 1px #1a23320a;--shadow-md:0 4px 12px #1a233214, 0 2px 4px #1a23320f;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:var(--font-sans);color:var(--text-primary);background:var(--surface-sunken);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--color-primary:#0f1520;--color-primary-soft:#1c2635;--color-accent:#e0a52c;--color-accent-ink:#3a2a05;--surface:#141a24;--surface-sunken:#0d121a;--surface-raised:#1a2230;--border:#262f3f;--border-strong:#37455a;--text-primary:#e8ecf2;--text-secondary:#a8b3c4;--text-muted:#778196;--text-on-dark:#e8ecf2;--text-on-accent:#14100a;--status-green:#4cb47c;--status-green-bg:#16281f;--status-amber:#e0a52c;--status-amber-bg:#2c2410;--status-red:#e07567;--status-red-bg:#2c1815;--status-orange:#e08a4d;--status-orange-bg:#2c1d10;--status-blue:#7ea0d6;--status-blue-bg:#16202f;--chart-green:#4cb47c;--chart-amber:#e0a52c;--chart-red:#e07567;--chart-orange:#e08a4d;--chart-blue:#7ea0d6;--chart-navy:#a8b3c4;--chart-grid:#262f3f;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #0006}}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--surface-sunken);color:var(--text-primary);margin:0}h1,h2,h3,h4{color:var(--text-primary);margin:0;font-weight:600}p{margin:0}a{color:var(--status-blue);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font-family:inherit;font-size:inherit}button{cursor:pointer}table{border-collapse:collapse;width:100%}.tabular-nums{font-variant-numeric:tabular-nums}.card{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.page{max-width:1280px;margin:0 auto;padding:28px 32px 64px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;display:flex}.page-header h1{letter-spacing:-.2px;font-size:24px}.page-subtitle{color:var(--text-secondary);margin-top:4px;font-size:14px}.btn{border-radius:var(--radius-sm);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:9px 16px;font-size:14px;font-weight:600;transition:filter .15s,background .15s;display:inline-flex}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:var(--text-on-dark)}.btn-primary:hover:not(:disabled){filter:brightness(1.15)}.btn-accent{background:var(--color-accent);color:var(--text-on-accent)}.btn-accent:hover:not(:disabled){filter:brightness(1.08)}.btn-ghost{border-color:var(--border-strong);color:var(--text-primary);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--surface-sunken)}.field{flex-direction:column;gap:6px;display:flex}.field label{color:var(--text-secondary);font-size:13px;font-weight:600}.field input,.field select,.field textarea{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--text-primary);padding:9px 12px}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--color-accent);outline-offset:1px}.badge{letter-spacing:.2px;white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:3px 10px;font-size:12px;font-weight:700;display:inline-flex}.badge-dot{background:currentColor;border-radius:50%;flex:none;width:6px;height:6px}.badge-green{background:var(--status-green-bg);color:var(--status-green)}.badge-amber{background:var(--status-amber-bg);color:var(--status-amber)}.badge-red{background:var(--status-red-bg);color:var(--status-red)}.badge-orange{background:var(--status-orange-bg);color:var(--status-orange)}.badge-blue{background:var(--status-blue-bg);color:var(--status-blue)}.badge-gray{background:var(--surface-sunken);color:var(--text-muted);border:1px solid var(--border)}.spinner{border:2px solid #ffffff59;border-top-color:currentColor;border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;color:var(--text-muted);padding:48px 24px;font-size:14px}.error-banner{background:var(--status-red-bg);color:var(--status-red);border:1px solid var(--status-red);border-radius:var(--radius-sm);padding:10px 14px;font-size:13px;font-weight:500}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:8px}.table-scroll{max-width:100%;overflow-x:auto}[data-role=readonly] .btn-accent,[data-role=readonly] .upload-row,[data-role=readonly] .admin-only{display:none!important}.linkish{color:inherit;cursor:pointer;font:inherit;background:0 0;border:0;padding:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.filter-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px;padding:14px 18px;display:flex}.filter-search{flex:1;gap:8px;min-width:220px;display:flex}.filter-search input{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--text-primary);flex:1;min-width:0;padding:8px 12px}.filter-search input:focus{outline:2px solid var(--color-accent);outline-offset:1px}.filter-controls{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.filter-controls select{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--text-primary);padding:8px 10px;font-size:13.5px}@media (width<=1600px){.nav-links a{padding-left:8px;padding-right:8px;font-size:12.5px}.nav-links{gap:0}}@media (width<=1400px){.nav-links a{padding-left:6px;padding-right:6px;font-size:12px}}.relogin-backdrop{z-index:1000;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0a0e148c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.relogin-dialog{background:var(--surface-raised);flex-direction:column;gap:12px;width:min(420px,100%);padding:24px 26px;display:flex;box-shadow:0 18px 50px #00000059}.relogin-dialog h2{margin:0;font-size:18px}.relogin-lead{color:var(--text-secondary);margin:0;font-size:13.5px;line-height:1.5}.relogin-field{flex-direction:column;gap:5px;display:flex}.relogin-field>span{text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);font-size:11.5px;font-weight:700}.relogin-field input{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--text-primary);padding:9px 12px;font-size:14px}.relogin-field input[readonly]{color:var(--text-secondary);background:var(--surface-sunken)}.relogin-field input:focus{outline:2px solid var(--color-accent);outline-offset:1px}.relogin-error{margin:0}.relogin-actions{justify-content:space-between;gap:10px;margin-top:4px;display:flex}.app-shell{flex-direction:column;min-height:100vh;display:flex}.topbar{background:var(--color-primary);z-index:20;border-bottom:1px solid #ffffff14;animation:.45s cubic-bezier(.22,1,.36,1) both topbar-in;position:sticky;top:0}.topbar-inner{align-items:center;gap:32px;max-width:1280px;height:60px;margin:0 auto;padding:0 32px;display:flex}.brand{flex:none;align-items:center;gap:10px;display:flex}.brand-mascot{object-fit:cover;background:#fff;border-radius:50%;flex:none;width:30px;height:30px;padding:1px;transition:transform .25s;animation:.6s cubic-bezier(.34,1.56,.64,1) .1s both mascot-in;box-shadow:0 0 0 2px #d4920b8c}.brand:hover .brand-mascot{transform:rotate(-6deg)scale(1.06)}@keyframes mascot-in{0%{opacity:0;transform:scale(.4)rotate(-20deg)}to{opacity:1;transform:scale(1)rotate(0)}}.brand-name{color:var(--text-on-dark);letter-spacing:.1px;white-space:nowrap;font-size:15px;font-weight:700}.nav-links{flex:1;align-items:center;gap:4px;display:flex;overflow-x:auto}.nav-link{color:#f4f6f8ad;border-radius:var(--radius-sm);white-space:nowrap;padding:8px 14px;font-size:13.5px;font-weight:600;transition:background .18s,color .18s}.nav-link:hover{color:var(--text-on-dark);background:#f4f6f814;text-decoration:none}.nav-link.active{color:var(--text-on-dark);background:#d4920b38}.topbar-user{flex:none;align-items:center;gap:12px;display:flex}.user-chip{align-items:center;gap:8px;display:flex}.user-avatar{background:var(--color-primary-soft);width:26px;height:26px;color:var(--text-on-dark);border:1px solid #ffffff26;border-radius:50%;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.user-name{color:var(--text-on-dark);text-overflow:ellipsis;white-space:nowrap;max-width:140px;font-size:13px;font-weight:600;overflow:hidden}.topbar-user .btn-ghost{color:var(--text-on-dark);border-color:#fff3}.topbar-user .btn-ghost:hover{background:#ffffff14}.app-content{flex:1}.page-enter{animation:.32s cubic-bezier(.22,1,.36,1) both page-in}@keyframes page-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes topbar-in{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.welcome-toast{z-index:30;background:var(--surface);color:var(--text-primary);border:1px solid var(--border);box-shadow:var(--shadow-md);white-space:nowrap;pointer-events:none;border-radius:999px;align-items:center;gap:10px;padding:10px 16px 10px 12px;font-size:13.5px;font-weight:600;animation:2.6s cubic-bezier(.22,1,.36,1) both toast-in-out;display:flex;position:fixed;top:74px;left:50%}.welcome-toast img{background:#fff;border-radius:50%}@keyframes toast-in-out{0%{opacity:0;transform:translate(-50%,-10px)}14%{opacity:1;transform:translate(-50%)}80%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-6px)}}@media (prefers-reduced-motion:reduce){.topbar,.brand-mascot,.page-enter,.welcome-toast{animation:none!important}.brand:hover .brand-mascot{transform:none}}@media (width<=860px){.topbar-inner{gap:16px;padding:0 16px}.brand-name,.user-name{display:none}}.watermark{pointer-events:none;z-index:30;grid-template-columns:repeat(4,1fr);align-content:space-around;justify-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.watermark span{letter-spacing:.5px;color:#80808029;white-space:nowrap;-webkit-user-select:none;user-select:none;font-size:15px;font-weight:700;transform:rotate(-24deg)}[data-role=viewer] .app-content{-webkit-user-select:none;user-select:none}[data-role=viewer] .btn-export,[data-role=viewer] .btn-accent,[data-role=viewer] .upload-row,[data-role=viewer] .admin-only{display:none!important}.focus-shield{z-index:60;background:var(--bg,#0f1419);color:var(--text-muted,#999);justify-content:center;align-items:center;font-size:15px;display:flex;position:fixed;inset:0}@media print{[data-role=viewer] .app-content,[data-role=viewer] .topbar{display:none!important}[data-role=viewer] body:after{content:"Printing is not available for view-only accounts."}}.help-link{width:28px;height:28px;color:var(--text-on-dark);border:1px solid #ffffff38;border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:14px;font-weight:700;text-decoration:none;display:inline-flex}.help-link:hover,.help-link.active{border-color:var(--color-accent);color:var(--color-accent)}.login-screen{background:var(--color-primary);justify-content:center;align-items:center;min-height:100vh;padding:32px 24px;display:flex;position:relative;overflow:hidden}.login-glow{filter:blur(40px);opacity:.55;pointer-events:none;border-radius:50%;width:55vmax;height:55vmax;animation:18s ease-in-out infinite alternate glow-drift;position:absolute}.login-glow-a{background:radial-gradient(circle,#d4920b52,#0000 62%);top:-20vmax;left:-15vmax}.login-glow-b{background:radial-gradient(circle,#4a8cc84d,#0000 62%);animation-delay:-9s;bottom:-22vmax;right:-18vmax}@keyframes glow-drift{0%{transform:translate(0,0)scale(1)}to{transform:translate(4vmax,3vmax)scale(1.08)}}.login-stage{grid-template-columns:minmax(280px,420px) minmax(300px,400px);align-items:center;gap:56px;width:100%;max-width:920px;display:grid;position:relative}.login-hero{text-align:center;flex-direction:column;align-items:center;gap:8px;animation:.7s cubic-bezier(.22,1,.36,1) both rise-in;display:flex}.login-logo{filter:drop-shadow(0 18px 30px #00000059);-webkit-user-select:none;user-select:none;width:min(260px,100%);height:auto;animation:6s ease-in-out infinite float}.login-title{color:var(--text-on-dark);letter-spacing:-.6px;margin:6px 0 0;font-size:34px;font-weight:800;line-height:1.1;animation:.7s cubic-bezier(.22,1,.36,1) .1s both rise-in}.login-tagline{color:#f4f6f8b8;max-width:34ch;margin:0;font-size:15px;line-height:1.5;animation:.7s cubic-bezier(.22,1,.36,1) .15s both rise-in}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}.login-card{width:100%;padding:32px 30px;transition:transform .4s cubic-bezier(.4,0,1,1),opacity .4s;animation:.7s cubic-bezier(.22,1,.36,1) .1s both rise-in}.login-form .field:first-child{animation:.5s cubic-bezier(.22,1,.36,1) .25s both rise-in}.login-form .field:nth-child(2){animation:.5s cubic-bezier(.22,1,.36,1) .33s both rise-in}.login-form .login-submit{animation:.5s cubic-bezier(.22,1,.36,1) .41s both rise-in}@keyframes rise-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.login-screen.is-done .login-card{opacity:0;transform:translateY(-10px)scale(.98)}.login-screen.is-done .login-logo{animation:.45s ease-in-out both nod}@keyframes nod{0%{transform:translateY(0)rotate(0)}40%{transform:translateY(-10px)rotate(-2deg)}to{transform:translateY(0)rotate(0)}}.login-brand{margin-bottom:24px}.login-brand h2{letter-spacing:-.2px;margin:0 0 4px;font-size:20px}.login-form{flex-direction:column;gap:16px;display:flex}.login-form input{transition:border-color .15s,box-shadow .15s}.login-form input:focus{box-shadow:0 0 0 3px #d4920b2e}.login-submit{width:100%;margin-top:4px;padding:11px 16px;font-size:14.5px;transition:transform .15s,filter .15s}.login-submit:hover:not(:disabled){transform:translateY(-1px)}@media (width<=760px){.login-stage{grid-template-columns:1fr;gap:20px;max-width:420px}.login-logo{width:min(150px,50%)}.login-title{font-size:26px}}@media (prefers-reduced-motion:reduce){.login-glow,.login-logo,.login-hero,.login-title,.login-tagline,.login-card,.login-form .field,.login-form .login-submit{animation:none!important}.login-card{transition:none}}.welcome-invalid{flex-direction:column;gap:10px;display:flex}
