*{box-sizing:border-box}html{scroll-behavior:smooth}html[data-theme=pixel]{--bg:#fff8fb;--surface:#fff;--surface2:#fff0f7;--ink:#20234d;--muted:#686b89;--primary:#e94d9b;--secondary:#7b67e8;--accent:#5aaaf7;--line:#ead8e9;--shadow:0 16px 36px rgba(83,55,121,.12);--hero-filter:saturate(1.05)}html[data-theme=garden]{--bg:#f7f2df;--surface:#fffaf0;--surface2:#edf0d7;--ink:#294534;--muted:#587060;--primary:#5c914e;--secondary:#ae8137;--accent:#7ba668;--line:#d5c8a4;--shadow:0 16px 36px rgba(67,76,43,.12);--hero-filter:hue-rotate(58deg) saturate(.65) brightness(1.07)}html[data-theme=night]{--bg:#071126;--surface:#111c36;--surface2:#182543;--ink:#f7f4ff;--muted:#bdc8e5;--primary:#ff65ba;--secondary:#8976ff;--accent:#69c8ff;--line:#34466c;--shadow:0 18px 44px rgba(0,0,0,.36);--hero-filter:saturate(1.05) brightness(.7)}body{margin:0;background:radial-gradient(circle at 8% -4%,color-mix(in srgb,var(--primary) 15%,transparent),transparent 35%),var(--bg);color:var(--ink);font-family:Inter,ui-rounded,"Segoe UI",system-ui,sans-serif;min-height:100vh}.skip-link{position:fixed;top:-100px;left:12px;z-index:9999;background:var(--ink);color:var(--surface);padding:10px;border-radius:10px}.skip-link:focus{top:10px}.topbar{height:64px;position:fixed;inset:0 0 auto;z-index:1000;display:flex;align-items:center;gap:14px;padding:8px 16px;background:color-mix(in srgb,var(--surface) 92%,transparent);border-bottom:1px solid var(--line);backdrop-filter:blur(16px)}.brand{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--ink);min-width:max-content}.brand img{width:44px;height:44px;object-fit:contain}.brand b{display:block;font-size:1rem}.brand small{display:block;color:var(--primary);font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.desktop-nav{display:flex;align-items:center;gap:3px;overflow:auto;scrollbar-width:none}.desktop-nav a{display:flex;align-items:center;gap:5px;text-decoration:none;color:var(--ink);padding:8px 9px;border-radius:11px;font-size:.78rem;font-weight:800;white-space:nowrap}.desktop-nav a:hover,.desktop-nav a.active{background:var(--surface2);color:var(--primary)}.top-actions{margin-left:auto;display:flex;gap:7px}.icon-button,.language-switch{width:40px;height:40px;border:1px solid var(--line);background:var(--surface);border-radius:12px;color:var(--ink);display:grid;place-items:center;text-decoration:none;font-weight:900;cursor:pointer}.menu-button{display:none}.app-layout{padding-top:64px;min-height:100vh}.sidebar{position:fixed;left:0;top:64px;bottom:0;width:232px;z-index:800;padding:14px 10px 24px;background:color-mix(in srgb,var(--surface) 96%,transparent);border-right:1px solid var(--line);overflow:auto}.sidebar-head{display:none}.nav-label{padding:12px 12px 6px;font-size:.67rem;font-weight:950;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}.side-link{display:flex;align-items:center;gap:10px;padding:10px 11px;margin:2px 0;border-radius:13px;text-decoration:none;color:var(--ink);font-size:.83rem;font-weight:800}.side-link:hover,.side-link.active{background:var(--surface2);color:var(--primary)}.nav-icon{width:25px;text-align:center;font-size:1.05rem}.study-tip{margin:16px 5px 0;padding:13px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 13%,var(--surface)),var(--surface));font-size:.75rem;color:var(--muted)}.study-tip p{margin:5px 0 0;line-height:1.45}.main-content{margin-left:232px;padding:22px;min-width:0}.hero{max-width:1260px;margin:0 auto 20px;position:relative;min-height:410px;border-radius:28px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow);background:var(--surface)}.hero-scene{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:var(--hero-filter)}.hero-overlay{position:absolute;inset:0;display:flex;align-items:center;padding:38px;background:linear-gradient(90deg,rgba(255,248,252,.97) 0%,rgba(255,248,252,.83) 42%,transparent 72%)}html[data-theme=night] .hero-overlay{background:linear-gradient(90deg,rgba(7,17,38,.97),rgba(7,17,38,.82) 44%,transparent 75%)}.hero-copy{position:relative;z-index:2;max-width:540px}.eyebrow,.section-kicker{display:block;color:var(--primary);font-size:.72rem;font-weight:950;letter-spacing:.11em}.hero h1{font-size:clamp(3rem,7vw,5.8rem);line-height:.82;letter-spacing:-.07em;margin:12px 0 18px;text-shadow:0 3px white}.hero h1 strong{color:var(--primary)}html[data-theme=night] .hero h1{text-shadow:0 3px #081126}.hero p{font-size:1.05rem;line-height:1.55;color:var(--muted);max-width:500px}.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 17px;border-radius:13px;text-decoration:none;font-weight:900}.primary-button{background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff;box-shadow:0 10px 20px color-mix(in srgb,var(--primary) 25%,transparent)}.secondary-button{background:var(--surface);border:1px solid var(--line);color:var(--ink)}.hero-character{position:absolute;right:7%;bottom:-3%;width:min(26vw,280px);filter:drop-shadow(0 18px 20px rgba(32,20,60,.22))}.dashboard-grid{max-width:1260px;margin:auto;display:grid;grid-template-columns:1fr 2fr 1fr;gap:16px}.dashboard-grid article,.all-tools,.page-header,.workspace{background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow)}.quest-card,.quick-card,.progress-card{padding:20px}.quest-card{display:flex;flex-direction:column;justify-content:space-between}.dashboard-grid h2{font-size:1.15rem;margin:10px 0}.dashboard-grid p{color:var(--muted);line-height:1.5;font-size:.88rem}.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:14px}.quick-grid a{padding:13px 9px;text-align:center;border:1px solid var(--line);background:var(--surface2);border-radius:15px;text-decoration:none;color:var(--ink)}.quick-grid span{display:block;font-size:1.65rem}.quick-grid b{display:block;font-size:.75rem;margin-top:6px}.quick-grid small{display:none}.path-list{display:grid;gap:13px;margin-top:15px}.path-list>div{display:flex;gap:10px}.path-list>div>b{width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff}.path-list span{display:flex;flex-direction:column}.path-list small{color:var(--muted);line-height:1.4}.all-tools{max-width:1260px;margin:18px auto 0;padding:22px}.section-heading h2{margin:7px 0 18px}.tool-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.tool-card{display:flex;align-items:center;gap:13px;padding:15px;border:1px solid var(--line);background:var(--surface2);border-radius:16px;text-decoration:none;color:var(--ink);transition:.16s}.tool-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.tool-icon{width:46px;height:46px;border-radius:14px;background:var(--surface);display:grid;place-items:center;font-size:1.45rem}.tool-card b{display:block}.tool-card p{margin:4px 0 0;color:var(--muted);font-size:.78rem;line-height:1.35}.arrow{margin-left:auto;color:var(--primary);font-size:1.2rem}footer{max-width:1260px;margin:18px auto 0;text-align:center;padding:18px;color:var(--muted)}.page-header{max-width:1280px;margin:0 auto 16px;padding:22px;display:grid;grid-template-columns:1fr minmax(260px,420px);gap:20px;align-items:center;background:linear-gradient(135deg,var(--surface),var(--surface2))}.page-header h1{font-size:clamp(1.8rem,4vw,3rem);margin:7px 0}.page-header p{margin:0;color:var(--muted)}.page-help{border-left:1px solid var(--line);padding-left:20px}.page-help p{font-size:.83rem;margin-top:5px;line-height:1.45}.workspace{max-width:1280px;margin:auto;overflow:hidden}.workspace-bar{height:47px;display:flex;align-items:center;justify-content:space-between;padding:0 13px;border-bottom:1px solid var(--line);background:var(--surface2);font-size:.75rem;font-weight:800;color:var(--muted)}.workspace-bar>div{display:flex;align-items:center;gap:7px}.workspace-bar button{width:31px;height:31px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);cursor:pointer}.status-dot{width:8px;height:8px;background:#40b86a;border-radius:50%;box-shadow:0 0 0 4px color-mix(in srgb,#40b86a 15%,transparent)}#tool-frame{display:block;width:100%;height:calc(100vh - 190px);min-height:660px;border:0;background:#fff}.theme-panel{display:none;position:fixed;z-index:1300;right:14px;top:72px;width:285px;padding:12px;border:1px solid var(--line);border-radius:19px;background:var(--surface);box-shadow:var(--shadow)}.theme-panel.open{display:grid;gap:8px}.theme-title{display:flex;justify-content:space-between;align-items:center;padding:4px}.theme-title button{border:0;background:none;font-size:1.4rem;color:var(--ink)}.theme-panel>button{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:13px;background:var(--surface2);color:var(--ink);text-align:left;cursor:pointer}.theme-panel>button span{display:flex;flex-direction:column;flex:1}.theme-panel small{color:var(--muted)}.theme-panel em{opacity:0;font-style:normal;color:var(--primary)}.theme-panel>button.active em{opacity:1}.swatch{width:34px;height:34px;border-radius:10px}.swatch.pixel{background:linear-gradient(135deg,#ff87c4,#8b7aff)}.swatch.garden{background:linear-gradient(135deg,#7ba668,#f0d89b)}.swatch.night{background:linear-gradient(135deg,#071126,#ff65ba)}.mobile-tabs,.drawer-scrim{display:none}.not-found{text-align:center;max-width:600px;margin:80px auto;padding:40px}.not-found>span{font-size:5rem}.not-found h1{font-size:2.5rem}.not-found p{color:var(--muted)}@media(max-width:1180px){.desktop-nav a:nth-child(n+6){display:none}.dashboard-grid{grid-template-columns:1fr 2fr}.progress-card{grid-column:1/-1}.tool-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:800px){body{padding-bottom:76px}.topbar{height:58px;padding:6px 9px}.brand img{width:40px;height:40px}.brand span,.desktop-nav,.language-switch{display:none}.menu-button{display:grid}.app-layout{padding-top:58px}.main-content{margin-left:0;padding:10px}.sidebar{top:0;z-index:1200;width:min(88vw,330px);transform:translateX(-105%);transition:.22s;padding-top:10px;box-shadow:22px 0 45px rgba(0,0,0,.25)}.sidebar.open{transform:none}.sidebar-head{display:flex;align-items:center;gap:10px;padding:8px 7px 15px;border-bottom:1px solid var(--line)}.sidebar-head img{width:50px;height:50px;object-fit:contain}.sidebar-head div{display:flex;flex-direction:column}.sidebar-head small{color:var(--muted);font-size:.7rem}.close-button{margin-left:auto}.drawer-scrim{display:block;position:fixed;inset:0;z-index:1100;background:rgba(5,10,25,.48);opacity:0;pointer-events:none;transition:.2s}.drawer-scrim.open{opacity:1;pointer-events:auto}.mobile-tabs{position:fixed;display:grid;grid-template-columns:repeat(5,1fr);z-index:1050;left:7px;right:7px;bottom:max(7px,env(safe-area-inset-bottom));height:61px;padding:4px;border-radius:18px;background:color-mix(in srgb,var(--surface) 94%,transparent);border:1px solid var(--line);box-shadow:0 15px 35px rgba(20,15,55,.24);backdrop-filter:blur(15px)}.mobile-tabs a,.mobile-tabs button{border:0;background:none;display:flex;flex-direction:column;align-items:center;justify-content:center;text-decoration:none;color:var(--muted);font-weight:900}.mobile-tabs span{font-size:1.15rem}.mobile-tabs small{font-size:.58rem;max-width:64px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-tabs .active{color:var(--primary)}.hero{min-height:520px;border-radius:20px}.hero-overlay{align-items:flex-start;padding:25px 20px;background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 96%,transparent) 0%,color-mix(in srgb,var(--surface) 80%,transparent) 48%,transparent 74%)}.hero h1{font-size:3.8rem}.hero-character{width:190px;right:5%;bottom:0}.dashboard-grid{grid-template-columns:1fr}.progress-card{grid-column:auto}.quick-grid{grid-template-columns:repeat(2,1fr)}.tool-grid{grid-template-columns:1fr}.page-header{grid-template-columns:1fr;padding:17px}.page-help{border-left:0;border-top:1px solid var(--line);padding:14px 0 0}.workspace{border-radius:17px}#tool-frame{height:calc(100vh - 255px);min-height:570px}.theme-panel{left:9px;right:9px;top:65px;width:auto}}@media(max-width:450px){.hero{min-height:500px}.hero-actions{display:grid}.hero h1{font-size:3.25rem}.all-tools{padding:15px}.tool-card{padding:12px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* =============================================================================
   V2.9 Learning Workbench Enhancements
   =============================================================================
   Shared report controls, responsive dashboard tiles, and application-grade
   interaction details. Theme values continue to inherit from the core tokens.
   ============================================================================= */
.report-button,.workspace-download{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:38px;padding:.45rem .7rem;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--text);text-decoration:none;font-weight:800;box-shadow:var(--shadow-sm);transition:transform .18s ease,border-color .18s ease}.report-button:hover,.workspace-download:hover{transform:translateY(-1px);border-color:var(--accent)}
.dashboard-tile{position:relative;overflow:hidden;transition:min-height .2s ease,opacity .2s ease,transform .2s ease}.tile-toolbar{position:absolute;z-index:4;top:10px;right:10px;display:flex;gap:5px;opacity:.28;transition:opacity .18s ease}.dashboard-tile:hover .tile-toolbar,.dashboard-tile:focus-within .tile-toolbar{opacity:1}.tile-toolbar button{width:30px;height:30px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--text);cursor:pointer;font-weight:900}.dashboard-tile.is-dragging{opacity:.55;transform:scale(.985)}.dashboard-tile.is-minimized{min-height:64px!important;height:64px!important}.dashboard-tile.is-minimized>*:not(.tile-toolbar):not(.section-kicker){display:none!important}.dashboard-tile.is-minimized .section-kicker{display:block;margin:8px 70px 0 0}.workspace-download{width:34px;height:32px;min-height:0;padding:0}
@media(max-width:900px){.report-button span{display:none}.report-button{width:40px;padding:0}.tile-toolbar{opacity:1}.dashboard-grid{grid-template-columns:1fr!important}.dashboard-tile{grid-column:auto!important}.workspace{border-radius:16px}}
@media(max-width:600px){.page-header{gap:12px}.page-help{display:none}.workspace-bar{padding:9px 11px}.workspace-bar>div:first-child{font-size:.78rem}.report-button{display:none}}

/* =============================================================================
   V2.10 Home Dashboard — Prototype-aligned application shell
   =============================================================================
   Purpose: Align the public landing workbench with the approved 2026 prototype.
   Scope: Shared shell refinements and home-only dashboard composition.
   ============================================================================= */
