    :root {
      --brand: #91cfd4;
      --brand-ink: #3f7a7f;
      --bg: #f5fafb;
      --card: #ffffff;
      --ink: #0f172a;
      --muted: #5f6e6e;
      --border: rgba(63,122,127,.12);
      --fc-today-bg-color: #e3f4f5;

      --star-on: #f59e0b;
      --star-off: rgba(15, 23, 42, .22);
    }

    html,body{height:100%}
    body{
      margin:0; background:var(--bg); color:var(--ink);
      font: 18px/1.5 "LXGW WenKai", "霞鹜文楷", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji";
    }

    .wrap{max-width:1100px; margin:24px auto; padding:0 16px;}
    header{ display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin: 8px 0 14px; }
    h1{margin:0; font-size: clamp(20px, 2.5vw, 28px); letter-spacing:.2px;}
    h1 .sub{display:block; font-weight:500; color:var(--muted); font-size:.9rem}

    .topbar{display:flex; gap:10px; align-items:center; justify-content:flex-end;}

    /* === 新排版：左侧时间轴 + 右侧日历/年度（模仿参考图布局） === */
    .layout{
      display:grid;
      grid-template-columns: 280px 1fr;
      gap:14px;
      align-items:start;
    }
    @media (max-width: 920px){
      .layout{ grid-template-columns: 1fr; }
      .sidebar{ position:relative; top:auto; max-height:none; }
      .statsbar{ position:sticky; top:12px; z-index: 6; }
    }

    .sidebar{
      padding:12px;
      position:sticky;
      top:16px;
      max-height: calc(100vh - 32px);
      overflow:hidden;
      display:flex;
      flex-direction:column;
    }

    .timeline-head{
      display:flex; gap:10px; align-items:flex-start;
      padding:6px 6px 10px;
      border-bottom: 1px solid var(--border);
    }
    .t-star{
      width:28px; height:28px; border-radius:10px;
      display:grid; place-items:center;
      background: rgba(145,207,212,.18);
      color: var(--brand-ink);
      font-size:16px;
      flex: 0 0 auto;
    }
    .timeline-head-title{ font-weight:800; color: var(--brand-ink); }
    .timeline-head-sub{ font-size:12px; color: var(--muted); margin-top:2px; }

    .timeline{
      margin-top:10px;
      overflow:auto;
      padding: 2px 4px 2px 2px;
    }

    .t-group{
      display:flex; gap:12px;
      padding:8px 6px;
      border-radius:12px;
    }
    .t-group:hover{ background: rgba(145,207,212,.10); }

    .t-marker{
      width:34px;
      display:flex;
      flex-direction:column;
      align-items:center;
      position:relative;
      flex: 0 0 auto;
    }
    .t-circle{
      width:28px; height:28px; border-radius:999px;
      display:grid; place-items:center;
      background:#fff;
      border:1px solid var(--border);
      box-shadow:0 2px 10px rgba(2,6,23,.06);
      color: var(--brand-ink);
      font-weight:800;
      font-size:13px;
    }
    .t-line{
      width:2px;
      flex: 1 1 auto;
      margin-top:8px;
      border-radius:99px;
      background: rgba(63,122,127,.18);
    }
    .t-group.last .t-line{ background: transparent; }

    .t-content{ flex: 1 1 auto; min-width:0; }
    .t-date{ font-size:12px; color: var(--muted); margin: 2px 0 6px; }

    .t-movies{ display:flex; flex-direction:column; gap:8px; }
    .t-movie{
      display:flex; align-items:center; justify-content:space-between; gap:10px;
      padding:7px 9px;
      border-radius:12px;
      border:1px solid var(--border);
      background:#fff;
      box-shadow:0 2px 10px rgba(2,6,23,.06);
      cursor:pointer;
      user-select:none;
      transition: filter .15s ease, transform .08s ease;
    }
    .t-movie:hover{ filter: brightness(.99); }
    .t-movie:active{ transform: scale(.995); }
    .t-movie .name{
      overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
      font-size:13px;
    }
    .t-movie .right{
      display:flex; align-items:center; gap:8px;
      flex: 0 0 auto;
      color: var(--muted);
      font-size:12px;
    }
    .t-movie .stars{ font-size:12px; }

    .side-bottom{ margin-top:auto; padding-top:12px; }
    .bottombar{ justify-content:center; gap:0; }

    .main{ min-width: 0; }

    /* 右上角统计条 */
    .statsbar{
      display:flex; align-items:center; justify-content:flex-end;
      padding:10px 12px;
      margin-bottom:12px;
    }
    /* 参考图里这里不显示 “Movie Calendar”，避免与顶部标题重复 */
    .stats-left{ display:none; }
    .stats-label{ color: var(--muted); font-size:13px; }
    .stats-right{ text-align:right; }
    .stats-period{ color: var(--muted); font-size:13px; }
    .stats-count{ font-weight:900; font-size:22px; color: var(--ink); line-height:1.05; }

    .tabbtn{
      border:0;
      background:transparent;
      color: rgba(11,45,23,.92);
      border-radius: 999px;
      padding: 4px 6px;
      cursor:pointer;
      box-shadow:none;
      transition: background .15s ease, filter .15s ease;
      user-select:none;
      font-weight: 700;
    }
    .bottombar .tabbtn + .tabbtn::before{
      content: " | ";
      color: rgba(11,45,23,.62);
      font-weight: 400;
    }
    .tabbtn:hover{ filter:brightness(.98); }
    .tabbtn:active{ transform:scale(.99); }
    .tabbtn.active{ background: rgba(145,207,212,.28); }

    /* === 卡片容器 === */
    .card{
      background:var(--card);
      border:none;
      border-radius:14px;
      box-shadow:0 4px 20px rgba(2,6,23,.06);
      padding:12px;
    }

    /* === FullCalendar 细节 === */
    #calendar{ padding:12px; }
    .fc .fc-toolbar-title{ font-weight:700; color:var(--brand-ink); padding:2px 6px; border-radius:8px; cursor:pointer; }
    .fc .fc-toolbar-title:hover{ background:rgba(145,207,212,.12); }
    .fc .fc-button{ background:var(--brand); border:none; border-radius:10px; box-shadow:0 1px 0 rgba(0,0,0,.05); }
    .fc .fc-button:hover{ filter:brightness(.95); }
    .fc .fc-daygrid-event{ background:transparent; border:none; cursor:pointer; display:flex; justify-content:center; }

    /* === 日历缩略图：海报 + 星级 === */
    .movie-cell{
      position:relative;
      width:100%;
      display:flex;
      flex-direction:column;
      align-items:center;
      justify-content:flex-start;
      gap:6px;
    }
    .movie-link{
      width:100%;
      display:flex;
      justify-content:center;
      text-decoration:none;
      color:inherit;
      position:relative; /* 让数量徽章贴在海报上 */
    }
    .movie-thumb{
      width: clamp(84px, 92%, 150px);
      aspect-ratio: 2 / 3;
      object-fit:cover;
      border-radius:12px;
      display:block;
      border:1px solid var(--border);
      background:#e2e8f0;
    }
    .movie-badge{
      position:absolute; right:8px; bottom:8px;
      min-width: 18px; height: 18px; padding: 0 6px;
      border-radius: 999px;
      background: var(--brand); color:#fff;
      border: 1px solid #fff;
      font-size: 12px; line-height: 18px; text-align:center;
      box-shadow: 0 2px 6px rgba(2,6,23,.18);
      pointer-events: none;
    }

    .mini-stars{
      position:static;
      left:auto; bottom:auto;
      padding:0;
      margin-top:4px;
      background: transparent;
      border:none;
      box-shadow:none;
      width:100%;
      display:flex;
      align-items:center;
      justify-content:center;
      pointer-events:none;
    }
    .mini-stars .stars{ font-size:14px; }

    /* 隐藏“非本月”格子内的内容 */
    .fc .fc-daygrid-day.fc-day-other .movie-cell,
    .fc .fc-daygrid-day-other .movie-cell,
    .fc .fc-day-other .movie-cell { display: none !important; }

    .error-note{
      margin:12px 0; color:#b91c1c; background:#fee2e2;
      border:1px solid #fecaca; padding:8px 10px; border-radius:10px;
    }

    /* === 通用星级组件（0-5，可半星） === */
    .stars{ position:relative; display:inline-block; line-height:1; }
    .stars::before{ content:"★★★★★"; letter-spacing:1px; color:var(--star-off); }
    .stars::after{
      content:"★★★★★"; letter-spacing:1px;
      position:absolute; inset:0;
      width: calc(var(--pct, 0) * 1%);
      overflow:hidden;
      color:var(--star-on);
    }

    /* === 详情模态（左海报右信息） === */
    .modal{
      position:fixed; inset:0; display:none; place-items:center; z-index: 4000;
      background:rgba(2,6,23,.0); transition: background .22s ease;
      padding: 18px;
    }
    .modal.open{ display:grid; }
    .modal.show{ background:rgba(2,6,23,.65); }

    .panel{
      position:relative; background:#ffffff; border-radius:16px;
      width:min(980px, 96vw); max-height:92vh;
      overflow:hidden;
      transform: translateY(6px) scale(.98); opacity:0;
      transition: transform .22s ease, opacity .22s ease;
      box-shadow: 0 18px 60px rgba(2,6,23,.35);
      display:grid; grid-template-columns: 360px 1fr;
    }
    .modal.show .panel{ transform: translateY(0) scale(1); opacity:1; }

    @media (max-width: 860px){
      .panel{ grid-template-columns: 1fr; }
      .panel-left{ display:none; }
    }

    .panel-left{ background:#ffffff; display:flex; align-items:center; justify-content:center; }
    .panel-left img{ width:100%; height:100%; object-fit:cover; display:block; }

    .panel-right{ padding:16px 18px 14px; overflow:auto; }

    .m-title{ margin:2px 0 6px; font-size: 25px; color:var(--brand-ink); line-height:1.25; }
    .m-title-en{
      margin: 0 0 8px;
      font-size: 17px;
      color: var(--muted);
      line-height: 1.35;
      letter-spacing: .2px;
    }

    /* === 时间轴：标题+英文名两行 === */
    .t-title{ display:flex; flex-direction:column; gap:2px; min-width:0; }
    .t-movie .en{
      font-size:12px;
      color: var(--muted);
      line-height:1.3;
      white-space: normal;
      overflow: hidden;
      text-overflow: ellipsis;
      display: -webkit-box;
      -webkit-line-clamp: 1;
      -webkit-box-orient: vertical;
    }

    .m-meta{ display:flex; flex-wrap:wrap; gap:10px 14px; align-items:center; color:var(--muted); font-size: 16px; margin-bottom:10px; }
    .pill{ display:inline-flex; align-items:center; gap:6px; padding:4px 10px; border-radius:999px; border:1px solid var(--border); background:#fff;
      font-size: 13px;
    }
    .pill a{ color:inherit; text-decoration:none; }
    .pill a:hover{ text-decoration:underline; }

/* === 详情：标题外链样式 === */
.title-link{
  color: inherit;
  text-decoration: none;
  border-bottom: 2px solid rgba(11,45,23,.22);
  padding-bottom: 1px;
}
.title-link:hover{ border-bottom-color: rgba(11,45,23,.40); }

/* === 详情：星级单独一行 & tag 更小 === */
.pill.rating-pill{
  flex-basis: 100%;
  justify-content: flex-start;
  gap: 10px;
  border: none;
  background: transparent;
  padding: 0;
  box-shadow: none;
}
.pill.tag-pill{
  font-size: 12px;
  padding: 3px 8px;
  color: rgba(11,45,23,.72);
  border-color: rgba(11,45,23,.22);
}

/* === To Watch（电影名 + 想看理由） === */
.watch-list{
  display:flex;
  flex-direction:column;
  gap:24px;
  padding: 6px;
}
.watch-group-title{
  margin: 0 0 10px;
  color: var(--brand-ink);
  font-size: 1.08rem;
  line-height: 1.4;
}
.watch-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
  gap:14px;
}
.watch-row{
  border: 1px solid rgba(11,45,23,.22);
  border-radius: 16px;
  padding: 16px 18px;
  background: rgba(255,255,255,.20);
  color: rgba(11,45,23,.92);
  font-size: 15px;
  line-height: 1.5;
  min-width: 0;
}
.watch-name{
  margin: 0;
  font: inherit;
  font-weight: 800;
  color: inherit;
}
.watch-reason{
  margin: 8px 0 0;
  color: var(--muted);
  font-size: .88em;
  font-weight: 400;
  white-space: pre-wrap;
}
.watch-reason.is-empty{
  opacity: .72;
  font-style: italic;
}
html[data-theme="dark"] .watch-row{
  border-color: rgba(234,245,238,.18);
  background: rgba(234,245,238,.06);
  color: var(--ink);
}
/* === Mobile bottom tabs：把切换按钮拿到外面 === */
.mobile-tabs{
  display:none;
}
@media (max-width: 920px){
  .mobile-tabs{
    display:flex;
    position: fixed;
    left: 50%;
    bottom: 14px;
    transform: translateX(-50%);
    gap: 0;
    padding: 6px 10px;
    border: 0;
    background: transparent;
    backdrop-filter: none;
    z-index: 2500;
    box-shadow: none;
  }
  .mobile-tabs .mtab{
    border: 0;
    background: transparent;
    color: var(--ink);
    border-radius: 999px;
    padding: 6px 8px;
    cursor: pointer;
    font-size: 15px;
    font-weight: 800;
  }
  .mobile-tabs .mtab + .mtab::before{
    content: " | ";
    color: rgba(11,45,23,.62);
    font-weight: 400;
  }
  .mobile-tabs .mtab.active{
    background: rgba(145,207,212,.25);
  }
  html[data-theme="dark"] .mobile-tabs .mtab + .mtab::before{
    color: rgba(234,245,238,.55);
  }
  html[data-theme="dark"] .mobile-tabs .mtab.active{
    background: rgba(234,245,238,.12);
  }
}
/* === 移动端：隐藏时间轴 + 左上角抽屉按钮 === */
.drawer-toggle{
  position: fixed;
  left: 14px;
  top: 14px;
  z-index: 90;
  width: 42px;
  height: 42px;
  border-radius: 14px;
  border: 1px solid rgba(11,45,23,.18);
  background: rgba(255,255,255,.85);
  color: rgba(11,45,23,.92);
  box-shadow: 0 10px 26px rgba(2,6,23,.12);
  display: none;
  place-items: center;
  cursor: pointer;
  user-select:none;
}
.drawer-toggle:active{ transform: scale(.98); }

