/* 签到日历：7列触控网格；仅影响 calendar-page。 */
.calendar-page.main-pad{padding:18px 4px 22px}
.calendar-page .title-bar{margin:0 10px 17px}
.calendar-reward{display:flex;align-items:center;gap:13px;margin:0 9px 12px;padding:16px 13px;border:1px solid #d4dfc4;border-radius:18px;background:linear-gradient(140deg,#f9f8e9,#e6efd6)}
.calendar-reward>.bean-coin{flex:none;width:45px;height:45px;font-size:22px}
.calendar-reward>div{min-width:0;flex:1}.calendar-reward small{display:block;font-size:11px;color:#75876a}.calendar-reward strong{display:block;margin-top:4px;font-size:30px;line-height:1.1;color:#466b3e;font-weight:500}.calendar-reward strong span{font-size:12px}.calendar-reward>a{display:flex;align-items:center;min-height:44px;font-size:12px;color:#526b40;white-space:nowrap}
.calendar-stats{display:flex;justify-content:center;gap:25px;margin:0 9px 14px;font-size:12px;color:#7a896c}.calendar-stats b{color:#486b41;font-size:17px;font-weight:600}
.calendar-login-note{margin:0 12px 17px;font-size:13px;line-height:1.8;color:#748364}
.calendar-frame{width:100%;padding:1px;border:1px solid #dce4d0;border-radius:17px;background:#fffef8;overflow:hidden}
.calendar-heading{display:flex;align-items:center;justify-content:space-between;padding:5px 5px 0;gap:8px}.calendar-heading h2{font-size:20px;color:#3a6047;font-family:"Songti SC",serif;font-weight:600;letter-spacing:.5px}.calendar-heading>button{width:44px;min-height:44px;flex:none;padding:0;font-size:30px;line-height:1;color:#658260;border-radius:12px;background:#eef2e5}
.calendar-jump{display:flex;justify-content:center;align-items:center;gap:7px;padding:8px 4px 10px}.calendar-jump label{display:block;margin:0}.calendar-jump select{max-width:108px;min-height:44px;margin:0;padding:5px 6px;border:1px solid #e2e6d9;border-radius:9px;font:inherit;font-size:16px;color:#5c7252;background:#fbfcf6}.calendar-jump button{min-height:44px;padding:6px 9px;border-radius:9px;color:#6b7951;background:#f2f0dc;font-size:12px;white-space:nowrap}
.calendar-week{display:grid;grid-template-columns:repeat(7,minmax(44px,1fr));gap:0}.calendar-weekdays{padding:4px 0;border-top:1px solid #e9eddf;border-bottom:1px solid #e9eddf;background:#f6f7ed}.calendar-weekdays>span{text-align:center;font-size:12px;color:#819177;line-height:29px}.calendar-weekdays>span:first-child,.calendar-weekdays>span:last-child{color:#a08b60}
.calendar-day{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:44px;min-height:65px;padding:5px 0 13px;line-height:1.25;border-radius:11px;border:2px solid transparent;color:#3f5543;background:transparent;overflow:hidden;touch-action:manipulation}.calendar-day strong{display:block;line-height:1.2;font-size:17px;font-weight:500}.calendar-day>span{display:block;max-width:100%;margin-top:5px;font-size:10px;line-height:1.4;white-space:nowrap;color:#939783}.calendar-day>i{position:absolute;bottom:3px;left:0;right:0;height:12px;text-align:center;color:#678250;font-size:11px;font-style:normal;line-height:12px}.calendar-day.is-term>span{color:#ad8850}.calendar-day.is-signed{background:#eef4e6}.calendar-day.is-today strong{color:#fff;background:#668957;border-radius:50%;width:26px;height:26px;line-height:26px;margin-block:-3px}.calendar-day.is-selected{border-color:#b59a58;background:#f6f1df}.calendar-day.is-selected.is-signed{background:#eaf0da}.calendar-day:focus-visible{outline:2px solid #356b58;outline-offset:-3px}.calendar-spacer{min-width:44px;min-height:65px}
.calendar-legend{display:flex;justify-content:center;gap:16px;align-items:center;padding:12px 4px;font-size:10px;color:#899575;border-top:1px solid #eef0e5}.calendar-legend-today{color:#61844f}.calendar-legend-selected{color:#a28a4c}
.calendar-detail{margin:15px 8px 0;padding:17px 14px;border-radius:16px;border:1px solid #e1e4d4;background:#fffef9}.calendar-detail h2{font-size:17px;color:#3e6046;font-weight:500}.calendar-detail h2 small{display:inline-block;margin-left:7px;font-size:10px;color:#91967b;font-weight:400}.calendar-lunar-full{font-size:15px;color:#788453;line-height:1.8;margin-top:8px}.calendar-ganzhi{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:13px 0;padding:0}.calendar-ganzhi>div{text-align:center;padding:9px 3px;background:#f2f4e8;border-radius:10px}.calendar-ganzhi dt{font-size:10px;color:#959b81}.calendar-ganzhi dd{margin:4px 0 0;font-family:"Songti SC",serif;font-size:21px;color:#557044}.calendar-term{font-size:12px;color:#ac8b4e;line-height:1.8}.calendar-record-note{font-size:12px;color:#7d8c6d;margin-top:7px;line-height:1.8}.calendar-convention{font-size:11px;line-height:1.8;color:#969c84;margin-top:11px;border-top:1px solid #edefe2;padding-top:10px}
.calendar-actions{margin:16px 9px 0}.calendar-actions>button{min-height:50px;font-size:14px}.calendar-actions>p{font-size:11px;color:#899479;line-height:1.9;margin-top:11px}.calendar-actions .calendar-attribution{font-size:10px;color:#a0a58e}.calendar-attribution a{text-decoration:underline;text-underline-offset:2px}
.calendar-error{margin:14px 9px 0;padding:11px 12px;border-radius:10px;color:#9a6854;background:#fbf0e7;font-size:12px;line-height:1.8;overflow-wrap:anywhere}.calendar-error button{min-height:44px;padding:3px 9px;text-decoration:underline;color:#7d664d}
.calendar-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.calendar-page[aria-busy=true] .calendar-frame{opacity:.7}.calendar-page button,.calendar-page select{touch-action:manipulation}.calendar-page select:focus-visible{outline:2px solid #6a8b5b;outline-offset:2px}
@media(min-width:390px){.calendar-day,.calendar-spacer{min-height:70px}.calendar-day>span{font-size:11px}.calendar-detail{padding:18px 17px}.calendar-jump{gap:12px}}
@media(prefers-reduced-motion:reduce){.calendar-page *, .calendar-page *::before, .calendar-page *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
