/* The calendar uses only public office-hour windows, never private event details. */
[data-rise-office-hours] { color:#0b3048; }
[data-rise-office-hours] p:empty { display:none; }
.rise-week-address { font-size:1rem; }
.rise-week-calendar { margin:1.5rem 0; border:1px solid #cbdde1; background:#fff; }
.rise-week-toolbar { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 1.25rem .25rem; flex-wrap:wrap; }
.rise-week-toolbar h2 { font-size:1.5rem; margin:0; }
.rise-week-nav { display:flex; gap:.5rem; }
.rise-week-nav button,.rise-week-booking-controls button,.rise-week-booking-controls select { font:inherit; font-weight:400; min-height:44px; padding:.6rem .9rem; border:1px solid #b8ced5; border-radius:4px; background:#fff; color:#0b3048; cursor:pointer; }
.rise-week-nav button:disabled { opacity:.4; cursor:default; }
.rise-week-nav button:hover:not(:disabled) { background:#edf7f6; }
.rise-week-caption { font-size:.9rem; color:#486575; }
.rise-week-calendar > .rise-week-caption { margin:.35rem 1.25rem 1rem; }
.rise-week-grid { display:grid; grid-template-columns:58px repeat(5,minmax(0,1fr)); padding:0 1rem 1.5rem .5rem; }
.rise-week-day { min-width:0; border-left:1px solid #dae5e8; }
.rise-week-day-heading { height:42px; box-sizing:border-box; margin:0; padding:.5rem .2rem; font-family:inherit; font-size:.95rem; font-weight:400; text-align:center; }
.rise-week-day-heading.is-today { color:#007b7b; text-decoration:underline; text-underline-offset:5px; }
.rise-week-track { position:relative; height:340px; background:repeating-linear-gradient(to bottom,#f4f8f9 0,#f4f8f9 1px,transparent 1px,transparent 11.111%); }
.rise-week-axis .rise-week-track { background:none; }
.rise-week-tick { position:absolute; right:8px; transform:translateY(-50%); font-size:.75rem; color:#56717e; }
.rise-week-block { position:absolute; left:3px; right:3px; box-sizing:border-box; padding:5px; background:#d9f0ec; border-left:3px solid #008b87; border-radius:3px; color:#064b4c; font-size:.8rem; line-height:1.35; overflow:auto; }
.rise-week-block span { display:block; white-space:nowrap; }
a.rise-week-block { display:block; text-decoration:none; cursor:pointer; }
a.rise-week-block:hover { background:#bce5de; text-decoration:underline; }
a.rise-week-block:focus-visible { outline:3px solid #0b3048; outline-offset:2px; }
.rise-week-empty { display:block; padding:1rem .2rem; text-align:center; font-size:.8rem; color:#647b85; }
.rise-week-booking { margin:1.5rem 0; }
.rise-week-booking-controls { display:flex; align-items:center; gap:.75rem; flex-wrap:wrap; }
.rise-week-booking-controls button { background:#0b3048; border-color:#0b3048; color:#fff; }
.rise-week-booking-controls button:hover { background:#075766; }
.rise-week-book-link { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:.65rem 1.25rem; border:1px solid #88bfbe; border-radius:999px; background:#edf8f6; color:#075c60; font:inherit; font-weight:400; text-decoration:none; }
.rise-week-book-link:hover { background:#d8efeb; border-color:#008b87; color:#06494c; text-decoration:none; }
[data-rise-office-hours] :focus-visible { outline:3px solid #008b87; outline-offset:3px; }
@media(max-width:700px) {
 .rise-week-grid { display:block; padding:0 1rem 1rem; }
 .rise-week-axis { display:none; }
 .rise-week-day { display:grid; grid-template-columns:80px minmax(0,1fr); border-left:0; border-top:1px solid #dae5e8; padding:.5rem 0; }
 .rise-week-day-heading { text-align:left; height:auto; padding:.5rem 0; }
 .rise-week-track { height:auto; background:none; display:flex; flex-direction:column; gap:.4rem; }
 .rise-week-block { position:static; height:auto!important; padding:.6rem; font-size:.95rem; }
 .rise-week-block span { display:inline; white-space:normal; }
 .rise-week-empty { padding:.5rem; text-align:left; font-size:.9rem; }
 .rise-week-toolbar { padding:1rem; }
 .rise-week-toolbar h2 { font-size:1.25rem; }
 .rise-week-calendar > .rise-week-caption { margin-top:0; }
 .rise-week-booking-controls label { flex-basis:100%; }
}
