:root{--aurora-mint:#00ffc8;--aurora-cyan:#00d4ff;--aurora-violet:#8b5cf6;--aurora-rose:#f472b6;--aurora-amber:#fbbf24;--glass-bg:rgba(15,15,25,0.6);--glass-bg-strong:rgba(15,15,25,0.85);--glass-border:rgba(255,255,255,0.08);--glass-border-hover:rgba(255,255,255,0.15);--glass-highlight:rgba(255,255,255,0.05);--text-primary:rgba(255,255,255,0.95);--text-secondary:rgba(255,255,255,0.7);--text-muted:rgba(255,255,255,0.4);--text-ghost:rgba(255,255,255,0.15);--glow-primary:var(--aurora-cyan);--glow-secondary:var(--aurora-violet);--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--space-3xl:64px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-pill:9999px;--font-display:'EB Garamond','Times New Roman',serif;--font-body:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;--ease-spring:cubic-bezier(0.34,1.56,0.64,1);--ease-smooth:cubic-bezier(0.4,0,0.2,1);--duration-fast:150ms;--duration-normal:300ms;--duration-slow:500ms}*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased}body{font-family:var(--font-body);color:var(--text-primary);background:#07070f;overflow:hidden;height:100vh;width:100vw}.aurora-bg{position:fixed;inset:0;z-index:0;overflow:hidden;background:radial-gradient(ellipse at 20% 50%,rgba(0,255,200,0.08) 0%,transparent 50%),radial-gradient(ellipse at 80% 20%,rgba(139,92,246,0.08) 0%,transparent 50%),radial-gradient(ellipse at 50% 80%,rgba(0,212,255,0.06) 0%,transparent 50%),#07070f}.aurora-orb{position:absolute;border-radius:50%;filter:blur(80px);opacity:0.4;animation:aurora-drift 20s ease-in-out infinite}.aurora-orb-1{width:600px;height:600px;background:radial-gradient(circle,var(--aurora-mint),transparent 70%);top:-10%;left:-10%;animation-duration:25s}.aurora-orb-2{width:500px;height:500px;background:radial-gradient(circle,var(--aurora-violet),transparent 70%);top:20%;right:-15%;animation-delay:-5s;animation-duration:30s}.aurora-orb-3{width:450px;height:450px;background:radial-gradient(circle,var(--aurora-cyan),transparent 70%);bottom:-10%;left:30%;animation-delay:-10s;animation-duration:22s}.aurora-orb-4{width:350px;height:350px;background:radial-gradient(circle,var(--aurora-rose),transparent 70%);top:60%;left:-5%;animation-delay:-15s;animation-duration:28s}.aurora-orb-5{width:300px;height:300px;background:radial-gradient(circle,var(--aurora-amber),transparent 70%);top:10%;left:60%;animation-delay:-8s;animation-duration:35s;opacity:0.2}@keyframes aurora-drift{0%,100%{transform:translate(0,0) scale(1)}25%{transform:translate(30px,-20px) scale(1.05)}50%{transform:translate(-20px,30px) scale(0.95)}75%{transform:translate(15px,15px) scale(1.02)}}.theater{position:relative;z-index:1;display:flex;flex-direction:column;height:100vh;overflow:hidden}.floating-island{position:fixed;top:var(--space-lg);left:50%;transform:translateX(-50%);z-index:100;width:calc(100% - var(--space-2xl) * 2);max-width:900px}.island-content{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);background:var(--glass-bg);backdrop-filter:blur(40px) saturate(180%);-webkit-backdrop-filter:blur(40px) saturate(180%);border:1px solid var(--glass-border);border-radius:var(--radius-pill);box-shadow:0 8px 32px rgba(0,0,0,0.3),inset 0 1px 0 var(--glass-highlight)}.brand{display:flex;align-items:center;gap:var(--space-sm)}.brand-glyph{color:var(--aurora-cyan);display:flex;align-items:center}.brand-name{font-family:var(--font-display);font-size:1.25rem;font-weight:500;letter-spacing:-0.02em}.strategy-selector{display:flex;gap:var(--space-xs);background:rgba(255,255,255,0.03);border-radius:var(--radius-pill);padding:3px}.strategy-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;background:transparent;border:none;border-radius:var(--radius-pill);color:var(--text-muted);font-family:var(--font-body);font-size:0.8125rem;font-weight:500;cursor:pointer;transition:all var(--duration-normal) var(--ease-smooth);white-space:nowrap}.strategy-btn:hover{color:var(--text-secondary);background:rgba(255,255,255,0.05)}.strategy-btn.active{color:var(--text-primary);background:rgba(0,212,255,0.15);box-shadow:0 0 20px rgba(0,212,255,0.1)}.strategy-icon{display:flex;align-items:center;opacity:0.7}.strategy-btn.active .strategy-icon{opacity:1;color:var(--aurora-cyan)}.stage{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:120px var(--space-xl) var(--space-3xl);position:relative}.glow-container{position:relative;width:400px;height:400px;display:flex;align-items:center;justify-content:center}.glow-ring{position:absolute;border-radius:50%;border:1px solid;opacity:0;transition:opacity var(--duration-slow) var(--ease-smooth)}.glow-ring-outer{width:100%;height:100%;border-color:rgba(0,212,255,0.1);animation:pulse-outer 4s ease-in-out infinite}.glow-ring-middle{width:80%;height:80%;border-color:rgba(139,92,246,0.15);animation:pulse-middle 3s ease-in-out infinite}.glow-ring-inner{width:60%;height:60%;border-color:rgba(0,255,200,0.2);animation:pulse-inner 2s ease-in-out infinite}.glow-container.active .glow-ring{opacity:1}@keyframes pulse-outer{0%,100%{transform:scale(1);opacity:0.3}50%{transform:scale(1.05);opacity:0.6}}@keyframes pulse-middle{0%,100%{transform:scale(1);opacity:0.4}50%{transform:scale(1.08);opacity:0.7}}@keyframes pulse-inner{0%,100%{transform:scale(1);opacity:0.5}50%{transform:scale(1.1);opacity:0.9}}#waveformCanvas{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none}.stage-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;z-index:2}.stage-idle{display:flex;flex-direction:column;align-items:center;gap:var(--space-md)}.idle-icon{color:var(--text-muted);opacity:0.5}.idle-text{font-size:0.875rem;color:var(--text-muted);max-width:200px;line-height:1.5}.stage-playing{display:flex;flex-direction:column;align-items:center;gap:var(--space-md)}.playing-indicator{display:flex;align-items:flex-end;gap:4px;height:32px}.playing-indicator .bar{width:4px;background:var(--aurora-cyan);border-radius:2px;animation:audio-bar 1.2s ease-in-out infinite}.playing-indicator .bar:nth-child(1){height:12px;animation-delay:0s}.playing-indicator .bar:nth-child(2){height:20px;animation-delay:0.1s}.playing-indicator .bar:nth-child(3){height:28px;animation-delay:0.2s}.playing-indicator .bar:nth-child(4){height:20px;animation-delay:0.3s}.playing-indicator .bar:nth-child(5){height:12px;animation-delay:0.4s}@keyframes audio-bar{0%,100%{transform:scaleY(0.5);opacity:0.5}50%{transform:scaleY(1);opacity:1}}.playing-text{font-size:0.8125rem;color:var(--text-secondary);font-weight:500}.hidden{display:none!important}.subtitle-stream{width:100%;max-width:700px;height:200px;overflow-y:auto;overflow-x:hidden;position:relative;mask-image:linear-gradient(to bottom,transparent 0%,black 20%,black 80%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,transparent 0%,black 20%,black 80%,transparent 100%)}.subtitle-track{display:flex;flex-direction:column;gap:var(--space-md);transition:transform var(--duration-slow) var(--ease-smooth)}.subtitle-line{font-family:var(--font-display);font-size:1.5rem;font-weight:400;line-height:1.6;color:var(--text-secondary);text-align:center;opacity:0;transform:translateY(20px);transition:all var(--duration-slow) var(--ease-smooth)}.subtitle-line.visible{opacity:1;transform:translateY(0)}.subtitle-line.current{color:var(--text-primary);font-size:1.75rem;text-shadow:0 0 30px rgba(0,212,255,0.3)}.stats-corner{position:fixed;bottom:120px;right:var(--space-xl);display:flex;flex-direction:column;gap:var(--space-sm);opacity:0;transform:translateX(20px);transition:all var(--duration-normal) var(--ease-smooth)}.stats-corner.visible{opacity:1;transform:translateX(0)}.stat-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-md);background:var(--glass-bg);backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-sm)}.stat-label{font-size:0.625rem;font-weight:600;letter-spacing:0.1em;color:var(--text-muted);text-transform:uppercase}.stat-value{font-size:0.75rem;font-weight:500;color:var(--aurora-cyan);font-variant-numeric:tabular-nums}.control-dock{position:fixed;bottom:var(--space-lg);left:50%;transform:translateX(-50%);z-index:100;width:calc(100% - var(--space-2xl) * 2);max-width:800px}.dock-content{display:flex;align-items:flex-end;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--glass-bg-strong);backdrop-filter:blur(40px) saturate(180%);-webkit-backdrop-filter:blur(40px) saturate(180%);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:0 -4px 32px rgba(0,0,0,0.3),inset 0 1px 0 var(--glass-highlight)}.speaker-section{position:relative}.speaker-btn{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md);background:rgba(255,255,255,0.05);border:1px solid var(--glass-border);border-radius:var(--radius-md);color:var(--text-secondary);font-family:var(--font-body);font-size:0.8125rem;cursor:pointer;transition:all var(--duration-normal) var(--ease-smooth);white-space:nowrap}.speaker-btn:hover{background:rgba(255,255,255,0.08);border-color:var(--glass-border-hover);color:var(--text-primary)}.speaker-name{max-width:100px;overflow:hidden;text-overflow:ellipsis}.speaker-dropdown{position:absolute;bottom:calc(100% + var(--space-sm));left:0;min-width:280px;background:var(--glass-bg-strong);backdrop-filter:blur(40px) saturate(180%);-webkit-backdrop-filter:blur(40px) saturate(180%);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:0 8px 32px rgba(0,0,0,0.4);overflow:hidden}.dropdown-header{padding:var(--space-md);font-size:0.75rem;font-weight:600;letter-spacing:0.05em;color:var(--text-muted);text-transform:uppercase;border-bottom:1px solid var(--glass-border)}.speaker-list{max-height:300px;overflow-y:auto;padding:var(--space-sm)}.speaker-item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--duration-fast) var(--ease-smooth)}.speaker-item:hover{background:rgba(255,255,255,0.05)}.speaker-item.selected{background:rgba(0,212,255,0.1)}.speaker-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--aurora-cyan),var(--aurora-violet));display:flex;align-items:center;justify-content:center;font-size:0.875rem;font-weight:600;color:white}.speaker-info{flex:1}.speaker-item-name{font-size:0.875rem;font-weight:500;color:var(--text-primary)}.speaker-item-id{font-size:0.75rem;color:var(--text-muted)}.input-area{flex:1;display:flex;flex-direction:column;gap:var(--space-sm)}.input-wrapper{display:flex;align-items:flex-end;gap:var(--space-sm);background:rgba(255,255,255,0.05);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-sm) var(--space-sm) var(--space-sm) var(--space-md);transition:all var(--duration-normal) var(--ease-smooth)}.input-wrapper:focus-within{border-color:var(--aurora-cyan);box-shadow:0 0 0 2px rgba(0,212,255,0.1)}textarea{flex:1;background:transparent;border:none;outline:none;color:var(--text-primary);font-family:var(--font-body);font-size:0.9375rem;line-height:1.5;resize:none;max-height:120px;padding:var(--space-sm) 0}textarea::placeholder{color:var(--text-muted)}.send-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--aurora-cyan);border:none;border-radius:var(--radius-md);color:#07070f;cursor:pointer;transition:all var(--duration-normal) var(--ease-spring);flex-shrink:0}.send-btn:hover:not(:disabled){transform:scale(1.05);box-shadow:0 0 20px rgba(0,212,255,0.4)}.send-btn:active:not(:disabled){transform:scale(0.95)}.send-btn:disabled{opacity:0.3;cursor:not-allowed}.input-hint{display:flex;align-items:center;justify-content:flex-start;padding:0 var(--space-sm)}.cache-toggle{display:flex;align-items:center;gap:var(--space-sm)}.toggle{position:relative;width:32px;height:18px}.toggle input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;inset:0;background:rgba(255,255,255,0.1);border-radius:9px;cursor:pointer;transition:all var(--duration-normal) var(--ease-smooth)}.toggle-slider::before{content:'';position:absolute;width:14px;height:14px;left:2px;top:2px;background:var(--text-muted);border-radius:50%;transition:all var(--duration-normal) var(--ease-spring)}.toggle input:checked+.toggle-slider{background:rgba(0,212,255,0.3)}.toggle input:checked+.toggle-slider::before{transform:translateX(14px);background:var(--aurora-cyan)}.toggle-label{font-size:0.75rem;color:var(--text-muted)}.modal-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,0.6);backdrop-filter:blur(8px)}.modal-glass{width:90%;max-width:400px;background:var(--glass-bg-strong);backdrop-filter:blur(40px) saturate(180%);-webkit-backdrop-filter:blur(40px) saturate(180%);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:0 16px 64px rgba(0,0,0,0.5);overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg);border-bottom:1px solid var(--glass-border)}.modal-header h3{font-family:var(--font-display);font-size:1.25rem;font-weight:500}.modal-close{background:transparent;border:none;color:var(--text-muted);font-size:1.5rem;cursor:pointer;padding:var(--space-xs);line-height:1}.modal-close:hover{color:var(--text-primary)}.modal-body{padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md)}.input-label{font-size:0.75rem;font-weight:600;letter-spacing:0.05em;color:var(--text-muted);text-transform:uppercase}.text-input{width:100%;padding:var(--space-md);background:rgba(255,255,255,0.05);border:1px solid var(--glass-border);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-body);font-size:0.9375rem;outline:none;transition:all var(--duration-normal) var(--ease-smooth)}.text-input:focus{border-color:var(--aurora-cyan);box-shadow:0 0 0 2px rgba(0,212,255,0.1)}.text-input::placeholder{color:var(--text-muted)}.btn-primary{padding:var(--space-md) var(--space-lg);background:var(--aurora-cyan);border:none;border-radius:var(--radius-md);color:#07070f;font-family:var(--font-body);font-size:0.875rem;font-weight:600;cursor:pointer;transition:all var(--duration-normal) var(--ease-spring)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,212,255,0.3)}.btn-primary:active{transform:translateY(0)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.1);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,0.2)}@media(max-width:768px){.floating-island{width:calc(100% - var(--space-lg) * 2);top:var(--space-md)}.island-content{flex-direction:column;gap:var(--space-md);padding:var(--space-md);border-radius:var(--radius-xl)}.strategy-selector{width:100%;justify-content:center}.strategy-label{display:none}.strategy-btn{padding:var(--space-sm) var(--space-md)}.stage{padding:160px var(--space-md) 140px}.glow-container{width:280px;height:280px}.subtitle-stream{height:150px}.subtitle-line{font-size:1.125rem}.subtitle-line.current{font-size:1.25rem}.control-dock{width:calc(100% - var(--space-lg) * 2);bottom:var(--space-md)}.dock-content{flex-direction:column;padding:var(--space-md);border-radius:var(--radius-lg)}.speaker-btn{width:100%;justify-content:center}.stats-corner{bottom:160px;right:var(--space-md)}}@media(max-width:480px){.brand-name{display:none}.glow-container{width:220px;height:220px}.subtitle-line{font-size:1rem}.subtitle-line.current{font-size:1.125rem}}

/* ===== V6.0 Upload & Cancel Controls ===== */
.dock-left {
  display: flex;
  align-items: center;
}

.upload-btn {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 12px;
  color: rgba(255,255,255,0.7);
  font-size: 13px;
  cursor: pointer;
  transition: all 0.3s ease;
  backdrop-filter: blur(10px);
}

.upload-btn:hover {
  background: rgba(0,212,255,0.15);
  border-color: rgba(0,212,255,0.3);
  color: #00d4ff;
  transform: translateY(-1px);
}

.cancel-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background: rgba(255,60,60,0.15);
  border: 1px solid rgba(255,60,60,0.3);
  border-radius: 50%;
  color: #ff3c3c;
  cursor: pointer;
  transition: all 0.3s ease;
}

