/* ── portals.css — cross-workspace chrome (switcher) + carrier/shipper bits. ──
 * Feature-scoped so components.css stays the shared base. Reuses card/table/
 * stat/pill/map from components.css; only genuinely new selectors live here.
 */

/* ── Demo workspace switcher (walk all three portals) ────────────────────── */
.switcher { padding: 12px; margin: 0 2px 8px; border-radius: var(--r-md); background: var(--surface); border: 1px solid var(--hair); }
.switcher-label { font-size: 10px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--t2); font-weight: 600; margin-bottom: 8px; }
.switcher-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; }
.switcher-btn { padding: 7px 4px; border-radius: var(--r-sm); background: var(--surface-2); border: 1px solid var(--hair); font-size: 11.5px; font-weight: 600; color: var(--t1); transition: all var(--dur); }
.switcher-btn:hover { background: var(--surface-3); color: var(--t0); }
.switcher-btn.is-on { background: var(--signal); color: var(--signal-ink); border-color: transparent; }

/* ── Notification / activity rows reuse .q-row; tighten for feeds ─────────── */
.q-row.feed { grid-template-columns: 3px 1fr auto; animation: none; opacity: 1; transform: none; }

/* ── Onboarding step check reuses .check; wider for detail ────────────────── */
.check.step { padding: 16px; }

/* Plan / upgrade chip in the rail footer */
.plan-chip { font-size: 11.5px; color: var(--ok); font-weight: 600; padding: 8px 10px; margin: 6px 2px; border-radius: var(--r-sm); background: var(--ok-soft); text-align: center; }
