/* Pink mode. Always light. See docs/PINK-DESIGN.md.
   Activated by <html data-theme="pink">. Same layout, same numbers, same contrast rules. */

html[data-theme="pink"] {
  color-scheme: light;
  --bg: #FFF4F7;
  --card: #FFFFFF;
  --card2: #FFF1F5;
  --text: #52323F;
  --text2: #7D5A69;
  --muted: #96707F;
  --line: #FFE1EA;
  --accent: #E94B84;
  --accent-ink: #FFFFFF;
  --accent-soft: #FFE4EC;
  --accent-track: #FFD3DF;
  --good: #2F9E69;
  --good-soft: #DDF5E8;
  --warn: #B85E12;
  --warn-soft: #FFEBD6;
  --bad: #DC3D5A;
  --bad-soft: #FFE0E6;
  --radius: 22px;
  --shadow: 0 4px 16px rgba(233, 75, 132, 0.08);
}

/* ---------- page ---------- */
html[data-theme="pink"] body {
  font-family: ui-rounded, "SF Pro Rounded", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  background-color: var(--bg);
  /* tiny strawberries, blossoms, hearts and sparkles at 6 % */
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180'><g opacity='0.07' fill='%23E94B84'><path d='M30 28c-5 0-8 4-8 9 0 7 8 13 8 13s8-6 8-13c0-5-3-9-8-9z'/><path d='M27 25l3-4 3 4z'/><circle cx='28' cy='34' r='1'/><circle cx='32' cy='38' r='1'/><circle cx='29' cy='42' r='1'/><path d='M128 106c-5 0-8 4-8 9 0 7 8 13 8 13s8-6 8-13c0-5-3-9-8-9z'/><path d='M125 103l3-4 3 4z'/><circle cx='126' cy='112' r='1'/><circle cx='130' cy='116' r='1'/><circle cx='127' cy='120' r='1'/><g transform='translate(100 36)'><circle cx='0' cy='-7' r='4'/><circle cx='6.7' cy='-2.2' r='4'/><circle cx='4.1' cy='5.7' r='4'/><circle cx='-4.1' cy='5.7' r='4'/><circle cx='-6.7' cy='-2.2' r='4'/><circle cx='0' cy='0' r='2.4' fill='%23fff'/></g><g transform='translate(44 128)'><circle cx='0' cy='-7' r='4'/><circle cx='6.7' cy='-2.2' r='4'/><circle cx='4.1' cy='5.7' r='4'/><circle cx='-4.1' cy='5.7' r='4'/><circle cx='-6.7' cy='-2.2' r='4'/><circle cx='0' cy='0' r='2.4' fill='%23fff'/></g><path d='M150 60l1.6 4.4 4.4 1.6-4.4 1.6-1.6 4.4-1.6-4.4-4.4-1.6 4.4-1.6z'/><path d='M70 150l1.2 3.3 3.3 1.2-3.3 1.2L70 159l-1.2-3.3-3.3-1.2 3.3-1.2z'/><path d='M86 90c-2.5-4 2.5-8 5-4 2.5-4 7.5 0 5 4l-5 5z'/><path d='M160 150c-2.5-4 2.5-8 5-4 2.5-4 7.5 0 5 4l-5 5z'/></g></svg>");
  background-size: 180px 180px;
}
html[data-theme="pink"] #app { position: relative; z-index: 1; }
html[data-theme="pink"] .topbar { background: transparent; }
html[data-theme="pink"] .topbar h1 { color: var(--text); letter-spacing: -0.2px; }
html[data-theme="pink"] .topbar .sub { color: var(--text2); }