.cancel-btn:hover {
  background: rgba(255,60,60,0.3);
  transform: scale(1.05);
}

.cancel-btn.hidden {
  display: none;
}

/* Upload Modal */
.upload-drop-zone {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 40px;
  border: 2px dashed rgba(255,255,255,0.15);
  border-radius: 16px;
  color: rgba(255,255,255,0.5);
  cursor: pointer;
  transition: all 0.3s ease;
}

.upload-drop-zone:hover,
.upload-drop-zone.drag-over {
  border-color: rgba(0,212,255,0.5);
  background: rgba(0,212,255,0.05);
  color: rgba(255,255,255,0.8);
}

.upload-drop-zone p {
  margin: 0;
  font-size: 14px;
}

.upload-hint {
  font-size: 12px !important;
  opacity: 0.5;
}

.upload-progress {
  margin-top: 16px;
}

.upload-progress.hidden {
  display: none;
}

.progress-bar {
  width: 100%;
  height: 6px;
  background: rgba(255,255,255,0.1);
  border-radius: 3px;
  overflow: hidden;
}

.progress-fill {
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, #00d4ff, #7c3aed);
  border-radius: 3px;
  transition: width 0.3s ease;
}

.progress-text {
  text-align: center;
  font-size: 13px;
  color: rgba(255,255,255,0.6);
  margin-top: 8px;
}

