.week-calendar { margin:28px 0; }.week-calendar .section-heading { align-items:start; }.week-page-note { font-size:.8rem; color:var(--muted); }
.week-scroll { display:flex; align-items:start; max-width:100%; max-height:740px; overflow:auto; border:1px solid var(--brand-line); background:var(--paper); position:relative; overscroll-behavior-inline:contain; }
.week-column { flex:0 0 auto; border-inline-end:1px solid var(--brand-line); }.week-column svg { display:block; max-width:none; }.week-column-heading { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; height:76px; position:sticky; top:0; z-index:3; background:var(--brand-bg); border-bottom:1px solid var(--brand-line); padding:5px 12px; }
.week-column-heading strong { font-size:.85rem; }.week-column-heading span,.week-column-heading small { font-size:.65rem; color:var(--muted); }.week-resource-labels { position:sticky; top:76px; z-index:2; background:#f2eee5; }.week-resource-labels text { font-size:10px; fill:var(--brand-navy); }
.week-time-axis { position:sticky; inset-inline-start:0; flex:0 0 60px; z-index:5; background:var(--brand-bg); }.week-axis-heading { height:104px; display:grid; place-items:center; font-size:.75rem; position:sticky; top:0; background:var(--brand-bg); }.week-time-axis svg { display:block; }.week-time-axis text { font-size:10px; fill:var(--muted); }.week-rule { stroke:#e1e5e9; stroke-width:1; }
.week-event rect { fill:#eaf0f7; stroke:#7290b5; stroke-width:1; }.week-event text { fill:#0b2d59; font-size:9px; }.week-event-name { font-size:11px!important; font-weight:650; }.week-event.pending rect { fill:#fff2d7; stroke:#b8994c; }.week-event.completed rect { fill:#e5f2e9; stroke:#789b83; }.week-event.no_show rect { fill:#fbe9e8; stroke:#c07d75; }.week-event.cancelled rect,.week-event.expired rect { fill:#f1f1f1; stroke:#aaa; }.week-event:focus-visible rect,.week-event:hover rect { stroke:var(--brand-gold-deep); stroke-width:3; }
.appointment-register { padding:0; border:1px solid var(--brand-line); border-radius:6px; background:var(--paper); margin:24px 0; }.appointment-register>summary { padding:20px 24px; }.appointment-register>.agenda-list { border:0; }.appointment:target { outline:2px solid var(--brand-gold-deep); outline-offset:5px; }
@media(max-width:600px) { .week-calendar .section-heading { flex-direction:column; }.week-scroll { max-height:580px; }.week-calendar .actions { gap:5px; }.week-calendar .small { font-size:.75rem; padding:8px; } }
