:root{--patient-sidebar:17rem;--p-bg:#fff;--p-surface:#fff;--p-border:#e5e7e5;--p-ink:#18221d;--p-muted:#68766f;--p-primary:#1f6a4e}.patient-app-shell,.patient-login{background:var(--p-bg);color:var(--p-ink);min-height:100dvh}.patient-logo{align-items:center;color:inherit;display:flex;font-weight:800;gap:.6rem;text-decoration:none}.chat-welcome>span,.patient-logo b,.patient-logo span{align-items:center;background:var(--p-primary);border-radius:.6rem;color:white;display:flex;height:2rem;justify-content:center;width:2rem}.patient-logo span{background:transparent;color:inherit;width:auto}.patient-login{display:grid;place-items:center;padding:1.25rem}.patient-login>.patient-logo{left:1.5rem;position:absolute;top:1.5rem}.patient-login section{background:white;border:1px solid var(--p-border);border-radius:1rem;box-shadow:0 18px 50px rgba(23,55,41,.08);max-width:26rem;padding:2rem;width:100%}.patient-eyebrow{color:var(--p-primary);font-size:.65rem;font-weight:800;letter-spacing:.13em}.patient-home-content h1,.patient-login h1{font-size:clamp(1.9rem,6vw,2.8rem);letter-spacing:-.05em;line-height:1.05}.patient-home-content>p,.patient-login section>p:not(.patient-eyebrow){color:var(--p-muted);line-height:1.6}.patient-login form,.patient-login label{display:grid;gap:.5rem}.patient-login form{gap:1rem;margin:1.5rem 0}.patient-login label{font-size:.72rem;font-weight:700}.patient-login input{border:1px solid #cad6cf;border-radius:.7rem;font:inherit;min-height:2.8rem;padding:.85rem}.patient-login button{background:var(--p-primary);border:0;border-radius:.7rem;color:white;cursor:pointer;min-height:2.8rem}.patient-login small{color:#7a8780;font-size:.65rem}.patient-error{background:#fff0ea;border-radius:.65rem;color:#93472d;font-size:.7rem;padding:.7rem}.patient-app-shell{display:grid;grid-template-columns:var(--patient-sidebar) minmax(0,1fr);height:100dvh;overflow:hidden;transition:grid-template-columns .2s ease}.patient-app-shell.collapsed{--patient-sidebar:4.5rem}.patient-sidebar{background:#f5f7f5;border-right:1px solid var(--p-border);display:flex;flex-direction:column;height:100dvh;padding:.9rem}.patient-sidebar-top{align-items:center;display:flex;justify-content:space-between;min-height:3rem}.patient-collapse,.patient-drawer-close,.patient-topbar>button{background:transparent;border:0;border-radius:.65rem;cursor:pointer;min-height:2.75rem;min-width:2.75rem}.patient-collapse:hover,.patient-drawer-close:hover,.patient-topbar>button:hover{background:#e8ece9}.patient-drawer-close{display:none}.patient-sidebar nav{flex:1;min-height:0;overflow-y:auto;padding-top:1.35rem}.patient-sidebar nav>p{color:var(--p-muted);font-size:.7rem;font-weight:750;letter-spacing:.08em;margin:.55rem .7rem;text-transform:uppercase}.patient-sidebar nav a{align-items:center;border-radius:.75rem;color:inherit;display:grid;gap:.7rem;grid-template-columns:auto minmax(0,1fr);min-height:3.65rem;padding:.7rem .75rem;text-decoration:none}.patient-sidebar nav a.active,.patient-sidebar nav a:hover{background:#fff;box-shadow:0 1px 2px rgba(20,40,31,.04)}.patient-sidebar nav a>span{color:var(--p-primary);font-size:.9rem}.patient-sidebar nav a div{display:grid;gap:.18rem;min-width:0}.patient-sidebar nav strong,.patient-user strong{font-size:.84rem;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.patient-sidebar nav small,.patient-user small{color:var(--p-muted);font-size:.7rem;line-height:1.4}.patient-user{align-items:center;border-top:1px solid var(--p-border);display:grid;gap:.65rem;grid-template-columns:auto minmax(0,1fr) auto;padding:1rem .35rem .15rem}.patient-user>span{align-items:center;background:#d9ece2;border-radius:.65rem;color:#174f3c;display:flex;font-size:.72rem;font-weight:800;height:2.35rem;justify-content:center;width:2.35rem}.patient-user div{display:grid;min-width:0}.patient-user button{background:transparent;border:0;cursor:pointer;min-height:2.5rem;min-width:2.5rem}.patient-app-shell.collapsed .patient-logo>span,.patient-app-shell.collapsed .patient-sidebar nav div,.patient-app-shell.collapsed .patient-sidebar nav>p,.patient-app-shell.collapsed .patient-user div,.patient-app-shell.collapsed .patient-user form{display:none}.patient-app-shell.collapsed .patient-sidebar nav a{display:flex;justify-content:center}.patient-app-shell.collapsed .patient-collapse{transform:rotate(180deg)}.patient-workspace{display:grid;grid-template-rows:auto auto minmax(0,1fr);height:100dvh;min-width:0}.patient-topbar{align-items:center;background:rgba(255,255,255,.94);border-bottom:1px solid var(--p-border);display:grid;grid-template-columns:auto 1fr auto;min-height:4.25rem;padding:0 1.25rem}.patient-topbar>button{display:none;grid-column:1}.patient-topbar>div{display:grid;grid-column:2;text-align:center}.patient-topbar strong{font-size:.95rem;line-height:1.35}.patient-topbar span{color:var(--p-muted);font-size:.75rem}.secure-indicator{color:var(--p-primary)!important;font-size:.72rem!important;font-weight:700;grid-column:3}.patient-breadcrumbs{background:var(--p-bg);padding:.7rem 1rem .1rem}.patient-workspace:has(.patient-chat-shell) .patient-breadcrumbs{display:none}.patient-home-content{margin:auto;max-width:44rem;padding:clamp(2rem,8vw,5rem) 1.25rem;width:100%}.episode-list{display:grid;gap:.6rem;margin-top:1.5rem}.episode-list a{align-items:center;background:white;border:1px solid var(--p-border);border-radius:.8rem;color:inherit;display:flex;justify-content:space-between;min-height:4.5rem;padding:1rem;text-decoration:none}.episode-list a div{display:grid;gap:.2rem}.episode-list small,.episode-list span,.patient-empty p{color:var(--p-muted);font-size:.7rem}.patient-empty{background:white;border:1px solid var(--p-border);border-radius:.8rem;padding:2rem;text-align:center}.patient-chat-shell{display:grid;height:100%;min-height:0}.patient-chat-shell>div:first-child{min-height:0}.chat-scroll-region{min-height:0;overflow:hidden;position:relative}.chat-messages{height:100%;margin:0 auto;max-width:52rem;overflow-y:auto;overscroll-behavior:contain;padding:2.25rem 1.5rem 3rem;scrollbar-gutter:stable;width:100%}.chat-jump-latest{background:var(--p-primary);border:0;border-radius:999px;bottom:.75rem;box-shadow:0 8px 24px rgba(18,68,49,.22);color:#fff;cursor:pointer;font-size:.78rem;font-weight:750;left:50%;min-height:2.6rem;padding:.7rem 1rem;position:absolute;transform:translateX(-50%);z-index:3}.chat-message{align-items:start;display:grid;gap:.85rem;grid-template-columns:2rem minmax(0,1fr);margin:0 0 2rem;width:100%}.chat-message-avatar{align-items:center;background:var(--p-primary);border-radius:50%;color:#fff;display:flex;font-size:.72rem;font-weight:800;height:2rem;justify-content:center;margin-top:.1rem;width:2rem}.chat-message-body{min-width:0}.chat-message header{align-items:baseline;display:flex;gap:.65rem;margin-bottom:.35rem}.chat-message strong{font-size:.84rem}.chat-message time{color:#8a958f;font-size:.68rem}.chat-message p{font-size:1rem;line-height:1.7;margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.chat-message.patient{grid-template-columns:minmax(0,1fr);justify-items:end;margin-left:auto;max-width:82%;width:auto}.chat-message.patient .chat-message-avatar{display:none}.chat-message.patient .chat-message-body{display:grid;justify-items:end}.chat-message.patient header{margin-right:.25rem}.chat-message.patient p{background:#edf3ef;border-radius:1.25rem;padding:.8rem 1.05rem}.chat-message.doctor .chat-message-avatar{background:#56728a}.chat-message.doctor p{background:transparent;padding:0}.chat-message.system .chat-message-body{background:#f4f7f5;border:1px solid #e1e8e3;border-radius:.85rem;padding:.9rem 1rem}.chat-message.system p{color:#33483e}.chat-welcome{display:grid;justify-items:center;margin:16vh auto 0;max-width:32rem;text-align:center}.chat-welcome h2{font-size:1.65rem;letter-spacing:-.035em;margin:1rem 0 .35rem}.chat-welcome p{color:var(--p-muted);font-size:1rem;line-height:1.65}.chat-composer{background:linear-gradient(transparent,#fff 20%);padding:1rem max(1rem,env(safe-area-inset-right)) max(.8rem,env(safe-area-inset-bottom));position:relative}.chat-composer>div:not(.patient-error):not(.human-care-note):not(.question-options){align-items:end;background:white;border:1px solid #cbd5cf;border-radius:1.6rem;box-shadow:0 6px 22px rgba(20,40,31,.09);display:flex;margin:auto;max-width:50rem;padding:.5rem .55rem .5rem .75rem;width:100%}.chat-composer textarea{border:0;flex:1;font:inherit;font-size:1rem;line-height:1.5;max-height:10rem;min-height:2.6rem;min-width:0;outline:0;overflow-y:auto;padding:.65rem .55rem;resize:none}.chat-composer button{background:var(--p-primary);border:0;border-radius:50%;color:white;cursor:pointer;font-size:1.05rem;height:2.65rem;min-width:2.65rem}.chat-composer button:disabled{opacity:.32}.chat-composer>small{color:var(--p-muted);display:block;font-size:.68rem;line-height:1.4;margin:.55rem auto 0;max-width:49rem;text-align:center}.chat-composer>.patient-error,.human-care-note,.question-options{margin:0 auto .65rem;max-width:50rem}.human-care-note{background:#edf3f7;border-radius:.75rem;color:#456078;font-size:.78rem;padding:.7rem 1rem;text-align:center}.question-options{display:flex;flex-wrap:wrap;gap:.55rem}.question-options button{border-radius:999px;height:auto;padding:.7rem 1rem;width:auto}.patient-drawer-scrim{display:none}.patient-chat-shell{grid-template-rows:minmax(0,1fr) auto}.patient-loading{display:grid;gap:1rem;margin:15vh auto;max-width:42rem;padding:1rem}.patient-loading div{animation:pulse-p 1.4s infinite;background:#e5ebe7;border-radius:.8rem;height:5rem}.patient-loading div:first-child{height:2rem;width:45%}@keyframes pulse-p{50%{opacity:.5}}.episode-list{gap:.75rem}.episode-list a{gap:1rem;min-height:4.8rem;padding:1rem 1.1rem}.episode-list a div{gap:.35rem;min-width:0}.episode-list strong{line-height:1.4}.episode-list small,.episode-list span,.patient-empty p{line-height:1.5}.patient-empty strong{display:block;line-height:1.4;margin-bottom:.55rem}.patient-empty p{margin:0}.patient-sidebar nav a div{gap:.25rem}.patient-sidebar nav strong{line-height:1.35}.patient-sidebar nav small{line-height:1.45}.patient-user div{gap:.2rem}.patient-topbar>div{gap:.15rem}.patient-workspace.chat-workspace{grid-template-rows:auto minmax(0,1fr);overflow:hidden}.chat-workspace>.patient-chat-shell{align-self:stretch;height:auto;min-height:0;overflow:hidden}@media(max-width:700px){.patient-app-shell,.patient-app-shell.collapsed{display:block;height:100dvh}.patient-workspace{height:100dvh}.patient-sidebar{box-shadow:12px 0 32px rgba(18,38,29,.14);left:0;position:fixed;top:0;transform:translateX(-105%);transition:transform .2s ease;width:min(86vw,19rem);z-index:60}.patient-sidebar.open{transform:translateX(0)}.patient-drawer-scrim{background:rgba(15,30,24,.4);border:0;display:block;inset:0;opacity:0;pointer-events:none;position:fixed;transition:opacity .2s;z-index:59}.patient-drawer-scrim.open{opacity:1;pointer-events:auto}.patient-collapse{display:none}.patient-drawer-close,.patient-topbar>button{display:block}.patient-topbar{min-height:max(3.6rem,calc(3rem + env(safe-area-inset-top)));padding-top:env(safe-area-inset-top)}.patient-topbar>div{overflow:hidden}.patient-topbar span,.patient-topbar strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-messages{padding:.9rem .85rem 1.5rem}.chat-message{max-width:93%}.chat-composer{padding:.75rem .65rem max(.65rem,env(safe-area-inset-bottom))}.chat-composer>small{padding-inline:.5rem}.patient-home-content{padding:1.5rem 1rem}.patient-login section{padding:1.4rem}}