/* =============================================================
   中国节日 · 全能倒计时 —— 插件样式
   版本 1.0.7

   本文件由单文件应用 1.0.1 版样式转换而来，全部选择器已做两件事：
     ① 作用域限定到 #Lin_countdown（只影响插件容器，不碰博客主题）
     ② 类名统一加 Lin_ 前缀（与主题类名彻底解耦）

   结构：
     【第一部分】兼容层 —— 顶部让位 / 弹层层级基准 / 主题裸元素穿透中和
     【第二部分】组件与主题样式（自 1.0.1 转换）
     【第三部分】页面标题居中修正
   ============================================================= */
/* ===== 第一部分：兼容层（勿随意改动，详见各段注释） ===== */
    /* ========== 顶部让位（默认值，后台可覆盖）==========
       顶栏 position:fixed 不占文档流，内容需自行让出顶部空间。

       下面给出的是「兜底默认值」，实际生效值由插件后台的
       「顶部间距」设置项决定 —— countdown.php 的 countdown_index_head()
       会输出一段内联 <style> 覆盖这里的值（内联样式在样式表之后加载，因此必定生效）。

       覆盖时同时处理两类主题的主容器：
         .zp-main        → zpcube 主题
         .blog-container → emlog 默认主题
       以及都没有时的兜底（.Lin_cd-shell 自身 padding-top）。

       关键：必须同时把主题自带的 margin-top 归零。
       emlog 默认主题的原始规则是
         .blog-container { margin-top: calc(71.63px + 24px) }
       也就是说主题已经内置了一套让位量（桌面 24 / 移动 15 的间距）。
       如果只在它上面加 padding-top，实际净空隙 = 主题值 + 插件值，
       实测会恒定多出 24px（移动端多 15px）。

       所以语义定为「净空隙」并由插件全权接管：
         margin-top: 0                      ← 清掉主题的让位量
         padding-top: 顶栏高 + 用户设定值    ← 由插件统一给出

       兜底默认值取「顶栏高 + 24」：
         桌面 71.63 + 24 = 95.63px
         移动 74    + 24 = 98px
       默认间距两端都用 24，与后台默认值一致。

       移动端额外补 margin-top: 2px —— 主题在 max-width:991px 中有
         body { margin: -2px; padding-left: 2px; }
       会把所有内容整体上移 2px，不抵消则净空隙实测从 24 变 22。 */
    body:has(.Lin_cd-shell) .zp-main,
    body:has(.Lin_cd-shell) .blog-container {
      margin-top: 0 !important;
      padding-top: 95.63px; /* 顶栏 71.63px + 默认间距 24px */
    }
    @media all and (max-width: 991px) {
      body:has(.Lin_cd-shell) .zp-main,
      body:has(.Lin_cd-shell) .blog-container {
        margin-top: 2px !important; /* 抵消主题 body{margin:-2px} */
        padding-top: 98px; /* 移动端顶栏 74px + 默认间距 24px */
      }
    }
    body:not(:has(.zp-main)):not(:has(.blog-container)):has(.Lin_cd-shell) .Lin_cd-shell {
      padding-top: 95.63px;
      padding-bottom: 24px;
    }
    @media all and (max-width: 991px) {
      body:not(:has(.zp-main)):not(:has(.blog-container)):has(.Lin_cd-shell) .Lin_cd-shell {
        padding-top: 98px;
        padding-bottom: 24px;
      }
    }
    .Lin_cd-shell { width: 100%; flex: 1 0 auto; }
    body:has(.Lin_cd-shell) .zp-main,
    body:has(.Lin_cd-shell) .blog-container {
      background: transparent;
      box-shadow: none;
      border-radius: 0;
    }
    #Lin_countdown #app { padding-bottom: 24px; }
    /* 弹层层级基准统一在**样式表末尾**定义（见文末「弹层层级基准」段）。
       原先在这里写过一份（modal 1200 / theme-picker 1210 / settings 1220），
       但组件段里又各自写了一次 z-index（1000 / 1100 / 1100），
       两者特异性相同、组件段位置更靠后 → 这里被静默覆盖，等于死代码。
       后果：节日详情弹窗实际 z-index 只有 1000，低于博客固定导航的 1020，
       弹窗左上角被导航栏挡住（实测 elementFromPoint 命中 NAV.blog-header）。
       现在全站只在文末定义一处，避免同一个值出现在多个地方。 */
    #Lin_countdown button,
    #Lin_countdown input,
    #Lin_countdown select,
    #Lin_countdown textarea { font-family: inherit; font-size: inherit; }
    #Lin_countdown button {
      margin: 0;
      padding: 0;
      border: 0;
      background: none;
      color: inherit;
      font-weight: inherit;
      line-height: 1;
      box-shadow: none;
      appearance: none;
      -webkit-appearance: none;
      transform: none;
    }
    #Lin_countdown button:hover,
    #Lin_countdown button:active {
      filter: none;
      transform: none;
      box-shadow: none;
    }
    #Lin_countdown .Lin_icon-btn:hover { transform: scale(1.08); }
    #Lin_countdown .Lin_tab-btn:hover { transform: scale(0.97); }
    #Lin_countdown .Lin_filter-btn:hover { transform: scale(0.97); }
    #Lin_countdown .Lin_calendar-nav:hover { transform: none; }
    #Lin_countdown .Lin_checkin-btn:hover { transform: scale(0.97); opacity: 0.9; }
    #Lin_countdown .Lin_action-btn:hover { transform: scale(0.97); }
    #Lin_countdown .Lin_add-custom-form button:hover { transform: scale(0.97); opacity: 0.9; }
    #Lin_countdown input,
    #Lin_countdown textarea,
    #Lin_countdown select {
      margin: 0;
      padding: 0;
      border: 0;
      background: none;
      color: inherit;
      line-height: inherit;
      box-shadow: none;
      appearance: none;
      -webkit-appearance: none;
    }
    #Lin_countdown hr,
    #Lin_countdown blockquote { margin: 0; padding: 0; border: 0; font-style: normal; }
    #Lin_countdown {
      font-family: system-ui, -apple-system, 'Segoe UI', Roboto, 'Noto Sans', 'PingFang SC', 'Microsoft YaHei', sans-serif;
      font-size: 16px;
      line-height: 1.5;
      color: #3e2e1f;
      transition: background 0.4s ease, color 0.4s ease;
      padding: clamp(0.5rem, 1.6vw, 1rem);
      border-radius: 18px;
    }
    #Lin_countdown,
    #Lin_countdown *,
    #Lin_countdown *::before,
    #Lin_countdown *::after {
      box-sizing: border-box;
      -webkit-tap-highlight-color: transparent;
    }
    #Lin_countdown h1, #Lin_countdown h2, #Lin_countdown h3,
    #Lin_countdown h4, #Lin_countdown h5, #Lin_countdown h6,
    #Lin_countdown p, #Lin_countdown ul, #Lin_countdown ol { margin: 0; padding: 0; }
    #Lin_countdown ul, #Lin_countdown ol { list-style: none; }

/* ===== 第二部分：组件与主题样式 ===== */
#Lin_countdown .Lin_none {
  display: none;
}
#Lin_countdown.Lin_font-large {
  font-size: 20px;
}
#Lin_countdown.Lin_font-large .Lin_festival-name {
  font-size: clamp(1.1rem, 2.8vw, 1.5rem);
}
#Lin_countdown.Lin_font-large .Lin_days-number {
  font-size: clamp(1.8rem, 4.4vw, 2.6rem);
}
#Lin_countdown.Lin_font-large .Lin_solar-day-text {
  font-size: clamp(0.75rem, 1.8vw, 1rem);
}
#Lin_countdown.Lin_font-large .Lin_lunar-day-text {
  font-size: clamp(0.58rem, 1.4vw, 0.72rem);
}
#Lin_countdown.Lin_theme-classic {
  background: #f5f3ef; background-image: radial-gradient(circle at 10% 20%, rgba(255, 245, 235, 0.5) 0%, #f0ebe4 90%); color: #3e2e1f;
}
#Lin_countdown.Lin_theme-classic .Lin_card {
  background: rgba(255, 255, 255, 0.88); border-color: rgba(255, 250, 240, 0.7);
}
#Lin_countdown.Lin_theme-classic .Lin_festival-card::before {
  background: linear-gradient(90deg, #d4a373, #c28b5e, #b07347);
}
#Lin_countdown.Lin_theme-classic .Lin_next-festival-card {
  background: linear-gradient(135deg, #a67c52, #8b5e3c);
}
#Lin_countdown.Lin_theme-classic .Lin_tab-btn.Lin_active, #Lin_countdown.Lin_theme-classic .Lin_filter-btn.Lin_active {
  background: #a67c52;
}
#Lin_countdown.Lin_theme-classic .Lin_days-number {
  color: #8b5e3c;
}
#Lin_countdown.Lin_theme-classic .Lin_unit-value {
  color: #4a3424;
}
#Lin_countdown.Lin_theme-classic .Lin_calendar-day.Lin_today {
  background: #a67c52;
}
#Lin_countdown.Lin_theme-classic .Lin_icon-btn {
  color: #6b4f37;
}
#Lin_countdown.Lin_theme-classic .Lin_calendar-day.Lin_has-festival .Lin_lunar-day-text {
  color: #b07347;
}
#Lin_countdown.Lin_theme-classic .Lin_calendar-day.Lin_has-term .Lin_lunar-day-text.Lin_term-day-text {
  color: #5a8a5a;
}
#Lin_countdown.Lin_theme-classic .Lin_festival-marker {
  background: #d4a373;
}
#Lin_countdown.Lin_theme-classic .Lin_search-input {
  background: #fff; border-color: #e0d0c0;
}
#Lin_countdown.Lin_theme-classic .Lin_term-card::before {
  background: linear-gradient(90deg, #7c9e7c, #5a8a5a);
}
#Lin_countdown.Lin_theme-classic .Lin_term-card .Lin_days-number {
  color: #5a8a5a;
}
/* 注：classic 的 .Lin_checkin-btn 底色已移至「打卡按钮」段（基础规则之后），
   6 套主题的覆盖集中定义在一处 —— 原先分散在 classic / dark 两段，
   导致其余 4 套主题被漏掉（按钮透明、白字不可见）。 */
/* 【补漏】4 套主题（rainbow/sakura/ocean/forest）都给了 .Lin_action-btn 的次要按钮
   底色 + .Lin_primary 主色变体，classic 与 dark 缺失 → 实测这两个主题下
   数据操作区（导出/导入/导出全年日历）与弹窗动作栏按钮全是裸文字。
   按各自色板补齐，与已有主题保持同一套语义。 */
