/* Establishment-owned visual identity: independent from the NephScola interface theme. */
.school-master-profile .school-branding-print-card,
.school-master-profile > .school-master-preferences { grid-column: 1 / -1; }
.school-branding-print-card { min-width: 0; }
.school-branding-print-card .school-brand-section { margin-top: 0; padding: 0 0 16px; border-bottom: 1px solid var(--color-border, #e5e1ef); }
.school-branding-print-card .school-brand-section + .school-brand-section { padding-top: 16px; }
.school-branding-print-card .school-brand-section:last-child { padding-bottom: 0; border-bottom: 0; }
.school-branding-print-card .school-brand-section h4 { margin: 0 0 11px; color: var(--color-sidebar-bg, #241064); font-size: 12px; font-weight: 800; text-transform: uppercase; }
.school-branding-print-card .school-print-brand-row { max-width: none; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.school-brand-color-form { gap: 0; }
.school-brand-colors-section { display: grid; grid-template-columns: minmax(0, 1fr) minmax(410px, .95fr); column-gap: 22px; align-items: start; }
.school-brand-colors-section > h4 { grid-column: 1 / -1; }
.school-brand-colors-section .school-brand-color-form { grid-column: 1; }
.school-brand-preview-actions { grid-column: 2; grid-row: 2; display: grid; align-content: start; gap: 9px; }
.school-brand-colors-section .school-brand-theme-preview { min-height: 142px; align-content: center; margin-top: 0; }
.school-brand-colors-section .school-brand-actions { display: flex; gap: 8px; margin-top: 0; }
.school-brand-colors-section .school-brand-actions > * { justify-content: center; }
.school-brand-colors-section .school-brand-actions > * { min-width: 0; flex: 1 1 0; padding: 0 7px; font-size: 10px; white-space: nowrap; }
.school-brand-color-row { min-height: 38px; display: grid !important; grid-template-columns: minmax(170px, .85fr) minmax(0, 1.15fr); align-items: center; gap: 12px !important; margin: 0; padding: 3px 0; color: var(--color-text-primary, #1f1f1f) !important; border-bottom: 1px solid var(--color-border, #e5e1ef); font-size: 12px !important; }
.school-brand-color-row:last-child { border-bottom: 0; }
.school-brand-color-controls { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 8px; align-items: center; }
.school-master-profile .school-brand-color-controls input { box-sizing: border-box; min-width: 0; min-height: 30px !important; height: 30px !important; border: 1px solid var(--color-border, #ded9ea) !important; border-radius: 2px !important; background: #fff; }
.school-brand-color-controls input[type="color"] { width: 38px; padding: 3px; cursor: pointer; }
.school-brand-color-controls input[data-school-brand-hex] { padding: 0 9px; color: var(--color-text-primary, #1f1f1f); font-family: Consolas, "Courier New", monospace; font-size: 12px; font-weight: 700; letter-spacing: 0; }
.school-brand-color-controls input.invalid { border-color: #d94841 !important; box-shadow: 0 0 0 2px rgba(217, 72, 65, .1) !important; }
.school-brand-theme-preview { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 8px; align-items: center; margin-top: 11px; padding: 10px; color: var(--school-brand-text); border: 1px solid color-mix(in srgb, var(--school-brand-primary) 28%, #fff); border-radius: 3px; background: var(--school-brand-light); }
.school-brand-theme-preview > div { display: grid; gap: 2px; min-width: 0; }
.school-brand-theme-preview strong { color: var(--school-brand-primary); font-size: 10px; }
.school-brand-theme-preview span, .school-brand-theme-preview p { color: var(--school-brand-text); font-size: 11px; }
.school-brand-theme-preview p { grid-column: 1 / -1; margin: 0; opacity: .76; }
.school-brand-theme-preview button { min-height: 28px; padding: 0 10px; color: #fff; border: 0; border-radius: 3px; background: var(--school-brand-primary); font-size: 11px; font-weight: 800; }
.school-brand-theme-preview i { min-height: 28px; display: inline-grid; place-items: center; padding: 0 9px; color: var(--school-brand-text); border-radius: 3px; background: var(--school-brand-accent); font-size: 10px; font-style: normal; font-weight: 800; }
.school-brand-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 8px; margin-top: 11px; }
.school-brand-actions .outline-action, .school-brand-actions .primary-action { min-height: 34px; border-radius: 3px; font-size: 11px; }
.school-printer-status { min-height: 34px; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 0 0 0 9px; color: var(--color-text-muted, #77718d); border: 1px solid var(--color-border, #ded9ea); border-radius: 2px; background: #fff; font-size: 11px; }
.school-printer-status .outline-action { min-height: 32px; flex: 0 0 auto; padding: 0 8px; color: var(--color-primary, #1783e6); border-width: 0 0 0 1px; border-radius: 0; font-size: 10px; }
.school-printer-dialog-note { grid-column: 1 / -1; padding: 12px; color: var(--color-text-secondary, #52677d); border-left: 3px solid var(--color-primary, #1783e6); background: var(--color-primary-soft, #eef7ff); font-size: 12px; line-height: 1.45; }
.school-printer-dialog-note strong { display: block; color: var(--color-sidebar-bg, #241064); }
.school-printer-dialog-note p { margin: 4px 0 0; }

/* Six local preferences read more clearly as a compact 3 x 2 configuration grid. */
.school-master-profile .school-master-preferences-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 12px 16px !important; }
.school-master-profile .school-master-preferences-grid > label { grid-template-columns: 1fr !important; min-height: 0 !important; gap: 6px !important; padding: 0 0 8px !important; }

.school-master-profile .school-master-preferences-grid > .school-custom-preference-field { position: relative; }
.school-custom-preference-title { align-items: center; display: flex; gap: 8px; justify-content: space-between; min-height: 17px; }
.school-custom-preference-title .icon-action { border-radius: 2px; color: #b84747; flex: 0 0 auto; font-size: 15px; height: 20px; line-height: 1; width: 20px; }

.school-settings-dialog-body .school-custom-field-dynamic { display: contents; }
.school-settings-dialog-body .school-custom-field-options { grid-column: 1 / -1; }
.school-settings-dialog-body .school-custom-field-options textarea { min-height: 74px; height: auto; padding: 8px 9px; resize: vertical; }
.school-settings-dialog-body .school-custom-field-options small { color: #71859a; font-size: 11px; font-weight: 500; }

/* Identity, school palette and printing use the same structural rhythm as the approved establishment settings card. */
.school-branding-print-card { padding-bottom: 18px; }
.school-branding-print-card .school-branding-heading { align-items: center; min-height: 66px; }
.school-branding-heading > div { display: grid; gap: 3px; }
.school-branding-heading h3 { margin: 0; text-transform: uppercase; }
.school-branding-heading p { margin: 0; color: rgba(255, 255, 255, .82); font-size: 12px; font-weight: 500; }
.school-branding-print-card .school-branding-top { display: grid; grid-template-columns: minmax(320px, .88fr) minmax(0, 1.12fr); gap: 0; margin-top: 0; }
.school-branding-print-card .school-branding-top .school-brand-section { min-width: 0; margin: 0; padding: 0 0 18px; border-bottom: 0; }
.school-branding-print-card .school-brand-identity-section { padding-right: 24px !important; border-right: 1px solid var(--color-border, #e5e1ef) !important; }
.school-branding-print-card .school-brand-colors-section { display: block; padding-top: 0 !important; padding-left: 24px !important; }
.school-branding-print-card .school-brand-section h4 { display: flex; align-items: center; gap: 9px; margin: 0 0 15px; color: var(--color-primary, #1783e6); font-size: 13px; font-weight: 800; text-transform: uppercase; }
.school-branding-print-card .school-brand-section h4 .button-svg { width: 19px; height: 19px; }
.school-branding-print-card .school-print-brand-row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.school-branding-print-card .school-print-brand-row > div { gap: 7px; }
.school-branding-print-card .school-print-brand-row small { color: var(--color-text-secondary, #52677d); font-size: 12px; }
.school-branding-print-card .school-mini-logo { height: 144px; border-color: var(--color-border, #d6e3ee); border-radius: 5px; background: #fff; }
.school-branding-print-card .school-mini-logo .school-logo { width: 100px; height: 108px; }
.school-branding-print-card .school-print-brand-row .outline-action { justify-content: center; min-height: 33px; color: var(--color-primary, #1783e6); border-color: color-mix(in srgb, var(--color-primary, #1783e6) 35%, #fff); border-radius: 3px; background: #fff; font-size: 11px; }
.school-branding-print-card .school-print-brand-row .outline-action .button-svg { width: 14px; height: 14px; }
.school-brand-section-note { display: flex; align-items: flex-start; gap: 7px; margin: 18px 0 0; color: var(--color-text-muted, #71859a); font-size: 11px; line-height: 1.45; }
.school-brand-section-note .button-svg { width: 15px; height: 15px; flex: 0 0 auto; color: var(--color-primary, #1783e6); }

.school-brand-colors-workspace { display: grid; grid-template-columns: minmax(220px, .92fr) minmax(260px, 1.08fr); gap: 16px; align-items: start; }
.school-brand-colors-section .school-brand-color-form { display: grid; grid-column: auto; gap: 0; }
.school-brand-color-row { grid-template-columns: minmax(118px, 1fr) 158px; min-height: 37px; gap: 9px !important; padding: 3px 0; font-size: 11px !important; }
.school-brand-color-controls { grid-template-columns: 32px minmax(0, 1fr); gap: 6px; }
.school-master-profile .school-brand-color-controls input { height: 30px !important; min-height: 30px !important; }
.school-brand-color-controls input[type="color"] { width: 32px; }
.school-brand-preview-actions { display: grid; grid-column: auto; grid-row: auto; gap: 10px; }
.school-brand-colors-section .school-brand-theme-preview { display: grid; grid-template-columns: 1fr; min-height: 0; gap: 11px; margin: 0; padding: 12px; }
.school-brand-preview-school { display: flex; align-items: center; gap: 9px; padding-bottom: 10px; border-bottom: 1px solid color-mix(in srgb, var(--school-brand-primary) 18%, #fff); }
.school-brand-preview-school .school-logo { width: 42px; height: 46px; object-fit: contain; }
.school-brand-preview-school span { display: grid; gap: 2px; min-width: 0; }
.school-brand-preview-school strong { font-size: 9px; }
.school-brand-preview-school b { overflow: hidden; color: var(--school-brand-primary); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.school-brand-preview-school em { color: var(--school-brand-text); font-size: 10px; font-style: normal; opacity: .78; }
.school-brand-preview-example { display: grid; gap: 5px; padding: 10px; border: 1px solid color-mix(in srgb, var(--school-brand-primary) 22%, #fff); border-radius: 3px; background: rgba(255, 255, 255, .55); }
.school-brand-preview-example > b { color: var(--school-brand-primary); font-size: 12px; }
.school-brand-preview-example > span { color: var(--school-brand-text); font-size: 10px; }
.school-brand-preview-example > div { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 4px; }
.school-brand-theme-preview button { display: inline-flex; align-items: center; justify-content: center; gap: 5px; min-height: 29px; padding: 0 7px; font-size: 9px; }
.school-brand-theme-preview button .button-svg { width: 13px; height: 13px; }
.school-brand-theme-preview i { min-height: 29px; padding: 0 7px; font-size: 9px; }
.school-brand-actions { display: grid; grid-template-columns: 1fr 1.15fr; gap: 8px; margin: 0; }
.school-brand-actions .outline-action, .school-brand-actions .primary-action { min-height: 33px; justify-content: center; padding: 0 7px; border-radius: 3px; font-size: 10px; white-space: nowrap; }
.school-brand-actions .button-svg { width: 14px; height: 14px; }
.school-brand-colors-section .school-brand-section-note { grid-column: 1 / -1; margin-top: 1px; }

.school-branding-print-card > .school-brand-print-section { margin-top: 18px; padding: 18px 0 0; border-top: 1px solid var(--color-border, #e5e1ef); border-bottom: 0; }
.school-branding-print-card .school-brand-print-section h4 { margin-bottom: 13px; }
.school-master-print-card .school-brand-print-section .school-master-print-grid { gap: 0; margin-top: 0; }
.school-master-print-card .school-brand-print-section .school-master-print-grid > label { min-height: 47px; grid-template-columns: minmax(210px, .42fr) minmax(0, 1.58fr); gap: 14px; color: var(--color-text-primary, #1f1f1f); font-size: 12px; }
.school-master-print-card .school-brand-print-section .school-master-print-grid > label > span:first-child { display: inline-flex; align-items: center; gap: 9px; }
.school-master-print-card .school-brand-print-section .school-master-print-grid > label > span:first-child .button-svg { width: 18px; height: 18px; color: var(--color-primary, #1783e6); }
.school-printer-status { color: var(--color-text-muted, #71859a); border-color: var(--color-border, #d6e3ee); }
.school-printer-status .outline-action { display: inline-flex; align-items: center; justify-content: center; gap: 5px; color: var(--color-primary, #1783e6); border-color: color-mix(in srgb, var(--color-primary, #1783e6) 25%, #fff); }
.school-printer-status .outline-action .button-svg { width: 13px; height: 13px; }
.school-branding-print-card .school-master-info-note { display: flex; align-items: center; gap: 7px; margin-top: 14px; padding: 10px 12px; color: var(--color-primary, #1783e6); border-radius: 3px; background: var(--color-primary-soft, #eef7ff); }
.school-branding-print-card .school-master-info-note .button-svg { width: 16px; height: 16px; flex: 0 0 auto; }

@media (max-width: 1080px) {
  .school-brand-colors-workspace { grid-template-columns: 1fr; }
  .school-brand-colors-section .school-brand-preview-actions { display: grid; }
}

@media (max-width: 820px) {
  .school-branding-print-card .school-branding-top { grid-template-columns: 1fr; }
  .school-branding-print-card .school-brand-identity-section { padding: 0 0 18px !important; border-right: 0 !important; border-bottom: 1px solid var(--color-border, #e5e1ef) !important; }
  .school-branding-print-card .school-brand-colors-section { padding: 18px 0 0 !important; }
  .school-master-print-card .school-brand-print-section .school-master-print-grid > label { grid-template-columns: 1fr !important; gap: 6px; padding: 8px 0; }
}

@media (max-width: 560px) {
  .school-branding-heading h3 { font-size: 13px; }
  .school-branding-heading p { font-size: 10px; }
  .school-branding-print-card .school-print-brand-row { grid-template-columns: 1fr; }
  .school-brand-colors-workspace, .school-brand-actions { grid-template-columns: 1fr; }
}

/* Official documents inherit the school's brand palette unless a template is custom. */
.official-letterhead .letterhead-identity h1 { color: var(--school-brand-text, #06205f); }
.official-letterhead .letterhead-identity p, .official-letterhead .letterhead-identity p b { color: var(--letterhead-color); }
.official-letterhead .letterhead-contact-list i { color: var(--letterhead-color); }
.official-letterhead .letterhead-admin strong { color: var(--school-brand-text, #06205f); }

@media (max-width: 880px) {
  .school-brand-colors-section { display: block; }
  .school-brand-colors-section .school-brand-preview-actions { display: grid; margin-top: 11px; }
  .school-brand-colors-section .school-brand-theme-preview { min-height: 0; margin-top: 0; }
  .school-brand-colors-section .school-brand-actions { display: grid; margin-top: 0; }
  .school-master-profile .school-master-preferences-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

@media (max-width: 620px) {
  .school-master-profile .school-master-preferences-grid { grid-template-columns: 1fr !important; }
  .school-brand-color-row { grid-template-columns: 1fr; gap: 5px !important; padding: 7px 0; }
  .school-brand-theme-preview { grid-template-columns: 1fr auto; }
  .school-brand-theme-preview p { grid-column: 1 / -1; }
  .school-brand-actions { justify-content: stretch; }
  .school-brand-actions > * { flex: 1 1 100%; justify-content: center; }
  .school-printer-status { min-height: 0; align-items: stretch; flex-direction: column; padding: 8px; }
  .school-printer-status .outline-action { width: 100%; min-height: 32px; border: 1px solid var(--color-border, #ded9ea); border-radius: 2px; }
}
