/* Messages geometry and system typography; DESIGN-2.0 §4.1 palette. No SF Symbols. */
:root{--c20-accent:#A63828;--c20-accent-ink:#FFF8EF;--c20-own:#FFD09A;--c20-own-ink:#24201F;--c20-bubble:#FFFFFF;--c20-bg:#FFF8EF;--c20-ink:#24201F;--c20-muted:#6B605A;--c20-line:rgba(36,32,31,.14);--c20-bar:rgba(255,248,239,.86);--c20-red:#B42318;--c20-font:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic UI",sans-serif}
@media(prefers-color-scheme:dark){:root{--c20-accent:#FFD09A;--c20-accent-ink:#24201F;--c20-own:#E6B075;--c20-own-ink:#1A1615;--c20-bubble:#2E2623;--c20-bg:#1A1615;--c20-ink:#F7EDE2;--c20-muted:#D2C3B8;--c20-line:rgba(247,237,226,.22);--c20-bar:rgba(26,22,21,.86);--c20-red:#FFB4AB}}
.c20-room,.c20-forms,.c20-dialog,.c20-home{font-family:var(--c20-font)!important;color:var(--c20-ink);font-size:17px;line-height:1.4;letter-spacing:normal}
.c20-room *,.c20-dialog *,.c20-forms *{box-sizing:border-box;font-family:inherit;letter-spacing:normal}
.c20-room button,.c20-forms button,.c20-dialog button{font:inherit;cursor:pointer;touch-action:manipulation}
.c20-room button:focus-visible,.c20-dialog button:focus-visible,.c20-forms button:focus-visible{outline:3px solid var(--c20-accent);outline-offset:3px}
.c20-room [hidden],.c20-dialog [hidden]{display:none!important}
html.k52 body[data-route=coachroom]{background:var(--c20-bg)!important;overflow:hidden}
html.k52 body[data-route=coachroom] .ra-top,body[data-route=coachroom] .k52-replay,body[data-route=coachroom] #app>.back{display:none!important}
html.k52 body[data-route=coachroom] #app{padding:0!important;max-width:none!important;margin:0!important;animation:none!important;transform:none!important}
.c20-room{height:calc(var(--c20-vh,100dvh) - 86px);width:100%;position:relative;display:flex;flex-direction:column;min-height:150px;background:var(--c20-bg);isolation:isolate}
.c20-header{display:grid;grid-template-columns:50px 1fr 50px;align-items:center;flex:none;padding:calc(6px + env(safe-area-inset-top,0px)) 8px 7px;background:var(--c20-bar);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:.5px solid var(--c20-line);z-index:3}
.c20-recipient{border:0;background:transparent;color:var(--c20-ink);display:flex;flex-direction:column;align-items:center;justify-self:center;gap:1px;padding:0 10px;font-size:13px!important;line-height:1.15}
.c20-recipient small{font-size:10px;color:var(--c20-muted)}
.c20-head-avatar{display:grid;place-items:center;position:relative;width:34px;height:34px;background:var(--c20-bubble);border-radius:50%;overflow:hidden}
.c20-head-avatar img{position:absolute;left:50%;top:50%;width:60px;height:60px;max-width:none;object-fit:contain;transform:translate(-50%,-50%) translateY(6px)}
.c20-icon{border:0;background:transparent;color:var(--c20-accent);width:44px;height:44px;padding:10px;display:grid;place-items:center;flex:none;border-radius:50%}
.c20-icon svg{width:27px;height:27px;display:block}
.c20-header>.c20-icon:last-child{color:var(--c20-muted)}
.c20-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;overflow-anchor:none;scrollbar-width:thin;touch-action:pan-y}
.c20-log{min-height:100%;padding:12px 12px 16px;display:flex;flex-direction:column;justify-content:flex-end}
.c20-date{text-align:center;color:var(--c20-muted);font-size:11px;margin:16px 0 12px;font-weight:600}
.c20-row{display:flex;align-items:flex-end;position:relative;margin-top:3px;flex-shrink:0;max-width:100%;gap:6px}
.c20-row.group-start{margin-top:14px}.c20-row.incoming{padding-right:35px}.c20-row.outgoing{justify-content:flex-end;padding-left:42px}
.c20-column{max-width:88%;min-width:0;position:relative}
.c20-bubble{border-radius:18px;background:var(--c20-bubble);color:var(--c20-ink);padding:9px 13px;border:.5px solid var(--c20-line);position:relative;overflow-wrap:anywhere;text-align:left;white-space:normal}
.outgoing .c20-bubble{background:var(--c20-own);color:var(--c20-own-ink)}
.group-end .c20-bubble:before{content:"";position:absolute;width:12px;height:15px;bottom:0;background:var(--c20-bubble);left:-5px;clip-path:polygon(45% 0,100% 0,100% 100%,0 100%,36% 65%)}
.group-end.outgoing .c20-bubble:before{left:auto;right:-5px;background:var(--c20-own);transform:scaleX(-1)}
.c20-text{margin:0;white-space:pre-wrap;line-height:1.4;font-size:17px}
.c20-avatar{position:relative;width:26px;height:26px;flex:none;visibility:hidden;border-radius:50%;background:var(--c20-bubble);display:grid;place-items:center;overflow:hidden}
.group-end .c20-avatar{visibility:visible}.c20-avatar img{position:absolute;left:50%;top:50%;width:46px;height:46px;max-width:none;object-fit:contain;transform:translate(-50%,-50%) translateY(4px)}.c20-avatar svg{width:18px;height:18px}.outgoing .c20-avatar{display:none}
.c20-sender{display:none;font-size:11px;color:var(--c20-muted);margin:0 0 4px 8px}.group-start .c20-sender{display:block}
.c20-read{display:block;text-align:right;color:var(--c20-muted);font-size:11px;margin:4px 2px 0}.c20-retry{border:0;background:none;color:var(--c20-red);font-size:12px!important;padding:6px 0 0;min-height:30px}
.c20-time{position:absolute;right:-52px;bottom:12px;color:var(--c20-muted);font-size:11px;opacity:0;transition:opacity .16s,right .16s;white-space:nowrap}.show-times .c20-time{right:0;opacity:1}.show-times .c20-column{transform:translateX(-48px)}
.c20-column{transition:transform .16s}.c20-speak{font-size:11px!important;min-height:28px;padding:5px 0 0;border:0;color:var(--c20-muted);background:none}.outgoing .c20-speak{color:var(--c20-own-ink)}
.c20-actions{display:flex;flex-wrap:wrap;gap:5px;margin:6px 0 0}.c20-action,.c20-chip{background:var(--c20-bg);color:var(--c20-accent);border:1px solid var(--c20-line);border-radius:18px;padding:8px 12px;font-size:14px!important;min-height:36px;white-space:nowrap}
.c20-replies{display:flex;overflow-x:auto;gap:7px;padding:8px 12px 2px;scrollbar-width:none;flex:none}.c20-replies:empty{display:none}
.c20-dock{flex:none;z-index:3;background:var(--c20-bar);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:.5px solid var(--c20-line);padding-bottom:4px}
.c20-composer{display:flex;align-items:flex-end;gap:2px;padding:4px 6px}.c20-composer>.c20-icon:first-child{color:var(--c20-muted);background:var(--c20-bubble);width:34px;height:34px;margin:5px;padding:7px}.c20-composer>.c20-icon:first-child svg{width:22px;height:22px}
.c20-input-wrap{min-width:0;flex:1;display:flex;align-items:center;border:1px solid var(--c20-line);border-radius:21px;min-height:38px;margin:3px 0;background:var(--c20-bg);padding:0 12px;overflow:hidden}
.c20-input{width:100%;border:0;background:transparent;resize:none;color:var(--c20-ink);font-size:17px;line-height:22px;padding:7px 0;max-height:120px;min-height:36px;outline:none;box-shadow:none}.c20-input::placeholder{color:var(--c20-muted);opacity:1}
.c20-record-status{font-size:13px;color:var(--c20-red);padding:6px 0}.recording .c20-input{display:none}.recording .c20-input-wrap:before{content:"▂ ▅ ▃ ▇ ▄ ▆ ▂";color:var(--c20-red);letter-spacing:3px;padding-right:10px;animation:c20-wave .7s alternate infinite}
.c20-voice-preview{background:var(--c20-own);color:var(--c20-own-ink);border-radius:18px;margin:6px 16px 6px auto;padding:10px 14px;width:fit-content;max-width:80%}
.c20-typing{padding:12px 14px;border-radius:18px;background:var(--c20-bubble);display:flex;gap:5px;margin:12px 0 2px 32px;width:fit-content}.c20-typing i{width:8px;height:8px;background:var(--c20-muted);border-radius:50%;animation:c20-dot 1s infinite alternate}.c20-typing i:nth-child(2){animation-delay:.2s}.c20-typing i:nth-child(3){animation-delay:.4s}
.c20-new{position:absolute;right:16px;bottom:130px;z-index:4;color:var(--c20-accent);background:var(--c20-bg);box-shadow:0 2px 12px #0002;border:1px solid var(--c20-line);border-radius:20px;padding:10px 16px}
.c20-notice{font-size:12px;color:var(--c20-muted);padding:6px 12px;margin:0;flex:none;background:var(--c20-bg)}
.c20-preview{border-radius:13px;overflow:hidden;margin:7px -5px 0;background:var(--c20-bg);color:var(--c20-ink);min-width:min(220px,55vw)}.c20-preview-art{height:40px;background:var(--c20-accent);color:var(--c20-accent-ink);font-size:13px;display:flex;align-items:center;padding:0 12px;font-weight:600}.c20-preview-body{padding:12px;font-size:14px}.c20-preview p{margin:5px 0 8px}.c20-preview .c20-en{font-size:17px;line-height:1.35}.c20-preview .c20-link{display:inline-block;font-size:13px;margin-right:12px;min-height:32px}.c20-score{font-size:28px}.c20-stages{font-size:11px;color:var(--c20-muted)}.c20-choices{display:flex;gap:4px;flex-wrap:wrap}.c20-choices .c20-chip{font-size:12px!important;padding:7px}
.c20-badge{position:absolute;right:6px;top:0;border-radius:11px;background:var(--c20-red);color:var(--c20-bg);min-width:18px;padding:1px 4px;font:600 11px/16px var(--c20-font)}
html.k52 .ra-tabs.c20-tabs .ra-tabs__inner::before{width:20%}html.k52 .ra-tabs.c20-tabs .ra-tab{flex:1;min-width:0}html.k52 .ra-tabs.c20-tabs .ob-tabi{width:25px!important;height:25px!important}.c20-tab{position:relative}
.c20-dialog{padding:16px;max-width:min(420px,calc(100vw - 24px));width:100%;border:1px solid var(--c20-line);border-radius:24px;background:var(--c20-bar);backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);max-height:85dvh;overflow:auto}.c20-dialog::backdrop{background:#0007;backdrop-filter:blur(3px)}
.c20-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}.c20-sheet-head h2{font-size:17px;margin:0}.c20-link{border:0;background:none;color:var(--c20-accent);text-decoration:none;min-height:36px;padding:5px 0;cursor:pointer;font:inherit}
.c20-button{display:inline-block;border:0;border-radius:12px;background:var(--c20-accent);color:var(--c20-accent-ink);padding:12px 18px;text-align:center;text-decoration:none;font:inherit;min-height:44px}.c20-button:disabled{opacity:.45}
.c20-dialog .c20-menu{display:flex;flex-direction:column;background:var(--c20-bg);border-radius:14px;margin-top:16px;overflow:hidden}.c20-menu button{border:0;border-bottom:1px solid var(--c20-line);color:var(--c20-ink);background:none;text-align:left;padding:13px 16px;min-height:44px}
.c20-reactions{display:flex;justify-content:space-evenly;gap:4px;background:var(--c20-bg);padding:8px;border-radius:30px;margin-bottom:20px}.c20-tapback{font-size:24px!important;border:0;background:transparent;padding:6px;border-radius:50%;min-width:44px;min-height:44px}.c20-tapback[aria-pressed=true]{background:var(--c20-accent)}.c20-context .c20-bubble{transform:scale(1.015);box-shadow:0 8px 30px #0002;margin:0 8px;max-height:40dvh;overflow:auto}.c20-context .c20-bubble:before{display:none}
.c20-reaction{position:absolute;right:-7px;top:-17px;border-radius:20px;background:var(--c20-bubble);border:2px solid var(--c20-bg);padding:3px 6px;font-size:17px!important;line-height:1.2}.c20-add-row{display:block;padding:16px 12px;text-align:left;color:var(--c20-ink);background:var(--c20-bg);border:0;border-bottom:1px solid var(--c20-line);width:100%;min-height:52px}
.c20-forms{max-width:640px;padding:20px;margin:0 auto;background:var(--c20-bg);border-radius:16px}.c20-forms h1{font-size:26px}.c20-form{display:flex;flex-direction:column;gap:16px}.c20-form-label{display:flex;flex-direction:column;gap:6px;font-size:14px}.c20-field,.c20-textarea{border:1px solid var(--c20-line);border-radius:9px;background:var(--c20-bg);color:var(--c20-ink);padding:10px;font:17px var(--c20-font);min-height:44px;max-width:100%;width:100%}textarea.c20-field{min-height:88px}.c20-form-card{padding:16px;background:var(--c20-bubble);border-radius:14px;margin:16px 0}.c20-form-card p{font-size:14px}.c20-form-card h2{font-size:18px}.c20-danger{border:0;background:none;color:var(--c20-red);font:inherit;min-height:44px}.c20-form-status,.c20-error{font-size:14px;color:var(--c20-muted)}
.c20-home{padding:20px;background:var(--c20-bg);border:1px solid var(--c20-line);border-radius:20px;margin:0 0 16px}.c20-home>a:first-child{font-weight:700}.c20-home p{margin:8px 0;font-size:16px}.c20-home-menu{margin-top:14px}.c20-home-menu p{font-size:13px;color:var(--c20-muted)}.c20-result-note{border-left:3px solid var(--c20-accent);padding:12px;line-height:1.6}.c20-older{border:0;background:none;color:var(--c20-accent);font-size:13px;padding:12px;min-height:40px}.c20-highlight .c20-bubble{outline:3px solid var(--c20-accent)}.c20-sr{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden}
@keyframes c20-dot{to{opacity:.3;transform:translateY(-2px)}}@keyframes c20-wave{to{opacity:.5;transform:scaleY(.7)}}@keyframes c20-in{from{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}.c20-row{animation:c20-in .2s ease-out}.outgoing{animation-duration:.24s}
@media(min-width:1000px){.c20-room{height:var(--c20-vh,100dvh);max-width:900px;margin:0 auto}.c20-log{padding:16px 36px}.c20-dock{padding:8px 24px 20px}.c20-header{padding-top:14px}.c20-dialog{max-width:420px}.c20-column{max-width:72%}}
@media(prefers-reduced-motion:reduce){.c20-room *,.c20-dialog *{animation:none!important;transition:none!important;scroll-behavior:auto!important}.c20-typing i{display:none}.c20-typing .c20-sr{position:static;clip-path:none;width:auto;height:auto;font-size:12px}}
@media(prefers-reduced-transparency:reduce){.c20-header,.c20-dock,.c20-dialog{background:var(--c20-bg);backdrop-filter:none;-webkit-backdrop-filter:none}}
@media(prefers-contrast:more){:root{--c20-muted:CanvasText;--c20-line:CanvasText}.c20-bubble{outline:1px solid var(--c20-line)}.c20-read,.c20-time,.c20-date{font-weight:600}}
@media(forced-colors:active){.c20-bubble,.c20-preview,.c20-input-wrap{border:1px solid CanvasText}.outgoing .c20-bubble{background:Highlight;color:HighlightText}}

.c20-action{white-space:normal;max-width:100%;text-align:left}
/* The legacy app applies branded form/anchor rules with high specificity. */
html.k52 .c20-room *,html.k52 .c20-dialog *,html.k52 .c20-forms *{font-family:var(--c20-font)!important}
html.k52 body[data-route=coachroom] .c20-room .c20-input{background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0!important;outline:none!important;color:var(--c20-ink)!important;font:400 17px/22px var(--c20-font)!important;padding:7px 0!important;margin:0!important}
html.k52 .c20-room a,html.k52 .c20-room button.c20-link,html.k52 .c20-dialog .c20-link,html.k52 .c20-forms .c20-link{color:var(--c20-accent)!important}
html.k52 .c20-dialog .c20-field,html.k52 .c20-forms .c20-field,html.k52 .c20-dialog .c20-textarea{background:var(--c20-bg)!important;color:var(--c20-ink)!important;border:1px solid var(--c20-line)!important;box-shadow:none!important;font:400 17px/1.4 var(--c20-font)!important}
html.k52 .c20-dialog .c20-button,html.k52 .c20-forms .c20-button{background:var(--c20-accent)!important;color:var(--c20-accent-ink)!important}
html.k52 .c20-dialog .c20-danger,html.k52 .c20-forms .c20-danger{color:var(--c20-red)!important}
.c20-row.incoming:has(.c20-actions) .c20-avatar{margin-bottom:42px}
@media(max-width:999px){
 html.k52 .ra-tabs.c20-tabs .ra-tab{min-height:0!important;font-size:10px!important;line-height:1.1!important;gap:3px!important;justify-content:center}
 html.k52 .ra-tabs.c20-tabs .ra-tab>span:not(.c20-badge){line-height:1.1!important}
 html.k52 body[data-route=coachroom] .ra-tabs.c20-tabs{bottom:0;width:100%;height:86px;border-radius:0;margin:0;padding:8px 6px max(16px,env(safe-area-inset-bottom,0px));background:var(--c20-bar);border-top:.5px solid var(--c20-line);box-shadow:none;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
 html.k52 body[data-route=coachroom] .ra-tabs.c20-tabs .ra-tabs__inner::before{display:none}
 html.k52 body[data-route=coachroom] .ra-tabs.c20-tabs .ra-tab{border-radius:0;color:var(--c20-muted);height:54px}
 html.k52 body[data-route=coachroom] .ra-tabs.c20-tabs .ra-tab[aria-current=page],html.k52 body[data-route=coachroom] .ra-tabs.c20-tabs .ra-tab[aria-current=page] .ob-tabi{color:var(--c20-accent)}
}
.c20-room,.c20-dialog,.c20-forms{color-scheme:light dark}