#Lin_countdown.Lin_theme-classic .Lin_action-btn {
  background: #f3e9dd; color: #8b5e3c;
}
#Lin_countdown.Lin_theme-classic .Lin_action-btn.Lin_primary {
  background: linear-gradient(135deg, #a67c52, #8b5e3c); color: #fff;
}
#Lin_countdown.Lin_theme-dark {
  background: #1a1512; background-image: radial-gradient(circle at 10% 20%, rgba(60, 45, 35, 0.5) 0%, #0f0c0a 90%); color: #e8ddd0;
}
#Lin_countdown.Lin_theme-dark .Lin_card {
  background: rgba(35, 28, 23, 0.9); border-color: rgba(120, 90, 60, 0.3);
}
#Lin_countdown.Lin_theme-dark h1 {
  color: #e8ddd0; border-bottom-color: #5a4433;
}
#Lin_countdown.Lin_theme-dark .Lin_today-badge {
  background: #3d2f24; color: #e8ddd0;
}
#Lin_countdown.Lin_theme-dark .Lin_subhead {
  color: #b8a08a;
}
#Lin_countdown.Lin_theme-dark .Lin_lunar-info {
  color: #b8a08a;
}
#Lin_countdown.Lin_theme-dark .Lin_tab-btn {
  background: #3d2f24; color: #d4c2b0;
}
#Lin_countdown.Lin_theme-dark .Lin_tab-btn.Lin_active {
  background: #a67c52; color: #1a1512;
}
#Lin_countdown.Lin_theme-dark .Lin_filter-btn {
  background: #3d2f24; color: #d4c2b0;
}
#Lin_countdown.Lin_theme-dark .Lin_filter-btn.Lin_active {
  background: #a67c52; color: #1a1512;
}
#Lin_countdown.Lin_theme-dark .Lin_festival-card {
  background: rgba(45, 36, 28, 0.9); border-color: #4a3828;
}
#Lin_countdown.Lin_theme-dark .Lin_festival-name {
  color: #f0e6d8;
}
#Lin_countdown.Lin_theme-dark .Lin_festival-lunar {
  background: #3d2f24; color: #b8a08a;
}
#Lin_countdown.Lin_theme-dark .Lin_date-text {
  background: #3d2f24; color: #d4c2b0;
}
#Lin_countdown.Lin_theme-dark .Lin_days-number {
  color: #c99b6e;
}
#Lin_countdown.Lin_theme-dark .Lin_countdown-box {
  background: #2a2019;
}
#Lin_countdown.Lin_theme-dark .Lin_unit-value {
  color: #e8ddd0;
}
#Lin_countdown.Lin_theme-dark .Lin_modal-content {
  background: #231c17; color: #e8ddd0;
}
#Lin_countdown.Lin_theme-dark .Lin_modal-lunar {
  background: #3d2f24; color: #b8a08a;
}
#Lin_countdown.Lin_theme-dark .Lin_modal-date {
  color: #b8a08a;
}
#Lin_countdown.Lin_theme-dark .Lin_empty-state {
  background: #231c17; color: #8a7560;
}
#Lin_countdown.Lin_theme-dark footer {
  color: #7a6a58;
}
#Lin_countdown.Lin_theme-dark .Lin_holiday-info {
  background: #3d2f24; color: #d4c2b0;
}
#Lin_countdown.Lin_theme-dark .Lin_custom-item {
  background: #2a2019; border-color: #4a3828;
}
#Lin_countdown.Lin_theme-dark .Lin_calendar-day {
  color: #c4b4a4;
}
#Lin_countdown.Lin_theme-dark .Lin_calendar-day.Lin_other-month {
  color: #5a4a3a;
}
#Lin_countdown.Lin_theme-dark .Lin_calendar-day.Lin_today {
  background: #a67c52; color: #1a1512;
}
#Lin_countdown.Lin_theme-dark .Lin_story-box {
  background: #2a2019;
}
#Lin_countdown.Lin_theme-dark .Lin_calendar-header {
  color: #e8ddd0;
}
#Lin_countdown.Lin_theme-dark .Lin_weekday-header {
  color: #a8907a;
}
#Lin_countdown.Lin_theme-dark .Lin_festival-marker {
  background: #a67c52;
}
#Lin_countdown.Lin_theme-dark .Lin_calendar-container {
  background: #231c17;
}
#Lin_countdown.Lin_theme-dark .Lin_lunar-day-text {
  color: #8a7560;
}
#Lin_countdown.Lin_theme-dark .Lin_calendar-day.Lin_today .Lin_lunar-day-text {
  color: #f0e6d8;
}
#Lin_countdown.Lin_theme-dark .Lin_calendar-day.Lin_has-festival .Lin_lunar-day-text {
  color: #c99b6e;
}
#Lin_countdown.Lin_theme-dark .Lin_calendar-day.Lin_has-term .Lin_lunar-day-text.Lin_term-day-text {
  color: #8fc98f;
}
#Lin_countdown.Lin_theme-dark .Lin_icon-btn {
  background: #3d2f24; color: #d4c2b0;
}
#Lin_countdown.Lin_theme-dark .Lin_festival-card::before {
  background: linear-gradient(90deg, #a67c52, #8b5e3c, #6b4a30);
}
#Lin_countdown.Lin_theme-dark .Lin_search-input {
  background: #2a2019; color: #e8ddd0; border-color: #4a3828;
}
#Lin_countdown.Lin_theme-dark .Lin_term-card {
  background: rgba(45, 36, 28, 0.9); border-color: #4a3828;
}
#Lin_countdown.Lin_theme-dark .Lin_term-card::before {
  background: linear-gradient(90deg, #5a8a5a, #3d6b3d);
}
/* 注：dark 的 .Lin_checkin-btn 底色已移至「打卡按钮」段（见 classic 段注释） */
/* 【补漏】dark 主题的 .Lin_action-btn（见 classic 段注释） */
#Lin_countdown.Lin_theme-dark .Lin_action-btn {
  background: #2a2019; color: #d4c2b0;
}
#Lin_countdown.Lin_theme-dark .Lin_action-btn.Lin_primary {
  background: #a67c52; color: #1a1512;
}
#Lin_countdown.Lin_theme-rainbow {
  background: linear-gradient(135deg, #ffd6e0 0%, #ffe5b4 25%, #d4f1c4 50%, #b3e0ff 75%, #e0c4ff 100%); background-attachment: fixed; color: #3a2e4a;
}
#Lin_countdown.Lin_theme-rainbow .Lin_card {
  background: rgba(255, 255, 255, 0.82); border: 2px solid transparent; background-clip: padding-box; position: relative; box-shadow: 0 20px 40px -10px rgba(180, 140, 220, 0.35);
}
#Lin_countdown.Lin_theme-rainbow .Lin_card::before {
  content: ''; position: absolute; inset: -2px; border-radius: inherit; background: linear-gradient(135deg, #ff9a9e, #fad0c4, #fbc2eb, #a18cd1, #84fab0, #8fd3f4, #a6c1ee); z-index: -1; background-size: 300% 300%; animation: rainbowShift 8s ease infinite;
}
@keyframes rainbowShift {
  0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; }
}
#Lin_countdown.Lin_theme-rainbow h1 {
  color: #6a3d8f; border-bottom-color: #d4b3e8;
}
#Lin_countdown.Lin_theme-rainbow .Lin_today-badge {
  background: linear-gradient(135deg, #ffd6e0, #e0c4ff); color: #4a2d6a;
}
#Lin_countdown.Lin_theme-rainbow .Lin_tab-btn {
  background: #f0e6ff; color: #6a3d8f;
}
#Lin_countdown.Lin_theme-rainbow .Lin_tab-btn.Lin_active {
  background: linear-gradient(135deg, #a18cd1, #fbc2eb); color: white;
}
#Lin_countdown.Lin_theme-rainbow .Lin_filter-btn {
  background: #f0e6ff; color: #6a3d8f;
}
#Lin_countdown.Lin_theme-rainbow .Lin_filter-btn.Lin_active {
  background: linear-gradient(135deg, #a18cd1, #fbc2eb); color: white;
}
#Lin_countdown.Lin_theme-rainbow .Lin_festival-card {
  background: rgba(255, 255, 255, 0.85); border-color: #e8d5ff;
}
#Lin_countdown.Lin_theme-rainbow .Lin_festival-card::before {
  background: linear-gradient(90deg, #ff9a9e, #fad0c4, #a18cd1, #84fab0, #8fd3f4); height: 6px; opacity: 1;
}
#Lin_countdown.Lin_theme-rainbow .Lin_festival-name {
  color: #4a2d6a;
}
#Lin_countdown.Lin_theme-rainbow .Lin_festival-lunar {
  /* 原 color:#8a5fb0 在 #f3e8ff 上实测 4.10:1（正文需 4.5:1）→ 压深一档，6.62:1 */
  background: #f3e8ff; color: #6a3d8f;
}
#Lin_countdown.Lin_theme-rainbow .Lin_date-text {
  background: #f3e8ff; color: #6a3d8f;
}
#Lin_countdown.Lin_theme-rainbow .Lin_days-number {
  /* 原为 #a18cd1，在 rainbow 的浅底上实测仅 2.90:1（大字需 3:1）→ 压深一档，5.31:1 */
  color: #7a5cae;
}
#Lin_countdown.Lin_theme-rainbow .Lin_next-festival-card {
  background: linear-gradient(135deg, #ff9a9e, #a18cd1, #84fab0); background-size: 200% 200%; animation: rainbowShift 6s ease infinite;
}
#Lin_countdown.Lin_theme-rainbow .Lin_countdown-box {
  background: #f5ecff;
}
#Lin_countdown.Lin_theme-rainbow .Lin_unit-value {
  color: #6a3d8f;
}
#Lin_countdown.Lin_theme-rainbow .Lin_icon-btn {
  background: #f0e6ff; color: #8a5fb0;
}
#Lin_countdown.Lin_theme-rainbow .Lin_calendar-container {
  background: #faf5ff;
}
#Lin_countdown.Lin_theme-rainbow .Lin_calendar-day.Lin_today {
  background: linear-gradient(135deg, #a18cd1, #fbc2eb); color: white;
}
#Lin_countdown.Lin_theme-rainbow .Lin_calendar-day.Lin_has-festival .Lin_lunar-day-text {
  color: #a18cd1; font-weight: 600;
}
#Lin_countdown.Lin_theme-rainbow .Lin_calendar-day.Lin_has-term .Lin_lunar-day-text.Lin_term-day-text {
  color: #4a9d7a;
}
#Lin_countdown.Lin_theme-rainbow .Lin_festival-marker {
  background: #a18cd1;
}
#Lin_countdown.Lin_theme-rainbow .Lin_modal-content {
  background: #fdfaff;
}
#Lin_countdown.Lin_theme-rainbow .Lin_modal-name {
  color: #4a2d6a;
}
#Lin_countdown.Lin_theme-rainbow .Lin_modal-lunar {
  background: #f3e8ff; color: #8a5fb0;
}
#Lin_countdown.Lin_theme-rainbow .Lin_holiday-info {
  background: #e8f8e8;
}
#Lin_countdown.Lin_theme-rainbow .Lin_story-box {
  background: #faf0ff;
}
#Lin_countdown.Lin_theme-rainbow .Lin_action-btn {
  background: #f0e6ff; color: #6a3d8f;
}
#Lin_countdown.Lin_theme-rainbow .Lin_action-btn.Lin_primary {
  background: linear-gradient(135deg, #a18cd1, #fbc2eb); color: white;
}
#Lin_countdown.Lin_theme-rainbow footer {
  color: #a98fc9;
}
#Lin_countdown.Lin_theme-rainbow .Lin_search-input {
  background: #faf5ff; border-color: #e8d5ff;
}
#Lin_countdown.Lin_theme-rainbow .Lin_term-card {
  background: rgba(255, 255, 255, 0.85); border-color: #e8d5ff;
}
#Lin_countdown.Lin_theme-rainbow .Lin_term-card::before {
  background: linear-gradient(90deg, #84fab0, #8fd3f4);
}
#Lin_countdown.Lin_theme-rainbow .Lin_term-card .Lin_days-number {
  color: #4a9d7a;
}
#Lin_countdown.Lin_theme-sakura {
  background: #fff0f5; background-image: radial-gradient(circle at 20% 30%, rgba(255, 200, 220, 0.6) 0%, #ffe4ec 70%); color: #6a3d4a;
}
#Lin_countdown.Lin_theme-sakura .Lin_card {
  background: rgba(255, 250, 252, 0.9); border-color: rgba(255, 200, 220, 0.6);
}
#Lin_countdown.Lin_theme-sakura h1 {
  color: #b85a7a; border-bottom-color: #f5c2d4;
}
#Lin_countdown.Lin_theme-sakura .Lin_today-badge {
  background: #fce4ec; color: #a84a6a;
}
#Lin_countdown.Lin_theme-sakura .Lin_tab-btn {
  background: #fce4ec; color: #a84a6a;
}
#Lin_countdown.Lin_theme-sakura .Lin_tab-btn.Lin_active {
  background: #e88ea8; color: white;
}
#Lin_countdown.Lin_theme-sakura .Lin_filter-btn {
  background: #fce4ec; color: #a84a6a;
}
#Lin_countdown.Lin_theme-sakura .Lin_filter-btn.Lin_active {
  background: #e88ea8; color: white;
}
#Lin_countdown.Lin_theme-sakura .Lin_festival-card {
  background: rgba(255, 248, 251, 0.92); border-color: #fce4ec;
}
#Lin_countdown.Lin_theme-sakura .Lin_festival-card::before {
  background: linear-gradient(90deg, #f8bbd0, #f48fb1, #ec407a);
}
#Lin_countdown.Lin_theme-sakura .Lin_festival-name {
  color: #6a3d4a;
}
#Lin_countdown.Lin_theme-sakura .Lin_festival-lunar {
  /* 原 color:#b85a7a 在 #fce4ec 上实测 3.65:1（正文需 4.5:1）→ 压深一档，5.27:1 */
  background: #fce4ec; color: #9c3f5e;
}
#Lin_countdown.Lin_theme-sakura .Lin_date-text {
  background: #fce4ec; color: #a84a6a;
}
#Lin_countdown.Lin_theme-sakura .Lin_days-number {
  color: #d85a7a;
}
#Lin_countdown.Lin_theme-sakura .Lin_next-festival-card {
  background: linear-gradient(135deg, #f8bbd0, #ec407a);
}
#Lin_countdown.Lin_theme-sakura .Lin_countdown-box {
  background: #fce4ec;
}
#Lin_countdown.Lin_theme-sakura .Lin_unit-value {
  color: #a84a6a;
}
#Lin_countdown.Lin_theme-sakura .Lin_icon-btn {
  background: #fce4ec; color: #b85a7a;
}
#Lin_countdown.Lin_theme-sakura .Lin_calendar-container {
  background: #fff5f8;
}
#Lin_countdown.Lin_theme-sakura .Lin_calendar-day.Lin_today {
  background: #ec407a; color: white;
}
#Lin_countdown.Lin_theme-sakura .Lin_calendar-day.Lin_has-festival .Lin_lunar-day-text {
  color: #d85a7a; font-weight: 600;
}
#Lin_countdown.Lin_theme-sakura .Lin_calendar-day.Lin_has-term .Lin_lunar-day-text.Lin_term-day-text {
  color: #5a9d78;
}
#Lin_countdown.Lin_theme-sakura .Lin_festival-marker {
  background: #f48fb1;
}
#Lin_countdown.Lin_theme-sakura .Lin_modal-content {
  background: #fffafc;
}
#Lin_countdown.Lin_theme-sakura .Lin_modal-name {
  color: #6a3d4a;
}
#Lin_countdown.Lin_theme-sakura .Lin_modal-lunar {
  background: #fce4ec; color: #b85a7a;
}
#Lin_countdown.Lin_theme-sakura .Lin_holiday-info {
  background: #e8f8e8;
}
#Lin_countdown.Lin_theme-sakura .Lin_story-box {
  background: #fff0f5;
}
#Lin_countdown.Lin_theme-sakura .Lin_action-btn {
  background: #fce4ec; color: #a84a6a;
}
#Lin_countdown.Lin_theme-sakura .Lin_action-btn.Lin_primary {
  background: #ec407a; color: white;
}
#Lin_countdown.Lin_theme-sakura footer {
  color: #c98fa5;
}
#Lin_countdown.Lin_theme-sakura .Lin_search-input {
  background: #fff5f8; border-color: #fce4ec;
}
#Lin_countdown.Lin_theme-sakura .Lin_term-card {
  background: rgba(255, 248, 251, 0.92); border-color: #fce4ec;
}
#Lin_countdown.Lin_theme-sakura .Lin_term-card::before {
  background: linear-gradient(90deg, #a8d8b9, #7cbf8e);
}
#Lin_countdown.Lin_theme-ocean {
  background: #e3f2fd; background-image: radial-gradient(circle at 30% 20%, rgba(179, 229, 252, 0.7) 0%, #bbdefb 70%); color: #1a3a5c;
}
#Lin_countdown.Lin_theme-ocean .Lin_card {
  background: rgba(250, 253, 255, 0.92); border-color: rgba(144, 202, 249, 0.6);
}
#Lin_countdown.Lin_theme-ocean h1 {
  color: #1565c0; border-bottom-color: #90caf9;
}
#Lin_countdown.Lin_theme-ocean .Lin_today-badge {
  background: #e3f2fd; color: #1565c0;
}
#Lin_countdown.Lin_theme-ocean .Lin_tab-btn {
  background: #e3f2fd; color: #1565c0;
}
#Lin_countdown.Lin_theme-ocean .Lin_tab-btn.Lin_active {
  background: #2196f3; color: white;
}
#Lin_countdown.Lin_theme-ocean .Lin_filter-btn {
  background: #e3f2fd; color: #1565c0;
}
#Lin_countdown.Lin_theme-ocean .Lin_filter-btn.Lin_active {
  background: #2196f3; color: white;
}
#Lin_countdown.Lin_theme-ocean .Lin_festival-card {
  background: rgba(248, 252, 255, 0.95); border-color: #e3f2fd;
}
#Lin_countdown.Lin_theme-ocean .Lin_festival-card::before {
  background: linear-gradient(90deg, #64b5f6, #2196f3, #1976d2);
}
#Lin_countdown.Lin_theme-ocean .Lin_festival-name {
  color: #1a3a5c;
}
#Lin_countdown.Lin_theme-ocean .Lin_festival-lunar {
  background: #e3f2fd; color: #1565c0;
}
#Lin_countdown.Lin_theme-ocean .Lin_date-text {
  background: #e3f2fd; color: #1565c0;
}
#Lin_countdown.Lin_theme-ocean .Lin_days-number {
  color: #1976d2;
}
#Lin_countdown.Lin_theme-ocean .Lin_next-festival-card {
  background: linear-gradient(135deg, #42a5f5, #1565c0);
}
#Lin_countdown.Lin_theme-ocean .Lin_countdown-box {
  background: #e3f2fd;
}
#Lin_countdown.Lin_theme-ocean .Lin_unit-value {
  color: #1565c0;
}
#Lin_countdown.Lin_theme-ocean .Lin_icon-btn {
  background: #e3f2fd; color: #1565c0;
}
#Lin_countdown.Lin_theme-ocean .Lin_calendar-container {
  background: #f0f8ff;
}
#Lin_countdown.Lin_theme-ocean .Lin_calendar-day.Lin_today {
  background: #2196f3; color: white;
}
#Lin_countdown.Lin_theme-ocean .Lin_calendar-day.Lin_has-festival .Lin_lunar-day-text {
  color: #1976d2; font-weight: 600;
}
#Lin_countdown.Lin_theme-ocean .Lin_calendar-day.Lin_has-term .Lin_lunar-day-text.Lin_term-day-text {
  color: #00796b;
}
#Lin_countdown.Lin_theme-ocean .Lin_festival-marker {
  background: #64b5f6;
}
#Lin_countdown.Lin_theme-ocean .Lin_modal-content {
  background: #fafdff;
}
#Lin_countdown.Lin_theme-ocean .Lin_modal-name {
  color: #1a3a5c;
}
#Lin_countdown.Lin_theme-ocean .Lin_modal-lunar {
  background: #e3f2fd; color: #1565c0;
}
#Lin_countdown.Lin_theme-ocean .Lin_holiday-info {
  background: #e8f8e8;
}
#Lin_countdown.Lin_theme-ocean .Lin_story-box {
  background: #f0f8ff;
}
#Lin_countdown.Lin_theme-ocean .Lin_action-btn {
  background: #e3f2fd; color: #1565c0;
}
#Lin_countdown.Lin_theme-ocean .Lin_action-btn.Lin_primary {
  background: #2196f3; color: white;
}
#Lin_countdown.Lin_theme-ocean footer {
  color: #6a9fd0;
}
#Lin_countdown.Lin_theme-ocean .Lin_search-input {
  background: #f0f8ff; border-color: #bbdefb;
}
#Lin_countdown.Lin_theme-ocean .Lin_term-card {
  background: rgba(248, 252, 255, 0.95); border-color: #e3f2fd;
}
#Lin_countdown.Lin_theme-ocean .Lin_term-card::before {
  background: linear-gradient(90deg, #4db6ac, #26a69a);
}
#Lin_countdown.Lin_theme-forest {
  background: #e8f5e9; background-image: radial-gradient(circle at 20% 30%, rgba(200, 230, 201, 0.7) 0%, #c8e6c9 70%); color: #1a3a1a;
}
#Lin_countdown.Lin_theme-forest .Lin_card {
  background: rgba(250, 255, 250, 0.92); border-color: rgba(165, 214, 167, 0.6);
}
#Lin_countdown.Lin_theme-forest h1 {
  color: #2e7d32; border-bottom-color: #a5d6a7;
}
#Lin_countdown.Lin_theme-forest .Lin_today-badge {
  background: #e8f5e9; color: #2e7d32;
}
#Lin_countdown.Lin_theme-forest .Lin_tab-btn {
  background: #e8f5e9; color: #2e7d32;
}
#Lin_countdown.Lin_theme-forest .Lin_tab-btn.Lin_active {
  background: #4caf50; color: white;
}
#Lin_countdown.Lin_theme-forest .Lin_filter-btn {
  background: #e8f5e9; color: #2e7d32;
}
#Lin_countdown.Lin_theme-forest .Lin_filter-btn.Lin_active {
  background: #4caf50; color: white;
}
#Lin_countdown.Lin_theme-forest .Lin_festival-card {
  background: rgba(248, 255, 248, 0.95); border-color: #e8f5e9;
}
#Lin_countdown.Lin_theme-forest .Lin_festival-card::before {
  background: linear-gradient(90deg, #81c784, #4caf50, #2e7d32);
}
#Lin_countdown.Lin_theme-forest .Lin_festival-name {
  color: #1a3a1a;
}
#Lin_countdown.Lin_theme-forest .Lin_festival-lunar {
  background: #e8f5e9; color: #2e7d32;
}
#Lin_countdown.Lin_theme-forest .Lin_date-text {
  background: #e8f5e9; color: #2e7d32;
}
#Lin_countdown.Lin_theme-forest .Lin_days-number {
  color: #388e3c;
}
#Lin_countdown.Lin_theme-forest .Lin_next-festival-card {
  background: linear-gradient(135deg, #66bb6a, #2e7d32);
}
#Lin_countdown.Lin_theme-forest .Lin_countdown-box {
  background: #e8f5e9;
}
#Lin_countdown.Lin_theme-forest .Lin_unit-value {
  color: #2e7d32;
}
#Lin_countdown.Lin_theme-forest .Lin_icon-btn {
  background: #e8f5e9; color: #2e7d32;
}
#Lin_countdown.Lin_theme-forest .Lin_calendar-container {
  background: #f0f8f0;
}
#Lin_countdown.Lin_theme-forest .Lin_calendar-day.Lin_today {
  background: #4caf50; color: white;
}
#Lin_countdown.Lin_theme-forest .Lin_calendar-day.Lin_has-festival .Lin_lunar-day-text {
  color: #388e3c; font-weight: 600;
}
#Lin_countdown.Lin_theme-forest .Lin_calendar-day.Lin_has-term .Lin_lunar-day-text.Lin_term-day-text {
  color: #2e7d32;
}
#Lin_countdown.Lin_theme-forest .Lin_festival-marker {
  background: #81c784;
}
#Lin_countdown.Lin_theme-forest .Lin_modal-content {
  background: #fafffa;
}
#Lin_countdown.Lin_theme-forest .Lin_modal-name {
  color: #1a3a1a;
}
#Lin_countdown.Lin_theme-forest .Lin_modal-lunar {
  background: #e8f5e9; color: #2e7d32;
}
#Lin_countdown.Lin_theme-forest .Lin_holiday-info {
  background: #e8f8e8;
}
#Lin_countdown.Lin_theme-forest .Lin_story-box {
  background: #f0f8f0;
}
#Lin_countdown.Lin_theme-forest .Lin_action-btn {
  background: #e8f5e9; color: #2e7d32;
}
#Lin_countdown.Lin_theme-forest .Lin_action-btn.Lin_primary {
  background: #4caf50; color: white;
}
#Lin_countdown.Lin_theme-forest footer {
  color: #6aa06a;
}
#Lin_countdown.Lin_theme-forest .Lin_search-input {
  background: #f0f8f0; border-color: #a5d6a7;
}
#Lin_countdown.Lin_theme-forest .Lin_term-card {
  background: rgba(248, 255, 248, 0.95); border-color: #e8f5e9;
}
#Lin_countdown.Lin_theme-forest .Lin_term-card::before {
  background: linear-gradient(90deg, #66bb6a, #43a047);
}
#Lin_countdown #app {
  width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 clamp(0.25rem, 1vw, 0.5rem);
}
#Lin_countdown .Lin_card {
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-radius: clamp(1.5rem, 3vw, 2.5rem);
  box-shadow: 0 20px 35px -8px rgba(0, 0, 0, 0.12), 0 8px 18px -6px rgba(0, 0, 0, 0.05);
  padding: clamp(1rem, 3vw, 2rem);
  border: 1px solid;
  transition: padding 0.2s, background 0.4s, border-color 0.4s;
}
#Lin_countdown .Lin_top-bar {
  display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 0.5rem;
  padding-bottom: clamp(0.4rem, 1vw, 0.6rem); border-bottom: 2px dashed;
  margin-bottom: clamp(0.8rem, 2vw, 1.2rem); transition: border-color 0.4s;
}
#Lin_countdown h1 {
  font-size: clamp(1.2rem, 3.5vw, 2rem); font-weight: 550; letter-spacing: 0.5px;
  display: flex; align-items: center; gap: clamp(0.4rem, 1vw, 0.75rem);
  transition: color 0.4s;
}
#Lin_countdown h1 span {
  font-size: clamp(1.1rem, 3vw, 1.8rem);
}
#Lin_countdown .Lin_top-actions {
  display: flex; gap: 0.4rem; flex-wrap: wrap;
}
#Lin_countdown .Lin_icon-btn {
  border: none; border-radius: 50%;
  width: clamp(2rem, 4vw, 2.5rem); height: clamp(2rem, 4vw, 2.5rem);
  display: flex; align-items: center; justify-content: center; cursor: pointer;
  font-size: clamp(0.9rem, 2vw, 1.1rem); transition: all 0.2s;
}
#Lin_countdown .Lin_icon-btn:hover {
  transform: scale(1.08);
}
#Lin_countdown .Lin_search-bar {
  display: flex; gap: 0.5rem; margin-bottom: clamp(0.6rem, 1.8vw, 1rem);
  align-items: center;
}
#Lin_countdown .Lin_search-input {
  flex: 1;
  padding: clamp(0.4rem, 1.2vw, 0.6rem) clamp(0.8rem, 2vw, 1.2rem);
  border-radius: 40px;
  border: 1px solid;
  font-size: clamp(0.75rem, 1.7vw, 0.9rem);
  outline: none;
  transition: all 0.2s;
}
#Lin_countdown .Lin_search-input:focus {
  border-color: #a67c52;
}
#Lin_countdown .Lin_search-clear {
  background: none; border: none; cursor: pointer;
  font-size: 1.2rem; opacity: 0.6;
  padding: 0.2rem 0.5rem;
  border-radius: 50%;
  transition: all 0.2s;
}
#Lin_countdown .Lin_search-clear:hover {
  opacity: 1; background: rgba(0,0,0,0.06);
}
#Lin_countdown .Lin_year-stats {
  display: flex; gap: clamp(0.4rem, 1.5vw, 0.8rem); flex-wrap: wrap;
  margin-bottom: clamp(0.6rem, 1.8vw, 1rem);
  padding: clamp(0.5rem, 1.5vw, 0.8rem);
  background: rgba(255, 255, 255, 0.5);
  border-radius: 1rem;
  font-size: clamp(0.65rem, 1.5vw, 0.8rem);
}
#Lin_countdown.Lin_theme-dark .Lin_year-stats {
  background: rgba(60, 45, 30, 0.5);
}
#Lin_countdown .Lin_stat-item {
  display: flex; align-items: center; gap: 0.3rem;
  padding: 0.2rem 0.6rem;
  background: rgba(255, 255, 255, 0.6);
  border-radius: 20px;
  white-space: nowrap;
}
#Lin_countdown.Lin_theme-dark .Lin_stat-item {
  background: rgba(80, 60, 40, 0.6);
}
#Lin_countdown .Lin_stat-value {
  font-weight: 600;
}
#Lin_countdown .Lin_progress-bar {
  width: 100%; height: 6px; border-radius: 3px;
  background: rgba(0,0,0,0.1);
  overflow: hidden;
  margin-top: 0.3rem;
}
#Lin_countdown .Lin_progress-fill {
  height: 100%; background: linear-gradient(90deg, #a67c52, #d4a373);
  border-radius: 3px;
  transition: width 0.3s;
}
#Lin_countdown .Lin_subhead {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: clamp(0.8rem, 2vw, 1.2rem); font-size: clamp(0.75rem, 1.7vw, 0.95rem);
  flex-wrap: wrap; gap: 0.5rem; transition: color 0.4s;
}
#Lin_countdown .Lin_today-badge {
  border-radius: 30px;
  padding: clamp(0.25rem, 0.8vw, 0.45rem) clamp(0.7rem, 1.8vw, 1.2rem);
  font-size: clamp(0.65rem, 1.5vw, 0.85rem); font-weight: 500;
  box-shadow: inset 0 1px 4px rgba(255, 255, 255, 0.5), 0 2px 4px rgba(0, 0, 0, 0.05);
  white-space: nowrap; transition: background 0.4s, color 0.4s;
}
#Lin_countdown .Lin_lunar-info {
  font-size: clamp(0.7rem, 1.6vw, 0.85rem); font-weight: 450; transition: color 0.4s;
}
#Lin_countdown .Lin_tab-bar {
  display: flex; gap: 0.4rem; margin-bottom: clamp(0.8rem, 2vw, 1.2rem); flex-wrap: wrap;
}
#Lin_countdown .Lin_tab-btn {
  border: none; padding: clamp(0.3rem, 0.9vw, 0.5rem) clamp(0.7rem, 1.8vw, 1.1rem);
  border-radius: 40px; font-size: clamp(0.7rem, 1.6vw, 0.85rem); font-weight: 500;
  cursor: pointer; transition: all 0.3s; white-space: nowrap;
}
#Lin_countdown .Lin_tab-btn:hover {
  transform: scale(0.97);
}
#Lin_countdown .Lin_filter-bar {
  display: flex; flex-wrap: wrap; gap: clamp(0.3rem, 1vw, 0.5rem); margin-bottom: clamp(0.8rem, 2vw, 1.2rem);
}
#Lin_countdown .Lin_filter-btn {
  border: none; padding: clamp(0.3rem, 0.9vw, 0.5rem) clamp(0.6rem, 1.6vw, 1rem);
  border-radius: 40px; font-size: clamp(0.65rem, 1.5vw, 0.8rem); font-weight: 500;
  cursor: pointer; transition: all 0.3s; white-space: nowrap;
}
#Lin_countdown .Lin_filter-btn:hover {
  transform: scale(0.97);
}
#Lin_countdown .Lin_grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr));
  gap: clamp(0.6rem, 1.8vw, 1.1rem);
}
#Lin_countdown .Lin_festival-card {
  backdrop-filter: blur(4px);
  border-radius: clamp(1.2rem, 2.5vw, 1.8rem);
  padding: clamp(0.8rem, 2vw, 1.2rem);
  box-shadow: 0 6px 14px rgba(0, 0, 0, 0.03), 0 2px 8px rgba(80, 60, 40, 0.05);
  border: 1px solid;
  transition: transform 0.2s, box-shadow 0.2s, background 0.4s, border-color 0.4s;
  display: flex; flex-direction: column; position: relative; overflow: hidden; cursor: pointer;
}
#Lin_countdown .Lin_festival-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 18px 28px -12px rgba(80, 60, 40, 0.2), 0 4px 12px rgba(0, 0, 0, 0.03);
}
#Lin_countdown .Lin_festival-card:active {
  transform: scale(0.98);
}
#Lin_countdown .Lin_festival-card::before {
  content: ''; position: absolute; top: 0; left: 0; width: 100%;
  height: clamp(4px, 0.8vw, 6px); opacity: 0.8;
}
#Lin_countdown .Lin_festival-name {
  font-size: clamp(0.95rem, 2.4vw, 1.3rem); font-weight: 550;
  display: flex; align-items: center; flex-wrap: wrap; gap: 0.3rem 0.5rem;
  margin-bottom: 0.15rem; line-height: 1.3; transition: color 0.4s;
}
#Lin_countdown .Lin_festival-lunar {
  font-size: clamp(0.58rem, 1.4vw, 0.72rem);
  padding: 0.15rem clamp(0.4rem, 1.3vw, 0.7rem); border-radius: 50px;
  display: inline-block; align-self: flex-start; margin-bottom: 0.4rem;
  transition: background 0.4s, color 0.4s;
}
#Lin_countdown .Lin_countdown-wrapper {
  display: flex; align-items: baseline; justify-content: space-between;
  margin-top: auto; border-top: 1px solid #efe2d6;
  padding-top: clamp(0.4rem, 1.3vw, 0.8rem);
  margin-top: clamp(0.4rem, 1.3vw, 0.8rem); gap: 0.4rem; flex-wrap: wrap;
}
#Lin_countdown .Lin_days-number {
  font-size: clamp(1.5rem, 3.8vw, 2.2rem); font-weight: 600; line-height: 1;
  letter-spacing: -1px; transition: color 0.4s;
}
#Lin_countdown .Lin_days-label {
  font-size: clamp(0.65rem, 1.5vw, 0.85rem); margin-left: 0.15rem;
}
#Lin_countdown .Lin_date-text {
  font-size: clamp(0.6rem, 1.4vw, 0.8rem);
  padding: clamp(0.15rem, 0.7vw, 0.3rem) clamp(0.4rem, 1.3vw, 0.8rem);
  border-radius: 30px; font-weight: 450; white-space: nowrap;
  transition: background 0.4s, color 0.4s;
}
#Lin_countdown .Lin_today-tag {
  font-size: clamp(0.5rem, 1.2vw, 0.7rem);
  font-weight: 600; padding: 0.1rem clamp(0.35rem, 0.9vw, 0.6rem); border-radius: 40px;
}
#Lin_countdown .Lin_holiday-tag {
  background: #7c9e7c; color: white; font-size: clamp(0.5rem, 1.2vw, 0.7rem);
  font-weight: 600; padding: 0.1rem clamp(0.35rem, 0.9vw, 0.6rem);
  border-radius: 40px; margin-left: 0.3rem;
}
#Lin_countdown .Lin_term-tag {
  background: #7c9e7c; color: white; font-size: clamp(0.5rem, 1.2vw, 0.7rem);
  font-weight: 600; padding: 0.1rem clamp(0.35rem, 0.9vw, 0.6rem);
  border-radius: 40px; margin-left: 0.3rem;
}
#Lin_countdown .Lin_term-card {
  backdrop-filter: blur(4px);
  border-radius: clamp(1.2rem, 2.5vw, 1.8rem);
  padding: clamp(0.8rem, 2vw, 1.2rem);
  box-shadow: 0 6px 14px rgba(0, 0, 0, 0.03);
  border: 1px solid;
  transition: transform 0.2s, background 0.4s;
  display: flex; flex-direction: column; position: relative; overflow: hidden; cursor: pointer;
}
#Lin_countdown .Lin_term-card:hover {
  transform: translateY(-3px);
}
#Lin_countdown .Lin_term-card::before {
  content: ''; position: absolute; top: 0; left: 0; width: 100%;
  height: clamp(4px, 0.8vw, 6px); opacity: 0.8;
}
#Lin_countdown .Lin_term-name {
  font-size: clamp(0.95rem, 2.4vw, 1.3rem); font-weight: 550;
  margin-bottom: 0.3rem;
}
#Lin_countdown .Lin_term-date {
  font-size: clamp(0.6rem, 1.4vw, 0.75rem);
  opacity: 0.75; margin-bottom: 0.5rem;
}
#Lin_countdown .Lin_term-desc {
  font-size: clamp(0.6rem, 1.4vw, 0.75rem);
  line-height: 1.5; opacity: 0.85;
}
#Lin_countdown .Lin_term-name {
  display: flex; align-items: center; gap: 0.4rem; flex-wrap: wrap;
}
#Lin_countdown .Lin_term-current-tag {
  font-size: 0.62rem; padding: 0.08rem 0.4rem; border-radius: 999px;
  background: #5a8a5a; color: #fff; font-weight: 400;
}
#Lin_countdown .Lin_term-life-tip {
  font-size: clamp(0.58rem, 1.3vw, 0.72rem);
  line-height: 1.45; margin-top: 0.45rem; padding-top: 0.45rem;
  border-top: 1px dashed rgba(124, 158, 124, 0.35); opacity: 0.8;
}
/* 节气的「时令饮食 / 农事参考」。
   TERM_LIFE 里 24 条数据都有 food 与 farm，但此前只在 ICS 导出中用到、
   卡片上没露出来 —— 属于已付成本的内容闲置。接在养生提示之后，
   用更轻的字重与更小的字号，避免把节气卡撑得太长。 */
