.pp-calendar-page{padding:28px 0 76px;background:#f7f9fc;color:#10203e;min-height:70vh}.pp-calendar-page .pp-container{width:min(calc(100% - 40px),var(--pp-container));max-width:var(--pp-container);margin-inline:auto}.pp-calendar__breadcrumb{display:flex;gap:10px;align-items:center;margin:0 0 28px;color:#687992;font-size:13px}.pp-calendar__breadcrumb a{color:#16834a;text-decoration:none}.pp-calendar__heading{margin-bottom:26px}.pp-calendar__heading h1{margin:0;color:#10203e;font-size:clamp(30px,3vw,42px);letter-spacing:-.035em}.pp-calendar__heading p{margin:8px 0 0;color:#61748d;font-size:17px}.pp-calendar__layout{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(330px,1fr);gap:22px;align-items:stretch}.pp-calendar__main,.pp-calendar__events{min-width:0;overflow:hidden;border:1px solid #dce6ed;border-radius:17px;background:#fff;box-shadow:0 8px 24px rgba(15,35,60,.05)}.pp-calendar__filters{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:10px;align-items:end;padding:18px;border-bottom:1px solid #e4ebf1}.pp-calendar__filter-field{display:grid;gap:6px;min-width:0}.pp-calendar__filter-field label{font-size:11px;font-weight:800;color:#42556d}.pp-calendar__select{width:100%;min-height:42px;padding:0 32px 0 12px;border:1px solid #cbd9e4;border-radius:9px;background:#fff;color:#17324b;font:inherit;font-size:13px}.pp-calendar__filter-submit{min-height:42px;padding:0 14px;border:1px solid #0e9f50;border-radius:9px;background:#0e9f50;color:#fff;font-size:12px;font-weight:800;cursor:pointer;white-space:nowrap}.pp-calendar__clear{grid-column:1/-1;justify-self:end;color:#16834a;font-size:12px;font-weight:700;text-decoration:none}.pp-calendar__toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:17px 18px 12px}.pp-calendar__month-nav{display:flex;align-items:center;gap:12px}.pp-calendar__month-nav h2{min-width:170px;margin:0;text-align:center;color:#172a47;font-size:20px}.pp-calendar__month-arrow,.pp-calendar__today{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;border:1px solid #cbd9e4;border-radius:9px;background:#fff;color:#17324b;text-decoration:none;font-size:23px;font-weight:600}.pp-calendar__today{min-width:62px;padding:0 12px;background:#eaf7ef;border-color:#c9e8d3;color:#087944;font-size:13px;font-weight:800}.pp-calendar__month-arrow:hover,.pp-calendar__today:hover{border-color:#16834a;color:#087944}.pp-calendar__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));margin:0 18px;border-top:1px solid #dce6ed;border-left:1px solid #dce6ed;border-radius:10px;overflow:hidden}.pp-calendar__weekday{display:grid;place-items:center;min-height:42px;border-right:1px solid #dce6ed;border-bottom:1px solid #dce6ed;background:#eef7f2;color:#213953;font-size:12px;font-weight:800}.pp-calendar__day{position:relative;display:flex;align-items:flex-start;justify-content:center;min-height:76px;padding:12px 6px 17px;border-right:1px solid #dce6ed;border-bottom:1px solid #dce6ed;background:#fff;color:#152844;text-decoration:none;transition:background .15s,border-color .15s}.pp-calendar__day:hover{background:#f5fbf7}.pp-calendar__day.is-outside{background:#fafbfd;color:#9aa7b5}.pp-calendar__day.is-selected{z-index:1;background:#e7f8ec;box-shadow:inset 0 0 0 1px #7ed29a;color:#087944;font-weight:800}.pp-calendar__day-number{font-size:17px;line-height:1.2}.pp-calendar__event-markers{position:absolute;bottom:8px;left:50%;display:flex;gap:3px;transform:translateX(-50%)}.pp-calendar__event-markers i,.pp-calendar__legend-dot{width:8px;height:8px;border-radius:50%;background:#0e9f50}.pp-calendar__event-count{position:absolute;top:7px;right:7px;display:grid;place-items:center;min-width:17px;height:17px;padding:0 3px;border-radius:999px;background:#e7f3ff;color:#2462a5;font-size:9px;font-weight:800}.pp-calendar__legend{display:flex;gap:22px;align-items:center;flex-wrap:wrap;margin:0 22px;padding:17px 0;color:#53667e;font-size:12px}.pp-calendar__legend span{display:inline-flex;align-items:center;gap:8px}.pp-calendar__legend-selected{width:13px;height:13px;border:1px solid #8dd7a4;border-radius:4px;background:#e7f8ec}.pp-calendar__events{align-self:start;min-height:100%}.pp-calendar__events-heading{padding:19px 21px 15px;background:linear-gradient(110deg,#effbf3,#e5f7eb);border-bottom:1px solid #dce6ed}.pp-calendar__events-heading>span{color:#16834a;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.pp-calendar__events-heading h2{margin:5px 0;color:#17324b;font-size:20px;line-height:1.25}.pp-calendar__events-heading p{margin:0;color:#61748d;font-size:12px}.pp-calendar__event-list{display:grid;gap:13px;padding:14px}.pp-calendar__event-card{overflow:hidden;border:1px solid #dce6ed;border-radius:12px;background:#fff}.pp-calendar__event-cover{display:block;width:100%;height:137px;object-fit:cover;background:#eaf3ed}.pp-calendar__event-cover--placeholder{display:grid;place-items:center;color:#087944;background:linear-gradient(130deg,#d8f4e1,#a6dcb8);font-size:20px;font-weight:900}.pp-calendar__event-content{padding:13px}.pp-calendar__event-content h3{margin:0 0 8px;color:#172a47;font-size:19px;line-height:1.25}.pp-calendar__modality{display:inline-flex;align-items:center;min-height:27px;padding:0 10px;border-radius:999px;background:#e9f8ee;color:#087944;font-size:11px;font-weight:800}.pp-calendar__event-meta{display:flex;flex-wrap:wrap;gap:8px 13px;margin:11px 0;color:#42556d;font-size:12px}.pp-calendar__event-meta span{display:inline-flex;align-items:center;gap:4px}.pp-calendar__registration-state{display:block;margin-top:8px;color:#62748b;font-size:11px}.pp-calendar__details{display:inline-flex;margin-top:10px;color:#078348;font-size:13px;font-weight:800;text-decoration:none}.pp-calendar__details:hover{text-decoration:underline}.pp-calendar__empty-day{display:grid;justify-items:center;gap:8px;padding:40px 24px;text-align:center}.pp-calendar__empty-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#eef8f1;color:#16834a;font-size:24px}.pp-calendar__empty-day strong{color:#233852;font-size:15px}.pp-calendar__empty-day p{max-width:270px;margin:0;color:#6b7c90;font-size:12px;line-height:1.5}.pp-calendar__unavailable{margin:0 0 18px;padding:15px 18px;border:1px solid #f2d38a;border-radius:12px;background:#fffbeb;color:#854d0e}.pp-calendar__unavailable p{margin:4px 0 0;font-size:13px}.pp-calendar__filter-submit:focus-visible,.pp-calendar__select:focus-visible,.pp-calendar__month-arrow:focus-visible,.pp-calendar__today:focus-visible,.pp-calendar__day:focus-visible,.pp-calendar__details:focus-visible{outline:3px solid rgb(22 163 74 / 25%);outline-offset:2px}
@media(max-width:1060px){.pp-calendar__layout{grid-template-columns:minmax(0,1.4fr) minmax(290px,1fr)}.pp-calendar__filters{grid-template-columns:1fr 1fr}.pp-calendar__filter-actions{display:flex;align-items:center;gap:12px}.pp-calendar__clear{grid-column:auto}}
@media(max-width:800px){.pp-calendar__layout{grid-template-columns:1fr}.pp-calendar__events{min-height:0}.pp-calendar__event-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.pp-calendar-page{padding-top:20px}.pp-calendar-page .pp-container{width:min(calc(100% - 24px),var(--pp-container))}.pp-calendar__heading h1{font-size:30px}.pp-calendar__heading p{font-size:14px}.pp-calendar__filters{grid-template-columns:1fr;padding:14px}.pp-calendar__filter-actions{justify-content:space-between}.pp-calendar__toolbar{padding:13px 12px 10px}.pp-calendar__month-nav{gap:6px}.pp-calendar__month-nav h2{min-width:125px;font-size:16px}.pp-calendar__month-arrow{min-width:34px;height:36px}.pp-calendar__today{min-width:52px;height:36px;padding:0 8px}.pp-calendar__grid{margin:0 9px}.pp-calendar__weekday{min-height:35px;font-size:10px}.pp-calendar__day{min-height:53px;padding:9px 3px 14px}.pp-calendar__day-number{font-size:14px}.pp-calendar__event-count{top:3px;right:3px;min-width:14px;height:14px;font-size:8px}.pp-calendar__event-markers{bottom:6px}.pp-calendar__event-markers i{width:6px;height:6px}.pp-calendar__legend{gap:12px;margin:0 12px;padding:13px 0;font-size:11px}.pp-calendar__event-list{grid-template-columns:1fr}.pp-calendar__events-heading{padding:16px}.pp-calendar__events-heading h2{font-size:18px}}
