/* Web 515f0ccc: app.css k52 tokens, consolidated roles for every application screen. */
html.shell20 {
 --d-font:"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP","Noto Sans CJK JP","BIZ UDPGothic","Yu Gothic UI","Yu Gothic",Meiryo,system-ui,sans-serif;
 --d-label:.75rem;--d-caption:.875rem;--d-body:1rem;--d-title:1.125rem;--d-section:1.375rem;--d-screen:2rem;--d-number:2.625rem;
 --d-normal:400;--d-medium:600;--d-heavy:800;
 --d-chip:12px;--d-control:16px;--d-card:22px;--d-hero:28px;--d-round:999px;--d-circle:50%;
 --d-s1:4px;--d-s2:8px;--d-s3:12px;--d-s4:16px;--d-s5:20px;--d-s6:24px;--d-s7:32px;
 --d-bg:#FFF8EF;--d-surface:#F8E6D2;--d-raised:#F0DCC2;--d-ink:#24201F;--d-muted:#6B5F59;--d-accent:#A63828;--d-on:#FFF8EF;--d-you:#FFD09A;
 --d-ring:#F6E2C2;--d-flame:#FF7A2F;--d-shadow:0 8px 18px rgb(36 32 31 / .14);
 --s20-font:var(--d-font);--s20-bg:var(--d-bg);--s20-surface:var(--d-surface);--s20-wash:var(--d-raised);--s20-ink:var(--d-ink);--s20-muted:var(--d-muted);--s20-accent:var(--d-accent);--s20-on:var(--d-on);
 --c20-font:var(--d-font);--c20-bg:var(--d-bg);--c20-bubble:var(--d-surface);--c20-ink:var(--d-ink);--c20-muted:var(--d-muted);--c20-bar:var(--d-bg);--p20-card:var(--d-surface);--p20-pill:var(--d-raised);--p20-ring:var(--d-ring);
 --h20-bg:var(--d-bg);--h20-surface:var(--d-surface);--h20-ink:var(--d-ink);--h20-muted:var(--d-muted);--h20-accent:var(--d-accent);
 --s20-speak:#7A2A1C;--s20-speak-bg:#FDE3DE;--s20-speak-mark:#F0654F;
 --s20-listen:#145C37;--s20-listen-bg:#DDF3E6;--s20-listen-mark:#2FB36F;
 --s20-pronounce:#6B4B00;--s20-pronounce-bg:#FFF1CC;--s20-pronounce-mark:#FFC53D;
 --s20-words:#3B2A8C;--s20-words-bg:#E8E1FD;--s20-words-mark:#7B5CF0;
 --s20-play:#14427E;--s20-play-bg:#DDEBFE;--s20-play-mark:#3E8EF7;
}
@media(prefers-color-scheme:dark){html.shell20{
 --d-bg:#1A1615;--d-surface:#272120;--d-raised:#332B28;--d-ink:#F4EBE1;--d-muted:#D2C3B8;--d-accent:#FFD09A;--d-on:#24201F;--d-you:#E6B075;--d-ring:#3A302B;--d-flame:#FF9A5C;
 --s20-speak:#FFB4A3;--s20-speak-bg:#3A2622;--s20-speak-mark:#FF8A76;
 --s20-listen:#93E5B6;--s20-listen-bg:#1C3427;--s20-listen-mark:#5FD497;
 --s20-pronounce:#FFE29A;--s20-pronounce-bg:#382F1B;--s20-pronounce-mark:#FFD66B;
 --s20-words:#C8B9FF;--s20-words-bg:#2B2443;--s20-words-mark:#A893FF;
 --s20-play:#B0D1FF;--s20-play-bg:#1C2D43;--s20-play-mark:#7DB4FF;
}}
html.shell20 :is(body,#app,#raTabs,dialog),html.shell20 :is(#app,#raTabs,dialog,.rt-bar) *{
 font-family:var(--d-font)!important;font-size:var(--d-body)!important;font-weight:var(--d-normal)!important;border-radius:0!important;
}
html.shell20 :is(#app,#raTabs,dialog,.rt-bar) :is(h1,.h20-page>header h1,.page-head h1){font-size:var(--d-screen)!important;font-weight:var(--d-heavy)!important;line-height:1.3!important;}
html.shell20 :is(#app,dialog) :is(h2,h3){font-size:var(--d-section)!important;font-weight:var(--d-heavy)!important;line-height:1.4!important;}
html.shell20 :is(#app,dialog,.rt-bar) :is(button,a,strong,b,.row-title,.d122-title,.c20-en){font-weight:var(--d-heavy)!important;}
html.shell20 :is(#app,dialog) :is(small,.s20-meta,.d122-minutes,.c20-date,.c20-time,.c20-read,.c20-sender){font-size:var(--d-caption)!important;}
html.shell20 :is(#app,dialog) :is(.h20-number,.s20-stats strong,.rt-count-n,.c20-score){font-size:var(--d-number)!important;font-weight:var(--d-heavy)!important;}
html.shell20 #raTabs .ra-tab span:not(.s20-icon):not(.c20-badge){font-size:var(--d-label)!important;font-weight:var(--d-medium)!important;}
html.shell20 :is(#app,dialog) :is(article,.card,.rowlist,.s20-group,.s20-profile,.s20-stats>div,.s20-chart,.s20-shelf,.s20-material,.h20-card,.h20-price-card,.c20-preview,.c20-form-card){border-radius:var(--d-card)!important;}
html.shell20 :is(#app,dialog,.rt-bar) :is(button,input,select,textarea,.c20-bubble,.c20-composer,.s20-action,.rt-chunky){border-radius:var(--d-control)!important;}
html.shell20 :is(#app,dialog) :is(.p20-chip,.c20-chip,.rt-streak,.s20-icon,.d122-check,.c20-avatar,.c20-head-avatar){border-radius:var(--d-round)!important;}
html.shell20 #raTabs{border-radius:var(--d-round)!important;}
html.shell20 #raTabs .ra-tab{border-radius:var(--d-round)!important;}
html.shell20 #app :is(.s20-shelf,.s20-material){background:var(--skill-bg)!important;color:var(--skill-ink)!important;min-height:64px;padding:var(--d-s4) var(--d-s5)!important;}
html.shell20 #app :is(.s20-shelf,.s20-material) .s20-icon{width:44px!important;height:44px!important;padding:var(--d-s2)!important;background:var(--skill-bg)!important;color:var(--skill-ink)!important;}
html.shell20 #app .s20-shelves{gap:var(--d-s3);}
html.shell20 #app .s20-shelves .s20-shelf{grid-column:auto!important;}
html.shell20 #app .s20-page{gap:var(--d-s6);}
html.shell20 #app .p20-home{padding-bottom:180px!important;}
html.shell20 #app .p20-home .rt-hero{gap:var(--d-s3);}
html.shell20 #app .p20-home .rt-slot[hidden]{display:none!important;}
html.shell20 #app .d122-bubble{display:block;position:relative;margin:0 auto var(--d-s4);max-width:560px;padding:var(--d-s4) var(--d-s5);border-radius:var(--d-control)!important;background:var(--d-surface);color:var(--d-ink);text-decoration:none;line-height:1.6;font-weight:var(--d-normal)!important;}
html.shell20 #app .d122-bubble::after{content:'';position:absolute;bottom:-8px;left:48%;width:16px;height:16px;background:inherit;transform:rotate(45deg);}
html.shell20 #app .d122-bubble[data-unread=true]::before{content:'';position:absolute;right:8px;top:8px;width:6px;height:6px;border-radius:var(--d-round);background:var(--d-accent);}
html.shell20 #app .d122-list{display:grid;gap:var(--d-s2);margin:var(--d-s5) 0;}
html.shell20 #app .d122-list h2{margin:0 0 var(--d-s2);}
html.shell20 #app .d122-row{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:var(--d-s3);align-items:center;padding:var(--d-s4);background:var(--d-surface)!important;color:var(--d-ink)!important;border-radius:var(--d-card)!important;}
html.shell20 #app .d122-check{color:var(--skill-ink);background:var(--skill-bg);width:24px;height:24px;display:grid;place-items:center;}
html.shell20 #app .d122-title{line-height:1.5;overflow-wrap:anywhere;}
html.shell20 #app .d122-minutes{white-space:nowrap;color:var(--d-muted);}
html.shell20 #app .c20-bubble{background:var(--d-surface)!important;color:var(--d-ink)!important;}
html.shell20 #app .outgoing .c20-bubble{background:var(--d-you)!important;color:#24201F!important;}
html.shell20 #app .c20-preview-art{display:none!important;}
html.shell20 #app .c20-preview{background:var(--d-bg)!important;color:var(--d-ink)!important;}
html.shell20 #app .c20-chip{background:var(--d-surface)!important;color:var(--d-ink)!important;}
html.shell20 #app .c20-actions{gap:var(--d-s2);}
html.shell20 #app .c20-action{background:transparent!important;color:var(--d-accent)!important;}
html.shell20 #app .s20-materials button{width:100%;text-align:left;cursor:pointer;}
html.shell20 .rt-bar #rt-primary{font-size:var(--d-body)!important;border-radius:var(--d-control)!important;box-shadow:var(--d-shadow)!important;}
/* Remaining inherited native controls and dark-mode token aliases. */
html.shell20{--k-brick:var(--d-accent);--k-muted:var(--d-muted);--k-ink:var(--d-ink);--h20-brass:var(--d-accent);--h20-text:var(--d-ink);--h20-mute:var(--d-muted);--d-streak-bg:var(--d-surface);}
html.shell20 #raTabs .ra-tab{font-weight:var(--d-heavy)!important;}
html.shell20 #app :is(input[type=checkbox],input[type=radio],.c20-composer .c20-icon){border-radius:var(--d-round)!important;}
html.shell20 #app .p20-home :is(.rt-hero,.rt-stage,.rt-ring,.rt-ripi,.rt-ripi-tilt,.ob-fig,.ob-ground,.ob-hop,.ob-figimg,.rt-caption,.rt-count,.rt-count-n,.rt-num-in,.rt-streak,.rt-streak-n,.rt-slot,.d122-list),html.shell20 #app .p20-home{color:var(--d-ink)!important;}
html.shell20 #app .p20-home .rt-count-t{color:var(--d-muted)!important;}
html.shell20 #app .rt-count-n,html.shell20 #app .rt-count-n *{font-size:var(--d-number)!important;font-weight:var(--d-heavy)!important;}
html.shell20 #app .rt-streak{background:var(--d-streak-bg)!important;}
html.shell20 #app :is(.h20-link,.s20-chart-empty,.row){color:var(--d-accent)!important;}
html.shell20 #app :is(.row-main,.row-title,.chev){color:inherit!important;}
html.shell20 #app :is(p.muted,.muted){color:var(--d-muted)!important;}
html.shell20 #app .p20-home{max-height:calc(100svh - 184px)!important;overflow:auto!important;padding-bottom:var(--d-s6)!important;}
html.shell20 #app :is(.h20-page,.h20-dialog){--k-brick:var(--d-accent);--ra-brass:var(--d-accent);color:var(--d-ink)!important;}
html.shell20{--d-you-on:#24201F;}
@media(prefers-color-scheme:dark){html.shell20{--d-you-on:#1A1615;}}
html.shell20 #app .outgoing .c20-bubble{color:var(--d-you-on)!important;}
/* Older settings forms also scroll above their fixed Save action. */
html.shell20 body[data-route=account]:not(:has(#app>.s20-page,#app>.h20-page)) #app{min-height:0!important;max-height:calc(100svh - 184px)!important;overflow:auto!important;padding-bottom:var(--d-s6)!important;}
/* Material indexes inherit the same caption, ink and surface roles. */
html.shell20{--d-panel:#E6CDAC;}
@media(prefers-color-scheme:dark){html.shell20{--d-panel:#3E3430;}}
html.shell20 #app :is(.sp-next-l,.sp-next-d,.sp-foot,.rp-weak-l,.rl-check-l,.s,.rl-unit-g,.rl-sec-l,.rp-rank-s,.wf140-cur__step,.wf140-cur__count,dt,.g101-count,.g101-daily-lead,.g101-mark,.g101-icon-button,.g101-mission-reward,.g101-mission-foot,.g101-bonus,.g101-tile-detail,.g101-note),html.shell20 #app .g101-page span:not([class]){color:var(--d-muted)!important;}
html.shell20 #app .tts-play{color:var(--d-ink)!important;}
html.shell20 #app :is(.v2-bar,.g101-mark,.g101-label){background:var(--d-panel)!important;}
html.shell20 #app .n140-lv{color:var(--d-ink)!important;background:var(--d-raised)!important;}
html.shell20 #app hr{display:none!important;}
html.shell20 #app a.btn{border-radius:var(--d-control)!important;}
/* Legacy palette scopes now reference the shared roles, including dark mode. */
html.shell20 :is(.rt-pal,.ob-root,.rl-page,.g101-page){
 --ob-canvas:var(--d-bg)!important;--ob-p1:var(--d-surface)!important;--ob-p2:var(--d-raised)!important;--ob-p3:var(--d-panel)!important;
 --ob-ink:var(--d-ink)!important;--ob-muted:var(--d-muted)!important;--ob-brass:var(--d-accent)!important;--ob-on-brass:var(--d-on)!important;--ob-secondary:var(--d-you)!important;--ob-on-secondary:var(--d-you-on)!important;--ob-track:var(--d-ring)!important;
}
html.shell20{
 --n140-sky:var(--s20-play-mark);--n140-sky-bg:var(--s20-play-bg);--n140-sky-ink:var(--s20-play);
 --n140-mint:var(--s20-listen-mark);--n140-mint-bg:var(--s20-listen-bg);--n140-mint-ink:var(--s20-listen);
 --n140-them-bg:var(--d-surface);--n140-them-ink:var(--d-ink);--n140-you-bg:var(--d-you);--n140-you-ink:var(--d-you-on);
}
html.shell20 #app .rin140-accent{background:var(--d-surface)!important;color:var(--d-muted)!important;}
html.shell20 #app .ra-progress{background:var(--d-raised)!important;}
html.shell20 #app .rl-hair{display:none!important;}
html.shell20 #app :is(.rp-ex-s,.rp-detail,.rp-slow,.rl-rule-l,.rl-drill-tip,.rl-steps-s),html.shell20 #app .rp-ex span:not([class]){color:var(--d-muted)!important;}
html.shell20 #app .rl-cap-warm{background:var(--d-raised)!important;color:var(--d-ink)!important;}
html.shell20 body[data-shell-practice="1"] #app .ra-q{font-size:var(--d-title)!important;}
html.shell20 body[data-shell-practice="1"] #app .rp-ex-en{font-size:var(--d-section)!important;}
html.shell20 body[data-shell-practice="1"] #app .rp-ex .rp-ex-en{font-size:var(--d-section)!important;}
/* 122b: the 515f0ccc lifted material, round mark and section cover vocabulary. */
html.shell20{--d-card-shadow:0 4px 12px rgb(36 32 31 / .10);--d-press-shadow:0 2px 6px rgb(36 32 31 / .16);--d-gutter:20px;}
html.shell20 #app{padding-inline:var(--d-gutter)!important;}
html.shell20 #app :is(.s20-heading h1,.h20-page>header h1){margin-inline:0!important;}
html.shell20 #app .d122-skill-sections{display:grid;gap:var(--d-s7);min-width:0;}
html.shell20 #app .d122-skill{min-width:0;}
html.shell20 #app .d122-skill-head{display:flex;align-items:center;justify-content:space-between;gap:var(--d-s3);margin-bottom:var(--d-s3);}
html.shell20 #app .d122-skill-head h2{display:flex;align-items:center;gap:var(--d-s3);margin:0;}
html.shell20 #app .d122-skill-mark{width:16px;height:16px;background:var(--skill-mark);border-radius:0!important;flex:none;}
html.shell20 #app .d122-skill-head .s20-textbutton{color:var(--d-accent);padding:var(--d-s2) 0;}
html.shell20 #app .d122-material-track{display:flex;gap:var(--d-s4);overflow-x:auto;scroll-snap-type:x proximity;padding:var(--d-s1) var(--d-s1) var(--d-s4);margin-inline:calc(-1 * var(--d-s1));}
html.shell20 #app .d122-material{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:var(--d-s3);flex:0 0 240px;min-width:0;min-height:172px;padding:var(--d-s5)!important;background:var(--d-surface)!important;color:var(--d-ink)!important;box-shadow:var(--d-card-shadow)!important;scroll-snap-align:start;transition:transform .12s,box-shadow .12s;}
html.shell20 #app .d122-material:active{transform:translateY(2px);box-shadow:var(--d-press-shadow)!important;}
html.shell20 #app .d122-material-mark{display:block;width:32px;height:32px;background:var(--skill-mark);border-radius:var(--d-round)!important;}
html.shell20 #app .d122-material strong{font-size:var(--d-title)!important;line-height:1.5;}
html.shell20 #app .d122-material .s20-meta{margin:0;color:var(--d-muted);font-weight:var(--d-medium)!important;}
html.shell20 #app .d122-resume{display:grid;gap:var(--d-s3);}
html.shell20 #app .d122-resume h2{margin:0;}
html.shell20 #app .d122-resume .d122-material{min-height:0;display:grid;grid-template-columns:32px 1fr;align-items:center;}
html.shell20 #app .d122-resume .s20-meta{grid-column:2;}
/* One content gutter on home, ordinary screens and the full-height chat. */
html.shell20 body[data-route=coachroom] #app{padding:0!important;}
html.shell20 #app .c20-room{max-width:960px;margin-inline:auto;}
html.shell20 #app :is(.c20-header,.c20-log,.c20-dock){padding-inline:var(--d-gutter)!important;}
html.shell20 #app .c20-log{padding-block:var(--d-s6);justify-content:flex-start;gap:var(--d-s6);}
html.shell20 #app .c20-row{padding:0;margin:0;gap:var(--d-s2);}
html.shell20 #app .c20-column{max-width:75%;}
html.shell20 #app .c20-bubble{padding:var(--d-s4);}
html.shell20 #app .c20-text{line-height:1.65;}
html.shell20 #app .c20-date{margin:0;}
html.shell20 #app .c20-preview{margin:var(--d-s4) 0 0;min-width:0;border-radius:0!important;background:var(--d-bg)!important;box-shadow:none!important;}
html.shell20 #app .c20-preview[data-card=lesson]{border-radius:0!important;}
html.shell20 #app .c20-preview-body{padding:var(--d-s4);}
html.shell20 #app .c20-preview .c20-link{min-height:44px;}
html.shell20 #app .c20-actions{display:flex;flex-direction:column;margin-top:var(--d-s3);align-items:flex-start;}
html.shell20 #app .c20-action{min-height:44px;padding:var(--d-s2) var(--d-s4);background:var(--d-raised)!important;color:var(--d-ink)!important;}
html.shell20 #app .c20-replies{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:var(--d-s2);padding-block:var(--d-s2);max-width:100%;}
html.shell20 #app .c20-chip{flex:none;white-space:nowrap;padding:var(--d-s2) var(--d-s3);}
html.shell20 #app .c20-dock{padding-top:var(--d-s2);}
html.shell20 #app .p20-home .rt-caption{display:flex;align-items:center;justify-content:center;gap:var(--d-s3);}
html.shell20 #app .p20-home .rt-count{display:flex;align-items:center;gap:var(--d-s2);line-height:1;margin:0;}
html.shell20 #app .p20-home :is(.rt-streak,[data-p20-home-tag=shield]){display:inline-flex;align-items:center;justify-content:center;gap:var(--d-s2);height:44px;min-height:44px;padding:var(--d-s2) var(--d-s3);box-sizing:border-box;margin:0;line-height:1;}
html.shell20 #app .p20-home .rt-count-t{margin:0;line-height:1;}
html.shell20 #app .s20-group .s20-row{color:var(--d-ink)!important;}
html.shell20 #raTabs .ra-tab>.s20-icon{position:relative;overflow:visible;}
html.shell20 #raTabs .c20-badge{display:grid;place-items:center;position:absolute;right:-12px;top:-6px;width:24px;height:24px;min-width:24px;padding:0;border-radius:var(--d-round)!important;background:var(--d-accent)!important;color:var(--d-on)!important;font-size:var(--d-label)!important;line-height:1!important;}
html.shell20 #app .d122-material>span.d122-material-mark{width:32px!important;height:32px!important;min-height:32px;flex:0 0 32px!important;padding:0!important;margin:0!important;background:var(--skill-mark)!important;border-radius:var(--d-round)!important;}
html.shell20 #app .d122-material-track{margin-inline:0;padding-inline:0;}
html.shell20 #app .c20-part+.c20-part{margin-top:var(--d-s4);}
html.shell20 #app .c20-room .k52-clamp>.c20-text{display:block!important;-webkit-line-clamp:unset!important;overflow:visible!important;}
/* Legacy subpage headings used a 56px inset and centered text. */
html.shell20 #app .page-head h1{margin-inline:0!important;justify-content:flex-start!important;text-align:left!important;}
/* 123: 515f0ccc physical controls, one row and custom form vocabulary. */
html.shell20{
 --d-primary-edge:#730500;--d-secondary:#FFD09A;--d-secondary-edge:#CC9D67;--d-secondary-on:#24201F;
 --d-button-shadow:0 5px 0 var(--d-primary-edge);--d-secondary-shadow:0 4px 0 var(--d-secondary-edge);
 --d-badge:#FF3B30;--d-badge-on:#24201F;
 --d-tab-shadow:0 4px 12px rgb(36 32 31 / .10);
}
@media(prefers-color-scheme:dark){html.shell20{
 --d-accent:#E0604A;--d-on:#1A1615;--d-primary-edge:#AD2D17;--d-secondary:#E6B075;--d-secondary-edge:#B37D42;--d-secondary-on:#1A1615;
 --d-card-shadow:0 4px 12px rgb(0 0 0 / .34);--d-tab-shadow:var(--d-card-shadow);--d-badge:#FF453A;
}}
@layer d123-controls{
html.shell20 :is(#app,dialog,.rt-bar) :is(.r18-google,.btn,.rt-chunky,.rl-chunk,.rl-stage,.h20-action,.h20-select,.c20-button,.c20-action,.c20-chip,.s20-action,:where(button).h20-link,[data-d123-button]){
 min-height:48px!important;min-width:44px;box-sizing:border-box;padding:12px 20px!important;margin-bottom:5px;
 border-radius:var(--d-control)!important;background:var(--d-secondary)!important;color:var(--d-secondary-on)!important;
 box-shadow:var(--d-secondary-shadow)!important;translate:0 0;text-align:center;line-height:1.5!important;
 transition:transform .12s,box-shadow .12s;cursor:pointer;
}
html.shell20 body :is(#app,dialog,.rt-bar) :is([data-primary="1"],.h20-action,.s20-action,.c20-button),html.shell20 body .rt-bar #rt-primary{
 min-height:58px!important;background:var(--d-accent)!important;color:var(--d-on)!important;box-shadow:var(--d-button-shadow)!important;
}
html.shell20 :is(#app,dialog,.rt-bar) :is(.r18-google,.btn,.rt-chunky,.rl-chunk,.rl-stage,.h20-action,.h20-select,.c20-button,.c20-action,.c20-chip,.s20-action,:where(button).h20-link,[data-primary="1"],[data-d123-button]):active:not(:disabled):not([aria-disabled=true]){
 translate:0 4px!important;box-shadow:0 0 0 var(--d-primary-edge)!important;
}
html.shell20 #app .c20-composer [data-primary="1"]{min-height:44px!important;padding:9px!important;}
html.shell20 :is(#app,dialog,.rt-bar) :is(button,a):focus-visible{outline:3px solid var(--d-accent)!important;outline-offset:4px!important;filter:none!important;}
html.shell20 #app :is(.c20-bubble,.d122-bubble,.s20-profile,.s20-stats>div,.s20-chart,.h20-card,.card,.rowlist){box-shadow:var(--d-card-shadow)!important;}
html.shell20 #app .c20-preview{box-shadow:none!important;}
html.shell20 #app .c20-actions{align-items:stretch;}
html.shell20 #app .c20-action{width:100%;min-height:52px!important;}
html.shell20 #app .c20-replies{padding-bottom:12px;}
html.shell20 #app .c20-chip{border-radius:var(--d-round)!important;}
}
/* The pill itself is a surface, with filled marks and one selected surface. */
html.shell20 #raTabs{background:var(--d-surface)!important;box-shadow:var(--d-tab-shadow)!important;}
html.shell20 #raTabs .ra-tab[aria-current=page]{background:var(--d-raised)!important;}
html.shell20 #raTabs .ra-tab svg{fill:currentColor!important;stroke:none!important;}
html.shell20 #raTabs .ra-tab[data-tab=coachroom] svg circle{fill:var(--d-surface)!important;}
html.shell20 #raTabs .ra-tab[data-tab=coachroom][aria-current=page] svg circle{fill:var(--d-raised)!important;}
html.shell20 #raTabs .c20-badge{background:var(--d-badge)!important;color:var(--d-badge-on)!important;}
/* Every navigation row shares a 64px minimum and 16px / 20px content insets. */
html.shell20 #app :is(.s20-group>.s20-row,.s20-group>.h20-link,.rowlist>.row,.h20-link.d123-list-row){
 display:flex!important;align-items:center;gap:12px;min-height:64px!important;box-sizing:border-box;
 padding:16px 20px!important;background:var(--d-surface)!important;color:var(--d-ink)!important;
 border-radius:var(--d-card)!important;text-decoration:none;box-shadow:var(--d-card-shadow)!important;
}
html.shell20 #app .s20-group{display:grid;gap:12px;background:transparent!important;}
html.shell20 #app .d123-row-label{flex:1;min-width:0;line-height:1.5;}
html.shell20 #app .d123-chevron{flex:none;color:var(--d-muted)!important;}
html.shell20 #app .d123-row-icon{width:24px!important;height:24px!important;min-width:24px;padding:0!important;color:var(--d-accent)!important;background:transparent!important;}
html.shell20 #app .h20-week-rings .h20-ring{width:40px;height:40px;flex:none;position:relative;}
html.shell20 #app .h20-week-rings .h20-ring small{position:absolute;inset:0;display:grid;place-items:center;white-space:nowrap;margin:0;color:var(--d-ink)!important;font-size:var(--d-caption)!important;}
html.shell20 #app .h20-week-rings{display:flex;justify-content:space-between;gap:4px;}
/* Semantic native inputs retain keyboard/AT behavior, app surfaces supply the visuals. */
html.shell20 :is(#app,dialog) :is(input,select,textarea){appearance:none;-webkit-appearance:none;background:var(--d-raised)!important;color:var(--d-ink)!important;min-height:44px;box-sizing:border-box;padding:12px 16px;border-radius:var(--d-control)!important;font:inherit;}
html.shell20 :is(#app,dialog) select{padding-right:44px;background-image:linear-gradient(45deg,transparent 50%,var(--d-muted) 50%),linear-gradient(135deg,var(--d-muted) 50%,transparent 50%)!important;background-size:6px 6px!important;background-position:calc(100% - 22px) 50%,calc(100% - 16px) 50%!important;background-repeat:no-repeat!important;}
html.shell20 :is(#app,dialog) input[type=checkbox]{position:relative;flex:none;display:inline-block;width:52px!important;min-width:52px;height:32px!important;min-height:32px;padding:0!important;margin:6px 0;border-radius:var(--d-round)!important;background:var(--d-muted)!important;cursor:pointer;}
html.shell20 :is(#app,dialog) input[type=checkbox]::after{content:'';position:absolute;top:4px;left:4px;width:24px;height:24px;background:var(--d-bg);border-radius:var(--d-round);transition:transform .12s;}
html.shell20 :is(#app,dialog) input[type=checkbox]:checked{background:var(--d-accent)!important;}
html.shell20 :is(#app,dialog) input[type=checkbox]:checked::after{transform:translateX(20px);background:var(--d-on);}
html.shell20 :is(#app,dialog) input[type=radio]{width:44px!important;height:44px!important;min-width:44px;padding:10px!important;margin:0;background:var(--d-raised)!important;border-radius:var(--d-round)!important;cursor:pointer;}
html.shell20 :is(#app,dialog) input[type=radio]:checked{background:radial-gradient(circle,var(--d-accent) 0 8px,var(--d-raised) 9px 100%)!important;}
html.shell20 :is(#app,dialog) input[type=range]{width:100%;min-width:44px;height:44px;padding:0;background:transparent!important;cursor:pointer;}
html.shell20 :is(#app,dialog) input[type=range]::-webkit-slider-runnable-track{height:8px;border-radius:var(--d-round);background:var(--d-panel);}
html.shell20 :is(#app,dialog) input[type=range]::-webkit-slider-thumb{appearance:none;width:28px;height:28px;margin-top:-10px;border-radius:var(--d-round);background:var(--d-accent);box-shadow:var(--d-card-shadow);}
html.shell20 :is(#app,dialog) input[type=range]::-moz-range-track{height:8px;border-radius:var(--d-round);background:var(--d-panel);}
html.shell20 :is(#app,dialog) input[type=range]::-moz-range-thumb{width:28px;height:28px;border:0;border-radius:var(--d-round);background:var(--d-accent);}
html.shell20 #app :is(.h20-field,.rin-sound-toggle,.rin-sound-track){display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:64px;padding:16px 20px;box-sizing:border-box;background:var(--d-surface);border-radius:var(--d-card)!important;}
html.shell20 #app :is(.h20-field,.rin-sound-toggle) input[type=checkbox]{order:2;}
html.shell20 #app .rin-sound-settings>label:not(.rin-sound-toggle){display:grid;grid-template-columns:1fr auto;gap:8px;padding:16px 20px;}
html.shell20 #app .rin-sound-settings>label:not(.rin-sound-toggle)>input{grid-column:1/-1;grid-row:2;}
html.shell20 #app .rin-sound-track{justify-content:flex-start;}
html.shell20 #app :is(.c20-speak,.c20-link,.s20-chart-empty,.h20-close,.c20-close){min-width:44px;min-height:44px;}
html.shell20 #app :is(.en,.c20-en,.ra-answer__en,.rp-ex-en){word-break:normal!important;overflow-wrap:normal!important;}
@media(prefers-reduced-motion:reduce){html.shell20 :is(#app,dialog,.rt-bar) *{transition:none!important;}}
/* Surface color and text-link color are separate roles in the original dark palette. */
html.shell20{--d-link:#A63828;--s20-accent:var(--d-link);--h20-accent:var(--d-link);--k-brick:var(--d-link);--ra-brass:var(--d-link);--c20-accent:var(--d-link);--d-row-height:60px;--d-row-padding:8px 16px;}
@media(prefers-color-scheme:dark){html.shell20{--d-link:#FFB4A3;}}
@layer d123-controls{
 html.shell20 :is(#app,dialog) :is(a,button,input,select,textarea,summary,[role=button]){min-width:44px!important;min-height:44px!important;box-sizing:border-box;}
 html.shell20 :is(#app,dialog) a:not(.row):not(.s20-row):not(.d122-material){display:inline-flex;align-items:center;}
 html.shell20 :is(#app,dialog) :is(.r18-google,.btn,.rt-chunky,.rl-chunk,.rl-stage,.h20-action,.h20-select,.c20-button,.c20-action,.c20-chip,.s20-action,[data-d123-button]) :is(span,small,strong){color:inherit!important;}
 html.shell20 :is(#app,dialog) :is(.c20-link,.c20-danger,.ra-legal,.rp-weak-h,.rl-check-t){color:var(--d-ink)!important;}
 html.shell20 :is(#app,dialog) :is(.h20-link,.p20-chip,.rc-eyebrow,.rc-link,.g101-remaining,.h20-challenge-check,.h20-challenge b){color:var(--d-link)!important;}
 html.shell20 :is(#app,dialog) .c20-composer [data-primary="1"]{box-shadow:var(--d-button-shadow)!important;}
 html.shell20 :is(#app,dialog) label:has(input[type=checkbox]){min-height:44px;}
 html.shell20 :is(#app,dialog) input[type=checkbox]{min-height:32px!important;}
 html.shell20 #raTabs .ra-tab[aria-current=page]{color:var(--d-link)!important;}
 html.shell20 #app :is(.s20-group>.s20-row,.s20-group>.h20-link,.rowlist>.row,.h20-link.d123-list-row){min-height:var(--d-row-height)!important;padding:var(--d-row-padding)!important;}
 html.shell20 #app :is(.s20-group>.s20-row,.s20-group>.h20-link,.rowlist>.row,.h20-link.d123-list-row)>:is(.d123-row-label,.row-main){min-height:44px;display:flex;flex-direction:column;justify-content:center;}
 html.shell20 #app .rowlist>.row :is(.row-title,.row-sub){margin:0!important;line-height:1.25!important;}
 html.shell20 #app .rowlist>.row .row-sub{font-size:var(--d-caption)!important;}
 html.shell20 #app :is(.row-main[role=button],.c20-recipient,.n140-segb){min-height:44px!important;}
 html.shell20 #app .k52-clamp__body{display:block!important;-webkit-line-clamp:unset!important;max-height:none!important;overflow:visible!important;}
}
@layer d123-controls{
 html.shell20 #app .c20-action{min-height:52px!important;}
 html.shell20 #app .c20-composer [data-primary="1"]{height:44px!important;min-height:44px!important;padding:9px!important;}
}
@layer d123-controls{
 html.shell20 #app :is(.t101-engraving,.rin-footer,.rin-sidebar-caption){color:var(--d-muted)!important;-webkit-text-fill-color:currentColor!important;text-shadow:none!important;}
 html.shell20 #app .t101-engraving{background:none!important;}
 html.shell20 #app :is(.rin-coach-bubble,.rin-choice-face,.rin-choice-symbol){background:var(--d-raised)!important;}
 html.shell20 #app .rin-choice-symbol{color:var(--d-link)!important;}
 html.shell20 #app :is(summary,th,.g101-label){color:var(--d-ink)!important;}
 html.shell20 #app .rc-bubble__name{color:var(--d-link)!important;}
 html.shell20 #app .rp-card-en{font-size:var(--d-section)!important;}
}
@layer d123-controls{
 html.shell20 :is(#app,dialog,.rt-bar) :is(.r18-google,.btn,.rt-chunky,.rl-chunk,.rl-stage,.h20-action,.h20-select,.c20-button,.c20-action,.c20-chip,.s20-action,[data-primary="1"],[data-d123-button]):active:not(:disabled):not([aria-disabled=true]){transform:var(--d123-rest-transform,none)!important;translate:0 4px!important;}
 html.shell20 #raTabs .ra-tab svg{fill:currentColor!important;stroke:none!important;}
}
@layer d123-controls{
 /* Surface controls own the ink of their whole label, including older nested captions. */
 html.shell20 body :is(#app,dialog,.rt-bar) :is(.r18-google,.btn,.rt-chunky,.rl-chunk,.rl-stage,.h20-action,.h20-select,.c20-button,.c20-action,.c20-chip,.s20-action,:where(button).h20-link,[data-d123-button]){color:var(--d-secondary-on)!important;}
 html.shell20 body :is(#app,dialog,.rt-bar) :is([data-primary="1"],.h20-action,.s20-action,.c20-button),html.shell20 body .rt-bar #rt-primary{color:var(--d-on)!important;}
 html.shell20 body :is(#app,dialog,.rt-bar) :is(.r18-google,.btn,.rt-chunky,.rl-chunk,.rl-stage,.h20-action,.h20-select,.c20-button,.c20-action,.c20-chip,.s20-action,[data-primary="1"],[data-d123-button]) *{color:inherit!important;}
 html.shell20 body #app .g101-start{background:transparent!important;color:inherit!important;}
 html.shell20 body #app .d123-row-label{color:inherit!important;}
}
@layer d123-controls{
 html.shell20 body #app :is(.g101-label.g101-label,.hc-tag.hc-tag){background:var(--d-raised)!important;color:var(--d-ink)!important;}
 html.shell20 body #app .h20-challenge{color:var(--d-ink)!important;}
 html.shell20 body #app .s20-chart-empty{color:var(--d-link)!important;}
 html.shell20 body #app .s20-row:not(.s20-action){color:var(--d-ink)!important;}
 html.shell20 body #app .s20-row:not(.s20-action) :is(.row-title,.chev){color:inherit!important;}
}
@layer d123-controls{
 html.shell20 body #app .rowlist>.row{color:var(--d-ink)!important;}
 html.shell20 body #app .rowlist>.row :is(.row-title,.chev){color:inherit!important;}
 html.shell20 body #app>.h20-page>.h20-settings>h2:first-child{display:none!important;}
}
@layer d123-controls{
 html.shell20 :is(#app.ob-root,#app .ob-root,#app .ob-shell){--ob-ink:var(--d-ink)!important;--ob-muted:var(--d-muted)!important;--ob-accent:var(--d-raised)!important;color:var(--d-ink)!important;}
 html.shell20 #app .ob-formcard{background:var(--d-surface)!important;border-radius:var(--d-card)!important;box-shadow:var(--d-card-shadow)!important;}
}
@layer d123-controls{
 html.shell20 body #app .ob-main{min-height:58px!important;background:var(--d-accent)!important;color:var(--d-on)!important;box-shadow:var(--d-button-shadow)!important;}
 html.shell20 body #app .ob-main *{color:inherit!important;}
 html.shell20 body #app .r18-or{color:var(--d-muted)!important;}
}
@layer d123-controls{
 html.shell20 #app .whr-label{color:var(--d-muted)!important;font-size:var(--d-caption)!important;font-weight:var(--d-medium)!important;}
}
@layer d123-controls{
 /* The composer supplies the input surface; its text field has no nested fill. */
 html.shell20 #app .c20-input{background:transparent!important;}
}
@layer d123-controls{
 html.shell20 :is(#app,dialog) :is(input,textarea)::placeholder{color:var(--d-muted)!important;opacity:1!important;}
}
@layer d123-controls{
 html.shell20 #app .h20-equal-action{width:100%!important;min-height:58px!important;}
}
@layer d123-controls{
 html.shell20 #raTop .ra-brand{font-size:var(--d-title)!important;}
 html.shell20 #raTop .k52-gear{width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;box-sizing:border-box;}
 html.shell20 :is(#raTop,#raTabs) a:focus-visible{outline:3px solid var(--d-accent)!important;outline-offset:4px!important;}
}
