/* Product features: weekly situation, postcards, partners and booking, host mode,
   plans, account, help, legal, notifications and onboarding. Tokens only. */

/* ── Shared bits ──────────────────────────────────────────────────── */
.btn-moss{background:var(--moss);border-color:var(--moss);color:var(--on-moss)}
.btn-moss:hover{background:color-mix(in srgb,var(--moss) 88%,var(--ink))}
.btn-moss.is-on{background:transparent;color:var(--moss)}
.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}
.btn-danger:hover{background:color-mix(in srgb,var(--danger) 88%,#000)}
.btn:disabled{opacity:.45;cursor:default}
.danger-link,.text-btn.danger-link{color:var(--danger)}
.plus-tag{padding:1px 7px;border-radius:var(--r-pill);background:var(--sun-soft);color:var(--sun);font-style:normal;font-size:11px;font-weight:700}
.dot-live{display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:var(--live);vertical-align:1px}
.field select,.field textarea{font-size:var(--t-md);font-weight:500;color:var(--ink)}
.field textarea{
  width:100%;padding:10px 12px;resize:vertical;min-height:84px;
  border:1px solid var(--line-strong);border-radius:var(--r-sm);background:transparent;font:inherit;font-size:var(--t-sm)
}
.field textarea:focus{outline:0;border-color:var(--ink)}
.check-row{display:flex;align-items:center;gap:10px;margin-top:14px;font-size:var(--t-sm)}
.check-row input,.report-reasons input{accent-color:var(--ink);width:16px;height:16px}
.tag-row em{font-style:normal;color:var(--muted);margin-left:2px}
.seg{display:inline-flex;padding:3px;border-radius:var(--r-sm);background:var(--paper-2)}
.seg button{min-height:34px;padding:0 14px;border:0;border-radius:4px;background:transparent;color:var(--muted);font-size:var(--t-sm);font-weight:600}
.seg button[aria-pressed="true"]{background:var(--cream);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.chip[aria-pressed="true"]:not(.active){color:var(--ink);box-shadow:inset 0 -1px 0 var(--ink)}
.chat-compose{grid-template-columns:1fr auto auto auto}
.chat-compose.is-locked{opacity:.5}
.chat-gate{display:grid;gap:4px;margin:0 12px 10px;padding:14px 16px;border-radius:var(--r-sm);background:var(--paper-2);font-size:var(--t-sm)}
.chat-gate span{color:var(--muted);font-size:var(--t-xs);line-height:1.55}
.chat-gate div{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.voice-bubble{display:flex;align-items:center;gap:10px}
.voice-bubble audio{height:32px;max-width:220px}
.voice-bubble>span:last-child{font-size:var(--t-xs);opacity:.75;font-variant-numeric:tabular-nums}
.real-messages .voice-bubble{flex-wrap:wrap}
.real-messages .voice-bubble audio{width:220px;max-width:100%}
.voice-wave{display:block;width:120px;height:20px;background:repeating-linear-gradient(90deg,currentColor 0 2px,transparent 2px 5px);-webkit-mask:linear-gradient(0deg,transparent 20%,#000 20% 80%,transparent 80%);opacity:.6}

/* Topbar: bell and plan badge */
.bell-btn{position:relative}
.bell-count{
  position:absolute;right:2px;top:2px;min-width:16px;height:16px;padding:0 4px;display:grid;place-items:center;
  border-radius:var(--r-pill);background:var(--accent);color:#fff;font-size:10px;font-weight:700;font-variant-numeric:tabular-nums
}
.bell-count[hidden]{display:none}
.plan-badge{margin-left:4px;padding:1px 6px;border-radius:var(--r-pill);background:var(--sun-soft);color:var(--sun);font-style:normal;font-size:10px;font-weight:700;vertical-align:1px}
.plan-badge[hidden]{display:none}

/* ── Notifications ────────────────────────────────────────────────── */
.notify-panel{
  position:fixed;z-index:90;top:calc(var(--topbar) - 6px);right:var(--gutter);width:min(380px,calc(100vw - 32px));
  display:grid;gap:8px;padding:16px;border:1px solid var(--line);border-radius:var(--r-lg);
  background:var(--cream);box-shadow:var(--shadow-2);animation:modalIn .2s var(--ease)
}
.notify-panel[hidden]{display:none}
.notify-head{display:flex;justify-content:space-between;align-items:center}
.notify-head strong{font-size:var(--t-md)}
.notify-limit{font-size:var(--t-xs);color:var(--muted);padding-bottom:6px;border-bottom:1px solid var(--line)}
.notify-list{display:grid;margin:0;padding:0;list-style:none;max-height:360px;overflow:auto}
.notify-list li button{
  width:100%;display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:start;padding:10px 6px;
  border:0;border-radius:var(--r-sm);background:none;text-align:left
}
.notify-list li button:hover{background:var(--paper-2)}
.notify-list li button span:last-child{display:grid;gap:2px}
.notify-list strong{font-size:var(--t-sm);font-weight:600;line-height:1.35}
.notify-list small{font-size:var(--t-xs);color:var(--muted);line-height:1.45}
.notify-list li:not(.is-unread) strong{font-weight:500;color:var(--ink-2)}
.notify-list li.is-unread button{box-shadow:inset 2px 0 0 var(--accent)}
.note-dot{width:34px;height:34px;border-radius:50%;background:var(--paper-2);position:relative}
.note-dot::after{content:"";position:absolute;inset:13px;border-radius:50%;background:var(--accent)}
.notify-empty{padding:18px 6px;font-size:var(--t-sm);color:var(--muted)}
.notify-settings{justify-self:start;border:0;background:none;padding:6px 0 0;color:var(--muted);font-size:var(--t-xs);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.push{
  position:fixed;z-index:150;top:calc(var(--topbar) + 12px);right:var(--gutter);width:min(400px,calc(100vw - 32px));
  display:grid;grid-template-columns:auto 1fr;gap:10px 12px;align-items:start;padding:14px;
  border:1px solid var(--line);border-radius:var(--r-lg);background:var(--cream);box-shadow:var(--shadow-2);animation:toastIn .25s var(--ease)
}
.push[hidden]{display:none}
.push-copy{display:grid;gap:2px}
.push-copy strong{font-size:var(--t-sm);line-height:1.35}
.push-copy span{font-size:var(--t-xs);color:var(--muted);line-height:1.45}
.push-actions{grid-column:2;display:flex;align-items:center;gap:6px}
.push-actions .icon-btn{width:32px;height:32px}
.push-actions .i{width:15px;height:15px}

/* ── World: this week's situation ─────────────────────────────────── */
.week-band{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:40px;margin:0 0 64px;padding:32px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.week-main h2{margin:8px 0 6px;font-family:var(--serif);font-size:clamp(30px,2.6vw,40px);font-weight:600;letter-spacing:-.015em;line-height:1.05}
.week-why{color:var(--muted);font-size:var(--t-sm);line-height:1.6}
.week-steps{display:grid;margin:20px 0 0;padding:0;list-style:none;counter-reset:w}
.week-steps li{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:14px;padding:12px 0;border-top:1px solid var(--line)}
.week-check{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;border:1px dashed var(--line-strong)}
.week-steps li.is-done .week-check{border:0;background:var(--moss-soft);color:var(--moss)}
.week-check .i{width:13px;height:13px;stroke-width:2.2}
.week-step-copy{display:grid;gap:1px;min-width:0}
.week-step-copy strong{font-size:var(--t-sm);font-weight:600}
.week-step-copy small{font-size:var(--t-xs);color:var(--muted)}
.week-steps li.is-done strong{color:var(--muted);font-weight:500}
.week-done{font-size:var(--t-xs);font-weight:600;color:var(--moss)}
.week-foot{display:flex;align-items:center;gap:14px;margin-top:16px}
.week-stamp{
  width:52px;height:52px;flex:0 0 auto;display:grid;place-items:center;border-radius:50%;
  border:1px dashed var(--line-strong);color:var(--muted);transform:rotate(-8deg);font-size:var(--t-sm);font-variant-numeric:tabular-nums
}
.week-stamp b{font-weight:700}
.week-stamp.is-stamped{border:2px solid var(--moss);color:var(--moss)}
.week-stamp .i{width:22px;height:22px;stroke-width:2}
.week-foot p{font-size:var(--t-sm);color:var(--muted);line-height:1.5}
.week-foot p strong{color:var(--ink)}
.week-postcards-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px}
.pc-strip{display:grid;gap:10px}
.pc-mini{
  display:grid;grid-template-columns:88px 1fr;gap:14px;align-items:center;padding:8px;
  border:1px solid var(--line);border-radius:var(--r-lg);background:var(--cream);text-align:left;
  transition:border-color var(--dur) var(--ease)
}
.pc-mini:hover{border-color:var(--line-strong)}
.pc-mini-img{height:72px;border-radius:var(--r-sm);background:var(--paper-3) center/cover no-repeat}
/* minmax(0,1fr): a long one-line place (AI partners name a street corner) is cut with an ellipsis instead of widening the page. */
.pc-mini-copy{display:grid;grid-template-columns:minmax(0,1fr);gap:3px;min-width:0}
.pc-mini-host{display:flex;align-items:center;gap:6px;font-size:var(--t-xs);color:var(--muted)}
.pc-mini-copy strong{font-family:var(--serif);font-size:19px;font-weight:600;line-height:1.15;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.pc-mini-copy small{font-size:var(--t-xs);color:var(--accent);font-weight:600}
.now-quiet{display:block;margin-top:8px;font-size:var(--t-xs);line-height:1.5;color:var(--muted)}
.now-quiet b{color:var(--ink)}
.now-quiet-actions{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:6px}
.now-quiet-actions .text-btn{font-size:var(--t-xs)}

/* ── Postcards page ───────────────────────────────────────────────── */
.pc-quota{font-size:var(--t-sm);color:var(--muted);text-align:right}
.pc-quota b{color:var(--ink)}
.pc-quota .text-btn{font-size:var(--t-sm)}
.pc-tabs{margin-bottom:24px}
.pc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.pc-card{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--cream);overflow:hidden;transition:box-shadow .4s var(--ease)}
.pc-card.is-focus{box-shadow:0 0 0 2px var(--accent)}
.pc-media{position:relative;aspect-ratio:16/10;background:var(--paper-3) center/cover no-repeat}
.pc-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(10,11,9,.55))}
.pc-place{position:absolute;z-index:1;left:14px;bottom:12px;color:#fff;font-size:var(--t-sm);font-weight:600}
.pc-time{position:absolute;z-index:1;right:12px;top:12px;padding:4px 9px;border-radius:var(--r-pill);background:rgba(19,20,17,.66);color:#fff;font-size:var(--t-xs)}
.pc-body{display:flex;flex-direction:column;gap:12px;padding:16px 18px 18px;flex:1}
.pc-host{display:flex;align-items:center;gap:8px;font-size:var(--t-sm)}
.pc-host span:last-child{margin-left:auto;font-size:var(--t-xs);color:var(--muted)}
.pc-player{display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:10px}
.pc-play{width:36px;height:36px;display:grid;place-items:center;border:0;border-radius:50%;background:var(--action);color:var(--on-action)}
.pc-play .i{width:15px;height:15px}
.pc-bar{height:3px;border-radius:var(--r-pill);background:var(--paper-3);overflow:hidden}
.pc-bar i{display:block;width:0;height:100%;background:var(--accent);transition:width .1s linear}
.pc-dur{font-size:var(--t-xs);color:var(--muted);font-variant-numeric:tabular-nums}
.pc-transcript{font-size:var(--t-sm);line-height:1.65;color:var(--muted)}
.pc-transcript span{transition:color .2s}
.pc-transcript span.is-said{color:var(--ink)}
.pc-translation{margin-top:-6px;font-size:var(--t-xs);color:var(--muted);font-style:italic;line-height:1.5}
.pc-question{font-family:var(--serif);font-size:21px;font-weight:600;line-height:1.2}
.pc-foot{display:flex;align-items:center;gap:12px;margin-top:auto;padding-top:4px}
.pc-foot>span{font-size:var(--t-xs);color:var(--muted)}
.pc-foot .text-btn{margin-left:auto;font-size:var(--t-xs)}
.pc-reply{display:grid;gap:8px;margin-top:auto;padding-top:12px;border-top:1px solid var(--line)}
.pc-note{display:grid;grid-template-columns:auto 1fr;gap:10px;padding:10px 12px;border-radius:var(--r-sm);background:var(--accent-soft)}
.pc-note p{font-size:var(--t-sm);line-height:1.5}
.pc-wait{font-size:var(--t-xs);color:var(--muted)}
.pc-reply .text-btn{justify-self:start;font-size:var(--t-xs)}
.pc-empty{grid-column:1/-1;padding:40px 0;color:var(--muted)}

/* ── AI partners: a calm role word after the name, never a badge ─── */
.who{display:inline-flex;align-items:baseline;min-width:0}
.role{font-weight:500;color:var(--muted);white-space:nowrap}
.role::before{content:"·";margin:0 5px 0 5px;color:var(--line-strong)}
.pc-host strong .who{margin-left:0;font-size:inherit;color:inherit}
.pc-host strong .role{margin-left:0;font-size:inherit;color:var(--muted)}
.pc-mini-who{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pc-mini-host .role::before{margin:0 4px}
.has-tip{position:relative;cursor:help;outline-offset:2px}
.has-tip:hover::after,.has-tip:focus-visible::after{content:attr(data-tip);position:absolute;left:0;top:calc(100% + 6px);z-index:5;width:max-content;max-width:240px;padding:7px 9px;border-radius:var(--r-sm);background:var(--ink);color:var(--paper);font-family:var(--font);font-size:11.5px;font-weight:500;line-height:1.4;white-space:normal}
.pc-typed{font-size:var(--t-sm);line-height:1.55;color:var(--ink-2)}
.pc-note-copy{display:grid;gap:8px;min-width:0}
.pc-fixes{display:grid;gap:6px;margin:0;padding:0;list-style:none;font-size:var(--t-sm);line-height:1.45}
.pc-fixes .pc-fix-said{color:var(--muted)}
.pc-fixes small{display:block;font-size:var(--t-xs);color:var(--muted)}
.pc-follow{font-weight:600}
.ai-answer-q{margin:4px 0 14px;font-family:var(--serif);font-size:21px;font-weight:600;line-height:1.22}
.ai-answer-voice{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding-bottom:18px;margin-bottom:16px;border-bottom:1px solid var(--line)}
.ai-answer-or{font-size:var(--t-xs);font-weight:600;letter-spacing:.02em;color:var(--muted)}
.ai-answer{display:grid;gap:10px}
.ai-answer textarea{width:100%;min-height:120px;padding:12px 14px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--paper);color:var(--ink);font:inherit;font-size:16px;line-height:1.55;resize:vertical}
.ai-answer textarea:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:transparent}
.ai-answer-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.ai-answer-hint{font-size:var(--t-xs);color:var(--muted)}
.ai-answer-row [type=submit]{margin-left:auto}

/* ── Voice recorder and review ────────────────────────────────────── */
.voice-context{margin:0 0 6px;font-family:var(--serif);font-size:20px;font-weight:600;line-height:1.25;color:var(--ink-2)}
.voice-stage{display:grid;justify-items:center;gap:10px;padding:22px 0 8px}
.voice-btn{
  width:76px;height:76px;display:grid;place-items:center;border:0;border-radius:50%;
  background:var(--action);color:var(--on-action);transition:background var(--dur) var(--ease),transform var(--dur) var(--ease)
}
.voice-btn .i{width:26px;height:26px}
.voice-btn:hover{transform:scale(1.03)}
.voice-btn.is-recording{background:var(--danger);animation:recPulse 1.6s ease-in-out infinite}
@keyframes recPulse{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--danger) 35%,transparent)}50%{box-shadow:0 0 0 12px transparent}}
.voice-meter{display:flex;align-items:center;gap:3px;height:40px}
.voice-meter i{display:block;width:3px;height:4px;border-radius:2px;background:var(--ink-2);transition:height .09s linear}
.voice-time{font-size:var(--t-sm);font-variant-numeric:tabular-nums;font-weight:600}
.voice-hint{font-size:var(--t-xs);color:var(--muted);text-align:center}
#voicePlayback{width:100%;margin:6px 0 12px}
.voice-modal .modal-actions{margin-top:14px}
.review-context{margin-top:6px;font-size:var(--t-xs);font-weight:600;color:var(--accent)}
.review-modal h2{font-size:26px}
.review-answer{margin:14px 0 20px;padding:14px 16px;border-radius:var(--r-sm);background:var(--moss-soft);font-family:var(--serif);font-size:22px;font-weight:600;line-height:1.25;color:var(--ink)}
.review-modal .modal-actions{margin-top:20px}

/* ── People and partners ──────────────────────────────────────────── */
.partners-block{margin:-10px 0 40px;padding:22px 24px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--cream)}
.partners-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}
.partners-head h2{font-size:var(--t-lg);font-weight:600;letter-spacing:-.02em}
.partners-list{display:grid}
.partner-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:14px 0;border-top:1px solid var(--line)}
.partner-card:first-child{border-top:0}
.avatar-lg{width:52px;height:52px;font-size:14px}
.partner-copy{display:grid;gap:2px}
.partner-copy strong{font-size:var(--t-md);font-weight:600}
.partner-copy span,.partner-copy small{font-size:var(--t-xs);color:var(--muted)}
.partner-copy small{color:var(--moss);font-weight:600}
.partner-actions{display:flex;align-items:center;gap:14px}
.partner-actions .text-btn{font-size:var(--t-xs)}
.partners-empty{max-width:720px;font-size:var(--t-sm);line-height:1.6;color:var(--muted)}
.partners-empty b{color:var(--ink)}
.filter-group{display:grid;gap:12px;padding-top:14px;border-top:1px solid var(--line)}
.filter-group-label{display:flex;align-items:center;gap:8px;font-size:var(--t-xs);font-weight:700;color:var(--ink)}
.filter-group-label em{font-style:normal;font-weight:600;color:var(--moss)}
.filter-group-label em.plus-tag{color:var(--sun)}
html:not([data-plan="plus"]) [data-plus]{color:var(--muted)}

