/* PE-Class v1.14.35 — iPad 전용 레이아웃
 * pe87Ipad 클래스가 확인된 iPadOS Safari에서만 적용합니다.
 * 768px 이하의 기존 모바일 UI와 일반 PC/Android에는 적용되지 않습니다.
 */
@media (min-width:769px) and (max-width:1366px){
  html.pe87Ipad{
    -webkit-text-size-adjust:100%;
    text-size-adjust:100%;
    --ipad-safe-left:env(safe-area-inset-left,0px);
    --ipad-safe-right:env(safe-area-inset-right,0px);
  }
  html.pe87Ipad body{
    min-height:100dvh;
    overscroll-behavior-y:none;
  }
  html.pe87Ipad button,
  html.pe87Ipad input,
  html.pe87Ipad select,
  html.pe87Ipad textarea{
    touch-action:manipulation;
    -webkit-tap-highlight-color:transparent;
  }
  html.pe87Ipad input,
  html.pe87Ipad select,
  html.pe87Ipad textarea{
    font-size:16px!important;
  }
  html.pe87Ipad .btn,
  html.pe87Ipad .miniBtn,
  html.pe87Ipad .tab{
    min-height:44px;
  }
  html.pe87Ipad .pe87Top{
    height:76px!important;
    padding-left:calc(16px + var(--ipad-safe-left));
    padding-right:calc(16px + var(--ipad-safe-right));
    gap:12px;
  }
  html.pe87Ipad .pe87Logo{width:52px!important;height:52px!important}
  html.pe87Ipad .pe87Title strong{font-size:16px!important}
  html.pe87Ipad .pe87Title b{font-size:21px!important}
  html.pe87Ipad .pe87Brand{min-width:0;flex:1 1 auto}
  html.pe87Ipad .pe87UserTools{gap:6px;flex:0 0 auto}
  html.pe87Ipad .pe87User{display:none}
  html.pe87Ipad .miniBtn{padding:8px 9px;font-size:11px;white-space:nowrap}
  html.pe87Ipad .pe87Main{min-width:0;padding:12px!important}
  html.pe87Ipad #app{min-width:0;padding:16px!important;min-height:calc(100dvh - 116px)}
  html.pe87Ipad .panel,
  html.pe87Ipad .detail,
  html.pe87Ipad .list,
  html.pe87Ipad .adminCard{min-width:0}
  html.pe87Ipad .tableWrap,
  html.pe87Ipad .papsTableWrap,
  html.pe87Ipad .assessmentTableWrap,
  html.pe87Ipad .progressTableWrap,
  html.pe87Ipad .clubStatsWrap,
  html.pe87Ipad .clubMemberTableWrap{
    max-width:100%;
    overflow:auto!important;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
  }
  html.pe87Ipad .modalBackdrop,
  html.pe87Ipad .calModal,
  html.pe87Ipad .pdfCropModal{
    padding-left:calc(18px + var(--ipad-safe-left));
    padding-right:calc(18px + var(--ipad-safe-right));
  }
  html.pe87Ipad .modalCard,
  html.pe87Ipad .calDialog{
    max-width:min(860px,calc(100vw - 48px));
    max-height:calc(100dvh - 48px);
    overflow:auto;
    -webkit-overflow-scrolling:touch;
  }
  html.pe87Ipad .formGrid,
  html.pe87Ipad .grid2{gap:12px}
  html.pe87Ipad textarea{min-height:92px!important;resize:vertical}
  html.pe87Ipad .calendarHeader{gap:10px}
  html.pe87Ipad .calDay{min-height:112px!important}
  html.pe87Ipad .clubCalDay{min-height:110px!important}
  html.pe87Ipad .studentList{max-height:calc(100dvh - 270px)!important}
  html.pe87Ipad .photoRosterDialog{max-width:calc(100vw - 40px);height:calc(100dvh - 40px)}
  html.pe87Ipad .pdfCropDialog{max-width:calc(100vw - 36px);height:calc(100dvh - 36px)}
  html.pe87Ipad .assessCards{grid-template-columns:repeat(2,minmax(0,1fr))}
  html.pe87Ipad .adminGridBalanced,
  html.pe87Ipad .adminMasterGrid,
  html.pe87Ipad .adminOpsGridWithSchool{gap:12px!important}
}

/* v1.15.38 — iPad 모달 전체 표시·PAPS 2칸 고정 중앙 정렬 */
@media (min-width:769px){
  html.pe87Ipad .calendarAddCModal,
  html.pe87IpadRuntime .calendarAddCModal{
    top:76px!important;
    bottom:auto!important;
    height:calc(100dvh - 76px)!important;
    z-index:4990!important;
    align-items:center!important;
    padding:10px 24px 12px!important;
    box-sizing:border-box!important;
  }
  html.pe87Ipad .calendarAddCModal .calendarAddDialog,
  html.pe87IpadRuntime .calendarAddCModal .calendarAddDialog{
    width:min(760px,calc(100vw - 48px))!important;
    max-width:760px!important;
    max-height:calc(100dvh - 98px)!important;
    overflow:hidden!important;
  }
  html.pe87Ipad .calendarAddCModal .calendarAddHeader,
  html.pe87IpadRuntime .calendarAddCModal .calendarAddHeader{
    position:relative!important;
    top:auto!important;
    min-height:48px!important;
    padding:11px 56px 10px 17px!important;
  }
  html.pe87Ipad .calendarAddCModal .calendarAddHeading h3,
  html.pe87IpadRuntime .calendarAddCModal .calendarAddHeading h3{font-size:17px!important}
  html.pe87Ipad .calendarAddCModal .calendarAddClose,
  html.pe87IpadRuntime .calendarAddCModal .calendarAddClose{top:6px!important;right:9px!important}
  html.pe87Ipad .calendarAddCModal .calendarAddItem,
  html.pe87IpadRuntime .calendarAddCModal .calendarAddItem{padding:9px 14px 0!important}
  html.pe87Ipad .calendarAddCModal .calendarAddStepper,
  html.pe87IpadRuntime .calendarAddCModal .calendarAddStepper{margin:0 18px 9px!important}
  html.pe87Ipad .calendarAddCModal .calendarAddStepper::before,
  html.pe87IpadRuntime .calendarAddCModal .calendarAddStepper::before{top:11px!important}
  html.pe87Ipad .calendarAddCModal .calendarAddStepper b,
  html.pe87IpadRuntime .calendarAddCModal .calendarAddStepper b{width:23px!important;height:23px!important}
  html.pe87Ipad .calendarAddCModal .calendarAddStepper>div,
  html.pe87IpadRuntime .calendarAddCModal .calendarAddStepper>div{gap:3px!important;font-size:10px!important}
  html.pe87Ipad .calendarAddCModal .calEditGrid,
  html.pe87IpadRuntime .calendarAddCModal .calEditGrid{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:7px 9px!important;
  }
  html.pe87Ipad .calendarAddCModal .calendarAddSection,
  html.pe87IpadRuntime .calendarAddCModal .calendarAddSection{
    min-width:0!important;
    margin:0!important;
    padding:7px 9px 8px!important;
  }
  html.pe87Ipad .calendarAddCModal .calendarAddSectionDetail,
  html.pe87IpadRuntime .calendarAddCModal .calendarAddSectionDetail{grid-column:1/-1!important}
  html.pe87Ipad .calendarAddCModal .calendarAddSectionHead,
  html.pe87IpadRuntime .calendarAddCModal .calendarAddSectionHead{margin-bottom:5px!important}
  html.pe87Ipad .calendarAddCModal .calendarAddSectionGrid,
  html.pe87IpadRuntime .calendarAddCModal .calendarAddSectionGrid,
  html.pe87Ipad .calendarAddCModal .calendarAddSectionDetail .calendarAddSectionGrid,
  html.pe87IpadRuntime .calendarAddCModal .calendarAddSectionDetail .calendarAddSectionGrid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:5px 8px!important;
  }
  html.pe87Ipad .calendarAddCModal .calendarAddSectionGrid label,
  html.pe87IpadRuntime .calendarAddCModal .calendarAddSectionGrid label{gap:2px!important}
  html.pe87Ipad .calendarAddCModal .calendarAddSectionGrid label.wide,
  html.pe87IpadRuntime .calendarAddCModal .calendarAddSectionGrid label.wide{grid-column:auto!important}
  html.pe87Ipad .calendarAddCModal .calendarAddSectionGrid input,
  html.pe87Ipad .calendarAddCModal .calendarAddSectionGrid select,
  html.pe87IpadRuntime .calendarAddCModal .calendarAddSectionGrid input,
  html.pe87IpadRuntime .calendarAddCModal .calendarAddSectionGrid select{
    min-height:33px!important;
    height:33px!important;
    padding:5px 8px!important;
  }
  html.pe87Ipad .calendarAddCModal .calendarAddSectionGrid textarea,
  html.pe87IpadRuntime .calendarAddCModal .calendarAddSectionGrid textarea{
    min-height:38px!important;
    height:38px!important;
    padding:5px 8px!important;
    resize:none!important;
  }
  html.pe87Ipad .calendarAddCModal .calendarAddSummary,
  html.pe87IpadRuntime .calendarAddCModal .calendarAddSummary{margin-top:6px!important;padding:7px 9px!important}
  html.pe87Ipad .calendarAddCModal .calendarAddActions,
  html.pe87IpadRuntime .calendarAddCModal .calendarAddActions{
    position:static!important;
    margin:7px -14px 0!important;
    padding:8px 14px 10px!important;
  }
  html.pe87Ipad .calendarAddCModal .calendarAddActions .btn,
  html.pe87IpadRuntime .calendarAddCModal .calendarAddActions .btn{min-height:35px!important;height:35px!important}

  html.pe87Ipad #papsTableBox table.pe87Paps tbody tr td:nth-child(5),
  html.pe87Ipad #papsTableBox table.pe87Paps tbody tr td:nth-child(7),
  html.pe87IpadRuntime #papsTableBox table.pe87Paps tbody tr td:nth-child(5),
  html.pe87IpadRuntime #papsTableBox table.pe87Paps tbody tr td:nth-child(7){text-align:center!important}
  html.pe87Ipad #papsTableBox table.pe87Paps tbody tr td:nth-child(5)>.dual.papsPairedInputs,
  html.pe87Ipad #papsTableBox table.pe87Paps tbody tr td:nth-child(7)>.dual.papsPairedInputs,
  html.pe87IpadRuntime #papsTableBox table.pe87Paps tbody tr td:nth-child(5)>.dual.papsPairedInputs,
  html.pe87IpadRuntime #papsTableBox table.pe87Paps tbody tr td:nth-child(7)>.dual.papsPairedInputs{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    width:min(100%,100px)!important;
    min-width:0!important;
    max-width:100px!important;
    gap:3px!important;
    margin-left:auto!important;
    margin-right:auto!important;
    position:static!important;
    inset:auto!important;
    float:none!important;
    transform:none!important;
  }
  html.pe87Ipad #papsTableBox table.pe87Paps tbody tr td:nth-child(5)>.papsPairedInputs>.papsInput,
  html.pe87Ipad #papsTableBox table.pe87Paps tbody tr td:nth-child(7)>.papsPairedInputs>.papsInput,
  html.pe87IpadRuntime #papsTableBox table.pe87Paps tbody tr td:nth-child(5)>.papsPairedInputs>.papsInput,
  html.pe87IpadRuntime #papsTableBox table.pe87Paps tbody tr td:nth-child(7)>.papsPairedInputs>.papsInput{
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    text-align:center!important;
  }
}

/* v1.15.31 — Galaxy Z Fold7 펼침 화면 표·스크롤 후속 안정화
 * 기존 DOM과 저장 이벤트는 유지하고 Fold 전용 표시 방식만 재배치합니다. */
@media (min-width:769px) and (max-width:1200px){
  /* 표 위에서 시작한 손가락 동작도 페이지 세로 스크롤로 이어지게 합니다. */
  html.pe87FoldWide body,
  html.pe87FoldWide .pe87Shell,
  html.pe87FoldWide .pe87Main,
  html.pe87FoldWide #app,
  html.pe87FoldWide .panel,
  html.pe87FoldWide .tableWrap,
  html.pe87FoldWide .tableScroll,
  html.pe87FoldWide table,
  html.pe87FoldWide tbody,
  html.pe87FoldWide tr,
  html.pe87FoldWide td{
    touch-action:pan-y!important;
    overscroll-behavior-y:auto!important;
  }
  html.pe87FoldWide .tableWrap,
  html.pe87FoldWide .papsTableWrap,
  html.pe87FoldWide .assessmentTableWrap,
  html.pe87FoldWide .clubStatsWrap,
  html.pe87FoldWide .clubMemberTableWrap,
  html.pe87FoldWide #papsTableBox,
  html.pe87FoldWide #assessTableBox,
  html.pe87FoldWide .clubAttendancePanel .tableScroll,
  html.pe87FoldWide #clubStatsBox .tableScroll{
    overflow-x:hidden!important;
    overflow-y:visible!important;
    overscroll-behavior:auto!important;
  }

  /* 반별 진도표의 차시 배지가 7% 열 밖으로 나오지 않도록 열 안에 고정합니다. */
  html.pe87FoldWide #progressTableBox table.pe87ClassProgress td:nth-child(2){overflow:hidden!important}
  html.pe87FoldWide #progressTableBox table.pe87ClassProgress td:nth-child(2)>strong{
    display:flex!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    min-height:28px!important;
    margin:0!important;
    padding:4px 1px!important;
    box-sizing:border-box!important;
    justify-content:center!important;
    overflow:hidden!important;
    font-size:9.5px!important;
    letter-spacing:-.65px!important;
    text-overflow:clip!important;
    white-space:nowrap!important;
  }

  /* PAPS 학급 기록: 데스크톱 1380px 표를 학생별 카드 행으로 바꿔 가로 스크롤을 없앱니다. */
  html.pe87FoldWide #papsTableBox table.pe87Paps.dataTable,
  html.pe87FoldWide #assessTableBox table.pe87Assess.dataTable,
  html.pe87FoldWide .clubAttendancePanel table.clubAttendanceTable.dataTable,
  html.pe87FoldWide #clubStatsBox table.clubStatsTable.dataTable{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    border:0!important;
    background:transparent!important;
    table-layout:auto!important;
  }
  html.pe87FoldWide #papsTableBox table.pe87Paps thead,
  html.pe87FoldWide #assessTableBox table.pe87Assess thead,
  html.pe87FoldWide .clubAttendancePanel table.clubAttendanceTable thead,
  html.pe87FoldWide #clubStatsBox table.clubStatsTable thead{display:none!important}
  html.pe87FoldWide #papsTableBox table.pe87Paps tbody,
  html.pe87FoldWide #assessTableBox table.pe87Assess tbody,
  html.pe87FoldWide .clubAttendancePanel table.clubAttendanceTable tbody,
  html.pe87FoldWide #clubStatsBox table.clubStatsTable tbody{
    display:grid!important;
    width:100%!important;
    min-width:0!important;
    gap:12px!important;
  }
  html.pe87FoldWide #papsTableBox table.pe87Paps tbody>tr,
  html.pe87FoldWide #assessTableBox table.pe87Assess tbody>tr,
  html.pe87FoldWide .clubAttendancePanel table.clubAttendanceTable tbody>tr,
  html.pe87FoldWide #clubStatsBox table.clubStatsTable tbody>tr{
    display:grid!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    height:auto!important;
    box-sizing:border-box!important;
    gap:8px!important;
    padding:10px!important;
    border:1px solid #d7e4ef!important;
    border-radius:12px!important;
    background:#f9fcff!important;
    box-shadow:0 2px 8px rgba(45,80,110,.06)!important;
  }
  html.pe87FoldWide #papsTableBox table.pe87Paps tbody>tr,
  html.pe87FoldWide .clubAttendancePanel table.clubAttendanceTable tbody>tr,
  html.pe87FoldWide #clubStatsBox table.clubStatsTable tbody>tr{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  html.pe87FoldWide #assessTableBox table.pe87Assess tbody>tr{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  html.pe87FoldWide #papsTableBox table.pe87Paps tbody td,
  html.pe87FoldWide #assessTableBox table.pe87Assess tbody td,
  html.pe87FoldWide .clubAttendancePanel table.clubAttendanceTable tbody td,
  html.pe87FoldWide #clubStatsBox table.clubStatsTable tbody td{
    position:relative!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    height:auto!important;
    min-height:78px!important;
    padding:30px 7px 8px!important;
    box-sizing:border-box!important;
    border:1px solid #dce7f0!important;
    border-radius:9px!important;
    background:#fff!important;
    overflow:visible!important;
    white-space:normal!important;
  }
  html.pe87FoldWide #papsTableBox table.pe87Paps tbody td::before,
  html.pe87FoldWide #assessTableBox table.pe87Assess tbody td::before,
  html.pe87FoldWide .clubAttendancePanel table.clubAttendanceTable tbody td::before,
  html.pe87FoldWide #clubStatsBox table.clubStatsTable tbody td::before{
    content:attr(data-label);
    position:absolute;
    top:0;
    left:0;
    right:0;
    min-height:24px;
    padding:5px 6px;
    box-sizing:border-box;
    border-bottom:1px solid #e5edf4;
    border-radius:8px 8px 0 0;
    background:#edf7ff;
    color:#49647b;
    font-size:10px;
    font-weight:900;
    line-height:1.25;
    text-align:center;
    white-space:normal;
  }
  html.pe87FoldWide #papsTableBox .pe87Paps .papsInput,
  html.pe87FoldWide #papsTableBox .pe87Paps .dual,
  html.pe87FoldWide #papsTableBox .pe87Paps .quad,
  html.pe87FoldWide #assessTableBox .pe87Assess .scoreControl,
  html.pe87FoldWide .clubAttendancePanel .clubAttendanceTable input,
  html.pe87FoldWide .clubAttendancePanel .clubAttendanceTable select{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  html.pe87FoldWide #papsTableBox .pe87Paps .dual,
  html.pe87FoldWide #papsTableBox .pe87Paps .quad{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:3px!important}
  html.pe87FoldWide #papsTableBox .pe87Paps .papsGrade,
  html.pe87FoldWide #papsTableBox .pe87Paps .overallGradeBadge{
    max-width:100%!important;
    box-sizing:border-box!important;
    font-size:10px!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }
  html.pe87FoldWide #papsTableBox .pe87Paps .bmiValue{max-width:100%!important;font-size:11px!important;white-space:normal!important}
  html.pe87FoldWide #assessTableBox .pe87Assess tbody td{min-height:100px!important}
  html.pe87FoldWide #assessTableBox .pe87Assess .scorePill{white-space:normal!important;text-align:center!important}

  /* 학생 상세의 PAPS 요약도 BMI·종합 점수·종합 등급까지 모두 카드 안에 표시합니다. */
  html.pe87FoldWide #studentPapsSummary,
  html.pe87FoldWide #studentAssessTable{width:100%!important;max-width:100%!important;overflow:visible!important}
  html.pe87FoldWide #studentPapsSummary table.miniAcademicTable,
  html.pe87FoldWide #studentAssessTable table.miniAcademicTable{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    border:0!important;
  }
  html.pe87FoldWide #studentPapsSummary table.miniAcademicTable thead,
  html.pe87FoldWide #studentAssessTable table.miniAcademicTable thead{display:none!important}
  html.pe87FoldWide #studentPapsSummary table.miniAcademicTable tbody,
  html.pe87FoldWide #studentAssessTable table.miniAcademicTable tbody{display:block!important;width:100%!important}
  html.pe87FoldWide #studentPapsSummary table.miniAcademicTable tr,
  html.pe87FoldWide #studentAssessTable table.miniAcademicTable tr{
    display:grid!important;
    width:100%!important;
    min-width:0!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:7px!important;
  }
  html.pe87FoldWide #studentPapsSummary table.miniAcademicTable td,
  html.pe87FoldWide #studentAssessTable table.miniAcademicTable td{
    position:relative!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    min-width:0!important;
    min-height:82px!important;
    padding:30px 5px 8px!important;
    box-sizing:border-box!important;
    border:1px solid #dce7f0!important;
    border-radius:9px!important;
    background:#fff!important;
    overflow:visible!important;
    white-space:normal!important;
  }
  html.pe87FoldWide #studentPapsSummary table.miniAcademicTable td::before,
  html.pe87FoldWide #studentAssessTable table.miniAcademicTable td::before{
    content:attr(data-label);
    position:absolute;
    top:0;
    left:0;
    right:0;
    padding:5px 4px;
    border-radius:8px 8px 0 0;
    background:#edf7ff;
    color:#49647b;
    font-size:10px;
    font-weight:900;
    line-height:1.2;
    text-align:center;
  }
  html.pe87FoldWide #studentPapsSummary .papsGrade,
  html.pe87FoldWide #studentPapsSummary .overallGradeBadge{max-width:100%!important;box-sizing:border-box!important;font-size:9.5px!important;white-space:normal!important;overflow-wrap:anywhere!important}

  /* 출석 입력과 통계는 학생별 카드로 전환해 13열/8열 최소폭을 제거합니다. */
  html.pe87FoldWide .clubAttendancePanel .attendanceControls{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;align-items:end!important}
  html.pe87FoldWide .clubAttendancePanel .attendanceControls .btn{width:100%!important}
  html.pe87FoldWide .clubAttendancePanel table.clubAttendanceTable tbody td:nth-child(4),
  html.pe87FoldWide .clubAttendancePanel table.clubAttendanceTable tbody td:nth-child(6){grid-column:span 2!important}
  html.pe87FoldWide #clubStatsBox>.row{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important}
  html.pe87FoldWide #clubStatsBox>.row>.hint{grid-column:1/-1!important}
  html.pe87FoldWide #clubStatsBox table.clubStatsTable tbody td{min-height:68px!important}

  /* 설정은 Fold에서 한 줄에 카드 하나를 사용해 홀수 카드 오른쪽 빈칸을 없앱니다. */
  html.pe87FoldWide .adminMasterGrid,
  html.pe87FoldWide .adminOpsGrid,
  html.pe87FoldWide .adminOpsGridWithSchool{
    grid-template-columns:minmax(0,1fr)!important;
    gap:10px!important;
  }
  html.pe87FoldWide .adminMasterGrid>.adminCard,
  html.pe87FoldWide .adminOpsGrid>.adminCard,
  html.pe87FoldWide .adminOpsGridWithSchool>.adminCard,
  html.pe87FoldWide .adminYearCard,
  html.pe87FoldWide .adminHeadTeacherCard,
  html.pe87FoldWide .adminClassCard,
  html.pe87FoldWide .adminSubjectCard,
  html.pe87FoldWide .adminSemesterCard,
  html.pe87FoldWide .adminSchoolCard,
  html.pe87FoldWide .adminPlaceCard{
    grid-column:1!important;
    width:100%!important;
    min-width:0!important;
    height:auto!important;
    box-sizing:border-box!important;
  }
  html.pe87FoldWide .adminYearList,
  html.pe87FoldWide .semesterHeadVertical,
  html.pe87FoldWide #adminPlaceRows{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* v1.15.24 — iPad QR 실제 좌측 확장 및 진도표 입력 표 마감 */
