.login-page[data-v-6b095214]{min-height:100vh;display:grid;place-items:center}.panel[data-v-6b095214]{width:320px;display:grid;gap:12px}.error[data-v-6b095214]{margin:0;color:#d33;font-size:13px}.intro[data-v-aafcfc0f]{margin:-6px 0 14px}h3[data-v-aafcfc0f]{margin:0 0 10px;font-size:14px}.links[data-v-aafcfc0f]{display:flex;flex-wrap:wrap;gap:8px}.links a[data-v-aafcfc0f]{color:#14312e;text-decoration:none;background:#f3f6f5;border:1px solid #d9e0dc;border-radius:6px;padding:6px 10px;font-size:13px}.links a[data-v-aafcfc0f]:hover{border-color:#0f5c56;color:#0f5c56}.page-desc[data-v-608534db]{color:#6b7280;font-size:14px;margin-bottom:16px}.panel-title[data-v-608534db]{font-size:15px;font-weight:600;color:#374151;margin-bottom:12px}.report-grid[data-v-608534db]{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}.report-card[data-v-608534db]{display:flex;align-items:center;justify-content:space-between;gap:8px;background:#f9fafb;border:1px solid #e5e7eb;color:#1f2933;padding:12px 14px;border-radius:8px;text-align:left;font-size:14px;cursor:pointer;transition:border-color .15s,background-color .15s,transform .15s}.report-card[data-v-608534db]:hover{background:#eff6ff;border-color:#93c5fd}.report-card[data-v-608534db]:active{transform:translateY(1px)}.report-name[data-v-608534db]{font-weight:500}.report-arrow[data-v-608534db]{color:#2563eb;font-size:16px;line-height:1}.notification-row[data-v-ba360386]{display:grid;grid-template-columns:1fr 3fr 60px;gap:12px;padding:12px 0;border-bottom:1px solid #e5e7eb}.setting-row[data-v-c2ec4871]{display:grid;grid-template-columns:1fr 3fr 80px;gap:12px;padding:10px 0;border-bottom:1px solid #e5e7eb}.tabs[data-v-59388197]{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.tabs button.active[data-v-59388197]{background:#111827}.form-row[data-v-59388197]{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:12px}.cell-pre[data-v-59388197]{max-width:420px;white-space:pre-wrap;font-size:12px}.tabs[data-v-6f6fec56]{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.tabs button.active[data-v-6f6fec56]{background:#111827}.form-row[data-v-6f6fec56]{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:12px}h3[data-v-6f6fec56]{margin:14px 0 8px}.portal[data-v-2456de0f]{min-height:100vh;background:#f6f7f9}header[data-v-2456de0f]{display:flex;justify-content:space-between;align-items:center;padding:20px 32px;background:#111827;color:#fff}main[data-v-2456de0f]{max-width:1100px;margin:0 auto;padding:24px}h1[data-v-2456de0f],h2[data-v-2456de0f]{margin:0}h2[data-v-2456de0f]{font-size:18px;margin-bottom:12px}.form-grid[data-v-2456de0f]{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}textarea[data-v-2456de0f]{grid-column:span 2;min-height:64px;border:1px solid #d1d5db;border-radius:6px;padding:10px}.bar[data-v-2456de0f]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.auth-panel[data-v-2456de0f]{max-width:760px}.form-row[data-v-75612d0a],.form-row[data-v-99bc4591]{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}.map-grid[data-v-99bc4591]{display:grid;grid-template-columns:1fr 1fr;gap:16px}.map-panel[data-v-99bc4591]{border:1px solid #e5e7eb;border-radius:8px;padding:12px}h3[data-v-99bc4591]{margin:0 0 10px}a[data-v-99bc4591]{color:#2563eb}.form-row[data-v-d10c7568]{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}.trace-grid[data-v-d10c7568]{display:grid;grid-template-columns:220px 1fr;gap:20px}img[data-v-d10c7568]{width:200px;height:200px;border:1px solid #e5e7eb;border-radius:8px}.form-row[data-v-86076258]{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}textarea[data-v-86076258]{width:100%;border:1px solid #d1d5db;border-radius:6px;padding:10px}.cell-pre[data-v-86076258]{max-width:420px;white-space:pre-wrap;font-size:12px}.report-buttons[data-v-8c84060e]{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.form-row[data-v-3344b631]{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}.confirm-box[data-v-3344b631]{border:1px solid #f59e0b;background:#fffbeb;border-radius:8px;padding:12px;margin-bottom:12px}.result-box[data-v-3344b631]{background:#f8fafc;border-radius:8px;padding:12px}*{box-sizing:border-box;margin:0}body{font-family:Noto Sans SC,PingFang SC,Source Han Sans SC,sans-serif;font-variant-numeric:tabular-nums;background:#e7ecea;color:#1c2830}.layout{display:grid;grid-template-columns:188px 1fr;height:100vh;overflow:hidden}.login-shell{min-height:100vh}aside{background:#17211f;color:#d7e0dc;padding:18px 12px;overflow-y:auto;display:flex;flex-direction:column}.brand{padding:0 8px 16px}.brand strong{display:block;font-size:15px;font-weight:650;letter-spacing:.02em;color:#f4f7f6}.brand span{display:block;margin-top:4px;color:#8ea099;font-size:12px}nav{display:flex;flex-direction:column;gap:2px;flex:1}nav a{display:block;color:#d5deda;text-decoration:none;padding:8px 10px;border-radius:6px;font-size:14px}nav a.router-link-active{background:#0f5c56;color:#fff}.sidebar-foot{border-top:1px solid #2a3834;padding-top:12px;margin-top:12px;display:flex;align-items:center;justify-content:space-between;gap:8px}.sidebar-foot .user{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#9aaba4;font-size:12px}.workspace{display:flex;flex-direction:column;min-width:0;min-height:0}.topbar{display:flex;align-items:center;gap:18px;padding:12px 24px;background:#f7f8f7;border-bottom:1px solid #d5ddd9}.topbar .company{font-size:15px;font-weight:650}.topbar .date{color:#5d6b66;font-size:13px}.topbar .metric{margin-left:auto;display:flex;gap:16px}.topbar .metric b{font-weight:650;font-variant-numeric:tabular-nums}.topbar .metric span{color:#5d6b66;font-size:12px;margin-right:6px}.topbar .warn b{color:#8a5a00}main{padding:20px 24px 32px;overflow-y:auto}.page-title{font-size:22px;font-weight:650;margin-bottom:14px}.panel{background:#fff;border:1px solid #d9e0dc;border-radius:8px;padding:14px;margin-bottom:14px}.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}button{border:0;background:#0f5c56;color:#fff;padding:7px 12px;border-radius:6px;cursor:pointer;font:inherit;font-size:13px}button.secondary,button.ghost,button.logout{background:#fff;color:#1c2830;border:1px solid #cfd6d2}button.logout{background:transparent;color:#d7e0dc;border-color:#3a4a46;padding:5px 10px}button.ghost{background:transparent}button:disabled{opacity:.45;cursor:default}input,select,textarea{border:1px solid #cfd6d2;border-radius:6px;padding:7px 10px;font:inherit;font-size:13px;background:#fff;color:inherit}table{width:100%;border-collapse:collapse}td,th{border-bottom:1px solid #e4eae7;padding:7px 8px;text-align:left;font-size:13px;vertical-align:middle}th{color:#5d6b66;font-weight:600;font-size:12px}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}td.muted,.muted{color:#5d6b66}.status{display:inline-block;padding:1px 8px;border-radius:999px;font-size:12px;background:#e6ebe8;color:#3d4a45;white-space:nowrap}.status.unassigned{background:#f4e4c4;color:#7a4e00}.status.assigned{background:#d7e7e4;color:#0f4f4c}.status.transit{background:#d7e3f0;color:#1a4568}.status.done{background:#e6e8ea;color:#3e4750}.status.settled{background:#e3eee4;color:#24562e}.filters{display:flex;flex-wrap:wrap;gap:6px}.filters button.active{background:#17211f}.form-grid{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.empty{color:#5d6b66;padding:18px 4px;font-size:13px}.board{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.board-col{background:#fff;border:1px solid #d9e0dc;border-radius:8px;min-height:180px}.board-col header{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-bottom:1px solid #e4eae7;font-size:13px;font-weight:650}.board-col header a{color:inherit;text-decoration:none}.board-col header b{font-variant-numeric:tabular-nums;color:#5d6b66;font-weight:600}.trip{display:block;padding:10px 12px;border-bottom:1px solid #eef2f0;text-decoration:none;color:inherit}.trip strong{display:block;font-size:13px;font-weight:650;margin-bottom:4px}.trip span{display:block;color:#5d6b66;font-size:12px;line-height:1.45}.fleet-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}.row-actions{display:flex;flex-wrap:wrap;gap:6px}@media (max-width: 1100px){.board,.fleet-grid{grid-template-columns:1fr}.layout{grid-template-columns:72px 1fr}.brand span,nav a{font-size:12px}}