.brand-mark{width:42px;height:42px;display:grid;place-items:center;font-size:2rem;filter:drop-shadow(0 4px 6px rgba(0,0,0,.08))}.brand b{line-height:.88;font-size:1.2rem}.brand small{text-transform:uppercase;letter-spacing:.06em;font-size:.6rem;margin-top:6px}.sidebar-collapse{position:absolute;right:-14px;top:14px;width:29px;height:29px;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--ink);font-size:1.25rem;z-index:2}.hero-stage{max-width:1390px;margin:0 auto 18px;display:grid;grid-template-columns:minmax(0,1fr) 105px;align-items:center;gap:8px}.hero-v210{min-height:390px;border-radius:28px}.hero-v210 .hero-scene{filter:var(--hero-filter);object-position:center}.hero-centered{justify-content:center;text-align:center;padding:34px;background:linear-gradient(90deg,rgba(255,250,245,.12),rgba(255,250,245,.55) 44%,rgba(255,250,245,.08))}.hero-centered .hero-copy{max-width:760px;margin:auto}.hero-v210 h1{font-size:clamp(3.4rem,6vw,6rem);line-height:.95;margin:10px 0 5px;text-shadow:0 2px 0 rgba(255,255,255,.6)}.hero-v210 h1 strong{color:var(--primary)}.jp-tagline{font-weight:900;font-size:clamp(1rem,1.7vw,1.5rem);letter-spacing:.18em}.hero-v210 p{max-width:650px;margin:12px auto 20px;font-size:1rem}.hero-v210 .hero-actions{justify-content:center}.mascot-stand{align-self:end;display:flex;align-items:flex-end;justify-content:center;padding-bottom:24px}.mascot-stand img{width:100%;height:auto;object-fit:contain;filter:drop-shadow(0 12px 12px rgba(33,45,35,.18))}.dashboard-grid-v210{max-width:1390px;grid-template-columns:1.05fr 1.45fr 1.05fr .9fr;gap:14px}.dashboard-grid-v210 article{min-height:280px;padding:18px;border-radius:22px}.tile-head{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding-bottom:12px}.tile-head h2{margin:0;font-size:1.05rem}.tiny-pill{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:7px 12px;font-size:.68rem;font-weight:800}.streak-row{display:flex;align-items:center;gap:16px;margin:10px 0 18px}.streak-flower{width:72px;height:72px;display:grid;place-items:center;font-size:1.65rem;font-weight:950;background:#ffbad8;clip-path:polygon(50% 0%,61% 29%,88% 12%,71% 39%,100% 50%,71% 61%,88% 88%,61% 71%,50% 100%,39% 71%,12% 88%,29% 61%,0 50%,29% 39%,12% 12%,39% 29%)}.streak-row div{display:flex;flex-direction:column}.streak-row small{margin-top:5px}.full-button{width:100%;justify-content:space-between}.quick-grid-v210{grid-template-columns:repeat(4,1fr);margin:14px 0}.quick-grid-v210 a{min-height:132px;display:flex;flex-direction:column;justify-content:center}.quick-grid-v210 span{font-size:2.2rem}.quick-grid-v210 b{font-size:.72rem}.stats-strip{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);padding-top:12px}.stats-strip>div{display:grid;grid-template-columns:auto 1fr;column-gap:7px;align-items:center;padding:0 9px;border-right:1px solid var(--line)}.stats-strip>div:last-child{border:0}.stats-strip span{grid-row:1/3;font-size:1.15rem}.stats-strip small{color:var(--muted);font-size:.58rem}.stats-strip b{font-size:.9rem}.path-list-v210{gap:8px}.path-list-v210>div{align-items:center;padding:10px;border-radius:13px;background:var(--surface2);position:relative}.path-list-v210>div>b{flex:none}.path-list-v210 em{margin-left:auto;font-style:normal;color:var(--primary);font-weight:950}.activity-list{display:grid}.activity-list>div{display:flex;gap:9px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.activity-list>div>span{width:35px;height:35px;border-radius:11px;background:var(--surface2);display:grid;place-items:center}.activity-list p{margin:0;display:flex;flex:1;flex-direction:column;line-height:1.25}.activity-list p b{font-size:.74rem}.activity-list p small{font-size:.66rem;color:var(--muted)}.activity-list time{font-size:.65rem;color:var(--muted)}.history-link{display:block;margin-top:13px;text-align:center;color:var(--ink);font-size:.68rem;font-weight:850;text-decoration:none}
@media(max-width:1250px){.hero-stage{grid-template-columns:1fr}.mascot-stand{display:none}.dashboard-grid-v210{grid-template-columns:1fr 1.4fr 1fr}.activity-card{grid-column:1/-1;min-height:auto!important}.activity-list{grid-template-columns:repeat(3,1fr);gap:12px}.activity-list>div{border:1px solid var(--line);padding:10px;border-radius:12px}.history-link{text-align:right}}
@media(max-width:930px){.hero-v210{min-height:420px}.hero-centered{align-items:center}.hero-v210 h1{font-size:clamp(3rem,11vw,5rem)}.dashboard-grid-v210{grid-template-columns:1fr!important}.activity-card{grid-column:auto}.activity-list{grid-template-columns:1fr}.sidebar-collapse{display:none}}
@media(max-width:600px){.hero-stage{margin-bottom:12px}.hero-v210{min-height:500px;border-radius:20px}.hero-centered{padding:26px 17px;background:linear-gradient(180deg,rgba(255,250,245,.9),rgba(255,250,245,.35) 70%,transparent)}.hero-v210 h1{font-size:3.25rem}.jp-tagline{letter-spacing:.08em}.hero-v210 .hero-actions{display:grid}.dashboard-grid-v210 article{min-height:auto}.quick-grid-v210{grid-template-columns:repeat(2,1fr)}.stats-strip{grid-template-columns:1fr;gap:8px}.stats-strip>div{border-right:0;border-bottom:1px solid var(--line);padding:7px 0}.stats-strip>div:last-child{border-bottom:0}}

/* =============================================================================
   V2.11 Approved Home Workbench Baseline
   =============================================================================
   Purpose:
       Locks the public dashboard to the approved prototype composition, uses
       the dedicated brand artwork, and keeps the mascot outside the hero art.
   ============================================================================= */
.brand{width:300px;max-width:23vw;height:52px}.brand-wordmark{display:block!important;width:100%!important;height:100%!important;object-fit:contain!important;object-position:left center}.hero-stage{grid-template-columns:minmax(0,1fr) 112px;gap:14px}.hero-v210{margin:0;max-width:none;min-height:385px}.mascot-stand{position:relative;overflow:visible;padding:0 0 20px}.mascot-stand img{width:118px;max-width:none;transform:translateX(-2px);filter:drop-shadow(0 12px 10px rgba(31,45,37,.22))}.hero-centered{background:linear-gradient(90deg,rgba(255,250,245,.08),rgba(255,250,245,.48) 48%,rgba(255,250,245,.06))}.hero-v210 h1{color:#173f30}.hero-v210 h1 strong{color:#4f9550}.dashboard-grid-v210{align-items:stretch}.dashboard-grid-v210 article{box-shadow:0 9px 26px color-mix(in srgb,var(--ink) 8%,transparent)}
html[data-theme=night] .hero-v210 h1{color:#f7f4ff}html[data-theme=night] .hero-v210 h1 strong{color:#72d590}html[data-theme=night] .hero-centered{background:linear-gradient(90deg,rgba(7,17,38,.08),rgba(7,17,38,.44) 48%,rgba(7,17,38,.08))}
@media(max-width:1380px){.brand{width:250px}.desktop-nav a{padding-inline:7px}.hero-stage{grid-template-columns:minmax(0,1fr) 96px}.mascot-stand img{width:102px}}
@media(max-width:1120px){.brand{width:220px}.hero-stage{grid-template-columns:1fr}.mascot-stand{display:none}}
@media(max-width:800px){.brand{width:175px;max-width:55vw;height:44px}.brand-wordmark{object-position:left center}.hero-v210{min-height:480px}}

/* ========================================================================
   V2.12 — STATIC PUBLIC HOME GUIDANCE
   ------------------------------------------------------------------------
   Removes account-style scoring from the public home page, strengthens hero
   copy contrast, and restores practical guidance cards and resource links.
   ======================================================================== */
.hero-subtitle{color:#294534!important;font-weight:650;text-shadow:0 1px 1px rgba(255,255,255,.85),0 0 12px rgba(255,255,255,.55)}
html[data-theme=pixel] .hero-subtitle{color:#343354!important}
html[data-theme=garden] .hero-subtitle{color:#294534!important}
html[data-theme=night] .hero-subtitle{color:#eef3ff!important;text-shadow:0 2px 10px rgba(0,0,0,.65)}
.dashboard-grid-static{max-width:1390px;margin:0 auto 18px;display:grid;grid-template-columns:1.05fr 2fr 1.05fr;gap:16px;align-items:stretch}
.guidance-card{min-height:292px;padding:22px;border:1px solid var(--line);border-radius:22px;background:var(--surface);box-shadow:0 9px 26px color-mix(in srgb,var(--ink) 8%,transparent)}
.guidance-card h2{margin:10px 0 12px;font-size:1.2rem;line-height:1.25}
.guidance-card>p{color:var(--muted);line-height:1.55;margin:0 0 20px}
.quest-guide{display:flex;flex-direction:column}.quest-guide .full-button{margin-top:auto}
.quick-grid-static{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:17px}
.quick-grid-static a{min-height:112px;padding:13px 8px;border:1px solid var(--line);border-radius:16px;background:var(--surface2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;text-align:center;text-decoration:none;color:var(--ink);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.quick-grid-static a:hover{transform:translateY(-2px);border-color:var(--primary);box-shadow:0 8px 18px color-mix(in srgb,var(--primary) 14%,transparent)}
.quick-grid-static span{font-size:2rem}.quick-grid-static b{font-size:.72rem;line-height:1.2}
.static-path-list{list-style:none;padding:0;margin:16px 0 0;display:grid;gap:10px}
.static-path-list li{display:flex;align-items:flex-start;gap:11px;padding:12px;border-radius:15px;background:var(--surface2)}
.static-path-list li>b{width:30px;height:30px;flex:none;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff}
.static-path-list span{display:flex;flex-direction:column;gap:3px}.static-path-list strong{font-size:.86rem}.static-path-list small{color:var(--muted);line-height:1.35}
.resource-catalog{max-width:1390px;margin:0 auto;padding:24px;border:1px solid var(--line);border-radius:22px;background:var(--surface);box-shadow:0 9px 26px color-mix(in srgb,var(--ink) 8%,transparent)}
.resource-heading{display:flex;justify-content:space-between;gap:20px;margin:8px 0 18px}.resource-heading h2{margin:0 0 5px;font-size:1.35rem}.resource-heading p{margin:0;color:var(--muted)}
.resource-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}
.resource-link{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:86px;padding:13px;border:1px solid var(--line);border-radius:16px;background:var(--surface2);text-decoration:none;color:var(--ink);transition:transform .16s ease,border-color .16s ease}
.resource-link:hover{transform:translateY(-2px);border-color:var(--primary)}.resource-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:var(--surface);font-size:1.4rem}.resource-link>span:nth-child(2){display:flex;flex-direction:column;gap:4px;min-width:0}.resource-link b{font-size:.85rem}.resource-link small{color:var(--muted);font-size:.69rem;line-height:1.35}.resource-link em{font-style:normal;color:var(--primary);font-weight:900}
@media(max-width:1180px){.dashboard-grid-static{grid-template-columns:1fr 1.5fr}.path-guide{grid-column:1/-1;min-height:auto}.static-path-list{grid-template-columns:repeat(3,1fr)}.resource-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){.dashboard-grid-static{grid-template-columns:1fr}.path-guide{grid-column:auto}.static-path-list{grid-template-columns:1fr}.resource-grid{grid-template-columns:1fr}.quick-grid-static{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.guidance-card,.resource-catalog{padding:17px}.quick-grid-static{grid-template-columns:repeat(2,minmax(0,1fr))}.resource-link{grid-template-columns:40px minmax(0,1fr) auto}}

/* =============================================================================
V2.13 Kana Dojo workbench
============================================================================= */
.kana-heading,.modes-card,.kana-guide-grid,.kana-workspace{max-width:1390px;margin-left:auto;margin-right:auto}
.kana-heading{padding:28px 30px 12px}.kana-heading h1{margin:7px 0 8px;font-size:clamp(2.2rem,4vw,3.7rem)}.kana-heading p{max-width:820px;margin:0;color:var(--muted);font-size:1.02rem;line-height:1.6}
.modes-card{display:grid;grid-template-columns:1.05fr 1fr 1.15fr;gap:14px;margin-top:10px;padding:20px;border:1px solid var(--line);border-radius:24px;background:var(--surface);box-shadow:0 12px 32px color-mix(in srgb,var(--ink) 9%,transparent)}
.modes-card__intro{padding:7px 10px}.modes-card__intro h2{margin:8px 0 9px;font-size:1.45rem}.modes-card__intro p,.mode-option p{margin:0;color:var(--muted);line-height:1.55}
.mode-option{display:flex;gap:14px;padding:18px;border:1px solid var(--line);border-radius:19px;background:var(--surface2)}.mode-option--download{background:linear-gradient(145deg,var(--surface2),color-mix(in srgb,var(--primary) 10%,var(--surface)))}.mode-option__icon{width:46px;height:46px;flex:none;display:grid;place-items:center;border-radius:14px;background:var(--surface);font-size:1.5rem}.mode-option h3{margin:2px 0 7px;font-size:1rem}.offline-download{display:inline-flex;margin-top:14px;text-decoration:none;align-items:center;justify-content:center}
.kana-guide-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:16px;margin-top:16px}.kana-instructions,.kana-tips{padding:23px;border:1px solid var(--line);border-radius:22px;background:var(--surface);box-shadow:0 10px 26px color-mix(in srgb,var(--ink) 7%,transparent)}.kana-instructions h2,.kana-tips h2{margin:8px 0 14px;font-size:1.3rem}.kana-instructions ol{list-style:none;margin:0;padding:0;display:grid;gap:10px}.kana-instructions li{display:flex;gap:12px;align-items:flex-start;padding:12px;border-radius:15px;background:var(--surface2);color:var(--muted);line-height:1.5}.kana-instructions li b{width:31px;height:31px;flex:none;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff}.kana-tip-list{display:grid;gap:10px}.kana-tip{display:flex;gap:12px;padding:12px;border-radius:15px;background:var(--surface2)}.kana-tip>span{font-size:1.45rem}.kana-tip h3{margin:0 0 4px;font-size:.94rem}.kana-tip p{margin:0;color:var(--muted);font-size:.82rem;line-height:1.45}
.kana-workspace{margin-top:16px;margin-bottom:34px}.kana-workspace__bar>div:first-child{display:flex;align-items:center;gap:10px}.kana-workspace__bar small{display:block;color:var(--muted);font-weight:500;margin-top:2px}.kana-frame{height:980px;background:#fff}.workspace.kana-workspace{border-radius:22px;overflow:hidden}
@media(max-width:1100px){.modes-card{grid-template-columns:1fr 1fr}.modes-card__intro{grid-column:1/-1}.kana-guide-grid{grid-template-columns:1fr}}
@media(max-width:720px){.kana-heading{padding:21px 17px 8px}.modes-card{grid-template-columns:1fr;margin:8px 12px 0;padding:13px}.modes-card__intro{grid-column:auto}.kana-guide-grid,.kana-workspace{margin-left:12px;margin-right:12px}.kana-instructions,.kana-tips{padding:17px}.kana-workspace__bar small{display:none}.kana-frame{height:1150px}}

/* =============================================================================
Kana Dojo native Flask workbench — V2.14
============================================================================= */
.kana-native{margin-top:22px;border:1px solid var(--border);border-radius:26px;background:var(--panel);box-shadow:var(--shadow);overflow:hidden}.kana-native__header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--accent) 7%,var(--panel))}.kana-native__header>div{display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-items:center}.kana-native__header small{grid-column:2;color:var(--muted)}.kana-practice-grid{display:grid;grid-template-columns:minmax(230px,280px) minmax(520px,1fr) minmax(220px,270px);gap:18px;padding:20px}.kana-control-card,.kana-board-card,.kana-session-card{border:1px solid var(--border);border-radius:22px;background:var(--surface);padding:18px}.kana-current-word{text-align:center;font-size:clamp(2.6rem,5vw,4.6rem);font-weight:900;line-height:1;margin:18px 0;color:var(--ink)}.kana-script-switch{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--border);border-radius:14px;padding:4px;background:var(--panel)}.kana-script-switch button{border:0;border-radius:10px;padding:10px;background:transparent;color:var(--ink);font-weight:800}.kana-script-switch button.active{background:var(--accent);color:white}.kana-answer{min-height:58px;margin:16px 0 8px;border:2px dashed var(--border);border-radius:14px;display:grid;place-items:center;font-size:2rem;font-weight:900}.kana-feedback{min-height:44px;color:var(--muted);font-weight:700}.kana-feedback.is-good{color:#2d8b57}.kana-feedback.is-bad{color:#c84662}.kana-control-stack{display:grid;gap:10px}.kana-control-stack label{display:grid;gap:6px;font-weight:800}.kana-control-stack select{width:100%;padding:10px;border:1px solid var(--border);border-radius:12px;background:var(--panel);color:var(--ink)}.kana-board-card{overflow:auto}.kana-board{display:grid;gap:10px;min-width:620px}.kana-row{display:grid;grid-template-columns:110px repeat(5,minmax(82px,1fr));gap:8px}.kana-row-label{border-radius:14px;display:grid;place-items:center;padding:8px;color:white;background:linear-gradient(135deg,var(--accent),var(--accent-2));text-align:center}.kana-row-label small{opacity:.8}.kana-tile{min-height:112px;border:1px solid var(--border);border-radius:15px;background:color-mix(in srgb,var(--accent) 10%,var(--panel));color:var(--ink);display:grid;place-items:center;align-content:center;gap:3px;padding:8px;cursor:pointer;transition:.16s ease}.kana-tile:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(0,0,0,.08)}.kana-tile.selected{outline:3px solid var(--accent)}.kana-symbol{font-size:2rem;font-weight:900}.kana-picture{font-size:1.5rem}.kana-tile small{font-weight:800;color:var(--muted)}.kana-session-card h2{margin:.35rem 0 1rem}.kana-session-card ul{padding-left:1.2rem;color:var(--muted);line-height:1.55}.kana-result-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}.kana-result-summary div{border:1px solid var(--border);border-radius:15px;padding:12px;text-align:center;background:var(--panel)}.kana-result-summary span{display:block;font-size:1.7rem;font-weight:900}.kana-result-summary small{color:var(--muted)}.kana-history h3{margin:0 0 10px}.kana-history-item{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--border);padding:9px 0}.kana-history-item span{display:grid}.kana-history-item small{color:var(--muted)}.kana-history-item strong{font-size:1.3rem;color:var(--accent)}
@media(max-width:1250px){.kana-practice-grid{grid-template-columns:260px 1fr}.kana-session-card{grid-column:1/-1}.kana-session-card{display:grid;grid-template-columns:1fr 1fr;gap:18px}.kana-session-card .section-kicker,.kana-session-card h2{grid-column:1/-1}}
@media(max-width:850px){.kana-practice-grid{grid-template-columns:1fr;padding:12px}.kana-session-card{grid-column:auto;display:block}.kana-native__header{align-items:flex-start;flex-direction:column}.kana-board-card{padding:10px}}

/* =============================================================================
Kana Dojo V2.15 controls, scoring, and review components
============================================================================= */
button{font:inherit}.workbench-button,.mini-button{appearance:none;border:1px solid var(--line);background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 94%,white),var(--surface2));color:var(--ink);border-radius:13px;padding:10px 13px;font-weight:900;cursor:pointer;box-shadow:0 4px 10px color-mix(in srgb,var(--ink) 8%,transparent);transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease}.workbench-button:hover,.mini-button:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--primary) 45%,var(--line));box-shadow:0 8px 17px color-mix(in srgb,var(--ink) 11%,transparent)}.workbench-button:active,.mini-button:active{transform:translateY(1px)}.workbench-button--primary{background:linear-gradient(135deg,var(--primary),var(--secondary));border-color:transparent;color:#fff;box-shadow:0 10px 22px color-mix(in srgb,var(--primary) 28%,transparent)}.workbench-button--accent{background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 92%,white),color-mix(in srgb,var(--secondary) 72%,var(--accent)));border-color:transparent;color:#fff}.workbench-button--quiet{background:var(--surface)}.workbench-button.is-on{background:color-mix(in srgb,var(--primary) 15%,var(--surface));border-color:color-mix(in srgb,var(--primary) 55%,var(--line));color:var(--primary)}.mini-button{padding:7px 10px;border-radius:10px;font-size:.72rem}.kana-score-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}.kana-score-grid>div{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 11px;border:1px solid var(--line);border-radius:13px;background:var(--surface2)}.kana-score-grid>div.wide{grid-column:1/-1}.kana-score-grid small{color:var(--muted);font-weight:800}.kana-score-grid strong{font-size:1rem}.kana-review-box{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.kana-review-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.kana-review-heading h3{margin:0}.kana-missed-list{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:10px}.missed-chip{appearance:none;border:1px solid var(--line);border-radius:12px;background:var(--surface2);color:var(--ink);padding:8px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:6px;cursor:pointer;text-align:left}.missed-chip span{font-size:1.4rem}.missed-chip small{color:var(--primary);font-weight:900}.empty-state{color:var(--muted);font-size:.78rem;margin:8px 0}.kana-history{margin-top:16px}.kana-history-item strong.ok{color:#2d9b58}.kana-history-item strong.no{color:#d34d67}.kana-tile.right{outline:3px solid #41b96d;background:color-mix(in srgb,#41b96d 14%,var(--panel))}.kana-tile.wrong{outline:3px solid #df5472;background:color-mix(in srgb,#df5472 12%,var(--panel))}.kana-control-stack .workbench-button{width:100%}
@media(max-width:1250px){.kana-score-grid{grid-template-columns:repeat(5,1fr)}.kana-score-grid>div.wide{grid-column:auto}.kana-missed-list{grid-template-columns:repeat(6,1fr)}}
@media(max-width:850px){.kana-score-grid{grid-template-columns:1fr 1fr}.kana-score-grid>div.wide{grid-column:1/-1}.kana-missed-list{grid-template-columns:repeat(3,1fr)}}


/* =============================================================================
Kana Dojo V2.16 — complete bilingual game-history panel
============================================================================= */
.kana-history .kana-review-heading{align-items:flex-start}.kana-history .kana-review-heading p{margin:.25rem 0 0;color:var(--muted);font-size:.78rem;line-height:1.4}.kana-history-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(185px,1fr));gap:9px;margin-top:12px;max-height:420px;overflow:auto;padding-right:3px}.kana-history-item{border:1px solid var(--line);border-radius:14px;padding:10px 11px;background:var(--surface2);display:flex;justify-content:space-between;align-items:center;gap:10px}.kana-history-item:first-child{border-top:1px solid var(--line)}.kana-history-copy{min-width:0}.kana-history-main{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px}.kana-history-main b{font-size:.92rem}.kana-history-kana{font-size:1.28rem;font-weight:900}.kana-history-translation{display:block;margin-top:3px;color:var(--muted);font-style:italic;line-height:1.25}.kana-history-result{display:grid;justify-items:center;gap:2px;flex:0 0 auto}.kana-history-result strong{font-size:1.35rem}.kana-history-result small{color:var(--muted);font-size:.64rem}@media(max-width:1250px){.kana-history-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));max-height:none}}@media(max-width:600px){.kana-history-grid{grid-template-columns:1fr}.kana-history .kana-review-heading{align-items:flex-start;flex-direction:column}.kana-history .mini-button{width:100%}}

