/* ============================================================
 * 🌿 岁时记 / Seasons —— 奶酪童趣手账画报风
 * 视觉蓝本：工作区 岁时记.html 原型（用户提供的完整样式）
 * 铁律：绝对无 box-shadow、无 backdrop-filter（全项目+本模块双重铁律）
 * 夜间：变量在根块覆盖，不硬编码颜色
 * ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=ZCOOL+KuaiLe&family=Pacifico&family=Nunito:wght@800;900&family=Noto+Sans+SC:wght@400;700;900&display=swap');

/* ---- 色板令牌（白天）：挂在页面根，夜间在下方覆盖 ---- */
#seasons.seasons-page {
    --kb-bg: #FCF9F2;
    --kb-card: #FFFFFF;
    --kb-ink: #554A42;
    --kb-sub: #A89D93;
    --kb-pink: #F8D2D6;
    --kb-line: #E8DFD5;
    --kb-mask: rgba(252, 249, 242, 0.98);

    --f-title: 'ZCOOL KuaiLe', cursive;
    --f-en: 'Nunito', sans-serif;
    --f-hand: 'Pacifico', cursive;
    --f-sans: 'Noto Sans SC', sans-serif;
}

/* 夜间（深褐巧克力暗房感）—— 覆盖变量，不写死色值 */
body.dark-mode #seasons.seasons-page,
body.night #seasons.seasons-page,
#seasons.seasons-page.dark {
    --kb-bg: #2C2724;
    --kb-card: #3D3631;
    --kb-ink: #F0EBE1;
    --kb-sub: #A39B94;
    --kb-pink: #8B666C;
    --kb-line: #504842;
    --kb-mask: rgba(44, 39, 36, 0.98);
}

/* ---- 页面铺满手机壳（在 .page 容器内，不用原型的 fixed 抽屉） ---- */
#seasons.seasons-page {
    flex-direction: column;
    background: var(--kb-bg) !important;
    color: var(--kb-ink);
    font-family: var(--f-sans);
    overflow: hidden;
    -webkit-font-smoothing: antialiased;
}
#seasons.seasons-page * { box-shadow: none !important; backdrop-filter: none !important; }
#seasons.seasons-page button { cursor: pointer; }

/* 弹性按下回弹（手账贴纸感） */
#seasons .seasons-baby-card,
#seasons .seasons-ootd-card,
#seasons .seasons-pocket-cell,
#seasons .seasons-btn,
#seasons .seasons-tabbar button {
    transition: transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
#seasons .seasons-baby-card:active,
#seasons .seasons-ootd-card:active,
#seasons .seasons-pocket-cell:active,
#seasons .seasons-btn:active { transform: scale(0.93); }

/* ==================== 选孩子页（照 岁时记.html 原型） ==================== */
#seasons .seasons-picker { flex: 1; width: 100%; overflow-y: auto; padding: calc(40px + max(env(safe-area-inset-top, 0px), var(--safe-top, 0px))) 24px 40px; position: relative; }

/* 散落贴纸 */
#seasons .deco-art { position: absolute; pointer-events: none; z-index: 5; opacity: 0.95; }
body.dark-mode #seasons .deco-art, body.night #seasons .deco-art, #seasons.seasons-page.dark .deco-art { opacity: 0.75; filter: brightness(0.85); }

/* 顶栏：左 EXIT 退出（右上夜间是用户预览工具，不做） */
#seasons .p-top-bar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 24px; position: relative; z-index: 10; }
#seasons .app-exit-btn { font-family: var(--f-sans); font-size: 16px; font-weight: 700; color: var(--kb-sub); display: flex; align-items: center; gap: 4px; cursor: pointer; }
#seasons .app-exit-btn:active { color: var(--kb-ink); transform: scale(0.93); }

#seasons .p-head { margin-bottom: 24px; position: relative; z-index: 10; }
#seasons .p-title { font-family: var(--f-title); font-size: 42px; color: var(--kb-ink); }

