/* Expressive bowls: second frame is both the hover and chosen state. */
button.plato .plate-art,.kids-grid button.plato .plate-art{display:block;width:min(100%,96px);height:88px;min-height:0;margin:0 auto;background-image:var(--plate-image);background-size:200% 100%;background-repeat:no-repeat;background-position:left center;mix-blend-mode:multiply;transition:transform .18s ease;flex:none}
button.plato.on .plate-art{background-position:right center;transform:translateY(-2px)}
.kids-grid button.plato.on{animation:plate-selected .22s ease-out}
@media(hover:hover) and (pointer:fine){
  button.plato:not(:disabled):hover .plate-art{background-position:right center;transform:translateY(-3px) rotate(-2deg)}
  button.plato.bien:not(:disabled):hover .plate-art{transform:translateY(-4px) rotate(2deg)}
}
button.plato:focus-visible .plate-art{background-position:right center}
@keyframes plate-selected{50%{transform:translateY(-2px)}100%{transform:translateY(0)}}

/* Shared mobile / desktop calendar. */
.cal-intro{font-size:13px;color:var(--sub);margin-top:7px}
.cal-mascot{width:66px;height:66px;object-fit:contain}
.calendar-board{background:var(--surf);border:1px solid var(--line);border-radius:26px;padding:16px;box-shadow:var(--scard);overflow:hidden}
.cal-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:16px}
.cal-period{display:flex;align-items:center;gap:5px;flex:1}
.cal-period button{min-width:38px;min-height:42px;border-radius:13px;font-size:23px;background:#fff4ec}
.cal-period #ctit{font-size:16px;font-weight:900;text-transform:capitalize;background:transparent;flex:1;white-space:normal}
.cal-switch{display:flex;gap:4px;background:#f4eff8;border-radius:14px;padding:4px}
.cal-switch button{padding:9px 16px;border-radius:11px;font-size:12px;font-weight:800;min-height:36px;color:#7b6d84}
.cal-switch button[aria-pressed="true"]{background:white;color:#6d537e;box-shadow:0 2px 6px #76588810}
.cal-legend{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px;font-size:11px;color:var(--sub)}
.cal-legend>span{display:inline-flex;align-items:center;gap:6px}
.cal-legend i{width:8px;height:8px;border-radius:50%}
.cal-legend-hint{margin-left:auto;font-size:11px}
.cal-week{display:grid;grid-template-columns:1fr;gap:10px}
.cal-day{min-width:0;position:relative;background:#fffaf5;border:1px solid #eee3da;border-radius:22px;display:grid;grid-template-columns:58px 1fr 64px;column-gap:12px;padding:15px;text-align:left;color:var(--txt);transition:border-color .15s,background .15s}
.cal-day-top{grid-column:1/3;display:flex;align-items:center;gap:8px;color:var(--sub);font-size:12px;font-weight:800;margin-bottom:6px}
.cal-day em,.cal-cell em{font-style:normal;font-size:9px;padding:3px 7px;border-radius:20px;background:#ffdecf;color:#995638;font-weight:900}
.cal-number{grid-column:1;grid-row:2/4;font-size:32px;line-height:1.2;font-weight:900;color:#715551}
.cal-host{grid-column:2;font-size:12px;display:flex;align-items:center;gap:5px;font-weight:800;min-width:0}
.cal-host .ico{width:14px;height:14px;color:var(--host-color)}
.cal-food{grid-column:3;grid-row:1/5;display:flex;align-items:center;justify-content:center}
.cal-food img{width:62px;height:62px;object-fit:contain;transition:transform .18s ease}
.cal-menu{grid-column:2;display:block;font-size:12px;line-height:1.35;margin-top:5px;overflow-wrap:anywhere}
.cal-dessert{grid-column:2;font-size:10px;color:var(--sub);margin-top:3px}
.cal-day-bottom{grid-column:1/3;display:block;margin-top:11px;padding-top:9px;border-top:1px dashed #e8dcd3;color:#9a6a50;font-size:10px;font-weight:800}
.cal-day.is-today,.cal-cell.is-today{border-color:#eba988;box-shadow:0 0 0 2px #fff1e7;background:#fff5e9}
.cal-day.is-cancelled,.cal-cell.is-cancelled{background:#f7f1f1;border-color:#e6d8dc}
.cal-weekend{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.cal-weekend>span{flex:1;padding:11px 14px;border-radius:15px;background:#f6f1f9;color:#85748c;font-size:11px;font-weight:800}
.cal-weekend small{display:block;font-weight:500;font-size:10px;margin-top:2px}
.cal-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.cal-weekday{text-align:center;font-size:9px;font-weight:900;color:var(--sub);padding:8px 0}
.cal-cell{display:flex;flex-direction:column;align-items:flex-start;min-width:0;min-height:80px;border:1px solid #efe5dc;border-radius:11px;padding:6px 4px;background:#fffbf6;text-align:left;color:var(--txt);gap:5px}
.cal-cell strong{font-size:15px;display:flex;align-items:center;justify-content:space-between;width:100%}
.cal-cell em{font-size:7px;padding:2px 3px}
.cal-cell-host{font-size:8px;font-weight:900;line-height:1.2;width:100%;overflow-wrap:anywhere;border-bottom:2px solid var(--host-color);padding-bottom:3px}
.cal-cell-menu{display:none}
.cal-cell small{font-size:8px;color:var(--sub)}
.cal-cell.is-weekend{background:#f6f2f8;color:#93829e;border-color:transparent}
.cal-cell.is-weekend>span{font-size:7px}
.cal-plan{margin:18px 0;padding:20px;border-radius:25px;background:#f3edf9;border:1px solid #eae0f2;display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.cal-eyebrow{font-size:9px;font-weight:900;letter-spacing:.09em;color:#9276a5}
.cal-plan h2{font-size:18px;color:#64516d;margin-top:6px;letter-spacing:-.03em}
.cal-plan p{font-size:12px;margin-top:5px;color:#83728d}
.cal-plan-buttons{display:flex;flex-direction:column;gap:8px;width:100%}
#app[data-view="cal"] .cal-plan #proponsem,#app[data-view="cal"] .cal-plan #planisem{width:100%;margin:0;font-size:12px;padding:12px 15px;min-height:44px}
.cal-plan .btn.sec{background:transparent;border-color:#d9cbe5;color:#715b80}
.cal-skeleton{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;min-height:260px}
.cal-skeleton>div{border-radius:20px;background:#f5eff3;position:relative;overflow:hidden}
.cal-skeleton>div::after{content:'';position:absolute;inset:0;background:linear-gradient(100deg,transparent,#ffffffb0,transparent);transform:translateX(-100%);animation:cal-load 1.4s ease-in-out infinite}
@keyframes cal-load{to{transform:translateX(100%)}}
.cal-error{padding:40px 15px;text-align:center;color:var(--sub);font-size:14px}.cal-error button{margin-top:15px}
.calendar-board button:focus-visible{outline:3px solid #ad8cc4;outline-offset:3px}
@media(hover:hover){.cal-day:hover,.cal-cell[data-d]:hover{background:#fff1e5;border-color:#dfa890}.cal-day:hover .cal-food img{transform:rotate(-5deg) translateY(-3px)}}
@media(min-width:800px){
  #app[data-view="cal"]{max-width:1248px}
  .calendar-board{padding:24px;border-radius:30px}
  .cal-mascot{width:80px;height:80px;margin-right:12px}
  .cal-period{flex:0 1 350px;gap:12px}.cal-period #ctit{font-size:21px}
  .cal-legend{font-size:12px;margin-bottom:23px;gap:18px}
  .cal-week{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;align-items:stretch}
  .cal-day{display:flex;flex-direction:column;padding:16px 13px;gap:0;min-height:285px;border-radius:22px}
  .cal-day-top{font-size:11px;justify-content:space-between;margin-bottom:7px;gap:3px}
  .cal-number{font-size:35px;margin-bottom:9px}
  .cal-host{font-size:12px;min-height:20px}
  .cal-food{margin:13px 0 10px}.cal-food img{width:65px;height:65px}
  .cal-menu{font-size:13px;font-weight:800;margin:0 0 8px}
  .cal-dessert{font-size:11px;margin-bottom:10px}
  .cal-day-bottom{margin-top:auto;width:100%;font-size:10px}
  .cal-weekend>span{display:flex;align-items:center;gap:12px;font-size:12px}
  .cal-weekend small{font-size:11px;margin:0}
  .cal-month{gap:9px}.cal-weekday{font-size:11px}
  .cal-cell{min-height:117px;border-radius:17px;padding:10px;gap:7px}
  .cal-cell strong{font-size:20px}.cal-cell em{font-size:9px;padding:3px 7px}
  .cal-cell-host{font-size:11px;border:0;position:relative;padding-left:10px}
  .cal-cell-host::before{content:'';position:absolute;left:0;top:3px;width:5px;height:9px;border-radius:4px;background:var(--host-color)}
  .cal-cell-menu{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:10px;line-height:1.3;color:var(--sub);overflow-wrap:anywhere}
  .cal-cell small{font-size:9px}.cal-cell.is-weekend>span{font-size:10px}
  .cal-plan{justify-content:space-between;padding:24px 28px;margin-top:24px}
  .cal-plan h2{font-size:21px}.cal-plan-buttons{width:240px}
  .fiesta:has(#guardaPlan){justify-content:center!important;padding:24px!important;background:#493d4680}
  .fiesta:has(#guardaPlan)>.card{border-radius:28px!important;max-height:90vh;overflow:auto}
}
@media(max-width:799px){.cal-toolbar{gap:10px}.cal-switch{width:100%}.cal-switch button{flex:1}.cal-legend-hint{display:none}.cal-skeleton{grid-template-columns:1fr}.cal-skeleton>div{min-height:100px}}
@media(prefers-reduced-motion:reduce){button.plato .plate-art,.kids-grid button.plato.on,.cal-food img{animation:none!important;transition:none!important;transform:none!important}.cal-skeleton>div::after{animation:none}}
