*{box-sizing:border-box}body{font-family:Arial,sans-serif;margin:0;background:#f4f6f8;color:#18202a}header{background:#163a63;color:#fff;padding:18px 5%;display:flex;justify-content:space-between;align-items:center}header h1{margin:0;font-size:22px}header p{margin:4px 0 0;opacity:.85}nav{background:#fff;padding:9px 5%;box-shadow:0 2px 8px #0001;overflow:auto;white-space:nowrap}button{padding:9px 14px;margin:3px;border:1px solid #ccd3da;border-radius:6px;background:#fff;cursor:pointer}.primary{background:#163a63;color:#fff}.page{display:none;max-width:1150px;margin:24px auto;padding:0 18px}.page.active{display:block}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.card,.panel{background:#fff;padding:18px;margin-bottom:16px;border-radius:9px;box-shadow:0 2px 8px #0001}.card b{display:block;font-size:24px;color:#163a63}.card small{color:#667}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}input,select{width:100%;padding:10px;border:1px solid #ccd3da;border-radius:6px;background:#fff}table{width:100%;border-collapse:collapse;margin-top:12px}th,td{padding:9px;border-bottom:1px solid #e1e5e8;text-align:left}.paid{font-weight:bold}.due{font-weight:bold}.ledger-wrap{overflow:auto}.ledger{min-width:850px}.receipt{max-width:720px;margin:20px auto;background:#fff;border:1px solid #bbb;padding:25px}.receipt h2,.receipt h3{text-align:center;margin:5px}.receipt .rline{display:flex;justify-content:space-between;margin:8px 0}.receipt table{margin-top:18px}.receipt .sign{display:flex;justify-content:space-between;margin-top:50px}@media(max-width:750px){header{display:block}.cards,.grid{grid-template-columns:1fr}}


@page {
  size: A4 portrait;
  margin: 10mm;
}

@media print {
  html, body {
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
  }

  header,
  nav,
  main > .page:not(#fees),
  #fees > h2,
  #fees > .panel {
    display: none !important;
  }

  #fees {
    display: block !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  #receiptPreview {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .receipt {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 12mm !important;
    border: 1px solid #777 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    font-size: 13px !important;
    line-height: 1.25 !important;
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }

  .receipt h2 {
    font-size: 19px !important;
    margin: 0 0 3px !important;
  }

  .receipt h3 {
    font-size: 13px !important;
    margin: 2px 0 !important;
  }

  .receipt .rline {
    margin: 6px 0 !important;
  }

  .receipt table {
    margin-top: 10px !important;
  }

  .receipt th,
  .receipt td {
    padding: 6px !important;
  }

  .receipt .sign {
    margin-top: 28px !important;
  }

  .receipt button {
    display: none !important;
  }
}

