:root {
  --vm-navy:#0d1f33;
  --vm-navy2:#14395c;
  --vm-blue:#0096d6;
  --vm-blue2:#00aaee;
  --vm-bg:#f4f7fa;
  --vm-card:#ffffff;
  --vm-border:#d0dce8;
  --vm-muted:#6b8caa;
  --vm-green:#16a34a;
  --vm-red:#dc2626;
  --vm-orange:#f59e0b;
  --vm-purple:#7c3aed;
  --vm-shadow:0 12px 28px rgba(13,31,51,.08);
}

* { box-sizing:border-box; }
body { margin:0; font-family:'Barlow',sans-serif; background:var(--vm-bg); color:var(--vm-navy); }

/* Align VM Hub with Astound-style width and tighter hero. */
.stf-hero { padding:26px 24px 28px !important; }
.stf-eyebrow { display:none !important; }
.stf-hero-inner { max-width:1400px !important; min-height:116px; margin:0 auto; position:relative; }
.stf-hero-title-row { display:flex; align-items:center; gap:24px; }
.stf-hero-logo { width:136px !important; height:auto; flex-shrink:0; display:block; }
.stf-hero-title { font-size:clamp(36px,4.5vw,56px) !important; margin-bottom:7px !important; line-height:.92 !important; }
.stf-hero-sub { font-size:14px !important; line-height:1.4 !important; max-width:760px !important; }
.vm-hero-updated { position:absolute; right:0; top:50%; transform:translateY(-50%); color:rgba(255,255,255,.86); font-size:12px; font-weight:800; text-align:right; }

.vm-page { max-width:1540px; margin:0 auto; padding:24px 26px 76px; }
.vm-toolbar { display:flex; justify-content:space-between; align-items:flex-end; gap:16px; margin:0 0 18px; }
.vm-report-title h1 { margin:0; font-family:'Barlow Condensed',sans-serif; font-size:34px; line-height:.95; }
.vm-report-title p { margin:8px 0 0; color:var(--vm-muted); font-size:15px; }
.vm-toolbar-actions,.vm-panel-actions { display:flex; gap:10px; align-items:center; flex-wrap:nowrap; justify-content:flex-end; }

