.tool-ui{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-2xl);box-shadow:var(--shadow-card);color:var(--color-text);margin-bottom:var(--space-8);padding:var(--space-8)}.yt-downloader{display:flex;flex-direction:column;gap:var(--space-4)}.yt-downloader__input-group{margin:0}.yt-downloader .label{color:var(--color-text);display:block;font-weight:700;margin-bottom:var(--space-2)}.yt-input-row{display:flex;gap:var(--space-3)}.yt-input-row .url-input{background:var(--color-bg);border:2px solid var(--color-border);border-radius:var(--radius-xl);color:var(--color-text);flex:1;font:inherit;min-width:0;padding:13px 15px}.yt-input-row .url-input:focus{outline:2px solid var(--color-primary);outline-offset:2px}.yt-input-row .btn{flex:0 0 auto;white-space:nowrap}.yt-data-note,.yt-input-hint,.yt-quality-hint,.yt-result-note{color:var(--color-text-muted);font-size:var(--text-sm);line-height:1.55}.yt-input-hint{margin:8px 0 0}.yt-data-note{margin:var(--space-2) 0 0}.yt-downloader__error,.yt-downloader__loading,.yt-downloader__result{display:none}.yt-downloader__result.active{display:block}.yt-downloader__loading.active{display:flex}.yt-downloader__loading{align-items:center;background:var(--color-bg-secondary);border-radius:var(--radius-xl);color:var(--color-text-muted);gap:var(--space-3);padding:var(--space-5)}.yt-downloader__loading p{margin:0}.loading-spinner{animation:yt-spin .8s linear infinite;border:3px solid var(--color-border);border-radius:50%;border-top-color:var(--color-primary);display:block;flex:0 0 28px;height:28px;width:28px}@keyframes yt-spin{to{transform:rotate(1turn)}}.yt-downloader__error.active{display:block}.yt-downloader__error{background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.22);border-radius:var(--radius-xl);color:#b91c1c;padding:var(--space-4)}.yt-downloader__error p{margin:0}[data-theme=dark] .yt-downloader__error{color:#fca5a5}.yt-downloader__preview{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-xl);display:grid;gap:var(--space-4);grid-template-columns:minmax(180px,.8fr) minmax(0,1.2fr);overflow:hidden}.preview-thumbnail{aspect-ratio:16/9;background:#101827;min-height:155px}.preview-thumbnail img{display:block;height:100%;object-fit:contain;width:100%}.preview-info{align-self:center;min-width:0;padding:var(--space-4)}.preview-info h3{color:var(--color-text);font-size:var(--text-lg);line-height:1.4;margin:0 0 var(--space-3);overflow-wrap:anywhere}.preview-meta{color:var(--color-text-muted);display:flex;flex-wrap:wrap;font-size:var(--text-sm);gap:5px 14px;margin:0}.yt-downloader__quality-section{margin-top:var(--space-5)}.yt-downloader__quality-section h3{color:var(--color-text);font-size:var(--text-lg);margin:0 0 var(--space-2)}.yt-quality-hint{margin:0 0 var(--space-4)}.quality-options{display:grid;gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.quality-option{cursor:pointer;display:block;position:relative}.quality-option input{height:1px;opacity:0;position:absolute;width:1px}.quality-card{background:var(--color-bg);border:2px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-text);display:flex;flex-direction:column;gap:6px;min-height:82px;padding:13px 15px}.quality-card strong{line-height:1.3}.quality-card small{color:var(--color-text-muted);line-height:1.4}.quality-option input:checked+.quality-card{background:rgba(79,70,229,.08);border-color:var(--color-primary)}.quality-option input:focus-visible+.quality-card{outline:2px solid var(--color-primary);outline-offset:3px}.yt-downloader__actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-4)}.yt-downloader__actions .btn{flex:1 1 190px}.yt-result-note{margin:var(--space-3) 0 0}.yt-downloader button:disabled{cursor:wait;opacity:.7}@media (max-width:700px){.yt-downloader__preview{grid-template-columns:1fr}.preview-info{padding-top:0}}@media (max-width:640px){.tool-ui{padding:var(--space-5)}.yt-input-row{flex-direction:column}.yt-input-row .btn{width:100%}.quality-options{grid-template-columns:repeat(2,minmax(0,1fr))}}