:root {
  --plum-950: #2c1026;
  --plum-900: #35132d;
  --plum-800: #461a3b;
  --plum-700: #653153;
  --raspberry: #d92d72;
  --raspberry-dark: #b8215d;
  --rose-100: #fae8ef;
  --rose-50: #fff5f7;
  --ivory: #fffaf7;
  --paper: #ffffff;
  --peach: #f3a88f;
  --mint: #58a887;
  --amber: #c98336;
  --danger: #b53d49;
  --ink: #32182a;
  --muted: #725f6c;
  --line: #ead9df;
  --soft-line: #f2e7eb;
  --shadow: 0 18px 50px rgba(56, 17, 44, 0.08);
  --sans: Inter, "Segoe UI", system-ui, -apple-system, sans-serif;
  --serif: Georgia, "Times New Roman", serif;
}

* { box-sizing: border-box; }
html { color-scheme: light; scroll-behavior: smooth; }
body { margin: 0; font-family: var(--sans); color: var(--ink); background: var(--ivory); }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { color: inherit; }
a { color: inherit; }
img { display: block; max-width: 100%; }
.sr-only { position: absolute!important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; top: -80px; left: 1rem; z-index: 999; padding: .75rem 1rem; color: white; background: var(--plum-950); }
.skip-link:focus { top: 1rem; }
:focus-visible { outline: 3px solid rgba(217,45,114,.28); outline-offset: 3px; }
.eyebrow { margin: 0; text-transform: uppercase; letter-spacing: .15em; font-size: .75rem; font-weight: 700; }
.eyebrow.raspberry { color: var(--raspberry); }

