/* Field Hub (agent) and Map Hunter radar (admin). Light & Gold on --sh-* tokens; builds on the sc-* components in screens-core.css. */
.fx .material-symbols-outlined { font-size: 18px; flex-shrink: 0; vertical-align: middle; }
.fx-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 16px; }
.fx .sc-hero { margin-bottom: 16px; }
.fx .sc-split { margin-top: 0; }
.fx-of { font-size: 14px; font-weight: 700; color: var(--sh-on-surface-variant); }
.fx-sub { font-size: 12px; color: var(--sh-on-surface-variant); overflow-wrap: anywhere; }
.fx-sub .material-symbols-outlined { font-size: 14px; }
.fx-lbl { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 600; color: var(--sh-on-surface-variant); }
.fx-hint { font-size: 11px; color: var(--sh-on-surface-variant); margin-top: 6px; }
.fx-row { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
.fx .sc-btn[disabled] { opacity: .5; cursor: not-allowed; }
.fx a.sc-btn { text-decoration: none; }

/* pills */
.fx-pill { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: 999px; font-size: 11px; font-weight: 700; white-space: nowrap; background: var(--sh-surface-container); color: var(--sh-on-surface-variant); }
.fx-pill.is-ok { background: var(--sh-ok-bg); color: var(--sh-ok); }
.fx-pill.is-warn { background: #fff4de; color: var(--sh-secondary); }
.fx-pill.is-gold { background: #ffddb8; color: var(--sh-on-primary-container); }
.fx-pill.is-info { background: var(--sh-surface-high); color: var(--sh-tertiary); }
.fx-pill.is-bad { background: var(--sh-error-container); color: var(--sh-error); }
.fx-pill.is-muted { background: var(--sh-surface-low); color: var(--sh-outline); }

/* empty state */
.fx-empty { display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; padding: 28px 16px; color: var(--sh-on-surface-variant); font-size: 13px; }
.fx-empty .material-symbols-outlined { font-size: 30px; color: var(--sh-outline-variant); }
.fx-empty strong { color: var(--sh-on-surface); font-size: 14px; }

/* route */
.fx-stop { display: flex; gap: 12px; padding: 14px 0; border-top: 1px solid var(--sh-surface-container); }
.fx-stop:first-child { border-top: none; padding-top: 4px; }
.fx-stop-rail { width: 32px; height: 32px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--sh-surface-low); color: var(--sh-on-surface-variant); flex-shrink: 0; }
.fx-stop.is-done .fx-stop-rail { background: var(--sh-ok-bg); color: var(--sh-ok); }
.fx-stop.is-next .fx-stop-rail { background: var(--sh-primary-container); color: var(--sh-on-primary-container); }
.fx-stop.is-due .fx-stop-rail { background: #fff4de; color: var(--sh-secondary); }
.fx-stop.is-done .fx-stop-title { color: var(--sh-on-surface-variant); }
.fx-stop-body { flex: 1; min-width: 0; }
.fx-stop-top { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.fx-time { font-size: 12px; font-weight: 700; color: var(--sh-primary); }
.fx-stop-title { font-size: 14px; overflow-wrap: anywhere; }
.fx-stop-sub { font-size: 13px; color: var(--sh-on-surface-variant); margin-top: 3px; overflow-wrap: anywhere; }
.fx-stop-loc { display: flex; align-items: center; gap: 4px; font-size: 12px; color: var(--sh-outline); margin-top: 3px; }
.fx-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
.fx-noteform { display: grid; gap: 8px; margin-top: 10px; padding: 12px; border-radius: 10px; background: var(--sh-surface); }
.fx-noteform select, .fx-noteform textarea, .fx-noteform input { border: 1px solid var(--sh-outline-variant); border-radius: 8px; padding: 8px 10px; font: 500 13px var(--sh-font); background: #fff; color: var(--sh-on-surface); max-width: 100%; }
.fx-noteform textarea { resize: vertical; }

/* deals, ledger, collateral, zones */
.fx-deal, .fx-ledger-row, .mr-prox, .mr-chk { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0; border-top: 1px solid var(--sh-surface-container); }
.fx-deal:first-child, .fx-ledger-row:first-child, .mr-prox:first-child, .mr-chk:first-child { border-top: none; }
.fx-deal > div, .fx-ledger-row > div:first-child, .mr-prox > div:first-child, .mr-chk > div:first-child { min-width: 0; overflow-wrap: anywhere; }
.fx-ledger-r, .mr-prox-r { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; text-align: right; flex-shrink: 0; }
.fx-ledger-r strong { color: var(--sh-ok); }
.fx-collateral { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 12px; }
.fx-coll { background: var(--sh-surface); border-radius: 12px; padding: 14px; display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.fx-coll-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 4px; }
.fx-coll-ico { width: 34px; height: 34px; border-radius: 8px; background: #ffddb8; color: var(--sh-on-primary-container); display: inline-flex; align-items: center; justify-content: center; }
.fx-coll-d { margin: 4px 0; font-size: 12px; color: var(--sh-on-surface-variant); }
.fx-coll-p { font-weight: 800; font-size: 14px; }
.fx-zone { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-top: 1px solid var(--sh-surface-container); }
.fx-zone:first-child { border-top: none; }
.fx-zone .material-symbols-outlined { color: var(--sh-primary); }

/* quota ring */
.fx-quota { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.fx-ring { width: 112px; height: 112px; flex-shrink: 0; }
.fx-ring-bg { fill: none; stroke: var(--sh-surface-container); stroke-width: 9; }
.fx-ring-fg { fill: none; stroke: var(--sh-primary-container); stroke-width: 9; stroke-linecap: round; }
.fx-ring-t { font: 800 18px var(--sh-font); fill: var(--sh-on-surface); }
.fx-quota-t { min-width: 0; }

/* Map Hunter */
.mr-mappanel { margin-bottom: 16px; }
.mr-map { height: 420px; background: var(--sh-surface-low); z-index: 0; }
.mr-pin-wrap { background: none; border: none; }
.mr-pin { width: 34px; height: 34px; border-radius: 50%; background: var(--pin, #867461); border: 3px solid #fff; box-shadow: 0 2px 8px rgba(11, 28, 48, .3); display: flex; align-items: center; justify-content: center; }
.mr-pin span { color: #fff; font: 800 11px var(--sh-font); }
.mr-rep { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-top: 1px solid var(--sh-surface-container); }
.mr-rep:first-child { border-top: none; padding-top: 4px; }
.mr-rep.is-stale { opacity: .65; }
.mr-av { width: 38px; height: 38px; border-radius: 50%; background: var(--pin, #867461); color: #fff; font: 800 12px var(--sh-font); display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.mr-rep-b { flex: 1; min-width: 0; }
.mr-rep-top { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.mr-rep-r { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; flex-shrink: 0; }

@media (max-width: 1100px) { .fx-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 860px) {
  .fx .sc-split { grid-template-columns: minmax(0, 1fr); }
  .mr-map { height: 320px; }
}
@media (max-width: 560px) {
  .fx-kpis { grid-template-columns: minmax(0, 1fr); }
  .fx .sc-title { font-size: 24px; line-height: 30px; }
  .fx .sc-actions { width: 100%; }
  .mr-rep { flex-wrap: wrap; }
  .mr-rep-r { flex-direction: row; align-items: center; }
}