@media (min-width:769px) and (max-width:1440px){
  html.pe87Ipad .clubQrPanel .formGrid>label,
  html.pe87IpadRuntime .clubQrPanel .formGrid>label{
    display:grid!important;
    grid-template-columns:30px minmax(0,1fr)!important;
    align-items:center!important;
    gap:2px!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    overflow:visible!important;
  }
  html.pe87Ipad .clubQrPanel .formGrid>label>.label,
  html.pe87IpadRuntime .clubQrPanel .formGrid>label>.label{
    width:30px!important;
    min-width:0!important;
    font-size:11px!important;
    letter-spacing:-.8px!important;
    line-height:1.1!important;
    white-space:nowrap!important;
  }
  html.pe87Ipad .clubQrPanel #clubQrMember,
  html.pe87IpadRuntime .clubQrPanel #clubQrMember{
    padding-left:5px!important;
    padding-right:18px!important;
    font-size:13px!important;
    letter-spacing:-.55px!important;
    background-position:calc(100% - 10px) 50%,calc(100% - 6px) 50%!important;
    background-size:4px 4px,4px 4px!important;
  }
  html.pe87Ipad .pe87SubjectPlanPanel,
  html.pe87IpadRuntime .pe87SubjectPlanPanel,
  html.pe87Ipad .pe87ProgressPanel,
  html.pe87IpadRuntime .pe87ProgressPanel{
    padding:14px!important;
    border-color:#d8e5ef!important;
    background:linear-gradient(180deg,#fbfdff 0,#fff 120px)!important;
  }
  html.pe87Ipad #subjectPlanBox,
  html.pe87IpadRuntime #subjectPlanBox,
  html.pe87Ipad #progressTableBox,
  html.pe87IpadRuntime #progressTableBox{
    border:1px solid #d4e2ed!important;
    border-radius:14px!important;
    background:#fff!important;
    box-shadow:0 8px 22px rgba(38,75,105,.075)!important;
  }
  html.pe87Ipad #subjectPlanBox table.pe87SubjectPlan,
  html.pe87IpadRuntime #subjectPlanBox table.pe87SubjectPlan{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    border-collapse:separate!important;
    border-spacing:0!important;
    table-layout:fixed!important;
  }
  html.pe87Ipad #subjectPlanBox table.pe87SubjectPlan th,
  html.pe87IpadRuntime #subjectPlanBox table.pe87SubjectPlan th,
  html.pe87Ipad #progressTableBox table.pe87ClassProgress th,
  html.pe87IpadRuntime #progressTableBox table.pe87ClassProgress th{
    height:46px!important;
    padding:9px 6px!important;
    border-top:0!important;
    border-left:0!important;
    border-right:1px solid #d7e6f1!important;
    border-bottom:2px solid #9fd0ef!important;
    background:linear-gradient(180deg,#edf8ff,#e5f2fb)!important;
    color:#274b66!important;
    font-size:11.5px!important;
    font-weight:900!important;
  }
  html.pe87Ipad #subjectPlanBox table.pe87SubjectPlan td,
  html.pe87IpadRuntime #subjectPlanBox table.pe87SubjectPlan td,
  html.pe87Ipad #progressTableBox table.pe87ClassProgress td,
  html.pe87IpadRuntime #progressTableBox table.pe87ClassProgress td{
    height:62px!important;
    padding:7px 6px!important;
    border-top:0!important;
    border-left:0!important;
    border-right:1px solid #e3ebf2!important;
    border-bottom:1px solid #e3ebf2!important;
    background:#fff!important;
  }
  html.pe87Ipad #subjectPlanBox table.pe87SubjectPlan tbody tr:nth-child(even) td,
  html.pe87IpadRuntime #subjectPlanBox table.pe87SubjectPlan tbody tr:nth-child(even) td,
  html.pe87Ipad #progressTableBox table.pe87ClassProgress tbody tr:nth-child(even) td,
  html.pe87IpadRuntime #progressTableBox table.pe87ClassProgress tbody tr:nth-child(even) td{background:#fbfdff!important}
  html.pe87Ipad #subjectPlanBox table.pe87SubjectPlan input:not([type="checkbox"]),
  html.pe87Ipad #subjectPlanBox table.pe87SubjectPlan textarea,
  html.pe87IpadRuntime #subjectPlanBox table.pe87SubjectPlan input:not([type="checkbox"]),
  html.pe87IpadRuntime #subjectPlanBox table.pe87SubjectPlan textarea,
  html.pe87Ipad #progressTableBox table.pe87ClassProgress input:not([type="checkbox"]),
  html.pe87Ipad #progressTableBox table.pe87ClassProgress select,
  html.pe87IpadRuntime #progressTableBox table.pe87ClassProgress input:not([type="checkbox"]),
  html.pe87IpadRuntime #progressTableBox table.pe87ClassProgress select,
  html.pe87Ipad .pe87ProgressPanel .progressDateDisplay,
  html.pe87IpadRuntime .pe87ProgressPanel .progressDateDisplay{
    min-height:40px!important;
    padding:7px 7px!important;
    border:1px solid #cfdeea!important;
    border-radius:8px!important;
    background:#f8fbfe!important;
    color:#233f55!important;
    font-size:12px!important;
    box-shadow:inset 0 1px 2px rgba(32,70,100,.035)!important;
  }
  html.pe87Ipad #progressTableBox table.pe87ClassProgress,
  html.pe87IpadRuntime #progressTableBox table.pe87ClassProgress{
    min-width:1260px!important;
    border-collapse:separate!important;
    border-spacing:0!important;
    table-layout:fixed!important;
  }
  html.pe87Ipad .subjectPlanActions,
  html.pe87IpadRuntime .subjectPlanActions,
  html.pe87Ipad .pe87ProgressPanel .progressActions,
  html.pe87IpadRuntime .pe87ProgressPanel .progressActions{
    display:flex!important;
    flex-direction:row!important;
    justify-content:space-between!important;
    gap:10px!important;
    margin-top:13px!important;
    padding-top:13px!important;
    border-top:1px solid #e1eaf1!important;
  }
}

@media (min-width:769px) and (max-width:1440px) and (hover:none) and (pointer:coarse){
  @supports (-webkit-touch-callout:none){
    .clubQrPanel .formGrid>label{
      display:grid!important;
      grid-template-columns:30px minmax(0,1fr)!important;
      align-items:center!important;
      gap:2px!important;
      width:100%!important;
      min-width:0!important;
      max-width:100%!important;
    }
    .clubQrPanel .formGrid>label>.label{width:30px!important;font-size:11px!important;letter-spacing:-.8px!important}
    .clubQrPanel #clubQrMember{
      padding:0 18px 0 5px!important;
      font-size:13px!important;
      letter-spacing:-.55px!important;
      background-position:calc(100% - 10px) 50%,calc(100% - 6px) 50%!important;
      background-size:4px 4px,4px 4px!important;
    }
  }
}

/* v1.15.30 — Galaxy Z Fold7 펼침 화면 전용 중간 레이아웃
 * pe87FoldWide 클래스가 붙은 Android Fold 화면에만 적용합니다.
 * 데이터/API와 768px 이하 모바일, iPad, 일반 PC 규칙은 변경하지 않습니다. */
