@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/inter-400-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/inter-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('fonts/inter-500-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('fonts/inter-500-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('fonts/inter-600-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('fonts/inter-600-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/inter-700-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/inter-700-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* =====================================================================
   Токены. Графитовая база + лаймовый акцент. --accent — заливка (кнопки,
   марка), --accent-ink — акцент как цвет текста/ссылки: на светлом фоне
   лайм нечитаем, поэтому там он темнее. --bar — заливка прогресса.
   ===================================================================== */
:root{
  color-scheme: dark;
  --bg:#0c0d0b; --surface-1:#141512; --surface-2:#1a1b17; --surface-3:#23251f;
  --overlay:rgba(0,0,0,.62);
  --border:#262822; --border-strong:#363930;
  --text:#f1f2ea; --text-secondary:#c2c4b7; --text-muted:#85887a; --text-inverse:#10120a;
  --accent:#c8f542; --accent-hover:#d6ff5e; --accent-active:#b3df2c; --on-accent:#10120a;
  --accent-ink:#c8f542; --accent-soft:rgba(200,245,66,.11); --accent-ring:rgba(200,245,66,.42);
  --bar:#c8f542;
  --success:#c8f542; --success-soft:rgba(200,245,66,.12);
  --warning:#ffb547; --warning-soft:rgba(255,181,71,.13);
  --danger:#ff6b5b; --danger-soft:rgba(255,107,91,.12);
  --live:#ff4d4d;
  --dot:rgba(255,255,255,.055);
  --r-xs:6px; --r-sm:8px; --r-md:12px; --r-lg:16px; --r-xl:22px; --r-full:999px;
  --shadow-sm:0 1px 2px rgba(0,0,0,.45);
  --shadow-md:0 6px 20px rgba(0,0,0,.35),0 1px 2px rgba(0,0,0,.45);
  --shadow-lg:0 18px 50px rgba(0,0,0,.5);
  --shadow-focus:0 0 0 3px var(--accent-ring);
  --s-1:4px; --s-2:8px; --s-3:12px; --s-4:16px; --s-5:20px; --s-6:24px; --s-8:32px; --s-10:40px; --s-12:48px; --s-16:64px;
  --ease:cubic-bezier(.2,.7,.3,1); --dur-fast:120ms; --dur:180ms; --dur-slow:280ms;
  --maxw:880px; --appw:1320px; --gutter:clamp(16px, 4vw, 40px);
  --font-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --font-mono:ui-monospace,"SF Mono","JetBrains Mono","Cascadia Code",Menlo,monospace;
  --chev: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='%238a8c7e' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
}
@media (prefers-color-scheme: light){
  :root:not([data-theme="dark"]){
    color-scheme: light;
    --bg:#f3f2ec; --surface-1:#fffffb; --surface-2:#efeee7; --surface-3:#e5e4db;
    --overlay:rgba(16,18,10,.55); --border:#e0ded4; --border-strong:#cbc9bd;
    --text:#14150f; --text-secondary:#3c3e34; --text-muted:#76786a; --text-inverse:#fffffb;
    --accent:#c8f542; --accent-hover:#bdec30; --accent-active:#aad61f; --on-accent:#10120a;
    --accent-ink:#4a7800; --accent-soft:rgba(110,160,0,.12); --accent-ring:rgba(110,160,0,.35);
    --bar:#7cb305;
    --success:#4a7800; --success-soft:rgba(110,160,0,.13);
    --warning:#a86200; --warning-soft:rgba(200,120,0,.12);
    --danger:#d23b2a; --danger-soft:rgba(210,59,42,.1);
    --live:#e0282e;
    --dot:rgba(20,21,15,.07);
    --shadow-sm:0 1px 2px rgba(30,30,10,.06);
    --shadow-md:0 6px 20px rgba(30,30,10,.08),0 1px 2px rgba(30,30,10,.06);
    --shadow-lg:0 18px 50px rgba(30,30,10,.14);
  }
}
:root[data-theme="light"]{
  color-scheme: light;
  --bg:#f3f2ec; --surface-1:#fffffb; --surface-2:#efeee7; --surface-3:#e5e4db;
  --overlay:rgba(16,18,10,.55); --border:#e0ded4; --border-strong:#cbc9bd;
  --text:#14150f; --text-secondary:#3c3e34; --text-muted:#76786a; --text-inverse:#fffffb;
  --accent:#c8f542; --accent-hover:#bdec30; --accent-active:#aad61f; --on-accent:#10120a;
  --accent-ink:#4a7800; --accent-soft:rgba(110,160,0,.12); --accent-ring:rgba(110,160,0,.35);
  --bar:#7cb305;
  --success:#4a7800; --success-soft:rgba(110,160,0,.13);
  --warning:#a86200; --warning-soft:rgba(200,120,0,.12);
  --danger:#d23b2a; --danger-soft:rgba(210,59,42,.1);
  --live:#e0282e;
  --dot:rgba(20,21,15,.07);
  --shadow-sm:0 1px 2px rgba(30,30,10,.06);
  --shadow-md:0 6px 20px rgba(30,30,10,.08),0 1px 2px rgba(30,30,10,.06);
  --shadow-lg:0 18px 50px rgba(30,30,10,.14);
}

/* ============================== База ============================== */
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  background:var(--bg); color:var(--text-secondary);
  font:400 14px/1.55 var(--font-sans);
  -webkit-font-smoothing:antialiased;
  min-height:100vh; display:flex; flex-direction:column;
  overflow-x:hidden;
}
body > main{flex:1 0 auto}
h1,h2,h3{color:var(--text); margin:0}
a{color:var(--accent-ink)}
::selection{background:var(--accent); color:var(--on-accent)}

/* Узкий контейнер (страница статистики) и широкий (главная). */
.wrap{width:min(100% - 2*var(--gutter), var(--maxw)); margin-inline:auto}
.app{width:min(100% - 2*var(--gutter), var(--appw)); margin-inline:auto}

/* Моноширинная «надпись» — подписи полей и групп. */
.eyebrow, .field > label, .group__label, .side__title{
  font:500 11px/1.2 var(--font-mono); letter-spacing:.08em; text-transform:uppercase;
  color:var(--text-muted);
}

/* ============================== Шапка ============================== */
.topbar{
  position:sticky; top:0; z-index:50;
  background:color-mix(in srgb, var(--bg) 84%, transparent);
  backdrop-filter:blur(14px) saturate(1.2); -webkit-backdrop-filter:blur(14px) saturate(1.2);
  border-bottom:1px solid var(--border);
}
.topbar__in{display:flex; align-items:center; justify-content:space-between; gap:var(--s-4);
  height:60px; width:100%; padding-inline:var(--gutter)}
.brand{display:flex; align-items:center; gap:10px; font-weight:700; font-size:15px;
  color:var(--text); text-decoration:none; letter-spacing:-.01em; white-space:nowrap}
.brand__mark{
  width:30px; height:30px; border-radius:9px; flex:none;
  background:var(--accent); color:var(--on-accent);
  display:grid; place-items:center;
}
.brand__mark svg{display:block}
.brand__sub{color:var(--text-muted); font:500 12px var(--font-mono); letter-spacing:0}

.topnav{display:flex; align-items:center; gap:2px}
.topnav a{
  display:inline-flex; align-items:center; gap:7px; white-space:nowrap;
  color:var(--text-muted); text-decoration:none; font-size:13px; font-weight:500;
  padding:7px 11px; border-radius:var(--r-sm);
  transition:color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);
}
.topnav a svg{flex:none}
.topnav a:hover{color:var(--text); background:var(--surface-2)}
.topnav a:focus-visible{outline:none; box-shadow:var(--shadow-focus)}
.topnav a[aria-current="page"]{color:var(--text)}
.topnav__donate{color:var(--on-accent) !important; background:var(--accent); margin-left:6px}
.topnav__donate:hover{background:var(--accent-hover) !important}
.topnav__sep{width:1px; height:20px; background:var(--border); margin:0 6px}

