:root{--navy:#17243b;--gold:#d6a52a;--bg:#f4f6f9;--line:#e1e5eb}*{box-sizing:border-box}body{margin:0;font:14px Arial;color:#202938;background:var(--bg)}aside{position:fixed;left:0;top:0;bottom:0;width:245px;background:var(--navy);color:#fff;padding:25px 15px}aside h2{margin:0;color:#fff}aside small{color:#c8cfda}nav{display:grid;gap:6px;margin-top:25px}nav button{border:0;background:transparent;color:#d8deea;text-align:left;padding:12px;border-radius:8px;cursor:pointer}nav button:hover,nav button.active{background:#ffffff14;color:#fff;border-left:3px solid var(--gold)}footer{position:absolute;bottom:25px;color:#bbc4d1;font-size:12px}main{margin-left:245px;padding:0 30px 50px}header{height:90px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}header h1{margin:4px 0}.primary{background:var(--navy);color:white;border:0;border-radius:8px;padding:11px 16px;cursor:pointer}.card,.panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.stat strong{font-size:30px;display:block;margin-top:8px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.actions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.actions button{padding:15px;background:#f8f9fb;border:1px solid var(--line);border-radius:8px}.toolbar{display:flex;gap:10px;margin:15px 0}.toolbar input{flex:1}input,select,textarea{width:100%;padding:10px;border:1px solid #d4d9e1;border-radius:7px;margin-top:6px}table{width:100%;border-collapse:collapse;background:#fff}th,td{padding:12px;border-bottom:1px solid var(--line);text-align:left}th{background:#eef1f5;font-size:12px}.table{overflow:auto;border:1px solid var(--line);border-radius:10px}.form{display:grid;grid-template-columns:1fr 1fr;gap:14px}.wide{grid-column:1/-1}.modal{display:none;position:fixed;inset:0;background:#0008;align-items:center;justify-content:center;padding:20px}.modal.show{display:flex}.modalbox{background:#fff;border-radius:12px;padding:22px;width:min(650px,100%);max-height:90vh;overflow:auto}.modalbox h3{margin-top:0}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{background:#eef1f5;padding:8px 10px;border-radius:20px}.report{background:#fff;padding:30px;margin-top:20px}.report table th{background:var(--navy);color:#fff}.empty{text-align:center;padding:30px;color:#77808d}.danger{border:0;background:#eee;padding:7px;border-radius:6px}@media(max-width:800px){aside{width:190px}main{margin-left:190px;padding:0 12px}.cards{grid-template-columns:1fr 1fr}.grid{grid-template-columns:1fr}.form{grid-template-columns:1fr}.actions{grid-template-columns:1fr 1fr}}@media print{aside,header{display:none}main{margin:0}.report{margin:0}}

/* V3 student/staff class selector */
#studentClassSelect, .modalbox select[name="class"]{
  appearance:auto;
  background:#fff;
  color:#17243b;
  border:1px solid var(--line);
  min-height:42px;
  cursor:pointer;
}
#studentClassSelect option, .modalbox select[name="class"] option{
  color:#17243b;
  background:#fff;
}

