*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:#f4f6f8;color:#111}.topHeader{position:relative;width:100%;height:112px;overflow:hidden;background:#2f2373;color:#fff;box-shadow:0 2px 10px rgba(0,0,0,.12)}.bannerImg{display:block;width:100%;height:100%;object-fit:cover;object-position:left center}.topHeaderActions{position:absolute;right:24px;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:12px}.bannerBtn{background:#fff;color:#2f2373;border:1px solid rgba(255,255,255,.65);box-shadow:0 4px 12px rgba(0,0,0,.14)}.pageHeading{max-width:1180px;margin:18px auto 0;padding:0 6px}.pageHeadingInner{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.pageHeading h1{margin:0;font-size:40px;line-height:1.1;color:#1f2d5a;font-weight:800}.pageHeading p{margin:6px 0 0;color:#52606d;font-size:14px}main{padding-bottom:24px}h1{margin:0;font-size:24px}h2{margin-top:0;color:#263766}.card,.panel{background:white;margin:20px auto;padding:18px;border-radius:12px;box-shadow:0 4px 14px rgba(0,0,0,.08);max-width:1180px}label{display:flex;flex-direction:column;font-weight:700;font-size:13px;gap:6px}.inline{display:flex;flex-direction:row;align-items:center;gap:8px;font-weight:700}input,select,textarea{padding:10px;border:1px solid #cfd6dd;border-radius:8px;background:white;width:100%}button{border:0;background:#2f2373;color:white;border-radius:8px;padding:10px 14px;cursor:pointer;font-weight:700}button:hover{opacity:.92}button.secondary{background:#64748b}nav{display:flex;gap:10px;flex-wrap:wrap;margin:0 auto 10px;max-width:1180px}nav button{background:#31406f}.grid{display:grid;gap:12px}.formGrid{align-items:start;justify-items:stretch}.grid.two{grid-template-columns:repeat(2,1fr)}.grid.three{grid-template-columns:repeat(3,1fr)}.grid.four{grid-template-columns:repeat(4,1fr)}.wide{grid-column:1/-1}.hidden{display:none!important}.hint{color:#52606d;font-size:13px}.tabs{display:flex;gap:8px;margin-bottom:15px;flex-wrap:wrap}.tableWrap{overflow:auto}table{width:100%;border-collapse:collapse;background:white;margin-top:12px}th,td{border:1px solid #d9dde3;padding:8px;text-align:left;font-size:13px}th{background:#f0f2f5}.sheet th{font-weight:800;text-align:center}.neg{color:#d10000;font-weight:800}.pos{color:#0000c8;font-weight:800}.studentBlock{font-size:18px;font-weight:800}.pill{display:inline-block;border-radius:999px;background:#eef2f6;padding:4px 8px}.actions button{padding:6px 8px;margin:2px}.danger{background:#b00020}.recordLayout{display:flex;align-items:flex-start;gap:18px}.recordFields{flex:1 1 auto;min-width:0}.formGroup{border:1px solid #d9dde3;border-radius:12px;margin:0 0 14px;padding:14px;background:#fbfcfd}.formGroup legend{font-weight:800;color:#2f2373;padding:0 8px}.studentPickerPanel{flex:0 0 25%;max-width:25%;border:1px solid #d9dde3;border-radius:12px;padding:12px;background:#fbfcfd;box-shadow:inset 0 1px 0 rgba(255,255,255,.6)}.studentPickerHead{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;gap:12px}.checkboxList{border:1px solid #cfd6dd;border-radius:8px;padding:8px;max-height:360px;overflow:auto;background:#fff}.checkRow{display:grid;grid-template-columns:24px 1fr;align-items:center;padding:7px 4px;border-bottom:1px solid #eef2f6;font-size:12px;font-weight:600}.checkRow:last-child{border-bottom:0}.checkRow input{width:auto}.modalBackdrop{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;padding:20px;z-index:1000}.modal{background:#fff;border-radius:12px;padding:18px;width:min(560px,96vw);max-height:88vh;overflow:auto;box-shadow:0 20px 60px rgba(0,0,0,.25)}.modal h3{margin-top:0}.modal form{display:grid;gap:12px}.modalActions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.modalMessage{line-height:1.5;color:#172033;white-space:pre-wrap}.fileInput{background:#f8fafc}.reportBlocks{display:grid;grid-template-columns:1fr;gap:12px}.detailColumns{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.studentProfileCard{display:flex;gap:18px;align-items:flex-start;border:1px solid #d9dde3;border-radius:12px;padding:14px;background:#fbfcfd;margin-top:14px}.studentPhoto{width:170px;height:190px;border:1px solid #cfd6dd;border-radius:12px;background:#eef2f6;display:flex;align-items:center;justify-content:center;overflow:hidden;color:#52606d;font-weight:700}.studentPhoto img{width:100%;height:100%;object-fit:cover}.studentInfo h3{font-size:24px;margin:0 0 8px;color:#1f2d5a}.thumb{width:52px;height:52px;object-fit:cover;border-radius:8px;border:1px solid #d9dde3}@media(max-width:900px){.grid.two,.grid.three,.grid.four{grid-template-columns:1fr}.recordLayout,.studentProfileCard{flex-direction:column}.detailColumns{grid-template-columns:1fr}.studentPickerPanel{max-width:100%;width:100%;flex-basis:auto}.topHeader{height:92px}.topHeaderActions{right:12px}.pageHeading{margin-top:14px;padding:0 16px}.pageHeading h1{font-size:30px}.studentPhoto{width:140px;height:160px}}@media print{body{background:white}.topHeader,.pageHeading,nav,#loginCard,#passwordChangeCard,.panel>h2,.panel>.grid,.panel>.reportBlocks,.panel>button,.tabs,#admin,#booking,#viewer,#studentDetail{display:none!important}.panel{box-shadow:none;margin:0;padding:0;max-width:none}#report{display:block!important}#printArea{display:block!important}th,td{font-size:11px;padding:5px}}


