/* Extended school information: full-width mobile inputs and compact public facts. */
.school-info-create { margin: 24px 0; border-color: var(--theme-primary); }
.school-info-create .school-info-unit-body { padding-top: 6px; }
.school-info-create-npsn { margin-top: 18px; }
.school-info-editor { display: grid; gap: 16px; }
.school-info-unit-body .school-info-form { margin-bottom: 0; }
.school-info-remove { margin-top: 22px; padding-top: 16px; border-top: 1px solid var(--theme-line); }
.school-info-remove > summary { width: fit-content; padding: 10px 0; color: #923f39; font-size: .85rem; font-weight: 750; cursor: pointer; }
.school-info-remove p { max-width: 65ch; color: var(--theme-muted); font-size: .85rem; line-height: 1.65; }
:root[data-color-theme] .school-info-remove .button.school-info-delete-button { background: #923f39; border-color: #923f39; color: #fff; }
.school-info-delete-form, .school-info-restore-form { margin: 14px 0 0; }
.school-directory-empty { grid-column: 1 / -1; padding: 28px; border: 1px solid var(--theme-line); border-radius: 14px; color: var(--theme-muted); background: var(--theme-page); }
.school-info-total { color: var(--theme-primary); font-weight: 750; }
.school-info-expanded > summary strong { overflow-wrap: anywhere; }
.school-info-badge { max-width: 100px; overflow-wrap: anywhere; text-align: center; }
.school-info-form .school-info-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.school-info-form .school-info-save-row { margin-top: 18px; }
.school-page .school-card h3, .school-page .school-card-top small, .school-profile-page h1 { overflow-wrap: anywhere; }
.school-page .school-card .school-level { max-width: 100%; overflow-wrap: anywhere; }
.school-info-expanded { padding: 0; }
.school-info-expanded > summary { display: flex; align-items: center; gap: 12px; padding: 20px; cursor: pointer; list-style: none; }
.school-info-expanded > summary::-webkit-details-marker { display: none; }
.school-info-expanded > summary > span:nth-child(2) { min-width: 0; }
.school-info-expanded > summary strong { display: block; color: var(--theme-ink); font-size: 1rem; line-height: 1.4; }
.school-info-expanded > summary small { display: block; margin-top: 4px; color: var(--theme-muted); font-size: .75rem; }
.school-info-badge { display: grid; place-items: center; flex: none; min-width: 44px; min-height: 42px; padding: 7px; border-radius: 10px; background: var(--theme-soft); color: var(--theme-primary); font-size: .8rem; font-weight: 800; }
.school-info-chevron { margin-left: auto; font-size: 1.4rem; color: var(--theme-primary); }
.school-info-expanded[open] > summary .school-info-chevron { transform: rotate(180deg); }
.school-info-unit-body { padding: 0 22px 24px; }
.school-info-source { padding: 13px 15px; border: 1px solid var(--theme-line); border-radius: 10px; background: var(--theme-page); color: var(--theme-muted); font-size: .8rem; line-height: 1.6; }
.school-info-source a, .school-info-preview { color: var(--theme-primary); font-weight: 700; }
.school-info-group { min-width: 0; margin: 24px 0; padding: 16px 0 0; border: 0; border-top: 1px solid var(--theme-line); }
.school-info-group > legend { padding: 0 12px 0 0; color: var(--theme-primary); font-size: .95rem; font-weight: 800; }
.school-info-group .school-info-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.school-info-fields .school-info-field { grid-template-columns: minmax(0, 1fr); align-items: start; gap: 7px; color: var(--theme-ink); }
.school-info-field > small { color: var(--theme-muted); font-size: .76rem; line-height: 1.5; }
.school-info-field input, .school-info-field select, .school-info-field textarea { width: 100%; min-width: 0; min-height: 46px; box-sizing: border-box; font-size: .95rem; }
.school-info-fields .school-info-full { grid-column: 1 / -1; }
.school-info-preview { display: inline-block; padding-block: 10px; font-size: .85rem; }
.school-info-logo-panel { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:12px 20px; margin:20px 0; padding:18px; border:1px solid var(--theme-line); border-radius:14px; background:var(--theme-page); }
.school-info-logo-panel h3 { margin:0 0 5px; color:var(--theme-ink); font-size:.95rem; }
.school-info-logo-panel p,.school-info-logo-panel small { display:block; margin:0; color:var(--theme-muted); font-size:.8rem; line-height:1.55; }
.school-info-logo-panel a { color:var(--theme-primary); font-weight:700; }
.school-info-logo-preview { grid-column:2; grid-row:1 / span 2; width:88px; height:88px; padding:5px; border:1px solid var(--theme-line); border-radius:50%; background:#fff; object-fit:contain; }
.school-info-logo-form,.school-info-logo-remove { grid-column:1 / -1; display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.school-info-logo-form input[type=file] { flex:1 1 260px; min-width:0; }
.school-page .school-card-top .school-unit-logo { flex:none; width:52px; height:52px; padding:3px; border:1px solid rgba(255,255,255,.6); border-radius:50%; background:#fff; object-fit:contain; box-shadow:0 4px 12px rgba(8,31,29,.18); }
.school-profile-page .school-profile-heading-row { display:flex; align-items:center; justify-content:space-between; gap:18px; min-height:78px; margin-bottom:14px; }
.school-profile-page .school-profile-unit-logo:not([hidden]) { display:inline-block; flex:none; width:72px; height:72px; padding:5px; vertical-align:middle; border:1px solid rgba(255,255,255,.58); border-radius:50%; background:#fff; object-fit:contain; box-shadow:0 7px 20px rgba(4,21,20,.2); }
.school-profile-page .school-profile-hero-copy { position:relative; }
.school-profile-page .school-profile-unit-logo:not([hidden]) { position:absolute; top:-26px; right:0; z-index:1; margin:0; }
@media(min-width:851px){.school-profile-page .school-profile-heading-row{min-height:72px;margin-bottom:4px}.school-profile-page .school-profile-hero h1{margin-top:14px}.school-profile-page .school-profile-unit-logo:not([hidden]){position:absolute;top:-80px;left:24px;right:auto;width:78px;height:78px;padding:8px;border:1px solid rgba(255,255,255,.72);box-shadow:0 0 0 7px rgba(255,255,255,.09),0 10px 26px rgba(4,21,20,.22)}}
.school-profile-page .school-profile-photo-column{min-width:0}
.school-profile-page .school-profile-photo-type{display:flex;align-items:center;justify-content:center;gap:7px;margin:11px 0 0;color:rgba(255,255,255,.78);font-size:.75rem;line-height:1.3}
.school-profile-page .school-profile-photo-type strong{display:inline-flex;align-items:center;min-height:30px;padding:5px 12px;border:1px solid rgba(255,255,255,.35);border-radius:999px;background:rgba(255,255,255,.13);color:#fff;font-size:.76rem;font-weight:800}
.school-profile-page .school-profile-photo-topics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:12px 0 0}
.school-profile-page .school-profile-photo-topic{display:flex;align-items:center;justify-content:center;min-width:0;min-height:50px;padding:8px 10px;border:1px solid rgba(255,255,255,.28);border-radius:11px;background:rgba(255,255,255,.1);color:#fff;text-align:center;cursor:pointer;transition:background .2s ease,border-color .2s ease,transform .2s ease}
.school-profile-page .school-profile-photo-topic:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.7);background:rgba(255,255,255,.17)}
.school-profile-page .school-profile-photo-topic.is-active{border-color:#f0d18b;background:#f0d18b;color:#183c35;box-shadow:0 5px 14px rgba(10,25,24,.16)}
.school-profile-page .school-profile-photo-topic span{font-size:.75rem;font-weight:800;line-height:1.2}
.school-profile-page .school-profile-photo-topic small{color:inherit;opacity:.77;font-size:.68rem;font-weight:700;line-height:1.2}
.school-profile-page .school-profile-photo-topic:disabled{opacity:.55;cursor:not-allowed}
.school-profile-page .school-profile-gallery-dots button[hidden]{display:none}
.school-profile-page .school-profile-photo-topic:focus-visible{outline:3px solid #fff;outline-offset:3px}
.school-page .school-card .school-card-details { margin: 16px 0 0; padding: 12px 0 0; border-top: 1px solid rgb(255 255 255 / 25%); }
.school-card-details > div { display: grid; grid-template-columns: 75px minmax(0, 1fr); gap: 9px; margin-top: 5px; }
.school-card-details dt { color: rgb(255 255 255 / 80%); font-size: .72rem; }
.school-card-details dd { margin: 0; color: #fff; font-size: .8rem; font-weight: 600; line-height: 1.5; overflow-wrap: anywhere; }
.school-profile-info-group { margin-top: 26px; }
.school-profile-facts .school-profile-info-group h3 { margin: 0 0 14px; color: var(--theme-primary); font: 750 1rem/1.4 system-ui, sans-serif; }
.school-profile-facts dd { overflow-wrap: anywhere; }
.school-profile-contact-links { display: flex; flex-wrap: wrap; gap: 8px; }
.school-profile-contact-links a { display: inline-flex; align-items: center; min-height: 44px; padding: 9px 13px; border: 1px solid var(--theme-line); border-radius: 9px; background: var(--theme-soft); color: var(--theme-primary); font-size: .85rem; font-weight: 700; text-decoration: none; }
.school-page .school-card-stats[data-visible-metrics="1"] { grid-template-columns: minmax(0,1fr); }
.school-page .school-card-stats[data-visible-metrics="2"], .school-page .school-card-stats[data-visible-metrics="4"] { grid-template-columns: repeat(2,minmax(0,1fr)); }
.school-data-sources { margin: 22px 0; padding: 12px 15px; border: 1px solid var(--theme-line); border-radius: 11px; background: var(--theme-page); color: var(--theme-muted); }
.school-data-sources > summary { padding-block: 5px; color: var(--theme-primary); font-size: .86rem; font-weight: 750; cursor: pointer; }
.school-data-sources ul { display: grid; gap: 13px; margin: 15px 0; padding: 0; list-style: none; }
.school-data-sources li { display: grid; gap: 3px; padding-bottom: 12px; border-bottom: 1px solid var(--theme-line); font-size: .8rem; overflow-wrap: anywhere; }
.school-data-sources strong { color: var(--theme-ink); }
.school-data-sources a { color: var(--theme-primary); }
.school-data-sources small, .school-data-sources p { margin: 0; font-size: .75rem; line-height: 1.6; }
@media (max-width: 650px) {
  .school-info-form .school-info-fields { grid-template-columns: minmax(0,1fr); }
  .school-info-expanded > summary { padding: 16px 14px; gap: 10px; }
  .school-info-expanded > summary strong { font-size: .92rem; }
  .school-info-expanded > summary small { font-size: .7rem; }
  .school-info-unit-body { padding: 0 14px 20px; }
  .school-info-group .school-info-fields { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .school-info-fields .school-info-field { grid-template-columns: minmax(0, 1fr); }
  .school-info-fields .school-info-field input { padding: 11px 12px; }
  .school-info-fields .school-info-field input::placeholder { font-size: .85rem; }
  .school-info-logo-panel { grid-template-columns:minmax(0,1fr) 64px; padding:14px; }
  .school-info-logo-preview { width:64px; height:64px; }
  .school-info-logo-form { display:grid; }
  .school-info-logo-form input[type=file] { width:100%; }
}
@media(max-width:850px){.school-profile-page .school-profile-photo-column{width:min(100%,600px);margin-inline:auto}.school-profile-page .school-profile-hero-photo{width:100%}.school-profile-page .school-profile-photo-topics{gap:7px}.school-profile-page .school-profile-photo-topic{min-height:46px;padding:7px 8px}.school-profile-page .school-profile-photo-topic span{font-size:.72rem}}
@media(max-width:380px){.school-profile-page .school-profile-photo-topic{padding:7px 6px}.school-profile-page .school-profile-photo-topic span{font-size:.66rem}}
