/* هوية صفحات المستندات المرافقة للخطط: أغلفة، ملخصات، وفواصل مواد.
   النطاق معزول عن الأنماط الخمسة لصفحة الخطة ويعمل بلا أصول خارجية. */
.a4.nibras-print-page,
#preview .a4.nibras-print-page {
  --np-green: #0d6249;
  --np-green-deep: #084634;
  --np-teal: #16877f;
  --np-blue: #2d8294;
  --np-ink: #20332e;
  --np-muted: #657670;
  --np-line: #d8e4e0;
  --np-soft: #f3f8f6;
  --np-paper: #fff;
  --np-accent: var(--np-green);
  --np-accent-deep: var(--np-green-deep);
  width: 210mm !important;
  min-width: 210mm !important;
  max-width: 210mm !important;
  min-height: 297mm !important;
  height: 297mm !important;
  max-height: 297mm !important;
  margin: 0 auto 26px !important;
  padding: 0 !important;
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  direction: rtl !important;
  text-align: right !important;
  color: var(--np-ink) !important;
  background: var(--np-paper) !important;
  border: 0 !important;
  border-radius: 4px !important;
  font-family: "Cairo", "Tajawal", "Segoe UI", Tahoma, Arial, sans-serif !important;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
  isolation: isolate;
}

.a4.nibras-print-page.np-theme-teacher,
#preview .a4.nibras-print-page.np-theme-teacher {
  --np-accent: #0a5942;
  --np-accent-deep: #073e2f;
  --np-soft: #f1f7f4;
}
.a4.nibras-print-page.np-theme-student,
#preview .a4.nibras-print-page.np-theme-student {
  --np-accent: #16877f;
  --np-accent-deep: #0c655f;
  --np-soft: #eff8f7;
  --np-paper: #feffff;
}
.a4.nibras-print-page.np-theme-subject,
#preview .a4.nibras-print-page.np-theme-subject {
  --np-accent: #2d7687;
  --np-accent-deep: #1e5665;
  --np-soft: #f0f7f8;
}
.a4.nibras-print-page.np-theme-lesson,
#preview .a4.nibras-print-page.np-theme-lesson {
  --np-accent: #406f67;
  --np-accent-deep: #284e48;
  --np-soft: #f4f8f7;
}

.nibras-print-page *,
.nibras-print-page *::before,
.nibras-print-page *::after { box-sizing: border-box; }

.nibras-print-page .np-brand {
  min-height: 36mm;
  padding: 7mm 13mm 5mm;
  display: flex;
  align-items: center;
  gap: 5mm;
  border-bottom: .35mm solid var(--np-line);
  position: relative;
  z-index: 3;
}
.nibras-print-page .np-brand::after {
  content: "";
  position: absolute;
  inset-inline-end: 13mm;
  bottom: -.55mm;
  width: 30mm;
  height: 1.05mm;
  border-radius: 99px;
  background: var(--np-accent);
}
.nibras-print-page .np-brand.is-compact {
  min-height: 28mm;
  padding-top: 4mm;
  padding-bottom: 3.5mm;
}
.nibras-print-page .np-logo {
  width: 32mm;
  height: 22mm;
  flex: 0 0 32mm;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}
.nibras-print-page .np-brand.is-compact .np-logo { height: 18mm; }
.nibras-print-page .np-logo img {
  display: block;
  width: auto;
  max-width: 32mm;
  height: auto;
  max-height: 22mm;
  object-fit: contain;
  object-position: center;
  transform: none !important;
}
.nibras-print-page .np-brand.is-compact .np-logo img { max-height: 18mm; }
.nibras-print-page .np-logo-fallback {
  color: var(--np-accent-deep);
  line-height: 1.35;
  border-inline-start: 1mm solid var(--np-accent);
  padding-inline-start: 3mm;
  direction: rtl;
  text-align: right;
}
.nibras-print-page .np-logo-fallback b,
.nibras-print-page .np-logo-fallback small { display: block; white-space: nowrap; }
.nibras-print-page .np-logo-fallback b { font-size: 11pt; }
.nibras-print-page .np-logo-fallback small { margin-top: 1mm; font-size: 6.5pt; color: var(--np-muted); }
.nibras-print-page .np-brand-copy {
  min-width: 0;
  flex: 1;
  line-height: 1.55;
  overflow-wrap: break-word;
  word-break: normal;
}
.nibras-print-page .np-brand-copy b { display: block; color: var(--np-accent-deep); font-size: 12pt; font-weight: 900; }
.nibras-print-page .np-brand-copy span { display: block; color: var(--np-muted); font-size: 8.5pt; font-weight: 700; }
.nibras-print-page .np-part-badge {
  flex: 0 0 auto;
  border: .35mm solid color-mix(in srgb, var(--np-accent) 25%, transparent);
  border-radius: 999px;
  padding: 2.1mm 4.5mm;
  color: var(--np-accent-deep);
  background: var(--np-soft);
  font-size: 8pt;
  font-weight: 900;
  white-space: nowrap;
}

