:root{--bg:#f7f8f4;--paper:#fff;--green:#294e42;--green2:#426b5b;--ink:#253e35;--muted:#748078;--line:#e4e9e1;--pale:#eaf0e6;--orange:#bc6a41;--yellow:#f5e9ce;--serif:Georgia,'Times New Roman',serif;--sans:-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC','Microsoft YaHei',sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.65 var(--sans)}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}a{color:var(--green2);text-decoration:none}a:hover{text-decoration:underline}button{color:inherit}svg{width:20px;height:20px;flex-shrink:0;vertical-align:middle}button svg{width:17px;height:17px}h1,h2,h3,p{margin-top:0}h1{font-size:29px;line-height:1.45;letter-spacing:-.9px;font-weight:650;margin-bottom:5px}h2{font-size:20px;font-weight:630}h3{font-size:16px}.shell{display:flex;min-height:100vh}.sidebar{width:220px;background:#f0f3eb;border-right:1px solid #dfe5d8;position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;padding:30px 20px 20px;z-index:5}.brand{display:flex;align-items:center;gap:11px;padding:0 12px 30px}.brand-mark{background:var(--green);color:#f3e8ca;width:39px;height:41px;border-radius:12px;display:grid;place-items:center;transform:rotate(-4deg)}.brand-mark svg{width:27px;height:27px}.brand-title{font-size:22px;font-weight:650;line-height:1.2;letter-spacing:2px}.brand-en{font-family:var(--serif);letter-spacing:1.5px;color:var(--muted);font-size:10px;margin-top:4px}.nav{display:grid;gap:7px}.nav button{border:0;background:none;text-align:left;border-radius:8px;padding:12px 13px;display:flex;align-items:center;gap:12px;color:#657368;font-size:14px}.nav button.active{background:var(--green);color:white}.nav .count{margin-left:auto;border-radius:5px;background:#ffffff20;font-size:11px;min-width:24px;text-align:center}.side-label{font-size:10px;letter-spacing:1.4px;color:#8c968c;text-transform:uppercase;margin:32px 12px 12px}.side-tip{font-size:12px;line-height:1.9;color:#71806f;margin:0 12px}.side-tip .serif{font:italic 17px/1.5 var(--serif);color:#526b55;margin-bottom:8px}.sidebar-foot{margin-top:auto;padding:24px 12px 0}.local-status{display:flex;align-items:center;gap:7px;color:#668066;font-size:11px}.dot{width:6px;height:6px;background:#739c64;border-radius:50%;display:inline-block}.sidebar-foot small{color:#9aa197;font-size:10px}.main{width:calc(100% - 220px);margin-left:220px}.topbar{height:72px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 40px;background:#fafbf7}.breadcrumb{font-size:12px;color:#929a91;display:flex;align-items:center;gap:12px}.breadcrumb strong{color:#627361;font-weight:500}.top-right{display:flex;align-items:center;gap:12px}.mode-badge{border:1px solid #e0e7db;border-radius:20px;padding:3px 10px;color:#7c8973;font-size:10px}.avatar{width:29px;height:29px;background:#e6e8dd;border-radius:50%;display:grid;place-items:center;font-family:var(--serif);color:#78836b}.workspace{max-width:1500px;margin:auto;padding:32px 40px 56px}.page-intro{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.eyebrow{font-size:10px;letter-spacing:2px;color:#9a9f8c;margin:0 0 6px}.subtitle{font-size:12px;color:var(--muted);margin:0}.intro-actions{display:flex;gap:9px;flex-shrink:0}.btn{border:1px solid var(--line);background:white;border-radius:7px;padding:9px 15px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:12px;line-height:1.65;text-decoration:none;white-space:nowrap}.btn:hover{background:#f2f5ee;text-decoration:none}.btn.primary{background:var(--green);border-color:var(--green);color:white}.btn.primary:hover{background:#365f50}.btn.soft{background:#edf2e8;border-color:#e0e8d9;color:#54734c}.btn.small{padding:5px 10px;font-size:11px}.btn.danger{color:#b35343;background:#fff7f3;border-color:#eedbd4}.btn.link{background:transparent;border-color:transparent;padding:5px;color:#6e806c}.btn.wide{width:100%}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:25px}.stat{background:#fff;border:1px solid var(--line);border-radius:10px;padding:17px 20px;display:flex;justify-content:space-between;align-items:center}.stat-title{font-size:11px;color:#83907e;margin-bottom:3px}.stat-number{font-size:27px;line-height:1.3;font-family:var(--serif);color:#345941}.stat-number small{font:10px var(--sans);color:#99a08e;margin-left:6px}.stat-icon{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:#f0f4e9;color:#6e8659}.stat:nth-child(2) .stat-icon{background:#f8efe0;color:#b28c50}.stat:nth-child(3) .stat-icon{background:#f1f2ed;color:#8b927e}.library-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:17px}.search{position:relative;max-width:420px;flex:1}.search svg{position:absolute;left:12px;top:11px;width:16px;height:16px;color:#9aa48f}.search input{width:100%;padding:10px 13px 10px 38px;border:1px solid var(--line);background:white;border-radius:7px;font-size:12px}.search input:focus,input:focus,textarea:focus,select:focus{border-color:#87a480;outline:2px solid #c5d6ba50}.toolbar-spacer{flex:1}.select{border:1px solid var(--line);background:white;border-radius:6px;padding:8px 10px;color:#6c7c64;font-size:11px;max-width:210px}.category-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:21px}.chip{border:1px solid transparent;background:transparent;border-radius:5px;padding:5px 12px;font-size:11px;color:#7d8973}.chip.active{background:#e7eedf;border-color:#dde6d4;color:#45613d;font-weight:600}.chip .tiny-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#96ac7c;margin-right:6px;vertical-align:middle}.chip.add{border:1px dashed #d0dac6;color:#8d9a7e;padding:4px 9px}.library-caption{font-size:10px;color:#9aA38f;display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.word-card{border:1px solid var(--line);background:white;border-radius:11px;padding:20px 21px 0;min-height:250px;display:flex;flex-direction:column;transition:box-shadow .15s,transform .15s}.word-card:hover{box-shadow:0 6px 20px #2e4c3309;transform:translateY(-2px)}.card-head{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:14px}.tag{font-size:9px;background:#edf2e7;color:#71855d;border-radius:4px;padding:2px 7px;white-space:nowrap}.tag.orange{background:#faf0e4;color:#aa8755}.tag.blue{background:#eaf0ef;color:#6c8a83}.type{font-size:9px;color:#a2aa98}.card-title{font:500 27px/1.25 var(--serif);letter-spacing:-.3px;color:#294c3d;margin:0 0 8px;overflow-wrap:anywhere}.card-title.long{font-size:19px;line-height:1.5}.word-card .meaning{font-size:12px;color:#63715b;margin-bottom:7px;min-height:19px}.definition{font:11px/1.5 var(--sans);color:#9aA08e;min-height:32px;margin:0 0 15px}.card-example{border-left:2px solid #dfE6d5;padding-left:10px;font:12px/1.7 var(--serif);color:#5d7057;margin:1px 0 16px}.card-example .zh{font:10px/1.7 var(--sans);color:#a0a88f;margin-top:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.word-card .card-example .en{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.no-example{font-size:11px;color:#b1b7a6;margin-bottom:20px}.card-foot{border-top:1px solid #eef0e9;padding:9px 0;margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:6px}.source-mini{font-size:9px;color:#a0aa95}.icon-btn{border:0;background:transparent;color:#8b9b7f;display:inline-grid;place-items:center;width:26px;height:26px;border-radius:5px}.icon-btn:hover{background:#edf2e7}.icon-btn svg{width:15px;height:15px}.foot-note{font-size:10px;color:#9ca58f;margin-top:25px;display:flex;align-items:center;gap:7px}.foot-note svg{width:13px;height:13px}.panel{background:white;border:1px solid var(--line);border-radius:11px;padding:25px;margin-bottom:20px}.panel h2{margin-bottom:6px}.muted{color:var(--muted)}.small-text{font-size:12px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.field{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#667a5e}.field.full{grid-column:1/-1}.field input,.field textarea,.field select{width:100%;border:1px solid var(--line);border-radius:6px;padding:9px 11px;background:#fff;color:var(--ink);font-size:13px}.field textarea{resize:vertical;min-height:75px}.field small{font-size:10px;color:#98a18c}.field .prompt{font:12px/1.8 var(--sans);min-height:230px;background:#fafbf7}.field .category-input{display:flex;flex-wrap:wrap;gap:6px}.field label.check{display:flex;align-items:center;gap:6px;padding:4px 8px;border:1px solid var(--line);border-radius:4px;font-size:11px}.field input[type=checkbox],input[type=checkbox]{width:auto;accent-color:var(--green)}.rule-list{font-size:12px;padding-left:19px;color:#819075;line-height:2.1}.upload-zone{border:1px dashed #cbd7bf;background:#f8faf3;border-radius:9px;padding:28px 18px;text-align:center;margin:22px 0 15px}.upload-zone svg{width:30px;height:30px;color:#819b6c;display:block;margin:auto auto 12px}.upload-zone p{font-size:12px;color:#7f8c70}.format-table{width:100%;border-collapse:collapse;margin:18px 0;font-size:11px}.format-table th,.format-table td{border:1px solid var(--line);padding:8px;text-align:left;font-weight:400}.format-table th{background:#edf2e7;color:#547048}.format-table td{color:#8b957e}.section-row{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:20px}.section-row h2{margin:0}.subtle{background:#f5f7f0;border-radius:7px;padding:13px 15px;color:#89967c;font-size:11px;line-height:1.8}.notice{border-left:3px solid #b6c79e;background:#f0f4e8;padding:11px 15px;color:#728564;font-size:12px;margin:16px 0}.notice.warning{border-color:#cfaa70;background:#fcf5e8;color:#9b7a44}.switch-row{display:flex;align-items:center;gap:8px;font-size:12px;color:#7d8b71;margin:18px 0}.settings-actions{display:flex;align-items:center;gap:9px;margin-top:20px}.status{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:#8a957f}.empty{padding:62px 20px;text-align:center;color:#8c9c7f;grid-column:1/-1}.empty svg{width:42px;height:42px;color:#a9b797;margin-bottom:15px}.empty h2{color:#607952;font-size:19px;margin-bottom:7px}.empty p{font-size:12px}.empty .btn{margin-top:12px}.modal-backdrop{position:fixed;inset:0;background:#1d322967;backdrop-filter:blur(3px);z-index:20;display:flex;justify-content:center;align-items:center;padding:24px}.modal{background:#fff;border:1px solid #e6ebdf;border-radius:13px;width:720px;max-width:100%;max-height:92vh;overflow:auto;box-shadow:0 25px 90px #152f2633}.modal.wide{width:950px}.modal-header{position:sticky;top:0;background:#fff;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:20px 25px;border-bottom:1px solid var(--line)}.modal-header h2{margin:0;font-size:19px}.modal-body{padding:24px 25px}.modal-footer{position:sticky;bottom:0;background:#fff;z-index:2;padding:16px 25px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:flex-end;gap:10px}.modal-footer .left{margin-right:auto}.modal-footer small{font-size:11px;color:#8f9b82}.example-box{border:1px solid var(--line);border-radius:8px;padding:15px 17px;margin-bottom:11px;background:#fcfdf9}.example-box .en{font:17px/1.6 var(--serif);color:#3d614a}.example-box .zh{font-size:12px;color:#95a080;margin:5px 0}.example-box .attribution{font-size:9px;color:#9da58f;line-height:1.8;margin-top:10px;overflow-wrap:anywhere}.example-box .example-tools{display:flex;justify-content:space-between;gap:8px;align-items:center}.detail-title{font:36px/1.4 var(--serif);color:var(--green);overflow-wrap:anywhere}.detail-meaning{font-size:17px;color:#6d7d62;margin:10px 0}.detail-def{font:italic 14px/1.7 var(--serif);color:#9aa18e;margin-bottom:24px}.detail-section{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:20px;margin-top:20px;margin-bottom:14px}.detail-section h3{margin:0;font-size:13px}.preview-scroll{max-height:390px;overflow:auto;border:1px solid var(--line);border-radius:7px}.preview-table{border-collapse:collapse;width:100%;font-size:11px}.preview-table th{background:#f0f4e9;position:sticky;top:0;z-index:1;text-align:left;padding:10px;color:#6b805b;font-weight:500}.preview-table td{padding:10px;border-top:1px solid var(--line);vertical-align:top;max-width:420px;white-space:pre-wrap}.preview-table td.en{font-family:var(--serif);font-size:14px}.preview-table small{color:#a1aa93}.review-options{display:flex;align-items:center;justify-content:space-between;gap:18px}.review-controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.review-stage{max-width:740px;margin:25px auto}.review-progress{display:flex;justify-content:space-between;font-size:11px;color:#8e9d82;margin-bottom:10px}.progress-track{height:3px;background:#e5ebdc;border-radius:2px;margin-bottom:22px}.progress-track div{background:#839d6d;height:3px;border-radius:2px}.flashcard{background:#fff;border:1px solid var(--line);border-radius:15px;min-height:380px;padding:34px 40px;text-align:center;box-shadow:0 8px 25px #364c2b05;display:flex;flex-direction:column;align-items:center;justify-content:center}.flashcard .question{font:42px/1.5 var(--serif);color:#365a43;margin:20px 0;overflow-wrap:anywhere;max-width:100%}.flashcard .question.chinese{font:30px/1.7 var(--sans)}.flashcard .answer{font-size:20px;color:#82946d;margin:0 0 12px}.flashcard .tag{align-self:center}.review-hint{font-size:11px;color:#aab39e;margin:20px 0 0}.reveal-btn{width:100%;padding:14px;margin-top:19px;background:var(--green);color:white;border:0;border-radius:8px}.ratings{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:19px}.rating{background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px 5px;font-size:12px}.rating small{display:block;color:#a2ae95;font-size:10px;margin-top:3px}.rating.again{color:#b47b60}.rating.good{background:#eef3e7;color:#668250}.rating.easy{background:var(--green);border-color:var(--green);color:#fff}.rating.easy small{color:#c6d4bd}.corpus-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.corpus-grid .example-box{margin:0;display:flex;flex-direction:column}.corpus-grid .example-tools{margin-top:auto;padding-top:12px}.key-help{font-size:11px;line-height:1.9;color:#8c9b7f}kbd{font:10px var(--sans);border:1px solid #dce5d3;background:#fafbf7;border-radius:4px;padding:2px 6px;color:#8f9c81}.category-manage-row{display:flex;align-items:center;gap:8px;padding:12px 0;border-bottom:1px solid var(--line)}.category-manage-row input{border:1px solid var(--line);border-radius:5px;padding:7px 10px;flex:1}.category-manage-row .muted{margin-right:auto}.boot{padding:80px;text-align:center;color:#7f9072}#toast{position:fixed;bottom:28px;left:calc(50% + 110px);transform:translateX(-50%) translateY(15px);background:#294e42;color:#fff;padding:12px 22px;border-radius:8px;box-shadow:0 8px 30px #1e422b22;z-index:50;font-size:12px;opacity:0;pointer-events:none;transition:.18s;max-width:85vw}#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}#toast.error{background:#9f604a}.hidden-file{display:none}mark{background:#edf0d7;color:inherit;border-radius:2px}.mobile-brand{display:none}.save-note{font-size:11px;color:#8c9c7f}.source-warning{font-size:10px;color:#ac9b7c}.note-box{white-space:pre-wrap;font-size:12px;color:#879777}.review-empty{padding:75px 30px}.corpus-grid .en{font-size:19px}.pill-count{font-size:10px;background:#edf2e5;color:#879975;border-radius:20px;padding:2px 8px;margin-left:7px}.loading{opacity:.5;pointer-events:none}.intro-leaf{color:#8fa17d}.import-preview-check{display:flex;gap:8px;align-items:center;font-size:12px;margin:14px 0}.error-list{font-size:11px;color:#aa8255;max-height:130px;overflow:auto;padding-left:18px}.muted-button{color:#829573}.session-summary{display:flex;justify-content:center;gap:40px;margin:30px 0}.session-summary strong{font:35px var(--serif);display:block;color:#486a4c}.session-summary span{font-size:11px;color:#8c9d7c}body.modal-open{overflow:hidden}
@media(min-width:1600px){.cards{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1180px){.workspace{padding:28px}.topbar{padding:0 28px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.sidebar{width:195px;padding:28px 14px}.main{margin-left:195px;width:calc(100% - 195px)}.brand{padding-left:8px}.brand-title{font-size:20px}#toast{left:calc(50% + 98px)}.two-col{gap:14px}.page-intro h1{font-size:26px}}
@media(max-width:800px){.sidebar{width:72px;padding:25px 10px}.brand{padding:0 6px 30px}.brand>div:not(.brand-mark),.nav .label,.nav .count,.side-label,.side-tip,.sidebar-foot{display:none}.nav button{padding:14px;justify-content:center}.main{width:calc(100% - 72px);margin-left:72px}.workspace{padding:22px}.topbar{padding:0 22px;height:60px}.page-intro{align-items:flex-start;flex-direction:column}.intro-actions{align-self:stretch}.stats{gap:8px}.stat{padding:12px}.stat-icon{display:none}.stat-number{font-size:24px}.cards{gap:12px}.word-card{padding:17px 17px 0}.two-col,.corpus-grid{grid-template-columns:1fr}.library-toolbar{flex-wrap:wrap}.search{max-width:100%;min-width:180px}.toolbar-spacer{display:none}.review-options{align-items:flex-start;flex-direction:column}#toast{left:calc(50% + 36px)}.card-title{font-size:25px}}
@media(max-width:520px){.cards{grid-template-columns:1fr}.workspace{padding:18px 14px}.topbar{padding:0 14px}.breadcrumb{font-size:10px}.top-right .mode-badge{display:none}.stats{grid-template-columns:1fr 1fr}.stat:nth-child(3){display:none}h1{font-size:25px}.form-grid{grid-template-columns:1fr}.modal-backdrop{padding:8px}.modal-body{padding:20px 17px}.modal-header,.modal-footer{padding:15px 17px}.flashcard{padding:24px 20px;min-height:320px}.flashcard .question{font-size:32px}.ratings{gap:5px}.panel{padding:20px}.settings-actions{flex-wrap:wrap}}

/* Shared appearance and touch layouts. */
:root{--on-accent:#fff}
.btn.primary,.nav button.active,.rating.easy,.reveal-btn{color:var(--on-accent);background:var(--green);border-color:var(--green)}
.btn.primary:hover{background:var(--green);filter:brightness(.94)}
.card-title,.detail-title{color:var(--green)}
.speech-button{font-size:11px;white-space:normal;text-align:left;min-height:32px;margin:3px 4px 3px 0}
.word-card .speech-button{max-width:125px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.card-foot{flex-wrap:wrap}.card-foot>div{display:flex;align-items:center;flex-wrap:wrap;gap:3px}
.card-head .tag{min-width:0;white-space:normal;overflow-wrap:anywhere}.card-head .type{flex-shrink:0}
.device-addresses,.category-input,.example-box .en,.note-box{overflow-wrap:anywhere}
.word-card,.panel,.example-box,.modal,.flashcard{background:var(--paper)}
.theme-presets{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0}
.field input[type=color]{height:46px;cursor:pointer;padding:5px}
.speech-settings{margin-top:22px}.device-addresses{display:flex;flex-wrap:wrap;gap:10px}
.device-addresses a{padding:12px 16px;border-radius:8px;background:var(--pale);overflow-wrap:anywhere}
.pair-code{padding:18px 0;color:var(--muted);font-size:13px}.pair-code strong{font:30px/1.4 ui-monospace,monospace;letter-spacing:6px;color:var(--ink);display:block}
.pair-screen{max-width:480px;margin:10vh auto;padding:18px}.pair-screen form{display:grid;gap:18px;margin-top:25px}
.pair-screen input{font-size:24px;letter-spacing:5px;text-align:center}
.category-create{display:grid;gap:14px;margin:20px 0;padding:18px;background:var(--bg)}
.category-editor{padding:20px 0;border-top:1px solid var(--line);display:grid;gap:12px}
.category-editor input,.category-editor textarea{min-width:0}
.field .section-row{margin-bottom:0}.field .key-help{margin:0}.field .section-row .btn{white-space:normal}
body[data-radius=square] .word-card,body[data-radius=square] .panel,body[data-radius=square] .flashcard,body[data-radius=square] .example-box{border-radius:3px}
body[data-font=large]{font-size:16px}
body[data-font=large] .meaning,body[data-font=large] .small-text,body[data-font=large] .field,body[data-font=large] .subtitle,body[data-font=large] .btn,body[data-font=large] .key-help,body[data-font=large] .select{font-size:15px}
body[data-font=large] .definition,body[data-font=large] .card-example .zh{font-size:14px}
body[data-font=large] .card-example{font-size:17px}
body[data-font=large] .card-title{font-size:31px}
.nav button:focus-visible,.chip:focus-visible,.icon-btn:focus-visible,.btn:focus-visible{outline:3px solid var(--green);outline-offset:3px}
@media(max-width:1024px){.intro-actions{flex-wrap:wrap}.settings-actions{flex-wrap:wrap}.two-col{grid-template-columns:1fr}.field,.panel,.main,.workspace{min-width:0}}
@media(max-width:650px){
  .sidebar{inset:auto 0 0;width:100%;padding:6px 5px calc(6px + env(safe-area-inset-bottom));border:0;border-top:1px solid var(--line);background:#f7f9f3;z-index:10}
  .sidebar .brand{display:none}.nav{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:2px}
  .nav button{padding:8px 1px;min-height:52px;gap:3px;flex-direction:column;border-radius:8px}
  .nav .label{display:block;font-size:9px;white-space:nowrap}.nav .count{display:none}.nav svg{width:21px;height:21px}
  .main{margin-left:0;width:100%;padding-bottom:calc(84px + env(safe-area-inset-bottom))}
  .topbar{height:54px;padding:0 16px;padding-top:env(safe-area-inset-top)}
  .breadcrumb{font-size:12px}.workspace{padding:23px 16px 35px}
  .page-intro h1{font-size:25px;letter-spacing:-.5px}.subtitle{font-size:12px;line-height:1.9}
  .intro-actions{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .intro-actions .btn:only-child{grid-column:1/-1}
  .cards{grid-template-columns:1fr}.word-card{min-height:240px;padding:20px 20px 0}
  .card-title{font-size:30px}.word-card .meaning{font-size:14px}.definition{font-size:12px}
  .word-card .card-example{font-size:16px}.word-card .card-example .zh{font-size:12px}
  .word-card .speech-button{max-width:150px;min-height:40px}.icon-btn{width:40px;height:40px}
  .btn{min-height:42px;font-size:12px;padding:9px 12px}.btn.small{min-height:40px;font-size:12px}
  .stats{grid-template-columns:1fr 1fr;gap:9px}.stat{padding:14px 12px}.stat:nth-child(3){display:none}
  .stat-title{font-size:10px}.stat-number{font-size:27px}.stat-number small{font-size:9px}
  .library-toolbar{display:grid;grid-template-columns:1fr 1fr;gap:9px}.library-toolbar .search{grid-column:1/-1;min-width:0}
  .library-toolbar .search input{min-height:46px;font-size:16px}.library-toolbar .select{width:100%;max-width:none;min-width:0;font-size:12px}
  .category-row{gap:5px}.chip{min-height:38px;font-size:12px;padding:6px 9px}
  .library-caption{gap:8px;align-items:flex-start;flex-direction:column;font-size:11px}
  .form-grid{grid-template-columns:1fr}.field input,.field select,.field textarea{font-size:16px;min-height:44px}
  .field input[type=checkbox]{min-height:18px;min-width:18px}.field label.check{min-height:40px;font-size:13px}
  .field .prompt{font-size:14px}.panel{padding:20px 17px}.section-row{flex-wrap:wrap}.switch-row{align-items:flex-start;line-height:1.9}
  .switch-row input{min-width:18px;min-height:18px;margin-top:5px}
  .modal-backdrop{padding:0;align-items:flex-end}.modal{max-height:94vh;max-height:94dvh;border-radius:16px 16px 0 0;width:100%;border-bottom:0;scroll-padding-bottom:110px}
  .modal-header{padding:14px 18px}.modal-body{padding:20px 18px}.modal-footer{padding:12px 18px calc(12px + env(safe-area-inset-bottom));gap:8px;flex-wrap:wrap}
  .modal-footer .save-note{flex-basis:100%;font-size:11px}.modal-header h2{font-size:18px}
  .flashcard{min-height:350px;padding:25px 18px}.flashcard .question{font-size:34px}.flashcard .question.chinese{font-size:26px}
  .ratings{gap:6px}.rating{min-height:64px}.reveal-btn{min-height:52px}.review-controls{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .review-controls select{min-width:0;max-width:100%;width:100%;min-height:44px;font-size:12px}.review-progress{gap:12px}
  .foot-note{align-items:flex-start;line-height:1.9;font-size:11px}.foot-note svg{margin-top:4px;flex-shrink:0}
  .preview-table{min-width:500px}.preview-table input[type=checkbox]{width:22px;height:22px}
  .format-table{font-size:11px;table-layout:fixed;overflow-wrap:anywhere}
  .example-box .en{font-size:18px}.example-box .zh{font-size:13px}.example-box .attribution{font-size:10px}
  .example-tools{flex-wrap:wrap}.settings-actions .btn{white-space:normal}.settings-actions .select{min-height:44px;max-width:100%}
  .rule-list{font-size:12px;padding-left:18px}.pair-code strong{font-size:32px}
  #toast{left:50%;bottom:calc(83px + env(safe-area-inset-bottom));max-width:92vw;width:max-content;font-size:13px}
  .boot{padding:65px 20px}.pair-screen{margin:5vh auto}.top-right .mode-badge{display:none}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}.word-card:hover{transform:none}}

/* Card templates, review charts and word-building library. */
.prep-editor[hidden]{display:none}.prep-editor{border:1px solid var(--line);border-radius:10px;background:var(--bg);padding:18px;gap:14px}.prep-editor h3{margin:0}.preposition-summary{margin:22px 0;padding:20px;border-radius:10px;background:var(--bg)}.prep-block{border-left:3px solid var(--green);padding-left:14px;margin:16px 0}.prep-block p{white-space:pre-wrap;font-size:13px;margin:6px 0}.card-example-actions{display:flex;gap:7px;flex-wrap:wrap}.delete-card-button:hover{color:#a24635;background:#fff1eb}.type{white-space:normal;text-align:right}.category-editor .field{margin-bottom:12px}.category-editor .section-row{flex-wrap:wrap}.category-editor .section-row>div{display:flex;gap:6px}.deleted-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:15px 0;border-bottom:1px solid var(--line)}
#review-plan-form{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}#review-plan-form input{max-width:110px}.plan-overview{display:flex;gap:25px;align-items:center}.progress-ring{--progress:0%;width:118px;height:118px;flex-shrink:0;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--green) var(--progress),var(--pale) 0);position:relative}.progress-ring:before{content:'';position:absolute;inset:9px;border-radius:50%;background:var(--paper)}.progress-ring strong{position:relative;font-size:30px;color:var(--green)}.progress-ring small{font-size:12px;color:var(--muted);margin-left:5px}.chart-panel{min-width:0}.bar-chart{display:flex;align-items:flex-end;gap:5px;width:100%;height:200px;overflow:hidden;margin-top:24px}.bar-column{flex:1;min-width:0;text-align:center;display:flex;align-items:center;flex-direction:column;height:100%;font-size:10px;color:var(--muted)}.bar-track{height:150px;display:flex;align-items:flex-end;width:100%;max-width:28px;margin-top:auto;border-bottom:1px solid var(--line)}.bar{width:100%;min-height:0;border-radius:4px 4px 0 0;background:var(--green)}.bar.forecast{opacity:.55}.bar-column small{font-size:8px;line-height:1.4;margin-top:7px;writing-mode:vertical-rl}.schedule-day{padding:10px 0;border-bottom:1px solid var(--line)}.schedule-day summary{cursor:pointer;font-size:12px}.schedule-words{display:flex;flex-wrap:wrap;gap:6px;padding:12px 0}.root-grid,.guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.root-card{margin:0;min-width:0}.root-card h2{font:32px var(--serif);color:var(--green)}.root-meaning{font-size:16px}.root-examples{padding-left:18px;font-size:13px}.root-examples li{margin:12px 0}.root-examples small{display:block;color:var(--muted);margin-top:3px}.guide-hero{background:var(--pale)}.guide-hero h2{font-size:25px;margin:16px 0}.guide-hero .intro-actions{flex-wrap:wrap}.guide-grid .panel{margin:0}.guide-grid h2{font-size:18px}.guide-grid p{font-size:13px;line-height:2;margin-bottom:0}.nav{gap:4px}.nav button{padding-top:9px;padding-bottom:9px}.side-label{margin-top:20px}.side-tip{font-size:11px}
@media(max-width:1000px){.root-grid,.guide-grid{grid-template-columns:1fr}.bar-chart{gap:4px}.plan-overview{gap:16px}.review-options{align-items:flex-start;flex-direction:column}}
@media(max-width:650px){.sidebar .nav{grid-template-columns:repeat(4,1fr);gap:0}.sidebar .nav button{padding:6px 1px;min-height:49px;gap:2px}.sidebar .nav .label{font-size:9px}.sidebar{padding-bottom:env(safe-area-inset-bottom);height:auto;max-height:none}.main{padding-bottom:calc(115px + env(safe-area-inset-bottom))}.plan-overview{align-items:flex-start;flex-direction:column}.progress-ring{width:96px;height:96px}.bar-chart{height:175px;gap:4px}.bar-track{height:130px}.chart-panel{padding:20px 12px}.chart-panel h2{font-size:16px}.card-example-actions .btn{min-height:42px}.prep-editor{padding:14px}.root-card .section-row{flex-wrap:wrap}.nav .count{display:none}#toast{bottom:calc(120px + env(safe-area-inset-bottom))}}

/* Direct classification stays legible on narrow screens. */
.category-picker{border:1px solid var(--line);cursor:pointer;white-space:normal;text-align:left;font:inherit;font-size:11px;line-height:1.5;max-width:70%}
.category-picker:hover,.category-picker:focus-visible{border-color:var(--green);background:var(--pale)}
.card-head{align-items:flex-start;gap:8px}.card-head .type{white-space:nowrap}
.corpus-tags{display:flex;flex-wrap:wrap;gap:5px;flex:1 1 100%}
.corpus-grid .example-tools{flex-wrap:wrap}

@media(max-width:650px){.sidebar .nav{grid-template-columns:repeat(3,1fr)}.category-picker{min-height:34px}.card-head .type{white-space:normal;max-width:45%}}
#quick-categories-form .category-input{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
#quick-categories-form .check{display:flex;align-items:center;gap:8px;min-height:42px;padding:7px 10px;border:1px solid var(--line);border-radius:6px;font-size:13px;line-height:1.4}
#quick-categories-form input[type=checkbox]{width:18px;height:18px;flex-shrink:0;margin:0}
@media(max-width:450px){#quick-categories-form .category-input{grid-template-columns:1fr}}

/* Single-category controls, collapsible filters, and drag sorting. */
.field input[type=radio],input[type=radio]{width:auto;accent-color:var(--green)}
.field input[type=radio]{min-width:18px;min-height:18px}
#quick-categories-form input[type=radio]{width:18px;height:18px;flex-shrink:0;margin:0}
.category-strip{margin:0 0 15px;padding:13px 15px;border:1px solid var(--line);border-radius:9px;background:var(--paper)}
.category-strip>summary,.category-editor>summary{list-style:none;display:flex;align-items:center;gap:12px;cursor:pointer}
.category-strip>summary::-webkit-details-marker,.category-editor>summary::-webkit-details-marker{display:none}
.category-strip>summary>span:first-child{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:12px}
.category-strip strong{color:var(--green)}.category-strip small{color:var(--muted);font-size:11px}
.category-fold-label{margin-left:auto;color:var(--muted);white-space:nowrap;font-size:12px}
.category-strip>.category-row{margin:14px 0 0;gap:8px}
.when-open{display:none}details[open]>.category-fold-label .when-open{display:inline}
.category-strip[open]>.category-row{display:flex}
.category-strip[open]>summary .when-open,.category-editor[open]>summary .when-open{display:inline}
.category-strip[open]>summary .when-closed,.category-editor[open]>summary .when-closed{display:none}
.category-manager-actions{display:flex;gap:8px}.category-sort-status{font-size:11px;color:var(--muted);margin:12px 0}
.category-sort-list{display:flex;flex-direction:column;gap:9px}
.category-sort-item{min-width:0}.category-sort-item .category-editor{padding:0;margin:0;border:1px solid var(--line);border-radius:8px;background:var(--paper)}
.category-editor>summary{padding:10px 12px;min-height:58px;gap:10px}
.category-row-name{flex:1;min-width:0;font-size:13px;overflow-wrap:anywhere;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.category-row-name small{font-size:10px;color:var(--muted);padding:2px 5px;background:var(--pale);border-radius:4px}
.category-row-count,.category-row-fold{white-space:nowrap;font-size:11px;color:var(--muted)}
.category-drag-handle{border:1px solid var(--line);background:var(--bg);border-radius:6px;width:34px;height:36px;padding:0;flex-shrink:0;font-size:24px;color:var(--green);cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}
.category-drag-handle:active{cursor:grabbing}.category-drag-handle:focus-visible{outline:2px solid var(--green)}
.category-editor-fields{padding:16px;border-top:1px solid var(--line)}
.category-sort-item.category-dragging{opacity:.55;outline:2px dashed var(--green);border-radius:8px}
.category-sort-list[data-saving=true]{opacity:.75;pointer-events:none}
.category-new{margin-top:20px;border:1px dashed var(--line);border-radius:8px;padding:14px}.category-new>summary{cursor:pointer;font-size:13px;color:var(--green)}
.category-new .category-create{margin-top:15px}
@media(max-width:520px){.category-strip{padding:12px}.category-strip>summary{align-items:flex-start}.category-row-name{gap:4px}.category-editor>summary{padding:9px 8px;gap:8px}.category-drag-handle{width:32px;height:40px}.category-row-fold{font-size:10px}.category-row-count{font-size:10px}}

/* Separate settings navigation and sentence analysis. */
.prompt-fold{border:1px solid var(--line);border-radius:9px;margin-top:15px;padding:14px}.prompt-fold>summary{display:flex;justify-content:space-between;gap:12px;cursor:pointer;font-size:14px}.prompt-fold>summary span{font-size:11px;color:var(--muted)}.prompt-fold[open]>summary{margin-bottom:18px}.prompt-fold textarea{min-height:340px}
.sentence-summary,.sentence-batch,.sentence-item-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.sentence-summary{justify-content:space-between;font-size:13px}.sentence-batch{border-top:1px solid var(--line);padding-top:20px}.sentence-batch .check,.sentence-item-top .check{display:flex;align-items:center;gap:7px;font-size:12px}.sentence-batch input,.sentence-item-top input,.core-word-check input{width:18px;height:18px;accent-color:var(--green);flex-shrink:0}.sentence-item{border:1px solid var(--line);border-radius:10px;background:var(--paper);padding:16px;min-width:0}.sentence-item .example-box{border:0;padding:14px 0 0;margin:0}.sentence-item-top{justify-content:space-between}.corpus-pagination{flex-wrap:wrap;gap:12px}.corpus-pagination>div{display:flex;gap:8px}.analysis-section{margin:24px 0;font-size:14px;line-height:1.9}.analysis-section h3{font-size:17px;color:var(--green)}.analysis-section p{white-space:pre-wrap}.analysis-table-wrap{overflow-x:auto}.analysis-table{width:100%;min-width:420px;table-layout:fixed}.analysis-table th:first-child{width:35%}.analysis-table td{vertical-align:top;overflow-wrap:anywhere;white-space:pre-wrap}.analysis-word{padding:12px 0;border-bottom:1px solid var(--line)}.analysis-word p{margin:5px 0}.analysis-word small{color:var(--muted)}.analysis-progress{margin-top:18px;padding:16px;border-radius:8px;background:var(--pale);font-size:13px}.analysis-progress p{overflow-wrap:anywhere}.sentence-word-group{border:1px solid var(--line);border-radius:8px;padding:12px;margin:18px 0}.sentence-word-group legend{font-size:13px;line-height:1.6;max-width:100%;overflow-wrap:anywhere}.core-word-check{display:flex;align-items:flex-start;gap:10px;padding:12px 0;font-size:14px;cursor:pointer}.core-word-check small{display:block;color:var(--muted);margin-top:4px}
@media(max-width:650px){.sidebar .nav{grid-template-columns:repeat(4,1fr)}.sidebar .nav .label{font-size:9px;white-space:normal}.sidebar .nav button{min-height:50px}.main{padding-bottom:calc(125px + env(safe-area-inset-bottom))}.sentence-batch{gap:10px}.sentence-batch>.btn{flex:1 1 45%;white-space:normal;min-height:44px}.sentence-summary{align-items:flex-start}.prompt-fold{padding:12px}.analysis-section{font-size:13px}.sentence-item{padding:14px}}

/* FSRS settings remain within the existing review page. */
.review-options{align-items:flex-start;flex-wrap:wrap}.review-options>.key-help{flex-basis:100%;margin-bottom:0}.fsrs-plan{width:100%;align-items:flex-start!important}.fsrs-plan>.field{flex:1 1 180px;min-width:0}.fsrs-plan>.field input{max-width:none!important;width:100%}.fsrs-plan>.field small{font-size:11px;color:var(--muted);line-height:1.7}.fsrs-plan>.btn{margin-top:25px}.ratings small{white-space:normal}.plan-overview h2{margin:10px 0}.review-options .review-controls{width:100%;flex-wrap:wrap}
@media(max-width:650px){.fsrs-plan{display:grid!important;grid-template-columns:1fr 1fr;gap:14px}.fsrs-plan>.field{min-width:0;margin:0}.fsrs-plan>.btn{margin-top:23px;white-space:normal;min-height:44px}.review-options .review-controls{display:grid;grid-template-columns:1fr 1fr;gap:12px}.review-controls .field{min-width:0}.ratings .rating{padding:9px 3px}.rating small{font-size:10px}}
.review-settings>summary{cursor:pointer;color:var(--green);font-weight:600;font-size:14px;line-height:1.8}.review-settings>summary span{font-weight:400;font-size:11px;color:var(--muted);margin-left:10px}.review-settings>.review-options{display:flex;margin-top:20px}.review-settings[open]>summary{padding-bottom:12px;border-bottom:1px solid var(--line)}.review-stage{scroll-margin-top:18px}
@media(max-width:650px){.review-settings>summary span{display:block;margin-left:0}.review-settings{padding:18px}.review-stage{scroll-margin-top:12px}}

/* Explicit scene picker works with native menus on desktop and mobile. */
.scene-custom{display:grid;gap:8px}.scene-custom[hidden]{display:none}.scene-custom input{min-width:0;width:100%}.sentence-item-top .sentence-item-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
