/* Generated by scripts/build-styles.mjs. Do not edit this file. */
/* Source: src/icons.css */
/* Local Lucide symbols inherit the same color as their control or text. */
.hs-icon{display:inline-block;flex-shrink:0;vertical-align:-.18em;pointer-events:none;overflow:visible}
button>.hs-icon,a>.hs-icon{vertical-align:-.2em}
.hs-empty-icon:has(.hs-icon),.gate-icon:has(.hs-icon),.quick-icon:has(.hs-icon),.learn-sidebar-icon:has(.hs-icon){background:transparent!important;box-shadow:none!important;border:0!important;border-radius:0!important;width:auto!important;height:auto!important;min-width:0!important;padding:0!important;color:var(--primary);font-size:1.4rem}
.hs-symbol:has(.hs-icon){background:transparent!important;box-shadow:none!important;border:0!important;border-radius:0!important;width:auto!important;height:auto!important;padding:0!important;color:var(--primary);font-size:1.6rem}
.learn-game-symbol:has(.hs-icon),.news-card-pin:has(.hs-icon){background:transparent!important;border-radius:0!important;box-shadow:none!important;color:var(--primary);font-size:1.4rem}
[data-hs-icon]{display:inline-block;width:1.15em;height:1.15em;vertical-align:-.18em}

/* Source: src/coherent-care.css */

html,body { min-width: 0; max-width: 100%; background: var(--bg); color: var(--text); }
html[data-theme] body { background: var(--bg); }
body { min-height: 100dvh; font-family: var(--font-ui, "Be Vietnam Pro", sans-serif); font-size: 16px; line-height: 1.65; }
html { scroll-padding-top: 24px; }
button,input,textarea,select { font-family: inherit; accent-color: var(--primary); }
input,textarea,select { font-weight: 400; }
button,a { touch-action: manipulation; }
:is(h1,h2,h3,h4) { font-family: inherit; font-weight: 700; letter-spacing: -.025em; text-wrap: pretty; }
:is(h1,h2,h3,h4,p,li,label) { overflow-wrap: break-word; }
:is(main,section,article,aside,form,.hs-panel,.card,.hs-page-header>div) { min-width: 0; }
:is(input,textarea,select) { max-width: 100%; }
a { color: var(--primary); text-underline-offset: 4px; }
:is(a,button,input,textarea,select,summary):focus-visible { outline: 3px solid var(--primary); outline-offset: 4px; }
input::placeholder,textarea::placeholder { color: var(--text-muted-readable); opacity: 1; }
::selection { background: var(--peach); color: var(--badge-peach-text); }
#app>main,main.hs-page,.section-page,.hs-page { width: 100%; max-width: 1200px; margin-inline: auto; }
.section-page,.hs-page { padding-inline: 28px; }
:is(.hs-grid,.hs-columns,.hs-panel,.card,.post,.hs-post,.care-panel,.hs-dialog) { min-width: 0; }
:is(.hs-panel,.card,.post,.hs-post,.care-panel,.hs-dialog,.hs-empty,.empty-state,.image-dropzone) { border-style: solid; }
:is(.card,.hs-panel,.hs-post,.post,.care-panel) { background: var(--surface); border-color: var(--border); border-radius:var(--hs-radius-panel); box-shadow:none; }
:is(.hs-page-header h1,.page-title h1,.forum-head h1) { font-size: clamp(28px,3vw,36px); line-height: 1.3; }
:is(.hs-page-header p,.page-title p,.forum-head p) { font-size: 16px; line-height: 1.7; color: var(--text-secondary); }
:is(.card,.hs-panel) h2 { font-size: 24px; line-height: 1.4; }
:is(.eyebrow,.hs-eyebrow,.care-eyebrow) { font-size: 14px; line-height: 1.5; letter-spacing: 0; text-transform: none; color: var(--text-secondary); }
.hs-text-primary { color: var(--text-primary); }
.hs-text-secondary { color: var(--text-secondary); }
.hs-text-muted { color: var(--text-muted-readable); }
:is(.hs-muted,.hs-help,.hs-form label small,.auth-privacy-note,.footer-note,.notification-item small,.loading-note) { color: var(--text-muted-readable); }
:is(.auth-modal>p,.hs-empty p,.empty-state p,.auth-gate p,.site-footer p,.notification-item p) { color: var(--text-secondary); }
:is(.hs-error,.form-error) { color: var(--error-text); font-size: 15px; }
:is(button,input,textarea,select):disabled,[aria-disabled=true] { opacity: 1!important; color: var(--disabled-text)!important; background-color: var(--disabled-bg)!important; border-color: var(--disabled-border)!important; box-shadow:none!important; cursor: not-allowed; }
:is(button,input,textarea,select):disabled::placeholder { color: var(--disabled-text)!important; opacity: 1; }

/* A readable toolbar: full navigation on laptops, expandable only below 1,024px. */
.app-header {
  width:100%;max-width:1360px;margin-inline:auto;padding:18px 24px;
  min-height:88px;display:flex;flex-wrap:nowrap;align-items:center;gap:18px;
  background:var(--care-canvas);border-bottom:1px solid var(--border);box-shadow:none;
}
.app-header .brand { flex:0 0 auto;gap:8px;min-height:48px;font-size:23px;line-height:1.2;letter-spacing:-.9px; }
.app-header .brand b { font-weight:700; }
.app-header .logo-box { width:38px;height:40px;border-radius:6px 6px 6px 5px; }
.app-header .logo-box svg { width:27px;height:27px; }
.app-header .segments { display:flex;flex:1 1 auto;order:initial;width:auto;min-width:0;gap:2px;padding:0;margin:0;justify-content:center;align-items:center;background:transparent;border:0;border-radius:0;overflow:visible;white-space:nowrap; }
.app-header .segments a { position:relative;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 9px;min-height:50px;font-size:17px;line-height:1.35;font-weight:600;color:var(--secondary);border:0;border-radius:0;background:transparent;box-shadow:none;text-decoration:none; }
.app-header .segments a>svg { width:21px;height:21px;flex:0 0 auto; }
.app-header .segments a::after { content:'';position:absolute;left:9px;right:9px;bottom:4px;height:3px;background:var(--primary);transform:scaleX(0);transform-origin:center;opacity:0;border-radius:2px; }
.app-header .segments a:hover,.app-header .segments a.active { color:var(--primary);background:transparent;box-shadow:none; }
.app-header .segments a.active { font-weight:650; }
.app-header .segments a.active::after { transform:scaleX(1);opacity:1; }
.app-header .segments .nav-home { width:48px;min-width:48px;padding-inline:9px; }
.app-header .nav-home span { display:none; }
.app-header .header-actions { flex:0 0 auto;margin-left:0;gap:6px; }
.app-header .header-actions :is(.quiet-btn,.small) { font-size:15px;line-height:1.4;min-height:48px;padding:12px 10px;font-weight:600;white-space:nowrap; }
.app-header .header-actions .quiet-btn { color:var(--text); }
.app-header .header-actions .small { border-radius:6px; }
.app-header .header-actions :is(.icon-btn,.avatar) { width:44px;height:48px;min-width:44px;min-height:48px;font-size:21px; }
.app-header .header-actions .icon-btn svg { width:22px;height:22px; }
.app-header .header-actions .avatar { width:44px;height:44px;min-height:44px;border-radius:6px;font-size:14px; }
.app-header .header-actions .mobile-menu-toggle,.app-header .mobile-nav-tools { display:none; }
.app-header .account-menu { top:54px;z-index:15; }
.app-header .account-menu :is(strong,a,button) { font-size:16px; }
.app-header .account-menu :is(a,button) { display:flex;align-items:center;min-height:48px; }
.auth-modal .close svg { width:22px;height:22px; }
.logo-box.mini svg { width:34px;height:34px; }
@media (min-width:1024px) and (max-width:1279px) {
  .app-header { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 20px;padding:16px 24px 12px; }
  .app-header .brand { grid-column:1;grid-row:1; }
  .app-header .header-actions { grid-column:2;grid-row:1; }
  .app-header .segments { grid-column:1/-1;grid-row:2;justify-content:center;margin-top:10px;padding-top:6px;border-top:1px solid var(--border); }
}
@media (max-width:1023px) {
  .app-header { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 16px;padding:16px 24px;min-height:80px; }
  .app-header .brand { grid-column:1;grid-row:1; }
  .app-header .header-actions { grid-column:2;grid-row:1;margin-left:auto;gap:4px; }
  .app-header .header-actions .mobile-menu-toggle { display:grid;width:48px;height:48px;min-width:48px;min-height:48px;color:var(--text); }
  .app-header .header-actions .mobile-menu-toggle svg { width:25px;height:25px; }
  .app-header .header-actions :is(.theme-toggle,[data-notifications]) { display:none; }
  .app-header .segments { display:none;grid-column:1/-1;grid-row:2;width:100%;margin:0;padding:0; }
  .app-header.nav-expanded .segments { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 16px;margin-top:16px;padding:10px 0 0;border-top:1px solid var(--border);overflow:visible;white-space:normal; }
  .app-header.nav-expanded .segments a { min-height:52px;justify-content:flex-start;padding:13px 10px;font-size:17px;line-height:1.5;background:transparent; }
  .app-header.nav-expanded .segments .nav-home { display:flex;width:auto; }
  .app-header.nav-expanded .nav-home span { display:inline; }
  .app-header.nav-expanded .mobile-nav-tools { display:flex;grid-column:1/-1;gap:10px;flex-wrap:wrap;padding-top:12px;margin-top:6px;border-top:1px solid var(--border); }
  .mobile-nav-tool { display:inline-flex;align-items:center;gap:9px;padding:11px 10px;min-height:48px;font-size:16px;line-height:1.5;color:var(--text-secondary);border-radius:6px; }
  .mobile-nav-tool svg { width:21px;height:21px;flex:none; }
  .mobile-nav-tool:hover { background:var(--primary-soft);color:var(--text-link); }
  .app-header .account-menu { right:-52px; }
}
@media (max-width:1199px) { .section-page,.hs-page { padding-inline:24px; } }
@media (max-width:760px) {
  .app-header { padding:14px 16px;gap:0 10px;min-height:76px; }
  .app-header .brand { font-size:20px;gap:7px; }
  .app-header .logo-box { width:32px;height:36px; }
  .app-header .logo-box svg { width:24px;height:24px; }
  .app-header .header-actions .small { display:none; }
  .app-header .header-actions .quiet-btn { display:inline-flex;align-items:center;font-size:15px;padding:11px 5px; }
  .app-header.nav-expanded .segments { grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 10px;margin-top:14px; }
  .section-page,.hs-page { padding-inline:16px; }
}
@media (max-width:480px) {
  .app-header.nav-expanded .segments { grid-template-columns:minmax(0,1fr); }
  .app-header.nav-expanded .segments a { padding-inline:12px;gap:10px; }
}
@media (max-width:360px) {
  .app-header { padding-inline:12px;gap:0 4px; }
  .app-header .brand { font-size:18px;gap:5px; }
  .app-header .logo-box { width:28px;height:32px; }
  .app-header .header-actions .quiet-btn { padding-inline:4px; }
}
html[data-theme=dark] .app-header { background:var(--care-canvas); }
html[data-theme=dark] .app-header .segments a { color:var(--secondary);background:transparent;box-shadow:none; }
html[data-theme=dark] .app-header .segments a.active,html[data-theme=dark] .app-header .segments a:hover { color:var(--primary);background:transparent;box-shadow:none; }


/* Brand, two stable link columns, then the existing care note on its own line. */
.site-footer { display:grid;grid-template-columns:minmax(220px,1fr) minmax(0,1.35fr);align-items:start;gap:26px 64px;width:100%;max-width:1200px;margin-inline:auto;padding:36px 28px 24px;border-top:1px solid var(--border);background:var(--surface);text-align:left; }
.site-footer .footer-brand { min-width:0;padding-top:6px; }
.site-footer b { font-size:28px;line-height:1.25;font-weight:700;letter-spacing:-.9px;color:var(--text-primary); }
.site-footer p { font-size:16px;line-height:1.65; }
.site-footer .footer-brand p { max-width:30ch;margin:9px 0 0;color:var(--text-secondary); }
.site-footer .footer-links { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 36px;width:100%;max-width:none;justify-content:initial; }
.site-footer .footer-links ul { display:grid;align-content:start;gap:2px;margin:0;padding:0;list-style:none;min-width:0; }
.site-footer .footer-links li { min-width:0; }
.site-footer .footer-links a { display:flex;align-items:center;justify-content:flex-start;width:fit-content;max-width:100%;min-height:44px;padding:7px 0;font-size:16px;font-weight:500;line-height:1.5;color:var(--text-secondary);text-decoration:none;text-underline-offset:4px; }
.site-footer .footer-links a:hover { color:var(--text-link);text-decoration:underline; }
.site-footer .footer-note { display:flex;justify-content:space-between;align-items:flex-start;gap:12px 32px;grid-column:1/-1;max-width:none;margin:0;padding-top:20px;border-top:1px solid var(--border);text-align:left; }
.site-footer .footer-note p { margin:0;font-size:14px;line-height:1.65;color:var(--text-muted-readable); }
.site-footer .footer-note p:last-child { text-align:right; }
@media (max-width:760px) {
  .site-footer { grid-template-columns:minmax(0,1fr);gap:22px;padding:30px 24px 24px; }
  .site-footer .footer-brand { padding-top:0; }
  .site-footer .footer-links { gap:12px 24px; }
  .site-footer .footer-note { display:grid;gap:8px;padding-top:18px; }
  .site-footer .footer-note p:last-child { text-align:left; }
}
@media (max-width:360px) { .site-footer { padding-inline:18px; }.site-footer .footer-links { gap:12px 16px; } }

/* A control's shape and contrast stay steady across features. */
.mint-btn,.outline-btn,.hs-small-btn {
  border-radius:var(--hs-radius-control);
  font-weight: 600;
  letter-spacing: 0;
  box-shadow:none;
}
.mint-btn { background: var(--primary); color: var(--hs-on-action); }
.mint-btn:hover { background: var(--hs-action-hover); color: var(--hs-on-action); box-shadow:none; }
.outline-btn { background: var(--surface); color: var(--text-link); }
.outline-btn:hover { background: var(--cream); box-shadow:none; }
.hs-small-btn { background: var(--primary-soft); color: var(--text-link); }
.hs-form :is(input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea),
.auth-modal input:not([type=checkbox]),.hs-input {
  border-radius:var(--hs-radius-control);
  background: var(--surface);
  line-height: 1.6;
}
.search { border-radius:var(--hs-radius-control); background: var(--surface); }
.search:focus-within { outline: 2px solid var(--text-link); outline-offset: 3px; }
.hs-notice { border-radius:6px; }
.hs-error { border-radius:6px; border-left: 1px solid var(--error-text); }
.hs-empty-icon {
  width: 58px;
  height: 58px;
  border-radius:6px;
  background: var(--cream);
  color: var(--text-link);
}
.hs-empty h2 { font-size: 24px; line-height: 1.4; }
.hs-empty p { max-width: 48ch; font-size: 16px; line-height: 1.75; }
.hs-panel,.care-panel { border-radius:var(--hs-radius-panel); box-shadow:none; }
.hs-badge,.hs-tag { letter-spacing: 0; }
.toast {
  border-radius:6px;
  border: 1px solid var(--border);
  border-left: 1px solid var(--text-link);
  box-shadow:none;
  font-size: 15px;
  line-height: 1.6;
}

