.calendar-views{display:flex;gap:.4rem;flex-wrap:wrap}.calendar-views button[aria-pressed=true]{background:var(--blue,#125785);color:#fff}.calendar-page [hidden]{display:none!important}.p2-calendar-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.25rem}.p2-calendar-row [role=columnheader]{text-align:center;font-size:.8rem;padding:.5rem 0}.p2-day{width:100%;min-height:4rem;border:1px solid #d7e0e8;border-radius:.5rem;background:#fff;color:#173549;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem}.p2-day small{font-size:.65rem}.p2-day[aria-current=date]{border:2px dashed #256798}.p2-calendar-row [aria-selected=true] .p2-day{background:#154b71;color:white;border:2px solid #154b71}.p2-day:focus-visible{outline:3px solid #b66100;outline-offset:2px}.p2-programme-band{display:block;background:#edf4e8;border-left:4px solid #577444;padding:.7rem;margin:.7rem 0;font-size:.85rem}.calendar-state-legend{font-size:.85rem}.calendar-page .calendar-toolbar{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.calendar-undated .glass{padding:1.2rem}.calendar-page .calendar-workspace:has([data-p2-month][hidden]){display:block}.calendar-page .calendar-paging{flex-wrap:wrap}.calendar-page .calendar-event-links{flex-wrap:wrap}.calendar-page [data-month]{max-width:11rem}@media(max-width:760px){.p2-day{min-height:3.2rem}.calendar-page .calendar-workspace{display:block}.calendar-page .calendar-toolbar{gap:.6rem}}
.p2-day-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:100%;font-size:.65rem;line-height:1.3;font-weight:500}.p2-day:has(.p2-day-title){min-height:5.7rem;padding:.3rem}.calendar-next-gathering{max-width:27rem}.calendar-next-gathering h2{font-size:1.25rem}.calendar-next-gathering .button{margin:.3rem .3rem .3rem 0}@media(max-width:760px){.p2-day-title{font-size:.55rem;word-break:break-word}.p2-day:has(.p2-day-title){min-height:5.3rem}}
.calendar-page button,.calendar-page select,.calendar-page input[type=month]{min-height:44px}.calendar-page button{min-width:44px}.calendar-page input[type=checkbox]{width:1.25rem;height:1.25rem}.calendar-page label:has(input[type=checkbox]){min-height:44px;display:flex;align-items:center;gap:.5rem}
.calendar-page [data-grid]{overflow-x:auto;max-width:100%;overscroll-behavior-x:contain}.calendar-page .p2-calendar-row{min-width:324px}.calendar-legacy-anchor{display:block;scroll-margin-top:6rem}
/* Phase 2.1 browser-review refinement: one calm toolbar and uniform date grid. */
.calendar-page .calendar-toolbar{align-items:end;gap:16px;margin-bottom:24px;padding:16px 20px;border-radius:20px;border:1px solid var(--line);background:rgb(255 255 255 / .8)}.calendar-toolbar>label{display:grid;gap:6px;font-size:.85rem;font-weight:650;min-width:180px}.calendar-views{display:flex;align-items:stretch;gap:4px;padding:4px;border:1px solid #c2d5df;border-radius:15px;background:var(--mist)}.calendar-views button,.calendar-toolbar [data-reset]{font:inherit;font-size:.9rem;border:1px solid transparent;border-radius:11px;padding:9px 14px;min-height:44px;min-width:44px;background:transparent;color:var(--ink)}.calendar-views button[aria-pressed=true]{background:var(--ink);color:#fff;box-shadow:0 3px 10px #102a4320}.calendar-views button:hover:not([aria-pressed=true]){background:#fff}.calendar-toolbar [data-reset]{border-color:var(--line);background:#fff}.calendar-page select,.calendar-page input[type=month]{font:inherit;color:var(--ink);border:1px solid #afc5d4;border-radius:12px;min-height:44px;padding:8px 12px;background:#fff;max-width:100%}.calendar-page .calendar-paging{align-items:end;gap:8px;margin-bottom:24px}.calendar-paging>label{display:grid;gap:6px;font-size:.8rem;font-weight:650}.calendar-page .calendar-paging button{border:1px solid #afc5d4;background:#fff;border-radius:12px;padding:8px 12px;font:inherit;min-height:44px;min-width:44px;color:var(--ink)}.calendar-page .calendar-paging button:hover{background:var(--mist)}.calendar-page .p2-calendar-row{gap:6px;margin-bottom:6px;align-items:stretch}.p2-calendar-row [role=gridcell]{min-width:0;display:flex;align-items:stretch;min-height:92px}.calendar-page .p2-day,.calendar-page .p2-day:has(.p2-day-title){height:100%;min-height:92px;justify-content:flex-start;align-items:flex-start;gap:6px;padding:8px;border-radius:12px;border:1px solid #c5d8e1;background:#f7fbfd;font-variant-numeric:tabular-nums}.calendar-page .p2-day:has(.p2-day-title){background:#e7f3f1;border-color:#a9cec8}.calendar-page .p2-day-title{font-size:.65rem;line-height:1.45;text-align:left;overflow-wrap:anywhere}.calendar-page .p2-day small{color:var(--muted)}.calendar-page [aria-selected=true] .p2-day{background:var(--ink);color:white;border-color:var(--ink)}.calendar-page [aria-selected=true] .p2-day small{color:#e4eff7}.calendar-page .p2-day[aria-current=date]{outline:2px solid var(--teal);outline-offset:-3px}.calendar-page [data-period-toggle]{accent-color:var(--teal)}.calendar-page .p2-programme-band{background:#e6f0ec;border-color:var(--teal);border-radius:0 12px 12px 0;padding:12px}.calendar-page .calendar-state-legend{margin-top:16px;color:var(--muted)}
@media(max-width:760px){.calendar-page .calendar-toolbar{padding:12px;gap:12px}.calendar-views{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.calendar-views button{padding:9px 6px;font-size:.84rem;white-space:normal}.calendar-toolbar>label{flex:1;min-width:140px}.calendar-page .p2-calendar-row{min-width:350px;gap:4px;margin-bottom:4px}.p2-calendar-row [role=gridcell]{min-height:86px}.calendar-page .p2-day,.calendar-page .p2-day:has(.p2-day-title){min-height:86px;padding:6px;gap:4px}.calendar-page .p2-day-title{font-size:.6rem}.calendar-page .calendar-paging{gap:6px}.calendar-page input[type=month]{max-width:160px}.calendar-toolbar [data-reset]{max-width:100%;font-size:.82rem}}
.calendar-page .calendar-export{margin-block:1.25rem}.calendar-page .calendar-export summary{cursor:pointer;min-height:44px}.calendar-page [data-next-active]{margin-block:1rem}:root .calendar-page::before{inset-inline:0}.calendar-page [data-plan-controls]{display:flex;gap:12px;flex-wrap:wrap;margin-block:20px}.calendar-page [data-plan-controls] label{display:grid;gap:6px;max-width:100%}.calendar-page [data-plan-controls]>p{flex-basis:100%}
/* Local 320px calendar density: seven separate >=44px targets, no hidden scroll strip. */
@media(max-width:380px){:root .calendar-page{width:calc(100% - 8px);max-width:none;margin-inline:4px;padding-inline:0}:root .calendar-page .calendar-surface{padding-inline:0}:root .calendar-page [data-grid]{overflow-x:visible}:root .calendar-page .p2-calendar-row{min-width:0;gap:0}:root .calendar-page .p2-day,:root .calendar-page .p2-day:has(.p2-day-title){min-width:0;min-height:44px;padding:4px 1px;align-items:center;border-radius:5px}:root .calendar-page .p2-day-title{display:none}:root .calendar-page .calendar-toolbar{padding:8px}:root .calendar-page .calendar-views button{padding-inline:2px}}
.calendar-toolbar>label,.calendar-page [data-plan-controls]>label{min-width:min(100%,10rem);flex:1 1 10rem}
.calendar-views{min-width:0;max-width:100%}
.calendar-views button{min-width:0;overflow-wrap:anywhere;white-space:normal;padding-bottom:13px}
.calendar-page .calendar-paging>label{min-width:0;max-width:100%}
.calendar-page .calendar-views button,.calendar-page [data-reset],.calendar-page [data-next-active]{line-height:1.5;white-space:normal;overflow-wrap:anywhere}

.calendar-page .calendar-toolbar>label{min-width:min(100%,10rem);flex:1 1 10rem}.calendar-page .calendar-views button{overflow-wrap:anywhere;white-space:normal;padding-bottom:13px}
.calendar-page .calendar-toolbar>label,.calendar-page [data-plan-controls]>label{grid-template-columns:minmax(0,1fr)}
.calendar-page .calendar-toolbar select,.calendar-page [data-plan-controls] select{width:100%;min-width:0}
.calendar-page .calendar-agenda,.calendar-page .calendar-event-links{grid-template-columns:minmax(0,1fr);min-width:0}
.calendar-page .calendar-event,.calendar-page .calendar-event-links a{min-width:0;overflow-wrap:anywhere}
