/* Month calendar; works without scripting. Keep seven weekdays together on mobile. */
.tbis-month-calendar{margin-top:2rem;color:var(--ink,#22343f)}
.tbis-calendar-filters{display:flex;flex-wrap:wrap;gap:1rem;align-items:end;margin:0 0 2rem}
.tbis-calendar-filters label{display:grid;gap:.4rem;font-weight:600;min-width:150px}
.tbis-calendar-filters select,.tbis-calendar-filters button{font:inherit;border:1px solid #ccd5da;border-radius:6px;padding:.65rem .9rem;background:white}
.tbis-calendar-filters button{background:#007fa3;color:white;border-color:#007fa3;cursor:pointer}
.tbis-calendar-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.2rem}
.tbis-calendar-toolbar nav{display:flex;align-items:center;gap:1.5rem}
.tbis-calendar-toolbar h2{font-size:1.4rem;margin:0}
.tbis-calendar-toolbar a{color:inherit;text-decoration:none;padding:.4rem}
.tbis-calendar-view{display:flex;background:#edf3f5;border-radius:6px;padding:4px}
.tbis-calendar-view a{padding:.5rem 1rem;border-radius:4px}
.tbis-calendar-view a[aria-current]{background:#007fa3;color:white}
.tbis-calendar-scroll{overflow-x:auto;border:1px solid #dce3e7;border-radius:8px;background:white}
.tbis-calendar-grid{width:100%;table-layout:fixed;border-collapse:collapse;min-width:650px}
.tbis-calendar-grid th{background:#f4f7f8;padding:.75rem;font-weight:600;border-bottom:1px solid #dce3e7}
.tbis-calendar-grid td{height:105px;vertical-align:top;padding:.5rem;border-right:1px solid #e5eaed;border-bottom:1px solid #e5eaed}
.tbis-calendar-grid td:last-child{border-right:0}.tbis-calendar-grid tr:last-child td{border-bottom:0}
.tbis-calendar-grid th:first-child,.tbis-calendar-grid td:first-child .tbis-calendar-day{color:#bd4050}
.tbis-calendar-grid th:last-child,.tbis-calendar-grid td:last-child .tbis-calendar-day{color:#1673aa}
.tbis-calendar-grid .is-outside{background:#f6f8f9}.tbis-calendar-grid .is-outside .tbis-calendar-day{opacity:.5}
.tbis-calendar-day{display:inline-flex;align-items:center;justify-content:center;min-width:1.75rem;height:1.75rem;font-size:.9rem}
.tbis-calendar-grid .is-today .tbis-calendar-day{background:#007fa3;color:white;border-radius:50%;font-weight:700}
.tbis-calendar-event{display:block;border-radius:4px;background:#e4f3f6;color:#15556c;text-decoration:none;font-size:.75rem;line-height:1.5;padding:.25rem .4rem;margin-top:.3rem;overflow-wrap:anywhere}
.tbis-calendar-time{font-weight:700}.tbis-calendar-list{list-style:none;padding:0;margin:0}
.tbis-calendar-list li{display:grid;grid-template-columns:140px 1fr 180px;gap:1rem;padding:1.25rem 0;border-bottom:1px solid #dce3e7}
.tbis-calendar-list a{color:#15556c;font-weight:600}.tbis-calendar-empty{padding:1.5rem;text-align:center}
.tbis-month-calendar a:focus-visible,.tbis-month-calendar button:focus-visible,.tbis-month-calendar select:focus-visible,.tbis-calendar-scroll:focus-visible{outline:3px solid #e89d31;outline-offset:3px}
@media(max-width:640px){.tbis-calendar-toolbar{justify-content:center}.tbis-calendar-toolbar nav{gap:.7rem}.tbis-calendar-toolbar h2{font-size:1.2rem}.tbis-calendar-filters label{min-width:0;flex:1 1 120px}.tbis-calendar-list li{grid-template-columns:1fr;gap:.4rem}.tbis-calendar-scroll{margin-inline:-.25rem}.tbis-calendar-grid{min-width:600px}}
.tbis-calendar-filter-heading{background:#f3f6f8;padding:1.25rem 1.5rem 0;border-radius:8px 8px 0 0}.tbis-calendar-filter-heading small{letter-spacing:.16em;color:#007fa3;font-weight:700}.tbis-calendar-filter-heading h3{margin:.4rem 0 0;font-size:1.15rem}.tbis-calendar-filters{background:#f3f6f8;padding:1.2rem 1.5rem;border-radius:0 0 8px 8px}.tbis-calendar-filters input[type=month]{font:inherit;border:1px solid #ccd5da;border-radius:6px;padding:.65rem .9rem;background:white;min-width:0}.tbis-calendar-reset{align-self:center;color:#15556c;font-size:.9rem}