#Lin_countdown .Lin_term-life-meta {
  display: flex; flex-wrap: wrap; gap: 0.1rem 0.75rem;
  font-size: clamp(0.56rem, 1.25vw, 0.68rem);
  line-height: 1.5; opacity: 0.72; margin-top: 0.3rem;
}
#Lin_countdown .Lin_term-life-meta > span {
  display: inline-flex; gap: 0.25rem;
}
#Lin_countdown .Lin_calendar-day .Lin_lunar-day-text.Lin_festival-day-text {
  color: #b07347; font-weight: 600;
}
#Lin_countdown.Lin_theme-dark .Lin_calendar-day .Lin_lunar-day-text.Lin_festival-day-text {
  color: #e0b184;
}
#Lin_countdown .Lin_next-festival-card {
  color: #fff;
  border-radius: clamp(1.2rem, 2.5vw, 1.6rem);
  padding: clamp(1rem, 2.5vw, 1.3rem) clamp(1.2rem, 3vw, 1.8rem);
  margin-bottom: clamp(0.8rem, 2vw, 1.2rem);
  display: flex; justify-content: space-between; align-items: center;
  flex-wrap: wrap; gap: 0.8rem;
  box-shadow: 0 10px 25px -8px rgba(166, 124, 82, 0.4);
  cursor: pointer; transition: transform 0.2s, background 0.4s;
}
#Lin_countdown .Lin_next-festival-card:hover {
  transform: translateY(-2px);
}
#Lin_countdown .Lin_next-label {
  font-size: clamp(0.65rem, 1.5vw, 0.8rem); opacity: 0.9; letter-spacing: 1px; text-transform: uppercase;
}
#Lin_countdown .Lin_next-name {
  font-size: clamp(1.3rem, 3.5vw, 1.7rem); font-weight: 600; margin-top: 0.2rem;
}
#Lin_countdown .Lin_next-countdown {
  font-size: clamp(1.8rem, 5vw, 2.6rem); font-weight: 700; font-variant-numeric: tabular-nums;
}
#Lin_countdown .Lin_next-days-label {
  font-size: clamp(0.75rem, 1.8vw, 1rem); font-weight: 400; opacity: 0.9;
}
#Lin_countdown .Lin_empty-state {
  text-align: center; padding: clamp(2rem, 5vw, 3rem) 1rem;
  font-size: clamp(0.9rem, 2vw, 1.1rem);
  border-radius: clamp(1.2rem, 2.5vw, 2rem); border: 1px dashed;
  transition: background 0.4s, color 0.4s;
}
#Lin_countdown .Lin_modal-overlay {
  position: fixed; top: 0; left: 0; width: 100%; height: 100%;
  background: rgba(30, 20, 12, 0.5); backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px); display: flex; align-items: center;
  /* z-index 见文末「弹层层级基准」（此处不写，避免两处定义互相覆盖） */
  justify-content: center; padding: clamp(0.75rem, 3vw, 1.5rem);
  animation: fadeIn 0.25s ease;
}
@keyframes fadeIn {
  from { opacity: 0; } to { opacity: 1; }
}
#Lin_countdown .Lin_modal-content {
  border-radius: clamp(1.5rem, 3vw, 2.2rem);
  max-width: 500px; width: 100%; padding: clamp(1.2rem, 4vw, 1.8rem);
  box-shadow: 0 30px 50px -12px rgba(40, 25, 10, 0.4);
  text-align: center; animation: slideUp 0.3s cubic-bezier(0.2, 0.9, 0.3, 1);
  position: relative; max-height: 90vh; overflow-y: auto;
  transition: background 0.4s, color 0.4s;
}
@keyframes slideUp {
  from { transform: translateY(20px); opacity: 0; } to { transform: translateY(0); opacity: 1; }
}
#Lin_countdown .Lin_modal-close {
  position: absolute; top: clamp(0.6rem, 2vw, 1.1rem); right: clamp(0.6rem, 2vw, 1.3rem);
  background: none; border: none; font-size: clamp(1.5rem, 4vw, 1.8rem);
  cursor: pointer; color: #b9a48e; width: clamp(1.8rem, 4vw, 2.2rem);
  height: clamp(1.8rem, 4vw, 2.2rem); display: flex; align-items: center;
  justify-content: center; border-radius: 50%; z-index: 2;
}
#Lin_countdown .Lin_modal-close:hover {
  background: rgba(0,0,0,0.06);
}
#Lin_countdown .Lin_modal-icon {
  font-size: clamp(2.2rem, 7vw, 2.8rem); display: block; line-height: 1.2;
}
#Lin_countdown .Lin_modal-name {
  font-size: clamp(1.4rem, 4vw, 1.8rem); font-weight: 550; margin-bottom: 0.2rem;
}
#Lin_countdown .Lin_modal-lunar {
  font-size: clamp(0.75rem, 1.8vw, 0.9rem);
  display: inline-block; padding: 0.2rem clamp(0.8rem, 2vw, 1.2rem);
  border-radius: 40px; margin-bottom: 0.4rem;
}
#Lin_countdown .Lin_modal-date {
  font-size: clamp(0.85rem, 2vw, 1rem); margin-bottom: clamp(0.8rem, 2.5vw, 1.2rem);
}
#Lin_countdown .Lin_countdown-box {
  border-radius: clamp(1.2rem, 2.5vw, 1.8rem);
  padding: clamp(0.8rem, 2.5vw, 1.2rem) clamp(0.5rem, 2vw, 1rem);
  margin-bottom: clamp(0.8rem, 2vw, 1.2rem); transition: background 0.4s;
}
#Lin_countdown .Lin_countdown-title {
  font-size: clamp(0.6rem, 1.5vw, 0.8rem); text-transform: uppercase;
  letter-spacing: clamp(2px, 0.5vw, 3px);
  margin-bottom: clamp(0.4rem, 1.5vw, 0.7rem); font-weight: 500; opacity: 0.75;
}
#Lin_countdown .Lin_countdown-units {
  display: flex; align-items: baseline; justify-content: center; gap: clamp(0.2rem, 1vw, 0.5rem);
}
#Lin_countdown .Lin_unit {
  display: flex; flex-direction: column; align-items: center; min-width: clamp(38px, 12vw, 55px);
}
#Lin_countdown .Lin_unit-value {
  font-size: clamp(1.3rem, 5vw, 2.2rem); font-weight: 600; line-height: 1.2;
  font-variant-numeric: tabular-nums; transition: color 0.4s;
}
#Lin_countdown .Lin_unit-label {
  font-size: clamp(0.55rem, 1.5vw, 0.7rem); font-weight: 500; margin-top: 0.1rem; opacity: 0.75;
}
#Lin_countdown .Lin_separator {
  font-size: clamp(1.2rem, 4vw, 1.8rem); font-weight: 300; line-height: 1; align-self: center; opacity: 0.5;
}
#Lin_countdown .Lin_holiday-info {
  border-radius: clamp(0.8rem, 2vw, 1rem);
  padding: clamp(0.6rem, 1.8vw, 0.9rem); margin-bottom: clamp(0.6rem, 1.8vw, 0.9rem);
  font-size: clamp(0.7rem, 1.7vw, 0.85rem); text-align: left;
}
#Lin_countdown .Lin_holiday-info strong {
  font-weight: 600;
}
#Lin_countdown .Lin_story-box {
  border-radius: clamp(0.8rem, 2vw, 1rem);
  padding: clamp(0.7rem, 2vw, 0.9rem); margin-bottom: clamp(0.6rem, 1.8vw, 0.9rem);
  font-size: clamp(0.7rem, 1.7vw, 0.85rem); text-align: left; line-height: 1.6;
}
#Lin_countdown .Lin_story-title {
  font-weight: 600; margin-bottom: 0.3rem; font-size: clamp(0.75rem, 1.8vw, 0.9rem);
}
#Lin_countdown .Lin_blessing-box {
  border-radius: clamp(0.8rem, 2vw, 1rem);
  padding: clamp(0.6rem, 1.8vw, 0.9rem);
  margin-bottom: clamp(0.6rem, 1.8vw, 0.9rem);
  font-size: clamp(0.7rem, 1.7vw, 0.9rem);
  text-align: center; font-style: italic; line-height: 1.5;
  background: rgba(255, 240, 220, 0.5);
}
#Lin_countdown.Lin_theme-dark .Lin_blessing-box {
  background: rgba(60, 45, 30, 0.5);
}
#Lin_countdown.Lin_theme-rainbow .Lin_blessing-box {
  background: rgba(240, 230, 255, 0.6);
}
#Lin_countdown.Lin_theme-sakura .Lin_blessing-box {
  background: rgba(255, 230, 240, 0.6);
}
#Lin_countdown.Lin_theme-ocean .Lin_blessing-box {
  background: rgba(220, 240, 255, 0.6);
}
#Lin_countdown.Lin_theme-forest .Lin_blessing-box {
  background: rgba(230, 250, 230, 0.6);
}
#Lin_countdown .Lin_culture-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem;
  margin-bottom: clamp(0.6rem, 1.8vw, 0.9rem);
}
#Lin_countdown .Lin_culture-item {
  padding: clamp(0.5rem, 1.5vw, 0.8rem);
  border-radius: 0.8rem;
  background: rgba(255, 240, 220, 0.5);
  text-align: left;
  font-size: clamp(0.65rem, 1.5vw, 0.8rem);
}
#Lin_countdown.Lin_theme-dark .Lin_culture-item {
  background: rgba(60, 45, 30, 0.5);
}
#Lin_countdown .Lin_culture-label {
  font-weight: 600; margin-bottom: 0.2rem; font-size: clamp(0.7rem, 1.6vw, 0.85rem);
}
#Lin_countdown .Lin_action-btns {
  display: flex; gap: 0.5rem; flex-wrap: wrap; justify-content: center; margin-top: clamp(0.6rem, 2vw, 1rem);
}
#Lin_countdown .Lin_action-btn {
  border: none; padding: clamp(0.4rem, 1.2vw, 0.5rem) clamp(0.8rem, 2vw, 1.1rem);
  border-radius: 40px; font-size: clamp(0.65rem, 1.5vw, 0.8rem);
  cursor: pointer; transition: all 0.2s; font-weight: 500;
  display: flex; align-items: center; gap: 0.3rem;
}
#Lin_countdown .Lin_action-btn:hover {
  transform: scale(0.97); opacity: 0.9;
}
#Lin_countdown .Lin_custom-list {
  display: flex; flex-direction: column; gap: 0.6rem;
}
#Lin_countdown .Lin_custom-item {
  border: 1px solid rgba(128, 128, 128, 0.22); border-radius: 1.1rem;
  padding: 0.7rem 0.9rem;
  display: flex; align-items: center; gap: 0.75rem;
  transition: background 0.4s, border-color 0.4s, transform 0.2s;
}
#Lin_countdown .Lin_custom-item:hover { transform: translateY(-1px); }
/* 图标徽章：把 emoji 从名称里拆出来单独承载，形成左侧视觉锚点。
   底色用中性半透明灰，浅色/深色主题下都成立，无需逐主题覆盖。 */
