/* Existing app palette: wine, graphite, mint, pearl and powder pink. */
#calendarRoot{--cal-fresh:#e8cdd2;--cal-dark:#252525;--review-bg:#fff;--review-ink:#161616;--review-muted:#5c1a26;--review-soft:#f3e5e8;--review-line:#e8cdd2;--review-accent:#5c1a26;letter-spacing:0}
body[data-live-calendar][data-active-view=study]{--review-bg:#fff;--review-ink:#161616;--review-muted:#5c1a26;--review-soft:#f3e5e8;--review-line:#e8cdd2;--review-accent:#5c1a26}
html[data-theme=dark] body[data-live-calendar][data-active-view=study]{--review-bg:#161616;--review-ink:#fff;--review-muted:#e8cdd2;--review-soft:#252525;--review-line:#5c1a26;--review-accent:#e8cdd2}
body[data-live-calendar] .study-heading{padding-block:12px 8px;min-height:0}
body[data-live-calendar] .study-heading h1{font-size:26px;margin:0}
body[data-live-calendar][data-active-view=study] .selection-review{height:32px}
body[data-live-calendar][data-active-view=study] .app-bar{height:48px;min-height:48px}
body[data-live-calendar] .study-heading{margin:0 0 12px;padding:0}
body[data-live-calendar] .study-heading h1{display:none}
body[data-live-calendar] .study-mode-tabs{margin:0}
body[data-live-calendar] .calendar-identity{margin:12px 0 4px}
body[data-live-calendar] .calendar-identity img,body[data-live-calendar] .calendar-identity small{display:none}
body[data-live-calendar] #calendarGroup{font-size:12px;color:var(--review-muted);font-weight:500}
body[data-live-calendar] #calendarState{min-height:0;margin:4px 0 12px;font-size:11px}
#calendarRoot .cal-toolbar{gap:4px}
#calendarRoot .cal-toolbar h2{font-size:19px;font-weight:750;margin:0}
#calendarRoot .cal-toolbar>div{margin-left:0}
#calendarRoot .cal-period{margin:3px 0 8px;font-size:12px}
#calendarRoot .cal-dates{gap:4px}
#calendarRoot .cal-date{min-height:72px;border-radius:8px;background:var(--review-soft);gap:6px}
#calendarRoot .cal-date b{font-size:20px;font-weight:750}
#calendarRoot .cal-date[aria-pressed=true]{background:var(--cal-dark);border-color:var(--cal-dark);color:#fff}
#calendarRoot .cal-date[aria-current=date]:not([aria-pressed=true]){border-color:#5c1a26;background:#f3e5e8;color:#3a1018}
#calendarRoot .cal-date[aria-pressed=true] .task-dot{background:var(--cal-fresh)}
html[data-theme=dark] #calendarRoot .cal-date[aria-pressed=true]{background:#dce9e1;border-color:#dce9e1;color:#2a0e12!important}
html[data-theme=dark] #calendarRoot .cal-date[aria-pressed=true] .class-dot{background:#5c1a26}
html[data-theme=dark] #calendarRoot .cal-date[aria-pressed=true] .task-dot{background:#355c48}
html[data-theme=dark] #calendarRoot .cal-date[aria-current=date]:not([aria-pressed=true]){background:#252528;border-color:#e8cdd2;color:#f3e5e8}
#calendarRoot .cal-weekdays+.cal-dates .cal-date{min-height:44px;gap:2px}
#calendarRoot .cal-weekdays+.cal-dates .cal-date b{font-size:15px}
#calendarRoot .cal-agenda-head{margin:24px 0 0;padding:0;border:0;gap:8px}
#calendarRoot .cal-agenda-head h3{font-size:24px;font-weight:750;margin:3px 0 0;line-height:1.15}
.cal-agenda-head small{color:var(--review-muted);font-size:12px;text-transform:capitalize}
.cal-add{display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:10px 12px;border:0;border-radius:8px;background:#5c1a26;color:white;font:600 12px/1.3 Onest,sans-serif;flex-shrink:0}
.cal-add svg{width:18px;height:18px}
.cal-day-summary{display:grid;grid-template-columns:minmax(0,1fr) 96px;align-items:center;gap:16px;min-height:112px;margin:8px 0 16px;border-bottom:1px solid var(--review-line);padding-bottom:8px}
.cal-day-summary>img{width:96px;height:96px;object-fit:contain;animation:cal-clock-in .3s ease-out}
.cal-day-summary>.cal-meter{grid-column:1/-1;margin-bottom:8px}
.cal-meter{min-width:0;width:100%}
.cal-meter-caption{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;color:var(--review-ink);font-size:12px}
.cal-meter-caption>span{display:flex;align-items:center;gap:7px;min-width:0}
.cal-meter-caption svg{width:16px;height:16px;flex:none;color:var(--review-accent)}
.cal-meter-caption>b{font-size:16px;font-weight:750}
.cal-meter-track{position:relative;height:12px;overflow:hidden;background:var(--review-soft);border-radius:4px}
.cal-meter-fill{position:absolute;inset:0;background:#7a2230;transform-origin:left center}
.cal-meter-ticks{position:absolute;inset:0;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));pointer-events:none}
.cal-meter-ticks i{border-right:3px solid var(--review-bg)}
.cal-meter-ticks i:last-child{border-right:0}
#calendarRoot .cal-semantic-progress{position:absolute;width:1px;height:1px;margin:-1px;padding:0;clip-path:inset(50%);overflow:hidden}
.cal-lesson-meter{padding:12px 0 18px;border-bottom:1px solid var(--review-line);margin:0 0 16px}
.cal-lesson-caption{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;color:var(--review-accent)}
.cal-lesson-caption>span{font-size:11px}
.cal-lesson-caption>b{font-size:24px;font-weight:750}
.cal-lesson-caption small{font-size:11px;font-weight:500}
.cal-lesson-meter .cal-meter-track{height:7px}
.cal-lesson-meter .cal-meter-ticks{display:none}
.cal-lesson-meter .cal-meter-caption{font-size:11px}
.cal-lesson-meter .cal-meter-caption>b{font-size:13px}
.cal-fetch-progress{height:3px;overflow:hidden;background:var(--review-soft);margin:0 0 12px;border-radius:4px}
.cal-fetch-progress>span{display:block;width:35%;height:100%;background:var(--review-accent);animation:cal-fetch 1.2s ease-in-out infinite}
#calendarRoot .cal-icon.is-loading svg{animation:cal-spin 1.1s linear infinite}
#calendarRoot .cal-event-main.has-art{position:relative;padding-right:68px;min-height:72px}
.cal-task-art{position:absolute;right:0;bottom:0;width:64px;height:64px;object-fit:contain;pointer-events:none}
#calendarRoot .cal-event-personal:has(.cal-complete:checked){background:var(--review-soft)}
html[data-theme=dark] .cal-meter-track{background:#e8cdd2}
html[data-theme=dark] .cal-meter-fill{background:#7a2230}
@keyframes cal-fetch{from{transform:translateX(-100%)}to{transform:translateX(390%)}}
@keyframes cal-spin{to{transform:rotate(360deg)}}
.cal-day-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.cal-day-counts>div{display:grid;gap:4px}
.cal-day-counts b{font-size:28px;line-height:1.1;font-weight:750}
.cal-day-counts b small{font-size:14px;color:var(--review-muted);font-weight:500}
.cal-day-counts span{font-size:11px;color:var(--review-muted)}
.cal-day-counts progress{grid-column:1/-1;width:100%;height:5px;accent-color:#5c1a26;border:0;border-radius:4px;overflow:hidden;background:var(--review-soft)}
.cal-day-counts progress::-webkit-progress-bar{background:var(--review-soft)}
.cal-day-counts progress::-webkit-progress-value{background:#5c1a26}
.cal-segments{display:flex;background:var(--review-soft);padding:3px;border-radius:8px;gap:3px}
.cal-segments button{min-height:38px;min-width:58px;padding:7px 12px;border:0;border-radius:6px;background:none;color:var(--review-muted);font:600 13px/1.3 Onest,sans-serif}
.cal-segments button[aria-pressed=true]{background:var(--cal-dark);color:white}
#calendarRoot .cal-all-tasks{min-height:40px;margin:0 0 12px;font-size:12px}
#calendarRoot .cal-agenda{display:grid;gap:10px}
#calendarRoot .cal-event{border:0;border-radius:8px;padding:16px 12px;gap:10px;grid-template-columns:44px minmax(0,1fr) 16px;box-shadow:none;transition:background .15s ease}
#calendarRoot .cal-event-class{background:var(--cal-dark);color:#fff}
#calendarRoot .cal-event-class .cal-kind,#calendarRoot .cal-event-class .cal-event-meta,#calendarRoot .cal-event-class .cal-time span,#calendarRoot .cal-event-class>svg{color:#f3e5e8}
#calendarRoot .cal-event-class .cal-time b{color:#fff}
#calendarRoot .cal-event-main strong{font-size:14px;line-height:1.45;font-weight:650;margin:6px 0}
#calendarRoot .cal-kind{font-size:10px}
#calendarRoot .cal-event-meta{font-size:11px;line-height:1.5}
#calendarRoot .cal-event-personal{background:var(--cal-fresh);color:#2a0e12}
#calendarRoot .cal-event-personal :is(.cal-kind,.cal-event-meta,.cal-status){color:#5c1a26}
#calendarRoot .cal-event.done{background:var(--review-soft);color:var(--review-ink)}
#calendarRoot .cal-event.done :is(.cal-kind,.cal-event-meta,.cal-status){color:var(--review-muted)}
#calendarRoot .cal-event-class.cancelled strong{color:#f3e5e8}
#calendarRoot .cal-complete{width:24px;height:24px;accent-color:#5c1a26;cursor:pointer}
#calendarRoot .cal-event-personal:not(.done) .cal-complete{color-scheme:light}
#calendarRoot .cal-event-personal>svg{color:#5c1a26}
#calendarRoot .cal-event.done>svg{color:var(--review-muted)}
#calendarRoot .cal-event.is-current{background:#5c1a26;color:white;box-shadow:none;padding-left:12px}
#calendarRoot .cal-current-label{display:inline-block;color:var(--cal-fresh);font-size:11px}
#calendarRoot .cal-status{color:#e8cdd2}
#calendarRoot .cal-info{padding:0;font-size:11px;margin:8px 0 12px}
#calendarRoot .cal-empty{padding:28px 12px;background:var(--review-soft);border-radius:8px;gap:8px}
#calendarRoot .cal-empty svg{color:var(--review-accent);width:32px;height:32px}
#calendarRoot .cal-empty h3{margin:4px 0;font-size:16px}
#calendarRoot .cal-empty p{margin:0;color:var(--review-muted);line-height:1.5}
#calendarRoot button:focus-visible{outline:2px solid var(--review-accent);outline-offset:3px}
.cal-add:hover{filter:brightness(1.08)}
.cal-add:active{transform:translateY(1px)}
html[data-theme=dark] #calendarRoot{--cal-fresh:#e8cdd2;--cal-dark:#252525;--review-bg:#161616;--review-ink:#fff;--review-muted:#e8cdd2;--review-soft:#2a0e12;--review-line:#5c1a26;--review-accent:#e8cdd2}
html[data-theme=dark] .cal-add{background:#e8cdd2;color:#3a1018}
@keyframes cal-clock-in{from{opacity:0;transform:translateY(5px) rotate(-4deg)}to{opacity:1;transform:none}}
@media(max-width:380px){
  #calendarRoot .cal-toolbar{flex-wrap:nowrap}
  #calendarRoot .cal-toolbar h2{flex:1;min-width:0;font-size:16px}
  #calendarRoot .cal-toolbar .cal-icon{width:40px}
  #calendarRoot .cal-agenda-head h3{font-size:21px}
  .cal-add{font-size:11px;padding:9px}
  .cal-day-summary{grid-template-columns:minmax(0,1fr) 76px;gap:10px}
  .cal-day-summary>img{width:76px;height:76px}
  .cal-day-counts b{font-size:24px}
  .cal-segments button{min-width:50px;padding-inline:10px}
}
@media(prefers-reduced-motion:reduce){.cal-day-summary>img,.cal-fetch-progress>span,#calendarRoot .cal-icon.is-loading svg{animation:none}#calendarRoot .cal-event{transition:none}.cal-add:active{transform:none}}

#calendarRoot{--cal-fresh:#e5e9e7;--review-muted:#51454b;--review-soft:#f3f4f3;--review-line:#dce1de}
#calendarRoot .cal-event-practice{background:#dce9e1;color:#192a21}
#calendarRoot .cal-event-practice :is(.cal-kind,.cal-event-meta,.cal-status){color:#354d40}
#calendarRoot .cal-event-personal:not(.done):not(.cal-event-practice){background:#f3e5e8}
.cal-meter-track{background:#e5e9e7}
.cal-meter-fill{background:#5c1a26}
.cal-meter[data-percent="100"] .cal-meter-fill{background:#355c48}
html[data-theme=dark] #calendarRoot{--review-muted:#c4bfC1;--review-soft:#252528;--review-line:#3e3e41;--cal-fresh:#dce9e1}
html[data-theme=dark] .cal-meter-track{background:#393a3c}
html[data-theme=dark] .cal-meter-fill{background:#e8cdd2}
html[data-theme=dark] .cal-meter[data-percent="100"] .cal-meter-fill{background:#a9c7b5}
