@import "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Source+Sans+3:wght@400;500;600;700&display=swap";:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0a1324;--bg-grid:#4fdbc812;--bg-gradient-a:#3b82f62e;--bg-gradient-b:#4fdbc81f;--surface:#0e1729;--surface-low:#101e33;--surface-high:#1b2a42;--surface-accent:#11233e;--text:#e4e9f2;--muted:#9db0c7;--border:#2c3b54;--border-strong:#3c577a;--primary:#66c0ff;--accent:#4fdbc8;--primary-btn-text:#04181d;--ok:#4fdbc8;--warn:#fbbf24;--bad:#fca5a5;--shadow:0 10px 26px #03061173;--focus-ring:#4fdbc88c;--sidebar-width:260px;--topbar-height:64px}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#edf3fb;--bg-grid:#0f172a0f;--bg-gradient-a:#1e40af14;--bg-gradient-b:#0d948814;--surface:#f9fcff;--surface-low:#fff;--surface-high:#eef4fb;--surface-accent:#d8e6f7;--text:#122036;--muted:#4a6078;--border:#c4d5ea;--border-strong:#9ab2cf;--primary:#0f4db8;--accent:#0f766e;--primary-btn-text:#f5fffb;--ok:#0f766e;--warn:#b45309;--bad:#b42318;--shadow:0 10px 24px #0e1e391f;--focus-ring:#0f766e4d}*{box-sizing:border-box}html,body,#root{min-height:100%}body{color:var(--text);background-color:var(--bg);margin:0;font-family:"Source Sans 3",Segoe UI,sans-serif;position:relative;overflow-x:hidden}body:before,body:after{content:"";pointer-events:none;position:fixed;inset:0}body:before{background-image:radial-gradient(var(--bg-grid) .8px, transparent .8px);opacity:.45;z-index:-2;background-size:18px 18px}body:after{background:radial-gradient(900px 500px at 8% 4%, var(--bg-gradient-a), transparent 65%), radial-gradient(700px 400px at 92% 12%, var(--bg-gradient-b), transparent 68%), linear-gradient(170deg, #06101f38, transparent 30%);z-index:-3}a{color:inherit;text-decoration:none}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4,.brand-eyebrow,.topbar-brand,.page-header h2,.table-card h3,.stat-label,.role-pill,th{font-family:Space Grotesk,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}button,a,input,select,textarea{transition:border-color .18s,box-shadow .18s,background-color .18s,color .18s,transform .18s}button:disabled{opacity:.55;cursor:not-allowed}input,select,textarea{border:1px solid var(--border);background:color-mix(in srgb, var(--surface-low) 88%, transparent);color:var(--text);border-radius:6px;padding:.48rem .62rem}input[readonly]{background:color-mix(in srgb, var(--surface-high) 82%, transparent);color:var(--muted)}input::placeholder,textarea::placeholder{color:color-mix(in srgb, var(--muted) 72%, transparent)}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.primary-btn,.secondary-btn{border:1px solid var(--border-strong);cursor:pointer;letter-spacing:.03em;border-radius:6px;justify-content:center;align-items:center;gap:.35rem;min-height:2.2rem;padding:.46rem .82rem;display:inline-flex}.primary-btn{border-color:color-mix(in srgb, var(--accent) 70%, var(--border) 30%);background:linear-gradient(180deg, #ffffff17, transparent 50%), linear-gradient(180deg, color-mix(in srgb, var(--accent) 88%, #0f172a 12%), color-mix(in srgb, var(--accent) 76%, #0f172a 24%));color:var(--primary-btn-text);font-weight:700}.secondary-btn{background:color-mix(in srgb, var(--surface-high) 64%, transparent);color:var(--text)}.primary-btn:hover:not(:disabled),.secondary-btn:hover:not(:disabled){transform:translateY(-1px)}.primary-btn:hover:not(:disabled){filter:brightness(1.04)}.secondary-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.app-loading{min-height:100vh;color:var(--muted);place-items:center;display:grid}.portal-layout{grid-template-rows:var(--topbar-height) minmax(0, 1fr);height:100vh;display:grid;overflow:hidden}.topbar{z-index:40;min-height:var(--topbar-height);background:color-mix(in srgb, var(--surface) 92%, transparent);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);justify-content:space-between;align-items:center;gap:.8rem;padding:.55rem 1.1rem;display:flex;position:sticky;top:0}.topbar-main{align-items:center;gap:1.4rem;min-width:0;display:flex}.topbar-brand{letter-spacing:.01em;color:var(--accent);white-space:nowrap;font-size:clamp(1.15rem,2vw,1.6rem);font-weight:700;line-height:1.2}.top-nav{flex-wrap:wrap;align-items:center;gap:.2rem;display:flex}.top-nav-item{color:var(--muted);border-bottom:2px solid #0000;padding:.45rem .55rem;font-family:Space Grotesk,Segoe UI,sans-serif;font-size:.98rem;font-weight:600}.top-nav-item:hover{color:var(--text)}.top-nav-item.active{color:var(--accent);border-color:var(--accent)}.topbar-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.45rem;display:flex}.topbar-user-block{text-align:right;min-width:140px;display:grid}.topbar-label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:.72rem}.topbar-user{color:var(--text);font-size:.92rem;font-weight:600}.system-pill,.role-pill{border:1px solid var(--border);background:color-mix(in srgb, var(--surface-high) 70%, transparent);color:var(--muted);letter-spacing:.07em;text-transform:uppercase;border-radius:999px;align-items:center;gap:.38rem;padding:.28rem .58rem;font-size:.72rem;font-weight:700;display:inline-flex}.pulse-dot{background:var(--accent);width:.46rem;height:.46rem;box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 58%, transparent);border-radius:999px;animation:1.9s ease-out infinite pulse}@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 48%, transparent)}70%{box-shadow:0 0 0 8px #0000}to{box-shadow:0 0 #0000}}.portal-body{grid-template-columns:var(--sidebar-width) minmax(0, 1fr);min-height:0;display:grid;overflow:hidden}.portal-sidebar{background:color-mix(in srgb, var(--surface) 86%, transparent);border-right:1px solid var(--border);overscroll-behavior:contain;flex-direction:column;min-height:0;display:flex;overflow:hidden auto}.brand-block{border-bottom:1px solid var(--border);background:linear-gradient(150deg, color-mix(in srgb, var(--surface-high) 82%, transparent), color-mix(in srgb, var(--surface-low) 82%, transparent));padding:1rem .95rem}.brand-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:.72rem}.brand-block h2{margin-top:.2rem;font-size:1.86rem;line-height:1.07}.brand-status{color:var(--muted);align-items:center;gap:.4rem;margin-top:.45rem;font-size:.82rem;display:inline-flex}.main-nav{gap:.36rem;padding:.85rem .6rem;display:grid}.nav-item{color:color-mix(in srgb, var(--muted) 94%, #fff 6%);border:1px solid #0000;border-left-width:3px;border-radius:8px;gap:.08rem;padding:.52rem .62rem;display:grid}.nav-item strong{font-family:Space Grotesk,Segoe UI,sans-serif;font-size:.95rem;font-weight:600}.nav-item span{color:color-mix(in srgb, var(--muted) 90%, #fff 10%);font-size:.78rem;display:block}.nav-item.active{color:var(--text);border-color:color-mix(in srgb, var(--border) 72%, transparent);border-left-color:var(--accent);background:color-mix(in srgb, var(--surface-high) 70%, transparent)}.nav-item.active span{color:var(--muted)}.nav-item:hover{color:var(--text);border-color:color-mix(in srgb, var(--border) 72%, transparent);background:color-mix(in srgb, var(--surface-high) 50%, transparent)}.sidebar-footer{border-top:1px solid var(--border);color:var(--muted);gap:.42rem;margin-top:auto;padding:.75rem .9rem;font-size:.78rem;display:grid}.portal-main{background:linear-gradient(180deg, color-mix(in srgb, var(--bg) 88%, transparent), color-mix(in srgb, var(--bg) 100%, transparent));min-width:0;min-height:0;overflow:hidden auto}.content-area{min-height:100%;padding:1rem}.page-stack{gap:1rem;display:grid}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.8rem;display:flex}.page-header h2{letter-spacing:.01em;font-size:1.65rem;line-height:1.15}.page-header p{color:var(--muted);margin-top:.24rem}.toolbar-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.filter-row,.action-row,.topbar-actions{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.role-select,.text-input{min-height:2.2rem;padding:.38rem .58rem}.segmented-control{border:1px solid var(--border);background:color-mix(in srgb, var(--surface-low) 92%, transparent);border-radius:8px;display:inline-flex;overflow:hidden}.segmented-control button{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:.5rem .85rem;font-weight:700}.segmented-control button.active{color:var(--text);background:color-mix(in srgb, var(--surface-accent) 70%, transparent)}.filter-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.65rem;width:100%;display:grid}.filter-grid label,.detail-form label{color:var(--muted);gap:.25rem;font-size:.85rem;display:grid}.detail-form{gap:.72rem;padding:.95rem 1rem;display:grid}.detail-block{gap:.45rem;padding:.92rem 1rem;display:grid}.detail-block strong{color:var(--text)}.detail-list{gap:.2rem;margin:0;padding-left:1.15rem;display:grid}.detail-list li::marker{color:var(--accent)}.route-map-block{gap:.45rem;margin-top:.2rem;display:grid}.route-map-frame{border:1px solid var(--border);background:color-mix(in srgb, var(--surface-low) 90%, transparent);border-radius:8px;width:100%;min-height:260px}.depot-map-frame{min-height:360px}.route-map-link{width:fit-content;color:var(--primary);font-weight:600}.route-map-link:hover{color:var(--accent);text-decoration:underline}.detail-form-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.45rem;display:grid}.detail-form-grid label{color:var(--muted);gap:.2rem;min-width:0;font-size:.86rem;display:grid}.detail-form-grid .text-input,.detail-form-grid .role-select{width:100%;min-width:0}.checkbox-label,.detail-checkbox{align-items:center;gap:.45rem;color:var(--text)!important;display:inline-flex!important}.checkbox-label input,.detail-checkbox input{width:auto}.metrics-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;display:grid}.stat-card,.table-card,.auth-card{border:1px solid var(--border);background:linear-gradient(165deg, color-mix(in srgb, var(--surface-low) 95%, transparent), color-mix(in srgb, var(--surface) 90%, transparent));box-shadow:var(--shadow);border-radius:10px}.stat-card{padding:.86rem;position:relative;overflow:hidden}.stat-card-action{text-align:left;width:100%;color:inherit;border:1px solid var(--border);cursor:pointer;transition:transform .16s,border-color .16s,box-shadow .16s}.stat-card-action:hover{border-color:color-mix(in srgb, var(--accent) 50%, var(--border));box-shadow:0 6px 18px color-mix(in srgb, var(--accent) 14%, transparent);transform:translateY(-1px)}.stat-card:after{content:"";background-image:radial-gradient(var(--bg-grid) .75px, transparent .75px);opacity:.4;pointer-events:none;background-size:16px 16px;position:absolute;inset:0}.stat-label{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;z-index:1;font-size:.74rem;position:relative}.stat-value{z-index:1;margin-top:.3rem;font-family:Space Grotesk,Segoe UI,sans-serif;font-size:2rem;font-weight:700;line-height:1.08;position:relative}.stat-trend{color:var(--muted);z-index:1;margin-top:.25rem;font-size:.84rem;position:relative}.stat-trend.positive{color:var(--ok)}.stat-trend.warning{color:var(--warn)}.stat-trend.negative{color:var(--bad)}.table-card{transition:opacity .2s;position:relative;overflow:hidden}.table-card.loading .table-wrap{opacity:.6}.table-card-head{border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--surface-accent) 55%, transparent);padding:.85rem 1rem}.table-card-head-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.table-card-head h3{font-size:1.04rem;line-height:1.2}.table-card-head p{color:var(--muted);margin-top:.2rem;font-size:.84rem}.table-wrap{overflow-x:auto}.table-card-footer{border-top:1px solid var(--border);color:var(--muted);padding:.75rem 1rem}table{border-collapse:collapse;width:100%}th,td{border-bottom:1px solid color-mix(in srgb, var(--border) 86%, transparent);text-align:left;white-space:nowrap;padding:.66rem .82rem}th{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;background:color-mix(in srgb, var(--surface-high) 50%, transparent);font-size:.72rem}tbody tr{transition:background-color .16s}tbody tr:hover{background:color-mix(in srgb, var(--surface-high) 42%, transparent)}tbody tr:last-child td{border-bottom:0}.table-empty-hint{color:var(--muted);font-size:.84rem}.loading-overlay{pointer-events:none;background:linear-gradient(110deg, transparent 12%, color-mix(in srgb, var(--accent) 18%, transparent) 30%, transparent 44%);background-size:210% 100%;animation:1.15s linear infinite shimmer;position:absolute;inset:0}@keyframes shimmer{to{background-position-x:-210%}}.pagination-row{border-top:1px solid var(--border);color:var(--muted);justify-content:flex-end;align-items:center;gap:.7rem;padding:.74rem 1rem;font-size:.86rem;display:flex}.two-column-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1rem;display:grid}.directory-grid{align-items:start}.text-link{color:var(--primary);text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.text-link:hover{text-decoration:underline}.text-link.active-row{color:var(--accent);font-weight:700}.tag{letter-spacing:.04em;border:1px solid #0000;border-radius:999px;align-items:center;padding:.14rem .5rem;font-size:.72rem;font-weight:700;display:inline-flex}.tag.neutral{color:color-mix(in srgb, var(--muted) 78%, #fff 22%);background:color-mix(in srgb, var(--surface-high) 65%, transparent);border-color:color-mix(in srgb, var(--border) 66%, transparent)}.tag.success{color:color-mix(in srgb, var(--ok) 86%, #fff 14%);background:color-mix(in srgb, var(--ok) 18%, transparent);border-color:color-mix(in srgb, var(--ok) 48%, transparent)}.tag.warning{color:color-mix(in srgb, var(--warn) 88%, #fff 12%);background:color-mix(in srgb, var(--warn) 20%, transparent);border-color:color-mix(in srgb, var(--warn) 52%, transparent)}.tag.danger{color:color-mix(in srgb, var(--bad) 86%, #fff 14%);background:color-mix(in srgb, var(--bad) 20%, transparent);border-color:color-mix(in srgb, var(--bad) 46%, transparent)}.page-feedback{gap:.45rem;display:grid}.page-feedback-item{border:1px solid #0000;border-radius:8px;margin:0;padding:.6rem .75rem;font-size:.88rem}.page-feedback-item.error{color:color-mix(in srgb, var(--bad) 85%, #fff 15%);background:color-mix(in srgb, var(--bad) 15%, transparent);border-color:color-mix(in srgb, var(--bad) 40%, transparent)}.page-feedback-item.success{color:color-mix(in srgb, var(--ok) 86%, #fff 14%);background:color-mix(in srgb, var(--ok) 14%, transparent);border-color:color-mix(in srgb, var(--ok) 42%, transparent)}.form-error{color:var(--bad)}.form-success{color:var(--ok)}.auth-shell{place-items:center;min-height:100vh;padding:1rem;display:grid}.auth-card{background:linear-gradient(160deg, color-mix(in srgb, var(--surface-low) 92%, transparent), color-mix(in srgb, var(--surface) 90%, transparent));width:min(460px,100%);padding:1.1rem}.auth-subtitle{color:var(--muted);margin-top:.42rem}.auth-form{gap:.65rem;margin-top:.9rem;display:grid}.auth-form label{color:var(--muted);gap:.25rem;display:grid}.auth-form input{min-height:2.25rem;padding:.45rem .58rem}.auth-links{margin-top:.86rem}.auth-links a{color:var(--accent);font-weight:600}.auth-links a:hover{text-decoration:underline}.not-found-card{gap:.9rem;width:min(620px,100%);padding:1.7rem 1.8rem;display:grid}.not-found-card h1{font-size:clamp(1.45rem,2.8vw,2rem);line-height:1.15}.not-found-card .primary-btn{justify-self:start}.theme-toggle-btn{border:1px solid var(--border);background:color-mix(in srgb, var(--surface-high) 68%, transparent);color:var(--text);border-radius:8px;align-items:center;gap:.44rem;padding:.36rem .56rem;font-size:.76rem;display:inline-flex}.theme-toggle-btn:hover{border-color:var(--accent);color:var(--accent)}.theme-toggle-btn-state{letter-spacing:.07em;text-transform:uppercase;font-weight:700}.theme-toggle-btn-action{color:var(--muted)}.theme-toggle-btn:hover .theme-toggle-btn-action{color:inherit}.auth-theme-toggle{z-index:15;position:fixed;top:.9rem;right:1rem}@media (width<=1200px){.topbar-main{gap:.8rem}.topbar-actions{gap:.35rem}.topbar-user-block{min-width:110px}}@media (width<=980px){.portal-layout{grid-template-rows:auto minmax(0,1fr)}.topbar{flex-direction:column;align-items:flex-start;position:static}.topbar-main,.topbar-actions{width:100%}.topbar-actions{justify-content:flex-start}.topbar-user-block{text-align:left}.portal-body{grid-template-columns:1fr}.portal-sidebar{border-right:0;border-bottom:1px solid var(--border)}.main-nav{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.sidebar-footer{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=680px){.topbar{padding:.7rem .8rem}.topbar-brand{font-size:1.2rem}.top-nav-item{font-size:.84rem}.content-area{padding:.7rem}.table-card-head,.detail-form,.detail-block{padding-left:.74rem;padding-right:.74rem}th,td{padding:.58rem .62rem}.auth-theme-toggle{position:absolute;top:.6rem;right:.7rem}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.ai-chat-launcher{color:#fff;cursor:pointer;z-index:1000;background:#2563eb;border:none;border-radius:999px;width:58px;height:58px;font-weight:800;position:fixed;bottom:28px;right:28px;box-shadow:0 12px 30px #2563eb59}.ai-chat-window{z-index:1000;background:#fff;border-radius:16px;flex-direction:column;width:380px;height:540px;display:flex;position:fixed;bottom:28px;right:28px;overflow:hidden;box-shadow:0 22px 60px #0f172a40}.ai-chat-header{color:#fff;background:linear-gradient(135deg,#0ea5e9,#2563eb);justify-content:space-between;align-items:center;height:62px;padding:0 18px;display:flex}.ai-chat-header div{flex-direction:column;gap:2px;display:flex}.ai-chat-header span{opacity:.85;font-size:12px}.ai-chat-header button{color:#fff;cursor:pointer;background:0 0;border:none;font-size:28px}.ai-chat-body{background:#f8fafc;flex:1;padding:18px;overflow-y:auto}.ai-chat-info{text-align:center;color:#64748b;margin-bottom:14px;font-size:12px}.ai-chat-message{border-radius:14px;max-width:82%;margin-bottom:10px;padding:12px 14px;font-size:14px;line-height:1.4}.ai-chat-message.bot{color:#0f172a;background:#e5e7eb;border-top-left-radius:4px}.ai-chat-message.user{color:#fff;background:#2563eb;border-top-right-radius:4px;margin-left:auto}.ai-chat-input{background:#fff;border-top:1px solid #e5e7eb;gap:10px;padding:14px;display:flex}.ai-chat-input input{border:1px solid #cbd5e1;border-radius:10px;flex:1;padding:10px 12px;font-size:14px}.ai-chat-input button{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:999px;width:42px;height:42px;font-weight:700}
