@import"https://fonts.googleapis.com/css2?family=Archivo+Black&family=Space+Grotesk:wght@400;500;700&display=swap";:root{--ink: #16130f;--paper: #efe4cf;--paper-strong: #fff7e7;--iron: #1c1f1e;--diesel: #c94924;--safety: #f2bc2f;--green: #2f8c5b;--blue: #2563eb;--line: rgba(22, 19, 15, .13);--line-light: rgba(22, 19, 15, .07);--shadow-sm: 0 2px 10px rgba(22, 19, 15, .07);--shadow-md: 0 8px 28px rgba(22, 19, 15, .13);--radius: 20px;--sidebar-w: 240px;--topbar-h: 56px;font-family:Space Grotesk,Trebuchet MS,sans-serif;color:var(--ink)}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 8% 8%,rgba(242,188,47,.26),transparent 28rem),linear-gradient(135deg,rgba(201,73,36,.09),transparent 38%),repeating-linear-gradient(90deg,rgba(22,19,15,.025) 0 1px,transparent 1px 24px),var(--paper)}h1,h2,h3,h4,p{margin-top:0}button,input,select,textarea{font:inherit}.app-layout{display:flex;min-height:100vh}.sidebar{position:fixed;top:0;left:0;z-index:40;display:flex;flex-direction:column;width:var(--sidebar-w);height:100vh;background:var(--iron);color:var(--paper-strong);overflow:hidden;transition:transform .3s cubic-bezier(.4,0,.2,1)}.sidebar-brand{display:flex;align-items:center;gap:.75rem;padding:1.1rem 1rem;border-bottom:1px solid rgba(255,247,231,.07)}.brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--diesel);color:var(--paper-strong);font-family:Archivo Black,Impact,sans-serif;font-size:.9rem;flex-shrink:0}.brand-text{flex:1;display:grid;gap:.06rem;min-width:0}.brand-name{display:block;font-size:.93rem;font-weight:700;white-space:nowrap}.brand-sub{display:block;font-size:.67rem;color:#fff7e76b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-close{display:none;align-items:center;justify-content:center;width:auto;padding:.4rem;border:none;border-radius:8px;background:transparent;color:#fff7e78c;cursor:pointer;flex-shrink:0}.sidebar-close:hover{background:#fff7e71a}.sidebar-nav{flex:1;display:flex;flex-direction:column;gap:.22rem;padding:1rem .7rem;overflow-y:auto}.sidebar-item{display:flex;align-items:center;gap:.7rem;width:100%;border:none;border-radius:12px;background:transparent;color:#fff7e794;padding:.7rem .85rem;text-align:left;font-size:.9rem;font-weight:500;cursor:pointer;transition:background .15s,color .15s}.sidebar-item:hover{background:#fff7e712;color:var(--paper-strong)}.sidebar-item.is-active{background:var(--diesel);color:var(--paper-strong);font-weight:700}.sidebar-item svg{flex-shrink:0}.sidebar-footer{border-top:1px solid rgba(255,247,231,.07);padding:1rem}.session-form{display:grid;gap:.5rem}.session-disconnected{display:flex;align-items:center;gap:.5rem;margin-bottom:.35rem;color:#fff7e76b;font-size:.74rem;font-weight:700}.session-form input{width:100%;background:#fff7e712;border:1px solid rgba(255,247,231,.1);border-radius:10px;color:var(--paper-strong);padding:.58rem .78rem;font-size:.83rem;outline:none}.session-form input::placeholder{color:#fff7e74d}.session-form input:focus{border-color:var(--diesel);box-shadow:0 0 0 3px #c9492433}.session-form button{display:flex;align-items:center;justify-content:center;gap:.4rem;width:100%;border:none;border-radius:10px;background:var(--diesel);color:var(--paper-strong);padding:.58rem;font-size:.83rem;font-weight:700;cursor:pointer;transition:background .15s,transform .15s}.session-form button:hover:not(:disabled){background:#b03d1f;transform:translateY(-1px)}.session-form button:disabled{opacity:.6;cursor:wait}.session-connected{display:flex;align-items:center;gap:.65rem}.session-connected svg{color:#4ade80;flex-shrink:0}.session-connected>div{display:grid;gap:.04rem}.session-connected p{margin:0;font-size:.65rem;color:#fff7e76b;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.session-connected strong{font-size:.82rem;color:var(--paper-strong)}.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:.85rem;height:var(--topbar-h);padding:0 1.5rem;background:#efe4cfe0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.hamburger{display:none;align-items:center;justify-content:center;width:auto;padding:.45rem;border:none;border-radius:9px;background:transparent;color:var(--ink);cursor:pointer;flex-shrink:0}.hamburger:hover{background:#16130f14}.topbar-brand{display:none;align-items:center;gap:.5rem;flex-shrink:0}.topbar-mark{display:grid;place-items:center;width:28px;height:28px;border-radius:7px;background:var(--diesel);color:#fff;font-family:Archivo Black,Impact,sans-serif;font-size:.72rem}.topbar-name{font-size:.9rem;font-weight:700}.topbar-search{position:relative;display:block;flex:1;max-width:500px;margin-left:auto}.topbar-search svg{position:absolute;left:.78rem;top:50%;transform:translateY(-50%);color:#16130f61;pointer-events:none}.topbar-search input{width:100%;border:1px solid var(--line);border-radius:999px;background:#fff7e7cc;padding:.5rem .9rem .5rem 2.2rem;font-size:.87rem;outline:none;color:var(--ink);transition:border-color .15s,box-shadow .15s}.topbar-search input:focus{border-color:var(--diesel);box-shadow:0 0 0 3px #c949241f}.topbar-session{display:flex;align-items:center;flex-shrink:0}.connection-pill{display:inline-flex;align-items:center;gap:.4rem;border-radius:999px;padding:.34rem .66rem;font-size:.73rem;font-weight:700;white-space:nowrap}.connection-pill .dot{width:8px;height:8px;border-radius:999px;flex-shrink:0}.connection-pill.is-auth{background:#2f8c5b1f;color:var(--green)}.connection-pill.is-auth .dot{background:var(--green)}.connection-pill.is-guest{background:#f2bc2f33;color:#8a5c00}.connection-pill.is-guest .dot{background:#8a5c00}.connection-pill.is-offline{background:#c949241f;color:var(--diesel)}.connection-pill.is-offline .dot{background:var(--diesel)}.topbar-user,.topbar-offline{display:flex;align-items:center;gap:.38rem;border-radius:999px;padding:.38rem .7rem;font-size:.76rem;font-weight:700}.topbar-user{background:#2f8c5b1a;color:var(--green)}.topbar-offline{background:#16130f0f;color:#16130f73}.app-body{display:flex;flex-direction:column;flex:1;margin-left:var(--sidebar-w);min-width:0}.main-content{flex:1}.page-content{padding:1.5rem 1.75rem}.page-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.page-header-left{display:flex;align-items:center;gap:.75rem}.page-header-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#f2bc2f38;color:#8a5c00;flex-shrink:0}.page-title-text{font-size:1.45rem;font-weight:700;margin:0 0 .1rem}.page-subtitle{margin:0;font-size:.78rem;color:#16130f80;font-weight:700}.route-badge{display:flex;align-items:center;gap:.48rem;border:1px solid rgba(22,19,15,.2);border-radius:999px;background:var(--iron);color:var(--paper-strong);padding:.52rem 1rem;font-family:Archivo Black,Impact,sans-serif;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.route-badge svg{color:var(--safety)}.status-badge{display:inline-flex;align-items:center;border-radius:999px;padding:.2rem .6rem;font-size:.69rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.status-empty{background:#16130f0d;color:#16130f59}.status-available,.status-active{background:#d1fae5;color:#065f46}.status-on-trip{background:#fef3c7;color:#92400e}.status-maintenance,.status-blocked{background:#fee2e2;color:#991b1b}.status-draft{background:#16130f0f;color:#16130f8c}.status-submitted{background:#dbeafe;color:#1e40af}.status-cancelled,.status-inactive{background:#f3f4f6;color:#6b7280}.status-unknown{background:#16130f0d;color:#16130f59}.panel{display:grid;align-content:start;gap:1rem;border:1px solid var(--line);border-radius:var(--radius);background:#fff7e7d1;box-shadow:var(--shadow-sm);padding:1.15rem;animation:rise .38s ease both}.panel:nth-child(2){animation-delay:55ms}.panel:nth-child(3){animation-delay:.11s}.panel:nth-child(4){animation-delay:165ms}.dark-panel{background:var(--iron);color:var(--paper-strong)}.dark-panel .panel-title p{color:#fff7e775}.panel-title{display:flex;gap:.7rem;align-items:center;min-height:46px}.panel-title svg{width:30px;height:30px;flex-shrink:0;color:var(--diesel)}.dark-panel .panel-title svg{color:var(--safety)}.panel-title p{margin:0 0 .1rem;color:#16130f7a;font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.panel-title h3{margin:0;font-size:1.08rem;font-weight:700}label{display:grid;gap:.38rem;font-size:.73rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#16130f8f}input,select,textarea{display:block;width:100%;border:1px solid var(--line);border-radius:12px;background:#fff7e7cc;color:var(--ink);outline:none;padding:.7rem .82rem;font:inherit;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--diesel);box-shadow:0 0 0 3px #c949241c}textarea{min-height:84px;resize:vertical}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.panel>button{width:100%;border:none;border-radius:999px;background:var(--ink);color:var(--paper-strong);padding:.82rem;font-weight:700;font-size:.89rem;letter-spacing:.03em;cursor:pointer;transition:background .15s,transform .15s}.panel>button:hover:not(:disabled){background:var(--diesel);transform:translateY(-2px)}.panel>button:disabled{opacity:.6;cursor:wait}.dashboard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.metric-card{display:grid;gap:.38rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-strong);padding:1.15rem;box-shadow:var(--shadow-sm);animation:rise .38s ease both}.metric-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;margin-bottom:.15rem}.metric-yellow .metric-icon{background:#f2bc2f2e;color:#8a5c00}.metric-diesel .metric-icon{background:#c949241a;color:var(--diesel)}.metric-green .metric-icon{background:#2f8c5b1a;color:var(--green)}.metric-blue .metric-icon{background:#2563eb17;color:var(--blue)}.metric-label{margin:0;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#16130f7a}.metric-value{display:block;font-family:Archivo Black,Impact,sans-serif;font-size:clamp(1.75rem,2.5vw,2.6rem);letter-spacing:-.05em;line-height:1}.metric-note{font-size:.74rem;color:#16130f75;font-weight:700}.chart-panel,.activity-panel{grid-column:span 2}.bar-chart{display:grid;gap:.72rem}.bar-row{display:grid;grid-template-columns:100px 1fr 36px;gap:.6rem;align-items:center}.bar-row span,.bar-row strong{font-size:.83rem;font-weight:700}.dark-panel .bar-row span,.dark-panel .bar-row strong{color:var(--paper-strong)}.bar-track{height:11px;overflow:hidden;border-radius:999px;background:#16130f17}.dark-panel .bar-track{background:#fff7e71a}.bar-fill{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--diesel),var(--safety));transition:width .58s cubic-bezier(.4,0,.2,1)}.mini-timeline{display:grid;gap:.6rem}.timeline-row{display:grid;grid-template-columns:80px 1fr auto;gap:.6rem;align-items:center;border-bottom:1px solid var(--line-light);padding-bottom:.6rem;font-size:.82rem;font-weight:700}.timeline-row em{font-style:normal;color:#16130f80}.ops-strip{display:flex;flex-wrap:wrap;gap:.48rem;margin-top:.3rem}.ops-strip span{border-radius:999px;background:#c9492412;color:var(--diesel);padding:.42rem .7rem;font-size:.74rem;font-weight:700}.workbench-grid,.map-grid{display:grid;grid-template-columns:minmax(280px,360px) 1fr;gap:1rem}.map-grid{grid-template-columns:1.25fr .75fr}.create-panel{position:sticky;top:calc(var(--topbar-h) + 16px)}.table-panel{min-width:0}.table-wrap{overflow:auto}table{width:100%;min-width:500px;border-collapse:collapse}th,td{border-bottom:1px solid var(--line-light);padding:.78rem .68rem;text-align:left;vertical-align:middle}th{color:#16130f7a;font-size:.69rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}tbody tr{transition:background .13s}tbody tr:hover{background:#f2bc2f12}td:first-child{font-weight:700}.table-empty{margin:.9rem 0 0;color:#16130f7a;font-size:.84rem;font-weight:700}.route-text{display:inline-flex;align-items:center;gap:.32rem;font-weight:700;font-size:.84rem}.map-panel{background:var(--iron);color:var(--paper-strong)}.map-canvas{position:relative;min-height:440px;overflow:hidden;border-radius:14px;background:radial-gradient(circle at 34% 32%,rgba(242,188,47,.12),transparent 14rem),radial-gradient(circle at 70% 68%,rgba(201,73,36,.12),transparent 13rem),#1b1d1c}.map-gridlines{position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(0deg,rgba(255,247,231,.055) 0 1px,transparent 1px 48px),repeating-linear-gradient(90deg,rgba(255,247,231,.055) 0 1px,transparent 1px 48px);-webkit-mask-image:radial-gradient(circle,black 48%,transparent 78%);mask-image:radial-gradient(circle,black 48%,transparent 78%)}.map-pin{position:absolute;display:flex;align-items:center;gap:.32rem;border-radius:999px;background:var(--safety);color:var(--ink);padding:.4rem .62rem;font-size:.7rem;font-weight:900;box-shadow:0 8px 22px #00000047;transform:translate(-50%,-50%);white-space:nowrap;cursor:default}.map-pin.status-on-trip{background:var(--diesel);color:var(--paper-strong)}.map-pin.status-maintenance,.map-pin.status-blocked{background:#6f7370;color:var(--paper-strong)}.map-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.7rem;color:#fff7e74d;font-size:.86rem;font-weight:700}.toast-stack{position:fixed;bottom:1.5rem;right:1.5rem;z-index:100;display:flex;flex-direction:column;gap:.5rem;pointer-events:none;width:300px}.toast{display:flex;align-items:center;gap:.58rem;border-radius:14px;padding:.75rem .95rem;font-size:.84rem;font-weight:700;box-shadow:var(--shadow-md);animation:toast-in .28s cubic-bezier(.34,1.56,.64,1) both}.toast-success{background:var(--paper-strong);color:var(--green);border-left:4px solid var(--green)}.toast-error{background:var(--paper-strong);color:var(--diesel);border-left:4px solid var(--diesel)}.toast svg{flex-shrink:0}.toast span{color:var(--ink)}.app-footer{display:flex;align-items:center;gap:.5rem;padding:.82rem 1.75rem;border-top:1px solid var(--line);color:#16130f7a;font-size:.76rem;font-weight:700}.app-footer svg{color:var(--green);flex-shrink:0}.empty-msg{color:#16130f70;font-size:.84rem;font-weight:700;margin:0}.dark-panel .empty-msg{color:#fff7e759}tbody tr{cursor:default}tbody tr:hover{background:#f2bc2f14}.row-actions{display:flex;flex-wrap:wrap;gap:.45rem}.table-action{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;width:auto;min-height:32px;border:1px solid var(--line);border-radius:999px;background:var(--paper-strong);color:var(--ink);padding:.35rem .62rem;font-size:.74rem;font-weight:800;text-decoration:none}.table-action:hover{background:var(--safety);transform:translateY(-1px)}.table-link{color:var(--diesel)}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;display:flex;justify-content:flex-end;background:#16130f70;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fade-in .18s ease both}.record-drawer{width:min(520px,100vw);height:100vh;overflow:auto;border-left:2px solid var(--ink);background:radial-gradient(circle at 0 0,rgba(242,188,47,.22),transparent 18rem),var(--paper);box-shadow:-28px 0 70px #16130f47;animation:drawer-in .24s ease both}.drawer-head{position:sticky;top:0;z-index:1;display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--line);background:#fff7e7eb;padding:1.15rem;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.drawer-head p{margin:0 0 .22rem;color:var(--diesel);font-size:.72rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.drawer-head h2{margin:0 0 .35rem;font-family:Archivo Black,Impact,sans-serif;font-size:1.8rem;letter-spacing:-.06em}.drawer-head code{color:#16130f8c;font-size:.78rem}.drawer-close{width:38px;height:38px;padding:0;border-radius:13px}.drawer-form{display:grid;gap:1rem;padding:1.15rem}.drawer-actions{display:grid;grid-template-columns:1fr auto;gap:.75rem;align-items:center;margin-top:.4rem}.desk-open{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border:1px solid var(--line);border-radius:999px;color:var(--diesel);padding:.82rem 1rem;font-weight:900;text-decoration:none}.desk-open:hover{background:#c949241a}.sidebar-overlay{display:none}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-in{0%{opacity:0;transform:translate(22px) scale(.95)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes drawer-in{0%{opacity:0;transform:translate(36px)}to{opacity:1;transform:translate(0)}}@media(max-width:1080px){.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-panel,.activity-panel{grid-column:auto}}@media(max-width:900px){:root{--sidebar-w: 0px}.sidebar{width:260px;transform:translate(-100%)}.sidebar.is-open{transform:translate(0)}.sidebar-close{display:flex}.sidebar-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:35;background:#16130f75;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade-in .18s ease both}.app-body{margin-left:0}.hamburger,.topbar-brand{display:flex}.workbench-grid,.map-grid{grid-template-columns:1fr}.create-panel{position:static}}@media(max-width:640px){.page-content{padding:1rem}.topbar{padding:0 1rem}.connection-pill{display:none}.dashboard-grid{grid-template-columns:1fr 1fr}.two-col{grid-template-columns:1fr}.toast-stack{width:calc(100vw - 2rem);right:1rem}.drawer-actions{grid-template-columns:1fr}}@media(max-width:420px){.dashboard-grid{grid-template-columns:1fr}.route-badge{display:none}}