/* v8 layout alignment and spacing */
.card,.panel{margin-top:24px;margin-bottom:24px;padding:22px}
.formGroup{margin:0 0 22px 0;padding:16px 18px 18px;border:1px solid #d9dde3;border-radius:12px;background:#fbfcff}
.formGroup legend{padding:0 8px;font-weight:800;color:#263766}
.formGrid{row-gap:16px;column-gap:16px}
.formGrid button{align-self:end;min-height:42px;width:max-content;max-width:100%}
button.smallBtn{padding:6px 9px;font-size:12px;min-height:auto}
nav{margin-top:18px;margin-bottom:18px}
.panel h3{margin-top:24px;margin-bottom:12px}
input,select,textarea{min-height:42px}
.studentPickerPanel{padding:14px}
.selectedCountBar{display:flex;align-items:center;justify-content:center;padding:10px;margin-bottom:10px;border-radius:8px;background:#eef2ff;color:#2f2373;font-size:15px}
.studentPickerHead{margin-top:8px;margin-bottom:8px}
.studentPickerHead .inline{white-space:nowrap}
#studentCount{display:block;margin-bottom:8px}
.actions{white-space:nowrap}
.reportBlocks{display:grid;gap:18px}
@media(max-width:900px){.formGrid button{width:100%}.studentPickerHead{align-items:flex-start;flex-direction:column}.selectedCountBar{justify-content:flex-start}}


/* v10 layout refinements */
.passwordWrap{display:flex;align-items:center;gap:8px;width:100%}
.passwordWrap input{flex:1}
.iconBtn{white-space:nowrap;background:#eef2ff;color:#2f2373;border:1px solid #c7d2fe;padding:10px 12px}
.linkBtn{background:transparent;color:#2f2373;text-decoration:underline;padding:10px 0}
.buttonRow{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:10px}
.staffOnly,.staffAdminOnly,.parentOnly{display:none}
.summaryTabs{display:grid;grid-template-columns:1fr 1.25fr;gap:18px;align-items:start;margin-top:16px}
.parentCards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;margin-top:16px}
.parentWardCard{border:1px solid #d9dde3;border-radius:12px;padding:14px;background:#fbfcfd}
.parentWardHead{display:flex;gap:12px;align-items:center;margin-bottom:10px}
.parentWardPhoto{width:76px;height:76px;border-radius:12px;background:#eef2f6;display:flex;align-items:center;justify-content:center;overflow:hidden;font-size:12px;color:#52606d}
.parentWardPhoto img{width:100%;height:100%;object-fit:cover}
.metricRow{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0}
.metric{border-radius:10px;background:white;border:1px solid #e5e7eb;padding:10px;text-align:center}
.metric b{display:block;font-size:18px}
.rankBadge{display:inline-block;padding:5px 9px;border-radius:999px;background:#2f2373;color:white;font-weight:800}
.emptyState{padding:18px;border:1px dashed #cfd6dd;border-radius:12px;background:#fbfcfd;color:#52606d;margin-top:14px}
.formGrid button{align-self:end;min-height:42px}
.card,.panel{margin-top:22px;margin-bottom:22px}
.formGroup{margin-top:14px;margin-bottom:20px;padding:18px}
@media(max-width:900px){.summaryTabs{grid-template-columns:1fr}.metricRow{grid-template-columns:1fr}}

.sessionBlock{border:1px solid #d9dde3;border-radius:10px;padding:12px;margin:12px 0;background:#fbfcfd}.starGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-bottom:16px}.starCard{display:flex;gap:10px;align-items:center;border:1px solid #d9dde3;border-radius:12px;padding:10px;background:#fff}.studentPhoto.small{width:70px;height:70px}.voteBox{border:1px solid #f59e0b;background:#fffbeb;border-radius:10px;padding:12px;margin:10px 0}.importResult{white-space:pre-wrap;background:#f8fafc;border:1px solid #cfd6dd;border-radius:8px;padding:10px}.awardBadge{display:inline-block;background:#eef2ff;color:#312e81;border-radius:999px;padding:3px 8px}


/* v17 larger-screen refinements */
@media(min-width:1200px){
  .card,.panel,nav,.pageHeading{max-width:1440px}
  .summaryTabs{grid-template-columns:1fr 1fr;align-items:start}
  .starsControls{grid-template-columns:minmax(180px,1fr) auto minmax(220px,1fr) auto;align-items:end}
}
@media(min-width:900px){.summaryTabs>div{align-self:start}.summaryTabs h3{margin-top:0}}


/* v19 House Summary alignment patch */
#houseSummary .summaryControls{margin-bottom:14px}
#houseSummary .summaryPeriod{margin:4px 0 14px;color:#1f2d5a;font-size:14px}
#houseSummary .summaryTabs{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start;width:100%}
#houseSummary .summaryCard{border:1px solid #d9dde3;border-radius:12px;background:#fbfcfd;padding:14px;min-width:0;align-self:start}
#houseSummary .summaryCard h3{margin:0 0 12px 0;line-height:1.2;color:#263766;min-height:28px;display:flex;align-items:center}
#houseSummary .tableWrap{width:100%;overflow-x:auto}
#houseSummary table{margin-top:0;width:100%;table-layout:auto}
#houseSummary th,#houseSummary td{vertical-align:middle;white-space:nowrap}
@media(min-width:1000px){#houseSummary .summaryTabs{grid-template-columns:1fr 1fr}}
@media(max-width:999px){#houseSummary .summaryTabs{grid-template-columns:1fr}}


/* v23 login spacing, form widths and record validation layout */
.authCard{max-width:460px;padding:28px 30px;margin-top:36px}
.authCard label{margin-bottom:16px}
.authCard input{max-width:100%}
.authCard .passwordWrap{margin-top:2px}
.authCard .buttonRow{margin-top:18px;gap:18px}
#passwordChangeCard.authCard{max-width:500px}
#staffDateNotice{margin:0 0 4px;color:#64748b}
#recordedAt:disabled{background:#eef2f6;color:#334155;cursor:not-allowed}
#typeSelect:invalid,#behaviourSelect:invalid{border-color:#b00020}
@media(min-width:900px){.authCard{width:440px}.authCard input{width:100%}}


/* v24 login/change-password fixed width and spacing */
#loginCard.authCard,
#forgotPasswordCard.authCard,
#resetPasswordCard.authCard,
#passwordChangeCard.authCard{
  width:min(420px, calc(100vw - 36px)) !important;
  max-width:420px !important;
  padding:32px 34px !important;
  margin:46px auto 28px auto !important;
}
#passwordChangeCard.authCard{max-width:440px !important;width:min(440px, calc(100vw - 36px)) !important;}
.authCard h2{margin-bottom:22px !important;}
.authCard label{display:flex !important;flex-direction:column !important;gap:9px !important;margin-bottom:20px !important;}
.authCard input,
.authCard .passwordWrap{width:100% !important;max-width:100% !important;}
.authCard input{height:44px !important;padding:10px 12px !important;}
.authCard .passwordWrap{display:flex !important;gap:8px !important;align-items:stretch !important;}
.authCard .passwordWrap input{flex:1 1 auto !important;min-width:0 !important;}
.authCard .passwordWrap .iconBtn{flex:0 0 auto !important;width:74px !important;padding:0 10px !important;}
.authCard .buttonRow{display:flex !important;gap:14px !important;align-items:center !important;justify-content:flex-start !important;margin-top:22px !important;flex-wrap:wrap !important;}
.authCard button{min-height:42px !important;}
#pointsInput:invalid{border-color:#b00020;background:#fff7f7;}


/* v27 general spacing and admin table fitting */
main{padding-bottom:48px}
.panel,.card{padding:26px !important;margin-top:28px !important;margin-bottom:28px !important}
.panel > * + *{margin-top:18px}
.panel h2{margin-bottom:18px}
.panel h3{margin-top:28px !important;margin-bottom:14px !important}
.formGroup{margin-top:18px !important;margin-bottom:26px !important;padding:20px !important}
.grid{gap:18px !important}
.formGrid{row-gap:18px !important;column-gap:18px !important}
.tabs{gap:12px;margin-bottom:22px !important}
.tableWrap{margin-top:14px;margin-bottom:18px}
table{margin-top:0}
.fitTableWrap{width:100%;overflow-x:auto}
.fitTable{width:max-content;min-width:680px;table-layout:auto}
.fitTable th,.fitTable td{white-space:nowrap;vertical-align:middle}
.behaviourTable td:nth-child(2){white-space:normal;min-width:360px;max-width:680px}
.tableButtonRow{display:inline-flex;align-items:center;gap:10px;white-space:nowrap}
.tableButtonRow button{margin:0;padding:7px 10px;min-height:34px}
td.actions{white-space:nowrap}
td.actions button{display:inline-block;margin-right:8px;margin-bottom:4px}
#admin table button{margin:0 6px 4px 0}
#admin .tableWrap table{width:max-content;min-width:720px}
#admin th,#admin td{vertical-align:middle}
.starResolution{display:inline-block;margin:6px 0 12px;padding:8px 10px;border-radius:8px;background:#eef2ff;color:#263766;font-weight:700}
.starResolution.auto_resolved{background:#fff7ed;color:#9a3412}
.starResolution.open{background:#ecfdf5;color:#166534}
.starResolution.resolved_by_vote{background:#f0fdf4;color:#166534}
@media(max-width:900px){.panel,.card{padding:18px !important}.fitTable{min-width:640px}}


/* v30 Record Points layout fix */
.pageHeading h1{font-size:clamp(28px,3vw,34px)!important;letter-spacing:.01em}
#booking.panel{max-width:1440px!important;padding:28px!important}
#booking h2{font-size:24px!important;margin:0 0 24px!important;color:#1f2d5a}
#booking .termDateNotice{display:block;width:100%;margin:0 0 16px!important;padding:10px 12px;border-left:4px solid #2f2373;background:#f8fafc;border-radius:8px;color:#334155;line-height:1.4}
#booking .recordLayout{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(290px,25%)!important;gap:22px!important;align-items:start!important;width:100%!important}
#booking .recordFields{min-width:0!important;width:100%!important;display:block!important}
#booking .recordFields .formGroup{width:100%!important;margin:0 0 24px!important;padding:20px!important;clear:both!important}
#booking .recordFields .formGroup legend{font-size:18px!important;line-height:1.2!important}
#booking .studentPickerPanel{width:100%!important;max-width:100%!important;min-width:0!important;position:sticky;top:12px}
#booking .grid.three{grid-template-columns:repeat(3,minmax(0,1fr))!important}
@media(max-width:1050px){#booking .recordLayout{grid-template-columns:1fr!important}#booking .studentPickerPanel{position:static!important}#booking .grid.three{grid-template-columns:1fr!important}}


/* v34 Chapel Prefects module */
.codeList{border:1px solid #d9dde3;border-radius:10px;background:#fff;max-height:300px;overflow:auto;padding:8px;margin-top:8px}
.selectedBehaviourBox{border:1px solid #d9dde3;border-radius:10px;background:#f8fafc;padding:10px;margin:10px 0 16px}
.selectedBehaviourRow{display:grid;grid-template-columns:1fr 110px;gap:12px;align-items:center;border-bottom:1px solid #e5e7eb;padding:8px 0}
.selectedBehaviourRow:last-child{border-bottom:0}
.selectedBehaviourRow label{display:flex;flex-direction:row;align-items:center;gap:8px;margin:0}
.chapelViews{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:24px;align-items:start}
@media(max-width:1000px){.chapelViews{grid-template-columns:1fr}.selectedBehaviourRow{grid-template-columns:1fr}}

/* v40 chapel prefect layout */
#chapel .recordLayout{align-items:flex-start;gap:22px;}
#chapel .codeList{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;margin-top:8px;}
.chapelCodeRow{display:grid;grid-template-columns:22px 1fr;align-items:start;gap:10px;border:1px solid #d8deea;border-radius:10px;padding:10px;background:#fff;font-weight:700;}
.chapelCodeRow input{width:auto;margin-top:3px;}
.chapelCodeRow span{display:flex;gap:8px;align-items:flex-start;}
.chapelCodeRow small{font-weight:500;line-height:1.35;color:#263766;}
.selectedBehaviourBox{margin:10px 0 16px;padding:12px;border:1px dashed #aab5ca;border-radius:10px;background:#fbfcff;}
.selectedBehaviourRow{display:grid;grid-template-columns:1fr 120px;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid #eef2f6;}
.selectedBehaviourRow:last-child{border-bottom:0;}
.selectedBehaviourRow input{max-width:100px;}

/* v41 chapel records tabs and action button spacing */
.chapelTabs{display:flex;gap:10px;margin:18px 0 12px;flex-wrap:wrap}
.chapelTabs button{background:#e9edf8;color:#253260;border:1px solid #cfd6dd}
.chapelTabs button.active{background:#2f2373;color:#fff;border-color:#2f2373}
.chapelViews{display:block;margin-top:8px}
.chapelViews .actions{white-space:nowrap;display:flex;gap:8px;align-items:center}
.chapelViews .actions button{display:inline-flex;margin:0}
.smallBtn{padding:6px 10px;font-size:12px}

/* v43 chapel checkbox alignment fix */
#chapel .codeList{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin-top:10px;}
#chapel .chapelCodeRow{display:grid;grid-template-columns:20px minmax(0,1fr);column-gap:12px;align-items:start;border:1px solid #d8deea;border-radius:10px;padding:12px;background:#fff;font-weight:700;line-height:1.25;min-height:58px;}
#chapel .chapelCodeRow input[type="checkbox"]{width:16px;height:16px;margin:2px 0 0 0;padding:0;justify-self:center;align-self:start;accent-color:#2f2373;}
#chapel .chapelCodeRow span{display:grid;grid-template-columns:minmax(42px,auto) 1fr;column-gap:8px;align-items:start;min-width:0;}
#chapel .chapelCodeRow b{font-size:13px;line-height:1.35;white-space:nowrap;color:#13245c;}
#chapel .chapelCodeRow small{font-weight:500;font-size:12px;line-height:1.35;color:#263766;min-width:0;}
#chapel .selectedBehaviourRow{display:grid;grid-template-columns:minmax(0,1fr) 120px;gap:12px;align-items:end;border:1px solid #d8deea;border-radius:10px;padding:10px;margin-bottom:8px;background:#fff;}
#chapel .selectedBehaviourRow input{height:40px;}
@media(max-width:700px){#chapel .chapelCodeRow span{grid-template-columns:1fr;}#chapel .selectedBehaviourRow{grid-template-columns:1fr;}}


/* v44 compact chapel behaviour layout and date picker */
#chapel .chapelDateRow{margin-bottom:12px;max-width:420px;}
#chapel .chapelCodeGroups{align-items:start;gap:16px;}
#chapel .chapelCodeGroups h3{margin:6px 0 8px;font-size:16px;}
#chapel .chapelCodeListCompact{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:6px;margin-top:6px;align-items:stretch;}
#chapel .chapelCodeListCompact .chapelCodeRow{min-height:0;padding:6px 8px;border-radius:7px;grid-template-columns:18px minmax(0,1fr);column-gap:8px;align-items:center;}
#chapel .chapelCodeListCompact .chapelCodeRow input[type="checkbox"]{width:14px;height:14px;margin:0;align-self:center;justify-self:center;}
#chapel .chapelCodeListCompact .chapelCodeRow span{grid-template-columns:36px minmax(0,1fr);column-gap:6px;align-items:center;}
#chapel .chapelCodeListCompact .chapelCodeRow b{font-size:12px;line-height:1.15;}
#chapel .chapelCodeListCompact .chapelCodeRow small{font-size:11px;line-height:1.15;}
#chapel .selectedBehaviourBox{margin-top:8px;}
#chapel .selectedBehaviourRow{padding:7px 8px;margin-bottom:6px;}
@media(min-width:1200px){#chapel .chapelCodeListCompact{grid-template-columns:repeat(2,minmax(210px,1fr));}}
@media(max-width:900px){#chapel .chapelCodeGroups{grid-template-columns:1fr;}#chapel .chapelCodeListCompact{grid-template-columns:1fr;}}


/* v45 Chapel behaviour setup */
#chapelBehavioursTab { margin-top: 14px; }
.chapelBehaviourForm { margin: 14px 0 18px; align-items: end; }
.chapelBehaviourForm button { align-self: end; }
.fitTable { width: auto; min-width: min(100%, 820px); }
.fitTable th, .fitTable td { white-space: normal; vertical-align: top; }
#chapelBehaviourTable .actions { display: flex; gap: 8px; align-items: center; white-space: nowrap; }

/* v50: mobile Record Points order and inactivity patch layout support */
@media(max-width:900px){
  #booking .recordLayout{
    display:flex!important;
    flex-direction:column!important;
    gap:14px!important;
  }
  #booking .recordFields{
    display:contents!important;
  }
  #booking .recordFields .formGroup:nth-of-type(1){
    order:1!important;
  }
  #booking .studentPickerPanel{
    order:2!important;
    position:static!important;
    width:100%!important;
    max-width:100%!important;
  }
  #booking .recordFields .formGroup:nth-of-type(2){
    order:3!important;
  }
}


/* V64 Chapel full layout fix */
#chapel .chapelControlBlock,
#chapel fieldset.formGroup {
  margin-bottom: 18px;
}
#chapel .chapelFilters,
#chapel .chapelSortControls {
  display: grid;
  gap: 14px;
  margin: 14px 0;
  padding: 14px;
  border: 1px solid #d7deea;
  border-radius: 12px;
  background: #fff;
}
@media (min-width: 900px) {
  #chapel .chapelFilters { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #chapel .chapelSortControls { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
#chapelOffenceTable,
#chapelConversionTable {
  width: 100%;
  max-width: 100%;
  overflow: visible;
}
.chapelRecordGrid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
  gap: 12px;
  width: 100%;
  max-width: 100%;
  margin-top: 12px;
}
.chapelRecordCard {
  border: 1px solid #d7deea;
  border-radius: 12px;
  background: #fff;
  padding: 12px;
  min-width: 0;
  overflow-wrap: anywhere;
  box-shadow: 0 1px 4px rgba(15, 23, 42, .06);
}
.chapelRecordTop {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 10px;
}
.chapelRecordTop strong {
  color: #13245c;
  line-height: 1.25;
  min-width: 0;
}
.chapelBadge {
  flex: 0 0 auto;
  border-radius: 999px;
  padding: 3px 8px;
  font-size: 12px;
  font-weight: 800;
}
.negBadge { background: #fee2e2; color: #9f1239; }
.posBadge { background: #dcfce7; color: #166534; }
.chapelRecordMeta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px 10px;
  font-size: 12px;
  line-height: 1.35;
}
.chapelRecordMeaning {
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px solid #edf1f7;
  font-size: 13px;
  line-height: 1.35;
}
.chapelCardActions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}
.chapelCardActions button {
  padding: 7px 10px;
}
@media (max-width: 720px) {
  .chapelRecordGrid { grid-template-columns: 1fr; }
  .chapelRecordMeta { grid-template-columns: 1fr; }
}

/* v65 Chapel table 90vw fitted layout and separate filter/sort sections */
#chapel .chapelFilterBoxV65,
#chapel .chapelSortBoxV65 {
  margin: 16px 0;
  padding: 14px 16px;
  border: 1px solid #d7deea;
  border-radius: 12px;
  background: #fff;
}
#chapel .chapelFilterBoxV65 legend,
#chapel .chapelSortBoxV65 legend {
  padding: 0 8px;
  font-weight: 800;
  color: #13245c;
}
#chapelOffenceTable,
#chapelConversionTable {
  width: 90vw !important;
  max-width: 90vw !important;
  margin: 16px auto 0 !important;
  overflow: hidden !important;
}
.chapelFitTableWrapV65 {
  width: 90vw;
  max-width: 90vw;
  margin: 0 auto 18px;
  overflow: hidden;
}
.chapelFitTableV65 {
  width: 100%;
  max-width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  background: #fff;
}
.chapelFitTableV65 th,
.chapelFitTableV65 td {
  border: 1px solid #d7deea;
  padding: 7px 8px;
  font-size: 12px;
  line-height: 1.25;
  vertical-align: top;
  white-space: normal !important;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.chapelFitTableV65 th {
  background: #eef2f7;
  color: #13245c;
  font-weight: 800;
}
.chapelFitTableV65 .cDate { width: 8%; }
.chapelFitTableV65 .cStudent { width: 19%; }
.chapelFitTableV65 .cGroup { width: 12%; }
.chapelFitTableV65 .cType { width: 10%; }
.chapelFitTableV65 .cTimes { width: 6%; }
.chapelFitTableV65 .cMeaning { width: 27%; }
.chapelFitTableV65 .cRecorder { width: 10%; }
.chapelFitTableV65 .cActions { width: 8%; }
.chapelTableActionsV65 {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}
.chapelTableActionsV65 button {
  padding: 6px 8px;
  font-size: 12px;
  margin: 0 !important;
}
.cumulativeFitV65 th,
.cumulativeFitV65 td {
  font-size: 12px;
}
@media (max-width: 900px) {
  #chapelOffenceTable,
  #chapelConversionTable,
  .chapelFitTableWrapV65 {
    width: 96vw !important;
    max-width: 96vw !important;
  }
  .chapelFitTableV65 th,
  .chapelFitTableV65 td {
    padding: 5px 6px;
    font-size: 11px;
  }
}


/* v66 Chapel Approval fitted layout */
#chapelApproval { max-width: 100vw; overflow-x: hidden; }
#chapelApproval .formGroup { max-width: min(96vw, 1280px); margin-left: auto; margin-right: auto; }
#chapelApproval .approvalFilterGridV66,
#chapelApproval .approvalSortGridV66 { display: grid; grid-template-columns: repeat(4, minmax(160px, 1fr)); gap: 16px 18px; align-items: end; }
#chapelApproval .approvalSortBoxV66 { margin-top: 16px; }
.approvalToolbarTopV66 { max-width: 90vw; margin: 20px auto 12px !important; }
.approvalTableFrameV66 { width: 90vw; max-width: 90vw; margin: 0 auto 20px; overflow: hidden; }
.approvalFitTableV66 { width: 100%; max-width: 100%; table-layout: fixed; border-collapse: collapse; background: #fff; }
.approvalFitTableV66 th,
.approvalFitTableV66 td { border: 1px solid #d7deea; padding: 7px 8px; font-size: 12px; line-height: 1.25; vertical-align: top; white-space: normal !important; overflow-wrap: anywhere; word-break: break-word; }
.approvalFitTableV66 th { background: #eef2f7; color: #13245c; font-weight: 800; }
.approvalFitTableV66 .aCheck { width: 4%; text-align: center; }
.approvalFitTableV66 .aDate { width: 8%; }
.approvalFitTableV66 .aStudent { width: 20%; }
.approvalFitTableV66 .aGroup { width: 9%; }
.approvalFitTableV66 .aType { width: 9%; }
.approvalFitTableV66 .aTimes { width: 5%; text-align: center; }
.approvalFitTableV66 .aMeaning { width: 25%; }
.approvalFitTableV66 .aPrefect { width: 10%; }
.approvalFitTableV66 .aStatus { width: 7%; }
.approvalFitTableV66 .aActions { width: 13%; }
.approvalActionsV66 { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.approvalActionsV66 button { padding: 6px 8px; font-size: 12px; margin: 0 !important; min-width: 0; }
.approvalMiniFitV66 th,
.approvalMiniFitV66 td { font-size: 12px; }
@media (max-width: 1000px) {
  #chapelApproval .approvalFilterGridV66,
  #chapelApproval .approvalSortGridV66 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .approvalTableFrameV66, .approvalToolbarTopV66 { width: 96vw; max-width: 96vw; }
  .approvalFitTableV66 th, .approvalFitTableV66 td { padding: 5px 6px; font-size: 11px; }
}
@media (max-width: 650px) {
  #chapelApproval .approvalFilterGridV66,
  #chapelApproval .approvalSortGridV66 { grid-template-columns: 1fr; }
}

/* v67 Chapel Approval compact controls and card layout */
#chapelApproval { max-width: 100vw; overflow-x: hidden; }
#chapelApproval .formGroup { max-width: min(96vw, 1320px); margin: 16px auto; padding: 14px 18px; }
@media (min-width: 1100px) {
  #chapelApproval .approvalFilterGridV66 { grid-template-columns: 170px 170px 170px 260px 170px !important; gap: 12px !important; align-items: end; }
  #chapelApproval .approvalSortGridV66 { grid-template-columns: 180px 150px auto !important; gap: 12px !important; align-items: end; }
  #chapelApproval .approvalSortBoxV66 { display: grid; grid-template-columns: 340px 1fr; column-gap: 18px; align-items: end; }
  #chapelApproval .approvalSortBoxV66 legend { grid-column: 1 / -1; }
  #chapelApproval .bulkActions { margin: 0 !important; display: flex !important; flex-wrap: nowrap !important; gap: 10px !important; align-items: end !important; justify-content: flex-start; }
  #chapelApproval .bulkActions button { white-space: nowrap; padding: 9px 12px; }
}
#chapelApproval input, #chapelApproval select { min-height: 40px; }
#chapelApproval .approvalFilterGridV66 label, #chapelApproval .approvalSortGridV66 label { gap: 5px; }
.approvalToolbarTopV67 { width: min(96vw, 1320px); margin: 18px auto 10px !important; display: flex; justify-content: space-between; gap: 16px; align-items: center; }
.approvalCardListV67 { width: min(96vw, 1320px); margin: 0 auto 20px; display: grid; gap: 10px; }
.approvalSelectAllV67 { display: inline-flex; flex-direction: row; align-items: center; gap: 8px; width: max-content; padding: 8px 10px; border: 1px solid #d7deea; border-radius: 9px; background: #f8fafc; font-weight: 700; }
.approvalSelectAllV67 input { width: 16px; height: 16px; min-height: 0 !important; }
.approvalCardV67 { display: grid; grid-template-columns: 30px minmax(0,1fr) auto; gap: 12px; align-items: center; border: 1px solid #d7deea; border-radius: 12px; background: #fff; padding: 10px 12px; box-shadow: 0 2px 7px rgba(15,23,42,.05); }
.approvalCardCheckV67 input { width: 16px; height: 16px; min-height: 0 !important; }
.approvalCardHeaderV67 { display: flex; gap: 12px; align-items: center; justify-content: space-between; margin-bottom: 6px; color: #13245c; }
.approvalCardMetaV67 { display: grid; grid-template-columns: 120px 105px 120px 110px 80px 75px minmax(120px,1fr); gap: 5px 10px; font-size: 12px; line-height: 1.25; }
.approvalCardMeaningV67 { margin-top: 6px; font-size: 12px; line-height: 1.3; color: #263766; overflow-wrap: anywhere; }
.approvalCardActionCellV67 { display: flex; align-items: center; justify-content: flex-end; min-width: 248px; }
.approvalCardActionsV67 { display: flex; flex-wrap: nowrap; gap: 7px; align-items: center; justify-content: flex-end; }
.approvalCardActionsV67 button { margin: 0 !important; padding: 8px 10px; white-space: nowrap; }
.approvalMiniCardsV67 { width: min(96vw,1320px); margin: 0 auto 18px; display: grid; grid-template-columns: repeat(auto-fit,minmax(260px,1fr)); gap: 10px; }
.miniApprovalCardV67 { border: 1px solid #d7deea; border-radius: 12px; background: #fff; padding: 10px 12px; display: grid; gap: 5px; font-size: 12px; }
.miniApprovalCardV67 strong { color: #13245c; }
@media (max-width: 1099px) {
  #chapelApproval .approvalFilterGridV66, #chapelApproval .approvalSortGridV66 { grid-template-columns: 1fr 1fr !important; }
  #chapelApproval .bulkActions { display: flex; flex-wrap: wrap; gap: 10px; }
  .approvalCardV67 { grid-template-columns: 28px minmax(0,1fr); }
  .approvalCardActionCellV67 { grid-column: 1 / -1; justify-content: flex-start; min-width: 0; }
  .approvalCardMetaV67 { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 640px) {
  #chapelApproval .approvalFilterGridV66, #chapelApproval .approvalSortGridV66 { grid-template-columns: 1fr !important; }
  .approvalToolbarTopV67 { flex-direction: column; align-items: flex-start; }
  .approvalCardActionsV67 { flex-wrap: wrap; justify-content: flex-start; }
  .approvalCardMetaV67 { grid-template-columns: 1fr; }
}

/* v68 Chapel Approval compact controls and stable card layout */
#chapelApproval{max-width:100vw;overflow-x:hidden;}
#chapelApproval .formGroup{width:min(96vw,1320px);max-width:min(96vw,1320px);margin:16px auto;padding:14px 18px;}
#chapelApproval .approvalFilterGridV66{display:grid!important;grid-template-columns:150px 150px 135px minmax(180px,260px) 150px!important;gap:12px!important;align-items:end!important;}
#chapelApproval .approvalSortBoxV66{display:grid!important;grid-template-columns:minmax(280px,360px) minmax(0,1fr)!important;gap:12px 18px!important;align-items:end!important;}
#chapelApproval .approvalSortBoxV66 legend{grid-column:1/-1;}
#chapelApproval .approvalSortGridV66{display:grid!important;grid-template-columns:170px 140px!important;gap:12px!important;align-items:end!important;}
#chapelApproval .bulkActions{display:flex!important;flex-wrap:wrap!important;gap:10px!important;align-items:end!important;margin:0!important;}
#chapelApproval .bulkActions button{white-space:nowrap;padding:9px 12px;margin:0!important;}
#chapelApproval input,#chapelApproval select{min-height:38px;}
#chapelApproval label{gap:5px;}
.approvalPeriodV68{width:min(96vw,1320px);margin:16px auto 10px;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;color:#263766;font-size:13px;}
.approvalSelectLineV68{width:min(96vw,1320px);margin:0 auto 10px;display:flex;justify-content:space-between;align-items:center;gap:14px;}
.approvalSelectLineV68 label{display:inline-flex;flex-direction:row;align-items:center;gap:8px;font-weight:800;background:#f8fafc;border:1px solid #d7deea;border-radius:10px;padding:8px 10px;width:max-content;}
.approvalSelectLineV68 input{width:16px!important;height:16px!important;min-height:0!important;}
.approvalCardListV68{width:min(96vw,1320px);margin:0 auto 22px;display:grid;gap:10px;}
.approvalCardV68{display:grid;grid-template-columns:30px minmax(0,1fr) max-content;gap:12px;align-items:center;background:#fff;border:1px solid #d7deea;border-radius:12px;padding:10px 12px;box-shadow:0 2px 8px rgba(15,23,42,.05);}
.approvalCheckV68{display:flex;align-items:center;justify-content:center;}
.approvalCheckV68 input{width:16px!important;height:16px!important;min-height:0!important;}
.approvalContentV68{min-width:0;}
.approvalTitleRowV68{display:flex;align-items:center;gap:10px;margin-bottom:6px;color:#13245c;}
.approvalTitleRowV68 strong{font-size:15px;overflow-wrap:anywhere;}
.approvalStatusPillV68{border-radius:999px;padding:3px 8px;background:#eef2f7;color:#13245c;font-size:12px;font-weight:800;white-space:nowrap;}
.approvalStatus_approved{background:#e8f7ee;color:#166534;}
.approvalStatus_rejected{background:#fee2e2;color:#991b1b;}
.approvalStatus_pending{background:#eef2f7;color:#13245c;}
.approvalMetaV68{display:grid;grid-template-columns:105px 90px 110px 95px 70px 70px minmax(110px,1fr);gap:4px 10px;font-size:12px;line-height:1.25;}
.approvalMetaV68 span{min-width:0;overflow-wrap:anywhere;}
.approvalMeaningV68{margin-top:6px;font-size:12px;line-height:1.3;color:#263766;overflow-wrap:anywhere;}
.approvalActionCellV68{display:flex;justify-content:flex-end;align-items:center;}
.approvalActionsV68{display:flex;flex-wrap:nowrap;gap:7px;align-items:center;}
.approvalActionsV68 button{white-space:nowrap;margin:0!important;padding:8px 10px;font-size:12px;}
.approvalEmptyV68{width:min(96vw,1320px);margin:12px auto;}
.approvalMiniCardsV68{width:min(96vw,1320px);margin:0 auto 18px;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;}
.miniApprovalCardV68{border:1px solid #d7deea;border-radius:12px;background:#fff;padding:10px 12px;display:grid;gap:5px;font-size:12px;line-height:1.3;overflow-wrap:anywhere;}
.miniApprovalCardV68 strong{color:#13245c;}
@media(max-width:1120px){
  #chapelApproval .approvalFilterGridV66{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  #chapelApproval .approvalSortBoxV66{grid-template-columns:1fr!important;}
  #chapelApproval .approvalSortGridV66{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .approvalCardV68{grid-template-columns:28px minmax(0,1fr);align-items:start;}
  .approvalActionCellV68{grid-column:2;justify-content:flex-start;}
  .approvalMetaV68{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:640px){
  #chapelApproval .approvalFilterGridV66,#chapelApproval .approvalSortGridV66{grid-template-columns:1fr!important;}
  .approvalPeriodV68,.approvalSelectLineV68{flex-direction:column;align-items:flex-start;}
  .approvalCardV68{grid-template-columns:1fr;}
  .approvalCheckV68{justify-content:flex-start;}
  .approvalActionCellV68{grid-column:1;}
  .approvalActionsV68{flex-wrap:wrap;}
  .approvalMetaV68{grid-template-columns:1fr;}
}


/* ===== v69 Chapel Approval layout hard override ===== */
#chapelApproval .approvalFilterBoxV66,
#chapelApproval .approvalSortBoxV66{
  width:100% !important;
  max-width:100% !important;
  padding:16px 18px !important;
  margin:16px 0 18px !important;
}
#chapelApproval .approvalFilterGridV66{
  display:grid !important;
  grid-template-columns: minmax(150px, 190px) minmax(150px, 190px) minmax(130px, 170px) minmax(220px, 1fr) auto !important;
  gap:12px 16px !important;
  align-items:end !important;
}
#chapelApproval .approvalSortGridV66{
  display:grid !important;
  grid-template-columns: minmax(150px, 190px) minmax(130px, 170px) !important;
  gap:12px 16px !important;
  align-items:end !important;
  width:max-content !important;
  max-width:100% !important;
}
#chapelApproval .approvalFilterGridV66 label,
#chapelApproval .approvalSortGridV66 label{
  min-width:0 !important;
  width:100% !important;
}
#chapelApproval .approvalFilterGridV66 input,
#chapelApproval .approvalFilterGridV66 select,
#chapelApproval .approvalSortGridV66 input,
#chapelApproval .approvalSortGridV66 select{
  min-height:38px !important;
  padding:8px 10px !important;
  width:100% !important;
}
#chapelApproval .approvalFilterGridV66 button{
  min-height:38px !important;
  white-space:nowrap !important;
  align-self:end !important;
}
#chapelApproval .bulkActions{
  display:flex !important;
  flex-wrap:wrap !important;
  align-items:center !important;
  gap:10px 12px !important;
  margin-top:14px !important;
  padding:12px !important;
  border:1px solid #d9dde3 !important;
  border-radius:12px !important;
  background:#f8fafc !important;
}
#chapelApproval .bulkActions button{
  margin:0 !important;
  min-height:36px !important;
  padding:8px 11px !important;
  white-space:nowrap !important;
}
.approvalV69Header{
  width:min(100%, 90vw) !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:12px !important;
  margin:14px 0 10px !important;
}
.approvalV69Header .hint{margin:0 !important;}
.approvalV69Selected{
  flex:0 0 auto !important;
  background:#eef2ff !important;
  color:#2f2373 !important;
  border-radius:999px !important;
  padding:7px 12px !important;
  font-weight:800 !important;
  white-space:nowrap !important;
}
.approvalV69SelectLine{
  width:min(100%, 90vw) !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  margin:6px 0 10px !important;
}
.approvalV69SelectLine label{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  gap:8px !important;
  font-size:13px !important;
  width:auto !important;
}
.approvalV69SelectLine input,
.approvalV69Card input[type="checkbox"]{
  width:18px !important;
  height:18px !important;
  min-height:18px !important;
  padding:0 !important;
  margin:0 !important;
}
.approvalV69List{
  width:min(100%, 90vw) !important;
  max-width:100% !important;
  display:grid !important;
  gap:10px !important;
  margin:0 0 18px !important;
  overflow:visible !important;
}
.approvalV69Card{
  width:100% !important;
  min-width:0 !important;
  display:grid !important;
  grid-template-columns:34px minmax(0, 1fr) auto !important;
  gap:12px !important;
  align-items:center !important;
  padding:12px !important;
  border:1px solid #d9dde3 !important;
  border-radius:12px !important;
  background:#fff !important;
  box-shadow:0 2px 8px rgba(15,23,42,.04) !important;
  overflow:hidden !important;
}
.approvalV69Check{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:34px !important;
}
.approvalV69Content{min-width:0 !important;overflow:hidden !important;}
.approvalV69Title{
  display:flex !important;
  align-items:center !important;
  gap:8px !important;
  flex-wrap:wrap !important;
  margin-bottom:6px !important;
  color:#172554 !important;
}
.approvalV69Title strong{font-size:15px !important;line-height:1.2 !important;overflow-wrap:anywhere !important;}
.approvalV69Status,
.approvalStatus_pending,
.approvalStatus_approved,
.approvalStatus_rejected{
  display:inline-flex !important;
  align-items:center !important;
  border-radius:999px !important;
  padding:3px 8px !important;
  font-size:12px !important;
  font-weight:800 !important;
  background:#eef2f6 !important;
  color:#1f2d5a !important;
}
.approvalStatus_approved{background:#dcfce7 !important;color:#166534 !important;}
.approvalStatus_rejected{background:#fee2e2 !important;color:#991b1b !important;}
.approvalV69Meta{
  display:grid !important;
  grid-template-columns:repeat(4, minmax(95px, 1fr)) !important;
  gap:5px 12px !important;
  font-size:13px !important;
  line-height:1.35 !important;
}
.approvalV69Meta span,
.approvalV69Meaning{
  min-width:0 !important;
  overflow-wrap:anywhere !important;
  word-break:normal !important;
}
.approvalV69Meaning{
  margin-top:6px !important;
  font-size:13px !important;
  color:#111827 !important;
  line-height:1.35 !important;
}
.approvalV69Actions{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:6px !important;
  flex-wrap:nowrap !important;
  white-space:nowrap !important;
}
.approvalV69Actions button{
  margin:0 !important;
  padding:7px 9px !important;
  min-height:32px !important;
  font-size:12px !important;
  white-space:nowrap !important;
}
.approvalV69MiniList{
  width:min(100%, 90vw) !important;
  display:grid !important;
  grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)) !important;
  gap:10px !important;
  margin:10px 0 18px !important;
}
.approvalV69MiniCard{
  border:1px solid #d9dde3 !important;
  border-radius:12px !important;
  background:#fff !important;
  padding:12px !important;
  display:grid !important;
  gap:4px !important;
  min-width:0 !important;
}
.approvalV69MiniCard *{overflow-wrap:anywhere !important;}
@media(max-width:1100px){
  #chapelApproval .approvalFilterGridV66{grid-template-columns:repeat(2, minmax(0,1fr)) !important;}
  #chapelApproval .approvalFilterGridV66 button{width:max-content !important;}
  .approvalV69Card{grid-template-columns:30px minmax(0,1fr) !important;align-items:start !important;}
  .approvalV69Actions{grid-column:2 !important;justify-content:flex-start !important;margin-top:8px !important;}
  .approvalV69Meta{grid-template-columns:repeat(2, minmax(0,1fr)) !important;}
}
@media(max-width:700px){
  #chapelApproval .approvalFilterGridV66,
  #chapelApproval .approvalSortGridV66{grid-template-columns:1fr !important;width:100% !important;}
  #chapelApproval .approvalFilterGridV66 button{width:100% !important;}
  .approvalV69Header{align-items:flex-start !important;flex-direction:column !important;}
  .approvalV69List,.approvalV69Header,.approvalV69SelectLine,.approvalV69MiniList{width:100% !important;}
  .approvalV69Card{grid-template-columns:28px minmax(0,1fr) !important;padding:10px !important;}
  .approvalV69Meta{grid-template-columns:1fr !important;}
  .approvalV69Actions{flex-wrap:wrap !important;}
}


/* v81 compact staff/user filters and Stars PDF controls */
.userFilterLineV81{display:grid;grid-template-columns:minmax(220px,360px) minmax(180px,240px);gap:14px;align-items:end;margin:10px 0 16px;max-width:640px}
.userFilterLineV81 label{margin:0}.userFilterLineV81 input,.userFilterLineV81 select{width:100%;min-height:40px}
#usersAdmin>input#userSearch{max-width:360px}
#ledgerStudent{max-width:360px}.starsExportBarV81{margin:12px 0 18px}.starsExportFieldsetV81{border:1px solid #d9dde3;border-radius:12px;background:#fbfcff;padding:14px 16px}.starsExportFieldsetV81 legend{font-weight:800;color:#263766;padding:0 8px}.starsExportButtonsV81{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.starsExportButtonsV81 button{white-space:nowrap}
@media(min-width:1000px){#usersAdmin .userFilterLineV81{grid-template-columns:360px 220px}.userFilterLineV81+div{margin-top:6px}}
@media(max-width:760px){.userFilterLineV81{grid-template-columns:1fr;max-width:none}.starsExportButtonsV81 button{width:100%}}

/* v82 offline-style record submission queue */
.offlineQueueNoticeV82,.offlineQueueStatusV82 span{display:block;margin:10px 0 12px;padding:10px 12px;border:1px solid #f59e0b;border-radius:10px;background:#fffbeb;color:#7c2d12;font-weight:700;font-size:13px}.pendingRowV82{background:#fffbeb!important}.pendingPillV82,.savedPillV82{display:inline-block;border-radius:999px;padding:4px 8px;font-weight:800;font-size:11px;white-space:nowrap}.pendingPillV82{background:#fef3c7;color:#92400e;border:1px solid #f59e0b}.savedPillV82{background:#dcfce7;color:#166534;border:1px solid #86efac}.pendingRowV82 td{border-color:#fde68a}.pendingRowV82 .actions{color:#92400e;font-weight:700;white-space:normal}


/* v83 chapel approval bulk action grouping */
#chapelApproval .approvalBulkActionsV83{
  display:flex !important;
  gap:14px !important;
  align-items:stretch !important;
  justify-content:flex-start !important;
  flex-wrap:wrap !important;
  margin-top:14px !important;
}
#chapelApproval .approvalBulkGroupV83{
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
  padding:10px 12px !important;
  border:1px solid #d9dde3 !important;
  border-radius:12px !important;
  background:#fbfcff !important;
  min-width:0 !important;
}
#chapelApproval .approvalBulkLabelV83{
  display:inline-block !important;
  font-size:12px !important;
  line-height:1.2 !important;
  font-weight:800 !important;
  color:#334155 !important;
  white-space:nowrap !important;
}
#chapelApproval .approvalBulkGroupV83 button{white-space:nowrap !important;}
#chapelApproval .approvalBulkApproveV83{border-left:4px solid #2563eb !important;}
#chapelApproval .approvalBulkPendingV83{border-left:4px solid #64748b !important;}
#chapelApproval .approvalBulkRejectV83{border-left:4px solid #b00020 !important;}
#chapelApproval .approvalV69SelectLine,
#chapelApproval .approvalSelectLineV68,
#chapelApproval .approvalSelectAllV67{
  display:none !important;
}
@media(min-width:1000px){
  #chapelApproval .approvalBulkActionsV83{flex-wrap:nowrap !important;}
  #chapelApproval .approvalBulkGroupV83{flex:0 1 auto !important;}
}
@media(max-width:760px){
  #chapelApproval .approvalBulkActionsV83,
  #chapelApproval .approvalBulkGroupV83{display:grid !important;grid-template-columns:1fr !important;width:100% !important;}
  #chapelApproval .approvalBulkGroupV83 button{width:100% !important;}
}


/* v85 chapel approval select checkbox and cached-detail patch */
.approvalV85Header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:8px 0 12px}
.approvalV85Header .hint{margin:0}
.approvalV85SelectTools{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.approvalV85SelectAll{background:#eef2ff;border:1px solid #c7d2fe;border-radius:999px;padding:7px 10px;color:#2f2373}
.approvalV85SelectAll input{width:auto;min-height:auto}
@media(max-width:700px){.approvalV85Header{align-items:flex-start;flex-direction:column}.approvalV85SelectTools{width:100%;justify-content:space-between}}


/* v88 queue action refinements */
.pendingRowV82 .actions button{margin:2px 4px 2px 0}.offlineQueueStatusV82:empty{display:none}.offlineQueueNoticeV82 button{margin-left:6px}


/* v91 queue error visibility */
.queueErrorV91{display:block;margin-top:5px;color:#9f1239;font-weight:700;line-height:1.25;max-width:220px;white-space:normal}
.pendingRowV82 .actions button{margin:2px 4px 2px 0}

/* v89 report print and export-style layout */
.reportSheetWrap {
  width: 100%;
  margin: 0 0 22px 0;
  overflow-x: auto;
}
.reportSheet {
  width: 100%;
  border-collapse: collapse;
  table-layout: auto;
  margin: 0;
  background: #fff;
}
.reportSheet th,
.reportSheet td {
  border: 1px solid #000;
  padding: 6px 7px;
  text-align: center;
  vertical-align: middle;
  font-size: 16px;
  line-height: 1.2;
  color: #000;
  background: #fff;
}
.reportSheet .reportMainTitle {
  font-size: 30px;
  line-height: 1.25;
  font-weight: 900;
  text-align: center;
  padding: 18px 10px;
  white-space: normal;
}
.reportSheet tr:nth-child(2) th {
  font-size: 17px;
  font-weight: 900;
}
.reportSheet .snCell {
  width: 56px;
}
.reportSheet .reportNameCell {
  text-align: left;
  font-size: 16px;
  font-weight: 400;
  white-space: nowrap;
}
.reportSheet .goodConductCol {
  display: none;
}
.reportSheet .reportTotalRow th {
  font-size: 16px;
  font-weight: 900;
}
@page {
  margin: 0.25in;
}
@media print {
  @page { margin: 0.25in; }
  body { background: #fff !important; }
  .topHeader,
  .pageHeading,
  nav,
  #loginCard,
  #passwordChangeCard,
  #forgotPasswordCard,
  #resetPasswordCard,
  .panel > h2,
  .panel > .grid,
  .panel > .reportBlocks,
  .panel > button,
  .tabs,
  #admin,
  #booking,
  #viewer,
  #studentDetail,
  #houseSummary,
  #parentDashboard,
  #sessions,
  #stars,
  #awards,
  #chapel,
  #chapelApproval {
    display: none !important;
  }
  #report,
  #printArea {
    display: block !important;
  }
  .panel {
    box-shadow: none !important;
    margin: 0 !important;
    padding: 0 !important;
    max-width: none !important;
    border-radius: 0 !important;
  }
  .reportSheetWrap {
    overflow: visible !important;
    page-break-after: always;
  }
  .reportSheetWrap:last-child {
    page-break-after: auto;
  }
  .reportSheet th,
  .reportSheet td {
    border: 1px solid #000 !important;
    font-size: 13px !important;
    padding: 4px 5px !important;
  }
  .reportSheet .reportMainTitle {
    font-size: 24px !important;
    padding: 14px 8px !important;
  }
  .reportSheet tr:nth-child(2) th {
    font-size: 14px !important;
  }
  .reportSheet .reportNameCell {
    font-size: 13px !important;
  }
}


/* v94 chapel-prefect hard view lock and report print polish */
body.role-chapel_prefect nav button:not(#navChapel){display:none!important}
body.role-chapel_prefect .panel:not(#chapel){display:none!important}
body.role-chapel_prefect #chapel{display:block!important}
.reportSheetWrap{margin:0 0 24px 0;page-break-inside:avoid}
.reportSheet{width:100%;border-collapse:collapse;border:1px solid #000;background:#fff}
.reportSheet th,.reportSheet td{border:1px solid #000;padding:6px 8px;text-align:center;font-size:13px;color:#000}
.reportSheet .reportMainTitle{font-size:20px;font-weight:800;text-align:center;height:58px;vertical-align:middle;background:#fff}
.reportSheet tr:nth-child(2) th{font-size:14px;font-weight:800;background:#fff}
.reportSheet .reportNameCell{text-align:left;font-size:14px;font-weight:500}
.reportSheet .snCell{width:44px}
.reportTotalRow th{font-size:14px;font-weight:800;background:#fff}
.reportSheet .goodConductCol{display:none}
@page{margin:0.25in}
@media print{body{background:#fff;margin:0}.reportSheetWrap{page-break-inside:avoid;margin-bottom:14px}.reportSheet th,.reportSheet td{border:1px solid #000!important;font-size:11px;padding:4px 5px}.reportSheet .reportMainTitle{font-size:18px;height:50px}.reportSheet tr:nth-child(2) th,.reportTotalRow th{font-size:12px}.reportSheet .reportNameCell{font-size:12px}}

/* v97 Chapel Prefect visibility recovery */
#chapel #chapelStudentCheckboxList {
  min-height: 220px;
  max-height: 520px;
  overflow: auto;
}
#chapel #chapelNegativeCodes,
#chapel #chapelPositiveCodes {
  min-height: 80px;
}
#chapel .chapelCodeRowV97 {
  display: grid;
}
#chapel .chapelStudentRowV97 span {
  line-height: 1.3;
}
