/* Phoenix v65 — final deterministic mobile schedule controls. */
#page[data-page="schedule"] .schedule-actions-v65{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  grid-template-rows:40px!important;
  gap:6px!important;
  width:100%!important;
  max-width:100%!important;
  margin:10px 0 16px!important;
  padding:0!important;
  overflow:visible!important;
  box-sizing:border-box!important;
}
#page[data-page="schedule"] .schedule-actions-v65>.schedule-action-v65{
  grid-row:1!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  height:40px!important;
  min-height:40px!important;
  margin:0!important;
  padding:0 4px!important;
  border-radius:13px!important;
  display:flex!important;
  flex-direction:row!important;
  flex-wrap:nowrap!important;
  align-items:center!important;
  justify-content:center!important;
  gap:4px!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  font-size:10.5px!important;
  line-height:1!important;
  font-weight:800!important;
  box-sizing:border-box!important;
}
#page[data-page="schedule"] .schedule-actions-v65>.schedule-action-v65 svg{
  width:15px!important;height:15px!important;min-width:15px!important;flex:0 0 15px!important;
}
#page[data-page="schedule"] .schedule-actions-v65>.schedule-action-v65 span{
  min-width:0!important;overflow:hidden!important;text-overflow:clip!important;
}
#page[data-page="schedule"] .schedule-actions-v65>.schedule-action-v65:disabled{
  opacity:.42!important;filter:saturate(.35)!important;pointer-events:none!important;
}
@media(max-width:390px){
  #page[data-page="schedule"] .schedule-actions-v65{gap:4px!important;grid-template-rows:38px!important}
  #page[data-page="schedule"] .schedule-actions-v65>.schedule-action-v65{height:38px!important;min-height:38px!important;font-size:9.5px!important;padding:0 2px!important;gap:3px!important}
  #page[data-page="schedule"] .schedule-actions-v65>.schedule-action-v65 svg{width:13px!important;height:13px!important;min-width:13px!important;flex-basis:13px!important}
}
@media(min-width:900px){
  #page[data-page="schedule"] .schedule-actions-v65{grid-template-columns:repeat(4,max-content)!important;justify-content:start!important;width:auto!important;gap:8px!important}
  #page[data-page="schedule"] .schedule-actions-v65>.schedule-action-v65{width:auto!important;min-width:92px!important;padding:0 14px!important;font-size:12px!important}
}
/* Never show the legacy top holiday banner. The contextual schedule-closed card is the single source of truth. */
#page[data-page="schedule"]>.holiday-notice{display:none!important}
/* During week network refresh, keep layout fixed and softly de-emphasize only lesson content. */
#page[data-page="schedule"] .lesson-list,
#page[data-page="schedule"] .sched-table-wrap,
#page[data-page="schedule"] .empty-state{transition:opacity .16s ease,transform .16s ease}
#page[data-page="schedule"].v65-week-arrive .lesson-list,
#page[data-page="schedule"].v65-week-arrive .sched-table-wrap,
#page[data-page="schedule"].v65-week-arrive .empty-state{animation:v65WeekArrive .18s ease-out both}
@keyframes v65WeekArrive{from{opacity:.55;transform:translateY(2px)}to{opacity:1;transform:none}}
/* Calendar: only the month title/grid transition; the sheet itself never moves. */
.phx-calendar{transform:none!important;transition:none!important;animation:none!important}
.phx-calendar.phx-cal-swapping .phx-cal-nav h3,
.phx-calendar.phx-cal-swapping .phx-cal-grid{opacity:.55!important;transform:translateX(3px)!important;transition:opacity .08s ease,transform .08s ease!important}
.phx-calendar.phx-cal-arrive .phx-cal-nav h3,
.phx-calendar.phx-cal-arrive .phx-cal-grid{animation:v65MonthIn .15s ease-out both!important}
@keyframes v65MonthIn{from{opacity:.45;transform:translateX(-3px)}to{opacity:1;transform:none}}

/* v67 */
.teacher-mine-filter67{display:flex;align-items:center;gap:10px;width:max-content;max-width:100%;margin:10px 0 16px;padding:10px 14px;border-radius:16px;background:#fff;font-weight:750;font-size:14px;box-shadow:0 1px 0 rgba(0,0,0,.04)}
.teacher-mine-filter67 input{width:20px;height:20px;accent-color:#ff6b21}.teacher-hidden67{display:none!important}
.menu-save67{position:sticky;bottom:calc(92px + env(safe-area-inset-bottom));z-index:8;margin:20px 0 8px;padding:10px;background:rgba(246,247,249,.9);backdrop-filter:blur(14px);border-radius:22px}.menu-save67 .btn{width:100%;min-height:52px}.menu-save67 small{display:block;text-align:center;color:var(--ink3);margin-top:7px;font-size:12px}.dish-choice67{width:100%;text-align:left;border:2px solid transparent}.dish-choice67.selected{border-color:#ff6b21}.dish-composition-link{display:inline-block;color:#ff6b21;margin-top:8px;font-weight:650}.dish-check{flex:0 0 34px;width:34px;height:34px;border:2px solid #d9dce2;border-radius:50%;display:grid;place-items:center;font-weight:900}.dish-card.selected .dish-check{background:#ff6b21;border-color:#ff6b21;color:#fff}

/* v67 student menu visual hotfix: keep student cards identical to the stable admin geometry. */
.menu-save67{position:static!important;bottom:auto!important;z-index:auto!important;margin:18px 0 calc(110px + env(safe-area-inset-bottom))!important;padding:0!important;background:transparent!important;backdrop-filter:none!important;border-radius:0!important}
.menu-save67 .btn{width:100%;min-height:52px}
.dish-choice67{box-sizing:border-box!important;display:flex!important;align-items:center!important;gap:12px!important;width:100%!important;min-height:0!important;margin:0 0 10px!important;padding:12px!important;border-radius:20px!important;border:2px solid transparent!important;overflow:hidden!important;white-space:normal!important;font:inherit!important;color:inherit!important;background:var(--card)!important}
.dish-choice67.selected{border-color:#ff6b21!important;outline:none!important}
.dish-choice67 .dish-photo{display:block!important;width:64px!important;height:64px!important;min-width:64px!important;flex:0 0 64px!important;border-radius:16px!important;background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important;overflow:hidden!important}
.dish-choice67 .dish-body{display:block!important;min-width:0!important;flex:1 1 auto!important;text-align:left!important}
.dish-choice67 .dish-body h4{margin:0!important;font-size:15px!important;line-height:1.2!important;overflow-wrap:anywhere!important}
.dish-choice67 .dish-composition-link{display:inline-block!important;margin-top:8px!important;line-height:1.2!important}
.dish-choice67 .dish-check{margin-left:auto!important;flex:0 0 34px!important}