/* char 筛选行 */
#seasons .char-scroll { display: flex; gap: 12px; overflow-x: auto; padding-bottom: 16px; margin-bottom: 20px; scrollbar-width: none; position: relative; z-index: 10; }
#seasons .char-scroll::-webkit-scrollbar { display: none; }
#seasons .filter-cap { flex-shrink: 0; background: var(--kb-bg); border: 2.5px solid var(--kb-ink); padding: 8px 24px; border-radius: 100px; font-weight: 900; font-size: 14px; color: var(--kb-sub); white-space: nowrap; }
#seasons .filter-cap.active { background: var(--kb-ink); color: var(--kb-card); }

/* 相册墙 */
#seasons .photo-wall { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; align-items: start; position: relative; z-index: 10; }
#seasons .seasons-baby-card {
    background: var(--kb-card); border: 2.5px solid var(--kb-ink); border-radius: 20px;
    padding: 12px 12px 20px; position: relative; display: flex; flex-direction: column; align-items: center;
}
#seasons .seasons-baby-card:nth-child(even) { margin-top: 32px; transform: rotate(2deg); }
#seasons .seasons-baby-card:nth-child(odd) { transform: rotate(-2deg); }
#seasons .seasons-baby-card:active { transform: scale(0.92) rotate(0deg); }
/* 顶部胶带 */
#seasons .seasons-baby-card::before {
    content: ''; position: absolute; top: -10px; left: 50%;
    transform: translateX(-50%) rotate(-3deg); width: 40px; height: 16px;
    background: var(--kb-line); border: 1.5px solid var(--kb-ink); opacity: 0.9;
}
/* 新建框 */
#seasons .seasons-baby-card.add-card { border: 2.5px dashed var(--kb-sub); background: transparent; justify-content: center; min-height: 190px; }
#seasons .seasons-baby-card.add-card::before { display: none; }
#seasons .add-card .wall-ava { background: transparent; border: 2.5px dashed var(--kb-sub); display: flex; align-items: center; justify-content: center; font-size: 48px; color: var(--kb-sub); font-family: var(--f-sans); font-weight: 300; }
#seasons .add-card .wall-name { color: var(--kb-sub); }

#seasons .wall-ava { width: 100%; aspect-ratio: 1/1; border: 2.5px solid var(--kb-ink); border-radius: 12px; overflow: hidden; margin-bottom: 12px; background: var(--kb-bg); }
#seasons .wall-ava img { width: 100%; height: 100%; object-fit: cover; filter: sepia(0.1) contrast(0.95); }
#seasons .wall-name { font-family: var(--f-title); font-size: 20px; color: var(--kb-ink); width: 100%; text-align: center; }
#seasons .wall-tag { font-family: var(--f-en); font-size: 10px; font-weight: 900; text-transform: uppercase; color: var(--kb-sub); margin-top: 4px; text-align: center; }

/* ==================== 主体（进孩子后，照原型） ==================== */
#seasons .seasons-main { flex: 1; width: 100%; display: flex; flex-direction: column; position: relative; overflow: hidden; }

/* 内页顶栏：退出 + 孩子名 + 删除 */
#seasons .main-head { padding: calc(20px + max(env(safe-area-inset-top, 0px), var(--safe-top, 0px))) 24px 20px; display: flex; align-items: center; justify-content: space-between; border-bottom: 3px solid var(--kb-ink); background: var(--kb-card); flex-shrink: 0; }
#seasons .back-link { font-family: var(--f-title); font-size: 18px; color: var(--kb-sub); background: none; border: none; display: flex; align-items: center; gap: 6px; }
#seasons .back-link:active { color: var(--kb-ink); transform: scale(0.93); }
#seasons .head-owner { font-family: var(--f-title); font-size: 24px; color: var(--kb-ink); flex: 1; text-align: center; }
#seasons .head-del { background: none; border: none; font-family: var(--f-en); font-size: 12px; font-weight: 900; color: var(--kb-pink); text-transform: uppercase; }

#seasons .seasons-tabbody { flex: 1; overflow-y: auto; padding-bottom: 120px; }
#seasons .v-wrap { padding: 32px 24px; }
#seasons .v-caption { font-family: var(--f-en); font-size: 24px; font-weight: 900; margin-bottom: 32px; letter-spacing: 1px; color: var(--kb-ink); }

