@font-face{font-family:DM Sans Fallback;src:local("Arial");size-adjust:96.2%;ascent-override:95%;descent-override:25%;line-height-override:110%}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;scrollbar-width:thin;scrollbar-color:var(--border) transparent}:root{--bg: #0f0f0f;--bg-elevated: #1a1a1a;--bg-card: #222;--border: #333;--border-light: #444;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 12px;--text: #f0f0f0;--text-secondary: #999;--text-muted: #666;--accent: #8b5cf6;--accent-dim: rgba(139, 92, 246, .15);--green: #22c55e;--green-bright: #00e676;--green-bg: rgba(0, 173, 97, .2);--green-bg-hover: rgba(0, 173, 97, .35);--green-bg-light: rgba(34, 197, 94, .1);--red: #ef4444;--red-bright: #ff6b6b;--red-bg: rgba(235, 69, 69, .2);--red-bg-hover: rgba(235, 69, 69, .35);--blue: #3b82f6;--blue-bg: rgba(59, 130, 246, .1);--yellow: #eab308;--purple: #a855f7;--purple-bg: rgba(168, 85, 247, .1);--muted-bg: rgba(102, 102, 102, .1);--text-xs: .7rem;--text-sm: .75rem;--text-base: .85rem;--text-md: .9rem;--space-xs: .25rem;--space-sm: .5rem;--space-md: .75rem;--space-lg: 1rem;--space-xl: 1.25rem;--btn-icon-size: 18px;--btn-icon-size-sm: 14px;--btn-padding: .5rem .75rem;--btn-padding-sm: .4rem .6rem;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--ease-in: cubic-bezier(.7, 0, 1, .5);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--duration-fast: .15s;--duration-normal: .2s;--duration-slow: .3s}body{font-family:DM Sans,DM Sans Fallback,-apple-system,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}@media(max-width:480px){html{height:100%;overflow:hidden}body{height:100%;overflow:auto;-webkit-overflow-scrolling:touch}}@media(max-width:800px){html,body{overflow-x:hidden}}.mono{font-family:JetBrains Mono,monospace;font-size:var(--text-xs)}.text-muted{color:var(--text-muted)}[data-sonner-toast] [data-close-button]{background:var(--bg-card)!important;border-color:var(--border)!important;color:var(--text-secondary)!important}[data-sonner-toast] [data-close-button]:hover{background:var(--border)!important;color:var(--text)!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.app{max-width:1200px;margin:0 auto;padding:2rem 2rem calc(2rem + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:1.5rem}.header{display:flex;justify-content:space-between;align-items:center;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}a.brand{text-decoration:none;color:inherit}.brand{display:flex;align-items:center;gap:var(--space-md)}.brand-icon{display:flex;align-items:center;justify-content:center}.brand-icon img{width:50px;height:50px;object-fit:contain;filter:brightness(0) invert(1)}.brand h1{font-size:1.25rem;font-weight:600}.brand span{font-size:var(--text-sm);color:var(--text-muted);margin-left:var(--space-sm);font-weight:400}.stats{display:flex;gap:2rem}.stat{text-align:right}.stat-value{font-family:JetBrains Mono,monospace;font-size:1.5rem;font-weight:600;color:var(--text)}.stat-label{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.grid{display:grid;grid-template-columns:3fr 2fr;gap:1.5rem}.grid.chat-hidden{grid-template-columns:1fr}.grid.chat-hidden .panel:last-child{display:none}.chat-hidden-only{display:none}.grid.chat-hidden .chat-hidden-only{display:inline-flex}@media(max-width:800px){.grid{grid-template-columns:1fr}.header{flex-direction:column;gap:var(--space-lg)}.stats{justify-content:center}}.panel{background:var(--bg-elevated);border-radius:var(--radius-lg);border:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.panel-header{padding:var(--space-lg) var(--space-xl);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.panel-title{font-size:var(--text-md);font-weight:600;display:flex;align-items:center;gap:var(--space-sm)}.panel-title svg{width:18px;height:18px;color:#fff}.panel-title img{width:30px}.sources-summary{font-family:JetBrains Mono,monospace;font-size:var(--text-sm);font-weight:500;color:var(--text-muted);background:var(--bg);padding:.2rem .4rem;border-radius:var(--radius-sm);margin-left:var(--space-xs)}.panel-count{font-family:JetBrains Mono,monospace;font-size:var(--text-sm);color:var(--text-muted);padding:0 .6rem;background:var(--bg);border-radius:var(--radius-sm);height:30px;display:flex;align-items:center}.viewer-mode .btn,.viewer-mode .panel-count{display:none}.panel-body{flex:1;overflow-x:hidden;overflow-y:auto;max-height:560px}.panel-body::-webkit-scrollbar{width:6px}.panel-body::-webkit-scrollbar-track{background:transparent}.panel-body::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.empty{padding:3rem;text-align:center;color:var(--text-muted);font-size:var(--text-md)}.footer{display:flex;justify-content:space-between;align-items:center;font-size:var(--text-sm);color:var(--text-muted);padding-top:var(--space-lg);border-top:1px solid var(--border)}.footer-separator{opacity:.5}.btn-link{background:none;border:none;color:var(--accent);cursor:pointer;font:inherit;padding:0}.btn-link:hover{text-decoration:underline}@media(max-width:480px){.app{padding:.75rem 0 calc(.75rem + env(safe-area-inset-bottom,0px));gap:.75rem;min-width:280px;max-width:100vw}.header{padding:0 .75rem .75rem}.panel{border-radius:0;border-left:none;border-right:none}.brand-icon img{width:36px;height:36px}.brand h1{font-size:1.1rem}.brand span{display:block;margin-left:0;margin-top:.15rem}.stats{gap:1.5rem}.stat-value{font-size:1.25rem}.panel-header{padding:var(--space-md) var(--space-lg);flex-direction:column;align-items:stretch;gap:var(--space-sm)}.panel-title{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-xs);font-size:var(--text-base)}.panel-title img{width:24px}.sources-summary{font-size:var(--text-xs);padding:.15rem .35rem;white-space:nowrap}.panel-header>div:last-child{display:flex;justify-content:space-between;align-items:center;width:100%}.panel-header .btn-small{font-size:var(--text-xs);padding:.35rem .5rem}.panel-header .btn-small span{display:none}.panel-body{max-height:none;overflow-y:visible}.footer{flex-direction:column;gap:var(--space-sm);text-align:center;padding:var(--space-md) .75rem 0;margin:0 .75rem}}@media(max-width:800px)and (min-width:481px){.app{padding:1.5rem 1rem}.panel-header{padding:var(--space-md) var(--space-lg)}}.field{display:flex;flex-direction:column;gap:.4rem}.field.grow{flex:1;min-width:200px}.field label{font-size:var(--text-sm);color:var(--text-secondary);font-weight:500}input,select,textarea{font-family:JetBrains Mono,monospace;font-size:var(--text-base);padding:.6rem .9rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text);outline:none;transition:border-color var(--duration-fast),box-shadow var(--duration-fast)}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}input[type=number]{width:100px}select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2.5rem}select option{background:var(--bg)}textarea{resize:vertical;min-height:80px;line-height:1.4;width:100%}.btn{font-family:DM Sans,sans-serif;font-size:var(--text-base);font-weight:500;padding:.6rem var(--space-xl);border:none;border-radius:var(--radius-md);cursor:pointer;transition:background var(--duration-fast),color var(--duration-fast),filter var(--duration-fast),opacity var(--duration-fast),transform var(--duration-fast)}.btn-ghost{background:transparent;color:var(--text-secondary);border:1px solid var(--border)}.btn-ghost:hover{background:var(--bg-card);color:var(--text)}.btn-small{font-size:var(--text-sm);padding:.4rem var(--space-md);display:flex;align-items:center;gap:.35rem}.btn-small-icon{padding:.4rem;display:flex;align-items:center;justify-content:center}.btn-sm{padding:.35rem var(--space-md);font-size:var(--text-sm)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{filter:brightness(1.1)}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.btn-primary.connected{background:var(--green)}.btn-pulse{animation:glow 2s ease-in-out infinite alternate}@keyframes glow{0%{box-shadow:0 0 4px 2px #8b5cf666;background-color:var(--accent)}to{box-shadow:0 0 12px 4px #8b5cf6cc;background-color:#9d75f9}}.btn-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;background:transparent;border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:background var(--duration-normal),color var(--duration-normal),border-color var(--duration-normal)}.btn-icon:hover{background:var(--bg-card);color:var(--text);border-color:var(--border-light)}.btn-icon:hover svg{transform:rotate(45deg)}.btn-icon svg{transition:transform var(--duration-slow) var(--ease-in-out)}.source-toggle{position:relative;cursor:pointer}.source-toggle input{opacity:0;width:0;height:0;position:absolute}.toggle-slider{display:block;width:32px;height:18px;background:var(--border);border-radius:9px;position:relative;transition:background var(--duration-normal) var(--ease-in-out)}.toggle-slider:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;background:var(--text-muted);border-radius:50%;transition:left var(--duration-normal) var(--ease-in-out),background var(--duration-normal) var(--ease-in-out)}.source-toggle input:checked+.toggle-slider{background:var(--accent)}.source-toggle input:checked+.toggle-slider:after{left:16px;background:#fff}.manual-input-wrapper{position:relative}.autocomplete-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);margin-top:var(--space-sm);max-height:200px;overflow-y:auto;z-index:100;display:none;box-shadow:0 8px 24px #0000004d}.autocomplete-dropdown.show{display:block}.autocomplete-item{padding:var(--space-sm) var(--space-md);cursor:pointer;font-size:var(--text-base);transition:background .1s;display:flex;align-items:center;gap:var(--space-md);min-height:44px}.autocomplete-item:hover,.autocomplete-item.active{background:var(--bg-card)}.landing{max-width:800px;margin:0 auto;padding:0 2rem calc(3rem + env(safe-area-inset-bottom,0px))}.landing-hero{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:5rem 0 4rem;overflow:hidden}.landing-hero-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:1.25rem}.landing-hero-glow{position:absolute;top:20%;left:50%;transform:translate(-50%);width:500px;height:500px;background:radial-gradient(circle,rgba(139,92,246,.12) 0%,transparent 70%);pointer-events:none}.landing-brand img{width:80px;height:80px;object-fit:contain;filter:brightness(0) invert(1);opacity:.9}.landing h1{font-size:2.5rem;font-weight:700;letter-spacing:-.02em;line-height:1}.landing h1 span{color:var(--accent)}.landing-tagline{font-size:1.05rem;color:var(--text-secondary);max-width:440px;line-height:1.5}.landing-cta,.landing-cta:hover{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.75rem;font-size:var(--text-md);margin-top:.5rem;text-decoration:none;color:#fff}.landing-section{margin-top:3.5rem}.landing-section h2{font-size:1.15rem;font-weight:600;color:var(--text);margin-bottom:1.5rem;text-align:center;text-transform:uppercase;letter-spacing:.06em;font-size:var(--text-sm);color:var(--text-muted)}.landing-features{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.landing-feature{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;animation:landingFadeUp .5s var(--ease-out) both}.landing-feature-icon{color:var(--accent);margin-bottom:.75rem}.landing-feature h3{font-size:var(--text-base);font-weight:600;margin-bottom:.35rem}.landing-feature p{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.5}.landing-steps{display:flex;flex-direction:column;gap:.75rem;max-width:480px;margin:0 auto}.landing-step{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);animation:landingFadeUp .5s var(--ease-out) both}.landing-step-num{font-family:JetBrains Mono,monospace;font-size:1.1rem;font-weight:700;color:var(--accent);width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--accent-dim);border-radius:50%;flex-shrink:0}.landing-step h3{font-size:var(--text-base);font-weight:600;margin-bottom:.15rem}.landing-step p{font-size:var(--text-sm);color:var(--text-secondary)}.landing-section-channels{margin-top:2.5rem}.landing-channels-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem}.landing-channel-card{flex:1 1 240px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);text-decoration:none;color:var(--text);transition:border-color .15s,background .15s;display:flex;flex-direction:column;overflow:hidden}.landing-channel-card a:hover{text-decoration:none}.landing-channel-card:hover{border-color:var(--accent);background:var(--bg-card);text-decoration:none}.landing-channel-card.skeleton{animation:skeletonPulse 1.5s ease-in-out infinite}.skeleton-circle{width:28px;height:28px;border-radius:50%;background:var(--border)}.skeleton-line{height:14px;border-radius:var(--radius-sm);background:var(--border);flex:1}.skeleton-line.short{width:40%;flex:none}.landing-channel-thumb{position:relative;aspect-ratio:16 / 9;overflow:hidden;background:var(--bg)}.landing-channel-thumb img{width:100%;height:100%}.landing-channel-thumb-placeholder{object-fit:contain;padding:25%;opacity:.08;filter:brightness(0) invert(1)}.landing-channel-live{position:absolute;top:.5rem;left:.5rem;background:var(--red);color:#fff;font-size:var(--text-xs);font-weight:700;padding:.15rem .4rem;border-radius:var(--radius-sm);letter-spacing:.03em}.landing-channel-info{padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.5rem}.landing-channel-card-header{display:flex;align-items:center;gap:.5rem}.landing-channel-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover;flex-shrink:0}.landing-channel-name{font-family:JetBrains Mono,monospace;font-size:var(--text-base);font-weight:600;flex:1}.landing-channel-status{font-size:var(--text-xs);color:var(--green);background:var(--green-bg-light);padding:.15rem .45rem;border-radius:var(--radius-sm);font-weight:600;flex-shrink:0}.landing-channel-stats{display:flex;justify-content:space-between;align-items:center;font-size:var(--text-sm);color:var(--text-secondary)}.landing-channel-pending{color:var(--accent)}.landing-channel-meta{display:flex;gap:.5rem;color:var(--text-muted);font-size:var(--text-xs)}.landing-channels-empty{text-align:center;color:var(--text-muted);font-size:var(--text-sm);padding:3rem 0}.landing-footer{display:flex;justify-content:space-between;align-items:center;margin-top:4rem;padding-top:var(--space-lg);border-top:1px solid var(--border);font-size:var(--text-sm);color:var(--text-muted)}.landing-footer a{color:var(--accent);text-decoration:none}.landing-footer a:hover{text-decoration:underline}.landing-disclaimer{text-align:center;font-size:var(--text-xs);color:var(--text-muted);margin-top:4rem}@keyframes landingFadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes skeletonPulse{0%,to{opacity:.4}50%{opacity:.7}}@media(min-width:530px){.landing-channels-grid:not(.single) .landing-channel-card{max-width:calc(50% - .5rem)}}@media(max-width:600px){.landing{padding:0 1rem calc(2rem + env(safe-area-inset-bottom,0px))}.landing-hero{padding:3rem 0 2.5rem}.landing-brand img{width:60px;height:60px}.landing h1{font-size:2rem}.landing-tagline{font-size:var(--text-base)}.landing-features{grid-template-columns:1fr}.landing-footer{flex-direction:column;align-items:center;gap:var(--space-sm);text-align:center}}.channel-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-xl);padding:var(--space-xl);background:var(--bg-elevated);border-radius:var(--radius-lg);border:1px solid var(--border)}.channel-header-profile{display:flex;align-items:center;gap:var(--space-lg);min-width:0}.channel-header-avatar-ring{width:52px;height:52px;border-radius:50%;padding:2px;background:var(--border);flex-shrink:0;transition:background var(--duration-slow) var(--ease-in-out),box-shadow var(--duration-slow) var(--ease-in-out)}.channel-header-avatar-ring.ring-connected{background:var(--green);box-shadow:0 0 12px #22c55e40}.channel-header-avatar-ring.ring-partial{background:var(--yellow)}.channel-header-avatar-ring.ring-connecting{background:var(--accent);animation:ringPulse 1.5s ease-in-out infinite}.channel-header-avatar-ring.ring-error{background:var(--red)}@keyframes ringPulse{0%,to{box-shadow:0 0 #8b5cf666}50%{box-shadow:0 0 0 6px #8b5cf600}}.channel-header-avatar{width:100%;height:100%;border-radius:50%;object-fit:cover;background:var(--bg);display:block}.channel-header-avatar-fallback{display:flex;align-items:center;justify-content:center;font-family:JetBrains Mono,monospace;font-size:1.25rem;font-weight:700;color:var(--text-muted)}.channel-header-info{display:flex;flex-direction:column;gap:.3rem;min-width:0}.channel-header-name-row{display:flex;align-items:center}.channel-header-name{font-family:JetBrains Mono,monospace;font-size:1.1rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.channel-header-name-link{display:flex;align-items:center;gap:.5rem;color:inherit;text-decoration:none;min-width:0}.channel-header-name-link svg{color:var(--text-muted);flex-shrink:0;transition:color .15s}.channel-header-name-link:hover{text-decoration:none}.channel-header-name-link:hover svg{color:#9146ff}.channel-header-meta{display:flex;align-items:center;gap:.75rem;font-size:var(--text-sm);color:var(--text-secondary)}.channel-header-badge{display:inline-flex;align-items:center;gap:.3rem}.channel-header-badge .dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;background:var(--text-muted)}.channel-header-badge.state-connected .dot{background:var(--green)}.channel-header-badge.state-connecting .dot{background:var(--accent);animation:pulse 1s infinite}.channel-header-badge.state-partial .dot{background:var(--yellow);animation:pulse 1s infinite}.channel-header-badge.state-disconnected .dot{background:var(--text-muted)}.channel-header-badge.state-error .dot{background:var(--red)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.channel-header-sub{font-size:var(--text-xs);color:var(--text-muted)}.channel-header-share{color:var(--text-muted)}.channel-header-share-hint{display:none;margin-left:.4rem;color:var(--text-muted)}.channel-header-share:hover{text-decoration:none;color:var(--text-secondary)}.channel-header-share:hover .channel-header-share-hint{display:inline}.channel-header-actions{display:flex;flex-direction:column;align-items:center;gap:.4rem;flex-shrink:0}.channel-header-logout{font-size:var(--text-xs);color:var(--text-muted)}@media(max-width:600px){.channel-header{flex-direction:column;align-items:stretch;gap:var(--space-md);border-radius:0;border-left:none;border-right:none}.channel-header-avatar-ring{width:44px;height:44px}.channel-header-avatar-fallback,.channel-header-name{font-size:1rem}.channel-header-actions{justify-content:stretch}.channel-header-actions .btn{flex:1;justify-content:center}}.sources-panel{background:var(--bg-elevated);border-radius:var(--radius-lg);border:1px solid var(--border);overflow:hidden}.sources-panel-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-lg) var(--space-xl);border-bottom:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none}.sources-panel.open .sources-panel-header{border-bottom-color:var(--border)}.sources-panel:not(.open) .sources-panel-header{border-bottom-color:transparent}.sources-panel-title{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;gap:var(--space-sm);height:2.5em}.sources-panel-toggle{color:var(--text-muted);transition:transform var(--duration-normal) var(--ease-in-out);display:flex}.sources-panel.open .sources-panel-toggle{transform:rotate(180deg)}.sources-panel-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--duration-slow) var(--ease-out);overflow:hidden}.sources-panel.open .sources-panel-body{grid-template-rows:1fr}.sources-panel-body-inner{overflow:hidden;padding:0 var(--space-xl)}.sources-panel.open .sources-panel-body-inner{padding-bottom:var(--space-xl)}.source-sections{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-lg);align-items:start;margin-top:var(--space-lg)}.source-section{padding:var(--space-lg);background:var(--bg);border-radius:var(--radius-md);border:1px solid var(--border);max-width:400px}.source-section.disabled{opacity:.5}.source-section-header{display:flex;justify-content:space-between;align-items:center}.source-section-title{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--text-base);font-weight:500;color:var(--text)}.source-section-desc{display:block;margin-top:var(--space-sm);font-size:var(--text-sm);font-weight:400;color:var(--text-muted)}.source-section-icon{width:16px;height:16px;display:flex}.source-section-icon svg{width:100%;height:100%}.source-section.source-donation .source-section-icon{color:var(--green)}.source-section.source-resub .source-section-icon{color:var(--accent)}.source-section.source-chat .source-section-icon{color:var(--blue)}.source-section-body{margin-top:var(--space-md);display:flex;flex-direction:column;gap:var(--space-sm)}.source-field{display:flex;align-items:center;gap:var(--space-md);min-width:0}.source-field label{font-size:var(--text-xs);color:var(--text-muted);width:70px;flex-shrink:0}.source-field input,.source-field select{flex:1;min-width:0;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.4rem .6rem;font-size:var(--text-sm);color:var(--text)}.source-field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center;padding-right:1.75rem}.source-field input:focus,.source-field select:focus{outline:none;border-color:var(--accent)}.input-with-prefix{display:flex;align-items:center;flex:1;gap:.4rem}.input-with-prefix span{font-size:var(--text-sm);color:var(--text-muted)}.input-with-prefix input{flex:1;min-width:50px}.settings-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-xl);margin-top:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid var(--border)}.priority-header{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-sm)}.priority-pills{display:flex;gap:var(--space-sm);flex-wrap:wrap}.priority-pill{display:flex;align-items:center;gap:.4rem;padding:.4rem .6rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);cursor:grab;-webkit-user-select:none;user-select:none;transition:border-color var(--duration-fast),opacity var(--duration-fast)}.priority-pill:hover{border-color:var(--border-light)}.priority-pill.dragging{opacity:.5;border-color:var(--accent)}.priority-pill-num{font-size:.65rem;font-weight:600;color:var(--text-muted);background:var(--bg-elevated);width:16px;height:16px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm)}.priority-pill-icon{width:14px;height:14px;display:flex}.priority-pill-icon svg{width:100%;height:100%}.priority-pill.donation .priority-pill-icon{color:var(--green)}.priority-pill.resub .priority-pill-icon{color:var(--accent)}.priority-pill.chat .priority-pill-icon{color:var(--blue)}.priority-pill.manual .priority-pill-icon{color:var(--yellow)}.priority-pill-label{font-size:var(--text-sm);color:var(--text-secondary)}.priority-section.disabled .priority-pills{opacity:.5}.priority-desc{font-size:var(--text-xs);color:var(--text-muted);margin:0 0 var(--space-sm)}@media(max-width:480px){.settings-row{grid-template-columns:1fr}.sources-panel{border-radius:0;border-left:none;border-right:none}.sources-panel-header{padding:var(--space-md) var(--space-lg)}.sources-panel-body-inner{padding:0 var(--space-lg)}.sources-panel.open .sources-panel-body-inner{padding-bottom:var(--space-lg)}.source-sections{grid-template-columns:1fr}.source-section{max-width:none;padding:var(--space-md)}.source-field{flex-direction:column;align-items:stretch;gap:var(--space-xs)}.source-field label{width:auto}.priority-pills{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:var(--space-xs)}.priority-pill{flex-shrink:0}}.recover-section{margin-top:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:var(--space-sm)}.recover-btn{display:inline-flex;align-items:center;gap:var(--space-sm);color:var(--text-secondary);font-size:var(--text-sm)}.recover-btn:hover{color:var(--text)}.recover-btn svg{color:var(--accent)}@media(max-width:800px)and (min-width:481px){.source-sections{grid-template-columns:1fr}}.settings{padding:var(--space-lg) var(--space-xl);background:var(--bg-elevated);border-radius:var(--radius-lg);border:1px solid var(--border)}.settings-header{display:flex;justify-content:space-between;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none}.settings-title{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;gap:var(--space-sm)}.settings-toggle{color:var(--text-muted);transition:transform .2s;display:flex}.settings.open .settings-toggle{transform:rotate(180deg)}.settings-body{display:none;margin-top:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid var(--border)}.settings.open .settings-body{display:block}.debug-row{display:flex;gap:var(--space-md)}.debug-row input{flex:1}.debug-result{margin-top:var(--space-md);font-family:JetBrains Mono,monospace;font-size:var(--text-sm);color:var(--text-secondary);min-height:1.2rem;display:none}.debug-result.show{display:block}.request-card{padding:var(--space-lg) var(--space-xl);border-bottom:1px solid var(--border);transition:background var(--duration-fast),opacity var(--duration-normal);position:relative;cursor:grab}.request-card:active{cursor:grabbing}.request-card.read-only,.request-card.read-only:active{cursor:default}.request-position{font-family:JetBrains Mono,monospace;font-size:1.5em;font-weight:600;color:#66666652;text-shadow:0 0 1px rgba(0,0,0,.3);min-width:2ch;text-align:right}.request-card.deleting{animation:deleteSlide .5s var(--ease-in) forwards;pointer-events:none}@keyframes deleteSlide{to{opacity:0;transform:translate(-100%)}}.request-card.skipping{animation:skipSlide .4s var(--ease-in) forwards;pointer-events:none}@keyframes skipSlide{to{opacity:0;transform:translate(30px)}}@keyframes requestEnter{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.request-card.entering{animation:requestEnter var(--duration-normal) var(--ease-out)}@media(hover:hover)and (pointer:fine){.request-card:hover{background:var(--bg-card)}.request-card:hover .request-actions{opacity:1;pointer-events:auto}}.request-card.dragging{opacity:.4}.request-card.drag-over{border-top:2px solid var(--accent);margin-top:-1px}.request-card.collapsed{opacity:.5}.request-actions{position:absolute;top:0;right:0;bottom:0;display:flex;align-items:center;justify-content:flex-end;gap:var(--space-sm);padding:0 var(--space-lg) 0 5rem;opacity:0;pointer-events:none;transition:opacity .15s;z-index:10;background:linear-gradient(to right,transparent,var(--bg-card) 3rem)}.request-card.collapsed .request-action-btn{padding:var(--btn-padding-sm)}.request-card.collapsed .request-action-btn svg{width:var(--btn-icon-size-sm);height:var(--btn-icon-size-sm)}.request-action-btn{display:flex;align-items:center;gap:var(--space-sm);padding:var(--btn-padding);border:none;border-radius:var(--radius-sm);font-size:var(--text-base);font-weight:600;cursor:pointer;transition:background .1s,transform .1s var(--ease-spring);background:#ffffff1a;color:var(--text)}.request-action-btn:hover{background:#ffffff26}.request-action-btn:active{transform:scale(.95)}.request-action-btn svg{width:var(--btn-icon-size);height:var(--btn-icon-size)}.request-action-btn.done,.request-action-btn.undo{background:var(--green-bg);color:var(--green-bright)}.request-action-btn.done:hover,.request-action-btn.undo:hover{background:var(--green-bg-hover)}.request-action-btn.delete{background:var(--red-bg);color:var(--red-bright)}.request-action-btn.delete:hover{background:var(--red-bg-hover)}.request-card-content{display:flex;align-items:center;gap:var(--space-md)}.request-card-info{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:space-between}.request-card-meta{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-xs);flex-shrink:0}.request-card-top{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm)}.request-card-body{flex:1;min-width:0;margin-top:.5em;line-height:normal;font-size:var(--text-sm);color:var(--text-muted);font-style:italic;overflow-wrap:break-word}.donor-name{font-weight:600;color:var(--accent);margin-right:.4em}.amount{font-family:JetBrains Mono,monospace;font-size:var(--text-sm);color:var(--green);padding:.15rem .4rem;background:var(--green-bg-light);border-radius:var(--radius-sm);white-space:nowrap}.amount.below{color:var(--text-muted);background:var(--muted-bg)}.amount.source-resub{color:var(--purple);background:var(--purple-bg)}.amount.source-chat{color:var(--blue);background:var(--blue-bg)}.time{font-family:JetBrains Mono,monospace;font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap}.character{display:flex;align-items:center;gap:.4rem;flex:1}.char-type-icon{width:16px;height:16px;opacity:.7}.badge.unknown{background:var(--text-muted);color:var(--bg)}.badge.skipped{background:var(--border);color:var(--text-muted)}.char-name{font-weight:600;text-transform:capitalize}.char-name.identifying{color:var(--text-muted);font-style:italic}.validating-dot{width:6px;height:6px;border-radius:50%;background:var(--yellow);animation:pulse 1s infinite}.char-portrait-wrapper{--defaultCharPortraitDimensions: 50px;width:var(--defaultCharPortraitDimensions);height:var(--defaultCharPortraitDimensions);border-radius:var(--radius-sm);background-size:contain;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;position:relative}.char-portrait-bg{background:var(--portrait-role-bg);-webkit-mask-size:contain;mask-size:contain;width:var(--defaultCharPortraitDimensions);height:var(--defaultCharPortraitDimensions);position:absolute}.char-portrait-bg.killer{--portrait-role-bg: #78202a}.char-portrait{width:var(--defaultCharPortraitDimensions);object-fit:cover;filter:drop-shadow(0px 4px 6px #00000050)}.char-portrait-placeholder .char-portrait{transform:scale(.6);opacity:.4;filter:grayscale(1)}.char-portrait-wrapper.char-portrait-sm{--defaultCharPortraitDimensions: 40px}.request-card.skeleton{cursor:default;pointer-events:none}.skeleton-bone{display:block;background:var(--border);border-radius:var(--radius-xs, 3px);animation:skeleton-pulse 1.2s ease-in-out infinite}@keyframes skeleton-pulse{0%,to{opacity:.3}50%{opacity:.6}}@media(max-width:480px){.request-card{padding:var(--space-md) var(--space-lg);display:flex;align-items:stretch;gap:0}.request-card-content{gap:var(--space-sm);flex-wrap:wrap;flex:1;min-width:0}.request-position{font-size:1.2em;min-width:1.5ch}.char-portrait-wrapper{--defaultCharPortraitDimensions: 42px}.char-name{font-size:var(--text-base)}.request-card-body{margin-top:.3em}.donor-name{font-size:.75em}.amount{font-size:var(--text-xs);padding:.1rem .3rem}.time{font-size:.65rem}.request-actions{opacity:1;pointer-events:auto;position:static;padding:0;background:none;flex-direction:column;justify-content:center;gap:var(--space-xs);margin-left:var(--space-sm)}.request-action-btn{min-width:36px;min-height:36px;padding:var(--space-sm)}.request-action-btn svg{width:18px;height:18px}.request-card-meta{flex-direction:column;align-items:flex-end;gap:var(--space-xs)}}.manual-entry-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.manual-entry-popup{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);width:90%;max-width:400px;overflow:visible}.manual-entry-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-lg) var(--space-xl);border-bottom:1px solid var(--border)}.manual-entry-header span{font-size:var(--text-md);font-weight:600}.manual-entry-close{background:none;border:none;color:var(--text-muted);font-size:1.5rem;cursor:pointer;line-height:1;padding:0}.manual-entry-close:hover{color:var(--text)}.manual-entry-body{padding:var(--space-xl);position:relative}.manual-entry-body input{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg);font-size:var(--text-md);color:var(--text)}.manual-entry-body input:focus{outline:none;border-color:var(--accent)}.manual-entry-body .autocomplete-dropdown{position:absolute;left:var(--space-xl);right:var(--space-xl);top:calc(100% - var(--space-sm))}@media(max-width:480px){.manual-entry-body input{font-size:16px}}.recovery-dialog{background:var(--bg-elevated);border:1px solid var(--border);border-radius:16px;width:90%;max-width:520px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 25px 50px -12px #00000080;animation:slideUp .2s ease}.recovery-dialog-wide{max-width:780px;height:80vh;max-height:none}.recovery-subtitle{padding:.75rem 1.25rem;font-size:var(--text-sm);color:var(--text-secondary);border-bottom:1px solid var(--border);flex-shrink:0}.recovery-subtitle strong{color:var(--text)}.recovery-actions{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1.25rem;border-bottom:1px solid var(--border);flex-shrink:0}.recovery-count{font-size:var(--text-xs);color:var(--text-muted)}.recovery-loading{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2.5rem 1.25rem;color:var(--text-secondary);font-size:var(--text-sm)}.recovery-spinner{width:24px;height:24px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.recovery-spinner-inline{display:inline-block;width:12px;height:12px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite;vertical-align:middle;margin-right:.25rem;opacity:.6}.recovery-list{overflow-y:auto;flex:1;min-height:0}.vod-item{display:flex;align-items:center;gap:.75rem;padding:.6rem 1.25rem;cursor:pointer;transition:background .1s;border-bottom:1px solid var(--border)}.vod-item:last-child{border-bottom:none}.vod-item:hover{background:var(--bg-card)}.vod-item.checked{background:#8b5cf60d}.vod-item input[type=checkbox]{width:16px;height:16px;flex-shrink:0;accent-color:var(--accent);cursor:pointer}.vod-item-info{flex:1;min-width:0}.vod-item-title{font-size:var(--text-sm);color:var(--text);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vod-item-meta{font-size:var(--text-xs);color:var(--text-muted);font-family:JetBrains Mono,monospace}.vod-disclaimer{margin-top:.25rem;font-size:var(--text-xs);color:var(--text-muted)}.vod-load-more{width:100%;justify-content:center;padding:.75rem;border-top:1px solid var(--border);border-radius:0}@media(max-width:480px){.recovery-dialog{width:calc(100vw - 1rem);max-height:90vh;margin:.5rem;border-radius:12px}}.review-dialog{background:var(--bg-elevated);border:1px solid var(--border);border-radius:16px;width:95%;max-width:960px;height:85vh;display:flex;flex-direction:column;box-shadow:0 25px 50px -12px #00000080;animation:slideUp .2s ease}.review-tabs{display:flex;border-bottom:1px solid var(--border);flex-shrink:0}.review-tab{flex:1;padding:.6rem 1rem;background:none;border:none;color:var(--text-muted);font-size:var(--text-sm);font-weight:500;cursor:pointer;border-bottom:2px solid transparent;transition:color .15s,border-color .15s;display:flex;align-items:center;justify-content:center;gap:.4rem}.review-tab:hover{color:var(--text-secondary)}.review-tab.active{color:var(--text);border-bottom-color:var(--accent)}.review-tab-badge{background:var(--accent);color:#fff;font-size:.65rem;font-weight:700;padding:.1rem .4rem;border-radius:99px;line-height:1.2}.review-row-changed{background:#8b5cf60f}.review-row-changed:hover{background:#8b5cf61a!important}.review-dates-wrap{display:grid;grid-template-columns:auto 1fr;gap:0 .3rem;align-items:baseline}.review-date-icon{width:.7rem;text-align:center}.review-done-time{color:var(--accent);font-size:var(--text-xs);opacity:.8}.review-done-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);cursor:pointer;transition:color .15s,background .15s}.review-done-btn:hover{background:#ffffff0f;color:var(--text)}.review-done-btn.checked{color:var(--accent)}.review-done-btn.changed{outline:2px solid var(--accent);outline-offset:-2px;border-radius:var(--radius-sm)}.review-done-diff{display:inline-flex;align-items:center;gap:.3rem;font-size:var(--text-xs);font-weight:500}.review-diff-old{text-decoration:line-through;color:var(--text-muted)}.review-diff-old.done{color:var(--accent);opacity:.5}.review-diff-new{color:var(--text)}.review-diff-new.done{color:var(--accent)}.review-done-diff svg{color:var(--text-muted);flex-shrink:0}@media(max-width:640px){.review-dialog{width:calc(100vw - 1rem);height:92vh;margin:.5rem;border-radius:12px}}.req-table-wrap{overflow:auto;flex:1;min-height:0}.req-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.req-table thead{position:sticky;top:0;z-index:1}.req-table th{background:var(--bg-elevated);color:var(--text-muted);font-weight:600;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;padding:.5rem .6rem;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;-webkit-user-select:none;user-select:none}.req-table td{padding:.45rem .6rem;border-bottom:1px solid var(--border);vertical-align:middle;color:var(--text)}.req-table tbody tr:hover{background:#ffffff05}.req-col-num{width:2.5rem;text-align:center!important;color:var(--text-muted)!important}.req-col-id{width:5rem;color:var(--text-muted)!important;font-size:var(--text-xs)}.req-col-check{width:2.5rem;text-align:center!important}.req-col-check input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.req-char-wrap{display:flex;align-items:center;gap:.5rem}.req-char-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:130px}.req-col-donor{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.req-col-source{white-space:nowrap}.req-msg-text{display:block;word-break:break-word}.req-col-done{width:4.5rem;text-align:center!important}.req-col-dates{white-space:nowrap;color:var(--text-muted)!important}.req-table-pagination{display:flex;align-items:center;gap:var(--space-md)}.req-table-page-info{font-family:JetBrains Mono,monospace;font-size:var(--text-sm);color:var(--text-muted)}@media(max-width:640px){.req-col-msg,.req-col-id{display:none}.req-char-name{max-width:80px}.req-col-donor{max-width:70px}}.chat-body{padding:.75rem 1rem;overflow-x:hidden;overflow-wrap:break-word}.chat-msg{padding:.3rem 0;font-size:.85rem}.chat-msg.donate{background:var(--accent-dim);margin:.2rem 0;padding:.3rem .5rem;border-left:2px solid var(--accent)}.chat-user{font-weight:600;margin-right:.4rem}.chat-user.donate{color:var(--accent)}.chat-user.regular{color:var(--blue)}.chat-text{color:var(--text-secondary)}@media(max-width:480px){.chat-body{max-height:300px;overflow-x:hidden;overflow-y:auto}}.modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s}.modal-overlay.open{opacity:1;visibility:visible;animation:fadeIn var(--duration-normal) var(--ease-out)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}.modal{background:var(--bg-elevated);border:1px solid var(--border);border-radius:16px;width:90%;max-width:400px;transform:scale(.95) translateY(10px);transition:transform var(--duration-normal) var(--ease-in);box-shadow:0 25px 50px -12px #00000080;overflow:visible}.modal-overlay.open .modal{transform:scale(1) translateY(0);transition:transform var(--duration-normal) var(--ease-out)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid var(--border)}.modal-title{font-size:.9rem;font-weight:600;display:flex;align-items:center;gap:.5rem}.modal-title svg{color:var(--accent)}.modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-muted);cursor:pointer;border-radius:6px;transition:background var(--duration-fast),color var(--duration-fast)}.modal-close:hover{background:var(--bg-card);color:var(--text)}.modal-body{padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem;overflow:visible}.modal-field{display:flex;flex-direction:column;gap:.5rem}.modal-field label{font-size:.75rem;color:var(--text-secondary);font-weight:500;text-transform:uppercase;letter-spacing:.03em}.modal-field select,.modal-field input{width:100%}.api-key-row{display:flex;gap:.75rem}.api-key-row input{flex:1}.modal-footer{padding:1rem 1.5rem;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:.5rem}.dialog-empty{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem 1.25rem;color:var(--text-secondary);font-size:var(--text-sm)}.dialog-help-text{margin:0;padding:.75rem 1.25rem;font-size:var(--text-sm);color:var(--text-muted);line-height:1.5;border-bottom:1px solid var(--border);flex-shrink:0}@media(max-width:480px){.modal{width:calc(100vw - 2rem);max-width:none;margin:1rem}}.context-menu{position:fixed;background:#1e1e1e80;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:8px;padding:.4rem 0;min-width:160px;box-shadow:0 8px 24px #0006;z-index:1000;display:none}.context-menu.show{display:block}.context-menu-item{padding:.5rem 1rem;cursor:pointer;display:flex;align-items:center;gap:.6rem;font-size:.85rem;color:var(--text)}.context-menu-item:hover{background:var(--bg-card)}.context-menu-item.danger{color:var(--red)}.context-menu-item svg{width:14px;height:14px;opacity:.7}
