/* V2000 v3.20: shared shell and RWD. Canvas dimensions and fullscreen rules remain owned by game styles. */
:root{--blue:#28736b;--blue-d:#204d49;--blue-l:#edf5f1;--blue-m:#c7ddd4;--bg:#f6f8f5;--ink:#2b3c38;--sub:#71867d;--shadow:0 2px 4px #26473b04;--r:16px}
html{scroll-padding-top:88px}body{background:var(--bg)}button,input,select,textarea{font:inherit}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #efb649;outline-offset:3px}button{touch-action:manipulation}button:disabled{cursor:default}#app{max-width:1440px;display:block;min-height:100dvh;padding-left:236px;position:relative}#app>header{height:83px;background:#ffffffee;color:var(--ink);border-bottom:1px solid #e3eae4;padding:16px 34px;gap:15px;backdrop-filter:blur(12px)}#app>header h1{font-size:17px;font-weight:650}#app>header .back{color:var(--blue);width:40px;min-height:40px;border-radius:10px;background:#f0f5f1}#app>header .uchip{color:var(--blue);background:#eef5ef;border:1px solid #dfe9df;min-height:38px;max-width:160px}#main{max-width:1150px;margin:auto;padding:30px 34px 60px;outline:none;min-width:0}#app-nav{position:fixed;top:0;bottom:0;left:max(0px,calc((100vw - 1440px)/2));width:236px;padding:35px 18px 25px;background:white;border-right:1px solid #e1e8e1;display:flex;flex-direction:column;z-index:30}.shell-brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--blue-d);padding:0 12px 44px;font-weight:800;font-size:19px}.shell-brand>span{display:grid;place-items:center;width:42px;height:46px;background:#28736b;color:#fff;border-radius:14px 14px 14px 4px;font-size:28px;font-family:Georgia,serif}.shell-brand small{display:block;font-size:7px;letter-spacing:1.4px;color:#97aaa1;margin-top:5px}.shell-nav-list{display:flex;flex-direction:column;gap:9px}.shell-nav-list button{background:none;border:1px solid transparent;border-radius:12px;text-align:left;display:flex;align-items:center;gap:14px;padding:14px 15px;color:#819289;width:100%;cursor:pointer}.shell-nav-list button:hover{background:#f6f9f4}.shell-nav-list button.selected{background:#edf5ef;color:#28736b;border-color:#d9e7dc}.shell-nav-icon{font-size:24px;width:25px;text-align:center}.shell-nav-list b{font-size:14px;font-weight:700;display:block}.shell-nav-list small{font-size:10px;display:block;color:#97a89a;margin-top:3px}.shell-nav-list em{display:none}.shell-nav-foot{margin-top:auto;padding:25px 12px 0;color:#82998b;font-size:12px;line-height:1.8}.shell-nav-foot span{display:block;color:#a3b0a4;font-size:10px}.shell-nav-foot small{font-size:9px;display:block;margin-top:16px;color:#b3bdb2}.shell-skip{position:fixed;top:-60px;left:250px;z-index:10001;background:#fff;color:#204d49;padding:12px;border:2px solid #28736b;border-radius:9px}.shell-skip:focus{top:8px}#section-context{display:flex;align-items:center;gap:10px;font-size:11px;color:#95a499;padding:20px 34px 0;max-width:1150px;margin:auto}#section-context:empty{display:none}#section-context:not(:empty)+#main{padding-top:20px}.hub-heading{margin:2px 0 28px}.hub-heading>span,.hub-kicker{display:block;font-size:10px;letter-spacing:1.8px;font-weight:650;color:#91a196}.hub-heading h2{font-size:clamp(23px,2.2vw,30px);line-height:1.5;font-weight:750;letter-spacing:.2px;margin:12px 0 8px;color:#2d4940}.hub-heading>p{font-size:12px;color:#8a9b90;margin:0;line-height:1.8}.dashboard-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:26px}.dashboard-primary,.dashboard-secondary{min-width:0}.card{border:1px solid #e3eae0;box-shadow:none;padding:21px;margin-bottom:19px}.study-banner{background:#2d776d;color:white;border-radius:18px;padding:27px 28px 17px;margin-bottom:20px}.study-banner-top{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#c5ded1;gap:10px}.hub-pill{border:1px solid #70a79b;border-radius:6px;padding:4px 9px;color:#e2f0e8;font-size:10px}.study-banner h3{font-size:25px;line-height:1.5;margin:26px 0 11px;font-weight:700;letter-spacing:.5px}.study-banner>p{font-size:12px;color:#bbd8ca;line-height:1.9;margin:0 0 23px}.study-banner>.btn{background:#e8edc9;color:#3c5944;border-radius:10px;padding:12px 18px;min-height:47px;font-size:13px;font-weight:750;display:flex;justify-content:space-between;width:100%;border:0;box-shadow:0 3px 0 #205e56}.study-banner-foot{margin-top:23px;padding-top:14px;border-top:1px solid #ffffff20;display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#b6d6c6;gap:8px}.study-banner-foot button{border:0;background:transparent;color:#cce2d5;font-size:10px;padding:4px 0;cursor:pointer}.hub-card-title,.hub-section-label{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.hub-card-title h3,.hub-section-label h3{margin:0;font-size:14px;font-weight:700;color:#3e574a}.hub-card-title>span,.hub-section-label>span{font-size:10px;color:#9caa9e}.hub-text-btn{border:0;background:none;padding:5px 0;color:#719784;font-size:11px;cursor:pointer;font-weight:600;text-align:left}.dashboard-path .path-head{gap:14px}.dashboard-path .path-head b{font-size:14px;color:#477356}.dashboard-path .path-head .muted{font-size:11px;margin-top:4px}.dashboard-path .path-orb{width:47px;height:47px;font-size:22px;background:#8fae73;box-shadow:0 4px 0 #6b8e57}.path-percent{margin-left:auto;font-size:19px!important;color:#86a16e!important}.dashboard-path .path-mini{margin-top:22px}.path-dot{height:7px;background:#e4ebda}.path-dot.now{background:#b0c285;box-shadow:none}.path-dot.done{background:#769f69}.hub-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.hub-grid.single{grid-template-columns:1fr}.hub-tile{position:relative;border:1px solid #e0e8de;background:#fff;border-radius:14px;padding:20px 17px;text-align:left;color:var(--ink);display:flex;align-items:flex-start;gap:12px;cursor:pointer;min-width:0;transition:background .15s,border-color .15s}.hub-tile:hover{background:#f0f6ed;border-color:#b4cbb6}.hub-icon{font-size:22px;width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:#f0f5eb;color:#729473;flex:none}.hub-tile>span:nth-child(2){min-width:0;flex:1}.hub-tile b{display:block;font-size:13px;line-height:1.6;margin:0 0 6px;color:#415d4e}.hub-tile small{display:block;font-size:10px;color:#91a18f;line-height:1.9;font-weight:400}.hub-tile em{position:absolute;bottom:9px;right:14px;font-size:9px;font-style:normal;color:#a28855}.hub-arrow{color:#b4c1ab;font-size:15px}.dashboard-shortcuts .hub-tile{min-height:125px}.hub-section-label{margin-top:28px;margin-bottom:14px}.dashboard-level .hub-kicker{letter-spacing:0;font-size:11px}.dashboard-level>div:nth-child(2){display:flex;align-items:center;gap:12px;margin:17px 0}.dashboard-level>div>span{font-size:33px}.dashboard-level h3{font-size:15px;margin:0;line-height:1.8}.dashboard-level h3 small{display:block;color:#af9b64;font-size:12px}.hub-caption{font-size:10px;color:#96a58d;line-height:1.8;margin:10px 0 0}.dashboard-quests .quest-row{grid-template-columns:29px minmax(0,1fr) auto;gap:8px}.dashboard-quests .quest-icon{width:29px;height:29px;font-size:14px;background:#f7f1d9}.dashboard-quests .quest-copy b{font-size:11px}.dashboard-quests .quest-copy small{font-size:9px}.dashboard-quests .quest-claim{font-size:9px;padding:6px;border-radius:7px;min-width:40px;background:#e6d49b}.quest-claim:disabled{background:#f0f3e9}.dashboard-quests .quest-list{gap:18px}.quest-bar span{background:#cab777}.hub-note{border:1px solid #eee8d5;border-radius:14px;background:#f6f3e8;padding:23px}.hub-note>span{font-size:10px;color:#b2a780}.hub-note>p{font-size:19px;line-height:1.8;color:#857957;margin:16px 0}.hub-note .hub-text-btn{color:#ac9c65;font-size:10px}.practice-review{border:1px solid #e9dbcc;background:#fcf5eb;border-radius:16px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:23px}.practice-review h3{font-size:22px;margin:7px 0;color:#9a7857}.practice-review .hub-kicker{font-size:10px;color:#b6a488;letter-spacing:0}.practice-review p{font-size:12px;color:#a9937c;margin:0}.practice-review .btn{background:#b88d60;border:0;color:white;white-space:nowrap}.hub-section{margin-top:32px}.hub-section .hub-tile{min-height:117px}.hub-tabs{display:flex;gap:5px;padding:5px;background:#eaf0e7;border:1px solid #dfe7db;border-radius:12px;margin-bottom:23px;flex-wrap:wrap}.hub-tabs button{flex:1;min-width:100px;background:transparent;border:0;color:#82937d;border-radius:9px;padding:10px 9px;font-size:12px;cursor:pointer}.hub-tabs button.selected{background:#fff;color:#3a7460;box-shadow:0 2px 6px #42553709;font-weight:700}.profile-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:25px}.hub-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:22px 0}.hub-stat-grid>div{display:flex;flex-direction:column;text-align:center}.hub-stat-grid b{font-size:27px;color:#55816c}.hub-stat-grid small{font-size:10px;color:#96a38d}.account-summary{text-align:center;padding:30px}.account-avatar{width:60px;height:60px;border-radius:18px;display:grid;place-items:center;background:#ecf3e7;color:#8ca97b;font-size:30px;margin:0 auto 15px}.account-summary h3{font-size:16px;margin:12px 0}.account-summary p{font-size:11px;color:#9ba88f;line-height:1.9}.arcade-list .bigbtn{height:100%;margin:0;font-size:14px;align-items:flex-start;padding:19px;border:1px solid #e1e6df}.arcade-list .bigbtn small{font-size:11px}.arcade-list .bigbtn .ic{width:37px;height:37px;font-size:22px}.arcade-list .bigbtn .badge{font-size:10px}.db-hero{background:#f0f5ea;border:1px solid #dae7d1}.db-hero>p{font-size:12px}.searchbar input{min-width:0}.dbrow,.wrow{border:1px solid #e5eade;box-shadow:none}.dbrow-main small,.dbrow-main b,.db-example,.defrow,.qtext{overflow-wrap:anywhere}.dbrow-main{overflow:hidden}.defrow .dr{min-width:0}.book-scope{min-width:0}#main input:not([type=checkbox]):not([type=radio]):not([type=range]),#main select,#main textarea{max-width:100%}.btn,.fchip{min-height:40px}.fchips{gap:8px}.db-more summary{padding:13px;cursor:pointer}.db-more-body{overflow-wrap:anywhere}#app[data-focus=true] #main{max-width:770px}.fc,.qbox{border:1px solid #e2e9df;box-shadow:none}.opts{gap:11px}.opt{min-height:50px}.rates button{min-height:57px}.path-road{max-width:850px;margin:auto}.path-unit{box-shadow:none}.path-unit.locked{opacity:.75}.game-token-shop{background:#fbf5df;border:1px solid #e9dab0}.tank-game,.stair-game,.snake-game,.brick-game,.zoo-game{width:100%}.toast{max-width:calc(100vw - 28px)}
@media(min-width:1200px){#app[data-view=library] .dbrow,#app[data-view=worddb] .dbrow{padding:15px 19px}.dashboard-shortcuts .hub-tile{padding:21px}.hub-section .hub-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:760px){#app[data-view=settings] #main{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}#app[data-view=settings] .card{margin:0}#app[data-view=settings] .card:last-child{grid-column:1/-1}.fc .defrow{gap:22px}.fc .word{font-size:48px}.qbox{padding:28px}.qtext{font-size:26px}#app[data-view=library] .db-stats{max-width:650px;margin:18px auto 0}}
@media(max-width:1100px){#app{padding-left:205px}#app-nav{width:205px;padding:30px 13px 22px}.shell-brand{font-size:16px;padding-left:7px;gap:9px}.shell-brand>span{width:36px;height:40px}.shell-brand small{font-size:6px}.shell-nav-list button{padding:13px 10px;gap:10px}.shell-nav-list b{font-size:13px}.shell-nav-list small{font-size:9px}#main{padding:28px 25px 45px}#app>header{padding:15px 25px}#section-context{padding-left:25px;padding-right:25px}.dashboard-layout{grid-template-columns:minmax(0,1fr) 235px;gap:19px}.study-banner{padding:24px 21px 17px}.study-banner h3{font-size:21px}.hub-tile{padding:17px 14px;gap:9px}.hub-icon{width:31px;height:34px;font-size:19px}.hub-arrow{display:none}.card{padding:18px}.hub-card-title h3{font-size:13px}.dashboard-shortcuts{grid-template-columns:1fr}.dashboard-shortcuts .hub-tile{min-height:92px}.profile-layout{gap:17px}}
@media(max-width:900px){.dashboard-layout{grid-template-columns:1fr}.dashboard-secondary{display:grid;grid-template-columns:1fr 1fr;gap:15px}.dashboard-secondary .card{margin:0}.dashboard-secondary .hub-note{display:none}.dashboard-shortcuts{grid-template-columns:1fr 1fr}.dashboard-shortcuts .hub-tile{min-height:117px}.profile-layout{grid-template-columns:1fr}.hub-heading h2{font-size:25px}.hub-grid{gap:11px}.study-banner h3{font-size:25px}}
@media(max-width:759px){#app{padding-left:0;padding-bottom:calc(84px + env(safe-area-inset-bottom))}#app-nav{top:auto;bottom:0;left:0;width:100%;height:auto;padding:7px 9px calc(7px + env(safe-area-inset-bottom));border-right:0;border-top:1px solid #dbe5d9;background:#fffffff5;backdrop-filter:blur(12px)}.shell-brand,.shell-nav-foot{display:none}.shell-nav-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}.shell-nav-list button{flex-direction:column;gap:2px;justify-content:center;text-align:center;padding:5px 2px;min-height:57px;border:0}.shell-nav-list button.selected{border:0;background:#edf5ea}.shell-nav-icon{font-size:23px;width:25px;line-height:1.3}.shell-nav-list b,.shell-nav-list small{display:none}.shell-nav-list em{display:block;font-size:10px;font-style:normal;font-weight:700}.shell-skip{left:15px}#app>header{height:calc(64px + env(safe-area-inset-top));padding:12px 19px;padding-top:calc(12px + env(safe-area-inset-top))}#app>header h1{font-size:17px}#app>header .uchip{font-size:11px;min-height:35px;max-width:120px}#main{padding:23px 19px 25px}#section-context{padding:17px 20px 0}.hub-heading{margin:0 0 22px}.hub-heading>span{font-size:8px;letter-spacing:1.3px}.hub-heading h2{font-size:23px;line-height:1.6;margin:10px 0 7px}.hub-heading p{font-size:11px}.study-banner{padding:21px 21px 15px}.study-banner h3{font-size:24px;margin:24px 0 9px}.study-banner-top{font-size:10px}.study-banner>p{font-size:11px;margin-bottom:20px}.hub-pill{font-size:9px}.study-banner-foot{font-size:9px;margin-top:20px}.study-banner-foot button{font-size:9px;min-height:32px}.card{padding:19px}.dashboard-shortcuts .hub-tile{flex-direction:column;padding:17px;gap:12px;min-height:143px}.hub-tile b{font-size:13px}.hub-tile small{font-size:10px}.hub-tile em{position:static;margin-top:3px;font-size:9px}.hub-icon{width:34px;height:34px}.dashboard-secondary{grid-template-columns:1fr}.dashboard-secondary .dashboard-level{display:none}.dashboard-quests .quest-copy b{font-size:12px}.dashboard-quests .quest-copy small{font-size:10px}.dashboard-quests .quest-claim{min-height:36px;font-size:10px}.dashboard-quests .quest-row{grid-template-columns:32px minmax(0,1fr) auto;gap:11px}.hub-section-label>span{font-size:9px}.hub-section-label h3{font-size:13px}.hub-card-title{margin-bottom:18px}.hub-card-title .hub-text-btn{font-size:10px}.practice-review{padding:19px;gap:12px}.practice-review h3{font-size:20px}.practice-review p{font-size:10px}.practice-review .btn{font-size:12px;padding:10px 13px}.hub-section .hub-grid{grid-template-columns:1fr}.hub-section .hub-tile{min-height:94px;align-items:center;padding:19px}.hub-section .hub-icon{width:40px;height:40px;margin-right:4px}.hub-tabs{gap:4px;padding:4px;flex-wrap:nowrap}.hub-tabs button{min-width:0;padding:11px 4px;font-size:10px}.db-hero>p{font-size:11px}.db-hero>b{font-size:16px!important}.db-stat b{font-size:18px}.db-stat small{font-size:9px}.dbrow{padding:12px}.db-source-count{font-size:10px}.dbrow-main b{font-size:16px}.dbrow-main small{font-size:11px}.searchbar input{font-size:16px}.fchip{font-size:12px;padding:7px 10px}.db-more-body{padding:12px}.profile-layout .hub-grid{grid-template-columns:1fr}.arcade-list{grid-template-columns:1fr}.arcade-list .bigbtn{align-items:center}.arcade-list .bigbtn .ic{width:42px;height:42px}.arcade-list .bigbtn small{font-size:12px}.defrow{flex-direction:column;gap:7px}.defrow .dl{flex-basis:auto}.fc{padding:20px 17px}.fc .word{font-size:clamp(27px,8vw,40px)}.opts .opt{font-size:16px;padding:13px}.qtext{font-size:20px;overflow-wrap:anywhere}.qbox{padding:20px 16px}.rates{gap:7px}.rates button{font-size:14px}.scope-book-grid{grid-template-columns:1fr}.searchbar input{width:100%}.toast{bottom:calc(85px + env(safe-area-inset-bottom))}input.note,textarea.note,#main select{font-size:16px}#main .game-token-shop{grid-template-columns:1fr}.path-unit{gap:8px}.game-lock #app-nav{visibility:hidden}}
@media(max-width:359px){#main{padding:20px 13px}.hub-heading h2{font-size:21px}.study-banner{padding:20px 17px 13px}.study-banner h3{font-size:22px}.hub-tabs button{font-size:9px}.dashboard-shortcuts .hub-tile{padding:14px 12px}.hub-tile b{font-size:12px}.hub-tile small{font-size:9px}.practice-review{flex-wrap:wrap}.practice-review .btn{width:100%}.dbrow{gap:7px}.hub-stat-grid{gap:8px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.hub-tile{transition:none}}

.shell-mode{font-size:11px;color:#618b5b;text-decoration:none;padding:7px 10px;border:1px solid #dfe9d7;border-radius:9px;white-space:nowrap}.iron-actions{display:flex;gap:12px;margin-bottom:18px;flex-wrap:wrap}.iron-actions a{text-decoration:none}#iron-host{position:relative;height:920px;max-height:110vh;background:#10171b;border-radius:14px;overflow:hidden}#iron-frame{border:0;width:100%;height:100%;display:block}#iron-exit{display:none}#iron-host.iron-fullscreen{position:fixed;inset:0;z-index:10000;width:100vw;height:100dvh;max-height:none;border-radius:0}#iron-host.iron-fullscreen #iron-exit{position:absolute;display:block;top:calc(6px + env(safe-area-inset-top));right:8px;z-index:10001;background:#22352ce8;border:1px solid #b2c6b7;color:white;padding:7px 12px;border-radius:8px;font-size:12px}.admin-unlimited{color:#8d7234!important;font-weight:700}@media(max-width:759px){.shell-mode{font-size:10px;padding:6px}#iron-host{height:850px;max-height:100dvh}.iron-actions .btn{font-size:12px;flex:1;text-align:center}}

/* Five-level word familiarity */
.familiarity-panel{margin:16px 0}.familiarity-panel p{font-size:14px}.familiarity-panel>small{display:block;color:var(--sub);margin-top:10px;line-height:1.6}.familiarity-options{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.familiarity-options .btn{padding:12px 6px;white-space:normal;min-height:64px}.familiarity-options small{display:block;font-size:11px;margin-top:4px;opacity:.75}.familiarity-options [aria-pressed=true]{box-shadow:inset 0 0 0 2px #327064;background:#e5f1e8}@media(max-width:600px){.familiarity-options{grid-template-columns:repeat(2,minmax(0,1fr))}.familiarity-options .btn:last-child{grid-column:1/-1}}
