:root{
  --accent:#de1957;
  --accent-rgb:222,25,87;
  --ui-bg:#ffffff;
  --ui-surface:#f5f5f5;
  --ui-row:#f5f5f5;
  --ui-pill:#f5f5f5;
  --ui-line:#d6d6d6;
  --ui-text:#1a1a1a;
  --ui-muted:#7a7a7a;
  --ui-black:#141414;
  --ui-active:#ebebeb;
  --radius-pill:16px;
  --bar-island-width-left:316px;
  --center-island-width:min(280px, calc(100vw - 32px));
  --right-sliders-width:min(300px, calc(100vw - 24px));
}

*{ box-sizing:border-box; }
html,body{ height:100%; margin:0; }

body{
  margin:0;
  min-height:100%;
  font-family: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  font-size:14px;
  font-weight:500;
  background:#fff;
  color:var(--ui-text);
  overflow:hidden;
  -webkit-font-smoothing:antialiased;
  letter-spacing:0;
}

button,
input,
select{
  font:inherit;
}

.u-visuallyHidden{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

/* Оверлей: дети фиксируются по углам и по центру */
.bottomBar{
  position:fixed;
  inset:0;
  z-index:20;
  pointer-events:none;
}

.bottomBar__col{
  position:fixed;
  bottom:max(14px, env(safe-area-inset-bottom));
  display:flex;
  flex-direction:column;
  gap:8px;
  pointer-events:auto;
  padding:10px;
  border-radius:16px;
  background:var(--ui-surface);
  border:1px solid var(--ui-line);
  box-shadow:0 1px 0 rgba(255,255,255,.75) inset;
}

.bottomBar__col--left{
  left:max(12px, env(safe-area-inset-left));
  width:var(--bar-island-width-left);
  max-width:calc(100vw - 24px);
}

.bottomBar__col--center{
  left:50%;
  transform:translateX(-50%);
  width:var(--center-island-width);
}

.bottomBar__col--center .playbackRow__btn{
  padding:10px 4px;
}

.bottomBar__col--right{
  right:max(12px, env(safe-area-inset-right));
  width:var(--right-sliders-width);
}

/* Без общей обёртки у колонок — только внутренние островки (.sizeModeTab, .playbackRow, слайдеры) */
.bottomBar__col--left,
.bottomBar__col--center,
.bottomBar__col--right{
  padding:0;
  background:transparent;
  border:none;
  box-shadow:none;
  border-radius:0;
}

/* Режим размера 2×2 — без общей серой подложки */
.sizeModeTab{
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-template-rows:auto auto;
  gap:4px;
  padding:0;
  background:transparent;
  border-radius:0;
}

.sizeModeTab__btn{
  border-radius:16px;
}

/* Активный режим — чуть темнее плашки (#ebebeb), без лишней обводки */
.sizeModeTab .playbackRow__btn.is-active{
  background:var(--ui-active);
  box-shadow:none;
}

/* Слайдер: одна капсула; заливка ::before на всю длину; range и подпись поверх */
.trackSlider{
  --fill-pct:50%;
  position:relative;
  height:44px;
  border-radius:var(--radius-pill);
  background:var(--ui-row);
  overflow:hidden;
}

.trackSlider::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:var(--fill-pct);
  max-width:100%;
  background:rgba(0,0,0,.1);
  border-radius:inherit;
  z-index:0;
  pointer-events:none;
}

.trackSlider__label{
  position:absolute;
  left:14px;
  top:50%;
  transform:translateY(-50%);
  z-index:3;
  font-size:14px;
  font-weight:500;
  color:var(--ui-text);
  pointer-events:none;
  user-select:none;
}

.trackSlider__input{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  margin:0;
  padding:0;
  z-index:2;
  -webkit-appearance:none;
  appearance:none;
  background:transparent;
  cursor:pointer;
}

.trackSlider__input:focus{
  outline:none;
}

.trackSlider__input:active{
  cursor:grabbing;
}

.trackSlider__input::-webkit-slider-runnable-track{
  height:44px;
  background:transparent;
}

.trackSlider__input::-webkit-slider-thumb{
  -webkit-appearance:none;
  appearance:none;
  width:3px;
  height:22px;
  margin-top:11px;
  border-radius:16px;
  background:#2a2a2a;
  border:none;
  box-shadow:none;
}

.trackSlider__input::-moz-range-track{
  height:44px;
  background:transparent;
}

.trackSlider__input::-moz-range-thumb{
  width:3px;
  height:22px;
  border:none;
  border-radius:16px;
  background:#2a2a2a;
}

.playbackRow{
  display:flex;
  gap:5px;
  padding:5px;
  background:var(--ui-row);
  border:none;
  border-radius:var(--radius-pill);
}

/* Центр: режимы MP4 без общей серой подложки */
.playbackRow--main{
  background:transparent;
  padding:0;
}

.playbackRow__btn{
  flex:1;
  min-width:0;
  padding:10px 6px;
  border:none;
  border-radius:var(--radius-pill);
  font-size:14px;
  font-weight:500;
  color:var(--ui-muted);
  background:transparent;
  cursor:pointer;
  transition:background .15s ease, color .15s ease;
}

.playbackRow__btn.is-active{
  background:var(--ui-active);
  color:var(--ui-text);
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.06);
}

.playbackRow__btn:hover:not(.is-active){
  color:var(--ui-text);
  background:rgba(0,0,0,.035);
}

.exportRow{
  display:flex;
  gap:8px;
  align-items:stretch;
}

.exportPill{
  flex:1;
  min-width:0;
  height:42px;
  padding:0 10px;
  border:none;
  border-radius:var(--radius-pill);
  background:var(--ui-black);
  color:#fff;
  font-size:14px;
  font-weight:500;
  cursor:pointer;
  transition:opacity .15s ease, transform .1s ease, background .15s ease;
}

.exportPill:hover{ opacity:.92; }
.exportPill:active{ transform:translateY(1px); }
.exportPill:disabled{
  opacity:.45;
  cursor:not-allowed;
}

.stage{
  position:fixed;
  inset:0;
  width:100%;
  height:100%;
  min-height:100dvh;
}

canvas{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  cursor:crosshair;
  background:#ffffff;
}

@media (max-width:640px){
  :root{
    --bar-island-width-left:min(316px, calc(100vw - 16px));
    --center-island-width:min(260px, calc(100vw - 16px));
    --right-sliders-width:min(260px, calc(100vw - 16px));
  }
}
