/* ============================================================
   EMS UI Readability & Brand Consistency Patch
   Scope: Portal screens only.
   Purpose:
   - Keep EMS green/gold/cream identity consistent.
   - Remove light-grey/white admin blocks that reduce readability.
   - Improve tables, forms, template centre, health check, generated docs,
     fee/result/certificate/admin cards without touching business logic.
   ============================================================ */

:root{
  --ems-ui-green-950:#101f0d;
  --ems-ui-green-900:#172b12;
  --ems-ui-green-850:#1d3017;
  --ems-ui-green-800:#243f1b;
  --ems-ui-green-700:#314a25;
  --ems-ui-gold:#f9c454;
  --ems-ui-gold-soft:#fff2cf;
  --ems-ui-cream:#fff8e6;
  --ems-ui-muted:#d8cda9;
  --ems-ui-border:rgba(249,196,84,.26);
  --ems-ui-border-soft:rgba(249,196,84,.16);
  --ems-ui-surface:linear-gradient(145deg,rgba(255,242,207,.095),rgba(0,0,0,.18));
  --ems-ui-surface-strong:linear-gradient(145deg,rgba(49,74,37,.94),rgba(16,31,13,.90));
  --ems-ui-surface-flat:rgba(14,28,11,.72);
  --ems-ui-shadow:0 18px 44px rgba(0,0,0,.20);
}

.portal-body .portal-main{
  color:var(--ems-ui-cream);
}

/* Main card surfaces */
.portal-body .portal-main .portal-card,
.portal-body .portal-main .admin-module-card,
.portal-body .portal-main .management-module-card,
.portal-body .portal-main .dashboard-card,
.portal-body .portal-main .setup-guidance-card,
.portal-body .portal-main .teacher-document-upload-card,
.portal-body .portal-main .teacher-assignment-block,
.portal-body .portal-main .teacher-modal-section,
.portal-body .portal-main .student-subpanel,
.portal-body .portal-main .attendance-subpanel,
.portal-body .portal-main .exam-subpanel,
.portal-body .portal-main .notice-subpanel,
.portal-body .portal-main .result-subpanel,
.portal-body .portal-main .certificate-tab-panel,
.portal-body .portal-main .report-tab-panel,
.portal-body .portal-main .fee-tab-panel,
.portal-body .portal-main .fee-report-tab-card,
.portal-body .portal-main .fee-single-page-card,
.portal-body .portal-main .fee-admin-page-card,
.portal-body .portal-main .result-workflow-control-panel,
.portal-body .portal-main .system-health-card,
.portal-body .portal-main .production-readiness-card,
.portal-body .portal-main .template-control-centre-card,
.portal-body .portal-main .template-list-card,
.portal-body .portal-main .template-editor-card,
.portal-body .portal-main .template-rules-card,
.portal-body .portal-main .template-fields-card,
.portal-body .portal-main .template-testing-card,
.portal-body .portal-main .google-drive-oauth-card,
.portal-body .portal-main .report-output-card,
.portal-body .portal-main .promotion-closing-card,
.portal-body .portal-main .security-policy-card,
.portal-body .portal-main .security-action-card,
.portal-body .portal-main .launch-qa-readiness-card{
  background:var(--ems-ui-surface-strong) !important;
  border:1px solid var(--ems-ui-border) !important;
  color:var(--ems-ui-cream) !important;
  box-shadow:var(--ems-ui-shadow) !important;
}

/* Nested/row cards */
.portal-body .portal-main .admin-row,
.portal-body .portal-main .teacher-row,
.portal-body .portal-main .student-row,
.portal-body .portal-main .notice-row-card,
.portal-body .portal-main .notice-card,
.portal-body .portal-main .notice-review-card,
.portal-body .portal-main .teacher-doc-review-row,
.portal-body .portal-main .fee-row,
.portal-body .portal-main .fee-cancelled-row,
.portal-body .portal-main .fee-structure-box,
.portal-body .portal-main .fee-account-card,
.portal-body .portal-main .fee-inline-form,
.portal-body .portal-main .fee-summary-card,
.portal-body .portal-main .fee-breakup-card,
.portal-body .portal-main .fee-receipt-preview-box,
.portal-body .portal-main .result-marks-card,
.portal-body .portal-main .result-remark-box,
.portal-body .portal-main .result-summary-card,
.portal-body .portal-main .result-setup-card,
.portal-body .portal-main .result-teacher-card,
.portal-body .portal-main .report-stat-card,
.portal-body .portal-main .attendance-chart-card,
.portal-body .portal-main .live-summary-card,
.portal-body .portal-main .operational-status-card,
.portal-body .portal-main .template-master-card,
.portal-body .portal-main .template-test-row,
.portal-body .portal-main .system-health-item,
.portal-body .portal-main .production-check-item,
.portal-body .portal-main .teacher-detail-grid > div,
.portal-body .portal-main .credential-box > div,
.portal-body .portal-main .admin-detail-view div,
.portal-body .portal-main .teacher-assignment-list > div,
.portal-body .portal-main .teacher-document-list > div,
.portal-body .portal-main .admin-empty-state{
  background:linear-gradient(145deg,rgba(255,242,207,.075),rgba(0,0,0,.20)) !important;
  border:1px solid var(--ems-ui-border-soft) !important;
  color:var(--ems-ui-cream) !important;
  box-shadow:0 10px 28px rgba(0,0,0,.16) !important;
}

