:root{
  --sj-bg:#FAF9F5;--sj-text:#111111;--sj-green:#2D7D46;--sj-green-soft:#E8F5E9;
  --sj-yellow:#F59E0B;--sj-yellow-soft:#FFF8E1;--sj-red:#DC2626;--sj-red-soft:#FEF2F2;
  --sj-blue:#075985;--sj-border:#1F2937;--sj-radius:24px;--sj-font-scale:1;
}
*{box-sizing:border-box}html{font-size:calc(20px * var(--sj-font-scale));scroll-behavior:smooth}
body{margin:0;background:var(--sj-bg);color:var(--sj-text);font-family:"Sarabun",system-ui,sans-serif;line-height:1.55}
button,a,input{font:inherit}.sj-app{min-height:100dvh;max-width:920px;margin:0 auto;padding-bottom:120px;background:var(--sj-bg)}
.sj-skip-link{position:absolute;left:-9999px}.sj-skip-link:focus{left:12px;top:12px;z-index:9999;background:#fff;padding:16px;border:4px solid #000}
.sj-header{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:88px 1fr 150px;align-items:center;gap:14px;padding:14px 18px;background:rgba(250,249,245,.97);border-bottom:2px solid #D1D5DB}
.sj-brand{display:flex;align-items:center;gap:8px;font-size:1.35rem}.sj-brand small{font-size:.72rem;font-weight:500}.sj-icon-btn,.sj-back{min-width:72px;min-height:72px;border:2px solid #111;background:#fff;border-radius:20px;cursor:pointer}
.sj-sos{min-height:72px;display:grid;place-items:center;text-align:center;text-decoration:none;color:#fff;background:var(--sj-red);border-radius:20px;font-weight:700;padding:8px 16px}
.sj-screen{display:none;min-height:calc(100dvh - 210px);padding:38px 24px;text-align:center;align-content:start}.sj-screen.is-active{display:grid;gap:24px;justify-items:center}
h1{font-size:clamp(1.8rem,5vw,2.35rem);line-height:1.2;margin:.25em 0}h2{font-size:1.5rem;line-height:1.25}.sj-screen p{font-size:1.25rem;max-width:720px}
.sj-avatar{width:190px;height:190px;display:grid;place-items:center;border-radius:50%;font-size:6rem;background:#fff;border:4px solid #D1D5DB;box-shadow:0 12px 28px rgba(0,0,0,.08);animation:sj-breathe 3s ease-in-out infinite}
.sj-mic{display:grid;place-items:center;border:0;border-radius:50%;font-size:4rem}.sj-mic span{font-size:1.35rem;font-weight:700}.sj-mic--primary{width:190px;height:190px;color:#fff;background:var(--sj-green);box-shadow:0 0 0 14px var(--sj-green-soft)}
.sj-mic--listening{width:150px;height:150px;color:#fff;background:#0EA5E9}.sj-ripple{width:220px;height:220px;display:grid;place-items:center;border-radius:50%;animation:sj-ripple 1.5s infinite}
.sj-prompt,.sj-transcript,.sj-speech,.sj-tip,.sj-alert-status{width:min(100%,760px);padding:22px;border-radius:20px;background:#fff;border:2px solid #CBD5E1;font-size:1.2rem;text-align:left}.sj-transcript p{margin:.4em 0 0}
.sj-btn{min-height:76px;min-width:220px;padding:18px 28px;border:3px solid #111;border-radius:22px;background:#fff;color:#111;font-weight:700;cursor:pointer;text-decoration:none;display:grid;place-items:center}.sj-btn:focus-visible,.sj-icon-btn:focus-visible,.sj-sos:focus-visible,.sj-back:focus-visible,.sj-drawer button:focus-visible{outline:5px solid #005FCC;outline-offset:4px}
.sj-btn--primary{background:var(--sj-green);color:#fff;border-color:var(--sj-green)}.sj-btn--warning{background:var(--sj-yellow-soft);border-color:#8A4B00}.sj-btn--danger{background:#B91C1C;color:#fff;border-color:#7F1D1D}.sj-btn--sos{width:min(100%,760px);min-height:120px;background:var(--sj-red);color:#fff;border-color:#7F1D1D;font-size:1.65rem}.sj-btn--mental{width:min(100%,760px);min-height:108px;background:#fff;color:#991B1B;border-color:#991B1B;font-size:1.45rem}
.sj-dots{display:flex;gap:16px}.sj-dots span{width:22px;height:22px;border-radius:50%;background:#2563EB;animation:sj-dot 1.2s infinite}.sj-dots span:nth-child(2){animation-delay:.2s}.sj-dots span:nth-child(3){animation-delay:.4s}
.sj-audio-bar{width:min(100%,640px);height:16px;border-radius:999px;background:#D1D5DB;overflow:hidden}.sj-audio-bar span{display:block;width:45%;height:100%;background:var(--sj-blue)}
.sj-actions{display:grid;gap:18px;width:min(100%,760px)}.sj-actions--2{grid-template-columns:repeat(2,1fr)}.sj-actions--3{grid-template-columns:repeat(3,1fr)}
.sj-result--green{background:linear-gradient(var(--sj-green-soft),var(--sj-bg) 65%)}.sj-result--yellow{background:linear-gradient(var(--sj-yellow-soft),var(--sj-bg) 70%)}.sj-result--red{background:linear-gradient(var(--sj-red-soft),var(--sj-bg) 70%)}
.sj-status-icon{width:110px;height:110px;border-radius:50%;display:grid;place-items:center;font-size:3.5rem;font-weight:700;background:#fff;border:6px solid currentColor}.sj-result--green .sj-status-icon{color:#16803A}.sj-result--yellow .sj-status-icon{color:#9A5A00}.sj-result--red .sj-status-icon{color:#B91C1C}
.sj-card{width:min(100%,760px);padding:26px;border:2px solid #111;border-radius:var(--sj-radius);background:#fff}.sj-card-icon{font-size:3rem}.sj-community-grid{width:100%;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.sj-community-grid .sj-card{height:100%}
.sj-list{width:min(100%,760px);display:grid;gap:16px}.sj-caregiver{width:100%;display:grid;grid-template-columns:1fr auto;align-items:center;gap:16px;padding:22px;text-align:left;border:2px solid #111;border-radius:20px;background:#fff}.sj-caregiver strong{font-size:1.35rem}.sj-caregiver small{font-size:1rem}
.sj-room-banner{width:min(100%,760px);padding:34px;border-radius:28px;background:#F5E6C8;border:2px solid #6B4A20}
.sj-drawer{position:fixed;inset:0 auto 0 0;width:min(92vw,520px);z-index:50;background:#FAF9F5;border-right:4px solid #111;padding:20px;transform:translateX(-105%);transition:transform .25s ease}.sj-drawer.is-open{transform:translateX(0)}.sj-drawer-head{display:flex;justify-content:space-between;align-items:center;font-size:1.6rem}.sj-drawer nav{display:grid;margin-top:20px}.sj-drawer nav button{min-height:82px;text-align:left;padding:0 20px;border:0;border-bottom:2px solid #CBD5E1;background:#fff;font-weight:700}.sj-font-controls{display:flex;gap:12px;align-items:center;margin-top:24px}.sj-font-controls button{min-width:72px;min-height:72px;border:2px solid #111;background:#fff;border-radius:18px}
.sj-bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,920px);display:grid;grid-template-columns:repeat(3,1fr);background:#fff;border-top:2px solid #111;z-index:19}.sj-bottom-nav button{min-height:92px;border:0;background:#fff;font-size:1.2rem}.sj-bottom-nav span{display:block;font-size:.9rem}
@keyframes sj-ripple{0%{box-shadow:0 0 0 0 rgba(14,165,233,.35)}70%{box-shadow:0 0 0 32px rgba(14,165,233,0)}100%{box-shadow:0 0 0 0 rgba(14,165,233,0)}}
@keyframes sj-breathe{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes sj-dot{0%,80%,100%{transform:scale(.7);opacity:.5}40%{transform:scale(1);opacity:1}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media (max-width:720px){.sj-header{grid-template-columns:72px 1fr 118px}.sj-brand small{display:none}.sj-community-grid,.sj-actions--3{grid-template-columns:1fr}.sj-actions--2{grid-template-columns:1fr}.sj-avatar{width:150px;height:150px;font-size:4.5rem}.sj-screen{padding-inline:16px}}

/* === LIFF Login 1.1 === */
.sj-login-screen{
  min-height:calc(100dvh - 40px);display:flex;flex-direction:column;justify-content:center;align-items:center;
  gap:22px;text-align:center;padding:clamp(24px,5vw,56px);background:#FAF9F5;position:relative;z-index:50;
}
.sj-login-logo{width:112px;height:112px;border-radius:50%;display:grid;place-items:center;font-size:60px;background:#E8F5E9;border:3px solid #2D7D46}
.sj-login-screen h1{font-size:clamp(36px,7vw,52px);line-height:1.25;margin:0;color:#111}
.sj-login-lead{font-size:clamp(22px,4.6vw,28px);line-height:1.55;max-width:660px;margin:0}
.sj-btn--line{background:#06C755!important;color:#071b0f!important;min-height:96px!important;min-width:min(100%,520px);font-size:30px!important;font-weight:700;border:3px solid #063f20!important;display:flex!important;justify-content:center;align-items:center;gap:18px}
.sj-line-mark{background:#fff;color:#063f20;border-radius:14px;padding:8px 10px;font-size:18px;font-weight:800;letter-spacing:.5px}
.sj-login-status{font-size:24px;font-weight:600;margin:0;min-height:38px}
.sj-login-status[data-status="error"]{color:#8B0000}.sj-login-status[data-status="success"]{color:#14532D}
.sj-login-privacy{font-size:20px;line-height:1.55;max-width:720px;border-top:2px solid #222;padding-top:16px;margin:0}
html.sj-needs-login .sj-header,html.sj-needs-login .sj-bottom-nav,html.sj-needs-login .sj-drawer{display:none!important}
.sj-user-card{display:flex;gap:14px;align-items:center;padding:16px;border:2px solid #111;border-radius:18px;margin:12px 0 18px;background:#fff}
.sj-user-card img{width:64px;height:64px;border-radius:50%;object-fit:cover;border:2px solid #111}.sj-user-card small,.sj-user-card strong{display:block}.sj-user-card strong{font-size:24px;margin-top:4px}
.sj-btn--logout{margin-top:18px;background:#fff!important;border-color:#8B0000!important;color:#8B0000!important}

/* Voice diagnostics + text fallback (v1.2.0) */
.sj-voice-status{width:min(100%,760px);margin:0;padding:16px 20px;border-radius:16px;background:#EFF6FF;border:2px solid #1D4ED8;color:#111827;font-size:1.1rem;font-weight:700;text-align:left}
.sj-voice-status[data-status="success"]{background:#E8F5E9;border-color:#2D7D46;color:#12351E}
.sj-voice-status[data-status="warning"]{background:#FFF8E1;border-color:#B45309;color:#3B2600}
.sj-voice-status[data-status="error"]{background:#FEF2F2;border-color:#DC2626;color:#7F1D1D}
.sj-text-fallback{width:min(100%,760px);padding:18px 20px;border:2px solid #64748B;border-radius:20px;background:#fff;text-align:left}
.sj-text-fallback summary{cursor:pointer;font-size:1.1rem;font-weight:700;min-height:56px;display:flex;align-items:center}
.sj-text-fallback label{display:block;font-weight:700;margin:12px 0 8px}
.sj-text-fallback textarea{display:block;width:100%;min-height:130px;padding:18px;border:3px solid #334155;border-radius:16px;background:#fff;color:#111;font:inherit;font-size:1.15rem;line-height:1.5;resize:vertical}
.sj-text-fallback textarea:focus{outline:5px solid #005FCC;outline-offset:3px}

/* Voice recovery: แสดงเมื่อ Web Speech ใน LIFF/WebView ใช้งานไม่ได้ */
.sj-speech-recovery {
  width: min(100%, 760px);
  margin: 18px auto;
  padding: 22px;
  border: 3px solid #8A5A00;
  border-radius: 24px;
  background: #FFF8E1;
  color: #2B1D00;
  text-align: left;
}
.sj-speech-recovery strong { display:block; font-size: calc(1.45rem * var(--sj-font-scale, 1)); margin-bottom:8px; }
.sj-speech-recovery p { font-size: calc(1.15rem * var(--sj-font-scale, 1)); line-height:1.65; }
.sj-speech-recovery .sj-btn { width:100%; margin-top:12px; }

.sj-dashboard{padding:24px;max-width:1100px;margin:0 auto}
.sj-dashboard-subtitle{font-size:1.1rem;color:#555;margin-top:-8px}
.sj-kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:20px 0}
.sj-kpi,.sj-chart-card,.sj-history-card{background:#fff;border-radius:22px;padding:20px;box-shadow:0 8px 30px rgba(0,0,0,.06)}
.sj-kpi small,.sj-kpi span{display:block;color:#666}
.sj-kpi strong{font-size:2.2rem;line-height:1.2;color:#2D7D46}
.sj-chart-card canvas{width:100%;height:auto;display:block;background:#FAF9F5;border-radius:16px}
.sj-history-row{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid #eee}
.sj-history-row:last-child{border-bottom:0}
.sj-history-row strong{font-size:1.15rem}
.sj-history-row span,.sj-history-row small{color:#666}
@media(max-width:720px){
  .sj-kpi-grid{grid-template-columns:1fr}
  .sj-history-row{grid-template-columns:1fr}
}

.sj-bp-entry{padding:24px;max-width:760px;margin:0 auto}
.sj-bp-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:24px 0}
.sj-bp-fields label{font-size:1.15rem;font-weight:700}
.sj-bp-fields input{display:block;width:100%;box-sizing:border-box;margin-top:8px;padding:18px;border:2px solid #d7d7d7;border-radius:16px;font:inherit;font-size:1.5rem;background:#fff}
.sj-bp-fields input:focus{outline:4px solid rgba(45,125,70,.2);border-color:#2D7D46}
.sj-bp-save{width:100%;min-height:72px;font-size:1.3rem;margin-bottom:12px}
.sj-bp-feedback{font-size:1.1rem;font-weight:700;margin-top:18px;min-height:1.5em}
@media(max-width:640px){.sj-bp-fields{grid-template-columns:1fr}}

.sj-bp-period{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0}
.sj-bp-period label{display:flex;align-items:center;justify-content:center;gap:10px;min-height:64px;padding:14px;border:2px solid #d7d7d7;border-radius:16px;background:#fff;font-size:1.15rem;font-weight:700;cursor:pointer}
.sj-bp-period input{width:24px;height:24px}
.sj-period-kpis{margin-top:8px}
@media(max-width:640px){.sj-bp-period{grid-template-columns:1fr}}

.sj-onboarding,.sj-consent-settings{padding:24px;max-width:800px;margin:0 auto}
.sj-onboard-card{background:#fff;border-radius:26px;padding:28px;box-shadow:0 10px 34px rgba(0,0,0,.07)}
.sj-onboard-step{font-weight:800;color:#2D7D46;margin-bottom:10px}
.sj-consent-choice{display:flex;align-items:flex-start;gap:14px;padding:18px;border:2px solid #e1e1e1;border-radius:18px;background:#fff;margin:14px 0;font-size:1.08rem}
.sj-consent-choice input{width:26px;height:26px;margin-top:2px;flex:0 0 auto}
.sj-onboard-actions{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:24px}
.sj-consent-summary{background:#FAF9F5;border-radius:18px;padding:18px;display:grid;gap:10px}
.sj-danger{width:100%;min-height:64px;margin-top:12px;border:0;border-radius:16px;background:#DC2626;color:#fff;font-size:1.1rem;font-weight:800}
@media(max-width:640px){.sj-onboard-actions{grid-template-columns:1fr}}

.sj-answer-question{width:100%;max-width:520px;min-height:72px;margin:18px auto 8px;display:block;font-size:1.2rem}
.sj-answer-hint{text-align:center;color:#666;font-size:1rem}


/* v2.4.0 — Persistent Voice Dock: microphone stays reachable without page scrolling. */
.sj-app{padding-bottom:calc(118px + env(safe-area-inset-bottom, 0px))}
.sj-voice-dock{
  position:fixed;
  left:50%;
  bottom:max(12px, env(safe-area-inset-bottom, 12px));
  transform:translateX(-50%);
  width:min(calc(100% - 24px), 760px);
  z-index:9990;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  padding:12px 14px;
  border:1px solid rgba(45,125,70,.18);
  border-radius:24px;
  background:rgba(255,255,255,.96);
  box-shadow:0 12px 38px rgba(0,0,0,.18);
  backdrop-filter:blur(12px);
}
.sj-voice-dock[hidden]{display:none!important}
.sj-voice-dock__status{
  display:flex;
  align-items:center;
  gap:9px;
  min-width:0;
  font-size:clamp(.95rem,2.6vw,1.08rem);
  line-height:1.3;
}
.sj-voice-dock__status span:last-child{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.sj-voice-dock__dot{
  width:12px;height:12px;border-radius:50%;
  background:#2D7D46;flex:0 0 auto;
}
.sj-voice-dock[data-status="warning"] .sj-voice-dock__dot{background:#F59E0B}
.sj-voice-dock[data-status="error"] .sj-voice-dock__dot{background:#DC2626}
.sj-voice-dock.is-listening .sj-voice-dock__dot{
  animation:sjVoicePulse 1.15s ease-in-out infinite;
}
.sj-voice-dock__mic{
  min-height:64px;
  min-width:190px;
  border:0;
  border-radius:20px;
  padding:10px 18px;
  background:#2D7D46;
  color:#fff;
  font:inherit;
  font-size:1.08rem;
  font-weight:700;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  cursor:pointer;
}
.sj-voice-dock__mic span{font-size:1.55rem}
.sj-voice-dock__mic:focus-visible{outline:4px solid #111;outline-offset:3px}
.sj-voice-dock__mic:disabled{opacity:.7;cursor:default}
@keyframes sjVoicePulse{50%{transform:scale(1.45);opacity:.55}}
@media(max-width:560px){
  .sj-app{padding-bottom:calc(105px + env(safe-area-inset-bottom, 0px))}
  .sj-voice-dock{
    grid-template-columns:1fr auto;
    width:calc(100% - 16px);
    bottom:max(8px,env(safe-area-inset-bottom,8px));
    border-radius:20px;
    padding:9px 10px;
  }
  .sj-voice-dock__status{font-size:.9rem}
  .sj-voice-dock__mic{min-width:150px;min-height:60px;padding:8px 12px;font-size:.98rem}
}
@media(prefers-reduced-motion:reduce){
  .sj-voice-dock.is-listening .sj-voice-dock__dot{animation:none}
}


/* v2.7.0 Listening Room Pilot */
.sj-community-grid--listening{grid-template-columns:repeat(2,minmax(0,1fr));max-width:760px}
.sj-listen-card{display:grid;gap:12px;align-content:start}
.sj-listening-note,.sj-listening-privacy{
  width:min(100%,760px);padding:20px 24px;border:2px solid #CBD5E1;border-radius:20px;
  background:#fff;text-align:left
}
.sj-listening-room{padding-bottom:48px}
.sj-listening-cover{
  width:180px;height:180px;display:grid;place-items:center;border-radius:36px;
  background:#fff;border:3px solid #CBD5E1;font-size:5rem;box-shadow:0 12px 28px rgba(0,0,0,.08)
}
.sj-player{
  width:min(100%,760px);display:grid;gap:22px;padding:28px;border:2px solid #111;
  border-radius:28px;background:#fff
}
.sj-player-state{margin:0;text-align:center;font-weight:700}
.sj-player-progress-wrap{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center}
.sj-player-progress-wrap input,.sj-volume-control input{width:100%;min-height:44px;accent-color:var(--sj-green)}
.sj-player-controls{display:grid;place-items:center}
.sj-player-play{min-width:260px;min-height:92px;font-size:1.45rem;background:var(--sj-green);color:#fff;border-color:var(--sj-green)}
.sj-volume-control{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;font-weight:700}
.sj-player-message{min-height:38px;font-size:1rem;color:#374151}
.sj-listening-privacy p{margin:.35em 0 0;font-size:1rem}
@media (max-width:720px){
  .sj-community-grid--listening{grid-template-columns:1fr}
  .sj-listening-cover{width:150px;height:150px;font-size:4rem}
  .sj-player{padding:20px}
  .sj-player-progress-wrap{grid-template-columns:52px 1fr 52px;gap:8px}
  .sj-player-play{width:100%;min-width:0}
}


/* v2.7.1 YouTube-backed Listening Rooms */
.sj-youtube-player{
  width:min(100%,760px);padding:24px;border:2px solid #111;border-radius:28px;background:#fff
}
.sj-youtube-placeholder{display:grid;gap:18px;justify-items:center;padding:18px}
.sj-youtube-placeholder-icon{
  width:108px;height:108px;display:grid;place-items:center;border-radius:50%;
  background:#111;color:#fff;font-size:3rem
}
.sj-youtube-placeholder p{margin:0;font-size:1.05rem}
.sj-youtube-open{width:min(100%,420px)}
.sj-youtube-frame-wrap{
  position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;border-radius:20px;background:#000
}
.sj-youtube-frame-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
@media (max-width:720px){
  .sj-youtube-player{padding:14px}
  .sj-youtube-placeholder{padding:12px}
}


/* v2.7.2 Multi-item YouTube library */
.sj-room-library{width:min(100%,760px);display:grid;gap:18px}
.sj-room-library h2{margin:0}
.sj-room-items{display:grid;gap:14px}
.sj-room-item-button{
  width:100%;min-height:92px;display:grid;grid-template-columns:56px 1fr 42px;
  gap:14px;align-items:center;text-align:left;padding:16px 18px;border:2px solid #111;
  border-radius:20px;background:#fff;color:#111;cursor:pointer;font:inherit
}
.sj-room-item-button:focus-visible{outline:5px solid #005FCC;outline-offset:4px}
.sj-room-item-number{
  width:48px;height:48px;display:grid;place-items:center;border-radius:50%;
  background:var(--sj-green-soft);font-weight:700
}
.sj-room-item-copy{display:grid;gap:4px}
.sj-room-item-copy strong{font-size:1.15rem;line-height:1.25}
.sj-room-item-copy small{font-size:.9rem;color:#4B5563}
.sj-youtube-player[hidden],.sj-room-library[hidden]{display:none!important}
.sj-youtube-player{display:grid;gap:18px}
.sj-btn--small{min-height:58px;min-width:0;width:max-content;padding:10px 18px}
@media (max-width:720px){
  .sj-room-item-button{grid-template-columns:48px 1fr 34px;min-height:88px;padding:14px}
  .sj-room-item-copy strong{font-size:1.05rem}
}


/* v2.7.3 Fail-safe emergency notification states */
.sj-notify-state{align-content:start}
.sj-notify-state-icon{
  width:112px;height:112px;display:grid;place-items:center;border-radius:50%;
  background:#fff;border:6px solid #64748B;font-size:3.4rem;font-weight:700
}
.sj-notify-state-box{
  width:min(100%,760px);padding:24px;border-radius:22px;border:3px solid #64748B;
  background:#fff;text-align:left
}
.sj-notify-state-box[data-state="pending"]{border-color:#2563EB;background:#EFF6FF}
.sj-notify-state-box[data-state="accepted"]{border-color:#2D7D46;background:#E8F5E9}
.sj-notify-state-box[data-state="delivered"]{border-color:#16803A;background:#DCFCE7}
.sj-notify-state-box[data-state="failed"]{border-color:#B91C1C;background:#FEF2F2}
.sj-notify-state-detail{font-size:1rem!important;color:#374151}
.sj-emergency-direct{
  width:min(100%,760px);display:grid;gap:16px;padding:24px;border-radius:24px;
  border:3px solid #B91C1C;background:#fff
}
.sj-emergency-direct h2,.sj-emergency-direct p{margin:0}
.sj-alert-status[data-state="pending"]{border-color:#2563EB;background:#EFF6FF}
.sj-alert-status[data-state="accepted"],
.sj-alert-status[data-state="delivered"]{border-color:#16803A;background:#E8F5E9}
.sj-alert-status[data-state="failed"]{border-color:#B91C1C;background:#FEF2F2}


/* v2.7.4 Health History hub */
.sj-health-history-grid{
  width:min(100%,760px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px
}
.sj-health-history-card{
  min-height:180px;display:grid;grid-template-columns:70px 1fr 28px;gap:16px;
  align-items:center;text-align:left;padding:24px;border:3px solid #111;border-radius:24px;
  background:#fff;color:#111;cursor:pointer;font:inherit
}
.sj-health-history-card:focus-visible{outline:5px solid #005FCC;outline-offset:4px}
.sj-health-history-icon{
  width:64px;height:64px;display:grid;place-items:center;border-radius:18px;
  background:var(--sj-green-soft);font-size:2rem
}
.sj-health-history-card strong{display:block;font-size:1.3rem;line-height:1.3}
.sj-health-history-card small{display:block;margin-top:8px;font-size:.95rem;color:#4B5563}
@media (max-width:720px){
  .sj-health-history-grid{grid-template-columns:1fr}
  .sj-health-history-card{min-height:140px;padding:18px}
}


/* v2.7.5 Public Landing Page / Application Gate */
.sj-app[data-state="landing"] .sj-bottom-nav,
.sj-app[data-state="landing"] .sj-voice-dock,
.sj-app[data-state="landing"] .sj-drawer{
  display:none!important
}
.sj-landing{
  padding:0!important;background:#FAF9F5;align-items:stretch!important;justify-content:flex-start!important
}
.sj-landing-shell{width:100%;max-width:1180px;margin:0 auto;padding:28px 24px 64px}
.sj-landing-hero{
  min-height:68vh;display:grid;grid-template-columns:1fr;align-content:start;
  gap:48px;padding:14px 0 48px
}
.sj-landing-brand{display:flex;align-items:center;gap:14px}
.sj-landing-logo{
  width:64px;height:64px;display:grid;place-items:center;border-radius:20px;
  background:#E8F5E9;font-size:2rem
}
.sj-landing-brand div{display:grid}
.sj-landing-brand strong{font-size:1.25rem}
.sj-landing-brand small{font-size:.95rem;color:#4B5563}
.sj-landing-hero-copy{max-width:820px;display:grid;gap:22px}
.sj-landing-kicker{
  width:max-content;max-width:100%;padding:8px 14px;border-radius:999px;
  background:#E8F5E9;color:#205D35;font-weight:700
}
.sj-landing h1{
  margin:0;font-size:clamp(2.5rem,7vw,5.8rem);line-height:1.02;letter-spacing:-.03em
}
.sj-landing-hero-copy>p{font-size:clamp(1.15rem,2.2vw,1.5rem);line-height:1.65;max-width:780px}
.sj-landing-start{min-height:78px;width:min(100%,520px);font-size:1.25rem}
.sj-landing-login-note{font-size:1rem!important;color:#4B5563}
.sj-landing-section{padding:44px 0;border-top:1px solid #DDD8CE}
.sj-landing-section>h2,.sj-landing-section h2{font-size:clamp(1.7rem,4vw,2.5rem);margin-top:0}
.sj-landing-feature-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.sj-landing-feature-grid article{
  padding:24px;border:2px solid #E1DDD4;border-radius:24px;background:#fff
}
.sj-landing-feature-grid article>span{font-size:2.2rem}
.sj-landing-feature-grid h3{font-size:1.25rem;margin:16px 0 8px}
.sj-landing-feature-grid p{margin:0;line-height:1.6;color:#4B5563}
.sj-landing-safety{
  display:grid;grid-template-columns:1.15fr .85fr;gap:28px;align-items:stretch
}
.sj-landing-safety>div:first-child,.sj-landing-privacy{
  display:flex;gap:18px;align-items:flex-start
}
.sj-landing-section-icon{
  flex:0 0 68px;width:68px;height:68px;display:grid;place-items:center;
  border-radius:20px;background:#E8F5E9;font-size:2rem
}
.sj-landing-safety p,.sj-landing-privacy p{font-size:1.08rem;line-height:1.65}
.sj-landing-emergency{
  padding:24px;border-radius:24px;border:3px solid #DC2626;background:#FEF2F2;
  display:grid;gap:14px
}
.sj-landing-emergency>strong{font-size:1.35rem}
.sj-landing-emergency>p{margin:0}
.sj-landing-emergency>div{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.sj-landing-emergency .sj-btn{min-height:68px}
.sj-landing-privacy{max-width:900px}
.sj-landing-footer{display:grid;justify-items:center;gap:18px;padding:48px 0 12px;text-align:center}
.sj-landing-footer p{color:#6B7280}
@media (max-width:900px){
  .sj-landing-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sj-landing-safety{grid-template-columns:1fr}
}
@media (max-width:620px){
  .sj-landing-shell{padding:20px 16px 48px}
  .sj-landing-hero{min-height:auto;gap:36px;padding-bottom:36px}
  .sj-landing-feature-grid{grid-template-columns:1fr}
  .sj-landing-emergency>div{grid-template-columns:1fr}
  .sj-landing-safety>div:first-child,.sj-landing-privacy{display:grid}
  .sj-landing h1{font-size:clamp(2.3rem,13vw,4rem)}
}


/* v2.7.6 Landing hero text + banner */
.sj-landing-hero{
  min-height:auto;
  gap:28px;
  padding-bottom:38px
}
.sj-landing-hero-copy{
  max-width:none;
  width:100%;
  display:grid;
  gap:20px
}
.sj-landing h1{
  margin:0;
  display:grid;
  gap:4px;
  font-size:clamp(2.6rem,6.6vw,5.4rem);
  line-height:1.05;
  letter-spacing:-.035em;
  max-width:1000px
}
.sj-landing-title-line{
  color:#15345B;
  font-weight:800
}
.sj-landing-title-accent{
  color:#0B79D0;
  font-weight:800
}
.sj-landing-lead{
  margin:0;
  max-width:920px!important;
  font-size:clamp(1.15rem,2.3vw,1.5rem)!important;
  line-height:1.7!important;
  color:#334155
}
.sj-landing-banner-wrap{
  width:100%;
  overflow:hidden;
  border-radius:28px;
  background:#fff;
  border:1px solid #DCE8F2;
  box-shadow:0 16px 44px rgba(25,72,113,.12)
}
.sj-landing-banner{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:2 / 1;
  object-fit:cover
}
.sj-landing-start{
  margin-top:4px;
  justify-self:start
}
@media (max-width:900px){
  .sj-landing-banner-wrap{border-radius:22px}
  .sj-landing-banner{
    aspect-ratio:auto;
    object-fit:contain
  }
}
@media (max-width:620px){
  .sj-landing h1{
    font-size:clamp(2.25rem,11.5vw,3.7rem);
    line-height:1.08
  }
  .sj-landing-title-line,
  .sj-landing-title-accent{
    display:block
  }
  .sj-landing-banner-wrap{
    border-radius:16px;
    margin-inline:-2px;
    width:calc(100% + 4px)
  }
  .sj-landing-start{
    width:100%;
    justify-self:stretch
  }
}


/* v2.7.7 Senior Jarvis character identity */
.sj-avatar--character{
  width:clamp(150px,26vw,230px);
  height:clamp(150px,26vw,230px);
  padding:8px;
  border-radius:34%;
  overflow:hidden;
  background:linear-gradient(145deg,#ffffff,#e8f5ff);
  border:4px solid rgba(11,121,208,.18);
  box-shadow:0 18px 44px rgba(15,70,120,.16);
}
.sj-avatar--character img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  border-radius:30%;
}
.sj-avatar--thinking{
  animation:sjJarvisThink 1.8s ease-in-out infinite;
}
.sj-avatar--speaking{
  animation:sjJarvisSpeak 1.6s ease-in-out infinite;
}
@keyframes sjJarvisThink{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-7px)}
}
@keyframes sjJarvisSpeak{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.035)}
}
@media (prefers-reduced-motion:reduce){
  .sj-avatar--thinking,.sj-avatar--speaking{animation:none}
}
.sj-login-logo--character{
  width:132px!important;
  height:132px!important;
  overflow:hidden;
  border-radius:34%!important;
  background:#fff!important;
  padding:6px!important;
  box-shadow:0 14px 34px rgba(20,70,110,.14)
}
.sj-login-logo--character img{
  width:100%;height:100%;object-fit:cover;border-radius:30%;display:block
}
.sj-result-jarvis{
  width:116px;height:116px;margin:0 auto 10px;
  overflow:hidden;border-radius:34%;background:#fff;
  border:3px solid rgba(11,121,208,.14);
  box-shadow:0 12px 30px rgba(15,70,120,.12)
}
.sj-result-jarvis img{width:100%;height:100%;object-fit:cover;display:block}
@media (max-width:620px){
  .sj-avatar--character{width:150px;height:150px}
  .sj-result-jarvis{width:94px;height:94px}
}


/* v2.8.0 BMI / Stress / ADL tools */
.sj-health-tool-shortcuts{
  width:min(100%,820px);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:18px
}
.sj-health-tool-shortcut{
  min-height:96px;padding:16px;border:2px solid #DCE6EC;border-radius:20px;background:#fff;
  display:grid;gap:6px;text-align:left;font:inherit;cursor:pointer
}
.sj-health-tool-shortcut strong{font-size:1.15rem;color:#123B63}
.sj-health-tool-shortcut span{font-size:.92rem;color:#52616F}
.sj-health-tool-shortcut:focus-visible{outline:5px solid #005FCC;outline-offset:3px}
.sj-health-tool-screen{align-content:start}
.sj-health-form-grid{
  width:min(100%,760px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px
}
.sj-health-form-grid label{display:grid;gap:8px;font-weight:700}
.sj-health-form-grid input{
  min-height:64px;padding:12px 16px;border:2px solid #AFC1CF;border-radius:16px;font:inherit;font-size:1.15rem;background:#fff
}
.sj-question-list{width:min(100%,860px);display:grid;gap:16px}
.sj-question-list fieldset{
  margin:0;padding:18px;border:2px solid #DCE6EC;border-radius:20px;background:#fff
}
.sj-question-list legend{font-weight:700;padding:0 8px;font-size:1.08rem}
.sj-scale-options,.sj-adl-options{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:10px
}
.sj-adl-options{grid-template-columns:repeat(3,minmax(0,1fr))}
.sj-scale-options label,.sj-adl-options label{display:block}
.sj-scale-options input,.sj-adl-options input{position:absolute;opacity:0;pointer-events:none}
.sj-scale-options span,.sj-adl-options span{
  min-height:66px;padding:12px;display:grid;place-items:center;text-align:center;border:2px solid #C9D6DF;
  border-radius:16px;background:#FAFCFD;cursor:pointer
}
.sj-scale-options input:checked+span,.sj-adl-options input:checked+span{
  border-color:#2D7D46;background:#E8F5E9;font-weight:700
}
.sj-scale-options input:focus-visible+span,.sj-adl-options input:focus-visible+span{
  outline:4px solid #005FCC;outline-offset:2px
}
.sj-tool-result{
  width:min(100%,760px);min-height:92px;padding:20px;border-radius:20px;border:2px solid #DCE6EC;background:#fff
}
.sj-tool-result:empty{display:none}
.sj-tool-result strong{font-size:1.5rem;color:#123B63}
.sj-tool-result p{margin:.5rem 0 0}
.sj-tool-result[data-status="green"]{border-color:#2D7D46;background:#E8F5E9}
.sj-tool-result[data-status="yellow"]{border-color:#F59E0B;background:#FFF8E1}
.sj-clinical-note{
  width:min(100%,860px);padding:14px 16px;border-radius:14px;background:#F8FAFC;color:#475569;font-size:.95rem
}
@media(max-width:720px){
  .sj-health-tool-shortcuts{grid-template-columns:1fr}
  .sj-health-form-grid{grid-template-columns:1fr}
  .sj-scale-options,.sj-adl-options{grid-template-columns:1fr}
}


/* v2.8.1 Loneliness 20-item check-in */
.sj-loneliness-options{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px
}
.sj-loneliness-options label{display:block}
.sj-loneliness-options input{position:absolute;opacity:0;pointer-events:none}
.sj-loneliness-options span{
  min-height:66px;padding:12px 14px;display:grid;place-items:center;text-align:center;
  border:2px solid #C9D6DF;border-radius:16px;background:#FAFCFD;cursor:pointer
}
.sj-loneliness-options input:checked+span{
  border-color:#2D7D46;background:#E8F5E9;font-weight:700
}
.sj-loneliness-options input:focus-visible+span{
  outline:4px solid #005FCC;outline-offset:2px
}
.sj-profile-section{
  width:min(100%,860px);display:grid;grid-template-columns:1fr;gap:16px;
  padding:22px;border:2px solid #DCE6EC;border-radius:20px;background:#fff
}
.sj-profile-section h2{margin:0}
.sj-profile-section h2 small{font-size:.85rem;font-weight:400;color:#64748B}
.sj-profile-section label{display:grid;gap:8px;font-weight:700}
.sj-profile-section select{
  min-height:60px;padding:10px 14px;border:2px solid #AFC1CF;border-radius:14px;
  background:#fff;font:inherit
}
.sj-tool-result[data-status="info"]{
  border-color:#0B79D0;background:#EFF7FF
}
@media(max-width:720px){
  .sj-loneliness-options{grid-template-columns:1fr}
}


/* v2.8.2 Assessment progress + automatic next-question UX */
.sj-command-hint{
  width:min(100%,820px);margin:4px auto 2px;padding:12px 16px;border-radius:16px;
  background:#EFF7FF;border:1px solid #CBE4F7;color:#26445F;text-align:center;font-size:.96rem
}
.sj-assessment-progress{
  position:sticky;top:10px;z-index:12;width:min(100%,860px);
  padding:14px 16px;border:2px solid #D9E7EF;border-radius:18px;
  background:rgba(255,255,255,.96);box-shadow:0 8px 24px rgba(15,70,120,.10);
  backdrop-filter:blur(8px)
}
.sj-assessment-progress__top{
  display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:9px
}
.sj-assessment-progress__top strong{color:#15345B}
.sj-assessment-progress__top span{font-variant-numeric:tabular-nums;color:#52616F}
.sj-assessment-progress__track{
  width:100%;height:16px;overflow:hidden;border-radius:999px;background:#E7EEF3
}
.sj-assessment-progress__track>span{
  display:block;height:100%;width:0;border-radius:inherit;background:#2D7D46;
  transition:width .28s ease
}
.sj-auto-next-note{
  width:min(100%,860px);margin:0;color:#52616F;font-size:.95rem;text-align:center
}
.sj-question-list fieldset:focus-within{
  border-color:#2D7D46;box-shadow:0 0 0 4px rgba(45,125,70,.10)
}
@media(prefers-reduced-motion:reduce){
  .sj-assessment-progress__track>span{transition:none}
}
@media(max-width:720px){
  .sj-assessment-progress{top:6px;padding:12px}
  .sj-assessment-progress__top{align-items:flex-start;flex-direction:column;gap:3px}
}


/* v2.8.4 Senior Jarvis welcome / introduction / usage guide */
.sj-jarvis-help-actions{
  width:min(100%,820px);display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin:10px auto
}
.sj-jarvis-help-screen{align-content:start}
.sj-jarvis-help-screen .sj-avatar{margin-bottom:4px}
.sj-jarvis-intro-copy{
  width:min(100%,820px);font-size:1.08rem;line-height:1.75;text-align:center;color:#334155
}
.sj-jarvis-help-grid{
  width:min(100%,880px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px
}
.sj-jarvis-help-grid .sj-card{margin:0;min-height:150px}
.sj-jarvis-help-grid .sj-card h2{margin-top:0;color:#15345B}
@media(max-width:720px){
  .sj-jarvis-help-actions{display:grid;grid-template-columns:1fr}
  .sj-jarvis-help-grid{grid-template-columns:1fr}
}