/* Account dialogs feel like a small, readable form, even on a large display. */
.auth-modal {
  width: min(560px,calc(100% - 32px));
  padding: 32px;
  border-radius:6px;
  box-shadow:none;
}
.auth-modal .logo-box.mini {
  margin: 0 0 22px;
  width: 46px;
  height: 46px;
  color: var(--text-primary);
  background: var(--peach);
  border-radius:6px 6px 6px 6px;
}
.auth-modal h2 { font-size: 28px; line-height: 1.3; margin: 0 0 12px; }
.auth-modal>p { font-size: 16px; line-height: 1.7; margin-bottom: 24px; }
.auth-modal form { gap: 18px; }
.auth-modal :is(label,input,.mint-btn) { font-size: 16px; }
.auth-modal :is(.auth-show-password,.auth-forgot,.switcher button) { font-size: 14px; }
.auth-modal :is(.consent-line,.auth-privacy-note,.auth-other-logins a) {
  font-size: 14px;
  line-height: 1.7;
}
.auth-modal .consent-line { align-items: flex-start; }
.auth-modal .consent-line input { flex: none; margin-top: 5px; }
.auth-modal .switcher { font-size: 15px; margin: 20px 0 8px; }
.auth-modal .auth-privacy-note { display: block; margin-top: 16px; }
.auth-modal .auth-other-logins { gap: 4px 18px; margin-top: 12px; padding-top: 12px; }
.auth-modal .form-error:empty { margin: 0; }
.auth-gate { background: none; padding-block: clamp(36px,8vh,80px); }
.auth-gate .gate-icon { background: var(--cream); border-radius:6px 6px 6px 6px; }
.auth-gate h1 { font-size: clamp(28px,3vw,38px); max-width: 24ch; }
.auth-gate p { font-size: 17px; max-width: 52ch; }
.auth-gate .mint-btn { font-size: 16px; }