.month-picker{grid-column:1/-1}
.month-picker>label{display:block;margin-bottom:6px}
.month-options{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:10px;border:1px solid #ccd3da;border-radius:6px;background:#fff}
.month-options label{padding:7px 8px;border:1px solid #e1e5e8;border-radius:5px;background:#f8fafc;cursor:pointer}
.month-options input{width:auto;margin-right:5px}
.receipt-note{margin:10px 0;font-size:12px}
@media(max-width:750px){.month-options{grid-template-columns:repeat(2,1fr)}}

.month-actions{display:flex;gap:8px;margin:6px 0 8px}
.month-actions button{padding:6px 10px;border:1px solid #cbd5e1;border-radius:5px;background:#fff;cursor:pointer}
.month-actions button:hover{background:#f1f5f9}
.receipt-note{font-weight:600}

.fee-class-note{font-size:12px;color:#667;margin:3px 0 8px}

.year-panel{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.year-panel label{margin-right:2px}
.year-panel select{min-width:120px}
.year-note{width:100%;margin:0;font-size:12px;color:#666}

#rollNo[readonly]{background:#f3f4f6;cursor:not-allowed}

#admissionNo[readonly]{background:#f3f4f6;cursor:not-allowed}

#receiptNo[readonly]{background:#f3f4f6;cursor:not-allowed}

.fee-card{background:#fff;border:1px solid #444;padding:16px;max-width:900px;margin:10px auto}
.fee-card-head{text-align:center;border-bottom:2px solid #222;padding-bottom:8px;margin-bottom:10px}
.fee-card-head h2,.fee-card-head h3,.fee-card-head p{margin:3px}
.fee-card-info{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:10px 0}
.fee-card-table{width:100%;border-collapse:collapse;font-size:12px}
.fee-card-table th,.fee-card-table td{border:1px solid #777;padding:5px;text-align:center}
.fee-card-table .paid{font-weight:700}
.fee-card-table .due{font-weight:700}
.fee-card-sign{display:flex;justify-content:space-between;margin-top:35px;font-size:12px}
.feecard-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
@media print{
  @page{size:A4 portrait;margin:10mm}
  body *{visibility:hidden}
  #feecard,#feecard *{visibility:visible}
  #feecard{position:absolute;left:0;top:0;width:100%;padding:0;margin:0}
  #feecard>h2,.feecard-controls{display:none!important}
  .fee-card{max-width:none;margin:0;border:1px solid #444;padding:8mm;box-shadow:none}
}

/* Keep Class and Student selectors compact */
.grid{align-items:start}
#feeForm > select#feeClass,
#feeForm > select#feeStudent{height:auto;min-height:40px;align-self:start;box-sizing:border-box}

.profile-controls{display:grid;grid-template-columns:2fr 1fr;gap:10px;align-items:start}
.profile-list{display:grid;gap:6px;margin-bottom:12px}
.profile-row{width:100%;display:flex;justify-content:space-between;align-items:center;text-align:left;padding:10px 12px;border:1px solid #ccd3da;border-radius:6px;background:#fff;cursor:pointer}
.profile-row:hover{background:#f7f9fb}
.profile-row span{display:flex;flex-direction:column;gap:3px}
.profile-row small{font-size:11px;color:#667}
.profile-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #ddd;padding-bottom:8px}
.profile-header h3{margin:0}
.profile-header p{margin:3px 0;color:#667}
.profile-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0}
.profile-grid div{border:1px solid #e1e5e8;border-radius:6px;padding:9px}
.profile-grid b,.profile-grid span{display:block}
.profile-grid b{font-size:11px;color:#667;margin-bottom:4px}
@media(max-width:750px){.profile-controls,.profile-grid{grid-template-columns:1fr}.profile-row{gap:8px;align-items:flex-start}}

.privacy-note{grid-column:1/-1;font-size:11px;color:#666;margin-top:-4px}
#studentAadhaar,#fatherAadhaar,#motherAadhaar{letter-spacing:.4px}

.ledger-student-details{margin:12px 0}
.ledger-student-card{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:12px;border:1px solid #d9dee3;border-radius:8px;background:#f8fafc}
.ledger-student-card div{background:#fff;border:1px solid #e3e7eb;border-radius:6px;padding:8px}
.ledger-student-card b,.ledger-student-card span{display:block}
.ledger-student-card b{font-size:11px;color:#667;margin-bottom:3px}
@media(max-width:750px){.ledger-student-card{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.ledger-student-card{grid-template-columns:1fr}}

#address{grid-column:span 2}
@media(max-width:750px){#address{grid-column:auto}}

/* Student Master: labels sit directly above every input/select */
#studentForm .field{display:flex;flex-direction:column;gap:5px;min-width:0}
#studentForm .field label{font-size:12px;font-weight:600;color:#444;margin:0}
#studentForm .field input,
#studentForm .field select{width:100%;box-sizing:border-box}
#studentForm .field-wide{grid-column:span 2}
#studentForm .privacy-note{grid-column:1/-1}
#studentForm .primary{align-self:end}
@media(max-width:750px){#studentForm .field-wide{grid-column:auto}}

#studentForm #pin{letter-spacing:.5px}

.profile-title{display:flex;align-items:center;gap:12px}
.profile-photo-wrap{width:72px;height:72px}
.student-photo{width:72px;height:72px;border-radius:8px;object-fit:cover;border:1px solid #ccd3da}
.student-photo.placeholder{display:flex;align-items:center;justify-content:center;font-size:10px;color:#777;background:#f1f3f5;text-align:center}

.document-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.document-card{border:1px solid #d9dee3;border-radius:8px;padding:12px;background:#fff}
.document-card h4{margin:0 0 10px}
.document-card label{display:block;font-size:11px;font-weight:600;color:#555;margin:7px 0 4px}
.document-card input,.document-card select{width:100%;box-sizing:border-box}
@media(max-width:750px){.document-grid{grid-template-columns:1fr}}

.document-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.document-card{border:1px solid #d9dee3;border-radius:8px;padding:12px;background:#fff}
.document-card h4{margin:0 0 10px}.document-card label{display:block;font-size:11px;font-weight:600;color:#555;margin:7px 0 4px}
.document-card input,.document-card select{width:100%;box-sizing:border-box}
@media(max-width:750px){.document-grid{grid-template-columns:1fr}}

.muted{color:#666;font-size:12px}
.promotion-info{display:flex;flex-wrap:wrap;gap:18px;padding:10px 0;font-size:12px}
.promotion-info div{padding:7px 10px;background:#f6f8fa;border:1px solid #e0e4e8;border-radius:6px}

.signature-line{font:italic 15px cursive;border-bottom:1px solid #555;padding-bottom:2px}
.print-id-wrap{display:flex;justify-content:center}
@media print{body{margin:0}}

.a4-select-actions{display:flex;align-items:center;gap:12px;margin:12px 0;flex-wrap:wrap}.a4-select-actions span{font-weight:700}.a4-student-list{max-height:380px;overflow:auto;border:1px solid #ddd;border-radius:8px;margin:10px 0 14px}.a4-student-row{display:flex;align-items:center;gap:10px;padding:9px 12px;border-bottom:1px solid #eee;cursor:pointer}.a4-student-row input{width:18px;height:18px}.a4-student-row span{display:flex;flex-direction:column}.a4-student-row small{color:#666;margin-top:2px}
.a4-print-buttons{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}.a4-print-buttons button{min-width:190px}

/* V64 — typography only */



/* V69 — balanced layout based on the supplied screenshot */
.idcard-new-panel{max-width:900px;margin:0 auto}
.idcard-controls{background:#f5f8f4;border:1px solid #d7e3d7;border-radius:10px;padding:16px;margin-bottom:18px}
.idcard-controls label{display:block;font-weight:700;color:#244c32}
.idcard-controls select{display:block;margin-top:7px;width:100%;max-width:420px;padding:10px;border:1px solid #b8c9bb;border-radius:7px;background:#fff}
.new-id-preview{min-height:650px;display:flex;align-items:center;justify-content:center;background:#edf2ee;border-radius:12px;border:1px dashed #b8c8bb;padding:28px}
.new-id-empty{color:#607064;font-size:16px;text-align:center}

.new-id-card{
  width:340px;height:540px;position:relative;overflow:hidden;
  background:#f8faea;color:#173f2a;border:2px solid #9db982;
  border-radius:18px;box-shadow:0 8px 28px rgba(20,50,30,.20);
  font-family:Arial,Helvetica,sans-serif;
}
.new-id-card::before{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background:
    radial-gradient(circle at 90% 34%,rgba(107,170,91,.13) 0 2px,transparent 2.6px),
    radial-gradient(circle at 94% 39%,rgba(107,170,91,.10) 0 1.5px,transparent 2px),
    linear-gradient(135deg,rgba(255,255,255,.25),transparent 42%);
}
.new-id-hole{
  position:absolute;top:9px;left:50%;transform:translateX(-50%);
  width:52px;height:15px;border-radius:12px;background:#f5f6ed;
  border:2px solid #929c93;box-shadow:inset 0 1px 4px rgba(0,0,0,.16);z-index:5;
}

/* Header occupies a dedicated area so the logo never overlaps the title. */
.new-id-top-wave{
  position:absolute;left:-10%;right:-10%;top:-50px;height:150px;
  background:linear-gradient(160deg,rgba(197,224,177,.85),rgba(242,247,223,.12));
  border-radius:0 0 50% 50%;z-index:0;
}
.new-id-top-dots{
  position:absolute;right:8px;top:112px;width:64px;height:92px;opacity:.45;
  background-image:radial-gradient(#9fc79c 1.3px,transparent 1.5px);
  background-size:9px 9px;z-index:0;
}
.new-id-academic{
  position:absolute;right:18px;top:34px;width:110px;text-align:center;
  font-size:11px;font-weight:700;line-height:1.15;z-index:3;
}
.new-id-academic strong{display:block;font-size:18px;margin-top:4px}
.new-id-brand{
  position:absolute;left:18px;right:18px;top:68px;height:108px;z-index:3;
  text-align:center;
}
.new-id-logo{
  position:absolute;left:0;top:4px;width:68px;height:68px;
}
.new-id-logo img{width:100%;height:100%;object-fit:contain}
.new-id-school-title{
  margin-left:70px;margin-right:0;
  font-family:Georgia,"Times New Roman",serif;font-weight:800;
  font-size:20px;line-height:1.02;letter-spacing:0;color:#185a31;
  text-align:center;
}
.new-id-school-place{
  margin:8px 0 0 70px;font-size:11.5px;font-weight:700;color:#1d5732;
  white-space:nowrap;text-align:center;
}
.new-id-registration{
  margin:7px 0 0 70px;font-size:9.5px;font-weight:700;color:#ad3030;
  white-space:nowrap;text-align:center;
}

/* Photo and name are centered with predictable spacing. */
.new-id-photo-wrap{
  position:absolute;top:181px;left:50%;transform:translateX(-50%);
  width:124px;height:138px;border:2px solid #174c31;border-radius:12px;
  overflow:hidden;background:#f4f5ef;z-index:2;
}
.new-id-photo-wrap img{width:100%;height:100%;object-fit:cover}
.new-id-photo-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#7d8a80;font-weight:700}
.new-id-name{
  position:absolute;top:327px;left:16px;right:16px;text-align:center;
  color:#185b32;font-size:21px;font-weight:800;line-height:1.05;
  white-space:nowrap;overflow:hidden;z-index:2;
}

/* Details are larger and stay clear of the footer. */
.new-id-details{
  position:absolute;left:27px;right:23px;top:363px;
  font-size:10.8px;line-height:1.18;color:#1d2e23;z-index:2;
}
.new-id-details>div{
  display:grid;grid-template-columns:93px 1fr;column-gap:5px;margin-bottom:4px;
}
.new-id-details span{font-weight:700}
.new-id-details b{font-weight:600;overflow-wrap:anywhere}

/* Principal sits above the wave/footer with enough breathing room. */
.new-id-principal{
  position:absolute;right:19px;bottom:45px;text-align:center;z-index:3;
  font-size:10.5px;color:#1c4e2f;
}
.new-id-sign-line{width:68px;height:15px;border-bottom:1px solid #244a35;margin-bottom:2px}

.new-id-bottom-wave{
  position:absolute;left:-10%;right:-10%;bottom:-36px;height:96px;
  background:
    linear-gradient(166deg,transparent 0 30%,rgba(95,166,80,.25) 31% 40%,
    rgba(31,126,57,.68) 41% 50%,rgba(20,92,48,.94) 51% 100%);
  border-radius:50% 50% 0 0;z-index:1;
}
.new-id-footer{
  position:absolute;left:0;right:0;bottom:0;height:25px;
  background:#075d2d;color:#fff;display:flex;align-items:center;
  justify-content:center;font-size:10px;font-weight:700;letter-spacing:.1px;z-index:4;
}

/* V70 — screenshot-based spacing refinements */
.new-id-academic{top:31px;right:17px}
.new-id-academic strong{font-size:17px}
.new-id-brand{top:72px}
.new-id-logo{left:0;top:1px;width:65px;height:65px}
.new-id-school-title{margin-left:66px;font-size:19px}
.new-id-school-place{margin-left:66px;margin-top:7px;font-size:11px}
.new-id-registration{margin-left:66px;margin-top:6px;font-size:9.2px}

.new-id-photo-wrap{top:178px;width:121px;height:136px}
.new-id-name{top:320px;font-size:20px}
.new-id-details{
  top:355px;left:24px;right:20px;
  font-size:10.6px;line-height:1.16
}
.new-id-details>div{
  grid-template-columns:88px 1fr;
  column-gap:5px;
  margin-bottom:3.5px
}
.new-id-principal{
  right:18px;bottom:43px;
  font-size:10px
}
.new-id-sign-line{width:62px;height:14px}

.new-id-bottom-wave{bottom:-42px;height:90px}
.new-id-footer{height:23px;font-size:9.5px}

/* V71 — final visual refinements from screenshot */
.new-id-logo{left:-2px;top:-2px;width:62px;height:62px}
.new-id-school-title{margin-left:61px;font-size:20px;line-height:1.02}
.new-id-school-place{margin-left:61px;font-size:11.5px}
.new-id-registration{margin-left:61px;font-size:9.6px}
.new-id-photo-wrap{top:178px;width:121px;height:136px}
.new-id-name{top:320px;left:13px;right:13px;font-size:21px}
.new-id-details{
  top:356px;left:23px;right:20px;
  font-size:11.2px;line-height:1.18
}
.new-id-details>div{
  grid-template-columns:88px minmax(0,1fr);
  column-gap:6px;margin-bottom:4px
}
.new-id-details b{overflow-wrap:anywhere;word-break:normal}
.new-id-principal{right:17px;bottom:48px;font-size:10.5px}
.new-id-sign-line{width:64px;height:15px}
.new-id-bottom-wave{bottom:-48px;height:88px}
.new-id-footer{height:22px;font-size:9.5px}

/* V72 — final polish from screenshot */
.new-id-logo{left:-5px;top:-5px;width:62px;height:62px}
.new-id-school-title{margin-left:58px;margin-right:2px;font-size:20px}
.new-id-school-place{margin-left:58px;font-size:11.5px}
.new-id-registration{margin-left:58px;font-size:9.6px}

.new-id-photo-wrap{top:173px;width:121px;height:136px}
.new-id-name{top:316px;left:11px;right:11px;font-size:21px}

.new-id-details{
  top:353px;left:22px;right:19px;
  font-size:11.5px;line-height:1.17;
}
.new-id-details>div{
  grid-template-columns:88px minmax(0,1fr);
  column-gap:7px;margin-bottom:4px;
}
.new-id-details span{font-weight:700;color:#17261d}
.new-id-details b{font-weight:600;color:#1d2d22}

.new-id-principal{right:16px;bottom:51px;font-size:10.5px}
.new-id-sign-line{width:64px;height:15px}
.new-id-bottom-wave{bottom:-51px;height:88px}
.new-id-footer{height:22px;font-size:9.5px}

/* V73 — final individual-element polish */
.new-id-logo{left:0;top:-3px;width:60px;height:60px}
.new-id-school-title{
  margin-left:60px;margin-right:0;
  font-size:21px;line-height:1.01;
  letter-spacing:.1px;
}
.new-id-school-place{
  margin-left:60px;
  font-size:11.6px;
  margin-top:7px;
}
.new-id-registration{
  margin-left:60px;
  font-size:9.7px;
  margin-top:6px;
}
.new-id-photo-wrap{top:173px;width:121px;height:136px}
.new-id-name{
  top:316px;left:9px;right:9px;
  font-size:21px;
}
.new-id-details{
  top:353px;left:22px;right:18px;
  font-size:11.5px;line-height:1.17;
}
.new-id-details>div{
  grid-template-columns:88px minmax(0,1fr);
  column-gap:7px;margin-bottom:4px;
}
.new-id-principal{
  right:17px;
  bottom:55px;
  font-size:10.5px;
}
.new-id-sign-line{width:65px;height:15px}
.new-id-bottom-wave{bottom:-52px;height:86px}
.new-id-footer{height:22px;font-size:9.5px}

/* V74 — information/detail enhancement only */
.new-id-photo-wrap{top:171px;width:123px;height:138px}
.new-id-name{top:316px;left:8px;right:8px;font-size:21.5px}
.new-id-details{
  top:351px;left:20px;right:17px;
  font-size:12px;line-height:1.16;
}
.new-id-details>div{
  grid-template-columns:91px minmax(0,1fr);
  column-gap:7px;margin-bottom:4.5px;
}
.new-id-details span{font-weight:700}
.new-id-details b{font-weight:600}
.new-id-principal{right:16px;bottom:55px;font-size:10.5px}

/* V75 — student-name descender fix only */
.new-id-name{
  top:315px;
  left:8px;
  right:8px;
  height:29px;
  line-height:1.15;
  padding-top:1px;
  padding-bottom:3px;
  box-sizing:border-box;
  overflow:visible;
  display:flex;
  align-items:flex-start;
  justify-content:center;
}

/* V76 — A4 ID Card Print controls */
.a4-new-panel{max-width:900px}
.a4-new-toolbar{display:flex;gap:16px;align-items:flex-end;justify-content:space-between;flex-wrap:wrap}
.a4-new-filters{flex:1 1 560px;margin:0}
.a4-new-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.a4-new-actions button{padding:9px 14px;border:1px solid #b7c5ba;border-radius:7px;background:#fff;cursor:pointer;font-weight:700}
.a4-new-actions strong{color:#24573a;font-size:14px}
.a4-student-list{
  margin-top:14px;max-height:330px;overflow:auto;
  border:1px solid #d3ded5;border-radius:9px;background:#fbfcfa;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1px;
}
.a4-new-student-row{
  display:flex;gap:10px;align-items:center;padding:10px 12px;
  background:#fff;border-bottom:1px solid #edf1ed;cursor:pointer;
}
.a4-new-student-row input{width:18px;height:18px;accent-color:#176b3a}
.a4-new-student-row span{display:flex;flex-direction:column;min-width:0}
.a4-new-student-row b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.a4-new-student-row small{color:#68736b;margin-top:2px}
.a4-print-buttons{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.a4-print-buttons button{min-width:180px}
.a4-print-note{color:#68736b;font-size:13px;margin-bottom:0}

/* V79 — direct A4 print rendering fix */
@media print{
  html,body{
    width:210mm!important;
    min-width:210mm!important;
    margin:0!important;
    padding:0!important;
    background:#fff!important;
  }
  .a4-toolbar{display:none!important}
  .a4-pages{padding:0!important;margin:0!important}
  .a4-new-sheet{
    width:210mm!important;
    height:297mm!important;
    min-height:297mm!important;
    margin:0!important;
    padding:12mm 18mm!important;
    display:grid!important;
    grid-template-columns:54mm 54mm 54mm!important;
    grid-template-rows:86mm 86mm 86mm!important;
    column-gap:5mm!important;
    row-gap:5mm!important;
    background:#fff!important;
    box-shadow:none!important;
    overflow:hidden!important;
    break-after:page!important;
    page-break-after:always!important;
  }
  .a4-new-sheet:last-child{
    break-after:auto!important;
    page-break-after:auto!important;
  }
  .a4-new-sheet > .new-id-card{
    display:block!important;
    position:relative!important;
    left:auto!important;
    top:auto!important;
    width:54mm!important;
    height:86mm!important;
    margin:0!important;
    transform:none!important;
    box-shadow:none!important;
    overflow:hidden!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }
  .a4-new-sheet .new-id-hole{display:block!important}
  .a4-new-sheet .new-id-logo img{display:block!important}
}
@page{
  size:A4 portrait;
  margin:0;
}

/* V80 — critical fix: the main application's global print CSS hides body children.
   The A4 popup must explicitly make its own content visible. */
@media print{
  html.a4-print-document,
  html.a4-print-document body{
    visibility:visible!important;
    display:block!important;
    width:210mm!important;
    min-width:210mm!important;
    margin:0!important;
    padding:0!important;
    background:#fff!important;
  }
  html.a4-print-document body *{
    visibility:visible!important;
  }
  html.a4-print-document .a4-toolbar{
    display:none!important;
    visibility:hidden!important;
  }
  html.a4-print-document .a4-pages{
    display:block!important;
    visibility:visible!important;
    padding:0!important;
    margin:0!important;
  }
  html.a4-print-document .a4-new-sheet{
    display:grid!important;
    visibility:visible!important;
    width:210mm!important;
    height:297mm!important;
    min-height:297mm!important;
    margin:0!important;
    padding:12mm 18mm!important;
    grid-template-columns:54mm 54mm 54mm!important;
    grid-template-rows:86mm 86mm 86mm!important;
    column-gap:5mm!important;
    row-gap:5mm!important;
    overflow:hidden!important;
    box-shadow:none!important;
    break-after:page!important;
    page-break-after:always!important;
  }
  html.a4-print-document .a4-new-sheet:last-child{
    break-after:auto!important;
    page-break-after:auto!important;
  }
  /* Preserve the exact V76/V77/V78 card scaling that made Preview A4 correct. */
  html.a4-print-document .a4-new-sheet > .new-id-card{
    visibility:visible!important;
    display:block!important;
    position:relative!important;
    width:340px!important;
    height:540px!important;
    margin:0!important;
    transform:scale(.6)!important;
    transform-origin:top left!important;
    box-shadow:none!important;
    overflow:hidden!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }
}
@page{
  size:A4 portrait;
  margin:0;
}

/* V81 — preserve V75 green background/theme in A4 printing */
@media print{
  html.a4-print-document,
  html.a4-print-document body,
  html.a4-print-document .a4-pages,
  html.a4-print-document .a4-new-sheet,
  html.a4-print-document .new-id-card,
  html.a4-print-document .new-id-card *,
  html.a4-print-document .new-id-card::before,
  html.a4-print-document .new-id-card::after{
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
    color-adjust:exact!important;
  }

  html.a4-print-document .new-id-card{
    background:#f8faea!important;
    border-color:#9db982!important;
  }

  html.a4-print-document .new-id-card::before{
    background:
      radial-gradient(circle at 90% 34%,rgba(107,170,91,.13) 0 2px,transparent 2.6px),
      radial-gradient(circle at 94% 39%,rgba(107,170,91,.10) 0 1.5px,transparent 2px),
      linear-gradient(135deg,rgba(255,255,255,.25),transparent 42%)!important;
  }

  html.a4-print-document .new-id-top-wave{
    background:linear-gradient(160deg,rgba(197,224,177,.85),rgba(242,247,223,.12))!important;
  }

  html.a4-print-document .new-id-top-dots{
    background-image:radial-gradient(#9fc79c 1.3px,transparent 1.5px)!important;
  }

  html.a4-print-document .new-id-bottom-wave{
    background:
      linear-gradient(166deg,transparent 0 30%,rgba(95,166,80,.25) 31% 40%,
      rgba(31,126,57,.68) 41% 50%,rgba(20,92,48,.94) 51% 100%)!important;
  }

  html.a4-print-document .new-id-footer{
    background:#075d2d!important;
    color:#fff!important;
  }

  html.a4-print-document .new-id-name{
    color:#185b32!important;
  }

  html.a4-print-document .new-id-registration{
    color:#a52323!important;
  }
}



/* V98 — Reading Certificate */
.reading-cert-panel{display:flex;flex-direction:column;gap:18px}
.reading-cert-controls{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:12px}
.reading-cert-control label{display:flex;flex-direction:column;gap:6px;font-weight:700}
.reading-cert-control input,.reading-cert-control select{padding:10px;border:1px solid #cbd5c0;border-radius:8px;background:#fff}
.reading-cert-preview{display:flex;justify-content:center;overflow:auto;padding:12px;background:#f2f4ee;border-radius:12px}
.reading-cert-empty{padding:80px 20px;text-align:center;color:#66715f;font-weight:600}
.reading-certificate{position:relative;width:1123px;height:794px;background:#fffdf5;overflow:hidden;box-sizing:border-box;color:#173b25;font-family:Georgia,"Times New Roman",serif;box-shadow:0 8px 30px rgba(0,0,0,.16);flex:0 0 auto}
.rc-border{position:absolute;inset:22px;border:2px solid #9a7a2f;pointer-events:none}
.rc-border-inner{inset:32px;border:1px solid #c5a85a}
.rc-corner{position:absolute;width:58px;height:58px;border-color:#2f6b3d;border-style:solid}
.rc-corner-tl{top:42px;left:42px;border-width:5px 0 0 5px}
.rc-corner-tr{top:42px;right:42px;border-width:5px 5px 0 0}
.rc-corner-bl{bottom:42px;left:42px;border-width:0 0 5px 5px}
.rc-corner-br{bottom:42px;right:42px;border-width:0 5px 5px 0}
.rc-content{position:absolute;inset:54px 72px;display:flex;flex-direction:column;align-items:center;text-align:center}
.rc-school{font-size:34px;font-weight:800;letter-spacing:3px;color:#185b32;margin-top:4px}
.rc-address{font-size:17px;letter-spacing:1px;color:#53634f;margin-top:4px}
.rc-logo{width:78px;height:78px;object-fit:contain;margin:15px 0 5px}
.rc-title{font-size:39px;font-weight:800;letter-spacing:5px;color:#8b671d;margin-top:2px}
.rc-subtitle{font-size:17px;letter-spacing:2px;text-transform:uppercase;color:#53634f;margin-top:4px}
.rc-body{max-width:860px;margin-top:25px;font-size:19px;line-height:1.45}
.rc-body p{margin:7px 0}
.rc-student-name{font-size:36px;font-weight:800;color:#185b32;border-bottom:1px solid #9a7a2f;display:inline-block;padding:2px 28px 4px;min-width:440px}
.rc-details{font-size:16px;color:#4d5b4b;margin-top:10px!important}
.rc-statement{font-size:18px}
.rc-meta{width:88%;display:flex;justify-content:space-between;margin-top:18px;font-size:15px;color:#455443}
.rc-signatures{width:86%;display:flex;justify-content:space-between;margin-top:auto;margin-bottom:38px}
.rc-signatures>div{width:190px;font-size:15px;color:#3f4c3e}
.rc-sign-line{height:28px;border-bottom:1px solid #4a5448;margin-bottom:6px}
.rc-footer{position:absolute;left:0;right:0;bottom:-2px;padding:8px 0;background:#185b32;color:#fff;font-size:12px;letter-spacing:3px}
.reading-cert-actions{display:flex;justify-content:center}
@media(max-width:900px){
  .reading-cert-controls{grid-template-columns:1fr 1fr}
  .reading-certificate{transform:scale(.72);transform-origin:top center;margin-bottom:-220px}
}
@media print{
  body.print-reading-certificate .page:not(#readingcertificate){display:none!important}
}

/* V99 — Reading Certificate family details and manual PEN */
.reading-cert-controls{grid-template-columns:repeat(6,minmax(140px,1fr))}
.rc-family-details{width:88%;margin:12px auto 6px;display:grid;grid-template-columns:1fr 1fr;gap:6px 28px;text-align:left;font-size:15px;color:#445244}
.rc-family-details div:last-child{grid-column:1 / -1}
.rc-family-details span{color:#687364}
.rc-family-details b{color:#263b2b}
.rc-meta{width:92%;gap:18px}
@media(max-width:1100px){
  .reading-cert-controls{grid-template-columns:repeat(3,minmax(140px,1fr))}
}

/* V100 — Reading Certificate visual refinement */
.reading-certificate{background:#fffdf8}
.rc-content{inset:48px 68px}
.rc-school{font-size:36px;margin-top:0}
.rc-address{font-size:18px}
.rc-logo{width:84px;height:84px;margin:12px 0 3px}
.rc-title{font-size:41px;margin-top:0}
.rc-subtitle{font-size:18px}
.rc-body{max-width:930px;margin-top:19px;font-size:20px;line-height:1.4}
.rc-body>p:first-child{margin:4px 0 3px}
.rc-student-name{font-size:39px;padding:2px 34px 5px;min-width:480px}
.rc-details{font-size:17px;margin-top:8px!important}
.rc-family-details{width:94%;margin:10px auto 8px;display:grid;grid-template-columns:1fr 1fr;gap:7px 42px;text-align:left;font-size:17px;color:#344638}
.rc-family-details>div{display:grid;grid-template-columns:112px 1fr;align-items:baseline;gap:7px;padding:4px 8px;border-bottom:1px solid #d8d1bd}
.rc-family-details span{font-size:15px;color:#697264}
.rc-family-details b{font-size:17px;color:#233b2a}
.rc-family-details .rc-address-row{grid-column:1 / -1;grid-template-columns:112px 1fr}
.rc-statement{font-size:19px;margin:7px 0}
.rc-meta{width:94%;display:grid;grid-template-columns:1fr 1fr 1fr;gap:18px;margin-top:14px}
.rc-meta>div{padding:7px 10px 8px;border-top:1px solid #b6a77d;border-bottom:1px solid #b6a77d;display:flex;flex-direction:column;gap:3px}
.rc-meta span{font-size:13px;letter-spacing:1px;text-transform:uppercase;color:#68705f}
.rc-meta b{font-size:16px;color:#263d2b;min-height:18px}
.rc-signatures{width:86%;margin-bottom:34px}
.rc-signatures>div{width:210px;font-size:16px}
.rc-footer{padding:9px 0;font-size:12px}
@media(max-width:1100px){
  .reading-cert-controls{grid-template-columns:repeat(3,minmax(140px,1fr))}
}

/* V101 — Approx. 0.6-inch safe outer margin */
.reading-certificate{
  width:1123px;
  height:794px;
}
.rc-border-outer{
  inset:58px;
}
.rc-border-inner{
  inset:68px;
}
.rc-corner-tl{top:76px;left:76px}
.rc-corner-tr{top:76px;right:76px}
.rc-corner-bl{bottom:76px;left:76px}
.rc-corner-br{bottom:76px;right:76px}

/* All certificate wording and logo remain inside the 0.6-inch border margin. */
.rc-content{
  inset:86px 90px 78px;
}
.rc-school{font-size:34px}
.rc-address{font-size:17px}
.rc-logo{width:76px;height:76px;margin:8px 0 2px}
.rc-title{font-size:39px}
.rc-subtitle{font-size:17px}
.rc-body{max-width:900px;margin-top:13px;font-size:18px;line-height:1.35}
.rc-student-name{font-size:36px;min-width:450px}
.rc-details{font-size:16px}
.rc-family-details{width:96%;margin:8px auto 6px;font-size:16px;gap:5px 32px}
.rc-family-details>div{padding:3px 7px}
.rc-family-details span{font-size:14px}
.rc-family-details b{font-size:16px}
.rc-statement{font-size:17px;margin:5px 0}
.rc-meta{width:96%;margin-top:10px}
.rc-meta>div{padding:5px 8px 6px}
.rc-meta span{font-size:12px}
.rc-meta b{font-size:15px}
.rc-signatures{margin-bottom:28px}
.rc-signatures>div{width:195px;font-size:15px}
.rc-footer{padding:7px 0;font-size:11px}

/* V102 — Fix bottom signature/footer overlap */
.rc-content{
  inset:86px 90px 96px;
}
.rc-body{
  margin-top:11px;
}
.rc-meta{
  margin-top:8px;
}
.rc-signatures{
  position:absolute;
  left:7%;
  right:7%;
  bottom:25px;
  width:86%;
  margin:0;
  z-index:2;
}
.rc-signatures>div{
  width:195px;
}
.rc-footer{
  bottom:0;
  z-index:1;
}

/* V103 — Move logo to top-left blank space and free vertical room */
.rc-logo.rc-logo-corner{
  position:absolute;
  top:2px;
  left:8px;
  width:82px;
  height:82px;
  object-fit:contain;
  margin:0;
}
.rc-school{margin-top:0}
.rc-address{margin-top:3px}
.rc-title{margin-top:20px}
.rc-subtitle{margin-top:2px}
.rc-body{margin-top:14px}
.rc-meta{margin-top:10px}

/* Signature block now has dedicated space above footer */
.rc-signatures{
  position:absolute;
  left:6%;
  right:6%;
  bottom:42px;
  width:88%;
  margin:0;
  z-index:3;
}
.rc-signatures>div{
  width:205px;
}
.rc-sign-line{
  height:22px;
  margin-bottom:5px;
}
.rc-footer{
  bottom:0;
  z-index:2;
}

/* V104 — Logo moved approximately 0.3 inch to the right only */
.rc-logo.rc-logo-corner{
  left:37px;
}

/* V105 — Certificate number below logo with fixed KKBA prefix */
.rc-cert-no-input{
  display:flex;
  align-items:center;
  gap:5px;
}
.rc-cert-no-input>span{
  font-weight:800;
  color:#185b32;
}
.rc-cert-no-input input{
  flex:1;
  min-width:0;
}
.rc-certificate-no-corner{
  position:absolute;
  top:84px;
  left:37px;
  width:82px;
  text-align:center;
  font-family:Georgia,"Times New Roman",serif;
  font-size:11px;
  font-weight:800;
  letter-spacing:.5px;
  color:#8b671d;
  line-height:1.15;
}
.rc-certificate-no-corner span{
  display:block;
  font-weight:700;
  margin-top:1px;
  white-space:nowrap;
}
.rc-meta{
  grid-template-columns:1fr 1fr;
}

/* V106 — Single-line certificate number */
.rc-certificate-no-corner{
  top:84px;
  left:0;
  width:125px;
  white-space:nowrap;
  font-size:10px;
  letter-spacing:.2px;
  text-align:center;
}

/* V107 — Date of Birth added to certificate */
.rc-details{font-size:15px;white-space:nowrap}

/* V108 — Refine certificate number under logo only */
.rc-certificate-no-corner{
  top:84px;
  left:2px;
  width:92px;
  white-space:nowrap;
  font-size:8.5px;
  letter-spacing:0;
  text-align:center;
  line-height:1;
}

/* V109 — Date left, Place below Date, Principal signature only */
.rc-bottom-info{
  position:absolute;
  left:0;
  right:0;
  bottom:42px;
  min-height:58px;
  display:flex;
  align-items:flex-end;
  z-index:3;
}
.rc-date-place{
  position:absolute;
  left:0;
  bottom:0;
  width:330px;
  display:flex;
  flex-direction:column;
  gap:7px;
  text-align:left;
}
.rc-date-place>div{
  display:grid;
  grid-template-columns:72px 1fr;
  gap:8px;
  align-items:baseline;
  border-bottom:1px solid #d8d1bd;
  padding-bottom:3px;
}
.rc-date-place span,
.rc-pen span{
  font-size:13px;
  letter-spacing:1px;
  text-transform:uppercase;
  color:#68705f;
}
.rc-date-place b,
.rc-pen b{
  font-size:15px;
  color:#263d2b;
}
.rc-pen{
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  bottom:0;
  width:180px;
  display:flex;
  flex-direction:column;
  gap:4px;
  text-align:center;
  border-top:1px solid #b6a77d;
  border-bottom:1px solid #b6a77d;
  padding:5px 8px 6px;
}
.rc-signatures{
  position:absolute;
  right:0;
  left:auto;
  bottom:35px;
  width:245px;
  margin:0;
  display:flex;
  justify-content:center;
  z-index:4;
}
.rc-signatures>div{
  width:205px;
  font-size:15px;
}
.rc-sign-line{
  height:22px;
  margin-bottom:5px;
}

/* V110 — Add a small gap between logo and certificate number */
.rc-certificate-no-corner{
  top:90px;
}

/* V111 — Crystal-clear certificate typography */
.reading-certificate,
.reading-certificate p,
.reading-certificate span,
.reading-certificate div,
.reading-certificate b{
  opacity:1 !important;
}
.rc-school,
.rc-address,
.rc-title,
.rc-subtitle,
.rc-body,
.rc-details,
.rc-family-details,
.rc-family-details span,
.rc-family-details b,
.rc-statement,
.rc-date-place span,
.rc-date-place b,
.rc-pen span,
.rc-pen b,
.rc-signatures,
.rc-signatures span,
.rc-certificate-no-corner{
  color:#1f2f24 !important;
  opacity:1 !important;
  text-shadow:none !important;
}
.rc-school{color:#185b32 !important}
.rc-title{color:#8b671d !important}
.rc-subtitle{color:#185b32 !important}
.rc-student-name{color:#185b32 !important}
.rc-details b,
.rc-family-details b,
.rc-date-place b,
.rc-pen b{color:#17251c !important}
.rc-family-details span,
.rc-date-place span,
.rc-pen span{color:#27372c !important}
.rc-certificate-no-corner{color:#17251c !important}
.rc-signatures{color:#17251c !important}

/* V112 — School registration number added to the address line */
.rc-address{
  font-size:15px;
  white-space:nowrap;
  letter-spacing:.15px;
}


/* V119 — Reading Certificate exact-print fix.
   Overrides the older global receipt / fee-card / ID-card print rules. */
@media print {
  @page {
    size: A4 landscape;
    margin: 0;
  }

  html,
  body.reading-cert-print-mode {
    width: 297mm !important;
    height: 210mm !important;
    min-width: 297mm !important;
    min-height: 210mm !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
    overflow: hidden !important;
  }

  /* Older project print rules hide every page except Fees.
     Explicitly restore the Reading Certificate's ancestor chain. */
  body.reading-cert-print-mode main {
    display: block !important;
    visibility: visible !important;
    position: static !important;
    width: 297mm !important;
    height: 210mm !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.reading-cert-print-mode main > .page {
    display: none !important;
  }

  body.reading-cert-print-mode main > #readingcertificate {
    display: block !important;
    visibility: visible !important;
    position: static !important;
    width: 297mm !important;
    height: 210mm !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
  }

  /* Hide every interface element without using display:none on
     ancestors of the certificate itself. */
  body.reading-cert-print-mode header,
  body.reading-cert-print-mode nav,
  body.reading-cert-print-mode #readingcertificate > h2,
  body.reading-cert-print-mode .reading-cert-controls,
  body.reading-cert-print-mode .reading-cert-actions {
    display: none !important;
  }

  body.reading-cert-print-mode .reading-cert-panel,
  body.reading-cert-print-mode .reading-cert-preview {
    display: block !important;
    visibility: visible !important;
    width: 297mm !important;
    height: 210mm !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #fff !important;
    overflow: hidden !important;
  }

  /* The older Fee Card print rule sets body * to visibility:hidden.
     Restore only the final certificate. */
  body.reading-cert-print-mode * {
    visibility: hidden !important;
  }

  body.reading-cert-print-mode #readingcertificate,
  body.reading-cert-print-mode #readingcertificate .reading-cert-panel,
  body.reading-cert-print-mode #readingcertificate .reading-cert-preview,
  body.reading-cert-print-mode #printReadingCertificate,
  body.reading-cert-print-mode #printReadingCertificate * {
    visibility: visible !important;
  }

  body.reading-cert-print-mode #printReadingCertificate {
    display: block !important;
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    width: 1123px !important;
    height: 794px !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    box-shadow: none !important;
    overflow: hidden !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  body.reading-cert-print-mode #printReadingCertificate img {
    max-width: none !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
}

/* V120 — Auto-generated PEN */
#readingCertPEN[readonly]{
  background:#f4f7f1;
  color:#173b25;
  font-weight:700;
  cursor:not-allowed;
}

/* V123 Teacher Enrollment */
#teacherenrollment .teacher-table-wrap{overflow:auto}
#teacherenrollment table{width:100%;border-collapse:collapse}
#teacherenrollment th,#teacherenrollment td{white-space:nowrap}
#teacherenrollment .teacher-actions{display:flex;gap:10px;margin-top:14px}

/* V125 — New Portrait Teacher ID Card */
.teacher-id-preview-v125{
  display:flex;
  justify-content:center;
  padding:18px 0;
}
.teacher-id-card-v125{
  width:54mm;
  height:86mm;
  box-sizing:border-box;
  overflow:hidden;
  position:relative;
  background:linear-gradient(180deg,#f7fbff 0%,#ffffff 48%,#eef8f2 100%);
  border:1.2px solid #174d7a;
  border-radius:4mm;
  box-shadow:0 8px 24px rgba(0,0,0,.18);
  font-family:Arial,sans-serif;
}
.tid-top-v125{
  height:16mm;
  display:flex;
  align-items:center;
  padding:2.2mm 2.6mm 1.5mm;
  box-sizing:border-box;
  background:linear-gradient(135deg,#123d70,#1f6792);
  color:#fff;
}
.tid-logo-v125{
  width:10.5mm;height:10.5mm;
  object-fit:contain;
  flex:none;
  margin-right:1.6mm;
}
.tid-school-wrap-v125{min-width:0;text-align:center;flex:1}
.tid-school-v125{font-weight:900;font-size:3.55mm;line-height:1;white-space:nowrap}
.tid-place-v125{font-size:1.55mm;margin-top:1mm;white-space:nowrap}
.tid-reg-v125{font-size:1.35mm;margin-top:.6mm;white-space:nowrap}
.tid-title-v125{
  text-align:center;
  font-weight:900;
  font-size:2.5mm;
  letter-spacing:.25mm;
  color:#123d70;
  padding:1.5mm 0 1mm;
}
.tid-photo-wrap-v125{text-align:center}
.tid-photo-v125{
  width:18mm;height:22mm;
  object-fit:cover;
  border:1.2px solid #1f6792;
  border-radius:1.5mm;
  background:#fff;
}
.tid-person-name-v125{
  text-align:center;
  color:#103b70;
  font-weight:900;
  font-size:3.2mm;
  text-transform:uppercase;
  margin-top:1mm;
  line-height:1.05;
}
.tid-designation-v125{
  text-align:center;
  color:#28734d;
  font-size:2.2mm;
  font-weight:800;
  margin-top:.6mm;
}
.tid-details-v125{
  padding:1.6mm 3.2mm 0;
  font-size:1.85mm;
  line-height:1.3;
}
.tid-details-v125>div{
  display:grid;
  grid-template-columns:14.5mm 2mm minmax(0,1fr);
  margin:.45mm 0;
}
.tid-details-v125 span{font-weight:700;color:#394552}
.tid-details-v125 i{font-style:normal;font-weight:800;color:#394552}
.tid-details-v125 b{
  color:#123d70;
  font-weight:800;
  overflow-wrap:anywhere;
}
.tid-bottom-v125{
  position:absolute;
  left:0;right:0;bottom:0;
  height:9mm;
  background:linear-gradient(135deg,#1c714a,#2e8b5c);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:1.4mm 3mm;
  box-sizing:border-box;
}
.tid-valid-v125{font-size:1.55mm;font-weight:700}
.tid-sign-v125{text-align:center;font-size:1.55mm}
.tid-sign-v125 span{
  display:block;
  width:15mm;
  border-top:.3mm solid #fff;
  margin-bottom:.5mm;
}
.teacher-id-actions-v125{text-align:center;margin:10px 0 20px}

@media print{
  body.teacher-id-print-v125 > *{visibility:hidden!important}
  body.teacher-id-print-v125 #teacherIDCardV125,
  body.teacher-id-print-v125 #teacherIDCardV125 *{visibility:visible!important}
  body.teacher-id-print-v125 #teacherIDCardV125{
    display:block!important;
    position:absolute!important;
    left:50%!important;
    top:10mm!important;
    transform:translateX(-50%)!important;
    width:54mm!important;
    height:86mm!important;
    margin:0!important;
    box-shadow:none!important;
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }
  @page{size:A4 portrait;margin:0}
}

/* V126 — Teacher ID redesign only */
#teacheridcard .teacher-id-card-v125{width:54mm!important;height:86mm!important;border:0!important;border-radius:3.2mm!important;background:#fff!important;overflow:hidden!important;box-shadow:0 8px 24px rgba(0,0,0,.18)!important}
#teacheridcard .tid-top-v125{height:17mm!important;padding:2mm 2.5mm!important;background:linear-gradient(135deg,#092f5f,#15568a)!important;position:relative!important}
#teacheridcard .tid-top-v125:after{content:""!important;position:absolute!important;left:0!important;right:0!important;bottom:-1.5mm!important;height:3mm!important;background:linear-gradient(100deg,#e8ad1d 0 43%,#fff 43% 48%,#20865a 48% 100%)!important;clip-path:polygon(0 0,100% 38%,100% 100%,0 62%)!important}
#teacheridcard .tid-logo-v125{width:11mm!important;height:11mm!important;margin-right:1.8mm!important;background:#fff!important;border-radius:50%!important;padding:.5mm!important;box-sizing:border-box!important}
#teacheridcard .tid-school-v125{font-size:3.55mm!important;text-shadow:0 .4mm .7mm rgba(0,0,0,.22)!important}
#teacheridcard .tid-place-v125{font-size:1.48mm!important}
#teacheridcard .tid-reg-v125{font-size:1.3mm!important}
#teacheridcard .tid-title-v125{margin-top:2mm!important;padding:1.1mm 0 .6mm!important;font-size:2.35mm!important;letter-spacing:.35mm!important;color:#092f5f!important}
#teacheridcard .tid-title-v125:after{content:""!important;display:block!important;width:18mm!important;height:.55mm!important;margin:.8mm auto 0!important;border-radius:2mm!important;background:#e6ae21!important}
#teacheridcard .tid-photo-wrap-v125{margin-top:.5mm!important}
#teacheridcard .tid-photo-v125{width:19mm!important;height:23mm!important;border:1mm solid #fff!important;outline:.6mm solid #15568a!important;border-radius:2.5mm!important;box-shadow:0 1mm 2.5mm rgba(0,0,0,.15)!important}
#teacheridcard .tid-person-name-v125{margin-top:1.4mm!important;font-size:3.05mm!important;color:#092f5f!important}
#teacheridcard .tid-designation-v125{display:table!important;margin:.8mm auto 0!important;padding:.65mm 3mm!important;border-radius:4mm!important;background:#e9f5ef!important;color:#18704a!important;font-size:1.9mm!important}
#teacheridcard .tid-details-v125{margin:1.5mm 2.8mm 0!important;padding:1.4mm 1.7mm!important;border-radius:2mm!important;background:#f4f7fb!important;border-left:1mm solid #15568a!important;font-size:1.72mm!important;line-height:1.25!important}
#teacheridcard .tid-details-v125>div{grid-template-columns:13.5mm 2mm minmax(0,1fr)!important;margin:.38mm 0!important}
#teacheridcard .tid-details-v125 span{color:#4d5966!important;font-weight:700!important}
#teacheridcard .tid-details-v125 i{color:#15568a!important}
#teacheridcard .tid-details-v125 b{color:#092f5f!important;font-weight:800!important}
#teacheridcard .tid-bottom-v125{height:8mm!important;padding:1mm 3mm!important;background:linear-gradient(135deg,#0e6847,#23865d)!important;border-top:1mm solid #e6ae21!important}
#teacheridcard .tid-valid-v125,#teacheridcard .tid-sign-v125{font-size:1.45mm!important}
@media print{body.teacher-id-print-v125 #teacherIDCardV125{width:54mm!important;height:86mm!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}}

/* V127 — Teacher ID fit fix only */
#teacheridcard .tid-top-v125{height:15mm!important;padding:1.5mm 2mm!important}
#teacheridcard .tid-logo-v125{width:9.5mm!important;height:9.5mm!important;margin-right:1.2mm!important}
#teacheridcard .tid-school-wrap-v125{min-width:0!important;overflow:visible!important}
#teacheridcard .tid-school-v125{font-size:2.85mm!important;letter-spacing:-.04mm!important;white-space:nowrap!important;overflow:visible!important}
#teacheridcard .tid-place-v125{font-size:1.35mm!important;white-space:nowrap!important}
#teacheridcard .tid-reg-v125{font-size:1.18mm!important;white-space:nowrap!important}
#teacheridcard .tid-title-v125{margin-top:1.6mm!important;padding:.7mm 0 .35mm!important;font-size:2.15mm!important}
#teacheridcard .tid-title-v125:after{margin:.5mm auto 0!important;height:.45mm!important}
#teacheridcard .tid-photo-wrap-v125{margin-top:.2mm!important}
#teacheridcard .tid-photo-v125{width:17mm!important;height:20mm!important}
#teacheridcard .tid-person-name-v125{margin-top:1mm!important;font-size:2.65mm!important;line-height:1!important}
#teacheridcard .tid-designation-v125{margin:.55mm auto 0!important;padding:.45mm 2.4mm!important;font-size:1.65mm!important}
#teacheridcard .tid-details-v125{margin:1mm 2.6mm 0!important;padding:.9mm 1.4mm!important;font-size:1.52mm!important;line-height:1.13!important}
#teacheridcard .tid-details-v125>div{grid-template-columns:13.2mm 1.7mm minmax(0,1fr)!important;margin:.20mm 0!important}
#teacheridcard .tid-bottom-v125{height:7mm!important;padding:.8mm 3mm!important}
#teacheridcard .tid-valid-v125,#teacheridcard .tid-sign-v125{font-size:1.3mm!important}

/* V129 — Teacher ID details spacing balance ONLY */
#teacheridcard .tid-details-v125{
  margin-top:2.2mm!important;
  padding:1.8mm 1.6mm!important;
  font-size:1.62mm!important;
  line-height:1.28!important;
}
#teacheridcard .tid-details-v125>div{
  grid-template-columns:13.5mm 1.8mm minmax(0,1fr)!important;
  margin:.52mm 0!important;
  min-height:2.15mm!important;
  align-items:center!important;
}

/* V130 — Principal signature on Student and Teacher ID cards */
.principal-signature{display:block;object-fit:contain;background:transparent}
#teacheridcard .teacher-principal-signature{width:13mm!important;height:3.2mm!important;margin:0 auto -.1mm!important}
.student-principal-signature{width:15mm!important;height:4mm!important;margin:0 auto .2mm!important;object-fit:contain!important}
@media print{.principal-signature{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}}

/* V131 — Clean transparent Principal signature; ID layouts unchanged */
#teacheridcard .teacher-principal-signature{
  width:16mm!important;
  height:4.2mm!important;
  margin:0 auto -.25mm!important;
  background:transparent!important;
  mix-blend-mode:multiply;
}
.student-principal-signature{
  width:17mm!important;
  height:4.6mm!important;
  margin:0 auto .1mm!important;
  background:transparent!important;
  mix-blend-mode:multiply;
}
@media print{
  #teacheridcard .teacher-principal-signature,
  .student-principal-signature{
    background:transparent!important;
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }
}

/* V132 — Enhanced Principal signature only:
   transparent paper removal + soft glow + larger proportional display */
#teacheridcard .teacher-principal-signature{
  width:20mm!important;
  height:5.6mm!important;
  object-fit:contain!important;
  object-position:center!important;
  margin:-1.2mm auto -.45mm!important;
  background:transparent!important;
  mix-blend-mode:normal!important;
}
.student-principal-signature{
  width:20mm!important;
  height:5.6mm!important;
  object-fit:contain!important;
  object-position:center!important;
  margin:-1mm auto -.15mm!important;
  background:transparent!important;
  mix-blend-mode:normal!important;
}
@media print{
  #teacheridcard .teacher-principal-signature,
  .student-principal-signature{
    background:transparent!important;
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }
}

/* V133 — signature correction based on V132 screenshot */
.principal-signature{
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
  background:transparent!important;
  object-fit:contain!important;
}
#teacheridcard .teacher-principal-signature{
  width:23mm!important;
  height:6.2mm!important;
  margin:-1.8mm auto -.7mm!important;
  display:block!important;
}
.student-principal-signature{
  width:23mm!important;
  height:6.2mm!important;
  margin:-1.5mm auto -.45mm!important;
  display:block!important;
}
@media print{
  .principal-signature{
    background:transparent!important;
    border:0!important;
    outline:0!important;
    box-shadow:none!important;
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }
}

/* V134 — Student ID: remove line above Principal signature only */
.new-id-card .new-id-sign-line,
.a4-sheet .new-id-sign-line,
.new-id-card .signature-line,
.a4-sheet .signature-line{
  display:none!important;
  border:0!important;
  border-top:0!important;
}

/* V135 — Teacher ID only: remove white line above Principal */
#teacheridcard .tid-sign-v125 > span{
  display:none!important;
  border:0!important;
  border-top:0!important;
}

/* V138 — Student ID only: remove upper strap/hole slot mark */
.new-id-card .new-id-hole,
.a4-sheet .new-id-hole{
  display:none!important;
}

/* V139 — Staff Enrollment / Staff ID */
#teacheridcard .tid-details-v125{
  font-size:1.52mm!important;
  line-height:1.18!important;
}
#teacheridcard .tid-details-v125>div{
  margin:.34mm 0!important;
  min-height:1.95mm!important;
}

/* V140 — Staff ID validity row */
#teacheridcard .tid-details-v125{
  font-size:1.48mm!important;
  line-height:1.16!important;
}
#teacheridcard .tid-details-v125>div{
  margin:.28mm 0!important;
  min-height:1.85mm!important;
}

/* V141 — Staff ID only: remove yellow decorative line above photo */
#teacheridcard .tid-title-v125:after{
  display:none!important;
  content:none!important;
}

/* V142 — Staff A4 ID Print selection page */
#staffa4idprint .a4-new-student-row{
  display:flex;
  align-items:center;
  gap:10px;
  padding:9px 11px;
  border:1px solid #d8dfda;
  border-radius:8px;
  background:#fff;
  margin-bottom:7px;
}
#staffa4idprint .a4-new-student-row span{
  display:flex;
  flex-direction:column;
}
#staffa4idprint .a4-new-student-row small{
  opacity:.72;
  margin-top:2px;
}

/* V148 — Exam & Marksheet System */
.exam-marks-form{margin-top:14px}
.exam-mark-grid{display:grid;gap:8px}
.exam-mark-row{
  display:grid;
  grid-template-columns:minmax(180px,1fr) 130px 70px;
  align-items:center;
  gap:10px;
  padding:8px 10px;
  border:1px solid #dfe5df;
  border-radius:7px;
  background:#fff;
}
.exam-mark-row span{font-weight:700;color:#263d2c}
.exam-mark-row small{color:#657267}

.marksheet-preview-v148{
  display:flex;
  justify-content:center;
  margin-top:18px;
  overflow:auto;
}
.marksheet-v148{
  width:210mm;
  min-height:297mm;
  background:#fff;
  box-sizing:border-box;
  padding:14mm 16mm;
  border:1px solid #b9c4bc;
  box-shadow:0 8px 24px rgba(0,0,0,.12);
  color:#17251c;
  position:relative;
}
.ms-head-v148{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  text-align:center;
  border-bottom:3px solid #1b6238;
  padding-bottom:8px;
}
.ms-head-v148 img{width:62px;height:62px;object-fit:contain}
.ms-school-v148{font-size:28px;font-weight:900;color:#173a8f}
.ms-address-v148{font-size:13px;font-weight:700;margin-top:3px}
.ms-reg-v148{font-size:11px;margin-top:2px}
.ms-title-v148{
  text-align:center;
  font-size:25px;
  font-weight:900;
  letter-spacing:2px;
  color:#1b6238;
  margin-top:16px;
}
.ms-exam-v148{text-align:center;font-weight:700;margin:5px 0 15px}
.ms-student-v148{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px 22px;
  margin-bottom:15px;
  padding:10px 12px;
  background:#f4f7f4;
  border-radius:7px;
}
.ms-student-v148 div{display:grid;grid-template-columns:105px 1fr;gap:7px}
.ms-student-v148 span{color:#657267}
.ms-table-v148{
  width:100%;
  border-collapse:collapse;
  font-size:13px;
}
.ms-table-v148 th,.ms-table-v148 td{
  border:1px solid #89958b;
  padding:7px 8px;
  text-align:center;
}
.ms-table-v148 th{background:#e8f1ea;color:#173d25}
.ms-table-v148 td:first-child,.ms-table-v148 th:first-child{text-align:left}
.ms-summary-v148{
  margin-top:14px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:8px;
}
.ms-summary-v148 div{
  border:1px solid #c4cec6;
  padding:9px;
  text-align:center;
  border-radius:6px;
  background:#fafcf9;
}
.ms-summary-v148 span{display:block;font-size:11px;color:#68736a}
.ms-summary-v148 b{display:block;margin-top:4px;font-size:15px;color:#173a8f}
.ms-sign-v148{
  position:absolute;
  left:16mm;right:16mm;bottom:16mm;
  display:flex;
  justify-content:space-between;
  text-align:center;
}
.ms-sign-v148>div{width:45mm;border-top:1px solid #4d584f;padding-top:5px}
.ms-sign-v148 img{width:30mm;height:9mm;object-fit:contain;display:block;margin:-11mm auto 1mm}
.marksheet-actions-v148{text-align:center;margin-top:12px}

@media(max-width:900px){
  .marksheet-v148{transform:scale(.7);transform-origin:top center;margin-bottom:-85mm}
  .ms-summary-v148{grid-template-columns:1fr 1fr}
}
@media print{
  body.marksheet-print-v148 > *{visibility:hidden!important}
  body.marksheet-print-v148 #printMarksheetV148,
  body.marksheet-print-v148 #printMarksheetV148 *{visibility:visible!important}
  body.marksheet-print-v148 #printMarksheetV148{
    position:absolute!important;
    left:0!important;top:0!important;
    width:210mm!important;
    min-height:297mm!important;
    margin:0!important;
    box-shadow:none!important;
    border:0!important;
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }
  @page{size:A4 portrait;margin:0}
}

/* V149 — Class-wise Subject Setup */
#classSubjectsV149,
#examSubjectsV148{
  font-family:inherit;
  line-height:1.45;
}
#examSubjectsV148[readonly]{
  background:#f5f7f5;
  color:#2e3a31;
}

/* V151 — Left vertical navigation menu */
:root{--kkba-sidebar-width:225px}

nav{
  position:fixed!important;
  left:0!important; top:0!important; bottom:0!important;
  width:var(--kkba-sidebar-width)!important;
  height:100vh!important;
  display:flex!important;
  flex-direction:column!important;
  flex-wrap:nowrap!important;
  align-items:stretch!important;
  justify-content:flex-start!important;
  gap:6px!important;
  padding:18px 12px!important;
  margin:0!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  z-index:1000!important;
  box-sizing:border-box!important;
}
nav button{
  display:block!important;
  width:100%!important;
  flex:0 0 auto!important;
  margin:0!important;
  text-align:left!important;
  white-space:normal!important;
  line-height:1.25!important;
  padding:10px 12px!important;
  border-radius:7px!important;
}
body{
  padding-left:var(--kkba-sidebar-width)!important;
  box-sizing:border-box!important;
}
header,main{box-sizing:border-box!important}

@media print{
  nav{display:none!important}
  body{padding-left:0!important}
}
@media(max-width:760px){
  :root{--kkba-sidebar-width:180px}
  nav{padding:12px 8px!important}
  nav button{padding:9px 8px!important;font-size:12px!important}
}

/* V152 — Bulk Marks Entry + Result Declaration */
.bulk-marks-meta-v152{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:12px 0;
}
.bulk-marks-meta-v152>*{
  padding:6px 9px;
  border-radius:6px;
  background:#eef4ef;
}
.bulk-marks-table-wrap-v152{
  overflow:auto;
  max-height:560px;
  border:1px solid #d9e0da;
  border-radius:8px;
}
.bulk-marks-table-v152{
  width:100%;
  border-collapse:collapse;
}
.bulk-marks-table-v152 th,
.bulk-marks-table-v152 td{
  border-bottom:1px solid #e2e7e3;
  padding:8px 10px;
  text-align:left;
}
.bulk-marks-table-v152 thead th{
  position:sticky;
  top:0;
  background:#edf3ee;
  z-index:2;
}
.bulk-mark-input-v152{
  width:110px;
}
.bulk-actions-v152,
.result-declare-actions-v152{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:12px;
}
.result-summary-grid-v152{
  display:grid;
  grid-template-columns:repeat(4,minmax(150px,1fr));
  gap:10px;
  margin-top:12px;
}
.result-summary-grid-v152>div{
  border:1px solid #d8e0da;
  border-radius:7px;
  padding:10px;
  background:#fafcfa;
}
.result-summary-grid-v152 span{
  display:block;
  font-size:12px;
  color:#6c776d;
}
.result-summary-grid-v152 b{
  display:block;
  margin-top:4px;
}
.result-ready-v152{
  margin-top:12px;
  padding:10px 12px;
  background:#e7f6eb;
  color:#195f2f;
  border:1px solid #b9ddc2;
  border-radius:7px;
  font-weight:700;
}
.result-missing-v152{
  margin-top:12px;
  padding:10px 12px;
  background:#fff4e5;
  color:#7d4d00;
  border:1px solid #efd1a3;
  border-radius:7px;
}
.result-declared-on-v152{
  margin-top:10px;
  color:#58645b;
}
@media(max-width:900px){
  .result-summary-grid-v152{
    grid-template-columns:1fr 1fr;
  }
}

.notice-result-preview-v153{overflow:auto;margin-top:12px}.notice-sheet-v153{width:297mm;min-height:210mm;background:#fff;margin:auto;padding:9mm;box-sizing:border-box;border:1px solid #bbb;color:#17251c}.nrhead{display:flex;justify-content:center;align-items:center;gap:10px;text-align:center;border-bottom:2px solid #1b6238;padding-bottom:5px}.nrhead img{width:48px;height:48px;object-fit:contain}.nrhead h1{margin:0;color:#173a8f;font-size:23px}.nrhead small{display:block}.notice-sheet-v153>h2{text-align:center;color:#1b6238;margin:8px 0 2px}.nrsub,.nrmerit{text-align:center;font-size:11px;font-weight:bold}.nrmerit{font-style:italic;margin:3px 0 7px}.notice-sheet-v153 table{width:100%;border-collapse:collapse;font-size:8.5px}.notice-sheet-v153 th,.notice-sheet-v153 td{border:1px solid #7e8b81;padding:3px;text-align:center;white-space:nowrap}.notice-sheet-v153 th{background:#e7f0e9}.notice-sheet-v153 .nrname{text-align:left;font-weight:bold}.nrsummary{margin-top:7px;padding:6px;background:#f4f7f4;font-size:9px}.nrsigns{display:flex;justify-content:space-between;margin:15mm 12mm 0;text-align:center}.nrsigns>span{width:40mm;border-top:1px solid #555;padding-top:4px}.nrsigns img{display:block;width:28mm;height:8mm;object-fit:contain;margin:-10mm auto 1mm}@media print{.notice-sheet-v153{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}}

/* V154 — Progress Report Card */
.progress-actions-v154{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.progress-report-preview-v154{overflow:auto;margin-top:16px}
.progress-card-v154{width:297mm;min-height:210mm;margin:0 auto;padding:9mm;box-sizing:border-box;background:#fff;color:#17251c;border:1px solid #b9c4bc;box-shadow:0 6px 20px rgba(0,0,0,.12)}
.pr-header-v154{display:flex;justify-content:center;align-items:center;gap:11px;text-align:center;border-bottom:2px solid #1b6238;padding-bottom:5px}
.pr-header-v154 img{width:52px;height:52px;object-fit:contain}.pr-school-v154{font-size:24px;font-weight:900;color:#173a8f}.pr-address-v154{font-size:11px;font-weight:700}.pr-reg-v154{font-size:9px}
.pr-title-v154{text-align:center;font-size:20px;font-weight:900;letter-spacing:1.4px;color:#1b6238;margin-top:7px}.pr-year-v154{text-align:center;font-size:11px;font-weight:700;margin-top:2px}
.pr-student-v154{display:grid;grid-template-columns:repeat(3,1fr);gap:5px 18px;margin:8px 0;padding:7px 9px;background:#f4f7f4;border:1px solid #d8e0da;border-radius:6px}
.pr-student-v154 div{display:grid;grid-template-columns:30mm 1fr;gap:5px;font-size:10px}.pr-student-v154 span{color:#667169}
.pr-table-v154{width:100%;border-collapse:collapse;font-size:8px}.pr-table-v154 th,.pr-table-v154 td{border:1px solid #7f8b82;padding:3px 2.5px;text-align:center}.pr-table-v154 thead th,.pr-table-v154 tfoot th{background:#e6f0e8;color:#173d25}
.pr-subject-v154{text-align:left!important;font-weight:800;min-width:28mm}.pr-mark-v154{font-weight:800}.pr-table-v154 td small{display:block;font-size:6.8px;color:#6b766d}
.pr-summary-v154{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:8px}.pr-summary-v154>div{border:1px solid #d4ddd6;background:#fafcfa;padding:6px;text-align:center;border-radius:5px}.pr-summary-v154 span{display:block;font-size:8px;color:#68736a}.pr-summary-v154 b{display:block;font-size:11px;margin-top:2px;color:#173a8f}
.pr-note-v154{text-align:center;margin-top:6px;font-size:8px;font-weight:700}.pr-remarks-v154{display:flex;align-items:flex-end;gap:7px;margin-top:8px;font-size:9px}.pr-remarks-v154 div{flex:1;border-bottom:1px solid #68736a;height:14px}
.pr-signatures-v154{display:flex;justify-content:space-between;margin:14mm 10mm 0;text-align:center;font-size:9px}.pr-signatures-v154>div{width:38mm;border-top:1px solid #4f5a51;padding-top:4px}.pr-signatures-v154 img{width:27mm;height:8mm;object-fit:contain;display:block;margin:-10mm auto 1mm}
@media print{.progress-card-v154{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}}

/* V155 — Progress Report: full A4 landscape with 0.6 inch margins + larger fonts */
.progress-card-v154{
  width:297mm!important;
  min-height:210mm!important;
  padding:15.24mm!important; /* 0.6 inch */
  box-sizing:border-box!important;
}

/* Header */
.pr-header-v154 img{
  width:60px!important;
  height:60px!important;
}
.pr-school-v154{
  font-size:30px!important;
}
.pr-address-v154{
  font-size:14px!important;
}
.pr-reg-v154{
  font-size:11px!important;
}
.pr-title-v154{
  font-size:25px!important;
  margin-top:9px!important;
}
.pr-year-v154{
  font-size:14px!important;
  margin-top:4px!important;
}

/* Student details */
.pr-student-v154{
  gap:7px 22px!important;
  margin:10px 0!important;
  padding:9px 11px!important;
}
.pr-student-v154 div{
  grid-template-columns:31mm 1fr!important;
  font-size:12px!important;
}
.pr-student-v154 span{
  font-size:11px!important;
}

/* Main marks table */
.pr-table-v154{
  font-size:10.5px!important;
}
.pr-table-v154 th,
.pr-table-v154 td{
  padding:5px 4px!important;
  line-height:1.25!important;
}
.pr-table-v154 th{
  font-size:10px!important;
}
.pr-subject-v154{
  min-width:31mm!important;
  font-size:11px!important;
}
.pr-mark-v154{
  font-size:11px!important;
}
.pr-table-v154 td small{
  font-size:8px!important;
  margin-top:1px!important;
}

/* Summary */
.pr-summary-v154{
  gap:8px!important;
  margin-top:10px!important;
}
.pr-summary-v154>div{
  padding:8px!important;
}
.pr-summary-v154 span{
  font-size:10px!important;
}
.pr-summary-v154 b{
  font-size:14px!important;
}

/* Notes, remarks, signatures */
.pr-note-v154{
  font-size:10px!important;
  margin-top:8px!important;
}
.pr-remarks-v154{
  font-size:11px!important;
  margin-top:10px!important;
}
.pr-signatures-v154{
  margin:15mm 10mm 0!important;
  font-size:11px!important;
}
.pr-signatures-v154>div{
  width:42mm!important;
}
.pr-signatures-v154 img{
  width:30mm!important;
  height:9mm!important;
}

/* Ensure print uses full A4 with the same 0.6 inch inner margins */
@media print{
  #printProgressReportV154{
    width:297mm!important;
    min-height:210mm!important;
    padding:15.24mm!important;
    box-sizing:border-box!important;
    margin:0!important;
    border:0!important;
    box-shadow:none!important;
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }
}

/* V156 — Grading scale note on Progress Report */
.pr-grade-note-v156{
  margin-top:7px;
  padding:6px 8px;
  border:1px solid #cfd9d1;
  background:#f7faf7;
  border-radius:5px;
  font-size:9.5px;
  line-height:1.35;
  text-align:left;
}
.pr-grade-note-v156 b{
  font-weight:800;
}
@media print{
  .pr-grade-note-v156{
    font-size:9.5px!important;
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }
}

/* V157 — Merit rule note */
.nrmerit{
  font-weight:700!important;
}

/* V159 — Exam Module with left-to-right submodule tabs */
.exam-module-tabs-v159{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:10px 0 16px;
  padding:10px;
  background:#eef3ef;
  border:1px solid #d5ded7;
  border-radius:10px;
}
.exam-tab-v159{
  border:1px solid #c8d4cb;
  background:#fff;
  color:#24402d;
  padding:9px 13px;
  border-radius:7px;
  font-weight:700;
  cursor:pointer;
}
.exam-tab-v159.active{
  background:#185b32!important;
  color:#fff!important;
  border-color:#185b32!important;
  box-shadow:0 2px 7px rgba(0,0,0,.12);
}
.exam-submodule-v159{
  display:none;
}
.exam-submodule-v159.active{
  display:block;
}
#examsystem .exam-submodule-v159 > .panel{
  margin-top:0;
}
@media(max-width:900px){
  .exam-module-tabs-v159{
    display:grid;
    grid-template-columns:1fr 1fr;
  }
  .exam-tab-v159{
    width:100%;
  }
}
@media print{
  .exam-module-tabs-v159{display:none!important}
}

/* V160 — Portrait Noticeboard Merit Result */
.notice-sheet-v153.portrait-merit-v160{
  width:210mm!important;
  min-height:297mm!important;
  padding:14mm!important;
  box-sizing:border-box!important;
}
.portrait-merit-v160 .nrhead img{
  width:58px!important;
  height:58px!important;
}
.portrait-merit-v160 .nrhead h1{
  font-size:24px!important;
}
.portrait-merit-v160>h2{
  font-size:20px!important;
  margin-top:10px!important;
}
.portrait-merit-v160 .nrsub{
  font-size:12px!important;
  margin-top:4px!important;
}
.portrait-merit-v160 .nrmerit{
  font-size:10px!important;
  line-height:1.35!important;
  margin:6px 0 10px!important;
}
.portrait-merit-v160 table{
  font-size:11px!important;
}
.portrait-merit-v160 th,
.portrait-merit-v160 td{
  padding:6px 5px!important;
}
.portrait-merit-v160 .nrname{
  min-width:52mm!important;
  text-align:left!important;
}
.portrait-merit-v160 .nrsummary{
  font-size:10.5px!important;
  line-height:1.5!important;
  margin-top:10px!important;
  padding:8px!important;
}
.nr-grade-note-v160{
  margin-top:8px;
  padding:7px 8px;
  border:1px solid #d4ddd6;
  background:#f7faf7;
  font-size:9px;
  line-height:1.4;
}
.portrait-merit-v160 .nrsigns{
  margin-top:20mm!important;
  font-size:11px!important;
}
@media print{
  .notice-sheet-v153.portrait-merit-v160{
    width:186mm!important;
    min-height:273mm!important;
    padding:7mm!important;
    margin:0!important;
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }
}

/* V162 — Short merit ranking rule note */
.nr-merit-rule-note-v162{
  margin-top:5px;
  padding:6px 8px;
  border:1px solid #d4ddd6;
  background:#f7faf7;
  font-size:9px;
  line-height:1.35;
}
.nr-merit-rule-note-v162 b{
  font-weight:800;
}
@media print{
  .nr-merit-rule-note-v162{
    font-size:9px!important;
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }
}

/* V163 — Noticeboard Result: up to 45 students on one A4 Portrait */
.notice-sheet-v153.portrait-merit-v160{
  width:210mm!important;
  min-height:297mm!important;
  padding:9mm!important;
  box-sizing:border-box!important;
}

/* Compact official header without making it look cramped */
.portrait-merit-v160 .nrhead{
  gap:7px!important;
  padding-bottom:3px!important;
}
.portrait-merit-v160 .nrhead img{
  width:46px!important;
  height:46px!important;
}
.portrait-merit-v160 .nrhead h1{
  font-size:21px!important;
  line-height:1.05!important;
}
.portrait-merit-v160 .nrhead b{
  font-size:9.5px!important;
}
.portrait-merit-v160 .nrhead small{
  font-size:7.5px!important;
}
.portrait-merit-v160>h2{
  font-size:16px!important;
  line-height:1.05!important;
  margin:5px 0 1px!important;
}
.portrait-merit-v160 .nrsub{
  font-size:9.5px!important;
  line-height:1.15!important;
  margin-top:1px!important;
}
.portrait-merit-v160 .nrmerit{
  font-size:7.5px!important;
  line-height:1.15!important;
  margin:2px 0 4px!important;
}

/* Main result table: one full-width table, readable but compact */
.portrait-merit-v160 table{
  width:100%!important;
  table-layout:fixed!important;
  border-collapse:collapse!important;
  font-size:8.4px!important;
  line-height:1.05!important;
}
.portrait-merit-v160 th,
.portrait-merit-v160 td{
  padding:1.55px 2.5px!important;
  height:4.15mm!important;
  box-sizing:border-box!important;
  vertical-align:middle!important;
}
.portrait-merit-v160 th{
  font-size:7.9px!important;
  font-weight:800!important;
  white-space:nowrap!important;
}
.portrait-merit-v160 th:nth-child(1),
.portrait-merit-v160 td:nth-child(1){width:13%!important}
.portrait-merit-v160 th:nth-child(2),
.portrait-merit-v160 td:nth-child(2){width:9%!important}
.portrait-merit-v160 th:nth-child(3),
.portrait-merit-v160 td:nth-child(3){width:30%!important}
.portrait-merit-v160 th:nth-child(4),
.portrait-merit-v160 td:nth-child(4){width:15%!important}
.portrait-merit-v160 th:nth-child(5),
.portrait-merit-v160 td:nth-child(5){width:13%!important}
.portrait-merit-v160 th:nth-child(6),
.portrait-merit-v160 td:nth-child(6){width:8%!important}
.portrait-merit-v160 th:nth-child(7),
.portrait-merit-v160 td:nth-child(7){width:12%!important}
.portrait-merit-v160 .nrname{
  min-width:0!important;
  text-align:left!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  font-weight:700!important;
}

/* Keep summary and both N.B. notes compact at the bottom */
.portrait-merit-v160 .nrsummary{
  margin-top:4px!important;
  padding:4px 6px!important;
  font-size:7.8px!important;
  line-height:1.2!important;
}
.portrait-merit-v160 .nr-grade-note-v160,
.portrait-merit-v160 .nr-merit-rule-note-v162{
  margin-top:3px!important;
  padding:3px 5px!important;
  font-size:6.9px!important;
  line-height:1.2!important;
}

/* Signatures stay on the same sheet */
.portrait-merit-v160 .nrsigns{
  margin:8mm 8mm 0!important;
  font-size:8.5px!important;
}
.portrait-merit-v160 .nrsigns>span{
  width:35mm!important;
  padding-top:2px!important;
}
.portrait-merit-v160 .nrsigns img{
  width:24mm!important;
  height:7mm!important;
  margin:-8mm auto 0!important;
}

@media print{
  .notice-sheet-v153.portrait-merit-v160{
    width:196mm!important;
    min-height:283mm!important;
    padding:5mm!important;
    margin:0!important;
    box-sizing:border-box!important;
    page-break-inside:avoid!important;
    break-inside:avoid-page!important;
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }
  .portrait-merit-v160 table{
    page-break-inside:avoid!important;
    break-inside:avoid-page!important;
  }
}

/* V165 — Noticeboard Result Sheet: all visible content must print */
@media print{
  .notice-sheet-v153,
  .notice-sheet-v153 *,
  .portrait-merit-v160,
  .portrait-merit-v160 *{
    visibility:visible!important;
    opacity:1!important;
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }

  .notice-sheet-v153{
    display:block!important;
    position:relative!important;
    overflow:visible!important;
    transform:none!important;
    zoom:1!important;
  }

  .notice-sheet-v153 table{
    display:table!important;
    visibility:visible!important;
  }
  .notice-sheet-v153 thead{display:table-header-group!important}
  .notice-sheet-v153 tbody{display:table-row-group!important}
  .notice-sheet-v153 tr{display:table-row!important}
  .notice-sheet-v153 th,
  .notice-sheet-v153 td{display:table-cell!important}

  .notice-sheet-v153 .nrhead,
  .notice-sheet-v153 .nrsub,
  .notice-sheet-v153 .nrmerit,
  .notice-sheet-v153 .nrsummary,
  .notice-sheet-v153 .nr-grade-note-v160,
  .notice-sheet-v153 .nr-merit-rule-note-v162{
    display:block!important;
    visibility:visible!important;
  }

  .notice-sheet-v153 .nrhead{
    display:flex!important;
  }
}

/* V166 — Correct full-width A4 portrait print preview */
@media print{
  html,body{
    width:auto!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
  }

  .notice-sheet-v153,
  .notice-sheet-v153.portrait-merit-v160{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    min-height:0!important;
    height:auto!important;
    margin:0!important;
    padding:0!important;
    position:static!important;
    transform:none!important;
    transform-origin:initial!important;
    zoom:1!important;
    overflow:visible!important;
  }

  .portrait-merit-v160 table{
    width:100%!important;
    max-width:none!important;
    table-layout:fixed!important;
  }
}

/* V167 — Marksheet and Progress Report print-preview correction
   Same strategy as the working V166 Noticeboard print fix. */
@media print{
  #printMarksheetV148,
  #printMarksheetV148 *,
  #printProgressReportV154,
  #printProgressReportV154 *{
    visibility:visible!important;
    opacity:1!important;
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }

  #printMarksheetV148,
  #printProgressReportV154{
    position:relative!important;
    left:auto!important;
    top:auto!important;
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    min-height:0!important;
    height:auto!important;
    margin:0!important;
    box-shadow:none!important;
    border:0!important;
    transform:none!important;
    transform-origin:initial!important;
    zoom:1!important;
    overflow:visible!important;
  }

  #printMarksheetV148 .ms-table-v148,
  #printProgressReportV154 .pr-table-v154{
    width:100%!important;
    max-width:none!important;
    table-layout:fixed!important;
  }
}

/* V168 — Progress Report: force a single A4 landscape page in print */
@media print{
  #printProgressReportV154 .pr-header-v154{
    padding-bottom:3px!important;
  }
  #printProgressReportV154 .pr-title-v154{
    margin-top:5px!important;
  }
  #printProgressReportV154 .pr-year-v154{
    margin-top:1px!important;
  }
  #printProgressReportV154 .pr-student-v154{
    margin:6px 0!important;
    padding:6px 8px!important;
    gap:4px 16px!important;
  }
  #printProgressReportV154 .pr-table-v154 th,
  #printProgressReportV154 .pr-table-v154 td{
    padding:3.5px 3px!important;
    line-height:1.15!important;
  }
  #printProgressReportV154 .pr-summary-v154{
    margin-top:6px!important;
    gap:5px!important;
  }
  #printProgressReportV154 .pr-summary-v154>div{
    padding:5px!important;
  }
  #printProgressReportV154 .pr-note-v154{
    margin-top:4px!important;
  }
  #printProgressReportV154 .pr-grade-note-v156{
    margin-top:4px!important;
    padding:4px 6px!important;
  }
  #printProgressReportV154 .pr-remarks-v154{
    margin-top:5px!important;
  }
  #printProgressReportV154 .pr-signatures-v154{
    margin:8mm 10mm 0!important;
  }
}

/* V169 — Remove unnecessary blank second page from Progress Report printing */
@media print{
  html,
  body{
    margin:0!important;
    padding:0!important;
    min-height:0!important;
    max-height:178mm!important;
    height:178mm!important;
    overflow:hidden!important;
  }

  .progress-print-page-v168{
    width:265.5mm!important;
    height:178mm!important;
    min-height:0!important;
    max-height:178mm!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    page-break-after:avoid!important;
    page-break-before:avoid!important;
    break-after:avoid-page!important;
    break-before:avoid-page!important;
  }

  #printProgressReportV154{
    page-break-after:avoid!important;
    page-break-before:avoid!important;
    break-after:avoid-page!important;
    break-before:avoid-page!important;
  }
}

/* V170 — Staff Accounts, Login and Permission System */
.auth-overlay-v170{
  position:fixed;
  inset:0;
  z-index:99999;
  background:linear-gradient(135deg,#edf4ee,#dce9df);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  box-sizing:border-box;
}
.auth-card-v170{
  width:min(430px,100%);
  background:#fff;
  border-radius:16px;
  padding:24px;
  box-shadow:0 18px 50px rgba(0,0,0,.18);
  border:1px solid #d6e0d8;
}
.auth-card-v170>img{
  display:block;
  width:74px;
  height:74px;
  object-fit:contain;
  margin:0 auto 8px;
}
.auth-card-v170 h2{
  margin:0;
  text-align:center;
  color:#16492a;
}
.auth-card-v170>p{
  margin:4px 0 18px;
  text-align:center;
  color:#68746b;
  font-weight:700;
}
.auth-card-v170 .field{margin-bottom:12px}
.auth-main-btn-v170{width:100%;padding:11px!important;margin-top:5px}
.auth-note-v170{
  background:#f2f7f3;
  border:1px solid #d8e5da;
  border-radius:8px;
  padding:10px;
  font-size:13px;
  line-height:1.4;
  margin-bottom:14px;
}
.auth-message-v170{
  margin-top:10px;
  min-height:18px;
  text-align:center;
  color:#a12424;
  font-weight:700;
  font-size:13px;
}
.header-right-v170{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:9px;
  flex-wrap:wrap;
}
.current-user-v170{
  font-size:12px;
  font-weight:700;
  padding:5px 8px;
  border-radius:6px;
  background:rgba(255,255,255,.15);
}
.logout-btn-v170{
  padding:6px 9px!important;
  border-radius:6px!important;
}
.account-modal-v170{
  position:fixed;
  inset:0;
  z-index:12000;
  background:rgba(0,0,0,.45);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  box-sizing:border-box;
}
.account-dialog-v170{
  position:relative;
  width:min(820px,96vw);
  max-height:90vh;
  overflow:auto;
  background:#fff;
  padding:22px;
  border-radius:12px;
  box-shadow:0 18px 50px rgba(0,0,0,.25);
}
.account-close-v170{
  position:absolute;
  right:12px;
  top:10px;
  border:0!important;
  background:transparent!important;
  font-size:26px!important;
  cursor:pointer;
}
.account-staff-summary-v170{
  display:flex;
  flex-direction:column;
  padding:10px 12px;
  margin:8px 0 14px;
  border-radius:8px;
  background:#eef5ef;
}
.account-staff-summary-v170 span{font-size:12px;color:#647067;margin-top:2px}
.permission-grid-v170{
  display:grid;
  grid-template-columns:repeat(3,minmax(150px,1fr));
  gap:8px;
  padding:10px;
  background:#f7f9f7;
  border:1px solid #dce4dd;
  border-radius:8px;
}
.permission-grid-v170 label{
  display:flex;
  gap:7px;
  align-items:center;
  font-size:13px;
}
.account-actions-v170{
  display:flex;
  gap:10px;
  margin-top:15px;
}
.staff-account-table-v170 td{
  vertical-align:top;
}
.permission-summary-v170{
  max-width:280px;
  white-space:normal!important;
  font-size:11px;
}
.account-active-v170{color:#17612f;font-weight:800}
.account-disabled-v170{color:#9c2828;font-weight:800}
@media(max-width:850px){
  .permission-grid-v170{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  .permission-grid-v170{grid-template-columns:1fr}
  .header-right-v170{justify-content:flex-start}
}
@media print{
  .auth-overlay-v170,
  .account-modal-v170,
  .logout-btn-v170,
  .current-user-v170{
    display:none!important;
  }
}

/* V171 — Online Setup */
.online-actions-v171{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:12px;
}
.online-status-v171{
  margin-top:12px;
  padding:9px 11px;
  border-radius:7px;
  background:#f2f4f2;
  min-height:18px;
}
.online-status-v171.ok{
  background:#e7f5eb;
  color:#185d30;
  border:1px solid #bddfc6;
}
.online-status-v171.bad{
  background:#fff0f0;
  color:#8e2525;
  border:1px solid #e2bcbc;
}
.online-security-note-v171{
  margin-top:10px;
  padding:10px 12px;
  background:#fff7e6;
  border:1px solid #ecd5a7;
  border-radius:7px;
}

/* V173 — Pre-login Connection Settings */
.auth-secondary-btn-v173{
  width:100%;
  margin-top:8px;
  padding:10px 12px!important;
  border-radius:8px!important;
  background:#f5f8f5!important;
  color:#23412d!important;
  border:1px solid #cfd9d1!important;
  font-weight:700!important;
}
.prelogin-connection-modal-v173{
  position:fixed;
  inset:0;
  z-index:100000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  box-sizing:border-box;
  background:rgba(0,0,0,.48);
}
.prelogin-connection-dialog-v173{
  position:relative;
  width:min(560px,96vw);
  max-height:90vh;
  overflow:auto;
  background:#fff;
  padding:22px;
  border-radius:14px;
  box-shadow:0 20px 55px rgba(0,0,0,.28);
}
.prelogin-close-v173{
  position:absolute;
  top:8px;
  right:12px;
  border:0!important;
  background:transparent!important;
  font-size:27px!important;
  cursor:pointer;
}
.prelogin-actions-v173{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:12px;
}
#preloginKeyV173{
  width:100%;
  box-sizing:border-box;
  font-family:monospace;
  resize:vertical;
}


/* V175 — enforce staff module permissions in sidebar */
nav button.permission-hidden-v175{display:none!important;}

/* V178 dashboard privacy: permission-driven visibility */
.dashboard-hidden-v178{display:none!important;}
.dashboard-limited-v178{display:none!important;}
.dashboard-limited-v178.dashboard-show-v178{display:block!important;}

/* V180 teacher/non-fee dashboard privacy hardening */
body[data-kkba-fee-hidden="true"] .dashboard-fee-v177{display:none!important;}

/* V183 — Admin-controlled class/subject assignment for teacher Bulk Marks Entry */
.teacher-bulk-assignment-v183{margin-top:16px;padding:14px;border:1px solid #d7dde6;border-radius:10px;background:#fafbfd}
.teacher-bulk-assignment-v183 h4{margin:0 0 6px}
.teacher-bulk-class-v183{margin-top:10px;border:1px solid #e3e7ee;border-radius:9px;background:#fff;padding:10px}
.teacher-bulk-class-title-v183{display:flex;align-items:center;gap:8px;font-weight:700;margin-bottom:8px}
.teacher-bulk-subjects-v183{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:7px 12px;padding-left:4px}
.teacher-bulk-subjects-v183 label{display:flex;align-items:center;gap:7px;font-weight:500}
.teacher-bulk-empty-v183{padding:10px 0;color:#6b7280}


/* V183 — Marksheet total row and grading note */
.ms-table-v148 tfoot .ms-total-row-v183 th{
  background:#e8f1ea;
  color:#173d25;
  font-weight:900;
  border:1px solid #89958b;
  padding:7px 8px;
  text-align:center;
}
.ms-table-v148 tfoot .ms-total-row-v183 th:first-child{text-align:left}
.ms-grade-note-v183{
  margin-top:8px;
  padding:6px 8px;
  border:1px solid #cfd9d1;
  background:#f7faf7;
  border-radius:5px;
  font-size:9.5px;
  line-height:1.35;
  text-align:left;
}
@media print{
  .ms-grade-note-v183{font-size:9.5px!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  .ms-table-v148 tfoot .ms-total-row-v183 th{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
}