/* 底部药丸 Tab Bar */
#seasons .seasons-tabbar {
    position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%);
    width: 85%; height: 64px; background: var(--kb-card); border: 3px solid var(--kb-ink);
    border-radius: 100px; display: flex; justify-content: space-evenly; align-items: center; z-index: 10;
}
#seasons .seasons-tabbar button { background: none; border: none; font-family: var(--f-title); font-size: 16px; color: var(--kb-sub); }
#seasons .seasons-tabbar button.active { color: var(--kb-ink); font-size: 18px; }
/* ⌨️ 键盘弹起时隐藏底部 tabbar，避免被压缩的视口顶到屏幕中间（JS focusin/focusout 切换） */
#seasons .seasons-tabbar.kb-hidden { display: none; }

/* ==================== Tab 1 · 档案 ==================== */
#seasons .f-box { display: flex; flex-direction: column; align-items: center; margin-bottom: 32px; }
#seasons #seasons-face-preview { width: 140px; height: 140px; border-radius: 50px; background: var(--kb-card); border: 2.5px solid var(--kb-ink); position: relative; padding: 6px; margin-bottom: 16px; display: flex; align-items: center; justify-content: center; overflow: hidden; }
#seasons #seasons-face-preview img { width: 100%; height: 100%; object-fit: cover; border-radius: 42px; }
#seasons #seasons-face-preview .face-ph { font-family: var(--f-title); font-size: 15px; color: var(--kb-sub); }
#seasons .btn-l { background: var(--kb-bg); border: 2px solid var(--kb-ink); color: var(--kb-ink); padding: 8px 24px; border-radius: 50px; font-family: var(--f-en); font-size: 11px; font-weight: 900; text-transform: uppercase; }

#seasons .record-form { background: var(--kb-card); border: 2.5px solid var(--kb-ink); border-radius: 36px; padding: 12px 24px; }
#seasons .seasons-field { display: flex; align-items: center; justify-content: space-between; border-bottom: 2px dashed var(--kb-line); padding: 16px 0; gap: 12px; }
#seasons .seasons-field:last-child { border-bottom: none; }
#seasons .seasons-field label { font-family: var(--f-title); font-size: 16px; width: 80px; flex-shrink: 0; color: var(--kb-ink); }
#seasons .seasons-field input,
#seasons .seasons-field select,
#seasons .seasons-field textarea { text-align: right; background: none; border: none; font-size: 16px; font-weight: 700; color: var(--kb-ink); width: 100%; font-family: var(--f-sans); resize: none; }
/* 干掉 select 原生下拉外观（灰方块/系统箭头），换岁时记小箭头 */
#seasons .seasons-field select {
    -webkit-appearance: none; -moz-appearance: none; appearance: none;
    cursor: pointer; padding-right: 20px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%234a3f35' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right center; background-size: 10px 6px;
}
#seasons .seasons-field select::-ms-expand { display: none; }
#seasons .seasons-field select option { color: #4a3f35; background: var(--kb-card); font-weight: 700; }
/* 夜间：箭头与 option 字色翻成浅色 */
body.dark-mode #seasons .seasons-field select,
body.night #seasons .seasons-field select,
#seasons.seasons-page.dark .seasons-field select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23F0EBE1' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
body.dark-mode #seasons .seasons-field select option,
body.night #seasons .seasons-field select option,
#seasons.seasons-page.dark .seasons-field select option { color: #F0EBE1; background: #3D3631; }
#seasons .seasons-field .field-val { font-size: 16px; font-weight: 700; color: var(--kb-ink); }
#seasons .seasons-field.field-block { flex-direction: column; align-items: stretch; gap: 8px; }
#seasons .seasons-field.field-block label { width: auto; }
#seasons .seasons-field.field-block textarea { text-align: left; }

