/* V2 cards, using the shared brand variables so dark and light themes both work. */
.v2-search { display:flex; gap:8px; }
.v2-search input, .v2-filter { width:100%; min-height:48px; border:1px solid var(--border); border-radius:8px; background:var(--surface2); padding:10px 13px; color:var(--text); font:inherit; }
.v2-primary, .v2-secondary, .v2-danger { min-height:44px; border:1px solid var(--border); border-radius:8px; padding:9px 14px; font:inherit; font-weight:700; cursor:pointer; }
.v2-primary { background:var(--accent); border-color:var(--accent); color:#fff; }
.v2-secondary { display:inline-flex; align-items:center; background:var(--surface2); color:var(--text); text-decoration:none; }
.v2-danger { display:grid; width:100%; margin-top:12px; border-color:var(--danger); background:var(--surface); color:var(--danger); text-align:left; }
.v2-danger small { margin-top:2px; color:var(--text-muted); }
.v2-home-decisions { display:grid; gap:10px; }
.v2-section-note { margin:4px 0 0; color:var(--text-muted); font-size:.8rem; line-height:1.4; }
.v2-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.v2-card { min-width:0; border:1px solid var(--border); border-radius:10px; background:var(--surface); padding:16px; text-align:left; }
button.v2-card { width:100%; color:inherit; font:inherit; cursor:pointer; }
.v2-card:hover, .v2-card:focus-visible { border-color:var(--accent); outline:none; }
.v2-card-label { display:block; margin-bottom:7px; color:var(--text-muted); font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.v2-card-title { display:block; font-weight:750; line-height:1.35; }
.v2-card-copy, .v2-card-meta { display:block; margin:7px 0; color:var(--text-muted); font-size:.85rem; line-height:1.45; }
.v2-list { display:grid; gap:8px; }
.v2-result { display:flex; justify-content:space-between; gap:14px; align-items:center; width:100%; border:1px solid var(--border); border-radius:8px; background:var(--surface); padding:13px; color:inherit; font:inherit; text-align:left; cursor:pointer; }
.v2-result strong, .v2-result span { display:block; }
.v2-result small { display:block; margin-top:2px; color:var(--text-muted); }
.v2-result:hover, .v2-result:focus-visible, .v2-primary:focus-visible, .v2-secondary:focus-visible, .v2-danger:focus-visible, .v2-topic:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.v2-empty { border:1px dashed var(--border); border-radius:8px; padding:18px; color:var(--text-muted); background:transparent; }
.v2-topic-chips { display:flex; flex-wrap:wrap; gap:8px; }
.v2-topic { border:1px solid var(--border); border-radius:999px; background:var(--surface); padding:9px 13px; color:inherit; font:inherit; cursor:pointer; }
.v2-topic[aria-pressed="true"] { border-color:var(--accent); background:var(--accent); color:#fff; }
.v2-interest-section { padding-top:20px; border-top:1px solid var(--border); }
.v2-toolbar { display:grid; grid-template-columns:1fr 180px auto; gap:8px; margin-bottom:18px; }
.v2-domain { margin-bottom:9px; border:1px solid var(--border); border-radius:9px; background:var(--surface); overflow:hidden; scroll-margin-top:90px; }
.v2-domain > button { display:flex; justify-content:space-between; width:100%; border:0; background:transparent; padding:15px; color:inherit; font:inherit; font-weight:750; text-align:left; cursor:pointer; }
.v2-domain-list { display:none; padding:0 10px 10px; }
.v2-domain.is-open .v2-domain-list { display:grid; gap:7px; }
.v2-account-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.v2-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.v2-a11y label { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:8px 0; }

/* Phase 5 — progress, personalization and saved */
.v2-summary-card { border-color:var(--accent); background:var(--surface); }
.v2-summary-card .v2-card-title { font-size:1.15rem; }
.v2-reminder-row { display:flex; align-items:flex-start; gap:10px; cursor:pointer; }
.v2-reminder-row input { margin-top:3px; width:20px; height:20px; flex:0 0 auto; }
.v2-reminder-row small { display:block; margin-top:4px; color:var(--text-muted); font-size:.8rem; line-height:1.45; }
.v2-review-remove { margin:0 0 8px; }

/* Phase 6 — Help Now urgent-assistance flow */
.v2-help-block { margin:0 0 18px; padding:16px; border:1px solid var(--border); border-radius:12px; background:var(--surface); }
.v2-help-danger { border-color:var(--danger); }
.v2-help-situations { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.v2-help-situation { border:1px solid var(--border); border-radius:999px; background:var(--surface2); color:var(--text); padding:10px 14px; font:inherit; cursor:pointer; }
.v2-help-situation.is-active { border-color:var(--accent); background:var(--accent); color:#fff; font-weight:700; }
.v2-contacts { margin:0; padding:0; list-style:none; }
.v2-contact { display:flex; flex-direction:column; gap:2px; padding:10px 0; border-bottom:1px solid var(--border); }
.v2-contact:last-child { border-bottom:0; }
.v2-contact-label { color:var(--text-muted); font-size:.72rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase; }
.v2-contact-name { font-weight:700; }
.v2-contact-number { color:var(--accent); font-size:1rem; font-weight:700; }
.v2-contact-link { color:var(--accent); font-size:.84rem; }
.v2-help-disclaimer { margin:0 0 10px; color:var(--text-muted); font-size:.85rem; line-height:1.6; }
.v2-help-sources { margin:0; padding-left:18px; }
.v2-help-sources a { color:var(--accent); font-size:.8rem; word-break:break-all; }

/* Phase 7 — facilitator workspace */
.v2-fac-switch { display:flex; gap:8px; margin:0 0 18px; }
.v2-fac-switch-btn { border:1px solid var(--border); border-radius:999px; background:var(--surface2); color:var(--text); padding:9px 15px; font:inherit; cursor:pointer; }
.v2-fac-switch-btn.is-active { border-color:var(--accent); background:var(--accent); color:#fff; font-weight:700; }
.v2-fac-status { margin:0 0 14px; padding:10px 14px; border-radius:8px; font-size:.86rem; }
.v2-fac-status-ok { border:1px solid var(--accent2); background:var(--surface2); color:var(--accent2); }
.v2-fac-status-error { border:1px solid var(--danger); background:var(--surface2); color:var(--danger); }
.v2-fac-field { display:flex; flex-direction:column; gap:5px; margin:0 0 12px; font-size:.86rem; }
.v2-fac-group { display:flex; align-items:center; justify-content:space-between; gap:12px; border:1px solid var(--border); border-radius:8px; padding:12px; }
.v2-fac-group small { display:block; color:var(--text-muted); font-size:.78rem; }
.v2-fac-code { border:1px dashed var(--border); border-radius:6px; padding:6px 10px; font-weight:700; letter-spacing:.08em; }
.v2-fac-plan { border-color:var(--accent); }

/* Locked (paid) scenarios and the audio controls */
.v2-result.is-locked { border-style:dashed; }
.v2-lock { margin-left:6px; border:1px solid var(--accent3); border-radius:4px; background:var(--surface2); color:var(--accent3); padding:1px 6px; font-size:.68rem; font-style:normal; font-weight:700; text-transform:uppercase; letter-spacing:.05em; }
.v2-a11y input[type="range"] { width:100%; }

/* Home: the primary action is the search; Help Now is deliberately secondary. */
.v2-help-now-link { align-self:flex-start; margin-top:2px; font-weight:700; color: var(--danger); }
.v2-help-now-link:hover { text-decoration:underline; }
