:root{--ink: #1e2124;--ink-soft: #3a3f45;--paper: #ffffff;--line: #eeeeec;--line-strong: #dcdcd8;--muted: #9a9da1;--muted-ink: #5f636a;--accent: #3c565c;--accent-weak: #eef1f1;--st-transit: #b58a4d;--st-ready: #5e8a72;--st-repair: #a5624b;--st-idle: #a6a9ad;--radius: 5px;--sans: "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: ui-monospace, "SF Mono", "IBM Plex Mono", "JetBrains Mono", Menlo, Consolas, "Courier New", monospace;color:var(--ink);background:var(--paper);font-family:var(--sans);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--paper)}.mono,.readout{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:.01em}button{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--paper);color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;font:inherit;font-size:13px;font-weight:500;min-height:34px;padding:0 13px;transition:border-color .12s,color .12s,background .12s}button:hover{border-color:var(--accent);color:var(--accent)}button:active{transform:translateY(.5px)}button:disabled{color:var(--muted);border-color:var(--line);cursor:not-allowed;background:var(--paper)}label{color:var(--muted-ink);display:grid;font-size:12px;font-weight:500;gap:5px;letter-spacing:.01em}input,select,textarea{background:var(--paper);border:1px solid var(--line-strong);border-radius:var(--radius);color:var(--ink);font:inherit;font-size:14px;min-height:36px;min-width:0;padding:0 11px;transition:border-color .12s,box-shadow .12s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-weak)}.app-shell{display:grid;grid-template-columns:236px 1fr;min-height:100vh}.sidebar{background:var(--paper);border-right:1px solid var(--line);padding:20px 14px}.brand{align-items:center;display:flex;gap:11px;margin-bottom:26px;padding:0 4px}.brand-mark{align-items:center;background:var(--ink);border-radius:6px;color:var(--paper);display:flex;font-family:var(--mono);font-weight:500;font-size:15px;height:38px;width:38px;justify-content:center;letter-spacing:-.02em}.brand strong,.brand span{display:block}.brand strong{font-size:14px;font-weight:600;letter-spacing:.01em}.brand span{color:var(--muted);font-family:var(--mono);font-size:10.5px;margin-top:3px;letter-spacing:.04em}nav{display:grid;gap:2px}nav a,.nav-button{align-items:center;display:flex;gap:10px;border:0;border-left:2px solid transparent;border-radius:0 var(--radius) var(--radius) 0;color:var(--muted-ink);background:transparent;padding:10px 12px;min-height:40px;width:100%;justify-content:flex-start;font-size:13.5px;font-weight:500;cursor:pointer}nav a:hover,.nav-button:hover{background:#f6f6f5;color:var(--ink);border-color:transparent}nav a.active,.nav-button.active{background:var(--accent-weak);color:var(--ink);border-left-color:var(--accent);font-weight:600}.login-page{align-items:center;display:flex;min-height:100vh;justify-content:center;background:#fbfbfa}.login-card{background:var(--paper);border:1px solid var(--line-strong);border-radius:8px;display:grid;gap:14px;padding:26px;width:min(400px,calc(100vw - 32px))}.login-card p,.login-card span{color:var(--muted-ink);font-size:13px}main{min-width:0;padding:24px 26px}.topbar{align-items:center;display:flex;justify-content:space-between;gap:18px;margin-bottom:18px}.topbar-left,.topbar-actions{align-items:center;display:flex;gap:14px;min-width:0}h1,h2,p{margin:0}h1{font-size:21px;font-weight:600;line-height:1.25;letter-spacing:.01em}.topbar p{color:var(--muted);font-family:var(--mono);font-size:11.5px;margin-top:6px;letter-spacing:.03em}.toolbar{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;margin-bottom:12px}.domain-switch{background:var(--paper);border:1px solid var(--line-strong);border-radius:7px;display:flex;gap:2px;padding:3px}.domain-switch button{border:0;background:transparent;color:var(--muted-ink);min-height:30px;padding:0 12px;font-weight:500}.domain-switch button:hover{color:var(--ink)}.domain-switch button.active{background:var(--accent);color:var(--paper)}.domain-switch button.active:hover{color:var(--paper)}.icon-button{aspect-ratio:1;padding:0;width:38px}.notice{align-items:center;background:var(--accent-weak);border:1px solid var(--line);border-left:2px solid var(--accent);border-radius:var(--radius);color:var(--ink-soft);display:flex;gap:10px;margin-bottom:18px;padding:11px 14px;font-size:13px}.muted{color:var(--muted);font-size:13px}.hint{color:var(--muted);font-family:var(--mono);font-size:11px;letter-spacing:.03em;margin-top:8px}.stats-grid{display:grid;gap:10px;grid-template-columns:repeat(6,minmax(0,1fr));margin-bottom:18px}.stats-grid.compact{grid-template-columns:repeat(4,minmax(0,1fr))}.stat,.panel,.data-table,.reference{background:var(--paper);border:1px solid var(--line);border-radius:8px}.stat{padding:14px 16px}.stat span{color:var(--muted);display:block;font-size:12px;letter-spacing:.02em}.stat strong{display:block;font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:27px;font-weight:500;line-height:1;margin-top:9px;letter-spacing:-.01em}.workspace-grid{display:grid;gap:12px;grid-template-columns:1.35fr .72fr .72fr .72fr;margin-bottom:18px}.panel{padding:16px}.panel.span{grid-column:span 2}.panel h2,.data-table h2,.reference h2{font-size:14px;font-weight:600;margin-bottom:12px;letter-spacing:.01em}.flow-actions{display:flex;flex-wrap:wrap;gap:8px}.form-row{display:grid;flex:1 1 100%;gap:10px;grid-template-columns:repeat(5,minmax(118px,1fr))}.form-grid{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(130px,1fr))}.form-grid button{align-self:end}.compact-input{min-width:118px}.compact-input.wide{min-width:180px}.stack{display:grid;gap:10px}.vehicle-list{display:grid;gap:0}.vehicle-row{align-items:center;border-top:1px solid var(--line);display:flex;justify-content:space-between;padding:10px 0}.vehicle-row:first-child{border-top:0}.state{align-items:center;display:inline-flex;gap:7px;background:transparent;border-radius:0;color:var(--muted-ink);font-size:12px;padding:0;letter-spacing:.01em}.state:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--muted);flex-shrink:0}.state-在途:before{background:var(--st-transit)}.state-维修中:before{background:var(--st-repair)}.state-空置:before{background:var(--st-ready)}.state-未启动车辆:before,.state-未启动:before{background:var(--st-idle)}.tables{display:grid;gap:14px;grid-template-columns:1fr}.content-grid{display:grid;gap:14px;margin-bottom:14px}.content-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.data-table{overflow:auto;padding:16px}table{border-collapse:collapse;min-width:920px;width:100%}th,td{border-bottom:1px solid var(--line);font-size:13px;padding:9px 10px;text-align:left;white-space:nowrap}tr:last-child td{border-bottom:0}th{color:var(--muted);font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase}td{color:var(--ink);font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:.01em}.warn-row{background:#fbf7ee}.danger{color:var(--st-repair);display:block;margin-top:8px;font-size:13px}.drawer{background:var(--paper);border-left:1px solid var(--line-strong);box-shadow:-20px 0 44px #1e21241a;bottom:0;display:grid;gap:14px;grid-auto-rows:max-content;max-width:min(540px,100vw);overflow:auto;padding:20px;position:fixed;right:0;top:0;width:520px;z-index:20}.drawer-head,.drawer-actions{align-items:center;display:flex;gap:10px;justify-content:space-between}.drawer section{border-bottom:1px solid var(--line);padding-bottom:12px}.drawer section:last-child{border-bottom:0}.drawer h3{font-size:12px;font-weight:500;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin:0 0 8px}.mini-panel{border:1px solid var(--line);border-radius:var(--radius);margin-top:10px;padding:10px 12px}.mini-panel strong{display:block;margin-bottom:8px;font-weight:600}.reference{margin-top:18px;padding:16px}.reference div{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px}.reference span{background:var(--paper);border:1px solid var(--line-strong);border-radius:var(--radius);color:var(--muted-ink);font-family:var(--mono);font-size:12px;padding:4px 9px}@media(max-width:960px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;border-right:0;border-bottom:1px solid var(--line)}.stats-grid,.workspace-grid,.form-row,.form-grid,.stats-grid.compact,.content-grid.two{grid-template-columns:1fr 1fr}.panel.span{grid-column:span 2}}@media(max-width:640px){main{padding:16px}.topbar{align-items:flex-start}.stats-grid,.workspace-grid,.form-row,.form-grid,.stats-grid.compact,.content-grid.two{grid-template-columns:1fr}.topbar,.topbar-left,.topbar-actions{align-items:flex-start;flex-direction:column}.drawer{width:100vw}.panel.span{grid-column:span 1}}