@media (min-width:769px) and (max-width:1200px){
  html.pe87FoldWide{
    -webkit-text-size-adjust:100%;
    text-size-adjust:100%;
  }
  html.pe87FoldWide,
  html.pe87FoldWide body{
    width:100%;
    max-width:100%;
    overflow-x:hidden!important;
  }
  html.pe87FoldWide button,
  html.pe87FoldWide input,
  html.pe87FoldWide select,
  html.pe87FoldWide textarea{
    touch-action:manipulation;
    -webkit-tap-highlight-color:transparent;
  }
  html.pe87FoldWide input,
  html.pe87FoldWide select,
  html.pe87FoldWide textarea{font-size:16px!important}

  /* 상단 헤더는 Fold 폭에서 계정 기능을 유지하되 한 줄로 압축합니다. */
  html.pe87FoldWide .pe87Top{
    position:sticky!important;
    top:0!important;
    right:auto!important;
    left:auto!important;
    width:auto!important;
    min-height:68px!important;
    height:68px!important;
    box-sizing:border-box!important;
    padding:7px 12px!important;
    align-items:center!important;
    gap:10px!important;
  }
  html.pe87FoldWide .pe87Brand{flex:1 1 auto!important;min-width:0!important;gap:9px!important}
  html.pe87FoldWide .pe87Logo{flex:0 0 46px!important;width:46px!important;height:46px!important}
  html.pe87FoldWide .pe87Title{min-width:0!important}
  html.pe87FoldWide .pe87Title strong{overflow:hidden;font-size:13px!important;line-height:1.2!important;text-overflow:ellipsis;white-space:nowrap}
  html.pe87FoldWide .pe87Title b{overflow:hidden;font-size:18px!important;line-height:1.2!important;text-overflow:ellipsis;white-space:nowrap}
  html.pe87FoldWide .pe87UserTools{display:flex!important;flex:0 0 auto!important;gap:4px!important;align-items:center!important}
  html.pe87FoldWide .pe87User,
  html.pe87FoldWide .sync{display:none!important}
  html.pe87FoldWide .miniBtn{min-height:42px!important;padding:7px 8px!important;font-size:10.5px!important;white-space:nowrap!important}

  /* 4열 메뉴와 가로 선택 트리: 넓은 화면을 쓰면서 학년·반·종목 선택도 유지합니다. */
  html.pe87FoldWide .pe87Shell{
    display:block!important;
    min-height:0!important;
    margin-top:0!important;
  }
  html.pe87FoldWide .pe87Side{
    position:relative!important;
    top:auto!important;
    width:100%!important;
    height:auto!important;
    max-height:none!important;
    box-sizing:border-box!important;
    padding:9px 10px!important;
    border-right:0!important;
    border-bottom:1px solid #d9e1ea!important;
    overflow:visible!important;
    background:#fff!important;
  }
  html.pe87FoldWide .sideTabs{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:6px!important;
    width:100%!important;
    min-width:0!important;
    overflow:visible!important;
  }
  html.pe87FoldWide .sideTabs>.tab{
    order:1;
    justify-content:center!important;
    width:100%!important;
    min-width:0!important;
    min-height:44px!important;
    height:44px!important;
    padding:0 6px!important;
    font-size:12px!important;
    letter-spacing:-.35px!important;
    text-align:center!important;
    white-space:nowrap!important;
  }
  html.pe87FoldWide .sideTabs>.sideTree{
    order:2;
    grid-column:1/-1!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    gap:6px!important;
    width:100%!important;
    min-width:0!important;
    margin:2px 0 0!important;
    padding:8px 0 1px!important;
    border-top:1px solid #e3eaf1!important;
    border-left:0!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-x:contain;
  }
  html.pe87FoldWide .sideTree>.treeIndent,
  html.pe87FoldWide .sideTree .treeIndent{
    display:flex!important;
    flex-direction:row!important;
    flex:0 0 auto!important;
    align-items:center!important;
    gap:6px!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
  }
  html.pe87FoldWide .treeYear,
  html.pe87FoldWide .treeSemester,
  html.pe87FoldWide .treeItem{
    flex:0 0 auto!important;
    min-width:max-content!important;
    min-height:40px!important;
    height:40px!important;
    padding:0 11px!important;
    border:1px solid #d6e2ed!important;
    border-radius:9px!important;
    background:#f8fbfe!important;
    font-size:12px!important;
    white-space:nowrap!important;
  }
  html.pe87FoldWide .treeSemester.active,
  html.pe87FoldWide .treeItem.active{border-color:#3498db!important;background:#3498db!important;color:#fff!important}

  html.pe87FoldWide .pe87Main{width:100%!important;min-width:0!important;box-sizing:border-box!important;padding:10px 12px 18px!important}
  html.pe87FoldWide #app{width:100%!important;min-width:0!important;max-width:100%!important;min-height:calc(100dvh - 180px)!important;box-sizing:border-box!important;padding:14px!important}
  html.pe87FoldWide .panel,
  html.pe87FoldWide .detail,
  html.pe87FoldWide .list,
  html.pe87FoldWide .adminCard{min-width:0!important}
  html.pe87FoldWide .panel{padding:14px!important}
  html.pe87FoldWide .pe87PageHead{align-items:center!important;flex-wrap:wrap!important;gap:9px!important}
  html.pe87FoldWide .pe87PageHead>.row{flex-wrap:wrap!important;justify-content:flex-end!important;gap:6px!important}
  html.pe87FoldWide .btn{min-height:44px!important;padding:9px 11px!important}

  /* Fold 펼침 폭을 활용하는 공통 2열 카드 배치 */
  html.pe87FoldWide .grid{grid-template-columns:minmax(230px,.72fr) minmax(0,1.5fr)!important;gap:12px!important}
  html.pe87FoldWide .grid2,
  html.pe87FoldWide .formGrid,
  html.pe87FoldWide .field2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:10px!important}
  html.pe87FoldWide .profile{flex-direction:row!important;align-items:flex-start!important}
  html.pe87FoldWide .photo{flex:0 0 126px!important;width:126px!important;height:150px!important}
  html.pe87FoldWide .studentList{max-height:calc(100dvh - 300px)!important}
  html.pe87FoldWide .assessCards{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  html.pe87FoldWide .adminGrid2,
  html.pe87FoldWide .adminGrid3,
  html.pe87FoldWide .adminGridBalanced,
  html.pe87FoldWide .adminMasterGrid,
  html.pe87FoldWide .adminOpsGrid,
  html.pe87FoldWide .adminOpsGridWithSchool{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
  html.pe87FoldWide .adminSubjectCard,
  html.pe87FoldWide .adminSemesterCard{grid-column:1/-1!important}

  /* 넓은 데이터 표는 페이지가 아니라 카드 내부에서만 스크롤합니다. */
  html.pe87FoldWide .tableWrap,
  html.pe87FoldWide .papsTableWrap,
  html.pe87FoldWide .assessmentTableWrap,
  html.pe87FoldWide .clubStatsWrap,
  html.pe87FoldWide .clubMemberTableWrap{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
    overflow:auto!important;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
  }

  /* 종목별 진도표: 6열을 Fold 카드 폭에 맞춰 유지합니다. */
  html.pe87FoldWide #subjectPlanBox,
  html.pe87FoldWide #subjectPlanBox table.pe87SubjectPlan{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  html.pe87FoldWide #subjectPlanBox table.pe87SubjectPlan{table-layout:fixed!important}
  html.pe87FoldWide #subjectPlanBox table.pe87SubjectPlan th{padding:8px 4px!important;font-size:10.5px!important;line-height:1.25!important;white-space:normal!important}
  html.pe87FoldWide #subjectPlanBox table.pe87SubjectPlan td{padding:6px 4px!important}
  html.pe87FoldWide #subjectPlanBox table.pe87SubjectPlan input:not([type="checkbox"]),
  html.pe87FoldWide #subjectPlanBox table.pe87SubjectPlan textarea{min-height:42px!important;padding:7px 6px!important;font-size:12px!important}
  html.pe87FoldWide #subjectPlanBox table.pe87SubjectPlan td:nth-child(2) b{font-size:11px!important;white-space:nowrap!important}

  /* 반별 진도표: 8열을 한 카드 안에서 사용하도록 Fold 전용 비율을 적용합니다. */
  html.pe87FoldWide #progressTableBox,
  html.pe87FoldWide #progressTableBox table.pe87ClassProgress{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  html.pe87FoldWide #progressTableBox table.pe87ClassProgress{table-layout:fixed!important}
  html.pe87FoldWide #progressTableBox .progressColCheck{width:4%!important}
  html.pe87FoldWide #progressTableBox .progressColLesson{width:7%!important}
  html.pe87FoldWide #progressTableBox .progressColDate{width:20%!important}
  html.pe87FoldWide #progressTableBox .progressColPeriod{width:8%!important}
  html.pe87FoldWide #progressTableBox .progressColPlace{width:12%!important}
  html.pe87FoldWide #progressTableBox .progressColSubject{width:13%!important}
  html.pe87FoldWide #progressTableBox .progressColActivity{width:23%!important}
  html.pe87FoldWide #progressTableBox .progressColMemo{width:13%!important}
  html.pe87FoldWide #progressTableBox table.pe87ClassProgress th{padding:7px 3px!important;font-size:10px!important;line-height:1.2!important;white-space:normal!important}
  html.pe87FoldWide #progressTableBox table.pe87ClassProgress td{padding:5px 3px!important}
  html.pe87FoldWide #progressTableBox table.pe87ClassProgress input:not([type="checkbox"]),
  html.pe87FoldWide #progressTableBox table.pe87ClassProgress select,
  html.pe87FoldWide #progressTableBox .progressDateDisplay{min-height:38px!important;padding:5px 4px!important;font-size:11px!important}
  html.pe87FoldWide #progressTableBox .dateLine{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:4px!important}
  html.pe87FoldWide #progressTableBox .progressDatePicker{grid-column:1/-1!important}
  html.pe87FoldWide #progressTableBox .dateHint{font-size:10px!important;text-align:left!important}
  html.pe87FoldWide #progressTableBox .rowReset{min-height:30px!important;padding:4px 6px!important;font-size:10px!important}

  /* 스포츠클럽은 두 카드 + 전체 폭 QR 카드로 재배치해 입력칸 찌그러짐을 막습니다. */
  html.pe87FoldWide .clubPcTopGrid{grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr)!important;gap:10px!important}
  html.pe87FoldWide .clubPcTopGrid>.clubPcTopCard{height:500px!important;min-height:500px!important;max-height:500px!important;padding:14px!important}
  html.pe87FoldWide .clubPcTopGrid>.clubQrPanel{grid-column:1/-1!important;height:auto!important;min-height:390px!important;max-height:none!important}
  html.pe87FoldWide .clubQrPanel .formGrid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  html.pe87FoldWide .clubImportModal{padding:12px!important}
  html.pe87FoldWide .clubImportModalPanel{width:calc(100vw - 24px)!important;max-height:calc(100dvh - 24px)!important}
  html.pe87FoldWide .clubSchoolImportFilters{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}
  html.pe87FoldWide .clubSchoolImportFilters>label:last-child{grid-column:1/-1!important}

  html.pe87FoldWide .modalBackdrop,
  html.pe87FoldWide .calModal,
  html.pe87FoldWide .pdfCropModal{padding:12px!important}
  html.pe87FoldWide .modalCard,
  html.pe87FoldWide .calDialog{width:min(900px,calc(100vw - 24px))!important;max-height:calc(100dvh - 24px)!important;box-sizing:border-box!important;overflow:auto!important}
}

/* v1.15.27 final — 데스크톱 사이트/확대 디스플레이로 보고되는 iPad까지 포함 */
@media (min-width:769px){
  html.pe87Ipad .pe87SubjectPlanPanel,
  html.pe87IpadRuntime .pe87SubjectPlanPanel,
  html.pe87Ipad #subjectPlanBox,
  html.pe87IpadRuntime #subjectPlanBox{display:block!important;width:100%!important;min-width:0!important;max-width:100%!important;overflow-x:hidden!important;box-sizing:border-box!important}
  html.pe87Ipad #subjectPlanBox table.pe87SubjectPlan,
  html.pe87IpadRuntime #subjectPlanBox table.pe87SubjectPlan{display:table!important;width:100%!important;min-width:0!important;max-width:100%!important;table-layout:fixed!important;box-sizing:border-box!important}
  html.pe87Ipad .pe87SubjectPlan .planColCheck,html.pe87IpadRuntime .pe87SubjectPlan .planColCheck{width:5%!important}
  html.pe87Ipad .pe87SubjectPlan .planColLesson,html.pe87IpadRuntime .pe87SubjectPlan .planColLesson{width:9%!important}
  html.pe87Ipad .pe87SubjectPlan .planColTopic,html.pe87IpadRuntime .pe87SubjectPlan .planColTopic{width:18%!important}
  html.pe87Ipad .pe87SubjectPlan .planColSkill,html.pe87IpadRuntime .pe87SubjectPlan .planColSkill{width:20%!important}
  html.pe87Ipad .pe87SubjectPlan .planColActivity,html.pe87IpadRuntime .pe87SubjectPlan .planColActivity{width:29%!important}
  html.pe87Ipad .pe87SubjectPlan .planColPrep,html.pe87IpadRuntime .pe87SubjectPlan .planColPrep{width:19%!important}
}

@media (min-width:769px) and (max-width:2200px) and (any-pointer:coarse){
  @supports (-webkit-touch-callout:none){
    #subjectPlanBox{display:block!important;width:100%!important;min-width:0!important;max-width:100%!important;overflow-x:hidden!important;box-sizing:border-box!important}
    #subjectPlanBox table.pe87SubjectPlan{display:table!important;width:100%!important;min-width:0!important;max-width:100%!important;table-layout:fixed!important;box-sizing:border-box!important}
  }
}

/* v1.15.36 — PC PAPS 2칸 결합·악력 4칸 한 줄 */
@media (min-width:769px) and (hover:hover) and (pointer:fine){
  html:not(.pe87Ipad):not(.pe87IpadRuntime):not(.pe87FoldWide) #papsTableBox .papsPairedInputs{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    width:min(100%,148px)!important;
    min-width:0!important;
    max-width:148px!important;
    gap:4px!important;
    margin:0 auto!important;
  }
  html:not(.pe87Ipad):not(.pe87IpadRuntime):not(.pe87FoldWide) #papsTableBox .papsGripInputs{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    width:100%!important;
    min-width:0!important;
    max-width:270px!important;
    gap:4px!important;
    margin:0 auto!important;
    box-sizing:border-box!important;
  }
  html:not(.pe87Ipad):not(.pe87IpadRuntime):not(.pe87FoldWide) #papsTableBox .papsPairedInputs .papsInput,
  html:not(.pe87Ipad):not(.pe87IpadRuntime):not(.pe87FoldWide) #papsTableBox .papsGripInputs .papsInput{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    margin:0!important;
    padding-left:4px!important;
    padding-right:4px!important;
    box-sizing:border-box!important;
  }
}

/* v1.15.36 — iPad PAPS 동일 배열, 카드 폭 100% 안에서 열 비율 재조정 */
@media (min-width:769px){
  html.pe87Ipad #papsTableBox table.pe87Paps,
  html.pe87IpadRuntime #papsTableBox table.pe87Paps{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    table-layout:fixed!important;
  }
  html.pe87Ipad #papsTableBox table.pe87Paps th:nth-child(1),html.pe87Ipad #papsTableBox table.pe87Paps td:nth-child(1),
  html.pe87IpadRuntime #papsTableBox table.pe87Paps th:nth-child(1),html.pe87IpadRuntime #papsTableBox table.pe87Paps td:nth-child(1){width:4%!important}
  html.pe87Ipad #papsTableBox table.pe87Paps th:nth-child(2),html.pe87Ipad #papsTableBox table.pe87Paps td:nth-child(2),
  html.pe87IpadRuntime #papsTableBox table.pe87Paps th:nth-child(2),html.pe87IpadRuntime #papsTableBox table.pe87Paps td:nth-child(2){width:7%!important}
  html.pe87Ipad #papsTableBox table.pe87Paps th:nth-child(3),html.pe87Ipad #papsTableBox table.pe87Paps td:nth-child(3),
  html.pe87IpadRuntime #papsTableBox table.pe87Paps th:nth-child(3),html.pe87IpadRuntime #papsTableBox table.pe87Paps td:nth-child(3){width:6%!important}
  html.pe87Ipad #papsTableBox table.pe87Paps th:nth-child(4),html.pe87Ipad #papsTableBox table.pe87Paps td:nth-child(4),
  html.pe87IpadRuntime #papsTableBox table.pe87Paps th:nth-child(4),html.pe87IpadRuntime #papsTableBox table.pe87Paps td:nth-child(4){width:7%!important}
  html.pe87Ipad #papsTableBox table.pe87Paps th:nth-child(5),html.pe87Ipad #papsTableBox table.pe87Paps td:nth-child(5),
  html.pe87IpadRuntime #papsTableBox table.pe87Paps th:nth-child(5),html.pe87IpadRuntime #papsTableBox table.pe87Paps td:nth-child(5){width:13%!important}
  html.pe87Ipad #papsTableBox table.pe87Paps th:nth-child(6),html.pe87Ipad #papsTableBox table.pe87Paps td:nth-child(6),
  html.pe87IpadRuntime #papsTableBox table.pe87Paps th:nth-child(6),html.pe87IpadRuntime #papsTableBox table.pe87Paps td:nth-child(6){width:18%!important}
  html.pe87Ipad #papsTableBox table.pe87Paps th:nth-child(7),html.pe87Ipad #papsTableBox table.pe87Paps td:nth-child(7),
  html.pe87IpadRuntime #papsTableBox table.pe87Paps th:nth-child(7),html.pe87IpadRuntime #papsTableBox table.pe87Paps td:nth-child(7){width:13%!important}
  html.pe87Ipad #papsTableBox table.pe87Paps th:nth-child(8),html.pe87Ipad #papsTableBox table.pe87Paps td:nth-child(8),
  html.pe87IpadRuntime #papsTableBox table.pe87Paps th:nth-child(8),html.pe87IpadRuntime #papsTableBox table.pe87Paps td:nth-child(8){width:6%!important}
  html.pe87Ipad #papsTableBox table.pe87Paps th:nth-child(9),html.pe87Ipad #papsTableBox table.pe87Paps td:nth-child(9),
  html.pe87IpadRuntime #papsTableBox table.pe87Paps th:nth-child(9),html.pe87IpadRuntime #papsTableBox table.pe87Paps td:nth-child(9){width:6%!important}
  html.pe87Ipad #papsTableBox table.pe87Paps th:nth-child(10),html.pe87Ipad #papsTableBox table.pe87Paps td:nth-child(10),
  html.pe87IpadRuntime #papsTableBox table.pe87Paps th:nth-child(10),html.pe87IpadRuntime #papsTableBox table.pe87Paps td:nth-child(10){width:8%!important}
  html.pe87Ipad #papsTableBox table.pe87Paps th:nth-child(11),html.pe87Ipad #papsTableBox table.pe87Paps td:nth-child(11),
  html.pe87IpadRuntime #papsTableBox table.pe87Paps th:nth-child(11),html.pe87IpadRuntime #papsTableBox table.pe87Paps td:nth-child(11){width:6%!important}
  html.pe87Ipad #papsTableBox table.pe87Paps th:nth-child(12),html.pe87Ipad #papsTableBox table.pe87Paps td:nth-child(12),
  html.pe87IpadRuntime #papsTableBox table.pe87Paps th:nth-child(12),html.pe87IpadRuntime #papsTableBox table.pe87Paps td:nth-child(12){width:6%!important}
  html.pe87Ipad #papsTableBox .papsPairedInputs,
  html.pe87IpadRuntime #papsTableBox .papsPairedInputs{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    width:min(100%,100px)!important;
    min-width:0!important;
    max-width:100px!important;
    gap:3px!important;
    margin:0 auto!important;
  }
  html.pe87Ipad #papsTableBox .papsGripInputs,
  html.pe87IpadRuntime #papsTableBox .papsGripInputs{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    gap:2px!important;
    margin:0 auto!important;
    box-sizing:border-box!important;
  }
  html.pe87Ipad #papsTableBox .papsPairedInputs .papsInput,
  html.pe87IpadRuntime #papsTableBox .papsPairedInputs .papsInput,
  html.pe87Ipad #papsTableBox .papsGripInputs .papsInput,
  html.pe87IpadRuntime #papsTableBox .papsGripInputs .papsInput{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    height:34px!important;
    margin:0!important;
    padding:2px 1px!important;
    font-size:9.5px!important;
    box-sizing:border-box!important;
  }
}

/* Fold7 후속 규칙은 기존 중간폭 규칙보다 뒤에서 확정합니다. */
@media (min-width:769px) and (max-width:1200px){
  html.pe87FoldWide .tableWrap,
  html.pe87FoldWide .papsTableWrap,
  html.pe87FoldWide .assessmentTableWrap,
  html.pe87FoldWide .clubStatsWrap,
  html.pe87FoldWide .clubMemberTableWrap,
  html.pe87FoldWide #papsTableBox,
  html.pe87FoldWide #assessTableBox,
  html.pe87FoldWide .clubAttendancePanel .tableScroll,
  html.pe87FoldWide #clubStatsBox .tableScroll{
    overflow-x:hidden!important;
    overflow-y:visible!important;
    overscroll-behavior:auto!important;
    touch-action:pan-y!important;
  }
  html.pe87FoldWide .adminMasterGrid,
  html.pe87FoldWide .adminOpsGrid,
  html.pe87FoldWide .adminOpsGridWithSchool{grid-template-columns:minmax(0,1fr)!important}
  html.pe87FoldWide .adminMasterGrid>.adminCard,
  html.pe87FoldWide .adminOpsGrid>.adminCard,
  html.pe87FoldWide .adminOpsGridWithSchool>.adminCard{grid-column:1!important;width:100%!important;height:auto!important}
}

