/* V20: one quiet, responsive system for every Luwi screen. */
:root{--muted:#785e6b;--line:#efdbe4}
html{scroll-padding-top:20px;text-size-adjust:100%;-webkit-text-size-adjust:100%}
body{background:radial-gradient(ellipse at 5% 0,#fff4df70,transparent 45%),linear-gradient(140deg,#fffafb,#fcf7ff);overflow-wrap:break-word}
.shell{width:100%;max-width:680px;padding:24px clamp(16px,4vw,32px) max(30px,env(safe-area-inset-bottom));min-width:0}
.shell:has(.authCard){max-width:520px}.shell:has(.masterCard){max-width:1120px}
.shell>*,.row>*,.topline>*,.scoreSummary>*,.resultColumns>*{min-width:0}
.brand{gap:9px}.brand .logo{width:44px;height:44px}.byGrowsia{font-size:11px;white-space:nowrap}
h1,h2,h3,p{overflow-wrap:break-word}h1,h2,h3{text-wrap:balance}
.hero{padding:26px 0 18px}.hero h1{font-size:clamp(30px,6vw,42px);line-height:1.12}.hero p{font-size:15px;line-height:1.55}
.card{box-shadow:0 10px 30px #7c234509;border-radius:26px 26px 26px 12px;padding:clamp(18px,4vw,26px)}
label{font-size:14px}input,select,textarea{font-size:16px;min-width:0;max-width:100%;min-height:48px;border-radius:16px;padding:12px 14px;line-height:1.4}
input[type=checkbox]{width:18px;min-height:18px;margin:0;accent-color:var(--rasp)}
input[type=file]{padding:10px;font-size:13px}input[type=file]::file-selector-button{border:0;border-radius:11px;padding:10px;color:#a32252;background:#fbe5ef;font:inherit;margin-right:8px;cursor:pointer}
button,.tab,.miniButton{touch-action:manipulation;cursor:pointer;min-height:44px}
.btn{min-height:48px;font-size:15px;border-radius:17px;transition:transform .15s,box-shadow .15s}
.btn:active:not(:disabled),.checkoutPlan:active:not(:disabled){transform:scale(.985)}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #a62a60;outline-offset:3px}
button:disabled{cursor:not-allowed}.tiny,.fileNote,.startNote{font-size:12px;line-height:1.6}
.formCheck{display:flex;gap:9px;align-items:center;min-height:44px;font-size:13px;margin:0 0 10px;font-weight:500}
.helloLine{align-items:center;gap:12px}.helloLine h2{font-size:22px;margin:3px 0;overflow-wrap:anywhere}.accountActions{gap:7px}.accountActions .tab{font-size:12px;flex:initial}
.welcomeMini{padding:16px;gap:14px;border-radius:25px 25px 25px 10px;box-shadow:none}.welcomeMini .mascotStage{width:86px;min-width:86px}.welcomeMini b{font-size:22px;line-height:1.2}.welcomeMini p{font-size:14px}.eyebrow{font-size:10px}
.featureChips{display:flex;gap:7px;flex-wrap:wrap}.featureChips span{font-size:11px;padding:9px 11px}
.sectionHeading{gap:10px}.sectionHeading h3{font-size:18px}.sectionHeading>span{border-radius:14px 14px 14px 6px}.setupCard:before,.setupCard:after{pointer-events:none}
.checkoutBackdrop{height:100vh;height:100dvh;padding:max(14px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))}
.checkoutSheet{flex-basis:490px;width:100%;max-height:100%;padding:28px 24px;scrollbar-gutter:auto;scrollbar-width:thin}
.checkoutClose,.conversationClose{width:44px;height:44px;min-height:44px}.checkoutSheet h2{padding-right:24px;font-size:clamp(23px,5.5vw,29px);line-height:1.17}.checkoutLead{font-size:13px;line-height:1.5}
.checkoutPlan{min-width:0;padding:18px 15px}.planMinutes{font-size:23px}.checkoutPlan strong{font-size:23px}.planOld{font-size:13px}.checkoutPlan small{font-size:12px;line-height:1.4}.checkoutPlan em{font-size:10px}.checkoutFoot,.checkoutError,.voucherMessage{font-size:12px;line-height:1.5}.voucherLabel{font-size:14px}.voucherLabel span{font-size:12px}.voucherInputRow input{font-size:16px}.voucherInputRow .tab{font-size:13px}
.qrisFrame{width:min(100%,245px)}.paymentRef{overflow-wrap:anywhere;font-size:11px}.paymentWaiting b{font-size:14px}.paymentWaiting span,.qrisSteps span{font-size:11px}
.sessionShell{max-width:none;width:100%;height:100vh;height:100dvh;min-height:0;overflow:auto;padding:18px max(18px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));scrollbar-width:thin}
.sessionShell .brand{flex:none}.voiceFocus{flex:1 0 auto;min-height:0;padding:16px 0 8px;gap:0}
.sessionClock{width:164px;margin:0 0 8px;padding:10px 13px;border-radius:19px 19px 19px 8px;box-shadow:0 7px 22px #83203f0d}.clockTop span{font-size:11px}.clockBottom{font-size:10px}.sessionClock .timer{font-size:23px;letter-spacing:-.03em}
.sessionShell .orbIdentity{margin-top:-10px;justify-content:center;flex-wrap:wrap;font-size:22px}.sessionShell .orbIdentity span{font-size:12px}
.sessionShell .voiceStatus{margin-top:12px;padding:11px 15px;max-width:100%;border-radius:20px;gap:12px;box-shadow:none;text-align:center}.voiceStatus>div:last-child{display:block;min-width:0}.sessionShell .voiceStatus .statusTitle{font-size:14px;line-height:1.4;white-space:normal}.sessionShell .voiceStatus .statusSub{font-size:12px;line-height:1.45;margin-top:2px}.voiceStatus .statusSub:before{display:none}
.sessionShell .voiceHint{font-size:12px;line-height:1.5;min-height:25px;padding:6px 0 0;max-width:330px;text-align:center}.sessionShell .disciplineNotice{font-size:12px;border-radius:17px;line-height:1.5;max-width:420px}
.sessionActions{gap:4px;margin-top:9px}.conversationToggle{min-height:46px!important;font-size:14px;max-width:100%}.chatCount{font-size:11px}.quietFinish{font-size:12px;min-height:44px;padding:10px}
.conversationPanel{max-width:100%;padding:20px;overscroll-behavior:contain}.conversationPanel .bubble{font-size:15px;line-height:1.6;max-width:94%}.conversationPanel .sessionGuide{font-size:12px}.conversationPanel .userVoiceLabel>span{font-size:12px}.conversationPanel .liveTranscript{font-size:16px}
.resultPage{padding:26px 0}.resultIntro{gap:12px}.resultIntro h1{font-size:clamp(26px,6vw,36px)}.resultIntro p{font-size:13px}.scoreSummary{grid-template-columns:150px minmax(0,1fr)}.scoreNarrative{padding:22px}.scoreNarrative p{font-size:14px}.scoreMetrics{padding:20px;gap:20px}.scoreMetric span,.scoreMetric small{font-size:12px}.resultColumns{gap:14px}.historyTitle{gap:8px;flex-wrap:wrap}.historySummary,.historyChat{font-size:14px;line-height:1.6}.historyItem summary{padding:12px 0;font-size:13px;min-height:44px}.historyScore{white-space:nowrap}
.masterSummary{gap:12px}.masterSummary span{font-size:12px}.masterSummary strong{font-size:22px}.masterTabs .tab,.masterSearch .tab,.masterPager .tab{font-size:13px}.masterSearch input,.masterFormGrid input,.masterFormGrid select{font-size:16px}.masterFormGrid label{font-size:14px}.masterTableScroll{max-width:100%;border-radius:16px;border:1px solid var(--line)}.masterTable{font-size:13px}.masterTable th,.masterTable small{font-size:11px}.masterTable td .tab{font-size:12px}.masterPager{flex-wrap:wrap;font-size:12px}
@media(min-width:900px){.shell:has(.masterCard){padding:32px 40px}.voiceFocus{padding-top:20px}}
@media(max-width:520px){.shell{padding:18px 16px max(24px,env(safe-area-inset-bottom))}.sessionShell{height:100dvh;padding:14px 16px max(14px,env(safe-area-inset-bottom))}.welcomeMini b{font-size:20px}.helloLine{align-items:flex-start;flex-wrap:wrap}.scoreSummary{grid-template-columns:1fr}.overallScore{min-height:150px}.scoreMetrics{grid-template-columns:1fr}.resultColumns{grid-template-columns:1fr}.resultIntro{flex-wrap:wrap}.masterSummary{grid-template-columns:repeat(2,minmax(0,1fr))}.masterFormGrid{grid-template-columns:1fr}.masterCard{padding:16px}.conversationPanel{height:85vh;height:85dvh;padding:12px 16px max(16px,env(safe-area-inset-bottom))}.checkoutSheet{padding:26px 19px}.checkoutPlan{padding:18px 13px}.sessionClock{width:158px}.voiceFocus{padding-top:14px}}
@media(max-width:359px){.row{flex-direction:column;gap:0}.welcomeMini{padding:12px;gap:9px}.welcomeMini .mascotStage{width:65px;min-width:65px}.welcomeMini b{font-size:18px}.welcomeMini p{font-size:12px}.checkoutPlans{grid-template-columns:1fr}.checkoutPlan{min-height:110px}.checkoutPlan .planMinutes{margin-top:2px}.masterSummary{gap:7px}.masterSummary>div{padding:14px 10px}.masterSummary strong{font-size:18px}.brand{font-size:21px}.sessionShell .voiceStatus{padding:10px 12px}}
@media(max-height:650px){.sessionShell .aiVoiceOrb{width:190px;height:190px}.sessionShell .orbBody{width:146px;height:146px}.voiceFocus{padding-top:8px}.sessionClock{margin-bottom:0;padding:8px 11px}.sessionShell .voiceStatus{margin-top:8px}.sessionActions{margin-top:3px}}
@media(hover:hover){.btn:hover:not(:disabled){box-shadow:0 8px 20px #c82d5825}.tab:hover:not(:disabled){background:#fff2f7}.welcomeMini:hover{transform:translateY(-1px)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.appBackground .aiVoiceOrb *, .appBackground .aiVoiceOrb *:before, .appBackground .aiVoiceOrb *:after{animation-play-state:paused!important}
#playRestore,#playAvailable .btn{margin-top:12px}
.legalLinks{font-size:13px;text-align:center;line-height:1.7}.legalLinks a{color:#a72255}.reportContent{display:block;border:0;background:none;color:#8d4561;font-size:12px;padding:10px 0;min-height:44px}.policyPage{width:min(100%,760px);margin:auto;padding:28px 20px;line-height:1.7}.policyPage h1{font-size:30px}.policyPage h2{font-size:20px;margin-top:26px}.policyPage a{color:#a72255}#reviewReports{margin-top:10px}
