/* ===== Tokens ===== */
:root {
  --paper: #FBF8F1;
  --paper-dim: #F1ECDE;
  --ink: #23241F;
  --ink-soft: #5B5B52;
  --rule: #DDD5BE;
  --chord: #8A5A2C;
  --chord-strong: #6E4520;
  --accent: #2E5F52;
  --accent-soft: #E4EEE9;
  --danger: #A23E3E;
  --card-bg: #FFFFFF;
  --shadow: 0 1px 2px rgba(35,36,31,0.06), 0 4px 14px rgba(35,36,31,0.05);
  --radius: 10px;
  --font-display: 'Fraunces', Georgia, serif;
  --font-body: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-mono: 'JetBrains Mono', 'Courier New', monospace;
}

/* =====================================================
   v0.7.73 — INÍCIO RENOVADO E INTERFACE MAIS CONTEMPORÂNEA
   ===================================================== */
:root{
  --cv-teal:#08677a;
  --cv-teal-deep:#064a5a;
  --cv-mint:#18b88f;
  --cv-gold:#d9a62e;
  --cv-surface:#ffffff;
  --cv-soft:#f3f8f8;
}

body:not([data-theme="dark"]){
  background:#f5f9f9;
}

body:not([data-theme="dark"]) main{
  background:
    radial-gradient(circle at 92% 4%,rgba(24,184,143,.09),transparent 23rem),
    linear-gradient(180deg,#f9fcfc 0%,#f3f8f8 100%);
}

.cv-home-hero{
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(280px,.75fr);
  gap:28px;
  margin-bottom:22px;
  padding:34px;
  border:1px solid rgba(8,103,122,.16);
  border-radius:24px;
  background:
    radial-gradient(circle at 0 0,rgba(255,255,255,.24),transparent 22rem),
    linear-gradient(135deg,#07576a 0%,#08768a 62%,#12967f 100%);
  box-shadow:0 24px 60px rgba(5,70,84,.16);
  color:#fff;
}

.cv-home-hero::after{
  content:"";
  position:absolute;
  width:280px;
  height:280px;
  right:-120px;
  top:-120px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:50%;
  box-shadow:0 0 0 46px rgba(255,255,255,.035),0 0 0 92px rgba(255,255,255,.025);
  pointer-events:none;
}

.cv-home-hero-main,.cv-home-toolbox{position:relative;z-index:1}
.cv-home-eyebrow,.cv-home-toolbox-kicker{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:10px;
  font-weight:800;
  letter-spacing:.15em;
  color:#bff6e6;
}
.cv-home-eyebrow::before{
  content:"";
  width:22px;
  height:2px;
  border-radius:2px;
  background:#e5bb4f;
}
.cv-home-brand-row{display:flex;align-items:center;gap:18px;margin:16px 0 10px}
.cv-home-logo{
  width:96px;
  height:96px;
  object-fit:contain;
  padding:7px;
  border-radius:22px;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.18);
}
.cv-home-brand-row span{display:block;margin-bottom:3px;font-size:13px;font-weight:700;color:#d7f8f0}
.cv-home-brand-row h1{
  max-width:650px;
  margin:0;
  font-family:var(--font-display);
  font-size:clamp(28px,3vw,44px);
  line-height:1.04;
  color:#fff;
}
.cv-home-hero-main>p{max-width:700px;margin:15px 0 20px;font-size:14px;line-height:1.7;color:rgba(255,255,255,.86)}
.cv-home-actions{display:flex;gap:10px;flex-wrap:wrap}
.cv-home-actions .btn{min-height:43px;border-radius:12px;padding:10px 18px}
.cv-home-main-action{background:#1cc397!important;border-color:#1cc397!important;box-shadow:0 10px 24px rgba(0,49,42,.22)}
.cv-home-secondary-action{border-color:rgba(255,255,255,.35)!important;background:rgba(255,255,255,.10)!important;color:#fff!important}
.cv-home-stats{display:flex;align-items:stretch;gap:8px;flex-wrap:wrap;margin-top:24px}
.cv-home-stats>div{
  min-width:112px;
  padding:10px 13px;
  border:1px solid rgba(255,255,255,.17);
  border-radius:12px;
  background:rgba(4,54,65,.2);
}
.cv-home-stats strong,.cv-home-stats span{display:block}
.cv-home-stats strong{font-size:17px;color:#fff}
.cv-home-stats div span{margin-top:2px;font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;color:rgba(255,255,255,.7)}
.cv-home-stats .plan-mini-badge{align-self:center;margin-left:2px;background:#f3c95d;color:#493300;border:none}

.cv-home-toolbox{
  align-self:stretch;
  padding:22px;
  border:1px solid rgba(255,255,255,.17);
  border-radius:18px;
  background:rgba(4,47,58,.28);
  backdrop-filter:blur(8px);
}
.cv-home-toolbox h2{margin:7px 0 17px;font-family:var(--font-display);font-size:21px;color:#fff}
.cv-home-tool{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid rgba(255,255,255,.11)}
.cv-home-tool>span{display:grid;place-items:center;flex:0 0 34px;height:34px;border-radius:10px;background:rgba(255,255,255,.12);color:#f4cf71;font-weight:800}
.cv-home-tool strong,.cv-home-tool small{display:block}
.cv-home-tool strong{font-size:12.5px;color:#fff}
.cv-home-tool small{margin-top:2px;font-size:10.5px;line-height:1.35;color:rgba(255,255,255,.66)}

.home-commercial-intro{display:grid!important;grid-template-columns:1fr 1.15fr!important;gap:14px!important;margin-bottom:18px!important}
.home-offline-highlight,.home-guide-card{
  min-height:126px;
  border-radius:18px!important;
  border:1px solid rgba(8,103,122,.13)!important;
  box-shadow:0 12px 30px rgba(10,70,79,.07)!important;
}
.home-offline-highlight{background:linear-gradient(145deg,#edf9f5,#fff)!important}
.home-guide-card{background:linear-gradient(145deg,#fff,#f2f8f9)!important}
.home-offline-icon{background:#d9f4eb!important;color:#08735e!important}
.home-guide-kicker{color:#0a7b71!important}

.search-bar,.catalog-search-box,.field input,.field select,.field textarea,.input{
  border-radius:12px!important;
}
.search-bar{
  min-height:48px;
  border-color:rgba(8,103,122,.15)!important;
  box-shadow:0 8px 24px rgba(10,70,79,.055);
}
.song-card,.commercial-card,.guide-card,.request-card,.plan-card{
  border-radius:16px!important;
  border-color:rgba(8,103,122,.13)!important;
  box-shadow:0 10px 28px rgba(10,70,79,.06)!important;
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease!important;
}
.song-card:hover,.guide-card:hover{
  transform:translateY(-2px);
  border-color:rgba(24,184,143,.5)!important;
  box-shadow:0 16px 34px rgba(10,70,79,.11)!important;
}
.btn{border-radius:10px}
.btn-primary{background:linear-gradient(135deg,#0a8d83,#17b58e);border-color:#0a8d83}
.page-title{color:var(--cv-teal-deep)}
[data-theme="dark"] .page-title{color:#fff}

@media(max-width:1050px){
  .cv-home-hero{grid-template-columns:1fr}
  .cv-home-toolbox{display:grid;grid-template-columns:1fr 1fr;column-gap:18px}
  .cv-home-toolbox h2,.cv-home-toolbox-kicker{grid-column:1/-1}
}
@media(max-width:720px){
  .cv-home-hero{padding:22px 18px;border-radius:19px;gap:18px}
  .cv-home-brand-row{align-items:flex-start;gap:12px}
  .cv-home-logo{width:72px;height:72px;border-radius:17px}
  .cv-home-brand-row h1{font-size:27px}
  .cv-home-hero-main>p{font-size:12.5px}
  .cv-home-actions .btn{width:100%;justify-content:center}
  .cv-home-stats>div{flex:1;min-width:92px}
  .cv-home-toolbox{display:block;padding:18px}
  .home-commercial-intro{grid-template-columns:1fr!important}
}

[data-theme="dark"] .cv-home-hero{border-color:rgba(111,187,163,.25);box-shadow:0 24px 60px rgba(0,0,0,.25)}
[data-theme="dark"] .home-offline-highlight,
[data-theme="dark"] .home-guide-card{background:linear-gradient(145deg,#202b2b,#232b2c)!important;border-color:#354747!important}
[data-theme="dark"] .home-offline-icon{background:#183c34!important;color:#8ae2c9!important}

[data-theme="dark"] {
  --paper: #1B1B17;
  --paper-dim: #232320;
  --ink: #EDE9DA;
  --ink-soft: #ABA694;
  --rule: #3A392F;
  --chord: #E3A85C;
  --chord-strong: #F0BC7C;
  --accent: #6FBBA3;
  --accent-soft: #22322C;
  --card-bg: #232320;
  --shadow: 0 1px 2px rgba(0,0,0,0.3), 0 4px 14px rgba(0,0,0,0.35);
}

* { box-sizing: border-box; }
html, body {
  margin: 0; padding: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-body);
  min-height: 100vh;
  transition: background .25s ease, color .25s ease;
  /* Evita que arrastar demais pra baixo no topo da tela dispare o
     "puxar pra atualizar" do navegador/app e recarregue a página sem
     querer (acontece fácil ao rolar rápido numa música durante o uso). */
  overscroll-behavior-y: contain;
}
button { font-family: inherit; }
a { color: inherit; }
::selection { background: var(--accent-soft); }

/* ===== Layout shell ===== */
#app { display: flex; min-height: 100vh; }

.sidebar {
  width: 240px;
  flex-shrink: 0;
  background: var(--paper-dim);
  border-right: 1px solid var(--rule);
  padding: 24px 16px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.brand {
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 600;
  letter-spacing: 0.01em;
  margin: 0 8px 22px 8px;
  display: flex;
  align-items: baseline;
  gap: 8px;
}
.brand small {
  font-family: var(--font-body);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--ink-soft);
  font-weight: 500;
}
.nav-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 8px;
  cursor: pointer;
  color: var(--ink-soft);
  font-size: 14.5px;
  font-weight: 500;
  border: none;
  background: none;
  text-align: left;
  width: 100%;
}
.nav-item:hover { background: var(--accent-soft); color: var(--ink); }
.nav-item.active { background: var(--accent); color: white; }
.nav-icon { width: 18px; text-align: center; opacity: .85; }

.sidebar-footer { margin-top: auto; display: flex; flex-direction: column; gap: 6px; }

.theme-toggle {
  display: flex; align-items: center; justify-content: space-between;
  padding: 8px 12px; border-radius: 8px; font-size: 13px;
  color: var(--ink-soft); border: 1px solid var(--rule); background: var(--card-bg);
  cursor: pointer;
}

main { flex: 1; min-width: 0; padding: 28px 36px 60px; }
.view { display: none; }
.view.active { display: block; }

.page-head {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 22px; gap: 16px; flex-wrap: wrap;
}
.page-title {
  font-family: var(--font-display);
  font-size: 28px;
  margin: 0;
}
.page-sub { color: var(--ink-soft); font-size: 13.5px; margin-top: 2px; }

/* ===== Buttons ===== */
.btn {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 9px 16px;
  border-radius: 8px;
  border: 1px solid var(--rule);
  background: var(--card-bg);
  color: var(--ink);
  font-size: 13.5px; font-weight: 600;
  cursor: pointer;
  transition: transform .08s ease, background .15s ease, border-color .15s ease;
}
.btn:hover { border-color: var(--accent); }
.btn:active { transform: scale(0.97); }
.btn-primary { background: var(--accent); border-color: var(--accent); color: white; }
.btn-primary:hover { filter: brightness(1.06); }
.btn-danger { color: var(--danger); border-color: var(--danger); background: transparent; }
.btn-ghost { border-color: transparent; background: transparent; }
.btn-icon { padding: 8px 10px; }
.btn-sm { padding: 6px 11px; font-size: 12.5px; }
.btn:disabled { opacity: .4; cursor: not-allowed; }

/* ===== Search ===== */
.search-bar {
  display: flex; align-items: center; gap: 10px;
  background: var(--card-bg);
  border: 1px solid var(--rule);
  border-radius: 10px;
  padding: 10px 14px;
  margin-bottom: 20px;
}
.search-bar input {
  border: none; outline: none; background: none;
  font-size: 14.5px; width: 100%; color: var(--ink); font-family: var(--font-body);
}
.search-bar .icon { color: var(--ink-soft); }

/* ===== Filters row ===== */
.filter-row { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 18px; }
.chip {
  padding: 6px 13px; border-radius: 999px; font-size: 12.5px; font-weight: 600;
  border: 1px solid var(--rule); background: var(--card-bg); color: var(--ink-soft);
  cursor: pointer;
}
.chip.active { background: var(--accent); border-color: var(--accent); color: white; }

/* ===== Song grid/list ===== */
.song-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 12px;
}
.song-card {
  background: var(--card-bg);
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  padding: 14px 16px;
  cursor: pointer;
  box-shadow: var(--shadow);
  display: flex; flex-direction: column; gap: 6px;
  position: relative;
}
.song-card:hover { border-color: var(--accent); }
.song-card .title { font-family: var(--font-display); font-size: 16.5px; font-weight: 600; line-height: 1.25; }
.song-card .meta { font-size: 12px; color: var(--ink-soft); display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.song-card-delete {
  align-self:flex-end;
  margin-top:auto;
  border:1px solid rgba(162,62,62,.25);
  border-radius:7px;
  background:transparent;
  color:var(--danger);
  padding:5px 8px;
  font-size:11.5px;
  font-weight:700;
  cursor:pointer;
}
.song-card-delete:hover { background:rgba(162,62,62,.09); border-color:rgba(162,62,62,.45); }
[data-theme="dark"] .song-card-delete {
  color:#ffb6b6 !important;
  border-color:rgba(255,182,182,.32) !important;
  background:rgba(130,35,35,.12) !important;
}
[data-theme="dark"] .song-card-delete:hover { background:rgba(180,55,55,.22) !important; }
.tag-key {
  font-family: var(--font-mono); font-weight: 700; color: var(--chord);
  background: var(--accent-soft); padding: 1px 7px; border-radius: 5px; font-size: 11.5px;
}
.cat-badge {
  font-size: 11px; padding: 1px 8px; border-radius: 999px; border: 1px solid var(--rule); color: var(--ink-soft);
}
.fav-star { position: absolute; top: 10px; right: 10px; cursor: pointer; color: var(--rule); font-size: 16px; }
.fav-star.active { color: var(--chord); }

.empty-state {
  text-align: center; padding: 60px 20px; color: var(--ink-soft);
}
.empty-state .big { font-family: var(--font-display); font-size: 20px; color: var(--ink); margin-bottom: 6px; }

/* ===== Song editor ===== */
.editor-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 14px; }
.field { display: flex; flex-direction: column; gap: 6px; }
.field label { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--ink-soft); }
.field input, .field select, .field textarea {
  border: 1px solid var(--rule); border-radius: 8px; padding: 9px 11px;
  font-size: 14px; background: var(--card-bg); color: var(--ink); font-family: var(--font-body);
  outline: none;
}
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--accent); }
.field textarea.mono { font-family: var(--font-mono); font-size: 13.5px; white-space: pre; line-height: 1.6; }
.field-full { grid-column: 1 / -1; }
.hint { font-size: 12px; color: var(--ink-soft); }

.tag-input-row { display: flex; flex-wrap: wrap; gap: 6px; padding: 6px; border: 1px solid var(--rule); border-radius: 8px; }
.tag-pill { background: var(--accent-soft); color: var(--accent); font-size: 12px; padding: 3px 9px; border-radius: 999px; display: flex; align-items: center; gap: 6px; }
.tag-pill button { border: none; background: none; cursor: pointer; color: var(--accent); font-weight: 700; }
.tag-input-row input { border: none; outline: none; flex: 1; min-width: 90px; background: none; font-size: 13px; }

/* ===== Chord/lyric render ===== */
.song-body {
  font-family: var(--font-mono);
  white-space: pre-wrap;
  line-height: 1.75;
  font-size: 16px;
  background: var(--card-bg);
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  padding: 22px 26px;
}
.line-chord { color: var(--chord); font-weight: 700; }
.line-lyric { color: var(--ink); }
.line-label { color: var(--accent); font-weight: 700; margin-top: 6px; display: block; }
.line-blank { display: block; height: 1em; }

/* ===== Song detail header ===== */
.song-head {
  background: var(--card-bg); border: 1px solid var(--rule); border-radius: var(--radius);
  padding: 18px 22px; margin-bottom: 16px;
}
.song-head h1 { font-family: var(--font-display); font-size: 26px; margin: 0 0 2px; }
.song-head .artist { color: var(--ink-soft); font-size: 14px; margin-bottom: 12px; }
.key-control { display: flex; align-items: center; gap: 8px; }
.key-btn {
  width: 34px; height: 34px; border-radius: 8px; border: 1px solid var(--rule);
  background: var(--card-bg); font-weight: 700; cursor: pointer; font-size: 15px;
}
.key-display {
  font-family: var(--font-mono); font-weight: 700; font-size: 17px; color: var(--chord-strong);
  background: var(--accent-soft); padding: 6px 16px; border-radius: 8px; min-width: 50px; text-align: center;
}
.head-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 14px; }

/* ===== Presentation mode ===== */
.presentation {
  position: fixed; inset: 0; background: var(--paper); z-index: 999;
  display: flex; flex-direction: column;
}
.presentation-top {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 22px; border-bottom: 1px solid var(--rule);
  gap: 12px; width: 100%; box-sizing: border-box;
}
/* Bloco do título + tom: pode encolher (com "…") pra sobrar espaço pros botões */
.presentation-titlebox { min-width: 0; flex: 0 1 auto; max-width: 42%; }
.presentation-title {
  font-family: var(--font-display); font-size: 19px;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.presentation-body {
  flex: 1; overflow-y: auto; padding: 30px 8vw 100px;
  font-family: var(--font-mono); white-space: pre-wrap; line-height: 1.9;
}
.presentation-bottom {
  position: fixed; bottom: 0; left: 0; right: 0;
  display: flex; align-items: center; justify-content: space-between;
  padding: 12px 22px; background: var(--paper-dim); border-top: 1px solid var(--rule);
  gap: 10px; flex-wrap: wrap;
}
.nav-big { padding: 12px 20px; font-size: 15px; }
/* Barra de botões com rolagem lateral.
   IMPORTANTE: NÃO usar "justify-content: flex-end" aqui. Com esse alinhamento,
   quando os botões não cabem, o excesso vaza pela ESQUERDA e o navegador não
   consegue rolar até lá — fica cortado e inalcançável. Em vez disso, o
   "::before" com margin-left:auto empurra os botões pra direita quando sobra
   espaço, e some sozinho quando não sobra (aí a rolagem funciona normal). */
.presentation-controls {
  display: flex; gap: 8px; align-items: center;
  min-width: 0; flex: 1 1 0;
  overflow-x: auto; overflow-y: hidden; flex-wrap: nowrap;
  overscroll-behavior-x: contain;
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
}
.presentation-controls::before { content: ''; margin-left: auto; }
.presentation-controls > * { flex: none; }
.presentation-controls::-webkit-scrollbar { height: 4px; }
@media (max-width: 640px) {
  .presentation-title { font-size: 15px; }
  .presentation-top { padding: 10px 12px; gap: 8px; }
}

/* ===== Repertoire ===== */
.repertoire-list { display: flex; flex-direction: column; gap: 8px; margin-top: 16px; }
.repertoire-item {
  display: flex; align-items: center; gap: 12px;
  background: var(--card-bg); border: 1px solid var(--rule); border-radius: 9px;
  padding: 10px 14px; cursor: grab;
}
.repertoire-item.dragging { opacity: .4; }
.rep-index { font-family: var(--font-mono); font-weight: 700; color: var(--ink-soft); width: 22px; }
.rep-title { flex: 1; font-weight: 600; }
.rep-cat { font-size: 11.5px; color: var(--ink-soft); }
.grip { cursor: grab; color: var(--ink-soft); touch-action: none; -webkit-touch-callout: none; -webkit-user-select: none; user-select: none; }
.repertoire-item.dragging { opacity: .55; }

.rep-card {
  background: var(--card-bg); border: 1px solid var(--rule); border-radius: var(--radius);
  padding: 16px 18px; box-shadow: var(--shadow); cursor: pointer;
}
.rep-card h3 { font-family: var(--font-display); margin: 0 0 4px; font-size: 17px; }
.rep-card .count { color: var(--ink-soft); font-size: 12.5px; }

/* ===== Modal ===== */
.modal-overlay {
  position: fixed; inset: 0; background: rgba(20,20,15,0.45);
  display: flex; align-items: center; justify-content: center; z-index: 1000; padding: 20px;
}
.modal {
  background: var(--card-bg); border-radius: 14px; padding: 24px;
  width: 100%; max-width: 460px; box-shadow: var(--shadow);
  max-height: 88vh; overflow-y: auto;
}
.modal h2 { font-family: var(--font-display); margin-top: 0; }
.modal-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 18px; }

/* ===== Toast ===== */
#toast-wrap { position: fixed; bottom: 18px; right: 18px; display: flex; flex-direction: column; gap: 8px; z-index: 1200; }
.toast {
  background: var(--ink); color: var(--paper); padding: 10px 16px; border-radius: 8px;
  font-size: 13.5px; box-shadow: var(--shadow); animation: toastIn .18s ease;
}
@keyframes toastIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

/* ===== Audio player ===== */
.audio-player {
  display: flex; align-items: center; gap: 10px;
  background: var(--accent-soft); border-radius: 9px; padding: 8px 12px; margin-top: 10px;
}
.audio-player button { border: none; background: var(--accent); color: white; border-radius: 50%; width: 32px; height: 32px; cursor: pointer; }
.audio-player input[type=range] { flex: 1; }

/* ===== Ministry info ===== */
.ministry-box {
  background: var(--paper-dim); border: 1px dashed var(--rule); border-radius: 10px;
  padding: 14px 16px; margin-top: 14px; font-size: 13.5px;
}
.ministry-box h4 { margin: 0 0 8px; font-family: var(--font-display); font-size: 14.5px; }
.ministry-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 18px; }
.ministry-grid div span { color: var(--ink-soft); }


/* Logo exclusivo da impressão da cifra */
.print-song-logo { display: none; }

/* ===== Print ===== */
@media print {
  /* Impressão enxuta: esconde absolutamente tudo fora do detalhe da música. */
  main > :not(#view-detail) { display: none !important; }
  .global-account-bar, .app-author-credit { display: none !important; }
  #view-detail > :not(.song-head):not(#detail-body) { display: none !important; }
  #view-detail .song-head > :not(.print-song-logo):not(#detail-title):not(#detail-artist) { display: none !important; }

  @page { size: A4; margin: 5mm 6mm 6mm; }

  /* Na impressão da cifra ficam somente logo, música, artista e cifra/letra. */
  .sidebar, .page-head, .head-actions, .search-bar, .filter-row, .fav-star,
  #toast-wrap, .presentation-top, .presentation-bottom,
  #detail-audio, #presentation-audio, .youtube-audio-wrap, .youtube-local-warning,
  .direct-audio-player, .audio-link-fallback,
  #btn-back-to-list, #view-detail .key-control, #detail-ministry,
  #detail-category, #detail-saved-key {
    display: none !important;
  }

  html, body {
    background: #fff !important;
    color: #000 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  main {
    padding: 0 !important;
    margin: 0 !important;
    max-width: none !important;
  }

  #view-detail {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  #view-detail .song-head {
    border: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    padding: 0 0 3.5mm !important;
    margin: 0 !important;
  }

  .print-song-logo {
    display: block !important;
    width: 20mm !important;
    height: auto !important;
    margin: 0 0 2.5mm !important;
  }

  #view-detail .song-head h1,
  #detail-title {
    color: #000 !important;
    font-size: 15pt !important;
    line-height: 1.12 !important;
    margin: 0 0 1mm !important;
    padding: 0 !important;
  }

  #detail-artist,
  #view-detail .song-head .artist {
    color: #333 !important;
    font-size: 9pt !important;
    line-height: 1.15 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .song-body,
  #detail-body {
    border: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    /* Não altera separadamente o tamanho da fonte na impressão.
       As cifras ancoradas guardam posições em pixels calculadas com a
       mesma métrica exibida no app; mudar só a fonte desloca os acordes. */
    line-height: 1.14 !important;
  }

  /* Reduz cifra e letra como um único bloco. O zoom escala, ao mesmo
     tempo, texto E coordenadas dos acordes, preservando o alinhamento
     que o músico vê na tela. */
  #detail-body {
    zoom: .76;
    width: 131.58% !important;
  }

  #detail-body .line-chord,
  #detail-body .anchored-chord {
    color: #000 !important;
    font-weight: 700 !important;
    line-height: 1.02 !important;
  }

  #detail-body .line-lyric,
  #detail-body .anchored-lyric {
    color: #000 !important;
    line-height: 1.12 !important;
  }

  #detail-body .line-label {
    color: #000 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    padding: 0 !important;
    margin: 2mm 0 0.7mm !important;
    font-weight: 700 !important;
  }

  #detail-body .line-blank { height: 0.7em !important; }

  .presentation, .presentation-body { position: static; padding: 0; }
}

/* ===== Responsive ===== */
@media (max-width: 860px) {
  #app { flex-direction: column; }
  .sidebar {
    width: 100%; flex-direction: row; overflow-x: auto; padding: 10px 12px;
    border-right: none; border-bottom: 1px solid var(--rule); gap: 6px; align-items: center;
  }
  .brand { display: none; }
  .sidebar-footer { margin-top: 0; flex-direction: row; }
  .nav-item { white-space: nowrap; width: auto; }
  main { padding: 18px 16px 50px; }
  .editor-grid { grid-template-columns: 1fr; }
}


/* ===== NUVEM / CONTA ===== */
.cloud-status {
  font-size: 11.5px; color: var(--text-muted); padding: 6px 10px;
  border: 1px solid var(--border); border-radius: 999px; text-align:center;
  white-space: nowrap;
}
.cloud-status.online { color: var(--success, #2f7d4b); }
.cloud-status.syncing { color: var(--accent); }
.cloud-status.error { color: var(--danger); }
.account-card {
  border: 1px solid var(--border); background: var(--surface-2); border-radius: 12px;
  padding: 14px; display:flex; flex-direction:column; gap:4px;
}
.field-label { display:block; font-size:12.5px; font-weight:600; margin-bottom:5px; }
#auth-modal .input { width:100%; }
@media (max-width: 760px) { .cloud-status { flex:1; } }

/* Revisão de importação — v.beta 0.5
   Editor maior para correção confortável das cifras. */
#import-modal .modal {
  max-width: 1280px !important;
  width: min(1280px, 97vw);
  max-height: 96vh;
  overflow: auto;
}
.import-review-grid {
  display:grid;
  grid-template-columns:minmax(0, 1.75fr) minmax(320px, 1fr);
  gap:18px;
  margin-top:12px;
  align-items:start;
}
.import-review-title { font-weight:700; margin-bottom:7px; color:var(--text); }
.import-raw-editor {
  width:100%;
  min-height:520px;
  height:56vh;
  max-height:680px;
  resize:vertical;
  white-space:pre;
  overflow:auto;
  font-family:var(--font-mono);
  font-size:15px;
  line-height:1.55;
  tab-size:4;
  padding:14px;
}
.import-structured-preview {
  height:56vh;
  max-height:680px;
  overflow:auto;
  min-height:520px;
  white-space:pre;
  font-family:var(--font-mono);
  font-size:14px;
  line-height:1.5;
}
.import-legend { display:flex; gap:14px; flex-wrap:wrap; margin-top:8px; font-size:.82rem; color:var(--text-muted); }
.legend-chord { color:var(--chord); }

@media (max-width:900px) {
  #import-modal .modal { width:97vw; }
  .import-review-grid { grid-template-columns:1fr; }
  .import-raw-editor {
    min-height:420px;
    height:52vh;
    max-height:620px;
    font-size:15px;
  }
  .import-structured-preview {
    min-height:300px;
    height:38vh;
    max-height:480px;
  }
}

@media (max-width:520px) {
  .import-raw-editor {
    min-height:360px;
    height:50vh;
    padding:11px;
    font-size:14px;
  }
  .import-structured-preview {
    min-height:260px;
    height:34vh;
  }
}












/* Ajuste de leitura — cifra e letra quase coladas */
.song-body {
  line-height: 0.92;
}
.song-body .line-chord,
.song-body .line-lyric,
.song-body .line-label {
  display: block;
  margin: 0;
  padding: 0;
}
.song-body .line-chord {
  line-height: 0.78;
  margin-bottom: -0.18em;
}
.song-body .line-lyric {
  line-height: 0.92;
}
.song-body .line-label {
  line-height: 0.92;
}
.song-body .line-blank {
  display: block;
  height: 0.95em;
}


/* ===== Branding com logo ===== */
.brand {
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 600;
  margin: 0 4px 18px 4px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.brand-logo {
  width: 58px;
  height: 58px;
  object-fit: contain;
  flex: 0 0 auto;
}
.brand-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.brand-text strong {
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 600;
  line-height: 1.05;
}
.brand-text small {
  font-family: var(--font-body);
  font-size: 9.5px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--ink-soft);
  font-weight: 600;
  line-height: 1.2;
}
.home-branding {
  display: flex;
  align-items: center;
  gap: 16px;
}
.home-brand-logo {
  width: 74px;
  height: 74px;
  object-fit: contain;
  flex: 0 0 auto;
}
.auth-branding {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}
.auth-branding h2 {
  margin: 0;
}
.auth-brand-logo {
  width: 148px;
  max-width: 100%;
  height: auto;
  object-fit: contain;
}
@media (max-width: 768px) {
  .brand { gap: 10px; margin-bottom: 16px; }
  .brand-logo { width: 50px; height: 50px; }
  .brand-text strong { font-size: 20px; }
  .brand-text small { font-size: 8.5px; }
  .home-brand-logo { width: 60px; height: 60px; }
}


/* =========================================================
   Cifra Viva — Interface 2026 (somente visual)
   ========================================================= */
:root {
  --sidebar-deep:#07364a;
  --sidebar-mid:#0b5064;
  --viva:#18b987;
  --viva-strong:#0da77e;
  --viva-soft:#e9fbf4;
  --ui-bg:#f5f8fa;
}
body { background:var(--ui-bg); }
#app { min-height:100vh; }
.sidebar {
  width:240px;
  min-width:240px;
  background:linear-gradient(180deg,var(--sidebar-deep) 0%,#0a465b 55%,#08384c 100%);
  color:white;
  border-right:none;
  padding:18px 10px 14px;
  overflow-y:auto;
  box-shadow:8px 0 26px rgba(5,45,61,.10);
}
.brand {
  display:flex;
  align-items:center;
  gap:9px;
  margin:0 4px 18px;
  color:white;
}
.brand strong { font-family:var(--font-display); font-size:24px; font-weight:600; white-space:nowrap; }
.brand-mark { width:48px; height:48px; overflow:hidden; flex:0 0 48px; position:relative; border-radius:12px; }
.brand-mark img { width:62px; height:62px; object-fit:contain; position:absolute; left:-7px; top:-2px; transform:scale(1.18); transform-origin:top center; }
.sidebar .nav-item {
  color:rgba(255,255,255,.82);
  border-radius:8px;
  padding:9px 11px;
  margin:1px 0;
}
.sidebar .nav-item:hover { background:rgba(255,255,255,.09); color:white; }
.sidebar .nav-item.active { background:linear-gradient(90deg,#18bf7f,#13aa91); color:white; box-shadow:0 5px 16px rgba(4,180,130,.20); }
.sidebar .nav-icon { font-size:16px; }
.sidebar-categories { margin-top:16px; padding-top:14px; border-top:1px solid rgba(255,255,255,.12); }
.sidebar-section-title { color:rgba(255,255,255,.63); text-transform:uppercase; letter-spacing:.12em; font-size:10px; font-weight:700; padding:0 10px 7px; }
#sidebar-category-list { display:flex; flex-direction:column; gap:1px; }
.sidebar-cat {
  border:0; background:transparent; color:rgba(255,255,255,.78); width:100%; text-align:left;
  padding:6px 10px; border-radius:7px; font:inherit; font-size:12.5px; cursor:pointer;
  display:grid; grid-template-columns:20px 1fr; align-items:center; gap:5px;
}
.sidebar-cat:hover { color:white; background:rgba(255,255,255,.08); }
.sidebar-cat.active { color:white; background:rgba(19,185,135,.30); font-weight:700; }
.sidebar-footer { margin-top:20px; border-top:1px solid rgba(255,255,255,.12); padding-top:10px; }
.sidebar .cloud-status { color:rgba(255,255,255,.72); font-size:10.5px; padding:0 8px 5px; }
.sidebar .theme-toggle { background:rgba(255,255,255,.06); color:rgba(255,255,255,.82); border-color:rgba(255,255,255,.13); }
.sidebar .theme-toggle:hover { background:rgba(255,255,255,.11); color:white; }
main { padding:26px 30px 60px; background:linear-gradient(135deg,#f8fbfc 0%,#f2f7f9 100%); }
.page-head { background:rgba(255,255,255,.78); padding:18px 20px; border:1px solid #e5ecef; border-radius:14px; box-shadow:0 8px 28px rgba(10,63,82,.05); }
.page-title { color:#102c3a; font-size:30px; }
.page-sub { color:#72858d; }
.btn-primary { background:linear-gradient(90deg,var(--viva),#0da99a); border-color:transparent; color:white; box-shadow:0 5px 14px rgba(13,169,137,.18); }
.btn-primary:hover { filter:brightness(.98); border-color:transparent; }
.search-bar { background:white; border:1px solid #dbe5e9; box-shadow:0 5px 18px rgba(12,61,80,.04); border-radius:13px; }
.song-grid { grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:10px; }
.song-card,.rep-card { border:1px solid #dfe8eb; box-shadow:0 4px 15px rgba(10,62,82,.045); border-radius:11px; transition:.15s ease; }
.song-card:hover,.rep-card:hover { transform:translateY(-1px); border-color:#a9ddce; box-shadow:0 7px 22px rgba(10,108,90,.08); }
.song-card .title { color:#173446; }
.cat-badge { background:#eaf7f3; color:#168667; }
.tag-key,.key-display { background:#e6f8f3; color:#09886b; }
.chip.active { background:#13ae89; color:white; border-color:#13ae89; }

/* Detalhe da música no estilo limpo do mockup */
#view-detail .song-head { border:0; box-shadow:none; background:transparent; padding:4px 0 14px; border-bottom:1px solid #dce6e9; border-radius:0; }
#view-detail .song-head h1 { font-size:34px; color:#102b3a; }
#view-detail .song-body { max-width:980px; background:transparent; }
.line-chord { color:#009c9b; font-weight:800; }
.line-label { color:#0ba58e; background:#e6faf4; display:inline-block; border-radius:7px; padding:2px 8px; margin:8px 0 3px; }

/* Espaçamento aprovado: cifra/linha quase coladas; estrofes pelo branco */
.song-body { line-height:.92; }
.song-body .line-chord,.song-body .line-lyric,.song-body .line-label { margin:0; padding:0; }
.song-body .line-chord { display:block; line-height:.78; margin-bottom:-.18em; }
.song-body .line-lyric { display:block; line-height:.92; }
.song-body .line-blank { display:block; height:.95em; }
.presentation-body { line-height:.92; }
.presentation-body .line-chord { display:block; line-height:.78; margin-bottom:-.18em; }
.presentation-body .line-lyric { display:block; line-height:.92; }

/* Identidade sem subtítulo */
.home-branding { gap:12px; }
.home-brand-mark { width:58px; height:58px; overflow:hidden; position:relative; border-radius:14px; }
.home-brand-mark img { width:75px; height:75px; position:absolute; left:-8px; top:-3px; object-fit:contain; transform:scale(1.18); transform-origin:top center; }
.auth-brand-mark { width:92px; height:92px; overflow:hidden; position:relative; margin:auto; }
.auth-brand-mark img { width:116px; height:116px; position:absolute; left:-12px; top:-4px; object-fit:contain; transform:scale(1.17); transform-origin:top center; }

/* Lista de categorias mais legível */
#categories-list { grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); }
#categories-list .song-card { border-left:4px solid var(--viva); }

@media (max-width:900px) {
  .sidebar { width:205px; min-width:205px; }
  .brand strong { font-size:20px; }
  .brand-mark { width:42px; height:42px; flex-basis:42px; }
  main { padding:20px 18px 50px; }
  .sidebar-cat { font-size:11.5px; padding:5px 8px; }
}
@media (max-width:700px) {
  .sidebar-categories { display:none; }
  .brand-mark { display:none; }
  .brand { justify-content:center; }
  .page-title { font-size:25px; }
}


/* ===== Áudio / YouTube ===== */
#detail-audio { margin-top: 12px; }

.youtube-audio-wrap {
  display: inline-flex;
  flex-direction: column;
  gap: 6px;
  padding: 8px;
  border: 1px solid var(--rule);
  border-radius: 10px;
  background: var(--card-bg);
  max-width: 100%;
}
.youtube-audio-label {
  font-size: 11.5px;
  color: var(--ink-soft);
  font-weight: 600;
}
.youtube-audio-frame {
  width: 320px;
  height: 200px;
  max-width: 100%;
  border: 0;
  border-radius: 8px;
  display: block;
  background: #000;
}
.youtube-audio-compact {
  padding: 4px;
  gap: 3px;
}
.youtube-audio-compact .youtube-audio-label { font-size: 10px; }
.youtube-audio-compact .youtube-audio-frame {
  width: 200px;
  height: 200px;
}
.youtube-audio-slim .youtube-audio-frame {
  width: min(360px, 100%);
  height: 72px;
}
.youtube-audio-slim.youtube-audio-compact .youtube-audio-frame {
  width: min(260px, 100%);
  height: 66px;
}

/* Player customizado via API do YouTube — o vídeo fica escondido de
   verdade (1x1px), só os controles próprios aparecem. */
.yt-audio-player {
  display: inline-flex;
  flex-direction: column;
  gap: 5px;
  padding: 8px 10px;
  border: 1px solid var(--rule);
  border-radius: 10px;
  background: var(--card-bg);
  max-width: 100%;
}
.yt-audio-label {
  font-size: 11.5px;
  color: var(--ink-soft);
  font-weight: 600;
}
.yt-audio-controls {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 220px;
}
.yt-audio-playpause {
  flex: none;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: 1px solid var(--rule);
  background: var(--accent, #0a8d83);
  color: #fff;
  font-size: 13px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
}
.yt-audio-playpause:disabled { opacity: .5; cursor: default; }
.yt-audio-time {
  font-size: 11px;
  color: var(--ink-soft);
  font-variant-numeric: tabular-nums;
  flex: none;
}
.yt-audio-seek {
  flex: 1;
  min-width: 80px;
  accent-color: var(--accent, #0a8d83);
}
.yt-audio-hidden-target {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}
.yt-audio-player.yt-audio-compact {
  padding: 4px 7px;
  gap: 3px;
}
.yt-audio-player.yt-audio-compact .yt-audio-label {
  font-size: 9.5px;
}
.yt-audio-player.yt-audio-compact .yt-audio-controls {
  gap: 5px;
  min-width: 150px;
}
.yt-audio-player.yt-audio-compact .yt-audio-playpause {
  width: 22px;
  height: 22px;
  font-size: 10px;
}
.yt-audio-player.yt-audio-compact .yt-audio-time {
  font-size: 9.5px;
}
.direct-audio-player {
  width: min(520px, 100%);
  height: 36px;
}
.audio-link-fallback {
  display: flex;
  gap: 8px;
  align-items: center;
  font-size: 12.5px;
  color: var(--ink-soft);
}
.audio-link-fallback a {
  color: var(--accent);
  font-weight: 600;
}
#presentation-audio {
  display: flex;
  align-items: center;
}
@media (max-width: 720px) {
  .youtube-audio-frame {
    width: 260px;
    height: 200px;
  }
}


/* Aviso quando o app está aberto como arquivo local (file://) */
.youtube-local-warning {
  width: min(420px, 100%);
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 13px 14px;
  border: 1px solid var(--rule);
  border-radius: 10px;
  background: var(--card-bg);
  font-size: 12.5px;
}
.youtube-local-warning strong {
  color: var(--ink);
  line-height: 1.35;
}
.youtube-local-warning span {
  color: var(--ink-soft);
  line-height: 1.4;
}
.youtube-open-button {
  align-self: flex-start;
  display: inline-flex;
  padding: 7px 11px;
  border-radius: 8px;
  background: var(--accent);
  color: #fff !important;
  text-decoration: none;
  font-weight: 700;
  margin-top: 2px;
}
.youtube-local-warning-compact {
  width: 260px;
  padding: 8px 10px;
  gap: 5px;
  font-size: 11px;
}


/* Áudio de referência agora aparece no Modo Apresentação (player compacto,
   ligado a partir do link salvo na música). */


/* ===== Ajuste: cifras mais escuras ===== */
:root {
  --chord: #075f5c;
  --chord-strong: #044c49;
}
#view-detail .line-chord,
.line-chord {
  color: #075f5c !important;
}
.key-display,
.tag-key {
  color: #075f5c !important;
}

/* ===== Modo escuro completo para a interface nova ===== */
[data-theme="dark"] {
  --paper: #0f171d;
  --paper-dim: #101d25;
  --ink: #eef4f2;
  --ink-soft: #9eafb4;
  --rule: #2d414b;
  --chord: #52c7bd;
  --chord-strong: #7bd8d0;
  --accent: #1cb58b;
  --accent-soft: #17352f;
  --card-bg: #16232b;
  --ui-bg: #0f171d;
}

[data-theme="dark"] body,
[data-theme="dark"] main {
  background: #0f171d !important;
  color: var(--ink) !important;
}

[data-theme="dark"] main {
  background:
    radial-gradient(circle at 70% 0%, rgba(22,107,104,.12), transparent 34%),
    linear-gradient(135deg,#101a21 0%,#0c141a 100%) !important;
}

[data-theme="dark"] .page-head {
  background: rgba(22,35,43,.96) !important;
  border-color: #2a404b !important;
  box-shadow: 0 8px 28px rgba(0,0,0,.22) !important;
}

[data-theme="dark"] .page-title,
[data-theme="dark"] #view-detail .song-head h1,
[data-theme="dark"] .song-card .title {
  color: #eef7f5 !important;
}

[data-theme="dark"] .page-sub {
  color: #9aadb4 !important;
}

[data-theme="dark"] .search-bar,
[data-theme="dark"] .song-card,
[data-theme="dark"] .rep-card,
[data-theme="dark"] .modal,
[data-theme="dark"] .youtube-audio-wrap,
[data-theme="dark"] .yt-audio-player,
[data-theme="dark"] .youtube-local-warning,
[data-theme="dark"] .field input,
[data-theme="dark"] .field select,
[data-theme="dark"] .field textarea,
[data-theme="dark"] .input {
  background: #16232b !important;
  border-color: #2b414b !important;
  color: #eef4f2 !important;
}

[data-theme="dark"] .search-bar input,
[data-theme="dark"] input,
[data-theme="dark"] textarea,
[data-theme="dark"] select {
  color: #eef4f2 !important;
}

[data-theme="dark"] .search-bar input::placeholder,
[data-theme="dark"] input::placeholder,
[data-theme="dark"] textarea::placeholder {
  color: #7e929b !important;
}

[data-theme="dark"] .song-card:hover,
[data-theme="dark"] .rep-card:hover {
  border-color: #338f7c !important;
  box-shadow: 0 7px 22px rgba(0,0,0,.28) !important;
}

[data-theme="dark"] .cat-badge {
  background: #17352f !important;
  color: #73d5bd !important;
  border-color: #295147 !important;
}

[data-theme="dark"] .tag-key,
[data-theme="dark"] .key-display {
  background: #14322f !important;
  color: #70d4ca !important;
}

[data-theme="dark"] #view-detail .song-head {
  border-bottom-color: #2b414b !important;
}

[data-theme="dark"] .song-body {
  color: #eef4f2 !important;
}

[data-theme="dark"] .line-lyric {
  color: #eef4f2 !important;
}

[data-theme="dark"] .line-chord,
[data-theme="dark"] #view-detail .line-chord {
  color: #61cec4 !important;
}

[data-theme="dark"] .line-label {
  color: #81dbc5 !important;
  background: #17352f !important;
}

[data-theme="dark"] .btn {
  background: #16232b;
  border-color: #314650;
  color: #eef4f2;
}

[data-theme="dark"] .btn-primary {
  background: linear-gradient(90deg,#17b785,#0d9c8d) !important;
  color: white !important;
  border-color: transparent !important;
}

[data-theme="dark"] .modal-overlay {
  background: rgba(0,0,0,.72);
}

[data-theme="dark"] .import-raw-editor,
[data-theme="dark"] .import-structured-preview {
  background: #101b22 !important;
  color: #eef4f2 !important;
  border-color: #304750 !important;
}

[data-theme="dark"] .youtube-audio-label,
[data-theme="dark"] .yt-audio-label,
[data-theme="dark"] .youtube-local-warning span,
[data-theme="dark"] .hint {
  color: #9eafb4 !important;
}

[data-theme="dark"] .youtube-local-warning strong {
  color: #eef4f2 !important;
}


/* ===== Nova identidade Cifra Viva ===== */
.brand-full {
  display: flex !important;
  justify-content: center;
  align-items: center;
  margin: 0 0 20px 0 !important;
}
.brand-full-logo {
  width: 158px;
  max-width: 92%;
  height: auto;
  object-fit: contain;
  display: block;
}

.home-branding-full {
  display: flex;
  align-items: center;
}
.home-full-logo {
  width: 142px;
  height: auto;
  object-fit: contain;
  display: block;
}

.auth-branding-full {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
}
.auth-full-logo {
  width: 185px;
  max-width: 95%;
  height: auto;
  object-fit: contain;
}
.auth-branding-full h2 {
  margin: 0;
  font-size: 20px;
}

@media (max-width: 900px) {
  .brand-full-logo { width: 140px; }
  .home-full-logo { width: 125px; }
}

@media (max-width: 700px) {
  .brand-full {
    display: flex !important;
  }
  .brand-full-logo {
    width: 118px;
  }
  .home-full-logo {
    width: 112px;
  }
}



/* =========================================================
   RESPONSIVIDADE DE TABLET — Cifra Viva
   Mantém desktop intacto e evita conteúdo espremido.
   ========================================================= */

/* Tablet paisagem / telas médias */
@media (min-width: 901px) and (max-width: 1180px) {
  .sidebar {
    width: 190px !important;
    padding: 18px 10px !important;
  }

  .brand-full-logo {
    width: 122px !important;
    max-width: 100% !important;
  }

  .nav-item {
    padding: 8px 9px !important;
    gap: 7px !important;
    font-size: 13px !important;
  }

  .nav-icon {
    width: 16px !important;
  }

  .sidebar-category-title {
    font-size: 10px !important;
    margin-top: 12px !important;
  }

  .sidebar-category-item {
    font-size: 11.5px !important;
    padding: 5px 7px !important;
  }

  .sidebar-footer {
    gap: 4px !important;
  }

  .cloud-status,
  .theme-toggle {
    font-size: 10.5px !important;
  }

  main {
    padding: 20px 20px 48px !important;
  }

  .page-head {
    gap: 10px !important;
    margin-bottom: 16px !important;
  }

  .page-title {
    font-size: 24px !important;
  }

  .home-full-logo {
    width: 112px !important;
  }

  .song-grid {
    grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)) !important;
    gap: 10px !important;
  }

  .song-card {
    padding: 12px 13px !important;
  }

  .song-card .title {
    font-size: 15px !important;
  }
}

/* Tablet retrato e telas menores:
   transforma a lateral em barra horizontal para liberar a largura da cifra. */
@media (max-width: 900px) {
  #app {
    flex-direction: column !important;
  }

  .sidebar {
    position: sticky !important;
    top: 0;
    z-index: 100;
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    flex-direction: row !important;
    align-items: center !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    padding: 8px 10px !important;
    border-right: none !important;
    border-bottom: 1px solid var(--rule) !important;
    gap: 5px !important;
  }

  .brand-full {
    display: flex !important;
    flex: 0 0 auto !important;
    margin: 0 8px 0 0 !important;
  }

  .brand-full-logo {
    width: 82px !important;
    max-height: 58px !important;
    object-fit: contain !important;
  }

  .nav-item {
    flex: 0 0 auto !important;
    width: auto !important;
    white-space: nowrap !important;
    padding: 7px 9px !important;
    font-size: 12.5px !important;
  }

  /* Categorias continuam disponíveis na tela Categorias;
     escondemos apenas a lista duplicada da barra em telas estreitas. */
  .sidebar-categories,
  .sidebar-category-title,
  .sidebar-category-list {
    display: none !important;
  }

  .sidebar-footer {
    margin: 0 0 0 auto !important;
    flex: 0 0 auto !important;
    flex-direction: row !important;
    gap: 5px !important;
  }

  .cloud-status {
    display: none !important;
  }

  .theme-toggle {
    white-space: nowrap !important;
    padding: 7px 9px !important;
    font-size: 11px !important;
  }

  #account-button #account-label,
  #sync-button span:first-child,
  #theme-toggle #theme-label {
    display: none !important;
  }

  main {
    width: 100% !important;
    padding: 16px 14px 44px !important;
  }

  .page-head {
    align-items: center !important;
    gap: 10px !important;
    margin-bottom: 14px !important;
  }

  .page-title {
    font-size: 23px !important;
  }

  .home-full-logo {
    width: 105px !important;
  }

  .song-grid {
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)) !important;
  }

  .editor-grid,
  .ministry-grid {
    grid-template-columns: 1fr !important;
  }
}

/* Tablets/celulares mais estreitos */
@media (max-width: 620px) {
  .brand-full-logo {
    width: 68px !important;
    max-height: 48px !important;
  }

  .nav-item {
    padding: 6px 7px !important;
    font-size: 12px !important;
  }

  main {
    padding: 13px 10px 40px !important;
  }

  .page-head {
    flex-direction: column !important;
    align-items: stretch !important;
  }

  .page-head > .btn,
  .page-head .head-actions {
    width: 100% !important;
  }

  .song-grid {
    grid-template-columns: 1fr !important;
  }

  .search-bar {
    width: 100% !important;
  }
}

/* Evita qualquer elemento de conteúdo ultrapassar a largura disponível */
main,
.view,
.song-grid,
.song-card,
.song-body,
.page-head,
.editor-grid {
  min-width: 0;
  max-width: 100%;
}


/* ===== PWA / uso offline ===== */
.pwa-install-button {
  border-color: rgba(23,183,133,.55) !important;
}
.app-offline #cloud-status {
  color: #f2bd57 !important;
}
.app-offline #cloud-status::after {
  content: " • offline";
}
@media (max-width: 900px) {
  .pwa-install-button span:first-child {
    display: none;
  }
}


/* ===== Cifra Viva Comercial v0.1 ===== */
.commercial-title{margin-top:14px!important;color:rgba(255,255,255,.58)!important;font-size:9px!important;letter-spacing:.14em}
.plan-mini-badge{display:inline-flex;margin-left:7px;padding:3px 8px;border-radius:999px;background:rgba(21,180,145,.12);color:var(--teal,#0d8278);font-size:10px;font-weight:700;vertical-align:middle}
.commercial-grid{display:grid;gap:16px}.commercial-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.commercial-card{background:var(--card,#fff);border:1px solid var(--rule,#dde7e8);border-radius:18px;padding:20px;box-shadow:0 5px 18px rgba(6,52,61,.06)}
.commercial-card-head{display:flex;gap:12px;align-items:center;margin-bottom:18px}.commercial-card-head h3{font-family:var(--font-display);font-size:22px;margin:2px 0 0}.commercial-icon,.plan-symbol{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:rgba(16,172,145,.11);font-size:23px}.commercial-eyebrow{font-size:10px;letter-spacing:.12em;font-weight:800;color:var(--muted,#728388)}
.plans-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.plan-card{position:relative;background:var(--card,#fff);border:1px solid var(--rule,#dde7e8);border-radius:20px;padding:21px;box-shadow:0 5px 18px rgba(6,52,61,.05)}.plan-card.featured{border:2px solid #14b88d}.plan-card.current:before{content:'ATUAL';position:absolute;right:14px;top:14px;font-size:9px;font-weight:800;letter-spacing:.11em;background:#0c786f;color:#fff;padding:5px 8px;border-radius:999px}.plan-top{display:flex;gap:12px;align-items:center}.plan-top h2{font-family:var(--font-display);font-size:25px;margin:2px 0}.plan-features{display:grid;gap:10px;margin:22px 0;min-height:180px;font-size:13px}.plan-features div{padding-bottom:8px;border-bottom:1px solid var(--rule,#edf1f1)}.plan-action{width:100%}.commercial-note{margin-top:14px;text-align:center}.usage-line{margin:14px 0}.usage-label{display:flex;justify-content:space-between;font-size:12px;margin-bottom:6px}.usage-track{height:8px;border-radius:999px;background:var(--soft,#eaf0f1);overflow:hidden}.usage-track span{display:block;height:100%;border-radius:999px;background:#12aa8c}.commercial-limit-banner{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:rgba(17,169,140,.08);border:1px solid rgba(17,169,140,.18);border-radius:15px;padding:14px 16px;margin-bottom:16px}.commercial-limit-banner strong{font-family:var(--font-display);font-size:17px}.commercial-limit-banner span{flex:1;min-width:220px;font-size:12px;color:var(--muted,#64777c)}
[data-theme="dark"] .commercial-card,[data-theme="dark"] .plan-card{background:#123b43;border-color:#285760}[data-theme="dark"] .plan-features div{border-color:#285760}[data-theme="dark"] .usage-track{background:#254d55}
@media(max-width:900px){.commercial-grid-2,.plans-grid{grid-template-columns:1fr}.plan-features{min-height:0}.commercial-title{display:none!important}}


/* =========================================================
   HUB COMERCIAL NA ÁREA PRINCIPAL
   ========================================================= */

#commercial-hub {
  display: none;
  width: 100%;
  min-width: 0;
  grid-template-columns: minmax(250px, .9fr) minmax(0, 1.45fr) minmax(300px, .95fr);
  gap: 16px;
  align-items: start;
}

#commercial-hub:has(> .view.active) {
  display: grid;
}

#commercial-hub > .view {
  width: 100%;
  min-width: 0;
  margin: 0 !important;
}

#commercial-hub > .view.active {
  display: block !important;
}

#view-account .commercial-grid-2 {
  grid-template-columns: 1fr !important;
}

#view-plans .plans-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 10px !important;
}

#view-plans .plan-card,
#view-plans .commercial-card {
  min-width: 0 !important;
}

.commercial-focus {
  outline: 2px solid rgba(23,183,133,.2);
  outline-offset: 3px;
  border-radius: 16px;
}

@media (max-width: 1220px) {
  #commercial-hub {
    grid-template-columns: minmax(230px, .8fr) minmax(0, 1.2fr);
  }

  #view-ministry {
    grid-column: 1 / -1;
  }

  #view-plans .plans-grid {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 980px) {
  #commercial-hub {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  #view-account,
  #view-plans,
  #view-ministry {
    grid-column: auto !important;
  }

  #view-plans .plans-grid {
    grid-template-columns: 1fr !important;
  }
}


/* =========================================================
   ÁREA COMERCIAL — UMA TELA POR VEZ
   ========================================================= */

#commercial-hub {
  display: block !important;
  width: 100% !important;
}

#commercial-hub > .view {
  display: none !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
}

#commercial-hub > .view.active {
  display: block !important;
}

/* Planos ocupa toda a largura disponível */
#view-plans .plans-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 14px !important;
}

/* Minha Conta usa largura confortável */
#view-account .commercial-grid-2 {
  grid-template-columns: minmax(0, 1fr) minmax(260px, .7fr) !important;
  gap: 16px !important;
}

/* Ministério ocupa a área principal inteira */
#view-ministry {
  width: 100% !important;
}

@media (max-width: 980px) {
  #view-plans .plans-grid,
  #view-account .commercial-grid-2 {
    grid-template-columns: 1fr !important;
  }
}


/* =========================================================
   CIFRA VIVA COMERCIAL v0.2 — MEU MINISTÉRIO
   ========================================================= */
.ministry-v02-layout{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(320px,1fr) minmax(320px,1fr);gap:14px;align-items:start}
.ministry-v02-panel{background:var(--card,#fff);border:1px solid var(--rule,#dde7e8);border-radius:18px;padding:17px;box-shadow:0 5px 18px rgba(6,52,61,.05);min-width:0}
.ministry-v02-panel+.ministry-v02-layout{margin-top:14px}
.ministry-v02-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
.ministry-v02-head h3{margin:2px 0 0;font-family:var(--font-display);font-size:21px}
.mini-count{font-size:11px;font-weight:800;padding:5px 9px;border-radius:999px;background:rgba(17,169,140,.11);color:#087c69}
.ministry-v02-list{display:grid;gap:8px}
.ministry-select{width:100%;border:1px solid var(--rule,#dde7e8);background:transparent;border-radius:13px;padding:10px;display:flex;gap:10px;text-align:left;cursor:pointer;color:inherit}
.ministry-select.active{border-color:#14b88d;background:rgba(20,184,141,.08)}
.ministry-select span:last-child{display:grid;gap:2px;min-width:0}.ministry-select strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ministry-select small{color:var(--muted,#728388);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ministry-avatar{width:34px;height:34px;border-radius:10px;background:rgba(17,169,140,.11);display:grid;place-items:center;flex:0 0 auto}
.ministry-row{border:1px solid var(--rule,#e3ebec);border-radius:12px;padding:10px 11px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}
.ministry-row.pending{border-style:dashed}.ministry-row>div{display:grid;gap:2px;min-width:0;flex:1 1 160px}.ministry-row strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ministry-row span{font-size:11px;color:var(--muted,#728388)}
.ministry-member-role{
  border:1px solid var(--rule,#e3ebec);border-radius:8px;padding:8px 10px;
  font-size:13px;background:var(--card-bg,#fff);color:var(--ink,#153b40);font-family:var(--font-body,sans-serif);
  outline:none;flex:none;
}
.ministry-member-role:focus{border-color:var(--accent,#0a8d83)}
.ministry-invite-form,.ministry-share-form{display:grid;grid-template-columns:minmax(0,1fr) 120px auto;gap:7px;margin-bottom:12px}
.ministry-share-form{grid-template-columns:minmax(0,1fr) auto}
.ministry-invite-form select,.ministry-invite-form input,.ministry-share-form select{width:100%;max-width:100%;min-width:0;box-sizing:border-box}
.btn-small{padding:6px 9px!important;font-size:10.5px!important}
.ministry-empty-line{padding:10px 2px}
.ministry-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ministry-preview-grid div{border:1px solid var(--rule,#e1eaeb);border-radius:12px;padding:12px;display:flex;gap:9px;align-items:center}
.ministry-preview-grid b{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:rgba(17,169,140,.11);color:#087c69}
.ministry-preview-grid span{font-size:12px}
[data-theme="dark"] .ministry-v02-panel{background:#123b43;border-color:#285760}
[data-theme="dark"] .ministry-select,[data-theme="dark"] .ministry-row,[data-theme="dark"] .ministry-preview-grid div{border-color:#285760}
@media(max-width:1180px){.ministry-v02-layout{grid-template-columns:1fr 1fr}.ministry-selector{grid-column:1/-1}.ministry-selector .ministry-v02-list{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}}
@media(max-width:900px){.ministry-v02-layout{grid-template-columns:1fr}.ministry-selector{grid-column:auto}.ministry-invite-form{grid-template-columns:1fr}.ministry-share-form{grid-template-columns:1fr}.ministry-preview-grid{grid-template-columns:1fr}}


/* =========================================================
   CIFRA VIVA COMERCIAL v0.3 — CONVITES
   ========================================================= */
.invite-row{align-items:flex-start!important}
.invite-row-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.invite-landing-card{
  margin:0 0 16px;
  padding:14px 16px;
  border:1px solid rgba(17,169,140,.35);
  background:rgba(17,169,140,.08);
  border-radius:16px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}
.invite-landing-card>div{display:grid;gap:4px}
.invite-landing-card strong{font-family:var(--font-display);font-size:20px}
.invite-landing-card span{font-size:12px;color:var(--muted,#6f8085)}
[data-theme="dark"] .invite-landing-card{background:rgba(97,206,196,.08);border-color:#2f696c}
@media(max-width:720px){
  .invite-row{display:grid!important}
  .invite-row-actions{justify-content:flex-start}
  .invite-landing-card{align-items:stretch;flex-direction:column}
}


/* =========================================================
   CIFRA VIVA COMERCIAL v0.4 — PLANOS / BILLING
   ========================================================= */
.billing-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:14px}
.billing-toolbar h2{margin:2px 0 4px;font-family:var(--font-display);font-size:28px}
.billing-toolbar p{margin:0;color:var(--muted,#728388);font-size:12px}
.billing-cycle-toggle{display:flex;border:1px solid var(--rule,#dbe6e8);padding:4px;border-radius:999px;background:var(--card,#fff)}
.billing-cycle-toggle button{border:0;background:transparent;padding:8px 14px;border-radius:999px;cursor:pointer;color:inherit;font-weight:700;font-size:12px}
.billing-cycle-toggle button.active{background:#0e8f78;color:#fff}
.billing-test-banner{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:rgba(242,189,87,.14);border:1px solid rgba(242,189,87,.35);margin-bottom:14px;font-size:12px}
.billing-test-banner strong{color:#9a6a00}.billing-test-banner span{color:var(--muted,#728388)}
.billing-plans-grid{align-items:stretch}
.plan-card-commercial{position:relative;border:1px solid var(--rule,#dfe8e9);border-radius:18px;padding:18px;background:var(--card,#fff);display:flex;flex-direction:column;min-width:0}
.plan-card-commercial.recommended{border-color:#16a985;box-shadow:0 10px 28px rgba(15,143,120,.11)}
.plan-card-commercial.current{outline:2px solid rgba(15,143,120,.16)}
.plan-ribbon{position:absolute;right:14px;top:-10px;background:#0e8f78;color:#fff;font-size:10px;font-weight:800;padding:5px 9px;border-radius:999px}
.plan-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.plan-card-head h3{font-family:var(--font-display);font-size:24px;margin:3px 0 0}
.current-plan-badge,.trial-pill{font-size:10px;font-weight:800;border-radius:999px;padding:5px 8px;background:rgba(15,143,120,.1);color:#0b7a67}
.plan-description{min-height:34px;color:var(--muted,#728388);font-size:12px}
.commercial-price{display:flex;align-items:baseline;gap:5px;margin:8px 0}
.commercial-price strong{font-family:var(--font-display);font-size:30px}
.commercial-price span{font-size:11px;color:var(--muted,#728388)}
.pending-price strong{font-size:22px}
.trial-pill{width:max-content;margin-bottom:8px}
.plan-feature-list{list-style:none;padding:0;margin:8px 0 18px;display:grid;gap:7px;font-size:12px;flex:1}
.plan-feature-list li{padding-bottom:6px;border-bottom:1px dashed var(--rule,#e3ebec)}
.plan-action{width:100%}
.billing-provider-note{display:block;text-align:center;color:var(--muted,#728388);margin-top:8px}
.billing-test-modal-card{max-width:500px}
.billing-test-summary{display:grid;gap:8px;margin:16px 0}
.billing-coupon-row{display:flex;gap:8px;margin-bottom:4px}
.billing-coupon-row input{flex:1}
.billing-test-summary div{display:flex;justify-content:space-between;gap:12px;border:1px solid var(--rule,#e2eaeb);border-radius:10px;padding:10px 12px}
.billing-test-summary span{color:var(--muted,#728388);font-size:12px}
[data-theme="dark"] .billing-cycle-toggle,[data-theme="dark"] .plan-card-commercial{background:#123b43;border-color:#285760}
@media(max-width:900px){.billing-toolbar{align-items:stretch;flex-direction:column}.billing-cycle-toggle{width:max-content}.billing-test-banner{align-items:flex-start;flex-direction:column}}


/* =========================================================
   v0.4.1 — CORREÇÃO DEFINITIVA DA TELA PLANOS
   O contêiner externo não pode ser grid de cards.
   ========================================================= */

#view-plans {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
}

#commercial-plans-grid.billing-plans-shell {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
}

#commercial-plans-grid > .billing-toolbar,
#commercial-plans-grid > .billing-test-banner,
#commercial-plans-grid > .billing-plans-grid {
  width: 100% !important;
  max-width: none !important;
  grid-column: auto !important;
}

#commercial-plans-grid > .billing-plans-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(230px, 1fr)) !important;
  gap: 16px !important;
  align-items: stretch !important;
}

#commercial-plans-grid .plan-card-commercial {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
}

#commercial-plans-grid .plan-card-commercial h3,
#commercial-plans-grid .commercial-price strong {
  overflow-wrap: normal !important;
  word-break: normal !important;
}

@media (max-width: 1150px) {
  #commercial-plans-grid > .billing-plans-grid {
    grid-template-columns: repeat(2, minmax(250px, 1fr)) !important;
  }

  #commercial-plans-grid > .billing-plans-grid > :last-child {
    grid-column: 1 / -1;
  }
}

@media (max-width: 800px) {
  #commercial-plans-grid > .billing-plans-grid {
    grid-template-columns: 1fr !important;
  }

  #commercial-plans-grid > .billing-plans-grid > :last-child {
    grid-column: auto;
  }
}


/* =========================================================
   v0.4.2 — PREÇOS E OFERTA DE LANÇAMENTO
   ========================================================= */
.pricing-stack{
  display:grid!important;
  gap:5px!important;
  align-items:initial!important;
}
.regular-price{
  display:flex;
  align-items:center;
  gap:7px;
  font-size:11px;
  color:var(--muted,#728388);
}
.regular-price s{
  font-size:13px;
}
.launch-price{
  display:flex;
  align-items:baseline;
  gap:5px;
}
.launch-price strong{
  color:#0b806c;
}
.launch-promo-badge{
  width:max-content;
  max-width:100%;
  margin:-2px 0 9px;
  padding:6px 9px;
  border-radius:999px;
  background:rgba(242,189,87,.18);
  border:1px solid rgba(242,189,87,.4);
  color:#8b6200;
  font-size:10.5px;
  font-weight:800;
}
.launch-modal-callout{
  display:grid;
  gap:4px;
  margin:12px 0;
  padding:11px 12px;
  border-radius:12px;
  background:rgba(242,189,87,.14);
  border:1px solid rgba(242,189,87,.36);
}
.launch-modal-callout strong{color:#8b6200}
.launch-modal-callout span{font-size:12px;color:var(--muted,#728388)}
[data-theme="dark"] .launch-price strong{color:#61cec4}


/* =========================================================
   v0.4.4 — TOM PREFERIDO POR MÚSICA
   ========================================================= */
.btn-save-key{
  border-color:rgba(14,143,120,.38)!important;
  color:#0b7d69!important;
}
.saved-key-badge{
  align-items:center;
  padding:6px 9px;
  border-radius:999px;
  font-size:10.5px;
  font-weight:800;
  background:rgba(14,143,120,.10);
  color:#0b7d69;
  border:1px solid rgba(14,143,120,.22);
}
[data-theme="dark"] .btn-save-key,
[data-theme="dark"] .saved-key-badge{
  color:#61cec4!important;
  border-color:#2f696c!important;
}
@media(max-width:720px){
  .key-control{
    flex-wrap:wrap;
  }
  .saved-key-badge{
    width:max-content;
  }
}

/* v0.5.4 — Checkout hospedado Mercado Pago */
.checkout-email-label{display:block;margin:14px 0 6px;font-size:12px;font-weight:800}
#mp-open-checkout{width:100%;margin-top:10px}
#mp-checkout-status{min-height:18px;margin-top:8px}


/* v0.5.6 — orientação de primeiro acesso */
.auth-help{
  margin-top:12px;
  padding:12px 14px;
  border:1px solid rgba(14,143,120,.22);
  border-radius:12px;
  background:rgba(14,143,120,.06);
  font-size:12px;
  line-height:1.45;
}
.auth-help strong{display:block;margin-bottom:6px;font-size:13px}
.auth-help ol{margin:6px 0 8px 20px;padding:0}
.auth-help li{margin:3px 0}
.auth-help span{color:var(--muted,#64787d)}
.auth-help-success{
  border-color:rgba(14,143,120,.45);
  background:rgba(14,143,120,.10);
}
.auth-help-success p{margin:6px 0 0}

/* v0.6.0 — Catálogo Cifra Viva / Conta Master */
.master-only{display:none}
.master-badge{font-size:11px;font-weight:800;letter-spacing:.08em;padding:7px 10px;border-radius:999px;background:rgba(14,143,120,.12);border:1px solid rgba(14,143,120,.3)}
.catalog-toolbar{display:grid;grid-template-columns:2fr 1fr;gap:10px;margin-bottom:14px}
.catalog-usage{font-size:13px;color:var(--muted)}
.catalog-card{display:flex;flex-direction:column;gap:7px}
.catalog-card .catalog-add{margin-top:auto}
.catalog-card-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.catalog-status{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:4px 7px;border-radius:999px}
.catalog-status.published{background:rgba(14,143,120,.13);color:#0b725f}
.catalog-status.draft{background:rgba(180,125,20,.12);color:#8a630c}
.catalog-admin-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 10px;padding:10px 0;border-bottom:1px solid var(--border)}
.catalog-admin-row>div:first-child{min-width:0}
.catalog-admin-row strong,.catalog-admin-row small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.catalog-admin-row small{color:var(--muted);margin-top:2px}
.catalog-row-actions{grid-column:1/-1;display:flex;gap:6px}
.btn-small{padding:6px 9px;font-size:11px}
.catalog-divider{border:0;border-top:1px solid var(--border);margin:18px 0}
.catalog-admin-actions{justify-content:flex-end}
.compact-grid{gap:10px}
@media(max-width:720px){
  .catalog-toolbar{grid-template-columns:1fr}
  .compact-grid{grid-template-columns:1fr}
}

/* v0.6.1 — autenticação por modo e navegação interna */
.auth-mode-switch{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px;
  padding:4px;
  margin:0 0 16px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--surface-2, rgba(0,0,0,.03));
}
.auth-mode-btn{
  border:0;
  border-radius:9px;
  padding:9px 10px;
  background:transparent;
  color:var(--muted);
  font:inherit;
  font-weight:700;
  cursor:pointer;
}
.auth-mode-btn.active{
  background:var(--card, #fff);
  color:var(--text);
  box-shadow:0 1px 4px rgba(0,0,0,.10);
}

/* v0.6.3 — Importação PDF em lote */
.catalog-batch-modal-box{width:min(1180px,96vw);max-width:1180px;height:min(86vh,900px);display:flex;flex-direction:column;overflow:hidden}
.catalog-batch-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}
.catalog-batch-progress-wrap{margin-top:14px}
.catalog-batch-progress{height:9px;border-radius:999px;overflow:hidden;background:rgba(127,127,127,.16)}
.catalog-batch-progress span{display:block;height:100%;width:0;background:var(--accent);transition:width .15s ease}
.catalog-batch-summary{display:flex;gap:12px;margin:8px 0 12px}
.catalog-batch-summary>div{min-width:100px;border:1px solid var(--border);border-radius:12px;padding:9px 12px}
.catalog-batch-summary strong,.catalog-batch-summary span{display:block}
.catalog-batch-summary strong{font-size:20px}
.catalog-batch-summary span{font-size:11px;color:var(--muted)}
.catalog-batch-toolbar{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.catalog-batch-toolbar .input{min-width:220px;flex:1}
.catalog-batch-layout{display:grid;grid-template-columns:minmax(280px,38%) minmax(0,1fr);gap:12px;min-height:0;flex:1}
.catalog-batch-list,.catalog-batch-editor{border:1px solid var(--border);border-radius:12px;overflow:auto;min-height:350px;max-height:56vh}
.catalog-batch-list{padding:5px}
.catalog-batch-editor{padding:14px}
.catalog-batch-item{width:100%;display:grid;grid-template-columns:auto 40px minmax(0,1fr) auto;align-items:center;gap:8px;border:0;border-bottom:1px solid var(--border);background:transparent;color:inherit;padding:8px;text-align:left;cursor:pointer;border-radius:8px}
.catalog-batch-item.active{background:rgba(14,143,120,.09)}
.catalog-batch-item:hover{background:rgba(127,127,127,.07)}
.catalog-batch-check{width:17px;height:17px}
.catalog-batch-num{font-weight:800;color:var(--accent)}
.catalog-batch-item-main{min-width:0}
.catalog-batch-item-main strong,.catalog-batch-item-main small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.catalog-batch-item-main small{color:var(--muted);font-size:11px;margin-top:2px}
.catalog-batch-warn,.catalog-batch-ok{width:22px;height:22px;border-radius:999px;display:grid;place-items:center;font-weight:800}
.catalog-batch-warn{background:rgba(190,130,0,.14);color:#8c6500}
.catalog-batch-ok{background:rgba(14,143,120,.12);color:#08735f}
.catalog-batch-editor-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.catalog-batch-editor-head strong{color:var(--accent)}
.catalog-batch-two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.catalog-batch-editor textarea{width:100%;font-family:var(--font-mono,monospace);resize:vertical}
.catalog-batch-editor-warning{padding:9px 10px;margin:8px 0;border-radius:10px;background:rgba(190,130,0,.10);font-size:12px}
.catalog-batch-footer{justify-content:flex-end;align-items:center;margin-top:10px}
.catalog-batch-footer .hint{margin-right:auto}
@media(max-width:760px){
  .catalog-batch-modal-box{height:94vh;width:98vw}
  .catalog-batch-layout{grid-template-columns:1fr}
  .catalog-batch-list{max-height:30vh;min-height:180px}
  .catalog-batch-editor{max-height:42vh;min-height:240px}
  .catalog-batch-two{grid-template-columns:1fr}
}

/* v0.6.4 — importação em lote: rolagem e rodapé fixo */
.catalog-batch-modal-box{
  max-height:94vh;
  overflow:hidden;
}
#catalog-batch-review{
  min-height:0;
  flex:1;
  overflow-y:auto;
  padding-right:4px;
  display:flex;
  flex-direction:column;
}
.catalog-batch-layout{
  min-height:420px;
}
.catalog-batch-footer{
  position:sticky;
  bottom:0;
  z-index:20;
  margin:12px -2px 0;
  padding:12px 2px 4px;
  background:var(--card, #fff);
  border-top:1px solid var(--border);
  box-shadow:0 -8px 18px rgba(0,0,0,.06);
}
#catalog-batch-step-file{
  overflow-y:auto;
  min-height:0;
}
@media(max-width:760px){
  #catalog-batch-review{overflow-y:auto}
  .catalog-batch-footer{
    position:sticky;
    bottom:0;
    flex-wrap:wrap;
  }
  .catalog-batch-footer .btn-primary{width:100%}
}

/* v0.6.6 — prévia real antes da publicação */
.catalog-admin-preview-wrap{
  margin:10px 0 14px;
  border:1px solid var(--border);
  border-radius:12px;
  overflow:hidden;
}
.catalog-admin-preview-head{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:center;
  padding:9px 11px;
  border-bottom:1px solid var(--border);
  background:rgba(127,127,127,.05);
}
.catalog-admin-preview{
  padding:14px;
  min-height:90px;
  max-height:360px;
  overflow:auto;
}
.catalog-preview-fallback{
  margin:0;
  white-space:pre;
  font-family:var(--font-mono, monospace);
  overflow:auto;
}

/* v0.6.8 — apresentação: largura útil e alinhamento de cifra */
.presentation-body{
  padding:24px clamp(10px,2.2vw,34px) 110px !important;
  white-space:pre !important;
  overflow-y:auto !important;
  overflow-x:auto !important;
  max-width:100vw;
  box-sizing:border-box;
}
.presentation-body .line-chord,
.presentation-body .line-lyric,
.presentation-body .line-label,
.shared-song-body .line-chord,
.shared-song-body .line-lyric,
.shared-song-body .line-label{
  display:block;
  white-space:pre !important;
  width:max-content;
  min-width:0;
  max-width:none;
  overflow-wrap:normal !important;
  word-break:normal !important;
}
.presentation-body .line-blank,
.shared-song-body .line-blank{
  display:block;
}
@media(max-width:700px){
  .presentation-top{padding:10px 12px}
  .presentation-body{padding-left:8px !important;padding-right:8px !important;padding-bottom:210px !important}
  .presentation-bottom{padding:8px 10px}
}

/* v0.6.9 — quebra pareada: cifra + letra descem juntas */
.presentation-body{
  white-space:normal !important;
  overflow-x:hidden !important;
}
.presentation-pair{
  display:block;
  width:100%;
  margin:0;
  padding:0;
}
.presentation-pair .line-chord,
.presentation-pair .line-lyric{
  display:block;
  width:auto;
  max-width:100%;
  white-space:pre !important;
  overflow:visible;
  margin:0;
  padding:0;
}
.presentation-pair .line-chord{
  line-height:.78;
  margin-bottom:-.18em;
}
.presentation-pair .line-lyric{
  line-height:.92;
}
.presentation-single-line{
  display:block !important;
  width:auto !important;
  max-width:100% !important;
  white-space:pre-wrap !important;
  overflow-wrap:anywhere;
}

/* v0.7.1 — prévia e apresentação com quebra cifra+letra pareada */
.paired-song-line{
  display:block;
  width:100%;
  margin:0;
  padding:0;
}
.paired-song-line .line-chord,
.paired-song-line .line-lyric{
  display:block;
  white-space:pre !important;
  width:auto !important;
  max-width:100% !important;
  margin:0;
  padding:0;
}
.paired-song-line .line-chord{
  line-height:.78;
  margin-bottom:-.18em;
}
.paired-song-line .line-lyric{
  line-height:.92;
}
.paired-single-line{
  display:block !important;
  white-space:pre-wrap !important;
  max-width:100%;
}
.catalog-admin-preview,
.shared-song-body{
  white-space:normal !important;
  overflow-x:hidden !important;
}

/* v0.7.2 — um único renderizador para prévia e apresentação */
.presentation-body .paired-song-line,
.catalog-admin-preview .paired-song-line,
.shared-song-body .paired-song-line{
  display:block;
  width:100%;
  margin:0;
  padding:0;
}
.presentation-body .paired-song-line .line-chord,
.presentation-body .paired-song-line .line-lyric,
.catalog-admin-preview .paired-song-line .line-chord,
.catalog-admin-preview .paired-song-line .line-lyric,
.shared-song-body .paired-song-line .line-chord,
.shared-song-body .paired-song-line .line-lyric{
  display:block;
  width:auto !important;
  max-width:100% !important;
  white-space:pre !important;
  margin:0;
  padding:0;
}
.presentation-body .paired-song-line .line-chord,
.catalog-admin-preview .paired-song-line .line-chord,
.shared-song-body .paired-song-line .line-chord{
  line-height:.78;
  margin-bottom:-.18em;
}
.presentation-body .paired-song-line .line-lyric,
.catalog-admin-preview .paired-song-line .line-lyric,
.shared-song-body .paired-song-line .line-lyric{
  line-height:.92;
}
.presentation-body .paired-single-line,
.catalog-admin-preview .paired-single-line,
.shared-song-body .paired-single-line{
  display:block !important;
  width:auto !important;
  max-width:100% !important;
  white-space:pre-wrap !important;
  overflow-wrap:anywhere;
}

/* v0.7.3 — espaçamento legível entre cifra e letra
   Mantém cifra+letra pareadas, mas sem ficarem "grudadas". */
.presentation-body .paired-song-line,
.catalog-admin-preview .paired-song-line,
.shared-song-body .paired-song-line{
  margin:0 0 .42em 0 !important;
}

.presentation-body .paired-song-line .line-chord,
.catalog-admin-preview .paired-song-line .line-chord,
.shared-song-body .paired-song-line .line-chord{
  line-height:1 !important;
  margin:0 0 .08em 0 !important;
}

.presentation-body .paired-song-line .line-lyric,
.catalog-admin-preview .paired-song-line .line-lyric,
.shared-song-body .paired-song-line .line-lyric{
  line-height:1.12 !important;
  margin:0 !important;
}

/* Linhas independentes também ganham respiração visual coerente. */
.presentation-body .paired-single-line,
.catalog-admin-preview .paired-single-line,
.shared-song-body .paired-single-line{
  line-height:1.12 !important;
  margin:0 0 .32em 0 !important;
}

/* Linha vazia continua representando separação de estrofes. */
.presentation-body .line-blank,
.catalog-admin-preview .line-blank,
.shared-song-body .line-blank{
  height:.9em !important;
}

/* v0.7.4 — acesso à conta mais visível */
.global-account-bar{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:8px;
  margin:-4px 0 14px;
  min-height:42px;
}
.global-account-button{
  font-weight:700;
}
.global-account-button:not(.is-logged){
  border:1.5px solid var(--accent,#0a8d83);
  color:var(--accent,#0a8d83);
  background:transparent;
}
.global-account-button.is-logged{
  background:var(--card-bg);
  color:var(--ink);
  border-color:var(--rule);
  box-shadow:none;
}
.global-signup-button{
  font-weight:700;
  box-shadow:0 6px 18px rgba(16,154,131,.14);
}
.global-account-icon{
  font-size:15px;
}
@media(max-width:860px){
  .global-account-bar{
    position:sticky;
    top:0;
    z-index:40;
    margin:-18px -16px 14px;
    padding:8px 12px;
    background:color-mix(in srgb,var(--paper) 92%,transparent);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--rule);
  }
  .global-account-button{
    margin-left:auto;
  }
}
@media(max-width:520px){
  .global-account-button{
    width:auto;
    padding:9px 12px;
    font-size:13px;
  }
}

/* v0.7.5 — menu lateral mais limpo */
.sidebar-categories,
#sidebar-category-list{
  display:none !important;
}

/* v0.7.6 — Fale conosco / Peça uma cifra */
.request-shell{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);
  gap:16px;
  align-items:start;
}
.request-form-card,.request-history-card,.request-admin-card{padding:18px}
.request-login-note{
  font-size:12.5px;
  padding:10px 12px;
  margin-bottom:14px;
  border-radius:10px;
  background:var(--paper-dim);
  border:1px solid var(--rule);
  color:var(--ink-soft);
}
.request-inline-login{
  border:0;background:none;color:var(--accent);font:inherit;font-weight:700;
  text-decoration:underline;cursor:pointer;padding:0;
}
.request-user-ok{color:var(--ink-soft)}
.request-submit{margin-top:10px}
.request-history{display:flex;flex-direction:column;gap:8px}
.request-history-item{
  border:1px solid var(--rule);border-radius:10px;padding:10px 12px;
  background:var(--card-bg);
}
.request-history-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.request-history-item small{display:block;color:var(--ink-soft);margin-top:3px}
.request-status{
  display:inline-flex;align-items:center;white-space:nowrap;
  padding:3px 8px;border-radius:999px;font-size:10.5px;font-weight:800;
  border:1px solid var(--rule);
}
.request-status.new{background:rgba(40,126,196,.10);color:#2571a9}
.request-status.in-review{background:rgba(193,137,12,.12);color:#8b6508}
.request-status.done{background:rgba(26,139,94,.12);color:#14764f}
.request-status.rejected{background:rgba(179,63,63,.10);color:#a33b3b}
.request-admin-response{font-size:12px;margin-top:8px;padding:7px 9px;border-radius:8px;background:var(--accent-soft)}
.request-admin-card{margin-top:16px}
.request-admin-toolbar{display:flex;gap:8px;align-items:center;margin:10px 0 12px}
.request-admin-toolbar select{max-width:220px}
.request-admin-list{display:flex;flex-direction:column;gap:10px}
.request-admin-item{border:1px solid var(--rule);border-radius:12px;padding:12px;background:var(--card-bg)}
.request-admin-item-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.request-admin-item h4{margin:5px 0 2px;font-size:15px}
.request-admin-item small{color:var(--ink-soft)}
.request-type-badge{font-size:10.5px;font-weight:800;padding:2px 7px;border-radius:999px;background:var(--paper-dim)}
.request-type-badge.chord{color:var(--accent)}
.request-type-badge.contact{color:var(--ink-soft)}
.request-admin-field{font-size:12.5px;margin-top:7px}
.request-admin-field a{color:var(--accent);font-weight:700}
.request-admin-message{font-size:13px;white-space:pre-wrap;margin-top:9px;padding:9px;border-radius:8px;background:var(--paper-dim)}
.request-admin-controls{display:grid;grid-template-columns:150px minmax(180px,1fr) auto;gap:8px;margin-top:10px}
.request-admin-note{width:100%}
@media(max-width:800px){
  .request-shell{grid-template-columns:1fr}
  .request-admin-controls{grid-template-columns:1fr}
  .request-admin-controls .btn{width:100%;justify-content:center}
}

/* v0.7.7 — notificações de solicitações */
.nav-notification-badge{
  margin-left:auto;
  min-width:20px;
  height:20px;
  padding:0 6px;
  border-radius:999px;
  align-items:center;
  justify-content:center;
  background:var(--danger);
  color:#fff;
  font-size:10.5px;
  font-weight:800;
  line-height:1;
  box-shadow:0 0 0 2px var(--paper-dim);
}
.nav-item.active .nav-notification-badge{
  background:#fff;
  color:var(--accent);
  box-shadow:none;
}

/* v0.7.8 — solicitações em área própria */
.request-summary-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin-bottom:16px;
}
.request-summary-card{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:3px;
  padding:14px 16px;
  border:1px solid var(--rule);
  border-radius:12px;
  background:var(--card-bg);
  color:var(--ink);
  cursor:pointer;
  text-align:left;
}
.request-summary-card:hover{
  border-color:var(--accent);
  background:var(--accent-soft);
}
.request-summary-number{
  font-family:var(--font-display);
  font-size:25px;
  font-weight:700;
  color:var(--accent);
}
.request-admin-toolbar-full{
  display:grid;
  grid-template-columns:180px 180px minmax(220px,1fr) auto;
}
#view-requests-admin .request-admin-card{margin-top:0}
@media(max-width:900px){
  .request-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .request-admin-toolbar-full{grid-template-columns:1fr 1fr}
  #request-admin-search{grid-column:1/-1}
}
@media(max-width:560px){
  .request-summary-grid{grid-template-columns:1fr 1fr}
  .request-admin-toolbar-full{grid-template-columns:1fr}
  #request-admin-search{grid-column:auto}
}

/* v0.7.9 — administração do catálogo por Rascunhos/Publicadas */
.catalog-admin-tabs{
  display:flex;
  gap:6px;
  margin:12px 0 10px;
  padding:4px;
  border-radius:10px;
  background:var(--paper-dim);
  border:1px solid var(--rule);
}
.catalog-admin-tab{
  flex:1;
  display:flex;
  justify-content:center;
  align-items:center;
  gap:7px;
  border:0;
  border-radius:7px;
  background:transparent;
  color:var(--ink-soft);
  padding:9px 10px;
  font:inherit;
  font-size:12.5px;
  font-weight:700;
  cursor:pointer;
}
.catalog-admin-tab.active{
  background:var(--card-bg);
  color:var(--accent);
  box-shadow:0 1px 4px rgba(0,0,0,.08);
}
.catalog-admin-tab-count{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:22px;
  height:20px;
  padding:0 6px;
  border-radius:999px;
  background:var(--accent-soft);
  color:var(--accent);
  font-size:10.5px;
}
.catalog-admin-toolbar{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  align-items:center;
  margin-bottom:10px;
}
.catalog-admin-search-wrap{
  flex:1 1 220px;
  display:flex;
  align-items:center;
  gap:7px;
  border:1px solid var(--rule);
  border-radius:8px;
  padding:0 9px;
  background:var(--card-bg);
}
.catalog-admin-search-wrap input{
  border:0 !important;
  background:transparent !important;
  width:100%;
  padding-left:0 !important;
  outline:0;
}
.catalog-admin-row-manage{
  display:grid !important;
  grid-template-columns:30px minmax(0,1fr) auto auto;
  align-items:center;
  gap:10px;
}
.catalog-admin-row-manage.selected{
  border-color:var(--accent) !important;
  background:var(--accent-soft);
}
.catalog-admin-check{
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}
.catalog-admin-check input{
  width:17px;
  height:17px;
  accent-color:var(--accent);
}
.catalog-admin-song-info{
  min-width:0;
  display:flex;
  flex-direction:column;
}
.catalog-admin-song-info strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.catalog-admin-song-info small{
  color:var(--ink-soft);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.catalog-admin-empty{
  display:flex;
  flex-direction:column;
  gap:4px;
  align-items:center;
  justify-content:center;
  padding:28px 16px;
  color:var(--ink-soft);
  border:1px dashed var(--rule);
  border-radius:10px;
  text-align:center;
}

/* Solicitações sem resposta ficam visualmente prioritárias */
.request-admin-item.request-unanswered{
  border-color:rgba(207,139,21,.65);
  background:rgba(207,139,21,.075);
  box-shadow:inset 4px 0 0 rgba(207,139,21,.8);
}
.request-admin-status-stack{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:5px;
}
.request-answer-badge{
  display:inline-flex;
  align-items:center;
  padding:3px 8px;
  border-radius:999px;
  background:rgba(207,139,21,.17);
  color:#8a5a08;
  border:1px solid rgba(207,139,21,.38);
  font-size:10.5px;
  font-weight:800;
  white-space:nowrap;
}

@media(max-width:720px){
  .catalog-admin-row-manage{
    grid-template-columns:28px minmax(0,1fr) auto;
  }
  .catalog-admin-row-manage .catalog-status{
    grid-column:2;
    justify-self:start;
  }
  .catalog-admin-row-manage .catalog-row-actions{
    grid-column:2/-1;
  }
  .catalog-admin-tabs{
    position:sticky;
    top:52px;
    z-index:8;
  }
}

/* v0.7.10 — solicitações sem resposta em vermelho suave */
.request-admin-item.request-unanswered{
  border-color:rgba(196,63,63,.68) !important;
  background:rgba(196,63,63,.075) !important;
  box-shadow:inset 4px 0 0 rgba(196,63,63,.88) !important;
}

.request-answer-badge{
  background:rgba(196,63,63,.14) !important;
  color:#a13737 !important;
  border-color:rgba(196,63,63,.38) !important;
}

/* v0.7.11 — prévia rápida no Catálogo */
.catalog-card{
  position:relative;
  overflow:visible;
}
.catalog-hover-preview{
  position:absolute;
  z-index:35;
  left:14px;
  right:14px;
  top:calc(100% - 18px);
  display:none;
  padding:12px 13px;
  border:1px solid var(--rule);
  border-radius:10px;
  background:var(--card-bg);
  box-shadow:0 12px 28px rgba(0,0,0,.16);
  color:var(--ink);
  pointer-events:none;
}
.catalog-hover-preview-title{
  font-size:10.5px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:var(--accent);
  margin-bottom:5px;
}
.catalog-hover-preview-text{
  font-size:12.5px;
  line-height:1.45;
  color:var(--ink-soft);
}
.catalog-preview-toggle{
  display:none;
  border:0;
  background:none;
  color:var(--accent);
  font-size:11.5px;
  font-weight:700;
  padding:0;
  cursor:pointer;
  align-self:flex-start;
}
@media(hover:hover) and (pointer:fine){
  .catalog-card:hover .catalog-hover-preview,
  .catalog-card:focus-within .catalog-hover-preview{
    display:block;
  }
}
@media(hover:none), (pointer:coarse){
  .catalog-preview-toggle{
    display:inline-flex;
  }
  .catalog-card.preview-open .catalog-hover-preview{
    position:static;
    display:block;
    margin:4px 0 2px;
    box-shadow:none;
    pointer-events:auto;
  }
}

/* v0.7.12 — prévia do catálogo abre acima no desktop */
@media(hover:hover) and (pointer:fine){
  .catalog-hover-preview{
    top:auto !important;
    bottom:calc(100% - 10px) !important;
    left:10px !important;
    right:10px !important;
    max-height:150px;
    overflow:auto;
  }

  .catalog-hover-preview::after{
    content:"";
    position:absolute;
    left:28px;
    bottom:-7px;
    width:12px;
    height:12px;
    background:var(--card-bg);
    border-right:1px solid var(--rule);
    border-bottom:1px solid var(--rule);
    transform:rotate(45deg);
  }
}

/* Em toque continua abrindo dentro do card */
@media(hover:none), (pointer:coarse){
  .catalog-card.preview-open .catalog-hover-preview{
    top:auto !important;
    bottom:auto !important;
    left:auto !important;
    right:auto !important;
    max-height:none;
    overflow:visible;
  }
  .catalog-card.preview-open .catalog-hover-preview::after{
    display:none;
  }
}

/* v0.7.16 — exclusão administrativa segura */
.catalog-admin-delete-help{
  margin:8px 0 10px;
  padding:8px 10px;
  border-radius:8px;
  border:1px solid rgba(170,70,70,.22);
  background:rgba(170,70,70,.055);
  color:var(--ink-soft);
  font-size:11.5px;
  line-height:1.4;
}
.catalog-admin-delete-help strong{
  color:var(--ink);
}
.catalog-admin-check{
  position:relative;
  z-index:2;
}
.catalog-admin-select{
  cursor:pointer;
}

/* v0.7.18 — feedback claro quando PDF não é reconhecido */
.catalog-batch-progress-wrap.catalog-batch-feedback-warning{
  padding:10px 12px;
  border:1px solid rgba(190,130,0,.40);
  border-radius:10px;
  background:rgba(190,130,0,.08);
}
.catalog-batch-progress-wrap.catalog-batch-feedback-warning #catalog-batch-progress-text{
  color:#8c6500;
  font-weight:700;
}
.catalog-batch-progress-wrap.catalog-batch-feedback-error{
  padding:10px 12px;
  border:1px solid rgba(180,60,60,.38);
  border-radius:10px;
  background:rgba(180,60,60,.07);
}
.catalog-batch-progress-wrap.catalog-batch-feedback-error #catalog-batch-progress-text{
  color:#a13c3c;
  font-weight:700;
}

/* v0.7.19 — editor visual único, igual à publicação */
.catalog-visual-editor-field{
  margin-top:8px;
}
.catalog-visual-editor{
  min-height:320px;
  max-height:560px;
  overflow:auto;
  cursor:text;
  outline:none;
}
.catalog-visual-editor [contenteditable="true"]{
  cursor:text;
  border-radius:4px;
  outline:none;
}
.catalog-visual-editor [contenteditable="true"]:hover{
  background:rgba(255,255,255,.035);
}
.catalog-visual-editor [contenteditable="true"]:focus{
  background:rgba(54,210,187,.08);
  box-shadow:0 0 0 1px rgba(54,210,187,.30);
}
.catalog-visual-editor .paired-song-line{
  position:relative;
}
.catalog-visual-empty{
  min-height:260px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  text-align:center;
  color:var(--ink-soft);
  border:1px dashed rgba(255,255,255,.16);
  border-radius:8px;
  cursor:text;
}
.catalog-visual-editor .line-blank[contenteditable="true"]{
  min-height:.9em;
  display:block;
}
.catalog-visual-editor .line-blank[contenteditable="true"]:focus{
  min-height:1.2em;
}

/* v0.7.20 — autoria do Cifra Viva */
.app-author-credit,.app-footer{
  margin-top:12px;
  padding-top:11px;
  border-top:1px solid rgba(16,44,58,.14);
  text-align:center;
  display:flex;
  flex-direction:column;
  gap:2px;
  color:#526970;
  font-size:10.5px;
  line-height:1.35;
}
.app-author-credit strong,.app-footer strong{
  color:#173b46;
  font-size:11px;
  font-weight:700;
}
.app-author-credit small,.app-footer small{
  font-size:9.5px;
  color:#71838a;
}
[data-theme="dark"] .app-author-credit,[data-theme="dark"] .app-footer{
  color:rgba(255,255,255,.78);
  border-top-color:rgba(255,255,255,.14);
}
[data-theme="dark"] .app-author-credit strong,[data-theme="dark"] .app-footer strong{ color:#ffffff; }
[data-theme="dark"] .app-author-credit small,[data-theme="dark"] .app-footer small{ color:rgba(255,255,255,.62); }
.app-about-card{
  margin-top:16px;
}
.app-about-text{
  margin:4px 0 2px;
  color:var(--ink);
  font-size:13px;
}
.app-about-meta{
  margin:0;
  color:var(--ink-soft);
  font-size:11.5px;
}

/* v0.7.23 — importação JSON de músicas */
.catalog-import-secondary{
  display:flex;
  align-items:center;
  gap:9px;
  flex-wrap:wrap;
  margin-top:8px;
}
.catalog-json-modal-box{
  width:min(760px,94vw);
  max-height:88vh;
  overflow:auto;
}
.catalog-json-feedback{
  margin:10px 0 12px;
  padding:10px 12px;
  border:1px solid var(--rule);
  border-radius:9px;
}
.catalog-json-feedback.success{
  border-color:rgba(14,143,120,.35);
  background:rgba(14,143,120,.08);
  color:#08735f;
}
.catalog-json-feedback.error{
  border-color:rgba(190,60,60,.35);
  background:rgba(190,60,60,.07);
  color:#a13c3c;
}
.catalog-json-list{
  max-height:360px;
  overflow:auto;
  border:1px solid var(--rule);
  border-radius:10px;
}
.catalog-json-item{
  display:grid;
  grid-template-columns:24px minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border-bottom:1px solid var(--rule);
  cursor:pointer;
}
.catalog-json-item:last-child{border-bottom:0}
.catalog-json-item:hover{background:rgba(127,127,127,.05)}
.catalog-json-main{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.catalog-json-main strong,.catalog-json-main small{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.catalog-json-main small{color:var(--ink-soft)}

/* v0.7.24 — importar PDF inteiro como um único rascunho */
.catalog-batch-action-row{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  align-items:center;
}
.catalog-batch-whole-hint{
  margin:7px 0 0;
}

/* v0.7.25 — cifras ancoradas à posição real da letra */
.anchored-song-line{
  display:block;
  width:100%;
  margin:0 0 .42em 0;
  padding:0;
  overflow:visible;
}
.anchored-chord-row{
  position:relative;
  display:block;
  width:100%;
  height:1.05em;
  line-height:1;
  margin:0 0 .08em 0;
  white-space:nowrap;
  overflow:visible;
}
.anchored-chord{
  position:absolute;
  top:0;
  display:inline-block;
  color:var(--chord);
  font-weight:700;
  white-space:nowrap;
  line-height:1;
}
.anchored-lyric{
  display:block;
  white-space:pre !important;
  line-height:1.12 !important;
  margin:0 !important;
  padding:0 !important;
}

/* v0.7.28 — ajuste manual de cifras ancoradas */
.catalog-visual-editor .anchored-chord-editable{
  cursor:ew-resize;
  user-select:none;
  touch-action:none;
  padding:1px 3px;
  margin-left:-3px;
  border-radius:4px;
  outline:1px dashed transparent;
}
.catalog-visual-editor .anchored-chord-editable:hover{
  background:var(--accent-soft);
  outline-color:var(--accent);
}
.catalog-visual-editor .anchored-chord-editable.dragging-anchor{
  background:var(--accent-soft);
  outline-color:var(--accent);
  z-index:5;
}
.catalog-visual-editor .anchored-song-line{
  position:relative;
}

/* v0.7.29 — ajuste por espaço/teclado */
.catalog-visual-editor{
  outline:none;
}
.catalog-visual-editor .anchored-chord-editable{
  cursor:pointer !important;
  touch-action:auto !important;
}
.catalog-visual-editor .anchored-chord-selected{
  background:var(--accent-soft) !important;
  outline:2px solid var(--accent) !important;
  border-radius:4px;
  z-index:6;
}

/* v0.7.30 — organização escalável de Catálogo e Músicas */
.catalog-search-hero{
  background:var(--card-bg);
  border:1px solid var(--rule);
  border-radius:var(--radius);
  padding:16px;
  margin-bottom:12px;
}
.catalog-search-title{
  font-family:var(--font-display);
  font-size:17px;
  font-weight:700;
  margin-bottom:9px;
}
.catalog-toolbar-scalable{
  display:grid;
  grid-template-columns:minmax(260px,1fr) minmax(170px,230px) minmax(150px,190px);
  gap:9px;
}
.library-organizer{
  margin-bottom:6px;
}
.organizer-sort{
  width:auto;
  min-width:150px;
  margin-left:auto;
}
.category-scroll{
  overflow-x:auto;
  flex-wrap:nowrap !important;
  padding-bottom:5px;
  scrollbar-width:thin;
}
.category-scroll .chip{
  flex:0 0 auto;
}
.results-summary{
  min-height:25px;
  margin:8px 0 11px;
  color:var(--ink-soft);
  font-size:12.5px;
}
.results-summary strong{
  color:var(--ink);
}
.pagination-shell{
  display:flex;
  justify-content:center;
  margin:22px 0 8px;
  min-height:38px;
}
.pagination-controls{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  flex-wrap:wrap;
}
.pagination-pages{
  display:flex;
  align-items:center;
  gap:5px;
}
.pagination-btn{
  min-width:36px;
  height:36px;
  padding:0 10px;
  border:1px solid var(--rule);
  border-radius:8px;
  background:var(--card-bg);
  color:var(--ink);
  cursor:pointer;
  font-weight:600;
}
.pagination-btn:hover:not(:disabled){
  border-color:var(--accent);
}
.pagination-btn.active{
  background:var(--accent);
  color:white;
  border-color:var(--accent);
}
.pagination-btn:disabled{
  opacity:.42;
  cursor:not-allowed;
}
.pagination-nav{
  min-width:auto;
}
.pagination-ellipsis{
  padding:0 3px;
  color:var(--ink-soft);
}
@media (max-width:800px){
  .catalog-toolbar-scalable{
    grid-template-columns:1fr;
  }
  .organizer-sort{
    width:100%;
    margin-left:0;
  }
  .pagination-nav{
    font-size:12px;
  }
}

/* v0.7.31 — editor visual também na biblioteca pessoal */
.personal-visual-editor-head{
  margin-bottom:8px;
}
.personal-visual-editor{
  min-height:280px;
  max-height:62vh;
  overflow:auto;
  outline:none;
}
.personal-visual-editor .anchored-chord-editable{
  cursor:pointer;
  user-select:none;
  border-radius:4px;
  padding:1px 3px;
  margin-left:-3px;
}
.personal-visual-editor .anchored-chord-editable:hover{
  background:var(--accent-soft);
  outline:1px dashed var(--accent);
}
.personal-visual-editor .anchored-chord-selected{
  background:var(--accent-soft) !important;
  outline:2px solid var(--accent) !important;
  z-index:6;
}


/* v0.7.32 — espaçamento vertical das cifras ancoradas
   Mantém cifra e letra juntas, mas evita sobreposição/efeito "grudado". */
.anchored-song-line{
  position:relative;
  margin:0 0 8px 0;
}

.anchored-chord-row{
  position:relative;
  min-height:1.35em;
  height:auto;
  line-height:1.15;
  margin:0 0 3px 0;
  overflow:visible;
}

.anchored-chord{
  top:0;
  line-height:1.1;
}

.anchored-lyric{
  display:block;
  line-height:1.38;
  min-height:1.38em;
  margin:0;
}

/* Um pouco mais de respiro em telas de tablet/desktop,
   onde a fonte tende a ficar maior. */
@media (min-width:621px){
  .anchored-song-line{
    margin-bottom:9px;
  }
  .anchored-chord-row{
    min-height:1.42em;
    margin-bottom:4px;
  }
  .anchored-lyric{
    line-height:1.42;
  }
}

/* No modo apresentação mantém legibilidade sem exagerar o espaço. */
.presentation-mode .anchored-song-line,
.presentation-screen .anchored-song-line,
#presentation-content .anchored-song-line{
  margin-bottom:9px;
}

.presentation-mode .anchored-chord-row,
.presentation-screen .anchored-chord-row,
#presentation-content .anchored-chord-row{
  min-height:1.4em;
  margin-bottom:4px;
}

.presentation-mode .anchored-lyric,
.presentation-screen .anchored-lyric,
#presentation-content .anchored-lyric{
  line-height:1.42;
}


/* v0.7.33 — Robô de cifras: triagem Master */
.robot-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:10px 0;
}
.robot-source-note{
  font-size:12px;
  color:var(--ink-soft);
  padding:8px 10px;
  border:1px solid var(--rule);
  border-radius:8px;
  margin-bottom:10px;
}
.robot-tabs{
  margin-top:8px;
}
.robot-status{
  margin:8px 0;
}
.robot-queue-list{
  display:flex;
  flex-direction:column;
  gap:8px;
  max-height:430px;
  overflow:auto;
}
.robot-queue-card{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding:11px;
  border:1px solid var(--rule);
  border-radius:10px;
  background:var(--card-bg);
}
.robot-queue-main{
  min-width:0;
  flex:1;
}
.robot-queue-title{
  font-weight:750;
  font-size:14px;
}
.robot-queue-artist{
  margin-top:2px;
  font-size:12px;
  color:var(--ink-soft);
}
.robot-queue-meta{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  margin-top:6px;
  font-size:11px;
  color:var(--ink-soft);
}
.robot-status-badge{
  padding:2px 6px;
  border-radius:999px;
  border:1px solid var(--rule);
  font-weight:700;
}
.robot-status-badge.discovered{color:#176b52}
.robot-status-badge.duplicate{color:#9a5b00}
.robot-status-badge.discarded{color:#7b7b7b}
.robot-queue-note{
  margin-top:7px;
  font-size:11px;
  color:var(--ink-soft);
}
.robot-queue-actions{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.robot-empty{
  padding:16px;
  text-align:center;
  color:var(--ink-soft);
  border:1px dashed var(--rule);
  border-radius:9px;
}
@media(max-width:700px){
  .robot-queue-card{flex-direction:column}
  .robot-queue-actions{width:100%;justify-content:flex-start}
}


/* v0.7.34 — fase 2 do robô: preparar rascunho */
.robot-prepare-banner{
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 12px;
  margin-bottom:12px;
  border:1px solid var(--accent);
  border-radius:10px;
  background:var(--accent-soft);
}
.robot-prepare-banner > div{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.robot-prepare-banner span{
  font-size:11px;
  color:var(--ink-soft);
}
.robot-status-badge.ready{
  color:#176b52;
}
@media(max-width:700px){
  .robot-prepare-banner{
    align-items:flex-start;
    flex-direction:column;
  }
}


/* v0.7.35 — Fase 3: conversor de conteúdo autorizado */
.robot-converter-box{
  margin:0 0 14px 0;
  padding:12px;
  border:1px solid var(--rule);
  border-radius:10px;
  background:var(--card-bg);
}
.robot-converter-head{
  margin-bottom:8px;
}
.robot-converter-head > div{
  display:flex;
  flex-direction:column;
  gap:3px;
}
.robot-converter-head span{
  font-size:11px;
  color:var(--ink-soft);
  line-height:1.4;
}
#catalog-admin-authorized-raw{
  width:100%;
  min-height:180px;
  resize:vertical;
  white-space:pre;
  overflow:auto;
}
.robot-converter-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:8px;
}


/* v0.7.36 — fase 3 automática + publicação em lote */
#catalog-admin-publish-all-drafts{
  white-space:nowrap;
}
#catalog-admin-publish-all-drafts:disabled{
  opacity:.55;
  cursor:not-allowed;
}


/* v0.7.37 — publicação automática */
.robot-auto-note{
  margin-top:8px;
  padding:9px 10px;
  border:1px solid var(--rule);
  border-radius:9px;
  font-size:11px;
  line-height:1.45;
  color:var(--ink-soft);
}
.btn-success{
  background:#1f8a63;
  border-color:#1f8a63;
  color:white;
}
.btn-success:hover{
  filter:brightness(.96);
}


/* v0.7.40 — duas fontes autorizadas */
#catalog-robot-run,
#catalog-robot-run-decifrando{
  min-width:190px;
}
@media (max-width:620px){
  #catalog-robot-run,
  #catalog-robot-run-decifrando{
    width:100%;
  }
}


/* v0.7.42 — catálogo compacto */
.catalog-card-compact{
  min-height:0;
  gap:7px;
  padding:10px 11px;
  position:relative;
}
.catalog-card-compact .catalog-card-main{
  min-width:0;
}
.catalog-card-compact h3{
  margin:0 0 2px;
  font-size:14px;
  line-height:1.18;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.catalog-card-compact .song-artist{
  font-size:11.5px;
  line-height:1.25;
  margin:0 0 5px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.catalog-inline-preview{
  font-size:11px;
  line-height:1.32;
  color:var(--ink-soft);
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  min-height:2.64em;
}
.catalog-card-compact .catalog-add{
  margin-top:2px;
  align-self:flex-start;
  padding:5px 8px;
  font-size:10.5px;
}
#catalog-grid.compact-grid{
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:7px;
}
@media (min-width:1180px){
  #catalog-grid.compact-grid{
    grid-template-columns:repeat(auto-fill,minmax(205px,1fr));
  }
}
@media (max-width:620px){
  #catalog-grid.compact-grid{
    grid-template-columns:1fr;
    gap:6px;
  }
}


/* v0.7.43 — clicar no card adiciona à biblioteca */
.catalog-card-compact[data-added="0"]{
  cursor:pointer;
  transition:transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}
.catalog-card-compact[data-added="0"]:hover,
.catalog-card-compact[data-added="0"]:focus-visible{
  transform:translateY(-1px);
  box-shadow:0 5px 14px rgba(0,0,0,.08);
  border-color:var(--accent);
  outline:none;
}
.catalog-card-compact.catalog-card-loading{
  opacity:.6;
  pointer-events:none;
}
.catalog-card-added{
  position:relative;
  cursor:default;
  opacity:.78;
}
.catalog-added-mark{
  position:absolute;
  top:8px;
  right:9px;
  width:20px;
  height:20px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:12px;
  font-weight:800;
  background:rgba(14,143,120,.13);
  color:#0b725f;
}


/* v0.7.45 — busca principal do catálogo */
.catalog-search-prominent{
  margin:0 0 16px;
  padding:14px 15px;
  border:1px solid var(--rule);
  border-radius:14px;
  background:var(--card-bg);
  box-shadow:0 4px 16px rgba(0,0,0,.055);
}
.catalog-search-prominent .catalog-search-title{
  font-size:15px;
  font-weight:800;
  margin-bottom:3px;
}
.catalog-search-subtitle{
  font-size:11.5px;
  line-height:1.4;
  color:var(--ink-soft);
  margin-bottom:10px;
}
.catalog-search-prominent .catalog-toolbar{
  align-items:stretch;
}
.catalog-search-box{
  position:relative;
  display:flex;
  align-items:center;
  min-width:0;
  flex:1 1 430px;
}
.catalog-search-box .catalog-search-icon{
  position:absolute;
  left:14px;
  top:50%;
  transform:translateY(-50%);
  z-index:2;
  font-size:22px;
  font-weight:800;
  color:var(--accent);
  pointer-events:none;
}
#catalog-search{
  width:100%;
  min-height:48px;
  padding-left:44px;
  padding-right:14px;
  border:2px solid color-mix(in srgb, var(--accent) 38%, var(--rule));
  border-radius:12px;
  background:var(--card-bg);
  font-size:14px;
  font-weight:600;
  box-shadow:0 2px 8px rgba(0,0,0,.045);
}
#catalog-search::placeholder{
  color:var(--ink-soft);
  font-weight:500;
  opacity:.78;
}
#catalog-search:focus{
  outline:none;
  border-color:var(--accent);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 14%, transparent);
}
.catalog-search-prominent .organizer-sort{
  min-height:48px;
}
@media(max-width:620px){
  .catalog-search-prominent{
    padding:12px;
  }
  .catalog-search-box{
    flex-basis:100%;
  }
  #catalog-search{
    min-height:50px;
    font-size:16px;
  }
}


/* =========================================================
   v0.7.46 — onboarding comercial, guia e controles claros
   ========================================================= */
.utility-action{
  justify-content:flex-start;
  gap:9px;
  min-height:48px;
  padding:8px 10px;
}
.utility-action-icon{
  width:28px;
  height:28px;
  flex:0 0 28px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:8px;
  background:var(--accent-soft);
  color:var(--accent);
  font-size:17px;
  font-weight:800;
}
.utility-action-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:1px;
}
.utility-action-copy strong{
  font-size:12.5px;
  line-height:1.2;
  color:var(--ink);
}
.utility-action-copy small{
  font-size:9.5px;
  line-height:1.25;
  color:var(--ink-soft);
  white-space:normal;
}
.mobile-utility-bar{display:none}

.home-commercial-intro{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr);
  gap:12px;
  margin:0 0 16px;
}
.home-offline-highlight,
.home-guide-card{
  border:1px solid var(--rule);
  border-radius:14px;
  background:var(--card-bg);
}
.home-offline-highlight{
  position:relative;
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px 15px;
  border-color:color-mix(in srgb,var(--accent) 35%,var(--rule));
  background:color-mix(in srgb,var(--accent-soft) 55%,var(--card-bg));
}
.home-offline-icon{
  width:42px;
  height:42px;
  flex:0 0 42px;
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--accent);
  color:#fff;
  font-size:23px;
  font-weight:800;
}
.home-offline-highlight>div:nth-child(2){
  display:flex;
  flex-direction:column;
  gap:3px;
  min-width:0;
}
.home-offline-highlight strong{
  font-size:14px;
  color:var(--ink);
}
.home-offline-highlight span:not(.home-offline-badge){
  font-size:10.5px;
  line-height:1.4;
  color:var(--ink-soft);
}
.home-offline-badge{
  position:absolute;
  top:8px;
  right:9px;
  border-radius:999px;
  padding:3px 7px;
  background:var(--accent);
  color:white;
  font-size:8.5px;
  font-weight:900;
  letter-spacing:.08em;
}
.home-guide-card{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
  padding:14px 16px;
}
.home-guide-kicker,.guide-eyebrow{
  display:block;
  font-size:9px;
  font-weight:900;
  letter-spacing:.12em;
  color:var(--accent);
  margin-bottom:3px;
}
.home-guide-card h2{
  margin:0 0 4px;
  font-family:var(--font-display);
  font-size:19px;
}
.home-guide-card p{
  margin:0;
  max-width:650px;
  font-size:11px;
  line-height:1.45;
  color:var(--ink-soft);
}
.home-guide-button{white-space:nowrap}

.guide-hero{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:20px;
  margin-bottom:20px;
  border:1px solid var(--rule);
  border-radius:16px;
  background:linear-gradient(135deg,var(--card-bg),var(--accent-soft));
}
.guide-hero h1{
  margin:0 0 6px;
  font-family:var(--font-display);
  font-size:30px;
}
.guide-hero p{
  max-width:720px;
  margin:0;
  color:var(--ink-soft);
  font-size:12.5px;
  line-height:1.55;
}
.guide-offline-pill{
  min-width:220px;
  display:flex;
  flex-direction:column;
  gap:3px;
  padding:12px 14px;
  border-radius:12px;
  background:var(--accent);
  color:#fff;
}
.guide-offline-pill strong{font-size:14px}
.guide-offline-pill span{font-size:10px;line-height:1.4;opacity:.9}
.guide-section{margin:0 0 24px}
.guide-section>h2{
  margin:0 0 10px;
  font-family:var(--font-display);
  font-size:20px;
}
.guide-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
}
.guide-card{
  display:flex;
  gap:11px;
  min-height:88px;
  padding:12px 13px;
  border:1px solid var(--rule);
  border-radius:12px;
  background:var(--card-bg);
}
.guide-icon{
  min-width:38px;
  height:38px;
  padding:0 6px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:10px;
  background:var(--accent-soft);
  color:var(--accent);
  font-weight:900;
  font-size:15px;
}
.guide-card h3{margin:0 0 3px;font-size:13.5px}
.guide-card p{margin:0;color:var(--ink-soft);font-size:10.5px;line-height:1.45}
.guide-offline-section{
  padding:17px;
  border:1px solid color-mix(in srgb,var(--accent) 38%,var(--rule));
  border-radius:15px;
  background:color-mix(in srgb,var(--accent-soft) 50%,var(--card-bg));
}
.guide-offline-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}
.guide-offline-header h2{margin:0;font-family:var(--font-display);font-size:22px}
.guide-big-offline{
  font-size:18px;
  font-weight:900;
  letter-spacing:.12em;
  color:var(--accent);
}
.guide-offline-section>p{font-size:11.5px;color:var(--ink-soft);line-height:1.5}
.guide-offline-columns{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.guide-offline-columns>div{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:10px 12px;
  border-radius:10px;
  background:var(--card-bg);
}
.guide-offline-columns strong{font-size:11.5px;margin-bottom:2px}
.guide-offline-columns span{font-size:10.5px;color:var(--ink-soft)}
.guide-final-cta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:14px 16px;
  border-radius:13px;
  background:var(--paper-dim);
  border:1px solid var(--rule);
}
.guide-final-cta>div{display:flex;flex-direction:column;gap:2px}
.guide-final-cta strong{font-size:14px}
.guide-final-cta span{font-size:10.5px;color:var(--ink-soft)}

@media(max-width:1000px){
  .home-commercial-intro{grid-template-columns:1fr}
}

@media(max-width:860px){
  .mobile-utility-bar{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:7px;
    margin:-4px 0 14px;
  }
  .mobile-utility-action{
    min-width:0;
    min-height:56px;
    display:flex;
    align-items:center;
    gap:9px;
    padding:8px 10px;
    border:1px solid var(--rule);
    border-radius:11px;
    background:var(--card-bg);
    color:var(--ink);
    text-align:left;
    cursor:pointer;
  }
  .mobile-utility-icon{
    width:32px;
    height:32px;
    flex:0 0 32px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:9px;
    background:var(--accent-soft);
    color:var(--accent);
    font-size:18px;
    font-weight:900;
  }
  .mobile-utility-action>span:last-child{
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:1px;
  }
  .mobile-utility-action strong{font-size:12px;line-height:1.2}
  .mobile-utility-action small{font-size:9px;line-height:1.25;color:var(--ink-soft)}
  .guide-hero{align-items:stretch;flex-direction:column}
  .guide-offline-pill{min-width:0}
  .home-guide-card{align-items:stretch;flex-direction:column}
  .home-guide-button{align-self:flex-start}
}

@media(max-width:620px){
  .mobile-utility-bar{grid-template-columns:1fr}
  .guide-grid{grid-template-columns:1fr}
  .guide-offline-columns{grid-template-columns:1fr}
  .guide-offline-header{align-items:flex-start;flex-direction:column}
  .guide-final-cta{align-items:stretch;flex-direction:column}
  .guide-final-cta .btn{align-self:flex-start}
  .home-offline-highlight{padding-top:28px}
}


/* v0.7.47 — controles apenas no menu, com mesma aparência dos demais botões */
.sidebar-footer{
  gap:4px;
}
.sidebar-footer .footer-nav-action{
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  min-height:0;
  padding:10px 12px;
  border:0;
  border-radius:8px;
  background:transparent;
  color:var(--ink-soft);
  font-size:14.5px;
  font-weight:500;
  text-align:left;
  box-shadow:none;
}
.sidebar-footer .footer-nav-action:hover{
  background:var(--accent-soft);
  color:var(--ink);
}
.sidebar-footer .footer-nav-action .nav-icon{
  width:18px;
  height:auto;
  min-width:18px;
  background:none;
  color:inherit;
  border-radius:0;
  font-size:inherit;
  font-weight:inherit;
}
.mobile-utility-bar{
  display:none !important;
}
@media(max-width:860px){
  .sidebar-footer .footer-nav-action{
    width:auto;
    white-space:nowrap;
  }
}


/* v0.7.48 — Sincronizar e tema com a mesma cor dos demais itens do menu */
@media (max-width:860px){
  .sidebar{
    color:#f3f7f7;
  }

  .sidebar .nav-item,
  .sidebar .footer-nav-action,
  .sidebar #sync-button,
  .sidebar #theme-toggle,
  .sidebar #install-app-button{
    color:#f3f7f7 !important;
    background:transparent !important;
    border-color:transparent !important;
    opacity:1 !important;
  }

  .sidebar .footer-nav-action .nav-icon,
  .sidebar #sync-button .nav-icon,
  .sidebar #theme-toggle .nav-icon,
  .sidebar #install-app-button .nav-icon{
    color:#f3f7f7 !important;
    opacity:.85 !important;
  }

  .sidebar .nav-item:hover,
  .sidebar .footer-nav-action:hover,
  .sidebar #sync-button:hover,
  .sidebar #theme-toggle:hover,
  .sidebar #install-app-button:hover{
    color:#ffffff !important;
  }
}


/* =====================================================
   v0.7.49 — CIFRA VIVA — MENU LATERAL VISUAL APROVADO
   ===================================================== */

/* Barra lateral / barra horizontal em tablet e celular */
.sidebar,
.sidebar-menu,
.app-sidebar {
  background: linear-gradient(
    180deg,
    #07566a 0%,
    #086579 55%,
    #087184 100%
  ) !important;
  color: #ffffff !important;
}

/* Itens do menu */
.sidebar a,
.sidebar button,
.sidebar .menu-item,
.sidebar .nav-item,
.sidebar-menu a,
.sidebar-menu button,
.sidebar-menu .menu-item {
  color: #ffffff !important;
  opacity: 1 !important;
}

/* Textos dentro dos itens */
.sidebar a span,
.sidebar button span,
.sidebar .menu-item span,
.sidebar .nav-item span {
  color: #ffffff !important;
  opacity: 1 !important;
}

/* Ícones */
.sidebar svg,
.sidebar i,
.sidebar .icon,
.sidebar-menu svg,
.sidebar-menu i,
.sidebar .nav-icon {
  color: #ffffff !important;
  stroke: currentColor !important;
  opacity: 1 !important;
}

/* Hover */
.sidebar a:hover,
.sidebar button:hover,
.sidebar .menu-item:hover,
.sidebar .nav-item:hover {
  background: rgba(255,255,255,0.10) !important;
  color: #ffffff !important;
}

/* Item selecionado */
.sidebar .active,
.sidebar .menu-item.active,
.sidebar .nav-item.active {
  background: rgba(255,255,255,0.14) !important;
  color: #ffffff !important;
}

/* Títulos das seções — ex.: COMERCIAL */
.sidebar .section-title,
.sidebar .menu-section-title,
.sidebar .sidebar-label,
.sidebar .sidebar-section-title {
  color: rgba(255,255,255,0.78) !important;
  opacity: 1 !important;
  font-weight: 600;
  letter-spacing: 0.12em;
}

/* Divisórias */
.sidebar hr,
.sidebar .divider,
.sidebar .separator {
  border-color: rgba(255,255,255,0.18) !important;
  background: rgba(255,255,255,0.18) !important;
}

/* =====================================================
   PARTE INFERIOR
   ===================================================== */

/* Sincronizado */
.sidebar .sync-status,
.sidebar .status-sync,
.sidebar .synced,
.sidebar .cloud-status {
  color: #ffffff !important;
  opacity: 1 !important;
  border-color: rgba(255,255,255,0.24) !important;
  background: transparent !important;
}

/* Bolinha/estado online */
.sidebar .sync-status::before,
.sidebar .status-dot,
.sidebar .online-dot {
  background: #5ee6b5 !important;
  opacity: 1 !important;
}

/* Sincronizar + Escurecer a tela + Instalar */
.sidebar .sync-button,
.sidebar .dark-mode-button,
.sidebar .bottom-action,
.sidebar .footer-action,
.sidebar #sync-button,
.sidebar #theme-toggle,
.sidebar #install-app-button,
.sidebar .footer-nav-action {
  color: #ffffff !important;
  opacity: 1 !important;
  background: transparent !important;
  border-color: transparent !important;
}

/* Mesmo quando button tiver atributo disabled visual */
.sidebar button:disabled {
  color: #ffffff !important;
  opacity: 0.85 !important;
}

/* Ícones inferiores */
.sidebar .sync-button svg,
.sidebar .dark-mode-button svg,
.sidebar .bottom-action svg,
.sidebar .footer-action svg,
.sidebar #sync-button .nav-icon,
.sidebar #theme-toggle .nav-icon,
.sidebar #install-app-button .nav-icon {
  color: #ffffff !important;
  stroke: #ffffff !important;
  opacity: 1 !important;
}

/* Área inferior inteira */
.sidebar-footer,
.sidebar .sidebar-footer,
.sidebar-bottom {
  background: transparent !important;
  color: #ffffff !important;
  opacity: 1 !important;
}

/* Mantém leitura clara do status online */
.sidebar .cloud-status.online,
.sidebar .cloud-status.syncing,
.sidebar .cloud-status.error {
  color: #ffffff !important;
}

/* Tablet/celular: mantém o mesmo padrão aprovado */
@media (max-width: 860px) {
  .sidebar {
    background: linear-gradient(
      90deg,
      #07566a 0%,
      #086579 55%,
      #087184 100%
    ) !important;
  }

  .sidebar .nav-item,
  .sidebar .footer-nav-action,
  .sidebar #sync-button,
  .sidebar #theme-toggle,
  .sidebar #install-app-button {
    color: #ffffff !important;
    opacity: 1 !important;
  }
}


/* v0.7.68 — textos dos menus sempre brancos no modo escuro */
[data-theme="dark"] .sidebar,
[data-theme="dark"] .sidebar-menu,
[data-theme="dark"] .app-sidebar,
[data-theme="dark"] .sidebar a,
[data-theme="dark"] .sidebar button,
[data-theme="dark"] .sidebar .nav-item,
[data-theme="dark"] .sidebar .menu-item,
[data-theme="dark"] .sidebar .sidebar-cat,
[data-theme="dark"] .sidebar .footer-nav-action,
[data-theme="dark"] .sidebar #sync-button,
[data-theme="dark"] .sidebar #theme-toggle,
[data-theme="dark"] .sidebar #install-app-button,
[data-theme="dark"] .sidebar a span,
[data-theme="dark"] .sidebar button span,
[data-theme="dark"] .sidebar .nav-item span,
[data-theme="dark"] .sidebar .menu-item span,
[data-theme="dark"] .sidebar .nav-icon,
[data-theme="dark"] .sidebar .cloud-status {
  color: #ffffff !important;
  opacity: 1 !important;
}

[data-theme="dark"] .sidebar .sidebar-section-title,
[data-theme="dark"] .sidebar .section-title,
[data-theme="dark"] .sidebar .menu-section-title,
[data-theme="dark"] .sidebar .sidebar-label {
  color: rgba(255,255,255,.82) !important;
  opacity: 1 !important;
}

/* Controles da música também precisam de contraste no modo escuro. */
[data-theme="dark"] .key-btn,
[data-theme="dark"] #btn-transpose-down,
[data-theme="dark"] #btn-transpose-up {
  background: #16232b !important;
  border-color: #3c5661 !important;
  color: #ffffff !important;
  opacity: 1 !important;
}

[data-theme="dark"] .key-btn:hover,
[data-theme="dark"] #btn-transpose-down:hover,
[data-theme="dark"] #btn-transpose-up:hover {
  background: #1d343d !important;
  border-color: #58a99d !important;
  color: #ffffff !important;
}

/* v0.7.50 — identidade: app do músico católico */
.home-positioning{
  margin-top:6px;
  font-family:var(--font-display);
  font-size:18px;
  font-weight:700;
  line-height:1.2;
  color:var(--ink);
}
.home-positioning-sub{
  max-width:700px;
  margin-top:3px;
  margin-bottom:5px;
  font-size:11.5px;
  line-height:1.45;
  color:var(--ink-soft);
}
@media(max-width:620px){
  .home-positioning{font-size:16px}
  .home-positioning-sub{font-size:10.5px}
}


/* v0.7.51 — guia prático e acesso Master completo */
.offline-steps{
  display:grid;
  gap:8px;
  margin:14px 0;
}
.offline-step{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:10px 11px;
  border-radius:10px;
  background:var(--card-bg);
  border:1px solid var(--rule);
}
.offline-step>span{
  width:26px;
  height:26px;
  flex:0 0 26px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:var(--accent);
  color:#fff;
  font-size:11px;
  font-weight:900;
}
.offline-step>div{
  min-width:0;
}
.offline-step strong{
  display:block;
  font-size:11.5px;
  margin-bottom:2px;
}
.offline-step p{
  margin:0;
  color:var(--ink-soft);
  font-size:10.5px;
  line-height:1.45;
}


/* v0.7.52 — recuperação de senha e área do integrante */
.auth-forgot-link{
  display:block;
  margin:7px 0 0 auto;
  padding:2px 0;
  border:0;
  background:transparent;
  color:var(--accent);
  font:inherit;
  font-size:11.5px;
  font-weight:700;
  cursor:pointer;
}
.auth-forgot-link:hover{text-decoration:underline}
.password-reset-note{
  margin:10px 0 0;
  color:var(--ink-soft);
  font-size:10.5px;
  line-height:1.4;
}
.member-ministry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.member-ministry-card{
  border:1px solid var(--rule);
  border-radius:12px;
  padding:12px;
  background:var(--card-bg);
}
.member-ministry-card-head{display:flex;align-items:center;gap:9px}
.member-ministry-card-head>div{display:flex;flex-direction:column;gap:2px}
.member-ministry-card-head strong{font-size:13px}
.member-ministry-card-head small{font-size:10px;color:var(--accent);font-weight:700}
.member-ministry-card>p{margin:8px 0;color:var(--ink-soft);font-size:10.5px;line-height:1.4}
.member-shared-reps{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.member-shared-reps>b{font-size:11.5px}
.member-shared-rep{
  display:flex;
  align-items:center;
  gap:9px;
  width:100%;
  padding:10px 11px;
  border:1px solid var(--rule);
  border-radius:10px;
  background:var(--card-bg);
  color:var(--ink);
  text-align:left;
  cursor:pointer;
}
.member-shared-rep:hover{border-color:var(--accent);box-shadow:0 4px 14px rgba(10,70,79,.08)}
.member-shared-rep>span:last-child{display:flex;flex-direction:column;gap:1px}
.member-shared-rep strong{font-size:12.5px}
.member-shared-rep small{font-size:10.5px;color:var(--ink-soft)}
.shared-repertoire-modal-box{
  width:min(1050px,96vw);
  max-width:1050px!important;
  max-height:92vh;
  overflow:auto;
}
.shared-repertoire-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}
.shared-repertoire-head h2{margin:2px 0 2px}
.shared-repertoire-layout{
  display:grid;
  grid-template-columns:minmax(220px,300px) minmax(0,1fr);
  gap:12px;
}
.shared-repertoire-song-list{
  display:flex;
  flex-direction:column;
  gap:5px;
  max-height:68vh;
  overflow:auto;
}
.shared-repertoire-song{
  display:grid;
  grid-template-columns:26px minmax(0,1fr) auto;
  align-items:center;
  gap:7px;
  width:100%;
  padding:8px;
  border:1px solid var(--rule);
  border-radius:8px;
  background:var(--card-bg);
  color:var(--ink);
  text-align:left;
  cursor:pointer;
}
.shared-repertoire-song.active{border-color:var(--accent);background:var(--accent-soft)}
.shared-repertoire-song>span:nth-child(2){display:flex;flex-direction:column;gap:1px}
.shared-repertoire-song strong{font-size:10.5px}
.shared-repertoire-song small{font-size:9px;color:var(--ink-soft)}
.shared-song-number{
  width:24px;height:24px;display:flex;align-items:center;justify-content:center;
  border-radius:999px;background:var(--paper-dim);font-size:9px;font-weight:800
}
.shared-repertoire-song>b{font-size:10px;color:var(--accent)}
.shared-song-view{min-width:0;border:1px solid var(--rule);border-radius:10px;padding:12px;background:var(--card-bg)}
.shared-song-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}
.shared-song-head h3{margin:0;font-size:16px}
.shared-song-body{min-height:260px;max-height:66vh;overflow:auto}
@media(max-width:760px){
  .member-ministry-grid{grid-template-columns:1fr}
  .shared-repertoire-layout{grid-template-columns:1fr}
  .shared-repertoire-song-list{max-height:230px}
  .shared-song-body{max-height:52vh}
}


/* v0.7.54 — reparador de cifras */
#catalog-chord-repair-status{margin-top:8px;font-weight:600}

/* v0.7.56 — opções do reparador */
.chord-repair-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}


/* v0.7.57 — Pro cortesia Master */
.master-courtesy-card{
  margin-bottom:14px;
}
.courtesy-grant-row{
  display:grid;
  grid-template-columns:minmax(220px,1fr) auto;
  gap:8px;
  align-items:center;
  margin:10px 0 6px;
}
.courtesy-active-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-top:12px;
  padding-top:10px;
  border-top:1px solid var(--rule);
}
.courtesy-list{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin-top:7px;
}
.courtesy-user-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:8px 9px;
  border:1px solid var(--rule);
  border-radius:9px;
  background:var(--paper-dim);
}
.courtesy-user-row>div{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
}
.courtesy-user-row strong{
  font-size:11.5px;
}
.courtesy-user-row span{
  color:var(--ink-soft);
  font-size:9.5px;
  overflow-wrap:anywhere;
}
@media(max-width:620px){
  .courtesy-grant-row{grid-template-columns:1fr}
  .courtesy-user-row{align-items:flex-start;flex-direction:column}
}


/* =====================================================
   v0.7.58 — VISUALIZAÇÃO DA MÚSICA
   Mesma cadência visual do Modo apresentação
   ===================================================== */

/* O detalhe não deve herdar o line-height alto genérico do .song-body
   para as estruturas pareadas/ancoradas. */
#detail-body{
  white-space:normal !important;
  overflow-x:hidden !important;
  line-height:1.2 !important;
}

/* Cifra + letra tradicionais */
#detail-body .paired-song-line{
  display:block;
  width:100%;
  margin:0 0 .62em 0 !important;
  padding:0;
}

#detail-body .paired-song-line .line-chord,
#detail-body .paired-song-line .line-lyric{
  display:block;
  width:auto !important;
  max-width:100% !important;
  white-space:pre !important;
  padding:0 !important;
}

#detail-body .paired-song-line .line-chord{
  line-height:1 !important;
  margin:0 0 .10em 0 !important;
}

#detail-body .paired-song-line .line-lyric{
  line-height:1.18 !important;
  margin:0 !important;
}

/* Cifras ancoradas */
#detail-body .anchored-song-line{
  display:block;
  width:100%;
  margin:0 0 .62em 0 !important;
  padding:0 !important;
  overflow:visible;
}

#detail-body .anchored-chord-row{
  position:relative;
  display:block;
  width:100%;
  height:1.18em !important;
  min-height:1.18em !important;
  line-height:1 !important;
  margin:0 0 .10em 0 !important;
  white-space:nowrap !important;
  overflow:visible !important;
}

#detail-body .anchored-chord{
  top:0 !important;
  line-height:1 !important;
}

#detail-body .anchored-lyric{
  display:block;
  line-height:1.18 !important;
  white-space:pre !important;
  margin:0 !important;
  padding:0 !important;
}

/* Linhas isoladas */
#detail-body .paired-single-line{
  display:block !important;
  width:100%;
  max-width:100%;
  line-height:1.2 !important;
  margin:0 0 .32em 0 !important;
  white-space:pre-wrap !important;
  overflow-wrap:anywhere;
}

/* Títulos de seção como [Primeira Parte], [Refrão] */
#detail-body .line-label{
  display:block !important;
  clear:both;
  line-height:1.2 !important;
  margin:.80em 0 .55em !important;
}

/* Espaço entre blocos */
#detail-body .line-blank{
  display:block !important;
  height:.72em !important;
}

/* Evita ampliação automática do texto pelo navegador móvel,
   que podia deixar a visualização diferente da apresentação. */
#detail-body{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}

@media(max-width:860px){
  #detail-body{
    padding:18px 16px !important;
    font-size:16px !important;
  }
}

@media(max-width:620px){
  #detail-body{
    padding:16px 12px !important;
    font-size:15px !important;
  }

  #detail-body .anchored-song-line,
  #detail-body .paired-song-line{
    margin-bottom:.68em !important;
  }
}


/* v0.7.63 — gerenciamento do catálogo paginado */
#catalog-admin-results-summary{
  margin-top:10px;
}
#catalog-admin-pagination{
  margin-top:16px;
}
.catalog-admin-row-manage{
  min-width:0;
}
.catalog-admin-song-info{
  min-width:0;
}
.catalog-admin-song-info strong,
.catalog-admin-song-info small{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
@media(max-width:620px){
  .catalog-admin-row-manage{
    grid-template-columns:24px minmax(0,1fr) auto;
  }
  .catalog-admin-row-manage .catalog-status{
    display:none;
  }
}


/* v0.7.64 — Cartão + Pix */
.billing-payment-modal-card{
  width:min(560px,94vw);
  max-width:560px;
}
.payment-method-choice{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px;
  margin:14px 0;
}
.payment-method-card{
  display:grid;
  grid-template-columns:34px 1fr;
  grid-template-rows:auto auto;
  column-gap:9px;
  text-align:left;
  border:1px solid var(--rule);
  background:var(--card-bg);
  color:var(--ink);
  border-radius:11px;
  padding:12px;
  cursor:pointer;
}
.payment-method-card.active{
  border-color:var(--accent);
  box-shadow:0 0 0 2px var(--accent-soft);
}
.payment-method-icon{
  grid-row:1/3;
  display:grid;
  place-items:center;
  width:32px;
  height:32px;
  border-radius:9px;
  background:var(--accent-soft);
  color:var(--accent);
  font-size:18px;
}
.payment-method-card strong{font-size:14px}
.payment-method-card small{color:var(--ink-soft);font-size:11px;margin-top:2px}
.payment-method-panel{
  border-top:1px solid var(--rule);
  padding-top:14px;
}
.payment-main-action{
  width:100%;
  justify-content:center;
}
.payment-secondary-action{
  margin-top:8px;
}
.payment-status-line{
  margin-top:9px;
  min-height:18px;
}
.pix-payment-box{
  margin-top:12px;
  padding:14px;
  border:1px solid var(--rule);
  border-radius:11px;
  background:var(--paper-dim);
  text-align:center;
}
.pix-qr{
  width:min(230px,75vw);
  height:auto;
  margin:0 auto 12px;
  background:white;
  border-radius:8px;
  padding:8px;
}
.pix-copy-wrap{
  display:flex;
  flex-direction:column;
  gap:6px;
  text-align:left;
  margin-bottom:10px;
}
.pix-copy-wrap label{
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
  color:var(--ink-soft);
}
.pix-copy-wrap textarea{
  resize:none;
  width:100%;
  box-sizing:border-box;
  font-family:var(--font-mono);
  font-size:10px;
  border:1px solid var(--rule);
  border-radius:8px;
  background:var(--card-bg);
  color:var(--ink);
  padding:8px;
}
#mp-open-pix-ticket,
#mp-check-pix{
  margin-top:7px;
}
@media(max-width:520px){
  .payment-method-choice{grid-template-columns:1fr}
}

/* ===== Cifra Viva v0.7.66 — experiência de instalação PWA ===== */
.pwa-install-invite{
  position:fixed;
  left:50%;
  bottom:max(18px, env(safe-area-inset-bottom));
  z-index:10050;
  width:min(680px, calc(100vw - 28px));
  transform:translate(-50%, calc(100% + 40px));
  opacity:0;
  display:grid;
  grid-template-columns:52px minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  padding:14px 16px;
  border:1px solid rgba(14,106,100,.18);
  border-radius:18px;
  background:rgba(255,255,255,.98);
  box-shadow:0 18px 50px rgba(10,48,58,.22);
  transition:transform .22s ease, opacity .22s ease;
  backdrop-filter:blur(12px);
}
.pwa-install-invite.is-visible{transform:translate(-50%,0);opacity:1}
.pwa-install-invite-icon{width:52px;height:52px;border-radius:13px;object-fit:cover;box-shadow:0 6px 16px rgba(10,65,73,.15)}
.pwa-install-invite-copy{display:flex;flex-direction:column;gap:3px;min-width:0}
.pwa-install-invite-copy strong{font-size:15px;color:#143f46;line-height:1.2}
.pwa-install-invite-copy span{font-size:12.5px;color:#65777b;line-height:1.35}
.pwa-install-invite-actions{display:flex;flex-direction:column;gap:6px}
.pwa-install-invite-action{border:0;border-radius:11px;background:#0d7068;color:#fff;font-weight:700;padding:11px 14px;white-space:nowrap;cursor:pointer}
.pwa-install-invite-action:hover{filter:brightness(.96)}
.pwa-install-invite-action-apple{background:#fff;color:#0d7068;border:1.5px solid #0d7068;display:flex;align-items:center;justify-content:center;gap:5px}
.pwa-install-invite-action-apple::before{content:"🍎";font-size:13px}
.pwa-install-invite-close{position:absolute;top:-9px;right:-7px;width:28px;height:28px;border:1px solid #d9e2e2;border-radius:50%;background:#fff;color:#52676a;font-size:20px;line-height:24px;cursor:pointer;box-shadow:0 4px 12px rgba(0,0,0,.12)}

.pwa-install-help-backdrop{position:fixed;inset:0;z-index:10080;background:rgba(8,31,36,.58);display:grid;place-items:center;padding:18px}
.pwa-install-help{position:relative;width:min(560px,100%);display:grid;grid-template-columns:70px minmax(0,1fr);gap:18px;background:#fff;border-radius:22px;padding:24px;box-shadow:0 28px 80px rgba(0,0,0,.28)}
.pwa-install-help-icon{width:70px;height:70px;border-radius:17px;object-fit:cover}
.pwa-install-help-kicker{font-size:10px;letter-spacing:.15em;font-weight:800;color:#6d8587;margin:2px 0 6px}
.pwa-install-help h2{margin:0 0 8px;color:#163e45;font-size:25px}
.pwa-install-help p{margin:0 0 14px;color:#617478;line-height:1.5;font-size:14px}
.pwa-install-help ol{margin:0 0 14px;padding-left:22px;color:#334f54;font-size:14px;line-height:1.55}
.pwa-install-help li+li{margin-top:5px}
.pwa-install-help-note{font-size:12.5px!important;background:#f2f8f6;padding:10px 12px;border-radius:10px}
.pwa-install-help-close{position:absolute;top:12px;right:14px;border:0;background:transparent;color:#6b7b7e;font-size:28px;cursor:pointer}
.pwa-install-help-ok{min-width:120px}

@media (max-width:620px){
  .pwa-install-invite{grid-template-columns:44px minmax(0,1fr);padding:12px 13px;gap:10px;border-radius:16px}
  .pwa-install-invite-icon{width:44px;height:44px;border-radius:11px}
  .pwa-install-invite-action{grid-column:1/-1;width:100%;padding:10px 12px}
  .pwa-install-invite-copy strong{font-size:14px}
  .pwa-install-invite-copy span{font-size:12px}
  .pwa-install-help{grid-template-columns:1fr;padding:22px 20px}
  .pwa-install-help-icon{width:58px;height:58px}
  .pwa-install-help h2{font-size:22px}
}

/* Acabamento final v0.7.73 — mantido ao fim para prevalecer sobre estilos legados. */
body:not([data-theme="dark"]) main{
  background:radial-gradient(circle at 92% 4%,rgba(24,184,143,.09),transparent 23rem),linear-gradient(180deg,#f9fcfc 0%,#f3f8f8 100%);
}
.search-bar{min-height:48px;border-radius:12px!important;border-color:rgba(8,103,122,.15)!important;box-shadow:0 8px 24px rgba(10,70,79,.055)}
.song-card,.commercial-card,.guide-card,.request-card,.plan-card{
  border-radius:16px!important;
  border-color:rgba(8,103,122,.13)!important;
  box-shadow:0 10px 28px rgba(10,70,79,.06)!important;
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease!important;
}
.song-card:hover,.guide-card:hover{transform:translateY(-2px);border-color:rgba(24,184,143,.5)!important;box-shadow:0 16px 34px rgba(10,70,79,.11)!important}
.btn{border-radius:10px}
.btn-primary{background:linear-gradient(135deg,#0a8d83,#17b58e);border-color:#0a8d83}
.page-title{color:#064a5a}
[data-theme="dark"] .page-title{color:#fff}

/* v0.7.76 — Painel de usuários da Conta Master */
.users-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0}
.users-summary-card{background:var(--surface,#fff);border:1px solid rgba(8,103,122,.14);border-radius:16px;padding:18px;box-shadow:0 10px 28px rgba(10,70,79,.055);display:flex;flex-direction:column;gap:5px}
.users-summary-card strong{font-size:28px;color:#087787}.users-summary-card span{font-size:12px;color:#6f8588;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.users-security-note{margin:14px 0 16px;padding:12px 14px;border-radius:12px;background:rgba(24,184,143,.09);border:1px solid rgba(24,184,143,.22);color:#45696d;font-size:13px;line-height:1.5}
.users-admin-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) minmax(180px,260px) auto;gap:10px;align-items:center;margin-bottom:12px}
.users-admin-list{display:grid;gap:9px}.users-admin-row{display:grid;grid-template-columns:minmax(240px,1.4fr) minmax(120px,.45fr) minmax(130px,.55fr) minmax(180px,.75fr);gap:14px;align-items:center;padding:13px 14px;border:1px solid rgba(8,103,122,.12);border-radius:13px;background:rgba(255,255,255,.7)}
.users-admin-person{min-width:0;display:flex;flex-direction:column;gap:3px}.users-admin-person strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#183f46}.users-admin-person a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#0a7a87;text-decoration:none;font-size:13px}.users-admin-person a:hover{text-decoration:underline}
.users-plan-badge{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap}.users-plan-badge.free{background:#edf3f3;color:#62787b}.users-plan-badge.pro{background:#e4f7f0;color:#087a66}.users-plan-badge.master{background:#e7f0fb;color:#275f9a}
.users-admin-date{display:flex;flex-direction:column;gap:2px}.users-admin-date span{font-size:10px;text-transform:uppercase;color:#829294;font-weight:800;letter-spacing:.05em}.users-admin-date strong{font-size:12.5px;color:#435e62;font-weight:600}.users-admin-empty,.users-admin-loading{padding:22px;text-align:center;color:#718487;border:1px dashed rgba(8,103,122,.2);border-radius:12px}
[data-theme="dark"] .users-admin-row,[data-theme="dark"] .users-summary-card{background:rgba(255,255,255,.035)}[data-theme="dark"] .users-admin-person strong,[data-theme="dark"] .users-admin-date strong{color:#eaf4f4}[data-theme="dark"] .users-security-note{color:#cce3df}
@media(max-width:900px){.users-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.users-admin-row{grid-template-columns:1fr 1fr}.users-admin-toolbar{grid-template-columns:1fr}.users-admin-toolbar .btn{width:100%}}
@media(max-width:560px){.users-summary-grid{grid-template-columns:1fr 1fr;gap:9px}.users-summary-card{padding:14px}.users-summary-card strong{font-size:23px}.users-admin-row{grid-template-columns:1fr;gap:9px}}


/* v0.7.77 — Destaque do tamanho do catálogo na página inicial */
.cv-home-catalog-proof{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin:4px 0 18px;
  padding:9px 13px;
  border:1px solid rgba(34,197,94,.22);
  border-radius:999px;
  background:rgba(34,197,94,.08);
  font-size:.88rem;
  line-height:1.2;
}
.cv-home-catalog-proof strong{
  font-size:1rem;
  letter-spacing:.01em;
}
.cv-home-catalog-proof span{
  opacity:.86;
}
@media (max-width:640px){
  .cv-home-catalog-proof{
    display:flex;
    width:max-content;
    max-width:100%;
  }
}

/* v0.7.93 — relato rápido de erro */
.song-error-modal-card{width:min(560px,94vw)}
#song-error-modal{align-items:center;justify-content:center;padding:18px}
.request-type-badge.error{background:#fff0e6;color:#9a3f00;border:1px solid #f3c7a5}
@media print{#btn-report-song-error,#song-error-modal{display:none!important}}

/* v0.8.04 — busca rápida no catálogo */
.catalog-search-options{display:grid;grid-template-columns:minmax(180px,.75fr) minmax(220px,1fr);gap:12px;margin:14px 0 12px}
.catalog-filter-field{display:flex;flex-direction:column;gap:6px;font-weight:700;font-size:13px;color:var(--muted)}
.catalog-filter-field .input{font-weight:600;color:var(--text)}
.catalog-card{cursor:pointer}
.catalog-card-actions{display:flex;align-items:center;justify-content:flex-end;margin-top:12px}
.catalog-card-actions .btn{min-width:112px}
.catalog-category-card{cursor:pointer}
@media(max-width:720px){
  .catalog-search-options{grid-template-columns:1fr}
  .catalog-card-actions{justify-content:stretch}
  .catalog-card-actions .btn{width:100%}
}

#catalog-login-note:empty{display:none!important}

/* v0.8.05 — organização da Administração */
.admin-hub-card{background:linear-gradient(135deg,#0f3d37,#17685c);border-radius:22px;padding:20px;margin:0 0 18px;color:#fff;box-shadow:0 12px 30px rgba(16,67,60,.16)}
.admin-hub-title{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px}.admin-hub-title strong{display:block;font-size:1.05rem}.admin-hub-title span{display:block;opacity:.8;font-size:.86rem;margin-top:2px}
.admin-hub-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.admin-hub-btn{border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.09);color:#fff;border-radius:14px;padding:13px;text-align:left;cursor:pointer;transition:.18s ease;min-height:86px}.admin-hub-btn:hover{background:rgba(255,255,255,.16);transform:translateY(-1px)}.admin-hub-btn>span{font-size:1.25rem;display:block;margin-bottom:5px}.admin-hub-btn b,.admin-hub-btn small{display:block}.admin-hub-btn b{font-size:.9rem}.admin-hub-btn small{font-size:.74rem;opacity:.76;margin-top:2px;line-height:1.25}
.catalog-duplicate-cleaner{margin-bottom:18px;border:1px solid rgba(176,96,28,.18)}.duplicate-rule-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}.duplicate-rule-grid>div{display:flex;gap:10px;align-items:center;padding:11px 12px;background:var(--surface-soft,#f6f8f7);border-radius:12px}.duplicate-rule-grid strong{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#17685c;color:#fff;font-size:.78rem;flex:0 0 auto}.duplicate-rule-grid span{font-size:.82rem;line-height:1.25}.duplicate-cleaner-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}.duplicate-cleaner-stats>div{padding:13px;border:1px solid var(--border,#e4e8e6);border-radius:12px;background:#fff}.duplicate-cleaner-stats span,.duplicate-cleaner-stats b{display:block}.duplicate-cleaner-stats span{font-size:.76rem;color:var(--muted,#6f7774)}.duplicate-cleaner-stats b{font-size:1.2rem;margin-top:3px;color:var(--text,#1e2925)}
@media(max-width:900px){.admin-hub-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.duplicate-rule-grid,.duplicate-cleaner-stats{grid-template-columns:1fr}}


/* v0.8.06 — entrada mais clara para primeiro acesso */
#auth-modal .modal{width:min(520px,94vw)}
.auth-entry-brand{margin-bottom:14px}
.auth-entry-brand .auth-full-logo{margin-bottom:4px}
.auth-entry-kicker{display:block;margin:2px 0 5px;font-size:9.5px;font-weight:800;letter-spacing:.14em;color:var(--accent);text-align:center}
.auth-entry-brand h2{margin:0;text-align:center;font-size:23px}
.auth-entry-brand p{max-width:390px;margin:7px auto 0;text-align:center;color:var(--muted);font-size:12.5px;line-height:1.45}
.auth-choice-intro{display:flex;flex-direction:column;gap:3px;margin:2px 0 10px}
.auth-choice-intro strong{font-size:13px}.auth-choice-intro span{font-size:11.5px;line-height:1.4;color:var(--muted)}
.auth-mode-switch.auth-mode-cards{grid-template-columns:1fr 1fr;gap:9px;padding:0;border:0;background:transparent;margin-bottom:12px}
.auth-mode-cards .auth-mode-btn{display:flex;align-items:center;gap:9px;text-align:left;min-height:66px;padding:11px 12px;border:1px solid var(--border);border-radius:14px;background:var(--card,#fff);box-shadow:none;color:var(--text)}
.auth-mode-cards .auth-mode-btn:hover{border-color:rgba(14,143,120,.38)}
.auth-mode-cards .auth-mode-btn.active{border-color:rgba(14,143,120,.65);background:rgba(14,143,120,.07);box-shadow:0 0 0 2px rgba(14,143,120,.06)}
.auth-mode-icon{display:grid;place-items:center;flex:0 0 31px;height:31px;border-radius:9px;background:rgba(14,143,120,.11);color:var(--accent);font-size:17px;font-weight:900}
.auth-mode-cards .auth-mode-btn>span:last-child{display:flex;flex-direction:column;gap:2px;min-width:0}.auth-mode-cards b{font-size:12px;line-height:1.2}.auth-mode-cards small{font-size:10.5px;color:var(--muted);font-weight:600}
.auth-form-card{padding:14px;border:1px solid var(--border);border-radius:14px;background:var(--card,#fff)}
.auth-form-card .input{min-height:43px}
.auth-password-row{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:27px}
.auth-password-hint{font-size:10.5px;color:var(--muted)}
.auth-entry-actions{margin-top:9px}.auth-entry-actions .auth-main-submit{flex:1;min-width:180px}
.auth-help-simple{margin-top:10px;padding:10px 12px}.auth-help-simple strong{margin-bottom:3px}.auth-help-simple span{font-size:11.5px;line-height:1.4}
.auth-hidden{display:none!important}
[data-theme="dark"] .auth-mode-cards .auth-mode-btn,[data-theme="dark"] .auth-form-card{background:rgba(255,255,255,.035)}
@media(max-width:560px){
  #auth-modal .modal{width:94vw;padding:16px}
  .auth-entry-brand h2{font-size:20px}
  .auth-mode-switch.auth-mode-cards{grid-template-columns:1fr}
  .auth-mode-cards .auth-mode-btn{min-height:58px}
  .auth-entry-actions{display:grid;grid-template-columns:1fr}.auth-entry-actions .btn{width:100%}
  .auth-password-row{align-items:flex-start;flex-direction:column;gap:2px}.auth-forgot-link{margin-left:0}
}


/* v0.8.07 — confirmação de e-mail clara após o cadastro */
.signup-email-modal-card{width:min(460px,94vw);text-align:center;padding:26px 24px}
.signup-email-icon{width:64px;height:64px;margin:0 auto 12px;border-radius:20px;display:grid;place-items:center;font-size:30px;background:rgba(14,143,120,.10);color:var(--primary,#0e8f78);border:1px solid rgba(14,143,120,.18)}
.signup-email-kicker{display:block;font-size:10px;letter-spacing:.12em;font-weight:800;color:var(--primary,#0e8f78);margin-bottom:7px}
.signup-email-modal-card h2{margin:0 0 8px;font-size:24px}
.signup-email-lead{margin:0;color:var(--muted)}
.signup-email-address{margin:10px 0 16px;padding:11px 12px;border-radius:12px;background:rgba(14,143,120,.07);border:1px solid rgba(14,143,120,.20);font-weight:800;overflow-wrap:anywhere}
.signup-email-steps{display:grid;gap:8px;text-align:left;margin:0 0 14px}
.signup-email-steps>div{display:grid;grid-template-columns:30px 1fr;gap:10px;align-items:start;padding:9px 10px;border:1px solid var(--border);border-radius:12px;background:var(--card,#fff)}
.signup-email-steps span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--primary,#0e8f78);color:#fff;font-weight:800;font-size:12px}
.signup-email-steps p{margin:4px 0 0;font-size:13px;line-height:1.4}
.signup-email-spam{font-size:12px;line-height:1.45;color:var(--muted);margin:4px 0 0}
.signup-email-actions{margin-top:18px}
.signup-email-actions .btn{width:100%;min-height:46px}
[data-theme="dark"] .signup-email-steps>div{background:rgba(255,255,255,.035)}


/* v0.8.09 — confirmação de e-mail com remetente Supabase */
.catalog-filter-field{gap:8px;font-size:15px;color:var(--text)}
.catalog-filter-field>span{font-size:15px;font-weight:800;letter-spacing:.01em}
.catalog-filter-field .input{min-height:52px;padding:0 14px;font-size:15px;font-weight:700;border-width:1.5px;border-radius:13px}
#catalog-search-mode{min-width:230px}
.catalog-search-options{grid-template-columns:minmax(230px,.9fr) minmax(250px,1.1fr);gap:14px}
.auth-mode-cards .auth-mode-btn{min-height:76px;padding:14px 15px;border-width:1.5px;transition:.18s ease}
.auth-mode-cards .auth-mode-btn>span:last-child{gap:4px}
.auth-mode-cards b{font-size:14.5px;line-height:1.2}
.auth-mode-cards small{font-size:11.5px}
.auth-mode-cards .auth-mode-btn.active{border:2px solid var(--accent,#0e8f78);background:rgba(14,143,120,.12);box-shadow:0 0 0 3px rgba(14,143,120,.10),0 7px 18px rgba(14,143,120,.08);transform:translateY(-1px)}
.auth-mode-cards .auth-mode-btn.active .auth-mode-icon{background:var(--accent,#0e8f78);color:#fff}
.signup-existing-modal-card{width:min(450px,94vw);text-align:center;padding:26px 24px}
.signup-existing-icon{width:64px;height:64px;margin:0 auto 12px;border-radius:20px;display:grid;place-items:center;font-size:29px;background:rgba(14,143,120,.10);color:var(--primary,#0e8f78);border:1px solid rgba(14,143,120,.18);font-weight:900}
.signup-existing-modal-card h2{margin:0 0 8px;font-size:24px}
.signup-existing-modal-card>p{color:var(--muted);line-height:1.5}
@media(max-width:720px){
  .catalog-search-options{grid-template-columns:1fr;gap:12px}
  #catalog-search-mode{min-width:0;width:100%}
  .catalog-filter-field>span{font-size:16px}
  .catalog-filter-field .input{min-height:54px;font-size:16px}
  .auth-mode-switch.auth-mode-cards{gap:8px}
  .auth-mode-cards .auth-mode-btn{min-height:72px;padding:12px 10px}
  .auth-mode-cards b{font-size:13.5px}
}

/* ===== Comunidades v0.8.11 ===== */
.communities-hero{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.8fr);gap:24px;align-items:center;padding:26px;border:1px solid var(--border);border-radius:22px;background:linear-gradient(135deg,var(--surface),var(--surface-2));margin-bottom:22px}.communities-eyebrow{display:block;font-size:11px;letter-spacing:.13em;font-weight:800;color:var(--accent);margin-bottom:6px}.communities-hero h2,.community-detail-head h2,.community-repertoire-head h2,.community-master-head h2{font-family:var(--font-display);margin:0 0 8px;font-size:26px}.communities-hero p,.community-detail-head p,.community-repertoire-head p,.community-master-head p{margin:0;color:var(--muted);line-height:1.6}.communities-flow{display:flex;align-items:center;justify-content:center;gap:9px;flex-wrap:wrap;padding:18px;border-radius:18px;background:var(--surface);border:1px solid var(--border)}.communities-flow span{padding:9px 12px;border-radius:999px;background:var(--surface-2);font-size:12px;font-weight:750}.communities-flow b{color:var(--accent)}
.community-grid,.community-repertoire-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.community-card,.community-repertoire-card{border:1px solid var(--border);border-radius:20px;background:var(--surface);padding:20px;box-shadow:var(--shadow-sm);cursor:pointer;transition:.18s transform,.18s box-shadow,.18s border-color}.community-card:hover,.community-repertoire-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:color-mix(in srgb,var(--accent) 35%,var(--border))}.community-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.community-card-icon,.community-detail-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:15px;background:var(--accent-soft);color:var(--accent);font-size:22px;font-weight:800}.community-card-badge{font-size:10px;letter-spacing:.12em;font-weight:800;color:var(--muted)}.community-card h3,.community-repertoire-card h3{font-family:var(--font-display);font-size:21px;margin:0 0 8px}.community-card p,.community-repertoire-card p{color:var(--muted);font-size:13px;line-height:1.55;min-height:42px}.community-card-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px;padding-top:16px;border-top:1px solid var(--border);font-size:12px;color:var(--muted)}
.community-back{margin-bottom:16px}.community-detail-head{display:flex;align-items:center;gap:16px;padding:20px 0 22px}.community-repertoire-date{font-size:11px;font-weight:800;letter-spacing:.08em;color:var(--accent);margin-bottom:8px}.community-repertoire-card-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.community-repertoire-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:20px 0}.community-add-repertoire{min-width:190px}.community-copy-note{padding:14px 16px;border-radius:14px;background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 20%,var(--border));font-size:13px;line-height:1.55;margin-bottom:16px}.community-song-list{border:1px solid var(--border);border-radius:18px;overflow:hidden;background:var(--surface)}.community-song-row{display:grid;grid-template-columns:42px minmax(0,1fr) 56px;gap:10px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--border)}.community-song-row:last-child{border-bottom:0}.community-song-number{width:30px;height:30px;display:grid;place-items:center;border-radius:10px;background:var(--surface-2);font-weight:800;font-size:12px}.community-song-info{display:flex;flex-direction:column;min-width:0}.community-song-info strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.community-song-info span{color:var(--muted);font-size:12px;margin-top:3px}.community-song-key{justify-self:end;font-family:var(--font-mono);font-weight:800;color:var(--accent)}.community-loading{padding:32px;text-align:center;color:var(--muted)}.community-master-panel{margin-top:28px;padding:22px;border:1px dashed color-mix(in srgb,var(--accent) 40%,var(--border));border-radius:20px;background:var(--surface-2)}.community-master-panel[style*="display:none"]{display:none!important}.community-master-head{margin-bottom:15px}.community-master-actions{display:flex;gap:10px;flex-wrap:wrap}
@media(max-width:760px){.communities-hero{grid-template-columns:1fr;padding:18px}.communities-hero h2,.community-detail-head h2,.community-repertoire-head h2{font-size:22px}.communities-flow{justify-content:flex-start}.community-repertoire-head{flex-direction:column}.community-add-repertoire{width:100%;min-width:0}.community-grid,.community-repertoire-grid{grid-template-columns:1fr}.community-detail-head{align-items:flex-start}.community-song-row{grid-template-columns:34px minmax(0,1fr) 48px;padding:12px}.community-card-compact{min-height:0!important;padding:13px 14px!important}.community-card-compact h3{font-size:15px!important}}

/* v0.8.12 — publicação direta na comunidade e edição livre da música */
.personal-visual-editor-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
}
.personal-visual-editor-head > div{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:220px;
  flex:1 1 420px;
}
.community-publish-form{
  display:grid;
  grid-template-columns:minmax(240px,1.3fr) minmax(180px,.7fr) minmax(260px,1.2fr);
  gap:12px;
  align-items:end;
}
.community-publish-form .community-master-actions{
  grid-column:1 / -1;
  margin-top:2px;
}
@media (max-width:900px){
  .community-publish-form{grid-template-columns:1fr;}
  .community-publish-form .community-master-actions{grid-column:auto;}
  .community-publish-form .community-master-actions .btn{width:100%;}
}


/* v0.8.13 — publicação Master visível + recorte estruturado de músicas */
.personal-editor-tools{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.editor-cut-toolbar{margin:10px 0;padding:12px 14px;border:1px solid rgba(190,126,20,.35);border-radius:12px;background:rgba(255,190,60,.08);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.editor-cut-actions{display:flex;gap:8px;flex-wrap:wrap}
.editor-cut-mode [data-source-line]{cursor:pointer;border-radius:6px;transition:background .12s ease,outline .12s ease}
.editor-cut-mode [data-source-line]:hover{background:rgba(14,143,120,.08)}
.editor-cut-mode .editor-cut-selected{background:rgba(220,70,70,.10)!important;outline:1px solid rgba(190,60,60,.28)}
.editor-cut-mode .editor-cut-start{outline:2px solid rgba(190,60,60,.65)}
.editor-cut-mode .editor-cut-end{outline:2px solid rgba(190,60,60,.65)}
#community-detail-master-panel{margin:18px 0 22px;padding:18px;border:1px solid rgba(14,143,120,.25);border-radius:16px;background:rgba(14,143,120,.045)}
@media(max-width:720px){.personal-editor-tools{justify-content:stretch}.personal-editor-tools .btn{flex:1 1 100%}.editor-cut-actions{width:100%}.editor-cut-actions .btn{flex:1}}


/* v0.8.14 — editor visual simples + transposição por repertório */
.personal-visual-editor .line-lyric[contenteditable="true"]{outline:none;border-radius:6px;padding:2px 4px;margin-left:-4px;min-width:2rem}
.personal-visual-editor .line-lyric[contenteditable="true"]:focus{background:rgba(30,120,80,.08);box-shadow:0 0 0 2px rgba(30,120,80,.18)}
.personal-visual-editor [data-source-line]{position:relative}
.editor-row-actions{padding-right:34px!important}
.editor-line-delete{position:absolute;right:2px;top:50%;transform:translateY(-50%);width:26px;height:26px;border-radius:50%;border:1px solid rgba(120,120,120,.28);background:var(--surface,#fff);font-size:18px;line-height:20px;cursor:pointer;opacity:.42}
.editor-line-delete:hover,.editor-line-delete:focus{opacity:1}
.rep-transpose{display:inline-flex;align-items:center;gap:3px;border:1px solid rgba(120,120,120,.20);border-radius:999px;padding:2px 3px}
.rep-transpose .rep-key-step{width:30px;height:30px;font-size:20px;line-height:1;padding:0}
.rep-transpose .tag-key{min-width:38px;text-align:center}
@media(max-width:640px){.rep-transpose .rep-key-step{width:34px;height:34px}.editor-line-delete{opacity:.72}}

/* v0.8.15 — Comunidades no mesmo padrão visual compacto do Catálogo */
.community-catalog-intro{
  display:flex;align-items:center;gap:9px;flex-wrap:wrap;
  margin:0 0 12px;padding:10px 12px;border:1px solid var(--border);
  border-radius:11px;background:var(--surface-2);font-size:12px;color:var(--muted)
}
.community-catalog-intro strong{color:var(--ink);font-size:13px}
.community-catalog-grid,.community-repertoire-grid{
  display:grid!important;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))!important;gap:10px!important
}
.community-card-compact,.community-repertoire-card-compact{
  min-height:0!important;padding:10px 11px!important;border-radius:11px!important;
  border:1px solid #dfe8eb!important;box-shadow:0 4px 15px rgba(10,62,82,.045)!important;
  background:var(--surface)!important;transition:.15s ease!important;cursor:pointer
}
.community-card-compact{
  position:relative;overflow:hidden;min-height:106px!important;padding:12px 13px!important;border-radius:16px!important;
  border:2px solid #cddedf!important;box-shadow:0 10px 26px rgba(10,62,82,.09)!important;
  background:linear-gradient(180deg,#ffffff 0%,#f8fcfb 100%)!important
}
.community-card-compact::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:linear-gradient(180deg,var(--accent) 0%,#9dd8c8 100%)
}
.community-card-compact:hover,.community-card-compact:focus-visible{
  transform:translateY(-2px)!important;border-color:#8ccfba!important;
  box-shadow:0 16px 34px rgba(10,108,90,.13)!important;outline:none
}
.community-repertoire-card-compact:hover,.community-repertoire-card-compact:focus-visible{
  transform:translateY(-1px)!important;border-color:#a9ddce!important;
  box-shadow:0 7px 22px rgba(10,108,90,.08)!important;outline:none
}
.community-card-line{display:flex;gap:11px;align-items:flex-start}.community-card-mark{
  flex:0 0 36px;width:36px;height:36px;display:grid;place-items:center;border-radius:11px;
  background:var(--accent-soft);color:var(--accent);font-weight:800;font-size:17px;box-shadow:inset 0 0 0 1px rgba(46,141,120,.15)
}
.community-card-copy{min-width:0;flex:1}.community-card-compact h3,.community-repertoire-card-compact h3{
  margin:0 0 2px!important;font-size:14px!important;line-height:1.18!important;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.community-card-compact h3{font-size:14px!important;margin-bottom:3px!important}
.community-card-compact p,.community-repertoire-card-compact p{
  margin:0!important;min-height:0!important;font-size:11.5px!important;line-height:1.32!important;color:var(--ink-soft)!important;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden
}
.community-card-compact p{font-size:11.5px!important;line-height:1.34!important;color:var(--muted)!important}
.community-card-meta{display:flex;justify-content:space-between;gap:8px;margin-top:10px;padding-top:9px;border-top:1px solid rgba(70,102,110,.16);font-size:10.5px;color:var(--muted)}
.community-card-compact .community-card-meta{font-size:10.5px!important;font-weight:700;color:var(--ink-soft)}
.community-open-label{font-weight:800;color:var(--accent)}
.community-repertoire-card-compact{display:flex;flex-direction:column;gap:8px}.community-repertoire-main{min-width:0;flex:1}
.community-repertoire-card-compact{border:2px solid #cddedf!important;border-radius:14px!important;box-shadow:0 8px 22px rgba(10,62,82,.075)!important;background:linear-gradient(180deg,#ffffff 0%,#f9fcfb 100%)!important}
.community-repertoire-card-compact:hover,.community-repertoire-card-compact:focus-visible{border-color:#8ccfba!important;box-shadow:0 12px 28px rgba(10,108,90,.11)!important}
.community-repertoire-card-compact .community-repertoire-date{margin:0 0 4px!important;font-size:9.5px!important;letter-spacing:.08em}
.community-repertoire-footer{display:flex;gap:6px;justify-content:flex-end;margin-top:auto}.community-repertoire-footer .btn{padding:5px 8px;font-size:10.5px;min-width:0}
.community-detail-head{padding:10px 0 14px!important}.community-detail-icon{width:36px!important;height:36px!important;border-radius:11px!important;font-size:17px!important}
.community-detail-head h2{font-size:20px!important;margin-bottom:3px!important}.community-detail-head p{font-size:12px!important}
.community-master-panel{border-radius:12px!important}.community-master-head h2{font-size:19px!important}
@media(max-width:620px){.community-catalog-grid,.community-repertoire-grid{grid-template-columns:1fr!important;gap:6px!important}}

/* v0.8.19 — edição segura, dicionário de acordes e upgrade de limites */
.chord-help{cursor:help;border-radius:4px;transition:background .12s ease,box-shadow .12s ease}
.chord-help:hover,.chord-help:focus{background:rgba(16,140,112,.10);box-shadow:0 0 0 2px rgba(16,140,112,.10)}
.chord-popover{position:fixed;z-index:10050;width:180px;min-height:185px;padding:10px 12px 8px;border:1px solid var(--border);border-radius:14px;background:var(--surface,#fff);box-shadow:0 14px 42px rgba(0,0,0,.20);color:var(--ink,#17323a)}
.chord-popover svg{display:block;width:150px;height:178px;margin:0 auto}.chord-popover small{display:block;text-align:center;color:var(--muted);font-size:10px;margin-top:-5px}
.chord-pop-close{position:absolute;right:7px;top:6px;border:0;background:transparent;font-size:18px;cursor:pointer;color:var(--muted)}
.chord-no-shape{padding:48px 10px;text-align:center;font-size:12px;line-height:1.45}.plan-limit-card{max-width:460px;text-align:center;padding:26px}.plan-limit-icon{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;margin:0 auto 12px;background:var(--accent-soft);color:var(--accent);font-size:26px}.plan-limit-card h2{margin:0 0 10px}.plan-limit-card p{line-height:1.55;color:var(--ink-soft)}


/* v0.8.21 — dicionário de acordes visível e acionável em todas as telas */
.chord-help{
  cursor:pointer !important;
  text-decoration:underline dotted currentColor;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
  touch-action:manipulation;
}
.chord-help:hover,.chord-help:focus-visible{
  background:rgba(16,140,112,.12);
  outline:none;
}
.chord-popover{pointer-events:auto}
@media (max-width:700px){
  .chord-popover{width:190px;max-width:calc(100vw - 16px)}
}

/* v0.8.21 — indicação visual do dicionário de acordes */
.chord-help{position:relative;text-decoration:underline dotted rgba(16,140,112,.55);text-underline-offset:3px;touch-action:manipulation}
@media (hover:none){.chord-help{cursor:pointer}}

/* v0.8.23 — contagem do repertório da Comunidade */
.community-repertoire-count{
  margin-top:8px;
  font-size:.82rem;
  font-weight:700;
  color:var(--muted,#64748b);
}

/* v0.8.26 — repertório da Comunidade já adicionado */
.community-added-badge{
  display:inline-flex;align-items:center;justify-content:center;align-self:center;
  min-height:28px;padding:5px 9px;border-radius:999px;
  border:1px solid color-mix(in srgb,var(--accent) 38%,var(--border));
  background:var(--accent-soft);color:var(--accent);
  font-size:10.5px;font-weight:800;white-space:nowrap
}
#community-add-repertoire:disabled{
  opacity:1;cursor:default;border-color:color-mix(in srgb,var(--accent) 38%,var(--border));
  background:var(--accent-soft);color:var(--accent);box-shadow:none
}


/* v0.8.27 — Liturgia e sugestões */
.liturgy-toolbar{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;margin-bottom:14px;padding:14px}.liturgy-date-field{display:flex;flex-direction:column;gap:6px;min-width:210px}.liturgy-date-field span,.liturgy-meta-grid label>span,.liturgy-add-song label>span{font-size:11px;font-weight:800;color:var(--muted);letter-spacing:.03em}.liturgy-official-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:18px;border:2px solid #cddedf;border-radius:16px;background:linear-gradient(180deg,#fff,#f8fcfb);box-shadow:0 10px 26px rgba(10,62,82,.08);margin-bottom:22px}.liturgy-official-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:var(--accent-soft);color:var(--accent);font-size:20px;font-weight:900}.liturgy-eyebrow{display:block;font-size:9.5px;font-weight:900;letter-spacing:.12em;color:var(--accent);margin-bottom:4px}.liturgy-official-copy h2,.liturgy-section-title h2,.liturgy-master-head h2{margin:0;font-size:20px}.liturgy-official-copy p,.liturgy-master-head p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.45}.liturgy-public-section{margin-bottom:22px}.liturgy-section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:10px}.liturgy-status-badge,.liturgy-draft-state{display:inline-flex;align-items:center;justify-content:center;padding:6px 9px;border-radius:999px;background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));color:var(--accent);font-size:10px;font-weight:900}.liturgy-empty{display:flex;flex-direction:column;gap:5px;padding:20px;border:1px dashed var(--border);border-radius:14px;background:var(--surface-2);color:var(--muted);font-size:12px}.liturgy-empty strong{color:var(--ink);text-transform:capitalize}.liturgy-celebration-meta{display:flex;flex-direction:column;gap:3px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;margin-bottom:10px;background:var(--surface-2)}.liturgy-celebration-meta span{font-size:11px;color:var(--muted)}.liturgy-public-groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}.liturgy-moment-group{border:2px solid #d7e4e5;border-radius:14px;background:var(--surface);overflow:hidden;box-shadow:0 7px 20px rgba(10,62,82,.055)}.liturgy-moment-group h3{margin:0;padding:9px 12px;background:var(--surface-2);font-size:12px;color:var(--accent);border-bottom:1px solid var(--border)}.liturgy-public-song{display:flex;align-items:center;justify-content:space-between;gap:9px;padding:10px 12px;border-bottom:1px solid var(--border)}.liturgy-public-song:last-child{border-bottom:0}.liturgy-public-song>div{display:flex;flex-direction:column;min-width:0}.liturgy-public-song strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.liturgy-public-song span{font-size:10.5px;color:var(--muted);margin-top:2px}.liturgy-master-panel{padding:18px;border:2px solid #cddedf;border-radius:16px;background:var(--surface-2);box-shadow:0 10px 26px rgba(10,62,82,.07)}.liturgy-master-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.liturgy-draft-state{background:var(--surface);color:var(--muted)}.liturgy-draft-state.published{background:var(--accent-soft);color:var(--accent)}.liturgy-meta-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:10px;margin-bottom:14px}.liturgy-meta-grid label,.liturgy-add-song label{display:flex;flex-direction:column;gap:6px}.liturgy-meta-grid small{font-weight:500}.liturgy-add-song{display:grid;grid-template-columns:190px minmax(240px,1fr) auto;gap:10px;align-items:end;padding:12px;border:1px solid var(--border);border-radius:13px;background:var(--surface);margin-bottom:8px}.liturgy-search-results{display:grid;gap:6px;margin:8px 0 12px}.liturgy-search-song{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:9px 11px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--ink);cursor:pointer;text-align:left}.liturgy-search-song:hover{border-color:#9fd5c7;background:var(--accent-soft)}.liturgy-search-song span{display:flex;flex-direction:column;min-width:0}.liturgy-search-song strong{font-size:12px}.liturgy-search-song small{font-size:10.5px;color:var(--muted);margin-top:2px}.liturgy-search-song b{font-size:10.5px;color:var(--accent);white-space:nowrap}.liturgy-editor-list{display:grid;gap:6px;margin:12px 0}.liturgy-editor-empty,.liturgy-search-empty{padding:12px;border:1px dashed var(--border);border-radius:10px;color:var(--muted);font-size:11.5px}.liturgy-editor-item{display:grid;grid-template-columns:120px minmax(0,1fr) auto;align-items:center;gap:9px;padding:9px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.liturgy-editor-item>div{display:flex;flex-direction:column;min-width:0}.liturgy-editor-item strong{font-size:12px}.liturgy-editor-item small{font-size:10.5px;color:var(--muted)}.liturgy-editor-moment{font-size:10px;font-weight:900;color:var(--accent);text-transform:uppercase;letter-spacing:.04em}.liturgy-master-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:12px}.liturgy-master-hint{text-align:right;margin-top:8px}.liturgy-master-actions .btn-danger{background:transparent;color:#b54b4b;border-color:#e7baba}
@media(max-width:760px){.liturgy-official-card{grid-template-columns:auto 1fr}.liturgy-official-card .btn{grid-column:1/-1;width:100%}.liturgy-meta-grid{grid-template-columns:1fr}.liturgy-add-song{grid-template-columns:1fr}.liturgy-add-song .btn{width:100%}.liturgy-public-groups{grid-template-columns:1fr}.liturgy-editor-item{grid-template-columns:88px minmax(0,1fr) auto}.liturgy-master-head{flex-direction:column}.liturgy-section-title{align-items:flex-start;flex-direction:column}}


/* v0.8.28 — Liturgia completa em português, preservando sugestões da v0.8.27 */
.liturgy-daily-shell{margin-bottom:24px;border:2px solid #cddedf;border-radius:18px;background:var(--surface);box-shadow:0 10px 28px rgba(10,62,82,.075);overflow:hidden}
.liturgy-daily-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,var(--surface),var(--surface-2))}
.liturgy-daily-head h2{margin:0;font-size:22px;line-height:1.2}.liturgy-daily-head p{margin:6px 0 0;color:var(--muted);font-size:12px}.liturgy-daily-content{display:grid;gap:12px;padding:16px 18px 18px}
.liturgy-reading-card{border:1px solid var(--border);border-radius:14px;background:var(--surface);overflow:hidden}.liturgy-reading-head{padding:12px 14px;background:var(--surface-2);border-bottom:1px solid var(--border)}
.liturgy-reading-kind{display:block;color:var(--accent);font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.liturgy-reading-head h3{margin:4px 0 0;font-size:16px}.liturgy-reading-ref{display:block;margin-top:3px;color:var(--muted);font-size:11px;font-weight:700}.liturgy-reading-body{padding:14px 16px}.liturgy-reading-text{margin:0;white-space:pre-line;font-size:14px;line-height:1.72;color:var(--ink)}
.liturgy-psalm-response{margin:0 0 12px;padding:10px 12px;border-left:4px solid var(--accent);border-radius:8px;background:var(--accent-soft);font-weight:800;line-height:1.45}.liturgy-reading-variant{display:inline-flex;margin-top:6px;padding:3px 7px;border-radius:999px;background:var(--surface);border:1px solid var(--border);font-size:9px;font-weight:800;color:var(--muted)}
.liturgy-source-note{margin:0;padding:0 18px 16px;color:var(--muted);font-size:10.5px;line-height:1.45}.liturgy-api-error{padding:18px;border:1px dashed var(--border);border-radius:12px;color:var(--muted);background:var(--surface-2)}.liturgy-api-error strong{display:block;color:var(--ink);margin-bottom:4px}
.liturgy-color-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;vertical-align:middle;border:1px solid rgba(0,0,0,.12)}
@media(max-width:760px){.liturgy-daily-head{flex-direction:column}.liturgy-daily-head .btn{width:100%}.liturgy-daily-content{padding:12px}.liturgy-reading-body{padding:13px}.liturgy-reading-text{font-size:13.5px;line-height:1.68}}


/* v0.8.29 — salvar e usar + versículos em sobrescrito */
.liturgy-verse{font-size:.64em;line-height:0;vertical-align:super;font-weight:800;color:var(--muted);margin-right:.16em}
.catalog-save-use-panel{margin-top:14px;padding:14px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));border-radius:14px;background:var(--accent-soft)}
.catalog-save-use-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.catalog-save-use-head>div{display:flex;flex-direction:column;gap:3px;min-width:0}.catalog-save-use-head strong{font-size:14px}.catalog-save-use-head small{font-size:11px;color:var(--muted)}
.catalog-save-use-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.catalog-save-use-destination{margin-top:12px;padding-top:12px;border-top:1px solid color-mix(in srgb,var(--accent) 24%,var(--border))}
.catalog-save-use-liturgy-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.catalog-save-use-confirm-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:8px}.catalog-save-use-confirm-row .hint{flex:1;min-width:180px}
@media(max-width:760px){.catalog-save-use-actions{display:grid;grid-template-columns:1fr}.catalog-save-use-actions .btn{width:100%}.catalog-save-use-liturgy-grid{grid-template-columns:1fr}.catalog-save-use-confirm-row .btn{width:100%}}

/* Afinador */
.tuner-card{max-width:520px;margin:0 auto;text-align:center;background:var(--card-bg,#fff);border:1px solid var(--border);border-radius:16px;padding:28px 22px}
.tuner-gauge{position:relative;width:100%;max-width:320px;margin:10px auto 0;height:150px}
.tuner-arc{width:100%;height:auto;display:block}
.tuner-needle-pivot{position:absolute;left:50%;bottom:8px;width:4px;height:104px;transform-origin:bottom center;transform:translateX(-50%) rotate(0deg);transition:transform .12s ease-out}
.tuner-needle{width:4px;height:100%;border-radius:3px 3px 0 0;background:#8aa0a0;transition:background .12s ease-out}
.tuner-note-box{position:absolute;left:50%;bottom:0;transform:translateX(-50%);background:#fff;border:1px solid var(--border);border-radius:14px;padding:10px 20px;min-width:96px;box-shadow:0 2px 8px rgba(0,0,0,.06)}
.tuner-note-box .tuner-note{display:block;font-family:var(--font-display,Georgia,serif);font-size:26px;font-weight:800;color:var(--ink,#153b40);line-height:1.15}
.tuner-note-box .tuner-freq{display:block;font-size:11px;color:var(--muted);margin-top:2px}
.tuner-scale-labels{position:absolute;left:0;right:0;bottom:-6px;display:flex;justify-content:space-between;font-size:12px;color:var(--muted);padding:0 6px}
.tuner-cents{font-size:13px;color:var(--muted);min-height:18px;margin:14px 0 6px}
.tuner-strings-head{font-size:12.5px;color:var(--muted);margin-top:8px}
.tuner-strings{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin:8px 0 18px}
.tuner-string-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 2px;border-radius:10px;border:1px solid var(--border);background:var(--soft,#f3f8f8);cursor:pointer;color:var(--ink,#153b40)}
.tuner-string-btn b{font-size:13px}
.tuner-string-btn small{font-size:10px;color:var(--muted)}
.tuner-string-btn.tuner-string-active{background:var(--accent,#0a8d83);border-color:var(--accent,#0a8d83)}
.tuner-string-btn.tuner-string-active b,.tuner-string-btn.tuner-string-active small{color:#fff}
@media(max-width:520px){.tuner-strings{grid-template-columns:repeat(3,1fr)}.tuner-note-box .tuner-note{font-size:22px}}

/* ===== Tela inicial — reorganização para reduzir a densidade visual (v0834) ===== */

/* O selo de prova social agora vem depois dos botões — só ajusta o respiro acima. */
.cv-home-hero-main .cv-home-catalog-proof{margin-top:16px!important;margin-bottom:0!important}

/* Faixa de estatísticas: sai do banner escuro e vira uma faixa leve e clara,
   um "respiro" antes do conteúdo de apoio. */
.cv-home-quickstats{
  display:flex;
  align-items:stretch;
  gap:0;
  margin:0 0 20px;
  padding:0;
  border:1px solid rgba(8,103,122,.12);
  border-radius:16px;
  background:var(--card-bg,#fff);
  overflow:hidden;
}
.cv-home-quickstats>div{
  flex:1;
  min-width:0;
  padding:16px 18px;
  text-align:center;
  border-right:1px solid rgba(8,103,122,.10);
}
.cv-home-quickstats>div:last-child{border-right:none}
.cv-home-quickstats strong{
  display:block;
  font-family:var(--font-display);
  font-size:22px;
  color:var(--cv-teal-deep,#064a5a);
  line-height:1.15;
}
.cv-home-quickstats span{
  display:block;
  margin-top:3px;
  font-size:11px;
  color:var(--ink-soft,#61777a);
}
.cv-home-quickstat-plan{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}
.cv-home-quickstat-plan .plan-mini-badge{margin:0}
.cv-home-quickstat-plan span{margin-top:0}

/* Faixa única de apoio (offline + guia rápido), substituindo os dois cartões
   separados por uma faixa mais calma e com menos peso visual. */
.home-helper-strip{
  display:flex;
  align-items:center;
  gap:16px;
  margin:0 0 22px;
  padding:16px 18px;
  border:1px solid rgba(8,103,122,.12);
  border-radius:16px;
  background:color-mix(in srgb,var(--accent-soft,#eef7f5) 55%,var(--card-bg,#fff));
}
.home-helper-icon{
  flex:0 0 40px;
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border-radius:11px;
  background:var(--accent,#0a8d83);
  color:#fff;
  font-size:19px;
}
.home-helper-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.home-helper-text strong{font-size:13.5px;color:var(--ink,#153b40)}
.home-helper-text span{font-size:11.5px;line-height:1.5;color:var(--ink-soft,#61777a)}
.home-helper-button{white-space:nowrap;flex:0 0 auto}

@media(max-width:720px){
  .cv-home-quickstats{flex-wrap:wrap}
  .cv-home-quickstats>div{flex:1 1 45%;border-right:none;border-bottom:1px solid rgba(8,103,122,.10)}
  .cv-home-quickstats>div:nth-child(2n){border-right:none}
  .home-helper-strip{flex-wrap:wrap}
  .home-helper-button{width:100%;justify-content:center}
}

[data-theme="dark"] .cv-home-quickstats{background:var(--card-bg);border-color:rgba(111,187,163,.18)}
[data-theme="dark"] .cv-home-quickstats>div{border-right-color:rgba(111,187,163,.14)}
[data-theme="dark"] .cv-home-quickstats strong{color:#fff}
[data-theme="dark"] .home-helper-strip{background:color-mix(in srgb,var(--accent) 12%,var(--card-bg));border-color:rgba(111,187,163,.18)}

/* ===== Tela inicial v2 — proposta clean, sem painéis nem gradiente (v0835) =====
   Princípio: uma única cor de destaque, nenhuma caixa/sombra decorativa,
   uma única linha divisória (antes das estatísticas), bastante espaço em branco. */

.cv2-home{max-width:640px;margin:0 auto;padding:8px 0 40px}

.cv2-hero{margin-bottom:40px}
.cv2-hero-brand{display:flex;align-items:center;gap:12px;margin-bottom:22px}
.cv2-logo{width:48px;height:48px;object-fit:contain}
.cv2-eyebrow{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent,#0a8d83)}
.cv2-title{
  margin:0 0 16px;
  font-family:var(--font-display);
  font-size:clamp(28px,4vw,38px);
  line-height:1.18;
  color:var(--cv-teal-deep,#064a5a);
  max-width:14ch;
}
.cv2-lede{margin:0 0 26px;max-width:56ch;font-size:15px;line-height:1.75;color:var(--ink-soft,#61777a)}
.cv2-actions{display:flex;gap:12px;flex-wrap:wrap}
.cv2-actions .btn{min-height:44px;padding:11px 20px;border-radius:11px}
.cv2-btn-ghost{background:transparent!important;border:1px solid rgba(8,103,122,.28)!important;color:var(--cv-teal-deep,#064a5a)!important}

.cv2-stats{
  display:flex;
  flex-wrap:wrap;
  gap:32px;
  padding-top:24px;
  margin-bottom:18px;
  border-top:1px solid rgba(8,103,122,.14);
}
.cv2-stats>div{min-width:96px}
.cv2-stats strong{
  display:block;
  font-family:var(--font-display);
  font-size:21px;
  font-weight:700;
  color:var(--cv-teal-deep,#064a5a);
  line-height:1.2;
}
.cv2-stats span{display:block;margin-top:2px;font-size:11.5px;color:var(--ink-soft,#61777a)}

.cv2-note{margin:0 0 34px;font-size:12.5px;color:var(--ink-soft,#61777a);display:flex;align-items:center;flex-wrap:wrap;gap:2px}
.cv2-note .plan-mini-badge{margin:0 2px}
.cv2-link{
  background:none;border:none;padding:0;
  font-size:12.5px;font-weight:700;color:var(--accent,#0a8d83);
  cursor:pointer;text-decoration:none;
}
.cv2-link:hover{text-decoration:underline}

.cv2-section-title{
  margin:34px 0 12px;
  font-family:var(--font-display);
  font-size:16px;
  font-weight:700;
  color:var(--ink,#153b40);
}

@media(max-width:640px){
  .cv2-stats{gap:22px 28px}
  .cv2-actions .btn{flex:1;justify-content:center}
}

[data-theme="dark"] .cv2-title{color:#fff}
[data-theme="dark"] .cv2-stats{border-top-color:rgba(111,187,163,.2)}
[data-theme="dark"] .cv2-stats strong{color:#fff}
[data-theme="dark"] .cv2-btn-ghost{border-color:rgba(111,187,163,.35)!important;color:#dff5ee!important}

/* Catálogo — artistas e músicas mais populares (uso real) */
.catalog-popular-section{display:flex;flex-direction:column;gap:18px;margin:16px 0}
.catalog-popular-title{font-family:var(--font-display);font-size:15px;margin:0 0 10px;color:var(--ink,#153b40)}
.catalog-popular-artists{display:flex;gap:14px;overflow-x:auto;padding-bottom:4px}
.catalog-popular-artist{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:76px;flex:0 0 auto;cursor:pointer;background:none;border:none;padding:0}
.catalog-popular-artist-rank{position:relative}
.catalog-popular-artist-avatar{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--accent,#0a8d83),var(--cv-teal-deep,#064a5a));color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:18px}
.catalog-popular-artist-num{position:absolute;top:-4px;left:-4px;background:#fff;border:1px solid var(--border,rgba(8,103,122,.18));border-radius:50%;width:20px;height:20px;font-size:10.5px;font-weight:800;display:flex;align-items:center;justify-content:center;color:var(--ink,#153b40)}
.catalog-popular-artist-name{font-size:11.5px;text-align:center;color:var(--ink,#153b40);line-height:1.25;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.catalog-popular-songs{display:grid;grid-template-columns:1fr 1fr;gap:4px 18px}
.catalog-popular-song{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid rgba(8,103,122,.08);cursor:pointer;background:none;border-left:none;border-right:none;border-top:none;text-align:left;width:100%}
.catalog-popular-song-num{flex:0 0 20px;font-size:12px;color:var(--ink-soft,#61777a)}
.catalog-popular-song-text{min-width:0}
.catalog-popular-song-title{display:block;font-size:13px;font-weight:700;color:var(--ink,#153b40);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.catalog-popular-song-artist{display:block;font-size:11.5px;color:var(--ink-soft,#61777a);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:640px){.catalog-popular-songs{grid-template-columns:1fr}}

/* Login com Google */
.auth-google-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;background:#fff;color:#3c4043;border:1px solid #dadce0;border-radius:10px;padding:11px 16px;font-weight:600;font-size:14.5px;margin:14px 0 0;cursor:pointer}
.auth-google-btn:hover{background:#f8f9fa}
.auth-divider{display:flex;align-items:center;gap:10px;margin:16px 0;color:var(--ink-soft,#61777a);font-size:12.5px}
.auth-divider::before,.auth-divider::after{content:'';flex:1;height:1px;background:rgba(8,103,122,.15)}
[data-theme="dark"] .auth-google-btn{background:#fff;color:#3c4043}

/* ===== Impressão unificada: cifra individual + repertório ===== */
.repertoire-print-view{display:none}
.repertoire-print-view.preview-open{
  display:flex;position:fixed;inset:0;z-index:9500;background:#e9eded;
}
.print-preview-body{display:flex;flex-direction:row-reverse;width:100%;height:100%}
.print-preview-sidebar{
  width:238px;flex:none;background:var(--card-bg,#fff);border-left:1px solid var(--rule,#e3ebec);
  padding:20px 18px;display:flex;flex-direction:column;gap:16px;overflow-y:auto;
}
.print-preview-summary{display:flex;flex-direction:column;gap:4px;padding-bottom:12px;border-bottom:1px solid var(--rule,#e3ebec)}
.print-preview-summary strong{font-family:var(--font-display);font-size:16px;color:var(--ink,#153b40)}
.print-preview-summary span,.print-preview-note{font-size:12px;line-height:1.45;color:var(--ink-soft,#61777a)}
.print-preview-option{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13.5px;font-weight:600;color:var(--ink,#153b40)}
.switch{position:relative;display:inline-block;width:40px;height:22px;flex:none}
.switch input{opacity:0;width:0;height:0}.switch-track{position:absolute;inset:0;background:var(--rule,#d8e2e3);border-radius:20px;cursor:pointer;transition:background .15s}
.switch-track::before{content:'';position:absolute;left:3px;top:3px;width:16px;height:16px;background:#fff;border-radius:50%;transition:transform .15s;box-shadow:0 1px 3px rgba(0,0,0,.25)}
.switch input:checked + .switch-track{background:var(--accent,#0a8d83)}.switch input:checked + .switch-track::before{transform:translateX(18px)}
.print-preview-print-btn{margin-top:auto}
.print-preview-paper-wrap{flex:1;overflow:auto;padding:28px}
.print-preview-paper{
  --print-columns:1;--print-body-size:11pt;--print-body-leading:1.20;
  box-sizing:border-box;background:#fff;color:#000;width:210mm;min-height:297mm;max-width:100%;margin:0 auto;
  padding:12mm 13mm 14mm;border-radius:3px;box-shadow:0 10px 32px rgba(0,0,0,.16);
}
.print-preview-logo{display:block;width:17mm;height:auto;object-fit:contain;flex:none}
.print-song-header,.print-repertoire-header{display:flex;align-items:flex-start;gap:11px;min-width:0}
.print-song-heading,.print-repertoire-header>div{flex:1;min-width:0}
.print-song-header h1,.print-repertoire-header h1{font-family:var(--font-display);font-size:17pt;line-height:1.10;margin:0 0 1mm;color:#111}
.print-song-header p,.print-repertoire-header p{font-size:9.2pt;line-height:1.22;margin:0;color:#555}
.print-song-divider{height:1px;background:#d8dddd;margin:3.5mm 0 4.2mm}
.print-key-badge{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border:1px solid #cfd6d7;border-radius:999px;padding:1.2mm 2.3mm;font-size:8.2pt;font-weight:700;color:#333;background:#fafafa}

/* Corpo da cifra: uma única fonte de tamanho para prévia e impressão. */
.print-song-body{width:100%;font-size:var(--print-body-size)!important;line-height:var(--print-body-leading)!important;color:#000}
.print-song-body .line-chord,.print-song-body .anchored-chord{font-weight:700;color:#0d3e46;line-height:1.02}
.print-song-body .line-lyric,.print-song-body .anchored-lyric{color:#111;line-height:var(--print-body-leading)!important}
.print-song-body .line-label{font-weight:800;color:#333;background:transparent;border:0;padding:0;margin:2.4mm 0 .8mm;letter-spacing:.01em}
.print-song-body .line-blank{height:.70em}

/* Cifra individual: ocupa melhor a largura útil sem ficar "espalhada" demais. */
.repertoire-print-view[data-print-mode="song"] .print-sheet-single{max-width:184mm;margin:0 auto}
.repertoire-print-view[data-print-mode="song"] .print-song-body{max-width:180mm;margin:0 auto}

.print-repertoire-header{break-after:avoid;margin-bottom:0}
.print-repertoire-divider{margin-bottom:4mm}
.print-repertoire-columns{column-count:var(--print-columns);column-gap:9mm;column-rule:1px solid #eceff0}
.repertoire-print-song{display:inline-block;width:100%;margin:0 0 6.5mm;break-inside:avoid-column;page-break-inside:avoid}
.repertoire-print-song-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin:0 0 2.2mm;padding-bottom:1.6mm;border-bottom:1px solid #e2e6e7;break-after:avoid}
.repertoire-print-song-title-wrap{display:flex;align-items:flex-start;gap:7px;min-width:0}
.repertoire-print-number{display:flex;align-items:center;justify-content:center;flex:none;width:20px;height:20px;border-radius:50%;background:#eef3f3;color:#344;font-size:8.5pt;font-weight:800}
.repertoire-print-song-head h2{font-family:var(--font-display);font-size:11.5pt;line-height:1.15;margin:0 0 .6mm;color:#111}
.repertoire-print-song-head small{display:block;font-size:7.8pt;line-height:1.2;color:#555}
.repertoire-print-song .print-key-badge{font-size:7.4pt;padding:1mm 1.8mm}

/* Duas colunas: compacto. Uma coluna: leitura confortável e melhor aproveitamento da folha. */
.repertoire-print-view[data-print-mode="repertoire"][data-print-columns="2"] .print-song-body{font-size:var(--print-body-size)!important}
.repertoire-print-view[data-print-mode="repertoire"][data-print-columns="1"] .print-repertoire-columns{column-rule:0;column-gap:0}
.repertoire-print-view[data-print-mode="repertoire"][data-print-columns="1"] .repertoire-print-song{display:block;margin-bottom:7mm}
.repertoire-print-view[data-print-mode="repertoire"][data-print-columns="1"] .repertoire-print-song-head h2{font-size:13pt}
.repertoire-print-view[data-print-mode="repertoire"][data-print-columns="1"] .repertoire-print-song-head small{font-size:8.5pt}
.repertoire-print-view[data-print-mode="repertoire"][data-print-columns="1"] .repertoire-print-number{width:22px;height:22px;font-size:9pt}
.repertoire-print-view[data-print-mode="repertoire"][data-print-columns="1"] .repertoire-print-song .print-key-badge{font-size:8pt}

@media(max-width:760px){
  .print-preview-body{flex-direction:column;height:100%}
  .print-preview-sidebar{width:auto;flex:none;border-left:0;border-bottom:1px solid var(--rule,#e3ebec);padding:10px 12px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;overflow:visible}
  .print-preview-summary,.print-preview-note{display:none}
  .print-preview-option{font-size:12px;gap:7px}
  .print-preview-print-btn{margin:0;white-space:nowrap}
  .print-preview-paper-wrap{padding:14px 8px}
  .print-preview-paper{width:210mm;max-width:none;transform-origin:top left}
}

@media print{
  @page{size:A4;margin:11mm 12mm 12mm}
  body.printing-preview *:not(.repertoire-print-view):not(.repertoire-print-view *){display:none!important}
  body.printing-preview .repertoire-print-view{display:block!important;position:static!important;inset:auto!important;background:none!important}
  body.printing-preview .print-preview-sidebar{display:none!important}
  body.printing-preview .print-preview-body{display:block!important;height:auto!important}
  body.printing-preview .print-preview-paper-wrap{overflow:visible!important;padding:0!important}
  body.printing-preview .print-preview-paper{box-shadow:none!important;border-radius:0!important;padding:0!important;width:100%!important;max-width:100%!important;min-height:0!important;margin:0!important}
  body.printing-preview .print-song-header h1,body.printing-preview .print-repertoire-header h1{color:#000!important}
  body.printing-preview .print-repertoire-columns{column-count:var(--print-columns)!important;column-gap:8mm!important}
  body.printing-preview .repertoire-print-song{break-inside:avoid-column!important;page-break-inside:avoid!important}
  body.printing-preview .print-song-body{font-size:var(--print-body-size)!important;line-height:var(--print-body-leading)!important}
}

/* Link de trocar entre Entrar e Cadastrar, na tela de login simplificada */
.auth-switch-line{text-align:center;font-size:13.5px;font-weight:700;color:var(--ink,#153b40);margin:16px 0 0}
.auth-switch-line #auth-switch-mode{background:none;border:none;padding:0;color:var(--accent,#0a8d83);font-weight:700;font-size:13.5px;cursor:pointer;text-decoration:underline}

/* Estrela de favoritar no Catálogo */
.catalog-fav-star{background:none;border:none;font-size:26px;line-height:1;cursor:pointer;color:var(--ink-soft,#61777a);padding:4px 6px}
.catalog-fav-star.is-fav{color:#e3a712}

/* Tela de Artistas */
.artists-list{display:flex;flex-direction:column;gap:2px;margin-top:14px}
.artist-row{display:flex;align-items:center;gap:12px;padding:12px 8px;border-bottom:1px solid rgba(8,103,122,.08);cursor:pointer;background:none;border-left:none;border-right:none;border-top:none;width:100%;text-align:left}
.artist-row:hover{background:var(--soft,#f3f8f8)}
.artist-row-main{flex:1;min-width:0}
.artist-row-main strong{display:block;font-size:14.5px;color:var(--ink,#153b40)}
.artist-row-main small{font-size:12px;color:var(--ink-soft,#61777a)}

.artist-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}

/* Botões de ação nos cartões do Catálogo/Artistas: repertório e excluir */
.catalog-card-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.btn-chip-action{display:inline-flex;align-items:center;gap:4px;background:var(--soft,#f3f8f8);border:1px solid rgba(8,103,122,.14);border-radius:20px;font-size:12.5px;font-weight:600;line-height:1;cursor:pointer;color:var(--ink-soft,#61777a);padding:7px 10px;white-space:nowrap}
.catalog-repertoire-btn{color:var(--accent,#0a8d83)}
.catalog-fav-star.btn-chip-action.is-fav{color:#a8790a;background:#fdf3dd;border-color:#f0d99a}
.catalog-delete-btn{color:#c0392b}

/* Seção "Suas favoritas" no topo de Músicas */
.catalog-favorites-head{margin:18px 0 8px}
.catalog-favorites-head h3{font-family:var(--font-display);font-size:16px;margin:0}
.catalog-own-badge{font-size:11px;color:var(--ink-soft,#61777a);background:var(--soft,#f3f8f8);padding:4px 8px;border-radius:20px}

/* Tela de login mais limpa: rótulo + "esqueci a senha" na mesma linha, campo de senha com olho */
.field-label-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:5px}
.field-label-row .field-label{margin-bottom:0}
.field-label-row .auth-forgot-link{margin:0}
.auth-password-field{position:relative}
.auth-password-field .input{padding-right:42px}
.auth-password-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);background:none;border:none;font-size:17px;line-height:1;cursor:pointer;padding:8px;color:var(--ink-soft,#61777a)}

/* Aviso de transmissão ao vivo do ministério */
.ministry-live-banner{
  position:fixed;left:50%;bottom:18px;transform:translateX(-50%);
  z-index:9000;display:flex;align-items:center;gap:10px;
  background:#173b46;color:#fff;padding:10px 12px 10px 16px;border-radius:40px;
  box-shadow:0 10px 30px rgba(0,0,0,.28);font-size:13.5px;max-width:92vw;
}
.ministry-live-dot{width:9px;height:9px;border-radius:50%;background:#ff4d4f;flex:none;animation:cvLiveDotPulse 1.4s ease-in-out infinite}
@keyframes cvLiveDotPulse{0%,100%{opacity:1}50%{opacity:.35}}
.ministry-live-banner-close{background:none;border:none;color:rgba(255,255,255,.7);font-size:15px;cursor:pointer;padding:2px 4px}
#btn-live-broadcast.is-live{background:#ff4d4f;color:#fff;border-color:#ff4d4f;font-weight:700}

/* Entrar/Criar conta em destaque no topo do menu, pra quem ainda não conhece o app */
.nav-item-highlight{
  background:var(--accent,#0a8d83);
  color:#fff;
  border-radius:10px;
  font-weight:700;
  margin:2px 0;
}
.nav-item-highlight:hover{background:var(--accent-dark,#087a71)}
#sidebar-signup-button-top{background:transparent;border:1.5px solid var(--accent,#0a8d83);color:var(--accent,#0a8d83)}

/* X de fechar no canto do modal de login/cadastro */
.modal-close-x{
  position:absolute;top:10px;right:10px;z-index:2;
  background:none;border:none;font-size:18px;line-height:1;
  color:var(--ink-soft,#61777a);cursor:pointer;padding:8px;
}
.modal-close-x:hover{color:var(--ink,#153b40)}

/* Botão de busca por voz, dentro da caixa de busca */
.catalog-search-mic{
  position:absolute;right:6px;top:50%;transform:translateY(-50%);
  background:none;border:none;font-size:19px;line-height:1;cursor:pointer;
  padding:8px;color:var(--ink-soft,#61777a);z-index:2;
}
.catalog-search-mic.is-listening{animation:cvMicPulse 1s ease-in-out infinite}
@keyframes cvMicPulse{0%,100%{opacity:1}50%{opacity:.4}}
.catalog-search-box .input{padding-right:40px}


/* ===== Impressão v3 — legibilidade real em 1 coluna ===== */
/*
   O corpo impresso passa a controlar também os elementos internos gerados
   pelo renderizador de cifras. Isso evita regras antigas anularem o botão
   "Letra maior" e cria separação visual entre acorde e letra.
*/
.print-song-body,
.print-song-body .paired-song-line,
.print-song-body .anchored-song-line,
.print-song-body .paired-single-line,
.print-song-body .line-chord,
.print-song-body .line-lyric,
.print-song-body .anchored-chord,
.print-song-body .anchored-lyric,
.print-song-body .line-label {
  font-size: inherit !important;
}

/* Mais distância entre o acorde e a letra sem perder o alinhamento. */
.print-song-body .paired-song-line{
  margin:0 0 .52em 0 !important;
}
.print-song-body .paired-song-line .line-chord{
  line-height:1 !important;
  margin:0 0 .24em 0 !important;
}
.print-song-body .paired-song-line .line-lyric{
  line-height:1.20 !important;
  margin:0 !important;
}
.print-song-body .anchored-song-line{
  margin:0 0 .62em 0 !important;
}
.print-song-body .anchored-chord-row{
  height:1.20em !important;
  min-height:1.20em !important;
  line-height:1 !important;
  margin:0 0 .22em 0 !important;
}
.print-song-body .anchored-chord{
  line-height:1 !important;
}
.print-song-body .anchored-lyric{
  line-height:1.20 !important;
}
.print-song-body .paired-single-line.line-chord{
  line-height:1 !important;
  margin:0 0 .24em 0 !important;
}
.print-song-body .paired-single-line.line-lyric{
  line-height:1.20 !important;
  margin:0 0 .38em 0 !important;
}
.print-song-body .line-blank{height:.92em !important}

/* Uma coluna: área de leitura centralizada e confortável em A4. */
.repertoire-print-view[data-print-mode="song"] .print-sheet-single,
.repertoire-print-view[data-print-mode="repertoire"][data-print-columns="1"] .print-repertoire-columns{
  width:100%;
  max-width:178mm;
  margin-left:auto;
  margin-right:auto;
}
.repertoire-print-view[data-print-mode="song"] .print-song-body,
.repertoire-print-view[data-print-mode="repertoire"][data-print-columns="1"] .print-song-body{
  width:100%;
  max-width:none;
}

/* O tamanho grande é deliberadamente perceptível. */
.repertoire-print-view[data-print-size="normal"][data-print-mode="song"] .print-song-body,
.repertoire-print-view[data-print-size="normal"][data-print-mode="repertoire"][data-print-columns="1"] .print-song-body{
  font-size:11.6pt !important;
  line-height:1.22 !important;
}
.repertoire-print-view[data-print-size="large"][data-print-mode="song"] .print-song-body,
.repertoire-print-view[data-print-size="large"][data-print-mode="repertoire"][data-print-columns="1"] .print-song-body{
  font-size:13.6pt !important;
  line-height:1.26 !important;
}
.repertoire-print-view[data-print-size="normal"][data-print-mode="repertoire"][data-print-columns="2"] .print-song-body{
  font-size:9.0pt !important;
  line-height:1.15 !important;
}
.repertoire-print-view[data-print-size="large"][data-print-mode="repertoire"][data-print-columns="2"] .print-song-body{
  font-size:10.2pt !important;
  line-height:1.20 !important;
}

/* Cabeçalho mais leve e mais espaço para a música em uma coluna. */
.repertoire-print-view[data-print-mode="song"] .print-song-header,
.repertoire-print-view[data-print-mode="repertoire"][data-print-columns="1"] .print-repertoire-header{
  max-width:178mm;
  margin-left:auto;
  margin-right:auto;
}
.repertoire-print-view[data-print-mode="song"] .print-song-divider,
.repertoire-print-view[data-print-mode="repertoire"][data-print-columns="1"] .print-repertoire-divider{
  max-width:178mm;
  margin-left:auto;
  margin-right:auto;
  margin-top:3.2mm;
  margin-bottom:5mm;
}

@media print{
  @page{size:A4;margin:13mm 14mm 14mm}
  body.printing-preview .print-song-body .paired-song-line .line-chord{margin-bottom:.24em!important}
  body.printing-preview .print-song-body .anchored-chord-row{margin-bottom:.22em!important}
}


/* ===== Impressão v4 — duas colunas reais + respiro acorde/letra ===== */
/* Em duas colunas, as músicas precisam poder se fragmentar entre as colunas.
   Inline-block + break-inside:avoid tornava cada música um bloco indivisível. */
.repertoire-print-view[data-print-mode="repertoire"][data-print-columns="2"] .print-repertoire-columns{
  display:block !important;
  column-count:2 !important;
  columns:2 auto !important;
  column-gap:9mm !important;
  column-rule:1px solid #eceff0 !important;
  width:100% !important;
  max-width:none !important;
}
.repertoire-print-view[data-print-mode="repertoire"][data-print-columns="2"] .repertoire-print-song{
  display:block !important;
  width:auto !important;
  break-inside:auto !important;
  page-break-inside:auto !important;
  margin:0 0 6mm 0 !important;
}
.repertoire-print-view[data-print-mode="repertoire"][data-print-columns="2"] .repertoire-print-song-head{
  break-after:avoid-column !important;
  page-break-after:avoid !important;
}
/* Uma coluna volta a ser fluxo normal, sem regra de colunas. */
.repertoire-print-view[data-print-mode="repertoire"][data-print-columns="1"] .print-repertoire-columns{
  display:block !important;
  column-count:1 !important;
  columns:auto !important;
  column-gap:0 !important;
  column-rule:0 !important;
}
/* Um pouco mais de separação entre acorde e letra para leitura tocando. */
.print-song-body .paired-song-line .line-chord{
  margin-bottom:.34em !important;
}
.print-song-body .anchored-chord-row{
  margin-bottom:.32em !important;
}
.print-song-body .paired-single-line.line-chord{
  margin-bottom:.34em !important;
}
@media print{
  body.printing-preview .repertoire-print-view[data-print-mode="repertoire"][data-print-columns="2"] .print-repertoire-columns{
    display:block !important;
    column-count:2 !important;
    columns:2 auto !important;
    column-gap:8mm !important;
    column-rule:1px solid #eceff0 !important;
  }
  body.printing-preview .repertoire-print-view[data-print-mode="repertoire"][data-print-columns="2"] .repertoire-print-song{
    display:block !important;
    break-inside:auto !important;
    page-break-inside:auto !important;
  }
}

/* ===== Impressão v5 — prévia A4 real = impressão real ===== */
/* A prévia deixa de ser uma área contínua: cada .print-page é uma folha A4 real. */
.print-preview-paper{
  box-sizing:border-box;
  width:210mm;
  max-width:none;
  min-height:0;
  margin:0 auto;
  padding:0;
  background:transparent;
  box-shadow:none;
  border-radius:0;
  overflow:visible;
}
.print-page{
  position:relative;
  box-sizing:border-box;
  width:210mm;
  height:297mm;
  margin:0 auto 14mm;
  padding:12mm 15mm 13mm 15mm;
  overflow:hidden;
  background:#fff;
  color:#000;
  border-radius:2px;
  box-shadow:0 10px 32px rgba(0,0,0,.16);
}
.print-page::after{
  content:'Página ' attr(data-page);
  position:absolute;
  left:50%;
  bottom:-8mm;
  transform:translateX(-50%);
  font-size:10px;
  font-weight:600;
  color:#6f7d7f;
  white-space:nowrap;
}
.print-page-inner{
  display:flex;
  flex-direction:column;
  width:100%;
  height:100%;
  min-height:0;
}
.print-page-header{flex:none}
.print-page-content{flex:1;min-height:0;overflow:hidden}
.print-page-columns{
  display:grid;
  grid-template-columns:1fr;
  gap:0;
  width:100%;
  height:100%;
  min-height:0;
}
.print-page-columns[data-columns="2"]{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  column-gap:9mm;
}
.print-page-column{
  box-sizing:border-box;
  min-width:0;
  height:100%;
  overflow:hidden;
}
.print-page-columns[data-columns="2"] .print-page-column:first-child{
  padding-right:4.5mm;
  border-right:1px solid #eceff0;
}
.print-page-columns[data-columns="2"] .print-page-column:last-child{
  padding-left:4.5mm;
}
.print-song-segment{display:block!important;width:100%!important;margin:0 0 5.5mm!important;break-inside:auto!important}
.print-song-continuation{margin-top:0!important}
.print-song-segment .repertoire-print-song-head{break-after:avoid!important;page-break-after:avoid!important}
.print-song-segment .print-song-body{width:100%!important;max-width:none!important;margin:0!important}

/* Área invisível usada apenas para gerar/medir o mesmo DOM que vai para a folha. */
.print-measure-stage{
  position:absolute!important;
  left:-10000px!important;
  top:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  z-index:-1!important;
}

/* A margem física da própria folha é a fonte da verdade. */
.repertoire-print-view[data-print-mode="song"] .print-sheet-single,
.repertoire-print-view[data-print-mode="repertoire"][data-print-columns="1"] .print-repertoire-columns{
  width:auto!important;
  max-width:none!important;
  margin:0!important;
}

@media(max-width:760px){
  .print-preview-paper-wrap{overflow:auto!important}
  .print-preview-paper{width:210mm!important;max-width:none!important}
  .print-page{width:210mm!important;height:297mm!important}
}

@media print{
  @page{size:A4;margin:0!important}
  html,body{margin:0!important;padding:0!important;background:#fff!important}
  body.printing-preview .print-preview-paper{
    width:210mm!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    background:#fff!important;
  }
  body.printing-preview .print-page{
    width:210mm!important;
    height:297mm!important;
    margin:0!important;
    padding:12mm 15mm 13mm 15mm!important;
    border-radius:0!important;
    box-shadow:none!important;
    overflow:hidden!important;
    break-after:page!important;
    page-break-after:always!important;
  }
  body.printing-preview .print-page:last-child{
    break-after:auto!important;
    page-break-after:auto!important;
  }
  body.printing-preview .print-page::after{display:none!important;content:none!important}
  body.printing-preview .print-page-columns{
    display:grid!important;
    width:100%!important;
    height:100%!important;
  }
  body.printing-preview .print-page-columns[data-columns="2"]{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    column-gap:9mm!important;
  }
  body.printing-preview .print-page-column{height:100%!important;overflow:hidden!important}
}


/* ===== Impressão v6 — início inteligente de músicas ===== */
.print-probe-page{
  position:absolute!important;
  left:-12000px!important;
  top:0!important;
  margin:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  box-shadow:none!important;
}
@media print{
  .print-probe-page{display:none!important}
}
/* Exibição para o cantor: mantém a letra e a estrutura da música intactas. */
#detail-body.lyrics-only .line-chord,
#detail-body.lyrics-only .anchored-chord-row,
#presentation-body.lyrics-only .line-chord,
#presentation-body.lyrics-only .anchored-chord-row,
.lyrics-only-print .print-song-body .line-chord,
.lyrics-only-print .print-song-body .anchored-chord-row { display:none !important; }
#detail-body.lyrics-only .paired-song-line,
#detail-body.lyrics-only .anchored-song-line,
#presentation-body.lyrics-only .paired-song-line,
#presentation-body.lyrics-only .anchored-song-line,
.lyrics-only-print .print-song-body .paired-song-line,
.lyrics-only-print .print-song-body .anchored-song-line { margin-bottom:.38em; }
#btn-presentation-lyrics-only.is-active{background:var(--accent,#0a8d83);color:#fff;border-color:var(--accent,#0a8d83)}
#btn-simplify-chords.is-active{background:var(--accent,#0a8d83);color:#fff;border-color:var(--accent,#0a8d83)}
#btn-presentation-simplify.is-active{background:var(--accent,#0a8d83);color:#fff;border-color:var(--accent,#0a8d83)}

/* Administração comercial — preço, cupons, cortesia */
.admin-price-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin-top:8px}
.admin-price-row .field{flex:1;min-width:140px;margin:0}
.admin-coupon-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-top:8px;align-items:end}
.admin-coupon-form .field{margin:0}
.admin-coupon-form button{grid-column:1/-1}
.admin-courtesy-form{display:flex;gap:10px;margin-top:8px;flex-wrap:wrap}
.admin-courtesy-form input{flex:1;min-width:220px}
.admin-coupon-list,.admin-courtesy-list{display:grid;gap:9px;margin-top:14px}
.admin-coupon-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border:1px solid rgba(8,103,122,.12);border-radius:13px;background:rgba(255,255,255,.7)}
.admin-coupon-row.is-inactive{opacity:.55}
.admin-coupon-row-main{display:flex;flex-direction:column;gap:2px}
.admin-coupon-row-main strong{font-family:var(--font-display);letter-spacing:.02em}
[data-theme="dark"] .admin-coupon-row{background:rgba(255,255,255,.035)}
@media(max-width:560px){
  .admin-coupon-row{flex-direction:column;align-items:flex-start}
}

.users-admin-results-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}

/* Aviso de conteúdo bloqueado (além do limite do plano Gratuito) */
.content-locked-notice{
  display:block;margin-top:10px;padding:10px 14px;border-radius:10px;
  background:rgba(214,158,46,.12);border:1px solid rgba(214,158,46,.35);
  color:var(--ink,#153b40);font-size:13px;line-height:1.5;
}
.content-locked-notice .btn-link{
  background:none;border:none;padding:0;margin-left:4px;
  color:var(--accent,#0a8d83);font-weight:700;font-size:13px;
  text-decoration:underline;cursor:pointer;
}

.billing-trial-notice{
  background:rgba(10,141,131,.1);border:1px solid rgba(10,141,131,.3);
  border-radius:10px;padding:10px 12px;font-size:13px;line-height:1.5;
  color:var(--ink,#153b40);margin-bottom:10px;
}

/* Tela cheia minimalista na apresentação: some com o rodapé (anterior/
   próxima, rolagem, áudio) e usa setas compactas na barra de cima no
   lugar, deixando o máximo de espaço pra letra/cifra. */
.presentation-fs-nav{display:none}
.presentation.is-fullscreen-minimal .presentation-bottom{display:none}
.presentation.is-fullscreen-minimal .presentation-fs-nav{display:inline-flex}

/* Botão flutuante de busca por voz, disponível em qualquer tela do app */
.global-voice-fab {
  position: fixed; right: 18px; bottom: 22px; z-index: 500;
  width: 54px; height: 54px; border-radius: 50%; border: none;
  background: var(--accent, #0a8d83); color: #fff; font-size: 22px;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 8px 20px rgba(0,0,0,.25); cursor: pointer;
}
.global-voice-fab.is-listening { background: #d64545; animation: voiceFabPulse 1s infinite; }
@keyframes voiceFabPulse { 0%,100%{transform:scale(1)} 50%{transform:scale(1.08)} }
@media (max-width: 640px) {
  .global-voice-fab { right: 14px; bottom: 78px; width: 48px; height: 48px; font-size: 19px; }
}

/* Tela de escuta da busca por voz, no centro, com botão de parar explícito */
.global-voice-overlay {
  position: fixed; inset: 0; z-index: 2000;
  background: rgba(7,54,74,.92);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 18px;
}
.global-voice-circle {
  width: 96px; height: 96px; border-radius: 50%;
  background: #d64545; color: #fff; font-size: 38px;
  display: flex; align-items: center; justify-content: center;
  animation: voiceOverlayPulse 1.1s infinite;
  box-shadow: 0 0 0 0 rgba(214,69,69,.5);
}
@keyframes voiceOverlayPulse {
  0% { box-shadow: 0 0 0 0 rgba(214,69,69,.5); }
  70% { box-shadow: 0 0 0 26px rgba(214,69,69,0); }
  100% { box-shadow: 0 0 0 0 rgba(214,69,69,0); }
}
.global-voice-label { color: #fff; font-size: 15px; font-weight: 600; text-align: center; padding: 0 24px; }
#global-voice-stop { background: #fff; color: #23241F; border: none; font-weight: 700; }


/* =========================================================
   Tela inicial limpa (logado) + cabeçalho com logo + abas de baixo
   ========================================================= */
.cv3-home { display: none; }
#view-home.home-is-logged .cv2-home { display: none; }
#view-home.home-is-logged .cv3-home {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 14px; text-align: center; min-height: calc(100vh - 220px); padding: 10px 4px;
}
.cv3-home-logo { width: 110px; height: auto; }
.cv3-search {
  display: flex; align-items: center; gap: 8px; width: 100%; max-width: 560px; box-sizing: border-box;
  background: #fff; border: 1px solid #dfe7ea; border-radius: 16px; padding: 6px 6px 6px 14px;
  box-shadow: 0 8px 24px rgba(10,63,82,.08);
}
.cv3-search-icon { font-size: 17px; flex: none; }
.cv3-search input {
  flex: 1; min-width: 0; border: none; outline: none; background: transparent;
  font: 500 16px var(--font-body, Inter, sans-serif); color: #23241F; padding: 10px 0;
}
.cv3-search-go {
  flex: none; border: none; border-radius: 12px; padding: 11px 16px; cursor: pointer;
  background: linear-gradient(90deg, var(--viva, #18b987), #0da99a); color: #fff; font-weight: 700; font-size: 14px;
}
.cv3-hint { margin: 0; max-width: 460px; color: #72858d; font-size: 13.5px; line-height: 1.55; }

/* Cabeçalho, abas e menu: só no celular e no tablet */
.cv-mobile-top, .cv-tabbar { display: none; }
.cv-menu-sheet {
  position: fixed; inset: 0; z-index: 1100; background: rgba(7,54,74,.45);
  align-items: flex-end; justify-content: center;
}
.cv-menu-panel {
  width: 100%; max-width: 560px; max-height: 78vh; overflow-y: auto; box-sizing: border-box;
  background: #fff; border-radius: 18px 18px 0 0; padding: 14px 14px calc(18px + env(safe-area-inset-bottom, 0px));
}
.cv-menu-head { display: flex; align-items: center; justify-content: space-between; padding: 4px 6px 10px; }
.cv-menu-head strong { font-family: var(--font-display); font-size: 19px; color: #102c3a; }
.cv-menu-head button { border: none; background: #eef3f4; border-radius: 50%; width: 34px; height: 34px; font-size: 15px; cursor: pointer; }
.cv-menu-list { display: grid; gap: 4px; }
.cv-menu-item {
  display: flex; align-items: center; gap: 12px; width: 100%; text-align: left; cursor: pointer;
  border: none; background: transparent; border-radius: 12px; padding: 12px 10px;
  font: 600 15px var(--font-body, Inter, sans-serif); color: #23241F;
}
.cv-menu-item:active, .cv-menu-item:hover { background: #eef6f4; }
.cv-menu-item .nav-icon { width: 22px; text-align: center; color: #0b5064; }

@media (max-width: 860px) {
  .sidebar { display: none !important; }
  main {
    padding-top: calc(76px + env(safe-area-inset-top, 0px)) !important;
    padding-bottom: calc(92px + env(safe-area-inset-bottom, 0px)) !important;
  }
  .cv-mobile-top {
    display: flex; align-items: center; justify-content: center;
    position: fixed; top: 0; left: 0; right: 0; z-index: 450;
    padding: calc(8px + env(safe-area-inset-top, 0px)) 12px 8px;
    background: rgba(248,251,252,.96); border-bottom: 1px solid #e5ecef;
    backdrop-filter: blur(8px);
  }
  .cv-mobile-logo {
    display: flex; align-items: center; gap: 8px; border: none; background: transparent; cursor: pointer; padding: 4px 8px;
    font: 700 18px var(--font-display); color: #0b5064;
  }
  .cv-mobile-logo img { width: 38px; height: 38px; object-fit: contain; }
  .cv-tabbar {
    display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 450;
    background: #fff; border-top: 1px solid #e5ecef;
    padding: 6px 4px calc(6px + env(safe-area-inset-bottom, 0px));
    box-shadow: 0 -6px 20px rgba(10,63,82,.06);
  }
  .cv-tabbar button {
    flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 2px;
    border: none; background: transparent; cursor: pointer; padding: 6px 2px; border-radius: 12px;
    font: 600 11px var(--font-body, Inter, sans-serif); color: #72858d;
  }
  .cv-tabbar .cv-tab-icon { font-size: 20px; line-height: 1.1; }
  .cv-tabbar button.is-active { color: #0b7a6a; background: #e9fbf4; }
  #view-home.home-is-logged .cv3-home { min-height: calc(100vh - 220px); }
  .cv3-home-logo { display: none; } /* a logo já está no cabeçalho */
  /* microfone, avisos e convite de instalação acima das abas */
  .global-voice-fab { bottom: calc(84px + env(safe-area-inset-bottom, 0px)) !important; }
  #toast-wrap { bottom: calc(86px + env(safe-area-inset-bottom, 0px)); }
  .pwa-install-invite { bottom: calc(80px + env(safe-area-inset-bottom, 0px)); }
}

[data-theme="dark"] .cv3-search, [data-theme="dark"] .cv-tabbar, [data-theme="dark"] .cv-menu-panel { background: #16232b; border-color: #2b414b; }
[data-theme="dark"] .cv3-search input, [data-theme="dark"] .cv-menu-item, [data-theme="dark"] .cv-menu-head strong { color: #eef4f2; }
[data-theme="dark"] .cv-mobile-top { background: rgba(14,26,32,.96); border-color: #2b414b; }
[data-theme="dark"] .cv-mobile-logo { color: #d8efe9; }
[data-theme="dark"] .cv-tabbar button.is-active { background: #123a33; color: #6fe0c0; }
[data-theme="dark"] .cv-menu-item:hover { background: #1d3038; }

/* Nada disso aparece na impressão */
@media print {
  .cv-mobile-top, .cv-tabbar, .cv-menu-sheet, .global-voice-fab, .global-voice-overlay { display: none !important; }
}

/* =========================================================
   Tela de quem ainda não entrou (visitante)
   ========================================================= */
.cv2-home { display: none !important; } /* substituída pela tela abaixo e pela tela limpa de quem está logado */
.cv4-landing {
  display: flex; flex-direction: column; align-items: center; text-align: center;
  gap: 14px; max-width: 640px; margin: 0 auto; padding: 6px 4px 10px;
}
#view-home.home-is-logged .cv4-landing { display: none; }
.cv4-logo { width: 96px; height: auto; }
.cv4-kicker { font-size: 11.5px; font-weight: 800; letter-spacing: .14em; color: #0b7a6a; }
.cv4-title { font-family: var(--font-display); font-size: 30px; line-height: 1.15; color: #102c3a; margin: 0; }
.cv4-sub { margin: 0; color: #5d7178; font-size: 15px; line-height: 1.55; max-width: 500px; }
.cv4-cta { display: flex; flex-direction: column; align-items: center; gap: 8px; width: 100%; max-width: 360px; }
.cv4-signup { width: 100%; padding: 14px 18px; font-size: 16px; border-radius: 14px; }
.cv4-signin { border: none; background: transparent; color: #2e5f52; font-size: 14.5px; cursor: pointer; padding: 6px; }
.cv4-try {
  width: 100%; display: flex; flex-direction: column; align-items: center; gap: 8px; margin-top: 6px;
  padding: 16px 12px; background: #f2f8f7; border: 1px solid #dcebe7; border-radius: 18px; box-sizing: border-box;
}
.cv4-try-title { font-weight: 700; color: #102c3a; font-size: 15px; }
.cv4-results { width: 100%; max-width: 560px; display: grid; gap: 6px; text-align: left; }
.cv4-result {
  display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%;
  border: 1px solid #e3ecee; background: #fff; border-radius: 12px; padding: 10px 12px; cursor: pointer; text-align: left;
}
.cv4-result-text { display: flex; flex-direction: column; min-width: 0; }
.cv4-result-text b { color: #102c3a; font-size: 14.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cv4-result-text small { color: #72858d; font-size: 12.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cv4-result-lock { flex: none; font-size: 12px; font-weight: 700; color: #0b7a6a; }
.cv4-results-msg { color: #72858d; font-size: 13px; text-align: center; padding: 6px; }
.cv4-features { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; width: 100%; margin-top: 6px; }
.cv4-feature {
  display: flex; flex-direction: column; gap: 4px; align-items: flex-start; text-align: left;
  background: #fff; border: 1px solid #e5ecef; border-radius: 14px; padding: 14px;
}
.cv4-feature span { font-size: 20px; }
.cv4-feature b { color: #102c3a; font-size: 14.5px; }
.cv4-feature small { color: #72858d; font-size: 12.5px; line-height: 1.45; }
.cv4-steps {
  width: 100%; background: #fff; border: 1px solid #e5ecef; border-radius: 16px; padding: 16px;
  box-sizing: border-box; display: flex; flex-direction: column; align-items: center; gap: 10px;
}
.cv4-steps-title { font-family: var(--font-display); font-size: 19px; color: #102c3a; }
.cv4-steps ol { margin: 0; padding-left: 20px; text-align: left; color: #3d5158; font-size: 14.5px; line-height: 1.7; align-self: stretch; }
.cv4-steps .cv4-signup { max-width: 360px; }
.cv-header-signin { display: none; }

@media (max-width: 860px) {
  .cv4-logo { display: none; } /* a logo já está no cabeçalho */
  .cv4-title { font-size: 26px; }
  /* Visitante: sem abas embaixo (quase tudo pede conta); "Entrar" fixo no topo */
  body:not(.cv-is-logged) .cv-tabbar { display: none !important; }
  body:not(.cv-is-logged) main { padding-bottom: calc(28px + env(safe-area-inset-bottom, 0px)) !important; }
  body:not(.cv-is-logged) .global-voice-fab { bottom: calc(22px + env(safe-area-inset-bottom, 0px)) !important; }
  body:not(.cv-is-logged) #toast-wrap { bottom: calc(22px + env(safe-area-inset-bottom, 0px)); }
  body:not(.cv-is-logged) .pwa-install-invite { bottom: max(18px, env(safe-area-inset-bottom)); }
  body:not(.cv-is-logged) .cv-header-signin {
    display: inline-flex; position: absolute; right: 12px; bottom: 9px;
    border: 1.5px solid #0b7a6a; background: #fff; color: #0b7a6a; border-radius: 999px;
    padding: 7px 14px; font: 700 13.5px var(--font-body, Inter, sans-serif); cursor: pointer;
  }
}
@media (max-width: 420px) { .cv4-features { grid-template-columns: 1fr; } }

[data-theme="dark"] .cv4-title, [data-theme="dark"] .cv4-try-title, [data-theme="dark"] .cv4-steps-title,
[data-theme="dark"] .cv4-feature b, [data-theme="dark"] .cv4-result-text b { color: #eef4f2; }
[data-theme="dark"] .cv4-try, [data-theme="dark"] .cv4-feature, [data-theme="dark"] .cv4-steps,
[data-theme="dark"] .cv4-result { background: #16232b; border-color: #2b414b; }
[data-theme="dark"] .cv4-steps ol, [data-theme="dark"] .cv4-sub { color: #b9c9cd; }
@media print { .cv-header-signin { display: none !important; } }

/* Ajustes v63: logo maior no topo, "Criar conta" e "Entrar" grandes e do mesmo tamanho */
.cv4-cta { gap: 10px; }
.cv4-signin {
  width: 100%; padding: 13px 18px; border-radius: 14px; cursor: pointer;
  border: 2px solid #0b7a6a; background: #fff; color: #0b7a6a;
  font: 700 16px var(--font-body, Inter, sans-serif);
}
.cv4-try { margin-top: 10px; }
@media (max-width: 860px) {
  .cv-mobile-logo { padding: 2px 6px; }
  .cv-mobile-logo img { width: 64px; height: 64px; }
  main { padding-top: calc(98px + env(safe-area-inset-top, 0px)) !important; }
  body:not(.cv-is-logged) .cv-header-signin { bottom: 24px; }
}
[data-theme="dark"] .cv4-signin { background: transparent; color: #6fe0c0; border-color: #6fe0c0; }

/* v65: texto dos botões da tela do visitante centralizado */
.cv4-signup, .cv4-signin { display: flex; align-items: center; justify-content: center; text-align: center; }


/* ===== Aviso para quem ainda não tem conta (telas que dependem de conta) ===== */
.view.cv-gated > :not(.cv-visitor-gate) { display: none !important; }
.cv-visitor-gate {
  max-width: 560px; margin: 24px auto; padding: 32px 24px;
  display: flex; flex-direction: column; align-items: center; gap: 12px; text-align: center;
  background: var(--card-bg); color: var(--ink);
  border: 1px solid rgba(8,103,122,.16); border-radius: 18px;
  box-shadow: 0 14px 36px rgba(5,70,84,.08);
}
.cv-gate-icon {
  width: 60px; height: 60px; border-radius: 18px; display: grid; place-items: center;
  font-size: 28px; color: var(--cv-teal); background: rgba(24,184,143,.12);
}
.cv-gate-title { margin: 4px 0 0; font-family: var(--font-display); font-size: clamp(21px, 4.6vw, 26px); line-height: 1.2; text-wrap: balance; color: var(--ink); }
.cv-gate-text { margin: 0; max-width: 42ch; color: var(--ink-soft); line-height: 1.55; }
.cv-gate-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 8px; width: 100%; }
.cv-gate-actions .btn { min-height: 46px; padding: 10px 20px; font-weight: 700; }
.cv-gate-link { border: 0; background: none; color: var(--cv-teal); font-weight: 600; cursor: pointer; padding: 6px; text-decoration: underline; text-underline-offset: 3px; }
.cv-gate-link:focus-visible, .cv-gate-actions .btn:focus-visible { outline: 3px solid rgba(24,184,143,.45); outline-offset: 2px; }
.cv-gate-note { margin: 0; font-size: 13px; color: var(--ink-soft); }
@media (max-width: 520px) {
  .cv-visitor-gate { margin: 12px 0; padding: 26px 16px; }
  .cv-gate-actions .btn { flex: 1 1 100%; }
}
[data-theme="dark"] .cv-visitor-gate { border-color: rgba(111,187,163,.25); box-shadow: none; }
[data-theme="dark"] .cv-gate-icon { color: #7fd8bf; }
[data-theme="dark"] .cv-gate-link { color: #7fd8bf; }

/* Convite de instalação no celular: os botões ocupam a largura toda do cartão
   (antes ficavam espremidos na coluna estreita do ícone). */
@media (max-width: 640px) {
  .pwa-install-invite-actions { grid-column: 1 / -1; display: flex; flex-direction: row; gap: 8px; }
  .pwa-install-invite-actions .pwa-install-invite-action { flex: 1 1 0; min-width: 0; min-height: 44px; justify-content: center; text-align: center; }
}
/* Botões do aviso para visitante: texto centralizado também no celular. */
.cv-gate-actions .btn { justify-content: center; text-align: center; }


/* ===== Marca no menu lateral: símbolo + nome em branco (legível no fundo escuro) ===== */
.brand.brand-full { flex-direction: column; gap: 8px; }
.brand-full-logo.brand-symbol { width: 96px; max-width: 70%; }
.brand-wordmark {
  display: flex; flex-direction: column; align-items: center; gap: 2px;
  font-family: var(--font-display); font-weight: 700; font-size: 22px; line-height: 1.1;
  color: #fff; letter-spacing: .01em; text-align: center;
}
.brand-wordmark small {
  font-family: var(--font-body); font-weight: 600; font-size: 10px; letter-spacing: .1em;
  text-transform: uppercase; color: rgba(255,255,255,.72);
}
@media (min-width: 901px) and (max-width: 1180px) {
  .brand-full-logo.brand-symbol { width: 78px !important; }
  .brand-wordmark { font-size: 19px; }
}
@media (max-width: 900px) {
  .brand-wordmark { display: none; }
}
/* Tela inicial (logado): título no lugar da logo repetida */
.cv3-home-title {
  margin: 0 0 4px; font-family: var(--font-display); font-weight: 700;
  font-size: clamp(24px, 4vw, 34px); line-height: 1.15; color: var(--cv-teal-deep, #064a5a); text-wrap: balance;
}
[data-theme="dark"] .cv3-home-title { color: #eef4f2; }
.brand-full-logo.brand-symbol { width: 112px; }
/* Visitante no computador: a marca já está no menu lateral */
.cv4-logo { display: none; }

/* Checkout: botão "Fechar" escrito, mais fácil de achar que só o × */
.billing-payment-modal-card .billing-close-btn{position:static;float:right;width:auto;height:auto;display:inline-flex;align-items:center;gap:6px;padding:7px 14px;margin:0 0 6px 10px;border:1px solid var(--border,#d8d2c4);border-radius:999px;background:var(--surface,#fff);color:var(--text,#1d2a2a);font:600 14px/1 Inter,system-ui,sans-serif;cursor:pointer}
.billing-payment-modal-card .billing-close-btn:hover{background:var(--surface-2,#f3efe6)}

/* =========================================================
   v78 — Planos: o Pro vem primeiro e cabe inteiro no celular
   ========================================================= */
.plan-price-equiv{margin:-4px 0 6px;font-size:12px;font-weight:600;color:#0e8f78}
@media (max-width: 760px){
  #view-plans .page-head{display:none !important}
  #view-plans .billing-toolbar{flex-direction:row !important;align-items:center !important;justify-content:space-between;gap:10px;margin:0 0 14px}
  #view-plans .billing-toolbar .commercial-eyebrow,
  #view-plans .billing-toolbar p{display:none}
  #view-plans .billing-toolbar h2{font-size:19px;margin:0;line-height:1.15}
  #view-plans .billing-cycle-toggle{flex:none}
  #view-plans .billing-cycle-toggle button{padding:7px 13px;font-size:13px}
  #view-plans .plan-card-commercial{padding:14px 16px 12px !important;min-height:0 !important}
  #view-plans .plan-card-head .commercial-eyebrow{display:none}
  #view-plans .plan-card-head h3{font-size:22px;margin:0}
  #view-plans .plan-description{min-height:0 !important;margin:2px 0 0 !important;font-size:13px;line-height:1.3}
  #view-plans .commercial-price{margin:6px 0 2px !important}
  #view-plans .commercial-price strong{font-size:28px !important}
  #view-plans .plan-feature-list{gap:0 !important;margin:6px 0 10px !important;font-size:13.5px !important;line-height:1.3}
  #view-plans .plan-feature-list li{padding:6px 0 !important}
  #view-plans .plan-action{min-height:46px;font-size:16px}
  #view-plans .billing-provider-note{display:block;margin-top:6px;text-align:center}
  /* o convite de instalar não pode cobrir o botão de assinar */
  body:has(#view-plans.active) .pwa-install-invite{display:none !important}
}

/* Período do preço bem visível ao lado do valor */
.commercial-price .plan-period,
#view-plans .commercial-price .plan-period{font-size:15px !important;font-weight:800;color:#0e8f78 !important;background:rgba(14,143,120,.10);padding:3px 10px;border-radius:999px;align-self:center;white-space:nowrap}
.billing-period{font-style:normal;font-size:.8em;font-weight:800;color:#0e8f78;background:rgba(14,143,120,.10);padding:2px 8px;border-radius:999px;margin-left:4px;white-space:nowrap}
[data-theme="dark"] .commercial-price .plan-period,[data-theme="dark"] .billing-period{color:#5fe0c2 !important;background:rgba(95,224,194,.14)}
.billing-test-summary strong #billing-amount-display{color:var(--text,#1d2a2a);font-size:inherit;font-weight:inherit}
[data-theme="dark"] .billing-test-summary strong #billing-amount-display{color:#fff}

/* Aviso LGPD na tela de entrar/criar conta */
.auth-legal-note{margin:12px 0 0;font-size:12.5px;line-height:1.45;color:var(--muted,#61777a);text-align:center}
.auth-legal-note a{color:#0a8d83;font-weight:600;text-decoration:underline}
[data-theme="dark"] .auth-legal-note a{color:#5fe0c2}
/* O convite de instalar não cobre a tela de entrar/criar conta nem outros modais */
body:has(#auth-modal:not([style*="none"])) .pwa-install-invite,
body:has(.modal-overlay.open) .pwa-install-invite{display:none !important}

/* Celular: nenhuma tela pode ficar mais larga que a tela do aparelho.
   (A Administração estourava a largura, o navegador "afastava" a página
   e a barra de baixo ficava cortada, mostrando só Músicas e Artistas.) */
.commercial-grid > *, .commercial-card, .commercial-card .field { min-width: 0; }
.commercial-card input, .commercial-card select, .commercial-card textarea { max-width: 100%; box-sizing: border-box; }
@media (max-width: 760px){
  .commercial-grid, .commercial-grid-2, .commercial-grid-3 { grid-template-columns: minmax(0,1fr) !important; }
  .main > .view, main > .view { max-width: 100%; overflow-x: clip; }
}
/* Barra de baixo some só no modo apresentação */
body:has(#presentation-overlay[style*="flex"]) .cv-tabbar,
body:has(#presentation-overlay[style*="flex"]) .global-voice-fab{display:none !important}

/* Botão Limpar dentro da caixa de busca de Músicas */
.catalog-search-clear{
  position:absolute;right:6px;top:50%;transform:translateY(-50%);z-index:2;
  border:none;background:rgba(14,143,120,.10);color:#0b6f60;font-weight:700;font-size:13px;
  padding:6px 10px;border-radius:999px;cursor:pointer;line-height:1;white-space:nowrap
}
.catalog-search-clear:hover{background:rgba(14,143,120,.18)}
.catalog-search-clear[hidden]{display:none}
[data-theme="dark"] .catalog-search-clear{background:rgba(95,224,194,.14);color:#6fe0c0}
.catalog-search-box .input{padding-right:92px}

/* Conta Master: escolher vídeo do YouTube */
.yt-finder-btn{margin-top:6px;align-self:flex-start}
.yt-picker-overlay{position:fixed;inset:0;z-index:99999;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;padding:16px}
.yt-picker-card{width:min(560px,100%);max-height:86vh;overflow:auto;background:var(--card,#fff);color:var(--text,#1d2a2a);border-radius:16px;padding:16px;box-shadow:0 20px 50px rgba(0,0,0,.3)}
.yt-picker-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;font-size:17px}
.yt-picker-close{border:1px solid var(--rule,#dfe8e9);background:transparent;border-radius:999px;padding:6px 12px;font-weight:700;cursor:pointer;color:inherit}
.yt-picker-list{display:grid;gap:10px}
.yt-picker-item{display:grid;grid-template-columns:120px minmax(0,1fr);gap:10px;align-items:start;border:1px solid var(--rule,#dfe8e9);border-radius:12px;padding:8px}
.yt-picker-item img{width:120px;aspect-ratio:16/9;object-fit:cover;border-radius:8px;background:#000}
.yt-picker-title{font-weight:700;font-size:14px;line-height:1.3}
.yt-picker-badge{font-size:11px;font-weight:800;color:#0e8f78;background:rgba(14,143,120,.12);padding:2px 8px;border-radius:999px}
.yt-picker-actions{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}
@media(max-width:420px){.yt-picker-item{grid-template-columns:1fr}.yt-picker-item img{width:100%}}
body:has(.yt-picker-overlay) .pwa-install-invite,
body:has(#personal-cifra-choice-modal) .pwa-install-invite{display:none !important}

/* Link do Instagram no rodapé do app */
.app-footer-ig{display:inline-block;margin:6px 0 2px;font-size:13px;font-weight:600;color:#0a8d83;text-decoration:none}
.app-footer-ig:hover{text-decoration:underline}
[data-theme="dark"] .app-footer-ig{color:#5fe0c2}
body:has(#cv-menu-sheet[style*="flex"]) .pwa-install-invite{display:none !important}
