[v-cloak]{display:none!important}*{box-sizing:border-box}body{margin:0;background:#eef2f7;color:#172033;font-family:Arial,Helvetica,sans-serif}.page{width:min(1180px,calc(100% - 28px));margin:24px auto 70px}.top{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}h1{margin:0;font-size:34px;letter-spacing:-.5px}h2{margin:0;font-size:22px}h3{margin:0 0 10px}.muted{color:#6b7280}.top-right{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.pill{padding:10px 14px;border-radius:999px;font-weight:700}.pill.ok{background:#dcfce7;color:#166534}.pill.bad{background:#fee2e2;color:#991b1b}.pill.neutral{background:#e0e7ff;color:#3730a3}.alert{padding:14px 16px;border-radius:16px;margin-bottom:16px;font-weight:700}.alert.success{background:#dcfce7;color:#166534}.alert.error{background:#fee2e2;color:#991b1b}.grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px}.card{background:white;border-radius:22px;padding:22px;box-shadow:0 14px 35px rgba(15,23,42,.08);margin-bottom:18px}.card-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:16px}.counter{font-size:13px;color:#6b7280;font-weight:700}textarea{width:100%;min-height:250px;resize:vertical;border:1px solid #d1d5db;border-radius:18px;padding:16px;font-size:17px;line-height:1.45;outline:none;background:#fbfdff}textarea:focus,select:focus,input:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.12)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}label span{display:block;font-weight:700;margin-bottom:7px}select,input[type=file]{width:100%;border:1px solid #d1d5db;border-radius:16px;background:white;padding:12px;font-size:16px}.actions{display:flex;gap:12px;margin-top:16px;flex-wrap:wrap}button{border:0;border-radius:16px;padding:13px 18px;font-size:16px;font-weight:800;cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}.primary{background:#2563eb;color:white}.primary:hover:not(:disabled){background:#1d4ed8}.secondary{background:#e5e7eb;color:#111827}.secondary:hover:not(:disabled){background:#d1d5db}.danger{background:#fee2e2;color:#991b1b}.danger:hover:not(:disabled){background:#fecaca}.small{padding:8px 12px;font-size:13px}.full{width:100%;margin-top:14px}.job-box{margin-top:18px;padding:14px;border:1px solid #e5e7eb;background:#f9fafb;border-radius:18px}.job-line{font-size:14px;margin-bottom:10px}.progress{height:12px;background:#e5e7eb;border-radius:999px;overflow:hidden;margin-bottom:10px}.bar{height:100%;width:0;background:#93c5fd;transition:width .25s ease}.bar.running.bar.done{width:100%;background:#22c55e;animation:none}.bar.error{width:100%;background:#ef4444;animation:none}@keyframes pulse{0%{opacity:.45}50%{opacity:1}100%{opacity:.45}}.error-text{margin-top:10px;color:#991b1b;background:#fee2e2;padding:10px;border-radius:12px;white-space:pre-wrap}.player-box{margin-top:18px;padding:16px;border-radius:18px;background:#eff6ff;border:1px solid #bfdbfe}audio{width:100%;margin:8px 0}.file-actions{display:flex;gap:12px;flex-wrap:wrap}.file-actions a{color:#2563eb;font-weight:800;text-decoration:none}.file-actions a:hover{text-decoration:underline}.voice-state,.tech{margin-top:14px;padding:14px;border-radius:16px;background:#f9fafb;border:1px solid #e5e7eb}.small-path{font-family:Consolas,monospace;font-size:13px;word-break:break-all;color:#334155;margin:6px 0}.upload-area{margin-top:14px;padding:18px;border:2px dashed #cbd5e1;border-radius:18px;background:#f8fafc;text-align:center}.upload-area p{font-weight:800;margin:10px 0 4px}.upload-area small{color:#6b7280}.history{display:grid;gap:14px}.history-item{border:1px solid #e5e7eb;background:#f9fafb;border-radius:18px;padding:14px}.history-meta{font-size:13px;color:#6b7280;margin-bottom:8px}.history-text{white-space:pre-wrap;margin-bottom:8px}.empty{padding:16px;border-radius:16px;background:#f9fafb}@media(max-width:900px){.grid{grid-template-columns:1fr}.top{display:block}.top-right{justify-content:flex-start;margin-top:12px}.form-row{grid-template-columns:1fr}textarea{min-height:190px}}

.source-text-box{margin:10px 0 14px;padding:13px 14px;border:1px solid #cbd5e1;border-radius:14px;background:#fff}.source-text-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;font-size:13px}.source-text-head span{color:#64748b;font-weight:700;white-space:nowrap}.source-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.45;color:#1e293b;max-height:260px;overflow:auto}.history-source{background:#fff;margin:8px 0 10px}

.progress-head{display:flex;justify-content:space-between;align-items:center;margin:2px 1px 7px;font-size:13px;color:#475569}.progress-head b{font-size:15px;color:#1d4ed8}.progress-status{min-height:20px}.optimizations{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.mini-pill{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:800}.mini-pill.ok{background:#dcfce7;color:#166534}
.tuning-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.range-card{border:1px solid #dbe3ee;background:#f8fafc;border-radius:16px;padding:13px 14px}.range-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.range-head span{margin:0}.range-head b{color:#1d4ed8;font-size:15px}.range-card input[type=range]{width:100%;accent-color:#2563eb}.range-scale{display:flex;justify-content:space-between;color:#94a3b8;font-size:11px;margin-top:4px}.job-details,.result-stats{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.job-details span,.result-stats span{padding:6px 9px;border-radius:10px;background:#fff;border:1px solid #e2e8f0;color:#475569;font-size:12px}.result-stats{margin:8px 0 12px}.result-stats span{background:#f8fbff}.bar.running{background:#2563eb}.bar.done{background:#22c55e}.bar.error{background:#ef4444}@media(max-width:700px){.tuning-grid{grid-template-columns:1fr}}
.app-tabs{display:flex;gap:8px;margin:0 0 18px;padding:5px;background:#e2e8f0;border-radius:17px;width:max-content;max-width:100%;overflow:auto}.app-tabs button{background:transparent;color:#475569;padding:10px 16px;white-space:nowrap}.app-tabs button.active{background:#fff;color:#1d4ed8;box-shadow:0 2px 9px rgba(15,23,42,.09)}.processing-subtitle{margin-top:5px;font-size:13px}.processing-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);gap:18px}.processing-sources,.processing-controls{min-width:0}.section-title{font-size:16px;font-weight:800;margin-bottom:12px;color:#1e293b}.source-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}.processing-file-list{display:grid;gap:9px;max-height:720px;overflow:auto;padding-right:3px}.processing-file{display:grid;grid-template-columns:24px minmax(180px,1fr);align-items:center;gap:8px;padding:10px 12px;border:1px solid #e2e8f0;border-radius:14px;background:#f8fafc;cursor:pointer}.processing-file.chosen{border-color:#60a5fa;background:#eff6ff}.processing-file input{width:18px;height:18px}.processing-file-info{min-width:0}.processing-file-info b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.processing-file-info span{display:block;color:#64748b;font-size:11px;margin-top:3px}.processing-file audio{grid-column:2;margin:5px 0 0;height:34px}.processing-controls{display:grid;gap:11px;align-content:start}.processing-form-row{margin-top:0}.number-input{width:100%;border:1px solid #d1d5db;border-radius:16px;background:white;padding:12px;font-size:16px}.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.check-card{display:flex;align-items:center;gap:9px;padding:11px 12px;border:1px solid #dbe3ee;border-radius:14px;background:#f8fafc}.check-card input{width:18px;height:18px}.check-card span{margin:0;font-size:13px}.processing-result{margin-top:20px}.link-button{padding:0;background:transparent;color:#2563eb;font:inherit;font-weight:800}.link-button:hover{text-decoration:underline}.processing-page .range-card{display:block}@media(max-width:900px){.processing-grid{grid-template-columns:1fr}.processing-file-list{max-height:480px}}@media(max-width:560px){.check-grid{grid-template-columns:1fr}.app-tabs{width:100%}.app-tabs button{flex:1}}
