@font-face{font-family:'Lora';src:url('/fonts/lora-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}:root{--font-hero:'Lora',Georgia,'Times New Roman',serif}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--hc-page);color:var(--hc-text);font-family:Gilmer,Arial,sans-serif}button,input,textarea,select{font:inherit}button{cursor:pointer}.access{max-width:31rem;margin:0 auto;padding:7vh 24px 72px;background:var(--hc-page);color:var(--hc-text)}.access img{width:154px}.access label{display:grid;gap:8px}.access input,.composer textarea,.memory-offer input,.memory-offer select{border:1px solid var(--hc-border);border-radius:12px;padding:14px}.access-form{display:grid;gap:15px;margin-top:26px}.access-form .primary{justify-self:start}.access-form-heading{font-family:var(--font-hero);font-weight:600;font-size:1.5rem;margin:0}.access-form-lead{margin:-6px 0 4px}.access-quiet-links{display:flex;flex-wrap:wrap;gap:16px;margin-top:2px}.access-switch{margin-top:6px}.access-switch .text-button{display:inline;padding:0}.text-button{border:0;background:transparent;color:var(--hc-accent-interactive);padding:4px 0;text-align:left;font-weight:800}.create-account-panel{display:grid;gap:15px;margin-top:26px}.google-sign-in-status{margin:0;text-align:center;color:var(--hc-text-muted)}.google-sign-in-divider{display:flex;align-items:center;gap:10px;color:var(--hc-text-muted);font-size:.78rem}.google-sign-in-divider>span:first-child,.google-sign-in-divider>span:last-child{height:1px;background:var(--hc-border);flex:1}#google-sign-in-block{display:grid;gap:10px;margin:0 0 18px}#google-sign-in-button{display:flex;justify-content:center;min-height:42px}.first-use-return-pulse{display:block;width:100%;margin:14px 0 4px;padding:11px 12px;border:1px solid var(--hc-border);border-radius:12px;background:var(--hc-surface-raised);color:var(--hc-accent-interactive);font-weight:800;text-align:center}.access h2{font-size:1.35rem;margin:0}.primary{border:0;border-radius:8px;background:var(--hc-action-fill);color:var(--hc-action-text);padding:13px 20px;font-weight:800}.shell{max-width:1180px;margin:auto;min-height:100vh;background:var(--hc-page);display:grid;grid-template-columns:240px 1fr}aside{padding:30px 22px;border-right:1px solid var(--hc-border)}aside img{width:120px}nav{display:grid;gap:8px;margin-top:40px}.nav{border:0;background:transparent;text-align:left;padding:12px;border-radius:10px;color:var(--hc-text-muted)}.nav.active{background:var(--hc-accent-soft);color:var(--hc-accent-interactive);font-weight:800}main{padding:44px 6vw 80px}.panel{display:none}.panel.active{display:block}.eyebrow,small{color:var(--hc-accent-interactive);font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}h1{font-family:var(--font-hero);font-weight:600;font-size:clamp(2.1rem,4.8vw,3.7rem);line-height:1.06;letter-spacing:-.01em;margin:.2em 0}.lead{color:var(--hc-text-muted);line-height:1.6}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:28px}.card,.conversation,.memory{border:1px solid color-mix(in srgb,var(--hc-border) 55%,transparent);border-radius:20px;padding:22px;background:var(--hc-surface);box-shadow:var(--shadow-sm)}.card button{border:1px solid var(--hc-border);background:var(--hc-surface);border-radius:999px;padding:10px 14px}.messages{min-height:220px;max-height:430px;overflow:auto;display:grid;gap:10px}.message{max-width:82%;padding:14px 16px;border-radius:16px;line-height:1.5}.message.you{justify-self:end;background:var(--hc-text);color:var(--hc-page)}.message.companion{background:var(--hc-surface-soft)}.composer{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:end}.composer textarea{resize:vertical;min-height:54px}.composer.typing-only{grid-template-columns:1fr auto}.reply-status{min-height:1.3em}.mic{min-width:52px;height:52px;padding:0 14px;border-radius:50%;border:0;background:var(--hc-action-fill);color:var(--hc-action-text)}.mic.recording{animation:pulse 1s infinite}.meta{font-size:13px;color:var(--hc-text-muted)}.memory-offer{background:var(--hc-surface-soft);padding:16px;border-radius:14px;display:grid;gap:10px;margin-top:12px}.memory{display:flex;justify-content:space-between;gap:20px;margin-top:10px}.memory p{margin-bottom:0}.memory button,.danger{border:0;background:none;color:var(--hc-accent-interactive)}@keyframes pulse{50%{box-shadow:0 0 0 10px color-mix(in srgb,var(--hc-accent-interactive) 13%,transparent)}}@media(max-width:760px){.shell{display:block}aside{padding:18px}nav{display:flex;overflow:auto;margin-top:18px}.nav{white-space:nowrap}main{padding:28px 18px}.grid{grid-template-columns:1fr}.composer{grid-template-columns:auto 1fr}.composer .primary{grid-column:1/-1}.access{padding:5vh 18px 56px}}

.context-form{display:grid;gap:18px;max-width:700px;margin-top:28px}.context-form label{display:grid;gap:8px;font-weight:800}.context-form input,.context-form textarea,.context-form select{border:1px solid var(--hc-border);border-radius:12px;padding:14px;background:var(--hc-surface)}.context-form textarea{min-height:120px;resize:vertical}.assessment-context{background:var(--hc-surface-soft);border-radius:14px;padding:16px}.assessment-context label{display:flex;align-items:flex-start;gap:10px}.assessment-context input{margin-top:3px}

.response-error{display:grid;gap:10px}.retry-response{justify-self:start;border:1px solid var(--hc-accent-interactive);border-radius:999px;background:var(--hc-surface);color:var(--hc-accent-interactive);padding:8px 14px;font-weight:800}

.conversation-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:18px 0 10px}.conversation-actions button{border:1px solid var(--hc-border);border-radius:999px;background:var(--hc-surface);padding:10px 15px;color:var(--hc-text);font-weight:800}@media(max-width:760px){.conversation-actions{align-items:flex-start;flex-direction:column}.conversation-actions .meta{display:none}}

.rhythm-card{display:flex;flex-direction:column;align-items:flex-start}.rhythm-card button{margin-top:auto}.rhythm-eyebrow{display:flex;align-items:center;gap:8px;margin:0 0 6px}.rhythm-time{color:var(--hc-text-muted);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.rhythm-dot{width:3px;height:3px;border-radius:50%;background:var(--hc-text-muted);opacity:.55;flex:none}.rhythm-horizon{margin:0;color:var(--hc-text);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
/* Rhythm identity cue (§G): a top accent bar in each rhythm's canonical colour
   (--rhythm-accent, set by data-rhythm-spectrum in spectrum-v1.css). A solid
   stripe reads on any card ground, so it stays legible in light and dark; text
   is left uncoloured to avoid low-contrast rhythm hues on a dark card. */
.rhythm-card[data-rhythm-spectrum]{box-shadow:inset 0 3px 0 0 var(--rhythm-accent,transparent),var(--shadow-sm)}
/* Rhythm mark (§G): a stroke icon on a solid accent disc. Solid disc + white
   icon reads on any card ground (light/dark); --muted is the pre-token fallback
   so the disc is a neutral chip before spectrum-v1.css resolves. */
.rhythm-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--rhythm-accent,var(--hc-text-muted));color:var(--hc-action-text);margin:0 0 12px;flex:none}
.rhythm-mark svg{display:block}.practise-ground-me{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-top:18px;padding:20px 22px;border:1px solid var(--hc-border);border-radius:18px;background:color-mix(in srgb,var(--hc-surface-soft) 60%,var(--hc-surface))}.practise-ground-me-copy{max-width:560px}.practise-ground-me h2{margin:.1em 0}.practise-ground-me .meta{margin:6px 0 0}.practise-ground-me .primary{white-space:nowrap}.rhythm-journey{max-width:720px;border:1px solid var(--hc-border);border-radius:18px;padding:24px}.back-button{border:0;background:none;color:var(--hc-accent-interactive);padding:0;margin-bottom:22px}.rhythm-fields{display:grid;gap:18px;margin:26px 0}.rhythm-fields label{display:grid;gap:8px;font-weight:800}.rhythm-fields textarea,.rhythm-fields select{width:100%;border:1px solid var(--hc-border);border-radius:12px;padding:14px;background:var(--hc-surface);min-height:52px}.rhythm-fields textarea{min-height:96px;resize:vertical}.rhythm-history{margin-top:36px}.rhythm-history-item{border-top:1px solid var(--hc-border);padding:16px 0}.rhythm-history-item h3{margin:5px 0}.rhythm-history-item p{margin:0;color:var(--hc-text-muted)}
/* Reusable calm empty-state pattern */
.hc-empty{display:grid;justify-items:center;text-align:center;gap:11px;max-width:430px;margin:8px auto;padding:32px 26px;border:1px dashed var(--hc-border);border-radius:18px;background:var(--hc-surface-soft)}
.hc-empty-mark{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--hc-surface);border:1px solid var(--hc-border);color:var(--hc-text-muted)}
.hc-empty-mark svg{width:22px;height:22px}
.hc-empty-title{margin:2px 0 0;font-weight:750;font-size:1.02rem;color:var(--hc-text)}
.hc-empty-note{margin:0;max-width:34ch;font-size:.9rem;line-height:1.55;color:var(--hc-text-muted)}