.person-card{display:flex;flex-direction:column;align-items:stretch;gap:12px;padding:22px 0}
.person-top{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center}
.person-top .avatar{position:relative}
.online-dot{position:absolute;right:1px;bottom:1px;width:12px;height:12px;border-radius:50%;background:var(--live);border:2px solid var(--paper)}
.person-id{display:grid;gap:2px;min-width:0}
.person-id h2{font-size:var(--t-xl);font-weight:600;letter-spacing:-.035em;line-height:1.1}
.person-id p{font-size:var(--t-sm);color:var(--muted)}
.person-title{flex-wrap:wrap}
.welcome-tag{padding:2px 8px;border-radius:var(--r-pill);background:var(--sky-soft);color:var(--sky);font-size:11px;font-weight:700}
.person-rating{display:flex;align-items:center;gap:4px}
.person-rating .i{width:14px;height:14px;color:var(--sun);fill:var(--sun);stroke:var(--sun)}
.person-rating b{color:var(--ink);font-weight:600}
.fav-btn{color:var(--muted)}
.fav-btn[aria-pressed="true"]{color:var(--accent)}
.fav-btn[aria-pressed="true"] .i{fill:currentColor}
.person-quote{margin:0;padding-left:14px;border-left:1px solid var(--accent);font-family:var(--serif);font-size:19px;font-weight:600;line-height:1.3;color:var(--ink-2)}
.person-card .tag-row{margin-top:0}
.tag-row .tag-topic{background:transparent;box-shadow:inset 0 0 0 1px var(--line);color:var(--muted)}
.person-foot{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
.person-next{font-size:var(--t-sm);color:var(--muted)}
.person-next b{color:var(--moss)}
.person-card .person-actions{display:flex;align-items:center;gap:10px;min-width:0}
.people-empty{padding:28px 0;font-size:var(--t-sm);color:var(--muted);border-top:1px solid var(--line)}
.people-empty[hidden]{display:none}
.person-reviews{display:grid;gap:10px;margin-bottom:20px}
.person-reviews .tag-row{margin-top:0}
.person-reviews blockquote{margin:0;padding-left:12px;border-left:1px solid var(--accent);font-family:var(--serif);font-size:18px;font-weight:600;line-height:1.3}
.person-slots{display:grid;gap:4px;font-size:var(--t-sm)}
#availableNowBtn[aria-pressed="true"]{border-color:var(--moss);background:var(--moss-soft);color:var(--moss)}

/* ── Booking ──────────────────────────────────────────────────────── */
.booking-modal{width:min(620px,95vw);max-height:94vh;overflow:auto;display:grid;gap:10px}
.book-head{display:flex;align-items:center;gap:16px;margin-bottom:8px;padding-right:30px}
.book-head h2{margin:2px 0}
.book-head p{font-size:var(--t-xs);color:var(--muted)}
.booking-modal>.label{margin-top:8px}
.booking-modal .label em{font-style:normal;font-weight:500}
.day-strip{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(52px,1fr);gap:6px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}
.day-btn{
  display:grid;justify-items:center;gap:1px;padding:8px 0;border:1px solid var(--line);border-radius:var(--r-sm);background:transparent;
  transition:border-color var(--dur) var(--ease)
}
.day-btn small{font-size:11px;color:var(--muted)}
.day-btn b{font-size:var(--t-md);font-weight:600}
.day-btn i{font-style:normal;font-size:11px;color:var(--moss);font-weight:700}
.day-btn[data-empty] i{color:var(--muted);font-weight:500}
.day-btn[data-empty]:not(.is-locked) b{color:var(--muted)}
.day-btn:hover{border-color:var(--line-strong)}
.day-btn[aria-pressed="true"]{border-color:var(--ink);background:var(--paper-2)}
.day-btn.is-locked{background:var(--paper-2);border-color:transparent;opacity:.7}
.day-btn.is-locked .i{width:12px;height:12px;color:var(--sun)}
.book-lock{padding:10px 12px;border-radius:var(--r-sm);background:var(--sun-soft);color:var(--ink);font-size:var(--t-xs);line-height:1.5}
.book-lock[hidden]{display:none}
.book-lock .text-btn{font-size:var(--t-xs)}
.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:6px;min-height:44px}
.slot-btn{display:grid;justify-items:center;padding:10px 0;border:1px solid var(--line);border-radius:var(--r-sm);background:transparent;font-size:var(--t-sm);font-weight:600;font-variant-numeric:tabular-nums}
.slot-btn small{font-size:10px;font-weight:500;color:var(--muted)}
.slot-btn:disabled{color:var(--muted);text-decoration:line-through;cursor:default;background:var(--paper-2);border-color:transparent}
.slot-btn[aria-pressed="true"]{border-color:var(--ink);background:var(--action);color:var(--on-action)}
.slot-empty{grid-column:1/-1;font-size:var(--t-sm);color:var(--muted)}
.book-options{display:flex;align-items:end;gap:18px;flex-wrap:wrap;margin-top:6px}
.book-options .field{flex:1;min-width:200px;margin-top:0}
.book-weekly{padding:12px 0;border-top:1px solid var(--line)}
.booking-modal .modal-actions{margin-top:6px}

