.drecha-events-app{--drecha-blue:#0757d8;--drecha-ink:#172033;--drecha-line:#dbe4f0;--drecha-wash:#f5f8fc;display:grid;gap:1rem;width:100%;color:var(--drecha-ink)}
.drecha-events-app :where(h1,h2,h3,h4,h5,h6,p,li,dt,dd,legend,label,time,span,strong,small,em){color:inherit}.drecha-events-app a{color:var(--drecha-blue)}
.drecha-events-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:0 0 1.25rem}.drecha-events-views{display:flex;flex-wrap:wrap;gap:.5rem;margin:0}.drecha-events-views a{border:1px solid var(--drecha-line);border-radius:4px;padding:.55rem .8rem;color:var(--drecha-ink);font-size:.8rem;font-weight:700;text-decoration:none}.drecha-events-views a:is(:hover,.is-active){border-color:var(--drecha-blue);background:#eef5ff;color:var(--drecha-blue)}
.drecha-events-filter-trigger{display:flex;flex:0 0 auto;margin-left:auto}.drecha-events-filter-open{display:inline-flex;align-items:center;gap:.55rem;min-height:2.7rem;border:1px solid var(--drecha-blue);border-radius:4px;padding:.55rem 1rem;background:var(--drecha-blue);color:#fff;font-size:.875rem;font-weight:700;cursor:pointer}.drecha-events-filter-count{display:inline-grid;place-items:center;min-width:1.35rem;height:1.35rem;border-radius:4px;padding:0 .3rem;background:#fff;color:var(--drecha-blue);font-size:.7rem}
.drecha-events-filter-dialog{width:min(36rem,calc(100vw - 2rem));max-width:none;max-height:calc(100vh - 2rem);margin:auto;border:0;border-radius:4px;padding:0;background:transparent;color:var(--drecha-ink);box-shadow:0 28px 80px rgba(15,32,58,.3)}.drecha-events-filter-dialog::backdrop{background:rgba(11,24,45,.58);backdrop-filter:blur(3px)}.drecha-events-filter-panel{overflow:hidden;border:1px solid var(--drecha-line);border-radius:4px;background:#fff}.drecha-events-filter-panel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--drecha-line);padding:1.25rem 1.35rem;background:var(--drecha-wash)}.drecha-events-filter-panel>header p{margin:0 0 .2rem;color:#52647a;font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.drecha-events-filter-panel>header h2{margin:0;font-size:1.35rem}.drecha-events-filter-close{border:0;padding:.35rem;background:transparent;color:#40536b;font-size:.8rem;font-weight:700;text-decoration:underline;cursor:pointer}
.drecha-events-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;padding:1.35rem}.drecha-events-filters *{box-sizing:border-box}.drecha-events-filters label{display:grid;gap:.4rem;font-size:.78rem;font-weight:700}.drecha-events-filters .drecha-events-search{grid-column:1/-1}.drecha-events-filters :is(input,select,button){width:100%;min-height:2.8rem;border:1px solid #b9c7d8;border-radius:4px;padding:.58rem .75rem;background:#fff;color:var(--drecha-ink);font-size:.875rem}.drecha-events-filters footer{display:flex;grid-column:1/-1;align-items:center;justify-content:space-between;gap:1rem;border-top:1px solid var(--drecha-line);padding-top:1rem}.drecha-events-filters footer button{width:auto;border-color:var(--drecha-blue);background:var(--drecha-blue);color:#fff;font-weight:700;cursor:pointer}.drecha-events-clear{color:#40536b;font-size:.8rem;font-weight:700}
.drecha-events-list,.drecha-events-grid{display:grid;gap:1rem}.drecha-events-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.drecha-event-card,.drecha-event-row{border:1px solid var(--drecha-line);border-radius:4px;padding:1rem;background:#fff}.drecha-event-card img{width:100%;height:auto}.drecha-event-card h3,.drecha-event-row h3{margin:.55rem 0}.drecha-event-meta{display:flex;flex-wrap:wrap;gap:.5rem;color:#50575e}.drecha-events-empty{border-left:4px solid var(--drecha-blue);padding:1rem;background:#eef5ff}
.drecha-calendar-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.drecha-calendar-heading h2{margin:0}.drecha-calendar-heading a{font-size:1.5rem;text-decoration:none}.drecha-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));overflow-x:auto;border-top:1px solid var(--drecha-line);border-left:1px solid var(--drecha-line)}.drecha-calendar-weekday,.drecha-calendar-cell{min-width:7rem;border-right:1px solid var(--drecha-line);border-bottom:1px solid var(--drecha-line);padding:.6rem}.drecha-calendar-weekday{background:var(--drecha-wash);font-size:.72rem;font-weight:800;text-align:center;text-transform:uppercase}.drecha-calendar-cell{min-height:8rem}.drecha-calendar-cell.is-empty{background:#fafbfc}.drecha-calendar-number{font-size:.8rem;font-weight:800}.drecha-calendar-cell a{display:grid;gap:.1rem;margin-top:.45rem;border-left:3px solid var(--drecha-blue);padding:.35rem;background:#eef5ff;color:var(--drecha-ink);font-size:.72rem;font-weight:700;text-decoration:none}.drecha-calendar-cell a time{font-size:.65rem;font-weight:400}.drecha-week-grid{display:grid;gap:.75rem}.drecha-week-grid>section{border-top:3px solid var(--drecha-blue);padding-top:.65rem}.drecha-week-grid>section>h3{margin:0 0 .65rem;font-size:.9rem}
@media(min-width:700px){.drecha-event-row{display:grid;grid-template-columns:minmax(10rem,.7fr) 2fr 1fr;gap:1rem;align-items:start}.drecha-week-grid{grid-template-columns:repeat(7,minmax(0,1fr));overflow-x:auto}.drecha-week-grid>section{min-width:8rem}}
@media(max-width:699px){.drecha-events-toolbar{align-items:stretch;flex-direction:column}.drecha-events-filter-trigger{margin-left:0}.drecha-events-filter-open{justify-content:center;width:100%}.drecha-events-filters{grid-template-columns:1fr}.drecha-events-filters .drecha-events-search,.drecha-events-filters footer{grid-column:1}.drecha-month-grid{grid-template-columns:repeat(7,7rem)}}
.drecha-teacher-profiles{margin:1.5rem 0}.drecha-teacher-profiles>div{display:flex;flex-wrap:wrap;gap:1rem}.drecha-teacher-profiles a{display:flex;align-items:center;gap:.75rem;text-decoration:none}.drecha-teacher-profiles small{display:block;color:#526078}.drecha-teacher-avatar{display:inline-flex;align-items:center;justify-content:center;width:2.4rem;height:2.4rem;border:2px solid #fff;border-radius:50%;object-fit:cover;box-shadow:0 0 0 1px #d7e0ec}.drecha-teacher-avatar.is-fallback{background:#dce9ff;color:#1454a3;font-weight:800}.drecha-related-events{margin-top:2rem}
.drecha-event-meta time{white-space:nowrap;font-size:.875rem;font-weight:750;line-height:1.35}
.drecha-events-quick-search button img,.drecha-events-filter-open img{display:none;width:1.2rem;height:1.2rem}
@media(max-width:699px){.drecha-events-quick-search button::before,.drecha-events-quick-search button::after,.drecha-events-filter-open::before,.drecha-events-filter-open::after{display:none;content:none}.drecha-events-quick-search button img,.drecha-events-filter-open img{display:block;filter:brightness(0) invert(1)}.drecha-events-quick-search button>span,.drecha-events-filter-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}
.drecha-events-app{position:relative;transition:opacity .18s ease}.drecha-events-app.is-loading{opacity:.48;pointer-events:none}.drecha-events-app.is-loading::after{position:absolute;z-index:5;top:.9rem;right:.9rem;width:1rem;height:1rem;border:2px solid var(--drecha-line);border-top-color:var(--drecha-blue);border-radius:50%;content:"";animation:drecha-events-spin .7s linear infinite}@keyframes drecha-events-spin{to{transform:rotate(360deg)}}
.drecha-events-toolbar{display:grid;grid-template-columns:minmax(15rem,1fr) auto auto}.drecha-events-quick-search{display:flex;min-width:0}.drecha-events-quick-search label{flex:1;min-width:0}.drecha-events-quick-search input{box-sizing:border-box;width:100%;min-height:2.7rem;border:1px solid var(--drecha-line);border-radius:4px 0 0 4px;padding:.55rem .8rem;background:#fff;color:var(--drecha-ink);font:inherit}.drecha-events-quick-search button{min-height:2.7rem;border:1px solid var(--drecha-blue);border-radius:0 4px 4px 0;padding:.55rem 1rem;background:var(--drecha-blue);color:#fff;font-weight:700;cursor:pointer}
@media(max-width:900px){.drecha-events-toolbar{grid-template-columns:1fr auto}.drecha-events-quick-search{grid-column:1/-1}}
@media(max-width:699px){.drecha-events-toolbar{display:grid;grid-template-columns:1fr}.drecha-events-quick-search,.drecha-events-views,.drecha-events-filter-trigger{grid-column:1}.drecha-events-views{overflow-x:auto;flex-wrap:nowrap}.drecha-events-views a{white-space:nowrap}}
.drecha-calendar-heading{display:grid;grid-template-columns:2.75rem minmax(0,auto) 2.75rem;align-items:center;justify-content:center;gap:.75rem;margin:0 auto 1rem}.drecha-calendar-heading h2{min-width:0;margin:0;color:var(--drecha-ink);font-size:clamp(1.15rem,2.2vw,1.65rem);font-weight:750;line-height:1.2;text-align:center}.drecha-calendar-heading a{display:grid;place-items:center;width:2.75rem;height:2.75rem;border:1px solid var(--drecha-line);border-radius:4px;background:#fff;color:var(--drecha-blue);font-size:2rem;font-weight:400;line-height:1;text-decoration:none}.drecha-calendar-heading a:hover{border-color:var(--drecha-blue);background:#eef5ff}.drecha-calendar-heading a span{transform:translateY(-.08em)}
.drecha-month-grid,.drecha-week-grid{min-width:0}.drecha-calendar-cell a,.drecha-week-grid .drecha-event-card,.drecha-week-grid .drecha-event-card h3,.drecha-week-grid .drecha-event-card a{min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:break-word}.drecha-week-grid>section{min-width:0;overflow:hidden}.drecha-week-grid .drecha-event-card{box-sizing:border-box;padding:.7rem}.drecha-week-grid .drecha-event-card time{white-space:normal;font-size:.72rem}.drecha-week-grid .drecha-event-card h3{font-size:.9rem;line-height:1.3}
.drecha-events-quick-search,.drecha-events-views,.drecha-events-filter-trigger{align-self:stretch}.drecha-events-quick-search :is(input,button),.drecha-events-views a,.drecha-events-filter-open{box-sizing:border-box;height:2.75rem;min-height:2.75rem;margin:0;line-height:1.2}.drecha-events-quick-search button,.drecha-events-views a,.drecha-events-filter-open{display:inline-flex;align-items:center;justify-content:center}.drecha-events-views{align-items:stretch}
.drecha-events-list{display:block;overflow:hidden;border:1px solid var(--drecha-line);border-radius:4px;background:#fff}.drecha-events-list-head,.drecha-events-list .drecha-event-row{display:grid;grid-template-columns:minmax(9rem,.9fr) minmax(14rem,2fr) minmax(9rem,1fr);align-items:start;gap:1rem}.drecha-events-list-head{border-bottom:1px solid var(--drecha-line);padding:.7rem 1rem;background:var(--drecha-wash);color:#52647a;font-size:.68rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.drecha-events-list .drecha-event-row{border:0;border-radius:0;padding:1rem}.drecha-events-list .drecha-event-row+.drecha-event-row{border-top:1px solid var(--drecha-line)}.drecha-event-row :is(h3,p){margin:0}.drecha-event-row h3{font-size:.95rem}.drecha-event-row a{color:var(--drecha-ink);font-weight:700;text-decoration:none}.drecha-event-row a:hover{color:var(--drecha-blue);text-decoration:underline;text-underline-offset:3px}.drecha-event-row-title>a{display:block;font-size:.95rem}.drecha-event-row p{margin-top:.25rem;color:#66778b;font-size:.8rem;line-height:1.45}.drecha-event-row-label{display:none}
@media(max-width:699px){.drecha-events-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:.65rem}.drecha-events-quick-search{grid-column:1;min-width:0}.drecha-events-filter-trigger{grid-column:2;grid-row:1;margin:0}.drecha-events-views{grid-column:1/-1;grid-row:2;overflow-x:auto;flex-wrap:nowrap}.drecha-events-quick-search button,.drecha-events-filter-open{position:relative;justify-content:center;width:2.9rem;min-width:2.9rem;padding:0;font-size:0}.drecha-events-quick-search button::before{width:.82rem;height:.82rem;border:2px solid currentColor;border-radius:50%;content:""}.drecha-events-quick-search button::after{position:absolute;width:.45rem;height:2px;background:currentColor;content:"";transform:translate(.48rem,.48rem) rotate(45deg)}.drecha-events-filter-open::before,.drecha-events-filter-open::after{width:1.15rem;height:.62rem;border-top:2px solid currentColor;border-bottom:2px solid currentColor;content:""}.drecha-events-filter-open::after{position:absolute;width:.65rem;height:0;border-bottom:0;transform:translateY(.62rem)}.drecha-events-filter-count{position:absolute;top:-.35rem;right:-.35rem;font-size:.65rem}.drecha-events-list{overflow:visible;border:0;background:transparent}.drecha-events-list-head{display:none}.drecha-events-list .drecha-event-row{display:grid;grid-template-columns:1fr;gap:.7rem;border:1px solid var(--drecha-line);border-radius:4px;background:#fff}.drecha-events-list .drecha-event-row+.drecha-event-row{margin-top:.75rem;border-top:1px solid var(--drecha-line)}.drecha-event-row-label{display:block;margin-bottom:.18rem;color:#687a8f;font-size:.62rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.drecha-calendar-heading{grid-template-columns:2.5rem minmax(0,1fr) 2.5rem;width:100%;gap:.5rem}.drecha-calendar-heading a{width:2.5rem;height:2.5rem}.drecha-week-grid{grid-template-columns:repeat(7,minmax(10rem,1fr));overflow-x:auto;scroll-snap-type:x proximity}.drecha-week-grid>section{scroll-snap-align:start}.drecha-month-grid{overflow-x:auto}}
.drecha-events-select-control{position:relative;display:block}.drecha-events-select-control select{appearance:none;-webkit-appearance:none;padding-right:2.75rem!important;background-image:none!important}.drecha-events-select-control>img{position:absolute;top:50%;right:.9rem;width:1rem;height:1rem;pointer-events:none;transform:translateY(-50%)}.drecha-events-checkbox-filter{min-width:0;margin:0;border:0;padding:0}.drecha-events-checkbox-filter legend{margin-bottom:.4rem;color:var(--drecha-ink);font-size:.78rem;font-weight:700}.drecha-events-checkbox-filter>div{display:flex;flex-wrap:wrap;gap:.5rem}.drecha-events-checkbox-filter label{display:inline-flex;align-items:center;gap:.45rem;border:1px solid #b9c7d8;border-radius:4px;padding:.65rem .75rem;background:#fff;font-size:.8rem;cursor:pointer}.drecha-events-checkbox-filter label:has(input:checked){border-color:var(--drecha-blue);background:#eef5ff;color:var(--drecha-blue)}.drecha-events-checkbox-filter input{width:1rem!important;min-height:1rem!important;margin:0!important;padding:0!important}
