.calendar-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:18px}.calendar-toolbar .field{margin:0;max-width:175px}.calendar-legend{display:flex;gap:12px;flex-wrap:wrap;font-size:.8rem;margin:18px 0}.calendar-legend span{padding:10px;border-radius:8px}.calendar-scroll{overflow:auto;max-height:68vh;border:1px solid var(--line);border-radius:14px;background:white}.week-calendar{table-layout:fixed;min-width:880px}.week-calendar th:first-child{width:65px}.week-calendar th{white-space:normal;font-weight:600}.week-calendar thead th{position:sticky;top:0;z-index:2;background:#f4f2fa}.week-calendar td{padding:0;border:1px solid #fff;height:34px;min-width:0;white-space:normal}.week-calendar tbody th{padding:5px;font-size:.73rem}.week-calendar button{width:100%;height:100%;min-height:34px;border:0;background:transparent;font:inherit;font-size:.78rem;color:inherit;text-align:left;padding:7px}.week-calendar button span{display:block;margin-top:5px}.calendar-free{background:#e0f3e9;color:#226344}.calendar-busy{background:#e3dcfa;color:#45317d;vertical-align:top}.calendar-off{background:#eceef2;color:#8c91a2;text-align:center}.week-calendar .calendar-today{background:#dcd5fa;color:#3a3285}.calendar-plan{margin-top:20px}.hours-row{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:12px;align-items:center;border-bottom:1px solid var(--line);padding:12px 0}.hours-row .field{margin:0}.training-reminder{padding:18px 22px;border:1px solid #cabcef;background:#eee8ff;border-radius:12px;margin-bottom:20px}.training-reminder p{margin:8px 0}.hours-list{margin-top:12px}
@media(max-width:700px){.hours-row{grid-template-columns:1fr 1fr}.hours-row>.check{grid-column:1/-1}.calendar-toolbar{gap:8px}.calendar-toolbar .button{font-size:.76rem}.calendar-legend{gap:6px;font-size:.7rem}.calendar-scroll{max-height:65vh}.week-calendar{min-width:1000px}}

.preferred-day{display:block;color:#226344;font-size:.65rem;margin-top:4px}.week-calendar tbody th{position:sticky;left:0;z-index:1;background:#f4f2fa}

.calendar-timeline{display:grid;grid-template-columns:65px repeat(7,minmax(110px,1fr));min-width:880px}.timeline-heading{position:sticky;top:0;z-index:3;background:#f4f2fa;padding:12px 7px;font-size:.75rem;border-bottom:1px solid var(--line)}.timeline-heading.calendar-today{background:#dcd5fa}.timeline-times{position:sticky;left:0;background:#f4f2fa;z-index:2}.timeline-times span{position:absolute;left:5px;font-size:.72rem;padding-top:4px}.timeline-day{position:relative;background:repeating-linear-gradient(to bottom,#eceef2 0,#eceef2 55px,#fff 55px,#fff 56px);border-right:1px solid white}.timeline-slot{position:absolute;left:0;width:100%;padding:2px 5px;border:1px solid white;border-radius:0;min-height:0;overflow:hidden;text-align:left;font:inherit;font-size:.73rem;line-height:1.2}.timeline-slot span{display:block}.timeline-slot:focus-visible{z-index:4}.timeline-slot.calendar-busy{z-index:1}.timeline-heading:first-child{left:0;z-index:4}

.day-breaks{grid-column:1/-1;padding:12px;background:#faf8f2;border-radius:10px}.day-breaks>b{font-size:.8rem}.break-row{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:end;margin:12px 0}.calendar-break{background:repeating-linear-gradient(135deg,#fff1c9 0,#fff1c9 8px,#f9e8b8 8px,#f9e8b8 16px);color:#70520e}.timeline-slot.calendar-break{display:flex;flex-direction:column;justify-content:center;pointer-events:none}.break-row .button{margin-bottom:0}@media(max-width:700px){.break-row{grid-template-columns:1fr 1fr}.break-row .button{grid-column:1/-1;justify-self:end}}

.budget-negative{color:#ad2946;font-weight:700}
