.kpi-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:12px; margin-bottom:20px; }
.kpi-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:18px; box-shadow:var(--shadow); }
.kpi-label { font-size:9.5px; color:var(--muted); text-transform:uppercase; letter-spacing:.9px; margin-bottom:6px; font-weight:800; }
.kpi-value { font-size:32px; font-weight:900; line-height:1; font-family:'Barlow Condensed',sans-serif; }
.kpi-note { font-size:11px; color:var(--muted); margin-top:5px; }
.kpi-primary { color:var(--primary); }
.kpi-info { color:var(--info); }
.kpi-error { color:var(--error); }
.kpi-warning { color:var(--warning); }
.route-grid { align-items:start; }
.route-module-head { margin-bottom:16px; padding:20px 22px; border-radius:18px; background:linear-gradient(135deg,#fdf2f0 0%,#fff 48%,#eef4ff 100%); border:1px solid #ead9d4; box-shadow:var(--shadow); }
.map-module-head { margin-bottom:18px; }
.route-eyebrow { font-size:11px; font-weight:800; letter-spacing:1.2px; text-transform:uppercase; color:var(--primary); margin-bottom:8px; }
.route-title { font-size:28px; line-height:1; font-family:'Barlow Condensed',sans-serif; font-weight:900; margin-bottom:8px; }
.route-subtitle { max-width:900px; color:var(--muted); font-size:14px; }
.route-hero-card, .route-selected-card, .route-map-card, .route-nearest-card, .route-scope-card { overflow:hidden; }
.route-card-head { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:12px; }
.route-section-label { font-size:10px; font-weight:800; letter-spacing:1px; text-transform:uppercase; color:var(--muted); margin-bottom:4px; }
.route-chip { display:inline-flex; align-items:center; padding:6px 10px; border-radius:999px; font-size:11px; font-weight:700; }
.route-chip-highlight { background:#fff1ee; color:var(--primary); border:1px solid rgba(238,77,45,.22); }
.route-search-bar { display:flex; gap:10px; align-items:center; margin-top:14px; flex-wrap:wrap; }
.route-search-input { flex:1; min-width:240px; padding:13px 14px; border:1px solid #d9dee8; border-radius:12px; background:#fff; color:var(--text); font:inherit; box-shadow:inset 0 1px 2px rgba(15,23,42,.04); }
.route-search-input:focus { outline:none; border-color:#f08d79; box-shadow:0 0 0 4px rgba(238,77,45,.08); }
.route-map-wrap { border-radius:16px; overflow:hidden; border:1px solid #d8e4f8; background:#eef4ff; }
.route-map-wrap iframe { display:block; width:100%; min-height:420px; border:0; }
.route-cluster-card { border-left:4px solid var(--info); background:linear-gradient(180deg,#fff 0%,#f8fbff 100%); }
.route-distance { font-weight:800; color:var(--info); }
.route-ops-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.route-mini-card { min-height:100%; }
.route-mini-head { margin-bottom:8px; }
.route-metric-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.route-metric { padding:12px 14px; border:1px solid #e6eefc; border-radius:12px; background:#f8fbff; }
.route-metric-label { display:block; font-size:10px; letter-spacing:.9px; text-transform:uppercase; color:var(--muted); font-weight:800; margin-bottom:5px; }
.route-metric-value { font-size:14px; font-weight:700; color:var(--text); }
.route-selected-title { font-size:30px; line-height:1; font-family:'Barlow Condensed',sans-serif; font-weight:900; margin-bottom:12px; }
.route-pill-row { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.route-pill { display:inline-flex; align-items:center; padding:7px 11px; border-radius:999px; background:#f8fafc; border:1px solid #dbe5f3; color:#334155; font-size:11px; font-weight:700; }
.route-nearest-header { display:flex; justify-content:space-between; gap:10px; align-items:flex-start; margin-bottom:8px; }
.route-nearest-title { font-size:18px; font-family:'Barlow Condensed',sans-serif; font-weight:800; }
.route-nearest-meta { font-size:12px; color:var(--muted); margin-top:4px; }
table.route-table { width:100%; border-collapse:collapse; font-size:12px; }
.route-table th, .route-table td { padding:10px 12px; border-bottom:1px solid #e5e7eb; text-align:left; vertical-align:top; }
.route-table th { font-size:10px; text-transform:uppercase; letter-spacing:.8px; color:var(--muted); font-weight:800; background:#f8fafc; }
.route-table td strong { font-size:13px; }
.route-table-note { font-size:11px; color:var(--muted); margin-top:8px; }
.route-map-page-wrap iframe { min-height:560px; }
.cluster-intel-head { margin-bottom:16px; padding:20px 22px; border-radius:18px; background:linear-gradient(135deg,#eef8ff 0%,#ffffff 48%,#fff4ea 100%); border:1px solid #d9e8f4; box-shadow:var(--shadow); }
.cluster-intel-eyebrow { font-size:11px; font-weight:800; letter-spacing:1.2px; text-transform:uppercase; color:var(--info); margin-bottom:8px; }
.cluster-intel-title { font-size:28px; line-height:1; font-family:'Barlow Condensed',sans-serif; font-weight:900; margin-bottom:8px; }
.cluster-intel-subtitle { max-width:900px; color:var(--muted); font-size:14px; }
.cluster-intel-filter-card { margin-bottom:16px; }
.cluster-intel-filter-grid { display:grid; grid-template-columns:220px minmax(0,1fr); gap:12px; align-items:end; }
.cluster-filter-group { display:grid; gap:6px; }
.cluster-filter-group label { font-size:11px; text-transform:uppercase; letter-spacing:1px; color:var(--muted); font-weight:800; }
.cluster-filter-wide { min-width:0; }
.cluster-intel-select { width:100%; padding:12px 14px; border:1px solid var(--border); border-radius:12px; background:#fff; color:var(--text); font:inherit; }
.cluster-kpi-grid { margin-bottom:16px; }
.cluster-intel-grid { align-items:start; margin-bottom:16px; }
.cluster-division-card { border-left:4px solid var(--primary); background:linear-gradient(180deg,#fff 0%,#fbfdff 100%); }
.cluster-division-card.blue { border-left-color:#2563eb; }
.cluster-division-card.orange { border-left-color:#ea580c; }
.cluster-priority-card { border-left:4px solid #dc2626; background:linear-gradient(180deg,#fff 0%,#fff7f7 100%); }
.cluster-priority-head { display:flex; justify-content:space-between; gap:10px; align-items:flex-start; }
.cluster-priority-name { font-size:20px; font-family:'Barlow Condensed',sans-serif; font-weight:900; }
.cluster-badge { display:inline-flex; align-items:center; padding:6px 10px; border-radius:999px; font-size:11px; font-weight:800; }
.cluster-badge.blue { background:#dbeafe; color:#1d4ed8; }
.cluster-badge.orange { background:#ffedd5; color:#c2410c; }
.cluster-priority-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-top:12px; }
.cluster-priority-metric { padding:10px 12px; border:1px solid #e5e7eb; border-radius:10px; background:#fff; }
.cluster-priority-metric strong { display:block; font-size:10px; color:var(--muted); text-transform:uppercase; letter-spacing:.8px; margin-bottom:4px; }
.cluster-priority-metric span { font-size:14px; font-weight:800; color:var(--text); }
.cluster-table-wrap { overflow:auto; border:1px solid #e5e7eb; border-radius:12px; }
.cluster-table { width:100%; border-collapse:collapse; font-size:12px; min-width:860px; }
.cluster-table th, .cluster-table td { padding:10px 12px; border-bottom:1px solid #e5e7eb; text-align:left; vertical-align:top; }
.cluster-table th { font-size:10px; text-transform:uppercase; letter-spacing:.8px; color:var(--muted); font-weight:800; background:#f8fafc; }
.cluster-table tr.priority-row { background:#fff7f7; }
.cluster-table tr:hover { background:#f8fafc; }
.cluster-cell-cluster { font-weight:800; font-family:'Barlow Condensed',sans-serif; font-size:16px; }
.cluster-table-note { font-size:11px; color:var(--muted); margin-top:8px; }
.packages-head { margin-bottom:16px; padding:20px 22px; border-radius:18px; background:linear-gradient(135deg,#fff7ed 0%,#ffffff 48%,#eef6ff 100%); border:1px solid #eddcc9; box-shadow:var(--shadow); }
.packages-eyebrow { font-size:11px; font-weight:800; letter-spacing:1.2px; text-transform:uppercase; color:var(--warning); margin-bottom:8px; }
.packages-title { font-size:28px; line-height:1; font-family:'Barlow Condensed',sans-serif; font-weight:900; margin-bottom:8px; }
.packages-subtitle { max-width:900px; color:var(--muted); font-size:14px; }
.packages-filter-card { margin-bottom:16px; }
.packages-filter-grid { display:grid; grid-template-columns:200px minmax(0,1fr) minmax(0,1fr); gap:12px; align-items:end; }
.packages-grid { align-items:start; margin-bottom:16px; }
.packages-volume-card { border-left:4px solid var(--primary); background:linear-gradient(180deg,#fff 0%,#fffaf5 100%); }
.packages-top-card { border-left:4px solid #7c3aed; background:linear-gradient(180deg,#fff 0%,#faf5ff 100%); }
.packages-top-name { font-size:20px; font-family:'Barlow Condensed',sans-serif; font-weight:900; }
.packages-metric-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-top:12px; }
.packages-metric { padding:10px 12px; border:1px solid #e5e7eb; border-radius:10px; background:#fff; }
.packages-metric strong { display:block; font-size:10px; color:var(--muted); text-transform:uppercase; letter-spacing:.8px; margin-bottom:4px; }
.packages-metric span { font-size:14px; font-weight:800; color:var(--text); }
.packages-table-wrap { overflow:auto; border:1px solid #e5e7eb; border-radius:12px; }
.packages-table { width:100%; border-collapse:collapse; font-size:12px; min-width:980px; }
.packages-table th, .packages-table td { padding:10px 12px; border-bottom:1px solid #e5e7eb; text-align:left; vertical-align:top; }
.packages-table th { font-size:10px; text-transform:uppercase; letter-spacing:.8px; color:var(--muted); font-weight:800; background:#f8fafc; }
.packages-table tr.priority-row { background:#fff8f1; }
.packages-table tr:hover { background:#f8fafc; }
.packages-cell-cluster { font-weight:800; font-family:'Barlow Condensed',sans-serif; font-size:16px; }
.packages-table-note { font-size:11px; color:var(--muted); margin-top:8px; }
.drivers-head { margin-bottom:16px; padding:20px 22px; border-radius:18px; background:linear-gradient(135deg,#eef6ff 0%,#ffffff 48%,#fff8ef 100%); border:1px solid #d8e4f2; box-shadow:var(--shadow); }
.drivers-eyebrow { font-size:11px; font-weight:800; letter-spacing:1.2px; text-transform:uppercase; color:#2563eb; margin-bottom:8px; }
.drivers-title { font-size:28px; line-height:1; font-family:'Barlow Condensed',sans-serif; font-weight:900; margin-bottom:8px; }
.drivers-subtitle { max-width:940px; color:var(--muted); font-size:14px; }
.drivers-filter-card { margin-bottom:16px; }
.drivers-filter-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; align-items:end; }
.drivers-grid { align-items:start; margin-bottom:16px; }
.drivers-mix-card { border-left:4px solid #0f766e; background:linear-gradient(180deg,#fff 0%,#f4fffc 100%); }
.drivers-table-wrap { overflow:auto; border:1px solid #e5e7eb; border-radius:12px; }
.drivers-table { width:100%; border-collapse:collapse; font-size:12px; min-width:1280px; }
.drivers-table th, .drivers-table td { padding:10px 12px; border-bottom:1px solid #e5e7eb; text-align:left; vertical-align:top; }
.drivers-table th { font-size:10px; text-transform:uppercase; letter-spacing:.8px; color:var(--muted); font-weight:800; background:#f8fafc; }
.drivers-table tr.priority-row { background:#fff7f7; }
.drivers-table tr:hover { background:#f8fafc; }
.drivers-cell-id, .drivers-cell-name { font-weight:800; }
.drivers-cell-name { font-family:'Barlow Condensed',sans-serif; font-size:17px; }
.drivers-status-pill { display:inline-flex; align-items:center; padding:6px 10px; border-radius:999px; font-size:11px; font-weight:800; }
.drivers-status-pill.present { background:#dcfce7; color:#166534; }
.drivers-status-pill.no-show { background:#fee2e2; color:#b91c1c; }
.drivers-status-pill.neutral { background:#e2e8f0; color:#475569; }
.drivers-table-note { font-size:11px; color:var(--muted); margin-top:8px; }
.ranking-head { margin-bottom:16px; padding:20px 22px; border-radius:18px; background:linear-gradient(135deg,#fff4f2 0%,#ffffff 48%,#f3f7ff 100%); border:1px solid #eadbdb; box-shadow:var(--shadow); }
.ranking-eyebrow { font-size:11px; font-weight:800; letter-spacing:1.2px; text-transform:uppercase; color:#dc2626; margin-bottom:8px; }
.ranking-title { font-size:28px; line-height:1; font-family:'Barlow Condensed',sans-serif; font-weight:900; margin-bottom:8px; }
.ranking-subtitle { max-width:940px; color:var(--muted); font-size:14px; }
.ranking-filter-card { margin-bottom:16px; }
.ranking-filter-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; align-items:end; }
.ranking-grid { align-items:start; margin-bottom:16px; }
.ranking-highlight-card { border-left:4px solid #64748b; background:linear-gradient(180deg,#fff 0%,#fbfcff 100%); }
.ranking-highlight-card.top { border-left-color:#16a34a; background:linear-gradient(180deg,#fff 0%,#f0fdf4 100%); }
.ranking-highlight-card.mid { border-left-color:#2563eb; background:linear-gradient(180deg,#fff 0%,#f8fbff 100%); }
.ranking-highlight-card.attention { border-left-color:#dc2626; background:linear-gradient(180deg,#fff 0%,#fff5f5 100%); }
.ranking-highlight-head { display:flex; justify-content:space-between; gap:10px; align-items:flex-start; }
.ranking-driver-name { font-size:20px; font-family:'Barlow Condensed',sans-serif; font-weight:900; }
.ranking-score-badge { display:inline-flex; align-items:center; justify-content:center; min-width:42px; padding:7px 10px; border-radius:999px; background:#111827; color:#fff; font-size:13px; font-weight:900; }
.ranking-metric-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-top:12px; }
.ranking-metric { padding:10px 12px; border:1px solid #e5e7eb; border-radius:10px; background:#fff; }
.ranking-metric strong { display:block; font-size:10px; color:var(--muted); text-transform:uppercase; letter-spacing:.8px; margin-bottom:4px; }
.ranking-metric span { font-size:14px; font-weight:800; color:var(--text); }
.ranking-table-wrap { overflow:auto; border:1px solid #e5e7eb; border-radius:12px; }
.ranking-table { width:100%; border-collapse:collapse; font-size:12px; min-width:1180px; }
.ranking-table th, .ranking-table td { padding:10px 12px; border-bottom:1px solid #e5e7eb; text-align:left; vertical-align:top; }
.ranking-table th { font-size:10px; text-transform:uppercase; letter-spacing:.8px; color:var(--muted); font-weight:800; background:#f8fafc; }
.ranking-table tr.top-row { background:#f0fdf4; }
.ranking-table tr.attention-row { background:#fff5f5; }
.ranking-table tr:hover { background:#f8fafc; }
.ranking-cell-id, .ranking-cell-name { font-weight:800; }
.ranking-cell-name { font-family:'Barlow Condensed',sans-serif; font-size:16px; }
.ranking-final-pill { display:inline-flex; align-items:center; padding:5px 9px; border-radius:999px; background:#111827; color:#fff; font-size:11px; font-weight:900; }
.ranking-table-note { font-size:11px; color:var(--muted); margin-top:8px; }
.alerts-head { margin-bottom:16px; padding:20px 22px; border-radius:18px; background:linear-gradient(135deg,#fff5f5 0%,#ffffff 48%,#fff9ec 100%); border:1px solid #ecd7d7; box-shadow:var(--shadow); }
.alerts-eyebrow { font-size:11px; font-weight:800; letter-spacing:1.2px; text-transform:uppercase; color:#dc2626; margin-bottom:8px; }
.alerts-title { font-size:28px; line-height:1; font-family:'Barlow Condensed',sans-serif; font-weight:900; margin-bottom:8px; }
.alerts-subtitle { max-width:940px; color:var(--muted); font-size:14px; }
.alerts-filter-card { margin-bottom:16px; }
.alerts-filter-grid { display:grid; grid-template-columns:220px 240px minmax(0,1fr); gap:12px; align-items:end; }
.alert-card { border-left:4px solid #94a3b8; border-radius:14px; padding:16px; background:#fff; border:1px solid #e5e7eb; box-shadow:var(--shadow); }
.alert-card.critical { border-left-color:#dc2626; background:linear-gradient(180deg,#fff 0%,#fff5f5 100%); }
.alert-card.attention { border-left-color:#ea580c; background:linear-gradient(180deg,#fff 0%,#fff7ed 100%); }
.alert-card.info { border-left-color:#2563eb; background:linear-gradient(180deg,#fff 0%,#f8fbff 100%); }
.alert-card-head { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; margin-bottom:10px; }
.alert-card-type { font-size:10px; text-transform:uppercase; letter-spacing:1px; color:var(--muted); font-weight:800; margin-bottom:4px; }
.alert-card-title { font-size:19px; font-family:'Barlow Condensed',sans-serif; font-weight:900; }
.alert-card-body { color:var(--text); font-size:13px; line-height:1.45; }
.alert-card-meta { display:grid; gap:6px; margin-top:12px; color:var(--muted); font-size:12px; }
.alert-severity-pill { display:inline-flex; align-items:center; padding:6px 10px; border-radius:999px; font-size:11px; font-weight:900; }
.alert-severity-pill.critical { background:#fee2e2; color:#b91c1c; }
.alert-severity-pill.attention { background:#ffedd5; color:#c2410c; }
.alert-severity-pill.info { background:#dbeafe; color:#1d4ed8; }
@media (max-width:820px) {
  .route-title { font-size:24px; }
  .route-ops-grid { grid-template-columns:1fr; }
  .route-map-page-wrap iframe { min-height:380px; }
  .cluster-intel-title { font-size:24px; }
  .cluster-intel-filter-grid { grid-template-columns:1fr; }
  .cluster-priority-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .packages-title { font-size:24px; }
  .packages-filter-grid { grid-template-columns:1fr; }
  .packages-metric-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .drivers-title { font-size:24px; }
  .drivers-filter-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ranking-title { font-size:24px; }
  .ranking-filter-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ranking-metric-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .alerts-title { font-size:24px; }
  .alerts-filter-grid { grid-template-columns:1fr; }
}
@media (max-width:640px) {
  .route-module-head { padding:16px; }
  .route-title { font-size:22px; }
  .route-subtitle { font-size:13px; }
  .route-card-head { flex-direction:column; }
  .route-search-bar { align-items:stretch; }
  .route-search-input { min-width:0; width:100%; }
  .route-search-bar .btn { width:100%; justify-content:center; }
  .route-metric-grid { grid-template-columns:1fr; }
  .route-pill-row { gap:6px; }
  .route-pill { max-width:100%; }
  .route-nearest-header { flex-direction:column; }
  .route-table th, .route-table td { padding:8px 9px; }
  .route-map-page-wrap iframe { min-height:300px; }
  .cluster-intel-head { padding:16px; }
  .cluster-intel-title { font-size:22px; }
  .cluster-intel-subtitle { font-size:13px; }
  .cluster-priority-grid { grid-template-columns:1fr; }
  .packages-head { padding:16px; }
  .packages-title { font-size:22px; }
  .packages-subtitle { font-size:13px; }
  .packages-metric-grid { grid-template-columns:1fr; }
  .drivers-head { padding:16px; }
  .drivers-title { font-size:22px; }
  .drivers-subtitle { font-size:13px; }
  .drivers-filter-grid { grid-template-columns:1fr; }
  .ranking-head { padding:16px; }
  .ranking-title { font-size:22px; }
  .ranking-subtitle { font-size:13px; }
  .ranking-filter-grid { grid-template-columns:1fr; }
  .ranking-metric-grid { grid-template-columns:1fr; }
  .alerts-head { padding:16px; }
  .alerts-title { font-size:22px; }
  .alerts-subtitle { font-size:13px; }
  .alert-card-head { flex-direction:column; }
}
@media (max-width:640px) { .kpi-grid { grid-template-columns:1fr; } }