/* ===== 自定义下拉（替代原生 select，展开列表也走岁时记风格）===== */
#seasons .seasons-field .ss-select { position: relative; min-width: 120px; max-width: 65%; }
#seasons .ss-select-head {
    display: flex; align-items: center; justify-content: flex-end; gap: 6px;
    width: 100%; background: none; border: none; padding: 0;
    font-family: var(--f-sans); font-size: 16px; font-weight: 700; color: var(--kb-ink); cursor: pointer;
}
#seasons .ss-select-cur { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#seasons .ss-select-arrow { flex-shrink: 0; font-size: 14px; color: var(--kb-sub); transition: transform 0.25s; line-height: 1; }
#seasons .ss-select.open .ss-select-arrow { transform: rotate(180deg); }
/* 展开列表：手账卡片风，墨色描边、虚线分隔，无毛玻璃无阴影 */
#seasons .ss-select-list {
    position: absolute; top: calc(100% + 8px); right: 0; z-index: 30;
    min-width: 160px; max-width: 240px; max-height: 240px; overflow-y: auto;
    background: var(--kb-card); border: 2.5px solid var(--kb-ink); border-radius: 16px;
    padding: 6px; display: none; scrollbar-width: none;
}
#seasons .ss-select-list::-webkit-scrollbar { display: none; }
#seasons .ss-select.open .ss-select-list { display: block; }
#seasons .ss-select-opt {
    font-family: var(--f-sans); font-size: 15px; font-weight: 700; color: var(--kb-ink);
    padding: 10px 12px; border-radius: 10px; cursor: pointer; text-align: right;
    border-bottom: 1.5px dashed var(--kb-line); white-space: nowrap;
}
#seasons .ss-select-opt:last-child { border-bottom: none; }
#seasons .ss-select-opt:active { transform: scale(0.97); }
#seasons .ss-select-opt.on { background: var(--kb-pink); color: var(--kb-ink); }

/* 开关（switch + slider） */
#seasons .switch { position: relative; width: 44px; height: 24px; border: 2px solid var(--kb-ink); border-radius: 20px; flex-shrink: 0; }
#seasons .switch input { position: absolute; opacity: 0; width: 0; height: 0; }
#seasons .slider { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: var(--kb-bg); border-radius: 20px; transition: .3s; cursor: pointer; }
#seasons .slider:before { position: absolute; content: ""; height: 16px; width: 16px; left: 2px; bottom: 2px; background: var(--kb-sub); border-radius: 50%; transition: .3s; }
#seasons .switch input:checked + .slider { background: var(--kb-ink); }
#seasons .switch input:checked + .slider:before { transform: translateX(20px); background: var(--kb-card); }

#seasons .btn-save-profile { width: 100%; background: var(--kb-bg); border: 3px solid var(--kb-ink); border-radius: 20px; padding: 16px; margin-top: 32px; font-family: var(--f-title); font-size: 20px; color: var(--kb-ink); }

/* ==================== Tab 2 · 晨选 OOTD ==================== */
#seasons .ootd-intro { font-family: var(--f-en); font-size: 14px; font-weight: 800; color: var(--kb-sub); margin-bottom: 24px; display: block; }
#seasons .ootd-deck { display: flex; overflow-x: auto; gap: 20px; scrollbar-width: none; padding-right: 24px; }
#seasons .ootd-deck::-webkit-scrollbar { display: none; }
#seasons .seasons-ootd-card { flex: 0 0 200px; height: 280px; background: var(--kb-card); border: 3px solid var(--kb-ink); border-radius: 36px; display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative; transition: background 0.3s, transform 0.2s; }
#seasons .seasons-ootd-card.is-picked { background: var(--kb-ink); border-color: var(--kb-ink); }
#seasons .seasons-ootd-icon { font-size: 56px; margin-bottom: 24px; filter: grayscale(1); opacity: 0.8; }
#seasons .seasons-ootd-card.is-picked .seasons-ootd-icon { opacity: 1; filter: grayscale(0) brightness(200%); }
#seasons .seasons-ootd-text { font-size: 15px; font-weight: 900; color: var(--kb-ink); text-align: center; line-height: 1.6; }
#seasons .seasons-ootd-card.is-picked .seasons-ootd-text { color: var(--kb-card); }
#seasons .seasons-ootd-card.is-dissolving { opacity: 0; transform: scale(1.1); filter: blur(8px); transition: 0.45s ease; }
#seasons .btn-confirm-ootd { margin-top: 48px; display: block; width: 100%; background: var(--kb-ink); color: var(--kb-card); padding: 18px; border-radius: 24px; font-family: var(--f-en); font-size: 15px; font-weight: 900; opacity: 0; pointer-events: none; border: none; transition: opacity 0.3s; }
#seasons .btn-confirm-ootd.show { opacity: 1; pointer-events: auto; }
/* 已选 / 非时段空态 */
#seasons .ootd-done, #seasons .ootd-closed { padding: 40px 4px; text-align: center; }
#seasons .ootd-done-label, #seasons .ootd-closed p:first-child { font-family: var(--f-title); font-size: 22px; color: var(--kb-ink); }
#seasons .ootd-done-text { font-family: var(--f-hand); font-size: 26px; color: var(--kb-ink); margin: 18px 0; line-height: 1.4; }
#seasons .ootd-done-hint, #seasons .ootd-closed-hint { font-family: var(--f-sans); font-size: 13px; font-weight: 700; color: var(--kb-sub); margin-top: 10px; }