/* ── Upsell, report, confirm ──────────────────────────────────────── */
.upsell-list{display:grid;gap:8px;margin:16px 0;padding:0;list-style:none;font-size:var(--t-sm)}
.upsell-list li{display:flex;gap:10px}
.upsell-list li::before{content:"";flex:0 0 auto;width:6px;height:6px;margin-top:8px;border-radius:50%;background:var(--sun)}
.upsell-fine{margin-bottom:20px;font-size:var(--t-xs);color:var(--muted);line-height:1.55}
.report-modal{max-height:94vh;overflow:auto}
.report-reasons{display:grid;gap:4px;margin:16px 0 0;padding:0;border:0}
.report-reasons label{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid var(--line);border-radius:var(--r-sm);font-size:var(--t-sm);cursor:pointer}
.report-reasons label:has(input:checked){border-color:var(--ink);background:var(--paper-2)}
.report-modal .modal-actions,.confirm-modal .modal-actions,.upsell-modal .modal-actions{margin-top:22px}
.confirm-demo{margin-top:12px;padding:8px 12px;border-radius:var(--r-sm);background:var(--sun-soft);color:var(--sun);font-size:var(--t-xs);font-weight:600}
.confirm-demo[hidden]{display:none}

/* ── Session: recording, safety, lobby prep ───────────────────────── */
.rec-state{display:inline-flex;align-items:center;gap:6px;font-size:var(--t-xs);color:var(--muted)}
.rec-state::before{content:"";width:8px;height:8px;border-radius:50%;border:1px solid var(--muted)}
.rec-state[data-on="true"]{color:var(--danger);font-weight:600}
.rec-state[data-on="true"]::before{border:0;background:var(--danger);animation:recBlink 2s ease-in-out infinite}
@keyframes recBlink{50%{opacity:.35}}
.safety-menu{
  position:absolute;z-index:6;left:16px;top:60px;width:min(320px,calc(100% - 32px));
  display:grid;padding:6px;border-radius:var(--r-lg);background:var(--cream);color:var(--ink);box-shadow:var(--shadow-2)
}
.safety-menu[hidden]{display:none}
.safety-menu button{display:grid;grid-template-columns:22px 1fr;gap:10px;align-items:start;padding:10px;border:0;border-radius:var(--r-sm);background:none;text-align:left}
.safety-menu button:hover{background:var(--paper-2)}
.safety-menu button span{display:grid;gap:1px}
.safety-menu strong{font-size:var(--t-sm)}
.safety-menu small{font-size:var(--t-xs);color:var(--muted)}
.safety-menu [data-safety="report"] .i,.safety-menu [data-safety="block"] .i{color:var(--danger)}
.lobby-prep ul{display:grid;gap:6px;margin:8px 0 0;padding:0;list-style:none}
.lobby-prep li{padding:7px 12px;border-radius:var(--r-sm);background:var(--paper-2);font-size:var(--t-sm)}
.lobby-consent{display:grid;gap:4px;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.lobby-consent small{font-size:var(--t-xs);color:var(--muted);line-height:1.5}
.lobby-body{overflow:auto;max-height:92vh}

/* ── Recap ────────────────────────────────────────────────────────── */
.recap-modal{width:min(560px,95vw);max-height:94vh;overflow:auto}
.recap-stamp{display:flex;align-items:center;gap:12px;margin-top:12px;padding:12px 14px;border:1px solid var(--moss);border-radius:var(--r-sm);text-align:left}
.recap-stamp[hidden]{display:none}
.recap-stamp>span:last-child{display:grid;gap:1px}
.recap-stamp strong{font-size:var(--t-sm)}
.recap-stamp small{font-size:var(--t-xs);color:var(--muted)}
.stamp-mark{width:40px;height:40px;flex:0 0 auto;display:grid;place-items:center;border-radius:50%;border:2px solid var(--moss);color:var(--moss);transform:rotate(-8deg)}
.recap-notes{display:grid;gap:10px;margin-top:16px;text-align:left}
.recap-notes:empty{display:none}
.recap-corrections{display:grid;margin:0;padding:0;list-style:none}
.recap-corrections li{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--line);font-size:var(--t-sm)}
.recap-corrections small{font-size:11px;color:var(--muted)}
.recap-locked{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;border-radius:var(--r-sm);background:var(--sun-soft);font-size:var(--t-xs)}
.recap-locked .i{width:14px;height:14px;color:var(--sun)}
.recap-locked span{flex:1;min-width:180px}
.recap-locked .text-btn,.recap-plus .text-btn{font-size:var(--t-xs)}
.recap-plus{display:grid;gap:6px;padding:10px 12px;border-radius:var(--r-sm);background:var(--moss-soft);font-size:var(--t-sm)}
.recap-keep,.recap-norec{font-size:var(--t-xs);color:var(--muted)}
.recap-rate{display:grid;justify-items:center;gap:8px;margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.stars{display:flex;gap:4px}
.stars button{width:40px;height:40px;display:grid;place-items:center;border:0;background:none;color:var(--line-strong)}
.stars button .i{width:26px;height:26px}
.stars button.on{color:var(--sun)}
.stars button.on .i{fill:currentColor}
.rate-tags{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
.rate-tags .chip{padding:6px 12px;border:1px solid var(--line);border-radius:var(--r-pill);font-size:var(--t-xs)}
.rate-tags .chip.active{border-color:var(--ink);box-shadow:none;background:var(--paper-2)}
.rate-help{width:100%;font-size:var(--t-xs);color:var(--muted)}
.rate-help .text-btn{font-size:var(--t-xs)}
.recap-weekly{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;margin-top:16px;padding:14px;border-radius:var(--r-sm);background:var(--paper-2);text-align:left;font-size:var(--t-sm);line-height:1.5}
.recap-weekly[hidden]{display:none}
.recap-weekly>.i{color:var(--moss)}
.recap-weekly span{color:var(--muted)}
.recap-weekly strong{color:var(--ink)}
.recap-modal .modal-actions{flex-wrap:wrap;align-items:center}
.recap-report{margin-right:auto;color:var(--muted);font-size:var(--t-xs)}

/* ── Host mode ────────────────────────────────────────────────────── */
.host-level-pill{padding:9px 14px;border-radius:var(--r-pill);background:var(--moss-soft);color:var(--moss);font-size:var(--t-xs);font-weight:700}
.host-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:start}
.host-grid .panel{padding:24px}
.host-grid h2{margin:6px 0 12px;font-size:var(--t-xl);font-weight:600;letter-spacing:-.035em;line-height:1.15}
.host-now{grid-row:span 2;display:grid;gap:14px;border-color:var(--moss)}
.host-now h2{margin-bottom:0}
.host-where{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.host-where-opt{display:grid;justify-items:center;gap:6px;padding:12px 4px;border:1px solid var(--line);border-radius:var(--r-sm);background:transparent;font-size:var(--t-xs);font-weight:600}
.host-where-opt[aria-pressed="true"]{border-color:var(--moss);background:var(--moss-soft);color:var(--moss)}
.outdoor-rule{padding:10px 12px;border-radius:var(--r-sm);background:var(--sun-soft);font-size:var(--t-xs);line-height:1.55}
.outdoor-rule[hidden]{display:none}
.host-waiting{font-size:var(--t-sm);color:var(--muted)}
.host-waiting b{color:var(--ink)}
.host-next{display:grid;gap:12px;padding-top:14px;border-top:1px solid var(--line)}
.host-next[hidden]{display:none}
.host-searching{display:flex;align-items:center;gap:10px;font-size:var(--t-sm);color:var(--muted)}
.host-searching i{width:10px;height:10px;border-radius:50%;background:var(--moss);animation:recBlink 1.2s ease-in-out infinite}
.host-match{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center}
.host-match div{display:grid;gap:1px}
.host-match span,.host-match small{font-size:var(--t-xs);color:var(--muted)}
.host-match small{color:var(--moss);font-weight:600}
.host-match-actions{display:flex;gap:8px;justify-content:flex-end}
.host-brief-why{font-size:var(--t-sm);color:var(--muted);line-height:1.6}
.host-questions{display:grid;gap:8px;margin:16px 0;padding:0;list-style:none;counter-reset:hq}
.host-questions li{counter-increment:hq;display:grid;grid-template-columns:22px 1fr;gap:8px;font-family:var(--serif);font-size:19px;font-weight:600;line-height:1.25}
.host-questions li::before{content:counter(hq);font-family:var(--font);font-size:var(--t-xs);font-weight:700;color:var(--accent);padding-top:4px}
.host-brief-tip{padding-top:12px;border-top:1px solid var(--line);font-size:var(--t-xs);color:var(--muted);line-height:1.55}
.ladder{display:grid;gap:0;margin:0;padding:0;list-style:none}
.ladder li{display:grid;grid-template-columns:28px 1fr;gap:12px;padding:10px 0;border-top:1px solid var(--line)}
.ladder li:first-child{border-top:0}
.ladder-dot{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--line-strong);font-size:var(--t-xs);font-weight:700;color:var(--muted)}
.ladder li.is-done .ladder-dot{border:0;background:var(--moss-soft);color:var(--moss)}
.ladder li.is-current .ladder-dot{border:0;background:var(--moss);color:var(--on-moss)}
.ladder-dot .i{width:13px;height:13px;stroke-width:2.2}
.ladder li div{display:grid;gap:2px}
.ladder strong{font-size:var(--t-sm)}
.ladder strong em{margin-left:6px;font-style:normal;font-size:11px;color:var(--moss)}
.ladder small{font-size:var(--t-xs);color:var(--muted)}
.ladder p{font-size:var(--t-xs);line-height:1.5}
.ladder li:not(.is-current) p{color:var(--muted)}
.ladder-progress{height:4px;margin-top:6px;border-radius:var(--r-pill);background:var(--paper-3);overflow:hidden}
.ladder-progress span{display:block;height:100%;background:var(--moss)}
.host-earn h2 span{font-variant-numeric:tabular-nums}
.host-earn-sub{font-size:var(--t-sm);color:var(--muted)}
.earn-lines{display:grid;margin:14px 0;padding:0;list-style:none}
.earn-lines li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line);font-size:var(--t-sm)}
.earn-lines li span{display:grid}
.earn-lines small{font-size:var(--t-xs);color:var(--muted)}
.earn-lines b{color:var(--moss);font-variant-numeric:tabular-nums}
.earn-lines .earn-plus b{color:var(--sun)}
.earn-cash{font-size:var(--t-xs);line-height:1.55;color:var(--muted)}
.earn-cash b{color:var(--ink)}
.rating-tags{display:flex;flex-wrap:wrap;gap:6px}
.rating-tags span{padding:5px 10px;border-radius:var(--r-pill);background:var(--paper-2);font-size:var(--t-xs)}
.rating-tags span.is-work{background:var(--sun-soft)}
.rating-tags em{font-style:normal;color:var(--muted)}
.rating-note{margin-top:12px;font-size:var(--t-xs);color:var(--muted);line-height:1.55}
.host-pcs p{font-size:var(--t-sm);color:var(--muted);line-height:1.6;margin-bottom:14px}
.host-pc-stats{margin-top:10px;font-size:var(--t-xs)!important}
.trust-list{display:grid;gap:0;margin:0;padding:0;list-style:none}
.trust-list li{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:9px 0;border-top:1px solid var(--line);font-size:var(--t-sm)}
.trust-list li:first-child{border-top:0}
.trust-list li>span{width:22px;height:22px;display:grid;place-items:center;border-radius:50%;border:1px dashed var(--line-strong)}
.trust-list li.is-ok>span{border:0;background:var(--moss-soft);color:var(--moss)}
.trust-list .i{width:12px;height:12px;stroke-width:2.2}
.trust-list .text-btn{font-size:var(--t-xs)}