#Lin_countdown .Lin_custom-item-icon {
  flex: none;
  width: clamp(1.9rem, 4.5vw, 2.3rem); height: clamp(1.9rem, 4.5vw, 2.3rem);
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%;
  background: rgba(128, 128, 128, 0.12);
  font-size: clamp(0.9rem, 2.2vw, 1.1rem);
  line-height: 1;
}
/* 生日/纪念日：图标底色偏暖粉，与普通自定义倒计时区分 */
#Lin_countdown .Lin_custom-item--birthday .Lin_custom-item-icon {
  background: rgba(214, 122, 154, 0.18);
}
#Lin_countdown .Lin_custom-item-info {
  flex: 1 1 auto; min-width: 0;
  display: flex; flex-direction: column; gap: 0.15rem;
}
#Lin_countdown .Lin_custom-item-name {
  font-weight: 550; font-size: clamp(0.85rem, 2vw, 1rem);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
#Lin_countdown .Lin_custom-item-date {
  font-size: clamp(0.65rem, 1.5vw, 0.8rem); opacity: 0.7;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
/* 右侧「天数 + 删除」整块靠右；margin-left:auto 保证极端窄屏下也不会左漂 */
#Lin_countdown .Lin_custom-item-tail {
  flex: none; margin-left: auto;
  display: flex; align-items: center; gap: 0.5rem;
}
#Lin_countdown .Lin_custom-days-wrap {
  display: flex; align-items: baseline; gap: 0.1rem;
  white-space: nowrap;
}
/* 「还有 / 已过」前缀 —— 靠它把「已过 1024 天」和「还有 173 天」区分开。
   两者数字部分完全同构（大号数字 + 小号"天"），只靠前缀表达方向。 */
#Lin_countdown .Lin_custom-days-prefix {
  font-size: clamp(0.6rem, 1.4vw, 0.72rem);
  opacity: 0.7;
  margin-right: 0.1rem;
}
/* 恰好是今天：不显示天数，避免出现「还有 0 天」这种别扭表达 */
#Lin_countdown .Lin_custom-days-today {
  font-size: clamp(0.68rem, 1.5vw, 0.8rem);
  font-weight: 600;
  padding: 0.15rem 0.5rem;
  border-radius: 40px;
  background: rgba(128, 128, 128, 0.16);
  white-space: nowrap;
}
#Lin_countdown .Lin_custom-item-days {
  font-size: clamp(1.15rem, 2.8vw, 1.6rem); font-weight: 600;
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
}
#Lin_countdown .Lin_custom-item-days-label {
  font-size: clamp(0.6rem, 1.4vw, 0.75rem); opacity: 0.7;
}
#Lin_countdown .Lin_delete-btn {
  background: rgba(128, 128, 128, 0.10); border: none; color: #c99;
  cursor: pointer; font-size: clamp(0.8rem, 1.9vw, 0.95rem);
  width: clamp(1.7rem, 4vw, 2rem); height: clamp(1.7rem, 4vw, 2rem);
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%; transition: all 0.2s; flex: none;
}
#Lin_countdown .Lin_delete-btn:hover {
  background: #ffe0e0; color: #e66; transform: scale(1.06);
}
/* ===== 自定义倒计时：新建表单 =====
   原实现把「名称输入 / 公历农历切换 / 日期 / 两个复选框 / 添加按钮」6 个控件
   平铺在一个 flex 流里（row + wrap），换行位置随机：桌面 1400 下第 1 行挤进 4 个
   （占满 962/986px）、第 2 行只有 271px 却左对齐，右侧空出一大片。
   且切换按钮、复选框行、添加按钮在源文件里**没有任何样式**（实测
   background 全透明、border:none），界面上就是几串裸文字。
   现改为「卡片 + 分段字段」（名称 / 日期类型 / 日期 / 选项），末行右对齐主按钮。
   控件统一挂靠已主题化的类，故 6 套主题无需再补规则：
     .Lin_search-input             → 输入框底色与边框（6 套主题均已有覆盖）
     .Lin_filter-btn(.Lin_active)  → 公历/农历切换、选项 chip 的配色
     .Lin_tab-btn.Lin_active       → 「添加倒计时」主按钮的主题主色 */
#Lin_countdown .Lin_add-custom-form {
  display: flex; flex-direction: column; gap: 0.9rem;
  margin-bottom: 1.1rem;
  padding: clamp(0.85rem, 2.2vw, 1.15rem);
  border: 1px solid rgba(128, 128, 128, 0.22);
  border-radius: 1.1rem;
  transition: background 0.4s, border-color 0.4s;
}
#Lin_countdown .Lin_cf-head {
  display: flex; align-items: center; gap: 0.4rem;
  font-size: clamp(0.82rem, 1.9vw, 0.95rem); font-weight: 600;
  padding-bottom: 0.6rem;
  border-bottom: 1px dashed rgba(128, 128, 128, 0.28);
}
#Lin_countdown .Lin_cf-head-icon { font-size: 1.05em; }
#Lin_countdown .Lin_cf-field {
  display: flex; flex-direction: column; gap: 0.35rem; min-width: 0;
}
#Lin_countdown .Lin_cf-label {
  font-size: clamp(0.68rem, 1.5vw, 0.78rem);
  opacity: 0.65; font-weight: 500; letter-spacing: 0.02em;
}
/* 「日期类型 + 日期」同一行：桌面并排，窄屏自动折行为两段 */
#Lin_countdown .Lin_cf-row {
  display: flex; flex-wrap: wrap; gap: 0.9rem; align-items: flex-start;
}
#Lin_countdown .Lin_cf-auto { flex: none; }
#Lin_countdown .Lin_cf-grow { flex: 1 1 240px; }
#Lin_countdown .Lin_cf-input {
  width: 100%;
  /* 触控友好：移动端 html 字号被主题降到 14px，padding 缩到 7px 后
     输入框实测只有 ~30px 高，低于可点区下限，这里兜住 */
  min-height: 2.4rem;
  padding: clamp(0.42rem, 1.1vw, 0.55rem) clamp(0.7rem, 1.7vw, 0.9rem);
  /* 覆盖 .Lin_search-input 的 40px 胶囊圆角：表单里中圆角更规整，
     原生 date/select 控件在胶囊里不协调 */
  border-radius: 0.75rem;
  font-size: clamp(0.72rem, 1.7vw, 0.85rem);
  outline: none;
  transition: border-color 0.2s, background 0.4s, color 0.4s, box-shadow 0.2s;
}
#Lin_countdown .Lin_cf-input:focus {
  box-shadow: 0 0 0 3px rgba(128, 128, 128, 0.16);
}
#Lin_countdown .Lin_cal-switch {
  display: inline-flex; gap: 0.35rem;
}
#Lin_countdown .Lin_cal-switch .Lin_filter-btn {
  padding: clamp(0.42rem, 1.1vw, 0.55rem) clamp(0.9rem, 2.2vw, 1.2rem);
  border-radius: 0.75rem;
  font-size: clamp(0.72rem, 1.7vw, 0.85rem);
  /* classic 主题没给 .Lin_filter-btn 未选中态底色 → 实测「农历」按钮背景仍是透明的，
     看不出是个可点控件。这里给中性兜底。
     注意保持低特异性（1 id + 2 class），其余 5 套主题的
     `#Lin_countdown.Lin_theme-x .Lin_filter-btn`（1 id + 3 class）才能正常压过它；
     若加上 :not(.Lin_active) 会把特异性抬到与主题相同、进而覆盖掉选中态的主题色。 */
  background: rgba(128, 128, 128, 0.10);
}
#Lin_countdown .Lin_lunar-picker {
  display: flex; gap: 0.5rem;
}
#Lin_countdown .Lin_lunar-picker .Lin_cf-input {
  flex: 1 1 0; min-width: 0;
}
/* 选项 chip：整块可点（label 包 checkbox，原生行为），
   选中时由 .Lin_filter-btn.Lin_active 上主题主色 */
#Lin_countdown .Lin_chip-row {
  display: flex; flex-wrap: wrap; gap: 0.5rem;
}
#Lin_countdown .Lin_chip {
  display: inline-flex; align-items: center; gap: 0.4rem;
  padding: clamp(0.36rem, 1vw, 0.48rem) clamp(0.7rem, 1.7vw, 0.95rem);
  border-radius: 0.75rem;
  font-size: clamp(0.7rem, 1.6vw, 0.8rem); font-weight: 500;
  cursor: pointer; user-select: none;
  /* classic 主题未给 .Lin_filter-btn 未选中底色，这里给中性兜底；
     其余主题的 .Lin_filter-btn 未选中底色特异性更高，会正常覆盖 */
  background: rgba(128, 128, 128, 0.10);
  transition: all 0.2s;
}
#Lin_countdown .Lin_chip:hover { transform: scale(0.98); }
/* 自绘勾选框：勾号用 currentColor 描边 → chip 选中后底色变主题主色、
   文字转白，勾号自动跟着变白，跨 6 套主题无需单独配色 */