/* =============================================================================
Kana Dojo V2.17 — row-help column and adaptive tile workspace
=============================================================================
Purpose:
  Keeps the complete kana board visible without nested horizontal scrollbars,
  restores the color-coded row-help column, and provides a user-selectable
  compact density that works across every shared application theme.
============================================================================= */
.kana-board-card{overflow:visible;min-width:0}
.kana-board{width:100%;min-width:0;gap:8px}
.kana-row{grid-template-columns:clamp(72px,8vw,104px) repeat(5,minmax(0,1fr));gap:7px;min-width:0}
.kana-row:not(:has(.kana-row-label)){grid-template-columns:repeat(5,minmax(0,1fr))}
.kana-row-label{min-width:0;min-height:clamp(82px,7vw,108px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.2),0 5px 12px color-mix(in srgb,var(--ink) 9%,transparent)}
.kana-row-label strong{font-size:clamp(.68rem,.78vw,.9rem);line-height:1.15}.kana-row-label small{text-transform:uppercase;font-weight:900}
.kana-row-label--v{background:#4ea6a6}.kana-row-label--k,.kana-row-label--g{background:#6aa66a}.kana-row-label--s,.kana-row-label--z{background:#d8a24a}.kana-row-label--t,.kana-row-label--d{background:#c56b62}.kana-row-label--n{background:#9b7acb}.kana-row-label--h,.kana-row-label--b,.kana-row-label--p{background:#56a9bd}.kana-row-label--m{background:#d0b45f}.kana-row-label--y{background:#c9789c}.kana-row-label--r{background:#a87855}.kana-row-label--w,.kana-row-label--mix{background:#87909a}
.kana-tile{width:100%;min-width:0;min-height:clamp(82px,7vw,108px);padding:clamp(4px,.55vw,8px);overflow:hidden}
.kana-symbol{font-size:clamp(1.45rem,2.1vw,2rem);line-height:1}.kana-picture{font-size:clamp(1.15rem,1.6vw,1.5rem);line-height:1}.kana-tile small{max-width:100%;font-size:clamp(.55rem,.65vw,.72rem);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kana-tile--empty{cursor:default;opacity:.36;border-style:dashed;background:color-mix(in srgb,var(--surface2) 70%,transparent);box-shadow:none}.kana-tile--empty:hover{transform:none;box-shadow:none}
.kana-board.is-compact{gap:5px}.kana-board.is-compact .kana-row{grid-template-columns:clamp(58px,6.5vw,82px) repeat(5,minmax(0,1fr));gap:5px}.kana-board.is-compact .kana-row:not(:has(.kana-row-label)){grid-template-columns:repeat(5,minmax(0,1fr))}.kana-board.is-compact .kana-row-label,.kana-board.is-compact .kana-tile{min-height:72px}.kana-board.is-compact .kana-symbol{font-size:1.4rem}.kana-board.is-compact .kana-picture{font-size:1.05rem}.kana-board.is-compact .kana-tile small{font-size:.56rem}
body.theme-night .kana-row-label{color:#081018;filter:saturate(.9) brightness(1.12)}
body.theme-garden .kana-row-label{color:#173d2c;filter:saturate(.78) brightness(1.08)}
body.theme-pixel .kana-row-label{color:#251747;filter:saturate(.9) brightness(1.08)}
@media(max-width:1250px){.kana-board{gap:6px}.kana-row{grid-template-columns:76px repeat(5,minmax(0,1fr));gap:5px}.kana-row-label,.kana-tile{min-height:82px}.kana-symbol{font-size:1.55rem}.kana-picture{font-size:1.15rem}.kana-tile small{font-size:.58rem}}
@media(max-width:850px){.kana-board-card{padding:10px}.kana-row{grid-template-columns:70px repeat(5,minmax(0,1fr));gap:5px}.kana-row-label,.kana-tile{min-height:78px}}
@media(max-width:560px){.kana-practice-grid{padding:8px}.kana-board-card{padding:7px}.kana-board{gap:4px}.kana-row{grid-template-columns:52px repeat(5,minmax(0,1fr));gap:3px}.kana-row-label,.kana-tile{min-height:64px;border-radius:10px}.kana-row-label{padding:3px}.kana-row-label strong{font-size:.56rem}.kana-row-label small{font-size:.5rem}.kana-tile{padding:3px}.kana-symbol{font-size:1.18rem}.kana-picture{font-size:.9rem}.kana-tile small{font-size:.46rem}.kana-board.is-compact .kana-row{grid-template-columns:44px repeat(5,minmax(0,1fr));gap:2px}.kana-board.is-compact .kana-row-label,.kana-board.is-compact .kana-tile{min-height:56px}}

/* =============================================================================
Kana Dojo V2.18 — draggable and resizable workbench tiles
=============================================================================
Purpose:
  Gives the native Kana Dojo the same flexible workbench behavior used by the
  ALM Hub: users can drag the major workspace tiles into a preferred order,
  resize them within safe limits, and restore the default canvas at any time.
============================================================================= */
.kana-native__actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.kana-native{overflow:visible}
.kana-practice-grid{display:flex!important;flex-wrap:wrap;align-items:flex-start;align-content:flex-start;justify-content:center;gap:16px;min-width:0;overflow:visible;padding-bottom:28px}
.kana-workbench-tile{position:relative;box-sizing:border-box;min-width:240px;max-width:100%;min-height:130px;resize:none;overflow:visible;transition:box-shadow .16s ease,border-color .16s ease,opacity .16s ease;flex:0 0 auto}
.kana-control-card{flex-basis:285px;width:285px}
.kana-board-card{flex-basis:620px;width:620px;min-width:min(520px,100%)}
.kana-session-card{flex-basis:305px;width:305px}
.kana-workbench-tile.is-dragging{opacity:.55;border-style:dashed;box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 28%,transparent)}
.kana-workbench-tile.is-drop-target{border-color:var(--primary);box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 18%,transparent),var(--shadow)}
.kana-tile-toolbar{display:flex;align-items:center;gap:8px;min-height:34px;margin:-4px -4px 10px;padding:6px 8px;border-bottom:1px solid var(--line);color:var(--muted);font-size:.7rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em;user-select:none}
.kana-drag-handle{display:grid;place-items:center;width:26px;height:24px;border:1px solid var(--line);border-radius:8px;background:var(--surface2);color:var(--primary);font-size:1rem;cursor:grab;touch-action:none}
.kana-drag-handle:active{cursor:grabbing}.kana-resize-hint{margin-left:auto;display:grid;place-items:center;width:28px;height:26px;border:1px solid var(--line);border-radius:8px;background:var(--surface2);color:var(--primary);opacity:1;cursor:ew-resize;touch-action:none}.kana-workbench-tile.is-resizing{user-select:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 24%,transparent),var(--shadow)}
.kana-workbench-tile::after{content:"";position:absolute;right:5px;bottom:5px;width:12px;height:12px;border-right:3px solid color-mix(in srgb,var(--primary) 72%,transparent);border-bottom:3px solid color-mix(in srgb,var(--primary) 72%,transparent);border-radius:0 0 3px 0;pointer-events:none}
.kana-board-card .kana-board{min-width:0}.kana-session-card .kana-history-grid{max-height:none;overflow:visible}
body.theme-pixel .kana-tile-toolbar{background:color-mix(in srgb,#fff 75%,var(--surface2));color:#5d4779}
body.theme-garden .kana-tile-toolbar{background:color-mix(in srgb,#fffaf0 82%,var(--surface2));color:#526b59}
body.theme-night .kana-tile-toolbar{background:color-mix(in srgb,#101a34 82%,var(--surface2));color:#b8c6ea}
@media(max-width:1250px){.kana-control-card{width:270px;flex-basis:270px}.kana-board-card{width:calc(100% - 300px);flex-basis:calc(100% - 300px)}.kana-session-card{width:100%;flex-basis:100%}}
@media(max-width:850px){.kana-practice-grid{display:grid!important;grid-template-columns:1fr}.kana-workbench-tile,.kana-control-card,.kana-board-card,.kana-session-card{width:100%!important;min-width:0;max-width:100%;flex-basis:auto}.kana-resize-hint{display:none}.kana-tile-toolbar{position:sticky;top:0;z-index:3}.kana-native__actions{width:100%}.kana-native__actions .workbench-button{flex:1 1 180px}}
@media(pointer:coarse){.kana-drag-handle{width:34px;height:30px}}

/* =============================================================================
90-Day Tracker V2.19 — native flexible workbench
============================================================================= */
.tracker-heading{padding-bottom:8px}.tracker-modes{margin-top:8px}.tracker-guide{margin:16px 0;padding:23px;border:1px solid var(--line);border-radius:22px;background:var(--surface);box-shadow:var(--shadow)}.tracker-guide h2{margin:8px 0 14px}.tracker-guide ol{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.tracker-guide li{display:flex;gap:10px;padding:13px;border-radius:15px;background:var(--surface2);color:var(--muted);line-height:1.45}.tracker-guide li b{width:30px;height:30px;flex:none;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff}
.tracker-native{margin:16px 0 36px;border:1px solid var(--line);border-radius:24px;background:var(--surface2);overflow:hidden}.tracker-native__header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;border-bottom:1px solid var(--line);background:var(--surface)}.tracker-native__header>div:first-child{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.tracker-native__header small{display:block;width:100%;margin-left:18px;color:var(--muted)}.tracker-native__actions{display:flex;gap:8px;flex-wrap:wrap}.tracker-canvas{display:flex;flex-wrap:wrap;align-items:flex-start;align-content:flex-start;gap:16px;padding:16px;min-width:0}.tracker-tile{position:relative;box-sizing:border-box;min-width:250px;max-width:100%;overflow:hidden;border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:var(--shadow);flex:0 0 auto}.tracker-summary-tile{width:390px;flex-basis:390px;min-height:390px}.tracker-calendar-tile{width:min(760px,100%);flex-basis:min(760px,100%);min-width:320px;min-height:720px}.tracker-notes-tile{width:340px;flex-basis:340px;min-height:500px}.tracker-tile-toolbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:8px;min-height:40px;padding:7px 9px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface) 92%,var(--primary));color:var(--muted);font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.055em;user-select:none}.tracker-drag-handle{display:grid;place-items:center;width:28px;height:26px;border:1px solid var(--line);border-radius:8px;background:var(--surface2);color:var(--primary);cursor:grab}.tracker-resize-hint{margin-left:auto;display:grid;place-items:center;width:28px;height:26px;border:1px solid var(--line);border-radius:8px;background:var(--surface2);color:var(--primary);cursor:ew-resize;touch-action:none}.tracker-tile.is-resizing{user-select:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 24%,transparent),var(--shadow)}.tracker-minimize{border:1px solid var(--line);border-radius:8px;background:var(--surface2);color:var(--ink);font-weight:900;cursor:pointer}.tracker-tile-body{padding:16px}.tracker-tile.is-minimized{height:42px!important;min-height:42px!important;overflow:hidden}.tracker-tile.is-minimized .tracker-tile-body{display:none}.tracker-tile.is-dragging{opacity:.5}.tracker-tile.is-drop-target{box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 24%,transparent),var(--shadow)}
.tracker-setup{display:grid;gap:9px}.tracker-setup label,.tracker-notes-label{display:grid;gap:6px;color:var(--muted);font-weight:800}.tracker-setup input{width:100%;padding:11px;border:1px solid var(--line);border-radius:12px;background:var(--surface2);color:var(--ink);font:inherit}.tracker-metrics{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:14px}.tracker-metrics>div{padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--surface2)}.tracker-metrics small{display:block;color:var(--muted)}.tracker-metrics strong{font-size:1.25rem}.tracker-progress{height:13px;margin:15px 0;border-radius:99px;background:var(--surface2);overflow:hidden}.tracker-progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--primary),var(--secondary));transition:width .25s}.tracker-legend{display:flex;gap:8px;flex-wrap:wrap}.tracker-legend span{display:flex;align-items:center;gap:5px;padding:6px 9px;border:1px solid var(--line);border-radius:99px;color:var(--muted);font-size:.72rem}.tracker-legend i{width:10px;height:10px;border-radius:50%}.tracker-legend .today{background:#ffd76b}.tracker-legend .complete{background:#7bcf8d}.tracker-legend .deferred{background:#b98ae6}
.tracker-calendar{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}.tracker-month{grid-column:1/-1;margin:10px 0 0;padding:8px 2px;border-bottom:1px solid var(--line);text-transform:capitalize}.tracker-day{padding:14px;border:1px solid var(--line);border-radius:17px;background:var(--surface2)}.tracker-day.is-complete{background:color-mix(in srgb,#7bcf8d 20%,var(--surface))}.tracker-day.is-deferred{box-shadow:inset 4px 0 #a875d7}.tracker-day.is-today{outline:3px solid color-mix(in srgb,#ffd76b 72%,transparent)}.tracker-day-head{display:flex;justify-content:space-between;gap:9px}.tracker-day-head strong{font-size:1.05rem}.tracker-day-head small{display:block;color:var(--primary);font-weight:800}.tracker-day-head time{text-align:right;color:var(--muted);font-size:.75rem}.tracker-day-focus{margin:10px 0 3px;font-weight:900}.tracker-day-time,.tracker-day-status{color:var(--muted)}.tracker-day ul{padding-left:19px;line-height:1.45}.tracker-day-actions{display:flex;gap:7px;margin-top:11px;flex-wrap:wrap}.tracker-day-actions .workbench-button{flex:1 1 110px;padding:8px}.tracker-native.is-compact .tracker-day ul,.tracker-native.is-compact .tracker-day-time{display:none}.tracker-native.is-compact .tracker-calendar{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.tracker-native.is-compact .tracker-day{padding:10px}
.tracker-notes-label textarea{min-height:220px;resize:vertical;padding:13px;border:1px solid var(--line);border-radius:14px;background:var(--surface2);color:var(--ink);font:inherit;line-height:1.5}.tracker-guidance{margin-top:16px;padding:14px;border-radius:15px;background:var(--surface2)}.tracker-guidance h3{margin-top:0}.tracker-guidance li{margin:8px 0;color:var(--muted)}
body.theme-night .tracker-tile-toolbar{background:#111c38;color:#c5d0ef}body.theme-night .tracker-day.is-complete{background:color-mix(in srgb,#57c882 22%,#101a34)}body.theme-garden .tracker-tile-toolbar{background:#f5f4df;color:#53675a}body.theme-pixel .tracker-tile-toolbar{background:#fff0fa;color:#6a4f80}
@media(max-width:1100px){.tracker-guide ol{grid-template-columns:1fr 1fr}.tracker-summary-tile{width:320px}.tracker-calendar-tile{width:min(100%,760px)}.tracker-notes-tile{width:340px}}
@media(max-width:760px){.tracker-guide ol{grid-template-columns:1fr}.tracker-native__header{align-items:flex-start;flex-direction:column}.tracker-native__actions{width:100%}.tracker-native__actions button{flex:1}.tracker-canvas{display:grid;grid-template-columns:1fr;padding:10px}.tracker-tile,.tracker-summary-tile,.tracker-calendar-tile,.tracker-notes-tile{width:100%!important;min-width:0;flex-basis:auto!important}.tracker-resize-hint{display:none}.tracker-calendar{grid-template-columns:1fr}.tracker-metrics{grid-template-columns:1fr 1fr}}
@media print{.tij-appbar,.tij-sidebar,.tracker-heading,.tracker-modes,.tracker-guide,.tracker-native__header,.tracker-tile-toolbar,.tracker-summary-tile,.tracker-notes-tile,.tracker-day-actions{display:none!important}.tij-content{margin:0!important}.tracker-native,.tracker-calendar-tile,.tracker-tile{border:0;box-shadow:none;width:100%!important;height:auto!important;overflow:visible!important}.tracker-calendar{grid-template-columns:repeat(3,1fr)}.tracker-day{break-inside:avoid;font-size:9pt}}

/* =============================================================================
Phrase decks V2.20 — native flexible workbench
============================================================================= */
.phrase-heading{padding-bottom:8px}.phrase-modes{margin-top:8px}.phrase-guide{margin:16px 0;padding:22px;border:1px solid var(--line);border-radius:22px;background:var(--surface);box-shadow:var(--shadow)}.phrase-guide ol{list-style:none;padding:0;margin:12px 0 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.phrase-guide li{display:flex;gap:10px;padding:13px;border-radius:15px;background:var(--surface2);color:var(--muted);line-height:1.45}.phrase-guide li b{width:30px;height:30px;flex:none;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff}
.phrase-native{margin:16px 0 36px;border:1px solid var(--line);border-radius:24px;background:var(--surface2);overflow:hidden}.phrase-native__header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;border-bottom:1px solid var(--line);background:var(--surface)}.phrase-native__header>div:first-child{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.phrase-native__header small{display:block;width:100%;margin-left:18px;color:var(--muted)}.phrase-native__actions{display:flex;gap:8px;flex-wrap:wrap}
.phrase-canvas{display:flex;flex-wrap:wrap;align-items:flex-start;align-content:flex-start;gap:16px;padding:16px;min-width:0}.phrase-workbench-tile{position:relative;box-sizing:border-box;min-width:250px;max-width:100%;resize:none;overflow:visible;border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:var(--shadow);flex:0 0 auto}.phrase-controls-tile{width:330px;flex-basis:330px;min-height:430px}.phrase-deck-tile{width:min(760px,100%);flex-basis:min(760px,100%);min-height:620px}.phrase-notes-tile{width:340px;flex-basis:340px;min-height:460px}.phrase-tile-toolbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:8px;min-height:42px;padding:7px 9px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface) 92%,var(--primary));color:var(--muted);font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.055em;user-select:none;border-radius:19px 19px 0 0}.phrase-drag-handle{display:grid;place-items:center;width:29px;height:27px;border:1px solid var(--line);border-radius:8px;background:var(--surface2);color:var(--primary);cursor:grab}.phrase-minimize{border:1px solid var(--line);border-radius:8px;background:var(--surface2);color:var(--ink);font-weight:900;cursor:pointer}.phrase-resize-hint{margin-left:auto;display:grid;place-items:center;width:29px;height:27px;border:1px solid var(--line);border-radius:8px;background:var(--surface2);color:var(--primary);cursor:ew-resize;touch-action:none}.phrase-workbench-tile.is-resizing{user-select:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 22%,transparent),var(--shadow)}.phrase-tile-body{padding:16px;min-width:0}.phrase-workbench-tile.is-minimized{height:43px!important;min-height:43px!important;resize:none;overflow:hidden}.phrase-workbench-tile.is-minimized .phrase-tile-body{display:none}.phrase-workbench-tile.is-dragging{opacity:.5}.phrase-workbench-tile.is-drop-target{box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 24%,transparent),var(--shadow)}
.phrase-tile-body label{display:grid;gap:6px;margin-bottom:12px;color:var(--muted);font-weight:800}.phrase-tile-body input,.phrase-tile-body select,.phrase-notes-label textarea{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface2);color:var(--ink);font:inherit}.phrase-control-stack{display:grid;gap:8px}.phrase-control-stack .workbench-button{width:100%}.workbench-button.is-active{background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff;border-color:transparent}.phrase-metrics{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:14px}.phrase-metrics>div{padding:13px;border:1px solid var(--line);border-radius:14px;background:var(--surface2)}.phrase-metrics small{display:block;color:var(--muted)}.phrase-metrics strong{font-size:1.35rem}.phrase-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}.phrase-card-native{border:1px solid var(--line);border-radius:17px;background:var(--surface2);overflow:hidden;transition:transform .15s ease,border-color .15s ease}.phrase-card-native:hover{transform:translateY(-2px);border-color:var(--primary)}.phrase-card-native.is-memorized{box-shadow:inset 4px 0 #55b878}.phrase-card-native header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:12px;border-bottom:1px solid var(--line)}.phrase-number{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff;font-weight:900}.phrase-japanese{font-size:1.25rem;font-weight:900;line-height:1.35}.phrase-memory-toggle,.phrase-speak{border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);cursor:pointer;padding:7px 9px}.phrase-card-fields{display:grid;gap:9px;padding:12px}.phrase-card-fields>div{display:grid;gap:3px}.phrase-card-fields small{color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.04em;font-size:.67rem}.phrase-card-fields strong{font-size:.9rem;line-height:1.4}.phrase-card-native footer{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;border-top:1px solid var(--line)}.phrase-card-native footer span{padding:5px 8px;border-radius:99px;background:color-mix(in srgb,var(--primary) 12%,var(--surface));color:var(--primary);font-size:.72rem;font-weight:900}.phrase-empty{padding:30px;text-align:center;color:var(--muted)}.phrase-guidance{padding:14px;border-radius:15px;background:var(--surface2)}.phrase-guidance h3{margin-top:0}.phrase-guidance p,.phrase-guidance li{color:var(--muted);line-height:1.5}.phrase-notes-label{margin-top:15px}.phrase-notes-label textarea{min-height:180px;resize:vertical;line-height:1.5}
body.theme-night .phrase-tile-toolbar{background:#111c38;color:#c5d0ef}body.theme-garden .phrase-tile-toolbar{background:#f5f4df;color:#53675a}body.theme-pixel .phrase-tile-toolbar{background:#fff0fa;color:#6a4f80}
@media(max-width:1050px){.phrase-guide ol{grid-template-columns:1fr 1fr}.phrase-workbench-tile{min-width:240px}}
@media(max-width:760px){.phrase-guide ol{grid-template-columns:1fr}.phrase-native__header{align-items:flex-start;flex-direction:column}.phrase-native__actions{width:100%}.phrase-native__actions button{flex:1}.phrase-canvas{display:grid;grid-template-columns:1fr;padding:10px}.phrase-workbench-tile,.phrase-controls-tile,.phrase-deck-tile,.phrase-notes-tile{width:100%!important;min-width:0;resize:none;flex-basis:auto!important}.phrase-list{grid-template-columns:1fr}}

/*=============================================================================
V2.21 native Reading Aid, Frequency Deck, and Study Plan workbenches
=============================================================================*/
.study-native{margin:24px 0 40px;border:1px solid var(--line);border-radius:24px;background:var(--panel);overflow:hidden}.study-native__header{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line)}.study-native__header>div{display:grid;grid-template-columns:auto 1fr;column-gap:10px}.study-native__header small{grid-column:2;color:var(--muted)}.study-canvas{display:flex;flex-wrap:wrap;align-items:flex-start;gap:18px;padding:20px;min-width:0}.study-workbench-tile{position:relative;flex:1 1 340px;min-width:260px;max-width:100%;border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:var(--shadow);overflow:hidden}.study-deck-tile{flex-basis:620px}.study-tile-toolbar{display:flex;align-items:center;gap:10px;min-height:52px;padding:10px 12px;border-bottom:1px solid var(--line);font-weight:900;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.study-drag-handle{cursor:grab;padding:6px 9px;border:1px solid var(--line);border-radius:10px}.study-drag-handle:active{cursor:grabbing}.study-minimize{margin-left:auto;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--ink);width:30px;height:30px}.study-resize-hint{cursor:ew-resize;color:var(--accent);padding:7px}.study-tile-body{padding:20px}.study-tile-body label{display:grid;gap:8px;margin-bottom:16px;font-weight:800}.study-tile-body input,.study-tile-body select,.study-tile-body textarea{width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:14px;background:var(--soft);color:var(--ink);font:inherit}.study-tile-body textarea{min-height:180px;resize:vertical}.study-workbench-tile.is-minimized{flex:0 1 280px}.study-workbench-tile.is-minimized .study-tile-body{display:none}.study-workbench-tile.is-dragging{opacity:.55}.study-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.native-study-card{border:1px solid var(--line);border-radius:18px;background:var(--soft);overflow:hidden}.native-study-card header{display:flex;align-items:center;gap:12px;padding:14px;border-bottom:1px solid var(--line)}.native-study-card header b{font-size:2.2rem}.native-study-card header span{color:var(--accent);font-weight:800}.native-study-card header button{margin-left:auto;width:38px;height:38px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink)}.native-study-card section{display:grid;gap:10px;padding:14px}.native-study-card section div{display:grid;gap:2px}.native-study-card small{color:var(--muted);font-weight:800;text-transform:uppercase}.native-study-card span{overflow-wrap:anywhere}.plan-list{display:grid;gap:12px;margin:0;padding-left:22px}.theme-night .study-workbench-tile,.theme-night .native-study-card{box-shadow:0 14px 34px rgba(0,0,0,.28)}@media(max-width:760px){.study-native__header{align-items:flex-start;flex-direction:column}.study-canvas{padding:12px}.study-workbench-tile{flex-basis:100%!important;min-width:0}.study-resize-hint{display:none}.study-list{grid-template-columns:1fr}}

