/* ───────────────────────────────────────────────────────────────────────────
   24x7 Copilot — Real-Time Intelligence (Recommended Drivers)
   Uses the global design tokens already defined in index.html :root.
   All selectors scoped under .rti so nothing leaks into the Driver Directory.
─────────────────────────────────────────────────────────────────────────── */
.rti{display:grid;grid-template-columns:1.32fr 1fr 1fr;gap:14px;align-items:start}
.rti-col{background:var(--bg);border:0.5px solid var(--border);border-radius:var(--radius-lg);display:flex;flex-direction:column;overflow:hidden;min-height:480px}
.rti-col-head{padding:12px 14px;border-bottom:0.5px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;flex:none}
.rti-col-title{font-size:14px;font-weight:600;color:var(--text)}
/* General assisted-mode inline switch pill (design handoff 2026-07-30) —
   neutral OFF (the default state shouldn't shout in colour), teal ON; the
   warning work moved to the .rti-assist-banner line under the queue strip.
   Track 26×15, knob 11px, 180ms left transition. */
.rti-assist-toggle{display:inline-flex;align-items:center;gap:8px;border-radius:20px;padding:4px 11px 4px 5px;cursor:pointer;font-size:11px;font-weight:600;letter-spacing:.01em;white-space:nowrap;margin-right:auto;transition:background .15s,border-color .15s,color .15s;background:var(--bg2);border:0.5px solid rgba(255,255,255,.16);color:var(--text2)}
.rti-assist-toggle:hover{background:var(--bg3);color:var(--text);border-color:rgba(255,255,255,.3)}
.rti-assist-toggle.on{background:rgba(159,225,203,.10);border-color:rgba(159,225,203,.45);color:var(--green-fg)}
.rti-assist-toggle.on:hover{background:rgba(159,225,203,.2)}
.rti-assist-toggle.saving{opacity:.55}
/* Unknown state (cold start / flags outage) — dimmed, no on/off promise. */
.rti-assist-toggle.unknown{opacity:.5;cursor:default;color:var(--text3)}
.rti-assist-toggle.unknown .rti-assist-track{background:rgba(255,255,255,.14)}
.rti-assist-toggle.unknown .rti-assist-knob{left:8px;background:var(--text3)}
.rti-assist-track{width:26px;height:15px;border-radius:20px;position:relative;flex:none;transition:background .18s;background:rgba(255,255,255,.22)}
.rti-assist-toggle.on .rti-assist-track{background:#2f7f6a}
.rti-assist-knob{position:absolute;top:2px;left:2px;width:11px;height:11px;border-radius:50%;transition:left .18s;background:#c9c6c0}
.rti-assist-toggle.on .rti-assist-knob{left:13px;background:#fff}
.rti-assist-saving{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;color:var(--text3);flex:none}
.rti-assist-spin{width:10px;height:10px;border:1.5px solid var(--text3);border-top-color:transparent;border-radius:50%;display:inline-block;animation:rti-spin .7s linear infinite}
/* Banner under the queue strip — since OFF is neutral, this line carries the
   "nothing auto-dispatches" warning (amber, blinking dot); ON is a quiet note. */
.rti-assist-banner{padding:11px 14px;display:flex;align-items:flex-start;gap:9px;border-bottom:0.5px solid var(--border)}
.rti-assist-banner-dot{width:7px;height:7px;border-radius:50%;flex:none;margin-top:4px;background:var(--green-fg)}
.rti-assist-banner-note{font-size:12px;line-height:1.5;color:var(--text3)}
.rti-assist-banner.off{background:rgba(255,255,255,.02)}
.rti-assist-banner.off .rti-assist-banner-dot{background:var(--amber-fg);animation:rti-blink 1.6s ease-in-out infinite}
.rti-assist-banner.off .rti-assist-banner-note{color:var(--amber-fg)}
.rti-phase-tag{font-size:9px;font-weight:600;color:var(--text2);background:var(--bg3);border:0.5px solid var(--border2);border-radius:6px;padding:3px 8px}

/* queue strip */
.rti-queue{flex:none;padding:9px 12px;border-bottom:0.5px solid var(--border);display:flex;align-items:center;gap:8px;overflow-x:auto}
.rti-queue-lbl{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.05em;flex:none}
.rti-qchip{display:flex;align-items:center;gap:7px;flex:none;padding:6px 10px;border-radius:var(--radius);border:0.5px solid var(--border);cursor:pointer;background:var(--bg);transition:border-color .15s,background .15s}
.rti-qchip:hover{background:var(--bg2)}
.rti-qchip.active{background:var(--bg3);border-color:#e92030}
.rti-qchip-route{background:rgba(59,130,246,.10);border-color:rgba(59,130,246,.45)}
.rti-qchip-route:hover{background:rgba(59,130,246,.18)}
.rti-qchip-route .rti-qchip-id{color:#3b82f6}
.rti-qchip-route.active{background:rgba(59,130,246,.22);border-color:#3b82f6}
.rti-qchip-id{font-size:12px;font-weight:600;color:var(--text);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rti-qchip-dot{width:7px;height:7px;border-radius:50%;flex:none}
.rti-qchip-state{font-size:9px;font-weight:600;padding:2px 6px;border-radius:10px}
.rti-incoming{font-size:10px;color:var(--text3);flex:none;white-space:nowrap;display:inline-flex;align-items:center;gap:5px}

/* alert bars */
.rti-recall-bar{flex:none;background:var(--red-bg);border-bottom:0.5px solid rgba(247,193,193,.4);padding:8px 12px;display:flex;align-items:center;gap:9px}
.rti-recall-tag{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:var(--red-fg);letter-spacing:.04em;flex:none}
.rti-recall-text{font-size:11px;color:var(--red-fg)}
.rti-recall-link{background:none;border:none;padding:0;font:inherit;font-size:11px;font-weight:700;color:var(--red-fg);text-decoration:underline;cursor:pointer}
.rti-recall-link:hover{opacity:.75}
.rti-ticker{flex:none;overflow:hidden;background:var(--green-bg);border-bottom:0.5px solid rgba(159,225,203,.2)}
.rti-ticker-track{display:inline-flex;white-space:nowrap;animation:rti-marquee 18s linear infinite;padding:6px 0;font-size:11px;color:var(--green-fg);font-weight:500;letter-spacing:.02em}
.rti-ticker-track span{padding:0 28px}

/* body / order card */
.rti-body{flex:1;min-height:0;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:12px}
.rti-order{background:var(--bg2);border:1px solid var(--border2);border-radius:var(--radius-lg);padding:13px;flex:none;display:flex;flex-direction:column;gap:11px}
.rti-order.pulsing{animation:rti-pulse 1.6s ease-in-out infinite}
.rti-order-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;flex-wrap:wrap}
.rti-order-lead{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap}
.rti-ref-chip{display:inline-flex;align-items:baseline;gap:5px;background:var(--purple-bg);border-radius:6px;padding:3px 8px;min-width:0}
.rti-ref-chip-lbl{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#9a95d8;flex:none}
.rti-ref-chip-val{font-family:ui-monospace,'SF Mono',monospace;font-size:10.5px;font-weight:500;color:var(--purple-fg);overflow-wrap:anywhere}
.rti-order-id{font-size:13px;font-weight:600;color:#fff;letter-spacing:.2px}
.rti-order-tags{display:flex;align-items:center;gap:6px;flex:none}
.rti-pill{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:600;padding:3px 9px;border-radius:20px}
.rti-route{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text)}
.rti-route b{font-weight:600}
.rti-route-dist{font-size:11px;color:var(--text3);white-space:nowrap}
/* itinerary stack (design handoff 2026-07-28, option 1a): addresses wrap, never truncate */
.rti-itin{display:grid;grid-template-columns:11px 1fr;column-gap:11px;row-gap:12px;align-items:start}
.rti-itin-rail{display:flex;flex-direction:column;align-items:center;gap:3px;padding-top:5px;height:100%}
.rti-itin-dot-pickup{width:9px;height:9px;border-radius:50%;border:2px solid var(--green-fg);flex:none}
.rti-itin-dot-drop{width:9px;height:9px;border-radius:2px;background:#e92030;flex:none}
.rti-itin-line{width:1px;flex:1;min-height:16px;background:rgba(255,255,255,.16)}
.rti-stop{display:flex;flex-direction:column;gap:2px;min-width:0}
.rti-stop-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.rti-stop-k{font-size:9px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.06em}
.rti-stop-eta{font-size:11px;font-weight:600;white-space:nowrap}
.rti-stop-eta-p{color:var(--amber-fg)}
.rti-stop-eta-d{color:var(--green-fg)}
.rti-stop-name{font-size:13px;font-weight:600;color:var(--text);line-height:1.35;text-wrap:pretty}
.rti-stop-addr{font-size:11.5px;color:var(--text2);line-height:1.5;text-wrap:pretty}
.rti-meta{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding-top:10px;border-top:0.5px solid var(--border)}
.rti-meta-item{display:inline-flex;align-items:center;gap:7px;color:var(--text3)}
.rti-meta-k{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}
.rti-meta-v{font-size:12.5px;font-weight:600;color:var(--text)}
@media (max-width:1100px){.rti-meta{gap:13px}}

/* decision zone */
.rti-gen{display:flex;align-items:center;gap:9px;padding:9px 11px;background:var(--bg);border:0.5px solid rgba(181,212,244,.25);border-radius:var(--radius)}
.rti-spin{width:14px;height:14px;border:2px solid var(--blue-fg);border-top-color:transparent;border-radius:50%;display:inline-block;animation:rti-spin .7s linear infinite;flex:none}
.rti-gen-text{font-size:12px;color:var(--blue-fg);font-weight:500}
.rti-decide{display:flex;align-items:center;justify-content:space-between;gap:10px}
.rti-count{font-size:26px;font-weight:700;color:var(--amber-fg);line-height:1;animation:rti-blink 1s ease-in-out infinite}
.rti-decide-sub{font-size:11px;color:var(--text2)}
.rti-btns{display:flex;gap:7px}
.rti-btn{font-size:12px;font-weight:600;border-radius:var(--radius);padding:8px 13px;cursor:pointer;border:0.5px solid var(--border2);background:var(--bg);color:var(--text)}
.rti-btn:hover{background:var(--bg2)}
.rti-btn-primary{background:#e92030;border-color:#e92030;color:#fff}
.rti-btn-primary:hover{background:#cf1b29}
.rti-btn:disabled,.rti-btn-primary:disabled{opacity:.5;cursor:not-allowed}
.rti-btn-primary:disabled:hover{background:#e92030}
.rti-assist{display:flex;align-items:center;justify-content:space-between;gap:10px}
.rti-assist-text{font-size:12px;color:var(--amber-fg);font-weight:500}
.rti-calling{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px;background:var(--red-bg);border:0.5px solid rgba(247,193,193,.4);border-radius:var(--radius);animation:rti-callpulse 1.2s ease-in-out infinite}
.rti-calling-title{font-size:13px;font-weight:700;color:var(--red-fg);letter-spacing:.5px}
.rti-calling-sub{font-size:11px;color:var(--red-fg);opacity:.85;margin-top:1px}
.rti-manual-note{font-size:12px;color:var(--text2);padding:8px 11px;background:var(--bg);border:0.5px solid var(--border);border-radius:var(--radius)}
.rti-accepted{padding:11px;background:var(--green-bg);border:0.5px solid rgba(159,225,203,.4);border-radius:var(--radius)}
.rti-accepted-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.rti-accepted-name{font-size:12px;font-weight:600;color:var(--green-fg)}
.rti-accepted-info{font-size:11px;color:#cfeee2;margin-top:2px}
.rti-accepted-sub{font-size:11px;color:var(--green-fg);opacity:.8;margin-top:8px;padding-top:8px;border-top:0.5px solid rgba(159,225,203,.2)}
.rti-recall-inline{margin-bottom:9px;padding:9px 11px;background:var(--red-bg);border:0.5px solid rgba(247,193,193,.45);border-radius:var(--radius);display:flex;align-items:center;gap:9px}
.rti-ds-assign-row{margin-top:8px;display:flex;justify-content:flex-end}
.rti-mini-btn{font-size:10px;font-weight:600;border-radius:7px;padding:5px 10px;cursor:pointer;background:var(--bg);border:0.5px solid var(--border2);color:var(--text2);line-height:1.3}
.rti-mini-btn:hover{background:var(--bg2)}

/* sms preview */
.rti-sms{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--radius-lg);padding:11px 13px;flex:none}
.rti-sms-lbl{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:7px}
.rti-sms-body{font-size:12px;color:#d6d4ce;line-height:1.55;background:var(--bg);border:0.5px solid var(--border);border-radius:var(--radius);padding:9px 11px}

/* driver rows */
.rti-drivers{display:flex;flex-direction:column;gap:8px}
.rti-driver{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--radius-lg);padding:11px 13px;display:flex;align-items:center;gap:11px}
.rti-rank{font-size:11px;font-weight:700;color:var(--text3);width:18px;flex:none;text-align:center}
.rti-av{width:30px;height:30px;border-radius:50%;flex:none;font-size:11px;font-weight:600;display:flex;align-items:center;justify-content:center}
.rti-driver-main{min-width:0;flex:1}
.rti-driver-name-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.rti-status-dot{width:7px;height:7px;border-radius:50%;flex:none}
.rti-driver-name{font-size:13px;font-weight:600;color:var(--text)}
.rti-driver-meta{font-size:11px;color:var(--text2);margin-top:3px}
.rti-driver-actions{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.rti-row{display:flex;align-items:center;gap:5px}
/* .rti-tag.badge (not bare .rti-tag): every chip carries .badge, whose 10px
   rule lives in index.html's inline <style> and loads AFTER this file — a
   bare .rti-tag ties on specificity and loses, silently reverting chip
   sizing (QA caught the 16px bump never applying in the real app). */
.rti-tag.badge{display:inline-flex;align-items:center;padding:6px 12px;border-radius:20px;font-size:12px;font-weight:500;white-space:nowrap}
.rti-reply-btn{width:22px;height:22px;border-radius:6px;font-size:11px;font-weight:700;cursor:pointer;padding:0;border:0.5px solid}
.rti-reply-a{border-color:rgba(159,225,203,.4);background:var(--green-bg);color:var(--green-fg)}
.rti-reply-r{border-color:rgba(247,193,193,.4);background:var(--red-bg);color:var(--red-fg)}
.rti-reply-p{border-color:var(--border2);background:var(--bg3);color:var(--text2)}
.rti-reply-late{border-color:var(--border2);background:var(--bg);color:var(--text3)}
.rti-contact-btn{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:600;border-radius:6px;padding:4px 9px;cursor:pointer}
.rti-text-btn{color:var(--blue-fg);background:var(--blue-bg);border:0.5px solid rgba(181,212,244,.3)}
.rti-call-btn{color:var(--green-fg);background:var(--green-bg);border:0.5px solid rgba(159,225,203,.3)}
.rti-yesno{font-size:10px;font-weight:600;border-radius:6px;padding:4px 9px;cursor:pointer}
.rti-yes{color:var(--green-fg);background:var(--green-bg);border:0.5px solid rgba(159,225,203,.4)}
.rti-no{color:var(--text2);background:var(--bg3);border:0.5px solid var(--border2)}

/* placeholder columns (phase 2/3) */
.rti-placeholder{flex:1;display:flex;align-items:center;justify-content:center;padding:24px;text-align:center;color:var(--text3);font-size:12px;line-height:1.6}
.rti-ph-stack{flex:1;display:flex;flex-direction:column;gap:10px;padding:14px;min-height:0}
.rti-ph-box{flex:1;border:1px dashed var(--border2);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;text-align:center;padding:16px;color:var(--text3);font-size:12px;line-height:1.5}

/* sim toolbar (mock mode only) */
.rti-sim{flex:none;border-top:0.5px solid var(--border);padding:9px 12px;display:flex;align-items:center;gap:8px;background:var(--bg)}
.rti-sim-btn{font-size:11px;font-weight:600;border-radius:6px;padding:5px 9px;cursor:pointer;background:var(--bg2);border:0.5px solid var(--border2);color:var(--text)}
.rti-sim-chips{display:flex;gap:4px;flex:1;flex-wrap:wrap;justify-content:flex-end}
.rti-sim-chip{font-size:10px;font-weight:600;padding:5px 9px;border-radius:6px;cursor:pointer;border:0.5px solid var(--border2);background:var(--bg);color:var(--text2)}
.rti-sim-chip.active{background:#e92030;color:#fff;border-color:#e92030}

@keyframes rti-marquee{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
@keyframes rti-pulse{0%,100%{box-shadow:0 0 0 0 rgba(159,225,203,0);border-color:rgba(159,225,203,.45)}50%{box-shadow:0 0 0 4px rgba(159,225,203,.10);border-color:rgba(159,225,203,.85)}}
/* dips once per second (synced to the countdown tick) — trough kept mild so
   the per-second pulse reads as a heartbeat, not a strobe */
@keyframes rti-blink{0%,100%{opacity:1}50%{opacity:.55}}
@keyframes rti-callpulse{0%,100%{box-shadow:0 0 0 0 rgba(247,193,193,0)}50%{box-shadow:0 0 0 4px rgba(247,193,193,.14)}}
@keyframes rti-spin{to{transform:rotate(360deg)}}

/* skeleton rows while recommendations are being generated */
.rti-skel{opacity:.7}
.rti-skel-box,.rti-skel-line{position:relative;overflow:hidden;background:var(--bg3)}
.rti-skel-line{height:11px;border-radius:6px}
.rti-skel-box::after,.rti-skel-line::after{content:'';position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.06),transparent);animation:rti-shimmer 1.3s ease-in-out infinite}
@keyframes rti-shimmer{100%{transform:translateX(100%)}}

/* Order Queue / Completed Today segmented control (column header) */
.rti-tabs{display:flex;gap:3px;background:var(--bg3);border:0.5px solid var(--border2);border-radius:8px;padding:3px;flex:none}
.rti-tab{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--text3);background:transparent;border:none;border-radius:6px;padding:5px 10px;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s}
.rti-tab:hover{color:var(--text2)}
.rti-tab.active{background:#2c2c2a;color:#f0ede8}
.rti-tab.active:hover{color:#f0ede8}
.rti-tab-n{font-size:10px;font-weight:700;opacity:.75}

/* rolling (assigned / en-route) queue chips read as "no action needed" */
.rti-qchip.demoted{opacity:.58}

/* delivery-lifecycle block inside the green Assigned card */
.rti-dstatus{margin-top:9px;padding-top:9px;border-top:0.5px solid rgba(159,225,203,.2);display:flex;flex-direction:column;gap:8px}
.rti-dstatus-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rti-dstatus-badge{display:inline-flex;align-items:center;padding:3px 9px;border-radius:20px;font-size:10px;font-weight:600;white-space:nowrap}
.rti-dstatus-text{font-size:11px;color:var(--text3)}
.rti-dstatus .rti-mini-btn{align-self:flex-start}

/* "Load more" — paginated recommended-driver list */
.rti-load-more{width:100%;margin-top:2px;padding:9px 12px;background:var(--bg2);border:0.5px dashed var(--border2);border-radius:var(--radius-lg);color:var(--text2);font-size:11.5px;font-weight:600;cursor:pointer;transition:background .12s,color .12s}
.rti-load-more:hover{background:var(--bg3);color:var(--text)}

/* Completed Today log */
.rti-clog-head{font-size:11px;color:var(--text3);line-height:1.5;padding:0 2px 2px}
.rti-clog-list{display:flex;flex-direction:column;gap:8px}
.rti-clog{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--radius-lg);padding:11px 13px;display:flex;align-items:center;gap:11px}
.rti-clog-main{min-width:0;flex:1}
.rti-clog-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rti-clog-id{font-size:13px;font-weight:600;color:var(--text)}
.rti-clog-route{font-size:12px;color:var(--text);margin-top:3px}
.rti-clog-sub{font-size:11px;color:var(--text2);margin-top:2px}
.rti-clog-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:44px 24px;text-align:center;color:var(--text3);font-size:12px;line-height:1.6}

@media(max-width:1100px){.rti{grid-template-columns:1fr}}

/* ── HeyMarket conversation drawer (copilot-hm-drawer.js) ─────────────────────
   Unique .rti-hm-* names on purpose: index.html's inline <style> loads AFTER
   this sheet and generic names (.badge!) get overridden at equal specificity. */
.rti-hm-scrim{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:300}
/* RingCentral Embeddable injects its floating container at z-index:999 (its
   own runtime stylesheet, so !important is needed to win the cascade), which
   floated the phone ABOVE the open drawer. Pin it below the drawer scrim
   (300) but above the board and the settings modal (.overlay 200); toasts
   (999) and #login-screen (1000) stay above everything. */
#rc-widget{z-index:250 !important}
.rti-hm-drawer{position:absolute;top:0;right:0;bottom:0;width:428px;max-width:92vw;background:#1c1c1a;box-shadow:-18px 0 50px rgba(0,0,0,.5);display:flex;flex-direction:column;font-family:inherit;color:#f0ede8}
.rti-hm-brand{flex:none;display:flex;align-items:center;justify-content:space-between;padding:8px 14px;background:#252523;border-bottom:.5px solid rgba(255,255,255,.08)}
.rti-hm-brand-l{display:inline-flex;align-items:center;gap:8px;font-size:13px}
.rti-hm-brand-l b{font-weight:700;color:#f0ede8}
.rti-hm-glyph{width:22px;height:22px;border-radius:6px;background:#2E6BE6;display:inline-flex;align-items:center;justify-content:center}
.rti-hm-embedded{font-size:10px;font-weight:600;color:#a09e98;background:#2c2c2a;border-radius:5px;padding:2px 6px}
.rti-hm-brand-r{display:inline-flex;align-items:center;gap:10px}
.rti-hm-via{font-size:11px;color:#6b6a65}
.rti-hm-close{width:26px;height:26px;border-radius:7px;border:none;display:inline-flex;align-items:center;justify-content:center;color:#a09e98;background:#2c2c2a;cursor:pointer}
.rti-hm-driver{flex:none;display:flex;align-items:center;gap:11px;padding:12px 14px;border-bottom:.5px solid rgba(255,255,255,.08)}
.rti-hm-avatar{width:40px;height:40px;border-radius:50%;flex:none;font-size:14px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;background:#EEEDFE;color:#534AB7}
.rti-hm-who{min-width:0;display:flex;flex-direction:column;gap:2px}
.rti-hm-name{font-size:15px;font-weight:700;display:flex;align-items:center;gap:7px}
.rti-hm-chip{font-size:9px;font-weight:600;border-radius:20px;padding:2px 7px}
.rti-hm-tier{color:#9fe1cb;background:#04342c}
.rti-hm-mkt{color:#b5d4f4;background:#042c53}
.rti-hm-phone{font-size:12px;color:#a09e98}
.rti-hm-thread{flex:1;min-height:0;overflow-y:auto;padding:16px 16px 8px;background:#232320;display:flex;flex-direction:column;gap:2px}
.rti-hm-divider{display:flex;align-items:center;gap:10px;margin:12px 4px 8px;font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#6b6a65}
.rti-hm-divider span{height:1px;flex:1;background:rgba(255,255,255,.1)}
.rti-hm-row{display:flex;padding:2px 0}
.rti-hm-row-in{justify-content:flex-start}
.rti-hm-row-out{justify-content:flex-end}
.rti-hm-msg{max-width:80%}
.rti-hm-bubble{white-space:pre-wrap;word-break:break-word;font-size:13px;line-height:1.5;padding:9px 13px}
.rti-hm-bubble-in{border-radius:16px 16px 16px 4px;background:#2c2c2a;color:#e7e4dc;border:.5px solid rgba(255,255,255,.07)}
.rti-hm-bubble-out{border-radius:16px 16px 4px 16px;background:#2E6BE6;color:#fff;box-shadow:0 1px 2px rgba(0,0,0,.22)}
/* MMS image: fixed max box so poll re-renders never shift the thread layout */
.rti-hm-imgwrap{display:block;color:inherit;text-decoration:none;font-size:12px}
.rti-hm-img{display:block;max-width:100%;max-height:240px;border-radius:10px;margin:2px 0}
.rti-hm-meta{font-size:10px;color:#6b6a65;margin-top:3px}
.rti-hm-row-out .rti-hm-meta{text-align:right}
.rti-hm-note{color:#fac775}
.rti-hm-state{margin:auto;text-align:center;font-size:12px;color:#a09e98;line-height:2}
.rti-hm-warn{font-size:11px;color:#fac775;text-align:center;padding:4px 0}
.rti-hm-retry{font-size:12px;font-weight:600;color:#f0ede8;background:#2c2c2a;border:.5px solid rgba(255,255,255,.18);border-radius:8px;padding:5px 14px;cursor:pointer}
.rti-hm-composer{flex:none;border-top:.5px solid rgba(255,255,255,.08);background:#1c1c1a;padding:9px 12px 12px}
.rti-hm-inputrow{display:flex;align-items:flex-end;gap:8px;background:#252523;border:.5px solid rgba(255,255,255,.14);border-radius:14px;padding:6px 6px 6px 12px}
.rti-hm-input{flex:1;resize:none;border:none;background:transparent;font-size:13px;line-height:1.5;color:#f0ede8;padding:5px 0;max-height:90px;font-family:inherit;outline:none}
.rti-hm-send{width:34px;height:34px;flex:none;border-radius:10px;border:none;background:#2E6BE6;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.rti-hm-hint{font-size:10px;color:#6b6a65;margin-top:6px;text-align:center}
.rti-hm-hint .rti-hm-a{color:#9fe1cb}
.rti-hm-hint .rti-hm-r{color:#f7c1c1}
.rti-hm-hint .rti-hm-o{color:#fac775}

/* Link-health banner: 2+ consecutive failed polls — board is stale, clocks
   paused. Amber, not red: data shown is real, just no longer live. */
.rti-stale {
  background: #7a5a00;
  color: #ffe9a8;
  border: 1px solid #a87f00;
  border-radius: 8px;
  padding: 8px 12px;
  margin: 0 0 10px;
  font-size: 13px;
  font-weight: 600;
  grid-column: 1 / -1;
}
