.attendance-real-panel{overflow:visible}.attendance-view-modes{display:flex;gap:7px;padding:16px 20px 0}.attendance-view-mode{border:1px solid #dfe4e8;background:#fff;color:#59636f;border-radius:11px;padding:8px 14px;font-size:11px;font-weight:850}.attendance-view-mode.active{background:#20242a;border-color:#20242a;color:#fff}.attendance-session-actions{display:flex;gap:10px;padding:12px 20px;border-bottom:1px solid #e5e9ed}.attendance-session-actions select{min-height:42px;flex:1;border:1px solid #d8e0e6;border-radius:13px;background:#fff;padding:9px 12px;color:#20242a}.attendance-row-preview .athlete-attendance-meta{display:grid;gap:2px}.attendance-row-preview .athlete-attendance-meta strong{font-size:13px}.attendance-row-preview .athlete-attendance-meta small{font-size:10px;color:#7b8490}.attendance-row-preview .status-toggle button{min-width:70px}.attendance-summary-view{padding:20px}.attendance-summary-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.attendance-summary-heading h2{margin:0;font-size:19px}.attendance-summary-heading p{margin:4px 0 0;font-size:11px;color:#75808b}.attendance-week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:9px}.attendance-week-day,.attendance-month-day{border:1px solid #e0e5e9;background:#fff;border-radius:15px;padding:12px;text-align:left;display:grid;gap:6px}.attendance-week-day:hover,.attendance-month-day:hover{border-color:#aeb7c0}.attendance-week-day strong{font-size:14px}.attendance-week-day span,.attendance-month-day span{font-size:10px;color:#71808c}.attendance-week-day b,.attendance-month-day b{font-size:12px;color:#20242a}.attendance-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.attendance-month-day{min-height:90px}.attendance-month-day.empty{visibility:hidden}.attendance-month-day.has-data{box-shadow:inset 0 0 0 1px #dce2e7}.attendance-day-alert{display:inline-flex;align-items:center;gap:4px;font-size:9px;color:#626d78}.attendance-dirty{color:#9a5d00!important;font-weight:800}.attendance-saved{color:#2f6b4f!important;font-weight:800}.session-structural-note{padding:9px 11px;border:1px solid #ead5aa;border-radius:11px;background:#fff9ec;color:#755617}.drawer-attendance-summary{margin-top:16px}.drawer-attendance-summary dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}.drawer-attendance-summary dl div{border:1px solid #e1e6ea;border-radius:12px;padding:9px}.drawer-attendance-summary dt{font-size:9px;text-transform:uppercase;color:#7b8590}.drawer-attendance-summary dd{margin:4px 0 0;font-size:14px;font-weight:800}@media(max-width:760px){.attendance-view-modes{padding:12px 12px 0}.attendance-view-mode{flex:1}.attendance-session-actions{padding:10px 12px;display:grid}.attendance-week-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.attendance-month-grid{gap:4px}.attendance-month-day{min-height:65px;padding:7px}.attendance-month-day b{font-size:10px}.attendance-row-preview .status-toggle button{min-width:0}.attendance-summary-view{padding:12px}.drawer-attendance-summary dl{grid-template-columns:repeat(2,minmax(0,1fr))}}
.attendance-season-select{display:grid;gap:4px;margin-left:auto;font-size:9px;text-transform:uppercase;color:#7b8490;font-weight:850}.attendance-season-select select{border:1px solid #dfe4e8;background:#fff;border-radius:11px;padding:8px 10px;color:#20242a;font-size:11px;font-weight:800}.attendance-season-archive{padding-top:20px}.attendance-archive-list{display:grid;gap:9px}.attendance-archive-month{border:1px solid #e2e7eb;border-radius:15px;background:#fbfcfd;overflow:hidden}.attendance-archive-month summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:10px;padding:13px 14px;font-weight:800}.attendance-archive-month summary::-webkit-details-marker{display:none}.attendance-archive-month summary::before{content:'▸';font-size:15px}.attendance-archive-month[open] summary::before{content:'▾'}.attendance-archive-month summary span{flex:1}.attendance-archive-month summary small{font-size:10px;color:#6d7681}.attendance-archive-kpis{display:flex;gap:8px;flex-wrap:wrap;padding:0 14px 13px;color:#68727d;font-size:11px}.attendance-archive-kpis span{background:#eef1f4;border-radius:999px;padding:6px 9px}@media(max-width:760px){.attendance-season-select{margin-left:0;grid-column:1/-1}.attendance-season-select select{width:100%}}


/* Mobile session editor: keep the full form reachable inside the visual viewport. */
#sessionModal{overflow-x:hidden;}
#sessionModal .quick-modal{
  min-width:0;
  max-width:calc(100vw - 24px);
  max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 24px);
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  touch-action:pan-y;
  padding-bottom:max(20px,env(safe-area-inset-bottom));
}
#sessionModal .quick-modal>*,
#sessionModal .session-category-fieldset,
#sessionModal .session-category-grid,
#sessionModal .session-category-grid>label{
  min-width:0;
  max-width:100%;
}
#sessionModal .session-category-grid{width:100%;}
#sessionModal .session-category-grid>label{
  white-space:normal;
  overflow-wrap:anywhere;
}
@media(max-width:640px){
  #sessionModal{align-items:end;padding:0;overflow-x:hidden;}
  #sessionModal .quick-modal{
    width:100%;
    max-width:100vw;
    min-height:0;
    max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 8px);
    border-radius:20px 20px 0 0;
    padding:16px 14px max(20px,env(safe-area-inset-bottom));
    scroll-padding-bottom:calc(68px + env(safe-area-inset-bottom));
  }
  #sessionModal .form-two{grid-template-columns:minmax(0,1fr);}
  #sessionModal .session-category-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  #sessionModal .modal-actions{
    position:sticky;
    bottom:0;
    z-index:2;
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:8px;
    background:#fff;
    padding:12px 0 4px;
    border-top:1px solid #e4e8ec;
  }
  #sessionModal .modal-actions .btn{
    width:100%;
    min-width:0;
    min-height:44px;
    white-space:normal;
  }
}
@media(max-width:339px){
  #sessionModal .modal-actions{grid-template-columns:1fr;}
}
