.tts-page{min-height:100vh}.tts-nav{position:-webkit-sticky;position:sticky;top:0;z-index:50;background:var(--glass);-webkit-backdrop-filter:blur(20px) saturate(1.5);backdrop-filter:blur(20px) saturate(1.5);border-bottom:1px solid var(--card-border);padding:0 2rem;height:64px;justify-content:space-between}.tts-nav,.tts-nav-right{display:flex;align-items:center}.tts-nav-right{gap:.75rem}.tts-user{font-size:.85rem;color:var(--muted);font-family:monospace}.tts-main{max-width:1100px;margin:0 auto;padding:2rem 1.5rem}.tts-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem}.tts-head h1{font-size:1.8rem;font-weight:800;letter-spacing:-.03em}.tts-health{display:inline-flex;align-items:center;gap:.5rem;padding:.35rem .9rem;border-radius:999px;font-size:.8rem;border:1px solid var(--card-border);background:var(--card);color:var(--muted)}.tts-health-dot{width:8px;height:8px;border-radius:50%;background:var(--muted);flex-shrink:0}.tts-health-label{display:inline-flex;align-items:center;gap:.35rem}.tts-health.online{color:var(--accent);border-color:oklch(86.8% .185 145/.3)}.tts-health.online .tts-health-dot{background:var(--accent);animation:pulse-dot 2s infinite}.tts-health.offline{color:#ef4444;border-color:rgb(239 68 68/.3)}.tts-health.offline .tts-health-dot{background:#ef4444}.tts-health-tag{font-style:normal;font-size:.68rem;font-family:monospace;padding:.05rem .45rem;border-radius:999px;border:1px solid var(--card-border);color:var(--accent3)}.tts-health-tag-mock{color:#f59e0b;border-color:rgb(245 158 11/.35)}.tts-retry{background:none;border:1px solid;border-radius:var(--radius-xs);padding:.15rem .5rem;font-size:.72rem;cursor:pointer;color:inherit;font-family:inherit;transition:background var(--transition)}.tts-retry:hover{background:rgb(255 255 255/.06)}.tts-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);grid-gap:1.25rem;gap:1.25rem;align-items:start}.tts-panel{padding:1.5rem}.tts-panel h2{font-size:1.05rem;margin-bottom:1rem;display:flex;gap:.4rem}.tts-count,.tts-panel h2{font-weight:700;align-items:center}.tts-count{display:inline-flex;justify-content:center;min-width:1.4rem;height:1.4rem;padding:0 .4rem;border-radius:999px;background:oklch(86.8% .185 145/.12);color:var(--accent);font-size:.8rem}.tts-label{display:block;font-size:.8rem;color:var(--muted);margin:.9rem 0 .35rem}.tts-compose .tts-label:first-of-type{margin-top:0}.tts-input,.tts-textarea{width:100%;padding:.7rem .9rem;border-radius:var(--radius-sm);border:1.5px solid var(--card-border);font-size:.9rem;background:var(--bg2);color:var(--fg);font-family:inherit;transition:border-color var(--transition)}.tts-textarea{resize:vertical;min-height:140px;line-height:1.6}.tts-input:focus,.tts-textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px oklch(86.8% .185 145/.15)}.tts-input::placeholder,.tts-textarea::placeholder{color:oklch(70% .022 252/.55)}.tts-text-meta{margin-top:.3rem;text-align:right;font-size:.72rem;color:var(--muted);font-family:monospace}.tts-form-error{margin-top:.75rem;font-size:.82rem;color:#ef4444}.tts-submit{margin-top:1.1rem;width:100%;justify-content:center}.tts-submit:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.tts-preset-row{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.6rem}.tts-preset-btn{padding:.28rem .7rem;font-size:.78rem;border-radius:999px}.tts-preset-btn.is-active{background:var(--card-hover);border-color:oklch(72% .12 262/.55);color:var(--foreground)}.tts-form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:.75rem;gap:.75rem}@media (max-width:480px){.tts-form-grid{grid-template-columns:1fr}}.tts-hint{margin:.7rem 0 0;font-size:.74rem;color:var(--muted);line-height:1.55}.tts-placeholder{color:var(--muted);font-size:.9rem;padding:.5rem 0}.tts-placeholder-error{display:flex;flex-direction:column;gap:.6rem;align-items:flex-start}.tts-jobs-list{list-style:none;display:flex;flex-direction:column;gap:.75rem;max-height:68vh;overflow-y:auto;padding-right:2px}.tts-job{padding:.9rem 1.1rem;border-radius:var(--radius-sm);background:var(--card);border:1px solid var(--card-border);transition:border-color var(--transition)}.tts-job:hover{border-color:oklch(96% .01 247/.18)}.tts-job-head{display:flex;align-items:center;gap:.75rem}.tts-badge{font-size:.72rem;font-weight:700;padding:.15rem .6rem;border-radius:999px;border:1px solid;flex-shrink:0}.tts-badge-queued{color:var(--muted);border-color:var(--card-border);background:rgb(255 255 255/.04)}.tts-badge-running{color:var(--accent3);border-color:oklch(83% .115 208/.35);background:oklch(83% .115 208/.1);animation:pulse 1.5s ease-in-out infinite}.tts-badge-done{color:var(--accent);border-color:oklch(86.8% .185 145/.35);background:oklch(86.8% .185 145/.1)}.tts-badge-failed{color:#ef4444;border-color:rgb(239 68 68/.35);background:rgb(239 68 68/.08)}.tts-job-time{margin-left:auto;font-family:monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tts-job-delete,.tts-job-time{font-size:.72rem;color:var(--muted)}.tts-job-delete{background:none;border:1px solid var(--card-border);padding:.2rem .55rem;border-radius:var(--radius-xs);cursor:pointer;font-family:inherit;flex-shrink:0;transition:color var(--transition),border-color var(--transition),background var(--transition)}.tts-job-delete:hover{color:#ef4444;border-color:rgb(239 68 68/.4);background:rgb(239 68 68/.08)}.tts-job-text{margin-top:.55rem;font-size:.85rem;line-height:1.55;color:var(--fg);opacity:.85;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tts-job-meta{margin-top:.45rem;display:flex;gap:1rem;font-size:.72rem;color:var(--muted);font-family:monospace}.tts-audio{margin-top:.7rem;width:100%;height:36px}.tts-job-error{margin-top:.55rem;font-size:.8rem;color:#ef4444;word-break:break-all}@media (max-width:900px){.tts-nav{padding:0 1rem}.tts-user{display:none}.tts-main{padding:1.5rem 1rem}.tts-grid{grid-template-columns:1fr}.tts-jobs-list{max-height:none}}.tts-stats{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:.6rem;gap:.6rem;margin-bottom:1rem}.tts-stat-card{display:flex;flex-direction:column;gap:.15rem;padding:.7rem .85rem;background:oklch(100% 0 0/.03);border:1px solid oklch(70% .022 252/.12);border-radius:var(--radius);transition:border-color .2s ease,background .2s ease}.tts-stat-card.tts-stat-active{border-color:oklch(83% .115 208/.55);background:oklch(83% .115 208/.07)}.tts-stat-card.tts-stat-good{border-color:oklch(86.8% .185 145/.5)}.tts-stat-label{font-size:.72rem;letter-spacing:.06em;color:oklch(70% .022 252/.6)}.tts-stat-value{font-size:1.05rem;font-weight:600;color:var(--fg)}.tts-stat-sub{font-size:.7rem;color:oklch(70% .022 252/.45)}.tts-stats-error{margin-bottom:1rem;padding:.55rem .8rem;font-size:.8rem;color:oklch(70% .022 252/.6);border:1px dashed oklch(70% .022 252/.2);border-radius:var(--radius)}.tts-detail-btn{margin-left:auto;padding:.15rem .55rem;font-size:.74rem;color:oklch(70% .022 252/.75);background:transparent;border:1px solid oklch(70% .022 252/.18);border-radius:var(--radius);cursor:pointer;transition:color .15s ease,border-color .15s ease}.tts-detail-btn:hover,.tts-detail-btn[aria-expanded=true]{color:var(--accent);border-color:oklch(86.8% .185 145/.5)}.tts-detail{margin-top:.65rem;display:grid;grid-template-columns:1fr 1fr;grid-gap:.6rem;gap:.6rem}.tts-detail-sec{padding:.6rem .75rem;background:oklch(100% 0 0/.02);border:1px solid oklch(70% .022 252/.1);border-radius:var(--radius)}.tts-detail-sec h3{margin:0 0 .45rem;font-size:.72rem;font-weight:600;letter-spacing:.08em;color:oklch(70% .022 252/.55)}.tts-detail-grid{margin:0;display:grid;grid-gap:.3rem;gap:.3rem}.tts-detail-grid>div{display:flex;justify-content:space-between;gap:.75rem;font-size:.78rem}.tts-detail-grid dt{color:oklch(70% .022 252/.55);flex-shrink:0}.tts-detail-grid dd{margin:0;color:var(--fg);text-align:right;word-break:break-all}.tts-kv-wide{grid-column:1/-1}@media (max-width:900px){.tts-stats{grid-template-columns:repeat(2,1fr)}.tts-detail{grid-template-columns:1fr}}.tts-badge-cache{color:var(--accent3);border-color:oklch(83% .115 208/.35);background:oklch(83% .115 208/.1)}.tts-channel{display:grid;grid-template-columns:1fr 1fr;grid-gap:4px;gap:4px;padding:4px;margin-bottom:.9rem;background:oklch(100% 0 0/.04);border:1px solid oklch(70% .022 252/.14);border-radius:var(--radius)}.tts-channel-btn{padding:.45rem .6rem;font-size:.82rem;color:oklch(70% .022 252/.7);background:transparent;border:0;border-radius:3px;cursor:pointer;transition:color .15s ease,background .15s ease}.tts-channel-btn:hover{color:var(--fg)}.tts-channel-btn.active{color:var(--bg);font-weight:600;background:var(--accent)}.tts-channel-note{margin:-.4rem 0 .8rem;font-size:.76rem;line-height:1.5;color:oklch(70% .022 252/.55)}.tts-badge-local{color:oklch(83% .115 208);border:1px solid oklch(83% .115 208/.35);background:oklch(83% .115 208/.1)}.tts-local{margin-bottom:1.25rem;padding-bottom:1rem;border-bottom:1px solid oklch(70% .022 252/.1)}.tts-job-meta{font-size:.74rem;color:oklch(70% .022 252/.6)}.tts-player{display:flex;align-items:center;gap:.55rem;margin-top:.55rem}.tts-player-btn{flex-shrink:0;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:.68rem;color:var(--accent);border:1px solid oklch(86.8% .185 145/.5);background:oklch(86.8% .185 145/.1);cursor:pointer;transition:background .15s ease,color .15s ease}.tts-player-btn:hover{background:oklch(86.8% .185 145/.22)}.tts-player-btn.on{background:var(--accent);color:var(--bg);border-color:var(--accent)}.tts-player-mid{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:3px}.tts-player-seek{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:4px;border-radius:2px;margin:0;background:oklch(70% .022 252/.22);outline:none;cursor:pointer}.tts-player-seek::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;border-radius:50%;background:var(--accent);border:none;box-shadow:0 0 6px oklch(86.8% .185 145/.5)}.tts-player-seek::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:var(--accent);border:none}.tts-player-time{display:flex;justify-content:space-between;font-size:.66rem;color:oklch(70% .022 252/.55);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tts-player-dl,.tts-player-rate{flex-shrink:0;padding:.22rem .45rem;font-size:.7rem;color:oklch(70% .022 252/.75);background:transparent;border:1px solid oklch(70% .022 252/.18);border-radius:var(--radius);cursor:pointer;text-decoration:none;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;transition:color .15s ease,border-color .15s ease}.tts-player-dl:hover,.tts-player-rate:hover{color:var(--accent);border-color:oklch(86.8% .185 145/.5)}.tts-player-err{font-size:.7rem;flex-shrink:0}.tts-player-btn svg{width:14px;height:14px;display:block}.tts-player-dl svg{width:13px;height:13px;display:block}.tts-player-err svg{width:12px;height:12px;display:block}.tts-player-err{display:grid;place-items:center;color:#ef4444}.tts-job-head{flex-wrap:wrap;row-gap:.35rem}@media (max-width:900px){.tts-input,.tts-textarea{font-size:16px}.tts-player-btn{width:42px;height:42px}.tts-player-btn svg{width:16px;height:16px}.tts-player-dl,.tts-player-rate{padding:.45rem .65rem}.tts-player-dl svg,.tts-player-rate svg{width:15px;height:15px}.tts-detail-btn,.tts-job-delete{padding:.45rem .75rem}.tts-player-seek{height:6px;padding:0}.tts-player{gap:.6rem}.tts-stats{gap:.5rem}.tts-stat-card{padding:.6rem .7rem}}.tts-channel-btn:disabled{opacity:.38;cursor:not-allowed}.tts-channel-btn:disabled:hover{color:oklch(70% .022 252/.7);background:transparent}.tts-channel-warn{color:#f59e0b;opacity:.95}.tts-asr{margin-top:1.25rem}.tts-asr-result{margin-top:1rem;padding:.9rem 1rem;border-radius:var(--radius-sm);border:1px solid var(--card-border);background:oklch(97% .02 252/.04)}.tts-asr-meta{display:flex;flex-wrap:wrap;gap:1rem;font-size:.76rem;color:oklch(70% .022 252/.65);margin-bottom:.6rem}.tts-asr-text{margin:0;padding:0;font-family:inherit;font-size:.92rem;line-height:1.65;white-space:pre-wrap;word-break:break-word;color:var(--fg)}