/* /static/app.css */
:root{
  --bg: #0c0f14;
  --panel: #111726;
  --panel2:#0f1523;
  --text: #e9eef6;
  --muted:#9aa6b2;
  --stroke: rgba(255,255,255,.10);
  --stroke2: rgba(255,255,255,.16);
  --brand:#7cf7c7;
  --danger:#ff6b6b;
  --shadow: 0 10px 30px rgba(0,0,0,.45);

  --r12: 12px;
  --r16: 16px;
  --r20: 20px;
  --ui-radius: 14px;

  --topbar-h: 56px;
  --tabbar-h: 68px;

  --pad: 16px;
  --gap: 12px;

  --fs-1: 12px;
  --fs-2: 14px;
  --fs-3: 16px;
  --fs-4: 18px;
  --fs-5: 22px;
}

[data-theme="light"]{
  --bg: #f6f7fb;
  --panel:#ffffff;
  --panel2:#f1f3f8;
  --text:#0b1020;
  --muted:#5b6673;
  --stroke: rgba(0,0,0,.10);
  --stroke2: rgba(0,0,0,.14);
  --shadow: 0 10px 30px rgba(0,0,0,.12);
  --brand:#0b7d5c;
}

@font-face{
  font-family: "Roboto Mono";
  src: url("https://cdn-academy.akamaized.net/sscdn/cc/font/roboto/robotomono-regular.woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face{
  font-family: "Roboto Mono Bold";
  src: url("https://cdn-academy.akamaized.net/sscdn/cc/font/roboto/robotomono-bold.woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

*{ box-sizing:border-box; }
html,body{ height:100%; }
body{
  margin:0;
  background: var(--bg);
  color: var(--text);
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

a{ color: inherit; text-decoration:none; }

.app{
  height: 100%;
  display:flex;
  flex-direction: column;
  padding-top: env(safe-area-inset-top);
  padding-bottom: env(safe-area-inset-bottom);
}

.topbar{
  height: var(--topbar-h);
  display:flex;
  align-items:center;
  justify-content: space-between;
  padding: 0 var(--pad);
  background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,0));
  border-bottom: 1px solid var(--stroke);
}

.topbar__left{
  display:flex; align-items:center; gap:10px;
  min-width: 0;
}

.topbar__right{
  display:flex;
  align-items:center;
  gap: 10px;
}

/* Brand clicável (leva para Home) */
.brand{
  display:flex;
  align-items:center;
  gap:10px;
  min-width: 0;
  cursor:pointer;
  user-select:none;
  -webkit-tap-highlight-color: transparent;
}
.brand:active{ transform: scale(.99); }

.brand__logo{ width:22px; height:22px; }
.brand__name{
  font-weight: 750;
  letter-spacing: .2px;
  opacity: .95;
}
.brand-version{
  height: 28px;
  border-radius: 999px;
  border: 1px solid var(--stroke);
  background: rgba(255,255,255,.03);
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .2px;
  padding: 0 10px;
  cursor: pointer;
  transition: transform .08s ease, color .15s ease, border-color .15s ease, background .15s ease;
}
.brand-version:hover{
  color: var(--text);
  border-color: var(--stroke2);
}
.brand-version:active{ transform: scale(.98); }

.iconbtn{
  height: 40px; width: 40px;
  display:grid; place-items:center;
  border:1px solid var(--stroke);
  background: rgba(255,255,255,.03);
  color: var(--text);
  border-radius: var(--ui-radius);
  cursor:pointer;
  transition: transform .08s ease;
}
.iconbtn:active{ transform: scale(.98); }

.iconbtn--avatar{
  overflow:hidden;
  padding:0;
}
.iconbtn--avatar img{
  width:100%;
  height:100%;
  object-fit: cover;
  display:block;
}

/* remove highlight on tap for buttons/links */
.iconbtn,
.btn,
.tabbar__item,
.song-card,
.genre-card{
  -webkit-tap-highlight-color: transparent;
}

/* Botão ícone (mesmo padrão do "Listas" no topo do leitor) */
.btnicon{
  height: 40px;
  width: 40px;
  padding: 0;
  display: grid;
  place-items: center;
  border-radius: var(--ui-radius);
}

.main{
  flex: 1;
  overflow:auto;
  padding: var(--pad);
  padding-bottom: calc(var(--tabbar-h) + var(--pad));
}

.tabbar{
  height: var(--tabbar-h);
  position: sticky;
  bottom: 0;
  display:flex;
  justify-content: space-around;
  gap: 4px;
  padding: 10px 10px calc(10px + env(safe-area-inset-bottom));
  background: rgba(10,12,18,.75);
  backdrop-filter: blur(10px);
  border-top: 1px solid var(--stroke);
}
[data-theme="light"] .tabbar{ background: rgba(255,255,255,.75); }

.tabbar__item{
  width: 33.33%;
  display:flex;
  flex-direction: column;
  align-items:center;
  justify-content:center;
  gap: 4px;
  border-radius: var(--ui-radius);
  padding: 8px 6px;
  color: var(--muted);
}
.tabbar__item svg{ opacity:.95; }
.tabbar__item span{ font-size: 12px; }
.tabbar__item.is-active{
  color: var(--text);
  background: rgba(255,255,255,.06);
  border: 1px solid var(--stroke);
}

.card{
  background: var(--panel);
  border: 1px solid var(--stroke);
  border-radius: var(--r16);
  box-shadow: var(--shadow);
}
.card--flat{
  box-shadow:none;
  background: var(--panel2);
}

.section{ margin-bottom: 18px; }
.section__title{
  display:flex;
  align-items: baseline;
  justify-content: space-between;
  margin: 0 0 10px 0;
}
.section__title h2{
  margin:0;
  font-size: var(--fs-5);
  letter-spacing:.2px;
}
.section__title small{
  color: var(--muted);
  font-size: var(--fs-2);
}

.hint-ok{
  color: #2ecc71;
}

.hint-err{
  color: #e74c3c;
}

.searchbar{
  display:flex;
  gap: 10px;
  align-items:center;
  padding: 12px 12px;
  border-radius: var(--r16);
  border: 1px solid var(--stroke);
  background: rgba(255,255,255,.04);
}
.searchbar input{
  width:100%;
  border:none;
  outline:none;
  background: transparent;
  color: var(--text);
  font-size: 16px;
}
.searchbar input::placeholder{ color: var(--muted); }

.btn{
  border:none;
  background: var(--brand);
  color: #07110b;
  font-weight: 700;
  padding: 12px 14px;
  border-radius: var(--ui-radius);
  cursor:pointer;
  transition: transform .08s ease;
}
.btn:active{ transform: scale(.99); }
.btn--ghost{
  background: transparent;
  color: var(--text);
  border: 1px solid var(--stroke);
}
.btn--danger{
  background: var(--danger);
  color: #1a0606;
}

.grid{ display:grid; gap: var(--gap); }
.grid--genres{ grid-template-columns: 1fr 1fr; }
@media (max-width: 360px){ .grid--genres{ grid-template-columns: 1fr; } }
@media (min-width: 480px){ .grid--genres{ grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 860px){ .grid--genres{ grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1320px){ .grid--genres{ grid-template-columns: repeat(4, 1fr); } }

.home-hero{
  position: relative;
  overflow: hidden;
  padding: 18px;
  border-radius: 24px;
}
.home-hero__bg{
  position: absolute;
  inset: 0;
  background:
    radial-gradient(130% 120% at 0% 0%, rgba(124,247,199,.28) 0%, rgba(124,247,199,0) 55%),
    radial-gradient(120% 100% at 100% 100%, rgba(65,149,255,.20) 0%, rgba(65,149,255,0) 58%),
    linear-gradient(135deg, rgba(255,255,255,.05), rgba(255,255,255,.02));
  pointer-events: none;
}
[data-theme="light"] .home-hero__bg{
  background:
    radial-gradient(130% 120% at 0% 0%, rgba(11,125,92,.18) 0%, rgba(11,125,92,0) 55%),
    radial-gradient(120% 100% at 100% 100%, rgba(65,149,255,.12) 0%, rgba(65,149,255,0) 58%),
    linear-gradient(135deg, rgba(255,255,255,.8), rgba(255,255,255,.45));
}
.home-hero__content{
  position: relative;
  z-index: 1;
}
.home-hero__kicker{
  margin: 0 0 6px 0;
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 700;
}
.home-hero h1{
  margin: 0;
  font-size: clamp(24px, 3.4vw, 34px);
  line-height: 1.08;
}
.home-hero p{
  margin: 10px 0 0 0;
  color: var(--muted);
  max-width: 66ch;
}
.home-hero__support{
  line-height: 1.45;
}
.kitt-link{
  position: relative;
  display: inline-block;
  color: var(--text);
  font-weight: 700;
  text-decoration: none;
  padding-bottom: 3px;
}
.kitt-link::after{
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  border-radius: 999px;
  background: var(--brand);
  opacity: .38;
}
.kitt-link::before{
  content: "";
  position: absolute;
  left: -28%;
  bottom: -1px;
  width: 40%;
  height: 4px;
  border-radius: 999px;
  background: linear-gradient(90deg, transparent 0%, var(--brand) 50%, transparent 100%);
  filter: drop-shadow(0 0 5px var(--brand));
  animation: kitt-scan 1.5s linear infinite;
}
.kitt-link:hover::before{
  animation-duration: 1s;
}
@keyframes kitt-scan{
  0%{ transform: translateX(0%); opacity: .15; }
  12%{ opacity: 1; }
  50%{ transform: translateX(230%); opacity: .85; }
  62%{ opacity: .2; }
  100%{ transform: translateX(0%); opacity: .15; }
}
.home-hero__stats{
  margin-top: 12px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.home-quick-grid{
  display:grid;
  gap: 10px;
  grid-template-columns: 1fr;
}
@media (min-width: 860px){
  .home-quick-grid{ grid-template-columns: repeat(3, 1fr); }
}
.home-quick{
  padding: 12px;
  border-radius: var(--r16);
  border: 1px solid var(--stroke);
  background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
  box-shadow: none;
}
[data-theme="light"] .home-quick{
  background: linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.64));
}
.home-quick strong{
  display:block;
  font-size: 15px;
}
.home-quick span{
  display:block;
  margin-top: 6px;
  color: var(--muted);
  font-size: 13px;
}

.genre-card{
  display: block;
  width: 100%;
  position: relative;
  overflow: hidden;
  border-radius: var(--r16);
  border: 1px solid var(--stroke);
  background: var(--panel);
  min-height: 136px;
  aspect-ratio: 16 / 10;
  cursor:pointer;
}
.genre-card img{
  width:100%;
  height: 100%;
  object-fit: cover;
  object-position: center 42%;
  display:block;
  filter: saturate(1.05) contrast(1.05);
}
@media (min-width: 860px){
  .genre-card{
    min-height: 180px;
    aspect-ratio: 16 / 9;
  }
}
.genre-card__label{
  position:absolute;
  left: 12px; right: 12px; bottom: 12px;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(0,0,0,.38);
  border: 1px solid rgba(255,255,255,.14);
  backdrop-filter: blur(8px);
  display:flex;
  justify-content: space-between;
  align-items:center;
}
[data-theme="light"] .genre-card__label{
  background: rgba(255,255,255,.55);
  border: 1px solid rgba(0,0,0,.10);
}
.genre-card__label strong{ font-size: 14px; letter-spacing:.2px; }
.genre-card__label span{ color: rgba(255,255,255,.85); font-size: 12px; }
[data-theme="light"] .genre-card__label span{ color: rgba(0,0,0,.65); }

.list{ display:flex; flex-direction: column; gap: 10px; }

.song-card{
  display:flex;
  padding: 12px;
  border-radius: var(--r16);
  border: 1px solid var(--stroke);
  background: var(--panel);
}
.song-card__meta{ min-width:0; flex:1; }
.song-card__meta h3{
  margin:0;
  font-size: 16px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.song-card__meta p{
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 13px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.song-card__meta--with-actions{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 10px;
}
.song-card__actions{
  display:flex;
  align-items:center;
  gap: 8px;
  margin-left: auto;
  flex: 0 0 auto;
}
.badges{
  display:flex;
  gap: 8px;
  margin-top: 8px;
  flex-wrap: wrap;
}
.badge{
  font-size: 12px;
  color: var(--muted);
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid var(--stroke);
  background: rgba(255,255,255,.03);
}

.hero{
  border-radius: var(--r20);
  overflow:hidden;
  border: 1px solid var(--stroke);
  background: var(--panel);
  margin-bottom: 14px;
}
.hero img{
  width: 100%;
  height: 140px;
  object-fit: cover;
  display:block;
}
.hero--genre img{
  height: 160px;
  object-position: center 30%;
}
@media (min-width: 860px){
  .hero--genre img{
    height: 250px;
    object-position: center 28%;
  }
}
@media (min-width: 1320px){
  .hero--genre img{
    height: 300px;
    object-position: center 26%;
  }
}
.hero__inner{
  padding: 12px;
  display:flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 10px;
}
.hero__inner h1{ margin:0; font-size: 22px; }
.hero__inner p{ margin: 4px 0 0; color: var(--muted); font-size: 13px; }

.reader-head{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 12px;
}
.reader-head__title{ min-width:0; }
.reader-head__title h1{
  margin:0;
  font-size: 18px;
  white-space: normal;
  overflow-wrap: anywhere;
  line-height: 1.2;
}
.reader-head__title p{
  margin: 2px 0 0;
  color: var(--muted);
  font-size: 13px;
  white-space: normal;
  overflow-wrap: anywhere;
}

.reader-head__actions{
  display:flex;
  align-items:center;
  gap: 10px;
  flex-wrap: nowrap;
  flex: 0 0 auto;
}
.reader-top-key{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 8px;
  margin: 0 0 10px 0;
}
.reader-top-key__left{
  display:flex;
  flex-direction: column;
  align-items:flex-start;
  gap: 8px;
  min-width: 0;
}
.reader-top-key__row{
  display:flex;
  align-items:center;
  gap: 8px;
  min-width: 0;
}
.reader-top-key label{
  font-size: 12px;
  color: var(--muted);
  font-weight: 700;
}
.reader-top-key__actions{
  display:flex;
  align-items:center;
  gap: 10px;
  flex: 0 0 auto;
  flex-wrap: nowrap;
}
.reader-key-select{
  height: 36px;
  border-radius: var(--ui-radius);
  border: 1px solid var(--stroke);
  background: rgba(255,255,255,.04);
  color: var(--text);
  padding: 0 10px;
  min-width: 120px;
  outline: none;
}
[data-theme="light"] .reader-key-select{
  background: rgba(0,0,0,.03);
}
.reader-key-select option,
.dock-select option{
  background: var(--panel);
  color: var(--text);
}
  [data-theme="light"] .reader-key-select option,
  [data-theme="light"] .dock-select option{
  background: #ffffff;
  color: #0b1020;
}
@media (max-width: 760px){
  .reader-head{
    align-items: flex-start;
  }
  .reader-top-key{
    justify-content: space-between;
  }
  .reader-key-select{
    min-width: 120px;
  }
}

.reader{
  --reader-start-lead: 0px;
  padding: calc(14px + var(--reader-start-lead)) 14px 14px;
  border-radius: var(--r16);
  border: 1px solid var(--stroke);
  background: var(--panel);
  color: #fff;
  font-weight: 400;
  line-height: 1.6;
  font-size: 16px;
  white-space: pre-wrap;
  font-family: "Roboto Mono", "Courier New", "Courier", monospace;
  font-variant-ligatures: none;
  font-feature-settings: "liga" 0, "calt" 0;
  tab-size: 8;
}
[data-theme="light"] .reader{
  color: #0b1020;
}
.reader .sec{
  margin: 14px 0 8px;
  font-weight: 800;
  letter-spacing:.2px;
  color: var(--text);
  opacity: .95;
}
.chord{
  color: var(--brand);
  font-weight: 800;
  letter-spacing: 0;
  font-family: "Roboto Mono Bold", "Courier New", "Courier", monospace;
}

/* ===== Inline Edit ===== */
.editbar{
  display:flex;
  gap: 10px;
  align-items:center;
  justify-content: space-between;
  padding: 10px 12px;
  border-radius: var(--r16);
  border: 1px solid var(--stroke);
  background: rgba(255,255,255,.04);
  margin-bottom: 10px;
}
.editbar__left{
  min-width: 0;
}
.editbar__left strong{
  display:block;
  font-size: 13px;
  letter-spacing:.2px;
}
.editbar__left small{
  display:block;
  color: var(--muted);
  font-size: 12px;
  margin-top: 2px;
}
.editbar__actions{
  display:flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content:flex-end;
}

.reader.is-editing{
  padding: 0;
  background: var(--panel);
  white-space: normal;   /* <-- ESSENCIAL: não preservar quebras do HTML do form */
  line-height: normal;   /* <-- opcional, mas ajuda a compactar */
}

.reader.is-editing .reader-editmeta{
  white-space: normal;
}


.reader-inline-editor{
  width: 100%;
  min-height: 60vh;
  padding: 14px;
  border: none;
  outline: none;
  resize: vertical;

  background: transparent;
  color: var(--text);

  font: inherit;
  line-height: inherit;
  white-space: pre;
  display:block;

}
.reader-editmeta{
  padding: 14px;
  border-bottom: 1px solid var(--stroke2);
  background: rgba(255,255,255,.02);
}
[data-theme="light"] .reader-editmeta{ background: rgba(0,0,0,.02); }

.reader-editmeta .form-grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}

@media (min-width: 780px){
  .reader-editmeta .form-grid{
    grid-template-columns: 1fr 1fr;
    gap: 14px;
  }
}

.reader-editmeta .field label{
  display:block;
  font-size: 12px;
  color: var(--muted);
  margin: 0 0 6px 2px;
  font-weight: 700;
  letter-spacing:.2px;
}

.reader-editmeta .input{
  width: 100%;
  height: 42px;
  padding: 0 12px;
  border-radius: 12px;
  border: 1px solid var(--stroke2);
  background: rgba(255,255,255,.04);
  color: var(--text);
  outline: none;
  font: inherit;
}
[data-theme="light"] .reader-editmeta .input{ background: rgba(0,0,0,.03); }
.reader-editmeta select.input{
  color-scheme: dark;
}
.reader-editmeta select.input option,
.reader-editmeta select.input optgroup{
  background: #111726;
  color: #e9eef6;
}
[data-theme="light"] .reader-editmeta select.input{
  color-scheme: light;
}
[data-theme="light"] .reader-editmeta select.input option,
[data-theme="light"] .reader-editmeta select.input optgroup{
  background: #ffffff;
  color: #0b1020;
}

.reader-editmeta .input:focus{
  border-color: rgba(62,188,154,.65);
  box-shadow: 0 0 0 4px rgba(62,188,154,.18);
}

.reader-editmeta .key-row{
  display:flex;
  flex-direction: column;
  gap: 6px;
}
.reader-editmeta .key-hint{
  color: var(--muted);
}

/* ===== Reader Dock (sempre visível) ===== */
.reader-dock{
  position: fixed;
  left: 12px;
  right: 12px;
  bottom: calc(var(--tabbar-h) + 10px);
  z-index: 60;

  margin: 0 auto;
  max-width: 860px;

  border-radius: var(--r20);
  border: 1px solid var(--stroke2);
  background: rgba(17,23,38,.86);
  backdrop-filter: blur(14px);
  box-shadow: var(--shadow);
  overflow: hidden;
}
[data-theme="light"] .reader-dock{ background: rgba(255,255,255,.88); }

.reader-dock__main{
  display:flex;
  align-items:center;
  gap: 10px;
  padding: 10px;
}

.reader-dock__speed{ flex:1; min-width: 0; }
.reader-dock__label{
  display:flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 10px;
  margin: 0 2px 6px 2px;
}
.reader-dock__label strong{
  font-size: 12px;
  color: var(--muted);
  font-weight: 750;
  letter-spacing:.2px;
}
.slider{ width: 100%; }

.playbtn{
  height: 44px;
  width: 54px;
  border-radius: var(--ui-radius);
  border: 1px solid var(--stroke);
  background: var(--brand);
  color: #07110b;
  font-weight: 900;
  cursor:pointer;
  display:grid;
  place-items:center;
  transition: transform .08s ease;
}
.playbtn:active{ transform: scale(.99); }
.playbtn.is-paused{
  background: rgba(255,255,255,.06);
  color: var(--text);
}

.morebtn{
  height: 44px;
  width: 44px;
  border-radius: var(--ui-radius);
  border: 1px solid var(--stroke);
  background: rgba(255,255,255,.06);
  color: var(--text);
  cursor:pointer;
  display:grid;
  place-items:center;
  transition: transform .08s ease;
}
.morebtn:active{ transform: scale(.99); }

/* ícone expandir/contrair (gira quando abre) */
.morebtn svg{ transition: transform .15s ease; }
.reader-dock.is-open .morebtn svg{ transform: rotate(180deg); }

.reader-dock__extra{
  border-top: 1px solid var(--stroke);
  padding: 10px;
  display:none;
}
.reader-dock.is-open .reader-dock__extra{ display:block; }

.controls-row{
  display:flex;
  gap: 10px;
  align-items:center;
  justify-content: space-between;
  margin-bottom: 10px;
}

.control-block{
  margin-bottom: 10px;
}

.dock-select{
  width: 100%;
  border-radius: 12px;
  border: 1px solid var(--stroke);
  background: rgba(255,255,255,.04);
  color: var(--text);
  padding: 10px 12px;
  outline: none;
}
[data-theme="light"] .dock-select{
  background: rgba(0,0,0,.03);
}
.dock-select:focus{
  border-color: rgba(62,188,154,.65);
  box-shadow: 0 0 0 4px rgba(62,188,154,.18);
}

.small{ font-size: 12px; color: var(--muted); }

/* espaço extra no final pra dock não cobrir a cifra */
.reader-pad-bottom{ height: 140px; }

.kv{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.kv .card{ padding: 12px; box-shadow:none; }
.kv label{
  display:block;
  font-size: 12px;
  color: var(--muted);
  margin-bottom: 6px;
}
.kv input, .kv textarea{
  width: 100%;
  border-radius: 14px;
  border: 1px solid var(--stroke);
  background: rgba(255,255,255,.03);
  color: var(--text);
  padding: 12px;
  outline:none;
}
.kv textarea{ min-height: 92px; resize: vertical; }

.profile-head{
  display:flex;
  gap: 12px;
  align-items:center;
  margin-bottom: 14px;
}
.avatar{
  width: 58px; height: 58px;
  border-radius: 18px;
  border: 1px solid var(--stroke);
  background: linear-gradient(135deg, rgba(124,247,199,.25), rgba(255,255,255,.04));
  flex: 0 0 auto;
  overflow:hidden;
}
.avatar img{ width:100%; height:100%; object-fit:cover; display:block; }
.profile-head h1{ margin:0; font-size: 18px; }
.profile-head p{ margin: 3px 0 0; color: var(--muted); font-size: 13px; }

/* Avatar clicável (upload) */
.avatar--clickable{
  cursor: pointer;
  position: relative;
}
.avatar--clickable::after{
  content:"Trocar";
  position:absolute;
  left: 6px;
  right: 6px;
  bottom: 6px;
  padding: 5px 6px;
  border-radius: 12px;
  background: rgba(0,0,0,.40);
  border: 1px solid rgba(255,255,255,.12);
  color: rgba(255,255,255,.92);
  font-size: 11px;
  text-align:center;
  opacity: 0;
  transform: translateY(4px);
  transition: opacity .12s ease, transform .12s ease;
  pointer-events:none;
}
[data-theme="light"] .avatar--clickable::after{
  background: rgba(255,255,255,.65);
  border: 1px solid rgba(0,0,0,.10);
  color: rgba(0,0,0,.70);
}
.avatar--clickable:hover::after,
.avatar--clickable:active::after{
  opacity: 1;
  transform: translateY(0);
}

.row{
  display:flex;
  gap: 10px;
  align-items:center;
  justify-content: space-between;
}
.divider{ height: 1px; background: var(--stroke); margin: 12px 0; }

.mini-actions{ display:flex; gap: 10px; flex-wrap: wrap; }

/* Lists UI helpers */
.pillrow{ display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; }
.pillchip{
  display:inline-flex;
  gap:8px;
  align-items:center;
  padding: 8px 10px;
  border-radius: 999px;
  border: 1px solid var(--stroke);
  background: rgba(255,255,255,.03);
  color: var(--muted);
  font-size: 12px;
}

/* ===== Lists Popover (Reader) ===== */
.popover{
  position: fixed;
  inset: 0;
  z-index: 120;
  display: none;
}
.popover.is-open{ display:block; }

.popover__backdrop{
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.35);
  backdrop-filter: blur(2px);
}

.popover__panel{
  position: fixed;
  width: min(360px, calc(100vw - 24px));
  max-height: min(520px, calc(100vh - 24px));
  overflow: auto;

  border-radius: 18px;
  border: 1px solid var(--stroke2);
  background: rgba(17,23,38,.92);
  backdrop-filter: blur(14px);
  box-shadow: var(--shadow);
  padding: 12px;
}
[data-theme="light"] .popover__panel{
  background: rgba(255,255,255,.92);
}

.popover__head{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}
.popover__head strong{
  font-size: 14px;
  letter-spacing: .2px;
}
.popover__close{
  height: 34px;
  width: 34px;
  border-radius: var(--ui-radius);
  border: 1px solid var(--stroke);
  background: rgba(255,255,255,.06);
  color: var(--text);
  cursor:pointer;
}
.popover__close:active{ transform: scale(.98); }

.popover__actions{
  display:flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 10px;
}

.popover__list{
  display:flex;
  flex-direction: column;
  gap: 8px;
}

.listrow{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 10px;
  border-radius: 14px;
  border: 1px solid var(--stroke);
  background: rgba(255,255,255,.03);
}
.listrow__meta{
  min-width: 0;
}
.listrow__meta b{
  display:block;
  font-size: 14px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.listrow__meta small{
  display:block;
  color: var(--muted);
  font-size: 12px;
  margin-top: 2px;
}

.check{
  display:flex;
  align-items:center;
  gap: 8px;
  user-select: none;
}
.check input{
  width: 18px;
  height: 18px;
  accent-color: var(--brand);
}

.popover__hint{
  margin-top: 10px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
}

.guest-risk-modal{
  position: fixed;
  inset: 0;
  z-index: 180;
  display: grid;
  place-items: center;
  padding: 16px;
}

.guest-risk-modal__backdrop{
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.48);
  backdrop-filter: blur(2px);
}

.guest-risk-modal__panel{
  position: relative;
  width: min(460px, calc(100vw - 24px));
  border-radius: var(--r16);
  border: 1px solid var(--stroke2);
  background: var(--panel);
  box-shadow: var(--shadow);
  padding: 16px;
}
.guest-risk-modal__panel h3{
  margin: 0 0 8px 0;
  font-size: 18px;
}
.guest-risk-modal__panel p{
  margin: 0;
  color: var(--muted);
  line-height: 1.4;
}
.guest-risk-modal__actions{
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 14px;
}

.list-editor-modal{
  position: fixed;
  inset: 0;
  z-index: 185;
  display: grid;
  place-items: center;
  padding: 16px;
}
.list-editor-modal__backdrop{
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.48);
  backdrop-filter: blur(2px);
}
.list-editor-modal__panel{
  position: relative;
  width: min(460px, calc(100vw - 24px));
  border-radius: var(--r16);
  border: 1px solid var(--stroke2);
  background: var(--panel);
  box-shadow: var(--shadow);
  padding: 16px;
}
.list-editor-modal__panel h3{
  margin: 0 0 10px 0;
  font-size: 18px;
}
.list-editor-modal__field label{
  display:block;
  font-size: 12px;
  color: var(--muted);
  margin-bottom: 6px;
}
.list-editor-modal__field .input{
  width: 100%;
  border-radius: 14px;
  border: 1px solid var(--stroke);
  background: rgba(255,255,255,.03);
  color: var(--text);
  padding: 12px;
  outline: none;
}
.list-editor-modal__switchrow{
  margin-top: 12px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
}
.list-editor-modal__switchlabel{
  display:inline-flex;
  align-items:center;
  gap: 12px;
  user-select:none;
  cursor:pointer;
  color: var(--text);
}
.list-editor-modal__actions{
  margin-top: 14px;
  display:flex;
  gap: 10px;
  flex-wrap: wrap;
}

.version-modal{
  position: fixed;
  inset: 0;
  z-index: 210;
}
.version-modal__backdrop{
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.48);
  backdrop-filter: blur(2px);
}
.version-modal__panel{
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: min(540px, calc(100vw - 24px));
  border-radius: var(--r16);
  border: 1px solid var(--stroke2);
  background: var(--panel);
  box-shadow: var(--shadow);
  padding: 16px;
}
.version-modal__panel h3{
  margin: 0;
  font-size: 19px;
}
.version-modal__meta{
  margin-top: 6px;
  color: var(--muted);
  font-size: 12px;
}
.version-modal__list{
  margin: 12px 0 0;
  padding-left: 18px;
}
.version-modal__list li{
  margin: 6px 0;
  line-height: 1.35;
}
.version-modal__actions{
  margin-top: 14px;
  display: flex;
  justify-content: flex-end;
}

.list-switch{
  position: relative;
  display: inline-flex;
  width: 48px;
  height: 28px;
  flex: 0 0 auto;
}
.list-switch input{
  opacity: 0;
  width: 0;
  height: 0;
}
.list-switch__slider{
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,.26);
  border: 1px solid var(--stroke2);
  border-radius: 999px;
  transition: .18s ease;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.08);
}
.list-switch__slider::before{
  content: "";
  position: absolute;
  left: 3px;
  top: 3px;
  width: 20px;
  height: 20px;
  background: #fff;
  border-radius: 50%;
  transition: .18s ease;
}
.list-switch input:checked + .list-switch__slider{
  background: color-mix(in oklab, var(--brand) 35%, rgba(255,255,255,.12));
}
.list-switch input:checked + .list-switch__slider::before{
  transform: translateX(20px);
}
[data-theme="light"] .list-switch__slider{
  background: #d7dee8;
  border: 1px solid #b8c3d1;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.55);
}
[data-theme="light"] .list-switch__slider::before{
  background: #ffffff;
  box-shadow: 0 1px 2px rgba(0,0,0,.18);
}
[data-theme="light"] .list-switch input:checked + .list-switch__slider{
  background: #2dbb87;
  border-color: #23966c;
}