/* v1.15.32 — Galaxy Z Fold7 펼침 화면 학생당 한 줄 요약 */
@media (min-width:769px) and (max-width:1200px){
  /* PAPS: 번호·이름·성별·종합등급만 한 줄, 나머지는 상세 모달 */
  html.pe87FoldWide #papsTableBox table.pe87Paps thead{display:block!important}
  html.pe87FoldWide #papsTableBox table.pe87Paps thead>tr,
  html.pe87FoldWide #papsTableBox table.pe87Paps tbody>tr{
    display:grid!important;
    grid-template-columns:58px minmax(130px,1fr) 92px 112px!important;
    gap:0!important;
    width:100%!important;
    min-height:0!important;
    padding:0!important;
    overflow:hidden!important;
    border:1px solid #d9e5ef!important;
    border-radius:10px!important;
    background:#fff!important;
    box-shadow:none!important;
  }
  html.pe87FoldWide #papsTableBox table.pe87Paps thead>tr{margin-bottom:8px!important;border-color:#c9dce9!important;background:#edf7ff!important}
  html.pe87FoldWide #papsTableBox table.pe87Paps thead th:nth-child(n+4):nth-child(-n+11),
  html.pe87FoldWide #papsTableBox table.pe87Paps tbody td:nth-child(n+4):nth-child(-n+11){display:none!important}
  html.pe87FoldWide #papsTableBox table.pe87Paps thead th,
  html.pe87FoldWide #papsTableBox table.pe87Paps tbody td{
    position:static!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:auto!important;
    min-width:0!important;
    min-height:54px!important;
    height:54px!important;
    margin:0!important;
    padding:7px 6px!important;
    box-sizing:border-box!important;
    border:0!important;
    border-right:1px solid #e1eaf1!important;
    border-radius:0!important;
    background:transparent!important;
    font-size:12px!important;
    white-space:nowrap!important;
    overflow:hidden!important;
  }
  html.pe87FoldWide #papsTableBox table.pe87Paps thead th:last-child,
  html.pe87FoldWide #papsTableBox table.pe87Paps tbody td:last-child{border-right:0!important}
  html.pe87FoldWide #papsTableBox table.pe87Paps tbody td::before{display:none!important;content:none!important}
  html.pe87FoldWide #papsTableBox .pe87Paps .genderToggle{min-height:36px!important;padding:5px 10px!important;font-size:11px!important}
  html.pe87FoldWide #papsTableBox .pe87Paps .summaryGrade{cursor:pointer!important;background:#f8fbfe!important}
  html.pe87FoldWide #papsTableBox .pe87Paps .summaryGrade:hover{background:#eef8ff!important}
  html.pe87FoldWide #papsTableBox .pe87Paps .summaryGrade .overallGradeBadge{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-width:72px!important;min-height:34px!important;margin:0!important;padding:6px 10px!important;font-size:12px!important;white-space:nowrap!important}

  /* 수행평가: 항목 수와 관계없이 학생 한 명을 한 행에 유지 */
  html.pe87FoldWide #assessTableBox table.pe87Assess tbody>tr{
    display:flex!important;
    flex-wrap:nowrap!important;
    align-items:stretch!important;
    gap:0!important;
    min-height:82px!important;
    padding:0!important;
    overflow:hidden!important;
    border:1px solid #d9e5ef!important;
    border-radius:10px!important;
    background:#fff!important;
    box-shadow:none!important;
  }
  html.pe87FoldWide #assessTableBox table.pe87Assess tbody td{
    position:relative!important;
    display:flex!important;
    flex:1 1 0!important;
    min-width:0!important;
    min-height:82px!important;
    height:82px!important;
    padding:26px 4px 5px!important;
    border:0!important;
    border-right:1px solid #e2eaf1!important;
    border-radius:0!important;
    background:#fff!important;
    overflow:hidden!important;
  }
  html.pe87FoldWide #assessTableBox table.pe87Assess tbody td:first-child{flex:0 0 48px!important}
  html.pe87FoldWide #assessTableBox table.pe87Assess tbody td:nth-child(2){flex:0 0 90px!important}
  html.pe87FoldWide #assessTableBox table.pe87Assess tbody td:last-child{flex:0 0 92px!important;border-right:0!important;background:#f7fbfe!important}
  html.pe87FoldWide #assessTableBox table.pe87Assess tbody td::before{
    display:block!important;
    content:attr(data-label)!important;
    min-height:22px!important;
    padding:4px 2px!important;
    font-size:9px!important;
    line-height:1.15!important;
    white-space:normal!important;
    overflow:hidden!important;
  }
  html.pe87FoldWide #assessTableBox .scoreControl{min-height:36px!important}
  html.pe87FoldWide #assessTableBox .assessInput{height:36px!important;min-height:36px!important;padding:4px!important;font-size:12px!important}
  html.pe87FoldWide #assessTableBox .stepBtns{width:18px!important;min-width:18px!important}
  html.pe87FoldWide #assessTableBox .stepBtns button{min-width:18px!important;width:18px!important;padding:0!important;font-size:8px!important}
  html.pe87FoldWide #assessTableBox .scorePill{display:none!important}

  /* 학생 상세 PAPS·수행평가 요약도 각 학생 화면에서 한 줄 */
  html.pe87FoldWide #app>.grid{grid-template-columns:minmax(180px,.42fr) minmax(0,1.58fr)!important}
  html.pe87FoldWide #studentPapsSummary table.miniAcademicTable tr,
  html.pe87FoldWide #studentAssessTable table.miniAcademicTable tr{
    display:flex!important;
    flex-wrap:nowrap!important;
    align-items:stretch!important;
    gap:0!important;
    width:100%!important;
    overflow:hidden!important;
    border:1px solid #dbe6ef!important;
    border-radius:9px!important;
  }
  html.pe87FoldWide #studentPapsSummary table.miniAcademicTable td,
  html.pe87FoldWide #studentAssessTable table.miniAcademicTable td{
    position:relative!important;
    display:flex!important;
    flex:1 1 0!important;
    min-width:0!important;
    min-height:88px!important;
    height:88px!important;
    padding:27px 3px 5px!important;
    border:0!important;
    border-right:1px solid #e3eaf0!important;
    border-radius:0!important;
    background:#fff!important;
    overflow:hidden!important;
    font-size:10px!important;
  }
  html.pe87FoldWide #studentPapsSummary table.miniAcademicTable td:last-child,
  html.pe87FoldWide #studentAssessTable table.miniAcademicTable td:last-child{border-right:0!important}
  html.pe87FoldWide #studentPapsSummary table.miniAcademicTable td::before,
  html.pe87FoldWide #studentAssessTable table.miniAcademicTable td::before{
    display:block!important;
    content:attr(data-label)!important;
    min-height:23px!important;
    padding:4px 2px!important;
    font-size:8.5px!important;
    line-height:1.15!important;
    white-space:normal!important;
    overflow:hidden!important;
  }
  html.pe87FoldWide #studentPapsSummary .papsGrade,
  html.pe87FoldWide #studentPapsSummary .overallGradeBadge{margin:4px auto 0!important;padding:3px 4px!important;font-size:8px!important;line-height:1.1!important}

  /* 스포츠클럽 출석 입력: 핵심 7열, 출석 통계: 전체 8열을 학생당 한 행 */
  html.pe87FoldWide .clubAttendancePanel table.clubAttendanceTable thead,
  html.pe87FoldWide #clubStatsBox table.clubStatsTable thead{display:block!important}
  html.pe87FoldWide .clubAttendancePanel table.clubAttendanceTable thead>tr,
  html.pe87FoldWide .clubAttendancePanel table.clubAttendanceTable tbody>tr{
    display:grid!important;
    grid-template-columns:44px 78px 90px 124px 104px minmax(100px,1fr) 76px!important;
    gap:0!important;
    width:100%!important;
    min-height:0!important;
    padding:0!important;
    overflow:hidden!important;
    border:1px solid #dbe5ed!important;
    border-radius:9px!important;
    background:#fff!important;
    box-shadow:none!important;
  }
  html.pe87FoldWide .clubAttendancePanel table.clubAttendanceTable thead>tr{margin-bottom:7px!important;background:#edf7ff!important}
  html.pe87FoldWide .clubAttendancePanel table.clubAttendanceTable th:nth-child(n+8),
  html.pe87FoldWide .clubAttendancePanel table.clubAttendanceTable td:nth-child(n+8){display:none!important}
  html.pe87FoldWide .clubAttendancePanel table.clubAttendanceTable th,
  html.pe87FoldWide .clubAttendancePanel table.clubAttendanceTable tbody td{
    position:static!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:auto!important;
    min-width:0!important;
    min-height:52px!important;
    height:52px!important;
    padding:5px 4px!important;
    box-sizing:border-box!important;
    border:0!important;
    border-right:1px solid #e2eaf0!important;
    border-radius:0!important;
    background:transparent!important;
    overflow:hidden!important;
    white-space:nowrap!important;
    font-size:10.5px!important;
  }
  html.pe87FoldWide .clubAttendancePanel table.clubAttendanceTable tbody td::before{display:none!important;content:none!important}
  html.pe87FoldWide .clubAttendancePanel table.clubAttendanceTable tbody td:nth-child(4),
  html.pe87FoldWide .clubAttendancePanel table.clubAttendanceTable tbody td:nth-child(6){grid-column:auto!important}
  html.pe87FoldWide .clubAttendancePanel table.clubAttendanceTable input,
  html.pe87FoldWide .clubAttendancePanel table.clubAttendanceTable select{height:38px!important;min-height:38px!important;padding:4px 5px!important;font-size:11px!important}

  html.pe87FoldWide #clubStatsBox table.clubStatsTable thead>tr,
  html.pe87FoldWide #clubStatsBox table.clubStatsTable tbody>tr{
    display:grid!important;
    grid-template-columns:minmax(130px,1.5fr) 72px repeat(6,minmax(48px,.72fr))!important;
    gap:0!important;
    width:100%!important;
    min-height:0!important;
    padding:0!important;
    overflow:hidden!important;
    border:1px solid #dbe5ed!important;
    border-radius:9px!important;
    background:#fff!important;
    box-shadow:none!important;
  }
  html.pe87FoldWide #clubStatsBox table.clubStatsTable thead>tr{margin-bottom:7px!important;background:#edf7ff!important}
  html.pe87FoldWide #clubStatsBox table.clubStatsTable th,
  html.pe87FoldWide #clubStatsBox table.clubStatsTable tbody td{
    position:static!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:auto!important;
    min-width:0!important;
    min-height:48px!important;
    height:48px!important;
    padding:5px 3px!important;
    box-sizing:border-box!important;
    border:0!important;
    border-right:1px solid #e2eaf0!important;
    border-radius:0!important;
    background:transparent!important;
    overflow:hidden!important;
    white-space:normal!important;
    font-size:10px!important;
    text-align:center!important;
  }
  html.pe87FoldWide #clubStatsBox table.clubStatsTable tbody td::before{display:none!important;content:none!important}
}

