:root{font-family:Hiragino Sans,Noto Sans JP,Meiryo,system-ui,sans-serif;color:#203f36;background:#f4f6ef;font-synthesis:none;font-size:16px;line-height:1.7}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,select,input{min-height:48px;border:1px solid #cbd7cd;border-radius:10px;padding:10px 14px}button{cursor:pointer;background:#28695b;color:#fff;font-weight:600;white-space:normal}button:disabled{opacity:.45;cursor:not-allowed}button.secondary{background:#edf3e9;color:#245847}button.quiet{background:transparent;color:#49645a;border-color:transparent}button:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid #b39145;outline-offset:4px}input,select{background:#fff;color:#234b3e;max-width:100%;width:100%}header{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:24px 4vw;border-bottom:1px solid #dfe6dc;background:#fffdf7}.brand{display:flex;gap:12px;align-items:center;font-size:27px;font-weight:650;color:#28695b;text-decoration:none;line-height:1.2}.brand small{display:block;font-size:9px;letter-spacing:.18em;margin-top:6px}.header-actions{display:flex;align-items:center;gap:20px}.header-actions select{width:auto}.connection{font-size:12px;color:#8b6d35}.connection:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:currentColor;margin-right:7px}.connection.online{color:#3e735b}.terminal{max-width:1500px;margin:0 auto;padding:40px 4vw;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);gap:32px}.companion{background:#173f36;color:#f6fae9;border-radius:32px;padding:32px;display:flex;flex-direction:column;align-items:center;text-align:center;min-height:650px;justify-content:center;position:relative;overflow:hidden}.robot-name{font-size:13px;letter-spacing:.08em;color:#bed2c2;margin-bottom:30px}.face{width:min(420px,100%);height:210px;display:flex;justify-content:center;align-items:center;gap:55px;position:relative;margin:20px 0 35px}.face i{display:block;width:55px;height:75px;border-radius:45%;background:#dfeec7;box-shadow:0 0 35px #b5dc9140;animation:blink 6s infinite}.face span{position:absolute;bottom:15px;width:52px;height:24px;border:4px solid #dfeec7;border-top:0;border-radius:0 0 50px 50px}.face.paused i{height:10px;animation:none}.face.compact{background:#173f36;border-radius:45px;height:190px;width:300px;margin:auto}.eyebrow{font-size:12px;letter-spacing:.1em;color:#adc9b8}.companion h1{font-size:clamp(25px,3vw,40px);line-height:1.6;font-weight:500;max-width:650px;margin:12px 0}.visit-label{font-size:14px;color:#c9dbcd;overflow-wrap:anywhere}.controls{background:#fffdf9;border:1px solid #e0e6db;border-radius:24px;padding:28px;align-self:start;min-width:0}.controls h2{margin:0;font-size:20px}.help{font-size:12px;color:#6c7e71;line-height:1.8}.controls label{display:block;font-size:13px;margin:20px 0 12px}.controls label input,.controls label select{display:block;margin-top:7px}.controls>button{display:block;width:100%;margin:10px 0}.controls .check{display:flex;gap:12px;align-items:center}.check input{min-height:24px;width:24px;flex-shrink:0;accent-color:#28695b}.check span{font-size:13px}.controls fieldset{border:0;margin:20px 0 0;padding:0}.controls legend{font-size:12px;color:#70806d}.controls h3{font-size:20px;font-weight:600}.answers{display:grid;gap:12px}.visit-actions{border-top:1px solid #e1e8df;margin-top:25px;padding-top:20px;display:flex;flex-wrap:wrap;gap:10px}.controls dl{font-size:13px}.controls dl div{padding:10px 0;border-bottom:1px solid #e4e8e1}.controls dd{margin:3px 0;color:#28695b;font-weight:600}.photo{border-top:1px solid #e1e8df;margin-top:20px;padding-top:15px}.photo summary{cursor:pointer;min-height:48px;display:list-item;padding:10px}.photo img{width:100%;border-radius:10px}.photo input[type=file]{font-size:13px}.battery-label{max-width:270px}.error,.connection-warning{background:#faeee1;color:#7f442b;border-radius:10px;padding:12px;font-size:14px}.notice{color:#e4efc6}.enrol-screen{max-width:650px;text-align:center;padding:70px 24px;min-height:75vh;margin:auto}.enrol-screen h1{font-size:28px;margin-top:40px}.enrol-screen p{color:#5e7668}.enrol-screen p:empty{display:none}footer{padding:24px;text-align:center;font-size:11px;color:#798775}.controls:has(fieldset:disabled){opacity:.85}@keyframes blink{0%,44%,48%,to{transform:scaleY(1)}46%{transform:scaleY(.08)}}@media(prefers-reduced-motion:reduce){.face i{animation:none}}@media(max-width:850px){header{padding:18px 20px}.terminal{grid-template-columns:1fr;padding:20px;gap:20px}.companion{min-height:390px;padding:24px}.face{height:150px;margin:0 0 20px}.face i{height:55px;width:42px}.robot-name{margin-bottom:10px}.controls{padding:24px}.header-actions{gap:12px}.connection{font-size:11px}}@media(max-width:430px){header{align-items:start;flex-wrap:wrap;gap:16px}.header-actions{width:100%;justify-content:space-between}.terminal{padding:12px}.companion{border-radius:22px}.controls{padding:20px}.companion h1{font-size:25px}.enrol-screen{padding:40px 20px}.face.compact{width:250px}.visit-actions button{width:100%}}.voice-panel{border-bottom:1px solid #dfe6dc;padding-bottom:24px;margin:20px 0}.voice-panel>button{width:100%;margin:6px 0}.voice-panel h3{margin:0}.voice-transcript{max-height:340px;overflow-y:auto;overscroll-behavior:contain;margin:18px 0;font-size:14px}.voice-transcript p{padding:12px 14px;border-radius:14px;margin:10px 0;white-space:pre-wrap;overflow-wrap:anywhere}.voice-transcript small{display:block;font-size:11px;margin-bottom:5px;opacity:.8}.voice-resident{background:#f0f1e9;margin-left:20px!important}.voice-companion{background:#e3efe5;margin-right:20px!important}.voice-record-toggle{min-height:82px;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;font-size:18px}.voice-record-toggle.recording{background:#934a38;border-color:#934a38;box-shadow:0 0 0 4px #934a3820}.voice-status{font-size:13px;color:#576b60}.voice-status.recording{color:#934a38;font-weight:650}.companion{min-height:0;justify-content:flex-start;padding:28px;overflow:visible}.companion>.face{height:100px;margin:4px 0 14px;gap:40px}.companion>.face i{width:36px;height:48px}.companion>.face span{bottom:0;width:34px;height:18px;border-width:3px}.companion .robot-name{margin-bottom:12px}.companion .eyebrow{display:none}.companion h1{font-size:clamp(22px,2.4vw,30px);line-height:1.5;margin:8px 0}.checkin-panel .voice-panel{width:100%;background:#fffdf8;color:#203f36;border-radius:18px;padding:20px;margin-bottom:0;text-align:left}.voice-panel h2,.voice-panel h3{font-size:20px;margin:0 0 12px}.voice-panel .back-to-modes{width:auto;min-height:44px;padding:4px 0;margin:0}.mode-buttons{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}.mode-buttons button{min-height:70px}.mode-picker>a{color:#28695b;display:inline-block;padding:10px 0}.questionnaire-panel{width:100%;color:#203f36;text-align:left}.questionnaire-panel:has(fieldset),.questionnaire-panel:has(dl),.questionnaire-panel:has(>button){background:#fffdf8;border-radius:18px;margin-top:16px;padding:20px}.questionnaire-panel:empty{display:none}.questionnaire-panel fieldset{border:0;padding:0}.questionnaire-panel legend{color:#53665b;font-size:14px}.questionnaire-panel .answers{display:grid;gap:12px}.questionnaire-panel h3{margin:12px 0}.webcam video{display:block;max-width:100%;width:100%;border-radius:12px;background:#173f36}.webcam video[hidden]{display:none}.webcam>button{width:100%}.webcam-actions{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}.help{font-size:13px;color:#53665b}@media(max-width:850px){.companion{padding:20px}.mode-buttons{grid-template-columns:1fr}.mode-buttons button{min-height:56px}.checkin-panel .voice-panel{padding:18px}.companion .visit-label{margin:4px 0 12px}}.voice-panel-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}.voice-panel-heading h3{margin:0}.voice-panel .voice-status{margin:8px 0 14px}.voice-data-help{font-size:13px;margin-top:18px}.voice-data-help summary{cursor:pointer;padding:10px 0;min-height:44px}.terminal{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;padding-bottom:24px}.companion{position:sticky;top:24px;height:calc(100dvh - 48px);justify-content:center;overflow:hidden}.companion-message{order:2;max-width:100%;min-height:0;overflow:auto;overflow-wrap:anywhere}.companion>.face{flex-shrink:0;height:min(210px,30dvh);margin:12px 0 30px;gap:55px}.companion>.face i{width:55px;height:75px}.companion>.face span{bottom:15px;width:52px;height:24px;border-width:4px}.companion>.face.paused i{height:10px}.interaction-column{min-width:0}.checkin-panel .voice-panel{margin-top:0;border:1px solid #e0e6db}.questionnaire-panel:has(fieldset),.questionnaire-panel:has(dl),.questionnaire-panel:has(>button){margin-top:0;border:1px solid #e0e6db}.checkin-panel .notice{color:#28695b}.controls{margin-top:24px}.voice-panel .back-to-modes{font-size:13px}@media(max-width:850px){html{scroll-padding-top:calc(20dvh + 16px)}.terminal{display:block}.companion{--expanded-face-height: max(360px, 48dvh);height:var(--expanded-face-height);top:calc(20dvh - var(--expanded-face-height));z-index:5;padding:0;border-radius:22px;justify-content:flex-end;overflow-anchor:none}.companion-message{order:0;flex:1;padding:20px 20px 0;overflow:hidden;display:flex;flex-direction:column;justify-content:center}.companion h1{font-size:clamp(20px,5vw,25px);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.companion>.face{flex:0 0 20dvh;height:20dvh;width:100%;margin:0;gap:40px}.companion>.face i{width:36px;height:min(48px,7dvh)}.companion>.face span{bottom:3dvh;width:34px;height:min(18px,3dvh);border-width:3px}.interaction-column{min-height:80dvh;padding-top:20px}.voice-transcript{max-height:250px}}
