:root{color-scheme:dark;--bg:#141719;--surface:#202528;--raised:#2b3135;--line:#3b4246;--text:#f4f6f2;--muted:#b4bdb8;--lime:#d7ff65;--danger:#ffb4aa;--radius:20px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;line-height:1.5;-webkit-text-size-adjust:100%}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);width:100%;height:100%;overscroll-behavior:none}body{overflow:hidden}button,textarea{font:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{cursor:default;opacity:.55}button:focus-visible,textarea:focus-visible,summary:focus-visible,.conversation:focus-visible{outline:3px solid var(--lime);outline-offset:4px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.chat-shell{position:fixed;top:var(--chat-top,0px);left:0;right:0;overflow:hidden;height:100%;height:var(--chat-height,100dvh);display:flex;flex-direction:column;max-width:760px;margin:auto;padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.conversation{flex:1;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;padding:22px 20px 14px;scroll-padding-bottom:24px}.notice{flex:none;background:var(--surface);font-size:.84rem;color:var(--muted);text-align:center;padding:10px 18px;border-bottom:1px solid var(--line)}.notice:empty{display:none}.notice[data-tone=error]{color:var(--danger)}
.welcome{padding:22px 0 26px}.brand-mark{display:flex;align-items:center;justify-content:center;gap:1px;width:50px;height:50px;background:var(--lime);color:var(--bg);border-radius:16px;font-size:1.8rem;font-weight:850;letter-spacing:-3px;transform:rotate(-5deg);margin-bottom:24px}.brand-mark span{font-size:1.05rem;align-self:flex-start;margin-top:7px;letter-spacing:0}.eyebrow{color:var(--lime);font-size:.7rem;font-weight:750;letter-spacing:.17em;margin:0 0 10px}.welcome h1{font-size:clamp(1.7rem,7.5vw,2.6rem);line-height:1.12;letter-spacing:-.045em;font-weight:720;margin:0 0 16px;max-width:520px}.welcome-copy{color:var(--muted);font-size:.93rem;line-height:1.6;max-width:390px;margin:0 0 24px}.suggestions{display:flex;flex-direction:column;gap:9px;max-width:450px}.suggestion{border:1px solid var(--line);background:var(--surface);color:var(--text);padding:13px 15px;min-height:48px;border-radius:13px;text-align:left;display:flex;gap:12px;justify-content:space-between;align-items:center;font-size:.9rem}.suggestion span:last-child{color:var(--lime);font-size:1.2rem}
.messages{display:flex;flex-direction:column;gap:26px}.message{min-width:0;overflow-wrap:anywhere}.message-user{margin-left:30px;align-self:flex-end;max-width:92%;background:var(--raised);border:1px solid #41494c;border-radius:19px 19px 5px 19px;padding:11px 15px;white-space:pre-wrap;font-size:.98rem}.message-assistant{width:100%}.assistant-label{display:flex;align-items:center;gap:7px;color:var(--lime);font-size:.67rem;letter-spacing:.13em;font-weight:750;margin:0 0 9px}.assistant-label:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--lime)}.message-text{white-space:pre-wrap;font-size:.98rem;line-height:1.65;margin:0}.message-text:empty{display:none}.message-assistant[data-incomplete=true] .message-text{color:var(--muted)}.message-error{color:var(--danger);font-size:.85rem;margin:12px 0 0}.retry{background:transparent;color:var(--text);border:1px solid var(--line);border-radius:10px;min-height:44px;padding:8px 14px;margin-top:10px;font-size:.85rem}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin-top:15px}.card-hero{width:100%;height:130px;object-fit:cover;background:var(--raised);display:block}.card-body{padding:17px}.card-kicker{font-size:.68rem;font-weight:750;letter-spacing:.09em;color:var(--lime);text-transform:uppercase;margin:0 0 5px}.card-title{font-size:1.15rem;line-height:1.3;letter-spacing:-.02em;margin:0 0 9px;font-weight:700}.card-description{font-size:.87rem;color:var(--muted);margin:8px 0 14px;line-height:1.5}.card-tags{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}.card-tag{font-size:.7rem;color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:3px 7px}.card-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:15px}.action-primary,.action-secondary,.exercise-details{border-radius:11px;min-height:46px;padding:11px 13px;font-size:.86rem;font-weight:650;line-height:1.3}.action-primary{width:100%;background:var(--lime);color:#1a2110;border:1px solid var(--lime)}.action-secondary{flex:1;background:transparent;color:var(--text);border:1px solid var(--line)}.card-actions[data-single=true] .action-secondary{flex:none;width:100%}.card-action-feedback{font-size:.8rem;margin:10px 0 0;color:var(--muted)}.card-action-feedback[data-tone=error]{color:var(--danger)}.card-action-feedback:empty{display:none}.exercise-list{list-style:none;padding:0;margin:0}.exercise-row{display:flex;gap:12px;padding:13px 0;align-items:center;border-bottom:1px solid var(--line)}.exercise-row:last-child{border-bottom:none;padding-bottom:0}.exercise-thumbnail{width:54px;height:54px;border-radius:11px;object-fit:cover;background:var(--raised);flex:none}.exercise-number{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;flex:none;background:var(--raised);color:var(--muted);font-size:.77rem;font-variant-numeric:tabular-nums}.exercise-info{flex:1;min-width:0}.exercise-name{font-size:.88rem;font-weight:620;line-height:1.35;margin:0}.exercise-secondary{color:var(--muted);font-size:.75rem;margin:3px 0 0}.exercise-details{background:transparent;border:1px solid var(--line);color:var(--text);font-size:.76rem;flex:none;min-height:44px;max-width:40%}
.generation-status{padding:11px 20px 5px;font-size:.8rem;color:var(--muted);display:flex;align-items:center;gap:10px}.generation-status:before{content:"";width:9px;height:9px;border:2px solid var(--line);border-top-color:var(--lime);border-radius:50%;animation:spin 1s linear infinite}.feedback{padding:8px 20px;font-size:.84rem;color:var(--muted)}.feedback[data-tone=error]{color:var(--danger)}.composer{flex:none;padding:12px 16px max(12px,env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--line)}.composer-field{display:flex;align-items:flex-end;gap:8px;padding:7px 7px 7px 14px;background:var(--surface);border:1px solid #4d5859;border-radius:21px}.composer-field:focus-within{border-color:var(--lime)}textarea{border:0;outline:none!important;resize:none;max-height:140px;max-height:min(140px,calc(var(--chat-height,100dvh)*.35));min-height:40px;flex:1;min-width:0;background:transparent;color:var(--text);line-height:1.45;font-size:1rem;padding:9px 0;overflow:auto}textarea::placeholder{color:var(--muted);opacity:1}.send{background:var(--lime);color:#1a2110;width:44px;height:44px;flex:none;border:0;border-radius:50%;font-size:1.6rem;font-weight:600;line-height:1}.send[data-busy=true]{font-size:1rem}.composer-meta{display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:.64rem;padding:7px 5px 2px}.medical-note{color:var(--muted);font-size:.68rem;text-align:center;margin:3px 0 0}.medical-note summary{min-height:44px;padding:12px 0;cursor:pointer;list-style:none}.medical-note summary::-webkit-details-marker{display:none}.medical-note summary:after{content:" ⓘ"}.medical-note p{margin:2px auto 6px;max-width:440px;font-size:.74rem;line-height:1.5;text-align:left}.message:first-child{margin-top:6px}@keyframes spin{to{transform:rotate(360deg)}}
@media(min-width:580px){.conversation{padding:32px 30px 24px}.welcome{padding-top:32px}.composer{padding-left:25px;padding-right:25px}.card-hero{height:170px}.welcome h1{max-width:540px}.messages{gap:30px}}@media(max-height:550px){.welcome{padding:0 0 14px}.brand-mark{display:none}.welcome h1{font-size:1.5rem}.welcome-copy{margin-bottom:14px}.suggestions{gap:6px}.composer-meta,.medical-note{display:none}.conversation{padding-top:12px}}@media(prefers-reduced-motion:reduce){.generation-status:before{animation:none;border-color:var(--lime)}*{scroll-behavior:auto!important}}

.generation-controls{display:flex;align-items:center;justify-content:space-between;gap:8px;flex:none}.generation-status{min-width:0}.cancel{flex:none;min-height:44px;min-width:44px;padding:8px 14px;margin:0 16px 0 0;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);font-size:.85rem}

/* Keyboard size follows the visual viewport, independently of CSS media queries. */
:root[data-compact=true] .composer-meta,:root[data-compact=true] .medical-note{display:none}