.nibras-print-page .np-cover-mark {
  position: absolute;
  z-index: 0;
  pointer-events: none;
}
.nibras-print-page .np-teacher-grid {
  inset-inline-start: -16mm;
  top: 48mm;
  width: 76mm;
  height: 76mm;
  border: .45mm solid rgba(10, 89, 66, .10);
  background-image:
    linear-gradient(rgba(10, 89, 66, .035) .3mm, transparent .3mm),
    linear-gradient(90deg, rgba(10, 89, 66, .035) .3mm, transparent .3mm);
  background-size: 9mm 9mm;
  transform: rotate(8deg);
}
.nibras-print-page .np-student-orbit {
  inset-inline-start: -14mm;
  top: 50mm;
  width: 76mm;
  height: 76mm;
  border: .45mm solid rgba(22, 135, 127, .11);
  border-radius: 50%;
  box-shadow: inset 0 0 0 10mm rgba(22, 135, 127, .025);
}
.nibras-print-page .np-student-orbit::before {
  content: "";
  position: absolute;
  inset: 12mm;
  border: .4mm dashed rgba(22, 135, 127, .12);
  border-radius: 50%;
}
.nibras-print-page .np-student-orbit i {
  position: absolute;
  bottom: 13mm;
  width: 5mm;
  border-radius: 4mm 4mm 1mm 1mm;
  background: rgba(22, 135, 127, .16);
}
.nibras-print-page .np-student-orbit i:nth-child(1) { inset-inline-start: 18mm; height: 8mm; }
.nibras-print-page .np-student-orbit i:nth-child(2) { inset-inline-start: 28mm; height: 16mm; }
.nibras-print-page .np-student-orbit i:nth-child(3) { inset-inline-start: 38mm; height: 25mm; background: rgba(22, 135, 127, .24); }
.nibras-print-page .np-subject-axis {
  inset-inline-start: -18mm;
  top: 58mm;
  width: 92mm;
  height: 92mm;
  border: .5mm solid rgba(45, 118, 135, .1);
  transform: rotate(45deg);
}
.nibras-print-page .np-subject-axis::before,
.nibras-print-page .np-subject-axis::after {
  content: "";
  position: absolute;
  inset: 15mm;
  border: .4mm solid rgba(45, 118, 135, .08);
}
.nibras-print-page .np-subject-axis::after { inset: 30mm; background: rgba(45, 118, 135, .025); }
.nibras-print-page .np-lesson-focus {
  inset-inline-start: -22mm;
  top: 82mm;
  width: 72mm;
  height: 72mm;
  border: .5mm solid rgba(64, 111, 103, .10);
  border-radius: 50%;
}
.nibras-print-page .np-lesson-focus::before {
  content: "";
  position: absolute;
  inset: 15mm;
  border: .5mm solid rgba(64, 111, 103, .08);
  border-radius: 50%;
}

