:root{--bg:#f4f7fb;--surface:#fff;--soft-blue:#eaf3ff;--soft-green:#eaf8f2;--soft-red:#fff0f3;--soft-warn:#fff6e7;--ink:#202124;--muted:#68707a;--line:#dce3ea;--line-strong:#b9c6d3;--blue:#1769aa;--blue-dark:#0f4f86;--brown:#8b5e3c;--teal:#0f766e;--coral:#d94f70;--red:#b42318;--shadow:0 8px 22px #20212414;color:var(--ink);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Segoe UI,Aptos,sans-serif;line-height:1.4}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-bottom:92px}body{background:var(--bg);min-height:100svh;margin:0}button,input,select{font:inherit}button{color:#fff;background:var(--blue);cursor:pointer;border:0;border-radius:14px;min-height:38px;padding:8px 12px;font-size:.86rem;font-weight:700}button:hover:not(:disabled){background:var(--blue-dark)}button:disabled{opacity:.5;cursor:not-allowed}input,select{border:1px solid var(--line);width:100%;min-width:0;min-height:38px;color:var(--ink);background:var(--surface);border-radius:14px;outline:none;padding:8px 11px}input:focus,select:focus{border-color:#9ec2e6;box-shadow:0 0 0 3px #1769aa24}label{min-width:0;color:var(--muted);flex-direction:column;gap:5px;font-size:.78rem;font-weight:700;display:flex}a{color:var(--blue);font-weight:700}#root{min-height:100svh;padding:14px}.app-shell{width:min(1420px,100%);margin:0 auto;padding-bottom:92px}.topbar{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.app-menu{z-index:80;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffeb;border:1px solid #b9c6d3d1;border-radius:22px;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;width:min(680px,100% - 28px);margin:0 auto;padding:6px;display:grid;position:fixed;bottom:12px;left:50%;right:auto;transform:translate(-50%);box-shadow:0 12px 34px #2021242e}.app-menu button{min-width:0;min-height:38px;color:var(--ink);text-align:center;background:0 0;border:0;border-radius:16px;justify-content:center;align-items:center;padding:0 6px;font-size:.76rem;font-weight:800;text-decoration:none;display:flex}.app-menu button:hover,.app-menu button:focus-visible,.app-menu button.active{color:var(--blue);background:var(--soft-blue)}.home-dashboard{grid-template-columns:minmax(280px,1.1fr) minmax(260px,.9fr);align-items:start;gap:10px;display:grid}.home-brand-panel{grid-template-columns:72px minmax(0,1fr);align-items:center;gap:12px;display:grid}.app-brand-image,.about-app-image{border-radius:18px;width:64px;height:64px;box-shadow:0 8px 20px #20212429}.about-panel{flex-direction:column;gap:10px;max-width:620px;display:flex}.brand-block{min-width:0}h1{color:var(--ink);letter-spacing:0;margin:0;font-size:1.58rem;line-height:1.08}.topbar-subtitle{color:var(--muted);margin:4px 0 0;font-size:.78rem}.user-selector-row{border:1px solid var(--line);background:var(--surface);border-radius:16px;flex:none;align-items:center;gap:7px;padding:5px 7px;display:flex}.user-selector-row label{color:var(--brown);font-size:.74rem}.user-selector-row select{width:auto;max-width:210px;min-height:28px;color:var(--ink);border-radius:11px;padding:3px 24px 3px 8px;font-size:.78rem}.player-layout{grid-template-columns:minmax(260px,340px) minmax(420px,1fr) minmax(320px,410px);align-items:start;gap:10px;display:grid}.panel,.live-section,.history-section{border:1px solid var(--line);background:var(--surface);min-width:0;box-shadow:var(--shadow);border-radius:18px;padding:12px}.panel h2,.section-heading{color:var(--ink);margin:0 0 8px;font-size:1rem;line-height:1.2}.panel h3{margin:12px 0 6px;font-size:.86rem}.search-panel,.episode-panel,.processing-panel{flex-direction:column;gap:10px;display:flex}.processing-panel{position:sticky;top:12px}.search-row,.button-row,.processing-field-row{gap:7px;min-width:0;display:flex}.search-input-wrap{flex:auto;min-width:0;position:relative}.search-input-wrap input{padding-right:36px}.search-clear-btn{width:24px;min-width:24px;height:24px;min-height:24px;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:50%;right:7px;transform:translateY(-50%)}.search-clear-btn:hover:not(:disabled),.search-clear-btn:focus-visible{color:var(--blue);background:var(--soft-blue);border-color:#bfdbf7}.tiny{color:var(--muted);margin:0;font-size:.78rem}.error-text{color:var(--red);margin:0;font-size:.84rem;font-weight:700}.subscriptions-panel{flex-direction:column;gap:7px;display:flex}.panel-subheading{color:var(--muted);margin:0;font-size:.72rem;font-weight:800}.sub-list{flex-direction:column;gap:6px;display:flex}.sub-item,.podcast-item,.episode-item,.history-item{border:1px solid var(--line);width:100%;min-width:0;color:var(--ink);background:var(--surface);text-align:left;border-radius:14px}.sub-item,.podcast-item{align-items:center;gap:8px;padding:6px;display:flex}.sub-item{min-height:34px;font-size:.82rem}.sub-art,.podcast-item img{object-fit:cover;background:var(--soft-blue);border-radius:11px;flex:none;width:42px;height:42px}.sub-art{border-radius:8px;width:24px;height:24px}.podcast-list,.episode-list,.history-list,.live-jobs-list{flex-direction:column;gap:6px;display:flex}.podcast-list,.episode-list{max-height:560px;padding-right:2px;overflow:auto}.episode-item{cursor:pointer;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px;padding:8px 10px;display:grid}.sub-item:hover,.podcast-item:hover,.episode-item:hover,.history-item:hover{background:#f8fbff;border-color:#9ec2e6}.podcast-item.active,.episode-item.active{border-color:var(--blue);background:var(--soft-blue)}.sub-item span,.podcast-item span,.history-item-main{min-width:0}.sub-item span,.podcast-item strong,.history-item-main strong{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.podcast-item strong,.episode-item strong{font-size:.9rem}.episode-item strong{overflow-wrap:anywhere;white-space:normal;line-height:1.25;display:block}.episode-item-main{cursor:pointer;min-width:0}.podcast-item small,.episode-item small{color:var(--muted);font-size:.76rem}.episode-badges{flex-wrap:wrap;gap:4px;margin-top:5px;display:flex}.episode-badge{border:1px solid var(--line);min-height:21px;color:var(--muted);white-space:nowrap;background:#f7f9fc;border-radius:999px;align-items:center;padding:2px 7px;font-size:.68rem;font-weight:800;line-height:1;display:inline-flex}.episode-badge.ad-free{color:var(--teal);background:var(--soft-green);border-color:#b8ded9}.episode-badge.listened,.episode-badge.saved{color:var(--blue);background:var(--soft-blue);border-color:#bfdbf7}.episode-row-actions{flex-direction:column;align-items:stretch;gap:5px;width:88px;display:flex}.episode-save-btn,.episode-remove-btn{border:1px solid var(--line);border-radius:12px;width:100%;min-height:30px;padding:4px 7px;font-size:.72rem;line-height:1.05}.episode-save-btn{color:var(--blue);background:var(--surface)}.episode-save-btn.saved{color:var(--teal);background:var(--soft-green);border-color:#b8ded9}.episode-remove-btn{color:#fff;background:var(--blue)}.episode-remove-btn:hover:not(:disabled){background:var(--blue-dark)}.episode-header,.episode-panel-actions,.history-section-header,.live-job-top,.worker-status-top,.detail-modal-header{align-items:center;gap:8px;display:flex}.episode-header,.history-section-header,.worker-status-top,.detail-modal-header{justify-content:space-between}.episode-header>div:first-child{min-width:0}.episode-header h2{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.episode-panel-actions,.history-item-meta,.live-job-top{flex-wrap:wrap;justify-content:flex-end}.sub-toggle-btn,.clear-all-btn,.page-btn,.reprocess-job-btn,.delete-job-btn,.close-btn,.detail-link-btn.secondary{border:1px solid var(--line);color:var(--blue);background:var(--surface)}.sub-toggle-btn,.clear-all-btn,.page-btn,.reprocess-job-btn,.delete-job-btn,.close-btn{border-radius:12px;min-height:30px;padding:4px 9px;font-size:.76rem}.sub-toggle-btn:hover,.clear-all-btn:hover,.page-btn:hover,.reprocess-job-btn:hover,.close-btn:hover,.detail-link-btn.secondary:hover{color:var(--blue-dark);background:var(--soft-blue);border-color:#9ec2e6}.sub-toggle-btn.subbed{color:#725600;background:#fff8d8;border-color:#e3c245}.episode-pagination{grid-template-columns:minmax(0,1fr) 72px minmax(0,1fr);align-items:center;gap:7px;display:grid}.page-info{border:1px solid var(--line);min-height:38px;color:var(--ink);background:var(--surface);border-radius:14px;justify-content:center;align-items:center;font-weight:800;display:inline-flex}.jump-row{justify-content:center;align-items:center;gap:8px;display:flex}.jump-row label{color:var(--muted);font-size:.8rem;font-weight:700;display:block}.jump-row input{text-align:center;width:78px;min-height:36px}.player-bar{border-top:1px solid var(--line);padding-top:10px}.now-playing{color:var(--muted);margin:0 0 7px;font-size:.82rem}.audio-player{width:100%;min-width:0}.status-stack{flex-wrap:wrap;gap:6px;display:flex}.status{white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;min-height:25px;padding:4px 9px;font-size:.74rem;font-weight:800;display:inline-flex}.status.on{color:var(--teal);background:var(--soft-green);border-color:#b8ded9}.status.off{color:var(--red);background:var(--soft-red);border-color:#f0c7c2}.status.neutral{color:var(--blue);background:var(--soft-blue);border-color:#bfdbf7}.worker-status-card,.result-panel,.live-job-card{border:1px solid var(--line);background:#fbfcfe;border-radius:14px;padding:9px}.worker-status-card.ok{background:var(--soft-green);border-color:#b8ded9}.worker-status-card.warn{background:var(--soft-warn);border-color:#f0c78d}.worker-command{color:#320;white-space:pre;background:#fffaf0;border:1px solid #e0c78e;border-radius:12px;max-width:100%;margin-top:6px;padding:8px;font-family:Consolas,Courier New,monospace;font-size:.72rem;line-height:1.35;display:block;overflow-x:auto}.result-panel{flex-direction:column;gap:5px;display:flex}.active-job-card{gap:9px}.active-job-heading,.live-job-main{flex-direction:column;gap:2px;min-width:0;display:flex}.active-job-title,.live-job-main strong{color:var(--ink);overflow-wrap:anywhere;line-height:1.25}.active-job-meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.active-job-card h3{margin-top:4px;margin-bottom:0}.result-panel p{overflow-wrap:anywhere;margin:0}.log-panel{color:#ddf7ee;white-space:pre-wrap;background:#102635;border:1px solid #223b4e;border-radius:14px;min-height:112px;max-height:220px;padding:10px;font-family:Consolas,Courier New,monospace;font-size:.74rem;line-height:1.45;overflow:auto}.live-section,.history-section{margin-top:12px}.live-job-card{background:var(--surface)}.live-job-main{margin:6px 0 7px}.live-job-id,.history-job-id{color:var(--muted);font-family:Consolas,Courier New,monospace;font-size:.74rem}.live-job-pct{color:var(--blue);margin-left:auto;font-weight:800}.kill-btn{color:#fff;background:var(--red);border-radius:12px;min-height:28px;padding:3px 9px;font-size:.74rem}.kill-btn:hover:not(:disabled){background:#8f1c13}.live-job-started{margin-bottom:7px}.progress-bar-track{background:#e5eaf0;border-radius:999px;height:7px;overflow:hidden}.progress-bar-fill{border-radius:inherit;background:var(--blue);height:100%;transition:width .25s}.history-section-header{margin-bottom:8px}.history-item-wrap{grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:6px;display:grid}.history-row-actions{align-self:center;align-items:center;gap:6px;display:flex}.history-item{align-items:center;gap:10px;min-height:50px;padding:9px 10px;display:flex}.history-item-main{flex-direction:column;flex:260px;gap:2px;display:flex}.history-podcast-name{color:var(--blue);text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;font-weight:800;display:block;overflow:hidden}.history-episode-title{font-size:.9rem}.history-item-meta{flex:0 auto;justify-content:flex-end;align-items:center;gap:8px;display:flex}.delete-job-btn{color:var(--muted);background:0 0;align-self:center}.reprocess-job-btn{white-space:nowrap;align-self:center}.reprocess-job-btn:disabled{cursor:not-allowed;color:var(--muted);border-color:var(--line);background:var(--bg)}.delete-job-btn:hover{color:var(--red);background:var(--soft-red);border-color:#efc4bf}.history-item-failed{border-left:3px solid #ef9f97}.history-error-msg{max-width:100%;color:var(--red);text-overflow:ellipsis;white-space:nowrap;font-size:.74rem;font-weight:500;display:block;overflow:hidden}.detail-overlay,.loading-overlay{z-index:100;background:#20212473;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.loading-overlay{z-index:90;pointer-events:auto}.loading-card{text-align:center;background:#ffffffeb;border:1px solid #ffffffa6;border-radius:18px;flex-direction:column;gap:8px;width:min(360px,100%);padding:20px;display:flex;box-shadow:0 24px 70px #20212438}.loading-card strong{font-size:1.25rem}.loading-card span{color:var(--muted);font-size:.9rem}.detail-modal{background:var(--surface);border-radius:18px;flex-direction:column;gap:12px;width:min(680px,100%);max-height:88vh;padding:18px;display:flex;overflow:auto;box-shadow:0 24px 70px #2021243d}.detail-modal p{margin:0}.detail-links{flex-wrap:wrap;gap:8px;display:flex}.detail-link-btn{color:#fff;background:var(--blue);border-radius:14px;align-items:center;min-height:36px;padding:8px 12px;font-size:.86rem;font-weight:800;text-decoration:none;display:inline-flex}.detail-link-btn:hover{background:var(--blue-dark)}.detail-link-btn.secondary{color:var(--blue)}.footer-note{text-align:center;color:var(--muted);margin-top:12px;font-size:.76rem}.footer-note a{color:var(--muted);font-size:.72rem;font-weight:700;text-decoration:none}.footer-note a:hover,.footer-note a:focus-visible{color:var(--blue);text-decoration:underline}@media (width<=1240px){.player-layout{grid-template-columns:minmax(260px,340px) minmax(0,1fr)}.processing-panel{grid-column:1/-1;position:static}}@media (width<=820px){#root{padding:10px}.app-menu{border-radius:18px;width:calc(100% - 16px);bottom:8px;left:50%;right:auto}.app-menu button{border-radius:13px;min-height:36px;font-size:.72rem}.home-dashboard{grid-template-columns:1fr}.topbar{flex-direction:column;gap:8px}.user-selector-row{justify-content:space-between;width:100%}.user-selector-row select{max-width:70%}h1{font-size:1.42rem}.player-layout{grid-template-columns:1fr}.processing-field-row,.search-row{flex-direction:column;align-items:stretch}.search-row button,.button-row button{width:100%}.episode-header,.history-section-header{flex-direction:column;align-items:flex-start}.episode-item{grid-template-columns:minmax(0,1fr)}.episode-row-actions{flex-direction:row;width:100%}.history-item-wrap{grid-template-columns:minmax(0,1fr)}.history-item{flex-direction:column;align-items:stretch}.history-item-main{flex:0 auto}.history-row-actions{justify-content:flex-end;width:100%}.episode-panel-actions,.history-item-meta{justify-content:flex-start}.episode-pagination{grid-template-columns:1fr 58px 1fr}.jump-row{justify-content:flex-start}}