/* ============================== Кнопки ============================== */
.btn{
  --h:44px;
  display:inline-flex; align-items:center; justify-content:center; gap:var(--s-2);
  height:var(--h); padding:0 var(--s-5);
  font:600 14px/1 var(--font-sans); letter-spacing:-.005em;
  border:1px solid transparent; border-radius:var(--r-md);
  cursor:pointer; white-space:nowrap; user-select:none; text-decoration:none;
  transition:background var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease),
             box-shadow var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease),
             color var(--dur-fast) var(--ease);
}
.btn svg{flex:none}
.btn--primary{background:var(--accent); color:var(--on-accent)}
.btn--primary:hover{background:var(--accent-hover); transform:translateY(-1px);
  box-shadow:0 8px 24px color-mix(in srgb, var(--accent) 28%, transparent)}
.btn--primary:active{background:var(--accent-active); transform:translateY(0); box-shadow:none}
.btn--lg{--h:52px; padding:0 var(--s-6); font-size:15px; border-radius:var(--r-md)}
.btn--block{width:100%}
.btn--ghost{background:transparent; color:var(--text-secondary); border-color:var(--border)}
.btn--ghost:hover{background:var(--surface-2); color:var(--text); border-color:var(--border-strong)}
.btn--sm{--h:30px; padding:0 11px; font-size:12.5px; border-radius:var(--r-sm)}
.btn--success{background:var(--accent); color:var(--on-accent)}
.btn--success:hover{background:var(--accent-hover)}
.btn:focus-visible{outline:none; box-shadow:var(--shadow-focus)}
.btn[disabled],.btn[aria-busy="true"]{opacity:.6; pointer-events:none}
.icon-btn{
  width:34px; height:34px; padding:0; border-radius:var(--r-sm); flex:none;
  background:transparent; border:1px solid transparent; color:var(--text-muted);
  display:grid; place-items:center; cursor:pointer; font-size:14px; line-height:1;
  transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease),
             border-color var(--dur-fast) var(--ease);
}
.icon-btn:hover{background:var(--surface-2); color:var(--text)}
.icon-btn:focus-visible{outline:none; box-shadow:var(--shadow-focus)}
.spinner{
  width:16px; height:16px; border-radius:50%; flex:none;
  border:2px solid color-mix(in srgb, currentColor 30%, transparent);
  border-top-color:currentColor; animation:spin .7s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}

