.tms-dashboard{--bg-primary:#0a0e1a;--bg-secondary:#111827;--bg-card:#1a2036;--bg-card-hover:#1f2847;--border:#6382ff1f;--border-active:#6382ff59;--text-primary:#e8ecf4;--text-secondary:#8892a8;--text-muted:#5a6478;--accent-blue:#4f7cff;--accent-blue-glow:#4f7cff40;--accent-cyan:#22d3ee;--accent-green:#34d399;--accent-amber:#fbbf24;--accent-red:#f87171;--accent-purple:#a78bfa;--radius:12px;--radius-sm:8px;background:var(--bg-primary);color:var(--text-primary);min-height:calc(100vh - 4rem);margin:-1.5rem;padding:28px 32px;font-family:Noto Sans KR,Plus Jakarta Sans,sans-serif}.tms-dashboard .tab-bar{background:var(--bg-secondary);border-radius:var(--radius);border:1px solid var(--border);gap:4px;width:fit-content;margin-bottom:28px;padding:4px;display:flex}.tms-dashboard .tab{border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:10px 22px;font-family:inherit;font-size:13.5px;font-weight:500;transition:all .25s;display:flex}.tms-dashboard .tab:hover{color:var(--text-primary)}.tms-dashboard .tab.active{background:var(--accent-blue);color:#fff;box-shadow:0 2px 12px var(--accent-blue-glow)}.tms-dashboard .tab-icon{font-size:15px}.tms-dashboard .kpi-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px;display:grid}.tms-dashboard .kpi-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);opacity:0;padding:20px 22px;transition:all .3s;animation:.5s forwards tmsFadeSlideUp;position:relative;overflow:hidden}.tms-dashboard .kpi-card:first-child{animation-delay:50ms}.tms-dashboard .kpi-card:nth-child(2){animation-delay:.1s}.tms-dashboard .kpi-card:nth-child(3){animation-delay:.15s}.tms-dashboard .kpi-card:nth-child(4){animation-delay:.2s}.tms-dashboard .kpi-card:hover{border-color:var(--border-active);transform:translateY(-2px);box-shadow:0 8px 32px #0003}.tms-dashboard .kpi-card:before{content:"";height:3px;position:absolute;top:0;left:0;right:0}.tms-dashboard .kpi-card.blue:before{background:linear-gradient(90deg, var(--accent-blue), var(--accent-cyan))}.tms-dashboard .kpi-card.green:before{background:linear-gradient(90deg, var(--accent-green), #6ee7b7)}.tms-dashboard .kpi-card.amber:before{background:linear-gradient(90deg, var(--accent-amber), #fde68a)}.tms-dashboard .kpi-card.red:before{background:linear-gradient(90deg, var(--accent-red), #fca5a5)}.tms-dashboard .kpi-label{color:var(--text-muted);align-items:center;gap:6px;margin-bottom:10px;font-size:12px;font-weight:500;display:flex}.tms-dashboard .kpi-value{letter-spacing:-1px;margin-bottom:8px;font-family:Plus Jakarta Sans,Noto Sans KR,sans-serif;font-size:28px;font-weight:800;line-height:1}.tms-dashboard .kpi-card.blue .kpi-value{color:var(--accent-blue)}.tms-dashboard .kpi-card.green .kpi-value{color:var(--accent-green)}.tms-dashboard .kpi-card.amber .kpi-value{color:var(--accent-amber)}.tms-dashboard .kpi-card.red .kpi-value{color:var(--accent-red)}.tms-dashboard .kpi-sub{color:var(--text-secondary);align-items:center;gap:6px;font-size:12px;display:flex}.tms-dashboard .kpi-trend{border-radius:4px;padding:2px 6px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600}.tms-dashboard .kpi-trend.up{color:var(--accent-green);background:#34d3991f}.tms-dashboard .kpi-trend.down{color:var(--accent-red);background:#f871711f}.tms-dashboard .panel-grid{grid-template-columns:1fr 1fr;gap:20px;margin-bottom:28px;display:grid}.tms-dashboard .panel-grid.three-col{grid-template-columns:2fr 1fr}.tms-dashboard .panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);opacity:0;animation:.5s .25s forwards tmsFadeSlideUp;overflow:hidden}.tms-dashboard .panel-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.tms-dashboard .panel-title{align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.tms-dashboard .panel-title .icon{font-size:16px}.tms-dashboard .panel-action{color:var(--accent-blue);cursor:pointer;align-items:center;gap:4px;font-size:12px;font-weight:500;transition:color .2s;display:flex}.tms-dashboard .panel-action:hover{color:var(--accent-cyan)}.tms-dashboard .panel-body{padding:16px 22px}.tms-dashboard .dispatch-table{border-collapse:collapse;width:100%}.tms-dashboard .dispatch-table th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.8px;text-align:left;border-bottom:1px solid var(--border);padding:10px 12px;font-size:11px;font-weight:600}.tms-dashboard .dispatch-table td{vertical-align:middle;border-bottom:1px solid #6382ff0d;padding:12px;font-size:13px}.tms-dashboard .dispatch-table tr:last-child td{border-bottom:none}.tms-dashboard .dispatch-table tr{transition:background .15s}.tms-dashboard .dispatch-table tr:hover td{background:#4f7cff0a}.tms-dashboard .order-id{color:var(--accent-blue);font-family:JetBrains Mono,monospace;font-size:12px;font-weight:500}.tms-dashboard .driver-cell{align-items:center;gap:8px;display:flex}.tms-dashboard .driver-avatar{background:var(--bg-secondary);border:1px solid var(--border);width:28px;height:28px;color:var(--text-secondary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:flex}.tms-dashboard .status-badge{border-radius:20px;align-items:center;gap:5px;padding:4px 10px;font-size:11.5px;font-weight:600;display:inline-flex}.tms-dashboard .status-badge .dot{border-radius:50%;width:6px;height:6px}.tms-dashboard .status-badge.transit{color:var(--accent-blue);background:#4f7cff1f}.tms-dashboard .status-badge.transit .dot{background:var(--accent-blue);animation:2s infinite tmsPulseDot}.tms-dashboard .status-badge.complete{color:var(--accent-green);background:#34d3991f}.tms-dashboard .status-badge.complete .dot{background:var(--accent-green)}.tms-dashboard .status-badge.pending{color:var(--accent-amber);background:#fbbf241f}.tms-dashboard .status-badge.pending .dot{background:var(--accent-amber)}.tms-dashboard .status-badge.delay{color:var(--accent-red);background:#f871711f}.tms-dashboard .status-badge.delay .dot{background:var(--accent-red);animation:1.5s infinite tmsPulseDot}@keyframes tmsPulseDot{0%,to{opacity:1}50%{opacity:.3}}.tms-dashboard .map-container{background:radial-gradient(circle at 30% 40%, #4f7cff14 0%, transparent 50%), radial-gradient(circle at 70% 60%, #22d3ee0f 0%, transparent 50%), var(--bg-secondary);border-radius:8px;height:340px;position:relative;overflow:hidden}.tms-dashboard .map-grid{background-image:linear-gradient(#4f7cff0a 1px,#0000 1px),linear-gradient(90deg,#4f7cff0a 1px,#0000 1px);background-size:40px 40px;position:absolute;inset:0}.tms-dashboard .map-pin{border:2px solid;border-radius:50%;width:14px;height:14px;animation:3s ease-in-out infinite tmsMapPinPulse;position:absolute}.tms-dashboard .map-pin:after{content:"";opacity:.3;border:1px solid;border-radius:50%;animation:3s ease-in-out infinite tmsMapPinRing;position:absolute;inset:-6px}.tms-dashboard .map-pin.blue{background:var(--accent-blue);border-color:var(--accent-blue);top:25%;left:30%}.tms-dashboard .map-pin.blue:after{border-color:var(--accent-blue)}.tms-dashboard .map-pin.green{background:var(--accent-green);border-color:var(--accent-green);animation-delay:.5s;top:55%;left:65%}.tms-dashboard .map-pin.green:after{border-color:var(--accent-green)}.tms-dashboard .map-pin.amber{background:var(--accent-amber);border-color:var(--accent-amber);animation-delay:1s;top:40%;left:45%}.tms-dashboard .map-pin.amber:after{border-color:var(--accent-amber)}.tms-dashboard .map-pin.red{background:var(--accent-red);border-color:var(--accent-red);animation-delay:1.5s;top:70%;left:25%}.tms-dashboard .map-pin.red:after{border-color:var(--accent-red)}.tms-dashboard .map-pin.cyan{background:var(--accent-cyan);border-color:var(--accent-cyan);animation-delay:2s;top:30%;left:75%}.tms-dashboard .map-pin.cyan:after{border-color:var(--accent-cyan)}@keyframes tmsMapPinPulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}@keyframes tmsMapPinRing{0%,to{opacity:.3;transform:scale(1)}50%{opacity:0;transform:scale(1.8)}}.tms-dashboard .map-overlay{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:var(--radius-sm);background:#1a2036eb;gap:20px;padding:12px 16px;display:flex;position:absolute;bottom:16px;left:16px}.tms-dashboard .map-stat{text-align:center}.tms-dashboard .map-stat-val{letter-spacing:-.5px;font-family:Plus Jakarta Sans,sans-serif;font-size:18px;font-weight:700}.tms-dashboard .map-stat-val.blue{color:var(--accent-blue)}.tms-dashboard .map-stat-val.green{color:var(--accent-green)}.tms-dashboard .map-stat-val.red{color:var(--accent-red)}.tms-dashboard .map-stat-label{color:var(--text-muted);margin-top:2px;font-size:10px}.tms-dashboard .chart-area{align-items:flex-end;gap:8px;height:200px;padding:10px 0;display:flex}.tms-dashboard .chart-bar-wrap{flex-direction:column;flex:1;align-items:center;gap:8px;display:flex}.tms-dashboard .chart-bar{cursor:pointer;border-radius:6px 6px 2px 2px;width:100%;min-height:20px;transition:all .3s;position:relative}.tms-dashboard .chart-bar:hover{filter:brightness(1.2);transform-origin:bottom;transform:scaleY(1.03)}.tms-dashboard .chart-bar.blue{background:linear-gradient(180deg, var(--accent-blue), #4f7cff80)}.tms-dashboard .chart-bar.cyan{background:linear-gradient(180deg, var(--accent-cyan), #22d3ee80)}.tms-dashboard .chart-bar-label{color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:10px}.tms-dashboard .chart-bar-val{color:var(--text-secondary);white-space:nowrap;opacity:0;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:600;transition:opacity .2s;position:absolute;top:-20px;left:50%;transform:translate(-50%)}.tms-dashboard .chart-bar:hover .chart-bar-val{opacity:1}.tms-dashboard .settle-item{border-bottom:1px solid #6382ff0d;justify-content:space-between;align-items:center;padding:12px 0;display:flex}.tms-dashboard .settle-item:last-child{border-bottom:none}.tms-dashboard .settle-left{align-items:center;gap:12px;display:flex}.tms-dashboard .settle-icon{border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:16px;display:flex}.tms-dashboard .settle-icon.in{color:var(--accent-green);background:#34d3991a}.tms-dashboard .settle-icon.out{color:var(--accent-red);background:#f871711a}.tms-dashboard .settle-icon.wait{color:var(--accent-amber);background:#fbbf241a}.tms-dashboard .settle-name{font-size:13px;font-weight:500}.tms-dashboard .settle-desc{color:var(--text-muted);margin-top:2px;font-size:11px}.tms-dashboard .settle-amount{font-family:JetBrains Mono,monospace;font-size:14px;font-weight:600}.tms-dashboard .settle-amount.positive{color:var(--accent-green)}.tms-dashboard .settle-amount.negative{color:var(--accent-red)}.tms-dashboard .settle-amount.pending{color:var(--accent-amber)}.tms-dashboard .alert-item{border-bottom:1px solid #6382ff0d;gap:12px;padding:12px 0;display:flex}.tms-dashboard .alert-item:last-child{border-bottom:none}.tms-dashboard .alert-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:5px}.tms-dashboard .alert-dot.critical{background:var(--accent-red);box-shadow:0 0 8px #f8717180}.tms-dashboard .alert-dot.warning{background:var(--accent-amber)}.tms-dashboard .alert-dot.info{background:var(--accent-blue)}.tms-dashboard .alert-content{flex:1}.tms-dashboard .alert-title{margin-bottom:3px;font-size:13px;font-weight:500}.tms-dashboard .alert-meta{color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:11px}.tms-dashboard .progress-bar{background:var(--bg-secondary);border-radius:3px;width:100%;height:6px;margin-top:8px;overflow:hidden}.tms-dashboard .progress-fill{border-radius:3px;height:100%;transition:width 1s}.tms-dashboard .progress-fill.blue{background:linear-gradient(90deg, var(--accent-blue), var(--accent-cyan))}.tms-dashboard .progress-fill.green{background:var(--accent-green)}.tms-dashboard .progress-fill.amber{background:var(--accent-amber)}.tms-dashboard .vehicle-item{border-bottom:1px solid #6382ff0d;align-items:center;gap:12px;padding:10px 0;display:flex}.tms-dashboard .vehicle-item:last-child{border-bottom:none}.tms-dashboard .vehicle-icon-wrap{border-radius:var(--radius-sm);background:var(--bg-secondary);border:1px solid var(--border);flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:18px;display:flex}.tms-dashboard .vehicle-info{flex:1}.tms-dashboard .vehicle-name{align-items:center;gap:6px;font-size:13px;font-weight:500;display:flex}.tms-dashboard .vehicle-plate{color:var(--text-muted);background:var(--bg-secondary);border-radius:4px;padding:1px 6px;font-family:JetBrains Mono,monospace;font-size:11px}.tms-dashboard .vehicle-meta{color:var(--text-muted);margin-top:2px;font-size:11px}.tms-dashboard .full-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);opacity:0;margin-bottom:28px;animation:.5s .25s forwards tmsFadeSlideUp;overflow:hidden}.tms-dashboard .btn{border-radius:var(--radius-sm);cursor:pointer;border:none;align-items:center;gap:6px;padding:8px 16px;font-family:inherit;font-size:13px;font-weight:500;transition:all .2s;display:inline-flex}.tms-dashboard .btn-primary{background:var(--accent-blue);color:#fff}.tms-dashboard .btn-primary:hover{box-shadow:0 4px 20px var(--accent-blue-glow);transform:translateY(-1px)}.tms-dashboard .btn-ghost{color:var(--text-secondary);border:1px solid var(--border);background:0 0}.tms-dashboard .btn-ghost:hover{border-color:var(--border-active);color:var(--text-primary)}.tms-dashboard .btn-group{gap:8px;display:flex}.tms-dashboard .filter-bar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:20px;display:flex}.tms-dashboard .filter-chip{background:var(--bg-card);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;border-radius:20px;align-items:center;gap:6px;padding:7px 14px;font-size:12.5px;font-weight:500;transition:all .2s;display:flex}.tms-dashboard .filter-chip:hover,.tms-dashboard .filter-chip.active{border-color:var(--accent-blue);color:var(--accent-blue)}.tms-dashboard .filter-chip .count{background:var(--bg-secondary);border-radius:8px;padding:1px 6px;font-family:JetBrains Mono,monospace;font-size:11px}.tms-dashboard .cost-summary-grid{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:20px;display:grid}.tms-dashboard .cost-summary-card{background:var(--bg-secondary);border-radius:var(--radius-sm);border:1px solid var(--border);padding:16px 18px}.tms-dashboard .cost-summary-label{color:var(--text-muted);margin-bottom:6px;font-size:11px;font-weight:500}.tms-dashboard .cost-summary-val{letter-spacing:-.5px;font-family:JetBrains Mono,Plus Jakarta Sans,sans-serif;font-size:22px;font-weight:700}.tms-dashboard .cost-summary-sub{color:var(--text-muted);margin-top:4px;font-size:11px}@keyframes tmsFadeSlideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.tms-dashboard ::-webkit-scrollbar{width:6px}.tms-dashboard ::-webkit-scrollbar-track{background:0 0}.tms-dashboard ::-webkit-scrollbar-thumb{background:#6382ff33;border-radius:3px}.tms-dashboard ::-webkit-scrollbar-thumb:hover{background:#6382ff59}@media (max-width:1200px){.tms-dashboard .kpi-grid{grid-template-columns:repeat(2,1fr)}.tms-dashboard .panel-grid,.tms-dashboard .panel-grid.three-col,.tms-dashboard .cost-summary-grid{grid-template-columns:1fr}}@media (max-width:768px){.tms-dashboard{padding:16px}.tms-dashboard .kpi-grid{grid-template-columns:1fr}.tms-dashboard .tab-bar{flex-wrap:wrap;width:100%}}