/* Typography inside admin surfaces */
.portal-body .portal-main h1,
.portal-body .portal-main h2,
.portal-body .portal-main h3,
.portal-body .portal-main h4,
.portal-body .portal-main .module-header h3,
.portal-body .portal-main .teacher-document-upload-card h3,
.portal-body .portal-main .template-master-card strong,
.portal-body .portal-main .system-health-item h4,
.portal-body .portal-main .production-check-item strong,
.portal-body .portal-main .fee-structure-box h4,
.portal-body .portal-main .fee-account-card h4,
.portal-body .portal-main .fee-inline-form h4,
.portal-body .portal-main .fee-ledger-head h4,
.portal-body .portal-main .admin-detail-view strong,
.portal-body .portal-main .teacher-detail-grid strong,
.portal-body .portal-main .credential-box strong{
  color:var(--ems-ui-gold-soft) !important;
}

.portal-body .portal-main p,
.portal-body .portal-main small,
.portal-body .portal-main span,
.portal-body .portal-main .module-header p,
.portal-body .portal-main .teacher-safe-note,
.portal-body .portal-main .template-master-card span,
.portal-body .portal-main .template-master-card small,
.portal-body .portal-main .system-health-item p,
.portal-body .portal-main .system-health-item small,
.portal-body .portal-main .production-check-item small,
.portal-body .portal-main .generated-documents-table td span,
.portal-body .portal-main .teacher-assignment-list span,
.portal-body .portal-main .teacher-document-list span,
.portal-body .portal-main .teacher-detail-grid span,
.portal-body .portal-main .credential-box span,
.portal-body .portal-main .admin-detail-view span,
.portal-body .portal-main .fee-ledger-head span,
.portal-body .portal-main .fee-total-line span,
.portal-body .portal-main .fee-stat-row span{
  color:var(--ems-ui-muted) !important;
}

.portal-body .portal-main .ems-eyebrow,
.portal-body .portal-main label,
.portal-body .portal-main .ems-field label,
.portal-body .portal-main .fee-head-grid label{
  color:var(--ems-ui-gold) !important;
  font-weight:900;
}

/* Forms */
.portal-body .portal-main .ems-input,
.portal-body .portal-main input.ems-input,
.portal-body .portal-main select.ems-input,
.portal-body .portal-main textarea.ems-input,
.portal-body .portal-main input[type="text"],
.portal-body .portal-main input[type="email"],
.portal-body .portal-main input[type="tel"],
.portal-body .portal-main input[type="number"],
.portal-body .portal-main input[type="date"],
.portal-body .portal-main input[type="month"],
.portal-body .portal-main input[type="password"],
.portal-body .portal-main select,
.portal-body .portal-main textarea{
  background:linear-gradient(180deg,rgba(18,32,14,.94),rgba(28,47,20,.92)) !important;
  border:1px solid rgba(249,196,84,.42) !important;
  color:var(--ems-ui-cream) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 6px 16px rgba(0,0,0,.10) !important;
}

.portal-body .portal-main .ems-input::placeholder,
.portal-body .portal-main input::placeholder,
.portal-body .portal-main textarea::placeholder{
  color:rgba(255,242,207,.46) !important;
}

.portal-body .portal-main select option{
  background:#172b12 !important;
  color:var(--ems-ui-cream) !important;
}

.portal-body .portal-main .ems-input:focus,
.portal-body .portal-main input:focus,
.portal-body .portal-main select:focus,
.portal-body .portal-main textarea:focus{
  outline:2px solid rgba(249,196,84,.35) !important;
  border-color:rgba(249,196,84,.75) !important;
}

/* File upload keeps readable label */
.portal-body .portal-main input[type="file"]{
  background:rgba(14,28,11,.78) !important;
  color:var(--ems-ui-muted) !important;
  border-radius:14px;
}

/* Tables */
.portal-body .portal-main .admin-table-wrap,
.portal-body .portal-main .generated-documents-table-wrap{
  background:rgba(10,24,8,.58) !important;
  border:1px solid var(--ems-ui-border) !important;
  box-shadow:0 14px 34px rgba(0,0,0,.16) !important;
}