/* Fold PAPS 상세 모달 */
body.foldPapsDetailOpen{overflow:hidden!important;touch-action:none!important}
.foldPapsDetailModal{z-index:25000!important}
.foldPapsDetailDialog{width:min(820px,calc(100vw - 24px))!important;max-height:calc(100dvh - 24px)!important;padding:0!important;overflow:auto!important}
.foldPapsDetailHead{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 17px;border-bottom:1px solid #dce7ef;background:rgba(255,255,255,.97)}
.foldPapsDetailHead>div{min-width:0}.foldPapsDetailHead span{font-size:11px;font-weight:900;color:#168ee0}.foldPapsDetailHead h3{margin:2px 0 0;font-size:18px;color:#203449}
.foldPapsDetailGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px;background:#f4f8fb}
.foldPapsMetricCard{min-width:0;padding:12px;border:1px solid #d8e5ef;border-radius:12px;background:#fff;box-shadow:0 2px 7px rgba(35,71,101,.05)}
.foldPapsMetricCard.wide{grid-column:1/-1}.foldPapsMetricCard h4{margin:0 0 9px;color:#2b4b65;font-size:13px}
.foldPapsInputGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.foldPapsInputGrid.one{grid-template-columns:minmax(0,1fr)}.foldPapsInputGrid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.foldPapsInputGrid label{display:grid;gap:4px;min-width:0}.foldPapsInputGrid label>span{font-size:9.5px;font-weight:900;color:#6d7f8f;text-align:center}.foldPapsInputGrid input{width:100%;min-width:0;min-height:40px;padding:6px 7px;box-sizing:border-box;text-align:center}
.foldPapsDerived{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px;min-height:34px;margin-top:9px;padding:7px;border-radius:8px;background:#f4f9fd;color:#263f55;text-align:center}
.foldPapsDerived .papsGrade,.foldPapsDerived .overallGradeBadge{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:auto!important;margin:0!important;white-space:nowrap!important}
.foldPapsMetricCard.summary .foldPapsDerived{min-height:48px;background:#eaf6ff}.foldPapsMetricCard.summary .foldPapsDerived>b{font-size:18px}
.foldPapsDetailFoot{position:sticky;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-top:1px solid #dce7ef;background:rgba(255,255,255,.97)}
.foldPapsDetailFoot span{font-size:11px;color:#6b7a88}
.foldPapsDetailActions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:0 0 auto}
.foldPapsDetailActions .btn{min-width:84px}

/* v1.15.33 — Fold7 세부 정렬 및 홈 달력 모달 안정화 */
@media (min-width:769px) and (max-width:1200px){
  html.pe87FoldWide #studentList .studentBtn{grid-template-columns:52px minmax(0,1fr)!important}
  html.pe87FoldWide #studentList .studentBtn .name{min-width:0!important;padding:8px 5px!important;overflow:hidden!important}
  html.pe87FoldWide #studentList .studentBtn .name>.badge{
    display:inline-flex!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    justify-content:center!important;
    gap:4px!important;
    max-width:100%!important;
    padding:6px 8px!important;
    box-sizing:border-box!important;
    font-size:11.5px!important;
    line-height:1.2!important;
    white-space:nowrap!important;
  }
  html.pe87FoldWide #studentList .studentBtn .count{flex:0 0 auto!important;white-space:nowrap!important}

  html.pe87FoldWide .clubAttendancePanel .attendanceControls>label{
    display:grid!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  html.pe87FoldWide .clubAttendancePanel .attendanceControls input,
  html.pe87FoldWide .clubAttendancePanel .attendanceControls select,
  html.pe87FoldWide .clubAttendancePanel .attendanceControls>.btn{
    display:flex!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  html.pe87FoldWide .clubAttendancePanel #clubAttDate{inline-size:100%!important;min-inline-size:0!important}
}

/* v1.15.34 — Fold7 수업 추가 모달 닫기 버튼 우측 상단 고정 */
@media (min-width:769px) and (max-width:1200px){
  html.pe87FoldWide .calendarAddModal .calendarAddDialog{position:relative!important}
  html.pe87FoldWide .calendarAddModal .calendarAddHeader{
    position:relative!important;
    min-height:68px!important;
    padding:16px 68px 14px 16px!important;
    box-sizing:border-box!important;
  }
  html.pe87FoldWide .calendarAddModal .calendarAddClose{
    position:absolute!important;
    top:12px!important;
    right:12px!important;
    z-index:6!important;
    display:grid!important;
    place-items:center!important;
    width:42px!important;
    height:42px!important;
    min-width:42px!important;
    margin:0!important;
    padding:0!important;
    border:1px solid #cbdbe7!important;
    border-radius:12px!important;
    background:#fff!important;
    color:#3d5569!important;
    box-shadow:0 3px 10px rgba(28,63,91,.12)!important;
    font-size:19px!important;
    font-weight:900!important;
    line-height:1!important;
  }
}

@media (max-width:768px){
  #calendarModal.calendarDetailModal{z-index:1400!important;padding:0!important;align-items:flex-end!important;overflow:hidden!important}
  #calendarModal .calendarDetailDialog{
    width:100%!important;
    max-width:none!important;
    max-height:calc(100dvh - max(12px,env(safe-area-inset-top)))!important;
    padding:0 14px calc(14px + env(safe-area-inset-bottom))!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    scroll-padding-bottom:calc(20px + env(safe-area-inset-bottom));
    border-radius:18px 18px 0 0!important;
    box-sizing:border-box!important;
    -webkit-overflow-scrolling:touch;
  }
  #calendarModal .calendarDetailHeader{
    position:sticky!important;
    top:0!important;
    z-index:5!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:center!important;
    gap:8px!important;
    margin:0 -14px 8px!important;
    padding:14px!important;
    border-bottom:1px solid #dce7f0!important;
    background:#fff!important;
    box-shadow:0 5px 14px rgba(23,52,76,.08)!important;
  }
  #calendarModal .calendarDetailHeader h3{min-width:0!important;font-size:17px!important;white-space:nowrap!important}
  #calendarModal .calendarDetailActions{display:flex!important;flex-wrap:nowrap!important;gap:7px!important}
  #calendarModal .calendarDetailActions .btn{width:auto!important;min-width:72px!important;min-height:42px!important;margin:0!important;padding:8px 10px!important;white-space:nowrap!important}
  #calendarModal .calendarDetailActions #addCalendarLesson{min-width:112px!important}
}

@media (min-width:769px) and (hover:hover) and (pointer:fine){
  body.calendarModalPcLocked{overflow:hidden!important;overscroll-behavior:none!important}
  html:not(.pe87Ipad):not(.pe87IpadRuntime):not(.pe87FoldWide) .calendarAddModal{
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
  }
}

/* v1.15.36 — PC·iPad 홈 달력 수업 추가 모달 C안
 * 전용 calendarAddCModal 클래스가 없는 모바일·Fold7에서는 기존 배열을 유지합니다. */
.calendarAddPcOnly{display:none!important}
.calendarAddSection,
.calendarAddSectionGrid{display:contents}

@media (min-width:769px){
  .calendarAddCModal{
    align-items:center!important;
    padding:28px!important;
    background:rgba(24,43,60,.38)!important;
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
  }
  .calendarAddCModal .calendarAddDialog{
    width:min(720px,calc(100vw - 56px))!important;
    max-width:720px!important;
    max-height:calc(100dvh - 56px)!important;
    padding:0!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    border:1px solid #cfdae5!important;
    border-radius:16px!important;
    background:#fff!important;
    box-shadow:0 24px 68px rgba(17,42,65,.27)!important;
    box-sizing:border-box!important;
  }
  .calendarAddCModal .calendarAddHeader{
    position:relative!important;
    display:flex!important;
    align-items:center!important;
    min-height:62px!important;
    padding:17px 64px 15px 22px!important;
    border-bottom:1px solid #e1e8ef!important;
    color:#1c2e3e!important;
    background:#fff!important;
    box-shadow:none!important;
    box-sizing:border-box!important;
  }
  .calendarAddCModal .calendarAddHeading{display:block!important}
  .calendarAddCModal .calendarAddHeading small,
  .calendarAddCModal .calendarAddIcon,
  .calendarAddCModal .calendarAddDefaultTitle{display:none!important}
  .calendarAddCModal .calendarAddPcTitle{display:inline!important}
  .calendarAddCModal .calendarAddHeading h3{
    margin:0!important;
    color:#1c2e3e!important;
    font-size:20px!important;
    font-weight:900!important;
    line-height:1.3!important;
    letter-spacing:-.3px!important;
  }
  .calendarAddCModal .calendarAddClose{
    position:absolute!important;
    top:12px!important;
    right:13px!important;
    z-index:4!important;
    display:grid!important;
    place-items:center!important;
    width:38px!important;
    height:38px!important;
    min-width:38px!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:10px!important;
    background:transparent!important;
    color:#1f3446!important;
    box-shadow:none!important;
    font-size:20px!important;
    font-weight:700!important;
    line-height:1!important;
  }
  .calendarAddCModal .calendarAddClose:hover{background:#eef4f8!important;transform:none!important}
  .calendarAddCModal .calendarAddClose:focus-visible{outline:3px solid rgba(20,118,216,.18)!important;outline-offset:1px!important}
  .calendarAddCModal .calendarAddItem{
    margin:0!important;
    padding:16px 20px 0!important;
    border:0!important;
    border-left:0!important;
    border-radius:0!important;
    background:#fff!important;
  }
  .calendarAddCModal .calendarAddStepper{
    position:relative!important;
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:0!important;
    margin:0 22px 17px!important;
  }
  .calendarAddCModal .calendarAddStepper::before{
    content:"";
    position:absolute;
    top:13px;
    left:16.66%;
    right:16.66%;
    height:1px;
    background:#cdd8e2;
  }
  .calendarAddCModal .calendarAddStepper>div{
    position:relative;
    z-index:1;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:6px;
    color:#6c7f90;
    font-size:11px;
    font-weight:800;
  }
  .calendarAddCModal .calendarAddStepper b{
    display:grid;
    place-items:center;
    width:27px;
    height:27px;
    border-radius:50%;
    background:#8797a7;
    color:#fff;
    font-size:12px;
    box-shadow:0 0 0 4px #fff;
  }
  .calendarAddCModal .calendarAddStepper>div:nth-child(1){color:#146fc5!important}
  .calendarAddCModal .calendarAddStepper>div:nth-child(1) b{background:#177bdd!important}
  .calendarAddCModal .calendarAddStepper>div:nth-child(2){color:#16825a!important}
  .calendarAddCModal .calendarAddStepper>div:nth-child(2) b{background:#1aa56f!important}
  .calendarAddCModal .calendarAddStepper>div:nth-child(3){color:#9a6615!important}
  .calendarAddCModal .calendarAddStepper>div:nth-child(3) b{background:#efa128!important}
  .calendarAddCModal .calEditGrid{
    display:block!important;
    width:100%!important;
  }
  .calendarAddCModal .calendarAddSection{
    display:block!important;
    margin:0 0 9px!important;
    padding:10px 12px 12px!important;
    border:1px solid #c9ddf4!important;
    border-radius:8px!important;
    background:#fff!important;
    box-shadow:none!important;
    box-sizing:border-box!important;
  }
  .calendarAddCModal .calendarAddSectionLesson{border-color:#c8e5d6!important}
  .calendarAddCModal .calendarAddSectionDetail{border-color:#f1d7b1!important}
  .calendarAddCModal .calendarAddSectionHead{
    display:flex!important;
    align-items:center!important;
    gap:7px!important;
    margin:0 0 8px!important;
    color:#1769b1!important;
    font-size:12px!important;
    font-weight:900!important;
  }
  .calendarAddCModal .calendarAddSectionHead b{
    display:grid;
    place-items:center;
    width:20px;
    height:20px;
    border-radius:50%;
    background:#177bdd;
    color:#fff;
    font-size:11px;
  }
  .calendarAddCModal .calendarAddSectionLesson .calendarAddSectionHead{color:#16825a!important}
  .calendarAddCModal .calendarAddSectionLesson .calendarAddSectionHead b{background:#1aa56f!important}
  .calendarAddCModal .calendarAddSectionDetail .calendarAddSectionHead{color:#9a6615!important}
  .calendarAddCModal .calendarAddSectionDetail .calendarAddSectionHead b{background:#efa128!important}
  .calendarAddCModal .calendarAddSectionGrid{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px 12px!important;
  }
  .calendarAddCModal .calendarAddSectionGrid label{
    display:flex!important;
    flex-direction:column!important;
    gap:4px!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }
  .calendarAddCModal .calendarAddSectionGrid label.wide{grid-column:1/-1!important}
  .calendarAddCModal .calendarAddSectionGrid label>span{
    color:#506477!important;
    font-size:11px!important;
    font-weight:850!important;
  }
  .calendarAddCModal .calendarAddSectionGrid input,
  .calendarAddCModal .calendarAddSectionGrid select,
  .calendarAddCModal .calendarAddSectionGrid textarea{
    width:100%!important;
    min-width:0!important;
    min-height:38px!important;
    margin:0!important;
    padding:7px 10px!important;
    border:1px solid #d5e0e9!important;
    border-radius:6px!important;
    background:#fff!important;
    color:#273e51!important;
    box-shadow:none!important;
    font-size:12px!important;
    line-height:1.35!important;
    box-sizing:border-box!important;
  }
  .calendarAddCModal .calendarAddSectionGrid textarea{min-height:50px!important;resize:vertical!important}
  .calendarAddCModal .calendarAddSectionDetail .calendarAddSectionGrid{grid-template-columns:1fr!important}
  .calendarAddCModal .calendarAddSectionGrid input:disabled{
    color:#627688!important;
    background:#f5f8fa!important;
    opacity:1!important;
  }
  .calendarAddCModal .calendarAddSectionGrid input:focus,
  .calendarAddCModal .calendarAddSectionGrid select:focus,
  .calendarAddCModal .calendarAddSectionGrid textarea:focus{
    outline:2px solid rgba(23,123,221,.14)!important;
    border-color:#4a9ae4!important;
  }
  .calendarAddCModal .calendarAddSummary{
    display:flex!important;
    flex-direction:column!important;
    gap:4px!important;
    margin:7px 0 0!important;
    padding:10px 12px!important;
    border:1px solid #cce5d8!important;
    border-radius:7px!important;
    background:#f2faf6!important;
    color:#385d4c!important;
    box-sizing:border-box!important;
  }
  .calendarAddCModal .calendarAddSummary strong{color:#19885e!important;font-size:11px!important}
  .calendarAddCModal .calendarAddSummary span{font-size:11px!important;line-height:1.45!important;overflow-wrap:anywhere!important}
  .calendarAddCModal .calendarAddActions{
    position:sticky!important;
    bottom:0!important;
    z-index:3!important;
    display:flex!important;
    justify-content:flex-end!important;
    gap:10px!important;
    margin:13px -20px 0!important;
    padding:12px 20px 14px!important;
    border-top:1px solid #e1e8ef!important;
    background:#fff!important;
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
  }
  .calendarAddCModal .calendarAddActions .btn{
    width:142px!important;
    min-width:142px!important;
    min-height:40px!important;
    margin:0!important;
    border-radius:6px!important;
    font-size:13px!important;
    font-weight:900!important;
  }
  .calendarAddCModal .calendarAddCancel{
    border:1px solid #b8d3ea!important;
    background:#fff!important;
    color:#2377bb!important;
  }
  .calendarAddCModal .calendarAddSave{
    border:1px solid #13a65d!important;
    background:linear-gradient(180deg,#25bf71,#16a85f)!important;
    color:#fff!important;
    box-shadow:0 5px 13px rgba(21,168,95,.18)!important;
  }
}


/* iPad 세로 화면과 11인치 Split View의 넓은 구간: 좌측 메뉴를 상단 가로 메뉴로 전환 */
@media (min-width:769px) and (max-width:1100px){
  html.pe87Ipad .pe87Shell{display:block!important;min-height:calc(100dvh - 76px)!important}
  html.pe87Ipad .pe87Side{
    position:sticky!important;
    top:76px!important;
    height:auto!important;
    padding:9px 12px!important;
    border-right:0!important;
    border-bottom:1px solid #d9e1ea!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    background:#fff!important;
  }
  html.pe87Ipad .pe87Side::-webkit-scrollbar{display:none}
  html.pe87Ipad .sideTabs{
    flex-direction:row!important;
    width:max-content!important;
    min-width:100%!important;
    gap:8px!important;
    overflow:visible!important;
  }
  html.pe87Ipad .sideTabs .tab{
    width:auto!important;
    min-width:max-content!important;
    height:44px!important;
    padding:0 14px!important;
    font-size:14px!important;
    white-space:nowrap!important;
  }
  html.pe87Ipad .sideTree{display:none!important}
  html.pe87Ipad .pe87Main{padding:10px!important}
  html.pe87Ipad #app{padding:14px!important;min-height:calc(100dvh - 150px)}
  html.pe87Ipad .grid,
  html.pe87Ipad .studentWaitingGrid{grid-template-columns:minmax(250px,34%) minmax(0,1fr)!important}
  html.pe87Ipad .field2{grid-template-columns:1fr 1fr!important}
  html.pe87Ipad .profile{align-items:flex-start}
  html.pe87Ipad .photo{width:132px!important;height:154px!important;flex:0 0 auto}
  html.pe87Ipad .adminGridBalanced,
  html.pe87Ipad .adminMasterGrid,
  html.pe87Ipad .adminOpsGridWithSchool{grid-template-columns:1fr!important}
  html.pe87Ipad .adminSubjectCard,
  html.pe87Ipad .adminSemesterCard,
  html.pe87Ipad .adminPlaceCard,
  html.pe87Ipad .adminSchoolCard{grid-column:auto!important}
  html.pe87Ipad .classGrid{grid-template-columns:repeat(4,minmax(0,1fr))}
  html.pe87Ipad .clubPcTopGrid{grid-template-columns:1fr 1fr!important}
  html.pe87Ipad .clubPcTopGrid>.clubPcTopCard{height:500px;min-height:500px;max-height:500px}
  html.pe87Ipad .clubPcTopGrid>.clubPcTopCard:last-child{grid-column:1/-1;height:auto;min-height:430px;max-height:none}
  html.pe87Ipad .pe87PageHead{gap:10px;flex-wrap:wrap}
  html.pe87Ipad .pe87PageHead .row{flex-wrap:wrap}
}

/* iPad 가로 전체 화면: PC 구조는 유지하되 사이드바와 본문 비율만 태블릿에 맞춤 */
@media (min-width:1101px) and (max-width:1366px){
  html.pe87Ipad .pe87Shell{grid-template-columns:225px minmax(0,1fr)!important}
  html.pe87Ipad .pe87Side{top:76px!important;height:calc(100dvh - 76px)!important;padding:13px 11px!important}
  html.pe87Ipad .sideTabs .tab{height:44px!important;font-size:14px!important;padding:0 12px!important}
  html.pe87Ipad .treeYear,
  html.pe87Ipad .treeSemester,
  html.pe87Ipad .treeItem{height:32px!important;font-size:13px!important}
  html.pe87Ipad .grid{grid-template-columns:270px minmax(0,1fr)!important}
  html.pe87Ipad .clubPcTopGrid{gap:12px}
  html.pe87Ipad .clubPcTopGrid>.clubPcTopCard{padding:14px!important}
}

/* 외장/화면 키보드가 올라온 iPad에서 하단 버튼이 가려지지 않도록 */
@media (min-width:769px) and (max-width:1366px) and (max-height:700px){
  html.pe87Ipad .pe87Top{position:relative!important}
  html.pe87Ipad .pe87Side{top:0!important;position:relative!important}
  html.pe87Ipad .studentList{max-height:42vh!important}
  html.pe87Ipad .modalCard,
  html.pe87Ipad .calDialog{max-height:calc(100dvh - 20px)}
  html.pe87Ipad .progressActions,
  html.pe87Ipad .assessmentActions,
  html.pe87Ipad .clubActions{position:relative;z-index:2}
}

/* PE-Class v1.14.36 — iPad 표·날짜 컨트롤 정밀 보정
 * html.pe87Ipad 안에서만 동작하여 일반 PC와 768px 이하 모바일에는 영향을 주지 않습니다.
 */
@media (min-width:769px) and (max-width:1366px){
  /* 학교스포츠클럽 QR 날짜: Safari native date의 고유 최소 폭을 카드 안으로 제한 */
  html.pe87Ipad .clubQrPanel{
    min-width:0!important;
    overflow:hidden!important;
  }
  html.pe87Ipad .clubQrPanel .formGrid,
  html.pe87Ipad .clubQrPanel .formGrid label{
    min-width:0!important;
  }
  html.pe87Ipad .clubQrPanel #clubQrDate{
    display:block!important;
    inline-size:100%!important;
    min-inline-size:0!important;
    max-inline-size:100%!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    height:46px!important;
    padding:0 10px!important;
    box-sizing:border-box!important;
    text-align:center!important;
  }
  html.pe87Ipad .clubQrPanel #clubQrDate::-webkit-date-and-time-value{
    min-width:0!important;
    text-align:center!important;
  }

  /* 출석 입력: 날짜·시간대·조회·저장을 같은 너비와 높이로 정렬 */
  html.pe87Ipad .clubAttendancePanel .attendanceControls{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    align-items:end!important;
    gap:12px!important;
    width:100%!important;
  }
  html.pe87Ipad .clubAttendancePanel .attendanceControls>label,
  html.pe87Ipad .clubAttendancePanel .attendanceControls>.btn{
    width:100%!important;
    min-width:0!important;
    margin:0!important;
  }
  html.pe87Ipad .clubAttendancePanel .attendanceControls input,
  html.pe87Ipad .clubAttendancePanel .attendanceControls select,
  html.pe87Ipad .clubAttendancePanel .attendanceControls>.btn{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    height:48px!important;
    min-height:48px!important;
    box-sizing:border-box!important;
  }
  html.pe87Ipad .clubAttendancePanel #clubAttDate{
    padding-left:8px!important;
    padding-right:8px!important;
    text-align:center!important;
  }
  html.pe87Ipad .clubAttendancePanel #clubAttDate::-webkit-date-and-time-value{
    min-width:0!important;
    text-align:center!important;
  }

  /* 스포츠클럽 출석 현황: 13개 열을 iPad 본문 폭에 맞춰 고정 */
  html.pe87Ipad .clubAttendancePanel .tableScroll{
    width:100%!important;
    max-width:100%!important;
    overflow-x:hidden!important;
  }
  html.pe87Ipad .clubAttendancePanel .clubAttendanceTable{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    table-layout:fixed!important;
    font-size:10px!important;
  }
  html.pe87Ipad .clubAttendanceTable th,
  html.pe87Ipad .clubAttendanceTable td{
    min-width:0!important;
    width:auto!important;
    padding:7px 3px!important;
    white-space:normal!important;
    overflow:hidden!important;
    overflow-wrap:anywhere!important;
    word-break:keep-all!important;
    line-height:1.25!important;
  }
  html.pe87Ipad .clubAttendanceTable th:nth-child(1){width:4%!important}
  html.pe87Ipad .clubAttendanceTable th:nth-child(2){width:6%!important}
  html.pe87Ipad .clubAttendanceTable th:nth-child(3){width:7%!important}
  html.pe87Ipad .clubAttendanceTable th:nth-child(4){width:10%!important}
  html.pe87Ipad .clubAttendanceTable th:nth-child(5){width:10%!important}
  html.pe87Ipad .clubAttendanceTable th:nth-child(6){width:18%!important}
  html.pe87Ipad .clubAttendanceTable th:nth-child(7){width:9%!important}
  html.pe87Ipad .clubAttendanceTable th:nth-child(8){width:7%!important}
  html.pe87Ipad .clubAttendanceTable th:nth-child(n+9){width:5.8%!important}
  html.pe87Ipad .clubAttendanceTable input,
  html.pe87Ipad .clubAttendanceTable select,
  html.pe87Ipad .clubAttendanceTable .attStatus,
  html.pe87Ipad .clubAttendanceTable .attMemo{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    height:40px!important;
    padding:5px 4px!important;
    font-size:10px!important;
    box-sizing:border-box!important;
  }

  /* PAPS 현황: 12개 열을 화면 안에 맞추고 내부 입력 크기를 함께 축소 */
  html.pe87Ipad #papsTableBox{
    width:100%!important;
    max-width:100%!important;
    overflow-x:hidden!important;
  }
  html.pe87Ipad #papsTableBox .pe87Paps{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    table-layout:fixed!important;
    font-size:10px!important;
  }
  html.pe87Ipad .pe87Paps th,
  html.pe87Ipad .pe87Paps td{
    min-width:0!important;
    padding:6px 2px!important;
    white-space:normal!important;
    overflow:hidden!important;
    overflow-wrap:anywhere!important;
    line-height:1.2!important;
  }
  html.pe87Ipad .pe87Paps th:nth-child(1){width:4%!important}
  html.pe87Ipad .pe87Paps th:nth-child(2){width:7%!important}
  html.pe87Ipad .pe87Paps th:nth-child(3){width:6%!important}
  html.pe87Ipad .pe87Paps th:nth-child(4){width:7%!important}
  html.pe87Ipad .pe87Paps th:nth-child(5){width:13%!important}
  html.pe87Ipad .pe87Paps th:nth-child(6){width:14%!important}
  html.pe87Ipad .pe87Paps th:nth-child(7){width:13%!important}
  html.pe87Ipad .pe87Paps th:nth-child(8){width:7%!important}
  html.pe87Ipad .pe87Paps th:nth-child(9){width:7%!important}
  html.pe87Ipad .pe87Paps th:nth-child(10){width:9%!important}
  html.pe87Ipad .pe87Paps th:nth-child(11){width:7%!important}
  html.pe87Ipad .pe87Paps th:nth-child(12){width:6%!important}
  html.pe87Ipad .pe87Paps .papsInput{
    width:100%!important;
    min-width:0!important;
    max-width:48px!important;
    height:36px!important;
    padding:3px!important;
    font-size:11px!important;
    box-sizing:border-box!important;
  }
  html.pe87Ipad .pe87Paps .dual,
  html.pe87Ipad .pe87Paps .quad{
    width:100%!important;
    max-width:104px!important;
    gap:2px!important;
  }
  html.pe87Ipad .pe87Paps .genderToggle{
    max-width:100%!important;
    padding:4px 5px!important;
    font-size:10px!important;
    white-space:nowrap!important;
  }
  html.pe87Ipad .pe87Paps .papsGrade,
  html.pe87Ipad .pe87Paps .overallGradeBadge{
    max-width:100%!important;
    padding:3px 4px!important;
    font-size:9px!important;
    white-space:normal!important;
    line-height:1.15!important;
  }
  html.pe87Ipad .pe87Paps .bmiValue,
  html.pe87Ipad .pe87Paps .summaryScore,
  html.pe87Ipad .pe87Paps .summaryGrade{
    font-size:10px!important;
  }

  /* 종목별 진도표: 여섯 열을 카드 폭 안에 고정 */
  html.pe87Ipad #subjectPlanBox{
    width:100%!important;
    max-width:100%!important;
    overflow-x:hidden!important;
  }
  html.pe87Ipad #subjectPlanBox .pe87SubjectPlan{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    table-layout:fixed!important;
    font-size:12px!important;
  }
  html.pe87Ipad .pe87SubjectPlan th,
  html.pe87Ipad .pe87SubjectPlan td{
    min-width:0!important;
    padding:7px 6px!important;
    white-space:normal!important;
    overflow:hidden!important;
    overflow-wrap:anywhere!important;
  }
  html.pe87Ipad .pe87SubjectPlan th:nth-child(1){width:4%!important}
  html.pe87Ipad .pe87SubjectPlan th:nth-child(2){width:6%!important}
  html.pe87Ipad .pe87SubjectPlan th:nth-child(3){width:19%!important}
  html.pe87Ipad .pe87SubjectPlan th:nth-child(4){width:21%!important}
  html.pe87Ipad .pe87SubjectPlan th:nth-child(5){width:29%!important}
  html.pe87Ipad .pe87SubjectPlan th:nth-child(6){width:21%!important}
  html.pe87Ipad .pe87SubjectPlan input,
  html.pe87Ipad .pe87SubjectPlan textarea{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    padding:7px 8px!important;
    font-size:13px!important;
    box-sizing:border-box!important;
  }
}


/* PE-Class v1.14.37 — iPad 실기기 최종 보정
 * 이 블록은 iPad 식별 클래스가 존재할 때만 적용되고, 모든 일반 PC/아이폰/갤럭시에는 적용되지 않습니다.
 * 768px iPad viewport도 포함하며, 파일을 모든 PC/모바일 스타일 뒤에서 로드해 우선순위를 보장합니다.
 */
@media (min-width:700px) and (max-width:1366px){
  html.pe87Ipad #app,
  html.pe87Ipad #app > *,
  html.pe87Ipad .panel,
  html.pe87Ipad .clubPcTopGrid,
  html.pe87Ipad .clubPcTopCard{
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }

  /* QR 출석 날짜 — Safari native date input의 intrinsic width를 강제로 카드 내부에 고정 */
  html.pe87Ipad .clubQrPanel{overflow:hidden!important}
  html.pe87Ipad .clubQrPanel .formGrid{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }
  html.pe87Ipad .clubQrPanel .formGrid label{
    display:grid!important;
    grid-template-columns:82px minmax(0,1fr)!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    overflow:hidden!important;
  }
  html.pe87Ipad .clubQrPanel #clubQrDate{
    -webkit-appearance:none!important;
    appearance:none!important;
    display:block!important;
    inline-size:0!important;
    width:0!important;
    min-inline-size:100%!important;
    min-width:100%!important;
    max-inline-size:100%!important;
    max-width:100%!important;
    height:46px!important;
    padding:0 8px!important;
    margin:0!important;
    box-sizing:border-box!important;
    font-size:16px!important;
    text-align:center!important;
    overflow:hidden!important;
  }
  html.pe87Ipad .clubQrPanel #clubQrDate::-webkit-date-and-time-value{
    min-width:0!important;
    width:100%!important;
    padding:0!important;
    text-align:center!important;
  }

  /* 출석 입력 — 날짜/시간대/조회/저장 동일 크기 */
  html.pe87Ipad .clubAttendancePanel .attendanceControls{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:12px!important;
    align-items:end!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    flex-wrap:nowrap!important;
  }
  html.pe87Ipad .clubAttendancePanel .attendanceControls > label,
  html.pe87Ipad .clubAttendancePanel .attendanceControls > .btn{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
    box-sizing:border-box!important;
  }
  html.pe87Ipad .clubAttendancePanel .attendanceControls input,
  html.pe87Ipad .clubAttendancePanel .attendanceControls select,
  html.pe87Ipad .clubAttendancePanel .attendanceControls > .btn{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    height:48px!important;
    min-height:48px!important;
    padding:0 8px!important;
    box-sizing:border-box!important;
    font-size:15px!important;
  }
  html.pe87Ipad .clubAttendancePanel #clubAttDate{
    -webkit-appearance:none!important;
    appearance:none!important;
    text-align:center!important;
  }

  /* 스포츠클럽 출석 현황 — 13열을 카드 안에 완전히 수용 */
  html.pe87Ipad .clubAttendancePanel .tableScroll{
    width:100%!important;
    max-width:100%!important;
    overflow-x:hidden!important;
    overscroll-behavior-x:none!important;
  }
  html.pe87Ipad .clubAttendancePanel table.clubAttendanceTable.dataTable{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    table-layout:fixed!important;
    border-collapse:collapse!important;
    font-size:9px!important;
  }
  html.pe87Ipad .clubAttendancePanel table.clubAttendanceTable th,
  html.pe87Ipad .clubAttendancePanel table.clubAttendanceTable td{
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    padding:6px 2px!important;
    white-space:normal!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    overflow-wrap:anywhere!important;
    word-break:break-word!important;
    line-height:1.15!important;
  }
  html.pe87Ipad .clubAttendancePanel table.clubAttendanceTable th:nth-child(1){width:4%!important}
  html.pe87Ipad .clubAttendancePanel table.clubAttendanceTable th:nth-child(2){width:6%!important}
  html.pe87Ipad .clubAttendancePanel table.clubAttendanceTable th:nth-child(3){width:8%!important}
  html.pe87Ipad .clubAttendancePanel table.clubAttendanceTable th:nth-child(4){width:9%!important}
  html.pe87Ipad .clubAttendancePanel table.clubAttendanceTable th:nth-child(5){width:10%!important}
  html.pe87Ipad .clubAttendancePanel table.clubAttendanceTable th:nth-child(6){width:17%!important}
  html.pe87Ipad .clubAttendancePanel table.clubAttendanceTable th:nth-child(7){width:8%!important}
  html.pe87Ipad .clubAttendancePanel table.clubAttendanceTable th:nth-child(8){width:7%!important}
  html.pe87Ipad .clubAttendancePanel table.clubAttendanceTable th:nth-child(n+9){width:6.2%!important}
  html.pe87Ipad .clubAttendancePanel table.clubAttendanceTable input,
  html.pe87Ipad .clubAttendancePanel table.clubAttendanceTable select,
  html.pe87Ipad .clubAttendancePanel table.clubAttendanceTable .attStatus,
  html.pe87Ipad .clubAttendancePanel table.clubAttendanceTable .attMemo{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    height:36px!important;
    padding:3px 2px!important;
    font-size:9px!important;
    box-sizing:border-box!important;
  }

  /* PAPS 상단 제목과 모든 버튼을 한 줄로 */
  html.pe87Ipad .papsDashboardHead{
    display:flex!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:8px!important;
    width:100%!important;
    min-width:0!important;
  }
  html.pe87Ipad .papsDashboardHead h2{
    flex:0 1 auto!important;
    min-width:0!important;
    margin:0!important;
    font-size:clamp(13px,1.5vw,18px)!important;
    line-height:1.2!important;
    white-space:nowrap!important;
    letter-spacing:-.5px!important;
  }
  html.pe87Ipad .papsDashboardHead > .row{
    display:flex!important;
    flex:1 1 auto!important;
    min-width:0!important;
    flex-wrap:nowrap!important;
    justify-content:flex-end!important;
    gap:5px!important;
  }
  html.pe87Ipad .papsDashboardHead > .row .btn{
    flex:1 1 0!important;
    min-width:0!important;
    max-width:none!important;
    min-height:42px!important;
    height:42px!important;
    padding:5px 6px!important;
    margin:0!important;
    font-size:clamp(9px,1vw,12px)!important;
    line-height:1.05!important;
    white-space:nowrap!important;
    letter-spacing:-.4px!important;
  }

  /* PAPS 표 — 강제 min-width를 무효화하고 12열을 화면에 맞춤 */
  html.pe87Ipad #papsTableBox.tableWrap{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    overflow-x:hidden!important;
  }
  html.pe87Ipad #papsTableBox table.pe87Paps.dataTable,
  html.pe87Ipad #papsTableBox table.papsTable{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    table-layout:fixed!important;
    font-size:9px!important;
  }
  html.pe87Ipad #papsTableBox table.pe87Paps th,
  html.pe87Ipad #papsTableBox table.pe87Paps td{
    min-width:0!important;
    max-width:none!important;
    padding:5px 2px!important;
    white-space:normal!important;
    overflow:hidden!important;
    overflow-wrap:anywhere!important;
    word-break:break-word!important;
    line-height:1.1!important;
  }
  html.pe87Ipad #papsTableBox .papsInput{
    width:100%!important;
    min-width:0!important;
    max-width:46px!important;
    height:34px!important;
    margin:1px auto!important;
    padding:2px!important;
    font-size:10px!important;
    box-sizing:border-box!important;
  }
  html.pe87Ipad #papsTableBox .dual,
  html.pe87Ipad #papsTableBox .quad{
    width:100%!important;
    min-width:0!important;
    max-width:96px!important;
    gap:2px!important;
    margin:0 auto!important;
  }
  html.pe87Ipad #papsTableBox .genderToggle{padding:3px 4px!important;font-size:9px!important}
  html.pe87Ipad #papsTableBox .papsGrade,
  html.pe87Ipad #papsTableBox .overallGradeBadge{padding:2px 3px!important;font-size:8px!important;white-space:normal!important}

  /* 종목별 진도표 — 선택 대기 표와 실제 입력 표 모두 카드 안에 고정 */
  html.pe87Ipad #subjectPlanBox,
  html.pe87Ipad #app .panel:has(> table.pe87SubjectPlan){
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    overflow-x:hidden!important;
    box-sizing:border-box!important;
  }
  html.pe87Ipad #app table.pe87SubjectPlan.dataTable{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    table-layout:fixed!important;
    font-size:11px!important;
  }
  html.pe87Ipad #app table.pe87SubjectPlan th,
  html.pe87Ipad #app table.pe87SubjectPlan td{
    min-width:0!important;
    max-width:none!important;
    padding:6px 5px!important;
    white-space:normal!important;
    overflow:hidden!important;
    overflow-wrap:anywhere!important;
    word-break:break-word!important;
    box-sizing:border-box!important;
  }
  html.pe87Ipad #app table.pe87SubjectPlan th:nth-child(1){width:4%!important}
  html.pe87Ipad #app table.pe87SubjectPlan th:nth-child(2){width:7%!important}
  html.pe87Ipad #app table.pe87SubjectPlan th:nth-child(3){width:19%!important}
  html.pe87Ipad #app table.pe87SubjectPlan th:nth-child(4){width:21%!important}
  html.pe87Ipad #app table.pe87SubjectPlan th:nth-child(5){width:29%!important}
  html.pe87Ipad #app table.pe87SubjectPlan th:nth-child(6){width:20%!important}
  html.pe87Ipad #app table.pe87SubjectPlan input,
  html.pe87Ipad #app table.pe87SubjectPlan textarea{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
    font-size:12px!important;
    padding:6px!important;
  }
}

/* 768px iPad에서 기존 모바일용 media query와 충돌하더라도 iPad 표는 PC형 압축 레이아웃을 유지 */
@media (width:768px){
  html.pe87Ipad #app .papsDashboardHead,
  html.pe87Ipad #app table.pe87SubjectPlan,
  html.pe87Ipad #app table.pe87Paps,
  html.pe87Ipad #app table.clubAttendanceTable{display:table!important}
}

/* PE-Class v1.14.38 — iPadOS 실기기 강제 적용 보정
 * pe87Ipad 판별과 별개로 iPadOS Safari의 터치 전용 CSS feature에서도 적용됩니다.
 * 769px 이상 Apple touch viewport만 대상으로 하므로 일반 PC/아이폰/갤럭시는 제외됩니다.
 */
@media (min-width:769px) and (max-width:1366px) {
@supports (-webkit-touch-callout:none) {
  /* 공통: iPad Safari 내부 요소가 부모 폭을 밀어내지 못하게 제한 */
  #app, #app > *, #app .panel, #app .tableWrap, #app .tableScroll,
  .clubPcTopGrid, .clubPcTopCard, .clubQrPanel, .clubAttendancePanel {
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }

  /* 1. QR 출석 날짜 칸 */
  .clubQrPanel { overflow:hidden!important; }
  .clubQrPanel .formGrid,
  .clubQrPanel .formGrid label {
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  .clubQrPanel .formGrid label {
    grid-template-columns:92px minmax(0,1fr)!important;
    overflow:hidden!important;
  }
  .clubQrPanel #clubQrDate {
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    inline-size:100%!important;
    min-inline-size:0!important;
    max-inline-size:100%!important;
    height:46px!important;
    min-height:46px!important;
    padding:0 6px!important;
    margin:0!important;
    box-sizing:border-box!important;
    font-size:15px!important;
    letter-spacing:-.4px!important;
    text-align:center!important;
    overflow:hidden!important;
  }
  .clubQrPanel #clubQrDate::-webkit-date-and-time-value {
    width:100%!important;
    min-width:0!important;
    padding:0!important;
    text-align:center!important;
  }

  /* 2. 출석 입력 날짜/시간대/조회/저장 동일 크기 */
  .clubAttendancePanel .attendanceControls {
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    align-items:end!important;
    gap:12px!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    flex-wrap:nowrap!important;
  }
  .clubAttendancePanel .attendanceControls > label,
  .clubAttendancePanel .attendanceControls > .btn {
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
    box-sizing:border-box!important;
  }
  .clubAttendancePanel .attendanceControls input,
  .clubAttendancePanel .attendanceControls select,
  .clubAttendancePanel .attendanceControls > .btn {
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    height:48px!important;
    min-height:48px!important;
    max-height:48px!important;
    padding:0 8px!important;
    margin:0!important;
    box-sizing:border-box!important;
    font-size:15px!important;
    line-height:48px!important;
  }
  .clubAttendancePanel #clubAttDate {
    display:block!important;
    inline-size:100%!important;
    min-inline-size:0!important;
    text-align:center!important;
  }
  .clubAttendancePanel #clubAttDate::-webkit-date-and-time-value {
    width:100%!important;
    min-width:0!important;
    padding:0!important;
    text-align:center!important;
  }

  /* 3. 학교스포츠클럽 출석 현황: 13열 전체를 카드 안에 배치 */
  .clubAttendancePanel .tableScroll {
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    overflow-x:hidden!important;
    overscroll-behavior-x:none!important;
  }
  .clubAttendancePanel table.clubAttendanceTable.dataTable {
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    table-layout:fixed!important;
    border-collapse:collapse!important;
    font-size:9px!important;
  }
  .clubAttendancePanel table.clubAttendanceTable th,
  .clubAttendancePanel table.clubAttendanceTable td {
    min-width:0!important;
    max-width:none!important;
    padding:5px 2px!important;
    white-space:normal!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    overflow-wrap:anywhere!important;
    word-break:break-word!important;
    line-height:1.1!important;
    box-sizing:border-box!important;
  }
  .clubAttendancePanel table.clubAttendanceTable th:nth-child(1),
  .clubAttendancePanel table.clubAttendanceTable td:nth-child(1){width:4%!important}
  .clubAttendancePanel table.clubAttendanceTable th:nth-child(2),
  .clubAttendancePanel table.clubAttendanceTable td:nth-child(2){width:6%!important}
  .clubAttendancePanel table.clubAttendanceTable th:nth-child(3),
  .clubAttendancePanel table.clubAttendanceTable td:nth-child(3){width:8%!important}
  .clubAttendancePanel table.clubAttendanceTable th:nth-child(4),
  .clubAttendancePanel table.clubAttendanceTable td:nth-child(4){width:9%!important}
  .clubAttendancePanel table.clubAttendanceTable th:nth-child(5),
  .clubAttendancePanel table.clubAttendanceTable td:nth-child(5){width:10%!important}
  .clubAttendancePanel table.clubAttendanceTable th:nth-child(6),
  .clubAttendancePanel table.clubAttendanceTable td:nth-child(6){width:16%!important}
  .clubAttendancePanel table.clubAttendanceTable th:nth-child(7),
  .clubAttendancePanel table.clubAttendanceTable td:nth-child(7){width:8%!important}
  .clubAttendancePanel table.clubAttendanceTable th:nth-child(8),
  .clubAttendancePanel table.clubAttendanceTable td:nth-child(8){width:7%!important}
  .clubAttendancePanel table.clubAttendanceTable th:nth-child(n+9),
  .clubAttendancePanel table.clubAttendanceTable td:nth-child(n+9){width:6.4%!important}
  .clubAttendancePanel table.clubAttendanceTable input,
  .clubAttendancePanel table.clubAttendanceTable select,
  .clubAttendancePanel table.clubAttendanceTable .attStatus,
  .clubAttendancePanel table.clubAttendanceTable .attMemo {
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    height:34px!important;
    padding:2px!important;
    font-size:9px!important;
    box-sizing:border-box!important;
  }

  /* 4. PAPS 표: 가로 스크롤 없이 전체 열 표시 */
  #papsTableBox.tableWrap {
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    overflow-x:hidden!important;
  }
  #papsTableBox table.pe87Paps.dataTable {
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    table-layout:fixed!important;
    font-size:9px!important;
  }
  #papsTableBox table.pe87Paps th,
  #papsTableBox table.pe87Paps td {
    min-width:0!important;
    max-width:none!important;
    padding:4px 2px!important;
    white-space:normal!important;
    overflow:hidden!important;
    overflow-wrap:anywhere!important;
    word-break:break-word!important;
    line-height:1.08!important;
    box-sizing:border-box!important;
  }
  #papsTableBox table.pe87Paps th:nth-child(1),#papsTableBox table.pe87Paps td:nth-child(1){width:4.5%!important}
  #papsTableBox table.pe87Paps th:nth-child(2),#papsTableBox table.pe87Paps td:nth-child(2){width:7%!important}
  #papsTableBox table.pe87Paps th:nth-child(3),#papsTableBox table.pe87Paps td:nth-child(3){width:7%!important}
  #papsTableBox table.pe87Paps th:nth-child(4),#papsTableBox table.pe87Paps td:nth-child(4){width:10.5%!important}
  #papsTableBox table.pe87Paps th:nth-child(5),#papsTableBox table.pe87Paps td:nth-child(5){width:17%!important}
  #papsTableBox table.pe87Paps th:nth-child(6),#papsTableBox table.pe87Paps td:nth-child(6){width:17%!important}
  #papsTableBox table.pe87Paps th:nth-child(7),#papsTableBox table.pe87Paps td:nth-child(7){width:17%!important}
  #papsTableBox table.pe87Paps th:nth-child(8),#papsTableBox table.pe87Paps td:nth-child(8){width:8%!important}
  #papsTableBox table.pe87Paps th:nth-child(9),#papsTableBox table.pe87Paps td:nth-child(9){width:8%!important}
  #papsTableBox table.pe87Paps th:nth-child(10),#papsTableBox table.pe87Paps td:nth-child(10){width:8%!important}
  #papsTableBox table.pe87Paps th:nth-child(11),#papsTableBox table.pe87Paps td:nth-child(11){width:8%!important}
  #papsTableBox table.pe87Paps th:nth-child(12),#papsTableBox table.pe87Paps td:nth-child(12){width:8%!important}
  #papsTableBox .papsInput {
    width:100%!important;
    min-width:0!important;
    max-width:44px!important;
    height:32px!important;
    padding:1px!important;
    margin:1px auto!important;
    font-size:10px!important;
    box-sizing:border-box!important;
  }
  #papsTableBox .dual,
  #papsTableBox .quad {
    width:100%!important;
    min-width:0!important;
    max-width:92px!important;
    gap:2px!important;
    margin:0 auto!important;
  }
  #papsTableBox .genderToggle {padding:2px 3px!important;font-size:8px!important}
  #papsTableBox .papsGrade,
  #papsTableBox .overallGradeBadge {padding:2px 2px!important;font-size:7px!important;white-space:normal!important}

  /* 5·6. 종목별 진도표 및 선택 대기: 마지막 열까지 카드 안에 고정 */
  #subjectPlanBox,
  #app .panel:has(> table.pe87SubjectPlan) {
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    overflow-x:hidden!important;
    box-sizing:border-box!important;
  }
  #app table.pe87SubjectPlan.dataTable {
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    table-layout:fixed!important;
    font-size:11px!important;
  }
  #app table.pe87SubjectPlan th,
  #app table.pe87SubjectPlan td {
    min-width:0!important;
    max-width:none!important;
    padding:6px 4px!important;
    white-space:normal!important;
    overflow:hidden!important;
    overflow-wrap:anywhere!important;
    word-break:break-word!important;
    box-sizing:border-box!important;
  }
  #app table.pe87SubjectPlan th:nth-child(1),#app table.pe87SubjectPlan td:nth-child(1){width:4%!important}
  #app table.pe87SubjectPlan th:nth-child(2),#app table.pe87SubjectPlan td:nth-child(2){width:7%!important}
  #app table.pe87SubjectPlan th:nth-child(3),#app table.pe87SubjectPlan td:nth-child(3){width:19%!important}
  #app table.pe87SubjectPlan th:nth-child(4),#app table.pe87SubjectPlan td:nth-child(4){width:20%!important}
  #app table.pe87SubjectPlan th:nth-child(5),#app table.pe87SubjectPlan td:nth-child(5){width:29%!important}
  #app table.pe87SubjectPlan th:nth-child(6),#app table.pe87SubjectPlan td:nth-child(6){width:21%!important}
  #app table.pe87SubjectPlan input,
  #app table.pe87SubjectPlan textarea {
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
    padding:5px!important;
    font-size:11px!important;
  }

  /* 7. 활성 PAPS 대시보드 제목과 모든 제어 버튼 한 줄 */
  #app:has(#papsTableBox) > .pe87PageHead {
    display:grid!important;
    grid-template-columns:minmax(250px,1fr) minmax(0,2.35fr)!important;
    align-items:center!important;
    gap:8px!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  #app:has(#papsTableBox) > .pe87PageHead > h2 {
    min-width:0!important;
    margin:0!important;
    font-size:clamp(12px,1.35vw,17px)!important;
    line-height:1.15!important;
    white-space:nowrap!important;
    letter-spacing:-.6px!important;
  }
  #app:has(#papsTableBox) > .pe87PageHead > .row {
    display:grid!important;
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    align-items:center!important;
    gap:4px!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    flex-wrap:nowrap!important;
  }
  #app:has(#papsTableBox) > .pe87PageHead > .row > .btn {
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    height:40px!important;
    min-height:40px!important;
    padding:3px 3px!important;
    margin:0!important;
    font-size:clamp(8px,.85vw,11px)!important;
    line-height:1.05!important;
    white-space:nowrap!important;
    letter-spacing:-.5px!important;
    box-sizing:border-box!important;
  }
}
}