/*=============================================================================
Native remaining-tool workbench tiles — V2.22
=============================================================================*/
.native-tool{margin-top:1.25rem}.native-canvas{display:flex;flex-wrap:wrap;align-items:flex-start;gap:1rem;padding:1rem}.native-workbench-tile{flex:1 1 310px;min-width:260px;max-width:100%;background:var(--panel);border:1px solid var(--border);border-radius:22px;overflow:hidden;box-shadow:var(--shadow)}.native-main-tile{flex-basis:650px}.native-tile-toolbar{display:flex;align-items:center;gap:.65rem;padding:.75rem 1rem;background:var(--panel-soft);border-bottom:1px solid var(--border);font-weight:900;text-transform:uppercase;letter-spacing:.06em}.native-drag-handle,.native-resize-handle{cursor:grab;user-select:none;border:1px solid var(--border);border-radius:10px;padding:.3rem .5rem}
.native-toolbar-action{margin-left:auto;border:1px solid var(--border);border-radius:10px;background:var(--field);color:var(--ink);padding:.35rem .6rem;font:inherit;font-size:.72rem;font-weight:900;text-transform:none;letter-spacing:0;cursor:pointer;white-space:nowrap}.native-toolbar-action:hover{border-color:var(--accent);color:var(--accent)}.native-toolbar-action+.native-minimize{margin-left:0}.mt-writing-print span{display:inline}
.native-resize-handle{margin-left:auto;cursor:ew-resize}.native-minimize{border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--ink);font-weight:900}.native-tile-body{padding:1rem;min-width:0}.native-workbench-tile.is-minimized .native-tile-body{display:none}.native-workbench-tile.is-dragging{opacity:.55}.native-tile-body label{display:grid;gap:.4rem;margin-bottom:.8rem;font-weight:800}.native-tile-body input,.native-tile-body select,.native-tile-body textarea{width:100%;padding:.8rem;border:1px solid var(--border);border-radius:14px;background:var(--field);color:var(--ink)}.native-card-grid,.game-card-grid,.audio-unit-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.8rem}.native-record-card,.game-card,.audio-unit-grid article{background:var(--panel-soft);border:1px solid var(--border);border-radius:18px;padding:1rem;min-width:0}.native-record-card header{display:flex;align-items:center;justify-content:space-between}.native-symbol{font-size:3rem}.native-record-card blockquote{margin:.75rem 0;padding:.75rem;border-left:4px solid var(--accent);background:var(--field)}.native-record-card blockquote small{display:block}.example-chips{display:flex;flex-wrap:wrap;gap:.4rem}.example-chips span{padding:.35rem .55rem;border-radius:999px;background:var(--field)}.native-flashcard{width:100%;min-height:320px;border:1px solid var(--border);border-radius:24px;background:var(--panel-soft);color:var(--ink);display:grid;place-items:center;gap:1rem;padding:2rem}.native-flashcard b{font-size:clamp(3rem,8vw,7rem)}.sentence-prompt,.sentence-dropzone,.sentence-wordbank{padding:1rem;border:1px solid var(--border);border-radius:18px;margin-bottom:1rem}.sentence-dropzone{min-height:90px;background:var(--field);display:flex;flex-wrap:wrap;gap:.5rem}.sentence-wordbank{display:flex;flex-wrap:wrap;gap:.5rem}.sentence-wordbank button,.sentence-dropzone button{padding:.7rem 1rem;border:1px solid var(--border);border-radius:12px;background:var(--panel-soft);color:var(--ink);font-weight:800}.sentence-result{padding:1rem;border-radius:14px;font-weight:900}.sentence-result.ok{background:rgba(70,180,100,.18)}.sentence-result.bad{background:rgba(220,80,100,.18)}.game-card p{font-size:1.15rem}.games-count{font-weight:900;margin-bottom:1rem}.speak-button{float:right}.theme-night .native-workbench-tile,.theme-night .native-record-card,.theme-night .game-card,.theme-night .audio-unit-grid article{box-shadow:0 14px 36px rgba(0,0,0,.32)}
@media(max-width:760px){.native-canvas{display:block;padding:.5rem}.native-workbench-tile{width:100%;min-width:0;margin-bottom:.8rem;flex-basis:auto!important}.native-resize-handle{opacity:.45;cursor:default}.native-card-grid,.game-card-grid,.audio-unit-grid{grid-template-columns:1fr}}

/* =============================================================================
   V2.23 — Kanji Radicals visual parity
   -----------------------------------------------------------------------------
   Recreates the compact card grid, red radical treatment, position diagram,
   and example composition used by the original standalone HTML trainer while
   retaining the native Flask workbench shell and all three shared themes.
   ============================================================================= */
