/* 往期卡片（2026-10-19），只在 cn.html 加载。配合 _cards.js / tools/build_cards.py */
.cardsec{padding:14px 20px 5px;font-size:11px;color:var(--muted);letter-spacing:.14em}
.navi.sub.cardnav{padding:8px 20px;font-size:14px;color:var(--text)}
.navi.sub.cardnav.on{color:var(--ink);font-weight:600}

.cv{display:grid;grid-template-columns:var(--cvw,176px) 14px minmax(0,1fr);gap:4px;align-items:start}
/* 全站 main 在宽屏下左右各留 (100%-1090px)/2 的居中边距，卡片页不要，日期列贴着左栏 */
main:has(.cardsv){padding:26px 32px 90px;max-width:none}
.cv-side{position:sticky;top:16px;max-height:calc(100vh - 32px);display:flex;flex-direction:column;min-height:0}
.cv-q input{width:100%;font:inherit;font-size:13px;padding:7px 10px;border:1px solid var(--line);border-radius:7px;
  background:var(--card);color:var(--text);outline:none}
.cv-q input:focus{border-color:var(--ink2)}
.cv-list{overflow-y:auto;margin-top:10px;padding-right:4px;min-height:0;flex:1}
.cv-mon{font-size:11px;color:var(--muted);letter-spacing:.1em;padding:10px 8px 4px}
.cv-day{display:flex;align-items:baseline;gap:6px;padding:5px 8px;border-radius:6px;font-size:13px;color:var(--muted);cursor:pointer}
.cv-day b{color:var(--text);font-weight:600;font-variant-numeric:tabular-nums}
.cv-day em{font-style:normal;margin-left:auto;font-size:11.5px}
.cv-day:hover{background:#efece5}
.cv-day.on{background:#e9eef7}
.cv-day.on b{color:var(--ink)}
.cv-hit{display:block;padding:7px 8px;border-radius:6px;cursor:pointer;border-bottom:1px solid var(--line2)}
.cv-hit:hover{background:#efece5}
.cv-hd{display:flex;gap:6px;font-size:11.5px;color:var(--muted)}
.cv-hd b{font-weight:600;color:var(--text)}
.cv-hd i{font-style:normal;color:var(--alert)}
.cv-ht{display:block;font-size:13px;line-height:1.5;color:var(--text);margin-top:1px}
.cv-sn{display:block;font-size:12px;line-height:1.55;color:var(--muted);margin-top:2px}
.cv-none{font-size:13px;color:var(--muted);padding:8px}
.cv-hit mark,.cv-ht mark{background:#fde9a8;color:inherit;border-radius:2px;padding:0 1px}

/* 卡片本体：尽量像飞书里看到的样子 */
.cv-feedw{display:flex;align-items:stretch;min-width:0}
.cv-feed{min-width:0;flex:0 1 var(--cfw,880px);max-width:var(--cfw,880px)}
.cv-drag{align-self:stretch;cursor:col-resize;position:relative;min-height:60vh;touch-action:none}
.cv-drag::after{content:"";position:absolute;top:0;bottom:0;left:50%;width:2px;margin-left:-1px;border-radius:2px;background:transparent;transition:background .15s}
.cv-drag:hover::after,.cv-drag.on::after{background:#c9d4e8}
.cv-drag2{flex:0 0 14px;position:sticky;top:0;height:100vh;min-height:0}
body.cv-dragging{cursor:col-resize;user-select:none}
.fc{background:var(--card);border:1px solid var(--line);border-radius:10px;margin:0 0 30px;overflow:hidden;
  box-shadow:0 1px 2px rgba(0,0,0,.03);font-size:14.5px;line-height:1.7}
.fc-h{padding:13px 20px}
.fc-t{font-weight:700;font-size:16.5px}
.fc-st{font-size:12.5px;opacity:.75;margin-top:2px}
.fc-hd-orange{background:#fff1e3}.fc-hd-orange .fc-t{color:#c4570c}
.fc-hd-indigo{background:#edeffd}.fc-hd-indigo .fc-t{color:#3c48b8}
.fc-hd-turquoise{background:#e5f6f3}.fc-hd-turquoise .fc-t{color:#0f7f73}
.fc-hd-blue{background:#e9f0fd}.fc-hd-blue .fc-t{color:#245bdb}
.fc-b{padding:12px 20px 16px}
.fc .sx{border-radius:6px;scroll-margin-top:14px}
.fc .sx.flash,.fc-h.flash{animation:cvflash 1.4s ease-out}
@keyframes cvflash{0%{background:#fdeeb8}100%{background:transparent}}
.fc .md p{margin:0 0 7px}
.fc .md.ta-right{text-align:right}
.fc .md.small{font-size:12.5px}
.fc blockquote{margin:4px 0 10px;padding:2px 0 2px 12px;border-left:3px solid var(--line);color:#6b665e}
.fc ul,.fc ol{margin:2px 0 8px;padding-left:22px}
.fc hr{border:0;border-top:1px solid var(--line2);margin:14px 0}
.fc pre{background:#f7f6f2;border-radius:6px;padding:8px 10px;font-size:12px;line-height:1.5;overflow-x:auto;margin:4px 0 10px}
.fc code{background:#f3f1ec;border-radius:3px;padding:0 3px;font-size:.92em}
.fc a{color:var(--ink2);text-decoration:underline}
.fc .cols{display:flex;gap:6px}
.fc .cols .col{min-width:0}
.fc details.panel{border:1px solid var(--line2);border-radius:7px;padding:6px 12px;margin:8px 0}
.fc details.panel summary{cursor:pointer;font-size:14px}
.fc .tbl{overflow-x:auto;margin:6px 0 12px;border:1px solid var(--line2);border-radius:6px}
.fc table{border-collapse:collapse;font-size:13px;width:100%}
.fc th{background:#f5f4f0;color:var(--muted);font-weight:600;text-align:left;padding:6px 9px;white-space:nowrap}
.fc td{padding:5px 9px;border-top:1px solid var(--line2);white-space:nowrap;font-variant-numeric:tabular-nums}
.fc th.r,.fc td.r{text-align:right}
.fc-grey{color:#8f959e}.fc-red{color:#d83931}.fc-green{color:#2ea121}.fc-orange{color:#de7802}
.fc-blue{color:#245bdb}.fc-yellow{color:#b08900}.fc-purple{color:#7f3bf5}.fc-wathet{color:#1f8fd6}
.fc-turquoise{color:#0c9e8c}.fc-carmine{color:#c91e64}.fc-violet{color:#a23ac2}.fc-indigo{color:#4954e6}.fc-lime{color:#7ea600}
.tt{display:inline-block;font-size:12px;line-height:1.5;padding:0 6px;border-radius:4px;background:#eef1f6;color:#4a5568}
.tt-blue{background:#e1eaff;color:#245bdb}.tt-green{background:#d9f5d6;color:#237b19}.tt-orange{background:#feead2;color:#c4570c}

@media(max-width:820px){
  .cv{display:block}
  .cv-drag{display:none}
  .cv-feed{max-width:none}
  .cv-side{position:static;max-height:none;margin-bottom:14px}
  .cv-list{display:flex;gap:4px;overflow-x:auto;overflow-y:hidden;max-height:none;padding-bottom:4px}
  .cv-mon{display:none}
  .cv-day{flex:0 0 auto;border:1px solid var(--line);background:var(--card)}
  .cv-list .cv-hit{flex:0 0 260px;border:1px solid var(--line);background:var(--card);border-radius:8px}
  .cv-list .cv-none,.cv-list .cv-mon:first-child{display:block;flex:0 0 auto}
  .fc-b{padding:10px 14px 14px}
}
/* 全站 _style.css 第 576 行在手机断点之后又写了一遍 main 的左边距，手机上正文被推到右边（档案页同样有）。
   这里只修卡片页 */
@media(max-width:820px){main:has(.cardsv){margin-left:0;padding:20px 16px 70px}}

/* 档案 ↔ 卡片 */
.fc a.uidl{color:inherit;text-decoration:none;cursor:text}
.fc a.uidl.has{color:var(--ink2);cursor:pointer;text-decoration:underline dotted;text-underline-offset:3px}
.fc a.uidl.has:hover{text-decoration-style:solid}
details.cardhits{margin:14px 0 18px;border:1px solid var(--line);border-radius:9px;background:var(--card);padding:9px 14px}
details.cardhits summary{cursor:pointer;font-size:14px;font-weight:600;color:var(--text)}
details.cardhits summary span{font-weight:400;font-size:12px;color:var(--muted);margin-left:10px}
.ch-list{margin-top:8px;max-height:320px;overflow-y:auto}
.ch-list a{display:flex;gap:8px;align-items:baseline;padding:5px 4px;border-top:1px solid var(--line2);font-size:13px;line-height:1.5}
.ch-list a:hover{background:#faf8f3}
.ch-list b{flex:0 0 42px;font-variant-numeric:tabular-nums;color:var(--muted);font-weight:600}
.ch-list i{font-style:normal;color:var(--alert);font-size:11.5px;flex:0 0 auto}

/* 活动节奏表（10-21），见 _cards.js 的 calMount。活动卡页顶上切换「往期卡片｜活动节奏」，选了占整个正文区 */
.acal-sw{display:inline-flex;margin-top:12px;padding:3px;border:1px solid var(--line);border-radius:9px;background:var(--card)}
.acal-sw a{padding:5px 14px;border-radius:7px;font-size:13px;color:var(--muted);cursor:pointer}
.acal-sw a small{font-size:11px;color:var(--muted);margin-left:2px}
.acal-sw a.on{background:var(--ink);color:#fff}
.acal-sw a.on small{color:#cdd6e6}
.acal{padding:14px 18px 12px;background:var(--card);border:1px solid var(--line);border-radius:12px}
.acal-head,.acal-row{display:grid;grid-template-columns:170px minmax(0,1fr) 130px;gap:12px;align-items:center}
.acal-ax{position:relative;height:20px;border-bottom:1px solid var(--line)}
.acal-tk{position:absolute;bottom:2px;font-size:10.5px;color:var(--muted);padding-left:3px;border-left:1px solid var(--line2);line-height:12px;white-space:nowrap}
.acal-tk.m{color:var(--text);font-weight:600;border-left:1.5px solid var(--muted)}
.acal-row{padding:5px 0;border-bottom:1px dotted var(--line2)}
.acal-rn{font-size:13px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.acal-rm{font-size:11.5px;color:var(--muted);white-space:nowrap}
.acal-tr{position:relative;height:20px;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(100%/9 - 1px),transparent 0)}
.acal-today{position:absolute;top:-6px;bottom:-6px;width:0;border-left:1.5px dashed #c8553d;z-index:1;pointer-events:none}
.acal-sg{position:absolute;top:3px;bottom:3px;border-radius:4px;background:#4f86c6;cursor:pointer;box-sizing:border-box}
.acal-sg span{position:absolute;left:calc(100% + 4px);top:-1px;font-size:10.5px;line-height:16px;color:var(--muted);white-space:nowrap;pointer-events:none}
.acal-sg span.lf{left:auto;right:calc(100% + 4px)}
.acal-sg.nv{background:#d6d0c4}
.acal-sg.cd{box-shadow:inset 0 0 0 2px #e0a33a}
.acal-sg:hover{filter:brightness(1.1)}
.acal-sg.on{outline:2px solid var(--ink);outline-offset:1px}
.acal-ft{margin-top:10px;font-size:11.5px;color:var(--muted)}
.acal-d{position:relative;margin:4px 0 8px 182px;padding:10px 14px;border-radius:9px;background:var(--paper);border:1px solid var(--line);font-size:12.5px;color:var(--muted);line-height:1.65}
.acal-x{position:absolute;right:10px;top:6px;cursor:pointer;color:var(--muted);font-size:16px}
.acal-rh{font-size:14px;font-weight:700;color:var(--text);margin:0 18px 6px 0}
.acal-rh small{margin-left:8px;font-weight:400;font-size:11.5px;color:var(--muted)}
.acal-t{margin-left:8px;padding:1px 8px;border-radius:999px;background:#e0a33a;color:#fff;font-size:11px;font-weight:400}
.acal-d dl{display:grid;grid-template-columns:64px 1fr;gap:2px 10px;margin:4px 0 0;color:var(--text)}
.acal-d dt{color:var(--muted)}
.acal-d dd{margin:0}
.acal-oa{color:var(--ink2);cursor:pointer}
.acal-go{display:inline-block;margin-top:6px;color:var(--ink2);cursor:pointer;font-weight:600}

/* 活动日历视角（10-21），见 _cards.js 的 calMon。整宽月历，活动名写在条上 */
.acmb{padding:14px 18px 12px}
.acm-top{display:flex;align-items:center;gap:12px;margin-bottom:8px}
.acm-top b{font-size:15px;color:var(--text)}
.acm-nv{cursor:pointer;padding:1px 9px;border:1px solid var(--line);border-radius:6px;color:var(--ink)}
.acm-nv.dis{opacity:.3;pointer-events:none}
.acm-wd{display:grid;grid-template-columns:repeat(7,1fr);font-size:11.5px;color:var(--muted);border-bottom:1px solid var(--line);padding-bottom:4px}
.acm-wd i{font-style:normal;padding-left:6px}
.acm-w{display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:22px;grid-auto-rows:22px;row-gap:3px;padding:4px 0 8px;border-bottom:1px solid var(--line2);min-height:54px}
.acm-n{grid-row:1;font-size:12px;color:var(--text);padding-left:6px}
.acm-n.fu{color:#c9c3b8}
.acm-n.td{color:#c8553d;font-weight:700}
.acal-sg.acm-b{position:relative;top:auto;bottom:auto;margin:0 3px;padding:0 7px;font-size:12px;line-height:22px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:5px}
.acal-sg.acm-b small{margin-left:6px;font-size:10.5px;opacity:.85}
.acal-sg.acm-b.nv{color:#6d675e}
.acal-sg.acm-b.cl{margin-left:0;border-top-left-radius:0;border-bottom-left-radius:0}
.acal-sg.acm-b.cr{margin-right:0;border-top-right-radius:0;border-bottom-right-radius:0}
.acal-d.inm{margin-left:0}

/* Activity timeline: keep long English names and statistics inside their own columns. */
.acal{--acal-name:190px;--acal-meta:160px;--acal-gap:16px;min-width:0;max-width:100%;box-sizing:border-box}
.acal-head,.acal-row{grid-template-columns:var(--acal-name) minmax(0,1fr) var(--acal-meta);column-gap:var(--acal-gap)}
.acal-head>*,.acal-row>*{min-width:0}
.acal-row{padding:8px 0}
.acal-rn{white-space:normal;overflow-wrap:anywhere;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.acal-rm{white-space:normal;overflow-wrap:anywhere;line-height:1.4}
.acal-editions,.acal-last{display:block}
.acal-last{font-size:11px;margin-top:2px}
.acal-ax,.acal-tr{min-width:0}
.acal-tr{height:24px}
.acal-sg span{line-height:18px;top:0}
.acal-tk:last-child{transform:translateX(-100%)}
.acal-d{margin-left:calc(var(--acal-name) + var(--acal-gap));overflow-wrap:anywhere}
.acal-d dl{grid-template-columns:minmax(80px,120px) minmax(0,1fr)}
.acal-d dd{min-width:0}
.acal-sw{display:flex;flex-wrap:wrap;width:max-content;max-width:100%;box-sizing:border-box;gap:3px;align-items:stretch}
.acal-sw a{display:flex;flex-direction:column;justify-content:center;min-width:0;min-height:34px;box-sizing:border-box;max-width:100%;padding:6px 12px}
.acal-sw a small{display:block;margin-left:0;line-height:1.4}
@media(max-width:1100px){
 .acal-head{display:block}
 .acal-head>span{display:none}
 .acal-row{grid-template-columns:minmax(0,1fr) minmax(110px,150px);grid-template-areas:"name meta" "track track";row-gap:6px}
 .acal-rn{grid-area:name}
 .acal-rm{grid-area:meta;text-align:right}
 .acal-tr{grid-area:track}
 .acal-d{margin-left:0}
}
@media(max-width:520px){
 .acal{padding:12px;--acal-gap:10px}
 .acal-row{grid-template-columns:minmax(0,1fr) 110px}
 .acal-sw a{padding:6px 10px}
 .acal-d dl{grid-template-columns:minmax(0,1fr)}
 .acal-d dd{margin-bottom:5px}
}

@media(max-width:520px){.acal-tk:not(.m){display:none}}

/* 10-23 活动配色＋节奏表横向拖动 */
.acal-sg{background:var(--c,#4f86c6)}
.acal-sg.nv{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--c,#888) 30%,#fff) 0 5px,color-mix(in srgb,var(--c,#888) 14%,#fff) 5px 10px);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c,#888) 45%,#fff)}
.acal-sg.nv.cd{box-shadow:inset 0 0 0 2px #e0a33a}
.acal-sg.acm-b.nv{color:color-mix(in srgb,var(--c,#666) 75%,#000)}
.acal-dot{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:7px;vertical-align:0}
.acal-ax,.acal-tr{overflow:hidden}
.acal-in{position:absolute;top:0;bottom:0;left:0;width:calc(var(--acal-z,1) * 100%);transform:translateX(var(--acal-x,0px))}
.acal.pan .acal-tr,.acal.pan .acal-ax{cursor:grab}
.acal.drag,.acal.drag *{cursor:grabbing!important;user-select:none}
.acal-zm{display:flex;gap:4px;align-self:end}
.acal-zm a{font-size:11px;padding:1px 8px;border:1px solid var(--line);border-radius:6px;color:var(--muted);cursor:pointer;background:var(--card)}
.acal-zm a.on{background:var(--ink);color:#fff;border-color:var(--ink)}
@media(max-width:1100px){.acal-head>span.acal-zm{display:flex;margin-bottom:6px}}

.acal-lg{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;margin:0 0 12px;font-size:12px;color:var(--text)}
.acal-lg span{display:inline-flex;align-items:center;gap:6px}
.acal-sw1{display:inline-block;width:26px;height:12px;border-radius:3px}
.acal-sw1.nv{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--c) 30%,#fff) 0 5px,color-mix(in srgb,var(--c) 14%,#fff) 5px 10px);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c) 45%,#fff)}
.acal-sw1.cd{box-shadow:inset 0 0 0 2px #e0a33a}
.acal-sw1.td{width:0;height:14px;border-left:1.5px dashed #c8553d;border-radius:0}
.acal-td{color:#c8553d;font-weight:700}
.acal-lgn{color:var(--muted)}

.acal-sg.uk{background:color-mix(in srgb,var(--c,#888) 10%,#fff);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--c,#888) 55%,#fff);background-image:none}
.acal-sg.uk.cd{box-shadow:inset 0 0 0 2px #e0a33a}
.acal-sg.acm-b.uk{color:color-mix(in srgb,var(--c,#666) 75%,#000)}
.acal-sw1.uk{background:color-mix(in srgb,var(--c) 10%,#fff);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--c) 55%,#fff)}
.acal-sw1{outline:none}