.drawer-backdrop{
  position: fixed;
  inset: 0;
  background: rgba(2,6,23,.45);
  z-index: 80;
  display: none;
}

/* === 移动端：时间轴改为“从顶端弹出”的下拉面板（不再侧滑抽屉） === */
.mtl-backdrop{
  position: fixed;
  inset: 0;
  background: rgba(2,6,23,.12);
  display: none;
  z-index: 2600;
}
.mtl-drop{
  position: fixed;
  left: 12px;
  right: 12px;
  top: 64px;
  max-height: 62vh;
  overflow: auto;
  display: none;
  z-index: 2700;
  background: rgba(245,250,251,.96);
  border: 1px solid var(--border);
  border-radius: 16px;
  box-shadow: 0 18px 50px rgba(2,6,23,.18);
  padding: 10px;
}
html[data-theme="dark"] .mtl-drop{
  background: rgba(7,28,16,.92);
}
body.mtl-open .mtl-backdrop{ display:block; }
body.mtl-open .mtl-drop{ display:block; }

.mtl-row{
  display:flex;
  align-items:flex-start;
  gap: 10px;
  padding: 10px 10px;
  border-radius: 12px;
  cursor: pointer;
  user-select: none;
}
.mtl-row:hover{ background: rgba(145,207,212,.12); }
html[data-theme="dark"] .mtl-row:hover{ background: rgba(234,245,238,.08); }
.mtl-n{
  width: 26px;
  height: 26px;
  border-radius: 999px;
  display:grid;
  place-items:center;
  border: 1px solid var(--border);
  color: var(--brand-ink);
  font-weight: 900;
  font-size: 13px;
  flex: 0 0 auto;
  margin-top: 1px;
}
html[data-theme="dark"] .mtl-n{ color: var(--ink); }
.mtl-t{ min-width:0; }
.mtl-title{
  font-weight: 900;
  font-size: 14px;
  line-height: 1.25;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.mtl-en{
  font-size: 12px;
  color: var(--muted);
  line-height: 1.25;
  margin-top: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.mtl-empty{ color: var(--muted); font-size: 13px; padding: 10px; }

/* 旧的抽屉遮罩彻底禁用（避免整页变黑） */
.drawer-backdrop{ display:none !important; }
body.drawer-open aside.sidebar{ display:none !important; }

@media (max-width: 920px){
  .drawer-toggle{ display: grid; }
  aside.sidebar{ display:none; }
  body.drawer-open .drawer-backdrop{ display:block; }
  body.drawer-open aside.sidebar{
    display:flex;
    position: fixed;
    left: 0;
    top: 0;
    bottom: 0;
    width: min(320px, 84vw);
    padding: 12px;
    background: rgba(216,240,226,.98);
    backdrop-filter: blur(6px);
    z-index: 85;
    box-shadow: 18px 0 50px rgba(2,6,23,.18);
  }
  body.drawer-open .timeline{ max-height: calc(100vh - 160px); }
}

/* === 移动端：海报缩略图稳定一下 === */
@media (max-width: 680px){
  /* 月历手机端：海报必须跟格子宽度走，不要溢出互相挤压 */
  .fc .fc-daygrid-event{ width:100%; justify-content:center; }
  .movie-cell{ width:100%; gap:4px; }
  .movie-link{ width:100%; }
  .movie-thumb{
    width: 100%;
    max-width: 46px;
    border-radius: 8px;
  }
  /* 月历手机端：星级容易把布局撑乱，直接隐藏 */
  .mini-stars{ display:none !important; }
  .fc .fc-daygrid-day-frame{ min-height: 92px; overflow:hidden; }
}

/* === 黑夜/白天模式（变量切换） === */
html[data-theme="dark"]{
  --bg:#071c10;
  --ink:#eaf5ee;
  --muted: rgba(234,245,238,.70);
  --border: rgba(234,245,238,.20);
  --brand: #f5c84b;
  --brand-ink:#eaf5ee;
  --star-on: #f5c84b;
  --star-off: rgba(234,245,238,.26);
}
html[data-theme="dark"] body{
  background-image:
    linear-gradient(rgba(234,245,238,.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(234,245,238,.06) 1px, transparent 1px);
}
html[data-theme="dark"] body::before{
  opacity: .14;
  mix-blend-mode: screen;
}
html[data-theme="dark"] .panel{ background: rgba(7,28,16,.96); }
html[data-theme="dark"] .panel-right{ color: var(--ink); }
html[data-theme="dark"] .close{ background: rgba(234,245,238,.10); color: var(--ink); border-color: rgba(234,245,238,.18); }
html[data-theme="dark"] .navbtn{ background: rgba(7,28,16,.70); color: var(--ink); }
html[data-theme="dark"] .title-link{ border-bottom-color: rgba(234,245,238,.22); }
html[data-theme="dark"] .m-text{ color: rgba(234,245,238,.72); }
html[data-theme="dark"] #mSynopsis{ color: rgba(234,245,238,.65); }
html[data-theme="dark"] #mReview{ color: var(--ink); }

html[data-theme="dark"] .m-desc .label{ color: rgba(234,245,238,.95); }
html[data-theme="dark"] .pill{ background: rgba(234,245,238,.06); border-color: rgba(234,245,238,.18); }
html[data-theme="dark"] .drawer-toggle{ background: rgba(7,28,16,.80); color: var(--ink); border-color: rgba(234,245,238,.18); }

.theme-toggle{
  margin-top: 10px;
  border: 1px solid rgba(11,45,23,.18);
  background: rgba(255,255,255,.60);
  color: rgba(11,45,23,.92);
  border-radius: 12px;
  padding: 8px 10px;
  cursor: pointer;
  user-select:none;
}
.theme-toggle:active{ transform: scale(.99); }
html[data-theme="dark"] .theme-toggle{
  background: rgba(234,245,238,.06);
  border-color: rgba(234,245,238,.18);
  color: rgba(234,245,238,.92);
}

/* 背景噪点稍微明显一点（材质感） */
body::before{ opacity: .14; }

    .m-desc{ margin: 10px 0 6px; color: var(--ink); font-size: 17px; }
    .m-desc .label{ display:block; color: rgba(11,45,23,.92); margin-bottom:4px; }
    .m-text{ white-space:pre-wrap; color: rgba(11,45,23,.55); }
    /* 简介更浅灰，点评保持实黑 */
    #mSynopsis{ color: rgba(11,45,23,.38); }
    #mReview{ color: #000; }


    .close{
      position:absolute; top:10px; right:10px;
      width:36px; height:36px; border-radius:10px;
      display:grid; place-items:center;
      background: rgba(2,6,23,.08);
      color:var(--ink); border:1px solid rgba(2,6,23,.10);
      cursor:pointer; z-index:3;
      transition: filter .15s ease, transform .08s ease;
    }
    .close:hover{ filter:brightness(.97); }
    .close:active{ transform: scale(.98); }
    .close svg{ width:18px; height:18px; }

    .navbtn{
      position:absolute; top:50%; transform:translateY(-50%);
      width:42px; height:56px; border:none; border-radius:12px;
      background:rgba(255,255,255,.85);
      color:var(--ink); font-size:26px;
      display:grid; place-items:center; cursor:pointer;
      box-shadow: 0 12px 30px rgba(2,6,23,.18);
      transition: filter .15s ease, transform .08s ease;
    }
    .navbtn:hover{ filter:brightness(.98); }
    .navbtn:active{ transform:translateY(-50%) scale(.99); }
    .navbtn.prev{ left:10px; }
    .navbtn.next{ right:10px; }

    /* === 第二页：年度海报墙（4列） === */
    .yearbar{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding: 4px 4px 12px; }
    .yearbar .year-title{ font-weight:700; color:var(--brand-ink); font-size: 16px; }
    .yctrl{ display:flex; gap:8px; align-items:center; }
    .ybtn{
      width:40px; height:36px; border:none; border-radius:12px;
      background: var(--brand); color:#fff; cursor:pointer;
      box-shadow:0 8px 20px rgba(0,0,0,.12);
      transition: filter .15s ease, transform .08s ease;
    }
    .ybtn:hover{ filter:brightness(.95); }
    .ybtn:active{ transform: scale(.99); }
    select{
      border:1px solid var(--border); border-radius:12px; padding:8px 10px;
      background:#fff; color:var(--ink); cursor:pointer;
      box-shadow:0 2px 10px rgba(2,6,23,.06);
    }

    .poster-grid{
      display:grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 12px;
      padding: 6px;
    }
    @media (max-width: 960px){ .poster-grid{ grid-template-columns: repeat(3, 1fr);} }
    @media (max-width: 680px){ .poster-grid{ grid-template-columns: repeat(2, 1fr);} }

    .poster-item{ position:relative; }
    .poster-item a{ display:block; text-decoration:none; color:inherit; }
    .poster-item img{
      width:100%; aspect-ratio: 2/3; object-fit:cover;
      border-radius:14px; border:1px solid var(--border);
      box-shadow:0 6px 20px rgba(2,6,23,.08);
      background:#e2e8f0;
    }
    .poster-item .overlay{
      position:absolute; left:8px; right:8px; bottom:8px;
      display:flex; align-items:center; justify-content:space-between; gap:10px;
      padding:6px 8px; border-radius:12px;
      background: rgba(255,255,255,.92);
      border:1px solid rgba(2,6,23,.06);
      box-shadow: 0 8px 22px rgba(2,6,23,.14);
      pointer-events:none;
    }
    .poster-item .overlay .stars{ font-size: 12px; }
    .poster-item .overlay .name{ font-size: 12px; color: var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

    /* === 视图切换 === */
    .view{ display:none; }
    .view.active{ display:block; }

    /* === 日历左右侧月切换按钮（与云彩日历一致） === */
    .side-nav { position: relative; }
    .side-nav .nav-btn {
      position: absolute; top: 50%; transform: translateY(-50%);
      width: 44px; height: 44px; border-radius: 14px; border: none;
      background: var(--brand); color: #fff;
      box-shadow: 0 8px 20px rgba(0,0,0,.12);
      display: grid; place-items: center; z-index: 5;
      transition: filter .15s ease, transform .08s ease;
      cursor: pointer;
    }
    .side-nav .nav-btn:hover { filter: brightness(.95); }
    .side-nav .nav-btn:active { transform: translateY(-50%) scale(.98); }
    .side-nav .prev { left: -40px; }
    .side-nav .next { right: -40px; }
    @media (max-width: 640px) {
      .side-nav .nav-btn { width: 38px; height: 38px; border-radius: 12px; }
      .side-nav .prev { left: -18px; }
      .side-nav .next { right: -18px; }
    }

  
    /* =========================
       Poster Layout Overrides
       (模仿深色海报排版)
       ========================= */
    html:not([data-theme="dark"]) {
      --bg:#d8f0e2; /* 背景色 */
      --card: transparent;
      --ink:#0b2d17;
      --muted: rgba(11,45,23,.65);
      --border: rgba(11,45,23,.55);
      --brand: #f5c84b;          /* star */
      --brand-ink:#0b2d17;
      --fc-today-bg-color: transparent;
      --star-on: #f5c84b;
      --star-off: rgba(11,45,23,.18);
    }

    /* 绿色网格背景（轻微纹理，不影响主体日历网格） */
    body{
      color: var(--ink);
      background-color: var(--bg);
      background-image:
        linear-gradient(rgba(11,45,23,.06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(11,45,23,.06) 1px, transparent 1px);
      background-size: 40px 40px; /* 网格大小 */
      background-position: -1px -1px;
    }

    /* 纸张/颗粒纹理层（叠加在背景网格上方） */
    body::before{
      content:"";
      position:fixed;
      inset:0;
      pointer-events:none;
      /* 轻微噪点纹理：SVG turbulence，无需外部图片 */
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='320'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='320' height='320' filter='url(%23n)' opacity='.30'/%3E%3C/svg%3E");
      background-size: 320px 320px;
      opacity: .10;
      mix-blend-mode: multiply;
      z-index: 0;
    }

    body{ position: relative; }
    .wrap{ max-width: 1200px; margin: 22px auto; padding: 0 18px; position: relative; z-index: 1; }

    /* 顶部标题 + 右上角统计 */
    header.poster-header{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap: 18px;
      margin: 0 0 18px;
    }
    .poster-title{
      margin:0;
      font-size: clamp(38px, 4.8vw, 56px);
      font-weight: 900;
      letter-spacing: .4px;
      color: var(--ink);
    }
    .poster-stats{ text-align:right; }
    .poster-period{
      font-weight: 800;
      font-size: clamp(18px, 2.2vw, 26px);
      color: var(--ink);
      opacity: .95;
    }
    .poster-count{
      margin-top: 6px;
      font-weight: 900;
      font-size: clamp(22px, 3vw, 34px);
      color: var(--ink);
    }

    /* 取消“卡片外框/阴影/圆角” */
    .card{
      background: transparent;
      border: none;
      border-radius: 0;
      box-shadow: none;
      padding: 0;
    }

    /* 两栏排版：左列表 + 右日历 */
    .layout{
      grid-template-columns: 270px 1fr;
      gap: 22px;
    }
    @media (max-width: 920px){
      .layout{ grid-template-columns: 1fr; }
      aside.sidebar{ position:relative; max-height:none; }
    }

    /* 左侧时间轴（紧凑、不可点、无评分） */
    aside.sidebar{
      position: sticky;
      top: 12px;
      max-height: calc(100vh - 24px);
      overflow: hidden;
      padding: 0;
    }

    .timeline-head{
      padding: 6px 0 10px;
      border-bottom: none;
      gap: 10px;
      align-items:center;
      justify-content: center;
    }
    .t-star{
      width: 26px; height: 26px;
      border-radius: 0;
      background: transparent;
      color: var(--brand);
      font-size: 20px;
    }
    .timeline-head-title{
      font-weight: 700;
      color: var(--ink);
      opacity: .92;
    }
    .timeline-head-sub{
      display:none;
    }
    .timeline-head-text{ display:none; }

    .timeline{
      margin-top: 8px;
      padding: 0;
      overflow: auto;
      position: relative;
    }
    .timeline::before{
      content:"";
      position:absolute;
      left: 50%;
      top: 0;
      bottom: 0;
      width: 2px;
      transform: translateX(-50%);
      background: rgba(11,45,23,.22);
      pointer-events:none;
    }

    .t-group{
      padding: 6px 0;
      border-radius: 0;
      display: grid;
      grid-template-columns: 1fr 36px 1fr;
      column-gap: 10px;
      align-items: start;
    }

    .t-group{
      padding: 6px 0;
      gap: 10px;
      border-radius: 0;
    }
    .t-group:hover{ background: transparent; }

    .t-marker{ width:auto; grid-column: 2; justify-self: center; }
    .t-circle{
      width: 22px; height: 22px;
      border-radius: 999px;
      background: rgba(11,45,23,.06);
      border: 1px solid rgba(11,45,23,.18);
      box-shadow: none;
      color: rgba(11,45,23,.85);
      font-weight: 800;
      font-size: 12px;
    }
    .t-line{ display:none; }


    .t-content{ min-width:0; grid-column: 1; }
    .t-group.right .t-content{ grid-column: 3; }
    .t-group.left  .t-content{ text-align:right; padding-right: 8px; }
    .t-group.right .t-content{ text-align:left;  padding-left: 8px; }

    .t-date{ display:none; }

    .t-movies{ gap: 0; }
    .t-movie{
      border:none;
      background: transparent;
      box-shadow:none;
      padding: 0;
      cursor: default;
    }
    .t-movie .name{
      font-size: 13px;
      color: rgba(11,45,23,.82);
      line-height: 1.35;
      white-space: normal;
      overflow: hidden;
      text-overflow: ellipsis;
      display: -webkit-box;
      -webkit-line-clamp: 1;
      -webkit-box-orient: vertical;
    }
    .t-movie .right{ display:none; }

    .t-group.left  .t-title{ align-items:flex-end; text-align:right; }
    .t-group.right .t-title{ align-items:flex-start; text-align:left; }
    .t-movie .en{ color: rgba(11,45,23,.55); }

    /* 左下角切换按钮：改成“导航链接”样式（无边框，带分隔符） */
    .side-bottom{ padding-top: 14px; }
    /* 左上角切换按钮：导航链接样式（无边框，带分隔符） */
    .tabbtn{
      border:0 !important;
      background:transparent !important;
      box-shadow:none !important;
      color: var(--ink) !important;
      border-radius: 999px;
      padding: 4px 6px;
      font-weight: 800;
      font-family: inherit !important;
    }
    .bottombar .tabbtn + .tabbtn::before{
      content: " | ";
      color: var(--muted);
      font-weight: 400;
    }
    .tabbtn.active{
      background: rgba(11,45,23,.10) !important;
    }
/* 右侧 FullCalendar：深色格子 + 白色网格线 */
    #viewCalendar{ padding: 0; }
    #calendar{ padding: 0; }

    .fc .fc-toolbar{ display:none; }
    .fc-theme-standard .fc-scrollgrid,
    .fc-theme-standard td,
    .fc-theme-standard th{
      border: 1px solid rgba(11,45,23,.60);
    }
    .fc-theme-standard .fc-scrollgrid{ border: 1px solid rgba(11,45,23,.75); }

    .fc .fc-col-header-cell{
      background: rgba(11,45,23,.10);
    }
    .fc .fc-col-header-cell-cushion{
      color: rgba(11,45,23,.92);
      font-weight: 900;
      font-size: 18px;
      padding: 10px 0;
    }

    .fc .fc-daygrid-day{
      background: rgba(11,45,23,.04);
    }
    .fc .fc-daygrid-day-number{
      color: rgba(11,45,23,.70);
      font-weight: 800;
      padding: 8px 10px 0 0;
    }

    .fc .fc-daygrid-day-frame{
      min-height: 120px;
      padding: 0;
    }
    .fc .fc-daygrid-day-top{
      justify-content: flex-end;
    }
    .fc .fc-daygrid-day-events{
      margin: 0;
      padding: 0 0 6px;
    }

    /* 海报缩略图：无圆角/无评分角标 */
    .movie-thumb{
      border-radius: 0;
      border: none;
      background: rgba(11,45,23,.10);
    }
    .movie-badge{ display:none !important; }

    /* 隐藏侧边翻月按钮与右下角热力图（更贴近参考海报） */
    .side-nav .nav-btn{ display:none !important; }

    /* 年度海报墙适配深色 */
    #viewYear{ padding: 0; }
    .yearbar{ padding: 0 0 12px; }
    .yearbar .year-title{ color: rgba(11,45,23,.92); }
    select{
      background: rgba(11,45,23,.06);
      color: rgba(11,45,23,.92);
      border: 1px solid rgba(11,45,23,.22);
      box-shadow: none;
    }
    .ybtn{ background: rgba(11,45,23,.10); color: rgba(11,45,23,.92); box-shadow:none; }
    .poster-item img{ border-radius: 0; border: 1px solid rgba(11,45,23,.20); box-shadow:none; }
    .poster-item .overlay{ display:none; }

  
    /* === Dark mode：文字 / 背景格子 / 日历线换色 === */
    html[data-theme="dark"] body{
      background-color: var(--bg);
      background-image:
        linear-gradient(rgba(234,245,238,.06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(234,245,238,.06) 1px, transparent 1px),
        radial-gradient(circle at 20% 15%, rgba(234,245,238,.06), transparent 40%),
        radial-gradient(circle at 80% 75%, rgba(234,245,238,.05), transparent 45%);
    }
    html[data-theme="dark"] .fc-theme-standard td,
    html[data-theme="dark"] .fc-theme-standard th,
    html[data-theme="dark"] .fc-theme-standard .fc-scrollgrid{
      border-color: rgba(234,245,238,.22) !important;
    }
    html[data-theme="dark"] .fc .fc-daygrid-day-number,
    html[data-theme="dark"] .fc .fc-col-header-cell-cushion{
      color: rgba(234,245,238,.78) !important;
    }
    html[data-theme="dark"] .fc .fc-daygrid-day{
      background: rgba(234,245,238,.02);
    }
    html[data-theme="dark"] .fc .fc-daygrid-day.fc-day-today{
      background: rgba(234,245,238,.06) !important;
    }

/* =========================
   v3 Fixes (do not change layout)
   ========================= */

/* 纹理/纸张效果：全部关闭（你只要纯网格） */
body::before{ display:none !important; }

/* 时间轴对齐：让圆点与文字更贴合 */
.t-group{ align-items: center !important; }
.t-circle{
  width: 20px !important;
  height: 20px !important;
  font-size: 11px !important;
}
.t-group.left .t-content{ padding-right: 10px !important; }
.t-group.right .t-content{ padding-left: 10px !important; }

/* 深色模式：时间轴线/字色可见 */
html[data-theme="dark"] .timeline::before{
  background: rgba(234,245,238,.22) !important;
}
html[data-theme="dark"] .t-circle{
  background: rgba(234,245,238,.06) !important;
  border-color: rgba(234,245,238,.20) !important;
  color: rgba(234,245,238,.88) !important;
}
html[data-theme="dark"] .t-movie .name{ color: rgba(234,245,238,.90) !important; }
html[data-theme="dark"] .t-movie .en{ color: rgba(234,245,238,.62) !important; }

/* 深色模式背景：去掉深浅不一的光斑，只保留均匀网格 */
html[data-theme="dark"] body{
  background-image:
    linear-gradient(rgba(234,245,238,.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(234,245,238,.06) 1px, transparent 1px) !important;
  background-size: 40px 40px !important;
  background-position: -1px -1px !important;
}

/* 移动端：海报别挤在一起 */
@media (max-width: 680px){
  .movie-cell{ gap: 4px !important; }
  .movie-thumb{ width: 64px !important; }
  .fc .fc-daygrid-day-frame{ min-height: 104px !important; }
  .fc .fc-daygrid-day-events{
    display:flex !important;
    justify-content:center !important;
  }
  .fc .fc-daygrid-event{ margin: 0 !important; }
}

/* 移动端：抽屉打开时点时间轴不再“整页变黑”——模态层级提高已处理，
   同时让抽屉背景在深色模式下不刺眼 */
@media (max-width: 920px){
  html[data-theme="dark"] body.drawer-open aside.sidebar{
    background: rgba(7,28,16,.96) !important;
  }
  html[data-theme="dark"] body.drawer-open .drawer-backdrop{
    background: rgba(2,6,23,.55) !important;
  }
}


    html[data-theme="dark"] .bottombar .tabbtn + .tabbtn::before{
      color: rgba(234,245,238,.55);
    }
    html[data-theme="dark"] .tabbtn{ color: var(--ink) !important; }
    html[data-theme="dark"] .tabbtn.active{ background: rgba(234,245,238,.12); }

/* =========================
   v5 Tweaks (tabs + timeline)
   ========================= */

/* 顶部左侧：月历/年度/待看 + 夜间切换（同一排） */
.top-controls{
  position: fixed;
  left: 18px;
  top: 14px;
  z-index: 2600;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(216,240,226,.75);
  backdrop-filter: blur(6px);
}
html[data-theme="dark"] .top-controls{
  background: rgba(7,28,16,.70);
}
.top-controls .theme-toggle{
  margin-top: 0;
  padding: 6px 10px;
  border-radius: 999px;
}
.top-tabs{ gap:0; }
.top-tabs .tabbtn{
  font-family: inherit !important;
  font-size: 16px;
  font-weight: 800;
  line-height: 1.2;
  color: var(--ink) !important;
}
.top-tabs .tabbtn.active{
  background: rgba(11,45,23,.10) !important;
}
html[data-theme="dark"] .top-tabs .tabbtn.active{
  background: rgba(234,245,238,.12) !important;
}
.top-tabs .tabbtn + .tabbtn::before{
  color: var(--muted) !important;
}
html[data-theme="dark"] .top-tabs .tabbtn + .tabbtn::before{
  color: rgba(234,245,238,.55) !important;
}

/* 旧的移动底部 tabs 关闭（现在统一用左上角） */
.mobile-tabs{ display:none !important; }

/* To Watch 字体统一 */
.watch-row,
#watchTitle,
.watch-empty{
  font-family: inherit !important;
  font-weight: 700;
}

/* 夜间模式：顶部 tabs 字色跟随变量（之前被 !important 卡住） */
html[data-theme="dark"] .top-tabs .tabbtn{
  color: var(--ink) !important;
}

/* 时间轴：让圆点/日期与条目首行对齐（稍微下移） */
.t-circle{
  transform: translateY(3px);
}


/* drawer-toggle 现在在顶部控件条里：取消它原来的 fixed 定位 */
.drawer-toggle{
  position: static !important;
  display: grid !important;
  width: 38px !important;
  height: 38px !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
}
@media (min-width: 921px){
  /* 桌面端不需要抽屉：隐藏 ☰ */
  .drawer-toggle{ display:none !important; }
}


/* 时间轴：按条目首行对齐 */
.t-group{ align-items:flex-start !important; }
.t-marker{ padding-top: 2px !important; }


/* =========================
   v6 Fixes (do not change desktop layout)
   - 月历翻页：恢复左右按钮
   - 手机端：顶部控件不再遮挡 Movie Calendar 标题（控件放到标题下方，且无边框/无底色）
   - 详情：改为行内下拉展开（不再用浮层）
   ========================= */

/* 月历左右翻月按钮：之前被隐藏了，这里恢复 */
.side-nav .nav-btn{
  display: grid !important;
  pointer-events: auto !important;
}

/* 时间轴条目需要可点击（用于行内展开） */
.t-movie{ cursor: pointer; }

/* 行内详情面板 */
.inline-detail{
  margin: 10px 0 14px;
  padding: 12px 12px 10px;
  border-radius: 14px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.88);
  box-shadow: 0 10px 26px rgba(2,6,23,.10);
}
html[data-theme="dark"] .inline-detail{
  background: rgba(7,28,16,.92);
  border-color: rgba(234,245,238,.18);
  box-shadow: 0 10px 26px rgba(2,6,23,.22);
}

.inline-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom: 10px;
}
.inline-hleft{ min-width:0; }
.inline-title{
  font-weight: 900;
  font-size: 18px;
  line-height: 1.25;
  color: var(--brand-ink);
}
.inline-title-en{
  margin-top: 2px;
  font-size: 13px;
  color: var(--muted);
  line-height: 1.25;
}
.inline-close{
  width: 34px;
  height: 34px;
  border-radius: 12px;
  border: 1px solid rgba(2,6,23,.10);
  background: rgba(2,6,23,.06);
  color: var(--ink);
  cursor: pointer;
  flex: 0 0 auto;
}
html[data-theme="dark"] .inline-close{
  border-color: rgba(234,245,238,.18);
  background: rgba(234,245,238,.08);
}

.inline-grid{
  display:grid;
  grid-template-columns: 110px 1fr;
  gap: 12px;
  align-items:start;
}
@media (max-width: 680px){
  .inline-grid{ grid-template-columns: 88px 1fr; }
}
.inline-poster img{
  width: 100%;
  aspect-ratio: 2/3;
  object-fit: cover;
  border-radius: 12px;
  border: 1px solid var(--border);
  background: rgba(11,45,23,.06);
}
html[data-theme="dark"] .inline-poster img{
  border-color: rgba(234,245,238,.18);
}

.inline-meta{ display:flex; flex-wrap:wrap; gap: 8px 10px; margin-bottom: 10px; }
.inline-section{ margin-top: 10px; }
.inline-section .label{
  font-weight: 900;
  font-size: 13px;
  margin-bottom: 4px;
  color: rgba(11,45,23,.92);
}
html[data-theme="dark"] .inline-section .label{
  color: rgba(234,245,238,.92);
}
.inline-section .text{
  white-space: pre-wrap;
  font-size: 14px;
  line-height: 1.5;
  color: rgba(11,45,23,.55);
}
html[data-theme="dark"] .inline-section .text{
  color: rgba(234,245,238,.72);
}

/* 行内上一部/下一部 */
.inline-nav{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  margin-top: 10px;
}
.inline-nav button{
  width: 44px;
  height: 36px;
  border-radius: 12px;
  border: 0;
  background: var(--brand);
  color: #fff;
  cursor: pointer;
}
.inline-nav button:active{ transform: scale(.99); }

/* 手机端：把顶部控件放到标题下方，且不挡标题 */
@media (max-width: 680px){
  header.poster-header{
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }
  h1.poster-title{
    order: 1;
    margin: 0;
  }
  .top-controls{
    order: 2;
    position: static !important;
    left: auto !important;
    top: auto !important;
    transform: none !important;
    z-index: 2;
    padding: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    backdrop-filter: none !important;
    flex-wrap: wrap;
  }
  .top-controls .theme-toggle{
    border: 0 !important;
    background: transparent !important;
    padding: 6px 8px !important;
  }
  .poster-stats{
    order: 3;
  }
}


/* =========================
   v6 Add-ons (keep layout)
   - 页面底部留白：允许继续下拉
   - 手机端时间轴：不再弹窗浮层，改为页面内展开
   - 月历点击：在当前周行下拉展开（插入一整行）
   ========================= */

/* 额外留白：让页面底部能继续下拉（不改变布局，只增加空白） */
.wrap{ padding-bottom: 140px; }

/* 手机端：时间轴不再“弹窗浮层”，改为页面内展开 */
@media (max-width: 920px){
  .mtl-backdrop{ display:none !important; } /* 不要遮罩 */
  .mtl-drop{
    position: static !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    transform: none !important;
    max-height: none !important;
    z-index: auto !important;
    margin: 0 0 14px !important;
  }
  body.mtl-open .mtl-drop{ display:block; }
}

/* FullCalendar 行内展开：把展开面板作为一行插入周行下方 */
.fc-inline-week-row > td{
  padding: 0 !important;
  border: 0 !important;
}

/* 可访问性与键盘操作 */
[hidden]{ display:none !important; }
.mtl-row{
  width:100%;
  border:0;
  font:inherit;
  color:inherit;
  text-align:left;
}
:where(button, a, select, [tabindex]):focus-visible{
  outline: 3px solid var(--brand);
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    scroll-behavior:auto !important;
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
}

/* =========================
   Type scale + aligned timeline
   ========================= */
:root{
  --text-small: .82rem;
  --text-body: 1rem;
  --text-large: 1.2rem;
}

html{ font-size: 20px; }
body{
  font-size: 1rem;
  line-height: 1.6;
}
button, select, input, textarea{ font: inherit; }

.wrap{
  width: 100%;
  max-width: 1320px;
  box-sizing: border-box;
}
.layout{ grid-template-columns: 360px minmax(0, 1fr); gap: 26px; }

.tabbtn,
.theme-toggle,
.mtab,
.ybtn,
#yearSelect{ font-size: .95rem; }
.poster-period,
.stats-period,
.stats-label{ font-size: .85rem; }
.timeline-head-sub,
.t-date{ font-size: .82rem; }
.poster-count,
.stats-count{ font-size: 1.55rem; }
.yearbar .year-title{ font-size: 1.1rem; }
.watch-row{ font-size: 1rem; }
.t-movie .right,
.t-movie .stars,
.poster-item .overlay .name,
.poster-item .overlay .stars{ font-size: .78rem; }
.movie-badge{ font-size: .72rem; }
.mini-stars .stars{ font-size: .88rem; }

/* 时间轴：每一条都由“左标题 / 日期 / 右标题”组成同一水平行 */
.timeline{
  margin-top: 12px;
  padding: 8px 4px 14px;
}
.timeline::before{
  width: 2px;
  top: 18px;
  bottom: 18px;
  background: rgba(11,45,23,.28);
}
.t-group{
  display: grid;
  grid-template-columns: minmax(0, 1fr) 48px minmax(0, 1fr);
  column-gap: 14px;
  align-items: center !important;
  min-height: 76px;
  padding: 7px 0;
  position: relative;
}
.t-marker{
  grid-column: 2;
  grid-row: 1;
  align-self: center;
  justify-self: center;
  padding: 0 !important;
  z-index: 2;
}
.t-circle{
  width: 34px !important;
  height: 34px !important;
  transform: none !important;
  border: 1px solid rgba(11,45,23,.30);
  background: var(--bg);
  color: var(--ink);
  font-size: .82rem !important;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.t-content{
  grid-row: 1;
  align-self: center;
  min-width: 0;
  padding: 0 !important;
}
.t-group.left .t-content{
  grid-column: 1;
  text-align: right;
}
.t-group.right .t-content{
  grid-column: 3;
  text-align: left;
}
.t-movie{
  display: block;
  padding: 8px 10px;
  border-radius: 10px;
  line-height: 1.35;
  transition: background .15s ease, transform .15s ease;
}
.t-movie:hover{ background: rgba(11,45,23,.07); }
.t-group.left .t-title{ align-items: flex-end; text-align: right; }
.t-group.right .t-title{ align-items: flex-start; text-align: left; }
.t-movie .name{
  max-width: 100%;
  font-size: .92rem;
  line-height: 1.35;
  -webkit-line-clamp: 2;
}
.t-movie .en{
  max-width: 100%;
  font-size: .76rem;
  line-height: 1.4;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.mtl-title{ font-size: .95rem; }
.mtl-en,
.mtl-empty{ font-size: .78rem; }
.mtl-n{ font-size: .82rem; }
.inline-title{ font-size: 1.2rem; }
.inline-title-en,
.inline-meta,
.inline-section .label{ font-size: .82rem; }
.inline-section .text{ font-size: .95rem; }
.m-title{ font-size: 1.6rem; }
.m-title-en{ font-size: 1rem; }
.m-meta,
.m-desc{ font-size: .95rem; }
.pill,
.pill.tag-pill{ font-size: .78rem; }

@media (max-width: 1100px) and (min-width: 921px){
  .layout{ grid-template-columns: 330px minmax(0, 1fr); gap: 18px; }
}

/* 窄桌面下把月份切换按钮收回卡片内，避免放大字号后横向溢出 */
@media (max-width: 1400px){
  .side-nav .prev{ left: 8px; }
  .side-nav .next{ right: 8px; }
}

@media (max-width: 920px){
  html{ font-size: 18px; }
  body{ font-size: 1rem; }
  .layout{ grid-template-columns: 1fr; }
}