.composer-help{margin:8px 2px 0}.conversation-settings{border-top:1px solid var(--hc-border);margin-top:16px;padding-top:14px}.conversation-settings summary{cursor:pointer;color:var(--hc-text-muted);font-weight:800}.settings-content{padding:14px 0 2px}.settings-content>label{display:flex;gap:9px;align-items:center}.rhythm-progress{margin:0}.rhythm-question{border:0;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.rhythm-question legend{grid-column:1/-1;font-size:1.25rem;font-weight:800;margin-bottom:12px}.choice-card{position:relative;display:block!important}.choice-card input{position:absolute;opacity:0;pointer-events:none}.choice-card span{display:block;border:1px solid var(--hc-border);border-radius:12px;padding:14px;background:var(--hc-surface);font-weight:400;cursor:pointer}.choice-card input:checked+span{border-color:var(--hc-accent-interactive);background:var(--hc-accent-soft);color:var(--hc-accent-interactive);font-weight:800}.rhythm-other{font-weight:800}.rhythm-other textarea{margin-top:8px}.rhythm-step-actions{display:flex;justify-content:flex-start}.rhythm-step-actions .back-button{margin:0}@media(max-width:760px){.rhythm-question{grid-template-columns:1fr}.composer-help{display:none}}

.conversation-panel.active{display:flex;flex-direction:column;max-width:900px;min-height:calc(100vh - 124px);margin:0 auto}.companion-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;padding:4px 0 22px;border-bottom:1px solid var(--hc-border)}.companion-title{text-align:center}.companion-title .eyebrow{margin:0 0 3px}.companion-title h1{font-size:1.35rem;margin:0}.conversation-home{justify-self:start;border:0;background:transparent;color:var(--hc-text-muted);padding:10px 0}.companion-actions{justify-self:end;display:flex;align-items:center;gap:8px}.companion-actions>button,.conversation-settings>summary{border:1px solid var(--hc-border);border-radius:999px;background:var(--hc-surface);padding:9px 13px;color:var(--hc-text);font-weight:800;list-style:none;cursor:pointer}.conversation-settings{position:relative;border:0;margin:0;padding:0}.conversation-settings summary::-webkit-details-marker{display:none}.conversation-settings .settings-content{position:absolute;z-index:10;right:0;top:48px;width:min(330px,calc(100vw - 36px));padding:18px;background:var(--hc-surface);border:1px solid var(--hc-border);border-radius:16px;box-shadow:0 18px 45px #211f2020}.conversation-panel .conversation{display:flex;flex:1;min-height:0;flex-direction:column;border:0;border-radius:0;padding:0}.conversation-panel .messages{flex:1;min-height:360px;max-height:none;padding:34px 6px 24px;align-content:start}.conversation-panel #reflect-form{position:sticky;bottom:0;padding:12px 0 4px;background:linear-gradient(180deg,transparent 0,var(--hc-surface) 20%)}.conversation-panel .composer{grid-template-columns:1fr auto;align-items:center;gap:8px;padding:9px 10px 9px 18px;border:1px solid var(--hc-border);border-radius:28px;background:var(--hc-surface);box-shadow:0 12px 32px #211f2014}.conversation-panel .composer textarea{min-height:38px;max-height:140px;padding:8px 0;border:0;outline:0;background:transparent;resize:none}.send-message{display:grid;place-items:center;width:46px;height:46px;padding:0;border-radius:50%}.send-message span[aria-hidden]{font-size:1.45rem;line-height:1}.send-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.conversation-panel .composer-help{text-align:center;margin:8px 0 0}.conversation-panel .reply-status{text-align:center;margin:3px 0;min-height:1.3em}
@media(min-width:761px){.conversation-home{visibility:hidden}.conversation-panel .message{max-width:72%}}
@media(max-width:760px){body:has(#conversation.active){background:var(--hc-surface)}body:has(#conversation.active) .shell{min-height:100dvh}body:has(#conversation.active) aside{display:none}body:has(#conversation.active) main{padding:0 16px}.conversation-panel.active{min-height:100dvh}.companion-header{position:sticky;top:0;z-index:8;grid-template-columns:auto 1fr auto;padding:14px 0;background:var(--hc-surface)}.companion-title .eyebrow{display:none}.companion-title h1{font-size:1.08rem}.companion-actions>button{width:42px;height:42px;padding:0;font-size:0}.companion-actions>button::before{content:'+';font-size:1.7rem;font-weight:400}.conversation-settings>summary{width:42px;height:42px;padding:0;font-size:0;text-align:center}.conversation-settings>summary::before{content:'•••';font-size:1rem;letter-spacing:1px}.conversation-panel .messages{min-height:0;padding:28px 2px 18px}.conversation-panel #reflect-form{padding-bottom:max(12px,env(safe-area-inset-bottom))}.conversation-panel .composer{border-radius:26px}.conversation-panel .composer-help{display:none}}
.message.companion strong{font-weight:800;color:var(--hc-text)}

.mobile-page-bar,.drawer-header,.drawer-backdrop,.conversation-menu{display:none}.conversation-welcome{align-self:center;justify-self:center;display:grid;justify-items:center;gap:8px;max-width:340px;margin:auto;padding:24px;border:0;background:transparent;color:var(--hc-text-muted);text-align:center}.conversation-welcome strong{color:var(--hc-text);font-size:1.2rem}.welcome-mark{width:34px;height:34px;border-radius:50%;background:var(--hc-accent-interactive);box-shadow:0 0 0 8px color-mix(in srgb,var(--hc-accent-interactive) 7%,transparent)}.conversation-panel .message{height:max-content}.conversation-panel .composer .primary{grid-column:auto}
@media(max-width:760px){.mobile-page-bar{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:10px;height:62px;padding:8px 16px;border-bottom:1px solid var(--hc-border);background:var(--hc-surface)}.mobile-page-bar button,.conversation-menu{display:grid;place-items:center;width:42px;height:42px;border:0;border-radius:50%;background:var(--hc-surface-soft);font-size:1.25rem}.mobile-page-bar img{width:74px;height:34px;object-fit:contain}.mobile-page-bar span{justify-self:end;color:var(--hc-text-muted);font-weight:800}.conversation-mode .mobile-page-bar{display:none}#mobile-drawer{position:fixed;z-index:40;inset:0 auto 0 0;display:block;width:min(84vw,330px);padding:22px;background:var(--hc-surface);border:0;box-shadow:14px 0 42px #211f2026;transform:translateX(-105%);transition:transform .22s ease}.menu-open #mobile-drawer{transform:translateX(0)}.drawer-header{display:flex;align-items:center;justify-content:space-between}.drawer-header img{width:155px}.drawer-header button{width:42px;height:42px;border:0;border-radius:50%;background:var(--hc-surface-soft);font-size:1.6rem}.drawer-backdrop{position:fixed;z-index:35;inset:0;display:block;border:0;background:var(--hc-overlay);opacity:0;pointer-events:none;transition:opacity .22s ease}.menu-open .drawer-backdrop{opacity:1;pointer-events:auto}#mobile-drawer nav{display:grid;margin-top:30px;overflow:visible}#mobile-drawer .nav{width:100%;padding:14px}.conversation-panel.active{min-height:100dvh}.companion-header{grid-template-columns:auto 1fr auto;padding:10px 0}.conversation-menu{justify-self:start}.companion-title{text-align:left}.companion-title .eyebrow{display:none}.companion-title h1{font-size:1.08rem}.conversation-panel .messages{padding:20px 2px 12px}.conversation-welcome{min-height:46vh}.conversation-panel #reflect-form{padding:10px 0 max(12px,env(safe-area-inset-bottom));background:var(--hc-surface)}.conversation-panel .composer{padding:7px 8px 7px 16px;border:2px solid var(--hc-border);box-shadow:0 8px 24px #211f2018}.conversation-panel .composer:focus-within{border-color:var(--hc-accent-interactive);box-shadow:0 0 0 3px color-mix(in srgb,var(--hc-accent-interactive) 7%,transparent)}.conversation-panel .composer textarea{font-size:16px}.conversation-panel .send-message{width:44px;height:44px}.conversation-panel .composer-help{display:none}}

.conversation-settings>summary{display:flex;align-items:center;gap:8px}.conversation-settings>summary svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}.settings-label{white-space:nowrap}
@media(max-width:760px){body:has(#conversation.active) #mobile-drawer{display:block}.conversation-settings>summary{display:grid!important;place-items:center}.conversation-settings>summary::before{content:none!important}.conversation-settings>summary svg{width:21px;height:21px}.conversation-settings .settings-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.menu-open #mobile-drawer{display:block;z-index:100;transform:translateX(0)}.menu-open .drawer-backdrop{z-index:90}.drawer-header+img{display:none}}

.lfth-home-link{display:inline-flex;width:max-content;border-radius:8px}
.lfth-home-link:focus-visible,.desktop-sidebar-toggle:focus-visible{outline:3px solid color-mix(in srgb,var(--hc-accent-interactive) 25%,transparent);outline-offset:4px}
.desktop-sidebar-toggle{display:none;place-items:center;width:38px;height:38px;border:1px solid var(--hc-border);border-radius:50%;background:var(--hc-surface);color:var(--hc-text);font-size:1.3rem}
.shell,.shell main{transition:grid-template-columns .22s ease,padding .22s ease}
@media(min-width:761px){
  #mobile-drawer{position:relative}
  .desktop-sidebar-toggle{display:grid}
  .desktop-sidebar-close{position:absolute;top:30px;right:14px}
  .desktop-sidebar-open{position:fixed;z-index:18;top:22px;left:max(18px,calc((100vw - 1180px)/2 + 18px));box-shadow:0 8px 24px #211f2020;opacity:0;visibility:hidden;transform:translateX(-8px);transition:opacity .18s ease,transform .18s ease,visibility .18s}
  body.desktop-sidebar-collapsed .shell{grid-template-columns:0 1fr;max-width:none}
  body.desktop-sidebar-collapsed #mobile-drawer{overflow:hidden;padding-left:0;padding-right:0;border-right:0;opacity:0;pointer-events:none}
  body.desktop-sidebar-collapsed .desktop-sidebar-open{opacity:1;visibility:visible;transform:translateX(0)}
  body.desktop-sidebar-collapsed main{padding-left:max(6vw,76px);padding-right:max(6vw,40px)}
}
@media(max-width:760px){
  .lfth-home-link{display:inline-flex}
  #mobile-drawer>.lfth-home-link{display:none}
  #desktop-sidebar-open,#desktop-sidebar-close{display:none!important}
  .drawer-header .lfth-home-link{max-width:calc(100% - 58px)}
  .drawer-header img{display:block;width:155px;max-width:100%;height:auto;object-fit:contain}
}

.onboarding{position:fixed;z-index:80;inset:0;display:grid;place-items:center;padding:24px;background:#f8f3edf2;overflow:auto}
.onboarding[hidden]{display:none}
.onboarding-card{width:min(720px,100%);max-height:calc(100dvh - 48px);overflow:auto;padding:34px;border:1px solid var(--hc-border);border-radius:24px;background:var(--hc-surface);box-shadow:0 24px 70px #211f2020}
.onboarding-logo img{width:170px;height:auto}
.onboarding-progress{display:flex;gap:7px;margin:24px 0}
.onboarding-progress span{width:34px;height:4px;border-radius:99px;background:var(--hc-border)}
.onboarding-progress span.active{background:var(--hc-accent-interactive)}
.onboarding-step{display:none}
.onboarding-step.active{display:block}
.onboarding-step h1{max-width:620px;font-size:clamp(2rem,5vw,3.5rem)}
.onboarding-benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:24px 0}
.onboarding-benefits article{display:grid;gap:7px;padding:18px;border-radius:16px;background:var(--hc-surface-soft)}
.onboarding-benefits span,.onboarding-privacy{color:var(--hc-text-muted);line-height:1.45}
.onboarding-privacy{padding:15px 18px;border-left:3px solid var(--hc-accent-interactive);background:var(--hc-accent-soft)}
.onboarding-options{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:24px 0}
.onboarding-options button{padding:15px 17px;border:1px solid var(--hc-border);border-radius:14px;background:var(--hc-surface);color:var(--hc-text);text-align:left}
.onboarding-options button:hover,.onboarding-options button.selected{border-color:var(--hc-accent-interactive);background:var(--hc-accent-soft);color:var(--hc-accent-interactive);font-weight:800}
.onboarding-actions{display:flex;align-items:center;gap:14px;margin-top:26px}
.text-button{border:0;background:transparent;color:var(--hc-text-muted);padding:12px}
.onboarding-options button:focus-visible,.onboarding-actions button:focus-visible{outline:3px solid color-mix(in srgb,var(--hc-accent-interactive) 22%,transparent);outline-offset:2px}
.starter-prompts{display:flex;flex-wrap:wrap;justify-content:center;gap:9px;margin-top:18px}
.starter-prompts button{border:1px solid var(--hc-border);border-radius:999px;background:var(--hc-surface);color:var(--hc-text-muted);padding:10px 14px}
.starter-prompts button:hover{border-color:var(--hc-accent-interactive);color:var(--hc-accent-interactive)}
@media(max-width:760px){.onboarding{padding:0;place-items:stretch}.onboarding-card{max-height:none;min-height:100dvh;border:0;border-radius:0;padding:24px 20px}.onboarding-benefits,.onboarding-options{grid-template-columns:1fr}.onboarding-benefits{gap:8px}.onboarding-actions{position:sticky;bottom:0;padding:14px 0;background:var(--hc-surface)}.onboarding-actions .primary{flex:1}}

.response-feedback{display:flex;align-items:center;flex-wrap:wrap;gap:7px;max-width:82%;margin:-3px 0 7px;padding-left:8px;color:var(--hc-text-muted);font-size:.82rem}
.feedback-prompt{margin-right:3px}
.response-feedback>button,.feedback-save{border:1px solid var(--hc-border);border-radius:999px;background:var(--hc-surface);color:var(--hc-text-muted);padding:7px 11px}
.response-feedback>button:hover,.response-feedback>button.selected{border-color:var(--hc-accent-interactive);color:var(--hc-accent-interactive);background:var(--hc-accent-soft)}
.feedback-detail{flex:1 0 100%;display:grid;gap:9px;margin-top:5px;padding:13px;border:1px solid var(--hc-border);border-radius:14px;background:var(--hc-surface-soft)}
.feedback-detail[hidden]{display:none}
.feedback-detail select,.feedback-detail textarea{width:100%;border:1px solid var(--hc-border);border-radius:10px;background:var(--hc-surface);padding:10px;color:var(--hc-text)}
.feedback-detail textarea{resize:vertical}
.feedback-consent{display:flex;align-items:flex-start;gap:7px;line-height:1.35}
.feedback-consent input{margin-top:2px}
.feedback-save{justify-self:start;color:var(--hc-text);font-weight:800}
.feedback-status{min-height:1em}
.response-feedback button:focus-visible,.feedback-detail select:focus-visible,.feedback-detail textarea:focus-visible{outline:3px solid color-mix(in srgb,var(--hc-accent-interactive) 22%,transparent);outline-offset:2px}
@media(max-width:760px){.response-feedback{max-width:94%;font-size:.78rem}.feedback-detail{padding:11px}.feedback-save{width:100%}}

/* Keyboard shortcuts apply only when a physical keyboard layout is in use. */
.composer-help{display:none!important}
/* Hidden by default; revealed only for keyboard-first devices via the
   composer-help--ready class that updateComposerGuidance() adds. Capability, not
   width, is the single source of truth — this removes the wide-touch flash where
   a width media query showed the hint before JS could hide it. */
.composer-help.composer-help--ready{display:block!important}

.sign-out{width:100%;margin-top:24px;padding:12px;border:1px solid var(--hc-border);border-radius:10px;background:transparent;color:var(--hc-text-muted);text-align:left}
.sign-out:hover{border-color:var(--hc-accent-interactive);color:var(--hc-accent-interactive)}
.sign-out:focus-visible{outline:3px solid color-mix(in srgb,var(--hc-accent-interactive) 22%,transparent);outline-offset:2px}
@media(min-width:761px){#mobile-drawer{display:flex;min-height:100vh;flex-direction:column}#mobile-drawer nav{flex:1}.sign-out{margin-top:auto}}

/* Keep Companion navigation rows compact on every viewport. */
#mobile-drawer nav{align-content:start;grid-auto-rows:max-content;flex:0 0 auto;min-height:0}
#mobile-drawer .nav{height:auto;min-height:44px;align-self:start}
@media(min-width:761px){#mobile-drawer nav{flex:0 0 auto}}
@media(max-width:760px){#mobile-drawer{overflow-y:auto}#mobile-drawer nav{display:grid;overflow:visible}}


/* ============================================================
   Leadership Heartbeat Companion — bold LFTH hybrid direction
   Visual-only layer. Behaviour hooks remain unchanged.
   ============================================================ */
body{font-family:var(--font-body);background:var(--hc-surface-soft)}
button,input,textarea,select{font-family:var(--font-body)}
:focus-visible{outline:2px solid var(--hc-accent-interactive);outline-offset:2px}
.primary{background:var(--hc-action-fill)}
.primary:hover{background:color-mix(in srgb,var(--hc-action-fill) 82%,var(--hc-text))}
.eyebrow,small,.text-button,.back-button,.retry-response,.memory button,.danger{color:var(--hc-accent-interactive)}

/* Access — quiet page surface (no floating card, no decorative wave). The page
   itself is the surface; the daypart wash is supplied by the canonical Appearance
   owner via --hc-daypart-wash, exactly as on Home. */
.access{position:relative;background-image:linear-gradient(180deg,var(--hc-daypart-wash) 0,transparent 62%)}
.access>.lfth-home-link{display:inline-block}
.access h1{font-family:var(--font-hero);font-weight:600;letter-spacing:-.01em;margin:.15em 0 .1em}
.access>.lead{max-width:32ch}
.access input:focus,.access select:focus,.access textarea:focus{border-color:var(--hc-accent-interactive);box-shadow:0 0 0 3px var(--hc-focus-ring);outline:0}

/* Onboarding — expressive */
.onboarding-card{position:relative;overflow:hidden}
.onboarding-card>.lfth-wave{top:calc(var(--sp-16) * -1);right:calc(var(--sp-12) * -1);color:var(--hc-accent-interactive)}
.onboarding-card>*:not(.lfth-wave){position:relative;z-index:1}
.onboarding-step h1{font-family:var(--font-hero);font-weight:600;letter-spacing:-.01em;font-size:clamp(var(--text-3xl),5vw,var(--text-5xl))}
.onboarding-progress span.active{background:var(--hc-accent-interactive)!important}
.onboarding-options button[aria-pressed="true"],.onboarding-options button.active{border-color:var(--hc-accent-interactive);background:var(--hc-accent-soft);color:var(--hc-accent-interactive)}

/* Shell — light and calm */
.shell{background:var(--hc-page)}
#mobile-drawer{background:var(--hc-surface)}
.nav.active{background:var(--hc-accent-soft);color:var(--hc-accent-interactive)}

/* Today — expressive landing */
#today{max-width:980px;margin:0 auto}
.today-hero{position:relative;padding:var(--sp-8) 0 var(--sp-4);background:var(--hc-hero-bg);color:var(--hc-hero-text)}
.today-hero-copy{max-width:34rem;position:relative;z-index:1}
.today-hero .eyebrow{color:var(--hc-hero-eyebrow);margin:0 0 var(--sp-3)}
.today-hero h1{font-family:var(--font-hero);font-size:clamp(var(--text-3xl),5.5vw,var(--text-5xl));font-weight:600;letter-spacing:-.01em;margin:0 0 var(--sp-4);color:var(--hc-hero-text)}
.today-hero .lead{max-width:34rem;margin:0;color:var(--hc-hero-text);font-size:var(--text-md)}
.today-actions-grid{margin-top:var(--sp-6)}
.today-actions-grid .card{border-radius:var(--radius-lg)}
.rhythm-preview{margin-top:var(--sp-10);padding-top:var(--sp-8);border-top:1px solid var(--hc-border)}
.rhythm-preview-heading{display:flex;align-items:end;justify-content:space-between;gap:var(--sp-6);margin-bottom:var(--sp-5)}
.rhythm-preview-heading .eyebrow{margin:0}
.rhythm-preview-heading h2{max-width:580px;margin:0;font-family:var(--font-display);font-size:var(--text-2xl);line-height:var(--leading-tight)}
.rhythm-preview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-3)}
.rhythm-preview-grid button{display:grid;gap:var(--sp-1);padding:var(--sp-5);border:1px solid var(--hc-border);border-radius:var(--radius-md);background:var(--hc-surface);text-align:left;color:var(--hc-text);transition:transform var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}
.rhythm-preview-grid button:hover{transform:translateY(-2px);border-color:var(--hc-accent-interactive)}
.rhythm-preview-grid span{font-size:var(--text-xs);font-weight:var(--w-bold);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--hc-accent-interactive)}
.rhythm-preview-grid strong{font-size:var(--text-lg)}

/* Conversation — calm, with branded empty state */
.conversation-welcome{position:relative;overflow:hidden;min-height:260px;border-radius:var(--radius-xl);padding:var(--sp-8);isolation:isolate}
.conversation-welcome>.lfth-wave{width:360px;right:calc(var(--sp-16) * -1);top:calc(var(--sp-12) * -1);color:var(--hc-accent-interactive);opacity:calc(var(--wave-opacity) * .75)}
.conversation-welcome>*:not(.lfth-wave){position:relative;z-index:1}
.welcome-mark{background:var(--hc-accent-interactive);box-shadow:0 0 0 8px var(--hc-accent-halo)}
.conversation-panel .composer:focus-within{border-color:var(--hc-accent-interactive);box-shadow:0 0 0 3px var(--hc-focus-ring)}

/* Calm working panels */
#rhythms,#context,#memory{max-width:900px;margin:0 auto}
.rhythm-card,.rhythm-journey,.memory{border-radius:var(--radius-md)}
.context-form label,.rhythm-fields label{font-family:var(--font-display);font-weight:var(--w-bold)}
.context-form input:focus,.context-form textarea:focus,.context-form select:focus,.rhythm-fields textarea:focus,.rhythm-fields select:focus,.memory-offer input:focus,.memory-offer select:focus{border-color:var(--hc-accent-interactive);box-shadow:0 0 0 3px var(--hc-focus-ring);outline:0}
.choice-card input:checked+span{border-color:var(--hc-accent-interactive);background:var(--hc-accent-soft);color:var(--hc-accent-interactive)}

@media(max-width:760px){
  .today-hero{padding:var(--sp-8) var(--sp-6)}
  .rhythm-preview-heading{display:block}
  .rhythm-preview-heading h2{margin-top:var(--sp-2)}
  .rhythm-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .access{margin:var(--sp-5);padding:var(--sp-8) var(--sp-6)}
  .onboarding-card{margin:var(--sp-4)}
}

/* Guided Daily Pulse */
.daily-pulse-cta{margin-top:var(--sp-5);background:var(--hc-surface);color:var(--hc-accent-interactive);box-shadow:var(--shadow-sm)}
.daily-pulse-card{background:linear-gradient(180deg,var(--hc-surface),var(--hc-surface-soft))}
.stillness-stage{min-height:320px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:clamp(var(--sp-6),7vw,var(--sp-10));border:1px solid var(--hc-border);border-radius:var(--radius-lg);background:var(--hc-surface-soft);position:relative;overflow:hidden}
.stillness-stage h3{font-family:var(--font-display);font-size:clamp(1.7rem,4vw,2.5rem);margin:var(--sp-5) 0 var(--sp-3)}
.stillness-stage p:not(.meta){max-width:620px;font-size:1.08rem;line-height:1.75;margin:0}
.stillness-pulse{width:58px;height:58px;border-radius:50%;background:color-mix(in srgb,var(--hc-accent-interactive) 12%,transparent);box-shadow:0 0 0 0 color-mix(in srgb,var(--hc-accent-interactive) 18%,transparent);animation:daily-pulse-breathe 3.8s ease-in-out infinite}
.stillness-hint{margin-top:var(--sp-5)}
.stillness-skip{margin-top:var(--sp-4)}
.daily-pulse-complete{max-width:720px;border:1px solid var(--hc-border);border-radius:var(--radius-lg);padding:clamp(var(--sp-6),6vw,var(--sp-8));background:var(--hc-surface);box-shadow:var(--shadow-sm)}
.daily-pulse-complete h2{font-family:var(--font-display);font-size:clamp(1.8rem,4vw,2.7rem);margin:.25em 0}
.daily-pulse-complete-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3);margin-top:var(--sp-6)}
@keyframes daily-pulse-breathe{0%,100%{transform:scale(.88);box-shadow:0 0 0 0 color-mix(in srgb,var(--hc-accent-interactive) 16%,transparent)}50%{transform:scale(1);box-shadow:0 0 0 18px transparent}}
@media(prefers-reduced-motion:reduce){.stillness-pulse{animation:none}}
@media(max-width:760px){.daily-pulse-cta{width:100%}.stillness-stage{min-height:360px;padding:var(--sp-6) var(--sp-4)}.daily-pulse-complete-actions{align-items:stretch}.daily-pulse-complete-actions>*{width:100%;text-align:center}}
/* --- Pre-enhancement suppression: prevent flash of the pre-refinement layout ---
   The Today orchestrator is the single writer of #today, and My rhythms opens the
   v2 full-screen shells, so the legacy scaffolding below is replaced at runtime by
   suppressLegacyToday()/retireLegacyRhythmForm(). Hiding it in the static stylesheet
   moves that suppression to first paint, removing the cold-load flash of the old
   duplicated Today blocks and inline rhythm form. The app shell is JS-gated
   (#app[hidden] until runtime reveals it), so there is no no-JS state to preserve. */
#today>.today-actions-grid,#today>.rhythm-preview{display:none}
#rhythms>#rhythm-form{display:none}

/* Assessment opportunity chip — a subtle, optional affordance the Companion may
   surface when a reflection is ripe for deeper evidence. Never a hard sell: it
   sits quietly under the companion message, aligned like one, and simply offers
   a link to the relevant LFTH assessment. */
.assessment-chip{justify-self:start;max-width:82%;display:grid;gap:6px;padding:12px 16px;border:1px solid color-mix(in srgb,var(--hc-accent-supporting) 45%,var(--hc-border));border-radius:16px;background:color-mix(in srgb,var(--hc-accent-supporting) 8%,var(--hc-surface))}
.assessment-chip-label{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--hc-text-muted)}
.assessment-chip-link{color:var(--hc-accent-interactive);font-weight:800;text-decoration:none;line-height:1.4}
.assessment-chip-link:hover,.assessment-chip-link:focus-visible{text-decoration:underline}


/* Desktop Quiet Workspace v1
   Mobile Companion remains intimate. At wider viewports the existing canonical
   shell becomes a spacious, bounded leadership room. This layer is presentation
   only: navigation, Home interpretation, rhythm state and daypart meaning remain
   with their existing owners. */
@media(min-width:1080px){
  body{background:var(--hc-page)}
  .shell{
    width:100%;
    max-width:none;
    grid-template-columns:clamp(224px,18vw,264px) minmax(0,1fr);
    align-items:start;
  }
  #mobile-drawer{
    position:sticky;
    top:0;
    min-height:100vh;
    height:100vh;
    padding:34px 24px 26px;
    border-right:1px solid color-mix(in srgb,var(--hc-border) 70%,transparent);
    background:color-mix(in srgb,var(--hc-surface) 92%,var(--hc-page));
    overflow-y:auto;
  }
  #mobile-drawer>.lfth-home-link img{width:126px}
  #mobile-drawer nav{
    margin-top:52px;
    gap:5px;
  }
  #mobile-drawer .nav{
    position:relative;
    min-height:46px;
    padding:12px 14px;
    border-radius:10px;
    font-size:.94rem;
    letter-spacing:.005em;
  }
  #mobile-drawer .nav.active{
    background:color-mix(in srgb,var(--hc-accent-soft) 66%,transparent);
    box-shadow:inset 2px 0 0 var(--hc-accent-interactive);
  }
  #mobile-drawer .sign-out{
    font-size:.82rem;
    color:var(--hc-text-muted);
  }
  .desktop-sidebar-close{top:31px;right:18px}
  .desktop-sidebar-open{left:24px}

  main{
    width:100%;
    min-width:0;
    padding:clamp(54px,6vh,76px) clamp(52px,7vw,112px) 96px;
  }
  .panel.active{
    width:min(100%,1040px);
    margin-inline:auto;
  }
  #today.panel.active{width:min(100%,960px)}
  #today.today-polish-v1 .today-hero{
    min-height:clamp(250px,32vh,360px);
    display:flex;
    align-items:flex-end;
    padding:clamp(32px,5vh,58px) 0 34px;
  }
  #today.today-polish-v1 .today-hero-copy{max-width:660px}
  #today.today-polish-v1 .today-hero h1{
    max-width:15ch;
    font-size:clamp(2.8rem,4.5vw,4.8rem);
  }
  #today.today-polish-v1 .today-hero .lead{max-width:42rem}
  #today-orchestrator-v1{
    max-width:760px;
    margin-top:clamp(30px,5vh,56px);
  }
  #today.today-polish-v1 .home-briefing-orientation{
    padding:clamp(24px,3vw,34px);
  }
  #today.today-polish-v1 .home-briefing-continuation{
    max-width:680px;
    margin-top:18px;
  }

  .conversation-panel.active{
    width:min(100%,1120px);
    min-height:calc(100vh - clamp(108px,12vh,152px));
  }
  .conversation-panel .companion-header{
    margin-bottom:22px;
    padding-bottom:18px;
    border-bottom:1px solid color-mix(in srgb,var(--hc-border) 66%,transparent);
  }
  .conversation-panel .conversation{
    min-height:calc(100vh - 250px);
    display:grid;
    grid-template-rows:minmax(360px,1fr) auto;
    padding:clamp(24px,3vw,38px);
  }
  .conversation-panel .messages{max-height:none}
  .conversation-panel #reflect-form{
    width:min(100%,780px);
    margin-inline:auto;
  }

  #rhythms.panel.active,#context.panel.active{width:min(100%,1040px)}
  #rhythms>.lead,#context>.lead{max-width:680px}
  #rhythms #rhythm-cards{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px;
  }
  #rhythms .rhythm-card{min-height:230px;padding:28px}
}
@media(min-width:1440px){
  .shell{grid-template-columns:264px minmax(0,1fr)}
  main{padding-inline:clamp(88px,9vw,148px)}
}


