:root { --bg: #0f172a; --card: #1e293b; --text: #f1f5f9; --accent: #38bdf8; --danger: #ef4444; --success: #22c55e; }
        body { font-family: 'Inter', system-ui, sans-serif; background: var(--bg); color: var(--text); padding: 2rem; display: flex; justify-content: center; }
        .app-container { width: 100%; max-width: 1200px; background: var(--card); border-radius: 1rem; padding: 2rem; box-shadow: 0 25px 50px -12px rgba(0,0,0,0.5); border: 1px solid #334155; }
        
        /* Now Speaking Panel - Fixed at top */
        .now-speaking-panel {
            background: #1e293b;
            border: 1px solid #334155;
            border-radius: 0.75rem;
            padding: 1.5rem;
            margin-bottom: 1.5rem;
            min-height: 120px;
        }
        .now-speaking-header {
            font-size: 0.7rem;
            font-weight: 700;
            color: var(--success);
            text-transform: uppercase;
            letter-spacing: 0.1em;
            margin-bottom: 1rem;
            display: flex;
            align-items: center;
            gap: 0.5rem;
        }
        .now-speaking-header::before {
            content: '';
            width: 8px;
            height: 8px;
            background: var(--success);
            border-radius: 50%;
            animation: pulse 1.5s infinite;
        }
        @keyframes pulse {
            0%, 100% { opacity: 1; }
            50% { opacity: 0.3; }
        }
        .now-speaking-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 2rem;
        }
        .now-speaking-col {
            padding-left: 1rem;
            border-left: 3px solid;
        }
        .now-speaking-col.original { border-color: var(--accent); }
        .now-speaking-col.translation { border-color: #64748b; }
        .now-speaking-label {
            font-size: 0.6rem;
            text-transform: uppercase;
            letter-spacing: 0.1em;
            opacity: 0.5;
            margin-bottom: 0.5rem;
        }
        .now-speaking-content {
            font-size: 1.1rem;
            line-height: 1.6;
            white-space: pre-line;
        }
        .now-speaking-content.original { color: var(--text); }
        .now-speaking-content.translation { color: #94a3b8; }
        .now-speaking-empty { color: #475569; font-style: italic; }
        
        /* Transcript History */
        #transcript { 
            height: 850px; 
            border: 1px solid #334155; 
            border-radius: 0.75rem; 
            padding: 1.5rem; 
            overflow-y: auto; 
            background: #020617; 
            font-size: 1rem; 
            /* line-height: 1.6; */
        }
        
        .transcript-row { 
            display: grid; 
            grid-template-columns: 1fr 1fr; 
            /* gap: 2rem;  */
            /* padding: 0.75rem 0;  */
            border-bottom: 1px solid #1e293b; 
        }
        .transcript-row:last-child { border-bottom: none; }
        
        .speaker-header { 
            grid-column: 1 / -1; 
            font-size: 0.7rem; 
            font-weight: 700; 
            color: var(--accent); 
            text-transform: uppercase; 
            letter-spacing: 0.05em; 
            margin-bottom: 0.4rem;
        }
        
        .col-original { 
            color: var(--text); 
            white-space: pre-line; 
            border-left: 3px solid var(--accent);
            padding-left: 1rem;
        }
        .col-translation { 
            color: #94a3b8; 
            white-space: pre-line;
            border-left: 3px solid #64748b;
            padding-left: 1rem;
        }
        
        .col-header {
            font-size: 0.6rem;
            text-transform: uppercase;
            letter-spacing: 0.1em;
            margin-bottom: 0.4rem;
            opacity: 0.5;
        }
        .col-original .col-header { color: var(--accent); }
        .col-translation .col-header { color: #64748b; }
        
        .content { line-height: 1.6; }
        
        .controls { display: flex; gap: 1rem; margin-bottom: 1rem; }
        input { flex: 1; padding: 0.75rem 1rem; background: #0f172a; border: 1px solid #334155; color: white; border-radius: 0.5rem; outline: none; }
        input:focus { border-color: var(--accent); }
        button { padding: 0.75rem 1.5rem; border: none; border-radius: 0.5rem; cursor: pointer; font-weight: 700; transition: all 0.2s; }
        #start { background: var(--success); color: white; }
        #stop { background: var(--danger); color: white; }
        button:disabled { opacity: 0.3; cursor: not-allowed; }
        .status-footer { display: flex; justify-content: space-between; margin-top: 1rem; font-size: 0.8rem; color: #94a3b8; font-family: monospace; }
        
        @media (max-width: 768px) {
            .transcript-row, .now-speaking-grid { grid-template-columns: 1fr; gap: 1rem; }
        }