.calendar-page{position:relative}.calendar-page__header{position:-webkit-sticky;position:sticky;top:var(--header-height);z-index:5;background:var(--color-bg);padding:16px 0 12px;display:grid;grid-gap:12px;gap:12px;border-bottom:1px solid var(--color-border)}.calendar-page__header-row{display:grid;grid-template-columns:auto 1fr auto;grid-gap:12px;gap:12px;align-items:center}.calendar-page__nav-group,.calendar-page__view-group{display:inline-flex;gap:8px;flex-wrap:wrap;align-items:center}.calendar-page__title{margin:0}.calendar-page__view-group{justify-content:flex-end}@media (max-width:1024px){.calendar-page__header{padding:12px 0 10px}.calendar-page__header-row{grid-template-columns:1fr;justify-items:center;text-align:center}.calendar-page__nav-group,.calendar-page__view-group{justify-content:center}.calendar-page__title{font-size:1.3rem}}@media (max-width:768px){.calendar-page__header{gap:8px;padding:10px 0 8px}.calendar-page__title{font-size:1.15rem}.calendar-page .btn{padding:5px 9px;font-size:.75rem;min-height:30px;line-height:1.05}.calendar-page__nav-group .btn,.calendar-page__view-group .btn{min-width:auto}.calendar-page .badge{font-size:.7rem;padding:2px 5px}}.calendar-toolbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;grid-gap:12px;gap:12px}.calendar-toolbar__left{display:flex;justify-content:flex-start}.calendar-toolbar__center{display:flex;align-items:center;justify-content:center;gap:12px}.calendar-toolbar__right{display:inline-flex;gap:8px;justify-content:flex-end}.calendar-nav-btn{display:inline-flex;align-items:center;gap:6px;min-width:90px}.calendar-page__title{font-size:1.5rem;font-weight:600;text-align:center;min-width:160px}.calendar-view-btn{background:#0f172a;color:#fff;border-color:#0f172a}.calendar-view-btn--active{background:#14532d!important;border-color:#14532d!important;color:#fff!important}@media (max-width:768px){.calendar-toolbar{grid-template-columns:1fr;justify-items:center}.calendar-toolbar__center,.calendar-toolbar__left,.calendar-toolbar__right{width:100%;justify-content:center}.calendar-toolbar__center{flex-wrap:nowrap;gap:8px}.calendar-page__title{min-width:0;white-space:nowrap;font-size:1rem}}.calendar-filter-panels{display:flex;flex-wrap:wrap;gap:12px;margin-top:4px}.calendar-selection-hint{gap:.35rem;margin-left:auto;display:inline-flex;align-items:center;gap:.4rem;background:rgba(250,204,21,.08);border:1px solid rgba(250,204,21,.6);border-radius:999px;padding:.35rem .75rem;color:#facc15;font-size:.85rem;font-weight:600}.calendar-selection-hint span{color:#fef9c3;font-weight:500}.calendar-filter-panel{border:1px solid rgba(15,23,42,.5);border-radius:12px;background:#0f172a;box-shadow:0 6px 18px rgba(15,23,42,.22);flex:0 0 auto;width:300px;min-width:240px;transition:background .18s ease,box-shadow .18s ease,flex .18s ease,width .18s ease}.calendar-filter-panel--open{flex:1 1 100%;width:100%;background:#132542}.calendar-filter-panel__toggle{width:100%;background:transparent;border:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;cursor:pointer;text-align:left;color:#fff}.calendar-filter-panel__meta{display:flex;flex-direction:column;gap:2px;width:100%}.calendar-filter-panel__title{font-weight:600;font-size:.9rem;color:#fff;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-filter-panel__summary{font-size:.78rem;color:rgba(226,232,240,.85);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-filter-panel__chevron{font-size:1rem;color:#fff}.calendar-filter-panel__body{padding:0 14px 14px;display:grid;grid-gap:12px;gap:12px}.calendar-filter-panel__field{display:flex;flex-direction:column;gap:6px}.calendar-filter-panel__field>span{font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:rgba(226,232,240,.9)}.calendar-filter-panel__field select{width:100%;min-height:40px}.calendar-filter-panel__chips{display:flex;flex-wrap:wrap;gap:8px}@media (max-width:1024px){.calendar-filter-panel{flex-grow:1;flex-shrink:1;flex-basis:calc(50% - 12px);min-width:200px}.calendar-filter-panel--open{flex-basis:100%}}@media (max-width:768px){.calendar-filter-panel__toggle{padding:8px 12px}.calendar-filter-panel__body{padding:0 12px 12px}.calendar-filter-panel{flex:1 1 100%}}.calendar-zoom-controls{align-self:flex-end;display:inline-flex;gap:.35rem}.calendar-zoom-controls .btn{min-width:36px;line-height:1;font-size:1rem;padding:.3rem .6rem}