#Lin_countdown .Lin_chip input[type="checkbox"] {
  appearance: none; -webkit-appearance: none;
  flex: none; width: 1rem; height: 1rem; margin: 0;
  border: 1.6px solid currentColor; border-radius: 0.28rem;
  opacity: 0.5; position: relative; transition: all 0.2s;
}
#Lin_countdown .Lin_chip input[type="checkbox"]:checked {
  opacity: 1; border-color: currentColor;
}
#Lin_countdown .Lin_chip input[type="checkbox"]:checked::after {
  content: ''; position: absolute; left: 50%; top: 46%;
  width: 0.28rem; height: 0.5rem;
  border: solid currentColor; border-width: 0 1.6px 1.6px 0;
  transform: translate(-50%, -56%) rotate(45deg);
}
#Lin_countdown .Lin_cf-hint {
  font-size: clamp(0.62rem, 1.4vw, 0.72rem); opacity: 0.55; line-height: 1.6;
}
#Lin_countdown .Lin_cf-submit {
  display: flex; justify-content: flex-end;
  padding-top: 0.2rem;
}
#Lin_countdown .Lin_cf-add {
  /* 触控友好：移动端实测仅 20px 高（rem 基准被主题降到 14px），
     加最小高度后桌面 35px / 移动 31px */
  min-height: 2.2rem;
  padding: clamp(0.5rem, 1.3vw, 0.62rem) clamp(1.2rem, 3vw, 1.8rem);
  border-radius: 0.75rem;
  font-size: clamp(0.74rem, 1.75vw, 0.88rem);
  font-weight: 600;
  white-space: nowrap;
}
#Lin_countdown .Lin_data-actions {
  display: flex; gap: 0.5rem; flex-wrap: wrap;
  margin-top: 1rem; padding-top: 1rem;
  border-top: 1px dashed rgba(128, 128, 128, 0.3);
}
/* ===== 导出到系统日历（多年） ===== */
#Lin_countdown .Lin_ics-export {
  margin-top: 0.9rem; padding-top: 0.9rem;
  border-top: 1px dashed rgba(128, 128, 128, 0.3);
}
#Lin_countdown .Lin_ics-export-head {
  display: flex; align-items: center; justify-content: space-between;
  gap: 0.8rem; flex-wrap: wrap;
}
#Lin_countdown .Lin_ics-export-title {
  font-size: clamp(0.78rem, 1.8vw, 0.9rem); font-weight: 600;
}
#Lin_countdown .Lin_ics-export-hint {
  font-size: clamp(0.62rem, 1.4vw, 0.72rem);
  opacity: 0.6; margin-top: 0.15rem; line-height: 1.5;
}
#Lin_countdown .Lin_ics-export-go {
  /* 移动端 rem 基准会被主题降小（14px），给最小高度保证触控目标 */
  min-height: 2.1rem;
  padding: 0.4rem 1rem;
  white-space: nowrap;
}
#Lin_countdown .Lin_ics-scope {
  display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.7rem;
}
#Lin_countdown .Lin_ics-scope .Lin_filter-btn {
  /* 移动端实测仅 21px（主题把 rem 基准降到 14px）→ 补最小高度到 24px 以上 */
  min-height: 1.75rem;
  padding: clamp(0.32rem, 0.9vw, 0.42rem) clamp(0.7rem, 1.7vw, 0.95rem);
  border-radius: 0.7rem;
  font-size: clamp(0.68rem, 1.55vw, 0.78rem);
}
/* 设置面板里的导出项：左文字 + 右控件在窄屏会挤，允许控件区换行并占满剩余宽度 */
#Lin_countdown .Lin_setting-control--wrap {
  flex: 1 1 auto; flex-wrap: wrap;
  justify-content: flex-end; min-width: 0;
}
#Lin_countdown .Lin_setting-control--wrap .Lin_ics-scope {
  margin-top: 0; justify-content: flex-end;
}
#Lin_countdown .Lin_month-terms-bar {
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem;
  margin: 0.1rem 0 0.55rem; font-size: clamp(0.58rem, 1.3vw, 0.72rem);
}
#Lin_countdown .Lin_month-terms-label {
  opacity: 0.6; margin-right: 0.15rem;
}
#Lin_countdown .Lin_month-term-chip {
  padding: 0.12rem 0.5rem; border-radius: 999px; cursor: pointer;
  background: rgba(124, 158, 124, 0.14); color: #5a8a5a;
  border: 1px solid rgba(124, 158, 124, 0.3);
  transition: all 0.2s; white-space: nowrap;
}
#Lin_countdown .Lin_month-term-chip:hover {
  background: rgba(124, 158, 124, 0.28);
}
#Lin_countdown .Lin_month-term-chip.Lin_is-today-term {
  background: #7c9e7c; color: #fff; border-color: #7c9e7c; font-weight: 600;
}
#Lin_countdown.Lin_theme-dark .Lin_month-terms-label {
  color: #c4b4a4;
}
#Lin_countdown.Lin_theme-dark .Lin_month-term-chip {
  background: rgba(124, 158, 124, 0.2); color: #8fc98f; border-color: rgba(124, 158, 124, 0.4);
}
#Lin_countdown.Lin_theme-dark .Lin_month-term-chip.Lin_is-today-term {
  background: #5a8a5a; color: #f0e6d8;
}
#Lin_countdown.Lin_theme-rainbow .Lin_month-term-chip {
  background: rgba(132, 250, 176, 0.18); color: #4a9d7a;
}
#Lin_countdown.Lin_theme-sakura .Lin_month-term-chip {
  background: rgba(168, 216, 185, 0.22); color: #5a9d78;
}
#Lin_countdown.Lin_theme-ocean .Lin_month-term-chip {
  background: rgba(77, 182, 172, 0.15); color: #00796b;
}
#Lin_countdown.Lin_theme-forest .Lin_month-term-chip {
  background: rgba(102, 187, 106, 0.15); color: #2e7d32;
}
#Lin_countdown .Lin_calendar-container {
  border-radius: clamp(1rem, 2.5vw, 1.5rem);
  padding: clamp(0.6rem, 1.8vw, 1.2rem);
  transition: background 0.4s;
  max-width: 760px;
  margin: 0 auto;
}
#Lin_countdown .Lin_calendar-header {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: clamp(0.4rem, 1.2vw, 0.8rem);
  font-size: clamp(0.95rem, 2.2vw, 1.15rem);
  font-weight: 550;
}
#Lin_countdown .Lin_calendar-nav {
  background: none; border: none;
  font-size: clamp(0.95rem, 2.2vw, 1.15rem);
  cursor: pointer; padding: 0.2rem 0.6rem;
  border-radius: 50%; transition: background 0.2s;
  color: inherit;
}
#Lin_countdown .Lin_calendar-nav:hover {
  background: rgba(0,0,0,0.06);
}
#Lin_countdown .Lin_calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: clamp(0.15rem, 0.5vw, 0.3rem);
}
#Lin_countdown .Lin_weekday-header {
  text-align: center;
  font-size: clamp(0.6rem, 1.3vw, 0.75rem);
  padding: 0.2rem 0; font-weight: 500; opacity: 0.75;
}
#Lin_countdown .Lin_calendar-day {
  aspect-ratio: 1 / 1;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  border-radius: clamp(0.4rem, 1.2vw, 0.7rem);
  cursor: pointer; transition: all 0.2s;
  position: relative; font-weight: 450; padding: 0.05rem;
  min-height: 0;
}
#Lin_countdown .Lin_calendar-day:hover {
  background: rgba(0,0,0,0.05);
}
#Lin_countdown .Lin_calendar-day.Lin_other-month {
  opacity: 0.4;
}
#Lin_countdown .Lin_calendar-day.Lin_today {
  font-weight: 600; color: #fff;
}
#Lin_countdown .Lin_calendar-day.Lin_has-festival {
  font-weight: 600;
}
#Lin_countdown .Lin_calendar-day.Lin_has-term {
  font-weight: 600;
}
#Lin_countdown .Lin_calendar-day.Lin_is-workday {
  box-shadow: inset 0 0 0 2px #d9534f;
}
#Lin_countdown .Lin_calendar-day.Lin_is-workday::after {
  content: '班';
  position: absolute; top: 1px; left: 2px;
  font-size: 0.5rem; color: #d9534f; font-weight: 700;
}
#Lin_countdown .Lin_calendar-day.Lin_has-note::before {
  content: '';
  position: absolute; top: 2px; right: 2px;
  width: 5px; height: 5px; border-radius: 50%;
  background: #4a90d9;
}
#Lin_countdown .Lin_solar-day-text {
  font-size: clamp(0.6rem, 1.5vw, 0.8rem); line-height: 1.1;
}
#Lin_countdown .Lin_lunar-day-text {
  font-size: clamp(0.45rem, 1.1vw, 0.58rem); line-height: 1.1; margin-top: 1px; opacity: 0.75;
}
#Lin_countdown .Lin_calendar-day.Lin_has-festival .Lin_lunar-day-text {
  font-weight: 600; opacity: 1;
}
#Lin_countdown .Lin_calendar-day.Lin_today .Lin_lunar-day-text {
  color: inherit; opacity: 0.9;
}
#Lin_countdown .Lin_term-marker {
  position: absolute; top: 2px; right: 2px;
  width: 4px; height: 4px; border-radius: 50%;
  background: #7c9e7c;
}
#Lin_countdown .Lin_calendar-day.Lin_has-term .Lin_lunar-day-text.Lin_term-day-text {
  color: #5a8a5a; font-weight: 700; opacity: 1;
  letter-spacing: -0.02em;
}
#Lin_countdown .Lin_calendar-day.Lin_today .Lin_lunar-day-text.Lin_term-day-text {
  color: inherit;
}
#Lin_countdown .Lin_festival-marker {
  position: absolute; bottom: 2px; width: 3px; height: 3px;
  border-radius: 50%;
}
#Lin_countdown footer {
  margin-top: clamp(1.2rem, 3vw, 1.8rem); text-align: center;
  font-size: clamp(0.6rem, 1.4vw, 0.75rem);
  letter-spacing: 0.5px; transition: color 0.4s;
}
#Lin_countdown .Lin_notification-banner {
  background: #7c9e7c; color: white; padding: 0.6rem 1rem;
  border-radius: 1rem; margin-bottom: 1rem;
  font-size: clamp(0.7rem, 1.6vw, 0.85rem);
  display: flex; align-items: center; gap: 0.5rem;
  justify-content: space-between; flex-wrap: wrap;
}
#Lin_countdown .Lin_notification-banner button {
  background: rgba(255,255,255,0.3); border: none; color: white;
  padding: 0.3rem 0.8rem; border-radius: 20px; cursor: pointer;
  font-size: clamp(0.65rem, 1.5vw, 0.8rem); white-space: nowrap;
}
#Lin_countdown .Lin_theme-picker-overlay {
  position: fixed; top: 0; left: 0; width: 100%; height: 100%;
  background: rgba(30, 20, 12, 0.5); backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  display: flex; align-items: center; justify-content: center;
  /* z-index 见文末「弹层层级基准」 */
  padding: 1.5rem;
  animation: fadeIn 0.25s ease;
}
#Lin_countdown .Lin_theme-picker {
  background: #fffcf9;
  border-radius: 2rem;
  max-width: 420px; width: 100%;
  padding: 1.5rem;
  box-shadow: 0 30px 50px -12px rgba(40, 25, 10, 0.5);
  animation: slideUp 0.3s cubic-bezier(0.2, 0.9, 0.3, 1);
}
#Lin_countdown.Lin_theme-dark .Lin_theme-picker {
  background: #231c17; color: #e8ddd0;
}
#Lin_countdown .Lin_theme-picker h3 {
  font-size: 1.2rem; margin-bottom: 1rem;
  display: flex; align-items: center; gap: 0.5rem;
  font-weight: 550;
}
#Lin_countdown .Lin_theme-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
  gap: 0.8rem;
  margin-bottom: 1.2rem;
}
#Lin_countdown .Lin_theme-option {
  border: 2px solid transparent;
  border-radius: 1rem;
  padding: 0.8rem 0.5rem;
  cursor: pointer;
  transition: all 0.2s;
  text-align: center;
  position: relative;
  overflow: hidden;
}
#Lin_countdown .Lin_theme-option:hover {
  transform: translateY(-2px);
}
#Lin_countdown .Lin_theme-option.Lin_selected {
  border-color: #a67c52;
}
#Lin_countdown .Lin_theme-option-preview {
  width: 100%; height: 50px; border-radius: 0.6rem;
  margin-bottom: 0.5rem;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,0.05);
}
#Lin_countdown .Lin_theme-option-name {
  font-size: 0.8rem; font-weight: 550;
  display: flex; align-items: center; justify-content: center; gap: 0.3rem;
}
#Lin_countdown .Lin_theme-option-check {
  position: absolute; top: 0.5rem; right: 0.5rem;
  color: #a67c52; font-size: 1.1rem; font-weight: bold;
}
#Lin_countdown .Lin_preview-classic {
  background: linear-gradient(135deg, #f5f3ef, #e7d9cc, #d4a373);
}
#Lin_countdown .Lin_preview-dark {
  background: linear-gradient(135deg, #1a1512, #3d2f24, #a67c52);
}
#Lin_countdown .Lin_preview-rainbow {
  background: linear-gradient(135deg, #ff9a9e, #fad0c4, #a18cd1, #84fab0, #8fd3f4);
}
#Lin_countdown .Lin_preview-sakura {
  background: linear-gradient(135deg, #fff0f5, #fce4ec, #f8bbd0, #ec407a);
}
#Lin_countdown .Lin_preview-ocean {
  background: linear-gradient(135deg, #e3f2fd, #bbdefb, #64b5f6, #1565c0);
}
#Lin_countdown .Lin_preview-forest {
  background: linear-gradient(135deg, #e8f5e9, #c8e6c9, #81c784, #2e7d32);
}
#Lin_countdown .Lin_theme-actions {
  display: flex; gap: 0.5rem; justify-content: flex-end;
}
#Lin_countdown .Lin_theme-actions button {
  border: none; padding: 0.5rem 1.2rem; border-radius: 40px;
  font-size: 0.85rem; cursor: pointer; font-weight: 500;
  transition: all 0.2s;
}
#Lin_countdown .Lin_theme-actions .Lin_cancel {
  background: #efe7e0; color: #6b4f37;
}
#Lin_countdown.Lin_theme-dark .Lin_theme-actions .Lin_cancel {
  background: #3d2f24; color: #d4c2b0;
}
#Lin_countdown .Lin_settings-overlay {
  position: fixed; top: 0; left: 0; width: 100%; height: 100%;
  background: rgba(30, 20, 12, 0.5); backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  display: flex; align-items: center; justify-content: center;
  /* z-index 见文末「弹层层级基准」 */
  padding: 1.5rem;
  animation: fadeIn 0.25s ease;
}
#Lin_countdown .Lin_modal-content, #Lin_countdown .Lin_theme-picker, #Lin_countdown .Lin_settings-panel {
  scrollbar-width: none;
  -ms-overflow-style: none;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}
#Lin_countdown .Lin_modal-content::-webkit-scrollbar, #Lin_countdown .Lin_theme-picker::-webkit-scrollbar, #Lin_countdown .Lin_settings-panel::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}
#Lin_countdown .Lin_theme-picker {
  max-height: 90vh; overflow-y: auto;
}
#Lin_countdown .Lin_settings-panel {
  background: #fffcf9;
  border-radius: 2rem;
  max-width: 480px; width: 100%;
  padding: 1.5rem;
  box-shadow: 0 30px 50px -12px rgba(40, 25, 10, 0.5);
  animation: slideUp 0.3s cubic-bezier(0.2, 0.9, 0.3, 1);
  max-height: 90vh; overflow-y: auto;
}
#Lin_countdown.Lin_theme-dark .Lin_settings-panel {
  background: #231c17; color: #e8ddd0;
}
#Lin_countdown .Lin_settings-panel h3 {
  font-size: 1.2rem; margin-bottom: 1rem;
  display: flex; align-items: center; gap: 0.5rem;
  font-weight: 550;
}
#Lin_countdown .Lin_setting-item {
  display: flex; justify-content: space-between; align-items: center;
  padding: 0.7rem 0;
  border-bottom: 1px solid rgba(128, 128, 128, 0.15);
  font-size: 0.85rem;
  gap: 1rem;
}
#Lin_countdown .Lin_setting-item:last-of-type {
  border-bottom: none;
}
#Lin_countdown .Lin_setting-label {
  font-weight: 500;
}
#Lin_countdown .Lin_setting-desc {
  font-size: 0.7rem; opacity: 0.7; margin-top: 0.15rem;
}
#Lin_countdown .Lin_setting-control {
  display: flex; align-items: center; gap: 0.4rem;
  flex-shrink: 0;
}
#Lin_countdown .Lin_setting-control select, #Lin_countdown .Lin_setting-control input[type="time"] {
  padding: 0.3rem 0.6rem; border-radius: 20px;
  border: 1px solid rgba(128, 128, 128, 0.3);
  background: rgba(255, 255, 255, 0.6);
  font-size: 0.8rem; cursor: pointer;
  color: inherit;
}
#Lin_countdown.Lin_theme-dark .Lin_setting-control select, #Lin_countdown.Lin_theme-dark .Lin_setting-control input[type="time"] {
  background: rgba(60, 45, 30, 0.6);
}
#Lin_countdown .Lin_toggle-switch {
  position: relative; width: 44px; height: 24px;
  background: rgba(128, 128, 128, 0.4);
  border-radius: 12px; cursor: pointer;
  transition: background 0.3s;
}
#Lin_countdown .Lin_toggle-switch.Lin_on {
  background: #7c9e7c;
}
#Lin_countdown .Lin_toggle-switch::after {
  content: ''; position: absolute; top: 2px; left: 2px;
  width: 20px; height: 20px; border-radius: 50%;
  background: white; transition: transform 0.3s;
  box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}
#Lin_countdown .Lin_toggle-switch.Lin_on::after {
  transform: translateX(20px);
}
#Lin_countdown .Lin_settings-actions {
  display: flex; gap: 0.5rem; justify-content: flex-end;
  margin-top: 1rem;
}
#Lin_countdown .Lin_settings-actions button {
  border: none; padding: 0.5rem 1.2rem; border-radius: 40px;
  font-size: 0.85rem; cursor: pointer; font-weight: 500;
  transition: all 0.2s;
}
#Lin_countdown .Lin_settings-actions .Lin_save {
  background: #a67c52; color: white;
}
#Lin_countdown .Lin_settings-actions .Lin_cancel {
  background: #efe7e0; color: #6b4f37;
}
#Lin_countdown.Lin_theme-dark .Lin_settings-actions .Lin_cancel {
  background: #3d2f24; color: #d4c2b0;
}
#Lin_countdown .Lin_custom-event-festivals {
  margin-top: 1rem;
}
#Lin_countdown .Lin_festival-checkbox-list {
  display: flex; flex-wrap: wrap; gap: 0.4rem;
  margin-top: 0.5rem;
}
#Lin_countdown .Lin_festival-checkbox {
  display: flex; align-items: center; gap: 0.3rem;
  padding: 0.3rem 0.7rem; border-radius: 20px;
  background: rgba(128, 128, 128, 0.1);
  font-size: 0.75rem; cursor: pointer;
  transition: all 0.2s;
}
#Lin_countdown .Lin_festival-checkbox.Lin_selected {
  background: #a67c52; color: white;
}
#Lin_countdown .Lin_festival-checkbox input {
  display: none;
}
#Lin_countdown .Lin_shortcuts-hint {
  font-size: 0.65rem; opacity: 0.5;
  margin-top: 0.5rem; text-align: center;
}
#Lin_countdown kbd {
  display: inline-block; padding: 0.1rem 0.4rem;
  background: rgba(128,128,128,0.15);
  border-radius: 4px; font-size: 0.65rem;
  font-family: monospace;
  border: 1px solid rgba(128,128,128,0.2);
}
#Lin_countdown .Lin_checkin-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
  gap: 0.4rem; margin-top: 0.5rem;
}
#Lin_countdown .Lin_checkin-day {
  aspect-ratio: 1;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  border-radius: 0.6rem;
  background: rgba(128, 128, 128, 0.1);
  font-size: 0.7rem;
  cursor: pointer;
  transition: all 0.2s;
  position: relative;
}
#Lin_countdown .Lin_checkin-day.Lin_done {
  background: #7c9e7c; color: white;
}
#Lin_countdown .Lin_checkin-day.Lin_festival {
  border: 2px solid #a67c52;
}
#Lin_countdown .Lin_checkin-btn {
  border: none; color: #fff; padding: 0.4rem 1rem;
  border-radius: 40px; cursor: pointer;
  font-size: 0.75rem; font-weight: 500;
  /* 【对比度修复】原规则只有 color:#fff 而**没有 background**，
     而各主题只给 classic / dark 补过底色 —— rainbow / sakura / ocean / forest
     四套主题下按钮完全透明，白字落在浅色节日卡上等于隐形。
     这里给出兜底色（配白字 5.63:1），各主题再覆盖成同色系的深色版。 */
  background: #8a5e34;
  transition: all 0.2s;
}
/* 6 套主题的打卡按钮底色集中定义在此（含 classic / dark，原先分散在主题段里，
   新增主题时容易漏）。每套都按「深色底 + 白字」选取，实测最弱 5.13:1。 */