/* ============================== Поля ============================== */
.input{
  height:44px; width:100%; padding:0 var(--s-4);
  background:var(--surface-1); color:var(--text);
  border:1px solid var(--border); border-radius:var(--r-md);
  font:400 14px var(--font-sans); outline:none;
  transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), background var(--dur) var(--ease);
}
.input::placeholder{color:var(--text-muted)}
.input:hover{border-color:var(--border-strong)}
.input:focus-visible{border-color:var(--accent-ink); box-shadow:var(--shadow-focus)}
.input[aria-invalid="true"]{border-color:var(--danger)}
select.input{
  appearance:none; -webkit-appearance:none; cursor:pointer;
  padding:0 34px 0 var(--s-3); height:42px;
  background:var(--surface-2) var(--chev) no-repeat right 12px center;
  text-overflow:ellipsis;
}
select.input:hover{background-color:var(--surface-3)}
.input--mono{font-family:var(--font-mono); font-size:13.5px; letter-spacing:.02em}

.field{display:flex; flex-direction:column; gap:7px; min-width:0}
.row{display:flex; gap:var(--s-3); flex-wrap:wrap; align-items:flex-end}
.hint{color:var(--text-muted); font-size:12.5px; margin:0; line-height:1.5}

/* ============================== Hero ============================== */
/* Общий hero (статистика) — по центру. */
.hero{padding:var(--s-12) 0 var(--s-6); text-align:center}
.hero h1{font-size:40px; line-height:1.08; font-weight:700; letter-spacing:-.035em}
.hero p{color:var(--text-muted); margin:var(--s-3) 0 0; font-size:15px}

/* Главная: полоса во всю ширину с точечной сеткой, текст слева. */
.stage{
  position:relative; border-bottom:1px solid var(--border);
  background:
    radial-gradient(ellipse 60% 70% at 85% 0%, var(--accent-soft), transparent 70%),
    var(--bg);
  overflow:hidden;
}
.stage::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background-image:radial-gradient(var(--dot) 1px, transparent 1.2px);
  background-size:22px 22px;
  -webkit-mask-image:linear-gradient(to bottom, #000 20%, transparent 95%);
          mask-image:linear-gradient(to bottom, #000 20%, transparent 95%);
}
.stage__in{position:relative; padding:clamp(32px, 5vw, 64px) 0 clamp(28px, 4vw, 44px)}
.stage h1{
  font-size:clamp(34px, 5vw, 58px); line-height:1.02; font-weight:700;
  letter-spacing:-.045em; max-width:14ch; margin-top:var(--s-4);
}
.stage h1 em{font-style:normal; color:var(--accent-ink)}
.stage__lead{margin:var(--s-4) 0 0; font-size:16px; color:var(--text-muted); max-width:56ch}
.eyebrow{display:inline-flex; align-items:center; gap:10px}
.eyebrow::before{content:""; width:7px; height:7px; border-radius:50%; background:var(--accent);
  box-shadow:0 0 0 4px var(--accent-soft)}

/* Строка ввода ссылки: одно поле с кнопками внутри. */
.urlbar{
  display:flex; align-items:center; gap:6px; margin-top:var(--s-8);
  max-width:860px; padding:6px 6px 6px 16px;
  background:var(--surface-1); border:1px solid var(--border-strong);
  border-radius:var(--r-lg); box-shadow:var(--shadow-md);
  transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.urlbar:focus-within{border-color:var(--accent-ink); box-shadow:var(--shadow-md), var(--shadow-focus)}
.urlbar[data-invalid="true"]{border-color:var(--danger)}
.urlbar__icon{color:var(--text-muted); flex:none; display:grid}
.urlbar__input{
  flex:1; min-width:0; height:48px; border:0; outline:none; background:transparent;
  color:var(--text); font:400 16px var(--font-sans); padding:0 4px;
}
.urlbar__input::placeholder{color:var(--text-muted)}
.urlbar .btn--lg{--h:48px; border-radius:11px}
.paste-btn{height:36px; padding:0 12px; border-radius:var(--r-sm); border:1px solid var(--border);
  background:var(--surface-2); color:var(--text-secondary); font:500 13px var(--font-sans);
  cursor:pointer; display:inline-flex; align-items:center; gap:6px; flex:none;
  transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease)}
.paste-btn:hover{background:var(--surface-3); color:var(--text)}
.paste-btn:focus-visible{outline:none; box-shadow:var(--shadow-focus)}

.sites{display:flex; flex-wrap:wrap; gap:6px; margin-top:var(--s-5); align-items:center}
.sites__item{font:500 12px/1 var(--font-sans); color:var(--text-secondary);
  padding:6px 10px; border-radius:var(--r-full); border:1px solid var(--border);
  background:color-mix(in srgb, var(--surface-1) 70%, transparent)}
.sites__more{font:500 12px var(--font-mono); color:var(--text-muted); padding-left:4px}

/* ============================== Раскладка ============================== */
.layout{
  display:grid; grid-template-columns:minmax(0, 1fr) 400px; gap:var(--s-8);
  align-items:start; padding-top:var(--s-8);
}
.layout__side{display:flex; flex-direction:column; gap:var(--s-8);
  min-width:0}
.layout__main{min-width:0}

/* ============================== Карточки ============================== */
.card{
  background:var(--surface-1); border:1px solid var(--border);
  border-radius:var(--r-lg); padding:var(--s-5);
}
.card--enter{animation:card-in var(--dur-slow) var(--ease) both}
@keyframes card-in{from{opacity:0; transform:translateY(6px)} to{opacity:1; transform:none}}
.title{
  color:var(--text); font:600 16px/1.35 var(--font-sans); letter-spacing:-.01em;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
  overflow:hidden; overflow-wrap:anywhere;
}
.meta{color:var(--text-muted); font-size:13px; font-variant-numeric:tabular-nums}

/* Вступление: три шага, пока ссылки нет. */
.intro{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:var(--s-3)}
.step{background:var(--surface-1); border:1px solid var(--border); border-radius:var(--r-lg);
  padding:var(--s-5); display:flex; flex-direction:column; gap:var(--s-2); min-height:150px}
.step__n{font:500 12px var(--font-mono); color:var(--accent-ink); letter-spacing:.06em}
.step h3{font-size:15px; font-weight:600; letter-spacing:-.01em; margin-top:auto}
.step p{margin:0; color:var(--text-muted); font-size:13px}
.facts{display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); margin-top:var(--s-3);
  border:1px solid var(--border); border-radius:var(--r-lg); background:var(--surface-1)}
