/* 自动生成（scripts/livecal-css.mjs），不要手改 */
.ev-calw{position:relative;flex:none}
.ev-calbtn{display:inline-flex;align-items:center;gap:7px;height:44px;padding:0 16px;border:1px solid var(--line);border-radius:22px;background:var(--bg);color:var(--fg);font:inherit;font-size:14.5px;font-weight:600;white-space:nowrap;cursor:pointer;transition:border-color .15s,color .15s,box-shadow .15s}
.ev-calbtn svg{width:17px;height:17px;color:var(--accent)}
.ev-calbtn i{width:7px;height:7px;margin-left:2px;border-right:1.6px solid var(--fg3);border-bottom:1.6px solid var(--fg3);transform:translateY(-2px) rotate(45deg);transition:transform .15s}
.ev-calbtn:hover,.ev-calbtn.open{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}
.ev-calbtn.open i{transform:translateY(1px) rotate(-135deg)}
.ev-calbtn.on{border-color:var(--accent);background:var(--accent-bg);color:var(--accent)}
.ev-cal{position:absolute;right:0;top:calc(100% + 10px);z-index:45;width:328px;display:flex;flex-direction:column;padding:14px 14px 12px;border-radius:16px;background:var(--bg);box-shadow:0 0 0 1px var(--line),0 22px 50px -16px rgba(16,24,40,.35);animation:calIn .16s ease-out}
.ev-cal[hidden]{display:none}
@keyframes calIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.ev-cal-box{flex:1}
.ev-cal-h{display:flex;align-items:center;gap:4px;margin-bottom:6px}
.ev-cal-h b{margin-right:auto;font-size:15px;font-weight:700;color:var(--fg);white-space:nowrap}
.ev-cal-h small{order:-1;display:none}
.ev-cal-h button{flex:none;display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;padding:0 7px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg2);font:inherit;font-size:16px;line-height:1;cursor:pointer}
.ev-cal-h button:hover{color:var(--accent);border-color:var(--accent)}
.ev-cal-h .ev-cal-tod{font-size:12px;font-weight:600}
.ev-cal-g{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.ev-cal-g .wd{height:20px;font-size:11.5px;line-height:20px;text-align:center;color:var(--fg3)}
.ev-cal-g .d{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;height:34px;padding:0;border:0;border-radius:8px;background:none;font:inherit;font-size:13px;font-variant-numeric:tabular-nums;color:var(--fg2)}
.ev-cal-g .d.tod:not(.has){box-shadow:inset 0 0 0 1.5px var(--fg3);font-weight:700;color:var(--fg)}
.ev-cal-g .d.has{cursor:pointer;font-weight:700;transition:transform .12s,background .12s,color .12s}
.ev-cal-g .d.has:hover{transform:translateY(-1px)}
.ev-cal-g .d em{display:flex;gap:2px;height:4px;margin-top:1px}
.ev-cal-g .d em i{width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.75}
.ev-cal-g .d.p{background:var(--bg2);color:var(--fg3)}
.ev-cal-g .d.o{background:rgba(26,164,107,.14);color:#12935c}
.ev-cal-g .d.u{background:var(--accent-bg);color:var(--accent)}
.ev-cal-g .d.tod.has{box-shadow:inset 0 0 0 1.5px currentColor}
.ev-cal-g .d.sel{color:#fff!important;box-shadow:0 4px 10px -4px rgba(16,24,40,.35)}
.ev-cal-g .d.sel.p{background:#8a93a3}
.ev-cal-g .d.sel.o{background:#1aa46b}
.ev-cal-g .d.sel.u{background:var(--accent)}
.ev-cal-x{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;padding-top:9px;border-top:1px solid var(--line)}
.ev-cal-lg{display:flex;gap:9px;margin:0;font-size:11.5px;color:var(--fg3);white-space:nowrap}
.ev-cal-lg span{display:inline-flex;align-items:center;gap:4px}
.ev-cal-lg span::before{content:"";width:8px;height:8px;border-radius:3px}
.ev-cal-lg .p::before{background:#b6bcc8}
.ev-cal-lg .o::before{background:#1aa46b}
.ev-cal-lg .u::before{background:var(--accent)}
.ev-cal-sub{display:inline-flex;align-items:center;gap:4px;height:26px;padding:0;border:0;background:none;color:var(--accent);font:inherit;font-size:12.5px;font-weight:600;white-space:nowrap;cursor:pointer}
.ev-cal-sub svg{width:14px;height:14px}
.ev-cal-sub:hover{text-decoration:underline}
.ev-cal .cal-pop{left:auto;right:0;width:280px}
.ev-cal-tip{position:fixed;z-index:60;width:260px;padding:10px 12px;border-radius:12px;background:var(--bg);box-shadow:0 0 0 1px var(--line),0 14px 34px -10px rgba(16,24,40,.3);pointer-events:none;font-size:13px}
.ev-cal-tip[hidden]{display:none}
.ev-cal-tip b{display:block;margin-bottom:6px;font-size:13px;color:var(--fg)}
.ev-cal-tip span{display:block;position:relative;padding-left:12px;margin-top:4px;line-height:1.45;color:var(--fg2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ev-cal-tip span::before{content:"";position:absolute;left:0;top:6px;width:6px;height:6px;border-radius:50%;background:var(--accent)}
.ev-cal-tip span.past::before{background:#b6bcc8}
.ev-cal-tip span.ongoing::before{background:#1aa46b}
.ev-cal-tip small{display:block;margin-top:6px;color:var(--fg3)}
.ev-day{display:flex;align-items:center;gap:10px;margin:16px 0 0;font-size:14.5px;font-weight:600;color:var(--fg)}
.ev-day[hidden]{display:none}
.ev-day button{height:30px;padding:0 12px;border:0;border-radius:15px;background:var(--bg2);color:var(--fg2);font:inherit;font-size:13px;font-weight:500;cursor:pointer}
.ev-day button:hover{color:var(--accent)}
.cal-m{position:relative;display:inline-flex}
.cal-m [data-calm]{display:inline-flex;align-items:center;gap:6px}
.cal-pop{position:absolute;left:0;top:calc(100% + 8px);z-index:40;width:300px;padding:8px;border-radius:16px;background:var(--bg);box-shadow:0 0 0 1px var(--line),0 18px 44px -12px rgba(16,24,40,.32);text-align:left}
.cal-pop.r{left:auto;right:0}
.ev-cal .cal-pop{left:auto;right:0;width:300px}
.cal-pop[hidden]{display:none}
.cal-pop-h{margin:4px 8px 6px;font-size:12.5px;line-height:1.55;color:var(--fg3)}
.cal-wx{margin:4px 4px 8px;padding:8px 10px;border-radius:10px;background:rgba(217,119,6,.1);color:#b45d04;font-size:13px;line-height:1.55}
.cal-wx[hidden]{display:none}
.cal-pop a,.cal-pop [data-copy]{display:block;width:100%;padding:10px 10px;border:0;border-radius:10px;background:none;font:inherit;text-align:left;color:var(--fg);cursor:pointer;text-decoration:none}
.cal-pop a:hover,.cal-pop [data-copy]:hover{background:var(--bg2)}
.cal-pop a b,.cal-pop [data-copy] b{display:block;font-size:14px;font-weight:600}
.cal-pop small{display:block;margin-top:2px;font-size:12px;font-weight:400;color:var(--fg3)}
.cal-x{display:none}
@media (max-width:640px){.cal-m.on::before{content:"";position:fixed;inset:0;z-index:90;background:rgba(10,14,24,.45)}.cal-m .cal-pop,.ev-cal .cal-pop{position:fixed;left:0;right:0;top:auto;bottom:0;z-index:91;width:auto;padding:10px 12px max(14px,env(safe-area-inset-bottom));border-radius:20px 20px 0 0;animation:calUp .2s ease-out}.cal-pop-h{margin:6px 8px 10px;font-size:13px;text-align:center}.cal-pop a,.cal-pop [data-copy]{padding:13px 12px}.cal-pop a b,.cal-pop [data-copy] b{font-size:15.5px}.cal-x{display:block;width:100%;height:46px;margin-top:6px;border:0;border-radius:12px;background:var(--bg2);color:var(--fg2);font:inherit;font-size:15px;font-weight:600;cursor:pointer}html.cal-lock{overflow:hidden}}
@keyframes calUp{from{transform:translateY(100%)}to{transform:none}}
@media (max-width:640px){.ev-calbtn{height:42px;padding:0 13px;font-size:14px}.ev-calw{position:static}.ev-cal{left:0;right:0;width:auto}}
/* 直播页自己的几条（接在 cms.css 抽出来的活动日历样式后面） */
.lr-room-card[hidden]{display:none!important}
/* 列表页：「直播日历」按钮放在状态标签那一行的右边，比活动页矮一点，和标签对齐 */
.lr-list-meta>.lr-calw{flex:none;margin-left:0}
.lr-calbtn{height:36px;padding:0 14px;border-radius:18px;font-size:13.5px}
.lr-calbtn svg{width:16px;height:16px}
.lr-day{margin:0 0 16px}
/* 详情页：标题右边「加入日历」+「分享」 */
.lr-head-tools{display:flex;align-items:center;gap:8px;flex:none}
.lr-head-tools .cal-pop{left:auto;right:0}
.lr-calbtn-add{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:38px;padding:0 15px;border:1px solid var(--line);border-radius:999px;background:var(--bg);color:var(--fg);font:inherit;font-size:14px;font-weight:600;white-space:nowrap;cursor:pointer;transition:border-color .15s,color .15s,box-shadow .15s}
.lr-calbtn-add svg{width:16px;height:16px;color:var(--accent)}
.lr-calbtn-add:hover,.cal-m.on .lr-calbtn-add{border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}
@media (max-width:720px){.lr-list-meta>.lr-calw{margin-left:auto}}
@media (max-width:640px){.lr-list-meta{position:relative}.lr-calbtn{height:34px;padding:0 12px;font-size:13px}.lr-calbtn i{display:none}.lr-calbtn-add{height:34px;padding:0 12px;font-size:13px}}
@media (max-width:420px){.lr-calbtn-add{width:34px;padding:0}.lr-calbtn-add span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}