#Lin_countdown.Lin_theme-classic .Lin_checkin-btn { background: #8a5e34; }
#Lin_countdown.Lin_theme-dark    .Lin_checkin-btn { background: #8a5e34; }
#Lin_countdown.Lin_theme-rainbow .Lin_checkin-btn { background: linear-gradient(135deg, #7a5cae, #5c3f8f); }
#Lin_countdown.Lin_theme-sakura  .Lin_checkin-btn { background: #b03a63; }
#Lin_countdown.Lin_theme-ocean   .Lin_checkin-btn { background: #1565c0; }
#Lin_countdown.Lin_theme-forest  .Lin_checkin-btn { background: #2e7d32; }
/* 「已打卡」：绿色是跨主题的完成语义色，不随主题走。
   原内联值 #7c9e7c 配白字仅 2.98:1，压深到 5.01:1。
   必须放在上面 6 条之后 —— 特异性相同（1 id + 2 class），靠顺序取胜。 */
#Lin_countdown .Lin_checkin-btn.Lin_checked {
  background: #4e7a4e;
}
#Lin_countdown .Lin_checkin-btn:hover {
  transform: scale(0.97); opacity: 0.9;
}
@media (min-width: 768px) {
  #Lin_countdown .Lin_calendar-container {
    max-width: 680px; padding: 0.8rem 1rem;
  }
  #Lin_countdown .Lin_calendar-grid {
    gap: 0.2rem;
  }
  #Lin_countdown .Lin_calendar-day {
    border-radius: 0.5rem;
  }
  #Lin_countdown .Lin_solar-day-text {
    font-size: 0.82rem;
  }
  #Lin_countdown .Lin_lunar-day-text {
    font-size: 0.58rem;
  }
  #Lin_countdown .Lin_weekday-header {
    font-size: 0.72rem; padding: 0.15rem 0;
  }
  #Lin_countdown .Lin_calendar-header {
    font-size: 1.05rem; margin-bottom: 0.5rem;
  }
}
@media (max-width: 480px) {
  #Lin_countdown .Lin_grid {
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 150px), 1fr)); gap: 0.6rem;
  }
  #Lin_countdown .Lin_festival-card {
    padding: 0.65rem 0.7rem 0.75rem; border-radius: 1.1rem;
  }
  #Lin_countdown .Lin_days-number {
    font-size: 1.5rem;
  }
  #Lin_countdown .Lin_date-text {
    font-size: 0.58rem; padding: 0.12rem 0.45rem;
  }
  #Lin_countdown .Lin_filter-btn {
    font-size: 0.62rem; padding: 0.28rem 0.65rem;
  }
  #Lin_countdown .Lin_tab-btn {
    font-size: 0.65rem; padding: 0.3rem 0.7rem;
  }
  #Lin_countdown .Lin_today-badge {
    font-size: 0.62rem; padding: 0.2rem 0.65rem;
  }
  #Lin_countdown .Lin_modal-content {
    padding: 1.1rem 0.9rem 1.3rem; border-radius: 1.4rem;
  }
  #Lin_countdown .Lin_countdown-units {
    gap: 0.1rem;
  }
  #Lin_countdown .Lin_unit {
    min-width: 30px;
  }
  #Lin_countdown .Lin_unit-value {
    font-size: 1.25rem;
  }
  #Lin_countdown .Lin_separator {
    font-size: 0.9rem;
  }
  #Lin_countdown .Lin_custom-item {
    padding: 0.6rem 0.7rem;
  }
  #Lin_countdown .Lin_calendar-container {
    padding: 0.5rem 0.6rem; border-radius: 1rem;
  }
  #Lin_countdown .Lin_calendar-day {
    border-radius: 0.4rem;
  }
  #Lin_countdown .Lin_solar-day-text {
    font-size: 0.7rem;
  }
  #Lin_countdown .Lin_lunar-day-text {
    font-size: 0.48rem;
  }
  #Lin_countdown .Lin_theme-picker {
    padding: 1.2rem 1rem;
  }
  #Lin_countdown .Lin_theme-grid {
    grid-template-columns: repeat(2, 1fr); gap: 0.6rem;
  }
  #Lin_countdown .Lin_culture-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 360px) {
  #Lin_countdown .Lin_grid {
    grid-template-columns: 1fr;
  }
  #Lin_countdown .Lin_festival-name {
    font-size: 0.95rem;
  }
  #Lin_countdown .Lin_lunar-day-text {
    font-size: 0.44rem;
  }
  #Lin_countdown .Lin_solar-day-text {
    font-size: 0.65rem;
  }
}
#Lin_countdown .Lin_tz-bar {
  display: flex; flex-wrap: wrap; gap: 0.4rem 1rem;
  align-items: center; justify-content: center;
  padding: 0.5rem 0.8rem; margin-bottom: 0.7rem;
  border-radius: 0.7rem; font-size: 0.76rem;
  background: rgba(0, 0, 0, 0.04);
}
#Lin_countdown.Lin_theme-dark .Lin_tz-bar {
  background: rgba(255, 255, 255, 0.06);
}
#Lin_countdown .Lin_tz-item {
  opacity: 0.85;
}
#Lin_countdown .Lin_tz-warn {
  color: #b06a2c; font-size: 0.72rem;
}
#Lin_countdown.Lin_theme-dark .Lin_tz-warn {
  color: #d9a05b;
}
#Lin_countdown .Lin_current-term-card {
  border-radius: 1rem; padding: 0.85rem 1rem; margin-bottom: 0.9rem;
  background: linear-gradient(135deg, #eef6ee, #dcecdc);
  border: 1px solid #cfe3cf; cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
#Lin_countdown.Lin_theme-dark .Lin_current-term-card {
  background: linear-gradient(135deg, #253024, #1c261c); border-color: #3b4c3a;
}
#Lin_countdown .Lin_current-term-card:hover {
  transform: translateY(-1px); box-shadow: 0 6px 18px -8px rgba(90, 138, 90, 0.5);
}
#Lin_countdown .Lin_ct-head {
  display: flex; justify-content: space-between; align-items: baseline; gap: 0.5rem; flex-wrap: wrap;
}
#Lin_countdown .Lin_ct-name {
  font-weight: 600; font-size: 0.95rem; color: #3f6b3f;
}
#Lin_countdown.Lin_theme-dark .Lin_ct-name {
  color: #a8d8a8;
}
#Lin_countdown .Lin_ct-next {
  font-size: 0.74rem; opacity: 0.7;
}
#Lin_countdown .Lin_ct-desc {
  font-size: 0.78rem; opacity: 0.72; margin-top: 0.2rem;
}
#Lin_countdown .Lin_ct-progress {
  height: 6px; border-radius: 999px; background: rgba(90, 138, 90, 0.18); margin: 0.55rem 0 0.35rem; overflow: hidden;
}
#Lin_countdown .Lin_ct-progress-fill {
  height: 100%; border-radius: 999px; background: linear-gradient(90deg, #7c9e7c, #5a8a5a); transition: width 0.6s ease;
}
#Lin_countdown .Lin_ct-meta {
  display: flex; justify-content: space-between; font-size: 0.7rem; opacity: 0.65;
}
#Lin_countdown .Lin_today-festival-bar {
  text-align: center; padding: 0.55rem 0.8rem; margin-bottom: 0.9rem;
  border-radius: 0.7rem; font-size: 0.82rem; cursor: pointer;
  background: linear-gradient(90deg, #fde8d0, #fbd9b8);
  color: #8b5e3c; border: 1px solid #f0cfae;
}
#Lin_countdown.Lin_theme-dark .Lin_today-festival-bar {
  background: linear-gradient(90deg, #3d2f24, #33282055); color: #e0c49a; border-color: #5a4433;
}
#Lin_countdown .Lin_life-grid {
  display: grid; grid-template-columns: 1fr; gap: 0.5rem; margin-top: 0.6rem;
}
#Lin_countdown .Lin_life-item {
  background: rgba(124, 158, 124, 0.1); border-radius: 0.7rem; padding: 0.6rem 0.75rem; font-size: 0.8rem;
}
#Lin_countdown.Lin_theme-dark .Lin_life-item {
  background: rgba(124, 158, 124, 0.14);
}
#Lin_countdown .Lin_life-label {
  font-weight: 600; margin-bottom: 0.2rem; color: #4a7a4a; font-size: 0.78rem;
}
#Lin_countdown.Lin_theme-dark .Lin_life-label {
  color: #9ecf9e;
}
#Lin_countdown .Lin_calendar-mode-bar {
  display: flex; gap: 0.4rem; justify-content: center; margin-bottom: 0.7rem;
}
#Lin_countdown .Lin_mode-btn {
  padding: 0.3rem 0.85rem; border-radius: 999px; border: none; cursor: pointer;
  font-size: 0.78rem; background: rgba(0, 0, 0, 0.06); color: inherit;
  transition: all 0.2s ease;
}
#Lin_countdown.Lin_theme-dark .Lin_mode-btn {
  background: rgba(255, 255, 255, 0.08);
}
#Lin_countdown .Lin_mode-btn.Lin_active {
  background: #a67c52; color: #fff;
}
#Lin_countdown.Lin_theme-dark .Lin_mode-btn.Lin_active {
  background: #a67c52; color: #1a1512;
}
#Lin_countdown .Lin_week-grid {
  display: grid; grid-template-columns: repeat(7, 1fr); gap: 0.35rem;
}
#Lin_countdown .Lin_week-day {
  border-radius: 0.7rem; padding: 0.5rem 0.25rem; text-align: center;
  background: rgba(0, 0, 0, 0.03); cursor: pointer; min-height: 5.6rem;
  display: flex; flex-direction: column; align-items: center; gap: 0.15rem;
  transition: background 0.2s ease;
}
#Lin_countdown.Lin_theme-dark .Lin_week-day {
  background: rgba(255, 255, 255, 0.05);
}
#Lin_countdown .Lin_week-day:hover {
  background: rgba(166, 124, 82, 0.15);
}
#Lin_countdown .Lin_week-day.Lin_is-today {
  outline: 2px solid #a67c52;
}
#Lin_countdown .Lin_week-day .Lin_wd-num {
  font-size: 1rem; font-weight: 600;
}
#Lin_countdown .Lin_week-day .Lin_wd-md {
  font-size: 0.6rem; opacity: 0.6;
}
#Lin_countdown .Lin_week-day .Lin_wd-sub {
  font-size: 0.6rem; line-height: 1.15; margin-top: 0.15rem;
}
#Lin_countdown .Lin_week-day .Lin_wd-sub.Lin_wd-festival {
  color: #b07347; font-weight: 600;
}
#Lin_countdown .Lin_week-day .Lin_wd-sub.Lin_wd-term {
  color: #5a8a5a; font-weight: 600;
}
#Lin_countdown.Lin_theme-dark .Lin_week-day .Lin_wd-sub.Lin_wd-festival {
  color: #e0b184;
}
#Lin_countdown.Lin_theme-dark .Lin_week-day .Lin_wd-sub.Lin_wd-term {
  color: #9ecf9e;
}
#Lin_countdown .Lin_year-grid {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.6rem;
}
@media (min-width: 620px) {
  #Lin_countdown .Lin_year-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
#Lin_countdown .Lin_year-month {
  border-radius: 0.8rem; padding: 0.6rem 0.7rem; background: rgba(0, 0, 0, 0.03); cursor: pointer;
}
#Lin_countdown.Lin_theme-dark .Lin_year-month {
  background: rgba(255, 255, 255, 0.05);
}
#Lin_countdown .Lin_year-month:hover {
  background: rgba(166, 124, 82, 0.12);
}
#Lin_countdown .Lin_ym-title {
  font-size: 0.82rem; font-weight: 600; margin-bottom: 0.35rem;
}
#Lin_countdown .Lin_ym-item {
  font-size: 0.72rem; line-height: 1.5; display: flex; gap: 0.35rem;
}
#Lin_countdown .Lin_ym-item .Lin_ym-day {
  opacity: 0.55; min-width: 1.6rem;
}
#Lin_countdown .Lin_ym-item.Lin_k-festival {
  color: #b07347;
}
#Lin_countdown .Lin_ym-item.Lin_k-term {
  color: #5a8a5a;
}
#Lin_countdown.Lin_theme-dark .Lin_ym-item.Lin_k-festival {
  color: #e0b184;
}
#Lin_countdown.Lin_theme-dark .Lin_ym-item.Lin_k-term {
  color: #9ecf9e;
}
#Lin_countdown .Lin_ym-empty {
  font-size: 0.7rem; opacity: 0.4;
}
#Lin_countdown .Lin_checkin-stats {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.5rem; margin-bottom: 0.9rem;
}
#Lin_countdown .Lin_cs-item {
  text-align: center; padding: 0.6rem 0.3rem; border-radius: 0.8rem; background: rgba(0, 0, 0, 0.035);
}
#Lin_countdown.Lin_theme-dark .Lin_cs-item {
  background: rgba(255, 255, 255, 0.06);
}
#Lin_countdown .Lin_cs-value {
  font-size: 1.15rem; font-weight: 600;
}
#Lin_countdown .Lin_cs-label {
  font-size: 0.68rem; opacity: 0.65; margin-top: 0.1rem;
}
#Lin_countdown .Lin_checkin-stats-bar {
  height: 8px; border-radius: 999px; background: rgba(0, 0, 0, 0.07); overflow: hidden; margin-bottom: 1rem;
}
#Lin_countdown.Lin_theme-dark .Lin_checkin-stats-bar {
  background: rgba(255, 255, 255, 0.1);
}
#Lin_countdown .Lin_checkin-stats-fill {
  height: 100%; background: linear-gradient(90deg, #7c9e7c, #5a8a5a); transition: width 0.5s ease;
}
#Lin_countdown .Lin_qr-box {
  /* position 原本声明在开头的层级基准段里，现移回组件定义处（层级已迁至文末） */
  position: relative;
  padding: 1rem; background: #fff; border-radius: 1rem;
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 200px; min-height: 200px; margin: 0.4rem 0;
}
#Lin_countdown .Lin_qr-img {
  display: block; width: 240px; height: 240px; max-width: 100%; image-rendering: pixelated;
}
#Lin_countdown .Lin_qr-hint {
  font-size: 0.8rem; color: #8a7a6a; line-height: 1.7;
}
#Lin_countdown .Lin_qr-hint-err {
  color: #c0392b;
}
#Lin_countdown .Lin_qr-hint-err span {
  font-size: 0.72rem; color: #a08070;
}
#Lin_countdown .Lin_qr-sub {
  font-size: 0.75rem; opacity: 0.7; margin-top: 0.6rem; word-break: break-all;
}
#Lin_countdown .Lin_geo-weather-item {
  cursor: pointer;
  background: linear-gradient(135deg, rgba(135, 206, 250, 0.18), rgba(255, 200, 150, 0.18));
  border: 1px solid rgba(135, 206, 250, 0.35);
  transition: transform 0.2s;
}
#Lin_countdown .Lin_geo-weather-item:hover {
  transform: translateY(-1px);
}
#Lin_countdown.Lin_theme-dark .Lin_geo-weather-item {
  background: linear-gradient(135deg, rgba(80, 130, 180, 0.25), rgba(150, 100, 60, 0.25));
  border-color: rgba(120, 170, 220, 0.35);
}
#Lin_countdown .Lin_geo-weather-temp {
  font-weight: 600; color: #4a7ab5;
}
#Lin_countdown.Lin_theme-dark .Lin_geo-weather-temp {
  color: #9ec8f0;
}
#Lin_countdown .Lin_geo-source-badge {
  font-size: 0.58rem; padding: 0.05rem 0.35rem; border-radius: 999px;
  background: rgba(124, 158, 124, 0.18); color: #5a8a5a;
  margin-left: 0.2rem;
}
#Lin_countdown.Lin_theme-dark .Lin_geo-source-badge {
  background: rgba(124, 158, 124, 0.25); color: #9ecf9e;
}
#Lin_countdown .Lin_weather-header {
  display: flex; justify-content: space-between; align-items: center;
  gap: 0.8rem; flex-wrap: wrap; margin-bottom: 0.9rem;
}
#Lin_countdown .Lin_weather-loc {
  display: flex; align-items: center; gap: 0.6rem;
}
#Lin_countdown .Lin_weather-loc-icon {
  font-size: 1.6rem;
}
#Lin_countdown .Lin_weather-loc-name {
  font-size: 1.05rem; font-weight: 600;
}
#Lin_countdown .Lin_weather-loc-region {
  font-size: 0.72rem; font-weight: 400; opacity: 0.6;
  margin-left: 0.35rem;
}
#Lin_countdown .Lin_weather-loc-coord {
  font-size: 0.72rem; opacity: 0.55; margin-top: 0.15rem;
}
#Lin_countdown .Lin_geo-tip {
  font-size: 0.72rem; opacity: 0.7; margin-bottom: 0.8rem;
  padding: 0.45rem 0.7rem; border-radius: 0.6rem;
  background: rgba(135, 206, 250, 0.12);
  border: 1px solid rgba(135, 206, 250, 0.25);
  line-height: 1.5;
}
#Lin_countdown.Lin_theme-dark .Lin_geo-tip {
  background: rgba(80, 130, 180, 0.18);
  border-color: rgba(120, 170, 220, 0.28);
}
#Lin_countdown .Lin_geo-tip button {
  background: none; border: none; color: #4a7ab5; font-weight: 600;
  cursor: pointer; font-size: 0.72rem; padding: 0 0.2rem;
  text-decoration: underline;
}
#Lin_countdown.Lin_theme-dark .Lin_geo-tip button {
  color: #9ec8f0;
}
#Lin_countdown .Lin_current-weather-card {
  border-radius: 1.2rem; padding: 1.1rem 1.2rem; margin-bottom: 1rem;
  background: linear-gradient(135deg, #e8f4ff, #d4e9ff);
  border: 1px solid #c5e0f7;
  display: flex; flex-direction: column; gap: 1rem;
}
#Lin_countdown.Lin_theme-dark .Lin_current-weather-card {
  background: linear-gradient(135deg, #1f2a35, #16202a);
  border-color: #2f4256;
}
#Lin_countdown .Lin_cw-main {
  display: flex; align-items: center; gap: 1rem; flex-wrap: wrap;
}
#Lin_countdown .Lin_cw-icon {
  font-size: 3rem; line-height: 1;
}
#Lin_countdown .Lin_cw-temp {
  font-size: 2.6rem; font-weight: 600; line-height: 1;
}
#Lin_countdown .Lin_cw-unit {
  font-size: 1.1rem; font-weight: 400; opacity: 0.6; margin-left: 0.15rem;
}
#Lin_countdown .Lin_cw-desc {
  font-size: 1rem; opacity: 0.8;
}
#Lin_countdown .Lin_cw-meta {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
  gap: 0.5rem;
}
#Lin_countdown .Lin_cw-meta-item {
  display: flex; flex-direction: column; gap: 0.1rem;
  padding: 0.45rem 0.6rem; border-radius: 0.6rem;
  background: rgba(255, 255, 255, 0.55); font-size: 0.72rem;
}
#Lin_countdown.Lin_theme-dark .Lin_cw-meta-item {
  background: rgba(255, 255, 255, 0.07);
}
#Lin_countdown .Lin_cw-meta-item span {
  opacity: 0.6;
}
#Lin_countdown .Lin_cw-meta-item strong {
  font-size: 0.9rem;
}
#Lin_countdown .Lin_forecast-section {
  margin-top: 0.5rem;
}
#Lin_countdown .Lin_forecast-title {
  font-size: 0.9rem; font-weight: 600; margin-bottom: 0.6rem;
  display: flex; align-items: center; gap: 0.4rem;
}
#Lin_countdown .Lin_forecast-list {
  display: flex; flex-direction: column; gap: 0.35rem;
}
#Lin_countdown .Lin_forecast-row {
  display: grid;
  grid-template-columns: 62px 32px 1fr auto auto auto;
  align-items: center; gap: 0.5rem;
  padding: 0.5rem 0.7rem; border-radius: 0.7rem;
  background: rgba(0, 0, 0, 0.03); font-size: 0.78rem;
  transition: background 0.2s;
}
#Lin_countdown.Lin_theme-dark .Lin_forecast-row {
  background: rgba(255, 255, 255, 0.05);
}
#Lin_countdown .Lin_forecast-row:hover {
  background: rgba(135, 206, 250, 0.15);
}
#Lin_countdown .Lin_forecast-today {
  background: rgba(166, 124, 82, 0.15) !important;
  outline: 1px solid rgba(166, 124, 82, 0.4);
}
#Lin_countdown .Lin_forecast-festival {
  background: rgba(236, 64, 122, 0.12) !important;
  outline: 1px solid rgba(236, 64, 122, 0.3);
}
#Lin_countdown .Lin_fc-date {
  text-align: center;
}
#Lin_countdown .Lin_fc-weekday {
  font-weight: 600; font-size: 0.8rem;
}
#Lin_countdown .Lin_fc-md {
  font-size: 0.65rem; opacity: 0.6;
}
#Lin_countdown .Lin_fc-icon {
  font-size: 1.4rem; text-align: center;
}
#Lin_countdown .Lin_fc-desc {
  font-size: 0.75rem; opacity: 0.85; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