/* ── Plans ────────────────────────────────────────────────────────── */
.cycle-toggle{display:flex;justify-content:center;gap:4px;width:max-content;margin:0 auto 28px;padding:3px;border-radius:var(--r-pill);background:var(--paper-2)}
.cycle-toggle button{min-height:36px;padding:0 16px;border:0;border-radius:var(--r-pill);background:none;color:var(--muted);font-size:var(--t-sm);font-weight:600}
.cycle-toggle button[aria-pressed="true"]{background:var(--cream);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.cycle-toggle em{margin-left:4px;font-style:normal;color:var(--moss)}
.pricing-2{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);max-width:920px}
.pillar{padding:14px 0 0;margin-top:14px;border-top:1px solid var(--line)}
.pillar>span{font-size:var(--t-xs);font-weight:700;color:var(--accent)}
.pillar ul{margin:10px 0 0}
.price-card.recommended ul{margin-bottom:6px}
.price-card.recommended .btn{margin-top:20px}
.price-fine{display:block;margin-top:10px;font-size:var(--t-xs);color:var(--muted);text-align:center}
.safety-free{display:flex;justify-content:center;align-items:center;gap:8px;margin:22px auto 0;font-size:var(--t-sm);color:var(--moss);text-align:center}
.packs{max-width:920px;margin:64px auto 0;padding-top:32px;border-top:1px solid var(--line)}
.packs-head h2,.plans-faq h2{margin:6px 0;font-size:var(--t-xl);font-weight:600;letter-spacing:-.035em}
.packs-head p{max-width:620px;color:var(--muted);font-size:var(--t-sm);line-height:1.6}
.packs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:20px}
.pack-card{display:grid;gap:4px;padding:18px;border:1px solid var(--line);border-radius:var(--r-lg)}
.pack-card>strong{font-size:34px;font-weight:600;letter-spacing:-.04em;line-height:1.1}
.pack-card>strong small{font-size:var(--t-sm);letter-spacing:0;color:var(--muted)}
.pack-price{font-size:var(--t-md);font-weight:600}
.pack-price del{margin-left:4px;font-weight:500}
.pack-card>small{font-size:var(--t-xs);color:var(--muted);margin-bottom:10px}
.plans-faq{max-width:920px;margin:56px auto 0}
.plans-faq details,.help-group details{border-bottom:1px solid var(--line)}
.plans-faq summary,.help-group summary{padding:16px 0;font-weight:600;cursor:pointer;list-style-position:outside}
.plans-faq details p,.help-group details p{padding:0 0 16px;max-width:720px;color:var(--muted);font-size:var(--t-sm);line-height:1.65}

/* ── Minutes: rules ───────────────────────────────────────────────── */
.minutes-rules{display:grid;grid-template-columns:1.3fr 1fr;gap:18px;margin-top:18px}
.minutes-rules .panel{padding:24px}
.minutes-rules h2{margin:6px 0 14px;font-size:var(--t-lg);font-weight:600;letter-spacing:-.02em;line-height:1.25}
.rates-table{width:100%;border-collapse:collapse;font-size:var(--t-sm)}
.rates-table th{padding:8px 0;border-bottom:1px solid var(--line-strong);font-size:var(--t-xs);font-weight:600;color:var(--muted);text-align:left}
.rates-table td{padding:10px 8px 10px 0;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}
.rates-note{margin-top:12px;font-size:var(--t-xs);color:var(--muted)}
.fair-list{display:grid;gap:10px;margin:0 0 18px;padding:0 0 0 18px;font-size:var(--t-sm);line-height:1.5}
.fair-list li::marker{color:var(--moss)}

/* ── Account ──────────────────────────────────────────────────────── */
.account-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.account-grid .panel{display:grid;gap:12px;align-content:start;padding:24px}
.account-grid h2{margin:0;font-size:var(--t-lg);font-weight:600;letter-spacing:-.02em}
.account-grid .panel>p{font-size:var(--t-sm);color:var(--muted);line-height:1.6}
.account-grid .field{margin-top:4px}
.account-grid .toggle-row{gap:16px;padding:6px 0}
.acc-plan{border-color:var(--ink)}
.acc-plan h2{font-size:var(--t-xl)}
.acc-dl{display:grid;margin:0}
.acc-dl div{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--line);font-size:var(--t-sm)}
.acc-dl dt{color:var(--muted)}
.acc-dl dd{margin:0;font-weight:600;text-align:right}
.acc-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}

/* Settings: one subject at a time — tabs on the left, the chosen one on the right. */
.settings{display:grid;grid-template-columns:200px minmax(0,720px);gap:48px;align-items:start}
.settings-tabs{position:sticky;top:calc(var(--topbar) + 24px);display:grid;gap:2px}
.settings-tabs button{padding:10px 14px;border:0;border-radius:var(--r-sm);background:none;color:var(--muted);font-size:var(--t-sm);font-weight:500;text-align:left;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}
.settings-tabs button:hover{color:var(--ink)}
.settings-tabs button[aria-selected="true"]{background:var(--paper-2);color:var(--ink);font-weight:600}
.settings-pane{display:grid;gap:18px}
.settings-pane[hidden]{display:none}
.settings-pane .panel{display:grid;gap:12px;align-content:start;padding:24px}
.settings-pane h2{margin:0;font-size:var(--t-lg);font-weight:600;letter-spacing:-.02em}
.settings-pane .panel>p{font-size:var(--t-sm);color:var(--muted);line-height:1.6}
.settings-pane .field{margin-top:4px}
.settings-pane .toggle-row{gap:16px;padding:6px 0}
.settings-pane .panel>.btn{justify-self:start}
@media (max-width:860px){
  .settings{grid-template-columns:minmax(0,1fr);gap:20px}
  .settings-tabs{position:static;display:flex;gap:6px;overflow-x:auto;margin:0 calc(-1 * var(--gutter));padding:0 var(--gutter) 2px;scrollbar-width:none}
  .settings-tabs::-webkit-scrollbar{display:none}
  .settings-tabs button{flex:none;white-space:nowrap;padding:8px 14px;border:1px solid var(--line);border-radius:var(--r-pill)}
  .settings-tabs button[aria-selected="true"]{background:var(--ink);border-color:var(--ink);color:var(--paper)}
  .settings-pane .panel{padding:20px}
}

/* Account menu — everything that is "you" opens from your name in the top bar. */
.account-menu{position:fixed;z-index:90;top:calc(var(--topbar) - 6px);right:var(--gutter);width:min(300px,calc(100vw - 32px));max-height:calc(100dvh - var(--topbar) - 12px);overflow:auto;padding:6px 8px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--cream);box-shadow:var(--shadow-2);animation:modalIn .2s var(--ease)}
.account-menu[hidden]{display:none}
.account-menu:focus{outline:0}
.am-head{display:flex;align-items:center;gap:12px;padding:10px 10px 12px}
.am-who{display:grid;min-width:0;line-height:1.35}
.am-who strong{font-size:var(--t-sm);font-weight:600}
.am-who small{overflow:hidden;color:var(--muted);font-size:var(--t-xs);text-overflow:ellipsis;white-space:nowrap}
.am-group{display:grid;gap:1px;padding:6px 0;border-top:1px solid var(--line)}
.am-group>button{display:flex;align-items:center;gap:12px;width:100%;height:40px;padding:0 10px;border:0;border-radius:var(--r-sm);background:none;color:var(--ink);font-size:var(--t-sm);text-align:left}
.am-group>button:hover,.am-group>button:focus-visible{background:var(--paper-2);outline:0}
.am-group .i{flex:none;width:16px;height:16px;color:var(--muted)}
.am-meta{margin-left:auto;color:var(--muted);font-size:var(--t-xs);font-variant-numeric:tabular-nums}
.am-lang{display:flex;align-items:center;justify-content:space-between;height:40px;padding:0 10px;color:var(--muted);font-size:var(--t-sm)}
.am-small-screen{display:none}
.profile-chip[aria-expanded="true"]{background:var(--paper-2)}
/* Phones: the four top-bar controls fit without the page sliding sideways (it was 7px too wide at 390px). */
@media (max-width:420px){:root[data-product="real"] .topbar-actions{gap:8px}}
/* Whatever the top bar hides at this width is still one tap away in the menu. */
.am-group>.am-narrow{display:none}
@media (max-width:1179px){.am-small-screen{display:grid}}
@media (max-width:1023px){
  .am-group>.am-narrow{display:flex}
  .account-menu{right:16px}
}
.blocked ul{display:grid;margin:6px 0 0;padding:0;list-style:none}
.blocked li{display:flex;justify-content:space-between;padding:8px 0;border-top:1px solid var(--line);font-size:var(--t-sm)}
.blocked .text-btn{font-size:var(--t-xs)}
.blocked-none{font-size:var(--t-xs);color:var(--muted)}