.fact{padding:var(--s-4) var(--s-5); border-left:1px solid var(--border)}
.fact:first-child{border-left:0}
.fact b{display:block; color:var(--text); font:600 20px/1.2 var(--font-sans); letter-spacing:-.02em;
  font-variant-numeric:tabular-nums}
.fact span{font-size:12.5px; color:var(--text-muted)}

/* Рабочая панель: превью + настройки + подвал с кнопкой. */
.work{padding:0; overflow:hidden; scroll-margin-top:76px}
.work__head{display:grid; grid-template-columns:260px minmax(0,1fr); gap:var(--s-5);
  padding:var(--s-5); border-bottom:1px solid var(--border)}
.work__info{display:flex; flex-direction:column; gap:6px; min-width:0; padding-top:2px}
.work__info .title{font-size:19px; line-height:1.3; -webkit-line-clamp:3}
.work__body{padding:var(--s-5); display:flex; flex-direction:column; gap:var(--s-5)}
.work__foot{
  display:flex; align-items:center; justify-content:space-between; gap:var(--s-4);
  padding:var(--s-4) var(--s-5); border-top:1px solid var(--border);
  background:var(--surface-2);
}
.work__foot .btn{min-width:220px; margin-left:auto}
.group{display:flex; flex-direction:column; gap:var(--s-3)}
.group__label{display:flex; align-items:center; justify-content:space-between; gap:var(--s-2)}
.grid-3{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:var(--s-3)}
.grid-2{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:var(--s-3)}

.thumb{
  position:relative; aspect-ratio:16/9; border-radius:var(--r-md);
  overflow:hidden; background:var(--surface-2); border:1px solid var(--border);
}
.thumb img{width:100%; height:100%; object-fit:cover; display:block}
.thumb img:not([src]){visibility:hidden}
.thumb__badge{
  position:absolute; right:8px; bottom:8px; padding:4px 7px;
  border-radius:var(--r-xs); background:var(--overlay); color:#fff;
  font:500 12px/1 var(--font-mono); backdrop-filter:blur(4px);
}
.source{display:inline-flex; align-items:center; gap:6px; align-self:flex-start;
  font:500 11px/1 var(--font-mono); letter-spacing:.06em; text-transform:uppercase;
  color:var(--accent-ink); background:var(--accent-soft); padding:5px 8px; border-radius:var(--r-xs)}

/* Сегмент-переключатель */
.seg{
  display:inline-flex; gap:2px; padding:3px; background:var(--surface-2);
  border:1px solid var(--border); border-radius:var(--r-md); max-width:100%;
}
.seg button{
  appearance:none; border:0; background:transparent; cursor:pointer;
  color:var(--text-muted); font:500 13px/1 var(--font-sans);
  padding:9px 14px; border-radius:var(--r-sm); white-space:nowrap;
  transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}
.seg button:hover{color:var(--text)}
.seg button:disabled{opacity:.4; cursor:not-allowed; color:var(--text-3, inherit)}
.seg button[aria-checked="true"]{background:var(--surface-1); color:var(--text); box-shadow:var(--shadow-sm),
  inset 0 0 0 1px var(--border-strong)}
.seg button:focus-visible{outline:none; box-shadow:var(--shadow-focus)}
.seg--wide{display:grid; grid-template-columns:repeat(3, 1fr); width:100%}
.seg--wide button{padding:11px 10px; font-size:14px; display:inline-flex; align-items:center;
  justify-content:center; gap:8px}
.seg--wide button svg{opacity:.7}
.seg--wide button[aria-checked="true"] svg{opacity:1; color:var(--accent-ink)}

/* Плейлист: список роликов */
.pl-list{display:flex; flex-direction:column; max-height:560px; overflow-y:auto;
  border:1px solid var(--border); border-radius:var(--r-md); background:var(--surface-2)}
