.picnic-settings { display:flex; flex-wrap:wrap; column-gap:28px; row-gap:0; }
.picnic-settings .learning-settings { margin-bottom:16px; }
.picnic-workspace { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(230px,1fr); gap:24px; }
.picnic-table { min-width:0; background:#161d35; padding:12px; }
.picnic-guests { display:grid; gap:12px; }
.picnic-guest { display:grid; grid-template-columns:100px minmax(0,1fr); align-items:center; gap:10px; padding-bottom:12px; border-bottom:1px solid #444d69; }
.picnic-guest:last-child { border-bottom:0; padding-bottom:0; }
.picnic-seat { width:100%; min-height:118px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; padding:6px; background:#0c1124; border:1px solid #6f7895; color:var(--text); }
.picnic-seat:hover { border-color:var(--amber); }
.picnic-seat .explore-portrait { --picnic-portrait-width:64px; --picnic-portrait-height:70px; width:min(var(--picnic-portrait-width),calc(var(--picnic-portrait-height) * var(--picnic-ratio,1))); height:min(var(--picnic-portrait-height),calc(var(--picnic-portrait-width) / var(--picnic-ratio,1))); flex:none; }
.picnic-name { font-size:.875rem; }
.picnic-guest[data-ready=true] .picnic-seat { border-color:var(--cyan); background:#183d40; }
.picnic-place { min-width:0; }
.picnic-request { display:flex; align-items:center; flex-wrap:wrap; gap:6px; margin-bottom:8px; color:var(--muted); font-size:.8125rem; }
.picnic-request-item { display:inline-flex; align-items:center; gap:2px; color:var(--text); }
.picnic-request-item .learning-picture { width:35px; }
.picnic-request-item strong { min-width:16px; color:var(--amber); font-size:1.15rem; }
.picnic-plate { display:flex; gap:4px; align-items:center; flex-wrap:wrap; min-height:50px; padding:4px; background:#090f20; border-bottom:2px solid #747c9a; }
.picnic-serving { display:grid; place-items:center; width:44px; height:44px; padding:2px; border:1px solid #555f7f; background:#202941; color:var(--text); }
.picnic-serving:hover { border-color:var(--amber); }
.picnic-serving .learning-picture { width:38px; }
.picnic-empty { color:var(--muted); font-size:.8125rem; padding-left:6px; }
.picnic-plate-note { color:var(--muted); font-size:.8125rem; margin:5px 0 0; }
.picnic-guest[data-ready=true] .picnic-plate-note { color:var(--cyan); }
.picnic-totals { margin:12px 0 0; text-align:center; color:var(--text); font-size:1rem; }
.picnic-basket { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.picnic-food { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; min-height:100px; padding:8px; background:#1d2137; border:1px solid #777493; color:var(--text); font-size:.875rem; }
.picnic-food .learning-picture { width:58px; }
.picnic-food[aria-pressed=true] { background:#393044; border-color:var(--amber); color:var(--amber); }
.picnic-food-label { display:flex; flex-wrap:wrap; justify-content:center; column-gap:5px; }
.picnic-food-label small { font-size:.75rem; color:var(--muted); }
.picnic-basket-note { margin:8px 0 12px; color:var(--amber); font-size:.875rem; }
.picnic-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.picnic-actions .game-button { display:flex; align-items:center; justify-content:center; gap:6px; padding:8px; font-size:.8125rem; }
.picnic-actions svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; flex:none; }
.picnic-actions [data-picnic-next] { grid-column:1 / -1; }
.picnic-status { font-size:.875rem; }
.picnic-saved-list { display:grid; gap:8px; }
.picnic-saved-item { display:flex; flex-direction:column; align-items:flex-start; text-align:left; gap:2px; }
.picnic-saved-item small { color:var(--muted); font-size:.75rem; }
.picnic-saved-empty { font-size:.8125rem; margin:0; }
.picnic-page button:focus-visible { outline:2px solid var(--cyan); outline-offset:3px; }
.picnic-stage.is-immersive { display:block; }
.picnic-stage.is-immersive .picnic-workspace { max-width:950px; margin-inline:auto; }
@media(max-width:650px) {
  .picnic-workspace { grid-template-columns:1fr; gap:16px; }
  .picnic-tools { display:contents; }
  .picnic-table { grid-row:3; padding:10px; }
  .picnic-guest { grid-template-columns:75px minmax(0,1fr); gap:8px; padding-bottom:10px; }
  .picnic-seat { min-height:100px; }
  .picnic-seat .explore-portrait { --picnic-portrait-width:55px; --picnic-portrait-height:60px; }
  .picnic-request { margin-bottom:4px; }
  .picnic-basket { grid-row:1; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; position:sticky; top:8px; z-index:4; background:var(--game-ground); padding-bottom:6px; }
  .picnic-stage.is-immersive .picnic-basket { top:64px; }
  .picnic-basket-note { grid-row:2; margin:0; }
  .picnic-food { min-height:88px; padding:5px 2px; }
  .picnic-food .learning-picture { width:46px; }
  .picnic-food-label { flex-direction:column; gap:0; font-size:.8125rem; }
  .picnic-actions { grid-row:4; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .picnic-status { grid-row:5; margin:0; }
  .picnic-saved { grid-row:6; margin-top:0; }
}
@media(min-width:650px) and (max-height:600px) {
  .picnic-stage.is-immersive { padding:8px 12px; }
  .picnic-stage.is-immersive .picnic-settings { column-gap:20px; }
  .picnic-stage.is-immersive .picnic-settings .learning-settings { margin:4px 0 8px; }
  .picnic-stage.is-immersive .picnic-workspace { grid-template-columns:minmax(0,1.3fr) minmax(250px,1fr); gap:12px; }
  .picnic-stage.is-immersive .picnic-table { padding:6px; }
  .picnic-stage.is-immersive .picnic-guests { gap:6px; }
  .picnic-stage.is-immersive .picnic-guest { grid-template-columns:70px minmax(0,1fr); gap:8px; padding-bottom:6px; }
  .picnic-stage.is-immersive .picnic-seat { min-height:73px; padding:2px; }
  .picnic-stage.is-immersive .picnic-seat .explore-portrait { --picnic-portrait-width:38px; --picnic-portrait-height:42px; }
  .picnic-stage.is-immersive .picnic-request { gap:4px; margin-bottom:2px; font-size:.75rem; }
  .picnic-stage.is-immersive .picnic-request-item .learning-picture { width:25px; }
  .picnic-stage.is-immersive .picnic-request-item strong { font-size:1rem; }
  .picnic-stage.is-immersive .picnic-plate { min-height:44px; padding:0; gap:2px; }
  .picnic-stage.is-immersive .picnic-serving { width:44px; height:44px; }
  .picnic-stage.is-immersive .picnic-serving .learning-picture { width:34px; }
  .picnic-stage.is-immersive .picnic-plate-note { margin:2px 0 0; font-size:.75rem; }
  .picnic-stage.is-immersive .picnic-plate-note { display:none; }
  .picnic-stage.is-immersive .picnic-totals { margin-top:5px; font-size:.875rem; }
  .picnic-stage.is-immersive .picnic-basket { grid-template-columns:repeat(4,minmax(0,1fr)); gap:4px; }
  .picnic-stage.is-immersive .picnic-food { min-height:66px; padding:2px; font-size:.75rem; }
  .picnic-stage.is-immersive .picnic-food .learning-picture { width:34px; }
  .picnic-stage.is-immersive .picnic-food-label { flex-direction:column; gap:0; }
  .picnic-stage.is-immersive .picnic-basket-note { margin:4px 0 6px; font-size:.75rem; }
  .picnic-stage.is-immersive .picnic-actions { gap:6px; }
  .picnic-stage.is-immersive .picnic-actions .game-button { min-height:44px; padding:4px 6px; }
  .picnic-stage.is-immersive .picnic-status { margin:6px 0 0; font-size:.8125rem; line-height:1.55; }
  .picnic-stage.is-immersive .picnic-tools { max-height:calc(var(--game-view-height,100svh) - 130px); overflow-y:auto; padding-right:6px; }
  .picnic-stage.is-immersive .picnic-saved { margin-top:8px; padding-top:4px; }
}
@media(prefers-reduced-motion:no-preference) {
  .picnic-guest.is-thanking .explore-portrait { animation:picnic-thanks .45s ease-out; }
  @keyframes picnic-thanks { 0% { transform:translateY(0); } 45% { transform:translateY(-5px); } 100% { transform:translateY(0); } }
}