#Lin_countdown .Lin_fc-desc .Lin_fc-festival-tag {
  display: inline-block; margin-left: 0.35rem;
  font-size: 0.62rem; padding: 0.05rem 0.35rem;
  border-radius: 999px; background: #ec407a; color: #fff;
  font-weight: 600;
}
#Lin_countdown .Lin_fc-temp {
  display: flex; gap: 0.35rem; align-items: baseline; white-space: nowrap;
}
#Lin_countdown .Lin_fc-temp-max {
  font-weight: 600; font-size: 0.95rem;
}
#Lin_countdown .Lin_fc-temp-min {
  opacity: 0.55; font-size: 0.85rem;
}
#Lin_countdown .Lin_fc-extra {
  display: flex; gap: 0.4rem; font-size: 0.68rem; opacity: 0.8; white-space: nowrap;
}
#Lin_countdown .Lin_fc-precip {
  color: #4a90d9;
}
#Lin_countdown .Lin_fc-uv {
  color: #d99b4a;
}
#Lin_countdown .Lin_fc-aqi {
  color: #7c9e7c;
}
#Lin_countdown .Lin_fc-sun {
  display: flex; flex-direction: column; font-size: 0.62rem; opacity: 0.65; line-height: 1.3; white-space: nowrap;
}
#Lin_countdown .Lin_forecast-foot {
  text-align: center; font-size: 0.68rem; opacity: 0.5; margin-top: 0.8rem;
}
@media (max-width: 600px) {
  #Lin_countdown .Lin_forecast-row {
    grid-template-columns: 52px 28px 1fr auto;
    grid-template-areas:
    "date icon desc temp"
    "extra extra extra sun";
    row-gap: 0.3rem;
  }
  #Lin_countdown .Lin_fc-date {
    grid-area: date;
  }
  #Lin_countdown .Lin_fc-icon {
    grid-area: icon;
  }
  #Lin_countdown .Lin_fc-desc {
    grid-area: desc;
  }
  #Lin_countdown .Lin_fc-temp {
    grid-area: temp;
  }
  #Lin_countdown .Lin_fc-extra {
    grid-area: extra; flex-wrap: wrap;
  }
  #Lin_countdown .Lin_fc-sun {
    grid-area: sun; flex-direction: row; gap: 0.6rem; justify-content: flex-end;
  }
}
#Lin_countdown .Lin_weather-tips {
  border-radius: 1rem; padding: 0.8rem 1rem; margin-bottom: 1rem;
  background: linear-gradient(135deg, #fff6e0, #ffedc4);
  border: 1px solid #f5d99a; font-size: 0.82rem; line-height: 1.7;
}
#Lin_countdown.Lin_theme-dark .Lin_weather-tips {
  background: linear-gradient(135deg, #2e2418, #2a2014);
  border-color: #5a4426;
}
#Lin_countdown .Lin_weather-tips .Lin_wt-item {
  display: flex; gap: 0.4rem; align-items: flex-start;
}
#Lin_countdown .Lin_weather-tips .Lin_wt-icon {
  flex-shrink: 0;
}
#Lin_countdown .Lin_aqi-card {
  border-radius: 1rem; padding: 0.9rem 1rem; margin-bottom: 1rem;
  background: rgba(124, 158, 124, 0.1);
  border: 1px solid rgba(124, 158, 124, 0.25);
}
#Lin_countdown.Lin_theme-dark .Lin_aqi-card {
  background: rgba(124, 158, 124, 0.15);
  border-color: rgba(124, 158, 124, 0.35);
}
#Lin_countdown .Lin_aqi-head {
  display: flex; justify-content: space-between; align-items: baseline; gap: 0.5rem; flex-wrap: wrap;
}
#Lin_countdown .Lin_aqi-title {
  font-weight: 600; font-size: 0.88rem;
}
#Lin_countdown .Lin_aqi-value {
  font-size: 1.6rem; font-weight: 700;
}
#Lin_countdown .Lin_aqi-level {
  font-size: 0.78rem; margin-top: 0.15rem;
}
#Lin_countdown .Lin_aqi-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(90px, 1fr));
  gap: 0.4rem; margin-top: 0.6rem;
}
#Lin_countdown .Lin_aqi-item {
  font-size: 0.7rem; opacity: 0.8;
}
#Lin_countdown .Lin_aqi-item strong {
  display: block; font-size: 0.85rem; opacity: 1;
}
#Lin_countdown .Lin_city-picker-bar {
  display: flex; gap: 0.5rem; margin-bottom: 0.7rem; flex-wrap: wrap;
  align-items: center;
}
#Lin_countdown .Lin_city-picker-bar input {
  flex: 1; min-width: 160px;
  padding: 0.4rem 0.8rem; border-radius: 40px;
  border: 1px solid; font-size: 0.8rem; outline: none;
  background: rgba(255,255,255,0.7);
}
#Lin_countdown.Lin_theme-dark .Lin_city-picker-bar input {
  background: rgba(60,45,30,0.6); color: #e8ddd0; border-color: #4a3828;
}
#Lin_countdown .Lin_city-results {
  display: flex; flex-wrap: wrap; gap: 0.35rem; margin-bottom: 0.7rem;
}
#Lin_countdown .Lin_city-result-item {
  padding: 0.25rem 0.7rem; border-radius: 999px;
  background: rgba(166, 124, 82, 0.15); color: #8b5e3c;
  font-size: 0.75rem; cursor: pointer;
  border: 1px solid rgba(166, 124, 82, 0.3);
  transition: all 0.2s;
}
#Lin_countdown.Lin_theme-dark .Lin_city-result-item {
  background: rgba(166, 124, 82, 0.25); color: #e0c49a;
}
#Lin_countdown .Lin_city-result-item:hover {
  background: rgba(166, 124, 82, 0.3);
}
#Lin_countdown .Lin_city-current-hint {
  font-size: 0.72rem; opacity: 0.65; margin-bottom: 0.5rem;
}
#Lin_countdown .Lin_todo-section {
  margin-top: 0.8rem; padding-top: 0.8rem;
  border-top: 1px dashed rgba(128,128,128,0.3);
}
#Lin_countdown .Lin_todo-title {
  font-size: 0.85rem; font-weight: 600; margin-bottom: 0.5rem;
}
#Lin_countdown .Lin_todo-input-row {
  display: flex; gap: 0.4rem; margin-bottom: 0.5rem;
}
#Lin_countdown .Lin_todo-input-row input {
  flex: 1; padding: 0.4rem 0.7rem; border-radius: 40px;
  border: 1px solid rgba(128,128,128,0.3); font-size: 0.8rem; outline: none;
  background: rgba(255,255,255,0.7);
}
#Lin_countdown.Lin_theme-dark .Lin_todo-input-row input {
  background: rgba(60,45,30,0.6); color: #e8ddd0; border-color: #4a3828;
}
#Lin_countdown .Lin_todo-list {
  display: flex; flex-direction: column; gap: 0.3rem;
}
#Lin_countdown .Lin_todo-item {
  display: flex; align-items: center; gap: 0.5rem;
  padding: 0.4rem 0.6rem; border-radius: 0.6rem;
  background: rgba(0,0,0,0.03); font-size: 0.8rem;
}
#Lin_countdown.Lin_theme-dark .Lin_todo-item {
  background: rgba(255,255,255,0.05);
}
#Lin_countdown .Lin_todo-item.Lin_done {
  opacity: 0.5; text-decoration: line-through;
}
#Lin_countdown .Lin_todo-item input[type="checkbox"] {
  width: auto; cursor: pointer;
}
#Lin_countdown .Lin_todo-item .Lin_todo-text {
  flex: 1; word-break: break-all;
  /* 最多两行，超出用省略号。
     待办允许 100 字（导入路径），全量铺开会把整列撑得很高、挤掉后面的条目。
     line-clamp 需要同时给 display:-webkit-box 才生效；兼容层不会覆盖这两个值。 */
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
#Lin_countdown .Lin_todo-item .Lin_todo-del {
  background: none; border: none; color: #c99; cursor: pointer;
  padding: 0.1rem 0.3rem; border-radius: 50%;
}
/* 待办勾选框必须自绘。
   兼容层（第一部分）把所有 input 的 appearance 归零做「裸元素中和」，
   不显式重绘的话 checkbox 会退化成一个**隐形方块** —— 只剩点击区域，
   原先日历里的「这一天待办」就是这个状态。
   勾号用 currentColor 描边，6 套主题自动跟随文字色。 */
#Lin_countdown .Lin_todo-item input[type="checkbox"] {
  appearance: none; -webkit-appearance: none;
  flex: none; width: 1.05rem; height: 1.05rem; margin: 0;
  border: 1.6px solid currentColor; border-radius: 0.32rem;
  background: none; opacity: 0.5;
  position: relative; cursor: pointer; transition: opacity 0.2s, border-color 0.2s;
}
#Lin_countdown .Lin_todo-item input[type="checkbox"]:checked {
  opacity: 1; border-color: currentColor;
}
#Lin_countdown .Lin_todo-item input[type="checkbox"]:checked::after {
  content: ''; position: absolute; left: 50%; top: 46%;
  width: 0.3rem; height: 0.55rem;
  border: solid currentColor; border-width: 0 1.8px 1.8px 0;
  transform: translate(-50%, -56%) rotate(45deg);
}

/* ===== 通用待办面板（自定义页）===== */
#Lin_countdown .Lin_todo-panel { margin-top: 1rem; }
#Lin_countdown .Lin_todo-add-row {
  display: flex; flex-wrap: wrap; align-items: center;
  gap: 0.5rem; margin-bottom: 0.6rem;
}
#Lin_countdown .Lin_todo-add-row > input:first-child { flex: 1 1 160px; min-width: 0; }
#Lin_countdown .Lin_todo-date-input { flex: 0 0 auto; width: auto; min-width: 9.5rem; }
#Lin_countdown .Lin_todo-add-row > button { flex: none; }
#Lin_countdown .Lin_todo-date {
  flex: none; font-size: 0.72em; opacity: 0.7; white-space: nowrap;
}
#Lin_countdown .Lin_todo-date.Lin_overdue { color: #d9534f; opacity: 0.95; }
#Lin_countdown .Lin_todo-empty {
  font-size: 0.78rem; opacity: 0.6; line-height: 1.7; padding: 0.15rem 0;
}
#Lin_countdown .Lin_todo-foot {
  display: flex; align-items: center; justify-content: space-between;
  gap: 0.5rem; margin-top: 0.55rem;
  font-size: 0.72rem; opacity: 0.7;
}
#Lin_countdown .Lin_todo-clear {
  background: none; border: none; cursor: pointer;
  font-size: 0.95em; opacity: 0.9; text-decoration: underline;
  padding: 0.1rem 0.2rem;
}
#Lin_countdown .Lin_todo-clear:hover { opacity: 1; }
#Lin_countdown .Lin_birthday-section {
  margin-top: 0.8rem; padding-top: 0.8rem;
  border-top: 1px dashed rgba(128,128,128,0.3);
}
#Lin_countdown .Lin_birthday-title {
  font-size: 0.85rem; font-weight: 600; margin-bottom: 0.5rem;
  display: flex; align-items: center; gap: 0.35rem;
}
#Lin_countdown .Lin_birthday-title-icon { font-size: 1.05em; }

/* ===== 空状态：三层结构（图标 / 标题 / 说明）=====
   原实现是一个 <br> 把两段文字硬分开，两段之间没有间距层次，
   说明文字靠内联 style 缩到 0.8em，与主文案贴在一起。
   用 :has 限定只作用于新结构，不影响其他页面仍在用的旧写法。 */
#Lin_countdown .Lin_empty-state:has(.Lin_empty-icon) {
  display: flex; flex-direction: column; align-items: center;
  padding: clamp(1.6rem, 4vw, 2.4rem) 1rem;
  border-color: rgba(128, 128, 128, 0.3);
}
#Lin_countdown .Lin_empty-icon {
  font-size: clamp(1.8rem, 4.5vw, 2.4rem); line-height: 1; opacity: 0.55;
}
#Lin_countdown .Lin_empty-title { font-weight: 600; margin-top: 0.55rem; }
#Lin_countdown .Lin_empty-desc {
  font-size: 0.82em; opacity: 0.65; margin-top: 0.35rem; line-height: 1.6;
}
#Lin_countdown .Lin_poem-box {
  border-radius: 1rem; padding: 0.9rem 1.1rem; margin-bottom: 0.9rem;
  background: linear-gradient(135deg, #f5efe6, #ede0cf);
  border: 1px solid #e0d0b8;
  font-size: 0.85rem; line-height: 1.8; text-align: center;
  font-style: italic;
}
#Lin_countdown.Lin_theme-dark .Lin_poem-box {
  background: linear-gradient(135deg, #2a2019, #241c14);
  border-color: #4a3828;
}
#Lin_countdown .Lin_poem-title {
  font-size: 0.72rem; opacity: 0.6; margin-bottom: 0.35rem; font-style: normal; letter-spacing: 1px;
}
#Lin_countdown .Lin_poem-author {
  font-size: 0.72rem; opacity: 0.6; margin-top: 0.4rem; font-style: normal;
}

/* ===== 首页「假期额度 + 节日壁纸卡 + 今日诗词」布局 =====
   移动端（默认）：保持原有上下堆叠与间距，视觉与原设计完全一致。
   桌面端（≥768px）：并排等高。列数由容器宽度自适应 —— 够宽三列，
   变窄自动降为两列，元素减少时自动拉伸填满，不留空列。 */