/* ---------- surfaces ---------- */
html[data-theme="pink"] .card { box-shadow: var(--shadow); border: 1px solid var(--line); }
html[data-theme="pink"] .card h2 { color: var(--text2); }
html[data-theme="pink"] .section-title { color: var(--muted); text-transform: none; letter-spacing: 0; font-size: 14px; }
html[data-theme="pink"] .group-head { text-transform: none; letter-spacing: 0; font-size: 14px; color: var(--text2); }
html[data-theme="pink"] .row { border-bottom-color: var(--line); }
html[data-theme="pink"] .nrow, html[data-theme="pink"] .entry, html[data-theme="pink"] .pick, html[data-theme="pink"] .ing, html[data-theme="pink"] .kv { border-bottom-color: var(--line); }
html[data-theme="pink"] .note { background: var(--card2); color: var(--text2); border-radius: 16px; }

/* ---------- controls: pills ---------- */
html[data-theme="pink"] .btn { border-radius: 999px; background: var(--accent); box-shadow: 0 6px 16px rgba(233, 75, 132, 0.22); }
html[data-theme="pink"] .btn.secondary { background: var(--accent-soft); color: var(--accent); box-shadow: none; }
html[data-theme="pink"] .btn.danger { background: var(--bad-soft); color: var(--bad); box-shadow: none; }
html[data-theme="pink"] .btn.ghost { background: transparent; box-shadow: none; }
html[data-theme="pink"] .btn:active { transform: scale(0.98); filter: none; }
html[data-theme="pink"] .chip { border-radius: 999px; background: #fff; border: 1px solid var(--line); color: var(--text2); }
html[data-theme="pink"] .chip.active, html[data-theme="pink"] .chip.on { background: var(--accent); color: #fff; border-color: var(--accent); }
html[data-theme="pink"] .input, html[data-theme="pink"] textarea.input { border-radius: 16px; border-color: var(--line); background: #fff; }
html[data-theme="pink"] .input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
html[data-theme="pink"] .search .input { border-radius: 999px; background: #fff; }
html[data-theme="pink"] .iconbtn { border-radius: 999px; background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow); }
html[data-theme="pink"] .iconbtn.accent { color: var(--accent); }
html[data-theme="pink"] .switch { background: var(--accent-track); }
html[data-theme="pink"] .switch.on { background: var(--accent); }
html[data-theme="pink"] .link { color: var(--accent); }
html[data-theme="pink"] .sheet-close { background: var(--accent-soft); color: var(--accent); }

/* segmented control */
html[data-theme="pink"] .seg { background: var(--accent-soft); border-radius: 999px; padding: 4px; }
html[data-theme="pink"] .seg button { color: var(--text2); border-radius: 999px; }
html[data-theme="pink"] .seg button.active { color: var(--accent); }
html[data-theme="pink"] .seg .ind { border-radius: 999px; background: #fff; box-shadow: 0 2px 8px rgba(233, 75, 132, 0.18); top: 4px; bottom: 4px; left: 4px; width: calc((100% - 8px) / 5); }

/* tab bar: a dot under the active icon */
html[data-theme="pink"] .tabbar { background: rgba(255, 255, 255, 0.92); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-top-color: var(--line); }
html[data-theme="pink"] .tabbar button { color: var(--muted); }
html[data-theme="pink"] .tabbar button.active { color: var(--accent); }
html[data-theme="pink"] .tabbar button.active::after { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--accent); margin-top: 1px; }

/* ---------- tiles ---------- */
html[data-theme="pink"] .tile { border-radius: 22px; border: 1px solid var(--line); box-shadow: var(--shadow); }
html[data-theme="pink"] .tile:active { transform: scale(0.96); }
html[data-theme="pink"] .art { background: hsl(var(--hue) 85% 92%); }
html[data-theme="pink"] .tile .fav { background: rgba(255, 255, 255, 0.55); width: 30px; height: 30px; }
html[data-theme="pink"] .tile .fav .ic { fill: #fff; stroke: #F3B4C8; stroke-width: 1.3; }
html[data-theme="pink"] .tile .fav.on { background: #fff; color: #ff3d7f; }
html[data-theme="pink"] .tile .fav.on .ic { fill: #ff3d7f; stroke: #ff3d7f; }
html[data-theme="pink"] .tile .name { color: var(--text); }

/* ---------- hero and meters ---------- */
html[data-theme="pink"] .ring .track { stroke: #FFE4EC; }
html[data-theme="pink"] .ring #plate-ring-g stop:first-child { stop-color: #FFB3CC; }
html[data-theme="pink"] .ring #plate-ring-g stop:last-child { stop-color: #E94B84; }
html[data-theme="pink"] .hero.warn .ring .track { stroke: #FFF1E4; }
html[data-theme="pink"] .hero.warn .ring #plate-ring-g stop:first-child { stop-color: #FFD3A3; }
html[data-theme="pink"] .hero.warn .ring #plate-ring-g stop:last-child { stop-color: #F28A3C; }
html[data-theme="pink"] .hero.bad .ring .track { stroke: #FFE6EB; }
html[data-theme="pink"] .hero.bad .ring #plate-ring-g stop:first-child { stop-color: #FFA2B5; }
html[data-theme="pink"] .hero.bad .ring #plate-ring-g stop:last-child { stop-color: #DC3D5A; }
html[data-theme="pink"] .hero.good .ring .track { stroke: #E4F8EE; }
html[data-theme="pink"] .hero.good .ring #plate-ring-g stop:first-child { stop-color: #A6ECC9; }
html[data-theme="pink"] .hero.good .ring #plate-ring-g stop:last-child { stop-color: #2F9E69; }
html[data-theme="pink"] .ring-in b { color: var(--accent); }
html[data-theme="pink"] .hero.bad .ring-in b { color: var(--bad); }
html[data-theme="pink"] .hero.warn .ring-in b { color: var(--warn); }
html[data-theme="pink"] .hero.good .ring-in b { color: var(--good); }
html[data-theme="pink"] .meter { height: 7px; border-radius: 6px; background: #FFE9EF; }
html[data-theme="pink"] .meter i { background: linear-gradient(90deg, #FFB3CC, var(--accent)); }
html[data-theme="pink"] .meter.warn { background: #FFF1E4; } html[data-theme="pink"] .meter.warn i { background: linear-gradient(90deg, #FFD3A3, #F28A3C); }
html[data-theme="pink"] .meter.bad { background: #FFE6EB; } html[data-theme="pink"] .meter.bad i { background: linear-gradient(90deg, #FFA2B5, var(--bad)); }
html[data-theme="pink"] .meter.good { background: #E4F8EE; } html[data-theme="pink"] .meter.good i { background: linear-gradient(90deg, #A6ECC9, var(--good)); }
html[data-theme="pink"] .watch .w { background: #FFF6F9; border: 1px solid #FFE6EE; border-radius: 18px; }
html[data-theme="pink"] .watch .w.good { background: #EDFAF3; border-color: #D3F0E0; }
html[data-theme="pink"] .watch .w.warn { background: #FFF5EA; border-color: #FFE4C8; }
html[data-theme="pink"] .watch .w.bad { background: #FFEDF1; border-color: #FFD5DE; }
html[data-theme="pink"] .watch .w .meter { background: rgba(255,255,255,.9); }
html[data-theme="pink"] .watch .w:not(.good):not(.warn):not(.bad) .meter { background: #FFE4EC; }
html[data-theme="pink"] .watch .w .l > span:first-child::before, html[data-theme="pink"] .nrow .n::before { font-size: 12px; margin-right: 5px; }
html[data-theme="pink"] .watch .w[data-key="protein_g"] .l > span:first-child::before, html[data-theme="pink"] .nrow[data-key="protein_g"] .n::before { content: "🥚"; }
html[data-theme="pink"] .watch .w[data-key="sodium_mg"] .l > span:first-child::before, html[data-theme="pink"] .nrow[data-key="sodium_mg"] .n::before { content: "🧂"; }
html[data-theme="pink"] .watch .w[data-key="potassium_mg"] .l > span:first-child::before, html[data-theme="pink"] .nrow[data-key="potassium_mg"] .n::before { content: "🍌"; }
html[data-theme="pink"] .watch .w[data-key="phosphorus_mg"] .l > span:first-child::before, html[data-theme="pink"] .nrow[data-key="phosphorus_mg"] .n::before { content: "🧀"; }
html[data-theme="pink"] .watch .w[data-key="calcium_mg"] .l > span:first-child::before, html[data-theme="pink"] .nrow[data-key="calcium_mg"] .n::before { content: "🥛"; }
html[data-theme="pink"] .watch .w[data-key="fluid_ml"] .l > span:first-child::before, html[data-theme="pink"] .nrow[data-key="fluid_ml"] .n::before { content: "💧"; }
html[data-theme="pink"] .watch .w[data-key="carbs_g"] .l > span:first-child::before, html[data-theme="pink"] .nrow[data-key="carbs_g"] .n::before { content: "🍞"; }
html[data-theme="pink"] .watch .w[data-key="fiber_g"] .l > span:first-child::before, html[data-theme="pink"] .nrow[data-key="fiber_g"] .n::before { content: "🥦"; }
html[data-theme="pink"] .watch .w[data-key="sugar_g"] .l > span:first-child::before, html[data-theme="pink"] .nrow[data-key="sugar_g"] .n::before { content: "🍬"; }
html[data-theme="pink"] .watch .w[data-key="fat_g"] .l > span:first-child::before, html[data-theme="pink"] .nrow[data-key="fat_g"] .n::before { content: "🥑"; }
html[data-theme="pink"] .watch .w[data-key="satfat_g"] .l > span:first-child::before, html[data-theme="pink"] .nrow[data-key="satfat_g"] .n::before { content: "🧈"; }
html[data-theme="pink"] .watch .w[data-key="cholesterol_mg"] .l > span:first-child::before, html[data-theme="pink"] .nrow[data-key="cholesterol_mg"] .n::before { content: "🍳"; }
html[data-theme="pink"] .watch .w[data-key="water_g"] .l > span:first-child::before, html[data-theme="pink"] .nrow[data-key="water_g"] .n::before { content: "🫧"; }
html[data-theme="pink"] .watch .w[data-key="caffeine_mg"] .l > span:first-child::before, html[data-theme="pink"] .nrow[data-key="caffeine_mg"] .n::before { content: "☕"; }
html[data-theme="pink"] .watch .w[data-key="alcohol_g"] .l > span:first-child::before, html[data-theme="pink"] .nrow[data-key="alcohol_g"] .n::before { content: "🍷"; }
html[data-theme="pink"] .search-row .add-food { border-radius: 999px; }
html[data-theme="pink"] .watch .w .l b { color: var(--text); }
html[data-theme="pink"] .preview .p { background: var(--card2); border-radius: 16px; }
html[data-theme="pink"] .preview .p.good { background: #EDFAF3; }
html[data-theme="pink"] .preview .p.warn { background: #FFF5EA; }
html[data-theme="pink"] .preview .p.bad { background: #FFEDF1; }
html[data-theme="pink"] .badge { background: var(--card2); color: var(--text2); border-radius: 999px; }
html[data-theme="pink"] .badge.good { background: var(--good-soft); color: var(--good); }
html[data-theme="pink"] .badge.bad { background: var(--bad-soft); color: var(--bad); }
html[data-theme="pink"] .badge.warn { background: var(--warn-soft); color: var(--warn); }

/* chart */
html[data-theme="pink"] .chart .g-ok stop:first-child { stop-color: #FFC1D6; }
html[data-theme="pink"] .chart .g-ok stop:last-child { stop-color: #E94B84; }
html[data-theme="pink"] .chart .g-over stop:first-child { stop-color: #FFA2B5; }
html[data-theme="pink"] .chart .g-over stop:last-child { stop-color: #DC3D5A; }
html[data-theme="pink"] .chart .grid { stroke: #FFE1EA; opacity: 1; }
html[data-theme="pink"] .chart .axis { stroke: #FFD3DF; }
html[data-theme="pink"] .chart .zone { fill: #FF6B8E; opacity: .06; }
html[data-theme="pink"] .chart .goal { stroke: #C97A95; }
html[data-theme="pink"] .chart .goal-pill rect { fill: #fff; stroke: #FFD3DF; }
html[data-theme="pink"] .chart .tip text { fill: #fff; }
/* nutrient panel: group names as soft pills, meters with room for their pearl */
html[data-theme="pink"] .group-head > span:first-child { background: var(--accent-soft); color: var(--accent); border-radius: 999px; padding: 4px 11px; font-size: 13px; font-weight: 700; }
html[data-theme="pink"] .nrow .meter { height: 6px; background: #FFEDF2; }
html[data-theme="pink"] .nrow { padding: 10px 0; }
html[data-theme="pink"] .nrow.dim .n, html[data-theme="pink"] .nrow.dim .v { color: var(--muted); }
html[data-theme="pink"] .period-nav .title { color: var(--text); }
html[data-theme="pink"] .period-nav .iconbtn { border-radius: 50%; background: #fff; color: var(--accent); box-shadow: 0 2px 8px rgba(233, 75, 132, 0.12); }
html[data-theme="pink"] .chart-wrap { margin-top: 6px; }

/* ---------- sheets ---------- */
html[data-theme="pink"] .sheet { border-radius: 28px 28px 0 0; box-shadow: 0 -8px 40px rgba(233, 75, 132, 0.18); }
html[data-theme="pink"] .sheet-grabber i { background: var(--accent-track); width: 44px; }
html[data-theme="pink"] .sheet-title { color: var(--text); }
html[data-theme="pink"] .amount .stepbtn { background: var(--accent-soft); color: var(--accent); }
html[data-theme="pink"] .amount .disp b, html[data-theme="pink"] .amount .disp .amt-in { color: var(--accent); }
html[data-theme="pink"] .emoji-row button { border-radius: 14px; background: #fff; border-color: var(--line); }
html[data-theme="pink"] .emoji-row button.active { background: var(--accent-soft); border-color: var(--accent); }
html[data-theme="pink"] .steps i.on { background: var(--accent); }
html[data-theme="pink"] .progress i { background: var(--accent); }

/* ---------- toasts and empty states ---------- */
html[data-theme="pink"] .toast { background: var(--text); color: #fff; border-radius: 999px; }
html[data-theme="pink"] .toast.bad { background: var(--bad); }
html[data-theme="pink"] .toast-act { color: #FFB3CB; }
html[data-theme="pink"] .empty { color: var(--text2); }
html[data-theme="pink"] .empty .ic { display: none; }
/* a sleepy white pup, dreaming */
html[data-theme="pink"] .empty::before {
  content: ""; display: block; width: 96px; height: 70px; margin: 0 auto 10px;
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 130 90'><ellipse cx='62' cy='82' rx='46' ry='6' fill='%23FFE4EC'/><ellipse cx='66' cy='62' rx='40' ry='20' fill='%23fff' stroke='%23F0CBD8' stroke-width='2'/><circle cx='40' cy='52' r='20' fill='%23fff' stroke='%23F0CBD8' stroke-width='2'/><path d='M24 46q-10 6-6 22q6 2 10-4z' fill='%23383038'/><path d='M50 42q10 4 10 18q-6 2-10-4z' fill='%23383038'/><circle cx='30' cy='56' r='4' fill='%23383038'/><path d='M34 58q4-3 8 0' stroke='%23383038' stroke-width='2' fill='none' stroke-linecap='round'/><path d='M44 56q4-3 8 0' stroke='%23383038' stroke-width='2' fill='none' stroke-linecap='round'/><circle cx='48' cy='63' r='4' fill='%23FFB3CB' opacity='.8'/><path d='M100 58q8 2 10 14' stroke='%23F0CBD8' stroke-width='5' fill='none' stroke-linecap='round'/><text x='72' y='30' font-size='15' fill='%23E94B84' font-family='sans-serif' font-weight='700'>z</text><text x='84' y='18' font-size='11' fill='%23E94B84' font-family='sans-serif' font-weight='700'>z</text></svg>") center / contain no-repeat;
}

/* ===================== the living layer (js/pink.js) ===================== */
#pk-layer { position: fixed; inset: 0; bottom: calc(var(--tab-h) + var(--sab)); pointer-events: none; z-index: 0; overflow: hidden; }
.pk-petal {
  position: absolute; top: -40px; display: block; background-size: contain; background-repeat: no-repeat;
  will-change: transform; filter: blur(0.3px);
  animation-name: pk-fall, pk-sway; animation-timing-function: linear, ease-in-out; animation-iteration-count: infinite, infinite; animation-direction: normal, alternate;
}
@keyframes pk-fall { from { transform: translate3d(0, -40px, 0) rotate(0deg); } to { transform: translate3d(0, 108vh, 0) rotate(360deg); } }
@keyframes pk-sway { from { translate: -28px 0; } to { translate: 28px 0; } }
.pk-sparkle { position: absolute; color: #FFB3CB; opacity: 0; animation: pk-twinkle ease-in-out infinite; }
@keyframes pk-twinkle { 0%, 100% { opacity: 0; transform: scale(.6); } 50% { opacity: .7; transform: scale(1.1); } }

/* creatures */
.pk-nest { pointer-events: none; }
.pk-nest-card { position: absolute; right: 10px; bottom: 4px; width: 70px; height: 70px; }
.pk-nest-card .pk-creature { width: 70px; height: 70px; }
html[data-theme="pink"] .topbar { position: relative; }
.pk-nest-bar { position: static; flex: none; height: 54px; display: flex; align-items: flex-end; }
html[data-theme="pink"] .topbar:has(.pk-nest-bar) h1 { min-width: 0; }
/* the card member shares the footer row with the "N logged" line, so the watch list above stays clear */
html[data-theme="pink"] [data-summary] .pk-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; text-align: left; margin-top: 4px; }
html[data-theme="pink"] [data-summary] .pk-foot .pk-nest-card { position: static; flex: none; width: auto; height: 66px; display: block; }
html[data-theme="pink"] [data-summary] .pk-nest-abs { position: absolute; right: 10px; bottom: 4px; }
html[data-theme="pink"] [data-summary] .small:not(.pk-foot) { padding-right: 64px; padding-left: 64px; }
.pk-creature { display: block; overflow: visible; }
.pk-eyes { animation: pk-blink 5s ease-in-out infinite; }
@keyframes pk-blink { 0%, 93%, 100% { transform: scaleY(1); } 96% { transform: scaleY(.08); } }
.pk-ear { animation: pk-twitch 6s ease-in-out infinite; }
.pk-ear-r { animation-delay: .25s; }
@keyframes pk-twitch { 0%, 84%, 100% { transform: rotate(0); } 88% { transform: rotate(-6deg); } 93% { transform: rotate(5deg); } }
.pk-bunny, .pk-cat { animation: pk-breathe 3.4s ease-in-out infinite; }
@keyframes pk-breathe { 0%, 100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.015, 0.985); } }
.pk-bunny.pk-hop { animation: pk-hop .75s cubic-bezier(.3, 1.5, .5, 1) 1; }
@keyframes pk-hop { 0% { transform: translateY(0) scale(1); } 30% { transform: translateY(-22px) scale(1.05, .95); } 65% { transform: translateY(2px) scale(.96, 1.05); } 100% { transform: translateY(0) scale(1); } }
/* the rare one: a smooth glide backwards, hat tip to the King of Pop */
.pk-bunny.pk-moonwalk { animation: pk-moonwalk 1.6s ease-in-out 1; }
@keyframes pk-moonwalk { 0% { transform: translateX(0) rotate(0); } 20% { transform: translateX(-6px) rotate(-6deg); } 40% { transform: translateX(-16px) rotate(-4deg); } 60% { transform: translateX(-26px) rotate(-6deg); } 80% { transform: translateX(-12px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
.pk-tail { animation: pk-swish 2.6s ease-in-out infinite alternate; }
@keyframes pk-swish { from { transform: rotate(-10deg); } to { transform: rotate(12deg); } }
.pk-chick { animation: pk-bob 2s ease-in-out infinite; }
@keyframes pk-bob { 0%, 100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(-2deg); } }
.pk-wing { animation: pk-flap 2s ease-in-out infinite; }
@keyframes pk-flap { 0%, 100% { transform: rotate(0); } 50% { transform: rotate(-14deg); } }

/* celebration on log */
.pk-burst { position: fixed; left: 50%; bottom: calc(var(--tab-h) + var(--sab) + 44px); width: 0; height: 0; pointer-events: none; z-index: 46; }
body.sheet-open .pk-burst { bottom: auto; top: calc(var(--sat) + 70px); }
.pk-burst i { position: absolute; left: 0; bottom: 0; font-style: normal; animation: pk-pop 1.3s cubic-bezier(.2, .8, .3, 1) forwards; will-change: transform, opacity; }
@keyframes pk-pop { 0% { transform: translate(0, 0) scale(.5) rotate(0); opacity: 0; } 15% { opacity: 1; } 100% { transform: translate(var(--x), -200px) scale(1) rotate(var(--r)); opacity: 0; } }

@media (prefers-reduced-motion: reduce) {
  .pk-petal, .pk-sparkle, .pk-eyes, .pk-ear, .pk-bunny, .pk-tail, .pk-cat, .pk-chick, .pk-wing, .pk-burst i { animation: none !important; }
}

/* Mochi's worried face when a limit is over for the day */
.pk-worry { display: none; }
.pk-bunny.pk-worried .pk-worry { display: block; }
.pk-bunny.pk-worried .pk-mouth { d: path("M47.5 75 q2.5 -2.2 5 0"); }
/* food editor sections */
html[data-theme="pink"] .ed-title { text-transform: none; letter-spacing: 0; }
html[data-theme="pink"] .ed-title > span:first-child { background: var(--accent-soft); color: var(--accent); border-radius: 999px; padding: 3px 10px; font-size: 13px; }
html[data-theme="pink"] .ed-sub { color: var(--text2); }
html[data-theme="pink"] .ing-text { background: #FFF6F9; border: 1px solid var(--line); }
html[data-theme="pink"] .ed-sec { box-shadow: var(--shadow); }
/* sources, tile notes, swaps */
html[data-theme="pink"] .src-bar { background: #FFE9EF; }
html[data-theme="pink"] .src-bar i { background: linear-gradient(90deg, #FFB3CC, var(--accent)); }
html[data-theme="pink"] .tile-flag.over { background: #E8456A; }
html[data-theme="pink"] .swap { background: #FFEDF1; border: 1px solid #FFD5DE; }
/* saved meals, yesterday card, swipe */
html[data-theme="pink"] .meal-part { background: #FFF6F9; border: 1px solid #FFE6EE; }
html[data-theme="pink"] .card.again { background: linear-gradient(135deg, #FFF0F5, #FFFFFF 70%); }
html[data-theme="pink"] .again-item { background: #FFE9EF; color: var(--text); }
html[data-theme="pink"] .swipe-act.del { background: #E8456A; }
/* additive note, limit dots */
html[data-theme="pink"] .note.add-box { background: #FFF6F9; border-color: #FFE1EA; }
html[data-theme="pink"] .lim-dot.within i { background: linear-gradient(135deg, #A6ECC9, #2F9E69); }
html[data-theme="pink"] .lim-dot.close i { background: linear-gradient(135deg, #FFD3A3, #F28A3C); }
html[data-theme="pink"] .lim-dot.over i { background: linear-gradient(135deg, #FFA2B5, #DC3D5A); }
html[data-theme="pink"] .lim-dot.none i, html[data-theme="pink"] .lim-dot.future i { box-shadow: inset 0 0 0 2px #FFD3DF; }
/* helpers: estimates, second look, weekly note */
html[data-theme="pink"] .card.weekly { background: linear-gradient(135deg, #FFF0F5, #FFFFFF 70%); }
html[data-theme="pink"] .note.est-box, html[data-theme="pink"] .note.review-box { background: #FFF6F9; border-color: #FFE1EA; }