/* ==================== Tab 3 · 光影 Film ==================== */
#seasons .film-flow { display: flex; flex-direction: column; gap: 28px; }
#seasons .film-journal { background: var(--kb-card); border: 2.5px solid var(--kb-ink); border-radius: 32px; padding: 12px; position: relative; -webkit-user-select: none; user-select: none; }
#seasons .film-journal.is-cover { border-color: var(--kb-pink); border-width: 3.5px; }
#seasons .img-viewport { width: 100%; height: 380px; border-radius: 20px; overflow: hidden; border: 2px solid var(--kb-ink); position: relative; background: var(--kb-bg); }
#seasons .img-viewport img { width: 100%; height: 100%; object-fit: cover; -webkit-user-drag: none; }
#seasons .film-img-ph { width: 100%; height: 100%; background: var(--kb-line); }
/* 无图兜底卡：贴纸居中拼贴 + 右下天气角标（韩式 ins 留白） */
#seasons .film-textonly { width: 100%; height: 100%; position: relative; display: flex; align-items: center; justify-content: center; background: var(--kb-bg); }
#seasons .film-text-sticker { width: 46%; max-width: 160px; opacity: 0.92; -webkit-user-drag: none; }
#seasons .film-text-weather { position: absolute; bottom: 12px; right: 14px; font-family: var(--f-en); font-size: 12px; font-weight: 900; color: var(--kb-sub); }
#seasons .film-journal.is-textonly .img-viewport { border-style: dashed; }
#seasons .film-cover-badge { position: absolute; top: 10px; left: 10px; background: var(--kb-pink); color: var(--kb-ink); font-family: var(--f-title); font-size: 12px; padding: 3px 12px; border-radius: 100px; border: 2px solid var(--kb-ink); }
#seasons .film-meta { display: flex; justify-content: space-between; font-family: var(--f-en); font-size: 11px; font-weight: 900; color: var(--kb-sub); margin: 16px 6px 12px; }
#seasons .film-txt { font-family: var(--f-hand); font-size: 24px; padding: 0 6px 12px; line-height: 1.3; color: var(--kb-ink); }
/* 光影显性操作按钮：设封面 / 保存 / 删除（白底 ink 描边 + 快乐体，扁平无阴影，与岁时记画风一致） */
#seasons .film-actions { display: flex; gap: 8px; padding: 4px 6px 8px; border-top: 2px dashed var(--kb-line); margin-top: 4px; padding-top: 12px; }
#seasons .film-act-btn { flex: 1; background: var(--kb-bg); border: 2px solid var(--kb-ink); color: var(--kb-ink); padding: 9px 8px; border-radius: 14px; font-family: var(--f-title); font-size: 14px; cursor: pointer; }
#seasons .film-act-btn:active { transform: scale(0.94); }
#seasons .film-act-btn.is-danger { color: var(--kb-pink); border-color: var(--kb-pink); }
#seasons .film-journal.is-cover .film-act-btn[data-act="set-cover"] { background: var(--kb-pink); border-color: var(--kb-ink); }
/* 冲洗胶卷占位 */
#seasons .film-developing { background: var(--kb-card); border: 2.5px dashed var(--kb-ink); border-radius: 32px; padding: 60px 20px; display: flex; flex-direction: column; align-items: center; gap: 22px; }
#seasons .film-paper { width: 120px; height: 150px; border: 2.5px solid var(--kb-ink); border-radius: 12px; background: var(--kb-bg); }
#seasons .film-developing-text { font-family: var(--f-hand); font-size: 20px; color: var(--kb-sub); animation: seasons-breathe 1.8s ease-in-out infinite; }
@keyframes seasons-breathe { 0%,100% { opacity: 0.45; } 50% { opacity: 1; } }
#seasons .film-empty { padding: 40px 4px; text-align: center; }
#seasons .film-empty p:first-child { font-family: var(--f-title); font-size: 22px; color: var(--kb-ink); }
#seasons .film-empty-hint { font-family: var(--f-sans); font-size: 13px; font-weight: 700; color: var(--kb-sub); margin-top: 12px; line-height: 1.7; }

