[hidden],dialog:not([open]){display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.calendar-home{width:100%;max-width:1600px;margin:0 auto}
.calendar-card{min-height:calc(100vh - 110px);padding:1rem}
.calendar-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.calendar-heading h1{margin:.15rem 0;font-size:1.65rem}
.calendar-heading .sub{margin:.2rem 0;color:#bcc5cf}
.portal-menu{position:relative}
.portal-menu>summary,.calendar-more>summary{list-style:none;cursor:pointer;background:#343a43;color:#fff;border-radius:8px;padding:.7rem 1rem;font-weight:700}
.portal-menu>summary::-webkit-details-marker,.calendar-more>summary::-webkit-details-marker{display:none}
.portal-menu nav,.calendar-more>div{position:absolute;right:0;z-index:10;display:flex;flex-direction:column;gap:.35rem;min-width:210px;padding:.7rem;background:#20262d;border:1px solid #505a65;border-radius:10px;box-shadow:0 18px 40px #0009}
.portal-menu nav a{padding:.65rem;border-radius:6px;color:#fff;text-decoration:none}
.portal-menu nav a:hover{background:#343e48}
.management-grid{margin-top:1.2rem}
.calendar-filters{display:flex;align-items:end;gap:.6rem;flex-wrap:wrap;margin:.75rem 0}
.calendar-filters label{min-width:180px;flex:1}
.trainer-filter-hidden{display:none!important}
.client-strip{display:flex;gap:.45rem;overflow-x:auto;padding:.2rem 0 .65rem;scrollbar-width:thin}
.client-chip{display:inline-flex;align-items:center;gap:.45rem;flex:0 0 auto;min-height:38px;padding:.45rem .75rem;border:1px solid #59636e;border-radius:999px;background:#2b333c!important;color:#fff}
.client-chip:hover,.client-chip.selected{background:#fff!important;color:#161b20;border-color:#fff}
.client-chip.selected{box-shadow:0 0 0 2px #c82335}
.client-dot{width:11px;height:11px;border-radius:50%;background:var(--client-color,#9c2532)}
.calendar-status{display:flex;align-items:center;gap:.7rem;justify-content:space-between;margin:.2rem 0 .7rem;padding:.7rem .85rem;border:1px solid #d39c39;border-radius:9px;background:#3d321f;color:#fff}
.calendar-status span{font-weight:700}
.calendar-status button{flex:0 0 auto;background:#bd2332}
.primary-action{background:#bd2332!important}
.calendar-more{position:relative}
.calendar-more>div button{width:100%;white-space:nowrap}
.success{background:#174c38;border:1px solid #4abb8b;padding:1rem;border-radius:8px;font-weight:700}
.calendar-tools{display:flex;align-items:center;flex-wrap:wrap;gap:.55rem;margin:1rem 0}
.calendar-tools h3{min-width:170px;margin:0;font-size:1.15rem;text-transform:capitalize;flex:1}
.calendar-tools button:not(#calendar-new){background:#343a43}
.calendar-tools button{min-height:42px}
.calendar-tools #calendar-new-series{background:#bd2332}
.bulk-bar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;padding:.7rem;background:#38434e;border:1px solid #a6b3c0;border-radius:10px}
.bulk-bar strong{margin-right:auto}
.calendar-tools .view-picker{display:flex;align-items:center;gap:.5rem;margin-left:auto}
.view-picker select{width:auto;min-width:105px}
.calendar-hint{color:#b8c0c9;font-size:.9rem;margin:.35rem 0 1rem}
.calendar{border-top:1px solid #414750;border-left:1px solid #414750;margin-bottom:1.4rem}
.list-view{border:0;display:block;max-height:68vh;overflow:auto;border-radius:10px;background:#20262d;padding:.5rem}
.agenda-count{margin:.2rem .5rem 1rem;color:#e4eaf1;font-weight:700}
.agenda-month{position:sticky;top:0;z-index:1;margin:1.2rem 0 .2rem;padding:.6rem .5rem;background:#303a45;color:#fff;text-transform:capitalize}
.agenda-row{display:grid;grid-template-columns:160px minmax(0,1fr) auto;align-items:center;gap:.5rem;padding:.45rem;border-bottom:1px solid #414750;border-left:4px solid var(--client-color)}
.agenda-when{font-weight:700;white-space:nowrap;color:#e5e9ef}
.agenda-event{min-width:0;text-align:left;white-space:normal;background:transparent;color:#fff;font-weight:650}
.agenda-event.renewal{background:#a47722}
.agenda-jump{background:#404b56;color:#fff}
.agenda-empty{padding:1.5rem;color:#d1d8e0}
.agenda-open{display:inline-block;margin:.25rem .5rem;background:#3f4b58;color:#fff;font-size:.84rem}
.month-view{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.weekday{text-align:center;padding:.5rem}
.day{min-width:0;min-height:115px;border-right:1px solid #414750;border-bottom:1px solid #414750;padding:.3rem;cursor:pointer}
.day:hover,.hour-slot:hover{background:#2a343d}
.day.blank{background:#15191e;cursor:default}
.day-number{display:block;background:transparent;color:#f6f8fa;border:0;border-radius:50%;min-height:32px;min-width:32px;padding:.2rem;margin:0 0 .35rem;text-align:center}
.day-number:hover{background:#56606b}
.mini{display:block;text-align:left;width:100%;min-height:30px;font-size:.75rem;font-weight:650;padding:.3rem;margin:.25rem 0;background:var(--client-color,#9c2532);color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:grab}
.mini.renewal{background:#a47722;color:#fff}
.mini.dragging{opacity:.45}
.mini.selected-event{outline:3px solid #f9cf70;outline-offset:-3px;background:#75552d}
.calendar-slot.drop-target{outline:3px solid #e9b85a;outline-offset:-3px;background:#3b3425}
.time-view{display:grid;grid-template-columns:68px repeat(var(--days),minmax(0,1fr));max-height:720px;overflow:auto}
.time-heading{min-width:0;min-height:48px;padding:.7rem .3rem;position:sticky;top:0;z-index:2;background:#252c34;border-right:1px solid #414750;border-bottom:1px solid #414750;color:#fff;text-align:center}
.time-heading.date-heading{font-size:.85rem}
.hour-label{font-size:.75rem;color:#bbc4ce;padding:.4rem;border-right:1px solid #414750;border-bottom:1px solid #414750}
.hour-slot{min-width:0;min-height:57px;padding:.15rem;border-right:1px solid #414750;border-bottom:1px solid #414750;cursor:pointer}
.hour-slot .mini{white-space:normal;line-height:1.25}
.legacy-events{margin-top:1rem}
.calendar-dialog{width:min(540px,calc(100vw - 24px));max-height:calc(100vh - 28px);overflow:auto;background:#1b2026;color:#f7f7f8;border:1px solid #5a626c;border-radius:16px;padding:1.3rem;box-shadow:0 28px 85px #000a}
.calendar-dialog::backdrop{background:#030508b9}
.dialog-head{display:flex;align-items:center;gap:1rem}
.dialog-head h2{margin:0;flex:1}
.dialog-head button{font-size:1.4rem;padding:0 .65rem}
.calendar-dialog .secondary{background:#323a43;color:#f7f7f8}
.calendar-dialog form{margin-bottom:0}
.repeat-toggle{display:flex;align-items:center;gap:.75rem;cursor:pointer}
.repeat-toggle input{width:20px;min-height:20px}
.dialog-actions{display:flex;flex-wrap:wrap;gap:.5rem}
.dialog-actions button{flex:1}
.dialog-actions .danger-action{flex-basis:100%;background:#9e1f2c;color:#fff;border:1px solid #e75867}
.schedule-mode{display:grid;grid-template-columns:1fr 1fr;gap:.45rem;margin:.8rem 0}
.schedule-mode button{background:#333b44;color:#fff}
.schedule-mode button.selected{background:#c82335;box-shadow:inset 0 0 0 2px #f4c75a}
.weekday-pills{display:flex;gap:.35rem;flex-wrap:wrap;margin:.5rem 0 .8rem}
.weekday-pill{border-radius:50%;width:42px;height:42px;min-height:42px;padding:0;background:#363d47;color:white}
.weekday-pill.active{background:#c82335;box-shadow:inset 0 0 0 2px #f4c75a}
.calendar-dialog .schedule-rule{padding:.65rem;border:1px solid #4b5662;border-radius:8px;margin:.5rem 0}
.calendar-dialog .schedule-rule{grid-template-columns:1fr 1fr 1.3fr auto;gap:.45rem}
.calendar-dialog .schedule-rule select,.calendar-dialog .schedule-rule input{min-width:0}
@media(max-width:700px){
  .calendar-card{padding:.55rem;border-radius:0}
  .calendar-heading h1{font-size:1.35rem}
  .calendar-heading .sub{font-size:.86rem}
  .portal-menu>summary{padding:.6rem .75rem}
  .calendar-filters{display:grid;grid-template-columns:1fr 1fr}
  .calendar-filters label{min-width:0}
  .client-strip{margin-inline:-.2rem;padding-inline:.2rem}
  .calendar-status{align-items:stretch;flex-direction:column}
  .date-filter{display:none}
  .calendar-tools{position:sticky;top:0;z-index:4;background:#1b2026;padding:.45rem 0}
  .calendar-tools #today{order:1}
  .calendar-tools #prev-month{order:2}
  .calendar-tools #next-month{order:3}
  .calendar-tools h3{order:4;width:100%}
  .calendar-tools .view-picker{order:5}
  .calendar-tools .primary-action{order:6;margin-left:auto}
  .calendar-tools .calendar-more{order:7}
  .agenda-row{grid-template-columns:1fr auto}
  .agenda-when{grid-column:1 / -1}
  .agenda-event{min-height:44px}
  .calendar-tools h3{flex:1;min-width:135px}
  .calendar-tools .view-picker{margin-left:0}
  .day{min-height:78px;padding:.12rem}
  .day-number{min-width:28px;min-height:28px}
  .mini{font-size:.66rem;min-height:26px;padding:.2rem}
  .time-view{grid-template-columns:52px repeat(var(--days),minmax(100px,1fr));overflow:auto}
  .time-view.week-view{width:100%}
  .calendar-dialog .schedule-rule{grid-template-columns:1fr 1fr}
  .calendar-dialog .schedule-rule select:nth-of-type(2){grid-column:span 1}
}
@media(max-width:480px){
  .calendar-tools{gap:.35rem}
  .calendar-tools h3{width:100%;font-size:1rem}
  .calendar-tools .view-picker{margin-left:auto}
  .month-view .mini{font-size:.62rem}
  .calendar-dialog{padding:1rem}
}