/* v1.14.40 — iPad Safari 학교스포츠클럽 날짜 입력칸 실제 표시 보정 */
html.pe87Ipad #clubQrDate::-webkit-date-and-time-value,
html.pe87IpadRuntime #clubQrDate::-webkit-date-and-time-value,
html.pe87Ipad #clubAttDate::-webkit-date-and-time-value,
html.pe87IpadRuntime #clubAttDate::-webkit-date-and-time-value{
  text-align:center!important;
  min-width:0!important;
  padding:0!important;
}
html.pe87Ipad #clubQrDate::-webkit-calendar-picker-indicator,
html.pe87IpadRuntime #clubQrDate::-webkit-calendar-picker-indicator,
html.pe87Ipad #clubAttDate::-webkit-calendar-picker-indicator,
html.pe87IpadRuntime #clubAttDate::-webkit-calendar-picker-indicator{
  margin:0!important;
  padding:2px!important;
}

/* v1.14.57 — iPad 부서 명단: 2자리 반·번호 보존, 관리 버튼 아이콘화 */
html.pe87Ipad .clubMemberPanel .clubMemberTable col.clubColSequence,
html.pe87IpadRuntime .clubMemberPanel .clubMemberTable col.clubColSequence{width:7%!important}
html.pe87Ipad .clubMemberPanel .clubMemberTable col.clubColGrade,
html.pe87IpadRuntime .clubMemberPanel .clubMemberTable col.clubColGrade{width:8%!important}
html.pe87Ipad .clubMemberPanel .clubMemberTable col.clubColClass,
html.pe87IpadRuntime .clubMemberPanel .clubMemberTable col.clubColClass{width:11%!important}
html.pe87Ipad .clubMemberPanel .clubMemberTable col.clubColNumber,
html.pe87IpadRuntime .clubMemberPanel .clubMemberTable col.clubColNumber{width:12%!important}
html.pe87Ipad .clubMemberPanel .clubMemberTable col.clubColName,
html.pe87IpadRuntime .clubMemberPanel .clubMemberTable col.clubColName{width:32%!important}
html.pe87Ipad .clubMemberPanel .clubMemberTable col.clubColGender,
html.pe87IpadRuntime .clubMemberPanel .clubMemberTable col.clubColGender{width:9%!important}
html.pe87Ipad .clubMemberPanel .clubMemberTable col.clubColManage,
html.pe87IpadRuntime .clubMemberPanel .clubMemberTable col.clubColManage{width:21%!important}
html.pe87Ipad .clubMemberPanel .clubMemberTable th,
html.pe87Ipad .clubMemberPanel .clubMemberTable td,
html.pe87IpadRuntime .clubMemberPanel .clubMemberTable th,
html.pe87IpadRuntime .clubMemberPanel .clubMemberTable td{overflow:visible!important;text-overflow:clip!important;white-space:nowrap!important;padding-left:2px!important;padding-right:2px!important}
html.pe87Ipad .clubMemberPanel .clubMemberActions,
html.pe87IpadRuntime .clubMemberPanel .clubMemberActions{display:flex!important;justify-content:center!important;gap:3px!important}
html.pe87Ipad .clubMemberPanel .clubMemberTable .clubMemberEdit,
html.pe87Ipad .clubMemberPanel .clubMemberTable .clubMemberDelete,
html.pe87IpadRuntime .clubMemberPanel .clubMemberTable .clubMemberEdit,
html.pe87IpadRuntime .clubMemberPanel .clubMemberTable .clubMemberDelete{
  width:28px!important;
  min-width:28px!important;
  max-width:28px!important;
  height:28px!important;
  min-height:28px!important;
  padding:0!important;
  font-size:0!important;
  line-height:1!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:7px!important;
}
html.pe87Ipad .clubMemberPanel .clubMemberTable .clubMemberEdit::before,
html.pe87IpadRuntime .clubMemberPanel .clubMemberTable .clubMemberEdit::before{content:'✎';font-size:15px!important;font-weight:900}
html.pe87Ipad .clubMemberPanel .clubMemberTable .clubMemberDelete::before,
html.pe87IpadRuntime .clubMemberPanel .clubMemberTable .clubMemberDelete::before{content:'🗑';font-size:14px!important}

