/* ============================================================
   track.css — track card, URL/search fields, answers grid
   (dark blue theme)
   ============================================================ */

.track{
  background:var(--card);
  border:1.5px solid var(--line);
  border-radius:var(--radius);
  margin-bottom:18px;
  overflow:hidden;
}

/* ---------- head ---------- */
.track-head{
  display:flex;align-items:center;gap:12px;
  padding:12px 16px;
  background:linear-gradient(90deg,#182444 0%,var(--card) 100%);
  border-bottom:1.5px solid var(--line);
}
.track-num{
  font-family:var(--font-display);font-weight:700;font-size:13px;
  background:var(--accent);color:var(--accent-ink);
  min-width:40px;height:28px;border-radius:8px;
  display:flex;align-items:center;justify-content:center;
  letter-spacing:.03em;
}
.track-title{
  flex:1;font-size:14px;font-weight:500;color:var(--text-soft);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;
}
.track-title.has-title{color:var(--text)}

.icon-btn{
  background:transparent;border:1.5px solid var(--line);border-radius:8px;
  width:30px;height:30px;font-size:14px;color:var(--text-soft);line-height:1;
  flex-shrink:0;
}
.icon-btn:hover{border-color:var(--text-soft);color:var(--text)}
.icon-btn.danger:hover{border-color:var(--warn);color:var(--warn)}
.icon-btn:disabled{opacity:.3;cursor:default}
.icon-btn:disabled:hover{border-color:var(--line);color:var(--text-soft)}

/* ---------- body ---------- */
.track-body{padding:16px;display:grid;gap:16px}
@media (min-width:640px){
  .track-body{grid-template-columns:150px 1fr}
}

.thumb{
  width:150px;height:84px;border-radius:10px;
  background:var(--chip);
  display:flex;align-items:center;justify-content:center;
  color:var(--text-soft);font-size:24px;
  overflow:hidden;flex-shrink:0;
  border:1.5px solid var(--line);
  position:relative;
  padding:0;
}
.thumb img{width:100%;height:100%;object-fit:cover;display:block}
button.thumb{cursor:pointer}
button.thumb .play-badge{
  position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;
  background:rgba(8,14,26,.35);
  opacity:0;transition:opacity .12s;
}
button.thumb:hover .play-badge,
button.thumb:focus-visible .play-badge{opacity:1}
.play-badge span{
  width:34px;height:34px;border-radius:50%;
  background:var(--accent);color:var(--accent-ink);
  display:flex;align-items:center;justify-content:center;
  font-size:14px;padding-left:3px;
}

/* ---------- preview player ---------- */
.preview{
  grid-column:1 / -1;
  margin:0 -16px -16px;
  border-top:1.5px solid var(--line);
  padding:14px 16px 16px;
  background:var(--surface);
}
.preview-head{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:10px;
}
.preview-head span{
  font-size:11px;font-weight:600;letter-spacing:.09em;
  text-transform:uppercase;color:var(--text-soft);
}
.preview-frame{
  position:relative;width:100%;max-width:560px;
  aspect-ratio:16/9;
  border-radius:10px;overflow:hidden;
  border:1.5px solid var(--line);
  background:#000;
}
.preview-frame iframe{
  position:absolute;inset:0;width:100%;height:100%;border:0;
}

/* ---------- fields ---------- */
.fields{display:grid;gap:14px;min-width:0}
.field label{
  display:block;font-size:11px;font-weight:600;letter-spacing:.09em;
  text-transform:uppercase;color:var(--text-soft);margin-bottom:6px;
}
.row{display:flex;gap:8px}

.text-input{
  flex:1;min-width:0;
  border:1.5px solid var(--line);border-radius:10px;
  padding:10px 12px;font-size:14px;color:var(--text);
  background:var(--surface);
  transition:border-color .12s;
}
.text-input::placeholder{color:var(--text-soft)}
.text-input:focus{border-color:var(--accent);outline:none}
.text-input.valid{border-color:var(--ok)}
.text-input.invalid{border-color:var(--warn)}

.hint{font-size:12.5px;margin-top:5px;min-height:16px}
.hint.ok{color:var(--ok)}
.hint.err{color:var(--warn)}
.hint.muted{color:var(--text-soft)}

.btn-small{
  border:1.5px solid var(--line);background:var(--surface);color:var(--text);
  border-radius:10px;padding:9px 14px;font-size:13.5px;font-weight:600;
  white-space:nowrap;flex-shrink:0;
}
.btn-small:hover{border-color:var(--text-soft)}

/* ---------- answers: the consistent grid ----------
   Every answer row shares the exact same column template:
   index (26px) | input (1fr) | remove button (36px)
   The remove slot stays reserved (visibility:hidden) when
   only one answer exists, so nothing ever shifts.        */
.answers{display:grid;gap:8px}
.answer-row{
  display:grid;
  grid-template-columns:26px 1fr 36px;
  gap:8px;align-items:center;
}
.answer-idx{
  font-size:12px;font-weight:600;color:var(--text-soft);
  text-align:right;font-variant-numeric:tabular-nums;
}
.answer-row .text-input{width:100%}
.answer-remove{
  width:36px;height:40px;
  border:1.5px solid var(--line);border-radius:10px;background:var(--surface);
  color:var(--text-soft);font-size:15px;line-height:1;
}
.answer-remove:hover{border-color:var(--warn);color:var(--warn)}
.answer-remove.hidden-slot{visibility:hidden}

.add-answer{
  grid-column:2 / 3;
  justify-self:start;
  border:1.5px dashed var(--line);background:transparent;color:var(--text-soft);
  border-radius:10px;padding:8px 14px;font-size:13.5px;font-weight:600;
  display:inline-flex;align-items:center;gap:7px;
}
.add-answer:hover{border-color:var(--accent);color:var(--accent)}
.add-answer .plus{
  display:inline-flex;align-items:center;justify-content:center;
  width:18px;height:18px;border-radius:50%;
  background:var(--accent);color:var(--accent-ink);font-size:13px;font-weight:700;
}

/* ---------- search results dropdown ---------- */
.results{
  border:1.5px solid var(--line);border-radius:10px;background:var(--surface);
  overflow:hidden;
}
.result{
  display:flex;gap:10px;align-items:center;width:100%;
  padding:8px 10px;border:none;background:var(--surface);text-align:left;font-size:13.5px;
  border-bottom:1px solid var(--line);color:var(--text);
}
.result:last-child{border-bottom:none}
.result:hover{background:var(--chip)}
.result img{width:64px;height:36px;object-fit:cover;border-radius:6px;flex-shrink:0}
.result span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
