@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Plus+Jakarta+Sans:wght@500;600;700;800&family=Geist+Mono:wght@400;500;600&display=swap";:root{--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-7:1.75rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--radius-xs:6px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-2xl:28px;--radius-full:9999px;--shadow-xs:0 1px 2px #0f172a0a;--shadow-sm:0 2px 8px #0f172a0d;--shadow-md:0 6px 18px #0f172a14;--shadow-lg:0 14px 32px #0f172a1a;--shadow-xl:0 24px 60px #0f172a24;--shadow-focus:0 0 0 3px #4f46e52e;--shadow-focus-danger:0 0 0 3px #ef44442e;--z-base:1;--z-overlay:40;--z-drawer:50;--z-modal:200;--z-toast:300;--color-bg:#f8fafc;--color-surface:#fff;--color-surface-2:#f1f5f9;--color-border:#e2e8f0;--color-border-strong:#cbd5e1;--color-text:#0f172a;--color-text-soft:#475569;--color-text-muted:#94a3b8;--color-brand:#005faa;--color-brand-2:#003f70;--color-brand-grad:linear-gradient(135deg, #005faa 0%, #003f70 100%);--color-accent:#4f46e5;--color-accent-2:#7c3aed;--color-accent-grad:linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%);--color-success:#10b981;--color-warning:#f59e0b;--color-danger:#ef4444;--color-danger-soft:#c7384a;--color-danger-bg:#ffe5e8;--t-fast:.12s cubic-bezier(.4, 0, .2, 1);--t-base:.2s cubic-bezier(.4, 0, .2, 1);--t-slow:.32s cubic-bezier(.4, 0, .2, 1);--t-spring:.4s cubic-bezier(.175, .885, .32, 1.275);--sidebar-width:280px;--sidebar-width-collapsed:76px;--header-height:64px;--touch-target:44px}*{scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:var(--radius-full);background-clip:padding-box;border:2px solid #0000}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted);background-clip:padding-box;border:2px solid #0000}::selection{color:var(--color-text);background:#4f46e52e}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-xs)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display:"Plus Jakarta Sans", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"Geist Mono", "JetBrains Mono", "Courier New", monospace;--fs-xs:clamp(.7rem, .66rem + .2vw, .75rem);--fs-sm:clamp(.78rem, .74rem + .2vw, .84rem);--fs-base:clamp(.875rem, .84rem + .2vw, .95rem);--fs-md:clamp(.94rem, .9rem + .2vw, 1rem);--fs-lg:clamp(1.05rem, 1rem + .4vw, 1.2rem);--fs-xl:clamp(1.2rem, 1.1rem + .5vw, 1.4rem);--fs-2xl:clamp(1.45rem, 1.25rem + .9vw, 1.85rem);--fs-3xl:clamp(1.75rem, 1.45rem + 1.4vw, 2.25rem);--fs-4xl:clamp(2.1rem, 1.7rem + 1.8vw, 2.7rem);--fs-5xl:clamp(2.6rem, 2rem + 2.5vw, 3.5rem);--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--fw-black:800;--lh-tight:1.15;--lh-snug:1.3;--lh-base:1.55;--lh-loose:1.7;--ls-tight:-.02em;--ls-normal:0;--ls-wide:.04em;--ls-xwide:.08em}body{font-family:var(--font-sans);font-size:var(--fs-md);font-weight:var(--fw-regular);line-height:var(--lh-base);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-feature-settings:"cv11", "ss01", "ss03";letter-spacing:-.005em}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:var(--fw-bold);letter-spacing:var(--ls-tight);line-height:var(--lh-tight);color:var(--color-text);text-wrap:balance;margin:0}h1{font-size:var(--fs-3xl);font-weight:var(--fw-black)}h2{font-size:var(--fs-2xl)}h3{font-size:var(--fs-xl)}h4{font-size:var(--fs-lg);font-weight:var(--fw-semibold)}h5,h6{font-size:var(--fs-md)}.display-1{font-family:var(--font-display);font-size:var(--fs-4xl);font-weight:var(--fw-black);letter-spacing:var(--ls-tight);line-height:var(--lh-tight);text-wrap:balance}.display-2{font-family:var(--font-display);font-size:var(--fs-3xl);font-weight:var(--fw-bold);letter-spacing:var(--ls-tight);line-height:var(--lh-tight);text-wrap:balance}.eyebrow{font-family:var(--font-sans);font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:var(--ls-xwide);color:var(--color-text-muted)}.numeric{font-family:var(--font-display);font-feature-settings:"tnum", "ss01";letter-spacing:-.02em;font-variant-numeric:tabular-nums}.text-muted{color:var(--color-text-muted)}.text-soft{color:var(--color-text-soft)}.text-display{font-family:var(--font-display);font-weight:var(--fw-bold);letter-spacing:var(--ls-tight)}.text-numeric{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.truncate-1{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.truncate-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.truncate-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes skeleton-shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton{border-radius:var(--radius-sm);background:#e2e8f066 linear-gradient(90deg,#0f172a0a 0,#0f172a14 80px,#0f172a0a 160px) 0 0/800px 100% no-repeat;animation:1.4s ease-in-out infinite skeleton-shimmer;display:block}.skeleton--text{border-radius:4px;height:.85rem;margin:.35rem 0}.skeleton--title{border-radius:6px;width:60%;height:1.4rem;margin-bottom:.6rem}.skeleton--avatar{border-radius:var(--radius-md);width:48px;height:48px}.skeleton--button{border-radius:var(--radius-md);height:44px}.skeleton--thumb{aspect-ratio:1;border-radius:var(--radius-md);width:100%;max-height:110px}.skeleton--line{border-radius:4px;width:100%;height:12px}.skeleton--line--short{width:60%}.skeleton--line--tiny{width:35%}.skeleton-card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.skeleton-card-image{background:linear-gradient(90deg, var(--color-surface-2) 0px, var(--color-border) 80px, var(--color-surface-2) 160px);background-repeat:no-repeat;background-size:800px 100%;height:140px;animation:1.4s ease-in-out infinite skeleton-shimmer}.skeleton-card-body{padding:var(--space-5)}.skeleton-card-body .skeleton{margin:.4rem 0}.skeleton-item-card{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-5);border:1px solid var(--color-border);gap:var(--space-2);flex-direction:column;display:flex}.skeleton-file-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4) var(--space-3);text-align:center;align-items:center;gap:var(--space-2);flex-direction:column;display:flex}.skeleton-list-row{border-bottom:1px solid var(--color-border);grid-template-columns:2.5fr 1fr .8fr 1.2fr .5fr;align-items:center;gap:.75rem;padding:.7rem 1rem;display:grid}.skeleton-grid{gap:var(--space-5);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.skeleton-grid--files{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}@media (max-width:600px){.skeleton-grid--files{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}}.login-shell{background:var(--color-bg);grid-template-columns:1fr;min-height:100vh;display:grid;position:relative}@media (min-width:1024px){.login-shell{grid-template-columns:1fr 1fr}}.login-aside{color:#fff;isolation:isolate;background:linear-gradient(135deg,#0f172a 0%,#1e293b 100%);display:none;position:relative;overflow:hidden}@media (min-width:1024px){.login-aside{flex-direction:column;display:flex}}.login-aside-bg{z-index:0;background:radial-gradient(circle at 20% 20%,#4f46e559 0%,#0000 55%),radial-gradient(circle at 80% 80%,#7c3aed47 0%,#0000 55%);position:absolute;inset:0}.login-aside-grid{z-index:1;background-image:linear-gradient(#ffffff0a 1px,#0000 1px),linear-gradient(90deg,#ffffff0a 1px,#0000 1px);background-size:48px 48px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(#000 0%,#0000 75%);mask-image:radial-gradient(#000 0%,#0000 75%)}.login-aside-content{z-index:2;padding:var(--space-10) var(--space-12);justify-content:space-between;gap:var(--space-10);flex-direction:column;width:100%;max-width:600px;height:100%;margin:0 auto;display:flex;position:relative}.login-brand{align-items:center;gap:var(--space-3);display:inline-flex}.login-brand-mark{border-radius:var(--radius-md);-webkit-backdrop-filter:blur(8px);background:linear-gradient(135deg,#ffffff1f 0%,#ffffff0a 100%);border:1px solid #ffffff1f;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex;box-shadow:0 8px 24px #4f46e573,inset 0 1px #ffffff14}.login-brand-text{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:var(--fw-bold);letter-spacing:var(--ls-tight);color:#fff}.login-aside-hero{gap:var(--space-4);flex-direction:column;display:flex}.login-aside-eyebrow{-webkit-backdrop-filter:blur(12px);border-radius:var(--radius-full);font-size:var(--fs-xs);font-weight:var(--fw-semibold);letter-spacing:var(--ls-wide);color:#ffffffd9;background:#ffffff14;border:1px solid #ffffff1f;align-items:center;gap:.4rem;width:-moz-fit-content;width:fit-content;padding:.35rem .8rem;display:inline-flex}.login-aside h2{font-family:var(--font-display);font-size:var(--fs-4xl);font-weight:var(--fw-black);letter-spacing:var(--ls-tight);line-height:var(--lh-tight);color:#fff;text-wrap:balance;text-shadow:0 2px 20px #0000004d;margin:0}.login-aside-accent{background:linear-gradient(135deg,#a78bfa 0%,#818cf8 50%,#60a5fa 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.login-aside-hero p{font-size:var(--fs-lg);line-height:var(--lh-base);color:#ffffffb3;max-width:44ch;margin:0}.login-aside-features{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.login-aside-features li{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);-webkit-backdrop-filter:blur(8px);border-radius:var(--radius-md);font-size:var(--fs-base);font-weight:var(--fw-medium);color:#ffffffe0;background:#ffffff0a;border:1px solid #ffffff14;display:flex}.login-aside-features svg{color:#a78bfa;flex-shrink:0}.login-aside-footer{font-size:var(--fs-xs);color:#fff6;font-weight:var(--fw-medium)}.login-main{padding:var(--space-6) var(--space-4);background:var(--color-bg);justify-content:center;align-items:center;display:flex;position:relative}.login-card{gap:var(--space-6);flex-direction:column;width:100%;max-width:420px;animation:.6s cubic-bezier(.16,1,.3,1) login-card-in;display:flex}@keyframes login-card-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.login-card-header{text-align:center;align-items:center;gap:var(--space-3);flex-direction:column;display:flex}.login-card-icon{background:radial-gradient(circle at 30% 30%, #a78bfa66 0%, transparent 60%), var(--color-accent-grad);color:#fff;border-radius:var(--radius-lg);width:64px;height:64px;margin-bottom:var(--space-1);justify-content:center;align-items:center;display:inline-flex;position:relative;box-shadow:0 14px 32px #4f46e566,inset 0 1px #ffffff2e,inset 0 -1px #00000014}.login-card-icon:before{content:"";border-radius:calc(var(--radius-lg) + 2px);background:var(--color-accent-grad);opacity:.25;filter:blur(8px);z-index:-1;position:absolute;inset:-2px}.login-card-header h1{font-family:var(--font-display);font-size:var(--fs-2xl);font-weight:var(--fw-bold);letter-spacing:var(--ls-tight);color:var(--color-text);text-wrap:balance;margin:0}.login-card-header p{font-size:var(--fs-base);color:var(--color-text-soft);line-height:var(--lh-base);max-width:36ch;margin:0}.login-form{gap:var(--space-4);flex-direction:column;display:flex}.login-field{flex-direction:column;gap:.5rem;display:flex;position:relative}.login-field label{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--color-text);letter-spacing:-.005em}.login-input-wrap{align-items:center;display:flex;position:relative}.login-input-icon{left:var(--space-3);color:var(--color-text-muted);pointer-events:none;transition:color var(--t-base);z-index:1;position:absolute}.login-input-action{right:var(--space-2);border-radius:var(--radius-sm);width:32px;height:32px;color:var(--color-text-muted);cursor:pointer;transition:all var(--t-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute}.login-input-action:hover{background:var(--color-surface-2);color:var(--color-text)}.login-field input{width:100%;padding:.75rem var(--space-4) .75rem 2.75rem;border:1.5px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);font-size:var(--fs-base);color:var(--color-text);transition:all var(--t-base);outline:none;min-height:48px;font-family:inherit}.login-field input::placeholder{color:var(--color-text-muted)}.login-field input:hover{border-color:var(--color-border-strong)}.login-field input:focus{border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.login-field:focus-within .login-input-icon{color:var(--color-accent)}.login-field.has-error input{border-color:var(--color-danger);background:#fef2f2}.login-field.has-error .login-input-icon{color:var(--color-danger)}.login-field.has-error input:focus{box-shadow:var(--shadow-focus-danger)}.login-field input[type=password],.login-field input[type=text]{padding-right:2.75rem}.login-error-msg{border-radius:var(--radius-md);color:var(--color-danger-soft);font-size:var(--fs-sm);font-weight:var(--fw-medium);background:#fef2f2;border:1px solid #fecaca;align-items:center;gap:.4rem;padding:.65rem .85rem;animation:.4s login-shake;display:flex}.login-error-msg svg{color:var(--color-danger);flex-shrink:0}@keyframes login-shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.login-submit{justify-content:center;align-items:center;gap:var(--space-2);background:var(--color-accent-grad);color:#fff;border-radius:var(--radius-md);font-size:var(--fs-base);font-weight:var(--fw-semibold);cursor:pointer;transition:all var(--t-base);letter-spacing:-.005em;min-height:50px;margin-top:var(--space-1);border:none;padding:.85rem 1.25rem;font-family:inherit;display:inline-flex;box-shadow:0 8px 20px #4f46e552}.login-submit:hover:not(:disabled){filter:brightness(1.06);transform:translateY(-2px);box-shadow:0 12px 28px #4f46e56b}.login-submit:active:not(:disabled){transform:translateY(0)scale(.98)}.login-submit:disabled{opacity:.65;cursor:not-allowed;transform:none}.login-card-footer{text-align:center;font-size:var(--fs-xs);color:var(--color-text-muted);padding-top:var(--space-3);border-top:1px solid var(--color-border);line-height:var(--lh-base)}.login-spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:18px;height:18px;animation:.7s linear infinite login-spin}@keyframes login-spin{to{transform:rotate(360deg)}}@media (max-width:640px){.login-main{padding:var(--space-4);padding-top:var(--space-12);align-items:flex-start}.login-card{gap:var(--space-5)}.login-card-icon{width:56px;height:56px}.login-card-header h1{font-size:var(--fs-xl)}}@media (min-width:641px) and (max-width:1023px){.login-main{padding:var(--space-8)}}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.route-fallback{justify-content:center;align-items:center;width:100%;min-height:100vh;display:flex}.route-fallback-spinner{border:3px solid #0f172a1a;border-top-color:#005faa;border-radius:50%;width:32px;height:32px;animation:.8s linear infinite route-fallback-spin}@keyframes route-fallback-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.route-fallback-spinner{animation-duration:1.5s}}