/* Authentication */
.participant-login { min-height: 100vh; background: var(--paper); }
.login-canvas { min-height: 100vh; display: grid; grid-template-columns: minmax(430px, 1.07fr) minmax(420px, .93fr); }
.login-story { position: relative; overflow: hidden; padding: clamp(2rem, 5vw, 5.2rem); color: white; background: var(--plum-900); display: flex; flex-direction: column; justify-content: space-between; }
.participant-brand { display: inline-flex; align-items: center; gap: .72rem; width: max-content; text-decoration: none; font: 500 1.3rem/1 var(--serif); }
.participant-brand img { border-radius: 24%; object-fit: cover; }
.participant-brand small { display: block; margin-top: .15rem; font: 600 .49rem var(--sans); color: #f1a6bd; text-transform: uppercase; letter-spacing: .17em; }
.participant-brand.light { color: white; }
.story-copy { position: relative; z-index: 2; max-width: 610px; margin: 6vh 0 auto; }
.story-copy .eyebrow { color: #f3a8bd; }
.story-copy h1 { margin: 1rem 0 1.4rem; font: 400 clamp(3.4rem, 6vw, 6.6rem)/.9 var(--serif); letter-spacing: -.055em; }
.story-copy h1 em { color: #f1a4bc; font-weight: 400; }
.story-copy > p:last-child { max-width: 530px; color: #d7bfcc; line-height: 1.7; font-size: .9rem; }
.privacy-note { position: relative; z-index: 3; display: flex; align-items: center; gap: .6rem; margin: 0; color: #d8c4cf; font-size: .875rem; }
.privacy-note span { width: 7px; height: 7px; border-radius: 50%; background: #79c39f; box-shadow: 0 0 0 5px rgba(121,195,159,.12); }
.constellation { position: absolute; pointer-events: none; }
.constellation-login { width: 540px; height: 540px; right: -130px; bottom: -135px; opacity: .72; }
.orbit { position: absolute; inset: 60px; border: 1px solid rgba(255,255,255,.1); border-radius: 50%; }
.orbit-two { inset: 120px; }
.constellation-core { position: absolute; left: 245px; top: 245px; width: 54px; height: 54px; padding: 6px; background: white; border-radius: 50%; box-shadow: 0 0 0 12px rgba(255,255,255,.05); }
.constellation-core img { width: 100%; border-radius: 50%; }
.constellation-node { position: absolute; padding: .42rem .65rem; border: 1px solid rgba(255,255,255,.15); background: rgba(53,19,45,.7); color: #f3dce5; font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; }
.node-choice { left: 76px; top: 210px; }.node-care { right: 35px; top: 150px; }.node-expert { right: 96px; bottom: 55px; }
.login-form-panel { position: relative; display: grid; place-items: center; padding: clamp(4rem, 8vw, 8rem); background: linear-gradient(125deg, #fff 0%, var(--ivory) 100%); }
.back-home { position: absolute; top: 2rem; left: 2rem; color: var(--muted); text-decoration: none; font-size: .875rem; }
.login-form-panel form { width: min(410px, 100%); }
.login-form-panel h2 { margin: .35rem 0; font: 400 3rem var(--serif); letter-spacing: -.035em; }
.form-intro { color: var(--muted); font-size: .9rem; line-height: 1.65; margin: 0 0 2rem; }
.login-form-panel label { display: block; margin: 1rem 0 .4rem; font-size: .875rem; font-weight: 700; }
.login-form-panel input { width: 100%; height: 50px; border: 1px solid var(--line); background: white; padding: 0 .9rem; color: var(--ink); border-radius: 0; }
.login-form-panel input:focus { border-color: var(--raspberry); outline: 3px solid rgba(217,45,114,.1); }
.pin-field { position: relative; }
.pin-field input { padding-right: 4rem; }
.pin-field button { position: absolute; right: .4rem; top: .35rem; bottom: .35rem; border: 0; padding: 0 .75rem; background: var(--rose-50); color: var(--raspberry-dark); font-size: .875rem; font-weight: 700; cursor: pointer; }
.programme-details { margin: 1rem 0; color: var(--muted); font-size: .85rem; }
.programme-details summary { cursor: pointer; color: var(--plum-700); font-weight: 600; }
.form-error { padding: .8rem .9rem; border-left: 3px solid var(--danger); background: #fff0f0; color: #8e313b; font-size: .875rem; }
.field-error { color: var(--danger); font-size: .875rem; }
.primary-action { width: 100%; min-height: 52px; display: flex; align-items: center; justify-content: space-between; border: 0; padding: 0 1.1rem; color: white; background: var(--raspberry); box-shadow: 6px 6px 0 rgba(53,19,45,.11); font-weight: 700; cursor: pointer; }
.primary-action:hover { background: var(--raspberry-dark); transform: translateY(-1px); }
.support-note { margin: 1.5rem auto 0; max-width: 380px; text-align: center; color: var(--muted); font-size: .875rem; line-height: 1.6; }
.auth-switch { margin: 1.5rem 0 0; text-align: center; color: var(--muted); font-size: .9rem; }
.auth-switch a { color: var(--raspberry-dark); font-weight: 800; text-underline-offset: .25rem; }
.participant-register .login-canvas { align-items: stretch; }
.participant-register .login-story { position: sticky; top: 0; height: 100vh; }
.participant-register .login-form-panel { align-items: start; padding-top: 5.5rem; padding-bottom: 4rem; }
.participant-register .login-form-panel form { width: min(580px, 100%); }
.participant-register .form-intro { margin-bottom: 1.4rem; }
.form-group { min-width: 0; margin: 0; padding: 1.1rem 0 1.25rem; border: 0; border-top: 1px solid var(--line); }
.form-group legend { padding: 0 .8rem 0 0; color: var(--plum-700); font: 600 .95rem var(--serif); }
.form-group legend span { margin-right: .4rem; color: var(--raspberry); font: italic .75rem var(--serif); }
.registration-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.registration-grid > div { min-width: 0; }
.login-form-panel select { width: 100%; height: 50px; border: 1px solid var(--line); border-radius: 0; padding: 0 2.4rem 0 .9rem; color: var(--ink); background: white; }
.login-form-panel select:focus { border-color: var(--raspberry); outline: 3px solid rgba(217,45,114,.1); }
.field-hint { margin: .38rem 0 .15rem; color: var(--muted); font-size: .75rem; line-height: 1.5; }
.participant-register .field-error { margin: .35rem 0 0; }
.account-continuity { display: grid; grid-template-columns: auto 1fr; gap: .8rem; align-items: center; margin: 1.2rem 0 0; padding: .8rem 1rem; border-left: 3px solid var(--mint); background: #f2faf6; font-size: .8rem; }
.account-continuity strong { color: #327b60; }
.account-continuity span { color: var(--muted); }
@media (max-width: 760px) {
  .participant-register .login-story { position: relative; height: auto; min-height: 440px; }
  .participant-register .login-form-panel { padding-top: 5rem; }
  .participant-register .story-copy { margin-top: 3.2rem; }
  .registration-grid { grid-template-columns: 1fr; gap: 0; }
  .account-continuity { grid-template-columns: 1fr; gap: .2rem; }
}

/* Participant shell */
.app-shell { min-height: 100vh; display: grid; grid-template-columns: 248px minmax(0,1fr); }
.participant-sidebar { position: fixed; z-index: 100; inset: 0 auto 0 0; width: 248px; height: 100vh; height: 100dvh; min-height: 100vh; padding: 1.55rem 1.25rem max(1rem, env(safe-area-inset-bottom)); overflow: hidden; background: var(--plum-900); color: #d8c5d0; display: flex; flex-direction: column; }
.participant-sidebar .participant-brand { margin: 0 .55rem 2.2rem; }
.nav-label { margin: 0 .7rem .6rem; color: #b295a6; text-transform: uppercase; letter-spacing: .16em; font-size: .75rem; font-weight: 700; }
.participant-sidebar nav { min-height: 0; display: grid; align-content: start; gap: .22rem; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #80526f transparent; }
.participant-sidebar nav::-webkit-scrollbar { width: 5px; }
.participant-sidebar nav::-webkit-scrollbar-thumb { border-radius: 5px; background: #80526f; }
.participant-sidebar nav a { min-height: 46px; display: flex; align-items: center; gap: .85rem; padding: 0 .75rem; color: #d8c3cf; text-decoration: none; font-size: .875rem; font-weight: 500; border-left: 2px solid transparent; }
.participant-sidebar nav a:hover { color: white; background: rgba(255,255,255,.045); }
.participant-sidebar nav a[aria-current="page"] { color: white; background: #51203f; border-left-color: #f276a3; }
.participant-sidebar nav a[aria-current="page"] i { color: #f49aba; }
.participant-sidebar [data-icon] { width: 18px; height: 18px; display: block; position: relative; color: #af91a3; }
.participant-sidebar [data-icon]::before, .participant-sidebar [data-icon]::after { content: ""; position: absolute; border: 1.5px solid currentColor; }
[data-icon="home"]::before { inset: 5px 2px 1px; } [data-icon="home"]::after { width: 10px; height: 10px; left: 3px; top: 1px; transform: rotate(45deg); border-right: 0; border-bottom: 0; }
[data-icon="ask"]::before { inset: 1px 1px 4px; border-radius: 50%; } [data-icon="ask"]::after { width: 6px; height: 6px; border-width: 0 0 1.5px 1.5px; left: 3px; bottom: 1px; transform: skew(-25deg); }
[data-icon="explore"]::before { inset: 1px; border-radius: 50%; } [data-icon="explore"]::after { width: 5px; height: 5px; left: 6px; top: 6px; background: currentColor; transform: rotate(45deg); }
[data-icon="care"]::before { width: 13px; height: 13px; left: 2px; top: 3px; transform: rotate(45deg); border-radius: 8px 8px 3px 8px; } [data-icon="care"]::after { width: 1px; height: 8px; left: 8px; top: 5px; border: 0; background: currentColor; box-shadow: 0 0 0 transparent; }
[data-icon="experts"]::before { width: 7px; height: 7px; left: 5px; top: 1px; border-radius: 50%; } [data-icon="experts"]::after { width: 14px; height: 7px; left: 1px; bottom: 1px; border-radius: 8px 8px 0 0; }
[data-icon="history"]::before { inset: 2px; border-radius: 50%; } [data-icon="history"]::after { width: 5px; height: 5px; border-width: 0 0 1.5px 1.5px; left: 8px; top: 5px; }
[data-icon="notification"]::before { width: 11px; height: 12px; left: 3px; top: 1px; border-radius: 8px 8px 2px 2px; } [data-icon="notification"]::after { width: 4px; height: 2px; left: 7px; bottom: 1px; border-radius: 0 0 5px 5px; }
[data-icon="profile"]::before { width: 6px; height: 6px; left: 5px; top: 1px; border-radius: 50%; } [data-icon="profile"]::after { width: 13px; height: 7px; left: 1px; bottom: 1px; border-radius: 8px 8px 0 0; }
.nav-count { margin-left: auto; min-width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; background: var(--raspberry); color: white; font-size: .75rem; }
.sidebar-bottom { flex: 0 0 auto; margin-top: auto; border-top: 1px solid rgba(255,255,255,.09); padding-top: .8rem; background: var(--plum-900); }
.discreet-toggle, .logout-button { width: 100%; border: 0; background: transparent; color: #cdb6c4; display: flex; align-items: center; gap: .7rem; padding: .65rem .7rem; text-align: left; cursor: pointer; }
.discreet-toggle > i { width: 28px; height: 16px; border: 1px solid #886579; border-radius: 12px; position: relative; }
.discreet-toggle > i::after { content:""; position: absolute; width: 10px; height: 10px; top: 2px; left: 2px; border-radius: 50%; background: #b59cab; transition: .2s; }
.discreet-toggle[aria-pressed="true"] > i { border-color: #f49aba; }.discreet-toggle[aria-pressed="true"] > i::after { left: 14px; background: #f49aba; }
.discreet-toggle span { display: flex; flex-direction: column; }.discreet-toggle b { color: inherit; font-size: .875rem; }.discreet-toggle small { color: #b092a4; font-size: .75rem; }
.logout-button { font-size: .875rem; }.logout-button [data-icon]::before { width: 10px; height: 12px; left: 1px; top: 2px; }.logout-button [data-icon]::after { width: 8px; height: 8px; right: 0; top: 4px; border-width: 1.5px 1.5px 0 0; transform: rotate(45deg); }
.participant-workspace { grid-column: 2; min-width: 0; display: flex; min-height: 100vh; flex-direction: column; }
.participant-topbar { min-height: 92px; padding: 1rem clamp(1.5rem,4vw,4rem); border-bottom: 1px solid var(--line); background: rgba(255,250,247,.97); display: flex; align-items: center; justify-content: space-between; }
.participant-topbar > div:first-of-type p { margin: 0 0 .2rem; color: var(--raspberry-dark); text-transform: uppercase; letter-spacing: .1em; font-size: .75rem; font-weight: 700; }
.participant-topbar h1 { margin: 0; font: 400 1.65rem var(--serif); }
.topbar-context { display: flex; align-items: center; gap: 1.6rem; }
.connection-status { display: flex; align-items: center; gap: .45rem; color: #327b60; font-size: .75rem; }
.connection-status i { width: 7px; height: 7px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 4px rgba(88,168,135,.11); }
.connection-status.offline { color: var(--danger); }
.tenant-context { padding-left: 1rem; border-left: 1px solid var(--line); display: flex; flex-direction: column; }
.tenant-context small { color: var(--muted); text-transform: uppercase; letter-spacing: .1em; font-size: .75rem; }.tenant-context strong { font-size: .875rem; }
.menu-button { display: none; }
.participant-main { flex: 1; width: min(1480px,100%); margin: 0 auto; padding: 2rem clamp(1.5rem,4vw,4rem) 3rem; }
.page-intro { display: flex; justify-content: space-between; align-items: end; gap: 2rem; padding-bottom: 1.4rem; }
.page-intro h2 { margin: .25rem 0 0; font: 400 clamp(1.45rem,2.4vw,2.3rem) var(--serif); }
.page-intro > p { max-width: 420px; margin: 0; text-align: right; color: var(--muted); font-size: .875rem; line-height: 1.55; }
.participant-footer { display: flex; justify-content: space-between; padding: 1.1rem clamp(1.5rem,4vw,4rem); border-top: 1px solid var(--line); color: var(--muted); font-size: .75rem; }
.participant-footer a { color: var(--raspberry-dark); }
.route-stage { min-height: 500px; }
.loading-state, .error-state, .empty-state { min-height: 390px; display: grid; place-items: center; align-content: center; text-align: center; padding: 2rem; }
.loading-mark { width: 52px; height: 52px; padding: 6px; border: 1px solid var(--line); border-radius: 50%; animation: pulse 1.5s ease-in-out infinite; }.loading-mark img { border-radius: 50%; }
.loading-state h3, .error-state h3, .empty-state h3 { margin: 1rem 0 .25rem; font: 400 1.35rem var(--serif); }.loading-state p, .error-state p, .empty-state p { margin: 0; color: var(--muted); font-size: .875rem; line-height: 1.55; max-width: 420px; }
@keyframes pulse { 50% { box-shadow: 0 0 0 15px rgba(217,45,114,.05); } }
.error-state i { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid var(--danger); color: var(--danger); border-radius: 50%; font-style: normal; }.error-state button, .empty-state a { margin-top: 1.2rem; border: 1px solid var(--line); background: white; color: var(--raspberry-dark); padding: .65rem .9rem; text-decoration: none; cursor: pointer; }

/* shared content */
.surface { background: var(--paper); border: 1px solid var(--line); box-shadow: 0 10px 35px rgba(62,21,48,.035); }
.surface-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.1rem 1.25rem; border-bottom: 1px solid var(--soft-line); }
.surface-head h3 { margin: 0; font: 400 1.18rem var(--serif); }.surface-head p { margin: .2rem 0 0; color: var(--muted); font-size: .875rem; }
.text-link { border: 0; background: transparent; color: var(--raspberry-dark); text-decoration: none; font-size: .875rem; font-weight: 700; cursor: pointer; }
.home-grid { display: grid; grid-template-columns: minmax(0,1.5fr) minmax(300px,.7fr); gap: 1rem; }
.welcome-surface { position: relative; min-height: 300px; padding: clamp(1.5rem,4vw,3.3rem); overflow: hidden; background: var(--plum-900); color: white; }
.welcome-surface .eyebrow { color: #f1a1b9; }.welcome-surface h3 { max-width: 580px; margin: .8rem 0 1rem; font: 400 clamp(2.2rem,4vw,4.2rem)/.98 var(--serif); letter-spacing: -.04em; }.welcome-surface > p { max-width: 530px; color: #e4d2db; font-size: .9rem; line-height: 1.65; }
.welcome-actions { display: flex; gap: .7rem; margin-top: 1.5rem; }.welcome-actions a { padding: .75rem 1rem; text-decoration: none; font-size: .875rem; font-weight: 700; border: 1px solid rgba(255,255,255,.25); }.welcome-actions a:first-child { background: var(--raspberry); border-color: var(--raspberry); }
.care-constellation { position: absolute; right: -55px; bottom: -100px; width: 350px; height: 350px; }.care-constellation .orbit { inset: 20px; }.care-constellation .orbit-two { inset: 78px; }.care-constellation .constellation-core { left: 150px; top: 150px; }.care-constellation .node-choice { left: 18px; top: 115px; }.care-constellation .node-care { right: 20px; top: 70px; }.care-constellation .node-expert { right: 35px; bottom: 48px; }
.journey-panel { padding: 1.3rem; min-height: 300px; }.journey-panel h3 { font: 400 1.25rem var(--serif); margin: .25rem 0 1.4rem; }.journey-marker { border-left: 2px solid var(--raspberry); padding: .35rem 0 .35rem .8rem; }.journey-marker strong { display:block; font-size:.875rem; }.journey-marker span { color:var(--muted); font-size:.875rem; }
.journey-actions { display: grid; gap: .45rem; margin-top: 1.4rem; }.journey-actions a { display:flex; justify-content:space-between; padding:.78rem 0; border-bottom:1px solid var(--soft-line); text-decoration:none; font-size:.875rem; }.journey-actions b { color: var(--raspberry); }
.activity-strip { grid-column: 1/-1; display: grid; grid-template-columns: 1.2fr .8fr; gap: 0; }.activity-column { padding: 1.2rem; }.activity-column + .activity-column { border-left:1px solid var(--line); }
.list-row { width:100%; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.95rem 0; border:0; border-bottom:1px solid var(--soft-line); background:transparent; text-align:left; cursor:pointer; }.list-row:last-child{border-bottom:0}.list-row strong{font-size:.875rem}.list-row small{display:block;color:var(--muted);font-size:.75rem;line-height:1.45;margin-top:.2rem}.list-row > span:last-child{color:var(--raspberry-dark);font-size:.875rem}

/* ask */
.ask-layout { display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:1rem; min-height:620px; }
.chat-surface { display:flex; flex-direction:column; min-height:620px; }
.chat-mode-bar { display:flex; align-items:center; justify-content:space-between; padding:.85rem 1rem; border-bottom:1px solid var(--line); }.mode-switch {display:flex;gap:.2rem;background:var(--rose-50);padding:.2rem;border-radius:3rem}.mode-switch button{min-height:44px;border:0;background:transparent;padding:.6rem .8rem;font-size:.875rem;cursor:pointer;border-radius:3rem}.mode-switch button.active{color:white;background:var(--ink)}.privacy-chip{font-size:.75rem;color:#327b60;font-weight:700}
.messages { flex:1; overflow:auto; padding:1.3rem; max-height:510px; scroll-behavior:smooth; }.message { max-width:min(78%,680px); margin:.8rem 0; padding:.9rem 1rem; border-left:3px solid var(--line); background:#faf6f7; font-size:.9rem; line-height:1.65; white-space:pre-wrap; }.message.user {margin-left:auto;border-left:0;border-right:3px solid var(--raspberry);background:var(--rose-50)}.message.ai {border-left-color:var(--peach);}.message .citations {margin-top:.6rem;padding-top:.5rem;border-top:1px solid var(--line);font-size:.75rem;color:var(--muted)}.message.urgent{border-color:var(--danger);background:#fff2f1}
.chat-empty {padding:3rem 1.5rem;text-align:center}.chat-empty img{width:52px;margin:auto;border-radius:50%}.chat-empty h3{font:400 1.55rem var(--serif);margin:1rem 0 .3rem}.chat-empty p{color:var(--muted);font-size:.875rem;line-height:1.55}.prompt-list{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:1.4rem}.prompt-list button{max-width:270px;min-height:44px;border:1px solid var(--line);background:white;padding:.7rem .8rem;color:var(--plum-700);font-size:.875rem;line-height:1.45;cursor:pointer;text-align:left}.prompt-list button:hover{border-color:var(--raspberry)}
.chat-surface{display:flex;flex-direction:column;height:min(760px,calc(100dvh - 180px));min-height:min(560px,calc(100dvh - 130px))}.chat-surface>[data-chat-content]{display:flex;flex:1;min-height:0;flex-direction:column}.chat-surface .messages{flex:1;min-height:0;max-height:none;overflow-y:auto}.chat-composer {position:sticky;z-index:2;bottom:0;display:grid;grid-template-columns:1fr auto auto;align-items:end;gap:.6rem;padding:1rem;border-top:1px solid var(--line);background:white}.chat-composer textarea{resize:none;min-height:48px;max-height:140px;border:1px solid var(--line);border-radius:1rem;padding:.75rem .8rem;color:var(--ink)}.chat-composer button{width:50px;height:48px;border:0;border-radius:3rem;background:var(--raspberry);color:white;font-size:1.1rem;cursor:pointer}.chat-composer .dictation-button{display:grid;place-items:center;width:44px;height:44px;margin-bottom:2px;border:1px solid #efc8d7;background:var(--rose-50);color:var(--raspberry);box-shadow:0 0 0 0 rgba(217,45,114,.3)}.chat-composer .dictation-button i{position:relative;display:block;width:10px;height:16px;border:2px solid currentColor;border-radius:8px}.chat-composer .dictation-button i::before{content:"";position:absolute;left:50%;top:12px;width:16px;height:10px;border:2px solid currentColor;border-top:0;border-radius:0 0 10px 10px;transform:translateX(-50%)}.chat-composer .dictation-button i::after{content:"";position:absolute;left:50%;top:22px;width:2px;height:5px;background:currentColor;transform:translateX(-50%)}.chat-composer .dictation-button.recording{background:var(--raspberry);color:white;animation:dictation-halo 1.25s infinite}.chat-composer button:disabled{opacity:.5;cursor:wait}.dictation-state{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.65rem 1rem;background:var(--rose-50);color:var(--plum);font-size:.8rem}.dictation-state button{min-height:44px;border:0;border-radius:3rem;padding:0 1rem;background:white;color:var(--danger)}@keyframes dictation-halo{50%{box-shadow:0 0 0 8px rgba(217,45,114,0)}}@media(prefers-reduced-motion:reduce){.chat-composer .dictation-button.recording{animation:none}}
.participant-sidebar nav a[aria-current="page"]{border-radius:3rem}.clinic-card .card-actions a,.clinic-card .card-actions button{border-radius:3rem}
.typing-indicator{display:flex;align-items:center;gap:.3rem;width:max-content;margin:1rem;padding:.8rem 1rem;border-radius:3rem;background:var(--rose-50)}.typing-indicator i{width:.45rem;height:.45rem;border-radius:50%;background:var(--raspberry);animation:aya-typing .9s infinite alternate}.typing-indicator i:nth-child(2){animation-delay:.15s}.typing-indicator i:nth-child(3){animation-delay:.3s}@keyframes aya-typing{to{opacity:.25;transform:translateY(-3px)}}.type-on{animation:aya-reveal .28s ease-out both}@keyframes aya-reveal{from{opacity:0;transform:translateY(4px)}}@media(prefers-reduced-motion:reduce){.typing-indicator i,.type-on{animation:none}}
.conversation-rail { background:#fbf3f6; border:1px solid var(--line); }.rail-list{padding:.5rem 1rem}.conversation-rail .list-row{display:block}.conversation-rail .list-row.active{border-left:2px solid var(--raspberry);padding-left:.65rem}.new-chat{width:calc(100% - 2rem);margin:1rem;border:0;background:var(--plum-900);color:white;padding:.8rem;cursor:pointer;font-weight:700;font-size:.875rem}
.voice-stage { flex:1; min-height:520px; display:grid; place-items:center; text-align:center; padding:2rem; background:#fffafb; }.voice-orb { width:170px;height:170px;border-radius:50%;display:grid;place-items:center;background:var(--plum-900);box-shadow:0 0 0 25px #faeaf0,0 0 0 26px var(--line);position:relative;color:white;}.voice-orb img{width:70px;border-radius:50%}.voice-orb.listening{animation:voicePulse 1.3s infinite}.voice-orb.speaking::after{content:"";position:absolute;inset:-15px;border:2px solid var(--raspberry);border-radius:50%;animation:voiceWave 1s infinite}.voice-copy h3{font:400 1.6rem var(--serif);margin:3rem 0 .3rem}.voice-copy p{color:var(--muted);font-size:.875rem}.voice-controls{display:flex;justify-content:center;flex-wrap:wrap;gap:.6rem;margin-top:1.2rem}.voice-controls button{min-height:44px;border:1px solid var(--line);background:white;padding:.7rem .9rem;cursor:pointer;font-size:.875rem}.voice-controls .voice-primary{background:var(--raspberry);color:white;border-color:var(--raspberry)}@keyframes voicePulse{50%{box-shadow:0 0 0 32px #f8dbe6,0 0 0 33px var(--line)}}@keyframes voiceWave{to{inset:-45px;opacity:0}}

/* explore, care, experts */
.toolbar { display:flex; gap:.7rem; margin-bottom:1rem; }.toolbar input,.toolbar select{height:44px;border:1px solid var(--line);background:white;padding:0 .8rem;color:var(--ink)}.toolbar input{flex:1}.toolbar select{min-width:190px}
.catalog-layout { display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:1rem }.catalog-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}.method-card{min-height:230px;padding:1.3rem;background:white;border:0;text-align:left;cursor:pointer}.method-card:hover,.method-card.active{background:var(--rose-50)}.method-card .method-category{color:var(--raspberry-dark);font-size:.75rem;text-transform:uppercase;letter-spacing:.12em}.method-card h3{font:400 1.25rem var(--serif);margin:.6rem 0}.method-card p{color:var(--muted);font-size:.875rem;line-height:1.55}.method-facts{display:flex;gap:1rem;margin-top:1rem;padding-top:.7rem;border-top:1px solid var(--soft-line)}.method-facts span{font-size:.75rem}.detail-rail{position:sticky;top:1rem;align-self:start;min-height:390px;padding:1.3rem}.detail-rail h3{font:400 1.7rem var(--serif);margin:.3rem 0}.detail-rail p,.detail-rail li{font-size:.875rem;line-height:1.6;color:var(--muted)}.detail-rail dl{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin:1.2rem 0}.detail-rail dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.detail-rail dd{margin:.15rem 0 0;font-size:.875rem;font-weight:700}.detail-rail a,.detail-rail button{display:block;width:100%;text-align:center;border:0;background:var(--raspberry);color:white;padding:.8rem;text-decoration:none;font-weight:700;font-size:.875rem;cursor:pointer}
.clinic-list,.expert-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.clinic-card,.expert-card{padding:1.25rem;background:white;border:1px solid var(--line)}.clinic-card header,.expert-card header{display:flex;justify-content:space-between;gap:1rem}.clinic-card h3,.expert-card h3{font:400 1.2rem var(--serif);margin:0}.verified-badge{color:#327b60;font-size:.75rem;font-weight:700}.clinic-card p,.expert-card p{color:var(--muted);font-size:.875rem;line-height:1.55}.tag-row{display:flex;flex-wrap:wrap;gap:.35rem;margin:.8rem 0}.tag-row span{padding:.3rem .45rem;background:var(--rose-50);color:var(--plum-700);font-size:.75rem}.card-actions{display:flex;gap:.5rem;margin-top:1rem}.card-actions button,.card-actions a{flex:1;min-height:44px;border:1px solid var(--line);background:white;padding:.65rem;color:var(--raspberry-dark);text-align:center;text-decoration:none;font-size:.875rem;font-weight:700;cursor:pointer}.card-actions .primary{background:var(--plum-900);border-color:var(--plum-900);color:white}.expert-avatar{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:var(--plum-900);color:white;font:italic 1.25rem var(--serif)}.expert-identity{display:flex;gap:.7rem}.expert-identity small{display:block;color:var(--muted);font-size:.75rem;line-height:1.4}.handoff{padding:.9rem;border-left:3px solid var(--peach);background:#fff7f2;color:var(--muted);font-size:.875rem;line-height:1.5}
.voucher-strip{margin-bottom:1rem;padding:1rem 1.2rem}.voucher-strip h3{font:400 1.05rem var(--serif);margin:0}.voucher-code{font-family:monospace;letter-spacing:.12em;color:var(--raspberry-dark)}

/* history / notifications / profile */
.history-layout{display:grid;grid-template-columns:1fr 250px;gap:1rem}.history-table{border:1px solid var(--line);background:white}.history-row{display:grid;grid-template-columns:1fr 130px 210px;gap:1rem;align-items:center;padding:1rem;border-bottom:1px solid var(--soft-line)}.history-row:last-child{border-bottom:0}.history-row h3{font-size:.875rem;margin:0}.history-row p{font-size:.75rem;line-height:1.45;color:var(--muted);margin:.25rem 0 0}.history-actions{display:flex;gap:.35rem;justify-content:end}.history-actions button,.history-actions a{min-height:42px;border:1px solid var(--line);background:white;padding:.55rem;color:var(--raspberry-dark);font-size:.875rem;text-decoration:none;cursor:pointer}.history-stats{padding:1.2rem}.history-stats strong{display:block;font:400 2.3rem var(--serif)}.history-stats span{font-size:.875rem;line-height:1.5;color:var(--muted)}
.notifications-layout{display:grid;grid-template-columns:1fr 350px;gap:1rem}.notification-list{background:white;border:1px solid var(--line)}.notification-item{padding:1rem 1.2rem;border-bottom:1px solid var(--soft-line);display:grid;grid-template-columns:9px 1fr auto;gap:.8rem;align-items:start}.notification-item i{width:7px;height:7px;margin-top:.45rem;border-radius:50%;background:var(--line)}.notification-item.unread i{background:var(--raspberry)}.notification-item h3{font-size:.875rem;margin:0}.notification-item p{color:var(--muted);font-size:.875rem;line-height:1.5}.notification-item time{font-size:.75rem;color:var(--muted)}.notification-item button{min-height:40px;border:0;background:transparent;color:var(--raspberry-dark);font-size:.875rem;cursor:pointer}
.settings-panel{padding:1.2rem}.settings-panel h3{font:400 1.2rem var(--serif);margin:0 0 1rem}.form-switch{display:flex;justify-content:space-between;gap:1rem;padding:.9rem 0;border-bottom:1px solid var(--soft-line)}.form-switch strong{display:block;font-size:.875rem}.form-switch small{display:block;color:var(--muted);font-size:.875rem;line-height:1.45;margin-top:.2rem}.form-switch input{width:20px;height:20px;accent-color:var(--raspberry)}
.profile-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:1rem}.profile-form{padding:1.3rem}.profile-form fieldset{border:0;padding:0;margin:0 0 1.8rem}.profile-form legend{width:100%;padding:0 0 .7rem;border-bottom:1px solid var(--line);font:400 1.2rem var(--serif)}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem}.profile-form label{font-size:.875rem;font-weight:700}.profile-form input,.profile-form select,.profile-form textarea{width:100%;min-height:46px;border:1px solid var(--line);background:white;padding:.7rem;margin-top:.4rem;color:var(--ink)}.profile-form textarea{resize:vertical}.profile-form button[type="submit"],.save-button{min-height:44px;border:0;background:var(--raspberry);color:white;padding:.75rem 1.1rem;font-weight:700;font-size:.875rem;cursor:pointer}.consent-panel{padding:1.2rem}.consent-panel h3{font:400 1.2rem var(--serif);margin:0}.consent-panel>p{font-size:.875rem;color:var(--muted);line-height:1.6}.account-danger{margin-top:1rem;padding:1.2rem;border:1px solid #edc8ca;background:#fff8f7}.account-danger h3{font:400 1.1rem var(--serif);margin:0}.account-danger p{font-size:.875rem;line-height:1.55;color:var(--muted)}.account-danger button{min-height:44px;border:1px solid var(--danger);background:white;color:var(--danger);padding:.65rem;font-size:.875rem;cursor:pointer}

.toast-region{position:fixed;z-index:300;right:1rem;bottom:1rem;display:grid;gap:.5rem}.toast{max-width:380px;padding:.9rem 1rem;border-left:3px solid var(--mint);background:var(--plum-900);color:white;box-shadow:var(--shadow);font-size:.875rem;line-height:1.45}.toast.error{border-color:var(--danger)}
.aya-dialog{width:min(560px,calc(100% - 2rem));max-height:85vh;border:1px solid var(--line);padding:1.5rem;background:white;color:var(--ink);box-shadow:0 30px 90px rgba(44,16,38,.25)}.aya-dialog::backdrop{background:rgba(44,16,38,.55)}.dialog-close{position:absolute;right:.7rem;top:.7rem;border:0;background:var(--rose-50);width:32px;height:32px;cursor:pointer}.aya-dialog h2{font:400 1.7rem var(--serif);margin:.2rem 0 1rem}.dialog-actions{display:flex;gap:.5rem;margin-top:1.2rem}.dialog-actions button{border:1px solid var(--line);background:white;padding:.65rem .85rem;cursor:pointer}.dialog-actions .danger{background:var(--danger);border-color:var(--danger);color:white}
.sidebar-scrim{display:none}
html[data-discreet="true"] .participant-topbar h1,html[data-discreet="true"] .page-intro h2{filter:blur(6px);transition:.2s}html[data-discreet="true"] .participant-topbar h1:hover,html[data-discreet="true"] .participant-topbar h1:focus,html[data-discreet="true"] .page-intro h2:hover{filter:none}

@media(max-width:1100px){
  .app-shell{grid-template-columns:76px minmax(0,1fr)}.participant-sidebar{width:76px;padding:1.4rem .7rem}.participant-sidebar .participant-brand{margin:0 auto 2rem}.participant-sidebar .participant-brand span,.participant-sidebar nav span,.nav-label,.sidebar-bottom span{display:none}.participant-sidebar nav a{justify-content:center;padding:0}.sidebar-bottom button{justify-content:center}.participant-workspace{grid-column:2}.home-grid{grid-template-columns:1fr}.activity-strip{grid-column:auto}.catalog-layout{grid-template-columns:1fr}.detail-rail{position:static}.ask-layout{grid-template-columns:1fr 230px}.profile-grid{grid-template-columns:1fr 300px}
}
@media(max-width:900px){
  .ask-layout,.profile-grid,.notifications-layout,.history-layout{grid-template-columns:1fr}.conversation-rail{min-height:0}.rail-list{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}.history-stats{order:-1}.clinic-list,.expert-list{grid-template-columns:1fr}.profile-grid>div{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:start}.account-danger{margin-top:0}
}
@media(max-width:760px){
  .app-shell{display:block}.participant-workspace{display:flex}.participant-sidebar{width:min(310px,88vw);padding:1.4rem 1rem;transform:translateX(-105%);transition:transform .22s}.participant-sidebar.open{transform:none}.participant-sidebar .participant-brand{margin:0 .6rem 1.7rem}.participant-sidebar .participant-brand span,.participant-sidebar nav span,.nav-label,.sidebar-bottom span{display:flex}.participant-sidebar nav a{justify-content:start;padding:0 .75rem}.sidebar-bottom button{justify-content:start}.sidebar-scrim{position:fixed;z-index:90;inset:0;border:0;background:rgba(44,16,38,.52)}.participant-sidebar.open + .sidebar-scrim{display:block}.menu-button{display:block;width:44px;height:44px;border:1px solid var(--line);background:white;padding:9px}.menu-button i{display:block;height:1px;background:var(--ink);margin:5px}.participant-topbar{padding:1rem;justify-content:start;gap:.8rem}.participant-topbar h1{font-size:1.35rem}.topbar-context{margin-left:auto}.tenant-context{display:none}.participant-main{padding:1.3rem 1rem 2rem}.page-intro{display:block}.page-intro>p{display:none}.participant-footer{padding:1rem;display:block}.participant-footer a{display:block;margin-top:.3rem}.welcome-surface{min-height:390px}.care-constellation{opacity:.3}.activity-strip{grid-template-columns:1fr}.activity-column+.activity-column{border-left:0;border-top:1px solid var(--line)}.ask-layout{display:block}.conversation-rail{margin-top:1rem}.rail-list{display:block}.chat-mode-bar{align-items:stretch;flex-wrap:wrap}.mode-switch{flex:1}.mode-switch button{flex:1}.privacy-chip{width:100%;padding:.35rem .2rem 0}.chat-surface{min-height:600px}.message{max-width:92%}.catalog-list,.clinic-list,.expert-list{grid-template-columns:1fr}.toolbar{display:grid}.toolbar select{min-width:0}.history-layout,.notifications-layout,.profile-grid{grid-template-columns:1fr}.history-row{grid-template-columns:1fr}.history-actions{justify-content:start;flex-wrap:wrap}.profile-grid>div{display:block}.field-grid{grid-template-columns:1fr}.login-canvas{display:block}.login-story{min-height:470px;padding:2rem 1.3rem}.story-copy{margin-top:4rem}.story-copy h1{font-size:3.4rem}.constellation-login{opacity:.3}.login-form-panel{padding:5rem 1.3rem 3rem}.back-home{top:1.5rem;left:1.3rem}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* Registration leaves the split editorial composition before it constrains the form. */
@media (max-width: 900px) {
  .participant-register .login-canvas { display: block; }
  .participant-register .login-story {
    position: relative;
    height: auto;
    min-height: 430px;
    padding: 2rem clamp(1.3rem, 5vw, 3rem);
  }
  .participant-register .story-copy { max-width: 600px; margin: 3.2rem 0 2.5rem; }
  .participant-register .story-copy h1 { font-size: clamp(3.4rem, 10vw, 5rem); }
  .participant-register .constellation-login { right: -210px; bottom: -250px; opacity: .24; }
  .participant-register .constellation-node { display: none; }
  .participant-register .login-form-panel { padding: 5rem clamp(1.3rem, 8vw, 5rem) 4rem; }
}

@media (max-width: 500px) {
  .participant-register .login-story { min-height: 440px; }
  .participant-register .constellation-login { right: -235px; bottom: -275px; opacity: .2; }
}
.participant-app button,.participant-app .primary,.participant-app .new-chat,.participant-app .history-actions a,.participant-app .prompt-list button,.participant-app .tag-row span{border-radius:3rem}
