:root {
  --bg: #120b18;
  --bg2: #1a1023;
  --surface: rgba(49, 27, 63, .78);
  --surface-strong: #2d183a;
  --surface-soft: rgba(255,255,255,.055);
  --line: rgba(255,255,255,.105);
  --text: #fff9ff;
  --muted: #cdbbd3;
  --faint: #9d8da5;
  --lavender: #d8a9ef;
  --lavender2: #a96bd0;
  --plum: #713c8f;
  --gold: #f4ca7b;
  --green: #78d6a1;
  --red: #f09aa8;
  --blue: #8fc9ff;
  --shadow: 0 18px 60px rgba(0,0,0,.34);
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --nav-h: 70px;
  --player-h: 76px;
  --radius-xl: 28px;
  --radius-lg: 20px;
  --radius-md: 15px;
  --tap: 46px;
}
* { box-sizing: border-box; }
html { background: var(--bg); min-height: 100%; }
body { margin: 0; min-height: 100vh; color: var(--text); background:
  radial-gradient(circle at 70% -10%, rgba(181,126,220,.22), transparent 35%),
  radial-gradient(circle at -5% 32%, rgba(127,76,165,.18), transparent 34%),
  linear-gradient(180deg, #170d20 0%, #100a16 100%);
  font-family: ui-sans-serif, -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}
button, input, textarea, select { font: inherit; }
button { color: inherit; }
button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, [tabindex]:focus-visible { outline: 3px solid rgba(216,169,239,.5); outline-offset: 2px; }
button { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
[hidden] { display: none !important; }
.app-shell { min-height: 100vh; }
.topbar { position: sticky; top: 0; z-index: 30; padding: calc(10px + var(--safe-top)) 16px 10px; background: linear-gradient(180deg, rgba(18,11,24,.96), rgba(18,11,24,.8), transparent); backdrop-filter: blur(18px); }
.topbar-inner { max-width: 1240px; margin: 0 auto; display:flex; align-items:center; gap:12px; min-height:48px; }
.brand-mark { width:40px; height:40px; border-radius:13px; overflow:hidden; box-shadow:0 6px 18px rgba(0,0,0,.35); flex:0 0 auto; }
.brand-mark img { width:100%; height:100%; object-fit:cover; }
.brand-copy { min-width:0; flex:1; }
.eyebrow { margin:0 0 3px; font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); font-weight:800; }
.brand-copy h1 { margin:0; font-size:18px; line-height:1.1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.lock-button { min-width:46px; min-height:46px; border-radius:14px; border:1px solid var(--line); background:rgba(255,255,255,.055); display:grid; place-items:center; cursor:pointer; }
.lock-button.unlocked { border-color:rgba(120,214,161,.35); color:var(--green); background:rgba(120,214,161,.09); }
.connection-dot { width:7px; height:7px; border-radius:50%; display:inline-block; background:var(--faint); margin-right:6px; }
.connection-dot.live { background:var(--green); box-shadow:0 0 0 4px rgba(120,214,161,.09); }
.main-content { max-width:1240px; margin:0 auto; padding:0 16px calc(var(--nav-h) + var(--player-h) + var(--safe-bottom) + 30px); }
.hero { position:relative; overflow:hidden; min-height:250px; border:1px solid var(--line); border-radius:var(--radius-xl); margin:6px 0 18px; box-shadow:var(--shadow); background:#24122e; }
.hero-media { position:absolute; inset:0; }
.hero-media img { width:100%; height:100%; object-fit:cover; object-position:center 26%; filter:saturate(.9) contrast(1.03); }
.hero-media::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(19,10,25,.93) 0%, rgba(19,10,25,.67) 48%, rgba(19,10,25,.18) 100%), linear-gradient(0deg, rgba(19,10,25,.75), transparent 55%); }
.hero-content { position:relative; z-index:2; min-height:250px; display:flex; flex-direction:column; justify-content:flex-end; padding:24px; max-width:640px; }
.hero-title { font-family: ui-serif, "Iowan Old Style", "Palatino Linotype", Georgia, serif; font-size:clamp(34px,8vw,64px); font-weight:500; line-height:.92; letter-spacing:-.035em; margin:0 0 12px; }
.hero p { margin:0 0 18px; color:#eadfed; max-width:560px; font-size:14px; line-height:1.5; }
.hero-actions { display:flex; flex-wrap:wrap; gap:10px; }
.btn { min-height:var(--tap); border:1px solid var(--line); border-radius:14px; padding:0 16px; background:rgba(255,255,255,.07); cursor:pointer; font-weight:760; display:inline-flex; align-items:center; justify-content:center; gap:8px; text-decoration:none; transition:transform .14s ease, background .14s ease, border-color .14s ease; }
.btn:active { transform:scale(.975); }
.btn-primary { color:#24112f; background:linear-gradient(135deg,#f2d1ff,#c78ae6); border-color:transparent; box-shadow:0 10px 28px rgba(169,107,208,.25); }
.btn-gold { color:#2b1b0a; background:linear-gradient(135deg,#ffe2a5,#e9b95e); border-color:transparent; }
.btn-danger { color:#ffdfe4; border-color:rgba(240,154,168,.25); background:rgba(240,154,168,.08); }
.btn-ghost { background:transparent; }
.icon-btn { width:46px; height:46px; padding:0; border-radius:14px; border:1px solid var(--line); background:rgba(255,255,255,.055); display:grid; place-items:center; cursor:pointer; flex:0 0 auto; }
.icon-btn.on { color:var(--gold); border-color:rgba(244,202,123,.36); background:rgba(244,202,123,.08); }
.section { margin:24px 0; }
.section-head { display:flex; align-items:flex-end; justify-content:space-between; gap:14px; margin:0 2px 12px; }
.section-head h2 { margin:0; font-family: ui-serif, Georgia, serif; font-size:27px; font-weight:550; letter-spacing:-.02em; }
.section-head p { margin:4px 0 0; color:var(--muted); font-size:13px; line-height:1.4; }
.section-count { font-size:12px; color:var(--muted); background:var(--surface-soft); border:1px solid var(--line); border-radius:999px; padding:7px 10px; white-space:nowrap; }
.cards { display:grid; gap:12px; }
.card { border:1px solid var(--line); background:linear-gradient(155deg,rgba(56,31,71,.78),rgba(31,18,39,.86)); border-radius:var(--radius-lg); box-shadow:0 10px 30px rgba(0,0,0,.18); overflow:hidden; }
.card-pad { padding:16px; }
.soft-card { border:1px solid var(--line); background:var(--surface-soft); border-radius:var(--radius-md); padding:14px; }
.metrics { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
.metric { min-height:94px; border:1px solid var(--line); background:rgba(255,255,255,.045); border-radius:18px; padding:14px; }
.metric strong { display:block; font-family:ui-serif,Georgia,serif; font-size:30px; font-weight:550; margin-bottom:5px; }
.metric span { color:var(--muted); font-size:12px; }
.tabs-scroll, .album-switcher, .chips { display:flex; gap:8px; overflow-x:auto; scrollbar-width:none; padding:2px 2px 8px; scroll-snap-type:x proximity; }
.tabs-scroll::-webkit-scrollbar, .album-switcher::-webkit-scrollbar, .chips::-webkit-scrollbar { display:none; }
.chip { min-height:38px; white-space:nowrap; border:1px solid var(--line); background:rgba(255,255,255,.045); border-radius:999px; padding:0 12px; color:var(--muted); display:inline-flex; align-items:center; gap:7px; font-size:12px; font-weight:760; cursor:pointer; scroll-snap-align:start; }
.chip.active { color:#2a1237; background:#e1baf2; border-color:transparent; }
.album-pill { min-width:170px; max-width:250px; min-height:68px; text-align:left; border:1px solid var(--line); background:rgba(255,255,255,.045); border-radius:17px; padding:10px 12px; cursor:pointer; scroll-snap-align:start; }
.album-pill.active { background:linear-gradient(140deg,rgba(181,126,220,.26),rgba(255,255,255,.07)); border-color:rgba(216,169,239,.35); }
.album-pill strong { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:13px; }
.album-pill small { display:block; margin-top:5px; color:var(--muted); }
.album-toolbar { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0 16px; }
.album-summary { display:grid; grid-template-columns:1fr auto; gap:10px; align-items:start; margin-bottom:16px; }
.album-summary h2 { margin:0; font-family:ui-serif,Georgia,serif; font-size:30px; font-weight:550; line-height:1; }
.album-summary p { margin:8px 0 0; color:var(--muted); font-size:13px; }
.status-badge { display:inline-flex; align-items:center; min-height:28px; padding:0 9px; border-radius:999px; border:1px solid var(--line); font-size:10px; letter-spacing:.05em; text-transform:uppercase; font-weight:850; color:var(--muted); }
.status-badge.approved, .status-badge.album_available { color:var(--green); border-color:rgba(120,214,161,.3); background:rgba(120,214,161,.08); }
.status-badge.in_production, .status-badge.pending, .status-badge.review { color:var(--gold); border-color:rgba(244,202,123,.26); background:rgba(244,202,123,.07); }
.status-badge.not_approved, .status-badge.rejected { color:var(--red); border-color:rgba(240,154,168,.28); background:rgba(240,154,168,.08); }
.status-badge.clearance_pending { color:#ffd291; border-color:rgba(255,181,83,.32); background:rgba(255,181,83,.1); }
.status-badge.selected { color:var(--blue); border-color:rgba(143,201,255,.28); background:rgba(143,201,255,.07); }
.empty-state { text-align:center; padding:42px 20px; border:1px dashed rgba(255,255,255,.16); border-radius:22px; color:var(--muted); }
.empty-state .big-icon { font-size:32px; margin-bottom:10px; }
.track-list { display:grid; gap:8px; }
.album-track { display:grid; grid-template-columns:38px 48px minmax(0,1fr) auto; align-items:center; gap:10px; padding:9px; border:1px solid var(--line); background:rgba(255,255,255,.035); border-radius:16px; position:relative; touch-action:pan-y; }
.album-track.dragging { opacity:.72; transform:scale(.99); border-color:rgba(216,169,239,.45); background:rgba(181,126,220,.13); z-index:4; }
.track-num { width:38px; height:38px; border-radius:12px; display:grid; place-items:center; color:var(--gold); background:rgba(244,202,123,.075); font:600 17px ui-serif,Georgia,serif; }
.play-round { width:46px; height:46px; border-radius:50%; display:grid; place-items:center; border:1px solid rgba(255,255,255,.16); background:rgba(255,255,255,.08); cursor:pointer; font-size:16px; }
.track-copy { min-width:0; }
.track-copy strong { display:block; font-size:13px; line-height:1.25; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.track-copy .version { display:block; margin-top:4px; color:var(--muted); font-size:11px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.track-copy .technical { display:block; margin-top:3px; color:var(--faint); font-size:9px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.track-actions { display:flex; align-items:center; gap:4px; }
.mini-action { width:36px; height:36px; border:0; background:transparent; border-radius:11px; color:var(--muted); cursor:pointer; font-size:16px; }
.mini-action.on { color:var(--gold); background:rgba(244,202,123,.08); }
.drag-handle { width:32px; height:38px; border:0; background:transparent; color:var(--faint); border-radius:9px; cursor:grab; touch-action:none; font-size:18px; display:grid; place-items:center; }
.drag-handle:active { cursor:grabbing; }
.track-subrow { grid-column:3 / -1; display:flex; flex-wrap:wrap; gap:6px; margin-top:-4px; }
.tag { display:inline-flex; min-height:22px; align-items:center; padding:0 7px; border-radius:999px; background:rgba(255,255,255,.05); color:var(--muted); font-size:9px; border:1px solid rgba(255,255,255,.06); }
.clearance-warning { color:#ffd291; background:rgba(255,181,83,.08); border:1px solid rgba(255,181,83,.2); border-radius:12px; padding:10px 12px; font-size:11px; line-height:1.4; }
.catalog-row { display:grid; grid-template-columns:48px minmax(0,1fr) auto; gap:10px; align-items:center; min-height:70px; padding:10px 12px; border-bottom:1px solid rgba(255,255,255,.065); }
.catalog-row:last-child { border-bottom:0; }
.catalog-row .copy { min-width:0; }
.catalog-row strong { display:block; font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.catalog-row small { color:var(--muted); display:block; margin-top:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.catalog-row .row-actions { display:flex; align-items:center; gap:5px; }
.status-track { padding:15px; cursor:pointer; }
.status-track-head { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; }
.status-track h3 { margin:0; font-size:14px; }
.status-track p { margin:8px 0 0; color:var(--muted); font-size:12px; line-height:1.45; }
.status-track-foot { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-top:10px; }
.front-card { padding:16px; border-left:3px solid var(--gold); }
.front-card.done { border-left-color:var(--green); opacity:.72; }
.front-card h3 { margin:5px 0 6px; font-size:15px; }
.front-card p { color:var(--muted); font-size:12px; line-height:1.45; margin:0; }
.ref-card { padding:15px; }
.ref-card h3 { margin:0 0 4px; font-size:15px; }
.ref-card .artist { color:var(--lavender); font-size:12px; }
.ref-link { margin-top:12px; display:inline-flex; align-items:center; gap:6px; color:#d8e9ff; font-size:11px; text-decoration:none; border-bottom:1px solid rgba(216,233,255,.2); padding-bottom:2px; }
.timeline { position:relative; padding-left:18px; }
.timeline::before { content:""; position:absolute; top:7px; bottom:5px; left:5px; width:1px; background:linear-gradient(var(--lavender2),transparent); opacity:.5; }
.timeline-item { position:relative; padding:0 0 18px 12px; }
.timeline-item::before { content:""; position:absolute; left:-17px; top:5px; width:8px; height:8px; border-radius:50%; background:var(--lavender); box-shadow:0 0 0 4px rgba(216,169,239,.08); }
.timeline-item time { color:var(--gold); font-size:10px; font-weight:800; }
.timeline-item h3 { margin:4px 0; font-size:13px; }
.timeline-item p { margin:0; color:var(--muted); font-size:11px; line-height:1.45; }
.activity-item { display:grid; grid-template-columns:34px minmax(0,1fr); gap:11px; padding:13px 4px; border-bottom:1px solid rgba(255,255,255,.065); }
.activity-avatar { width:34px; height:34px; border-radius:12px; display:grid; place-items:center; background:rgba(216,169,239,.1); color:var(--lavender); font-weight:900; font-size:12px; }
.activity-item p { margin:0; font-size:12px; line-height:1.45; }
.activity-item strong { color:#fff; }
.activity-item time { display:block; margin-top:5px; color:var(--faint); font-size:10px; }

.activity-clickable { width:100%; border:0; background:transparent; color:inherit; text-align:left; cursor:pointer; grid-template-columns:34px minmax(0,1fr) 22px; align-items:start; }
.activity-clickable:hover { background:rgba(255,255,255,.025); }
.activity-copy { min-width:0; }
.activity-copy small { display:block; margin-top:6px; color:var(--muted); font-size:10px; line-height:1.4; overflow-wrap:anywhere; }
.activity-meta { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:4px; }
.activity-meta span { color:var(--gold); font-size:9px; font-weight:900; text-transform:uppercase; letter-spacing:.12em; }
.activity-meta time { margin:0; flex:none; }
.activity-open { color:var(--lavender); font-size:24px; line-height:1; padding-top:8px; }
.activity-controls { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:12px; flex-wrap:wrap; }
.activity-detail-head { display:grid; grid-template-columns:46px minmax(0,1fr); gap:13px; align-items:start; padding:4px 0 18px; border-bottom:1px solid rgba(255,255,255,.08); }
.activity-avatar.large { width:46px; height:46px; border-radius:16px; font-size:14px; }
.activity-detail-head p { margin:4px 0 0; color:var(--muted); line-height:1.45; }
.activity-detail-head time { display:block; margin-top:7px; color:var(--faint); font-size:10px; }
.activity-detail-grid { display:grid; gap:0; margin:0; }
.activity-detail-grid > div { display:grid; grid-template-columns:minmax(110px,160px) minmax(0,1fr); gap:16px; padding:13px 0; border-bottom:1px solid rgba(255,255,255,.065); }
.activity-detail-grid dt { color:var(--muted); font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.activity-detail-grid dd { margin:0; color:#fff; font-size:12px; line-height:1.5; white-space:pre-wrap; overflow-wrap:anywhere; }
.activity-detail-section { padding:18px 0 4px; }
.activity-detail-section h3 { margin:0 0 10px; font-size:14px; }
.activity-movement { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:10px 0; border-bottom:1px solid rgba(255,255,255,.055); }
.activity-movement strong { min-width:0; font-size:11px; overflow-wrap:anywhere; }
.activity-movement span { color:var(--gold); font-size:11px; white-space:nowrap; }
.activity-record-id { margin-top:18px; color:var(--faint); font-size:9px; overflow-wrap:anywhere; }
.activity-legacy-note { margin:16px 0 4px; padding:12px 14px; border:1px solid rgba(244,202,123,.2); border-radius:12px; color:var(--muted); background:rgba(244,202,123,.04); font-size:11px; line-height:1.5; }
@media (max-width: 680px) {
  .activity-controls { align-items:stretch; }
  .activity-controls .btn { width:100%; }
  .activity-detail-grid > div { grid-template-columns:1fr; gap:5px; }
  .activity-meta { align-items:flex-start; }
}

.player-dock { position:fixed; left:10px; right:10px; bottom:calc(var(--nav-h) + var(--safe-bottom) + 7px); height:var(--player-h); z-index:45; max-width:740px; margin:0 auto; border:1px solid rgba(255,255,255,.13); background:rgba(36,20,46,.92); backdrop-filter:blur(24px) saturate(1.2); border-radius:19px; box-shadow:0 12px 38px rgba(0,0,0,.35); padding:9px 10px; }
.player-grid { display:grid; grid-template-columns:46px minmax(0,1fr) auto; gap:10px; align-items:center; height:100%; }
.player-title { min-width:0; }
.player-title strong { display:block; font-size:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.player-title small { display:block; color:var(--muted); font-size:9px; margin-top:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.player-progress { margin-top:7px; height:4px; border-radius:999px; background:rgba(255,255,255,.1); overflow:hidden; cursor:pointer; }
.player-progress > span { display:block; height:100%; width:0; background:linear-gradient(90deg,var(--lavender),var(--gold)); border-radius:inherit; }
.player-controls { display:flex; gap:2px; align-items:center; }
.player-controls button { width:34px; height:40px; border:0; background:transparent; color:var(--text); cursor:pointer; border-radius:10px; }
.bottom-nav { position:fixed; z-index:40; bottom:0; left:0; right:0; height:calc(var(--nav-h) + var(--safe-bottom)); padding:7px 12px var(--safe-bottom); background:rgba(16,9,22,.92); backdrop-filter:blur(22px); border-top:1px solid rgba(255,255,255,.075); display:grid; grid-template-columns:repeat(3,1fr); gap:5px; }
.nav-item { min-height:56px; border:0; background:transparent; color:var(--faint); border-radius:16px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; cursor:pointer; font-size:10px; font-weight:800; }
.nav-item .nav-icon { font-size:19px; line-height:1; }
.nav-item.active { color:var(--lavender); background:rgba(216,169,239,.065); }
.sheet-backdrop { position:fixed; inset:0; z-index:70; background:rgba(5,3,7,.62); backdrop-filter:blur(5px); animation:fade .16s ease-out; }
.sheet { position:fixed; z-index:71; left:0; right:0; bottom:0; max-height:min(88vh,900px); background:linear-gradient(180deg,#2a1636,#170d20 84%); border:1px solid rgba(255,255,255,.13); border-bottom:0; border-radius:26px 26px 0 0; box-shadow:0 -22px 60px rgba(0,0,0,.45); overflow:hidden; animation:sheetUp .22s cubic-bezier(.2,.8,.2,1); padding-bottom:var(--safe-bottom); }
.sheet-handle { width:42px; height:5px; border-radius:999px; background:rgba(255,255,255,.2); margin:8px auto 2px; }
.sheet-head { display:flex; align-items:center; gap:10px; padding:10px 16px 12px; border-bottom:1px solid rgba(255,255,255,.075); }
.sheet-head .copy { flex:1; min-width:0; }
.sheet-head h2 { margin:0; font-family:ui-serif,Georgia,serif; font-size:23px; font-weight:550; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sheet-head p { margin:3px 0 0; color:var(--muted); font-size:10px; }
.sheet-body { overflow:auto; max-height:calc(88vh - 76px - var(--safe-bottom)); overscroll-behavior:contain; padding:14px 16px 24px; }
.sheet.full { top:calc(8px + var(--safe-top)); max-height:none; border-radius:24px 24px 0 0; }
.sheet.full .sheet-body { max-height:calc(100vh - 94px - var(--safe-top) - var(--safe-bottom)); }
.form-grid { display:grid; gap:12px; }
.field label { display:block; color:var(--muted); font-size:10px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; margin:0 0 7px 2px; }
.input, .textarea, .select { width:100%; min-height:48px; border-radius:14px; border:1px solid var(--line); color:var(--text); background:rgba(255,255,255,.055); padding:0 13px; }
.textarea { min-height:104px; resize:vertical; padding:12px 13px; line-height:1.5; }
.input::placeholder, .textarea::placeholder { color:#8e7c97; }
.search-box { position:sticky; top:-14px; z-index:3; background:#291535; padding:14px 0 8px; }
.search-box .input { padding-left:40px; }
.search-wrap { position:relative; }
.search-wrap::before { content:"⌕"; position:absolute; left:14px; top:10px; font-size:22px; color:var(--muted); z-index:2; }
.modal-actions { display:flex; gap:8px; justify-content:flex-end; margin-top:16px; }
.pin-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.identity { min-height:62px; border:1px solid var(--line); background:rgba(255,255,255,.04); border-radius:15px; cursor:pointer; padding:8px; text-align:center; font-size:11px; }
.identity.selected { border-color:rgba(216,169,239,.55); background:rgba(216,169,239,.11); color:var(--lavender); }
.ai-hero { border:1px solid rgba(216,169,239,.2); background:linear-gradient(135deg,rgba(181,126,220,.15),rgba(244,202,123,.06)); border-radius:20px; padding:16px; margin-bottom:14px; }
.ai-hero h3 { margin:0 0 7px; font-family:ui-serif,Georgia,serif; font-size:20px; }
.ai-hero p { color:var(--muted); font-size:11px; line-height:1.5; margin:0; }
.ai-proposal { padding:16px; margin-top:12px; }
.ai-proposal h3 { margin:0 0 5px; font-size:17px; }
.ai-proposal .concept { color:var(--muted); font-size:11px; line-height:1.45; }
.ai-track { display:grid; grid-template-columns:26px minmax(0,1fr); gap:8px; padding:8px 0; border-bottom:1px solid rgba(255,255,255,.05); }
.ai-track:last-child { border-bottom:0; }
.ai-track .n { color:var(--gold); font:600 15px ui-serif,Georgia,serif; }
.ai-track strong { display:block; font-size:11px; }
.ai-track small { display:block; color:var(--muted); font-size:9px; margin-top:2px; }
.spinner { width:20px; height:20px; border:2px solid rgba(255,255,255,.15); border-top-color:var(--lavender); border-radius:50%; animation:spin .7s linear infinite; }
.toast-root { position:fixed; z-index:100; left:12px; right:12px; bottom:calc(var(--nav-h) + var(--safe-bottom) + 92px); display:grid; gap:8px; pointer-events:none; }
.toast { max-width:560px; margin:0 auto; width:100%; border:1px solid var(--line); background:rgba(26,15,35,.96); backdrop-filter:blur(20px); border-radius:14px; padding:11px 13px; box-shadow:var(--shadow); color:var(--text); font-size:11px; animation:toastIn .18s ease-out; }
.toast.error { border-color:rgba(240,154,168,.32); }
.toast.success { border-color:rgba(120,214,161,.3); }
.sync-banner { border:1px solid rgba(244,202,123,.25); background:rgba(244,202,123,.07); color:#f3d9a6; border-radius:13px; padding:10px 12px; font-size:10px; margin-bottom:10px; }
.detail-wave { height:84px; width:100%; border-radius:14px; margin:12px 0; background:rgba(255,255,255,.04); object-fit:cover; opacity:.72; cursor:pointer; }
.spotify-frame { width:100%; height:152px; border:0; border-radius:14px; margin-top:12px; }
@keyframes sheetUp { from { transform:translateY(18px); opacity:0; } to { transform:none; opacity:1; } }
@keyframes fade { from { opacity:0 } to { opacity:1 } }
@keyframes toastIn { from { transform:translateY(8px); opacity:0 } to { transform:none; opacity:1 } }
@keyframes spin { to { transform:rotate(360deg) } }
@media (min-width:720px) {
  .main-content { padding-left:24px; padding-right:24px; }
  .topbar { padding-left:24px; padding-right:24px; }
  .metrics { grid-template-columns:repeat(4,1fr); }
  .cards.two { grid-template-columns:repeat(2,1fr); }
  .cards.three { grid-template-columns:repeat(3,1fr); }
  .sheet { left:50%; right:auto; width:min(720px,calc(100vw - 30px)); transform:translateX(-50%); border-radius:26px 26px 0 0; }
  .sheet.full { width:min(880px,calc(100vw - 30px)); }
}
@media (min-width:1040px) {
  .hero { min-height:330px; }
  .hero-content { min-height:330px; padding:36px; }
  .bottom-nav { left:50%; right:auto; transform:translateX(-50%); width:460px; bottom:12px; height:66px; padding:6px; border:1px solid var(--line); border-radius:22px; box-shadow:var(--shadow); }
  .player-dock { bottom:88px; }
  .main-content { padding-bottom:190px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration:.001ms !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
}

/* =========================================================
   HML 1.1 HYBRID
   Preserva a linguagem visual da HML 1.0 e adiciona apenas
   Album Studio, colaboração e cards musicais refinados.
   ========================================================= */

:root {
  --hybrid-gap: 18px;
  --hybrid-main-wave: 44px;
  --hybrid-variation-wave: 27px;
  --hybrid-nav-h: 58px;
}

/* Navegação principal volta a ser evidente no topo, sem rodapé fixo. */
.bottom-nav {
  position: sticky;
  top: calc(68px + var(--safe-top));
  left: auto;
  right: auto;
  bottom: auto;
  z-index: 29;
  width: min(620px, calc(100% - 28px));
  height: var(--hybrid-nav-h);
  margin: 2px auto 14px;
  padding: 5px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 5px;
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 18px;
  background: rgba(25,14,34,.88);
  backdrop-filter: blur(22px) saturate(1.15);
  box-shadow: 0 10px 30px rgba(0,0,0,.22);
}
.nav-item {
  position: relative;
  min-height: 46px;
  border-radius: 13px;
  flex-direction: row;
  gap: 7px;
  font-size: 11px;
  letter-spacing: .01em;
}
.nav-item .nav-icon { font-size: 16px; }
.nav-item.active {
  color: #f1ddfb;
  background: linear-gradient(135deg, rgba(216,169,239,.16), rgba(244,202,123,.045));
  box-shadow: inset 0 0 0 1px rgba(216,169,239,.09);
}
.nav-badge {
  position: absolute;
  top: 5px;
  right: 8px;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 999px;
  display: inline-grid;
  place-items: center;
  color: #1f1128;
  background: var(--gold);
  font-size: 9px;
  font-weight: 900;
  box-shadow: 0 0 0 3px rgba(244,202,123,.08);
}
.main-content {
  padding-bottom: calc(142px + var(--safe-bottom));
}

/* Biblioteca de opções do álbum */
.album-switcher {
  gap: 10px;
  padding-bottom: 10px;
}
.hybrid-album-pill {
  min-width: 205px;
  min-height: 94px;
  padding: 11px 13px 10px;
  border-color: color-mix(in srgb, var(--album-accent) 36%, transparent);
  background:
    linear-gradient(150deg, color-mix(in srgb, var(--album-accent-soft) 42%, rgba(49,27,63,.82)), rgba(30,17,38,.9));
  box-shadow: inset 3px 0 0 color-mix(in srgb, var(--album-accent) 78%, white 4%);
}
.hybrid-album-pill.active {
  border-color: color-mix(in srgb, var(--album-accent) 58%, transparent);
  background:
    linear-gradient(145deg, color-mix(in srgb, var(--album-accent-soft) 62%, rgba(60,34,75,.88)), rgba(32,18,41,.92));
  box-shadow:
    inset 4px 0 0 var(--album-accent),
    0 12px 30px rgba(0,0,0,.22);
}
.album-pill-option {
  display: block;
  margin-bottom: 5px;
  color: var(--album-accent, var(--gold));
  font-size: 9px;
  letter-spacing: .15em;
  text-transform: uppercase;
  font-weight: 900;
}
.duplicated-label {
  color: #f1d8ff !important;
  opacity: .82;
}
.album-stars { display:flex; gap:1px; margin-top:6px; color:rgba(255,255,255,.2); font-size:11px; }
.album-stars .on { color:var(--gold); }
.album-stars button { border:0; background:transparent; padding:0 1px; cursor:pointer; color:inherit; }
.album-stars.interactive button { font-size:20px; padding:1px 2px; }

.album-start-grid { display:grid; grid-template-columns:1fr; gap:10px; margin-top:16px; }
.start-card {
  min-height: 116px;
  border:1px solid var(--line);
  border-radius:18px;
  padding:15px;
  text-align:left;
  color:var(--text);
  background:linear-gradient(145deg,rgba(255,255,255,.06),rgba(255,255,255,.025));
  cursor:pointer;
}
.start-card.ai { border-color:rgba(216,169,239,.24); background:linear-gradient(145deg,rgba(181,126,220,.13),rgba(244,202,123,.035)); }
.start-card > span { display:block; font-size:22px; color:var(--lavender); margin-bottom:8px; }
.start-card strong { display:block; font-size:14px; }
.start-card small { display:block; margin-top:6px; color:var(--muted); line-height:1.45; }
.album-signature {
  margin-top: 14px;
  padding: 10px 12px;
  border-top: 1px solid rgba(255,255,255,.07);
  color: var(--faint);
  font-size: 10px;
  text-align: right;
}

/* Aviso de colaboração */
.collab-alert {
  width:100%;
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  margin: 0 0 14px;
  padding: 11px 13px;
  border:1px solid rgba(244,202,123,.23);
  border-radius:15px;
  color:#f4e5c7;
  background:linear-gradient(135deg,rgba(244,202,123,.09),rgba(216,169,239,.055));
  text-align:left;
  cursor:pointer;
}
.collab-alert strong { font-size:12px; white-space:nowrap; }
.collab-alert span { color:var(--muted); font-size:10px; line-height:1.35; }
.activity-summary {
  border:1px solid rgba(216,169,239,.18);
  background:rgba(216,169,239,.055);
  border-radius:17px;
  padding:13px 15px;
}
.activity-summary strong { display:block; font-size:13px; }
.activity-summary span { display:block; color:var(--muted); font-size:10px; margin-top:5px; }

/* =========================================================
   COMPONENTE MUSICAL COMPARTILHADO ENTRE STATUS E ADICIONAR
   ========================================================= */
.music-family-list {
  display: grid;
  gap: var(--hybrid-gap);
}
.music-family {
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 20px;
  background:
    linear-gradient(155deg, rgba(53,30,67,.78), rgba(29,17,37,.91));
  box-shadow: 0 12px 32px rgba(0,0,0,.16);
}
.music-family-head {
  min-height: 52px;
  padding: 12px 14px 9px;
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 10px;
  align-items: start;
}
.music-family-head > div { min-width:0; }
.music-family-head .eyebrow { margin-bottom:3px; font-size:8px; }
.music-family-head h3 {
  margin:0;
  font-family: ui-serif, Georgia, serif;
  font-size: 17px;
  line-height: 1.08;
  font-weight: 580;
  letter-spacing: -.015em;
}
.music-family-head p:not(.eyebrow) {
  margin:5px 0 0;
  color:var(--muted);
  font-size:10px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.music-family-head .status-badge {
  justify-self:end;
  align-self:start;
  min-height: 27px;
  padding: 0 9px;
  font-size: 9px;
}
.music-family-head .status-badge.approved,
.music-family-head .status-badge.album_available {
  color:#82e8ae;
  border-color:rgba(120,214,161,.40);
  background:rgba(120,214,161,.10);
  box-shadow:0 0 0 1px rgba(120,214,161,.025), 0 6px 18px rgba(60,145,96,.06);
}
.status-edit-trigger { cursor:pointer; }

.candidate-version {
  position: relative;
  min-height: 84px;
  display:grid;
  grid-template-columns: 48px minmax(0,1fr) 44px;
  gap: 11px;
  align-items:center;
  padding: 9px 13px 11px;
  border-top:1px solid rgba(255,255,255,.065);
}
.candidate-version.is-primary {
  background:linear-gradient(90deg,rgba(255,255,255,.016),rgba(255,255,255,.035),rgba(255,255,255,.012));
}
.candidate-copy { min-width:0; }
.candidate-title-line {
  min-height:18px;
  display:flex;
  gap:7px;
  align-items:baseline;
  margin:0 0 6px;
  overflow:hidden;
}
.candidate-title-line strong {
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:11px;
  font-weight:780;
}
.candidate-title-line > span:not(.micro-warning) {
  flex:0 0 auto;
  color:var(--faint);
  font-size:8px;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.micro-warning {
  flex:0 0 auto;
  color:var(--gold);
  font-size:8px;
  font-weight:800;
}
.play-round {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  display:grid;
  place-items:center;
  border:1px solid rgba(216,169,239,.28);
  color:#f6eafa;
  background:rgba(216,169,239,.075);
  cursor:pointer;
}
.candidate-version .add-candidate { width:42px; height:42px; }

.waveform {
  position:relative;
  width:100%;
  height:var(--hybrid-main-wave);
  overflow:hidden;
  border-radius:12px;
  background:linear-gradient(90deg,rgba(255,255,255,.035),rgba(216,169,239,.05));
  cursor:pointer;
  isolation:isolate;
}
.waveform::before {
  content:"";
  position:absolute;
  inset:5px 7px;
  z-index:1;
  background-image:var(--wave);
  background-size:100% 100%;
  background-repeat:no-repeat;
  background-position:center;
  opacity:.72;
  filter:saturate(.8) brightness(1.28);
  pointer-events:none;
}
.waveform::after {
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  border:1px solid rgba(255,255,255,.045);
  border-radius:inherit;
  pointer-events:none;
}
.wave-progress {
  position:absolute;
  z-index:2;
  inset:0 auto 0 0;
  width:0;
  background:linear-gradient(90deg,rgba(244,202,123,.10),rgba(216,169,239,.13));
  pointer-events:none;
}
.wave-cursor {
  position:absolute;
  z-index:3;
  top:4px;
  bottom:4px;
  left:0;
  width:1px;
  background:var(--gold);
  box-shadow:0 0 9px rgba(244,202,123,.55);
  pointer-events:none;
}

.variation-toggle {
  width:100%;
  min-height:39px;
  padding:0 14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border:0;
  border-top:1px solid rgba(216,169,239,.085);
  color:#ead6f4;
  background:linear-gradient(90deg,rgba(149,102,176,.11),rgba(244,202,123,.035));
  cursor:pointer;
}
.variation-toggle strong {
  font-size:10px;
  letter-spacing:.04em;
}
.variation-toggle span { color:var(--gold); }
.variation-stack {
  display:grid;
  gap:6px;
  padding:7px 8px 9px;
  border-top:1px solid rgba(255,255,255,.05);
  background:rgba(12,7,17,.22);
}
.candidate-version.is-variation {
  min-height:64px;
  grid-template-columns: 38px minmax(0,1fr) 38px;
  gap:8px;
  padding:6px 9px;
  border:1px solid rgba(255,255,255,.055);
  border-radius:13px;
}
.candidate-version.is-variation .play-round { width:36px; height:36px; font-size:10px; }
.candidate-version.is-variation .add-candidate { width:36px; height:36px; border-radius:11px; }
.candidate-version.is-variation .candidate-title-line { margin-bottom:4px; min-height:13px; }
.candidate-version.is-variation .candidate-title-line strong { font-size:9px; }
.candidate-version.is-variation .candidate-title-line > span:not(.micro-warning) { font-size:7px; }
.candidate-version.is-variation .waveform { height:var(--hybrid-variation-wave); border-radius:9px; }
.candidate-version.is-variation .waveform::before { inset:3px 5px; opacity:.68; }
.variation-tone-1 { background:linear-gradient(90deg,rgba(151,112,184,.16),rgba(74,49,93,.14)); }
.variation-tone-2 { background:linear-gradient(90deg,rgba(199,166,115,.12),rgba(89,67,42,.10)); }
.variation-tone-3 { background:linear-gradient(90deg,rgba(137,73,101,.15),rgba(70,38,55,.11)); }
.variation-tone-4 { background:linear-gradient(90deg,rgba(88,105,143,.15),rgba(38,47,68,.12)); }
.no-audio-message { padding:10px 14px 13px; color:var(--muted); font-size:10px; border-top:1px solid rgba(255,255,255,.055); }

/* Referências: preserva a comparação A/B e o Spotify da HML 1.0 */
.reference-list { display:grid; gap:18px; }
.reference-compare {
  border:1px solid var(--line);
  border-radius:21px;
  overflow:hidden;
  background:linear-gradient(150deg,rgba(52,29,65,.73),rgba(27,16,35,.9));
  box-shadow:0 12px 32px rgba(0,0,0,.16);
}
.reference-compare > header {
  padding:15px 16px 10px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:start;
}
.reference-compare h3 { margin:0; font-family:ui-serif,Georgia,serif; font-size:20px; font-weight:560; }
.reference-compare header span:not(.status-badge) { color:var(--lavender); font-size:11px; }
.reference-summary { margin:0; padding:0 16px 11px; color:var(--muted); font-size:11px; line-height:1.5; }
.relationship-label {
  margin:0 16px 13px;
  padding:8px 10px;
  border:1px solid rgba(244,202,123,.16);
  border-radius:11px;
  color:#ead1a0;
  background:rgba(244,202,123,.045);
  font-size:9px;
  line-height:1.4;
}
.reference-grid { display:grid; grid-template-columns:1fr; gap:1px; background:rgba(255,255,255,.055); border-top:1px solid rgba(255,255,255,.055); }
.reference-side { min-width:0; padding:14px; background:rgba(18,10,24,.72); }
.reference-side > strong { display:block; margin-bottom:8px; color:#eee1f2; font-size:10px; letter-spacing:.09em; text-transform:uppercase; }
.production-side { background:rgba(27,15,35,.78); }
.production-side .music-family-list, .production-side .music-family { margin-top:8px; }
.reference-note { margin:10px 0 0; color:var(--muted); font-size:10px; line-height:1.45; }
.spotify-frame { height:152px; margin-top:0; }

/* Faixas dentro do álbum: compactas, mas não espremidas. */
.track-list { display:grid; gap:10px; }
.hybrid-album-track {
  min-height:84px;
  display:grid;
  grid-template-columns:34px 44px minmax(0,1fr) auto;
  gap:9px;
  align-items:center;
  padding:9px 10px;
  border:1px solid rgba(255,255,255,.085);
  border-radius:16px;
  background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.018));
}
.hybrid-album-track.is-playing { border-color:rgba(244,202,123,.29); box-shadow:inset 3px 0 0 var(--gold); }
.hybrid-album-track .track-num { color:var(--gold); font-family:ui-serif,Georgia,serif; font-size:18px; text-align:center; }
.hybrid-album-track .play-round { width:40px; height:40px; }
.hybrid-album-track .track-main { min-width:0; }
.hybrid-album-track .track-copy { display:flex; gap:7px; align-items:baseline; min-width:0; margin-bottom:5px; }
.hybrid-album-track .track-copy strong { font-size:11px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.hybrid-album-track .track-copy .version { color:var(--muted); font-size:8px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.hybrid-album-track .waveform { height:31px; }
.hybrid-album-track .track-actions { display:flex; gap:3px; align-items:center; }
.hybrid-album-track .mini-action, .hybrid-album-track .drag-handle { position:relative; width:32px; height:34px; border:0; border-radius:10px; background:transparent; color:var(--muted); cursor:pointer; }
.hybrid-album-track .mini-action.on { color:var(--gold); background:rgba(244,202,123,.07); }
.hybrid-album-track .track-subrow { grid-column:3 / -1; display:flex; gap:4px; flex-wrap:wrap; margin-top:-4px; }
.comment-badge { position:absolute; top:1px; right:0; min-width:14px; height:14px; display:grid; place-items:center; border-radius:999px; background:var(--gold); color:#24112f; font-size:7px; font-weight:900; }

/* Compartilhamento próprio antes do menu nativo */
.share-actions-panel { display:grid; grid-template-columns:1fr; gap:9px; }
.share-action {
  min-height:72px;
  border-radius:17px;
  border:1px solid var(--line);
  padding:12px 14px;
  text-align:left;
  color:var(--text);
  background:rgba(255,255,255,.045);
  cursor:pointer;
}
.share-action strong { display:block; font-size:14px; }
.share-action small { display:block; color:var(--muted); margin-top:4px; line-height:1.35; }
.share-action.whatsapp { border-color:rgba(120,214,161,.28); background:rgba(120,214,161,.075); }
.fine-print { color:var(--faint); font-size:9px; line-height:1.45; }

/* Player soberano: sempre acima de sheets e conteúdo. */
.player-dock {
  z-index: 110;
  bottom: calc(10px + var(--safe-bottom));
  height: auto;
  min-height: 82px;
  padding: 10px 43px 10px 10px;
  max-width: 930px;
}
.player-grid { grid-template-columns:46px minmax(0,1fr) auto; min-height:62px; }
.player-title .player-progress { margin-top:7px; height:26px; }
.player-title .player-progress::before { inset:3px 5px; }
.player-controls button { width:36px; height:38px; font-size:10px; }
.player-close {
  position:absolute;
  top:7px;
  right:7px;
  z-index:2;
  width:31px;
  height:31px;
  border-radius:10px;
  border:1px solid var(--line);
  color:var(--text);
  background:rgba(9,5,13,.48);
  cursor:pointer;
  font-size:18px;
}
.sheet-backdrop { z-index:70; }
.sheet { z-index:71; }
.toast-root { z-index:130; bottom:calc(104px + var(--safe-bottom)); }

@media (min-width:720px) {
  .album-start-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .reference-grid { grid-template-columns:minmax(0, .86fr) minmax(0, 1.14fr); }
  .reference-side { padding:16px; }
  .music-family-head { padding-left:16px; padding-right:16px; }
  .candidate-version { padding-left:15px; padding-right:15px; }
  .share-actions-panel { grid-template-columns:1.15fr 1fr 1fr; }
}

@media (min-width:1040px) {
  .bottom-nav {
    left:auto;
    right:auto;
    transform:none;
    width:min(620px,calc(100% - 40px));
    bottom:auto;
    height:var(--hybrid-nav-h);
    padding:5px;
    border-radius:18px;
  }
  .player-dock { bottom:18px; }
  .main-content { padding-bottom:150px; }
}

@media (max-width:719px) {
  :root { --hybrid-gap:16px; --hybrid-main-wave:42px; --hybrid-variation-wave:25px; }
  .topbar { padding-bottom:7px; }
  .bottom-nav { top:calc(62px + var(--safe-top)); width:calc(100% - 20px); margin-bottom:10px; }
  .nav-item { font-size:10px; }
  .music-family { border-radius:18px; }
  .music-family-head { min-height:49px; padding:10px 12px 8px; }
  .music-family-head h3 { font-size:15px; }
  .candidate-version { min-height:78px; grid-template-columns:43px minmax(0,1fr) 39px; gap:8px; padding:8px 10px 10px; }
  .candidate-version .play-round { width:41px; height:41px; }
  .candidate-version .add-candidate { width:38px; height:38px; }
  .candidate-title-line strong { font-size:10px; }
  .candidate-title-line > span:not(.micro-warning) { display:none; }
  .variation-toggle { min-height:38px; padding:0 12px; }
  .candidate-version.is-variation { min-height:59px; grid-template-columns:35px minmax(0,1fr) 35px; padding:5px 7px; }
  .candidate-version.is-variation .play-round, .candidate-version.is-variation .add-candidate { width:33px; height:33px; }
  .hybrid-album-track { grid-template-columns:28px 39px minmax(0,1fr); padding:8px; }
  .hybrid-album-track .track-actions { grid-column:3; justify-content:flex-end; margin-top:2px; }
  .hybrid-album-track .track-subrow { grid-column:3; }
  .player-dock { left:7px; right:7px; padding-right:39px; }
  .player-grid { grid-template-columns:42px minmax(0,1fr); gap:8px; }
  .player-controls { grid-column:1 / -1; justify-content:space-between; border-top:1px solid rgba(255,255,255,.055); padding-top:5px; }
  .player-dock { min-height:112px; }
  .toast-root { bottom:calc(132px + var(--safe-bottom)); }
}

/* =========================================================
   HML 1.1 HYBRID · COMPACT V3 APROVADO
   Proporcoes aprovadas em 12/08/2026 antes do deploy.
   Reduz altura sem voltar ao aspecto esmagado da HML 2.5.
   ========================================================= */
:root {
  --hybrid-gap: 13px;
  --hybrid-main-wave: 27px;
  --hybrid-variation-wave: 12px;
}
.music-family {
  border-radius: 15px;
  box-shadow: 0 8px 22px rgba(0,0,0,.15);
}
.music-family-head {
  min-height: 35px;
  padding: 6px 10px 5px;
  gap: 8px;
  align-items: center;
}
.music-family-head .eyebrow {
  display:inline;
  margin:0 6px 0 0;
  font-size: 6.5px;
  letter-spacing:.12em;
}
.music-family-head h3 {
  display:inline;
  font-size: 13.5px;
  line-height: 1.08;
}
.music-family-head p:not(.eyebrow) {
  margin: 2px 0 0;
  font-size: 7.5px;
}
.music-family-head .status-badge {
  min-height: 20px;
  padding: 0 7px;
  font-size: 6.8px;
}
.candidate-version {
  min-height: 46px;
  grid-template-columns: 29px minmax(0,1fr) 29px;
  gap: 6px;
  padding: 4px 8px 5px;
}
.candidate-title-line {
  min-height: 9px;
  gap: 4px;
  margin-bottom: 2px;
}
.candidate-title-line strong { font-size: 8.2px; }
.candidate-title-line > span:not(.micro-warning) { font-size: 5.7px; }
.play-round,
.candidate-version .add-candidate {
  width: 27px;
  height: 27px;
  font-size: 8px;
  border-radius: 9px;
}
.play-round { border-radius:50%; }
.waveform { border-radius: 7px; }
.waveform::before { inset: 3px 5px; }
.variation-toggle {
  min-height: 24px;
  padding: 0 9px;
  background:linear-gradient(90deg,rgba(164,106,199,.18),rgba(244,202,123,.06));
}
.variation-toggle strong { font-size: 7.7px; }
.variation-stack {
  gap: 4px;
  padding: 5px 6px 6px;
  background:rgba(8,4,12,.34);
}
.candidate-version.is-variation {
  min-height: 37px;
  grid-template-columns: 24px minmax(0,1fr) 24px;
  gap: 5px;
  padding: 3px 6px;
  border-radius: 9px;
  border-left-width: 3px;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.025);
}
.candidate-version.is-variation .play-round,
.candidate-version.is-variation .add-candidate {
  width: 22px;
  height: 22px;
  font-size: 7px;
  border-radius: 7px;
}
.candidate-version.is-variation .play-round { border-radius:50%; }
.candidate-version.is-variation .candidate-title-line {
  margin-bottom: 1px;
  min-height: 8px;
}
.candidate-version.is-variation .candidate-title-line strong { font-size: 7.4px; }
.candidate-version.is-variation .candidate-title-line > span:not(.micro-warning) { font-size: 5.4px; }
.candidate-version.is-variation .waveform {
  height: var(--hybrid-variation-wave);
  border-radius: 5px;
  background: rgba(5,3,7,.20);
}
.candidate-version.is-variation .waveform::before { inset: 1px 3px; opacity:.84; }

/* Cores deliberadamente mais distintas entre as variacoes. */
.variation-tone-1 {
  background: linear-gradient(90deg, rgba(116,73,158,.52), rgba(66,39,91,.40));
  border-color: rgba(192,145,235,.32) !important;
  border-left-color: #c090eb !important;
}
.variation-tone-2 {
  background: linear-gradient(90deg, rgba(154,109,45,.46), rgba(90,62,25,.36));
  border-color: rgba(235,186,102,.30) !important;
  border-left-color: #e7b666 !important;
}
.variation-tone-3 {
  background: linear-gradient(90deg, rgba(139,55,87,.50), rgba(79,31,51,.38));
  border-color: rgba(225,119,154,.28) !important;
  border-left-color: #df7799 !important;
}
.variation-tone-4 {
  background: linear-gradient(90deg, rgba(49,79,127,.52), rgba(28,45,76,.40));
  border-color: rgba(112,157,220,.30) !important;
  border-left-color: #78a5e2 !important;
}

@media (max-width:719px) {
  :root {
    --hybrid-gap: 11px;
    --hybrid-main-wave: 25px;
    --hybrid-variation-wave: 11px;
  }
  .music-family-head { min-height: 33px; padding: 5px 8px 4px; }
  .music-family-head h3 { font-size: 12.5px; }
  .candidate-version {
    min-height: 43px;
    grid-template-columns: 27px minmax(0,1fr) 27px;
    padding: 3px 7px 4px;
  }
  .play-round, .candidate-version .add-candidate { width:25px; height:25px; }
  .variation-toggle { min-height: 23px; padding:0 8px; }
  .candidate-version.is-variation {
    min-height: 35px;
    grid-template-columns: 23px minmax(0,1fr) 23px;
    padding: 3px 5px;
  }
  .candidate-version.is-variation .play-round,
  .candidate-version.is-variation .add-candidate { width:21px; height:21px; }
}

/* =========================================================
   HML 1.1 HYBRID V4 CLEAN
   Ajuste final de respiro, selecao de album, player e share.
   ========================================================= */

/* Albuns: cada opcao fica independente e a selecionada passa a verde. */
.album-switcher { gap:12px; padding:4px 3px 12px; }
.album-pill-wrap {
  position:relative;
  flex:0 0 220px;
  min-width:220px;
  scroll-snap-align:start;
}
.album-pill-wrap .hybrid-album-pill {
  width:100%;
  min-width:0;
  max-width:none;
  padding-right:72px;
}
.hybrid-album-pill.active {
  border-color:rgba(120,214,161,.68) !important;
  background:linear-gradient(145deg,rgba(52,108,76,.58),rgba(25,49,37,.93)) !important;
  box-shadow:inset 4px 0 0 #78d6a1,0 14px 32px rgba(0,0,0,.25) !important;
}
.hybrid-album-pill.active .album-pill-option { color:#a5f2c2; }
.album-selected-flag {
  display:block;
  width:max-content;
  margin:0 0 5px;
  color:#9ce9b9;
  font-size:7px;
  line-height:1;
  font-weight:900;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.album-delete {
  position:absolute;
  top:9px;
  right:9px;
  z-index:3;
  width:auto;
  min-width:54px;
  height:26px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.11);
  border-radius:10px;
  background:rgba(17,8,22,.58);
  color:rgba(255,255,255,.66);
  cursor:pointer;
  padding:0 8px;
  font-size:8px;
  font-weight:800;
  letter-spacing:.04em;
  transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease;
}
.album-delete:hover,
.album-delete:focus-visible {
  color:#ffd6db;
  background:rgba(149,55,72,.28);
  border-color:rgba(236,125,143,.38);
  transform:translateY(-1px);
}
.album-pill-wrap.active .album-delete {
  border-color:rgba(120,214,161,.22);
  background:rgba(12,37,25,.58);
}

/* Cards musicais: um pouco mais de respiro que o V3, sem voltar aos cards altos. */
:root {
  --hybrid-gap:14px;
  --hybrid-main-wave:30px;
  --hybrid-variation-wave:14px;
}
.music-family-list { gap:var(--hybrid-gap); }
.music-family-head {
  min-height:40px;
  padding:7px 12px 6px;
  gap:9px;
}
.music-family-head .eyebrow { font-size:7px; }
.music-family-head h3 { font-size:14.5px; line-height:1.12; }
.music-family-head p:not(.eyebrow) { margin-top:3px; font-size:8px; }
.music-family-head .status-badge { min-height:22px; padding:0 8px; font-size:7px; }
.candidate-version {
  min-height:53px;
  grid-template-columns:34px minmax(0,1fr) 34px;
  gap:8px;
  padding:6px 10px 7px;
}
.candidate-title-line { min-height:11px; margin-bottom:3px; gap:5px; }
.candidate-title-line strong { font-size:9px; }
.candidate-title-line > span:not(.micro-warning) { font-size:6px; }
.candidate-version .play-round,
.candidate-version .add-candidate {
  width:32px;
  height:32px;
  font-size:9px;
  border-radius:10px;
}
.candidate-version .play-round { border-radius:50%; }
.variation-toggle { min-height:28px; padding:0 11px; }
.variation-toggle strong { font-size:8.2px; }
.variation-stack { gap:5px; padding:6px 7px 7px; }
.candidate-version.is-variation {
  min-height:42px;
  grid-template-columns:28px minmax(0,1fr) 28px;
  gap:6px;
  padding:4px 7px;
  border-radius:10px;
}
.candidate-version.is-variation .play-round,
.candidate-version.is-variation .add-candidate {
  width:26px;
  height:26px;
  font-size:8px;
}
.candidate-version.is-variation .candidate-title-line strong { font-size:8px; }

/* Faixas ja escolhidas no album: melhora leitura e toque sem inflar o conjunto. */
.track-list { gap:12px; }
.hybrid-album-track {
  min-height:94px;
  grid-template-columns:36px 48px minmax(0,1fr) auto;
  gap:11px;
  padding:11px 12px;
  border-radius:17px;
}
.hybrid-album-track .track-num { font-size:19px; }
.hybrid-album-track .play-round { width:44px; height:44px; font-size:11px; }
.hybrid-album-track .track-copy { gap:8px; margin-bottom:7px; }
.hybrid-album-track .track-copy strong { font-size:12px; }
.hybrid-album-track .track-copy .version { font-size:8.5px; }
.hybrid-album-track .waveform { height:34px; }
.hybrid-album-track .track-actions { gap:5px; }
.hybrid-album-track .mini-action,
.hybrid-album-track .drag-handle { width:36px; height:38px; border-radius:11px; }
.hybrid-album-track .track-subrow { gap:5px; margin-top:-1px; }

/* Player continua soberano, com controles maiores. */
.player-dock {
  z-index:110;
  min-height:94px;
  max-width:980px;
  padding:12px 50px 12px 12px;
  border-radius:21px;
}
.player-grid { grid-template-columns:56px minmax(0,1fr) auto; gap:12px; min-height:68px; }
.player-grid > .play-round { width:52px; height:52px; font-size:13px; }
.player-title strong { font-size:13px; }
.player-title small { font-size:9.5px; margin-top:4px; }
.player-title .player-progress { height:30px; margin-top:8px; }
.player-controls { gap:4px; }
.player-controls button {
  width:44px;
  height:44px;
  border-radius:12px;
  font-size:11px;
  background:rgba(255,255,255,.035);
}
.player-controls button:hover,
.player-controls button:focus-visible { background:rgba(255,255,255,.08); }
.player-close { width:35px; height:35px; top:8px; right:8px; border-radius:11px; }
.main-content { padding-bottom:calc(165px + var(--safe-bottom)); }
.toast-root { bottom:calc(120px + var(--safe-bottom)); }

/* O unico momento em que o player cede a soberania: compartilhamento. */
body.share-sheet-open .player-dock {
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(18px);
}
body.share-sheet-open .sheet-backdrop { z-index:140; background:rgba(5,3,7,.76); }
body.share-sheet-open .sheet {
  z-index:141;
  bottom:calc(18px + var(--safe-bottom));
  border-radius:24px;
  border-bottom:1px solid rgba(255,255,255,.13);
  width:min(760px,calc(100vw - 28px));
  max-height:calc(100vh - 46px - var(--safe-top) - var(--safe-bottom));
}
body.share-sheet-open .sheet-body { padding-bottom:22px; }
body.share-sheet-open .share-actions-panel { gap:12px; }
body.share-sheet-open .share-action { min-height:82px; padding:14px 16px; }
body.share-sheet-open .share-action strong { font-size:15px; }
body.share-sheet-open .share-action small { font-size:10px; }

@media (max-width:719px) {
  :root {
    --hybrid-gap:12px;
    --hybrid-main-wave:28px;
    --hybrid-variation-wave:13px;
  }
  .album-pill-wrap { flex-basis:196px; min-width:196px; }
  .hybrid-album-pill { min-height:90px; }
  .music-family-head { min-height:37px; padding:6px 9px 5px; }
  .music-family-head h3 { font-size:13.2px; }
  .candidate-version {
    min-height:49px;
    grid-template-columns:31px minmax(0,1fr) 31px;
    gap:7px;
    padding:5px 8px 6px;
  }
  .candidate-version .play-round,
  .candidate-version .add-candidate { width:29px; height:29px; }
  .variation-toggle { min-height:26px; padding:0 9px; }
  .candidate-version.is-variation {
    min-height:39px;
    grid-template-columns:26px minmax(0,1fr) 26px;
    padding:4px 6px;
  }
  .candidate-version.is-variation .play-round,
  .candidate-version.is-variation .add-candidate { width:24px; height:24px; }

  .hybrid-album-track {
    min-height:88px;
    grid-template-columns:30px 43px minmax(0,1fr);
    gap:9px;
    padding:10px;
  }
  .hybrid-album-track .play-round { width:40px; height:40px; }
  .hybrid-album-track .waveform { height:31px; }
  .hybrid-album-track .track-actions { grid-column:3; gap:4px; margin-top:4px; }
  .hybrid-album-track .track-subrow { grid-column:3; margin-top:1px; }

  .player-dock { min-height:126px; padding:10px 44px 10px 10px; }
  .player-grid { grid-template-columns:50px minmax(0,1fr); gap:9px; }
  .player-grid > .play-round { width:47px; height:47px; }
  .player-title .player-progress { height:28px; }
  .player-controls { grid-column:1 / -1; gap:5px; padding-top:7px; }
  .player-controls button { width:42px; height:42px; }
  .main-content { padding-bottom:calc(188px + var(--safe-bottom)); }
  .toast-root { bottom:calc(145px + var(--safe-bottom)); }

  body.share-sheet-open .sheet {
    left:10px;
    right:10px;
    width:auto;
    transform:none;
    bottom:calc(10px + var(--safe-bottom));
    max-height:calc(100vh - 22px - var(--safe-top) - var(--safe-bottom));
  }
}


/* HML 1.1 Hybrid V4.2 - player estavel, maior area de toque e waveform preciso */
.player-dock {
  min-height:128px;
  max-width:1260px;
  padding:15px 56px 15px 15px;
  border-radius:25px;
}
.player-grid {
  grid-template-columns:72px minmax(0,1fr);
  gap:16px;
  min-height:96px;
  align-items:center;
}
.player-grid > .player-main-toggle {
  width:66px;
  height:66px;
  border-radius:50%;
  font-size:18px;
  border:1px solid rgba(217,177,239,.38);
  background:linear-gradient(160deg,rgba(192,134,224,.25),rgba(255,255,255,.045));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.09),0 9px 28px rgba(0,0,0,.22);
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}
.player-title { min-width:0; }
.player-head-row { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:16px; }
.player-copy { display:flex; align-items:baseline; gap:10px; min-width:0; }
.player-copy strong { font-size:15px; flex:0 1 auto; }
.player-copy small { font-size:10px; margin-top:0; flex:1; min-width:0; }
.player-title .player-progress {
  height:60px;
  margin-top:10px;
  border-radius:15px;
  cursor:pointer;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}
.player-title .player-progress::before { inset:6px 8px; }
.player-title .player-progress .wave-cursor { width:2px; }
.player-controls { gap:8px; display:flex; align-items:center; }
.player-controls button {
  width:54px;
  height:54px;
  border-radius:15px;
  font-size:20px;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.075);
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}
.player-controls button:hover, .player-grid > .player-main-toggle:hover { background:rgba(216,169,239,.13); border-color:rgba(216,169,239,.24); }
.player-controls .player-comment-control { font-size:16px; }
.player-close { width:40px; height:40px; top:10px; right:10px; border-radius:12px; touch-action:manipulation; }
.main-content { padding-bottom:calc(198px + var(--safe-bottom)); }
.toast-root { bottom:calc(152px + var(--safe-bottom)); }

body.player-yield-sheet .player-dock {
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(22px);
}
body.player-yield-sheet .sheet-backdrop { z-index:140; }
body.player-yield-sheet .sheet { z-index:141; }

@media (max-width:719px) {
  .player-dock { min-height:158px; padding:12px 48px 12px 12px; }
  .player-grid { grid-template-columns:60px minmax(0,1fr); gap:11px; min-height:132px; }
  .player-grid > .player-main-toggle { width:58px; height:58px; font-size:16px; }
  .player-head-row { grid-template-columns:minmax(0,1fr) auto; gap:8px; }
  .player-copy { display:block; }
  .player-copy strong { display:block; font-size:13px; }
  .player-copy small { display:block; margin-top:3px; font-size:9.5px; }
  .player-title .player-progress { height:54px; margin-top:8px; border-radius:13px; }
  .player-controls { gap:5px; }
  .player-controls button { width:44px; height:44px; border-radius:13px; font-size:18px; }
  .player-controls .player-comment-control { font-size:14px; }
  .main-content { padding-bottom:calc(220px + var(--safe-bottom)); }
  .toast-root { bottom:calc(176px + var(--safe-bottom)); }
}

/* HML 1.1 Hybrid V4.3: destino explicito ao adicionar faixas */
.album-target-note {
  margin:0 0 12px;
  padding:11px 12px;
  border:1px solid rgba(255,255,255,.09);
  border-radius:14px;
  background:rgba(255,255,255,.035);
  color:var(--muted);
  font-size:11px;
  line-height:1.45;
}
.album-target-list {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.album-target-card {
  position:relative;
  min-height:112px;
  padding:14px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:5px;
  text-align:left;
  border:1px solid rgba(255,255,255,.12);
  border-radius:17px;
  background:linear-gradient(145deg,rgba(255,255,255,.065),rgba(255,255,255,.025));
  color:var(--text);
  cursor:pointer;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
  transition:border-color .15s ease, background .15s ease, transform .15s ease;
}
.album-target-card:hover,
.album-target-card:focus-visible {
  border-color:rgba(216,169,239,.45);
  background:linear-gradient(145deg,rgba(216,169,239,.12),rgba(255,255,255,.035));
  outline:none;
}
.album-target-card:active { transform:scale(.99); }
.album-target-card.selected {
  border-color:rgba(105,224,155,.62);
  background:linear-gradient(145deg,rgba(64,142,94,.22),rgba(255,255,255,.035));
  box-shadow:inset 0 0 0 1px rgba(105,224,155,.08);
}
.album-target-card.already,
.album-target-card:disabled {
  opacity:.56;
  cursor:default;
  transform:none;
}
.album-target-option {
  color:var(--gold);
  font-size:10px;
  font-weight:800;
  letter-spacing:.14em;
}
.album-target-current {
  position:absolute;
  top:11px;
  right:11px;
  padding:4px 7px;
  border:1px solid rgba(105,224,155,.35);
  border-radius:999px;
  color:#87eeb2;
  background:rgba(45,104,68,.22);
  font-size:8px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.album-target-card strong {
  display:block;
  max-width:100%;
  padding-right:2px;
  font-size:13px;
  line-height:1.25;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.album-target-card small { color:var(--muted); font-size:9.5px; }
.album-target-action {
  margin-top:auto;
  color:var(--lavender);
  font-size:10px;
  font-weight:750;
}
.album-target-card.selected .album-target-action { color:#87eeb2; }
.add-candidate.on:not(:disabled) {
  cursor:pointer;
}

@media (max-width:719px) {
  .album-target-list { grid-template-columns:1fr; gap:8px; }
  .album-target-card { min-height:92px; padding:12px 13px; }
  .album-target-card strong { font-size:12.5px; padding-right:84px; }
}


/* HML 1.1 Hybrid V4.4 - acabamento final de navegacao */
.brand-home {
  display:block; padding:0; border:0; background:transparent; cursor:pointer;
  appearance:none; -webkit-appearance:none; touch-action:manipulation;
}
.brand-home:focus-visible { outline:2px solid rgba(216,169,239,.82); outline-offset:3px; }
.player-controls .player-add-control {
  color:#8fe9b4; font-size:24px; font-weight:700;
  border-color:rgba(105,224,155,.22); background:rgba(105,224,155,.055);
}
.player-controls .player-add-control:hover,
.player-controls .player-add-control:focus-visible {
  color:#b4f6cf; background:rgba(105,224,155,.13); border-color:rgba(105,224,155,.38);
}
.player-controls .player-add-control[hidden] { display:none !important; }

/* HML 1.1 Hybrid V4.5 - edicao direta do album */
.album-summary-direct { align-items:flex-start; gap:18px; }
.album-summary-edit { min-width:0; flex:1; }
.album-name-direct {
  display:block; width:min(760px,100%); margin:2px 0 6px; padding:3px 7px 5px;
  border:1px solid transparent; border-radius:9px; background:transparent; color:var(--text);
  font:700 clamp(25px,3vw,40px)/1.05 ui-serif,Georgia,serif; letter-spacing:-.02em;
  outline:none; transition:.16s ease; text-overflow:ellipsis;
}
.album-name-direct:hover { background:rgba(255,255,255,.035); border-color:rgba(255,255,255,.07); }
.album-name-direct:focus { background:rgba(216,169,239,.07); border-color:rgba(216,169,239,.34); box-shadow:0 0 0 3px rgba(216,169,239,.06); }
.album-direct-meta { display:flex; align-items:center; flex-wrap:wrap; gap:10px; color:var(--muted); font-size:11px; }
.album-status-direct-label { display:inline-flex; align-items:center; gap:6px; color:var(--muted); }
.album-status-direct {
  min-height:30px; padding:4px 28px 4px 9px; border:1px solid rgba(255,255,255,.10); border-radius:9px;
  background:rgba(255,255,255,.035); color:var(--text); font:inherit; cursor:pointer;
}
.album-save-btn { border-color:rgba(105,224,155,.32); color:#9bf0bd; background:rgba(105,224,155,.07); }
.album-save-btn.is-dirty { background:linear-gradient(135deg,rgba(105,224,155,.22),rgba(216,169,239,.10)); border-color:rgba(105,224,155,.55); color:#c8f8da; box-shadow:0 0 0 1px rgba(105,224,155,.08) inset; }
.album-save-btn:disabled { opacity:.34; cursor:not-allowed; filter:saturate(.55); box-shadow:none; }
.track-copy-edit { align-items:center !important; }
.album-track-title-direct {
  min-width:120px; max-width:460px; width:min(46vw,460px); padding:3px 6px; margin:-3px 0;
  border:1px solid transparent; border-radius:7px; background:transparent; color:var(--text);
  font:700 12px/1.2 inherit; outline:none; transition:.15s ease;
}
.album-track-title-direct:hover { border-color:rgba(255,255,255,.08); background:rgba(255,255,255,.025); }
.album-track-title-direct:focus { border-color:rgba(216,169,239,.34); background:rgba(216,169,239,.065); box-shadow:0 0 0 2px rgba(216,169,239,.05); }
.position-jump { display:inline-flex; align-items:center; gap:4px; height:38px; padding:0 7px; border:1px solid rgba(255,255,255,.08); border-radius:11px; background:rgba(255,255,255,.025); color:var(--muted); }
.position-jump span { font-size:8px; text-transform:uppercase; letter-spacing:.07em; }
.position-jump select { width:45px; border:0; outline:none; background:transparent; color:var(--text); font:700 10px inherit; cursor:pointer; }
.remove-track-direct { color:#e89aa9 !important; border:1px solid rgba(232,154,169,.10) !important; }
.remove-track-direct:hover,.remove-track-direct:focus-visible { color:#ffd0d8 !important; background:rgba(184,72,92,.13) !important; border-color:rgba(232,154,169,.28) !important; }
.album-target-title-field { margin:14px 0 16px; }
.album-target-title-field small { display:block; color:var(--muted); margin-top:6px; font-size:9.5px; }

@media (max-width:719px) {
  .album-name-direct { font-size:28px; padding-left:4px; }
  .album-direct-meta { align-items:flex-start; flex-direction:column; gap:7px; }
  .hybrid-album-track { grid-template-columns:28px 39px minmax(0,1fr); }
  .hybrid-album-track .track-actions { grid-column:2 / -1; justify-content:flex-end; flex-wrap:wrap; margin-top:6px; }
  .hybrid-album-track .track-subrow { grid-column:3; }
  .track-copy-edit { display:block !important; }
  .album-track-title-direct { display:block; width:100%; max-width:none; font-size:11px; margin-bottom:5px; }
  .track-copy-edit .version { display:block; }
  .position-jump { height:36px; }
}


/* =========================================================
   HML 1.1 HYBRID V4.6
   Cartoes de album limpos + nomes editaveis nas propostas IA.
   ========================================================= */
.album-pill-wrap {
  flex-basis:248px;
  min-width:248px;
}
.album-pill-wrap .hybrid-album-pill {
  min-height:112px;
  padding:12px 72px 38px 14px;
}
.hybrid-album-pill strong {
  display:block;
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
  overflow-wrap:anywhere;
  line-height:1.22;
  font-size:14px;
  margin-top:3px;
}
.album-created {
  display:block;
  margin-top:7px !important;
  color:rgba(255,255,255,.48) !important;
  font-size:8px !important;
  letter-spacing:.02em;
}
.album-pill-rating {
  position:absolute;
  left:14px;
  bottom:10px;
  z-index:5;
}
.album-pill-rating .album-stars {
  margin:0;
  gap:2px;
}
.album-pill-rating .album-stars.interactive button {
  font-size:16px;
  line-height:1;
  min-width:18px;
  min-height:22px;
  padding:2px;
  border-radius:5px;
}
.album-pill-rating .album-stars.interactive button:hover,
.album-pill-rating .album-stars.interactive button:focus-visible {
  background:rgba(255,255,255,.07);
}
.album-created-direct {
  color:var(--faint);
  font-size:9px;
  margin-left:8px;
}
.album-summary-direct .album-direct-meta {
  display:flex;
  flex-wrap:wrap;
  gap:4px 8px;
  align-items:center;
}
.ai-proposal-title-field {
  margin:2px 0 10px;
}
.ai-proposal-title-input {
  font-family:ui-serif,Georgia,serif;
  font-size:18px;
  font-weight:750;
  min-height:48px;
}
.ai-track-list {
  display:grid;
  gap:4px;
}
.ai-track {
  grid-template-columns:28px minmax(0,1fr);
  align-items:start;
  padding:10px 0;
}
.ai-track-editor label {
  display:block;
  color:var(--faint);
  font-size:8px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.ai-track-title-input {
  width:100%;
  min-height:38px;
  margin:4px 0 4px;
  padding:8px 10px;
  font-size:11px;
  text-transform:none;
  letter-spacing:0;
  font-weight:700;
}
.ai-track-editor small strong {
  display:inline;
  font-size:inherit;
}
@media (max-width:719px) {
  .album-pill-wrap { flex-basis:222px; min-width:222px; }
  .album-pill-wrap .hybrid-album-pill { min-height:108px; }
  .hybrid-album-pill strong { font-size:13px; }
  .ai-proposal-title-input { font-size:16px; }
}

/* =========================================================
   HML 1.1 HYBRID V4.7
   Arquitetura do album: nomes tecnicos, IA contextual,
   controles compactos, salvamento protegido e filtros reais.
   ========================================================= */
.album-summary-direct {
  position: relative;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 18px;
}
.album-summary-actions {
  display:flex;
  align-items:flex-start;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
.album-save-top {
  min-height:42px;
  padding:0 15px;
  border-radius:13px;
  white-space:nowrap;
}
.album-name-direct {
  display:block;
  width:100%;
  max-width:none;
  min-height:52px;
  height:auto;
  resize:none;
  overflow:hidden;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  word-break:break-word;
  line-height:1.05;
  font-family:ui-serif,Georgia,serif;
  font-size:clamp(29px,4.3vw,48px);
  font-weight:600;
  padding:2px 4px 6px;
}
.album-toolbar-compact {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:2px 0 12px;
}
.album-toolbar-icons {
  display:flex;
  align-items:center;
  gap:7px;
}
.album-tool-circle {
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.10);
  border-radius:50%;
  background:rgba(255,255,255,.035);
  color:var(--text);
  cursor:pointer;
  transition:transform .15s ease,background .15s ease,border-color .15s ease,color .15s ease;
}
.album-tool-circle:hover,.album-tool-circle:focus-visible {
  transform:translateY(-1px);
  background:rgba(255,255,255,.075);
  border-color:rgba(216,169,239,.30);
}
.album-tool-circle.play { color:var(--gold); }
.album-tool-circle.ai {
  color:#f5d9ff;
  border-color:rgba(216,169,239,.32);
  background:radial-gradient(circle at 35% 28%,rgba(240,198,255,.22),rgba(96,48,116,.35));
  font-weight:900;
  font-family:ui-serif,Georgia,serif;
  font-size:18px;
}
.album-tool-circle.ai span,.ai-mini-orb { transform:translateY(-.5px); }
.album-tool-circle.whatsapp { color:#9ce9b9; border-color:rgba(107,214,153,.28); }
.album-tool-circle.whatsapp svg { width:19px;height:19px;display:block; }

/* Cartoes de album: nome sempre inteiro, estrelas dentro do cartao e play direto. */
.album-pill-wrap {
  flex:0 0 270px;
  min-width:270px;
  min-height:142px;
}
.album-pill-wrap .hybrid-album-pill {
  min-height:142px;
  height:100%;
  padding:14px 84px 46px 15px;
  overflow:visible;
}
.hybrid-album-pill strong {
  white-space:normal !important;
  overflow:visible !important;
  text-overflow:clip !important;
  overflow-wrap:anywhere;
  word-break:normal;
  line-height:1.18;
  max-height:none;
}
.album-pill-rating {
  left:15px;
  bottom:13px;
  z-index:6;
  height:25px;
  display:flex;
  align-items:center;
}
.album-pill-rating .album-stars { align-items:center; min-height:25px; }
.album-pill-rating .album-stars.interactive button {
  display:grid;
  place-items:center;
  width:22px;
  min-width:22px;
  height:25px;
  min-height:25px;
  line-height:1;
  padding:0;
}
.album-card-play {
  position:absolute;
  right:15px;
  bottom:14px;
  z-index:7;
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border:1px solid color-mix(in srgb,var(--album-accent) 42%,rgba(255,255,255,.12));
  border-radius:50%;
  background:rgba(14,8,19,.54);
  color:var(--album-accent,var(--gold));
  cursor:pointer;
}
.album-card-play:disabled { opacity:.28;cursor:not-allowed; }
.album-card-play:not(:disabled):hover,.album-card-play:not(:disabled):focus-visible { background:rgba(255,255,255,.09);transform:scale(1.04); }
.album-delete { top:11px;right:11px; }

/* Faixa: referencia tecnica jamais desaparece. */
.track-copy-edit { margin-bottom:3px !important; }
.album-track-title-direct {
  max-width:none;
  width:100%;
  font-size:13px;
}
.track-technical {
  display:flex;
  align-items:baseline;
  gap:7px;
  min-width:0;
  margin:0 0 6px;
  color:var(--muted);
  line-height:1.25;
}
.track-technical span {
  flex:0 0 auto;
  color:rgba(255,255,255,.38);
  font-size:7px;
  font-weight:850;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.track-technical strong {
  min-width:0;
  font-size:9px;
  font-weight:650;
  color:rgba(255,255,255,.68);
  white-space:normal;
  overflow-wrap:anywhere;
}
.track-technical em {
  flex:0 0 auto;
  color:rgba(255,255,255,.35);
  font-size:8px;
  font-style:normal;
}

/* Tags agora sao filtros reais; duplicatas foram removidas no renderer. */
.album-tag {
  appearance:none;
  cursor:pointer;
  transition:background .14s ease,border-color .14s ease,color .14s ease,opacity .14s ease;
}
.album-tag:hover,.album-tag:focus-visible,.album-tag.active {
  color:#f7e6ff;
  background:rgba(181,126,220,.16);
  border-color:rgba(216,169,239,.30);
}
.track-list.has-tag-filter .hybrid-album-track.tag-muted { opacity:.22;filter:saturate(.55); }
.track-list.has-tag-filter .hybrid-album-track.tag-match {
  border-color:rgba(216,169,239,.30);
  box-shadow:0 0 0 1px rgba(216,169,239,.06) inset,0 10px 28px rgba(0,0,0,.12);
}
.album-tag-filter-status {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:-2px 0 10px;
  padding:7px 10px;
  border-radius:10px;
  background:rgba(216,169,239,.07);
  color:var(--muted);
  font-size:9px;
}
.album-tag-filter-status button { border:0;background:transparent;color:var(--lavender);cursor:pointer;font-weight:800; }

/* IA contextual daquele album. */
.ai-refine-hero {
  display:flex;
  gap:12px;
  align-items:flex-start;
}
.ai-orb,.ai-mini-orb {
  display:inline-grid;
  place-items:center;
  width:38px;
  height:38px;
  flex:0 0 38px;
  border-radius:50%;
  background:radial-gradient(circle at 32% 28%,#f0c8ff 0,#c789df 36%,#5e326e 100%);
  color:#1f1028;
  font:900 19px/1 ui-serif,Georgia,serif;
  box-shadow:0 8px 22px rgba(123,64,146,.26);
}
.ai-mini-orb { width:24px;height:24px;font-size:13px;box-shadow:none; }
.ai-refine-submit { display:flex;align-items:center;justify-content:center;gap:8px; }
.ai-current-album-name {
  font:600 clamp(24px,4vw,36px)/1.08 ui-serif,Georgia,serif;
  overflow-wrap:anywhere;
  margin:4px 0 10px;
}
.ai-safe-note {
  margin:10px 0;
  padding:8px 10px;
  border:1px solid rgba(105,224,155,.18);
  border-radius:10px;
  background:rgba(105,224,155,.055);
  color:#9ce9b9;
  font-size:9px;
}
.ai-track-flags { min-height:18px;margin-bottom:3px; }
.ai-track-flags span {
  display:inline-flex;
  align-items:center;
  min-height:18px;
  padding:0 6px;
  border-radius:999px;
  background:rgba(216,169,239,.07);
  color:var(--muted);
  font-size:7px;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.ai-track.new-to-album .ai-track-flags span { background:rgba(105,224,155,.07);color:#a7edc2; }
.ai-proposal-title-input {
  width:100%;
  height:auto;
  resize:none;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  line-height:1.1;
}

@media (max-width:719px) {
  .album-summary-direct { grid-template-columns:1fr; }
  .album-summary-actions { grid-row:1;justify-content:flex-end; }
  .album-summary-edit { grid-row:2; }
  .album-save-top { min-height:38px;padding:0 12px; }
  .album-name-direct { font-size:30px;min-height:46px; }
  .album-toolbar-compact { align-items:center; }
  .album-toolbar-icons { gap:5px; }
  .album-tool-circle { width:39px;height:39px; }
  .album-pill-wrap { flex-basis:242px;min-width:242px;min-height:138px; }
  .album-pill-wrap .hybrid-album-pill { min-height:138px;padding:13px 72px 45px 14px; }
  .album-card-play { right:13px;bottom:13px;width:32px;height:32px; }
  .track-technical { display:block; }
  .track-technical span,.track-technical strong,.track-technical em { display:block; }
  .track-technical strong { margin-top:2px;font-size:8.5px; }
  .track-technical em { margin-top:2px; }
}

/* V4.7 final safeguards: nomes de album nunca truncam. */
.album-pill-wrap .hybrid-album-pill { height:auto; }
.album-target-card strong {
  white-space:normal !important;
  overflow:visible !important;
  text-overflow:clip !important;
  overflow-wrap:anywhere;
  padding-right:0;
}
.album-pill-wrap:not(.active) .album-pill-rating,
.album-pill-wrap.active .album-pill-rating {
  bottom:13px;
  transform:none;
}
.album-pill-wrap .album-stars.interactive { flex-wrap:nowrap; }

/* Tags de faixa so parecem interativas porque agora filtram de verdade. */
.album-tag { user-select:none; }
.album-tag.active::before { content:"•"; margin-right:4px; color:var(--gold); }

/* =========================================================
   HML 1.1 Hybrid V4.8 - acabamento final de layout e navegacao
   ========================================================= */

/* Banner principal: tres destinos claros e sem redundancia. */
.hero-album-actions {
  align-items:center;
  gap:10px;
}
.hero-album-actions .btn { min-height:48px; padding:0 18px; }
.hero-new-album { min-width:168px; font-size:14px; }
.hero-ai-mark {
  display:inline-grid;
  place-items:center;
  min-width:25px;
  height:25px;
  padding:0 5px;
  border-radius:999px;
  background:rgba(43,27,10,.14);
  font-size:10px;
  font-weight:950;
  letter-spacing:.04em;
}
.hero-all-tracks {
  background:rgba(18,9,24,.46);
  border-color:rgba(255,255,255,.18);
}

/* Barra do album: play soberano a esquerda, IA e share autoexplicativos a direita. */
.album-toolbar-compact {
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin:2px 0 18px;
}
.album-toolbar-primary { flex:0 0 auto; display:flex; align-items:center; gap:10px; }
.album-add-main {
  min-height:58px;
  display:flex;
  align-items:center;
  gap:9px;
  padding:6px 13px 6px 7px;
  border:1px solid rgba(222,179,239,.34);
  border-radius:18px;
  background:linear-gradient(135deg,rgba(222,179,239,.15),rgba(255,255,255,.04));
  color:var(--text);
  cursor:pointer;
  text-align:left;
  transition:transform .15s ease,background .15s ease,border-color .15s ease;
}
.album-add-main:hover,.album-add-main:focus-visible {
  transform:translateY(-1px);
  background:linear-gradient(135deg,rgba(222,179,239,.23),rgba(255,255,255,.065));
  border-color:rgba(222,179,239,.55);
}
.album-add-main-icon {
  width:46px;
  height:46px;
  flex:0 0 46px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:rgba(222,179,239,.13);
  border:1px solid rgba(222,179,239,.28);
  color:var(--lavender);
  font-size:23px;
  line-height:1;
}
.album-add-main-copy { display:grid; gap:1px; }
.album-add-main-copy strong { font-size:12px; line-height:1.1; }
.album-add-main-copy small { color:var(--muted); font-size:8.5px; }
.album-play-main {
  min-width:154px;
  min-height:58px;
  display:flex;
  align-items:center;
  gap:11px;
  padding:6px 14px 6px 7px;
  border:1px solid rgba(244,202,123,.30);
  border-radius:18px;
  background:linear-gradient(135deg,rgba(244,202,123,.11),rgba(255,255,255,.04));
  color:var(--text);
  cursor:pointer;
  text-align:left;
  transition:transform .15s ease,background .15s ease,border-color .15s ease;
}
.album-play-main:hover,.album-play-main:focus-visible {
  transform:translateY(-1px);
  background:linear-gradient(135deg,rgba(244,202,123,.17),rgba(255,255,255,.06));
  border-color:rgba(244,202,123,.48);
}
.album-play-main-icon {
  width:46px;
  height:46px;
  flex:0 0 46px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:rgba(244,202,123,.11);
  border:1px solid rgba(244,202,123,.28);
  color:var(--gold);
  font-size:16px;
  padding-left:2px;
}
.album-play-main-copy { display:grid; gap:1px; }
.album-play-main-copy strong { font-size:12px; line-height:1.1; }
.album-play-main-copy small { color:var(--muted); font-size:8.5px; }
.album-toolbar-icons { margin-left:auto; display:flex; align-items:center; gap:8px; }
.album-tool-pill {
  min-height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:0 13px;
  border:1px solid rgba(255,255,255,.11);
  border-radius:999px;
  background:rgba(255,255,255,.035);
  color:var(--text);
  cursor:pointer;
  font-size:10px;
  font-weight:820;
  white-space:nowrap;
  transition:transform .15s ease,background .15s ease,border-color .15s ease;
}
.album-tool-pill:hover,.album-tool-pill:focus-visible {
  transform:translateY(-1px);
  background:rgba(255,255,255,.075);
}
.album-tool-pill.ai {
  color:#f6e3ff;
  border-color:rgba(216,169,239,.30);
  background:linear-gradient(135deg,rgba(193,123,222,.15),rgba(89,45,105,.22));
}
.ai-tool-badge {
  display:inline-grid;
  place-items:center;
  min-width:28px;
  height:28px;
  padding:0 5px;
  border-radius:50%;
  background:radial-gradient(circle at 32% 28%,#f0c8ff 0,#c789df 36%,#5e326e 100%);
  color:#211029;
  font-size:9px;
  font-weight:950;
}
.album-tool-pill.whatsapp {
  color:#b9f5cd;
  border-color:rgba(107,214,153,.32);
  background:rgba(107,214,153,.065);
}
.album-tool-pill.whatsapp svg { width:20px; height:20px; display:block; }
.album-tool-circle.duplicate { width:42px; height:42px; }

/* Referencia tecnica: so o dado, sem legenda redundante. */
.track-technical { gap:8px; }
.track-technical strong {
  color:rgba(255,255,255,.58);
  font-size:9px;
  font-weight:620;
}
.track-technical em {
  color:rgba(255,255,255,.30);
  font-size:8px;
}

/* Seletor de album: o estado nunca sobrepoe o nome. */
.album-target-head {
  width:100%;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}
.album-target-head strong {
  flex:1 1 auto;
  min-width:0;
  padding:0 !important;
}
.album-target-current {
  position:static;
  flex:0 0 auto;
  margin:0;
  white-space:nowrap;
}
.album-target-card { overflow:hidden; }
.album-target-card strong {
  white-space:normal !important;
  overflow:visible !important;
  text-overflow:clip !important;
  overflow-wrap:anywhere;
  word-break:normal;
}

/* IA contextual: deixa inequivoco qual album esta sendo ajustado. */
.ai-album-context {
  width:min(100%,860px);
  margin:0 auto 16px;
  padding:16px 18px;
  display:grid;
  gap:5px;
  text-align:center;
  border:1px solid rgba(216,169,239,.18);
  border-radius:18px;
  background:linear-gradient(145deg,rgba(216,169,239,.075),rgba(255,255,255,.025));
}
.ai-album-context span {
  color:var(--gold);
  font-size:8px;
  font-weight:900;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.ai-album-context strong {
  font:600 clamp(21px,3vw,30px)/1.12 ui-serif,Georgia,serif;
  overflow-wrap:anywhere;
}
.ai-album-context small { color:var(--muted); font-size:10px; }
.ai-album-context.manual { margin-top:2px; }
.ai-refine-hero {
  width:min(100%,860px);
  margin:0 auto 18px;
  padding:18px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  text-align:center;
  border:1px solid rgba(255,255,255,.10);
  border-radius:20px;
  background:rgba(255,255,255,.035);
}
.ai-refine-hero > div:last-child { max-width:660px; }
.ai-refine-hero h3 { margin:0 0 6px; }
.ai-refine-hero p { margin:0; color:var(--muted); line-height:1.5; }
.ai-orb,.ai-mini-orb { font-family:system-ui,-apple-system,sans-serif; letter-spacing:-.04em; }
.ai-orb { width:48px; height:48px; flex-basis:48px; font-size:12px; }
.ai-mini-orb { min-width:28px; width:28px; height:28px; font-size:9px; }
.ai-refine-form { width:min(100%,980px); margin:0 auto; }
.ai-refine-foot { width:min(100%,980px); margin:12px auto 0; text-align:center; }

/* Metricas do Status sao navegacao, nao apenas numeros. */
.metric-link {
  width:100%;
  color:var(--text);
  text-align:left;
  cursor:pointer;
  appearance:none;
  transition:transform .14s ease,background .14s ease,border-color .14s ease;
}
.metric-link:hover,.metric-link:focus-visible {
  transform:translateY(-2px);
  background:rgba(255,255,255,.075);
  border-color:rgba(216,169,239,.30);
  outline:none;
}
.metric-link em {
  display:block;
  margin-top:9px;
  color:var(--lavender);
  font-size:9px;
  font-style:normal;
  font-weight:800;
}

@media (max-width:719px) {
  .hero-album-actions { display:grid; grid-template-columns:1fr; width:100%; }
  .hero-album-actions .btn { width:100%; }
  .album-toolbar-compact { align-items:stretch; flex-direction:column; }
  .album-toolbar-primary { width:100%; display:grid; grid-template-columns:1fr 1fr; gap:8px; }
  .album-add-main,.album-play-main { width:100%; min-height:60px; }
  .album-add-main { padding-right:10px; }
  .album-add-main-icon,.album-play-main-icon { width:42px; height:42px; flex-basis:42px; }
  .album-toolbar-icons { width:100%; margin-left:0; justify-content:flex-start; flex-wrap:wrap; }
  .album-tool-pill { min-height:40px; }
  .album-target-head { align-items:flex-start; }
  .album-target-current { font-size:7px; padding:4px 6px; }
  .ai-refine-hero { flex-direction:column; padding:16px 14px; }
  .track-technical strong,.track-technical em { display:block; }
}


/* V4.11 · adicionar faixa diretamente ao album atual */
.add-track-fixed-target {
  display:flex;
  align-items:center;
  gap:11px;
  margin:0 0 12px;
  padding:11px 13px;
  border:1px solid rgba(123,222,167,.24);
  border-radius:15px;
  background:rgba(78,171,120,.07);
}
.add-track-fixed-target > span {
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  flex:0 0 34px;
  border-radius:50%;
  background:rgba(123,222,167,.11);
  color:#9ce9b9;
  font-size:21px;
}
.add-track-fixed-target div { display:grid; gap:2px; min-width:0; }
.add-track-fixed-target small { color:var(--muted); font-size:8.5px; text-transform:uppercase; letter-spacing:.09em; font-weight:800; }
.add-track-fixed-target strong { color:#d9f7e5; font-size:12px; overflow-wrap:anywhere; }
.direct-add-context {
  display:grid;
  gap:5px;
  margin-bottom:16px;
  padding:14px 15px;
  border:1px solid rgba(123,222,167,.22);
  border-radius:17px;
  background:rgba(78,171,120,.065);
}
.direct-add-context span { color:#9ce9b9; font-size:8px; text-transform:uppercase; letter-spacing:.12em; font-weight:900; }
.direct-add-context strong { font-size:17px; line-height:1.2; overflow-wrap:anywhere; }
.direct-add-context small { color:var(--muted); font-size:10px; }
.direct-add-confirm { width:100%; margin-top:4px; }

/* V4.9 · criar album a partir da faixa */
.album-target-new {
  margin-top:16px;
  padding:16px;
  border:1px solid rgba(222,179,239,.24);
  border-radius:20px;
  background:linear-gradient(135deg,rgba(222,179,239,.10),rgba(242,207,134,.06));
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(260px,.8fr) auto;
  gap:14px;
  align-items:end;
}
.album-target-new-copy span { display:block; font-size:8px; letter-spacing:.18em; text-transform:uppercase; color:var(--gold); font-weight:800; margin-bottom:5px; }
.album-target-new-copy strong { display:block; font-size:14px; line-height:1.2; }
.album-target-new-copy small { display:block; margin-top:5px; color:var(--muted); font-size:9.5px; line-height:1.35; }
.album-target-new-field { margin:0; }
.album-target-new-field label { font-size:8px; }
.album-target-new-button { min-height:50px; white-space:nowrap; }
@media(max-width:820px){
  .album-target-new { grid-template-columns:1fr; align-items:stretch; }
  .album-target-new-button { width:100%; }
}


/* V4.10 Smooth UX: evita saltos de layout e reabertura visual durante fluxos encadeados. */
.sheet-body { scrollbar-gutter:stable; overflow-anchor:none; }
.sheet.full { transition:max-height .16s ease, top .16s ease, border-radius .16s ease; }
.album-target-card.is-busy { opacity:.72; cursor:progress; }
.album-target-card.is-busy .album-target-action { color:var(--lavender); }
.album-target-new-button:disabled { cursor:progress; opacity:.82; }
@media (prefers-reduced-motion: reduce) {
  .sheet.full { transition:none; }
}


/* =========================================================
   V5.0 FINAL · IA para álbum redesenhada
   Compacta, responsiva e sem rolagem horizontal de presets.
   ========================================================= */
body.ai-sheet-open .sheet.full,
body.ai-results-open .sheet.full {
  width:min(760px,calc(100vw - 24px));
  top:calc(14px + var(--safe-top));
  border-radius:24px 24px 0 0;
}
body.ai-sheet-open .sheet-body,
body.ai-results-open .sheet-body {
  padding:12px 14px calc(22px + var(--safe-bottom));
}
.ai-workspace-v5 { width:100%; max-width:700px; margin:0 auto; }
.ai-context-v5 {
  display:flex;
  align-items:center;
  gap:11px;
  padding:11px 13px;
  margin:0 0 12px;
  border:1px solid rgba(216,169,239,.18);
  border-radius:16px;
  background:linear-gradient(135deg,rgba(216,169,239,.08),rgba(255,255,255,.025));
}
.ai-context-v5 > div { min-width:0; display:grid; gap:2px; }
.ai-context-v5 small { color:var(--gold); font-size:7.5px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.ai-context-v5 strong { font:650 18px/1.15 ui-serif,Georgia,serif; overflow-wrap:anywhere; }
.ai-context-v5 em { color:var(--muted); font-size:9px; font-style:normal; line-height:1.35; }
.ai-context-orb {
  width:36px;height:36px;flex:0 0 36px;display:grid;place-items:center;border-radius:50%;
  background:radial-gradient(circle at 32% 28%,#f0c8ff 0,#c789df 36%,#5e326e 100%);
  color:#1f1028;font:900 12px/1 system-ui,-apple-system,sans-serif;
  box-shadow:0 7px 18px rgba(123,64,146,.22);
}
.ai-form-v5 { display:grid; gap:11px; }
.ai-form-v5 .field { min-width:0; }
.ai-form-v5 .field > label { margin-bottom:6px; font-size:8.5px; }
.ai-preset-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:6px;
  width:100%;
  padding:0;
  overflow:visible;
}
.ai-preset {
  appearance:none;
  min-width:0;
  min-height:36px;
  padding:6px 8px;
  border:1px solid var(--line);
  border-radius:11px;
  background:rgba(255,255,255,.045);
  color:var(--muted);
  font-size:9.5px;
  font-weight:800;
  line-height:1.18;
  text-align:center;
  white-space:normal;
  cursor:pointer;
}
.ai-preset:hover,.ai-preset:focus-visible { background:rgba(216,169,239,.09); border-color:rgba(216,169,239,.30); }
.ai-preset.active { color:#24112f; background:linear-gradient(135deg,#f0d0fb,#cc92e7); border-color:transparent; }
.ai-control-row { display:grid; grid-template-columns:190px minmax(0,1fr); gap:10px; align-items:start; }
.ai-compact-select { min-height:44px; border-radius:12px; font-size:11px; }
.ai-request-textarea {
  min-height:82px;
  max-height:150px;
  resize:vertical;
  border-radius:12px;
  font-size:11px;
  line-height:1.38;
  overflow-wrap:anywhere;
  word-break:break-word;
  white-space:pre-wrap;
}
.ai-submit-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-top:1px; }
.ai-submit-row p { flex:1; margin:0; color:var(--faint); font-size:8.7px; line-height:1.35; }
.ai-refine-submit-v5 {
  min-height:42px;
  min-width:178px;
  width:auto;
  padding:0 15px;
  border-radius:13px;
  font-size:11px;
  flex:0 0 auto;
}
.ai-refine-submit-v5 .ai-mini-orb { width:23px; height:23px; font-size:9px; }
.ai-results-v5 { display:grid; gap:12px; max-width:700px; margin:0 auto; }
.ai-results-v5 .ai-proposal { margin:0; padding:14px; }
.ai-refine-name-card {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:end;
  margin:2px 0 10px;
  padding:10px;
  border:1px solid rgba(216,169,239,.13);
  border-radius:14px;
  background:rgba(216,169,239,.04);
}
.ai-refine-name-card .ai-proposal-title-field { margin:0; }
.ai-rename-toggle {
  display:flex;
  align-items:center;
  gap:6px;
  min-height:40px;
  color:var(--muted);
  font-size:9px;
  font-weight:750;
  white-space:nowrap;
}
.ai-rename-toggle input { width:17px; height:17px; accent-color:var(--lavender2); }
.ai-arc-card { margin:10px 0 !important; padding:11px; }
.ai-result-actions { display:flex; justify-content:flex-end; margin-top:12px; }
.ai-apply-v5 { min-height:42px; min-width:170px; width:auto; }

@media (max-width:719px) {
  body.ai-sheet-open .sheet.full,
  body.ai-results-open .sheet.full {
    width:calc(100vw - 10px);
    top:calc(5px + var(--safe-top));
    border-radius:20px 20px 0 0;
  }
  body.ai-sheet-open .sheet-head,
  body.ai-results-open .sheet-head { padding:8px 11px 10px; }
  body.ai-sheet-open .sheet-head h2,
  body.ai-results-open .sheet-head h2 { font-size:21px; white-space:normal; overflow:visible; text-overflow:clip; }
  body.ai-sheet-open .sheet-head p,
  body.ai-results-open .sheet-head p { font-size:9px; line-height:1.3; }
  body.ai-sheet-open .sheet-body,
  body.ai-results-open .sheet-body { padding:10px 10px calc(18px + var(--safe-bottom)); }
  .ai-context-v5 { padding:9px 10px; margin-bottom:9px; border-radius:14px; }
  .ai-context-v5 strong { font-size:16px; }
  .ai-context-v5 em { font-size:8.3px; }
  .ai-context-orb { width:32px;height:32px;flex-basis:32px; }
  .ai-preset-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:5px; }
  .ai-preset { min-height:34px; padding:5px 5px; font-size:8.7px; border-radius:10px; }
  .ai-control-row { grid-template-columns:1fr; gap:8px; }
  .ai-request-textarea { min-height:76px; max-height:126px; }
  .ai-submit-row { align-items:flex-end; flex-direction:column; gap:7px; }
  .ai-submit-row p { width:100%; font-size:8.2px; }
  .ai-refine-submit-v5 { min-width:165px; width:min(100%,220px); min-height:42px; }
  .ai-refine-name-card { grid-template-columns:1fr; align-items:start; }
  .ai-rename-toggle { min-height:30px; white-space:normal; }
  .ai-result-actions { justify-content:stretch; }
  .ai-apply-v5 { width:100%; }
}
@media (max-width:340px) {
  .ai-preset-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}


/* V5.1 Labs — similaridade e rating externo */
.audience-rating{display:flex;align-items:baseline;gap:9px;margin-top:8px;color:var(--muted);font-size:12px}.audience-rating>span{text-transform:uppercase;letter-spacing:.12em;font-size:9px;font-weight:800}.audience-rating>strong{color:#dff7ea;font-weight:800}.audience-rating strong small{font-size:11px;color:var(--muted);font-weight:600}.audience-rating-compact,.audience-rating-empty{display:block;margin-top:5px;font-size:10px;color:rgba(255,255,255,.52);white-space:normal}.audience-rating-compact{color:#a9e8c7}.album-pill-rating{align-items:flex-start}.similar-track-action{width:auto!important;min-width:64px;padding:0 10px!important;gap:5px;border-radius:999px!important}.similar-track-action em{font-style:normal;font-size:10px;font-weight:800}.similar-track-action span{font-size:18px}.similar-intro{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;border:1px solid rgba(222,179,239,.18);border-radius:18px;background:rgba(255,255,255,.025);margin-bottom:14px}.similar-intro>span{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,rgba(222,179,239,.28),rgba(242,207,134,.15));font-size:28px;color:var(--lav)}.similar-intro strong{display:block;font-size:16px}.similar-intro p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.45}.similar-list{display:grid;gap:10px}.similar-result{display:grid;grid-template-columns:48px 44px minmax(0,1fr) auto;gap:11px;align-items:center;border:1px solid rgba(255,255,255,.09);border-radius:16px;padding:11px 12px;background:rgba(255,255,255,.025)}.similar-score{display:grid;place-items:center;text-align:center}.similar-score strong{font:700 18px Georgia,serif;color:var(--gold)}.similar-score span{font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.similar-title{display:flex;gap:8px;align-items:baseline;min-width:0}.similar-title strong{font-size:13px}.similar-title span,.similar-technical{font-size:9px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.similar-reasons{display:flex;gap:5px;flex-wrap:wrap;margin-top:5px}.similar-reasons span{font-size:9px;padding:3px 7px;border-radius:999px;background:rgba(222,179,239,.09);color:#d9c8df}.similar-add{padding:9px 12px!important;font-size:11px!important;white-space:nowrap}.similar-add:disabled{opacity:.42}
@media(max-width:760px){.similar-result{grid-template-columns:38px 40px minmax(0,1fr);padding:10px 8px}.similar-result>.similar-add{grid-column:2/4;width:100%;margin-top:2px}.similar-track-action em{display:none}.similar-track-action{min-width:42px;padding:0!important}.audience-rating{flex-wrap:wrap;gap:4px 7px}}

/* V5.1 card rating spacing */
.album-pill-wrap .hybrid-album-pill{padding-bottom:60px}
.album-pill-rating{height:auto!important;flex-direction:column;align-items:flex-start!important;gap:1px;bottom:9px!important}
.album-pill-rating .audience-rating-compact{margin-top:1px;line-height:1.1}
@media(max-width:760px){.album-pill-wrap .hybrid-album-pill{padding-bottom:58px}}

/* =========================================================
   V5.2 FINAL · player nunca encavala com conteudo rolavel
   ========================================================= */
:root{--player-clearance:0px}
body.player-open .main-content{
  padding-bottom:calc(var(--player-clearance) + 34px + var(--safe-bottom)) !important;
  scroll-padding-bottom:calc(var(--player-clearance) + 24px + var(--safe-bottom));
}
body.player-open:not(.player-yield-sheet) .sheet-body{
  padding-bottom:calc(var(--player-clearance) + 26px + var(--safe-bottom)) !important;
  scroll-padding-bottom:calc(var(--player-clearance) + 20px + var(--safe-bottom));
}
body.player-open:not(.player-yield-sheet) .sheet.full .sheet-body{
  max-height:calc(100vh - 94px - var(--safe-top) - var(--safe-bottom));
}
body.player-open .track-list,
body.player-open .music-family-list,
body.player-open .reference-list{
  scroll-margin-bottom:calc(var(--player-clearance) + 22px);
}

/* Ranking editorial e popular claramente separados */
.editorial-rating{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:8px}
.editorial-rating>span{font-size:9px;font-weight:850;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.audience-rating{align-items:center;flex-wrap:wrap}
.audience-rating>span{color:#a9e8c7}
.audience-details{appearance:none;border:0;background:transparent;color:var(--lavender);font-size:9px;font-weight:800;text-decoration:underline;cursor:pointer;padding:2px 0}
.rating-summary-card{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.035);margin-bottom:12px}
.rating-summary-card span{font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:800}
.rating-summary-card strong{font-size:13px;color:var(--text)}
.rating-voter-list{display:grid;gap:7px}
.rating-voter{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid rgba(255,255,255,.08);border-radius:13px;background:rgba(255,255,255,.025)}
.rating-voter strong,.rating-voter small{display:block}.rating-voter strong{font-size:12px}.rating-voter small{margin-top:2px;color:var(--muted);font-size:9px}.rating-voter>span{color:var(--gold);letter-spacing:.05em;white-space:nowrap}
.share-manage-link{display:block;margin:12px auto 0;border:0;background:transparent;color:var(--muted);font-size:9px;text-decoration:underline;cursor:pointer}
.share-governance-status{padding:12px 14px;border-radius:14px;border:1px solid var(--line);display:grid;gap:3px}.share-governance-status strong{font-size:12px}.share-governance-status span{font-size:9px;color:var(--muted)}.share-governance-status.on{border-color:rgba(120,214,161,.25);background:rgba(120,214,161,.05)}.share-governance-status.off{border-color:rgba(240,154,168,.25);background:rgba(240,154,168,.05)}
@media(max-width:719px){body.player-open .main-content{padding-bottom:calc(var(--player-clearance) + 28px + var(--safe-bottom)) !important}body.player-open:not(.player-yield-sheet) .sheet-body{padding-bottom:calc(var(--player-clearance) + 22px + var(--safe-bottom)) !important}.rating-summary-card{grid-template-columns:1fr}.rating-voter{align-items:flex-start;flex-direction:column}}
.editorial-compact{display:block;font-size:7.5px;line-height:1;text-transform:uppercase;letter-spacing:.12em;color:var(--gold);font-weight:850;margin-bottom:2px}.audience-rating-button{appearance:none;border:0;background:transparent;padding:0;cursor:pointer;text-align:left;text-decoration:underline}.album-pill-rating .album-stars{margin-top:0}

.identity-by-pin { display:grid; grid-template-columns:40px minmax(0,1fr); gap:12px; align-items:center; padding:14px; border:1px solid rgba(216,169,239,.18); border-radius:16px; background:rgba(216,169,239,.055); }
.identity-pin-icon { width:40px; height:40px; border-radius:14px; display:grid; place-items:center; background:rgba(102,225,164,.1); color:#8ff1bc; font-weight:900; }
.identity-by-pin strong { display:block; color:#fff; font-size:12px; }
.identity-by-pin p { margin:4px 0 0; color:var(--muted); font-size:10px; line-height:1.45; }
.activity-row-wrap { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:stretch; border-bottom:1px solid rgba(255,255,255,.065); }
.activity-row-wrap .activity-item { border-bottom:0; }
.activity-details-btn { align-self:center; margin:8px 0 8px 10px; padding:8px 10px; border:1px solid rgba(216,169,239,.16); border-radius:10px; background:rgba(216,169,239,.055); color:var(--muted); font-size:9px; font-weight:800; cursor:pointer; }
.activity-details-btn:hover { color:#fff; border-color:rgba(216,169,239,.34); }
.activity-control-actions { display:flex; gap:8px; flex-wrap:wrap; }
.btn-compact { padding:9px 12px; min-height:36px; }
.activity-target-flash { animation:activityTargetFlash 3.1s ease both; scroll-margin-top:90px; }
.activity-comment-target { border-radius:12px; }
@keyframes activityTargetFlash { 0%,18% { box-shadow:0 0 0 2px rgba(244,202,123,.78),0 0 36px rgba(216,169,239,.22); background:rgba(244,202,123,.08); } 100% { box-shadow:none; background:transparent; } }
@media (max-width:720px){ .activity-row-wrap { grid-template-columns:1fr; } .activity-details-btn { justify-self:end; margin:-4px 4px 8px; } .activity-control-actions { width:100%; } .activity-control-actions .btn { flex:1 1 auto; width:auto; } }

/* V5.4 Official Clean: zero-album state and profile-isolated album workspaces */
.album-switcher-empty{padding:18px 20px;border:1px dashed rgba(255,255,255,.14);border-radius:18px;color:var(--muted);font-size:14px;min-width:min(420px,100%)}
.album-zero-state{min-height:250px;display:grid;place-items:center;text-align:center}
