/* Alpha+ Field — Messages+ campaign inbox.
   Uses the shell's own vocabulary (.bcard, .convo, .chip, .pill, .mbub,
   .qbtn, .composer) and only adds what those classes do not already say:
   the progress bar, the dimmed opted-out row, and phone-sized hit targets. */

/* ---- Inbox › Campaigns segment ---- */
.fc-cards{display:flex;flex-direction:column;gap:10px}
.fc-card{margin-bottom:0;padding:13px 14px}
.fc-card .bc-svc{margin-top:3px}
.fc-pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.fc-bar{height:4px;border-radius:999px;background:var(--hair2);margin-top:11px;overflow:hidden}
.fc-bar span{display:block;height:100%;border-radius:999px;background:var(--accent)}
.fc-card .bc-foot{margin-top:9px}

.fc-notice{padding:12px 14px;border:1px solid var(--hair);border-radius:16px;background:var(--glass2);margin-bottom:12px}
.fc-notice.warn{border-color:rgba(255,69,58,.28);background:rgba(255,69,58,.06)}
.fc-notice-t{font-size:14px;font-weight:800;color:var(--ink)}
.fc-notice-c{font-size:13px;font-weight:550;color:var(--ink2);margin-top:3px;line-height:1.35}

/* ---- Pushed replies + thread ---- */
.fc-push{flex:1;min-height:0;display:flex;flex-direction:column}
.fc-screen{flex:1;min-height:0;overflow-y:auto;padding:8px 16px 40px;scrollbar-width:none}
.fc-screen::-webkit-scrollbar{display:none}
.fc-chips{padding:2px 0 12px}
.fc-chip.on{background:var(--accent);border-color:transparent;color:#fff}

.fc-convo{margin-bottom:9px}
.fc-av{background:#0E2336;color:#fff;font-size:15px;font-weight:800;letter-spacing:-.3px}
.fc-convo.fc-out{opacity:.55}
.fc-chip-triage{height:20px;padding:0 8px;font-size:11px;flex-shrink:0}
.fc-prev-text{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fc-muted{color:var(--ink3)}
.fc-foot-note{font-size:12.5px;font-weight:600;color:var(--ink3);line-height:1.4;padding:10px 2px 2px}
.fc-more{margin-top:10px;height:44px;width:100%}

.fc-thread-meta{flex-shrink:0;padding:8px 16px 2px;font-size:12.5px;font-weight:700;color:var(--ink3);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fc-thread{flex:1;min-height:0}
.fc-claimed{background:var(--accent);color:#fff;font-size:12px;font-weight:800}

/* Three decisions, one row, thumb-sized. */
.fc-qrow{flex-shrink:0;display:flex;gap:8px;padding:8px 14px 0}
.fc-qbtn{height:44px;font-family:var(--font);gap:6px;padding:0 6px;line-height:1.1;text-align:center}
.fc-qbtn span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fc-qbtn.g svg{color:var(--green)}
.fc-qbtn[aria-disabled="true"],.fc-qbtn:disabled{opacity:.45}

.fc-composer .send{width:44px;height:44px}
.fc-composer-off{justify-content:center}
.fc-offline,.fc-offline-bar{font-size:13.5px;font-weight:750;color:var(--ink2);text-align:center;padding:10px 14px}
.fc-offline-bar{flex-shrink:0;border-top:1px solid var(--hair);background:rgba(255,159,10,.10);color:var(--ink)}

/* ---- Your first reply ---- */
/* Dashed, because it has not gone anywhere yet. A solid card in a thread reads
   as a message that was sent. */
.fc-fr{margin:10px 4px 4px;padding:12px 13px;border-style:dashed}
.fc-fr-done{border-style:solid;opacity:.85}
.fc-fr-top{font-size:11.5px;font-weight:800;letter-spacing:.4px;color:var(--ink3);text-transform:uppercase}
.fc-fr-text{margin-top:7px;font-size:14.5px;font-weight:600;color:var(--ink);line-height:1.4;
  white-space:pre-wrap;word-break:break-word}
.fc-fr-edit{display:block;width:100%;margin-top:7px;padding:10px 11px;border:1px solid var(--hair);
  border-radius:12px;background:var(--glass2);color:var(--ink);font-family:var(--font);font-size:14.5px;
  font-weight:600;line-height:1.4;resize:vertical;-webkit-appearance:none}
.fc-fr-meta{margin-top:8px;font-size:12.5px;font-weight:700;color:var(--ink3)}
.fc-fr-blocked{margin-top:8px;font-size:12.5px;font-weight:700;color:var(--ink2);line-height:1.35}
.fc-fr-confirm{margin-top:10px;font-size:14px;font-weight:800;color:var(--ink)}
.fc-fr-row{display:flex;gap:8px;padding:9px 0 0}
.fc-fr-send{background:var(--accent);border-color:transparent;color:#fff}
.fc-fr-send span{color:#fff}
.fc-fr-note{margin:10px 4px 4px;padding:2px;font-size:12.5px;font-weight:700;color:var(--ink3);text-align:center}

/* Words live on the web — say where, quietly, and never look tappable. */
.fc-weblink{margin-top:14px;padding:12px 14px;border:1px solid var(--hair);border-radius:16px;background:var(--glass2)}
.fc-weblink-t{font-size:13.5px;font-weight:800;color:var(--ink2)}
.fc-weblink-c{margin-top:3px;font-size:12.5px;font-weight:600;color:var(--ink3);line-height:1.4}

/* ---- Start a round ---- */
.fc-foot-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.fc-start-link{color:var(--accent);font-weight:800;white-space:nowrap;padding:4px 0 4px 8px}

.fc-sr{padding-bottom:8px}
.fc-sr-lede{font-size:13.5px;font-weight:600;color:var(--ink2);line-height:1.4;padding:2px 2px 12px}
.fc-sr-sec{font-size:11.5px;font-weight:800;letter-spacing:.7px;color:var(--ink3);padding:14px 2px 8px}
.fc-sr-sec:first-of-type{padding-top:0}
.fc-sr-card.on{border-color:var(--accent)}
.fc-sr-card.fc-sr-other{opacity:.5}
.fc-sr-owner{margin-top:8px}
/* The message goes out in the customer's words, so it is shown in theirs —
   a white box, not a paraphrase in the card's own type. */
.fc-sr-msg{margin-top:10px;padding:11px 12px;border-radius:12px;background:#fff;color:#15212B;
  font-size:14px;font-weight:600;line-height:1.4;white-space:pre-wrap;word-break:break-word}
.fc-sr-pills{margin-top:10px}
.fc-sr-pill-total{font-weight:800}
/* People the last round missed, recycled INTO this one — they are already
   counted in what is going out, so this reads as an addition, not a skip. */
.fc-sr-catchup{font-weight:750}
.fc-sr-est{font-size:12.5px;font-weight:650;color:var(--ink3);margin-top:9px;line-height:1.35}

.fc-sr-footer{flex-shrink:0;padding:10px 16px calc(10px + env(safe-area-inset-bottom));
  border-top:1px solid var(--hair);background:var(--glass2)}
.fc-sr-footer .bigbtn{display:flex;align-items:center;justify-content:center;gap:8px}
.fc-sr-footer .bigbtn svg{width:18px;height:18px}
.fc-sr-footer .bigbtn:disabled{opacity:.45}

/* ---- Interested sheet ---- */
/* Three facts in the order they happen — customer, pipeline, inspection — then
   one sentence saying what the button does, then the button. */
.fc-int{padding-top:2px}
.fc-int-row{margin-bottom:10px;padding:13px 14px}
.fc-int-k{font-size:11.5px;font-weight:800;letter-spacing:.4px;color:var(--ink3);text-transform:uppercase}
.fc-int-v{margin-top:5px;font-size:15.5px;font-weight:750;color:var(--ink);line-height:1.3}
.fc-int-s{margin-top:4px;font-size:12.5px;font-weight:600;color:var(--ink3);line-height:1.35}
.fc-int-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px}
.fc-int-toggle .fc-int-s{margin-top:3px}
/* A switch, not a checkbox: it reads at arm's length and it is thumb-sized. */
.fc-int-sw{position:relative;flex-shrink:0;width:50px;height:30px;border-radius:999px;background:var(--hair2);
  border:1px solid var(--hair);transition:background .18s ease}
.fc-int-sw::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;
  background:#fff;box-shadow:0 1px 3px rgba(14,35,54,.35);transition:transform .18s ease}
.fc-int-sw.on{background:var(--accent);border-color:transparent}
.fc-int-sw.on::after{transform:translateX(20px)}
.fc-int-chips{padding:12px 0 0;flex-wrap:wrap}
.fc-int-chips .fc-chip{height:44px;display:flex;align-items:center}
.fc-int-pick{display:flex;gap:10px;padding-top:10px}
.fc-int-pick .field{flex:1;margin-bottom:0}
.fc-int-pick .inp{height:44px;padding:0 12px}
.fc-int-confirm{padding:4px 2px 12px;font-size:13.5px;font-weight:650;color:var(--ink2);line-height:1.4}
.fc-int-go:disabled{opacity:.45}

/* The thread after the decision: what happened, and the way to the customer. */
.fc-int-done{flex-shrink:0;padding:10px 16px 0;font-size:13px;font-weight:750;color:var(--ink2);line-height:1.35}

/* ---- Today board: replies waiting, and where a job came from ---- */
/* flex:0 0 auto for the same reason .fc-sr-qrow carries it: the Today board's
   `.scroll` is a flex COLUMN and an unshrinkable row is squashed without it. */
.fc-alert-row{flex:0 0 auto;padding:0 16px 10px}
/* Alpha Blue left rail, not the job cards' lighter blue: this one is the
   thing you press. */
.fc-alert{border-left-color:var(--accent)}
.fc-alert-t{font-size:15px;font-weight:800;color:var(--ink);line-height:1.25}
.fc-alert-c{margin-top:3px;font-size:12.5px;font-weight:550;color:var(--ink2);line-height:1.35;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* On the schedule card, under the service line. The pill is the "this is new"
   cue; the sentence is the reason the crew is at this door. */
.fc-src{display:flex;align-items:center;gap:6px;margin-top:6px}
.fc-src-new{display:inline-flex;align-items:center;padding:1px 7px;border-radius:999px;background:var(--accent);
  color:#fff;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;line-height:1.6;flex:0 0 auto}
.fc-src-t{font-size:12px;font-weight:600;color:var(--ink3);line-height:1.3;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
