@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#233b38;--muted:#73817c;--green:#276c58;--lime:#e3edd8;--line:#dde4dd;--paper:#f7f8f3;--white:#fff;--amber:#a26921}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:15px}h1,h2,h3,.brand{font-family:Manrope,sans-serif}button,input,select{font:inherit}button,a,select{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #97bfac;outline-offset:4px}header{height:94px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:0 5%;gap:20px}.brand{font-weight:800;font-size:21px;display:flex;align-items:center;gap:10px;letter-spacing:-.8px;white-space:nowrap}.brand-icon{display:grid;place-items:center;width:35px;height:35px;background:var(--green);color:white;border-radius:12px;font-size:26px}.brand small{font:600 10px 'DM Sans',sans-serif;letter-spacing:1.6px;color:var(--muted)}.brand-divider{height:22px;border-left:1px solid #cbd4cb;margin:0 8px}.header-right{display:flex;align-items:center;gap:20px}.connection{font-size:12px;color:var(--green);padding:8px 12px;border:1px solid #d5e4d4;border-radius:30px;background:#edf3e7}.connection::before,.dot{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:#5a9275;margin-right:7px}.text-button{border:0;background:none;color:var(--muted);padding:10px;font-size:12px}.text-button:hover{color:var(--green)}.patient-layout{max-width:1280px;margin:auto;padding:65px 55px 35px;display:grid;grid-template-columns:1fr 1fr;gap:70px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:var(--green)}h1{font-size:56px;line-height:1.16;font-weight:500;letter-spacing:-2.7px;margin:22px 0}.intro{font-size:17px;color:var(--muted);line-height:1.8;margin:0 0 26px}.room-label{display:flex;align-items:center;gap:15px}.room-icon{width:48px;height:48px;border:1px solid var(--line);border-radius:14px;display:grid;place-items:center;font-size:28px}.room-label small{display:block;font-size:9px;color:var(--muted);letter-spacing:1.5px;margin-bottom:4px}.room-label strong{font-size:18px}.pill{font-size:10px;padding:7px 11px;border-radius:24px;background:#e9ede6;color:#64716a;white-space:nowrap}.room-label .pill{margin-left:10px}.privacy{font-size:11px;color:var(--muted);margin:15px 0 32px}.service-caption{font-size:9px;letter-spacing:1.6px;color:var(--muted);font-weight:700;margin-bottom:13px}.services{display:grid;grid-template-columns:1fr 1fr;gap:10px}.service{border:1px solid var(--line);border-radius:14px;background:transparent;text-align:left;display:flex;align-items:center;padding:16px 13px;gap:12px;color:var(--ink)}.service:hover{border-color:#8baf9e;background:#f0f4e9}.service-icon{display:grid;place-items:center;width:35px;height:35px;border-radius:10px;background:#e9eee3;color:var(--green);flex-shrink:0;font-size:20px}.service strong{display:block;font-size:12px;font-weight:600;margin-bottom:3px}.service small{font-size:10px;color:var(--muted)}.urgent-note{margin-top:26px;display:flex;align-items:center;gap:12px;color:var(--muted)}.urgent-note>span{font-size:26px}.urgent-note p{font-size:11px;line-height:1.7}.urgent-note strong{font-weight:500;color:#53635b}.companion-card{align-self:start;background:white;border:1px solid #e0e5dd;border-radius:26px;box-shadow:0 12px 35px #34463706;padding:25px 32px 22px;text-align:center;min-height:605px;position:relative}.card-heading{display:flex;align-items:center;justify-content:space-between}.soft{background:#f4f5ef;font-size:8px;letter-spacing:1px;font-weight:700}.card-heading>span:last-child{font-size:10px;color:var(--muted)}.avatar-zone{height:230px;position:relative;display:flex;align-items:center;justify-content:center}.avatar-halo{width:215px;height:215px;border-radius:50%;background:radial-gradient(circle,#e1eace 0,#f5f7ef 68%,#fff 72%);position:absolute}.avatar{width:137px;height:142px;border-radius:46% 46% 43% 43%;position:relative;background:linear-gradient(140deg,#dce8ca,#c1d8a7);box-shadow:inset -8px -6px 18px #7f9f6820,0 15px 25px #94aa7820;transform:rotate(-3deg)}.eye{position:absolute;top:55px;width:8px;height:13px;background:#46694c;border-radius:50%;animation:blink 6s infinite}.eye.left{left:42px}.eye.right{right:42px}.cheek{position:absolute;top:79px;width:17px;height:8px;border-radius:50%;background:#afc69355}.cheek.left{left:25px}.cheek.right{right:25px}.smile{position:absolute;width:27px;height:14px;border:2px solid #46694c;border-top:0;border-radius:0 0 40px 40px;left:55px;top:81px}.wave{display:none;position:absolute;bottom:10px;gap:4px;align-items:center;height:24px}.wave i{width:3px;background:#7da783;border-radius:10px;height:8px;animation:wave .8s infinite alternate}.wave i:nth-child(2){animation-delay:.2s}.wave i:nth-child(3){animation-delay:.4s}.wave i:nth-child(4){animation-delay:.1s}.avatar-zone.active .wave{display:flex}.avatar-zone.active .avatar{animation:bob 3s infinite}.companion-card h2{font-size:19px;font-weight:600;letter-spacing:-.5px;margin:12px 0}.companion-description{font-size:13px;color:var(--muted);line-height:1.8;margin:0 0 26px}.primary{background:var(--green);color:white;border:0;border-radius:11px;min-height:48px;padding:12px 20px;font-weight:500}.primary:hover{background:#205744}.start{width:100%;display:flex;justify-content:center;align-items:center;gap:14px}.start>span:last-child{margin-left:auto}.start>span:first-child{margin-right:auto;font-size:22px}.mode-note{font-size:10px;color:var(--muted);margin:15px 0}.secondary{border:1px solid var(--line);background:white;border-radius:9px;min-height:40px;padding:10px 14px;color:var(--ink);font-size:12px}.secondary:hover{background:#edf3e7}.chat{max-height:165px;overflow-y:auto;text-align:left;border-top:1px solid var(--line);padding-top:10px;margin-top:15px}.bubble{font-size:12px;line-height:1.6;padding:9px 12px;background:#f0f4e9;border-radius:10px;margin-bottom:8px;width:90%;white-space:pre-wrap}.bubble.user{background:#f3f4f2;margin-left:auto;color:#4b5c53}.bubble small{display:block;font-size:8px;letter-spacing:1px;color:var(--muted);margin-bottom:3px}#message-form{position:relative;margin-top:14px;display:flex;gap:8px}input{width:100%;border:1px solid var(--line);padding:13px;border-radius:10px;color:var(--ink);background:white}input:focus{outline:2px solid #94b59f}#message{font-size:12px}.send{border:0;background:var(--green);color:white;border-radius:10px;width:46px;font-size:22px}.pending{text-align:left;background:#f4f6ee;padding:15px;border:1px solid #dce5d1;border-radius:12px;margin-top:15px}.pending h3{font-size:13px;margin:0 0 7px}.pending p{font-size:12px;color:var(--muted)}.pending .category-options{display:flex;gap:5px;flex-wrap:wrap;margin:10px 0}.category-options button{font-size:10px;border:1px solid var(--line);background:white;padding:8px;border-radius:7px}.category-options button.selected{background:var(--green);color:white}.pending .primary{min-height:38px;font-size:12px}.patient-requests{text-align:left;margin-top:14px}.patient-request{border-top:1px solid var(--line);padding:10px 0;display:flex;justify-content:space-between;gap:8px;font-size:11px}.patient-request small{color:var(--muted)}footer{max-width:1170px;margin:0 auto;padding:20px 0 30px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}dialog{border:1px solid var(--line);border-radius:22px;padding:30px;max-width:430px;width:90%;color:var(--ink)}dialog::backdrop{background:#1d322766;backdrop-filter:blur(4px)}dialog h2{font-size:23px}dialog p{color:var(--muted);line-height:1.7;font-size:13px}dialog label{display:block;font-size:12px;margin:15px 0}dialog input{margin-top:7px}.dialog-actions{display:flex;gap:10px;align-items:center}.error{color:#a63e39!important}.toast{position:fixed;bottom:110px;left:50%;transform:translateX(-50%);background:#233b38;color:white;padding:15px 22px;border-radius:12px;font-size:13px;box-shadow:0 6px 20px #0002;z-index:10;max-width:90%;text-align:center}.dashboard-layout{max-width:1270px;margin:auto;padding:40px 45px 140px}.dashboard-title{display:flex;align-items:center;justify-content:space-between}.dashboard-title h1{font-size:35px;letter-spacing:-1.4px;margin:12px 0}.dashboard-title p{color:var(--muted);font-size:13px}.station{font-size:11px;border-left:1px solid var(--line);padding-left:24px}.station small{display:block;margin:8px 0 0 14px;color:var(--muted)}.demo-banner{border:1px solid #dce4d2;background:#edf2e5;border-radius:9px;padding:12px 16px;font-size:11px;display:flex;align-items:center;gap:14px;margin:25px 0}.demo-banner>span{font-size:8px;font-weight:700;letter-spacing:1px;white-space:nowrap}.demo-banner a{margin-left:auto;white-space:nowrap}.stats{display:grid;grid-template-columns:1fr 1fr 1fr 1.4fr;border:1px solid var(--line);background:white;border-radius:16px;overflow:hidden;margin:25px 0 35px}.stats>div{padding:23px 25px;border-right:1px solid var(--line)}.stats small{font-size:11px;color:var(--muted)}.stats strong{display:block;font:500 40px Manrope,sans-serif;margin:12px 0 5px}.stats span{font-size:10px;color:var(--muted)}.stats .stat-accent{border:0;background:#e5eddb}.stat-accent p{font:500 18px/1.5 Manrope,sans-serif;margin:12px 0}.queue{background:white;border:1px solid var(--line);border-radius:18px;overflow:hidden}.queue-toolbar{display:flex;align-items:center;justify-content:space-between;padding:23px 26px;border-bottom:1px solid var(--line);gap:15px}.queue-toolbar h2{font-size:18px;margin:0 0 6px;font-weight:600}.queue-toolbar span{font-size:10px;color:var(--muted)}.filters{display:flex;gap:10px;align-items:center}select{background:#fafbf7;border:1px solid var(--line);border-radius:9px;padding:11px;font-size:11px;color:var(--ink)}.request-row{padding:22px 26px;display:grid;grid-template-columns:90px 1fr 135px auto;align-items:center;gap:24px;border-bottom:1px solid #ecf0e9}.request-row:last-child{border-bottom:0}.room-number{font-size:25px;font-family:Manrope,sans-serif;letter-spacing:-.8px}.room-number small{display:block;font-size:8px;letter-spacing:1.4px;color:var(--muted);margin-bottom:2px}.request-detail h3{font:500 13px/1.7 'DM Sans',sans-serif;margin:0 0 5px;overflow-wrap:anywhere}.request-detail small{font-size:10px;color:var(--muted)}.status{border-radius:24px;font-size:9px;padding:7px 10px;display:inline-block;white-space:nowrap}.status.new{background:#fff2dc;color:#986721}.status.in-progress{background:#e8f0eb;color:#377358}.status.completed{background:#eef0ec;color:#79837c}.request-row button{font-size:11px;min-height:36px;white-space:nowrap}.request-row .primary{padding:10px 16px}.empty{min-height:240px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:35px}.empty>span{display:grid;place-items:center;width:55px;height:55px;font-size:25px;border-radius:18px;background:#edf2e6;color:#819478;margin-bottom:12px}.empty h3{font-size:15px;margin:7px}.empty p{font-size:12px;color:var(--muted);line-height:1.8;max-width:350px}.dashboard-footnote{font-size:10px;color:var(--muted);line-height:1.7;margin:18px 4px}.bottom-tabs{position:fixed;bottom:0;width:100%;display:grid;grid-template-columns:repeat(5,1fr);padding:12px max(5%,calc((100% - 1180px)/2));background:#fff;border-top:1px solid var(--line);gap:10px;z-index:5}.bottom-tabs button{border:0;border-radius:12px;background:transparent;color:var(--muted);padding:12px 14px;display:flex;gap:11px;justify-content:center;align-items:center;font-size:12px;min-height:55px}.bottom-tabs button.selected{background:#eaf1e3;color:var(--green)}.bottom-tabs .tab-icon{font-size:23px}.tab-count{background:#e3e8dc;color:#476446;border-radius:6px;padding:3px 6px;font-size:9px;margin-left:5px}.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}[hidden]{display:none!important}@keyframes blink{0%,43%,47%,100%{transform:scaleY(1)}45%{transform:scaleY(.1)}}@keyframes wave{to{height:22px}}@keyframes bob{50%{transform:translateY(-5px) rotate(3deg)}}@media(min-width:1450px){.patient-layout{padding-top:90px}}@media(max-width:1000px){.patient-layout{gap:35px;padding:40px 30px}h1{font-size:48px}.companion-card{padding:23px}.request-row{gap:12px;grid-template-columns:75px 1fr 110px auto}.brand small,.brand-divider{display:none}footer{margin:0 30px}.stats>div{padding:20px 16px}}@media(max-width:760px){header{height:75px;padding:0 20px}.brand{font-size:17px}.brand-icon{width:29px;height:29px}.header-right{gap:3px}.connection{font-size:10px;padding:6px 8px}.patient-layout{grid-template-columns:1fr;padding:30px 22px;gap:25px}.welcome h1{font-size:43px;margin:18px 0}.intro br{display:none}.intro{font-size:15px}.privacy{margin-bottom:22px}.urgent-note{margin-top:16px}.companion-card{min-height:530px}.avatar-zone{height:200px}.services .service{padding:13px}.dashboard-layout{padding:30px 18px 125px}.dashboard-title h1{font-size:27px}.station{display:none}.demo-banner{display:block;line-height:1.9}.demo-banner>span{display:block}.demo-banner a{display:block}.stats{grid-template-columns:1fr 1fr}.stats>div:nth-child(2){border-right:0}.stats>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.stats .stat-accent p{font-size:15px}.stats strong{font-size:32px}.queue-toolbar{padding:18px;align-items:start;flex-direction:column}.filters{width:100%}.filters select{flex:1}.request-row{padding:18px;grid-template-columns:65px 1fr;gap:10px}.request-row>div:nth-child(3){grid-column:2}.request-row>button{grid-column:2;justify-self:start}.bottom-tabs{padding:8px;gap:3px}.bottom-tabs button{flex-direction:column;gap:5px;padding:8px 3px;font-size:9px}.bottom-tabs .tab-icon{font-size:20px}footer{margin:0 22px;gap:15px;line-height:1.7}footer>span{max-width:150px}}@media(prefers-reduced-motion:reduce){*{animation:none!important}}
.bottom-tabs button.has-new{animation:tab-alert 1.15s ease-in-out infinite;border:1px solid #e3b35e}.bottom-tabs button.has-new .tab-count{background:#fff2dc;color:#986721}@keyframes tab-alert{0%,100%{background:#fff7e8;box-shadow:0 0 0 0 #d8953244;color:#986721}50%{background:#ffe6b8;box-shadow:0 0 0 5px #d8953200;color:#7a4f16}}
@media(prefers-reduced-motion:reduce){.bottom-tabs button.has-new{animation:none!important;background:#fff2dc;color:#986721}}
body[data-page=patient]{min-height:100vh;overflow:hidden}
body[data-page=patient] .patient-layout{min-height:calc(100vh - 94px);padding:34px 55px;align-items:center;grid-template-columns:.85fr 1.15fr;gap:48px}
body[data-page=patient] .welcome{align-self:center}
body[data-page=patient] .room-label{margin-bottom:30px}
body[data-page=patient] .service-caption{margin-bottom:12px}
body[data-page=patient] .services{grid-template-columns:1fr 1fr;gap:9px}
body[data-page=patient] .service{padding:13px 12px}
body[data-page=patient] .urgent-note{margin-top:18px}
body[data-page=patient] .companion-card{min-height:0;padding:22px 32px 20px}
body[data-page=patient] .avatar-zone{height:200px}
body[data-page=patient] .avatar-halo{width:190px;height:190px}
body[data-page=patient] .avatar{width:124px;height:130px}
body[data-page=patient] .companion-card h2{margin:8px 0}
body[data-page=patient] .companion-description{margin-bottom:18px}
body[data-page=patient] footer{display:none}
@media(max-height:760px) and (min-width:761px){body[data-page=patient] header{height:78px}body[data-page=patient] .patient-layout{min-height:calc(100vh - 78px);padding-top:22px;padding-bottom:22px}body[data-page=patient] .avatar-zone{height:165px}body[data-page=patient] .avatar-halo{width:160px;height:160px}body[data-page=patient] .avatar{width:108px;height:113px}.mode-note{margin:10px 0}.service-icon{width:31px;height:31px}.patient-request{padding:7px 0}}
@media(max-width:760px){body[data-page=patient]{overflow:auto}body[data-page=patient] .patient-layout{min-height:0;padding:24px 18px;grid-template-columns:1fr;gap:18px}body[data-page=patient] .room-label{margin-bottom:20px}body[data-page=patient] footer{display:flex}}
body[data-page=dashboard]{height:100vh;overflow:hidden}
body[data-page=dashboard] .dashboard-layout{height:calc(100vh - 94px);padding:18px 45px 88px;display:grid;grid-template-rows:auto auto auto 1fr auto;gap:10px}
body[data-page=dashboard] .dashboard-title h1{font-size:28px;margin:4px 0}
body[data-page=dashboard] .dashboard-title p{margin:0;font-size:11px}
body[data-page=dashboard] .eyebrow{font-size:9px}
body[data-page=dashboard] .station{font-size:10px}
body[data-page=dashboard] .station small{margin-top:4px}
body[data-page=dashboard] .demo-banner{margin:0;padding:8px 12px}
body[data-page=dashboard] .stats{margin:0;min-height:76px;border-radius:12px}
body[data-page=dashboard] .stats>div{padding:10px 18px}
body[data-page=dashboard] .stats small{font-size:10px}
body[data-page=dashboard] .stats strong{font-size:28px;margin:4px 0}
body[data-page=dashboard] .stats span{font-size:9px}
body[data-page=dashboard] .stat-accent p{font-size:14px;line-height:1.25;margin:5px 0}
body[data-page=dashboard] .queue{min-height:0;display:flex;flex-direction:column}
body[data-page=dashboard] .queue-toolbar{padding:12px 18px}
body[data-page=dashboard] .request-list{overflow:auto;min-height:0}
body[data-page=dashboard] .request-row{padding:12px 18px;grid-template-columns:72px 1fr 120px auto;gap:14px}
body[data-page=dashboard] .room-number{font-size:20px}
body[data-page=dashboard] .request-detail h3{line-height:1.45}
body[data-page=dashboard] .empty{min-height:150px}
body[data-page=dashboard] .dashboard-footnote{display:none}
body[data-page=dashboard] .bottom-tabs{padding-top:8px;padding-bottom:8px}
body[data-page=dashboard] .bottom-tabs button{min-height:45px;padding:8px 10px}
@media(max-height:760px) and (min-width:761px){body[data-page=dashboard] header{height:78px}body[data-page=dashboard] .dashboard-layout{height:calc(100vh - 78px);padding-top:12px}.stats>div{padding:8px 14px}body[data-page=dashboard] .stats strong{font-size:24px}body[data-page=dashboard] .queue-toolbar{padding:10px 16px}body[data-page=dashboard] .request-row{padding:10px 16px}}
@media(max-width:760px){body[data-page=dashboard]{height:auto;overflow:auto}body[data-page=dashboard] .dashboard-layout{height:auto;display:block;padding:24px 18px 112px}body[data-page=dashboard] .dashboard-title h1{font-size:25px}body[data-page=dashboard] .stats{margin:18px 0}body[data-page=dashboard] .dashboard-footnote{display:block}}
