/* Formá 0.4.1 — base visual consolidada. */
:root {
  color-scheme: light;
  --font-ui: "Segoe UI Variable", "Segoe UI", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  --lime: #9fe126;
  --lime-hover: #8ed21c;
  --ink: #172033;
  --muted: #59697e;
  --line: #e1e7ee;
  --bg: #f5f7fa;
  --surface: #ffffff;
  --surface-soft: #f8fafc;
  --accent-ink: #426511;
  --accent-soft: #f0f8e3;
  --danger-ink: #a52a23;
  --danger-soft: #fff1f0;
  --radius: 16px;
  --radius-control: 10px;
  --sidebar-width: 244px;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --shadow-dialog: 0 24px 80px rgb(15 23 42 / 22%);
}

/* Fundação e tipografia */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 88px; }
body { margin: 0; background: var(--bg); color: var(--ink); font: 400 15px/1.55 var(--font-ui); }
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea, summary { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-underline-offset: 3px; text-decoration-thickness: 1px; }
img, svg, video { max-inline-size: 100%; }
h1, h2, h3, p { margin: 0; overflow-wrap: anywhere; }
h1 { font-size: clamp(28px, 2.6vw, 36px); font-weight: 700; line-height: 1.2; letter-spacing: -.035em; text-wrap: balance; }
h2 { font-size: 20px; font-weight: 650; line-height: 1.3; letter-spacing: -.02em; }
h3 { font-size: 16px; font-weight: 650; line-height: 1.4; }
p { color: var(--muted); overflow-wrap: anywhere; }
p + p { margin-block-start: var(--space-3); }
small { font-size: 12px; line-height: 1.5; }
:where(button, a, input, select, textarea, summary):focus-visible { outline: 3px solid #72a82e; outline-offset: 3px; }
:where(input, select, textarea):focus { border-color: #689b28; box-shadow: 0 0 0 3px rgb(104 155 40 / 13%); }
.eyebrow { display: block; color: var(--accent-ink); font-size: 11px; font-weight: 700; line-height: 1.5; letter-spacing: .1em; margin-block-end: 10px; }
.muted, .permission-note { color: var(--muted); font-size: 13px; line-height: 1.6; }
.error { color: var(--danger-ink); }

/* Botões, formulários e estados */
button, .button { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); min-block-size: 44px; max-inline-size: 100%; padding: 11px 16px; border: 1px solid transparent; border-radius: var(--radius-control); background: var(--lime); color: #18240a; font-size: 14px; font-weight: 650; line-height: 1.4; text-align: center; text-decoration: none; cursor: pointer; transition: background-color .15s, border-color .15s, box-shadow .15s; }
button:hover, .button:hover { background: var(--lime-hover); }
.secondary { background: var(--surface); color: var(--ink); border-color: #d4dce5; }
.secondary:hover { background: var(--surface-soft); border-color: #aebbc9; }
.quiet { min-block-size: 40px; padding: 8px 10px; background: transparent; color: var(--muted); }
.quiet:hover { background: #edf1f5; color: var(--ink); }
.danger { background: var(--danger-soft); color: var(--danger-ink); border-color: #f6d6d2; }
.danger:hover { background: #ffe4e1; }
button:disabled, .button[aria-disabled="true"] { opacity: .52; cursor: not-allowed; }
button[aria-busy="true"] { cursor: progress; }
label { display: block; min-inline-size: 0; color: #334155; font-size: 13px; font-weight: 600; line-height: 1.5; }
input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select, textarea { display: block; inline-size: 100%; min-inline-size: 0; min-block-size: 44px; margin-block-start: 6px; padding: 10px 12px; border: 1px solid #c7d2de; border-radius: var(--radius-control); background: var(--surface); color: var(--ink); font-size: 14px; font-weight: 400; line-height: 1.5; transition: border-color .15s, box-shadow .15s; }
input::placeholder, textarea::placeholder { color: #728096; opacity: 1; }
textarea { min-block-size: 100px; resize: vertical; }
select { padding-inline-end: 30px; }
input:disabled, select:disabled, textarea:disabled { background: #f0f3f7; color: #67758a; cursor: not-allowed; }
input[type="checkbox"], input[type="radio"] { flex: 0 0 auto; inline-size: 18px; block-size: 18px; margin: 3px 0 0; padding: 0; accent-color: #648f18; cursor: pointer; }
form > label { margin-block-end: var(--space-5); }
.grid-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5); min-inline-size: 0; }
.grid-form label { margin-block-end: 0; }
.full, .form-error { grid-column: 1 / -1; }
fieldset { min-inline-size: 0; margin: 0; padding: 0 0 var(--space-6); border: 0; border-block-end: 1px solid var(--line); }
legend { inline-size: 100%; padding: 0; margin-block-end: var(--space-5); color: var(--ink); font-size: 17px; font-weight: 650; line-height: 1.5; }
.check { display: flex; align-items: flex-start; gap: 10px; min-block-size: 28px; margin-block: 10px; font-size: 14px; font-weight: 400; line-height: 1.6; }
.check input { margin-block-start: 3px; }
.notice { padding: 13px 16px; border: 1px solid #dfebcb; border-radius: var(--radius-control); background: #f2f8e9; color: #3d5b21; font-size: 13px; line-height: 1.6; }
.form-error { padding: 12px 14px; border: 1px solid #f6d6d2; border-radius: var(--radius-control); background: var(--danger-soft); color: var(--danger-ink); font-size: 14px; }
.notice:empty, .form-error:empty, .error:empty { display: none; }
.pill, .feature-badge { display: inline-block; padding: 4px 10px; border-radius: 24px; background: var(--accent-soft); color: var(--accent-ink); font-size: 12px; font-weight: 550; line-height: 1.5; white-space: nowrap; }
.pill.warning { background: #fff4e4; color: #8a4d09; }
.phone-link { display: inline-flex; align-items: center; gap: 4px; color: var(--accent-ink); font-variant-numeric: tabular-nums; white-space: nowrap; }
.input-phone-open { display: block; inline-size: fit-content; max-inline-size: 100%; margin-block-start: 6px; color: var(--accent-ink); font-size: 12px; font-weight: 550; }

/* Estrutura do painel; navegação com escopo próprio */
.workspace { padding-inline-start: var(--sidebar-width); }
.sidebar { position: fixed; inset: 0 auto 0 0; z-index: 30; display: flex; flex-direction: column; gap: var(--space-6); inline-size: var(--sidebar-width); block-size: 100vh; block-size: 100dvh; padding: 26px 16px 18px; border-inline-end: 1px solid var(--line); background: var(--surface); overflow: hidden; }
.brand { display: block; color: var(--ink); font-size: 34px; font-weight: 800; line-height: 1.1; letter-spacing: -.07em; text-decoration: none; }
.brand span { display: block; margin-block-start: 9px; color: var(--muted); font-size: 10px; font-weight: 600; line-height: 1.5; letter-spacing: .08em; overflow-wrap: anywhere; }
.sidebar > .brand { flex-shrink: 0; padding-inline: 10px; }
.brand-logo { inline-size: fit-content; max-inline-size: 100%; letter-spacing: normal; }
.brand-logo img { display: block; inline-size: 190px; max-inline-size: 100%; block-size: 72px; object-fit: contain; object-position: left center; }
.sidebar > .brand-logo img { inline-size: 168px; block-size: 58px; }
.brand-logo strong { display: block; font-size: 24px; line-height: 1.2; letter-spacing: -.025em; }
.public-card > .brand-logo { margin-block-end: 24px; }
footer > .brand-footer { margin-inline: auto; }
footer .brand-footer img { inline-size: 110px; block-size: 38px; object-position: center; }
footer .brand-footer span { font-size: 10px; letter-spacing: .04em; }

.sidebar nav { display: grid; flex: 1; align-content: start; gap: 4px; min-block-size: 0; margin: 0; overflow-y: auto; scrollbar-width: thin; scrollbar-gutter: stable; }
.sidebar nav a { display: flex; align-items: center; min-block-size: 42px; padding: 9px 12px; border-radius: 9px; color: #4c5d73; font-size: 14px; font-weight: 500; line-height: 1.4; text-decoration: none; }
.sidebar nav a:hover { background: #f2f5f8; color: var(--ink); }
.sidebar nav a[aria-current="page"] { background: #eaf5d9; color: #36520f; font-weight: 650; }
.account { flex-shrink: 0; margin-block-start: auto; padding: 16px 10px 0; border-block-start: 1px solid var(--line); }
.account strong { display: block; font-size: 13px; font-weight: 650; overflow-wrap: anywhere; }
.account small { display: block; margin-block-start: 2px; color: var(--muted); }
.account form { margin-block-start: 6px; }
.account .quiet { margin-inline-start: -10px; }
.main { inline-size: 100%; max-inline-size: 1620px; min-inline-size: 0; margin-inline: auto; padding: 0 clamp(24px, 3.2vw, 48px) 32px; }
.topbar { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); min-block-size: 76px; padding-block: 16px; border-block-end: 1px solid var(--line); color: var(--muted); font-size: 13px; }
.topbar > span { min-inline-size: 0; overflow-wrap: anywhere; }
.season-select-label { display: flex; align-items: center; gap: 10px; flex-shrink: 0; color: var(--muted); font-size: 12px; font-weight: 500; }
.season-select-label select { inline-size: 104px; min-block-size: 40px; margin: 0; padding-block: 8px; }
.page-heading { padding-block: 30px 24px; }
.page-heading h1 { margin-block-end: 12px; }
.page-heading p { max-inline-size: 760px; font-size: 15px; line-height: 1.65; }
footer { margin-block-start: 36px; color: #68778c; font-size: 12px; line-height: 1.5; text-align: center; }

/* Painéis, agrupamentos e números */
.panel { min-inline-size: 0; margin-block-end: var(--space-6); padding: var(--space-6); border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.panel > h2 { margin-block-end: var(--space-5); }
.panel > p { margin-block-end: var(--space-4); }
.panel > p:last-child { margin-block-end: 0; }
.section-heading { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); min-inline-size: 0; margin-block-end: var(--space-5); }
.section-heading > div { min-inline-size: 0; }
.section-heading h2 { margin-block-end: 4px; }
.section-heading p { font-size: 13px; }
.actions, .advanced-tools, .detail-links, .public-editor-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; min-inline-size: 0; }
.split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: var(--space-6); margin-block-end: var(--space-6); }
.split > .panel { margin-block-end: 0; }
.split .panel > p { margin-block-end: var(--space-5); }
.stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-4); margin-block-end: var(--space-6); }
.stat { min-inline-size: 0; padding: 22px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.stat > span { display: block; color: var(--muted); font-size: 13px; }
.stat strong { display: block; margin-block: 12px; font-size: 34px; font-weight: 700; line-height: 1.15; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.stat:first-child { border-color: #d6e7c0; background: #edf7e1; }
.stat a { font-size: 13px; }
.school-cards { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 40px) / 3.12); gap: var(--space-4); overflow-x: auto; padding-block: 2px 12px; scroll-snap-type: x proximity; overscroll-behavior-inline: contain; scrollbar-width: thin; }
.school-card { min-inline-size: 0; padding: var(--space-5); border: 1px solid var(--line); border-radius: 12px; scroll-snap-align: start; }
.school-card h3 { min-block-size: 44px; margin-block-end: 16px; overflow-wrap: anywhere; }
.school-card strong { display: block; margin-block-end: 4px; font-size: 28px; font-weight: 700; line-height: 1.2; font-variant-numeric: tabular-nums; }
.school-card p { font-size: 13px; }
.schools-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); margin-block-start: var(--space-6); }
.schools-grid > .panel { margin: 0; }
.schools-grid .panel > h2 { overflow-wrap: anywhere; }
.class-pill { display: inline-flex; align-items: center; gap: 3px; min-block-size: 32px; margin: 3px 4px 3px 0; padding: 3px 8px; border: 1px solid var(--line); border-radius: 8px; font-size: 12px; line-height: 1.4; }
.class-pill button { min-block-size: 30px; padding: 4px 7px; font-size: 12px; }
.schools-grid .actions { margin-block-start: 16px; }
.money-row { display: flex; justify-content: space-between; gap: var(--space-4); padding-block: 10px; border-block-end: 1px solid #edf1f5; font-size: 14px; }
.money-row:first-child { padding-block-start: 0; }
.money-row strong { white-space: nowrap; font-variant-numeric: tabular-nums; }
#finance { margin-block-end: var(--space-5); }

/* Filtros e tabelas */
.toolbar { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--space-3); margin-block-end: var(--space-5); }
.toolbar > div, .toolbar > label { flex: 1 1 150px; min-inline-size: 0; }
.toolbar > div:first-child { flex-grow: 1.3; }
.toolbar label:not(:has(input, select, textarea)) { margin-block-end: 0; }
.toolbar input, .toolbar select { margin-block-start: 6px; }
#advanced-filters:empty { display: none; }
#record-count { font-size: 13px; }
.table-wrap, #error-list, .school-finance-content { max-inline-size: 100%; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: thin; }
table { inline-size: 100%; min-inline-size: 600px; border-collapse: collapse; border-spacing: 0; color: var(--ink); font-size: 14px; line-height: 1.5; text-align: start; }
th { padding: 12px 14px; border-block-end: 1px solid #d8e0e9; background: var(--surface-soft); color: #4b5c72; font-size: 12px; font-weight: 650; line-height: 1.5; white-space: nowrap; text-align: start; }
td { padding: 15px 14px; border-block-end: 1px solid var(--line); vertical-align: middle; overflow-wrap: break-word; }
tbody tr:hover { background: #fafcf8; }
tbody tr:last-child td { border-block-end-color: transparent; }
td strong { font-weight: 600; }
td small { display: block; margin-block-start: 4px; color: var(--muted); }
td .pill { margin-block-start: 5px; }
td button, td .button { min-block-size: 38px; padding: 8px 11px; font-size: 12px; line-height: 1.35; }
td .actions { gap: 6px; min-inline-size: 154px; }
.empty { padding: 36px 20px; color: var(--muted); font-size: 14px; text-align: center; }
.pagination { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); margin-block-start: var(--space-5); padding-block-start: var(--space-4); border-block-start: 1px solid var(--line); color: var(--muted); font-size: 13px; }
.pagination > span { text-align: center; }
.pagination button { min-block-size: 40px; font-size: 13px; }
.entry-row { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px 20px; padding-block: 18px; border-block-end: 1px solid var(--line); }
.entry-row:first-child { padding-block-start: 4px; }
.entry-row:last-child { border-block-end: 0; }
.entry-row > div { min-inline-size: 0; flex: 1 1 230px; }
.entry-row p { margin-block-start: 5px; font-size: 13px; }
.team-card { padding-block: var(--space-5); border-block-end: 1px solid var(--line); }
.team-card:first-child { padding-block-start: 0; }
.team-card:last-child { padding-block-end: 0; border: 0; }
.team-card > p { margin-block-start: 6px; font-size: 13px; }
.team-card .actions { margin-block-start: var(--space-4); }

/* Páginas públicas e acesso */
.public-main { inline-size: 100%; max-inline-size: 1168px; margin-inline: auto; padding: 32px 24px 40px; }
.public-main > .brand { margin-block-end: 20px; }
.public-main:has(.public-card.wide) > .page-heading { max-inline-size: 800px; margin-inline: auto; }
.public-main:has(.public-card.wide) > .public-editor-actions { max-inline-size: 800px; margin-inline: auto; }
.public-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; gap: var(--space-5); }
.public-links > .panel { display: flex; flex-direction: column; align-items: flex-start; min-inline-size: 0; margin: 0; }
.public-links h2 { margin-block-end: var(--space-3); }
.public-links p { margin-block-end: var(--space-5); font-size: 14px; }
.public-links .actions, .public-links > .panel > .button { margin-block-start: auto; }
.public-links .actions { padding-block-start: 8px; }
.public-links + .notice { margin-block-start: var(--space-6); }
.step-number { display: grid; place-items: center; inline-size: 40px; block-size: 40px; margin-block-end: var(--space-5); border-radius: 50%; background: #edf7df; color: var(--accent-ink); font-size: 14px; font-weight: 650; }
.public-card { inline-size: min(480px, calc(100% - 32px)); margin: clamp(24px, 7vh, 72px) auto; padding: 32px; border: 1px solid var(--line); border-radius: 20px; background: var(--surface); }
.public-card > h1 { margin-block-end: var(--space-4); font-size: 30px; }
.public-card > p { margin-block-end: var(--space-5); }
.public-card > form + a, .public-card > form + .actions { margin-block-start: var(--space-5); }
.public-card > form:not(.grid-form) > button { inline-size: 100%; }
.public-card.wide { inline-size: 100%; max-inline-size: 800px; margin: 0 auto; padding: 32px; }
.public-card .grid-form { gap: var(--space-6) var(--space-5); }
.public-card .check { margin-block: 0; }
.public-card .grid-form .actions { padding-block-start: var(--space-2); }
.public-editor-actions { margin-block-end: var(--space-5); }
.team-link { display: block; margin-block-start: var(--space-8); font-size: 14px; text-align: center; }
.terms { max-block-size: 320px; overflow-y: auto; margin-block-end: var(--space-5); padding: 18px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-soft); color: #3b4b62; font-size: 14px; line-height: 1.7; white-space: pre-wrap; overflow-wrap: anywhere; scrollbar-width: thin; }
.search-results { display: grid; gap: var(--space-2); margin-block-start: 10px; }
.search-results:empty { margin: 0; }
.search-results button { justify-content: flex-start; padding: 12px 14px; background: #f1f5f9; color: var(--ink); text-align: start; font-weight: 500; }
.search-results button:hover { background: #e8f2d9; }
.search-results + .notice { margin-block-start: var(--space-3); }
.package-options { display: grid; gap: var(--space-3); }
.package-option { display: flex; align-items: flex-start; gap: var(--space-3); padding: 18px; border: 1px solid #d3dde6; border-radius: 12px; cursor: pointer; }
.package-option:hover { background: #fafcf7; border-color: #afc496; }
.package-option:has(input:checked) { border-color: #6a9b27; background: #f2f9e8; box-shadow: inset 0 0 0 1px #6a9b27; }
.package-option input { margin-block-start: 3px; }
.package-option > div { min-inline-size: 0; }
.package-option strong { display: block; font-size: 15px; font-weight: 650; }
.package-option span { display: block; margin-block-start: 5px; color: var(--muted); font-size: 13px; font-weight: 400; line-height: 1.6; }
.package-option b { display: block; margin-block-start: 12px; font-size: 17px; font-weight: 650; font-variant-numeric: tabular-nums; }
.guest-batch-row { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 1.2fr) auto; align-items: start; gap: var(--space-3); padding-block: var(--space-4); border-block-end: 1px solid var(--line); }
.guest-batch-row:first-child { padding-block-start: 0; }
.guest-batch-row label { margin: 0; }
.guest-batch-row > button { align-self: start; margin-block-start: 25px; }

/* Diálogos, detalhes e histórico */
dialog { inline-size: calc(100% - 32px); max-inline-size: 760px; max-block-size: calc(100vh - 48px); max-block-size: calc(100dvh - 48px); margin: auto; padding: 28px; overflow-y: auto; border: 1px solid #d9e2eb; border-radius: 20px; background: var(--surface); color: var(--ink); box-shadow: var(--shadow-dialog); scrollbar-width: thin; }
dialog::backdrop { background: rgb(15 23 42 / 48%); backdrop-filter: blur(2px); }
.modal-head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-4); margin-block-end: var(--space-6); }
.modal-head h2 { margin-block-start: 5px; overflow-wrap: anywhere; }
.modal-head .quiet { flex-shrink: 0; min-inline-size: 40px; margin: -4px -6px 0 0; }
dialog .grid-form > .actions { margin: 0; padding-block-start: var(--space-2); }
#modal-content > p { margin-block-end: var(--space-4); }
#modal-content > .actions { margin-block-end: var(--space-5); }
#modal-content .notice { margin-block: var(--space-4); }
#success { max-inline-size: 440px; padding: 32px; text-align: center; }
#success h2 { margin-block-end: var(--space-3); }
#success p { margin-block-end: var(--space-6); }
#success > .button, #success > button { margin: 4px; }
.success-icon { display: grid; place-items: center; inline-size: 56px; block-size: 56px; margin: 0 auto var(--space-5); border-radius: 50%; background: #eaf6d7; color: #466c12; font-size: 28px; }
.detail-grid, .checklist-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3) var(--space-5); }
.checklist-grid .check { min-block-size: 36px; margin: 0; }
.detail-links { margin-block-end: var(--space-5); font-size: 14px; }
.detail-section { margin-block-start: var(--space-5); padding-block-start: var(--space-5); border-block-start: 1px solid var(--line); }
.detail-section > h3 { margin-block-end: var(--space-3); }
.detail-section > p { margin-block-end: var(--space-3); font-size: 14px; }
.history-entry { padding-block: 16px; border-block-end: 1px solid var(--line); }
.history-entry:last-child { padding-block-end: 0; border: 0; }
.history-entry > strong { display: block; font-size: 14px; font-weight: 650; line-height: 1.55; }
.history-entry time, .history-entry > small { display: block; margin-block: 5px 12px; color: var(--muted); font-size: 12px; }
.history-changes p { margin-block-end: 9px; color: #334155; font-size: 14px; line-height: 1.65; }
.history-changes p:last-child { margin-block-end: 0; }
.history-changes p span { color: var(--muted); }
.history-summary { padding: 13px 15px; border: 1px solid #e1ebd3; border-radius: 10px; background: #f4f9ee; }
.details-json, .legacy-json, .history-entry pre { max-inline-size: 100%; padding: 16px; border-radius: 10px; background: var(--surface-soft); font: 12px/1.65 ui-monospace, monospace; white-space: pre-wrap; overflow-wrap: anywhere; }
.original-fields { margin: 0; }
.original-fields > div { padding-block: 11px; border-block-end: 1px solid var(--line); }
.original-fields dt { color: var(--muted); font-size: 12px; }
.original-fields dd { margin: 4px 0 0; font-size: 14px; line-height: 1.6; overflow-wrap: anywhere; }
.original-fields .original-fields { padding-inline-start: 12px; border-inline-start: 2px solid var(--line); }
#message:not(:empty) { position: fixed; inset: 18px 18px auto auto; z-index: 100; max-inline-size: min(480px, calc(100% - 36px)); padding: 14px 18px; border: 1px solid #334739; border-radius: 12px; background: #182a20; color: white; font-size: 14px; line-height: 1.6; overflow-wrap: anywhere; box-shadow: 0 8px 30px rgb(15 23 42 / 14%); }
#message.error { border-color: #b94d40; background: #8d2c24; }

/* Controle de fotos, páginas e atendimento */
.photo-tabs { display: flex; gap: var(--space-2); max-inline-size: 100%; margin: 0; padding-block: var(--space-6) 2px; overflow-x: auto; scrollbar-width: thin; }
.photo-tabs a { flex-shrink: 0; white-space: nowrap; }
.school-finance { margin-block-end: var(--space-3); border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.school-finance:last-child { margin-block-end: 0; }
.school-finance summary { display: flex; align-items: center; justify-content: space-between; gap: var(--space-6); padding: 20px; border-radius: 12px; background: #fafcf8; cursor: pointer; list-style: none; }
.school-finance summary::-webkit-details-marker { display: none; }
.school-finance summary::before { content: "+"; display: grid; place-items: center; flex: 0 0 26px; inline-size: 26px; block-size: 26px; border: 1px solid #dce6d0; border-radius: 7px; color: var(--accent-ink); font-size: 18px; line-height: 1; }
.school-finance[open] summary::before { content: "−"; }
.school-finance summary > div:first-of-type { flex: 1 1 170px; min-inline-size: 0; }
.school-finance summary strong { display: block; font-size: 15px; font-weight: 650; overflow-wrap: anywhere; }
.school-finance summary small { display: block; margin-block-start: 4px; color: var(--muted); }
.school-finance summary > div:last-child { display: grid; grid-template-columns: repeat(3, minmax(95px, 1fr)); gap: var(--space-5); }
.school-finance summary span { color: var(--muted); font-size: 12px; }
.school-finance summary b { display: block; margin-block-start: 4px; color: var(--ink); font-size: 15px; font-weight: 650; font-variant-numeric: tabular-nums; white-space: nowrap; }
.school-finance[open] summary { border-block-end: 1px solid var(--line); border-end-start-radius: 0; border-end-end-radius: 0; }
.school-finance-content { padding: var(--space-5); }
.school-finance-content > a { margin-block-start: var(--space-5); }
.attendance-school-groups { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; gap: var(--space-3); margin-block-end: var(--space-6); }
.attendance-school-card { display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 6px; min-inline-size: 0; padding: 18px; font-weight: 400; text-align: start; }
.attendance-school-card strong { font-size: 15px; font-weight: 650; overflow-wrap: anywhere; }
.attendance-school-card span, .attendance-school-card small { color: var(--muted); font-size: 12px; font-weight: 400; }
.attendance-school-card.selected { border-color: #7daa47; background: #f0f8e3; }
.message-manager { margin-block-end: var(--space-5); padding: var(--space-5); border: 1px solid var(--line); border-radius: 12px; }
.message-manager .section-heading { flex-wrap: wrap; align-items: flex-end; }
.message-manager .section-heading > label { flex: 1 1 240px; min-inline-size: 0; }
.message-preview { margin-block-end: var(--space-5); padding: 16px; border-radius: 10px; background: var(--surface-soft); color: #334155; font-size: 14px; line-height: 1.75; white-space: pre-wrap; }
.message-manager > .toolbar { margin-block-end: 0; }
.availability-switch { display: flex; align-items: center; justify-content: flex-start; gap: 10px; margin-block: 0 var(--space-5); padding: 10px 12px; background: #eef2f6; color: #415169; font-size: 13px; text-align: start; }
.availability-switch:hover { background: #e5ebf1; }
.availability-switch > span { position: relative; display: block; flex: 0 0 38px; inline-size: 38px; block-size: 22px; border-radius: 20px; background: #7a8a9e; }
.availability-switch > span::after { content: ""; position: absolute; inset: 3px auto auto 3px; inline-size: 16px; block-size: 16px; border-radius: 50%; background: white; transition: transform .15s; }
.availability-switch.is-on { background: #edf7dd; color: var(--accent-ink); }
.availability-switch.is-on:hover { background: #e3f1ca; }
.availability-switch.is-on > span { background: #648f1e; }
.availability-switch.is-on > span::after { transform: translateX(16px); }

/* Refluxo em tablet e celular */
@media (max-width: 1199px) {
  :root { --sidebar-width: 216px; }
  .sidebar { padding-inline: 12px; }
  .main { padding-inline: 24px; }
  .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .schools-grid, .public-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .split { grid-template-columns: minmax(0, 1fr); }
  .school-cards { grid-auto-columns: calc((100% - 24px) / 2.12); }
  .attendance-school-groups { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .school-finance summary { flex-wrap: wrap; gap: 12px; }
  .school-finance summary > div:last-child { flex: 1 0 100%; padding-inline-start: 38px; }
  .section-heading { flex-wrap: wrap; }
}
@media (max-width: 760px) {
  html { scroll-padding-top: 20px; }
  .workspace { padding-inline-start: 0; }
  .sidebar { position: static; gap: 16px; inline-size: 100%; block-size: auto; padding: 18px 16px 12px; border-inline-end: 0; border-block-end: 1px solid var(--line); overflow: visible; }
  .sidebar > .brand { padding-inline: 0; font-size: 29px; }
  .brand span { font-size: 9px; }
  .sidebar nav { display: flex; flex: none; align-items: center; gap: 6px; margin-inline: -4px; padding: 2px 4px 8px; overflow-x: auto; overflow-y: hidden; scrollbar-gutter: auto; overscroll-behavior-inline: contain; }
  .sidebar nav a { flex-shrink: 0; min-block-size: 42px; padding: 10px 12px; font-size: 13px; white-space: nowrap; }
  .account { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0; padding: 0; border: 0; }
  .account strong { font-size: 12px; }
  .account small { display: none; }
  .account form { flex-shrink: 0; margin: 0; }
  .account .quiet { margin: 0 -6px 0 0; font-size: 12px; }
  .main { padding: 0 16px 28px; }
  .topbar { min-block-size: 64px; padding-block: 12px; gap: 12px; }
  .topbar > span { max-inline-size: 52%; font-size: 12px; }
  .season-select-label { gap: 7px; font-size: 12px; }
  .season-select-label select { inline-size: 90px; min-block-size: 40px; font-size: 16px; }
  .page-heading { padding-block: 24px 20px; }
  .page-heading h1 { margin-block-end: 10px; font-size: 28px; }
  .page-heading p { font-size: 14px; }
  .panel { padding: 20px; margin-block-end: 20px; border-radius: 14px; }
  .stats { gap: 12px; margin-block-end: 20px; }
  .stat { padding: 18px; border-radius: 14px; }
  .stat > span { font-size: 12px; }
  .stat strong { font-size: 29px; }
  .stat a { font-size: 12px; }
  .split { gap: 20px; margin-block-end: 20px; }
  .section-heading { align-items: flex-start; gap: 12px; margin-block-end: 18px; }
  .section-heading .actions { inline-size: 100%; }
  .grid-form { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .public-card .grid-form { gap: 20px; }
  .toolbar { gap: 12px; }
  .toolbar > div, .toolbar > label { flex-basis: 135px; }
  .toolbar > div:first-child { flex-basis: 100%; }
  input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select, textarea { font-size: 16px; }
  .schools-grid, .public-links { gap: 16px; }
  .school-cards { grid-auto-columns: 84%; gap: 12px; }
  .school-card { padding: 18px; }
  .school-card h3 { min-block-size: 0; margin-block-end: 16px; }
  table { font-size: 13px; }
  th { padding: 12px; }
  td { padding: 14px 12px; }
  td button, td .button { min-block-size: 44px; }
  .pagination { gap: 8px; font-size: 12px; }
  .pagination button { padding: 9px 11px; font-size: 12px; }
  .public-main { padding: 24px 16px 32px; }
  .public-card { inline-size: calc(100% - 32px); margin-block: 24px; padding: 24px; border-radius: 16px; }
  .public-card.wide { padding: 24px 20px; }
  .public-card > h1 { font-size: 28px; }
  .public-main > .brand { margin-block-end: 12px; }
  .detail-grid, .checklist-grid { grid-template-columns: minmax(0, 1fr); }
  .guest-batch-row { grid-template-columns: minmax(0, 1fr); gap: 12px; padding-block: 18px; }
  .guest-batch-row > button { justify-self: start; margin-block-start: 0; }
  dialog { inline-size: calc(100% - 24px); max-block-size: calc(100vh - 24px); max-block-size: calc(100dvh - 24px); padding: 22px 20px; border-radius: 16px; }
  .modal-head { margin-block-end: 20px; }
  .modal-head h2 { font-size: 19px; }
  #success { padding: 28px 22px; }
  .photo-tabs { padding-block-start: 20px; gap: 8px; }
  .photo-tabs a { min-block-size: 42px; padding: 10px 13px; font-size: 13px; }
  .school-finance summary { padding: 16px; gap: 12px; }
  .school-finance summary > div:last-child { padding-inline-start: 0; gap: 12px; }
  .school-finance summary b { font-size: 14px; }
  .school-finance-content { padding: 16px; }
  .message-manager { padding: 16px; }
  .message-preview { padding: 14px; font-size: 14px; }
  #message:not(:empty) { inset: 12px 12px auto 12px; max-inline-size: none; padding: 13px 16px; }
}
@media (max-width: 560px) {
  .public-links, .schools-grid, .attendance-school-groups { grid-template-columns: minmax(0, 1fr); }
  .public-links .actions > .button, .public-links .actions > button { flex: 1 1 auto; }
  .school-finance summary > div:last-child { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 12px; }
  .school-finance summary > div:last-child > span:last-child { grid-column: 1 / -1; }
  .public-card .actions > button[type="submit"], .public-card .actions > #public-submit, #guest-public-submit { flex: 1 1 190px; }
  .modal-head + #modal-content .grid-form > .actions { flex-direction: column; align-items: stretch; }
  .toolbar > label { flex-basis: 100%; }
  .message-manager .section-heading > .actions > button { flex: 1 1 120px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: .01ms; animation-duration: .01ms; animation-iteration-count: 1; scroll-behavior: auto; }
}
/* Deve prevalecer sobre os componentes flex/grid. */
[hidden] { display: none !important; }
/* Editor institucional: reutiliza os componentes do painel. */
.home-editor-bar{position:sticky;top:12px;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:16px;box-shadow:0 8px 24px #1720330b}.home-editor-bar>span{font-size:13px;color:var(--muted)}.home-editor-section>summary{font-size:17px;font-weight:650;cursor:pointer;line-height:1.5}.home-editor-section[open]>summary{margin-bottom:24px}.home-editor-section>p{margin-bottom:18px}.home-media-editor{min-width:0;padding:16px;border:1px dashed #cbd7e1;border-radius:12px;background:#fafcfd}.home-media-editor>img{display:block;max-width:360px;max-height:200px;width:auto;height:auto;object-fit:contain;margin-top:16px;border-radius:8px;background:white}.home-repeater{display:grid;gap:16px;margin:16px 0}.home-repeat-card{min-width:0;padding:18px;border:1px solid var(--line);border-radius:12px;background:#fafcfd}.home-repeat-tools{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.home-repeat-tools strong{font-size:14px}.home-repeat-tools button{min-height:36px;padding:6px 10px;font-size:12px}.home-repeat-card .grid-form{gap:16px}.home-repeat-card img{display:block;max-width:200px;max-height:160px;object-fit:contain;margin-top:14px;border-radius:8px}.home-order-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}.home-order-row .check{margin:0}.home-order-row button{min-height:36px;padding:6px 10px}.home-editor-section h3{margin-bottom:12px}.home-editor-section input[type=color]{height:48px;padding:5px}.back-to-site{display:inline-block;margin-bottom:24px;color:var(--accent-ink);font-size:14px}#home-editor>.notice{margin-bottom:32px}@media(max-width:760px){.home-editor-bar{position:static;flex-wrap:wrap}.home-editor-bar .actions{width:100%}.home-editor-bar .actions>*{flex:1}.home-media-editor{padding:12px}.home-media-editor>img{max-width:100%}.home-repeat-card{padding:14px}.home-repeat-tools{align-items:flex-start;flex-wrap:wrap}.home-order-row{align-items:flex-start}.home-order-row>.actions{flex-shrink:0}}

/* Agenda e convites: componentes próprios do módulo. */
.event-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:20px;margin:24px 0}.event-card{display:flex;flex-direction:column;gap:12px;margin:0}.event-card h2{font-size:1.4rem;line-height:1.25;margin:0}.event-card p{margin:0}.event-card .event-date{font-weight:700;color:var(--primary,#225ca4)}.event-card>button{align-self:flex-start;margin-top:auto}.event-card details{margin-bottom:8px}.event-capacity{display:flex;align-items:baseline;flex-wrap:wrap;gap:9px;padding:12px 0;border-top:1px solid var(--line,#e4e9ee);border-bottom:1px solid var(--line,#e4e9ee)}.event-capacity strong{font-size:2rem;line-height:1.2}.event-capacity span{color:var(--muted,#607180);font-size:.875rem}.event-description{white-space:pre-wrap;overflow-wrap:anywhere}.ticket-class-picker{padding:18px;border:1px solid var(--line,#e4e9ee);border-radius:12px;min-width:0}.ticket-class-picker legend{font-weight:700;padding:0 5px}.ticket-class-picker details{padding:10px 0;border-top:1px solid var(--line,#e4e9ee)}.ticket-class-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;padding:14px 0}.ticket-class-options label{font-weight:400}.ticket-search-results{display:flex;flex-wrap:wrap;gap:8px}.ticket-total{font-size:1.4rem;font-weight:800;margin:0}.ticket-pix{padding:20px;border-radius:12px;background:var(--bg,#f3f6fa);margin:18px 0;display:grid;gap:12px}.ticket-pix p{margin:0}.ticket-pix button{justify-self:start}.ticket-order-detail{display:grid;gap:8px}.ticket-order-detail p{margin:0 0 8px}.ticket-order-detail .actions{margin:12px 0}#ticket-purchase-panel,#ticket-receipt{scroll-margin-top:20px}#ticket-purchase-panel>h2{margin-bottom:12px}#ticket-purchase-info{margin-bottom:24px}#ticket-receipt>label{display:grid;gap:8px;margin:20px 0 8px}#ticket-receipt .actions{margin-top:20px}#ticket-stats .stat strong{font-size:clamp(1.35rem,2.5vw,2.25rem)}#tickets-admin .event-card details p{margin-top:12px;font-size:.875rem}#ticket-order-rows td{vertical-align:top}#ticket-order-rows td:first-child{min-width:190px}#ticket-order-rows td:nth-child(2){min-width:180px}#ticket-purchase .form-error:empty{display:none}
@media(max-width:640px){.event-grid{gap:14px;margin:18px 0}.event-card{gap:10px}.event-card>button{width:100%}.ticket-class-picker{padding:14px}.ticket-class-options{grid-template-columns:1fr 1fr}#tickets-admin>.section-heading>.actions{width:100%}#tickets-admin>.section-heading>.actions>*{flex:1}#ticket-receipt .actions>*{flex:1 1 100%}}

/* Operação 0.7: ingressos, recepção, pendências e cópias privadas. */
.admission-sheets{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:20px;margin:24px 0}.admission-sheet{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;padding:28px 22px;background:#fff;border:1px solid var(--line,#e2e8ef);border-radius:18px;break-inside:avoid}.admission-sheet h2,.admission-sheet p{margin:0}.admission-sheet code{font-size:.7rem;overflow-wrap:anywhere;max-width:100%;padding:10px;background:#f3f5f7;border-radius:6px}.admission-sheet small{color:var(--muted,#607080);max-width:32ch}.admission-qr{width:240px;max-width:100%;padding:0;background:white}.admission-qr svg{display:block;width:100%;height:auto}.checkin-tools{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}#checkin-camera{width:min(100%,640px);max-height:440px;background:#101b26;border-radius:14px;object-fit:contain}#checkin-lookup{margin-top:20px}#checkin-result{border:2px solid var(--line,#e2e8ef)}#checkin-result .secondary{margin:12px 0 0 10px}.checkin-accepted{border-color:#3b842b!important;background:#f0f8eb!important}.checkin-denied{border-color:#c25a34!important;background:#fff7ef!important}#checkin-recent p{padding:12px 0;border-bottom:1px solid var(--line,#e2e8ef);margin:0}#checkin-recent small{display:block;color:var(--muted,#607080);margin-top:4px}.pending-pills{display:flex;flex-wrap:wrap;gap:6px}.pending-pills .pill{white-space:normal}#pending-stats{grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr))}.backup-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 0;border-bottom:1px solid var(--line,#e2e8ef)}.backup-row small{display:block;color:var(--muted,#607080);margin-top:5px}.backup-review{border:2px solid #d7ad4c;scroll-margin-top:20px}.backup-review .table-wrap{margin:20px 0}#backup-app form{margin:20px 0}#backup-app form button{align-self:end;justify-self:start}#backup-review .form-error{color:var(--danger,#a9362c)}#home-version-list{max-height:460px;overflow:auto}.home-editor-bar .actions{flex-wrap:wrap}.admission-sheet .pill{white-space:normal}
@media(max-width:640px){.admission-sheets{grid-template-columns:1fr;gap:16px}.admission-sheet{padding:22px 16px}.backup-row{align-items:flex-start;flex-direction:column}.backup-row>.actions{width:100%;flex-wrap:wrap}.backup-row .actions>*{flex:1}#checkin-result .secondary{display:block;margin-left:0}.home-editor-bar .actions>*{flex:1 1 45%;text-align:center}}
@media print{body.admission-printing{background:#fff;color:#000}body.admission-printing .sidebar,body.admission-printing .topbar,body.admission-printing .page-heading,body.admission-printing footer,body.admission-printing .no-ticket-print,body.admission-printing #message,body.admission-printing .modal-head{display:none!important}body.admission-printing main{margin:0!important;padding:0!important;max-width:none;width:100%}body.admission-printing .admission-sheets{display:block;margin:0}body.admission-printing .admission-sheet{page-break-after:always;width:100%;max-width:650px;margin:0 auto;border:1px solid #bbb;box-shadow:none}body.admission-printing .admission-sheet:last-child{page-break-after:auto}body.admission-modal-print>.main{display:none!important}body.admission-modal-print #modal[open]{display:block;position:static;max-width:none;width:100%;max-height:none;height:auto;overflow:visible;border:0;padding:0;margin:0;box-shadow:none}body.admission-modal-print #modal::backdrop{background:none}}

/* Documentos, transparência e avisos de formulário. */
.legal-footer{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 18px;margin:20px 0 0;font-size:12px;line-height:1.6}.legal-footer a{color:inherit;text-underline-offset:3px}.legal-layout{display:grid;grid-template-columns:230px minmax(0,1fr);align-items:start;gap:22px}.legal-nav{display:grid;gap:6px;position:sticky;top:20px}.legal-nav a{display:block;padding:9px 10px;border-radius:7px;font-size:13px;line-height:1.5;overflow-wrap:anywhere}.legal-nav a[aria-current=page]{background:#eaf5d9;color:#36520f;font-weight:700}.legal-article{min-width:0;overflow-wrap:anywhere}.legal-article h2{font-size:1.2rem;line-height:1.4;margin:28px 0 12px}.legal-article h2:first-child{margin-top:0}.legal-article p{line-height:1.85;margin:0 0 18px}.legal-version{font-size:12px;color:var(--muted,#68778c)}.legal-profile{margin:20px 0}.legal-profile>div{border-top:1px solid var(--line,#e2e8ef);padding:14px 0}.legal-profile dt{font-size:13px;font-weight:700;margin-bottom:6px}.legal-profile dd{margin:0;line-height:1.75}.legal-back{margin-top:28px!important}.legal-form-notice{border:1px solid var(--line,#e2e8ef);border-radius:12px;padding:18px;background:#f7faf3;min-width:0}.legal-form-notice p{margin:0 0 10px;line-height:1.7;font-size:13px}.legal-form-notice small{display:block;color:var(--muted,#68778c);font-size:11px;overflow-wrap:anywhere}.legal-form-notice .check{margin:12px 0;font-size:13px}.legal-editor-document summary{font-weight:700;cursor:pointer}.legal-editor-document[open] summary{margin-bottom:20px}.legal-editor-document textarea{font-family:inherit;line-height:1.65}#legal-history{max-height:480px;overflow:auto}#legal-admin-form>.panel{margin-bottom:20px}
@media(max-width:760px){.legal-layout{grid-template-columns:1fr;gap:16px}.legal-nav{position:static;grid-template-columns:repeat(2,minmax(0,1fr));padding:14px}.legal-nav a{font-size:12px}.legal-article{padding:22px 18px}.legal-footer{gap:8px 14px;font-size:11px}.legal-form-notice{padding:15px}}
@media print{.legal-nav,.legal-footer{display:none}.legal-layout{display:block}.legal-article{border:0;box-shadow:none}}

/* Public service pages: shared reading rhythm, preserved operational forms. */
.public-story-hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.8fr);gap:48px;align-items:center;margin-block:36px 56px;padding:clamp(24px,4vw,48px);background:#edf1e5;border:1px solid #dfe5d2;border-radius:28px;overflow:hidden}
.public-story-hero h1{max-inline-size:750px;font-size:clamp(32px,4.3vw,52px);line-height:1.08;letter-spacing:-.04em;margin-block:16px 20px;overflow-wrap:anywhere}
.public-story-lead{font-size:18px;line-height:1.7;max-inline-size:65ch;color:#515a53;margin-block-end:26px}
.public-story-back{font-weight:600;color:#40512d;text-decoration:underline;text-underline-offset:4px}
.public-story-status{margin-block:22px 0}.public-story-image{inline-size:100%;aspect-ratio:4/5;object-fit:cover;border-radius:20px}
.public-story-art{min-block-size:320px;display:flex;flex-direction:column;justify-content:space-between;padding:32px;color:#f4f6e8;background:radial-gradient(circle at 95% 0%,#b7da4b 0 10%,transparent 10.5%),radial-gradient(circle at 0% 100%,#758b41 0 22%,transparent 22.5%),#304331;border-radius:20px;transform:rotate(2deg)}
.public-story-art span{font-size:11px;letter-spacing:.16em;font-weight:700}.public-story-art strong{font-size:clamp(34px,4vw,48px);line-height:1.1;letter-spacing:-.04em}
.public-story-overview{max-inline-size:820px;margin-block:0 48px}.public-story-overview h2,.public-story-section>h2,.public-story-form-heading h2{font-size:clamp(25px,3vw,34px);line-height:1.2;letter-spacing:-.025em;margin-block:12px 16px}
.public-story-overview p,.public-story-steps p,.public-story-faq p,.public-story-form-heading p,.public-story-help p{line-height:1.75;color:var(--muted);white-space:normal;overflow-wrap:anywhere}
.public-story-section{margin-block:48px}.public-story-steps{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;counter-reset:none}.public-story-steps li{padding:24px;border-block-start:2px solid #dce3cd;min-inline-size:0}.public-step-index{display:inline-grid;place-items:center;inline-size:40px;block-size:40px;background:#e9f1d5;border-radius:50%;font-size:13px;font-weight:700;color:#40512d}.public-story-steps h3{font-size:19px;margin-block:20px 12px}
.public-story-form-heading{scroll-margin-block-start:24px;border-block-start:1px solid var(--line);padding-block-start:36px;margin-block:48px 20px;outline-offset:6px}.public-story-form-heading p{max-inline-size:75ch}
.public-story-form-heading+.public-card.wide{margin-block:0 48px}.public-story-faq{max-inline-size:860px}.public-story-faq details{border-block-end:1px solid var(--line);padding:20px 0}.public-story-faq summary{font-size:17px;font-weight:600;cursor:pointer;line-height:1.6}.public-story-faq details p{padding-inline:0 24px;margin-block:16px 0}
.public-story-help{display:flex;justify-content:space-between;align-items:center;gap:32px;padding:32px;background:#edf1e5;border-radius:20px;margin-block:48px}.public-story-help h2{margin-block:10px}.public-story-help p{max-inline-size:60ch}.public-story-help .actions{flex-shrink:0;max-inline-size:260px}
.public-package-preview{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:20px}.public-package-preview .panel{margin:0;display:flex;flex-direction:column;align-items:flex-start}.public-package-preview h3{font-size:22px}.public-package-preview p{white-space:pre-line;line-height:1.7}.public-package-price{font-size:28px;margin-block:12px 20px}.public-package-preview .button{margin-block-start:auto}
.public-next-step{text-align:start;margin-block:24px;padding:20px;background:#f0f4e7;border-radius:14px}.public-next-step p{line-height:1.7}.public-content-tools{position:sticky;inset-block-start:0;background:var(--surface);z-index:3;padding:12px 0;border-block-end:1px solid var(--line)}.public-content-item{padding:20px;margin-block:16px;border:1px solid var(--line);border-radius:14px}#public-content-fields>label{min-inline-size:0}
@media(max-width:760px){.public-story-hero{grid-template-columns:1fr;gap:28px;padding:24px;margin-block:24px 36px;border-radius:20px}.public-story-art{min-block-size:200px;transform:none}.public-story-image{aspect-ratio:16/10}.public-story-lead{font-size:16px}.public-story-steps{grid-template-columns:1fr;gap:0}.public-story-steps li{padding:22px 0}.public-story-help{display:block;padding:24px}.public-story-help .actions{max-inline-size:none;margin-block-start:20px}.public-story-section{margin-block:36px}.public-story-form-heading{margin-block-start:36px}.public-content-tools{position:static}.public-story-hero .actions{align-items:flex-start}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Project navigation stays separate from the site's shared administration. */
.project-menu{min-inline-size:0}.project-menu>summary{cursor:pointer;padding:14px 12px;font-size:12px;font-weight:800;letter-spacing:.09em;color:#324c23;border-radius:10px;background:#f0f5e8}.project-menu-links{display:grid;padding-block:6px 12px;padding-inline-start:8px;border-inline-start:2px solid #e6edda;margin-inline-start:12px}.nav-section-label{font-size:10px;font-weight:750;letter-spacing:.1em;color:var(--muted);padding:18px 12px 6px}.mail-template{padding:20px 0;border-block-end:1px solid var(--line)}.mail-template>summary{font-size:17px;font-weight:650;cursor:pointer;line-height:1.6}.mail-template>label{margin-block:18px}.mail-template summary .muted{font-size:12px;font-weight:500}.mail-preview{white-space:pre-wrap;overflow-wrap:anywhere;font-family:inherit;line-height:1.7;padding:20px;background:#f3f6ed;border:1px solid var(--line);border-radius:12px;max-block-size:480px;overflow:auto}#mail-variables{font-size:12px;line-height:1.9;overflow-wrap:anywhere}
@media(max-width:760px){.sidebar nav{display:grid;overflow-x:visible;overflow-y:visible;align-items:start}.project-menu-links{grid-template-columns:repeat(2,minmax(0,1fr));padding-inline-start:0}.sidebar nav a{white-space:normal}.nav-section-label{padding-block-start:10px}.sidebar nav>.nav-section-label~a{min-block-size:36px}.mail-template>summary{font-size:16px}.mail-preview{padding:16px}}

@media(max-width:760px){.project-menu-links{max-block-size:250px;overflow-y:auto;overscroll-behavior:contain}}
.ticket-type{display:inline-block;padding:9px 14px;border-radius:9px;background:#edf0e7;color:#35482a;font-size:13px;font-weight:800;letter-spacing:.04em;margin-block-end:16px}.student-ticket .ticket-type,.student-type{background:#dbeafb;color:#173f76}.guest-ticket .ticket-type{background:#e9f2d7;color:#3b531b}.paid-type{background:#f2e8fd;color:#68438c}.free-ticket{border-block-start:5px solid #8ba94e}.student-ticket{border-block-start-color:#225ca4}#student-free-link{font-size:13px}#student-free-tickets .actions{margin-block:16px}
@media print{.free-ticket{break-inside:avoid}.ticket-type{border:2px solid currentColor;background:white!important;color:black!important}}

.free-ticket-image{display:block;inline-size:min(100%,420px);block-size:auto;margin-inline:auto;margin-block-end:20px}

/* Comunicação e confirmações */
#success-text, .confirmation-copy { white-space: pre-wrap; overflow-wrap: anywhere; }
#communication-editor a, .mail-preview a, #success a { overflow-wrap: anywhere; }
#communication-popups .mail-template { margin-block-end: 12px; }

.student-progress-grid { list-style:none; padding:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; }
.student-progress-grid li { border:1px solid var(--border,#dce4ed); padding:14px; border-radius:12px; }
.student-progress-grid p { margin:8px 0 0; }