/* 光影生成失败 · 显性重试卡（沿用米色奶油画风：卡片 + 虚线描边 + ink 实心按钮） */
#seasons .film-retry-card { background: var(--kb-card); border: 2.5px dashed var(--kb-pink); border-radius: 32px; padding: 40px 24px; display: flex; flex-direction: column; align-items: center; gap: 10px; text-align: center; }
#seasons .film-retry-title { font-family: var(--f-title); font-size: 20px; color: var(--kb-ink); }
#seasons .film-retry-hint { font-family: var(--f-sans); font-size: 13px; font-weight: 700; color: var(--kb-sub); }
#seasons .film-retry-btn { margin-top: 14px; background: var(--kb-ink); border: none; color: var(--kb-card); padding: 12px 36px; border-radius: 50px; font-family: var(--f-title); font-size: 17px; cursor: pointer; }
#seasons .film-retry-btn:active { transform: scale(0.94); }

/* 近期衣橱 Wardrobe History（沿用米色奶油画风：白卡 + ink 描边 + 虚线分隔，扁平无阴影） */
#seasons .history-card { display: flex; align-items: center; justify-content: space-between; gap: 12px; background: var(--kb-card); border: 2.5px solid var(--kb-ink); border-radius: 20px; padding: 16px 20px; margin-bottom: 14px; }
#seasons .history-card.is-empty { border-style: dashed; border-color: var(--kb-line); background: var(--kb-bg); }
#seasons .history-film-icon { flex-shrink: 0; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; font-size: 22px; background: var(--kb-bg); border: 2px solid var(--kb-ink); border-radius: 14px; cursor: pointer; }
#seasons .history-film-icon:active { transform: scale(0.92); }

/* ==================== Tab 4 · 口袋 Pocket ==================== */
#seasons .p-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
#seasons .seasons-pocket-cell { aspect-ratio: 1/1; background: var(--kb-card); border: 2.5px solid var(--kb-ink); border-radius: 30px; position: relative; padding: 12px; display: flex; align-items: center; justify-content: center; }
#seasons .seasons-pocket-cell .pk-img { width: 100%; height: 100%; object-fit: cover; border-radius: 16px; border: 1.5px solid var(--kb-line); filter: contrast(0.9) sepia(0.05); }
#seasons .seasons-pocket-cell.is-loading { border-style: dashed; }
#seasons .pk-hint { font-family: var(--f-hand); font-size: 13px; color: var(--kb-sub); text-align: center; animation: seasons-breathe 1.8s ease-in-out infinite; }
#seasons .seasons-flower { position: absolute; bottom: -6px; right: -6px; width: 50px; opacity: 0; transform: scale(0); transition: 0.4s cubic-bezier(0.34, 1.56, 0.64, 1); pointer-events: none; }
#seasons .seasons-pocket-cell.is-flowered .seasons-flower { opacity: 1; transform: scale(1) rotate(-10deg); }
#seasons .pocket-empty { padding: 40px 4px; text-align: center; }
#seasons .pocket-empty p:first-child { font-family: var(--f-title); font-size: 22px; color: var(--kb-ink); }
#seasons .pocket-empty-hint { font-family: var(--f-sans); font-size: 13px; font-weight: 700; color: var(--kb-sub); margin-top: 12px; line-height: 1.7; }