.vm-btn { border:1px solid var(--vm-border); background:#fff; color:var(--vm-navy); padding:10px 14px; border-radius:10px; font-weight:800; font-size:13px; cursor:pointer; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; gap:7px; font-family:'Barlow',sans-serif; transition:.15s ease; }
.vm-btn:hover { border-color:var(--vm-blue); color:var(--vm-blue); transform:translateY(-1px); }
.vm-btn-primary { background:var(--vm-blue); border-color:var(--vm-blue); color:#fff; }
.vm-btn-primary:hover { background:#087db3; color:#fff; }
.vm-btn-soft { background:rgba(0,150,214,.08); border-color:rgba(0,150,214,.25); color:var(--vm-blue); }
.vm-btn-danger { background:rgba(220,38,38,.08); border-color:rgba(220,38,38,.25); color:#b91c1c; }

.vm-state { background:#fff; border:1px solid var(--vm-border); border-radius:16px; padding:22px; box-shadow:var(--vm-shadow); color:var(--vm-muted); font-weight:700; }
.vm-error { color:#b91c1c; border-color:rgba(220,38,38,.35); background:#fff5f5; }

.vm-kpi-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:14px; margin:0 0 18px; }
.vm-kpi,.vm-mini-card { background:#fff; border:1px solid var(--vm-border); border-radius:16px; box-shadow:var(--vm-shadow); padding:16px; border-top:4px solid var(--vm-blue); min-height:104px; }
.vm-kpi.green { border-top-color:var(--vm-green); }
.vm-kpi.red { border-top-color:#ef4444; }
.vm-kpi.orange { border-top-color:#f97316; }
.vm-kpi.purple { border-top-color:#8b5cf6; }
.vm-kpi-label { text-transform:uppercase; font-size:11px; letter-spacing:.11em; color:var(--vm-muted); font-weight:900; min-height:28px; }
.vm-kpi-value { font-family:'Barlow Condensed',sans-serif; font-size:40px; font-weight:800; line-height:1; margin:6px 0 8px; }
.vm-kpi-sub { color:#6e8ba8; font-size:13px; }

.vm-panel { background:#fff; border:1px solid var(--vm-border); border-radius:18px; box-shadow:var(--vm-shadow); overflow:hidden; margin:18px 0; }
.vm-panel-head { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; padding:18px 20px; border-bottom:1px solid var(--vm-border); }
.vm-panel h2 { font-family:'Barlow Condensed',sans-serif; font-size:25px; margin:0 0 6px; }
.vm-panel p { margin:0; color:var(--vm-muted); font-size:13px; }
.vm-updated { color:var(--vm-muted); font-size:12px; font-weight:800; white-space:nowrap; }
.vm-panel-note { margin:8px 20px 20px; color:#6e8ba8; font-size:12px; }

.vm-mini-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:12px; padding:16px 20px 4px; }
.vm-mini-card { min-height:88px; padding:14px; cursor:pointer; position:relative; border-top:1px solid var(--vm-border); }
.vm-mini-card:before { content:'+'; position:absolute; top:10px; right:12px; color:var(--vm-blue); font-weight:900; font-size:16px; }
.vm-mini-card.active { border-color:var(--vm-blue); box-shadow:0 0 0 3px rgba(0,150,214,.11); }
.vm-mini-card.active:before { content:'–'; }
.vm-mini-card strong { display:block; font-family:'Barlow Condensed',sans-serif; font-size:34px; line-height:1; }
.vm-mini-card span { display:block; font-size:12px; font-weight:800; color:var(--vm-muted); margin-top:8px; }

.vm-builder { margin:0 20px; border:1px solid var(--vm-border); border-radius:14px; overflow:hidden; background:#fbfdff; }
.vm-builder-title { width:100%; border:0; background:#fff; padding:14px 16px; display:flex; justify-content:space-between; align-items:center; font-weight:900; text-transform:uppercase; letter-spacing:.12em; color:#5e7892; cursor:pointer; font-family:'Barlow',sans-serif; }
.vm-builder-title strong { color:var(--vm-blue); font-size:20px; line-height:1; }
.vm-builder-body { padding:16px; border-top:1px solid var(--vm-border); }
.vm-builder-body p { margin-bottom:12px; }
.vm-builder-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-bottom:12px; }
.vm-builder-option { border:1px solid var(--vm-border); border-radius:12px; background:#fff; display:grid; grid-template-columns:auto 1fr auto auto; align-items:center; gap:10px; padding:10px; }
.vm-builder-option input { width:16px; height:16px; }
.vm-builder-option label { font-weight:800; }
.vm-builder-option small { color:#8aa0b6; font-weight:800; }
.vm-icon-btn { width:28px; height:28px; border-radius:8px; border:1px solid var(--vm-border); background:#fff; cursor:pointer; color:var(--vm-muted); font-weight:900; }
.vm-icon-btn:disabled { opacity:.35; cursor:not-allowed; }

.vm-drill-title { padding:12px 20px 0; font-size:13px; font-weight:900; color:#5e7892; }
.vm-market-drill { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; padding:14px 20px 18px; }
.vm-market-card { border:1px solid var(--vm-border); border-radius:16px; overflow:hidden; background:#fff; }
.vm-market-card-head { width:100%; border:0; background:#fbfdff; display:flex; align-items:center; justify-content:space-between; padding:13px 15px; cursor:pointer; font-family:'Barlow',sans-serif; }
.vm-market-card-head span { font-weight:900; color:var(--vm-navy); }
.vm-market-card-head em { font-style:normal; font-weight:900; color:var(--vm-blue); }
.vm-market-card-head strong { font-size:18px; }
.vm-market-card-body { display:none; border-top:1px solid var(--vm-border); padding:8px 14px 12px; }
.vm-market-card.open .vm-market-card-body { display:block; }
.vm-tree-row { display:grid; grid-template-columns:28px 1fr auto; align-items:center; gap:8px; padding:8px 0; border-bottom:1px solid #edf3f8; font-size:13px; }
.vm-tree-row:last-child { border-bottom:0; }
.vm-tree-row button { width:22px; height:22px; border:1px solid var(--vm-border); background:#fff; color:var(--vm-blue); border-radius:6px; font-weight:900; cursor:pointer; }
.vm-tree-row .level-label { font-weight:800; }
.vm-tree-row .level-value { font-weight:900; }
.vm-tree-children { margin-left:28px; border-left:1px dashed var(--vm-border); padding-left:12px; display:none; }
.vm-tree-children.open { display:block; }

.vm-toggle { display:inline-flex; padding:3px; border-radius:12px; background:#edf6fc; border:1px solid rgba(0,150,214,.18); }
.vm-toggle-btn { border:0; background:transparent; padding:7px 10px; border-radius:9px; font-size:12px; font-weight:900; cursor:pointer; color:var(--vm-blue); }
.vm-toggle-btn.active { background:var(--vm-navy); color:#fff; }

.vm-map-panel.expanded { position:fixed; inset:20px; z-index:1000; overflow:auto; margin:0; }
.vm-map-filters,.vm-section-filters { margin:0; padding:14px 20px; display:grid; grid-template-columns:180px 180px minmax(250px,1fr) auto; gap:12px; align-items:end; background:#fbfdff; border-bottom:1px solid var(--vm-border); }
.vm-map-filters label,.vm-section-filters label,.vm-form label { display:flex; flex-direction:column; gap:6px; }
.vm-map-filters span,.vm-section-filters span,.vm-form span { font-size:11px; font-weight:900; letter-spacing:.08em; color:var(--vm-muted); text-transform:uppercase; }
.vm-map-filters select,.vm-section-filters select,.vm-section-filters input,.vm-form input,.vm-form select,.vm-form textarea,.vm-copy-input { width:100%; border:1px solid var(--vm-border); border-radius:10px; padding:10px 11px; font-family:'Barlow',sans-serif; font-size:14px; background:#fff; color:var(--vm-navy); }
.vm-map-layout { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:16px; padding:14px 20px 20px; }
.vm-us-map { min-height:520px; border:1px solid var(--vm-border); border-radius:18px; background:radial-gradient(ellipse at center,#eef4f9 0%,#e7eff7 58%,#f7fafc 60%); position:relative; overflow:hidden; }
.vm-map-bg { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:#d2dde8; font-family:'Barlow Condensed',sans-serif; font-size:92px; letter-spacing:.08em; font-weight:800; user-select:none; }
.vm-map-marker { position:absolute; transform:translate(-50%,-50%); width:32px; height:32px; border:0; background:transparent; cursor:pointer; z-index:2; }
.vm-map-marker .dot { position:absolute; inset:8px; border-radius:50%; background:var(--vm-blue); box-shadow:0 0 0 6px rgba(0,150,214,.16),0 0 12px rgba(0,150,214,.65); }
.vm-map-marker.need .dot { background:var(--vm-red); box-shadow:0 0 0 8px rgba(220,38,38,.14),0 0 16px rgba(220,38,38,.65); }
.vm-map-marker.active .dot { outline:3px solid #fff; box-shadow:0 0 0 8px rgba(0,150,214,.18),0 0 0 12px rgba(13,31,51,.12); }
.vm-map-label { display:none; position:absolute; left:22px; top:-5px; background:#fff; border:1px solid var(--vm-border); border-radius:8px; padding:4px 7px; color:var(--vm-navy); font-size:11px; font-weight:800; white-space:nowrap; box-shadow:0 6px 16px rgba(13,31,51,.10); }
.vm-map-marker:hover .vm-map-label,.vm-map-marker.active .vm-map-label { display:block; }
.vm-map-side { border:1px solid var(--vm-border); border-radius:16px; padding:16px; background:#fff; }
.vm-map-side h3 { margin:0 0 4px; font-family:'Barlow Condensed',sans-serif; font-size:24px; }
.vm-map-side p { margin:0 0 12px; color:var(--vm-muted); font-size:13px; }
.vm-selected-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.vm-selected-grid div { border:1px solid var(--vm-border); border-radius:12px; padding:10px; }
.vm-selected-grid span { display:block; font-size:10px; color:var(--vm-muted); text-transform:uppercase; font-weight:900; }
.vm-selected-grid strong { display:block; font-size:22px; margin-top:3px; }
.vm-map-legend { margin-top:14px; font-size:12px; font-weight:800; color:#5d7893; display:grid; gap:8px; }
.legend-dot { width:10px; height:10px; border-radius:50%; display:inline-block; margin-right:7px; }
.legend-dot.red { background:var(--vm-red); }
.legend-dot.blue { background:var(--vm-blue); }
.legend-dot.green { background:var(--vm-green); }

.vm-tabs { display:flex; flex-wrap:wrap; gap:8px; margin:22px 0 10px; }
.vm-tab { border:1px solid var(--vm-border); background:#fff; color:#536d86; padding:9px 13px; border-radius:999px; font-weight:900; cursor:pointer; font-family:'Barlow',sans-serif; }
.vm-tab.active { background:var(--vm-navy); color:#fff; border-color:var(--vm-navy); }
.vm-tab-panel { display:none; }
.vm-tab-panel.active { display:block; }

.vm-table-wrap { overflow:auto; }
.vm-table { width:100%; border-collapse:separate; border-spacing:0; font-size:13px; min-width:950px; }
.vm-table th { background:var(--vm-navy); color:#fff; text-align:left; padding:11px 12px; font-size:11px; letter-spacing:.08em; text-transform:uppercase; white-space:nowrap; }
.vm-table th.num,.vm-table td.num { text-align:right; }
.vm-table td { border-bottom:1px solid var(--vm-border); padding:11px 12px; vertical-align:top; }
.vm-table tr:hover td { background:#fbfdff; }
.vm-note { max-width:360px; white-space:normal; color:#3c566e; }
.vm-badge { display:inline-flex; align-items:center; border-radius:999px; padding:4px 8px; font-weight:900; font-size:11px; border:1px solid var(--vm-border); background:#fff; color:#4b657d; white-space:nowrap; }
.vm-badge.Gap,.vm-badge.Open,.vm-badge.OpenRequest { color:#dc2626; background:#fff1f2; border-color:#fecdd3; }
.vm-badge.Onboarding { color:#7c3aed; background:#f5f3ff; border-color:#ddd6fe; }
.vm-badge.Active,.vm-badge.Covered,.vm-badge.Fulfilled { color:#16a34a; background:#f0fdf4; border-color:#bbf7d0; }
.vm-badge.Surplus { color:#c2410c; background:#fff7ed; border-color:#fed7aa; }
.vm-row-actions { display:flex; gap:6px; }
.vm-row-actions .vm-btn { padding:6px 8px; font-size:11px; border-radius:8px; }
.vm-empty { padding:18px; color:var(--vm-muted); font-weight:700; }

.vm-modal { position:fixed; inset:0; background:rgba(13,31,51,.45); z-index:1200; display:flex; align-items:center; justify-content:center; padding:20px; }
.vm-modal[hidden] { display:none; }
.vm-modal-card { width:min(860px,96vw); max-height:92vh; overflow:auto; background:#fff; border-radius:18px; box-shadow:0 24px 70px rgba(13,31,51,.28); border:1px solid var(--vm-border); }
.vm-modal-small { width:min(560px,96vw); }
.vm-modal-head { background:var(--vm-navy); color:#fff; padding:16px 18px; display:flex; justify-content:space-between; align-items:center; }
.vm-modal-head h2 { margin:0; font-family:'Barlow Condensed',sans-serif; font-size:26px; }
.vm-modal-close { border:0; background:rgba(255,255,255,.12); color:#fff; width:34px; height:34px; border-radius:10px; font-size:22px; cursor:pointer; }
.vm-form { padding:18px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.vm-form .wide { grid-column:1/-1; }
.vm-form textarea { resize:vertical; }
.vm-modal-actions { grid-column:1/-1; display:flex; justify-content:flex-end; gap:10px; padding-top:6px; }
.vm-muted-text { margin:16px 18px; color:var(--vm-muted); }
.vm-copy-input { margin:0 18px 12px; width:calc(100% - 36px); }

@media (max-width:1100px) {
  .vm-kpi-grid,.vm-mini-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .vm-map-layout { grid-template-columns:1fr; }
  .vm-market-drill { grid-template-columns:1fr; }
  .vm-map-filters,.vm-section-filters { grid-template-columns:1fr 1fr; }
  .vm-hero-updated { position:static; transform:none; margin-top:10px; text-align:left; }
}
@media (max-width:760px) {
  .vm-page { padding:18px 16px 64px; }
  .vm-toolbar,.vm-panel-head { flex-direction:column; align-items:stretch; }
  .vm-kpi-grid,.vm-mini-grid,.vm-builder-options,.vm-form { grid-template-columns:1fr; }
  .vm-map-filters,.vm-section-filters { grid-template-columns:1fr; }
  .stf-hero-title-row { align-items:flex-start; }
  .stf-hero-logo { width:92px !important; }
}


/* Real Leaflet map overrides */
.vm-us-map {
  min-height: 620px;
  border: 1px solid var(--vm-border);
  border-radius: 18px;
  background: #e7f0f8;
  position: relative;
  overflow: hidden;
}
.vm-map-panel.expanded .vm-us-map { min-height: calc(100vh - 260px); }
.vm-us-map .leaflet-container,
#vmMap { width: 100%; height: 620px; }
.vm-map-panel.expanded #vmMap { height: calc(100vh - 260px); }
.vm-map-error { padding: 24px; color: #dc2626; font-weight: 800; }
.vm-leaflet-marker {
  width: 32px;
  height: 32px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  border: 3px solid #fff;
  color: #fff;
  font-weight: 900;
  font-size: 11px;
  background: var(--vm-blue);
  box-shadow: 0 0 0 8px rgba(0,150,214,.16), 0 6px 18px rgba(13,31,51,.20);
}
.vm-leaflet-marker.need { background: var(--vm-red); box-shadow: 0 0 0 8px rgba(220,38,38,.16), 0 6px 18px rgba(13,31,51,.20); }
.vm-leaflet-marker.bp { background: var(--vm-blue); }
.vm-map-marker-list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  padding: 0 20px 20px;
}
.vm-map-list-item {
  border: 1px solid var(--vm-border);
  border-left: 4px solid var(--vm-blue);
  background: #fff;
  border-radius: 12px;
  padding: 10px 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  cursor: pointer;
  text-align: left;
  font-family: 'Barlow', sans-serif;
  color: var(--vm-navy);
}
.vm-map-list-item.need { border-left-color: var(--vm-red); }
.vm-map-list-item strong { display:block; font-size: 13px; }
.vm-map-list-item em { display:block; font-style: normal; color: var(--vm-muted); font-size: 11px; font-weight: 800; }
.vm-map-list-item b { font-size: 20px; }
.leaflet-popup-content-wrapper { border-radius: 12px; }
.leaflet-popup-content { font-family: 'Barlow', sans-serif; color: var(--vm-navy); }


/* VM Hub quick presentation fixes */
.vm-toolbar-actions { margin-left:auto; }
.vm-toolbar-actions .vm-btn { white-space:nowrap; }
.vm-map-quick-controls { display:flex; gap:10px; padding:14px 20px 0; align-items:center; flex-wrap:wrap; }
.vm-map-chip { border:1px solid var(--vm-border); background:#fff; color:var(--vm-navy); border-radius:999px; padding:8px 14px; font-weight:900; cursor:pointer; font-family:'Barlow',sans-serif; }
.vm-map-chip.active { background:var(--vm-navy); color:#fff; border-color:var(--vm-navy); }
.vm-map-chip.need.active { background:var(--vm-red); border-color:var(--vm-red); }
.vm-map-chip.current.active { background:var(--vm-green); border-color:var(--vm-green); }
.vm-map-chip.bp.active { background:var(--vm-blue); border-color:var(--vm-blue); }
.vm-map-totals { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; padding:12px 20px 0; }
.vm-map-total-card { border:1px solid var(--vm-border); border-radius:14px; background:#fff; padding:12px 14px; box-shadow:0 6px 18px rgba(13,31,51,.05); }
.vm-map-total-card span { display:block; font-size:11px; text-transform:uppercase; letter-spacing:.07em; color:var(--vm-muted); font-weight:900; }
.vm-map-total-card strong { display:block; margin-top:3px; font-size:28px; font-family:'Barlow Condensed',sans-serif; }
.vm-map-marker-list { display:none !important; }
.vm-leaflet-marker.current { background: var(--vm-green); box-shadow: 0 0 0 8px rgba(22,163,74,.16), 0 6px 18px rgba(13,31,51,.20); }
.legend-dot.green { background: var(--vm-green); }
.vm-floating-add { position:fixed; right:22px; bottom:22px; z-index:900; border:0; border-radius:999px; padding:13px 18px; font-family:'Barlow',sans-serif; font-weight:900; color:#fff; background:var(--vm-blue); box-shadow:0 12px 30px rgba(0,150,214,.35); cursor:pointer; }
.vm-floating-add:hover { transform:translateY(-1px); box-shadow:0 16px 36px rgba(0,150,214,.45); }
.vm-tab[data-tab="needs"]::after { content:' editable'; margin-left:6px; color:#16a34a; font-size:10px; text-transform:uppercase; }

@media (max-width:1100px) {
  .vm-toolbar-actions,.vm-panel-actions { flex-wrap:wrap; }
  .vm-map-totals { grid-template-columns:1fr; }
}


/* VM Hub map state grouping / link copy refinements */
.vm-map-chip-label { font-size:11px; text-transform:uppercase; letter-spacing:.08em; font-weight:900; color:var(--vm-muted); margin-right:2px; }
.vm-map-chip-spacer { flex:1 1 auto; min-width:16px; }
.vm-map-panel .vm-panel-actions { flex-wrap:wrap; }
.vm-map-panel.expanded .vm-us-map { min-height: calc(100vh - 220px); }
.vm-map-panel.expanded #vmMap { height: calc(100vh - 220px); }
.vm-modal-actions-split { align-items:center; }
.vm-modal-action-spacer { flex:1 1 auto; }
.vm-floating-add { right:26px; bottom:26px; }
.vm-leaflet-marker.current { background:#16a34a; box-shadow:0 0 0 6px rgba(22,163,74,.18), 0 10px 26px rgba(22,163,74,.35); }
.vm-leaflet-marker.need { background:#dc2626; box-shadow:0 0 0 6px rgba(220,38,38,.18), 0 10px 26px rgba(220,38,38,.35); }
.vm-leaflet-marker.bp { background:#0284c7; box-shadow:0 0 0 6px rgba(2,132,199,.18), 0 10px 26px rgba(2,132,199,.35); }
@media (max-width: 900px) {
  .vm-page { padding-left:16px; padding-right:16px; }
  .vm-map-chip-spacer { flex-basis:100%; }
  .vm-us-map { min-height:420px; }
}


.vm-map-bp-list { margin-top:16px; border-top:1px solid var(--vm-border); padding-top:12px; }
.vm-map-bp-list h4 { margin:0 0 8px; font-family:'Barlow Condensed',sans-serif; font-size:20px; }
.vm-map-bp-list ul { margin:0; padding-left:18px; color:#3d5872; font-size:13px; }
.vm-map-bp-list li { margin:5px 0; }
.vm-map-bp-list .empty { color:var(--vm-muted); font-weight:700; font-size:13px; }
.vm-tava-grid { padding:18px 20px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.vm-tava-card { border:1px solid var(--vm-border); border-radius:16px; background:#fff; overflow:hidden; box-shadow:0 8px 20px rgba(13,31,51,.05); }
.vm-tava-card.gap { border-left:5px solid var(--vm-red); }
.vm-tava-card.covered { border-left:5px solid var(--vm-green); }
.vm-tava-card.surplus { border-left:5px solid var(--vm-orange); }
.vm-tava-head { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; padding:14px 16px; background:#fbfdff; border-bottom:1px solid var(--vm-border); }
.vm-tava-head h3 { margin:0; font-family:'Barlow Condensed',sans-serif; font-size:24px; }
.vm-tava-head p { margin:4px 0 0; color:var(--vm-muted); font-size:13px; }
.vm-tava-action { font-size:12px; font-weight:900; color:#fff; background:var(--vm-navy); border-radius:999px; padding:6px 10px; white-space:nowrap; }
.vm-tava-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; padding:14px 16px; }
.vm-tava-metric { border:1px solid var(--vm-border); border-radius:12px; padding:9px 10px; }
.vm-tava-metric span { display:block; text-transform:uppercase; font-size:10px; letter-spacing:.07em; color:var(--vm-muted); font-weight:900; }
.vm-tava-metric strong { display:block; margin-top:4px; font-size:22px; font-family:'Barlow Condensed',sans-serif; }
.vm-tava-bps { padding:0 16px 14px; }
.vm-tava-bps h4 { margin:0 0 8px; font-size:13px; text-transform:uppercase; letter-spacing:.08em; color:#5e7892; }
.vm-tava-bp { border-top:1px solid #edf3f8; padding:9px 0; font-size:13px; }
.vm-tava-bp strong { display:block; color:var(--vm-navy); }
.vm-tava-bp small { color:var(--vm-muted); }
@media (max-width:1100px) { .vm-tava-grid { grid-template-columns:1fr; } .vm-tava-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* VM Hub requested refinements - Onboarding Review / Open Crew Needs Overview */
.vm-review-panel {
  margin-top: 22px;
}
.vm-collapse-head {
  align-items: flex-start;
}
.vm-section-collapse {
  width: 32px;
  height: 32px;
  border-radius: 10px;
  border: 1px solid #c9d9e8;
  background: #eef8ff;
  color: #0096d6;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 22px;
  font-weight: 800;
  line-height: 1;
  cursor: pointer;
  flex: 0 0 auto;
  margin-top: 2px;
}
.vm-review-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin: 14px 20px 16px;
}
.vm-review-kpi {
  border: 1px solid #c9d9e8;
  border-radius: 14px;
  background: linear-gradient(180deg, #fff, #f8fbff);
  padding: 14px 16px;
  min-height: 96px;
}
.vm-review-kpi span {
  display:block;
  color:#6b8caa;
  font-size:.72rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.vm-review-kpi strong {
  display:block;
  margin-top:8px;
  color:#001f3f;
  font-family:'Barlow Condensed',sans-serif;
  font-size:2rem;
  line-height:1;
}
.vm-review-kpi small {
  display:block;
  margin-top:8px;
  color:#6b8caa;
  font-weight:600;
}
.vm-review-builder {
  margin: 12px 20px;
}
.vm-review-drill {
  margin: 10px 20px 18px;
}
.vm-review-drill .vm-market-card {
  max-width:none;
}
.vm-form select,
.vm-form input[list] {
  width:100%;
  min-height:44px;
  border:1px solid #c9d9e8;
  border-radius:10px;
  padding:0 12px;
  font-family:'Barlow',sans-serif;
  font-size:0.95rem;
  background:#fff;
  color:#0d1f33;
}
@media (max-width: 1100px) {
  .vm-review-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  .vm-review-kpis { grid-template-columns: 1fr; }
}

/* VM Hub quick refinement: remove Current Staffing Need Snapshot section from the page.
   Keeping the HTML in place avoids JavaScript reference errors while fully hiding it visually. */
.vm-health-panel {
  display: none !important;
}


/* VM Hub Onboarding Refinement - Jul 15 */
.stf-hero { padding:18px 22px 20px !important; }
.stf-hero-inner { max-width:1600px !important; min-height:82px !important; }
.stf-hero-logo { width:122px !important; }
.stf-hero-title { font-size:clamp(32px,3.2vw,48px) !important; }
.stf-hero-sub { font-size:13px !important; }
.vm-page { max-width:1680px; padding-left:14px; padding-right:14px; }
.vm-toolbar-actions { gap:8px; flex-wrap:wrap; }
.vm-floating-add { transition: opacity .2s ease, transform .2s ease; }
body:not(.vm-show-floating-add) .vm-floating-add { opacity:0; pointer-events:none; transform:translateY(12px); }

.vm-panel-head.vm-collapse-head {
  align-items:center;
  justify-content:space-between;
}
.vm-collapse-head > div:first-of-type { flex:1 1 auto; text-align:left; }
.vm-section-collapse {
  width:34px;
  height:34px;
  border-radius:999px;
  font-size:20px;
  background:#fff;
  color:var(--vm-blue);
  border-color:#b8dcf3;
  box-shadow:0 4px 12px rgba(0,150,214,.10);
}
.vm-export-actions { gap:8px; align-items:center; flex-wrap:wrap; }
.vm-icon-refresh {
  width:38px;
  height:38px;
  border-radius:12px;
  border:1px solid rgba(0,150,214,.25);
  background:rgba(0,150,214,.08);
  color:var(--vm-blue);
  font-weight:900;
  font-size:18px;
  cursor:pointer;
}
.vm-export-icon {
  min-width:42px;
  height:38px;
  border:0;
  border-radius:10px;
  color:#fff;
  font-weight:900;
  font-size:11px;
  letter-spacing:.06em;
  cursor:pointer;
  font-family:'Barlow',sans-serif;
  box-shadow:0 8px 18px rgba(13,31,51,.12);
}
.vm-export-icon.csv { background:#0ea5e9; }
.vm-export-icon.xlsx { background:#16a34a; }
.vm-export-icon.pdf { background:#ef4444; }

.lower-s { font-size:.72em; vertical-align:baseline; }
.vm-section-filters[data-scope="onboarding"] {
  grid-template-columns: repeat(5, minmax(150px, 1fr)) auto;
  align-items:end;
}
.vm-view-toggle {
  display:inline-flex;
  gap:4px;
  padding:4px;
  margin:12px 20px 0;
  border:1px solid rgba(0,150,214,.18);
  background:#edf6fc;
  border-radius:14px;
}
.vm-view-toggle .vm-toggle-btn.active {
  background:var(--vm-navy);
  color:#fff;
}
.vm-analytics-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin:0 20px 14px;
}
.vm-analytics-card {
  background:#fbfdff;
  border:1px solid var(--vm-border);
  border-radius:14px;
  padding:12px 14px;
}
.vm-analytics-card span {
  display:block;
  color:#6b8caa;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.vm-analytics-card strong {
  display:block;
  margin-top:5px;
  color:var(--vm-navy);
  font-size:18px;
  font-weight:900;
}
.vm-analytics-card small {
  display:block;
  margin-top:5px;
  color:#6b8caa;
  font-size:12px;
}
.vm-review-builder .vm-builder-options {
  grid-template-columns:1fr;
}
.vm-builder-option-compact {
  min-height:48px;
  padding:8px 10px;
}
.vm-builder-option-compact label {
  font-size:14px;
}
.vm-builder-option-compact small {
  font-size:12px;
}
.vm-review-drill .vm-market-card {
  max-width:none;
}
.vm-modal {
  backdrop-filter: blur(5px);
}
@media (max-width:1300px) {
  .vm-section-filters[data-scope="onboarding"] { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .vm-analytics-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:760px) {
  .vm-page { padding-left:12px; padding-right:12px; }
  .vm-section-filters[data-scope="onboarding"] { grid-template-columns:1fr; }
  .vm-analytics-grid { grid-template-columns:1fr; }
}

/* VM Hub Onboarding UI polish - 2026-07-15 */
.vm-page { max-width: 1760px !important; padding-left: 10px !important; padding-right: 10px !important; }
.stf-hero { padding-top: 18px !important; padding-bottom: 18px !important; }
.stf-hero-inner { min-height: 88px !important; }
.stf-hero-title { font-size: clamp(30px,3.5vw,46px) !important; }
.vm-section-title-left { flex:1; min-width:220px; text-align:left; }
.vm-collapse-head { align-items:center; }
.vm-section-collapse {
  width:34px !important; height:34px !important; border-radius:999px !important;
  display:grid !important; place-items:center !important; font-size:17px !important;
  line-height:1 !important; color:var(--vm-blue) !important; background:#f1f9fe !important;
  border:1px solid rgba(0,150,214,.22) !important; box-shadow:none !important;
}
.vm-section-collapse:hover { background:#e4f5fd !important; transform:translateY(-1px); }
.vm-export-actions { gap:8px; }
.vm-icon-refresh {
  width:40px; height:40px; border-radius:12px; border:1px solid rgba(0,150,214,.22);
  background:#f4fbff; color:var(--vm-blue); font-size:18px; font-weight:900; cursor:pointer;
}
.vm-icon-refresh:hover { border-color:var(--vm-blue); transform:translateY(-1px); }
.vm-export-menu { position:relative; }
.vm-export-pill {
  height:40px; min-width:98px; border-radius:999px; border:1px solid var(--vm-border);
  background:#fff; color:var(--vm-navy); padding:0 14px; font-family:'Barlow',sans-serif;
  font-weight:900; cursor:pointer; box-shadow:0 4px 12px rgba(13,31,51,.06);
}
.vm-export-pill:hover { border-color:var(--vm-blue); color:var(--vm-blue); }
.vm-export-menu-panel {
  position:absolute; top:calc(100% + 8px); right:0; min-width:124px; background:#fff;
  border:1px solid var(--vm-border); border-radius:14px; box-shadow:0 18px 40px rgba(13,31,51,.18);
  padding:6px; z-index:80;
}
.vm-export-menu-panel button {
  width:100%; border:0; background:transparent; color:var(--vm-navy); padding:9px 10px;
  border-radius:10px; text-align:left; font-weight:900; font-family:'Barlow',sans-serif; cursor:pointer;
}
.vm-export-menu-panel button:hover { background:#eef8fe; color:var(--vm-blue); }
.vm-export-icon { display:none !important; }
.vm-review-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.vm-review-kpi span { white-space:nowrap; }
.lower-s { font-size:1em !important; vertical-align:baseline !important; margin-left:0 !important; }
.vm-active-filter-bar {
  display:flex; gap:8px; flex-wrap:wrap; align-items:center; padding:12px 20px 0; min-height:40px;
}
.vm-filter-chip {
  display:inline-flex; align-items:center; gap:6px; border:1px solid var(--vm-border); background:#fff;
  border-radius:999px; padding:6px 10px; font-size:12px; font-weight:800; color:#59738d;
}
.vm-filter-chip strong { color:var(--vm-navy); }
.vm-filter-chip.empty { color:#8aa0b6; background:#fbfdff; }
.vm-filter-backdrop {
  position:fixed; inset:0; background:rgba(13,31,51,.28); backdrop-filter:blur(5px); z-index:1180;
}
.vm-section-filters[data-scope] {
  position:fixed !important; top:0; right:0; bottom:0; width:min(410px,92vw);
  z-index:1190; display:none !important; grid-template-columns:1fr !important;
  align-content:start; overflow:auto; padding:18px !important; background:#fff !important;
  border-left:1px solid var(--vm-border); border-bottom:0 !important;
  box-shadow:-24px 0 70px rgba(13,31,51,.26);
  transform:translateX(12px); opacity:0; transition:.18s ease;
}
.vm-section-filters[data-scope].open { display:grid !important; transform:translateX(0); opacity:1; }
.vm-filter-drawer-head { display:flex; justify-content:space-between; align-items:flex-start; gap:14px; padding-bottom:8px; border-bottom:1px solid var(--vm-border); margin-bottom:4px; }
.vm-filter-drawer-head h3 { margin:0; font-family:'Barlow Condensed',sans-serif; font-size:26px; line-height:1; }
.vm-filter-drawer-head p { margin:4px 0 0; color:var(--vm-muted); font-size:12px; }
.vm-filter-close { border:0; background:#eef8fe; color:var(--vm-blue); width:34px; height:34px; border-radius:10px; font-size:22px; cursor:pointer; }
.vm-builder.vm-review-builder[hidden] { display:none !important; }
.vm-review-builder .vm-builder-options { grid-template-columns:1fr !important; gap:7px !important; }
.vm-builder-option-compact {
  min-height:46px !important; padding:8px 10px !important; grid-template-columns:auto 1fr auto auto !important;
  border-radius:11px !important;
}
.vm-builder-option-compact label { font-size:13px !important; }
.vm-builder-option-compact small { font-size:11px !important; }
.vm-builder-option-compact[draggable="true"] { cursor:grab; }
.vm-builder-option-compact.dragging { opacity:.45; }
.vm-drag-handle {
  width:28px; height:28px; border:1px solid var(--vm-border); border-radius:8px; display:grid;
  place-items:center; color:#8aa0b6; background:#fff; font-weight:900; cursor:grab;
}
.vm-drag-handle.disabled { opacity:.25; cursor:not-allowed; }
.vm-tree-row button {
  display:grid; place-items:center; font-size:13px; line-height:1; border-radius:999px;
  background:#f2f9fe; border-color:#cae9f8; color:var(--vm-blue);
}
@media (max-width:900px) {
  .vm-review-kpis { grid-template-columns:1fr 1fr; }
  .vm-page { padding-left:12px !important; padding-right:12px !important; }
}
@media (max-width:640px) {
  .vm-review-kpis { grid-template-columns:1fr; }
  .vm-panel-actions { flex-wrap:wrap; justify-content:flex-start; }
}


/* VM Hub Open Needs + Onboarding final polish - 2026-07-15 */
.vm-review-panel.is-collapsed .vm-panel-actions,
.vm-review-panel.is-collapsed .vm-export-actions {
  display: none !important;
}
.vm-review-panel.is-collapsed .vm-panel-head {
  border-bottom: 0;
}
.vm-section-collapse {
  font-family: 'Barlow', sans-serif !important;
  font-size: 22px !important;
  font-weight: 900 !important;
  transition: transform .15s ease, background .15s ease;
}
.vm-section-collapse[aria-expanded="true"] {
  transform: rotate(90deg);
}
.vm-section-collapse[aria-expanded="true"] {
  transform: none;
}
.vm-view-toggle + .vm-table-wrap,
#onboardingTableWrap,
#openNeedsTableWrap {
  margin: 12px 20px 22px;
}
#onboardingTableWrap .vm-table,
#openNeedsTableWrap .vm-table {
  border-radius: 14px;
  overflow: hidden;
}
.vm-multi-select {
  min-height: 104px !important;
  padding: 8px 10px !important;
}
.vm-field-hint {
  display: block;
  margin-top: 5px;
  color: var(--vm-muted);
  font-size: 11px;
  font-weight: 700;
}
.vm-form input:invalid {
  border-color: #ef4444;
  box-shadow: 0 0 0 3px rgba(239,68,68,.09);
}
.vm-builder-option-compact {
  max-width: 620px;
  grid-template-columns: 34px auto 1fr auto !important;
}
.vm-builder-option-compact .vm-drag-handle {
  order: 0;
}
.vm-builder-option-compact input {
  order: 1;
}
.vm-builder-option-compact label {
  order: 2;
}
.vm-builder-option-compact small {
  order: 3;
}
.vm-tree-row button {
  width: 24px;
  height: 24px;
  font-weight: 900;
}
#openNeedsTableWrap {
  padding-top: 6px;
}
.vm-review-panel .vm-panel-actions .vm-btn-primary {
  white-space: nowrap;
}

/* VM Hub final polish - 07/15 late fixes */
.vm-section-collapse {
  width: 34px !important;
  height: 34px !important;
  border-radius: 999px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  border:1px solid rgba(0,150,214,.28) !important;
  background:#f0fbff !important;
  color:var(--vm-blue) !important;
  font-size:16px !important;
  line-height:1 !important;
  font-weight:900 !important;
  box-shadow:0 8px 18px rgba(0,150,214,.08) !important;
}
.vm-panel-head.vm-collapse-head { align-items:center; }
.vm-builder-body > p::after { content:' Drag selected cards with the mouse using the handle on the left.'; font-weight:800; color:var(--vm-blue); }
.vm-builder-options { display:flex; flex-direction:column; gap:8px; align-items:flex-start; }
.vm-builder-option-compact {
  width:min(620px, 100%) !important;
  grid-template-columns:36px 28px minmax(140px, 1fr) auto !important;
  align-items:center !important;
  padding:10px 12px !important;
}
.vm-drag-handle {
  cursor:grab;
  width:28px;height:28px;
  border:1px solid var(--vm-border);
  border-radius:8px;
  display:flex;align-items:center;justify-content:center;
  color:var(--vm-muted);
  background:#fff;
}
.vm-builder-option.dragging { opacity:.55; outline:2px dashed var(--vm-blue); }
.vm-capability-select { min-height:132px; }
.need-completion-field[hidden], #copyPublicLinkInlineBtn[hidden] { display:none !important; }
.vm-toast {
  position:fixed; right:24px; bottom:24px; z-index:9999;
  max-width:420px; padding:14px 18px; border-radius:14px;
  background:#0d1f33; color:#fff; font-weight:800;
  box-shadow:0 18px 40px rgba(13,31,51,.28);
}
.vm-toast.ok { background:#0d1f33; }
.vm-toast.err { background:#991b1b; }
.vm-map-filters label:nth-child(3) { max-width:260px; }
.vm-map-filters label:nth-child(3) select { min-width:220px; }
.vm-floating-add { display:none !important; }
.vm-table-wrap { padding-top:12px; }
#openNeedsTableWrap.vm-table-wrap, #onboardingTableWrap.vm-table-wrap { padding-top:18px; }
.vm-state-select { height:44px !important; }
.vm-form .vm-field-hint { color:var(--vm-muted); font-size:11px; line-height:1.25; margin-top:4px; }
#mapPanelBody[hidden], #frontierTavaBody[hidden] { display:none !important; }

/* VM Hub requested refinements - 2026-07-16 */
#crewNeedRequestsBody[hidden],
#businessPartnerCrmBody[hidden] {
  display:none !important;
}

/* Keep drilldown totals close to their labels instead of at the far right edge. */
.vm-review-drill {
  max-width: 960px;
}
.vm-review-drill .vm-market-card {
  width: min(940px, 100%);
  max-width: 940px;
}
.vm-review-drill .vm-market-card-head {
  display:grid;
  grid-template-columns:minmax(220px, 380px) minmax(130px, 190px) 92px;
  justify-content:start;
  column-gap:18px;
  text-align:left;
}
.vm-review-drill .vm-market-card-head em {
  text-align:left;
}
.vm-review-drill .vm-market-card-head strong {
  text-align:right;
}
.vm-review-drill .vm-tree-row {
  grid-template-columns:28px minmax(210px, 500px) 92px;
  justify-content:start;
  column-gap:10px;
}
.vm-review-drill .vm-tree-row .level-value {
  text-align:right;
}

/* Searchable single/multi-select dropdowns used by filters and edit modals. */
.vm-choice {
  position:relative;
  width:100%;
  min-width:0;
}
.vm-choice-toggle {
  width:100%;
  min-height:44px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  border:1px solid var(--vm-border);
  border-radius:10px;
  padding:9px 11px;
  background:#fff;
  color:var(--vm-navy);
  font-family:'Barlow',sans-serif;
  font-size:14px;
  font-weight:700;
  text-align:left;
  cursor:pointer;
}
.vm-choice-toggle:hover,
.vm-choice-toggle[aria-expanded="true"] {
  border-color:var(--vm-blue);
  box-shadow:0 0 0 3px rgba(0,150,214,.09);
}
.vm-choice-toggle b {
  color:var(--vm-blue);
  font-size:14px;
  flex:0 0 auto;
}
.vm-choice-summary {
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--vm-navy) !important;
  font-size:14px !important;
  font-weight:700 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
}
.vm-choice-menu {
  position:absolute;
  top:calc(100% + 6px);
  left:0;
  right:0;
  z-index:1350;
  padding:9px;
  border:1px solid var(--vm-border);
  border-radius:12px;
  background:#fff;
  box-shadow:0 18px 42px rgba(13,31,51,.20);
}
.vm-choice-menu[hidden] {
  display:none !important;
}
.vm-choice-search {
  width:100% !important;
  min-height:40px !important;
  margin:0 0 8px !important;
  padding:8px 10px !important;
  border:1px solid var(--vm-border) !important;
  border-radius:9px !important;
  font-size:13px !important;
  letter-spacing:0 !important;
  text-transform:none !important;
}
.vm-choice-options {
  max-height:230px;
  overflow:auto;
  border-top:1px solid #edf3f8;
  border-bottom:1px solid #edf3f8;
  padding:5px 0;
}
.vm-choice-option {
  display:flex !important;
  flex-direction:row !important;
  align-items:center;
  gap:9px !important;
  min-height:36px;
  padding:7px 8px;
  border-radius:8px;
  cursor:pointer;
}
.vm-choice-option:hover {
  background:#eef8fe;
}
.vm-choice-option[hidden] {
  display:none !important;
}
.vm-choice-option input {
  width:16px !important;
  height:16px !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  flex:0 0 auto;
  accent-color:var(--vm-blue);
}
.vm-choice-option span {
  color:var(--vm-navy) !important;
  font-size:13px !important;
  font-weight:700 !important;
  letter-spacing:0 !important;
  line-height:1.25 !important;
  text-transform:none !important;
}
.vm-choice-empty {
  padding:12px 8px;
  color:var(--vm-muted);
  font-size:12px;
  font-weight:700;
}
.vm-choice-actions {
  display:flex;
  justify-content:space-between;
  gap:8px;
  padding-top:8px;
}
.vm-choice-actions button {
  border:0;
  border-radius:8px;
  padding:7px 10px;
  background:#eef8fe;
  color:var(--vm-blue);
  font-family:'Barlow',sans-serif;
  font-size:12px;
  font-weight:900;
  cursor:pointer;
}
.vm-choice-actions button:last-child {
  background:var(--vm-blue);
  color:#fff;
}
.vm-filter-choice-label {
  min-width:0;
}
.vm-section-filters .vm-choice-menu {
  position:relative;
  top:auto;
  margin-top:5px;
  box-shadow:0 12px 28px rgba(13,31,51,.12);
}

/* Complete CRM table mirrors the CRM source fields and scrolls horizontally. */
.vm-crm-table {
  min-width:2500px;
}
.vm-crm-table th:first-child,
.vm-crm-table td:first-child {
  position:sticky;
  left:0;
  z-index:2;
  background:#fff;
}
.vm-crm-table thead th:first-child {
  background:var(--vm-navy);
  z-index:3;
}

@media (max-width:720px) {
  .vm-review-drill {
    max-width:none;
  }
  .vm-review-drill .vm-market-card {
    width:100%;
    max-width:none;
  }
  .vm-review-drill .vm-market-card-head {
    grid-template-columns:minmax(150px, 1fr) auto;
    gap:8px 12px;
  }
  .vm-review-drill .vm-market-card-head em {
    grid-column:1 / 2;
  }
  .vm-review-drill .vm-market-card-head strong {
    grid-column:2;
    grid-row:1 / span 2;
    align-self:center;
  }
  .vm-review-drill .vm-tree-row {
    grid-template-columns:28px minmax(130px, 1fr) 70px;
  }
}

/* VM Hub Phase 1 refinements - 2026-07-17 */
.vm-kpi-main {
  display:block;
  width:100%;
  padding:0;
  border:0;
  background:transparent;
  color:inherit;
  font:inherit;
  text-align:left;
  cursor:pointer;
}
.vm-kpi-main:focus-visible {
  outline:3px solid rgba(0,150,214,.28);
  outline-offset:6px;
  border-radius:10px;
}
.vm-kpi-hint {
  display:inline-flex;
  margin-top:10px;
  color:var(--vm-blue);
  font-size:11px;
  font-weight:900;
  letter-spacing:.02em;
}
.vm-kpi.expanded { grid-column:span 2; }
.vm-kpi-detail {
  margin-top:12px;
  padding-top:10px;
  border-top:1px solid #e4edf4;
}
.vm-kpi-detail[hidden] { display:none !important; }
.vm-kpi-detail-list { display:grid; gap:6px; }
.vm-kpi-detail-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:7px 9px;
  border-radius:9px;
  background:#f7fafc;
  font-size:12px;
}
.vm-kpi-detail-row strong { white-space:nowrap; color:var(--vm-navy); }
.vm-kpi-detail-empty { color:var(--vm-muted); font-size:12px; font-weight:700; }

.vm-table-tools {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:4px 0 10px;
}
.vm-table-count { color:var(--vm-muted); font-size:12px; font-weight:800; }
.vm-column-picker { position:relative; }
.vm-column-picker > summary {
  list-style:none;
  cursor:pointer;
  border:1px solid var(--vm-border);
  border-radius:10px;
  padding:9px 12px;
  background:#fff;
  color:var(--vm-navy);
  font-size:12px;
  font-weight:900;
}
.vm-column-picker > summary::-webkit-details-marker { display:none; }
.vm-column-picker[open] > summary { border-color:var(--vm-blue); box-shadow:0 0 0 3px rgba(0,150,214,.08); }
.vm-column-picker-panel {
  position:absolute;
  right:0;
  top:calc(100% + 6px);
  z-index:1200;
  width:min(390px, calc(100vw - 40px));
  padding:12px;
  border:1px solid var(--vm-border);
  border-radius:12px;
  background:#fff;
  box-shadow:0 18px 42px rgba(13,31,51,.2);
}
.vm-column-picker-actions { display:flex; gap:8px; margin-bottom:10px; }
.vm-column-picker-actions button {
  border:0;
  border-radius:8px;
  padding:7px 10px;
  background:#eef8fe;
  color:var(--vm-blue);
  font-size:11px;
  font-weight:900;
  cursor:pointer;
}
.vm-column-options {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:6px 10px;
  max-height:310px;
  overflow:auto;
}
.vm-column-options label {
  display:flex;
  align-items:center;
  gap:7px;
  min-width:0;
  padding:5px;
  border-radius:7px;
  color:var(--vm-navy);
  font-size:12px;
  font-weight:700;
  cursor:pointer;
}
.vm-column-options label:hover { background:#f2f8fc; }
.vm-column-options input { width:15px; height:15px; accent-color:var(--vm-blue); }
.vm-wide-table { max-width:100%; overflow-x:auto; }
.vm-wide-table .vm-table { min-width:1450px; }
.vm-wide-table .vm-table th:first-child,
.vm-wide-table .vm-table td:first-child {
  position:sticky;
  left:0;
  z-index:3;
}
.vm-wide-table .vm-table td:first-child { background:#fff; }
.vm-wide-table .vm-table th:first-child { background:var(--vm-navy); z-index:4; }
.vm-row-actions { display:flex; align-items:center; gap:6px; white-space:nowrap; }
.vm-icon-action {
  width:30px;
  height:30px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--vm-border);
  border-radius:8px;
  background:#fff;
  cursor:pointer;
  font-size:14px;
}
.vm-icon-action.edit { color:var(--vm-blue); }
.vm-icon-action.delete { color:#b42318; }
.vm-icon-action:hover { transform:translateY(-1px); box-shadow:0 5px 12px rgba(13,31,51,.12); }

.vm-confirm-card { border-top:5px solid #d92d20; }
.vm-confirm-message { margin:4px 0 6px; color:var(--vm-navy); font-size:14px; line-height:1.55; }
.vm-toast.warn { background:#9a6700; }
.vm-toast.error, .vm-toast.err { background:#991b1b; }
.vm-choice-toggle:disabled { cursor:not-allowed; opacity:.62; background:#f4f7f9; }
.vm-form input[readonly] { background:#f4f7f9; color:#536273; cursor:not-allowed; }

/* Keep the total directly above the HC values in the drilldown. */
.vm-review-drill .vm-market-card-head,
.vm-review-drill .vm-tree-row { width:min(760px, 100%); }
.vm-review-drill .vm-market-card-head {
  grid-template-columns:minmax(220px, 380px) 150px 92px;
}
.vm-review-drill .vm-tree-row {
  grid-template-columns:28px minmax(210px, 500px) 92px;
}

@media (max-width:900px) {
  .vm-kpi.expanded { grid-column:span 1; }
  .vm-table-tools { align-items:flex-start; flex-direction:column; }
  .vm-column-picker-panel { left:0; right:auto; }
}
@media (max-width:560px) {
  .vm-column-options { grid-template-columns:1fr; }
}

/* VM Hub card detail + standardized City / County selector - 2026-07-17 */
.vm-frontier-kpi-detail {
  margin:-4px 0 18px;
  padding:16px 18px;
  border:1px solid var(--vm-border);
  border-left:5px solid var(--vm-blue);
  border-radius:16px;
  background:#fff;
  box-shadow:var(--vm-shadow);
}
.vm-frontier-kpi-detail[hidden] { display:none !important; }
.vm-frontier-detail-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:12px;
}
.vm-frontier-detail-eyebrow {
  display:block;
  margin-bottom:3px;
  color:var(--vm-blue);
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.vm-frontier-detail-head h3 {
  margin:0 0 3px;
  font-family:'Barlow Condensed',sans-serif;
  font-size:22px;
  line-height:1.05;
}
.vm-frontier-detail-head p { margin:0; color:var(--vm-muted); font-size:12px; }
.vm-frontier-detail-close {
  width:34px;
  height:34px;
  flex:0 0 auto;
  border:1px solid var(--vm-border);
  border-radius:10px;
  background:#f7fafc;
  color:var(--vm-navy);
  font-size:22px;
  line-height:1;
  cursor:pointer;
}
.vm-frontier-detail-close:hover { border-color:var(--vm-blue); color:var(--vm-blue); }
.vm-frontier-detail-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}
.vm-frontier-detail-item {
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:9px 11px;
  border:1px solid #e8eff5;
  border-radius:10px;
  background:#f8fbfd;
  font-size:12px;
}
.vm-frontier-detail-item span {
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-weight:700;
}
.vm-frontier-detail-item strong { flex:0 0 auto; color:var(--vm-navy); white-space:nowrap; }

.vm-map-filters {
  grid-template-columns:repeat(4,minmax(150px,1fr)) auto;
}
.vm-city-manual { margin-top:7px; }
.vm-city-manual[hidden] { display:none !important; }

@media (max-width:1200px) {
  .vm-frontier-detail-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .vm-map-filters { grid-template-columns:repeat(2,minmax(180px,1fr)); }
  .vm-map-filters > .vm-btn { align-self:end; }
}
@media (max-width:720px) {
  .vm-frontier-detail-grid { grid-template-columns:1fr; }
  .vm-frontier-detail-head { align-items:center; }
  .vm-map-filters { grid-template-columns:1fr; }
}
.vm-choice-use-manual {
  width:calc(100% - 10px);
  margin:5px;
  padding:9px 10px;
  border:1px dashed var(--vm-blue);
  border-radius:9px;
  background:#eef8fe;
  color:var(--vm-blue);
  font-family:'Barlow',sans-serif;
  font-size:12px;
  font-weight:900;
  text-align:left;
  cursor:pointer;
}
.vm-choice-use-manual[hidden] { display:none !important; }


/* VM Hub Phase 2 - map modes, compact TAVA, CRM overview, workspace navigation */
.vm-workspace-nav {
  position:fixed;
  left:14px;
  top:50%;
  transform:translateY(-42%);
  z-index:850;
  width:68px;
  display:grid;
  gap:7px;
  padding:9px 7px;
  border:1px solid rgba(208,220,232,.92);
  border-radius:18px;
  background:rgba(255,255,255,.96);
  box-shadow:0 16px 38px rgba(13,31,51,.16);
  backdrop-filter:blur(10px);
}
.vm-workspace-nav button {
  min-height:52px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  border:0;
  border-radius:12px;
  background:transparent;
  color:#68839d;
  cursor:pointer;
  font-family:'Barlow',sans-serif;
}
.vm-workspace-nav button:hover,
.vm-workspace-nav button.active { background:#eaf7fd; color:var(--vm-blue); }
.vm-workspace-nav button span { font-size:18px; font-weight:900; line-height:1; }
.vm-workspace-nav button em { font-style:normal; font-size:9px; font-weight:900; letter-spacing:.02em; }

.vm-map-source-switch {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:9px;
  padding:14px 20px 4px;
}
.vm-map-source-switch > span { color:var(--vm-muted); font-size:11px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.vm-map-source-btn {
  border:1px solid var(--vm-border);
  border-radius:999px;
  padding:9px 14px;
  background:#fff;
  color:var(--vm-navy);
  font-family:'Barlow',sans-serif;
  font-weight:900;
  cursor:pointer;
}
.vm-map-source-btn.active { background:var(--vm-navy); border-color:var(--vm-navy); color:#fff; }
.vm-map-source-btn[data-map-mode="crew"].active { background:var(--vm-red); border-color:var(--vm-red); }
.vm-map-source-btn[data-map-mode="onboarding"].active { background:var(--vm-blue); border-color:var(--vm-blue); }
.vm-map-source-btn[data-map-mode="frontier"].active { background:#4f46e5; border-color:#4f46e5; }
.vm-map-filters .vm-choice-menu { z-index:1450; }
.vm-map-filters .vm-choice-toggle { min-height:42px; }
.vm-map-filters .vm-choice-toggle:disabled { background:#f5f7f9; }
.vm-selected-grid-six { grid-template-columns:repeat(2,minmax(0,1fr)); }
.vm-selected-grid-six > div:nth-child(3) strong.negative { color:var(--vm-red); }
.vm-selected-grid-six > div:nth-child(3) strong.positive { color:var(--vm-blue); }
.vm-selected-grid-six > div:nth-child(3) strong.balanced { color:var(--vm-green); }
.legend-dot.orange { background:var(--vm-orange); }
.vm-map-related { display:grid; gap:12px; }
.vm-map-related-section { border-top:1px solid var(--vm-border); padding-top:10px; }
.vm-map-related-section h4 { margin:0 0 7px; font-family:'Barlow Condensed',sans-serif; font-size:18px; }
.vm-map-related-section ul { margin:0; padding-left:17px; color:#45627e; font-size:12px; }
.vm-map-related-section li { margin:5px 0; }
.vm-map-status-pill { display:inline-flex; align-items:center; border-radius:999px; padding:4px 8px; font-size:10px; font-weight:900; }
.vm-map-status-pill.gap { background:#fee2e2; color:#b42318; }
.vm-map-status-pill.surplus { background:#fff3d6; color:#a15c00; }
.vm-map-status-pill.covered { background:#dcfce7; color:#15803d; }
.vm-leaflet-marker.frontier-gap { background:#dc2626; }
.vm-leaflet-marker.frontier-surplus { background:#f59e0b; }
.vm-leaflet-marker.frontier-covered { background:#16a34a; }
.vm-leaflet-marker.crew { background:#dc2626; }
.vm-leaflet-marker.onboarding { background:#0096d6; }
.vm-leaflet-marker.frontier-covered span { font-size:17px; }

.vm-tava-summary {
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:10px;
  padding:16px 20px 4px;
}
.vm-tava-summary-card { border:1px solid var(--vm-border); border-radius:14px; padding:12px 13px; background:#fff; box-shadow:0 6px 16px rgba(13,31,51,.05); }
.vm-tava-summary-card span { display:block; color:var(--vm-muted); font-size:10px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.vm-tava-summary-card strong { display:block; margin-top:4px; font-family:'Barlow Condensed',sans-serif; font-size:28px; }
.vm-tava-summary-card strong.negative { color:var(--vm-red); }
.vm-tava-summary-card strong.positive { color:var(--vm-blue); }
.vm-tava-summary-card strong.balanced { color:var(--vm-green); }
.vm-tava-controls { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 20px 4px; }
.vm-inline-filters { display:grid !important; position:static !important; transform:none !important; width:auto !important; max-width:none !important; height:auto !important; box-shadow:none !important; border-left:0 !important; grid-template-columns:repeat(3,minmax(180px,1fr)) auto; }
.vm-inline-filters .vm-filter-drawer-head { display:none; }
.vm-tava-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.vm-tava-card { min-width:0; }
.vm-tava-head { padding:11px 12px; }
.vm-tava-head h3 { font-size:21px; }
.vm-tava-action { white-space:normal; text-align:right; line-height:1.2; }
.vm-tava-edit { width:30px; height:30px; border:1px solid var(--vm-border); border-radius:8px; background:#fff; color:var(--vm-blue); cursor:pointer; font-weight:900; }
.vm-tava-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); padding:11px 12px; gap:7px; }
.vm-tava-metric { padding:7px 8px; }
.vm-tava-metric strong { font-size:20px; }
.vm-tava-bps { padding:0 12px 12px; }
.vm-tava-bps summary { list-style:none; cursor:pointer; padding:9px 0; color:#536f89; font-size:11px; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }
.vm-tava-bps summary::-webkit-details-marker { display:none; }
.vm-tava-bps summary::after { content:'+'; float:right; color:var(--vm-blue); font-size:16px; }
.vm-tava-bps[open] summary::after { content:'−'; }
.vm-tava-bps-body { max-height:180px; overflow:auto; }
.vm-tava-form-preview { border:1px solid var(--vm-border); border-radius:12px; padding:11px 13px; background:#f8fbfd; }
.vm-tava-form-preview span,.vm-tava-form-preview small { display:block; }
.vm-tava-form-preview strong { display:block; font-family:'Barlow Condensed',sans-serif; font-size:30px; }
#tavaTableWrap { margin:12px 20px 20px; }
.vm-market-table-tools { margin:12px 20px 8px; }
#marketOverviewBody[hidden] { display:none !important; }

@media (max-width:1480px) {
  .vm-page { padding-left:92px; }
  .vm-tava-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .vm-tava-summary { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:1050px) {
  .vm-workspace-nav { display:none; }
  .vm-page { padding-left:18px !important; }
  .vm-tava-grid { grid-template-columns:1fr; }
  .vm-tava-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .vm-inline-filters { grid-template-columns:repeat(2,minmax(180px,1fr)); }
}
@media (max-width:640px) {
  .vm-tava-summary { grid-template-columns:1fr; }
  .vm-inline-filters { grid-template-columns:1fr; }
  .vm-tava-controls { align-items:flex-start; flex-direction:column; }
}

.vm-tava-head-actions { display:flex; align-items:flex-start; justify-content:flex-end; gap:8px; min-width:0; }
.vm-tava-head-actions .vm-icon-action { flex:0 0 auto; }
.vm-tava-footer { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; padding:9px 12px 11px; border-top:1px solid var(--vm-border); color:var(--vm-muted); font-size:11px; }
.vm-tava-footer span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.vm-tava-footer small { flex:0 0 auto; white-space:nowrap; }
.vm-tava-summary-card small { display:block; margin-top:3px; color:var(--vm-muted); font-size:10px; line-height:1.25; }
@media (max-width:1480px) { .vm-tava-summary { grid-template-columns:repeat(3,minmax(0,1fr)); } }

/* VM Hub workspace shell - single-section navigation and collapsible sidebar */
:root {
  --vm-workspace-sidebar-expanded:250px;
  --vm-workspace-sidebar-collapsed:76px;
  --vm-workspace-top:72px;
}

body.vm-sidebar-expanded .stf-hero,
body.vm-sidebar-expanded .vm-page {
  margin-left:var(--vm-workspace-sidebar-expanded) !important;
  transition:margin-left .22s ease;
}
body.vm-sidebar-collapsed .stf-hero,
body.vm-sidebar-collapsed .vm-page {
  margin-left:var(--vm-workspace-sidebar-collapsed) !important;
  transition:margin-left .22s ease;
}
.vm-page {
  max-width:none !important;
  margin-right:0 !important;
  min-height:calc(100vh - var(--vm-workspace-top));
}

.vm-workspace-sidebar {
  position:fixed;
  top:var(--vm-workspace-top);
  bottom:0;
  left:0;
  z-index:880;
  width:var(--vm-workspace-sidebar-expanded);
  display:flex;
  flex-direction:column;
  padding:18px 12px 14px;
  background:#17285c;
  color:#fff;
  border-right:1px solid rgba(255,255,255,.08);
  box-shadow:12px 0 30px rgba(13,31,51,.16);
  transition:width .22s ease;
  overflow:hidden;
}
body.vm-sidebar-collapsed .vm-workspace-sidebar {
  width:var(--vm-workspace-sidebar-collapsed);
}
.vm-workspace-brand {
  min-height:64px;
  display:flex;
  align-items:center;
  gap:12px;
  padding:2px 8px 16px;
  border-bottom:1px solid rgba(255,255,255,.11);
  overflow:hidden;
}
.vm-workspace-brand img {
  width:92px;
  height:auto;
  flex:0 0 auto;
  display:block;
  object-fit:contain;
  transition:width .22s ease;
}
.vm-workspace-brand-copy {
  min-width:0;
  display:flex;
  flex-direction:column;
  line-height:1.05;
  white-space:nowrap;
  transition:opacity .14s ease;
}
.vm-workspace-brand-copy strong {
  font-family:'Barlow Condensed',sans-serif;
  font-size:23px;
  letter-spacing:.02em;
}
.vm-workspace-brand-copy span {
  margin-top:4px;
  color:#9fb5dd;
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
body.vm-sidebar-collapsed .vm-workspace-brand {
  justify-content:center;
  padding-left:0;
  padding-right:0;
}
body.vm-sidebar-collapsed .vm-workspace-brand img { width:48px; }
body.vm-sidebar-collapsed .vm-workspace-brand-copy { display:none; }

.vm-workspace-nav {
  position:static !important;
  inset:auto !important;
  transform:none !important;
  z-index:auto !important;
  width:100% !important;
  display:flex !important;
  flex:1 1 auto;
  flex-direction:column;
  gap:7px;
  margin:14px 0 10px;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
  overflow-x:hidden;
  overflow-y:auto;
  scrollbar-width:thin;
  scrollbar-color:rgba(255,255,255,.22) transparent;
}
.vm-workspace-nav button {
  width:100%;
  min-height:48px;
  display:flex;
  flex-direction:row;
  align-items:center;
  justify-content:flex-start;
  gap:13px;
  padding:10px 12px;
  border:1px solid transparent;
  border-radius:11px;
  background:transparent;
  color:#dce7ff;
  cursor:pointer;
  font-family:'Barlow',sans-serif;
  text-align:left;
  transition:background .15s ease,color .15s ease,border-color .15s ease;
}
.vm-workspace-nav button:hover {
  background:rgba(255,255,255,.09);
  color:#fff;
}
.vm-workspace-nav button.active {
  background:#fff;
  color:#17285c;
  border-color:#fff;
  box-shadow:0 8px 18px rgba(4,15,46,.2);
}
.vm-workspace-icon {
  width:24px;
  height:24px;
  display:grid;
  place-items:center;
  flex:0 0 24px;
}
.vm-workspace-icon svg {
  width:22px;
  height:22px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.vm-workspace-nav button em {
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-style:normal;
  font-size:14px;
  font-weight:800;
  letter-spacing:0;
}
body.vm-sidebar-collapsed .vm-workspace-nav button {
  justify-content:center;
  padding-left:0;
  padding-right:0;
}
body.vm-sidebar-collapsed .vm-workspace-nav button em { display:none; }

.vm-workspace-collapse {
  width:100%;
  min-height:46px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  padding:9px 12px;
  border:1px solid rgba(163,192,255,.65);
  border-radius:11px;
  background:rgba(255,255,255,.035);
  color:#b9cbf3;
  cursor:pointer;
  font-family:'Barlow',sans-serif;
  transition:background .15s ease,color .15s ease;
}
.vm-workspace-collapse:hover { background:rgba(255,255,255,.1); color:#fff; }
.vm-workspace-collapse em {
  font-style:normal;
  font-size:12px;
  font-weight:800;
  white-space:nowrap;
}
.vm-collapse-arrows {
  font-family:Arial,sans-serif;
  font-size:23px;
  line-height:1;
}
body.vm-sidebar-collapsed .vm-workspace-collapse {
  justify-content:center;
  padding-left:0;
  padding-right:0;
}
body.vm-sidebar-collapsed .vm-workspace-collapse em { display:none; }

.vm-workspace-eyebrow {
  display:block;
  margin-bottom:5px;
  color:var(--vm-blue);
  font-size:10px;
  font-weight:900;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.vm-toolbar {
  position:sticky;
  top:var(--vm-workspace-top);
  z-index:840;
  align-items:center;
  min-height:82px;
  margin:-24px -26px 18px !important;
  padding:17px 26px 15px;
  border-bottom:1px solid var(--vm-border);
  background:rgba(244,247,250,.96);
  box-shadow:0 8px 18px rgba(13,31,51,.05);
  backdrop-filter:blur(12px);
}
.vm-report-title h1 { font-size:32px; }
.vm-report-title p { margin-top:6px; }

.vm-workspace-view:not(.vm-workspace-active) { display:none !important; }
.vm-legacy-tabs,
#actionsTab,
#needsTab,
#bpsTab,
#hcTab { display:none !important; }
.vm-workspace-view.vm-workspace-active.vm-panel,
.vm-workspace-view.vm-workspace-active.vm-tab-panel {
  animation:vmWorkspaceEnter .18s ease-out;
}
@keyframes vmWorkspaceEnter {
  from { opacity:0; transform:translateY(5px); }
  to { opacity:1; transform:none; }
}
#marketTab.vm-workspace-active { display:block !important; }
#marketTab.vm-workspace-active #marketOverviewPanel { margin-top:0; }

@media (max-width:1050px) {
  body.vm-sidebar-expanded .stf-hero,
  body.vm-sidebar-expanded .vm-page,
  body.vm-sidebar-collapsed .stf-hero,
  body.vm-sidebar-collapsed .vm-page {
    margin-left:var(--vm-workspace-sidebar-collapsed) !important;
  }
  .vm-workspace-sidebar { width:var(--vm-workspace-sidebar-collapsed) !important; }
  .vm-workspace-brand { justify-content:center; padding-left:0; padding-right:0; }
  .vm-workspace-brand img { width:48px; }
  .vm-workspace-brand-copy,
  .vm-workspace-nav button em,
  .vm-workspace-collapse em { display:none !important; }
  .vm-workspace-nav { display:flex !important; }
  .vm-workspace-nav button { justify-content:center; padding-left:0; padding-right:0; }
  .vm-workspace-collapse { justify-content:center; padding-left:0; padding-right:0; }
}

@media (max-width:700px) {
  :root { --vm-workspace-top:64px; }
  .vm-workspace-sidebar { top:64px; }
  .vm-toolbar { top:64px; }
  .vm-page { padding-left:14px !important; padding-right:14px !important; }
  .vm-toolbar { margin-left:-14px !important; margin-right:-14px !important; padding-left:14px; padding-right:14px; }
}

/* Neutralize the left padding used by the previous floating icon rail. */
body.vm-sidebar-expanded .vm-page,
body.vm-sidebar-collapsed .vm-page { padding-left:26px !important; }
@media (max-width:700px) {
  body.vm-sidebar-expanded .vm-page,
  body.vm-sidebar-collapsed .vm-page { padding-left:14px !important; }
}


/* VM Hub sidebar visual refinement - 2026-07-17 */
.vm-workspace-sidebar {
  background:linear-gradient(135deg,var(--vm-navy) 0%,var(--vm-navy2) 100%) !important;
  border-right:1px solid rgba(0,170,238,.18) !important;
  box-shadow:10px 0 28px rgba(13,31,51,.18) !important;
  overflow:visible !important;
}
.vm-workspace-brand { display:none !important; }
.vm-workspace-nav {
  margin:4px 0 10px !important;
  padding-top:4px !important;
  overflow:visible !important;
}
.vm-workspace-nav button {
  position:relative;
}
.vm-workspace-nav button.active {
  color:var(--vm-navy) !important;
}
.vm-workspace-collapse {
  width:auto !important;
  min-width:42px;
  min-height:40px;
  align-self:flex-end;
  justify-content:center !important;
  padding:6px 8px !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  color:#b9cbf3;
}
.vm-workspace-collapse:hover,
.vm-workspace-collapse:focus-visible {
  background:transparent !important;
  color:#fff !important;
  outline:none;
}
body.vm-sidebar-collapsed .vm-workspace-collapse {
  align-self:center;
}
body.vm-sidebar-collapsed .vm-workspace-nav button[data-tooltip]::after {
  content:attr(data-tooltip);
  position:absolute;
  left:calc(100% + 12px);
  top:50%;
  transform:translateY(-50%) translateX(-4px);
  z-index:1200;
  min-width:max-content;
  max-width:240px;
  padding:8px 10px;
  border-radius:8px;
  background:var(--vm-navy);
  color:#fff;
  box-shadow:0 8px 24px rgba(13,31,51,.28);
  font-size:12px;
  font-weight:800;
  line-height:1.2;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .14s ease,transform .14s ease,visibility .14s ease;
}
body.vm-sidebar-collapsed .vm-workspace-nav button[data-tooltip]::before {
  content:'';
  position:absolute;
  left:calc(100% + 6px);
  top:50%;
  z-index:1201;
  width:0;
  height:0;
  border-top:6px solid transparent;
  border-bottom:6px solid transparent;
  border-right:6px solid var(--vm-navy);
  transform:translateY(-50%);
  opacity:0;
  visibility:hidden;
  transition:opacity .14s ease,visibility .14s ease;
}
body.vm-sidebar-collapsed .vm-workspace-nav button[data-tooltip]:hover::after,
body.vm-sidebar-collapsed .vm-workspace-nav button[data-tooltip]:focus-visible::after,
body.vm-sidebar-collapsed .vm-workspace-nav button[data-tooltip]:hover::before,
body.vm-sidebar-collapsed .vm-workspace-nav button[data-tooltip]:focus-visible::before {
  opacity:1;
  visibility:visible;
}
body.vm-sidebar-collapsed .vm-workspace-nav button[data-tooltip]:hover::after,
body.vm-sidebar-collapsed .vm-workspace-nav button[data-tooltip]:focus-visible::after {
  transform:translateY(-50%) translateX(0);
}
.vm-section-collapse { display:none !important; }
#staffingSnapshotPanel { display:none !important; }


/* VM Hub workspace title scroll behavior - 2026-07-17
   Keep the global Reporting Hub header and sidebar fixed, but let the active
   workspace title move with the page so it never covers section content. */
.vm-toolbar {
  position:relative !important;
  top:auto !important;
  z-index:20 !important;
  backdrop-filter:none !important;
}


/* VM Hub fixed app shell alignment - 2026-07-17
   Keep the Reporting Hub header, workspace sidebar, and active workspace title
   aligned at all scroll positions. This also removes the blank/cut band that
   appeared after the shared navigation container scrolled out of view. */
#stf-nav {
  height:var(--vm-workspace-top) !important;
  min-height:var(--vm-workspace-top) !important;
}
#stf-nav .stf-topbar {
  position:fixed !important;
  top:0 !important;
  right:0 !important;
  left:0 !important;
  width:100% !important;
  height:var(--vm-workspace-top) !important;
  z-index:1100 !important;
}
/* The workspace title is the page header for VM Hub, so the old hero is hidden. */
#stf-nav .stf-hero {
  display:none !important;
}
.vm-workspace-sidebar {
  top:var(--vm-workspace-top) !important;
}
.vm-toolbar {
  position:sticky !important;
  top:var(--vm-workspace-top) !important;
  z-index:900 !important;
  margin:-24px -26px 18px !important;
  padding:17px 26px 15px !important;
  background:rgba(244,247,250,.98) !important;
  border-bottom:1px solid var(--vm-border) !important;
  box-shadow:0 8px 18px rgba(13,31,51,.05) !important;
  backdrop-filter:blur(12px) !important;
}
.vm-workspace-view {
  scroll-margin-top:calc(var(--vm-workspace-top) + 100px);
}
@media (max-width:700px) {
  #stf-nav {
    height:64px !important;
    min-height:64px !important;
  }
  #stf-nav .stf-topbar {
    height:64px !important;
  }
  .vm-toolbar {
    top:64px !important;
    margin-left:-14px !important;
    margin-right:-14px !important;
    padding-left:14px !important;
    padding-right:14px !important;
  }
}


/* Manual BP HC Summary import */
.vm-frontier-source-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:center; justify-content:flex-end; width:100%; }
.vm-frontier-source-note { margin:14px 20px 0; padding:11px 13px; border:1px solid #c9deef; border-radius:12px; background:#f5faff; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px 16px; color:#365b79; font-size:12px; }
.vm-frontier-source-note strong { color:var(--vm-navy); font-size:12px; }
.vm-frontier-source-note span { color:var(--vm-muted); }
.vm-tava-card.hold { border-top-color:#eab308; }
.vm-tava-card.no-target { border-top-color:#94a3b8; }
.legend-dot.yellow { background:#eab308; }
.legend-dot.gray { background:#94a3b8; }
.vm-map-status-pill.hold { background:#fef9c3; color:#854d0e; }
.vm-map-status-pill.no-target { background:#e2e8f0; color:#475569; }
.vm-leaflet-marker.frontier-hold { background:#eab308; }
.vm-leaflet-marker.frontier-no-target { background:#94a3b8; }
.vm-leaflet-marker.frontier-hold span,
.vm-leaflet-marker.frontier-no-target span { font-size:14px; }
@media (max-width:760px) {
  .vm-frontier-source-actions { justify-content:flex-start; }
  .vm-frontier-source-note { margin:12px 12px 0; align-items:flex-start; flex-direction:column; }
}

/* Frontier automatic SharePoint synchronization */
.vm-tava-summary-card:nth-child(6) strong {
  font-size:20px;
  line-height:1.08;
  overflow-wrap:anywhere;
}


/* Professional in-app notifications */
.vm-notice-card {
  border-top:5px solid var(--vm-blue);
  width:min(560px, calc(100vw - 28px));
}
.vm-notice-card.vm-notice-error { border-top-color:#d92d20; }
.vm-notice-card.vm-notice-success { border-top-color:#15803d; }
.vm-notice-card.vm-notice-warning { border-top-color:#d97706; }
.vm-notice-summary {
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  gap:14px;
  align-items:start;
  padding:4px 0 10px;
}
.vm-notice-icon {
  width:42px;
  height:42px;
  border-radius:50%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 42px;
  font-family:'Barlow Condensed',sans-serif;
  font-size:24px;
  font-weight:900;
  color:#fff;
  background:var(--vm-blue);
  box-shadow:0 8px 18px rgba(0,150,214,.22);
}
.vm-notice-error .vm-notice-icon { background:#d92d20; box-shadow:0 8px 18px rgba(217,45,32,.20); }
.vm-notice-success .vm-notice-icon { background:#15803d; box-shadow:0 8px 18px rgba(21,128,61,.20); }
.vm-notice-warning .vm-notice-icon { background:#d97706; box-shadow:0 8px 18px rgba(217,119,6,.20); }
#vmNoticeMessage {
  display:block;
  color:var(--vm-navy);
  font-size:15px;
  line-height:1.45;
}
.vm-notice-help {
  margin:7px 0 0;
  color:var(--vm-muted);
  font-size:13px;
  line-height:1.45;
}
.vm-notice-details-wrap {
  margin-top:4px;
  padding:12px;
  border:1px solid var(--vm-border);
  border-radius:10px;
  background:#f7f9fc;
}
.vm-notice-details-label {
  margin-bottom:6px;
  color:var(--vm-muted);
  font-size:10px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.vm-notice-details {
  max-height:150px;
  margin:0;
  overflow:auto;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  color:#344054;
  font-family:Consolas,'Courier New',monospace;
  font-size:11px;
  line-height:1.45;
}
@media (max-width:600px) {
  .vm-notice-summary { grid-template-columns:36px minmax(0,1fr); gap:10px; }
  .vm-notice-icon { width:34px; height:34px; flex-basis:34px; font-size:20px; }
}
