*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --teal:#2d637d;--teal-dark:#1e4a5e;--teal-light:#3a7a96;
  --orange:#cc5500;--orange-dark:#aa4400;--orange-bg:#ffedd5;
  --gray-bg:#f4f4f4;--gray-mid:#dddddd;--gray-text:#666666;
  --white:#ffffff;--dark:#1a1a1a;
  --green:#16a34a;--green-bg:#dcfce7;
  --red:#dc2626;--red-bg:#fee2e2;
  --yellow:#ca8a04;--yellow-bg:#fef9c3;
  --fh:'Montserrat',sans-serif;--fb:'Open Sans',sans-serif;
}
body{font-family:var(--fb);color:var(--dark);background:var(--gray-bg);line-height:1.5;min-height:100vh;}
.container{max-width:1100px;margin:0 auto;padding:32px 24px 80px;}

/* ── PIN Gate ── */
.pin-gate{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--teal);}
.pin-card{background:var(--white);border-radius:8px;padding:48px;max-width:380px;width:100%;text-align:center;}
.pin-card h1{font-family:var(--fh);font-size:20px;font-weight:800;color:var(--teal);margin-bottom:8px;}
.pin-card p{font-size:13px;color:var(--gray-text);margin-bottom:24px;}
.pin-input{width:100%;padding:14px;font-size:18px;text-align:center;letter-spacing:0.3em;border:1.5px solid var(--gray-mid);border-radius:4px;margin-bottom:16px;font-family:var(--fh);}
.pin-input:focus{outline:none;border-color:var(--teal);}
.pin-btn{width:100%;padding:14px;background:var(--teal);color:var(--white);border:none;border-radius:4px;font-family:var(--fh);font-weight:700;font-size:13px;letter-spacing:0.05em;text-transform:uppercase;cursor:pointer;}
.pin-btn:hover{background:var(--teal-dark);}
.pin-error{color:var(--red);font-size:13px;margin-top:12px;display:none;}

/* ── Header ── */
header{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px;flex-wrap:wrap;gap:16px;}
.header-title h1{font-family:var(--fh);font-size:26px;font-weight:800;color:var(--teal);}
.header-title p{font-size:13px;color:var(--gray-text);margin-top:2px;}
.refresh-btn{display:flex;align-items:center;gap:8px;background:var(--white);border:1px solid var(--gray-mid);padding:10px 16px;border-radius:4px;font-family:var(--fh);font-size:12px;font-weight:700;color:var(--dark);cursor:pointer;text-transform:uppercase;letter-spacing:0.04em;}
.refresh-btn:hover{background:var(--gray-bg);}
.refresh-btn.loading{opacity:0.6;pointer-events:none;}
.last-checked{font-size:12px;color:var(--gray-text);margin-top:4px;}

/* ── Overall Status Banner ── */
.status-banner{display:flex;align-items:center;gap:16px;padding:20px 24px;border-radius:8px;margin-bottom:24px;font-family:var(--fh);}
.status-banner.pass{background:var(--green-bg);border:1.5px solid var(--green);}
.status-banner.warn{background:var(--yellow-bg);border:1.5px solid var(--yellow);}
.status-banner.fail{background:var(--red-bg);border:1.5px solid var(--red);}
.status-icon{font-size:28px;}
.status-text h2{font-size:16px;font-weight:800;}
.status-banner.pass .status-text h2{color:var(--green);}
.status-banner.warn .status-text h2{color:var(--yellow);}
.status-banner.fail .status-text h2{color:var(--red);}
.status-text p{font-size:13px;color:var(--gray-text);margin-top:2px;font-family:var(--fb);}

/* ── Section Cards ── */
.section{background:var(--white);border:1px solid var(--gray-mid);border-radius:8px;margin-bottom:20px;overflow:hidden;}
.section-header{padding:16px 24px;border-bottom:1px solid var(--gray-mid);display:flex;align-items:center;justify-content:space-between;}
.section-header h3{font-family:var(--fh);font-size:14px;font-weight:800;color:var(--dark);text-transform:uppercase;letter-spacing:0.04em;}
.section-badge{font-family:var(--fh);font-size:11px;font-weight:700;padding:3px 10px;border-radius:12px;text-transform:uppercase;}
.section-badge.pass{background:var(--green-bg);color:var(--green);}
.section-badge.warn{background:var(--yellow-bg);color:var(--yellow);}
.section-badge.fail{background:var(--red-bg);color:var(--red);}

.check-list{display:flex;flex-direction:column;}
.check-row{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;border-bottom:1px solid var(--gray-bg);font-size:14px;}
.check-row:last-child{border-bottom:none;}
.check-name{color:var(--dark);font-weight:600;}
.check-detail{font-size:12px;color:var(--gray-text);margin-top:2px;}
.check-status{display:flex;align-items:center;gap:6px;font-family:var(--fh);font-size:12px;font-weight:700;text-transform:uppercase;}
.check-status.live{color:var(--green);}
.check-status.error,.check-status.unreachable,.check-status.failed{color:var(--red);}
.check-status.warn,.check-status.connected{color:var(--green);}
.dot{width:8px;height:8px;border-radius:50%;}
.dot.live,.dot.connected{background:var(--green);}
.dot.error,.dot.unreachable,.dot.failed{background:var(--red);}
.dot.warn{background:var(--yellow);}

.empty-state{padding:24px;text-align:center;color:var(--gray-text);font-size:13px;}

.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:16px;padding:20px 24px;}

.pipeline-block{padding:20px 24px;border-bottom:1px solid var(--gray-mid);}
.pipeline-block:last-child{border-bottom:none;}
.pipeline-block-title{font-family:var(--fh);font-size:13px;font-weight:800;color:var(--teal);text-transform:uppercase;letter-spacing:0.04em;margin-bottom:12px;display:flex;align-items:center;justify-content:space-between;}
.stage-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;font-size:13px;}
.stage-bar-wrap{flex:1;margin:0 16px;height:6px;background:var(--gray-bg);border-radius:3px;overflow:hidden;}
.stage-bar{height:100%;background:var(--teal);border-radius:3px;}
.stage-count{font-family:var(--fh);font-weight:700;color:var(--dark);min-width:24px;text-align:right;}

.stalled-row{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;border-bottom:1px solid var(--gray-bg);font-size:13px;}
.stalled-row:last-child{border-bottom:none;}
.stalled-name{font-weight:600;color:var(--dark);}
.stalled-stage{font-size:12px;color:var(--gray-text);margin-top:2px;}
.stalled-days{font-family:var(--fh);font-weight:800;color:var(--red);font-size:13px;}
.stat-card{text-align:center;}
.stat-num{font-family:var(--fh);font-size:32px;font-weight:800;color:var(--teal);}
.stat-lbl{font-size:11px;font-weight:700;color:var(--gray-text);text-transform:uppercase;letter-spacing:0.05em;margin-top:4px;}

.loading-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,0.4);border-top-color:var(--white);border-radius:50%;animation:spin 0.7s linear infinite;}
@keyframes spin{to{transform:rotate(360deg)}}

footer{text-align:center;padding:24px 0;color:var(--gray-text);font-size:12px;}

