.critical-routes-body { padding: 16px 20px 24px; }
.critical-routes-inputs { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 12px; align-items: end; }
.critical-routes-inputs label { display: grid; gap: 6px; color: #334155; font-size: .84rem; font-weight: 600; }
.critical-routes-inputs input, .critical-routes-inputs select { width: 100%; min-width: 0; border: 1px solid #cbd5e1; border-radius: 8px; padding: 8px; background: white; }
.critical-routes-inputs button { min-height: 42px; }
.critical-routes-method { margin: 10px 0; font-size: .82rem; color: #475569; }
.critical-routes-method summary { cursor: pointer; color: #1e40af; font-weight: 600; }
.critical-routes-summary { margin: 14px 0; font-size: .85rem; color: #334155; }
.critical-routes-card { margin-top: 14px; padding: 14px; border: 1px solid #dbe4f1; background: white; border-radius: 10px; }
.critical-routes-head { display: flex; flex-wrap: wrap; gap: 10px; justify-content: space-between; align-items: center; }
.critical-routes-head h4 { margin: 0; color: #173e86; }
.critical-routes-card p { font-size: .8rem; color: #475569; }
.critical-routes-table-wrap { max-height: 360px; overflow: auto; }
.critical-routes-table-wrap table { border-collapse: collapse; width: 100%; font-size: .8rem; }
.critical-routes-table-wrap th, .critical-routes-table-wrap td { padding: 8px; text-align: left; white-space: nowrap; border-bottom: 1px solid #e2e8f0; }
.critical-routes-table-wrap th { position: sticky; top: 0; background: #193f82; color: white; }
.critical-routes-divisions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 12px; }
.critical-routes-division { border: 1px solid #dbe4f1; border-radius: 9px; padding: 12px; background: #f8faff; }
.critical-routes-division h5 { margin: 0 0 8px; color: #173e86; font-size: .92rem; }
.critical-routes-division strong { display: block; font-size: 1.1rem; color: #0f2e63; }
.critical-routes-division p { margin: 5px 0; }
.critical-routes-division meter { display: block; width: 100%; height: 12px; margin: 8px 0; }
.critical-routes-division .critical-routes-caution { color: #9a3412; font-weight: 600; }
.critical-routes-division details { margin-top: 8px; font-size: .78rem; color: #334155; }
.critical-routes-division summary { cursor: pointer; color: #1e40af; font-weight: 600; }
.critical-routes-audit-filter { display: inline-grid; gap: 4px; margin: 4px 0; font-size: .82rem; font-weight: 600; color: #334155; }
.critical-routes-audit-filter select { min-width: 180px; padding: 7px; border: 1px solid #cbd5e1; border-radius: 7px; background: white; }
.critical-routes-units summary { cursor: pointer; color: #1e40af; }
.critical-routes-units span { display: block; max-width: 300px; white-space: normal; padding: 6px 0; }
.critical-routes-empty td { color: #9a3412; font-weight: 600; white-space: normal; }
#critical-routes-status[data-state="warning"] { background: #fffbeb; border-color: #fcd34d; color: #92400e; }
.gps-division-export { margin: 0 0 16px; }
.gps-division-export h4 { margin: 0; color: #173e86; }
.gps-division-controls { display: grid; grid-template-columns: minmax(0, 2fr) minmax(220px, 1fr); gap: 12px; align-items: end; }
.gps-division-controls label { display: grid; gap: 6px; color: #334155; font-size: .84rem; font-weight: 600; }
.gps-division-controls input { width: 100%; min-width: 0; border: 1px solid #cbd5e1; border-radius: 8px; padding: 8px; background: white; }
.gps-division-controls button { min-height: 42px; }
#gps-division-status { margin: 12px 0 0; }
#gps-division-status[data-state="warning"] { background: #fffbeb; border-color: #fcd34d; color: #92400e; }
#gps-division-summary { font-weight: 600; }
#gps-division-examples { overflow-wrap: anywhere; }
@media (max-width: 1100px) { .critical-routes-inputs { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 1100px) { .critical-routes-divisions { grid-template-columns: 1fr; } }
@media (max-width: 650px) { .critical-routes-inputs, .gps-division-controls { grid-template-columns: 1fr; } }
.reconciliation-pilot > summary { cursor: pointer; color: #173f8a; }
.reconciliation-toolbar { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; margin: 14px 0; }
.reconciliation-toolbar label, .reconciliation-review-controls label { display: flex; flex-direction: column; gap: 5px; font-weight: 600; }
.reconciliation-toolbar .reconciliation-check { flex-direction: row; align-items: center; padding: 10px; }
.reconciliation-week-table { max-height: 360px; overflow: auto; }
.reconciliation-week-table thead { position: sticky; top: 0; z-index: 1; }
.reconciliation-review-grid { display: grid; grid-template-columns: minmax(0, 3fr) minmax(240px, 1fr); gap: 16px; }
.reconciliation-review-controls { display: flex; flex-direction: column; gap: 16px; }
#reconciliation-map { height: 480px; width: 100%; border-radius: 10px; border: 1px solid #dce4ef; }
#reconciliation-detail { margin-top: 20px; padding: 16px; border: 1px solid #dce4ef; border-radius: 10px; background: #f8faff; }
#reconciliation-route-title { margin: 0 0 8px; color: #173f8a; }
#reconciliation-discrepancies:not(:empty) { padding: 12px 16px; border-left: 4px solid #e9a126; background: #fff8e7; color: #704910; }
#reconciliation-discrepancies p { margin: 4px 0; color: inherit; }
.reconciliation-pilot p { font-size: 13px; color: #52647c; }
@media (max-width: 850px) { .reconciliation-review-grid { grid-template-columns: 1fr; } #reconciliation-map { height: 360px; } }
.opportunity-map-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:16px 0; }
.opportunity-map-grid article { min-width:0; border:1px solid #dce4ef; border-radius:9px; padding:12px; }
.opportunity-map-grid h5 { color:#173f8a; margin:0 0 10px; font-size:.9rem; }
.opportunity-map-grid:has(#opportunity-proposed-card[hidden]) { grid-template-columns:repeat(2,minmax(0,1fr)); }
.opportunity-map { width:100%; height:340px; border-radius:6px; }
.critical-routes-table-wrap td.opportunity-reason { max-width:340px; white-space:normal; overflow-wrap:anywhere; }
#opportunity-plan-detail { margin-top:18px; padding-top:16px; border-top:1px solid #dce4ef; }
@media(max-width:900px) { .opportunity-map-grid,.opportunity-map-grid:has(#opportunity-proposed-card[hidden]) { grid-template-columns:1fr; } }