/* v1.15.6 — iPad 학교스포츠클럽 명단 카드와 학생 표 균형 조정 */
@media (min-width:769px) and (max-width:1366px){
  html.pe87Ipad .clubPcTopGrid,
  html.pe87IpadRuntime .clubPcTopGrid{
    grid-template-columns:minmax(0,1.08fr) minmax(270px,.92fr)!important;
  }
  html.pe87Ipad .clubPcTopGrid>.clubDepartmentPanel,
  html.pe87IpadRuntime .clubPcTopGrid>.clubDepartmentPanel{grid-column:1!important;grid-row:1!important}
  html.pe87Ipad .clubPcTopGrid>.clubQrPanel,
  html.pe87IpadRuntime .clubPcTopGrid>.clubQrPanel{grid-column:2!important;grid-row:1!important}
  html.pe87Ipad .clubPcTopGrid>.clubMemberPanel,
  html.pe87IpadRuntime .clubPcTopGrid>.clubMemberPanel{
    grid-column:1 / -1!important;
    grid-row:2!important;
    width:100%!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  html.pe87Ipad .clubMemberPanel .clubMemberTableWrap,
  html.pe87IpadRuntime .clubMemberPanel .clubMemberTableWrap{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    overflow-x:hidden!important;
  }
  html.pe87Ipad .clubMemberPanel .clubMemberTable,
  html.pe87IpadRuntime .clubMemberPanel .clubMemberTable{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    table-layout:fixed!important;
  }
  html.pe87Ipad .clubMemberPanel .clubMemberTable col.clubColSequence,
  html.pe87IpadRuntime .clubMemberPanel .clubMemberTable col.clubColSequence{width:8%!important}
  html.pe87Ipad .clubMemberPanel .clubMemberTable col.clubColGrade,
  html.pe87IpadRuntime .clubMemberPanel .clubMemberTable col.clubColGrade{width:8%!important}
  html.pe87Ipad .clubMemberPanel .clubMemberTable col.clubColClass,
  html.pe87IpadRuntime .clubMemberPanel .clubMemberTable col.clubColClass{width:9%!important}
  html.pe87Ipad .clubMemberPanel .clubMemberTable col.clubColNumber,
  html.pe87IpadRuntime .clubMemberPanel .clubMemberTable col.clubColNumber{width:10%!important}
  html.pe87Ipad .clubMemberPanel .clubMemberTable col.clubColName,
  html.pe87IpadRuntime .clubMemberPanel .clubMemberTable col.clubColName{width:31%!important}
  html.pe87Ipad .clubMemberPanel .clubMemberTable col.clubColGender,
  html.pe87IpadRuntime .clubMemberPanel .clubMemberTable col.clubColGender{width:10%!important}
  html.pe87Ipad .clubMemberPanel .clubMemberTable col.clubColManage,
  html.pe87IpadRuntime .clubMemberPanel .clubMemberTable col.clubColManage{width:24%!important}
  html.pe87Ipad .clubMemberPanel .clubMemberTable th,
  html.pe87Ipad .clubMemberPanel .clubMemberTable td,
  html.pe87IpadRuntime .clubMemberPanel .clubMemberTable th,
  html.pe87IpadRuntime .clubMemberPanel .clubMemberTable td{
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    padding:8px 4px!important;
    box-sizing:border-box!important;
  }
  html.pe87Ipad .clubMemberPanel .clubMemberTable th,
  html.pe87IpadRuntime .clubMemberPanel .clubMemberTable th{font-size:12px!important;letter-spacing:0!important}
  html.pe87Ipad .clubMemberPanel .clubMemberTable td,
  html.pe87IpadRuntime .clubMemberPanel .clubMemberTable td{font-size:13px!important}
  html.pe87Ipad .clubMemberPanel .clubMemberActions,
  html.pe87IpadRuntime .clubMemberPanel .clubMemberActions{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:8px!important;
    width:100%!important;
  }
  html.pe87Ipad .clubMemberPanel .clubMemberTable .clubMemberEdit,
  html.pe87Ipad .clubMemberPanel .clubMemberTable .clubMemberDelete,
  html.pe87IpadRuntime .clubMemberPanel .clubMemberTable .clubMemberEdit,
  html.pe87IpadRuntime .clubMemberPanel .clubMemberTable .clubMemberDelete{
    width:34px!important;
    min-width:34px!important;
    max-width:34px!important;
    height:34px!important;
    min-height:34px!important;
    border-radius:9px!important;
  }
  html.pe87Ipad .clubMemberPanel .clubMemberTable .clubMemberEdit::before,
  html.pe87IpadRuntime .clubMemberPanel .clubMemberTable .clubMemberEdit::before{font-size:16px!important}
  html.pe87Ipad .clubMemberPanel .clubMemberTable .clubMemberDelete::before,
  html.pe87IpadRuntime .clubMemberPanel .clubMemberTable .clubMemberDelete::before{font-size:15px!important}
}

/* v1.15.22 — iPad QR 라벨과 입력칸 사이 여백 축소 */
@media (min-width:769px) and (max-width:1440px){
  html.pe87Ipad .clubQrPanel .formGrid>label,
  html.pe87IpadRuntime .clubQrPanel .formGrid>label{
    grid-template-columns:38px minmax(0,1fr)!important;
    gap:3px!important;
    overflow:visible!important;
  }
  html.pe87Ipad .clubQrPanel .formGrid>label>.label,
  html.pe87IpadRuntime .clubQrPanel .formGrid>label>.label{
    min-width:0!important;
    font-size:12px!important;
    letter-spacing:-.3px!important;
    white-space:nowrap!important;
  }
  html.pe87Ipad .clubQrPanel .formGrid input,
  html.pe87Ipad .clubQrPanel .formGrid select,
  html.pe87IpadRuntime .clubQrPanel .formGrid input,
  html.pe87IpadRuntime .clubQrPanel .formGrid select{
    display:block!important;
    inline-size:100%!important;
    width:100%!important;
    min-inline-size:0!important;
    min-width:0!important;
    max-inline-size:100%!important;
    max-width:100%!important;
    height:46px!important;
    box-sizing:border-box!important;
  }
  html.pe87Ipad .clubQrPanel #clubQrMember,
  html.pe87IpadRuntime .clubQrPanel #clubQrMember{
    padding-left:8px!important;
    padding-right:22px!important;
    margin:0!important;
    font-size:14px!important;
    letter-spacing:-.3px!important;
    white-space:nowrap!important;
    text-overflow:ellipsis!important;
    -webkit-appearance:none!important;
    appearance:none!important;
    background-color:#fff!important;
    background-image:linear-gradient(45deg,transparent 50%,#52677d 50%),linear-gradient(135deg,#52677d 50%,transparent 50%)!important;
    background-position:calc(100% - 12px) 50%,calc(100% - 7px) 50%!important;
    background-size:5px 5px,5px 5px!important;
    background-repeat:no-repeat!important;
  }
}

/* iPadOS가 데스크톱 식별자로 열려도 동일하게 적용되는 Safari 전용 보조 경로 */
@media (min-width:769px) and (max-width:1440px) and (hover:none) and (pointer:coarse){
  @supports (-webkit-touch-callout:none){
    .clubQrPanel .formGrid>label{
      grid-template-columns:38px minmax(0,1fr)!important;
      gap:3px!important;
      overflow:visible!important;
    }
    .clubQrPanel .formGrid>label>.label{
      min-width:0!important;
      font-size:12px!important;
      letter-spacing:-.3px!important;
      white-space:nowrap!important;
    }
    .clubQrPanel .formGrid input,
    .clubQrPanel .formGrid select{
      display:block!important;
      inline-size:100%!important;
      width:100%!important;
      min-inline-size:0!important;
      min-width:0!important;
      max-inline-size:100%!important;
      max-width:100%!important;
      height:46px!important;
      box-sizing:border-box!important;
    }
    .clubQrPanel #clubQrMember{
      padding:0 22px 0 8px!important;
      margin:0!important;
      font-size:14px!important;
      letter-spacing:-.3px!important;
      white-space:nowrap!important;
      text-overflow:ellipsis!important;
      -webkit-appearance:none!important;
      appearance:none!important;
      background-color:#fff!important;
      background-image:linear-gradient(45deg,transparent 50%,#52677d 50%),linear-gradient(135deg,#52677d 50%,transparent 50%)!important;
      background-position:calc(100% - 12px) 50%,calc(100% - 7px) 50%!important;
      background-size:5px 5px,5px 5px!important;
      background-repeat:no-repeat!important;
    }
  }
}

/* v1.15.24 final — 이전 iPad 보조 규칙보다 뒤에서 확정 */
@media (min-width:769px) and (max-width:1440px){
  html.pe87Ipad .clubQrPanel .formGrid>label,
  html.pe87IpadRuntime .clubQrPanel .formGrid>label{
    display:grid!important;
    grid-template-columns:30px minmax(0,1fr)!important;
    align-items:center!important;
    gap:2px!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    overflow:visible!important;
  }
  html.pe87Ipad .clubQrPanel .formGrid>label>.label,
  html.pe87IpadRuntime .clubQrPanel .formGrid>label>.label{
    width:30px!important;
    min-width:0!important;
    font-size:11px!important;
    letter-spacing:-.8px!important;
    line-height:1.1!important;
    white-space:nowrap!important;
  }
  html.pe87Ipad .clubQrPanel #clubQrMember,
  html.pe87IpadRuntime .clubQrPanel #clubQrMember{
    padding:0 18px 0 5px!important;
    font-size:13px!important;
    letter-spacing:-.55px!important;
    background-position:calc(100% - 10px) 50%,calc(100% - 6px) 50%!important;
    background-size:4px 4px,4px 4px!important;
  }
  html.pe87Ipad .pe87SubjectPlanPanel,
  html.pe87IpadRuntime .pe87SubjectPlanPanel,
  html.pe87Ipad .pe87ProgressPanel,
  html.pe87IpadRuntime .pe87ProgressPanel{
    padding:14px!important;
    border-color:#d8e5ef!important;
    background:linear-gradient(180deg,#fbfdff 0,#fff 120px)!important;
  }
  html.pe87Ipad #subjectPlanBox,
  html.pe87IpadRuntime #subjectPlanBox,
  html.pe87Ipad #progressTableBox,
  html.pe87IpadRuntime #progressTableBox{
    border:1px solid #d4e2ed!important;
    border-radius:14px!important;
    background:#fff!important;
    box-shadow:0 8px 22px rgba(38,75,105,.075)!important;
  }
  html.pe87Ipad #subjectPlanBox table.pe87SubjectPlan,
  html.pe87IpadRuntime #subjectPlanBox table.pe87SubjectPlan{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    border-collapse:separate!important;
    border-spacing:0!important;
    table-layout:fixed!important;
  }
  html.pe87Ipad #progressTableBox table.pe87ClassProgress,
  html.pe87IpadRuntime #progressTableBox table.pe87ClassProgress{
    min-width:1260px!important;
    border-collapse:separate!important;
    border-spacing:0!important;
    table-layout:fixed!important;
  }
  html.pe87Ipad #subjectPlanBox table.pe87SubjectPlan th,
  html.pe87IpadRuntime #subjectPlanBox table.pe87SubjectPlan th,
  html.pe87Ipad #progressTableBox table.pe87ClassProgress th,
  html.pe87IpadRuntime #progressTableBox table.pe87ClassProgress th{
    height:46px!important;
    padding:9px 6px!important;
    border-top:0!important;
    border-left:0!important;
    border-right:1px solid #d7e6f1!important;
    border-bottom:2px solid #9fd0ef!important;
    background:linear-gradient(180deg,#edf8ff,#e5f2fb)!important;
    color:#274b66!important;
    font-size:11.5px!important;
    font-weight:900!important;
  }
  html.pe87Ipad #subjectPlanBox table.pe87SubjectPlan td,
  html.pe87IpadRuntime #subjectPlanBox table.pe87SubjectPlan td,
  html.pe87Ipad #progressTableBox table.pe87ClassProgress td,
  html.pe87IpadRuntime #progressTableBox table.pe87ClassProgress td{
    height:62px!important;
    padding:7px 6px!important;
    border-top:0!important;
    border-left:0!important;
    border-right:1px solid #e3ebf2!important;
    border-bottom:1px solid #e3ebf2!important;
    background:#fff!important;
  }
  html.pe87Ipad #subjectPlanBox table.pe87SubjectPlan tbody tr:nth-child(even) td,
  html.pe87IpadRuntime #subjectPlanBox table.pe87SubjectPlan tbody tr:nth-child(even) td,
  html.pe87Ipad #progressTableBox table.pe87ClassProgress tbody tr:nth-child(even) td,
  html.pe87IpadRuntime #progressTableBox table.pe87ClassProgress tbody tr:nth-child(even) td{background:#fbfdff!important}
  html.pe87Ipad #subjectPlanBox table.pe87SubjectPlan input:not([type="checkbox"]),
  html.pe87Ipad #subjectPlanBox table.pe87SubjectPlan textarea,
  html.pe87IpadRuntime #subjectPlanBox table.pe87SubjectPlan input:not([type="checkbox"]),
  html.pe87IpadRuntime #subjectPlanBox table.pe87SubjectPlan textarea,
  html.pe87Ipad #progressTableBox table.pe87ClassProgress input:not([type="checkbox"]),
  html.pe87Ipad #progressTableBox table.pe87ClassProgress select,
  html.pe87IpadRuntime #progressTableBox table.pe87ClassProgress input:not([type="checkbox"]),
  html.pe87IpadRuntime #progressTableBox table.pe87ClassProgress select,
  html.pe87Ipad .pe87ProgressPanel .progressDateDisplay,
  html.pe87IpadRuntime .pe87ProgressPanel .progressDateDisplay{
    min-height:40px!important;
    padding:7px!important;
    border:1px solid #cfdeea!important;
    border-radius:8px!important;
    background:#f8fbfe!important;
    color:#233f55!important;
    font-size:12px!important;
  }
  html.pe87Ipad .subjectPlanActions,
  html.pe87IpadRuntime .subjectPlanActions,
  html.pe87Ipad .pe87ProgressPanel .progressActions,
  html.pe87IpadRuntime .pe87ProgressPanel .progressActions{
    display:flex!important;
    flex-direction:row!important;
    justify-content:space-between!important;
    gap:10px!important;
    margin-top:13px!important;
    padding-top:13px!important;
    border-top:1px solid #e1eaf1!important;
  }
}

@media (min-width:769px) and (max-width:1440px) and (hover:none) and (pointer:coarse){
  @supports (-webkit-touch-callout:none){
    .clubQrPanel .formGrid>label{display:grid!important;grid-template-columns:30px minmax(0,1fr)!important;gap:2px!important;width:100%!important;min-width:0!important}
    .clubQrPanel .formGrid>label>.label{width:30px!important;font-size:11px!important;letter-spacing:-.8px!important}
    .clubQrPanel #clubQrMember{padding:0 18px 0 5px!important;font-size:13px!important;letter-spacing:-.55px!important;background-position:calc(100% - 10px) 50%,calc(100% - 6px) 50%!important;background-size:4px 4px,4px 4px!important}
  }
}