/* Dashboard/UI styling inspired by the supplied school-management reference */
:root{
  --deep:#082f60;
  --deep2:#0b3a71;
  --navblue:#0b3a71;
  --yellow:#f7c51b;
  --surface:#ffffff;
  --muted:#7a8594;
  --border:#e4e8ee;
}
body{background:#f1f3f6;color:#273142}
aside{background:var(--deep);width:250px;padding:0 0 20px;box-shadow:2px 0 8px rgba(0,0,0,.07)}
.logo-panel{height:92px;background:var(--yellow);color:#17375f;display:flex;align-items:center;gap:10px;padding:0 18px}
.logo-panel h2{margin:0;font-size:18px;line-height:1.05}
.logo-panel small{font-size:10px;color:#334a67}
.logo-badge{width:42px;height:42px;border-radius:50%;background:#fff;border:3px solid #17375f;display:grid;place-items:center;font-weight:900}
aside nav{margin-top:8px;gap:0}
nav button{border-radius:0;padding:12px 17px;border-left:3px solid transparent;font-size:12px}
nav button:hover,nav button.active{background:#092b55;border-left-color:var(--yellow)}
.nav-group-title{padding:15px 17px 7px;color:#8fa8c4;font-size:9px;font-weight:800;letter-spacing:1px}
main{margin-left:250px;padding:0 25px 35px}
header{height:78px;background:#fff;margin:0 -25px 22px;padding:0 25px;border-bottom:1px solid var(--border)}
.header-left{display:flex;align-items:center;gap:12px}
.header-left small{font-size:9px;letter-spacing:1.4px;color:#7b8695}
.header-left h1{font-size:22px;margin:2px 0 0}
.header-right{display:flex;align-items:center;gap:16px}
.search-pill{width:210px;background:#f5f6f8;border-radius:18px;padding:8px 12px;color:#9aa3ae;font-size:11px}
.top-icon{position:relative;color:#66717f;font-size:15px}
.top-icon b{font-size:8px;background:#f4c51c;color:#17375f;border-radius:10px;padding:2px 5px;position:absolute;top:-7px;right:-8px}
.user-pill{display:flex;align-items:center;gap:8px;font-size:11px;color:#485465}
.user-pill small{font-size:9px;color:#9aa3ae}
.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#f36f3d;color:#fff;font-weight:900}
.menu-toggle{display:none}
.dashboard-welcome{background:linear-gradient(120deg,#103f76,#1b5a99);color:#fff;padding:24px;border-radius:2px;display:flex;justify-content:space-between;align-items:center}
.dashboard-welcome small{font-size:9px;letter-spacing:1.5px;color:#d3e3f5}
.dashboard-welcome h2{margin:5px 0 7px;font-size:23px}
.dashboard-welcome p{margin:0;color:#d8e4f2;font-size:12px}
.welcome-buttons{display:flex;gap:8px}
.light-btn{background:#fff;color:#123b6a;border:0;border-radius:3px;padding:9px 13px;font-weight:700;font-size:11px;cursor:pointer}
.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:18px 0}
.metric-card{display:flex;align-items:center;background:#fff;min-height:94px;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.metric-icon{width:72px;align-self:stretch;display:grid;place-items:center;color:#fff;font-size:26px}
.metric-card.red .metric-icon{background:#f4515f}.metric-card.blue .metric-icon{background:#249fe5}.metric-card.green .metric-icon{background:#6dbd39}.metric-card.cyan .metric-icon{background:#29bac9}
.metric-card>div:last-child{padding:12px 15px}.metric-card span{display:block;font-size:11px;color:#7c8794}.metric-card strong{display:block;font-size:26px;margin:5px 0;color:#263343}.metric-card small{font-size:9px;color:#a3aab3}
.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}
.dashboard-panel{padding:18px}
.panel-title{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border);padding-bottom:11px;margin-bottom:10px}
.panel-title h3{margin:0;font-size:14px}.panel-title span,.panel-title button{font-size:9px;color:#8e98a5;background:none;border:0}
.quick-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.quick-actions button{border:1px solid var(--border);background:#fbfcfd;text-align:left;padding:12px 10px;cursor:pointer}
.quick-actions b{display:block;color:#173d6d;font-size:11px}.quick-actions span{display:block;color:#8a94a1;font-size:9px;margin-top:4px}
.notice-item{padding:9px 0;border-bottom:1px solid #edf0f3}.notice-item:last-child{border-bottom:0}.notice-item time{font-size:8px;color:#a2a9b2;display:block}.notice-item strong{font-size:11px;color:#1f3553}.notice-item p{margin:4px 0 0;font-size:9px;line-height:1.4;color:#737e8b}
.bottom{align-items:start}
.mini-list{display:grid}.mini-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #edf0f3}.mini-row:last-child{border-bottom:0}.mini-avatar{width:30px;height:30px;border-radius:50%;background:#e9eef5;color:#183e70;display:grid;place-items:center;font-weight:800;font-size:12px}.mini-row>div{flex:1}.mini-row b{display:block;font-size:10px}.mini-row small{display:block;font-size:8px;color:#9aa2ad;margin-top:3px}.status{font-size:8px;color:#2e8b57;background:#edf8f1;padding:4px 6px;border-radius:10px}
.overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.overview-grid div{border:1px solid var(--border);padding:12px}.overview-grid span{display:block;font-size:9px;color:#8a94a1}.overview-grid b{display:block;margin-top:5px;font-size:13px;color:#203a5d}
.primary{background:#123e73}
@media(max-width:900px){aside{transform:translateX(-100%);transition:.2s;z-index:30}.sidebar-open aside{transform:none}main{margin-left:0;padding:0 14px}.header-right .search-pill,.user-pill{display:none}.menu-toggle{display:block;border:0;background:#eef2f6;border-radius:4px;padding:7px}.metric-grid{grid-template-columns:1fr 1fr}.dashboard-grid{grid-template-columns:1fr}}
@media(max-width:600px){.metric-grid{grid-template-columns:1fr}.quick-actions{grid-template-columns:1fr 1fr}.dashboard-welcome{display:block}.welcome-buttons{margin-top:12px}}
@media print{aside,header{display:none!important}.dashboard-welcome,.metric-grid{display:none!important}main{margin:0}.report{margin:0}}

.global-search-wrap{
  display:flex;
  align-items:center;
  width:250px;
  background:#f5f6f8;
  border-radius:18px;
  overflow:hidden;
  border:1px solid #e4e8ee;
}
.global-search{
  width:100%;
  border:0;
  outline:0;
  background:transparent;
  padding:8px 12px;
  font-size:11px;
  color:#344255;
}
.search-button{
  border:0;
  background:transparent;
  padding:7px 10px;
  cursor:pointer;
  color:#6d7784;
}
.mail-button{
  border:0;
  background:transparent;
  cursor:pointer;
  position:relative;
}
.mail-button:hover,.search-button:hover{color:#123e73}
.global-search-results{
  position:fixed;
  top:74px;
  right:28px;
  width:min(560px, calc(100vw - 40px));
  max-height:65vh;
  overflow:auto;
  background:#fff;
  border:1px solid #dfe4ea;
  border-radius:10px;
  box-shadow:0 12px 28px rgba(0,0,0,.12);
  z-index:100;
  display:none;
}
.global-search-results.show{display:block}
.search-result-head{
  padding:12px 14px;
  font-weight:800;
  font-size:12px;
  color:#183f70;
  border-bottom:1px solid #edf0f3;
}
.search-result{
  padding:10px 14px;
  border-bottom:1px solid #f0f2f5;
  cursor:pointer;
}
.search-result:hover{background:#f7f9fb}
.search-result b{display:block;font-size:11px}
.search-result small{display:block;color:#7c8794;font-size:9px;margin-top:3px}
.search-empty{padding:18px;color:#7c8794;font-size:11px}
@media(max-width:900px){.global-search-wrap{width:190px}}
@media(max-width:600px){.global-search-wrap{display:none}}

#notificationButton{border:0;background:transparent;cursor:pointer}
.status{font-size:8px;color:#fff;padding:4px 7px;border-radius:10px}.status.paid{background:#2e9d63}.status.part-paid{background:#e4a82f}.status.due{background:#e45656}
.paid-note{border-left:3px solid #2e9d63;padding-left:9px}.due-note{border-left:3px solid #e45656;padding-left:9px}

#otherPositionWrap{display:grid!important}
#otherPositionWrap[style*="display:none"]{display:none!important}

.student-thumb{
  width:44px;height:44px;border-radius:50%;object-fit:cover;border:2px solid #e5e8ee;
  cursor:pointer;display:block;
}
.photo-placeholder{
  width:44px;height:44px;border-radius:50%;border:1px dashed #cbd3dd;background:#f6f8fa;
  color:#7d8896;cursor:pointer;
}
.photo-upload-preview{
  margin-top:7px;min-height:100px;border:1px dashed #cbd3dd;border-radius:8px;
  background:#f8fafc;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:6px;padding:10px;color:#7b8795;font-size:10px;text-align:center;
}
.photo-upload-preview img{
  width:110px;height:130px;object-fit:cover;border-radius:6px;border:1px solid #d8dee6;
}
.upload-help{font-size:9px;color:#8b95a1;margin-top:3px}
.student-photo-modal{text-align:center;padding:8px}
.student-photo-modal img{width:220px;height:270px;object-fit:cover;border-radius:8px;border:1px solid #d8dee6}
.student-photo-modal h3{margin:12px 0 4px}.student-photo-modal p{margin:0;color:#7c8794;font-size:12px}
.mini-avatar-img{width:30px;height:30px;border-radius:50%;object-fit:cover;display:block}

.student-photo-field{grid-column:1/-1}
.student-photo-field>input[type=file]{
  display:block;width:100%;padding:10px;background:#fff;
  border:1px solid #d7dde6;border-radius:7px;
}
.photo-upload-preview{
  width:190px;min-height:200px;margin-top:8px;
  border:2px dashed #c9d2de;border-radius:10px;background:#f7f9fb;
  display:flex;align-items:center;justify-content:center;flex-direction:column;
  gap:6px;padding:10px;text-align:center;overflow:hidden;
}
.photo-upload-preview img{
  width:145px;height:165px;object-fit:cover;border-radius:7px;
  border:1px solid #d3dae4;
}
.photo-preview-placeholder{font-size:11px;color:#7b8794}
.photo-preview-name{font-size:9px;color:#5f6b79;word-break:break-all;max-width:160px}
.photo-preview-ok{font-size:10px;font-weight:800;color:#2e8b57}
.photo-error{font-size:10px;color:#c44949;font-weight:700}
.student-thumb{
  width:44px;height:50px;border-radius:6px;object-fit:cover;
  border:2px solid #e5e8ee;cursor:pointer;display:block;
}
.photo-placeholder{
  width:44px;height:50px;border-radius:6px;border:1px dashed #cbd3dd;
  background:#f6f8fa;color:#7d8896;cursor:pointer;
}
.student-photo-modal{text-align:center;padding:8px}
.student-photo-modal img{
  width:220px;height:270px;object-fit:cover;border-radius:8px;
  border:1px solid #d8dee6;
}
.student-photo-modal h3{margin:12px 0 4px}
.student-photo-modal p{margin:0;color:#7c8794;font-size:12px}
.mini-avatar-img{width:30px;height:30px;border-radius:50%;object-fit:cover;display:block}

.staff-photo-preview{width:190px;min-height:200px}
.staff-thumb{
  width:44px;height:50px;border-radius:6px;object-fit:cover;
  border:2px solid #e5e8ee;cursor:pointer;display:block;
}
.staff-photo-placeholder{
  width:44px;height:50px;border-radius:6px;border:1px dashed #cbd3dd;
  background:#f6f8fa;color:#7d8896;cursor:pointer;
}

.result-student-card{
  display:flex;align-items:center;gap:18px;
  border:1px solid #dfe5ec;background:#fbfcfd;
  border-radius:10px;padding:14px;
}
.result-student-photo{
  width:86px;height:100px;border-radius:8px;border:1px solid #d8dee7;
  background:#f0f3f6;display:flex;align-items:center;justify-content:center;
  overflow:hidden;color:#8994a1;font-size:25px;flex:none;
}
.result-student-photo img{
  width:100%;height:100%;object-fit:cover;
}
.result-student-info{flex:1}
.result-label{display:block;font-size:9px;font-weight:800;color:#8a95a3;letter-spacing:.8px;margin-bottom:5px}
.result-student-info select{width:100%;max-width:420px;padding:10px;border:1px solid #d8dfe7;border-radius:7px;background:#fff}
.result-meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:7px;font-size:10px;color:#6f7a88}
.result-meta strong{color:#183f70}
.result-meta span{color:#7b8591}
.result-thumb{width:36px;height:42px;object-fit:cover;border-radius:5px;border:1px solid #d7dee7}
.result-no-photo{color:#9aa3ad}
@media(max-width:600px){.result-student-card{align-items:flex-start}.result-student-photo{width:70px;height:85px}}

.attendance-header{display:flex;justify-content:space-between;align-items:flex-end;gap:20px}
.attendance-header h3{margin:0}.attendance-header p{margin:5px 0 0}
.attendance-controls{grid-template-columns:180px 170px;align-items:end}
.attendance-roster{margin-top:20px}
.attendance-summary{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;background:#f6f8fa;border:1px solid #e2e7ee;border-radius:8px;margin-bottom:10px;font-size:11px;color:#657182}
.attendance-table{border:1px solid #e2e7ee;border-radius:10px;overflow:hidden;background:#fff}
.attendance-row{display:flex;justify-content:space-between;align-items:center;padding:11px 14px;border-bottom:1px solid #edf0f3;gap:20px}
.attendance-row:last-child{border-bottom:0}
.attendance-student{display:flex;align-items:center;gap:12px;min-width:0}
.attendance-photo{width:48px;height:58px;border-radius:6px;border:1px solid #d7dee7;background:#f5f7f9;display:flex;align-items:center;justify-content:center;overflow:hidden;color:#8b95a1;flex:none}
.attendance-photo img{width:100%;height:100%;object-fit:cover}
.attendance-student strong{display:block;font-size:11px}
.attendance-student small{display:block;color:#8a95a3;font-size:9px;margin-top:4px}
.attendance-status{display:flex;gap:7px}
.attendance-btn{border:1px solid #d8dfe7;background:#f7f9fb;color:#5b6775;padding:8px 12px;border-radius:6px;font-size:10px;font-weight:800;cursor:pointer}
.attendance-btn.present.selected{background:#2e9d63;color:#fff;border-color:#2e9d63}
.attendance-btn.absent.selected{background:#e45656;color:#fff;border-color:#e45656}
.attendance-actions{margin-top:14px;display:flex;justify-content:flex-end}
@media(max-width:700px){.attendance-header{display:block}.attendance-controls{grid-template-columns:1fr 1fr;margin-top:14px}.attendance-row{align-items:flex-start}.attendance-status{flex-direction:column}}

.edit-btn{margin-right:5px}

/* Separate surname, first name and middle/other name fields */

/* Attendance student-linked register */
.attendance-controls{
  display:flex;
  gap:16px;
  flex-wrap:wrap;
  margin-bottom:18px;
}
.attendance-controls label{
  min-width:220px;
}
.attendance-list{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.attendance-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:14px;
  border:1px solid rgba(0,0,0,.10);
  border-radius:12px;
  background:#fff;
}
.attendance-student{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:240px;
}
.attendance-student-photo{
  width:52px;
  height:52px;
  border-radius:50%;
  object-fit:cover;
  border:1px solid rgba(0,0,0,.12);
  flex:0 0 52px;
}
.attendance-student-photo.placeholder{
  display:flex;
  align-items:center;
  justify-content:center;
  background:#f1f1f1;
  font-size:24px;
}
.attendance-question{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
}
.attendance-choice{
  cursor:pointer;
}
.attendance-choice input{
  margin-right:5px;
}
.attendance-choice span{
  display:inline-block;
  padding:8px 14px;
  border:1px solid rgba(0,0,0,.15);
  border-radius:8px;
  font-weight:700;
}
.attendance-choice input:checked + span{
  outline:2px solid currentColor;
}
.muted{
  opacity:.7;
  font-size:.9em;
}
.empty-state{
  padding:24px;
  text-align:center;
  border:1px dashed rgba(0,0,0,.2);
  border-radius:12px;
}
@media (max-width:700px){
  .attendance-row{
    flex-direction:column;
    align-items:stretch;
  }
  .attendance-question{
    justify-content:flex-start;
  }
}

.attendance-save-area{
  display:flex;
  justify-content:flex-end;
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid rgba(0,0,0,.10);
}
.attendance-save-btn{
  min-width:180px;
  font-weight:700;
}
.attendance-save-btn:disabled{
  opacity:.75;
  cursor:default;
}

.attendance-dates-cell{min-width:160px;line-height:1.6;white-space:normal;}


/* Teacher Attendance - additive V3 feature */
.staff-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.teacher-attendance-btn{border:1px solid #d7dee7;background:#fff;color:#123e73;border-radius:8px;padding:10px 14px;cursor:pointer;font-weight:700}
.teacher-attendance-btn:hover{background:#f3f7fb}
.teacher-attendance-controls{display:grid;grid-template-columns:minmax(220px,340px) 180px;gap:18px;align-items:end}
.teacher-attendance-controls label{font-weight:700}
.teacher-attendance-summary{border:1px solid var(--border);background:#f8fafc;padding:10px 14px;border-radius:8px}
.teacher-attendance-summary strong{display:block;font-size:22px;color:#123e73}
.teacher-attendance-summary span{font-size:10px;color:#7c8794}
.teacher-attendance-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:15px 0;border-bottom:1px solid #edf0f3}
.teacher-attendance-row:last-child{border-bottom:0}
.teacher-attendance-person{display:flex;align-items:center;gap:13px;min-width:0}
.staff-attendance-photo,.staff-attendance-photo-placeholder,.staff-attendance-thumb,.staff-attendance-placeholder{width:54px;height:54px;border-radius:50%;object-fit:cover;flex:0 0 54px}
.staff-attendance-photo,.staff-attendance-photo-placeholder{border:1px solid #dce2e9}
.staff-attendance-photo-placeholder,.staff-attendance-placeholder{display:grid;place-items:center;background:#f4f6f8;color:#7d8896}
.staff-attendance-thumb{border:2px solid #e5e8ee}
.teacher-attendance-info{min-width:0}
.teacher-attendance-info strong{display:block;font-size:13px;color:#203a5d}
.teacher-attendance-info div{font-size:10px;color:#788493;margin-top:4px;white-space:normal}
.teacher-attendance-choice{text-align:right;min-width:280px}
.teacher-attendance-choice>strong{display:block;font-size:11px;color:#273142;margin-bottom:8px}
.teacher-attendance-choice label{margin-left:14px;font-size:12px;cursor:pointer}
.teacher-attendance-choice input{width:auto;margin:0 4px 0 0;padding:0}
.teacher-attendance-choice small{display:block;color:#8a94a1;font-size:9px;margin-top:6px}
@media(max-width:800px){
  .teacher-attendance-controls{grid-template-columns:1fr}
  .teacher-attendance-row{align-items:flex-start;flex-direction:column}
  .teacher-attendance-choice{min-width:0;width:100%;text-align:left}
  .teacher-attendance-choice label:first-child{margin-left:0}
}


/* AFISAP Royal Academy branding - uses the supplied official logo asset */
.logo-panel{
  height:112px;
  background:var(--yellow);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:8px 12px;
  overflow:hidden;
}
.school-logo-sidebar{
  width:92px;
  height:92px;
  object-fit:contain;
  display:block;
  border-radius:50%;
  background:#fff;
}

/* Keep the supplied logo clearly visible inside the blue dashboard banner. */
.dashboard-welcome{
  position:relative;
  overflow:hidden;
}
.dashboard-welcome-content{
  position:relative;
  z-index:2;
  max-width:58%;
}
.dashboard-branding{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-width:245px;
}
.dashboard-watermark-logo{
  width:112px;
  height:112px;
  object-fit:contain;
  display:block;
  border-radius:50%;
  background:#fff;
  box-shadow:0 2px 8px rgba(0,0,0,.18);
}
.dashboard-welcome::after{
  content:"";
  position:absolute;
  right:10px;
  top:50%;
  width:175px;
  height:175px;
  transform:translateY(-50%);
  background:url("afisap_royal_academy_logo.png") center/contain no-repeat;
  opacity:.10;
  pointer-events:none;
}
@media(max-width:700px){
  .logo-panel{height:92px}
  .school-logo-sidebar{width:72px;height:72px}
  .dashboard-welcome{
    flex-direction:column;
    align-items:flex-start;
    gap:18px;
  }
  .dashboard-welcome-content{max-width:100%}
  .dashboard-branding{
    width:100%;
    min-width:0;
    align-items:flex-start;
  }
  .dashboard-watermark-logo{width:92px;height:92px}
  .dashboard-welcome::after{
    width:130px;height:130px;right:0;bottom:5px;top:auto;transform:none;
  }
}

/* Teacher attendance print preview */
.teacher-print-modalbox{
  width:min(1400px,96vw);
  max-width:96vw;
  max-height:94vh;
  padding:0;
  overflow:auto;
}
.teacher-print-preview{
  background:#fff;
  color:#17243b;
  padding:24px;
}
.teacher-print-preview-head{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  text-align:center;
  border-bottom:3px solid var(--gold);
  padding-bottom:14px;
}
.teacher-print-logo{
  width:82px;
  height:82px;
  object-fit:contain;
}
.teacher-print-preview-head h2,
.teacher-print-preview-head h3,
.teacher-print-preview-head p{margin:2px 0}
.teacher-print-preview-head h2{font-size:22px}
.teacher-print-preview-head h3{font-size:17px}
.teacher-print-preview-head p{font-size:12px;color:#667085}
.teacher-print-meta{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:12px 0;
  font-size:12px;
  flex-wrap:wrap;
}
.teacher-print-table-wrap{overflow-x:auto}
.teacher-print-table{
  width:100%;
  border-collapse:collapse;
  font-size:11px;
}
.teacher-print-table th,
.teacher-print-table td{
  border:1px solid #cfd5dd;
  padding:7px;
  vertical-align:middle;
}
.teacher-print-table th{
  background:var(--navy);
  color:#fff;
  text-align:center;
  white-space:nowrap;
}
.teacher-print-table td:nth-child(1){width:70px;text-align:center}
.teacher-print-table td:nth-child(8){text-align:center;font-weight:bold;white-space:nowrap}
.teacher-print-photo{
  width:52px;
  height:62px;
  object-fit:cover;
  border-radius:4px;
  border:1px solid #cfd5dd;
  display:block;
  margin:auto;
}
.teacher-print-photo-empty{
  display:flex;
  align-items:center;
  justify-content:center;
  background:#f1f3f5;
  color:#667085;
  font-size:9px;
}
.teacher-print-dates{
  line-height:1.5;
  min-width:90px;
}
.teacher-print-subinfo{
  display:block;
  color:#667085;
  font-size:9px;
  margin-top:3px;
}
.teacher-print-footer{
  margin-top:16px;
  font-size:10px;
  color:#4b5563;
}
.teacher-print-signatures{
  display:flex;
  justify-content:space-between;
  gap:25px;
  margin-top:30px;
  color:#17243b;
}
.teacher-print-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  padding:16px 0 0;
  margin-top:16px;
  border-top:1px solid var(--line);
}
@media print{
  @page{size:A4 landscape;margin:8mm}
  body.printing-teacher-attendance{
    background:#fff;
  }
  body.printing-teacher-attendance aside,
  body.printing-teacher-attendance header,
  body.printing-teacher-attendance main > #app{
    display:none !important;
  }
  body.printing-teacher-attendance #modal{
    display:flex !important;
    position:static !important;
    inset:auto !important;
    padding:0 !important;
    background:#fff !important;
    overflow:visible !important;
  }
  body.printing-teacher-attendance #modal .teacher-print-modalbox{
    display:block !important;
    width:100% !important;
    max-width:none !important;
    max-height:none !important;
    overflow:visible !important;
    padding:0 !important;
    box-shadow:none !important;
    border:0 !important;
  }
  body.printing-teacher-attendance .teacher-print-preview{
    padding:0 !important;
  }
  body.printing-teacher-attendance .teacher-print-actions{
    display:none !important;
  }
  body.printing-teacher-attendance .teacher-print-table{
    font-size:9px;
  }
  body.printing-teacher-attendance .teacher-print-table th,
  body.printing-teacher-attendance .teacher-print-table td{
    padding:5px;
  }
  body.printing-teacher-attendance .teacher-print-photo{
    width:45px;
    height:55px;
  }
}


/* Clear printer controls for Teacher Attendance */
.teacher-print-preview-btn,
.teacher-print-action-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  font-weight:800;
  white-space:nowrap;
  cursor:pointer;
}
.teacher-print-preview-btn{
  min-height:42px;
  padding:10px 16px;
}
.printer-icon{
  display:inline-flex;
  width:21px;
  height:21px;
  flex:0 0 21px;
  align-items:center;
  justify-content:center;
}
.printer-icon svg{
  width:21px;
  height:21px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.teacher-print-preview-btn:hover .printer-icon,
.teacher-print-action-btn:hover .printer-icon{
  transform:translateY(-1px);
}
.teacher-print-preview-btn:focus-visible,
.teacher-print-action-btn:focus-visible{
  outline:3px solid rgba(18,62,115,.25);
  outline-offset:2px;
}
@media(max-width:600px){
  .teacher-print-preview-btn span:last-child{
    display:none;
  }
  .teacher-print-preview-btn{
    min-width:44px;
    padding:10px 12px;
  }
}


.teacher-print-school-details{
  min-width:0;
}
.teacher-print-contact{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:4px 14px;
  font-size:9px;
  color:#334155;
  margin-top:6px!important;
}
.teacher-print-contact span{
  white-space:nowrap;
}


/* Final Teacher Attendance native-browser print layout */
.teacher-print-preview{
  position:relative;
  overflow:hidden;
}
.teacher-print-preview-head{
  position:relative;
  z-index:2;
  justify-content:flex-start!important;
}
.teacher-print-school-details{
  flex:1;
  text-align:center;
}
.teacher-print-watermark{
  position:absolute!important;
  left:50%!important;
  top:53%!important;
  width:260px!important;
  height:260px!important;
  object-fit:contain!important;
  transform:translate(-50%,-50%)!important;
  opacity:.075!important;
  z-index:0!important;
  pointer-events:none!important;
}
.teacher-print-preview > *:not(.teacher-print-watermark){
  position:relative;
  z-index:2;
}

@media print{
  @page{
    size:A4 landscape;
    margin:8mm;
  }

  html,body{
    margin:0!important;
    padding:0!important;
    background:#fff!important;
  }

  body.printing-teacher-attendance{
    background:#fff!important;
    color:#17243b!important;
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }

  /* Keep only the attendance print sheet in the browser's native Print Preview. */
  body.printing-teacher-attendance aside,
  body.printing-teacher-attendance header,
  body.printing-teacher-attendance main,
  body.printing-teacher-attendance main > #app{
    display:none!important;
  }

  body.printing-teacher-attendance #modal{
    display:block!important;
    position:static!important;
    inset:auto!important;
    width:auto!important;
    height:auto!important;
    min-height:0!important;
    padding:0!important;
    margin:0!important;
    background:#fff!important;
    overflow:visible!important;
  }

  body.printing-teacher-attendance #modal .teacher-print-modalbox{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    max-height:none!important;
    height:auto!important;
    overflow:visible!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    background:#fff!important;
  }

  body.printing-teacher-attendance .teacher-print-preview{
    display:block!important;
    position:relative!important;
    width:100%!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
    background:#fff!important;
    color:#17243b!important;
  }

  /* Logo is deliberately on the LEFT of the school information. */
  body.printing-teacher-attendance .teacher-print-preview-head{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:18px!important;
    text-align:center!important;
    padding:0 0 12px!important;
    border-bottom:3px solid #d7aa08!important;
  }

  body.printing-teacher-attendance .teacher-print-logo{
    flex:0 0 78px!important;
    width:78px!important;
    height:78px!important;
    object-fit:contain!important;
    margin:0!important;
  }

  body.printing-teacher-attendance .teacher-print-school-details{
    flex:1!important;
    text-align:center!important;
  }

  body.printing-teacher-attendance .teacher-print-school-details h2{
    font-size:21px!important;
    margin:0 0 3px!important;
  }

  body.printing-teacher-attendance .teacher-print-school-details h3{
    font-size:15px!important;
    margin:2px 0!important;
  }

  body.printing-teacher-attendance .teacher-print-contact{
    display:flex!important;
    flex-wrap:wrap!important;
    justify-content:center!important;
    gap:4px 14px!important;
    font-size:9px!important;
  }

  body.printing-teacher-attendance .teacher-print-contact span{
    white-space:nowrap!important;
  }

  body.printing-teacher-attendance .teacher-print-meta{
    display:flex!important;
    justify-content:space-between!important;
    gap:12px!important;
    padding:9px 0!important;
    font-size:10px!important;
  }

  body.printing-teacher-attendance .teacher-print-table-wrap{
    overflow:visible!important;
  }

  body.printing-teacher-attendance .teacher-print-table{
    width:100%!important;
    border-collapse:collapse!important;
    font-size:8.5px!important;
  }

  body.printing-teacher-attendance .teacher-print-table th,
  body.printing-teacher-attendance .teacher-print-table td{
    border:1px solid #aeb6c2!important;
    padding:5px!important;
    vertical-align:middle!important;
  }

  body.printing-teacher-attendance .teacher-print-table th{
    background:#0b3a71!important;
    color:#fff!important;
  }

  body.printing-teacher-attendance .teacher-print-photo{
    width:44px!important;
    height:54px!important;
    object-fit:cover!important;
  }

  /* Visible, centered school-logo watermark behind the report content. */
  body.printing-teacher-attendance .teacher-print-watermark{
    display:block!important;
    position:absolute!important;
    left:50%!important;
    top:55%!important;
    width:270px!important;
    height:270px!important;
    transform:translate(-50%,-50%)!important;
    object-fit:contain!important;
    opacity:.075!important;
    z-index:0!important;
    pointer-events:none!important;
  }

  body.printing-teacher-attendance .teacher-print-preview > *:not(.teacher-print-watermark){
    position:relative!important;
    z-index:2!important;
  }

  body.printing-teacher-attendance .teacher-print-actions{
    display:none!important;
  }

  body.printing-teacher-attendance .teacher-print-footer{
    margin-top:12px!important;
    font-size:9px!important;
  }

  body.printing-teacher-attendance .teacher-print-signatures{
    display:flex!important;
    justify-content:space-between!important;
    gap:20px!important;
    margin-top:22px!important;
  }
}


/* Final native browser printing fix */
@media print{
  body.printing-teacher-attendance{
    visibility:visible!important;
    overflow:visible!important;
  }
  body.printing-teacher-attendance aside,
  body.printing-teacher-attendance header,
  body.printing-teacher-attendance main{
    display:none!important;
    visibility:hidden!important;
  }
  body.printing-teacher-attendance #modal{
    display:block!important;
    visibility:visible!important;
    position:static!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    background:#fff!important;
    overflow:visible!important;
  }
  body.printing-teacher-attendance #modal .teacher-print-modalbox,
  body.printing-teacher-attendance #modal .teacher-print-preview{
    display:block!important;
    visibility:visible!important;
    position:relative!important;
    width:100%!important;
    max-width:none!important;
    max-height:none!important;
    height:auto!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
    opacity:1!important;
    transform:none!important;
    box-shadow:none!important;
    border:0!important;
  }
  body.printing-teacher-attendance .teacher-print-actions{
    display:none!important;
    visibility:hidden!important;
  }
  body.printing-teacher-attendance .teacher-print-watermark{
    display:block!important;
    visibility:visible!important;
  }
}


/* Student Attendance print control */
.student-attendance-print-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  font-weight:800;
  white-space:nowrap;
  cursor:pointer;
}
.student-attendance-print-btn .printer-icon{
  display:inline-flex;
  width:21px;
  height:21px;
  align-items:center;
  justify-content:center;
}
.student-attendance-print-btn .printer-icon svg{
  width:21px;
  height:21px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
}


/* Student Attendance in-system print preview */
.student-attendance-preview-modal{
  width:min(1200px,96vw)!important;
  max-width:1200px!important;
  max-height:92vh!important;
  overflow:auto!important;
  padding:18px!important;
}
.student-preview-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-bottom:14px;
  position:sticky;
  top:0;
  z-index:10;
  background:#fff;
  padding-bottom:10px;
  border-bottom:1px solid #e5e7eb;
}
.student-preview-toolbar h3{margin:0}
.student-browser-print-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  font-weight:800;
  white-space:nowrap;
}
.student-browser-print-btn .printer-icon{
  display:inline-flex;
  width:21px;
  height:21px;
}
.student-browser-print-btn .printer-icon svg{
  width:21px;
  height:21px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.student-preview-paper{
  background:#fff;
  border:1px solid #d7dce3;
  padding:16px;
  overflow:auto;
}
.student-preview-paper .student-attendance-print-report{
  position:relative;
  min-width:1000px;
}

/* FINAL: Student Attendance native browser print */
@media print{
  @page{
    size:A4 landscape;
    margin:8mm;
  }

  html,body{
    margin:0!important;
    padding:0!important;
    background:#fff!important;
  }

  body.printing-student-attendance{
    background:#fff!important;
    color:#17243b!important;
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
    overflow:visible!important;
  }

  body.printing-student-attendance aside,
  body.printing-student-attendance header,
  body.printing-student-attendance main,
  body.printing-student-attendance #app{
    display:none!important;
    visibility:hidden!important;
  }

  body.printing-student-attendance #modal{
    display:block!important;
    visibility:visible!important;
    position:static!important;
    inset:auto!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    background:#fff!important;
    overflow:visible!important;
  }

  body.printing-student-attendance #modal .student-attendance-preview-modal{
    display:block!important;
    visibility:visible!important;
    position:static!important;
    width:100%!important;
    max-width:none!important;
    max-height:none!important;
    height:auto!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    overflow:visible!important;
    background:#fff!important;
  }

  body.printing-student-attendance .student-preview-toolbar,
  body.printing-student-attendance #closeStudentAttendancePreview{
    display:none!important;
    visibility:hidden!important;
  }

  body.printing-student-attendance .student-preview-paper{
    display:block!important;
    visibility:visible!important;
    position:static!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    overflow:visible!important;
    background:#fff!important;
  }

  body.printing-student-attendance .student-attendance-print-report{
    display:block!important;
    visibility:visible!important;
    position:relative!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
    background:#fff!important;
  }

  body.printing-student-attendance .student-print-header{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:18px!important;
    position:relative!important;
    z-index:2!important;
    padding:0 0 12px!important;
    border-bottom:3px solid #d7aa08!important;
    text-align:center!important;
  }

  body.printing-student-attendance .student-print-logo{
    display:block!important;
    width:78px!important;
    height:78px!important;
    flex:0 0 78px!important;
    object-fit:contain!important;
  }

  body.printing-student-attendance .student-print-school-details{
    display:block!important;
    flex:1!important;
    text-align:center!important;
  }

  body.printing-student-attendance .student-print-contact{
    display:flex!important;
    flex-wrap:wrap!important;
    justify-content:center!important;
    gap:4px 14px!important;
    font-size:9px!important;
  }

  body.printing-student-attendance .student-print-meta{
    display:flex!important;
    position:relative!important;
    z-index:2!important;
    justify-content:space-between!important;
    padding:9px 0!important;
    font-size:10px!important;
  }

  body.printing-student-attendance .student-print-table{
    display:table!important;
    position:relative!important;
    z-index:2!important;
    width:100%!important;
    border-collapse:collapse!important;
    font-size:8.5px!important;
  }

  body.printing-student-attendance .student-print-table th,
  body.printing-student-attendance .student-print-table td{
    border:1px solid #aeb6c2!important;
    padding:5px!important;
    vertical-align:middle!important;
  }

  body.printing-student-attendance .student-print-table th{
    background:#0b3a71!important;
    color:#fff!important;
  }

  body.printing-student-attendance .student-print-photo{
    width:44px!important;
    height:54px!important;
    object-fit:cover!important;
  }

  body.printing-student-attendance .student-print-watermark{
    display:block!important;
    visibility:visible!important;
    position:absolute!important;
    left:50%!important;
    top:55%!important;
    width:270px!important;
    height:270px!important;
    transform:translate(-50%,-50%)!important;
    object-fit:contain!important;
    opacity:.075!important;
    z-index:0!important;
  }

  body.printing-student-attendance .student-print-footer{
    display:block!important;
    position:relative!important;
    z-index:2!important;
  }
}


/* Student Attendance Print Preview — same structure as supplied Teacher Attendance Sheet,
   with student fields only. */
.student-print-preview{
  background:#fff;
  color:#17243b;
  padding:24px;
  position:relative;
  overflow:hidden;
}
.student-print-preview-head{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:18px;
  text-align:center;
  border-bottom:3px solid var(--gold);
  padding-bottom:14px;
  position:relative;
  z-index:2;
}
.student-print-logo{
  width:82px;
  height:82px;
  object-fit:contain;
  flex:0 0 82px;
}
.student-print-school-details{
  flex:1;
  min-width:0;
  text-align:center;
}
.student-print-preview-head h2,
.student-print-preview-head h3,
.student-print-preview-head p{margin:2px 0}
.student-print-preview-head h2{font-size:22px}
.student-print-preview-head h3{font-size:17px}
.student-print-preview-head p{font-size:12px;color:#667085}
.student-print-contact{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:4px 14px;
  font-size:9px;
  color:#334155;
  margin-top:6px!important;
}
.student-print-contact span{white-space:nowrap}
.student-print-meta{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:12px 0;
  font-size:12px;
  flex-wrap:wrap;
  position:relative;
  z-index:2;
}
.student-print-table-wrap{overflow-x:auto;position:relative;z-index:2}
.student-print-table{
  width:100%;
  border-collapse:collapse;
  font-size:11px;
}
.student-print-table th,
.student-print-table td{
  border:1px solid #cfd5dd;
  padding:7px;
  vertical-align:middle;
}
.student-print-table th{
  background:var(--navy);
  color:#fff;
  text-align:center;
  white-space:nowrap;
}
.student-print-table td:first-child{width:70px;text-align:center}
.student-print-table td:nth-child(5){text-align:center;font-weight:bold;white-space:nowrap}
.student-print-photo{
  width:52px;
  height:62px;
  object-fit:cover;
  border-radius:4px;
  border:1px solid #cfd5dd;
  display:block;
  margin:auto;
}
.student-print-photo-empty{
  width:52px;
  height:62px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:auto;
  background:#f1f3f5;
  color:#667085;
  border:1px solid #cfd5dd;
  font-size:9px;
}
.student-print-dates{
  line-height:1.5;
  min-width:90px;
}
.student-print-footer{
  margin-top:16px;
  font-size:10px;
  color:#4b5563;
  position:relative;
  z-index:2;
}
.student-print-signatures{
  display:flex;
  justify-content:space-between;
  gap:25px;
  margin-top:30px;
  color:#17243b;
  position:relative;
  z-index:2;
}
.student-print-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  padding:16px 0 0;
  margin-top:16px;
  border-top:1px solid var(--line);
}
.student-print-action-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  font-weight:800;
  white-space:nowrap;
  cursor:pointer;
}
.student-print-modalbox{
  width:min(1200px,96vw)!important;
  max-width:1200px!important;
  max-height:92vh!important;
  overflow:auto!important;
}
.student-print-watermark{
  position:absolute!important;
  left:50%!important;
  top:53%!important;
  width:260px!important;
  height:260px!important;
  object-fit:contain!important;
  transform:translate(-50%,-50%)!important;
  opacity:.075!important;
  z-index:0!important;
  pointer-events:none!important;
}
.student-print-preview > *:not(.student-print-watermark){
  position:relative;
  z-index:2;
}

@media print{
  @page{size:A4 landscape;margin:8mm}
  html,body{
    margin:0!important;
    padding:0!important;
    background:#fff!important;
  }
  body.printing-student-attendance{
    background:#fff!important;
    color:#17243b!important;
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
    overflow:visible!important;
  }
  body.printing-student-attendance aside,
  body.printing-student-attendance header,
  body.printing-student-attendance main,
  body.printing-student-attendance main > #app{
    display:none!important;
    visibility:hidden!important;
  }
  body.printing-student-attendance #modal{
    display:block!important;
    visibility:visible!important;
    position:static!important;
    inset:auto!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    background:#fff!important;
    overflow:visible!important;
  }
  body.printing-student-attendance #modal .student-print-modalbox{
    display:block!important;
    visibility:visible!important;
    position:static!important;
    width:100%!important;
    max-width:none!important;
    max-height:none!important;
    height:auto!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    overflow:visible!important;
    background:#fff!important;
  }
  body.printing-student-attendance .student-print-preview{
    display:block!important;
    visibility:visible!important;
    position:relative!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    background:#fff!important;
    overflow:visible!important;
  }
  body.printing-student-attendance .student-print-actions{
    display:none!important;
    visibility:hidden!important;
  }
  body.printing-student-attendance .student-print-table-wrap{
    overflow:visible!important;
  }
  body.printing-student-attendance .student-print-table{
    font-size:9px!important;
  }
  body.printing-student-attendance .student-print-table th,
  body.printing-student-attendance .student-print-table td{
    padding:5px!important;
  }
  body.printing-student-attendance .student-print-photo{
    width:45px!important;
    height:55px!important;
  }
  body.printing-student-attendance .student-print-watermark{
    display:block!important;
    visibility:visible!important;
  }
}


/* FINAL STUDENT ATTENDANCE PRINT PREVIEW - matched to Teacher Attendance print behavior */
.student-print-preview{
  position:relative!important;
  overflow:hidden!important;
  background:#fff!important;
  color:#17243b!important;
  padding:24px!important;
}
.student-print-preview-head{
  position:relative!important;
  z-index:2!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:18px!important;
  text-align:center!important;
  border-bottom:3px solid #d7aa08!important;
  padding-bottom:14px!important;
}
.student-print-logo{
  width:82px!important;
  height:82px!important;
  object-fit:contain!important;
  flex:0 0 82px!important;
}
.student-print-school-details{flex:1!important;min-width:0!important;text-align:center!important}
.student-print-contact{
  display:flex!important;
  flex-wrap:wrap!important;
  justify-content:center!important;
  gap:4px 14px!important;
  font-size:9px!important;
  color:#334155!important;
  margin-top:6px!important;
}
.student-print-contact span{white-space:nowrap!important}
.student-print-meta{
  display:flex!important;
  justify-content:space-between!important;
  gap:12px!important;
  padding:12px 0!important;
  font-size:10px!important;
  flex-wrap:wrap!important;
  position:relative!important;
  z-index:2!important;
}
.student-print-table-wrap{overflow:visible!important;position:relative!important;z-index:2!important}
.student-print-table{
  width:100%!important;
  border-collapse:collapse!important;
  font-size:11px!important;
}
.student-print-table th,.student-print-table td{
  border:1px solid #cfd5dd!important;
  padding:7px!important;
  vertical-align:middle!important;
}
.student-print-table th{
  background:#0b3a71!important;
  color:#fff!important;
  text-align:center!important;
  white-space:nowrap!important;
}
.student-print-photo{
  width:52px!important;height:62px!important;
  object-fit:cover!important;border-radius:4px!important;
  border:1px solid #cfd5dd!important;display:block!important;margin:auto!important;
}
.student-print-photo-empty{
  width:52px!important;height:62px!important;display:flex!important;
  align-items:center!important;justify-content:center!important;margin:auto!important;
  background:#f1f3f5!important;color:#667085!important;
  border:1px solid #cfd5dd!important;font-size:9px!important;
}
.student-print-dates{line-height:1.5!important;min-width:90px!important}
.student-print-total{text-align:center!important;white-space:nowrap!important}
.student-print-footer{
  margin-top:16px!important;font-size:10px!important;color:#4b5563!important;
  position:relative!important;z-index:2!important;
}
.student-print-signatures{
  display:flex!important;justify-content:space-between!important;gap:25px!important;
  margin-top:30px!important;color:#17243b!important;
  position:relative!important;z-index:2!important;
}
.student-print-actions{
  display:flex!important;justify-content:flex-end!important;gap:10px!important;
  padding:16px 0 0!important;margin-top:16px!important;
  border-top:1px solid var(--line)!important;
}
.student-print-action-btn{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  gap:9px!important;font-weight:800!important;white-space:nowrap!important;cursor:pointer!important;
}
.student-print-modalbox{
  width:min(1200px,96vw)!important;
  max-width:1200px!important;
  max-height:92vh!important;
  overflow:auto!important;
}
.student-print-watermark{
  position:absolute!important;
  left:50%!important;
  top:53%!important;
  width:260px!important;height:260px!important;
  object-fit:contain!important;
  transform:translate(-50%,-50%)!important;
  opacity:.075!important;
  z-index:0!important;
  pointer-events:none!important;
}
.student-print-preview > *:not(.student-print-watermark){
  position:relative!important;
  z-index:2!important;
}

.search-result-count{
  float:right;
  display:inline-block;
  min-width:18px;
  padding:2px 6px;
  margin-left:8px;
  border-radius:10px;
  background:#edf3fa;
  color:#123e73;
  font-size:9px;
  text-align:center;
}
.search-result small strong{color:#123e73}
.search-result[role="button"]:focus{
  outline:2px solid #2d6da3;
  outline-offset:-2px;
}

/* Global dashboard search results */
.global-search-wrap{
  position:relative;
}
.global-search-results{
  display:none;
  position:absolute;
  top:calc(100% + 8px);
  right:0;
  width:min(620px,80vw);
  max-height:520px;
  overflow-y:auto;
  background:#fff;
  border:1px solid #d9e0e8;
  border-radius:10px;
  box-shadow:0 14px 35px rgba(0,0,0,.16);
  z-index:99999;
  text-align:left;
}
.global-search-results.show{
  display:block;
}
.global-search-results .search-result-head{
  padding:11px 14px;
  background:#f5f8fb;
  border-bottom:1px solid #e2e7ed;
  font-size:12px;
  font-weight:700;
  color:#173a63;
  position:sticky;
  top:0;
  z-index:2;
}
.global-search-results .search-result{
  display:block;
  padding:11px 14px;
  border-bottom:1px solid #edf0f3;
  cursor:pointer;
  color:#17243b;
}
.global-search-results .search-result:hover{
  background:#f1f6fb;
}
.global-search-results .search-result b{
  display:block;
  font-size:13px;
  margin-bottom:3px;
}
.global-search-results .search-result small{
  display:block;
  color:#667085;
  line-height:1.4;
  word-break:break-word;
}
.global-search-results .search-empty{
  padding:18px;
  color:#667085;
  font-size:13px;
  line-height:1.5;
}
@media(max-width:700px){
  .global-search-results{
    right:-40px;
    width:min(92vw,520px);
  }
}

/* Administrator passport profile */
#adminProfilePill{cursor:pointer}
#adminProfilePill .avatar{
  width:38px!important;
  height:38px!important;
  min-width:38px!important;
  border-radius:50%!important;
  overflow:hidden!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
}
#adminProfilePill .avatar.admin-avatar-image{
  background:#fff!important;
  border:1px solid #d5dce5!important;
}
#adminProfilePill .avatar.admin-avatar-image img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  display:block!important;
}
.admin-profile-modal{
  width:min(460px,92vw)!important;
  max-width:460px!important;
}
.admin-profile-upload{
  text-align:center;
}
.admin-profile-upload-preview{
  width:150px;
  height:150px;
  margin:10px auto 18px;
  border-radius:50%;
  overflow:hidden;
  border:3px solid #d5dce5;
  background:#f4f6f8;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:42px;
  font-weight:800;
}
.admin-profile-upload-preview img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.admin-profile-upload p{
  color:#667085;
  font-size:13px;
  margin:8px 0 16px;
}

/* Administrator account / logout */
.admin-account-area{
  display:flex;
  align-items:center;
  gap:8px;
}
.admin-logout-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  border:1px solid #d5dce5;
  background:#fff;
  color:#173a63;
  border-radius:7px;
  padding:8px 10px;
  min-height:36px;
  font-size:11px;
  font-weight:800;
  cursor:pointer;
  transition:background .15s ease,border-color .15s ease;
}
.admin-logout-button:hover{
  background:#f3f6f9;
  border-color:#b9c4d1;
}
.admin-logout-button span:first-child{
  font-size:16px;
  line-height:1;
}
@media(max-width:700px){
  .admin-logout-button span:last-child{display:none}
  .admin-logout-button{width:36px;padding:7px}
}

/* Full dashboard sign-out state */
body.admin-is-signed-out > aside,
body.admin-is-signed-out > main,
body.admin-is-signed-out > #modal{
  display:none!important;
}
body.admin-is-signed-out{
  margin:0!important;
  padding:0!important;
  min-height:100vh!important;
  overflow:hidden!important;
}
body.admin-is-signed-out .admin-signed-out-screen{
  display:flex!important;
}
.admin-signed-out-screen{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100vh!important;
  z-index:2147483647!important;
  display:none;
  align-items:center;
  justify-content:center;
  background:#f5f7fa!important;
  padding:24px;
  box-sizing:border-box;
}

/* AFISAP Administrator Authentication */
.afisap-auth-screen{
  position:fixed!important;
  inset:0!important;
  z-index:2147483647!important;
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
  box-sizing:border-box;
  background:#f3f6fa;
  font-family:Arial,sans-serif;
}
.afisap-auth-card{
  width:min(430px,94vw);
  background:#fff;
  border:1px solid #d9e1ea;
  border-radius:16px;
  box-shadow:0 18px 55px rgba(0,0,0,.16);
  padding:30px;
  text-align:left;
}
.afisap-auth-logo{
  width:78px;
  height:78px;
  margin:0 auto 10px;
}
.afisap-auth-logo img{
  width:100%;
  height:100%;
  object-fit:contain;
}
.afisap-auth-card h1{
  text-align:center;
  margin:0;
  font-size:22px;
  color:#173a63;
}
.afisap-auth-card h2{
  text-align:center;
  margin:4px 0 20px;
  font-size:13px;
  color:#667085;
  font-weight:600;
}
.afisap-auth-title{
  font-size:18px;
  font-weight:800;
  color:#173a63;
  margin-bottom:16px;
}
.afisap-auth-card label{
  display:block;
  margin:11px 0 6px;
  font-size:12px;
  font-weight:700;
  color:#344054;
}
.afisap-auth-card input{
  width:100%;
  box-sizing:border-box;
  border:1px solid #cfd7e2;
  border-radius:7px;
  padding:11px 12px;
  font-size:13px;
  outline:none;
}
.afisap-auth-card input:focus{
  border-color:#173a63;
  box-shadow:0 0 0 2px rgba(23,58,99,.08);
}
.afisap-auth-primary{
  width:100%;
  margin-top:17px;
  border:0;
  border-radius:7px;
  padding:12px;
  background:#173a63;
  color:#fff;
  font-weight:800;
  cursor:pointer;
}
.afisap-auth-link{
  display:block;
  margin:12px auto 0;
  border:0;
  background:transparent;
  color:#173a63;
  font-weight:700;
  cursor:pointer;
}
.afisap-auth-message{
  padding:9px 11px;
  margin-bottom:10px;
  border-radius:7px;
  background:#fff4e5;
  border:1px solid #f1d19b;
  color:#7a4a00;
  font-size:12px;
  line-height:1.4;
}
.afisap-auth-help{
  font-size:12px;
  color:#667085;
  line-height:1.5;
  margin:0 0 8px;
}
.afisap-auth-allowed{
  margin-top:22px;
  padding-top:14px;
  border-top:1px solid #e7ebf0;
  text-align:center;
}
.afisap-auth-allowed small{
  display:block;
  color:#667085;
  margin-bottom:6px;
}
.afisap-auth-allowed span{
  display:block;
  color:#173a63;
  font-size:11px;
  margin-top:2px;
}
body.afisap-auth-locked > aside,
body.afisap-auth-locked > main{
  display:none!important;
}

/* AFISAP V3 Login slideshow layout */
.afisap-auth-screen{
  padding:0!important;
  background:#f5f7fb!important;
  overflow:auto;
}
.afisap-auth-shell{
  width:100vw;
  min-height:100vh;
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(390px,.75fr);
  background:#fff;
}
.afisap-auth-slideshow{
  position:relative;
  min-height:100vh;
  overflow:hidden;
  background:#10233d;
}
.afisap-auth-slides,
.afisap-auth-slide{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.afisap-auth-slide{
  object-fit:cover;
  object-position:center;
  opacity:0;
  transform:scale(1.035);
  transition:opacity 1.1s ease,transform 5.5s ease;
}
.afisap-auth-slide.is-active{
  opacity:1;
  transform:scale(1);
}
.afisap-auth-slide-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(7,25,55,.72) 0%,rgba(7,25,55,.18) 40%,rgba(7,25,55,.78) 100%);
  pointer-events:none;
}
.afisap-auth-branding{
  position:absolute;
  top:30px;
  left:34px;
  right:34px;
  display:flex;
  align-items:center;
  gap:13px;
  color:#fff;
  z-index:2;
}
.afisap-auth-branding img{
  width:64px;
  height:64px;
  object-fit:contain;
  filter:drop-shadow(0 3px 8px rgba(0,0,0,.3));
}
.afisap-auth-brand-name{
  font-weight:900;
  font-size:22px;
  letter-spacing:.6px;
  text-shadow:0 2px 7px rgba(0,0,0,.4);
}
.afisap-auth-brand-tagline{
  margin-top:3px;
  font-size:11px;
  letter-spacing:2.2px;
  font-weight:700;
  opacity:.9;
}
.afisap-auth-caption{
  position:absolute;
  left:36px;
  bottom:68px;
  max-width:620px;
  color:#fff;
  z-index:2;
  text-shadow:0 2px 10px rgba(0,0,0,.45);
}
.afisap-auth-caption strong{
  display:block;
  font-size:clamp(28px,3.2vw,46px);
  line-height:1.05;
  margin-bottom:10px;
}
.afisap-auth-caption span{
  display:block;
  max-width:560px;
  font-size:15px;
  line-height:1.55;
  opacity:.94;
}
.afisap-auth-dots{
  position:absolute;
  left:36px;
  bottom:31px;
  display:flex;
  gap:6px;
  z-index:3;
}
.afisap-auth-dot{
  width:7px;
  height:7px;
  border-radius:50%;
  background:rgba(255,255,255,.45);
  transition:all .25s ease;
}
.afisap-auth-dot.is-active{
  width:23px;
  border-radius:8px;
  background:#fff;
}
.afisap-auth-panel{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:40px 42px;
  box-sizing:border-box;
  background:#fff;
}
.afisap-auth-panel-inner{
  width:min(430px,100%);
}
.afisap-auth-card{
  width:min(430px,94vw);
}
.afisap-auth-panel .afisap-auth-logo{
  width:86px;
  height:86px;
  margin:0 auto 12px;
}
.afisap-auth-panel h1{
  font-size:23px;
  letter-spacing:.2px;
}
.afisap-auth-panel h2{
  margin-bottom:30px;
}
.afisap-auth-panel .afisap-auth-title{
  text-align:center;
  font-size:21px;
  margin-bottom:20px;
}
.afisap-auth-panel form{
  width:100%;
}
.afisap-auth-panel .afisap-auth-primary{
  min-height:46px;
  font-size:13px;
  letter-spacing:.4px;
}
.afisap-auth-footer{
  text-align:center;
  margin-top:26px;
  padding-top:15px;
  border-top:1px solid #edf0f4;
  color:#98a2b3;
  font-size:11px;
}
@media (max-width:900px){
  .afisap-auth-shell{grid-template-columns:1fr;}
  .afisap-auth-slideshow{min-height:38vh;height:38vh;}
  .afisap-auth-panel{min-height:62vh;padding:34px 24px;}
  .afisap-auth-caption{bottom:35px;left:24px;right:24px;}
  .afisap-auth-caption strong{font-size:30px;}
  .afisap-auth-caption span{font-size:13px;}
  .afisap-auth-dots{left:24px;bottom:14px;}
  .afisap-auth-branding{top:18px;left:22px;}
  .afisap-auth-branding img{width:52px;height:52px;}
  .afisap-auth-brand-name{font-size:17px;}
}
@media (max-width:520px){
  .afisap-auth-panel{padding:28px 20px;}
  .afisap-auth-panel .afisap-auth-logo{width:72px;height:72px;}
  .afisap-auth-panel h1{font-size:19px;}
  .afisap-auth-panel h2{font-size:12px;margin-bottom:24px;}
}


/* AFISAP Academic Reports / Class Results */
.report-mode-tabs{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.report-mode-tabs button{border-radius:8px}
.report-help-text{margin-top:12px;padding:10px 12px;border-radius:8px;background:#f6f7f9;font-size:.92rem}
.report-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:16px 0}
.report-summary-grid>div{border:1px solid #ddd;border-radius:10px;padding:12px;text-align:center}
.report-summary-grid b{display:block;font-size:.78rem}
.report-summary-grid strong{display:block;font-size:1.3rem;margin-top:5px}
@media(max-width:800px){.report-summary-grid{grid-template-columns:repeat(2,1fr)}}
@media print{
  .report-mode-tabs,#studentReportPanel,#classResultsPanel,.report-actions{display:none!important}
  #classResultsReport{display:block!important}
}

/* AFISAP Academic Report Cards - bulk printing */
.bulk-student-list{
  border:1px solid var(--border);
  border-radius:10px;
  max-height:360px;
  overflow:auto;
  background:#fff;
}
.bulk-student-row{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border-bottom:1px solid #edf0f3;
  cursor:pointer;
}
.bulk-student-row:last-child{border-bottom:0}
.bulk-student-row input{width:18px;height:18px}
.bulk-student-row span{display:flex;flex-direction:column;gap:2px}
.bulk-student-row small{color:#7c8794;font-size:10px}
.bulk-report-page-break{
  page-break-after:always;
  break-after:page;
  height:0;
}
@media print{
  body.printing-bulk-report-cards aside,
  body.printing-bulk-report-cards header{display:none!important}
  body.printing-bulk-report-cards main{margin:0!important;padding:0!important}
  body.printing-bulk-report-cards #bulkReport{
    display:block!important;
    margin:0!important;
    padding:0!important;
    background:#fff!important;
  }
  body.printing-bulk-report-cards #bulkReport .report-print-sheet{
    page-break-inside:avoid;
    break-inside:avoid;
  }
  body.printing-bulk-report-cards #report,
  body.printing-bulk-report-cards #classResultsReport,
  body.printing-bulk-report-cards .panel{
    display:none!important;
  }
  body.printing-bulk-report-cards .bulk-report-page-break{
    page-break-after:always;
    break-after:page;
  }
}

/* AFISAP Student Attendance - bulk present workflow */
.attendance-present-check{
  width:20px;
  height:20px;
  flex:0 0 auto;
}
.attendance-status-label{
  min-width:70px;
  text-align:right;
  font-weight:700;
  font-size:12px;
}
@media (max-width:700px){
  .attendance-student-row{align-items:flex-start!important}
  .attendance-status-label{min-width:60px}
}

/* Academic Reports selection fix */
.report-help-text{line-height:1.45}
#repStu,#bulkReportClass,#classResultsClass{min-width:220px}

/* AFISAP Student Promotion & Demotion — surgical Classes & Subjects upgrade */
.afisap-promotion-controls{display:grid;grid-template-columns:minmax(220px,360px) 1fr;gap:14px;align-items:end;margin:14px 0}.afisap-promotion-controls label{font-weight:700}.afisap-promotion-controls select{width:100%;margin-top:7px}.afisap-promotion-next,.afisap-promotion-summary,.afisap-promotion-counts{padding:12px 14px;border:1px solid #e5e7eb;border-radius:10px;background:#f8fafc}.afisap-promotion-summary{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.afisap-promotion-summary>strong{font-size:24px}.afisap-promotion-summary span{margin-left:auto}.afisap-promotion-actions{display:flex;gap:9px;flex-wrap:wrap;margin:12px 0}.afisap-promotion-counts{margin-bottom:10px}.afisap-promotion-list{max-height:520px;overflow:auto;border:1px solid #e5e7eb;border-radius:10px}.afisap-promotion-student{display:grid;grid-template-columns:auto minmax(180px,1fr) minmax(180px,.7fr) auto;gap:12px;align-items:center;padding:11px 13px;border-bottom:1px solid #eef2f7}.afisap-promotion-student:last-child{border-bottom:0}.afisap-promotion-student input{width:18px;height:18px}.afisap-promotion-student small{display:block;margin-top:3px}.afisap-promotion-student em{font-style:normal;font-size:13px}.afisap-promotion-confirm-buttons{display:flex;gap:10px;justify-content:flex-end;margin-top:18px}@media(max-width:720px){.afisap-promotion-controls{grid-template-columns:1fr}.afisap-promotion-student{grid-template-columns:auto 1fr}.afisap-promotion-student em,.afisap-promotion-student button{grid-column:2}.afisap-promotion-summary span{margin-left:0;width:100%}}

/* AFISAP: automatic Headmaster signature on report cards */
.headmaster-signature-block{
  width:100%;
  text-align:center;
  margin:8px 0 2px;
  position:relative;
  z-index:3;
  page-break-inside:avoid;
  break-inside:avoid;
}
.headmaster-signature-image{
  display:block;
  width:190px;
  height:68px;
  margin:0 auto -4px;
  object-fit:contain;
  object-position:center;
}
.headmaster-signature-line{
  width:190px;
  margin:0 auto;
  border-top:1px solid #17243b;
}
.headmaster-signature-title{
  margin:3px 0 0!important;
  line-height:1.15;
  font-size:10px!important;
}
@media print{
  .headmaster-signature-block{
    page-break-inside:avoid!important;
    break-inside:avoid!important;
  }
}

/* =====================================================================
   AFISAP REPORT CARD READABILITY — SURGICAL CSS ONLY
   Scope: existing student Report Card (.report-print-sheet) only.
   No report logic, data, photo, signature, bulk-print, or application code.
   ===================================================================== */

/* Screen / browser report preview */
.report-print-sheet{
  line-height:1.18!important;
}
.report-print-sheet .report-attendance-style-school h2{
  font-size:26px!important;
  line-height:1.08!important;
}
.report-print-sheet .report-attendance-style-school h3{
  font-size:21px!important;
  line-height:1.08!important;
}
.report-print-sheet .report-attendance-style-school > p{
  font-size:16px!important;
  line-height:1.15!important;
}
.report-print-sheet .report-attendance-style-contact{
  font-size:13px!important;
  line-height:1.15!important;
}
.report-print-sheet .student-report-profile{
  gap:10px!important;
  padding:7px!important;
  margin:8px 0 7px!important;
}
.report-print-sheet .student-report-details{
  font-size:18px!important;
  line-height:1.14!important;
}
.report-print-sheet .student-report-details p{
  margin:1px 0!important;
  font-size:18px!important;
  line-height:1.14!important;
}
.report-print-sheet .student-report-details:first-of-type p:first-child{
  font-size:21px!important;
  font-weight:700!important;
}
.report-print-sheet > h3{
  font-size:20px!important;
  line-height:1.08!important;
  margin:5px 0 3px!important;
  padding:4px 6px!important;
}
.report-print-sheet table{
  font-size:18px!important;
  line-height:1.08!important;
  margin:2px 0 5px!important;
}
.report-print-sheet th,
.report-print-sheet td{
  padding:3px 4px!important;
  line-height:1.08!important;
  vertical-align:middle!important;
}
.report-print-sheet th{
  font-size:18px!important;
  font-weight:700!important;
}
.report-print-sheet > p{
  font-size:18px!important;
  line-height:1.12!important;
  margin:3px 0!important;
}

/* Keep the already-working Headmaster signature and its label untouched. */
.report-print-sheet .headmaster-signature-block,
.report-print-sheet .headmaster-signature-image,
.report-print-sheet .headmaster-signature-line,
.report-print-sheet .headmaster-signature-title{
  /* intentionally no visual overrides */
}

@media print{
  /* Compact page geometry, not smaller content: keeps one student's report
     on its own A4 page while preserving the enlarged readable type. */
  .report-print-sheet{
    width:210mm!important;
    max-width:210mm!important;
    min-height:0!important;
    height:auto!important;
    padding:5mm 7mm 5mm!important;
    line-height:1.08!important;
    overflow:hidden!important;
    page-break-inside:avoid!important;
    break-inside:avoid!important;
  }

  .report-print-sheet .report-attendance-style-header{
    gap:12px!important;
    padding-bottom:6px!important;
  }
  .report-print-sheet .report-attendance-style-logo{
    width:66px!important;
    height:66px!important;
    flex-basis:66px!important;
  }
  .report-print-sheet .report-attendance-style-school h2{
    font-size:24px!important;
  }
  .report-print-sheet .report-attendance-style-school h3{
    font-size:20px!important;
  }
  .report-print-sheet .report-attendance-style-school > p{
    font-size:15px!important;
    margin:1px 0!important;
  }
  .report-print-sheet .report-attendance-style-contact{
    font-size:12px!important;
    gap:2px 10px!important;
    margin-top:2px!important;
  }

  .report-print-sheet .student-report-profile{
    gap:8px!important;
    padding:5px!important;
    margin:5px 0!important;
  }
  .report-print-sheet .report-photo{
    width:68px!important;
    height:80px!important;
  }
  .report-print-sheet .student-report-details,
  .report-print-sheet .student-report-details p{
    font-size:17px!important;
    line-height:1.06!important;
    margin:0!important;
  }
  .report-print-sheet .student-report-details:first-of-type p:first-child{
    font-size:20px!important;
  }

  .report-print-sheet > h3{
    font-size:19px!important;
    line-height:1.04!important;
    margin:3px 0 2px!important;
    padding:3px 5px!important;
  }
  .report-print-sheet table{
    font-size:17px!important;
    line-height:1.02!important;
    margin:1px 0 3px!important;
  }
  .report-print-sheet th,
  .report-print-sheet td{
    padding:2px 3px!important;
    line-height:1.02!important;
  }
  .report-print-sheet th{
    font-size:17px!important;
  }
  .report-print-sheet > p{
    font-size:17px!important;
    line-height:1.05!important;
    margin:2px 0!important;
  }

  /* Bulk printing: enforce exactly one report sheet per student page. */
  body.printing-bulk-report-cards #bulkReport .report-print-sheet{
    page-break-inside:avoid!important;
    break-inside:avoid!important;
    page-break-after:auto!important;
    break-after:auto!important;
  }
  body.printing-bulk-report-cards .bulk-report-page-break{
    display:block!important;
    height:0!important;
    margin:0!important;
    padding:0!important;
    page-break-after:always!important;
    break-after:page!important;
  }
}


/* AFISAP automatic academic-position watermark — Report Cards only */
.report-print-sheet .report-position-watermark{
  position:absolute;
  left:50%;
  top:52%;
  transform:translate(-50%,-50%);
  font-size:220px;
  line-height:1;
  font-weight:800;
  color:#0b3a71;
  opacity:.06;
  z-index:1;
  pointer-events:none;
  user-select:none;
  white-space:nowrap;
}
.report-print-sheet .report-overall-position{
  font-weight:700;
}
@media print{
  .report-print-sheet .report-position-watermark{
    display:block!important;
    visibility:visible!important;
    position:absolute!important;
    left:50%!important;
    top:52%!important;
    transform:translate(-50%,-50%)!important;
    font-size:210px!important;
    opacity:.06!important;
    z-index:1!important;
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }
}


/* =====================================================================
   AFISAP OFFICIAL SCHOOL REPORT CARD LAYOUT - STUDENT REPORT ONLY
   Visual reference: official AFISAP one-page report. No application logic.
   ===================================================================== */
.report-print-sheet.afisap-official-report-card{
  width:210mm!important;
  max-width:210mm!important;
  min-height:297mm!important;
  padding:7mm 8mm 6mm!important;
  border:1.5px solid #b9b9b9;
  border-radius:15px;
  color:#171717;
  font-family:Arial,Helvetica,sans-serif;
  line-height:1.1!important;
  box-sizing:border-box;
  background:#fff;
}
.afisap-official-report-card .official-report-header{
  display:grid;
  grid-template-columns:92px minmax(0,1fr) 82px;
  align-items:center;
  gap:10px;
  min-height:94px;
  padding:1px 7px 7px;
  position:relative;
  z-index:2;
}
.afisap-official-report-card .official-report-logo{
  width:88px;
  height:88px;
  object-fit:contain;
  justify-self:start;
}
.afisap-official-report-card .official-report-school{text-align:center;min-width:0}
.afisap-official-report-card .official-report-school h1{
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  color:#111!important;
  font-size:28px!important;
  line-height:1.04!important;
  font-weight:800!important;
  letter-spacing:.2px;
}
.afisap-official-report-card .official-report-motto{
  margin-top:5px;
  font-size:18px;
  font-weight:500;
  letter-spacing:.4px;
}
.afisap-official-report-card .official-report-phones{
  margin-top:7px;
  font-size:15px;
  font-weight:600;
  white-space:normal;
}
.afisap-official-report-card .official-report-contact{
  margin-top:3px;
  font-size:12.5px;
  font-weight:500;
  overflow-wrap:anywhere;
}
.afisap-official-report-card .official-report-student-photo{
  width:72px!important;
  height:82px!important;
  border:1px solid #c4c4c4!important;
  border-radius:13px;
  justify-self:end;
  background:#f8f8f8;
}
.afisap-official-report-card .official-report-student-photo img{border-radius:12px}
.afisap-official-report-card table{
  width:100%!important;
  border-collapse:collapse!important;
  table-layout:fixed;
  background:rgba(255,255,255,.94)!important;
  color:#171717!important;
  position:relative;
  z-index:2;
  margin:0 0 8px!important;
  font-size:17px!important;
  line-height:1.06!important;
}
.afisap-official-report-card table th,
.afisap-official-report-card table td{
  border:1.3px solid #333!important;
  padding:5px 5px!important;
  color:#171717!important;
  vertical-align:middle!important;
}
.afisap-official-report-card .official-report-period-table th{
  background:#e6e6e6!important;
  text-align:center!important;
  font-size:18px!important;
}
.afisap-official-report-card .official-report-period-table td{
  background:#ededed!important;
  text-align:center!important;
  font-size:17px!important;
}
.afisap-official-report-card .official-report-student-info th{
  background:#e4e4e4!important;
  text-align:center!important;
  font-size:18px!important;
  font-weight:800!important;
}
.afisap-official-report-card .official-report-student-info .official-label{
  width:19%;
  background:#ededed!important;
  font-weight:700;
}
.afisap-official-report-card .official-report-student-info .official-value{background:rgba(255,255,255,.9)!important}
.afisap-official-report-card .official-report-student-info .official-student-name{
  font-size:20px!important;
  font-weight:700!important;
}
.afisap-official-report-card .official-report-results{font-size:17px!important;margin-top:1px!important}
.afisap-official-report-card .official-report-results th,
.afisap-official-report-card .official-report-results td{
  padding:5px 4px!important;
}
.afisap-official-report-card .official-report-results thead th{
  background:#203047!important;
  color:#fff!important;
  text-align:center!important;
  font-size:17px!important;
  font-weight:700!important;
}
.afisap-official-report-card .official-report-results th:nth-child(1){width:24%}
.afisap-official-report-card .official-report-results th:nth-child(2){width:15%}
.afisap-official-report-card .official-report-results th:nth-child(3){width:15%}
.afisap-official-report-card .official-report-results th:nth-child(4){width:16%}
.afisap-official-report-card .official-report-results th:nth-child(5){width:11%}
.afisap-official-report-card .official-report-results th:nth-child(6){width:19%}
.afisap-official-report-card .official-report-results td:not(:first-child){text-align:center}
.afisap-official-report-card .official-overall-row th,
.afisap-official-report-card .official-overall-row td{
  background:#ececec!important;
  font-weight:800!important;
  text-align:center!important;
}
.afisap-official-report-card .official-report-attendance-line{
  display:grid;
  grid-template-columns:1fr .8fr 1.25fr;
  gap:10px;
  align-items:center;
  margin:2px 4px 8px;
  font-size:17px;
  position:relative;
  z-index:2;
}
.afisap-official-report-card .official-report-remarks{
  font-size:17px;
  margin:2px 4px 7px;
  position:relative;
  z-index:2;
}
.afisap-official-report-card .official-remark-line{
  min-height:20px;
  border-bottom:1.3px dotted #333;
  padding:1px 4px;
}
.afisap-official-report-card .official-report-fees th{
  background:#ffe58a!important;
  text-align:center!important;
  font-weight:800!important;
  font-size:16.5px!important;
}
.afisap-official-report-card .official-report-fees td{
  height:30px;
  text-align:center;
  font-size:17px!important;
}
.afisap-official-report-card .official-report-position-line{
  text-align:left;
  font-size:18px;
  margin:2px 4px 4px;
  position:relative;
  z-index:2;
}
.afisap-official-report-card .official-report-signatures{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:35px;
  align-items:end;
  margin:2px 4px 0;
  position:relative;
  z-index:3;
}
.afisap-official-report-card .official-class-teacher-signature{text-align:left;font-size:14px}
.afisap-official-report-card .official-signature-space{height:48px}
.afisap-official-report-card .official-signature-line{border-top:1px dotted #333;margin-bottom:4px}
.afisap-official-report-card .official-signature-name{margin-top:2px;font-size:13px;font-weight:700}
.afisap-official-report-card .official-report-signatures .headmaster-signature-block{
  margin:0!important;
  align-self:end;
}
.afisap-official-report-card .official-report-footer{
  text-align:center;
  margin-top:4px;
  font-size:10px;
  font-style:italic;
  letter-spacing:.4px;
  position:relative;
  z-index:2;
}
.afisap-official-report-card .report-card-watermark{
  width:300px!important;
  height:300px!important;
  top:53%!important;
  opacity:.055!important;
}
.afisap-official-report-card .report-position-watermark{
  top:52%!important;
  font-size:230px!important;
  opacity:.06!important;
}

@media print{
  .report-print-sheet.afisap-official-report-card{
    width:210mm!important;
    max-width:210mm!important;
    min-height:297mm!important;
    height:297mm!important;
    padding:5.5mm 7mm 5mm!important;
    margin:0!important;
    border:1.2px solid #a8a8a8!important;
    border-radius:13px!important;
    overflow:hidden!important;
    page-break-inside:avoid!important;
    break-inside:avoid!important;
    page-break-after:auto!important;
    break-after:auto!important;
  }
  .afisap-official-report-card .official-report-header{
    grid-template-columns:78px minmax(0,1fr) 68px;
    min-height:79px;
    gap:7px;
    padding:0 5px 5px;
  }
  .afisap-official-report-card .official-report-logo{width:74px;height:74px}
  .afisap-official-report-card .official-report-student-photo{width:62px!important;height:70px!important}
  .afisap-official-report-card .official-report-school h1{font-size:25px!important}
  .afisap-official-report-card .official-report-motto{font-size:16px;margin-top:3px}
  .afisap-official-report-card .official-report-phones{font-size:13.5px;margin-top:4px}
  .afisap-official-report-card .official-report-contact{font-size:10.5px;margin-top:2px}
  .afisap-official-report-card table{font-size:16px!important;margin-bottom:5px!important;line-height:1.02!important}
  .afisap-official-report-card table th,
  .afisap-official-report-card table td{padding:3px 4px!important;line-height:1.02!important}
  .afisap-official-report-card .official-report-period-table th{font-size:16.5px!important}
  .afisap-official-report-card .official-report-period-table td{font-size:16px!important}
  .afisap-official-report-card .official-report-student-info th{font-size:17px!important}
  .afisap-official-report-card .official-report-student-info .official-student-name{font-size:18px!important}
  .afisap-official-report-card .official-report-results,
  .afisap-official-report-card .official-report-results thead th{font-size:15.5px!important}
  .afisap-official-report-card .official-report-results th,
  .afisap-official-report-card .official-report-results td{padding:3px 3px!important}
  .afisap-official-report-card .official-report-attendance-line{font-size:15.5px;margin:1px 3px 5px;gap:6px}
  .afisap-official-report-card .official-report-remarks{font-size:15.5px;margin:1px 3px 4px}
  .afisap-official-report-card .official-remark-line{min-height:16px}
  .afisap-official-report-card .official-report-fees th{font-size:14.5px!important}
  .afisap-official-report-card .official-report-fees td{font-size:15.5px!important;height:24px}
  .afisap-official-report-card .official-report-position-line{font-size:16px;margin:1px 3px 2px}
  .afisap-official-report-card .official-report-signatures{gap:26px;margin-top:0}
  .afisap-official-report-card .official-signature-space{height:35px}
  .afisap-official-report-card .official-class-teacher-signature{font-size:12px}
  .afisap-official-report-card .official-signature-name{font-size:11px}
  .afisap-official-report-card .official-report-footer{font-size:8.5px;margin-top:2px}
  .afisap-official-report-card .report-card-watermark{width:270px!important;height:270px!important;opacity:.05!important}
  .afisap-official-report-card .report-position-watermark{font-size:210px!important;opacity:.06!important}
  body.printing-bulk-report-cards #bulkReport .afisap-official-report-card{
    height:297mm!important;
    min-height:297mm!important;
    page-break-inside:avoid!important;
    break-inside:avoid!important;
  }
}

/* Preserve the official paper watermark effect through the result rows. */
.afisap-official-report-card .official-report-results tbody td,
.afisap-official-report-card .official-report-results tbody th{
  background:rgba(255,255,255,.74)!important;
}
.afisap-official-report-card .official-report-results .official-overall-row th,
.afisap-official-report-card .official-report-results .official-overall-row td{
  background:rgba(236,236,236,.80)!important;
}
.afisap-official-report-card .report-position-watermark{opacity:.075!important}
@media print{
  .afisap-official-report-card .report-position-watermark{opacity:.07!important}
}

/* Final print readability uplift: keeps the official one-page geometry while
   preserving the larger AFISAP report-card type requested by the school. */
@media print{
  .afisap-official-report-card .official-report-school h1{font-size:27px!important}
  .afisap-official-report-card .official-report-motto{font-size:17px!important}
  .afisap-official-report-card .official-report-phones{font-size:14px!important}
  .afisap-official-report-card table{font-size:17px!important}
  .afisap-official-report-card .official-report-period-table th{font-size:17.5px!important}
  .afisap-official-report-card .official-report-period-table td{font-size:17px!important}
  .afisap-official-report-card .official-report-student-info th{font-size:18px!important}
  .afisap-official-report-card .official-report-student-info .official-student-name{font-size:20px!important}
  .afisap-official-report-card .official-report-results,
  .afisap-official-report-card .official-report-results thead th{font-size:16.5px!important}
  .afisap-official-report-card .official-report-attendance-line{font-size:17px!important}
  .afisap-official-report-card .official-report-remarks{font-size:17px!important}
  .afisap-official-report-card .official-report-fees th{font-size:16px!important}
  .afisap-official-report-card .official-report-fees td{font-size:17px!important}
  .afisap-official-report-card .official-report-position-line{font-size:17.5px!important}
}


/* AFISAP report-card information restoration from the previous official report.
   Report Card only: no application/module styling is changed. */
.afisap-official-report-card .official-report-student-info .official-label{
  white-space:nowrap;
}
.afisap-official-report-card .official-report-student-info .official-value{
  overflow-wrap:anywhere;
}
.afisap-official-report-card .report-position-watermark{
  font-size:155px!important;
  opacity:.13!important;
  font-weight:800!important;
  top:51%!important;
}
@media print{
  .afisap-official-report-card .official-report-student-info{
    font-size:15.5px!important;
  }
  .afisap-official-report-card .official-report-student-info th,
  .afisap-official-report-card .official-report-student-info td{
    padding:2px 4px!important;
    line-height:1!important;
  }
  .afisap-official-report-card .official-report-student-info .official-student-name{
    font-size:18px!important;
  }
  .afisap-official-report-card .report-position-watermark{
    font-size:145px!important;
    opacity:.12!important;
    top:51%!important;
  }
  .afisap-official-report-card .official-overall-row th:nth-child(5){
    font-size:14px!important;
    white-space:nowrap;
  }
}

/* Promotion synchronization loading indicator */
.afisap-promotion-confirm-buttons #confirmPromotionNow.is-synchronizing{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  min-width:190px;
  cursor:wait;
  opacity:.9;
}
.afisap-promotion-confirm-buttons button.is-disabled{
  opacity:.55;
  cursor:not-allowed;
}
.afisap-promotion-spinner{
  width:16px;
  height:16px;
  border:2px solid currentColor;
  border-right-color:transparent;
  border-radius:50%;
  display:inline-block;
  flex:0 0 16px;
  animation:afisapPromotionSpin .7s linear infinite;
}
@keyframes afisapPromotionSpin{
  to{transform:rotate(360deg)}
}

/* AFISAP Fees save progress */
.afisap-fee-save-status{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:24px;
  margin-top:10px;
  font-size:.92rem;
  font-weight:600;
}
.afisap-fee-spinner{
  width:16px;
  height:16px;
  border:2px solid currentColor;
  border-right-color:transparent;
  border-radius:50%;
  display:inline-block;
  animation:afisapFeeSpin .7s linear infinite;
  flex:0 0 16px;
}
@keyframes afisapFeeSpin{to{transform:rotate(360deg)}}

/* AFISAP Fees save progress */
.afisap-fee-bulk-progress{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:46px;
}
.afisap-fee-loading-logo{
  width:42px;
  height:42px;
  flex:0 0 42px;
  display:flex;
  align-items:center;
  justify-content:center;
  animation:afisapFeeLogoPulse 1.1s ease-in-out infinite;
}
.afisap-fee-loading-logo img{
  width:42px;
  height:42px;
  object-fit:contain;
}
.afisap-fee-progress-copy{font-weight:600}
@keyframes afisapFeeLogoPulse{
  0%,100%{transform:scale(.9);opacity:.65}
  50%{transform:scale(1);opacity:1}
}


/* MAIN ADMIN LOGIN — centered circular card over supplied school photo.
   Surgical frontend-only enhancement. */
.afisap-auth-screen{
  overflow:hidden!important;
  background:#0c3158!important;
}
.afisap-auth-shell{
  position:relative!important;
  display:block!important;
  width:100vw!important;
  min-height:100vh!important;
  background:#0c3158!important;
  overflow:hidden!important;
}
.afisap-auth-slideshow{
  position:absolute!important;
  inset:0!important;
  min-height:100vh!important;
  height:100vh!important;
  width:100vw!important;
  overflow:hidden!important;
  background:#0c3158!important;
}
.afisap-auth-main-photo{
  opacity:1!important;
  object-fit:cover!important;
  object-position:center!important;
  transform:scale(1.05)!important;
  animation:afisapAdminLoginPhotoMove 18s ease-in-out infinite alternate!important;
}
@keyframes afisapAdminLoginPhotoMove{
  0%{transform:scale(1.05) translate3d(-1.4%,0,0)}
  50%{transform:scale(1.10) translate3d(1.2%,-.8%,0)}
  100%{transform:scale(1.06) translate3d(0,1%,0)}
}
.afisap-auth-slide-overlay{
  background:
    radial-gradient(circle at center,rgba(4,35,72,.12) 0%,rgba(4,35,72,.34) 55%,rgba(4,35,72,.60) 100%),
    linear-gradient(180deg,rgba(5,25,52,.25),rgba(5,25,52,.48))!important;
}
.afisap-auth-branding{
  top:22px!important;
  left:26px!important;
  right:auto!important;
}
.afisap-auth-caption,
.afisap-auth-dots{
  display:none!important;
}
.afisap-auth-panel{
  position:relative!important;
  z-index:5!important;
  min-height:100vh!important;
  width:100vw!important;
  padding:28px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:transparent!important;
  box-sizing:border-box!important;
}
.afisap-auth-panel-inner{
  width:610px!important;
  height:610px!important;
  max-width:calc(100vw - 44px)!important;
  max-height:calc(100vh - 44px)!important;
  border-radius:50%!important;
  box-sizing:border-box!important;
  padding:60px 88px 54px!important;
  background:rgba(255,255,255,.94)!important;
  border:1px solid rgba(255,255,255,.80)!important;
  box-shadow:0 24px 75px rgba(0,20,48,.34)!important;
  backdrop-filter:blur(8px)!important;
  -webkit-backdrop-filter:blur(8px)!important;
  overflow:auto!important;
  scrollbar-width:none;
}
.afisap-auth-panel-inner::-webkit-scrollbar{display:none}
.afisap-auth-panel .afisap-auth-logo{
  width:72px!important;
  height:72px!important;
  margin:0 auto 8px!important;
}
.afisap-auth-panel h1{
  text-align:center!important;
  font-size:20px!important;
  margin:0!important;
  color:#103d70!important;
}
.afisap-auth-panel h2{
  text-align:center!important;
  margin:4px 0 14px!important;
  font-size:12px!important;
}
.afisap-auth-panel .afisap-auth-title{
  margin-bottom:12px!important;
  font-size:18px!important;
}
.afisap-auth-panel label{
  margin:8px 0 4px!important;
}
.afisap-auth-panel input{
  padding:10px 12px!important;
  background:rgba(255,255,255,.94)!important;
}
.afisap-auth-panel .afisap-auth-primary{
  min-height:42px!important;
  margin-top:13px!important;
}
.afisap-auth-panel .afisap-auth-link{
  margin-top:8px!important;
}
.afisap-login-credit{
  margin-top:10px!important;
  font-size:.82rem!important;
}
.afisap-auth-footer{
  margin-top:10px!important;
  padding-top:8px!important;
}
.afisap-admin-signin-loader[hidden]{display:none!important}
.afisap-admin-signin-loader{
  position:fixed;
  inset:0;
  z-index:20;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(5,28,58,.48);
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
}
.afisap-admin-signin-loader-card{
  width:min(310px,84vw);
  padding:28px 24px;
  border-radius:24px;
  text-align:center;
  color:#103d70;
  background:rgba(255,255,255,.96);
  box-shadow:0 22px 65px rgba(0,18,45,.32);
}
.afisap-admin-signin-loader-card img{
  width:88px;
  height:88px;
  object-fit:contain;
  animation:afisapAdminLogoPulse 1.15s ease-in-out infinite;
}
@keyframes afisapAdminLogoPulse{
  0%,100%{opacity:.42;transform:scale(.88)}
  50%{opacity:1;transform:scale(1.06)}
}
.afisap-admin-signin-title{
  margin-top:10px;
  font-size:20px;
  font-weight:900;
}
.afisap-admin-signin-subtitle{
  margin-top:6px;
  font-size:12px;
  line-height:1.5;
  color:#667085;
}
@media(max-width:700px){
  .afisap-auth-branding{top:14px!important;left:14px!important}
  .afisap-auth-branding img{width:46px!important;height:46px!important}
  .afisap-auth-brand-name{font-size:14px!important}
  .afisap-auth-brand-tagline{font-size:9px!important}
  .afisap-auth-panel{padding:78px 14px 18px!important}
  .afisap-auth-panel-inner{
    width:min(92vw,470px)!important;
    height:auto!important;
    max-height:calc(100vh - 100px)!important;
    min-height:0!important;
    border-radius:34px!important;
    padding:25px 24px 22px!important;
  }
  .afisap-auth-panel .afisap-auth-logo{width:60px!important;height:60px!important}
  .afisap-auth-panel h1{font-size:17px!important}
  .afisap-auth-panel h2{margin-bottom:10px!important}
}
@media(prefers-reduced-motion:reduce){
  .afisap-auth-main-photo,
  .afisap-admin-signin-loader-card img{animation:none!important}
}



/* MAIN ADMIN LOGIN — revised circular design (keeps the supplied moving photo). */
.afisap-auth-panel-inner{
  position:relative!important;
  width:620px!important;
  height:620px!important;
  border-radius:50%!important;
  padding:62px 92px 56px!important;
  background:
    radial-gradient(circle at 35% 24%,rgba(255,255,255,.99) 0%,rgba(255,255,255,.96) 44%,rgba(240,247,255,.94) 100%)!important;
  border:8px solid rgba(255,255,255,.75)!important;
  box-shadow:
    0 0 0 4px rgba(20,78,132,.72),
    0 0 0 10px rgba(247,194,30,.78),
    0 28px 78px rgba(0,20,48,.40)!important;
  overflow:auto!important;
}
.afisap-auth-panel-inner::before{
  content:"";
  position:absolute;
  inset:15px;
  border-radius:50%;
  border:1px solid rgba(16,61,112,.18);
  pointer-events:none;
}
.afisap-auth-panel-inner::after{
  content:"";
  position:absolute;
  width:120px;
  height:10px;
  left:50%;
  top:27px;
  transform:translateX(-50%);
  border-radius:10px;
  background:linear-gradient(90deg,#0f477f,#f1bf22,#0f477f);
  opacity:.9;
  pointer-events:none;
}
.afisap-auth-panel .afisap-auth-logo{
  width:76px!important;
  height:76px!important;
  padding:5px!important;
  border-radius:50%!important;
  background:rgba(255,255,255,.88)!important;
  box-shadow:0 6px 20px rgba(16,61,112,.14)!important;
}
.afisap-auth-panel .afisap-auth-title{
  color:#103d70!important;
  letter-spacing:.2px!important;
}
.afisap-auth-panel input{
  border-radius:14px!important;
  border:1px solid #c9d7e7!important;
  box-shadow:inset 0 1px 2px rgba(16,61,112,.04)!important;
}
.afisap-auth-panel input:focus{
  border-color:#164f87!important;
  box-shadow:0 0 0 3px rgba(22,79,135,.10)!important;
}
.afisap-auth-panel .afisap-auth-primary{
  border-radius:999px!important;
  background:linear-gradient(135deg,#0e3f73,#1d609d)!important;
  box-shadow:0 8px 20px rgba(14,63,115,.20)!important;
}
.afisap-auth-panel .afisap-auth-primary:hover{
  transform:translateY(-1px);
}
@media(max-width:700px){
  .afisap-auth-panel-inner{
    width:min(92vw,470px)!important;
    height:auto!important;
    border-radius:32px!important;
    border-width:4px!important;
    box-shadow:
      0 0 0 3px rgba(20,78,132,.62),
      0 0 0 7px rgba(247,194,30,.68),
      0 22px 58px rgba(0,20,48,.34)!important;
    padding:28px 24px 23px!important;
  }
  .afisap-auth-panel-inner::before{border-radius:24px;inset:9px}
  .afisap-auth-panel-inner::after{top:15px;width:86px;height:7px}
}

