/* Sculpted ivory theme — 2026–2027. Shared by current-season menus. */
body.season-layout {
    --ink: #293633;
    --ivory: #e9e5da;
    height: auto;
    min-height: 100dvh;
    display: flex;
    align-items: center;
    padding: 48px 20px;
    color: var(--ink);
    background: url('assets/grain.svg'), radial-gradient(ellipse at 18% 12%, #c0d9d3 0, transparent 48%), radial-gradient(ellipse at 85% 80%, #b0d0ca 0, transparent 48%), #91beb9;
}
.season-layout .menu-container {
    width: min(100%, 470px);
    height: auto;
    min-height: 0;
    margin: auto;
    overflow: visible;
    padding: 30px;
    border: 1px solid #f6f4eb;
    border-radius: 58px;
    background: url('assets/grain.svg'), linear-gradient(125deg, #f0ede4, #e4e0d5 65%, #ece9df);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    box-shadow: inset 2px 3px 2px #fffdf4, inset -2px -3px 3px #bcbcb0, 0 5px 3px #587e7770, -9px 20px 24px #294e4855, 0 36px 52px #366c6340;
    animation: panel-arrive 500ms ease-out both;
}
.season-layout .brand-link, .season-layout .logo-container {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    height: auto;
    min-height: 100px;
    margin: 0 0 16px;
    padding: 24px 18px;
    border: 1px solid #fdfaf0;
    border-radius: 29px;
    background: radial-gradient(ellipse at 50% 80%, #3c4440, #242c29);
    box-shadow: inset 0 3px 7px #0009, 0 2px 1px #fffdf2;
    color: #ffffff;
    font-size: 28px;
    line-height: 1.25;
    text-align: center;
    letter-spacing: 1px;
    text-shadow: 0 1px #fff, 0 3px #898c80, 0 5px 4px #0009;
    overflow-wrap: anywhere;
}
.season-layout .brand-link { min-height: 118px; }
.season-layout .brand-link img {
    display: block;
    width: 100%;
    max-width: 330px;
    height: auto;
    object-fit: contain;
    filter: drop-shadow(0 1px 0 #dedbcf) drop-shadow(0 2px 0 #a4a79a) drop-shadow(0 3px 0 #757d70) drop-shadow(-2px 5px 2px #0008);
}
.season-layout .admin-label {
    font-size: 12px;
    line-height: 1.5;
    font-weight: 500;
    text-align: center;
    letter-spacing: 3px;
    margin: 0 0 16px;
}
.season-layout .subtitle { text-align:center;font-weight:600;margin:0 0 20px;line-height:1.5; }
.season-layout .menu { overflow:visible;flex-grow:0;gap:15px; }
.season-layout .menu-item, .season-layout .back-button {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 66px;
    height: auto;
    padding: 14px 12px;
    border: 1px solid #f8f6ed;
    border-radius: 23px;
    background: url('assets/grain.svg'), linear-gradient(150deg, #eeebe2, #e5e1d7);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    color: var(--ink);
    font-size: 21px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: .2px;
    text-align: center;
    text-decoration: none;
    text-shadow: 0 1px 0 #fff9;
    box-shadow: inset 1px 3px 2px #fffdf5, inset -1px -3px 2px #b8b9ad, -2px 4px 3px #61635760, -3px 8px 8px #5b5d4e35;
    cursor: pointer;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
    transition: transform 160ms ease, box-shadow 160ms ease;
}
.season-layout[data-page="home"] .menu-item { min-height:76px;font-size:27px; }
.season-layout .menu-item small { display:block;font-size:12px;font-weight:500;margin-top:6px;letter-spacing:1px; }
.season-layout .grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px; }
.season-layout .grid .menu-item { font-size:16px; }
.season-layout .back-button { position:static;transform:none;margin:24px 0 0;min-height:48px;font-size:14px;letter-spacing:1.5px; }
@media (hover:hover) {
    .season-layout .menu-item:hover, .season-layout .back-button:hover { transform:translateY(-2px);box-shadow:inset 1px 3px 2px #fffdf5,inset -1px -3px 2px #b8b9ad,-2px 6px 4px #61635760,-3px 11px 12px #5b5d4e40; }
}
.season-layout .menu-item:active, .season-layout .back-button:active { transform:translateY(3px);box-shadow:inset 1px 2px 3px #fff9,inset -1px -1px 2px #b8b9ad,0 1px 2px #61635760; }
.season-layout .status { font-size:14px;line-height:1.5;margin:18px 0 0;text-align:center; }
.season-layout .status:empty { margin:0; }
.season-layout .status.error { color:#922d23;font-weight:600; }
.season-layout form { display:flex;flex-direction:column;gap:18px; }
.season-layout label { display:flex;flex-direction:column;gap:8px;font-size:14px;font-weight:650; }
.season-layout input { width:100%;padding:14px;border:1px solid #a5ada0;background:#f8f6ef;border-radius:12px;font:inherit;font-weight:400;color:var(--ink);box-shadow:inset 0 2px 3px #414d3020; }
.season-layout button:disabled { opacity:.6;cursor:wait;transform:none; }
.season-layout a:focus-visible,.season-layout button:focus-visible,.season-layout input:focus-visible { outline:3px solid #246c65;outline-offset:5px; }
.season-layout[data-admin="true"] main { visibility:hidden; }
.season-layout.admin-ready main { visibility:visible; }
[hidden] { display:none!important; }
@keyframes panel-arrive { from { opacity:0;transform:translateY(12px); } to { opacity:1;transform:translateY(0); } }
@media(max-width:480px) {
    body.season-layout { padding:max(22px,env(safe-area-inset-top)) 18px max(28px,env(safe-area-inset-bottom)); }
    .season-layout .menu-container { width:100%;padding:23px 20px;border-radius:40px; }
    .season-layout .brand-link { min-height:96px;padding:20px 17px;border-radius:24px; }
    .season-layout .logo-container { height:auto!important;font-size:24px; }
    .season-layout .menu { gap:13px; }
    .season-layout .menu-item { border-radius:19px; }
    .season-layout[data-page="home"] .menu-item { min-height:65px;font-size:clamp(20px,6vw,26px); }
    .season-layout .admin-label { font-size:10px;letter-spacing:2.4px; }
    .season-layout .back-button { display:flex!important; }
    .season-layout .grid { gap:12px; }
}
@media(prefers-reduced-motion:reduce) {
    .season-layout .menu-container { animation:none; }
    .season-layout .menu-item,.season-layout .back-button { transition:none; }
}

/* Login uses the same controls without changing authentication. */
.season-layout.login-page .button-group { padding:0;margin-top:20px;gap:14px; }
.season-layout.login-page .button-group .back-button { margin-top:0; }
.season-layout.login-page .mobile-footer { display:none!important; }
.season-layout.login-page .error-message { color:#922d23; }
.season-layout.login-page .modal-content { background:#e9e5da;box-shadow:0 16px 48px #19332d66; }
.season-layout.login-page .modal-title,.season-layout.login-page .modal-label { color:#293633; }
.season-layout.login-page .modal-button { color:#293633;background:#f8f6ef;border-color:#a5ada0; }

/* Stable navigation frame: only the middle region scrolls between pages. */
body.season-layout[data-page] {
    height: 100svh;
    min-height: 0;
    padding: max(24px, env(safe-area-inset-top)) 20px max(24px, env(safe-area-inset-bottom));
}
.season-layout[data-page] .menu-container {
    display: grid;
    grid-template-areas: "header" "meta" "content" "status" "back";
    grid-template-rows: 118px 40px minmax(0, 1fr) 36px var(--nav-control-height);
    gap: 10px;
    height: min(900px, 100%);
    min-height: 420px;
    animation: none;
}
.season-layout[data-page] .brand-link,
.season-layout[data-page] .logo-container {
    grid-area: header;
    height: 100%!important;
    min-height: 0;
    margin: 0;
}
.season-layout .page-meta { grid-area:meta;display:flex;flex-direction:column;justify-content:center;gap:3px;text-align:center; }
.season-layout .page-meta .admin-label,
.season-layout .page-meta .subtitle { margin:0;line-height:1.3; }
.season-layout .page-meta .subtitle { font-size:12px; }
.season-layout[data-page] .menu,
.season-layout[data-page] form {
    grid-area: content;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    align-content: start;
    padding: 6px 8px 12px;
    margin: -6px -8px 0;
    scrollbar-width: thin;
    scrollbar-color: #7d9690 transparent;
    overscroll-behavior-y: contain;
}
.season-layout[data-page] .menu-item { flex-shrink:0;min-height:76px; }
.season-layout[data-page] .status { grid-area:status;align-self:center;margin:0;font-size:12px;line-height:1.35; }
.season-layout[data-page] .back-button { grid-area:back;margin:0;height:48px;min-height:0; }
@media(max-width:480px) {
    body.season-layout[data-page] { padding:max(22px,env(safe-area-inset-top)) 18px max(24px,env(safe-area-inset-bottom)); }
    .season-layout[data-page] .menu-container { grid-template-rows:96px 40px minmax(0,1fr) 36px var(--nav-control-height); }
    .season-layout[data-page] .menu-item { min-height:65px; }
}
@media(max-height:560px) {
    body.season-layout[data-page] { height:auto;min-height:100svh;padding-top:12px;padding-bottom:12px; }
    .season-layout[data-page] .menu-container { height:520px; }
}

/* Fit portrait phone screens; preserve 44px touch targets and scrolling fallback. */
@media(max-width:480px) and (orientation:portrait) {
    body.season-layout[data-page] {
        height:100svh;
        min-height:0;
        padding:max(8px,env(safe-area-inset-top)) 12px max(8px,env(safe-area-inset-bottom));
    }
    .season-layout[data-page] .menu-container {
        height:100%;min-height:0;padding:16px;
        grid-template-rows:clamp(64px,11svh,96px) 32px minmax(0,1fr) auto var(--nav-control-height);
        gap:6px;
    }
    .season-layout[data-page] .brand-link,
    .season-layout[data-page] .logo-container { padding:12px 16px; }
    .season-layout[data-page] .menu {
        display:grid;
        grid-template-rows:repeat(var(--menu-rows,6),minmax(44px,1fr));
        gap:8px;
        align-content:stretch;
        max-height:calc(var(--menu-rows,6) * 68px + (var(--menu-rows,6) - 1) * 8px + 18px);
    }
    .season-layout[data-page] .menu-item {
        min-height:44px;height:100%;padding:7px 5px;font-size:20px;
    }
    .season-layout[data-page] .grid .menu-item { font-size:13px; }
    .season-layout[data-page] .dense-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .season-layout[data-page] .dense-grid .menu-item { font-size:12px; }
    .season-layout[data-page] .menu-item small { font-size:10px;margin-top:3px; }
    .season-layout[data-page] .back-button { height:44px; }
    .season-layout[data-page] .status:empty { display:none; }
}
.season-layout[data-page] .brand-link img { max-height:100%; }

/* Navigation choices share the home screen's button typography and dimensions. */
.season-layout[data-page] nav.menu > .menu-item { font-size:27px; }
@media(max-width:480px) {
    .season-layout[data-page] nav.menu > .menu-item { font-size:clamp(20px,6vw,26px); }
}
@media(max-width:480px) and (orientation:portrait) {
    .season-layout[data-page] nav.menu > .menu-item { font-size:20px; }
}

/* Page titles match the visual height of the home wordmark. */
.season-layout[data-page] h1.logo-container {
    font-size:64px;
    font-weight:800;
    line-height:1;
    letter-spacing:1px;
    padding:12px 14px;
}
.season-layout[data-page] h1.logo-container.long-title { font-size:38px; }
@media(max-width:480px) {
    .season-layout[data-page] h1.logo-container { font-size:clamp(38px,7svh,60px); }
    .season-layout[data-page] h1.logo-container.long-title { font-size:clamp(25px,4.5svh,36px); }
}

/* Explicit viewport dimensions prevent percentage sizing from collapsing the frame. */
body.season-layout[data-page] { width:100%;display:block; }
.season-layout[data-page] .menu-container {
    width:min(470px,100%);
    height:min(900px,calc(100svh - max(24px,env(safe-area-inset-top)) - max(24px,env(safe-area-inset-bottom))));
    grid-template-columns:minmax(0,1fr);
    margin:0 auto;
}
.season-layout[data-page] .menu-container > * { min-width:0; }
@media(max-width:480px) and (orientation:portrait) {
    .season-layout[data-page] .menu-container {
        height:calc(100svh - max(8px,env(safe-area-inset-top)) - max(8px,env(safe-area-inset-bottom)));
        min-height:480px;
    }
}
@media(max-height:560px) and (orientation:landscape) {
    .season-layout[data-page] .menu-container { height:520px; }
}

/* Nine months fill the available region, with nine equal-size buttons. */
.season-layout[data-page] .menu.month-grid {
    grid-template-columns:repeat(4,minmax(0,1fr));
    grid-template-rows:repeat(5,minmax(44px,1fr));
    align-content:stretch;
    max-height:none;
    height:100%;
    margin-top:0;
    padding-top:6px;
}
.season-layout[data-page] .month-grid > .menu-item {
    grid-column:span 2;
    min-height:44px;
    height:100%;
    padding:7px 5px;
}
.season-layout[data-page] .month-grid > .menu-item:last-child { grid-column:2 / span 2; }
.season-layout[data-page] .menu-container:has(.month-grid):has(.status:empty) {
    grid-template-rows:118px 40px minmax(0,1fr) 0 var(--nav-control-height);
}
@media(max-width:480px) {
    .season-layout[data-page] .menu-container:has(.month-grid):has(.status:empty) {
        grid-template-rows:96px 40px minmax(0,1fr) 0 var(--nav-control-height);
    }
}
@media(max-width:480px) and (orientation:portrait) {
    .season-layout[data-page] .menu-container:has(.month-grid):has(.status:empty) {
        grid-template-rows:clamp(64px,11svh,96px) 32px minmax(0,1fr) 0 var(--nav-control-height);
    }
}

/* Original white wordmark and turquoise underline, with sculpted shadows. */
.season-layout .brand-art {
    display:block;position:relative;width:100%;max-width:330px;
    aspect-ratio:5082 / 1077;max-height:100%;
    filter:drop-shadow(0 1px 0 #dedbcf) drop-shadow(0 2px 0 #a4a79a) drop-shadow(0 3px 0 #757d70) drop-shadow(-2px 5px 2px #0008);
}
.season-layout .brand-art img { width:100%;height:100%;filter:none;object-fit:contain; }


/* Return and navigation choices share one responsive control size. */
body.season-layout[data-page] { --nav-control-height:76px; }
.season-layout[data-page] .back-button {
    height:var(--nav-control-height);min-height:var(--nav-control-height);
    font-size:27px;letter-spacing:.2px;padding:14px 12px;
}
@media(max-width:480px) {
    body.season-layout[data-page] { --nav-control-height:65px; }
    .season-layout[data-page] .back-button { font-size:clamp(20px,6vw,26px); }
}
@media(max-width:480px) and (orientation:portrait) {
    body.season-layout[data-page] {
        --nav-control-height:clamp(44px,calc((100svh - clamp(64px,11svh,96px) - 170px) / 7),68px);
    }
    .season-layout[data-page] nav.menu {
        grid-template-rows:repeat(var(--menu-rows,6),var(--nav-control-height));
    }
    .season-layout[data-page] .back-button { font-size:20px;padding:7px 5px;border-radius:19px; }
}

/* Monthly labels match the main navigation on desktop, fit full names on phones. */
.season-layout[data-page] .month-grid > .menu-item {
    font-size:27px;
    white-space:nowrap;
}
@media(max-width:480px) {
    .season-layout[data-page] .month-grid > .menu-item {
        font-size:clamp(15px,5vw,24px);
        letter-spacing:0;
    }
}

/* One label size for every action, including phone layouts. */
body.season-layout { --button-label-size:27px; }
.season-layout .menu-item,
.season-layout[data-page] .menu-item,
.season-layout[data-page] nav.menu > .menu-item,
.season-layout[data-page] .grid .menu-item,
.season-layout[data-page] .dense-grid .menu-item,
.season-layout[data-page] .month-grid > .menu-item,
.season-layout .back-button,
.season-layout[data-page] .back-button,
.season-layout.login-page button {
    font-size:var(--button-label-size);
    line-height:1.2;
    white-space:normal;
    overflow-wrap:anywhere;
}
@media(max-width:480px) {
    .season-layout[data-page] .menu.grid {
        grid-template-rows:repeat(var(--menu-rows,5),minmax(80px,1fr));
    }
    .season-layout[data-page] .menu.month-grid {
        grid-template-rows:repeat(5,minmax(80px,1fr));
    }
    .season-layout[data-page] .dense-grid { grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(80px,1fr); }
}

/* Home has no Return action: give that space back to its six choices. */
.season-layout[data-page="home"][data-admin="false"] .menu-container {
    grid-template-areas:"header" "meta" "content" "status";
    grid-template-rows:118px 40px minmax(0,1fr) auto;
}
.season-layout[data-page="home"][data-admin="false"] nav.menu {
    display:grid;
    grid-template-rows:repeat(6,minmax(44px,1fr));
    gap:12px;
    max-height:none;
    align-content:stretch;
    scrollbar-width:none;
}
.season-layout[data-page="home"][data-admin="false"] nav.menu::-webkit-scrollbar { display:none; }
.season-layout[data-page="home"][data-admin="false"] nav.menu > .menu-item {
    min-height:44px;height:100%;padding:7px 5px;
}
.season-layout[data-page="home"][data-admin="false"] .status:empty { display:none; }
@media(max-width:480px) {
    .season-layout[data-page="home"][data-admin="false"] .menu-container {
        grid-template-rows:clamp(64px,11svh,96px) 32px minmax(0,1fr) auto;
    }
    .season-layout[data-page="home"][data-admin="false"] nav.menu { gap:8px; }
}

/* Weekly grids reserve room for a status message only when one is present. */
.season-layout[data-page] .menu-container:has(.menu.grid):not(:has(.month-grid)):has(.status:empty) {
    grid-template-areas:"header" "meta" "content" "back";
    grid-template-rows:118px 40px minmax(0,1fr) var(--nav-control-height);
}
.season-layout[data-page] .menu-container:has(.menu.grid) .status:empty { display:none; }
@media(max-width:480px) {
    .season-layout[data-page] .menu-container:has(.menu.grid):not(:has(.month-grid)):has(.status:empty) {
        grid-template-rows:96px 40px minmax(0,1fr) var(--nav-control-height);
    }
}
@media(max-width:480px) and (orientation:portrait) {
    .season-layout[data-page] .menu-container:has(.menu.grid):not(:has(.month-grid)):has(.status:empty) {
        grid-template-rows:clamp(64px,11svh,96px) 32px minmax(0,1fr) var(--nav-control-height);
    }
}

/* Admin sign-in uses the same frame, header and footer as program pages. */
.season-layout.google-login .menu-container {
    grid-template-areas:"header" "meta" "content" "back";
    grid-template-rows:118px 40px minmax(0,1fr) var(--nav-control-height);
}
.season-layout.google-login .login-content { grid-area:content;min-height:0;overflow:auto;padding:6px 8px 12px;margin:-6px -8px 0; }
.season-layout.google-login .login-copy { text-align:center;line-height:1.6;margin:0 0 24px;font-size:16px; }
.season-layout.google-login #google-login { min-height:76px;height:auto;font-size:27px; }
.season-layout.google-login #google-login[aria-disabled="true"] { opacity:.6;pointer-events:none;cursor:default; }
.season-layout.google-login #login-status { margin:24px 0 0;font-size:14px;line-height:1.5; }
@media(max-width:480px) {
    .season-layout.google-login .menu-container {
        grid-template-rows:clamp(64px,11svh,96px) 32px minmax(0,1fr) var(--nav-control-height);
    }
    .season-layout.google-login .login-copy { margin-bottom:18px; }
}

/* Keep sign-in aligned with the first navigation action on other pages. */
.season-layout.google-login .login-content {
    display:flex;flex-direction:column;justify-content:flex-start;
}
.season-layout.google-login #google-login {
    flex-direction:row;gap:14px;flex-shrink:0;
}
.season-layout.google-login .google-mark { width:30px;height:30px;flex:0 0 30px; }
.season-layout.google-login #google-login span { min-width:0; }
@media(max-width:480px) {
    .season-layout.google-login #google-login { gap:10px; }
}

/* Keep the explanation beneath the sign-in action. */
.season-layout.google-login .login-content > * { flex-shrink:0; }
.season-layout.google-login .login-copy { margin:22px 0 0; }
.season-layout.google-login #login-status { margin:16px 0 0; }

/* Admin home: do not reserve an empty message strip above sign-out. */
.season-layout[data-page="home"][data-admin="true"] .menu-container:has(.status:empty) {
    grid-template-areas:"header" "meta" "content" "back";
    grid-template-rows:118px 40px minmax(0,1fr) var(--nav-control-height);
}
.season-layout[data-page="home"][data-admin="true"] .status:empty { display:none; }
@media(max-width:480px) {
    .season-layout[data-page="home"][data-admin="true"] .menu-container:has(.status:empty) {
        grid-template-rows:96px 40px minmax(0,1fr) var(--nav-control-height);
    }
}
@media(max-width:480px) and (orientation:portrait) {
    .season-layout[data-page="home"][data-admin="true"] .menu-container:has(.status:empty) {
        grid-template-rows:clamp(64px,11svh,96px) 32px minmax(0,1fr) var(--nav-control-height);
    }
}

/* Bulletins: six compact rows; Return inherits the shared navigation size. */
.season-layout[data-page="bulletins"] .menu-container {
    grid-template-rows:clamp(64px,10svh,94px) 32px minmax(0,1fr) auto var(--nav-control-height);
}
.season-layout[data-page="bulletins"] .status:empty { display:none; }
.season-layout[data-page="bulletins"] nav.menu {
    display:grid;
    grid-template-rows:repeat(6,minmax(44px,1fr));
    gap:8px;
    align-content:stretch;
    max-height:none;
    margin:0 -8px;
    padding:4px 8px 12px;
}
.season-layout[data-page="bulletins"] nav.menu > .menu-item {
    min-height:44px;
    height:100%;
    padding:6px 8px;
}
.season-layout[data-page="bulletins"] .menu-item small { margin-top:3px; }
@media(max-width:480px) and (orientation:portrait) {
    .season-layout[data-page="bulletins"] .menu-container {
        grid-template-rows:clamp(64px,11svh,96px) 32px minmax(0,1fr) auto var(--nav-control-height);
    }
}
