/* Cream Rose / Midnight songbook. All data and request APIs stay unchanged. */
body.rose-songbook{--sb-muted:#73666c;--line:var(--rose-line);--muted:var(--sb-muted)}
html[data-rose-theme=dark] body.rose-songbook{--sb-muted:#c6b8c4}
.rose-songbook .sb-page{padding-top:46px;padding-bottom:80px}
.rose-songbook .section{padding:0;margin:0 0 42px}
.rose-songbook .card{background:var(--rose-surface)!important;border:1px solid var(--rose-line)!important;border-radius:8px!important;box-shadow:none!important;backdrop-filter:none}
.rose-songbook .card::before,.rose-songbook .card::after{display:none!important}
.rose-songbook .inside{padding:25px!important}
.rose-songbook .sb-hero-card{background:none!important;border:0!important}
.rose-songbook .sb-hero-card .inside{padding:0 0 30px!important;border-bottom:1px solid var(--rose-line)}
.rose-songbook .label{font-size:15px;color:var(--rose-accent);letter-spacing:.06em}
.rose-songbook .sb-title{font-size:clamp(42px,5vw,66px);line-height:1.2;margin:10px 0 16px;color:var(--rose-ink)}
.rose-songbook .gradient-text{background:none;color:var(--rose-ink);-webkit-text-fill-color:currentColor}
.rose-songbook .sb-lead{font-size:23px;color:var(--sb-muted);max-width:800px;margin:0;line-height:1.65}
.rose-songbook .sb-request-guide,.rose-songbook .sb-stats{display:flex;align-items:center;flex-wrap:wrap;gap:12px 24px;margin-top:20px;font-size:20px}
.rose-songbook .sb-open-badge{background:var(--rose-tint);color:var(--rose-accent);border:1px solid var(--rose-line);border-radius:4px;padding:6px 13px}
.rose-songbook .sb-stats{gap:24px;color:var(--sb-muted)}
.rose-songbook .sb-stats b{font-size:28px;color:var(--rose-ink);font-weight:400}
.rose-songbook .sb-playlist-link{margin:20px 0 0}
.rose-songbook .links-mini-cta{font-size:20px;color:var(--rose-accent);background:none;border:0;box-shadow:none;padding:0}
.rose-songbook .sb-toolbar{display:grid;gap:18px}
.rose-songbook .sb-song-sort{display:flex;flex-wrap:wrap;gap:8px}
body.rose-songbook .sb-song-sort>.secondary-btn{min-height:44px;padding:8px 16px;width:auto;white-space:nowrap}
.rose-songbook .sb-song-sort>.secondary-btn:focus-visible{outline:2px solid var(--rose-accent);outline-offset:3px}
.rose-songbook .sb-search-row{display:flex;gap:12px}
.rose-songbook .sb-search{position:relative;display:block;flex:1;min-width:0}
.rose-songbook input,.rose-songbook textarea,.rose-songbook select{background:var(--rose-bg);color:var(--rose-ink);border:1px solid var(--rose-line);border-radius:5px;font:inherit;min-width:0}
.rose-songbook .sb-search input{width:100%;min-height:56px;padding:12px 48px 12px 16px;font-size:23px}
.rose-songbook .sb-search button{position:absolute;right:5px;top:5px;bottom:5px;width:40px;border:0;background:none;color:var(--rose-ink);font-size:26px}
.rose-songbook .sb-tool-row,.rose-songbook .sb-categories{display:flex;flex-wrap:wrap;gap:8px}
.rose-songbook :is(.secondary-btn,.sb-category,.sb-select){min-height:44px;padding:8px 14px;border:1px solid var(--rose-line);border-radius:4px;background:var(--rose-surface);color:var(--rose-ink);font-size:19px;font-weight:400;box-shadow:none;cursor:pointer;transition:background .2s,border-color .2s}
.rose-songbook :is(.secondary-btn,.sb-category):hover{border-color:var(--rose-accent);background:var(--rose-tint);transform:none}
.rose-songbook :is(.secondary-btn,.sb-category).is-active{background:var(--rose-accent);color:var(--rose-bg);border-color:var(--rose-accent)}
.rose-songbook .section-head{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:0 0 20px}
.rose-songbook .section-head h2{font-size:36px;font-weight:400;line-height:1.25;margin:0}
.rose-songbook .section-desc{font-size:20px;color:var(--sb-muted);margin:7px 0 0;line-height:1.6}
.rose-songbook .sb-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.rose-songbook .sb-card{min-width:0;background:var(--rose-surface);border:1px solid var(--rose-line);border-radius:7px;overflow:hidden;transition:border-color .2s,transform .2s;animation:sbReveal .3s both}
.rose-songbook .sb-card:hover{border-color:var(--rose-accent);transform:translateY(-2px)}
.rose-songbook .sb-cover{position:relative;aspect-ratio:1.7;overflow:hidden;background:var(--rose-tint)}
.rose-songbook .sb-cover img{width:100%;height:100%;object-fit:cover;display:block}
.rose-songbook .sb-auto-cover{display:grid;place-items:center;width:100%;height:100%;background:var(--rose-tint)!important;color:var(--rose-accent);font-size:32px}
.rose-songbook .sb-fav{position:absolute;right:8px;bottom:8px;display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--rose-line);border-radius:50%;background:var(--rose-surface);color:var(--rose-accent);font-size:25px;cursor:pointer}
.rose-songbook .sb-fav.is-active{background:var(--rose-accent);color:var(--rose-bg)}
.rose-songbook .sb-body{min-width:0;padding:18px}
.rose-songbook .sb-song-title{font-size:26px;line-height:1.4;font-weight:400;color:var(--rose-ink);overflow-wrap:anywhere;word-break:keep-all}
.rose-songbook .sb-artist{font-size:21px;line-height:1.4;color:var(--sb-muted);margin-top:5px;overflow-wrap:anywhere}
.rose-songbook :is(.sb-song-flags,.sb-chips){display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}
.rose-songbook :is(.sb-ready-tag,.sb-karaoke,.sb-last-sung,.sb-chip){font-size:17px;line-height:1.4;padding:3px 8px;border:1px solid var(--rose-line);border-radius:4px;background:var(--rose-bg);color:var(--sb-muted)}
.rose-songbook .sb-ready-tag.ready{color:var(--rose-accent);background:var(--rose-tint)}
.rose-songbook :is(.sb-request,.primary-btn){min-height:44px;padding:8px 18px;border:1px solid var(--rose-accent);border-radius:4px;background:var(--rose-accent);color:var(--rose-bg);font:inherit;font-size:21px;font-weight:400;cursor:pointer;box-shadow:none}
.rose-songbook .sb-request{margin-top:16px;width:100%}
.rose-songbook button:disabled{opacity:.6;cursor:not-allowed}
.rose-songbook .sb-grid.is-list{grid-template-columns:1fr;gap:10px}
.rose-songbook .is-list .sb-card{display:grid;grid-template-columns:88px minmax(0,1fr);gap:8px;padding:14px;align-items:center}
.rose-songbook .is-list .sb-cover{aspect-ratio:1;border-radius:5px}
.rose-songbook .is-list .sb-body{padding:4px 12px;display:grid;grid-template-columns:minmax(0,1fr) 130px;column-gap:20px;align-items:center}
.rose-songbook .is-list :is(.sb-song-title,.sb-artist,.sb-song-flags,.sb-chips){grid-column:1}
.rose-songbook .is-list .sb-request{grid-column:2;grid-row:1/5;align-self:center;margin:0}
.rose-songbook .is-list .sb-chips{margin-top:7px}
.rose-songbook .sb-more-wrap{text-align:center;margin-top:22px}
.rose-songbook .sb-empty{grid-column:1/-1;border:1px dashed var(--rose-line);border-radius:5px;padding:36px 18px;text-align:center;font-size:22px;color:var(--sb-muted)}
.rose-songbook .sb-queue{display:grid;gap:10px}
.rose-songbook .sb-queue-item{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:14px;align-items:center;padding:16px;background:var(--rose-bg);border:1px solid var(--rose-line);border-radius:5px}
.rose-songbook .sb-queue-num{font-size:27px;color:var(--rose-accent)}
.rose-songbook .sb-queue-title{font-size:24px;line-height:1.4;overflow-wrap:anywhere}
.rose-songbook .sb-queue-meta{font-size:19px;color:var(--sb-muted)}
.rose-songbook .sb-status{font-size:18px;color:var(--rose-accent);padding:4px 10px;border:1px solid var(--rose-line);border-radius:4px;background:var(--rose-tint)}
.rose-songbook .sb-queue-actions{display:flex;gap:8px;flex-wrap:wrap}
.rose-songbook .sb-now-layout{display:grid;grid-template-columns:90px 1fr;gap:20px;align-items:center}
.rose-songbook .sb-now-cover{width:90px;height:90px;border-radius:5px;overflow:hidden}
.rose-songbook .sb-now-cover img{width:100%;height:100%;object-fit:cover}
.rose-songbook .sb-now-layout h2{font-size:34px;margin:0}
.rose-songbook .sb-now-layout p{margin:0;color:var(--sb-muted)}
.rose-songbook .sb-modal{position:fixed;inset:0;z-index:5000;display:none;place-items:center;padding:18px;background:#17121bb3;backdrop-filter:blur(6px)}
.rose-songbook .sb-modal.is-open{display:grid}
.rose-songbook .sb-modal-card{width:min(550px,100%);max-height:90dvh;overflow:auto;padding:28px;background:var(--rose-surface);color:var(--rose-ink);border:1px solid var(--rose-line);border-radius:9px}
.rose-songbook .sb-modal-head{display:flex;justify-content:space-between;gap:15px}
.rose-songbook .sb-modal-head h2{font-size:34px;margin:5px 0;line-height:1.3}
.rose-songbook .sb-close{width:42px;height:42px;flex-shrink:0;border:0;background:var(--rose-tint);color:var(--rose-ink);border-radius:50%;font-size:26px}
.rose-songbook .field{display:grid;gap:8px;margin-top:20px;font-size:22px}
.rose-songbook .field :is(input,textarea){width:100%;padding:10px 12px;min-height:48px}
.rose-songbook .field textarea{min-height:90px;resize:vertical}
.rose-songbook .sb-modal-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:22px}
.rose-songbook .sb-random-result{display:grid;grid-template-columns:100px 1fr;gap:20px;margin:22px 0}
.rose-songbook .sb-random-cover{width:100px;height:100px;overflow:hidden;border-radius:5px}
.rose-songbook .sb-random-cover img{width:100%;height:100%;object-fit:cover}
.rose-songbook .sb-random-result h3{font-size:28px;line-height:1.3;margin:0}
.rose-songbook .sb-random-result p{font-size:21px;color:var(--sb-muted);margin:5px 0}
.rose-songbook .sb-random-chips span{font-size:17px;margin-right:8px}
.rose-songbook .sb-random-card.is-rerolling .sb-random-result{animation:sbReveal .3s}
.rose-songbook .sb-card.is-new{border-color:color-mix(in srgb,var(--rose-accent) 56%,var(--rose-line));box-shadow:0 9px 28px rgba(126,45,82,.08)!important}
.rose-songbook .sb-new-tag{display:inline-flex;vertical-align:middle;margin-left:9px;padding:2px 7px;border-radius:999px;background:var(--rose-accent);color:var(--rose-bg);font-family:Arial,sans-serif;font-size:11px;font-weight:800;letter-spacing:.09em;transform:translateY(-2px);animation:sbNewTagPulse 2.4s ease-in-out infinite}
.rose-songbook .sb-new-song-modal{background:rgba(27,18,25,.72);backdrop-filter:blur(12px)}
.rose-songbook .sb-new-song-card{position:relative;width:min(620px,100%);padding:32px;overflow:hidden;background:linear-gradient(145deg,var(--rose-surface),color-mix(in srgb,var(--rose-tint) 68%,var(--rose-surface)))!important;box-shadow:0 30px 90px rgba(33,20,28,.34);animation:sbNewSongPop .68s cubic-bezier(.2,.82,.2,1) both}
.rose-songbook .sb-new-song-card::before{content:"NEW";position:absolute;right:-10px;top:42px;color:color-mix(in srgb,var(--rose-accent) 8%,transparent);font-family:Georgia,serif;font-size:112px;line-height:1;letter-spacing:-.06em;pointer-events:none}
.rose-songbook .sb-new-song-card .sb-modal-head,.rose-songbook .sb-new-song-card>.section-desc,.rose-songbook .sb-new-song-list,.rose-songbook .sb-new-song-summary,.rose-songbook .sb-new-song-card>.sb-modal-actions{position:relative;z-index:2}
.rose-songbook .sb-new-song-card .label{padding:0;border:0;background:none;letter-spacing:.13em;font-size:13px}
.rose-songbook .sb-new-song-card .sb-modal-head h2{font-size:clamp(33px,6vw,46px);margin-top:8px;max-width:430px}
.rose-songbook .sb-new-song-card>.section-desc{max-width:470px;margin-bottom:20px}
.rose-songbook .sb-new-song-list{display:grid;gap:9px}
.rose-songbook .sb-new-song-item{display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:14px;width:100%;padding:10px;text-align:left;border:1px solid var(--rose-line);border-radius:7px;background:color-mix(in srgb,var(--rose-surface) 86%,transparent);color:var(--rose-ink);cursor:pointer;opacity:0;animation:sbNewSongRow .45s calc(.22s + var(--new-song-order) * .07s) ease-out forwards;transition:border-color .2s,transform .2s,background .2s}
.rose-songbook .sb-new-song-item:hover{border-color:var(--rose-accent);background:var(--rose-surface);transform:translateX(4px)}
.rose-songbook .sb-new-song-cover{display:block;width:58px;height:58px;border-radius:5px;overflow:hidden;background:var(--rose-tint)}
.rose-songbook .sb-new-song-cover :is(img,.sb-auto-cover){width:100%;height:100%;object-fit:cover}
.rose-songbook .sb-new-song-copy{display:grid;gap:3px;min-width:0}
.rose-songbook .sb-new-song-copy b{font-size:22px;font-weight:400;line-height:1.25;overflow-wrap:anywhere}
.rose-songbook .sb-new-song-copy small{font-size:17px;color:var(--sb-muted);overflow-wrap:anywhere}
.rose-songbook .sb-new-song-arrow{font-size:25px;color:var(--rose-accent);transition:transform .2s}
.rose-songbook .sb-new-song-item:hover .sb-new-song-arrow{transform:translateX(4px)}
.rose-songbook .sb-new-song-summary{margin:15px 0 0;color:var(--sb-muted);font-size:17px}
.rose-songbook .sb-new-song-sparkles{position:absolute;inset:0;pointer-events:none}
.rose-songbook .sb-new-song-sparkles i{position:absolute;color:var(--rose-accent);font-style:normal;opacity:.45;animation:sbNewSongFloat 3s ease-in-out infinite}
.rose-songbook .sb-new-song-sparkles i:nth-child(1){right:28px;top:24px;font-size:20px}
.rose-songbook .sb-new-song-sparkles i:nth-child(2){right:78px;top:76px;font-size:16px;animation-delay:-1s}
.rose-songbook .sb-new-song-sparkles i:nth-child(3){left:18px;bottom:28px;font-size:21px;animation-delay:-2s}
@keyframes sbNewSongPop{from{opacity:0;transform:translateY(24px) scale(.94) rotate(-1deg)}to{opacity:1;transform:none}}
@keyframes sbNewSongRow{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes sbNewTagPulse{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--rose-accent) 24%,transparent)}50%{box-shadow:0 0 0 5px transparent}}
@keyframes sbNewSongFloat{0%,100%{transform:translateY(0) rotate(-8deg)}50%{transform:translateY(-7px) rotate(8deg)}}
.rose-songbook .sb-toast{position:fixed;left:50%;bottom:24px;z-index:6000;transform:translate(-50%,20px);opacity:0;pointer-events:none;padding:12px 20px;background:var(--rose-ink);color:var(--rose-bg);border-radius:6px;width:max-content;max-width:calc(100% - 32px);transition:opacity .2s,transform .2s;font-size:22px}
.rose-songbook .sb-toast.is-show{opacity:1;transform:translate(-50%,0)}
@keyframes sbReveal{from{opacity:.3;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(max-width:900px){.rose-songbook .sb-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){
 .rose-songbook .sb-page{padding-top:30px}.rose-songbook .inside{padding:18px}
 .rose-songbook .sb-lead{font-size:22px}.rose-songbook .sb-stats{gap:10px 18px}
 .rose-songbook .section-head{align-items:flex-start;flex-direction:column}
 .rose-songbook .sb-grid{grid-template-columns:1fr}
 .rose-songbook .is-list .sb-card{grid-template-columns:58px minmax(0,1fr);padding:13px;gap:9px;align-items:start}
 .rose-songbook .is-list .sb-body{display:block;padding:0}
 .rose-songbook .sb-song-title{font-size:24px}.rose-songbook .sb-artist{font-size:20px}
 .rose-songbook .is-list .sb-request{width:auto;margin-top:14px;min-width:110px}
 .rose-songbook .is-list .sb-cover{margin-top:4px}.rose-songbook .is-list .sb-fav{right:2px;bottom:2px;width:32px;height:32px;font-size:22px}
 .rose-songbook .sb-search-row{flex-direction:column}.rose-songbook .sb-search input{font-size:21px}
 .rose-songbook .sb-search-row>#randomSong{align-self:flex-start}
 .rose-songbook .sb-queue-item{grid-template-columns:28px minmax(0,1fr);gap:9px;padding:12px}
 .rose-songbook .sb-status{grid-column:2;justify-self:start}
 .rose-songbook .sb-modal-card{padding:20px}.rose-songbook .sb-modal-actions>*{flex:1}
 .rose-songbook .sb-new-song-card{padding:23px 18px}.rose-songbook .sb-new-song-card::before{font-size:76px;top:58px}.rose-songbook .sb-new-song-item{grid-template-columns:50px minmax(0,1fr) auto;gap:10px;padding:9px}.rose-songbook .sb-new-song-cover{width:50px;height:50px}.rose-songbook .sb-new-song-copy b{font-size:20px}.rose-songbook .sb-new-song-copy small{font-size:16px}
 .rose-songbook .sb-request-guide{align-items:flex-start;gap:10px 15px}
}
@media(prefers-reduced-motion:reduce){.rose-songbook *{animation:none!important;transition:none!important}}
.rose-songbook .visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.rose-songbook .sb-title,.rose-songbook .section-head h2{font-weight:400!important}
.rose-songbook .sb-hero-card .label{background:none!important;border:0!important;padding:0!important}
.rose-songbook .sb-tool-row>.secondary-btn{width:auto!important;justify-content:center}
@media(max-width:700px){
 .rose-songbook .sb-now-layout{grid-template-columns:64px minmax(0,1fr);gap:14px}
 .rose-songbook .sb-now-cover{width:64px;height:64px}
 .rose-songbook .sb-now-layout h2{font-size:27px;line-height:1.4;overflow-wrap:anywhere}
 .rose-songbook .sb-now-layout p,.rose-songbook .sb-now-requester{font-size:19px;overflow-wrap:anywhere}
}