.pl-item{display:grid; grid-template-columns:28px 96px minmax(0,1fr) auto; gap:var(--s-3);
  align-items:center; padding:8px 12px; border:0; border-bottom:1px solid var(--border);
  background:transparent; color:var(--text); font:500 13.5px/1.35 var(--font-sans);
  text-align:left; cursor:pointer; transition:background var(--dur-fast) var(--ease)}
.pl-item:last-child{border-bottom:0}
.pl-item:hover{background:var(--surface-3)}
.pl-item:focus-visible{outline:none; box-shadow:inset var(--shadow-focus)}
.pl-item__n{font:500 12px var(--font-mono); color:var(--text-muted); text-align:right}
.pl-item__thumb{width:96px; aspect-ratio:16/9; border-radius:6px; overflow:hidden; background:var(--surface-3)}
.pl-item__thumb img{width:100%; height:100%; object-fit:cover; display:block}
.pl-item__title{overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical}
.pl-item__dur{font:500 12px var(--font-mono); color:var(--text-muted)}
@media (max-width:640px){
  .pl-item{grid-template-columns:72px minmax(0,1fr); gap:var(--s-2)}
  .pl-item__n, .pl-item__dur{display:none}
  .pl-item__thumb{width:72px}
}

/* Отрезок: «с [ ] — по [ ]» в одну строку. */
.clip{display:flex; align-items:center; gap:var(--s-2); flex-wrap:wrap}
.clip .input{width:130px; text-align:center}
.clip__sep{color:var(--text-muted); font-size:13px}

