:root{--bg:#f7f8f4;--paper:#fff;--ink:#28332a;--muted:#7d8778;--line:#dfe5d9;--green:#516a37;--soft:#edf2e6;--hl:#fbe5d4;--rare:#946547}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.7 "Segoe UI","Microsoft YaHei",sans-serif}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{opacity:.4;cursor:default}button,input,select{outline-offset:4px}a{color:inherit}.header{position:sticky;top:0;z-index:5;background:#f7f8f4f2;border-bottom:1px solid var(--line);backdrop-filter:blur(10px)}.header-inner{max-width:1180px;margin:auto;display:flex;align-items:center;gap:38px;padding:15px 28px}.brand{font-weight:700;letter-spacing:2px;font-size:22px;white-space:nowrap}.view-tabs{display:flex;gap:6px}.view-tabs button{border:0;background:transparent;padding:8px 17px;border-radius:6px;font-size:14px;color:#76836b}.view-tabs button.active{background:var(--green);color:white}.export{margin-left:auto;white-space:nowrap}main{max-width:1180px;margin:auto;padding:31px 28px 40px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:23px}h1{font-size:25px;font-weight:600;margin:0;letter-spacing:.4px}.muted{color:var(--muted);font-size:12px}.btn{border:1px solid var(--line);background:var(--paper);padding:8px 14px;border-radius:6px;font-size:12px}.btn:hover:not(:disabled){background:#edf2e6;border-color:#b8c6aa}.btn.primary{background:var(--green);border-color:var(--green);color:white}.btn.primary:hover:not(:disabled){background:#445b2d}.text-btn{background:none;border:0;color:#7d8d6f;padding:4px 0;font-size:12px}.text-btn:hover{color:var(--green)}.icon-btn{background:none;border:0;color:#859078;font-size:24px;padding:1px 7px;line-height:1.5}.search-box{display:flex;gap:13px;align-items:center;padding:0 17px;background:#fff;border:1px solid #bdcbb0;border-radius:9px}.search-box>span{font-size:29px;color:var(--green);line-height:1}.search-box input{border:0;outline:none;background:none;width:100%;padding:16px 0;min-width:0;font-size:16px}.search-box input::placeholder{color:#9aa38d;font-size:14px}input::-webkit-search-cancel-button{display:none}kbd{border:1px solid var(--line);font:11px inherit;border-radius:4px;padding:0 7px;color:#98a38b}.filters{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:18px;padding-bottom:19px;border-bottom:1px solid var(--line)}.chips,.selects{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.chip{border:1px solid var(--line);border-radius:20px;padding:5px 13px;background:transparent;font-size:12px;white-space:nowrap;color:#78866a}.chip.active{background:#e6eedb;border-color:#b9c9a7;color:#435d2c}select{font-size:12px;border:1px solid var(--line);background:#fff;border-radius:5px;padding:6px 9px;max-width:190px}.result-meta{display:flex;justify-content:space-between;gap:15px;color:var(--muted);font-size:12px;padding:20px 0 12px}.results{display:flex;flex-direction:column;gap:9px}.entry{display:grid;grid-template-columns:215px 1fr;border:1px solid var(--line);background:var(--paper);border-radius:8px;overflow:hidden}.wordcol{padding:18px 20px;background:#fafcf6;border-right:1px solid #e8edde;min-width:0}.word{margin:0 0 8px;font:600 21px/1.35 "Segoe UI",sans-serif;overflow-wrap:anywhere}.word button{border:0;background:none;padding:0;font:inherit;text-align:left}.word button:hover{color:var(--green)}.meta{font-size:10px;color:#8a977e;line-height:1.9}.defcol{padding:16px 21px 12px;min-width:0}.definition{font-size:15px;line-height:1.95;white-space:pre-wrap;overflow-wrap:anywhere}mark{background:var(--hl);color:inherit;padding:1px;border-radius:2px}strong{font-weight:700}.rare-mark{font-size:11px;background:#f4e7dd;color:var(--rare);padding:2px 4px;border-radius:3px;margin-right:3px}.entry-footer{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:8px}.tags{display:flex;gap:6px;flex-wrap:wrap}.tag{font-size:10px;border:1px solid #e4e8dd;color:#819173;border-radius:3px;padding:0 5px}.tag.required{background:#e8f0df;border-color:#c1d2af;color:#4e6a34}.tag.rare{color:#996d4e;border-color:#e4cebd;background:#fcf4ee}.tag.review{color:#a08d41;background:#fffbed;border-color:#e6ddbc}.actions{display:flex;align-items:center;gap:13px}.star{font-size:19px;line-height:1.1}.star.saved{color:#9b7d35}.pagination{display:flex;align-items:center;justify-content:space-between;margin-top:25px;color:var(--muted);font-size:12px}.pagination>div{display:flex;gap:7px}.empty{border:1px dashed #cbd6bf;background:#fff;padding:55px 20px;text-align:center;border-radius:8px}.empty h2{font-size:18px;font-weight:500}.empty p{font-size:13px;color:var(--muted)}
.study-controls{padding:16px 18px;background:#fff;border:1px solid var(--line);border-radius:8px;display:flex;justify-content:space-between;gap:15px;align-items:center}.study-controls .selects{gap:17px}.study-controls label{font-size:12px;color:#7a896c;display:flex;align-items:center;gap:6px}.group-buttons{display:flex;gap:7px}.group-meta{display:flex;justify-content:space-between;margin:20px 1px 9px;font-size:12px;color:#77866a}.progress-track{height:4px;border-radius:3px;background:#e4eadc;overflow:hidden}.progress-track>span{height:100%;display:block;background:#789355;transition:width .2s}.stage-tabs{display:flex;margin:25px 0 20px;border-bottom:1px solid var(--line);gap:25px}.stage-tabs button{border:0;border-bottom:2px solid transparent;background:none;padding:8px 0 13px;font-size:14px;color:#919a87;display:flex;align-items:center;gap:8px}.stage-tabs button.active{color:#405d2e;border-bottom-color:var(--green);font-weight:600}.stage-tabs button>span{display:grid;place-items:center;width:21px;height:21px;border:1px solid #d3ddc7;border-radius:50%;font-size:10px}.stage-tabs button.active>span{background:var(--green);border-color:var(--green);color:#fff}.study-list{border:1px solid var(--line);border-radius:8px;background:#fff;overflow:hidden}.study-row{display:grid;grid-template-columns:35px 205px 1fr;gap:17px;padding:16px 21px;align-items:baseline;border-bottom:1px solid #e7ecdf}.study-row:last-child{border:0}.word-number{font-size:11px;color:#a2ad96;font-variant-numeric:tabular-nums}.study-word{font-size:19px;font-weight:600;overflow-wrap:anywhere}.study-row .definition{font-size:14px}.stage-hint{font-size:12px;color:#8a987b;margin:0 0 12px}.flash-area{max-width:760px;margin:28px auto 34px}.flash-meta{display:flex;justify-content:space-between;margin-bottom:11px;color:var(--muted);font-size:12px}.flashcard{border:1px solid #cbd8be;border-radius:12px;background:#fff;min-height:285px;padding:42px 36px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;cursor:pointer;box-shadow:0 8px 25px #42582d05}.flashcard:hover{border-color:#9eb688}.flashcard h2{font-size:36px;font-weight:600;margin:0;line-height:1.35;overflow-wrap:anywhere;max-width:100%}.flashcard .definition{font-size:17px;margin-top:28px;text-align:left;max-width:100%}.reveal-hint{font-size:12px;color:#a3ad96;margin:30px 0 0}.flash-buttons{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:15px}.flash-buttons button{padding:12px 20px;font-size:14px}.flash-note{font-size:11px;text-align:center;color:#93a184;margin:12px 0 0}.completed{background:#f0f5e9;border:1px solid #ccdbc0;border-radius:10px;text-align:center;padding:57px 22px}.completed h2{font-size:25px;font-weight:500;margin:0 0 12px}.completed p{color:#839575;font-size:13px}.completed .dialog-actions{justify-content:center;margin-top:22px}.test-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.test-word{display:flex;align-items:center;gap:13px;background:#fff;border:1px solid var(--line);border-radius:7px;padding:20px 17px;min-width:0}.test-word .study-word{font-size:18px}.study-footer{display:flex;justify-content:space-between;margin-top:22px;padding-top:16px;border-top:1px solid var(--line);color:#99a28e;font-size:11px}.study-footer .text-btn{font-size:11px;padding:0}.study-footer.error{color:#a27038}
dialog{border:1px solid #c9d5be;border-radius:11px;padding:0;width:min(1020px,94vw);max-height:90vh;background:#fff;color:var(--ink);box-shadow:0 20px 80px #27391a44}dialog::backdrop{background:#1d2a1770;backdrop-filter:blur(2px)}.dialog-head{padding:23px 28px 17px;display:flex;justify-content:space-between;gap:20px;align-items:flex-start;border-bottom:1px solid var(--line)}.dialog-head p{margin:0}.dialog-head h2{margin:4px 0 0;font-size:28px}.dialog-body{padding:22px 28px 27px}.dialog-body h3{font-size:12px;font-weight:500;color:var(--muted);margin:21px 0 10px}.dialog-actions{display:flex;gap:9px;margin-top:22px}.quality-note{background:#fbf4e3;color:#9b813f;font-size:12px;padding:8px 12px;border-radius:4px}.small-dialog{max-width:400px;padding:26px}.small-dialog h2{font-size:20px;margin:0 0 12px}.small-dialog p{font-size:13px;color:var(--muted)}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#364c29;color:#fff;padding:9px 20px;border-radius:6px;font-size:13px;z-index:15;white-space:nowrap}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.hidden{display:none!important}.hide-highlight mark{background:none}.hide-highlight strong{font-weight:400}
@media(max-width:850px){.header-inner{gap:20px}.entry{grid-template-columns:180px 1fr}.study-controls{align-items:flex-start;flex-direction:column}.group-buttons{align-self:flex-end}.study-row{grid-template-columns:25px 155px 1fr;padding:14px;gap:10px}.test-grid{grid-template-columns:repeat(3,1fr)}.test-word{padding:17px 13px}.section-head{align-items:baseline}}
@media(max-width:580px){.header-inner{padding:12px 15px;gap:14px;flex-wrap:wrap}.brand{font-size:19px}.view-tabs{gap:2px}.view-tabs button{font-size:12px;padding:7px 10px}.export{font-size:10px;padding:6px 8px}main{padding:22px 16px 30px}h1{font-size:22px}.section-head{margin-bottom:17px;flex-wrap:wrap;gap:4px}.section-head .muted{font-size:11px}.search-box{padding:0 13px}.search-box input{padding:14px 0}.filters{gap:11px;margin-top:14px;padding-bottom:15px}.chips{gap:5px;flex-wrap:nowrap;width:100%;overflow-x:auto;padding-bottom:3px;scrollbar-width:none}.chip{font-size:11px;padding:4px 10px}.selects{gap:7px}.selects select{font-size:11px;padding:5px 8px}.result-meta{padding-top:17px}.entry{display:block}.wordcol{padding:12px 15px;border-right:0;border-bottom:1px solid #e8edde;display:flex;justify-content:space-between;align-items:center;gap:10px}.word{font-size:20px;margin:0}.meta{font-size:9px;white-space:nowrap}.defcol{padding:12px 15px}.definition{font-size:14px}.study-controls{padding:13px;gap:12px}.study-controls .selects{gap:10px}.study-controls label{font-size:11px;gap:4px}.study-controls #study-group{max-width:125px}.study-controls select{max-width:115px}.group-buttons .btn{padding:6px 12px;font-size:11px}.group-meta{font-size:11px;margin-top:15px;gap:10px}.stage-tabs{gap:0;justify-content:space-between;margin-top:20px}.stage-tabs button{font-size:12px;gap:5px;padding-bottom:11px}.stage-tabs button>span{width:18px;height:18px;font-size:9px}.study-row{grid-template-columns:20px 1fr;padding:13px 14px;gap:5px 10px}.study-row .definition{grid-column:2;margin-top:4px;font-size:13px}.study-word{font-size:18px}.test-grid{grid-template-columns:repeat(2,1fr);gap:8px}.test-word{padding:16px 12px;gap:9px}.test-word .study-word{font-size:16px}.flash-area{margin:19px 0}.flashcard{padding:30px 22px;min-height:285px}.flashcard h2{font-size:30px}.flashcard .definition{font-size:15px;margin-top:23px}.flash-buttons{gap:9px}.flash-buttons button{font-size:13px;padding:12px}.flash-note{font-size:10px}.stage-hint{font-size:11px}.dialog-head,.dialog-body{padding:19px}.dialog-head h2{font-size:25px}.btn{font-size:11px}.toast{font-size:11px;max-width:90vw;white-space:normal}.study-footer{font-size:10px}}
.global-backup{margin-left:auto;display:flex;gap:6px;white-space:nowrap}#app-loading{padding:18px;border:1px solid var(--line);border-radius:8px;background:#fff;margin-bottom:18px;color:var(--muted)}#global-data-status{font-size:12px;color:#526d3e;margin:0 0 18px}#global-data-status.error{color:#a23b2a}.header-inner{gap:22px}@media(max-width:700px){.header-inner{flex-wrap:wrap;gap:10px}.global-backup .btn{font-size:11px;padding:6px 9px}.view-tabs{order:3;width:100%;justify-content:space-between}}
