/* The installation package owns the visual design. Only live states and screen adaptation live here. */
html,body,.viewport,.screens{overflow:clip}
[hidden]{display:none!important}
body{user-select:auto}
button,a{touch-action:manipulation}
button,input,a{font:inherit}
a{color:var(--green-deep);text-decoration:none}
button:disabled{opacity:.5;cursor:not-allowed}
button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible,[role=button]:focus-visible{outline:3px solid var(--green-deep);outline-offset:4px}
.screen{overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;isolation:isolate}
.screen>*{flex-shrink:0;min-width:0}
.screen::before{right:0;max-width:100%}
.screen::after{left:0;max-width:100%}
.screen :is(p,b,h1,h2,h3,h4,span,a){overflow-wrap:anywhere}
.screen .btn{min-height:70px;padding:16px 24px;font-size:26px;white-space:normal;line-height:1.5}
.phead{gap:20px}
.phead h2{flex:1;min-width:0}
.phead .side{max-width:40%;font-size:20px}
.phead .btn-round{flex-shrink:0}
.avatar,.fam-row .av{display:flex;align-items:center;justify-content:center}
.home-body{flex-shrink:1;min-height:480px}
.home-bottom{display:flex;justify-content:flex-end}
.home-bottom .btn{font-size:21px;min-height:56px;padding:10px 24px}
.home-body .side-col{width:400px;flex-basis:400px}
.sched{min-height:160px}
.schedule-items{overflow:auto;min-height:0;display:flex;flex-direction:column;gap:14px;max-height:220px}
.sched .si{align-items:flex-start}.sched .si b{flex-shrink:0}.sched .si span{min-width:0}
.schedule-empty{font-size:21px;color:var(--gray)}
.fam{height:auto;min-height:140px;flex-shrink:0}
.fam-row .av{flex-shrink:0}
.btnrow2,.btnrow3,.btnrow{height:auto;min-height:96px}
.btnrow2>*{min-width:0}
.elder-empty{padding:40px 26px;background:var(--white);border-radius:24px;text-align:center;font-size:25px;color:var(--gray);line-height:1.7}
.elder-tag{display:inline-block;padding:8px 18px;border-radius:24px;background:var(--green-bg);color:var(--green-deep);font-size:21px}
.status-cancelled{background:var(--red-bg);color:var(--red)}
.status-in_progress{background:var(--clay-bg);color:var(--clay-ink)}
.appointment-list{display:flex;flex-direction:column;gap:22px;flex:none;min-height:0}
/* Live appointments form a list: no row may shrink to the remaining screen height. */
.appointment-list .appt-card{flex:none;height:auto;min-height:min-content}
.appointment-list .appt-card>*{flex-shrink:0;min-width:0}
.appointment-list .appt-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));flex:none;min-height:130px}
.appointment-list .appt-cell{min-height:130px;justify-content:flex-start;gap:10px;line-height:1.5}
.appointment-list .appt-card h1{line-height:1.5}
.appointment-state{margin:0}.appointment-note{font-size:22px;color:var(--gray);margin:0;white-space:pre-wrap;line-height:1.7}
.appt-time{display:grid;grid-template-columns:44px minmax(0,1fr) minmax(0,1fr);gap:16px 20px;height:auto;min-height:90px;padding:18px 22px;line-height:1.6}
.appt-time b{font-size:27px;min-width:0}
.appt-time>span:first-child{margin:0;width:44px;height:44px}
.appt-time>span:first-child svg{display:block;width:100%;height:100%}
.appt-time>span:last-child{min-width:0;margin:0}
.wk-main{height:auto;min-height:230px}.wk-main .av{display:grid;place-items:center}
.wk-main p,.wk-info-sm p{white-space:pre-wrap;line-height:1.7}
.info3{height:auto;min-height:150px}.icard-label{font-size:22px;color:var(--gray)}
.wk-card-sm{height:auto;min-height:260px}
.rec-banner{height:auto;min-height:150px;padding:24px 26px}
.video{height:auto;min-height:470px;padding:36px}
.video .btn{min-width:240px}
.sos-main{min-height:400px;text-align:center;padding:34px;flex-shrink:0;background:#bd4937}
.sos-main>p{opacity:1}
.sos-main h1{color:var(--white);line-height:1.5}.sos-main p{line-height:1.6}
.sos-wait{max-width:100%;height:auto}.sos-date{font-size:20px!important}
.tipbar{height:auto;min-height:90px;padding:20px;text-align:center}
.rec-live{height:auto;min-height:190px}.rec-info{min-width:0}.rec-info .rt{font-variant-numeric:tabular-nums}
.rec-status{white-space:pre-wrap;line-height:1.6}
.rec-tag{white-space:nowrap}
.rec-live .wave{animation-play-state:paused;opacity:.3}
.recording-active .wave{opacity:1}.recording-active .wave i{animation:elder-wave .9s ease-in-out infinite alternate}
.recording-active .wave i:nth-child(2n){animation-delay:.3s}
@keyframes elder-wave{to{transform:scaleY(.4)}}
.recording-panel{padding:26px;display:flex;flex-direction:column;gap:22px;align-items:stretch}
.recording-panel>*{min-width:0;max-width:100%;flex-shrink:0}
.rec-controls,.elder-actions{display:flex;gap:18px;flex-wrap:wrap;align-items:stretch}
.rec-controls .btn{flex:1}
.recording-panel audio{width:100%;height:54px}
.upload-label{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:18px;padding:20px;border:2px dashed var(--line);border-radius:24px;font-size:23px;line-height:1.6}
.upload-label input{font-size:18px;max-width:100%;min-width:0}
.rec-draft-status,.rec-source,.rec-warning{font-size:21px;white-space:pre-wrap;line-height:1.7}
.rec-draft-status{color:var(--green-deep)}.rec-source{color:var(--gray)}.rec-warning{color:var(--red)}
.rec-draft-status:empty,.rec-source:empty,.rec-warning:empty{display:none}
.rec-recovery-banner{display:flex;gap:18px;align-items:center;justify-content:space-between;border-radius:24px;background:var(--clay-bg);padding:18px 24px;font-size:22px}
.rec-recovery-banner .btn{font-size:22px;min-height:62px}
.elder-card{padding:26px;line-height:1.7}.elder-card h3{font-size:26px}.elder-card p{font-size:22px;white-space:pre-wrap}
.rec-draft-row{padding:22px 0;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:18px}
.rec-draft-row .btn{font-size:22px;min-height:64px}
.audio-bar{height:auto;min-height:120px;padding:20px 24px;flex-wrap:wrap}
.audio-bar audio{flex:1;min-width:240px;max-width:100%;height:54px}
.qgrid{min-height:0;flex:none}.qgrid .grow{min-height:170px;flex:none}.seg p{line-height:1.7;white-space:pre-wrap}
.evidence-card{padding:24px;font-size:21px;line-height:1.7}.evidence-card p{white-space:pre-wrap}
.evidence-list summary{cursor:pointer;color:var(--green-deep);min-height:54px;padding:12px 0}
.evidence-list article{border-top:1px solid var(--line);padding:16px 0}.evidence-list h4{font-size:23px}
.sub{font-size:19px!important;line-height:1.7;color:var(--gray);white-space:pre-wrap}
.evidence-card a,.dose-source a,.rp-card a{text-decoration:underline;text-underline-offset:4px}
.med-list{min-height:300px;flex:none}.mrow{flex:none;min-height:154px}.mrow .mt{width:100px;flex-basis:100px}
.mrow .mc{line-height:1.6}.mrow .mc>span{white-space:pre-wrap}.dose-source{font-size:18px!important}
.mrow .tag{font-size:22px}.mrow .btn-med{width:210px;min-height:84px;font-size:26px}
.prog{height:auto!important;min-height:104px}.prog .bar{max-width:34%;min-width:100px}
.vitals{height:auto;min-height:235px}.vcard{min-width:0}.vcard b{font-size:36px;line-height:1.4}.vcard .st{font-size:20px;color:var(--gray)}.vcard small{font-size:17px;color:var(--gray);text-align:center;line-height:1.6}
.report-row{height:auto;min-height:130px;flex-wrap:wrap}.report-row .rp-card2{flex:1 1 250px;min-height:140px}
.rec-list{flex:none}.rec{min-height:140px;flex:none}.rec .rd{width:145px;flex-basis:145px}.rec .rd b{font-size:23px}.rec .rc span{white-space:pre-wrap;line-height:1.7}.rec .rbtn-rec{height:auto;min-height:76px;font-size:21px}
.rl-card{height:auto;min-height:160px;padding:24px 26px;flex-wrap:wrap}.rl-card audio{width:360px;max-width:100%;min-width:0;height:54px}
.section-title{font-size:26px}.rp-card{min-height:400px}.rp-card .txt{line-height:1.6;white-space:pre-wrap}.rp-card .sub{align-self:stretch}.rp-row audio{width:100%;max-width:650px;min-width:0;height:54px}
.elder-alert{position:fixed;top:12px;left:50%;transform:translateX(-50%);z-index:90;background:var(--red-bg);color:#922b22;box-shadow:var(--shadow);padding:20px 26px;border-radius:24px;max-width:90%;font-size:22px;white-space:pre-wrap;overflow-wrap:anywhere}
.toast{white-space:normal;max-width:90%;width:max-content}
.pair-panel{margin:auto;width:min(760px,100%);padding:45px;text-align:center;background:var(--white);border-radius:28px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:24px;align-items:center;line-height:1.7}
.pair-brand{color:var(--green-deep);font-size:24px}.pair-panel h1{font-size:38px}.pair-panel p{font-size:24px;color:var(--gray)}.pair-panel a{font-size:21px;text-decoration:underline;padding:12px}.pair-panel .btn{font-size:28px;padding:22px 40px}
.pair-code{font-size:54px;letter-spacing:8px;color:var(--green-deep);font-weight:600;max-width:100%}.pair-code:empty{display:none}
@media(max-width:1150px){
  .appt-time{grid-template-columns:44px minmax(0,1fr)}.appt-time>span:last-child{grid-column:2;text-align:left}
  .home-body .side-col{width:320px;flex-basis:320px}.home-body,.fgrid,.frow{gap:18px}.fcard{padding:24px;gap:14px}.fcard .f-t{font-size:29px}.fcard .f-d{font-size:19px}.sched{padding:22px}.sched .si span,.sched .si b{font-size:19px}.fam{padding:22px}.fam-row .txt b{font-size:19px}.icobox{width:82px;height:82px}
  .vcard b{font-size:30px}.mrow{flex-wrap:wrap}.mrow .mc{flex-basis:45%}
}
@media(max-width:850px){
  .appointment-list .appt-row{grid-template-columns:repeat(2,minmax(0,1fr))}.appointment-list .appt-cell:first-child{grid-column:1/-1}
  .screen{padding:24px;gap:20px}.home-body{display:block;min-height:0;flex:none}.home-body .fgrid{min-height:500px}.home-body .side-col{width:100%;margin-top:20px;gap:20px}.home-body .sos-card{height:170px}.sched{flex:none}.schedule-items{max-height:260px}.home-bottom{justify-content:stretch}.home-bottom .btn{flex:1}
  .phead .side{display:none}#scr-home .phead{height:auto;min-height:110px}#scr-home .pill{padding:12px 16px}#scr-home .pill span{font-size:18px}#scr-home .phead>.u-row{gap:12px!important}.avatar{width:66px;height:66px;font-size:30px}.u-t40{font-size:34px}
  .phead h2{font-size:30px}.appt-row{flex-wrap:wrap}.appt-cell{flex:1 1 180px}.appt-time>span:last-child{margin-left:0}.appointment-list{flex:none;overflow:visible}.info3{flex-wrap:wrap}.icard{flex:1 1 180px}.rec-banner{flex-wrap:wrap}.rec-banner .go{width:100%}.wk-card-sm{min-height:220px}.wk-av-sm{width:120px;height:120px;font-size:48px}.wk-info-sm h3{font-size:30px}
  .vitals{flex-wrap:wrap}.vcard{flex:1 1 40%;min-height:220px}.prog{flex-wrap:wrap}.prog .bar{flex:1;max-width:100%}.prog .p-t{flex-basis:100%}.src-bar{height:auto!important;padding:20px;flex-wrap:wrap}.src-btn{width:auto;min-width:240px;padding:14px 20px}.qgrid{flex:none}.qgrid .grow{flex-wrap:wrap}.seg{flex:1 1 260px}.rl-card audio{width:100%}
}
@media(max-width:540px){
  .appointment-list .appt-row{grid-template-columns:minmax(0,1fr);gap:14px}.appointment-list .appt-cell{min-height:0}.appt-time{gap:12px}.appt-time>span:last-child{font-size:20px}
  .screen{padding:18px;gap:18px}.screen .btn{font-size:22px;min-height:66px;padding:14px 18px}.phead{height:auto;min-height:70px;gap:14px}.phead h2{font-size:27px}.btn-round{width:60px;height:60px}.phead .badge-ok{display:none}
  #scr-home .phead{flex-wrap:wrap;gap:16px;min-height:0}#scr-home .u-t40{font-size:29px}#scr-home .u-t22{font-size:19px}#scr-home .phead>.u-col{flex-basis:100%}#scr-home .phead>.u-row{width:100%;justify-content:space-between}
  .home-body .fgrid{min-height:0;gap:14px}.frow{gap:14px;min-height:200px;flex:none}.fcard{padding:18px;gap:12px}.fcard .f-t{font-size:25px}.fcard .f-d{font-size:17px}.icobox{width:68px;height:68px;border-radius:20px}.icobox .ico-56{width:44px;height:44px}.sos-card .sos-t{font-size:34px}.sos-card .sos-s{font-size:18px}.sched .si{gap:12px}.fam-row{gap:12px}
  .btnrow2,.btnrow3,.btnrow{flex-wrap:wrap;gap:14px;min-height:0}.btnrow2 .btn,.btnrow3 .btn,.btnrow .btn{flex:1 1 140px}.appt-card{padding:24px!important}.appt-card h1{font-size:30px}.appt-cell{flex-basis:100%;padding:18px}.appt-cell b{font-size:25px}.appt-time{padding:18px}.appt-time b{font-size:24px}.appt-time span{font-size:20px}.tip-center{font-size:20px}
  .wk-main{flex-wrap:wrap;padding:24px}.wk-main .av{width:90px;height:90px;font-size:40px}.wk-main .info{flex:1 1 180px}.wk-main h3{font-size:28px}.wk-main p{font-size:21px}.icard b{font-size:23px}.wk-card-sm{flex-wrap:wrap;padding:24px}.wk-av-sm{width:90px;height:90px;font-size:40px}.wk-info-sm{flex-basis:100%}.wk-info-sm h3{font-size:28px}.wk-info-sm p{font-size:21px}.rec-banner{padding:22px}.rec-banner .rt{flex-basis:100%}.rec-banner .rt b{font-size:26px}.rec-banner .go{font-size:22px}
  .rec-live{padding:22px;gap:18px;flex-wrap:wrap}.rec-live .rec-dot{width:72px;height:72px}.rec-info{flex-basis:100%}.rec-info .rt{font-size:52px}.rec-tag{font-size:18px;padding:12px 16px}.recording-panel{padding:20px}.rec-controls .btn{flex-basis:100%}.elder-actions .btn{flex:1 1 140px}.upload-label{font-size:21px}.upload-label input{width:100%;font-size:16px}.rec-recovery-banner{flex-wrap:wrap}.rec-draft-status,.rec-source,.rec-warning{font-size:20px}
  .mrow{padding:22px;gap:16px}.mrow .mt{width:90px;flex-basis:90px}.mrow .mc{flex-basis:100%}.mrow .mc b{font-size:25px}.mrow .btn-med{width:100%;flex:1}.mrow .tag{padding:14px 18px}.prog{padding:22px!important}.prog .p-t{font-size:25px}.src-bar b{font-size:22px}.src-btn{width:100%;font-size:22px}.vitals{gap:14px}.vcard{padding:20px 12px;min-height:220px}.vcard label{font-size:22px}.vcard b{font-size:27px}.vcard small{font-size:16px}.rec{padding:22px;flex-wrap:wrap;gap:16px}.rec .rd{width:auto;flex-basis:100%}.rec .rc{flex-basis:100%}.rec .rbtn-rec{width:100%}.rl-card{padding:22px;gap:16px}.rl-ic{width:64px;height:64px}.rl-ic .ico-52{width:40px;height:40px}.rl-txt{flex-basis:160px}.rl-txt b{font-size:24px}.rl-txt span{font-size:20px}.audio-bar{padding:22px}.audio-bar audio{min-width:0;width:100%;flex-basis:100%}.seg{padding:22px}.seg .sh h4{font-size:24px}.seg p{font-size:22px}.evidence-card{padding:22px;font-size:20px}
  .video{min-height:380px;padding:28px 20px}.video .v-av{width:140px;height:140px;font-size:60px}.video .v-n{font-size:30px}.video .v-t{font-size:24px}.video .btn{min-width:0;width:100%}.sos-main{padding:28px 20px;min-height:400px;gap:22px}.sos-main h1{font-size:34px}.sos-main p{font-size:22px}.sos-wait{padding:18px;gap:12px}.sos-wait span{font-size:22px}.tipbar span{font-size:22px}.rp-card{padding:24px;min-height:400px}.rp-card .txt{font-size:30px}.rp-card .lab{font-size:23px}.rp-row{flex-wrap:wrap}.pair-panel{padding:28px 20px}.pair-panel h1{font-size:29px}.pair-panel p{font-size:21px}.pair-code{font-size:34px;letter-spacing:3px}
}
@media(prefers-reduced-motion:reduce){.screen.active,.recording-active .wave i{animation:none}.btn,.fcard{transition:none}}
@media(max-width:540px){.phead{flex-wrap:wrap}.phead h2{flex:1 1 160px}#scr-med .phead{height:auto}.phead>.tag{padding:12px 16px;margin-left:auto;max-width:100%}.src-btn{min-width:0}}
.rec-live .rec-dot{animation:none}.recording-active .rec-dot{animation:pulse 1.5s ease infinite}
