@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";:root{--bg-main: #f5f7fb;--bg-card: #ffffff;--bg-input: #f0f2f8;--bg-hover: #eef0f8;--text-primary: #1e1e2e;--text-secondary: #5a5a72;--text-muted: #9090a8;--accent-indigo: #4f46e5;--accent-purple: #7c3aed;--accent-blue: #3b82f6;--gradient-main: linear-gradient(135deg, #4f46e5, #7c3aed);--border-subtle: rgba(0, 0, 0, .08);--shadow-card: 0 8px 30px rgba(0, 0, 0, .08);--shadow-hover: 0 12px 35px rgba(0, 0, 0, .12);--radius-card: 20px;--radius-btn: 14px;--radius-badge: 9999px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,system-ui,-apple-system,sans-serif;background:var(--bg-main);color:var(--text-primary);min-height:100vh;overflow-x:hidden}.lingodesk-container{height:100vh;height:100dvh;overflow:hidden;display:flex;flex-direction:column;background:radial-gradient(ellipse at 20% 0%,rgba(79,70,229,.06),transparent 60%),radial-gradient(ellipse at 80% 100%,rgba(124,58,237,.04),transparent 60%),var(--bg-main)}.lingodesk-header{display:flex;align-items:center;justify-content:space-between;padding:14px 28px;background:#ffffffd9;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--border-subtle);position:sticky;top:0;z-index:100}.header-brand{display:flex;align-items:center;gap:10px}.logo-icon{display:flex;align-items:center;justify-content:center;width:38px;height:38px;background:var(--gradient-main);border-radius:11px;color:#fff;flex-shrink:0}.logo-icon.small{width:32px;height:32px;border-radius:9px}.lingodesk-header h1{font-size:1.3rem;font-weight:700;background:linear-gradient(to right,var(--accent-indigo),var(--accent-purple));background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:-.02em}.header-right{display:flex;align-items:center;gap:12px}.header-btn-group{display:contents}.settings-btn,.back-btn{display:flex;align-items:center;gap:5px;padding:7px 12px;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-btn);color:var(--text-secondary);cursor:pointer;font-size:.82rem;font-family:Inter,sans-serif;transition:all .2s}.settings-btn:hover,.back-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.mode-toggle-btn{display:flex;align-items:center;gap:4px;padding:6px 14px;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-badge);color:var(--text-secondary);cursor:pointer;font-family:Inter,sans-serif;font-size:.78rem;font-weight:500;transition:all .2s;white-space:nowrap}.mode-toggle-btn:hover{background:var(--bg-hover)}.mode-toggle-btn.active{background:#4f46e51a;border-color:var(--accent-indigo);color:var(--accent-indigo)}.lingodesk-main{flex:1;display:flex;align-items:center;justify-content:center;padding:32px 20px}.canvas-card{width:100%;max-width:700px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-card);box-shadow:var(--shadow-card);overflow:hidden}.canvas-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--border-subtle)}.canvas-header-right{display:flex;align-items:center;gap:8px}.clear-btn{font-size:.75rem;padding:3px 10px;border-radius:6px;border:1px solid var(--border-subtle);background:transparent;color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s}.clear-btn:hover{background:#ff50501f;color:#f87171;border-color:#f87171}.canvas-header h2{font-size:.8rem;font-weight:600;letter-spacing:.12em;color:var(--text-muted);display:flex;align-items:center;gap:8px}.cefr-selector-wrap{position:relative;display:flex;align-items:center}.cefr-selector{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding:7px 28px 7px 12px;background:#fff;border:1.5px solid var(--accent-indigo, #4f46e5);border-radius:20px;color:var(--accent-indigo, #4f46e5);font-family:Inter,sans-serif;font-size:.82rem;font-weight:600;cursor:pointer;box-shadow:0 2px 8px #4f46e51a;transition:all .2s;outline:none}.cefr-selector:hover{box-shadow:0 4px 12px #4f46e52e}.cefr-selector:focus{box-shadow:0 0 0 3px #4f46e526}.cefr-selector-wrap:after{content:"";position:absolute;right:10px;top:50%;transform:translateY(-50%);width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid var(--accent-indigo, #4f46e5);pointer-events:none}.model-selector{position:relative}.model-selector-btn{display:flex;align-items:center;gap:8px;padding:8px 16px;background:#fff;border:1.5px solid var(--accent-blue);border-radius:var(--radius-badge);color:var(--accent-blue);cursor:pointer;font-family:Inter,sans-serif;font-size:.85rem;font-weight:600;transition:all .2s;box-shadow:0 2px 8px #3b82f61a}.model-selector-btn:hover{background:#3b82f60a;box-shadow:0 4px 12px #3b82f626}.rotate-180{transform:rotate(180deg);transition:transform .3s ease}.model-name{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.model-dropdown{position:absolute;right:0;top:100%;margin-top:10px;min-width:220px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:18px;box-shadow:0 15px 50px #0000002e;z-index:200;padding:8px;animation:dropdown-in .25s cubic-bezier(.16,1,.3,1)}@keyframes dropdown-in{0%{opacity:0;transform:translateY(-10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.model-dropdown-header{display:flex;align-items:center;justify-content:space-between;padding:8px 14px 12px;border-bottom:1px solid var(--border-subtle);margin-bottom:6px}.model-dropdown-header span{font-size:.75rem;font-weight:700;color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase}.model-dropdown-loading{padding:24px;text-align:center;color:var(--text-muted);font-size:.85rem}.model-option{display:flex;justify-content:space-between;align-items:center;width:100%;padding:12px 16px;border:none;border-radius:12px;background:transparent;cursor:pointer;font-family:Inter,sans-serif;font-size:.9rem;color:var(--text-primary);transition:all .15s;text-align:left}.model-option:hover:not(.disabled){background:#4f46e50d;color:var(--accent-blue)}.model-option.active{background:#3b82f614;color:var(--accent-blue);font-weight:700}.model-option.disabled{opacity:.5;cursor:pointer;filter:grayscale(.5)}.model-option-name{flex:1}.input-workspace{padding:0}.main-textarea{width:100%;min-height:160px;padding:20px 24px;background:transparent;border:none;color:var(--text-primary);font-family:Inter,system-ui,sans-serif;font-size:.92rem;line-height:1.8;resize:vertical;outline:none}.main-textarea::-moz-placeholder{color:var(--text-muted)}.main-textarea::placeholder{color:var(--text-muted)}.action-panel{padding:20px 24px;border-top:1px solid var(--border-subtle)}.panel-title{font-size:.7rem;font-weight:600;letter-spacing:.15em;color:var(--text-muted);margin-bottom:14px}.button-group{display:flex;justify-content:center;gap:16px}.action-btn{display:flex;flex:1;max-width:220px;flex-direction:column;align-items:center;gap:8px;padding:18px 10px;border-radius:var(--radius-btn);border:1px solid var(--border-subtle);cursor:pointer;font-family:Inter,sans-serif;font-size:.82rem;font-weight:600;text-align:center;transition:all .25s;background:var(--bg-card);color:var(--text-primary)}.action-btn small{font-size:.68rem;font-weight:400;color:var(--text-muted)}.action-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-hover)}.action-btn:disabled{opacity:.35;cursor:not-allowed}.words-btn:hover:not(:disabled){background:#4f46e50f;border-color:#4f46e54d;color:var(--accent-indigo)}.tutor-btn:hover:not(:disabled){background:#7c3aed0f;border-color:#7c3aed4d;color:var(--accent-purple)}.settings-card{max-width:520px}.settings-form{padding:24px;display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:.82rem;font-weight:600;color:var(--text-secondary)}.form-hint{font-size:.73rem;color:var(--text-muted);line-height:1.4}.form-hint a{color:var(--accent-indigo);text-decoration:none;font-weight:500}.form-hint a:hover{text-decoration:underline}.input-row{display:flex;gap:8px}.api-input,.model-select,.limit-input{flex:1;padding:10px 14px;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:10px;color:var(--text-primary);font-family:Inter,monospace;font-size:.88rem;outline:none;transition:border-color .2s}.api-input:focus,.model-select:focus,.limit-input:focus{border-color:var(--accent-indigo);box-shadow:0 0 0 3px #4f46e514}.toggle-btn{padding:10px 14px;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:10px;color:var(--text-secondary);cursor:pointer;font-size:.78rem;font-family:Inter,sans-serif;white-space:nowrap;transition:all .2s}.toggle-btn:hover{background:var(--bg-hover)}.save-btn{width:100%;padding:13px;background:var(--gradient-main);border:none;border-radius:var(--radius-btn);color:#fff;font-family:Inter,sans-serif;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .3s;letter-spacing:.02em}.save-btn:hover{transform:translateY(-1px);box-shadow:0 8px 20px #4f46e54d}.settings-status{text-align:center;padding:10px;border-radius:10px;font-size:.82rem;font-weight:500}.settings-status.success{background:#10b9811a;color:#059669}.settings-status.error{background:#ef44441a;color:#dc2626}.result-header{padding:10px 20px}.source-preview{padding:8px 24px;font-size:.73rem;color:var(--text-muted);background:var(--bg-input);border-bottom:1px solid var(--border-subtle);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.loading-display.mini{display:flex;align-items:center;padding:0 4px;gap:8px;color:var(--text-muted);font-size:.85rem}.spinner.small{width:14px;height:14px;border-width:2px}.result-main{flex:1;overflow-y:auto;padding:20px 28px;background:var(--bg-card)}.result-content{font-size:.92rem;line-height:1.75;color:var(--text-primary)}.result-hr{border:none;border-top:1px solid var(--border-subtle);margin:14px 0}.result-h2{font-size:1.1rem;font-weight:700;color:var(--accent-indigo);margin:18px 0 6px;padding-bottom:5px;border-bottom:2px solid rgba(79,70,229,.12)}.result-blockquote{border-left:3px solid var(--accent-indigo);background:#4f46e50a;padding:6px 14px;margin:4px 0;border-radius:0 10px 10px 0;font-size:.92rem;line-height:1.65;color:var(--text-primary)}.tutor-line{display:flex;align-items:flex-start;margin-bottom:4px}.section-header{display:inline-block;padding:2px 8px;background:#4f46e514;border:1px solid rgba(79,70,229,.2);border-radius:4px;font-size:.72rem;font-weight:700;color:var(--accent-indigo);margin:10px 0 4px;letter-spacing:.06em;text-transform:uppercase}.word-block{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;padding:14px 16px;margin-bottom:12px;box-shadow:0 2px 8px #0000000a}.word-block .result-h2{font-size:1.05rem;font-weight:700;color:var(--accent-indigo);margin:0 0 10px;padding-bottom:8px;border-bottom:2px solid rgba(79,70,229,.12)}.spin-icon{animation:spin 1s linear infinite}.spacer{height:12px}.tip{display:flex;gap:8px;padding:8px 12px;background:#f59e0b0f;border-radius:8px;margin:5px 0;font-size:.82rem;color:#b45309}.tip-icon{flex-shrink:0}.bullet-item{display:flex;gap:8px;padding:2px 0 2px 4px;margin-bottom:2px}.bullet-dot{color:var(--accent-indigo);font-weight:700;flex-shrink:0}.usage-example{display:flex;gap:8px;padding:5px 12px;background:#7c3aed0a;border-radius:8px;margin:3px 0;font-size:.88rem;color:var(--text-primary)}.usage-mark{color:var(--accent-purple);flex-shrink:0}.arrow-line{padding:2px 12px;font-size:.82rem;color:var(--text-secondary)}.numbered-item{display:flex;gap:8px;padding:2px 0}.num{color:var(--accent-indigo);font-weight:600;flex-shrink:0;min-width:18px}.text-line{padding:2px 0}.spacer{height:8px}.chunk-slash{color:var(--accent-purple);font-weight:700;margin:0 2px;opacity:.6}.phrase{color:var(--accent-purple)}.inline-code{background:#4f46e50f;padding:1px 5px;border-radius:4px;font-size:.85em;font-family:Inter,system-ui,sans-serif;color:var(--accent-indigo)}.sentence-block{margin-bottom:12px;animation:fadeIn .4s ease-out}.sentence-block .result-blockquote{margin-bottom:2px}.sentence-block .result-hr{margin-top:12px;opacity:.5}.natural-text,.chunked-text{font-weight:500;color:var(--text-primary);line-height:1.6;margin:0 0 4px 6px;padding:0;font-size:.92rem}.error-display{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px 20px;text-align:center}.error-icon{font-size:2rem}.error-text{font-size:.88rem;color:var(--text-secondary);line-height:1.6;max-width:360px}.retry-btn{padding:8px 20px;background:var(--gradient-main);border:none;border-radius:var(--radius-btn);color:#fff;font-family:Inter,sans-serif;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s}.retry-btn:hover{opacity:.9;transform:translateY(-1px)}.error-toast{margin:0 24px 16px;padding:10px 16px;background:#ef444414;border:1px solid rgba(239,68,68,.2);border-radius:10px;color:#dc2626;font-size:.82rem}.loading-display{display:flex;align-items:center;justify-content:center;padding:40px 20px;gap:12px;color:var(--text-muted);font-size:.85rem;font-family:Inter,sans-serif}.loading-display.mini{padding:0 4px;justify-content:flex-start}.spinner{width:24px;height:24px;border:2.5px solid rgba(79,70,229,.15);border-top-color:var(--accent-indigo);border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}.spinner.small{width:16px;height:16px;border-width:2px}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.lingodesk-footer{text-align:center;padding:14px;border-top:1px solid var(--border-subtle)}.footer-glow{font-size:.62rem;font-weight:500;letter-spacing:.18em;color:var(--text-muted)}@media(max-width:640px){.button-group{grid-template-columns:1fr}.lingodesk-header{padding:10px 14px}.canvas-card{border-radius:14px}.result-main{padding:14px}.header-right{gap:8px}.voice-select{max-width:120px}.result-header{flex-direction:column;align-items:stretch;gap:6px}.result-header .header-right{display:flex;flex-direction:column;gap:6px;align-items:stretch}.header-btn-group{display:flex;gap:8px}.header-btn-group .mode-toggle-btn{flex:1;justify-content:center}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
