.calendar-page{--calendar-border: var(--deep-text);--calendar-muted-border: var(--line-divider);--calendar-sticky-top: 6rem;width:min(100vw - 2rem,1680px);margin-inline:calc(50% - min(50vw - 1rem,840px));padding-block:1.5rem .5rem}.calendar-page__header{grid-area:header;margin:0 0 .5rem}.calendar-page__shell{display:grid;grid-template-areas:". header ." "left main right";grid-template-columns:minmax(250px,300px) minmax(720px,1fr) minmax(270px,340px);grid-template-rows:auto 1fr;align-items:start;gap:1rem;width:min(100%,1560px);margin:0 auto}.calendar-page__rail,.calendar-page__main{min-width:0}.calendar-page__rail{position:sticky;top:var(--calendar-sticky-top);max-height:calc(100vh - var(--calendar-sticky-top) - 1rem);overflow:auto;padding:1rem;border:2px solid var(--calendar-border);border-radius:var(--radius-large);background:transparent;scrollbar-width:thin}.calendar-page__rail--left{grid-area:left}.calendar-page__rail--right{grid-area:right}.calendar-page__main{grid-area:main;border:2px solid var(--calendar-border);border-radius:var(--radius-large);background:transparent;overflow:hidden}.calendar-grid-wrap{width:100%;padding:1rem}.nav-btn,.back-today-btn{display:inline-flex;align-items:center;justify-content:center;gap:.25rem;height:2rem;padding:0 .5rem;border:2px solid var(--calendar-border);border-radius:.5rem;background:transparent;color:var(--deep-text);font-size:.75rem;font-weight:700;transition:background-color .15s ease,color .15s ease,border-color .15s ease;cursor:pointer}.nav-btn{width:2rem;padding:0}.nav-btn:hover,.back-today-btn:hover{background:var(--deep-text);border-color:var(--deep-text);color:var(--page-bg)}.weekday-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-bottom:1px solid var(--calendar-muted-border)}.cells-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.day-cell{position:relative;display:flex;min-height:112px;flex-direction:column;align-items:stretch;gap:.25rem;padding:.375rem;border-right:1px solid var(--calendar-muted-border);border-bottom:1px solid var(--calendar-muted-border);background:transparent;text-align:left;transition:background-color .15s ease;cursor:pointer}.day-cell:nth-child(7n){border-right:none}.day-cell:nth-last-child(-n+7){border-bottom:none}.day-cell:hover,.day-cell.is-today{background:var(--btn-plain-bg-hover)}.day-cell.is-selected{outline:2px solid var(--calendar-border);outline-offset:-2px;z-index:1}.day-cell.is-other .day-num,.day-cell.is-other .lunar-num{color:var(--content-meta);opacity:.55}.cell-header{display:flex;align-items:baseline;justify-content:space-between;gap:.25rem}.day-num{font-size:.875rem;font-weight:700;line-height:1;color:var(--deep-text)}.day-cell.is-today .day-num{font-weight:900}.lunar-num{font-size:.625rem;line-height:1;color:var(--content-meta)}.cell-events{display:flex;flex-direction:column;gap:.125rem;overflow:hidden}.event-chip{display:flex;align-items:center;gap:.25rem;min-height:14px;padding:.0625rem .25rem;border-radius:.1875rem;font-size:.625rem;line-height:1;overflow:hidden}.chip-bar{display:inline-block;width:2px;height:10px;border-radius:1px;flex-shrink:0}.chip-title{overflow:hidden;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.more-chip{padding:0 .25rem;color:var(--content-meta);font-size:.5625rem;line-height:1}.cell-dots{display:none;justify-content:center;gap:2px;margin-top:auto}.dot{width:4px;height:4px;border-radius:var(--radius-full);flex-shrink:0}.event-overview{width:100%}.nearest-grid{display:grid;grid-template-columns:1fr;gap:.625rem}.nearest-card{width:100%;border:2px solid var(--calendar-border);border-radius:var(--radius-large);background:transparent}.nearest-card:hover{border-color:var(--calendar-border);background:var(--btn-plain-bg-hover)}.nearest-card.event-ongoing{background:transparent}.detail-panel{width:100%}.detail-panel header{border-bottom:2px solid var(--calendar-border)}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2.5rem 1rem}.event-card{position:relative;display:flex;align-items:flex-start;gap:.75rem;width:100%;padding:.75rem 1rem;border:2px solid var(--calendar-border);border-radius:.625rem;background:transparent;transition:background-color .15s ease,transform .15s ease}.event-card.is-clickable:hover{background:var(--btn-plain-bg-hover);transform:translateY(-1px)}.card-bar{position:absolute;top:.75rem;bottom:.75rem;left:-1rem;width:3px;border-top-right-radius:2px;border-bottom-right-radius:2px}.card-icon{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;margin-left:.25rem;border:1px solid var(--calendar-muted-border);border-radius:.5rem;background:transparent;flex-shrink:0}.card-arrow{display:inline-flex;align-self:center;flex-shrink:0;align-items:center}@media(max-width:1440px){.calendar-page{width:100%;margin-inline:0;padding-block:1rem 0}.calendar-page__shell{width:100%}.calendar-page__shell{grid-template-areas:"header" "left" "main" "right";grid-template-columns:1fr;grid-template-rows:auto}.calendar-page__rail{position:static;max-height:none;overflow:visible}.nearest-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.day-cell{min-height:84px;padding:.25rem}.event-chip .chip-title{max-width:100%}}@media(max-width:768px){.calendar-page__header{margin-bottom:1rem}.calendar-page__rail,.calendar-page__main{border-width:1px;border-radius:calc(var(--radius-large) - .25rem)}.calendar-page__rail,.calendar-grid-wrap{padding:.75rem}.nearest-grid{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.5rem;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.nearest-card{flex:0 0 82%;scroll-snap-align:start}.day-cell{min-height:52px;align-items:center;gap:.125rem;padding:.25rem .125rem}.cell-header{flex-direction:column;justify-content:center;gap:0}.day-num{font-size:.8125rem}.lunar-num{font-size:.5rem}.cell-events{display:none}.cell-dots{display:flex}.event-card{padding:.625rem .75rem}}
