:root{--app-bg:#000;--app-bg-alt:#000;--panel-bg:rgba(16,21,28,.9);--panel-bg-strong:rgba(10,15,22,.98);--header-bg:rgba(18,24,31,.88);--header-border:rgba(129,145,164,.22);--input-bg:rgba(26,35,43,.9);--input-border:rgba(158,175,190,.2);--text:#edf7ff;--muted:#8ea7b7;--soft:#c7d6df;--accent:#7dd0ff;--accent-strong:#4ea8ff;--badge-bg:rgba(125,208,255,.15);--badge-text:#d4f4ff;--danger:#ff7c7c;--success:#62e2b7;--shadow:rgba(1,6,11,.48);--live-text:#000;--latest-text:#fff;--old-text:#75777a;--scrollbar:rgba(0,0,0,.48);--empty:#7d9eae}.app.theme-light{--app-bg:#fff;--app-bg-alt:#fff;--panel-bg:#fff;--panel-bg-strong:hsla(0,0%,100%,.98);--header-bg:hsla(0,0%,100%,.96);--header-border:rgba(126,183,205,.25);--input-bg:#f8fdff;--input-border:rgba(92,156,179,.18);--text:#234a62;--muted:#7a96a8;--soft:#496d86;--accent:#49add7;--accent-strong:#2f9ad1;--badge-bg:#e7f7fd;--badge-text:#2b7fa8;--danger:#d66a6a;--success:#52b995;--shadow:#fff;--live-text:#11151c;--latest-text:#131b20;--old-text:#4e585e;--scrollbar:rgba(144,180,202,.65);--empty:rgba(125,158,174,.7)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}:focus{outline:none!important}button,input,select,textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;font:inherit}button{transition:transform .2s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease}button:hover{transform:translateY(-1px)}.app{min-height:100vh;padding:12px 12px 10px;background:var(--app-bg);color:var(--text);overflow:hidden;transition:background .3s ease,color .3s ease}.app.header-hidden{padding-top:12px}.header{width:100%;min-height:70px;display:flex;align-items:center;gap:9px;padding:9px 11px;background:var(--header-bg);border:1px solid var(--header-border);border-radius:18px;box-shadow:0 10px 34px var(--shadow);overflow:hidden;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.logo{gap:8px;padding-right:10px;border-right:1px solid var(--header-border)}.header-control,.logo{flex-shrink:0;display:flex;align-items:center}.header-control{gap:6px}.small-label{color:var(--muted);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}select{height:32px;border:1px solid var(--input-border);border-radius:9px;padding:0 10px;background:var(--input-bg);color:var(--text);font-size:11px;font-weight:650;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.04)}select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(125,208,255,.16)}.arrow{color:var(--muted);font-size:15px}.language-list{display:flex;gap:3px}.language-button{width:31px;height:31px;padding:0;border:1px solid var(--input-border);border-radius:9px;background:var(--input-bg);color:var(--muted);font-size:9px;font-weight:850;cursor:pointer;transition:all .15s ease}.language-button:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(125,208,255,.14)}.language-button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.language-button.active{background:rgba(125,208,255,.16);border-color:rgba(125,208,255,.45);color:var(--badge-text);box-shadow:inset 0 0 0 1px rgba(125,208,255,.09)}.language-button:disabled{opacity:.5;cursor:default}.header-source-text{flex:1 1;min-width:80px;height:50px;padding:5px 10px;background:rgba(125,208,255,.08);border:1px solid rgba(125,208,255,.12);border-radius:10px;display:flex;flex-direction:column;justify-content:center;overflow:hidden}.header-source-label{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:8px;font-weight:800;letter-spacing:.06em}.source-language-name{color:var(--muted);font-weight:600;letter-spacing:0}.header-source-content{margin-top:2px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--soft);font-size:12px;line-height:1.3}.font-size-control{height:32px;display:flex;align-items:center;overflow:hidden;border:1px solid var(--input-border);border-radius:9px;background:var(--input-bg)}.font-size-control button{height:30px;border:1px solid transparent;background:transparent;color:var(--soft);padding:0 7px;font-size:10px;font-weight:800;cursor:pointer}.font-size-control button:focus,.font-size-control button:hover{background:rgba(125,208,255,.12);color:var(--accent)}.font-size-control span{min-width:25px;text-align:center;color:var(--soft);font-size:9px;font-weight:700}.clear-button,.header-toggle,.source-toggle,.theme-toggle{height:32px;flex-shrink:0;border:1px solid var(--input-border);border-radius:9px;padding:0 9px;background:var(--input-bg);color:var(--soft);font-size:10px;font-weight:700;cursor:pointer}.theme-toggle{font-size:16px;padding:0 5px}.clear-button:focus,.header-toggle:focus,.source-toggle:focus,.theme-toggle:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(125,208,255,.14)}.source-toggle.active{background:rgba(125,208,255,.12);border-color:rgba(125,208,255,.32);color:var(--accent)}.clear-button:disabled{opacity:.35;cursor:default}.start-button,.stop-button{height:34px;flex-shrink:0;display:flex;align-items:center;gap:7px;border:1px solid transparent;border-radius:10px;padding:0 13px;color:#fff;font-size:11px;font-weight:800;cursor:pointer;box-shadow:0 8px 28px rgba(63,179,255,.18)}.start-button:focus,.stop-button:focus{box-shadow:0 8px 28px rgba(63,179,255,.18),0 0 0 3px rgba(125,208,255,.24)}.start-button{background:linear-gradient(135deg,#71cff0,#4aa3d7)}.stop-button{background:linear-gradient(135deg,#eb8787,#d76a6a)}.start-button.compact,.stop-button.compact{background:none;color:var(--soft);height:18px;padding:0;border-radius:12px;font-size:12px;box-shadow:0 14px 32px rgba(76,150,255,.24)}.stop-square{width:8px;height:8px;border-radius:2px;background:#fff}.error-bar{margin-top:7px;padding:8px 11px;border:1px solid hsla(0,100%,74%,.25);border-radius:11px;background:hsla(0,100%,75%,.08);color:var(--danger);font-size:11px;display:flex;gap:7px}.status-bar{height:29px;justify-content:space-between;padding:0 7px}.status-bar,.status-left{display:flex;align-items:center}.status-left{gap:6px;font-size:10px;font-weight:650}.status-dot{width:6px;height:6px;border-radius:50%;background:rgba(144,169,184,.8)}.status-dot.listening{background:var(--success);box-shadow:0 0 0 4px rgba(98,226,183,.14);animation:pulse 1.5s infinite}.muted{color:var(--muted)}.target-status{display:flex;gap:4px}.target-status span{padding:3px 6px;border-radius:6px;background:var(--badge-bg);color:var(--badge-text);font-size:8px;font-weight:850}.translation-area{width:100%;height:calc(100vh - 119px);display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));grid-gap:10px;gap:10px;margin-top:10px}.app.header-hidden .status-bar{display:none}.app.header-hidden .translation-area{height:calc(100vh - 24px)}.translation-panel{min-width:0;min-height:0;display:flex;flex-direction:column;background:var(--app-bg);overflow:hidden;box-shadow:0 14px 42px var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.panel-header{min-height:65px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:12px 17px;border-bottom:1px solid rgba(148,166,181,.16);background:linear-gradient(180deg,hsla(0,0%,100%,.02),rgba(125,208,255,.03))}.panel-label{display:block;color:var(--muted);font-size:8px;font-weight:850;letter-spacing:.09em}.panel-header h2{margin:3px 0 0;color:var(--text);font-size:15px;font-weight:750}.language-badge{width:39px;height:32px;display:grid;place-items:center;border-radius:9px;background:var(--badge-bg);color:var(--badge-text);font-size:10px;font-weight:850}.translation-content{flex:1 1;min-height:0;padding:28px 32px;overflow-y:auto;color:var(--live-text);line-height:1.55;scroll-behavior:smooth;overflow-anchor:auto}.translation-content p{margin:0 0 20px}.translation-content p:last-child{margin-bottom:0}.translation-printing{display:inline;animation:tailFadeIn .2s ease-out}@keyframes tailFadeIn{0%{opacity:0}to{opacity:1}}.empty-state{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--empty);font-size:13px}.empty-icon{opacity:.7}.header-source-content::-webkit-scrollbar,.translation-content::-webkit-scrollbar{width:6px}.header-source-content::-webkit-scrollbar-track,.translation-content::-webkit-scrollbar-track{background:transparent}.header-source-content::-webkit-scrollbar-thumb,.translation-content::-webkit-scrollbar-thumb{background:var(--scrollbar);border-radius:10px}@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(98,226,183,.26)}70%{box-shadow:0 0 0 6px rgba(98,226,183,0)}to{box-shadow:0 0 0 0 rgba(98,226,183,0)}}.translation-item{transition:color .3s ease,opacity .3s ease}.app .live-text{color:var(--live-text)}.app .translation-latest{color:var(--latest-text);opacity:1}.app .translation-old{color:var(--old-text);opacity:.7}.floating-controls{position:fixed;left:10px;top:0;display:flex;align-items:center;gap:12px;z-index:40}.source-live-dot{width:8px;height:8px;border-radius:50%;background:#05cc30;box-shadow:0 0 0 10px #188f32;padding:0;position:relative;animation:pulse 2s infinite}.source-live-dot:hover{width:10px;height:10px;background:#d5911a}.grey{background:#535353;box-shadow:none;animation:none}.corner-indicator{width:7px;height:7px;border-radius:50%;background:var(--success);box-shadow:0 0 0 5px rgba(98,226,183,.15);cursor:pointer;padding:0;position:relative;animation:pulse 1.5s infinite}.indicator-pulse{position:absolute;inset:-4px;border-radius:50%;border:1px solid rgba(82,213,157,.52);animation:pulseRings 1.8s infinite}@keyframes indicatorBlink{0%,to{box-shadow:0 0 0 0 rgba(82,213,157,.44),0 0 16px rgba(82,213,157,.6);transform:scale(1)}50%{box-shadow:0 0 0 10px rgba(82,213,157,0),0 0 18px rgba(82,213,157,.75);transform:scale(1.08)}}@keyframes pulseRings{0%{opacity:.9;transform:scale(.9)}70%{opacity:0;transform:scale(1.9)}to{opacity:0;transform:scale(1.9)}}@media (max-width:1400px){.header-source-text{min-width:100px}.logo-text,.small-label{display:none}}@media (max-width:1050px){.header{flex-wrap:wrap}.header-source-text{order:10;flex-basis:100%;width:100%}.translation-area{height:calc(100vh - 170px)}}@media (max-width:700px){.app{padding:6px}.translation-area{grid-template-columns:1fr;height:auto;min-height:calc(100vh - 170px)}.translation-panel{min-height:450px}.header{gap:6px}}.tooltip{position:relative}.tooltip:after{content:attr(data-tooltip);position:absolute;top:calc(100% + 6px);bottom:auto;left:50px;transform:translateX(-50%);padding:5px 8px;border-radius:5px;background:#222;color:#ddd;font-size:10px;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .1s ease}.tooltip:hover:after{opacity:1;visibility:visible}