/* ── Help and legal ───────────────────────────────────────────────── */
.help-search{display:flex;align-items:center;gap:10px;max-width:640px;padding:0 14px;border:1px solid var(--line-strong);border-radius:var(--r-lg);background:var(--cream)}
.help-search .i{color:var(--muted)}
.help-search input{flex:1;padding:14px 0;border:0;background:transparent;font-size:var(--t-md);color:var(--ink)}
.help-search input:focus{outline:0}
.help-search:focus-within{border-color:var(--ink)}
.help-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 40px;margin-top:32px}
.help-group h2{padding-bottom:6px;font-size:var(--t-xs);font-weight:700;color:var(--accent);border-bottom:1px solid var(--line-strong)}
.help-empty{margin-top:24px;color:var(--muted)}
.help-contact{max-width:640px;margin-top:48px;padding:24px;display:grid;gap:4px}
.help-contact h2{margin:4px 0;font-size:var(--t-xl);font-weight:600;letter-spacing:-.035em}
.help-contact .btn{justify-self:start;margin-top:16px}
.legal-draft{margin-top:8px;padding:6px 10px;width:max-content;max-width:100%;border-radius:var(--r-sm);background:var(--sun-soft);color:var(--sun)!important;font-size:var(--t-xs);font-weight:600}
.legal-tabs{margin-bottom:28px}
.legal-body{max-width:760px}
.legal-body section{padding:18px 0;border-top:1px solid var(--line)}
.legal-body h2{margin-bottom:6px;font-size:var(--t-lg);font-weight:600;letter-spacing:-.02em}
.legal-body p{color:var(--ink-2);line-height:1.7}
.legal-updated{margin-top:20px;font-size:var(--t-xs);color:var(--muted)!important}

/* ── Onboarding ───────────────────────────────────────────────────── */
body.ob-open{overflow:hidden}
.onboarding{position:fixed;inset:0;z-index:120;display:grid;grid-template-rows:auto 1fr auto;background:var(--paper)}
.onboarding[hidden]{display:none}
.ob-top .brand-sig{font-size:22px}
.ob-top{display:flex;align-items:center;gap:24px;padding:16px var(--gutter);border-bottom:1px solid var(--line)}
.ob-progress{flex:1;display:grid;grid-template-columns:repeat(5,1fr);gap:6px;max-width:420px;margin:0 auto;padding:0;list-style:none}
.ob-progress li{height:4px;border-radius:var(--r-pill);background:var(--paper-3)}
.ob-progress li.is-done{background:var(--ink)}
.ob-progress li.is-current{background:var(--accent)}
.ob-skip{font-size:var(--t-sm);color:var(--muted)}
.ob-skip[hidden]{display:none}
.ob-body{overflow:auto;padding:48px var(--gutter) 40px}
.ob-step{max-width:760px;margin:0 auto;animation:viewIn .3s var(--ease)}
.ob-step h1{font-size:clamp(34px,4vw,54px);font-weight:500;letter-spacing:-.045em;line-height:1.02}
.ob-step h1:focus{outline:0}
.ob-lede{margin:10px 0 24px;color:var(--muted);line-height:1.6}
.ob-sub{margin-top:36px;font-size:var(--t-xl);font-weight:600;letter-spacing:-.035em}
.ob-langs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.ob-lang,.ob-goal,.ob-level,.ob-time{
  display:grid;gap:3px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--cream);text-align:left;
  transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease)
}
.ob-lang:hover,.ob-goal:hover,.ob-level:hover,.ob-time:hover{border-color:var(--line-strong)}
.ob-lang[aria-checked="true"],.ob-goal[aria-checked="true"],.ob-level[aria-checked="true"],.ob-time[aria-pressed="true"]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.ob-lang strong,.ob-goal strong{font-size:var(--t-md);font-weight:600}
.ob-lang small,.ob-goal small{font-size:var(--t-xs);color:var(--muted)}
.ob-chips{display:flex;flex-wrap:wrap;gap:8px}
.ob-chips .chip{padding:8px 14px;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--cream);color:var(--ink)}
.ob-chips .chip.active{border-color:var(--ink);background:var(--action);color:var(--on-action);box-shadow:none}
.ob-levels{display:grid;gap:8px}
.ob-level{grid-template-columns:56px 1fr;align-items:center}
.ob-level b{font-size:var(--t-xl);font-weight:600;letter-spacing:-.03em;color:var(--accent)}
.ob-level span{display:grid}
.ob-level small{font-size:var(--t-sm);color:var(--muted)}
.ob-voice{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;margin-top:18px;padding:14px 16px;border-radius:var(--r-lg);background:var(--paper-2);font-size:var(--t-sm);line-height:1.5}
.ob-voice>.i{color:var(--accent)}
.ob-goals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.ob-count{margin-top:12px;font-size:var(--t-xs);color:var(--muted)}
.ob-times{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.ob-time small{font-size:var(--t-xs);color:var(--muted)}
.ob-time strong{font-size:var(--t-md);font-weight:600}
.ob-tz{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:var(--r-pill);background:var(--paper-2);font-size:var(--t-xs)}
.ob-prefs{display:grid;gap:8px;margin-top:28px;padding-top:16px;border-top:1px solid var(--line)}
.ob-prefs .toggle-row{gap:16px}
.ob-prefs em{margin-left:6px;font-style:normal;font-size:var(--t-xs);color:var(--moss);font-weight:600}
.ob-foot{display:flex;align-items:center;gap:18px;padding:14px var(--gutter);border-top:1px solid var(--line);background:var(--paper)}
.ob-foot[hidden]{display:none}
.ob-foot [hidden]{visibility:hidden;display:inline-flex}
.ob-foot-note{flex:1;text-align:center;font-size:var(--t-xs);color:var(--muted)}
.ob-finish{display:grid;gap:4px}
.ob-welcome{display:grid;grid-template-columns:.9fr 1.1fr;margin-top:8px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--cream);overflow:hidden}
.ob-welcome-photo{min-height:280px;background:var(--paper-3) 60% 70%/cover no-repeat}
.ob-welcome-body{display:grid;gap:16px;align-content:center;padding:26px}
.ob-welcome-host{display:flex;align-items:center;gap:12px}
.ob-welcome-host div{display:grid}
.ob-welcome-host small{font-size:var(--t-xs);color:var(--muted)}
.ob-welcome-body>p{font-family:var(--serif);font-size:22px;font-weight:600;line-height:1.25}
.ob-welcome-actions{display:flex;flex-wrap:wrap;gap:8px}
.ob-look{justify-self:center;margin-top:18px}

/* ── Dark theme touches ───────────────────────────────────────────── */
:root[data-theme="dark"] .online-dot{border-color:var(--paper)}
:root[data-theme="dark"] .seg button[aria-pressed="true"],
:root[data-theme="dark"] .cycle-toggle button[aria-pressed="true"]{background:var(--paper-3)}
:root[data-theme="dark"] .voice-meter i{background:var(--ink)}