/* Список всех форматов */
.fmt-list{
  max-height:340px; overflow-y:auto; border:1px solid var(--border);
  border-radius:var(--r-md); background:var(--surface-2);
}
.fmt{
  display:grid; grid-template-columns:auto 1fr auto; gap:var(--s-3);
  align-items:center; padding:10px var(--s-4);
  border-bottom:1px solid var(--border); cursor:pointer;
  font-size:13px; transition:background var(--dur-fast) var(--ease);
}
.fmt:last-child{border-bottom:0}
.fmt:hover{background:var(--surface-3)}
.fmt:has(input:checked){background:var(--accent-soft)}
.fmt input{accent-color:var(--bar); cursor:pointer; margin:0}
.fmt__main{color:var(--text); font-weight:500}
.fmt__sub{color:var(--text-muted); font-family:var(--font-mono); font-size:12px}
.fmt__size{color:var(--text-muted); font:500 12px var(--font-mono); font-variant-numeric:tabular-nums}
.tag{
  display:inline-block; padding:2px 6px; border-radius:var(--r-xs);
  font:600 10.5px/1.3 var(--font-mono); letter-spacing:.04em; margin-right:6px; text-transform:uppercase;
}
.tag--both{background:var(--accent-soft); color:var(--accent-ink)}
.tag--video{background:var(--warning-soft); color:var(--warning)}
.tag--audio{background:color-mix(in srgb, #5ab0ff 16%, transparent); color:#4b9bf0}

/* Чекбоксы постобработки — плитки с собственной галочкой. */
.pp-opts{display:grid; grid-template-columns:repeat(auto-fill, minmax(200px, 1fr)); gap:6px}
.chk{display:flex; align-items:center; gap:10px; cursor:pointer;
  padding:10px 12px; border:1px solid var(--border); border-radius:var(--r-sm);
  background:var(--surface-1); color:var(--text-secondary); font-size:13px; line-height:1.3;
  user-select:none; transition:border-color var(--dur-fast), background var(--dur-fast), color var(--dur-fast)}
.chk:hover{border-color:var(--border-strong); color:var(--text)}
.chk input{appearance:none; -webkit-appearance:none; margin:0; flex:none;
  width:16px; height:16px; border-radius:5px; border:1.5px solid var(--border-strong);
  background:var(--surface-2); display:grid; place-items:center; cursor:pointer;
  transition:background var(--dur-fast), border-color var(--dur-fast)}
.chk input::after{content:""; width:8px; height:4.5px; border:solid var(--on-accent);
  border-width:0 0 2px 2px; transform:rotate(-45deg) translate(1px,-1px) scale(0);
  transition:transform var(--dur-fast) var(--ease)}
.chk input:checked{background:var(--accent); border-color:var(--accent)}
.chk input:checked::after{transform:rotate(-45deg) translate(1px,-1px) scale(1)}
.chk:has(input:checked){border-color:color-mix(in srgb, var(--accent-ink) 55%, var(--border));
  background:var(--accent-soft); color:var(--text)}
.chk:has(input:focus-visible){box-shadow:var(--shadow-focus)}
.pp-count{font:500 11px var(--font-mono); color:var(--accent-ink); text-transform:none; letter-spacing:0}

/* Примерный размер */
.size-est{display:flex; flex-direction:column; gap:2px; min-width:0}
.size-est__label{font:500 11px var(--font-mono); letter-spacing:.08em; text-transform:uppercase;
  color:var(--text-muted)}
.size-est__value{color:var(--text); font:600 18px/1.2 var(--font-sans); letter-spacing:-.01em;
  font-variant-numeric:tabular-nums}

/* Прямой эфир / галерея */
.live-note{font-size:13px; color:var(--text-muted); line-height:1.5; margin-top:4px;
  padding:10px 12px; border-radius:var(--r-sm); background:var(--surface-2); border:1px solid var(--border)}
.live-badge{display:inline-flex; align-items:center; gap:6px; margin-right:6px; padding:3px 8px;
  border-radius:var(--r-full); background:color-mix(in srgb, var(--live) 16%, transparent);
  color:var(--live); font:600 11px/1.2 var(--font-mono); letter-spacing:.05em; text-transform:uppercase;
  white-space:nowrap; vertical-align:1px}
.live-badge--img{background:var(--accent-soft); color:var(--accent-ink)}

/* ============================== Боковая колонка ============================== */
.section{margin-top:var(--s-10)}
.layout__side .section{margin-top:0}
.section__head{display:flex; align-items:center; justify-content:space-between;
  gap:var(--s-3); margin-bottom:var(--s-3); min-height:30px}
.section__head h2{font-size:15px; font-weight:600; letter-spacing:-.01em;
  display:flex; align-items:center; gap:var(--s-2)}
.pill{
  background:var(--accent-soft); color:var(--accent-ink);
  padding:2px 8px; border-radius:var(--r-full); font:600 11.5px/1.4 var(--font-mono);
}
.pill:empty{display:none}
.stack{display:flex; flex-direction:column; gap:var(--s-2)}

/* Карточка загрузки */
.task{padding:var(--s-3) var(--s-4) var(--s-4)}
.task__top{display:flex; align-items:flex-start; gap:var(--s-3)}
.task__thumb{width:72px; aspect-ratio:16/9; border-radius:6px; overflow:hidden; flex:none;
  background:var(--surface-2); border:1px solid var(--border); margin-top:2px}
.task__thumb img{width:100%; height:100%; object-fit:cover; display:block}
.task__thumb:empty{display:none}
.task__body{flex:1; min-width:0}
.task__body .title{font-size:13.5px; line-height:1.35}
.task__label{font:500 11.5px/1.4 var(--font-mono); color:var(--text-muted); margin-top:3px;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.task__status{font:500 12px/1.4 var(--font-mono); color:var(--text-muted);
  font-variant-numeric:tabular-nums}
.task .btn--success{margin-top:var(--s-3)}

/* Прогресс */
.progress{
  position:relative; height:6px; border-radius:var(--r-full);
  background:var(--surface-3); overflow:hidden; margin:var(--s-3) 0 var(--s-2);
}
.progress__fill{
  position:relative; height:100%; width:var(--value,0%);
  border-radius:inherit; background:var(--bar);
  transition:width var(--dur) var(--ease), background var(--dur) var(--ease);
}
.progress__fill::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);
  transform:translateX(-100%); animation:shimmer 1.4s var(--ease) infinite;
}
@keyframes shimmer{to{transform:translateX(100%)}}
.progress[data-state="finished"] .progress__fill{background:var(--bar)}
.progress[data-state="error"] .progress__fill,
.progress[data-state="cancelled"] .progress__fill{background:var(--danger)}
.progress[data-state="finished"] .progress__fill::after,
.progress[data-state="error"] .progress__fill::after,
.progress[data-state="cancelled"] .progress__fill::after{animation:none}
.progress[data-state="indeterminate"] .progress__fill{
  width:30%; transition:none; animation:indeterminate 1.2s var(--ease) infinite;
}
.progress[data-state="indeterminate"] .progress__fill::after{animation:none}
@keyframes indeterminate{0%{transform:translateX(-120%)}100%{transform:translateX(400%)}}

/* Пустое состояние */
.empty{text-align:center; padding:var(--s-10) var(--s-4); color:var(--text-muted); font-size:13px}
.empty__icon{
  width:40px; height:40px; border-radius:12px; background:var(--surface-2);
  border:1px solid var(--border); color:var(--text-muted);
  display:grid; place-items:center; margin:0 auto var(--s-3); font-size:18px;
}
.empty strong{display:block; color:var(--text-secondary); font-weight:600; margin-bottom:2px}
.empty--box{border:1px dashed var(--border-strong); border-radius:var(--r-lg); padding:var(--s-8) var(--s-4)}

/* История */
.hist-card{padding:6px}
.hist{display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:var(--s-2);
  padding:9px 10px; border-radius:var(--r-sm)}
.hist + .hist{border-top:1px solid var(--border)}
.hist:hover{background:var(--surface-2)}
.hist:hover + .hist{border-top-color:transparent}
.hist__main{min-width:0}
.hist__name{display:block; color:var(--text); font-size:13px; font-weight:500;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.hist__meta{display:flex; flex-wrap:wrap; gap:0 8px; margin-top:2px;
  color:var(--text-muted); font:500 11.5px/1.5 var(--font-mono); font-variant-numeric:tabular-nums}
.hist__url{color:var(--text-muted); text-decoration:none; max-width:100%;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.hist__url:hover{color:var(--accent-ink); text-decoration:underline}
.hist__meta > *{min-width:0}
.hist__meta > * + *::before{content:"·"; margin-right:8px; color:var(--border-strong)}

/* Баннер ошибки */
.banner{
  display:flex; gap:var(--s-3); align-items:flex-start;
  background:var(--danger-soft); color:var(--danger);
  border:1px solid color-mix(in srgb, var(--danger) 30%, transparent);
  border-radius:var(--r-md); padding:var(--s-3) var(--s-4);
  font-size:13.5px; margin-top:var(--s-3); max-width:860px;
}
.note{
  background:var(--surface-1); border:1px solid var(--border);
  border-radius:var(--r-md); padding:var(--s-4);
  color:var(--text-muted); font-size:13px; display:flex; gap:var(--s-3); line-height:1.6;
}
.note strong{color:var(--text-secondary)}
.note em{font-style:normal; font-weight:600; color:var(--text-secondary)}

/* ============================== Приватность ============================== */
/* Полоса во всю ширину, текст от левого края. «Не храним» и «Храним» —
   отдельными строками с меткой слева. */
.privacy{margin-top:var(--s-16); border-top:1px solid var(--border); background:var(--surface-1)}
.privacy__in{width:100%; padding:var(--s-8) var(--gutter); display:flex; flex-direction:column; gap:var(--s-4)}
.privacy__title{display:flex; align-items:center; gap:10px; color:var(--text); font-size:15px; font-weight:600}
.privacy__title svg{color:var(--accent-ink)}
.privacy__row{display:grid; grid-template-columns:110px minmax(0,1fr); gap:var(--s-4);
  align-items:baseline; color:var(--text-muted); font-size:13.5px; line-height:1.65}
.privacy__row p{margin:0; max-width:none}
.privacy__tag{font:600 11px/1.2 var(--font-mono); letter-spacing:.06em; text-transform:uppercase;
  padding:5px 8px; border-radius:var(--r-xs); text-align:center; white-space:nowrap}
.privacy__tag--no{background:var(--accent-soft); color:var(--accent-ink)}
.privacy__tag--yes{background:var(--surface-3); color:var(--text-secondary)}
.privacy a{color:var(--text-secondary)}
.privacy a:hover{color:var(--accent-ink)}

/* ============================== Подвал ============================== */
.footer{border-top:1px solid var(--border); color:var(--text-muted); font-size:12.5px;
  margin-top:var(--s-12)}
.privacy + .footer{margin-top:0}
.footer__in{width:100%; padding:var(--s-6) var(--gutter) var(--s-8);
  display:flex; flex-direction:column; gap:8px; text-align:left}
.footer p{margin:0}
.footer a{color:var(--text-secondary); text-decoration:none; border-bottom:1px solid var(--border-strong)}
.footer a:hover{color:var(--text); border-bottom-color:currentColor}
.footer__donate{color:var(--text-muted)}
.footer__donate a{color:var(--accent-ink); font-weight:600; border-bottom-color:transparent}
.footer__donate a:hover{color:var(--accent-ink); border-bottom-color:currentColor}

/* ============================== Тосты ============================== */
.toasts{position:fixed; right:20px; bottom:20px; z-index:100; display:flex; flex-direction:column; gap:var(--s-2)}
.toast{
  display:flex; align-items:center; gap:10px;
  background:var(--text); color:var(--bg);
  border-radius:var(--r-md); box-shadow:var(--shadow-lg); padding:12px 16px;
  font-size:13px; font-weight:500; min-width:240px; max-width:360px;
  animation:toast-in var(--dur) var(--ease) both; transition:opacity var(--dur);
}
.toast::before{content:""; width:8px; height:8px; border-radius:50%; flex:none; background:var(--text-muted)}
.toast--error::before{background:var(--danger)}
.toast--success::before{background:var(--bar)}
@keyframes toast-in{from{opacity:0; transform:translateY(8px)} to{opacity:1; transform:none}}

/* Скелетон */
.skel{background:var(--surface-2); border-radius:var(--r-sm); position:relative; overflow:hidden}
.skel::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--text) 6%,transparent),transparent);
  animation:shimmer 1.3s infinite;
}