/* ==================== 盖章模态框 ==================== */
#seasons .mk-overlay { position: absolute; inset: 0; background: var(--kb-mask); z-index: 200; display: none; align-items: center; justify-content: center; padding: 24px; }
#seasons .mk-modal { width: 100%; background: var(--kb-card); border: 3px solid var(--kb-ink); border-radius: 40px; padding: 24px; position: relative; display: flex; flex-direction: column; align-items: center; }
#seasons .mk-close { position: absolute; top: 16px; right: 24px; font-size: 32px; font-family: var(--f-title); font-weight: bold; color: var(--kb-sub); background: none; border: none; }
#seasons .mk-imgbox { width: 220px; height: 220px; border-radius: 30px; border: 2.5px solid var(--kb-ink); margin-bottom: 24px; position: relative; overflow: visible; padding: 6px; background: var(--kb-bg); }
#seasons .mk-imgbox img.m-img { width: 100%; height: 100%; object-fit: cover; border-radius: 20px; }
#seasons .m-stamp-sticker { position: absolute; bottom: -20px; right: -24px; width: 100px; opacity: 0; transform: scale(2) rotate(35deg); transition: 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); }
#seasons .mk-modal.is-stamped .m-stamp-sticker { opacity: 1; transform: scale(1) rotate(-5deg); }
#seasons .mk-desc { font-family: var(--f-hand); font-size: 26px; color: var(--kb-ink); margin-bottom: 40px; text-align: center; border-top: 2px dashed var(--kb-line); padding-top: 16px; }
/* 认字阶段：孩子歪歪扭扭手写的拼音宝贝名（快乐体自带稚嫩顿挫感 + ruby 拼音标注） */
#seasons .mk-desc.is-pinyin { font-family: var(--f-title); font-size: 30px; line-height: 2.2; letter-spacing: 2px; }
#seasons .mk-desc.is-pinyin ruby { ruby-align: center; ruby-position: over; margin: 0 2px; }
#seasons .mk-desc.is-pinyin rt { font-family: var(--f-en, 'Nunito'), sans-serif; font-size: 12px; font-weight: 800; color: var(--kb-sub); letter-spacing: 0; }
#seasons .mk-btn { background: var(--kb-bg); border: 3px solid var(--kb-ink); color: var(--kb-ink); padding: 16px; width: 100%; border-radius: 50px; font-family: var(--f-title); font-size: 20px; }
#seasons .mk-modal.is-stamped .mk-btn { display: none; }

/* 锁脸多来源弹窗（append 到 body，不在 #seasons 内，故不加 #seasons 前缀） */
#seasons-lockface-modal .seasons-modal-btn { background: #FCF9F2; border: 2.5px solid #554A42; border-radius: 16px; padding: 13px; font-family: 'ZCOOL KuaiLe', cursive; font-size: 15px; color: #554A42; cursor: pointer; }
#seasons-lockface-modal .seasons-modal-cancel { border-color: #A89D93; color: #A89D93; }
#seasons-lockface-modal .seasons-modal-title { font-family: 'ZCOOL KuaiLe', cursive; color: #554A42; }
body.dark-mode #seasons-lockface-modal .seasons-modal-body,
body.night #seasons-lockface-modal .seasons-modal-body { background: #3D3631 !important; }
body.dark-mode #seasons-lockface-modal .seasons-modal-btn,
body.night #seasons-lockface-modal .seasons-modal-btn { background: #2C2724; border-color: #F0EBE1; color: #F0EBE1; }
body.dark-mode #seasons-lockface-modal .seasons-modal-title,
body.night #seasons-lockface-modal .seasons-modal-title { color: #F0EBE1; }

/* ============================================================
 * 🔧 字体兜底：theme.js 的全局字体规则因 :not(#id …) 把优先级抬到了 3 个 ID 权重，
 *   会压过普通 #seasons .xxx（1 ID），导致顶部孩子名、穿搭描述等被刷成系统字体。
 *   这里用 !important 按「字体角色」统一压回岁时记三套字体，不动 theme.js（不波及别模块）。
 * ============================================================ */