/* Desktop Practise Horizons v1
   The canonical rhythm cards keep their behavior and state. Desktop hierarchy
   now communicates time: today first, this week next, longer horizons together. */
@media(min-width:1080px){
  #rhythms #rhythm-cards{
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-areas:
      "daily daily"
      "weekly weekly"
      "quarterly annual";
    gap:0 24px;
    margin-top:42px;
  }
  #rhythms .rhythm-card{
    min-height:0;
    margin:0;
    border-width:0 0 1px;
    border-radius:0;
    box-shadow:none;
    background:transparent;
  }
  #rhythms .rhythm-card[data-rhythm-spectrum="daily_pulse"]{
    grid-area:daily;
    min-height:280px;
    padding:40px 0;
    display:grid;
    align-content:center;
    grid-template-columns:minmax(0,1fr) auto;
    column-gap:clamp(40px,7vw,96px);
  }
  #rhythms .rhythm-card[data-rhythm-spectrum="daily_pulse"]>*{grid-column:1}
  #rhythms .rhythm-card[data-rhythm-spectrum="daily_pulse"]>button{
    grid-column:2;
    grid-row:1 / span 4;
    align-self:center;
  }
  #rhythms .rhythm-card[data-rhythm-spectrum="daily_pulse"] h2{
    font-family:var(--font-hero);
    font-size:clamp(2rem,3vw,3rem);
  }
  #rhythms .rhythm-card[data-rhythm-spectrum="weekly_wave"]{
    grid-area:weekly;
    min-height:220px;
    padding:36px 0;
    display:grid;
    align-content:center;
    grid-template-columns:minmax(0,1fr) auto;
    column-gap:clamp(36px,6vw,84px);
  }
  #rhythms .rhythm-card[data-rhythm-spectrum="weekly_wave"]>*{grid-column:1}
  #rhythms .rhythm-card[data-rhythm-spectrum="weekly_wave"]>button{
    grid-column:2;
    grid-row:1 / span 4;
    align-self:center;
  }
  #rhythms .rhythm-card[data-rhythm-spectrum="quarterly_pivot"]{
    grid-area:quarterly;
    padding:34px 24px 34px 0;
  }
  #rhythms .rhythm-card[data-rhythm-spectrum="annual_sabbath"]{
    grid-area:annual;
    padding:34px 0 34px 24px;
  }
  #rhythms .rhythm-card[data-rhythm-spectrum="quarterly_pivot"],
  #rhythms .rhythm-card[data-rhythm-spectrum="annual_sabbath"]{
    border-bottom:0;
  }
  #rhythms .rhythm-card h2{margin-block:12px 8px}
  #rhythms .rhythm-card p{max-width:38rem}
  #rhythms .rhythm-card>button{justify-self:start;margin-top:18px}
  #rhythms .practise-ground-me{margin-top:38px}
}


