
:root{
  --navy:#02253f;
  --navy2:#063b63;
  --cyan:#56c6ff;
  --white:#f8fbff;
}
*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;background:#021827;overflow:hidden;font-family:Arial,Helvetica,sans-serif;color:var(--white)}
body{display:grid;place-items:center}
#stage{
  position:relative;
  width:100vw;height:56.25vw;
  max-width:177.7778vh;max-height:100vh;
  overflow:hidden;background:#04253d;
}
.topbar{
  position:absolute;z-index:20;left:0;top:0;width:100%;height:17.1%;
  background:
    radial-gradient(circle at 59% -40%,rgba(44,149,255,.30),transparent 34%),
    linear-gradient(100deg,#083555 0%,#083b63 42%,#062d4d 100%);
  border-bottom:.13vw solid #5bc7ff;
  display:flex;align-items:center;justify-content:space-between;
  padding:0 2.25% 0 2.7%;
  box-shadow:0 .25vw .75vw rgba(0,0,0,.18);
}
.swoosh{position:absolute;pointer-events:none;border-radius:0 0 50% 50%;opacity:.43;filter:blur(.01vw)}
.swoosh-a{width:43%;height:118%;left:43%;top:-83%;background:linear-gradient(110deg,transparent 10%,rgba(34,140,220,.75) 48%,transparent 80%);transform:rotate(-7deg)}
.swoosh-b{width:31%;height:95%;left:58%;top:-69%;background:linear-gradient(110deg,transparent 10%,rgba(84,177,255,.38),transparent 80%);transform:rotate(-10deg)}
.glint{position:absolute;height:.13vw;width:10%;left:37%;bottom:-.06vw;background:linear-gradient(90deg,transparent,#c8f1ff,transparent);filter:blur(.05vw)}
.brand{display:flex;align-items:center;height:100%;position:relative;z-index:2}
.brandText{transform:translateY(-.05vw);padding-left:.2vw}
.title{font-size:2.72vw;font-weight:800;letter-spacing:.01em;line-height:1}
.sub{margin-top:.7vw;font-size:.87vw;line-height:1.42;letter-spacing:.20em;color:#c8d8e6}
.rightStatus{position:relative;z-index:2;display:flex;align-items:center;gap:1.65vw;height:68%}
.date{width:17vw;text-align:right;font-size:1.02vw;line-height:1.3;color:#f4f8fb;white-space:nowrap}
.vline{width:.07vw;height:56%;background:rgba(188,222,244,.72)}
.clock{font-size:3.25vw;font-weight:800;letter-spacing:.01em}
.weather{display:flex;align-items:center;gap:.7vw;min-width:8.2vw}
.weatherIcon{font-size:2.85vw;filter:drop-shadow(0 .1vw .18vw rgba(0,0,0,.18))}
.weatherText strong{display:block;font-size:1.48vw;line-height:1}
.weatherText span{display:block;margin-top:.35vw;font-size:.88vw;color:#eef7fb}
.hero{position:absolute;top:17.1%;left:0;width:100%;bottom:9.15%;overflow:hidden}
.heroImage{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 53%;
  animation:slowZoom 28s ease-in-out infinite alternate;
}
.heroLight{
  position:absolute;inset:0;
  background:
    radial-gradient(circle at 88% 16%,rgba(255,211,125,.35),transparent 23%),
    linear-gradient(180deg,rgba(0,19,32,.03),rgba(0,18,31,.02));
}
.leftShade{
  position:absolute;inset:0;
  background:
    linear-gradient(90deg,
      rgba(0,24,42,.985) 0%,
      rgba(0,27,47,.95) 25%,
      rgba(0,27,47,.88) 43%,
      rgba(0,27,47,.82) 56%,
      rgba(0,25,43,.52) 62%,
      rgba(0,18,30,.12) 72%,
      rgba(0,0,0,0) 80%),
    linear-gradient(180deg,rgba(0,25,42,.08),rgba(0,26,43,.14));
}
.leftContent{position:absolute;left:3.45%;top:15.7%;width:50%;text-shadow:0 .15vw .5vw rgba(0,0,0,.22)}
.eyebrow{font-size:1.72vw;letter-spacing:.29em;color:#5ec8ff;font-weight:300;margin-bottom:.85vw}
h1{margin:0;font-size:4.45vw;line-height:.98;letter-spacing:.015em}
h1 b{display:block;font-weight:850}
h1 span{display:block;font-weight:300;letter-spacing:.055em;margin-top:.48vw}
.cyanLine{width:5.8vw;height:.28vw;border-radius:5px;background:var(--cyan);box-shadow:0 0 .8vw rgba(70,192,255,.45);margin:1.55vw 0 1.2vw}
.leftContent p{font-size:1.47vw;margin:0 0 1.95vw;color:#f7fbfd;font-weight:400}
.quickAreas{display:flex;gap:2.7vw}
.area{display:flex;flex-direction:column;align-items:center;gap:.55vw;min-width:5.6vw}
.icon{
  display:grid;place-items:center;
  width:4.45vw;height:4.45vw;border-radius:50%;
  border:.14vw solid #5bc8ff;
  background:linear-gradient(180deg,rgba(3,43,70,.46),rgba(1,27,46,.52));
  box-shadow:inset 0 0 1vw rgba(62,176,238,.09),0 .18vw .45vw rgba(0,0,0,.16);
  color:white;
}
.icon svg{
  width:55%;
  height:55%;
  fill:none;
  stroke:currentColor;
  stroke-width:3.5;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.area span{font-size:.93vw;font-weight:500}
.ticker{
  position:absolute;z-index:30;left:0;bottom:0;width:100%;height:9.15%;
  display:flex;background:#03223a;border-top:.12vw solid #42bdf9;
  box-shadow:0 -.35vw 1vw rgba(0,0,0,.18);
}
.tickerCap{
  width:16.5%;height:100%;
  display:flex;align-items:center;gap:.9vw;padding-left:1.75vw;
  background:linear-gradient(110deg,#0c6bc4,#0750a0);
  clip-path:polygon(0 0,92% 0,100% 50%,92% 100%,0 100%);
  font-size:1.25vw;
}
.speaker{
  width:2.1vw;
  height:2.1vw;
  fill:none;
  stroke:white;
  stroke-width:4;
  stroke-linecap:round;
  stroke-linejoin:round;
  flex:0 0 auto;
}
.tickerBody{
  position:relative;
  overflow:hidden;
  flex:1;
  display:flex;
  align-items:center;
}
.tickerGlow{position:absolute;left:0;top:0;width:16%;height:.12vw;background:linear-gradient(90deg,#97eaff,transparent)}

to{transform:translateX(-100%)}}
@keyframes slowZoom{from{transform:scale(1.005)}to{transform:scale(1.032)}}
@media (prefers-reduced-motion: reduce){.heroImage,.tickerTrack{animation:none}}




/* ===== V1.2 SLIDE SYSTEM ===== */
.hero{position:absolute;top:17.1%;left:0;width:100%;bottom:9.15%;overflow:hidden}
.slide{
  position:absolute;
  inset:0;
  opacity:0;
  visibility:hidden;
  transition:opacity 1s ease, visibility 1s ease;
}
.slide.active{opacity:1;visibility:visible;z-index:3}
.welcomeSlide .heroImage,
.welcomeSlide .heroLight,
.welcomeSlide .leftShade,
.welcomeSlide .leftContent{position:absolute}
.welcomeSlide .heroImage{inset:0}
.welcomeSlide .heroLight,.welcomeSlide .leftShade{inset:0}

/* ===== WEATHER SLIDE ===== */
.weatherSlide{
  background:
    radial-gradient(circle at 82% 18%,rgba(75,176,255,.25),transparent 28%),
    linear-gradient(145deg,#052b49 0%,#0b4e7c 50%,#0a3f68 100%);
  overflow:hidden;
}
.weatherBackdrop{
  position:absolute;inset:0;
  background:
    radial-gradient(circle at 74% 24%,rgba(255,219,115,.20),transparent 12%),
    radial-gradient(circle at 78% 28%,rgba(255,255,255,.13),transparent 23%),
    linear-gradient(180deg,rgba(255,255,255,.04),rgba(0,0,0,.06));
}
.weatherBackdrop::before,
.weatherBackdrop::after{
  content:"";position:absolute;border-radius:50%;filter:blur(1.1vw);opacity:.35
}
.weatherBackdrop::before{
  width:42vw;height:17vw;right:-4vw;top:2vw;background:rgba(255,255,255,.22);
  box-shadow:-15vw 6vw 0 rgba(255,255,255,.12), -27vw 2vw 0 rgba(255,255,255,.08)
}
.weatherBackdrop::after{
  width:22vw;height:22vw;right:4vw;top:-10vw;background:rgba(255,210,85,.18)
}
.weatherGlow{
  position:absolute;left:0;right:0;top:0;height:.18vw;
  background:linear-gradient(90deg,transparent,#72d6ff,transparent);
  box-shadow:0 0 1vw rgba(66,195,255,.5)
}
.weatherContent{
  position:absolute;inset:0;padding:3.2% 4.2% 2.7%;
  display:flex;flex-direction:column;
}
.weatherHeading{display:flex;justify-content:space-between;align-items:flex-start}
.weatherEyebrow{
  font-size:1.15vw;letter-spacing:.28em;color:#8edcff;font-weight:700
}
.weatherHeading h2{
  margin:.5vw 0 0;font-size:3vw;line-height:1;font-weight:800;letter-spacing:.01em
}
.weatherUpdated{margin-top:.65vw;font-size:.82vw;color:#c6dbea}
.weatherHeroIcon{
  font-size:6.2vw;line-height:1;filter:drop-shadow(0 .4vw .8vw rgba(0,0,0,.24));
  animation:weatherFloat 5s ease-in-out infinite
}
.weatherMainGrid{
  display:grid;grid-template-columns:1.05fr 1.5fr;gap:2.2vw;
  align-items:stretch;margin-top:2.2vw;flex:1;min-height:0
}
.weatherNow{
  background:linear-gradient(145deg,rgba(2,33,55,.82),rgba(5,50,81,.62));
  border:.08vw solid rgba(138,216,255,.36);border-radius:1vw;
  padding:2vw 2.2vw;box-shadow:0 .5vw 1.4vw rgba(0,0,0,.14),inset 0 0 2vw rgba(83,187,255,.05)
}
.tempRow{display:flex;flex-direction:column}
.weatherTemp{font-size:7.6vw;font-weight:300;line-height:.92;letter-spacing:-.05em}
.weatherCondition{margin-top:.8vw;font-size:1.45vw;font-weight:700;color:#eef9ff}
.weatherFacts{display:grid;grid-template-columns:repeat(3,1fr);gap:.75vw;margin-top:2vw}
.weatherFact{
  padding:1vw;background:rgba(255,255,255,.07);border-radius:.65vw;
  border:.06vw solid rgba(255,255,255,.10)
}
.factLabel{display:block;font-size:.72vw;color:#b9d4e6;margin-bottom:.35vw}
.weatherFact strong{font-size:1.05vw}
.weatherForecast{display:grid;grid-template-columns:repeat(3,1fr);gap:1vw}
.forecastCard{
  position:relative;display:flex;flex-direction:column;justify-content:flex-end;
  padding:1.5vw;border-radius:1vw;overflow:hidden;
  background:linear-gradient(180deg,rgba(255,255,255,.15),rgba(255,255,255,.07));
  border:.08vw solid rgba(173,225,255,.27);box-shadow:0 .5vw 1.3vw rgba(0,0,0,.12)
}
.forecastCard::before{
  content:"";position:absolute;width:7vw;height:7vw;right:-1.5vw;top:1vw;border-radius:50%;
  background:radial-gradient(circle,rgba(255,220,105,.65),rgba(255,215,80,.12) 55%,transparent 70%)
}
.forecastDay{font-size:1.05vw;color:#d9edf9;font-weight:700}
.forecastIcon{font-size:3.3vw;margin:auto 0;text-align:center;filter:drop-shadow(0 .25vw .4vw rgba(0,0,0,.18))}
.forecastTemps{display:flex;align-items:baseline;gap:.55vw}
.forecastMax{font-size:2.25vw;font-weight:800}
.forecastMin{font-size:1.05vw;color:#bdd6e7}
.forecastRain{margin-top:.45vw;font-size:.78vw;color:#cbe8f7}
.weatherBottom{
  position:relative;
  display:flex;justify-content:space-between;align-items:center;
  margin-top:.9vw;padding:.7vw 1.1vw .45vw;
  font-size:.82vw;color:#d7eaf4
}
.weatherBottom::before{
  content:"";
  position:absolute;
  left:1.1vw;
  right:8.5vw;
  top:0;
  height:.06vw;
  background:linear-gradient(90deg,rgba(169,222,250,.24),rgba(169,222,250,.08),transparent);
}
.weatherNote{display:flex;align-items:center;gap:.65vw}
.weatherNoteDot{width:.5vw;height:.5vw;border-radius:50%;background:#67d0ff;box-shadow:0 0 .7vw #67d0ff}
.weatherSource{opacity:.72}
.weatherError{
  color:#ffe2a8!important
}
@keyframes weatherFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-.45vw)}}
@media (prefers-reduced-motion:reduce){.weatherHeroIcon{animation:none}}

/* ===== V1.3 SETTINGS ===== */
.settingsBtn{
 position:absolute;z-index:90;right:.7vw;bottom:10.1%;width:2.25vw;height:2.25vw;
 border:1px solid rgba(130,210,255,.35);border-radius:50%;
 background:rgba(1,31,52,.56);color:rgba(255,255,255,.68);
 font-size:1.1vw;cursor:pointer;backdrop-filter:blur(8px);
 opacity:.32;transition:.2s
}
.settingsBtn:hover{opacity:1;background:#075b9b;color:white;transform:rotate(18deg)}
.settingsOverlay{
 position:absolute;z-index:100;inset:0;background:rgba(0,14,25,.62);
 backdrop-filter:blur(.28vw);display:flex;justify-content:flex-end;
 opacity:0;visibility:hidden;transition:.25s
}
.settingsOverlay.open{opacity:1;visibility:visible}
.settingsPanel{
 width:34%;height:100%;background:linear-gradient(180deg,#073a5e,#042b48);
 box-shadow:-1vw 0 3vw rgba(0,0,0,.35);padding:2vw;
 transform:translateX(100%);transition:.32s ease;overflow:auto
}
.settingsOverlay.open .settingsPanel{transform:translateX(0)}
.settingsHead{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:1.2vw;border-bottom:1px solid #ffffff24}
.settingsHead small{font-size:.65vw;letter-spacing:.22em;color:#6dccff}
.settingsHead h3{margin:.3vw 0 0;font-size:1.55vw}
.closeBtn{border:0;background:transparent;color:white;font-size:2vw;cursor:pointer;line-height:1}
.settingsSection{margin-top:1.6vw}
.sectionTitle{font-size:.72vw;text-transform:uppercase;letter-spacing:.18em;color:#8dd9ff;margin-bottom:.8vw}
.slideSetting{
 display:grid;grid-template-columns:auto 1fr auto;gap:.8vw;align-items:center;
 padding:.85vw;background:#ffffff0c;border:1px solid #ffffff15;border-radius:.65vw;margin-bottom:.6vw
}
.slideSettingText b,.slideSettingText small{display:block}
.slideSettingText b{font-size:.9vw}.slideSettingText small{font-size:.65vw;color:#b9cfdd;margin-top:.18vw}
.switch input{display:none}.switch span{display:block;width:2.2vw;height:1.2vw;border-radius:1vw;background:#38556a;position:relative;cursor:pointer}
.switch span:after{content:"";position:absolute;width:.86vw;height:.86vw;border-radius:50%;background:white;left:.17vw;top:.17vw;transition:.2s}
.switch input:checked+span{background:#168bd3}.switch input:checked+span:after{left:1.17vw}
.seconds{font-size:.65vw;color:#bfd5e3;display:flex;align-items:center;gap:.35vw}
.seconds input{width:3.2vw;padding:.35vw;border-radius:.3vw;border:1px solid #ffffff26;background:#031f35;color:white}
#tickerInput{width:100%;resize:vertical;padding:.75vw;border-radius:.5vw;border:1px solid #ffffff25;background:#031f35;color:white;font:inherit;font-size:.78vw;line-height:1.45}
.controlButtons{display:flex;gap:.6vw}.panelBtn,.saveBtn,.textBtn{cursor:pointer;border-radius:.45vw;padding:.65vw .85vw;font-weight:700;font-size:.75vw}
.panelBtn{flex:1;border:1px solid #ffffff25;background:#ffffff0c;color:white}.panelBtn.primary,.saveBtn{background:#0c82cd;border:1px solid #39b8ff;color:white}
.settingsFooter{display:flex;justify-content:space-between;align-items:center;margin-top:1.8vw;padding-top:1.1vw;border-top:1px solid #ffffff24}
.textBtn{background:transparent;border:0;color:#aac7d9}.saveBtn{padding:.75vw 1vw}

/* ===== V1.3.2 TICKER FINAL FIX ===== */
.tickerBody{
  position:relative;
  overflow:hidden;
  flex:1;
  display:flex;
  align-items:center;
}
.tickerTrack{
  display:flex;
  width:max-content;
  min-width:max-content;
  align-items:center;
  white-space:nowrap;
  font-size:1.02vw;
  color:#f4f8fb;
  will-change:transform;
  animation:szTicker 34s linear infinite;
}
.tickerCopy{
  display:inline-block;
  flex:0 0 auto;
  padding-right:4vw;
}
@keyframes szTicker{
  0%{transform:translateX(0)}
  100%{transform:translateX(-50%)}
}

/* Weather footer divider stays below the cards, never through them */
.weatherBottom{
  position:relative;
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-top:1vw;
  padding:.8vw 1.1vw .45vw;
  font-size:.82vw;
  color:#d7eaf4;
  border-top:none !important;
}
.weatherBottom::before{
  content:"";
  position:absolute;
  left:1.1vw;
  right:8.5vw;
  top:0;
  height:.05vw;
  background:linear-gradient(90deg,rgba(169,222,250,.20),rgba(169,222,250,.06),transparent);
}

/* ===== V1.4 TODAY SLIDE ===== */
.todaySlide{background:linear-gradient(145deg,#052c49,#0b527f 55%,#083b61);overflow:hidden}
.todayBackdrop{position:absolute;inset:0;background:radial-gradient(circle at 78% 20%,rgba(89,190,255,.20),transparent 28%),linear-gradient(180deg,rgba(255,255,255,.035),transparent)}
.todayContent{position:absolute;inset:0;padding:3.1% 4.2% 2.7%;display:flex;flex-direction:column}
.todayHead{display:flex;justify-content:space-between;align-items:flex-start}
.todayEyebrow{font-size:1.05vw;letter-spacing:.28em;color:#76d3ff;font-weight:700}
.todayHead h2{margin:.45vw 0 0;font-size:3vw;line-height:1;font-weight:800}
.todayDateLabel{margin-top:.55vw;font-size:.85vw;color:#c5deed}
.todayBadge{border:.08vw solid #74d5ff;background:#0a6ca7aa;border-radius:2vw;padding:.55vw 1vw;font-size:.78vw;font-weight:800;letter-spacing:.15em}
.todayServices{display:grid;grid-template-columns:repeat(3,1fr);gap:1vw;margin-top:2vw}
.todayCard{min-height:7vw;border:.08vw solid rgba(154,220,255,.30);background:linear-gradient(145deg,rgba(3,38,63,.78),rgba(255,255,255,.08));border-radius:.85vw;padding:1.25vw;display:flex;align-items:center;gap:1vw;box-shadow:0 .45vw 1.2vw rgba(0,0,0,.12)}
.todayCardIcon{width:3.4vw;height:3.4vw;border-radius:50%;display:grid;place-items:center;background:#ffffff12;border:.08vw solid #67ccff;font-size:1.55vw}
.todayCard span,.todayCard strong{display:block}.todayCard span{font-size:.78vw;color:#bcd8e8;margin-bottom:.38vw}.todayCard strong{font-size:1.28vw}
.todayCard strong.closed{color:#b9c8d1;font-weight:600}
.todayAppointments{margin-top:1.3vw;flex:1;min-height:0;border:.08vw solid rgba(154,220,255,.24);border-radius:.85vw;background:rgba(2,34,57,.48);padding:1.15vw 1.3vw;overflow:hidden}
.todayAppointmentsHead{display:flex;justify-content:space-between;align-items:center;border-bottom:.06vw solid #ffffff1c;padding-bottom:.65vw}
.todayAppointmentsHead span{font-size:.78vw;letter-spacing:.18em;color:#82d8ff;font-weight:800}.todayAppointmentsHead small{font-size:.7vw;color:#aac7d8}
.todayAppointmentList{display:grid;grid-template-columns:repeat(2,1fr);gap:.65vw 1vw;margin-top:.75vw}
.todayAppt{display:grid;grid-template-columns:4.3vw 1fr;gap:.7vw;align-items:center;background:#ffffff09;border-radius:.55vw;padding:.7vw .85vw}
.todayApptTime{font-size:1.1vw;font-weight:800;color:#74d3ff}.todayApptTitle{font-size:.9vw;font-weight:700}.todayApptInfo{display:block;margin-top:.18vw;font-size:.67vw;color:#bcd1df}
.todayEmpty{grid-column:1/-1;padding:1.3vw;text-align:center;color:#b9cfdd;font-size:.9vw}

/* Settings: hours + appointments */
.adminHint{font-size:.66vw;color:#aec9d9;margin:-.3vw 0 .7vw}
.hoursEditor{border:1px solid #ffffff18;border-radius:.55vw;overflow:hidden}
.hoursHeader,.hoursRow{display:grid;grid-template-columns:4.6vw 1fr 1fr 1fr;gap:.45vw;align-items:center;padding:.48vw .55vw}
.hoursHeader{background:#ffffff0c;font-size:.6vw;color:#8dd9ff}.hoursRow{border-top:1px solid #ffffff0d}
.hoursRow label{font-size:.68vw;font-weight:700}.hoursRow input,.appointmentForm input{width:100%;padding:.42vw .48vw;border-radius:.3vw;border:1px solid #ffffff22;background:#031f35;color:white;font-size:.67vw}
.appointmentForm{display:grid;grid-template-columns:1fr .8fr 1.6fr;gap:.45vw}.appointmentForm #apptInfo{grid-column:1/3}.appointmentForm button{grid-column:3}
.appointmentAdminList{margin-top:.65vw;display:flex;flex-direction:column;gap:.4vw;max-height:9vw;overflow:auto}
.adminAppt{display:grid;grid-template-columns:5.3vw 3.3vw 1fr auto;gap:.5vw;align-items:center;padding:.5vw .6vw;background:#ffffff0a;border-radius:.4vw;font-size:.65vw}
.adminAppt b{font-size:.7vw}.deleteAppt{border:0;background:#ffffff0d;color:#ffb8b8;border-radius:.3vw;padding:.3vw .5vw;cursor:pointer}

/* ===== V1.5 FOOD SLIDE ===== */
.foodSlide{background:linear-gradient(145deg,#09283e,#164f68 52%,#0b354f);overflow:hidden}
.foodBackdrop{position:absolute;inset:0;background:radial-gradient(circle at 82% 22%,rgba(255,174,77,.22),transparent 27%),radial-gradient(circle at 15% 90%,rgba(76,198,255,.13),transparent 30%)}
.foodContent{position:absolute;inset:0;padding:3.1% 4.2% 2.8%;display:flex;flex-direction:column}
.foodHead{display:flex;justify-content:space-between;align-items:flex-start}
.foodEyebrow{font-size:1.05vw;letter-spacing:.28em;color:#ffbf70;font-weight:800}
.foodHead h2{margin:.45vw 0 0;font-size:3.15vw;line-height:1;font-weight:850}.foodDay{margin-top:.55vw;font-size:.85vw;color:#c6dce7}
.foodBadge{border:.08vw solid #ffbc69;background:#9b591c55;color:#ffd39d;border-radius:2vw;padding:.55vw 1vw;font-size:.78vw;font-weight:800;letter-spacing:.15em}
.foodBody{flex:1;margin-top:2vw;display:grid;gap:1vw;min-height:0}
.foodCards{display:grid;grid-template-columns:repeat(2,1fr);gap:1vw;align-content:start}
.foodCard{min-height:6.2vw;padding:1.2vw 1.4vw;border-radius:.85vw;background:linear-gradient(145deg,rgba(2,34,52,.78),rgba(255,255,255,.08));border:.08vw solid rgba(255,192,116,.30);display:flex;align-items:center;justify-content:space-between;gap:1vw}
.foodCardText b{display:block;font-size:1.2vw}.foodCardText span{display:block;margin-top:.35vw;font-size:.72vw;color:#bfd3de}
.foodPrice{font-size:1.35vw;font-weight:850;color:#ffd09a;white-space:nowrap}
.menuCourses{display:grid;grid-template-columns:repeat(2,1fr);gap:1vw}
.course{padding:1.25vw 1.4vw;border-radius:.85vw;background:#ffffff0b;border:.08vw solid #ffffff20}
.course span{display:block;color:#ffbf70;font-size:.72vw;letter-spacing:.12em;text-transform:uppercase;margin-bottom:.45vw}.course b{font-size:1.15vw}
.foodEmpty{display:grid;place-items:center;height:100%;min-height:15vw;border:.08vw dashed #ffffff2c;border-radius:1vw;color:#c0d2dd;font-size:1vw}
.foodAdminBlock{padding:.8vw;margin-bottom:.7vw;background:#ffffff08;border:1px solid #ffffff14;border-radius:.55vw}
.foodAdminBlock>b{font-size:.75vw;color:#f5f9fc}.foodAdminGrid{display:grid;grid-template-columns:1fr 1fr;gap:.4vw;margin-top:.55vw}
.foodAdminGrid input,.foodRow input{width:100%;padding:.42vw .48vw;border-radius:.3vw;border:1px solid #ffffff22;background:#031f35;color:white;font-size:.67vw}
.foodAdminGrid .wide{grid-column:1/-1}.foodRows{display:flex;flex-direction:column;gap:.35vw;margin:.5vw 0}
.foodRow{display:grid;grid-template-columns:1.5fr .7fr auto;gap:.35vw}.foodRow.friday{grid-template-columns:1.5fr .7fr auto}
.foodDelete{border:0;background:#ffffff0d;color:#ffb8b8;border-radius:.3vw;padding:.3vw .5vw;cursor:pointer}


/* ===== V1.5.2 SPEISEN AUTO-FIT =====
   Die Speisekarten verdichten sich automatisch bei mehr Einträgen. */
.foodCards{
  height:100%;
  min-height:0;
  align-content:stretch;
  grid-auto-rows:minmax(0,1fr);
}

/* 1–4 Einträge: großzügige Darstellung */
.foodCards.foodCountSmall{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1vw;
}
.foodCards.foodCountSmall .foodCard{
  min-height:0;
  padding:1.15vw 1.35vw;
}

/* 5–6 Einträge: drei Spalten, etwas kompakter */
.foodCards.foodCountMedium{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.72vw;
}
.foodCards.foodCountMedium .foodCard{
  min-height:0;
  padding:.85vw 1vw;
  border-radius:.7vw;
}
.foodCards.foodCountMedium .foodCardText b{font-size:1.02vw}
.foodCards.foodCountMedium .foodCardText span{font-size:.64vw;margin-top:.22vw}
.foodCards.foodCountMedium .foodPrice{font-size:1.08vw}

/* 7–9 Einträge: weiterhin gut lesbar, aber flacher */
.foodCards.foodCountLarge{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.55vw;
}
.foodCards.foodCountLarge .foodCard{
  min-height:0;
  padding:.62vw .82vw;
  border-radius:.58vw;
  gap:.55vw;
}
.foodCards.foodCountLarge .foodCardText b{font-size:.88vw;line-height:1.08}
.foodCards.foodCountLarge .foodCardText span{font-size:.56vw;margin-top:.16vw;line-height:1.15}
.foodCards.foodCountLarge .foodPrice{font-size:.95vw}

/* Ab 10 Einträgen: vier Spalten und maximale Flächennutzung */
.foodCards.foodCountXL{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.45vw;
}
.foodCards.foodCountXL .foodCard{
  min-height:0;
  padding:.52vw .68vw;
  border-radius:.5vw;
  gap:.45vw;
}
.foodCards.foodCountXL .foodCardText b{font-size:.76vw;line-height:1.06}
.foodCards.foodCountXL .foodCardText span{font-size:.5vw;margin-top:.12vw;line-height:1.12}
.foodCards.foodCountXL .foodPrice{font-size:.82vw}

/* Bei vielen Speisen wird auch der Kopf etwas platzsparender. */
.foodSlide.foodCompact .foodContent{padding-top:2.45%;padding-bottom:2.15%}
.foodSlide.foodCompact .foodBody{margin-top:1.25vw}
.foodSlide.foodCompact .foodHead h2{font-size:2.75vw}
.foodSlide.foodCompact .foodDay{margin-top:.35vw}
