/* A small, private moment. Intensity changes the choice, never its emotional colour. */
.private-checkin { flex:0 0 auto;min-width:0 }
.checkin-toggle { position:relative }
.checkin-toggle[aria-expanded=true] { background:#e7eddd!important;color:#526b43!important }
.checkin-toggle > .checkin-dot { display:block!important;position:absolute;top:7px;right:7px;width:6px;height:6px;border-radius:50%;background:#7f9668;box-shadow:0 0 0 2px var(--paper) }
.checkin-panel {
    position:fixed;z-index:16;left:20px;bottom:calc(var(--conversation-bottom,72px) + 12px);
    width:min(350px,calc(100vw - 40px));max-height:calc(100dvh - var(--conversation-top,68px) - var(--conversation-bottom,72px) - 24px);
    overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#c7d0bb transparent;
    border:1px solid #e3e7d9;border-radius:26px;background:#fcfdf6f5;color:#43563d;
    box-shadow:0 18px 65px #1c31202b,0 2px 8px #1c31200a;backdrop-filter:blur(24px);
    font-family:var(--sans);animation:checkin-arrive 300ms cubic-bezier(.2,.7,.3,1) both;
}
.checkin-topline { display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px 0 22px }
.checkin-topline > span { display:flex;align-items:center;gap:6px;color:#77856b;font:10px/1.5 var(--sans);letter-spacing:.02em }
.checkin-topline > span > .icon { width:10px;height:10px;font-size:10px }
.checkin-topline .chat-icon-button { color:#839077;border-radius:50% }
.checkin-topline .chat-icon-button:hover { background:#edf1e3 }
.checkin-panel h2 { margin:0;font:400 31px/1.08 var(--serif);letter-spacing:-.025em;color:#40543a }
.checkin-panel h2 em { font-weight:400;color:#788968 }
.checkin-panel h2:focus-visible { outline:2px solid #a3b394;outline-offset:5px;border-radius:3px }
.checkin-introduction { margin:10px 0 0;font:12px/1.65 var(--sans);color:#738267 }
.checkin-client-content { padding:5px 23px 19px;text-align:center }
.checkin-client-content .checkin-introduction { margin-top:8px;font-size:11px }
.checkin-selection-hint { min-height:16px;margin:9px 0 0;color:#7a876e;font-size:10px;line-height:1.6 }
.checkin-client-actions { display:flex;align-items:center;gap:10px;margin-top:17px }
.checkin-send { display:flex;align-items:center;justify-content:center;gap:9px;min-height:42px;padding:10px 16px;border:1px solid #526c44;border-radius:13px;background:#526c44;color:#fffef9;font:500 11px/1.5 var(--sans);cursor:pointer;transition:background .15s,box-shadow .15s }
.checkin-send:hover { background:#456039;box-shadow:0 3px 12px #526c441a }
.checkin-send:disabled { background:#e6ecdd;border-color:#e0e6d7;color:#7d8a71;box-shadow:none;opacity:1;cursor:default }
.checkin-send .icon { width:13px;height:13px;font-size:13px }
.checkin-client-actions .checkin-send { flex:1;padding-inline:10px }
.checkin-pass,.checkin-text-button { padding:10px 5px;border:0;background:transparent;color:#77866c;font:11px/1.5 var(--sans);cursor:pointer }
.checkin-pass { min-height:42px;flex:0 0 62px }
.checkin-pass:hover,.checkin-text-button:hover { color:#405b33;text-decoration:underline;text-underline-offset:3px }
.checkin-privacy-note { margin:15px 0 0;color:#738269;font:10px/1.65 var(--sans) }
.checkin-privacy-note > .icon { width:9px;height:9px;font-size:9px;margin-right:4px }
.checkin-privacy-note > span { font-size:9px;color:#86917b }
.checkin-feedback { padding:0 23px }
.checkin-feedback:has(> .checkin-error),.checkin-feedback:has(> .checkin-room-reconnect) { padding-bottom:16px }
.checkin-room-reconnect,.checkin-error { margin:0;font:11px/1.6 var(--sans);color:#7d745c }
.checkin-feedback .conversation-reconnect { font-size:11px;text-align:left;padding-bottom:14px;margin:0 }

/* Native radios give every number a named, keyboard-operable place on the crescent. */
.intensity-selector { border:0;min-width:0;margin:9px 0 0;padding:0 }
.intensity-stones { position:relative;isolation:isolate;width:100%;aspect-ratio:304 / 158;margin:auto }
.intensity-stillness { position:absolute;z-index:-1;left:50%;top:65%;width:158px;height:126px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(ellipse,#e2ead17d 0%,#edf2e32e 55%,transparent 73%);pointer-events:none;transition:background .35s }
.intensity-stillness > span { position:absolute;inset:18px 1px;border:1px solid #dfe7d244;border-radius:50%;transform:rotate(-12deg) }
.intensity-stillness > span:nth-child(2) { inset:8px -14px;transform:rotate(12deg);border-color:#e1e7d52e }
.intensity-stillness > span:nth-child(3) { inset:-4px -29px;transform:rotate(-6deg);border-color:#e1e7d51c }
.intensity-center { position:absolute;inset:53% 25% auto;display:flex;flex-direction:column;align-items:center;justify-content:center;height:72px;transform:translateY(-20%);pointer-events:none }
.intensity-invitation { color:#849574;font:400 25px/1.02 var(--serif) }
.intensity-invitation em { color:#718562 }
.intensity-value { font:400 58px/.95 var(--serif);font-variant-numeric:tabular-nums;color:#556f43;letter-spacing:-.04em;animation:intensity-settle 190ms ease-out }
.intensity-value-caption { margin-top:5px;color:#809272;font-size:9px;line-height:1.4;letter-spacing:.025em }
.intensity-stone { position:absolute;left:var(--stone-x);top:var(--stone-y);display:grid;place-items:center;width:36px;height:40px;transform:translate(-50%,-50%);cursor:pointer;animation:stone-arrive 440ms cubic-bezier(.2,.7,.3,1) both;animation-delay:calc(35ms * var(--stone-order)) }
.intensity-stone > input { position:absolute;inset:0;z-index:2;opacity:0;width:100%;height:100%;margin:0;cursor:pointer }
.intensity-stone-shape { display:grid;place-items:center;width:30px;height:37px;transform:rotate(var(--stone-angle));border:1px solid #d6dfc9;border-radius:48% 52% 46% 54% / 43% 44% 56% 57%;background:linear-gradient(145deg,#faffef 1%,#edf2e2 47%,#dbe5ca);box-shadow:inset 1px 2px 2px #ffffffe6,inset -1px -2px 3px #bdcda542,0 2px 3px #455f3120;color:#556747;transition:transform .22s ease,border-color .22s,background .22s,box-shadow .22s,color .22s }
.intensity-stone-shape > span { font:500 11px/1 var(--sans);transform:rotate(calc(-1 * var(--stone-angle)));font-variant-numeric:tabular-nums }
.intensity-stone > input:checked + .intensity-stone-shape { transform:translateY(-4px) rotate(var(--stone-angle)) scale(1.08);background:linear-gradient(145deg,#c1d3a6,#98b17b);border-color:#90a975;color:#253d1b;box-shadow:inset 1px 2px 2px #e6f1ce,0 5px 12px #789b4d3b,0 0 0 4px #e6edda94 }
.intensity-stone > input:focus-visible + .intensity-stone-shape { outline:2px solid #667e52;outline-offset:5px }
.intensity-selector:disabled .intensity-stone { opacity:.55;cursor:default }
.intensity-selector:disabled input { cursor:default }
.intensity-anchors { display:flex;justify-content:space-between;padding:1px 2px 0;font:10px/1.5 var(--sans);color:#79866c }
@media(hover:hover) { .intensity-stone > input:not(:disabled):hover + .intensity-stone-shape { transform:translateY(-3px) rotate(var(--stone-angle)) scale(1.07);border-color:#a7bb8e;box-shadow:inset 1px 2px 2px #ffffffe6,0 5px 12px #718c4930 } }

/* The therapist sees a clear invitation state and one private, recent response. */
.private-checkin[data-checkin-role=therapist] .checkin-panel { bottom:20px;max-height:calc(100dvh - var(--conversation-top,68px) - 32px);width:min(335px,calc(100vw - 40px)) }
.checkin-therapist-content { padding:7px 23px 22px }
.checkin-therapist-content > .checkin-send { width:100%;margin-top:18px }
.checkin-question-preview { padding:17px;margin-top:20px;border:1px solid #dfe5d4;border-radius:14px;background:#f1f5e8 }
.checkin-question-preview > span { color:#7b8a6d;font-size:8px;letter-spacing:.11em }
.checkin-question-preview > p { margin:9px 0 13px;font:400 25px/1.1 var(--serif);color:#566d47 }
.checkin-question-preview > small { display:flex;justify-content:space-between;gap:12px;font:9px/1.5 var(--sans);color:#788c68 }
.checkin-waiting { display:flex;gap:11px;align-items:flex-start;margin-top:20px }
.checkin-waiting-mark { flex:0 0 7px;width:7px;height:7px;margin-top:5px;border-radius:50%;background:#9dae88;box-shadow:0 0 0 4px #eaf0de }
.checkin-waiting strong { font:500 11px/1.5 var(--sans);color:#647954 }
.checkin-waiting p { margin:5px 0 0;font:11px/1.6 var(--sans);color:#7e8e71 }
.checkin-therapist-content > .checkin-text-button { margin-top:9px;padding-left:18px;text-decoration:underline;text-underline-offset:3px;font-size:10px }
.checkin-passed { margin:17px 0 0;color:#728367;font:11px/1.6 var(--sans) }
.checkin-private-answer { display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:22px;padding-top:20px;border-top:1px solid #e0e6d5 }
.checkin-private-answer > div:first-child > span { display:block;color:#788969;font-size:10px }
.checkin-private-answer strong { display:block;font:400 49px/1.1 var(--serif);color:#526b41;margin-top:6px }
.checkin-private-answer strong small { font:400 19px var(--serif);color:#8e9c80 }
.checkin-private-answer > div:last-child { display:grid;grid-template-columns:auto auto;align-items:center;gap:5px;text-align:right;font-size:11px;color:#7c8e6c }
.checkin-private-answer .icon { width:9px;height:9px;font-size:9px;justify-self:end }
.checkin-private-answer > div:last-child > small { grid-column:1 / -1;font-size:9px }
.checkin-result-notice { position:fixed;z-index:14;left:20px;bottom:20px;display:flex;align-items:center;gap:11px;max-width:calc(100vw - 40px);padding:12px 12px 12px 14px;border:1px solid #dfe7d4;border-radius:16px;background:#f9fcf2f5;box-shadow:0 6px 30px #2b412020;backdrop-filter:blur(16px);color:#546d42 }
.checkin-notice-mark { display:grid;place-items:center;flex:0 0 32px;width:32px;height:36px;border-radius:11px;background:#e9f0dc;color:#859d70 }
.checkin-notice-mark .icon { width:15px;height:15px;font-size:15px }
.checkin-result-notice strong { font:500 12px/1.5 var(--sans) }
.checkin-result-notice > div > span { display:block;margin-top:3px;color:#7c8d6e;font:10px/1.5 var(--sans) }
.checkin-result-notice > button:not(.chat-icon-button) { border:0;background:transparent;color:#5f794c;text-decoration:underline;text-underline-offset:3px;font:11px var(--sans);padding:10px 4px }
.checkin-receipt { padding:14px 27px 25px;text-align:center }
.checkin-receipt-stone { display:grid;place-items:center;width:48px;height:58px;margin:2px auto 20px;border:1px solid #d3dfc2;border-radius:48% 52% 46% 54%;background:linear-gradient(145deg,#f6fbed,#dce7cb);color:#7e9865;box-shadow:inset 1px 2px 2px white,0 5px 20px #96ad7415 }
.checkin-receipt p { margin:16px 0 20px;font:12px/1.8 var(--sans);color:#7b8b6d }
.checkin-receipt > button { width:100% }
.session-conversation:has(.private-checkin:not([data-checkin-embedded=true]) .checkin-panel:not([hidden])) .nonverbal-confirmation { display:none }
.call-view[data-role=therapist] .session-conversation:has(.checkin-result-notice) .conversation-notification { bottom:108px }
.call-view[data-role=therapist] .session-conversation:has(.private-checkin:not([data-checkin-embedded=true]) .checkin-panel:not([hidden])) .conversation-notification { left:375px }
html[data-conversation-connection=reconnecting] .checkin-write,html[data-conversation-connection=unavailable] .checkin-write,
html[data-conversation-connection=reconnecting] .intensity-selector,html[data-conversation-connection=unavailable] .intensity-selector { pointer-events:none;opacity:.55 }
@keyframes checkin-arrive { from { opacity:0;transform:translateY(7px) } to { opacity:1;transform:none } }
@keyframes stone-arrive { from { opacity:0;scale:.87 } to { opacity:1;scale:1 } }
@keyframes intensity-settle { from { opacity:.4;transform:translateY(3px) } to { opacity:1;transform:none } }
@media(max-width:1180px) { .call-view[data-role=client] .conversation-controls .tool-button > span:not(.chat-unread):not(.request-dot):not(.checkin-dot) { display:none } }
@media(max-width:620px) {
    .call-view[data-role=therapist]:has(.private-checkin) .call-toolbar { flex-wrap:wrap;row-gap:5px }
    .call-view[data-role=therapist]:has(.private-checkin) .camera-layout-control { align-self:start }
    .checkin-panel,.private-checkin[data-checkin-role=therapist] .checkin-panel { left:8px;width:min(350px,calc(100vw - 16px));border-radius:23px }
    .checkin-panel { bottom:calc(var(--conversation-bottom,68px) + 8px);max-height:calc(100dvh - var(--conversation-top,64px) - var(--conversation-bottom,68px) - 16px) }
    .private-checkin[data-checkin-role=therapist] .checkin-panel { bottom:8px;max-height:calc(100dvh - var(--conversation-top,110px) - 16px) }
    .checkin-result-notice { left:8px;bottom:10px;max-width:calc(100vw - 16px);gap:8px }
    .checkin-result-notice strong { font-size:11px }
    .checkin-result-notice > div > span { font-size:9px }
    .session-conversation:has(.private-checkin:not([data-checkin-embedded=true]) .checkin-panel:not([hidden])) .conversation-notification { display:none }
}
@media(max-width:370px) {
    .checkin-client-content { padding-inline:19px }
    .intensity-stone { width:30px;height:36px }
    .intensity-stone-shape { width:26px;height:33px }
    .intensity-stone-shape > span { font-size:10px }
    .call-view[data-role=client]:has(.private-checkin .checkin-toggle) .call-toolbar { gap:4px;padding-inline:6px }
    .call-view[data-role=client]:has(.private-checkin .checkin-toggle) .tool-button { width:40px;min-width:40px;padding:8px }
    .call-view[data-role=client]:has(.private-checkin .checkin-toggle) .toolbar-media { padding:1px }
}
@media(prefers-reduced-motion:reduce) {
    .checkin-panel,.intensity-stone,.intensity-value { animation:none }
    .intensity-stone-shape,.intensity-stillness,.checkin-send { transition:none }
}
/* Keep the therapist's invitation discoverable when neighbouring tools collapse. */
@media(min-width:1001px) {
    .call-view[data-role="therapist"] .conversation-controls .checkin-toggle > span:not(.checkin-dot) { display:inline }
    .call-view[data-role="therapist"] .checkin-toggle { width:auto;gap:7px;padding-inline:10px }
}
