/* ============================================================================
   JewishSong.org - FESTIVE SCHOOL design system  (PROMPT_0270, 2026-06-08)
   "A School of Jewish Song" - joyful, childlike, but premium and uncluttered.
   Warm cream, festive accents, big rounded cards, Nunito 800-900 headings.
   Self-contained: includes self-hosted Nunito @font-face (0 external fonts).
   No dark mode. No em dashes in content. Pages opt in via this stylesheet.
   ============================================================================ */

/* ---- Self-hosted Nunito (mirrors css/base.css) ---- */
@font-face{font-family:'Nunito';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/nunito/nunito-400-cyrillic-ext.woff2') format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
@font-face{font-family:'Nunito';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/nunito/nunito-400-cyrillic.woff2') format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Nunito';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/nunito/nunito-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Nunito';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/nunito/nunito-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Nunito';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/nunito/nunito-700-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Nunito';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/nunito/nunito-700-cyrillic.woff2') format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Nunito';font-style:normal;font-weight:800;font-display:swap;src:url('/fonts/nunito/nunito-800-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Nunito';font-style:normal;font-weight:800;font-display:swap;src:url('/fonts/nunito/nunito-800-cyrillic.woff2') format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Nunito';font-style:normal;font-weight:900;font-display:swap;src:url('/fonts/nunito/nunito-900-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Nunito';font-style:normal;font-weight:900;font-display:swap;src:url('/fonts/nunito/nunito-900-cyrillic.woff2') format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}

/* ---- Festive palette ---- */
:root{
  --cream:#FFF6E9;          /* page background, warm */
  --cream-card:#FFFDF8;     /* card surface, a touch lighter */
  --cream-deep:#FBEAD2;     /* alternating section band */
  --ink:#3A2A1A;            /* primary text, warm dark brown (never black) */
  --ink-soft:#6B5640;       /* secondary text */
  --ink-mute:#9A876C;       /* muted/caption text */
  --coral:#E07A1F;          /* primary festive accent (warm orange) */
  --coral-deep:#C2620F;     /* coral for AA text on cream */
  --amber:#D99417;          /* secondary accent (gold) */
  --amber-deep:#B97A0C;
  --green:#5F9A37;          /* festive green */
  --green-deep:#4C7E2B;
  --pink:#D4537E;           /* festive pink */
  --pink-deep:#B83E66;
  --sky:#1F6FB0;            /* festive sky blue */
  --sky-deep:#185C92;
  --line:#F0DFC4;           /* hairline borders on cream */
  --line-soft:#F6ECDA;
  --shadow:0 10px 30px rgba(192,98,15,0.10);
  --shadow-hi:0 18px 44px rgba(192,98,15,0.16);
  --radius:22px;
  --radius-sm:14px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body.festive{
  font-family:'Nunito',system-ui,-apple-system,'Segoe UI',sans-serif;
  background:var(--cream);
  color:var(--ink);
  line-height:1.7;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
}
.festive a{color:inherit;text-decoration:none;}
.festive img{max-width:100%;display:block;}
.wrap{max-width:1140px;margin:0 auto;padding:0 1.5rem;}
.wrap--narrow{max-width:820px;margin:0 auto;padding:0 1.5rem;}

/* ---- Typography ---- */
.festive h1,.festive h2,.festive h3,.festive h4{font-style:normal;letter-spacing:-0.01em;color:var(--ink);line-height:1.15;}
.festive h1{font-size:clamp(2rem,5vw,3.4rem);font-weight:900;}
.festive h2{font-size:clamp(1.5rem,3.4vw,2.4rem);font-weight:900;line-height:1.2;}
.festive h3{font-size:1.2rem;font-weight:800;}
.festive h1 em,.festive h2 em,.festive h3 em{font-style:normal;color:var(--coral);}
.festive p{color:var(--ink-soft);line-height:1.75;margin-bottom:1rem;}
.festive p:last-child{margin-bottom:0;}
.eyebrow{font-size:0.74rem;font-weight:800;letter-spacing:0.16em;text-transform:uppercase;color:var(--coral-deep);margin-bottom:0.6rem;}

/* ---- Nav ---- */
.festive nav.top{
  position:sticky;top:0;z-index:100;
  background:rgba(255,246,233,0.94);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
  padding:0.8rem 0;
}
nav.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:1.4rem;flex-wrap:wrap;}
.brand{font-size:1.2rem;font-weight:900;color:var(--ink);letter-spacing:-0.02em;display:flex;align-items:center;gap:0.45rem;}
.brand em{font-style:normal;color:var(--coral);}
.brand .brand-mark{font-size:1.3rem;}
.nav-toggle{display:none;}
.nav-burger{display:none;cursor:pointer;font-size:1.5rem;line-height:1;color:var(--ink);padding:0.3rem 0.55rem;border-radius:10px;user-select:none;}
.nav-burger:hover{background:#FBEAD2;}
.nav-burger .x{display:none;}
.nav-menu{display:flex;gap:1.5rem;list-style:none;align-items:center;flex-wrap:wrap;}
.nav-menu a{font-size:0.92rem;font-weight:800;color:var(--ink-soft);transition:color .15s;}
.nav-menu a:hover,.nav-menu a.active{color:var(--coral);}
.nav-menu a.pill{background:var(--coral);color:#fff;padding:0.45rem 1rem;border-radius:999px;}
.nav-menu a.pill:hover{background:var(--coral-deep);color:#fff;}
@media(max-width:880px){
  .nav-burger{display:inline-block;}
  .nav-menu{display:none;flex-basis:100%;flex-direction:column;gap:0;align-items:stretch;margin-top:0.6rem;padding-top:0.6rem;border-top:1px solid var(--line);}
  .nav-menu li{width:100%;}
  .nav-menu a{display:block;padding:0.75rem 0.4rem;font-size:1rem;border-radius:10px;}
  .nav-menu a.pill{text-align:center;margin-top:0.4rem;}
  .nav-toggle:checked ~ .nav-menu{display:flex;}
  .nav-toggle:checked ~ .nav-burger .o{display:none;}
  .nav-toggle:checked ~ .nav-burger .x{display:inline;}
}

/* ---- Badges ---- */
.badge{display:inline-block;font-size:0.7rem;font-weight:900;letter-spacing:0.04em;padding:0.22rem 0.6rem;border-radius:999px;color:#fff;line-height:1.2;vertical-align:middle;}
.badge--new{background:var(--pink);}
.badge--free{background:var(--green);}
.badge--holiday{background:var(--amber);}
.badge--kids{background:var(--sky);}

/* ---- Buttons ---- */
.btn{display:inline-flex;align-items:center;gap:0.45rem;font-family:'Nunito',sans-serif;font-weight:800;font-size:0.95rem;padding:0.8rem 1.5rem;border-radius:999px;border:none;cursor:pointer;transition:transform .15s,background .2s,box-shadow .2s;}
.btn--primary{background:var(--coral);color:#fff;box-shadow:0 8px 20px rgba(224,122,31,0.28);}
.btn--primary:hover{background:var(--coral-deep);transform:translateY(-2px);}
.btn--green{background:var(--green);color:#fff;box-shadow:0 8px 20px rgba(95,154,55,0.26);}
.btn--green:hover{background:var(--green-deep);transform:translateY(-2px);}
.btn--sky{background:var(--sky);color:#fff;box-shadow:0 8px 20px rgba(31,111,176,0.24);}
.btn--sky:hover{background:var(--sky-deep);transform:translateY(-2px);}
.btn--ghost{background:var(--cream-card);color:var(--coral-deep);border:2px solid var(--coral);}
.btn--ghost:hover{background:#FFF0DC;transform:translateY(-2px);}
.btn-row{display:flex;gap:0.8rem;flex-wrap:wrap;}
.btn-row--center{justify-content:center;}

/* ---- Hero ---- */
.hero{padding:3rem 0 2.4rem;text-align:center;background:linear-gradient(180deg,var(--cream) 0%,#FFF0DB 100%);position:relative;overflow:hidden;}
.hero .wrap{position:relative;z-index:2;}
.hero h1{margin-bottom:0.9rem;}
.hero .lead{font-size:clamp(1rem,2vw,1.2rem);color:var(--ink-soft);max-width:680px;margin:0 auto 1.6rem;line-height:1.6;font-weight:600;}
.hero .lead strong{color:var(--coral-deep);}
.confetti{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0.5;}
.confetti span{position:absolute;font-size:1.4rem;}

/* ---- Video frame ---- */
.video-frame{max-width:840px;margin:1.4rem auto 0;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-hi);border:3px solid #fff;}
.video-wrap{position:relative;width:100%;padding-bottom:56.25%;background:#000;}
.video-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:none;display:block;}

/* ---- Sections ---- */
.section{padding:3.6rem 0;}
.section--band{background:var(--cream-deep);}
.section-head{text-align:center;max-width:680px;margin:0 auto 2.2rem;}
.section-head p{font-size:1rem;color:var(--ink-soft);margin-top:0.6rem;}

/* ---- Song cover-art cards ---- */
.song-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.5rem;}
.song-card{display:flex;flex-direction:column;background:var(--cream-card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:transform .18s,box-shadow .18s;position:relative;}
.song-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-hi);}
.song-cover{position:relative;width:100%;aspect-ratio:16/9;background:#FBEAD2;overflow:hidden;}
.song-cover img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s;}
.song-card:hover .song-cover img{transform:scale(1.04);}
.song-cover .play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;}
.song-cover .play span{width:56px;height:56px;border-radius:50%;background:rgba(255,255,255,0.92);color:var(--coral);font-size:1.4rem;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px rgba(0,0,0,0.18);padding-left:4px;}
.song-cover .badge{position:absolute;top:0.7rem;left:0.7rem;}
.song-body{padding:1.1rem 1.2rem 1.3rem;display:flex;flex-direction:column;flex:1;}
.song-kicker{font-size:0.68rem;font-weight:900;letter-spacing:0.1em;text-transform:uppercase;color:var(--coral-deep);margin-bottom:0.3rem;}
.song-name{font-size:1.18rem;font-weight:900;color:var(--ink);margin-bottom:0.3rem;line-height:1.2;}
.song-blurb{font-size:0.88rem;color:var(--ink-soft);line-height:1.55;flex:1;margin-bottom:0.8rem;}
.song-go{font-size:0.85rem;font-weight:900;color:var(--coral);margin-top:auto;}

/* ---- "Rooms of the school" ---- */
.rooms{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;}
@media(max-width:820px){.rooms{grid-template-columns:1fr;}}
.room{display:block;background:var(--cream-card);border:1px solid var(--line);border-radius:var(--radius);padding:1.9rem 1.7rem;box-shadow:var(--shadow);transition:transform .18s,box-shadow .18s;border-top:6px solid var(--coral);}
.room:hover{transform:translateY(-4px);box-shadow:var(--shadow-hi);}
.room--sing{border-top-color:var(--coral);}
.room--teach{border-top-color:var(--green);}
.room--cover{border-top-color:var(--sky);}
.room--kids{border-top-color:var(--pink);}
.room-icon{font-size:2.6rem;line-height:1;margin-bottom:0.7rem;}
.room h3{font-size:1.35rem;font-weight:900;margin-bottom:0.5rem;}
.room p{font-size:0.95rem;color:var(--ink-soft);margin-bottom:0.9rem;line-height:1.6;}
.room-go{font-size:0.9rem;font-weight:900;color:var(--coral);}
.room--teach .room-go{color:var(--green-deep);}
.room--cover .room-go{color:var(--sky-deep);}
.room--kids .room-go{color:var(--pink-deep);}

/* ---- Meta strip (song pages) ---- */
.meta-strip{background:#FFF0DB;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:1.3rem 0;}
.meta-strip .wrap{display:flex;flex-wrap:wrap;gap:1.6rem 2.4rem;justify-content:center;}
.meta-item{text-align:center;}
.meta-label{font-size:0.66rem;font-weight:900;letter-spacing:0.12em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:0.18rem;}
.meta-value{font-size:0.95rem;font-weight:800;color:var(--ink);}

/* ---- Lyrics / sing-along ---- */
.lyrics{background:var(--cream-card);border:1px solid var(--line);border-radius:var(--radius);padding:2rem 2.4rem;font-size:1.08rem;line-height:2;color:var(--ink);box-shadow:var(--shadow);}
.lyrics .verse{margin-bottom:1.4rem;}
.lyrics .verse:last-child{margin-bottom:0;}
.lyrics .chorus{font-weight:800;color:var(--coral-deep);}
.callout{background:#FFF0DB;border-left:5px solid var(--coral);border-radius:0 var(--radius-sm) var(--radius-sm) 0;padding:1.2rem 1.5rem;margin:1.2rem 0;}
.callout p{color:var(--ink);font-weight:600;margin:0;}

/* ---- Platform buttons ---- */
.platforms{display:flex;gap:0.7rem;flex-wrap:wrap;margin-top:1.4rem;}

/* ---- Kids block (quiz / activity) ---- */
.kids-card{background:#EAF3FB;border:1px solid #CFE3F4;border-radius:var(--radius);padding:1.7rem 1.9rem;box-shadow:var(--shadow);}
.kids-card h3{color:var(--sky-deep);margin-bottom:0.7rem;}
.kids-card .q{margin-bottom:0.85rem;}
.kids-card .q strong{color:var(--ink);}
.kids-card .a{color:var(--sky-deep);font-weight:800;}
.kids-card .activity{margin-top:0.6rem;color:var(--ink-soft);}

/* ---- License box ---- */
.license{background:#EEF6E7;border-left:5px solid var(--green);border-radius:0 var(--radius-sm) var(--radius-sm) 0;padding:1.5rem 1.8rem;}
.license h3{color:var(--green-deep);font-size:1.15rem;font-weight:900;margin-bottom:0.5rem;}
.license p{color:var(--ink);font-size:0.95rem;}
.license .ok{color:var(--green-deep);font-weight:800;}
.license a{color:var(--coral-deep);font-weight:800;}
.license .fine{font-size:0.82rem;color:var(--ink-soft);margin-top:0.7rem;}

/* ---- Stats ---- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem;max-width:840px;margin:0 auto;text-align:center;}
@media(max-width:640px){.stats{grid-template-columns:repeat(2,1fr);}}
.stat .n{font-size:clamp(1.8rem,4vw,2.5rem);font-weight:900;color:var(--coral);line-height:1;}
.stat .l{font-size:0.72rem;font-weight:900;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink-soft);margin-top:0.4rem;}
.stat .s{font-size:0.7rem;color:var(--ink-mute);margin-top:0.2rem;}

/* ---- Big festive CTA band ---- */
.cta-band{background:linear-gradient(135deg,var(--coral) 0%,var(--amber) 100%);color:#fff;border-radius:var(--radius);padding:2.6rem 2rem;text-align:center;box-shadow:var(--shadow-hi);}
.cta-band h2{color:#fff;}
.cta-band p{color:rgba(255,255,255,0.95);max-width:600px;margin:0.7rem auto 1.4rem;}
.cta-band .btn--primary{background:#fff;color:var(--coral-deep);}
.cta-band .btn--primary:hover{background:#FFF0DB;}

/* ---- Footer ---- */
.festive footer{background:#3A2A1A;color:#FFF6E9;padding:3rem 0 1.8rem;}
.festive footer a{color:#FFD79A;}
.festive footer a:hover{color:#fff;}
.foot-top{display:grid;grid-template-columns:2fr 1fr 1fr;gap:2.5rem;margin-bottom:1.8rem;padding-bottom:1.8rem;border-bottom:1px solid rgba(255,255,255,0.16);}
@media(max-width:760px){.foot-top{grid-template-columns:1fr;gap:1.4rem;}}
.foot-brand .brand{color:#fff;}
.foot-brand p{color:rgba(255,246,233,0.82);margin-top:0.7rem;font-size:0.95rem;font-weight:600;}
.foot-col h4{font-size:0.82rem;font-weight:900;letter-spacing:0.1em;text-transform:uppercase;color:#FFD79A;margin-bottom:0.8rem;}
.foot-col ul{list-style:none;}
.foot-col li{margin-bottom:0.5rem;}
.foot-col a{font-size:0.95rem;font-weight:700;color:#FFF6E9;}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:0.8rem;}
.foot-bottom p{font-size:0.86rem;color:rgba(255,246,233,0.78);margin:0;}

/* ---- Back link (song pages) ---- */
.backlink{font-size:0.9rem;font-weight:800;color:var(--ink-soft);display:inline-flex;align-items:center;gap:0.4rem;}
.backlink:hover{color:var(--coral);}

/* ============================================================================
   FORMS, AUTH, FLASH, VOTING  (PROMPT_0270 Run 2, 2026-06-08)
   Festive participation layer: Google Sign-In, submit/suggest forms, voting.
   ============================================================================ */

/* ---- Sign-in card + auth states ---- */
.auth-card{background:var(--cream-card);border:1px solid var(--line);border-radius:var(--radius);padding:2rem 2.2rem;box-shadow:var(--shadow);max-width:560px;margin:0 auto;text-align:center;}
.auth-card h3{font-size:1.2rem;margin-bottom:0.5rem;}
.auth-card p{margin-bottom:1.1rem;}
.gbtn{display:inline-flex;align-items:center;gap:0.6rem;background:#fff;color:#3A2A1A;border:2px solid var(--line);border-radius:999px;padding:0.6rem 1.3rem;font-weight:800;font-size:0.98rem;cursor:pointer;font-family:inherit;box-shadow:var(--shadow);transition:transform .15s,border-color .15s;}
.gbtn:hover{transform:translateY(-2px);border-color:var(--coral);}
.gbtn .g{width:20px;height:20px;display:inline-block;border-radius:50%;background:conic-gradient(from -45deg,#EA4335 0deg 90deg,#FBBC05 90deg 180deg,#34A853 180deg 270deg,#4285F4 270deg 360deg);}
.signed-as{display:inline-flex;align-items:center;gap:0.6rem;background:var(--cream-card);border:1px solid var(--line);border-radius:999px;padding:0.4rem 0.4rem 0.4rem 1rem;font-weight:700;color:var(--ink-soft);font-size:0.92rem;box-shadow:var(--shadow);}
.signed-as img{width:30px;height:30px;border-radius:50%;}
.linkbtn{background:none;border:none;color:var(--coral-deep);font-family:inherit;font-weight:800;cursor:pointer;text-decoration:underline;font-size:0.9rem;padding:0;}

/* ---- Festive forms ---- */
.fform{background:var(--cream-card);border:1px solid var(--line);border-radius:var(--radius);padding:1.8rem 2rem;box-shadow:var(--shadow);display:grid;gap:1.1rem;max-width:640px;margin:0 auto;}
.fform .field label{display:block;font-size:0.82rem;font-weight:900;letter-spacing:0.03em;color:var(--ink);margin-bottom:0.35rem;}
.fform .field .opt{color:var(--ink-mute);font-weight:700;font-size:0.84em;margin-left:0.3rem;}
.fform .req{color:var(--pink-deep);font-weight:900;margin-left:0.15rem;}
.fform input[type=text],.fform input[type=url],.fform input[type=email],.fform textarea{width:100%;font:inherit;font-size:1rem;background:#fff;color:var(--ink);border:2px solid var(--line);border-radius:var(--radius-sm);padding:0.7rem 0.9rem;transition:border-color .15s,box-shadow .15s;}
.fform textarea{min-height:96px;resize:vertical;line-height:1.6;}
.fform input:focus,.fform textarea:focus{outline:none;border-color:var(--coral);box-shadow:0 0 0 4px #FFE7CB;}
.fform .check{display:flex;gap:0.7rem;align-items:flex-start;background:#FFF0DB;border-radius:var(--radius-sm);padding:0.9rem 1.1rem;}
.fform .check input{margin-top:0.25rem;width:1.15rem;height:1.15rem;accent-color:var(--coral);flex:none;}
.fform .check label{font-size:0.9rem;font-weight:700;color:var(--ink-soft);line-height:1.5;margin:0;}
.fhint{font-size:0.82rem;color:var(--ink-mute);}
.url-preview{margin-top:0.4rem;border-radius:var(--radius-sm);overflow:hidden;border:2px solid var(--line);}
.url-preview .preview-meta{font-size:0.8rem;color:var(--ink-mute);padding:0.4rem 0.6rem;margin:0;background:var(--cream-card);}

/* ---- Flash toast ---- */
#flash{position:fixed;top:1.2rem;left:50%;transform:translateX(-50%);z-index:300;padding:0.9rem 1.3rem;border-radius:999px;font-size:0.95rem;font-weight:800;max-width:90vw;box-shadow:var(--shadow-hi);}
#flash.flash--ok{background:#EEF6E7;color:var(--green-deep);border:2px solid #BfDca6;}
#flash.flash--error{background:#FDECEC;color:var(--pink-deep);border:2px solid #F3C0CF;}
#flash[hidden]{display:none;}

/* ---- Voting / Song of the Month ---- */
.poll-card{background:var(--cream-card);border:1px solid var(--line);border-radius:var(--radius);padding:1.8rem 2rem;box-shadow:var(--shadow);max-width:720px;margin:0 auto;}
.poll-opt{display:flex;align-items:center;gap:1rem;padding:0.9rem 1rem;border:2px solid var(--line);border-radius:var(--radius-sm);margin-bottom:0.8rem;background:#fff;transition:border-color .15s,transform .15s;}
.poll-opt:hover{border-color:var(--coral);transform:translateY(-1px);}
.poll-opt .thumb{width:96px;height:54px;border-radius:8px;object-fit:cover;flex:none;background:#000;}
.poll-opt .pmeta{flex:1;min-width:0;}
.poll-opt .pname{font-weight:900;color:var(--ink);}
.poll-opt .pkick{font-size:0.78rem;color:var(--ink-mute);font-weight:700;}
.poll-opt .votebtn{flex:none;background:var(--coral);color:#fff;border:none;border-radius:999px;padding:0.5rem 1.1rem;font-weight:900;font-family:inherit;cursor:pointer;font-size:0.9rem;}
.poll-opt .votebtn:hover{background:var(--coral-deep);}
.poll-opt .votebtn[disabled]{background:var(--green);cursor:default;}
.lb-bar{height:12px;border-radius:999px;background:var(--line-soft);overflow:hidden;margin-top:0.45rem;}
.lb-bar > span{display:block;height:100%;background:linear-gradient(90deg,var(--coral),var(--amber));border-radius:999px;}
.lb-count{font-size:0.78rem;color:var(--ink-mute);font-weight:800;margin-top:0.25rem;}
.winner-badge{display:inline-block;background:var(--amber);color:#fff;font-weight:900;border-radius:999px;padding:0.22rem 0.7rem;font-size:0.72rem;letter-spacing:0.04em;}

/* ---- Admin queue ---- */
.queue{display:grid;gap:1.3rem;margin-top:1.4rem;}
.qcard{background:var(--cream-card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:grid;grid-template-columns:300px 1fr;box-shadow:var(--shadow);}
@media(max-width:720px){.qcard{grid-template-columns:1fr;}}
.qbody{padding:1.2rem 1.4rem;}
.qbody h3{font-size:1.1rem;margin-bottom:0.2rem;}
.qbody .kind-tag{display:inline-block;font-size:0.66rem;font-weight:900;letter-spacing:0.06em;text-transform:uppercase;padding:0.15rem 0.55rem;border-radius:999px;color:#fff;background:var(--sky);margin-bottom:0.5rem;}
.qbody .kind-tag.suggestion{background:var(--pink);}
.qbody .why{font-style:italic;color:var(--ink-soft);margin:0.4rem 0;}
.qbody .byline{font-size:0.78rem;color:var(--ink-mute);font-weight:700;margin-top:0.4rem;}
.qbody .actions{display:flex;gap:0.6rem;margin-top:0.9rem;flex-wrap:wrap;}
.btn--approve{background:var(--green);color:#fff;border:none;border-radius:999px;padding:0.5rem 1.1rem;font-weight:900;font-family:inherit;cursor:pointer;}
.btn--approve:hover{background:var(--green-deep);}
.btn--reject{background:#fff;color:var(--pink-deep);border:2px solid #F3C0CF;border-radius:999px;padding:0.45rem 1rem;font-weight:900;font-family:inherit;cursor:pointer;}
.btn--reject:hover{background:#FDECEC;}
.queue-empty{text-align:center;padding:2.5rem 1rem;color:var(--ink-mute);font-weight:700;}

/* ── Vote showcase (PROMPT_0273): listen-then-pick, up to 3 ─────────── */
.vote-section{padding-bottom:7.5rem;}
.vote-toggle{display:flex;gap:0.4rem;justify-content:center;background:var(--cream-deep);border-radius:999px;padding:0.35rem;max-width:380px;margin:0 auto 1.6rem;}
.vote-toggle__btn{flex:1;border:none;background:transparent;font-family:inherit;font-weight:900;color:var(--ink-soft);padding:0.6rem 0.8rem;border-radius:999px;cursor:pointer;font-size:0.95rem;transition:background .15s,color .15s;}
.vote-toggle__btn.is-on{background:var(--coral);color:#fff;box-shadow:var(--shadow);}
.vote-list{display:flex;flex-direction:column;gap:1rem;max-width:760px;margin:0 auto;}
.vote-more-list{display:flex;flex-direction:column;gap:1rem;}
.vote-more-list:not([hidden]){margin-top:1rem;}
.vote-more-wrap{text-align:center;margin:1.4rem auto 0;}
.vcard{display:flex;gap:1.1rem;align-items:stretch;background:var(--cream-card);border:2px solid var(--line);border-radius:var(--radius);padding:0.9rem;box-shadow:var(--shadow);transition:border-color .15s,box-shadow .15s;}
.vcard.is-picked{border-color:var(--coral);box-shadow:var(--shadow-hi);}
.vcard__player{position:relative;flex:0 0 44%;max-width:300px;aspect-ratio:16/9;border:none;padding:0;margin:0;border-radius:var(--radius-sm);overflow:hidden;background:#000;cursor:pointer;display:block;}
.vcard__thumb{width:100%;height:100%;object-fit:cover;display:block;}
.vcard__play{position:absolute;inset:0;margin:auto;width:54px;height:54px;display:flex;align-items:center;justify-content:center;background:rgba(192,98,15,0.92);color:#fff;border-radius:999px;font-size:1.25rem;padding-left:5px;box-shadow:0 4px 14px rgba(0,0,0,.32);pointer-events:none;}
.vcard__player iframe{width:100%;height:100%;border:0;display:block;}
.vcard__meta{flex:1;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:0.8rem;cursor:pointer;margin:0;}
.vcard__text{min-width:0;}
.vcard__kick{display:block;font-size:0.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:0.15rem;}
.vcard__name{display:block;font-weight:900;color:var(--ink);font-size:1.12rem;line-height:1.2;}
.vcard__check{flex:none;position:relative;display:inline-flex;}
.vcard__check input{position:absolute;inset:0;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;}
.vcard__box{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:2px solid var(--line);border-radius:10px;color:transparent;font-weight:900;font-size:1.15rem;transition:.15s;background:#fff;}
.vcard__check input:checked + .vcard__box{background:var(--coral);border-color:var(--coral);color:#fff;}
.vcard__check input:focus-visible + .vcard__box{outline:3px solid var(--amber);outline-offset:2px;}
.vote-sticky{position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--cream-card);border-top:2px solid var(--line);box-shadow:0 -8px 24px rgba(192,98,15,.14);padding:0.7rem 0;}
.vote-sticky__inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;}
.vote-sticky__info{display:flex;flex-direction:column;line-height:1.25;min-width:0;}
.vote-sticky__hint{font-weight:900;color:var(--ink);font-size:1rem;}
.vote-sticky__counter{font-weight:800;color:var(--coral-deep);font-size:0.85rem;}
.vote-sticky__btn{flex:none;}
.vote-sticky__btn[disabled]{opacity:.5;cursor:not-allowed;}
.leaderboard{max-width:760px;margin:2.6rem auto 0;background:var(--cream-card);border:1px solid var(--line);border-radius:var(--radius);padding:1.4rem 1.6rem;box-shadow:var(--shadow);}
.leaderboard__h{margin:0 0 1rem;font-size:0.95rem;font-weight:900;color:var(--ink);text-transform:uppercase;letter-spacing:.05em;}
.lb-row{margin-bottom:0.9rem;}
.lb-row:last-child{margin-bottom:0;}
.lb-row .lb-name{font-weight:800;color:var(--ink-soft);font-size:0.92rem;margin-bottom:0.2rem;}
@media(max-width:560px){
  .vcard{flex-direction:column;}
  .vcard__player{flex:none;max-width:none;width:100%;}
  .vcard__meta{padding-top:0.2rem;}
  .vote-sticky__hint{font-size:0.88rem;}
}
