@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Mono:wght@400;500&display=swap');
:root{--bg:#f7f8f4;--paper:#fff;--ink:#25372e;--muted:#849088;--green:#315b43;--soft:#e9efe5;--line:#e4e8df;--red:#b65048;--mono:'DM Mono',ui-monospace,monospace;--sans:'DM Sans',-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px var(--sans)}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0;background:none;color:inherit}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #8ba879;outline-offset:3px}a{text-decoration:none;color:inherit}.sidebar{position:fixed;width:226px;inset:0 auto 0 0;border-right:1px solid var(--line);background:#f0f2eb;padding:31px 22px 20px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;font-size:23px;font-weight:600;letter-spacing:3px}.brand-mark{width:45px;height:45px;border-radius:13px;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;font-family:Georgia;font-size:35px;letter-spacing:-3px;padding-bottom:6px}.brand-mark span{color:#d2e99c}.brand small{display:block;font:9px var(--mono);letter-spacing:2px;color:#738173;margin-top:6px}.course-label{color:#8c968d;font-size:11px;margin:49px 12px 15px;letter-spacing:1px}nav{display:grid;gap:6px}nav button{display:flex;align-items:center;gap:12px;text-align:left;border-radius:8px;padding:14px 13px;font-size:13px;color:#677569}nav button>span{font-size:19px;line-height:17px;width:20px}nav button.active{background:var(--green);color:#fff}nav button:hover:not(.active){background:#e5eadd}nav i,nav b{margin-left:auto;font:10px var(--mono);opacity:.6}nav b{background:#e4e9dc;border-radius:4px;padding:2px 5px;opacity:1;color:var(--green)}.side-note{margin:auto 12px 30px;padding-top:50px}.tiny{font:9px var(--mono);letter-spacing:1px;color:#839079}.side-note p{font-size:12px;line-height:2;color:#66745e}.note-line{width:28px;height:2px;background:#becbac;margin:19px 0}.side-note small{font-size:10px;color:#939c8d}.settings-link{text-align:left;padding:12px;color:#77816f;font-size:12px}.workspace{margin-left:226px}header{height:78px;padding:0 48px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);font-size:12px}.breadcrumb{color:#8a958c;display:flex;gap:15px}.breadcrumb strong{font-weight:500;color:#536455}.breadcrumb span{color:#b9c0b4}.header-right{display:flex;align-items:center;gap:23px;color:#7d897e}.icon-btn{border:1px solid #d9dfd1;border-radius:50%;height:25px;width:25px;font-family:var(--mono)}main{max-width:1250px;margin:auto;padding:39px 48px 25px;min-height:calc(100vh - 133px)}.intro{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.eyebrow{font:10px var(--mono);letter-spacing:2px;color:#8d9a7e}.intro h1{font-size:28px;font-weight:600;letter-spacing:-.6px;margin:10px 0}.intro p{color:#8c958c;font-size:12px;margin:0;line-height:1.8}.intro-side{font:10px var(--mono);color:#8a977e;display:flex;gap:8px;align-items:center}.dot{width:6px;height:6px;border-radius:50%;background:#779c5b}.training-layout{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:23px;align-items:start}.panel{background:var(--paper);border:1px solid var(--line);border-radius:12px}.training-card{overflow:hidden}.train-toolbar{display:flex;align-items:center;justify-content:space-between;padding:17px 22px;border-bottom:1px solid var(--line);gap:12px}.select-wrap{display:flex;align-items:center;gap:9px;font-size:12px}.select-wrap .book-icon{background:#edf2e9;padding:7px;border-radius:6px;color:#6c8857}select{border:1px solid var(--line);background:#fff;border-radius:6px;padding:8px 10px;color:#52634f;max-width:100%}.select-wrap select{border:0;padding:4px}.tag{font-size:10px;background:#eef3e9;color:#75915b;padding:4px 7px;border-radius:4px;white-space:nowrap}.session-label{font:11px var(--mono);color:#89927f;white-space:nowrap}.mode-bar{display:flex;gap:7px;margin:20px 22px 0;background:#f4f6f0;padding:4px;border-radius:7px;width:fit-content;max-width:calc(100% - 44px)}.mode-bar button{font-size:11px;color:#8c9685;padding:8px 14px;border-radius:5px}.mode-bar button.active{background:#fff;color:#4d6844;box-shadow:0 1px 4px #233b2310}.word-zone{padding:32px 24px 21px;text-align:center;position:relative;min-height:285px}.word-label{font-size:10px;letter-spacing:2px;color:#9da591}.word{font:500 clamp(35px,4vw,51px) var(--mono);letter-spacing:2px;margin:20px 0 9px;line-height:1.3;overflow-wrap:anywhere}.letter-correct{color:#58884d}.letter-wrong{color:var(--red);background:#fceee9;border-radius:3px}.letter-current{border-bottom:2px solid #7c9c65}.phonetic{font:12px var(--mono);color:#a0a794;margin-bottom:17px;min-height:16px}.meaning{color:#67735f;font-size:14px;min-height:20px}.sound-btn{margin:13px 0 0;color:#75925d;font-size:11px;display:inline-flex;gap:7px;align-items:center}.sound-symbol{font-size:18px}.typing-wrap{margin:0 26px;position:relative}.typing-input{width:100%;text-align:center;padding:16px 50px;background:#f7f9f3;border:1.5px solid #cbd9bc;border-radius:8px;color:var(--green);font:17px var(--mono);outline:none;letter-spacing:2px}.typing-input:focus{border-color:#769861;box-shadow:0 0 0 3px #e8f0e2}.typing-input::placeholder{font:11px var(--sans);letter-spacing:1px;color:#a2af96}.enter-badge{position:absolute;right:13px;top:16px;font:10px var(--mono);color:#9ba58f;border:1px solid #dde4d6;padding:2px 5px;border-radius:3px}.feedback{height:36px;padding-top:10px;text-align:center;color:#87977a;font-size:11px}.feedback.error{color:var(--red)}.train-actions{display:flex;align-items:center;justify-content:center;gap:20px;margin:5px 24px 23px}.primary{background:var(--green);color:#fff;padding:12px 22px;border-radius:7px;font-size:12px;display:inline-flex;justify-content:center;align-items:center;gap:14px}.primary:hover{background:#244b35}.secondary{padding:10px 14px;background:#f1f4ed;border:1px solid #dde5d6;border-radius:7px;font-size:12px}.text-button{font-size:11px;color:#8d9a7e;padding:5px}.shortcuts{display:flex;justify-content:center;gap:20px;border-top:1px solid var(--line);padding:13px;color:#9ca592;font-size:10px;background:#fcfdfb}kbd{font:9px var(--mono);border:1px solid #dfe5d7;border-radius:3px;padding:2px 5px;margin-right:5px;background:#fff;color:#7c8a70}.metric-strip{display:grid;grid-template-columns:repeat(4,1fr);margin-top:17px;padding:19px 0}.metric{text-align:center;border-right:1px solid var(--line)}.metric:last-child{border:0}.metric strong{font:25px var(--mono);font-weight:500;display:block;letter-spacing:-1px}.metric small{font-size:10px;color:#8c9883;display:block;margin-top:7px}.metric em{font-size:11px;font-style:normal;color:#a6b095;margin-left:3px}.practice-note{display:flex;gap:12px;background:#edf1e5;border-radius:8px;padding:14px 18px;margin-top:17px;color:#86966d;font-size:11px;line-height:1.7}.practice-note span:first-child{font-size:17px}.right-column{display:grid;gap:18px}.side-panel{padding:21px}.panel-head{display:flex;justify-content:space-between;align-items:center;font-size:12px;margin-bottom:21px;font-weight:500}.panel-head span{font:9px var(--mono);color:#8c987a}.goal-summary{display:flex;justify-content:space-between;align-items:end}.goal-number{font:36px var(--mono);letter-spacing:-2px}.goal-number small{font-size:15px;color:#a5ad9b;letter-spacing:0}.goal-summary>small{font-size:10px;color:#909d80}.progress-track{height:5px;background:#edf1e8;border-radius:9px;margin:15px 0 13px;overflow:hidden}.progress-fill{height:100%;background:#82a16a;transition:width .3s}.subtle{font-size:11px;color:#96a18b;line-height:1.8}.week{display:flex;justify-content:space-between;margin-top:20px}.day{text-align:center;font-size:9px;color:#929e85}.day-circle{height:22px;width:22px;background:#f0f3eb;border-radius:50%;margin-top:7px;display:grid;place-items:center;font-size:10px}.day-circle.done{background:#e0ebd4;color:#63844c}.review-panel{background:#edf2e7;border:1px solid #dde6d3;border-radius:12px;padding:21px}.review-panel .panel-head{margin-bottom:10px}.review-num{font:27px var(--mono);margin-top:10px}.wide-button{width:100%;margin-top:15px}.tip-panel{padding:20px 7px}.tip-title{font:9px var(--mono);letter-spacing:1.5px;color:#8d9c7f}.tip-panel p{font-size:11px;color:#929d85;line-height:2}.tip-panel strong{font-weight:500;color:#69804f}.example{margin:17px 26px 0;padding:15px;border-top:1px solid var(--line);font-size:12px;text-align:center;line-height:1.8;color:#667b55}.example small{display:block;color:#99a48c;font-size:10px}.hidden{display:none!important}footer{max-width:1250px;margin:auto;padding:17px 48px 20px;display:flex;justify-content:space-between;font-size:9px;color:#a6ad9e}footer button{padding:0;font-size:9px;color:#8f9e7e}.section-toolbar{display:flex;gap:13px;justify-content:space-between;align-items:center;flex-wrap:wrap;margin-bottom:24px}.search{border:1px solid var(--line);border-radius:7px;background:white;padding:10px 14px;min-width:220px;outline:none}.filter-group{display:flex;gap:8px;flex-wrap:wrap}.filter-group button{padding:10px 14px;border:1px solid var(--line);border-radius:7px;font-size:12px;background:#fff}.filter-group button.active{background:var(--green);color:white}.word-table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}.word-table th{font-size:10px;color:#8f9b83;font-weight:500;background:#f5f7f1;padding:15px 18px}.word-table td{padding:16px 18px;border-top:1px solid var(--line)}.word-table td:first-child{font-family:var(--mono);font-size:15px;color:#3b563d}.table-scroll{overflow:auto;border-radius:12px}.table-action{padding:7px 10px;background:#edf2e8;border-radius:5px;font-size:10px;color:#6d8c54}.empty-state{text-align:center;padding:70px 30px;color:#8c9b7e}.empty-icon{font:45px Georgia;color:#90a77d}.empty-state h2{font-weight:500;color:#4d6543;font-size:20px}.empty-state p{line-height:1.9;font-size:12px}.grid-three{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:25px 0}.level-card{padding:28px}.level-card h2{font-size:20px;font-weight:500;margin:15px 0}.level-card p{font-size:12px;color:#8d9a81;line-height:2}.level-number{font:35px var(--mono);color:#a3b894}.timeline{padding:30px;display:grid;gap:25px}.timeline-row{display:flex;gap:20px;align-items:flex-start}.step{background:#eaf0e2;border-radius:50%;width:32px;height:32px;display:grid;place-items:center;font-family:var(--mono);flex-shrink:0}.timeline h3{font-size:15px;font-weight:500;margin:3px 0 10px}.timeline p{font-size:12px;color:#89977c;margin:0;line-height:1.9}.settings-panel{max-width:760px;padding:30px}.setting-row{display:flex;justify-content:space-between;align-items:center;padding:20px 0;border-bottom:1px solid var(--line);gap:20px}.setting-row h3{font-size:13px;font-weight:500;margin:0 0 6px}.setting-row p{font-size:11px;color:#8b9780;margin:0;line-height:1.7}.check{accent-color:var(--green);width:18px;height:18px}.backup-buttons{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.chart{display:flex;align-items:flex-end;gap:14px;height:150px;margin:20px 0}.chart-col{flex:1;display:flex;align-items:center;flex-direction:column;gap:8px;height:100%;justify-content:flex-end;font-size:10px;color:#8f9f81}.bar{width:100%;max-width:50px;background:#bdd0a8;border-radius:5px 5px 0 0;min-height:3px}.stats-panel{padding:28px}.history-row{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:15px 0;font-size:12px;color:#839576;gap:15px}.history-row strong{color:#4a6540;font-weight:500}.finish{padding:55px 30px;text-align:center}.finish h2{font-size:26px;font-weight:500}.finish p{font-size:12px;color:#8a9b78;line-height:2}.finish-icon{width:66px;height:66px;border-radius:50%;display:grid;place-items:center;background:#e9f0e0;font-size:28px;color:#6d9155;margin:auto}.finish .metric-strip{margin:30px 0}.finish-actions{display:flex;justify-content:center;gap:12px}dialog{border:1px solid var(--line);border-radius:14px;padding:35px;max-width:540px;color:var(--ink);line-height:1.9;background:#fcfdf9}dialog::backdrop{background:#172d2359;backdrop-filter:blur(3px)}dialog h2{font-weight:500}dialog p,dialog li{font-size:12px;color:#7f8d74}dialog li{margin:10px 0}.dialog-close{position:absolute;right:15px;top:9px;font-size:25px;color:#839778}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#294c37;color:white;padding:12px 21px;border-radius:8px;font-size:12px;z-index:20;display:none;box-shadow:0 4px 25px #294c3730}.status-chip{font-size:10px;color:#859770;background:#edf2e5;padding:4px 8px;border-radius:4px}.warning-text{color:var(--red)}.paused-cover{position:absolute;inset:0;background:#ffffffed;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:2;gap:16px}.paused-cover strong{font-size:23px;font-weight:500}
@media(min-width:1450px){main{padding-top:50px}.word-zone{padding-top:45px;padding-bottom:35px;min-height:320px}}@media(max-width:1150px){.sidebar{width:190px;padding:25px 15px}.workspace{margin-left:190px}main{padding:30px 28px}header{padding:0 28px}.training-layout{grid-template-columns:minmax(0,1fr) 215px;gap:15px}.side-panel,.review-panel{padding:17px}.mode-bar button{padding:8px 10px}.train-toolbar{padding:15px}.tag{display:none}footer{padding:20px 28px}.intro-side{display:none}}@media(max-width:900px){.training-layout{grid-template-columns:1fr}.right-column{grid-template-columns:1fr 1fr}.tip-panel{display:none}.grid-three{gap:12px}.level-card{padding:20px}.shortcuts{gap:10px}}@media(max-width:650px){.sidebar{position:static;width:100%;padding:15px 18px;border-right:0;border-bottom:1px solid var(--line);height:auto}.brand{font-size:20px}.brand-mark{width:36px;height:36px;font-size:28px}.brand small{font-size:8px}.course-label,.side-note,.settings-link,nav i{display:none}nav{display:flex;margin-top:17px;gap:4px;overflow:auto}nav button{font-size:11px;padding:9px 10px;white-space:nowrap;gap:5px}nav button>span{font-size:14px;width:auto}nav b{font-size:8px}.workspace{margin-left:0}header{height:53px;padding:0 20px;font-size:10px}.header-right{gap:12px}main{padding:26px 17px;min-height:70vh}.intro{margin-bottom:21px}.intro h1{font-size:24px}.intro p{font-size:11px}.word-zone{padding:29px 16px 15px;min-height:270px}.word{font-size:40px}.typing-wrap{margin:0 17px}.train-actions{gap:11px;margin:8px 12px 20px}.primary{padding:12px 15px}.mode-bar{margin:16px 17px 0;max-width:100%;gap:3px}.mode-bar button{font-size:10px;padding:8px 10px}.train-toolbar{padding:13px 14px}.select-wrap{gap:4px}.select-wrap select{font-size:11px;max-width:170px}.shortcuts{flex-wrap:wrap;font-size:9px;gap:8px}.metric strong{font-size:22px}.metric small{font-size:9px}.right-column{gap:12px}.side-panel,.review-panel{padding:16px}.panel-head{font-size:11px}.goal-number{font-size:30px}.practice-note{font-size:10px}footer{padding:0 17px 20px;flex-direction:column;gap:10px}.grid-three{grid-template-columns:1fr}.search{width:100%;min-width:0}.word-table th,.word-table td{padding:12px}.settings-panel{padding:18px}.setting-row{gap:14px}.setting-row select{max-width:130px}.chart{gap:7px}.timeline{padding:20px}.finish{padding:35px 15px}.finish h2{font-size:23px}.finish-actions{flex-wrap:wrap}.example{margin:12px 17px 0}.history-row{font-size:10px}}

/* The training view uses the whole viewport; collection pages keep the sidebar. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
body.training-focus{background:#f9faf7}
.training-focus>.sidebar,.training-focus .workspace>header,.training-focus .workspace>footer{display:none}
.training-focus .workspace{margin:0}
.training-focus #main{max-width:none;padding:0;min-height:100dvh}
.focus-screen{min-height:100dvh;display:grid;grid-template-rows:auto 1fr auto}
.focus-toolbar{min-height:68px;border-bottom:1px solid var(--line);padding:12px 28px;display:flex;justify-content:space-between;align-items:center;gap:20px;background:#f6f8f2}
.focus-toolbar-left,.focus-toolbar-right{display:flex;align-items:center;gap:16px}
.focus-back{font-size:13px;color:#74816c;white-space:nowrap;padding:8px 0}
.focus-brand{font-size:19px;font-weight:600;border-left:1px solid var(--line);padding-left:20px;white-space:nowrap}
.focus-brand small{font-size:12px;color:#8b9780;font-weight:400}
.focus-toolbar select{font-size:12px;padding:7px 10px;background:#f9faf6}
.focus-toolbar .mode-bar{margin:0;max-width:none;background:#eaf0e3}
.focus-toolbar .mode-bar button{font-size:11px;padding:7px 12px}
.focus-toolbar-right{gap:8px}
.focus-tool{padding:8px 10px;font-size:13px;color:#7f8d72;border-radius:5px;white-space:nowrap}
.focus-tool:hover:not(:disabled){background:#e9efdf}
.focus-tool span{font:11px var(--mono);margin-left:4px}
.focus-stage{display:flex;align-items:center;justify-content:center;min-height:480px;padding:60px 24px;position:relative}
.focus-content{width:min(1200px,100%);text-align:center;transform:translateY(24px)}
.training-focus .word-zone{padding:0;min-height:0;display:flex;flex-direction:column;align-items:center;position:relative}
.training-focus .word-zone:has(+.direct-input:not(:disabled)){cursor:text}
.direct-input{position:absolute;top:50%;left:50%;width:1px;height:1px;padding:0;border:0;opacity:0;font-size:16px;caret-color:transparent;pointer-events:none}
.training-focus .phonetic{order:0;font-size:20px;margin:0 0 17px;color:#9aa28e;min-height:24px;line-height:1.5}
.training-focus .word{order:1;font-size:min(108px,6vw,var(--fit-size));font-weight:400;letter-spacing:0;margin:0 0 32px;line-height:1.35;max-width:100%;color:#a4ad99;white-space:nowrap}
.training-focus .word-letter{display:inline-block;min-width:.68em;margin:0 .05em;padding:0 0 .035em;border-bottom:2px solid #a6af9c;line-height:1.05}
.training-focus .word-letter.letter-current{color:#283c2b;border-color:#283c2b;border-bottom-width:3px}
.training-focus .word-letter.letter-correct{color:#4e7850;border-color:#84a777}
.training-focus .word-letter.letter-wrong{color:var(--red);border-color:var(--red)}
.training-focus .meaning{order:2;font-size:20px;line-height:1.8;color:#69765f;min-height:36px}
.training-focus .listening-placeholder{font-size:.8em;letter-spacing:12px;color:#a6b298}
.training-focus .spelling-placeholder{letter-spacing:.14em;color:#a6b298}
.training-focus .typing-wrap{width:min(420px,100%);margin:29px auto 0}
.training-focus .typing-input{background:transparent;border:0;border-bottom:1px solid #d8e1d0;border-radius:0;padding:9px 40px;font-size:22px;letter-spacing:3px;box-shadow:none;color:#52734b}
.training-focus .typing-input:focus{border-color:#97ad80;box-shadow:none}
.training-focus .typing-input:disabled{border-color:transparent}
.training-focus .typing-input::placeholder{font-size:11px;color:#a2ad96;letter-spacing:1px}
.training-focus .enter-badge{top:13px;right:8px;background:transparent;color:#9aa68a}
.training-focus .typing-input:disabled+.enter-badge{display:none}
.training-focus .feedback{height:30px;font-size:11px;padding-top:12px;color:#9aa78b;margin-top:25px}
.training-focus .feedback.error{color:var(--red)}
.training-focus .train-actions{margin:15px 0 0;gap:25px;min-height:42px}
.training-focus .train-actions .text-button{font-size:12px;color:#95a284}
.training-focus .primary{padding:12px 26px}
.training-focus .example{max-width:600px;margin:12px auto 0;border:0;padding:8px;font-size:14px}
.training-focus .paused-cover{background:#f9faf7f5;border-radius:8px;inset:-20px 0}
.focus-bottom{border-top:1px solid var(--line);min-height:64px;padding:14px 28px;display:flex;align-items:center;justify-content:space-between;gap:24px;background:#f6f8f2}
.focus-bottom .shortcuts{border:0;padding:0;background:none;gap:20px;font-size:11px}
.focus-bottom kbd{font-size:11px;padding:3px 7px;background:#f0f3e9}
.focus-status{display:flex;gap:25px;font-size:11px;color:#9ca58f;white-space:nowrap}
.focus-status b{font:500 13px var(--mono);color:#41543a;margin-left:4px}
.focus-today{margin-right:12px}
.training-focus .finish{width:min(760px,100%);padding:25px}
.training-focus .finish .metric-strip{background:transparent;border:0}
@media(max-width:1150px){.focus-toolbar{flex-wrap:wrap;gap:10px;padding:12px 22px}.focus-toolbar-left{gap:12px;flex-wrap:wrap}.focus-toolbar-right{margin-left:auto}.focus-toolbar .mode-bar button{padding:7px 10px}.focus-status{gap:16px}.focus-today{display:none}.focus-bottom{padding:14px 22px;gap:15px}.focus-bottom .shortcuts{gap:12px}}
@media(max-width:760px){.focus-toolbar{padding:12px 17px;gap:8px}.focus-toolbar-left{width:100%;gap:10px}.focus-brand{padding-left:12px;font-size:17px}.focus-brand small{font-size:10px}.focus-toolbar .mode-bar{order:3;margin-top:4px}.focus-toolbar select{margin-left:auto;font-size:11px;max-width:155px}.focus-toolbar-right{position:absolute;top:65px;right:14px;gap:2px}.focus-tool{padding:7px 6px;font-size:12px}.focus-tool[data-action=review],.focus-tool[data-action=help]{display:none}.focus-stage{padding:36px 17px;min-height:410px}.focus-content{transform:none}.training-focus .word{font-size:min(68px,15vw,var(--fit-size));margin-bottom:26px}.training-focus .phonetic{font-size:16px;margin-bottom:18px}.training-focus .meaning{font-size:17px}.training-focus .typing-wrap{margin-top:22px;width:min(350px,100%)}.training-focus .typing-input{font-size:20px}.training-focus .train-actions{gap:14px;flex-wrap:wrap}.training-focus .train-actions .text-button{font-size:11px}.focus-bottom{flex-direction:column;gap:12px;padding:12px 15px}.focus-status{justify-content:center;gap:20px;font-size:10px}.focus-status b{font-size:12px}.focus-bottom .shortcuts{gap:13px;font-size:10px}.focus-bottom kbd{font-size:9px}.training-focus .finish{padding:20px 0}.training-focus .finish h2{font-size:24px}}
@media(max-height:650px) and (min-width:761px){.focus-stage{min-height:360px;padding:24px}.focus-content{transform:none}.training-focus .word{font-size:min(78px,6vw,var(--fit-size));margin-bottom:20px}.training-focus .typing-wrap{margin-top:16px}.training-focus .phonetic{margin-bottom:10px}}
.collection-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-bottom:28px}
.collection-card{padding:26px;display:flex;flex-direction:column;align-items:flex-start}
.collection-card h2{font-size:19px;margin:16px 0 12px}.collection-count{font:36px var(--mono);color:#426243}.collection-count small{font:12px var(--sans);margin-left:8px;color:#92a082}
.collection-card p{font-size:12px;line-height:1.9;color:#879477;min-height:47px}.collection-card>div:last-child{display:flex;align-items:center;gap:12px;margin-top:20px;flex-wrap:wrap}.collection-card .primary{font-size:12px;padding:10px 16px}
.library-toolbar{flex-wrap:wrap;gap:15px}.library-toolbar .filter-group{flex-wrap:wrap}.result-summary{display:flex;justify-content:space-between;align-items:center;margin:0 0 14px;font-size:12px;color:#8a987b}
.word-table .entry-meaning{white-space:normal;min-width:160px;max-width:380px;line-height:1.8;font-size:12px;overflow-wrap:anywhere}.entry-ipa{display:block;color:#9aa58f;font-size:11px;margin-top:5px}.entry-alias{display:block;white-space:normal;max-width:220px;font-size:10px;color:#a0aa96;margin-top:6px}
.entry-frequency strong{font-size:12px;font-weight:500;color:#6c8559}.entry-frequency small{display:block;font-size:10px;margin-top:6px;color:#9aa58f}.entry-frequency details{font-size:10px;margin-top:7px;max-width:170px;white-space:normal;line-height:1.8}.entry-frequency summary{color:#829275;cursor:pointer}.entry-frequency details span{display:block;color:#9aa58f;margin-top:6px}.load-more{display:flex;align-items:center;justify-content:center;gap:15px;padding:22px;border-top:1px solid var(--line)}
.source-note{padding:20px 24px;margin-top:24px;font-size:12px;line-height:2;color:#88957e}.source-note summary{cursor:pointer;color:#637752}.source-note summary span{font-size:10px;margin-left:14px;color:#a2ad95}.source-note p{margin:14px 0}.source-note a{color:#4a7150;text-decoration:underline;text-underline-offset:3px}
.word-frequency{display:block;font-size:11px;margin-top:8px;color:#a7b29a;letter-spacing:.03em}.training-focus .meaning{max-width:700px;text-align:center}.training-focus .word-letter:empty{width:.68em}
@media(max-width:1000px){.collection-grid{gap:12px}.collection-card{padding:20px}.collection-card h2{font-size:17px}.collection-card>div:last-child{gap:6px}}
@media(max-width:760px){.collection-grid{grid-template-columns:1fr}.collection-card p{min-height:0}.collection-card>div:last-child{margin-top:15px}.library-toolbar .filter-group{gap:6px}.library-toolbar .filter-group button{font-size:11px;padding:8px}.source-note{padding:18px}.source-note summary span{display:block;margin:4px 0 0}.result-summary{font-size:11px;gap:10px}.result-summary .text-button{font-size:10px}.word-frequency{font-size:10px}}
.recommended-collection{border-color:#aec3a0;background:#fcfdf8}.recommended-collection .eyebrow{color:#638445}
.collection-guidance{font-size:12px;line-height:2;color:#899779;margin:-8px 0 24px}.collection-guidance strong{font-weight:500;color:#5d7553}
.library-search-controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.library-search-controls select{font-size:12px;color:#75866a;border:1px solid var(--line);border-radius:6px;padding:10px;background:#fff}
.word-row-actions{display:flex;flex-direction:column;align-items:flex-start;gap:10px;white-space:nowrap}.known-action{font-size:11px;color:#8c9d7b;padding:4px 0}.known-action:hover{color:#3c623f}.manually-known{background:#edf3e5;color:#64804e}.training-focus .train-actions .known-skip{color:#638349}
@media(max-width:760px){.library-search-controls{width:100%;gap:8px}.library-search-controls select{width:100%}.library-search-controls .search{width:100%}.collection-guidance{font-size:11px;margin-top:0}.training-focus .train-actions{gap:12px}.word-row-actions{gap:8px}}

/* Shared form controls: quiet surfaces, clear affordances, generous hit areas. */
select,
.library-search-controls select,
.focus-toolbar select,
.select-wrap select {
  appearance: none;
  -webkit-appearance: none;
  min-height: 44px;
  padding: 10px 38px 10px 14px;
  border: 1px solid #dce4d9;
  border-radius: 12px;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23718469' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E") no-repeat right 13px center;
  color: var(--ink);
  font-size: 13px;
  line-height: 1.5;
  box-shadow: 0 2px 4px #25372e04;
  cursor: pointer;
  transition: border-color .18s, box-shadow .18s, background-color .18s;
}
select:hover:not(:disabled) { border-color: #a9bda2; background-color: #fcfdf9; }
select:focus-visible {
  outline: none;
  border-color: #789b6d;
  box-shadow: 0 0 0 4px #789b6d1c;
}
select:disabled { opacity: .6; cursor: default; box-shadow: none; }
select option { color: var(--ink); background: #fff; }
.library-search-controls { gap: 10px; }
.library-search-controls select { min-width: 172px; }
.search-field { position: relative; flex: 1; min-width: 260px; }
.search-icon {
  position: absolute; top: 50%; left: 14px; width: 18px; height: 18px;
  transform: translateY(-50%); color: #8b9b82; pointer-events: none;
  transition: color .18s;
}
.search-field:focus-within .search-icon { color: var(--green); }
.search-field .search {
  display: block; width: 100%; min-width: 0; height: 44px;
  border: 1px solid #dce4d9; border-radius: 12px; padding: 10px 14px 10px 42px;
  color: var(--ink); background: #fff; font-size: 13px; line-height: 1.5;
  box-shadow: 0 2px 4px #25372e04; outline: none;
  transition: border-color .18s, box-shadow .18s;
}
.search-field .search::placeholder { color: #94a08b; }
.search-field .search:hover { border-color: #a9bda2; }
.search-field .search:focus { border-color: #789b6d; box-shadow: 0 0 0 4px #789b6d1c; }
.library-toolbar .filter-group { gap: 8px; }
.library-toolbar .filter-group button {
  padding: 10px 14px; border-radius: 10px; font-size: 12px;
  border-color: #e0e6da; color: #718067; background: #f9fbf6;
  transition: border-color .18s, background-color .18s, color .18s;
}
.library-toolbar .filter-group button:hover { color: var(--green); background: #edf3e7; border-color: #c8d6be; }
.library-toolbar .filter-group button.active { color: #fff; background: var(--green); border-color: var(--green); }
.setting-row select { flex-shrink: 0; width: 176px; }
:is(.setting-row .check, .sprint-switch) {
  appearance: none; -webkit-appearance: none; position: relative;
  flex-shrink: 0; width: 46px; height: 28px; margin: 0;
  border: 1px solid #d6dfd0; border-radius: 999px; background: #e4eadf;
  cursor: pointer; transition: background-color .2s, border-color .2s, box-shadow .2s;
}
:is(.setting-row .check, .sprint-switch)::before {
  content: ''; position: absolute; width: 20px; height: 20px; left: 3px; top: 3px;
  border-radius: 50%; background: #fff; box-shadow: 0 1px 3px #25372e24;
  transition: transform .2s;
}
:is(.setting-row .check, .sprint-switch):checked { background: var(--green); border-color: var(--green); }
:is(.setting-row .check, .sprint-switch):checked::before { transform: translateX(18px); }
:is(.setting-row .check, .sprint-switch):focus-visible { outline: none; box-shadow: 0 0 0 4px #789b6d26; }
:is(.setting-row .check, .sprint-switch):hover { border-color: #789b6d; }
.focus-toolbar select { min-height: 38px; padding-top: 8px; padding-bottom: 8px; font-size: 12px; border-radius: 10px; background-color: #fff; }
@media (max-width: 760px) {
  .library-search-controls { width: 100%; gap: 10px; }
  .library-search-controls select { width: 100%; min-width: 0; }
  .search-field { width: 100%; min-width: 0; flex-basis: 100%; }
  .search-field .search { font-size: 16px; }
  .library-toolbar .filter-group { gap: 7px; }
  .library-toolbar .filter-group button { padding: 9px 11px; font-size: 11px; }
  .setting-row { gap: 12px; }
  .setting-row select { width: 142px; max-width: 142px; font-size: 12px; padding-left: 12px; }
  .focus-toolbar select { max-width: 155px; padding-left: 10px; padding-right: 30px; background-position: right 9px center; font-size: 11px; }
  .focus-toolbar-right { top: 69px; }
}
@media (prefers-reduced-motion: reduce) {
  select, .search-icon, .search-field .search, .library-toolbar .filter-group button,
  :is(.setting-row .check, .sprint-switch), :is(.setting-row .check, .sprint-switch)::before { transition: none; }
}

@media (max-width: 360px) {
  .focus-toolbar-right { position: static; margin-left: auto; }
}

/* The expanded selectors share the same surfaces as the rest of the app. */
.select-control { display: inline-flex; min-width: 0; max-width: 100%; }
.select-control select[hidden] { display: none !important; }
.select-trigger {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  width: 100%; min-height: 44px; padding: 10px 13px 10px 14px;
  border: 1px solid #dce4d9; border-radius: 12px;
  background: #fff; color: var(--ink); font-size: 13px; line-height: 1.5;
  box-shadow: 0 2px 4px #25372e04; text-align: left;
  transition: border-color .18s, box-shadow .18s, background-color .18s;
}
.select-value { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.select-trigger > svg { width: 16px; height: 16px; flex-shrink: 0; color: #718469; transition: transform .18s; }
.select-trigger:hover:not(:disabled) { border-color: #a9bda2; background: #fcfdf9; }
.select-trigger:focus-visible, .select-trigger[aria-expanded="true"] {
  outline: none; border-color: #789b6d; box-shadow: 0 0 0 4px #789b6d1c;
}
.select-trigger[aria-expanded="true"] > svg { transform: rotate(180deg); }
.select-trigger:disabled { opacity: .6; cursor: default; }
.select-menu {
  position: fixed; z-index: 1000; overflow-y: auto; overscroll-behavior: contain;
  padding: 6px; border: 1px solid #dfe7d8; border-radius: 14px;
  background: #fffffd; color: var(--ink); font-size: 13px; line-height: 1.5;
  box-shadow: 0 12px 36px #25372e16, 0 3px 8px #25372e08;
  scrollbar-width: thin; scrollbar-color: #c7d3bd transparent;
  animation: select-appear .12s ease-out;
}
.select-option {
  display: flex; align-items: center; justify-content: space-between; gap: 18px;
  min-height: 42px; padding: 10px 12px; border-radius: 8px; cursor: pointer;
  color: #66775d; -webkit-tap-highlight-color: transparent;
}
.select-option > span { overflow-wrap: anywhere; }
.select-option > svg { width: 16px; height: 16px; flex-shrink: 0; color: var(--green); visibility: hidden; }
.select-option.is-active { background: #f0f5e9; color: var(--green); }
.select-option.is-selected { background: #eaf2e2; color: var(--green); font-weight: 500; }
.select-option.is-selected.is-active { background: #e2edda; }
.select-option.is-selected > svg { visibility: visible; }
.select-option[aria-disabled="true"] { opacity: .45; cursor: default; }
.library-search-controls .select-control { min-width: 172px; }
.setting-row .select-control { width: 176px; flex-shrink: 0; }
.focus-toolbar .select-control { max-width: 260px; }
.focus-toolbar .select-trigger { min-height: 38px; padding: 8px 11px; font-size: 12px; border-radius: 10px; gap: 10px; }
@keyframes select-appear { from { opacity: 0; } to { opacity: 1; } }
@media (max-width: 760px) {
  .library-search-controls .select-control { width: 100%; min-width: 0; }
  .setting-row .select-control { width: 142px; }
  .setting-row .select-trigger { font-size: 12px; padding-left: 12px; gap: 8px; }
  .focus-toolbar .select-control { margin-left: auto; max-width: 155px; }
  .focus-toolbar .select-trigger { font-size: 11px; padding-left: 10px; gap: 8px; }
  .select-menu { border-radius: 12px; }
  .select-option { min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  .select-trigger, .select-trigger > svg { transition: none; }
  .select-menu { animation: none; }
}

/* Exam sprint: a daily plan with a calm, readable overview. */
.sprint-banner { display:flex; justify-content:space-between; align-items:center; gap:20px; margin:0 0 24px; padding:22px 25px; border:1px solid #dce7d1; border-radius:12px; background:#eef4e6; }
.sprint-banner h2 { font-size:17px; margin:7px 0; font-weight:500; }
.sprint-banner p { margin:0; color:#829174; font-size:11px; line-height:1.8; }
.sprint-banner button { flex-shrink:0; }
.sprint-enabled { background:#e3edda; color:var(--green); }
.sprint-hero { display:flex; align-items:center; justify-content:space-between; gap:26px; padding:30px 32px; background:#315b43; color:#fff; border-radius:14px; margin-bottom:24px; }
.sprint-hero .eyebrow { color:#c1d3b0; letter-spacing:1.5px; }
.sprint-hero h2 { margin:12px 0; font-size:25px; font-weight:500; line-height:1.5; }
.sprint-hero h2 b { font:38px var(--mono); color:#d7edb5; padding:0 4px; }
.sprint-hero p { margin:0 0 9px; font-size:12px; color:#d0dcc7; line-height:1.8; }
.sprint-source { font-size:11px; color:#bad0a8; line-height:1.8; }
.sprint-source:hover { color:#fff; }
.sprint-hero-action { display:flex; flex-direction:column; gap:17px; align-items:flex-end; flex-shrink:0; }
.sprint-budget { font:36px var(--mono); }
.sprint-budget small { font:11px var(--sans); margin-left:8px; color:#c1d3b0; }
.sprint-hero .primary { background:#d6e8bf; color:#294d3b; }
.sprint-hero .secondary { background:#ffffff12; border-color:#ffffff30; color:#e4ecdd; }
.sprint-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:22px; align-items:start; }
.sprint-main,.sprint-aside { min-width:0; display:grid; gap:22px; }
.sprint-today,.sprint-week,.sprint-word-panel,.sprint-config,.sprint-coverage { padding:24px; }
.sprint-section-head { display:flex; justify-content:space-between; align-items:center; gap:14px; margin-bottom:20px; }
.sprint-section-head h2,.sprint-config h2,.sprint-coverage h2 { font-size:16px; font-weight:500; margin:0; }
.sprint-section-head h2 { margin-top:6px; }
.sprint-section-head h2 span { font-size:10px; color:#8c9c7b; margin-left:9px; white-space:nowrap; }
.sprint-section-head small { font-size:10px; color:#8b9b7e; line-height:1.6; }
.sprint-estimate { color:#7d9070; font-size:11px; text-align:right; flex-shrink:0; }
.sprint-estimate small { display:block; margin-top:5px; }
.sprint-task-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.sprint-task { background:#f7f9f2; border:1px solid #e6ecde; border-radius:10px; padding:18px; }
.sprint-task>span { font-size:12px; color:#728664; }
.sprint-task strong { display:block; font:34px var(--mono); margin:10px 0; color:var(--green); }
.sprint-task strong small { font-size:16px; color:#a8b39b; }
.sprint-task p { font-size:10px; color:#8d9c7d; line-height:1.7; min-height:17px; margin:8px 0 14px; }
.sprint-task .secondary { padding:8px 12px; font-size:11px; background:#fff; }
.sprint-progress { display:flex; align-items:center; gap:15px; margin:20px 0 15px; }
.sprint-progress .progress-track { flex:1; margin:0; height:5px; }
.sprint-progress>span { font-size:10px; color:#8b9a7d; white-space:nowrap; }
.sprint-today-footer { display:flex; justify-content:space-between; align-items:center; gap:16px; }
.sprint-today-footer p { margin:0; font-size:11px; line-height:1.8; color:#8b987f; }
.sprint-today-footer button { flex-shrink:0; }
.sprint-week-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px; }
.sprint-day { text-align:center; padding:12px 2px; border-radius:9px; border:1px solid #e7ecdf; background:#fbfcf8; }
.sprint-day>span { font-size:10px; color:#8b9b7c; }
.sprint-day>strong { display:block; font:20px var(--mono); margin-top:13px; color:#496747; }
.sprint-day strong small { display:block; font:9px var(--sans); color:#99a88b; margin-top:4px; }
.sprint-day p { font-size:10px; color:#819272; margin:10px 0; }
.sprint-day>small { font-size:9px; color:#9aaa8a; }
.sprint-day-current { background:#edf4e3; border-color:#c6d9b4; }
.sprint-footnote { font-size:10px; color:#95a287; line-height:1.9; margin:15px 0 0; }
.sprint-config h2,.sprint-coverage h2 { margin:8px 0 21px; line-height:1.7; }
.sprint-config-row { display:block; margin:0 0 17px; }
.sprint-config-row>span { display:block; font-size:11px; color:#87987b; margin-bottom:9px; }
.sprint-config .select-control { width:100%; }
.sprint-config .select-trigger { font-size:12px; }
.sprint-config input[type=date] { width:100%; border:1px solid #dce4d9; background:#fff; color:var(--ink); padding:10px 13px; min-height:44px; border-radius:12px; font-size:13px; color-scheme:light; outline:none; }
.sprint-config input[type=date]:focus { border-color:#789b6d; box-shadow:0 0 0 4px #789b6d1c; }
.sprint-toggle-row { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:15px 0 0; border-top:1px solid var(--line); }
.sprint-toggle-row h3 { font-size:12px; margin:0 0 5px; font-weight:500; }
.sprint-toggle-row p { font-size:10px; color:#92a083; margin:0; line-height:1.7; }
.sprint-coverage-count { font:31px var(--mono); color:#4c7048; }
.sprint-coverage-count small { font-size:16px; color:#a9b79b; }
.sprint-coverage>p { font-size:11px; color:#8a9b79; line-height:1.9; }
.sprint-coverage-note { background:#f1f6ea; padding:14px; font-size:12px; color:#728966; line-height:1.9; border-radius:9px; }
.sprint-coverage-note strong { color:var(--green); }
.sprint-backlog { padding:11px; background:#faf4e7; border-radius:8px; color:#9c8251!important; }
.sprint-rules { padding:3px 10px; }
.sprint-rules h3 { font-size:14px; font-weight:500; margin:9px 0; }
.sprint-rules p { font-size:11px; line-height:2.1; color:#8a9b78; }
.sprint-word-list { border-top:1px solid var(--line); }
.sprint-word-list>summary { display:flex; justify-content:space-between; align-items:center; padding:17px 0; font-size:12px; cursor:pointer; list-style:none; }
.sprint-word-list>summary::-webkit-details-marker { display:none; }
.sprint-word-list>summary span { font-size:10px; color:#9aaa8b; }
.sprint-word { display:grid; grid-template-columns:minmax(120px,.7fr) minmax(0,1fr) 90px; gap:14px; padding:15px 0; border-top:1px solid #eff2e9; align-items:start; }
.sprint-word strong { display:block; font:13px var(--mono); color:#4f6d46; margin-bottom:7px; overflow-wrap:anywhere; }
.sprint-band { font-size:9px; padding:3px 5px; background:#edf3e5; color:#8b9e77; border-radius:4px; }
.sprint-band.band-1 { background:#edf1f6; color:#8694a5; }
.sprint-band.band-2 { background:#f4eee2; color:#ae9870; }
.sprint-word small { display:block; font-size:9px; color:#a4af96; line-height:1.7; margin-top:7px; }
.sprint-word p { margin:0; font-size:11px; line-height:1.9; color:#819275; overflow-wrap:anywhere; }
.sprint-word-actions { display:flex; flex-wrap:wrap; align-items:center; gap:7px; justify-content:flex-end; }
.sprint-word-actions .status-chip { font-size:9px; }
.sprint-word-actions .known-action { font-size:10px; }
.sprint-word-done { background:#fafbf7; }
.sprint-empty { color:#9ba88f; font-size:11px; line-height:1.9; padding:10px 0; }
@media(max-width:1100px) {
  .sprint-layout { grid-template-columns:minmax(0,1fr); }
  .sprint-aside { grid-template-columns:1fr 1fr; }
  .sprint-rules { grid-column:1/-1; }
}
@media(max-width:650px) {
  .sprint-banner { padding:18px; gap:15px; flex-wrap:wrap; }
  .sprint-banner h2 { font-size:15px; }
  .sprint-hero { padding:23px 20px; flex-wrap:wrap; gap:20px; }
  .sprint-hero h2 { font-size:20px; }
  .sprint-hero h2 b { font-size:32px; }
  .sprint-hero-action { flex-direction:row; align-items:center; justify-content:space-between; width:100%; }
  .sprint-budget { font-size:27px; }
  .sprint-budget small { font-size:10px; }
  .sprint-today,.sprint-week,.sprint-word-panel,.sprint-config,.sprint-coverage { padding:18px; }
  .sprint-section-head { gap:8px; align-items:start; }
  .sprint-section-head h2 { font-size:14px; }
  .sprint-section-head h2 span { display:block; margin:7px 0 0; }
  .sprint-estimate { font-size:10px; }
  .sprint-task { padding:13px; }
  .sprint-task p { min-height:34px; }
  .sprint-task strong { font-size:28px; }
  .sprint-today-footer { flex-wrap:wrap; }
  .sprint-today-footer button { width:100%; }
  .sprint-week-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; }
  .sprint-aside { grid-template-columns:1fr; }
  .sprint-word { grid-template-columns:minmax(0,1fr) 85px; gap:9px; }
  .sprint-word>div:first-child { grid-column:1; }
  .sprint-word p { grid-column:1; }
  .sprint-word-actions { grid-column:2; grid-row:1/3; }
  .sprint-config input[type=date] { font-size:16px; }
}

/* The training page uses the same daily tasks as the sprint dashboard. */
.sprint-training-screen{grid-template-rows:auto auto 1fr auto}
.sprint-training-strip{padding:18px 28px 0;width:min(780px,100%);justify-self:center;box-sizing:border-box;color:#7b8b71;font-size:12px}
.sprint-training-overview{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.sprint-training-overview strong{font-weight:600;color:#4c6446}.sprint-training-overview strong span{font-family:var(--mono);margin-left:8px}
.sprint-training-budget{margin-left:auto;color:#98a28e}
.sprint-training-track{height:4px;background:#e8edde;border-radius:5px;overflow:hidden;margin:12px 0 9px}.sprint-training-track span{display:block;height:100%;background:#8ca777;transition:width .2s}
.sprint-training-caption{font-size:11px;color:#98a28e}
.training-source-switch{border:1px solid #dce5d3;background:#fff}
@media(max-width:760px){.sprint-training-screen .focus-toolbar-right{position:static;width:100%;justify-content:flex-end;margin:0}.sprint-training-screen .focus-toolbar-left{flex-wrap:wrap}.sprint-training-screen .focus-toolbar .select-control{width:100%;max-width:100%;margin:0;order:2}.sprint-training-screen .mode-bar{order:3}.sprint-training-strip{padding:14px 17px 0}.sprint-training-overview{gap:8px 18px;font-size:11px}.sprint-training-budget{margin-left:0}.sprint-training-overview strong{width:100%}.sprint-training-caption{line-height:1.6}.sprint-training-screen .focus-stage{min-height:360px}.sprint-training-screen .feedback{height:auto;line-height:1.6}.training-focus .finish-actions{flex-wrap:wrap}}
/* Account and durable server-save status. */
/* Account controls share the existing page and training headers. */
.sidebar{padding-top:17px}.settings-link{border-top:1px solid var(--line);padding-top:18px}
#cloud-bar{position:relative;display:flex;align-items:center;flex-shrink:0;font-size:12px;color:#69776a;z-index:200}
.cloud-tools{display:flex;align-items:center}.cloud-sync-group{position:absolute;top:calc(100% + 10px);right:0;display:grid;gap:10px;width:min(360px,calc(100vw - 32px));padding:14px 16px;border:1px solid #e8d9bc;border-radius:12px;background:#fffcf5;box-shadow:0 12px 35px #29422e12;color:#95682f}
.cloud-sync-group.is-quiet{width:1px;height:1px;padding:0;border:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;pointer-events:none;box-shadow:none}
.cloud-status{min-width:0}.cloud-status-label{font-size:12px;line-height:1.7;font-weight:500}.cloud-status-note{font-size:11px;color:#a49275;line-height:1.6}
#cloud-bar .cloud-sync-action{justify-self:start;padding:7px 11px;border:1px solid #e3d5b9;background:#fffaf0;border-radius:7px;font-size:11px;color:#8b652f;line-height:1.6;max-width:100%}#cloud-bar .cloud-sync-action:hover{background:#f5ebd6}#cloud-bar [hidden]{display:none}
.focus-brand{display:inline-flex;align-items:center;gap:10px}.focus-brand>.brand-mark{width:30px;height:30px;border-radius:9px;font-size:25px;padding-bottom:4px;letter-spacing:-2px;flex-shrink:0}
.cloud-enabled .focus-toolbar{flex-wrap:wrap}.cloud-enabled .focus-toolbar-right{position:static;flex-wrap:wrap;justify-content:flex-end;max-width:100%;margin-left:auto}.focus-toolbar-right #cloud-bar{margin-left:8px;padding-left:14px;border-left:1px solid var(--line)}
.cloud-account{position:relative;flex-shrink:0}.cloud-account summary{list-style:none;display:flex;align-items:center;gap:9px;padding:4px 8px 4px 5px;border:1px solid #e1e7dc;border-radius:100px;cursor:pointer;background:#fff;user-select:none;min-height:36px}.cloud-account summary::-webkit-details-marker{display:none}.cloud-account summary:hover,.cloud-account[open] summary{background:#f0f4eb;border-color:#cbd8c1}.cloud-account summary:focus-visible{outline:3px solid #8ba879;outline-offset:3px}.cloud-account-avatar{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#e8efdf;color:#5b7353;font:11px var(--mono)}.cloud-account-name{font-size:12px;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cloud-account summary svg{width:15px;height:15px;color:#8e9b87;transition:transform .15s}.cloud-account[open] summary>svg{transform:rotate(180deg)}
.cloud-account-panel{position:absolute;top:calc(100% + 10px);right:0;width:216px;padding:7px;background:#fff;border:1px solid #e0e7d9;border-radius:12px;box-shadow:0 12px 35px #29422e16;color:#52674b}.cloud-account-heading{padding:10px 11px 14px;display:grid;gap:5px;border-bottom:1px solid #edf0e8;margin-bottom:5px}.cloud-account-heading strong{font-size:13px;font-weight:500;overflow-wrap:anywhere}.cloud-account-heading span{font-size:10px;color:#96a18d}.cloud-account-panel button{width:100%;display:flex;align-items:center;gap:10px;text-align:left;padding:10px 11px;border-radius:7px;font-size:12px}.cloud-account-panel button:hover{background:#f2f6ed}.cloud-account-panel svg{width:16px;height:16px;color:#8b9a7e}.cloud-account-divider{height:1px;background:#edf0e8;margin:5px 4px}.cloud-account-panel [data-cloud="logout"]{color:#987263}.cloud-account-panel [data-cloud="logout"]:hover{background:#fcf4ef}
@media(prefers-reduced-motion:reduce){.cloud-account summary svg{transition:none}}
.cloud-auth .sidebar,.cloud-auth .workspace,.cloud-auth #cloud-bar{display:none}.cloud-auth{padding:0;background:#f5f7f0}#auth-gate{min-height:100dvh;display:flex;justify-content:center;align-items:center;padding:32px 20px;box-sizing:border-box}.auth-card{width:min(440px,100%);box-sizing:border-box;background:#fff;border:1px solid #e0e7d9;border-radius:20px;padding:38px;box-shadow:0 20px 60px #324b2c0a}.auth-brand{display:block;font-size:26px;font-weight:600;color:#294d3b;margin-bottom:42px}.auth-brand small{font-size:10px;margin-left:10px;letter-spacing:2px;color:#90a082}.auth-card h1{font-size:25px;line-height:1.4;margin:14px 0}.auth-card>p{font-size:13px;line-height:1.9;color:#8b987e;margin-bottom:24px}.auth-card label{display:block;font-size:12px;color:#66765c;margin:18px 0}.auth-card input{display:block;width:100%;box-sizing:border-box;margin-top:9px;min-height:46px;border:1px solid #dce5d4;border-radius:10px;background:#fafff5;padding:10px 13px;font-size:15px;color:#294d3b}.auth-card input:focus{outline:0;border-color:#88a479;box-shadow:0 0 0 3px #9ab58520}.auth-card .primary{width:100%;margin-top:8px}.auth-card .text-button{display:block;margin:18px auto 0}.auth-card>small{display:block;font-size:11px;color:#9eaa92;margin-top:22px;line-height:1.7}.auth-error{min-height:20px;color:#a65a4c;font-size:12px;line-height:1.7;margin:8px 0}
@media(max-width:900px){.cloud-enabled .header-right #streak-label{display:none}}
@media(max-width:760px){.auth-card{padding:28px}.focus-brand{gap:7px}.focus-brand>.brand-mark{width:26px;height:26px;font-size:22px}.cloud-enabled .focus-toolbar-right{gap:3px}.focus-toolbar-right #cloud-bar{margin-left:4px;padding-left:9px}}
@media(max-width:650px){.sidebar{padding-top:15px}.cloud-enabled .workspace>header{height:62px}.cloud-account-name{max-width:64px}.cloud-account summary{gap:6px}.cloud-account-panel{width:208px}.cloud-enabled .focus-toolbar-right{width:100%;justify-content:flex-end}.cloud-sync-group{width:min(320px,calc(100vw - 34px))}}