.hidden{display:none !important}
.sr{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0}

/* ============================== Статистика ============================== */
.tiles{display:grid; grid-template-columns:repeat(auto-fit, minmax(170px, 1fr)); gap:var(--s-3)}
.tile{
  background:var(--surface-1); border:1px solid var(--border);
  border-radius:var(--r-lg); padding:var(--s-5);
  transition:border-color var(--dur) var(--ease);
}
.tile:hover{border-color:var(--border-strong)}
.tile__label{font:500 11px/1.2 var(--font-mono); letter-spacing:.08em; text-transform:uppercase;
  color:var(--text-muted)}
.tile__value{color:var(--text); font-size:30px; font-weight:700; line-height:1.1; letter-spacing:-.03em;
  margin-top:var(--s-3); font-variant-numeric:tabular-nums}
.tile__sub{color:var(--text-muted); font-size:12px; margin-top:4px; font-variant-numeric:tabular-nums}

.chart{display:flex; align-items:flex-end; gap:3px; height:160px; padding-bottom:2px}
.bar{flex:1; min-width:0; border-radius:3px 3px 0 0; background:var(--bar);
  transition:height var(--dur) var(--ease), opacity var(--dur-fast) var(--ease)}
.bar:hover{opacity:.75}
.bar--empty{background:var(--surface-3)}
.chart__axis{display:flex; justify-content:space-between; color:var(--text-muted);
  font:500 11.5px var(--font-mono); margin-top:var(--s-3)}