/* ── Responsive ───────────────────────────────────────────────────── */
@media (max-width:1180px){
  .host-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:980px){
  .week-band{grid-template-columns:1fr;gap:28px}
  .minutes-rules,.account-grid{grid-template-columns:1fr}
}
@media (max-width:820px){
  .filter-panel{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px;padding:16px 0}
  .filter-panel h3,.filter-panel .filter-group,.filter-panel #resetPeople{grid-column:1/-1}
  .filter-panel .toggle-row{grid-column:1/-1}
  .partners-block{padding:18px}
  .partner-card{grid-template-columns:auto 1fr}
  .partner-actions{grid-column:1/-1;flex-wrap:wrap}
  .pricing-2{grid-template-columns:1fr}
  .packs-grid{grid-template-columns:1fr}
  .help-grid{grid-template-columns:1fr}
  .notify-panel,.push{right:16px}
  .ob-langs,.ob-times{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ob-welcome{grid-template-columns:1fr}
  .ob-welcome-photo{min-height:180px}
  .ob-body{padding:28px 16px 32px}
  .ob-top,.ob-foot{padding-left:16px;padding-right:16px}
  .safety-menu{top:52px}
}
@media (max-width:640px){
  .host-grid,.pc-grid{grid-template-columns:1fr}
  .host-now{grid-row:auto}
  .person-top{grid-template-columns:auto 1fr auto}
  .person-foot{flex-direction:column;align-items:stretch}
  .person-card .person-actions{justify-content:space-between}
  .ob-goals{grid-template-columns:1fr}
  .ob-voice{grid-template-columns:auto 1fr}
  .ob-voice .btn{grid-column:1/-1;justify-self:start}
  .ob-foot-note{display:none}
  .ob-foot{justify-content:space-between}
  .recap-corrections li{grid-template-columns:1fr 1fr}
  .recap-corrections small{display:none}
  .recap-weekly{grid-template-columns:auto 1fr}
  .recap-weekly .btn{grid-column:1/-1;justify-self:start}
  .rates-table th:nth-child(3),.rates-table td:nth-child(3){display:none}
  .pc-quota{text-align:left}
  .cycle-toggle{margin-bottom:20px}
}

/* Fixes after the first visual pass */
.week-band{border-bottom:0;padding-bottom:0}
.pc-place::first-letter{text-transform:uppercase}
.host-grid{align-items:start}
.host-col{display:grid;gap:18px;align-content:start;min-width:0}
.host-now{grid-row:auto}
@media (max-width:1180px){
  .host-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .host-col:nth-child(3){grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .host-grid,.host-col:nth-child(3){grid-template-columns:1fr}
}
.account-grid .panel>.btn{justify-self:start}
.help-grid{display:block;columns:2;column-gap:40px}
.help-group{break-inside:avoid;margin-bottom:24px}
.plans-faq summary,.help-group summary{position:relative;padding-right:32px;list-style:none}
.plans-faq summary::-webkit-details-marker,.help-group summary::-webkit-details-marker{display:none}
.plans-faq summary::after,.help-group summary::after{content:"+";position:absolute;right:4px;top:50%;transform:translateY(-50%);font-weight:400;font-size:20px;color:var(--muted);transition:transform var(--dur) var(--ease)}
.plans-faq details[open] summary::after,.help-group details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
@media (max-width:820px){.help-grid{columns:1}}
/* `hidden` always wins over component display rules */
[hidden]{display:none!important}
.ob-foot #obBack[hidden]{display:inline-flex!important;visibility:hidden}
.notify-list li.is-unread button{box-shadow:none;background:color-mix(in srgb,var(--accent-soft) 55%,transparent)}
.notify-list li+li{margin-top:2px}
.legal-draft{display:inline-block;width:auto}
.page-head>div{min-width:0;max-width:100%}

/* ── Brand & press ──────────────────────────────────────────────── */
.brand-hero{display:grid;place-items:center;height:380px;margin-bottom:12px;border-radius:var(--r-lg);background:var(--cream);box-shadow:inset 0 0 0 1px var(--line)}
.brand-hero .brand-sig{font-size:clamp(56px,9vw,120px)}
.brand-block{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr);gap:40px;padding:40px 0;border-top:1px solid var(--line)}
.brand-block h2{margin-top:6px;font-size:var(--t-xl);font-weight:600;letter-spacing:-.035em;line-height:1.15}
.brand-note{margin-top:8px;font-size:var(--t-sm);color:var(--muted);line-height:1.6}
.brand-about p{font-family:var(--serif);font-size:22px;font-weight:600;line-height:1.4;color:var(--ink-2)}
.brand-about .btn{margin-top:16px}
.brand-files{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.brand-file{border-radius:var(--r-lg);overflow:hidden;box-shadow:inset 0 0 0 1px var(--line);background:var(--cream)}
.brand-file-art{display:grid;place-items:center;height:150px}
.brand-file-art img{max-width:70%;height:auto}
.brand-file-art.on-paper{background:#f5f2eb}
.brand-file-art.on-brand{background:#a8533b}
.brand-file-art.on-stone{background:linear-gradient(160deg,#d9d0c0,#bdb2a0)}
.brand-file-copy{display:grid;gap:2px;padding:14px 16px}
.brand-file-copy strong{font-size:var(--t-sm)}
.brand-file-copy span{font-size:var(--t-xs);color:var(--muted)}
.brand-file-copy a{color:var(--accent);font-weight:600;text-decoration:none}
.brand-file-copy a:hover{text-decoration:underline}
.brand-swatches{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.brand-swatch{display:grid;gap:2px;padding:0 0 14px;border:0;border-radius:var(--r-lg);overflow:hidden;background:var(--cream);box-shadow:inset 0 0 0 1px var(--line);text-align:left}
.brand-swatch i{display:block;height:96px;margin-bottom:10px;box-shadow:inset 0 -1px 0 var(--line)}
.brand-swatch strong,.brand-swatch span{padding:0 14px}
.brand-swatch strong{font-size:var(--t-sm)}
.brand-swatch span{font-size:var(--t-xs);color:var(--muted);font-variant-numeric:tabular-nums}
.brand-swatch:hover{box-shadow:inset 0 0 0 1px var(--ink)}
.brand-rules{display:grid;gap:0;margin:0;padding:0;list-style:none;counter-reset:br}
.brand-rules li{counter-increment:br;display:grid;grid-template-columns:36px 1fr;gap:2px 12px;padding:14px 0;border-top:1px solid var(--line)}
.brand-rules li:first-child{border-top:0;padding-top:0}
.brand-rules li::before{content:counter(br,decimal-leading-zero);grid-row:span 2;font-size:var(--t-xs);font-weight:700;color:var(--accent);padding-top:2px}
.brand-rules strong{font-size:var(--t-md)}
.brand-rules span{font-size:var(--t-sm);color:var(--muted)}
.brand-press p{font-size:var(--t-md);line-height:1.7}
.brand-press a{color:var(--accent);font-weight:600}

/* the brand mark where the product speaks for itself: system notifications, the session recap */
.avatar-brand{background:var(--accent);border-color:transparent;color:#fff;--brand-dot:#fff}
.avatar-brand svg{width:64%;height:64%}
.recap-mark .brand-mark-svg{width:46px;height:46px;color:var(--accent)}

/* the Passport is issued by elsewards */
.passport-issuer{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-top:22px;padding-top:16px;border-top:1px solid rgba(241,238,228,.14)}
.passport-issuer .brand-sig{font-size:20px;color:#f1eee4;--brand-dot:#e58a6c}
.passport-issuer small{font-size:var(--t-xs);color:rgba(241,238,228,.55)}
:root[data-theme="dark"] .passport-issuer .brand-sig{color:var(--ink)}

@media (max-width:820px){
  .brand-block{grid-template-columns:1fr;gap:18px}
  .brand-swatches{grid-template-columns:repeat(2,minmax(0,1fr))}
  .brand-hero{height:240px}
}
@media (max-width:560px){ .brand-files{grid-template-columns:1fr} .passport-issuer{flex-direction:column;align-items:flex-start} }
.brand-file,.brand-swatch{box-shadow:none;border:1px solid var(--line)}
.brand-swatch:hover{box-shadow:none;border-color:var(--ink)}

/* ── Sign in / create an account ─────────────────────────────────── */
.ob-progress{grid-template-columns:repeat(7,1fr)}
.ob-foot #obNext[hidden]{display:inline-flex!important;visibility:hidden}
/* The standalone dialog is a letterhead: one hairline frame, the name at the top, legal and language at the foot.
   The whole sheet scrolls when the form is taller than the window, so nothing is ever clipped. */
.onboarding.auth{position:fixed;inset:0;display:block;overflow-y:auto;overscroll-behavior:contain;padding:20px;background:var(--paper)}
.auth-sheet{display:flex;flex-direction:column;min-height:100%;border:1px solid var(--line)}
.onboarding.auth .auth-top{position:relative;flex:none;justify-content:space-between;padding:20px 28px;border-bottom:0}
.onboarding.auth .auth-top .brand-sig{font-size:22px}
/* The way out has to be obvious: a real button, not a faint link. */
.onboarding.auth .auth-top .auth-close{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;border:1px solid var(--line-strong);border-radius:var(--r-pill);background:transparent;color:var(--ink);font-weight:600;text-decoration:none}
.onboarding.auth .auth-top .auth-close .i{width:14px;height:14px}
.onboarding.auth .auth-top .auth-close:hover{border-color:var(--ink);background:var(--paper-2)}
.auth-body{position:relative;flex:1 0 auto;display:flex;padding:24px 24px 32px;overflow:visible}
.auth-body .ob-step{width:100%;max-width:416px;margin:auto;animation:none}
.auth-foot{position:relative;flex:none;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;padding:18px 28px 20px}
.auth-links,.auth-langs{display:flex;flex-wrap:wrap;align-items:center;gap:6px 20px}
.auth-links button,.auth-langs button{border:0;background:none;padding:2px 0;font-size:12.5px;font-weight:500;color:var(--muted);transition:color var(--dur) var(--ease)}
.auth-links button:hover,.auth-langs button:hover{color:var(--ink)}
.auth-langs{gap:6px 14px}
.auth-langs button[aria-pressed="true"]{color:var(--ink);font-weight:600}
.auth-langs button+button::before{content:"";display:inline-block;width:3px;height:3px;margin:0 14px 2px 0;border-radius:50%;background:var(--line-strong);vertical-align:middle}

@keyframes authRise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.auth-form{width:100%;max-width:520px}
.auth-form-standalone{max-width:none;text-align:center;animation:authRise .55s var(--ease) both}
.auth-mark{display:block;width:56px;height:42px;margin:0 auto 28px;overflow:visible;color:var(--ink)}
.auth-mark.is-cheer{animation:brandHop .9s ease-in-out .5s}
.auth-form h1{font-size:clamp(30px,2.3vw,36px);font-weight:600;letter-spacing:-.035em;line-height:1.1;text-wrap:balance}
.auth-form h1:focus{outline:0}
.auth-form .ob-lede{margin:12px 0 0;font-size:15px;line-height:1.55;color:var(--muted);text-wrap:pretty}
.auth-form-standalone .ob-lede{max-width:36ch;margin-left:auto;margin-right:auto}

/* Age and terms: one quiet card with a drawn checkbox, so consent reads as part of the form, not browser chrome. */
.auth-consent{margin-top:28px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--cream);text-align:left;transition:border-color var(--dur) var(--ease)}
.auth-consent.is-error{border-color:var(--danger)}
.auth-check{position:relative;display:flex;align-items:flex-start;gap:12px;cursor:pointer;font-size:var(--t-sm);line-height:1.5;color:var(--ink-2)}
.auth-check input{position:absolute;top:1px;left:0;width:18px;height:18px;margin:0;opacity:0;cursor:pointer}
.auth-box{flex:none;display:grid;place-items:center;width:18px;height:18px;margin-top:1px;border:1.5px solid var(--line-strong);border-radius:5px;background:var(--paper);transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.auth-box svg{width:12px;height:12px;fill:none;stroke:var(--on-action);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;opacity:0;transition:opacity var(--dur) var(--ease)}
.auth-check:hover .auth-box{border-color:var(--ink-2)}
.auth-check input:checked+.auth-box{background:var(--ink);border-color:var(--ink)}
.auth-check input:checked+.auth-box svg{opacity:1}
.auth-check input:focus-visible+.auth-box{outline:2px solid var(--accent);outline-offset:2px}
.auth-consent .auth-consent-error{display:flex;align-items:center;gap:6px;margin:8px 0 0 30px;font-size:var(--t-xs);font-weight:500;color:var(--danger)}
.auth-consent .auth-consent-error .i{width:14px;height:14px;flex:none}
.auth-terms{margin-top:12px;padding-top:10px;border-top:1px solid var(--line);font-size:var(--t-xs);color:var(--muted)}
.auth-terms summary{display:inline-flex;align-items:center;gap:4px;margin-left:30px;list-style:none;cursor:pointer;font-weight:600;color:var(--muted);transition:color var(--dur) var(--ease)}
.auth-terms summary::-webkit-details-marker{display:none}
.auth-terms summary:hover{color:var(--ink)}
.auth-terms summary .i{width:14px;height:14px;transition:transform var(--dur) var(--ease)}
.auth-terms[open] summary .i{transform:rotate(180deg)}
.auth-terms ul{margin:8px 0 0 30px;padding-left:16px;line-height:1.65}

.auth-options{display:grid;gap:10px;margin-top:32px}
.auth-consent+.auth-options{margin-top:16px}
.auth-btn{position:relative;display:flex;align-items:center;justify-content:center;gap:10px;width:100%;height:52px;padding:0 48px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--cream);color:var(--ink);font-size:15px;font-weight:600;text-align:center;white-space:nowrap;transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease),transform 120ms var(--ease)}
.auth-btn:hover{border-color:var(--line-strong)}
.auth-btn:active,.auth-primary:active{transform:scale(.99)}
.auth-btn .auth-logo{position:absolute;left:18px;top:50%;width:18px;height:18px;transform:translateY(-50%)}
.auth-btn .auth-logo-apple{fill:currentColor}
.auth-last{position:absolute;right:12px;top:-9px;padding:2px 8px;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--paper);font-size:10.5px;font-weight:600;line-height:1.4;color:var(--muted)}
.auth-or{display:flex;align-items:center;gap:14px;margin:24px 0;font-size:var(--t-xs);color:var(--muted)}
.auth-or::before,.auth-or::after{content:"";flex:1;height:1px;background:var(--line)}
.auth-label{display:block;margin-bottom:6px;font-size:var(--t-xs);font-weight:600;color:var(--ink-2);text-align:left}
.auth-input{display:block;width:100%;height:52px;padding:0 16px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--cream);color:var(--ink);font-size:15px;font-weight:500;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
.auth-input::placeholder{color:var(--muted);opacity:.75}
.auth-input:hover{border-color:var(--line-strong)}
.auth-input:focus{outline:0;border-color:var(--ink);box-shadow:0 0 0 4px var(--paper-3)}
.auth-input.is-error{border-color:var(--danger)}
.auth-input.is-error:focus{box-shadow:0 0 0 4px var(--danger-soft)}
.auth-field-error{display:flex;align-items:center;gap:6px;margin-top:8px;font-size:var(--t-sm);font-weight:500;color:var(--danger);text-align:left}
.auth-field-error .i{width:15px;height:15px;flex:none}
.auth-primary{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:52px;margin-top:12px;border-radius:var(--r-lg);font-size:15px;font-weight:600;text-decoration:none}
.auth-primary .i{width:16px;height:16px}
.auth-error{margin-top:12px;font-size:var(--t-sm);font-weight:500;color:var(--danger)}
.auth-switch{margin-top:28px;font-size:var(--t-sm);color:var(--muted)}
.auth-form-standalone .auth-switch{text-align:center}
.auth-inbox-icon{display:grid;place-items:center;width:52px;height:52px;margin-bottom:24px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--cream)}
.auth-form-standalone .auth-inbox-icon{margin-left:auto;margin-right:auto}
.auth-inbox-icon .i{width:22px;height:22px}
.auth-mailbox{margin-top:32px}
.auth-prototype-link{width:100%;height:52px;margin-top:10px;justify-content:center;border-radius:var(--r-lg)}
.auth-inbox-row{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:20px;font-size:var(--t-sm)}
.auth-form-standalone .auth-inbox-row{justify-content:center}
.auth-inbox-row .text-btn:disabled{color:var(--muted);cursor:default;text-decoration:none;font-variant-numeric:tabular-nums}
.ob-have{margin-top:28px;font-size:var(--t-sm);color:var(--muted)}

/* Short laptop screens: tighten the vertical rhythm before the sheet has to scroll. */
@media (min-width:641px) and (max-height:800px){
  .auth-body{padding:8px 24px 20px}
  .auth-mark{width:48px;height:36px;margin-bottom:20px}
  .auth-options{margin-top:24px}
  .auth-consent{margin-top:20px}
  .auth-or{margin:18px 0}
  .auth-switch{margin-top:20px}
}
@media (min-width:1600px){
  .auth-body .ob-step{max-width:440px}
  .auth-form h1{font-size:38px}
}
/* Phones: the frame would only eat width, so the sheet runs edge to edge. */
@media (max-width:640px){
  .onboarding.auth{padding:0}
  .auth-sheet{border:0}
  .onboarding.auth .auth-top{padding:16px 20px}
  .auth-body{padding:12px 20px 28px}
  .auth-foot{justify-content:center;padding:16px 20px 24px;border-top:1px solid var(--line)}
  .auth-links,.auth-langs{justify-content:center}
  .auth-mark{width:48px;height:36px;margin-bottom:22px}
  .auth-form h1{font-size:28px}
  .auth-btn{padding:0 44px}
}
@media (prefers-reduced-motion:reduce){.auth-form-standalone,.auth-mark.is-cheer{animation:none}}

/* ── Session side panel: honest empty states ─────────────────────── */
.session-empty{padding:12px 0;font-size:var(--t-sm);line-height:1.6;color:var(--muted)}
.saved-item small{display:block}

/* ── Coming up: bookings with cancel and no-show ─────────────────── */
.bookings-block{margin:-22px 0 40px;padding:18px 24px;border:1px solid var(--line);border-radius:var(--r-lg)}
.bookings-list{display:grid;margin:0;padding:0;list-style:none}
.booking-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:12px 0;border-top:1px solid var(--line)}
.booking-row:first-child{border-top:0}
.booking-copy{display:grid;gap:2px}
.booking-copy strong{font-size:var(--t-sm);font-weight:600}
.booking-copy small{font-size:var(--t-xs);color:var(--muted)}
.booking-actions{display:flex;align-items:center;gap:14px}
.booking-actions .text-btn{font-size:var(--t-xs)}
.book-fine{margin-top:4px;font-size:var(--t-xs);line-height:1.5;color:var(--muted)}

/* ── Passport tabs (Stamps and notes · Saved words) ─────────────── */
.passport-tabs{margin:-8px 0 26px}

/* ── Interface language ─────────────────────────────────────────── */
.ui-lang-links{display:inline-flex;gap:14px}
.ui-lang-links button{padding:0;border:0;background:none;color:var(--muted);font:inherit;cursor:pointer}
.ui-lang-links button[aria-pressed="true"]{color:var(--ink);font-weight:700}
.lang-suggest{position:fixed;left:50%;bottom:20px;z-index:90;display:flex;align-items:center;gap:14px;max-width:calc(100% - 32px);padding:12px 14px 12px 18px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--cream);box-shadow:var(--shadow-1);transform:translateX(-50%);font-size:var(--t-sm)}

@media (max-width:820px){
  .bookings-block{padding:16px 18px}
  .booking-row{grid-template-columns:auto 1fr}
  .booking-actions{grid-column:1/-1}
  .lang-suggest{flex-wrap:wrap;bottom:84px}
}

/* Focused session: only the conversation and its own controls (app.js sets data-focus) */
:root[data-focus] .top-nav,:root[data-focus] .topbar-actions>:not(#themeToggle),:root[data-focus] .mobile-nav{display:none}
:root[data-focus] .top-brand{pointer-events:none}

/* Lobby: mic and camera check before joining */
.lobby-check{display:grid;gap:12px}
.lobby-check-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:12px;align-items:center}
.lobby-check-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--paper-2);color:var(--ink-2)}
.lobby-check-icon .i{width:16px;height:16px}
.lobby-check[data-state="ok"] .lobby-check-icon{background:var(--moss-soft);color:var(--moss)}
.lobby-check[data-state="fail"] .lobby-check-icon{background:var(--danger-soft);color:var(--danger)}
.lobby-check-copy strong{display:block;font-size:var(--t-sm);font-weight:600}
.lobby-check-copy small{display:block;font-size:var(--t-xs);color:var(--muted);line-height:1.45}
.lobby-check-live{display:grid;gap:8px}
.lobby-check-live video{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--r-sm);background:var(--ink);transform:scaleX(-1)}
.lobby-check-live video[hidden]{display:none}
.lobby-check-live small{font-size:var(--t-xs);color:var(--muted)}
.dev-meter{height:4px;border-radius:999px;background:var(--paper-3);overflow:hidden}
.dev-meter i{display:block;height:100%;background:var(--moss);transform:scaleX(0);transform-origin:left;transition:transform 80ms linear}

