#calendarRoot{color:var(--review-ink);padding-bottom:8px}
#calendarRoot button,.cal-dialog button{touch-action:manipulation}
.cal-context,.cal-toolbar,.cal-agenda-head,.cal-filter,.cal-undo{display:flex;align-items:center;justify-content:space-between;gap:12px}
.cal-context{margin:0 0 12px}.cal-context small{white-space:nowrap;color:var(--review-muted);font-size:11px}
.cal-group{display:flex;align-items:center;gap:8px;min-height:44px;min-width:0;text-align:left;font:550 13px/1.4 Onest,sans-serif;color:var(--review-ink)}
.cal-group span{overflow-wrap:anywhere}.cal-group svg{width:17px;height:17px;flex-shrink:0}
.cal-toolbar h2{font:700 20px/1.3 Onest,sans-serif;text-transform:capitalize;color:var(--review-ink)}
.cal-toolbar>div{display:flex;flex-shrink:0;gap:2px}.cal-icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;flex-shrink:0;border:0;border-radius:6px;color:var(--review-accent);background:none}
.cal-icon:hover{background:var(--review-soft)}.cal-icon svg{width:21px;height:21px}
.cal-period{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;margin:8px 0;text-align:center;font:500 12px/1.4 Onest,sans-serif;color:var(--review-muted)}
.cal-dates,.cal-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.cal-dates{touch-action:pan-y;user-select:none}
.cal-weekdays{margin-bottom:6px;text-align:center;font-size:11px;color:var(--review-muted)}
.cal-date{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:0;min-height:64px;padding:6px 0;border:1px solid transparent;border-radius:7px;background:none;color:var(--review-ink)}
.cal-weekdays+.cal-dates .cal-date{min-height:47px;gap:2px;padding:4px 0}
.cal-date>span:first-child{font-size:11px}.cal-date b{font:650 15px/1.25 Onest,sans-serif}.cal-date.outside{color:var(--review-muted)}
.cal-date[aria-current=date]{border-color:var(--review-accent)}.cal-date[aria-pressed=true]{background:#5c1a26;color:white!important;border-color:#5c1a26}
.cal-date:hover:not([aria-pressed=true]){background:var(--review-soft)}.cal-dots{display:flex;gap:3px;min-height:5px;justify-content:center}
.cal-dots i{height:4px;width:4px;border-radius:50%}.class-dot{background:var(--review-accent)}.task-dot{background:#a97927}.cal-date[aria-pressed=true] .class-dot{background:white}.cal-date[aria-pressed=true] .task-dot{background:#e3c68c}
.cal-agenda-head{margin:25px 0 6px;padding-top:18px;border-top:1px solid var(--review-line)}
.cal-agenda-head h3{font:650 16px/1.4 Onest,sans-serif;text-transform:capitalize;color:var(--review-ink)}
.cal-agenda-head .cal-icon{background:var(--review-soft)}
.cal-filter{margin-bottom:12px}.cal-filter select{width:auto!important;max-width:65%;min-height:40px!important;padding:7px 28px 7px 10px!important;font-size:13px!important;border:0!important}.cal-filter>span{font-size:11px;color:var(--review-muted)}
.cal-event{display:grid;grid-template-columns:46px minmax(0,1fr) 16px;align-items:center;gap:12px;padding:16px 0;border-bottom:1px solid var(--review-line)}
.cal-event>svg{width:16px;height:16px;color:var(--review-muted);pointer-events:none}.cal-time{display:grid;gap:4px;align-self:start;padding-top:4px}.cal-time b{font-size:14px;font-weight:650}.cal-time span{font-size:11px;color:var(--review-muted)}
.cal-event-main{min-width:0;text-align:left;padding:0;color:inherit;background:none;min-height:48px}.cal-event-main>span,.cal-event-main>strong{display:block}.cal-event-main strong{font:650 15px/1.4 Onest,sans-serif;margin:5px 0}.cal-kind,.cal-event-meta{font-size:11px;color:var(--review-muted);line-height:1.45}
.cal-status{font-size:11px;line-height:1.5;color:var(--review-accent);margin-top:7px;font-weight:600}.cal-event.cancelled strong,.cal-event.done strong{text-decoration:line-through;color:var(--review-muted)}
.cal-complete{justify-self:center;accent-color:#5c1a26}.cal-empty{padding:25px 6px;display:grid;justify-items:center;gap:10px;text-align:center}.cal-empty svg{width:26px;height:26px;color:var(--review-muted)}.cal-empty h3{font:600 15px/1.4 Onest,sans-serif}.cal-empty p{font-size:12px;color:var(--review-muted)}
.cal-info{padding:12px 0;font-size:12px;line-height:1.5;color:var(--review-muted)}
.cal-undo:empty{display:none}.cal-undo{margin:12px 0;padding:8px 12px;background:var(--review-soft);font-size:12px}.cal-undo button{min-height:44px;color:var(--review-accent);font-weight:600}
.cal-dialog{width:min(430px,calc(100% - 24px));max-height:90dvh;padding:20px;border:1px solid var(--review-line);border-radius:8px;color:var(--review-ink);background:var(--review-bg)}
.cal-dialog::backdrop{background:#18131a88}.cal-dialog>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.cal-dialog h2{font:700 19px/1.3 Onest,sans-serif}.cal-dialog label{display:grid;gap:7px;margin-bottom:16px;font-size:13px;font-weight:550}.cal-dialog small{font-size:11px;color:var(--review-muted);font-weight:400}.cal-dialog textarea{resize:vertical;min-height:88px}
.cal-form-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:12px;align-items:end}.cal-form-row label{min-width:0}.cal-dialog input[type=date],.cal-dialog input[type=time]{min-width:0;font-size:16px;max-width:100%}
.cal-primary{display:block;width:100%;min-height:48px;border:0;border-radius:7px;background:#5c1a26;color:#fff;font:650 14px/1.4 Onest,sans-serif;padding:12px}
.cal-delete{display:flex;align-items:center;justify-content:center;gap:7px;min-height:48px;width:100%;color:var(--review-accent);margin-top:8px;font-size:13px}
.cal-demo-note{font:400 11px/1.5 Onest,sans-serif;color:var(--review-muted);margin-top:16px}.cal-error{font-size:12px;color:var(--review-accent);margin-bottom:12px}.cal-error:empty{display:none}
.cal-dialog dl{display:grid;gap:6px;margin:20px 0}.cal-dialog dt{font-size:11px;color:var(--review-muted)}.cal-dialog dd{font-size:14px;margin:0 0 10px;overflow-wrap:anywhere}.cal-detail-kind{font-size:12px;color:var(--review-muted)}
@media(max-width:360px){.cal-toolbar h2{font-size:18px}.cal-event{gap:9px}.cal-form-row{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){#calendarRoot *, .cal-dialog *{scroll-behavior:auto!important;transition:none!important}}
