.conv-page,.conv-new-page,.conv-detail-page{max-width:800px}.conv-loading{color:var(--color-text-muted);padding:40px 0}.conv-error{color:var(--color-error);padding:16px;background:#fef2f2;border-radius:var(--radius)}.conv-page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.conv-page-header h1{font-size:22px;font-weight:600}.conv-total-count{font-size:15px;font-weight:400;color:var(--color-text-muted)}.conv-filter-row{display:flex;align-items:center;gap:10px;margin-bottom:18px;flex-wrap:wrap}.conv-filter-label{font-size:13px;font-weight:500;color:var(--color-text-muted);white-space:nowrap}.conv-filter-select{padding:6px 10px;border:1px solid var(--color-border);border-radius:var(--radius);font-size:13px;color:var(--color-text);background:var(--color-bg);outline:none;transition:border-color .15s;cursor:pointer}.conv-filter-select:focus{border-color:var(--color-primary)}.conv-filter-clear{background:none;border:none;font-size:12px;color:var(--color-text-muted);cursor:pointer;padding:4px 8px;border-radius:var(--radius);transition:color .15s,background .15s}.conv-filter-clear:hover{color:var(--color-error);background:#fef2f2}.conv-pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:20px}.conv-page-btn{background:none;border:1px solid var(--color-border);border-radius:var(--radius);padding:6px 14px;font-size:13px;color:var(--color-text-muted);cursor:pointer;transition:border-color .15s,color .15s}.conv-page-btn:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.conv-page-btn:disabled{opacity:.4;cursor:default}.conv-page-info{font-size:13px;color:var(--color-text-muted);text-align:center;white-space:nowrap}.conv-page-count{font-size:12px;color:var(--color-text-muted);opacity:.8}.conv-empty{text-align:center;padding:64px 0;color:var(--color-text-muted)}.conv-empty p{margin-bottom:16px}.conv-list{display:flex;flex-direction:column;gap:12px}.conv-card{display:block;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:16px 20px;transition:box-shadow .15s,border-color .15s;color:var(--color-text)}.conv-card:hover{box-shadow:var(--shadow);border-color:#c0cfe8}.conv-card-top{display:flex;align-items:center;gap:10px;margin-bottom:4px}.conv-date{font-weight:600;font-size:15px}.conv-card-mid{font-size:13px;color:var(--color-text-muted);margin-bottom:4px}.conv-meeting-type{margin-left:4px}.conv-note{font-size:13px;color:var(--color-text-muted);font-style:italic;margin-top:2px}.conv-card-bot{display:flex;align-items:center;gap:12px;margin-top:8px;font-size:13px;color:var(--color-text-muted)}.conv-level{font-weight:500}.conv-levels{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.conv-delete-btn{margin-left:auto;background:none;border:none;color:var(--color-text-muted);font-size:12px;padding:2px 6px;border-radius:4px;opacity:0;transition:opacity .15s,color .15s}.conv-card:hover .conv-delete-btn{opacity:1}.conv-delete-btn:hover{color:var(--color-error)}.conv-badge{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:12px;text-transform:uppercase;letter-spacing:.03em}.conv-badge--pending{background:#f3f4f6;color:#6b7280}.conv-badge--processing{background:#eff6ff;color:#2563eb}.conv-badge--ready{background:#f0fdf4;color:#16a34a}.conv-badge--error{background:#fef2f2;color:#dc2626}.conv-new-page h1{font-size:22px;font-weight:600;margin-bottom:24px}.tab-bar{display:flex;gap:4px;margin-bottom:24px;border-bottom:1px solid var(--color-border);padding-bottom:0}.tab-btn{padding:8px 16px;background:none;border:none;border-bottom:2px solid transparent;font-size:14px;color:var(--color-text-muted);margin-bottom:-1px;transition:color .15s,border-color .15s}.tab-btn:hover{color:var(--color-text)}.tab-btn--active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:500}.tab-content{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:28px}.meta-form{margin-top:20px;border-top:1px solid var(--color-border);padding-top:20px;display:flex;flex-direction:column;gap:14px}.form-row{display:flex;flex-direction:column;gap:6px}.form-row label{font-size:13px;font-weight:500;color:var(--color-text-muted)}.optional{font-weight:400;opacity:.7}.form-row input,.form-row select,.form-row textarea{padding:8px 10px;border:1px solid var(--color-border);border-radius:var(--radius);font-size:14px;color:var(--color-text);background:var(--color-bg);transition:border-color .15s}.form-row input:focus,.form-row select:focus,.form-row textarea:focus{outline:none;border-color:var(--color-primary)}.transcript-textarea{width:100%;resize:vertical;line-height:1.5;font-family:SFMono-Regular,Menlo,monospace;font-size:13px!important}.form-error{color:var(--color-error);font-size:13px;margin-top:8px}.dropzone{border:2px dashed var(--color-border);border-radius:var(--radius);padding:40px 24px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s;color:var(--color-text-muted);font-size:14px;margin-bottom:0}.dropzone:hover,.dropzone--active{border-color:var(--color-primary);background:#eff6ff;color:var(--color-primary)}.dropzone-filename{font-weight:500;color:var(--color-text)}.record-controls{padding:40px 0 24px;display:flex;align-items:center;justify-content:center}.btn-record{background:var(--color-error);color:#fff;border:none;padding:12px 28px;border-radius:24px;font-size:15px;font-weight:600;transition:opacity .15s}.btn-record:hover{opacity:.9}.recording-active{display:flex;align-items:center;gap:14px}.recording-dot{width:12px;height:12px;background:var(--color-error);border-radius:50%;animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.recording-timer{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--color-text);min-width:48px}.btn-stop{background:#374151;color:#fff;border:none;padding:8px 20px;border-radius:20px;font-size:14px;font-weight:600}.recording-ready{display:flex;align-items:center;gap:16px;font-weight:500;color:var(--color-success)}.btn-discard{background:none;border:1px solid var(--color-border);padding:6px 14px;border-radius:var(--radius);font-size:13px;color:var(--color-text-muted)}.client-info{color:var(--color-text)}.client-info h3{font-size:17px;font-weight:600;margin-bottom:12px}.client-info p{margin-bottom:12px;color:var(--color-text-muted);line-height:1.6}.client-info ul{margin:12px 0 16px 20px;color:var(--color-text-muted);line-height:1.8}.client-coming-soon{font-style:italic;color:var(--color-text-muted);border-top:1px solid var(--color-border);padding-top:12px}.btn-primary{margin-top:20px;background:var(--color-primary);color:#fff;border:none;padding:10px 24px;border-radius:var(--radius);font-size:14px;font-weight:600;transition:background .15s}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-primary:disabled{opacity:.55;cursor:default}.back-btn{background:none;border:none;color:var(--color-primary);font-size:14px;padding:0 0 20px;display:block}.back-btn:hover{text-decoration:underline}.conv-detail-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:28px}.conv-detail-header h1{font-size:24px;font-weight:700;margin-bottom:4px}.conv-meta-line{font-size:14px;color:var(--color-text-muted)}.conv-note-line{font-size:13px;color:var(--color-text-muted);font-style:italic;margin-top:4px}.status-view{text-align:center;padding:60px 0;color:var(--color-text-muted)}.status-view--error{color:var(--color-error)}.spinner{width:36px;height:36px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .9s linear infinite;margin:0 auto 16px}@keyframes spin{to{transform:rotate(360deg)}}.status-view p{margin-bottom:8px;font-size:15px}.status-hint{font-size:13px}.error-pre{margin-top:12px;text-align:left;background:#fef2f2;padding:12px;border-radius:var(--radius);font-size:12px;white-space:pre-wrap;word-break:break-all}.proc-error-icon{font-size:40px;margin-bottom:8px;line-height:1}.proc-error-title{font-size:18px;font-weight:600;color:var(--color-text);margin:0 0 10px}.proc-error-detail{font-size:14px;color:var(--color-text-muted);line-height:1.6;max-width:480px;margin:0 auto 12px}.proc-error-hint{font-size:13px;color:var(--color-text-muted);line-height:1.6;max-width:440px;margin:0 auto 16px;padding:10px 14px;background:var(--color-bg, #f9fafb);border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius)}.proc-error-actions{margin-top:8px;display:flex;justify-content:center}.part-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden}.part-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--color-border);background:var(--color-bg)}.part-header-left{display:flex;align-items:center}.part-label{font-size:14px;font-weight:600;color:var(--color-text)}.part-pagination{display:flex;align-items:center;gap:10px}.part-nav-btn{width:28px;height:28px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);font-size:18px;line-height:1;color:var(--color-text);display:flex;align-items:center;justify-content:center;transition:border-color .15s,color .15s}.part-nav-btn:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.part-nav-btn:disabled{opacity:.3;cursor:default}.analysis-tabs{border-top:1px solid var(--color-border)}.analysis-tab-bar{display:flex;gap:0;border-top:1px solid var(--color-border);border-bottom:2px solid var(--color-border);background:#eff6ff;padding:0 20px}.analysis-tab-btn{padding:10px 16px;background:none;border:none;border-bottom:3px solid transparent;font-size:13px;font-weight:500;color:#4b72b0;margin-bottom:-2px;display:flex;align-items:center;gap:6px;transition:color .15s,border-color .15s,background .15s}.analysis-tab-btn:hover{color:var(--color-primary);background:#2563eb0f}.analysis-tab-btn--active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:600}.tab-count{background:var(--color-primary);color:#fff;font-size:10px;font-weight:700;padding:1px 6px;border-radius:10px;line-height:1.4}.analysis-tab-content{padding:16px 20px;display:flex;flex-direction:column;gap:6px}.tab-empty{padding:32px 20px;color:var(--color-text-muted);font-size:14px;text-align:center}.rewrite-split{display:grid;grid-template-columns:1fr 1px 1fr;gap:0;min-height:300px}.rewrite-split-col{padding:20px 24px;overflow-y:auto;font-size:14px;line-height:1.7}.rewrite-split-col .transcript-view{padding:0;gap:10px}.rewrite-split-col .transcript-line{font-size:inherit;line-height:inherit}.rewrite-split-col .rewrite-text{border-left:none;padding:0;background:none;border-radius:0;font-size:inherit;line-height:inherit}.rewrite-split-divider{background:var(--color-border);margin:16px 0}.rewrite-split-label{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);margin:0 0 12px}.rewrite-view{padding:20px 24px}.rewrite-intro{font-size:13px;color:var(--color-text-muted);margin-bottom:16px;font-style:italic}.rewrite-text{font-size:15px;line-height:1.8;color:var(--color-text);background:#f8faff;border-left:3px solid var(--color-primary);padding:16px 20px;border-radius:0 var(--radius) var(--radius) 0;white-space:pre-wrap}.transcript-view{padding:16px 20px;display:flex;flex-direction:column;gap:8px}.transcript-line{font-size:14px;line-height:1.6;color:var(--color-text)}.transcript-speaker{font-weight:600;color:var(--color-primary)}.recording-view{padding:24px 20px;display:flex;justify-content:center}.audio-player{width:100%;max-width:600px}.tab-empty--error{color:var(--color-error)}.error-type-filter{display:flex;flex-wrap:wrap;gap:6px;padding:12px 20px;border-bottom:1px solid var(--color-border);background:var(--color-bg)}.error-type-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border:1px solid var(--color-border);border-radius:14px;background:var(--color-surface);font-size:12px;font-weight:500;color:var(--color-text-muted);transition:border-color .15s,color .15s,background .15s}.error-type-chip:hover{border-color:var(--color-primary);color:var(--color-primary)}.error-type-chip--active{border-color:var(--color-primary);background:var(--color-primary);color:#fff}.error-type-chip--active:hover{background:var(--color-primary-hover);color:#fff}.error-type-chip-count{font-size:11px;font-weight:700;background:#0000001f;border-radius:8px;padding:0 5px;line-height:1.6}.error-type-chip--active .error-type-chip-count{background:#ffffff40}.error-item--highlighted{background:#fffbeb;border:1px solid #fcd34d;border-radius:4px}.level-badge{color:#fff;font-size:12px;font-weight:700;padding:2px 10px;border-radius:12px;letter-spacing:.04em}.metrics-card{display:flex;gap:0;padding:16px 20px;border-bottom:1px solid var(--color-border);flex-wrap:wrap}.metric{flex:1;min-width:80px;display:flex;flex-direction:column;align-items:center;padding:8px 0}.metric-val{font-size:22px;font-weight:700;line-height:1.2}.metric-lbl{font-size:11px;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;margin-top:2px}.topics-section{padding:16px 20px;border-bottom:1px solid var(--color-border)}.topics-section h4{font-size:12px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px}.topic-tags{display:flex;flex-wrap:wrap;gap:6px}.topic-tag{font-size:12px;padding:3px 10px;border-radius:12px;background:#f3f4f6;color:var(--color-text-muted)}.topic-tag--primary{background:#eff6ff;color:var(--color-primary);font-weight:500}.sentence-row{border:1px solid var(--color-border);border-radius:6px;margin-bottom:6px;overflow:hidden}.sentence-row--has-errors{border-color:#fca5a5}.sentence-original{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;cursor:pointer;background:var(--color-bg);transition:background .1s}.sentence-original:hover{background:#f3f4f6}.sentence-num{font-size:11px;color:var(--color-text-muted);flex-shrink:0;margin-top:2px;min-width:28px}.sentence-text{flex:1;font-size:14px;line-height:1.5}.error-count-badge{flex-shrink:0;font-size:11px;font-weight:600;background:#fef2f2;color:var(--color-error);padding:2px 8px;border-radius:10px}.expand-toggle{flex-shrink:0;font-size:10px;color:var(--color-text-muted);margin-top:3px}.sentence-detail{padding:12px 14px;background:#fff;border-top:1px solid var(--color-border);font-size:13px;display:flex;flex-direction:column;gap:8px}.sentence-corrected{color:var(--color-success)}.sentence-rewrite{color:#374151}.detail-label{font-weight:600;color:var(--color-text-muted);margin-right:4px}.errors-list{display:flex;flex-direction:column;gap:6px;margin-top:4px}.error-item{background:#fef2f2;border-radius:4px;padding:6px 10px;font-size:12px;display:flex;flex-wrap:wrap;gap:6px;align-items:baseline}.error-type{background:var(--color-error);color:#fff;font-size:10px;font-weight:700;padding:1px 6px;border-radius:3px;text-transform:uppercase}.error-fragment{color:var(--color-error)}.error-arrow{color:var(--color-text-muted)}.error-correction{color:var(--color-success);font-weight:500}.error-explanation{color:var(--color-text-muted);font-style:italic}.idiom-row{border:1px solid var(--color-border);border-radius:6px;margin-bottom:6px;overflow:hidden}.idiom-original{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;cursor:pointer;background:var(--color-bg);transition:background .1s}.idiom-original:hover{background:#f3f4f6}.idiom-badge{flex-shrink:0;font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px}.idiom-badge--detected{background:#f0fdf4;color:var(--color-success)}.idiom-badge--suggestion{background:#fffbeb;color:#d97706}.idiom-detected{color:var(--color-text-muted)}.idiom-chip{display:inline-block;background:#eff6ff;color:var(--color-primary);font-size:11px;padding:1px 8px;border-radius:10px;margin:0 4px 2px 0;font-weight:500}.idiom-suggestion{color:var(--color-text);line-height:1.6}.idiom-suggestion-name{font-style:italic;font-weight:600;color:var(--color-primary, #2563eb)}.idiom-highlight--detected{background:#dcfce7;color:#15803d;border-radius:3px;padding:1px 3px;font-style:normal;font-weight:500}.review-view{display:flex;flex-direction:column;gap:1rem;padding:1.5rem;background:#fff;border:1px solid #e5e7eb;border-radius:8px}.review-header{display:flex;flex-direction:column;gap:.4rem}.review-title{margin:0;font-size:1.1rem;font-weight:600;color:#111827}.review-hint{margin:0;font-size:.875rem;color:#6b7280;line-height:1.5}.review-textarea{width:100%;box-sizing:border-box;font-family:Menlo,Consolas,Courier New,monospace;font-size:.82rem;line-height:1.6;border:1px solid #d1d5db;border-radius:6px;padding:.75rem;resize:vertical;color:#1f2937;background:#f9fafb;outline:none;transition:border-color .15s}.review-textarea:focus{border-color:#6366f1;background:#fff}.review-error{margin:0;font-size:.875rem;color:#dc2626}.review-actions{display:flex;justify-content:space-between;gap:.75rem}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1.25rem;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;border:none;transition:background .15s,opacity .15s}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{background:#4f46e5;color:#fff}.btn--primary:hover:not(:disabled){background:#4338ca}.btn--danger{background:#dc2626;color:#fff}.btn--danger:hover:not(:disabled){background:#b91c1c}.btn--outline{background:transparent;border:1px solid currentColor}.btn--danger.btn--outline{color:#dc2626}.btn--danger.btn--outline:hover:not(:disabled){background:#fee2e2}.conv-badge--pending_review{background:#fef3c7;color:#92400e;border:1px solid #fcd34d}.conv-detail-header{display:flex;align-items:flex-start;gap:1rem}.conv-detail-header-main{flex:1;min-width:0}.conv-detail-title-row{display:flex;align-items:center;gap:.5rem}.conv-detail-title-row h1{margin:0}.edit-icon-btn{background:none;border:none;cursor:pointer;padding:2px 4px;border-radius:4px;font-size:.95rem;line-height:1;opacity:.5;transition:opacity .15s}.edit-icon-btn:hover{opacity:1}.conv-edit-form{display:flex;flex-direction:column;gap:.6rem;padding:1rem 1.25rem;background:#f8fafc;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:.5rem}.conv-edit-row{display:grid;grid-template-columns:110px 1fr;align-items:center;gap:.5rem}.conv-edit-row--full{align-items:flex-start}.conv-edit-label{font-size:.8rem;font-weight:500;color:#6b7280;text-align:right}.conv-edit-input{padding:.35rem .6rem;font-size:.875rem;border:1px solid #d1d5db;border-radius:5px;background:#fff;color:#111827;outline:none;transition:border-color .15s;width:100%;box-sizing:border-box}.conv-edit-input:focus{border-color:#6366f1}.conv-edit-textarea{resize:vertical;font-family:inherit}.conv-edit-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.25rem}.conv-edit-actions .btn{padding:.35rem 1rem;font-size:.85rem;border:1px solid #d1d5db;background:#fff;color:#374151;border-radius:5px;cursor:pointer}.conv-edit-actions .btn:hover:not(:disabled){background:#f3f4f6}.conv-edit-actions .btn--primary{background:#4f46e5;color:#fff;border-color:#4f46e5}.conv-edit-actions .btn--primary:hover:not(:disabled){background:#4338ca;border-color:#4338ca}.overall-assessment{display:flex;gap:12px;align-items:flex-start;background:#f0f9ff;border-left:3px solid #0ea5e9;border-radius:0 6px 6px 0;padding:12px 16px;margin-bottom:8px}.overall-assessment-label{flex-shrink:0;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#0369a1;padding-top:2px}.overall-assessment-text{margin:0;font-size:14px;line-height:1.6;color:#0c4a6e}.save-phrase-popover{position:fixed;z-index:9999;background:#fff;border:1px solid #d1d5db;border-radius:8px;box-shadow:0 4px 20px #0000001f;padding:12px;width:320px;display:flex;flex-direction:column;gap:8px}.save-phrase-textarea{width:100%;box-sizing:border-box;font-size:13px;line-height:1.6;font-family:inherit;padding:8px 10px;border:1px solid #d1d5db;border-radius:6px;resize:vertical;outline:none;color:#111827;background:#f9fafb}.save-phrase-textarea:focus{border-color:#6366f1;background:#fff}.save-phrase-bottom{display:flex;gap:6px;align-items:center}.save-phrase-select{flex:1;padding:5px 8px;font-size:13px;border:1px solid #d1d5db;border-radius:6px;background:#fff;color:#111827;outline:none;min-width:0}.save-phrase-select:focus{border-color:#6366f1}.save-phrase-btn{background:#4f46e5;color:#fff;border:none;padding:5px 14px;border-radius:6px;font-size:13px;font-weight:500;white-space:nowrap;cursor:pointer;transition:opacity .15s}.save-phrase-btn:disabled{opacity:.5}.save-phrase-btn:not(:disabled):hover{opacity:.88}.save-phrase-newcat-row{display:flex;gap:6px;align-items:center}.save-phrase-newcat-input{flex:1;padding:5px 8px;font-size:13px;border:1px solid #6366f1;border-radius:6px;outline:none;min-width:0}.save-phrase-cancel-btn{background:none;border:none;color:#9ca3af;cursor:pointer;font-size:13px;padding:2px 5px}.save-phrase-cancel-btn:hover{color:#ef4444}.save-phrase-saved{font-size:13px;font-weight:500;color:#16a34a;text-align:center;padding:4px 0;margin:0}.save-phrase-error{font-size:12px;color:#dc2626;margin:2px 0 0}.reanalyse-panel{margin-top:24px;border-top:1px solid var(--color-border);padding-top:16px}.reanalyse-toggle{background:none;border:1px solid var(--color-border);border-radius:6px;padding:8px 16px;font-size:.85rem;color:var(--color-text-muted);cursor:pointer;transition:color .15s,border-color .15s,background .15s}.reanalyse-toggle:hover{color:var(--color-text);border-color:var(--color-text-muted);background:var(--color-surface)}.reanalyse-body{display:flex;flex-direction:column;gap:12px}.reanalyse-header{display:flex;align-items:center;justify-content:space-between}.reanalyse-title{font-size:.95rem;font-weight:600;color:var(--color-text)}.reanalyse-close{background:none;border:none;font-size:1rem;color:var(--color-text-muted);cursor:pointer;padding:2px 6px;border-radius:4px}.reanalyse-close:hover{color:var(--color-text)}.reanalyse-hint{font-size:.85rem;color:var(--color-text-muted);margin:0;line-height:1.5}.partial-banner{display:flex;align-items:flex-start;gap:16px;padding:14px 18px;border-radius:10px;margin-bottom:20px;flex-wrap:wrap}.partial-banner--processing{background:color-mix(in srgb,var(--color-accent) 8%,transparent);border:1px solid color-mix(in srgb,var(--color-accent) 30%,transparent);color:var(--color-text);align-items:center}.partial-banner--error{background:color-mix(in srgb,#f59e0b 8%,transparent);border:1px solid color-mix(in srgb,#f59e0b 35%,transparent);color:var(--color-text);justify-content:space-between}.partial-banner-text{flex:1;min-width:200px}.partial-banner-text strong{color:#b45309}.partial-banner-detail{font-size:.8rem;color:var(--color-text-muted);margin:4px 0 0;font-family:monospace}.partial-banner-actions{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0}.partial-banner-hint{font-size:.8rem;color:var(--color-text-muted)}.partial-banner-error{font-size:.8rem;color:var(--color-danger, #dc2626);margin:0}.spinner--small{width:18px;height:18px;border-width:2px;flex-shrink:0}.recording-view{padding:16px 20px;display:flex;flex-direction:column;gap:16px}.ap-player{display:flex;align-items:center;gap:12px;background:var(--color-bg, #f9fafb);border:1px solid var(--color-border, #e5e7eb);border-radius:10px;padding:12px 16px}.ap-play-btn{flex-shrink:0;width:38px;height:38px;border-radius:50%;background:var(--color-primary, #2563eb);color:#fff;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,transform .1s}.ap-play-btn:hover{background:var(--color-primary-hover, #1d4ed8);transform:scale(1.06)}.ap-time{font-size:12px;font-variant-numeric:tabular-nums;color:var(--color-text-muted, #6b7280);white-space:nowrap;min-width:34px;text-align:center}.ap-range{flex:1;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:2px;outline:none;cursor:pointer;background:var(--color-border, #e5e7eb)}.ap-range:disabled{opacity:.45;cursor:default}.ap-range::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--color-primary, #2563eb);border:2px solid #fff;box-shadow:0 1px 4px #00000040;cursor:grab;transition:box-shadow .12s;margin-top:-6px}.ap-range:not(:disabled):hover::-webkit-slider-thumb,.ap-range:not(:disabled):active::-webkit-slider-thumb{box-shadow:0 0 0 5px #2563eb33;cursor:grabbing}.ap-range::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--color-primary, #2563eb);border:2px solid #fff;box-shadow:0 1px 4px #00000040;cursor:grab;transition:box-shadow .12s}.ap-range:not(:disabled):hover::-moz-range-thumb,.ap-range:not(:disabled):active::-moz-range-thumb{box-shadow:0 0 0 5px #2563eb33;cursor:grabbing}.ap-range::-moz-range-progress{background:var(--color-primary, #2563eb);border-radius:2px;height:4px}.ap-range::-webkit-slider-runnable-track{height:4px;border-radius:2px}.timed-transcript{margin-top:16px;display:flex;flex-direction:column;gap:8px}.timed-transcript-hint{font-size:.75rem;color:var(--color-text-muted, #6b7280)}.timed-transcript-segments{display:flex;flex-direction:column;gap:2px;max-height:320px;overflow-y:auto;border:1px solid var(--color-border, #e5e7eb);border-radius:6px;padding:4px}.timed-segment{display:flex;align-items:baseline;gap:10px;padding:6px 8px;border-radius:4px;cursor:pointer;transition:background .1s;line-height:1.45}.timed-segment:hover{background:var(--color-bg-hover, #f3f4f6)}.timed-segment--active{background:var(--color-primary-light, #eff6ff);border-left:3px solid var(--color-primary, #2563eb);padding-left:5px}.timed-segment-ts{font-size:.72rem;font-variant-numeric:tabular-nums;color:var(--color-primary, #2563eb);white-space:nowrap;flex-shrink:0;min-width:32px}.timed-segment-text{font-size:.875rem;color:var(--color-text, #111827)}.id-page{max-width:800px}.id-page-header{margin-bottom:20px}.id-page-title-row{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}.id-page-title-row h1{font-size:22px;font-weight:600;margin:0}.id-total-count{font-size:13px;color:var(--color-text-muted)}.id-tab-bar{display:flex;gap:2px;border-bottom:1px solid var(--color-border);margin-bottom:20px;overflow-x:auto}.id-tab-btn{display:flex;align-items:center;gap:5px;padding:8px 14px;background:none;border:none;border-bottom:2px solid transparent;font-size:13px;font-weight:500;color:var(--color-text-muted);white-space:nowrap;margin-bottom:-1px;cursor:pointer;transition:color .15s,border-color .15s}.id-tab-btn:hover{color:var(--color-text)}.id-tab-btn--active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.id-tab-count{background:var(--color-border);color:var(--color-text-muted);font-size:11px;font-weight:600;padding:1px 6px;border-radius:10px;line-height:1.4}.id-tab-btn--active .id-tab-count{background:#e0e7ff;color:var(--color-primary)}.id-search-row{margin-bottom:16px}.id-search{width:100%;box-sizing:border-box;padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius);font-size:14px;background:var(--color-bg);color:var(--color-text);outline:none}.id-search:focus{border-color:var(--color-primary)}.id-list{display:flex;flex-direction:column;gap:10px}.id-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:14px 18px;transition:box-shadow .15s}.id-card:hover{box-shadow:var(--shadow)}.id-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.id-expression{font-size:16px;font-weight:600;color:var(--color-text);margin:0;line-height:1.3;font-style:italic}.id-star-btn{background:none;border:none;font-size:18px;color:#d1d5db;cursor:pointer;padding:2px 4px;line-height:1;transition:color .15s,transform .1s;flex-shrink:0}.id-star-btn:hover:not(:disabled){color:#f59e0b;transform:scale(1.15)}.id-star-btn--active{color:#f59e0b}.id-card-actions{display:flex;align-items:center;gap:2px;opacity:0;transition:opacity .15s;flex-shrink:0}.id-card:hover .id-card-actions{opacity:1}.id-action-btn{background:none;border:none;padding:5px 7px;border-radius:4px;color:var(--color-text-muted);cursor:pointer;display:flex;align-items:center;transition:color .15s,background .15s}.id-action-btn:hover{color:var(--color-text);background:var(--color-border)}.id-action-btn--delete:hover{color:var(--color-error);background:#fef2f2}.id-action-btn--active{color:var(--color-primary)}.id-action-btn--done{color:var(--color-success, #16a34a)}.id-action-btn--done:disabled{opacity:1;cursor:default}.id-action-btn--error{color:var(--color-error)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.id-count-badge{font-size:12px;font-weight:600;color:var(--color-text-muted);background:var(--color-border);padding:2px 8px;border-radius:10px;flex-shrink:0}.id-score-badge{display:inline-flex;align-items:center;font-size:11px;font-weight:700;padding:2px 7px;border-radius:10px;white-space:nowrap}.id-score-badge--good{background:#dcfce7;color:#15803d}.id-score-badge--ok{background:#fef9c3;color:#a16207}.id-score-badge--low{background:#fee2e2;color:#b91c1c}.id-count-badge--adopted{background:#dcfce7;color:#16a34a}.id-note{font-size:14px;color:var(--color-text-muted);margin:0 0 8px;line-height:1.6}.id-sentence{font-size:14px;color:var(--color-text);margin:0 0 8px;line-height:1.6;padding:8px 12px;background:#f0f4ff;border-left:3px solid #6366f1;border-radius:0 4px 4px 0;font-style:italic}.id-meta{font-size:12px;color:var(--color-text-muted);margin:4px 0 0}.id-card--editing{display:flex;flex-direction:column;gap:12px}.id-edit-field{display:flex;flex-direction:column;gap:4px}.id-edit-label{font-size:11px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.id-edit-input{width:100%;box-sizing:border-box;padding:8px 10px;font-size:15px;font-weight:600;border:1px solid var(--color-primary);border-radius:var(--radius);background:var(--color-bg);color:var(--color-text);outline:none;font-style:italic}.id-edit-textarea{width:100%;box-sizing:border-box;padding:8px 10px;font-size:14px;line-height:1.6;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);color:var(--color-text);resize:vertical;font-family:inherit;outline:none;transition:border-color .15s}.id-edit-textarea:focus{border-color:var(--color-primary)}.id-edit-actions{display:flex;justify-content:flex-end;gap:8px}.id-btn{padding:6px 16px;border-radius:var(--radius);font-size:13px;font-weight:500;cursor:pointer}.id-btn--cancel{background:none;border:1px solid var(--color-border);color:var(--color-text-muted)}.id-btn--cancel:hover{background:var(--color-bg)}.id-btn--save{background:var(--color-primary);border:none;color:#fff;transition:opacity .15s}.id-btn--save:disabled{opacity:.5}.id-btn--save:not(:disabled):hover{opacity:.88}.id-card--used{padding:0;overflow:hidden}.id-used-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 18px;cursor:pointer;-webkit-user-select:none;user-select:none}.id-used-header:hover{background:var(--color-bg)}.id-used-left{display:flex;align-items:center;gap:10px;min-width:0}.id-expand-chevron{font-size:11px;color:var(--color-text-muted);flex-shrink:0}.id-used-sentences{border-top:1px solid var(--color-border);display:flex;flex-direction:column}.id-used-sentence{display:flex;gap:12px;align-items:baseline;padding:10px 18px;border-bottom:1px solid var(--color-border);font-size:14px;line-height:1.6}.id-used-sentence:last-child{border-bottom:none}.id-used-sentence-date{font-size:11px;color:var(--color-text-muted);white-space:nowrap;flex-shrink:0;padding-top:2px}.id-used-sentence-text{color:var(--color-text)}.id-pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:20px}.id-page-btn{background:none;border:1px solid var(--color-border);border-radius:var(--radius);padding:6px 14px;font-size:13px;color:var(--color-text-muted);cursor:pointer;transition:border-color .15s,color .15s}.id-page-btn:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.id-page-btn:disabled{opacity:.4;cursor:default}.id-page-info{font-size:13px;color:var(--color-text-muted);min-width:50px;text-align:center}.id-empty{text-align:center;padding:48px 0;color:var(--color-text-muted);font-size:14px}.id-empty p{margin:0 0 8px}.id-empty-hint{font-size:13px;color:var(--color-text-muted);max-width:420px;margin:0 auto;line-height:1.6}.id-empty-hint strong{color:var(--color-text)}.idiom-highlight--suggestion{background:#fef9c3;color:#a16207;border-radius:3px;padding:1px 3px;font-style:normal;font-weight:500}.idiom-suggestion-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.idiom-star-btn{background:none;border:none;font-size:18px;color:#d1d5db;cursor:pointer;padding:0 2px;line-height:1;transition:color .15s,transform .1s}.idiom-star-btn:hover:not(:disabled){color:#f59e0b;transform:scale(1.2)}.idiom-star-btn--active{color:#f59e0b}.idiom-star-btn:disabled{opacity:.5}.id-letter-nav{display:flex;flex-wrap:nowrap;gap:1px;margin-bottom:16px;padding:8px 10px;background:var(--color-bg-secondary, #f9fafb);border:1px solid var(--color-border, #e5e7eb);border-radius:8px}.id-letter-btn{flex:1;min-width:0;height:26px;display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:600;border-radius:3px;border:1px solid transparent;background:transparent;color:var(--color-text, #111827);cursor:pointer;transition:background .1s,color .1s,border-color .1s}.id-letter-btn--inactive{color:var(--color-text-muted, #9ca3af);cursor:default}.id-letter-btn:not(.id-letter-btn--inactive):hover{background:var(--color-primary-light, #eff6ff);border-color:var(--color-primary, #2563eb);color:var(--color-primary, #2563eb)}.id-letter-btn--current{background:var(--color-primary, #2563eb)!important;border-color:var(--color-primary, #2563eb)!important;color:#fff!important}.id-letter-section{margin-bottom:8px}.id-letter-header{font-size:1.1rem;font-weight:700;color:var(--color-primary, #2563eb);padding:6px 0 4px;margin-bottom:4px;border-bottom:2px solid var(--color-primary-light, #dbeafe);letter-spacing:.05em}.ph-page{max-width:800px}.ph-page-header{margin-bottom:24px}.ph-page-title-row{display:flex;align-items:baseline;gap:12px;margin-bottom:6px}.ph-page-title-row h1{font-size:22px;font-weight:600;margin:0}.ph-total-count{font-size:13px;color:var(--color-text-muted)}.ph-page-desc{font-size:14px;color:var(--color-text-muted);margin:0}.ph-add-form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:16px;margin-bottom:24px;display:flex;flex-direction:column;gap:10px}.ph-add-textarea{width:100%;box-sizing:border-box;padding:10px 12px;font-size:14px;line-height:1.6;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);color:var(--color-text);resize:vertical;font-family:inherit;outline:none;transition:border-color .15s}.ph-add-textarea:focus{border-color:var(--color-primary)}.ph-add-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px}.ph-add-btn{background:var(--color-primary);color:#fff;border:none;padding:7px 18px;border-radius:var(--radius);font-size:14px;font-weight:500;white-space:nowrap;transition:opacity .15s}.ph-add-btn:disabled{opacity:.5}.ph-add-btn:not(:disabled):hover{opacity:.88}.ph-category-select{padding:6px 10px;border:1px solid var(--color-border);border-radius:var(--radius);font-size:14px;background:var(--color-bg);color:var(--color-text);outline:none;min-width:160px}.ph-category-select--sm{font-size:13px;padding:4px 8px;min-width:140px}.ph-category-select:focus{border-color:var(--color-primary)}.ph-new-cat-row{display:flex;align-items:center;gap:6px}.ph-new-cat-input{flex:1;padding:6px 10px;border:1px solid var(--color-primary);border-radius:var(--radius);font-size:14px;background:var(--color-bg);color:var(--color-text);outline:none;min-width:0}.ph-new-cat-input--sm{font-size:13px;padding:4px 8px}.ph-new-cat-cancel{background:none;border:none;color:var(--color-text-muted);font-size:13px;padding:4px 6px;cursor:pointer;border-radius:4px}.ph-new-cat-cancel:hover{color:var(--color-error)}.ph-search-row{display:flex;align-items:center;gap:12px;margin-bottom:20px}.ph-search{flex:1;padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius);font-size:14px;background:var(--color-bg);color:var(--color-text);outline:none}.ph-search:focus{border-color:var(--color-primary)}.ph-search-count{font-size:13px;color:var(--color-text-muted);white-space:nowrap}.ph-groups{display:flex;flex-direction:column;gap:12px}.ph-group{border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden}.ph-group-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--color-surface);cursor:pointer;-webkit-user-select:none;user-select:none}.ph-group-header:hover{background:var(--color-bg)}.ph-group-title{display:flex;align-items:center;gap:10px}.ph-group-badge{font-size:12px;font-weight:600;background:var(--color-primary);color:#fff;padding:2px 10px;border-radius:12px}.ph-group-count{font-size:13px;color:var(--color-text-muted)}.ph-group-chevron{transition:transform .18s;color:var(--color-text-muted)}.ph-group-chevron--open{transform:rotate(180deg)}.ph-group-cards{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--color-border)}.ph-card{padding:14px 16px;background:var(--color-bg);border-bottom:1px solid var(--color-border)}.ph-card:last-child{border-bottom:none}.ph-card:hover{background:#f8fafc}.ph-card-text{font-size:14px;line-height:1.6;color:var(--color-text);margin:0 0 10px;white-space:pre-wrap}.ph-card-footer{display:flex;align-items:center;justify-content:space-between}.ph-card-date{font-size:12px;color:var(--color-text-muted)}.ph-card-actions{display:flex;align-items:center;gap:2px;opacity:0;transition:opacity .15s}.ph-card:hover .ph-card-actions{opacity:1}.ph-action-btn{background:none;border:none;padding:5px 7px;border-radius:4px;color:var(--color-text-muted);cursor:pointer;display:flex;align-items:center;transition:color .15s,background .15s}.ph-action-btn:hover{color:var(--color-text);background:var(--color-border)}.ph-action-btn--delete:hover{color:var(--color-error);background:#fef2f2}.ph-action-btn--speak:hover{color:var(--color-primary);background:var(--color-primary-light, #eff6ff)}.ph-action-btn--speaking{color:var(--color-primary);animation:ph-speak-pulse 1.2s ease-in-out infinite}@keyframes ph-speak-pulse{0%,to{opacity:1}50%{opacity:.45}}.ph-card--editing{background:var(--color-surface);padding:12px 16px}.ph-edit-textarea{width:100%;box-sizing:border-box;padding:8px 10px;font-size:14px;line-height:1.6;border:1px solid var(--color-primary);border-radius:var(--radius);background:var(--color-bg);color:var(--color-text);resize:vertical;font-family:inherit;outline:none;margin-bottom:10px}.ph-edit-footer{display:flex;align-items:center;justify-content:space-between;gap:10px}.ph-edit-actions{display:flex;gap:6px}.ph-edit-cancel-btn{background:none;border:1px solid var(--color-border);padding:5px 12px;border-radius:var(--radius);font-size:13px;color:var(--color-text-muted);cursor:pointer}.ph-edit-cancel-btn:hover{background:var(--color-bg)}.ph-edit-save-btn{background:var(--color-primary);color:#fff;border:none;padding:5px 14px;border-radius:var(--radius);font-size:13px;font-weight:500;cursor:pointer;transition:opacity .15s}.ph-edit-save-btn:disabled{opacity:.5}.ph-error{color:var(--color-error);font-size:13px;margin:4px 0 0}.ph-loading,.ph-empty{text-align:center;padding:48px 0;color:var(--color-text-muted);font-size:14px}.vc-page{max-width:760px;margin:0 auto;padding:24px 16px 60px}.vc-page-header{margin-bottom:28px}.vc-page-title-row{display:flex;align-items:baseline;gap:12px;margin-bottom:6px}.vc-page-title-row h1{margin:0;font-size:1.7rem;font-weight:700;color:var(--color-text)}.vc-total-count{font-size:.85rem;color:var(--color-text-muted);font-weight:400}.vc-page-desc{margin:0;font-size:.9rem;color:var(--color-text-muted);line-height:1.5}.vc-form-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;padding:20px 22px;margin-bottom:32px}.vc-form-title{font-size:1rem;font-weight:600;color:var(--color-text);margin:0 0 16px}.vc-form{display:flex;flex-direction:column;gap:12px}.vc-form-row{display:flex;flex-direction:column;gap:4px}.vc-form-label{font-size:.82rem;font-weight:500;color:var(--color-text-muted)}.vc-form-hint{font-weight:400;opacity:.7}.vc-form-input{padding:8px 11px;border:1px solid var(--color-border);border-radius:6px;font-size:.92rem;background:var(--color-bg);color:var(--color-text);transition:border-color .15s}.vc-form-input:focus{outline:none;border-color:var(--color-primary)}.vc-form-input--main{font-size:1rem}.vc-form-input:disabled{opacity:.6;cursor:not-allowed}.vc-form-error{font-size:.85rem;color:var(--color-error);margin:0}.vc-form-submit{align-self:flex-start;padding:9px 22px;background:var(--color-primary);color:#fff;border:none;border-radius:6px;font-size:.92rem;font-weight:500;cursor:pointer;transition:opacity .15s}.vc-form-submit:hover:not(:disabled){opacity:.88}.vc-form-submit:disabled{opacity:.5;cursor:not-allowed}.vc-form-hint-text{font-size:.78rem;color:var(--color-text-muted);margin:0}.vc-list-section{display:flex;flex-direction:column;gap:16px}.vc-list-title{font-size:1rem;font-weight:600;color:var(--color-text);margin:0}.vc-search-row{display:flex;align-items:center;gap:10px}.vc-search{flex:1;padding:8px 12px;border:1px solid var(--color-border);border-radius:6px;font-size:.9rem;background:var(--color-bg);color:var(--color-text)}.vc-search:focus{outline:none;border-color:var(--color-primary)}.vc-search-count{font-size:.82rem;color:var(--color-text-muted);white-space:nowrap}.vc-loading,.vc-empty{font-size:.9rem;color:var(--color-text-muted);padding:12px 0}.vc-error{font-size:.88rem;color:var(--color-error);margin:0}.vc-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.vc-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;padding:16px 18px;display:flex;flex-direction:column;gap:10px;transition:box-shadow .15s}.vc-card:hover{box-shadow:0 2px 8px #00000012}.vc-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.vc-card-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:1}.vc-card-expression{font-size:1.1rem;font-weight:700;color:var(--color-text);margin:0}.vc-card-meta{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0}.vc-card-date{font-size:.78rem;color:var(--color-text-muted);white-space:nowrap}.vc-pron-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text-muted);cursor:pointer;transition:color .15s,background .15s,border-color .15s;flex-shrink:0}.vc-pron-btn:hover,.vc-pron-btn--playing{color:var(--color-primary);border-color:var(--color-primary);background:var(--color-primary-light, #eff6ff)}.vc-pron-btn--error{color:var(--color-error);border-color:var(--color-error)}.vc-pron-spinner{animation:vc-spin .9s linear infinite}@keyframes vc-spin{to{transform:rotate(360deg)}}.vc-idiom-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;background:#fef3c7;color:#92400e;border-radius:12px;font-size:.72rem;font-weight:600;letter-spacing:.02em}.vc-delete-btn{background:none;border:none;padding:2px 5px;font-size:.8rem;color:var(--color-text-muted);cursor:pointer;border-radius:4px;transition:color .15s,background .15s;line-height:1}.vc-delete-btn:hover{color:var(--color-error);background:#fef2f2}.vc-delete-confirm{font-size:.8rem;color:var(--color-text-muted);white-space:nowrap}.vc-delete-yes,.vc-delete-no{background:none;border:none;padding:0 2px;font-size:.8rem;cursor:pointer;font-weight:600}.vc-delete-yes{color:var(--color-error)}.vc-delete-no{color:var(--color-primary)}.vc-label{display:inline-block;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-right:8px}.vc-register{font-size:.85rem;color:var(--color-text-muted);margin:0;display:flex;align-items:baseline;gap:0}.vc-meaning{font-size:.92rem;color:var(--color-text);margin:0;line-height:1.55}.vc-row{display:flex;flex-direction:column;gap:5px}.vc-chip-list{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:0}.vc-chip{padding:3px 10px;border-radius:14px;font-size:.82rem;font-weight:500}.vc-chip--synonym{background:var(--color-primary-light, #eff6ff);color:var(--color-primary);border:1px solid var(--color-primary-border, #bfdbfe)}.vc-chip--collocation{background:var(--color-surface-alt, #f8fafc);color:var(--color-text);border:1px solid var(--color-border)}.vc-samples{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--color-border);padding-top:10px}.vc-sample{display:flex;flex-direction:column;gap:3px}.vc-sample-ctx{font-size:.74rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.vc-sample-sentence{font-size:.9rem;color:var(--color-text);margin:0;line-height:1.5;font-style:italic}.er-page{max-width:820px;margin:0 auto;padding:24px 16px 60px}.er-page-header{margin-bottom:24px}.er-page-title-row{display:flex;align-items:baseline;gap:12px;margin-bottom:6px}.er-page-title-row h1{margin:0;font-size:1.7rem;font-weight:700;color:var(--color-text)}.er-total-count{font-size:.85rem;color:var(--color-text-muted);font-weight:400}.er-page-desc{margin:0;font-size:.9rem;color:var(--color-text-muted);line-height:1.5}.er-tabs{display:flex;gap:2px;border-bottom:2px solid var(--color-border);margin-bottom:20px;overflow-x:auto}.er-tab{display:flex;align-items:center;gap:6px;padding:10px 18px;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;font-size:.9rem;font-weight:500;color:var(--color-text-muted);cursor:pointer;white-space:nowrap;transition:color .15s,border-color .15s}.er-tab:hover{color:var(--color-text)}.er-tab--active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.er-tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--color-surface-alt, #f1f5f9);font-size:.75rem;font-weight:600;color:var(--color-text-muted)}.er-tab--active .er-tab-count{background:var(--color-primary-light, #eff6ff);color:var(--color-primary)}.er-filter-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px}.er-filter-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;border-radius:14px;border:1px solid var(--color-border);background:var(--color-bg);font-size:.8rem;font-weight:500;color:var(--color-text-muted);cursor:pointer;transition:background .12s,color .12s,border-color .12s}.er-filter-chip:hover{background:var(--color-surface);color:var(--color-text)}.er-filter-chip--active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.er-filter-chip--active:hover{background:var(--color-primary);color:#fff}.er-filter-count{font-size:.74rem;font-weight:600;opacity:.75}.er-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.er-loading,.er-empty{font-size:.9rem;color:var(--color-text-muted);padding:12px 0}.er-empty-clear{background:none;border:none;padding:0;color:var(--color-primary);font-size:.9rem;cursor:pointer;text-decoration:underline}.er-empty-clear:hover{opacity:.75}.er-load-error{font-size:.88rem;color:var(--color-error)}.er-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;padding:16px 18px;display:flex;flex-direction:column;gap:10px;transition:box-shadow .15s}.er-card:hover{box-shadow:0 2px 8px #00000012}.er-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.er-card-header-left{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:1}.er-type-badge{display:inline-block;padding:3px 10px;border-radius:12px;font-size:.75rem;font-weight:600;letter-spacing:.02em;background:var(--color-surface-alt, #f1f5f9);color:var(--color-text);border:1px solid var(--color-border)}.er-card-meta{display:flex;align-items:center;gap:8px;flex-shrink:0}.er-conv-link{font-size:.78rem;color:var(--color-primary);text-decoration:none;opacity:.8}.er-conv-link:hover{opacity:1;text-decoration:underline}.er-card-date{font-size:.78rem;color:var(--color-text-muted);white-space:nowrap}.er-sentence-block{display:flex;flex-direction:column;gap:6px}.er-label{display:inline-block;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.er-original-sentence{font-size:.92rem;color:var(--color-text);line-height:1.55;margin:0}.er-fragment{background:#fee2e2;color:#b91c1c;border-radius:3px;padding:0 2px;font-weight:600}.er-correction-row{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.er-correction-arrow{font-size:.88rem;color:var(--color-text-muted);flex-shrink:0}.er-correction{font-size:.92rem;font-weight:600;color:#15803d}.er-explanation{font-size:.88rem;color:var(--color-text-muted);line-height:1.55;margin:0;border-left:3px solid var(--color-border);padding-left:10px}.er-rewrite-row{display:flex;flex-direction:column;gap:3px}.er-rewrite{font-size:.88rem;color:var(--color-text-muted);font-style:italic;margin:0;line-height:1.5}.er-card-actions{display:flex;align-items:center;gap:8px;padding-top:4px;border-top:1px solid var(--color-border);flex-wrap:wrap}.er-action-btn{padding:6px 14px;border-radius:6px;border:1px solid var(--color-border);background:var(--color-bg);font-size:.82rem;font-weight:500;cursor:pointer;color:var(--color-text-muted);transition:background .12s,color .12s,border-color .12s}.er-action-btn:hover:not(:disabled){background:var(--color-surface-alt, #f1f5f9);color:var(--color-text)}.er-action-btn:disabled{opacity:.5;cursor:not-allowed}.er-action-btn--primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.er-action-btn--primary:hover:not(:disabled){opacity:.88;background:var(--color-primary);color:#fff}.er-action-btn--reviewed{color:var(--color-text-muted)}.er-action-btn--back{font-size:.78rem;padding:5px 10px}.er-action-spacer{flex:1}.er-status-label{font-size:.78rem;color:var(--color-text-muted);font-style:italic}.ex-page{max-width:760px;margin:0 auto;padding:24px 16px 60px}.ex-page-header{margin-bottom:28px}.ex-page-title-row{display:flex;align-items:baseline;gap:12px;margin-bottom:6px}.ex-page-title-row h1{margin:0;font-size:1.7rem;font-weight:700;color:var(--color-text)}.ex-page-desc{margin:0;font-size:.9rem;color:var(--color-text-muted);line-height:1.5}.ex-generate-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;padding:20px 22px;margin-bottom:32px;display:flex;flex-direction:column;gap:16px}.ex-generate-title{font-size:1rem;font-weight:600;color:var(--color-text);margin:0}.ex-generate-controls{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.ex-type-group,.ex-count-group,.ex-topic-group{display:flex;flex-direction:column;gap:4px}.ex-control-label{font-size:.8rem;font-weight:500;color:var(--color-text-muted)}.ex-type-select,.ex-count-input{padding:7px 10px;border:1px solid var(--color-border);border-radius:6px;font-size:.9rem;background:var(--color-bg);color:var(--color-text);transition:border-color .15s}.ex-type-select:focus,.ex-count-input:focus{outline:none;border-color:var(--color-primary)}.ex-count-input{width:70px}.ex-topic-input{padding:7px 10px;border:1px solid var(--color-border);border-radius:6px;font-size:.9rem;background:var(--color-bg);color:var(--color-text);width:220px;transition:border-color .15s}.ex-topic-input:focus{outline:none;border-color:var(--color-primary)}.ex-topic-input::placeholder{color:var(--color-text-muted);opacity:.6}.ex-topic-hint{font-size:.82rem;color:var(--color-text-muted);margin:0}.ex-topic-badge{display:inline-block;font-size:.72rem;font-weight:500;background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;padding:1px 8px;margin-left:8px;vertical-align:middle;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.ex-generate-btn{align-self:flex-end;padding:9px 24px;background:var(--color-primary);color:#fff;border:none;border-radius:6px;font-size:.92rem;font-weight:500;cursor:pointer;transition:opacity .15s;white-space:nowrap}.ex-generate-btn:hover:not(:disabled){opacity:.88}.ex-generate-btn:disabled{opacity:.5;cursor:not-allowed}.ex-generate-error{font-size:.85rem;color:var(--color-error);margin:0}.ex-active{display:flex;flex-direction:column;gap:20px}.ex-active-header{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.ex-back-btn{background:none;border:1px solid var(--color-border);font-size:.82rem;color:var(--color-text-muted);cursor:pointer;padding:5px 10px;border-radius:5px;transition:border-color .15s,color .15s;white-space:nowrap;flex-shrink:0}.ex-back-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.ex-active-title{font-size:1.1rem;font-weight:600;color:var(--color-text);margin:0;flex:1}.ex-discard-btn{background:none;border:none;font-size:.82rem;color:var(--color-text-muted);cursor:pointer;padding:4px 8px;border-radius:4px;transition:color .15s;flex-shrink:0}.ex-discard-btn:hover{color:var(--color-error)}.ex-question-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;padding:16px 18px;display:flex;flex-direction:column;gap:12px}.ex-question-num{font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.ex-sentence{font-size:1rem;line-height:1.6;color:var(--color-text);margin:0}.ex-blank{display:inline-block;width:120px;border-bottom:2px solid var(--color-primary);vertical-align:bottom;margin:0 2px}.ex-answer-input{padding:7px 11px;border:1px solid var(--color-border);border-radius:6px;font-size:.95rem;background:var(--color-bg);color:var(--color-text);width:100%;max-width:320px;transition:border-color .15s}.ex-answer-input:focus{outline:none;border-color:var(--color-primary)}.ex-answer-input::placeholder{color:var(--color-text-muted);opacity:.6}.ex-idiom-chip-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ex-idiom-chip{display:inline-block;background:var(--color-primary);color:#fff;font-size:.95rem;font-weight:600;padding:5px 14px;border-radius:18px;letter-spacing:.01em}.ex-idiom-chip--result{font-size:.88rem;padding:3px 10px}.ex-idiom-note{font-size:1rem;color:var(--color-text-muted);cursor:help;-webkit-user-select:none;user-select:none}.ex-idiom-meaning{font-size:.85rem;color:var(--color-text-muted);line-height:1.5;margin:0;font-style:italic}.ex-answer-label-text{font-size:.82rem;font-weight:500;color:var(--color-text-muted)}.ex-answer-textarea{width:100%;padding:9px 12px;border:1px solid var(--color-border);border-radius:6px;font-size:.95rem;font-family:inherit;line-height:1.55;background:var(--color-bg);color:var(--color-text);resize:vertical;transition:border-color .15s}.ex-answer-textarea:focus{outline:none;border-color:var(--color-primary)}.ex-answer-textarea::placeholder{color:var(--color-text-muted);opacity:.6}.ex-solidify-instruction{font-size:.82rem;font-weight:500;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;margin:0}.ex-solidify-literal{font-size:1rem;line-height:1.6;color:var(--color-text);font-style:italic;margin:0}.ex-solidify-hint-row{display:flex;flex-direction:column;gap:6px}.ex-solidify-hint-btn{align-self:flex-start;background:none;border:1px solid var(--color-border);border-radius:5px;font-size:.78rem;color:var(--color-text-muted);padding:3px 10px;cursor:pointer;transition:border-color .12s,color .12s}.ex-solidify-hint-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.ex-solidify-hint{font-size:.84rem;color:var(--color-text-muted);font-style:italic;line-height:1.5;margin:0;padding:6px 10px;border-left:3px solid var(--color-border)}.ex-instructions{font-size:.88rem;color:var(--color-text-muted);line-height:1.55;margin:0;padding:10px 14px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;border-left:3px solid var(--color-primary)}.ex-word-pool-section{display:flex;flex-direction:column;gap:10px}.ex-word-pool-toggle{align-self:flex-start;background:none;border:1px solid var(--color-border);border-radius:6px;padding:5px 12px;font-size:.82rem;color:var(--color-text-muted);cursor:pointer;transition:border-color .15s,color .15s}.ex-word-pool-toggle:hover{border-color:var(--color-primary);color:var(--color-primary)}.ex-word-pool{display:flex;flex-wrap:wrap;gap:8px;padding:12px 14px;background:var(--color-surface);border:1px dashed var(--color-border);border-radius:8px}.ex-word-chip{padding:4px 10px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:20px;font-size:.88rem;color:var(--color-text);font-weight:500;-webkit-user-select:none;user-select:none}.ex-word-chip--clickable{cursor:pointer;transition:background .12s,border-color .12s,color .12s}.ex-word-chip--clickable:hover{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.ex-word-chip--clickable:active{opacity:.75}.ex-word-pool-empty{font-size:.85rem;color:var(--color-text-muted);font-style:italic}.ex-type-selector{display:flex;flex-direction:column;gap:8px}.ex-type-option{display:flex;flex-direction:row;align-items:flex-start;gap:10px;padding:10px 14px;border:1px solid var(--color-border);border-radius:8px;cursor:pointer;transition:border-color .15s,background .15s;background:var(--color-bg)}.ex-type-option:hover{border-color:var(--color-primary)}.ex-type-option--selected{border-color:var(--color-primary);background:var(--color-surface)}.ex-type-option input[type=radio]{margin-top:3px;accent-color:var(--color-primary);flex-shrink:0}.ex-type-option>div{display:flex;flex-direction:column;gap:2px}.ex-type-option-label{font-size:.9rem;font-weight:600;color:var(--color-text);display:block;line-height:1.3}.ex-type-option-desc{font-size:.8rem;color:var(--color-text-muted);display:block;line-height:1.4}.ex-result-field{display:flex;flex-direction:column;gap:4px}.ex-result-user-sentence{font-size:.92rem;line-height:1.55;margin:0;padding:6px 10px;border-radius:5px;border:1px solid var(--color-border);background:var(--color-bg)}.ex-result-user-sentence--correct{border-left:3px solid #22c55e}.ex-result-user-sentence--partial{border-left:3px solid #f59e0b}.ex-result-user-sentence--wrong{border-left:3px solid #ef4444}.ex-ideal-row{display:flex;flex-direction:column;gap:4px}.ex-ideal-sentence{font-size:.88rem;color:var(--color-text);font-style:italic;line-height:1.5;margin:0;padding:5px 10px;border-left:3px solid #22c55e;background:#f0fdf4}.ex-article-choices{display:flex;gap:10px;flex-wrap:wrap}.ex-article-choice{display:flex;align-items:center;gap:6px;padding:8px 18px;border:1.5px solid var(--color-border);border-radius:8px;cursor:pointer;transition:border-color .14s,background .14s;background:var(--color-bg);-webkit-user-select:none;user-select:none}.ex-article-choice input[type=radio]{display:none}.ex-article-choice:hover:not(.ex-article-choice--disabled){border-color:var(--color-primary)}.ex-article-choice--selected{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,transparent)}.ex-article-choice--disabled{cursor:not-allowed;opacity:.6}.ex-article-choice-label{font-size:.95rem;color:var(--color-text)}.ex-article-badge{display:inline-block;font-size:.88rem;font-weight:700;padding:2px 10px;border-radius:5px;letter-spacing:.02em}.ex-article-badge--correct{color:#15803d;background:#dcfce7}.ex-article-badge--wrong{color:#b91c1c;background:#fee2e2;text-decoration:line-through}.ex-prep-input{max-width:180px}.ex-submit-row{display:flex;align-items:center;gap:16px;padding-top:4px}.ex-submit-btn{padding:10px 28px;background:var(--color-primary);color:#fff;border:none;border-radius:6px;font-size:.95rem;font-weight:600;cursor:pointer;transition:opacity .15s}.ex-submit-btn:hover:not(:disabled){opacity:.88}.ex-submit-btn:disabled{opacity:.5;cursor:not-allowed}.ex-submit-hint{font-size:.82rem;color:var(--color-text-muted)}.ex-results{display:flex;flex-direction:column;gap:20px}.ex-results-header{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.ex-results-title{font-size:1.1rem;font-weight:600;color:var(--color-text);margin:0;flex:1}.ex-score-badge{display:inline-flex;align-items:center;justify-content:center;padding:6px 16px;border-radius:20px;font-size:1rem;font-weight:700}.ex-score-badge--great{background:#dcfce7;color:#15803d;border:1px solid #86efac}.ex-score-badge--ok{background:#fef9c3;color:#854d0e;border:1px solid #fde047}.ex-score-badge--poor{background:#fee2e2;color:#b91c1c;border:1px solid #fca5a5}.ex-new-btn{padding:8px 18px;background:none;border:1px solid var(--color-border);border-radius:6px;font-size:.85rem;font-weight:500;color:var(--color-text-muted);cursor:pointer;transition:background .12s,color .12s}.ex-new-btn:hover{background:var(--color-surface);color:var(--color-text)}.ex-result-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;padding:16px 18px;display:flex;flex-direction:column;gap:10px}.ex-result-card--correct{border-left:3px solid #22c55e}.ex-result-card--partial{border-left:3px solid #f59e0b}.ex-result-card--wrong{border-left:3px solid #ef4444}.ex-result-header{display:flex;align-items:center;gap:8px}.ex-result-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.ex-result-dot--correct{background:#22c55e}.ex-result-dot--partial{background:#f59e0b}.ex-result-dot--wrong{background:#ef4444}.ex-result-qnum{font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);flex:1}.ex-result-score{font-size:.82rem;font-weight:600;color:var(--color-text-muted)}.ex-certify-btn{margin-left:4px;padding:3px 10px;font-size:.78rem;font-weight:500;border:1px solid var(--color-border);border-radius:6px;background:none;color:var(--color-text-muted);cursor:pointer;transition:border-color .15s,color .15s,background .15s;white-space:nowrap}.ex-certify-btn:hover:not(:disabled){border-color:#059669;color:#059669;background:#f0fdf4}.ex-certify-btn--done{border-color:#059669;color:#059669;cursor:default}.ex-certify-btn:disabled:not(.ex-certify-btn--done){opacity:.5;cursor:not-allowed}.ex-certify-error{font-size:.8rem;color:#ef4444;margin:4px 0 0}.ex-result-sentence{font-size:.95rem;line-height:1.6;color:var(--color-text);margin:0}.ex-answer-row{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.ex-answer-label{font-size:.74rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);white-space:nowrap}.ex-user-answer{font-size:.92rem;font-weight:600}.ex-user-answer--correct{color:#15803d}.ex-user-answer--partial{color:#92400e}.ex-user-answer--wrong{color:#b91c1c;text-decoration:line-through}.ex-correct-answer{font-size:.92rem;font-weight:600;color:#15803d}.ex-arrow{font-size:.85rem;color:var(--color-text-muted)}.ex-explanation{font-size:.86rem;color:var(--color-text-muted);line-height:1.55;margin:0;border-left:3px solid var(--color-border);padding-left:10px}.ex-history{margin-top:40px;border-top:1px solid var(--color-border);padding-top:24px}.ex-history-title{font-size:1rem;font-weight:600;color:var(--color-text);margin:0 0 16px}.ex-history-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.ex-history-item{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;font-size:.88rem;cursor:pointer;transition:box-shadow .12s}.ex-history-item:hover{box-shadow:0 2px 6px #00000012}.ex-history-type{font-weight:600;color:var(--color-text)}.ex-history-meta{color:var(--color-text-muted);font-size:.82rem;flex:1}.ex-history-score{font-size:.85rem;font-weight:700;padding:2px 10px;border-radius:12px}.ex-history-score--great{background:#dcfce7;color:#15803d}.ex-history-score--ok{background:#fef9c3;color:#854d0e}.ex-history-score--poor{background:#fee2e2;color:#b91c1c}.ex-history-delete{background:none;border:none;font-size:.8rem;color:var(--color-text-muted);cursor:pointer;padding:2px 5px;border-radius:4px}.ex-history-delete:hover{color:var(--color-error)}.ex-history-list--active{margin-bottom:0}.ex-history-item--active{border-left:3px solid var(--color-primary);cursor:pointer}.ex-in-progress-badge{font-size:.74rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-primary);white-space:nowrap}.ex-continue-btn{background:var(--color-primary);color:#fff;border:none;border-radius:5px;font-size:.8rem;font-weight:600;padding:4px 12px;cursor:pointer;white-space:nowrap;transition:opacity .15s}.ex-continue-btn:hover{opacity:.85}.ex-empty{font-size:.9rem;color:var(--color-text-muted);padding:8px 0}.ex-loading{font-size:.9rem;color:var(--color-text-muted);padding:12px 0}.settings-page{max-width:720px}.settings-page h1{font-size:1.6rem;font-weight:700;margin:0 0 28px;color:var(--color-text)}.settings-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:24px;margin-bottom:24px;display:flex;flex-direction:column;gap:20px}.settings-section-header h2{font-size:1.1rem;font-weight:600;margin:0 0 6px;color:var(--color-text)}.settings-section-desc{font-size:.875rem;color:var(--color-text-muted);margin:0;line-height:1.5}.settings-new-key-banner{background:color-mix(in srgb,var(--color-accent) 8%,transparent);border:1px solid color-mix(in srgb,var(--color-accent) 30%,transparent);border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:10px}.settings-new-key-header{display:flex;align-items:center;justify-content:space-between}.settings-new-key-title{font-weight:600;font-size:.9rem;color:var(--color-text)}.settings-new-key-dismiss{background:none;border:none;font-size:.9rem;color:var(--color-text-muted);cursor:pointer;padding:2px 6px;border-radius:4px}.settings-new-key-dismiss:hover{color:var(--color-text)}.settings-new-key-warning{font-size:.82rem;color:var(--color-text-muted);margin:0}.settings-new-key-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.settings-new-key-value{font-family:monospace;font-size:.88rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:6px;padding:8px 12px;word-break:break-all;flex:1;min-width:200px;color:var(--color-text);-webkit-user-select:all;user-select:all}.settings-copy-btn{padding:8px 16px;border:1px solid var(--color-border);background:var(--color-surface);border-radius:6px;font-size:.85rem;cursor:pointer;color:var(--color-text);transition:background .15s;white-space:nowrap}.settings-copy-btn:hover{background:var(--color-bg)}.settings-copy-btn--copied{background:color-mix(in srgb,#22c55e 15%,transparent);border-color:#22c55e;color:#15803d}.settings-keys-list{display:flex;flex-direction:column;gap:2px}.settings-empty{font-size:.875rem;color:var(--color-text-muted);margin:0;padding:8px 0}.settings-key-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg);flex-wrap:wrap}.settings-key-info{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:1;min-width:0}.settings-key-name{font-weight:600;font-size:.9rem;color:var(--color-text)}.settings-key-prefix{font-family:monospace;font-size:.82rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:4px;padding:2px 7px;color:var(--color-text-muted)}.settings-key-meta{font-size:.8rem;color:var(--color-text-muted)}.settings-key-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.settings-revoke-btn{padding:5px 12px;border:1px solid var(--color-border);background:var(--color-surface);border-radius:6px;font-size:.82rem;cursor:pointer;color:var(--color-text-muted);transition:color .15s,border-color .15s}.settings-revoke-btn:hover{color:var(--color-text);border-color:var(--color-text-muted)}.settings-revoke-btn--danger{color:var(--color-danger, #dc2626);border-color:var(--color-danger, #dc2626)}.settings-revoke-btn--danger:hover{background:color-mix(in srgb,var(--color-danger, #dc2626) 8%,transparent)}.settings-revoke-confirm{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.settings-revoke-confirm>span{font-size:.82rem;color:var(--color-text-muted)}.settings-revoke-cancel{background:none;border:none;font-size:.82rem;color:var(--color-text-muted);cursor:pointer;text-decoration:underline}.settings-generate-section h3{font-size:.9rem;font-weight:600;color:var(--color-text);margin:0 0 10px}.settings-generate-form{display:flex;gap:10px;align-items:flex-start;flex-wrap:wrap}.settings-key-name-input{flex:1;min-width:200px;padding:8px 12px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg);color:var(--color-text);font-size:.9rem}.settings-key-name-input:focus{outline:none;border-color:var(--color-accent)}.settings-form-error{width:100%;font-size:.82rem;color:var(--color-danger, #dc2626);margin:0}.settings-client-info{display:flex;flex-direction:column;gap:12px}.settings-client-step{display:flex;align-items:flex-start;gap:12px;font-size:.875rem;color:var(--color-text);line-height:1.5}.settings-step-num{display:flex;align-items:center;justify-content:center;width:22px;height:22px;min-width:22px;border-radius:50%;background:var(--color-accent);color:#fff;font-size:.75rem;font-weight:700;margin-top:1px}.settings-api-ref h4{font-size:.875rem;font-weight:600;color:var(--color-text);margin:0 0 6px}.settings-api-ref p{font-size:.82rem;color:var(--color-text-muted);margin:0 0 8px}.settings-code-block{font-family:monospace;font-size:.8rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;padding:14px 16px;overflow-x:auto;color:var(--color-text);line-height:1.7;margin:0 0 10px;white-space:pre}.settings-api-note{font-size:.82rem;color:var(--color-text-muted);margin:0;line-height:1.5}.settings-api-note code{font-family:monospace;font-size:.8rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:3px;padding:1px 5px}.speak-page{max-width:640px}.speak-page-header{margin-bottom:28px}.speak-page-header h1{font-size:22px;font-weight:600;margin:0 0 6px}.speak-page-header p{font-size:14px;color:var(--color-text-muted);margin:0;line-height:1.6}.speak-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:32px 28px;display:flex;flex-direction:column;align-items:center;gap:24px}.speak-idle{display:flex;flex-direction:column;align-items:center;gap:16px}.speak-mic-btn{width:88px;height:88px;border-radius:50%;background:var(--color-primary);color:#fff;border:none;font-size:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s,background .15s,box-shadow .15s;box-shadow:0 4px 16px #2563eb40}.speak-mic-btn:hover:not(:disabled){background:var(--color-primary-hover, #1d4ed8);transform:scale(1.06);box-shadow:0 6px 24px #2563eb59}.speak-mic-btn:disabled{opacity:.5;cursor:default}.speak-idle-label{font-size:15px;font-weight:500;color:var(--color-text-muted)}.speak-recording{display:flex;flex-direction:column;align-items:center;gap:20px;width:100%}.speak-wave{display:flex;align-items:center;gap:4px;height:40px}.speak-wave-bar{width:5px;background:var(--color-primary);border-radius:3px;animation:wave-bounce .8s ease-in-out infinite}.speak-wave-bar:nth-child(1){animation-delay:0s;height:14px}.speak-wave-bar:nth-child(2){animation-delay:.1s;height:24px}.speak-wave-bar:nth-child(3){animation-delay:.2s;height:36px}.speak-wave-bar:nth-child(4){animation-delay:.3s;height:28px}.speak-wave-bar:nth-child(5){animation-delay:.4s;height:18px}.speak-wave-bar:nth-child(6){animation-delay:.5s;height:30px}.speak-wave-bar:nth-child(7){animation-delay:.6s;height:22px}@keyframes wave-bounce{0%,to{transform:scaleY(.4);opacity:.5}50%{transform:scaleY(1);opacity:1}}.speak-timer{font-size:32px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--color-text);letter-spacing:.04em}.speak-stop-btn{width:64px;height:64px;border-radius:50%;background:#dc2626;color:#fff;border:none;font-size:22px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s,background .15s}.speak-stop-btn:hover{background:#b91c1c;transform:scale(1.06)}.speak-stop-label{font-size:13px;color:var(--color-text-muted)}.speak-done{width:100%;display:flex;flex-direction:column;gap:20px}.speak-done-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.speak-done-info{display:flex;align-items:center;gap:10px}.speak-done-icon{font-size:22px}.speak-done-text{font-size:15px;font-weight:500;color:var(--color-text)}.speak-done-duration{font-size:13px;color:var(--color-text-muted)}.speak-discard-btn{background:none;border:1px solid var(--color-border);border-radius:var(--radius);padding:5px 12px;font-size:12px;color:var(--color-text-muted);cursor:pointer;transition:color .15s,border-color .15s}.speak-discard-btn:hover{color:var(--color-error);border-color:var(--color-error)}.speak-meta-form{display:flex;flex-direction:column;gap:12px;padding-top:4px;border-top:1px solid var(--color-border)}.speak-form-row{display:flex;flex-direction:column;gap:5px}.speak-form-label{font-size:12px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.speak-form-input,.speak-form-textarea{padding:8px 10px;border:1px solid var(--color-border);border-radius:var(--radius);font-size:14px;color:var(--color-text);background:var(--color-bg);outline:none;transition:border-color .15s;font-family:inherit}.speak-form-input:focus,.speak-form-textarea:focus{border-color:var(--color-primary)}.speak-form-textarea{resize:vertical;line-height:1.5}.speak-submit-row{display:flex;justify-content:flex-end;gap:10px}.speak-submit-btn{background:var(--color-primary);color:#fff;border:none;padding:10px 24px;border-radius:var(--radius);font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s}.speak-submit-btn:hover:not(:disabled){opacity:.88}.speak-submit-btn:disabled{opacity:.5;cursor:default}.speak-error{width:100%;font-size:13px;color:var(--color-error);background:#fef2f2;border:1px solid #fecaca;border-radius:var(--radius);padding:10px 14px}.speak-uploading{display:flex;flex-direction:column;align-items:center;gap:14px;padding:16px 0}.speak-spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:speak-spin .8s linear infinite}@keyframes speak-spin{to{transform:rotate(360deg)}}.speak-uploading-label{font-size:14px;color:var(--color-text-muted)}.speak-tip{width:100%;display:flex;align-items:flex-start;gap:8px;padding:10px 12px;background:#2563eb0f;border:1px solid rgba(37,99,235,.18);border-radius:var(--radius);font-size:12px;color:var(--color-text-muted);line-height:1.6}.speak-tip-icon{font-size:14px;flex-shrink:0}.adm-page{max-width:1100px}.adm-title{font-size:22px;font-weight:700;color:var(--color-text);margin:0 0 20px}.adm-tabs{display:flex;gap:4px;border-bottom:2px solid var(--color-border);margin-bottom:24px}.adm-tab{background:none;border:none;padding:8px 18px 10px;font-size:14px;font-weight:500;color:var(--color-text-muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s}.adm-tab:hover{color:var(--color-text)}.adm-tab--active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.adm-section{display:flex;flex-direction:column;gap:16px}.adm-loading,.adm-empty{color:var(--color-text-muted);font-size:14px}.adm-error{color:#dc2626;font-size:14px}.adm-summary-bar{display:flex;flex-wrap:wrap;gap:20px 32px;padding:16px 20px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px}.adm-summary-item{display:flex;flex-direction:column;gap:2px}.adm-summary-label{font-size:12px;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.adm-summary-value{font-size:22px;font-weight:700;color:var(--color-text)}.adm-summary-value--sm{font-size:15px;font-weight:600}.adm-cost-total{color:#059669}.adm-table{width:100%;border-collapse:collapse;font-size:13px}.adm-table--fixed{table-layout:fixed}.adm-table--fixed td,.adm-table--fixed th{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.adm-table th{text-align:left;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);padding:8px 12px;border-bottom:1px solid var(--color-border)}.adm-table td{padding:10px 12px;border-bottom:1px solid var(--color-border);vertical-align:middle}.adm-table tr:last-child td{border-bottom:none}.adm-table tr:hover td{background:var(--color-bg)}.adm-num{text-align:right}.adm-cost{font-weight:600;color:#059669}.adm-user-name{font-weight:500;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.adm-user-email{font-size:12px;color:var(--color-text-muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.adm-user-since{font-size:11px;color:var(--color-text-muted);margin-top:2px}.adm-expand-btn{background:none;border:1px solid var(--color-border);border-radius:4px;padding:2px 8px;font-size:10px;color:var(--color-text-muted);cursor:pointer;transition:background .15s}.adm-expand-btn:hover{background:var(--color-bg)}.adm-row-detail td{background:#f8fafc;padding:0 12px 12px 24px}.adm-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:12px 0 4px}@media(max-width:700px){.adm-detail-grid{grid-template-columns:1fr}}.adm-detail-section{display:flex;flex-direction:column;gap:6px}.adm-detail-heading{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted)}.adm-ops-table{width:100%;border-collapse:collapse;font-size:12px;margin-top:4px}.adm-ops-table th{font-weight:600;color:var(--color-text-muted);padding:4px 8px;border-bottom:1px solid var(--color-border);text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.03em}.adm-ops-table td{padding:5px 8px;border-bottom:1px solid #f1f5f9}.adm-ops-table tr:last-child td{border-bottom:none}.adm-pricing-note{font-size:12px;color:var(--color-text-muted);margin:0}.adm-row-inactive td{opacity:.5}.adm-role-select{font-size:13px;padding:4px 8px;border:1px solid var(--color-border);border-radius:4px;background:var(--color-surface);color:var(--color-text);cursor:pointer}.adm-toggle-btn{padding:4px 12px;border-radius:20px;font-size:12px;font-weight:500;border:none;cursor:pointer;transition:background .15s}.adm-toggle-active{background:#d1fae5;color:#065f46}.adm-toggle-active:hover{background:#a7f3d0}.adm-toggle-inactive{background:#fee2e2;color:#991b1b}.adm-toggle-inactive:hover{background:#fecaca}.adm-flags-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.adm-flags-hint{font-size:13px;color:var(--color-text-muted);margin:0;max-width:520px;line-height:1.5}.adm-create-btn{flex-shrink:0;padding:6px 14px;font-size:13px;font-weight:500;background:var(--color-primary);color:#fff;border:none;border-radius:6px;cursor:pointer;transition:opacity .15s}.adm-create-btn:hover{opacity:.85}.adm-create-form{display:flex;gap:8px;flex-wrap:wrap;padding:12px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px}.adm-input{flex:1;min-width:180px;font-size:13px;padding:6px 10px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);color:var(--color-text)}.adm-save-btn{padding:6px 14px;font-size:13px;font-weight:500;background:var(--color-primary);color:#fff;border:none;border-radius:6px;cursor:pointer}.adm-cancel-btn{padding:6px 14px;font-size:13px;background:none;color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:6px;cursor:pointer}.adm-flag-card{padding:14px 16px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);display:flex;flex-direction:column;gap:10px}.adm-flag-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.adm-flag-name{font-weight:600;font-size:14px;color:var(--color-text);font-family:var(--font-mono, monospace)}.adm-flag-desc{font-size:12px;color:var(--color-text-muted);margin-left:10px}.adm-toggle-label{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--color-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.adm-flag-users{display:flex;flex-wrap:wrap;gap:6px}.adm-flag-user-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;background:#eff6ff;color:#1d4ed8;border-radius:12px;font-size:12px;font-weight:500}.adm-chip-remove{background:none;border:none;color:#93c5fd;font-size:14px;cursor:pointer;padding:0;line-height:1;transition:color .15s}.adm-chip-remove:hover{color:#1d4ed8}.adm-flag-add-user{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.adm-add-user-btn{background:none;border:1px dashed var(--color-border);border-radius:6px;padding:4px 12px;font-size:12px;color:var(--color-text-muted);cursor:pointer;transition:border-color .15s,color .15s}.adm-add-user-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.adm-health-grid{display:flex;gap:12px;flex-wrap:wrap}.adm-health-card{flex:1;min-width:110px;padding:16px;border-radius:8px;border:1px solid var(--color-border);text-align:center;background:var(--color-surface)}.adm-health-count{font-size:28px;font-weight:700;color:var(--color-text);line-height:1}.adm-health-label{font-size:12px;color:var(--color-text-muted);margin-top:4px}.adm-health-error .adm-health-count,.adm-health-error-rate .adm-health-count{color:#dc2626}.adm-health-ready .adm-health-count{color:#059669}.adm-health-pending-review .adm-health-count{color:#d97706}.adm-health-section{display:flex;flex-direction:column;gap:8px}.adm-h3{font-size:14px;font-weight:600;color:var(--color-text);margin:0}.adm-error-list{display:flex;flex-direction:column;gap:6px}.adm-error-row{display:flex;align-items:baseline;gap:10px;padding:8px 12px;background:#fff5f5;border:1px solid #fee2e2;border-radius:6px;font-size:13px}.adm-error-id{font-weight:600;color:#dc2626;flex-shrink:0}.adm-error-msg{flex:1;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.adm-error-date{flex-shrink:0;font-size:12px;color:var(--color-text-muted)}.app-layout{display:flex;min-height:100vh}.sidebar{width:220px;flex-shrink:0;background:var(--color-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column;padding:24px 0 16px;position:fixed;top:0;left:0;bottom:0;overflow-y:auto}.sidebar-logo{font-size:14px;font-weight:700;color:var(--color-primary);padding:0 20px 24px;letter-spacing:-.01em}.sidebar-nav{list-style:none;flex:1}.sidebar-link{display:block;padding:8px 20px;color:var(--color-text-muted);font-size:14px;border-left:3px solid transparent;transition:color .15s,border-color .15s,background .15s}.sidebar-link:hover{color:var(--color-text);background:var(--color-bg)}.sidebar-link--active{color:var(--color-primary);border-left-color:var(--color-primary);font-weight:500;background:#eff6ff}.sidebar-link--admin{margin-top:8px;border-top:1px solid var(--color-border);padding-top:12px;font-size:13px;font-weight:500;color:var(--color-text-muted)}.sidebar-logout{margin:16px 20px 0;padding:8px 12px;font-size:13px;color:var(--color-text-muted);background:none;border:1px solid var(--color-border);border-radius:var(--radius);text-align:left;transition:color .15s,border-color .15s}.sidebar-logout:hover{color:var(--color-error);border-color:var(--color-error)}.main-content{margin-left:220px;flex:1;min-height:100vh}.page-inner{max-width:900px;margin:0 auto;padding:40px 48px}.placeholder-page h1{font-size:24px;font-weight:600;margin-bottom:8px}.placeholder-page p{color:var(--color-text-muted)}.sidebar-link--settings{margin-top:auto;border-top:1px solid var(--color-border);padding-top:12px}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-bg)}.auth-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:40px;width:100%;max-width:400px;box-shadow:var(--shadow)}.auth-title{font-size:22px;font-weight:700;color:var(--color-primary);margin-bottom:4px}.auth-subtitle{font-size:14px;color:var(--color-text-muted);margin-bottom:28px}.auth-form{display:flex;flex-direction:column;gap:16px}.auth-label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:500}.auth-input{padding:9px 12px;border:1px solid var(--color-border);border-radius:var(--radius);font-size:15px;outline:none;transition:border-color .15s}.auth-input:focus{border-color:var(--color-primary)}.auth-btn{margin-top:4px;padding:10px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius);font-size:15px;font-weight:500;transition:background .15s}.auth-btn:hover:not(:disabled){background:var(--color-primary-hover)}.auth-btn:disabled{opacity:.6;cursor:not-allowed}.auth-error{padding:10px 12px;background:#fef2f2;border:1px solid #fecaca;border-radius:var(--radius);color:var(--color-error);font-size:14px}.auth-footer{margin-top:20px;text-align:center;font-size:14px;color:var(--color-text-muted)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg: #f9f9f9;--color-surface: #ffffff;--color-border: #e2e2e2;--color-text: #1a1a1a;--color-text-muted: #6b7280;--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-error: #dc2626;--color-success: #16a34a;--radius: 8px;--shadow: 0 1px 3px rgba(0, 0, 0, .08)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--color-bg);color:var(--color-text);font-size:15px;line-height:1.5}a{color:var(--color-primary);text-decoration:none}button{cursor:pointer;font-family:inherit;font-size:inherit}input,textarea,select{font-family:inherit;font-size:inherit}
