/* Read-only calendar views. Uses the existing Apple appearance tokens and system font. */
.cal-page{--cal-selection:#0865c9;--cal-on-selection:#fff;--cal-cancel:var(--ap-error,#a1362c)}
.cal-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.cal-title-row{margin-bottom:24px}.cal-title-row h1{margin-bottom:0}.cal-title-row .button{white-space:normal;text-align:center}
.cal-view-bar{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:28px}.cal-segments{display:flex;padding:4px;border:1px solid var(--line);border-radius:15px;background:var(--sage);gap:3px}.cal-segments a{display:flex;justify-content:center;align-items:center;min-height:44px;min-width:88px;padding:8px 20px;border-radius:11px;color:var(--muted);text-decoration:none;font-weight:500}.cal-segments [aria-current=page]{background:var(--white);color:var(--ink);box-shadow:0 1px 5px #182a4115}.cal-segments a:active{background:var(--ap-tint)}
.cal-period-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.cal-period-bar h2{font-size:clamp(25px,3vw,32px);margin:0;font-weight:600;line-height:1.25;overflow-wrap:anywhere}.cal-period-bar nav{display:flex;flex:none;gap:8px}.cal-period-bar nav a{display:flex;justify-content:center;align-items:center;min-height:48px;width:48px;background:var(--white);border:1px solid var(--line);border-radius:50%;font-size:32px;line-height:1;text-decoration:none;color:var(--green)}
.cal-month-layout,.cal-day-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;align-items:start}.cal-month-panel{background:var(--white);border:1px solid var(--line);border-radius:22px;padding:18px 14px}.cal-month{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0}.cal-month th{font-size:14px;font-weight:500;color:var(--muted);height:42px;text-align:center;padding:0}.cal-month td{padding:3px 0;border-top:1px solid var(--line);vertical-align:top}.cal-cell{min-height:72px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border-radius:12px;text-decoration:none;color:var(--ink);position:relative}.cal-cell:hover{background:var(--sage)}.cal-cell:active{background:var(--ap-tint)}.cal-date{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;font-size:19px;font-weight:500;border:2px solid transparent}.cal-weekend .cal-date{color:var(--muted)}.cal-cell.is-adjacent{color:var(--muted)}.cal-cell.is-adjacent .cal-date{font-weight:400}.cal-cell.is-today .cal-date{border-color:var(--green);color:var(--green)}.cal-cell.is-selected{background:var(--ap-tint)}.cal-cell.is-selected .cal-date{background:var(--cal-selection);color:var(--cal-on-selection);border-color:var(--cal-selection)}.cal-cell.is-selected.is-today .cal-date{outline:2px solid var(--green);outline-offset:3px}
.cal-dots{display:flex;gap:3px;min-height:7px;align-items:center;justify-content:center}.cal-dot{display:inline-block;flex:none;width:6px;height:6px;border-radius:50%;background:var(--green);border:1px solid var(--green)}.cal-dot-cancelled{background:transparent!important;border:1.5px solid var(--cal-cancel);border-radius:2px}.cal-legend{display:flex;flex-wrap:wrap;gap:12px 18px;justify-content:center;margin:20px 0 2px;font-size:13px;color:var(--muted)}.cal-legend>span{display:inline-flex;align-items:center;gap:7px}.cal-today-key:before{content:'';width:10px;height:10px;border:1.5px solid var(--green);border-radius:50%}
.cal-agenda{min-width:0;background:var(--white);border:1px solid var(--line);border-radius:22px;padding:26px}.cal-agenda>.eyebrow{margin-top:0}.cal-agenda h2{font-size:24px;overflow-wrap:anywhere;margin-bottom:8px}.cal-agenda-count{color:var(--muted);font-size:14px;margin:0 0 24px}.cal-appointment{border:1px solid var(--line);border-left:4px solid var(--green);border-radius:16px;margin-bottom:16px;min-width:0}.cal-appointment>a{display:flex;gap:14px;padding:18px 15px;color:var(--ink);text-decoration:none;min-height:66px;align-items:flex-start}.cal-appointment-time{display:flex;flex:none;flex-direction:column;gap:5px}.cal-appointment-time strong{font-size:19px;font-variant-numeric:tabular-nums}.cal-appointment-time small{font-size:14px;color:var(--muted)}.cal-appointment-info{display:flex;flex:1;min-width:0;flex-direction:column;gap:7px;overflow-wrap:anywhere}.cal-appointment-info>strong{font-size:18px;font-weight:600}.cal-appointment-info>span,.cal-appointment-info>small{font-size:14px;color:var(--muted)}.cal-open-arrow{color:var(--green);font-size:24px}.cal-appointment-actions{display:flex;flex-wrap:wrap;border-top:1px solid var(--line);padding:2px 10px;gap:0 16px}.cal-appointment-actions>a{display:inline-flex;min-height:44px;align-items:center;font-size:14px;color:var(--green);text-decoration:none}.cal-appointment.is-cancelled{background:var(--sage);border-style:dashed;border-left-color:var(--cal-cancel)}.cal-appointment.is-cancelled .cal-appointment-time strong{text-decoration:line-through}.cal-cancel-label{color:var(--cal-cancel)!important;font-weight:600}.cal-plan-day{display:flex;justify-content:center;width:100%;margin-top:22px;white-space:normal;text-align:center}.cal-empty{text-align:center;padding:25px 4px;color:var(--muted)}.cal-empty h3{color:var(--ink);font-size:21px}.cal-empty p{font-size:16px;line-height:1.6}.cal-empty-symbol{display:inline-flex;width:60px;height:60px;justify-content:center;align-items:center;border-radius:20px;background:var(--ap-tint);color:var(--green);font-size:34px}
.cal-week-range{color:var(--muted);font-size:15px;margin:0 0 20px}.cal-week-picker{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;margin-bottom:22px;background:var(--white);border:1px solid var(--line);padding:8px;border-radius:18px}.cal-short-day{font-size:14px;color:var(--muted)}.cal-week-picker .cal-cell{min-height:96px}.cal-week-picker .is-adjacent .cal-date{color:var(--ink)}.cal-week-picker .is-selected .cal-date{color:var(--cal-on-selection)}
.cal-timeline{border:1px solid var(--line);border-radius:20px;background:var(--white);overflow:hidden;min-width:0}.cal-time-head,.cal-time-body{display:grid;grid-template-columns:42px repeat(7,minmax(0,1fr))}.cal-columns-1{grid-template-columns:42px minmax(0,1fr)}.cal-time-head{padding-top:10px;background:var(--white);border-bottom:1px solid var(--line)}.cal-time-head>a{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:68px;text-decoration:none;color:var(--muted);gap:6px;font-size:14px}.cal-time-head strong{font-size:20px;color:var(--ink)}.cal-time-head [aria-current=date]{background:var(--ap-tint);color:var(--green)}.cal-time-head [aria-current=date] strong{color:var(--green)}.cal-time-body{padding:10px 0 8px}.cal-hour-labels{font-family:var(--sans);font-size:11px;fill:var(--muted);display:block;overflow:visible}.cal-time-column{min-width:0;border-left:1px solid var(--line);background:repeating-linear-gradient(to bottom,var(--line) 0,var(--line) 1px,transparent 1px,transparent 60px)}.cal-time-column.is-selected{background-color:var(--ap-tint)}.cal-slots{display:block;overflow:visible}.cal-time-event{display:flex;height:100%;width:100%;min-height:44px;flex-direction:column;gap:2px;padding:4px 5px;border:1px solid var(--green);border-left:3px solid var(--green);border-radius:7px;background:var(--ap-tint);color:var(--ink);text-decoration:none;font-size:12px;line-height:1.2;overflow:hidden;box-sizing:border-box;overflow-wrap:anywhere}.cal-time-event strong{font-size:13px;font-weight:600}.cal-time-event.is-cancelled{border-style:dashed;border-color:var(--cal-cancel);background:var(--sage)}.cal-time-event.is-cancelled strong{text-decoration:line-through}.cal-week-agenda{max-width:760px;margin-top:24px}
.cal-secondary{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:18px;margin:30px 0}.cal-jump{display:flex;align-items:flex-end;gap:12px;margin:0;max-width:440px;min-width:0}.cal-jump label{margin:0;min-width:0;flex:1}.cal-jump button{flex:none}.cal-secondary>.text-link{margin:0}.cal-settings-links{gap:12px}.cal-settings-links .button{font-size:15px}
@media(min-width:980px){.cal-month-layout{grid-template-columns:minmax(350px,1.2fr) minmax(260px,1fr)}.cal-day-layout{grid-template-columns:minmax(270px,1fr) minmax(260px,1fr)}.cal-agenda{padding:22px}.cal-month-panel{padding:16px 9px}.cal-appointment>a{padding:15px 10px;gap:10px}}
@media(max-width:700px){.cal-week-timeline{display:none}.cal-month-layout,.cal-day-layout{gap:18px}.cal-day-layout>.cal-timeline{order:2}.cal-view-bar{gap:10px;margin-bottom:22px}.cal-segments{flex:1;min-width:0}.cal-segments a{flex:1;min-width:0;padding:7px 10px;font-size:16px}.cal-today-button{padding:11px 16px;min-height:48px;font-size:15px}.cal-title-row{align-items:flex-start}.cal-title-row>.button{font-size:15px;padding:12px 16px;max-width:185px}.cal-period-bar h2{font-size:26px}.cal-period-bar nav a{width:44px;min-height:44px}.cal-month-panel{padding:12px 4px;border-radius:18px}.cal-cell{min-height:64px}.cal-date{width:34px;height:34px;font-size:18px}.cal-month th{font-size:13px;height:34px}.cal-legend{font-size:12px;gap:10px 13px}.cal-agenda{padding:23px 18px}.cal-agenda h2{font-size:23px}.cal-week-picker{padding:5px 2px;gap:0}.cal-week-picker .cal-cell{min-height:88px}.cal-secondary{align-items:flex-start}.cal-jump{width:100%}.cal-jump label{font-size:15px}.cal-jump button{font-size:15px;padding:12px 17px}.cal-time-event{font-size:15px}.cal-time-event strong{font-size:16px}}
@media(prefers-color-scheme:dark){.cal-page{--cal-selection:#83bcff;--cal-on-selection:#132131}.cal-segments [aria-current=page]{box-shadow:0 1px 6px #0003}}
@media(prefers-reduced-motion:reduce){.cal-cell:active{transform:none}}
@media print{.cal-view-bar,.cal-period-bar nav,.cal-secondary,.cal-settings-links,.cal-appointment-actions,.cal-plan-day,.cal-title-row>.button{display:none}.cal-month-layout{grid-template-columns:1fr 1fr}.cal-time-event{color:#111;background:#eef4fa}}
