@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,300;0,400;0,500;0,600;1,400&family=IBM+Plex+Mono:wght@400;500&display=swap");:root{--red:#e50914;--red-dark:#b20710;--red-light:#fff0f0;--red-mid:rgba(229,9,20,.12);--page-bg:#f2f2f2;--sidebar-bg:#1a1a1a;--sidebar-text:hsla(0,0%,100%,.75);--sidebar-muted:hsla(0,0%,100%,.35);--header-bg:#fff;--surface:#fff;--surface-2:#f7f7f7;--surface-3:#eee;--surface-4:#e5e5e5;--border:#e0e0e0;--border-hover:#bdbdbd;--border-focus:#e50914;--text-primary:#1a1a1a;--text-secondary:#555;--text-muted:#909090;--text-inverse:#fff;--green:#1a7f4b;--green-bg:#ebf8f0;--green-border:#a8dfc0;--amber:#b45309;--amber-bg:#fef3c7;--amber-border:#fcd34d;--blue:#1d5fa8;--blue-bg:#eff6ff;--blue-border:#bfdbfe;--purple:#6d28d9;--purple-bg:#f5f3ff;--purple-border:#ddd6fe;--danger:#dc2626;--danger-bg:#fef2f2;--danger-border:#fecaca;--sans:"IBM Plex Sans",system-ui,sans-serif;--mono:"IBM Plex Mono",monospace;--sidebar-w:220px;--header-h:52px;--radius:6px;--radius-sm:4px;--shadow-sm:0 1px 3px rgba(0,0,0,.08),0 1px 2px rgba(0,0,0,.04);--shadow-md:0 4px 12px rgba(0,0,0,.08),0 2px 4px rgba(0,0,0,.04);--shadow-lg:0 12px 32px rgba(0,0,0,.12),0 4px 8px rgba(0,0,0,.06)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{background:var(--page-bg);color:var(--text-primary);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body,button,html,input,select,textarea{font-family:var(--sans)}a{color:var(--red);text-decoration:none}a:hover{text-decoration:underline}.skip-link{position:fixed;top:8px;left:8px;z-index:300;background:var(--blue);color:#fff;padding:8px 12px;border-radius:var(--radius-sm);transform:translateY(-130%)}.skip-link:focus{transform:translateY(0)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--surface-3)}::-webkit-scrollbar-thumb{background:var(--border-hover);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInLeft{0%{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:translateX(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(1.08)}}.animate-fade{animation:fadeIn .2s ease both}.animate-slide{animation:slideInLeft .2s ease both}.animate-scale{animation:scaleIn .15s ease both}.delay-1{animation-delay:.04s}.delay-2{animation-delay:.08s}.delay-3{animation-delay:.12s}.delay-4{animation-delay:.16s}.delay-5{animation-delay:.2s}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.04em;white-space:nowrap}.badge-red{background:var(--red-light);color:var(--red);border:1px solid rgba(229,9,20,.2)}.badge-green{background:var(--green-bg);color:var(--green);border:1px solid var(--green-border)}.badge-amber{background:var(--amber-bg);color:var(--amber);border:1px solid var(--amber-border)}.badge-blue{background:var(--blue-bg);color:var(--blue);border:1px solid var(--blue-border)}.badge-purple{background:var(--purple-bg);color:var(--purple);border:1px solid var(--purple-border)}.badge-grey{background:var(--surface-3);color:var(--text-secondary)}.badge-grey,.card{border:1px solid var(--border)}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:box-shadow .15s ease,border-color .15s ease,background .15s ease}.card:hover{box-shadow:var(--shadow-md)}.input{width:100%;padding:8px 12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:14px;font-family:var(--sans);outline:none;transition:border-color .15s}.input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px rgba(229,9,20,.08)}.input::placeholder{color:var(--text-muted)}.btn-primary{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:var(--red);color:#fff;border:none;border-radius:var(--radius-sm);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s ease,box-shadow .15s ease,opacity .15s ease;white-space:nowrap}.btn-primary:hover{background:var(--red-dark);box-shadow:var(--shadow-sm)}.btn-secondary{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:var(--surface);color:var(--text-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease;white-space:nowrap}.btn-secondary:hover{border-color:var(--border-hover);color:var(--text-primary);background:var(--surface-2)}.btn-ghost{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;background:transparent;color:var(--text-muted);border:none;border-radius:var(--radius-sm);font-size:13px;cursor:pointer;transition:all .15s ease}.btn-ghost:hover{background:var(--surface-3);color:var(--text-secondary)}.btn-danger{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger-border);border-radius:var(--radius-sm);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease}.btn-danger:hover{background:var(--danger);color:#fff}button:disabled,input:disabled,select:disabled,textarea:disabled{opacity:.55;cursor:not-allowed}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.divider{border:none;border-top:1px solid var(--border);margin:0}.section-label{font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.1em;color:var(--text-muted);text-transform:uppercase}.status-dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex-shrink:0}@keyframes spin{to{transform:rotate(1turn)}}@property --stripe1-pos{syntax:"<percentage>";inherits:false;initial-value:0}@property --stripe2-pos{syntax:"<percentage>";inherits:false;initial-value:0}@property --stripe3-pos{syntax:"<percentage>";inherits:false;initial-value:0}@property --stripe4-pos{syntax:"<percentage>";inherits:false;initial-value:0}@property --stripe5-pos{syntax:"<percentage>";inherits:false;initial-value:0}.login-animated-bg{position:relative;overflow:hidden;background:linear-gradient(160deg,#000,#0a0a0a);isolation:isolate;--stripe1-pos:0%;--stripe2-pos:0%;--stripe3-pos:0%;--stripe4-pos:0%;--stripe5-pos:0%}.login-animated-bg:after,.login-animated-bg:before{content:"";position:absolute;inset:-25%;z-index:0}.login-animated-bg:before{background-image:repeating-linear-gradient(90deg,rgba(229,9,20,.55),rgba(229,9,20,.5) 50px,rgba(229,9,20,.25) 90px,transparent 140px,transparent 280px,rgba(229,9,20,.35) 330px,rgba(120,20,20,.45) 420px,transparent 480px,transparent 600px),repeating-linear-gradient(90deg,transparent,transparent 90px,rgba(200,30,30,.4) 150px,rgba(50,50,200,.3) 240px,transparent 310px,transparent 450px,rgba(150,40,40,.35) 520px,transparent 590px,transparent 680px),repeating-linear-gradient(90deg,rgba(180,25,25,.35),rgba(180,25,25,.35) 60px,transparent 120px,transparent 210px,rgba(70,70,180,.3) 270px,rgba(200,30,30,.4) 350px,transparent 420px,transparent 560px,rgba(140,35,35,.32) 630px,transparent 700px),repeating-linear-gradient(90deg,transparent,transparent 110px,rgba(160,30,30,.38) 180px,transparent 260px,transparent 380px,rgba(60,60,170,.28) 450px,rgba(190,25,25,.35) 540px,transparent 620px,transparent 730px),repeating-linear-gradient(90deg,rgba(210,20,20,.33),rgba(210,20,20,.33) 70px,transparent 130px,transparent 250px,rgba(170,30,30,.38) 320px,rgba(80,80,190,.25) 410px,transparent 480px,transparent 620px,rgba(150,35,35,.34) 690px,transparent 760px);background-size:800px 100%,900px 100%,850px 100%,950px 100%,880px 100%;background-position:var(--stripe1-pos) 0,var(--stripe2-pos) 0,var(--stripe3-pos) 0,var(--stripe4-pos) 0,var(--stripe5-pos) 0;filter:blur(35px);mix-blend-mode:screen;opacity:.75;animation:login-curtain-flow 60s linear infinite}.login-animated-bg:after{background:radial-gradient(ellipse 70% 70% at 50% 50%,transparent 30%,rgba(0,0,0,.7) 100%);mix-blend-mode:multiply;opacity:.6;pointer-events:none}.login-animated-bg>*{position:relative;z-index:1}@keyframes login-curtain-flow{0%{--stripe1-pos:0%;--stripe2-pos:0%;--stripe3-pos:0%;--stripe4-pos:0%;--stripe5-pos:0%}to{--stripe1-pos:100%;--stripe2-pos:-100%;--stripe3-pos:150%;--stripe4-pos:-80%;--stripe5-pos:120%}}@keyframes logoReveal{0%{opacity:0;transform:scale(.8)}20%{opacity:1;transform:scale(1)}80%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.1)}}.animate-logo-reveal{animation:logoReveal 3.5s ease-in-out forwards}@media print{.btn-danger,.btn-ghost,.btn-primary,.btn-secondary,aside,header,nav{display:none!important}body,html,main{width:100%!important;max-width:none!important;background:#fff!important;color:#000!important}a[href]:after{content:" (" attr(href) ")";font-size:11px;color:#000}.card{box-shadow:none!important;border-color:#000!important;break-inside:avoid;page-break-inside:avoid}}@media (prefers-reduced-motion:reduce){.login-animated-bg:after,.login-animated-bg:before{animation-duration:.01ms!important;animation-iteration-count:1!important}.animate-logo-reveal{animation-duration:.01ms!important}}.btn-warning{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;border:1px solid var(--amber-border);border-radius:var(--radius-sm);background:var(--amber-bg);color:var(--amber);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s}.btn-warning:hover{background:var(--amber);color:#fff}.btn-danger:disabled,.btn-primary:disabled,.btn-secondary:disabled,.btn-warning:disabled{opacity:.6;cursor:not-allowed}.input-error{border-color:var(--danger)!important;box-shadow:0 0 0 2px rgba(220,38,38,.12)}.error-text{margin-top:4px;font-size:12px;color:var(--danger)}.required-mark{color:var(--danger);margin-left:4px}.table-scroll{overflow-x:auto}@keyframes toastSlideIn{0%{opacity:0;transform:translateX(36px)}to{opacity:1;transform:translateX(0)}}@keyframes toastFadeOut{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(16px)}}.toast-container{position:fixed;top:16px;right:16px;z-index:1300;display:grid;grid-gap:8px;gap:8px;width:min(360px,calc(100vw - 24px));pointer-events:none}.toast-item{display:grid;grid-template-columns:auto 1fr auto;align-items:center;grid-gap:10px;gap:10px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-lg);padding:10px 10px 10px 12px;pointer-events:auto}.toast-icon-wrap{width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:6px;flex-shrink:0}.toast-message{font-size:13px;line-height:1.4;color:var(--text-primary)}.toast-close{border:none;background:transparent;color:var(--text-muted);cursor:pointer;padding:2px;border-radius:4px;display:flex;align-items:center;justify-content:center}.toast-close:hover{background:var(--surface-3);color:var(--text-primary)}.toast-enter{animation:toastSlideIn .18s ease both}.toast-exit{animation:toastFadeOut .22s ease both}.toast-success{border-color:var(--green-border)}.toast-success .toast-icon-wrap{background:var(--green-bg)}.toast-success .toast-icon{color:var(--green)}.toast-error{border-color:var(--danger-border)}.toast-error .toast-icon-wrap{background:var(--danger-bg)}.toast-error .toast-icon{color:var(--danger)}.toast-warning{border-color:var(--amber-border)}.toast-warning .toast-icon-wrap{background:var(--amber-bg)}.toast-warning .toast-icon{color:var(--amber)}.toast-info{border-color:var(--blue-border)}.toast-info .toast-icon-wrap{background:var(--blue-bg)}.toast-info .toast-icon{color:var(--blue)}.confirm-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;padding:24px;z-index:1200}.confirm-dialog{width:100%;max-width:420px;background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-lg);padding:20px}.confirm-title{font-size:16px;font-weight:600;color:var(--text-primary);margin-bottom:8px}.confirm-message{font-size:13px;color:var(--text-secondary);line-height:1.5;margin-bottom:16px}.confirm-actions{display:flex;gap:8px;justify-content:flex-end}.confirm-variant-danger .confirm-title{color:var(--danger)}.confirm-variant-warning .confirm-title{color:var(--amber)}.confirm-variant-info .confirm-title{color:var(--blue)}@keyframes shimmer{0%{background-position:-220px 0}to{background-position:calc(220px + 100%) 0}}.skeleton{background:linear-gradient(90deg,var(--surface-3) 25%,#f8f8f8 37%,var(--surface-3) 63%);background-size:220px 100%;animation:shimmer 1.4s linear infinite;border-radius:var(--radius-sm)}.skeleton-card{height:108px;border:1px solid var(--border)}.skeleton-row-wrap{display:grid;grid-gap:8px;gap:8px}.skeleton-row{height:14px;width:100%}.skeleton-text-wrap{display:grid;grid-gap:8px;gap:8px}.skeleton-text{height:12px;width:100%}.skeleton-row.short,.skeleton-text.short{width:70%}.dashboard-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:12px;gap:12px}@media (max-width:1024px){.dashboard-shell{position:relative}.dashboard-sidebar{transform:translateX(-105%);transition:transform .2s ease;z-index:95!important}.dashboard-sidebar.open{transform:translateX(0)}.dashboard-main{margin-left:0!important;width:100%!important}.dashboard-content{max-width:100%!important;padding:20px!important}.dashboard-mobile-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:90}.dashboard-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.table-scroll table{min-width:760px}.responsive-form-row{flex-wrap:wrap!important}}@media (max-width:768px){body,html{font-size:13px}.btn-danger,.btn-primary,.btn-secondary,.btn-warning,button,input,select,textarea{min-height:44px}.dashboard-header{padding:0 12px!important}.dashboard-header-breadcrumb,.dashboard-role-badge{display:none!important}.dashboard-mobile-brand{display:inline-flex!important}.dashboard-stat-grid,.project-card-grid{grid-template-columns:1fr!important}.modal-card{width:100%!important;max-width:100%!important;max-height:100vh!important;height:100%!important;border-radius:0!important;margin:0!important}.confirm-overlay{padding:0}.confirm-dialog{border-radius:0;max-width:100%;min-height:100%;display:flex;flex-direction:column;justify-content:center}.toast-container{left:12px;right:12px;width:auto;top:12px}}:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:var(--radius-sm)}.touch-target{min-width:44px;min-height:44px}.skeleton{position:relative;overflow:hidden;background:var(--surface-3)}.skeleton:after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.45),transparent);animation:skeleton-shimmer 1.3s infinite}@keyframes skeleton-shimmer{to{transform:translateX(100%)}}[data-theme=dark]{--page-bg:#0f1115;--sidebar-bg:#0a0c10;--sidebar-text:hsla(0,0%,100%,.82);--sidebar-muted:hsla(0,0%,100%,.45);--header-bg:#151922;--surface:#1a1f29;--surface-2:#202635;--surface-3:#2a3141;--surface-4:#374054;--border:#323a49;--border-hover:#4b5670;--text-primary:#f3f5f9;--text-secondary:#ccd3e0;--text-muted:#96a1b7}@media (max-width:1024px){:root{--sidebar-w:280px}.dashboard-main-content{padding:18px!important}.desktop-only{display:none!important}}@media (max-width:768px){body,html{font-size:13px}.dashboard-main-content{padding:12px!important}.stack-on-mobile{flex-direction:column!important;align-items:stretch!important}.stack-on-mobile>*{width:100%!important}}.login-card{background:var(--surface);border-radius:var(--radius);box-shadow:0 25px 60px rgba(0,0,0,.5);padding:40px 32px 32px;max-width:420px;width:100%}.login-title{font-size:22px;font-weight:700;color:var(--text-primary);margin-bottom:6px}.login-subtitle{font-size:14px;color:var(--text-secondary);margin-bottom:4px}.login-pilot-badge{display:inline-block;margin-top:8px;font-size:11px;color:var(--text-muted);background:var(--surface-3);padding:2px 10px;border-radius:10px;font-weight:500}.login-label{display:block;font-size:13px;font-weight:500;color:var(--text-secondary);margin-bottom:6px}.login-input{width:100%;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-size:14px;font-family:inherit;outline:none;background:var(--surface);transition:border-color .15s,box-shadow .15s}.login-input:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(229,9,20,.1)}.login-input:disabled{opacity:.6;cursor:not-allowed}.login-input::placeholder{color:var(--text-muted)}.login-eye-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--text-muted);display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-sm);transition:color .15s,background .15s}.login-eye-toggle:hover{color:var(--text-secondary);background:var(--surface-3)}.login-btn{width:100%;padding:12px;background:var(--red);color:var(--text-inverse);border:none;border-radius:var(--radius);font-size:15px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:background .15s,opacity .15s}.login-btn:hover:not(:disabled){background:var(--red-dark)}.login-btn:disabled{opacity:.55;cursor:not-allowed}.login-forgot-btn{width:100%;margin-top:12px;background:none;border:none;font-size:13px;color:var(--text-muted);cursor:pointer;padding:6px 0;transition:color .15s}.login-forgot-btn:hover{color:var(--text-secondary)}.login-info-banner{padding:12px 16px;border-radius:var(--radius);margin-bottom:20px;font-size:13px;line-height:1.6}.login-info-banner--warning{color:var(--text-secondary)}.login-error-msg,.login-info-banner--warning{background:var(--danger-bg);border:1px solid var(--danger-border)}.login-error-msg{padding:10px 14px;border-radius:var(--radius);color:var(--danger);font-size:13px;margin-bottom:14px}.login-about-box{margin-top:20px;border:1px solid var(--border);background:var(--surface-2);border-radius:var(--radius);padding:12px 14px;font-size:12px;color:var(--text-secondary);line-height:1.5}.login-about-title{font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:4px;margin-bottom:4px}@media (max-width:480px){.login-card{padding:32px 20px 24px}}