#Lin_countdown .Lin_home-duo {
  display: block;
  /* 让下面的 @container 能按「容器实际宽度」（而非视口）决定是否处理落单卡片 */
  container-type: inline-size;
}
#Lin_countdown .Lin_home-duo > .Lin_holiday-quota,
#Lin_countdown .Lin_home-duo > .Lin_festival-wallpaper,
#Lin_countdown .Lin_home-duo > .Lin_poem-box {
  margin-bottom: 0.9rem;
}
@media (min-width: 768px) {
  #Lin_countdown .Lin_home-duo {
    display: grid;
    /* auto-fit：轨道数随容器宽度浮动；minmax 下限 260px 保证每列内容不挤 */
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    align-items: stretch;   /* 同行等高 */
    gap: 0.9rem;
    margin-bottom: 0.9rem;  /* 与下方「今日宜忌」的间距 */
  }
  /* 间距已由容器的 gap 给出，子元素自身下边距必须归零，否则会叠加 */
  #Lin_countdown .Lin_home-duo > .Lin_holiday-quota,
  #Lin_countdown .Lin_home-duo > .Lin_festival-wallpaper,
  #Lin_countdown .Lin_home-duo > .Lin_poem-box {
    margin-bottom: 0;
  }
  /* 被拉伸变高后让内容垂直居中，三张卡观感一致 */
  #Lin_countdown .Lin_home-duo > .Lin_holiday-quota,
  #Lin_countdown .Lin_home-duo > .Lin_poem-box {
    display: flex; flex-direction: column; justify-content: center;
  }
  /* 兜底：只剩一张卡时跨满整行（auto-fit 通常已自动拉伸，此处防浏览器差异） */
  #Lin_countdown .Lin_home-duo > :only-child {
    grid-column: 1 / -1;
  }
}

/* 容器只放得下两列、却有奇数张卡时（3 张 → 上排 2 张、下排落单 1 张），
   让落单的那张跨满整行，避免右侧留下大片空白。
   宽度阈值按 minmax(260px) + gap 14.4px 推算：
     3 列需 ≥ 260×3 + 14.4×2 = 808.8px
     2 列需 ≥ 260×2 + 14.4   = 534.4px
   故 534~808px 区间正是「两列 + 落单」的场景。
   用容器查询而非媒体查询：插件容器的宽度由主题容器与后台 maxWidth 决定，
   与视口宽度不是线性关系。浏览器不支持 @container 时该规则被忽略，
   退化为「落单卡片靠左」，不影响功能。 */
@container (min-width: 534px) and (max-width: 808px) {
  #Lin_countdown .Lin_home-duo > :last-child:nth-child(odd) {
    grid-column: 1 / -1;
  }
}
#Lin_countdown .Lin_yi-ji-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem;
  margin-bottom: 0.9rem;
}
#Lin_countdown .Lin_yi-ji-item {
  border-radius: 0.8rem; padding: 0.6rem 0.8rem;
  font-size: 0.75rem; line-height: 1.6;
}
#Lin_countdown .Lin_yi-ji-item.Lin_yi {
  background: rgba(124, 158, 124, 0.15);
}
#Lin_countdown .Lin_yi-ji-item.Lin_ji {
  background: rgba(200, 100, 100, 0.12);
}
#Lin_countdown .Lin_yi-ji-label {
  font-weight: 600; margin-bottom: 0.2rem; font-size: 0.78rem;
}
#Lin_countdown .Lin_blessing-picker {
  margin-bottom: 0.9rem;
}
#Lin_countdown .Lin_blessing-picker-title {
  font-size: 0.78rem; font-weight: 600; margin-bottom: 0.4rem;
  display: flex; justify-content: space-between; align-items: center;
}
#Lin_countdown .Lin_blessing-picker-title button {
  background: none; border: none; color: #a67c52; font-size: 0.72rem;
  cursor: pointer; text-decoration: underline;
}
#Lin_countdown .Lin_blessing-options {
  display: flex; flex-direction: column; gap: 0.35rem;
}
#Lin_countdown .Lin_blessing-option {
  padding: 0.45rem 0.7rem; border-radius: 0.6rem;
  background: rgba(0,0,0,0.03); font-size: 0.78rem;
  cursor: pointer; transition: all 0.2s;
  display: flex; justify-content: space-between; align-items: center;
  gap: 0.5rem;
}
#Lin_countdown.Lin_theme-dark .Lin_blessing-option {
  background: rgba(255,255,255,0.05);
}
#Lin_countdown .Lin_blessing-option:hover {
  background: rgba(166, 124, 82, 0.15);
}
#Lin_countdown .Lin_blessing-option .Lin_bo-text {
  flex: 1;
}
#Lin_countdown .Lin_blessing-option .Lin_bo-style {
  font-size: 0.65rem; opacity: 0.6; flex-shrink: 0;
}
#Lin_countdown .Lin_copy-today-bar {
  text-align: center; padding: 0.5rem 0.8rem; margin-bottom: 0.8rem;
  border-radius: 0.7rem; font-size: 0.78rem;
  background: linear-gradient(90deg, #e0f0ff, #d0e8ff);
  color: #1565c0; border: 1px solid #b3d9ff;
  cursor: pointer; transition: all 0.2s;
  display: flex; align-items: center; justify-content: center; gap: 0.4rem;
}
#Lin_countdown .Lin_copy-today-bar:hover {
  transform: translateY(-1px);
}
#Lin_countdown.Lin_theme-dark .Lin_copy-today-bar {
  background: linear-gradient(90deg, #1a2a3a, #152535);
  color: #9ec8f0; border-color: #2f4256;
}
#Lin_countdown .Lin_holiday-quota {
  border-radius: 1rem; padding: 0.8rem 1rem; margin-bottom: 0.9rem;
  background: rgba(166, 124, 82, 0.1);
  border: 1px solid rgba(166, 124, 82, 0.25);
  font-size: 0.78rem;
}
#Lin_countdown.Lin_theme-dark .Lin_holiday-quota {
  background: rgba(166, 124, 82, 0.18);
  border-color: rgba(166, 124, 82, 0.4);
}
#Lin_countdown .Lin_holiday-quota .Lin_hq-title {
  font-weight: 600; margin-bottom: 0.3rem;
}
#Lin_countdown .Lin_holiday-quota .Lin_hq-item {
  display: flex; justify-content: space-between; padding: 0.15rem 0;
}
/* 放假数据缺失时的占位说明。
   数据缺失必须在界面上说出来 —— 否则三项统计显示 0，用户会以为
   "今年假期已用完"，既不会反馈也查不出原因（静默失效）。
   配色用中性灰而非主题棕金，与「正常统计」在视觉上区分开；
   半透明灰在浅色/深色主题下都成立，无需逐主题覆盖。 */
#Lin_countdown .Lin_hq-missing {
  display: flex; align-items: flex-start; gap: 0.6rem;
  padding: 0.6rem 0.7rem; border-radius: 0.7rem;
  background: rgba(128, 128, 128, 0.12);
  line-height: 1.6;
}
#Lin_countdown .Lin_hq-missing-icon {
  flex: none; font-size: 1.25em; line-height: 1.15;
}
#Lin_countdown .Lin_hq-missing-hint {
  opacity: 0.6;
}
/* 次年数据缺失的**提前**提示。
   与上面的「本年缺失」区分：那条是"已经坏了"，用中性灰；
   这条是"即将坏"，属预警，用琥珀色提示但不要像报错一样刺眼。
   配色走半透明，浅色/深色主题都不必单独覆盖。 */
#Lin_countdown .Lin_hq-next-missing {
  margin-top: 0.45rem; padding-top: 0.45rem;
  border-top: 1px dashed rgba(180, 130, 40, 0.35);
  color: #9a6a10;
  opacity: 0.92; line-height: 1.55;
}
#Lin_countdown.Lin_theme-dark .Lin_hq-next-missing {
  color: #e0b661;
}
/* ICS 导出按钮上的「实际覆盖到哪一年」。
   比按钮正文小一号、略降透明度，作为附属信息而不是抢主文案。 */
#Lin_countdown .Lin_ics-export-range {
  font-size: 0.85em; opacity: 0.8; margin-left: 0.15rem;
  white-space: nowrap;
}
#Lin_countdown .Lin_festival-wallpaper {
  border-radius: 1.2rem; margin-bottom: 0.9rem;
  padding: 1.2rem; text-align: center;
  color: #fff; position: relative; overflow: hidden;
  min-height: 140px; display: flex; flex-direction: column;
  justify-content: center; align-items: center; gap: 0.4rem;
  /* 白字落在中等明度的彩色渐变上时对比度偏低，加一层深色投影保证可读 */
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.45), 0 0 1px rgba(0, 0, 0, 0.3);
}
#Lin_countdown .Lin_festival-wallpaper .Lin_fw-icon {
  font-size: 2.5rem;
}
#Lin_countdown .Lin_festival-wallpaper .Lin_fw-name {
  font-size: 1.3rem; font-weight: 600;
}
#Lin_countdown .Lin_festival-wallpaper .Lin_fw-days {
  font-size: 0.85rem; opacity: 0.9;
}
#Lin_countdown .Lin_fw-spring {
  background: linear-gradient(135deg, #c62828, #e53935);
}
/* 原为 #b8860b → #daa520（金色），与白字对比度仅约 2.2:1，整体压深一档 */
#Lin_countdown .Lin_fw-midautumn {
  background: linear-gradient(135deg, #8a5a00, #b8860b);
}
/* 原为 #4a7a4a → #6a9d6a（草绿），对比度约 3.1:1 偏弱，整体压深一档 */
#Lin_countdown .Lin_fw-qingming {
  background: linear-gradient(135deg, #356035, #4a7a4a);
}
#Lin_countdown .Lin_fw-dragonboat {
  background: linear-gradient(135deg, #1a5e2a, #2e7d32);
}
#Lin_countdown .Lin_fw-national {
  background: linear-gradient(135deg, #b71c1c, #d32f2f);
}
#Lin_countdown .Lin_fw-default {
  background: linear-gradient(135deg, #a67c52, #8b5e3c);
}
#Lin_countdown .Lin_festival-link-box {
  padding-bottom: 0.4rem;
  background: rgba(0,0,0,0.04); border-radius: 0.6rem;
  font-size: 0.72rem; word-break: break-all; line-height: 1.5;
}
#Lin_countdown.Lin_theme-dark .Lin_festival-link-box {
  background: rgba(255,255,255,0.06);
}
#Lin_countdown .Lin_festival-link-box button {
  margin-top: 0.35rem; background: #a67c52; color: #fff; border: none;
  padding: 0.25rem 0.7rem; border-radius: 20px; font-size: 0.72rem;
  cursor: pointer;
}
#Lin_countdown .Lin_checkin-badge-card {
  border-radius: 1.2rem; padding: 1.2rem; margin-bottom: 1rem;
  /* 【对比度修复】原为 linear-gradient(135deg, #ffd89b, #ff9a56) + color:#fff
     —— 浅橙底配白字，实测对比度仅 1.35:1（正文需 4.5:1），
     6 套主题里 5 套完全看不清，只有 dark 因底色被覆盖成深棕才可见。
     现改为「橙金渐变 + 深棕文字」：浅底配深字，实测最弱端点 5.73:1。 */
  background: linear-gradient(135deg, #f5c96a, #e8a04a);
  color: #4a2c10; text-align: center;
}
/* dark 主题保持深底 + 白字（压深后的渐变会与深色页面糊在一起，故不跟随） */
#Lin_countdown.Lin_theme-dark .Lin_checkin-badge-card {
  background: linear-gradient(135deg, #8b5e3c, #6b4a30);
  color: #fff;
}
#Lin_countdown .Lin_checkin-badge-card .Lin_cbc-big {
  font-size: 2rem; font-weight: 700;
}
#Lin_countdown .Lin_checkin-badge-card .Lin_cbc-label {
  /* 深色文字降透明度会明显损失可读性（白字时代才需要这招），
     从 0.9 提到 0.95；实测仍保留层次、对比度不塌 */
  font-size: 0.8rem; opacity: 0.95; margin-top: 0.2rem;
}
/* 「生成成就图」按钮居中：
   .Lin_action-btn 默认是 display:flex —— 作为块级 flex 容器会占满整行、
   内部内容靠左，在居中的成就卡里看起来就是一条左对齐的长条。
   这里改为 inline-flex（按钮贴合内容宽度），借助父容器已有的
   text-align:center 实现水平居中。仅作用于成就卡内的按钮，
   不影响弹窗动作栏里那组 flex 排列的按钮。 */
#Lin_countdown .Lin_checkin-badge-card > .Lin_action-btn {
  display: inline-flex;
}
#Lin_countdown .Lin_wallpaper-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
  gap: 0.5rem; margin-bottom: 0.9rem;
}
#Lin_countdown .Lin_wallpaper-thumb {
  border-radius: 0.8rem; aspect-ratio: 3 / 4; cursor: pointer;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  color: #fff; font-size: 0.7rem; text-align: center; padding: 0.4rem;
  position: relative; overflow: hidden;
  transition: transform 0.2s;
}
#Lin_countdown .Lin_wallpaper-thumb:hover {
  transform: translateY(-2px);
}
#Lin_countdown .Lin_wallpaper-thumb .Lin_wt-icon {
  font-size: 1.8rem; margin-bottom: 0.2rem;
}
#Lin_countdown .Lin_wallpaper-thumb .Lin_wt-name {
  font-weight: 600;
}
#Lin_countdown .Lin_term-calendar-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 0.5rem;
}
#Lin_countdown .Lin_term-calendar-item {
  border-radius: 0.8rem; padding: 0.6rem 0.7rem;
  background: rgba(124,158,124,0.1);
  border: 1px solid rgba(124,158,124,0.25);
  font-size: 0.75rem; cursor: pointer;
}
#Lin_countdown.Lin_theme-dark .Lin_term-calendar-item {
  background: rgba(124,158,124,0.15);
}
#Lin_countdown .Lin_term-calendar-item .Lin_tc-name {
  font-weight: 600; font-size: 0.85rem;
}
#Lin_countdown .Lin_term-calendar-item .Lin_tc-date {
  opacity: 0.7; font-size: 0.7rem; margin-top: 0.1rem;
}
#Lin_countdown .Lin_term-calendar-item .Lin_tc-desc {
  opacity: 0.8; margin-top: 0.3rem; line-height: 1.4;
}
#Lin_countdown .Lin_local-festival-section {
  margin-top: 0.6rem;
}
#Lin_countdown .Lin_local-festival-item {
  border-radius: 0.8rem; padding: 0.6rem 0.8rem;
  background: rgba(166,124,82,0.1);
  border: 1px solid rgba(166,124,82,0.25);
  margin-bottom: 0.4rem; font-size: 0.78rem;
  cursor: pointer;
}
#Lin_countdown.Lin_theme-dark .Lin_local-festival-item {
  background: rgba(166,124,82,0.18);
}
#Lin_countdown .Lin_local-festival-item .Lin_lf-name {
  font-weight: 600;
}
#Lin_countdown .Lin_local-festival-item .Lin_lf-info {
  opacity: 0.8; margin-top: 0.15rem; font-size: 0.72rem; line-height: 1.5;
}
#Lin_countdown .Lin_big-text-toggle {
  display: flex; align-items: center; justify-content: space-between;
  padding: 0.5rem 0.8rem; margin-bottom: 0.7rem;
  border-radius: 0.7rem; background: rgba(0,0,0,0.04);
  font-size: 0.78rem;
}
#Lin_countdown.Lin_theme-dark .Lin_big-text-toggle {
  background: rgba(255,255,255,0.06);
}

/* ===== 第三部分：页面标题居中修正 ===== */
	#Lin_countdown .Lin_cd-page-title {
	  text-align: center !important;
	  display: flex !important;
	  justify-content: center !important;
	  align-items: center !important;
	  margin-left: auto !important;
	  margin-right: auto !important;
	  width: 100% !important;
}

/* ===== 第四部分：弹层层级基准（全站唯一定义点）=====
   为什么放在文件最末尾：CSS 里「同特异性、后定义者胜」。
   之前在样式表开头的兼容层里写过一份基准（modal 1200 / theme-picker 1210 /
   settings 1220），但组件段里又各写了一次 z-index（1000 / 1100 / 1100），
   特异性相同而位置更靠后 → 开头那份被静默覆盖，成了死代码。
   后果（实测）：节日详情弹窗 z-index 只有 1000，而博客固定导航是 1020，
   弹窗左上角被导航栏压住（elementFromPoint 命中 NAV.blog-header）。

   基准取值依据（主题侧实测）：
     博客固定导航 1020 / 侧边工具栏 999 / 登录弹窗 1100
   → 插件弹层从 1300 起，逐级递增，保证「后打开的盖住先打开的」。
   实际生效值还会由 JS 按主题动态上调（见 syncModalZBase）：若主题层级更高，
   会自动取「页面已有最高值 + 20」写入 --Lin-z-modal-base，换主题无需改代码。

   ⚠️ 不要在别处再写这几个选择器的 z-index —— 本次 bug 的成因就是同一处
      定义散落在三个地方。 */
#Lin_countdown { --Lin-z-modal-base: 1300; }
#Lin_countdown .Lin_modal-overlay        { z-index: var(--Lin-z-modal-base); }
#Lin_countdown .Lin_theme-picker-overlay { z-index: calc(var(--Lin-z-modal-base) + 20); }
#Lin_countdown .Lin_settings-overlay     { z-index: calc(var(--Lin-z-modal-base) + 40); }
/* 二维码弹层复用 .Lin_settings-overlay（模板里是同一个类），层级与之相同；
   它在 DOM 中更靠后，同 z-index 时后绘制 → 天然在上，无需单独提高。 */