/* v1.15.25 final — 모든 이전 iPad 표 규칙보다 뒤에서 카드 맞춤 확정 */
@media (min-width:769px) and (max-width:1440px){
  html.pe87Ipad #subjectPlanBox,
  html.pe87IpadRuntime #subjectPlanBox,
  html.pe87Ipad #progressTableBox,
  html.pe87IpadRuntime #progressTableBox{width:100%!important;min-width:0!important;max-width:100%!important;overflow-x:hidden!important;box-sizing:border-box!important}
  html.pe87Ipad #subjectPlanBox table.pe87SubjectPlan,
  html.pe87IpadRuntime #subjectPlanBox table.pe87SubjectPlan,
  html.pe87Ipad #progressTableBox table.pe87ClassProgress,
  html.pe87IpadRuntime #progressTableBox table.pe87ClassProgress{width:100%!important;min-width:0!important;max-width:100%!important;table-layout:fixed!important;box-sizing:border-box!important}
  html.pe87Ipad .pe87SubjectPlan .planColCheck,html.pe87IpadRuntime .pe87SubjectPlan .planColCheck{width:4%!important}
  html.pe87Ipad .pe87SubjectPlan .planColLesson,html.pe87IpadRuntime .pe87SubjectPlan .planColLesson{width:8%!important}
  html.pe87Ipad .pe87SubjectPlan .planColTopic,html.pe87IpadRuntime .pe87SubjectPlan .planColTopic{width:18%!important}
  html.pe87Ipad .pe87SubjectPlan .planColSkill,html.pe87IpadRuntime .pe87SubjectPlan .planColSkill{width:19%!important}
  html.pe87Ipad .pe87SubjectPlan .planColActivity,html.pe87IpadRuntime .pe87SubjectPlan .planColActivity{width:30%!important}
  html.pe87Ipad .pe87SubjectPlan .planColPrep,html.pe87IpadRuntime .pe87SubjectPlan .planColPrep{width:21%!important}
  html.pe87Ipad .pe87ClassProgress .progressColCheck,html.pe87IpadRuntime .pe87ClassProgress .progressColCheck{width:4%!important}
  html.pe87Ipad .pe87ClassProgress .progressColLesson,html.pe87IpadRuntime .pe87ClassProgress .progressColLesson{width:7%!important}
  html.pe87Ipad .pe87ClassProgress .progressColDate,html.pe87IpadRuntime .pe87ClassProgress .progressColDate{width:23%!important}
  html.pe87Ipad .pe87ClassProgress .progressColPeriod,html.pe87IpadRuntime .pe87ClassProgress .progressColPeriod{width:8%!important}
  html.pe87Ipad .pe87ClassProgress .progressColPlace,html.pe87IpadRuntime .pe87ClassProgress .progressColPlace{width:11%!important}
  html.pe87Ipad .pe87ClassProgress .progressColSubject,html.pe87IpadRuntime .pe87ClassProgress .progressColSubject{width:11%!important}
  html.pe87Ipad .pe87ClassProgress .progressColActivity,html.pe87IpadRuntime .pe87ClassProgress .progressColActivity{width:24%!important}
  html.pe87Ipad .pe87ClassProgress .progressColMemo,html.pe87IpadRuntime .pe87ClassProgress .progressColMemo{width:12%!important}
  html.pe87Ipad #subjectPlanBox th,html.pe87IpadRuntime #subjectPlanBox th,
  html.pe87Ipad #subjectPlanBox td,html.pe87IpadRuntime #subjectPlanBox td,
  html.pe87Ipad #progressTableBox th,html.pe87IpadRuntime #progressTableBox th,
  html.pe87Ipad #progressTableBox td,html.pe87IpadRuntime #progressTableBox td{min-width:0!important;padding-left:4px!important;padding-right:4px!important;white-space:normal!important;overflow:hidden!important;box-sizing:border-box!important}
  html.pe87Ipad #subjectPlanBox input:not([type="checkbox"]),html.pe87IpadRuntime #subjectPlanBox input:not([type="checkbox"]),
  html.pe87Ipad #subjectPlanBox textarea,html.pe87IpadRuntime #subjectPlanBox textarea,
  html.pe87Ipad #progressTableBox input:not([type="checkbox"]),html.pe87IpadRuntime #progressTableBox input:not([type="checkbox"]),
  html.pe87Ipad #progressTableBox select,html.pe87IpadRuntime #progressTableBox select{width:100%!important;min-width:0!important;max-width:100%!important;padding-left:5px!important;padding-right:5px!important;box-sizing:border-box!important}
  html.pe87Ipad .pe87ProgressPanel .dateLine,html.pe87IpadRuntime .pe87ProgressPanel .dateLine{grid-template-columns:minmax(0,1fr) 38px 42px!important;gap:3px!important;min-width:0!important}
  html.pe87Ipad .pe87ProgressPanel .progressDateDisplay,html.pe87IpadRuntime .pe87ProgressPanel .progressDateDisplay{padding:5px 2px!important;font-size:10.5px!important;letter-spacing:-.55px!important;white-space:nowrap!important}
  html.pe87Ipad .pe87ProgressPanel .dateHint,html.pe87IpadRuntime .pe87ProgressPanel .dateHint,
  html.pe87Ipad .pe87ProgressPanel .rowReset,html.pe87IpadRuntime .pe87ProgressPanel .rowReset{min-width:0!important;padding:3px 1px!important;font-size:9.5px!important;letter-spacing:-.45px!important}
  html.pe87Ipad .pe87SubjectPlanPanel .pe87SubjectPlan tbody td:nth-child(2)>b,
  html.pe87IpadRuntime .pe87SubjectPlanPanel .pe87SubjectPlan tbody td:nth-child(2)>b,
  html.pe87Ipad .pe87ProgressPanel .pe87ClassProgress tbody td:nth-child(2)>strong,
  html.pe87IpadRuntime .pe87ProgressPanel .pe87ClassProgress tbody td:nth-child(2)>strong{min-width:0!important;width:100%!important;padding:4px 2px!important;font-size:10.5px!important;box-sizing:border-box!important}
}

@media (min-width:769px) and (max-width:1440px){
  html.pe87Ipad .pe87ProgressPanel .dateLine,
  html.pe87IpadRuntime .pe87ProgressPanel .dateLine{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:3px!important}
  html.pe87Ipad .pe87ProgressPanel .progressDatePicker,
  html.pe87IpadRuntime .pe87ProgressPanel .progressDatePicker{grid-column:1 / -1!important;min-width:0!important}
  html.pe87Ipad .pe87ProgressPanel .dateHint,
  html.pe87IpadRuntime .pe87ProgressPanel .dateHint,
  html.pe87Ipad .pe87ProgressPanel .rowReset,
  html.pe87IpadRuntime .pe87ProgressPanel .rowReset{width:100%!important;box-sizing:border-box!important}
}

/* v1.15.26 final — iPad 종목별 진도표 여섯 열을 카드 안에 확정 */
@media (min-width:768px) and (max-width:1440px){
  html.pe87Ipad .pe87SubjectPlanPanel,
  html.pe87IpadRuntime .pe87SubjectPlanPanel,
  html.pe87Ipad #subjectPlanBox,
  html.pe87IpadRuntime #subjectPlanBox{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    overflow-x:hidden!important;
    box-sizing:border-box!important;
  }
  html.pe87Ipad #subjectPlanBox table.pe87SubjectPlan,
  html.pe87IpadRuntime #subjectPlanBox table.pe87SubjectPlan{
    display:table!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    table-layout:fixed!important;
    border-collapse:separate!important;
    border-spacing:0!important;
    box-sizing:border-box!important;
  }
  html.pe87Ipad .pe87SubjectPlan .planColCheck,
  html.pe87IpadRuntime .pe87SubjectPlan .planColCheck{width:5%!important}
  html.pe87Ipad .pe87SubjectPlan .planColLesson,
  html.pe87IpadRuntime .pe87SubjectPlan .planColLesson{width:9%!important}
  html.pe87Ipad .pe87SubjectPlan .planColTopic,
  html.pe87IpadRuntime .pe87SubjectPlan .planColTopic{width:18%!important}
  html.pe87Ipad .pe87SubjectPlan .planColSkill,
  html.pe87IpadRuntime .pe87SubjectPlan .planColSkill{width:20%!important}
  html.pe87Ipad .pe87SubjectPlan .planColActivity,
  html.pe87IpadRuntime .pe87SubjectPlan .planColActivity{width:29%!important}
  html.pe87Ipad .pe87SubjectPlan .planColPrep,
  html.pe87IpadRuntime .pe87SubjectPlan .planColPrep{width:19%!important}
  html.pe87Ipad #subjectPlanBox table.pe87SubjectPlan th,
  html.pe87IpadRuntime #subjectPlanBox table.pe87SubjectPlan th,
  html.pe87Ipad #subjectPlanBox table.pe87SubjectPlan td,
  html.pe87IpadRuntime #subjectPlanBox table.pe87SubjectPlan td{
    min-width:0!important;
    max-width:none!important;
    padding:7px 5px!important;
    white-space:normal!important;
    overflow-wrap:break-word!important;
    word-break:keep-all!important;
    box-sizing:border-box!important;
  }
  html.pe87Ipad #subjectPlanBox table.pe87SubjectPlan th,
  html.pe87IpadRuntime #subjectPlanBox table.pe87SubjectPlan th{
    font-size:12px!important;
    line-height:1.3!important;
  }
  html.pe87Ipad #subjectPlanBox table.pe87SubjectPlan input:not([type="checkbox"]),
  html.pe87IpadRuntime #subjectPlanBox table.pe87SubjectPlan input:not([type="checkbox"]),
  html.pe87Ipad #subjectPlanBox table.pe87SubjectPlan textarea,
  html.pe87IpadRuntime #subjectPlanBox table.pe87SubjectPlan textarea{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    padding:7px 6px!important;
    font-size:13px!important;
    line-height:1.35!important;
    box-sizing:border-box!important;
  }
  html.pe87Ipad #subjectPlanBox table.pe87SubjectPlan textarea,
  html.pe87IpadRuntime #subjectPlanBox table.pe87SubjectPlan textarea{height:58px!important;min-height:58px!important;resize:vertical!important}
  html.pe87Ipad .pe87SubjectPlanPanel .pe87SubjectPlan tbody td:nth-child(2)>b,
  html.pe87IpadRuntime .pe87SubjectPlanPanel .pe87SubjectPlan tbody td:nth-child(2)>b{
    width:100%!important;
    min-width:0!important;
    padding:5px 2px!important;
    font-size:11px!important;
    box-sizing:border-box!important;
  }
}

@media (min-width:769px) and (max-width:1440px) and (hover:none) and (pointer:coarse){
  @supports (-webkit-touch-callout:none){
    #subjectPlanBox{width:100%!important;min-width:0!important;max-width:100%!important;overflow-x:hidden!important;box-sizing:border-box!important}
    #subjectPlanBox table.pe87SubjectPlan{display:table!important;width:100%!important;min-width:0!important;max-width:100%!important;table-layout:fixed!important;box-sizing:border-box!important}
    .pe87SubjectPlan .planColCheck{width:5%!important}.pe87SubjectPlan .planColLesson{width:9%!important}.pe87SubjectPlan .planColTopic{width:18%!important}.pe87SubjectPlan .planColSkill{width:20%!important}.pe87SubjectPlan .planColActivity{width:29%!important}.pe87SubjectPlan .planColPrep{width:19%!important}
    #subjectPlanBox table.pe87SubjectPlan th,#subjectPlanBox table.pe87SubjectPlan td{min-width:0!important;max-width:none!important;padding:7px 5px!important;white-space:normal!important;overflow-wrap:break-word!important;word-break:keep-all!important;box-sizing:border-box!important}
    #subjectPlanBox table.pe87SubjectPlan input:not([type="checkbox"]),#subjectPlanBox table.pe87SubjectPlan textarea{display:block!important;width:100%!important;min-width:0!important;max-width:100%!important;padding:7px 6px!important;font-size:13px!important;line-height:1.35!important;box-sizing:border-box!important}
  }
}

/* v1.15.27 absolute final — iPad 보고 해상도와 포인터 종류에 무관한 종목표 실제 폭 */
@media (min-width:769px){
  html.pe87Ipad .pe87SubjectPlanPanel,
  html.pe87IpadRuntime .pe87SubjectPlanPanel,
  html.pe87Ipad #subjectPlanBox,
  html.pe87IpadRuntime #subjectPlanBox{display:block!important;width:100%!important;min-width:0!important;max-width:100%!important;overflow-x:hidden!important;box-sizing:border-box!important}
  html.pe87Ipad #subjectPlanBox table.pe87SubjectPlan,
  html.pe87IpadRuntime #subjectPlanBox table.pe87SubjectPlan{display:table!important;width:100%!important;min-width:0!important;max-width:100%!important;table-layout:fixed!important;box-sizing:border-box!important}
  html.pe87Ipad .pe87SubjectPlan .planColCheck,html.pe87IpadRuntime .pe87SubjectPlan .planColCheck{width:5%!important}
  html.pe87Ipad .pe87SubjectPlan .planColLesson,html.pe87IpadRuntime .pe87SubjectPlan .planColLesson{width:9%!important}
  html.pe87Ipad .pe87SubjectPlan .planColTopic,html.pe87IpadRuntime .pe87SubjectPlan .planColTopic{width:18%!important}
  html.pe87Ipad .pe87SubjectPlan .planColSkill,html.pe87IpadRuntime .pe87SubjectPlan .planColSkill{width:20%!important}
  html.pe87Ipad .pe87SubjectPlan .planColActivity,html.pe87IpadRuntime .pe87SubjectPlan .planColActivity{width:29%!important}
  html.pe87Ipad .pe87SubjectPlan .planColPrep,html.pe87IpadRuntime .pe87SubjectPlan .planColPrep{width:19%!important}
}
@media (min-width:769px) and (max-width:2200px) and (any-pointer:coarse){
  @supports (-webkit-touch-callout:none){
    #subjectPlanBox{display:block!important;width:100%!important;min-width:0!important;max-width:100%!important;overflow-x:hidden!important;box-sizing:border-box!important}
    #subjectPlanBox table.pe87SubjectPlan{display:table!important;width:100%!important;min-width:0!important;max-width:100%!important;table-layout:fixed!important;box-sizing:border-box!important}
  }
}

/* v1.15.37 final cascade — PC·iPad BMI, iPad 모달·PAPS 입력 정렬 */
@media (min-width:769px){
  html #papsTableBox table.pe87Paps thead tr th:nth-child(10),
  html.pe87Ipad #papsTableBox table.pe87Paps thead tr th:nth-child(10),
  html.pe87IpadRuntime #papsTableBox table.pe87Paps thead tr th:nth-child(10){
    white-space:nowrap!important;
    word-break:keep-all!important;
    overflow-wrap:normal!important;
  }
  html.pe87Ipad #papsTableBox .pe87Paps .dual.papsPairedInputs,
  html.pe87IpadRuntime #papsTableBox .pe87Paps .dual.papsPairedInputs{
    display:inline-grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    width:min(100%,100px)!important;
    min-width:0!important;
    max-width:100px!important;
    gap:3px!important;
    margin:0 auto!important;
    vertical-align:middle!important;
    justify-content:center!important;
    justify-items:stretch!important;
  }
  html.pe87Ipad #papsTableBox .pe87Paps .quad.papsGripInputs,
  html.pe87IpadRuntime #papsTableBox .pe87Paps .quad.papsGripInputs{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    gap:2px!important;
    margin:0 auto!important;
    box-sizing:border-box!important;
  }
  html.pe87Ipad #papsTableBox .pe87Paps .papsPairedInputs .papsInput,
  html.pe87IpadRuntime #papsTableBox .pe87Paps .papsPairedInputs .papsInput,
  html.pe87Ipad #papsTableBox .pe87Paps .papsGripInputs .papsInput,
  html.pe87IpadRuntime #papsTableBox .pe87Paps .papsGripInputs .papsInput{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    height:34px!important;
    margin:0!important;
    padding:2px 1px!important;
    font-size:9.5px!important;
    box-sizing:border-box!important;
  }

  html.pe87Ipad body.calendarModalPageLocked,
  html.pe87IpadRuntime body.calendarModalPageLocked{
    position:fixed!important;
    left:0!important;
    right:0!important;
    width:100%!important;
    overflow:hidden!important;
    overscroll-behavior:none!important;
  }
  html.pe87Ipad .calendarAddCModal .calendarAddDialog,
  html.pe87IpadRuntime .calendarAddCModal .calendarAddDialog{
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch;
  }
  html.pe87Ipad .calendarAddCModal .calendarAddHeader,
  html.pe87IpadRuntime .calendarAddCModal .calendarAddHeader{
    position:sticky!important;
    top:0!important;
    z-index:8!important;
  }
}

/* v1.15.40 — iPad PAPS 앉아윗몸·멀리뛰기 입력쌍 밀착 중앙정렬
 * PC·Fold·모바일은 기존 규칙을 유지하고 iPad의 두 입력칸만 고정 묶음으로 배치합니다. */
@media (min-width:769px){
  html.pe87Ipad #papsTableBox table.pe87Paps tbody tr td:nth-child(5)>.dual.papsPairedInputs,
  html.pe87Ipad #papsTableBox table.pe87Paps tbody tr td:nth-child(7)>.dual.papsPairedInputs,
  html.pe87IpadRuntime #papsTableBox table.pe87Paps tbody tr td:nth-child(5)>.dual.papsPairedInputs,
  html.pe87IpadRuntime #papsTableBox table.pe87Paps tbody tr td:nth-child(7)>.dual.papsPairedInputs{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    width:min(100%,100px)!important;
    min-width:0!important;
    max-width:100px!important;
    gap:0 4px!important;
    margin:0 auto!important;
    justify-content:center!important;
    justify-items:stretch!important;
    position:static!important;
    inset:auto!important;
    float:none!important;
    transform:none!important;
    box-sizing:border-box!important;
  }
  html.pe87Ipad #papsTableBox table.pe87Paps tbody tr td:nth-child(5)>.papsPairedInputs>.papsInput,
  html.pe87Ipad #papsTableBox table.pe87Paps tbody tr td:nth-child(7)>.papsPairedInputs>.papsInput,
  html.pe87IpadRuntime #papsTableBox table.pe87Paps tbody tr td:nth-child(5)>.papsPairedInputs>.papsInput,
  html.pe87IpadRuntime #papsTableBox table.pe87Paps tbody tr td:nth-child(7)>.papsPairedInputs>.papsInput{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    margin:0!important;
    text-align:center!important;
    box-sizing:border-box!important;
  }
}
