  /* ---------- Complaint Centre ---------- */
  .field textarea{width:100%;padding:11px 13px;border-radius:9px;border:1.5px solid var(--line);font-size:.94rem;background:#fbfbfa;font-family:var(--sans);resize:vertical;min-height:110px;line-height:1.5;}
  .field textarea:focus{outline:none;border-color:var(--blue-500);background:#fff;box-shadow:0 0 0 3px rgba(170,65,83,0.12);}
  .cmp-kind{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:20px;}
  .cmp-kind button{flex:1;min-width:210px;padding:16px 14px;border-radius:12px;border:2px solid var(--line);background:#fff;cursor:pointer;font-weight:800;font-size:.95rem;color:var(--navy-800);text-align:center;font-family:var(--sans);transition:border-color .15s ease, box-shadow .15s ease;}
  .cmp-kind button small{display:block;font-weight:600;color:var(--muted);margin-top:4px;font-size:.76rem;}
  .cmp-kind button:hover{border-color:var(--gold-light);}
  .cmp-kind button.active{border-color:var(--gold);background:linear-gradient(180deg,#fffaf0,#fff);box-shadow:0 0 0 3px rgba(184,145,47,0.16);}
  .cmp-pick{max-height:230px;overflow-y:auto;border:1px solid var(--line);border-radius:10px;margin-top:8px;}
  .cmp-pick .it{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line);cursor:pointer;font-size:.88rem;}
  .cmp-pick .it:last-child{border-bottom:none;}
  .cmp-pick .it:hover{background:var(--blue-tint);}
  .cmp-pick .it .sub{color:var(--muted);font-size:.78rem;}
  .cmp-chosen{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 16px;border-radius:12px;background:var(--green-bg);border:1px solid #bfe3cb;margin-bottom:6px;}
  .cmp-photos{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0 10px;}
  .cmp-ph{position:relative;width:96px;height:96px;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:#f4f4f2;}
  .cmp-ph img{width:100%;height:100%;object-fit:cover;cursor:zoom-in;display:block;}
  .cmp-ph .rm{position:absolute;top:4px;left:4px;background:rgba(179,38,30,0.94);color:#fff;border:none;width:22px;height:22px;border-radius:50%;cursor:pointer;font-weight:800;line-height:1;font-size:.72rem;}
  .cmp-card{border:1px solid var(--line);border-radius:14px;padding:16px 18px;margin-bottom:14px;background:#fff;box-shadow:var(--shadow-sm);}
  .cmp-card.urgent{border-left:5px solid var(--red);}
  .cmp-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px;}
  .cmp-no{font-family:var(--serif);font-weight:800;font-size:1.02rem;color:var(--oxford-blue);}
  .cmp-date{font-size:.78rem;color:var(--muted);font-weight:700;}
  .cmp-line{font-size:.86rem;margin-bottom:5px;line-height:1.55;}
  .cmp-details{margin:10px 0;padding:12px 14px;background:#fbfbfa;border:1px solid var(--line);border-radius:10px;font-size:.9rem;line-height:1.65;white-space:pre-wrap;word-break:break-word;}
  .cmp-reply{margin-top:10px;padding:10px 14px;background:var(--blue-tint);border-radius:10px;border:1px solid #f1d8dc;font-size:.86rem;line-height:1.55;white-space:pre-wrap;}
  .cmp-box{border:1.5px solid #000;padding:10px 14px;min-height:26mm;font-size:.88rem;line-height:1.7;white-space:pre-wrap;word-break:break-word;margin-bottom:16px;}
  .sc-sheet{padding:26px 34px;font-size:.92rem;line-height:1.55;}
  .sc-no{display:flex;justify-content:space-between;font-weight:700;font-size:.85rem;margin-bottom:10px;}
  .sc-to{border:1.5px solid #000;padding:8px 12px;margin-bottom:12px;font-size:.88rem;}
  .sc-subject{text-align:center;font-weight:800;text-decoration:underline;margin:10px 0;}
  .sc-facts{margin:6px 0 10px 20px;} .sc-facts li{margin-bottom:2px;}
  .sc-demand{border:1.5px solid #000;padding:9px 12px;margin:10px 0;font-weight:700;}
  .sc-reply{border-top:1.5px dashed #000;margin-top:16px;padding-top:8px;font-size:.84rem;}
  .sc-reply > .ln{border-bottom:1px solid #000;height:20px;}
  .mg-chk{width:18px;height:18px;}
  .fr-sheet{padding:10px 26px;}
  .fr-copy{padding:4px 0;}
  .fr-sheet .tr-sign{margin-top:18px !important;}
  .fr-sheet .fr-table td{padding:6px 10px;}
  .fr-tag{font-family:var(--sans);font-weight:800;font-size:.66rem;letter-spacing:1px;border:1.5px solid #000;padding:4px 9px;}
  .fr-table{width:100%;border-collapse:collapse;font-size:.9rem;border-radius:0 !important;overflow:visible !important;border:none !important;}
  .fr-table td{border:1.5px solid #000;padding:8px 10px;font-weight:700;text-align:left;}
  .fr-table td.k{width:26mm;font-family:var(--sans);font-size:.68rem;letter-spacing:.4px;text-transform:uppercase;background:#eee;}
  .fr-table tr:hover td{background:inherit;} .fr-table tr:hover td.k{background:#eee;}
  .fr-cut{text-align:center;font-size:.7rem;letter-spacing:1px;margin:8px 0;color:#000;overflow:hidden;white-space:nowrap;}
  .cl-table{width:100%;border-collapse:collapse;font-size:.72rem;margin-bottom:14px;border-radius:0 !important;overflow:visible !important;border:none !important;}
  .cl-table th{background:#000;color:#fff;font-family:var(--sans);font-weight:700;font-size:.6rem;letter-spacing:.3px;padding:6px 5px;text-align:center;border:1px solid #000;}
  .cl-table td{border:1px solid #000;padding:5px 6px;text-align:center;font-weight:700;vertical-align:top;}
  .cl-table td.l{text-align:left;font-weight:600;}
  .cl-table tr{page-break-inside:avoid;}
  .cl-table thead{display:table-header-group;}
  .cl-table tbody tr:hover td{background:inherit;}
  .cl-reply{margin-top:4px;padding-top:3px;border-top:1px dashed #000;font-style:italic;}
  .sr-reg.big{font-size:.6rem;}
  .sr-reg.big td.nm{text-align:left;padding:3px 4px;font-family:var(--sans);font-size:.58rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .sr-reg.big td.nd{background:#bdbdbd;}
  .sr-reg.big tfoot td{background:#eee;font-weight:800;}
  .sr-reg.big tr{page-break-inside:avoid;}
  .sr-reg.big thead{display:table-header-group;}
  .cmp-prt-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px;}
  .cmp-prt-photos img{width:100%;height:58mm;object-fit:contain;border:1px solid #000;background:#fff;}

  /* Complaint Centre — class wise / teacher wise groups */
  .cc-group{border:1.5px solid var(--line);border-radius:12px;padding:8px 12px;margin-bottom:12px;background:#fef2f4;}
  .cc-group > summary{cursor:pointer;padding:6px 2px;font-size:.95rem;color:var(--navy-800);list-style:revert;}
  .cc-group > .cmp-card{margin-top:10px;}

  /* ---- SMS to parents (Absent Students) ---- */
  .sms-bar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:0 0 14px;}
  .sms-note{font-size:.85rem;color:var(--muted);padding:8px 12px;border-radius:10px;background:#f9edef;border:1px solid var(--line);}
  .sms-note.warn{background:#fff8e6;border-color:#f0c36d;color:#7a5a00;flex:1;min-width:260px;}
  .sms-editor{border:1.5px dashed var(--line);border-radius:12px;padding:12px 14px;margin:0 0 14px;background:#fef2f4;}
  .sms-editor textarea{width:100%;min-height:70px;}
  .sms-help{font-size:.78rem;color:var(--muted);margin:4px 0 8px;}
  .sms-help code{background:#f7e8eb;border-radius:4px;padding:0 4px;}
  .sms-prev{background:#eef8f1;border:1px solid #b9e2c6;border-radius:10px;padding:8px 12px;font-size:.88rem;margin-bottom:10px;}
  .sms-offer{display:flex;gap:12px;align-items:center;flex-wrap:wrap;justify-content:space-between;margin-top:14px;padding:10px 14px;border-radius:12px;background:#eef8f1;border:1.5px solid #b9e2c6;font-size:.9rem;}

/* ---------- Message to all parents ---------- */
.bc-card textarea{ width:100%; font-size:1rem; line-height:1.5; }
.bc-prog{ margin-top:14px; padding:12px 14px; border-radius:12px; background:#fdebee; border:1px solid #f6d2d8; font-size:.9rem; }
.bc-bar{ height:10px; border-radius:6px; background:#f2d9dd; overflow:hidden; margin-bottom:8px; }
.bc-bar span{ display:block; height:100%; background:linear-gradient(90deg,#1f8f4e,#36b26a); transition:width .4s; }
.bc-item{ padding:12px 14px; border:1px solid #eddee1; border-radius:12px; margin-bottom:10px; background:#fef2f4; }
.bc-head{ font-size:.82rem; color:var(--muted); margin-bottom:6px; }
.bc-text{ white-space:pre-wrap; margin-bottom:6px; }
.bc-fail{ margin-top:8px; font-size:.84rem; }
.bc-fail summary{ cursor:pointer; color:var(--red); font-weight:600; }
.bc-fail table{ margin-top:8px; }

/* ---------- Message to staff ---------- */
.st-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:8px; }
.st-item{ display:flex; gap:10px; align-items:flex-start; padding:10px 12px; border:1.5px solid #eddee1; border-radius:12px; background:#fef2f4; cursor:pointer; }
.st-item input{ margin-top:4px; width:18px; height:18px; flex:0 0 auto; }
.st-item span{ display:flex; flex-direction:column; line-height:1.35; }
.st-item small{ color:var(--muted); font-size:.78rem; }
.st-item.st-on{ border-color:#c43c52; background:#fce7ea; }
.st-item.st-off{ opacity:.55; cursor:not-allowed; }