.portal-body .portal-main .admin-table{
  background:rgba(12,27,9,.62) !important;
}

.portal-body .portal-main .admin-table th{
  background:linear-gradient(135deg,rgba(249,196,84,.24),rgba(49,74,37,.34)) !important;
  color:var(--ems-ui-gold) !important;
  border-bottom:1px solid rgba(249,196,84,.28) !important;
  position:sticky;
  top:0;
  z-index:2;
}

.portal-body .portal-main .admin-table td{
  color:var(--ems-ui-cream) !important;
  border-bottom:1px solid rgba(249,196,84,.12) !important;
}

.portal-body .portal-main .admin-table tbody tr:nth-child(even){
  background:rgba(255,242,207,.035) !important;
}

.portal-body .portal-main .admin-table tbody tr:hover{
  background:rgba(249,196,84,.10) !important;
}

.portal-body .portal-main .admin-table td strong,
.portal-body .portal-main .generated-documents-table td strong{
  color:var(--ems-ui-gold-soft) !important;
}

.portal-body .portal-main .admin-table td span,
.portal-body .portal-main .admin-table td small{
  color:var(--ems-ui-muted) !important;
}

/* Notes, alerts and checklist rows */
.portal-body .portal-main .teacher-safe-note,
.portal-body .portal-main .student-safe-note,
.portal-body .portal-main .admin-note,
.portal-body .portal-main .template-check-toggle{
  background:rgba(249,196,84,.105) !important;
  border:1px solid rgba(249,196,84,.28) !important;
  color:var(--ems-ui-gold-soft) !important;
}

.portal-body .portal-main .template-check-toggle,
.portal-body .portal-main .production-check-item{
  cursor:pointer;
}

.portal-body .portal-main input[type="checkbox"],
.portal-body .portal-main input[type="radio"]{
  accent-color:#f9c454;
}

/* Status blocks */
.portal-body .portal-main .admin-pill{
  border-color:rgba(249,196,84,.35) !important;
  background:rgba(249,196,84,.10) !important;
  color:var(--ems-ui-gold) !important;
}

.portal-body .portal-main .admin-pill-active,
.portal-body .portal-main .health-pass .system-health-top strong,
.portal-body .portal-main .production-check-item.done{
  border-color:rgba(71,178,103,.35) !important;
  background:rgba(31,122,58,.18) !important;
  color:#aaf0bd !important;
}

.portal-body .portal-main .health-warn .system-health-top strong{
  border-color:rgba(249,196,84,.35) !important;
  background:rgba(249,196,84,.16) !important;
  color:#ffe2a0 !important;
}

.portal-body .portal-main .health-fail .system-health-top strong,
.portal-body .portal-main .admin-error{
  border-color:rgba(255,129,116,.34) !important;
  background:rgba(175,45,45,.18) !important;
  color:#ffbbb3 !important;
}

.portal-body .portal-main .system-health-top{
  color:var(--ems-ui-muted) !important;
}

.portal-body .portal-main .system-health-item.health-pass{
  border-color:rgba(71,178,103,.38) !important;
}

.portal-body .portal-main .system-health-item.health-warn{
  border-color:rgba(249,196,84,.38) !important;
}

.portal-body .portal-main .system-health-item.health-fail{
  border-color:rgba(255,129,116,.38) !important;
}

/* Template Control Centre refinements */
.portal-body .portal-main .template-master-card.active{
  border-color:rgba(249,196,84,.62) !important;
  box-shadow:0 0 0 2px rgba(249,196,84,.12),0 18px 38px rgba(0,0,0,.20) !important;
}

.portal-body .portal-main .template-fields-table td span,
.portal-body .portal-main .template-test-row small{
  color:var(--ems-ui-muted) !important;
}

.portal-body .portal-main .template-upload-grid,
.portal-body .portal-main .template-rules-form,
.portal-body .portal-main .template-field-form{
  color:var(--ems-ui-cream);
}

/* Google Drive / generated docs */
.portal-body .portal-main .oauth-ok{
  color:#aaf0bd !important;
  font-weight:900;
}