.feed-item{
  display:grid; grid-template-columns:96px 1fr auto; gap:var(--s-4); align-items:center;
  background:var(--surface-1); border:1px solid var(--border);
  border-radius:var(--r-md); padding:var(--s-3);
  transition:border-color var(--dur) var(--ease);
}
.feed-item:hover{border-color:var(--border-strong)}
.feed-thumb{width:96px; aspect-ratio:16/9; border-radius:var(--r-sm); overflow:hidden;
  background:var(--surface-2); display:grid; place-items:center; color:var(--text-muted)}
.feed-thumb img{width:100%; height:100%; object-fit:cover; display:block}
.feed-body{min-width:0}
.feed-title{display:block; color:var(--text); font-weight:550; font-size:14px; text-decoration:none;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.feed-title:hover{color:var(--accent-ink); text-decoration:underline}
.feed-count{text-align:center; color:var(--text-muted); font-size:11px; padding-right:var(--s-2); line-height:1.2}
.feed-count strong{display:block; color:var(--text); font-size:17px; font-weight:700; font-variant-numeric:tabular-nums}
button.feed-count{background:transparent; border:0; cursor:pointer; font:inherit;
  border-radius:var(--r-sm); padding:4px 8px; transition:background var(--dur-fast) var(--ease)}
button.feed-count:hover{background:var(--surface-2)}
button.feed-count:focus-visible{outline:none; box-shadow:var(--shadow-focus)}
button.feed-count[aria-expanded="true"]{background:var(--accent-soft)}
.feed-times{grid-column:1 / -1; display:flex; flex-wrap:wrap; gap:6px;
  padding:var(--s-3) 0 2px; border-top:1px solid var(--border); margin-top:var(--s-3)}
.feed-time{font:500 12px/1 var(--font-mono); font-variant-numeric:tabular-nums;
  color:var(--text-secondary); background:var(--surface-2); padding:5px 8px; border-radius:var(--r-xs)}
.feed-time--note{background:transparent; color:var(--text-muted); font-family:var(--font-sans)}
.meta__time{font-family:var(--font-mono); font-variant-numeric:tabular-nums; color:var(--text-secondary)}

/* ============================== Адаптив ============================== */
@media (max-width:1100px){
  .layout{grid-template-columns:minmax(0,1fr)}
  .layout__side{position:static; display:grid; grid-template-columns:repeat(2, minmax(0,1fr));
    gap:var(--s-6); align-items:start}
}
@media (max-width:860px){
  .layout__side{grid-template-columns:minmax(0,1fr)}
  .work__head{grid-template-columns:200px minmax(0,1fr)}
  .facts{grid-template-columns:repeat(2, minmax(0,1fr))}
  .fact:nth-child(3){border-left:0}
  .fact:nth-child(n+3){border-top:1px solid var(--border)}
}
@media (max-width:640px){
  .topbar__in{height:56px; gap:var(--s-2)}
  .brand__sub{display:none}
  .topnav a{padding:8px 7px}
  .topnav a span, .topnav__sep{display:none}
  .topnav a.topnav__keep span{display:inline}
  .topnav__donate{margin-left:2px}
  .icon-btn{width:32px}

  .hero{padding:var(--s-8) 0 var(--s-5)}
  .hero h1{font-size:28px}
  .stage__lead{font-size:15px}
  .urlbar{flex-wrap:wrap; padding:8px}
  .urlbar__icon{display:none}
  .urlbar__input{flex-basis:100%; height:44px; padding:0 8px}
  .paste-btn{height:48px; flex:1; justify-content:center}
  .urlbar .btn--lg{flex:2}

  .intro{grid-template-columns:minmax(0,1fr)}
  .step{min-height:0}
  .step h3{margin-top:4px}

  .work__head{grid-template-columns:minmax(0,1fr); padding:var(--s-4)}
  .work__body{padding:var(--s-4)}
  .work__foot{flex-direction:column; align-items:stretch; padding:var(--s-4)}
  .work__foot .btn{min-width:0; width:100%}
  .grid-3, .grid-2{grid-template-columns:minmax(0,1fr)}
  .pp-opts{grid-template-columns:minmax(0,1fr)}
  .seg--wide button{font-size:13px; padding:10px 6px}
  .seg--wide button svg{display:none}
  .clip .input{flex:1; width:auto; min-width:0}

  .privacy__row{grid-template-columns:minmax(0,1fr); gap:6px}
  .privacy__tag{justify-self:start}

  .toasts{left:var(--s-4); right:var(--s-4); bottom:calc(var(--s-4) + env(safe-area-inset-bottom))}
  .toast{max-width:none}

  .tiles{grid-template-columns:repeat(2, 1fr)}
  .tile__value{font-size:22px}
  .feed-item{grid-template-columns:72px 1fr auto; gap:var(--s-3)}
  .feed-thumb{width:72px}
  .section__head{flex-wrap:wrap}
  .section__head .seg{overflow-x:auto; scrollbar-width:none}
  .section__head .seg::-webkit-scrollbar{display:none}
}
@media (max-width:380px){
  .topnav a{padding:8px 5px}
  .brand{font-size:14px; gap:8px}
  .brand__mark{width:26px; height:26px}
}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:.01ms !important; transition-duration:.01ms !important}
  .progress__fill::after,.skel::after{animation:none}
}
