.calendar-page{--cal-ink:#163b36;--cal-green:#17664e;--cal-soft:#e7f4ed;--cal-line:#ccddd4;color:var(--cal-ink);max-width:1180px;margin:auto;padding:24px 20px 64px}.calendar-hero{display:grid;grid-template-columns:1fr auto;align-items:center;gap:20px;padding-block:24px}.calendar-hero h1{font-size:clamp(2rem,5vw,3.7rem);line-height:1.08;max-width:760px;margin:12px 0}.calendar-hero p{max-width:650px}.calendar-hero figure{margin:0;max-width:240px;text-align:center}.calendar-hero img{width:100%;height:auto;filter:drop-shadow(0 16px 15px #163b3620);animation:calendar-arrive .5s ease-out}.calendar-hero figcaption{font-size:.72rem;color:#50665d}.calendar-kicker{text-transform:uppercase;letter-spacing:.08em;font-weight:750;font-size:.75rem;color:var(--cal-green)}.calendar-toolbar,.calendar-filters,.calendar-month-nav,.calendar-view-switch{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.calendar-toolbar{justify-content:space-between;padding-block:18px}.calendar-toolbar h2{font-size:1.4rem;min-width:190px;margin:0}.calendar-page button,.calendar-page input,.calendar-page select,.calendar-dialog button,.calendar-dialog a{font:inherit;min-height:44px;border:1px solid var(--cal-line);border-radius:12px;padding:10px 14px;background:#fff;color:var(--cal-ink)}.calendar-page button,.calendar-dialog button{cursor:pointer}.calendar-page button:hover{background:var(--cal-soft)}.calendar-page button[aria-pressed=true],.calendar-primary{background:var(--cal-green)!important;color:#fff!important}.calendar-page :focus-visible,.calendar-dialog :focus-visible{outline:3px solid #9c4d00;outline-offset:3px}.calendar-filters{align-items:end;background:var(--cal-soft);padding:18px;border-radius:18px}.calendar-filters label{display:grid;gap:6px;flex:1 1 180px;font-size:.85rem;font-weight:650}.calendar-filters input,.calendar-filters select{width:100%;box-sizing:border-box;min-width:0}.calendar-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:28px;align-items:start;margin-top:20px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;background:#fff;border:1px solid var(--cal-line);border-radius:18px;padding:12px}.calendar-grid[hidden]{display:none}.calendar-layout:has(.calendar-grid[hidden]){grid-template-columns:1fr}.weekday{font-size:.75rem;text-align:center;padding:10px 0;color:#53685f}.calendar-page .calendar-day{display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:8px 2px;min-height:65px;border-color:transparent;background:#f5f8f5;border-radius:10px}.calendar-day[aria-current=date]{box-shadow:inset 0 0 0 2px var(--cal-green)}.day-count{background:#ffda86;color:#44300b;border-radius:20px;min-width:19px;font-size:.68rem;line-height:19px}.calendar-event{display:flex;gap:16px;padding:20px 0;border-bottom:1px solid var(--cal-line);animation:calendar-arrive .22s ease-out}.calendar-event:first-child{padding-top:0}.calendar-event h3{margin:4px 0;font-size:1.12rem}.calendar-event p{margin:6px 0;font-size:.9rem}.event-date-badge{background:#ffebbc;border-radius:14px;min-width:62px;height:74px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#62410c}.event-date-badge strong{font-size:1.8rem}.event-date-badge span{font-size:.75rem}.calendar-muted{color:#51675d;font-size:.85rem}.calendar-link{display:inline-flex;align-items:center;margin-block:7px;text-decoration:underline;text-underline-offset:3px}.calendar-empty{background:#f1f6f2;padding:24px;border-radius:18px}.calendar-empty h3{font-size:1.1rem;line-height:1.5}.calendar-plan{margin-block:30px;padding:22px;background:#fff4d9;border-radius:18px}.calendar-plan p{font-size:.85rem;max-width:720px}.calendar-dialog{border:1px solid #ccddd4;border-radius:22px;padding:24px;color:#163b36;background:#fff;width:min(590px,calc(100% - 64px));max-height:85dvh;overflow:auto;box-shadow:0 24px 80px #102c3140}.calendar-dialog::backdrop{background:#163b3670;backdrop-filter:blur(4px)}.calendar-dialog h2{font-size:1.8rem;line-height:1.2}.calendar-dialog p{line-height:1.6}.calendar-dialog .calendar-close{display:block;margin-inline-start:auto}.calendar-dialog .detail-art{display:block;margin:auto}.calendar-dialog small{display:block;text-align:center}.calendar-dialog a,.calendar-dialog .calendar-primary{display:flex;width:fit-content;box-sizing:border-box}.calendar-source-list{font-size:.85rem;line-height:1.8}.event-handoff{border-inline-start:4px solid #17664e;padding:16px;background:#e7f4ed;color:#163b36}.event-handoff button{margin:4px}.event-handoff a{display:block;padding:12px 0}@keyframes calendar-arrive{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media(max-width:760px){.calendar-page{padding:12px 12px 40px}.calendar-hero{grid-template-columns:1fr 96px;gap:8px}.calendar-hero h1{font-size:2rem}.calendar-hero figcaption{font-size:.6rem}.calendar-layout{grid-template-columns:1fr;gap:24px}.calendar-filters{padding:12px}.calendar-filters label{flex-basis:130px}.calendar-toolbar h2{min-width:140px;font-size:1.15rem}.calendar-page .calendar-day{min-height:48px}.calendar-grid{padding:8px;gap:3px}.calendar-month-nav{gap:5px}.calendar-dialog{padding:18px}.calendar-event{padding:18px 0}}@media(prefers-reduced-motion:reduce){.calendar-hero img,.calendar-event{animation:none}*{scroll-behavior:auto!important}}

/* App compact button tokens: 52px target, 16px radius, zero border/elevation. */
.calendar-page button:not(.calendar-day),.calendar-dialog button,.event-handoff button{min-height:52px;min-width:52px;border:0;border-radius:16px;box-shadow:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding-inline:14px}.calendar-action-icon{width:32px;height:32px;object-fit:contain;flex-shrink:0}.calendar-page #next .calendar-action-icon{transform:scaleX(-1)}[dir=rtl] .calendar-page #previous .calendar-action-icon{transform:scaleX(-1)}[dir=rtl] .calendar-page #next .calendar-action-icon{transform:none}.calendar-page button:active,.calendar-dialog button:active,.event-handoff button:active{transform:scale(.97)}.calendar-page button:disabled,.calendar-dialog button:disabled,.event-handoff button:disabled{opacity:.48;cursor:default}.calendar-dialog .calendar-close{display:flex}.calendar-page button[aria-pressed=false]{background:transparent}@media(prefers-reduced-motion:reduce){.calendar-page button:active,.calendar-dialog button:active,.event-handoff button:active{transform:none}}

@media(max-width:400px){.calendar-hero{padding-block:12px}.calendar-hero h1{font-size:1.65rem}.calendar-hero p{font-size:.9rem;line-height:1.5}.calendar-filters label{flex-basis:110px}.calendar-page>.calendar-muted{font-size:.75rem;line-height:1.5}.calendar-toolbar button{font-size:.8rem}.calendar-month-nav{justify-content:space-between}.calendar-toolbar h2{order:-1;flex-basis:100%}}

/* Shared app-controls adapter: a seven-column calendar must not inherit a 52px minimum width at 320px. Dates remain 52px tall native buttons with readable numeric labels. */
html body .calendar-page .calendar-day.app-control{min-inline-size:0!important;min-block-size:52px!important;padding:6px 1px;flex-direction:column;gap:3px}.calendar-page button:active,.calendar-dialog button:active,.event-handoff button:active{transform:scale(.985)}@media(prefers-reduced-motion:reduce){.calendar-page button:active,.calendar-dialog button:active,.event-handoff button:active{transform:none}}
