@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Outfit:wght@400;500;600;700&display=swap";:root{--primary: #6366f1;--primary-hover: #4f46e5;--secondary: #0d9488;--bg-main: #f8fafc;--bg-card: #ffffff;--text-main: #1e293b;--text-muted: #64748b;--border-color: #e2e8f0;--radius-lg: 12px;--radius-md: 8px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--hsk1: #4ade80;--hsk2: #facc15;--hsk3: #fb923c;--hsk4: #f87171;--hsk5: #c084fc;--hsk6: #60a5fa;font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.6;font-weight:400;color:var(--text-main);background-color:var(--bg-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-height:100vh;display:block;overflow-x:hidden}h1,h2,h3,h4{font-family:Outfit,sans-serif;color:var(--text-main);margin-top:0}button{font-family:Inter,sans-serif;font-weight:500;padding:.6em 1.2em;border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;transition:all .2s ease}button.primary{background-color:var(--primary);color:#fff}button.primary:hover{background-color:var(--primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}button.secondary{background-color:var(--bg-card);border-color:var(--border-color);color:var(--text-main)}button.secondary:hover{border-color:var(--primary);color:var(--primary)}input:not([type=checkbox]):not([type=radio]),select,textarea{font-family:Inter,sans-serif;padding:.6em .8em;border-radius:var(--radius-md);border:1px solid var(--border-color);background-color:#fff;transition:border-color .2s;width:100%;box-sizing:border-box}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #6366f11a}.card{background:var(--bg-card);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-sm);border:1px solid var(--border-color)}@media(prefers-color-scheme:dark){:root{--bg-main: #0f172a;--bg-card: #1e293b;--text-main: #f1f5f9;--text-muted: #94a3b8;--border-color: #334155;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3)}input,select,textarea{background-color:#0f172a;color:#f1f5f9}}.app-container{display:flex;flex-direction:column;height:100vh;width:100%;margin:0 auto;overflow:hidden}.app-header{height:64px;background:var(--bg-card);border-bottom:1px solid var(--border-color);padding:0 2rem;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;z-index:100}.app-body{display:flex;flex:1;overflow:hidden;min-width:0}main{flex:1;background-color:var(--bg-main);overflow-y:auto;overflow-x:hidden;min-width:0}.app-header .nav-modes{display:flex;gap:1rem;height:100%;align-items:center}.app-header .nav-modes button{background:transparent;color:var(--text-muted);font-weight:500;padding:.5rem 1rem;border-radius:var(--radius-md);transition:all .2s;font-size:.95rem}.app-header .nav-modes button:hover{background:var(--bg-main);color:var(--text-main)}.app-header .nav-modes button.active{background:#6366f11a;color:var(--primary)}.content-wrapper{padding:2rem 3rem;width:100%;box-sizing:border-box;min-width:0}.logo .brand-link{text-decoration:none;display:inline-block}.logo .brand-link h1{font-size:1.25rem;color:var(--primary);margin:0;display:flex;align-items:center;gap:.5rem;transition:opacity .2s}.logo .brand-link h1:before{content:"📝"}.logo .brand-link:hover h1{opacity:.8}@media(max-width:768px){.app-container{flex-direction:column}.content-wrapper{padding:1rem}}.vocab-manager{display:flex;flex-direction:column;gap:2rem}.header-info{display:flex;justify-content:space-between;align-items:center;background:var(--bg-card);padding:1.5rem 2rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-color)}.header-info h2{margin:0;font-size:1.5rem;color:#2c3e50;cursor:pointer;padding:4px 8px;border-radius:4px;transition:background .2s}.header-info h2:hover{background:#f8f9fa}.edit-icon{font-size:1rem;color:#95a5a6;margin-left:8px;opacity:0;transition:opacity .2s}.header-info h2:hover .edit-icon{opacity:1}.vocab-manager .text-btn{background:none;border:none;color:var(--primary);cursor:pointer;font-size:.9rem;font-weight:600;padding:8px 16px;border-radius:6px;transition:all .2s;align-self:flex-end;margin-bottom:3px;text-decoration:none}.vocab-manager .text-btn:hover{background:#6366f10d}.vocab-manager .text-btn.save{background:var(--primary);color:#fff;box-shadow:var(--shadow-sm)}.vocab-manager .text-btn.save:hover{background:var(--primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.input-section{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.input-card{background:var(--bg-card);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-sm);border:1px solid var(--border-color);display:flex;flex-direction:column;gap:1rem}.input-card h3{font-size:1.1rem;margin-bottom:.5rem;color:var(--primary)}.input-card h4{font-size:.9rem;color:var(--text-muted);margin-bottom:.25rem}.input-card textarea{resize:vertical;min-height:120px}.upload-card{position:relative;border:2px dashed var(--border-color);transition:all .2s;justify-content:center;align-items:center;text-align:center}.upload-card.dragging{border-color:var(--primary);background:#6366f10d}.pending-files{display:flex;flex-wrap:wrap;gap:.5rem;margin:.5rem 0;justify-content:center}.file-badge{background:var(--bg-main);padding:.2rem .6rem;border-radius:4px;font-size:.8rem;border:1px solid var(--border-color)}.clear-btn{background:transparent;border:none;color:var(--text-muted);cursor:pointer;font-size:1rem}.vocab-list-section{background:var(--bg-card);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-sm);border:1px solid var(--border-color)}.list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.list-title-group{display:flex;align-items:center;gap:1.5rem}.copy-template-wrapper{display:flex;align-items:center;gap:.5rem;position:relative;background:#f8fafc;padding:4px 10px;border-radius:8px;border:1px solid var(--border-color)}.copy-template-wrapper .label{font-size:.7rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;white-space:nowrap}.template-input{min-width:200px;padding:4px 8px;font-size:.8rem;border:1px solid var(--border-color);border-radius:4px;background:#fff;font-family:monospace}.template-input:focus{outline:none;border-color:var(--primary)}.copy-template-wrapper .presets{display:flex;gap:2px}.preset-btn{padding:2px 6px;font-size:.65rem;background:#fff;border:1px solid var(--border-color);border-radius:4px;cursor:pointer;font-weight:600;color:var(--text-muted)}.preset-btn:hover{color:var(--primary);border-color:var(--primary)}.copy-main-btn{margin-left:.5rem;background:var(--primary)!important;color:#fff!important}.copy-main-btn:hover{background:var(--primary-hover)!important}.copied-toast{position:absolute;top:-35px;left:50%;transform:translate(-50%);background:#2e7d32;color:#fff;padding:4px 12px;border-radius:20px;font-size:.7rem;font-weight:600;white-space:nowrap;animation:fadeInOut 2s ease-in-out forwards}@keyframes fadeInOut{0%{opacity:0;transform:translate(-50%,5px)}15%{opacity:1;transform:translate(-50%)}85%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-5px)}}.vocab-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;margin:1.5rem 0}.vocab-item{background:var(--bg-main);padding:1.25rem;border-radius:var(--radius-md);border:1px solid var(--border-color);display:flex;flex-direction:column;gap:.5rem;position:relative;transition:transform .2s,box-shadow .2s}.vocab-item:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--primary)}.vocab-actions{position:absolute;top:.5rem;right:.5rem;display:flex;gap:.25rem;opacity:0;transition:opacity .2s}.vocab-item:hover .vocab-actions{opacity:1}.vocab-actions button{padding:.2rem .4rem;font-size:.75rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:4px;cursor:pointer}.vocab-actions button.delete{color:#ef4444}.vocab-actions button:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.vocab-item input.word{font-size:1.5rem;font-weight:700;border:none;background:transparent;padding:0;width:100%}.pinyin-row{display:flex;align-items:center;gap:.5rem}.vocab-item input.pinyin{font-size:1rem;color:var(--primary);border:none;background:transparent;padding:0;flex:1}.vocab-item input.pos{font-size:.85rem;font-style:italic;color:var(--text-muted);border:none;background:transparent;padding:0;width:60px}.vocab-item textarea.definition{font-size:.9rem;color:var(--text-muted);border:1px solid transparent;background:transparent;padding:.5rem;margin-left:-.5rem;width:calc(100% + 1rem);resize:none;border-radius:4px}.vocab-item textarea.definition:focus{background:var(--bg-card);border-color:var(--border-color);outline:none}.vocab-item input:focus{outline:none;color:var(--primary)}.actions,.save-actions{margin-top:2rem;display:flex;justify-content:flex-end;align-items:center;gap:1rem;padding:1rem;border-top:1px solid #eee}.saved-tip{color:#2e7d32;font-weight:500;animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.error{color:#ef4444;font-size:.85rem;margin-top:.5rem}@media(max-width:1024px){.input-section{grid-template-columns:1fr}}.card-header-row{display:flex;justify-content:space-between;align-items:center}.help-wrapper{position:relative}.help-btn{background:none;border:1px solid var(--border-color);border-radius:50%;width:20px;height:20px;font-size:12px;color:var(--text-muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .2s}.help-btn:hover,.help-btn.active{color:var(--primary);border-color:var(--primary);background:#6366f10d}.help-dialog{position:absolute;top:100%;right:0;margin-top:8px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1rem;width:280px;box-shadow:var(--shadow-lg);z-index:100;font-size:.85rem;text-align:left;color:var(--text-main)}.help-dialog h5{margin:0 0 .5rem;font-size:.9rem;color:var(--primary)}.help-dialog ul{margin:0;padding-left:1rem}.help-dialog li{margin-bottom:.5rem}.help-dialog code{background:#0000000d;padding:2px 4px;border-radius:3px;font-family:monospace;color:#d63384}.help-overlay{position:fixed;inset:0;z-index:99;cursor:default}.workbook-generator{display:flex;flex-direction:column;gap:2rem}.config-header h2{margin:0;cursor:pointer;padding:4px 8px;border-radius:4px;transition:background .2s}.config-header h2:hover{background:var(--bg-main)}.edit-icon{font-size:1rem;color:var(--text-muted);margin-left:8px;opacity:0;transition:opacity .2s}.config-header h2:hover .edit-icon{opacity:1}.lesson-editor{display:flex;align-items:center;gap:1.5rem;padding:.5rem 1rem;background:var(--bg-main);border-radius:var(--radius-md);border:1px solid var(--border-color);animation:slideIn .2s ease-out}.lesson-editor label{display:flex;flex-direction:column;gap:4px;font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.lesson-editor input{width:80px;padding:8px 12px;border:1px solid var(--border-color);border-radius:6px;font-size:1rem;font-weight:500;background:var(--bg-card);color:var(--text-main);transition:all .2s}.lesson-editor input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #6366f11a;outline:none}.lesson-editor .separator{color:var(--border-color);font-weight:300;font-size:1.5rem;align-self:flex-end;margin-bottom:8px}@keyframes slideIn{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.editable-header{cursor:pointer;transition:background .2s;border-radius:4px;padding:2px 4px}.editable-header:hover{background:#0000000d}.editable-header:hover .edit-icon{opacity:1}.selection-grid{display:grid;grid-template-columns:280px 1fr;gap:1.5rem;align-items:start}.config-panel{display:flex;flex-direction:column;gap:1.5rem}.config-section{padding-top:1rem;border-top:1px solid var(--border-color);display:flex;flex-direction:column;gap:.75rem}.config-section:first-of-type{padding-top:0;border-top:none}.config-item{display:flex;flex-direction:column;gap:.5rem}.config-item label{font-size:.85rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.config-panel .checkbox-label{display:flex;align-items:center;gap:.75rem;font-size:.95rem;cursor:pointer;color:var(--text-main);transition:color .2s}.config-panel .checkbox-label:hover{color:var(--primary)}.config-panel input[type=checkbox]{width:1.1rem;height:1.1rem;cursor:pointer;accent-color:var(--primary)}.config-panel input[type=range]{cursor:pointer;accent-color:var(--primary)}.config-panel select{padding:.5rem;border-radius:var(--radius-md);background:var(--bg-main)}.selection-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.bulk-actions{display:flex;gap:1rem}.workbook-generator .text-btn{background:transparent;border:none;color:var(--primary);font-size:.85rem;font-weight:600;cursor:pointer;padding:.25rem .5rem;text-decoration:none}.workbook-generator .text-btn.save{background:var(--primary);color:#fff;padding:.5rem 1rem;border-radius:var(--radius-md);margin-left:.5rem}.workbook-generator .text-btn.save:hover{background:var(--primary-hover)}.word-chips{display:flex;flex-wrap:wrap;gap:.75rem}.word-chip{background:var(--bg-main);border:1px solid var(--border-color);padding:.75rem 1rem;border-radius:var(--radius-md);cursor:pointer;transition:all .2s;display:flex;flex-direction:column;align-items:center;min-width:80px}.word-chip:hover{border-color:var(--primary);background:#6366f10d}.word-chip.active{background:var(--primary);border-color:var(--primary);color:#fff}.word-chip .word{font-size:1.25rem;font-weight:700}.word-chip .pinyin{font-size:.75rem;opacity:.8}.workbook-preview-container{background:#525659;min-height:100vh;padding:2rem;display:flex;flex-direction:column;align-items:center;gap:2rem}.actions-bar{width:210mm;background:var(--bg-card);padding:1rem 2rem;border-radius:var(--radius-md);display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow-md)}.workbook-page{width:210mm;min-height:297mm;background:#fff;padding:20mm;box-shadow:0 0 20px #0000004d;color:#333;display:flex;flex-direction:column}.workbook-header{border-bottom:2px solid #333;padding-bottom:1rem;margin-bottom:2rem}.workbook-header h1{font-size:1.5rem;margin-bottom:1rem;color:#000}.user-info{display:flex;gap:2rem;font-size:.9rem}.workbook-item-row{margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px dashed #eee;display:flex;flex-direction:column;gap:.5rem}.workbook-item-row:last-child{border-bottom:none;padding-bottom:0}.word-meta{display:flex;align-items:center;gap:.75rem;font-size:.9rem;color:#666;margin-bottom:.25rem}.word-meta .pinyin{font-weight:600}.stroke-order-container{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.5rem}.stroke-order-item{display:flex;align-items:center;gap:.5rem}.stroke-order-item .char-label{font-size:.8rem;color:#999;min-width:1.5rem}.stroke-series{display:flex;flex-wrap:wrap;gap:2px}.stroke-box{width:30px;height:30px;border:1px solid #eee;background:#fff}.practice-grids{display:flex;gap:0;flex-wrap:wrap}.tianzige-box{width:60px;height:60px}.tianzige-box svg{width:100%;height:100%}.grid-border{fill:none;stroke:#999;stroke-width:1.5}.grid-line,.grid-line-internal{stroke:#ccc;stroke-width:.5}.grid-line-internal.dashed{stroke-dasharray:2 2}.char-text{font-family:KaiTi,Kaiti SC,STKaiti,serif;font-size:70px}.tianzige-box.model .char-text{fill:#000}.tianzige-box.trace .char-text{fill:#ddd}@media print{*{background:transparent!important;box-shadow:none!important;text-shadow:none!important}.no-print,.app-header,.sidebar{display:none!important}body,html{background:#fff!important;height:auto!important;min-height:auto!important;margin:0!important;padding:0!important;overflow:visible!important}.app-container,.app-body,main,.content-wrapper{display:block!important;padding:0!important;margin:0!important;background:#fff!important;height:auto!important;min-height:auto!important;overflow:visible!important;position:static!important}.workbook-preview-container{background:#fff!important;padding:0!important;margin:0!important;width:100%!important;min-height:auto!important;display:block!important;overflow:visible!important}.workbook-page{box-shadow:none!important;margin:0 auto!important;width:210mm!important;min-height:auto!important;padding:10mm!important;background:#fff!important;overflow:visible!important}.workbook-header{background:#fff!important}.workbook-item-row{page-break-inside:avoid;break-inside:avoid}}:root{--color-blue: #748ffc;--color-green: #51cf66;--color-orange: #ff922b;--color-purple: #b197fc;--color-blue-dark: #4c6ef5;--color-green-dark: #37b24d;--color-orange-dark: #f76707;--color-purple-dark: #845ef7;--color-blue-bg: #edf2ff;--color-green-bg: #dcfce7;--color-orange-bg: #ffedd5;--color-purple-bg: #f3e8ff}.assignment-creator{margin:0 auto;box-sizing:border-box}.header{margin-bottom:32px}.subtitle{color:#666;margin-top:8px}.highlight{color:#2c3e50;font-weight:600;background:#e8f4fc;padding:2px 6px;border-radius:4px}.controls{padding:24px;background-color:#fff;border-radius:0 0 12px 12px;margin-bottom:32px;border:1px solid #e9ecef;border-top:none;box-shadow:0 0 10px #0000001a}.mode-switcher{display:flex;border-bottom:1px solid #dee2e6;margin-top:20px}.mode-tab{padding:10px 20px;cursor:pointer;background:transparent;border:none;border-bottom:3px solid transparent;font:inherit;font-weight:600;color:#495057;transition:all .2s}.mode-tab:hover{color:#228be6}.mode-tab.active{border-bottom-color:#228be6;color:#228be6;background:#fff;border-radius:8px 8px 0 0;box-shadow:0 0 10px #0000001a}.input-group{display:flex;flex-direction:column;gap:8px;flex:1}.input-group label{font-size:.9em;font-weight:500;color:#495057}.input-group textarea,.input-group input[type=number]{padding:10px;border:1px solid #ced4da;border-radius:6px;font-family:inherit}.input-group textarea:focus,.input-group input:focus{outline:none;border-color:#4dabf7;box-shadow:0 0 0 2px #4dabf733}.image-input-controls{margin-top:4px;display:flex;justify-content:flex-end}.generation-options-row{display:flex;justify-content:flex-end;margin-top:8px}.upload-image-btn{font-size:.8rem}.images-preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:12px;margin-top:12px}.image-preview-container{position:relative;border-radius:8px;overflow:hidden;border:1px solid #dee2e6;background:#f8f9fa;height:100px}.image-preview{width:100%;height:100%;object-fit:cover}.remove-image-btn{position:absolute;top:4px;right:4px;width:20px;height:20px;border-radius:50%;background:#00000080;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;line-height:1;transition:background .2s}.remove-image-btn:hover{background:#dc3545cc}.row{display:flex;gap:24px}.generate-btn{width:100%;padding:12px;background:#228be6;color:#fff;border:none;border-radius:6px;font-size:1em;font-weight:600;cursor:pointer;transition:background .2s;margin-top:16px}.generate-btn:hover{background:#1c7ed6}.generate-btn:disabled{background:#adb5bd;cursor:not-allowed}.advanced-prompt-section{margin-top:16px;border-top:1px dashed #ced4da;padding-top:16px}.assignment-creator .text-btn{background:none;border:none;color:#228be6;font-size:.85em;font-weight:500;cursor:pointer;padding:0;text-decoration:none}.assignment-creator .text-btn:hover{color:#1c7ed6;text-decoration:underline}.assignment-content{padding:32px}.prompt-textarea{width:100%;font-family:Courier New,Courier,monospace;font-size:.85em;padding:12px;border:1px solid #ced4da;border-radius:6px;margin-top:8px;box-sizing:border-box;background:#fff}.prompt-editor-container .hint{font-size:.8em;color:#868e96;margin-top:4px}.generation-progress{display:flex;align-items:center;gap:12px;margin-top:12px;padding:10px 12px;background:#f8f9fa;border-radius:6px;border:1px solid #e9ecef;color:#495057;font-size:.9rem}.spinner-small{width:16px;height:16px;border:2px solid #dee2e6;border-top:2px solid #228be6;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.prompt-loading-modal{position:absolute;inset:0;background:#ffffffb3;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:1000;border-radius:12px}.prompt-loading-modal .spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #3498db;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:12px}.prompt-loading-modal span{color:#2c3e50;font-weight:500;font-size:1.1rem}.error{margin-top:12px;color:#e03131;font-size:.9em;background:#fff5f5;padding:8px;border-radius:4px;border:1px solid #ffc9c9}.results-preview{border:1px solid #e9ecef;border-radius:12px;overflow:hidden}.results-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background:#f8f9fa;border-bottom:1px solid #e9ecef}.results-title{display:flex;align-items:center;gap:20px}.zh-count-control{display:flex;align-items:center;gap:8px;font-size:.9em;color:var(--text-muted)}.zh-count-control input{width:60px!important;padding:4px 8px!important;font-size:.9rem!important;border-radius:4px!important}.show-answers-toggle{display:flex;align-items:center;gap:8px;font-size:.9em;color:#495057;cursor:pointer;-webkit-user-select:none;user-select:none;padding:6px 12px;background:#e9ecef;border-radius:6px;transition:background .2s}.show-answers-toggle:hover{background:#dee2e6}.show-answers-toggle input{margin:0;cursor:pointer}.copy-action-wrapper{display:flex;align-items:center;gap:12px}.copy-tip{font-family:var(--font-inter);font-size:.85rem;color:var(--secondary);font-weight:600;animation:fadeInOut 2s ease-in-out}@keyframes fadeInOut{0%{opacity:0;transform:translate(5px)}10%{opacity:1;transform:translate(0)}80%{opacity:1}to{opacity:0}}.results-header h3{margin:0;font-size:1.1em}.preview-content{padding:24px;background:#fff;font-family:Times New Roman,serif}.preview-item{margin-bottom:20px;line-height:1.6}.question{font-size:1.1em;margin-bottom:4px}.number{font-weight:700;margin-right:8px}.answer{color:#666;font-size:.95em;margin-left:24px;font-style:italic}.selection-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000}.selection-modal{background:#fff;width:90%;max-width:600px;max-height:80vh;border-radius:12px;display:flex;flex-direction:column;box-shadow:0 10px 25px #0003}.selection-modal-header{padding:20px;border-bottom:1px solid #eee;display:flex;justify-content:space-between;align-items:center}.selection-modal-header h3{margin:0}.selection-modal-body{padding:20px;overflow-y:auto;flex:1}.sentence-item{gap:12px;padding:12px;border-bottom:1px solid #f5f5f5;cursor:pointer;transition:background .2s}.sentence-item:hover{background:#f9f9f9}.sentence-item input[type=checkbox]{width:18px;height:18px;margin-top:4px}.sentence-zh{display:inline;font-size:1em;font-weight:500}.sentence-en{display:inline;font-size:.9em;color:#666}.selection-modal-footer{padding:20px;border-top:1px solid #eee;display:flex;justify-content:flex-end;gap:12px}.btn-secondary{padding:8px 16px;background:#e9ecef;border:none;border-radius:6px;cursor:pointer}.btn-primary{padding:8px 16px;background:#228be6;color:#fff;border:none;border-radius:6px;cursor:pointer}.library-header-actions{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding:12px 16px;background:#f8f9fa;border-radius:8px;border:1px solid #e9ecef;min-height:56px}.library-header-actions .input-group{display:flex;align-items:center;gap:12px}.library-header-actions label{font-size:.95em;color:#495057;font-weight:500;margin:0;line-height:1}.library-header-actions input[type=number]{padding:0 8px;border:1px solid #ced4da;border-radius:6px;font-size:.85em;height:34px;box-sizing:border-box;transition:border-color .2s}.library-controls{display:flex;flex-direction:column}.library-header-actions{display:flex;flex-direction:column;gap:10px;margin-bottom:20px;background:#fff;border:1px solid #eef0f2;padding:12px 16px;border-radius:10px;box-shadow:0 2px 8px #0000000a}.library-actions-row{display:flex;width:100%}.library-actions-row.first-row{justify-content:flex-start;align-items:flex-end}.library-actions-row.second-row{justify-content:space-between;align-items:flex-end;margin-top:2px;padding-top:10px;border-top:1px solid #f1f3f5}.library-left-actions,.library-right-actions{display:flex;align-items:flex-end;gap:12px}.library-left-actions{width:100%}.control-group{display:flex;flex-direction:column;gap:2px}.group-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.12em;font-weight:700;color:#8da2b5;margin-bottom:2px}.input-wrapper{display:flex;align-items:center;position:relative}.input-wrapper input{height:34px;border:1px solid #e1e4e8;border-radius:6px;padding:0 10px;font-size:.85em;background:#fff;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.input-wrapper input:focus{outline:none;border-color:#4c6ef5;box-shadow:0 0 0 3px #4c6ef51a;z-index:1}.search-wrapper .search-icon{position:absolute;left:12px;color:#adb5bd;pointer-events:none;z-index:2}.search-input{width:400px!important;padding-left:36px!important}.random-select-group .input-wrapper input{width:64px;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0}.action-btn{height:34px;padding:0 12px;background:#f8f9fa;border:1px solid #e1e4e8;border-left:none;border-radius:0 6px 6px 0;color:#4c6ef5;font-size:.8em;font-weight:700;cursor:pointer;transition:all .2s ease;box-sizing:border-box;display:flex;align-items:center;justify-content:center}.action-btn:hover{background:#edf2ff;border-color:#4c6ef5;color:#3b5bdb}.action-btn:active{transform:scale(.96)}.button-group{display:flex;align-items:center;background:#f8f9fa;border:1px solid #e1e4e8;border-radius:6px;height:34px;padding:2px;box-sizing:border-box}.button-group .text-btn{border:none;background:transparent;border-radius:4px;height:100%;padding:0 12px;font-size:.8em;font-weight:600;color:#495057;cursor:pointer;transition:all .2s}.button-group .text-btn:hover{background:#fff;color:#4c6ef5;box-shadow:0 1px 3px #0000000d}.button-group .text-btn:active{transform:scale(.96)}.bulk-controls-row{display:flex;align-items:center;gap:12px}.selection-bulk-actions .text-btn:hover{background:#f1f3f5}.assignment-creator .delete-selected-btn{background:#fff;color:#ff6b6b;border:1px solid #ffc9c9;border-radius:6px;height:34px;padding:0 10px;font-size:.75em;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:4px;transition:all .2s cubic-bezier(.4,0,.2,1)}.assignment-creator .delete-selected-btn:hover{background:#fff5f5;border-color:#ff8787;color:#fa5252;transform:translateY(-1px);box-shadow:0 2px 8px #ff6b6b1a}.assignment-creator .delete-selected-btn:active{transform:translateY(0) scale(.98)}.library-right-actions button{height:34px;display:flex;align-items:center;gap:6px;padding:0 16px;border-radius:8px;font-size:.85em;font-weight:600;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);white-space:nowrap}.selection-status{font-size:.8rem;color:#868e96;margin-right:8px;font-weight:500}.secondary-btn.add-btn{background:#fff;border:1px solid #dee2e6;color:#495057;box-shadow:0 1px 2px #0000000d}.secondary-btn.add-btn:hover{background:#f8f9fa;border-color:#adb5bd;color:#212529}.primary-btn.save-hint{background:#4c6ef5;border:none;color:#fff;box-shadow:0 4px 12px #4c6ef533}.primary-btn.save-hint:hover{background:#3b5bdb;box-shadow:0 6px 16px #4c6ef54d;transform:translateY(-2px)}.apply-btn{background:#4c6ef5;border:none;color:#fff;box-shadow:0 4px 12px #4c6ef526}.apply-btn:hover:not(:disabled){background:#3b5bdb;transform:translateY(-2px);box-shadow:0 6px 16px #4c6ef540}.apply-btn:disabled{background:#f1f3f5;color:#adb5bd;box-shadow:none;cursor:not-allowed}.inline-sentence-list{max-height:180px;overflow-y:hidden;border:none;background:transparent;padding:2px;transition:max-height .3s ease-in-out}.inline-sentence-list.expanded{max-height:800px;overflow-y:scroll}.library-expand-toggle{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:8px;margin-top:8px;background:#f8f9fa;border:1px solid #e1e4e8;border-radius:8px;color:#4c6ef5;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s}.library-expand-toggle:hover{background:#edf2ff;border-color:#4c6ef5}.library-expand-toggle svg{transition:transform .3s ease}.library-expand-toggle svg.rotated{transform:rotate(180deg)}.sentence-item{display:flex;align-items:center;padding:8px 16px;gap:16px;background:#fff;border:1px solid #e9ecef;border-radius:8px;margin-bottom:4px;transition:all .2s ease;cursor:pointer}.sentence-item:hover{border-color:#ced4da;box-shadow:0 2px 8px #00000008;transform:translateY(-1px)}.sentence-item.selected{background:#f0f7ff;border-color:#74c0fc;box-shadow:0 2px 4px #228be61a}.sentence-item.editing,.sentence-item.adding-new{background:#fff;border:2px solid #228be6;cursor:default;padding:16px}.sentence-item input[type=checkbox]{width:18px;height:18px;cursor:pointer;margin:0;accent-color:#228be6}.sentence-zh{font-size:1em;font-weight:500;color:#212529;letter-spacing:.02em}.sentence-details{display:flex;gap:12px;font-size:.9em;color:#868e96;align-items:center}.sentence-py{font-family:inherit;color:#495057}.sentence-en{color:#adb5bd}.sentence-edit-form{flex:1;display:flex;flex-direction:column;gap:10px}.edit-row{display:flex;gap:10px}.edit-input{padding:8px 12px;border:1px solid #ced4da;border-radius:8px;font-size:.95em;transition:border-color .2s}.edit-input:focus{border-color:#228be6;outline:none;box-shadow:0 0 0 3px #228be61a}.edit-input.zh{width:100%;font-size:1.1em}.edit-input.py,.edit-input.en{flex:1}.edit-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.done-btn{background:#228be6;color:#fff;border:none}.done-btn:hover{background:#1c7ed6}.sentence-controls{display:flex;gap:8px;opacity:0;transition:opacity .2s}.sentence-item:hover .sentence-controls,.sentence-item.selected .sentence-controls{opacity:1}.icon-btn{width:32px;height:32px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:50%;color:#868e96;border:1px solid transparent;background:transparent;transition:all .2s}.icon-btn:hover{background:#f1f3f5;color:#495057;border-color:#dee2e6}.icon-btn.edit:hover{color:#228be6;background:#e7f5ff;border-color:#74c0fc}.icon-btn.delete:hover{color:#fa5252;background:#fff5f5;border-color:#ffc9c9}.delete-confirm-actions{display:flex;gap:4px;align-items:center}.icon-btn.confirm-delete{color:#40c057}.icon-btn.confirm-delete:hover{background:#ebfbee;border-color:#b2f2bb}.icon-btn.cancel-delete{color:#868e96}.icon-btn.cancel-delete:hover{background:#f8f9fa;border-color:#dee2e6}.selection-status{font-weight:600;color:#495057;font-size:.95em}.apply-btn{height:40px;padding:0 24px;background:#228be6;color:#fff;font-weight:600;font-size:.95em;border:none;border-radius:6px;cursor:pointer;box-shadow:0 2px 4px #228be64d;transition:all .2s}.apply-btn:hover:not(:disabled){background:#1c7ed6;transform:translateY(-1px);box-shadow:0 4px 8px #228be666}.apply-btn:disabled{background:#e9ecef;color:#adb5bd;box-shadow:none;cursor:not-allowed}.library-loading,.library-empty{padding:60px 20px;text-align:center;color:#adb5bd;background:#f8f9fa;border:1px dashed #dee2e6;border-radius:8px;font-size:.95em}.correction-container{display:flex;flex-direction:column;gap:20px}.correction-input-section{display:flex;flex-direction:column;gap:15px}.correction-textarea{width:100%;padding:15px;border:1px solid #ddd;border-radius:6px;font-size:16px;font-family:inherit;resize:vertical;min-height:200px;background-color:#fff;box-sizing:border-box}.ignore-tones-option{display:flex;align-items:center;gap:8px;font-size:14px;color:#555;cursor:pointer;-webkit-user-select:none;user-select:none}.ignore-tones-option input{cursor:pointer}.correction-result-section{background:#fff;padding:20px;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-top:20px}.result-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:10px;border-bottom:1px solid #eee}.result-header h3{margin:0;color:#333}.correction-list{display:flex;flex-direction:column;gap:15px}.correction-item{padding:15px;border-radius:6px;background:#fff;border:1px solid #eee}.correction-item.needs-fix{border-left:4px solid #ff4d4f}.correction-item.perfect{border-left:4px solid #52c41a;background:#f6ffed}.correction-question{font-size:1.1em;margin-bottom:10px;color:#333}.correction-row{display:flex;margin-bottom:8px;line-height:1.5}.correction-row .label{font-weight:600;width:90px;color:#666;flex-shrink:0}.correction-row.correction .value{color:#d32f2f;font-weight:500}.correction-row.perfect-msg .value{color:#389e0d;font-weight:500}.correction-row.standard .value{color:#1971c2;font-weight:500}.result-actions{display:flex;align-items:center;gap:15px}.copy-options{display:flex;gap:10px;font-size:.9em;color:#555;background:#f8f9fa;padding:6px 12px;border-radius:4px;border:1px solid #eee}.copy-options label{display:flex;align-items:center;gap:4px;cursor:pointer;-webkit-user-select:none;user-select:none}.diff-add{background-color:#e6ffec;color:#2f9e44;padding:0 2px;border-radius:2px}.diff-rem{background-color:#ffe3e3;color:#c92a2a;text-decoration:line-through;padding:0 2px;border-radius:2px;margin-right:2px}.grammar-filter-group{flex:0 0 50%;min-width:0}.grammar-filter-chips{display:flex;flex-wrap:wrap;gap:6px;padding:4px 0}.grammar-chip{padding:6px 12px;border-radius:20px;background:#f1f3f5;border:1px solid #dee2e6;color:#495057;cursor:pointer;font-size:.85rem;transition:all .2s;display:flex;align-items:center;gap:6px;white-space:nowrap}.grammar-chip:hover{background:#e9ecef;border-color:#ced4da;transform:translateY(-1px)}.grammar-chip.active{color:#fff;border-color:transparent;box-shadow:0 2px 8px #00000026}.grammar-chip.color-blue{background:var(--color-blue-bg);color:var(--color-blue-dark);border-color:#dbe4ff}.grammar-chip.color-green{background:var(--color-green-bg);color:var(--color-green-dark);border-color:#dcfce7}.grammar-chip.color-orange{background:var(--color-orange-bg);color:var(--color-orange-dark);border-color:#ffedd5}.grammar-chip.color-purple{background:var(--color-purple-bg);color:var(--color-purple-dark);border-color:#f3e8ff}.grammar-chip.active.color-blue{background:var(--color-blue-dark);color:#fff;border-color:var(--color-blue-dark)}.grammar-chip.active.color-green{background:var(--color-green-dark);color:#fff;border-color:var(--color-green-dark)}.grammar-chip.active.color-orange{background:var(--color-orange-dark);color:#fff;border-color:var(--color-orange-dark)}.grammar-chip.active.color-purple{background:var(--color-purple-dark);color:#fff;border-color:var(--color-purple-dark)}.grammar-chip-count{font-size:.65rem;opacity:.7;margin-left:2px}.grammar-chip.active .grammar-chip-count{opacity:.85}.grammar-chip.clear-chip{color:#868e96;background:#f1f3f5;border-color:#dee2e6}.grammar-chip.clear-chip:hover{color:#e03131;background:#fff5f5;border-color:#ffc9c9}.grammar-chip.save-chip,.grammar-chip.load-chip{color:#868e96;background:#f1f3f5;border-color:#dee2e6}.grammar-chip.save-chip:hover{color:#2f9e44;background:#ebfbee;border-color:#b2f2bb}.grammar-chip.load-chip:hover{color:#e8590c;background:#fff4e6;border-color:#ffd8a8}.tags-saved-tip{font-size:.7rem;font-weight:600;color:#2f9e44;animation:fadeInOut 2s ease forwards}@keyframes fadeInOut{0%{opacity:0;transform:translateY(2px)}15%{opacity:1;transform:translateY(0)}75%{opacity:1}to{opacity:0}}.grammar-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}.grammar-tag{display:inline-block;font-size:.65rem;font-weight:600;color:#5c7cfa;background:#edf2ff;padding:1px 6px;border-radius:8px;letter-spacing:.01em}.auto-fill-btn{background:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;cursor:pointer;font-size:1rem;padding:0 8px;display:flex;align-items:center;justify-content:center;transition:all .2s;height:38px;margin:0 4px}.auto-fill-btn:hover:not(:disabled){background:#e9ecef;border-color:#adb5bd;transform:scale(1.1)}.auto-fill-btn:disabled{opacity:.5;cursor:not-allowed}.tag-edit-section{margin-top:12px;padding-top:12px;border-top:1px solid #f1f3f5;display:flex;flex-direction:column;gap:8px}.edit-tags{display:flex;flex-wrap:wrap;gap:6px}.grammar-tag.editable{padding-right:4px;display:flex;align-items:center;gap:4px}.remove-tag{background:transparent;border:none;color:#ff6b6b;font-size:1.2rem;cursor:pointer;line-height:1;padding:0 4px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background .2s}.remove-tag:hover{background:#ff6b6b1a}.add-tag-input{display:flex;gap:4px;align-items:center}.add-tag-input input{flex:1;width:auto;height:30px;padding:0 8px;font-size:.85em;border:1px dashed #dee2e6;border-radius:4px;background:#f8f9fa;transition:all .2s}.tag-edit-input{width:80px;height:24px;padding:0 4px;font-size:.85em;border:1px solid #1a73e8;border-radius:4px;outline:none;background:#fff}.add-tag-input input:focus{outline:none;border-color:#4dabf7;background:#fff;border-style:solid}.tag-manager-container{display:flex;flex-direction:column;gap:2rem}.tag-definition-section,.batch-operations-section,.sentence-tag-editor{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:1.5rem}.tag-manager-container h3{margin-top:0;margin-bottom:.5rem;color:#212529;font-size:1.2rem}.tag-manager-container .subtitle{color:#6c757d;font-size:.9rem;margin-bottom:1rem}.lesson-tags-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.add-tag-group{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.add-tag-group input{padding:.5rem;border:1px solid #ced4da;border-radius:4px;width:200px;min-width:100px}.save-tags-btn{margin-left:auto}.tags-saved-tip{color:#2b8a3e;font-weight:500}.batch-actions-row{display:flex;gap:1rem;align-items:center}.auto-assign-hint{color:#868e96;font-size:.85rem;font-style:italic}.save-library-reminder{margin-top:1rem;padding:1rem;background:#fff3cd;border:1px solid #ffeeba;border-radius:4px;display:flex;justify-content:space-between;align-items:center}.save-library-reminder p{margin:0;color:#856404;font-weight:500}.selection-actions{display:flex;gap:1rem;align-items:center;margin-bottom:1rem;font-size:.9rem;color:#495057}.batch-tag-edit-bar{display:flex;gap:.5rem;align-items:center;padding:1rem;background:#e9ecef;border-radius:4px;margin-bottom:1rem}.batch-tag-edit-bar select{padding:.4rem;border:1px solid #ced4da;border-radius:4px;min-width:150px}.danger-text{color:#c92a2a;border-color:#ffc9c9}.danger-text:hover{background:#fff5f5}.danger-btn{background-color:#fff;color:#c92a2a;border:1px solid #ffc9c9;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-weight:500;transition:all .2s}.danger-btn:hover{background-color:#fff5f5;border-color:#fa5252}.tag-manager-container{display:grid;grid-template-columns:1fr 2fr;grid-template-rows:auto 1fr;gap:24px}.tag-definition-section,.batch-operations-section,.sentence-tag-explorer{background:#fff;border-radius:16px;padding:24px;box-shadow:0 4px 20px #0000000a;border:1px solid #edf2f7;transition:transform .3s ease,box-shadow .3s ease}.tag-definition-section:hover,.batch-operations-section:hover,.sentence-tag-explorer:hover{box-shadow:0 8px 30px #0000000f}.tag-definition-section{grid-column:1;grid-row:1 / 3}.batch-operations-section{grid-column:2;grid-row:1}.sentence-tag-explorer{grid-column:2;grid-row:2;display:flex;flex-direction:column}.tag-manager-container h3{margin-top:0;margin-bottom:8px;color:#2d3748;font-size:1.25rem;font-weight:700;letter-spacing:-.01em}.subtitle{color:#718096;font-size:.85rem;margin-bottom:24px;line-height:1.5}.lesson-tags-list{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:32px;padding:16px;background:#f7fafc;border-radius:12px;border:1px dashed #e2e8f0;min-height:100px;align-content:flex-start}.premium-grammar-chip{display:inline-flex;align-items:center;background:linear-gradient(135deg,#e0e7ff,#c7d2fe);color:#3730a3;padding:6px 14px;border-radius:20px;font-size:.9rem;font-weight:600;box-shadow:0 2px 4px #c7d2fe80;transition:all .2s cubic-bezier(.4,0,.2,1);border:1px solid rgba(199,210,254,.8)}.premium-grammar-chip.small{padding:4px 10px;font-size:.8rem;background:linear-gradient(135deg,#f3f4f6,#e5e7eb);color:#4b5563;border-color:#d1d5db;box-shadow:none}.premium-grammar-chip:hover{transform:translateY(-2px);box-shadow:0 4px 12px #c7d2fecc}.premium-grammar-chip.editing{background:#fff;border-color:#667eea;box-shadow:0 0 0 3px #667eea26;outline:none;font-family:inherit;font-size:.9rem;padding:4px 12px;width:auto;min-width:80px;margin:0;transform:none}.premium-grammar-chip.color-blue,.premium-grammar-chip.small.color-blue{background:linear-gradient(135deg,#e0e7ff,#c7d2fe);color:#3730a3;border-color:#c7d2fecc}.premium-grammar-chip.color-green,.premium-grammar-chip.small.color-green{background:linear-gradient(135deg,#dcfce7,#bbf7d0);color:#166534;border-color:#bbf7d0cc}.premium-grammar-chip.color-orange,.premium-grammar-chip.small.color-orange{background:linear-gradient(135deg,#ffedd5,#fed7aa);color:#9a3412;border-color:#fed7aacc}.premium-grammar-chip.color-purple,.premium-grammar-chip.small.color-purple{background:linear-gradient(135deg,#f3e8ff,#e9d5ff);color:#6b21a8;border-color:#e9d5ffcc}.color-picker-row{display:inline-flex;gap:6px;margin-left:8px;align-items:center}.color-picker-row.inline{margin:0 8px}.color-picker-btn{width:20px;height:20px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .2s,border-color .2s;padding:0}.color-picker-btn:hover{transform:scale(1.1)}.color-picker-btn.active{border-color:#343a40;transform:scale(1.15);box-shadow:0 0 0 2px #fffc inset}.color-picker-btn.color-blue{background:#748ffc}.color-picker-btn.color-green{background:#51cf66}.color-picker-btn.color-orange{background:#ff922b}.color-picker-btn.color-purple{background:#b197fc}.remove-tag{background:transparent;border:none;color:inherit;opacity:.6;margin-left:6px;font-size:1.1rem;cursor:pointer;line-height:1;padding:0 2px;transition:opacity .2s,transform .2s;border-radius:50%}.remove-tag:hover{opacity:1;transform:scale(1.2);color:#e53e3e}.add-tag-group{display:flex;gap:12px;align-items:center}.premium-input{flex:1;height:42px;padding:0 16px;border:2px solid #e2e8f0;border-radius:10px;font-size:.95rem;transition:all .3s ease;background:#f8fafc;box-shadow:inset 0 2px 4px #00000003}.premium-input:focus{outline:none;border-color:#667eea;background:#fff;box-shadow:0 0 0 3px #667eea26}.premium-btn{height:42px;padding:0 20px;border-radius:10px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);border:none;display:inline-flex;align-items:center;justify-content:center}.premium-btn:active{transform:scale(.97)}.premium-btn:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.premium-btn.primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 14px #667eea66}.premium-btn.primary:hover:not(:disabled){box-shadow:0 6px 20px #667eea99;transform:translateY(-1px)}.premium-btn.secondary{background:#edf2f7;color:#4a5568}.premium-btn.secondary:hover:not(:disabled){background:#e2e8f0;color:#2d3748}.premium-btn.danger{background:#fff5f5;color:#e53e3e;border:1px solid #fed7d7}.premium-btn.danger:hover:not(:disabled){background:#fed7d7;color:#c53030}.premium-btn.danger-light{background:#fff;color:#e53e3e;border:1px dashed #feb2b2}.premium-btn.danger-light:hover:not(:disabled){background:#fff5f5;border-style:solid}.batch-actions-row{display:flex;gap:16px;margin-top:24px}.batch-tag-edit-glass{background:#ffffffb3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.5);padding:16px;border-radius:12px;display:flex;gap:12px;margin-bottom:20px;box-shadow:0 4px 15px #00000008;align-items:center}.premium-select{height:42px;padding:0 16px;border:2px solid #e2e8f0;border-radius:10px;font-size:.95rem;background:#fff;color:#2d3748;min-width:150px;outline:none;transition:all .2s}.premium-select:focus{border-color:#667eea}.tag-manager-sentence-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:8px;max-height:400px;padding-right:8px;border:none;background:transparent}.tag-manager-sentence-list::-webkit-scrollbar{width:6px}.tag-manager-sentence-list::-webkit-scrollbar-track{background:#f1f5f9;border-radius:4px}.tag-manager-sentence-list::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.tag-manager-sentence-list .sentence-item{display:flex;align-items:center;gap:1rem;padding:.75rem;border-radius:8px;background:#fff;border:1px solid #e2e8f0;cursor:pointer;transition:all .2s ease;box-shadow:0 1px 2px #00000005}.tag-manager-sentence-list .sentence-item:hover{background:#f8fafc;border-color:#cbd5e1;box-shadow:0 4px 6px #0000000a}.tag-manager-sentence-list .sentence-item.selected{background:#eff6ff;border-color:#bfdbfe;box-shadow:inset 0 0 0 1px #bfdbfe}.sentence-content-mini{display:flex;flex-direction:column;flex:1;min-width:0}.sentence-content-mini .zh{font-size:1.1rem;color:#1e293b;font-weight:500}.sentence-content-mini .en{font-size:.9rem;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.premium-grammar-tags{display:flex;flex-wrap:wrap;gap:6px;margin-left:auto}.filter-controls-container{display:flex;flex-direction:column;gap:12px;width:100%;margin-bottom:8px}.color-filter-row{display:flex;align-items:center;gap:10px;padding:4px 0}.color-filter-btn{width:24px;height:24px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:all .2s;padding:0}.color-filter-btn:hover{transform:scale(1.1)}.color-filter-btn.active{border-color:#495057;box-shadow:0 0 0 2px #fff,0 0 0 4px #495057}.color-filter-btn.blue{background-color:var(--color-blue)}.color-filter-btn.green{background-color:var(--color-green)}.color-filter-btn.orange{background-color:var(--color-orange)}.color-filter-btn.purple{background-color:var(--color-purple)}.clear-color-filters{background:none;border:none;color:#868e96;font-size:.8rem;cursor:pointer;padding:4px 8px;border-radius:4px}.clear-color-filters:hover{background:#f1f3f5;color:#495057}.floating-selection-counter{position:fixed;bottom:24px;right:24px;display:flex;align-items:center;gap:8px;padding:12px 20px;background:linear-gradient(135deg,#4c6ef5,#3b5bdb);color:#fff;border:none;border-radius:50px;box-shadow:0 8px 24px #4c6ef566;font-weight:600;z-index:1000;animation:slideUp .3s cubic-bezier(.4,0,.2,1);cursor:pointer;transition:transform .2s,box-shadow .2s,opacity .2s;outline:none;font-family:inherit;font-size:inherit}.floating-selection-counter:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 12px 32px #4c6ef580}.floating-selection-counter:active:not(:disabled){transform:translateY(0) scale(.98)}.floating-selection-counter:disabled{opacity:.6;cursor:not-allowed}.counter-number{font-size:1.4rem;font-weight:700;line-height:1;min-width:20px;text-align:center}.counter-label{font-size:.9rem;font-weight:500;opacity:.95}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media(max-width:600px){.floating-selection-counter{bottom:16px;right:16px;padding:10px 16px}.counter-number{font-size:1.2rem}.counter-label{font-size:.85rem}}.preview-section-all{display:flex;flex-direction:column;gap:12px;min-height:100px}.preview-item{background:#fff;border:1px solid #e9ecef;border-radius:12px;padding:20px;position:relative;transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 4px #00000005}.preview-item:hover{border-color:#4c6ef5;box-shadow:0 4px 12px #4c6ef514}.preview-item.en-zh{border-left:4px solid #51cf66}.preview-item.zh-en{border-left:4px solid #748ffc}.preview-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.type-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#868e96;background:#f1f3f5;padding:2px 8px;border-radius:4px}.preview-item.en-zh .type-label{color:#2b8a3e;background:#ebfbee}.preview-item.zh-en .type-label{color:#364fc7;background:#edf2ff}.item-actions{display:flex;align-items:center;gap:8px}.type-toggle-btn{background:#f8f9fa;border:1px solid #dee2e6;border-radius:6px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.1rem;color:#495057;transition:all .2s}.type-toggle-btn:hover{background:#e9ecef;color:#228be6;border-color:#228be6}.drag-handle{cursor:grab;color:#adb5bd;font-size:1.2rem;padding:0 4px;-webkit-user-select:none;user-select:none}.answer-placeholder{color:#adb5bd;font-size:.9rem;margin-top:8px}.answer-real{margin-top:12px;padding-top:12px;border-top:1px dashed #e9ecef;color:#2b8a3e;font-style:italic;font-size:.95rem}.preview-container{display:flex;gap:24px;align-items:flex-start}.preview-column{flex:1;min-width:0;background:#f8f9fa;padding:16px;border-radius:16px;border:1px solid #e9ecef}.preview-column h3{margin-top:0;margin-bottom:16px;font-size:1rem;color:#495057;font-weight:600;text-align:center;padding-bottom:12px;border-bottom:2px solid #fff}.preview-item.compact{padding:6px 10px;margin-bottom:6px;border-radius:6px;box-shadow:0 1px 2px #0000000d}.preview-item.compact .preview-item-header{margin-bottom:0}.preview-item.compact .item-main{flex:1;font-size:.95rem;color:#212529}.preview-item.compact .answer-real{margin-top:6px;padding-top:6px;font-size:.85rem}.drop-placeholder{padding:20px;border:2px dashed #dee2e6;border-radius:8px;color:#adb5bd;text-align:center;font-size:.9rem;background:#ffffff80}.preview-item.is-dragging-overlay{opacity:.9;box-shadow:0 5px 15px #00000026;cursor:grabbing;background:#fff;border:2px solid #007bff;transform:scale(1.02)}.drag-handle{cursor:grab;padding:4px;color:#ced4da;-webkit-user-select:none;user-select:none;font-size:1.2rem}.drag-handle:active{cursor:grabbing}.preview-item.compact:hover{border-color:#adb5bd}.preview-item.compact:hover .drag-handle{color:#adb5bd}.prep-layout{display:grid;grid-template-columns:minmax(320px,380px) 1fr;gap:1.25rem}.prep-sidebar,.prep-preview{display:flex;flex-direction:column;gap:.9rem;border-radius:16px;border:1px solid #dbe4ff;box-shadow:0 10px 26px #0f172a14}.prep-sidebar{background:linear-gradient(180deg,#fff,#f8fbff)}.prep-preview{background:linear-gradient(180deg,#fff,#fdfdff)}.prep-content{font-size:1.03rem}.prep-tabs{display:flex;gap:.5rem}.prep-form{display:flex;flex-direction:column;gap:.85rem}.prep-submit-row{display:flex;justify-content:flex-end;gap:.5rem}.prep-form label{font-size:.9rem;color:var(--text-muted);display:flex;flex-direction:column;gap:.45rem}.prep-form textarea{border-radius:10px;background:#fff;border:1px solid #d9e1f6;font-size:.92rem}.prep-checkbox{flex-direction:row!important;align-items:center;gap:.5rem!important}.prep-kids-toggle input{position:absolute;opacity:0;pointer-events:none}.toggle-track{width:44px;height:24px;border-radius:999px;background:#cbd5e1;border:1px solid #94a3b8;display:inline-flex;align-items:center;padding:2px;transition:all .2s ease}.toggle-thumb{width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #00000040;transform:translate(0);transition:transform .2s ease}.prep-kids-toggle input:checked+.toggle-track{background:#6366f1;border-color:#4f46e5}.prep-kids-toggle input:checked+.toggle-track .toggle-thumb{transform:translate(20px)}.toggle-label{font-weight:600;color:#334155}.prep-history-list{max-height:70vh;overflow-y:auto}.prep-history-item{border:1px solid #d9e1f6;border-radius:12px;padding:.75rem;margin-bottom:.5rem;display:flex;justify-content:space-between;gap:.75rem;background:#fff}.prep-history-meta{display:flex;flex-direction:column;gap:.2rem}.prep-history-meta span{font-size:.8rem;color:var(--text-muted)}.prep-history-actions{display:flex;gap:.4rem;align-items:center}.prep-preview-header{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap}.prep-preview-actions{display:flex;gap:.5rem}.prep-preview h2{margin:0;color:#1e3a8a;font-size:1.35rem}.prep-error{border:1px solid #fecaca;background:#fef2f2;color:#991b1b;padding:.6rem .75rem;border-radius:var(--radius-md)}.prep-live-log{margin:0;border:1px solid #0f172a;border-radius:10px;background:#020617;color:#cbd5e1;padding:.6rem;max-height:180px;overflow-y:auto;font-size:.75rem}.prep-content section{margin-bottom:1.4rem;scroll-margin-top:14px}.prep-jump-nav{position:sticky;top:0;z-index:2;display:flex;flex-wrap:wrap;gap:.45rem;padding:.55rem 0 .65rem;background:linear-gradient(180deg,#fff 65%,#fff0)}.prep-jump-chip{text-decoration:none;border:1px solid #dbe4ff;border-radius:999px;padding:.22rem .62rem;background:#f8fbff;color:#1e3a8a;font-size:.84rem;font-weight:600}.prep-jump-chip:hover{background:#eef2ff}.prep-section-title{display:flex;align-items:center;gap:.45rem;margin-bottom:.8rem;color:#0f172a;font-size:1.22rem}.prep-word-card,.prep-char-card{border:1px solid #dbe4ff;border-radius:14px;padding:.95rem;margin-bottom:.85rem;background:#fff;box-shadow:0 6px 18px #1e293b0f}.prep-input-card{border:1px solid #bfdbfe;border-radius:12px;background:linear-gradient(180deg,#fff,#eff6ff);padding:.8rem;display:grid;gap:.4rem;color:#334155}.prep-char-head{display:flex;align-items:baseline;gap:.65rem}.prep-char-main{font-size:1.6rem;line-height:1}.prep-info-block{margin-top:.5rem;border-radius:10px;padding:.5rem .6rem;border:1px solid transparent}.prep-info-block strong{display:block;font-size:.75rem;letter-spacing:.03em;text-transform:uppercase;margin-bottom:.18rem}.prep-info-block p{margin:0;font-size:.95rem}.info-decomp{background:#eef2ff;border-color:#c7d2fe;color:#3730a3}.info-etymology{background:#ecfeff;border-color:#a5f3fc;color:#155e75}.info-memory{background:#fefce8;border-color:#fde68a;color:#854d0e}.info-related{background:#f0fdf4;border-color:#bbf7d0;color:#166534}.info-confused{background:#fff7ed;border-color:#fdba74;color:#9a3412}.info-mistake{background:#fff1f2;border-color:#fecdd3;color:#9f1239}.info-grammar-exp{background:#f0f9ff;border-color:#bae6fd;color:#0c4a6e}.info-grammar-comp{background:#f5f3ff;border-color:#ddd6fe;color:#5b21b6}.prep-word-head{display:flex;gap:.6rem;align-items:baseline;flex-wrap:wrap}.prep-word-head span{color:var(--text-muted);font-size:.95rem}.prep-example-card{margin-top:.5rem;padding:.7rem;border:1px solid #e2e8f0;border-radius:10px;background:linear-gradient(180deg,#f8fbff,#f7fafc)}.example-toggle{margin-top:.45rem;border:1px solid #c7d2fe;border-radius:8px;background:#eef2ff;color:#3730a3;font-size:.8rem;font-weight:600;padding:.34rem .55rem}.example-toggle:hover{background:#e0e7ff}.example-en{font-weight:600;color:#1f2937;font-size:1rem}.example-zh,.example-py,.example-hidden{color:var(--text-muted);font-size:.96rem;margin-top:.28rem}.prep-word-meta{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:.6rem;font-size:.84rem;color:#475569}.prep-grammar-card{border:1px solid #ddd6fe;border-radius:14px;padding:.95rem;margin-bottom:.85rem;background:linear-gradient(180deg,#fff,#faf9ff);box-shadow:0 6px 18px #4c1d950f}.prep-structure{margin-left:.55rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:#4338ca;font-size:.82rem}.prep-mistakes{margin-top:.6rem;display:grid;gap:.45rem}.prep-mistake-item{border:1px solid #fecaca;background:#fff7f7;border-radius:8px;padding:.45rem .55rem;font-size:.87rem}.prep-activity-wrap,.prep-exercise-wrap,.prep-slide-wrap{display:grid;gap:.65rem}.prep-activity-card{display:grid;grid-template-columns:34px 1fr;gap:.7rem;align-items:start;border:1px solid #bfdbfe;border-radius:12px;padding:.75rem;background:linear-gradient(180deg,#fff,#eff6ff)}.prep-activity-index{width:28px;height:28px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#2563eb;color:#fff;font-size:.8rem;font-weight:700}.prep-activity-card p{margin:0}.prep-exercise-card{border:1px solid #f5d0fe;border-radius:12px;padding:.75rem;background:linear-gradient(180deg,#fff,#fdf4ff)}.prep-exercise-top{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.prep-exercise-type{background:#ec4899;color:#fff;border-radius:999px;padding:.12rem .5rem;font-size:.72rem;font-weight:700}.prep-exercise-no{color:#64748b;font-size:.78rem;font-weight:600}.prep-exercise-question{margin:.5rem 0;color:#0f172a;font-weight:600}.prep-exercise-options{display:flex;flex-wrap:wrap;gap:.35rem}.prep-exercise-options span{border:1px solid #e9d5ff;border-radius:999px;padding:.16rem .5rem;background:#faf5ff;color:#6b21a8;font-size:.78rem}.prep-exercise-answer{margin-top:.55rem;border-top:1px dashed #d8b4fe;padding-top:.4rem;color:#166534;font-weight:600}.exercise-toggle{margin-top:.5rem;border:1px solid #c4b5fd;background:#f5f3ff;color:#5b21b6;border-radius:8px;font-size:.8rem;font-weight:600;padding:.28rem .6rem}.exercise-toggle:hover{background:#ede9fe}.prep-exercise-answer-hidden{margin-top:.55rem;border-top:1px dashed #d8b4fe;padding-top:.4rem;color:#94a3b8;font-weight:600}.prep-slide-card{border:1px solid #fcd34d;border-radius:12px;padding:.8rem;background:linear-gradient(180deg,#fff,#fffbeb)}.prep-slide-card h4{margin:0 0 .55rem;color:#92400e}.prep-slide-content{display:grid;gap:.65rem}.prep-slide-line{border:1px solid #fde68a;border-radius:10px;padding:.55rem;background:#fff}.prep-ruby-line{display:flex;flex-wrap:wrap;gap:.25rem;margin-bottom:.3rem}.prep-ruby-line ruby{font-size:1.05rem;color:#1f2937}.prep-ruby-line rt{font-size:.62rem;color:#64748b}.prep-evo-images{display:flex;gap:.5rem;flex-wrap:wrap}.prep-evo-item{display:flex;flex-direction:column;align-items:center;gap:.22rem}.prep-evo-images img{width:54px;height:54px;border-radius:6px;border:1px solid #dbe4ff;object-fit:contain;padding:.2rem;background:#fff}.prep-evo-item span{font-size:.68rem;color:#64748b;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:999px;padding:.05rem .35rem}@media(max-width:1024px){.prep-layout{grid-template-columns:1fr}}.sidebar{width:280px;background:var(--bg-card);border-right:1px solid var(--border-color);padding:1.5rem .5rem;display:flex;flex-direction:column;gap:1.5rem;height:100%;overflow-y:auto;box-sizing:border-box;flex-shrink:0}.sidebar-title{font-size:1.25rem;color:var(--primary);margin:0 .5rem .5rem;display:flex;align-items:center;gap:.5rem;font-weight:700}.sidebar-title:before{content:"📚"}.tree-view{display:flex;flex-direction:column;gap:.5rem}.tree-view h2{font-size:.85rem;text-transform:uppercase;color:var(--text-muted);letter-spacing:.05em;padding:0 .5rem;margin-bottom:1rem}.hsk-node{display:flex;flex-direction:column}.node-header{display:flex;align-items:center;gap:.5rem;padding:.6rem .8rem;border-radius:var(--radius-md);cursor:pointer;font-weight:600;color:var(--text-main);transition:background .2s}.node-header:hover{background:var(--bg-main)}.node-header .arrow{font-size:.7rem;transition:transform .2s}.node-header.expanded .arrow{transform:rotate(90deg)}.lesson-nodes{display:flex;flex-direction:column;margin-left:1.5rem;margin-top:.25rem;border-left:1px solid var(--border-color)}.lesson-node{padding:.5rem 1rem;font-size:.9rem;color:var(--text-muted);cursor:pointer;border-radius:0 var(--radius-md) var(--radius-md) 0;transition:all .2s}.lesson-node:hover{color:var(--primary);background:#6366f10d}.lesson-node.active{color:var(--primary);background:#6366f11a;font-weight:600}@media(max-width:768px){.sidebar{width:100%;height:auto;position:static;border-right:none;border-bottom:1px solid var(--border-color);padding:1rem}}.tree-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.tree-header h2{margin-bottom:0}.add-btn{padding:.2rem .5rem;font-size:1.2rem;background:transparent;color:var(--primary);border:none;cursor:pointer;border-radius:var(--radius-sm)}.add-btn:hover{background:var(--bg-main)}.action-input-row{display:flex;gap:.25rem;padding:.5rem;margin-bottom:.5rem}.action-input-row input{flex:1;padding:.4rem;font-size:.85rem}.action-input-row button{padding:.4rem .6rem;font-size:.85rem}.node-wrapper{display:flex;justify-content:space-between;align-items:center}.node-wrapper .node-header{flex:1}.node-actions{display:none;gap:.25rem;padding-right:.5rem}.node-wrapper:hover .node-actions{display:flex}.action-icon{background:transparent;border:none;cursor:pointer;font-size:.8rem;color:var(--text-muted);padding:.25rem;border-radius:var(--radius-sm)}.action-icon:hover{background:var(--bg-main);color:var(--primary)}.action-icon.delete:hover{color:#ef4444}.inline-edit{display:flex;gap:.25rem;flex:1;align-items:center}.inline-edit input{flex:1;padding:.2rem .4rem;font-size:.85rem}.inline-edit button{padding:.2rem .4rem;font-size:.75rem}