.portal-body .portal-main .ems-btn-warning{
  background:linear-gradient(135deg,#f9c454,#d49a22) !important;
  color:#2c2100 !important;
  border-color:rgba(255,242,207,.35) !important;
}

.portal-body .portal-main .ems-btn-success{
  background:linear-gradient(135deg,#2f8d4a,#1f6d38) !important;
  color:#fff !important;
  border-color:rgba(255,242,207,.25) !important;
}

/* Fee and result readability leftovers */
.portal-body .portal-main .fee-total-line strong,
.portal-body .portal-main .fee-stat-row strong,
.portal-body .portal-main .result-action-row strong,
.portal-body .portal-main .report-stat-card strong{
  color:var(--ems-ui-gold-soft) !important;
}

.portal-body .portal-main .fee-ledger-head{
  background:rgba(249,196,84,.10) !important;
  border-color:rgba(249,196,84,.24) !important;
}

/* Toolbar surfaces */
.portal-body .portal-main .admin-toolbar,
.portal-body .portal-main .teacher-toolbar,
.portal-body .portal-main .table-action-row,
.portal-body .portal-main .result-action-row,
.portal-body .portal-main .report-action-row{
  background:rgba(0,0,0,.16) !important;
  border:1px solid rgba(249,196,84,.16) !important;
  border-radius:18px;
  padding:12px;
}

/* Scrollbars inside portal */
.portal-body .portal-main *{
  scrollbar-width:thin;
  scrollbar-color:rgba(249,196,84,.55) rgba(255,242,207,.08);
}

.portal-body .portal-main *::-webkit-scrollbar{
  width:9px;
  height:9px;
}

.portal-body .portal-main *::-webkit-scrollbar-track{
  background:rgba(255,242,207,.08);
  border-radius:999px;
}

.portal-body .portal-main *::-webkit-scrollbar-thumb{
  background:rgba(249,196,84,.55);
  border-radius:999px;
}

/* Responsive readability */
@media(max-width:900px){
  .portal-body .portal-main .admin-table th,
  .portal-body .portal-main .admin-table td{
    padding:10px 11px !important;
  }
  .portal-body .portal-main .module-actions{
    justify-content:flex-start;
  }
}


/* Phase 3Z surfaces */
.portal-body .portal-main .backup-production-lock-card,
.portal-body .portal-main .production-lock-card,
.portal-body .portal-main .backup-export-card,
.portal-body .portal-main .production-db-checklist-card,
.portal-body .portal-main .restore-readiness-card,
.portal-body .portal-main .backup-events-card{
  background:var(--ems-ui-surface-strong) !important;
  border:1px solid var(--ems-ui-border) !important;
  color:var(--ems-ui-cream) !important;
  box-shadow:var(--ems-ui-shadow) !important;
}
.portal-body .portal-main .production-db-check,
.portal-body .portal-main .production-lock-state{
  background:linear-gradient(145deg,rgba(255,242,207,.075),rgba(0,0,0,.20)) !important;
  border:1px solid var(--ems-ui-border-soft) !important;
  color:var(--ems-ui-cream) !important;
}


/* Phase 3S security lockdown surfaces */
.portal-body .portal-main .security-lockdown-card,
.portal-body .portal-main .security-lock-card,
.portal-body .portal-main .security-lock-summary > div{
  background:linear-gradient(145deg,rgba(255,242,207,.075),rgba(0,0,0,.20)) !important;
  border:1px solid var(--ems-ui-border-soft) !important;
  color:var(--ems-ui-cream) !important;
}


/* Phase 3T subject mapping surfaces */
.portal-body .portal-main .subject-mapping-admin-card,
.portal-body .portal-main .subject-mapping-filter-card,
.portal-body .portal-main .subject-checkbox-card,
.portal-body .portal-main .mapped-subject-view-card{
  background:var(--ems-ui-surface-strong) !important;
  border:1px solid var(--ems-ui-border) !important;
  color:var(--ems-ui-cream) !important;
  box-shadow:var(--ems-ui-shadow) !important;
}
.portal-body .portal-main .subject-check-item{
  background:linear-gradient(145deg,rgba(255,242,207,.075),rgba(0,0,0,.20)) !important;
  border:1px solid var(--ems-ui-border-soft) !important;
  color:var(--ems-ui-cream) !important;
}
.portal-body .portal-main .subject-check-item.checked{
  border-color:rgba(249,196,84,.50) !important;
  background:rgba(249,196,84,.13) !important;
}


/* Phase 3V: Student Photo Management readability */
.portal-body .portal-main .student-photo-management-card,
.portal-body .portal-main .student-photo-filter-card,
.portal-body .portal-main .student-photo-roster-card{
  background:var(--ems-ui-surface-strong) !important;
  border:1px solid var(--ems-ui-border) !important;
  color:var(--ems-ui-cream) !important;
  box-shadow:var(--ems-ui-shadow) !important;
}
.portal-body .portal-main .student-photo-row,
.portal-body .portal-main .student-photo-match-item,
.portal-body .portal-main .student-photo-match-summary{
  background:rgba(255,242,207,.065) !important;
  border-color:var(--ems-ui-border-soft) !important;
}


/* Phase 4A-LC: LC Exit Rule readability */
.portal-body .portal-main .lc-exit-rule-note{
  background:rgba(249,196,84,.10) !important;
  border:1px solid rgba(249,196,84,.28) !important;
  color:var(--ems-ui-cream) !important;
}
.portal-body .portal-main .lc-exit-rule-note strong{
  color:var(--ems-ui-gold) !important;
}
