.calendar-heading,.calendar-toolbar,.calendar-month-nav,.calendar-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.calendar-heading{margin:18px 0}.calendar-heading h2{font-size:28px;margin:4px 0 10px;letter-spacing:-.6px}.calendar-heading p{color:#617782;font-size:14px;line-height:1.6}.calendar-toolbar{padding:16px 20px;margin-bottom:12px}.calendar-month-nav h3{margin:0;min-width:180px;text-align:center;text-transform:capitalize;font-size:19px}.calendar-view-switch{display:flex;gap:4px;padding:4px;border:1px solid #d8e5e8;border-radius:8px}.calendar-view-switch button{border:0;background:transparent}.calendar-view-switch button[aria-pressed=true]{background:#dcf0eb;color:#136c60}.calendar-filters{padding:18px;display:flex;flex-wrap:wrap;gap:12px}.calendar-filters label{display:grid;gap:6px;flex:1 1 160px;font-size:12px;font-weight:700;color:#546f7b}.calendar-filters label:first-child{flex:2 1 230px}.calendar-explainer{font-size:13px;line-height:1.6;color:#617782;margin:14px 0}.calendar-counts{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}.calendar-counts>span{background:#fff;border:1px solid #dde7ea;border-radius:7px;padding:10px 14px;color:#637a84;font-size:13px}.calendar-counts b{color:#234c55;font-size:19px;margin-right:4px}.calendar-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr);gap:16px;align-items:start}.calendar-grid-wrap{padding:16px;min-width:0}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.calendar-weekdays{font-size:12px;text-align:center;font-weight:700;color:#637982;padding:6px 0 12px}.calendar-day{min-height:105px;min-width:0;display:flex;align-content:start;flex-wrap:wrap;justify-content:space-between;gap:6px;border:1px solid #e0e8eb;background:white;border-radius:7px;padding:8px;color:#334e5b;text-align:left;cursor:pointer}.calendar-day.outside{background:#f6f8f9;color:#b1bec5;cursor:default}.calendar-day.selected{border:2px solid #1b8677;padding:7px;background:#f1f9f6}.calendar-day.today .calendar-date{background:#166b61;color:white;border-radius:50%;padding:2px 5px}.calendar-date{font-size:13px;font-weight:700}.calendar-day-count{font-size:11px;color:#6a818b}.calendar-day-events{flex-basis:100%;min-width:0}.calendar-dot{display:block;border-left:3px solid;padding:3px 4px;margin:4px 0;background:#edf6f2;font-size:10px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-day-events small{font-size:10px;color:#6a818b}.calendar-dot.approved,.calendar-legend .approved{color:#14755d}.calendar-dot.pending,.calendar-dot.in_review,.calendar-legend .pending{color:#996500}.calendar-dot.pending,.calendar-dot.in_review{background:#fff7e3}.calendar-dot.rejected,.calendar-legend .rejected{color:#8a5960}.calendar-dot.rejected{background:#f5edef}.calendar-legend{display:flex;gap:12px;flex-wrap:wrap;margin:14px 0 0;font-size:11px}.calendar-day-detail{padding:20px;min-width:0}.calendar-day-detail h3{font-size:19px;margin:0 0 8px}.calendar-day-detail>p{color:#65818a;font-size:13px;margin:0 0 14px}.calendar-entry-list{max-height:540px;overflow:auto}.calendar-entry{padding:16px 0;border-bottom:1px solid #e1eaed;display:flex;flex-wrap:wrap;align-items:start;justify-content:space-between;gap:12px}.calendar-entry>div{min-width:0;flex:1 1 180px}.calendar-entry h4{font-size:15px;margin:8px 0}.calendar-entry p{font-size:13px;color:#405f6c;margin:5px 0;line-height:1.5}.calendar-entry small{display:block;font-size:12px;color:#728892;margin:5px 0}.calendar-entry button{font-size:12px;padding:8px 11px;width:auto}.calendar-status{font-size:11px;font-weight:750;padding:4px 8px;border-radius:4px;color:#805d15;background:#fff2d1}.calendar-status.approved{color:#17654f;background:#e0f2e9}.calendar-status.rejected{color:#8c4e56;background:#f9e9ec}.calendar-agenda{padding:8px 22px;max-height:680px;overflow:auto}.calendar-notes{margin:16px 0;padding:18px;font-size:13px;line-height:1.6}.calendar-notes summary{font-weight:700;cursor:pointer;color:#56717d}.calendar-notes article{padding:12px 0;border-top:1px solid #e1eaed}.calendar-notes article p{margin:5px 0}.calendar-notes .calendar-actions{justify-content:flex-start}.calendar-empty{font-size:13px;color:#6a818b;padding:18px;line-height:1.6}.calendar-help>p{font-size:14px;line-height:1.6}.calendar-grid button:focus-visible{outline:3px solid #65aa9d;outline-offset:1px}
@media(max-width:1050px){.calendar-layout{grid-template-columns:minmax(0,1fr)}.calendar-entry-list{max-height:400px}}
@media(max-width:700px){.calendar-heading h2{font-size:24px}.calendar-heading{align-items:flex-start}.calendar-actions>button,.calendar-month-nav>button,.calendar-view-switch>button{width:auto;flex:0 1 auto;padding:9px 12px}.calendar-toolbar{padding:12px}.calendar-month-nav{gap:5px;justify-content:center;width:100%}.calendar-month-nav h3{min-width:0;flex:1;font-size:17px}.calendar-view-switch{margin:auto}.calendar-filters{padding:12px}.calendar-filters label{min-width:0;flex:1 1 130px}.calendar-day{min-height:58px;padding:6px 4px}.calendar-day.selected{padding:5px 3px}.calendar-day-events{display:none}.calendar-day-count{padding:2px 3px;font-size:10px;border-radius:4px;background:#ecf1f3}.calendar-day-count:empty{display:none}.calendar-grid-wrap{padding:10px}.calendar-counts{gap:6px}.calendar-counts>span{padding:8px;font-size:11px}.calendar-counts b{font-size:16px}.calendar-day-detail{padding:16px}.calendar-entry h4{overflow-wrap:anywhere}.calendar-agenda{padding:6px 16px}.calendar-heading .calendar-actions{width:100%}}

.birthday-panel{margin:16px 0;background:linear-gradient(110deg,#f0faf7,#fffaf1);border-color:#cfe5dc}.birthday-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.birthday-heading h3{margin:4px 0}.birthday-heading p{margin:6px 0;color:#526d79}.birthday-symbol{font-size:2.4rem}.birthday-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0}.birthday-grid article{display:flex;align-items:center;gap:12px;border:1px solid #dbe8e2;border-radius:12px;padding:12px;background:#fff;min-width:0;overflow-wrap:anywhere}.birthday-grid strong{font-size:.88rem}.birthday-date{padding:8px;border-radius:8px;background:#e1f2eb;color:#13665d;font-weight:700;white-space:nowrap}.birthday-panel>small{display:block;margin-top:12px;color:#597181}@media(max-width:1050px){.birthday-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:580px){.birthday-grid{grid-template-columns:1fr}}
