@import "https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;500;600;700&display=swap";:root{color:#17345b;font-synthesis:none;--navy:#143763;--blue:#2463b7;--line:#dce4ef;--muted:#8994a6;--serif:"Noto Serif SC","Songti SC",SimSun,Georgia,serif;--red:#c74654;--green:#4c804d;--fr-bg:#eaf1ff;--cn-bg:#fff0f0;--term-bg:#edf5e6;background:#f4f7fc;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.35}button{background:0 0;border:0}button,select,a{-webkit-tap-highlight-color:transparent}button:focus-visible,select:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #4b86d3}svg{vertical-align:middle;flex-shrink:0;width:19px;height:19px}button{transition:background-color .15s,color .15s,box-shadow .15s}button:hover:not(:disabled){background-color:#edf3fc}button:active:not(:disabled){filter:brightness(.97)}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:10;background:#fff;padding:10px 18px;position:fixed;top:-60px;left:16px}.skip-link:focus{top:10px}.hero{background-image:var(--hero-image);background-color:#f5f8fc;background-position:top;background-repeat:no-repeat;background-size:max(100%,1120px);height:clamp(168px,14.5vw,250px);position:relative;overflow:hidden}.hero:after{content:"";background:linear-gradient(#0000,#f4f7fc);height:22px;position:absolute;inset:auto 0 0}.page-shell{max-width:1700px;margin:auto;padding:0 30px 18px}.toolbar{justify-content:space-between;align-items:center;gap:22px;padding:4px 0 25px;display:flex}.view-switch{background:#eaf0f9;border:1px solid #cfdaec;border-radius:10px;flex-shrink:0;align-items:center;padding:4px;display:flex}.view-button{white-space:nowrap;color:#62718b;border-radius:7px;align-items:center;gap:8px;padding:11px 16px;font-size:13px;display:flex}.view-button svg{width:16px;height:16px}.view-button.active{color:#fff;background:#2463b7;box-shadow:0 2px 6px #28558b20}.view-button.active:hover{background:#1c57a7}.date-navigation{align-items:center;gap:14px;display:flex}.icon-button{background:#ffffffa8;border:1px solid #cfdbec;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:35px;height:35px;display:inline-flex}.icon-button svg{width:17px}.date-heading{text-align:center;min-width:156px}.date-selectors{justify-content:center;align-items:center;display:flex}.date-selectors select{appearance:none;cursor:pointer;font-family:var(--serif);background:0 0;border:0;padding:0 3px;font-size:23px;font-weight:600;line-height:1.6}.year-label{font-family:var(--serif);padding-left:6px;font-size:20px}.date-french{color:#6e819e;letter-spacing:.2px;font-family:Georgia,serif;font-size:13px}.today-button{background:#ffffffa8;border:1px solid #cfdbec;border-radius:8px;align-items:center;gap:7px;margin-left:3px;padding:9px 12px;font-size:12px;display:flex}.today-button svg{width:16px;height:16px}.filters{background:#ffffffa8;border:1px solid #dce4ef;border-radius:30px;align-items:center;gap:2px;padding:7px 3px;display:flex}.filter{white-space:nowrap;border-radius:20px;align-items:center;gap:7px;padding:6px 10px;font-size:12px;display:flex}.filter svg{width:17px;height:17px;color:var(--green)}.filter.off{opacity:.38;background:#e6eaf0;text-decoration:line-through}.flag{border-radius:2px;flex-shrink:0;width:18px;height:12px;display:inline-flex;overflow:hidden;box-shadow:0 0 0 .5px #00000010}.flag b{background:#fff;width:33.333%;height:100%}.flag b:first-child{background:#2254a4}.flag b:last-child{background:#e05157}.lantern{font-size:17px;line-height:1;display:inline-block}.content-layout{outline:none;grid-template-columns:minmax(0,1fr) 282px;align-items:start;gap:23px;display:grid}.month-panel{background:#fff;border:1px solid #cad7e9;border-radius:13px;overflow:hidden;box-shadow:0 5px 20px #21457203}.weekday-row{background:linear-gradient(110deg,#f1f5fb,#f6f8fd);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.weekday-row>div{text-align:center;border-right:1px solid var(--line);flex-direction:column;gap:4px;padding:15px 0 12px;font-size:14px;font-weight:500;display:flex}.weekday-row>div:last-child{border-right:0}.weekday-row small{color:#657b9a;font-family:Georgia,serif;font-size:13px;font-weight:400}.weekday-row .weekend{background:#fff1f180}.weekday-row .weekend small{color:#c26570}.weekend{color:var(--red)}.month-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.day-cell{min-width:0;min-height:calc(565px / var(--week-count));text-align:left;border-right:1px solid var(--line);border-top:1px solid var(--line);border-radius:0;flex-direction:column;align-items:stretch;padding:10px 10px 8px;display:flex;position:relative}.day-cell:nth-child(7n){border-right:0}.day-cell:hover:not(:disabled){background:#f5f8fd}.day-cell.selected{z-index:1;background:#f4f8ff;box-shadow:inset 0 0 0 1.5px #6999d3}.day-top{justify-content:space-between;align-items:center;min-height:27px;display:flex}.day-number{font-family:Georgia,var(--serif);justify-content:center;align-items:center;min-width:27px;min-height:29px;font-size:25px;font-weight:400;line-height:1;display:inline-flex}.lunar-label{color:#919aa8;margin-top:5px;padding-left:3px;font-size:11px}.day-cell.outside{color:#b9c0cb;background:#f9fafc}.day-cell.outside .lunar-label{color:#bcc2cb}.day-cell.outside .day-events{opacity:.5}.day-cell.is-today .day-number{background:var(--blue);color:#fff;border-radius:50%;width:31px;height:31px;font-size:22px}.today-mark{color:var(--blue);font-size:9px}.day-events{flex-direction:column;gap:4px;margin-top:7px;display:flex}.event-pill{text-align:left;border-radius:6px;align-items:flex-start;gap:6px;min-width:0;padding:7px;line-height:1.3;display:flex}.event-pill.fr{background:var(--fr-bg);color:#2e528a}.event-pill.cn{background:var(--cn-bg);color:#b64f5b}.event-pill.term{background:var(--term-bg);color:#507442}.event-pill svg{width:15px;height:15px;margin-top:1px}.event-pill .flag{width:15px;height:10px;margin-top:3px}.event-pill .lantern{margin-top:1px;font-size:14px}.event-copy{flex-direction:column;gap:3px;min-width:0;display:flex}.event-copy strong{overflow-wrap:anywhere;font-size:11px;font-weight:600}.event-copy small{overflow-wrap:anywhere;font-size:9px;line-height:1.35}.event-pill.compact{align-items:center;padding:5px 6px}.event-pill.compact .event-copy strong{font-size:10px}.more-events{color:var(--muted);padding-left:6px;font-size:9px}.calendar-caption{color:#8d9bb0;border-top:1px solid var(--line);justify-content:space-between;align-items:center;padding:12px 16px;font-size:10px;display:flex}.calendar-caption span{align-items:center;gap:6px;display:flex}.calendar-caption svg{width:13px;height:13px}.sidebar{flex-direction:column;gap:16px;display:flex}.selected-date-card{background:linear-gradient(130deg,#e9f1ff,#f8faff 75%);border:1px solid #d3deee;border-radius:12px;padding:20px 21px}.selected-date-top{justify-content:space-between;align-items:center;font-size:16px;font-weight:500;display:flex}.selected-date-top small{color:#7487a3;margin-left:5px;font-size:11px;font-weight:400}.small-calendar{color:#5c81b2}.lunar-full{font-family:var(--serif);margin:11px 0;font-size:25px;font-weight:500}.selected-date-card p{color:#70819a;flex-wrap:wrap;justify-content:space-between;gap:8px;margin:0;font-size:11px;line-height:1.6;display:flex}.selected-date-card p span{font-family:Georgia,serif}.selected-events{flex-wrap:wrap;gap:5px;margin-top:13px;display:flex}.quiet-day{color:#8694a7;border-top:1px solid #dce5f3;margin-top:14px;padding-top:14px;font-size:10px}.schedule-card{background:#ffffffbd;border:1px solid #d5dfed;border-radius:12px;overflow:hidden}.side-heading{border-bottom:1px solid #e8edf5;justify-content:space-between;align-items:center;padding:17px 18px 14px;display:flex}.side-heading h2{align-items:center;gap:8px;margin:0;font-size:14px;font-weight:600;display:flex}.side-heading svg{color:#4272ae;width:17px;height:17px}.count{color:#7c8fa9;background:#edf2fa;border-radius:20px;padding:3px 7px;font-size:10px}.schedule-list{padding:1px 14px}.schedule-row{text-align:left;border-bottom:1px solid #edf0f6;align-items:center;gap:9px;width:100%;padding:11px 2px;display:flex}.schedule-row:last-child{border-bottom:0}.schedule-icon{align-items:center;display:flex}.schedule-icon svg{width:16px;height:16px;color:var(--green)}.schedule-icon .flag{width:15px;height:10px}.schedule-icon .lantern{font-size:16px}.schedule-name{flex-direction:column;gap:3px;min-width:0;display:flex}.schedule-name strong{font-size:11px;font-weight:500}.schedule-name small{color:#8b98ac;overflow-wrap:anywhere;font-size:9px}.all-events{color:#4d78ae;border-top:1px solid #e8edf5;justify-content:center;align-items:center;gap:7px;width:100%;padding:12px;font-size:11px;display:flex}.all-events svg{width:14px;height:14px}.schedule-empty{color:#8795a8;text-align:center;padding:18px 0;font-size:12px}.season-card{background:linear-gradient(130deg,color-mix(in srgb,var(--season-color) 12%,white),#ffffffa0);border:1px solid color-mix(in srgb,var(--season-color) 20%,white);border-radius:12px;padding:18px 20px}.season-top{color:var(--season-color);justify-content:space-between;align-items:center;display:flex}.season-top svg{stroke-width:1.3px;width:24px;height:24px}.season-top span{font-family:Georgia,serif;font-size:12px}.season-card h2{font-family:var(--serif);color:#46566b;margin:15px 0 9px;font-size:16px;font-weight:500}.season-card p{color:#8b929c;margin:0;font-size:11px;line-height:1.9}.season-line{background:var(--season-color);opacity:.45;width:28px;height:1px;margin:16px 0 11px}.season-footnote{color:#9b9fa8;letter-spacing:.3px;font-size:9px}.export-button{color:#7890ad;justify-content:center;align-items:center;gap:9px;padding:5px;font-size:11px;display:flex}.export-button svg{width:15px;height:15px}.export-button>span{background:#e9eef6;border-radius:4px;padding:2px 5px;font-size:9px}.page-footer{color:#9aa6b7;justify-content:space-between;align-items:center;gap:18px;padding:23px 2px 0;font-size:10px;display:flex}.page-footer>span{align-items:center;gap:7px;display:flex}.page-footer svg{width:12px;height:12px}.page-footer>span[lang]{font-family:Georgia,serif;font-style:italic}.about-button{color:#8f9cb0;padding:4px;font-size:10px}.year-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;display:grid}.mini-month{background:#ffffffbf;border:1px solid #d3deef;border-radius:11px;padding-bottom:10px;overflow:hidden}.mini-month.current-month{border-color:#a2bcdf}.mini-heading{background:#e9f0fa;justify-content:space-between;align-items:center;width:100%;padding:13px 14px;font-size:16px;font-weight:600;display:flex}.mini-heading small{padding-left:6px;font-family:Georgia,serif;font-size:13px;font-weight:400}.mini-heading svg{color:#8199b9;width:13px;height:13px}.mini-weekdays{text-align:center;color:#8794a9;grid-template-columns:repeat(7,1fr);padding:10px 9px 5px;font-size:10px;display:grid}.mini-days{grid-template-rows:repeat(6,25px);grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;padding:0 8px;display:grid}.mini-day{border-radius:5px;padding:3px 0;font-family:Georgia,serif;font-size:13px;line-height:1;position:relative}.mini-day.has-event.fr{background:var(--fr-bg)}.mini-day.has-event.cn{background:var(--cn-bg)}.mini-day.has-event.term{background:var(--term-bg)}.event-dot{opacity:.7;background:currentColor;border-radius:50%;width:3px;height:3px;position:absolute;bottom:2px;left:calc(50% - 1.5px)}.mini-day.is-today{color:#fff;background:var(--blue)!important}.month-season{text-align:center;color:#a1aabb;padding-top:7px;font-size:9px;display:block}.list-panel{background:#ffffffc9;border:1px solid #d3dfef;border-radius:12px;padding:24px 27px}.list-heading{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.list-heading h2{font-family:var(--serif);margin:0 0 6px;font-size:23px;font-weight:500}.list-heading p{color:#8596af;margin:0;font-family:Georgia,serif;font-size:12px;font-style:italic}.list-actions{gap:10px;display:flex}.list-actions select{background:#f7f9fc;border:1px solid #d2deef;border-radius:7px;padding:8px 10px;font-size:11px}.list-month-section h3{font-family:var(--serif);border-bottom:1px solid #dce5ef;margin:0;padding:16px 0 10px;font-size:16px}.list-month-section h3 span{color:#8a9ab0;margin-left:9px;font-family:Georgia,serif;font-size:13px;font-weight:400}.event-list-row{text-align:left;border-bottom:1px solid #edf1f7;align-items:center;gap:20px;width:100%;padding:13px 4px;display:flex}.list-date{text-align:center;flex-direction:column;gap:4px;min-width:37px;display:flex}.list-date strong{font-family:Georgia,serif;font-size:24px;font-weight:400}.list-date small{color:#8996a9;font-size:10px}.category-symbol{border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.category-symbol.fr,.category-label.fr{background:var(--fr-bg);color:#5575a3}.category-symbol.cn,.category-label.cn{background:var(--cn-bg);color:#b76b75}.category-symbol.term,.category-label.term{background:var(--term-bg);color:var(--green)}.category-symbol svg{width:17px;height:17px}.list-event-name{flex-direction:column;flex:1;gap:6px;display:flex}.list-event-name strong{font-size:13px;font-weight:500}.list-event-name small{color:#8a99af;font-size:11px}.category-label{border-radius:4px;padding:5px 8px;font-size:10px}.event-list-row>svg{color:#a5b3c6;width:13px;height:13px}.empty-state{text-align:center;padding:70px 15px}.empty-state>svg{color:#adc1dc;width:38px;height:38px}.empty-state h3{font-family:var(--serif);margin:20px 0 10px;font-size:19px;font-weight:500}.empty-state p{color:#8998ad;font-size:12px}.text-button{color:#507ab1;align-items:center;gap:8px;margin-top:18px;font-size:12px;display:inline-flex}.text-button svg{width:14px;height:14px}.about-dialog{color:#284366;border:1px solid #d0dcef;border-radius:14px;width:calc(100% - 40px);max-width:490px;padding:30px;box-shadow:0 20px 80px #0c2b5140}.about-dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#19355755}.about-dialog h2{font-family:var(--serif);font-size:23px;font-weight:500}.about-dialog p{color:#74849b;font-size:13px;line-height:1.9}.about-dialog a{color:var(--blue);font-size:12px}.dialog-close{color:#8a9bb3;border-radius:5px;font-size:26px;position:absolute;top:9px;right:12px}.toast{color:#fff;opacity:0;pointer-events:none;z-index:20;text-align:center;background:#234c7b;border-radius:9px;max-width:90%;padding:13px 22px;font-size:12px;transition:opacity .2s,transform .2s;position:fixed;bottom:28px;left:50%;transform:translate(-50%)translateY(15px);box-shadow:0 7px 25px #19385930}.toast.visible{opacity:1;transform:translate(-50%)translateY(0)}@media (width>=1600px){.day-cell{min-height:calc(640px / var(--week-count));padding:13px}.day-number{font-size:28px}.event-copy strong{font-size:13px}.event-copy small{font-size:11px}.event-pill.compact .event-copy strong{font-size:12px}.mini-days{grid-template-rows:repeat(6,30px)}}@media (width<=1250px){.page-shell{padding-inline:22px}.toolbar{flex-wrap:wrap;gap:14px}.view-button{padding:10px 14px}.filters{margin-left:auto}.date-navigation{gap:10px}.content-layout{grid-template-columns:minmax(0,1fr) 250px;gap:17px}.year-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.filter{padding:5px 8px;font-size:11px}.day-cell{padding:9px 7px}.event-pill{gap:4px;padding:6px}.event-copy strong{font-size:10px}.event-copy small{font-size:9px}.selected-date-card{padding:17px}.schedule-row{gap:6px}.season-card{padding:17px}.page-footer>span[lang]{display:none}}@media (width<=1000px){.toolbar{grid-template-columns:1fr 1fr;row-gap:17px;display:grid}.date-navigation{justify-content:flex-end}.view-switch{justify-self:start}.filters{grid-column:1/-1;justify-self:end}.content-layout{grid-template-columns:minmax(0,1fr) 225px;gap:14px}.day-cell{min-height:calc(500px / var(--week-count));padding:8px 5px}.day-number{font-size:23px}.event-copy small,.event-pill .flag,.event-pill .lantern,.day-events .event-pill svg{display:none}.event-copy strong,.event-pill.compact .event-copy strong,.lunar-label{font-size:10px}.today-mark{display:none}.season-card h2,.selected-date-top{font-size:14px}.schedule-name strong{font-size:10px}.mini-heading{padding:12px 9px;font-size:14px}.mini-heading small{padding-left:3px;font-size:11px}.mini-days{padding:0 5px}.year-grid{gap:9px}}@media (width<=760px){.hero{background-size:1120px;height:168px}.page-shell{padding:0 14px 15px}.toolbar{gap:17px 8px;padding:4px 0 18px}.view-switch{grid-column:1/-1;justify-self:center}.view-button{padding:9px 22px;font-size:12px}.date-navigation{grid-column:1/-1;justify-content:center;gap:17px}.date-selectors select{font-size:22px}.date-french{font-size:12px}.date-heading{min-width:150px}.filters{justify-self:center;margin:0}.filter{padding:5px 12px}.content-layout{grid-template-columns:minmax(0,1fr);gap:19px}.month-panel{border-radius:10px}.weekday-row>div{gap:3px;padding:11px 0 9px;font-size:12px}.weekday-row small{font-size:11px}.day-cell{min-height:calc(495px / var(--week-count));padding:9px 5px}.day-number{font-size:23px}.lunar-label,.event-copy strong,.event-pill.compact .event-copy strong{font-size:10px}.event-pill{padding:5px}.sidebar{grid-template-columns:1fr 1fr;gap:13px;display:grid}.selected-date-card{grid-column:1}.schedule-card{grid-area:1/2/3}.season-card{grid-column:1}.export-button{grid-column:1/-1}.schedule-row{gap:6px;padding:11px 0}.schedule-name small{font-size:8px}.schedule-date{min-width:42px;font-size:10px}.schedule-list{padding:0 11px}.side-heading{padding:15px 12px}.side-heading h2{font-size:12px}.year-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.mini-days{grid-template-rows:repeat(6,28px)}.page-footer{flex-wrap:wrap;justify-content:center;gap:9px;padding-top:20px;font-size:9px}.list-panel{padding:20px}.list-heading h2{font-size:21px}.event-list-row{gap:12px}.category-label{padding:4px 6px;font-size:9px}.list-event-name strong{font-size:12px}.list-event-name small{font-size:10px}}@media (width<=480px){.hero{background-size:1040px;height:152px}.page-shell{padding-inline:10px}.day-cell{min-height:calc(440px / var(--week-count));padding:7px 3px}.day-number{min-width:22px;font-size:20px}.day-cell.is-today .day-number{width:27px;height:27px;font-size:19px}.lunar-label{padding-left:2px;font-size:9px}.day-events{gap:3px;margin-top:5px}.event-pill,.event-pill.compact{border-radius:4px;gap:0;padding:4px 3px}.event-copy strong,.event-pill.compact .event-copy strong{font-size:9px;font-weight:400;line-height:1.3}.calendar-caption{padding:11px 9px;font-size:9px}.calendar-caption>span:last-child{font-size:8px}.date-navigation{gap:11px}.date-heading{min-width:145px}.today-button{padding:9px 10px}.view-button{padding:9px 21px}.filter{padding:5px 10px;font-size:11px}.filter .lantern{font-size:15px}.year-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.mini-heading{padding:12px;font-size:15px}.mini-heading small{font-size:12px}.mini-days{grid-template-rows:repeat(6,27px);padding-inline:7px}.mini-day{font-size:13px}.sidebar{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:10px}.selected-date-card{padding:14px}.lunar-full{font-size:22px}.selected-date-top{font-size:12px}.selected-date-top small{margin-left:3px;font-size:9px}.small-calendar svg{width:15px}.selected-date-card p{gap:3px;font-size:10px}.selected-date-card p span{font-size:9px}.quiet-day{font-size:9px;line-height:1.7}.season-card{padding:14px}.season-card h2{font-size:12px}.season-card p{font-size:10px}.season-top span{font-size:9px}.season-footnote{font-size:8px}.schedule-row{gap:5px}.schedule-icon .flag{width:12px;height:9px}.schedule-icon .lantern{font-size:13px}.schedule-icon svg{width:13px;height:13px}.schedule-name strong{font-size:10px}.schedule-name small{display:none}.schedule-date{min-width:38px;font-size:9px}.schedule-list{padding:0 9px}.all-events{padding:11px 5px;font-size:10px}.list-panel{padding:16px}.list-heading h2{font-size:19px}.list-heading p{font-size:10px}.list-actions{gap:6px}.list-actions select{padding:7px 4px;font-size:10px}.list-actions .icon-button{width:30px;height:32px}.category-label{display:none}.event-list-row{gap:10px}.list-event-name small{font-size:9px}.category-symbol{width:28px;height:28px}.selected-events .event-pill.compact .event-copy strong{font-size:9px}.selected-events .event-pill{gap:4px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}}@media print{.toolbar,.sidebar,.page-footer,.calendar-caption,.about-dialog,.toast{display:none!important}.hero{-webkit-print-color-adjust:exact;print-color-adjust:exact;height:150px}.page-shell{padding:0}.content-layout{display:block}.month-panel,.year-grid{break-inside:avoid}.day-cell{min-height:95px}.day-cell,.event-pill,.mini-day{-webkit-print-color-adjust:exact;print-color-adjust:exact}.year-grid{grid-template-columns:repeat(4,1fr)}.mini-days{grid-template-rows:repeat(6,22px)}body{background:#fff}}.month-picker{flex-shrink:0;position:relative}.month-picker summary{cursor:pointer;white-space:nowrap;background:#ffffffa8;border:1px solid #cfdbec;border-radius:8px;align-items:center;gap:7px;padding:9px 11px;font-size:12px;list-style:none;display:flex}.month-picker summary::-webkit-details-marker{display:none}.month-picker summary svg{width:16px;height:16px}.month-picker summary:hover,.month-picker[open] summary{background:#eaf1fc}.month-picker summary:focus-visible{outline-offset:3px;outline:3px solid #4b86d3}.month-picker-panel{z-index:5;text-align:left;background:#fff;border:1px solid #cfdced;border-radius:12px;width:260px;padding:18px;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 12px 35px #193b6620}.month-picker-panel label{color:#7185a0;margin-bottom:8px;font-size:11px;display:block}.month-picker-panel select{background:#f5f8fd;border:1px solid #d3deee;border-radius:7px;width:100%;padding:9px 11px;font-size:15px}.picker-months{grid-template-columns:repeat(3,1fr);gap:7px;margin-top:14px;display:grid}.picker-months button{background:#f5f8fc;border-radius:6px;padding:10px 5px;font-size:12px}.picker-months button[aria-pressed=true]{color:#fff;background:#2463b7}@media (width<=1250px){.month-picker summary>span{display:none}.month-picker summary{padding:9px}}@media (width<=480px){.date-navigation{gap:6px}.date-heading{min-width:121px}.date-selectors select{font-size:20px}.date-navigation>.icon-button{width:30px}.today-button{gap:4px;margin-left:0;padding:9px 7px}}@media (width<=350px){.date-heading{min-width:110px}.date-selectors select{font-size:18px}.date-navigation{gap:4px}.today-button svg{display:none}}.year-dropdown{position:relative}.month-picker .year-dropdown summary{background:#f5f8fd;justify-content:space-between;width:100%;padding:9px 11px;font-size:15px;display:flex}.month-picker .year-dropdown summary>span{display:inline}.year-dropdown summary svg{transform:rotate(90deg)}.month-picker-panel .year-dropdown select{z-index:6;overscroll-behavior:contain;background:#fff;height:192px;max-height:192px;padding:4px;position:absolute;top:calc(100% + 5px);left:0;overflow-y:auto;box-shadow:0 8px 24px #193b6620}.year-dropdown option{border-radius:4px;padding:7px 10px;font-size:13px}.year-dropdown option:checked{color:#fff;background:#2463b7}.schedule-row{grid-template-columns:49px 16px minmax(0,1fr) 44px;gap:7px;display:grid}.schedule-name strong{overflow-wrap:anywhere;line-height:1.5}.event-countdown{color:#55779f;white-space:nowrap;font-variant-numeric:tabular-nums;flex-direction:column;justify-content:center;align-items:flex-end;gap:3px;min-width:44px;display:flex}.event-countdown strong{font-size:11px;font-weight:500}.event-countdown.is-today strong{color:#2463b7;background:#eaf1ff;border-radius:5px;padding:5px 7px}.event-list-row .event-countdown{min-width:54px}@media (width<=1000px){.schedule-row{grid-template-columns:42px 14px minmax(0,1fr) 39px;gap:5px}.event-countdown{min-width:39px}.event-countdown strong{font-size:10px}}@media (width<=480px){.schedule-row{grid-template-columns:38px 12px minmax(0,1fr) 33px;gap:3px}.schedule-row .schedule-icon{display:flex}.event-countdown{min-width:33px}.event-countdown small{font-size:8px}.event-countdown strong{font-size:9px}.event-list-row .event-countdown{min-width:42px}}.filter{padding:7px 10px;font-size:14px}.selected-date-top small{font-size:13px}.selected-date-card p,.selected-date-card p span{color:#64748b;font-size:13px;line-height:1.7}.quiet-day{color:#64748b;font-size:13px;line-height:1.8}.side-heading h2{font-size:16px}.count{font-size:12px}.schedule-row{grid-template-columns:58px 16px minmax(0,1fr) 48px;gap:7px;padding:13px 2px}.schedule-date{color:#64748b;min-width:0;font-size:12px}.schedule-name{gap:4px}.schedule-name strong{font-size:14px;line-height:1.5}.schedule-name small{color:#64748b;font-size:12px;line-height:1.5;display:block}.event-countdown{min-width:48px}.event-countdown small{color:#64748b;font-size:11px}.event-countdown strong{font-size:13px}.all-events{padding:14px 10px;font-size:14px}.season-top span{font-size:13px}.season-card p{color:#64748b;font-size:13px}.season-footnote{color:#64748b;font-size:12px;line-height:1.7}.export-button{padding:8px;font-size:13px}.export-button>span{font-size:11px}@media (width>=761px) and (width<=1000px){.schedule-row{grid-template-columns:51px minmax(0,1fr) 45px;gap:5px}.schedule-row .schedule-icon{display:none}.schedule-name strong{font-size:13px}.event-countdown{min-width:45px}}@media (width<=760px){.sidebar{flex-direction:column;gap:14px;display:flex}.selected-date-card,.season-card{padding:20px}.selected-date-top,.season-card h2{font-size:16px}.schedule-list{padding:0 16px}.side-heading{padding:17px 18px}.schedule-row{grid-template-columns:58px 16px minmax(0,1fr) 48px;gap:7px}.schedule-row .schedule-icon{display:flex}.schedule-icon .flag{width:15px;height:10px}.schedule-icon .lantern{font-size:16px}.schedule-icon svg{width:16px;height:16px}.filter{gap:6px;padding:7px 8px;font-size:13px}}.zodiac-year-card{background:#ffffffbd;border:1px solid #d5dfed;border-radius:16px;padding:10px}.zodiac-card-inner{background:linear-gradient(145deg,#fff,#fff7f8);border:1px solid #eee3e8;border-radius:12px;overflow:hidden}.zodiac-card-inner h2{text-align:center;font-family:var(--serif);white-space:nowrap;margin:15px 5px 3px;font-size:23px;font-weight:600;line-height:1.5}.zodiac-card-inner h2 span{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,sans-serif;font-size:13px;font-weight:400}.zodiac-scene{justify-content:center;align-items:center;gap:4px;min-height:140px;padding:0 8px 5px;display:flex}.zodiac-art{mix-blend-mode:multiply;background-image:url(/art/zodiac.webp);background-repeat:no-repeat;background-size:400% 300%;flex-shrink:0;width:140px;height:140px}.zodiac-name{font-family:var(--serif);color:#c52e35;white-space:nowrap;font-size:29px}.zodiac-caption{text-align:center;min-width:0}.zodiac-french{font-family:var(--serif);color:#a24850;text-wrap:balance;margin-top:5px;font-size:13px;line-height:1.5;display:block}@media (width>=761px) and (width<=1000px){.zodiac-card-inner h2{font-size:19px}.zodiac-card-inner h2 span{font-size:11px}.zodiac-art{width:110px;height:110px}.zodiac-scene{min-height:120px}.zodiac-name{font-size:24px}}@media (width<=760px){.zodiac-scene{min-height:160px}.zodiac-art{width:160px;height:160px}.zodiac-name{font-size:32px}.zodiac-card-inner h2{font-size:25px}.zodiac-card-inner h2 span{font-size:15px}}.hero{--hero-art-width:max(100vw,1120px)}.hero:before{content:"";left:50%;top:calc(var(--hero-art-width) * 24 / 1536);width:calc(var(--hero-art-width) * 328 / 1536);height:calc(var(--hero-art-width) * 80 / 1536);background:url(/art/header-title-small.webp) no-repeat center calc(var(--hero-art-width) * -24 / 1536);background-size:var(--hero-art-width) auto;pointer-events:none;position:absolute;transform:translate(-50%);-webkit-mask-image:linear-gradient(90deg,#0000,#000 7% 93%,#0000),linear-gradient(#0000,#000 12% 90%,#0000);mask-image:linear-gradient(90deg,#0000,#000 7% 93%,#0000),linear-gradient(#0000,#000 12% 90%,#0000);-webkit-mask-composite:source-in;mask-composite:intersect}@media (width<=760px){.hero{--hero-art-width:1120px}}@media (width<=480px){.hero{--hero-art-width:1040px}}@media screen and (width>=1001px){#app{flex-direction:column;height:100dvh;display:flex}.hero{flex-shrink:0}.page-shell{flex-direction:column;flex:1;width:100%;min-height:0;padding-bottom:6px;display:flex}.toolbar{flex-shrink:0;gap:10px;padding-bottom:10px}.content-layout{flex:1;align-items:stretch;gap:16px;min-height:0}.content-layout>section,.year-grid{scrollbar-width:thin;min-height:0;overflow:auto}.month-panel{flex-direction:column;display:flex}.weekday-row>div{gap:2px;padding:6px 0}.month-grid{flex:1;grid-auto-rows:minmax(85px,1fr)}.day-cell{min-height:0;padding:5px 7px}.day-number{font-size:23px}.lunar-label{margin-top:2px}.day-events{gap:2px;margin-top:3px}.event-pill,.event-pill.compact{padding:3px 5px}.calendar-caption{flex-shrink:0;padding:5px 10px}.sidebar{scrollbar-width:thin;gap:7px;min-height:0;overflow:auto}.sidebar>section,.export-button{flex-shrink:0}.selected-date-card{padding:10px 14px}.lunar-full{margin:5px 0;font-size:22px}.selected-events{margin-top:5px}.quiet-day{margin-top:5px;padding-top:5px}.schedule-card{flex-direction:column;min-height:180px;display:flex;flex:auto!important}.side-heading{flex-shrink:0;padding:8px 12px}.schedule-list{scrollbar-width:thin;min-height:0;padding:0 10px;overflow:auto}.schedule-row{grid-template-columns:49px 15px minmax(0,1fr) 44px;gap:5px;padding:6px 0}.schedule-name{gap:1px}.schedule-name strong{font-size:13px;line-height:1.35}.schedule-name small{line-height:1.35}.all-events{flex-shrink:0;margin-top:auto;padding:7px;font-size:13px}.season-card{padding:9px 13px}.season-top svg{width:18px;height:18px}.season-card h2{margin:4px 0;font-size:14px}.season-card p{line-height:1.5}.season-line{display:none}.season-footnote{margin-top:4px}.export-button{padding:3px}.page-footer{flex-shrink:0;padding-top:5px}.year-grid{grid-template-rows:repeat(3,minmax(165px,1fr));gap:8px}.mini-month{flex-direction:column;padding-bottom:4px;display:flex}.mini-heading{padding:6px 10px;font-size:14px}.mini-weekdays{padding:4px 7px}.mini-days{flex:1;grid-template-rows:repeat(6,minmax(16px,1fr))}.month-season{padding-top:3px}.zodiac-year-card{padding:6px}.zodiac-card-inner h2{margin:6px 4px 0;font-size:21px}.zodiac-scene{min-height:95px}.zodiac-art{width:95px;height:95px}.zodiac-name{font-size:25px}.zodiac-french{margin-top:2px}.list-panel{padding:14px 18px}}@media screen and (width>=1001px) and (width<=1250px){.year-grid{grid-template-rows:repeat(4,minmax(165px,1fr))}}