.lookup-search{display:flex;gap:10px;padding:20px 24px;}
.lookup-search input{flex:1;padding:12px 14px;border:1.5px solid var(--gray-mid);border-radius:6px;font-size:14px;font-family:monospace;}
.lookup-search input:focus{outline:none;border-color:var(--teal);}
.lookup-search button{background:var(--orange,#cc5500);color:#fff;border:none;border-radius:6px;padding:0 22px;font-family:var(--fh);font-weight:700;font-size:13px;cursor:pointer;}
.lookup-search button:hover{opacity:0.9;}
.lookup-header{padding:16px 24px;background:var(--gray-bg);}
.lookup-header .name{font-family:var(--fh);font-size:16px;font-weight:800;color:var(--dark);}
.lookup-header .stage{font-size:12px;color:var(--gray-text);margin-top:3px;}
.progress-wrap{padding:16px 24px;}
.checklist-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;}
.checklist-item{display:flex;align-items:center;gap:8px;font-size:13px;padding:8px 10px;border-radius:6px;background:var(--orange-bg);color:var(--orange);}
.checklist-item.done{background:var(--green-bg);color:var(--green);font-weight:600;}
.checklist-item.inferred{background:#000000;color:var(--orange);font-weight:600;}
.checklist-item .sub{display:block;font-size:10px;font-weight:600;opacity:0.75;margin-top:2px;text-transform:none;}
.color-legend{display:flex;gap:16px;margin-top:14px;font-size:12px;color:var(--gray-text);}
.legend-item{display:flex;align-items:center;gap:6px;}
.legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block;}
.legend-dot.complete{background:var(--green);}
.legend-dot.incomplete{background:var(--orange);}
.doc-row{display:flex;align-items:center;justify-content:space-between;padding:10px 24px;border-bottom:1px solid var(--gray-bg);font-size:13px;}
.doc-row:last-child{border-bottom:none;}
.doc-row a{color:var(--teal);text-decoration:none;font-weight:600;}
.doc-row a:hover{text-decoration:underline;}
.note-row{padding:12px 24px;border-bottom:1px solid var(--gray-bg);font-size:12.5px;white-space:pre-wrap;line-height:1.6;color:var(--dark);}
.note-row:last-child{border-bottom:none;}
.note-time{font-size:11px;color:var(--gray-text);margin-top:6px;}

.quick-links-row{display:flex;flex-wrap:wrap;gap:8px;padding:16px 24px;}
.quick-link-btn{display:inline-flex;align-items:center;gap:6px;background:var(--teal);color:#fff;border:none;border-radius:6px;padding:9px 14px;font-family:var(--fh);font-weight:700;font-size:12px;text-decoration:none;cursor:pointer;}
.quick-link-btn:hover{opacity:0.88;}
.quick-link-btn.secondary{background:#fff;color:var(--teal);border:1.5px solid var(--teal);}

.view-as-result{padding:10px 24px;border-bottom:1px solid var(--gray-bg);font-size:13px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;}
.view-as-result:hover{background:var(--gray-bg);}
.view-as-result:last-child{border-bottom:none;}
.view-as-tag{font-family:var(--fh);font-size:10px;font-weight:700;color:var(--teal);background:#eaf2fb;padding:2px 8px;border-radius:10px;}

.party-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;padding:20px 24px;}
.party-card{background:var(--gray-bg);border-radius:8px;padding:14px 16px;}
.party-card.empty{opacity:0.45;}
.party-role{font-family:var(--fh);font-size:10px;font-weight:800;color:var(--teal);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:6px;}
.party-name{font-size:14px;font-weight:700;color:var(--dark);margin-bottom:2px;}
.party-business{font-size:12px;color:var(--gray-text);margin-bottom:6px;}
.party-detail{font-size:12px;color:var(--dark);margin-top:2px;}
.party-none{font-size:12px;color:var(--gray-text);font-style:italic;}

.fm-file-row{cursor:pointer;}
.fm-file-row:hover{background:var(--gray-bg);}
.fm-file-list{display:none;background:var(--gray-bg);padding:4px 0;}
.fm-file-list.open{display:block;}
.fm-file-item{display:flex;align-items:center;justify-content:space-between;padding:9px 24px 9px 40px;font-size:13px;cursor:pointer;border-bottom:1px solid rgba(0,0,0,0.04);}
.fm-file-item:hover{background:rgba(45,99,125,0.08);}
.fm-file-item:last-child{border-bottom:none;}
.fm-file-item .fname{color:var(--dark);}
.fm-file-item .fstage{color:var(--gray-text);font-size:11px;font-family:var(--fh);text-transform:uppercase;}

.expander-header{cursor:pointer;user-select:none;}
.expander-header:hover{background:var(--gray-bg);}
.expander-chevron{display:inline-block;transition:transform 0.2s;margin-right:6px;font-size:11px;}
.expander-header.open .expander-chevron{transform:rotate(90deg);}
.expander-body{max-height:0;overflow:hidden;transition:max-height 0.25s ease;}
.expander-body.open{max-height:2000px;}

.tab-nav{display:flex;gap:4px;margin-bottom:24px;border-bottom:2px solid var(--gray-mid);}
.tab-btn{font-family:var(--fh);font-size:14px;font-weight:700;color:var(--gray-text);background:none;border:none;padding:12px 20px;cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-2px;text-transform:uppercase;letter-spacing:0.03em;transition:color 0.15s;}
.tab-btn:hover{color:var(--teal);}
.tab-btn.active{color:var(--teal);border-bottom-color:var(--teal);}
.tab-pane{display:none;}
.tab-pane.active{display:block;}

.ref-banner{display:flex;align-items:flex-start;gap:12px;padding:16px 20px;border-radius:8px;margin-bottom:20px;background:var(--yellow-bg);border:1.5px solid var(--yellow);}
.ref-banner strong{display:block;font-family:var(--fh);font-size:13px;font-weight:800;color:var(--yellow);margin-bottom:3px;}
.ref-banner p{font-size:12px;color:var(--gray-text);line-height:1.6;}
.ref-section{background:var(--white);border:1px solid var(--gray-mid);border-radius:8px;margin-bottom:16px;overflow:hidden;}
.ref-section-title{padding:14px 20px;border-bottom:1px solid var(--gray-mid);font-family:var(--fh);font-size:13px;font-weight:800;color:var(--dark);text-transform:uppercase;letter-spacing:0.04em;}
.ref-section-body{padding:16px 20px;font-size:13px;color:var(--dark);line-height:1.7;}
.ref-section-body p{margin-bottom:10px;}
.ref-table{width:100%;border-collapse:collapse;font-size:12.5px;}
.ref-table th{text-align:left;padding:8px 10px;background:var(--gray-bg);color:var(--gray-text);font-family:var(--fh);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:0.03em;}
.ref-table td{padding:8px 10px;border-bottom:1px solid var(--gray-bg);vertical-align:top;}
.ref-table tr:last-child td{border-bottom:none;}
.ref-flag{background:var(--yellow-bg);}
.ref-flag td{color:var(--yellow-dark,#a16207);}
.ref-flag-tag{display:inline-block;font-family:var(--fh);font-size:10px;font-weight:700;color:var(--yellow);background:#fff;border:1px solid var(--yellow);border-radius:4px;padding:1px 6px;margin-left:6px;}
.ref-list{padding-left:20px;margin-top:4px;}
.ref-list li{margin-bottom:6px;}
.ref-flow{font-family:'Courier New',monospace;font-size:12px;background:var(--gray-bg);border-radius:6px;padding:14px 18px;white-space:pre-wrap;line-height:1.9;color:var(--dark);}
/* Ported from lms-portal/file-detail.html (2026-07-17) -- same visual
   pattern RH liked on the client-facing view, brought into HQ's File
   Detail page above the existing checklist/AI-summary sections. */
.phase-stepper { background: #fff; border: 1px solid #e0e0e0; border-radius: 12px; padding: 1rem 1.25rem; margin-bottom: 1.25rem; overflow-x: auto; }
.phase-stepper-title { font-size: 10px; font-weight: 700; color: #2d637d; text-transform: uppercase; letter-spacing: .8px; margin-bottom: 14px; }
.phase-track { display: flex; align-items: flex-start; gap: 0; min-width: 560px; }
.phase-step { flex: 1; display: flex; flex-direction: column; align-items: center; position: relative; }
.phase-step:not(:last-child)::after { content: ''; position: absolute; top: 14px; left: 50%; width: 100%; height: 2px; background: #e0e0e0; z-index: 0; }
.phase-step.completed:not(:last-child)::after { background: #2d637d; }
.phase-step.active:not(:last-child)::after { background: #e0e0e0; }
.phase-dot { width: 28px; height: 28px; border-radius: 50%; background: #e0e0e0; border: 2px solid #e0e0e0; display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; color: #999; position: relative; z-index: 1; flex-shrink: 0; }
.phase-step.completed .phase-dot { background: #2d637d; border-color: #2d637d; color: #fff; }
.phase-step.active .phase-dot { background: #00A8C6; border-color: #00A8C6; color: #fff; box-shadow: 0 0 0 3px rgba(0,168,198,0.2); }
.phase-step.dispute .phase-dot { background: #cc5500; border-color: #cc5500; color: #fff; box-shadow: 0 0 0 3px rgba(204,85,0,0.2); }
.phase-label { margin-top: 6px; font-size: 9px; font-weight: 600; text-align: center; color: #bbb; text-transform: uppercase; letter-spacing: .4px; line-height: 1.3; max-width: 60px; }
.phase-step.completed .phase-label { color: #2d637d; }
.phase-step.active .phase-label { color: #00A8C6; }
.phase-step.dispute .phase-label { color: #cc5500; }
.ai-card { background: linear-gradient(135deg, #2d637d 0%, #1e4a5e 100%); border-radius: 12px; padding: 1.25rem 1.5rem; margin-bottom: 1.25rem; color: #fff; }
.ai-card-header { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.ai-card-icon { font-size: 16px; }
.ai-card-title { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .8px; color: rgba(255,255,255,0.85); }
.ai-card-text { font-size: 14px; line-height: 1.6; color: #fff; margin-bottom: 10px; white-space: pre-wrap; }
.fh-toggle-btn{background:#fff;border:none;padding:8px 16px;font-family:var(--fh);font-weight:700;font-size:12px;cursor:pointer;color:var(--gray-text);}
.fh-toggle-btn:not(:last-child){border-right:1px solid var(--gray-mid);}
.fh-toggle-active{background:var(--teal);color:#fff;}

/* 2026-07-26/27: Dashboard tab -- dark theme, scoped entirely under
   #tab-dashboard so nothing else in HQ is affected. First test of the
   Monday.com-dark-mode-inspired redesign direction (per RH's reference
   screenshots) -- navy background, vivid multi-color accents. */
#tab-dashboard{background:#1a1d35;border-radius:12px;padding:28px;margin-top:-1px;}
.dash-header{margin-bottom:20px;}
.dash-title{font-family:var(--fh);font-size:22px;font-weight:800;color:#ffffff;}
.dash-subtitle{font-family:var(--fb);font-size:13px;color:#9297c4;margin-top:4px;}
/* 2026-08-11: RH asked for this after a real incident -- switching tabs
   does NOT refetch data (see switchTab(), pure CSS toggle, no fetch calls).
   Only the initial page load and the global Refresh button call
   loadDashboardStats(). A browser tab left open across a whole workday
   will silently show stale numbers with zero visual indication -- this
   line closes that gap so the person always knows exactly how fresh (or
   stale) what they're looking at is, before trusting it or sending it to
   someone. Turns amber past 10 minutes old, red past 60 -- a left-open
   tab from hours or days ago should look obviously wrong, not just quietly
   outdated. Set by loadDashboardStats() on every successful load; a
   setInterval re-renders the "X ago" text every 30s using the last-known
   timestamp so it keeps aging even if the person never clicks anything.*/
.dash-last-refreshed{font-family:var(--fb);font-size:12px;color:#4ade80;margin-top:8px;font-weight:700;}
.dash-last-refreshed.stale-warn{color:#fbbf24;}
.dash-last-refreshed.stale-danger{color:#f87171;}
.dash-chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
@media (max-width:900px){.dash-chart-grid{grid-template-columns:1fr;}}
.dash-stat-row{display:flex;gap:16px;margin-bottom:20px;}
.dash-stat-pill{flex:1;background:#23264a;border:1px solid #363a63;border-radius:10px;padding:18px 20px;border-left:4px solid transparent;}
.dash-pill-blue{border-left-color:#3b82f6;}
.dash-pill-green{border-left-color:#22c55e;}
.dash-pill-orange{border-left-color:#cc5500;}
.dash-stat-pill .dash-stat-num{font-family:var(--fh);font-size:30px;font-weight:800;color:#ffffff;}
.dash-stat-pill .dash-stat-label{font-family:var(--fb);font-size:12px;color:#9297c4;margin-top:2px;}
.pace-panel-title{font-family:var(--fh);font-size:14px;font-weight:800;color:#fff;margin-bottom:12px;display:flex;align-items:center;gap:8px;}
.pace-row{display:grid;grid-template-columns:140px 1fr;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid #2a2e58;font-family:var(--fb);font-size:12px;}
.pace-row:last-child{border-bottom:none;}
.pace-row-label{color:#9297c4;}
.pace-row-count{color:#fff;font-weight:700;font-size:16px;font-variant-numeric:tabular-nums;}
/* 2026-08-11: restored for File Starts only (see dashboard-stats.js comment) --
   rows that include a real day-based rate use this 4-column layout instead
   of the 2-column count-only layout above. */
.pace-row-rated{grid-template-columns:110px 1fr 90px 70px;}
.pace-row-math{color:#c7cae8;font-variant-numeric:tabular-nums;}
.pace-row-rate{color:#fff;font-weight:700;text-align:right;font-variant-numeric:tabular-nums;}
.pace-row-badge{text-align:right;font-weight:800;font-size:11px;padding:2px 8px;border-radius:20px;justify-self:end;}
.pace-badge-green{background:rgba(34,197,94,.18);color:#4ade80;}
.pace-badge-amber{background:rgba(245,158,11,.18);color:#fbbf24;}
.pace-badge-red{background:rgba(220,38,38,.18);color:#f87171;}
.dash-stat-pill{position:relative;}
.pill-edit-btn{position:absolute;top:14px;right:14px;background:none;border:none;color:#6b7099;cursor:pointer;font-size:13px;padding:2px 4px;border-radius:4px;}
.pill-edit-btn:hover{color:#c7cae8;background:rgba(255,255,255,.06);}
.inline-edit-btn{position:static;background:none;border:none;color:#6b7099;cursor:pointer;font-size:13px;padding:2px 4px;border-radius:4px;vertical-align:middle;}
.inline-edit-btn:hover{color:#c7cae8;background:rgba(255,255,255,.06);}
.pill-override-note{font-family:var(--fb);font-size:10px;color:#6b7099;margin-top:6px;}
.dash-chart-card{background:#23264a;border:1px solid #363a63;border-radius:10px;padding:20px;}
.dash-chart-title{font-family:var(--fh);font-size:13px;font-weight:700;color:#ffffff;text-transform:uppercase;letter-spacing:0.04em;margin-bottom:4px;}
.dash-chart-total{font-family:var(--fh);font-size:32px;font-weight:800;color:#ffffff;margin-bottom:16px;}
.dash-chart-total .dash-total-sub{font-family:var(--fb);font-size:12px;font-weight:400;color:#9297c4;margin-left:8px;}
.dash-chart-canvas-wrap{height:220px;position:relative;}
.dash-footnote{font-family:var(--fb);font-size:11px;color:#6b709c;margin-top:16px;}

/* 2026-07-27: Pipelines tab -- same dark treatment as Dashboard, per RH's
   new standing instruction: assume dark display with bright colors for
   everything going forward, not just a one-tab test. Scoped entirely
   under #tab-pipelines so System Health/FM Load/etc (which still share
   .section/.stat-card/.ref-table/.fh-toggle-btn) are completely
   unaffected -- only this tab's instances of those shared classes get
   overridden via the #tab-pipelines ancestor selector. */
#tab-pipelines{background:#1a1d35;border-radius:12px;padding:24px;margin-top:-1px;}
#tab-pipelines .section{background:#23264a;border:1px solid #363a63;border-radius:10px;margin-bottom:20px;}
#tab-pipelines .section-header{border-bottom:1px solid #363a63;}
#tab-pipelines .section-header h3{color:#ffffff;}
#tab-pipelines .stat-card{border-right:1px solid #363a63;}
#tab-pipelines .stat-num{color:#ffffff;}
#tab-pipelines .stat-lbl{color:#9297c4;}
#tab-pipelines .empty-state{color:#9297c4;}
#tab-pipelines .ref-table{color:#e2e4f5;}
#tab-pipelines .ref-table th{background:#1a1d35;color:#9297c4;border-bottom:1px solid #363a63;}
#tab-pipelines .ref-table td{border-bottom:1px solid #363a63;}
#tab-pipelines .ref-table tr:hover td{background:#2a2e58;}
#tab-pipelines .ref-table a{color:#60a5fa;}
#tab-pipelines .fh-toggle-btn{background:#23264a;color:#9297c4;}
#tab-pipelines .fh-toggle-btn:not(:last-child){border-right:1px solid #363a63;}
#tab-pipelines .fh-toggle-active{background:#3b82f6;color:#ffffff;}
#tab-pipelines div[style*="border:1px solid var(--gray-mid)"]{border-color:#363a63 !important;}
/* Bright per-card accent stripe, cycling through the same vivid palette
   used elsewhere in the dark redesign -- first card (Total) gets blue,
   FM cards cycle through green/orange/pink/purple so each person reads
   as visually distinct at a glance. */
#tab-pipelines .stat-card:nth-child(1){border-left:4px solid #3b82f6;}
#tab-pipelines .stat-card:nth-child(2){border-left:4px solid #22c55e;}
#tab-pipelines .stat-card:nth-child(3){border-left:4px solid #f59e0b;}
#tab-pipelines .stat-card:nth-child(4){border-left:4px solid #ec4899;}
#tab-pipelines .stat-card:nth-child(5){border-left:4px solid #a855f7;}

/* 2026-07-27: TIR tab -- same dark treatment, per RH's standing dark/
   bright-colors default. Scoped entirely under #tab-tir. */
#tab-tir{background:#1a1d35;border-radius:12px;padding:24px;margin-top:-1px;}
#tab-tir .section{background:#23264a;border:1px solid #363a63;border-radius:10px;margin-bottom:20px;}
#tab-tir .section-header{border-bottom:1px solid #363a63;}
#tab-tir .section-header h3{color:#ffffff;}
#tab-tir .stat-card{border-right:1px solid #363a63;}
#tab-tir .stat-num{color:#ffffff;}
#tab-tir .stat-lbl{color:#9297c4;}
#tab-tir .empty-state{color:#9297c4;}
#tab-tir .ref-table{color:#e2e4f5;}
#tab-tir .ref-table th{background:#1a1d35;color:#9297c4;border-bottom:1px solid #363a63;}
#tab-tir .ref-table td{border-bottom:1px solid #363a63;}
#tab-tir .fm-file-item{border-bottom:1px solid #363a63;color:#e2e4f5;}
#tab-tir .fm-file-item .fname{color:#ffffff;}
#tab-tir .fm-file-item .fstage{color:#60a5fa;}
#tab-tir .section-badge{background:#363a63;color:#e2e4f5;}

/* 2026-07-27: Lead Sourcing tab -- same dark treatment. Scoped under
   #tab-leadsourcing. NOTE: Top Agent Scoreboard and Top 25 Brokerages
   tables (leadsourcing-top-agents / leadsourcing-top-brokerages) are
   built with extensive inline styles (white row backgrounds, per-cell
   inline colors) rather than the shared .ref-table class -- flagged as a
   follow-up, not fully convertible via a scoped CSS override the way
   everything else on this tab was. */
#tab-leadsourcing{background:#1a1d35;border-radius:12px;padding:24px;margin-top:-1px;}
#tab-leadsourcing .section{background:#23264a;border:1px solid #363a63;border-radius:10px;margin-bottom:20px;}
#tab-leadsourcing .section-header{border-bottom:1px solid #363a63;}
#tab-leadsourcing .section-header h3{color:#ffffff;}
#tab-leadsourcing .stat-card{border-right:1px solid #363a63;}
#tab-leadsourcing .stat-num{color:#ffffff;}
#tab-leadsourcing .stat-lbl{color:#9297c4;}
#tab-leadsourcing .empty-state{color:#9297c4;}
#tab-leadsourcing p code{background:#1a1d35;color:#e2e4f5;padding:1px 5px;border-radius:4px;}

/* 2026-08-06: System Health tab -- same dark treatment as the rest, per
   RH's standing dark/bright-colors default. Scoped entirely under
   #tab-health. The pass/warn/fail semantic colors (--green/--yellow/--red)
   were tuned for light backgrounds and go muddy on dark, so this tab gets
   the same brighter rgba-chip treatment already used for pace-badge-* on
   the Dashboard (green #4ade80 / amber #fbbf24 / red #f87171) instead of
   reusing the base vars directly. */
#tab-health{background:#1a1d35;border-radius:12px;padding:24px;margin-top:-1px;}
#tab-health .section{background:#23264a;border:1px solid #363a63;border-radius:10px;margin-bottom:20px;}
#tab-health .section-header{border-bottom:1px solid #363a63;}
#tab-health .section-header h3{color:#ffffff;}
#tab-health .empty-state{color:#9297c4;}

/* Overall status banner */
#tab-health .status-banner{border-width:1.5px;}
#tab-health .status-banner.pass{background:rgba(34,197,94,.14);border-color:#22c55e;}
#tab-health .status-banner.warn{background:rgba(245,158,11,.14);border-color:#f59e0b;}
#tab-health .status-banner.fail{background:rgba(220,38,38,.14);border-color:#ef4444;}
#tab-health .status-banner.pass .status-text h2{color:#4ade80;}
#tab-health .status-banner.warn .status-text h2{color:#fbbf24;}
#tab-health .status-banner.fail .status-text h2{color:#f87171;}
#tab-health .status-text p{color:#9297c4;}

/* Section badges (Portal Routes / Opp Routes / API / GHL / Domain Scan) */
#tab-health .section-badge.pass{background:rgba(34,197,94,.18);color:#4ade80;}
#tab-health .section-badge.warn{background:rgba(245,158,11,.18);color:#fbbf24;}
#tab-health .section-badge.fail{background:rgba(220,38,38,.18);color:#f87171;}

/* Check-list rows (Portal Routes / Opp Routes / API / GHL Connectivity) */
#tab-health .check-row{border-bottom:1px solid #363a63;}
#tab-health .check-name{color:#ffffff;}
#tab-health .check-detail{color:#9297c4;}
#tab-health .check-status.live,#tab-health .check-status.connected{color:#4ade80;}
#tab-health .check-status.error,#tab-health .check-status.unreachable,#tab-health .check-status.failed{color:#f87171;}
#tab-health .check-status.warn{color:#fbbf24;}
#tab-health .dot.live,#tab-health .dot.connected{background:#4ade80;}
#tab-health .dot.error,#tab-health .dot.unreachable,#tab-health .dot.failed{background:#f87171;}
#tab-health .dot.warn{background:#fbbf24;}
/* Domain scan's stale-count number is set with an inline color (#b45309)
   in renderScanResults() -- inline styles beat class rules, so it needs
   its own attribute-selector override to actually change on this tab. */
#tab-health .check-status[style*="color:#b45309"]{color:#fbbf24 !important;}

/* Domain Integrity Scan results (reuses fm-file-row/list/item from FM Load,
   plus a handful of inline light-theme colors baked into renderScanResults()
   in JS -- caught here the same way #tab-pipelines already handles its own
   inline-styled leftovers). */
#tab-health .fm-file-row:hover{background:#2a2e58;}
#tab-health .fm-file-list{background:#1a1d35;}
#tab-health .fm-file-item{border-bottom:1px solid #363a63;}
#tab-health .fm-file-item:hover{background:#2a2e58;}
#tab-health .fm-file-item .fname{color:#e2e4f5;}
#tab-health .fm-file-item .fstage{color:#9297c4;}
#tab-health [style*="border:1px solid var(--gray-mid)"],
#tab-health [style*="border-bottom:1px solid var(--gray-mid)"]{border-color:#363a63 !important;}
#tab-health [style*="background:var(--gray-bg)"]{background:#1a1d35 !important;}
#tab-health [style*="color:var(--gray-text)"]{color:#9297c4 !important;}
#tab-health [style*="color:var(--teal)"]{color:#60a5fa !important;}

/* 2026-08-06: Reference tab -- same dark treatment as the rest, per RH's
   standing dark/bright-colors default. Scoped entirely under #tab-ref.
   The "flagged/out of date" amber accents (ref-banner, ref-flag rows,
   ref-flag-tag) reuse the same bright-amber treatment as the System
   Health warn state instead of the light-mode yellow-bg pastel, which
   goes muddy on dark. */
#tab-ref{background:#1a1d35;border-radius:12px;padding:24px;margin-top:-1px;}
#tab-ref .ref-banner{background:rgba(245,158,11,.14);border-color:#f59e0b;}
#tab-ref .ref-banner strong{color:#fbbf24;}
#tab-ref .ref-banner p{color:#9297c4;}
#tab-ref .ref-section{background:#23264a;border:1px solid #363a63;}
#tab-ref .ref-section-title{border-bottom:1px solid #363a63;color:#ffffff;}
#tab-ref .ref-section-body{color:#e2e4f5;}
#tab-ref .ref-section-body strong{color:#ffffff;}
#tab-ref .ref-table th{background:#1a1d35;color:#9297c4;}
#tab-ref .ref-table td{border-bottom:1px solid #363a63;color:#e2e4f5;}
#tab-ref .ref-flag{background:rgba(245,158,11,.10);}
#tab-ref .ref-flag td{color:#fbbf24;}
#tab-ref .ref-flag-tag{background:#23264a;color:#fbbf24;border-color:#f59e0b;}
#tab-ref .ref-flow{background:#14162a;border:1px solid #363a63;color:#e2e4f5;}
#tab-ref code{background:#14162a;color:#e2e4f5;padding:1px 5px;border-radius:4px;}
#tab-ref [style*="color:var(--yellow)"]{color:#fbbf24 !important;}
#tab-ref [style*="color:var(--gray-text)"]{color:#9297c4 !important;}

/* 2026-08-06: Lookup tab -- same dark treatment as the rest, per RH's
   standing dark/bright-colors default. Scoped entirely under #tab-lookup.
   Covers both halves of this tab: the admin search tools (opp search, URL
   Generator, View As by email) AND the FM "My Files" view, since Eric/
   Brianna's restricted view and every opened file live in this same tab's
   markup (fm-my-files-section, lookup-results) -- one pass covers both. */
#tab-lookup{background:#1f2347;border-radius:12px;padding:24px;margin-top:-1px;}
#tab-lookup .section{background:#2c3163;border:1px solid #4c5296;border-radius:10px;margin-bottom:20px;}
#tab-lookup .section-header{border-bottom:1px solid #4c5296;}
#tab-lookup .section-header h3{color:#ffffff;}
#tab-lookup .stat-card{border-right:1px solid #4c5296;}
#tab-lookup .stat-num{color:#ffffff;}
#tab-lookup .stat-lbl{color:#a5abe0;}
#tab-lookup .empty-state{color:#a5abe0;}

/* Opp search / URL Generator / View As by email inputs + buttons */
#tab-lookup .lookup-search input{background:#1f2347;border-color:#4c5296;color:#e2e4f5;}
#tab-lookup select#view-as-fm-select{background:#1f2347;border-color:#4c5296;color:#e2e4f5;}
#tab-lookup .view-as-result{border-bottom:1px solid #4c5296;}
#tab-lookup .view-as-result:hover{background:#363b78;}
#tab-lookup .view-as-tag{background:#1f2347;color:#38bdf8;}

/* Check-row family (My Files list, FM Load-style expandable rows reused
   here for both active/closed lists and Domain Scan-style drilldowns) */
#tab-lookup .check-row{border-bottom:1px solid #4c5296;}
#tab-lookup .check-name{color:#ffffff;}
#tab-lookup .check-detail{color:#a5abe0;}
#tab-lookup .check-status.live,#tab-lookup .check-status.connected{color:#34d399;}
#tab-lookup .check-status.error,#tab-lookup .check-status.unreachable,#tab-lookup .check-status.failed{color:#f87171;}
#tab-lookup .check-status.warn{color:#fbbf24;}
#tab-lookup .dot.live,#tab-lookup .dot.connected{background:#34d399;}
#tab-lookup .dot.error,#tab-lookup .dot.unreachable,#tab-lookup .dot.failed{background:#f87171;}
#tab-lookup .dot.warn{background:#fbbf24;}
#tab-lookup .fm-file-row:hover{background:#363b78;}
#tab-lookup .fm-file-list{background:#1f2347;}
#tab-lookup .fm-file-item{border-bottom:1px solid #4c5296;}
#tab-lookup .fm-file-item:hover{background:#363b78;}
#tab-lookup .fm-file-item .fname{color:#e2e4f5;}
#tab-lookup .fm-file-item .fstage{color:#a5abe0;}
#tab-lookup .expander-header:hover{background:#363b78;}

/* Quick-link buttons (secondary/outline variant only -- the solid teal
   primary variant is already bright enough as-is) */
#tab-lookup .quick-link-btn.secondary{background:#1f2347;color:#38bdf8;border-color:#38bdf8;}

/* Open file view: header, checklist, parties, docs, notes */
#tab-lookup .lookup-header{background:#2c3163;}
#tab-lookup .lookup-header .name{color:#ffffff;}
#tab-lookup .lookup-header .stage{color:#a5abe0;}
#tab-lookup .checklist-item{background:rgba(251,146,60,.18);color:#fb923c;font-weight:600;}
#tab-lookup .checklist-item.done{background:rgba(34,197,94,.18);color:#34d399;}
#tab-lookup .checklist-item.inferred{background:#000000;color:#fb923c;}
#tab-lookup .color-legend{color:#a5abe0;}
#tab-lookup .legend-dot.complete{background:#34d399;}
#tab-lookup .legend-dot.incomplete{background:#fb923c;}
#tab-lookup .doc-row{border-bottom:1px solid #4c5296;}
#tab-lookup .doc-row a{color:#38bdf8;}
#tab-lookup .note-row{border-bottom:1px solid #4c5296;color:#e2e4f5;}
#tab-lookup .note-time{color:#a5abe0;}
#tab-lookup .party-card{background:#1f2347;}
#tab-lookup .party-role{color:#38bdf8;}
#tab-lookup .party-name{color:#ffffff;}
#tab-lookup .party-business{color:#a5abe0;}
#tab-lookup .party-detail{color:#e2e4f5;}
#tab-lookup .party-none{color:#8086c4;}

/* Phase stepper + AI summary card -- ported from lms-portal with hardcoded
   hex colors (not CSS vars), so these need their own dark-mode overrides
   rather than the attribute-selector catches below. AI card is already a
   dark teal gradient by design and needs no change. */
#tab-lookup .phase-stepper{background:#2c3163;border:1px solid #4c5296;}
#tab-lookup .phase-stepper-title{color:#38bdf8;}
#tab-lookup .phase-step:not(:last-child)::after{background:#4c5296;}
#tab-lookup .phase-step.active:not(:last-child)::after{background:#4c5296;}
#tab-lookup .phase-dot{background:#4c5296;border-color:#4c5296;color:#8086c4;}
#tab-lookup .phase-label{color:#8086c4;}
/* 2026-08-06: fixed a real specificity bug -- the four rules above (ID +
   1 class) were unintentionally beating .phase-step.completed/.active/
   .dispute .phase-dot (3 chained classes) in the cascade, since an ID
   always outweighs any number of classes. That silently flattened every
   step (completed, active, dispute) back to the same muted dot -- nothing
   ever visibly progressed. These explicitly restate completed/active/
   dispute at matching specificity, brightened for the dark card. */
#tab-lookup .phase-step.completed .phase-dot{background:#34d399;border-color:#34d399;color:#0f2918;}
#tab-lookup .phase-step.completed:not(:last-child)::after{background:#34d399;}
#tab-lookup .phase-step.completed .phase-label{color:#34d399;}
#tab-lookup .phase-step.active .phase-dot{background:#22d3ee;border-color:#22d3ee;color:#062a30;box-shadow:0 0 0 4px rgba(34,211,238,.25),0 0 18px rgba(34,211,238,.55);animation:phasePulse 2.2s ease-in-out infinite;}
#tab-lookup .phase-step.active .phase-label{color:#22d3ee;font-weight:800;}
#tab-lookup .phase-step.dispute .phase-dot{background:#fb923c;border-color:#fb923c;color:#2b1400;box-shadow:0 0 0 4px rgba(251,146,60,.25),0 0 18px rgba(251,146,60,.55);}
#tab-lookup .phase-step.dispute .phase-label{color:#fb923c;font-weight:800;}
@keyframes phasePulse{
  0%,100%{box-shadow:0 0 0 4px rgba(34,211,238,.25),0 0 18px rgba(34,211,238,.55);}
  50%{box-shadow:0 0 0 7px rgba(34,211,238,.15),0 0 26px rgba(34,211,238,.75);}
}

/* FS/SIF/OIF data tables reuse .ref-table from the Reference tab */
#tab-lookup .ref-table th{background:#1f2347;color:#a5abe0;}
#tab-lookup .ref-table td{border-bottom:1px solid #4c5296;color:#e2e4f5;}

/* Working File Details (FM-editable fields, WORKING-stage files only).
   The inline style on these inputs (border/background depending on
   readOnly state, set in renderWorkingDetails()) beats a plain class rule,
   so this needs !important to actually win for the editable state. */
#tab-lookup #working-details-body input,
#tab-lookup #working-details-body select{background:#1f2347 !important;border-color:#4c5296 !important;color:#e2e4f5 !important;}

/* Catch-all for the many inline light-theme colors baked into this tab's
   JS renderers (sort-header bars, filter bars, FS/SIF/OIF field rows,
   etc.) -- same pattern already used on System Health/Reference. */
#tab-lookup [style*="border:1px solid var(--gray-mid)"],
#tab-lookup [style*="border-bottom:1px solid var(--gray-mid)"]{border-color:#4c5296 !important;}
#tab-lookup [style*="background:var(--gray-bg)"]{background:#1f2347 !important;}
#tab-lookup [style*="color:var(--gray-text)"]{color:#a5abe0 !important;}
#tab-lookup [style*="color:var(--teal)"]{color:#38bdf8 !important;}
#tab-lookup [style*="color:var(--dark)"]{color:#e2e4f5 !important;}
/* 2026-08-12: added for the File Health section's inline tier colors --
   same dark-theme-tuned shades already used elsewhere in this tab (green
   matches .checklist-item.done, red matches .check-status.error, orange
   matches the phase-stepper's dispute-tier dot) rather than the light-mode
   :root values these vars would otherwise resolve to.
   Yellow was folded into this same orange later the same day, per RH's
   ask to limit the total color count -- .checklist-item.inferred,
   .offer-package-badge.incomplete, and escalation tier 1 all use
   var(--orange) now, not var(--yellow), so no yellow catch-all is needed
   in this tab anymore (var(--yellow) is still used elsewhere in the app,
   e.g. System Health/Reference warnings -- those are unrelated and
   untouched). */
#tab-lookup [style*="color:var(--green)"]{color:#34d399 !important;}
#tab-lookup [style*="color:var(--orange)"]{color:#fb923c !important;}
#tab-lookup [style*="color:var(--red)"]{color:#f87171 !important;}

/* ── HQ shell (2026-10-19 redesign, PR 1) ──────────────────────────────────
   Left menu on desktop, bottom bar on phones. The existing tab panes sit
   inside .hq-main unchanged; their own styling gets redone tab by tab in
   later PRs. */
.hq-app{display:flex;min-height:100vh;}
.hq-side{width:220px;flex-shrink:0;background:var(--teal);color:#fff;padding:24px 14px;position:sticky;top:0;height:100vh;box-sizing:border-box;display:flex;flex-direction:column;}
.hq-brand{font-family:var(--fh);font-weight:800;font-size:16px;letter-spacing:0.08em;padding:0 10px 22px;display:flex;flex-direction:column;align-items:flex-start;gap:6px;}
.hq-brand-logo{display:block;width:100%;max-width:176px;height:auto;}
.hq-brand-sub{font-size:11px;font-weight:700;letter-spacing:0.22em;color:rgba(255,255,255,0.75);}
.hq-mobile-logo{display:none;}
.pin-logo{display:block;width:200px;max-width:70%;height:auto;margin:0 auto 14px;}
.hq-nav{display:flex;flex-direction:column;gap:4px;}
.hq-nav-btn{display:flex;align-items:center;gap:10px;width:100%;box-sizing:border-box;border:0;background:transparent;color:#fff;font-family:var(--fb);font-weight:600;font-size:15px;text-align:left;border-radius:10px;padding:12px;cursor:pointer;}
.hq-nav-btn:hover{background:rgba(255,255,255,0.12);}
.hq-nav-btn.active{background:#fff;color:var(--teal);font-weight:700;}
.hq-nav-btn:focus-visible,.hq-bottom button:focus-visible,.tab-btn:focus-visible{outline:2px solid var(--orange);outline-offset:2px;}
.hq-main{flex:1;min-width:0;}
.hq-main .container{max-width:1200px;padding-top:24px;}
.hq-top{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:12px;}
.hq-top h1{font-family:var(--fh);font-size:28px;font-weight:800;color:var(--dark);}
.hq-top-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.hq-top-actions .last-checked{width:100%;text-align:right;margin:0;}
.hq-bottom{display:none;}
footer{margin-top:32px;font-size:12px;color:var(--gray-text);}
body.hq-fm:not(.hq-fm2) .hq-side,body.hq-fm:not(.hq-fm2) .hq-bottom,body.hq-fm #hq-subnav{display:none !important;}

@media (max-width:900px){
  .hq-side{display:none;}
  .hq-bottom{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));position:fixed;left:0;right:0;bottom:0;z-index:50;background:#fff;border-top:1px solid var(--gray-mid);padding:6px 4px calc(10px + env(safe-area-inset-bottom));}
  .hq-bottom button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:48px;border:0;background:transparent;font-family:var(--fb);font-size:12px;font-weight:600;color:var(--gray-text);cursor:pointer;}
  .hq-bottom button.active{color:var(--teal);font-weight:700;}
  .hq-main .container{padding:16px 16px 100px;}
  .hq-top h1{font-size:22px;}
  .hq-top-actions .last-checked{text-align:left;}
  .tab-nav{overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .tab-btn{padding:10px 14px;font-size:13px;white-space:nowrap;}
  #tab-dashboard,#tab-lookup{padding:16px;}
  .dash-stat-row{flex-wrap:wrap;}
  .dash-stat-pill{min-width:140px;}
  .section{overflow-x:auto;}
  canvas,img{max-width:100%;}
}

/* ── Content + Needs you (PR 3): the new light look ───────────────────── */
.hq-badge{margin-left:auto;background:var(--orange);color:#fff;border-radius:999px;font-size:12px;font-weight:700;padding:1px 8px;line-height:18px;}
.hq-bottom .hq-badge{position:absolute;margin:0;transform:translate(14px,-14px);font-size:10px;padding:0 6px;}
.hq-bottom button{position:relative;}
.hq-light{color:#17262E;}
.hq-light h2,.hq-light h3{font-family:var(--fh);}
.c-load-error{display:none;background:var(--red-bg);color:var(--red);padding:10px 14px;border-radius:10px;margin-bottom:12px;font-size:14px;}
.c-empty{padding:28px;text-align:center;color:#5A6A72;font-size:14px;background:#fff;border-radius:14px;}
.c-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:16px;}
.c-weeknav{display:flex;align-items:center;gap:10px;}
.c-weeklabel{font-family:var(--fh);font-weight:800;font-size:18px;min-width:150px;text-align:center;}
.c-btn-icon{width:40px;height:40px;border:1px solid #D3DBDF;background:#fff;border-radius:10px;font-size:20px;cursor:pointer;color:#17262E;}
.c-counts,.c-legend{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.c-pill{display:inline-block;font-size:11px;font-weight:700;letter-spacing:0.03em;border-radius:999px;padding:3px 9px;background:#E3EEF3;color:#1E4A5E;white-space:nowrap;}
.c-pill.c-draft{background:#FBEADF;color:#8A3A00;}
.c-pill.c-ok{background:#D5E6EE;color:#17262E;}
.c-pill.c-done{background:#2D637D;color:#fff;}
.c-pill.c-killed{background:#F1E1E1;color:#8A1F1F;}
.c-split{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-start;}
.c-list{flex:1 1 280px;max-width:380px;background:#fff;border-radius:14px;padding:8px;}
.c-day{font-family:var(--fh);font-weight:800;font-size:12px;color:#5A6A72;text-transform:uppercase;letter-spacing:0.06em;padding:12px 10px 6px;}
.c-row{display:flex;align-items:center;gap:12px;width:100%;border:0;background:#fff;border-radius:10px;padding:10px;cursor:pointer;text-align:left;font-family:var(--fb);}
.c-row:hover{background:#F3F7F9;}
.c-row.sel{background:#E3EEF3;box-shadow:inset 0 0 0 2px var(--teal);}
.c-thumb{width:40px;height:52px;flex-shrink:0;border-radius:6px;background:var(--teal);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;}
.c-row-main{display:flex;flex-direction:column;gap:2px;min-width:0;flex-grow:1;}
.c-row-when{font-size:12px;font-weight:700;color:var(--teal);}
.c-row-title{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.c-preview{flex:999 1 440px;min-width:0;background:#fff;border-radius:14px;padding:20px;}
.c-prev-grid{display:flex;flex-wrap:wrap;gap:22px;}
.c-prev-media{flex:0 0 270px;display:flex;flex-direction:column;gap:8px;}
.c-media{border-radius:12px;overflow:hidden;background:var(--teal);}
.c-media iframe{width:100%;height:100%;border:0;display:block;}
.c-media-v{width:270px;height:480px;}
.c-media-s{width:270px;height:338px;}
.c-handnote{border:2px dashed #D3DBDF;border-radius:12px;padding:18px;font-size:14px;color:#3E4E56;}
.c-link{font-size:13px;font-weight:600;color:var(--teal);}
.c-prev-body{flex:1 1 260px;min-width:0;display:flex;flex-direction:column;gap:12px;}
.c-prev-top{display:flex;justify-content:space-between;align-items:center;gap:10px;}
.c-prev-title{font-size:21px;font-weight:800;line-height:1.25;}
.c-hook{font-size:14px;background:#F3F5F6;border-radius:10px;padding:10px 12px;}
.c-hook span{display:block;font-size:11px;font-weight:700;color:#5A6A72;text-transform:uppercase;letter-spacing:0.05em;margin-bottom:2px;}
.c-tabs{display:flex;gap:6px;flex-wrap:wrap;}
.c-tab{font-family:var(--fb);font-size:13px;font-weight:600;border:1px solid #D3DBDF;background:#fff;color:#17262E;border-radius:8px;padding:8px 14px;cursor:pointer;}
.c-tab.on{background:#17262E;color:#fff;border-color:#17262E;}
.c-caption{font-size:15px;line-height:1.55;background:#F3F5F6;border-radius:10px;padding:14px;white-space:pre-line;}
.c-meta{display:grid;grid-template-columns:110px minmax(0,1fr);gap:6px 12px;font-size:14px;margin:0;}
.c-meta dt{color:#5A6A72;font-weight:600;}
.c-meta dd{margin:0;word-break:break-word;}
.c-notelabel{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:#5A6A72;}
.c-notelabel textarea{font-family:var(--fb);font-size:14px;border:1px solid #D3DBDF;border-radius:10px;padding:10px;resize:vertical;}
.c-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.c-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border-radius:10px;border:1px solid #D3DBDF;background:#fff;color:#17262E;font-family:var(--fh);font-weight:700;font-size:14px;cursor:pointer;text-decoration:none;}
.c-btn.primary{background:var(--teal);border-color:var(--teal);color:#fff;}
.c-btn.dark{background:#17262E;border-color:#17262E;color:#fff;}
.c-btn.danger{color:#A52222;border-color:#F1C7C7;}
.c-done-note{font-size:14px;color:#3E4E56;font-weight:600;}
.c-legend span{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:#3E4E56;}
.c-legend i{width:12px;height:12px;border-radius:3px;display:inline-block;}
.c-legend i.draft,.c-chip.draft{background:#FBEADF;color:#6E2E00;border:1px solid #E8B48F;}
.c-legend i.ok,.c-chip.ok{background:#D5E6EE;color:#17262E;border:1px solid #8FB6C8;}
.c-legend i.done,.c-chip.done{background:var(--teal);color:#fff;border:1px solid var(--teal);}
.c-legend i.hand,.c-chip.hand{background:#fff;color:#3E4E56;border:1.5px dashed #5A6A72;}
.c-chip.killed{background:#F7F7F7;color:#999;border:1px solid #ddd;text-decoration:line-through;}
.c-cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:#fff;border-radius:14px;overflow:hidden;}
.c-dow{padding:10px;font-size:12px;font-weight:700;color:#5A6A72;text-transform:uppercase;background:#F7F9FA;border-bottom:1px solid #E2E7EA;}
.c-cell{min-height:118px;padding:6px;border-right:1px solid #ECEFF1;border-bottom:1px solid #ECEFF1;display:flex;flex-direction:column;gap:3px;min-width:0;}
.c-cell.out{background:#F7F9FA;}
.c-num{font-size:12px;font-weight:700;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;}
.c-cell.out .c-num{color:#A3AFB5;}
.c-num.today{background:var(--orange);color:#fff;}
.c-chip{display:block;width:100%;text-align:left;font-family:var(--fb);font-size:11px;line-height:1.2;border-radius:6px;padding:4px 6px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.c-foot{font-size:13px;color:#5A6A72;margin-top:10px;}
.c-seg{display:flex;background:#E2E7EA;border-radius:10px;padding:3px;}
.c-seg button{border:0;background:transparent;font-family:var(--fb);font-size:14px;font-weight:600;color:#3E4E56;border-radius:8px;padding:8px 14px;cursor:pointer;}
.c-seg button.on{background:#fff;color:#17262E;font-weight:700;box-shadow:0 1px 3px rgba(0,0,0,0.12);}
.c-scripts{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;}
.c-script,.c-req{background:#fff;border-radius:14px;padding:16px 18px;display:flex;flex-direction:column;gap:10px;}
.c-script-top{display:flex;align-items:center;gap:10px;}
.c-script-top h3{font-size:16px;font-weight:800;flex-grow:1;}
.c-script-no{width:30px;height:30px;border-radius:50%;background:var(--teal);color:#fff;font-family:var(--fh);font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.c-script-text{font-size:17px;line-height:1.6;margin:0;}
.c-warn{background:#FFF4E5;color:#7A4100;border-radius:10px;padding:10px 12px;font-size:13px;font-weight:600;}
.c-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:22px;}
.c-sumcard{text-align:left;border:0;background:#fff;border-radius:14px;padding:16px 18px;cursor:pointer;font-family:var(--fb);display:flex;flex-direction:column;gap:2px;}
.c-sumcard.static{cursor:default;}
.c-sumcard b{font-family:var(--fh);font-size:30px;font-weight:800;color:#17262E;}
.c-sumcard span{font-size:13px;font-weight:600;color:#5A6A72;}
.c-h2{font-size:16px;font-weight:800;margin:0 0 12px;}
.c-req{margin-bottom:12px;}
.c-req.done{opacity:0.7;}
.c-req h3{font-size:16px;font-weight:800;}
.c-req p{margin:0;font-size:14px;line-height:1.5;color:#3E4E56;}
.c-req-top{display:flex;justify-content:space-between;gap:10px;}
.c-req-from{font-size:12px;font-weight:700;color:var(--teal);text-transform:uppercase;letter-spacing:0.05em;}
.c-donelist summary{cursor:pointer;font-weight:700;margin:8px 0 12px;color:#5A6A72;}
@media (max-width:900px){
  .hq-bottom{grid-template-columns:repeat(7,minmax(0,1fr));}
  .hq-bottom button{font-size:9.5px;}
  .c-list{max-width:none;}
  .c-prev-media{flex-basis:100%;align-items:center;}
  .c-cell{min-height:84px;padding:3px;}
  .c-chip{font-size:10px;padding:2px 3px;}
  .c-script-text{font-size:16px;}
}

/* ── PR 6: Files, file page, small fixes ───────────────────────────────── */
.hq-top-actions .last-checked{display:none;}
body.hq-on-system .hq-top-actions .last-checked{display:block;}
.c-media-v{width:300px;height:533px;}
.c-media-s{width:300px;height:375px;}
.c-prev-media{flex:0 0 300px;}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
.c-seg button span{opacity:0.65;font-weight:600;margin-left:2px;}
.f-tools{display:flex;gap:14px;align-items:center;flex-wrap:wrap;}
.f-search input{width:min(360px,80vw);min-height:44px;border:1px solid #D3DBDF;border-radius:10px;padding:0 14px;font-family:var(--fb);font-size:15px;background:#fff;}
.f-sortm{display:none;}
.f-sortm select{min-height:44px;border:1px solid #D3DBDF;border-radius:10px;padding:0 10px;font-family:var(--fb);font-size:14px;background:#fff;}
.f-closed{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:#3E4E56;}
.f-closed input{width:18px;height:18px;accent-color:var(--teal);}
.f-table{background:#fff;border-radius:14px;overflow-x:auto;}
.f-inner{min-width:900px;}
.f-head,.f-row{display:grid;grid-template-columns:minmax(0,2.6fr) 110px minmax(0,1.5fr) 110px 100px 90px;gap:12px;align-items:center;padding:0 18px;}
.f-head{background:#F7F9FA;border-bottom:1px solid #E2E7EA;}
.f-th{border:0;background:transparent;text-align:left;font-family:var(--fb);font-size:12px;font-weight:700;color:#5A6A72;text-transform:uppercase;letter-spacing:0.05em;padding:12px 0;cursor:pointer;}
.f-th.on{color:#17262E;}
.f-th span{color:var(--teal);}
.f-th.static{cursor:default;}
.f-row{padding-top:10px;padding-bottom:10px;border-bottom:1px solid #ECEFF1;font-size:14px;}
.f-row:hover{background:#F7FAFB;}
.f-row.closed{opacity:0.6;}
.f-name{color:#17262E;font-weight:600;text-decoration:none;display:flex;flex-direction:column;min-width:0;}
.f-name:hover{color:var(--teal);text-decoration:underline;}
.f-name small{font-weight:400;color:#5A6A72;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.f-stage,.f-owner{color:#3E4E56;}
.f-days{font-weight:700;color:#3E4E56;}
.f-days.late{color:#A52222;}
.f-ghlbtn{display:inline-flex;align-items:center;text-decoration:none;border:1px solid #D3DBDF;border-radius:8px;padding:6px 10px;font-size:12px;font-weight:700;color:var(--teal);background:#fff;white-space:nowrap;}
.f-back{display:inline-block;font-weight:700;color:var(--teal);text-decoration:none;margin-bottom:14px;font-size:14px;}
.f-card{background:#fff;border-radius:14px;padding:18px 20px;margin-bottom:16px;}
.f-card h3{font-size:16px;font-weight:800;margin-bottom:10px;}
.f-header{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap;}
.f-header h2{font-size:24px;font-weight:800;line-height:1.2;}
.f-sub{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px;font-size:14px;color:#3E4E56;}
.f-alert{background:#FBEADF;color:#5A2A00;border-radius:14px;padding:14px 18px;margin-bottom:16px;font-size:15px;}
.f-summary{font-size:15px;line-height:1.6;margin:0;white-space:pre-line;}
.f-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:16px;align-items:start;}
.f-col{min-width:0;}
.f-check,.f-people,.f-docs,.f-notes{list-style:none;margin:0;padding:0;}
.f-check li{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid #F0F2F3;font-size:14px;}
.f-check b.ok{color:#1E4A5E;}
.f-check b.miss{color:#A52222;}
.f-people li{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #F0F2F3;flex-wrap:wrap;}
.f-person{display:flex;flex-direction:column;min-width:150px;flex-grow:1;}
.f-person small{color:#5A6A72;font-size:12px;}
.f-contact{display:flex;flex-direction:column;font-size:13px;}
.f-contact a{color:var(--teal);text-decoration:none;}
.f-block{border-top:1px solid #F0F2F3;padding:10px 0;}
.f-block summary{display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-weight:700;font-size:14px;list-style:none;}
.f-block summary em{font-style:normal;color:#5A6A72;font-weight:600;font-size:13px;}
.f-mini{font-size:12px;font-weight:700;color:var(--teal);border:1px solid #D3DBDF;border-radius:6px;padding:3px 8px;text-decoration:none;}
.f-kv{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:10px;padding:6px 0;font-size:13px;border-bottom:1px solid #F7F7F7;}
.f-kv span{color:#5A6A72;}
.f-kv b{font-weight:600;word-break:break-word;}
.f-docs li{display:flex;justify-content:space-between;gap:10px;padding:6px 0;font-size:14px;}
.f-docs a{color:var(--teal);}
.f-docs small,.f-notes small{color:#5A6A72;font-size:12px;}
.f-notes li{padding:10px 0;border-bottom:1px solid #F0F2F3;font-size:14px;line-height:1.5;}
.f-notes li div{white-space:pre-line;word-break:break-word;}
@media (max-width:900px){
  .c-media-v{width:270px;height:480px;}
  .f-head{display:none;}
  .f-inner{min-width:0;}
  .f-row{display:flex;flex-wrap:wrap;gap:4px 10px;padding:12px 14px;}
  .f-row .f-name{flex:1 1 70%;}
  .f-row .f-ghl{order:2;}
  .f-row > span:nth-child(2),.f-row .f-stage,.f-row .f-days,.f-row .f-owner{order:3;font-size:12px;}
  .f-search input{width:100%;}
  .f-sortm{display:block;}
  .f-tools{width:100%;}
}

/* ── Dashboard Overview (PR 7) ─────────────────────────────────── */
#dash-v2{--d-blue:#2f6fde;--d-green:#1f9d6b;--d-orange:#e08a1e}
.d-periods{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 16px}
.d-periods button{border:1px solid #d6dde3;background:#fff;color:#33424d;border-radius:999px;padding:6px 13px;font:inherit;font-size:13px;cursor:pointer}
.d-periods button.on{background:#0f4c5c;border-color:#0f4c5c;color:#fff}
.d-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.d-kpi{text-align:left;background:#fff;border:1px solid #e1e6ea;border-top:4px solid var(--c);border-radius:12px;padding:14px 16px;cursor:pointer;font:inherit;color:#1b2a33;display:flex;flex-direction:column;gap:2px}
.d-kpi b{font-size:34px;line-height:1.1}
.d-kpi-label{font-size:13px;font-weight:600;color:#55636d}
.d-kpi-hint{font-size:12px;color:#7c8a94}
.d-kpi.on{box-shadow:0 0 0 2px var(--c) inset;background:#fafcfd}
.d-kpi:focus-visible{outline:2px solid #0f4c5c;outline-offset:2px}
.d-blue{--c:var(--d-blue)}.d-green{--c:var(--d-green)}.d-orange{--c:var(--d-orange)}
.d-conv{margin:12px 2px 16px;color:#44535d;font-size:14px}
.d-card{background:#fff;border:1px solid #e1e6ea;border-radius:12px;padding:14px 16px;margin-bottom:14px}
.d-card h2{font-size:15px;margin:0 0 10px;color:#1b2a33}
.d-card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.d-card-head h2{margin:0}
.d-count{background:#eef2f4;border-radius:999px;padding:1px 8px;font-size:12px;margin-left:4px;color:#44535d}
.d-note{font-size:12.5px;color:#6a7882;margin:4px 0 8px}
.d-list{display:flex;flex-direction:column}
.d-row{display:grid;grid-template-columns:110px minmax(0,2fr) minmax(0,1.4fr) 70px;gap:10px;align-items:center;padding:8px 0;border-top:1px solid #eef1f3;font-size:13.5px}
.d-headrow{font-size:12px;color:#7c8a94;font-weight:600;border-top:none}
.d-when{color:#55636d;white-space:nowrap}
.d-name{color:#0f4c5c;font-weight:600;text-decoration:none;overflow:hidden;text-overflow:ellipsis}
span.d-name{color:#1b2a33}
.d-name small{display:block;font-weight:400;color:#7c8a94;font-size:12px}
.d-stage{color:#44535d;font-size:13px}
.d-stage small{display:block;color:#7a8a93;font-size:11.5px;margin-top:1px}
.d-oc{font-weight:600}.d-oc.ok{color:#1d7a46}.d-oc.ok a{color:#1d7a46;text-decoration:none}.d-oc.info{color:#2d637d}.d-oc.warn{color:#a84a00}
.d-oc-m{display:none!important}
.d-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.d-pace{display:grid;grid-template-columns:100px 1fr 72px 44px;gap:10px;align-items:center;font-size:13px;padding:5px 0}
.d-pace em{font-style:normal;color:#55636d;text-align:right}
.d-bar{height:10px;background:#eef2f4;border-radius:6px;overflow:hidden}
.d-bar i{display:block;height:100%;border-radius:6px}
.d-bar i.g{background:var(--d-green)}.d-bar i.a{background:#e0a31e}.d-bar i.r{background:#d2513f}
.d-cls{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.d-cl{background:#f6f8f9;border-radius:8px;padding:8px 10px;display:flex;justify-content:space-between;font-size:13px}
.d-legend{font-size:12px;color:#55636d;display:flex;gap:6px;align-items:center}
.d-legend i{display:inline-block;width:10px;height:10px;border-radius:2px;background:var(--c);margin-left:6px}
.d-weeks{display:grid;grid-template-columns:repeat(12,1fr);gap:6px;height:150px;align-items:end}
.d-wk{display:flex;flex-direction:column;align-items:center;height:100%}
.d-wk-bars{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:2px}
.d-wk-bars i{width:30%;max-width:12px;background:var(--c);border-radius:2px 2px 0 0;min-height:1px}
.d-wk span{font-size:10.5px;color:#7c8a94;margin-top:4px}
.d-open{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.d-open button{background:#f6f8f9;border:1px solid #e1e6ea;border-radius:10px;padding:12px;text-align:left;cursor:pointer;font:inherit;color:#1b2a33}
.d-open button b{display:block;font-size:24px}
.d-open button span{font-size:12.5px;color:#55636d}
.d-open button.warn b{color:#c2410c}
.d-foot{font-size:12px;color:#7c8a94}
@media (max-width:900px){
  .d-kpis{gap:8px}.d-kpi{padding:10px}.d-kpi b{font-size:26px}.d-kpi-hint{display:none}
  .d-grid{grid-template-columns:1fr}
  .d-row{grid-template-columns:78px minmax(0,1fr) 54px}.d-row .d-stage{display:none}.d-oc-m{display:block!important;color:#2d637d}
  .d-headrow span:nth-child(3){display:none}
  .d-weeks{gap:3px}.d-wk span{font-size:9px}
  .d-pace{grid-template-columns:86px 1fr 64px 38px}
}
.d-more{margin-top:10px}

/* ── Today (PR 8) ──────────────────────────────────────────────── */
.t-date{font-size:15px;color:#33424d;margin:2px 2px 14px}
.t-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:start}
.t-ev{display:grid;grid-template-columns:118px minmax(0,1fr);gap:10px;padding:9px 0;border-top:1px solid #eef1f3;font-size:13.5px}
.t-ev:first-of-type{border-top:none}
.t-ev.past{opacity:.5}
.t-ev.next{background:#f1f8f9;margin:0 -8px;padding:9px 8px;border-radius:8px}
.t-ev.consult .t-what b{color:#0f4c5c}
.t-time{color:#55636d;white-space:nowrap}
.t-what small{display:block;color:#6a7882;font-size:12.5px;margin-top:2px}
.t-what a{color:#0f4c5c}
.t-free,.t-nexttag{font-size:11px;border-radius:999px;padding:1px 7px;margin-left:6px;vertical-align:1px}
.t-free{background:#eef2f4;color:#55636d}
.t-nexttag{background:#0f4c5c;color:#fff}
.t-setup{background:#fff8ec;border:1px solid #f1d9a8;border-radius:10px;padding:12px;font-size:13px;display:flex;flex-direction:column;gap:4px;color:#5b4520}
.t-top3{display:flex;flex-direction:column;gap:8px}
.t-item{display:flex;align-items:center;gap:8px;border:1px solid #e1e6ea;border-radius:10px;padding:6px 10px}
.t-item input[type=checkbox]{width:18px;height:18px;accent-color:#1f9d6b;flex:none}
.t-n{font-weight:700;color:#7c8a94;width:14px}
.t-item input[type=text]{flex:1;border:none;font:inherit;font-size:14px;padding:6px 2px;background:transparent;min-width:0}
.t-item input[type=text]:focus{outline:none}
.t-item:focus-within{border-color:#0f4c5c}
.t-item.done input[type=text]{text-decoration:line-through;color:#7c8a94}
.t-save{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.t-status{font-size:12.5px;color:#6a7882}
.t-sugg{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:4px}
.t-sugg>span{font-size:12px;color:#7c8a94}
.t-chip{border:1px dashed #b9c4cb;background:#fff;border-radius:999px;padding:5px 10px;font:inherit;font-size:12.5px;color:#33424d;cursor:pointer;text-align:left}
.t-chip.rolled{border-style:solid;border-color:#e0a31e;background:#fffaf0}
.t-hq{margin-bottom:12px}
.t-h3{font-size:13px;margin:6px 0 6px;color:#44535d}
.t-w{display:grid;grid-template-columns:46px minmax(0,1fr);gap:8px;padding:7px 0;border-top:1px solid #eef1f3;font-size:13px}
.t-w small{display:block;color:#7c8a94;font-size:12px}
.t-age{color:#c2410c;font-weight:600;font-size:12px;padding-top:1px}
.dr-head{display:block;width:100%;text-align:left;background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer}
.dr-head:hover b{color:#0f4c5c;text-decoration:underline}
.dr-head small{display:block;color:#7c8a94;font-size:12px}
.dr-ans{display:inline-block;margin-top:3px;font-size:11.5px;background:#fff4e5;color:#9a4b00;border-radius:999px;padding:1px 8px}
.dr-urg{font-size:10.5px;background:#c2410c;color:#fff;border-radius:4px;padding:1px 5px;vertical-align:1px}
.dr.done .dr-head b{color:#5f6f79}
.dr-modal{position:fixed;inset:0;z-index:1000;background:rgba(15,30,38,.55);display:flex;align-items:center;justify-content:center;padding:24px 16px}
.dr-panel{background:#fff;border-radius:14px;width:100%;max-width:680px;max-height:calc(100vh - 48px);display:flex;flex-direction:column;box-shadow:0 18px 50px rgba(0,0,0,.25);overflow:hidden}
.dr-top{display:flex;align-items:flex-start;gap:12px;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid #eef1f3}
.dr-top b{font-size:16px;color:#1f2d3a}
.dr-top small{display:block;color:#7c8a94;font-size:12.5px;margin-top:2px}
.dr-x{border:0;background:#f1f4f6;border-radius:8px;width:34px;height:34px;font-size:15px;cursor:pointer;flex:none}
.dr-body{display:flex;flex-direction:column;gap:8px;padding:14px 20px;overflow-y:auto;min-width:0}
.dr-body>*{min-width:0;max-width:100%}
.dr-them,.dr-sms,.dr-flag{overflow-wrap:anywhere}
.dr-sp{flex:1}
body.dr-lock{overflow:hidden}
.dr-k{margin:4px 0 0;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:#6a7882}
.dr-them{background:#f2f4f6;border-radius:10px;padding:10px 13px;white-space:pre-wrap;max-height:220px;overflow-y:auto;font-size:13.5px}
.dr-sms{align-self:flex-start;max-width:95%;background:#0f4c5c;color:#fff;border-radius:14px;padding:8px 12px;white-space:pre-wrap}
.dr-to{margin:0;font-size:12.5px;color:#33424d}
.dr-smsedit{width:100%;box-sizing:border-box;border:1.5px solid #0f4c5c;border-radius:12px;padding:8px 11px;font:inherit;font-size:14px;line-height:1.45;resize:vertical;background:#f4fafb;color:#1f2d3a}
.dr-smsedit:focus{outline:2px solid #9fd0da}
.dr-mail.edit{border:1.5px solid #0f4c5c}
.dr-n{margin:0;font-size:12px;color:#6a7882}
.dr-mail{width:100%;height:340px;flex:none;border:1px solid #e3e8ec;border-radius:8px;background:#fff}
.dr-flag{background:#fff6ef;border-left:3px solid #cc5500;padding:6px 10px;border-radius:5px;font-size:12.5px}
.dr-msg{background:#e8f5ee;color:#1d6b41;padding:7px 10px;border-radius:6px;font-weight:600}
.dr-msg.bad{background:#fdecec;color:#a12020}
.dr-act{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:12px 20px;border-top:1px solid #eef1f3;background:#fafbfc}
.dr-bulk{padding:3px 10px;font-size:12px;margin-left:6px}
@media (max-width:900px){
  .t-grid{grid-template-columns:1fr}
  .t-grid>div{order:-1}
  .t-ev{grid-template-columns:72px minmax(0,1fr)}
  .t-end{display:none}
}

/* ── Team (PR 9) ───────────────────────────────────────────────── */
.tm-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.tm-card .d-card-head{margin-bottom:10px}
.tm-missed{font-size:12px;color:#c2410c}
.tm-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.tm-stats button{background:#f6f8f9;border:1px solid #e1e6ea;border-radius:10px;padding:9px 10px;text-align:left;cursor:pointer;font:inherit;color:#1b2a33}
.tm-stats button b{display:block;font-size:22px;line-height:1.15}
.tm-stats button span{font-size:12px;color:#55636d}
.tm-stats button.on{border-color:#0f4c5c;box-shadow:0 0 0 1px #0f4c5c inset;background:#fff}
.tm-spark{display:flex;align-items:flex-end;gap:2px;height:36px;margin-top:10px}
.tm-spark i{flex:1;background:#9cc3cc;border-radius:2px 2px 0 0;min-height:2px}
.tm-row{display:grid;grid-template-columns:130px minmax(0,1.6fr) minmax(0,1.4fr);gap:10px;padding:8px 0;border-top:1px solid #eef1f3;font-size:13.5px;align-items:center}
.tm-row a{color:#0f4c5c}
.tm-miss{color:#c2410c;font-style:normal}
@media (max-width:1100px){.tm-grid{grid-template-columns:1fr 1fr}}
@media (max-width:900px){
  .tm-grid{grid-template-columns:1fr}
  .tm-stats{grid-template-columns:repeat(3,1fr)}
  .tm-stats button b{font-size:18px}
  .tm-row{grid-template-columns:1fr;gap:2px}
}

.c-links{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}
.c-links a{text-decoration:none}

/* ── Record memos (10/20) ──────────────────────────────────────── */
.rec-modal{position:fixed;inset:0;background:rgba(15,30,38,.55);display:none;align-items:center;justify-content:center;z-index:1000;padding:16px}
.rec-card{background:#fff;border-radius:16px;max-width:640px;width:100%;max-height:92vh;overflow:auto;padding:20px 22px;box-shadow:0 20px 60px rgba(0,0,0,.25)}
.rec-top{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.rec-top h3{flex:1;margin:0;font-size:17px}
.rec-x{border:none;background:#eef2f4;border-radius:999px;width:32px;height:32px;cursor:pointer;font-size:14px}
.rec-script{font-size:20px;line-height:1.55;color:#1b2a33;margin:12px 0 16px}
.rec-flash{background:#eaf7f0;color:#14613f;border-radius:8px;padding:6px 10px;font-size:13px;margin:0 0 8px}
.rec-ctl{display:flex;flex-direction:column;align-items:center;gap:10px;padding:12px 0 4px;border-top:1px solid #eef1f3}
.rec-big{width:76px;height:76px;border-radius:50%;border:4px solid #e3e8ec;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}
.rec-big:focus-visible{outline:3px solid #0f4c5c;outline-offset:3px}
.rec-dot{width:44px;height:44px;border-radius:50%;background:#d2513f}
.rec-big.on{border-color:#f3c9c2;animation:recpulse 1.2s ease-in-out infinite}
.rec-sq{width:28px;height:28px;border-radius:6px;background:#d2513f}
@keyframes recpulse{50%{box-shadow:0 0 0 10px rgba(210,81,63,.15)}}
.rec-meter{width:220px;height:8px;background:#eef2f4;border-radius:6px;overflow:hidden}
.rec-meter i{display:block;height:100%;width:0;background:#1f9d6b;transition:width .08s}
.rec-hint{font-size:13.5px;color:#55636d;margin:0;text-align:center}
.rec-audio{width:100%;max-width:420px}
.rec-row{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.rec-foot{font-size:12px;color:#7c8a94;text-align:center;margin:12px 0 0}
@media (max-width:600px){.rec-script{font-size:18px}.rec-card{padding:16px}}
.c-pill.c-complete{background:#1f9d6b;color:#fff;}

/* ── Top 100 (10/20) ───────────────────────────────────────────── */
.t1-list{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}
.t1-row{background:#fff;border:1px solid #e1e6ea;border-radius:10px;display:grid;grid-template-columns:minmax(0,1fr) 150px 130px;align-items:center}
.t1-row.open{border-color:#c9d6dc}
.t1-main{display:grid;grid-template-columns:40px minmax(0,1fr) 64px 64px 64px;gap:10px;align-items:center;padding:10px 12px;background:none;border:none;text-align:left;font:inherit;color:inherit;cursor:pointer;width:100%}
.t1-main.static{cursor:default;grid-template-columns:36px minmax(0,2.2fr) 64px 64px}
.t1-main:focus-visible{outline:2px solid #0f4c5c;outline-offset:-2px;border-radius:10px}
.t1-rank{font-weight:700;color:#0f4c5c;font-size:15px;text-align:center}
.t1-who b{display:block;font-size:14px;color:#1b2a33;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.t1-who small{display:block;color:#6a7882;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.t1-num{text-align:center}
.t1-num b{display:block;font-size:16px}
.t1-num small{font-size:11px;color:#7c8a94}
.t1-call{padding-right:12px;font-size:13px;white-space:nowrap}
.t1-call a,.t1-more a{color:#0f4c5c}
.t1-more{grid-column:1/-1;padding:0 14px 12px 58px;font-size:13px;color:#44535d}
.t1-why{margin:0 0 6px}
.t1-facts{display:flex;flex-wrap:wrap;gap:6px 14px;margin-bottom:6px}
.t1-files{margin:0 0 8px;color:#6a7882;font-size:12.5px}
.t1-contact{padding:3px 0}
@media (max-width:900px){
  .t1-main{grid-template-columns:28px minmax(0,1fr) 46px 46px;gap:6px}
  .t1-main.static{grid-template-columns:28px minmax(0,1fr) 46px 46px}
  .t1-more{padding-left:14px}
  .t1-call{font-size:12px}
}

.t1-row.dnc{background:#fafafa}
.t1-row.dnc .t1-who b,.t1-row.dnc .t1-num b{color:#8a959c}
.t1-dnc{font-size:13px}
.t1-openfile{display:inline-block;font-size:11px;font-weight:600;background:#e7f6ef;color:#14613f;border-radius:999px;padding:1px 7px;margin-left:4px;vertical-align:1px;white-space:nowrap}
.t1-tag{padding:0 6px}
.t1-pill{appearance:none;-webkit-appearance:none;border:none;border-radius:999px;padding:4px 24px 4px 10px;font:inherit;font-size:12px;font-weight:600;cursor:pointer;max-width:100%;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 12px) 52%,calc(100% - 8px) 52%;background-size:4px 4px,4px 4px;background-repeat:no-repeat}
.t1-pill:focus-visible{outline:2px solid #0f4c5c;outline-offset:2px}
.t1-pill.c-draft{background-color:#FBEADF;color:#8A3A00}
.t1-pill.c-ok{background-color:#D5E6EE;color:#17262E}
.t1-pill.c-complete{background-color:#1f9d6b;color:#fff}
.t1-pill.c-prev{background-color:#e7f6ef;color:#14613f}
.t1-pill.c-dnc{background-color:#3a3f44;color:#fff}
.t1-dncnote{margin:0 0 6px;color:#8a3a00}
.t1-seg{flex-wrap:wrap}
@media (max-width:900px){
  .t1-row{grid-template-columns:minmax(0,1fr) auto}
  .t1-main{grid-template-columns:28px minmax(0,1fr) 46px 46px}
  .t1-main .t1-num:nth-of-type(4){display:none}
  .t1-tag{grid-column:1/2;padding:0 12px 10px 46px}
  .t1-call{grid-row:1;grid-column:2}
  .t1-openfile{display:block;width:max-content;margin:2px 0 0}
}

.t1-pager{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin:8px 0}
.t1-pager button{min-width:36px;height:34px;padding:0 10px;border:1px solid #d6dde3;background:#fff;border-radius:8px;font:inherit;font-size:13px;color:#33424d;cursor:pointer}
.t1-pager button.on{background:#0f4c5c;border-color:#0f4c5c;color:#fff;font-weight:700}
.t1-pager button:disabled{opacity:.4;cursor:default}
.t1-pager button:focus-visible{outline:2px solid #0f4c5c;outline-offset:2px}
.t1-range{font-size:12.5px;color:#6a7882;margin-right:8px}
.t1-gap{color:#9aa5ac;padding:0 2px}

.t1-callbtn{border:1px solid #cfe0e6;background:#f2f8fa;color:#0f4c5c;border-radius:999px;padding:5px 10px;font:inherit;font-size:12.5px;cursor:pointer;white-space:nowrap}
.t1-callbtn:hover{background:#e3f0f4}
.t1-callbtn:focus-visible{outline:2px solid #0f4c5c;outline-offset:2px}

.t1-brand{color:#0f4c5c;font-weight:600}
.t1-offices{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:6px}
.t1-office{text-align:left;background:#f6f8f9;border:1px solid #e1e6ea;border-radius:8px;padding:7px 10px;font:inherit;cursor:pointer;color:#1b2a33}
.t1-office b{display:block;font-size:13px}
.t1-office span{font-size:12px;color:#6a7882}
.t1-office:hover{border-color:#0f4c5c}

.t1-h4{font-size:13px;margin:10px 0 6px;color:#1b2a33}
.t1-props{border:1px solid #e6ebee;border-radius:8px;overflow:hidden;max-height:420px;overflow-y:auto}
.t1-prow{display:grid;grid-template-columns:minmax(0,2.4fr) minmax(0,1.3fr) 90px 100px 90px 100px 100px;gap:8px;padding:7px 10px;border-top:1px solid #eef1f3;font-size:12.5px;align-items:center}
.t1-props .t1-prow:not(:has(> span:nth-child(7))){grid-template-columns:minmax(0,2.4fr) 90px 100px 90px 100px 100px}
.t1-phead{border-top:none;background:#f6f8f9;font-weight:600;color:#6a7882;position:sticky;top:0}
.t1-prow small{display:block;color:#7c8a94;font-size:11.5px}
@media (max-width:900px){
  .t1-prow,.t1-props .t1-prow:not(:has(> span:nth-child(7))){grid-template-columns:1fr auto;row-gap:2px}
  .t1-prow > span:nth-child(n+3){font-size:11.5px;color:#55636d}
  .t1-phead{display:none}
}

.t1-back{margin:0 0 6px}
.t1-backnote{margin:0 0 10px;font-size:13px;color:#44535d}

.hq-title-row{display:flex;align-items:center;gap:12px;min-width:0}
.hq-back{border:1px solid #d6dde3;background:#fff;color:#0f4c5c;border-radius:999px;padding:6px 14px;font:inherit;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}
.hq-back:hover{background:#f2f8fa}
.hq-back:focus-visible{outline:2px solid #0f4c5c;outline-offset:2px}
.hq-back[hidden]{display:none}
@media (max-width:900px){.hq-back{padding:5px 10px;font-size:12px}}

.d-th{background:none;border:none;padding:0;font:inherit;font-size:12px;font-weight:600;color:#7c8a94;text-align:left;cursor:pointer}
.d-th.on{color:#0f4c5c}
.d-th span{font-weight:500}
.d-th:focus-visible{outline:2px solid #0f4c5c;outline-offset:2px}
.d-search{min-width:240px}
@media (max-width:900px){.d-search{min-width:0;width:100%}.d-headrow{display:grid}.d-headrow .d-th:nth-child(3){display:none}}

.tm-sec{font-size:16px;margin:4px 0 10px;color:#1b2a33}
.tm-sec:not(:first-child){margin-top:26px}
.tm-tablewrap{overflow-x:auto;background:#fff;border:1px solid #e1e6ea;border-radius:12px}
.tm-table{border-collapse:collapse;width:100%;font-size:13px;min-width:520px}
.tm-table th,.tm-table td{padding:7px 10px;border-top:1px solid #eef1f3;text-align:center;white-space:nowrap}
.tm-table thead th{border-top:none;background:#f6f8f9;font-size:12px;color:#55636d;font-weight:700;position:sticky;top:0}
.tm-table th[scope=row]{text-align:left;font-weight:500;color:#33424d}
.tm-table thead th:first-child{text-align:left}
.tm-pipe th{text-align:left;background:#eef4f6;color:#0f4c5c;font-size:11.5px;letter-spacing:.06em;font-weight:700}
.tm-cell{border:none;background:#e6f0f3;color:#0f4c5c;font:inherit;font-weight:700;border-radius:6px;min-width:30px;padding:3px 8px;cursor:pointer}
.tm-cell:hover{background:#cfe2e8}
.tm-cell:focus-visible{outline:2px solid #0f4c5c;outline-offset:2px}
.tm-zero{color:#c3cbd0}
.tm-tot{font-weight:700;color:#1b2a33}
.tm-sum th[scope=row]{font-weight:700}
.tm-all{background:#fafcfd}
.f-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 10px;font-size:13px;color:#44535d}
.f-chip{background:#e6f0f3;color:#0f4c5c;border-radius:999px;padding:3px 10px;font-weight:600}
.tm-cell.on{background:#0f4c5c;color:#fff}
.tm-closelist{margin-top:12px}

/* ── TIR v2 (10/20) ───────────────────────────────────────────── */
#tir-v2{--in:#9cc3cc;--wk:#0f4c5c}
.tir-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:14px}
.tir-kpi{background:#fff;border:1px solid #e1e6ea;border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:2px}
.tir-kpi b{font-size:26px;line-height:1.1;color:#1b2a33}
.tir-kpi span{font-size:13px;font-weight:600;color:#55636d}
.tir-kpi small{font-size:12px;color:#7c8a94}
.tir-bars{display:flex;flex-direction:column;gap:4px;max-height:420px;overflow-y:auto}
.tir-bar{display:grid;grid-template-columns:minmax(0,170px) 1fr 44px;gap:8px;align-items:center;background:none;border:none;padding:2px 0;font:inherit;text-align:left;cursor:pointer;color:inherit}
.tir-bar:hover .tir-bar-name{color:#0f4c5c;text-decoration:underline}
.tir-bar-name{font-size:12px;color:#33424d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tir-bar-track{display:flex;height:12px;background:#eef2f4;border-radius:6px;overflow:hidden}
.tir-bar-track i{display:block;height:100%}
.tir-bar-track i.in{background:var(--in)}.tir-bar-track i.wk{background:var(--wk)}
.tir-bar-days{font-size:12px;font-weight:700;text-align:right}
.tir-k-in,.tir-k-wk{display:inline-block;width:10px;height:10px;border-radius:2px;margin-left:6px}
.tir-k-in{background:#9cc3cc}.tir-k-wk{background:#0f4c5c}
.tir-sbar{display:grid;grid-template-columns:minmax(0,180px) 1fr 40px 54px;gap:8px;align-items:center;font-size:12.5px;padding:4px 0}
.tir-sbar small{color:#7c8a94}
.tir-alert{background:#fff8ec;border:1px solid #f1d9a8;border-radius:10px;padding:10px 14px;margin-bottom:14px;font-size:13.5px;color:#5b4520;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.tir-main{grid-template-columns:minmax(0,1fr) 64px 64px 72px 120px}
.tir-when{font-size:12.5px;color:#55636d;text-align:right}
.tir-misscount{display:block;color:#c2410c;font-weight:600}
.tir-tl{display:flex;gap:3px;border-radius:8px;overflow:hidden;font-size:12px;font-weight:600}
.tir-tl span{padding:6px 8px;white-space:nowrap;min-width:90px}
.tir-tl-in{background:#d9eaee;color:#0f4c5c}.tir-tl-wk{background:#0f4c5c;color:#fff}
.tir-dates{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:#6a7882;margin-top:4px;flex-wrap:wrap}
.tir-stages{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px}
.tir-stages div{display:flex;justify-content:space-between;background:#f6f8f9;border-radius:6px;padding:6px 10px;font-size:12.5px}
.tir-co{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:6px}
.tir-co div{background:#f6f8f9;border-radius:6px;padding:6px 10px;display:flex;flex-direction:column}
.tir-co div.gap{background:#fff4ec;border:1px dashed #f0c7a5}
.tir-co span{font-size:11.5px;color:#6a7882}
.tir-co b{font-size:13px;color:#1b2a33}
.tir-miss{color:#c2410c;font-weight:600}
@media (max-width:900px){
  .tir-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tir-main{grid-template-columns:minmax(0,1fr) 46px 54px}
  .tir-main .t1-num:nth-of-type(2),.tir-main .t1-num:nth-of-type(3){display:none}
  .tir-main .t1-num:nth-of-type(4){display:block}
  .tir-bar{grid-template-columns:minmax(0,110px) 1fr 40px}
  .tir-sbar{grid-template-columns:minmax(0,120px) 1fr 36px}
  .tir-sbar small{display:none}
}

.tir-loss{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.tir-lg{border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:2px;border:1px solid #e1e6ea;background:#f6f8f9}
.tir-lg b{font-size:22px}
.tir-lg span{font-size:13px;font-weight:600}
.tir-lg small{font-size:12px;color:#6a7882}
.tir-lg.out{background:#eef4f6;border-color:#cfe0e6}
.tir-lg.in{background:#fff4ec;border-color:#f0c7a5}

.tir-kpi-main{border-top:4px solid #1f9d6b}
.tir-wl{display:flex;gap:10px;flex-wrap:wrap;font-size:13px;margin:4px 0 2px}
.tir-wl b{font-size:15px}
.tir-wl .w b{color:#1f9d6b}.tir-wl .l b{color:#c2410c}

.tir-bar-track i.tot{background:#5f8f9b}
.tir-bar-track.imp i{opacity:.45}
.tir-k-tot{display:inline-block;width:10px;height:10px;border-radius:2px;background:#5f8f9b;margin-left:6px}
.tir-tl-tot{background:#e6eef1;color:#0f4c5c}

.t1-click{cursor:pointer;text-align:left;font:inherit;color:inherit}
.t1-click:hover{border-color:#0f4c5c}
.t1-click:focus-visible{outline:2px solid #0f4c5c;outline-offset:2px}
.t1-ovbar{background:none;border:none;width:100%;font:inherit;color:inherit;text-align:left;grid-template-columns:minmax(0,170px) 1fr 54px}
button.t1-ovbar{cursor:pointer}
button.t1-ovbar:hover span:first-child{color:#0f4c5c;text-decoration:underline}
#t100-overview{--in:#9cc3cc;--wk:#0f4c5c}
.tir-stages div.none{background:#fafbfc;color:#8a959c}
.tir-stages em{font-style:normal;font-size:12px;color:#9aa5ac}

/* ── System health (10/20) ─────────────────────────────────────── */
.sh-banner{border-radius:12px;padding:14px 16px;margin-bottom:14px;display:flex;flex-direction:column;gap:3px;border:1px solid}
.sh-banner b{font-size:18px}
.sh-banner span{font-size:13px}
.sh-banner.pass{background:#eaf7f0;border-color:#bfe6d0;color:#14613f}
.sh-banner.warn{background:#fff8ec;border-color:#f1d9a8;color:#5b4520}
.sh-banner.fail{background:#fdecea;border-color:#f3c0b9;color:#8a2a1c}
.sh-row{display:grid;grid-template-columns:18px minmax(0,1.3fr) minmax(0,2fr) 100px;gap:10px;align-items:center;padding:8px 0;border-top:1px solid #eef1f3;font-size:13px}
.sh-group h2+.sh-row{border-top:none}
.sh-dot{font-size:12px;text-align:center}
.sh-row.pass .sh-dot,.sh-row.pass .sh-word{color:#1f9d6b}
.sh-row.warn .sh-dot,.sh-row.warn .sh-word{color:#b7791f}
.sh-row.fail .sh-dot,.sh-row.fail .sh-word{color:#c0392b}
.sh-name small{display:block;color:#7c8a94;font-size:12px}
.sh-detail{color:#44535d}
.sh-word{font-weight:700;text-align:right;font-size:12px}
@media (max-width:900px){.sh-row{grid-template-columns:18px minmax(0,1fr) 84px}.sh-detail{grid-column:2/4;grid-row:2;font-size:12.5px}}

/* ── Files summary (10/20) ─────────────────────────────────────── */
#files-view{--in:#9cc3cc;--wk:#0f4c5c}
.fs-wrap{margin-bottom:6px}
.fs-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}
.fs-bar{display:grid;grid-template-columns:minmax(0,190px) 1fr 34px 70px;gap:8px;align-items:center;width:100%;background:none;border:none;border-radius:6px;padding:4px 4px;font:inherit;font-size:12.5px;color:inherit;text-align:left;cursor:pointer}
.fs-bar:hover{background:#f2f8fa}
.fs-bar.on{background:#e6f0f3;box-shadow:inset 0 0 0 1px #0f4c5c}
.fs-bar em{font-style:normal;font-size:10.5px;font-weight:700;color:#0f4c5c;background:#e6f0f3;border-radius:4px;padding:0 4px}
.fs-bar small{color:#c2410c;font-size:11.5px;text-align:right}
.fs-bar:focus-visible{outline:2px solid #0f4c5c;outline-offset:1px}
@media (max-width:900px){.fs-kpis{grid-template-columns:1fr 1fr}.fs-bar{grid-template-columns:minmax(0,130px) 1fr 28px 58px}}
.fs-bar small.v{color:#6a7882}

.f-group{margin-bottom:12px}
.f-group-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:2px 0 4px}
.f-group-head b{font-size:13.5px;color:#1b2a33}
.f-check b.assumed{color:#8a6d1f}

.f-ghlnone{color:#c3cbd0;font-size:13px;min-width:52px;text-align:center}
.f-drow{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid #F0F2F3;padding:10px 0}
.f-drow>span{display:flex;flex-direction:column;font-weight:700;font-size:14px}
.f-drow small{font-weight:500;font-size:12px;color:#5A6A72}
.f-drow small.warn{color:#b4610e}
.f-dnone{font-style:normal;color:#c3cbd0}
/* Agent profile */
.f-agentlink{font-weight:700;color:#0f4c5c;text-decoration:none}
.f-agentlink:hover{text-decoration:underline}
.c-pill.c-bad{background:#F6DADA;color:#7a1f1f}
.ag-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.ag-head h2{margin:0 0 4px;font-size:22px}
.ag-sub{margin:2px 0;color:#5A6A72;font-size:13px}
.ag-contact{display:flex;gap:14px;flex-wrap:wrap;margin:6px 0;font-size:14px}
.ag-contact a{color:var(--teal);text-decoration:none}
.ag-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin:12px 0 4px}
.ag-tile{background:#fff;border:1px solid #E3E8EB;border-radius:12px;padding:12px 14px;display:flex;flex-direction:column}
.ag-tile b{font-size:24px;color:#1b2a33}
.ag-tile small{color:#5A6A72;font-size:12px}
.ag-tile.blue b{color:#1f5f9e}.ag-tile.green b{color:#1d7a46}.ag-tile.red b{color:#a32b2b}
.ag-list{display:flex;flex-direction:column}
.ag-row{display:grid;grid-template-columns:minmax(0,2fr) 110px minmax(0,1.6fr) 110px 80px;gap:10px;align-items:center;padding:9px 0;border-top:1px solid #F0F2F3;font-size:13.5px}
@media (max-width:800px){.ag-row{grid-template-columns:1fr auto}.ag-row .f-stage,.ag-row .f-days,.ag-row .f-owner{grid-column:1/-1;font-size:12px;color:#5A6A72}}

/* File Progress bar on the file page (RH 10/20) */
.fp h3{margin-bottom:14px}
.fp-track{display:flex;list-style:none;margin:0;padding:0;overflow-x:auto}
.fp-step{flex:1;min-width:76px;display:flex;flex-direction:column;align-items:center;position:relative;text-align:center}
.fp-step:not(:last-child)::after{content:'';position:absolute;top:14px;left:50%;width:100%;height:2px;background:#e0e5e8;z-index:0}
.fp-step.done:not(:last-child)::after{background:var(--teal)}
.fp-dot{position:relative;z-index:1;width:28px;height:28px;border-radius:50%;background:#e0e5e8;color:#8a99a3;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center}
.fp-step.done .fp-dot{background:var(--teal);color:#fff}
.fp-step.now .fp-dot{background:#00A8C6;color:#fff;box-shadow:0 0 0 3px rgba(0,168,198,.2)}
.fp-step.dispute .fp-dot{background:#cc5500;color:#fff;box-shadow:0 0 0 3px rgba(204,85,0,.2)}
.fp-step.lost .fp-dot{background:#888;color:#fff}
.fp-label{margin-top:6px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#a3afb6;line-height:1.25;padding:0 2px}
.fp-step.done .fp-label{color:var(--teal)}
.fp-step.now .fp-label{color:#0089a3}
.fp-step.dispute .fp-label{color:#cc5500}
.fp-step.lost .fp-label{color:#666}

@media (max-width:600px){.dr-modal{padding:0;align-items:stretch}.dr-panel{max-width:none;max-height:none;height:100%;border-radius:0}.dr-top,.dr-body,.dr-act{padding-left:16px;padding-right:16px}}

/* ── File Manager HQ (10/21) ── */
body.hq-fm2 .hq-bottom{grid-template-columns:repeat(5,minmax(0,1fr))}
@media (max-width:900px){body.hq-fm2 .hq-bottom{grid-template-columns:repeat(5,minmax(0,1fr))}body.hq-fm2 .hq-bottom button{font-size:11px}}
.hq-badge.hot{background:#c2410c}
.fm-stamp{margin:0 0 10px;font-size:12.5px;color:#6a7882}
.fm-hello h2{font-family:var(--fh);font-size:22px;margin:0 0 10px;color:#1f2d3a}
.fm-focus{background:var(--teal);color:#fff;border-radius:12px;padding:14px 18px;margin-bottom:14px}
.fm-focus span{display:block;font-size:11px;font-weight:800;letter-spacing:.7px;text-transform:uppercase;opacity:.85;margin-bottom:4px}
.fm-focus p{margin:0;line-height:1.55;font-size:14px}
.fm-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}
.fm-kpi{background:#fff;border:1px solid #e3e8ec;border-radius:12px;padding:12px 14px;text-align:left;cursor:pointer;font:inherit}
.fm-kpi b{display:block;font-size:26px;font-family:var(--fh);color:#1f2d3a;line-height:1.1}
.fm-kpi span{font-size:12.5px;color:#5f6f79}
.fm-kpi.warn{border-color:#f0c98a;background:#fffaf0}.fm-kpi.warn b{color:#b45309}
.fm-kpi.late{border-color:#f3b4a0;background:#fff4f1}.fm-kpi.late b{color:#c2410c}
.fm-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:start}
.fm-card{margin-bottom:14px;min-width:0}
.fm-card h2{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.fm-red{border-left:4px solid #c2410c}.fm-green{border-left:4px solid #2f7d4f}
.fm-rows{display:flex;flex-direction:column}
.fm-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;text-align:left;background:none;border:0;border-top:1px solid #eef1f3;padding:10px 4px;font:inherit;color:inherit;cursor:pointer;width:100%}
.fm-row:hover{background:#f7fafb}
.fm-row-main{min-width:0;display:flex;flex-direction:column;gap:2px}
.fm-row-main b{font-size:13.5px;overflow-wrap:anywhere}
.fm-row-main small{font-size:12px;color:#6a7882}
.fm-row.lv-late{box-shadow:inset 3px 0 0 #c2410c}.fm-row.lv-warn{box-shadow:inset 3px 0 0 #e0a31e}
.fm-stagebar{display:inline-grid;grid-template-columns:64px auto;grid-template-rows:auto auto;column-gap:8px;align-items:center;justify-items:start}
.fm-stagebar .fm-bar{grid-row:1/3;width:64px;height:8px;border-radius:99px;background:#e6ebee;overflow:hidden}
.fm-stagebar .fm-bar i{display:block;height:100%;border-radius:99px;background:#2f7d4f}
.fm-stagebar.warn .fm-bar i{background:#e0a31e}.fm-stagebar.late .fm-bar i{background:#c2410c}
.fm-stagebar b{font-size:13px}.fm-stagebar.late b{color:#c2410c}.fm-stagebar.warn b{color:#b45309}
.fm-stagebar small{font-size:11px;color:#6a7882}.fm-stagebar.late small{color:#c2410c;font-weight:700}
.fm-days{font-size:13px;color:#5f6f79}
.fm-note{align-self:flex-start;font-size:11px;border-radius:99px;padding:1px 8px;margin-top:3px}
.fm-note.ok{background:#e8f5ee;color:#1d6b41}.fm-note.warn{background:#fff4e5;color:#9a4b00}.fm-note.late{background:#fdecec;color:#a12020;font-weight:700}
.fm-tier{font-style:normal;font-weight:700}.fm-tier.t2{color:#b45309}.fm-tier.t3{color:#c2410c}
.fm-pill{font-size:11.5px;border-radius:99px;padding:2px 9px;font-weight:700}
.fm-pill.late{background:#fdecec;color:#a12020}.fm-pill.warn{background:#fff4e5;color:#9a4b00}
.fm-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;font-size:12px;color:#5f6f79;margin-bottom:10px}
.fm-legend .fm-stagebar{grid-template-columns:40px}.fm-legend .fm-bar{width:40px}
.fm-tools{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.fm-tools input{flex:1;min-width:180px;border:1px solid #d5dde2;border-radius:8px;padding:8px 10px;font:inherit}
.fm-tools select{border:1px solid #d5dde2;border-radius:8px;padding:8px;font:inherit;background:#fff}
.fm-owner{font-size:12px;color:#5f6f79}
.fm-due{font-size:12px;color:#5f6f79;white-space:nowrap}.fm-due.warn{color:#b45309;font-weight:700}.fm-due.late{color:#c2410c;font-weight:700}
.fm-msg{border-top:1px solid #eef1f3;padding:10px 0;display:flex;flex-direction:column;gap:5px;min-width:0}
.fm-msg-top{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}
.fm-msg-top b{font-size:13.5px}.fm-msg-top span{font-size:12px;color:#6a7882}
.fm-quote{background:#f2f4f6;border-radius:10px;padding:8px 11px;font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere;max-height:140px;overflow-y:auto}
.fm-msg-foot{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:12.5px}
.fm-link{background:none;border:0;padding:0;font:inherit;font-weight:700;color:var(--teal);cursor:pointer;text-align:left;overflow-wrap:anywhere}
.fm-link:hover{text-decoration:underline}
.fm-stage{color:#6a7882}
.fm-ghl{margin-left:auto;font-weight:700;color:var(--teal);text-decoration:none}
.fm-next{font-size:12.5px;background:#f4fafb;border-radius:8px;padding:6px 10px}
.fm-line{border-left:3px solid #d5dde2;padding:6px 0 6px 12px;margin:6px 0;display:flex;flex-direction:column;gap:2px;font-size:13px}
.fm-line.warn{border-color:#e0a31e}.fm-line.late{border-color:#c2410c}
.fm-line small{color:#6a7882;font-size:12px}
.fm-drafts-cta{display:block;width:100%;text-align:left;background:#0f4c5c;color:#fff;border:0;border-radius:10px;padding:10px 14px;font:inherit;font-weight:600;cursor:pointer;margin-bottom:6px}
.fm-drafts-cta b{font-size:16px}
.fm-prose{margin:0;line-height:1.6;font-size:13.5px}
.fm-news{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:10px;line-height:1.55;font-size:14px}
.fm-back{margin:0 0 10px}
@media (max-width:900px){.fm-grid{grid-template-columns:1fr}.fm-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
.fm-reply-btn{margin-left:auto;padding:6px 12px;font-size:12.5px}
.fm-seg{border:1px solid #cfd8de;background:#fff;padding:2px 10px;font:inherit;font-size:12px;cursor:pointer}
.fm-seg:first-of-type{border-radius:6px 0 0 6px;margin-left:4px}.fm-seg:last-of-type{border-radius:0 6px 6px 0;border-left:0}
.fm-seg.on{background:#0f4c5c;color:#fff;border-color:#0f4c5c}
.fm-subject{width:100%;box-sizing:border-box;border:1px solid #cfd8de;border-radius:8px;padding:8px 10px;font:inherit;font-size:13.5px}
.sh-run{margin-left:auto;padding:5px 12px;font-size:12.5px}
.t-e2e-bad{background:#fdecec;border:1px solid #f3b4a0;color:#7a1c1c;border-radius:10px;padding:10px 14px;margin-bottom:12px;font-size:13.5px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.sh-group h2{display:flex;align-items:center;gap:8px;flex-wrap:wrap}

/* Friday weekly updates (10/21) */
.wk-tog{display:flex;gap:6px;flex-wrap:wrap;margin:2px 0 6px}
.wk-tog button{font:inherit;font-size:12px;border:1px solid #cfd8de;background:#fff;color:#44535d;border-radius:999px;padding:4px 11px;cursor:pointer}
.wk-tog button.on{background:#0f4c5c;border-color:#0f4c5c;color:#fff}
.t-w.wk-row{grid-template-columns:86px minmax(0,1fr)}
.wk-row .t-age .c-pill{font-size:11px;white-space:nowrap}

/* Approve: one thing at a time (10/21) */
.apq{max-width:680px;margin:0 auto}
.apq-head h2{font-size:26px;margin:4px 0 8px;color:#1f2d3a}
.apq-bar{height:8px;background:#e3e9ed;border-radius:99px;overflow:hidden}
.apq-bar i{display:block;height:100%;background:#1d8a4e;border-radius:99px;transition:width .3s}
.apq-sub{margin:6px 0 14px;font-size:13px;color:#6a7882}
.apq-toast{background:#e8f5ee;color:#1d6b41;font-weight:700;padding:12px 14px;border-radius:10px;margin:0 0 12px;font-size:15px}
.apq-toast.bad{background:#fdecec;color:#a12020}
.apq-prev{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;font-weight:600}
.apq-prev b{font-weight:800}
.apq-prev-lbl{display:block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;opacity:.75;margin-bottom:2px}
.apq-prev .apq-link{font-size:15px;font-weight:800;color:#1d6b41}
.apq-card{background:#fff;border:1px solid #dfe5e9;border-radius:16px;padding:20px 20px 16px;box-shadow:0 2px 10px rgba(20,40,60,.06);margin-bottom:14px}
.apq-empty{text-align:center;color:#44535d;padding:36px 20px}
.apq-empty p{color:#6a7882;font-size:14px}
.apq-big{font-size:40px}
.apq-kind{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#0f4c5c}
.apq-kind span{font-weight:500;text-transform:none;letter-spacing:0;color:#6a7882}
.apq-kind.wk{color:#8a4b14}
.apq-card h3{font-size:22px;margin:8px 0 2px;color:#1f2d3a;line-height:1.25}
.apq-meta{margin:0 0 12px;color:#5b6672;font-size:14px}
.apq-warn{background:#fff4e5;border:1px solid #f3c98b;color:#7a4510;border-radius:10px;padding:10px 12px;margin:0 0 10px;font-size:14px;line-height:1.45}
.apq-lbl{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#6a7882;margin:14px 0 6px}
.apq-them{background:#f3f5f7;border-radius:12px;padding:12px 14px;white-space:pre-wrap;font-size:15px;line-height:1.5;color:#2b3944}
.apq-bubble{background:#0f4c5c;color:#fff;border-radius:16px 16px 4px 16px;padding:12px 15px;white-space:pre-wrap;font-size:16px;line-height:1.5}
.apq-edit{width:100%;box-sizing:border-box;border:2px solid #0f4c5c;border-radius:12px;padding:12px;font:inherit;font-size:16px;line-height:1.5;resize:vertical;background:#f4fafb;color:#1f2d3a}
.apq-mail{width:100%;min-height:260px;border:1px solid #dfe5e9;border-radius:10px;margin-top:8px;background:#fff}
.apq-n{margin:6px 0 0;font-size:13px;color:#6a7882}
.apq-btns{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.apq-go,.apq-skip{flex:1 1 200px;font:inherit;font-size:18px;font-weight:700;border-radius:12px;padding:16px 18px;cursor:pointer;border:0}
.apq-go{background:#1d8a4e;color:#fff}
.apq-go:hover{background:#17723f}
.apq-skip{background:#fff;color:#44535d;border:2px solid #cfd8de}
.apq-skip:hover{border-color:#8a99a3}
.apq-btns2{margin-top:10px}
.apq-btns .apq-sm{flex:1 1 140px;font-size:15px;padding:11px 12px}
.apq-btns .apq-redo{color:#2d637d;border-style:dashed}
.apq-go:disabled,.apq-skip:disabled{opacity:.6;cursor:default}
.apq-go:focus-visible,.apq-skip:focus-visible,.apq-link:focus-visible{outline:3px solid #9fd0da;outline-offset:2px}
.apq-more{margin-top:12px;text-align:center;font-size:14px;color:#8a99a3}
.apq-link{background:none;border:0;padding:0;font:inherit;color:#0f4c5c;text-decoration:underline;cursor:pointer}
.apq-stale{background:#fff;border:1px dashed #cfd8de;border-radius:14px;padding:14px 16px;margin-bottom:14px}
.apq-stale p{margin:4px 0 0;color:#5b6672;font-size:14px}
.apq-stale .apq-btns{margin-top:10px;align-items:center}
.apq-stale .apq-skip{flex:0 1 auto;font-size:15px;padding:10px 16px}
.apq-foot{text-align:center;color:#6a7882;font-size:14px}
.apq-cta{display:block;width:100%;text-align:left;border:0;border-radius:14px;padding:16px 18px;margin:0 0 14px;background:#1d8a4e;color:#fff;cursor:pointer;font:inherit}
.apq-cta b{display:block;font-size:20px}
.apq-cta span{font-size:14px;opacity:.9}
.apq-cta.none,.apq-cta.wait{background:#eef3f1;color:#2b3944}
.hq-nav-approve{font-weight:700}
@media (max-width:600px){.apq-card{padding:16px 14px}.apq-card h3{font-size:19px}.apq-head h2{font-size:22px}.apq-go,.apq-skip{flex-basis:100%}.apq-btns .apq-sm{flex-basis:30%}}

.apq-ctas{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-bottom:14px}
.apq-ctas .apq-cta{margin:0}
.apq-cta.fri{background:#8a4b14}

.apq-kind.news{color:#1d8a4e}
.fm-noterow{cursor:default}
.fm-plain{background:none;border:0;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer}
.fm-notebox{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;line-height:1.55}
.apq-list{margin-top:18px;border:1px solid #e3e8ee;border-radius:12px;background:#fff;overflow:hidden}
.apq-list-h{all:unset;box-sizing:border-box;width:100%;display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px;padding:14px 16px;cursor:pointer}
.apq-list-h span{color:#6b7a8d;font-size:13px}
.apq-chips{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px 10px}
.apq-chip{border:1px solid #d5dde6;background:#fff;border-radius:999px;padding:4px 10px;font-size:13px;cursor:pointer}
.apq-chip.on{background:#1a3d4f;color:#fff;border-color:#1a3d4f}
.apq-rows{list-style:none;margin:0;padding:0;border-top:1px solid #eef2f6;max-height:420px;overflow:auto}
.apq-rows li{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid #f1f4f7}
.apq-rn{flex:1;min-width:0;display:flex;flex-direction:column}
.apq-rn b{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.apq-rn small{color:#6b7a8d;font-size:12px}
.apq-pill{flex:none;font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px;background:#eef2f6;color:#4a5a6a;min-width:72px;text-align:center}
.apq-pill.ok{background:#e8f5ee;color:#1d6b41}.apq-pill.wait{background:#fff4e0;color:#8a5a00}.apq-pill.held{background:#eef2f6;color:#4a5a6a}.apq-pill.sent{background:#e6eefc;color:#1f4fa0}
.apq-none{color:#6b7a8d}
.apq-people{display:flex;flex-wrap:wrap;gap:8px 24px;margin:8px 0 2px;font-size:15px;font-weight:700;color:#1a3d4f}
.apq-people span{display:flex;flex-direction:column;min-width:0}
.apq-people small{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#6b7a8d}
.apq-count{display:flex;gap:10px;flex-wrap:wrap;margin:6px 0 10px}
.apq-count span{flex:1;min-width:84px;display:flex;flex-direction:column;align-items:flex-start;padding:10px 12px;border-radius:10px;background:#f1f4f7;color:#4a5a6a;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.apq-count b{font-size:26px;line-height:1.1;letter-spacing:0;color:#1a3d4f}
.apq-count .w{background:#fff4e0;color:#8a5a00}.apq-count .w b{color:#8a5a00}
.apq-count .a{background:#e8f5ee;color:#1d6b41}.apq-count .a b{color:#1d6b41}
.apq-count .s{background:#e6eefc;color:#1f4fa0}.apq-count .s b{color:#1f4fa0}

/* Consults today box + Dashboard "Coming up" (RH 10/23) */
.t-consults{border-left:4px solid #2d637d}
.t-c{display:flex;gap:12px;align-items:baseline;padding:8px 0;border-top:1px solid #eef1f3}
.t-c:first-of-type{border-top:0}
.t-c.past{opacity:.55}
.t-ctime{flex:0 0 auto;min-width:72px;font-weight:700;color:#2d637d}
.t-c b{display:block}
.t-c small{color:#5d6b75}
.d-upnext{display:flex;flex-direction:column;gap:6px;background:#eef5f8;border-radius:10px;padding:10px 12px;margin:8px 0}
.d-uprow{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap}
.d-upwhen{min-width:150px;font-weight:700;color:#2d637d}
.d-upwho{flex:1 1 200px;min-width:0}
.d-upgo{font-size:13px}
.d-upnone{color:#5d6b75;font-size:14px}
.t-ghl{flex:0 0 auto;align-self:center;margin-left:auto;font-size:13px;font-weight:700;color:#0f4c5c;text-decoration:none;border:1.5px solid #9fc3cf;border-radius:8px;padding:5px 10px;background:#fff;white-space:nowrap}
.t-ghl:hover{background:#eef5f8;border-color:#2d637d}
.t-cwho{flex:1 1 auto;min-width:0}
.t-ev.consult{grid-template-columns:118px minmax(0,1fr) auto}
@media (max-width:600px){.t-ev.consult{grid-template-columns:90px minmax(0,1fr) auto}}

/* Upcoming consults section (RH 10/23) */
.uc-card{border-top:4px solid #e8792b;background:linear-gradient(180deg,#fff1e4 0%,#fffaf5 55%,#fff 100%)}
.uc-sum{font-size:13px;color:#5d6b75;font-weight:600}
.uc-day{margin-top:6px}
.uc-day h3{margin:14px 0 4px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#b4580e}
.uc-row{display:grid;grid-template-columns:92px minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px 14px;border:1px solid #f6c9a3;border-left:5px solid #e8792b;border-radius:12px;background:linear-gradient(90deg,#ffe6d1 0%,#fff4ea 45%,#fffaf6 100%);margin-top:8px}
.uc-row.done{opacity:.55}
.uc-time b{display:block;font-size:20px;line-height:1.1;color:#a3470a}
.uc-time span{font-size:12px;color:#5d6b75}
.uc-who>b{font-size:16px}
.uc-line{font-size:14px;margin-top:2px}
.uc-mute{color:#8a99a3}
.uc-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.uc-tag{font-size:12px;font-weight:600;padding:2px 8px;border-radius:999px;background:#e8eef1;color:#44535d}
.uc-tag.ok{background:#e3f4ea;color:#1d6b41}
.uc-tag.warn{background:#fdf0dc;color:#8a5a12}
.uc-tag.mute{background:transparent;border:1px solid #dbe2e6;color:#5d6b75}
.uc-side{display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.uc-until{font-size:13px;font-weight:700;color:#44535d;white-space:nowrap}
.uc-until.soon{color:#c2410c}
.uc-until.now{color:#fff;background:#1d8a4e;padding:2px 8px;border-radius:999px}
@media (max-width:600px){.uc-row{grid-template-columns:70px minmax(0,1fr);}.uc-side{grid-column:1/-1;flex-direction:row;justify-content:space-between;align-items:center}.uc-time b{font-size:17px}}
.uc-line a{color:#7a3a0a;font-weight:600}
.uc-card .d-card-head h2{color:#7a3a0a}
.uc-card .d-count{background:#e8792b;color:#fff}
.uc-sum{color:#a3470a}

/* Consult stage moves from HQ (RH 10/23) */
.uc-act{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding-top:10px;border-top:1px dashed #f0c49e}
.uc-ask{font-size:13px;font-weight:700;color:#7a3a0a;margin-right:4px}
.uc-btn{font:inherit;font-size:14px;font-weight:700;border-radius:9px;padding:7px 14px;cursor:pointer;background:#fff;color:#44535d;border:1.5px solid #cfd8de}
.uc-btn.go{background:#1d8a4e;border-color:#1d8a4e;color:#fff}
.uc-btn:disabled{opacity:.6;cursor:default}
.cs-sel select{font:inherit;font-size:13px;padding:4px 8px;border:1px solid #cfd8de;border-radius:8px;background:#fff;color:#2b3a44;max-width:100%}
.d-stage .cs-sel{display:block;margin-top:6px}
.cs-msg{display:block;font-size:12px;color:#1d6b41;margin-top:4px}
.cs-msg.bad{color:#b42318}

@media (max-width:900px){.hq-mobile-logo{display:block;height:34px;width:100%;flex-basis:100%;object-fit:contain;object-position:left center;margin:0 0 4px;}}

/* RH's morning brief cards inside HQ (10/23) */
.rhb-slot:empty{display:none}
.rhb-card{margin-bottom:14px}
.rhb-card summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.rhb-card summary::-webkit-details-marker{display:none}
.rhb-card summary h2{margin:0}
.rhb-card summary h2::before{content:'▸ ';color:#8a99a8}
.rhb-card[open] summary h2::before{content:'▾ '}
.rhb-when{font-size:12px;color:#5f6b76}
.rhb-sub{font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#5f6b76;margin:14px 0 6px}
.rhb-text{white-space:pre-wrap;font-size:14px;line-height:1.55;color:#1f2d3a;margin-top:10px;overflow-wrap:anywhere}

/* Staff sign-in (10/23): Face ID first, texted code as backup. */
.pin-gate{padding:16px;box-sizing:border-box;}
.pin-card{box-sizing:border-box;}
@media (max-width:480px){.pin-card{padding:32px 22px;}}
.si-step p{margin-bottom:18px;}
.si-face{display:flex;align-items:center;justify-content:center;gap:8px;}
.si-alt{display:block;width:100%;margin-top:12px;padding:13px;background:#fff;color:var(--teal);border:1.5px solid var(--teal);border-radius:4px;font-family:var(--fh);font-weight:700;font-size:13px;cursor:pointer;}
.si-alt:hover{background:#f1f7f6;}
.si-people{display:grid;gap:10px;}
.si-person{padding:14px;background:#fff;border:1.5px solid var(--gray-mid);border-radius:6px;font-family:var(--fh);font-weight:700;font-size:15px;color:var(--teal);cursor:pointer;}
.si-person:hover:not(:disabled){border-color:var(--teal);background:#f1f7f6;}
.si-person:disabled{color:var(--gray-text);cursor:not-allowed;}
.si-person small{font-weight:400;font-size:12px;}
.si-foot{display:flex;justify-content:space-between;gap:10px;margin-top:16px;min-height:18px;}
.si-link{background:none;border:none;color:var(--gray-text);font-size:12px;cursor:pointer;padding:0;text-decoration:underline;}
.si-link:only-child,.si-foot .si-link[style*="none"]+.si-link{margin-left:auto;}
.si-offer{position:fixed;inset:0;background:rgba(0,30,30,.55);display:flex;align-items:center;justify-content:center;padding:16px;z-index:9999;}
.si-offer-card{background:#fff;border-radius:10px;padding:28px 24px;max-width:360px;width:100%;text-align:center;box-sizing:border-box;}
.si-offer-card h2{font-family:var(--fh);font-size:18px;color:var(--teal);margin:6px 0 8px;}
.si-offer-card p{font-size:13px;color:var(--gray-text);margin-bottom:18px;}
.si-offer-icon{font-size:34px;}
.si-set{background:#fff;border:1px solid var(--gray-mid);border-radius:8px;padding:16px 18px;margin-top:18px;}
.si-set h3{font-family:var(--fh);font-size:15px;margin:0 0 4px;}
.si-set h4{font-family:var(--fh);font-size:13px;margin:14px 0 6px;}
.si-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid #eef1f1;font-size:13px;}
.si-row .c-btn{margin-left:auto;}
.si-row.si-bad{color:var(--red);}
.si-sub{color:var(--gray-text);font-size:12px;}
.pin-card .pin-error{color:var(--red);margin-bottom:0;}

/* Home-screen icon hint (10/23). */
.hs-hint{position:fixed;left:12px;right:12px;bottom:calc(76px + env(safe-area-inset-bottom));z-index:9998;display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--gray-mid);border-radius:12px;padding:12px 12px 12px 14px;box-shadow:0 8px 24px rgba(0,0,0,.18);}
.hs-icon{width:40px;height:40px;border-radius:9px;flex:none;}
.hs-text{display:flex;flex-direction:column;gap:2px;font-size:13px;color:var(--gray-text);flex:1;min-width:0;}
.hs-text b{font-family:var(--fh);color:var(--teal);font-size:14px;}
.hs-btn{flex:none;background:var(--teal);color:#fff;border:none;border-radius:6px;padding:9px 14px;font-family:var(--fh);font-weight:700;font-size:13px;cursor:pointer;}
.hs-x{flex:none;background:none;border:none;color:var(--gray-text);font-size:16px;cursor:pointer;padding:4px 6px;}

/* ── Eric's app (built to the screens approved 10/23) ── */
.fx-app{display:none}
body.fx-on #dashboard{display:none !important}
body.fx-on .fx-app{display:block;min-height:100vh;background:#F2F5F7;color:#1B2A33;font-family:var(--fb);padding-bottom:calc(76px + env(safe-area-inset-bottom))}
body.fx-on{background:#F2F5F7}
.fx-screen{max-width:640px;margin:0 auto}
.fx-head{align-items:stretch;justify-content:flex-start;margin:0;flex-wrap:nowrap;text-align:left;background:#2D637D;color:#fff;padding:calc(14px + env(safe-area-inset-top)) 16px 16px;display:flex;flex-direction:column;gap:6px}
.fx-head h1{margin:0;font-family:var(--fh);font-weight:700;font-size:24px;line-height:1.2;color:#fff;padding-left:4px}
.fx-head.home{padding:calc(20px + env(safe-area-inset-top)) 18px 46px;gap:14px}
.fx-brand{display:flex;align-items:center;justify-content:space-between}
.fx-brand img{height:38px;width:auto}
.fx-brand span{font-size:12px;font-weight:700;letter-spacing:.2em;color:rgba(255,255,255,.75)}
.fx-hello{display:flex;flex-direction:column;gap:4px}
.fx-hello b{font-family:var(--fh);font-weight:700;font-size:24px}
.fx-hello span{font-size:14px;color:#D9E7EE}
.fx-focus{display:flex;gap:10px;align-items:flex-start;background:rgba(255,255,255,.12);border-radius:14px;padding:10px 12px;font-size:14px;line-height:1.4}
.fx-back{display:flex;align-items:center;gap:4px;min-height:40px;margin-left:-8px;background:none;border:0;color:#E3EEF3;font-family:var(--fb);font-size:14px;font-weight:500;cursor:pointer;align-self:flex-start;padding:0 4px}
.fx-hsub{margin:0;padding-left:4px;font-size:13.5px;color:#D9E7EE}
.fx-hpill{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:4px 0 0 4px}
.fx-hmeta{font-size:12.5px;color:#D9E7EE}
.fx-tabs{display:flex;background:rgba(255,255,255,.14);border-radius:12px;padding:4px;margin-top:8px;gap:4px}
.fx-tabs button{flex:1;min-height:36px;border:0;border-radius:9px;background:transparent;color:#E3EEF3;font-family:var(--fb);font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap;padding:0 6px}
.fx-tabs button span{opacity:.75}
.fx-tabs button.on{background:#fff;color:#2D637D}
.fx-pad{padding:14px 16px 8px;display:flex;flex-direction:column;gap:14px}
.fx-lift{margin-top:-44px}
.fx-card{background:#fff;border-radius:16px;box-shadow:0 1px 3px rgba(20,40,55,.08);padding:14px}
.fx-card h2,.fx-h2row h2{margin:0 0 6px;font-family:var(--fb);font-size:13px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:#5A6B76}
.fx-h2row{display:flex;justify-content:space-between;align-items:center;gap:8px}
.fx-h2row.left{justify-content:flex-start;padding-bottom:6px}
.fx-h2row h2{margin:0}
.fx-av{width:26px;height:26px;border-radius:13px;border:1px solid #DCE4E9;background:#fff}
.fx-link{background:none;border:0;padding:0;color:#2D637D;font-family:var(--fb);font-size:13px;font-weight:600;cursor:pointer;text-decoration:none}
.fx-more{display:block;margin-top:8px}
.fx-nums{display:grid;grid-template-columns:repeat(3,1fr);padding:0;box-shadow:0 4px 14px rgba(20,40,55,.10)}
.fx-nums3{display:grid;grid-template-columns:repeat(3,1fr)}
.fx-n{padding:12px 4px;display:flex;flex-direction:column;align-items:center;gap:2px;background:none;border:0;cursor:pointer;font-family:var(--fb)}
.fx-n b{font-family:var(--fh);font-weight:800;font-size:22px;line-height:1.2}
.fx-n span{font-size:11.5px;color:#4A5B66;text-align:center;line-height:1.2}
b.teal{color:#2D637D} b.red,.red{color:#B42318} b.green{color:#1d8a4e} b.gray{color:#8A99A8}
.fx-item{display:flex;flex-direction:column;gap:6px;padding:10px 0;border-top:1px solid #EEF2F5;text-align:left;width:100%}
.fx-plainbtn{background:none;border:0;border-top:1px solid #EEF2F5;cursor:pointer;font-family:var(--fb);color:inherit}
.fx-itop{display:flex;justify-content:space-between;gap:8px;font-size:14px}
.fx-mut{color:#5A6B76}
.fx-mut.sm,.sm.fx-mut{font-size:12.5px;margin:6px 0 0}
.fx-mut.center{text-align:center}
.fx-when{font-size:12px;font-weight:700;color:#5A6B76;white-space:nowrap}
.fx-when.amber{color:#B45309} .fx-when.red{color:#B42318}
.fx-q{margin:0;font-size:13.5px;color:#2B3B45;line-height:1.4}
.fx-btn{align-self:flex-start;display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border:0;border-radius:10px;background:#2D637D;color:#fff;font-family:var(--fb);font-size:13px;font-weight:600;cursor:pointer;text-decoration:none}
.fx-empty{color:#5A6B76;font-size:14px;padding:10px 2px}
.fx-card.fx-empty{padding:16px}
.fx-err{color:#9B1C1C}
.fx-stamp{text-align:center;font-size:12px;color:#8A99A8;margin:0}
.fx-alert.red{border:1.5px solid #F3B4B4} .fx-alert.green{border:1.5px solid #A7DCBD}
.fx-search{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #C9D6DE;border-radius:12px;padding:0 12px;min-height:44px;color:#5A6B76}
.fx-search input{flex:1;border:0;outline:0;font-size:15px;font-family:var(--fb);background:transparent;color:#1B2A33;min-height:42px}
.fx-spills{display:flex;flex-wrap:wrap;gap:8px}
.fx-spill{display:inline-flex;align-items:center;background:#fff;color:#1B2A33;border:1.5px solid #C9D6DE;border-radius:999px;padding:0 12px;min-height:36px;font-family:var(--fb);font-size:13px;font-weight:600;white-space:nowrap;cursor:pointer}
.fx-spill .fx-spn{opacity:.7;margin-left:5px}
.fx-spill.del{background:#FDE2E2;color:#9B1C1C;border-color:#F3B4B4}
.fx-spill.on{background:#2D637D;color:#fff;border-color:#2D637D}
.fx-spo{min-width:18px;height:18px;border-radius:9px;background:#B42318;color:#fff;font-size:10.5px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;margin-left:6px;padding:0 4px}
.fx-listhead{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:2px 2px 0}
.fx-listhead b{font-size:16px}
.fx-listhead span{font-size:13px;color:#5A6B76;text-align:right}
.fx-listhead b.red{color:#B42318;font-size:13px}
.fx-list{padding:0;overflow:hidden}
.fx-frow{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border:0;border-top:1px solid #EEF2F5;background:#fff;text-align:left;cursor:pointer;font-family:var(--fb);color:inherit}
.fx-list>.fx-frow:first-child,.fx-list>.fx-crow:first-child,.fx-list>.fx-mrow:first-child,.fx-list>.fx-news:first-child{border-top:0}
.fx-dot{width:10px;height:10px;border-radius:5px;flex-shrink:0}
.fx-dot.red{background:#B42318} .fx-dot.green{background:#1d8a4e} .fx-dot.gray{background:#B7C3CB}
.fx-fmain{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.fx-fmain b{font-size:15px}
.fx-fmain span{font-size:12.5px;color:#5A6B76}
.fx-fside{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0;max-width:160px}
.fx-pill{font-size:12px;font-weight:700;border-radius:999px;padding:4px 10px;text-align:right;white-space:nowrap}
.fx-pill.red{color:#9B1C1C;background:#FDE2E2} .fx-pill.green{color:#166534;background:#DFF3E7}
.fx-pill.big{font-size:12.5px;padding:5px 11px}
.fx-dot.grey{background:#A3B1BA}
.fx-pill.grey{color:#475569;background:#E8EDF1} /* Buyer #2 with RH (10/24) */
.fx-pdays{font-size:11.5px;font-weight:600}
.fx-pdays.red{color:#9B1C1C} .fx-pdays.green{color:#166534}
.fx-quick{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.fx-qb{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:76px;padding:8px 4px;border:1.5px solid #C9D6DE;border-radius:14px;background:#fff;color:#2D637D;font-family:var(--fb);font-size:12.5px;font-weight:600;text-align:center;cursor:pointer;text-decoration:none}
.fx-qb.on{background:#2D637D;border-color:#2D637D;color:#fff}
.fx-qb:disabled{opacity:.5;cursor:not-allowed}
.fx-hold{border:1.5px solid #F3B4B4}
.fx-hold h2{color:#9B1C1C}
.fx-body{margin:0;font-size:14.5px;line-height:1.5}
.fx-warn{margin:8px 0 0;font-size:13px;font-weight:600;color:#9B1C1C}
.fx-warn.amber{color:#B45309}
.fx-step{display:flex;gap:12px;align-items:center;padding:5px 0;font-size:14px;color:#5A6B76}
.fx-sdot{width:20px;height:20px;border-radius:10px;border:2px solid #C9D6DE;box-sizing:border-box;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.fx-step.done{color:#1B2A33} .fx-step.done .fx-sdot{background:#1d8a4e;border-color:#1d8a4e;color:#fff}
.fx-step.now{color:#2D637D;font-weight:700} .fx-step.now .fx-sdot{border:3px solid #2D637D;background:#fff}
.fx-step.now.red{color:#B42318} .fx-step.now.red .fx-sdot{border-color:#B42318}
.fx-slbl{flex:1}
.fx-sdate{font-size:13px}
.fx-kv{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid #EEF2F5;font-size:14px}
.fx-kv>span:first-child{flex:1;color:#5A6B76}
.fx-kv b{text-align:right}
.fx-kv b.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.04em}
.fx-kvr{display:flex;flex-direction:column;align-items:flex-end}
.fx-kvr small{color:#5A6B76;font-size:12px}
.fx-kv.foot{font-size:12.5px}
.fx-copy{border:1.5px solid #C9D6DE;background:#fff;color:#2D637D;border-radius:10px;padding:5px 12px;font-family:var(--fb);font-size:13px;font-weight:600;cursor:pointer}
.fx-seller.shown{background:#FFF9EE;border:2.5px solid #E5A11A}
.fx-seller.shown h2{color:#7A4A00}
.fx-hides{font-size:13px;font-weight:700;color:#B42318}
.fx-show{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:50px;margin-top:12px;border:0;border-radius:12px;background:#2D637D;color:#fff;font-family:var(--fb);font-size:15px;font-weight:700;cursor:pointer}
.fx-code{width:100%;box-sizing:border-box;margin-top:10px;padding:12px;border:1.5px solid #C9D6DE;border-radius:12px;font-size:20px;letter-spacing:.3em;text-align:center}
.fx-person{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid #EEF2F5}
.fx-person>div:first-child{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}
.fx-person b{font-size:14.5px}
.fx-pbtns{display:flex;gap:10px}
.fx-pbtns a{width:42px;height:42px;border-radius:21px;background:#E6EEF2;color:#2D637D;display:flex;align-items:center;justify-content:center;text-decoration:none}
.fx-pbtns a svg{width:18px;height:18px}
.fx-note{padding:10px 0;border-top:1px solid #EEF2F5;font-size:14px;line-height:1.45;white-space:pre-line}
.fx-prog{display:flex;justify-content:space-between;font-size:14px;color:#5A6B76}
.fx-prog b{color:#1B2A33}
.fx-bar{height:6px;border-radius:3px;background:#DCE4E9;overflow:hidden;margin-top:-6px}
.fx-bar i{display:block;height:100%;background:#1d8a4e;border-radius:3px}
.fx-kind{margin:0 0 2px;font-size:12.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:#5A6B76}
.fx-acard h3,.fx-apq .apq-card h3,.fx-sheet h3{margin:0;font-family:var(--fh);font-size:19px;color:#1B2A33}
.fx-meta,.fx-apq .apq-meta{margin:2px 0 10px;font-size:13.5px;color:#5A6B76}
.fx-draft{border:1.5px solid #C9D6DE;border-radius:12px;padding:12px 14px;font-size:15px;line-height:1.5;white-space:pre-wrap;color:#1B2A33;background:#fff;margin:4px 0}
.fx-ta{width:100%;box-sizing:border-box;font-family:var(--fb);resize:vertical}
.fx-go{display:block;width:100%;min-height:50px;margin-top:12px;border:0;border-radius:12px;background:#1d8a4e;color:#fff;font-family:var(--fb);font-size:16px;font-weight:700;cursor:pointer}
.fx-go:disabled,.fx-alt:disabled{opacity:.55}
.fx-two{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.fx-alt{min-height:46px;border:1.5px solid #C9D6DE;border-radius:12px;background:#fff;color:#2D637D;font-family:var(--fb);font-size:15px;font-weight:600;cursor:pointer}
.fx-alt.gray{color:#5A6B76}
.fx-msg{margin-top:8px;padding:10px 12px;border-radius:10px;background:#DFF3E7;color:#166534;font-size:13.5px}
.fx-msg.bad{background:#FDE2E2;color:#9B1C1C}
.fx-done{text-align:center;padding:28px 16px}
.fx-done b{font-size:18px;color:#1d8a4e}
/* reuse the approval queue cards inside the app */
.fx-apq .apq-head{display:none}
.fx-apq .apq{max-width:none;padding:0}
.fx-apq .apq-card{background:#fff;border:0;border-radius:16px;box-shadow:0 1px 3px rgba(20,40,55,.08);padding:14px;margin:0}
.fx-apq .apq-lbl{font-size:12.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:#5A6B76;margin:10px 0 4px}
.fx-apq .apq-them{background:#F2F5F7;border-radius:12px;padding:12px 14px;font-size:15px;line-height:1.45}
.fx-apq .apq-bubble{border:1.5px solid #C9D6DE;border-radius:12px;padding:12px 14px;font-size:15px;line-height:1.5;background:#fff;color:#1B2A33;white-space:pre-wrap;max-width:none;margin:0}
.fx-apq .apq-edit{width:100%;box-sizing:border-box;border:1.5px solid #C9D6DE;border-radius:12px;padding:12px 14px;font-size:15px;line-height:1.5;font-family:var(--fb)}
.fx-intro{margin:0;font-size:14px;color:#5A6B76;line-height:1.45}
.fx-crow{display:flex;gap:12px;width:100%;padding:12px 14px;border:0;border-top:1px solid #EEF2F5;background:#F7FAFC;text-align:left;cursor:pointer;font-family:var(--fb);color:inherit}
.fx-ini{width:40px;height:40px;border-radius:20px;background:#E1ECF1;color:#2D637D;font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.fx-cmain{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.fx-ctop{display:flex;justify-content:space-between;gap:8px}
.fx-ctop b{font-size:15px}
.fx-cmain .fx-mut{font-size:12.5px}
.fx-ctext{font-size:14px;line-height:1.4;color:#2B3B45}
.fx-mrow{display:flex;align-items:center;gap:10px;width:100%;min-height:54px;padding:0 16px;border:0;border-top:1px solid #EEF2F5;background:#fff;font-family:var(--fb);font-size:15px;color:#1B2A33;cursor:pointer;text-align:left}
.fx-mrow span{flex:1} .fx-mrow b{color:#9AA6AC;font-size:20px;font-weight:400}
.fx-mrow i{font-style:normal;font-size:12px;font-weight:700;color:#fff;background:#B85A24;border-radius:999px;padding:2px 8px}
.fx-mrow.out span{color:#B42318}
.fx-mrow-info{cursor:default;padding:10px 16px}
.fx-mrow-info small{display:block;margin-top:3px;font-size:13px;color:#5B6B73;line-height:1.35}
.fx-mlink{border:0;background:none;color:#1F6E8C;font-family:var(--fb);font-size:14px;font-weight:600;padding:8px 6px;cursor:pointer}
.fx-mlink[disabled]{opacity:.5}
.fx-mnote{padding:0 16px 12px;font-size:13px;color:#2E7D4F;background:#fff}
.fx-news{display:flex;flex-direction:column;gap:6px;padding:14px;border-top:1px solid #EEF2F5}
.fx-news b{font-size:15.5px;line-height:1.35}
.fx-news p{margin:0;font-size:14px;line-height:1.45;color:#2B3B45}
.fx-news a{color:#2D637D;font-weight:600;text-decoration:none}
.fx-tag{align-self:flex-start;background:#E1ECF1;color:#2D637D;border-radius:999px;padding:3px 10px;font-size:11.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}
.fx-nav{position:fixed;left:0;right:0;bottom:0;z-index:60;background:#fff;border-top:1px solid #DCE4E9;display:grid;grid-template-columns:repeat(5,1fr);padding:8px 4px calc(10px + env(safe-area-inset-bottom))}
.fx-nav button{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;border:0;background:none;font-family:var(--fb);font-size:11px;font-weight:500;color:#5A6B76;cursor:pointer;min-height:48px;justify-content:center}
.fx-nav button svg{width:22px;height:22px}
.fx-nav button.on{color:#2D637D;font-weight:700}
.fx-nav i{position:absolute;top:0;left:calc(50% + 6px);min-width:16px;height:16px;border-radius:8px;background:#B85A24;color:#fff;font-size:10px;font-weight:700;font-style:normal;display:flex;align-items:center;justify-content:center;padding:0 4px}
.fx-sheetwrap{position:fixed;inset:0;z-index:200;background:rgba(14,32,44,.55);display:flex;align-items:flex-end;justify-content:center}
.fx-sheet{position:relative;width:100%;max-width:640px;max-height:92vh;overflow:auto;background:#fff;border-radius:22px 22px 0 0;padding:10px 18px calc(18px + env(safe-area-inset-bottom));box-sizing:border-box}
.fx-grab{width:40px;height:5px;border-radius:3px;background:#DCE4E9;margin:0 auto 12px}
.fx-x{position:absolute;top:10px;right:12px;border:0;background:none;font-size:18px;color:#8A99A8;cursor:pointer;padding:6px}
.fx-sheet .fx-mut{margin:4px 0 0;font-size:14px}
.fx-chips{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.fx-chip{min-height:36px;padding:0 16px;border:1.5px solid #C9D6DE;border-radius:999px;background:#fff;color:#2D637D;font-family:var(--fb);font-size:14px;font-weight:600;cursor:pointer}
.fx-chip.on{background:#2D637D;border-color:#2D637D;color:#fff}
.fx-subject{width:100%;box-sizing:border-box;margin:4px 0;padding:10px 12px;border:1.5px solid #C9D6DE;border-radius:10px;font-size:15px;font-family:var(--fb)}
.fx-sheetbtns{display:grid;grid-template-columns:auto 1fr;gap:10px;margin-top:14px}
.fx-sheetbtns .fx-go{margin:0}
.fx-sheetbtns .fx-alt{padding:0 18px}
.fx-sheetbtns>.fx-go:only-child{grid-column:1/-1}
@media (min-width:700px){body.fx-on .fx-app{padding-bottom:90px}.fx-nav{left:50%;transform:translateX(-50%);max-width:640px;border-left:1px solid #DCE4E9;border-right:1px solid #DCE4E9}}
.fx-person .fx-mut{font-size:12.5px}

/* Phone alerts popup (RH's HQ header 🔔, 10/23) */
.push-pop{position:fixed;inset:0;background:rgba(17,32,41,.45);display:none;align-items:flex-start;justify-content:center;z-index:9000;padding:80px 16px 16px}
.push-pop-in{background:#F2F5F7;border-radius:16px;max-width:420px;width:100%;padding:16px;box-shadow:0 12px 40px rgba(0,0,0,.25)}
.push-pop-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.push-pop-head b{font-size:17px;color:#1B2A33}
.push-pop-in p{margin:0 0 12px;font-size:13px;color:#5B6B73;line-height:1.4}
.push-pop .fx-card{background:#fff;border-radius:12px;overflow:hidden}

/* RH 10/24: preview banner + View as */
.fx-pvbar{position:sticky;top:0;z-index:60;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#1B2A33;color:#fff;padding:10px 16px;font-size:13px}
.fx-pvbar button{background:#fff;color:#1B2A33;border:0;border-radius:999px;padding:6px 14px;font-weight:700;font-size:13px;cursor:pointer}
.viewas-row{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;padding:14px 16px;border-bottom:1px solid #E6ECF0}
.viewas-row small{color:#5B6B77;font-size:12px;line-height:1.4}
.viewas-row form{display:flex;gap:8px;width:100%;margin-top:6px}
.viewas-row input{flex:1;min-width:0;padding:9px 10px;border:1px solid #CBD5DC;border-radius:8px;font-size:14px}

/* Team tickets (RH 10/28) */
.tk-chip{display:inline-block;vertical-align:middle;margin-left:6px;padding:2px 9px;border-radius:999px;font-family:var(--fb);font-size:11px;font-weight:700;letter-spacing:.2px;background:#EEF2F5;color:#4A5A63}
.tk-chip.ok{background:#E3F4EA;color:#1E6B3A}
.tk-chip.talk{background:#E4EEF8;color:#2D637D}
.tk-chip.no{background:#FBEFE3;color:#9A4A15}
.tk-chip.done{background:#E9ECEE;color:#5B6B73}
.tk-details{white-space:pre-wrap}
.tk-reply{background:#F3F7FA;border-left:3px solid #2D637D;border-radius:8px;padding:10px 12px;font-size:14px;line-height:1.4;white-space:pre-wrap}
.tk-reply small{color:#7A8A93;margin-left:4px}
.tk-form{display:flex;flex-direction:column;gap:10px}
.tk-form .fx-chips{margin:4px 0 0}
.tk-hint{margin:0;font-size:13px;color:#5B6B73}
.tk-in{font-family:var(--fb);font-size:15px;border:1px solid #D3DBDF;border-radius:10px;padding:10px;min-height:44px}
.tk-form textarea{font-size:15px}
.tk-msg{margin:0;font-size:14px}
.tk-msg.ok{color:#1E6B3A} .tk-msg.err{color:#B42318}
.tk-h2{margin:6px 2px 0;font-family:var(--fb);font-size:13px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:#5A6B76}
.fx-pad .tk-item{margin-bottom:0;box-shadow:0 1px 3px rgba(20,40,55,.08)}

/* Comms log (RH 10/29) */
.cm-bar{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}
.cm-search{font-family:var(--fb);font-size:15px;border:1px solid #D3DBDF;border-radius:10px;padding:10px 12px;min-height:44px;width:100%;box-sizing:border-box;background:#fff}
.cm-chips{display:flex;flex-wrap:wrap;gap:8px}
.cm-chip{min-height:34px;padding:0 14px;border:1.5px solid #C9D6DE;border-radius:999px;background:#fff;color:#2D637D;font-family:var(--fb);font-size:13px;font-weight:600;cursor:pointer}
.cm-chip.on{background:#2D637D;border-color:#2D637D;color:#fff}
.cm-count{margin:4px 2px 8px;color:#5B6B73;font-size:13px}
.cm-day{margin:16px 2px 6px;font-family:var(--fb);font-size:13px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:#5A6B76}
.cm-row{display:grid;grid-template-columns:70px 26px minmax(0,1fr);gap:8px;background:#fff;border-radius:12px;padding:10px 12px;margin-bottom:6px;box-shadow:0 1px 2px rgba(20,40,55,.06)}
.cm-row.muted{opacity:.55}
.cm-time{color:#5B6B73;font-size:13px;padding-top:1px;white-space:nowrap}
.cm-icon{font-size:16px;line-height:1.2}
.cm-main{min-width:0;font-size:14px;line-height:1.4;color:#1B2A33}
.cm-top{overflow-wrap:anywhere}
.cm-file{color:#2D637D;font-weight:600}
.cm-title{font-weight:600;margin-top:2px;overflow-wrap:anywhere}
.cm-text{margin-top:2px;overflow-wrap:anywhere;white-space:pre-wrap}
.cm-detail{margin-top:3px;color:#5B6B73;font-size:13px;overflow-wrap:anywhere}
@media (max-width:600px){.cm-row{grid-template-columns:56px 22px minmax(0,1fr)}}

/* ── Beat the Clock (RH 10/29) ── assets/clock.js */
.btc{--btc-ink:#17222c;--btc-mut:#4f6475;--btc-line:#e3e9ee;--btc-teal:#2D637D;--btc-g:#2e6b45;--btc-gt:#e8f3ec;--btc-o:#b34700;--btc-ot:#fbeee4;--btc-r:#8a3700;--btc-p:#5d6b78;--btc-pt:#eceff2;display:flex;flex-direction:column;gap:18px;color:var(--btc-ink);max-width:1240px}
.btc h1,.btc h2{font-family:var(--fh);margin:0}
.btc-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px}
.btc-head h1{font-size:34px;font-weight:800;letter-spacing:-.01em;line-height:1.1}
.btc-head p{margin:2px 0 0;color:var(--btc-mut);font-size:14px}
.btc-eyebrow{font-family:var(--fh);font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--btc-mut)}
.btc-card{background:#fff;border-radius:14px;padding:18px 20px;box-shadow:0 1px 3px rgba(23,34,44,.08);display:flex;flex-direction:column;gap:12px;min-width:0}
.btc-card h2{font-size:18px;font-weight:800;text-wrap:balance}
.btc-h2row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px}
.btc-h2row small,.btc-sub,.btc-foot,.btc-note{color:var(--btc-mut);font-size:13px;margin:0}
.btc-note{padding:6px 0}
.btc-foot{font-size:12px;line-height:1.45}
.btc-err{color:#8a1c12} .btc-warn{background:#fff7e6;color:#6b4a00;font-size:13px}
.btc-link{background:none;border:0;padding:0;color:var(--btc-teal);font:600 13px var(--fb);cursor:pointer}
.btc-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}
.btc-stat{background:#fff;border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:6px;box-shadow:0 1px 3px rgba(23,34,44,.08);min-width:0}
.btc-stat>span{font-family:var(--fh);font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--btc-mut)}
.btc-stat>b{font-family:var(--fh);font-size:40px;font-weight:800;line-height:1}
.btc-stat>b small{font-size:18px;font-weight:600;color:var(--btc-mut)}
.btc-stat>small{font-size:13px;color:var(--btc-mut);line-height:1.4}
.btc-stat.teal{background:var(--btc-teal);color:#fff}
.btc-stat.teal>span,.btc-stat.teal>b small{color:#cfe0ea} .btc-stat.teal>small{color:#e4eef4}
.btc-stat small b.g{color:var(--btc-g)} .btc-stat small b.t{color:var(--btc-teal)} .btc-stat small b.o{color:var(--btc-o)} .btc-stat small b.p{color:var(--btc-p)} .btc-stat small b.r{color:var(--btc-r)}
.btc-season{gap:8px} .btc-season .btc-h2row b{font-family:var(--fh);font-size:22px;font-weight:800} .btc-season .btc-h2row b small{font-size:14px;font-weight:600;color:var(--btc-mut)} .btc-season>small{font-size:12px;color:var(--btc-mut)}
.btc-wins{display:flex;flex-direction:column;gap:10px}
.btc-win{display:flex;gap:12px;align-items:center;background:var(--btc-gt);border-radius:12px;padding:12px 16px}
.btc-win span{font-size:22px} .btc-win b{display:block;font-family:var(--fh);font-size:14px;color:#1f4f33} .btc-win small{font-size:12px;color:var(--btc-g)}
.btc-win.late{background:var(--btc-ot)} .btc-win.late b{color:var(--btc-r)} .btc-win.late small{color:#6b3300}
.btc-look{border-left:4px solid var(--btc-o)} .btc-look h2{font-size:15px}
.btc-lrow{display:flex;flex-direction:column;gap:2px;text-align:left;background:none;border:0;border-top:1px solid var(--btc-line);padding:10px 0;cursor:pointer;font:inherit;color:inherit}
.btc-lrow:first-of-type{border-top:0} .btc-lrow b{font-family:var(--fh);font-size:14px} .btc-lrow small{font-size:13px;color:var(--btc-mut)}
.btc-seg{display:inline-flex;gap:4px;background:#eef2f5;border-radius:10px;padding:4px}
.btc-seg button{font:600 13px var(--fb);border:0;border-radius:8px;padding:7px 12px;background:transparent;color:var(--btc-mut);cursor:pointer;min-height:34px}
.btc-seg button.on{background:#fff;color:var(--btc-ink);box-shadow:0 1px 2px rgba(23,34,44,.1)}
.btc-lane{display:grid;grid-template-columns:minmax(170px,1.2fr) minmax(240px,3fr) minmax(120px,.8fr);gap:18px;align-items:center;padding:12px 0;border:0;border-top:1px solid var(--btc-line);background:none;width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer}
.btc-lane:hover .btc-who b{color:var(--btc-teal)}
.btc-who{display:flex;flex-direction:column;gap:2px;min-width:0} .btc-who b{font-family:var(--fh);font-size:14.5px;font-weight:700;overflow-wrap:anywhere} .btc-who small{font-size:12.5px;color:var(--btc-mut)}
.btc-track{display:flex;flex-direction:column;gap:6px;min-width:0}
.btc-bar{position:relative;height:12px;border-radius:999px;background:var(--btc-line);display:block}
.btc-bar i{position:absolute;top:-3px;bottom:-3px;width:2px;background:#fff;opacity:.95}
.btc-fill{position:absolute;left:0;top:0;bottom:0;border-radius:999px;background:var(--btc-teal)}
.btc-fill.ahead{background:var(--btc-g)} .btc-fill.behind{background:var(--btc-o)} .btc-fill.paused{background:#9aa6b0} .btc-fill.over{background:var(--btc-r)}
.btc-meta{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--btc-mut)} .btc-meta b.late{color:var(--btc-o);font-weight:700}
.btc-est{font-size:9.5px;font-weight:700;color:var(--btc-mut);margin-left:2px;vertical-align:super;cursor:help}
.btc-end{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.btc-end b{font-family:var(--fh);font-size:19px;font-weight:800} .btc-end b small{font-size:11.5px;font-weight:600;color:var(--btc-mut)}
.btc-pill{font-style:normal;font-family:var(--fh);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 9px;border-radius:999px;color:var(--btc-teal);background:#e4eef4}
.btc-pill.ahead{color:var(--btc-g);background:var(--btc-gt)} .btc-pill.behind{color:var(--btc-o);background:var(--btc-ot)} .btc-pill.paused{color:var(--btc-p);background:var(--btc-pt)} .btc-pill.over{color:var(--btc-r);background:var(--btc-ot)}
.btc-legend{display:flex;flex-wrap:wrap;gap:14px;font-size:12.5px;color:var(--btc-mut)}
.btc-legend span{display:flex;align-items:center;gap:6px} .btc-legend i{width:12px;height:12px;border-radius:3px;display:inline-block}
.btc-legend i.under,.btc-sbar .under{background:var(--btc-g)} .btc-legend i.near,.btc-sbar .near{background:var(--btc-teal)} .btc-legend i.over,.btc-sbar .over{background:var(--btc-o)} .btc-legend i.paused,.btc-sbar .paused{background:#9aa6b0} .btc-sbar .teal{background:var(--btc-teal)}
.btc-cols{display:flex;gap:12px;align-items:flex-start;overflow-x:auto;padding-bottom:8px;-webkit-overflow-scrolling:touch}
.btc-col{flex:0 0 216px;display:flex;flex-direction:column;gap:8px}
.btc-colhead{background:#f4f7f9;border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:4px}
.btc-colhead>b{font-family:var(--fh);font-size:13px;font-weight:800;line-height:1.25} .btc-colhead small{font-size:11.5px;opacity:.85}
.btc-colhead>span{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid #d3dbe1;padding-top:6px;font-size:12px}
.btc-colhead>span b{font-family:var(--fh);font-size:22px;font-weight:800;margin-right:3px} .btc-colhead em{font-style:normal;font-weight:700;margin-left:auto;padding-left:8px;text-align:right}
.btc-colhead.hot{background:var(--btc-teal);color:#fff} .btc-colhead.hot>span{border-color:rgba(255,255,255,.3)}
.btc-colhead.paused{background:#e1e6ea;color:#3d4a56}
.btc-scard{background:#fff;border:1px solid var(--btc-line);border-radius:10px;padding:9px 11px;display:flex;flex-direction:column;gap:6px;text-align:left;font:inherit;color:inherit;cursor:pointer}
.btc-scard>b{font-family:var(--fh);font-size:12.5px;font-weight:700;line-height:1.3;overflow-wrap:anywhere}
.btc-sbar{height:6px;border-radius:999px;background:var(--btc-line);overflow:hidden;display:block} .btc-sbar>span{display:block;height:100%;border-radius:999px} .btc-sbar.big{height:10px}
.btc-srow{display:flex;justify-content:space-between;gap:6px;font-size:11.5px;color:var(--btc-mut)}
.btc-srow .under{color:#1f4f33;font-weight:700} .btc-srow .near{color:#1e4a5e;font-weight:700} .btc-srow .over{color:var(--btc-r);font-weight:700} .btc-srow .paused{color:var(--btc-p);font-weight:700}
.btc-none{border:2px dashed #cfd8df;border-radius:10px;padding:14px;text-align:center;font-size:12.5px;color:#6b7a88}
.btc-ot{border-top:4px solid var(--btc-o)} .btc-ot h2 span{font-size:14px;color:var(--btc-o)}
.btc-otgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.btc-otcard{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--btc-ot);border:0;border-radius:12px;padding:12px 14px;text-align:left;font:inherit;color:inherit;cursor:pointer}
.btc-otcard span{display:flex;flex-direction:column;gap:2px;min-width:0} .btc-otcard span:last-child{align-items:flex-end;flex-shrink:0}
.btc-otcard b{font-family:var(--fh);font-size:14px;font-weight:700} .btc-otcard span:last-child b{font-size:19px;font-weight:800;color:var(--btc-r)} .btc-otcard small{font-size:12px;color:#6b3300}
.btc-tablewrap{overflow-x:auto}
.btc-table{width:100%;border-collapse:collapse;font-size:14px;min-width:460px}
.btc-table th{text-align:right;padding:8px 6px;font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--btc-mut)} .btc-table th:first-child,.btc-table td:first-child{text-align:left;font-weight:700}
.btc-table td{padding:11px 6px;text-align:right;border-top:1px solid var(--btc-line)}
/* Eric's app */
.btc.fm{gap:14px}
.btc.fm .btc-card,.btc.fm .btc-stat{border-radius:16px}
.btc.fm .btc-stats{grid-template-columns:1fr 1fr}
.btc.fm .btc-stat.teal{grid-column:1/-1}
.btc.fm .btc-stat>b{font-size:30px}
.btc-home{display:flex;align-items:center;gap:12px;border:0;text-align:left;font:inherit;color:inherit;cursor:pointer;width:100%}
.btc-home>span:first-child{font-size:24px} .btc-home>span:nth-child(2){flex:1;display:flex;flex-direction:column;gap:2px}
.btc-home b{font-family:var(--fh);font-size:15px} .btc-home small{font-size:12.5px;color:#4A5B66} .btc-home i{font-style:normal;color:#9AA6AC;font-size:20px}
@media (max-width:760px){
  .btc-head h1{font-size:28px}
  .btc-lane{grid-template-columns:1fr auto;gap:8px 12px}
  .btc-lane .btc-track{grid-column:1/-1;grid-row:2}
  .btc-end{grid-column:2;grid-row:1}
  .btc-card{padding:14px}
}