/* Standalone management uses the same identity, with compact working density. */
.management-page { font-size: 16px; line-height: 1.65; }
.management-page .topbar {
  padding: 20px 24px;
  background: var(--bg);
  border-bottom: 1px solid var(--border);
}
.management-page .topbar .brand { font-size: 22px; gap: 12px; }
.management-page .brand-mark {
  width: 44px; height: 46px; font-size: 26px;
  border-radius:6px 6px 6px 6px;
  background: var(--peach); color: var(--text-primary);
}
.management-page .brand small { font-size: 13px; letter-spacing: 0; }
.management-page .topbar .account { font-size: 14px; gap: 8px; }
.management-page .shell { padding: 28px 24px 64px; }
.management-page :is(.page-heading,.editor-heading,.section-heading) { gap: 16px; margin-bottom: 22px; }
.management-page :is(h1,.login-card h1) { font-size: clamp(28px,3vw,36px); line-height: 1.3; }
.management-page h2 { font-size: 25px; line-height: 1.4; }
.management-page h3 { font-size: 19px; line-height: 1.5; }
.management-page :is(.panel,.platform-card,.stat-card) {
  border-color: var(--border); border-radius:6px; box-shadow:none;
}
.management-page .panel { padding: 24px; margin-bottom: 20px; }
.management-page :is(label,input,select,textarea,.lesson-title) { font-size: 16px; line-height: 1.6; }
.management-page :is(input,select,textarea) { padding: 10px 12px; min-height: 46px; }
.management-page input:is([type=checkbox],[type=radio]) { min-height: 20px; }
.management-page :is(.hint,.muted,.lesson-meta,.badge,.form-feedback,.notice) { font-size: 14px; line-height: 1.65; }
.management-page .button {
  min-height: 44px; padding: 10px 14px; font-size: 15px;
  border-radius:var(--hs-radius-control); box-shadow:none;
}
.management-page .button.primary { background: #705176; color: #fff; }
.management-page .button.primary:hover { background: #604366; }
.management-page .login-card {
  max-width: 560px; margin: 40px auto; padding: 32px;
  background: var(--surface); border-top: 1px solid var(--border);
}
.management-page .login-card p { font-size: 16px; }
.management-page .eyebrow { font-size: 13px; letter-spacing: 0; }
.management-page .content-navigation { gap: 0; border-block: 1px solid var(--border); margin-bottom: 28px; }
.management-page .content-nav-card {
  min-height: 84px; padding: 16px 12px; border: 0; border-radius: 0;
  border-bottom: 1px solid transparent; background: transparent; box-shadow:none;
}
.management-page .content-nav-card.current {
  background: var(--primary-soft); border-bottom-color: var(--text-link);
}
.management-page .content-nav-card strong { font-size: 15px; }
.management-page .content-nav-card small { font-size: 13px; line-height: 1.5; }
.management-page .content-nav-card:hover { background: var(--cream); box-shadow:none; }
.management-page .content-nav-card>span:first-child { font-size: 22px; }
.management-page .platform-nav { border-radius:6px; }
.management-page .platform-nav button { border-radius:6px; font-size: 15px; }
.management-page .platform-nav button[aria-current] { box-shadow:none; }
.management-page .shell>.page-heading,.management-page .platform-content>.page-heading {
  padding: 0 0 22px; border: 0; border-bottom: 1px solid var(--border);
  border-radius: 0; background: transparent;
}
.management-page .repeat-card { border-radius:6px; padding: 16px; }
.management-page .lesson-row { padding-block: 18px; }
.management-page dialog { border-radius:6px; padding: 24px; background: var(--surface); }
.management-page .dialog-heading { gap: 16px; }

/* Staff inbox preserves its viewport and recipient behavior. */
.staff-space .staff-header {
  background: var(--bg); border-bottom-color: var(--border);
}
.staff-space .staff-header .brand { font-size: 23px; color: var(--text-primary); }
.staff-space .staff-header .logo-box {
  width: 38px; height: 40px; border-radius:6px 6px 6px 6px;
  color: var(--text-primary); background: var(--peach);
}
.staff-space .staff-header>a:last-child { color: var(--primary); font-size: 14px; min-height: 44px; display: inline-flex; align-items: center; gap: 8px; }
.staff-space .staff-login {
  max-width: 560px; margin: 32px auto; padding: 32px;
  border-radius:6px; border-top: 1px solid var(--peach); background: var(--surface);
}
.staff-space .staff-login h1 { font-size: 30px; line-height: 1.3; }
.staff-space .staff-login :is(p,label,input,.mint-btn) { font-size: 16px; }
.staff-space .staff-login :is(.hs-eyebrow,.staff-source) { font-size: 14px; line-height: 1.7; }
.staff-space .staff-tools { border-color: var(--border); background: var(--surface); }
.staff-space .staff-tools summary { font-size: 14px; min-height: 44px; }
.staff-space .staff-inbox { border-radius:6px; border-color: var(--border); }
.staff-space .staff-inbox-list { background: var(--surface); }
.staff-space .staff-contact { border-radius:6px; }
.staff-space .staff-contact.selected { background: var(--primary-soft); border-color: var(--text-link); }
.staff-space .staff-contact.selected .staff-contact-copy :is(strong,span,small) { color: var(--text-primary); }
.staff-space .staff-chat-bubble { border: 0; }
.staff-space .staff-chat-message.mine .staff-chat-bubble {
  background: var(--primary-soft); color: var(--text-primary);
}

/* Password pages remain private and self-contained: only local assets. */
.account-page { font-size: 16px; background: var(--bg); }
.account-page>header { max-width: 1200px; padding: 24px; font-size: 15px; }
.account-page>header .brand { font-size: 24px; }
.account-page>header .brand>span {
  width: 42px; height: 44px; background: var(--peach); color: var(--text-primary);
  border-radius:6px 6px 6px 6px;
}
.account-page .password-layout { gap: clamp(24px,5vw,70px); margin-top: 32px; }
.account-page .welcome h1 { font-size: clamp(32px,4vw,48px); line-height: 1.25; }
.account-page .welcome>p:not(.eyebrow) { font-size: 17px; line-height: 1.75; max-width: 40ch; }
.account-page .eyebrow { font-size: 13px; }
.account-page .password-card {
  padding: 32px; background: var(--surface);
  border: 1px solid var(--border); border-top: 1px solid var(--peach);
  border-radius:6px; box-shadow:none;
}
.account-page .password-card h2 { font-size: 28px; }
.account-page .password-card :is(p,label,input,button) { font-size: 16px; }
.account-page :is(small,.back-link,.privacy) { font-size: 14px; }
.account-page .password-card button:not(.logout-link) { background: #705176; color: #fff; }
.account-page .password-card input { background: var(--surface); }

@media (max-width:760px) {
  .auth-modal { padding: 26px 22px; }
  .auth-modal h2 { font-size: 25px; }
  .site-footer { grid-template-columns: 1fr; gap: 28px; padding: 30px 24px 22px; margin-top: 20px; border-radius:6px 6px 0 0; }
  .site-footer .footer-links { gap: 20px; }
  .site-footer .footer-note { gap: 8px; }
  .management-page .shell { padding: 22px 16px 44px; }
  .management-page .topbar { padding: 18px 16px; }
  .management-page .panel,.management-page dialog { padding: 20px; }
  .management-page .login-card { margin: 24px auto; }
  .management-page .content-nav-card { min-height: 0; padding: 12px 10px; }
  .staff-space .staff-login { margin: 20px auto; padding: 24px; }
  .staff-space .staff-header .brand { font-size: 19px; }
  .staff-space .staff-header { gap: 12px; }
  .staff-space .staff-header>a:last-child { font-size:13px; }
  .account-page>header { padding: 18px; gap: 12px; font-size: 13px; }
  .account-page>header .brand { font-size: 20px; }
  .account-page .password-layout { margin-top: 16px; gap: 24px; }
  .account-page .welcome h1 { margin: 10px 0; font-size: 30px; }
  .account-page .welcome>p:not(.eyebrow) { font-size: 16px; }
  .account-page .password-card { padding: 24px 20px; }
}
@media (max-width:380px) {
  .site-footer { padding-inline: 18px; }
  .site-footer .footer-links { gap: 14px; }
  .site-footer .footer-links a { font-size: 14px; }
  .staff-space .staff-header .brand { font-size: 17px; gap: 6px; }
}



/* Brand chrome is deliberately quiet: icons inherit ink, only the active link is accented. */
.app-header { background: var(--bg); border-color: var(--border); box-shadow:none; }
.app-header .logo-box,.auth-modal .logo-box.mini,.management-page .brand-mark,.staff-space .staff-header .logo-box,.account-page>header .brand>span {
  border: 0; border-radius:6px; background: var(--peach); color: var(--hs-accent-ink); box-shadow:none;
}
.app-header .segments { background: transparent; }
.app-header .segments a { border-radius:6px; color: var(--text-secondary); }
.app-header .segments a .hs-icon { background: none; box-shadow:none; color: inherit; }
.app-header .segments a.active { color: var(--primary); background: transparent; }
.app-header .segments a::after { height: 2px; }
.app-header .avatar { background: var(--cream); color: var(--hs-accent-ink); border: 1px solid var(--border); box-shadow:none; }
.app-header .account-menu { width: min(304px,calc(100vw - 32px)); padding: 10px; background: var(--surface); color: var(--text); border: 1px solid var(--border); border-radius:6px; box-shadow:none; }
.app-header .account-menu strong { display: block; padding: 10px 12px 14px; margin-bottom: 6px; border-bottom: 1px solid var(--border); }
.app-header .account-menu :is(a,button) { border-radius:6px; }
.app-header .icon-btn,.app-header .quiet-btn { background: transparent; color: var(--text-secondary); }
.mint-btn,.outline-btn,.hs-small-btn { min-height: 46px; padding: 11px 18px; font-size: 16px; line-height: 1.5; letter-spacing: 0; border-radius:var(--hs-radius-control); box-shadow:none; }
html[data-theme] .mint-btn,.app-header .header-actions .small,.management-page .button.primary,.news-editor-page .news-button.primary,.account-page .password-card button:not(.logout-link) {
  background: var(--primary); color: var(--hs-on-action); border: 1px solid transparent; box-shadow:none;
}
.outline-btn,.hs-small-btn,.management-page .button.secondary { background: var(--surface); color: var(--primary); border: 1px solid var(--control-border); box-shadow:none; }
.hs-small-btn { font-size: 14px; padding-inline: 13px; }
:is(.quiet-btn,.text-link,.switcher button) { font-size: 15px; }
:is(.close,.hs-iconbutton,.hs-small-btn) { min-height: 44px; min-width: 44px; }
:is(.auth-show-password,.auth-forgot,.auth-other-logins a,.switcher button) { min-height: 44px; display: inline-flex; align-items: center; }
.auth-forgot { justify-content: flex-end; text-decoration: underline; text-underline-offset: 4px; }
.auth-password-field { display: grid; gap: 8px; min-width: 0; }
.auth-password-field input { width: 100%; min-width: 0; }
.auth-password-label { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.auth-show-password { padding: 3px; color: var(--primary); text-decoration: underline; text-underline-offset: 4px; }
.auth-other-logins { display: flex; flex-wrap: wrap; justify-content: center; border-top: 1px solid var(--border); }
.auth-gate { min-height: 63vh; background: none; }
.auth-modal { background: var(--surface); color: var(--text); border: 1px solid var(--border); max-height: 90dvh; }
.auth-modal input:not([type=checkbox]) { height: 50px; }
.hs-dialog { width: min(860px,calc(100% - 32px)); max-width: none; padding: 28px; }
.hs-dialog,dialog.lesson-dialog,dialog.news-dialog,.management-page dialog { max-height: 90dvh; color: var(--text); background: var(--surface); border: 1px solid var(--border); border-radius:6px; box-shadow:none; }
dialog::backdrop { background: #211C2069; backdrop-filter: none; }
.hs-form label,.hs-label { font-size: 16px; color: var(--text); }
.hs-form :is(input:not([type=checkbox]):not([type=radio]):not([type=range]),textarea,select),.hs-input,.auth-modal input:not([type=checkbox]),.search { color: var(--text); border: 1px solid var(--control-border); font-size: 16px; }
.search { height: auto; min-height: 48px; }
.search input { font-size: 16px; background: transparent; }
.hs-loading,.hs-pagination { font-size: 16px; color: var(--text-secondary); }
.hs-notice { background: var(--cream); color: var(--text-secondary); border-color: var(--border); font-size: 15px; }
.hs-notice strong { color: var(--text); }
.hs-error { background: var(--error-bg); }
.hs-badge,.hs-tag { display: inline-flex; align-items: center; gap: 6px; width: fit-content; max-width: 100%; padding: 5px 10px; border: 0; border-radius:6px; background: var(--badge-peach-bg); color: var(--badge-peach-text); font-size: 14px; font-weight: 600; line-height: 1.5; vertical-align: middle; }
.hs-badge--mint,.hs-tag:is(.confirmed,.completed,.read) { background: var(--badge-mint-bg); color: var(--badge-mint-text); }
.hs-badge--sun,.hs-tag.pending { background: var(--badge-sun-bg); color: var(--badge-sun-text); }
.hs-badge--lilac { background: var(--hs-accent-soft); color: var(--hs-accent-ink); }
.hs-tag:is(.cancelled,.declined) { background: var(--error-bg); color: var(--error-text); }
.hs-badge .hs-icon { width: 1em; height: 1em; }
.toast { background: var(--surface); color: var(--text); font-size: 15px; box-shadow:none; border-left-color: var(--primary); bottom: max(24px,env(safe-area-inset-bottom)); }
.notification-item p { font-size: 16px; }
.notification-item small { font-size: 14px; }
.notification-item strong { font-size: 16px; }
.notification-item.unread { border-left-color: var(--primary); }
.site-footer { margin-top: 32px; padding-block: 40px 24px; background: var(--cream); border: 0; border-radius:6px 6px 0 0; }
.footer-wordmark { display: flex; align-items: center; gap: 12px; }
.footer-wordmark>svg { width: 40px; height: 40px; flex: none; color: var(--primary); }
.site-footer b { font-size: 32px; }
.site-footer .footer-links h2 { margin: 0 0 12px; font-size: 14px; line-height: 1.5; color: var(--text); }
.site-footer .footer-links a { font-size: 15px; }
.site-footer .footer-note p { max-width: 44ch; font-size: 13px; }
.management-page .button.primary,.account-page .password-card button:not(.logout-link) { background: var(--primary); color: var(--hs-on-action); }
.management-page .content-nav-card.current { background: var(--cream); border-bottom-color: var(--primary); }
.management-page :is(.panel,.platform-card,.stat-card,.repeat-card),.staff-space .staff-tools { background: var(--surface); }
.staff-space .staff-header .brand,.management-page .topbar .brand { color: var(--text); }
.account-page .welcome .garden { background: var(--cream); }
.account-page .password-card { border-top: 1px solid var(--border); }
.skip-link { background: var(--primary); color: var(--hs-on-action); font-size: 16px; }
.care-noscript { padding: 40px; max-width: 700px; margin: auto; line-height: 1.8; }
@media(hover:hover) and (pointer:fine) {
  html[data-theme] .mint-btn:hover,.app-header .header-actions .small:hover,.management-page .button.primary:hover,.news-editor-page .news-button.primary:hover,.account-page .password-card button:not(.logout-link):hover { background: var(--hs-action-hover); color: var(--hs-on-action); box-shadow:none; }
  .outline-btn:hover,.hs-small-btn:hover,.management-page .button.secondary:hover { background: var(--cream); color: var(--primary); border-color: var(--primary); box-shadow:none; }
  .app-header .icon-btn:hover,.app-header .account-menu :is(a,button):hover { background: var(--cream); color: var(--primary); }
  .app-header .segments a:hover { color: var(--primary); background: transparent; }
}
@media(max-width:760px) {
  .hs-dialog { padding: 22px; }
  .site-footer { margin-top: 24px; padding-top: 30px; }
  .site-footer b { font-size: 28px; }
  .staff-space .staff-header>a:last-child { font-size: 14px; }
}
@media print { body,.site-footer { background: white; } }

/* Tactile actions: one regional fill, a quiet top edge and clear press feedback. */
html[data-theme] .mint-btn,.app-header .header-actions .small,.management-page .button.primary,.news-editor-page .news-button.primary,.account-page .password-card button:not(.logout-link) {
  box-shadow:none;
}
@media(hover:hover) and (pointer:fine) {
  html[data-theme] .mint-btn:hover,.app-header .header-actions .small:hover,.management-page .button.primary:hover,.news-editor-page .news-button.primary:hover,.account-page .password-card button:not(.logout-link):hover {
    box-shadow:none;
  }
}

/* Source: src/motion.css */
/* One motion system. Frequent tasks remain still; feedback never delays input.
   No page/panel transform, body observer, scroll hijacking or entrance replay. */
#app>main,main.hs-page,.care-reveal,.hs-message,.staff-bubble,
.connect-workspace.show-thread .connect-chat,details[open]>*:not(summary) { animation: none; }
:is(.mint-btn,.outline-btn,.hs-small-btn,.management-page .button,.news-button,.account-page button),
.app-header :is(.icon-btn,.avatar,.segments a),.hs-tabs button,.filters button,.category-row button,
.account-menu :is(a,button),.hs-mood-picker button,.connect-contact {
  transition: background-color 160ms ease,color 160ms ease,border-color 160ms ease;
}
.app-header .segments a::after { transition: transform 160ms var(--hs-ease),opacity 160ms ease; }
@media(prefers-reduced-motion:no-preference) {
  ::view-transition { pointer-events: none; }
  ::view-transition-group(root) { animation-duration: 200ms; animation-timing-function: ease-out; }
  ::view-transition-old(root) { animation: hs-page-out 160ms ease-out both; }
  ::view-transition-new(root) { animation: hs-page-in 200ms ease-out both; }
  html[data-input=pointer] :is(.mint-btn,.outline-btn,.hs-small-btn,.management-page .button,.home-solid-link) {
    transition: transform 120ms var(--hs-ease),background-color 160ms ease,color 160ms ease,border-color 160ms ease;
  }
  html[data-input=pointer] :is(.mint-btn,.outline-btn,.hs-small-btn,.management-page .button,.home-solid-link):active:not(:disabled) { transform: translateY(1px); }
  html[data-input=pointer] .app-header.nav-expanded .segments { animation: hs-menu-open 180ms var(--hs-ease); transform-origin: top center; }
  html[data-input=pointer] .account-menu:not(.hidden) { animation: hs-menu-open 180ms var(--hs-ease); transform-origin: top right; }
  /* Fade only: autofocus and typing never ride a moving dialog. */
  html[data-input=pointer] dialog[open],html[data-input=pointer] #ai-history-panel:not([hidden]) { animation: hs-surface-open 180ms ease-out; }
  html[data-input=pointer] dialog[open]::backdrop { animation: hs-surface-open 180ms ease-out; }
  html[data-input=pointer] .toast { animation: hs-surface-open 160ms ease-out; }
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .app-header .segments a:hover::after { opacity: 1; transform: scaleX(.4); }
  .app-header .segments a.active:hover::after { transform: scaleX(1); }
}
@keyframes hs-page-out { to { opacity: 0; } }
@keyframes hs-page-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes hs-menu-open { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
@keyframes hs-surface-open { from { opacity: 0; } to { opacity: 1; } }
/* Keyboard action and assistive synthetic clicks are immediate, including the destination page. */
html[data-input=keyboard] *,html[data-input=keyboard] *::before,html[data-input=keyboard] *::after { animation: none!important; transition: none!important; scroll-behavior: auto!important; }
html[data-input=keyboard]::view-transition-group(*),html[data-input=keyboard]::view-transition-old(*),html[data-input=keyboard]::view-transition-new(*) { animation: none!important; }
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation: none!important; transition: none!important; scroll-behavior: auto!important; }
  ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*) { animation: none!important; }
}

/* Source: src/color-features.css */
/* Functional pages: one identifiable accent per region, neutral reading surfaces.
   Field = introductory/owned-state plane; soft = secondary controls. Derived OKLCH
   ramps live in coherent-care.css, so components do not invent their own colors.
   Shared regional tokens and chrome live in coherent-care.css; Lucian controls
   and motion are scoped separately. Existing task layouts and chat geometry stay intact. */
html:root :is(.learn-page,.connect-page,.confession-page,.journal-page,.profile-page,.game-page,.news-page) {
  padding-bottom: 48px;
}
html:root :is(.learn-hero,.connect-welcome,.confession-hero,.journal-welcome,.profile-welcome,.game-heading,.news-page-heading) {
  border: 0;
  border-radius:6px;
  box-shadow:none;
  background: var(--hs-accent-field)!important;
}
html:root :is(.learn-hero,.connect-welcome,.confession-hero,.journal-welcome,.game-heading,.news-page-heading) {
  padding: 22px 24px;
  margin: 0 0 24px;
}
html:root :is(.learn-hero,.connect-welcome,.confession-hero,.journal-welcome,.profile-welcome,.game-heading,.news-page-heading) h1 {
  color: var(--hs-accent-ink);
  font-size: clamp(28px,2.3vw,34px);
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: -.025em;
  margin: 0 0 10px;
}
html:root :is(.learn-hero-copy,.connect-welcome,.confession-hero,.journal-welcome,.profile-welcome,.game-heading,.news-page-heading) p {
  color: var(--hs-ink-secondary);
  font-size: 16px;
  line-height: 1.7;
  max-width: 70ch;
  margin: 0;
}
html:root :is(.journal-welcome-art,.confession-art) { display: none; }
html:root :is(.journal-page,.profile-page,.connect-page,.confession-page) :is(.hs-panel,.hs-provider,.hs-appointment,.hs-post) {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius:6px;
  box-shadow:none;
  color: var(--text);
}
html:root :is(.journal-page,.profile-page,.connect-page,.confession-page) :is(.hs-panel>p,.hs-provider p,.hs-appointment p,.hs-post-body,.hs-help) {
  color: var(--hs-ink-secondary);
}
html:root :is(.journal-page,.profile-page,.connect-page,.confession-page) :is(.hs-tag,.hs-avatar) {
  background: var(--hs-accent-soft);
  color: var(--hs-accent-ink);
}
html:root :is(.connect-page,.confession-page) .hs-tabs {
  gap: 6px;
  padding: 0 0 12px;
  margin-bottom: 20px;
  border-bottom: 1px solid var(--line);
}
html:root :is(.connect-page,.confession-page) .hs-tabs button {
  background: transparent;
  border: 1px solid transparent;
  border-radius:6px;
  color: var(--hs-ink-secondary);
  min-height: 44px;
  box-shadow:none;
}
html:root :is(.connect-page,.confession-page) .hs-tabs button.selected {
  background: var(--hs-accent-soft);
  color: var(--hs-accent-ink);
  border-color: transparent;
  box-shadow:none;
  font-weight: 600;
}

/* Library: the search and topic ribbon lead directly into the catalogue. */
html:root .learn-page .learn-find-bar { padding: 0; border: 0; background: transparent; box-shadow:none; }
html:root .learn-page .library-toolbar { gap: 12px; }
html:root .learn-page .learn-search { height: 48px; background: var(--surface); border: 1px solid var(--line); border-radius:6px; }
html:root .learn-page .saved-filter { height: 48px; border-radius:6px; background: var(--surface); border-color: var(--line); color: var(--text); }
html:root .learn-page .saved-filter[aria-pressed=true] { background: var(--hs-accent-soft); color: var(--hs-accent-ink); border-color: var(--primary); }
html:root .learn-page .learn-layout { margin-top: 16px; }
html:root .learn-page .learn-categories { gap: 6px; padding-bottom: 20px; }
html:root .learn-page .learn-categories button { background: transparent; color: var(--hs-ink-secondary); border: 1px solid transparent; border-radius:6px; box-shadow:none; font-weight: 400; }
html:root .learn-page .learn-categories button.selected { background: var(--hs-accent-soft); color: var(--hs-accent-ink); box-shadow:none; border-color: transparent; font-weight: 600; }
html:root .learn-page .learn-cards { gap: 20px; }
html:root .learn-page .learn-card { background: var(--surface); border: 1px solid var(--line); border-radius:6px; padding: 21px; min-height: 280px; box-shadow:none; transform: none; }
html:root .learn-page .learn-card:hover { border-color: var(--primary); box-shadow:none; transform: none; }
html:root .learn-page .learn-card-top { margin-bottom: 12px; }
html:root .learn-page .learn-lesson-icon { width: 40px; height: 40px; background: var(--hs-accent-soft); color: var(--hs-accent-ink); border: 0; border-radius:6px; box-shadow:none; }
html:root .learn-page .learn-card-category { padding: 0; background: transparent; color: var(--hs-ink-secondary); border: 0; border-radius: 0; font-weight: 400; font-size: 13px; }
html:root .learn-page .learn-card h3 { font-size: 21px; line-height: 1.5; font-weight: 600; margin: 12px 0 10px; }
html:root .learn-page .learn-card p { font-size: 16px; line-height: 1.7; color: var(--hs-ink-secondary); }
html:root .learn-page .bookmark-btn { background: transparent; color: var(--hs-ink-secondary); border: 1px solid transparent; border-radius:6px; }
html:root .learn-page .bookmark-btn.is-saved { background: var(--hs-accent-soft); color: var(--hs-accent-ink); }
html:root .learn-page .learn-card-bottom { border-top: 1px solid var(--line); padding-top: 12px; }
html:root .learn-page .learn-card-bottom button { padding: 8px 0 8px 8px; border: 0; background: transparent; color: var(--primary); border-radius:6px; }
html:root .learn-page .learn-section-heading h2 { font-size: 23px; font-weight: 600; line-height: 1.4; }
html:root .learn-page .learn-progress { background: var(--hs-accent-soft); border: 1px solid var(--line); border-radius:6px; padding: 25px; box-shadow:none; }
html:root .learn-page .learn-progress-track { background: var(--surface); height: 8px; border: 0; }
html:root .learn-page .learn-progress-track>span { background: var(--primary); }
html:root .learn-page .learn-progress-stats strong { font-weight: 400; font-variant-numeric: tabular-nums; }
html:root .learn-page .learn-help { background: transparent; border: 0; border-left: 1px solid var(--line); border-radius: 0; padding: 25px; box-shadow:none; }
html:root .learn-page .learn-help :is(p,a),html:root .learn-page .learn-progress :is(p,small) { color: var(--hs-ink-secondary); }
html:root .learn-page .learn-help a { color: var(--primary); }
html:root .learn-page .learn-quick-links { gap: 0; border-block: 1px solid var(--line); padding-block: 8px; }
html:root .learn-page .learn-quick-links>a { background: transparent; border: 0; border-radius: 0; padding: 16px; box-shadow:none; transform: none; }
html:root .learn-page .learn-quick-links>a+a { border-left: 1px solid var(--line); }
html:root .learn-page .quick-icon { background: transparent; color: var(--primary); }
html:root .learn-page .learn-game-grid { background: var(--surface); border: 1px solid var(--line); border-radius:6px; box-shadow:none; }
html:root .learn-page .learn-game-grid>a { padding: 24px; background: transparent; }
html:root .learn-page .learn-game-grid>a:hover { background: var(--bg); }
html:root .learn-page .learn-game-symbol { width: 28px; height: 28px; background: transparent; color: var(--primary); border-radius: 0; }
html:root .lesson-dialog { border: 1px solid var(--line); border-radius:6px; background: var(--surface); color: var(--text); }
html:root .lesson-dialog .lesson-top { background: var(--surface); border-color: var(--line); border-radius: 0; }
html:root .lesson-dialog .lesson-close { background: var(--hs-accent-soft); color: var(--hs-accent-ink); border-radius:6px; }
html:root .lesson-dialog .lesson-sources { background: var(--bg); color: var(--hs-ink-secondary); border: 0; border-radius:6px; }
html:root .lesson-dialog .lesson-quiz { background: var(--bg); border: 1px solid var(--line); border-radius:6px; }
html:root .lesson-dialog .lesson-quiz label { background: var(--surface); color: var(--text); border-color: var(--line); }
html:root .lesson-dialog .lesson-quiz label:has(input:checked) { background: var(--hs-accent-soft); color: var(--hs-accent-ink); border-color: var(--primary); }

/* Check-in: a sequential form, with history beside the same quiet workspace. */
html:root .health-checkin-page.hs-ai-friendly .checkin-heading { background: var(--hs-accent-field); border: 0; border-radius:6px; padding: 22px 24px; margin: 0 0 20px; box-shadow:none; }
html:root .health-checkin-page.hs-ai-friendly .checkin-heading h1 { color: var(--hs-accent-ink); font-size: clamp(28px,2.3vw,34px); font-weight: 600; line-height: 1.35; }
html:root .health-checkin-page.hs-ai-friendly .checkin-heading p { color: var(--hs-ink-secondary); font-size: 16px; line-height: 1.7; }
html:root .health-checkin-page.hs-ai-friendly .hs-ai-history-tools { margin-bottom: 12px; }
html:root .health-checkin-page.hs-ai-friendly .hs-ai-history-tools button { background: var(--surface); border-color: var(--line); color: var(--text); box-shadow:none; }
html:root .health-checkin-page.hs-ai-friendly .hs-ai-history-tools button[aria-expanded=true] { background: var(--hs-accent-soft); color: var(--hs-accent-ink); border-color: var(--primary); }
html:root .health-checkin-page.hs-ai-friendly .hs-ai-workspace { background: var(--surface); border: 1px solid var(--line); border-radius:6px; box-shadow:none; }
html:root .health-checkin-page.hs-ai-friendly :is(.hs-ai-topline,.ai-history-heading) { background: var(--hs-accent-soft); border-color: var(--line); }
html:root .health-checkin-page.hs-ai-friendly .hs-ai-status { color: var(--hs-ink-secondary); }
html:root .health-checkin-page.hs-ai-friendly .hs-ai-history-panel { background: var(--bg); border-color: var(--line); }
html:root .health-checkin-page.hs-ai-friendly .hs-ai-history-filter { grid-template-columns: minmax(0,1fr); }
html:root .health-checkin-page.hs-ai-friendly .hs-ai-conversation { width: 100%; max-width: none; background: transparent; border: 1px solid transparent; border-radius:6px; box-shadow:none; }
html:root .health-checkin-page.hs-ai-friendly .hs-ai-conversation>button:first-child span { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; white-space: normal; overflow: hidden; }
html:root .health-checkin-page.hs-ai-friendly .hs-ai-conversation.active { background: var(--hs-accent-soft); border-color: transparent; box-shadow:none; }
html:root .health-checkin-page.hs-ai-friendly .hs-ai-conversation.active>button:first-child { color: var(--hs-accent-ink); }
html:root .health-checkin-page.hs-ai-friendly .hs-ai-compose { background: var(--surface); }
html:root .health-checkin-page.hs-ai-friendly .image-dropzone { background: var(--hs-accent-soft); border: 1px solid var(--line); border-radius:6px; box-shadow:none; }
html:root .health-checkin-page.hs-ai-friendly .image-dropzone:hover,
html:root .health-checkin-page.hs-ai-friendly .image-dropzone.dragging { background: var(--hs-accent-soft); border-color: var(--primary); }
html:root .health-checkin-page.hs-ai-friendly .ai-step-number { background: var(--hs-accent-soft); border: 0; border-radius:6px; color: var(--hs-accent-ink); box-shadow:none; font-size: 13px; }
html:root .health-checkin-page.hs-ai-friendly .hs-ai-compose textarea { background: var(--surface); border-color: var(--line); color: var(--text); }
html:root .health-checkin-page.hs-ai-friendly .ai-extra-fields { background: var(--bg); border-color: var(--line); border-radius:6px; }
html:root .health-checkin-page.hs-ai-friendly .ai-extra-fields>summary { color: var(--text); }
html:root .health-checkin-page.hs-ai-friendly .image-actions button { background: var(--surface); border-color: var(--line); color: var(--primary); box-shadow:none; }
html:root .health-checkin-page.hs-ai-friendly .ai-starters button { background: var(--surface); border-color: var(--line); color: var(--text); }
html:root .health-checkin-page.hs-ai-friendly .hs-ai-scroll { background: var(--bg); }
html:root .health-checkin-page.hs-ai-friendly .hs-message.user { background: var(--hs-accent-field); color: var(--hs-accent-ink); border-color: transparent; box-shadow:none; }
html:root .health-checkin-page.hs-ai-friendly .hs-message.assistant { background: var(--surface); color: var(--text); border-color: var(--line); box-shadow:none; }
html:root .health-checkin-page.hs-ai-friendly .hs-assessment-detail { background: var(--surface); border-color: var(--line); }
html:root .health-checkin-page.hs-ai-friendly .hs-assessment-detail>summary { background: var(--hs-accent-soft); color: var(--hs-accent-ink); }
html:root .health-checkin-page.hs-ai-friendly .hs-ai-monthly { background: var(--surface); border-color: var(--line); }
html:root .health-checkin-page.hs-ai-friendly .hs-ai-metrics>div { background: var(--bg); }
html:root .health-checkin-page.hs-ai-friendly .hs-ai-metrics strong { color: var(--text); font-weight: 400; font-variant-numeric: tabular-nums; }

/* Connect: recipient identity and the conversation have distinct, stable planes. */
html:root .connect-page .connect-workspace {
  --connect-text: var(--text); --connect-muted: var(--hs-ink-secondary);
  --connect-soft: var(--bg); --connect-line: var(--line);
  border: 1px solid var(--line); border-radius:6px; box-shadow:none;
}
html:root .connect-page .connect-sidebar { background: var(--bg); border-color: var(--line); }
html:root .connect-page .connect-sidebar-head { background: var(--hs-accent-soft); border: 0; }
html:root .connect-page .connect-sidebar-head span { color: var(--hs-ink-secondary); }
html:root .connect-page .connect-search { background: var(--surface); border-color: var(--line); }
html:root .connect-page .connect-contact { border: 1px solid transparent; background: transparent; }
html:root .connect-page .connect-contact.active { background: var(--hs-accent-field); border-color: transparent; box-shadow:none; }
html:root .connect-page .connect-contact.active::before { background: var(--primary); width: 2px; }
html:root .connect-page .connect-contact.active .connect-contact-copy strong { color: var(--hs-accent-ink); }
html:root .connect-page .connect-avatar { background: var(--surface); color: var(--hs-ink-secondary); border: 1px solid var(--line); box-shadow:none; }
html:root .connect-page .connect-contact:nth-child(n) .connect-avatar { background: var(--surface); color: var(--hs-ink-secondary); }
html:root .connect-page :is(.connect-chat,.connect-chat-head,.connect-thread-tools) { background: var(--surface); border-color: var(--line); }
html:root .connect-page .connect-compose { background: var(--hs-accent-soft); border-color: var(--line); }
html:root .connect-page .connect-messages { background: var(--bg); background-image: none; }
html:root .connect-page .connect-intro { padding: 26px 20px; background: transparent; border: 0; border-radius: 0; box-shadow:none; }
html:root .connect-page .connect-intro-icon { background: transparent; border: 0; color: var(--primary); box-shadow:none; }
html:root .connect-page .connect-bubble { background: var(--surface); border: 1px solid var(--line); color: var(--text); box-shadow:none; }
html:root .connect-page .connect-message.mine .connect-bubble { background: var(--hs-accent-field); color: var(--hs-accent-ink); border-color: transparent; box-shadow:none; }
html:root .connect-page .connect-compose-input { background: var(--surface); border-color: var(--line); }
html:root .connect-page .connect-compose-input:focus-within { outline: 2px solid var(--primary); outline-offset: 2px; }
html:root .connect-page .connect-send:not(:disabled) { background: var(--primary); color: var(--hs-on-action); }
html:root .connect-page .connect-sidebar-note { background: transparent; border-top: 1px solid var(--line); color: var(--hs-ink-secondary); }
html:root .connect-page .hs-provider { padding: 24px; border-top: 1px solid var(--line); }
html:root .connect-page .hs-provider:nth-child(n) { border-top-color: var(--line); }
html:root .connect-page .hs-provider .hs-avatar { background: var(--hs-accent-soft); color: var(--hs-accent-ink); }
html:root .connect-page .hs-appointment { padding: 24px; }

/* Community: readable stories, one simple invitation and a quieter side column. */
html:root .confession-page .confession-hero { align-items: flex-start; }
html:root .confession-page .confession-hero>div { width: 100%; }
html:root .confession-page .confession-hero .hs-actions { margin-top: 16px; }
html:root .confession-page .hs-toolbar { padding: 0; background: transparent; border: 0; border-radius: 0; box-shadow:none; }
html:root .confession-page .hs-toolbar .search { background: var(--surface); border: 1px solid var(--line); border-radius:6px; }
html:root .confession-page .hs-post { padding: 24px; }
html:root .confession-page .hs-post:hover { border-color: var(--line); box-shadow:none; transform: none; }
html:root .confession-page .hs-post h2 { font-weight: 600; font-size: 23px; line-height: 1.5; }
html:root .confession-page .hs-post footer { background: transparent; border: 0; border-top: 1px solid var(--line); border-radius: 0; padding: 12px 0 0; }
html:root .confession-page .hs-post-reactions button.liked { background: var(--hs-accent-soft); color: var(--hs-accent-ink); }
html:root .confession-page .hs-community-note { background: var(--hs-accent-soft); color: var(--hs-accent-ink); border: 0; border-radius:6px; box-shadow:none; padding: 22px; }
html:root .confession-page .hs-community-note::before { content: none; }
html:root .confession-page .hs-community-note :is(h2,li) { color: var(--hs-accent-ink); }
html:root .confession-page .confession-sidebar>.hs-notice { background: transparent; color: var(--hs-ink-secondary); border: 0; border-top: 1px solid var(--line); border-radius: 0; padding: 20px 0 0; }
html:root .confession-page .confession-learn { background: transparent; border: 0; border-top: 1px solid var(--line); border-radius: 0; padding: 20px 0 0; }
html:root .confession-dialog { background: var(--surface); color: var(--text); border: 1px solid var(--line); border-radius:6px; }
html:root .confession-dialog .hs-dialog-head { background: var(--surface); border-color: var(--line); }
html:root .confession-dialog .confession-reader-close { color: var(--primary); background: var(--surface); border-color: var(--line); }
html:root .confession-dialog .hs-comment { background: var(--bg); border: 0; border-radius:6px; padding: 16px; }
html:root .confession-dialog .hs-post-body { color: var(--hs-ink-secondary); line-height: 1.85; }
html:root .confession-dialog article>.hs-actions { flex-wrap: wrap; }
html:root .confession-dialog article>.hs-actions button { flex: 0 0 auto; white-space: nowrap; }

/* Diary: today's writing and the factual month; no decorative KPI colors. */
html:root .journal-page .hs-panel { padding: 26px; }
html:root .journal-page .hs-grid>section.hs-panel { border: 1px solid var(--line); border-radius:6px; }
html:root .journal-page .hs-grid>aside .hs-panel { background: var(--hs-accent-soft); border-color: transparent; }
html:root .journal-page .hs-mood-picker button { background: var(--surface); color: var(--hs-ink-secondary); border: 1px solid var(--line); box-shadow:none; transform: none; }
html:root .journal-page .hs-mood-picker button.selected { background: var(--hs-accent-soft); color: var(--hs-accent-ink); border-color: var(--primary); box-shadow:none; }
html:root .journal-page .hs-range-row { background: transparent; border-color: var(--line); }
html:root .journal-page .hs-range-row output { color: var(--primary); font-variant-numeric: tabular-nums; }
html:root .journal-page .hs-form textarea { background: var(--surface); border-color: var(--line); color: var(--text); }
html:root .journal-page .journal-calendar { background: transparent; border: 0; padding: 0; }
html:root .journal-page .journal-day { background: var(--surface); border-color: var(--line); border-radius:6px; }
html:root .journal-page .journal-day.recorded { background: var(--surface); border-color: var(--primary); box-shadow:none; }
html:root .journal-page .journal-day small { color: var(--hs-ink-secondary); }
html:root .journal-page .journal-day.recorded small { color: var(--hs-accent-ink); }
html:root .journal-page .hs-journal-metrics>div { background: var(--bg); border: 0; border-radius:6px; }
html:root .journal-page .hs-journal-metrics strong { color: var(--text); font-weight: 400; font-variant-numeric: tabular-nums; }
html:root .journal-page .hs-journal-metrics span { color: var(--hs-ink-secondary); }
html:root .journal-page .hs-notice { background: transparent; color: var(--hs-ink-secondary); border: 0; padding: 4px 0; border-radius: 0; }
html:root .journal-page .hs-notice strong { color: var(--text); }
html:root .journal-page .hs-journal-entry>span { background: var(--bg); border: 0; border-radius:6px; }

/* Profile: settings groups share the same paper and spacing. */
html:root .profile-page .profile-welcome { padding: 24px; border: 0; margin-bottom: 24px; }
html:root .profile-page .hs-profile-summary>.hs-avatar { background: var(--hs-accent-soft); color: var(--hs-accent-ink); border: 0; box-shadow:none; }
html:root .profile-page .profile-welcome .hs-tag { background: transparent; color: var(--hs-ink-secondary); border: 1px solid var(--line); }
html:root .profile-page .hs-panel { padding: 26px; }
html:root .profile-page .hs-panel h2 { font-weight: 600; font-size: 22px; }
html:root .profile-page .hs-panel:has(#delete-account) { background: transparent; border: 0; border-top: 1px solid var(--line); border-radius: 0; padding: 24px 0 0; }
html:root .profile-page .hs-notice { background: transparent; color: var(--hs-ink-secondary); border: 0; border-radius: 0; padding: 0; }
html:root .profile-page .hs-notice strong { color: var(--text); }
html:root .profile-page .hs-setting-line { border-color: var(--line); }

/* Games: one learning environment; color changes only for a real answer state. */
html:root .game-page .game-heading { max-width: 76ch; margin-top: 16px; }
html:root .game-page .game-selection { gap: 20px; }
html:root .game-page .game-choice { background: var(--surface); color: var(--text); border: 1px solid var(--line); border-radius:6px; box-shadow:none; transform: none; padding: 24px; }
html:root .game-page .game-choice :is(h2,strong) { color: var(--text); }
html:root .game-page .game-choice :is(p,.game-kicker,.game-session-stat) { color: var(--hs-ink-secondary); }
html:root .game-page .game-choice h2 { font-size: 24px; font-weight: 600; }
html:root .game-page .game-choice-symbol { background: var(--hs-accent-soft); color: var(--hs-accent-ink); border: 0; border-radius:6px; width: 42px; height: 42px; box-shadow:none; }
html:root .game-page .game-choice:hover { border-color: var(--primary); transform: none; box-shadow:none; }
html:root .game-page .game-toolbar { background: transparent; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; padding: 0 0 16px; }
html:root .game-page .game-tally { background: var(--hs-accent-soft); color: var(--hs-accent-ink); border: 0; border-radius:6px; box-shadow:none; }
html:root .game-page .game-tally strong { font-weight: 400; font-variant-numeric: tabular-nums; }
html:root .game-page .memory-card { background: var(--hs-accent-soft); color: var(--hs-accent-ink); border: 1px solid var(--line); border-radius:6px; box-shadow:none; }
html:root .game-page .memory-card.is-open { background: var(--surface); color: var(--text); border-color: var(--primary); }
html:root .game-page .memory-card.is-matched { background: var(--badge-mint-bg); color: var(--badge-mint-text); border-color: var(--badge-mint-text); box-shadow:none; }
html:root .game-page .sort-lesson { background: var(--surface); border: 1px solid var(--line); border-radius:6px; box-shadow:none; }
html:root .game-page .sort-lesson h3 { color: var(--text); }
html:root .game-page .sort-shelves button { background: var(--surface); color: var(--text); border: 1px solid var(--line); min-height: 80px; }
html:root .game-page .sort-shelves button.is-correct { background: var(--badge-mint-bg); color: var(--badge-mint-text); border-color: var(--badge-mint-text); }
html:root .game-page .sort-shelves button.is-wrong { background: var(--error-bg); color: var(--error-text); border-color: var(--error-text); }
html:root .game-page .game-options button { background: var(--surface); color: var(--text); border: 1px solid var(--line); border-radius:6px; box-shadow:none; transform: none; }
html:root .game-page .game-options button>span { background: var(--bg); color: var(--hs-ink-secondary); border: 1px solid var(--line); }
html:root .game-page .game-options button.chosen { background: var(--hs-accent-soft); color: var(--hs-accent-ink); border-color: var(--primary); }
html:root .game-page .game-trail span { background: var(--surface); color: var(--hs-ink-secondary); border-color: var(--line); }
html:root .game-page .game-trail .current { background: var(--hs-accent-soft); color: var(--hs-accent-ink); border-color: var(--primary); }
html:root .game-page .game-trail .passed { background: var(--bg); color: var(--text); border-color: var(--line); }
html:root .game-page .game-feedback { background: var(--bg); color: var(--text); }
html:root .game-page .game-feedback.correct { background: var(--badge-mint-bg); color: var(--badge-mint-text); }
html:root .game-page .game-feedback.try-again { background: var(--hs-accent-soft); color: var(--hs-accent-ink); }
html:root .game-page .game-finish { background: var(--surface); border: 1px solid var(--line); border-radius:6px; padding: 28px; box-shadow:none; }
html:root .game-page .game-finish-symbol { background: var(--hs-accent-soft); color: var(--hs-accent-ink); }
html:root .game-page .game-finish .game-result-score { color: var(--text); }
html:root .game-page .game-result-list a { background: var(--surface); color: var(--primary); border-color: var(--line); }
html:root .game-page :is(.game-note,.game-toolbar>span,.game-round-heading p,.game-round-heading .game-kicker,.game-turn-actions p,.game-loading,.game-finish p) { color: var(--hs-ink-secondary); }
html:root .game-page :is(.game-live,.game-instruction) { color: var(--text); }
html:root .game-page :is(button,a,summary):focus-visible { outline-color: var(--primary); }

/* News: publication date, source and title carry the editorial hierarchy. */
html:root .news-page .news-page-heading { margin-top: 16px; }
html:root .news-page .news-filters { background: transparent; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; padding: 0 0 24px; box-shadow:none; }
html:root .news-page .news-filters label { color: var(--hs-ink-secondary); font-size: 14px; }
html:root .news-page .news-filters :is(input,select) { background: var(--surface); color: var(--text); border-color: var(--line); }
html:root .news-grid .news-card { background: var(--surface); color: var(--text); border: 1px solid var(--line); border-radius:6px; box-shadow:none; transform: none; padding: 24px; }
html:root .news-grid .news-card:nth-child(n) { background: var(--surface); }
html:root .news-grid .news-card:hover { transform: none; box-shadow:none; border-color: var(--primary); }
html:root .news-grid .news-kind { background: var(--hs-accent-soft); color: var(--hs-accent-ink); border: 0; border-radius:6px; padding: 4px 8px; }
html:root .news-grid .news-pin { display: none; }
html:root .news-grid .news-card-bottom { border-color: var(--line); }
html:root .news-grid .news-card p { color: var(--hs-ink-secondary); }
html:root .news-dialog { background: var(--surface); color: var(--text); border: 1px solid var(--line); border-radius:6px; }
html:root .news-dialog .news-source { background: var(--bg); color: var(--hs-ink-secondary); border: 0; border-radius:6px; }
html:root .news-dialog .news-close { background: var(--hs-accent-soft); color: var(--hs-accent-ink); }

/* Responsive composition only. Fixed chat/keyboard geometry remains in each route. */
@media(max-width:1000px) {
  html:root .learn-page .learn-quick-links>a+a { border-left: 0; border-top: 1px solid var(--line); }
}
@media(max-width:760px) {
  html:root :is(.learn-hero,.connect-welcome,.confession-hero,.journal-welcome,.profile-welcome,.game-heading,.news-page-heading),
  html:root .health-checkin-page.hs-ai-friendly .checkin-heading { margin-bottom: 20px; padding: 20px; }
  
  html:root :is(.learn-hero,.connect-welcome,.confession-hero,.journal-welcome,.profile-welcome,.game-heading,.news-page-heading) h1 { font-size: 28px; }
  html:root .learn-page .library-toolbar { gap: 8px; }
  html:root .learn-page .learn-categories { padding-bottom: 14px; }
  html:root .learn-page .learn-cards { gap: 16px; }
  html:root .learn-page .learn-card { min-height: 0; padding: 20px; }
  html:root .learn-page .learn-help { border-left: 0; border-top: 1px solid var(--line); padding-inline: 0; }
  html:root .learn-page .learn-game-grid>a { padding: 22px; }
  html:root .health-checkin-page.hs-ai-friendly .checkin-heading h1 { font-size: 28px; }
  html:root .health-checkin-page.hs-ai-friendly .checkin-heading p { font-size: 15px; }
  html:root .connect-page .connect-intro { padding: 18px 12px; }
  html:root .confession-page .hs-post { padding: 20px; }
  html:root .confession-page .hs-post h2 { font-size: 22px; }
  html:root :is(.journal-page,.profile-page) .hs-panel { padding: 22px; }
  html:root .game-page .game-choice { padding: 22px; }
  html:root .game-page .game-finish { padding: 22px; }
  html:root .news-grid .news-card { padding: 22px; }
}
@media(max-width:380px) {
  html:root .journal-page .hs-grid>section.hs-panel { padding-inline: 16px; }
}

/* Source: src/interaction-base.css */

.ux,.ux *,.ux *::before,.ux *::after{box-sizing:border-box}
.ux{
  font-family:var(--font-ui);
  color:var(--ux-ink);-webkit-font-smoothing:antialiased;letter-spacing:0;
  -webkit-tap-highlight-color:transparent;
  word-break:normal;overflow-wrap:break-word;
}

:where(.ux) :is(button,input,textarea,select){font:inherit;color:inherit}
:where(.ux) button{cursor:pointer}
.ux :focus-visible{outline:2px solid var(--ux-accent);outline-offset:3px}
.ux [hidden]{display:none!important}

@media (prefers-reduced-motion:reduce){
  .ux,.ux *,.ux *::before,.ux *::after{
    animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important;
  }
}



/* Source: src/lucian-selections.css */
/* Lucian UX/UI Prompt #019 · MIT License (c) 2026 Seokwoooo · https://lucianlabs.dev/uxui-prompt/#019 */
/* Lucian UX/UI Prompt #039 · MIT License (c) 2026 Seokwoooo · https://lucianlabs.dev/uxui-prompt/#039 */
/* Ports: existing single-selection filters replace #019's demonstration interests/limit;
   existing aria-pressed view/filter groups replace #039's demonstration tab panels.
   No generated records or second selection state. Source timing/curves are retained.
   Group width is fluid for real Vietnamese labels; long strips scroll within the page. */
html:root .ux.u019 { position: relative; width: 100%; }
html:root .ux.u019-list { display: flex; flex-wrap: wrap; align-content: center; gap: 8px; height: auto; }
html:root .ux.u019 .u019-chip {
  display: inline-flex; align-items: center; justify-content: center; height: 42px; min-height: 42px;
  padding: 0 16px; border: 1px solid var(--ux-line-2); border-radius:var(--ui-radius-pill); background: var(--ux-surface); color: var(--ux-ink-2);
  font-size: 14.5px; font-weight: 640; line-height: 1.35; white-space: nowrap;
  box-shadow:none;
  transition: background-color .35s var(--ux-ease),color .3s var(--ux-ease),box-shadow .3s var(--ux-ease),padding .45s var(--ux-spring),transform .4s var(--ux-spring);
}
html:root .ux.u019 .u019-chip:hover { color: var(--ux-ink); box-shadow:none; }
html:root .ux.u019 .u019-chip:active:not(:disabled) { transform: scale(.94); }
html:root .ux.u019 .u019-chip:focus-visible { outline: 2px solid var(--ux-accent); outline-offset: 3px; }
html:root .ux.u019 .u019-chip>i {
  display: grid; place-items: center; width: 0; height: 18px; margin-right: 0; overflow: hidden; opacity: 0;
  transition: width .45s var(--ux-spring),margin .45s var(--ux-spring),opacity .25s var(--ux-ease);
}
html:root .ux.u019 .u019-chip>i>svg { width: 16px; height: 16px; flex: none; fill: none; stroke: currentColor; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
html:root .ux.u019 .u019-chip[aria-pressed=true] {
  background: var(--ux-accent); color: var(--hs-on-action); box-shadow:none; padding-left: 12px;
}
html:root .ux.u019 .u019-chip[aria-pressed=true]>i { width: 18px; margin-right: 6px; opacity: 1; }
html:root .ux.u039 { position: relative; width: fit-content; max-width: 100%; height: auto; }
html:root .ux.u039-tabs {
  position: relative; display: flex; flex-wrap: nowrap; gap: 0; padding: 5px; margin-bottom: 20px;
  border: 1px solid var(--ux-line); border-radius:var(--ui-radius-inner); background: var(--bg); box-shadow:none;
  overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: thin; isolation: isolate;
}
html:root .ux.u039 .u039-pill {
  position: absolute; left: 0; top: 5px; bottom: 5px; width: var(--w,80px); border-radius:var(--hs-radius-control);
  background: var(--ux-accent); transform: translateX(var(--x,5px)); pointer-events: none;
  box-shadow:none;
  transition: transform .5s var(--ux-spring),width .5s var(--ux-spring);
}
html:root .ux.u039 .u039-tab {
  position: relative; flex: 1 0 auto; height: 42px; min-height: 42px; border: 0; padding: 0 16px;
  border-radius:var(--hs-radius-control); background: none; box-shadow:none; font-size: 14px; line-height: 1.35;
  font-weight: 680; color: var(--ux-ink-2); white-space: nowrap; transition: color .35s var(--ux-ease);
}
html:root .ux.u039 .u039-tab[aria-pressed=true] { color: var(--hs-on-action); background: transparent; box-shadow:none; }
html:root .ux.u039 .u039-tab:focus-visible { outline: 2px solid var(--ux-accent); outline-offset: 2px; }
html:root .ux.u039 .u039-tab:disabled { cursor: wait; }
@media(max-width:380px) { html:root .connect-page .ux.u039 .u039-tab { padding-inline: 11px; } }
/* Native keyboard actions and a live preference change finish immediately. */
html:root[data-input=keyboard] :is(.u019,.u039) *,html:root[data-input=keyboard] :is(.u019,.u039) *::before,html:root[data-input=keyboard] :is(.u019,.u039) *::after {
  animation: none!important; transition: none!important; transform: none;
}
html:root[data-input=keyboard] .u039 .u039-pill { transform: translateX(var(--x,5px)); }
@media(prefers-reduced-motion:reduce) {
  html:root :is(.u019,.u039) *,html:root :is(.u019,.u039) *::before,html:root :is(.u019,.u039) *::after { animation: none!important; transition: none!important; }
  html:root .ux.u019 .u019-chip:active { transform: none; }
}
/* Real lesson labels form a swipeable strip on phones. A selected check may
   widen its own chip, but never creates a new row that pushes the lessons away. */
@media(max-width:600px) {
  html:root .learn-page .ux.u019-list {
    flex-wrap:nowrap;align-content:normal;overflow-x:auto;overscroll-behavior-x:contain;
    padding:6px 5px 12px;scrollbar-width:thin;
  }
  html:root .learn-page .ux.u019 .u019-chip { flex:0 0 auto; }
}

/* Source: src/lucian-cta.css */
/* Lucian UX/UI Prompt #002 · MIT License (c) 2026 Seokwoooo · https://lucianlabs.dev/uxui-prompt/#002 */
/* Magnetic arrow button. Original geometry, springs and timing; regional colors,
   native destination link, and immediate keyboard/reduced-motion states. */
.u002 {
  --u002-fill:var(--region-learn-action);
  --u002-bg:color-mix(in srgb,var(--region-learn-action) 88%,var(--text) 12%);
  --u002-fg:var(--ux-accent-ink);
  position:relative;width:340px;max-width:100%;height:200px;display:grid;place-items:center;
  isolation:isolate;font-family:inherit;
}
.u002 .u002-btn {
  position:relative;display:flex;align-items:center;gap:18px;height:76px;
  padding:0 10px 0 32px;border:0;border-radius:6px;background:var(--u002-bg);
  color:var(--u002-fg);overflow:hidden;isolation:isolate;text-decoration:none;
  box-shadow:none;
}
.u002 .u002-btn:focus-visible {outline:2px solid var(--region-learn-action);outline-offset:5px}
.u002 .u002-fill {position:absolute;inset:0;z-index:-1;background:var(--u002-fill);clip-path:circle(28px at calc(100% - 38px) 50%)}
.u002 .u002-btn:focus-visible .u002-fill {clip-path:circle(160% at calc(100% - 38px) 50%)}
.u002 .u002-txt {position:relative;overflow:hidden;padding:5px 0;font-size:19px;font-weight:700;letter-spacing:-.03em;white-space:nowrap}
.u002 .u002-txt span {display:block}
.u002 .u002-txt span+span {position:absolute;left:0;top:5px;transform:translateY(130%);opacity:0}
.u002[data-state=go] .u002-txt span:first-child {transform:translateY(-130%);opacity:0}
.u002[data-state=go] .u002-txt span+span {transform:none;opacity:1}
.u002 .u002-orb {position:relative;width:56px;height:56px;border-radius:6px;display:grid;place-items:center;color:var(--u002-fg);overflow:hidden;flex:none}
.u002 .u002-orb svg {position:absolute;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.u002 .u002-orb svg:last-child {transform:translateX(-46px)}
.u002 .u002-glow {position:absolute;left:50%;top:50%;width:300px;height:110px;margin:-40px 0 0 -150px;border-radius:6px;background:var(--u002-fill);filter:blur(36px);opacity:0;z-index:-1;pointer-events:none}
@media(hover:hover) and (pointer:fine) {
  .u002 .u002-btn:hover {box-shadow:none}
  .u002 .u002-btn:hover .u002-fill {clip-path:circle(160% at calc(100% - 38px) 50%)}
  .u002 .u002-btn:hover .u002-txt {color:var(--u002-fg)}
  .u002[data-motion=pointer]:hover .u002-glow {opacity:.45}
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .u002[data-motion=pointer] .u002-mag {transition:translate .9s var(--ux-spring)}
  .u002[data-motion=pointer] .u002-btn {transition:transform .6s var(--ux-spring),box-shadow .6s var(--ux-ease)}
  .u002[data-motion=pointer] .u002-btn:active {transform:scale(.96)}
  .u002[data-motion=pointer] .u002-fill {transition:clip-path .8s var(--ux-ease)}
  .u002[data-motion=pointer] .u002-txt {transition:translate .7s var(--ux-spring),color .5s var(--ux-ease)}
  .u002[data-motion=pointer] .u002-txt span {transition:transform .6s var(--ux-spring),opacity .35s var(--ux-ease)}
  .u002[data-motion=pointer] .u002-orb {transition:translate .7s var(--ux-spring)}
  .u002[data-motion=pointer][data-state=go] .u002-orb svg:first-child {animation:u002-out .55s var(--ux-ease) forwards}
  .u002[data-motion=pointer][data-state=go] .u002-orb svg:last-child {animation:u002-in .6s var(--ux-spring) .28s forwards}
  .u002[data-motion=pointer] .u002-glow {transition:opacity .7s var(--ux-ease)}
}
.u002[data-motion=still] .u002-mag,.u002[data-motion=still] .u002-txt,.u002[data-motion=still] .u002-orb {translate:0 0!important}
.u002[data-motion=still] * {animation:none!important;transition:none!important}
@keyframes u002-out {to{transform:translateX(46px)}}
@keyframes u002-in {to{transform:none}}
@media(prefers-reduced-motion:reduce) {
  .u002 * {animation:none!important;transition:none!important}
  .u002 .u002-mag,.u002 .u002-txt,.u002 .u002-orb {translate:0 0!important}
  .u002 .u002-glow {opacity:0}
}

/* Source: src/lucian-toast.css */
/* Lucian UX/UI Prompt #070 · MIT License (c) 2026 Seokwoooo · https://lucianlabs.dev/uxui-prompt/#070 */

.u070{position:relative;width:350px;height:370px}
.u070-btns{display:flex;flex-wrap:wrap;gap:6px}
.u070-btns button{height:38px;padding:0 14px;border:0;border-radius:6px;display:inline-flex;align-items:center;gap:6px;background:var(--ux-surface);box-shadow:none;font-size:13px;font-weight:720;color:var(--ux-ink);transition:transform .3s var(--ux-spring),box-shadow .3s}
.u070-btns button:hover{box-shadow:none}
.u070-btns button:active{transform:scale(.94)}
.u070-btns button:focus-visible{outline:2px solid var(--ux-accent);outline-offset:2px}
.u070-btns i{width:8px;height:8px;border-radius:6px;background:var(--c)}
.u070-zone{position:absolute;left:0;right:0;bottom:0;height:300px;outline:none}
.u070-t{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:12px;min-height:68px;padding:12px 12px 12px 14px;border-radius:6px;background:var(--ux-surface);box-shadow:none;transform-origin:50% 100%;transform:translate(var(--dx,0px),var(--y,0px)) scale(var(--s,1));opacity:var(--o,1);transition:transform .5s var(--ux-spring),opacity .35s;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.u070-t.drag{transition:none}
.u070-t.enter{transform:translateY(90px) scale(.9);opacity:0}
.u070-t.leave{transform:translate(var(--dx,0px),var(--y,0px)) scale(var(--s,1));opacity:0;pointer-events:none}
.u070-t.leave.side{transform:translate(calc(var(--dir,1) * 420px),var(--y,0px)) rotate(calc(var(--dir,1) * 8deg))}
.u070-t>*{transition:opacity .25s}
.u070-t.back>*{opacity:0}
.u070-ic{width:36px;height:36px;flex:none;border-radius:6px;display:grid;place-items:center;background:color-mix(in srgb,var(--c) 15%,transparent);color:var(--c)}
.u070-ic svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.u070-ic i{width:18px;height:18px;border-radius:6px;border:2.5px solid currentColor;border-right-color:transparent;animation:u070-spin .7s linear infinite}
@keyframes u070-spin{to{transform:rotate(360deg)}}
.u070-tx{flex:1;min-width:0}
.u070-tx b{display:block;font-size:14px;font-weight:780;letter-spacing:-.02em}
.u070-tx small{display:block;margin-top:2px;font-size:13px;font-weight:600;color:var(--ux-ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.u070-act{height:32px;padding:0 11px;border:0;border-radius:6px;background:var(--ux-surface-2);font-size:13px;font-weight:750;color:var(--ux-ink)}
.u070-x{width:30px;height:30px;flex:none;border:0;padding:0;border-radius:6px;display:grid;place-items:center;background:none;color:var(--ux-ink-3)}
.u070-x:hover{background:var(--ux-surface-2);color:var(--ux-ink)}
.u070-x svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round}
.u070-act:focus-visible,.u070-x:focus-visible{outline:2px solid var(--ux-accent);outline-offset:1px}
.u070-bar{position:absolute;left:16px;right:16px;bottom:0;height:2px;border-radius:2px;background:var(--c);opacity:.5;transform-origin:0 50%;transform:scaleX(var(--left,1))}
.u070-live{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.u070-empty{position:absolute;left:0;right:0;bottom:24px;text-align:center;font-size:13px;font-weight:650;color:var(--ux-ink-3);transition:opacity .3s}

/* Production placement; the 350px component fits narrow viewports. */
.u070 { position:fixed;right:24px;bottom:max(24px,env(safe-area-inset-bottom));z-index:1000;max-width:calc(100% - 32px);pointer-events:none; }
.u070 .u070-zone { pointer-events:none; }
.u070 .u070-t { pointer-events:auto; }
.u070 .u070-t.leave { pointer-events:none; }
.u070 .u070-tx b { overflow-wrap:anywhere;max-height:max(44px,calc((100svh - 104px) / 3 - 24px));overflow:auto; }
.u070 .u070-tx small:empty { display:none; }
/* Larger hit area is required for touch/keyboard, without changing the icon. */
.u070 .u070-x { min-width:44px;min-height:44px; }
.u070 .u070-t:focus-within { outline:2px solid var(--ux-accent);outline-offset:3px; }
.u070 .u070-t.back { pointer-events:none; }
html[data-input=keyboard] .u070 *,html[data-input=keyboard] .u070 *::before,html[data-input=keyboard] .u070 *::after { animation:none!important;transition:none!important; }
@media(max-width:600px) { .u070 { right:16px;bottom:max(16px,env(safe-area-inset-bottom)); } }
@media(prefers-reduced-motion:reduce) { .u070 *, .u070 *::before,.u070 *::after { animation:none!important;transition:none!important; } }

/* Source: src/navigation-discovery.css */
/* Lucian UX/UI Prompt #354 · MIT License (c) 2026 Seokwoooo · https://lucianlabs.dev/uxui-prompt/#354 */
/* Original floating panel, caret, item shape and pointer timing; the fixed demo
   frame is replaced by HealSphere's existing responsive header. */
html:root .app-header.u354 { position:relative;z-index:30;overflow:visible; }
html:root .u354 .nav-cluster { display:flex;align-items:center;min-width:0; }
html:root .u354 .segments .nav-destination-link { padding-right:3px; }
html:root .u354 .nav-disclose { display:grid;place-items:center;flex:none;min-width:28px;width:28px;min-height:44px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--text-secondary); }
html:root .u354 .nav-disclose>svg { width:16px;height:16px; }
html:root .u354 .nav-disclose[aria-expanded=true] { background:var(--hs-accent-soft);color:var(--hs-accent-ink); }
html:root .u354 .u354-pn { position:absolute;left:0;top:64px;width:var(--w,360px);height:var(--h,100px);border-radius:6px;background:var(--ux-surface);box-shadow:none;transform:translateX(var(--x,0px));opacity:0;visibility:hidden;pointer-events:none;transition:transform .45s cubic-bezier(.3,1.1,.4,1),width .45s cubic-bezier(.3,1.1,.4,1),height .45s cubic-bezier(.3,1.1,.4,1),opacity .25s;z-index:4; }
html:root .u354.is-open .u354-pn { opacity:1;visibility:visible;pointer-events:auto; }
html:root .u354.no-t .u354-pn { transition:opacity .25s; }
html:root .u354 .u354-car { position:absolute;top:58px;left:0;width:14px;height:14px;background:var(--ux-surface);box-shadow:none;transform:translateX(var(--cx,100px)) rotate(45deg);border-radius:3px 0 0 0;opacity:0;visibility:hidden;transition:transform .45s cubic-bezier(.3,1.1,.4,1),opacity .25s;z-index:5;pointer-events:none; }
html:root .u354.is-open .u354-car { opacity:1;visibility:visible; }
html:root .u354.no-t .u354-car { transition:opacity .25s; }
html:root .u354 .u354-ct { position:absolute;inset:0;overflow:hidden;border-radius:6px; }
html:root .u354 .u354-pg { position:absolute;left:0;top:0;padding:10px;display:grid;gap:2px;max-width:100%;max-height:100%;overflow-y:auto;overscroll-behavior:contain;transition:transform .45s cubic-bezier(.3,1.1,.4,1),opacity .3s; }
html:root .u354 .u354-pg.l { transform:translateX(-40px);opacity:0;pointer-events:none; }
html:root .u354 .u354-pg.r { transform:translateX(40px);opacity:0;pointer-events:none; }
html:root .u354 .u354-title { font-size:14px;line-height:1.5;font-weight:650;color:var(--text-muted-readable);margin:4px 8px 8px; }
html:root .u354 .u354-note { font-size:14px;line-height:1.5;color:var(--text-secondary);white-space:normal;margin:0 8px 8px; }
html:root .u354 a.u354-it { display:flex;align-items:center;justify-content:flex-start;gap:10px;width:100%;padding:8px;min-height:54px;border:0;border-radius:6px;background:none;text-align:left;white-space:normal;text-decoration:none;color:var(--text-primary);box-shadow:none; }
html:root .u354 a.u354-it::after { content:none; }
html:root .u354 .u354-it i { display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:6px;background:var(--topic-soft,var(--hs-accent-soft));color:var(--topic-ink,var(--hs-accent-ink)); }
html:root .u354 .u354-it i svg { width:18px;height:18px; }
html:root .u354 .u354-it div { min-width:0; }
html:root .u354 .u354-it[data-topic-tone] { min-height:44px; }
html:root .u354 .u354-it b { display:block;font-size:14.5px;line-height:1.5;font-weight:700; }
html:root .u354 .u354-it span { display:block;font-size:13px;line-height:1.5;font-weight:400;color:var(--text-secondary); }
html:root .u354 :is(.nav-disclose,.u354-it):focus-visible { outline:3px solid var(--primary);outline-offset:2px; }
@media(hover:hover) and (pointer:fine) {
  html:root .u354 .u354-it:hover { background:var(--ux-surface-2);color:var(--text-primary); }
  html:root .u354 .nav-disclose:hover { color:var(--primary);background:var(--hs-accent-soft); }
}
/* The larger existing toolbar stays readable when previews add disclosure targets. */
@media(min-width:1024px) and (max-width:1279px) {
  html:root .app-header.u354 { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 20px;padding:16px 24px 12px; }
  html:root .app-header.u354 .brand { grid-column:1;grid-row:1; }
  html:root .app-header.u354 .header-actions { grid-column:2;grid-row:1; }
  html:root .app-header.u354 .segments { grid-column:1/-1;grid-row:2;justify-content:center;margin-top:10px;padding-top:6px; }
}
@media(min-width:1280px) {
  html:root .app-header.u354 { display:flex;flex-wrap:nowrap;align-items:center;gap:16px; }
  html:root .app-header.u354 .brand { flex:none; }
  html:root .app-header.u354 .segments { flex:1;min-width:0;margin:0;padding:0;justify-content:center; }
  html:root .app-header.u354 .header-actions { flex:none; }
}
@media(max-width:1023px) {
  html:root .u354.nav-expanded .segments { grid-template-columns:minmax(0,1fr); }
  html:root .u354 .nav-cluster { display:grid;grid-template-columns:minmax(0,1fr) 48px; }
  html:root .u354 .nav-disclose { width:48px;min-height:48px; }
  html:root .u354 .u354-car { display:none; }
  html:root .u354 .u354-pn { display:none;position:relative;grid-column:1/-1;top:auto!important;left:auto;width:100%;height:auto;transform:none;box-shadow:none;background:var(--surface);border-radius:6px;transition:none;margin-bottom:8px; }
  html:root .u354.is-open .nav-cluster.is-expanded .u354-pn { display:block; }
  html:root .u354 .u354-ct { position:relative; }
  html:root .u354 .u354-pg { display:none;position:relative;width:100%!important;max-height:50dvh;transform:none;transition:none; }
  html:root .u354 .u354-pg[aria-hidden=false] { display:grid; }
  html:root .u354 .u354-it { min-height:56px; }
}
html:root[data-input=keyboard] .u354 :is(.u354-pn,.u354-car,.u354-pg) { transition:none!important;animation:none!important; }
@media(prefers-reduced-motion:reduce) {
  html:root .u354 :is(.u354-pn,.u354-car,.u354-pg) { transition:none!important;animation:none!important; }
}
/* Stable categorical colors. Labels, never color alone, identify each topic. */
[data-topic-tone=skin] { --topic-soft:var(--region-journal-soft);--topic-field:var(--region-journal-field);--topic-ink:var(--region-journal-ink);--topic-action:var(--region-journal-action); }
[data-topic-tone=infection] { --topic-soft:var(--region-connect-soft);--topic-field:var(--region-connect-field);--topic-ink:var(--region-connect-ink);--topic-action:var(--region-connect-action); }
[data-topic-tone=eyes] { --topic-soft:var(--region-map-soft);--topic-field:var(--region-map-field);--topic-ink:var(--region-map-ink);--topic-action:var(--region-map-action); }
[data-topic-tone=mind] { --topic-soft:var(--region-ai-soft);--topic-field:var(--region-ai-field);--topic-ink:var(--region-ai-ink);--topic-action:var(--region-ai-action); }
[data-topic-tone=puberty] { --topic-soft:var(--region-confession-soft);--topic-field:var(--region-confession-field);--topic-ink:var(--region-confession-ink);--topic-action:var(--region-confession-action); }
[data-topic-tone=physical] { --topic-soft:var(--badge-sun-bg);--topic-field:var(--badge-sun-bg);--topic-ink:var(--badge-sun-text);--topic-action:var(--badge-sun-text); }
[data-topic-tone=neutral] { --topic-soft:var(--hs-accent-soft);--topic-field:var(--hs-accent-field);--topic-ink:var(--hs-accent-ink);--topic-action:var(--primary); }

/* Source: src/discovery-search.css */
/* Lucian UX/UI Prompt #046 · MIT License (c) 2026 Seokwoooo · https://lucianlabs.dev/uxui-prompt/#046 */

.u046{position:relative;width:360px;height:460px}
.u046-pal{position:absolute;left:0;right:0;top:0;height:100%;display:flex;flex-direction:column;border-radius:var(--ui-radius-inner);background:var(--ux-surface);box-shadow:none;clip-path:inset(0 0 0 0 round var(--ui-radius-inner));transition:clip-path .18s ease-out}
.u046.is-closed .u046-pal{clip-path:inset(0 0 calc(100% - 56px) 0 round var(--ui-radius-inner));box-shadow:none;transition:clip-path .18s ease-out}
.u046-field{position:relative;display:flex;align-items:center;gap:10px;height:56px;flex:none;padding:0 14px 0 18px;border-bottom:1px solid var(--ux-line);cursor:text;transition:border-color .3s}
.u046.is-closed .u046-field{border-color:transparent;cursor:pointer}
.u046-field svg{width:19px;height:19px;flex:none;fill:none;stroke:var(--ux-ink-3);stroke-width:2;stroke-linecap:round}
.u046-in{flex:1;min-width:0;height:100%;border:0;padding:0;background:none;font:inherit;font-size:15.5px;font-weight:560;color:var(--ux-ink);outline:none}
.u046-in:focus-visible{outline:none}
.u046-in::placeholder{color:var(--ux-ink-3)}
.u046-kbd{display:inline-flex;align-items:center;height:24px;padding:0 7px;border-radius:var(--hs-radius-control);background:var(--ux-surface-2);box-shadow:none;font-size:13px;font-weight:700;color:var(--ux-ink-3);font-family:inherit;white-space:nowrap}
.u046-field:focus-within{border-bottom-color:var(--ux-line)}
.u046-field:has(.u046-in:focus-visible){box-shadow:none}
.u046-body{position:relative;flex:1;min-height:0;overflow-y:auto;scrollbar-width:none;overscroll-behavior:contain;padding:6px 8px;transition:opacity .3s}
.u046-body::-webkit-scrollbar{display:none}
.u046.is-closed .u046-body,.u046.is-closed .u046-foot{opacity:0}
.u046-hl{position:absolute;left:8px;right:8px;top:0;height:46px;border-radius:var(--ui-radius-inner);background:var(--ux-accent-soft);box-shadow:none;transform:translateY(var(--y,0));transition:transform .4s var(--ux-spring),opacity .2s;pointer-events:none}
.u046-list{position:relative;margin:0;padding:0;list-style:none}
.u046-g{padding:10px 10px 6px;font-size:13px;font-weight:800;letter-spacing:.08em;color:var(--ux-ink-3)}
.u046-op{display:flex;align-items:center;gap:12px;height:46px;padding:0 10px;border-radius:var(--ui-radius-inner);font-size:14.5px;font-weight:620;color:var(--ux-ink-2);cursor:pointer;animation:u046-in .45s var(--ux-spring) backwards;animation-delay:calc(var(--i) * 28ms)}
.u046-op[aria-selected="true"]{color:var(--ux-ink)}
.u046-op mark{background:none;color:var(--ux-accent);font-weight:800}
.u046-ic{width:28px;height:28px;flex:none;border-radius:var(--hs-radius-control);display:grid;place-items:center;background:var(--c,var(--ux-surface-2));color:#fff}
.u046-ic svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.u046-ic.plain{color:var(--ux-ink-2)}
.u046-op .u046-kbd{margin-left:auto}
.u046-empty{padding:40px 0;text-align:center;font-size:14px;color:var(--ux-ink-3)}
.u046-empty b{display:block;margin-bottom:4px;font-size:15px;color:var(--ux-ink)}
@keyframes u046-in{from{opacity:0;transform:translateY(8px)}}
.u046-foot{display:flex;align-items:center;gap:14px;height:44px;flex:none;padding:0 16px;border-top:1px solid var(--ux-line);font-size:13px;font-weight:600;color:var(--ux-ink-3);transition:opacity .3s}
.u046-foot .u046-kbd{height:20px;padding:0 5px;margin-right:4px;font-size:13px}
.u046-done{margin-left:auto;color:var(--ux-mint);font-weight:700;opacity:0;transform:translateY(4px);transition:opacity .3s,transform .4s var(--ux-spring)}
.u046-done.show{opacity:1;transform:none}

/* HealSphere data/footprint adapters: a full-width homepage slot, real long
   Vietnamese titles, async status and explicit location-provider action. */
.discovery-search{position:relative;z-index:35;width:100%;min-width:0;--ux-accent:var(--primary);--ux-accent-soft:var(--hs-accent-soft)}
.discovery-search .u046{width:100%;max-width:100%;height:56px}
.discovery-search .u046-pal{height:min(520px,70svh);min-height:220px;z-index:2}
.discovery-search .u046:not(.is-closed) .u046-pal{border:1px solid var(--control-border)}
.discovery-search .u046-field{margin:0;padding-right:8px;background:var(--surface);border-radius:var(--ui-radius-inner) var(--ui-radius-inner) 0 0}
.discovery-search .u046.is-closed .u046-field{border:1px solid var(--control-border);border-radius:var(--ui-radius-inner);background:var(--bg)}
.discovery-search .u046-in{font-size:16px;min-width:0;box-shadow:none;border-radius:0;text-overflow:ellipsis}
.discovery-search .u046-submit{flex:none;display:grid;place-items:center;width:42px;height:42px;border:0;border-radius:var(--hs-radius-control);background:var(--primary);color:var(--hs-on-action);cursor:pointer}
.discovery-search .u046-submit svg{stroke:currentColor;width:20px;height:20px}
.discovery-search .u046-submit:active{transform:scale(.97)}
.discovery-search .u046-op{min-height:46px;height:auto;padding-block:8px;text-decoration:none;animation:none;align-items:flex-start;color:var(--text-primary)}
.discovery-search .u046-result-copy{min-width:0;flex:1}
.discovery-search .u046-result-title{display:block;font-size:15px;line-height:1.45;overflow-wrap:anywhere}
.discovery-search .u046-result-meta{display:block;font-size:13px;font-weight:500;line-height:1.5;color:var(--text-muted-readable);margin-top:3px}
.discovery-search .u046-ic{margin-top:2px;background:var(--hs-accent-soft);color:var(--primary)}
.discovery-search .u046-g{font-size:13px;letter-spacing:0;text-transform:none;color:var(--text-secondary)}
.discovery-search .u046-hl{height:var(--option-height,46px)}
.discovery-search .u046-empty{padding:24px 12px;line-height:1.6}
.discovery-search .u046-foot{height:auto;min-height:76px;padding:10px 14px;display:block;background:var(--surface);border-radius:0 0 var(--ui-radius-inner) var(--ui-radius-inner)}
.discovery-search .discovery-location{border:0;background:var(--region-map-soft);color:var(--region-map-ink);border-radius:var(--hs-radius-control);min-height:44px;padding:10px 12px;display:flex;align-items:center;gap:8px;font-size:13px;font-weight:650;cursor:pointer;text-align:left;width:100%}
.discovery-search .discovery-location svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8}
.discovery-search .discovery-location:disabled{background:var(--disabled-bg);color:var(--disabled-text);cursor:wait}
.discovery-search .discovery-provider-note{font-size:13px;line-height:1.5;color:var(--text-muted-readable);margin:6px 0 0}
.discovery-search .discovery-status{display:flex;align-items:center;gap:8px;color:var(--text-secondary);font-size:13px;padding:8px 10px;margin:0;line-height:1.5}
.discovery-search .discovery-status:empty{display:none}
.discovery-search .u046-body[aria-busy=true] .discovery-status::before{content:'';width:8px;height:8px;border-radius:var(--ui-radius-pill);background:var(--primary);flex:none;animation:discovery-pending 900ms ease-in-out infinite alternate}
.discovery-search .discovery-search-label{display:block;margin:0 0 10px;font-size:14px;font-weight:650;color:var(--text-secondary)}
.discovery-search .discovery-help{margin:12px 4px 0;color:var(--text-secondary);font-size:13px;line-height:1.6}
.discovery-search .discovery-example{border:0;background:transparent;color:var(--text-link);font-size:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:5px 4px;min-height:36px}
.discovery-search .discovery-close{border:0;background:var(--ux-surface-2);color:var(--text-primary);border-radius:var(--hs-radius-control);width:36px;height:36px;flex:none;display:grid;place-items:center;cursor:pointer}
.discovery-search .discovery-close svg{width:17px;height:17px}
.discovery-search .is-closed .discovery-close{display:none}
.discovery-search .is-closed .u046-body,.discovery-search .is-closed .u046-foot{visibility:hidden;pointer-events:none}
.discovery-search .u046-field:focus-within{outline:2px solid var(--primary);outline-offset:3px}
:root[data-input=keyboard] .discovery-search *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@keyframes discovery-pending{from{opacity:.5}to{opacity:1}}
@media(hover:hover) and (pointer:fine){.discovery-search .discovery-location:hover{background:var(--region-map-field)}.discovery-search .u046-submit:hover{background:var(--hs-action-hover)}}
@media(max-width:480px){.discovery-search .u046-field{padding-left:14px;gap:7px}.discovery-search .u046-pal{height:min(530px,65svh)}.discovery-search .u046-result-meta{font-size:13px}.discovery-search .u046-kbd{display:none}.discovery-search .discovery-help{font-size:13px}}
@media(prefers-reduced-motion:reduce){.discovery-search *,.discovery-search *::before{animation:none!important;transition:none!important;scroll-behavior:auto!important}.discovery-search .u046-submit:active{transform:none}}

/* Source: src/support-shortcut.css */
/* Native contact link. No ambient effects or decorative controls. */
.hs-support-dock { position:fixed;z-index:50;right:max(16px,env(safe-area-inset-right));bottom:calc(var(--support-viewport-bottom,0px) + max(16px,env(safe-area-inset-bottom))); }
.hs-support-shortcut { display:inline-flex;align-items:center;justify-content:center;height:44px;min-height:44px;padding:0 16px;border:1px solid var(--action-primary);border-radius:var(--hs-radius-control);background:var(--action-primary);color:var(--on-primary-color);font-size:14px;font-weight:600;line-height:1.4;text-decoration:none;white-space:nowrap; }
.hs-support-shortcut:hover { background:var(--action-primary-hover);border-color:var(--action-primary-hover); }
.hs-support-shortcut:focus-visible { outline:2px solid var(--text-link);outline-offset:3px; }
.hs-support-dock[data-obscured=true] { visibility:hidden;pointer-events:none; }
html:root body.support-shortcut-enabled .site-footer { padding-bottom:max(88px,calc(72px + env(safe-area-inset-bottom))); }
body.support-shortcut-enabled:not(:has(.site-footer)) { padding-bottom:88px; }
body.support-shortcut-enabled :is(input,textarea,select,[contenteditable=true]) { scroll-margin-bottom:88px; }
@media(max-width:760px) {
 /* HealAI fixes its workspace to the visible viewport while typing. Leave a
    separate 76px row for this link instead of covering Send or the textarea. */
 html:root body.support-shortcut-enabled .health-checkin-page.hs-ai-friendly.ai-keyboard .hs-ai-workspace { height:calc(var(--ai-keyboard-height,100dvh) - max(76px,calc(60px + env(safe-area-inset-bottom))));margin-top:0; }
 html:root body.support-shortcut-enabled .health-checkin-page.hs-ai-friendly.ai-keyboard .hs-ai-main { grid-template-rows:auto minmax(60px,1fr) minmax(0,auto); }
 html:root body.support-shortcut-enabled .health-checkin-page.hs-ai-friendly.ai-keyboard .hs-ai-topline { padding:5px 10px; }
 html:root body.support-shortcut-enabled .health-checkin-page.hs-ai-friendly.ai-keyboard .hs-ai-compose { padding:8px 12px; }
 body.support-shortcut-enabled:has(.ai-keyboard) .hs-support-dock::before { content:"";position:fixed;z-index:-1;pointer-events:none;left:0;right:0;bottom:var(--support-viewport-bottom,0px);height:max(76px,calc(60px + env(safe-area-inset-bottom)));background:var(--surface);border-top:1px solid var(--border); }
}
@media print { .hs-support-dock { display:none; } }

/* Source: src/healai-peach.css */


/* The existing step label declares its colour !important in ai.css. Keep that
   one override local instead of recolouring shared lilac lesson/topic badges. */
html:root[data-region="ai"] .health-checkin-page.hs-ai-friendly .ai-step-number {
  color: var(--hs-accent-ink) !important;
  background: var(--ai-step-fill);
}

/* Source: src/ui-system.css */

html:root body {
  font-family:var(--font-ui); color:var(--text-main); background:var(--bg-body); line-height:1.6;
}
html:root[data-theme] body :is(h1,h2,h3) { font-family:var(--font-ui); letter-spacing:-.5px; line-height:1.35; }
html:root[data-theme] body h1 { font-size:var(--font-size-h1); font-weight:700; }
html:root[data-theme] body h2 { font-size:var(--font-size-h2); font-weight:600; margin-bottom:12px; }
html:root[data-theme] body h3 { font-size:var(--font-size-h3); font-weight:600; }
html:root body p { font-size:15px; line-height:1.6; }
html:root body .text-sm { font-size:13px; line-height:1.6; color:var(--text-muted-readable); }
html:root body :is(.hs-text-muted,.hs-muted,.hs-help,.auth-privacy-note,.loading-note) { color:var(--text-muted-readable); }
html:root body :is(input,textarea)::placeholder { color:var(--text-muted-readable); opacity:1; }
html:root body :is(.mint-btn,.button.primary,.news-button.primary) { background:var(--action-current); color:var(--on-primary-color); }
html:root body :is(.mint-btn,.button.primary,.news-button.primary):hover { background:var(--hs-action-hover); color:var(--on-primary-color); }
html:root .discovery-provider-note a { color:var(--text-link); text-decoration:underline; text-underline-offset:3px; }
/* Header uses the same brand on every route. Only signup is a filled action. */
html:root .app-header .brand { gap:10px; font-size:27px; min-height:48px; letter-spacing:-.8px; color:var(--text-main); }
html:root .app-header .brand b { font-weight:800; }
html:root .app-header .brand-period { color:var(--primary-color); }
html:root .app-header .logo-box { width:42px; height:42px; border-radius:6px; color:var(--brand-ink); background:var(--primary-light); }
html:root .app-header .logo-box svg { width:28px; height:28px; }
html:root .app-header svg { stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
html:root .app-header svg :is(path,circle,line,rect,polyline,polygon,ellipse) { vector-effect:non-scaling-stroke; }
html:root .app-header .segments a { font-size:16px; font-weight:600; min-height:48px; color:var(--text-secondary-readable); }
html:root .app-header .segments { background:transparent; }
html:root .app-header .segments :is(a.active,a:hover) { color:var(--brand-ink); background:transparent; }
html:root .app-header .segments a.active { font-weight:700; }
html:root .app-header .segments a::after { background:var(--primary-color); }
html:root .app-header :is(.icon-btn,.mobile-nav-tool,.nav-disclose) { color:var(--text-secondary-readable); }
html:root .app-header .nav-disclose[aria-expanded=true] { color:var(--brand-ink); background:var(--primary-light); }
html:root .app-header [data-open-auth] { min-height:46px; padding:10px 16px; border-radius:6px; font-size:15px; font-weight:600; line-height:1.5; box-shadow:none; }
html:root .app-header [data-open-auth=login] { color:var(--brand-ink); border:1px solid var(--control-border); background:transparent; }
html:root body .app-header [data-open-auth=signup] { color:var(--on-primary-color); background:var(--action-primary); border:1px solid var(--action-primary); }
html:root body .app-header [data-open-auth=signup]:hover { background:var(--action-primary-hover); border-color:var(--action-primary-hover); color:var(--on-primary-color); box-shadow:none; }
html:root .app-header [data-open-auth=login]:hover { background:var(--primary-light); color:var(--brand-ink); border-color:var(--brand-ink); box-shadow:none; }
html:root .app-header :is(a,button):focus-visible { outline:3px solid var(--brand-ink); outline-offset:3px; }
html:root .app-header .mobile-nav-auth { display:none; }
@media(max-width:1023px) {
  html:root .app-header .brand { font-size:24px; }
  html:root .app-header .nav-disclose { width:48px; min-width:48px; min-height:48px; }
  html:root .app-header .mobile-menu-toggle { width:48px; height:48px; }
  html:root body:has(.app-header.nav-expanded) .hs-support-dock { visibility:hidden; pointer-events:none; }
}
@media(max-width:760px) {
  html:root .app-header .brand { font-size:22px; gap:8px; }
  html:root .app-header .logo-box { width:36px; height:36px; }
  html:root .app-header [data-open-auth=login] { padding:9px 10px; font-size:14px; }
  html:root .app-header.nav-expanded .mobile-nav-auth { display:flex; grid-column:1/-1; padding:12px 0 4px; }
  html:root .app-header .mobile-nav-auth [data-open-auth=signup] { display:inline-flex; align-items:center; justify-content:center; width:100%; }
}
@media(max-width:360px) {
  html:root .app-header .brand { font-size:20px; gap:6px; }
  html:root .app-header .logo-box { width:30px; height:32px; }
  html:root .app-header .logo-box svg { width:24px; height:24px; }
  html:root .app-header [data-open-auth=login] { padding-inline:8px; font-size:13px; }
  html:root .app-header .mobile-menu-toggle { width:44px; min-width:44px; }
}

/* Source: src/library-community.css */
/* Community reading and account identity components. Learn card styles live in heallearn/learn.css. */
/* Initials remain the actual account identity; no portrait is invented. */
html:root :is(.hs-provider .hs-avatar,.connect-avatar,.hs-post-author .hs-avatar,.staff-contact-avatar) {
  border-radius:6px;
  aspect-ratio:1;
  flex-shrink:0;
}
html:root :is(.hs-provider .hs-avatar,.connect-avatar,.hs-post-author .hs-avatar,.staff-contact-avatar)>img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:inherit;
}
html:root .connect-page :is(.hs-provider p,.hs-appointment p,.connect-intro p,.connect-bubble,.connect-private-note,.connect-sidebar-note,.connect-footnote,.connect-signin,.connect-closed,.connect-thread-notice) {
  line-height:1.6;
}
html:root .connect-page .hs-provider {
  gap:16px;
}
html:root .connect-page .hs-provider .hs-row {
  align-items:center;
  gap:14px;
}
html:root .connect-page .hs-provider h2 {
  font-size:22px;
  line-height:1.4;
  margin:0 0 6px;
}
html:root .connect-page .hs-provider p:empty {
  display:none;
}
html:root .connect-page .connect-contact-copy>span,
html:root .connect-page .connect-chat-person p {
  line-height:1.6;
}

/* Readable excerpts, complete stories and guidelines share one text rhythm. */
html:root .confession-page .hs-post {
  margin-bottom:24px;
}
html:root .confession-page .hs-post-body,
html:root .confession-dialog .hs-post-body,
html:root .confession-dialog .hs-comment p {
  font-size:16px;
  line-height:1.6;
  overflow-wrap:anywhere;
}
html:root .confession-page .hs-post h2 {
  margin:14px 0 14px;
}
html:root .confession-page .hs-post footer {
  margin-top:20px;
  padding-top:16px;
}
html:root .confession-page .hs-community-note li {
  font-size:15px;
  line-height:1.6;
  margin:12px 0;
  padding-inline-start:2px;
}
html:root .confession-page .hs-community-note li:first-child {
  margin-top:0;
}
html:root .confession-page .hs-community-note li:last-child {
  margin-bottom:0;
}
html:root .confession-page .hs-community-note h2 {
  margin-bottom:16px;
}
html:root .confession-page .confession-sidebar>.hs-notice,
html:root .confession-page .confession-sidebar>.hs-notice p,
html:root .confession-page .confession-learn span {
  line-height:1.6;
}
html:root .confession-page .confession-sidebar>.hs-notice p {
  margin:12px 0;
}
html:root .confession-dialog .hs-comment {
  margin-top:18px;
}

/* Source: src/school-safety.css */
/* HealSphere school support: explicit consent, real contact routes, quiet working surfaces. */
.hs-urgent-help{position:sticky;top:0;z-index:49;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:2px 20px;padding:1px 16px;background:#fff0e6;border-bottom:1px solid #edcbbd;color:#61392d;font:600 13px/1.5 'Be Vietnam Pro',sans-serif}
/* Keep this utility strip independent of regular 40–44px form controls. */
html:root body .hs-urgent-help :is(a,button){display:inline-flex;align-items:center;gap:6px;min-height:28px;color:inherit;text-decoration:none;font:inherit;background:transparent;border:0;cursor:pointer;padding:2px 4px}
.hs-urgent-help a:hover,.hs-urgent-help button:hover{text-decoration:underline;text-underline-offset:4px}
.hs-urgent-help :focus-visible,.hs-safety-dialog :focus-visible{outline:2px solid #a9343c;outline-offset:3px}
.hs-safety-dialog{max-width:min(620px,calc(100vw - 28px));max-height:calc(100dvh - 32px);overflow:auto;padding:24px;border:1px solid #e2c5ba;border-radius:6px;background:#fffaf6;color:#2d3748;font:400 15px/1.65 'Be Vietnam Pro',sans-serif;box-sizing:border-box}
.hs-safety-dialog::backdrop{background:rgb(30 23 27 / .45)}
.hs-safety-dialog header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.hs-safety-dialog h2{font-size:22px;line-height:1.35;margin:0}.hs-safety-dialog h3{font-size:17px}.hs-safety-dialog header button{border:0;background:transparent;color:inherit;font-size:28px;width:44px;min-width:44px;height:44px;cursor:pointer}.hs-safety-dialog p{margin:12px 0}.hs-safety-dialog a{color:#96373d}.hs-safety-dialog button,.hs-safety-dialog input,.hs-safety-dialog select{font:inherit}
.hs-safety-dialog form>label{display:grid;gap:6px;margin:14px 0}.hs-safety-dialog select{width:100%;padding:10px;border:1px solid #a9948c;border-radius:6px;background:#fff;color:#2d3748}.hs-safety-dialog label.hs-privacy-check{display:flex;align-items:flex-start;gap:10px}.hs-privacy-check input{margin-top:6px;accent-color:#b34048}.hs-safety-dialog [role=alert]{color:#a82f39}
.hs-safety-dialog .hs-safety-primary,.hs-safety-primary{display:inline-flex;align-items:center;justify-content:center;padding:10px 16px;min-height:44px;background:#b34048;color:#fff;border:0;border-radius:6px;text-decoration:none;font-weight:600;cursor:pointer}.hs-safety-primary:disabled{background:#735b60;color:#fff;cursor:wait}
.hs-emergency-links{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.hs-emergency-links a{padding:14px;background:#fff0e6;border:1px solid #e2c5ba;border-radius:6px;text-decoration:none}.hs-emergency-links strong,.hs-emergency-links span{display:block}.hs-emergency-links strong{font-size:20px}.hs-emergency-links span{font-size:13px}.hs-safety-warning{padding:12px;background:#fff0cb;color:#65461a;border-radius:6px}
.ai-support-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.ai-source-list{font-size:13px;color:var(--text-muted,#526171);margin-top:8px}.ai-support-note{padding:14px;background:#fff0e6;border-radius:6px;margin:12px 0}.ai-safety-result{padding:16px;background:#fff0e6;border:1px solid #bc6564;border-radius:6px}.ai-safety-result a{font-weight:700;margin-right:18px}.ai-mode-switch{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}.ai-mode-switch button{min-height:44px}.ai-mode-switch [aria-pressed=true]{background:#b34048;color:#fff;border-color:#b34048}.hs-ai-friendly[data-interaction-mode=school_support] .ai-extra-fields{display:none!important}.hs-ai-friendly[data-interaction-mode=school_support] .ai-text-only-note{display:none!important}.hs-ai-friendly[data-interaction-mode=school_support] .hs-ai-workspace{margin-top:12px}.hs-ai-friendly[data-interaction-mode=school_support] #ai-module-picker{display:none!important}
.hs-connection-preview{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--bg-card,#fff);padding:16px;border:1px solid var(--border-color,#e2e8f0);border-radius:6px;max-height:32dvh;overflow:auto}.connect-anonymous{display:flex;gap:8px;align-items:flex-start;font-size:13px;line-height:1.6;margin:10px 0}.connect-anonymous input{margin-top:4px;flex:none}.connect-receipt{font-size:13px;margin:8px 0;color:var(--text-muted,#526171)}
.staff-safety-list{display:grid;gap:16px}.staff-safety-card{background:var(--bg-card,#fff);padding:20px;border:1px solid var(--border-color,#e2e8f0);border-radius:6px}.staff-safety-card h2{font-size:19px;margin:0 0 8px}.staff-safety-card blockquote{margin:14px 0;padding:12px 14px;border-left:1px solid #b34048;background:#fff0e6;white-space:pre-wrap;overflow-wrap:anywhere}.staff-safety-card textarea{width:100%;box-sizing:border-box;min-height:90px;padding:10px}.staff-safety-card small{display:block}.staff-safety-card form{margin-top:14px}.staff-safety-state{font-weight:600;color:#96373d}.staff-safety-help{max-width:70ch}.school-config-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.school-config-grid>.school-wide{grid-column:1/-1}.school-staff-list{display:grid;gap:12px}.school-staff-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:14px 0;border-bottom:1px solid #e2e8f0}.school-staff-row>strong{flex:1 1 200px}.school-staff-row select{max-width:230px}.school-class-list{padding-left:22px}.school-save-feedback{min-height:1.5em}.school-private-note{font-size:14px;line-height:1.6}.school-weekdays{display:flex;gap:12px;flex-wrap:wrap}.school-weekdays label{display:flex;gap:5px}
html[data-theme=dark] .hs-urgent-help{background:#382c30;color:#f4d5c4;border-color:#59454a}html[data-theme=dark] .hs-safety-dialog{background:#282429;color:#f5e9e5;border-color:#6a535b}html[data-theme=dark] .hs-safety-dialog a{color:#f4b3a0}html[data-theme=dark] .hs-safety-dialog select{background:#332b31;color:#fff0e6;border-color:#8c6a73}html[data-theme=dark] .hs-emergency-links a,html[data-theme=dark] .ai-support-note,html[data-theme=dark] .ai-safety-result,html[data-theme=dark] .staff-safety-card blockquote{background:#3b2b30;color:#f4d5c4;border-color:#9f6b72}html[data-theme=dark] .hs-safety-warning{background:#403323;color:#ffe1a0}html[data-theme=dark] .hs-safety-dialog [role=alert],html[data-theme=dark] .staff-safety-state{color:#ffbbb9}html[data-theme=dark] .hs-safety-dialog .hs-safety-primary{background:#f4b3a0;color:#4b3d45}
@media(max-width:640px){.hs-urgent-help{gap:2px 12px;padding:1px 10px;font-size:13px}html:root body .hs-urgent-help :is(a,button){min-height:32px}.hs-urgent-help a span{display:none}.hs-safety-dialog{padding:18px}.school-config-grid{grid-template-columns:1fr}.school-config-grid>.school-wide{grid-column:auto}.hs-emergency-links{grid-template-columns:1fr}.staff-safety-card{padding:16px}}
@media(prefers-reduced-motion:no-preference){.hs-safety-primary{transition:background .16s ease-out,transform .16s ease-out}.hs-safety-primary:active{transform:scale(.98)}}
@media print{.hs-urgent-help{display:none}}

.staff-review-image{max-width:100%;max-height:260px;object-fit:contain}.staff-review-body{padding-top:16px}.staff-review-body section{margin:18px 0}.staff-review-body p{white-space:pre-wrap}

/* Source: src/product-ui.css */
/* Shared product geometry. Color and radius tokens live in theme-tokens.css.
   14px panels, 10px inner surfaces, 8px controls; compact labels stay pill-shaped. */
html:root { font-size:100%; }
html:root body { font-size:1rem;line-height:1.6; }
html:root body :is(h1,h2,h3,h4) { font-family:var(--font-ui);text-wrap:balance; }
html:root body h1 { font-size:1.75rem;line-height:1.25;letter-spacing:-.025em;font-weight:700; }
html:root body h2 { font-size:1.25rem;line-height:1.35;letter-spacing:-.02em;font-weight:600; }
html:root body h3 { font-size:1.0625rem;line-height:1.4;letter-spacing:-.01em;font-weight:600; }
html:root body p { font-size:1rem;line-height:1.6;text-wrap:pretty; }
html:root body :is(small,.hs-help,.hs-muted,.hint,.lesson-meta,.loading-note,.form-hint,.text-sm) { font-size:.8125rem;line-height:1.55; }
html:root body :is(input,textarea,select,button) { font-family:var(--font-ui); }
html:root body :is(button,.btn,.button,.mint-btn,.outline-btn,.hs-small-btn,.news-button,input:not([type=checkbox]):not([type=radio]):not([type=range]),textarea,select):not(.u019-chip):not(.u046-in) { border-radius:var(--hs-radius-control); }
html:root body :is(input,textarea,select) { font-size:1rem;line-height:1.5; }
html:root body :is(input,textarea)::placeholder { opacity:1; }
html:root body :is(button,.button,.mint-btn,.outline-btn,.hs-small-btn,.news-button,.home-solid-link) { font-size:.875rem;line-height:1.45;letter-spacing:0; }
html:root body :is(button,.button,.mint-btn,.outline-btn,.hs-small-btn,.news-button,input,select) { min-height:40px; }
html:root body :is(input[type=checkbox],input[type=radio],input[type=range]) { min-height:0; }
html:root body :is(.button,.mint-btn,.outline-btn,.hs-small-btn,.news-button) { padding:8px 12px; }
html:root body :is(a,button,input,textarea,select,summary):focus-visible { outline:2px solid var(--text-link);outline-offset:3px; }
html:root body :is(input,textarea) { caret-color:var(--text-primary); }
html:root body a { text-underline-offset:3px; }
html:root body :is(.hs-symbol,.hs-empty-icon,.community-note>svg,.hs-community-note>svg) { display:none; }
/* Stable chrome: compact at desktop, native disclosure at smaller widths. */
html:root .app-header.u354 { padding:10px 24px;gap:0 16px;min-height:64px; }
html:root .app-header .brand { font-size:22px;line-height:1.2;letter-spacing:-.025em;gap:8px;min-height:40px; }
html:root .app-header .brand b { font-weight:700; }
html:root .app-header .logo-box { width:28px;height:32px; }
html:root .app-header .logo-box svg { width:24px;height:24px; }
html:root .app-header .header-actions { gap:6px; }
html:root .app-header .segments { gap:4px; }
html:root .app-header .segments a { font-size:15px;line-height:1.4;min-height:40px;padding:8px 6px;gap:6px; }
html:root .app-header .segments a::after { height:1px; }
html:root .app-header :is([data-open-auth],.icon-btn,.avatar) { min-height:40px;height:40px; }
html:root .app-header [data-open-auth] { padding:8px 10px;font-size:14px; }
html:root .app-header :is(.icon-btn,.avatar) { width:40px; }
html:root .u354 .u354-pn { border:1px solid var(--border); }
html:root .u354 .u354-car { display:none; }
html:root .u354 .u354-it { gap:8px; }
html:root .u354 .u354-it i { display:none; }
html:root .u354 .u354-it b { font-size:14px; }
html:root .u354 .u354-it span { font-size:13px; }

@media(min-width:1024px) and (max-width:1279px) {
  html:root .app-header.u354 .segments { margin-top:4px;padding-top:0; }
}
/* Common pages and headings. Content keeps its own region colors. */
html:root :is(.hs-page,.section-page) { max-width:1200px;padding:24px;margin:0 auto; }
html:root :is(.hs-page-header,.learn-hero,.connect-welcome,.journal-welcome,.confession-hero,.checkin-heading) { min-height:0;padding:16px 20px;margin:0 0 20px;gap:20px;border-radius:var(--hs-radius-panel); }
html:root :is(.hs-page-header,.learn-hero,.connect-welcome,.journal-welcome,.confession-hero,.checkin-heading) h1 { font-size:28px;line-height:1.25;letter-spacing:-.025em;max-width:32ch;margin:0 0 8px; }
html:root :is(.hs-page-header,.learn-hero,.connect-welcome,.journal-welcome,.confession-hero,.checkin-heading) p { font-size:15px;line-height:1.6;margin:0;max-width:72ch; }
html:root img.discovery-page-art { width:112px;height:76px;flex-basis:112px; }
html:root .confession-hero .confession-art { width:112px;height:76px;flex-basis:112px; }
html:root body :is(.card,.hs-panel,.panel,.staff-safety-card,.hs-provider,.hs-appointment,.hs-post,.post,.community-note,.hs-community-note) { padding:16px;border-radius:var(--hs-radius-panel);box-shadow:var(--hs-elevation); }
html:root body :is(.card,.hs-panel,.panel,.staff-safety-card) > :is(.card,.hs-panel,.panel) { padding:12px 0;border-inline:0;border-bottom:0;border-radius:0;box-shadow:none; }
html:root body :is(.card-head,.hs-dialog-head) { gap:12px;margin-bottom:12px; }
html:root body :is(.hs-form,.auth-modal form) { gap:12px; }
html:root body :is(.hs-form label,.hs-label,.auth-modal label) { gap:6px;font-size:14px;line-height:1.5; }
html:root body .hs-form :is(input,select,textarea) { padding:9px 10px; }
html:root body :is(.hs-toolbar,.hs-tabs,.forum-bar,.map-tools) { gap:8px;margin-block:0 16px; }
html:root body :is(.hs-row,.hs-actions,.btn-row,.actions) { gap:8px; }
html:root body :is(.hs-empty,.empty-state,.empty) { padding:24px 16px; }
html:root body :is(.hs-empty,.empty-state) p { max-width:60ch; }
html:root body :is(.hs-notice,.hs-error,.notice,.hs-safety-warning,.ai-support-note) { padding:10px 12px;line-height:1.6; }
html:root body :is(.hs-tag,.hs-badge,.badge,.status,.pill) { font-size:13px;line-height:1.4;padding:3px 7px;border-radius:var(--ui-radius-pill); }
html:root body :is(.hs-pagination,.pagination) { margin-top:16px;gap:12px; }
/* Working areas use edges and spacing; task state remains in text and color. */
html:root body :is(.connect-workspace,.hs-ai-workspace,.hs-map-layout,.map-layout) { border-radius:var(--hs-radius-panel); }
html:root body .platform-shell { border-radius:0; }
html:root body :is(.hs-ai-messages,.connect-messages,.staff-messages) { padding:16px; }
html:root body :is(.hs-message,.connect-bubble,.staff-bubble) { font-size:15px;line-height:1.65;padding:12px 14px; }
html:root body :is(.hs-ai-compose,.connect-compose) { padding:12px 16px; }
html:root body :is(.hs-ai-topline,.connect-chat-head,.connect-thread-tools) { padding:10px 16px; }
html:root body :is(.hs-ai-conversation,.connect-contact) { padding-block:8px; }
html:root body .hs-ai-workspace { margin-top:12px; }
html:root body :is(th,td) { padding:10px 12px;line-height:1.5;font-size:14px; }
html:root body :is(th,.stat-card strong,.hs-ai-metrics strong) { font-variant-numeric:tabular-nums; }
/* Modal focus and form semantics remain native. */
html:root body :is(dialog,.auth-modal,.hs-dialog,.hs-safety-dialog) { padding:20px;max-height:calc(100dvh - 32px);border-radius:var(--hs-radius-panel); }
html:root body .auth-modal h2 { margin:0 28px 8px 0;text-align:left;font-size:22px; }
html:root body .auth-modal>p { text-align:left;margin-bottom:16px;font-size:14px; }
html:root body .auth-privacy-note { text-align:left;font-size:13px;line-height:1.55;margin-top:16px; }
html:root body .auth-modal .close { min-height:36px;width:36px; }
html:root body .auth-modal .auth-other-logins { gap:8px; }
/* Footer is navigation, not another hero. */
html:root .site-footer { padding:24px;gap:20px 40px; }
html:root .site-footer b { font-size:22px;line-height:1.25;letter-spacing:-.025em; }
html:root .site-footer p { font-size:14px;line-height:1.6; }
html:root .site-footer .footer-link-group h2 { font-size:15px;margin:0 0 6px;letter-spacing:0; }
html:root .site-footer .footer-links a { font-size:14px;min-height:36px;padding:6px 0; }
html:root .site-footer .footer-note { padding-top:12px;gap:12px; }
html:root .site-footer .footer-note p { font-size:13px; }
@media(max-width:1023px) {
  html:root .app-header.u354 { padding:8px 16px; }
  html:root .app-header .segments a { min-height:44px;font-size:16px; }
  html:root .app-header .nav-disclose { min-height:44px;width:44px; }
}
@media(max-width:760px) {
  html:root :is(.hs-page,.section-page) { padding:16px; }
  html:root :is(.hs-page-header,.learn-hero,.connect-welcome,.journal-welcome,.confession-hero,.checkin-heading) { padding:14px 16px;margin-bottom:16px;gap:12px; }
  html:root :is(.hs-page-header,.learn-hero,.connect-welcome,.journal-welcome,.confession-hero,.checkin-heading) h1 { font-size:24px; }
  html:root img.discovery-page-art,html:root .confession-hero .confession-art { width:80px;height:64px;flex-basis:80px; }
  html:root body :is(.button,.mint-btn,.outline-btn,.hs-small-btn,.news-button,button) { min-height:44px; }
  html:root body :is(.card,.hs-panel,.panel,.staff-safety-card,.hs-provider,.hs-appointment,.hs-post,.post) { padding:14px; }
  html:root .site-footer { padding:20px 16px;gap:20px; }
  html:root .site-footer .footer-links a { min-height:44px; }
  html:root .site-footer .footer-note { flex-direction:column; }
  html:root .site-footer .footer-note p:last-child { text-align:left; }
}
@media(prefers-reduced-motion:no-preference) {
  html:root .u354 :is(.u354-pn,.u354-pg) { transition-duration:160ms;transition-timing-function:ease-out; }
}
@media print { html:root { font-size:12pt; } }
