.calendar-page{background:#f5f8f9}.calendar-page main{width:calc(100% - 48px);max-width:none;margin:24px auto}.calendar-heading,.calendar-controls,.dialog-heading,.dialog-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.calendar-heading{justify-content:space-between}.calendar-heading h1{font-size:clamp(1.7rem,3vw,2.5rem);margin:0}.calendar-heading .kicker{margin:0 0 8px}.calendar-controls button{padding:10px 14px}.month-picker{font-size:.8rem;display:grid;gap:3px}.calendar-legend{display:flex;gap:12px;list-style:none;padding:0;flex-wrap:wrap;font-size:.82rem}.calendar-legend li{padding:4px 10px;border-radius:6px}.calendar-grid{border:1px solid #bdcdd1;background:white;border-radius:12px;overflow:hidden}.calendar-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekday{padding:10px;text-align:center;background:#102f3d;color:white;font-weight:600}.calendar-cell{min-height:max(110px,calc((100vh - 370px)/6));border-right:1px solid #d6e0e3;border-top:1px solid #d6e0e3;padding:6px;overflow:hidden}.calendar-cell:last-child{border-right:0}.calendar-cell.outside{background:#f0f3f4}.calendar-cell.is-today{box-shadow:inset 0 0 0 2px #207a82}.calendar-cell .day-button{background:transparent;color:#173d4b;border:0;padding:2px 7px;min-height:30px;border-radius:50%;font-weight:600}.calendar-cell.is-today .day-button{background:#173d4b;color:white}.calendar-event{display:block;width:100%;text-align:left;margin:4px 0;padding:5px 7px;border:0;border-left:4px solid;border-radius:4px;font-size:.78rem;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:30px}.calendar-event.completed{text-decoration:line-through}.event-Appointments{background:#dceaff!important;color:#143b76!important;border-color:#2865b2!important}.event-Bills{background:#fff0c9!important;color:#704600!important;border-color:#b67800!important}.event-Meetings{background:#eee2ff!important;color:#522a82!important;border-color:#8350af!important}.event-Home{background:#dcf0df!important;color:#215632!important;border-color:#35824d!important}.event-Subscriptions{background:#ffe3ec!important;color:#822440!important;border-color:#b94769!important}.event-Birthdays{background:#d4f3ef!important;color:#12564e!important;border-color:#218b7d!important}.event-Other{background:#e7ebef!important;color:#394451!important;border-color:#647488!important}.calendar-page dialog{width:min(600px,calc(100% - 32px));max-height:90vh;overflow:auto;border:1px solid #bacdd2;border-radius:16px;padding:24px;color:#173d4b;background:#fff}.calendar-page dialog::backdrop{background:#0b273e99}.dialog-heading{justify-content:space-between}.dialog-heading h2{margin:0}.close-dialog{font-size:1.4rem;padding:3px 12px}.calendar-page form label{display:grid;gap:5px;margin:12px 0}.calendar-page form .check-label{display:flex}.calendar-page input,.calendar-page select,.calendar-page textarea{max-width:100%;padding:10px;border:1px solid #aebfc5;border-radius:6px;font:inherit}.calendar-page .dialog-actions{margin-top:16px}.calendar-connection{border-top:1px solid #d3dfe2;margin-top:20px;padding-top:16px}.calendar-source{display:flex;align-items:center;gap:8px;margin:12px 0;flex-wrap:wrap}.calendar-source label{flex:1;display:flex;gap:8px}.calendar-page :focus-visible{outline:3px solid #e09d28;outline-offset:2px}.calendar-page [hidden]{display:none!important}.agenda-item{margin:12px 0}.agenda-item button{white-space:normal}.calendar-help{font-size:.88rem}@media(max-width:700px){.calendar-page main{width:calc(100% - 16px);margin:14px auto}.calendar-controls{gap:6px}.calendar-controls button{font-size:.8rem;padding:8px}.calendar-weekday{padding:8px 1px;font-size:.7rem}.calendar-cell{padding:2px;min-height:100px}.calendar-event{font-size:.62rem;padding:4px 2px;border-left-width:3px}.calendar-cell .day-button{font-size:.75rem;padding:2px 4px}.calendar-page .top{padding:12px;gap:8px}.calendar-page .top nav{gap:10px;font-size:.8rem}.calendar-legend{gap:5px;font-size:.7rem}.calendar-legend li{padding:3px 6px}.calendar-heading .kicker{font-size:.65rem}.calendar-heading h1{font-size:1.6rem}.month-picker{font-size:.7rem}}

.calendar-page .kicker{color:#1b6d58}
@media(max-width:700px){.calendar-page .top nav{display:flex;flex-wrap:wrap}}

#aheadPanel{background:white;border:1px solid #d3dfe2;border-radius:10px;padding:12px;margin:12px 0}#aheadPanel summary{cursor:pointer;font-weight:600}.ahead-item{border-top:1px solid #d3dfe2;padding:12px 0}.ahead-item h3{font-size:1rem;margin:0}.ahead-item li{margin:5px 0}
/* Keep all six calendar weeks visible together on desktop. */
@media(min-width:701px){.calendar-page .top{padding-top:14px;padding-bottom:14px}.calendar-page main{margin-top:12px}.calendar-heading .kicker{display:none}.calendar-heading h1{font-size:2rem}.calendar-heading{min-height:54px}.calendar-help{margin:6px 0}.calendar-page #calendarStatus{margin:6px 0}#aheadPanel{padding:8px 12px;margin:8px 0}.calendar-legend{margin:8px 0}.calendar-grid{height:calc(100dvh - 290px);min-height:280px;display:grid;grid-template-rows:38px repeat(6,minmax(0,1fr))}.calendar-cell{min-height:0;padding:3px}.calendar-cell .day-button{min-height:22px;padding:1px 6px;font-size:.8rem}.calendar-event{min-height:22px;padding:3px 5px;margin:2px 0;font-size:.74rem}}
.calendar-page .calendar-controls button,.calendar-page .top button,.calendar-page .dialog-actions button,.calendar-page #saveEvent,.calendar-page #addOnDay,.calendar-page #downloadBrief,.calendar-connection button{background:#143e4b;color:#fff;border:1px solid #143e4b;border-radius:8px;padding:9px 13px;font:inherit;font-weight:600;cursor:pointer}.calendar-page button:disabled{opacity:.6;cursor:default}.calendar-page .close-dialog{border:1px solid #bdcdd1;background:#f0f6f5;border-radius:8px;color:#143e4b;cursor:pointer}
@media(min-width:701px){.calendar-cell{padding:2px}.calendar-cell .day-button{min-height:18px;line-height:16px;padding:1px 5px}.calendar-cell .calendar-more{display:block;min-height:14px;line-height:14px;font-size:.65rem;padding:0 3px;border-radius:2px}}