/* Desktop Long-form Reading v1
   Existing You/My Context, Calling & Identity, Journey and history owners keep
   their DOM and data. This layer provides an editorial measure and safe wrapping. */
@media(min-width:1080px){
  #context.panel.active,
  #memory.panel.active{
    width:min(100%,980px);
  }
  #context>h1,
  #memory>h1{
    max-width:16ch;
  }
  #context>.lead,
  #memory>.lead{
    max-width:680px;
  }
  #context .my-context-v3{
    width:min(100%,860px);
    max-width:860px;
    margin-top:42px;
  }
  #context .my-context-v3-hero,
  #context .my-context-v3-name,
  #context .my-context-v3-facts{
    max-width:780px;
  }
  #context .my-context-v3-fact{
    grid-template-columns:minmax(150px,190px) minmax(0,1fr) auto;
    gap:26px;
    padding-block:21px;
  }
  #context .my-context-v3-fact p,
  #context .my-context-v3-preview p{
    max-width:66ch;
  }
  #context .my-context-v3-review{
    width:min(100%,800px);
    padding:clamp(28px,3vw,38px);
  }
  #context .calling-identity-v1{
    width:min(100%,820px);
    padding:clamp(28px,3vw,38px);
    gap:20px;
  }
  #context .calling-identity-v1-summary,
  #context .calling-identity-v1-list,
  #context .calling-identity-v1-review{
    max-width:70ch;
  }
  #context .calling-identity-v2-section{
    padding-block:22px;
  }
  #context .calling-identity-v2-fields{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
  }
  #context .calling-identity-v2-season-meta{
    max-width:680px;
  }
  #context .calling-identity-v1 p,
  #context .calling-identity-v1 li,
  #context .calling-identity-v1 label,
  #context .calling-identity-v1 textarea,
  #context .calling-identity-v1 input,
  #memory .memory,
  #memory .memory p{
    overflow-wrap:anywhere;
    word-break:break-word;
    min-width:0;
  }
  #memory-list{
    width:min(100%,780px);
    margin-top:36px;
  }
  #memory .memory{
    padding-block:22px;
  }
  .journey-so-far-v1,
  .journey-so-far-v1-content,
  .rhythm-history{
    width:min(100%,820px);
  }
  .journey-so-far-v1 p,
  .journey-so-far-v1 li,
  .rhythm-history p,
  .rhythm-history li{
    max-width:70ch;
    overflow-wrap:anywhere;
  }
}
@media(min-width:761px) and (max-width:1079px){
  #context .calling-identity-v1,
  #context .my-context-v3,
  .journey-so-far-v1,
  .rhythm-history{
    width:100%;
    max-width:100%;
    min-width:0;
  }
  #context .calling-identity-v2-fields{grid-template-columns:1fr}
}
