/* =============================================================================
   Kompresja wideo - the preview, the trim bar with its thumbnail strip, the
   file facts, the size estimate, the progress bar and the finished film.
   ============================================================================= */

/* ---- preview ---- */
.kv-view{gap:12px;width:100%}
.kv-screen{display:flex;justify-content:center;width:100%}
.kv-video,.kv-frame{display:block;max-width:100%;max-height:min(56vh,540px);border-radius:var(--r-xs);background:#000}
.kv-video{cursor:pointer}

/* ---- trim bar: thumbnails, the kept part between two olive handles ---- */
.kv-trim{
  --a:0%;--b:100%;--t:0%;
  position:relative;width:calc(100% - 32px);height:56px;margin:6px 16px 0;
  touch-action:none;-webkit-user-select:none;user-select:none;cursor:pointer;
}
.kv-trim.is-off{opacity:.4;pointer-events:none}
.kv-trim__strip{position:absolute;inset:0;width:100%;height:100%;border-radius:4px;background:var(--ink-3)}
.kv-trim__shade{position:absolute;top:0;bottom:0;background:rgba(10,10,10,.74);pointer-events:none}
.kv-trim__shade--in{left:0;width:var(--a);border-radius:4px 0 0 4px}
.kv-trim__shade--out{left:var(--b);right:0;border-radius:0 4px 4px 0}
.kv-trim__sel{
  position:absolute;top:0;bottom:0;left:var(--a);width:calc(var(--b) - var(--a));pointer-events:none;
  border-top:2px solid var(--olive);border-bottom:2px solid var(--olive);
}
.kv-trim__head{
  position:absolute;top:-5px;bottom:-5px;left:var(--t);width:2px;margin-left:-1px;border-radius:2px;pointer-events:none;
  background:var(--bone);box-shadow:0 0 0 1px rgba(10,10,10,.55);
}
.kv-trim__h{position:absolute;top:0;bottom:0;width:16px;background:var(--olive);cursor:ew-resize;touch-action:none}
.kv-trim__h--in{left:var(--a);transform:translateX(-100%);border-radius:6px 0 0 6px}
.kv-trim__h--out{left:var(--b);border-radius:0 6px 6px 0}
/* A wider hit area than the handle itself, for fingers. */
.kv-trim__h::before{content:"";position:absolute;inset:-8px -12px}
.kv-trim__h::after{content:"";position:absolute;top:50%;left:50%;width:2px;height:18px;margin:-9px 0 0 -1px;border-radius:2px;background:var(--ink)}
.kv-trim__h:focus-visible{outline:2px solid var(--bone);outline-offset:2px;z-index:1}
.kv-trim.is-drag,.kv-trim.is-drag .kv-trim__h{cursor:grabbing}

.kv-trimInfo{
  display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:4px 10px;width:100%;
  font-size:12px;letter-spacing:.06em;color:var(--fg);font-variant-numeric:tabular-nums;
}
.kv-trimInfo__to{color:var(--fg-3)}
.kv-trimInfo__len{margin-left:6px;padding:2px 9px;border-radius:999px;background:rgba(204,211,118,.14);color:var(--olive)}

/* ---- player row ---- */
.kv-player{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 12px;width:100%}
.kv-play{
  display:grid;place-items:center;width:44px;height:44px;flex:none;border-radius:50%;
  border:1px solid var(--olive);background:var(--olive);color:var(--ink);
  transition:background .26s var(--ease),border-color .26s var(--ease),transform 160ms var(--ease-out);
}
.kv-play:hover{background:var(--bone);border-color:var(--bone)}
.kv-play:active{transform:scale(.94)}
.kv-play[disabled]{opacity:.45;cursor:not-allowed;transform:none}
.kv-play svg{width:18px;height:18px;fill:currentColor}
.kv-play__off,.kv-play.is-playing .kv-play__on{display:none}
.kv-play.is-playing .kv-play__off{display:block}
.kv-time{min-width:7ch;font-size:12px;letter-spacing:.06em;color:var(--fg-2);font-variant-numeric:tabular-nums}
.kv-player .gen__action{min-height:40px}
#kvRoot .gen__action[disabled]{opacity:.4;cursor:not-allowed;background:transparent;color:var(--fg);border-color:var(--ghost)}
.kv-hint{text-align:center}

/* ---- panel: the file in numbers, the estimate ---- */
.kv-file .label{display:block;margin-bottom:10px}
.kv-facts{border-top:1px solid var(--rule-d)}
.kv-facts > div{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:9px 0;border-bottom:1px solid var(--rule-d)}
.kv-facts dt{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-3)}
.kv-facts dd{font-size:14px;color:var(--fg);text-align:right;font-variant-numeric:tabular-nums}
.kv-note{margin-top:10px;font-size:13px;line-height:1.5;color:var(--fg-2)}
.kv-est{display:flex;flex-direction:column;gap:6px;padding-top:18px;border-top:1px solid var(--rule-d)}
.kv-est__val{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}
.kv-est__val b{font-size:30px;line-height:1.1;font-weight:900;font-style:italic;letter-spacing:-.03em;color:var(--fg)}
.kv-est__val b small{font-size:inherit;font-weight:300}
.kv-est__val span{font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:.06em;color:var(--olive)}
.kv-est__line{font-size:11px;letter-spacing:.08em;color:var(--fg-3)}
#kvRoot .pill:has(input:disabled){cursor:not-allowed}
#kvRoot .pill:has(input:disabled) > span{opacity:.4}
#kvRoot .pill:has(input:disabled):hover > span{border-color:var(--rule-d);color:var(--fg-2)}