/* Conversations with an unopened message */
.conversation.is-unread strong{font-weight:700}
.conversation.is-unread time{color:var(--accent);font-weight:600}
.conversation.is-unread time::before{content:"";display:inline-block;width:6px;height:6px;margin-right:6px;border-radius:50%;background:var(--accent);vertical-align:1px}

/* Plans: billing cycle and the region prices are shown for */
.pricing-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px 20px;margin:0 0 28px}
.pricing-controls .cycle-toggle{margin:0}
.region-pick{display:inline-flex;align-items:center;gap:8px;font-size:var(--t-sm);color:var(--muted)}
.region-pick select{width:auto;min-height:36px;padding:0 30px 0 12px;border:1px solid var(--line-strong);border-radius:var(--r-pill);background-color:var(--cream);color:var(--ink);font-size:var(--t-sm)}

/* Your own photo (checked by a person first) */
.avatar-me.has-photo{background-size:cover;background-position:center;color:transparent}
.profile-photo{position:relative;flex:0 0 auto}
.profile-photo-state{position:absolute;left:50%;bottom:-6px;transform:translateX(-50%);padding:2px 9px;border-radius:var(--r-pill);background:var(--moss);color:var(--on-moss);font-size:10px;font-weight:700;letter-spacing:.04em;white-space:nowrap}
.profile-photo-state.is-review{background:var(--sun-soft);color:var(--sun)}
.profile-photo-actions{display:flex;align-items:center;gap:12px;margin-top:12px}
.profile-photo-actions label{cursor:pointer}

/* Profile: goal with can-do lines, voice intro */
.profile-goal h2{margin:6px 0 12px;font-family:var(--serif);font-size:30px;font-weight:600;line-height:1}
.goal-bar{height:6px;border-radius:999px;background:var(--paper-3);overflow:hidden}
.goal-bar span{display:block;height:100%;background:var(--moss);border-radius:inherit}
.goal-line{margin:8px 0 12px;font-size:var(--t-sm);color:var(--muted)}
.cando{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.cando li{display:grid;grid-template-columns:20px 1fr;gap:10px;align-items:start;font-size:var(--t-sm);color:var(--ink-2)}
.cando li>span{width:18px;height:18px;margin-top:1px;border-radius:50%;box-shadow:inset 0 0 0 1px var(--line-strong);display:grid;place-items:center}
.cando li.is-done>span{background:var(--moss);box-shadow:none;color:var(--on-moss)}
.cando li.is-done>span .i{width:11px;height:11px}
.cando li.is-done{color:var(--ink)}
.profile-intro p{margin:6px 0 12px;font-size:var(--t-sm);color:var(--muted)}
.profile-intro-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.profile-intro-actions audio{height:34px;max-width:240px}

/* Onboarding: early-access languages, waitlist, optional photo */
.ob-lang.is-early small{color:var(--muted)}
.ob-waitlist{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:14px;font-size:var(--t-sm);color:var(--muted)}
.ob-waitlist input{flex:1 1 180px;min-height:36px;padding:0 12px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--cream)}
.ob-photo{display:flex;align-items:center;gap:22px;margin-top:22px}
.ob-photo-frame{width:112px;height:112px;flex:0 0 auto;display:grid;place-items:center;border-radius:50%;background:var(--paper-2) center/cover no-repeat;box-shadow:inset 0 0 0 1px var(--line);color:var(--muted)}
.ob-photo-frame .i{width:34px;height:34px}
.ob-photo-copy{display:grid;gap:10px;justify-items:start}
.ob-photo-copy small{max-width:40ch;font-size:var(--t-xs);color:var(--muted);line-height:1.5}
.ob-photo-pick{cursor:pointer}

/* Minutes balance, always in sight */
/* Top bar actions, "one rhythm": every control is 36px with the same corner, a hairline separates
   what you can do (Host, Start a session) from where you stand (minutes, alerts, you).
   Minutes wear their own colour — moss, and mustard when they run low. */
.topbar-actions .quiet-link{height:36px;line-height:36px;padding:0 12px;border-radius:var(--r-sm);font-weight:600;color:var(--ink-2);white-space:nowrap;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}
.topbar-actions .quiet-link:hover{background:var(--paper-2);color:var(--ink)}
.topbar .top-start{gap:8px;height:36px;min-height:36px;padding:0 14px;font-size:var(--t-sm)}
.topbar .top-start .i{width:14px;height:14px}
.topbar-rule{flex:none;width:1px;height:22px;margin:0 2px;background:var(--line)}
.minutes-chip{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 12px;border:0;border-radius:var(--r-sm);background:var(--moss-soft);color:var(--moss);font-size:var(--t-sm);cursor:pointer;font-variant-numeric:tabular-nums;white-space:nowrap;transition:background var(--dur) var(--ease)}
.minutes-chip .i{width:15px;height:15px}
.minutes-chip b{font-weight:700}
.minutes-chip span{opacity:.8}
.minutes-chip:hover{background:color-mix(in srgb,var(--moss-soft) 82%,var(--moss))}
.minutes-chip.is-low{background:var(--sun-soft);color:var(--sun)}
.minutes-chip.is-low:hover{background:color-mix(in srgb,var(--sun-soft) 82%,var(--sun))}
@media (max-width:520px){.topbar-rule{display:none}}
.mobile-nav button>span{position:relative}
.nav-dot{position:absolute;top:3px;right:3px;min-width:8px;height:8px;border-radius:50%;background:var(--accent);font-size:0}

/* Postcards: the words appear once you've listened */
.pc-transcript.is-veiled,.pc-translation.is-veiled{filter:blur(5px);user-select:none;opacity:.7;transition:filter .4s ease,opacity .4s ease}
.pc-reveal{justify-self:start;font-size:var(--t-xs)}

/* A shorter World on phones: the Passport lives in the tab bar, the board shows three */
@media (max-width:620px){
  [data-view="world"] .passport-teaser{display:none}
  .split-band{grid-template-columns:1fr}
  .host-card,.host-card-content{min-height:0}
  .host-card-content{padding:26px 22px}
  .host-card h2{font-size:34px}
  .live-session-list .live-row:nth-of-type(n+3){display:none}
}