/* ===== Vídeos (perfil) ===== */
.video-list{
  display:flex;
  flex-direction: column;
  gap: 10px;
}
.video-row{
  padding: 12px;
  border-radius: var(--r16);
  border: 1px solid var(--stroke);
  background: rgba(255,255,255,.03);
}
.video-row__grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
@media (max-width: 520px){
  .video-row__grid{ grid-template-columns: 1fr; }
}
.video-row__actions{
  display:flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 10px;
}

/* ===== Lists (cards limpos + Set List) ===== */
.grid--lists{ grid-template-columns: 1fr 1fr; }
@media (min-width: 520px){ .grid--lists{ grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 860px){ .grid--lists{ grid-template-columns: repeat(4, 1fr); } }

.list-card{
  position: relative;
  overflow: hidden;
  border-radius: var(--r16);
  border: 1px solid var(--stroke);
  background: var(--panel);
  min-height: 140px;
  cursor: pointer;
  display:block;
}
.list-card:active{ transform: scale(.99); }

.list-card__img{
  width: 100%;
  height: 150px;
  object-fit: cover;
  display:block;
  filter: saturate(1.05) contrast(1.05);
}

.list-card__meta{
  position:absolute;
  left: 12px;
  right: 12px;
  bottom: 12px;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(0,0,0,.38);
  border: 1px solid rgba(255,255,255,.14);
  backdrop-filter: blur(8px);
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 10px;
}
[data-theme="light"] .list-card__meta{
  background: rgba(255,255,255,.55);
  border: 1px solid rgba(0,0,0,.10);
}

.list-card__meta strong{
  display:block;
  font-size: 14px;
  letter-spacing: .2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.list-card__meta small{
  display:block;
  color: rgba(255,255,255,.85);
  font-size: 12px;
  margin-top: 3px;
}
[data-theme="light"] .list-card__meta small{ color: rgba(0,0,0,.65); }

.list-card__setbtn{
  height: 36px;
  width: 36px;
  border-radius: var(--ui-radius);
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  color: var(--text);
  display:grid;
  place-items:center;
  cursor:pointer;
  flex: 0 0 auto;
}
[data-theme="light"] .list-card__setbtn{
  border: 1px solid rgba(0,0,0,.10);
  background: rgba(0,0,0,.04);
}

.list-card__setbtn:active{ transform: scale(.98); }

.list-card__setbtn.is-set{
  background: var(--brand);
  color: #07110b;
  border: 1px solid transparent;
}

/* ===== Ícone estrela (Set List) ===== */
.icon-star{ fill: none; }
.is-set .icon-star{ fill: currentColor; }

/* No rodapé, a estrela segue o tema para manter contraste */
.tabbar__item[data-tab="set"] svg{ color: currentColor; }
.tabbar__item[data-tab="set"] .icon-star{ fill: none; stroke: currentColor; }
.tabbar__item.is-active[data-tab="set"] .icon-star{ fill: currentColor; stroke: currentColor; }

/* Botões de estrela (Set List) sempre em preto */
.list-card__setbtn{ color:#000; background: rgba(255,255,255,.72); border: 1px solid rgba(0,0,0,.10); }
[data-theme="light"] .list-card__setbtn{ background: rgba(0,0,0,.04); border: 1px solid rgba(0,0,0,.10); }

.starbtn{ color:#000; }

.list-detail-head{
  display:flex;
  align-items:flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
.list-detail-head__title{ min-width:0; }
.list-detail-head__title h1{
  margin:0;
  font-size: 18px;
  white-space: normal;
  overflow-wrap: anywhere;
  line-height: 1.2;
}
.list-detail-head__title p{
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 13px;
}
.list-detail-head__actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap: 8px;
  flex: 0 0 auto;
  flex-wrap: nowrap;
}
.list-detail-head__mainactions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap: 8px;
  flex-wrap: nowrap;
}

@media (max-width: 760px){
  .list-detail-head{
    align-items:flex-start;
  }
  .list-detail-head__actions{
    margin-left: auto;
  }
}

.set-row.is-current{
  border-color: var(--brand);
  box-shadow: 0 0 0 1px color-mix(in oklab, var(--brand) 55%, transparent);
}

.set-transport{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.set-transport .btn{
  min-height: 40px;
}

.set-timing{
  margin-top: 8px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 6px;
}
.set-timing__grp{
  display: flex;
  align-items: center;
  gap: 6px;
}
.set-timing__lbl{
  width: 52px;
  font-size: 12px;
  color: var(--muted);
}
.set-mini{
  width: 58px;
  height: 34px !important;
  padding: 0 8px !important;
}
.set-mini-num{
  width: 84px;
  height: 34px !important;
  padding: 0 8px !important;
  text-align: right;
}
.set-timing__unit{
  font-size: 12px;
  color: var(--muted);
}

.set-row-play{
  min-height: 34px !important;
  padding: 0 10px !important;
  white-space: nowrap;
}
.set-row-actions{
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 0;
  flex: 0 0 auto;
}
.set-row-actions .btn{
  min-height: 34px !important;
  padding: 0 10px !important;
  white-space: nowrap;
}
.set-row-grid{
  display: grid;
  grid-template-columns: minmax(220px, 1.5fr) auto auto;
  gap: 10px;
  align-items: center;
  min-width: 0;
}
.set-col-song{ min-width: 0; }
.set-col-timing{
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: nowrap;
}
.set-col-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
}
.set-sec-box{
  display:flex;
  align-items:center;
  gap: 6px;
  flex: 0 0 auto;
}
.set-sec-label{
  font-size: 11px;
  color: var(--muted);
  white-space: nowrap;
}
.set-sec-input{
  width: 74px;
  height: 34px !important;
  padding: 0 8px !important;
  text-align: right;
  flex: 0 0 auto;
  border-radius: var(--ui-radius);
}
.set-song-meta{
  min-width: 0;
  flex: 1 1 auto;
}
.set-song-meta h3{
  margin: 0;
  font-size: 14px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.set-song-meta p{
  margin: 2px 0 0;
  color: var(--muted);
  font-size: 12px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.set-pause-pill{
  height: 34px;
  border-radius: var(--ui-radius);
  border: 1px solid var(--stroke);
  background: rgba(255,255,255,.06);
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .2px;
  padding: 0 12px;
  cursor: pointer;
  white-space: nowrap;
}
.set-pause-pill.is-on{
  color: #052612;
  background: #39d98a;
  border-color: #4be29a;
}
@media (max-width: 760px){
  .set-row-grid{
    grid-template-columns: 1fr;
    gap: 8px;
  }
  .set-col-timing{
    flex-wrap: wrap;
  }
  .set-col-actions{
    justify-content: flex-start;
  }
  .set-song-meta h3{ font-size: 13px; }
  .set-song-meta p{ font-size: 11px; }
  .set-sec-input{ width: 66px; }
}

.set-float{
  position: fixed;
  right: 12px;
  top: calc(50% - 15px);
  transform: translateY(-50%);
  z-index: 140;
  display:flex;
  flex-direction: column;
  align-items:center;
  gap: 8px;
}
.set-float__btn{
  width: 46px;
  height: 46px;
  border-radius: var(--ui-radius);
  border: 1px solid var(--stroke);
  background: rgba(0,0,0,.55);
  color: #fff;
  font-size: 18px;
  font-weight: 800;
  cursor: pointer;
}
.set-float__btn--stop{
  background: rgba(180,20,20,.72);
}
.set-float__pos{
  font-size: 11px;
  font-weight: 800;
  color: #fff;
  background: rgba(0,0,0,.55);
  border: 1px solid var(--stroke);
  border-radius: 999px;
  padding: 4px 8px;
  min-width: 44px;
  text-align: center;
}

.set-before-countdown{
  position: fixed;
  inset: 0;
  z-index: 150;
  pointer-events: none;
  display: none;
  align-items: center;
  justify-content: center;
}
.set-before-countdown.is-visible{
  display: flex;
}
.set-before-countdown__circle{
  width: min(72vw, 460px);
  aspect-ratio: 1 / 1;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.30);
  border: 1px solid rgba(255,255,255,.28);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #fff;
  backdrop-filter: blur(2px);
  pointer-events: none;
}
.set-before-countdown__label{
  font-size: clamp(16px, 3vw, 24px);
  font-weight: 700;
  letter-spacing: .2px;
  opacity: .92;
}
.set-before-countdown__value{
  margin-top: 6px;
  font-size: clamp(84px, 24vw, 190px);
  line-height: 1;
  font-weight: 900;
}
.set-before-countdown__btn{
  margin-top: 12px;
  min-height: 40px;
  border-radius: var(--ui-radius);
  border: 1px solid #58e8a6;
  background: #39d98a;
  color: #052612;
  font-weight: 900;
  font-size: 14px;
  padding: 0 14px;
  cursor: pointer;
}
.set-before-countdown.is-manual .set-before-countdown__circle{
  pointer-events: auto;
}
.set-before-countdown.is-manual .set-before-countdown__label{
  font-size: clamp(46px, 10vw, 88px);
  font-weight: 900;
  letter-spacing: .6px;
}
.set-before-countdown.is-manual .set-before-countdown__value{
  display: none;
}

.mod-expand{
  margin-top: 10px;
  border: 1px solid var(--stroke);
  border-radius: 14px;
  background: rgba(255,255,255,.03);
  padding: 10px;
}
.mod-cols{
  display:grid;
  grid-template-columns: 1fr;
  gap: 10px;
  margin-top: 8px;
}
@media (min-width: 900px){
  .mod-cols{ grid-template-columns: 1fr 1fr; }
}
.mod-col h4{
  margin: 0 0 6px 0;
  font-size: 13px;
  color: var(--muted);
}
.mod-pre{
  margin: 0;
  max-height: 380px;
  overflow: auto;
  white-space: pre-wrap;
  word-break: break-word;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 12px;
  line-height: 1.45;
}

/* ===== Set List (botões fora do card) =====
   No detalhe da lista, o botão de Set List usa o mesmo estilo dos ícones do topo.
   Quando a lista aberta é a Set List, ele precisa ficar “verdinho” (brand).
*/
.btnicon.is-set,
.iconbtn.is-set,
.btn.btn--ghost.btnicon.is-set{
  background: var(--brand);
  color: #07110b;
  border: 1px solid transparent;
}