/* ---- working: the bar, and everything else on hold ---- */
.kv-progress{display:flex;align-items:center;gap:14px}
.kv-bar{
  -webkit-appearance:none;appearance:none;flex:1;display:block;height:4px;border:0;border-radius:4px;
  background:rgba(250,250,247,.12);color:var(--olive);overflow:hidden;
}
.kv-bar::-webkit-progress-bar{background:rgba(250,250,247,.12);border-radius:4px}
.kv-bar::-webkit-progress-value{background:var(--olive);border-radius:4px}
.kv-bar::-moz-progress-bar{background:var(--olive);border-radius:4px}
.kv-pct{min-width:4ch;font-size:12px;letter-spacing:.04em;color:var(--olive);text-align:right;font-variant-numeric:tabular-nums}
#kvRoot.is-busy .kv-trim{opacity:.5;pointer-events:none}

/* ---- the finished film, and what it weighs now ---- */
.kv-result{display:flex;flex-wrap:wrap;align-items:center;gap:22px 40px}
.kv-resVideo{display:block;max-width:min(100%,720px);max-height:min(56vh,480px);border-radius:var(--r-sm);background:#000}
.kv-sum{flex:1 1 260px;display:flex;flex-direction:column;gap:12px}
.kv-sum__sizes{
  display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 16px;
  font-size:clamp(30px,4.2vw,54px);line-height:1;letter-spacing:-.04em;font-weight:300;font-style:italic;color:var(--fg-2);
}
.kv-sum__sizes b{font-weight:900;color:var(--fg);word-spacing:.14em}
.kv-sum__to{display:inline-flex;align-items:baseline;gap:16px}
.kv-sum__arrow{font-style:normal;font-weight:300;color:var(--olive)}
.kv-sum__line{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-2)}

@media (max-width:560px){
  .kv-video,.kv-frame{max-height:52vh}
  .kv-trim{height:52px}
  .kv-sum__sizes{font-size:30px;gap:4px 12px}
  .kv-sum__to{gap:12px}
  .kv-player .gen__action{padding:8px 11px}
}
@media (prefers-reduced-motion:reduce){.kv-play{transition:none}}

@media (max-width:560px){.kv-resVideo{margin:0 auto}}
