/* SagaSphere — warm, safe, kid-safe + clean adult. 90s-cartoon universe feel. */
:root{
  --bg:#0e0b1f; --bg2:#171233; --card:#1d1840; --card2:#241d4d;
  --ink:#f3f0ff; --mut:#b3a9d8; --line:#332a63;
  --acc:#ffd23f; --acc2:#ff7a3d; --ok:#5fe08a; --no:#ff6b81; --wait:#c9a7ff;
  --rad:18px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:radial-gradient(1200px 700px at 70% -10%,#2a2060 0%,var(--bg) 60%);color:var(--ink);
  font-family:"Segoe UI",system-ui,-apple-system,Roboto,sans-serif;line-height:1.5;min-height:100vh}
a{color:inherit;text-decoration:none}
h1{font-size:1.7rem;margin:.2rem 0}
h2{font-size:1.2rem;margin:0 0 .7rem}
.sub{color:var(--mut);font-size:.95rem}
.num{text-align:right}

/* top nav (adults) */
.top{display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.8rem clamp(1rem,4vw,2.5rem);position:sticky;top:0;z-index:10;
  background:rgba(14,11,31,.82);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.brand{font-weight:800;letter-spacing:.3px;font-size:1.05rem;color:var(--acc)}
nav{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}
.navlink{padding:.42rem .8rem;border-radius:10px;color:var(--mut);font-weight:600}
.navlink:hover{background:var(--card2);color:var(--ink)}
.navlink.on{background:var(--card2);color:var(--ink)}
.nav-kids{background:linear-gradient(90deg,var(--acc2),#ff4d6d);color:#241005;padding:.42rem .9rem}
.badge{background:var(--no);color:#2a0710;font-weight:800;border-radius:999px;padding:.05rem .5rem;font-size:.8rem}

main{padding:clamp(1rem,4vw,2rem);max-width:1040px;margin:0 auto;display:flex;flex-direction:column;gap:1.1rem}
.card{background:linear-gradient(180deg,var(--card),var(--bg2));border:1px solid var(--line);
  border-radius:var(--rad);padding:clamp(1rem,3vw,1.4rem);box-shadow:0 10px 30px rgba(0,0,0,.35)}
.foot{text-align:center;color:var(--mut);font-size:.85rem;padding:1.4rem}

.btn{display:inline-block;background:var(--acc);color:#241a00;font-weight:800;border:none;
  padding:.55rem 1rem;border-radius:12px;cursor:pointer;font-size:.95rem}
.btn:hover{filter:brightness(1.05)}
.btn.ghost{background:var(--card2);color:var(--ink);border:1px solid var(--line)}
.btn.ok{background:var(--ok);color:#05260f}
.btn.no{background:var(--no);color:#2a0710}
.card .btn{margin-top:.6rem}

/* pending approvals */
.pends{list-style:none;padding:0;margin:0 0 .4rem;display:flex;flex-direction:column;gap:.6rem}
.pend{border:1px solid var(--line);border-left:4px solid var(--wait);border-radius:12px;padding:.7rem .9rem;background:var(--card2)}
.pend.approved{border-left-color:var(--ok)}
.pend-denied{border-left-color:var(--no)}
.pend-t{font-weight:700}
.pend-when{color:var(--mut);font-weight:500;font-size:.9rem;margin-left:.4rem}
.pend-b{display:flex;gap:.5rem;margin-top:.5rem;flex-wrap:wrap;align-items:center}
.pendf{display:flex;gap:.4rem;align-items:center}
.deny-note{background:var(--bg);border:1px solid var(--line);color:var(--ink);border-radius:10px;padding:.4rem .6rem;font-size:.85rem}
.pend-note{color:var(--no);font-size:.85rem;margin-top:.4rem;font-style:italic}

/* budget */
.bud-head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:.5rem;margin-bottom:.6rem}
.bud-left{font-size:1.25rem;font-weight:800;color:var(--acc)}
.bar{height:12px;background:var(--bg);border:1px solid var(--line);border-radius:999px;overflow:hidden;margin:.4rem 0 .8rem}
.bar-fill{height:100%;background:linear-gradient(90deg,var(--acc),var(--acc2));transition:width .5s}
.bar-fill.over{background:var(--no)}
.bud-table{width:100%;border-collapse:collapse;margin-top:.8rem;font-size:.92rem}
.bud-table td{padding:.45rem .5rem;border-bottom:1px solid var(--line)}
.bud-table td.num{font-weight:700}
.bud-table td:last-child{color:var(--mut);text-align:right;font-size:.85rem}

/* forms */
.addf{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.5rem}
.addf input{background:var(--bg);border:1px solid var(--line);color:var(--ink);border-radius:10px;
  padding:.55rem .7rem;font-size:.95rem;flex:1;min-width:140px}
.addf input:focus{outline:none;border-color:var(--acc)}
.f-title{flex-basis:100%}
.add-msg{min-height:1.2rem;margin-top:.4rem}

/* calendar */
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.6rem}
.cal-head h2{margin:0}
.cal{width:100%;border-collapse:collapse;table-layout:fixed}
.cal th{color:var(--mut);font-size:.8rem;font-weight:700;padding:.4rem 0;text-align:left}
.cal td{border:1px solid var(--line);border-radius:8px;height:86px;vertical-align:top;padding:.35rem;
  background:var(--bg);overflow:hidden}
.cal td.blank{background:transparent;border-color:transparent}
.dnum{font-weight:800;font-size:.9rem;color:var(--mut)}
td.today .dnum{color:#241a00;background:var(--acc);border-radius:8px;padding:0 .4rem;display:inline-block}
.chips{display:flex;flex-direction:column;gap:3px;margin-top:3px;overflow:hidden}
.chip{font-size:.72rem;padding:2px 6px;border-radius:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chip.ok{background:rgba(95,224,138,.18);color:var(--ok)}
.chip.wait{background:rgba(201,167,255,.16);color:var(--wait)}
.chip.no{background:rgba(255,107,129,.14);color:var(--no);text-decoration:line-through}

/* ---- kids ---- */
.kids-body{background:radial-gradient(1000px 600px at 50% -10%,#2b2a6e 0%,#140f2e 55%,#0c0a1d 100%)}
.door-wrap{min-height:90vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.4rem}
.door-ring{position:relative;width:min(70vw,300px);height:min(70vw,300px)}
.door-btn{width:100%;height:100%;border-radius:50%;cursor:pointer;border:none;
  background:radial-gradient(circle at 35% 30%,#ffe28a,var(--acc) 45%,#ff9d3d 100%);
  box-shadow:0 0 0 12px rgba(255,210,63,.15),0 0 60px rgba(255,157,61,.5),inset 0 -14px 30px rgba(120,40,0,.35);
  animation:bob 2.4s ease-in-out infinite;font-size:0}
.door-btn:hover{transform:scale(1.03)}
.door-btn:active{transform:scale(.97)}
.door-spark{font-size:5rem;color:#7a3c00;display:block}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.door-hint{font-size:1.2rem;font-weight:800;color:var(--acc)}
.door-smooth{color:var(--mut);font-size:.85rem;text-decoration:none;opacity:.8}
.door-smooth:hover{opacity:1}
.kids-title{position:absolute;left:50%;top:calc(50% - min(35vw,150px) - 70px);transform:translateX(-50%);
  font-size:clamp(1.4rem,5vw,2rem);color:var(--ink);text-shadow:0 2px 12px #000;white-space:nowrap}
.door-ring{position:relative}

/* kids home */
.kids-hero{position:relative;border-radius:20px;overflow:hidden;margin-bottom:1.2rem;border:2px solid var(--line)}
.hero-img{width:100%;display:block;max-height:44vh;object-fit:cover}
.kids-title2{position:absolute;left:1.2rem;bottom:1rem;font-size:1.4rem;text-shadow:0 2px 8px #000}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem}
.tile{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:1/.92;display:block;
  border:2px solid var(--line);box-shadow:0 6px 18px rgba(0,0,0,.4);transition:transform .18s}
.tile:hover{transform:translateY(-5px) scale(1.02)}
.tile img{width:100%;height:100%;object-fit:cover;display:block}
.tile-name{position:absolute;left:0;right:0;bottom:0;font-weight:800;padding:.5rem .7rem;
  background:linear-gradient(transparent,rgba(5,4,16,.92) 45%);font-size:1.05rem}
.kids-back,.eps-h{margin:.4rem 0}
.kids-back{color:var(--mut);font-weight:700}

/* show page */
.show-head{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}
.show-poster{width:130px;border-radius:14px;object-fit:cover;border:2px solid var(--line)}
.era{margin:.2rem 0 .6rem}
.song-btn{background:linear-gradient(90deg,var(--acc),var(--acc2));color:#2c1400}
#song{width:100%;max-width:420px;margin:.2rem 0 1rem}
.eps{display:flex;flex-direction:column;gap:.5rem}
.ep{display:flex;align-items:center;gap:.8rem;background:var(--card2);border:1px solid var(--line);
  border-radius:12px;padding:.6rem .8rem}
.ep:hover{border-color:var(--acc)}
.ep-num{font-weight:800;color:var(--acc);min-width:2ch}
.ep-title{flex:1;font-weight:600}
.ep-play{color:var(--acc);font-size:1.2rem}

/* login card */
.login-card{max-width:340px;margin:14vh auto 0;text-align:center}
.login-form{display:flex;flex-direction:column;gap:.7rem;margin-top:.6rem}
.login-row{display:flex;align-items:center;gap:.6rem;background:var(--card);border:1px solid var(--line);
  border-radius:12px;padding:.7rem .9rem;font-weight:700;cursor:pointer}
.login-row input{width:1.1rem;height:1.1rem}

/* ---- TV mode ---- */
body.tv-body{background:#05040c;overflow:hidden}
main.tv-main{max-width:none;height:100vh;display:block;padding:0}
.tv{position:relative;height:100vh;background:#000;overflow:hidden}
.tv video{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(100vw,calc(100vh * 16 / 9));height:auto}
.tv-veil{position:absolute;inset:0;display:none;z-index:1;pointer-events:none}
.tv-veil.on{display:none}
.tv-veil.on::after{content:"";position:absolute;inset:0}
.tv-top{position:absolute;left:0;right:0;top:0;z-index:3;display:flex;align-items:center;gap:.8rem;
  padding:.7rem 1rem;background:linear-gradient(rgba(0,0,0,.75),transparent);
  transition:opacity .4s;opacity:1}
.tv-bottom{position:absolute;left:0;right:0;bottom:0;z-index:3;padding:.6rem 1rem 1rem;
  background:linear-gradient(transparent,rgba(0,0,0,.75));transition:opacity .4s}
.tv.hide-ui .tv-top,.tv.hide-ui .tv-bottom{opacity:0;pointer-events:none}
.tv-back{color:#fff;font-weight:800;font-size:.95rem;flex-shrink:0;text-decoration:none;
  border:1px solid rgba(255,255,255,.35);border-radius:10px;padding:.4rem .8rem}
.tv-back:hover{background:rgba(255,255,255,.12)}
.tv-status{flex:1;text-align:center;min-width:0}
#tvprog{color:#fff;font-weight:800;font-size:clamp(.9rem,2.2vw,1.15rem);
  text-shadow:0 1px 6px #000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.tv-tools{display:flex;gap:.45rem;flex-shrink:0}
.tv-opt{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);color:#fff;
  font-size:1.05rem;border-radius:10px;padding:.4rem .65rem;cursor:pointer;font-weight:700}
.tv-opt:hover{background:rgba(255,255,255,.28)}
.tv-bar{height:8px;background:rgba(255,255,255,.2);border-radius:99px;overflow:hidden;margin-top:.4rem}
.tv-bar-fill{height:100%;width:0;background:var(--acc);transition:width .4s linear}
.tv-paused{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:4;display:flex;
  flex-direction:column;align-items:center;gap:.8rem;color:#fff;text-align:center}
.tv-paused .big-play{width:min(24vw,120px);height:min(24vw,120px);border-radius:50%;border:none;cursor:pointer;
  font-size:0;background:radial-gradient(circle at 35% 30%,#ffe28a,var(--acc) 50%,#ff9d3d 100%);
  box-shadow:0 0 40px rgba(255,210,63,.6);position:relative}
.tv-paused .big-play::after{content:"";position:absolute;left:38%;top:50%;transform:translate(-14%,-50%);
  border-left:34px solid #241a00;border-top:22px solid transparent;border-bottom:22px solid transparent}
.tv-paused .big-play:active{transform:scale(.94)}
.tv-paused span{font-weight:800;font-size:clamp(1rem,3vw,1.3rem);text-shadow:0 2px 10px #000}
.tv-paused small{color:#cfc7e8;font-weight:600}
.tv-veil{background:#000}
.tv-veil.on{display:flex;align-items:center;justify-content:center}
.tv-veil.on::after{content:"LOADING";position:static;color:#ffd23f;font-weight:800;letter-spacing:.2em;
  animation:veilpulse 1.2s ease-in-out infinite}
@keyframes veilpulse{0%,100%{opacity:.5}50%{opacity:1}}
@media (max-width:560px){
  .cal td{height:70px}
  .chip{font-size:.66rem}
}
.season-h{margin:1rem 0 .2rem;font-size:1.05rem;opacity:.85}
.poster-text,.tile-text{display:flex;align-items:center;justify-content:center;text-align:center;font-weight:800;font-size:1.4rem;padding:1rem;background:linear-gradient(135deg,#2a1a3a,#0f1a2e);color:#fff;aspect-ratio:2/3;border-radius:12px}
.pw-form{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap}.pw-form input{padding:.6rem .8rem;border-radius:10px;border:1px solid var(--line);background:var(--card2);color:inherit;font-size:1rem}

/* ---------- music: mini player, song lists, jukebox (added 2026-10-06) ---------- */
body.has-mp main { padding-bottom: 96px; }
.mp { position: fixed; left: 8px; right: 8px; bottom: 8px; z-index: 50; display: flex; align-items: center; gap: 10px;
  padding: 8px 10px; border-radius: 18px; background: rgba(20, 16, 48, .94); color: #fff;
  box-shadow: 0 8px 30px rgba(0, 0, 0, .45); backdrop-filter: blur(8px); }
.mp[hidden] { display: none; }
.mp-art { width: 52px; height: 52px; border-radius: 12px; object-fit: cover; flex: none; }
.mp-mid { flex: 1; min-width: 0; }
.mp-txt { display: flex; flex-direction: column; line-height: 1.2; }
.mp-title { font-weight: 800; font-size: 1.05rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mp-show { font-size: .8rem; opacity: .75; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mp-seek { height: 8px; margin-top: 6px; border-radius: 4px; background: rgba(255, 255, 255, .18); cursor: pointer; }
.mp-fill { height: 100%; width: 0; border-radius: 4px; background: linear-gradient(90deg, #ffd23f, #ff6b6b); }
.mp-btns { display: flex; align-items: center; gap: 4px; flex: none; }
.mp-btns button { font-size: 1.25rem; min-width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .1); color: #fff; cursor: pointer; }
.mp-btns button.on { background: #ffd23f; color: #222; }
.mp-btns .mp-play { min-width: 56px; height: 56px; font-size: 1.6rem; background: #ffd23f; color: #222; }
.mp-btns #mp-sleep { border-radius: 22px; padding: 0 10px; font-size: 1rem; }
.mp-vol { width: 90px; accent-color: #ffd23f; }
@media (max-width: 640px) {
  .mp { flex-wrap: wrap; }
  .mp-mid { flex-basis: calc(100% - 70px); }
  .mp-btns { width: 100%; justify-content: space-between; }
  .mp-vol { width: 70px; }
}
.tile { position: relative; }
.tile-song { position: absolute; right: 10px; bottom: 44px; width: 56px; height: 56px; border-radius: 50%; border: 3px solid #fff;
  background: #ffd23f; color: #222; font-size: 1.7rem; font-weight: 900; cursor: pointer; box-shadow: 0 4px 14px rgba(0, 0, 0, .4); }
.tile-song:active { transform: scale(.92); }
.juke-link { display: block; width: max-content; max-width: 100%; margin: 0 auto 18px; padding: 14px 26px; border-radius: 999px;
  background: #ffd23f; color: #222; font-weight: 900; font-size: 1.25rem; text-decoration: none; box-shadow: 0 6px 18px rgba(0, 0, 0, .35); }
.show-songs { margin: 10px 0 24px; }
.song-btn { margin-left: 10px; }
.album { margin: 8px 0 18px; }
.album-h { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 1.05rem; margin: 10px 0 6px; }
.album-h small { opacity: .7; font-weight: 400; }
.album-play { font-size: .85rem; padding: 4px 12px; }
.tracks { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 6px; }
.track { width: 100%; display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 0; border-radius: 12px; text-align: left;
  background: rgba(255, 255, 255, .1); color: inherit; font: inherit; cursor: pointer; }
.track:hover { background: rgba(255, 255, 255, .18); }
.track.playing { background: #ffd23f; color: #222; }
.tr-n { opacity: .6; font-variant-numeric: tabular-nums; }
.tr-t { flex: 1; }
.juke-head { text-align: center; margin-bottom: 18px; }
.juke-btns { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.big-btn { font-size: 1.15rem; padding: 14px 22px; }
.juke-show { margin: 26px 0; }
.juke-sh { display: flex; align-items: center; gap: 12px; }
.juke-sh img { width: 56px; height: 56px; border-radius: 12px; object-fit: cover; }
.juke-sh a { color: inherit; }
.juke-sh small { opacity: .7; font-weight: 400; font-size: .85rem; }
.chk summary { cursor: pointer; font-size: 1.1rem; }
.chk-l { columns: 2 320px; margin: 4px 0 12px; }
.chk-l li { break-inside: avoid; margin: 2px 0; }
.chk-l li.have { color: #2e9d57; font-weight: 700; }

.juke-title { font-size: 2.4rem; margin: 18px 0 12px; color: #ffd23f; text-shadow: 0 3px 0 rgba(0,0,0,.35); }

/* ---------- grown-up pages: deep forest metallic green (Grecia, 2026-10-06) ---------- */
body:not(.kids-body){
  --bg:#06130d; --bg2:#0b2016; --card:#14352a; --card2:#1c4535;
  --ink:#eef6f0; --mut:#a9c4b4; --line:#2b5a45;
  --acc:#d9bf78; --acc2:#b8963f; --ok:#6fdc9b; --no:#ff7f8a; --wait:#e7d39a;
  background:
    radial-gradient(900px 520px at 85% -8%, rgba(120,200,160,.18), transparent 60%),
    radial-gradient(700px 500px at -10% 110%, rgba(40,120,80,.25), transparent 60%),
    linear-gradient(160deg,#0d2a1d 0%,#06130d 55%,#0a2318 100%);
  background-attachment: fixed;
}
body:not(.kids-body) .top{background:linear-gradient(180deg,rgba(18,52,38,.92),rgba(8,26,18,.88));border-bottom:1px solid rgba(217,191,120,.25);
  box-shadow:0 1px 0 rgba(255,255,255,.05) inset}
body:not(.kids-body) .brand{background:linear-gradient(90deg,#f3e3b0,#c9a656 45%,#f6e8bf 70%,#b8923f);-webkit-background-clip:text;background-clip:text;color:transparent}
body:not(.kids-body) .card{
  background:
    linear-gradient(125deg, rgba(255,255,255,.10) 0%, rgba(255,255,255,0) 22%, rgba(255,255,255,0) 70%, rgba(255,255,255,.06) 85%, rgba(255,255,255,0) 100%),
    linear-gradient(180deg,#1b4434 0%,#123226 55%,#0d271d 100%);
  border:1px solid rgba(160,210,180,.22);
  box-shadow:0 12px 34px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.08), inset 0 -1px 0 rgba(0,0,0,.35)}
body:not(.kids-body) .btn{background:linear-gradient(180deg,#f0dc9c,#c9a656 55%,#a8853a);color:#1d1606;box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 2px 6px rgba(0,0,0,.3)}
body:not(.kids-body) .btn.ghost{background:linear-gradient(180deg,#24563f,#173c2c);color:var(--ink);border:1px solid rgba(160,210,180,.25);box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
body:not(.kids-body) .navlink.on, body:not(.kids-body) .navlink:hover{background:linear-gradient(180deg,#24563f,#173c2c)}
body:not(.kids-body) input, body:not(.kids-body) select, body:not(.kids-body) textarea{background:#0b2219;color:var(--ink);border:1px solid #2b5a45;border-radius:10px;padding:.45rem .6rem;font:inherit}

/* today / schedule */
.day-card h2{margin:0}
.allday{margin:.6rem 0;padding:.6rem .8rem;border-radius:12px;background:linear-gradient(90deg,rgba(217,191,120,.28),rgba(217,191,120,.08));border:1px solid rgba(217,191,120,.4);font-weight:700}
.sched{list-style:none;margin:.6rem 0 0;padding:0;display:flex;flex-direction:column;gap:.35rem}
.sch{display:flex;gap:.8rem;align-items:baseline;padding:.5rem .7rem;border-radius:12px;background:rgba(255,255,255,.04)}
.sch-t{min-width:7.5rem;font-variant-numeric:tabular-nums;color:var(--mut);font-weight:600}
.sch.ev{background:linear-gradient(90deg,rgba(217,191,120,.22),rgba(217,191,120,.05));border:1px solid rgba(217,191,120,.35)}
.sch.ev.pending{opacity:.85;border-style:dashed}
.sch.bumped .sch-x{text-decoration:line-through;text-decoration-color:rgba(255,255,255,.35)}
.sch.bumped{opacity:.6}
.dim-routine .sch.rt{opacity:.7}
.who{font-size:.75rem;padding:.05rem .45rem;border-radius:999px;background:rgba(111,220,155,.15);color:var(--ok);margin-left:.3rem}
.meals-row{display:flex;flex-wrap:wrap;gap:.4rem;margin:.6rem 0}
.meal-chip{padding:.3rem .7rem;border-radius:999px;background:rgba(255,255,255,.06);font-size:.9rem}
.meal-chip a{text-decoration:underline}
.rt-table td{vertical-align:top}
.days span{display:inline-block;width:1.3em;text-align:center;opacity:.3}
.days span.on{opacity:1;color:var(--acc);font-weight:800}
.dow-pick{display:inline-flex;gap:.3rem;flex-wrap:wrap}
.dow-pick label{display:inline-flex;align-items:center;gap:.15rem;font-size:.85rem}
details.edit{display:inline-block}
details.edit summary{list-style:none;display:inline-block}
details.edit[open]{display:block;margin:.4rem 0}
form.inline{display:inline}
.rt-form{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
/* meals */
.mgrid{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));gap:.5rem;overflow-x:auto}
@media (max-width:900px){.mgrid{grid-template-columns:1fr}}
.mday{background:rgba(255,255,255,.04);border-radius:14px;padding:.5rem;border:1px solid transparent}
.mday.today{border-color:rgba(217,191,120,.55)}
.mday-h{font-weight:800;margin-bottom:.3rem}
.mslot{display:flex;flex-direction:column;gap:.25rem;margin:.35rem 0;padding-top:.35rem;border-top:1px solid rgba(255,255,255,.07)}
.mslot-h{font-size:.85rem;color:var(--mut)}
.mslot select,.mslot input{width:100%;font-size:.85rem}
.mthumb{width:100%;height:70px;object-fit:cover;border-radius:10px}
/* recipes */
.rgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.8rem}
.rcard{display:flex;flex-direction:column;gap:.5rem;padding:.6rem !important}
.rcard img,.rph{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;background:rgba(255,255,255,.05);display:flex;align-items:center;justify-content:center;font-size:2.4rem}
.recipe .rhero{width:100%;max-height:420px;object-fit:cover;border-radius:16px;margin-bottom:.6rem}
.rcols{display:grid;grid-template-columns:1fr 1.4fr;gap:1.2rem}
@media (max-width:760px){.rcols{grid-template-columns:1fr}}
.ing{list-style:none;padding:0}
.ing li{padding:.25rem 0;border-bottom:1px solid rgba(255,255,255,.06)}
.steps li{margin:.4rem 0}
.rform{display:flex;flex-direction:column;gap:.6rem}
.rform textarea,.rform input{width:100%}
main:has(.mgrid){max-width:1440px}
.mgrid{grid-template-columns:repeat(7,minmax(128px,1fr))}
@media (max-width:900px){.mgrid{grid-template-columns:1fr}}
body:not(.kids-body) .dow-pick input[type=checkbox], body:not(.kids-body) input[type=checkbox]{width:auto;padding:0;margin:0 .15rem 0 0;accent-color:#d9bf78}
.dow-pick label{padding:.2rem .45rem;border-radius:8px;background:rgba(255,255,255,.05)}
body:not(.kids-body) .btn.ok{background:linear-gradient(180deg,#9df0bd,#4fbf7d);color:#05260f}
body:not(.kids-body) .btn.no{background:linear-gradient(180deg,#ffb0b7,#e0606d);color:#2a0710}

/* captions (2026-10-06) */
#tvcc.on{background:#ffd23f;color:#222;border-color:#ffd23f;font-weight:800}
.tv video::cue{font-size:2.1rem;line-height:1.35;color:#fff;background:rgba(0,0,0,.72);text-shadow:0 2px 3px #000}
