.page{--ink:#182438;--muted:#7f899a;--line:#e5e9ef;min-height:100vh;background:#f6f7f3;color:var(--ink);font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif}.page *{box-sizing:border-box}.page button{font:inherit}.topbar{position:sticky;top:0;z-index:30;height:68px;display:flex;align-items:center;padding:0 5vw;border-bottom:1px solid rgba(224,227,220,.9);background:rgba(255,255,255,.91);backdrop-filter:blur(16px)}.brand{display:flex;align-items:center;gap:10px;min-width:300px;color:inherit;text-decoration:none}.brand>span{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:linear-gradient(145deg,#f08354,#d95545);box-shadow:0 8px 20px rgba(208,82,61,.22);color:#fff;font-size:14px;font-weight:800}.brand>div{display:flex;flex-direction:column;gap:2px}.brand strong{font-size:13px}.brand small{color:#a0a7b0;font-size:7px;letter-spacing:1.6px}.topbar nav{display:flex;align-self:stretch;gap:4px}.topbar nav a{display:flex;align-items:center;padding:0 13px;border-bottom:2px solid transparent;color:#778294;text-decoration:none;font-size:10px}.topbar nav a:hover{border-color:#e36a48;color:#c9583c}.topStatus{display:flex;align-items:center;gap:7px;margin-left:auto;color:#7f8a97;font-size:9px}.topStatus i{width:7px;height:7px;border:2px solid #bfe7d1;border-radius:50%;background:#31a96c}.page main{padding-bottom:70px}.hero{min-height:250px;display:flex;align-items:center;justify-content:space-between;gap:40px;padding:45px 6vw 58px;background:radial-gradient(circle at 88% 20%,rgba(239,143,83,.18),transparent 32%),linear-gradient(135deg,#fffdf8,#f7f2e9)}.hero>div:first-child{max-width:670px}.hero p,.sectionTitle p{margin:0 0 10px;color:#da6345;font-size:8px;font-weight:800;letter-spacing:2px}.hero h1{margin:0 0 12px;font-size:34px;letter-spacing:-1px}.hero>div:first-child>span{color:#788393;font-size:11px;line-height:1.8}.heroStats{display:grid;grid-template-columns:repeat(3,132px);gap:9px}.heroStats article{min-height:104px;display:flex;flex-direction:column;padding:17px;border:1px solid #ece5da;border-radius:12px;background:rgba(255,255,255,.77);box-shadow:0 8px 28px rgba(83,65,47,.05)}.heroStats small{color:#8d928f;font-size:8px}.heroStats strong{margin:6px 0 3px;font-size:25px}.heroStats span{color:#aaa49b;font-size:8px}.workspace{position:relative;z-index:2;width:min(1500px,92vw);display:grid;grid-template-columns:minmax(760px,1fr) 350px;gap:16px;margin:-25px auto 0;align-items:start}.calendarPanel,.detailPanel{border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 12px 34px rgba(42,53,66,.07)}.calendarPanel{overflow:hidden}.calendarToolbar{min-height:75px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 17px;border-bottom:1px solid var(--line)}.monthControl{display:flex;align-items:center;gap:7px}.monthControl>button{width:31px;height:31px;border:1px solid #dfe4e8;border-radius:7px;background:#fff;color:#667486;cursor:pointer;font-size:19px}.monthControl>button:hover{border-color:#d99076;color:#d45c3e}.monthControl>div{width:130px;display:flex;flex-direction:column;gap:2px;padding-left:4px}.monthControl strong{font-size:13px}.monthControl small{color:#9ba2aa;font-size:7px}.monthControl .todayButton{width:auto;height:30px;margin-left:2px;padding:0 10px;font-size:9px}.categoryFilters{display:flex;gap:5px}.categoryFilters button{display:flex;align-items:center;gap:5px;padding:8px 9px;border:1px solid #e3e7eb;border-radius:7px;background:#fff;color:#8b949f;cursor:pointer;font-size:8px}.categoryFilters button i{width:7px;height:7px;border-radius:50%;background:#cbd0d5}.categoryFilters button b{padding:1px 5px;border-radius:7px;background:#f0f2f4;color:#9ca3ac;font-size:7px}.categoryFilters .filterActive{border-color:var(--category);background:var(--category-soft);color:var(--category);font-weight:700}.categoryFilters .filterActive i{background:var(--category)}.categoryFilters .filterActive b{background:rgba(255,255,255,.65);color:var(--category)}.weekHeader{height:36px;display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--line);background:#fafaf8}.weekHeader span{display:grid;place-items:center;color:#8c949e;font-size:8px;font-weight:700}.calendarGrid{display:grid;grid-template-columns:repeat(7,1fr)}.dayCell{position:relative;min-width:0;height:120px;padding:8px;border:0;border-right:1px solid #eef0ed;border-bottom:1px solid #eef0ed;background:#fff;color:var(--ink);cursor:pointer;text-align:left;transition:background .15s,box-shadow .15s}.dayCell:nth-child(7n){border-right:0}.dayCell:hover{z-index:1;background:#fffdf8;box-shadow:inset 0 0 0 1px #e6a28d}.dayCell>span{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;font-size:9px;font-weight:700}.outsideMonth{background:#fafbf9;color:#b8bec4}.selectedDay{z-index:2!important;background:#fffaf4!important;box-shadow:inset 0 0 0 2px #e36a48!important}.today{background:#e36a48;color:#fff;box-shadow:0 4px 10px rgba(227,106,72,.25)}.dayEvents{display:flex;flex-direction:column;gap:3px;margin-top:5px;overflow:hidden}.dayEvents i{overflow:hidden;padding:3px 5px;border-left:3px solid var(--event-color);border-radius:3px;background:var(--event-soft);color:var(--event-color);font-size:7px;font-style:normal;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.dayEvents b{padding-left:6px;color:#969da6;font-size:7px;font-weight:500}.detailPanel{position:sticky;top:84px;overflow:hidden}.detailPanel>header{min-height:114px;display:flex;align-items:center;justify-content:space-between;padding:21px;border-bottom:1px solid var(--line);background:linear-gradient(145deg,#fff9f2,#fff)}.detailPanel>header small{color:#db6446;font-size:7px;font-weight:800;letter-spacing:1.4px}.detailPanel>header h2{margin:6px 0 5px;font-size:21px}.detailPanel>header span{color:#9199a3;font-size:8px}.detailPanel>header>b{width:54px;height:54px;display:grid;place-items:center;border-radius:16px;background:#e36a48;box-shadow:0 9px 20px rgba(227,106,72,.2);color:#fff;font-size:21px}.detailList{max-height:678px;padding:12px;overflow-y:auto}.detailList article{margin-bottom:10px;padding:14px;border:1px solid #e7e9eb;border-radius:10px;background:#fff}.eventHead{display:flex;align-items:center;gap:9px}.eventHead>span,.seasonGrid>button>span{width:32px;height:32px;display:grid;place-items:center;flex:0 0 auto;border-radius:9px;background:var(--event-soft);color:var(--event-color);font-size:10px;font-weight:800}.eventHead>div{min-width:0}.eventHead small{color:var(--event-color);font-size:7px}.eventHead h3{margin:4px 0 0;font-size:11px}.detailList article>p{margin:11px 0;color:#778291;font-size:8px;line-height:1.65}.detailList dl{margin:0;padding:9px 0;border-top:1px solid #eff1f2;border-bottom:1px solid #eff1f2}.detailList dl>div{display:grid;grid-template-columns:60px 1fr;gap:5px;margin:4px 0;font-size:7px}.detailList dt{color:#9ba2aa}.detailList dd{margin:0;color:#576478}.detailList article footer{margin-top:10px;color:#858e99;font-size:7px;line-height:1.55}.detailList article footer span{margin-right:6px;padding:2px 5px;border-radius:4px;background:var(--event-soft);color:var(--event-color);font-weight:700}.emptyDay{min-height:290px;display:grid;place-content:center;justify-items:center;padding:35px;text-align:center}.emptyDay>span{width:45px;height:45px;display:grid;place-items:center;border:1px dashed #d7dce1;border-radius:50%;color:#aab1b8;font-size:19px}.emptyDay h3{margin:12px 0 5px;font-size:11px}.emptyDay p{max-width:180px;margin:0;color:#98a0a9;font-size:8px;line-height:1.6}.seasonSection{width:min(1500px,92vw);margin:50px auto 0}.sectionTitle{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:17px}.sectionTitle h2{margin:0;font-size:22px}.sectionTitle>span{color:#89929d;font-size:9px}.seasonGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.seasonGrid>button{min-width:0;display:flex;align-items:flex-start;gap:12px;padding:16px;border:1px solid var(--line);border-radius:11px;background:#fff;color:inherit;cursor:pointer;text-align:left;transition:transform .15s,box-shadow .15s,border-color .15s}.seasonGrid>button:hover{border-color:var(--event-color);box-shadow:0 10px 25px rgba(40,52,65,.08);transform:translateY(-2px)}.seasonGrid>button>div{min-width:0;flex:1}.seasonGrid small{color:var(--event-color);font-size:7px}.seasonGrid strong{display:block;margin:4px 0 5px;font-size:11px}.seasonGrid p{overflow:hidden;margin:0 0 8px;color:#87909b;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.seasonGrid time{color:#697687;font-size:8px}.seasonGrid>button>b{align-self:center;color:#9aa2aa;font-size:8px;white-space:nowrap} @media(max-width:1120px){.hero{align-items:flex-start;flex-direction:column}.heroStats{width:100%;grid-template-columns:repeat(3,1fr)}.workspace{grid-template-columns:1fr}.detailPanel{position:static}.detailList{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;max-height:none}.detailList article{margin:0}.emptyDay{grid-column:1/-1}.calendarToolbar{align-items:flex-start;flex-direction:column}.categoryFilters{flex-wrap:wrap}} @media(max-width:760px){.topbar{height:60px;padding:0 18px}.brand{min-width:0}.brand>div,.topbar nav,.topStatus{display:none}.hero{padding:34px 20px 50px}.hero h1{font-size:27px}.heroStats{gap:6px}.heroStats article{min-height:86px;padding:12px}.workspace{width:100%;margin-top:-18px;padding:0 10px}.calendarToolbar{padding:12px}.monthControl{flex-wrap:wrap}.categoryFilters button{padding:7px}.weekHeader span{font-size:7px}.dayCell{height:86px;padding:5px}.dayEvents i{padding:2px 3px;border-left-width:2px;font-size:6px}.dayEvents i:nth-child(n+3){display:none}.detailList{grid-template-columns:1fr}.seasonSection{width:auto;margin:35px 14px 0}.seasonGrid{grid-template-columns:1fr}.sectionTitle{align-items:flex-start;gap:7px;flex-direction:column}.seasonGrid p{white-space:normal}.seasonGrid>button>b{display:none}} @media(max-width:430px){.heroStats{grid-template-columns:1fr}.heroStats article{min-height:70px}.calendarPanel{overflow-x:auto}.calendarToolbar,.weekHeader,.calendarGrid{min-width:690px}.detailPanel{border-radius:12px}.dayCell{height:98px}} @media(prefers-reduced-motion:reduce){.page *{scroll-behavior:auto!important;transition:none!important}} .dayEvents i.continuesBefore{border-top-left-radius:0;border-bottom-left-radius:0}.dayEvents i.continuesAfter{border-top-right-radius:0;border-bottom-right-radius:0}.eventImage{width:100%;height:118px;display:block;margin:0 0 12px;border-radius:8px;object-fit:cover;image-rendering:pixelated}.seasonImage{width:92px;height:78px;display:block;flex:0 0 auto;border-radius:9px;object-fit:cover;image-rendering:pixelated} @media(max-width:760px){.eventImage{height:145px}.seasonImage{width:78px;height:72px}} .highlightNotice{display:flex;align-items:center;gap:11px;min-height:58px;padding:9px 16px;border-bottom:1px solid var(--event-color);background:var(--event-soft);color:var(--event-color)}.highlightNotice>i{width:10px;height:10px;flex:0 0 auto;border:3px solid rgba(255,255,255,.8);border-radius:50%;background:var(--event-color);box-shadow:0 0 0 4px color-mix(in srgb,var(--event-color) 20%,transparent),0 0 14px color-mix(in srgb,var(--event-color) 45%,transparent);animation:highlightPulse 1.8s ease-in-out infinite}.highlightNotice>div{min-width:0;display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:2px 8px}.highlightNotice small{font-size:7px;font-weight:800;letter-spacing:1px}.highlightNotice strong{font-size:11px}.highlightNotice span{grid-column:1/-1;color:#687283;font-size:8px}.highlightNotice>button{margin-left:auto;padding:7px 10px;border:1px solid color-mix(in srgb,var(--event-color) 35%,#fff);border-radius:6px;background:rgba(255,255,255,.7);color:var(--event-color);cursor:pointer;font-size:8px;font-weight:700}.highlightNotice>button:hover{border-color:var(--event-color);background:#fff}.dayCell{cursor:default}.dayNumber{width:24px;height:24px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer;font-size:9px;font-weight:700}.eventRangeDay{z-index:1;background:var(--event-soft)!important;box-shadow:inset 0 0 0 2px var(--event-color)!important}.eventRangeDay .dayNumber{background:rgba(255,255,255,.68);color:var(--event-color)}.selectedRangeDay{z-index:3!important;box-shadow:inset 0 0 0 3px var(--event-color),0 0 18px color-mix(in srgb,var(--event-color) 25%,transparent)!important}.selectedRangeDay .dayNumber{background:var(--event-color);color:#fff}.dayEvents button{width:100%;overflow:hidden;padding:3px 5px;border:0;border-left:3px solid var(--event-color);border-radius:3px;background:var(--event-soft);color:var(--event-color);cursor:pointer;font-size:7px;font-style:normal;font-weight:650;text-align:left;text-overflow:ellipsis;white-space:nowrap}.dayEvents button:hover,.dayEvents .activeEventBar{filter:saturate(1.25);box-shadow:inset 0 0 0 1px var(--event-color);font-weight:800}.dayEvents button.continuesBefore{border-top-left-radius:0;border-bottom-left-radius:0}.dayEvents button.continuesAfter{border-top-right-radius:0;border-bottom-right-radius:0}.detailList article[role=button]{cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s}.detailList article[role=button]:hover{border-color:var(--event-color);transform:translateY(-1px)}.detailList article.activeEventCard,.seasonGrid>button.activeSeasonEvent{border-color:var(--event-color);background:linear-gradient(135deg,#fff,var(--event-soft));box-shadow:0 0 0 2px color-mix(in srgb,var(--event-color) 18%,transparent),0 11px 25px color-mix(in srgb,var(--event-color) 14%,transparent)}@keyframes highlightPulse{0%,100%{transform:scale(.92);opacity:.82}50%{transform:scale(1.08);opacity:1}} @media(max-width:760px){.highlightNotice{align-items:flex-start;flex-wrap:wrap}.highlightNotice>button{margin-left:21px}.dayEvents button{padding:2px 3px;border-left-width:2px;font-size:6px}.dayEvents button:nth-child(n+3){display:none}} /* Soft event focus: tonal depth instead of heavy outlines. */ .highlightNotice{border-bottom-color:color-mix(in srgb,var(--event-color) 14%,#e8e9e5);background:linear-gradient(100deg,color-mix(in srgb,var(--event-color) 13%,#fff),color-mix(in srgb,var(--event-soft) 76%,#fff))}.eventRangeDay{z-index:1;background:linear-gradient(145deg,color-mix(in srgb,var(--event-color) 11%,#fff) 0%,color-mix(in srgb,var(--event-soft) 82%,#fff) 72%,color-mix(in srgb,var(--event-color) 8%,#fff) 100%)!important;box-shadow:inset 0 1px rgba(255,255,255,.9),0 7px 18px color-mix(in srgb,var(--event-color) 12%,transparent)!important}.eventRangeDay::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(circle at 20% 0,rgba(255,255,255,.85),transparent 42%);opacity:.64}.eventRangeDay .dayNumber{background:rgba(255,255,255,.72);box-shadow:0 3px 9px color-mix(in srgb,var(--event-color) 14%,transparent);color:var(--event-color)}.selectedRangeDay{z-index:3!important;background:linear-gradient(145deg,color-mix(in srgb,var(--event-color) 19%,#fff),color-mix(in srgb,var(--event-soft) 72%,#fff))!important;box-shadow:inset 0 1px rgba(255,255,255,.95),0 12px 26px color-mix(in srgb,var(--event-color) 22%,transparent)!important;transform:translateY(-1px)}.selectedRangeDay .dayNumber{background:linear-gradient(145deg,color-mix(in srgb,var(--event-color) 88%,#fff),var(--event-color));box-shadow:0 5px 12px color-mix(in srgb,var(--event-color) 32%,transparent);color:#fff}.dayEvents button:hover,.dayEvents .activeEventBar{background:linear-gradient(90deg,color-mix(in srgb,var(--event-color) 13%,var(--event-soft)),var(--event-soft));box-shadow:0 3px 8px color-mix(in srgb,var(--event-color) 14%,transparent);filter:saturate(1.12);font-weight:800}.detailList article.activeEventCard,.seasonGrid>button.activeSeasonEvent{border-color:color-mix(in srgb,var(--event-color) 24%,#e7e9eb);background:linear-gradient(135deg,#fff 15%,color-mix(in srgb,var(--event-soft) 76%,#fff));box-shadow:inset 0 1px rgba(255,255,255,.95),0 12px 28px color-mix(in srgb,var(--event-color) 16%,transparent);transform:translateY(-2px)}