.upload-result {
  margin-top: 16px;
  padding: 12px;
  border-radius: 12px;
  text-align: center;
  font-size: 14px;
}

.upload-result.hidden {
  display: none;
}

.upload-result.success {
  background: rgba(0,255,100,0.1);
  border: 1px solid rgba(0,255,100,0.2);
  color: #00ff64;
}

.upload-result.error {
  background: rgba(255,60,60,0.1);
  border: 1px solid rgba(255,60,60,0.2);
  color: #ff3c3c;
}

/* ===== V11 History Sidebar ===== */
.history-sidebar {
  position: fixed;
  top: 16px;
  left: 16px;
  bottom: 16px;
  width: 260px;
  z-index: 90;
  padding: 16px;
  background: rgba(5, 8, 18, 0.72);
  border: 1px solid rgba(0, 212, 255, 0.16);
  border-radius: 18px;
  backdrop-filter: blur(28px) saturate(160%);
  box-shadow: 0 0 36px rgba(0, 212, 255, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.06);
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.history-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.history-kicker {
  margin: 0 0 4px;
  font-size: 10px;
  letter-spacing: 0.18em;
  color: rgba(0, 255, 200, 0.72);
  text-transform: uppercase;
}

.history-header h2 {
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0;
}

.history-new-btn,
.history-delete-btn {
  border: 1px solid rgba(0, 212, 255, 0.26);
  background: rgba(0, 212, 255, 0.1);
  color: #dffaff;
  border-radius: 10px;
  cursor: pointer;
}

.history-new-btn {
  width: 36px;
  height: 36px;
  font-size: 22px;
  line-height: 1;
}

.history-list {
  overflow: auto;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-right: 2px;
}

.history-session {
  width: 100%;
  text-align: left;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.78);
  border-radius: 12px;
  padding: 10px 12px;
  cursor: pointer;
  transition: border-color 160ms ease, background 160ms ease;
}

.history-session:hover,
.history-session.active {
  border-color: rgba(0, 212, 255, 0.36);
  background: rgba(0, 212, 255, 0.1);
}

.history-session-title {
  font-size: 13px;
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.history-session-meta {
  margin-top: 4px;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.45);
}

.history-message-audio {
  display: block;
  width: min(420px, 100%);
  margin: 8px auto 0;
  height: 32px;
}

.history-delete-btn {
  padding: 4px 8px;
  margin-top: 8px;
  font-size: 11px;
}

@media (min-width: 1000px) {
  .theater {
    margin-left: 292px;
    width: calc(100vw - 292px);
  }

  .floating-island,
  .control-dock {
    left: calc(50% + 146px);
  }
}

@media (max-width: 999px) {
  .history-sidebar {
    display: none;
  }
}
