.inner-page .calendar-feature{--kind-event:var(--color-brand-red);--kind-open:#2f6fc4;--kind-lesson:#2f7d5a;--kind-break:#9aa6b6;--kind-payment:var(--color-sunflower);gap:1.25rem;display:grid}.inner-page .calendar-feature>*{margin:0}.inner-page .calendar-top{align-items:end;gap:1.25rem 2.5rem;margin-bottom:.25rem;display:grid}@media (min-width:1000px){.inner-page .calendar-top{grid-template-columns:minmax(0,1fr) auto}}.inner-page .calendar-feature .calendar-heading{margin:0}.inner-page .calendar-feature .calendar-heading h2{margin:.4rem 0 .5rem}.inner-page .calendar-feature .calendar-heading p:last-child{color:var(--color-text-muted);margin:0}.inner-page .calendar-glance{background:radial-gradient(120% 90% at 100% 0%, #ffffff14 0%, transparent 55%), var(--color-ink-navy);min-width:0;color:var(--color-white);border-radius:26px;flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;padding:1.1rem 1.6rem 1.1rem 1.1rem;display:flex;box-shadow:0 24px 48px -24px #12233fb3}.inner-page .calendar-spotlight{min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:18px;flex:auto;align-items:center;gap:1rem;padding:0;transition:transform .35s cubic-bezier(.22,1,.36,1);display:flex}.inner-page .calendar-spotlight:hover{transform:translateY(-2px)}.inner-page .calendar-spotlight:focus-visible{outline:3px solid var(--color-sunflower);outline-offset:5px}.inner-page .calendar-spotlight-date{background:var(--color-white);width:64px;height:70px;color:var(--color-ink-navy);text-align:center;border-radius:16px;flex-shrink:0;place-content:center;display:grid;position:relative;overflow:hidden}.inner-page .calendar-spotlight-date small{background:var(--color-brand-red);color:var(--color-white);letter-spacing:.1em;text-transform:uppercase;padding:.15rem 0;font-size:.66rem;font-weight:800;position:absolute;top:0;left:0;right:0}.inner-page .calendar-spotlight-date b{font-family:var(--font-display), Georgia, serif;margin-top:.85rem;font-size:1.9rem;font-weight:600;line-height:1}.inner-page .calendar-spotlight-text{gap:.2rem;min-width:0;display:grid}.inner-page .calendar-spotlight-label{color:var(--color-sunflower);letter-spacing:.1em;text-transform:uppercase;flex-wrap:wrap;align-items:center;gap:.35rem .5rem;font-size:.72rem;font-weight:800;display:flex}.inner-page .calendar-countdown{color:var(--color-white);letter-spacing:.04em;text-transform:none;background:#ffffff1f;border-radius:999px;padding:.1rem .5rem}.inner-page .calendar-spotlight-text strong{text-overflow:ellipsis;white-space:nowrap;font-size:1.15rem;overflow:hidden}.inner-page .calendar-spotlight-text>span:last-child{color:#ffffffc7;font-size:.86rem}.inner-page .calendar-glance-divider{background:#ffffff29;flex:none;align-self:stretch;width:1px;margin-block:.4rem}.inner-page .calendar-feature .calendar-progress{box-shadow:none;background:0 0;border:0;border-radius:0;flex:none;grid-template-columns:56px minmax(0,1fr);align-items:center;gap:.85rem;margin:0;padding:0;display:grid;position:relative}.inner-page .calendar-progress svg{grid-area:1/1;width:56px;height:56px;rotate:-90deg}.inner-page .calendar-ring-track,.inner-page .calendar-ring-fill{fill:none;stroke-width:5px}.inner-page .calendar-ring-track{stroke:#ffffff29}.inner-page .calendar-ring-fill{stroke:var(--color-sunflower);stroke-linecap:round;stroke-dasharray:var(--share,0) 1}.inner-page .calendar-ring-value{color:var(--color-white);font-variant-numeric:tabular-nums;grid-area:1/1;justify-self:center;font-size:.95rem;font-weight:800}.inner-page .calendar-ring-value small{color:#ffffffbf;font-size:.66rem}.inner-page .calendar-feature .calendar-progress p{color:#fffc;gap:.15rem;margin:0;font-size:.84rem;font-weight:500;line-height:1.4;display:grid}.inner-page .calendar-feature .calendar-progress p strong{color:var(--color-white);font-size:.95rem}.inner-page .calendar-controls{z-index:6;background:#fffffffa;border:1px solid #12233f17;border-radius:26px;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.875rem;display:flex;position:sticky;top:5.75rem;box-shadow:0 34px 64px -30px #12233f7a,0 2px 6px #12233f0d}.inner-page .calendar-feature .calendar-views{background:#f1eadf;border-radius:19px;flex-wrap:nowrap;gap:.25rem;margin:0;padding:.25rem;display:inline-flex;position:relative}.inner-page .calendar-views-marker{width:var(--w,0);background:var(--color-ink-navy);translate:var(--x,0) 0;pointer-events:none;border-radius:15px;position:absolute;top:.25rem;bottom:.25rem;left:0;box-shadow:0 12px 22px -10px #12233fd9}.inner-page .calendar-feature .calendar-views .chip{min-height:50px;color:var(--color-ink-navy);background:0 0;border:0;border-radius:15px;align-items:center;gap:.55rem;padding:.4rem 1.1rem;font-size:.97rem;font-weight:750;transition:color .3s,background-color .3s;display:inline-flex;position:relative}.inner-page .calendar-feature .calendar-views .chip:not(.selected):hover{background:#fffc}.inner-page .calendar-feature .calendar-views:not([data-marker]) .chip.selected{background:var(--color-ink-navy);color:var(--color-white)}.inner-page .calendar-feature .calendar-views:not([data-marker]) .calendar-views-marker{display:none}.inner-page .calendar-feature .calendar-views[data-marker] .chip.selected{color:var(--color-white);background:0 0}.inner-page .calendar-feature .feature-toolbar{min-width:0;box-shadow:none;background:0 0;border:0;flex-wrap:wrap;flex:30rem;justify-content:flex-start;align-items:center;gap:.75rem;margin:0;padding:0;display:flex}.inner-page .calendar-feature .search-field{flex:13rem;align-items:center;min-width:0;display:flex;position:relative}.inner-page .calendar-feature .search-field>svg{color:var(--color-ink-navy);pointer-events:none;position:absolute;left:1.05rem}.inner-page .calendar-feature .search-field input{background:var(--color-ivory);width:100%;min-height:58px;color:var(--color-ink-navy);border:1px solid #12233f1f;border-radius:17px;padding:.6rem 1rem .6rem 2.9rem;font-size:.97rem;font-weight:500}.inner-page .calendar-feature .search-field input::placeholder{color:#5f6b7a;opacity:1}.inner-page .calendar-feature .search-field input:focus{border-color:var(--color-ink-navy);background:var(--color-white);outline:none;box-shadow:0 0 0 4px #e2f1fbf2}.inner-page .calendar-year-select{text-align:left;background:var(--color-white);cursor:pointer;border:1px solid #12233f29;border-radius:17px;flex-direction:column;justify-content:center;align-items:flex-start;gap:.05rem;min-height:58px;padding:0 .6rem 0 1rem;display:inline-flex}.inner-page .calendar-year-select>span{color:#4f5a6e;letter-spacing:.08em;text-transform:uppercase;font-size:.6875rem;font-weight:700}.inner-page .calendar-year-select select{min-height:0;color:var(--color-ink-navy);cursor:pointer;background-color:#0000;border:0;border-radius:0;padding:0 1.6rem 0 0;font-size:1rem;font-weight:800}.inner-page .calendar-year-select select:focus-visible{outline:3px solid var(--color-ink-navy);outline-offset:2px}.inner-page .calendar-toolbar-divider{background:#12233f1f;flex:none;width:1px;height:36px}.inner-page .calendar-icon-action{background:var(--color-white);width:52px;height:52px;color:var(--color-ink-navy);cursor:pointer;border:1px solid #12233f29;border-radius:15px;flex:none;place-items:center;padding:0;transition:border-color .25s,background-color .25s;display:inline-grid}.inner-page .calendar-icon-action:hover{border-color:var(--color-ink-navy);background:var(--color-ivory);color:var(--color-ink-navy)}.inner-page .calendar-add{background:var(--color-brand-red);min-height:52px;color:var(--color-white);white-space:nowrap;border-radius:15px;flex:none;justify-content:center;align-items:center;gap:.6rem;padding:0 1.4rem;font-size:.97rem;font-weight:750;text-decoration:none;transition:background-color .25s;display:inline-flex;box-shadow:0 14px 26px -12px #d72638f2}.inner-page .calendar-add:hover{background:var(--color-brand-red-text);color:var(--color-white)}.inner-page :is(.calendar-icon-action,.calendar-add):focus-visible{outline:3px solid var(--color-ink-navy);outline-offset:2px}.inner-page .calendar-filters{border-bottom:1px solid #12233f1a;flex-wrap:wrap;align-items:center;gap:0 1.6rem;margin-top:-.5rem;padding:0 .75rem;display:flex}.inner-page .calendar-filters-label{color:#4f5a6e;font-size:.8125rem}.inner-page .calendar-filters-label:after{content:":"}.inner-page .calendar-feature .secondary-filters{flex-wrap:wrap;gap:0 1.6rem;margin:0;display:flex}.inner-page .calendar-feature .secondary-filters .chip{--dot:var(--color-ink-navy);color:#4f5a6e;min-height:44px;box-shadow:none;background:0 0;border:0;border-radius:0;align-items:center;gap:.45rem;padding:0 .125rem;font-size:.875rem;font-weight:600;transition:color .25s;display:inline-flex;position:relative}.inner-page .calendar-feature .secondary-filters .chip:after{content:"";background:var(--color-brand-red);border-radius:2px;height:2px;position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}.inner-page .calendar-feature .secondary-filters .chip:hover{box-shadow:none;color:var(--color-ink-navy);background:0 0}.inner-page .calendar-feature .secondary-filters .chip.selected{color:var(--color-ink-navy);box-shadow:none;background:0 0;border-color:#0000;font-weight:750}.inner-page .calendar-feature .secondary-filters .chip.selected:after{transform:scaleX(1)}.inner-page .calendar-feature .secondary-filters .chip:focus-visible{outline:3px solid var(--color-ink-navy);outline-offset:2px;border-radius:6px}.inner-page .calendar-feature .secondary-filters .chip.kind-all{--dot:conic-gradient(var(--kind-event) 0 20%, var(--kind-open) 0 40%, var(--kind-lesson) 0 60%, var(--kind-break) 0 80%, var(--kind-payment) 0)}.inner-page .calendar-feature .secondary-filters .chip.kind-event{--dot:var(--kind-event)}.inner-page .calendar-feature .secondary-filters .chip.kind-open{--dot:var(--kind-open)}.inner-page .calendar-feature .secondary-filters .chip.kind-payment{--dot:var(--kind-payment)}.inner-page .calendar-feature .secondary-filters .chip.kind-break{--dot:var(--kind-break)}.inner-page .calendar-dot{background:var(--dot);opacity:1;border-radius:50%;flex:none;width:8px;height:8px}.inner-page .calendar-count{opacity:1;color:#6b7488;font-variant-numeric:tabular-nums;font-size:.75rem;font-weight:600}.inner-page .calendar-feature .calendar-legend{gap:.25rem 1rem;margin:0 0 0 auto;font-size:.78rem}.inner-page .calendar-feature .calendar-legend li:before{background:var(--legend);width:.5rem;height:.5rem;box-shadow:none;border-radius:50%}.inner-page .calendar-feature .calendar-legend .kind-event{--legend:var(--kind-event)}.inner-page .calendar-feature .calendar-legend .kind-open{--legend:var(--kind-open)}.inner-page .calendar-feature .calendar-legend .kind-lesson{--legend:var(--kind-lesson)}.inner-page .calendar-feature .calendar-legend .kind-break{--legend:var(--kind-break)}.inner-page .calendar-feature .calendar-legend .kind-payment{--legend:var(--kind-payment)}.inner-page .calendar-feature .event-ticket{--kind:var(--kind-lesson);text-align:left;background:0 0;border:1px solid #0000;border-radius:16px;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:.8rem;width:100%;min-height:0;margin:0;padding:.4rem .75rem .4rem .5rem;line-height:1.4;transition:background-color .25s,border-color .25s,transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s;display:grid;position:relative}.inner-page .calendar-feature .event-ticket.special-event{--kind:var(--kind-event)}.inner-page .calendar-feature .event-ticket.is-open-day{--kind:var(--kind-open)}.inner-page .calendar-feature .event-ticket.is-break{--kind:var(--kind-break)}.inner-page .calendar-feature .event-ticket:hover{background:#fdfbf7;border-color:#eadfcb;transform:translate(3px)}.inner-page .calendar-feature .event-ticket:focus-visible{outline:3px solid var(--color-ink-navy);outline-offset:2px}.inner-page .calendar-feature .event-ticket time{background:var(--color-white);width:48px;height:50px;color:var(--color-ink-navy);text-align:center;border:1px solid #ece2cf;border-radius:13px;place-content:center;display:grid;position:relative;overflow:hidden}.inner-page .calendar-feature .event-ticket time:before{content:"";background:var(--kind);height:4px;position:absolute;top:0;left:0;right:0}.inner-page .calendar-feature .event-ticket time b{font-variant-numeric:tabular-nums;font-size:1.05rem;font-weight:800;line-height:1}.inner-page .calendar-feature .event-ticket time small{color:var(--color-text-muted);letter-spacing:.08em;text-transform:uppercase;margin-top:.1rem;font-size:.62rem;font-weight:800}.inner-page .calendar-feature .event-ticket .event-ticket-title{color:var(--color-ink-navy);font-weight:650}.inner-page .calendar-feature .event-ticket.is-break .event-ticket-title{color:var(--color-text-muted);font-style:italic;font-weight:500}.inner-page .calendar-feature .event-ticket.is-past{opacity:1}.inner-page .calendar-feature .event-ticket.is-past time{background:0 0;border-style:dashed;text-decoration:none}.inner-page .calendar-feature .event-ticket.special-event{background:0 0;border-color:#0000;margin:0}.inner-page .calendar-feature .event-ticket:hover{background:#fdfbf7}.inner-page .calendar-feature .event-ticket.is-past .event-ticket-title{color:var(--color-text-muted)}.inner-page .calendar-feature .event-ticket.is-next{border-color:var(--color-brand-red);background:#fff7f6;box-shadow:0 16px 30px -22px #d72638cc}.inner-page .calendar-feature .event-ticket.is-next time:before{background:var(--color-sunflower)}.inner-page .calendar-feature .semester-board{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:1rem;display:grid}.inner-page .calendar-feature .semester-column{--tone:var(--color-brand-red);background:var(--color-white);box-shadow:var(--shadow-card);border:1px solid #ece4d6;border-radius:26px;gap:.15rem;padding:1.15rem .85rem 1rem;display:grid}.inner-page .calendar-feature .semester-2{--tone:var(--color-sunflower)}.inner-page .calendar-feature .semester-3{--tone:var(--color-ink-navy)}.inner-page .calendar-feature .semester-head{align-items:center;gap:.85rem;padding:0 .45rem;display:flex}.inner-page .calendar-feature .semester-numeral{background:color-mix(in srgb, var(--tone) 14%, white);width:50px;height:50px;color:var(--color-ink-navy);font-family:var(--font-display), Georgia, serif;border-radius:16px;flex-shrink:0;place-items:center;font-size:1.25rem;font-weight:600;display:grid}.inner-page .calendar-feature .semester-column h3{border:0;margin:0;padding:0;font-size:1.3rem}.inner-page .calendar-feature .semester-column h3:after{display:none}.inner-page .calendar-feature .semester-head p{color:var(--color-text-muted);margin:.1rem 0 0;font-size:.8rem}.inner-page .calendar-feature .semester-progress{background:#f1ebe0;border-radius:999px;height:4px;margin:.9rem .45rem .6rem;display:block;position:relative;overflow:hidden}.inner-page .calendar-feature .semester-progress>span{width:calc(var(--passed,0) * 100%);border-radius:inherit;background:var(--tone);position:absolute;inset:0 auto 0 0}.inner-page .calendar-feature .agenda-list{background:0 0;border:0;border-radius:0;gap:1.5rem;max-width:none;padding:0;display:grid}.inner-page .calendar-feature .agenda-list .event-ticket{grid-template-columns:48px minmax(0,1fr) auto}.inner-page .agenda-month{grid-template-columns:minmax(0,12rem) minmax(0,1fr);align-items:start;gap:.5rem 1.5rem;display:grid}.inner-page .agenda-month-title{color:var(--color-ink-navy);font-family:var(--font-display), Georgia, serif;text-transform:capitalize;align-items:center;gap:.6rem;margin:.6rem 0 0;font-size:1.35rem;font-weight:500;display:flex;position:sticky;top:11rem}.inner-page .agenda-month-title span{background:var(--color-white);min-width:26px;height:26px;font-family:var(--font-body), Arial, sans-serif;border-radius:999px;place-items:center;padding:0 .4rem;font-size:.75rem;font-weight:800;display:grid;box-shadow:inset 0 0 0 1px #e8dfcf}.inner-page .agenda-month-rows{background:var(--color-white);box-shadow:var(--shadow-card);border:1px solid #ece4d6;border-radius:22px;gap:.35rem;padding:.6rem;display:grid}.inner-page .calendar-feature .month-view{background:var(--color-white);box-shadow:var(--shadow-card);border:1px solid #ece4d6;border-radius:28px;padding:clamp(.9rem,2.5vw,1.5rem)}.inner-page .calendar-feature .month-controls{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.inner-page .calendar-feature .month-controls h3{text-transform:capitalize;margin:0;font-size:clamp(1.4rem,1.1rem + 1vw,2rem)}.inner-page .calendar-feature .month-controls .icon-button{background:var(--color-white);border:1.5px solid #e6dccb;border-radius:50%;width:46px;height:46px}.inner-page .calendar-feature .month-controls .icon-button:hover{border-color:var(--color-ink-navy);background:var(--color-ink-navy);color:var(--color-white)}.inner-page .calendar-feature .month-grid{gap:.35rem}.inner-page .calendar-feature .month-grid .weekday{color:var(--color-text-muted);letter-spacing:.1em;text-align:center;text-transform:uppercase;padding-bottom:.3rem;font-size:.72rem}.inner-page .calendar-feature .month-day{text-align:left;background:#fdfbf7;border:1px solid #efe8dc;border-radius:14px;align-content:start;gap:.2rem;min-height:92px;padding:.5rem;transition:border-color .2s,transform .25s,box-shadow .25s;display:grid;position:relative}.inner-page .calendar-feature .month-day.is-saturday{background:var(--color-white);border-color:#e7dcc6}.inner-page .calendar-feature .month-day.outside-month{opacity:1;border-style:dashed;border-color:var(--color-border);color:var(--color-text-muted);background:0 0}.inner-page .calendar-feature .month-day.has-event:hover{border-color:var(--color-ink-navy);transform:translateY(-2px);box-shadow:0 14px 26px -18px #12233f99}.inner-page .calendar-feature .month-day>span{min-width:28px;height:28px;color:var(--color-ink-navy);border-radius:50%;justify-self:start;place-items:center;font-size:.85rem;font-weight:750;display:grid}.inner-page .calendar-feature .month-day.is-today>span{box-shadow:inset 0 0 0 2px var(--color-ink-navy)}.inner-page .calendar-feature .month-day.is-next>span{background:var(--color-brand-red);color:var(--color-white)}.inner-page .calendar-feature .month-day small{--kind:var(--kind-lesson);border-left:3px solid var(--kind);background:color-mix(in srgb, var(--kind) 10%, white);color:var(--color-ink-navy);text-overflow:ellipsis;white-space:nowrap;border-radius:6px;padding:.15rem .4rem;font-size:.7rem;font-weight:650;line-height:1.3;display:block;overflow:hidden}.inner-page .calendar-feature .month-day small.kind-event{--kind:var(--kind-event)}.inner-page .calendar-feature .month-day small.kind-open{--kind:var(--kind-open)}.inner-page .calendar-feature .month-day small.kind-payment{--kind:#c48a12}.inner-page .calendar-feature .month-day small.kind-break{--kind:var(--kind-break);color:var(--color-text-muted);font-style:italic}.inner-page .calendar-feature .year-grid{gap:.9rem}.inner-page .calendar-feature .mini-month{background:var(--color-white);box-shadow:var(--shadow-card);border:1px solid #ece4d6;border-radius:22px;flex-direction:column;justify-content:flex-start;align-items:stretch;transition:transform .3s cubic-bezier(.22,1,.36,1),border-color .25s,box-shadow .3s;display:flex}.inner-page .calendar-feature .mini-month:hover{border-color:#dccfb9;transform:translateY(-3px);box-shadow:0 22px 40px -26px #12233f8c}.inner-page .calendar-feature .mini-month.is-current{border-color:var(--color-ink-navy);box-shadow:0 0 0 3px #12233f1a}.inner-page .calendar-feature .mini-month>strong{text-transform:capitalize}.inner-page .calendar-feature .mini-month .mini-event{font-weight:700}.inner-page .calendar-feature .mini-month .mini-event.kind-open{background:var(--kind-open);color:var(--color-white)}.inner-page .calendar-feature .mini-month .mini-event.kind-lesson{background:var(--kind-lesson);color:var(--color-white)}.inner-page .calendar-feature .mini-month .mini-event.kind-break{color:var(--color-ink-navy);background:#e6e9ef}.inner-page .calendar-feature .mini-month .mini-event.kind-payment{background:var(--color-sunflower);color:var(--color-ink-navy)}.inner-page .calendar-feature .mini-month .mini-event.is-next{box-shadow:0 0 0 3px var(--color-sunflower)}.inner-page .calendar-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;display:grid}.inner-page .calendar-action{background:var(--color-white);min-height:74px;box-shadow:var(--shadow-card);color:var(--color-ink-navy);border:1px solid #ece4d6;border-radius:22px;align-items:center;gap:.85rem;padding:.85rem 1.1rem;text-decoration:none;transition:transform .3s cubic-bezier(.22,1,.36,1),border-color .25s;display:flex}.inner-page .calendar-action:hover{border-color:#dccfb9;transform:translateY(-3px)}.inner-page .calendar-action:focus-visible{outline:3px solid var(--color-ink-navy);outline-offset:2px}.inner-page .calendar-action-icon{background:var(--color-sky);width:46px;height:46px;color:var(--color-ink-navy);border-radius:15px;flex-shrink:0;place-items:center;font-size:1.3rem;font-weight:800;display:grid}.inner-page .calendar-action.is-pdf{background:var(--color-brand-red);color:var(--color-white);border-color:#0000}.inner-page .calendar-action.is-pdf .calendar-action-icon{color:var(--color-white);background:#ffffff29}.inner-page .calendar-action.is-fees .calendar-action-icon{color:#6b4900;background:#fdf0d3}.inner-page .calendar-action strong{font-size:.95rem;line-height:1.35}.event-modal .event-modal-date{--kind:var(--color-brand-red);background:var(--color-white);width:64px;height:70px;color:var(--color-ink-navy);text-align:center;border:1px solid #ece2cf;border-radius:16px;place-content:center;margin-bottom:.9rem;display:grid;position:relative;overflow:hidden;box-shadow:0 14px 28px -18px #12233f99}.event-modal .event-modal-date.kind-open{--kind:#2f6fc4}.event-modal .event-modal-date.kind-lesson{--kind:#2f7d5a}.event-modal .event-modal-date.kind-payment{--kind:#c48a12}.event-modal .event-modal-date.kind-break{--kind:#8592a3}.event-modal .event-modal-date small{background:var(--kind);color:var(--color-white);letter-spacing:.1em;text-transform:uppercase;padding:.15rem 0;font-size:.66rem;font-weight:800;position:absolute;top:0;left:0;right:0}.event-modal .event-modal-date b{font-family:var(--font-display), Georgia, serif;margin-top:.85rem;font-size:1.9rem;font-weight:600;line-height:1}.event-modal .event-badge{color:var(--color-brand-red-text);background:#fbe6e8;border-radius:999px;margin:0 0 .6rem;padding:.2rem .65rem;font-size:.75rem;font-weight:800;display:inline-flex}.event-modal .event-badge.kind-open{color:#1f4f91;background:#e4eefa}.event-modal .event-badge.kind-lesson{color:#1f6a48;background:#e3f3ea}.event-modal .event-badge.kind-payment{color:#6b4900;background:#fdf0d3}.event-modal .event-badge.kind-break{color:#4b5563;background:#eef1f5}.event-modal .download-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;display:grid}.event-modal .download-row :is(.button,.copy-button){text-align:center;border-radius:999px;justify-content:center;min-height:46px;margin:0;padding-inline:1.1rem}.event-modal .download-row .button-primary{grid-column:1/-1}.event-modal .download-row .copy-button{background:0 0;border:1.5px dashed #d6dde8;order:1;grid-column:1/-1;font-size:.85rem;font-weight:750}.event-modal .download-row .copy-button:hover{border-color:var(--color-ink-navy);background:var(--color-sky)}@media (max-width:999px){.inner-page .calendar-feature .semester-board{grid-template-columns:minmax(0,1fr)}.inner-page .calendar-controls{position:static}}@media (max-width:759px){.inner-page .calendar-actions{grid-template-columns:minmax(0,1fr)}.inner-page .calendar-glance{border-radius:22px;flex-direction:column;align-items:stretch;padding:1rem}.inner-page .calendar-glance-divider{width:auto;height:1px;margin:0}.inner-page .calendar-feature .calendar-views{grid-template-columns:repeat(4,minmax(0,1fr));width:100%;display:grid}.inner-page .calendar-feature .calendar-views .chip{border-radius:18px;flex-direction:column;justify-content:center;gap:.15rem;min-height:54px;padding:.35rem .2rem;font-size:.78rem}.inner-page .calendar-feature .calendar-views,.inner-page .calendar-views-marker{border-radius:20px}.inner-page .calendar-views-marker{border-radius:18px}.inner-page .calendar-feature .feature-toolbar .search-field{flex-basis:100%}.inner-page .calendar-feature .feature-toolbar{justify-content:flex-start}.inner-page .calendar-feature .feature-toolbar>.calendar-year-select{flex:1 1 0;width:auto;min-width:0}.inner-page .calendar-year-select select{width:100%}.inner-page .calendar-feature .calendar-add{flex:100%}.inner-page .calendar-toolbar-divider{display:none}.inner-page .calendar-filters{border-bottom:0;padding-inline:0}.inner-page .calendar-filters-label{display:none}.inner-page .calendar-feature .secondary-filters{scrollbar-width:none;border-bottom:1px solid #12233f1a;flex-wrap:nowrap;flex:100%;gap:0 1.25rem;overflow-x:auto}.inner-page .calendar-feature .secondary-filters .chip{white-space:nowrap}.inner-page .calendar-feature .calendar-legend{margin:.5rem 0 .75rem}.inner-page .agenda-month{grid-template-columns:minmax(0,1fr)}.inner-page .agenda-month-title{position:static}.inner-page .calendar-feature .month-day{min-height:56px;padding:.3rem}.inner-page .calendar-feature .month-day small{background:var(--kind);border:0;border-radius:50%;width:8px;height:8px;padding:0;font-size:0}}@media print{.inner-page .calendar-controls,.inner-page .calendar-glance,.inner-page .calendar-actions{display:none}}@media (prefers-reduced-motion:no-preference){:root:not([data-reduced-motion=true]) .calendar-views-marker{transition:translate .5s cubic-bezier(.34,1.3,.64,1),width .5s cubic-bezier(.34,1.3,.64,1)}:root:not([data-reduced-motion=true]) .calendar-feature[data-motion-once=pending] .calendar-ring-fill{stroke-dasharray:0 1}:root:not([data-reduced-motion=true]) .calendar-feature[data-motion-once=played] .calendar-ring-fill{animation:1.4s cubic-bezier(.65,0,.35,1) .2s both calendar-ring}:root:not([data-reduced-motion=true]) .calendar-spotlight-date b{animation:.8s cubic-bezier(.22,1,.36,1) .3s both calendar-flip}:root:not([data-reduced-motion=true]) .calendar-spotlight .calendar-spotlight-label svg{animation:12s linear infinite calendar-spin}:root:not([data-reduced-motion=true]) .calendar-view :is(.event-ticket,.mini-month){animation:calendar-rise .6s calc(var(--i,0) * 28ms) cubic-bezier(.22, 1, .36, 1) both}:root:not([data-reduced-motion=true]) .calendar-view .semester-progress>span{animation:1.2s cubic-bezier(.22,1,.36,1) .2s both calendar-grow}:root:not([data-reduced-motion=true]) .calendar-feature .event-ticket.is-next:after{content:"";border-radius:inherit;pointer-events:none;border:2px solid #e8c868;animation:2.6s ease-out infinite calendar-ring-pulse;position:absolute;inset:-1px}:root:not([data-reduced-motion=true]) .month-grid[data-direction]{animation:.5s cubic-bezier(.22,1,.36,1) both calendar-month-in}:root:not([data-reduced-motion=true]) .month-grid[data-direction=back]{animation-name:calendar-month-back}:root:not([data-reduced-motion=true]) .event-modal .event-modal-date{animation:.7s cubic-bezier(.22,1,.36,1) both calendar-flip}}@keyframes calendar-ring{0%{stroke-dasharray:0 1}}@keyframes calendar-flip{0%{transform:perspective(300px)rotateX(-70deg)}to{transform:perspective(300px)rotateX(0)}}@keyframes calendar-spin{to{transform:rotate(360deg)}}@keyframes calendar-rise{0%{translate:0 12px}to{translate:0}}@keyframes calendar-grow{0%{width:0}}@keyframes calendar-ring-pulse{0%{opacity:.7;transform:scale(1)}70%,to{opacity:0;transform:scale(1.04,1.18)}}@keyframes calendar-month-in{0%{translate:36px}to{translate:0}}@keyframes calendar-month-back{0%{translate:-36px}to{translate:0}}.inner-page .calendar-feature .event-ticket time{border:1px solid #ece4d6;border-radius:12px;box-shadow:inset 0 1px #fff,0 4px 10px -8px #12233f80}.inner-page .calendar-feature .event-ticket time:before{content:none}.inner-page .calendar-feature .event-ticket time small{color:#5f6b7a}.inner-page .calendar-feature .event-ticket.is-past time{background:var(--color-white);box-shadow:none;border-style:solid}.inner-page .calendar-feature .event-ticket-line{--dot:var(--kind-lesson);flex-wrap:nowrap}.inner-page .calendar-feature .event-ticket-line.kind-event{--dot:var(--kind-event)}.inner-page .calendar-feature .event-ticket-line.kind-open{--dot:var(--kind-open)}.inner-page .calendar-feature .event-ticket-line.kind-break{--dot:var(--kind-break)}.inner-page .calendar-feature .event-ticket-line.kind-payment{--dot:var(--kind-payment)}.inner-page .calendar-feature .event-ticket-line:before{content:"";background:var(--dot);width:7px;height:7px;box-shadow:0 0 0 3px color-mix(in srgb, var(--dot) 16%, transparent);border-radius:50%;flex:none;align-self:center}.inner-page .calendar-feature .event-ticket-line .event-ticket-title{min-width:0}.inner-page .calendar-feature .agenda-list .event-ticket-line{flex-wrap:wrap}.inner-page .calendar-feature .event-ticket.is-next{background:#fdfaf3;border-color:#efe3c6;box-shadow:0 16px 30px -24px #12233f8c}.inner-page .calendar-feature .event-ticket.is-next time{border-color:var(--color-ink-navy);background:var(--color-ink-navy);color:var(--color-white)}.inner-page .calendar-feature .event-ticket.is-next time small{color:var(--color-sunflower)}.inner-page .calendar-spotlight-date{border:1px solid #fff9;gap:.1rem;box-shadow:0 10px 20px -12px #00000080}.inner-page .calendar-spotlight-date small{color:#5f6b7a;background:0 0;padding:0;font-size:.62rem;position:static}.inner-page .calendar-spotlight-date b{font-family:var(--font-body);margin-top:0;font-size:1.6rem;font-weight:800}.event-modal .event-modal-date{border:1px solid #ece4d6;border-radius:14px;gap:.1rem;box-shadow:inset 0 1px #fff,0 10px 20px -14px #12233f8c}.event-modal .event-modal-date small{color:#5f6b7a;background:0 0;padding:0;font-size:.62rem;position:static}.event-modal .event-modal-date b{font-family:var(--font-body);margin-top:0;font-size:1.6rem;font-weight:800}.event-modal .event-modal-date:after{content:"";background:var(--kind);border-radius:50%;width:7px;height:7px;position:absolute;top:7px;right:7px}@media (max-width:759px){.inner-page .calendar-feature>.document-accordion,.inner-page .calendar-feature+.official-calendar>.calendar-original{background:var(--color-white);box-shadow:var(--shadow-card);border:1px solid #ece4d6;border-radius:22px;margin:0;padding:0}.inner-page .calendar-feature>.document-accordion{margin-top:4px}.inner-page .calendar-feature+.official-calendar{margin-block:.75rem 0}.inner-page .calendar-feature>.document-accordion>summary,.inner-page .calendar-feature+.official-calendar>.calendar-original>summary{min-height:64px;color:var(--color-ink-navy);justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem .9rem .85rem 1.1rem;font-size:.9rem;font-weight:700;line-height:1.35;list-style:none;display:flex}.inner-page :is(.calendar-feature>.document-accordion,.calendar-feature+.official-calendar>.calendar-original)>summary::-webkit-details-marker{display:none}.inner-page :is(.calendar-feature>.document-accordion,.calendar-feature+.official-calendar>.calendar-original)>summary:after{content:"+";background:var(--color-sky);border-radius:50%;flex-shrink:0;place-items:center;width:32px;height:32px;font-size:1.15rem;font-weight:600;line-height:1;display:grid}.inner-page :is(.calendar-feature>.document-accordion,.calendar-feature+.official-calendar>.calendar-original)[open]>summary:after{content:"−"}}
