.calendar-heading{margin-bottom:1rem}.calendar-toolbar{display:flex;align-items:center;gap:.55rem;margin-bottom:1rem}.calendar-toolbar a{background:#fff;border:1px solid var(--line);border-radius:.6rem;padding:.55rem .8rem;font-weight:750}.calendar-arrow{font-size:1.25rem;line-height:1}.calendar-key{display:flex;flex-wrap:wrap;gap:.6rem 1rem;margin-bottom:1rem;color:var(--muted);font-size:.8rem}.calendar-key span{display:flex;align-items:center;gap:.35rem}.calendar-key i,.event-dot{width:.7rem;height:.7rem;border-radius:50%;background:var(--event-color);display:inline-block}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--line);border-radius:1rem;overflow:hidden;background:#fff;margin-bottom:2.5rem}.calendar-weekday{padding:.7rem;text-align:center;background:var(--navy);color:#fff;font-size:.76rem;font-weight:800}.calendar-day{min-height:132px;padding:.5rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0}.calendar-day:nth-child(7n+7){border-right:0}.calendar-day.outside-month{background:#f1f4f2;color:#9aa59f}.calendar-day.today{box-shadow:inset 0 0 0 2px var(--green)}.calendar-date{display:flex;justify-content:space-between;align-items:center;font-size:.82rem;font-weight:850;margin-bottom:.4rem}.calendar-date a{display:grid;place-items:center;width:1.45rem;height:1.45rem;border-radius:50%;color:var(--muted)}.calendar-date a:hover{background:var(--line);color:var(--ink)}.calendar-events{display:flex;flex-direction:column;gap:.3rem}.calendar-event{display:flex;flex-direction:column;border-left:4px solid var(--event-color);background:color-mix(in srgb,var(--event-color) 12%,white);border-radius:.35rem;padding:.35rem .4rem;color:var(--ink);min-width:0}.calendar-event strong,.calendar-event small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-event strong{font-size:.78rem}.calendar-event small{font-size:.67rem;color:var(--muted)}a.calendar-event:hover{filter:brightness(.96)}.calendar-agenda{display:flex;flex-direction:column;gap:.65rem}.calendar-agenda h2{margin-bottom:.4rem}.calendar-agenda>article{display:flex;justify-content:space-between;gap:1rem;border:1px solid var(--line);border-left:5px solid var(--event-color);background:white;border-radius:.8rem;padding:1rem}.calendar-agenda p{margin:.25rem 0 0;white-space:pre-wrap}.calendar-form-panel{max-width:720px}.form-columns{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.check-label{flex-direction:row;align-items:center}.check-label input{width:auto}.color-input{height:46px;padding:.25rem;width:100%}textarea{font:inherit;border:1px solid #bdc9c3;border-radius:.65rem;padding:.75rem;resize:vertical;color:var(--ink)}textarea:focus,select:focus{outline:3px solid rgba(8,127,75,.18);border-color:var(--green)}.calendar-delete{border-top:1px solid var(--line);margin-top:1.5rem;padding-top:1.5rem}.calendar-delete button{background:var(--red)}
@media(max-width:720px){.calendar-grid{display:block;background:transparent;border:0}.calendar-weekday{display:none}.calendar-day{display:none;min-height:0;border:1px solid var(--line);border-radius:.75rem;background:#fff;margin-bottom:.55rem;padding:.8rem}.calendar-day:has(.calendar-event),.calendar-day.today{display:block}.calendar-day.outside-month{display:none}.calendar-date{font-size:.95rem}.calendar-date span::before{content:attr(data-weekday)}.calendar-event{padding:.5rem}.calendar-event strong{font-size:.9rem}.calendar-event small{font-size:.75rem}}
@media(max-width:520px){.form-columns{grid-template-columns:1fr}.calendar-heading .button{width:100%}}
.color-palette{border:0;padding:0;margin:0}.color-palette legend{font-size:.88rem;font-weight:750;margin-bottom:.5rem}.color-palette>div{display:flex;flex-wrap:wrap;gap:.7rem}.color-palette label{display:flex;align-items:center;gap:.35rem;cursor:pointer;font-weight:650}.color-palette input{position:absolute;opacity:0;pointer-events:none}.color-palette span{display:block;width:2.25rem;height:2.25rem;border-radius:.6rem;background:var(--choice-color);border:3px solid #fff;box-shadow:0 0 0 1px #aab8b1;transition:transform .12s,box-shadow .12s}.color-palette em{font-style:normal;font-size:.78rem;color:var(--muted)}.color-palette input:checked+span{box-shadow:0 0 0 3px var(--ink);transform:scale(1.08)}.color-palette input:focus-visible+span{outline:3px solid var(--lime);outline-offset:4px}@media(max-width:520px){.color-palette em{display:none}.color-palette>div{gap:.65rem}}
.color-palette label{flex-direction:row}