.nibras-print-page .np-cover-main {
  flex: 1 1 auto;
  min-height: 0;
  padding: 12mm 18mm 7mm;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  position: relative;
  z-index: 1;
}
.nibras-print-page .np-cover-copy { position: relative; z-index: 1; }
.nibras-print-page .np-eyebrow {
  margin: 0 0 3mm;
  color: var(--np-accent);
  font-size: 8.5pt;
  font-weight: 900;
  line-height: 1.6;
}
.nibras-print-page .np-cover-copy > h1 {
  margin: 0;
  max-width: 164mm;
  color: var(--np-accent-deep);
  font-size: 32pt;
  font-weight: 900;
  line-height: 1.3;
  overflow-wrap: break-word;
  word-break: normal;
}
.nibras-print-page .np-cover-copy > h1.is-long-title { font-size: 25pt; line-height: 1.42; }
.nibras-print-page .np-lead {
  max-width: 153mm;
  margin: 4mm 0 0;
  color: var(--np-muted);
  font-size: 10.5pt;
  font-weight: 650;
  line-height: 1.9;
}
.nibras-print-page .np-owner-card {
  margin-top: 10mm;
  padding: 7mm 8mm 6mm;
  border: .4mm solid color-mix(in srgb, var(--np-accent) 24%, #d8e4e0);
  border-inline-start: 2mm solid var(--np-accent);
  border-radius: 3.5mm;
  background: var(--np-soft);
}
.nibras-print-page .np-teacher-owner {
  padding-block: 8mm;
  border-inline-start-width: 2.4mm;
  background: #f5f9f7;
}
.nibras-print-page .np-student-owner {
  border-radius: 6mm 2.5mm 6mm 2.5mm;
  background: #f0f9f8;
}
.nibras-print-page .np-owner-card > span { display: block; color: var(--np-muted); font-size: 8pt; font-weight: 800; }
.nibras-print-page .np-owner-card > strong {
  display: block;
  margin-top: 2mm;
  color: var(--np-accent-deep);
  font-size: 20pt;
  font-weight: 900;
  line-height: 1.42;
  overflow-wrap: break-word;
  word-break: normal;
}
.nibras-print-page .np-owner-card.is-long-owner > strong { font-size: 15pt; line-height: 1.6; }
.nibras-print-page .np-owner-card > small {
  display: block;
  margin-top: 2mm;
  color: var(--np-muted);
  font-size: 8.5pt;
  font-weight: 700;
  line-height: 1.65;
  overflow-wrap: break-word;
}
.nibras-print-page .np-cover-metrics {
  margin-top: 6mm;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 3mm;
}
.nibras-print-page .np-metric {
  min-width: 0;
  min-height: 22mm;
  padding: 4mm 3.5mm;
  border: .3mm solid var(--np-line);
  border-radius: 3mm;
  background: #fff;
}
.nibras-print-page .np-metric span { display: block; color: var(--np-muted); font-size: 7pt; font-weight: 800; line-height: 1.5; }
.nibras-print-page .np-metric b {
  display: block;
  margin-top: 1.5mm;
  color: var(--np-ink);
  font-size: 10pt;
  font-weight: 900;
  line-height: 1.5;
  overflow-wrap: break-word;
  word-break: normal;
}
.nibras-print-page .np-cover-details,
.nibras-print-page .np-focus-facts {
  margin-top: 5mm;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 3mm;
}
.nibras-print-page .np-info-row {
  min-width: 0;
  padding: 3.5mm 4mm;
  border: .3mm solid var(--np-line);
  border-radius: 2.8mm;
  background: color-mix(in srgb, var(--np-soft) 72%, #fff);
}
.nibras-print-page .np-info-row.is-wide { grid-column: 1 / -1; }
.nibras-print-page .np-info-row span { display: block; color: var(--np-muted); font-size: 7.2pt; font-weight: 800; line-height: 1.5; }
.nibras-print-page .np-info-row b {
  display: block;
  margin-top: 1.3mm;
  color: var(--np-ink);
  font-size: 9pt;
  font-weight: 900;
  line-height: 1.65;
  overflow-wrap: break-word;
  word-break: normal;
}
.nibras-print-page .np-closing {
  margin: auto 0 0;
  padding: 3.5mm 5mm;
  border-inline-start: 1.1mm solid var(--np-accent);
  border-radius: 2mm;
  color: var(--np-accent-deep);
  background: var(--np-soft);
  font-size: 9pt;
  font-weight: 850;
  line-height: 1.8;
}

.nibras-print-page .np-page-footer {
  flex: 0 0 14mm;
  min-height: 14mm;
  padding: 3.8mm 13mm;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6mm;
  color: var(--np-muted);
  border-top: .3mm solid var(--np-line);
  font-size: 7pt;
  font-weight: 750;
  line-height: 1.5;
  position: relative;
  z-index: 2;
}
.nibras-print-page .np-page-footer span { min-width: 0; overflow-wrap: break-word; }

/* غلاف المادة: الحرف المجرد واسم المادة هما البطل البصري. */
.nibras-print-page .np-focus-main { padding-top: 14mm; }
.nibras-print-page .np-subject-hero {
  min-height: 105mm;
  display: grid;
  grid-template-columns: 35mm minmax(0, 1fr);
  align-items: center;
  gap: 8mm;
  padding: 8mm;
  border: .4mm solid rgba(45, 118, 135, .18);
  border-inline-start: 2mm solid var(--np-accent);
  border-radius: 4mm;
  background: #f5fafb;
}
.nibras-print-page .np-subject-initial {
  width: 31mm;
  height: 31mm;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  background: var(--np-accent-deep);
  border-radius: 3mm;
  font-size: 28pt;
  font-weight: 900;
  line-height: 1;
}
.nibras-print-page .np-subject-hero .np-cover-copy > h1 { font-size: 28pt; }
.nibras-print-page .np-subject-hero .np-cover-copy > h1.is-long-title { font-size: 21pt; line-height: 1.48; }
.nibras-print-page .np-subject-hero .np-lead { font-size: 10pt; }
.nibras-print-page .np-subject-cover .np-focus-facts { margin-top: 10mm; }

/* غلاف الدرس: تركيز أكبر على العنوان، والمادة والصف والدعم كبيانات مساندة. */
.nibras-print-page.np-lesson-cover .np-focus-main { padding-top: 10mm; padding-bottom: 5mm; }
.nibras-print-page .np-lesson-cover .np-cover-copy {
  min-height: 108mm;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-inline-end: 5mm;
}
.nibras-print-page .np-lesson-cover .np-cover-copy > h1 { font-size: 25pt; line-height: 1.45; }
.nibras-print-page .np-lesson-cover .np-cover-copy > h1.is-long-title { font-size: 20pt; line-height: 1.55; }
.nibras-print-page .np-lesson-chips {
  margin-top: 6mm;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 3mm;
}
.nibras-print-page .np-lesson-chips .np-info-row { background: #fff; }
.nibras-print-page .np-lesson-facts {
  margin-top: 4mm;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* ملخص الملف: نوعاه المعلم والطالب فقط. */
.nibras-print-page .np-summary-main {
  flex: 1 1 auto;
  min-height: 0;
  padding: 9mm 14mm 7mm;
  display: flex;
  flex-direction: column;
}
.nibras-print-page .np-section-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 8mm;
}
.nibras-print-page .np-section-heading p { margin: 0 0 1.5mm; color: var(--np-accent); font-size: 8pt; font-weight: 900; line-height: 1.5; }
.nibras-print-page .np-section-heading h1 { margin: 0; color: var(--np-accent-deep); font-size: 24pt; font-weight: 900; line-height: 1.3; }
.nibras-print-page .np-section-heading > span {
  padding: 2mm 4mm;
  border-radius: 999px;
  color: var(--np-accent-deep);
  background: var(--np-soft);
  font-size: 7.5pt;
  font-weight: 900;
  white-space: nowrap;
}
.nibras-print-page .np-summary-owner {
  margin-top: 6mm;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 3mm;
}
.nibras-print-page .np-summary-kpis {
  margin-top: 4mm;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 3mm;
}
.nibras-print-page .np-summary-subjects {
  margin-top: 6mm;
  padding: 5mm;
  border: .35mm solid var(--np-line);
  border-radius: 3.5mm;
  background: #fff;
}
.nibras-print-page .np-subheading { display: flex; align-items: center; justify-content: space-between; gap: 5mm; }
.nibras-print-page .np-subheading h2 { margin: 0; color: var(--np-accent-deep); font-size: 12.5pt; font-weight: 900; }
.nibras-print-page .np-subheading > span { color: var(--np-muted); font-size: 7.5pt; font-weight: 850; }
.nibras-print-page .np-subject-list {
  margin-top: 3.5mm;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2mm;
}
.nibras-print-page .np-subject-row {
  min-width: 0;
  min-height: 14mm;
  padding: 2.3mm 3mm;
  display: grid;
  grid-template-columns: 8mm minmax(0, 1fr) auto;
  align-items: center;
  gap: 2mm;
  border-radius: 2.4mm;
  background: var(--np-soft);
  border: .25mm solid color-mix(in srgb, var(--np-accent) 10%, transparent);
}
.nibras-print-page .np-subject-index {
  width: 6.5mm;
  height: 6.5mm;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: #fff;
  background: var(--np-accent);
  font-size: 6.8pt;
  font-weight: 900;
}
.nibras-print-page .np-subject-row div { min-width: 0; }
.nibras-print-page .np-subject-row b {
  display: block;
  color: var(--np-ink);
  font-size: 8.3pt;
  font-weight: 900;
  line-height: 1.5;
  overflow-wrap: break-word;
  word-break: normal;
}
.nibras-print-page .np-subject-row small {
  display: block;
  margin-top: .5mm;
  color: var(--np-muted);
  font-size: 6.2pt;
  font-weight: 700;
  line-height: 1.45;
  overflow-wrap: break-word;
}
.nibras-print-page .np-subject-row > strong { color: var(--np-accent-deep); font-size: 7pt; font-weight: 900; white-space: nowrap; }
.nibras-print-page .np-summary-subjects.is-dense { margin-top: 4mm; padding: 3.8mm; }
.nibras-print-page .np-summary-subjects.is-dense .np-subject-list { margin-top: 2.5mm; gap: 1.2mm; }
.nibras-print-page .np-summary-subjects.is-dense .np-subject-row { min-height: 11.5mm; padding: 1.4mm 2.3mm; }
.nibras-print-page .np-summary-subjects.is-dense .np-subject-index { width: 5.5mm; height: 5.5mm; font-size: 6pt; }
.nibras-print-page .np-summary-subjects.is-dense .np-subject-row b { font-size: 7.4pt; }
.nibras-print-page .np-summary-subjects.is-dense .np-subject-row small { margin-top: .2mm; font-size: 5.7pt; }
.nibras-print-page .np-summary-subjects.is-dense .np-subject-row > strong { font-size: 6.5pt; }
.nibras-print-page .np-empty-subjects { margin-top: 4mm; padding: 8mm; text-align: center; color: var(--np-muted); background: var(--np-soft); border-radius: 3mm; font-size: 8pt; font-weight: 700; }
.nibras-print-page .np-summary-note {
  margin-top: auto;
  padding: 3.5mm 4.5mm;
  border-inline-start: 1mm solid var(--np-accent);
  border-radius: 2mm;
  color: var(--np-muted);
  background: #f7faf9;
  font-size: 7.8pt;
  font-weight: 750;
  line-height: 1.7;
}

/* فاصل المادة المشترك، والنص/الحقائق يتغيران من context صريح. */
.nibras-print-page.np-divider { background: #fff !important; }
.nibras-print-page .np-divider-rail {
  position: absolute;
  inset-inline-end: 0;
  top: 0;
  bottom: 0;
  width: 8mm;
  display: flex;
  flex-direction: column;
  background: var(--np-accent-deep);
}
.nibras-print-page .np-divider-rail i { flex: 1; background: rgba(255, 255, 255, .04); border-bottom: .3mm solid rgba(255, 255, 255, .13); }
.nibras-print-page .np-divider-main {
  flex: 1 1 auto;
  min-height: 0;
  padding: 39mm 24mm 26mm 28mm;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
}
.nibras-print-page .np-divider-main::before {
  content: "";
  position: absolute;
  width: 84mm;
  height: 84mm;
  inset-inline-start: -35mm;
  top: 25mm;
  border-radius: 50%;
  border: .45mm solid color-mix(in srgb, var(--np-accent) 11%, transparent);
  box-shadow: inset 0 0 0 11mm color-mix(in srgb, var(--np-accent) 3%, transparent);
}
.nibras-print-page .np-divider-main > h1 { margin: 0; max-width: 155mm; position: relative; }
.nibras-print-page .np-divider-main > h1 span { display: block; color: var(--np-muted); font-size: 17pt; font-weight: 800; line-height: 1.5; }
.nibras-print-page .np-divider-main > h1 strong {
  display: block;
  margin-top: 4mm;
  color: var(--np-accent-deep);
  font-size: 38pt;
  font-weight: 900;
  line-height: 1.35;
  overflow-wrap: break-word;
  word-break: normal;
}
.nibras-print-page .np-divider-main > h1.is-long-subject strong { font-size: 28pt; line-height: 1.48; }
.nibras-print-page .np-divider-description {
  max-width: 150mm;
  margin: 6mm 0 0;
  color: var(--np-muted);
  font-size: 11pt;
  font-weight: 750;
  line-height: 1.8;
}
.nibras-print-page .np-divider-rule { width: 94mm; margin-top: 8mm; height: 2mm; border-radius: 999px; overflow: hidden; background: var(--np-line); }
.nibras-print-page .np-divider-rule span { display: block; width: 39%; height: 100%; background: var(--np-accent); }
.nibras-print-page .np-divider-facts {
  width: 100%;
  max-width: 155mm;
  margin-top: 13mm;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 3mm;
}
.nibras-print-page .np-divider-facts .np-info-row { background: var(--np-soft); }

@supports not (color: color-mix(in srgb, #000 50%, #fff)) {
  .nibras-print-page .np-part-badge,
  .nibras-print-page .np-owner-card,
  .nibras-print-page .np-subject-row { border-color: var(--np-line); }
  .nibras-print-page .np-info-row { background: var(--np-soft); }
}

@media screen and (max-width: 760px) {
  .a4.nibras-print-page,
  #preview .a4.nibras-print-page { margin-bottom: 18px !important; }
}

@media print {
  .a4.nibras-print-page,
  #preview .a4.nibras-print-page {
    margin: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    break-after: page;
    page-break-after: always;
  }
}