/* 标题手账体（ZCOOL KuaiLe） */
#seasons .p-title,
#seasons .wall-name,
#seasons .back-link,
#seasons .head-owner,
#seasons .seasons-tabbar button,
#seasons #seasons-face-preview .face-ph,
#seasons .seasons-field label,
#seasons .btn-save-profile,
#seasons .ootd-done-label,
#seasons .ootd-closed p:first-child,
#seasons .film-empty p:first-child,
#seasons .pocket-empty p:first-child,
#seasons .film-cover-badge,
#seasons .mk-close,
#seasons .mk-btn { font-family: var(--f-title) !important; }
/* 手写体（Pacifico） */
#seasons .ootd-done-text,
#seasons .film-txt,
#seasons .film-developing-text,
#seasons .pk-hint,
#seasons .mk-desc { font-family: var(--f-hand) !important; }
/* 英文标签体（Nunito） */
#seasons .wall-tag,
#seasons .head-del,
#seasons .v-caption,
#seasons .btn-l,
#seasons .ootd-intro,
#seasons .btn-confirm-ootd,
#seasons .film-text-weather,
#seasons .film-meta { font-family: var(--f-en) !important; }

/* ============================================================
 * 🪝 戳一戳交互：果冻吊牌压扁 + AI 小纸条荡下来 + 啪贴贴纸
 *   （取代旧版只弹灰 toast 的做法，治"无聊"）
 * ============================================================ */
/* 完成态吊牌：戳一下压扁回弹 */
#seasons .ootd-done-card { transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1); will-change: transform; }
#seasons .ootd-done-card.is-squish { transform: scale(0.9) translateY(8px) rotate(-3deg) !important; }

/* "戳我"浮动提示 */
#seasons .poke-hint {
    position: absolute; right: -12px; top: -14px;
    background: var(--kb-card); border: 2.5px solid var(--kb-ink); color: var(--kb-ink);
    font-family: var(--f-title); font-size: 13px; padding: 5px 11px; border-radius: 50px;
    z-index: 6; pointer-events: none; animation: seasons-poke-float 2s infinite ease-in-out;
}
@keyframes seasons-poke-float {
    0%, 100% { transform: translateY(0) rotate(5deg); }
    50% { transform: translateY(-7px) rotate(0deg); }
}

/* AI 文字小纸条：从吊牌上方晃悠悠荡下来 */
#seasons .poke-note {
    position: absolute; top: calc(100% - 8px); left: 50%;
    width: 220px; min-height: 84px; box-sizing: border-box;
    background: var(--kb-card); border: 2.5px solid var(--kb-ink);
    padding: 22px 18px 18px; z-index: 8;
    border-radius: 4px 4px 14px 22px; transform-origin: top center;
    opacity: 0; pointer-events: none;
}
/* 纸条顶部那截胶带 */
#seasons .poke-note::before {
    content: ''; position: absolute; top: -11px; left: 50%;
    transform: translateX(-50%) rotate(-2deg);
    width: 46px; height: 22px; background: var(--kb-line); border: 2px solid var(--kb-ink);
}
#seasons .poke-note.is-show { animation: seasons-note-drop 0.75s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards; opacity: 1; }
@keyframes seasons-note-drop {
    0%   { transform: translate(-50%, -36px) rotate(-14deg) scale(0.55); opacity: 0; }
    55%  { transform: translate(-50%, 6px) rotate(5deg) scale(1.04); opacity: 1; }
    78%  { transform: translate(-50%, 0) rotate(-2deg) scale(1); }
    100% { transform: translate(-50%, 0) rotate(2deg) scale(1); }
}
#seasons .poke-note-loading {
    font-family: var(--f-title); font-size: 15px; color: var(--kb-sub);
    text-align: center; animation: seasons-pulse 1s infinite;
}
@keyframes seasons-pulse { 0%, 100% { opacity: 0.5; } 50% { opacity: 1; } }
#seasons .poke-note-text {
    font-family: var(--f-sans); font-size: 16px; font-weight: 700;
    color: var(--kb-ink); text-align: center; line-height: 1.5;
}
/* 纸条上啪一下贴的贴纸 */
#seasons .poke-note-sticker {
    position: absolute; right: -18px; bottom: -16px; width: 56px; z-index: 9;
    pointer-events: none; opacity: 0;
    transform: scale(2.6) rotate(40deg);
    transition: all 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
#seasons .poke-note-sticker.is-slapped { opacity: 1; transform: scale(1) rotate(var(--poke-rot, -8deg)); }
