:root{color-scheme:light;--ink:#1d2824;--muted:#7a847d;--paper:#f5f6f2;--card:#fff;--line:#e7eae4;--green:#306951;--green-dark:#245640;--mint:#edf5ef;--gold:#c69b59;--serif:Georgia,'Times New Roman',serif;--sans:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--mono:ui-monospace,SFMono-Regular,Menlo,monospace}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px var(--sans);-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:224px;background:#fff;border-right:1px solid var(--line);padding:26px 18px 18px;display:flex;flex-direction:column;z-index:5}.brand{display:flex;align-items:center;gap:10px;margin:0 0 49px 5px;color:var(--ink);text-decoration:none;font-size:16px;font-weight:700;letter-spacing:-.5px}.brand-mark{width:31px;height:31px;border-radius:9px;display:grid;place-items:center;color:white;background:var(--green);font:21px var(--serif)}.nav-caption,.eyebrow{font:10px var(--mono);letter-spacing:1.2px;color:#89928b}.nav-caption{padding:0 12px;margin-bottom:11px}.primary-nav{display:grid;gap:5px}.nav-link{height:42px;padding:0 12px;display:flex;align-items:center;gap:13px;color:#747f77;text-decoration:none;border-radius:7px;font-size:12px;transition:background .18s,color .18s}.nav-link>span{width:17px;text-align:center;color:#9aa39c;font-size:17px}.nav-link:hover{background:#f6f8f5;color:var(--ink)}.nav-link.active{background:var(--mint);color:var(--green);font-weight:600}.nav-link.active>span{color:var(--green)}.sidebar-bottom{margin-top:auto;border-top:1px solid var(--line);padding:20px 10px 0;position:relative}.sidebar-leaf{font-size:19px;color:var(--gold)}.sidebar-bottom p{font:16px/1.5 var(--serif);margin:8px 0 20px}.sidebar-bottom p strong{color:var(--green)}.sidebar-version{font:9px var(--mono);letter-spacing:.8px;color:#a1a9a2}.app-main{margin-left:224px;min-height:100vh;display:flex;flex-direction:column}.topbar{height:64px;padding:0 39px;border-bottom:1px solid var(--line);background:#ffffffbd;display:flex;align-items:center;justify-content:space-between}.breadcrumb{font:9px var(--mono);letter-spacing:1px;color:#8b958d}.breadcrumb span{padding:0 10px;color:#c2c8c1}.breadcrumb strong{color:#44534a;font-weight:500}.topbar-right{display:flex;align-items:center;gap:13px}.sync-state{font-size:10px;color:#929c94}.avatar{border:0;width:30px;height:30px;border-radius:50%;background:#e8f0e9;color:var(--green);font:600 12px var(--serif)}.mobile-menu{display:none;background:none;border:0;font-size:18px;color:var(--green)}.content{width:min(1060px,100%);margin:0 auto;padding:38px 44px 45px;flex:1}.page{display:none;animation:enter .25s ease}.page.active{display:block}.welcome-row,.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:26px}.eyebrow{display:flex;align-items:center;gap:9px}.eyebrow-line{width:20px;height:1px;background:#8ca493}h1{font:600 clamp(34px,4vw,46px)/1.13 var(--serif);letter-spacing:-1px;margin:14px 0 9px}h1 em{font-weight:600;color:var(--green)}.lede{font-size:13px;color:var(--muted);margin:0;line-height:1.6}.date-card{width:87px;height:88px;flex:none;background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px;display:flex;flex-direction:column;justify-content:space-between}.date-card span{font-size:14px;color:var(--gold)}.date-card small{font:9px var(--mono);color:#969f98;letter-spacing:.8px}.date-card strong{font:18px var(--serif)}.home-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(238px,.78fr);gap:17px}.feature-card{border-radius:13px;background:#274f3e;color:#fff;min-height:350px;padding:20px 22px 17px;display:flex;flex-direction:column;position:relative;overflow:hidden}.feature-card:after{content:'w';position:absolute;right:-6px;bottom:10px;color:#ffffff08;font:240px/.8 var(--serif);pointer-events:none}.feature-top{display:flex;justify-content:space-between;align-items:center}.pill{font:9px var(--mono);letter-spacing:.65px;color:#d1e2d5;display:flex;align-items:center;gap:7px}.pill i{width:6px;height:6px;border-radius:50%;background:#c1d9a2}.feature-mark{font:italic 31px var(--serif);color:#c7d6ad}.feature-copy{margin:auto 0;position:relative;z-index:1}.feature-copy .eyebrow{color:#c0d3c3;font-size:9px}.feature-copy h2{font:600 28px/1.17 var(--serif);margin:13px 0 10px}.feature-copy p{max-width:345px;color:#d1ded5;font-size:11px;line-height:1.7;margin:0 0 20px}.button{border:0;border-radius:7px;padding:11px 15px;font:600 11px var(--sans);transition:transform .18s,background .18s,box-shadow .18s}.button:hover{transform:translateY(-1px)}.button-primary{background:var(--green);color:white;box-shadow:0 3px 8px #30695120}.button-primary:hover{background:var(--green-dark)}.feature-card .button-primary{background:#fff;color:var(--green)}.feature-card .button-primary:hover{background:#eef5ef}.button span{margin-left:11px;font-size:15px}.feature-foot{position:relative;z-index:1;display:flex;justify-content:space-between;color:#aec5b4;font:9px var(--mono)}.home-side{display:grid;gap:14px}.mini-stat-card,.panel,.metric-card,.practice-card,.practice-aside>div,.daily-card{background:var(--card);border:1px solid var(--line);border-radius:11px}.mini-stat-card{padding:16px 17px}.mini-stat-top{display:flex;justify-content:space-between;align-items:center;font:9px var(--mono);letter-spacing:.8px;color:#849088}.mini-icon{display:grid;place-items:center;border-radius:6px;background:#eef1f7;color:#7986ad;width:24px;height:24px;font-size:12px}.mini-icon.green{background:#eaf4ed;color:#528262}.big-stat{display:flex;align-items:baseline;gap:9px;margin:8px 0}.big-stat strong{font:600 30px var(--serif)}.big-stat span{font-size:10px;color:#909991}.week-dots{display:flex;gap:6px;margin:10px 0}.week-dot{width:17px;height:17px;border-radius:50%;background:#f0f2ed;display:grid;place-items:center;color:#b4bbb5;font-size:8px}.week-dot.done{background:#dcebe0;color:var(--green)}.muted{font-size:10px;color:#9aa29b;line-height:1.5;margin:8px 0 0}.learned-bar,.metric-track,.session-track{height:5px;background:#edf0eb;border-radius:7px;overflow:hidden}.learned-bar span,.metric-track i,.session-track i{display:block;height:100%;width:0;background:#81a88b;border-radius:7px;transition:width .35s}.learned-card .muted{margin-top:10px}.daily-card{display:flex;align-items:center;gap:15px;margin-top:17px;padding:17px 20px}.daily-icon{width:37px;height:37px;background:#fbf4e9;color:#c19752;border-radius:9px;display:grid;place-items:center;font-size:19px;flex:none}.daily-body{flex:1}.daily-body .eyebrow{font-size:9px}.daily-body h3{font:600 18px var(--serif);margin:6px 0 3px;text-transform:capitalize}.daily-body p{font-size:10px;color:#929c94;margin:0}.text-button{border:0;background:none;color:var(--green);font:600 10px var(--sans);padding:8px 0}.text-button:hover{text-decoration:underline;text-underline-offset:3px}.practice-round,.collection-count{font:9px var(--mono);letter-spacing:1px;color:#8c958e}.collection-count{padding:9px 12px;background:#fff;border:1px solid var(--line);border-radius:7px}.collection-count strong{color:var(--green);font-size:13px;margin-right:4px}.practice-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(220px,.7fr);gap:17px}.practice-card{padding:22px 25px 23px;min-height:420px}.practice-meta{display:flex;justify-content:space-between;align-items:center}.part-label{color:#8d988f;font:italic 12px var(--serif)}.difficulty{display:flex;gap:7px;align-items:center;font:9px var(--mono);letter-spacing:.6px;color:#7e8981}.difficulty i{width:7px;height:7px;border-radius:50%;background:#d1a55f}.word-wrap{text-align:center;padding:44px 0 32px}.word-wrap h2{font:700 clamp(49px,6vw,68px)/1 var(--serif);letter-spacing:2px;margin:0 0 17px;text-transform:uppercase;animation:enter .3s ease}.word-rule{display:flex;justify-content:center;gap:5px}.word-rule i{width:3px;height:3px;border-radius:50%;background:#c1cbc2}.word-rule i:nth-child(2){width:20px;border-radius:4px;background:var(--green)}#answer-form label,.auth-card form label{display:block;margin:0 0 8px;font-size:11px;font-weight:600}textarea,.auth-card input,.search-box input,.vocab-tools select{width:100%;outline:0;border:1px solid #e3e7e1;border-radius:7px;background:#fcfcfa;padding:12px 13px;color:var(--ink);transition:border .18s,box-shadow .18s}textarea{resize:vertical;min-height:84px;font:12px/1.55 var(--sans)}textarea:focus,.auth-card input:focus,.search-box:focus-within,.vocab-tools select:focus{border-color:#8eac98;box-shadow:0 0 0 3px #30695112}.form-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:12px}.keyboard-hint{color:#9ba49c;font-size:9px}kbd{font:9px var(--mono);border:1px solid #e1e5df;border-radius:4px;padding:3px 5px;background:#fafbf8}.button-next{width:100%;margin-top:13px;background:#eff4ef;color:var(--green)}.button-next:hover{background:#e5efe7}.result{margin-top:17px;padding:13px 15px;border-radius:8px;background:#f4f7f4;animation:enter .25s ease}.result-heading{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700}.result-heading .mark{width:19px;height:19px;display:grid;place-items:center;border-radius:50%;background:#e2efe5;color:var(--green)}.result[data-grade=partial] .mark{background:#fff0da;color:#a86a14}.result[data-grade=incorrect] .mark{background:#f9e7e4;color:#aa4d40}.actual-label{font:9px var(--mono);letter-spacing:.8px;color:#89948c;margin-top:10px}.actual-definition{font-weight:600;font-size:12px;line-height:1.5;margin:4px 0}.example{font:italic 12px/1.5 var(--serif);color:#6f7972;margin:3px 0 0}.practice-aside{display:grid;align-content:start;gap:14px}.aside-note,.aside-progress{padding:19px}.aside-note>span{font-size:18px;color:var(--gold)}.aside-note h3{font:600 19px/1.3 var(--serif);margin:12px 0 7px}.aside-note p{font-size:11px;line-height:1.7;color:#879189;margin:0}.aside-progress>div:nth-child(2){margin:15px 0 10px;color:#8f9991;font-size:10px}.aside-progress>div:nth-child(2) strong{font:25px var(--serif);color:var(--ink)}.session-track{margin-bottom:11px}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.metric-card{min-height:129px;padding:17px;position:relative;overflow:hidden}.metric-highlight{background:#2e6249;color:white;border-color:#2e6249}.metric-label{display:block;font:9px var(--mono);letter-spacing:.65px;color:#8a958d}.metric-highlight .metric-label,.metric-highlight .metric-note{color:#cfddd2}.metric-card>strong{display:block;font:600 30px var(--serif);margin:13px 0 2px}.metric-card>strong small{font:12px var(--sans);color:#939c95;margin-left:2px}.metric-note{font-size:10px;color:#98a19a}.metric-symbol{position:absolute;right:14px;top:13px;color:#ffffff64;font-size:18px}.metric-track{margin-top:10px}.progress-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:15px}.panel{padding:18px 20px}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px}.panel-heading .eyebrow{font-size:9px}.panel-heading h2{font:600 18px var(--serif);margin:7px 0 0}.panel-spark{color:var(--gold);font-size:17px}.breakdown-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-top:1px solid #eff1ed;font-size:11px;color:#69756d}.breakdown-row>span{display:flex;align-items:center;gap:9px}.breakdown-row strong{color:var(--ink)}.grade-dot{width:7px;height:7px;border-radius:50%}.correct-dot{background:#72a480}.partial-dot{background:#d5a24f}.incorrect-dot{background:#c77a6e}.review-count{border-radius:50%;background:#f4f5f1;min-width:25px;height:25px;display:grid;place-items:center;color:#78837b;font:10px var(--mono)}.review-list{margin:-4px 0 8px}.review-item{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #eff1ed;font-size:11px;text-transform:capitalize}.review-item span:last-child{color:#929b94;font-size:10px}.empty-state{font-size:11px;line-height:1.6;color:#9aa29b}.activity-panel{margin-top:14px}.activity-list{display:grid}.activity-item{display:grid;grid-template-columns:29px 1fr auto;gap:10px;align-items:center;padding:9px 0;border-top:1px solid #eff1ed}.activity-symbol{width:27px;height:27px;border-radius:7px;display:grid;place-items:center;background:#eaf3ed;color:#568364}.activity-symbol.partial{background:#fff2df;color:#b77c2d}.activity-symbol.incorrect{background:#f9e9e6;color:#b15e50}.activity-word{font-size:11px;font-weight:600;text-transform:capitalize}.activity-sub{font-size:9px;color:#9aa29b;margin-top:2px}.activity-grade{font-size:9px;color:#829087}.vocab-tools{display:flex;gap:9px;margin-bottom:14px}.search-box{height:38px;border:1px solid var(--line);border-radius:7px;background:white;display:flex;align-items:center;gap:8px;padding:0 11px;flex:1;color:#97a099}.search-box>span{font-size:19px}.search-box input{border:0!important;box-shadow:none!important;background:transparent;padding:0;font-size:11px}.vocab-tools select{width:auto;min-width:142px;padding:0 10px;background:white;font-size:10px;color:#738077}.vocab-list{display:grid;gap:9px}.empty-card{border:1px dashed #dce3dc;border-radius:10px;padding:40px 20px;text-align:center;background:#ffffffa8}.empty-card>span{font-size:23px;color:#8aa28d}.empty-card h3{font:600 20px var(--serif);margin:10px 0 5px}.empty-card p{font-size:11px;color:#8f9991;margin:0 auto 16px}.word-row{display:grid;grid-template-columns:minmax(120px,.8fr) 2fr auto auto;gap:13px;align-items:center;padding:15px 17px;border-radius:9px;background:#fff;border:1px solid var(--line);cursor:pointer;transition:border .17s,transform .17s}.word-row:hover{border-color:#b6c9ba;transform:translateY(-1px)}.word-row-name{font:600 16px var(--serif);text-transform:capitalize}.word-row-pos{font:italic 10px var(--serif);color:#99a19a;margin-top:4px}.word-row-def{font-size:10px;color:#717d74;line-height:1.5}.difficulty-tag,.status-tag{padding:5px 7px;border-radius:5px;font:8px var(--mono);letter-spacing:.3px;white-space:nowrap}.difficulty-tag{background:#f4f4ef;color:#788178}.status-tag.mastered{background:#e9f3eb;color:#50805f}.status-tag.learning{background:#eef1f7;color:#6979a0}.status-tag.review{background:#fbf0e3;color:#a47432}.detail-backdrop{position:fixed;inset:0;z-index:20;background:#17251f66;display:grid;place-items:center;padding:20px}.detail-card{width:min(480px,100%);padding:28px;background:#fff;border-radius:13px;position:relative;box-shadow:0 18px 60px #19231e30;animation:enter .2s ease}.close-button{position:absolute;right:15px;top:13px;border:0;background:#f2f4f0;border-radius:50%;width:28px;height:28px;font-size:19px;color:#738078}.detail-card h2{font:700 34px var(--serif);text-transform:capitalize;margin:9px 0 5px}.detail-difficulty{display:inline-block;color:#9a835b;font:9px var(--mono);margin-bottom:22px}.detail-card .eyebrow{font-size:9px;margin-top:15px}.detail-card>p{font:13px/1.6 var(--sans);margin:7px 0;color:#39463e}.detail-example{font:italic 14px/1.6 var(--serif)!important;color:#718076!important}.synonym-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.synonym-list span{padding:5px 8px;background:#f0f4ef;color:#4f6b57;border-radius:5px;font-size:10px}.profile-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:15px}.profile-card{text-align:center;padding:26px 20px}.profile-avatar{margin:0 auto 12px;width:55px;height:55px;background:#e8f0e9;color:var(--green);border-radius:50%;display:grid;place-items:center;font:24px var(--serif)}.profile-card .eyebrow{justify-content:center;font-size:9px}.profile-card h2{font:600 22px var(--serif);margin:9px 0 3px}.profile-stats{display:flex;justify-content:space-around;padding:17px 0;margin:19px 0 0;border-top:1px solid var(--line)}.profile-stats div{display:grid;gap:5px}.profile-stats strong{font:20px var(--serif)}.profile-stats span{font-size:9px;color:#909a92}.button-secondary{background:#f1f4ef;color:var(--green)}.auth-card{padding:21px 23px}.auth-tabs{display:flex;gap:15px;border-bottom:1px solid var(--line);margin-bottom:20px}.auth-tab{border:0;background:none;padding:0 0 10px;color:#929c94;font-size:11px}.auth-tab.active{color:var(--green);font-weight:700;border-bottom:2px solid var(--green)}.auth-card form h2{font:600 21px var(--serif);margin:0 0 5px}.auth-card form>p{margin:0 0 18px}.auth-card form label{margin-top:12px;font-size:10px}.auth-card input{padding:10px 11px;font-size:11px}.auth-submit{margin-top:16px;width:100%}.auth-message{min-height:17px!important;margin:9px 0 0!important;color:#7d896f;font-size:10px!important}.auth-message.error{color:#b35345}.privacy-note{display:flex;gap:9px;align-items:flex-start;background:#f5f7f3;border-radius:7px;padding:11px;margin-top:18px;color:#839087}.privacy-note span{color:#668770}.privacy-note p{font-size:9px;line-height:1.6;margin:0}.app-footer{display:flex;justify-content:space-between;padding:17px 44px 20px;border-top:1px solid #e9ece6;color:#a0a79f;font:8px var(--mono);letter-spacing:.8px}.app-footer span:first-child{color:#6f7e73}.mobile-nav-backdrop{display:none}[hidden]{display:none!important}@keyframes enter{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1000px){.content{padding:32px 28px 38px}.topbar{padding:0 28px}.app-footer{padding-left:28px;padding-right:28px}.metric-grid{grid-template-columns:repeat(2,1fr)}.word-row{grid-template-columns:minmax(100px,.75fr) 2fr auto}.word-row .difficulty-tag{display:none}}
@media(max-width:740px){.sidebar{width:235px;transform:translateX(-100%);transition:transform .22s ease;box-shadow:8px 0 25px #20332712}.sidebar.open{transform:translateX(0)}.mobile-menu{display:block}.app-main{margin-left:0}.topbar{height:57px;padding:0 16px;gap:12px}.breadcrumb{font-size:8px;flex:1}.breadcrumb span{padding:0 5px}.sync-state{display:none}.content{padding:27px 18px 34px}.app-footer{padding:15px 18px}.welcome-row,.page-heading{align-items:flex-start}.date-card{width:72px;height:78px}.home-grid{grid-template-columns:1fr}.feature-card{min-height:315px}.home-side{grid-template-columns:1fr 1fr}.practice-layout{grid-template-columns:1fr}.practice-aside{grid-template-columns:1fr 1fr}.practice-card{min-height:0}.word-wrap{padding:34px 0 27px}.progress-columns{grid-template-columns:1fr}.profile-grid{grid-template-columns:1fr}.profile-card{padding:22px}.app-footer span:last-child{text-align:right}}
@media(max-width:480px){.content{padding:23px 14px 30px}h1{font-size:34px}.lede{font-size:11px}.topbar{padding:0 12px}.home-side{grid-template-columns:1fr}.mini-stat-card{padding:14px 16px}.feature-card{padding:17px 18px;min-height:300px}.feature-copy h2{font-size:25px}.daily-card{padding:14px;gap:10px}.daily-body h3{font-size:16px}.practice-aside{grid-template-columns:1fr}.practice-card{padding:18px 16px}.word-wrap h2{font-size:50px}.form-bottom{gap:8px}.keyboard-hint{font-size:8px}.button-primary{padding:10px 12px}.metric-grid{gap:8px}.metric-card{min-height:112px;padding:13px}.metric-card>strong{font-size:25px}.vocab-tools{flex-wrap:wrap}.search-box{flex-basis:100%}.vocab-tools select{flex:1;min-width:0;height:36px}.word-row{grid-template-columns:1fr auto;gap:7px 9px;padding:13px}.word-row-name{font-size:15px}.word-row-def{grid-column:1/-1;grid-row:2}.word-row .status-tag{grid-column:2;grid-row:1}.app-footer{font-size:7px;gap:12px}.app-footer span:last-child{max-width:52%}}

/* Appearance controls share one root state so more preferences can be added centrally. */
html[data-theme="dark"]{color-scheme:dark;--ink:#edf3ee;--muted:#aab6ad;--paper:#151d19;--card:#202a24;--line:#354139;--green:#8fc39e;--green-dark:#abd3b5;--mint:#293b30;--gold:#d4ae70}
html[data-theme="dark"] .sidebar,html[data-theme="dark"] .date-card,html[data-theme="dark"] .collection-count,html[data-theme="dark"] .word-row,html[data-theme="dark"] .auth-card input,html[data-theme="dark"] .search-box,html[data-theme="dark"] .vocab-tools select{background:var(--card);color:var(--ink)}
html[data-theme="dark"] .topbar{background:#202a24e8}
html[data-theme="dark"] .nav-link:hover,html[data-theme="dark"] .empty-card,html[data-theme="dark"] .privacy-note,html[data-theme="dark"] .aside-note,html[data-theme="dark"] .aside-progress{background:#26322b;color:var(--ink)}
html[data-theme="dark"] textarea,html[data-theme="dark"] .auth-card input{background:#19221c;color:var(--ink);border-color:#3b4a40}
html[data-theme="dark"] .week-dot,html[data-theme="dark"] .review-count,html[data-theme="dark"] .close-button{background:#303c34;color:#c4d0c7}
html[data-theme="dark"] .result{background:#26332a}
html[data-theme="dark"] .word-row-def,html[data-theme="dark"] .muted,html[data-theme="dark"] .lede,html[data-theme="dark"] .daily-body p{color:#aebbb1}
html[data-theme="dark"] .difficulty-tag{background:#303b33;color:#c5d0c7}
html[data-theme="dark"] .profile-avatar,html[data-theme="dark"] .avatar{background:#34483a;color:#e3f0e5}
html[data-theme="dark"] .app-footer{border-color:var(--line);color:#aebbb1}
html[data-theme="dark"] .avatar-choice{background:#29352d;border-color:#46564a;color:var(--ink)}
html[data-theme="dark"] .avatar-choice.selected{border-color:#95c29e;background:#304536}
html[data-text-size="small"] .content{font-size:13px}
html[data-text-size="small"] .lede,html[data-text-size="small"] .feature-copy p,html[data-text-size="small"] .aside-note p{font-size:11px}
html[data-text-size="large"] .content{font-size:16px}
html[data-text-size="large"] .lede{font-size:15px}
html[data-text-size="large"] .nav-link,html[data-text-size="large"] .button,html[data-text-size="large"] #answer-form label,html[data-text-size="large"] .feature-copy p,html[data-text-size="large"] .aside-note p{font-size:14px}
html[data-word-size="small"] .word-wrap h2{font-size:clamp(42px,5vw,52px)}
html[data-word-size="large"] .word-wrap h2{font-size:clamp(62px,8vw,82px)}
.difficulty-note{font-size:10px;color:#849088;line-height:1.6;margin:13px 0 0}
.vocab-difficulty-note{margin:-11px 0 12px}
.result-groups{margin-top:14px}
.result-group-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.result-group-grid>section{min-width:0}
.result-group-grid h3{display:flex;gap:8px;align-items:center;margin:0 0 9px;font-size:11px}
.result-word-item{border-top:1px solid var(--line);padding:9px 0}
.result-word-item>div{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.result-word-item strong{font:600 14px var(--serif);text-transform:capitalize}
.result-word-item small{font-size:9px;color:#8f9991}
.result-word-item .difficulty-tag{font-size:8px}
.result-word-item p{font-size:10px;line-height:1.5;color:#849088;margin:5px 0 0;overflow-wrap:anywhere}
.setting-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 20px}
.setting-row h2{font:600 17px var(--serif);margin:0 0 5px}
.setting-row p{font-size:11px;color:#849088;margin:0;line-height:1.5}
.settings-list{display:grid;gap:11px;max-width:740px}
.setting-control select{min-width:150px;padding:9px 12px;border:1px solid var(--line);border-radius:7px;background:var(--card);color:var(--ink);font-size:11px}
.settings-saved{font-size:10px;color:#849088;margin:3px 2px}
.avatar-picker{margin:18px auto 2px}
.avatar-picker>span{display:block;font-size:10px;color:#839087;margin-bottom:9px}
.avatar-options{display:flex;justify-content:center;gap:7px}
.avatar-choice{width:35px;height:35px;border:1px solid var(--line);border-radius:50%;background:#f7f8f5;font-size:17px;display:grid;place-items:center;transition:transform .15s,border .15s}
.avatar-choice:hover{transform:translateY(-2px)}
.avatar-choice.selected{border:2px solid var(--green);background:#edf5ef}
.profile-settings-link{display:block;margin:8px auto 0}
.password-requirements{display:grid;grid-template-columns:1fr 1fr;gap:5px 12px;padding:9px 0 0;margin:0;list-style:none;color:#909a92;font-size:9px}
.password-requirements li:before{content:'○';margin-right:6px;color:#a1aaa3}
.password-requirements li.met{color:#4d865e}
.password-requirements li.met:before{content:'✓';color:#4d865e}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:740px){.result-group-grid{grid-template-columns:1fr}}
@media(max-width:480px){.setting-row{align-items:flex-start;flex-direction:column;gap:12px}.setting-control,.setting-control select{width:100%}.password-requirements{grid-template-columns:1fr 1fr}.result-word-item p{font-size:11px}}


/* Data-driven palettes: theme cards set data-theme; System/Light/Dark sets data-appearance. */
html[data-theme="default-dark"],html[data-theme="forest"]{color-scheme:dark;--ink:#edf3ee;--muted:#aab6ad;--paper:#151d19;--card:#202a24;--line:#354139;--green:#8fc39e;--green-dark:#abd3b5;--mint:#293b30;--gold:#d4ae70}
html[data-theme="midnight"]{color-scheme:dark;--ink:#eef0fa;--muted:#aeb5c8;--paper:#111522;--card:#20283a;--line:#39435a;--green:#a5b4fc;--green-dark:#c1cafd;--mint:#2a3148;--gold:#e2c277}
html[data-theme="ocean"]{color-scheme:dark;--ink:#e5f3f3;--muted:#a8c3c5;--paper:#12232a;--card:#203b45;--line:#38565e;--green:#73c8c7;--green-dark:#a2dfdc;--mint:#28474c;--gold:#edc780}
html[data-theme="lavender"]{color-scheme:dark;--ink:#f2edf8;--muted:#c0b5ca;--paper:#241f2d;--card:#393047;--line:#51445f;--green:#c2a9e7;--green-dark:#dbc8f3;--mint:#4a3b56;--gold:#e6c68c}
html[data-theme="warm"]{color-scheme:light;--ink:#3d3028;--muted:#88796d;--paper:#f6efe6;--card:#fffaf4;--line:#e8d9c9;--green:#96613f;--green-dark:#74482d;--mint:#f2e5d7;--gold:#b57b47}
html[data-theme="light"]{color-scheme:light;--ink:#1d2824;--muted:#738078;--paper:#f5f6f2;--card:#fff;--line:#e2e8df;--green:#306951;--green-dark:#245640;--mint:#edf5ef;--gold:#b5843d}
html[data-theme="high-contrast"]{color-scheme:dark;--ink:#fff;--muted:#f0f0f0;--paper:#000;--card:#090909;--line:#fff;--green:#ff0;--green-dark:#ff0;--mint:#202000;--gold:#ff0}
html[data-appearance="dark"]:not([data-theme="high-contrast"]){color-scheme:dark;--paper:#151d19;--card:#202a24;--ink:#edf3ee;--muted:#b1bdb4;--line:#38443c;--mint:#293b30}
html[data-appearance="light"]:not([data-theme="high-contrast"]){color-scheme:light}
html[data-appearance="light"][data-theme="default-dark"],html[data-appearance="light"][data-theme="forest"]{--paper:#f1f5ef;--card:#fff;--ink:#20352a;--muted:#69796e;--line:#dce7dc;--green:#396e4a;--green-dark:#2f5d3d;--mint:#e4efe4}
html[data-appearance="light"][data-theme="midnight"]{--paper:#f1f2fa;--card:#fff;--ink:#272d45;--muted:#6b7188;--line:#e0e2ef;--green:#5969b7;--green-dark:#414f99;--mint:#e7e9f7}
html[data-appearance="light"][data-theme="ocean"]{--paper:#edf5f5;--card:#fff;--ink:#203c42;--muted:#648084;--line:#d7e7e8;--green:#287d7c;--green-dark:#216564;--mint:#dff0ef}
html[data-appearance="light"][data-theme="lavender"]{--paper:#f6f1f8;--card:#fff;--ink:#392e41;--muted:#776a80;--line:#e8ddec;--green:#76558e;--green-dark:#604274;--mint:#eee4f2}
html[data-appearance="dark"][data-theme="light"],html[data-appearance="dark"][data-theme="warm"]{--paper:#191b19;--card:#252824;--ink:#f2f1eb;--muted:#b6b3a8;--line:#42453e;--green:#dfb58b;--green-dark:#efd0ad;--mint:#3a332b}
html[data-theme="high-contrast"] .nav-link.active,html[data-theme="high-contrast"] .button-primary{background:#ff0;color:#000}
html[data-appearance="dark"] .sidebar,html[data-appearance="dark"] .date-card,html[data-appearance="dark"] .collection-count,html[data-appearance="dark"] .word-row,html[data-appearance="dark"] .auth-card input,html[data-appearance="dark"] .search-box,html[data-appearance="dark"] .vocab-tools select,html[data-appearance="dark"] .topbar{background:var(--card);color:var(--ink)}
html[data-appearance="dark"] .nav-link:hover,html[data-appearance="dark"] .empty-card,html[data-appearance="dark"] .privacy-note,html[data-appearance="dark"] .aside-note,html[data-appearance="dark"] .aside-progress,html[data-appearance="dark"] .setting-row,html[data-appearance="dark"] .theme-card,html[data-appearance="dark"] .font-card,html[data-appearance="dark"] .feedback-form,html[data-appearance="dark"] .settings-categories,html[data-appearance="dark"] .daily-practice-card{background:var(--card);color:var(--ink)}
html[data-appearance="dark"] textarea,html[data-appearance="dark"] .auth-card input,html[data-appearance="dark"] .setting-control select,html[data-appearance="dark"] .feedback-form textarea,html[data-appearance="dark"] .username-form input,html[data-appearance="dark"] .performance-filters select{background:var(--paper);color:var(--ink);border-color:var(--line)}
html[data-appearance="dark"] .week-dot,html[data-appearance="dark"] .review-count,html[data-appearance="dark"] .close-button,html[data-appearance="dark"] .difficulty-tag{background:#303b33;color:#d5e0d7}
html[data-appearance="dark"] .result,html[data-appearance="dark"] .notification-placeholder{background:#26332a}
html[data-appearance="dark"] .word-row-def,html[data-appearance="dark"] .muted,html[data-appearance="dark"] .lede,html[data-appearance="dark"] .daily-body p,html[data-appearance="dark"] .setting-row p{color:var(--muted)}
html[data-appearance="dark"] .app-footer{border-color:var(--line);color:var(--muted)}
html[data-appearance="dark"] .profile-avatar{background:#34483a}
html[data-appearance="dark"] .theme-card.selected,html[data-appearance="dark"] .font-card.selected{border-color:var(--green)}
html[data-font="serif"]{--sans:Georgia,"Times New Roman",serif}
html[data-font="rounded"]{--sans:ui-rounded,"Arial Rounded MT Bold",system-ui,sans-serif}
html[data-font="mono"]{--sans:ui-monospace,SFMono-Regular,Menlo,monospace}
html[data-font="system"]{--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.global-profile{display:flex;align-items:center;gap:9px;min-width:165px;border:0;background:none;padding:5px 0;color:var(--ink);text-align:left}
.global-avatar{width:37px;height:37px;display:block;flex:none}.avatar-art{display:block;width:100%;height:100%;filter:drop-shadow(0 2px 2px #10151026)}.avatar-art-small{width:34px;height:34px}
.global-profile-copy{display:grid;min-width:103px;gap:3px}.global-profile-copy strong{font-size:10px;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.global-profile-copy small{font-size:9px;color:var(--muted)}.global-xp-track,.level-track{height:4px;background:var(--line);border-radius:99px;display:block;overflow:hidden}.global-xp-track>i,.level-track>i{display:block;height:100%;width:0;background:var(--green);border-radius:inherit;transition:width .35s ease}
.daily-streak-badge{display:grid;grid-template-columns:auto auto;align-items:center;gap:0 9px;padding:12px 16px;background:var(--mint);border-radius:10px;color:var(--green)}.daily-streak-badge span{grid-column:1/-1;font:9px var(--mono);letter-spacing:.8px}.daily-streak-badge strong{font:600 31px var(--serif)}.daily-streak-badge small{font-size:10px;color:var(--muted)}
.daily-practice-card{max-width:730px;margin:0 auto;background:var(--card);border:1px solid var(--line);border-radius:13px;padding:26px 34px;box-shadow:0 10px 30px #273a2a0a}.daily-completion-line{display:flex;justify-content:space-between;align-items:center;font:10px var(--mono);letter-spacing:.5px;color:var(--muted)}.daily-practice-card .word-wrap h2{font-size:clamp(56px,7vw,76px)}.daily-practice-card .word-wrap{padding:37px 0 31px}.daily-completed-note{font-size:11px;color:var(--muted);margin-top:14px}.daily-xp-award{margin-top:13px;padding:10px 12px;background:var(--mint);border-radius:7px;color:var(--green);font-weight:700;font-size:11px}
.daily-history{max-width:730px;margin:0 auto 14px;padding:0 2px}.daily-history-heading{display:flex;justify-content:space-between;gap:16px;align-items:end;margin-bottom:9px}.daily-history-heading .eyebrow{margin:0}.daily-history-heading p{margin:4px 0 0;color:var(--muted);font-size:10px}.daily-history-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.daily-history-day{min-width:0;display:grid;justify-items:center;gap:2px;padding:8px 3px 7px;border:1px solid var(--line);border-radius:7px;background:var(--card);color:var(--muted);font:9px var(--mono);line-height:1.1;transition:border-color .16s ease,background-color .16s ease,color .16s ease}.daily-history-day strong{font:600 17px var(--serif);color:var(--ink)}.daily-history-day small{width:100%;min-height:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:8px var(--sans);text-transform:capitalize}.daily-history-day:hover:not(:disabled){border-color:var(--green);background:var(--mint);color:var(--green)}.daily-history-day.completed small{color:var(--green)}.daily-history-day.missed{border-style:dashed}.daily-history-day.future{opacity:.48;background:transparent;cursor:not-allowed}.daily-history-day.selected{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green);background:var(--mint)}.daily-history-mode{max-width:730px;margin:0 auto 8px;color:var(--green);font:600 10px var(--mono);letter-spacing:.5px;text-transform:uppercase}.daily-history-answer{margin:12px 0;padding:10px 12px;border-left:2px solid var(--line);background:var(--paper)}.daily-history-answer span{font:9px var(--mono);letter-spacing:.7px;color:var(--muted)}.daily-history-answer p{margin:5px 0 2px;font-size:12px;line-height:1.5}.daily-history-answer small{font-size:9px;color:var(--muted)}.daily-history-empty{padding:13px;background:var(--mint);border-radius:7px;color:var(--green)}.daily-history-empty strong{font-size:12px}.daily-history-empty p{margin:4px 0 0;font-size:10px;color:var(--muted)}
.review-item{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}.review-item strong{font:600 14px var(--serif);text-transform:capitalize}.review-item span{font-size:10px;color:var(--muted);text-align:right}.upcoming-review{display:grid;gap:6px;padding:13px 0;font-size:10px;color:var(--muted)}.upcoming-review strong{color:var(--ink);font-size:11px}.button:disabled{opacity:.5;cursor:not-allowed}
.retention-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:17px 0}.retention-stats>div{display:grid;gap:6px;padding:11px;background:var(--mint);border-radius:7px}.retention-stats span{font-size:9px;color:var(--muted)}.retention-stats strong{font:600 21px var(--serif);color:var(--green)}.retention-chart{height:92px;display:flex;gap:7px;align-items:flex-end;border-bottom:1px solid var(--line);padding:0 3px}.retention-week{height:100%;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:5px;min-width:20px}.retention-week i{width:70%;max-width:28px;border-radius:4px 4px 0 0;background:var(--green);transition:height .3s}.retention-week small{font-size:8px;color:var(--muted);white-space:nowrap}
.heatmap-panel{overflow:hidden}.heatmap-scroll{overflow-x:auto;padding-bottom:6px}.heatmap-months{height:17px;min-width:690px;display:grid;grid-auto-columns:11px;grid-auto-flow:column;gap:3px;font-size:8px;color:var(--muted)}.heatmap-grid{display:grid;grid-auto-flow:column;grid-template-rows:repeat(7,11px);grid-auto-columns:11px;gap:3px;min-width:690px}.heatmap-cell,.heatmap-legend i{width:11px;height:11px;border-radius:3px;background:var(--line);display:block}.heatmap-cell[data-level="1"],.heatmap-legend i[data-level="1"]{background:#b8d7bc}.heatmap-cell[data-level="2"],.heatmap-legend i[data-level="2"]{background:#83b991}.heatmap-cell[data-level="3"],.heatmap-legend i[data-level="3"]{background:#55956b}.heatmap-cell[data-level="4"],.heatmap-legend i[data-level="4"]{background:#286344}.heatmap-legend{display:flex;gap:5px;align-items:center;justify-content:flex-end;margin-top:8px;font-size:8px;color:var(--muted)}.heatmap-legend span:first-child{margin-right:3px}.heatmap-legend span:last-child{margin-left:3px}
.performance-filters{display:flex;gap:7px}.performance-filters select{padding:7px;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--ink);font-size:9px}.performance-list{display:grid}.performance-row{display:grid;grid-template-columns:1fr auto .6fr .8fr .8fr .8fr;align-items:center;gap:10px;padding:11px 0;border-top:1px solid var(--line);font-size:9px;color:var(--muted)}.performance-row>strong{font:600 14px var(--serif);text-transform:capitalize;color:var(--ink)}
.settings-layout{display:grid;grid-template-columns:175px minmax(0,1fr);gap:16px;align-items:start}.settings-categories{display:grid;gap:4px;padding:8px;background:#fff;border:1px solid var(--line);border-radius:10px;position:sticky;top:15px}.settings-category{border:0;background:none;text-align:left;padding:11px 12px;border-radius:6px;color:var(--muted);font-size:11px;transition:background .16s,color .16s}.settings-category:hover{background:var(--paper);color:var(--ink)}.settings-category.active{background:var(--mint);color:var(--green);font-weight:700}.settings-panels{min-width:0}.settings-panel{display:none;animation:enter .2s ease}.settings-panel.active{display:block}.settings-panel>.panel-heading{margin:0 0 16px}.settings-list{display:grid;gap:10px}.settings-subheading{margin:22px 0 11px;font:600 15px var(--serif)}.theme-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.theme-card,.font-card{border:1px solid var(--line);border-radius:9px;background:var(--card);color:var(--ink);padding:9px;text-align:left;transition:transform .16s,border-color .16s,box-shadow .16s}.theme-card:hover,.font-card:hover{transform:translateY(-2px)}.theme-card.selected,.font-card.selected{border:2px solid var(--green);box-shadow:0 0 0 2px color-mix(in srgb,var(--green) 18%,transparent)}.theme-preview{height:76px;padding:8px;display:flex;gap:5px;align-items:flex-start;background:var(--swatch-a);border-radius:6px;margin-bottom:8px}.theme-preview i{display:block;height:14px;flex:1;border-radius:4px;background:var(--swatch-b)}.theme-preview i:nth-child(2){background:var(--swatch-c);margin-top:17px}.theme-preview i:nth-child(3){background:var(--swatch-d);margin-top:34px}.theme-card>span:last-child{font-size:10px;font-weight:600}.font-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.font-card{display:grid;gap:6px;text-align:center;padding:14px 8px}.font-card strong{font:28px var(--sample-font)}.font-card span{font-size:9px}.settings-profile{display:flex;align-items:center;gap:14px;padding:14px}.settings-profile-avatar{width:45px;height:45px;flex:none}.settings-profile>div:nth-child(2){flex:1}.settings-profile strong{font-size:12px}.settings-profile p{margin:4px 0;font-size:10px}.settings-profile .level-track{max-width:200px}.avatar-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.avatar-grid .avatar-choice{width:auto;height:auto;min-height:74px;border-radius:9px;display:flex;flex-direction:column;justify-content:center;gap:5px}.avatar-choice span{font-size:9px;color:var(--muted)}.avatar-picker .avatar-grid{max-width:225px;margin:auto}.profile-avatar{overflow:hidden;padding:3px}.profile-avatar .avatar-art{width:100%;height:100%}.settings-profile-avatar .avatar-art{width:100%;height:100%}.username-form{display:grid;grid-template-columns:1fr auto;gap:8px;max-width:480px;align-items:end;margin-top:16px}.username-form label{grid-column:1/-1;font-size:10px}.username-form input{padding:10px;border:1px solid var(--line);border-radius:7px;background:var(--card);color:var(--ink)}.username-form .feedback-status{grid-column:1/-1;margin:0}.notification-placeholder{display:flex;gap:14px;padding:20px;background:var(--mint);border-radius:9px}.notification-icon{font-size:24px;color:var(--green)}.notification-placeholder strong{font-size:12px}.notification-placeholder p{font-size:10px;line-height:1.6;margin:5px 0}.feedback-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.feedback-form{display:grid;gap:7px;padding:17px}.feedback-form h3{font:600 16px var(--serif);margin:0}.feedback-form>p{font-size:10px;line-height:1.5;margin:0 0 4px}.feedback-form label{font-size:10px;font-weight:600}.feedback-form textarea{width:100%;resize:vertical;padding:10px;border:1px solid var(--line);border-radius:7px;background:var(--paper);color:var(--ink);font-size:11px}.feedback-form .button{justify-self:start;margin-top:5px}.feedback-status{min-height:14px;margin:0;color:var(--green);font-size:9px;line-height:1.5}.feedback-error{color:#a34035}.level-up-toast{position:fixed;z-index:40;left:50%;bottom:24px;transform:translate(-50%,12px);opacity:0;pointer-events:none;padding:13px 18px;background:var(--green-dark);color:#fff;border-radius:10px;font-size:12px;font-weight:700;box-shadow:0 10px 30px #0003;transition:opacity .2s,transform .2s}.level-up-toast.visible{opacity:1;transform:translate(-50%,0)}
html[data-text-size="small"] .content{font-size:14px}html[data-text-size="large"] .content{font-size:16px}html[data-word-size="small"] .daily-practice-card .word-wrap h2{font-size:clamp(48px,6vw,61px)}html[data-word-size="large"] .daily-practice-card .word-wrap h2{font-size:clamp(68px,8vw,88px)}
@media(max-width:1000px){.theme-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.performance-row{grid-template-columns:1fr auto .6fr .7fr}.performance-row span:nth-last-child(-n+2){display:none}}
@media(max-width:740px){.global-profile{min-width:0}.global-profile-copy{display:none}.global-avatar{width:34px;height:34px}.settings-layout{grid-template-columns:1fr}.settings-categories{position:static;display:flex;overflow-x:auto}.settings-category{white-space:nowrap}.theme-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.font-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.feedback-grid{grid-template-columns:1fr}.daily-practice-card{padding:22px 20px}.daily-history-days{gap:4px}.daily-history-day{padding:7px 2px}.performance-row{grid-template-columns:1fr auto .65fr}.performance-row span:nth-last-child(-n+3){display:none}.heatmap-panel{padding-right:14px;padding-left:14px}.retention-stats{grid-template-columns:repeat(3,1fr)}}
@media(max-width:480px){.daily-streak-badge{padding:9px 11px}.daily-streak-badge strong{font-size:25px}.daily-practice-card{padding:17px 14px}.daily-practice-card .word-wrap h2{font-size:52px}.theme-grid{gap:7px}.theme-preview{height:58px}.theme-card{padding:7px}.theme-card>span:last-child{font-size:9px}.settings-profile{flex-wrap:wrap}.username-form{grid-template-columns:1fr}.username-form label,.username-form .feedback-status{grid-column:1}.username-form button{width:100%}.performance-filters{flex-direction:column}.performance-filters select{max-width:140px}.performance-row{grid-template-columns:1fr auto}.performance-row span:nth-last-child(-n+3){display:none}.retention-chart{gap:4px}.retention-week small{font-size:7px}.heatmap-grid,.heatmap-months{min-width:690px}}
.status-tag.familiar{background:#e8f0fa;color:#586f9b}.status-tag.new{background:#f2f2ed;color:#718078}.review-subsection{margin-top:14px}.review-subsection h3{font:600 11px var(--sans);margin:0 0 4px;color:var(--muted)}.review-subsection .empty-state{font-size:10px}.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.metric-card{min-height:145px}.word-wrap h2{font-size:clamp(62px,7vw,82px)}.button{min-height:42px}.text-button{min-height:36px;font-size:11px}.page-heading h1{line-height:1.13}.lede{font-size:13px;line-height:1.65}.practice-card{padding:27px 32px}.practice-card #answer-form textarea{font-size:14px}.nav-link{font-size:13px}.word-row-name{font-size:18px}.word-row-def{font-size:11px}
@media(max-width:1000px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.word-wrap h2{font-size:54px}.practice-card{padding:20px 17px}.daily-practice-card .word-wrap h2{font-size:50px}}
@media(max-width:740px){.global-profile-copy{display:grid}.global-profile-copy strong,.global-xp-track{display:none}.global-profile-copy small{font-size:8px;white-space:nowrap}}
html[data-appearance="dark"] .button-secondary{background:var(--mint);color:var(--green)}html[data-theme="high-contrast"] .button-primary{color:#000;border:1px solid #ff0}html[data-theme="high-contrast"] .button-secondary{background:#000;color:#ff0;border:1px solid #fff}
.profile-level{display:grid;gap:7px;max-width:250px;margin:18px auto 0;text-align:left}.profile-level>span{font:9px var(--mono);letter-spacing:.7px;color:var(--muted)}.profile-level>span b{color:var(--green)}.profile-level>strong{font:600 19px var(--serif);color:var(--ink)}.profile-level>small{font-size:9px;color:var(--muted)}.result-extras{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px;font-size:9px;color:var(--muted)}.result-extras>span{padding:4px 7px;border:1px solid var(--line);border-radius:5px}.result-extras .result-synonyms{flex-basis:100%;line-height:1.5}.profile-card .profile-stats{gap:8px}.profile-card .profile-stats span{font-size:9px}
html[data-appearance="dark"] .button-next{background:var(--mint);color:var(--green)}

/* WordWise visual polish: theme variables provide complete, coherent surfaces. */
html[data-appearance="dark"][data-theme="forest"]{color-scheme:dark;--paper:#17231d;--card:#202e25;--ink:#f1ead9;--muted:#b4b9a9;--line:#38483c;--green:#a4b992;--green-dark:#829a70;--mint:#2a3a2e;--gold:#d8b975;--input:#19251e;--success:#b2d5a6;--partial:#e3c27b;--error:#e2a19a}
html[data-appearance="dark"][data-theme="midnight"]{color-scheme:dark;--paper:#101723;--card:#1a2535;--ink:#edf2fa;--muted:#aab6c9;--line:#354358;--green:#8bb4ed;--green-dark:#6998da;--mint:#26364b;--gold:#ecc47f;--input:#121c2a;--success:#9bd4ad;--partial:#e9c87e;--error:#eea39a}
html[data-appearance="dark"][data-theme="ocean"]{color-scheme:dark;--paper:#102326;--card:#193337;--ink:#e5f4f0;--muted:#a1c0bd;--line:#315052;--green:#79c9bc;--green-dark:#58aa9c;--mint:#224244;--gold:#e4bd7b;--input:#142a2d;--success:#92d3ad;--partial:#e5c67c;--error:#e5a099}
html[data-appearance="dark"][data-theme="lavender"]{color-scheme:dark;--paper:#211b2b;--card:#30283b;--ink:#f4effa;--muted:#bdb1c9;--line:#494054;--green:#c4a9e6;--green-dark:#a98acb;--mint:#3e334d;--gold:#e5bd7d;--input:#271f32;--success:#acd6b7;--partial:#e5c67c;--error:#e9a5a0}
html[data-appearance="dark"][data-theme="warm"]{color-scheme:dark;--paper:#292018;--card:#382b20;--ink:#f8ecdc;--muted:#c9b7a1;--line:#574333;--green:#e3a16e;--green-dark:#ce8653;--mint:#493527;--gold:#edc37b;--input:#30241b;--success:#b5d49d;--partial:#e6c77d;--error:#e6a097}
html[data-appearance="dark"][data-theme="ivory"],html[data-appearance="dark"][data-theme="light"]{color-scheme:dark;--paper:#211e1b;--card:#302b27;--ink:#f4eee7;--muted:#c1b5aa;--line:#4c443e;--green:#d39a78;--green-dark:#bb7957;--mint:#41342c;--gold:#e0bc7d;--input:#292420;--success:#b0d4a5;--partial:#e5c67e;--error:#e3a09a}
html[data-appearance="light"][data-theme="ivory"]{color-scheme:light;--paper:#f3eee4;--card:#fffaf1;--ink:#342c27;--muted:#756b62;--line:#e4d9ca;--green:#a95f44;--green-dark:#884b36;--mint:#eee3d6;--gold:#b48246;--input:#fffdf9;--success:#286b43;--partial:#8a6418;--error:#a3453c}
html[data-appearance="light"][data-theme="midnight"]{color-scheme:light;--paper:#e9edf4;--card:#f8faff;--ink:#222b39;--muted:#687386;--line:#d6ddea;--green:#496eaa;--green-dark:#35588f;--mint:#dce6f5;--gold:#9f732c;--input:#fff;--success:#286b43;--partial:#8a6418;--error:#a3453c}
html[data-appearance="light"][data-theme="ocean"]{color-scheme:light;--paper:#eaf4f2;--card:#f7fffd;--ink:#17393a;--muted:#5d7978;--line:#d2e4e0;--green:#287f78;--green-dark:#216963;--mint:#d8eeea;--gold:#97702e;--input:#fff;--success:#286b43;--partial:#8a6418;--error:#a3453c}
html[data-appearance="light"][data-theme="forest"]{color-scheme:light;--paper:#eff1e8;--card:#fbfcf4;--ink:#28352a;--muted:#6c796c;--line:#dce2d4;--green:#496a48;--green-dark:#365638;--mint:#e1eadc;--gold:#a27a37;--input:#fff;--success:#286b43;--partial:#8a6418;--error:#a3453c}
html[data-appearance="light"][data-theme="lavender"]{color-scheme:light;--paper:#f1edf5;--card:#fcf9ff;--ink:#352e40;--muted:#756b82;--line:#e0d8e8;--green:#73588d;--green-dark:#604576;--mint:#e9e0f1;--gold:#a77938;--input:#fff;--success:#286b43;--partial:#8a6418;--error:#a3453c}
html[data-appearance="light"][data-theme="warm"]{color-scheme:light;--paper:#f0e4d4;--card:#fff6ea;--ink:#38291f;--muted:#796959;--line:#e5d3bf;--green:#a8572e;--green-dark:#884426;--mint:#f2dfcb;--gold:#ac7937;--input:#fffaf4;--success:#286b43;--partial:#8a6418;--error:#a3453c}
html[data-appearance="light"][data-theme="light"]{color-scheme:light;--paper:#f4f5f1;--card:#fff;--ink:#27342b;--muted:#6f7b73;--line:#e2e7e1;--green:#4f785c;--green-dark:#3d664a;--mint:#e5eee6;--gold:#ad8545;--input:#fff;--success:#286b43;--partial:#8a6418;--error:#a3453c}
html[data-theme="high-contrast"]{color-scheme:dark;--paper:#000;--card:#090909;--ink:#fff;--muted:#f1f1f1;--line:#fff;--green:#ff0;--green-dark:#ff0;--mint:#171700;--gold:#ff0;--input:#000;--success:#6f6;--partial:#ff0;--error:#ff8c8c}
html[data-theme="high-contrast"][data-appearance="light"]{color-scheme:light;--paper:#fff;--card:#fff;--ink:#000;--muted:#222;--line:#000;--green:#000080;--green-dark:#000066;--mint:#e6e6ff;--gold:#5c3a00;--input:#fff;--success:#006400;--partial:#725000;--error:#9d0000}
body,.sidebar,.topbar,.date-card,.collection-count,.word-row,.panel,.setting-row,.practice-card,.daily-practice-card,.theme-card,.button,.nav-link,textarea,input{transition:background-color .22s ease,color .22s ease,border-color .22s ease}
.sidebar,.topbar,.date-card,.collection-count,.word-row,.panel,.setting-row,.practice-card,.daily-practice-card,.theme-card,.font-card,.settings-categories,.custom-select .select-options{background:var(--card);color:var(--ink)}
.sidebar{border-color:var(--line)}.topbar{background:color-mix(in srgb,var(--card) 93%,transparent);border-color:var(--line)}
.nav-link,.breadcrumb,.sync-state,.global-profile-copy small,.eyebrow,.nav-caption{color:var(--muted)}.nav-link:hover,.settings-category:hover{background:var(--mint);color:var(--ink)}
textarea,.auth-card input,.setting-control select,.feedback-form textarea,.username-form input,.performance-filters select,.vocab-tools select,.search-box,.select-trigger{background:var(--input,var(--card));color:var(--ink);border-color:var(--line)}
.result[data-grade="correct"]{background:color-mix(in srgb,var(--success) 12%,var(--card));border-color:color-mix(in srgb,var(--success) 35%,var(--line));animation:result-pop .25s ease}
.result[data-grade="partial"]{background:color-mix(in srgb,var(--partial) 12%,var(--card));border-color:color-mix(in srgb,var(--partial) 35%,var(--line));animation:result-pop .25s ease}
.result[data-grade="incorrect"]{background:color-mix(in srgb,var(--error) 10%,var(--card));border-color:color-mix(in srgb,var(--error) 30%,var(--line));animation:result-pop .25s ease}
@keyframes result-pop{from{transform:translateY(5px);opacity:.72}to{transform:translateY(0);opacity:1}}
.word-wrap{min-width:0;overflow:hidden}.word-wrap h2{max-width:100%;overflow-wrap:anywhere;word-break:normal;hyphens:none;line-height:1.08;letter-spacing:-.045em;text-align:center;margin:0 auto}.practice-card{padding:clamp(22px,3vw,36px);border-radius:16px;box-shadow:0 12px 36px #17231d0b}.practice-card .word-wrap{padding:clamp(24px,4vw,38px) 0 clamp(19px,3vw,30px)}.practice-card .practice-meta{margin-bottom:2px}
.theme-card{display:grid;gap:6px;min-width:0}.theme-card>span:last-child{display:block;line-height:1.35;font-size:10px}.theme-card:focus-visible,.button:focus-visible,.nav-link:focus-visible,.settings-category:focus-visible,.global-profile:focus-visible,.music-control:focus-visible,.select-trigger:focus-visible,.select-options [role="option"]:focus-visible{outline:3px solid color-mix(in srgb,var(--green) 55%,white);outline-offset:2px}.theme-preview{height:105px;display:flex;flex-direction:column;align-items:stretch;gap:7px;padding:8px;background:var(--swatch-a);border:1px solid color-mix(in srgb,var(--swatch-d) 18%,transparent);margin:0}.preview-top{display:flex;gap:3px;justify-content:flex-end}.preview-top i{display:block;width:5px;height:5px;border-radius:50%;background:var(--swatch-c)}.preview-word{display:block;font:700 7px var(--mono);letter-spacing:.6px;color:var(--swatch-d)}.preview-line{height:13px;border-radius:3px;background:var(--swatch-b);border-left:3px solid var(--swatch-c)}.preview-button{height:12px;width:40%;border-radius:4px;background:var(--swatch-c);align-self:flex-end}.theme-card.selected{border:2px solid var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 16%,transparent)}.theme-card.selected:after{content:'✓';position:absolute;top:14px;right:14px;border-radius:50%;width:20px;height:20px;display:grid;place-items:center;background:var(--green);color:var(--card);font-size:11px}.theme-card{position:relative}.theme-card:hover{box-shadow:0 8px 20px #10201818}
.custom-select{position:relative;min-width:188px}.select-trigger{width:100%;min-height:42px;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:0 13px;border:1px solid var(--line);border-radius:9px;color:var(--ink);font-size:12px;text-align:left;box-shadow:0 2px 6px #101a1009}.select-trigger>span:last-child{color:var(--muted);transform:none;transition:none}.select-options{position:absolute;z-index:20;inset:calc(100% + 5px) 0 auto;display:grid;gap:2px;padding:5px;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 30px #101a102b;}.select-options[hidden]{display:none}.select-options [role="option"]{border:0;background:none;color:var(--ink);border-radius:6px;text-align:left;padding:10px;font-size:12px}.select-options [role="option"]:hover,.select-options [aria-selected="true"]{background:var(--mint);color:var(--green)}.setting-control{min-width:min(188px,100%)}.font-setting{margin-top:13px;background:var(--card)}
.music-control{display:flex;align-items:center;gap:6px;min-height:34px;padding:0 10px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--muted);font-size:10px;white-space:nowrap;transition:all .18s}.music-control.is-playing{color:var(--green);background:var(--mint);border-color:color-mix(in srgb,var(--green) 25%,var(--line))}.music-control.is-playing:before{content:'';width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 15%,transparent)}.topbar-right{gap:10px}.global-profile{border:1px solid transparent;border-radius:12px;padding:4px 9px;background:transparent;transition:background .18s,border .18s}.global-profile:hover{background:var(--mint);border-color:var(--line)}.global-profile-copy{gap:4px}.global-profile-copy strong{font-size:11px}.global-xp-track{height:3px}
.audio-note{margin:-5px 0 16px;font-size:12px}.switch-control{display:flex;align-items:center;cursor:pointer}.switch-control input{position:absolute;opacity:0;width:1px;height:1px}.switch-track{width:44px;height:25px;border-radius:20px;background:var(--line);position:relative;transition:background .2s}.switch-track:after{content:'';position:absolute;left:3px;top:3px;width:19px;height:19px;border-radius:50%;background:var(--card);box-shadow:0 1px 4px #0003;transition:transform .2s}.switch-control input:checked+.switch-track{background:var(--green)}.switch-control input:checked+.switch-track:after{transform:translateX(19px)}.switch-control input:focus-visible+.switch-track{outline:3px solid color-mix(in srgb,var(--green) 45%,white);outline-offset:2px}.range-control{display:flex;align-items:center;min-width:min(220px,100%)}.range-control input{width:100%;accent-color:var(--green)}.audio-cues{padding:17px}.audio-cues h2{margin:0 0 4px;font-size:13px}.audio-cues p{font-size:10px;color:var(--muted);margin:0 0 12px}.cue-grid{display:flex;gap:9px 17px;flex-wrap:wrap}.cue-grid label{font-size:11px;color:var(--muted);display:flex;gap:6px;align-items:center}.cue-grid input{accent-color:var(--green)}
.result-heading .mark{color:var(--green)}.result[data-grade="incorrect"] .mark{color:var(--error)}.result[data-grade="partial"] .mark{color:var(--partial)}.global-profile-copy strong{color:var(--ink)}.word-row-name{overflow-wrap:anywhere}.practice-meta .part-label{text-transform:capitalize}
@media(max-width:740px){.topbar{padding:0 15px}.topbar-right{gap:7px}.music-control{width:35px;justify-content:center;padding:0}.music-control span{display:none}.global-profile{padding:2px}.global-profile-copy{display:grid}.global-profile-copy small{font-size:8px}.settings-categories{gap:3px}.settings-category{padding:10px 11px}.setting-control{width:100%}.custom-select{width:100%}.font-setting{align-items:flex-start}.practice-card{padding:22px 18px}.word-wrap h2{font-size:clamp(44px,11vw,82px)}}
@media(max-width:480px){.breadcrumb{font-size:8px}.sync-state{display:none}.topbar-right{margin-left:auto}.music-control{min-height:32px}.theme-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.theme-preview{height:88px}.setting-row{padding:15px}.range-control{max-width:none}.cue-grid{display:grid;grid-template-columns:1fr 1fr}.page-heading{align-items:flex-start}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}


.settings-savebar{position:sticky;bottom:10px;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:22px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--card) 94%,transparent);box-shadow:0 8px 28px #17231d12;backdrop-filter:blur(12px)}.settings-savebar>div{display:flex;gap:8px}.settings-saved{margin:0;font-size:12px;color:var(--muted)}.settings-savebar button:disabled{opacity:.48;cursor:not-allowed}.feedback-status.error,.auth-message.error{color:var(--error)}.inline-field-status{font-size:12px;color:var(--muted)}.font-sample{display:inline-block;min-width:28px;margin-right:8px;font-size:18px;font-weight:600}.cue-grid>button{border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);padding:5px 9px;font:inherit;font-size:10px;cursor:pointer}.cue-grid>button:hover{border-color:var(--green);color:var(--green)}.keep-signed-in{display:flex;align-items:center;gap:8px;margin:12px 0;color:var(--muted);font-size:12px}.keep-signed-in input{accent-color:var(--green)}
@media(max-width:480px){.settings-savebar{align-items:flex-start;flex-direction:column;bottom:6px;padding:10px}.settings-savebar>div{width:100%}.settings-savebar button{flex:1}}

/* WordWise visual system: warm editorial colors, tactile controls, and calm spacing. */
:root{
  --ink:#382f29;
  --muted:#82766c;
  --paper:#f7f2eb;
  --card:#fffdf9;
  --line:#e8ddd1;
  --green:#a65f43;
  --green-dark:#874832;
  --mint:#f3e8df;
  --gold:#b27a4a;
  --input:#fffdf9;
  --success:#477653;
  --partial:#a36a22;
  --error:#a64f43;
  --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;
  --space-5:22px;--space-6:30px;--space-7:42px;
  --shadow-soft:0 5px 18px #47382b0a;
  --shadow-raised:0 12px 30px #47382b10;
}
body{background:var(--paper);font-size:14px;line-height:1.55;letter-spacing:.005em}
.sidebar{width:218px;padding:25px 16px 17px;background:var(--card);border-color:var(--line)}
.brand{margin:0 0 31px 7px;font-size:18px;letter-spacing:-.7px}
.brand-mark{width:34px;height:34px;border-radius:8px;background:var(--green);font-size:23px}
.app-main{margin-left:218px}
.topbar{height:66px;padding:0 clamp(22px,4vw,54px);background:color-mix(in srgb,var(--card) 88%,transparent);backdrop-filter:blur(12px)}
.content{width:min(1190px,100%);padding:clamp(26px,4vw,48px) clamp(22px,4vw,54px) 52px}
.nav-caption{font-size:9px;letter-spacing:1.4px;margin-bottom:8px}
.primary-nav{display:grid;gap:9px;overflow-y:auto;overscroll-behavior:contain;padding:0 2px 12px}
.primary-nav>.nav-link{height:39px;margin:0 4px 2px;padding:0 11px;border-radius:6px;color:var(--muted);font-size:13px}
.primary-nav>.nav-link>span{color:var(--gold);font-size:17px}
.nav-group{position:relative;margin:0 4px;padding:0}
.nav-group>summary{position:relative;display:flex;align-items:center;min-height:38px;list-style:none;cursor:pointer;padding:0 30px 0 11px;border-radius:6px;color:#65594f;font:600 13px var(--sans);transition:color .18s,background .18s}
.nav-group>summary::-webkit-details-marker{display:none}
.nav-group>summary::marker{content:""}
.nav-group>summary::after{content:"";position:absolute;right:13px;width:6px;height:6px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .2s ease,color .2s;color:#aa9a8d}
.nav-group>summary:hover{background:#f7f0e8;color:var(--green)}
.nav-group[open]>summary{color:var(--green)}
.nav-group[open]>summary::after{transform:rotate(225deg) translate(-1px,-1px);color:var(--green)}
.nav-group:has(>.nav-link.active)>summary{color:var(--green)}
.nav-group>.nav-link{position:relative;height:34px;margin-left:17px;padding:0 9px 0 14px;border-radius:5px;color:var(--muted);font-size:12px;gap:9px}
.nav-group>.nav-link>span{width:14px;font-size:14px;color:#ac998a}
.nav-group>.nav-link:hover{background:#f8f2eb;color:var(--ink)}
.nav-group>.nav-link.active{background:var(--mint);color:var(--green);font-weight:650}
.nav-group>.nav-link.active>span{color:var(--green)}
/* Each open group gets a quiet spine with short branches into its child links. */
.nav-group[open]::before{content:"";position:absolute;z-index:0;left:17px;top:38px;bottom:16px;border-left:1px solid #ddcfc1;pointer-events:none}
.nav-group>.nav-link::before{content:"";position:absolute;left:-1px;top:50%;width:10px;border-top:1px solid #ddcfc1;pointer-events:none}
.nav-group::details-content{block-size:0;overflow:hidden;transition:block-size .22s ease,content-visibility .22s allow-discrete}
.nav-group[open]::details-content{block-size:auto}
.sidebar-bottom{padding:15px 10px 0;border-color:var(--line)}
.sidebar-bottom p{font-size:15px;margin:7px 0 13px}
.sidebar-bottom p strong{color:var(--green)}
.app-footer{border-color:var(--line);font-size:9px}
.welcome-row,.page-heading{margin-bottom:clamp(22px,3vw,32px);gap:24px}
.eyebrow{font-size:10px;letter-spacing:1.25px;color:var(--gold)}
.eyebrow-line{background:var(--gold)}
h1{font-size:clamp(35px,4vw,51px);line-height:1.08;letter-spacing:-1.35px;margin:12px 0 10px}
h1 em{color:var(--green)}
.lede{max-width:660px;font-size:14px;color:var(--muted)}
.page-heading h1{margin-top:12px}
.feature-card{min-height:340px;padding:clamp(23px,3vw,34px);border:1px solid #784431;border-radius:10px;background:#714632;color:#fffaf4}
.feature-card:after{right:5px;bottom:2px;font-size:205px;color:#fffaf408}
.feature-mark{color:#e4ba90}
.feature-copy h2{font-size:clamp(27px,3vw,37px)}
.feature-copy p{font-size:13px;line-height:1.7}
.feature-copy .eyebrow{color:#eacdb6}
.feature-foot{font-size:10px;color:#dec5b0}
.feature-card .button-primary{background:#fff8ef;color:#754830;box-shadow:none}
.feature-card .button-primary:hover{background:#f0dfce}
.date-card,.collection-count{background:var(--card);border-color:var(--line);border-radius:8px;box-shadow:var(--shadow-soft)}
.mini-stat-card,.panel,.metric-card,.practice-card,.practice-aside>div,.daily-card,.daily-practice-card{border-color:var(--line);border-radius:9px;box-shadow:var(--shadow-soft)}
.mini-stat-card,.panel,.metric-card,.practice-card,.practice-aside>div,.daily-card{background:var(--card)}
.mini-stat-card{padding:19px}
.home-grid,.practice-layout{gap:20px}
.home-side{gap:14px}
.daily-card{padding:19px 21px}
.daily-icon{background:#f4e7d8;color:var(--gold);border-radius:7px}
.practice-card{padding:clamp(22px,3vw,35px);}
.daily-practice-card{background:var(--card);border-radius:10px;padding:clamp(22px,4vw,38px);box-shadow:var(--shadow-raised)}
.word-wrap{padding:clamp(30px,4vw,46px) 0 32px}
.word-wrap h2{font-size:clamp(54px,7vw,82px);letter-spacing:1px;color:var(--ink)}
.part-label{color:var(--muted)}
.difficulty{color:var(--muted)}
.difficulty i{background:var(--gold)}
.practice-round,.collection-count{font-size:10px}
.metric-grid{gap:13px}
.metric-card{padding:20px;min-height:135px}
.metric-highlight{background:#714632;border-color:#714632}
.metric-card>strong{font-size:34px}
.metric-track,.learned-bar,.session-track{background:color-mix(in srgb,var(--line) 75%,transparent)}
.learned-bar span,.metric-track i,.session-track i{background:var(--green)}
.panel{padding:clamp(18px,2.5vw,25px)}
.panel-heading h2{font-size:21px}
.progress-columns{gap:16px;margin-top:18px}
.progress-columns>.panel,.settings-panel>.panel,.profile-grid>.panel{margin-bottom:14px}
.status-tag,.difficulty-tag{border-radius:4px}
.detail-card{background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-raised)}
.synonym-list span{border-radius:4px;background:var(--mint);color:var(--green)}
.profile-card{padding:30px 22px}
.settings-categories{background:var(--card);border-color:var(--line);border-radius:8px}
.settings-category{border-radius:5px}
.settings-category.active{background:var(--mint);color:var(--green)}
.settings-panel>.panel-heading{margin-bottom:19px}
.settings-list{gap:11px}
.setting-row{border-radius:8px}
.settings-savebar{border-radius:8px;box-shadow:var(--shadow-raised)}

/* Shared controls, including account/profile forms and settings. */
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),textarea,select{
  appearance:none;-webkit-appearance:none;width:100%;min-height:42px;padding:10px 12px;
  border:1px solid #dfd2c5;border-radius:6px;background:var(--input,var(--card));color:var(--ink);
  font:13px/1.45 var(--sans);transition:border-color .16s,box-shadow .16s,background .16s;
}
textarea{min-height:104px;resize:vertical;padding:13px 14px;line-height:1.65}
input::placeholder,textarea::placeholder{color:#a8998c;opacity:1}
input:focus,textarea:focus,select:focus,.custom-select:focus-within{outline:0;border-color:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 14%,transparent)}
input:disabled,textarea:disabled,select:disabled{opacity:.58;cursor:not-allowed}
select{padding-right:34px;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 17px) 17px,calc(100% - 12px) 17px;background-size:5px 5px,5px 5px;background-repeat:no-repeat}
/* Compact native checkboxes share one quiet, keyboard-accessible treatment. */
input[type="checkbox"]{appearance:none;-webkit-appearance:none;width:19px;height:19px;min-width:19px;min-height:19px;margin:0;border:1px solid #c7c4d7;border-radius:5px;background:#fcfbfa;display:inline-grid;place-content:center;vertical-align:middle;cursor:pointer;transition:background-color .14s ease,border-color .14s ease,box-shadow .14s ease}
input[type="checkbox"]::before{content:"";width:7px;height:4px;border-left:1.5px solid #fff;border-bottom:1.5px solid #fff;opacity:0;transform:rotate(-45deg);transition:opacity .12s ease}
input[type="checkbox"]:hover:not(:disabled){border-color:#928eb6;background:#faf9fd}
input[type="checkbox"]:checked{border-color:#77739f;background:#77739f}
input[type="checkbox"]:checked::before{opacity:1}
input[type="checkbox"]:focus-visible{outline:0;box-shadow:0 0 0 3px color-mix(in srgb,#77739f 22%,transparent)}
input[type="checkbox"]:disabled{border-color:color-mix(in srgb,var(--line) 75%,#c7c4d7);background:color-mix(in srgb,var(--paper) 72%,var(--card));cursor:not-allowed;opacity:.58}
input[type="radio"]{accent-color:var(--green)}
input[type="range"]{accent-color:var(--green)}
.switch-control input[type="checkbox"]{appearance:none;-webkit-appearance:none;width:1px;height:1px;min-width:1px;min-height:1px;margin:0;padding:0;border:0;border-radius:0;background:transparent}
.button{min-height:42px;border-radius:6px;padding:10px 16px;font-size:12px;font-weight:650;letter-spacing:.01em;box-shadow:none;transition:transform .16s ease,background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease}
.button:hover{transform:translateY(-1px)}
.button:active{transform:translateY(0) scale(.985)}
.button-primary{background:var(--green);color:#fff;border:1px solid var(--green)}
.button-primary:hover{background:var(--green-dark);border-color:var(--green-dark);box-shadow:0 4px 12px color-mix(in srgb,var(--green) 18%,transparent)}
.button-secondary{background:var(--card);color:var(--ink);border:1px solid var(--line)}
.button-secondary:hover{border-color:var(--green);color:var(--green);background:var(--mint)}
.button-next{border:1px solid var(--line);background:var(--mint);color:var(--green)}
.text-button{border-radius:4px;font-size:12px;color:var(--green)}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--green);outline-offset:3px}
.auth-card{background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-raised)}
.auth-tabs{gap:20px}
.auth-tab{padding-bottom:12px;font-size:12px}
.auth-card form h2{font-size:25px}
.auth-card form label,#answer-form label{font-size:12px}
.privacy-note{background:var(--paper);border:1px solid var(--line);border-radius:6px}
.result{border:1px solid var(--line);border-radius:7px;background:var(--mint)}
.result[data-grade="partial"]{background:color-mix(in srgb,var(--partial) 8%,var(--card))}
.result[data-grade="incorrect"]{background:color-mix(in srgb,var(--error) 7%,var(--card))}
.result[data-grade="correct"]{background:color-mix(in srgb,var(--success) 7%,var(--card))}
.settings-list .setting-row,.audio-cues{box-shadow:none}
.cue-grid input[type="checkbox"]{flex:none}
.keep-signed-in input{flex:none}
.search-box:focus-within{border-color:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 14%,transparent)}
.empty-state{color:var(--muted)}

@media(max-width:1000px){
  .sidebar{width:208px;padding-right:13px;padding-left:13px}
  .app-main{margin-left:208px}
  .content{padding-right:clamp(20px,3vw,34px);padding-left:clamp(20px,3vw,34px)}
  .home-grid{grid-template-columns:minmax(0,1.15fr) minmax(210px,.85fr)}
}
@media(max-width:740px){
  .sidebar{width:250px;padding:22px 17px 17px}
  .sidebar.open{box-shadow:12px 0 30px #34251b24}
  .content{padding:26px 18px 36px}
  .topbar{height:60px}
  .welcome-row,.page-heading{gap:14px}
  .nav-group[open]::before{bottom:16px}
  .feature-card{min-height:310px}
}

/* Targeted Learn and Leaderboard refinement. */
.practice-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px}
.practice-actions .button{white-space:nowrap}
.mnemonic-workspace{display:grid;grid-template-columns:minmax(260px,.78fr) minmax(0,1.22fr);align-items:start;gap:18px}
.mnemonic-composer,.mnemonic-library{min-width:0}
.mnemonic-composer{padding:24px}
.mnemonic-composer-heading{padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--line)}
.mnemonic-composer-heading p,.mnemonic-library-heading p{margin:7px 0 0;color:var(--muted);font-size:12px;line-height:1.55}
.mnemonic-composer form{display:grid;gap:10px}
.mnemonic-composer label:not(.checkbox-row){display:grid;gap:7px;color:var(--muted);font-size:11px;font-weight:650}
.mnemonic-composer textarea{min-height:146px;line-height:1.6;resize:vertical}
.mnemonic-options{display:grid;grid-template-columns:minmax(0,1fr) minmax(130px,.7fr);gap:12px;align-items:end;padding:13px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.mnemonic-options>label:last-child{min-width:0}
.mnemonic-options select{width:100%;margin-top:7px}
.mnemonic-composer-actions{display:flex;align-items:center;gap:12px;min-height:38px}
.mnemonic-library{display:grid;gap:15px}
.mnemonic-library-heading{display:flex;justify-content:space-between;align-items:end;gap:18px;padding:3px 2px}
.mnemonic-library-heading h2{margin:5px 0 0;font:600 25px var(--serif)}
.mnemonic-library-heading p{text-align:right;max-width:220px}
.mnemonic-list{gap:10px}
.mnemonic-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;padding:17px 18px;border-radius:9px;background:var(--card);box-shadow:var(--shadow-soft)}
.mnemonic-item-copy{min-width:0}
.mnemonic-item-title{display:flex;flex-wrap:wrap;gap:7px;align-items:center}
.mnemonic-item-title strong{font:600 18px var(--serif);text-transform:capitalize}
.mnemonic-item-title span{padding:3px 6px;border:1px solid var(--line);border-radius:4px;color:var(--muted);font:8px var(--mono);letter-spacing:.35px;text-transform:uppercase}
.mnemonic-item-title span:first-of-type{background:var(--mint);color:var(--green);border-color:transparent}
.mnemonic-item p{margin:10px 0 7px;color:var(--ink);font-size:13px;line-height:1.65}
.mnemonic-item small{color:var(--muted);font-size:10px}
.mnemonic-item-actions{display:flex;align-self:start;flex-wrap:wrap;justify-content:flex-end;gap:9px}
.mnemonic-item-actions .text-button{min-height:0;padding:0;border:0;background:transparent;box-shadow:none;color:var(--green);font-size:11px}
.mnemonic-item-actions .mnemonic-delete{color:#9a5748}
.mnemonic-empty{padding:21px 18px;border:1px dashed var(--line);border-radius:8px;color:var(--muted);font-size:12px;line-height:1.6}
.mnemonic-empty strong{display:block;color:var(--ink);font:600 18px var(--serif)}
.mnemonic-empty p{margin:5px 0 0}
.community-mnemonics{display:grid;gap:10px;margin-top:8px;padding-top:19px;border-top:1px solid var(--line)}
.community-mnemonics .mnemonic-item{grid-template-columns:minmax(0,1fr);background:color-mix(in srgb,var(--paper) 38%,var(--card))}
.leaderboard-score-info{margin:9px 0 14px;color:var(--muted);font-size:11px}
.leaderboard-score-info summary{display:inline-flex;cursor:pointer;color:var(--green);font-weight:650}
.leaderboard-score-info p{max-width:760px;margin:8px 0 0;line-height:1.6}
.leaderboard-columns,.leaderboard-row{grid-template-columns:46px minmax(190px,1.55fr) minmax(86px,.75fr) repeat(5,minmax(78px,.64fr));column-gap:12px}
.leaderboard-columns>span:not(:nth-child(2)),.leaderboard-row>.leaderboard-balanced,.leaderboard-row>.leaderboard-metric{text-align:right}
.leaderboard-balanced{font-variant-numeric:tabular-nums}
.nav-group-links .nav-link{position:relative;height:34px;margin-left:17px;padding:0 9px 0 14px;border-radius:5px;color:var(--muted);font-size:12px;gap:9px}
.nav-group-links .nav-link>span{width:14px;font-size:14px;color:#ac998a}
.nav-group-links .nav-link:hover{background:#f8f2eb;color:var(--ink)}
.nav-group-links .nav-link.active{background:var(--mint);color:var(--green);font-weight:650}
.nav-group-links .nav-link.active>span{color:var(--green)}
.nav-group-links .nav-link::before{content:"";position:absolute;left:-1px;top:50%;width:10px;border-top:1px solid #ddcfc1;pointer-events:none}
.nav-group:has(.nav-link.active)>summary{color:var(--green)}
@media(max-width:740px){
  .mnemonic-workspace{grid-template-columns:minmax(0,1fr);gap:16px}
  .mnemonic-composer{padding:19px 16px}
  .mnemonic-options{grid-template-columns:minmax(0,1fr)}
  .mnemonic-library-heading{align-items:start;flex-direction:column;gap:4px}
  .mnemonic-library-heading p{text-align:left}
  .mnemonic-item{grid-template-columns:minmax(0,1fr);gap:11px;padding:15px}
  .mnemonic-item-actions{justify-content:flex-start}
  .practice-actions{width:100%;justify-content:stretch}
  .practice-actions .button{flex:1}
  .leaderboard-columns,.leaderboard-row{grid-template-columns:30px repeat(3,minmax(0,1fr));gap:14px 10px}
}
@media(prefers-reduced-motion:reduce){.nav-group-links{animation:none!important}}
@media(max-width:480px){
  body{font-size:13px}
  .content{padding:22px 14px 30px}
  h1{font-size:34px;letter-spacing:-.9px}
  .lede{font-size:12px}
  .feature-card{min-height:290px;padding:19px}
  .practice-card{padding:20px 16px}
  .daily-practice-card{padding:20px 15px}
  .word-wrap h2{font-size:clamp(46px,13vw,62px)}
  .metric-grid{gap:8px}
  .metric-card{padding:13px;min-height:118px}
  .panel{padding:17px}
  .welcome-row,.page-heading{align-items:flex-start}
  .settings-savebar{backdrop-filter:blur(10px)}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* Shared sizing and surface tokens for filters, forms, menus, and utility actions. */
:root{
  --space-xs:4px;--space-sm:8px;--space-md:14px;--space-lg:20px;--space-xl:30px;
  --control-height:42px;--control-height-compact:38px;--control-padding-x:12px;
  --control-radius:6px;--surface-control:var(--card);--border-control:#dfd2c5;
  --shadow-menu:0 8px 22px #47382b14;--control-gap:10px;
}

/* One quiet field treatment across Account, search, planning, feedback, and filters. */
.app-shell input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
.app-shell textarea,.app-shell select{
  min-height:var(--control-height);padding:9px var(--control-padding-x);
  border:1px solid var(--border-control);border-radius:var(--control-radius);
  background-color:var(--surface-control);font:13px/1.45 var(--sans);color:var(--ink);
  box-shadow:none;
}
.app-shell input[type="search"]{-webkit-appearance:none;appearance:none}
.app-shell input[type="search"]::-webkit-search-decoration,
.app-shell input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}
.app-shell textarea{min-height:104px;padding:12px var(--control-padding-x);line-height:1.6}
.app-shell input::placeholder,.app-shell textarea::placeholder{color:#a8998c;opacity:1}
.app-shell input:focus,.app-shell textarea:focus,.app-shell select:focus,
.app-shell .search-box:focus-within,.app-shell .custom-select.open .select-trigger{
  outline:0;border-color:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 13%,transparent)
}
.app-shell select{height:var(--control-height);padding:0 34px 0 var(--control-padding-x);border-radius:var(--control-radius);background-color:var(--surface-control);background-position:calc(100% - 16px) 17px,calc(100% - 11px) 17px}
.app-shell select option{padding:9px 12px;background:var(--card);color:var(--ink);font:13px var(--sans)}
.app-shell select option:checked{background:var(--mint);color:var(--green)}
.app-shell input:disabled,.app-shell textarea:disabled,.app-shell select:disabled{opacity:.55;cursor:not-allowed}
.app-shell select.sr-only{position:absolute!important;width:1px!important;height:1px!important;min-width:1px!important;min-height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.search-box{height:var(--control-height);min-width:190px;border:1px solid var(--border-control);border-radius:var(--control-radius);background:var(--surface-control);padding:0 var(--control-padding-x);gap:9px}
.search-box input{height:100%;min-height:0;padding:0;border:0;background:transparent;box-shadow:none;font-size:13px}
.search-box input:focus{box-shadow:none}
.planner-goal input[type="number"]{width:92px;min-height:var(--control-height-compact);display:inline-block;margin:0 5px;vertical-align:middle}
.schedule-form input,.schedule-form select{width:100%}

/* Buttons share one height/radius/type scale; quiet actions stay compact. */
.button{min-height:var(--control-height);padding:0 15px;border-radius:var(--control-radius);font:600 12px/1.2 var(--sans);letter-spacing:.005em}
.button:disabled{opacity:.48;box-shadow:none;transform:none;cursor:not-allowed}
.button-secondary{background:var(--surface-control);border:1px solid var(--border-control);color:var(--ink)}
.button-secondary:hover:not(:disabled){background:var(--mint);border-color:color-mix(in srgb,var(--green) 36%,var(--line));color:var(--green)}
.button-destructive,.destructive-button{min-height:var(--control-height);padding:0 14px;border:1px solid color-mix(in srgb,var(--error) 30%,var(--line));border-radius:var(--control-radius);background:color-mix(in srgb,var(--error) 6%,var(--card));color:var(--error);font:600 12px var(--sans)}
.button-destructive:hover,.destructive-button:hover{background:color-mix(in srgb,var(--error) 12%,var(--card));border-color:var(--error)}
.text-button{min-height:34px;padding:5px 2px;border-radius:4px;font:600 12px/1.3 var(--sans)}
.cue-grid>button,.cue-preview{min-height:34px;padding:5px 10px;border:1px solid var(--line);border-radius:5px;background:var(--card);color:var(--muted);font:600 11px var(--sans)}
.cue-grid>button:hover,.cue-preview:hover{border-color:var(--green);color:var(--green);background:var(--mint)}
.close-button{border:1px solid var(--line);border-radius:5px;background:var(--card);color:var(--muted)}
.music-control{min-height:36px;padding:0 11px;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--muted);font:600 11px var(--sans)}

/* Native filters sit on one grid and wrap as a group rather than crowding headings. */
.performance-panel>.panel-heading{display:grid;grid-template-columns:minmax(0,1fr);gap:15px;margin-bottom:18px}
.performance-filters{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:var(--control-gap);padding-top:14px;border-top:1px solid var(--line)}
.performance-filters select{width:auto;min-width:0;height:var(--control-height);min-height:var(--control-height);padding:0 34px 0 var(--control-padding-x);border-radius:var(--control-radius);font-size:12px}
.performance-page-size-picker{flex:0 0 82px;min-width:0}
#performance-sort{flex:1 1 150px}
#performance-result-filter,#performance-difficulty-filter{flex:1 1 150px}
.performance-list{gap:0;margin-top:3px}
.performance-row{grid-template-columns:minmax(110px,1.2fr) auto minmax(66px,.65fr) minmax(76px,.8fr) minmax(105px,1fr) minmax(105px,1fr);gap:12px;padding:14px 10px;border-top:1px solid color-mix(in srgb,var(--line) 82%,transparent);font-size:11px;line-height:1.45}
.performance-row>strong{font-size:15px;line-height:1.25}
.performance-row .status-tag{justify-self:start}
.status-tag{min-height:23px;padding:4px 7px;border:1px solid transparent;border-radius:4px;font:600 9px/1 var(--mono);letter-spacing:.025em}
.list-pagination{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:15px;padding-top:14px;border-top:1px solid var(--line)}
.list-pagination>span{margin-right:auto;color:var(--muted);font-size:12px}
.list-pagination .button{min-height:var(--control-height-compact);padding:0 12px}
.vocab-tools{display:flex;align-items:center;flex-wrap:wrap;gap:var(--control-gap);margin:0 0 18px;padding-top:4px}
.vocab-tools .search-box{flex:1 1 240px}
.vocab-tools select{width:auto;flex:0 1 180px;min-width:145px;height:var(--control-height);min-height:var(--control-height);padding:0 34px 0 var(--control-padding-x);font-size:12px}
.word-row{grid-template-columns:minmax(120px,.85fr) minmax(0,2fr) auto auto;gap:14px;padding:16px 17px;border-radius:7px;background:var(--card);box-shadow:none}
.word-row+.word-row{margin-top:7px}
.word-row:hover{border-color:color-mix(in srgb,var(--green) 35%,var(--line));box-shadow:var(--shadow-soft)}
.word-row-name{font-size:17px;line-height:1.25}
.word-row-pos,.word-row-def,.performance-row>span{color:var(--muted)}
.word-row-def{font-size:12px;line-height:1.55}

/* Tabs remain understated, with selected and inactive states tied to the accent. */
.auth-tabs{gap:6px;margin-bottom:22px}
.auth-tab{min-height:38px;padding:0 13px;border:0;border-bottom:2px solid transparent;border-radius:5px 5px 0 0;background:transparent;color:var(--muted);font:600 12px var(--sans)}
.auth-tab:hover{background:var(--paper);color:var(--ink)}
.auth-tab.active{border-bottom-color:var(--green);background:var(--mint);color:var(--green)}
.settings-categories{gap:3px;padding:6px;border-radius:7px}
.settings-category{min-height:37px;padding:8px 11px;border-radius:5px;font:500 12px var(--sans)}
.settings-category.active{font-weight:650}
.settings-savebar{gap:12px;padding:11px 13px;border-radius:7px;box-shadow:var(--shadow-soft)}
.settings-savebar>div{gap:var(--space-sm)}

/* Settings menus use the same measurements as native selects; their popovers stay static. */
.custom-select{min-width:188px}
.select-trigger{height:var(--control-height);min-height:var(--control-height);padding:0 var(--control-padding-x);border:1px solid var(--border-control);border-radius:var(--control-radius);background:var(--surface-control);box-shadow:none;font:13px var(--sans)}
.select-trigger>span:last-child{transform:none!important;transition:none!important}
.select-options{top:calc(100% + 3px);right:0;left:0;gap:2px;padding:5px;border:1px solid var(--line);border-radius:6px;background:var(--card);box-shadow:var(--shadow-menu);animation:none!important}
.select-options[hidden]{display:none}
.select-options [role="option"]{min-height:38px;padding:9px 11px;border-radius:4px;background:transparent;color:var(--ink);font:13px/1.4 var(--sans)}
.select-options [role="option"]:hover,.select-options [aria-selected="true"]{background:var(--mint);color:var(--green)}
.custom-select.closing .select-options{display:none;animation:none!important;pointer-events:none}

/* Consistent page rhythm and repeated list separation. */
.page-heading,.welcome-row{margin-bottom:var(--space-xl)}
.page-heading .eyebrow,.welcome-row .eyebrow{margin-bottom:var(--space-xs)}
.page-heading h1,.welcome-row h1{margin-top:var(--space-sm);margin-bottom:var(--space-sm)}
.page-heading .lede,.welcome-row .lede{margin-top:0}
.panel-heading{gap:var(--space-md);margin-bottom:var(--space-lg)}
.panel-heading h2{margin-top:var(--space-xs)}
.progress-columns{gap:var(--space-lg);margin-top:var(--space-lg)}
.progress-columns>.panel,.dashboard-sections>.panel,.settings-panel>.panel,.profile-grid>.panel{margin-bottom:var(--space-md)}
.review-item{gap:var(--space-md);padding:10px 2px}
.review-subsection{margin-top:var(--space-lg)}
.settings-list{gap:var(--space-sm)}
.settings-list .setting-row{padding:17px 18px}
.setting-row>div:first-child h2{margin:0 0 4px;font-size:14px}
.setting-row>div:first-child p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}
.inbox-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--control-gap);margin-bottom:var(--space-lg)}
.inbox-toolbar input{flex:1 1 220px}
.inbox-toolbar select{flex:0 1 190px}
.social-search{display:flex;align-items:center;gap:var(--control-gap)}
.social-search input{flex:1;min-width:0}
.leaderboard-panel>select{max-width:300px;margin-right:var(--space-sm)}
.schedule-form{gap:var(--space-md)}
.focus-actions{gap:var(--space-sm)}

@media(max-width:1000px){
  .performance-row{grid-template-columns:minmax(100px,1fr) auto minmax(65px,.7fr) minmax(75px,.8fr);gap:10px}
  .performance-row span:nth-last-child(-n+2){display:none}
  .performance-filters{gap:8px}
}
@media(max-width:740px){
  .performance-panel>.panel-heading{gap:12px}
  .performance-filters{padding-top:12px}
  .performance-filters select{flex:1 1 145px}
  .performance-page-size-picker{flex:0 0 78px}
  .vocab-tools{gap:8px}
  .vocab-tools .search-box{flex-basis:100%}
  .vocab-tools select{flex:1 1 145px;min-width:0}
  .word-row{grid-template-columns:minmax(100px,1fr) auto;gap:7px 12px;padding:14px}
  .word-row-def{grid-column:1/-1;grid-row:2}
  .word-row .status-tag{grid-column:2;grid-row:1}
  .inbox-toolbar input,.inbox-toolbar select{flex:1 1 145px}
}
@media(max-width:480px){
  .performance-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .performance-filters select,.performance-page-size-picker{width:100%;min-width:0}
  .performance-page-size-picker{grid-column:1/-1}
  .performance-row{grid-template-columns:minmax(80px,1fr) auto;gap:7px 10px;padding:12px 7px}
  .performance-row span:nth-last-child(-n+3){display:none}
  .performance-row>strong{font-size:14px}
  .list-pagination{gap:6px}
  .list-pagination .button{padding:0 9px;font-size:11px}
  .social-search{align-items:stretch}
  .social-search .button{padding:0 10px}
}

/* Product pass: a calmer learning rhythm with reusable planner, list and feedback patterns. */
.progress-view-tabs{display:flex;gap:5px;max-width:max-content;margin:-8px 0 18px;padding:4px;border:1px solid var(--line);border-radius:9px;background:var(--card)}
.progress-view-tabs button{border:0;border-radius:6px;padding:9px 14px;background:transparent;color:var(--muted);font-size:11px}
.progress-view-tabs button[aria-pressed="true"]{background:var(--mint);color:var(--green);font-weight:650}
[data-progress-group][hidden]{display:none!important}
.daily-study-panel{overflow:hidden}
.daily-study-grid{gap:10px}
.daily-study-grid>div{min-width:0;padding:12px 13px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--card) 72%,var(--paper))}
.daily-study-grid>div strong{font:600 24px var(--serif);color:var(--green)}
.daily-study-grid>div span{display:block;margin-top:4px;font-size:10px;color:var(--muted)}
.weekly-constellation{position:relative;margin:0 0 13px;padding:7px 12px 3px;border:1px solid var(--line);border-radius:9px;background:color-mix(in srgb,var(--paper) 65%,var(--card))}
.weekly-constellation svg{display:block;width:100%;height:96px;overflow:visible}
.constellation-line{fill:none;stroke:var(--green);stroke-opacity:.42;stroke-width:1.5}
.constellation-guide{stroke:var(--green);stroke-opacity:.13;stroke-width:1}
.constellation-node{fill:var(--card);stroke:var(--green);stroke-width:2}
.constellation-value,.constellation-label{fill:var(--muted);font:9px var(--mono);text-anchor:middle}
.constellation-label{font-size:8px}
.constellation-caption{position:absolute;right:12px;top:10px;color:var(--muted);font:8px var(--mono);letter-spacing:.3px}
.practice-session-meta{display:grid;grid-template-columns:auto auto;justify-items:end;align-items:center;gap:3px 9px;padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:var(--card)}
.practice-session-meta .session-clock-label{grid-column:1/-1;color:var(--muted);font:8px var(--mono);letter-spacing:1px}
.practice-session-meta time{font:600 16px var(--mono);font-variant-numeric:tabular-nums;color:var(--green)}
.practice-session-meta .practice-round{font:8px var(--mono);color:var(--muted)}
#answer{min-height:142px;padding:18px 19px;border:1px solid color-mix(in srgb,var(--green) 28%,var(--line));border-radius:9px;background:color-mix(in srgb,var(--paper) 45%,var(--card));font:17px/1.65 var(--sans);transition:border-color .18s,box-shadow .18s}
#answer:focus{border-color:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 13%,transparent);outline:0}
.mnemonic-reveal{margin:18px 0 0;padding:19px 21px;border-left:3px solid var(--gold);border-radius:0 9px 9px 0;background:color-mix(in srgb,var(--mint) 72%,var(--card));overflow-wrap:anywhere}
.mnemonic-reveal:not([hidden]){animation:mnemonic-enter .28s ease-out both}
.mnemonic-reveal h3{margin:7px 0 5px;font:600 23px var(--serif);text-transform:capitalize}
.mnemonic-reveal p{margin:0 0 14px;color:var(--muted);font-size:13px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere}
@keyframes mnemonic-enter{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
.focus-panel{max-width:740px;margin:0 auto;padding:clamp(26px,5vw,58px);text-align:center;background:linear-gradient(180deg,var(--card),color-mix(in srgb,var(--paper) 45%,var(--card)))}
.focus-context .eyebrow{justify-content:center;color:var(--green)}
.focus-context p{color:var(--muted);font-size:12px}
.focus-clock{margin:23px 0 26px;color:var(--ink);font:500 clamp(58px,11vw,98px)/1 var(--mono);letter-spacing:-.08em;font-variant-numeric:tabular-nums}
.focus-duration{display:flex;justify-content:center;align-items:center;gap:12px;margin-bottom:20px;color:var(--muted);font-size:11px}
.focus-duration select,.focus-duration input{width:auto;min-width:148px;border:1px solid var(--line);border-radius:7px;padding:10px 12px;background:var(--card);color:var(--ink)}
.focus-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:9px}
.focus-status{min-height:18px;margin:16px 0 6px}
.focus-summary{max-width:560px;margin:26px auto 0;padding:22px;border-top:1px solid var(--line);text-align:left}
.focus-summary h2{margin:6px 0 18px;font:600 27px var(--serif)}
.focus-summary-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.focus-summary-stats>div{padding:10px;border:1px solid var(--line);border-radius:7px}
.focus-summary-stats strong,.focus-summary-stats span{display:block}
.focus-summary-stats strong{font:600 20px var(--serif)}
.focus-summary-stats span{margin-top:3px;color:var(--muted);font-size:9px}
.focus-summary-actions{display:flex;flex-wrap:wrap;gap:8px}
.review-queue-summary{align-items:center}
.review-queue-columns{gap:28px}
.planner-panel{padding:clamp(16px,3vw,26px)}
.week-planner-heading,.calendar-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px}
.week-planner-heading h2,.calendar-toolbar h2{margin:6px 0 0;font:600 23px var(--serif)}
.week-controls,.calendar-controls{display:flex;align-items:center;gap:4px}
.week-controls .button,.calendar-controls .button{padding:8px 11px}
.week-plan{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.week-day{min-width:0;min-height:172px;padding:9px 7px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--card)}
.week-day.today{background:color-mix(in srgb,var(--mint) 46%,var(--card))}
.week-day-heading{display:flex;justify-content:space-between;align-items:center;width:100%;border:0;background:none;color:var(--muted);padding:2px 1px 8px;text-align:left}
.week-day-heading span{font:9px var(--mono);text-transform:uppercase;letter-spacing:.5px}
.week-day-heading strong{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;font:600 13px var(--sans);color:var(--ink)}
.week-day.today .week-day-heading strong{background:var(--green);color:#fff}
.week-day-sessions{display:grid;gap:6px}
.week-day-empty{padding:7px 3px;color:color-mix(in srgb,var(--muted) 70%,transparent);font:9px var(--mono)}
.week-session{min-width:0;padding:7px 6px;border-left:2px solid var(--green);border-radius:0 5px 5px 0;background:color-mix(in srgb,var(--mint) 67%,var(--card));overflow-wrap:anywhere}
.week-session.status-completed{border-color:#71977c;opacity:.72}
.week-session.status-missed{border-color:#ba705d;background:color-mix(in srgb,#f0e1dc 50%,var(--card))}
.week-session time,.week-session strong,.week-session small{display:block}
.week-session time{color:var(--muted);font:8px var(--mono)}
.week-session strong{margin:3px 0;font-size:10px;line-height:1.35}
.week-session small{color:var(--muted);font-size:8px}
.week-session-actions{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}
.week-session-actions .text-button{font-size:8px;padding:2px 0}
.week-flexible-list{display:grid;gap:7px;margin-top:14px}
.week-flexible-list>.eyebrow{margin-bottom:1px}
.flexible-session{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border:1px dashed var(--line);border-radius:7px}
.flexible-session strong,.flexible-session small{display:block}
.flexible-session strong{font:600 14px var(--serif)}
.flexible-session small{margin-top:3px;color:var(--muted);font-size:10px}
.flexible-session>div:last-child{display:flex;flex-wrap:wrap;gap:9px}
.flexible-session .text-button{font-size:9px}
.planner-review{display:flex;justify-content:space-between;align-items:center;gap:18px;margin:18px 0;padding:13px 15px;border-left:2px solid var(--gold);background:color-mix(in srgb,var(--paper) 65%,var(--card))}
.planner-review .eyebrow{font-size:8px}
.planner-review strong{display:block;margin:5px 0;font:600 16px var(--serif)}
.planner-review p{margin:0;color:var(--muted);font-size:10px;line-height:1.5;overflow-wrap:anywhere}
.planner-review .button{flex:none}
.schedule-form{grid-template-columns:1.35fr 1fr 1.1fr .7fr;align-items:end;border-top:1px solid var(--line);padding-top:18px}
.schedule-form label{min-width:0}
.schedule-form input,.schedule-form select,.planner-goal input{min-width:0;width:100%;margin-top:6px;padding:10px 11px;border:1px solid var(--line);border-radius:7px;background:var(--card);color:var(--ink);font-size:11px}
.schedule-form-actions{grid-column:1/-1;display:flex;gap:8px}
.planner-goal{display:flex;flex-wrap:wrap;align-items:end;gap:9px;margin-top:15px;padding-top:15px;border-top:1px solid var(--line)}
.planner-goal label{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:10px}
.planner-goal input{width:100px;margin:0}
.planner-goal .muted{align-self:center;flex:1 1 150px}
.calendar-panel{padding:clamp(16px,3vw,26px)}
.calendar-view{margin-top:14px}
.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.calendar-weekdays{border:1px solid var(--line);border-bottom:0;background:color-mix(in srgb,var(--paper) 55%,var(--card))}
.calendar-weekdays span{padding:10px;text-align:center;color:var(--muted);font:9px var(--mono);text-transform:uppercase}
.calendar-day{min-width:0;min-height:112px;padding:5px;border:1px solid var(--line);margin:0 -1px -1px 0;background:var(--card)}
.calendar-day.outside-month{background:color-mix(in srgb,var(--paper) 68%,var(--card))}
.calendar-day.today{box-shadow:inset 0 2px 0 var(--green)}
.calendar-day-number{display:grid;place-items:center;width:25px;height:25px;border:0;border-radius:50%;background:transparent;color:var(--ink);font-size:10px}
.calendar-day.today .calendar-day-number{background:var(--green);color:#fff}
.calendar-day.outside-month .calendar-day-number{color:var(--muted)}
.calendar-event{display:block;width:100%;margin:4px 0 0;padding:4px 5px;border:0;border-radius:4px;background:var(--mint);color:var(--green-dark);font-size:9px;text-align:left;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}
.calendar-event.status-missed{background:#f1e4df;color:#8f4937}
.calendar-event.status-completed{opacity:.68}
.calendar-event span{font:8px var(--mono);margin-right:3px}
.calendar-more{display:block;padding:3px;color:var(--muted);font-size:8px}
.calendar-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:15px;color:var(--muted);font-size:10px}
.my-word-row .word-row-def small{display:block;margin-top:5px;color:var(--muted);font-size:9px}
.word-memory-cue{padding:9px 0;border-top:1px solid var(--line);overflow-wrap:anywhere}
.word-memory-cue p{margin:0 0 4px;white-space:pre-wrap;line-height:1.55}
.word-memory-cue small{color:var(--muted);font:8px var(--mono);text-transform:uppercase;letter-spacing:.5px}
.mnemonic-panel{display:grid;grid-template-columns:minmax(230px,.72fr) minmax(0,1.28fr);gap:26px;padding:24px}
.mnemonic-panel form{display:grid;align-content:start;gap:10px}
.mnemonic-panel textarea{min-height:130px;resize:vertical}
.mnemonic-list{min-width:0;display:grid;align-content:start;gap:9px}
.mnemonic-list>article,.mnemonic-list>.mnemonic-item{min-width:0;overflow-wrap:anywhere}
.mnemonic-item{padding:13px 14px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--paper) 45%,var(--card))}
.mnemonic-item p{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6}
.social-group{margin-top:22px}
.social-group h3{display:flex;align-items:center;gap:8px;padding-bottom:8px;border-bottom:1px solid var(--line);font:600 16px var(--serif)}
.social-group h3 span{display:grid;place-items:center;min-width:21px;height:21px;padding:0 6px;border-radius:20px;background:var(--mint);color:var(--green);font:9px var(--mono)}
.social-friend-item{display:flex;align-items:center;gap:11px;padding:12px 4px;border-bottom:1px solid var(--line)}
.social-friend-copy{min-width:120px;flex:1}
.social-friend-copy strong,.social-friend-copy small{display:block}
.social-friend-copy small{margin-top:3px;color:var(--muted);font-size:10px}
.social-status{padding:4px 7px;border-radius:4px;background:color-mix(in srgb,var(--paper) 75%,var(--card));color:var(--muted);font:8px var(--mono)}
.social-status.accepted{background:var(--mint);color:var(--green)}
.social-friend-item .button{padding:8px 10px}
.leaderboard-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}
.leaderboard-heading h2{margin:5px 0;font:600 21px var(--serif)}
.leaderboard-table{overflow-x:auto}
.leaderboard-columns,.leaderboard-row{display:grid;grid-template-columns:70px minmax(150px,1.35fr) minmax(120px,1fr) minmax(90px,.6fr);align-items:center;gap:12px}
.leaderboard-columns{padding:10px 14px;border-bottom:1px solid var(--line);color:var(--muted);font:8px var(--mono);letter-spacing:.5px;text-transform:uppercase}
.leaderboard-columns span:last-child,.leaderboard-score{text-align:right}
.leaderboard-list{margin:0;padding:0;list-style:none;min-width:520px}
.leaderboard-row{min-height:58px;padding:8px 14px;border-bottom:1px solid var(--line);font-size:11px}
.leaderboard-row.current-user{background:color-mix(in srgb,var(--mint) 65%,var(--card))}
.leaderboard-rank{color:var(--muted);font:11px var(--mono)}
.leaderboard-learner{display:flex;align-items:center;gap:9px;min-width:0}
.leaderboard-learner strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.leaderboard-username{color:var(--muted);font:10px var(--mono)}
.leaderboard-score{font:600 17px var(--serif);font-variant-numeric:tabular-nums}
.leaderboard-empty{padding:25px 14px;border-bottom:1px solid var(--line);color:var(--muted);font-size:11px}
.inbox-toolbar{padding-bottom:14px;border-bottom:1px solid var(--line)}
.inbox-status-picker{min-width:165px}
.inbox-layout{display:grid;grid-template-columns:155px minmax(225px,.8fr) minmax(280px,1.25fr);min-height:440px;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.inbox-counts{display:grid;align-content:start;gap:3px;padding:10px;border-right:1px solid var(--line);background:color-mix(in srgb,var(--paper) 50%,var(--card))}
.inbox-count{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 8px;border:0;border-radius:5px;background:transparent;color:var(--muted);text-align:left;font-size:10px}
.inbox-count strong{font:10px var(--mono)}
.inbox-count:hover,.inbox-count.active{background:var(--mint);color:var(--green)}
.inbox-list{min-width:0;max-height:650px;overflow:auto;border-right:1px solid var(--line)}
.inbox-item{display:grid;grid-template-columns:1fr auto;gap:5px 9px;width:100%;padding:12px;border:0;border-bottom:1px solid var(--line);background:var(--card);color:var(--ink);text-align:left}
.inbox-item:hover,.inbox-item.selected{background:color-mix(in srgb,var(--mint) 48%,var(--card))}
.inbox-type{grid-column:1/-1;color:var(--green);font:8px var(--mono);text-transform:uppercase}
.inbox-sender{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}
.inbox-message-preview{grid-column:1/-1;color:var(--muted);font-size:10px;line-height:1.5;overflow-wrap:anywhere}
.inbox-meta{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:6px;color:var(--muted);font:8px var(--mono)}
.inbox-status-tag{padding:3px 5px;border-radius:3px;background:color-mix(in srgb,var(--paper) 70%,var(--card))}
.inbox-detail{min-width:0;padding:20px;overflow-wrap:anywhere}
.inbox-detail h2{font:600 20px/1.35 var(--serif);overflow-wrap:anywhere}
.inbox-detail p{white-space:pre-wrap;line-height:1.6;overflow-wrap:anywhere}
.inbox-detail label{display:grid;gap:6px;margin-top:14px;color:var(--muted);font-size:10px}
.inbox-detail .admin-private-notes{padding:12px;border:1px solid color-mix(in srgb,var(--gold) 35%,var(--line));border-radius:7px;background:color-mix(in srgb,#fbf4e8 45%,var(--card))}
.inbox-detail .admin-private-notes textarea{background:var(--card)}
.inbox-detail-status-message{min-height:16px}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
:focus-visible{outline:2px solid color-mix(in srgb,var(--green) 70%,transparent);outline-offset:2px}
@media(max-width:1050px){.week-plan{grid-template-columns:repeat(7,minmax(95px,1fr));overflow-x:auto}.week-day{min-height:150px}.schedule-form{grid-template-columns:repeat(2,minmax(0,1fr))}.inbox-layout{grid-template-columns:135px minmax(210px,.9fr) minmax(240px,1.1fr)}}
@media(max-width:740px){.progress-view-tabs{max-width:100%;width:100%;justify-content:stretch}.progress-view-tabs button{flex:1;padding:9px 6px}.daily-study-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.focus-panel{padding:28px 17px}.focus-summary-stats{grid-template-columns:repeat(2,1fr)}.week-plan{grid-template-columns:repeat(7,minmax(130px,1fr));overflow-x:auto}.week-planner{overflow:hidden}.calendar-day{min-height:82px;padding:3px}.calendar-event{height:14px;padding:0;overflow:hidden;font-size:0}.calendar-event:before{content:"";display:inline-block;width:6px;height:6px;margin:4px;border-radius:50%;background:var(--green)}.calendar-event.status-missed:before{background:#b5634f}.calendar-event span{display:none}.calendar-weekdays span{padding:8px 1px;font-size:8px}.calendar-more{font-size:7px}.mnemonic-panel{grid-template-columns:1fr}.inbox-layout{grid-template-columns:1fr;min-height:0}.inbox-counts{grid-template-columns:repeat(5,minmax(0,1fr));border-right:0;border-bottom:1px solid var(--line);padding:6px}.inbox-count{display:grid;justify-items:center;gap:3px;text-align:center;padding:8px 3px;font-size:8px}.inbox-list{max-height:320px;border-right:0;border-bottom:1px solid var(--line)}.inbox-detail{min-height:210px;padding:16px}.social-friend-item{flex-wrap:wrap}.social-friend-item .social-status{margin-left:auto}.leaderboard-table{margin-right:-5px}.planner-review{align-items:flex-start;flex-direction:column}.planner-review .button{align-self:flex-start}}
@media(max-width:480px){.practice-session-meta{padding:7px 8px}.practice-session-meta time{font-size:13px}.practice-session-meta .practice-round{font-size:7px}.weekly-constellation{padding-top:24px}.constellation-caption{left:11px;right:auto}.week-planner-heading,.calendar-toolbar{align-items:flex-start;flex-wrap:wrap}.week-controls,.calendar-controls{margin-left:auto}.week-controls .button,.calendar-controls .button{font-size:9px;padding:8px}.schedule-form{grid-template-columns:1fr}.schedule-form-actions{grid-column:auto;flex-wrap:wrap}.planner-goal{align-items:stretch}.planner-goal label{width:100%;justify-content:space-between}.planner-goal .muted{flex-basis:100%}.calendar-footer{align-items:flex-start;flex-direction:column}.calendar-event{margin-top:3px}.leaderboard-columns,.leaderboard-row{grid-template-columns:38px minmax(100px,1fr) minmax(95px,.8fr) 72px;gap:8px;padding-right:8px;padding-left:8px}.leaderboard-username{font-size:8px}.inbox-status-picker{flex:1 1 145px}.inbox-counts{grid-template-columns:repeat(5,minmax(46px,1fr));overflow-x:auto}.inbox-count{font-size:7px}}

.progress-activity-summary{margin:0 0 18px}
.vocabulary-insights{display:grid;gap:7px;margin-top:18px;padding-top:15px;border-top:1px solid var(--line)}
.vocabulary-insights h3{margin:0;font:600 13px var(--serif)}
.mastery-distribution{display:grid;gap:7px;margin:3px 0 8px}
.mastery-row{display:grid;grid-template-columns:95px minmax(35px,1fr) 24px;align-items:center;gap:8px;color:var(--muted);font-size:9px}
.mastery-row strong{text-align:right;color:var(--ink);font:10px var(--mono)}
.mastery-track{height:5px;border-radius:8px;background:var(--line);overflow:hidden}
.mastery-track i{display:block;height:100%;border-radius:inherit;background:var(--gold)}
.mastery-track .mastery-mastered{background:var(--green)}
.mastery-track .mastery-familiar{background:#85a77c}
.mastery-track .mastery-learning{background:#c8995d}
.mastery-track .mastery-review{background:#b46f5e}
.vocabulary-difficult-words .review-item{padding:6px 0}
.inbox-detail-time{display:block;margin:-7px 0 17px;color:var(--muted);font:9px var(--mono)}
.admin-private-notes small{color:var(--muted);font-size:9px}
.inbox-detail .admin-private-notes textarea{min-height:90px}
.social-howto{margin:9px 0 14px;font-size:11px;line-height:1.55}
.calendar-event.status-skipped{opacity:.48}
.week-session.status-skipped{opacity:.55}
html[data-theme="dark"] .inbox-detail .admin-private-notes{background:#302d24}
html[data-theme="dark"] .calendar-event.status-missed{background:#4c302b;color:#f1c2b3}
html[data-theme="dark"] .week-session.status-missed{background:#4c302b}
@media(max-width:480px){.mastery-row{grid-template-columns:82px minmax(30px,1fr) 20px}.daily-study-grid>div{padding:10px}.constellation-caption{font-size:7px}}
.calendar-review-marker{display:block;margin:4px 0;padding:3px 4px;border-radius:4px;background:color-mix(in srgb,#e6d2ab 45%,var(--card));color:#815e2b;font:7px var(--mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html[data-theme="dark"] .calendar-review-marker{background:#493c28;color:#e5c98f}
@media(max-width:740px){.calendar-review-marker{font-size:0;width:8px;height:8px;padding:0;border-radius:50%;background:var(--gold);margin:4px}}

/* Finishing layer: consistent fields, compact select menus, and quiet view changes. */
.app-shell input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
.app-shell textarea,
.app-shell select,
.select-trigger{
  border-radius:var(--control-radius);
  border-color:var(--border-control);
  box-shadow:none;
}
.app-shell input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):hover,
.app-shell textarea:hover,
.app-shell select:hover,
.select-trigger:hover{border-color:color-mix(in srgb,var(--green) 35%,var(--border-control))}
.app-shell input:focus-visible,
.app-shell textarea:focus-visible,
.select-trigger:focus-visible,
.select-options [role="option"]:focus-visible{
  outline:2px solid color-mix(in srgb,var(--green) 50%,transparent);
  outline-offset:2px;
}
.button{min-height:38px;display:inline-flex;align-items:center;justify-content:center}
.page{animation:none}
.page.page-entering{animation:wordwise-page-enter var(--motion-view) var(--motion-ease) both}
.settings-panel{animation:none}
.settings-panel.view-entering,#progress-view-content.view-entering{animation:wordwise-page-enter 190ms var(--motion-ease) both}
@keyframes wordwise-page-enter{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
.custom-select .select-trigger>span:last-child{transition:transform 140ms ease!important}
.custom-select.open .select-trigger>span:last-child{transform:rotate(180deg)!important}
.select-options{transform-origin:top center;will-change:opacity,transform}
.custom-select.open .select-options{animation:wordwise-select-open 150ms cubic-bezier(.2,.65,.3,1) both!important}
.custom-select.closing .select-options{display:grid;animation:wordwise-select-close 120ms ease both!important;pointer-events:none}
@keyframes wordwise-select-open{from{opacity:0;transform:translateY(-3px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes wordwise-select-close{from{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-2px) scale(.99)}}
#page-achievements .achievement-list.achievement-list-entering{animation:wordwise-list-enter var(--motion-fast) var(--motion-ease) both}
@keyframes wordwise-list-enter{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}
.vocab-tools .vocabulary-filter-select{flex:0 1 180px;min-width:150px}
.my-words-tools .vocabulary-filter-select{flex:0 1 180px;min-width:150px}
.schedule-form{grid-template-columns:minmax(0,1.45fr) minmax(145px,.9fr) minmax(145px,.85fr);gap:18px 14px;align-items:end}
.schedule-form.has-timing{grid-template-columns:minmax(0,1.35fr) minmax(135px,.82fr) minmax(190px,1.15fr) minmax(125px,.75fr)}
.schedule-form>label{display:grid;align-content:end;gap:7px;color:var(--muted);font-size:12px;font-weight:600;line-height:1.35}
.schedule-form>label>input{width:100%;min-width:0;height:var(--control-height);min-height:var(--control-height);margin:0;padding:0 var(--control-padding-x);font-size:13px}
.schedule-form .custom-select{width:100%;min-width:0;margin:0}
.planner-goal{align-items:center;gap:10px 12px}
.planner-goal label{gap:8px;font-size:12px;font-weight:600}
.planner-goal input[type="number"]{width:96px;height:var(--control-height-compact);min-height:var(--control-height-compact);padding:0 10px;font-size:13px}
.schedule-form-actions{align-items:center;gap:8px}
.schedule-form-actions .button{min-width:112px}
.focus-duration .custom-select{min-width:148px}
.vocab-tools .custom-select,.my-words-tools .custom-select{min-width:0}
.weekly-constellation{width:min(100%,760px);margin:0 auto 16px;padding:10px 14px 5px}
.weekly-constellation svg{width:min(100%,660px);height:clamp(126px,18vw,176px);margin:0 auto;overflow:visible}
.leaderboard-method{max-width:720px;margin:7px 0 12px;line-height:1.55}
.leaderboard-table{border:1px solid var(--line);border-radius:8px;overscroll-behavior-x:contain}
.leaderboard-columns,.leaderboard-row{grid-template-columns:44px minmax(175px,1.45fr) repeat(6,minmax(76px,.62fr));gap:10px}
.leaderboard-columns{position:sticky;left:0;padding:11px 13px;background:color-mix(in srgb,var(--paper) 75%,var(--card));font-size:8px;letter-spacing:.45px}
.leaderboard-list{min-width:850px}
.leaderboard-row{min-height:62px;padding:9px 13px;font-variant-numeric:tabular-nums}
.leaderboard-rank{font-size:10px}
.leaderboard-learner{gap:9px}
.leaderboard-avatar{width:34px;height:34px;display:grid;place-items:center;flex:none;overflow:hidden;border:1px solid var(--line);border-radius:50%;background:var(--mint)}
.leaderboard-avatar .avatar-art{display:block;width:100%;height:100%}
.leaderboard-person{display:grid;gap:3px;min-width:0}
.leaderboard-person strong{font-size:12px}
.leaderboard-person small{overflow:hidden;color:var(--muted);font:9px var(--mono);text-overflow:ellipsis;white-space:nowrap}
.leaderboard-balanced{text-align:center;color:var(--green);font:600 16px var(--serif)}
.leaderboard-balanced small{margin-left:2px;color:var(--muted);font:9px var(--sans)}
.leaderboard-metric{text-align:center;color:var(--ink);font:11px var(--mono)}
.leaderboard-unranked{color:var(--muted)}
.leaderboard-row.current-user{box-shadow:inset 2px 0 0 var(--green);background:color-mix(in srgb,var(--mint) 60%,var(--card))}
.leaderboard-row.current-user .leaderboard-person strong{color:var(--green)}
.leaderboard-empty{min-width:850px}
@media(max-width:1050px){.schedule-form,.schedule-form.has-timing{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:740px){
  .vocab-tools .custom-select,.my-words-tools .custom-select{flex:1 1 145px;width:auto}
  .schedule-form,.schedule-form.has-timing{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 12px}
  .schedule-form-actions{grid-column:1/-1}
  .weekly-constellation{width:100%;padding-right:9px;padding-left:9px}
  .weekly-constellation svg{height:clamp(126px,27vw,160px)}
  .leaderboard-table{margin:0;}
}
@media(max-width:480px){
  .schedule-form,.schedule-form.has-timing{grid-template-columns:minmax(0,1fr)}
  .schedule-form-actions{grid-column:auto;flex-wrap:wrap}
  .schedule-form-actions .button{flex:1 1 132px}
  .planner-goal label{justify-content:flex-start}
  .planner-goal input[type="number"]{margin-left:auto}
  .weekly-constellation svg{height:132px}
  .constellation-caption{font-size:7px}
}
@media(prefers-reduced-motion:reduce){
  .page.page-entering,.settings-panel.view-entering,#progress-view-content.view-entering,
  .custom-select.open .select-options,.custom-select.closing .select-options,#page-achievements .achievement-list.achievement-list-entering{animation:none!important}
  .custom-select .select-trigger>span:last-child{transition:none!important}
}

/* Continuation: adaptive learning, tables and shared control geometry. */
:root{--border-control:color-mix(in srgb,var(--line) 82%,var(--ink) 18%);--motion-fast:140ms;--motion-view:210ms;--motion-ease:cubic-bezier(.2,.65,.3,1)}
.practice-layout{max-width:780px;margin-inline:auto;grid-template-columns:minmax(0,1fr)}
.practice-card .word-wrap{text-align:center}
.practice-aside{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:stretch}
.practice-aside>div{padding:18px 22px}
.practice-aside .aside-note>span{display:none}
.practice-aside h3{margin:0 0 8px;font-size:18px}
.practice-aside .aside-progress .eyebrow{margin-bottom:8px}
.practice-card .form-bottom{gap:12px}
.enhanced-select{min-width:0;width:100%}
.select-trigger{min-width:0;width:100%;gap:12px}
.select-trigger>[data-select-value]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.select-options{max-height:min(280px,45vh);overflow-y:auto;overscroll-behavior:contain}
.custom-select.open{z-index:30}
.select-options [role="option"]:disabled{opacity:.45;cursor:not-allowed}
.performance-filters{flex-wrap:wrap;gap:8px}
.performance-filters .enhanced-select{flex:1 1 128px;max-width:180px}
.performance-filters .performance-page-size-picker{width:68px;flex:none}
.mnemonic-panel label,.mnemonic-panel form{min-width:0}
.detail-card{max-height:calc(100dvh - 40px);overflow:auto}
.detail-card>p{color:var(--muted)}
.detail-card>.button{margin-top:15px;margin-right:6px}
.leaderboard-columns{position:static;min-width:850px}
.leaderboard-empty{min-width:0}
.inbox-layout{overflow:visible}
.performance-row>span{display:block!important;overflow-wrap:anywhere}
@media(max-width:1050px){
 .performance-row{grid-template-columns:minmax(90px,1fr) auto 1fr}
 .performance-row>span:nth-child(4){grid-column:1}
 .week-plan{grid-template-columns:repeat(7,minmax(0,1fr));overflow:visible}
 .week-session{padding:8px 5px}
 .week-session-actions{display:grid;gap:5px}
 .week-session-actions .text-button{text-align:left;font-size:10px}
}
@media(max-width:740px){
 .app-main{margin-left:0}
 .practice-layout{width:100%}
 .practice-aside{grid-template-columns:minmax(0,1fr)}
 .practice-aside>div{padding:16px 18px}
 .week-plan{grid-template-columns:minmax(0,1fr);border-left:0}
 .week-day{display:grid;grid-template-columns:62px minmax(0,1fr);min-height:76px;border-right:0;padding:10px 0}
 .week-day-heading{display:grid;align-content:start;gap:3px;padding:8px}
 .week-day-sessions{padding:0 6px}
 .week-day-empty{display:block;padding:15px 5px}
 .week-session{padding:12px}
 .week-session-actions{display:flex;flex-wrap:wrap;gap:8px 12px}
 .week-session-actions .text-button{font-size:11px}
 .performance-filters .enhanced-select{max-width:none}
 .performance-row{grid-template-columns:minmax(0,1fr) auto;gap:8px 12px}
 .performance-row>span:nth-child(4){grid-column:auto}
 .leaderboard-columns{display:none}
 .leaderboard-list{min-width:0}
 .leaderboard-row{grid-template-columns:30px repeat(3,minmax(0,1fr));gap:14px 10px;padding:18px 12px}
 .leaderboard-learner{grid-column:2/4}
 .leaderboard-balanced{grid-column:4;text-align:right}
 .leaderboard-metric{display:grid;gap:5px;text-align:left;font-size:11px}
 .leaderboard-metric:nth-child(4){grid-column:2}
 .leaderboard-metric:nth-child(7){grid-column:2}
 .leaderboard-metric::before,.leaderboard-balanced::before{content:attr(data-label);display:block;font:9px var(--sans);color:var(--muted);margin-bottom:3px}
 .calendar-cell{min-width:0;padding:3px;min-height:98px}
 .calendar-event{font-size:9px;line-height:1.3;width:auto;height:auto;border-radius:3px;padding:4px 2px;overflow-wrap:anywhere;white-space:normal}
 .calendar-event time{display:block;font-size:8px}
 .calendar-review-marker{font-size:8px;width:auto;height:auto;border-radius:3px;padding:3px;margin:3px 0;background:var(--mint);color:var(--green)}
}
@media(max-width:480px){
 .practice-card .form-bottom{align-items:stretch;flex-direction:column}
 .practice-card .form-bottom .keyboard-hint{align-self:center}
 .practice-card .form-bottom .button{width:100%}
 .detail-card{padding:22px 18px}
 .performance-filters{width:100%}
}
/* Queue and planner structure: explicit layouts also cover first-use empty states. */
.schedule-form{display:grid}
.review-queue-summary{display:flex;justify-content:space-between;align-items:center;gap:24px;padding-bottom:24px;border-bottom:1px solid var(--line)}
.review-queue-summary h2{font:600 27px var(--serif);margin:10px 0}
.review-queue-summary p{margin:0;line-height:1.6}
.review-queue-summary>.button{flex:none}
.review-queue-columns{display:grid;grid-template-columns:1.2fr 1fr;gap:30px;padding-top:22px}
.review-queue-columns h3{font:600 18px var(--serif);margin:0 0 12px}
.review-later{border-left:1px solid var(--line);padding-left:30px}
.review-queue-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}
.review-queue-row>div{display:grid;gap:5px}
.review-queue-row strong{font:600 18px var(--serif);text-transform:capitalize}
.review-queue-row small,.review-queue-row>span{font-size:11px;color:var(--muted)}
.review-queue-row>span{flex:none}
.button-quiet{background:transparent;color:var(--muted);border:1px solid var(--line)}
.button-quiet:hover{background:var(--mint);color:var(--green)}
@media(max-width:740px){
 .review-queue-summary{align-items:flex-start;flex-direction:column;gap:18px}
 .review-queue-columns{grid-template-columns:minmax(0,1fr);gap:24px}
 .review-later{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:22px}
}
.planner-goal label{white-space:nowrap;width:auto}
.planner-goal input[type="number"]{flex:0 0 90px;max-width:90px}
.week-session-actions{gap:6px 10px}
.week-session-actions .text-button{font-size:10px;min-height:26px;line-height:1.4;text-align:left}
@media(max-width:480px){.planner-goal label{width:100%;white-space:normal}.planner-goal input[type="number"]{margin-left:auto}}
.progress-view-content{display:grid;gap:20px}
.daily-study-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}
@media(max-width:1100px){.daily-study-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:740px){.daily-study-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.progress-view-content{gap:16px}}

/* On narrow calendars, concise markers keep the seven-column month readable. */
@media(max-width:740px){
  .calendar-day{min-height:82px;padding:3px}
  .calendar-event{display:block;width:14px;height:14px;margin:4px auto 0;padding:0;border-radius:50%;font-size:0;overflow:hidden}
  .calendar-event::before{content:"";display:block;width:6px;height:6px;margin:4px;border-radius:50%;background:var(--green)}
  .calendar-event.status-missed::before{background:#b5634f}
  .calendar-event span{display:none}
  .calendar-review-marker{display:block;width:8px;height:8px;margin:4px auto;padding:0;border-radius:50%;font-size:0;background:var(--gold)}
}
.progress-activity-summary{grid-template-columns:repeat(4,minmax(0,1fr))}
.performance-filters .performance-page-size-picker{min-width:68px;max-width:68px}
.word-row{text-align:left}
.word-row>span:first-child{display:flex;flex-wrap:wrap;align-items:baseline;gap:5px 9px}
.detail-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
@media(max-width:1000px){.progress-activity-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Focused profile, library, and ranking refinement. */
#page-profile .page-heading{margin-bottom:22px}
.profile-grid{grid-template-columns:minmax(0,1fr) minmax(330px,.8fr);align-items:start;gap:18px}
.profile-card{display:grid;gap:20px;padding:25px 27px;text-align:left}
.profile-identity{display:grid;grid-template-columns:64px minmax(0,1fr) minmax(190px,250px);align-items:center;gap:17px;padding-bottom:19px;border-bottom:1px solid var(--line)}
.profile-avatar{width:64px;height:64px;margin:0;font-size:27px}
.profile-card .eyebrow{justify-content:flex-start}
.profile-identity-copy h2{margin:6px 0 2px;font-size:27px}
.profile-identity-copy .muted{margin:0;font-size:11px}
.profile-joined{margin:7px 0 0;color:var(--muted);font-size:10px}
.profile-joined strong{color:var(--ink);font-weight:600}
.profile-level{max-width:none;margin:0;padding:12px 14px;border-left:2px solid color-mix(in srgb,var(--gold) 70%,var(--line));background:color-mix(in srgb,var(--paper) 60%,var(--card))}
.profile-level>strong{font-size:23px}
.profile-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:0;padding:0;border:1px solid var(--line);border-width:1px 0}
.profile-stats div{min-width:0;padding:13px 14px;border-right:1px solid var(--line)}
.profile-stats div:last-child{border-right:0}
.profile-stats strong{font-size:22px}
.profile-stats span{line-height:1.35}
.profile-controls{display:grid;grid-template-columns:minmax(230px,.8fr) minmax(0,1.2fr);gap:24px;align-items:start}
.avatar-picker{display:grid;gap:10px;color:var(--muted);font-size:10px}
.avatar-picker .avatar-grid{max-width:none;margin:0;grid-template-columns:repeat(3,minmax(0,1fr))}
.avatar-grid .avatar-choice{min-height:66px}
.profile-identity-controls{display:grid;gap:15px}
.profile-edit-form{display:grid;gap:7px;margin:0}
.profile-edit-form>label{color:var(--muted);font-size:10px;font-weight:650}
.profile-edit-form>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
.profile-edit-form input{min-width:0;height:var(--control-height);padding:0 var(--control-padding-x);border:1px solid var(--line);border-radius:var(--control-radius);background:var(--surface-control,var(--card));color:var(--ink)}
.profile-edit-form .button{min-height:var(--control-height);white-space:nowrap}
.profile-edit-form .feedback-status{margin:0}
.profile-privacy{padding-top:14px;border-top:1px solid var(--line)}
.public-profile-toggle{display:flex;align-items:flex-start;gap:8px;color:var(--ink);font-size:11px;line-height:1.45}
.public-profile-toggle input{margin:2px 0 0;accent-color:var(--green)}
.profile-privacy .muted{margin:6px 0 0;padding-left:22px}
.profile-actions{display:flex;align-items:center;gap:14px}
.profile-actions .text-button{margin-left:auto}
/* A signed-in account does not need a blank authentication column. */
.profile-grid:has(#auth-forms[hidden]){grid-template-columns:minmax(0,1fr);max-width:960px}
.auth-card:has(#auth-forms[hidden]){display:none}

#page-mnemonics .page-heading{margin-bottom:21px}
#page-mnemonics .page-heading h1{max-width:700px;font-size:clamp(31px,3.4vw,44px);overflow-wrap:anywhere}
#page-mnemonics .page-heading .lede{max-width:560px}
.mnemonic-workspace{grid-template-columns:minmax(290px,.74fr) minmax(0,1.26fr);gap:26px}
.mnemonic-composer{padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.mnemonic-composer-heading{margin:0;padding:2px 2px 15px;border-bottom:1px solid var(--line)}
.mnemonic-composer-heading .eyebrow{color:var(--green)}
.mnemonic-composer-heading p{max-width:300px;font-size:12px}
.mnemonic-composer form{gap:9px;padding:18px 19px 19px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--card) 86%,var(--paper))}
.mnemonic-composer label:not(.checkbox-row){font-size:10px;letter-spacing:.02em}
.mnemonic-composer #mnemonic-word{height:44px;border-color:color-mix(in srgb,var(--gold) 35%,var(--line));background:var(--card);font:600 19px var(--serif);text-transform:capitalize}
.mnemonic-composer textarea{min-height:158px;padding:15px 16px;border-color:color-mix(in srgb,var(--green) 22%,var(--line));background:var(--card);font-size:13px}
.mnemonic-options{gap:16px;padding:11px 0;border-color:color-mix(in srgb,var(--line) 88%,var(--ink) 12%)}
.mnemonic-options .checkbox-row{color:var(--muted);font-size:10px}
.mnemonic-options .checkbox-row input{accent-color:var(--green)}
.mnemonic-options>label:last-child{font-size:9px;font-weight:600;color:var(--muted)}
.mnemonic-options select{height:34px;margin-top:4px;padding:0 27px 0 9px;border-color:var(--line);border-radius:5px;background:var(--card);font-size:10px}
.mnemonic-composer-actions{padding-top:2px}
.mnemonic-composer-actions .button{min-height:38px}
.mnemonic-library{gap:14px}
.mnemonic-library-heading{padding:0;border-bottom:1px solid var(--line);padding-bottom:12px}
.mnemonic-library-heading h2{font-size:23px}
.mnemonic-item{padding:15px 17px;border-radius:7px;box-shadow:none}
.mnemonic-item:hover{border-color:color-mix(in srgb,var(--green) 30%,var(--line))}

.leaderboard-table{--leaderboard-columns:38px minmax(195px,1.7fr) minmax(88px,.72fr) repeat(5,minmax(74px,.58fr));border-radius:7px}
.leaderboard-columns,.leaderboard-row{grid-template-columns:var(--leaderboard-columns);column-gap:12px}
.leaderboard-columns{padding:10px 14px}
.leaderboard-row{min-height:54px;padding:8px 14px}
.leaderboard-columns>span:not(:nth-child(2)),.leaderboard-row>.leaderboard-balanced,.leaderboard-row>.leaderboard-metric{text-align:right}
.leaderboard-learner{min-width:0}
.leaderboard-person{min-width:0}
.leaderboard-person strong,.leaderboard-person small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.leaderboard-balanced{font-size:17px}
.leaderboard-metric{font-variant-numeric:tabular-nums}

.my-words-tools{align-items:center;gap:10px}
.my-words-tools .search-box{height:var(--control-height);padding:0 13px;border:1px solid var(--border-control);border-radius:var(--control-radius);box-shadow:none}
.my-words-tools .search-box:focus-within{border-color:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 13%,transparent)}
.my-words-tools .search-box input,.my-words-tools .search-box input:focus{height:100%;min-height:0;padding:0!important;border:0!important;outline:0!important;background:transparent!important;box-shadow:none!important}
.my-words-tools .custom-select{height:var(--control-height)}
.my-words-tools .select-trigger{height:100%;min-height:0}
.my-words-tools .vocabulary-filter-select{flex:0 1 176px}
#page-my-words .word-row{grid-template-columns:minmax(135px,.85fr) minmax(0,2.1fr) auto auto;gap:15px;padding:14px 17px}
#page-my-words .word-row-def{align-self:center}
#page-my-words .difficulty-tag,#page-my-words .status-tag{align-self:center}

@media(max-width:740px){
  .profile-grid,.profile-grid:has(#auth-forms[hidden]){grid-template-columns:minmax(0,1fr)}
  .profile-card{padding:20px 17px;gap:17px}
  .profile-identity{grid-template-columns:56px minmax(0,1fr);gap:12px}
  .profile-avatar{width:56px;height:56px}
  .profile-level{grid-column:1/-1;padding:10px 12px;border-left:0;border-top:2px solid color-mix(in srgb,var(--gold) 70%,var(--line))}
  .profile-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .profile-stats div:nth-child(2){border-right:0}
  .profile-stats div:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .profile-controls{grid-template-columns:minmax(0,1fr);gap:18px}
  .avatar-picker .avatar-grid{max-width:320px}
  .mnemonic-workspace{grid-template-columns:minmax(0,1fr);gap:18px}
  .mnemonic-composer form{padding:16px}
  .mnemonic-library-heading{align-items:flex-start}
  .leaderboard-table{--leaderboard-columns:30px repeat(3,minmax(0,1fr))}
  .leaderboard-columns{display:none}
  .leaderboard-list{min-width:0}
  .leaderboard-row{grid-template-columns:var(--leaderboard-columns);gap:12px 10px;padding:16px 12px}
  .leaderboard-learner{grid-column:2/4}
  .leaderboard-balanced{grid-column:4;text-align:right}
  .leaderboard-metric{text-align:left!important}
  .my-words-tools .search-box{flex-basis:100%}
  #page-my-words .word-row{grid-template-columns:minmax(100px,1fr) auto;gap:8px 12px;padding:14px}
}
@media(max-width:480px){
  .profile-edit-form>div{grid-template-columns:minmax(0,1fr)}
  .profile-edit-form .button{width:100%}
  .profile-actions{align-items:flex-start;flex-direction:column;gap:4px}
  .profile-actions .text-button{margin-left:0}
  #page-mnemonics .page-heading h1{font-size:clamp(30px,9vw,38px)}
  .mnemonic-composer textarea{min-height:138px}
}

/* Checkbox rows retain an ample label target while the visual control stays precise. */
.checkbox-row,.keep-session,.public-profile-toggle,.cue-grid label{display:flex;gap:8px}
.checkbox-row,.keep-session,.cue-grid label{align-items:center}
.checkbox-row input[type="checkbox"],.keep-session input[type="checkbox"],.cue-grid input[type="checkbox"]{flex:none}
.public-profile-toggle input[type="checkbox"]{flex:none;margin-top:1px}
label:has(input[type="checkbox"]:disabled){cursor:not-allowed;opacity:.68}
@media(prefers-reduced-motion:reduce){input[type="checkbox"],input[type="checkbox"]::before{transition:none}}

/* Checkpoint C: compact task and rank surfaces share the existing editorial Progress language. */
.task-heading{align-items:end}.task-summary{display:grid;justify-items:end;min-width:8rem;padding:.65rem .8rem;border-left:2px solid color-mix(in srgb,var(--gold) 55%,var(--line));border-radius:0 .35rem .35rem 0;background:color-mix(in srgb,var(--card) 84%,var(--mint));color:var(--muted);font-size:.68rem}.task-summary strong{font:600 clamp(1.6rem,3vw,2.25rem) var(--serif);color:var(--green);line-height:1}.task-counters{display:flex;flex-wrap:wrap;gap:.45rem .75rem;margin:0 0 .9rem;color:var(--muted);font-size:.66rem}.task-counters span{padding:.35rem .5rem;border:1px solid var(--line);border-radius:.3rem;background:var(--card)}.task-counters b{color:var(--ink);font:600 .85rem var(--serif)}.task-categories{display:flex;overflow-x:auto;border-bottom:1px solid var(--line);margin:0;padding:0}.task-categories button{position:relative;flex:none;min-height:2.35rem;padding:.55rem .8rem;border:0;background:transparent;color:var(--muted);font:650 .66rem var(--sans);white-space:nowrap}.task-categories button::after{content:"";position:absolute;right:.8rem;bottom:-1px;left:.8rem;height:2px;background:transparent}.task-categories button:hover{background:color-mix(in srgb,var(--mint) 68%,transparent);color:var(--ink)}.task-categories button[aria-pressed="true"]{color:var(--green)}.task-categories button[aria-pressed="true"]::after{background:var(--gold)}.task-categories button:focus-visible,.task-claim:focus-visible{outline:2px solid color-mix(in srgb,var(--green) 60%,transparent);outline-offset:2px}.task-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:.75rem 0 .65rem}.task-toolbar p{margin:0;color:var(--muted);font-size:.7rem}.task-list{display:grid;gap:.6rem}.task-row{display:grid;grid-template-columns:auto minmax(12rem,1fr) minmax(9rem,13rem) auto;align-items:center;gap:clamp(.75rem,1.8vw,1.25rem);padding:clamp(.85rem,1.8vw,1.05rem);border:1px solid var(--line);border-radius:.45rem;background:var(--card);box-shadow:var(--shadow-soft)}.task-row.ready{border-color:color-mix(in srgb,#6279c8 48%,var(--line));background:color-mix(in srgb,var(--card) 95%,#e7e8fa)}.task-row.claimed{border-color:color-mix(in srgb,var(--green) 36%,var(--line));background:color-mix(in srgb,var(--card) 95%,var(--mint));transition:border-color .2s ease,background-color .2s ease}.task-row.expired{opacity:.72}.task-mark{display:grid;place-items:center;width:2rem;height:2rem;border:1px solid var(--line);border-radius:.35rem;color:var(--muted);font-size:.82rem}.task-row.ready .task-mark{border-color:#6279c8;background:#eef0ff;color:#5369b5}.task-row.claimed .task-mark{border-color:color-mix(in srgb,var(--green) 55%,var(--line));background:var(--mint);color:var(--green)}.task-copy{min-width:0}.task-state{display:block;color:var(--muted);font:600 .56rem var(--mono);letter-spacing:.055rem}.task-row.ready .task-state{color:#5369b5}.task-row.claimed .task-state{color:var(--green)}.task-copy h2{margin:.08rem 0;font:600 1.05rem var(--serif)}.task-copy p{margin:.18rem 0;color:var(--muted);font-size:.68rem}.task-rewards{display:flex;align-items:center;flex-wrap:wrap;gap:.25rem .45rem;margin-top:.48rem}.task-rewards>span{color:var(--muted);font:.52rem var(--mono);letter-spacing:.07rem}.task-rewards b{color:var(--green);font-size:.59rem}.task-progress>div{display:flex;justify-content:space-between;gap:.5rem;margin-bottom:.38rem;color:var(--muted);font:.59rem var(--mono)}.task-progress strong{color:var(--ink)}.task-progress>i,.rank-track{display:block;height:.38rem;overflow:hidden;border-radius:99px;background:var(--line)}.task-progress>i>b,.rank-track>i{display:block;height:100%;border-radius:inherit;background:var(--green);transition:width .25s ease}.task-row.ready .task-progress>i>b{background:#6279c8}.task-row.claimed .task-progress>i>b{background:var(--green)}.task-action{min-width:5.5rem;text-align:right}.task-action>span{color:var(--muted);font:600 .61rem var(--sans)}.task-row.claimed .task-action>span{color:var(--green)}.task-claim{margin:0;min-width:5.25rem}.task-row.claim-settled{animation:task-claim-settle .38s var(--motion-ease, ease) both}.task-row.claim-settled .task-rewards b{animation:task-reward-emphasis .55s var(--motion-ease, ease) both}.rank-panels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.rank-panel{padding:clamp(1rem,2vw,1.35rem)}.rank-panel-heading{display:flex;align-items:start;justify-content:space-between;gap:.75rem}.rank-panel-heading h2{margin:.22rem 0;font:600 clamp(1.4rem,2.4vw,1.85rem) var(--serif)}.rank-panel-heading p{margin:0;color:var(--muted);font-size:.68rem;line-height:1.5}.rank-panel-heading>strong{color:var(--green);font:600 clamp(1.55rem,2.8vw,2.1rem) var(--serif);white-space:nowrap}.rank-panel-heading>strong small{font:600 .58rem var(--sans);color:var(--muted)}.rank-track{height:.48rem;margin:1.2rem 0 .5rem}.rank-panel.seasonal .rank-track>i{background:var(--gold)}.rank-progress-copy{display:flex;justify-content:space-between;gap:.75rem;color:var(--muted);font-size:.62rem}.rank-progress-copy b{color:var(--ink);font:600 .58rem var(--mono)}.rank-ladder{display:grid;gap:.4rem;margin:1.1rem 0 0;padding:0;list-style:none}.rank-ladder li{display:grid;grid-template-columns:.75rem 1fr auto;align-items:center;gap:.45rem;color:var(--muted);font-size:.67rem}.rank-ladder i{width:.42rem;height:.42rem;border:1px solid var(--line);border-radius:50%}.rank-ladder b{font:600 .56rem var(--mono)}.rank-ladder .passed,.rank-ladder .current{color:var(--green)}.rank-ladder .passed i{background:var(--green);border-color:var(--green)}.rank-panel.seasonal .rank-ladder .passed i{background:var(--gold);border-color:var(--gold)}.rank-ladder .current{font-weight:700}.rank-ladder .current i{border-color:var(--green);box-shadow:0 0 0 .14rem color-mix(in srgb,var(--green) 15%,transparent)}.rank-panel.seasonal .rank-ladder .current i{border-color:var(--gold);box-shadow:0 0 0 .14rem color-mix(in srgb,var(--gold) 18%,transparent)}.rank-up-note{margin:-.25rem 0 1rem;padding:.65rem .8rem;border:1px solid color-mix(in srgb,var(--green) 40%,var(--line));border-radius:.4rem;background:var(--mint);color:var(--green);font:600 .7rem var(--sans);animation:rank-up-reveal .42s var(--motion-ease, ease) both}.gamification-toast{position:fixed;right:1rem;bottom:1rem;z-index:30;transform:translateY(.5rem);padding:.65rem .8rem;border:1px solid color-mix(in srgb,var(--green) 42%,var(--line));border-radius:.4rem;background:var(--card);box-shadow:var(--shadow-soft);color:var(--green);font:600 .7rem var(--sans);opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease}.gamification-toast.show{opacity:1;transform:translateY(0)}@keyframes task-claim-settle{from{border-color:#6279c8;background:#eef0ff}to{border-color:color-mix(in srgb,var(--green) 36%,var(--line));background:color-mix(in srgb,var(--card) 95%,var(--mint))}}@keyframes task-reward-emphasis{0%{color:#5369b5}100%{color:var(--green)}}@keyframes rank-up-reveal{from{opacity:0;transform:translateY(.3rem)}to{opacity:1;transform:translateY(0)}}
@media(max-width:740px){.task-heading{align-items:start}.task-summary{justify-items:start}.task-row{grid-template-columns:auto minmax(0,1fr);gap:.7rem}.task-progress,.task-action{grid-column:2;text-align:left}.rank-panels{grid-template-columns:1fr}.task-toolbar{align-items:flex-start;flex-direction:column}.task-toolbar .button{width:100%}}
@media(max-width:480px){.task-progress,.task-action{grid-column:1/-1}.task-action .task-claim{width:100%}.task-counters{gap:.35rem}.task-counters span{font-size:.61rem}.rank-panel-heading{display:block}.rank-panel-heading>strong{display:block;margin-top:.65rem}}
@media(prefers-reduced-motion:reduce){.task-row.claimed,.task-progress>i>b,.rank-track>i,.gamification-toast{transition:none}.task-row.claim-settled,.task-row.claim-settled .task-rewards b,.rank-up-note{animation:none}}

/* Hold product chrome until the saved auth session has been restored. */
html[data-auth-pending="true"] .app-shell{visibility:hidden}
.auth-bootstrap{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;gap:.65rem;background:var(--paper);color:var(--muted);font:600 .78rem var(--sans)}
.auth-bootstrap .brand-mark{flex:none}
html:not([data-auth-pending="true"]) .auth-bootstrap{display:none}

/* Achievement foundation: compact, readable states without claim interactions. */
.achievement-summary{display:grid;justify-items:end;align-self:end;color:var(--muted);font-size:.68rem}.achievement-summary strong{font:600 clamp(1.6rem,3vw,2.25rem) var(--serif);color:var(--green)}
.achievement-categories{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 1rem;padding-bottom:.65rem;border-bottom:1px solid var(--line)}.achievement-categories button{min-height:2rem;padding:.4rem .7rem;border:1px solid transparent;border-radius:.35rem;background:transparent;color:var(--muted);font-size:.66rem;transition:background-color .16s,border-color .16s,color .16s}.achievement-categories button:hover{color:var(--ink);background:var(--mint)}.achievement-categories button[aria-pressed="true"]{border-color:color-mix(in srgb,var(--green) 28%,var(--line));background:var(--mint);color:var(--green);font-weight:700}.achievement-categories button:focus-visible{outline:2px solid color-mix(in srgb,var(--green) 60%,transparent);outline-offset:2px}
.achievement-list{display:grid;gap:.55rem}.achievement-row{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(9rem,15rem);align-items:center;gap:1rem;padding:clamp(.85rem,2vw,1.1rem);border:1px solid var(--line);border-radius:.55rem;background:var(--card);box-shadow:var(--shadow-soft)}.achievement-row.eligible{border-color:color-mix(in srgb,var(--gold) 42%,var(--line));background:color-mix(in srgb,var(--card) 88%,#f4e7d8)}.achievement-mark{display:grid;place-items:center;width:2.15rem;height:2.15rem;border:1px solid var(--line);border-radius:50%;color:var(--muted);font-size:.9rem}.achievement-row.eligible .achievement-mark{border-color:color-mix(in srgb,var(--gold) 55%,var(--line));background:#f4e7d8;color:var(--gold)}
.achievement-copy{min-width:0}.achievement-copy>div{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap}.achievement-copy h2{margin:0;font:600 1rem var(--serif)}.achievement-copy p{margin:.25rem 0;color:var(--muted);font-size:.68rem}.achievement-state{color:var(--muted);font:600 .52rem var(--mono);letter-spacing:.055rem}.achievement-row.eligible .achievement-state{color:var(--gold)}.achievement-reward{display:inline-block;margin-top:.2rem;color:var(--green);font-size:.6rem;font-weight:650}.achievement-progress>div{display:flex;justify-content:space-between;gap:.5rem;margin-bottom:.35rem;color:var(--muted);font:.58rem var(--mono)}.achievement-progress strong{color:var(--ink)}.achievement-track{display:block;height:.32rem;overflow:hidden;border-radius:99px;background:var(--line)}.achievement-track i{display:block;height:100%;border-radius:inherit;background:var(--green);transition:width .25s ease}.achievement-row.eligible .achievement-track i{background:var(--gold)}
.profile-title{margin:2px 0 5px;color:var(--gold);font:italic 600 12px var(--serif);letter-spacing:.1px}.leaderboard-person small{max-width:100%;color:var(--muted)}
@media(max-width:740px){.achievement-row{grid-template-columns:auto minmax(0,1fr)}.achievement-progress{grid-column:2}}
@media(max-width:480px){.achievement-summary{justify-items:start}.achievement-row{gap:.75rem}.achievement-progress{grid-column:1/-1}.achievement-categories{flex-wrap:nowrap;overflow-x:auto}.achievement-categories button{white-space:nowrap}}
@media(prefers-reduced-motion:reduce){.achievement-categories button,.achievement-track i{transition:none}}

/* Phase 2 achievement controls keep pending rewards visible without overpowering study content. */
#page-achievements .achievement-heading{align-items:end;gap:1.25rem}#page-achievements .achievement-summary{min-width:8rem;padding:.65rem .8rem;border-left:2px solid color-mix(in srgb,var(--gold) 55%,var(--line));background:color-mix(in srgb,var(--card) 82%,var(--mint));border-radius:0 .35rem .35rem 0}#page-achievements .achievement-summary strong{line-height:1}#page-achievements .achievement-summary strong small{font:600 .8rem var(--sans);color:var(--muted)}#page-achievements .achievement-categories{display:flex;gap:0;margin:0;padding:0;border-bottom:1px solid var(--line);overflow-x:auto}#page-achievements .achievement-categories button{position:relative;min-height:2.35rem;padding:.55rem .8rem;border:0;border-radius:0;background:transparent;color:var(--muted);font:650 .66rem var(--sans);white-space:nowrap}#page-achievements .achievement-categories button::after{content:"";position:absolute;right:.8rem;bottom:-1px;left:.8rem;height:2px;background:transparent}#page-achievements .achievement-categories button:hover{background:color-mix(in srgb,var(--mint) 68%,transparent);color:var(--ink)}#page-achievements .achievement-categories button[aria-pressed="true"]{background:transparent;border:0;color:var(--green)}#page-achievements .achievement-categories button[aria-pressed="true"]::after{background:var(--gold)}#page-achievements .achievement-toolbar{position:static;margin:.75rem 0 .65rem;padding:.4rem 0;border:0;border-radius:0;background:transparent;box-shadow:none}#page-achievements .achievement-row{grid-template-columns:auto minmax(12rem,1fr) minmax(9rem,13rem) auto;gap:clamp(.75rem,1.8vw,1.25rem);padding:clamp(.8rem,1.8vw,1rem);border-radius:.4rem;box-shadow:none}#page-achievements .achievement-row.in-progress{background:color-mix(in srgb,var(--card) 94%,var(--mint))}#page-achievements .achievement-row.ready{border-color:color-mix(in srgb,#6478c7 55%,var(--line));background:color-mix(in srgb,var(--card) 95%,#e7e8fa)}#page-achievements .achievement-row.claimed{border-color:color-mix(in srgb,var(--green) 36%,var(--line));background:color-mix(in srgb,var(--card) 96%,var(--mint))}#page-achievements .achievement-mark{width:2rem;height:2rem;border-radius:.35rem;background:var(--card)}#page-achievements .achievement-mark i{display:block;width:.56rem;height:.56rem;border:1.5px solid currentColor;border-radius:50%}#page-achievements .achievement-row.ready .achievement-mark{color:#5369b5;background:#eef0ff;border-color:color-mix(in srgb,#6478c7 55%,var(--line))}#page-achievements .achievement-row.ready .achievement-mark i{border-radius:.12rem;background:#6478c7;border-color:#6478c7}#page-achievements .achievement-row.claimed .achievement-mark{color:var(--green);background:var(--mint)}#page-achievements .achievement-row.claimed .achievement-mark i{width:.62rem;height:.34rem;border-width:0 0 1.5px 1.5px;border-radius:0;transform:rotate(-45deg) translate(1px,-1px)}#page-achievements .achievement-copy>div{display:block}#page-achievements .achievement-copy h2{margin:.08rem 0;font-size:1.05rem}#page-achievements .achievement-copy p{margin:.18rem 0}#page-achievements .achievement-state{display:block;font-size:.56rem}#page-achievements .achievement-row.ready .achievement-state{color:#5369b5}#page-achievements .achievement-row.claimed .achievement-state{color:var(--green)}#page-achievements .achievement-progress{align-self:center}#page-achievements .achievement-progress-copy{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin:0 0 .38rem}#page-achievements .achievement-progress-copy span,#page-achievements .achievement-progress-copy strong{font:600 .62rem var(--mono);letter-spacing:0}#page-achievements .achievement-progress-copy strong{color:var(--ink)}#page-achievements .achievement-track{height:.38rem}#page-achievements .achievement-row.ready .achievement-track i{background:#6478c7}#page-achievements .achievement-row.claimed .achievement-track i{background:var(--green)}#page-achievements .achievement-action{min-width:5.5rem;text-align:right}#page-achievements .achievement-action>span{color:var(--muted);font:600 .61rem var(--sans)}#page-achievements .achievement-row.claimed .achievement-action>span{color:var(--green)}#page-achievements .achievement-claim{margin:0;min-width:5.25rem}.title-chooser{display:grid;grid-template-columns:minmax(6rem,max-content) minmax(10rem,15rem);align-items:center;gap:.5rem .75rem;margin-bottom:.8rem}.title-chooser label{color:var(--muted);font-size:.68rem;font-weight:700}.title-select{min-height:2.25rem;padding:.4rem 2rem .4rem .65rem;border:1px solid var(--line);border-radius:.35rem;background:var(--card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%236b625b' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'/%3E%3C/svg%3E") right .65rem center/.7rem no-repeat;color:var(--ink);font:600 .72rem var(--sans);appearance:none}.title-select:hover{border-color:color-mix(in srgb,var(--green) 40%,var(--line))}.title-select:focus-visible{outline:2px solid color-mix(in srgb,var(--green) 55%,transparent);outline-offset:2px}.title-chooser .feedback-status{grid-column:2;margin:0;font-size:.62rem}@media(max-width:740px){#page-achievements .achievement-row{grid-template-columns:auto minmax(0,1fr);gap:.7rem}#page-achievements .achievement-progress,#page-achievements .achievement-action{grid-column:2;text-align:left}#page-achievements .achievement-heading{align-items:start}#page-achievements .achievement-summary{justify-items:start}}@media(max-width:480px){#page-achievements .achievement-progress,#page-achievements .achievement-action{grid-column:1/-1}#page-achievements .achievement-action .achievement-claim{width:100%}.title-chooser{grid-template-columns:1fr}.title-chooser .feedback-status{grid-column:1}}
.achievement-toolbar{position:sticky;top:.5rem;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:-.35rem 0 .8rem;padding:.55rem .7rem;border:1px solid var(--line);border-radius:.45rem;background:color-mix(in srgb,var(--card) 92%,var(--mint));box-shadow:var(--shadow-soft)}.achievement-toolbar p{margin:0;color:var(--muted);font-size:.7rem}.achievement-claim{margin-top:.55rem;min-height:1.95rem;padding:.34rem .6rem;font-size:.65rem}.achievement-row.ready{border-color:color-mix(in srgb,#6478c7 44%,var(--line));background:color-mix(in srgb,var(--card) 92%,#e7e8fa)}.achievement-row.ready .achievement-mark,.achievement-row.ready .achievement-track i{border-color:#6478c7;background:#6478c7;color:#fff}.achievement-row.ready .achievement-state{color:#5369b5}.achievement-row.claimed{border-color:color-mix(in srgb,var(--green) 38%,var(--line));background:color-mix(in srgb,var(--card) 94%,var(--mint));transition:border-color .18s ease,background-color .18s ease}.achievement-row.claimed .achievement-mark{border-color:color-mix(in srgb,var(--green) 55%,var(--line));background:var(--mint);color:var(--green)}.achievement-row.claimed .achievement-state{color:var(--green)}.achievement-row.claimed .achievement-track i{background:var(--green)}.achievement-nav-dot{display:inline-block;inline-size:.38rem;block-size:.38rem;margin-left:.3rem;border-radius:50%;vertical-align:middle;background:#6279c8;box-shadow:0 0 0 .12rem color-mix(in srgb,#6279c8 17%,transparent)}.nav-link .achievement-nav-dot{margin-left:auto}.title-chooser{margin-bottom:1rem}.title-chooser>span{display:block;margin-bottom:.45rem;color:var(--muted);font-size:.68rem;font-weight:700}.title-options{display:flex;flex-wrap:wrap;gap:.4rem}.title-options button{min-height:2rem;padding:.36rem .6rem;border:1px solid var(--line);border-radius:.35rem;background:var(--card);color:var(--muted);font:600 .68rem var(--sans);transition:border-color .16s ease,background-color .16s ease,color .16s ease}.title-options button[aria-pressed="true"]{border-color:color-mix(in srgb,var(--green) 48%,var(--line));background:var(--mint);color:var(--green)}.title-options button:focus-visible,.achievement-claim:focus-visible{outline:2px solid color-mix(in srgb,var(--green) 60%,transparent);outline-offset:2px}@media(max-width:480px){.achievement-toolbar{position:static;align-items:flex-start;flex-direction:column}.achievement-toolbar .button{width:100%}}@media(prefers-reduced-motion:reduce){.achievement-row.claimed,.title-options button{transition:none}}
/* UI polish pass: shared editorial rhythm for progress, profile, and vocabulary views. */
#page-achievements .achievement-toolbar p{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
#page-achievements .achievement-toolbar{justify-content:flex-end;margin:.5rem 0 .8rem;padding:0;background:transparent;border:0;box-shadow:none}
#page-achievements .achievement-claim-all{min-height:2rem;padding:.4rem .72rem;border:1px solid color-mix(in srgb,#6279c8 38%,var(--line));background:#f2f2ff;color:#5369b5;box-shadow:none}
#page-achievements .achievement-row,.task-row{border-radius:7px;box-shadow:none}
#page-achievements .achievement-row{grid-template-columns:32px minmax(0,1.25fr) minmax(150px,.8fr) minmax(74px,auto);gap:clamp(.8rem,2vw,1.4rem);min-height:92px;padding:15px 16px}
#page-achievements .achievement-row.in-progress{background:var(--card)}
#page-achievements .achievement-mark,.task-mark{width:32px;height:32px;border-radius:6px}
#page-achievements .achievement-copy h2,.task-copy h2{font-size:18px;letter-spacing:-.15px}
#page-achievements .achievement-copy p,.task-copy p{line-height:1.45}
#page-achievements .achievement-state,.task-state{letter-spacing:.08em}
#page-achievements .achievement-reward{margin-top:.35rem;color:#95703d;font:600 .59rem var(--mono);letter-spacing:.025em}
#page-achievements .achievement-row.ready{border-color:color-mix(in srgb,#6279c8 48%,var(--line));background:#fbfbff}
#page-achievements .achievement-row.ready .achievement-track i{background:#6279c8}
#page-achievements .achievement-row.claimed{background:color-mix(in srgb,var(--card) 96%,var(--mint))}
#page-achievements .achievement-action{min-width:74px}
#page-achievements .achievement-claim{min-height:2rem;padding:.38rem .68rem;border:1px solid #cfd4f0;background:#eef0ff;color:#5369b5;box-shadow:none}
#page-achievements .achievement-claim:hover{background:#e6e9ff}
#page-tasks .task-counters{gap:.4rem;margin:.1rem 0 .95rem}
#page-tasks .task-counters span{padding:.4rem .56rem;border-radius:5px;background:color-mix(in srgb,var(--card) 94%,var(--paper));font-size:.64rem}
#page-tasks .task-toolbar{margin:.5rem 0 .8rem}
#page-tasks .task-row{grid-template-columns:32px minmax(0,1.25fr) minmax(150px,.8fr) minmax(74px,auto);min-height:96px;padding:15px 16px}
#page-tasks .task-row:not(.ready):not(.claimed){background:var(--card)}
#page-tasks .task-rewards{margin-top:.42rem}
#page-tasks .task-progress>i,.rank-track{height:4px}
#page-tasks .task-claim{min-height:2rem;padding:.38rem .68rem;border:1px solid #cfd4f0;background:#eef0ff;color:#5369b5;box-shadow:none}
.task-list.task-list-entering{animation:wordwise-list-enter var(--motion-fast) var(--motion-ease) both}
.rank-panels{gap:14px}.rank-panel{position:relative;border-radius:7px;box-shadow:none}
.rank-panel.seasonal{border-color:color-mix(in srgb,var(--gold) 45%,var(--line));background:color-mix(in srgb,var(--card) 96%,#fbf4e9)}
.rank-panel.permanent{border-color:color-mix(in srgb,#6279c8 28%,var(--line));background:color-mix(in srgb,var(--card) 97%,#f1f1fb)}
.rank-panel.seasonal .eyebrow{color:#9b7540}.rank-panel.permanent .eyebrow{color:#586ba7}
.rank-panel.permanent .rank-track>i{background:#6279c8}.rank-panel.permanent .rank-ladder .passed i{background:#6279c8;border-color:#6279c8}.rank-panel.permanent .rank-ladder .current{color:#5369b5}.rank-panel.permanent .rank-ladder .current i{border-color:#6279c8;box-shadow:0 0 0 .14rem #6279c81f}
/* Header and data rows deliberately share one named grid. */
.leaderboard-table{--leaderboard-columns:38px minmax(230px,2.3fr) minmax(86px,.72fr) repeat(5,minmax(72px,.58fr));overflow-x:auto;overscroll-behavior-x:contain}
.leaderboard-columns,.leaderboard-row{display:grid;grid-template-columns:var(--leaderboard-columns);column-gap:12px;align-items:center}
.leaderboard-columns,.leaderboard-list{min-width:0}.leaderboard-learner,.leaderboard-person{min-width:0}
.leaderboard-person strong,.leaderboard-person small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#page-profile .page-heading{margin-bottom:16px}#page-profile .profile-card{gap:16px;padding:21px 23px}#page-profile .profile-identity{padding-bottom:15px}#page-profile .profile-controls{gap:19px}#page-profile .profile-identity-controls{gap:12px}
#page-profile .title-chooser{grid-template-columns:max-content minmax(150px,210px);gap:.4rem .65rem;margin:0;padding:9px 0;border-bottom:1px solid var(--line)}
#page-profile .title-select{min-height:34px;border-radius:5px;background-color:var(--card);font-size:.69rem}#page-profile .title-chooser .feedback-status{line-height:1.3}
#page-my-words .page-heading{margin-bottom:18px}.my-words-tools{display:grid;grid-template-columns:minmax(240px,1fr) minmax(150px,176px) minmax(150px,176px);gap:9px;margin-bottom:16px}.my-words-tools .search-box{min-width:0;background:var(--card)}.my-words-tools .vocabulary-filter-select{min-width:0;max-width:none}#page-my-words .word-row{min-height:62px;border-radius:7px}
@media(max-width:740px){#page-achievements .achievement-row,#page-tasks .task-row{grid-template-columns:32px minmax(0,1fr);min-height:0}#page-achievements .achievement-progress,#page-achievements .achievement-action,#page-tasks .task-progress,#page-tasks .task-action{grid-column:2;text-align:left}.leaderboard-table{--leaderboard-columns:30px repeat(3,minmax(0,1fr))}.leaderboard-columns{display:none}.leaderboard-row{grid-template-columns:var(--leaderboard-columns)}.my-words-tools{grid-template-columns:1fr 1fr}.my-words-tools .search-box{grid-column:1/-1}#page-profile .title-chooser{grid-template-columns:max-content minmax(0,1fr)}}
@media(max-width:480px){#page-achievements .achievement-progress,#page-achievements .achievement-action,#page-tasks .task-progress,#page-tasks .task-action{grid-column:1/-1}#page-achievements .achievement-action .achievement-claim,#page-tasks .task-action .task-claim{width:100%}.my-words-tools{grid-template-columns:1fr}.my-words-tools .search-box{grid-column:auto}#page-profile .title-chooser{grid-template-columns:1fr}.title-chooser .feedback-status{grid-column:1}}
@media(prefers-reduced-motion:reduce){.task-list.task-list-entering{animation:none!important}}
/* Achievements: compact milestone rows with a single, readable state. */
#page-achievements{--achievement-lavender:#f4f3ff;--achievement-blue:#596fb9;--achievement-green:#377358}
#page-achievements .achievement-heading{margin-bottom:clamp(1.1rem,2vw,1.55rem)}
#page-achievements .achievement-summary{min-width:7.25rem;padding:.55rem 0 .55rem .8rem;border-left:1px solid color-mix(in srgb,var(--gold) 65%,var(--line));border-radius:0;background:transparent}
#page-achievements .achievement-summary strong{font-size:clamp(1.55rem,2.7vw,2.1rem)}
#page-achievements .achievement-categories{gap:0;margin:0;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
#page-achievements .achievement-categories::-webkit-scrollbar{display:none}
#page-achievements .achievement-categories button{position:relative;min-height:2.45rem;padding:.55rem .8rem;border:0;border-radius:0;background:transparent;color:var(--muted);font:650 .7rem var(--sans);white-space:nowrap;transition:color 150ms ease,background-color 150ms ease}
#page-achievements .achievement-categories button::after{content:"";position:absolute;right:.8rem;bottom:-1px;left:.8rem;height:2px;background:transparent;transition:background-color 150ms ease}
#page-achievements .achievement-categories button:hover{background:color-mix(in srgb,var(--mint) 52%,transparent);color:var(--ink)}
#page-achievements .achievement-categories button[aria-pressed="true"]{color:var(--green);font-weight:700}
#page-achievements .achievement-categories button[aria-pressed="true"]::after{background:var(--gold)}
#page-achievements .achievement-toolbar{min-height:2rem;margin:.55rem 0 .7rem;padding:0}
#page-achievements .achievement-claim-all{border:1px solid color-mix(in srgb,var(--achievement-blue) 32%,var(--line));border-radius:5px;background:var(--achievement-lavender);color:var(--achievement-blue);font-size:.66rem}
#page-achievements .achievement-list{gap:.5rem}
#page-achievements .achievement-row{grid-template-columns:34px minmax(12rem,1.25fr) minmax(10.5rem,.78fr) max-content;gap:clamp(.75rem,1.8vw,1.2rem);min-height:5.45rem;padding:clamp(.8rem,1.6vw,1rem);border:1px solid var(--line);border-radius:7px;background:var(--card);box-shadow:none;transition:border-color 160ms ease,background-color 160ms ease}
#page-achievements .achievement-row.in-progress{background:var(--card)}
#page-achievements .achievement-row.ready{border-color:color-mix(in srgb,var(--achievement-blue) 52%,var(--line));background:color-mix(in srgb,var(--card) 92%,var(--achievement-lavender))}
#page-achievements .achievement-row.claimed{border-color:color-mix(in srgb,var(--achievement-green) 35%,var(--line));background:color-mix(in srgb,var(--card) 97%,var(--mint))}
#page-achievements .achievement-mark{width:34px;height:34px;border:1px solid var(--line);border-radius:50%;background:color-mix(in srgb,var(--paper) 58%,var(--card));color:var(--muted)}
#page-achievements .achievement-mark i{width:.56rem;height:.56rem;border:1.5px solid currentColor;border-radius:50%;background:transparent}
#page-achievements .achievement-row.ready .achievement-mark{border-color:color-mix(in srgb,var(--achievement-blue) 46%,var(--line));background:var(--achievement-lavender);color:var(--achievement-blue)}
#page-achievements .achievement-row.ready .achievement-mark i{border-radius:.14rem;background:currentColor}
#page-achievements .achievement-row.claimed .achievement-mark{border-color:color-mix(in srgb,var(--achievement-green) 45%,var(--line));background:var(--mint);color:var(--achievement-green)}
#page-achievements .achievement-row.claimed .achievement-mark i{width:.62rem;height:.35rem;border-width:0 0 1.5px 1.5px;border-radius:0;transform:rotate(-45deg) translate(1px,-1px)}
#page-achievements .achievement-copy h2{margin:.08rem 0 .14rem;font:600 clamp(1rem,1.35vw,1.12rem) var(--serif);letter-spacing:-.01em}
#page-achievements .achievement-copy>p:not(.achievement-reward){margin:0;color:var(--muted);font-size:.7rem;line-height:1.45}
#page-achievements .achievement-state{display:block;margin-bottom:.18rem;color:var(--muted);font:650 .56rem var(--mono);letter-spacing:.065em;text-transform:uppercase}
#page-achievements .achievement-row.ready .achievement-state{color:var(--achievement-blue)}
#page-achievements .achievement-row.claimed .achievement-state{color:var(--achievement-green)}
#page-achievements .achievement-reward{display:flex;align-items:baseline;gap:.38rem;margin:.42rem 0 0;color:#86673f;font:600 .62rem var(--sans)}
#page-achievements .achievement-reward span{color:var(--muted);font:.54rem var(--mono);letter-spacing:.06em;text-transform:uppercase}
#page-achievements .achievement-progress{align-self:center;min-width:0}
#page-achievements .achievement-progress-copy{margin:0 0 .38rem;font:.58rem var(--mono);letter-spacing:0}
#page-achievements .achievement-progress-copy>span{color:var(--muted);text-transform:uppercase;letter-spacing:.055em}
#page-achievements .achievement-progress-copy strong{color:var(--ink);font-weight:600;white-space:nowrap}
#page-achievements .achievement-track{height:.32rem;background:color-mix(in srgb,var(--line) 82%,var(--paper))}
#page-achievements .achievement-track i{background:#7f9f89;transition:width 220ms ease}
#page-achievements .achievement-row.ready .achievement-track i{background:var(--achievement-blue)}
#page-achievements .achievement-row.claimed .achievement-track i{background:var(--achievement-green)}
#page-achievements .achievement-action{min-width:0;text-align:right}
#page-achievements .achievement-claim{min-width:4.8rem;min-height:2rem;margin:0;padding:.38rem .68rem;border:1px solid color-mix(in srgb,var(--achievement-blue) 36%,var(--line));border-radius:5px;background:var(--achievement-lavender);color:var(--achievement-blue);box-shadow:none;font-size:.66rem}
#page-achievements .achievement-claim:hover{background:#ebebff}
@media(max-width:740px){#page-achievements .achievement-heading{align-items:flex-start}#page-achievements .achievement-row{grid-template-columns:34px minmax(0,1fr);gap:.65rem .8rem}#page-achievements .achievement-progress{grid-column:2}#page-achievements .achievement-action{grid-column:2;text-align:left}}
@media(max-width:480px){#page-achievements .achievement-summary{display:none}#page-achievements .achievement-row{grid-template-columns:30px minmax(0,1fr);padding:.78rem}#page-achievements .achievement-mark{width:30px;height:30px}#page-achievements .achievement-progress,#page-achievements .achievement-action{grid-column:1/-1}#page-achievements .achievement-action .achievement-claim{width:100%}}

/* Compact leaderboard modes share the same table and learner identity layout. */
.leaderboard-mode-tabs{display:flex;gap:1.15rem;width:max-content;margin:.65rem 0 .25rem;border-bottom:1px solid var(--line)}
.leaderboard-mode-tabs button{position:relative;padding:.55rem 0;color:var(--muted);border:0;background:none;font:600 .68rem var(--sans);transition:color var(--motion-fast) var(--motion-ease)}
.leaderboard-mode-tabs button::after{position:absolute;right:0;bottom:-1px;left:0;height:2px;background:transparent;content:"";transition:background-color var(--motion-fast) var(--motion-ease)}
.leaderboard-mode-tabs button:hover,.leaderboard-mode-tabs button[aria-pressed="true"]{color:var(--green)}
.leaderboard-mode-tabs button[aria-pressed="true"]::after{background:var(--gold)}
.leaderboard-list.leaderboard-list-entering{animation:wordwise-list-enter var(--motion-fast) var(--motion-ease) both}
.leaderboard-table.seasonal-mode{--leaderboard-columns:38px minmax(230px,2.2fr) minmax(105px,.9fr) minmax(105px,.75fr)}
.leaderboard-table.seasonal-mode .leaderboard-season-rank,.leaderboard-table.seasonal-mode .leaderboard-season-points{text-align:right;font-variant-numeric:tabular-nums}
.leaderboard-table.seasonal-mode .leaderboard-season-rank{color:var(--green);font:600 .76rem var(--serif)}
.leaderboard-table.seasonal-mode .leaderboard-season-points{color:var(--ink);font:600 .72rem var(--mono)}
.leaderboard-table.seasonal-mode .leaderboard-list{min-width:0}
@media(max-width:740px){.leaderboard-table.seasonal-mode{--leaderboard-columns:30px minmax(0,1fr) max-content}.leaderboard-table.seasonal-mode .leaderboard-row{grid-template-columns:var(--leaderboard-columns);gap:12px 10px;padding:16px 12px}.leaderboard-table.seasonal-mode .leaderboard-learner{grid-column:2/4}.leaderboard-table.seasonal-mode .leaderboard-season-rank{grid-row:2;grid-column:2}.leaderboard-table.seasonal-mode .leaderboard-season-points{grid-row:2;grid-column:3}.leaderboard-table.seasonal-mode .leaderboard-season-rank,.leaderboard-table.seasonal-mode .leaderboard-season-points{display:grid;gap:4px;text-align:left}.leaderboard-table.seasonal-mode .leaderboard-season-rank::before,.leaderboard-table.seasonal-mode .leaderboard-season-points::before{content:attr(data-label);color:var(--muted);font:9px var(--sans)}}
@media(prefers-reduced-motion:reduce){.leaderboard-mode-tabs button,.leaderboard-mode-tabs button::after,.leaderboard-list.leaderboard-list-entering{transition:none;animation:none!important}}
@media(prefers-reduced-motion:reduce){#page-achievements .achievement-row,#page-achievements .achievement-categories button,#page-achievements .achievement-categories button::after,#page-achievements .achievement-track i{transition:none}}

/* Editorial controls for Learning/Seasonal leaderboard modes. */
#page-leaderboard .leaderboard-heading{gap:1rem}
#page-leaderboard .leaderboard-heading>div{min-width:0}
#page-leaderboard #leaderboard-load{flex:none;min-height:34px;padding:0 11px;border:1px solid var(--line);border-radius:6px;background:transparent;color:var(--muted);font:600 11px/1.2 var(--sans);letter-spacing:0;box-shadow:none;transition:background var(--motion-fast) var(--motion-ease),border-color var(--motion-fast) var(--motion-ease),color var(--motion-fast) var(--motion-ease)}
#page-leaderboard #leaderboard-load:hover:not(:disabled){transform:none;background:var(--mint);border-color:color-mix(in srgb,var(--green) 28%,var(--line));color:var(--green)}
#page-leaderboard #leaderboard-load:active:not(:disabled){background:color-mix(in srgb,var(--green) 12%,var(--mint))}
#page-leaderboard .leaderboard-controls{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:.75rem 0 .5rem;border-bottom:1px solid var(--line)}
#page-leaderboard .leaderboard-mode-tabs{display:flex;align-items:center;gap:4px;width:auto;max-width:100%;margin:0;padding:4px;border:1px solid var(--line);border-radius:8px;background:var(--surface-control)}
#page-leaderboard .leaderboard-mode-tabs button{position:relative;min-height:31px;padding:0 11px;border:0;border-radius:5px;background:transparent;color:var(--muted);font:600 11px/1.2 var(--sans);white-space:nowrap;transition:color var(--motion-fast) var(--motion-ease),background-color var(--motion-fast) var(--motion-ease)}
#page-leaderboard .leaderboard-mode-tabs button::after{display:none}
#page-leaderboard .leaderboard-mode-tabs button:hover{background:var(--paper);color:var(--ink)}
#page-leaderboard .leaderboard-mode-tabs button[aria-pressed="true"]{background:var(--mint);color:var(--green);font-weight:700}
#page-leaderboard .leaderboard-mode-tabs button:focus-visible,#page-leaderboard #leaderboard-load:focus-visible,#page-leaderboard .leaderboard-score-info summary:focus-visible{outline:2px solid color-mix(in srgb,var(--green) 58%,transparent);outline-offset:2px}
#page-leaderboard .leaderboard-score-info{margin:0;color:var(--muted);font-size:.68rem}
#page-leaderboard .leaderboard-score-info summary{display:inline-flex;align-items:center;cursor:pointer;color:var(--green);font:600 11px/1.3 var(--sans);list-style:none;transition:color var(--motion-fast) var(--motion-ease)}
#page-leaderboard .leaderboard-score-info summary::-webkit-details-marker{display:none}
#page-leaderboard .leaderboard-score-info summary:hover{color:var(--ink);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--green) 45%,transparent);text-underline-offset:3px}
#page-leaderboard .leaderboard-score-info p{max-width:760px;margin:.55rem 0 .2rem;padding:.65rem .75rem;border-left:2px solid var(--line);border-radius:0 6px 6px 0;background:var(--paper);font-size:.7rem;line-height:1.55}
@media(max-width:520px){#page-leaderboard .leaderboard-heading{align-items:flex-start}#page-leaderboard #leaderboard-load{min-height:var(--control-height-compact);padding:0 .62rem}#page-leaderboard .leaderboard-controls{align-items:flex-start;flex-wrap:wrap;gap:.15rem .75rem}#page-leaderboard .leaderboard-mode-tabs{flex:1 1 auto}#page-leaderboard .leaderboard-score-info{padding:.1rem 0 .45rem}}
@media(prefers-reduced-motion:reduce){#page-leaderboard #leaderboard-load,#page-leaderboard .leaderboard-mode-tabs button,#page-leaderboard .leaderboard-score-info summary{transition:none}}
/* Authoritative Achievements layout: marker | milestone body | single action. */
#page-achievements .achievement-list{display:grid;gap:.625rem;width:100%}
#page-achievements .achievement-row{display:grid;grid-template-columns:2.5rem minmax(0,1fr) max-content;align-items:center;gap:clamp(.8rem,2vw,1.35rem);min-height:6.25rem;padding:clamp(.9rem,1.8vw,1.15rem);border:1px solid var(--line);border-radius:.5rem;background:var(--card);box-shadow:none}
#page-achievements .achievement-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(12rem,.68fr);align-items:center;gap:clamp(.9rem,2vw,1.6rem);min-width:0}
#page-achievements .achievement-mark{display:grid;place-items:center;width:2.5rem;height:2.5rem;border:1px solid var(--line);border-radius:50%;background:var(--paper);color:var(--muted)}
#page-achievements .achievement-mark i{display:block;width:.62rem;height:.62rem;border:1.5px solid currentColor;border-radius:50%;background:transparent}
#page-achievements .achievement-copy{min-width:0}
#page-achievements .achievement-copy h2{margin:0 0 .22rem;font:600 clamp(1.05rem,1.5vw,1.18rem) var(--serif);letter-spacing:-.012em}
#page-achievements .achievement-copy>p:not(.achievement-reward){margin:0;color:var(--muted);font-size:.72rem;line-height:1.45}
#page-achievements .achievement-reward{display:flex;align-items:baseline;gap:.42rem;margin:.45rem 0 0;color:#87683f;font:600 .63rem var(--sans)}
#page-achievements .achievement-reward span{color:var(--muted);font:.54rem var(--mono);letter-spacing:.06em;text-transform:uppercase}
#page-achievements .achievement-progress{min-width:0;align-self:center}
#page-achievements .achievement-progress-copy{display:flex;justify-content:space-between;gap:.6rem;margin:0 0 .4rem;font:.58rem var(--mono);letter-spacing:0}
#page-achievements .achievement-progress-copy>span{color:var(--muted);letter-spacing:.06em;text-transform:uppercase}
#page-achievements .achievement-progress-copy strong{color:var(--ink);font-weight:600;white-space:nowrap}
#page-achievements .achievement-track{display:block;height:.34rem;overflow:hidden;border-radius:99px;background:color-mix(in srgb,var(--line) 80%,var(--paper))}
#page-achievements .achievement-track i{display:block;height:100%;border-radius:inherit;background:#839d8b;transition:width 220ms ease}
#page-achievements .achievement-action{display:flex;align-items:center;justify-content:flex-end;min-width:5.25rem;text-align:right}
#page-achievements .achievement-action-label{color:var(--muted);font:600 .66rem var(--sans);white-space:nowrap}
#page-achievements .achievement-row.ready{border-color:color-mix(in srgb,#6279c8 52%,var(--line));background:color-mix(in srgb,var(--card) 94%,#eef0ff)}
#page-achievements .achievement-row.ready .achievement-mark{border-color:color-mix(in srgb,#6279c8 50%,var(--line));background:#eef0ff;color:#566bb4}
#page-achievements .achievement-row.ready .achievement-mark i{border-radius:.12rem;background:currentColor}
#page-achievements .achievement-row.ready .achievement-track i{background:#6279c8}
#page-achievements .achievement-row.ready .achievement-claim{min-width:5.25rem;margin:0;border:1px solid #cbd2ef;border-radius:.35rem;background:#eef0ff;color:#5369b5;box-shadow:none;font-size:.67rem}
#page-achievements .achievement-row.claimed{border-color:color-mix(in srgb,var(--green) 35%,var(--line));background:color-mix(in srgb,var(--card) 97%,var(--mint))}
#page-achievements .achievement-row.claimed .achievement-mark{border-color:color-mix(in srgb,var(--green) 45%,var(--line));background:var(--mint);color:var(--green)}
#page-achievements .achievement-row.claimed .achievement-mark i{width:.7rem;height:.38rem;border-width:0 0 1.5px 1.5px;border-radius:0;transform:rotate(-45deg) translate(1px,-1px)}
#page-achievements .achievement-row.claimed .achievement-track i{background:var(--green)}
#page-achievements .achievement-row.claimed .achievement-action-label{color:var(--green)}
@media(max-width:740px){#page-achievements .achievement-row{grid-template-columns:2.35rem minmax(0,1fr);align-items:start}#page-achievements .achievement-body{grid-template-columns:1fr;gap:.75rem}#page-achievements .achievement-action{grid-column:2;justify-content:flex-start;min-height:1.8rem;text-align:left}}
@media(max-width:480px){#page-achievements .achievement-row{grid-template-columns:2.1rem minmax(0,1fr);gap:.7rem;padding:.82rem}#page-achievements .achievement-mark{width:2.1rem;height:2.1rem}#page-achievements .achievement-action{grid-column:1/-1}#page-achievements .achievement-action .achievement-claim{width:100%}}