.radical-result-count{margin:0 0 14px;font-weight:950;color:var(--ink)}
.radical-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:14px;align-items:stretch}
.radical-card{--radical-red:#d71920;display:flex;flex-direction:column;min-width:0;padding:15px;border:2px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:0 8px 20px color-mix(in srgb,var(--ink) 8%,transparent)}
.radical-symbol{color:var(--radical-red);font-size:58px;font-weight:950;line-height:1;text-align:center;padding:4px 0 2px}
.radical-card h3{margin:7px 0 2px;font-size:1.02rem;color:var(--ink)}
.radical-card p{margin:6px 0;color:var(--ink);font-size:.86rem;line-height:1.45}
.radical-card p b{font-weight:950}
.radical-position-grid{display:grid;grid-template-columns:repeat(3,18px);grid-template-rows:repeat(3,18px);gap:2px;justify-content:center;margin:8px auto 10px}
.radical-position-grid i{display:block;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 72%,var(--bg))}
.radical-position-grid i.is-active{background:var(--radical-red);border-color:color-mix(in srgb,var(--radical-red) 78%,var(--line))}
.radical-examples{margin-top:auto;padding-top:8px;font-size:.86rem}
.radical-examples>div{display:flex;flex-wrap:wrap;gap:8px;margin-top:7px}
.radical-example{display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:4px 9px;border:1px solid var(--line);border-radius:10px;background:var(--bg);font-size:27px;line-height:1}
.radical-example em{color:var(--radical-red);font-style:normal;font-weight:950}
.radical-example strong{font-size:1rem;color:var(--muted)}
html[data-theme=pixel] .radical-card{--radical-red:#d71920;background:#fffdfd;border-color:#cdbce9}
html[data-theme=pixel] .radical-example{background:#fff8fb}
html[data-theme=garden] .radical-card{--radical-red:#d71920;background:#fffaf0;border-color:#c7b98e}
html[data-theme=garden] .radical-example{background:#fbf4df}
html[data-theme=night] .radical-card{--radical-red:#ff6b78;background:#12192d;border-color:#5668a8;box-shadow:0 10px 24px rgba(0,0,0,.3)}
html[data-theme=night] .radical-example{background:#090e2a}
@media(max-width:760px){.radical-card-grid{grid-template-columns:1fr}.radical-symbol{font-size:52px}}

/*=============================================================================
Sentence Builder native workbench parity
=============================================================================*/
.sentence-reference-tile{flex-basis:430px}
.sentence-patterns-tile{flex-basis:920px}
.sentence-control-grid,.sentence-flash-controls,.sentence-pattern-toolbar{display:flex;flex-wrap:wrap;gap:.65rem;align-items:end}
.sentence-control-grid{margin-bottom:1rem}
.sentence-mini-reference{padding:.85rem;border:1px solid var(--border);border-radius:16px;background:var(--field)}
.sentence-mini-reference h3{margin:.1rem 0 .5rem}
.sentence-color-key,.sentence-tags{display:flex;flex-wrap:wrap;gap:.45rem}
.grammar-token{display:inline-flex;align-items:center;justify-content:center;padding:.45rem .62rem;border:1px solid color-mix(in srgb,var(--ink) 14%,transparent);border-radius:9px;font-weight:900;color:#17364a;box-shadow:0 2px 0 color-mix(in srgb,var(--ink) 10%,transparent)}
.grammar-topic{background:#f49ab7}.grammar-particle{background:#ff7d7d}.grammar-object{background:#72d9c6}.grammar-verb{background:#67b7ef}.grammar-adjective{background:#f6d34b}.grammar-noun{background:#80df8b}.grammar-time{background:#b596ee}.grammar-place{background:#f5ad49}.grammar-pattern{background:#a9df62}
.sentence-syllabus-grid,.sentence-cheat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:1rem}
.sentence-syllabus-grid article{padding:1rem;border-left:4px solid var(--accent);background:var(--field);border-radius:0 14px 14px 0}
.sentence-syllabus-grid h3,.sentence-cheat-grid h3{margin:.1rem 0 .5rem}
.sentence-pattern-toolbar{justify-content:space-between;margin-bottom:1rem}
.sentence-pattern-toolbar label{min-width:220px;margin:0}
.sentence-pattern-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:1rem}
.sentence-pattern-card{display:flex;flex-direction:column;gap:.7rem;padding:1rem;border:1px solid var(--border);border-radius:18px;background:var(--surface);min-width:0}
.sentence-pattern-card h3{margin:0;color:var(--ink)}
.sentence-pattern-card code{display:block;padding:.75rem;border-radius:12px;background:var(--field);font-weight:900;white-space:normal;color:var(--ink)}
.sentence-pattern-card>p{margin-top:auto;color:var(--muted)}
.sentence-tags span{font-size:.76rem;padding:.22rem .5rem;border-radius:999px;border:1px solid var(--border);background:var(--field);font-weight:800}
.sentence-colored-example{display:flex;flex-wrap:wrap;gap:.25rem;align-items:center;font-size:1.05rem;line-height:1.8}
.sentence-colored-example .grammar-token{padding:.18rem .35rem;border-radius:7px}
.sentence-flashcard{width:100%;min-height:230px;padding:1.5rem;border:2px dashed var(--border);border-radius:20px;background:var(--field);color:var(--ink);font:inherit;font-size:1.15rem;font-weight:900;line-height:1.65;cursor:pointer}
.sentence-flash-controls{margin-top:1rem}
.sentence-cheat-grid article{padding:1rem;border:1px solid var(--border);border-radius:16px;background:var(--field)}
.sentence-wordbank button,.sentence-dropzone button{cursor:grab}
.sentence-wordbank button.is-dragging{opacity:.45}
.sentence-result.warn{background:rgba(240,190,55,.2)}
html[data-theme=night] .grammar-token{color:#091021;border-color:rgba(255,255,255,.18)}
html[data-theme=night] .sentence-pattern-card,html[data-theme=night] .sentence-cheat-grid article,html[data-theme=night] .sentence-syllabus-grid article{box-shadow:0 10px 24px rgba(0,0,0,.2)}
@media(max-width:760px){.sentence-pattern-grid,.sentence-syllabus-grid,.sentence-cheat-grid{grid-template-columns:1fr}.sentence-reference-tile,.sentence-patterns-tile{flex-basis:100%!important}.sentence-pattern-toolbar{align-items:stretch;flex-direction:column}.sentence-pattern-toolbar label{min-width:0;width:100%}}

/*=============================================================================
V2.25 Michel Thomas Companion and Furigana Games visual parity
=============================================================================*/
.mt-progress-tile{flex-basis:360px}.mt-calendar-tile{flex-basis:880px}.mt-syllabus-tile{flex-basis:880px}.mt-reference-tile{flex-basis:1000px}.mt-writing-tile{flex-basis:760px}.mt-flashcard-tile{flex-basis:420px}.mt-routine-tile{flex-basis:520px}.games-summary-tile{flex-basis:420px}.games-table-tile{flex-basis:980px}
.mt-companion-callout{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:1rem}.mt-companion-callout span{padding:.35rem .65rem;border:1px solid var(--border);border-radius:999px;background:var(--field);font-size:.78rem;font-weight:900}.mt-progress-head,.games-summary-head{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.mt-progress-head>div,.games-summary-head>div{display:grid;gap:.2rem;padding:1rem;border:1px solid var(--border);border-radius:16px;background:var(--field)}.mt-progress-head strong,.games-summary-head strong{font-size:1.8rem}.mt-progress-head span,.games-summary-head span{color:var(--muted);font-size:.78rem;font-weight:800}.mt-progress-track{height:14px;margin:1rem 0;border-radius:999px;background:var(--field);overflow:hidden}.mt-progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary),var(--secondary))}
.mt-calendar-controls,.mt-reference-tools,.mt-flash-controls{display:flex;flex-wrap:wrap;gap:.75rem;align-items:end;margin-bottom:1rem}.mt-calendar-controls label{min-width:210px;margin:0}.mt-table-scroll,.games-table-scroll{overflow-x:auto;border:1px solid var(--border);border-radius:16px}.mt-calendar-table,.games-report-table{width:100%;min-width:760px;border-collapse:collapse}.mt-calendar-table th,.games-report-table th{padding:.8rem;text-align:left;background:var(--panel-soft)}.mt-calendar-table td,.games-report-table td{padding:.8rem;border-top:1px solid var(--border);vertical-align:top}.mt-calendar-table td small{display:block;color:var(--muted);margin-top:.25rem}.mt-calendar-table label{display:inline-flex;align-items:center;gap:.4rem;margin:0}
.mt-unit-grid,.mt-practice-grid,.mt-writing-grid,.mt-routine-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}.mt-unit,.mt-practice-card,.mt-writing-grid article,.mt-routine-grid article{padding:1rem;border:1px solid var(--border);border-radius:18px;background:var(--field)}.mt-unit.is-done{box-shadow:inset 5px 0 #5ab978}.mt-unit>div{display:flex;flex-wrap:wrap;gap:.4rem}.mt-unit>div span{padding:.25rem .5rem;border-radius:999px;background:var(--panel-soft);font-size:.74rem;font-weight:900}.mt-unit h3,.mt-practice-card h3,.mt-routine-grid h3{margin:.65rem 0 .35rem}.mt-practice-card{position:relative;display:grid;gap:.55rem}.mt-practice-card small{font-weight:900;color:var(--accent);text-transform:uppercase}.mt-practice-card .jp{font-size:1.2rem;font-weight:900}.mt-practice-card .mt-romaji{color:var(--muted);font-style:italic}.hide-mt-romaji .mt-romaji{display:none}.mt-practice-card .speak-button{position:absolute;right:.65rem;bottom:.65rem}.mt-hero-note{padding:1rem;margin-bottom:1rem;border-left:5px solid var(--accent);border-radius:0 16px 16px 0;background:var(--field)}
.mt-course-details,.mt-track-details{border:1px solid var(--border);border-radius:14px;background:var(--field);margin-bottom:.65rem;overflow:hidden}.mt-course-details>summary,.mt-track-details>summary{display:flex;justify-content:space-between;gap:1rem;padding:.8rem 1rem;cursor:pointer;font-weight:900}.mt-track-details{margin:.55rem}.mt-track-details>summary{background:var(--panel-soft)}.mt-track-details p{padding:0 1rem 1rem;margin:0;line-height:1.55;color:var(--muted)}.mt-writing-grid article strong{font-size:1.2rem}.mt-writing-lines{height:90px;margin-top:.8rem;border-radius:10px;background:repeating-linear-gradient(to bottom,transparent 0,transparent 27px,color-mix(in srgb,var(--ink) 18%,transparent) 28px)}.mt-flashcard{width:100%;min-height:250px;display:grid;place-items:center;gap:1rem;padding:1.5rem;border:2px dashed var(--border);border-radius:22px;background:var(--field);color:var(--ink);font:inherit;text-align:center;cursor:pointer}.mt-flashcard b{font-size:1.25rem;line-height:1.6}.mt-flashcard span{color:var(--muted);font-size:.8rem}.mt-routine-grid article{position:relative;padding-left:3.5rem}.mt-routine-grid article>span{position:absolute;left:1rem;top:1rem;display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff;font-weight:900}
.games-summary-head{grid-template-columns:repeat(3,minmax(0,1fr))}.games-system-chips{display:flex;flex-wrap:wrap;gap:.45rem;margin:1rem 0}.games-system-chips button{padding:.45rem .65rem;border:1px solid var(--border);border-radius:999px;background:var(--field);color:var(--ink);font-weight:800;cursor:pointer}.games-system-chips button.active{background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff;border-color:transparent}.games-system-chips small{opacity:.75}.games-intro{padding:1rem;border-radius:16px;background:var(--field)}.games-system-section{margin-bottom:1rem;padding:1rem;border:1px solid var(--border);border-radius:18px;background:var(--surface)}.games-system-section h2{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin:.1rem 0 1rem}.games-system-section h2 small{font-size:.8rem;color:var(--muted)}.games-report-table .jp{font-family:"Noto Sans JP","Yu Gothic",sans-serif;font-size:1.03rem}.games-report-table .product-id{font-family:ui-monospace,Consolas,monospace;white-space:nowrap}.unverified{color:var(--muted);font-style:italic}.native-empty{padding:2rem;text-align:center;color:var(--muted)}
html[data-theme=pixel] .mt-unit,html[data-theme=pixel] .mt-practice-card,html[data-theme=pixel] .games-system-section{background:#fffafd}html[data-theme=garden] .mt-unit,html[data-theme=garden] .mt-practice-card,html[data-theme=garden] .games-system-section{background:#fffaf0}html[data-theme=night] .mt-unit,html[data-theme=night] .mt-practice-card,html[data-theme=night] .games-system-section{background:#12192d;box-shadow:0 10px 24px rgba(0,0,0,.22)}
@media(max-width:760px){.mt-progress-head,.games-summary-head{grid-template-columns:1fr}.mt-calendar-controls,.mt-reference-tools,.mt-flash-controls{align-items:stretch;flex-direction:column}.mt-calendar-controls label{min-width:0;width:100%}.mt-unit-grid,.mt-practice-grid,.mt-writing-grid,.mt-routine-grid{grid-template-columns:1fr}.mt-table-scroll,.games-table-scroll{overflow:visible;border:0}.mt-calendar-table,.games-report-table{min-width:0;display:block}.mt-calendar-table thead,.games-report-table thead{display:none}.mt-calendar-table tbody,.mt-calendar-table tr,.mt-calendar-table td,.games-report-table tbody,.games-report-table tr,.games-report-table td{display:block;width:100%}.mt-calendar-table tr,.games-report-table tr{margin-bottom:.8rem;padding:.75rem;border:1px solid var(--border);border-radius:14px;background:var(--field)}.mt-calendar-table td,.games-report-table td{padding:.35rem;border:0}.games-report-table td::before{content:attr(data-label);display:block;color:var(--accent);font-size:.68rem;font-weight:900;text-transform:uppercase}.mt-progress-tile,.mt-calendar-tile,.mt-syllabus-tile,.mt-reference-tile,.mt-writing-tile,.mt-flashcard-tile,.mt-routine-tile,.games-summary-tile,.games-table-tile{flex-basis:100%!important}}

/* ============================================================================
   V2.26 — HOME HERO TITLE LEGIBILITY
   ----------------------------------------------------------------------------
   The scenic source artwork includes decorative lettering. This glass-backed
   title card masks that lettering so the live page title remains visually
   clean and readable in every application theme.
   ============================================================================ */
.hero-v210 .hero-copy{
  max-width:min(610px,92%);
  padding:clamp(22px,3vw,36px);
  border:1px solid color-mix(in srgb,var(--line) 78%,transparent);
  border-radius:24px;
  background:color-mix(in srgb,var(--surface) 91%,transparent);
  box-shadow:0 18px 44px color-mix(in srgb,var(--ink) 16%,transparent);
  -webkit-backdrop-filter:blur(13px) saturate(1.05);
  backdrop-filter:blur(13px) saturate(1.05);
}
html[data-theme=pixel] .hero-v210 .hero-copy{
  background:rgba(255,248,252,.92);
}
html[data-theme=garden] .hero-v210 .hero-copy{
  background:rgba(255,250,240,.93);
}
html[data-theme=night] .hero-v210 .hero-copy{
  background:rgba(10,18,43,.91);
  border-color:rgba(130,150,205,.35);
  box-shadow:0 20px 48px rgba(0,0,0,.42);
}
.hero-v210 .hero-copy h1,
.hero-v210 .hero-copy .jp-tagline,
.hero-v210 .hero-copy .hero-subtitle{
  position:relative;
  z-index:1;
}
@media(max-width:600px){
  .hero-v210 .hero-copy{
    max-width:100%;
    padding:20px 16px;
    border-radius:19px;
  }
}

/* ============================================================================
   V2.26 — SHARED AI COMPANION SAFETY LAYER
   ----------------------------------------------------------------------------
   Keeps the hosted companion above the workbench without interfering with the
   fixed navigation or mobile tab bar. The external widget owns its own visual
   presentation; these rules only provide safe page-level positioning.
   ============================================================================ */
iframe[src*="aminos.ai"],
[id*="aminos-chat"],
[class*="aminos-chat"]{
  z-index:1400!important;
}
@media(max-width:720px){
  iframe[src*="aminos.ai"],
  [id*="aminos-chat"],
  [class*="aminos-chat"]{
    margin-bottom:68px!important;
  }
}

/* MANABI KŌBŌ V1.0 PROFESSIONAL FOUNDATION */
html{--bg:var(--mk-bg);--surface:var(--mk-surface);--surface2:var(--mk-surface-alt);--ink:var(--mk-ink);--muted:var(--mk-muted);--primary:var(--mk-red);--secondary:var(--mk-red-dark);--accent:var(--mk-gold);--line:var(--mk-line);--shadow:var(--mk-shadow);--hero-filter:none}
body{background:linear-gradient(180deg,#f8f5ef 0,#f2eee7 100%);font-family:var(--mk-font-body);letter-spacing:.005em}
.topbar{height:var(--mk-topbar);padding:8px 18px;background:rgba(255,253,250,.96);border-bottom:1px solid var(--mk-line)}
.brand-wordmark{width:44px!important;height:44px!important;border-radius:50%}.brand-name{font-weight:850;letter-spacing:.06em}.brand-name small{display:block;color:var(--mk-red);font-size:.6rem;letter-spacing:.13em;text-transform:uppercase}
.desktop-nav a,.side-link{border-radius:8px;font-weight:700}.desktop-nav a:hover,.desktop-nav a.active,.side-link:hover,.side-link.active{background:#eee8df;color:var(--mk-red-dark)}
.sidebar{top:var(--mk-topbar);width:var(--mk-sidebar);background:#faf8f4;border-right:1px solid var(--mk-line)}.main-content{margin-left:var(--mk-sidebar);padding:24px}.app-layout{padding-top:var(--mk-topbar)}
.study-tip{background:#f0ebe3;border-radius:10px}.study-tip b{color:var(--mk-red-dark)}
.hero{min-height:360px;border-radius:var(--mk-radius-lg);background:#171717}.hero-scene{object-position:center}.hero-overlay{background:linear-gradient(90deg,rgba(20,20,20,.92),rgba(20,20,20,.64) 48%,rgba(20,20,20,.08));color:#fff}.hero-copy{max-width:610px}.hero h1{font-size:clamp(2.6rem,5vw,4.7rem);line-height:1;letter-spacing:-.04em;text-shadow:none}.hero h1 strong{color:#e3b786}.hero-subtitle{color:#ede8df!important;max-width:630px}.eyebrow,.section-kicker{color:var(--mk-red);letter-spacing:.14em}.hero .eyebrow{color:#e4ba83}.jp-tagline{font-family:var(--mk-font-jp);color:#fff}
.primary-button{background:var(--mk-red);border-color:var(--mk-red);border-radius:8px}.primary-button:hover{background:var(--mk-red-dark)}.secondary-button{border-radius:8px;background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.5)}
.dashboard-grid,.resource-catalog,.page-header,.workspace,.modes-card,.study-native,.native-tool{border-radius:var(--mk-radius)!important}.dashboard-tile,.guidance-card,.tool-card{border-radius:var(--mk-radius)!important}.tool-card{background:var(--mk-surface);border-color:var(--mk-line)}.tool-icon{border-radius:9px;background:#eee8df;color:var(--mk-red-dark)}
.page-header{background:linear-gradient(135deg,#fffdfa,#eee8df)}.page-header h1,.section-heading h2{font-family:var(--mk-font-jp)}
code,pre,.product-id{font-family:var(--mk-font-code)}
.theme-panel,[data-theme-open]{display:none!important}.report-button{border-radius:8px}.language-switch,.icon-button{border-radius:8px}
.professional-note{padding:13px;border-left:3px solid var(--mk-red);background:#eee8df;color:var(--mk-muted);font-size:.8rem;line-height:1.45}
.mk-category-grid{max-width:1260px;margin:18px auto;display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.mk-category{padding:20px;background:var(--mk-surface);border:1px solid var(--mk-line);border-radius:var(--mk-radius);box-shadow:var(--mk-shadow)}.mk-category h2{margin:7px 0 8px;font-size:1.15rem}.mk-category p{color:var(--mk-muted);font-size:.84rem;line-height:1.5}.mk-category a{color:var(--mk-red-dark);font-weight:800;text-decoration:none}
@media(max-width:1000px){.mk-category-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){.main-content{margin-left:0;padding:10px}.topbar{height:58px}.app-layout{padding-top:58px}.hero{min-height:440px}.hero-overlay{background:linear-gradient(180deg,rgba(20,20,20,.92),rgba(20,20,20,.66) 62%,rgba(20,20,20,.2))}.mk-category-grid{grid-template-columns:1fr}.sidebar{top:0}}


/* Manabi Kōbō v1.0.1: preserve the complete banner composition. */
.hero{
  min-height:420px;
  aspect-ratio:2.5 / 1;
}
.hero-scene{
  object-fit:cover;
  object-position:center center;
}
.hero-overlay{
  padding:clamp(28px,4vw,52px);
}
@media(max-width:1100px){
  .hero{aspect-ratio:auto;min-height:430px;}
}
@media(max-width:800px){
  .hero{aspect-ratio:auto;min-height:520px;}
  .hero-scene{object-position:58% center;}
}


/* Manabi Kobo v1.0.6: professional Kanji Hub study cards */
.kanji-card-grid{grid-template-columns:repeat(3,minmax(250px,1fr));align-items:start}
.kanji-result-count{display:flex;align-items:baseline;gap:.45rem;flex-wrap:wrap;margin-bottom:1rem;padding:.75rem 1rem;border:1px solid var(--border);border-radius:14px;background:var(--field)}
.kanji-result-count strong{font-size:1.25rem;color:var(--accent)}
.kanji-result-count span{flex-basis:100%;font-size:.78rem;color:var(--muted)}
.kanji-study-card{padding:0;overflow:hidden;background:var(--panel);box-shadow:0 8px 20px rgba(33,28,22,.07)}
.kanji-study-card>header{align-items:stretch;padding:0;background:linear-gradient(135deg,#f1ebe2,#fbf8f3)}
.kanji-symbol-block{position:relative;display:grid;place-items:center;min-width:92px;padding:1rem;background:#181a1b;color:#fffdfa}
.kanji-symbol-block .native-symbol{font-size:3.8rem;line-height:1}
.kanji-rank{position:absolute;right:.45rem;top:.35rem;font-size:.7rem;color:#e9c594}
.kanji-meaning{display:flex;flex:1;flex-direction:column;justify-content:center;gap:.25rem;padding:1rem}
.kanji-meaning small,.kanji-readings small,.memory-anchor__label small{font-size:.66rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-weight:900}
.kanji-meaning strong{font-size:1rem;line-height:1.35}
.kanji-readings{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--border)}
.kanji-readings>div{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:.55rem;padding:.75rem 1rem}
.kanji-readings>div+div{border-left:1px solid var(--border)}
.kanji-readings span{grid-row:1/3;display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:#b6331f;color:#fff;font-weight:900}
.kanji-readings b{font-family:"Noto Sans JP","Yu Gothic",sans-serif;font-size:.9rem;overflow-wrap:anywhere}
.memory-anchor{margin:.9rem;padding:.9rem;border:1px solid #dcc9b3;border-radius:14px;background:#fffaf2}
.memory-anchor__label{display:flex;align-items:center;gap:.55rem;margin-bottom:.65rem}
.memory-anchor__label>span{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:#c9a66b;color:#29251f;font-weight:900}
.memory-anchor__label>div{display:grid}
.memory-anchor__jp{margin:.25rem 0;font-family:"Noto Sans JP","Yu Gothic",sans-serif;font-size:1.08rem;font-weight:800;line-height:1.55}
.memory-anchor__furigana{margin:.1rem 0;color:#8a3a2a;font-family:"Noto Sans JP","Yu Gothic",sans-serif;font-size:.8rem;line-height:1.45}
.memory-anchor__meaning{margin:.45rem 0 0;color:var(--muted);font-size:.86rem}
.kanji-source-details{margin:.75rem .9rem 1rem;padding:.75rem;border-top:1px dashed var(--border)}
.kanji-source-details summary{cursor:pointer;font-weight:850;color:#812817}
.kanji-source-phrase{display:grid;gap:.15rem;margin:.7rem 0;padding:.7rem;border-radius:10px;background:var(--field)}
.kanji-source-phrase span{font-size:.78rem;color:#8a3a2a}
.kanji-source-phrase em{font-size:.78rem;color:var(--muted)}
.kanji-reading-legend{display:grid;gap:.45rem;margin-top:.8rem;padding:.8rem;border:1px solid var(--border);border-radius:12px;background:var(--field);font-size:.78rem}
.kanji-reading-legend span{display:flex;gap:.55rem;align-items:center}
.kanji-reading-legend b{display:grid;place-items:center;width:25px;height:25px;border-radius:7px;background:#b6331f;color:#fff}
body[data-page="kanji-hub"] [data-mk-tile="workspace"].mk-information-tile{width:min(930px,100%);flex-basis:min(930px,100%);height:700px}
body[data-page="tech-office-talk"] [data-mk-tile="deck"].mk-information-tile{width:min(930px,100%);flex-basis:min(930px,100%);height:690px}
body[data-page="tech-office-talk"] .phrase-list{grid-template-columns:repeat(3,minmax(230px,1fr))}
@media(max-width:1100px){.kanji-card-grid,body[data-page="tech-office-talk"] .phrase-list{grid-template-columns:repeat(2,minmax(230px,1fr))}}
@media(max-width:760px){.kanji-card-grid,body[data-page="tech-office-talk"] .phrase-list{grid-template-columns:1fr}.kanji-readings{grid-template-columns:1fr}.kanji-readings>div+div{border-left:0;border-top:1px solid var(--border)}}

/* Jōyō Kanji Hub */
.joyo-coverage{display:grid;grid-template-columns:auto 1fr;gap:.15rem .65rem;padding:.8rem 1rem;border:1px solid var(--border);border-radius:14px;background:linear-gradient(135deg,var(--field),var(--panel))}.joyo-coverage b{color:var(--accent)}.joyo-coverage strong{font-size:1.45rem}.joyo-coverage span{grid-column:1/-1;color:var(--muted);font-size:.78rem}.joyo-range{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.joyo-phase-note{padding:.65rem;border-left:3px solid var(--accent);background:var(--field);font-size:.78rem;color:var(--muted)}
.joyo-card{cursor:pointer;transition:transform .16s ease,box-shadow .16s ease}.joyo-card:hover,.joyo-card:focus-visible{transform:translateY(-2px);box-shadow:0 12px 26px rgba(33,28,22,.14);outline:2px solid var(--accent);outline-offset:2px}.joyo-school-badge{font-size:.72rem;color:var(--muted)}.joyo-components{padding:.75rem 1rem;border-bottom:1px solid var(--border)}.joyo-components small{display:block;margin-bottom:.45rem;color:var(--muted);font-weight:800}.joyo-components>div{display:flex;gap:.35rem;flex-wrap:wrap}.joyo-component-chip{min-width:34px;padding:.3rem .5rem;border:1px solid var(--border);border-radius:8px;background:var(--field);color:var(--text);font-family:"Noto Sans JP","Yu Gothic",sans-serif;font-size:1rem}.joyo-component-chip.is-primary{border-color:#b6331f}.joyo-component-chip.is-selected{background:var(--accent);color:#fff;border-color:var(--accent)}.joyo-card footer{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.65rem .9rem}.joyo-card footer span{font-size:.7rem;color:var(--muted)}.joyo-audio{padding:.4rem .6rem;border:1px solid var(--border);border-radius:9px;background:var(--field);color:var(--text);font-weight:800}.joyo-audio.is-speaking{background:var(--accent);color:#fff}
.joyo-writing-dialog{--panel:#fffdfa;--field:#f2ede5;--border:#d8d0c4;--text:#181a1b;--muted:#666b6f;--accent:#9b702f;width:min(920px,calc(100vw - 2rem));max-height:calc(100vh - 2rem);padding:0;border:0;border-radius:18px;overflow:auto;background:#fffdfa;color:#181a1b;opacity:1;box-shadow:0 25px 80px rgba(0,0,0,.45)}.joyo-writing-dialog::backdrop{background:rgba(8,15,25,.72)}.joyo-dialog-shell{padding:1.15rem;background:#fffdfa;border-radius:inherit;isolation:isolate}.joyo-dialog-shell>header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--border);padding-bottom:.75rem}.joyo-dialog-shell>header h2{margin:.2rem 0 0}.joyo-dialog-shell>header button{border:0;background:transparent;color:inherit;font-size:2rem}.joyo-dialog-grid{display:grid;grid-template-columns:minmax(280px,1fr) minmax(260px,.8fr);gap:1rem;padding:1rem 0}.joyo-writing-stage{min-height:360px;display:grid;place-items:center;border:1px solid var(--border);border-radius:14px;background:var(--field)}.joyo-stroke-svg{width:min(100%,390px);height:auto;fill:none;stroke:var(--text);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.joyo-stroke-svg path{transition:stroke-dashoffset .55s ease,opacity .2s ease}.joyo-stroke-svg path.is-active{stroke:#b6331f;stroke-width:4}.joyo-stroke-svg text{fill:var(--accent);stroke:none;font:700 7px sans-serif}.joyo-detail-glyph{font:700 5rem/1 "Noto Sans JP","Yu Gothic",sans-serif}.joyo-dialog-details button{margin:.15rem}.joyo-component-focus{min-height:2rem}.joyo-animation-controls{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.joyo-animation-controls button,.joyo-animation-controls select{padding:.5rem .65rem;border:1px solid var(--border);border-radius:9px;background:var(--field);color:var(--text)}.joyo-animation-controls label{display:flex;align-items:center;gap:.35rem}.joyo-progress{text-align:center;color:var(--muted);font-weight:800}
html[data-theme="night"] .kanji-symbol-block{background:#090d10;color:#f8f3ec;border-right:1px solid var(--border)}
html[data-theme="night"] .joyo-writing-dialog{--panel:#171c20;--field:#20272c;--border:#3a454d;--text:#f5f0e9;--muted:#bac1c5;--accent:#e1ad5d;background:#171c20;color:#f5f0e9}
html[data-theme="night"] .joyo-dialog-shell{background:#171c20;color:#f5f0e9}
.native-toolbar-help{margin-left:auto;width:28px;height:28px;border:1px solid var(--border);border-radius:50%;background:var(--field);color:var(--text);font-weight:900;cursor:pointer}.native-toolbar-help+.native-minimize{margin-left:0}.joyo-help-dialog{--border:#d8d0c4;width:min(590px,calc(100vw - 2rem));padding:0;border:1px solid var(--border);border-radius:18px;background:#fffdfa;color:#181a1b;box-shadow:0 25px 80px rgba(0,0,0,.45)}.joyo-help-dialog::backdrop{background:rgba(8,15,25,.72)}.joyo-help-dialog form{padding:1.2rem}.joyo-help-dialog header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding-bottom:.8rem;border-bottom:1px solid var(--border)}.joyo-help-dialog h2{margin:.2rem 0 0}.joyo-help-dialog header button{border:0;background:transparent;color:inherit;font-size:2rem;cursor:pointer}.joyo-help-dialog ol{margin:1rem 0 .25rem;padding-left:1.4rem}.joyo-help-dialog li{padding:.3rem 0;line-height:1.55}html[data-theme="night"] .joyo-help-dialog{--border:#3a454d;background:#171c20;color:#f5f0e9}
@media(max-width:700px){.joyo-dialog-grid{grid-template-columns:1fr}.joyo-writing-stage{min-height:280px}.joyo-dialog-details{max-height:34vh;overflow:auto}.joyo-range{grid-template-columns:1fr}.joyo-card footer{align-items:flex-start;flex-direction:column}}
@media(prefers-reduced-motion:reduce){.joyo-card,.joyo-stroke-svg path{transition:none!important}}

/* =============================================================================
   Manabi Kōbō v1.0.7 — compact Kanji Radicals defaults
   Keeps the radicals tool immediately useful without opening as a full-page wall.
   ============================================================================= */
body[data-page="radicals"] .native-canvas{
  align-items:flex-start;
  justify-content:flex-start;
  gap:14px;
}
body[data-page="radicals"] [data-native-tile="controls"]{
  width:290px;
  flex-basis:290px;
}
body[data-page="radicals"] [data-native-tile="workspace"]{
  width:min(820px,calc(100% - 620px));
  flex-basis:min(820px,calc(100% - 620px));
  height:560px;
  min-height:420px;
}
body[data-page="radicals"] [data-native-tile="guide"]{
  width:290px;
  flex-basis:290px;
}
body[data-page="radicals"] .radical-card-grid{
  grid-template-columns:repeat(4,minmax(170px,1fr));
  gap:10px;
}
body[data-page="radicals"] .radical-card{
  --radical-red:var(--accent);
  padding:12px;
  border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line));
  border-top:4px solid var(--accent);
  border-radius:14px;
  background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 94%,var(--soft)) 0%,var(--surface) 100%);
  box-shadow:0 8px 18px color-mix(in srgb,var(--ink) 7%,transparent);
}
body[data-page="radicals"] .radical-symbol{
  color:var(--accent);
  font-size:48px;
  padding:2px 0 0;
}
body[data-page="radicals"] .radical-card h3{
  margin:5px 0 1px;
  font-size:.96rem;
}
body[data-page="radicals"] .radical-card p{
  margin:4px 0;
  font-size:.79rem;
  line-height:1.38;
}
body[data-page="radicals"] .radical-position-grid{
  grid-template-columns:repeat(3,14px);
  grid-template-rows:repeat(3,14px);
  margin:6px auto 8px;
}
body[data-page="radicals"] .radical-examples{
  padding-top:5px;
  font-size:.78rem;
}
body[data-page="radicals"] .radical-example{
  min-height:38px;
  padding:3px 7px;
  border-color:color-mix(in srgb,var(--accent) 18%,var(--line));
  background:color-mix(in srgb,var(--soft) 72%,var(--surface));
  font-size:22px;
}
body[data-page="radicals"] .radical-result-count{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  margin:0 0 10px;
  padding:4px 10px;
  border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line));
  border-radius:999px;
  background:color-mix(in srgb,var(--accent) 8%,var(--surface));
  color:var(--accent-strong,var(--accent));
}
@media(max-width:1250px){
  body[data-page="radicals"] [data-native-tile="workspace"]{width:calc(100% - 320px);flex-basis:calc(100% - 320px)}
  body[data-page="radicals"] [data-native-tile="guide"]{width:100%;flex-basis:100%}
  body[data-page="radicals"] .radical-card-grid{grid-template-columns:repeat(3,minmax(170px,1fr))}
}
@media(max-width:900px){
  body[data-page="radicals"] [data-native-tile="controls"],
  body[data-page="radicals"] [data-native-tile="workspace"],
  body[data-page="radicals"] [data-native-tile="guide"]{width:100%;flex-basis:100%}
  body[data-page="radicals"] .radical-card-grid{grid-template-columns:repeat(2,minmax(160px,1fr))}
}
@media(max-width:760px){
  body[data-page="radicals"] [data-native-tile="workspace"]{height:auto;min-height:0}
  body[data-page="radicals"] .radical-card-grid{grid-template-columns:1fr}
}

/* =============================================================================
   Manabi Kōbō v1.0.8 — Sentence Builder default workspace
   Establishes a useful two-row desktop layout while preserving the shared
   drag, resize, scroll, minimize, save, and reset behavior.
   ============================================================================= */
body[data-page="sentence-builder"] .native-canvas{
  align-items:flex-start;
  justify-content:flex-start;
  gap:12px;
}

/* First row: reference material and core patterns. */
body[data-page="sentence-builder"] [data-native-tile="color-key"]{
  order:1;
  width:230px;
  flex-basis:230px;
  height:390px;
}
body[data-page="sentence-builder"] [data-native-tile="syllabus"]{
  order:2;
  width:190px;
  flex-basis:190px;
  height:390px;
}
body[data-page="sentence-builder"] [data-native-tile="patterns"]{
  order:3;
  width:min(620px,calc(100% - 720px));
  flex-basis:min(620px,calc(100% - 720px));
  height:390px;
}
body[data-page="sentence-builder"] [data-native-tile="flashcards"]{
  order:4;
  width:235px;
  flex-basis:235px;
  height:390px;
}

/* Second row: quick reference, controls, interactive builder, and notes. */
body[data-page="sentence-builder"] [data-native-tile="cheatsheet"]{
  order:5;
  width:230px;
  flex-basis:230px;
  height:430px;
}
body[data-page="sentence-builder"] [data-native-tile="controls"]{
  order:6;
  width:250px;
  flex-basis:250px;
  height:430px;
}
body[data-page="sentence-builder"] [data-native-tile="workspace"]{
  order:7;
  width:min(555px,calc(100% - 790px));
  flex-basis:min(555px,calc(100% - 790px));
  height:430px;
}
body[data-page="sentence-builder"] [data-native-tile="guide"]{
  order:8;
  width:235px;
  flex-basis:235px;
  height:430px;
}

/* Keep the dense learning references readable inside their compact defaults. */
body[data-page="sentence-builder"] .sentence-pattern-grid{
  grid-template-columns:repeat(3,minmax(185px,1fr));
  gap:.8rem;
}
body[data-page="sentence-builder"] .sentence-syllabus-grid,
body[data-page="sentence-builder"] .sentence-cheat-grid{
  grid-template-columns:1fr;
  gap:.8rem;
}
body[data-page="sentence-builder"] .sentence-pattern-card,
body[data-page="sentence-builder"] .sentence-syllabus-grid article,
body[data-page="sentence-builder"] .sentence-cheat-grid article{
  padding:.85rem;
}
body[data-page="sentence-builder"] .sentence-flashcard{
  min-height:245px;
}

@media(max-width:1320px){
  body[data-page="sentence-builder"] [data-native-tile="patterns"]{
    width:560px;
    flex-basis:560px;
  }
  body[data-page="sentence-builder"] [data-native-tile="workspace"]{
    width:520px;
    flex-basis:520px;
  }
  body[data-page="sentence-builder"] .sentence-pattern-grid{
    grid-template-columns:repeat(2,minmax(200px,1fr));
  }
}

@media(max-width:1040px){
  body[data-page="sentence-builder"] [data-native-tile]{
    width:calc(50% - 8px);
    flex-basis:calc(50% - 8px);
  }
  body[data-page="sentence-builder"] [data-native-tile="patterns"],
  body[data-page="sentence-builder"] [data-native-tile="workspace"]{
    width:100%;
    flex-basis:100%;
  }
}

@media(max-width:760px){
  body[data-page="sentence-builder"] [data-native-tile]{
    width:100%;
    height:auto;
    flex-basis:100%!important;
  }
  body[data-page="sentence-builder"] .sentence-pattern-grid{
    grid-template-columns:1fr;
  }
}


/*=============================================================================
Manabi Kōbō v1.0.9 — Audio Course Companion compact default workspace
=============================================================================*/
body[data-page="audio-companion"] .native-canvas{
  gap:.8rem;
  align-items:flex-start;
}
body[data-page="audio-companion"] [data-native-tile="controls"]{
  order:1;
  flex-basis:220px;
  width:220px;
  height:405px;
}
body[data-page="audio-companion"] [data-native-tile="workspace"]{
  order:2;
  flex-basis:760px;
  width:760px;
  height:405px;
}
body[data-page="audio-companion"] [data-native-tile="guide"]{
  order:3;
  flex-basis:220px;
  width:220px;
  height:405px;
}
body[data-page="audio-companion"] [data-native-tile="mt-syllabus"]{
  order:4;
  flex-basis:455px;
  width:455px;
  height:350px;
}
body[data-page="audio-companion"] [data-native-tile="mt-calendar"]{
  order:5;
  flex-basis:535px;
  width:535px;
  height:350px;
}
body[data-page="audio-companion"] [data-native-tile="mt-routine"]{
  order:6;
  flex-basis:220px;
  width:220px;
  height:350px;
}
body[data-page="audio-companion"] [data-native-tile="mt-progress"]{
  order:7;
  flex-basis:300px;
  width:300px;
  height:290px;
}
body[data-page="audio-companion"] [data-native-tile="mt-reference"]{
  order:8;
  flex-basis:610px;
  width:610px;
  height:290px;
}
body[data-page="audio-companion"] [data-native-tile="mt-writing"]{
  order:9;
  flex-basis:480px;
  width:480px;
  height:290px;
}
body[data-page="audio-companion"] [data-native-tile="mt-flashcards"]{
  order:10;
  flex-basis:340px;
  width:340px;
  height:290px;
}
body[data-page="audio-companion"] .mt-practice-grid{
  grid-template-columns:repeat(4,minmax(165px,1fr));
  gap:.8rem;
}
body[data-page="audio-companion"] .mt-unit-grid{
  grid-template-columns:repeat(3,minmax(190px,1fr));
  gap:.8rem;
}
body[data-page="audio-companion"] .mt-routine-grid{
  grid-template-columns:1fr;
}
@media(max-width:1250px) and (min-width:761px){
  body[data-page="audio-companion"] [data-native-tile="workspace"]{flex-basis:650px;width:650px}
  body[data-page="audio-companion"] [data-native-tile="guide"]{flex-basis:260px;width:260px}
  body[data-page="audio-companion"] [data-native-tile="mt-syllabus"],
  body[data-page="audio-companion"] [data-native-tile="mt-calendar"]{flex-basis:calc(50% - .5rem);width:calc(50% - .5rem)}
  body[data-page="audio-companion"] [data-native-tile="mt-routine"]{flex-basis:320px;width:320px}
  body[data-page="audio-companion"] .mt-practice-grid{grid-template-columns:repeat(3,minmax(165px,1fr))}
}
@media(max-width:900px) and (min-width:761px){
  body[data-page="audio-companion"] [data-native-tile]{flex-basis:calc(50% - .5rem);width:calc(50% - .5rem)}
  body[data-page="audio-companion"] [data-native-tile="workspace"]{flex-basis:100%;width:100%}
  body[data-page="audio-companion"] .mt-practice-grid{grid-template-columns:repeat(2,minmax(165px,1fr))}
}
@media(max-width:760px){
  body[data-page="audio-companion"] [data-native-tile]{order:initial!important;width:100%!important;height:auto!important}
  body[data-page="audio-companion"] .mt-practice-grid{grid-template-columns:1fr}
}

/* Installable app controls */
.install-app-button {
  appearance: none;
  border: 1px solid color-mix(in srgb, var(--mk-accent, #b63b20) 45%, transparent);
  border-radius: 9px;
  background: var(--mk-accent, #b63b20);
  color: #fff;
  padding: .52rem .78rem;
  font: inherit;
  font-weight: 750;
  cursor: pointer;
  white-space: nowrap;
}
.install-app-button:hover { filter: brightness(.94); }
.install-app-button[hidden] { display: none !important; }
.install-dialog[hidden] { display: none; }
.install-dialog {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: grid;
  place-items: center;
  padding: 1rem;
  background: rgba(20, 18, 16, .62);
  backdrop-filter: blur(5px);
}
.install-dialog-card {
  position: relative;
  width: min(620px, 100%);
  border: 1px solid var(--mk-border, #d8cfc1);
  border-radius: 18px;
  background: var(--mk-surface, #fffdf8);
  box-shadow: 0 24px 70px rgba(0, 0, 0, .24);
  padding: 1.5rem;
  text-align: center;
}
.install-dialog-icon { width: 84px; height: 84px; border-radius: 20px; }
.install-dialog-card h2 { margin: .7rem 0 1rem; }
.install-dialog-close {
  position: absolute;
  top: .65rem;
  right: .75rem;
  border: 0;
  background: transparent;
  font-size: 1.65rem;
  line-height: 1;
  cursor: pointer;
}
.install-platform-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; text-align: left; }
.install-platform-grid > div { border: 1px solid var(--mk-border, #d8cfc1); border-radius: 12px; background: var(--mk-surface-soft, #f4eee5); padding: 1rem; }
.install-platform-grid h3 { margin: 0 0 .4rem; }
.install-platform-grid p { margin: 0; line-height: 1.5; }
.install-dialog-open { overflow: hidden; }
@media (max-width: 680px) {
  .install-app-button { padding: .45rem .58rem; font-size: .82rem; }
  .install-platform-grid { grid-template-columns: 1fr; }
}

/* v1.0.13 header layout controls and product footer */
.header-layout-actions{display:flex;align-items:center;gap:7px;padding-right:0}
button.header-layout-button{
  -webkit-appearance:none!important;
  appearance:none!important;
  box-sizing:border-box!important;
  min-width:40px;
  height:40px;
  margin:0!important;
  padding:0 11px!important;
  border:1px solid var(--mk-line,var(--line,#d8cfc1))!important;
  border-radius:8px!important;
  background:var(--mk-surface,var(--surface,#fffdf8))!important;
  color:var(--mk-ink,var(--ink,#1e1e1e))!important;
  box-shadow:none!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px;
  font:inherit!important;
  font-size:.76rem!important;
  font-weight:900!important;
  line-height:1!important;
  text-decoration:none!important;
  white-space:nowrap;
  cursor:pointer;
  transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease;
}
button.header-layout-button:hover{
  background:var(--mk-surface-soft,var(--surface2,#f4eee5))!important;
  border-color:var(--mk-red,var(--primary,#b63b20))!important;
  color:var(--mk-red-dark,#8f2e1a)!important;
  transform:translateY(-1px);
}
button.header-layout-button:active{transform:translateY(0)}
button.header-layout-button:focus-visible{outline:3px solid rgba(182,59,32,.20);outline-offset:2px}
button.header-layout-button--save{
  background:var(--mk-surface,var(--surface,#fffdf8))!important;
  border-color:var(--mk-line,var(--line,#d8cfc1))!important;
  color:var(--mk-ink,var(--ink,#1e1e1e))!important;
}
.header-layout-icon{display:inline-grid;place-items:center;width:15px;height:15px;font-size:.86rem;line-height:1}
.site-footer{display:flex;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap;max-width:1100px;margin:26px auto 8px;padding:18px 16px;color:var(--mk-muted,#6f7479);font-size:.82rem;text-align:center;border-top:1px solid var(--mk-line,#d8cfc1)}
.site-footer a{color:var(--mk-primary,#b63b20);font-weight:900;text-decoration:none}
.site-footer a:hover{text-decoration:underline}
@media(max-width:1100px){.header-layout-label{display:none}button.header-layout-button{width:40px;min-width:40px;padding:0!important}.header-layout-actions{gap:7px}}
@media(max-width:800px){.header-layout-actions{display:none}.site-footer-separator{display:none}.site-footer{flex-direction:column;gap:4px;padding-bottom:84px}}


/* v1.0.14 — Home layout controls use the exact language-switch control chrome. */
.top-actions .header-layout-actions {
  display: flex;
  align-items: center;
  gap: 7px;
}
.top-actions button.language-switch.header-layout-button {
  -webkit-appearance: none !important;
  appearance: none !important;
  width: auto !important;
  min-width: 40px !important;
  height: 40px !important;
  padding: 0 11px !important;
  margin: 0 !important;
  border: 1px solid var(--line) !important;
  border-radius: 12px !important;
  background: var(--surface) !important;
  color: var(--ink) !important;
  box-shadow: none !important;
  display: inline-flex !important;
  place-items: unset !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 5px !important;
  font: inherit !important;
  font-size: .76rem !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  cursor: pointer !important;
}
.top-actions button.language-switch.header-layout-button:hover,
.top-actions .language-switch:hover {
  background: var(--surface2) !important;
  border-color: var(--primary) !important;
  color: var(--primary) !important;
}
@media(max-width:1100px) {
  .top-actions button.language-switch.header-layout-button {
    width: 40px !important;
    min-width: 40px !important;
    padding: 0 !important;
  }
}

/* v1.0.15 — Reference Hub / About page */
.reference-hero{max-width:1180px;margin:0 auto 18px;display:grid;grid-template-columns:minmax(0,1.22fr) minmax(330px,.78fr);gap:18px;align-items:stretch}
.reference-hero-copy,.creator-card,.reference-about-panel,.affiliate-disclosure-panel,.book-feature-card,.resource-card,.reference-closing{border:1px solid var(--line);background:var(--surface);border-radius:18px;box-shadow:var(--shadow)}
.reference-hero-copy{padding:clamp(24px,4vw,48px);background:linear-gradient(135deg,var(--surface) 0%,#f4eadb 100%);position:relative;overflow:hidden}
.reference-hero-copy:after{content:"参";position:absolute;right:24px;bottom:-38px;font-size:11rem;font-weight:900;color:rgba(182,59,32,.06);line-height:1}
.reference-hero h1{font-size:clamp(2.7rem,6vw,5rem);margin:.2rem 0 .6rem;letter-spacing:-.045em}
.reference-hero-copy>p{font-size:1.08rem;line-height:1.7;max-width:780px;color:var(--muted)}
.reference-flags{display:flex;align-items:center;gap:26px;margin-top:32px;position:relative;z-index:1}
.reference-flags figure{margin:0;display:grid;gap:7px;justify-items:center;font-weight:900;color:var(--ink)}
.reference-flags img{width:156px;height:98px;object-fit:cover;border:1px solid var(--line);border-radius:14px;background:white;padding:7px;box-shadow:0 8px 22px rgba(30,30,30,.08)}
.reference-bridge{font-size:1.7rem;color:var(--primary);font-weight:900}
.creator-card{padding:28px;display:flex;flex-direction:column;justify-content:center;gap:18px;background:var(--ink);color:#fff}
.creator-card p{color:#e9e2d6;line-height:1.65}
.creator-monogram{width:76px;height:76px;border-radius:22px;display:grid;place-items:center;background:var(--primary);color:#fff;font-size:1.7rem;font-weight:1000;border:3px solid rgba(255,255,255,.3)}
.reference-about-panel{max-width:1180px;margin:0 auto 18px;padding:28px;display:grid;grid-template-columns:minmax(240px,.75fr) minmax(0,1.5fr);gap:28px}
.reference-about-panel h2{font-size:clamp(1.6rem,3vw,2.5rem);margin:.25rem 0}
.reference-about-copy{display:grid;gap:12px}.reference-about-copy p{margin:0;line-height:1.72;color:var(--muted)}
.affiliate-disclosure-panel{max-width:1180px;margin:0 auto 28px;padding:18px 22px;border-left:5px solid var(--primary);display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:center;background:#fff8ed}
.affiliate-disclosure-panel strong{color:var(--primary);white-space:nowrap}.affiliate-disclosure-panel p{margin:0;line-height:1.55;color:var(--muted)}
.reference-section{max-width:1180px;margin:0 auto 32px}.reference-section .section-heading{margin-bottom:14px}.reference-section .section-heading p{color:var(--muted);max-width:800px}
.book-feature-card{padding:22px;display:grid;grid-template-columns:220px minmax(0,1fr);gap:28px;align-items:center}
.book-feature-card>img{width:100%;max-height:330px;object-fit:contain;border-radius:12px;box-shadow:0 14px 36px rgba(30,30,30,.18)}
.book-feature-card h3{font-size:clamp(1.5rem,3vw,2.3rem);margin:.55rem 0}.book-feature-card p{line-height:1.7;color:var(--muted)}
.resource-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.resource-card{padding:20px;display:flex;flex-direction:column;align-items:flex-start;min-height:270px;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.resource-card:hover{transform:translateY(-3px);border-color:rgba(182,59,32,.45);box-shadow:0 16px 34px rgba(30,30,30,.11)}
.resource-card h3{margin:.65rem 0 .45rem;font-size:1.22rem}.resource-card p{color:var(--muted);line-height:1.62;margin:0 0 18px}.resource-card .resource-button{margin-top:auto}
.resource-badge{display:inline-flex;align-items:center;min-height:25px;padding:4px 9px;border-radius:999px;font-size:.66rem;font-weight:1000;letter-spacing:.08em}
.resource-badge--affiliate{background:#f8ded5;color:#922c18}.resource-badge--direct{background:#e4eee5;color:#245934}.resource-badge--neutral{background:rgba(255,255,255,.16);color:#fff}
.resource-button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 14px;border-radius:10px;background:var(--primary);color:#fff!important;text-decoration:none;font-weight:900;border:1px solid var(--primary);transition:transform .15s ease,background .15s ease}
.resource-button:hover{background:var(--primary-dark,#8f2e1a);transform:translateY(-1px)}
.resource-button--secondary{background:var(--surface);color:var(--ink)!important;border-color:var(--line)}.creator-card .resource-button--secondary{background:#fff;color:var(--ink)!important}
.resource-button--secondary:hover{background:var(--surface2);border-color:var(--primary);color:var(--primary)!important}
.resource-button-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:auto}.resource-link{font-weight:900;color:var(--primary)}
.resource-card--brand{grid-column:span 2;display:grid;grid-template-columns:145px minmax(0,1fr);gap:20px;align-items:center}.resource-card--brand>img{width:100%;max-height:145px;object-fit:contain}
.reference-closing{max-width:1180px;margin:0 auto 24px;padding:26px;display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:center;background:linear-gradient(135deg,var(--ink),#34312d);color:#fff}.reference-closing p{color:#e9e2d6;line-height:1.7;margin:0}
@media(max-width:980px){.reference-hero{grid-template-columns:1fr}.creator-card{flex-direction:row;align-items:center}.resource-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.reference-about-panel{grid-template-columns:1fr}.resource-card--brand{grid-column:span 2}}
@media(max-width:680px){.reference-hero-copy{padding:24px}.reference-flags{gap:14px}.reference-flags img{width:116px;height:74px}.creator-card{flex-direction:column;align-items:flex-start}.affiliate-disclosure-panel{grid-template-columns:1fr;gap:6px}.book-feature-card{grid-template-columns:1fr}.book-feature-card>img{max-width:210px;margin:auto}.resource-card-grid{grid-template-columns:1fr}.resource-card--brand{grid-column:auto;grid-template-columns:100px minmax(0,1fr)}.reference-closing{grid-template-columns:1fr}.reference-hero-copy:after{font-size:7rem}}

/* v1.0.16 — Reference Hub learning stack and curated path */
.current-stack-panel{max-width:1180px;margin:0 auto 28px;padding:24px 26px;display:grid;grid-template-columns:72px minmax(0,1fr);gap:22px;align-items:start;background:linear-gradient(135deg,#fffaf2,#f4eadb);border:1px solid var(--line);border-radius:18px;box-shadow:0 12px 28px rgba(30,30,30,.07)}
.current-stack-icon{width:64px;height:64px;border-radius:18px;display:grid;place-items:center;background:var(--primary);color:#fff;font-family:"Noto Serif JP",serif;font-size:1.8rem;font-weight:900;box-shadow:0 8px 18px rgba(182,59,32,.24)}
.current-stack-panel h2{margin:.25rem 0 .5rem;font-size:clamp(1.45rem,2.8vw,2.15rem)}
.current-stack-panel p{margin:0;color:var(--muted);line-height:1.7;max-width:960px}
.current-stack-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.current-stack-tags span{padding:7px 11px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:.76rem;font-weight:900;color:var(--ink)}
.learning-path-section{padding-top:4px}
.learning-path-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.learning-path-grid article{display:grid;grid-template-columns:46px minmax(0,1fr);gap:14px;padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:15px;box-shadow:0 8px 20px rgba(30,30,30,.06)}
.learning-path-grid article:hover{border-color:rgba(182,59,32,.45);box-shadow:0 12px 26px rgba(30,30,30,.09)}
.path-step{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--primary);color:#fff;font-weight:1000}
.learning-path-grid h3{margin:0 0 5px;font-size:1.08rem}.learning-path-grid p{margin:0 0 5px;color:var(--primary);font-weight:900}.learning-path-grid small{display:block;color:var(--muted);line-height:1.5;font-size:.8rem}
.learning-path-grid .path-daily{grid-column:1/-1;background:linear-gradient(135deg,var(--ink),#39342f);color:#fff}.learning-path-grid .path-daily p{color:#f2c58d}.learning-path-grid .path-daily small{color:#e9e2d6}
@media(max-width:760px){.current-stack-panel{grid-template-columns:1fr}.learning-path-grid{grid-template-columns:1fr}.learning-path-grid .path-daily{grid-column:auto}}


/* v1.0.17 — Centered Reference Hub feature tiles */
.reference-feature-tile{
  width:min(1180px,calc(100% - 32px));
  margin-left:auto;
  margin-right:auto;
  box-sizing:border-box;
}
.current-stack-panel.reference-feature-tile{
  grid-template-columns:76px minmax(0,1fr);
  padding:30px 34px;
  background:linear-gradient(135deg,#fffdf8 0%,#f7eee1 100%);
  border:1px solid rgba(182,59,32,.22);
  box-shadow:0 16px 38px rgba(30,30,30,.09);
}
.current-stack-panel.reference-feature-tile>div:last-child{
  max-width:960px;
}
.current-stack-panel.reference-feature-tile .section-kicker,
.current-stack-panel.reference-feature-tile h2{
  display:block;
}
.learning-path-section.reference-feature-tile{
  padding:30px 32px 32px;
  border:1px solid var(--line);
  border-radius:18px;
  background:var(--surface);
  box-shadow:0 16px 38px rgba(30,30,30,.09);
}
.learning-path-section.reference-feature-tile .section-heading{
  max-width:820px;
  margin:0 auto 22px;
  text-align:center;
}
.learning-path-section.reference-feature-tile .section-heading p{
  margin:.55rem auto 0;
}
.learning-path-section.reference-feature-tile .learning-path-grid{
  max-width:1060px;
  margin:0 auto;
}
.learning-path-section.reference-feature-tile .learning-path-grid article{
  min-height:132px;
  align-content:start;
  background:linear-gradient(180deg,#fff 0%,#fbf7f0 100%);
}
.learning-path-section.reference-feature-tile .learning-path-grid .path-daily{
  background:linear-gradient(135deg,var(--ink),#39342f);
}
@media(max-width:760px){
  .reference-feature-tile{width:min(100% - 20px,1180px)}
  .current-stack-panel.reference-feature-tile{grid-template-columns:1fr;padding:24px}
  .learning-path-section.reference-feature-tile{padding:24px 18px}
  .learning-path-section.reference-feature-tile .section-heading{text-align:left}
}

/* =============================================================================
Home catalog workbench — movable/resizable catalog tiles
============================================================================= */
.catalog-layout-note{margin:-10px 0 16px;color:var(--muted);font-size:.75rem}.tool-grid-workbench[data-mk-canvas]{display:flex;flex-wrap:wrap;gap:12px;align-items:stretch}.catalog-tile[data-mk-tile]{flex:1 1 360px;width:calc(33.333% - 8px);min-width:280px;min-height:145px;box-shadow:none;border-radius:16px;background:var(--surface2)}.catalog-tile-toolbar{min-height:35px!important;padding:5px 9px!important;background:color-mix(in srgb,var(--surface) 70%,var(--surface2))!important;font-size:.68rem!important}.catalog-tile-toolbar [data-mk-drag]{font-size:.8rem}.catalog-tile .tool-card{height:100%;width:100%;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:auto}.catalog-tile .tool-card:hover{transform:none;box-shadow:none}.catalog-tile.is-minimized{min-height:0!important}.catalog-tile.is-minimized .catalog-tile-toolbar{border-bottom:0}.catalog-tile.is-minimized .tool-card{display:none!important}@media(max-width:900px){.catalog-tile[data-mk-tile]{width:calc(50% - 6px);flex-basis:calc(50% - 6px)}}@media(max-width:600px){.tool-grid-workbench[data-mk-canvas]{display:grid;grid-template-columns:1fr}.catalog-tile[data-mk-tile]{width:100%!important;min-width:0;flex-basis:auto!important}.catalog-layout-note{line-height:1.45}}

/* How-to placeholder */
.stub-page{max-width:980px;margin:0 auto;padding:24px}.stub-page h1{margin:.35rem 0 1.2rem}.stub-card{min-height:260px;display:grid;place-items:center;border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:var(--shadow)}.stub-card strong{font-size:clamp(1.4rem,3vw,2.2rem);color:var(--primary)}

/* =============================================================================
Global Day / Night mode v1.0.19
Keeps the professional Manabi Kōbō palette while switching the complete shell,
workbenches, reader, guides, and native tools between light and dark surfaces.
============================================================================= */
html[data-theme="day"]{
  --bg:var(--mk-bg);--surface:var(--mk-surface);--surface2:var(--mk-surface-alt);
  --ink:var(--mk-ink);--muted:var(--mk-muted);--primary:var(--mk-red);
  --secondary:var(--mk-red-dark);--accent:var(--mk-gold);--line:var(--mk-line);
  --shadow:var(--mk-shadow);--hero-filter:none;
}
html[data-theme="night"]{
  --bg:var(--mk-bg);--surface:var(--mk-surface);--surface2:var(--mk-surface-alt);
  --ink:var(--mk-ink);--muted:var(--mk-muted);--primary:var(--mk-red);
  --secondary:var(--mk-red-dark);--accent:var(--mk-gold);--line:var(--mk-line);
  --shadow:var(--mk-shadow);--hero-filter:brightness(.72) saturate(.9);
  --panel:var(--mk-surface);--panel-soft:var(--mk-surface-alt);--field:var(--mk-surface-alt);
  --border:var(--mk-line);--text:var(--mk-ink);--text-muted:var(--mk-muted);
  --accent-soft:color-mix(in srgb,var(--mk-red) 18%,var(--mk-surface));
}
html[data-theme="night"] body{
  background:radial-gradient(circle at 8% -4%,color-mix(in srgb,var(--primary) 12%,transparent),transparent 34%),linear-gradient(180deg,#0d1114 0%,#11171b 100%);
}
html[data-theme="night"] .topbar{background:color-mix(in srgb,var(--surface) 94%,transparent)}
html[data-theme="night"] .sidebar{background:color-mix(in srgb,var(--surface) 97%,transparent)}
html[data-theme="night"] .desktop-nav a:hover,
html[data-theme="night"] .desktop-nav a.active,
html[data-theme="night"] .side-link:hover,
html[data-theme="night"] .side-link.active{background:var(--surface2);color:var(--primary)}
html[data-theme="night"] .study-tip,
html[data-theme="night"] .professional-note{background:color-mix(in srgb,var(--primary) 9%,var(--surface2))}
html[data-theme="night"] .page-header{background:linear-gradient(135deg,var(--surface),var(--surface2))}
html[data-theme="night"] .tool-icon{background:var(--surface2);color:var(--primary)}
html[data-theme="night"] #tool-frame{background:var(--surface)}
html[data-theme="night"] .memory-anchor{background:var(--surface2);border-color:var(--line)}
html[data-theme="night"] .kanji-study-card>header{background:linear-gradient(135deg,var(--surface2),var(--surface))}
html[data-theme="night"] .reference-hero-copy,
html[data-theme="night"] .current-stack-panel,
html[data-theme="night"] .current-stack-panel.reference-feature-tile,
html[data-theme="night"] .learning-path-section.reference-feature-tile{background:linear-gradient(135deg,var(--surface),var(--surface2));border-color:var(--line)}
html[data-theme="night"] .current-stack-tags span{background:var(--surface2);color:var(--ink)}
html[data-theme="night"] .learning-path-grid article,
html[data-theme="night"] .learning-path-section.reference-feature-tile .learning-path-grid article{background:linear-gradient(180deg,var(--surface),var(--surface2));border-color:var(--line)}
html[data-theme="night"] .affiliate-disclosure-panel{background:color-mix(in srgb,var(--accent) 10%,var(--surface))}
html[data-theme="night"] .resource-badge--affiliate{background:color-mix(in srgb,var(--primary) 20%,var(--surface));color:#ffb49e}
html[data-theme="night"] .resource-badge--direct{background:color-mix(in srgb,var(--mk-success) 18%,var(--surface));color:#a7d9b9}
html[data-theme="night"] .creator-card,
html[data-theme="night"] .reference-closing,
html[data-theme="night"] .learning-path-grid .path-daily,
html[data-theme="night"] .learning-path-section.reference-feature-tile .learning-path-grid .path-daily{background:linear-gradient(135deg,#111518,#242a2f)}
html[data-theme="night"] .creator-card .resource-button--secondary{background:var(--surface2);color:var(--ink)!important}
html[data-theme="night"] .guide-choice-card img,
html[data-theme="night"] .manual-screenshot-row img{background:#101417}
html[data-theme="night"] .install-dialog-card,
html[data-theme="night"] .install-platform-grid>div{background:var(--surface);color:var(--ink);border-color:var(--line)}

.theme-toggle{
  width:40px;height:40px;border:1px solid var(--line);border-radius:12px;
  background:var(--surface);color:var(--ink);display:grid;place-items:center;
  cursor:pointer;font:inherit;transition:background .15s ease,border-color .15s ease,transform .15s ease;
}
.theme-toggle:hover{background:var(--surface2);border-color:var(--primary);transform:translateY(-1px)}
.theme-toggle:active{transform:translateY(0)}
.theme-toggle:focus-visible{outline:3px solid color-mix(in srgb,var(--primary) 24%,transparent);outline-offset:2px}
.theme-toggle .theme-toggle__icon{font-size:1.05rem;line-height:1}
@media(max-width:800px){.theme-toggle{width:40px;height:40px}}

/* v1.0.20 — Michel Thomas Method Companion provenance / post-course guidance */
.mt-method-intro{max-width:1390px;margin:8px auto 18px;padding:22px 24px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;background:var(--mk-surface);border:1px solid var(--mk-line);border-radius:var(--mk-radius-lg);box-shadow:var(--mk-shadow)}
.mt-method-intro__mark{width:58px;height:58px;display:grid;place-items:center;border-radius:14px;background:var(--mk-surface-alt);color:var(--mk-red);font-size:1.7rem;font-weight:900}
.mt-method-intro h2{margin:6px 0 10px;font-size:clamp(1.35rem,2.4vw,2rem);color:var(--mk-ink)}
.mt-method-intro p{max-width:1080px;margin:8px 0;color:var(--mk-muted);line-height:1.65}
.mt-method-intro__steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0}
.mt-method-intro__steps span{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--mk-line);border-radius:12px;background:var(--mk-surface-alt);color:var(--mk-ink);font-weight:800}
.mt-method-intro__steps b{flex:0 0 28px;width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:var(--mk-red);color:#fff}
.mt-method-intro__note{padding-top:12px;border-top:1px solid var(--mk-line);font-size:.88rem}
@media(max-width:760px){.mt-method-intro{margin:8px 12px 16px;padding:18px;grid-template-columns:1fr}.mt-method-intro__mark{width:48px;height:48px}.mt-method-intro__steps{grid-template-columns:1fr}}


/* ==========================================================================
   Buy Me a Coffee — Manabi Kōbō themed launcher
   The third-party popup itself is cross-origin; these rules theme the launcher
   and responsive iframe shell without modifying Buy Me a Coffee internals.
   ========================================================================== */
body #bmc-wbtn{
  width:56px!important;
  height:56px!important;
  right:18px!important;
  bottom:18px!important;
  border:1px solid color-mix(in srgb,var(--mk-red) 72%,var(--mk-line))!important;
  border-radius:17px!important;
  background:linear-gradient(145deg,var(--mk-red),var(--mk-red-dark))!important;
  box-shadow:0 10px 26px color-mix(in srgb,var(--mk-red) 28%,rgba(0,0,0,.18))!important;
  transition:transform .16s ease,box-shadow .16s ease,filter .16s ease!important;
  overflow:hidden!important;
  z-index:1060!important;
}
body #bmc-wbtn:hover{
  transform:translateY(-2px) scale(1.03)!important;
  box-shadow:0 14px 30px color-mix(in srgb,var(--mk-red) 34%,rgba(0,0,0,.22))!important;
  filter:saturate(1.06)!important;
}
body #bmc-wbtn:active{transform:translateY(0) scale(.98)!important}
body #bmc-wbtn img{
  width:31px!important;
  height:31px!important;
  object-fit:contain!important;
}
body #bmc-iframe{
  width:min(420px,calc(100vw - 36px))!important;
  max-width:420px!important;
  height:min(620px,calc(100vh - 86px))!important;
  max-height:620px!important;
  right:18px!important;
  bottom:84px!important;
  border-radius:18px!important;
  box-shadow:0 18px 44px rgba(20,16,12,.22)!important;
  z-index:1059!important;
}
html[data-theme="night"] body #bmc-wbtn{
  border-color:color-mix(in srgb,var(--mk-red) 70%,var(--mk-line))!important;
  box-shadow:0 12px 30px rgba(0,0,0,.42)!important;
}

@media(max-width:800px){
  body #bmc-wbtn{
    width:48px!important;
    height:48px!important;
    right:12px!important;
    /* Keep the launcher above Manabi Kōbō's fixed 61px mobile tab bar. */
    bottom:calc(78px + env(safe-area-inset-bottom))!important;
    border-radius:15px!important;
  }
  body #bmc-wbtn img{width:27px!important;height:27px!important}
  body #bmc-iframe{
    width:min(350px,calc(100vw - 20px))!important;
    min-width:0!important;
    height:min(540px,calc(100vh - 150px))!important;
    min-height:0!important;
    right:10px!important;
    bottom:calc(136px + env(safe-area-inset-bottom))!important;
    border-radius:16px!important;
  }
}
@media(max-width:420px){
  body #bmc-wbtn{
    width:45px!important;
    height:45px!important;
    right:10px!important;
  }
  body #bmc-wbtn img{width:25px!important;height:25px!important}
  body #bmc-iframe{
    width:calc(100vw - 16px)!important;
    right:8px!important;
    height:min(500px,calc(100vh - 145px))!important;
  }
}
@media(prefers-reduced-motion:reduce){
  body #bmc-wbtn{transition:none!important}
}

/* V2.12 mobile utility visibility fix: theme + language always remain available. */
@media(max-width:800px){
  .top-actions{margin-left:auto;display:flex!important;align-items:center;gap:6px;flex:0 0 auto}
  .top-actions .language-switch{display:grid!important;width:40px;height:40px;flex:0 0 40px}
  .top-actions .icon-button{flex:0 0 40px}
}
@media(max-width:420px){
  .topbar{gap:6px}
  .top-actions{gap:5px}
  .top-actions .language-switch,.top-actions .icon-button{width:38px;height:38px;flex-basis:38px}
}

/* V2.13 — persistent desktop sidebar collapse */
.sidebar-toggle-button{display:grid;flex:0 0 40px}
@media(min-width:801px){
  .sidebar,.main-content{transition:transform .2s ease,margin-left .2s ease}
  .app-layout.sidebar-collapsed .sidebar{transform:translateX(-100%)}
  .app-layout.sidebar-collapsed .main-content{margin-left:0}
  .sidebar-toggle-button[aria-pressed="true"]{background:var(--surface2);color:var(--primary)}
}
@media(max-width:800px){.sidebar-toggle-button{display:none!important}}

/* V2.14 — persistent local-install utility beside language selector */
.install-app-button{min-height:40px;padding:0 12px;border:1px solid var(--line);background:var(--primary);border-radius:12px;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:900;cursor:pointer;white-space:nowrap}
.install-app-button:hover{filter:brightness(.94);color:#fff}
.install-app-button[hidden]{display:none!important}
@media(max-width:800px){.top-actions .install-app-button{display:inline-flex;min-width:86px;width:auto;height:40px;padding:0 11px;flex:0 0 auto;font-size:.82rem}.top-actions .install-app-button[hidden]{display:none!important}.top-actions .install-app-label{display:inline}}
@media(max-width:420px){.top-actions .install-app-button{min-width:78px;height:38px;padding:0 9px;font-size:.76rem}}

/* Phase 5 navigation cleanup: compact primary nav + collapsible sidebar groups. */
.sidebar-section{margin:3px 0 7px}.nav-section-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:11px 12px 8px;border:0;background:transparent;color:var(--muted);font:inherit;font-size:.67rem;font-weight:950;letter-spacing:.13em;text-transform:uppercase;cursor:pointer;text-align:left;border-radius:10px}.nav-section-toggle:hover{background:var(--surface2);color:var(--ink)}.nav-section-chevron{font-size:.9rem;transition:transform .16s ease;letter-spacing:0}.sidebar-section.is-collapsed .nav-section-chevron{transform:rotate(-90deg)}.nav-section-links{display:grid;grid-template-rows:1fr;opacity:1;transition:grid-template-rows .18s ease,opacity .15s ease}.nav-section-links>*{min-height:0}.sidebar-section.is-collapsed .nav-section-links{display:none}.sidebar-section:has(.side-link.active)>.nav-section-toggle{color:var(--primary)}
@media(max-width:800px){.nav-section-toggle{padding-top:13px;padding-bottom:9px}}

/* Phase 17 — PWA/offline hardening */
.connectivity-status{min-height:40px;padding:0 10px;border:1px solid #b96a54;border-radius:10px;background:#fff0eb;color:#8f291b;display:inline-flex;align-items:center;font-weight:900;font-size:.78rem;white-space:nowrap}
.connectivity-status[hidden]{display:none!important}
.pwa-update-button{min-height:40px;padding:0 11px;border:1px solid #a67b2c;border-radius:10px;background:#fff8e5;color:#77520c;font-weight:900;cursor:pointer;white-space:nowrap}
.pwa-update-button:hover{filter:brightness(.97)}
.pwa-update-button[hidden]{display:none!important}
html.is-offline .install-app-button{opacity:.62}
html.is-offline [data-online-only]{opacity:.62}
@media(max-width:800px){.connectivity-status,.pwa-update-button{min-height:38px;font-size:.72rem;padding:0 8px}}

/* Phase 18 — accessibility, SEO content and release polish */
:where(a,button,input,select,textarea,[tabindex]):focus-visible{
  outline:3px solid #176fa6;
  outline-offset:3px;
}
.skip-link:focus{z-index:9999}
.main-content:focus{outline:none}
.seo-intro{margin:20px 0;padding:22px;border:1px solid var(--border,#d8cec0);border-radius:16px;background:var(--surface,#fff)}
.seo-intro>h2{max-width:880px;margin:.25rem 0 .6rem}
.seo-intro>p{max-width:920px;line-height:1.65}
.seo-intro-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}
.seo-intro-grid article{padding:15px;border:1px solid var(--border,#d8cec0);border-radius:12px;background:var(--surface-2,#faf7f2)}
.seo-intro-grid h3{margin:0 0 6px;font-size:1rem}
.seo-intro-grid p{margin:0;line-height:1.55}
@media(max-width:820px){.seo-intro-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    scroll-behavior:auto!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
}
@media(forced-colors:active){
  .primary-button,.secondary-button,.tool-card,.panel-card,.dashboard-tile{border:1px solid CanvasText}
}

/* Reference Hub creator portrait */
.creator-photo{
  width:112px;
  height:112px;
  border-radius:24px;
  object-fit:cover;
  object-position:center 38%;
  display:block;
  border:3px solid rgba(255,255,255,.28);
  box-shadow:0 10px 26px rgba(0,0,0,.24);
}
@media(max-width:680px){
  .creator-photo{width:96px;height:96px;border-radius:20px}
}

/* Privacy / legal */
.site-legal-footer{
  display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:.55rem;
  padding:1rem 1.25rem 5.5rem; color:var(--muted,#667085); font-size:.82rem;
}
.site-legal-footer a,.legal-link-button{color:inherit;text-decoration:underline;text-underline-offset:3px}
.legal-link-button{border:0;background:none;padding:0;font:inherit;cursor:pointer}
.privacy-consent{
  position:fixed; right:1.15rem; bottom:1.15rem; z-index:1200; width:min(520px,calc(100vw - 2rem));
  background:var(--surface,#fffaf3); color:var(--ink,#17202a); border:1px solid rgba(169,50,27,.28);
  border-radius:20px; box-shadow:0 22px 70px rgba(14,24,33,.24); padding:1.05rem;
}
.privacy-consent[hidden]{display:none!important}
.privacy-consent__eyebrow{margin:0 0 .25rem;color:#a9321b;font-weight:800;font-size:.72rem;letter-spacing:.12em}
.privacy-consent h2{font-size:1.12rem;margin:.1rem 0 .45rem}
.privacy-consent p{margin:.3rem 0;line-height:1.45}
.privacy-consent__links{display:flex;gap:1rem;flex-wrap:wrap;font-size:.82rem}
.privacy-consent__links a{color:#8d2a18}
.privacy-consent__actions{display:flex;gap:.65rem;justify-content:flex-end;margin-top:.9rem;flex-wrap:wrap}
.privacy-button{border-radius:12px;padding:.7rem .9rem;font-weight:800;cursor:pointer}
.privacy-button--secondary{background:transparent;border:1px solid rgba(23,32,42,.24);color:inherit}
.privacy-button--primary{background:#a9321b;border:1px solid #a9321b;color:#fff}
.legal-page{max-width:920px;margin:0 auto;padding:2rem 1.25rem 4rem}
.legal-page h1{font-size:clamp(2rem,5vw,3.5rem);margin:.2rem 0 1rem}
.legal-page .legal-lead{font-size:1.08rem;color:var(--muted,#667085);max-width:760px}
.legal-page section{padding:1rem 0;border-top:1px solid rgba(120,100,80,.18)}
.legal-page section h2{font-size:1.2rem;margin:0 0 .5rem}
.legal-page section p{line-height:1.7;margin:0}
.legal-updated{margin-top:2rem;font-size:.85rem;color:var(--muted,#667085)}
@media(max-width:680px){
  .privacy-consent{left:.75rem;right:.75rem;bottom:.75rem;width:auto}
  .privacy-consent__actions{display:grid;grid-template-columns:1fr}
  .privacy-button{width:100%}
}

/* Tell mobile browsers which palette Manabi Kōbō is intentionally using. */
html[data-theme="day"]{color-scheme:light}
html[data-theme="night"]{color-scheme:dark}


/* 2026-08-31: Home SEO tiles — night-mode readability fix.
   Phase 18 used --surface-2, while the current theme token is --surface2.
   On night mode that fell back to a light card while inheriting light text. */
.seo-intro-grid article{
  background:var(--surface2,var(--surface,#fff));
  color:var(--ink,#171717);
}
.seo-intro-grid h3{color:var(--ink,#171717)}
.seo-intro-grid p{color:var(--muted,#6f675f)}
html[data-theme="night"] .seo-intro-grid article{
  background:var(--surface2,#20272c);
  border-color:var(--line,var(--border,#3a454d));
  color:var(--ink,#f5f0e9);
}
html[data-theme="night"] .seo-intro-grid h3{color:var(--ink,#f5f0e9)}
html[data-theme="night"] .seo-intro-grid p{color:var(--muted,#bac1c5)}


/* 2026-08-31: Home cleanup.
   Keep the SEO course summary aligned with the main 1260px home canvas after
   retiring the redundant category/dashboard tiles. */
.seo-intro{
  max-width:1260px;
  box-sizing:border-box;
  margin:18px auto;
  padding:18px 20px;
}
.seo-intro>h2{
  margin:.2rem 0 .45rem;
}
.seo-intro>p{
  margin:.35rem 0 0;
  line-height:1.58;
}
.seo-intro-grid{
  margin-top:12px;
  gap:10px;
}
.seo-intro-grid article{
  padding:13px 14px;
}
.hero-guide-button{
  white-space:nowrap;
}
@media(max-width:800px){
  .seo-intro{
    margin:12px auto;
    padding:16px;
  }
}


/* 2026-08-31: compact site footer + Reference Hub video smart tile */
.site-footer{
  width:min(1260px,calc(100% - 32px));
  max-width:1260px;
  margin:14px auto 0;
  padding:11px 16px 7px;
  gap:7px;
  line-height:1.35;
  text-align:center;
}
.site-footer>span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.site-legal-footer{
  width:min(1260px,calc(100% - 32px));
  max-width:1260px;
  box-sizing:border-box;
  margin:0 auto;
  padding:7px 16px 22px;
  gap:.45rem;
  line-height:1.35;
  text-align:center;
}

.reference-video-tile{
  max-width:1180px;
  margin:0 auto 18px;
  display:grid;
  grid-template-columns:minmax(230px,.72fr) minmax(0,1.5fr);
  overflow:hidden;
  border:1px solid var(--mk-line,var(--line,#d8cfc1));
  border-radius:20px;
  background:var(--mk-surface,var(--surface,#fffdf8));
  box-shadow:var(--mk-shadow,0 12px 30px rgba(35,28,20,.08));
  color:var(--mk-ink,var(--ink,#1e1e1e));
  text-decoration:none;
  transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.reference-video-tile:hover{
  transform:translateY(-2px);
  border-color:var(--mk-red,var(--primary,#b63b20));
  box-shadow:0 16px 34px rgba(35,28,20,.13);
}
.reference-video-visual{
  position:relative;
  min-height:176px;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:
    linear-gradient(135deg,rgba(166,47,26,.96),rgba(92,25,17,.94)),
    repeating-linear-gradient(90deg,transparent 0 34px,rgba(255,255,255,.08) 34px 35px);
}
.reference-video-visual::before,
.reference-video-visual::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  height:22px;
  opacity:.55;
  background:repeating-linear-gradient(90deg,rgba(255,255,255,.34) 0 10px,transparent 10px 22px);
}
.reference-video-visual::before{top:0}
.reference-video-visual::after{bottom:0}
.reference-video-film{
  position:absolute;
  left:18px;
  bottom:34px;
  font-size:2.7rem;
  font-weight:900;
  color:rgba(255,255,255,.14);
}
.reference-video-play{
  position:relative;
  z-index:2;
  display:grid;
  place-items:center;
  width:72px;
  height:72px;
  padding-left:5px;
  border:2px solid rgba(255,255,255,.85);
  border-radius:50%;
  background:rgba(255,255,255,.12);
  color:#fff;
  font-size:1.8rem;
  box-shadow:0 12px 28px rgba(0,0,0,.22);
}
.reference-video-copy{
  padding:22px 24px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.reference-video-copy h2{
  margin:.3rem 0 .55rem;
  font-size:clamp(1.28rem,2vw,1.75rem);
}
.reference-video-copy p{
  margin:0;
  color:var(--mk-muted,var(--muted,#6f7479));
  line-height:1.6;
}
.reference-video-cta{
  margin-top:.85rem;
  color:var(--mk-red-dark,var(--primary,#8f2e1a));
  font-weight:900;
}
html[data-theme="night"] .reference-video-tile{
  background:var(--surface2,#20272c);
  border-color:var(--line,#3a454d);
  color:var(--ink,#f5f0e9);
}
html[data-theme="night"] .reference-video-copy p{
  color:var(--muted,#bac1c5);
}

@media(max-width:800px){
  .site-footer{
    flex-direction:column;
    gap:3px;
    margin-top:10px;
    padding:9px 12px 4px;
  }
  .site-footer-separator{display:none}
  .site-legal-footer{
    padding:5px 12px 88px;
  }
  .reference-video-tile{
    grid-template-columns:1fr;
  }
  .reference-video-visual{
    min-height:138px;
  }
  .reference-video-copy{
    padding:18px;
  }
}


/* 2026-08-31: Reference Hub playlist — inline privacy-enhanced playback */
.reference-video-tile{
  cursor:default;
}
.reference-video-play{
  border:2px solid rgba(255,255,255,.88);
  cursor:pointer;
  transition:transform .16s ease,background .16s ease;
}
.reference-video-play:hover{
  transform:scale(1.06);
  background:rgba(255,255,255,.2);
}
.reference-video-play:focus-visible{
  outline:3px solid rgba(255,255,255,.72);
  outline-offset:4px;
}
.reference-video-embed{
  position:absolute;
  inset:0;
  z-index:4;
  background:#111;
}
.reference-video-embed[hidden]{
  display:none!important;
}
.reference-video-embed iframe{
  width:100%;
  height:100%;
  border:0;
  display:block;
}
.reference-video-tile.is-playing .reference-video-film,
.reference-video-tile.is-playing .reference-video-visual::before,
.reference-video-tile.is-playing .reference-video-visual::after{
  display:none;
}
.reference-video-cta{
  display:inline-flex;
  align-self:flex-start;
  text-decoration:none;
}
.reference-video-cta:hover{
  text-decoration:underline;
  text-underline-offset:3px;
}