/* Passport: four stats, stamps printed on paper tiles */
.passport-stats.passport-stats-4{grid-template-columns:repeat(4,1fr)}
@media (max-width:620px){.passport-stats.passport-stats-4{grid-template-columns:1fr 1fr}}
.situation.stamp-art{margin:0;display:grid;grid-template-columns:72px 1fr;align-items:center;gap:12px;padding:10px 12px;border:0;background:#f1ece2;color:#1c1d19}
.stamp-art .stamp-svg{width:72px;height:72px;display:block}
.stamp-art figcaption{display:grid;gap:2px}
.stamp-art figcaption strong{font-size:var(--t-sm);color:#1c1d19}
.stamp-art figcaption small{font-size:var(--t-xs);color:#66655c}

/* Tonight's sentence (recap) and the list of sentences (Saved words) */
.recap-homework{display:grid;gap:8px;margin-top:14px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r-md,12px);text-align:left}
.recap-homework p{margin:0;font-size:var(--t-sm);color:var(--ink-2);line-height:1.5}
.homework-form{display:flex;gap:8px}
.homework-form input{flex:1;min-height:36px;padding:0 12px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--cream)}
.homework-done{display:flex;gap:8px;align-items:flex-start}
.homework-done .i{width:16px;height:16px;flex:0 0 auto;margin-top:2px;color:var(--moss)}
.homework-list{margin:0 0 28px}
.homework-list ul{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;margin:0;padding:0;list-style:none}
.homework-list li{padding:14px 16px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--cream)}
.homework-list li p{margin:0 0 6px;font-family:var(--serif);font-size:19px;font-weight:600;line-height:1.25}
.homework-list li small{font-size:var(--t-xs);color:var(--muted)}

/* Minutes: invite a friend */
.invite-card{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 28px;margin:24px 0;padding:24px 28px}
.invite-card h2{margin:6px 0;font-size:var(--t-xl);font-weight:600;letter-spacing:-.03em}
.invite-card p{margin:0;max-width:52ch;color:var(--muted)}
.invite-link{display:flex;align-items:center;gap:10px;max-width:100%}
.invite-link code{padding:8px 12px;border-radius:var(--r-sm);background:var(--paper-2);font-size:var(--t-xs);overflow-wrap:anywhere}

/* Lobby: warm-up and rehearsal, before joining */
.lobby-ready{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.lobby-ready-opt{display:grid;grid-template-columns:20px 1fr;gap:10px;align-items:start;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--cream);text-align:left;cursor:pointer;transition:border-color var(--dur) var(--ease)}
.lobby-ready-opt:hover{border-color:var(--line-strong)}
.lobby-ready-opt .i{width:18px;height:18px;margin-top:2px;color:var(--accent)}
.lobby-ready-opt b{display:block;font-size:var(--t-sm);font-weight:600}
.lobby-ready-opt small{display:block;font-size:var(--t-xs);color:var(--muted);line-height:1.45}
@media (max-width:520px){.lobby-ready{grid-template-columns:1fr}}
.prep-modal{max-width:520px}
.prep-phrase{margin:18px 0 14px;font-family:var(--serif);font-size:32px;font-weight:600;line-height:1.15}
.prep-timer{height:3px;border-radius:999px;background:var(--paper-3);overflow:hidden}
.prep-timer span{display:block;height:100%;background:var(--accent);transform-origin:left;animation:prepTimer 20s linear forwards}
@keyframes prepTimer{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.prep-hint{margin:12px 0 18px;font-size:var(--t-sm);color:var(--muted)}
.prep-ai-note{margin:8px 0 12px;padding:8px 12px;border-radius:var(--r-sm);background:var(--sky-soft);color:var(--sky);font-size:var(--t-xs)}
.prep-chat{display:grid;gap:10px;max-height:300px;overflow:auto;padding:4px 0 12px}
.prep-msg{display:grid;gap:3px;max-width:88%}
.prep-msg span{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.prep-msg p{margin:0;padding:10px 12px;border-radius:12px;background:var(--paper-2);font-size:var(--t-sm);line-height:1.45}
.prep-msg.me{justify-self:end}
.prep-msg.me p{background:var(--moss);color:var(--on-moss)}
.prep-form{display:flex;gap:8px}
.prep-form input{flex:1;min-height:38px;padding:0 12px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--cream)}
.prep-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;font-size:var(--t-xs);color:var(--muted)}

/* Sheet: notebook, email preview, sample report, gifts */
.sheet-modal{max-width:560px;max-height:88vh;overflow:auto}
.sheet-lede{margin:6px 0 14px;color:var(--muted);font-size:var(--t-sm)}
.notebook{display:grid;gap:10px;margin:0 0 14px;padding:0;list-style:none}
.notebook li{padding:10px 12px;border-left:2px solid var(--accent);background:var(--paper-2);border-radius:0 var(--r-sm) var(--r-sm) 0}
.notebook li.is-mine{border-left-color:var(--moss)}
.notebook li span{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.notebook li p{margin:4px 0 0;font-size:var(--t-sm);line-height:1.45}
.notebook-form{display:flex;gap:8px}
.notebook-form input{flex:1;min-height:38px;padding:0 12px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--cream)}
.email-preview{margin-top:12px;border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden;background:#fff;color:#1c1d19}
.email-meta{display:grid;gap:2px;padding:10px 14px;border-bottom:1px solid #e6e0d6;background:#faf8f3;font-size:12px;color:#66655c}
.email-meta b{color:#1c1d19;font-weight:600;margin-right:4px}
.email-body{padding:16px;font-size:14px;line-height:1.55}
.email-body p{margin:0 0 12px}
.email-box{display:grid;gap:2px;margin:0 0 10px;padding:10px 12px;border:1px solid #e6e0d6;border-radius:8px}
.email-box span{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#a8533b}
.email-box small{color:#66655c}
.email-foot{font-size:12px;color:#66655c}
.plus-kept{margin:12px 0 4px;font-size:var(--t-xs);color:var(--muted)}
.report h3{margin:18px 0 8px;font-size:var(--t-sm);font-weight:700}
.report p{margin:0;font-size:var(--t-sm);color:var(--ink-2);line-height:1.5}
.report-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.report-stats div{padding:10px;border-radius:var(--r-sm);background:var(--paper-2);display:grid}
.report-stats strong{font-size:20px}
.report-stats span{font-size:var(--t-xs);color:var(--muted)}
.report-bars{display:grid;gap:6px;margin:0;padding:0;list-style:none}
.report-bars li{display:grid;grid-template-columns:150px 1fr 24px;gap:10px;align-items:center;font-size:var(--t-xs)}
.report-bars i{display:block;height:6px;border-radius:999px;background:linear-gradient(90deg,var(--moss) var(--w),var(--paper-3) var(--w))}
.report-quotes{margin:0;padding:0 0 0 14px;font-family:var(--serif);font-size:18px;font-weight:600}
/* Plans: prep packs and gifts */
.prep-packs{max-width:920px;margin:64px auto 0;padding-top:32px;border-top:1px solid var(--line)}
.prep-pack-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-top:20px}
.prep-pack{display:grid;gap:10px;padding:22px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--cream)}
.prep-pack h3{margin:0;font-family:var(--serif);font-size:28px;font-weight:600;line-height:1}
.prep-pack p{margin:0;color:var(--muted);font-size:var(--t-sm);line-height:1.55}
.prep-pack ul{margin:0;padding:0 0 0 16px;font-size:var(--t-sm)}
.prep-pack-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:6px}
.prep-pack-foot strong{font-size:22px}
.gift-band{display:grid;grid-template-columns:1.1fr 1fr;gap:24px;align-items:center;max-width:920px;margin:56px auto 0;padding:28px;border-radius:var(--r-lg);background:var(--paper-2)}
.gift-band h2{margin:6px 0;font-size:var(--t-xl);font-weight:600;letter-spacing:-.03em}
.gift-band p{margin:0;color:var(--muted)}
.gift-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.gift-opt{display:grid;gap:4px;padding:16px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--cream);text-align:left;cursor:pointer}
.gift-opt:hover{border-color:var(--line-strong)}
.gift-opt span{font-size:20px;font-weight:600}
.gift-opt small{font-size:var(--t-xs);color:var(--muted)}
.gift-form{display:grid;gap:12px;margin-top:10px}
.gift-form textarea{width:100%;padding:10px 12px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--cream);font:inherit;resize:vertical}
.demo-note{font-size:var(--t-xs);color:var(--muted)}
@media (max-width:760px){.gift-band{grid-template-columns:1fr}.report-bars li{grid-template-columns:110px 1fr 24px}}

/* Host voice intro: 15 seconds, captions while it plays */
.voice-intro{display:flex;align-items:center;gap:10px;justify-self:start;align-self:flex-start;width:fit-content;padding:5px 12px 5px 5px;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--cream);cursor:pointer}
.voice-intro-play{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:var(--ink);color:var(--paper)}
.voice-intro-play .i{width:12px;height:12px}
.voice-intro-wave{display:flex;align-items:center;gap:2px;height:16px}
.voice-intro-wave i{width:2px;height:40%;border-radius:2px;background:var(--line-strong)}
.voice-intro-wave i:nth-child(2n){height:80%}.voice-intro-wave i:nth-child(3n){height:60%}
.voice-intro.is-playing .voice-intro-wave i{background:var(--accent);animation:wave 1s ease-in-out infinite}
.voice-intro.is-playing .voice-intro-wave i:nth-child(2n){animation-delay:.2s}.voice-intro.is-playing .voice-intro-wave i:nth-child(3n){animation-delay:.4s}
@keyframes wave{50%{transform:scaleY(.4)}}
.voice-intro small{font-size:var(--t-xs);color:var(--muted)}
.voice-intro-text{margin:0;padding-left:12px;border-left:2px solid var(--line-strong);font-size:var(--t-sm);font-style:italic;color:var(--ink-2)}

/* ── Language exchange: swap tag, about-me, real profile numbers (real mode) ── */
.tag-row .tag-swap{display:inline-flex;align-items:center;gap:5px;border-color:color-mix(in srgb,var(--accent) 45%,var(--line));color:var(--accent);font-weight:600}
.tag-swap .i{width:12px;height:12px}
#personBio,.profile-bio{white-space:pre-line}
.profile-about{max-width:640px;margin-top:12px}
.profile-about .profile-bio{margin:0 0 4px;font-size:15px;line-height:1.6;color:var(--ink-2)}
.profile-about .profile-bio.is-empty{color:var(--muted)}
.profile-about .text-btn{font-size:var(--t-xs)}
.profile-rep-note{margin-top:10px;font-size:var(--t-xs);color:var(--muted)}
.profile-modal textarea{width:100%;padding:10px 12px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--paper);color:var(--ink);font:inherit;font-size:15px;line-height:1.5;resize:vertical}
.name-form{display:grid;gap:14px}
.name-form textarea{width:100%;padding:10px 12px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--paper);color:var(--ink);font:inherit;font-size:15px;line-height:1.5;resize:vertical}
.name-form .optional{font-style:normal;font-weight:500;color:var(--muted)}
