/* LCB — Liga Cearense de Basquete · sistema visual "Jangada ao meio-dia"
   Claro e ensolarado, com blocos de mar profundo. Formas-assinatura: a vela (logo), o arco de três pontos e a onda.
   Escalas: espaçamento 4·8·12·16·24·32·48·72 · raios 6·10·18 · tipo 12·14·16·18·22·28·36·48. */
:root {
  --ceara-white: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%22-6%20-6%20467%20457%22%3E%3Cpath%20d%3D%22M99%202L104%204L129%204L159%208L219%2036L235%2040L243%2049L250%2051L253%2055L263%2055L271%2064L284%2069L299%2080L320%2083L327%2093L334%20100L343%20104L357%20120L388%20142L394%20142L399%20150L411%20160L417%20163L425%20162L443%20168L449%20174L450%20179L410%20185L405%20197L401%20198L395%20205L393%20219L386%20223L381%20235L371%20241L363%20250L364%20258L357%20265L357%20269L352%20275L345%20278L339%20286L331%20287L330%20285L324%20285L318%20293L312%20297L312%20300L308%20304L308%20315L312%20316L303%20325L301%20333L299%20334L299%20346L301%20348L295%20355L289%20358L289%20367L295%20370L298%20375L297%20383L301%20384L305%20389L310%20389L312%20392L306%20404L301%20407L299%20414L294%20416L290%20423L282%20424L281%20428L276%20428L274%20431L268%20432L264%20440L253%20440L252%20433L247%20428L236%20427L230%20424L230%20417L227%20412L200%20399L196%20395L164%20395L157%20400L134%20403L127%20403L121%20399L95%20400L99%20394L102%20377L108%20370L108%20351L102%20343L77%20338L74%20329L69%20325L67%20315L69%20306L62%20299L62%20289L60%20285L56%20283L59%20279L59%20273L53%20253L55%20251L55%20242L53%20240L55%20216L53%20214L53%20208L32%20197L32%20193L25%20187L22%20187L20%20183L20%20172L24%20168L24%20162L21%20159L32%20136L31%20110L28%20108L20%20108L21%2098L15%2091L18%2088L18%2081L9%2078L9%2071L6%2069L10%2068L10%2060L1%2050L11%2036L11%2033L18%2028L18%2019L11%2015L16%2011L41%2012L59%208L91%207L98%203Z%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%223%22%20stroke-linejoin%3D%22round%22%2F%3E%3Ccircle%20cx%3D%22312%22%20cy%3D%2285%22%20r%3D%227%22%20fill%3D%22%23ef8021%22%2F%3E%3C%2Fsvg%3E");
  --s1: 4px; --s2: 8px; --s3: 12px; --s4: 16px; --s5: 24px; --s6: 32px; --s7: 48px; --s8: 72px;
  --r1: 6px; --r2: 10px; --r3: 18px;
  --t-xs: .8125rem; --t-sm: .9375rem; --t-md: 1.0625rem; --t-lg: 1.1875rem; --t-xl: 1.5rem; --t-2xl: 1.875rem; --t-3xl: 2.5rem; --t-4xl: 3.25rem;
  --display: 'Montserrat', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --sans: 'Montserrat', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --brand: 'Montserrat', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --arcs: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 400' fill='none' stroke='%23ffffff' stroke-opacity='.10' stroke-width='2'%3E%3Cpath d='M-40 400V260a340 340 0 0 1 680 0v140'/%3E%3Ccircle cx='300' cy='400' r='120'/%3E%3Cpath d='M180 400V230h240v170M300 110v-40'/%3E%3C/svg%3E");
  --wave-sea: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 28' preserveAspectRatio='none'%3E%3Cpath d='M0 14C100 0 200 0 300 14s200 14 300 0 200-14 300 0 200 14 300 0v14H0z' fill='%23000c26'/%3E%3C/svg%3E");
  --lace-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='14' viewBox='0 0 28 14'%3E%3Cpath d='M0 7L7 0l7 7-7 7zM14 7l7-7 7 7-7 7z' fill='none' stroke='%23000' stroke-width='1.6'/%3E%3Ccircle cx='7' cy='7' r='1.4' fill='%23000'/%3E%3Ccircle cx='21' cy='7' r='1.4' fill='%23000'/%3E%3C/svg%3E");
  --sea-900: #000c26;
  --sea-800: #0f2a33;
  --sea-700: #16404d;
  --sail-blue: #004d9d;
  --sail-green: #008538;
  --sail-green-ink: #006b2f;
  --green-hover: #006b2f;
  --blue-text: #004d9d;
  --green-text: #006b2f;
  --foam: #eef3f3;
  --foam-2: #e0e9ea;
  --paper: #ffffff;
  --hover: #f4f8f8;
  --skeleton-hi: #f4f8f8;
  --sand: #fbe6cc;
  --sand-ink: #6b3a0a;
  --sand-line: #efcfa3;
  --sun: #ef8021; --on-sun: #0f2a33;
  --sun-hover: #f59a49;
  --ball: #ef4f23;
  --burnt: #ce4f1a;
  --live: #c8381a;
  --live-hover: #a52d12;
  --ink: #0f2a33;
  --ink-2: #2f4a54;
  --ink-3: #4f6670;
  --line: #cfdcde;
  --line-2: #e0e9ea;
  --tint-green: #e1f1e8;
  --ok-bg: #d6eedf;
  --ok-ink: #0a5a2a;
  --err-bg: #fdebe6;
  --err-line: #f1b7a6;
  --err-ink: #8a2410;
  --btn-dark: #0f2a33;
  --btn-dark-hover: #16404d;
  --focus: #004d9d;
  --shadow: 0 1px 0 rgba(15,42,51,.04), 0 10px 28px -14px rgba(15,42,51,.24);
  --wave: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 28' preserveAspectRatio='none'%3E%3Cpath d='M0 14C100 0 200 0 300 14s200 14 300 0 200-14 300 0 200 14 300 0v14H0z' fill='%23eef3f3'/%3E%3C/svg%3E");
  --arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%234f6670' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  --lace: #ef8021;
  --ceara: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%22-6%20-6%20467%20457%22%3E%3Cpath%20d%3D%22M99%202L104%204L129%204L159%208L219%2036L235%2040L243%2049L250%2051L253%2055L263%2055L271%2064L284%2069L299%2080L320%2083L327%2093L334%20100L343%20104L357%20120L388%20142L394%20142L399%20150L411%20160L417%20163L425%20162L443%20168L449%20174L450%20179L410%20185L405%20197L401%20198L395%20205L393%20219L386%20223L381%20235L371%20241L363%20250L364%20258L357%20265L357%20269L352%20275L345%20278L339%20286L331%20287L330%20285L324%20285L318%20293L312%20297L312%20300L308%20304L308%20315L312%20316L303%20325L301%20333L299%20334L299%20346L301%20348L295%20355L289%20358L289%20367L295%20370L298%20375L297%20383L301%20384L305%20389L310%20389L312%20392L306%20404L301%20407L299%20414L294%20416L290%20423L282%20424L281%20428L276%20428L274%20431L268%20432L264%20440L253%20440L252%20433L247%20428L236%20427L230%20424L230%20417L227%20412L200%20399L196%20395L164%20395L157%20400L134%20403L127%20403L121%20399L95%20400L99%20394L102%20377L108%20370L108%20351L102%20343L77%20338L74%20329L69%20325L67%20315L69%20306L62%20299L62%20289L60%20285L56%20283L59%20279L59%20273L53%20253L55%20251L55%20242L53%20240L55%20216L53%20214L53%20208L32%20197L32%20193L25%20187L22%20187L20%20183L20%20172L24%20168L24%20162L21%20159L32%20136L31%20110L28%20108L20%20108L21%2098L15%2091L18%2088L18%2081L9%2078L9%2071L6%2069L10%2068L10%2060L1%2050L11%2036L11%2033L18%2028L18%2019L11%2015L16%2011L41%2012L59%208L91%207L98%203Z%22%20fill%3D%22%230f2a33%22%20stroke%3D%22%230f2a33%22%20stroke-width%3D%223%22%20stroke-linejoin%3D%22round%22%2F%3E%3Ccircle%20cx%3D%22312%22%20cy%3D%2285%22%20r%3D%227%22%20fill%3D%22%23ef8021%22%2F%3E%3C%2Fsvg%3E");
  --ceara-op: .075;
  color-scheme: light;
}
:root[data-theme="dark"] {
  --foam: #0a1d24;
  --foam-2: #163640;
  --paper: #0f2a33;
  --hover: #133440;
  --skeleton-hi: #1d4350;
  --sand: #3b2a12;
  --sand-ink: #f3cf99;
  --sand-line: #5a4220;
  --ink: #eaf2f3;
  --ink-2: #b8cbd1;
  --ink-3: #93abb3;
  --line: #2a4854;
  --line-2: #1f3e49;
  --blue-text: #6db0ff;
  --green-text: #4fd18b;
  --sail-green-ink: #4fd18b;
  --tint-green: #10382b;
  --ok-bg: #0f3a28;
  --ok-ink: #7fe0a8;
  --err-bg: #3a1a14;
  --err-line: #7a3a2c;
  --err-ink: #ffb4a2;
  --btn-dark: #1d4757;
  --btn-dark-hover: #25596c;
  --focus: #ffb04d;
  --shadow: 0 1px 0 rgba(0,0,0,.2), 0 12px 30px -14px rgba(0,0,0,.65);
  --wave: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 28' preserveAspectRatio='none'%3E%3Cpath d='M0 14C100 0 200 0 300 14s200 14 300 0 200-14 300 0 200 14 300 0v14H0z' fill='%230a1d24'/%3E%3C/svg%3E");
  --arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2393abb3' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  --ceara: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%22-6%20-6%20467%20457%22%3E%3Cpath%20d%3D%22M99%202L104%204L129%204L159%208L219%2036L235%2040L243%2049L250%2051L253%2055L263%2055L271%2064L284%2069L299%2080L320%2083L327%2093L334%20100L343%20104L357%20120L388%20142L394%20142L399%20150L411%20160L417%20163L425%20162L443%20168L449%20174L450%20179L410%20185L405%20197L401%20198L395%20205L393%20219L386%20223L381%20235L371%20241L363%20250L364%20258L357%20265L357%20269L352%20275L345%20278L339%20286L331%20287L330%20285L324%20285L318%20293L312%20297L312%20300L308%20304L308%20315L312%20316L303%20325L301%20333L299%20334L299%20346L301%20348L295%20355L289%20358L289%20367L295%20370L298%20375L297%20383L301%20384L305%20389L310%20389L312%20392L306%20404L301%20407L299%20414L294%20416L290%20423L282%20424L281%20428L276%20428L274%20431L268%20432L264%20440L253%20440L252%20433L247%20428L236%20427L230%20424L230%20417L227%20412L200%20399L196%20395L164%20395L157%20400L134%20403L127%20403L121%20399L95%20400L99%20394L102%20377L108%20370L108%20351L102%20343L77%20338L74%20329L69%20325L67%20315L69%20306L62%20299L62%20289L60%20285L56%20283L59%20279L59%20273L53%20253L55%20251L55%20242L53%20240L55%20216L53%20214L53%20208L32%20197L32%20193L25%20187L22%20187L20%20183L20%20172L24%20168L24%20162L21%20159L32%20136L31%20110L28%20108L20%20108L21%2098L15%2091L18%2088L18%2081L9%2078L9%2071L6%2069L10%2068L10%2060L1%2050L11%2036L11%2033L18%2028L18%2019L11%2015L16%2011L41%2012L59%208L91%207L98%203Z%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%223%22%20stroke-linejoin%3D%22round%22%2F%3E%3Ccircle%20cx%3D%22312%22%20cy%3D%2285%22%20r%3D%227%22%20fill%3D%22%23ef8021%22%2F%3E%3C%2Fsvg%3E");
  --ceara-op: .08;
  color-scheme: dark;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --foam: #0a1d24;
    --foam-2: #163640;
    --paper: #0f2a33;
    --hover: #133440;
    --skeleton-hi: #1d4350;
    --sand: #3b2a12;
    --sand-ink: #f3cf99;
    --sand-line: #5a4220;
    --ink: #eaf2f3;
    --ink-2: #b8cbd1;
    --ink-3: #93abb3;
    --line: #2a4854;
    --line-2: #1f3e49;
    --blue-text: #6db0ff;
    --green-text: #4fd18b;
    --sail-green-ink: #4fd18b;
    --tint-green: #10382b;
    --ok-bg: #0f3a28;
    --ok-ink: #7fe0a8;
    --err-bg: #3a1a14;
    --err-line: #7a3a2c;
    --err-ink: #ffb4a2;
    --btn-dark: #1d4757;
    --btn-dark-hover: #25596c;
    --focus: #ffb04d;
    --shadow: 0 1px 0 rgba(0,0,0,.2), 0 12px 30px -14px rgba(0,0,0,.65);
    --wave: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 28' preserveAspectRatio='none'%3E%3Cpath d='M0 14C100 0 200 0 300 14s200 14 300 0 200-14 300 0 200 14 300 0v14H0z' fill='%230a1d24'/%3E%3C/svg%3E");
    --arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2393abb3' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    --ceara: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%22-6%20-6%20467%20457%22%3E%3Cpath%20d%3D%22M99%202L104%204L129%204L159%208L219%2036L235%2040L243%2049L250%2051L253%2055L263%2055L271%2064L284%2069L299%2080L320%2083L327%2093L334%20100L343%20104L357%20120L388%20142L394%20142L399%20150L411%20160L417%20163L425%20162L443%20168L449%20174L450%20179L410%20185L405%20197L401%20198L395%20205L393%20219L386%20223L381%20235L371%20241L363%20250L364%20258L357%20265L357%20269L352%20275L345%20278L339%20286L331%20287L330%20285L324%20285L318%20293L312%20297L312%20300L308%20304L308%20315L312%20316L303%20325L301%20333L299%20334L299%20346L301%20348L295%20355L289%20358L289%20367L295%20370L298%20375L297%20383L301%20384L305%20389L310%20389L312%20392L306%20404L301%20407L299%20414L294%20416L290%20423L282%20424L281%20428L276%20428L274%20431L268%20432L264%20440L253%20440L252%20433L247%20428L236%20427L230%20424L230%20417L227%20412L200%20399L196%20395L164%20395L157%20400L134%20403L127%20403L121%20399L95%20400L99%20394L102%20377L108%20370L108%20351L102%20343L77%20338L74%20329L69%20325L67%20315L69%20306L62%20299L62%20289L60%20285L56%20283L59%20279L59%20273L53%20253L55%20251L55%20242L53%20240L55%20216L53%20214L53%20208L32%20197L32%20193L25%20187L22%20187L20%20183L20%20172L24%20168L24%20162L21%20159L32%20136L31%20110L28%20108L20%20108L21%2098L15%2091L18%2088L18%2081L9%2078L9%2071L6%2069L10%2068L10%2060L1%2050L11%2036L11%2033L18%2028L18%2019L11%2015L16%2011L41%2012L59%208L91%207L98%203Z%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%223%22%20stroke-linejoin%3D%22round%22%2F%3E%3Ccircle%20cx%3D%22312%22%20cy%3D%2285%22%20r%3D%227%22%20fill%3D%22%23ef8021%22%2F%3E%3C%2Fsvg%3E");
    --ceara-op: .05;
    color-scheme: dark;
  }
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--foam); color: var(--ink); font: 400 var(--t-md)/1.6 var(--sans); position: relative; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
a { color: inherit; text-decoration: none; }
img, svg { max-width: 100%; }
h1, h2, h3, h4 { margin: 0; font-family: var(--display); line-height: 1.04; letter-spacing: .005em; color: var(--ink); text-wrap: balance; }
h1 { font-size: clamp(2.75rem, 6.6vw, 5.25rem); font-weight: 800; text-transform: uppercase; line-height: .98; }
h2 { font-size: clamp(1.875rem, 3.6vw, 2.75rem); font-weight: 800; text-transform: uppercase; }
h3 { font-size: var(--t-xl); font-weight: 700; letter-spacing: .01em; }
h4 { font-family: var(--sans); font-size: var(--t-sm); font-weight: 700; color: var(--green-text); margin: var(--s5) 0 var(--s3); }
p { margin: 0 0 1em; max-width: 68ch; }
.display { font-family: var(--display); font-weight: 800; }
.wrap { width: min(1200px, 100% - 32px); margin-inline: auto; }
.skip { position: absolute; left: -999px; } .skip:focus { left: 12px; top: 12px; background: var(--sun); color: var(--on-sun); padding: 8px 14px; border-radius: var(--r1); z-index: 99; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; border-radius: var(--r1); }
.topbar :focus-visible, .hero :focus-visible, .scoreboard :focus-visible, .footer :focus-visible, .band-sea :focus-visible { outline-color: var(--sun); }
main { min-height: 70vh; padding-bottom: var(--s8); outline: none; }
.muted { color: var(--ink-3); } .small { font-size: var(--t-sm); } .center { text-align: center; }
.i { width: 1.25em; height: 1.25em; flex: none; vertical-align: -.22em; }
.i.lg { width: 1.75em; height: 1.75em; }

/* ===== topo ===== */
.topbar { position: sticky; top: 0; z-index: 30; background: var(--sea-800); color: #fff; }
.topbar .wrap { display: flex; align-items: center; gap: var(--s5); min-height: 68px; }
.logo { display: flex; align-items: center; } .logo img { height: 46px; width: auto; display: block; }
.nav { display: flex; gap: var(--s1); flex: 1; }
.nav a { padding: var(--s2) var(--s4); border-radius: 999px; color: rgba(255,255,255,.82); font-weight: 600; font-size: var(--t-sm); transition: background .15s, color .15s; min-height: 40px; display: inline-flex; align-items: center; }
.nav a:hover { color: #fff; background: rgba(255,255,255,.1); } .nav a.active { background: #fff; color: var(--sea-800); }
.nav-right { display: flex; gap: var(--s2); align-items: center; }
.btn.menu-btn { display: none; }
@media (max-width: 880px) {
  .btn.menu-btn { display: inline-flex; margin-left: auto; }
  .nav, .nav-right { display: none; }
  .topbar.open .wrap { flex-wrap: wrap; padding: var(--s3) 0 var(--s4); }
  .topbar.open .nav, .topbar.open .nav-right { display: flex; flex-direction: column; width: 100%; align-items: stretch; }
  .topbar.open .nav a { padding: var(--s3) var(--s4); }
}

/* ===== botões e formulários ===== */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--s2); border: 1px solid transparent; cursor: pointer; font: 700 var(--t-sm)/1 var(--sans); padding: 0 var(--s5); min-height: 44px; border-radius: 999px; background: var(--sail-green); color: #fff; transition: background .15s, border-color .15s, transform .1s; white-space: nowrap; }
.btn:hover { background: var(--green-hover); } .btn:active { transform: translateY(1px); }
.btn.ghost { background: transparent; color: var(--ink); border-color: var(--line); } .btn.ghost:hover { background: var(--paper); border-color: var(--ink-3); }
.btn.dark { background: var(--btn-dark); color: #fff; } .btn.dark:hover { background: var(--btn-dark-hover); }
.btn.hot { background: var(--live); color: #fff; } .btn.hot:hover { background: var(--live-hover); }
.btn.sun { background: var(--sun); color: var(--on-sun); } .btn.sun:hover { background: var(--sun-hover); }
.btn.sm { min-height: 36px; padding: 0 var(--s4); font-size: var(--t-sm); } .btn.lg { min-height: 52px; padding: 0 var(--s6); font-size: var(--t-md); }
.btn[disabled] { opacity: .45; pointer-events: none; }
.topbar .btn.ghost, .hero .btn.ghost, .band-sea .btn.ghost { color: #fff; border-color: rgba(255,255,255,.4); } .topbar .btn.ghost:hover, .hero .btn.ghost:hover { background: rgba(255,255,255,.12); border-color: #fff; }
.topbar .btn.dark { background: rgba(255,255,255,.14); } .topbar .btn.dark:hover { background: rgba(255,255,255,.24); }
label { display: block; font-size: var(--t-sm); font-weight: 600; color: var(--ink-2); margin-bottom: 6px; }
input, select, textarea { width: 100%; background: var(--paper); color: var(--ink); border: 1px solid var(--line); border-radius: var(--r2); padding: 0 var(--s3); min-height: 44px; font: 400 var(--t-md) var(--sans); transition: border-color .15s, box-shadow .15s; }
textarea { padding: var(--s3); min-height: 120px; resize: vertical; line-height: 1.5; }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--sail-blue); box-shadow: 0 0 0 3px rgba(10,79,160,.18); }
input[type=color] { padding: 4px; cursor: pointer; } input[type=checkbox], input[type=radio] { width: auto; min-height: 0; accent-color: var(--sail-green); }
input:disabled, select:disabled { background: var(--foam); color: var(--ink-3); }
.field { margin-bottom: var(--s4); }
.grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 var(--s4); } @media (max-width: 640px) { .grid2 { grid-template-columns: 1fr; } }
.form-error { background: var(--err-bg); color: var(--err-ink); border: 1px solid var(--err-line); padding: var(--s3) var(--s4); border-radius: var(--r2); margin-bottom: var(--s4); font-weight: 600; font-size: var(--t-sm); }
select { appearance: none; background-image: var(--arrow); background-repeat: no-repeat; background-position: right 12px center; padding-right: 36px; }

/* ===== superfícies ===== */
.card { background: var(--paper); border: 1px solid var(--line-2); border-radius: var(--r3); padding: var(--s5); box-shadow: var(--shadow); }
.card.pad0 { padding: 0; overflow: hidden; }
.section { padding-top: var(--s8); }
.section-head { display: flex; align-items: end; justify-content: space-between; gap: var(--s4); margin-bottom: var(--s5); flex-wrap: wrap; }
.section-head h2 { margin-top: 2px; }
.eyebrow { display: inline-flex; align-items: center; gap: var(--s2); color: var(--green-text); font-weight: 700; font-size: var(--t-sm); margin-bottom: var(--s2); }
.eyebrow .i { color: var(--green-text); }
.pill { display: inline-flex; align-items: center; gap: 6px; font-size: var(--t-xs); font-weight: 700; padding: 3px 10px; border-radius: 999px; background: var(--foam-2); color: var(--ink-2); line-height: 1.5; white-space: nowrap; }
.pill.live { background: var(--live); color: #fff; } .pill.ok { background: var(--ok-bg); color: var(--ok-ink); } .pill.warn { background: var(--sand); color: var(--sand-ink); } .pill.accent { background: var(--sun); color: var(--on-sun); }
.dot { width: 8px; height: 8px; border-radius: 50%; background: currentColor; display: inline-block; animation: pulse 1.4s infinite; }
@keyframes pulse { 50% { opacity: .35; transform: scale(.7); } }
.crest { --s: 52px; width: var(--s); height: var(--s); border-radius: 50%; display: inline-grid; place-items: center; font: 800 calc(var(--s) * .32)/1 var(--display); letter-spacing: 0; flex: none; box-shadow: inset 0 0 0 2px rgba(255,255,255,.25), 0 0 0 1px rgba(4,26,51,.12); overflow: hidden; }
.crest.lg { --s: 112px; } .crest.sm { --s: 48px; } .crest.xl { --s: 180px; }
/* escudo com logo: o logo aparece solto, grande e sem fundo, direto sobre a página (como num placar de TV).
   Sem placa, sem moldura, sem corte. Logos horizontais podem ocupar até 1,6× a altura. */
.crest.logo { --s: 92px; width: auto; min-width: var(--s); height: var(--s); border-radius: 0; background: none; box-shadow: none; overflow: visible; }
.crest.logo.sm { --s: 60px; } .crest.logo.lg { --s: 160px; } .crest.logo.xl { --s: 240px; }
.crest.logo img { height: var(--s); max-height: var(--s); width: auto; max-width: calc(var(--s) * 1.6); object-fit: contain; display: block; }
/* contorno branco nítido (sem brilho, sem fundo) só nos logos cuja borda some no fundo escuro — marcados com .ol pelo
   core.js depois de medir o contraste da borda do desenho (WCAG 1.4.11). Vale no tema escuro e no placar do jogo, que é sempre escuro. */
.crest.logo { --ow: max(1px, calc(var(--s) * .012)); }
:root[data-theme="dark"] .crest.logo.ol img, .scoreboard .crest.logo.ol img, .linescore .crest.logo.ol img { filter: drop-shadow(var(--ow) 0 0 #fff) drop-shadow(calc(var(--ow) * -1) 0 0 #fff) drop-shadow(0 var(--ow) 0 #fff) drop-shadow(0 calc(var(--ow) * -1) 0 #fff); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .crest.logo.ol img { filter: drop-shadow(var(--ow) 0 0 #fff) drop-shadow(calc(var(--ow) * -1) 0 0 #fff) drop-shadow(0 var(--ow) 0 #fff) drop-shadow(0 calc(var(--ow) * -1) 0 #fff); } }
/* em listas e tabelas o escudo ocupa uma coluna de largura fixa: os nomes ficam alinhados */
.tn .crest, .ml-t .crest, .mesa-teams .crest { width: 76px; min-width: 76px; justify-content: center; } .tn .crest.logo img, .ml-t .crest.logo img, .mesa-teams .crest.logo img { max-width: 76px; }
.tn .crest:not(.logo), .ml-t .crest:not(.logo), .mesa-teams .crest:not(.logo) { width: 48px; min-width: 48px; margin: 0 14px; }
@media (max-width: 560px) { .crest.xl { --s: 128px; } .crest.logo.xl { --s: 150px; } .crest.logo.lg { --s: 120px; } .crest.logo { --s: 76px; } .crest.logo.sm { --s: 52px; }
  .tn .crest, .ml-t .crest, .mesa-teams .crest { width: 64px; min-width: 64px; } .tn .crest.logo img, .ml-t .crest.logo img, .mesa-teams .crest.logo img { max-width: 64px; } }
.empty { display: grid; justify-items: center; gap: var(--s3); text-align: center; padding: var(--s7) var(--s4); color: var(--ink-3); }
.empty .big { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: var(--foam-2); color: var(--blue-text); } .empty .big .i { width: 28px; height: 28px; }
.skeleton { height: 160px; border-radius: var(--r3); background: linear-gradient(90deg, var(--foam-2) 25%, var(--skeleton-hi) 50%, var(--foam-2) 75%); background-size: 200% 100%; animation: sh 1.4s infinite; }
@keyframes sh { to { background-position: -200% 0; } }

/* ===== herói ===== */
.hero { position: relative; background: var(--arcs) right -80px bottom -40px/620px auto no-repeat, linear-gradient(158deg, #0f2a33 0%, #0a3354 58%, #004d9d 150%); color: #fff; padding: var(--s8) 0 calc(var(--s8) + 28px); overflow: hidden; isolation: isolate; }
.hero::after { content: ''; position: absolute; left: 0; right: 0; bottom: -1px; height: 28px; background: var(--wave) center/100% 100% no-repeat; z-index: 1; }

.hero h1 { color: #fff; max-width: 14ch; } .hero p.lead { color: rgba(255,255,255,.82); font-size: var(--t-lg); max-width: 46ch; margin: var(--s5) 0 var(--s6); }
.hero .eyebrow { color: var(--sun); } .hero .eyebrow .i { color: var(--sun); }
.hero-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: var(--s7); align-items: center; position: relative; } @media (max-width: 960px) { .hero-grid { grid-template-columns: 1fr; } .hero .sails { opacity: .35; width: 80%; } }
.hero-actions { display: flex; gap: var(--s3); flex-wrap: wrap; }
.hero-facts { display: flex; flex-wrap: wrap; gap: var(--s3) var(--s6); margin-top: var(--s7); padding-top: var(--s5); border-top: 1px solid rgba(255,255,255,.18); }
.hero-facts div { display: grid; } .hero-facts b { font: 800 var(--t-3xl)/1 var(--display); color: var(--sun); font-variant-numeric: tabular-nums; } .hero-facts span { color: rgba(255,255,255,.7); font-size: var(--t-sm); }
.hero-card { background: var(--paper); color: var(--ink); border-radius: var(--r3); box-shadow: 0 30px 60px -24px rgba(0,0,0,.55); overflow: hidden; }
.hero-card > header { display: flex; justify-content: space-between; align-items: center; padding: var(--s4) var(--s5); border-bottom: 1px solid var(--line-2); font-weight: 700; }
.page-head { padding: var(--s7) 0 var(--s2); } .page-head p { color: var(--ink-3); margin-top: var(--s3); }
.band-sea { background: var(--sea-800); color: #fff; } .band-sea h1, .band-sea h2, .band-sea h3 { color: #fff; }
.band-sea .muted { color: rgba(255,255,255,.72); }
.page-hero { background: var(--arcs) right -60px bottom -30px/520px auto no-repeat, linear-gradient(158deg, #0f2a33 0%, #0a3354 70%, #00428a 150%); color: #fff; padding: var(--s7) 0 calc(var(--s7) + 20px); position: relative; }
.page-hero::after { content: ''; position: absolute; left: 0; right: 0; bottom: -1px; height: 22px; background: var(--wave) center/100% 100% no-repeat; }
.page-hero h1 { color: #fff; font-size: clamp(2rem, 4.6vw, 3.25rem); } .page-hero p { color: rgba(255,255,255,.8); }
.page-hero .eyebrow { color: var(--sun); } .page-hero .pill { background: rgba(255,255,255,.14); color: #fff; } .page-hero .pill.accent { background: var(--sun); color: var(--on-sun); }
.page-hero .btn.ghost { color: #fff; border-color: rgba(255,255,255,.4); } .page-hero .btn.ghost:hover { background: rgba(255,255,255,.12); }
.champ-head { display: flex; gap: var(--s5); align-items: center; flex-wrap: wrap; }
.champ-logo { width: 96px; height: 96px; object-fit: cover; border-radius: var(--r3); border: 1px solid var(--line); background: #fff; }
.champ-img { width: 56px; height: 56px; object-fit: cover; border-radius: var(--r2); float: right; margin-left: var(--s3); border: 1px solid var(--line); background: #fff; }
.facts { display: flex; flex-wrap: wrap; gap: var(--s2) var(--s5); margin: var(--s4) 0 0; padding: 0; list-style: none; color: rgba(255,255,255,.82); font-size: var(--t-sm); } .facts li { display: inline-flex; gap: var(--s2); align-items: center; }

/* ===== jogos ===== */
.matches { display: grid; grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)); gap: var(--s4); }
.mcard { display: block; background: var(--paper); border: 1px solid var(--line-2); border-radius: var(--r3); padding: var(--s4) var(--s5) var(--s4); transition: border-color .15s, box-shadow .15s; position: relative; box-shadow: var(--shadow); }
.mcard:hover { border-color: var(--sail-blue); box-shadow: 0 14px 32px -16px rgba(10,79,160,.4); }
.mcard.live { border-color: var(--live); } .mcard.live::before { content: ''; position: absolute; left: 0; top: 18px; bottom: 18px; width: 4px; border-radius: 0 4px 4px 0; background: var(--live); }
.mcard .meta { display: flex; justify-content: space-between; align-items: center; font-size: var(--t-xs); color: var(--ink-3); font-weight: 600; margin-bottom: var(--s4); gap: var(--s2); }
.mrow { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: var(--s3); }
.mteam { display: flex; flex-direction: column; align-items: center; gap: var(--s2); text-align: center; font-weight: 700; font-size: var(--t-sm); line-height: 1.25; min-width: 0; }
.score { font: 800 2.25rem/1 var(--display); display: flex; align-items: center; gap: var(--s2); font-variant-numeric: tabular-nums; letter-spacing: 0; }
.score i { color: var(--ink-3); font-style: normal; font-size: 1.375rem; font-weight: 500; }
.vs { font: 700 var(--t-sm) var(--sans); color: var(--ink-3); text-align: center; } .vs small { display: block; font: 800 var(--t-lg) var(--display); color: var(--ink); }
.mteam.dim { opacity: .62; }
.mcard .foot { display: flex; justify-content: center; gap: var(--s4); margin: var(--s4) 0 0; font-size: var(--t-xs); color: var(--ink-3); }
.mcard .foot span { display: inline-flex; align-items: center; gap: 4px; }
.ticker { display: flex; gap: var(--s3); overflow-x: auto; padding: 4px 0 var(--s2); scrollbar-width: thin; } .ticker .mcard { min-width: 320px; }

/* ===== tabelas ===== */
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: var(--t-sm); font-variant-numeric: tabular-nums; }
th { text-align: center; color: var(--ink-3); font-size: var(--t-xs); font-weight: 700; padding: var(--s3) var(--s2); background: var(--foam); border-bottom: 1px solid var(--line); white-space: nowrap; }
td { padding: 10px var(--s2); text-align: center; border-bottom: 1px solid var(--line-2); white-space: nowrap; }
th.l, td.l { text-align: left; } tr:last-child td { border-bottom: 0; } tbody tr:hover { background: var(--hover); }
td.pts { font: 800 var(--t-md) var(--display); color: var(--blue-text); }
.pos { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: var(--r1); background: var(--foam-2); font: 800 var(--t-xs) var(--display); }
.pos.top { background: var(--sail-green); color: #fff; }
.tn { display: flex; align-items: center; gap: var(--s3); font-weight: 600; }
.form-dots { display: inline-flex; gap: 3px; } .form-dots b { width: 18px; height: 18px; border-radius: 50%; font-size: .625rem; display: grid; place-items: center; color: #fff; }
.form-dots .V { background: var(--sail-green); } .form-dots .D { background: var(--live); } .form-dots .E { background: var(--ink-3); }
tr.vacant td { color: var(--ink-3); } table.st td:first-child { padding-left: var(--s3); }
.zone-legend { display: flex; flex-wrap: wrap; gap: var(--s4); padding: var(--s3) var(--s4); font-size: var(--t-xs); color: var(--ink-3); border-top: 1px solid var(--line-2); } .zone-legend i { display: inline-block; width: 12px; height: 12px; border-radius: 3px; margin-right: 6px; vertical-align: -1px; }
.groups-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(420px, 1fr)); gap: var(--s4); align-items: start; } @media (max-width: 520px) { .groups-grid { grid-template-columns: 1fr; } }
.groups-grid h3 { font-size: var(--t-md); }

/* ===== abas e segmentos ===== */
.tabs { display: flex; gap: var(--s1); overflow-x: auto; margin: var(--s6) 0 var(--s5); border-bottom: 1px solid var(--line); scrollbar-width: none; }
.tab { background: none; border: 0; color: var(--ink-3); font: 600 var(--t-sm) var(--sans); padding: var(--s3) var(--s4); cursor: pointer; border-bottom: 3px solid transparent; white-space: nowrap; margin-bottom: -1px; min-height: 44px; }
.tab:hover { color: var(--ink); } .tab.active { color: var(--ink); border-bottom-color: var(--sail-green); font-weight: 700; }
.seg { display: inline-flex; flex-wrap: wrap; gap: 2px; padding: 3px; background: var(--foam-2); border-radius: 999px; margin: 0 var(--s2) var(--s3) 0; }
.seg button { background: none; border: 0; color: var(--ink-2); font: 600 var(--t-sm) var(--sans); padding: 0 var(--s4); min-height: 36px; border-radius: 999px; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; }
.seg button:hover { color: var(--ink); } .seg button.active { background: var(--paper); color: var(--ink); box-shadow: 0 1px 3px rgba(4,26,51,.18); font-weight: 700; }
.seg.cats { display: flex; border-radius: var(--r2); overflow-x: auto; flex-wrap: nowrap; margin-top: var(--s4); }
.round-nav { display: flex; gap: var(--s2); align-items: center; margin: 0 0 var(--s4); } .round-nav select { width: auto; min-width: 200px; }
.rounds-bar { display: flex; justify-content: space-between; gap: var(--s3); flex-wrap: wrap; align-items: center; margin-bottom: var(--s3); }
.actions { display: flex; gap: var(--s2); flex-wrap: wrap; align-items: center; } .actions select { width: auto; min-width: 180px; }

/* ===== notícias ===== */
.news-grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: var(--s4); } @media (max-width: 900px) { .news-grid { grid-template-columns: 1fr; } }
.news-card { position: relative; border-radius: var(--r3); overflow: hidden; min-height: 220px; display: flex; flex-direction: column; justify-content: flex-end; padding: var(--s5); color: #fff; transition: transform .2s; isolation: isolate; }
.news-card:hover { transform: translateY(-2px); }
.news-card::before { content: ''; position: absolute; inset: 0; z-index: -2; background: var(--g); }
.news-card::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, transparent 20%, rgba(4,26,51,.88)); }
.news-card.big { grid-row: span 2; min-height: 440px; } .news-card.big h3 { font: 800 clamp(1.5rem, 3vw, 2.25rem)/1.08 var(--display); }
.news-card h3 { margin: var(--s3) 0 6px; color: #fff; } .news-card p { color: rgba(255,255,255,.86); font-size: var(--t-sm); margin: 0; }
.news-card .pill { background: rgba(255,255,255,.2); color: #fff; align-self: flex-start; backdrop-filter: blur(4px); } .news-card .muted { color: rgba(255,255,255,.7); }
.news-list { display: grid; gap: var(--s4); grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.article { width: min(720px, 100% - 32px); margin: var(--s7) auto 0; } .article h1 { font-size: clamp(2rem, 5vw, 3rem); margin: var(--s4) 0 var(--s4); }
.article .body p { font-size: var(--t-lg); line-height: 1.75; color: var(--ink-2); max-width: 66ch; } .article .byline { color: var(--ink-3); font-size: var(--t-sm); margin-bottom: var(--s5); }
.article .hero-img { height: 240px; border-radius: var(--r3); margin: var(--s5) 0 var(--s6); background: var(--g); }

/* ===== campeonatos ===== */
.champ-card { display: block; border-radius: var(--r3); padding: var(--s5); border: 1px solid var(--line-2); background: var(--paper); position: relative; overflow: hidden; transition: border-color .15s, box-shadow .15s; box-shadow: var(--shadow); min-height: 190px; }
.champ-card::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 6px; background: linear-gradient(90deg, var(--sail-green) 0 38%, var(--sail-blue) 38% 76%, var(--ball) 76%); }
.champ-card:hover { border-color: var(--sail-blue); box-shadow: 0 14px 32px -16px rgba(10,79,160,.4); }
.champ-card h3 { font: 800 var(--t-xl)/1.12 var(--display); margin: var(--s4) 0 var(--s2); }
.champ-meta { display: flex; gap: var(--s2) var(--s4); flex-wrap: wrap; color: var(--ink-3); font-size: var(--t-sm); margin-top: var(--s4); } .champ-meta span { display: inline-flex; align-items: center; gap: 6px; }
.champ-card.admin { min-height: 0; } .champ-card.archived { opacity: .6; } .champ-card .stretch { position: absolute; inset: 0; z-index: 1; } .champ-card .actions { margin-top: var(--s4); }
.cta-card { background: var(--sand); border-color: var(--sand-line); display: flex; gap: var(--s5); align-items: center; justify-content: space-between; flex-wrap: wrap; padding: var(--s6); } .cta-card h2 { color: var(--ink); } .cta-card .muted { color: var(--sand-ink); }

/* ===== placar da partida ===== */
.scoreboard { padding: var(--s6) var(--s5); text-align: center; border-radius: var(--r3); background: var(--arcs) center bottom/700px auto no-repeat, linear-gradient(180deg, #0f2a33, #000c26); color: #fff; margin-top: var(--s5); border-top: 6px solid var(--sail-green); position: relative; }
.scoreboard.live { border-top-color: var(--live); }
.scoreboard .muted, .scoreboard .small { color: rgba(255,255,255,.75); } .scoreboard a { text-decoration: underline; text-underline-offset: 3px; }
.sb-row { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); align-items: center; gap: var(--s4); margin-top: var(--s5); }
.sb-team { display: flex; flex-direction: column; align-items: center; gap: var(--s3); font: 800 clamp(1rem, 2.6vw, 1.5rem)/1.1 var(--display); }
.sb-score { font: 800 clamp(3.5rem, 11vw, 6.5rem)/1 var(--display); display: flex; gap: var(--s4); align-items: center; color: var(--sun); font-variant-numeric: tabular-nums; letter-spacing: 0; } .sb-score i { color: rgba(255,255,255,.4); font-style: normal; font-size: .5em; font-weight: 500; }
.clock { display: flex; justify-content: center; gap: var(--s2); align-items: center; margin-top: var(--s2); font: 800 var(--t-2xl) var(--display); color: #fff; letter-spacing: .04em; font-variant-numeric: tabular-nums; }
.scoreboard .pill { background: rgba(255,255,255,.16); color: #fff; } .scoreboard .pill.live { background: var(--live); } .scoreboard .pill.accent { background: var(--sun); color: var(--on-sun); } .scoreboard .pill.warn { background: var(--sand); color: var(--sand-ink); }
.linescore { margin: var(--s5) auto 0; max-width: 620px; text-align: left; } .linescore table { color: #fff; } .linescore th { background: transparent; color: rgba(255,255,255,.7); border-color: rgba(255,255,255,.18); } .linescore td { border-color: rgba(255,255,255,.12); } .linescore th.cur, .linescore td.cur { color: var(--sun); font-weight: 800; } .linescore td.pts { color: var(--sun); }
.linescore .tn { color: #fff; }
.chips { display: flex; gap: var(--s4); flex-wrap: wrap; justify-content: center; margin-top: var(--s4); } .chip-group { display: flex; gap: 6px; align-items: center; }
.chip { display: inline-block; font-size: var(--t-xs); font-weight: 700; padding: 3px 10px; border-radius: 999px; background: rgba(255,255,255,.14); color: #fff; } .chip.bonus { background: var(--sun); color: var(--on-sun); }
.banner { display: block; margin: 0 0 var(--s4); } .banner img { width: 100%; max-height: 200px; object-fit: cover; border-radius: var(--r3); border: 1px solid var(--line); }

/* ===== lance a lance ===== */
.timeline { display: grid; gap: var(--s2); }
.ev { display: grid; grid-template-columns: 64px 40px 1fr auto; gap: var(--s3); align-items: center; background: var(--paper); border: 1px solid var(--line-2); border-radius: var(--r2); padding: var(--s3) var(--s4); animation: slide .3s ease; }
.ev.home { border-left: 4px solid var(--c, var(--sail-blue)); } .ev.away { border-right: 4px solid var(--c, var(--sail-blue)); }
.ev .min { display: grid; line-height: 1.15; font: 800 var(--t-md) var(--display); color: var(--ink); font-variant-numeric: tabular-nums; } .ev .min b { font: 700 var(--t-xs) var(--sans); color: var(--ink-3); }
.ev .tt b { display: block; } .ev .tt span { color: var(--ink-3); font-size: var(--t-sm); }
.ev.sys { background: transparent; border-style: dashed; color: var(--ink-3); }
.ev-end { display: flex; align-items: center; gap: var(--s2); }
.runscore { font: 800 var(--t-md) var(--display); background: var(--foam-2); border-radius: var(--r1); padding: 2px 10px; font-variant-numeric: tabular-nums; }
.tok { display: inline-grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; font: 800 var(--t-sm)/1 var(--display); background: var(--foam-2); color: var(--ink-2); }
.tok.pts { background: var(--sail-green); color: #fff; } .tok.reb { background: var(--sail-blue); color: #fff; } .tok.foul { background: var(--sand); color: var(--sand-ink); } .tok.dq { background: var(--live); color: #fff; } .tok .i { width: 18px; height: 18px; }
@keyframes slide { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
.lineups { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s4); } @media (max-width: 640px) { .lineups { grid-template-columns: 1fr; } } .lineups > *, .mesa-grid > *, .card { min-width: 0; }
tr.out td { opacity: .5; } tr.tot td { border-top: 1px solid var(--line); font-weight: 800; }
.fouls { display: inline-flex; gap: 3px; } .fouls i { width: 9px; height: 9px; border-radius: 50%; border: 1.5px solid var(--ink-3); display: inline-block; } .fouls i.on { background: var(--live); border-color: var(--live); }
.sumula { background: #fff; color: #111; border-radius: var(--r2); padding: var(--s6); border: 1px solid var(--line); } .sumula h2, .sumula h3 { color: #111; } .sumula table td, .sumula table th { color: #111; border-color: #ddd; background: transparent; } .sumula .muted { color: #555; }
.sumula .linescore { max-width: none; margin-top: 0; } .sumula .linescore table, .sumula .linescore .tn, .sumula .linescore td { color: #111; } .sumula .linescore th { color: #444; } .sumula .chip { background: #eee; color: #333; }

/* ===== painéis ===== */
.layout-side { display: grid; grid-template-columns: 240px 1fr; gap: var(--s5); margin-top: var(--s6); align-items: start; } @media (max-width: 820px) { .layout-side { grid-template-columns: 1fr; } }
.row-item { display: flex; align-items: center; gap: var(--s4); padding: var(--s3) 0; border-bottom: 1px solid var(--line-2); flex-wrap: wrap; } .row-item:last-child { border-bottom: 0; }
.row-item .grow { flex: 1; min-width: 180px; } .row-item .actions { display: flex; gap: 6px; flex-wrap: wrap; } .row-item.nw { flex-wrap: nowrap; } .row-item.nw .grow { min-width: 0; }
.auth-box { width: min(440px, 100% - 32px); margin: var(--s7) auto 0; }
.stats-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--s3); margin: 0 0 var(--s5); } @media (max-width: 640px) { .stats-strip { grid-template-columns: repeat(2, 1fr); } }
.stats-strip.six { grid-template-columns: repeat(6, 1fr); } @media (max-width: 900px) { .stats-strip.six { grid-template-columns: repeat(3, 1fr); } } @media (max-width: 520px) { .stats-strip.six { grid-template-columns: repeat(2, 1fr); } }
.stat { background: var(--paper); border: 1px solid var(--line-2); border-radius: var(--r2); padding: var(--s4); box-shadow: var(--shadow); display: grid; gap: 2px; }
.stat b { font: 800 var(--t-2xl)/1 var(--display); color: var(--ink); font-variant-numeric: tabular-nums; } .stat span { color: var(--ink-3); font-size: var(--t-sm); display: inline-flex; align-items: center; gap: 6px; }
.stat .i { color: var(--blue-text); }
.crumbs { display: flex; gap: var(--s2); align-items: center; flex-wrap: wrap; padding-top: var(--s5); color: var(--ink-3); font-size: var(--t-sm); } .crumbs a:hover { color: var(--blue-text); text-decoration: underline; } .crumbs b { color: var(--ink); } .crumbs .i { width: 14px; height: 14px; }
dl.info { display: grid; grid-template-columns: max-content 1fr; gap: var(--s2) var(--s5); margin: var(--s4) 0 var(--s5); } dl.info dt { color: var(--ink-3); font-weight: 600; font-size: var(--t-sm); } dl.info dd { margin: 0; }
code { background: var(--foam); padding: 2px 8px; border-radius: var(--r1); font-size: var(--t-sm); word-break: break-all; border: 1px solid var(--line-2); }
hr { border: 0; border-top: 1px solid var(--line); margin: var(--s5) 0; }
.draw-box { display: flex; justify-content: space-between; gap: var(--s4); align-items: center; flex-wrap: wrap; }
.group-head { display: flex; justify-content: space-between; align-items: center; gap: var(--s3); padding: var(--s3) var(--s4); border-bottom: 1px solid var(--line-2); }
.grp-name { background: none; border: 0; color: var(--ink); font: 800 var(--t-md) var(--display); cursor: pointer; padding: 4px 6px; border-radius: var(--r1); display: inline-flex; gap: 6px; align-items: center; } .grp-name:hover { background: var(--foam); }
.slot-sel { display: block; margin-top: 6px; min-height: 34px; padding: 0 28px 0 8px; font-size: var(--t-xs); max-width: 220px; }
.amatch { display: grid; grid-template-columns: 1fr auto; gap: 6px var(--s4); align-items: center; padding: var(--s4) 0; border-bottom: 1px solid var(--line-2); }
.am-teams { display: flex; gap: var(--s3); align-items: center; flex-wrap: wrap; font-weight: 700; } .am-t { display: inline-flex; align-items: center; gap: var(--s2); }
.amscore { font: 800 var(--t-xl) var(--display); color: var(--blue-text); } .am-meta { grid-column: 1; } .amatch .actions { grid-row: 1 / span 2; grid-column: 2; justify-content: flex-end; }
@media (max-width: 760px) { .amatch { grid-template-columns: 1fr; } .amatch .actions { grid-row: auto; grid-column: 1; justify-content: flex-start; } }
input.mini { width: 70px; padding: 0 6px; min-height: 36px; text-align: center; }
.zone-row { display: grid; grid-template-columns: 80px auto 80px 56px 1fr; gap: var(--s2); align-items: center; margin-bottom: var(--s2); } .zone-row input[type=color] { height: 44px; }
.reorder-row { display: flex; gap: 6px; margin-bottom: var(--s2); }
.seg-radio { display: flex; gap: var(--s2); flex-wrap: wrap; } .seg-radio label { display: flex; align-items: center; gap: var(--s2); font-weight: 500; color: var(--ink); background: var(--paper); border: 1px solid var(--line); border-radius: var(--r2); padding: var(--s3) var(--s4); cursor: pointer; margin: 0; }
.sponsors { margin-top: var(--s8); padding-top: var(--s5); border-top: 1px solid var(--line); } .sponsor-row { display: flex; flex-wrap: wrap; gap: var(--s5); align-items: center; margin-top: var(--s4); } .sponsor-row img { height: 56px; width: auto; max-width: 160px; object-fit: contain; background: #fff; border-radius: var(--r2); padding: 6px; border: 1px solid var(--line-2); }
.sponsor-admin { display: flex; flex-wrap: wrap; gap: var(--s3); margin: var(--s3) 0; } .sponsor-admin .sp { display: grid; gap: 4px; justify-items: center; padding: var(--s3); background: var(--foam); border-radius: var(--r2); border: 1px solid var(--line-2); } .sponsor-admin img { height: 48px; width: auto; max-width: 120px; object-fit: contain; background: #fff; border-radius: var(--r1); padding: 4px; }
.avatar { width: 28px; height: 28px; border-radius: 50%; object-fit: cover; }
.check-list { display: grid; gap: 4px; margin-top: var(--s2); }
.check { display: flex; gap: var(--s3); align-items: center; padding: var(--s2) var(--s3); background: var(--foam); border-radius: var(--r2); cursor: pointer; font-size: var(--t-sm); font-weight: 500; color: var(--ink); margin: 0; }
.check input { width: 18px; height: 18px; flex: none; } .check b { color: var(--blue-text); min-width: 24px; display: inline-block; }
.check.big { padding: var(--s3) var(--s4); align-items: flex-start; font-size: var(--t-md); } .check.big span { display: grid; } .check.big small { font-size: var(--t-sm); font-weight: 400; }
.upload-row { display: flex; gap: var(--s4); align-items: center; flex-wrap: wrap; } .upload-preview { width: 84px; height: 84px; border-radius: var(--r2); background: var(--foam); border: 1px dashed var(--line); display: grid; place-items: center; overflow: hidden; font-size: var(--t-xs); color: var(--ink-3); text-align: center; } .upload-preview img { width: 100%; height: 100%; object-fit: cover; } .upload.is-logo .upload-preview { width: 120px; height: 120px; background: repeating-conic-gradient(var(--foam) 0 25%, transparent 0 50%) 0 0 / 16px 16px; border-style: solid; padding: 8px; } .upload.is-logo .upload-preview img { object-fit: contain; } .upload.busy { opacity: .5; pointer-events: none; }

/* calendário */
.cal-head { display: flex; align-items: center; justify-content: space-between; margin: var(--s4) 0 var(--s3); } .cal-head h3 { font: 800 var(--t-xl) var(--display); text-transform: capitalize; }
.cal { border: 1px solid var(--line); border-radius: var(--r3); overflow: hidden; background: var(--paper); }
.cal-dow, .cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); } .cal-dow span { text-align: center; padding: var(--s2) 0; font-size: var(--t-xs); font-weight: 700; color: var(--ink-3); background: var(--foam); border-bottom: 1px solid var(--line); }
.cal-cell { min-height: 92px; padding: 6px; border-right: 1px solid var(--line-2); border-bottom: 1px solid var(--line-2); font-size: var(--t-xs); display: grid; align-content: start; gap: 3px; } .cal-cell:nth-child(7n) { border-right: 0; } .cal-cell.empty { background: var(--foam); }
.cal-cell b { color: var(--ink-3); } .cal-cell.has b { color: var(--green-text); }
.cal-cell a { display: block; background: var(--tint-green); border-left: 3px solid var(--sail-green); border-radius: var(--r1); padding: 2px 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: 600; } .cal-cell a:hover { background: var(--sail-green); color: #fff; }
@media (max-width: 640px) { .cal-cell { min-height: 64px; padding: 3px; } .cal-cell a { font-size: .625rem; padding: 1px 3px; } }

/* ===== modal ===== */
dialog#modal { border: 0; border-radius: var(--r3); background: var(--paper); color: var(--ink); padding: 0; width: min(560px, 100% - 24px); max-height: 92vh; box-shadow: 0 30px 90px rgba(4,26,51,.5); overflow: hidden; }
dialog#modal.wide { width: min(780px, 100% - 24px); } dialog#modal::backdrop { background: rgba(4,26,51,.6); backdrop-filter: blur(3px); }
dialog#modal form { display: flex; flex-direction: column; max-height: 92vh; }
dialog#modal header { display: flex; justify-content: space-between; align-items: center; gap: var(--s3); padding: var(--s4) var(--s5); border-bottom: 1px solid var(--line-2); } dialog#modal header h3 { font-size: var(--t-lg); }
.modal-body { padding: var(--s4) var(--s5); overflow-y: auto; } dialog#modal footer { display: flex; justify-content: flex-end; gap: var(--s2); padding: var(--s3) var(--s5); border-top: 1px solid var(--line-2); background: var(--foam); }
#modal-err { padding: 0 var(--s5); } #modal-err .form-error { margin-top: var(--s4); }

/* ===== mesa ===== */
.mesa-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: var(--s4); margin-top: var(--s5); } @media (max-width: 920px) { .mesa-grid { grid-template-columns: 1fr; } }
.ctrl { display: flex; gap: var(--s2); flex-wrap: wrap; margin-bottom: var(--s4); }
.type-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--s2); margin-bottom: var(--s3); } @media (max-width: 560px) { .type-grid { grid-template-columns: repeat(3, 1fr); } }
.type-btn { background: var(--paper); border: 1px solid var(--line); color: var(--ink); border-radius: var(--r2); padding: var(--s3) var(--s1); cursor: pointer; font: 600 var(--t-xs) var(--sans); display: grid; gap: 4px; place-items: center; min-height: 64px; }
.type-btn span { font: 800 var(--t-lg)/1 var(--display); display: grid; place-items: center; min-height: 24px; color: var(--blue-text); } .type-btn span .i { width: 22px; height: 22px; }
.type-btn.pts span { color: var(--green-text); font-size: var(--t-xl); } .type-btn:hover:not([disabled]) { border-color: var(--sail-blue); } .type-btn.active { border-color: var(--sail-green); background: var(--tint-green); }
.type-btn[disabled] { opacity: .4; cursor: not-allowed; }
.team-toggle { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s2); margin-bottom: var(--s3); }
.team-toggle button { display: flex; gap: var(--s3); align-items: center; justify-content: center; background: var(--paper); border: 2px solid var(--line); color: var(--ink); border-radius: var(--r2); padding: var(--s2); font: 700 var(--t-sm) var(--sans); cursor: pointer; min-height: 52px; } .team-toggle button.active { border-color: var(--sail-green); background: var(--tint-green); }
.player-chips { display: grid; grid-template-columns: repeat(auto-fill, minmax(92px, 1fr)); gap: var(--s2); margin-bottom: var(--s3); }
.pchip { display: grid; justify-items: center; gap: 1px; background: var(--paper); border: 2px solid var(--line); border-radius: var(--r2); padding: var(--s2) var(--s1); color: var(--ink); cursor: pointer; font: 600 var(--t-xs) var(--sans); min-height: 64px; } .pchip b { font: 800 var(--t-xl)/1 var(--display); color: var(--blue-text); } .pchip small { color: var(--ink-3); font-size: .6875rem; }
.pchip.sel { border-color: var(--sail-green); background: var(--tint-green); } .pchip.out { opacity: .4; text-decoration: line-through; }
.quick-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: var(--s2); } @media (max-width: 640px) { .quick-grid { grid-template-columns: repeat(3, 1fr); } }
.inline-form { display: flex; gap: var(--s2); align-items: center; flex-wrap: wrap; margin: 0 0 var(--s4); padding: var(--s3); background: var(--foam); border-radius: var(--r2); } .inline-form input { min-height: 38px; } .inline-form label { margin: 0; }
.roster-line { gap: var(--s2); } .roster-line .num { width: 64px; min-height: 36px; padding: 0 6px; } .roster-line .grow { flex: 1; } .roster-line .cap { display: flex; align-items: center; gap: 4px; margin: 0; font-weight: 800; } .roster-line .cap input { width: 16px; height: 16px; }
.roster-step { margin-top: var(--s2); }

/* ===== avisos e rodapé ===== */
#toasts { position: fixed; right: var(--s4); bottom: var(--s4); display: grid; gap: var(--s2); z-index: 60; }
.toast { background: var(--sea-800); color: #fff; border-left: 4px solid var(--sail-green); padding: var(--s3) var(--s5); border-radius: var(--r2); font-weight: 600; font-size: var(--t-sm); box-shadow: 0 10px 40px rgba(4,26,51,.4); animation: slide .25s; max-width: 340px; } .toast.err { border-left-color: var(--live); }
.footer { background: var(--sea-900); color: rgba(255,255,255,.78); padding: var(--s7) 0 var(--s6); margin-top: var(--s7); position: relative; }
.footer::before { content: ''; position: absolute; left: 0; right: 0; top: -27px; height: 28px; background: var(--wave-sea) center/100% 100% no-repeat; }
.footer .wrap { display: flex; justify-content: space-between; gap: var(--s6); flex-wrap: wrap; } .footer nav { display: flex; gap: var(--s2) var(--s5); flex-wrap: wrap; align-items: start; } .footer nav a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; } .footer a:hover { color: var(--sun); }
.footer .brand { display: flex; gap: var(--s5); align-items: center; flex-wrap: wrap; } .footer .brand img { height: 54px; width: auto; } .footer .brand p { margin: 0; max-width: 380px; font-size: var(--t-sm); }

@media print { body { background: #fff; } .topbar, .footer, .tabs, .no-print, #toasts, .scoreboard, .page-hero { display: none !important; } .sumula { padding: 0; border: 0; } .linescore { max-width: none; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }

/* cabeçalho de seção: ícone discreto, sem rótulo acima */
.section-head h2 { display: flex; align-items: center; gap: var(--s3); }
.h-ic { display: inline-grid; place-items: center; width: 36px; height: 36px; border-radius: var(--r2); background: var(--sea-800); color: var(--sun); flex: none; } .h-ic .i { width: 20px; height: 20px; }
/* herói: velas visíveis acima do cartão */
.hero-grid { align-items: center; }
@media (max-width: 960px) { .hero-card { transform: none; }  }
/* lista compacta de resultados */
.mlines { display: grid; }
.mline { display: grid; grid-template-columns: 172px 1fr auto 1fr 96px; gap: var(--s3); align-items: center; padding: var(--s3) var(--s5); border-bottom: 1px solid var(--line-2); transition: background .15s; }
.mline:last-child { border-bottom: 0; } .mline:hover { background: var(--hover); }
.ml-date { font-size: var(--t-xs); color: var(--ink-3); font-weight: 600; }
.ml-info { display: grid; gap: 5px; justify-items: start; min-width: 0; }
.ml-cat { max-width: 100%; background: var(--sail-blue); color: #fff; font: 800 var(--t-xs)/1.2 var(--display); letter-spacing: .03em; padding: 3px 8px; border-radius: var(--r1); overflow-wrap: anywhere; }
.ml-t { display: flex; align-items: center; gap: var(--s3); min-width: 0; } .ml-t.home { justify-content: flex-end; text-align: right; } .ml-t b { font-weight: 600; color: var(--ink-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .ml-t.win b { color: var(--ink); font-weight: 800; }
.ml-score { font: 800 var(--t-xl)/1 var(--display); display: inline-flex; gap: var(--s2); align-items: center; min-width: 88px; justify-content: center; font-variant-numeric: tabular-nums; } .ml-score i { color: var(--ink-3); font-style: normal; font-weight: 500; font-size: var(--t-md); } .ml-score small { font: 700 var(--t-sm) var(--sans); color: var(--ink-3); }
.ml-tag { text-align: right; }
@media (max-width: 720px) { .mline { grid-template-columns: 1fr auto 1fr; row-gap: 4px; padding: var(--s3) var(--s4); } .ml-info { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; } .ml-tag { grid-column: 1 / -1; text-align: left; } .ml-t b { white-space: normal; } }

.page-head.compact { padding: var(--s6) 0 var(--s4); } .page-head.compact h1 { font-size: var(--t-3xl); }

.team-toggle .chip { background: var(--foam-2); color: var(--ink-2); } .team-toggle .chip.bonus { background: var(--sun); color: var(--on-sun); }

/* celular: herói mais compacto */
.nav a { min-height: 44px; }
@media (max-width: 640px) {
  .hero { padding: var(--s7) 0 calc(var(--s7) + 28px); }
  .hero-actions .btn { flex: 1 1 100%; }
  .hero-facts { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s4); margin-top: var(--s6); }
  .hero p.lead { font-size: var(--t-md); }
}

/* ===== identidade LCB · ASPAB · SLBE: fontes e cores das logos ===== */
.stat b { font-size: var(--t-3xl); } .score { font-size: 3rem; } .ml-score { font-size: 2rem; } .amscore { font-size: 1.75rem; } .pchip b { font-size: 1.75rem; } .clock { font-size: 2.25rem; }
.sb-score { font-size: clamp(4.75rem, 14vw, 8.5rem); } .vs small { font-size: var(--t-xl); } .runscore { font-size: var(--t-lg); } .tok { font-size: var(--t-md); }
.btn { font-family: var(--sans); letter-spacing: .01em; } .tab, .seg button { font-family: var(--sans); }
.brand-tag { font-family: var(--brand); font-style: italic; font-weight: 800; letter-spacing: -.01em; text-transform: lowercase; }
.footer .brand-tag { color: var(--sun); font-size: var(--t-lg); display: block; margin-bottom: 2px; }
.eyebrow { font-family: var(--brand); font-style: italic; font-weight: 600; font-size: .75rem; letter-spacing: 0; }
.hero p.lead { font-size: var(--t-xl); line-height: 1.4; }

/* silhueta do Ceará no fundo da página (opaca) */
body::before { content: ''; position: fixed; right: 1.5vw; bottom: 1vh; width: min(44vw, 540px); aspect-ratio: 467/457; background: var(--ceara) center/contain no-repeat; opacity: var(--ceara-op); pointer-events: none; z-index: -1; }
main, .footer, .topbar { position: relative; }

/* renda de bilro: faixa decorativa */
.lace { height: 14px; background: var(--lace); -webkit-mask: var(--lace-mask) 0 0/28px 14px repeat-x; mask: var(--lace-mask) 0 0/28px 14px repeat-x; opacity: .9; }
.footer .lace { margin-bottom: var(--s6); background: var(--sun); opacity: .75; }
.card-lace::after { content: ''; display: block; height: 14px; margin: var(--s5) calc(var(--s5) * -1) calc(var(--s5) * -1); background: var(--sun); opacity: .5; -webkit-mask: var(--lace-mask) 0 0/28px 14px repeat-x; mask: var(--lace-mask) 0 0/28px 14px repeat-x; }

/* botão de tema */
.theme-btn { min-width: 44px; padding: 0 var(--s3); }
.topbar { border-bottom: 1px solid rgba(255,255,255,.08); }
.empty .big { background: var(--foam-2); }
:root[data-theme="dark"] .mcard.live, :root[data-theme="dark"] .mline.live { background: rgba(200,56,26,.08); }
:root[data-theme="dark"] .pill { background: var(--foam-2); }
:root[data-theme="dark"] .pill.accent { background: var(--sun); color: #0f2a33; }
:root[data-theme="dark"] .pill.live { background: var(--live); color: #fff; }
:root[data-theme="dark"] .pill.ok { background: var(--ok-bg); color: var(--ok-ink); }
:root[data-theme="dark"] .pill.warn { background: var(--sand); color: var(--sand-ink); }
:root[data-theme="dark"] .btn.ghost:hover { background: var(--hover); }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .mcard.live, :root:not([data-theme="light"]) .mline.live { background: rgba(200,56,26,.08); }
  :root:not([data-theme="light"]) .pill { background: var(--foam-2); }
  :root:not([data-theme="light"]) .pill.accent { background: var(--sun); color: #0f2a33; }
  :root:not([data-theme="light"]) .pill.live { background: var(--live); color: #fff; }
  :root:not([data-theme="light"]) .pill.ok { background: var(--ok-bg); color: var(--ok-ink); }
  :root:not([data-theme="light"]) .pill.warn { background: var(--sand); color: var(--sand-ink); }
  :root:not([data-theme="light"]) .btn.ghost:hover { background: var(--hover); }
}

/* silhueta do Ceará nos cabeçalhos de mar (sempre branca) */
.page-hero::before { content: ''; position: absolute; right: 4%; top: 12%; bottom: 14%; aspect-ratio: 467/457; background: var(--ceara-white) center/contain no-repeat; opacity: .10; pointer-events: none; }
.page-hero > .wrap { position: relative; }
@media (max-width: 720px) { .page-hero::before { right: -8%; opacity: .08; } }

.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.champ-card .ct { font: 800 var(--t-xl)/1.1 var(--display); text-transform: uppercase; margin: var(--s4) 0 var(--s2); }
h2.sub { font: 700 var(--t-lg)/1.2 var(--display); text-transform: none; letter-spacing: .01em; }

/* alvos de toque e leitura */
.back, .crumb-line a { display: inline-flex; align-items: center; min-height: 44px; }
.crumb-line { display: flex; flex-wrap: wrap; gap: var(--s1) var(--s2); align-items: center; justify-content: center; }
.check input[type=checkbox], .check input[type=radio], .check-list input[type=checkbox] { width: 24px; height: 24px; }
@media (max-width: 960px) {  }

/* gravura (xilogravura) da jangada no herói, com o cartão do jogo sobreposto */
.hero-aside { position: relative; padding: 0 0 64px 28px; }
.gravura { display: block; width: 100%; height: auto; border-radius: 6px; box-shadow: 0 26px 50px -22px rgba(0,0,0,.65); transform: rotate(1.4deg); }
.hero-aside .hero-card { position: absolute; left: 0; bottom: 0; width: min(80%, 400px); transform: none; }
@media (max-width: 960px) { .hero-aside { padding: 0 0 0 0; } .gravura { transform: none; max-width: 560px; margin-inline: auto; } .hero-aside .hero-card { position: relative; width: 100%; margin-top: -36px; } }
/* herói: a gravura é o destaque; o cartão do jogo fica logo abaixo com pequena sobreposição */
.hero-grid { grid-template-columns: .95fr 1.05fr; }
.hero-aside { padding: 0; display: grid; }
.hero-aside .hero-card { position: relative; left: auto; bottom: auto; width: min(88%, 420px); margin: -34px 0 0 -18px; z-index: 1; }
@media (max-width: 960px) { .hero-grid { grid-template-columns: 1fr; } .hero-aside .hero-card { width: 100%; margin: -34px 0 0; } }
/* gravura sem papel: só a tinta clara sobre o mar do herói (negativo de xilogravura) */
.gravura { color: #f3f6f4; border-radius: 0; box-shadow: none; transform: none; filter: drop-shadow(0 14px 22px rgba(0, 12, 38, .35)); }
/* gravura como marca d'água: translúcida, grande e atrás do conteúdo do herói */
.hero .gravura { position: absolute; right: -3%; top: 50%; transform: translateY(-50%); width: min(700px, 62%); height: auto; max-width: none; margin: 0; opacity: .15; filter: none; z-index: -1; pointer-events: none; }
.hero-aside { padding: 0; display: block; align-self: center; }
.hero-aside .hero-card { margin: 0 0 0 auto; width: min(100%, 420px); }
@media (max-width: 960px) { .hero .gravura { width: 120%; right: -10%; top: 46%; opacity: .12; } .hero-aside .hero-card { margin: var(--s5) 0 0; width: 100%; } }
.hero-aside { position: static; }
.hero .gravura { right: 15%; width: min(720px, 60%); top: 48%; }
@media (max-width: 960px) { .hero .gravura { right: -10%; width: 120%; } }

/* ===== súmula oficial LCB/SLBE (A4): folha oficial + dados sobrepostos ===== */
.sumula-bar { display: flex; gap: var(--s2); flex-wrap: wrap; margin: var(--s4) 0; }
.sheet { position: relative; container-type: inline-size; width: min(100%, 860px); aspect-ratio: 595.2 / 841.8; background: #fff; margin: 0 auto; box-shadow: var(--shadow); color: #0b2a5b; }
.sheet .base { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.ov { --pt: calc(100cqw / 595.2); position: absolute; left: calc(var(--x) * var(--pt)); top: calc(var(--y) * var(--pt)); width: calc(var(--w) * var(--pt)); height: calc(var(--h) * var(--pt)); display: flex; align-items: center; font-family: 'Montserrat', 'Arial Narrow', Arial, sans-serif; font-weight: 600; font-size: calc(7.4 * var(--pt)); line-height: 1; color: #0b2a5b; white-space: nowrap; overflow: hidden; letter-spacing: .01em; }
.ov.c { justify-content: center; } .ov.r { justify-content: flex-end; } .ov.b { font-weight: 800; } .ov.sm { font-size: calc(6.6 * var(--pt)); } .ov.big { font-size: calc(9.5 * var(--pt)); } .ov.tf { color: #a01818; }
.ov.xmark { background: linear-gradient(to top right, transparent calc(50% - .7px), #0b2a5b calc(50% - .7px), #0b2a5b calc(50% + .7px), transparent calc(50% + .7px)), linear-gradient(to bottom right, transparent calc(50% - .7px), #0b2a5b calc(50% - .7px), #0b2a5b calc(50% + .7px), transparent calc(50% + .7px)); }
.ov.mk-1 { background: linear-gradient(to top right, transparent calc(50% - .7px), #0b2a5b calc(50% - .7px), #0b2a5b calc(50% + .7px), transparent calc(50% + .7px)); }
.ov.mk-2::after, .ov.mk-3::after { content: ''; display: block; margin: auto; border-radius: 50%; }
.ov.mk-2::after { width: calc(7.4 * var(--pt)); height: calc(7.4 * var(--pt)); background: #0b2a5b; }
.ov.mk-3::after { width: calc(10 * var(--pt)); height: calc(10 * var(--pt)); border: calc(1.1 * var(--pt)) solid #0b2a5b; }
.ov.pend { border-bottom: calc(1.7 * var(--pt)) solid #0b2a5b; }
@media print {
  body::before { display: none; } main { padding: 0; min-height: 0; } .sumula-page { width: 100%; margin: 0; padding: 0; }
  .sheet { width: 210mm; height: 297mm; aspect-ratio: auto; margin: 0; box-shadow: none; break-after: page; }
  .sheet .base { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .ov { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
}

/* ===== matérias: capa e galeria ===== */
.gallery.busy { opacity: .5; pointer-events: none; }
.gallery-items { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: var(--s3); }
.gallery-item { display: grid; gap: 6px; padding: 6px; border: 1px solid var(--line); border-radius: var(--r2); background: var(--surface); position: relative; }
.gallery-item img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 6px; }
.gallery-item .btn { position: absolute; top: 10px; right: 10px; padding: 4px; background: var(--surface); }
.news-card .cover { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.article .hero-img.photo { height: auto; background: none; } .article .hero-img.photo img { width: 100%; max-height: 460px; object-fit: cover; border-radius: var(--r3); display: block; }
.photo-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: var(--s4); margin: var(--s4) 0 var(--s6); }
.photo-gallery figure { margin: 0; } .photo-gallery img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: var(--r2); display: block; }
.photo-gallery figcaption { font-size: var(--t-sm); color: var(--ink-3); margin-top: 6px; }

/* ===== transmissão ao vivo (YouTube) ===== */
.stream { margin-top: var(--s5); border-radius: var(--r3); overflow: hidden; background: #000; aspect-ratio: 16 / 9; box-shadow: var(--shadow); }
.stream iframe { width: 100%; height: 100%; border: 0; display: block; }

/* ===== idades: distribuição por idade ===== */
.age-bars { display: grid; gap: 8px; margin-top: var(--s3); }
.age-row { display: grid; grid-template-columns: 64px 1fr 28px; gap: 10px; align-items: center; font-size: var(--t-sm); font-variant-numeric: tabular-nums; }
.age-bar { height: 14px; border-radius: 999px; background: var(--foam-2); overflow: hidden; } .age-bar i { display: block; height: 100%; border-radius: 999px; background: var(--sail-green); }
.age-row.out .age-bar i { background: var(--live); } .age-row.out .age-l { color: var(--live); font-weight: 700; }
.photographer-form { display: flex; gap: var(--s3); align-items: end; flex-wrap: wrap; width: 100%; padding: var(--s3) 0 0; border-top: 1px dashed var(--line); margin-top: var(--s3); } .photographer-form .field { margin: 0; } .photographer-form [hidden] { display: none; }
.row-item { flex-wrap: wrap; }

/* ===== barra de progresso (qualquer requisição que demore) ===== */
#progress { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 300; background: linear-gradient(90deg, var(--sun), var(--sail-green)); transform: scaleX(0); transform-origin: left; opacity: 0; pointer-events: none; }
#progress.on { opacity: 1; animation: prog 2.4s cubic-bezier(.1, .7, .3, 1) forwards; }
@keyframes prog { to { transform: scaleX(.92); } }
@media (prefers-reduced-motion: reduce) { #progress.on { animation: none; transform: scaleX(.6); } }

/* ===== segurança ===== */
.recovery { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; margin-top: var(--s3); } .recovery code, .secret code { background: var(--foam-2); border: 1px dashed var(--line); border-radius: var(--r2); padding: 8px 12px; font: 700 1rem/1 'Barlow Condensed', monospace; letter-spacing: .08em; color: var(--ink); text-align: center; }
.secret { display: flex; gap: var(--s3); align-items: center; flex-wrap: wrap; margin: var(--s2) 0; } .secret code { font-size: 1.25rem; }
.steps { padding-left: 1.2rem; display: grid; gap: var(--s3); } .steps li { line-height: 1.5; }
.consent-box { margin-top: var(--s4); padding: var(--s4); border: 1px solid var(--line); border-radius: var(--r2); background: var(--foam); }

/* ===== termos de participação ===== */
.terms-box { max-height: 260px; overflow: auto; padding: var(--s4); border: 1px solid var(--line); border-radius: var(--r2); background: var(--foam); font-size: var(--t-sm); line-height: 1.55; }
.terms-box:focus-visible { outline: 3px solid var(--sun); outline-offset: 2px; }
.terms-box h5 { margin: var(--s3) 0 var(--s2); font: 800 1rem/1.2 var(--display); text-transform: uppercase; letter-spacing: .02em; } .terms-box h5:first-child { margin-top: 0; } .terms-box p { margin: 0 0 var(--s2); }

/* ===== declarações (modelo ASPAB, A4) ===== */
.decl-row { border: 1px solid var(--line); border-radius: var(--r2); padding: var(--s3); margin: 0 0 var(--s3); min-width: 0; } .decl-row .btn { margin-top: var(--s2); }
.decl-pick { width: 100%; text-align: left; background: none; border: 0; border-bottom: 1px solid var(--line-2); cursor: pointer; font: inherit; color: inherit; } .decl-pick:hover { background: var(--hover); }
.decl-wrap { container-type: inline-size; width: min(100%, 900px); margin: 0 auto; }
.decl-sheet { --u: calc(100cqw / 210); position: relative; background: #fff; color: #000; font-family: 'Montserrat', Arial, Helvetica, sans-serif; width: 100%; min-height: calc(var(--u) * 297); box-shadow: var(--shadow); overflow: hidden; }
.decl-head { position: absolute; top: 0; left: 0; width: 100%; height: auto; display: block; } .decl-foot { position: absolute; bottom: 0; left: 0; width: 100%; height: auto; display: block; }
.decl-wm { position: absolute; left: 50%; top: 50%; width: calc(var(--u) * 150); transform: translate(-50%, -50%); opacity: .13; pointer-events: none; }
.decl-body { position: relative; padding: calc(var(--u) * 41) calc(var(--u) * 25.4) calc(var(--u) * 40); font-size: calc(var(--u) * 4.233); line-height: 1.17; }
.decl-body h1 { font: 700 calc(var(--u) * 7.76) / 1.1 Arial, Helvetica, sans-serif; text-align: center; margin: 0 0 calc(var(--u) * 7); color: #000; text-transform: none; letter-spacing: 0; }
.decl-body p { margin: 0 0 calc(var(--u) * 6.3); color: #000; font-size: inherit; line-height: inherit; max-width: none; } .decl-body p.j { text-align: justify; } .decl-date { text-align: right; }
.decl-item { break-inside: avoid; } .decl-sign { text-align: center; margin-top: calc(var(--u) * 4); break-inside: avoid; } .decl-sign p { margin: 0; } .decl-sign img { display: block; margin: calc(var(--u) * 2) auto calc(var(--u) * 1); height: calc(var(--u) * 20); width: auto; } .decl-noSign { height: calc(var(--u) * 22); }
.decl-code { position: absolute; right: calc(var(--u) * 9); bottom: calc(var(--u) * 27); width: calc(var(--u) * 78); margin: 0 !important; font-size: calc(var(--u) * 2.5) !important; line-height: 1.25 !important; color: #1b1b1b !important; text-align: right; z-index: 2; }
@media print {
  .decl-wrap { width: 210mm; } .decl-sheet { --u: 1mm; box-shadow: none; print-color-adjust: exact; -webkit-print-color-adjust: exact; min-height: 297mm; }
  .decl-head, .decl-foot { position: fixed; } .decl-wm { position: fixed; }
}

/* ===== banco de atletas ===== */
.bank-list { display: grid; gap: 2px; max-height: 50vh; overflow: auto; border: 1px solid var(--line); border-radius: var(--r2); padding: var(--s2); }
.bank-line { display: grid; grid-template-columns: 1fr 84px; gap: var(--s3); align-items: start; padding: var(--s2); border-radius: var(--r1); } .bank-line:hover { background: var(--hover); } .bank-line[hidden] { display: none; } .bank-line .num { width: 84px; }

/* mesa: modo de contingência (sem internet) */
.net-bar { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); flex-wrap: wrap; margin: var(--s3) 0; padding: var(--s3) var(--s4); border-radius: var(--r2); border: 1px solid var(--sand-line); background: var(--sand); color: var(--sand-ink); position: sticky; top: 8px; z-index: 20; }
.net-bar > div:first-child { display: grid; gap: 2px; min-width: 0; }
.net-bar b { font-size: var(--t-md); }
.net-bar span { font-size: var(--t-sm); }
.net-bar .actions { display: flex; gap: var(--s2); flex-wrap: wrap; }
.net-bar.err { background: var(--err-bg); color: var(--err-ink); border-color: var(--err-line); }
.net-bar.sync { background: var(--foam); color: var(--sea-800); border-color: var(--foam-2); }
.ev .pill.warn { margin-left: var(--s2); font-size: var(--t-xs); }

/* escala de arbitragem — grade por dia: uma linha por jogo, uma coluna por função */
.esc-toolbar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: var(--s3) var(--s4); padding: var(--s4); margin-bottom: var(--s3); }
.esc-filters { display: flex; flex-wrap: wrap; gap: var(--s3); align-items: flex-end; }
.esc-filters .field { margin: 0; min-width: 150px; } .esc-filters .field:first-child { min-width: 240px; }
.esc-actions { display: flex; flex-wrap: wrap; gap: var(--s2); align-items: center; } .esc-actions .seg { margin: 0; }
.esc-count { display: inline-grid; place-items: center; min-width: 22px; height: 20px; padding: 0 6px; border-radius: 999px; background: var(--paper); font-size: var(--t-xs); }
.seg button.active .esc-count { background: var(--foam-2); }
.esc-summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: var(--s3); margin-bottom: var(--s5); }
.esc-summary > div { background: var(--paper); border: 1px solid var(--line); border-radius: var(--r2); padding: var(--s3) var(--s4); display: grid; gap: 2px; }
.esc-summary b { font: 700 var(--t-xl) var(--display); color: var(--ink); } .esc-summary span { font-size: var(--t-sm); color: var(--ink-2); }
.esc-summary .ok { border-left: 4px solid var(--sail-green); } .esc-summary .warn { border-left: 4px solid var(--sun); } .esc-summary .bad { border-left: 4px solid var(--ball); }
.esc-day { margin-bottom: var(--s5); }
.esc-day > header { display: flex; align-items: center; gap: var(--s3); margin-bottom: var(--s2); }
.esc-day h2 { font-size: var(--t-lg); margin: 0; }
.esc-date { display: grid; place-items: center; width: 52px; height: 52px; border-radius: var(--r2); background: var(--sea-800); color: #fff; line-height: 1; }
.esc-date b { font: 700 1.375rem var(--display); } .esc-date span { font-size: var(--t-xs); text-transform: uppercase; letter-spacing: .06em; opacity: .85; }
.esc-table { width: 100%; border-collapse: separate; border-spacing: 0; min-width: 960px; table-layout: fixed; }
.esc-table th:first-child { width: 25%; } .esc-table th:last-child { width: 58px; }
.esc-table th { font-size: var(--t-xs); text-transform: uppercase; letter-spacing: .05em; color: var(--ink-2); padding: var(--s2) var(--s2); border-bottom: 1px solid var(--line); white-space: nowrap; background: var(--foam); }
.esc-table td { padding: var(--s2) 4px; border-bottom: 1px solid var(--line-2); vertical-align: middle; text-align: left; }
.esc-table th { text-align: left; padding-left: 6px; } .esc-table td.esc-game { padding-left: var(--s3); }
.esc-table tr:last-child td { border-bottom: 0; }
.esc-table tbody tr:hover td { background: var(--hover); }
.esc-table td.esc-game { overflow: hidden; }
.esc-g { display: flex; gap: var(--s3); align-items: center; } .esc-teams { min-width: 0; line-height: 1.3; } .esc-teams b { display: block; font-size: var(--t-sm); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .esc-teams .small { font-size: var(--t-xs); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.esc-time { font: 700 var(--t-md) var(--display); background: var(--foam); border-radius: var(--r1); padding: 4px 8px; min-width: 58px; text-align: center; }
.esc-table select { width: 100%; min-width: 0; font-size: var(--t-xs); padding: 6px 22px 6px 6px; min-height: 34px; text-overflow: ellipsis; background-position: right 6px center; }
.esc-table td.set select { border-color: var(--sail-green); background-color: color-mix(in srgb, var(--sail-green) 7%, var(--paper)); }
.esc-table td.conflict select { border-color: var(--ball); background-color: color-mix(in srgb, var(--ball) 9%, var(--paper)); }
.esc-warn { display: flex; align-items: center; gap: 3px; margin-top: 3px; color: var(--ball); font-size: var(--t-xs); font-weight: 700; white-space: nowrap; }
.esc-warn svg { width: 12px; height: 12px; }
.esc-table td.esc-status { text-align: center; white-space: nowrap; padding-right: var(--s2); }
.esc-table tr.locked td { opacity: .7; }
.esc-load summary { cursor: pointer; } .esc-load-list { display: flex; flex-wrap: wrap; gap: var(--s2); margin-top: var(--s3); }
.esc-load-list span { background: var(--foam); border-radius: 999px; padding: 4px 12px; font-size: var(--t-sm); } .esc-load-list b { color: var(--sail-green-ink); margin-right: 4px; }
/* celular: cada jogo vira um cartão com as funções em lista */
@media (max-width: 760px) {
  .esc-table { min-width: 0; } .esc-table thead { display: none; }
  .esc-table, .esc-table tbody, .esc-table tr, .esc-table td { display: block; width: 100%; }
  .esc-table tr { padding: var(--s3); border-bottom: 1px solid var(--line); } .esc-table td { border: 0; padding: 4px 0; }
  .esc-table td:not(.esc-game):not(.esc-status) { display: grid; grid-template-columns: 110px 1fr; align-items: center; gap: var(--s2); }
  .esc-table td:not(.esc-game):not(.esc-status)::before { content: attr(data-label); font-size: var(--t-sm); font-weight: 600; color: var(--ink-2); }
  .esc-table td .esc-warn { grid-column: 2; }
  .esc-status { text-align: left; } .esc-game { min-width: 0; }
  .esc-filters .field, .esc-filters .field:first-child { min-width: 0; flex: 1 1 140px; }
}
.escala-print { display: none; }
@media print {
  .escala-print { display: block; color: #000; font: 400 9pt/1.3 Archivo, Arial, sans-serif; } .esc-day, .esc-summary, .esc-load { display: none !important; }
  .ep-cab { display: flex; align-items: center; gap: 12px; padding-bottom: 6px; margin-bottom: 8px; border-bottom: 2px solid #ef8021; }
  .ep-cab img { height: 48px; width: auto; } .ep-cab h2 { margin: 0; font: 800 15pt/1.1 Archivo, Arial, sans-serif; letter-spacing: 0; text-transform: none; color: #0f2a33; }
  .ep-cab p { margin: 2px 0 0; font-size: 9pt; color: #333; } .ep-cab small { margin-left: auto; font-size: 7.5pt; color: #555; align-self: flex-end; }
  .ep-dia { margin: 0 0 8px; } .ep-dia h3 { margin: 8px 0 4px; font: 700 10.5pt/1.2 Archivo, Arial, sans-serif; letter-spacing: 0; text-transform: none; color: #0f2a33; break-after: avoid; }
  .ep-dia h3 span { font-weight: 400; font-size: 8pt; color: #555; margin-left: 6px; }
  .escala-print table { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: 8.5pt; }
  .escala-print thead { display: table-header-group; } .escala-print tr { break-inside: avoid; }
  .escala-print th { padding: 3px 4px; background: #e9eef0; border: 0.6pt solid #8a9a9f; font: 700 7.5pt/1.2 Archivo, Arial, sans-serif; text-transform: uppercase; letter-spacing: .02em; text-align: left; color: #0f2a33; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .escala-print td { padding: 3px 4px; border: 0.6pt solid #b5c1c4; vertical-align: top; text-align: left; overflow-wrap: anywhere; }
  .escala-print tbody tr:nth-child(even) td { background: #f6f8f9; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .escala-print td b { font-weight: 700; } .escala-print td small { display: block; margin-top: 1px; font-size: 7pt; color: #555; }
  .escala-print th, .escala-print td { white-space: normal !important; overflow-wrap: break-word; word-break: normal; hyphens: auto; }
  .ep-hora { font-weight: 800; white-space: nowrap !important; } .ep-vazio { color: #999; }
  .ep-rod { margin-top: 10px; padding-top: 4px; border-top: 0.6pt solid #b5c1c4; font-size: 7pt; color: #555; }
}

/* mesa: lista de jogos organizada por dia */
.mesa-toolbar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--s3); padding: var(--s3) var(--s4); margin-bottom: var(--s5); }
.mesa-toolbar .seg { margin: 0; } .mesa-filters { display: flex; flex-wrap: wrap; gap: var(--s2); } .mesa-filters select { width: auto; min-width: 200px; }
.mesa-live-title { display: flex; align-items: center; gap: var(--s2); font-size: var(--t-xl); margin: 0 0 var(--s3); }
.mesa-live-title .dot { width: 10px; height: 10px; border-radius: 50%; background: var(--ball); animation: pulse 1.4s infinite; }
.esc-date.today { background: var(--sail-green); }
.mesa-list { overflow: hidden; }
.mesa-row { display: grid; grid-template-columns: 64px minmax(150px, 1.1fr) minmax(280px, 2.4fr) minmax(0, 1fr) auto; align-items: center; gap: var(--s3); padding: var(--s3) var(--s4); border-bottom: 1px solid var(--line-2); color: var(--ink); text-decoration: none; }
.mesa-row:last-child { border-bottom: 0; } .mesa-row:hover { background: var(--hover); }
.mesa-row.live { box-shadow: inset 4px 0 0 var(--ball); }
.mesa-time { font: 700 var(--t-md) var(--display); background: var(--foam); border-radius: var(--r1); padding: 4px 6px; text-align: center; }
.mesa-cat { display: grid; min-width: 0; line-height: 1.25; } .mesa-cat b { font-size: var(--t-sm); } .mesa-cat small { color: var(--ink-2); font-size: var(--t-xs); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mesa-teams { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: var(--s2); min-width: 0; }
.mesa-teams .t { display: flex; align-items: center; gap: var(--s2); min-width: 0; } .mesa-teams .t:first-child { justify-content: flex-end; text-align: right; } .mesa-teams .t:first-child .crest { order: 2; }
.mesa-teams .t b { font-size: var(--t-sm); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mesa-teams .sc { font: 700 var(--t-md) var(--display); color: var(--ink-2); white-space: nowrap; }
.mesa-venue { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .mesa-go { justify-self: end; }
@media (max-width: 860px) {
  .mesa-row { grid-template-columns: 56px 1fr auto; grid-template-areas: "time cat go" "teams teams teams" "venue venue venue"; row-gap: var(--s2); }
  .mesa-time { grid-area: time; } .mesa-cat { grid-area: cat; } .mesa-go { grid-area: go; } .mesa-teams { grid-area: teams; } .mesa-venue { grid-area: venue; }
  .mesa-filters, .mesa-filters select { width: 100%; min-width: 0; }
  .mesa-teams .t b { white-space: normal; overflow: visible; font-size: var(--t-xs); line-height: 1.2; } .mesa-teams .t { gap: 6px; }
}

/* card de jogo = ingresso: categoria em destaque, data em bloco, picote e faixa do local */
.mcard { padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.mc-head { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--s3); padding: var(--s4) var(--s5) 0; }
.mc-what { display: grid; gap: 6px; justify-items: start; min-width: 0; }
.mc-cat { display: inline-block; max-width: 100%; background: var(--sail-blue); color: #fff; font: 800 var(--t-md)/1.15 var(--display); letter-spacing: .02em; padding: 5px 11px; border-radius: var(--r1); overflow-wrap: anywhere; }
.mc-sub { font-size: var(--t-xs); color: var(--ink-2); font-weight: 600; line-height: 1.3; }
.mc-date { flex: none; display: grid; justify-items: center; min-width: 58px; padding: 5px 8px 6px; border-radius: var(--r2); background: var(--foam); border: 1px solid var(--line-2); line-height: 1; }
.mc-date small { font: 700 var(--t-xs)/1 var(--sans); color: var(--ball); text-transform: capitalize; }
.mc-date b { font: 800 1.375rem/1.05 var(--display); color: var(--ink); font-variant-numeric: tabular-nums; margin-top: 3px; }
.mc-date.none { font-size: var(--t-xs); color: var(--ink-3); font-weight: 600; min-width: 0; }
.mcard .mrow { padding: var(--s4) var(--s5); flex: 1; }
.mc-center { display: grid; justify-items: center; gap: 6px; }
.mcard .vs small { font-size: 1.6rem; }
/* picote: linha tracejada com os dois "furos" do ingresso */
.mc-foot { position: relative; display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: var(--s2) var(--s4); padding: var(--s3) var(--s5); background: var(--foam); border-top: 2px dashed var(--line); }
.mc-foot::before, .mc-foot::after { content: ''; position: absolute; top: -9px; width: 16px; height: 16px; border-radius: 50%; background: var(--foam); box-shadow: inset 0 1px 0 var(--line-2); }
.mc-foot::before { left: -9px; } .mc-foot::after { right: -9px; }
.mc-venue { display: inline-flex; align-items: center; gap: 6px; color: var(--ink); min-width: 0; }
.mc-venue svg { color: var(--ball); flex: none; width: 18px; height: 18px; }
.mc-venue b { font: 700 var(--t-md)/1.2 var(--display); letter-spacing: .02em; text-transform: uppercase; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mc-tv { display: inline-flex; align-items: center; gap: 4px; font-size: var(--t-xs); font-weight: 700; color: var(--live); }
.mcard.live .mc-foot { background: rgba(200,56,26,.08); }
@media (max-width: 560px) { .mc-head { padding: var(--s3) var(--s4) 0; } .mcard .mrow { padding: var(--s3) var(--s4); } .mc-foot { padding: var(--s3) var(--s4); } }

/* início: filtro de categoria dos jogos */
.home-filter { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2) var(--s3); margin: 0 0 var(--s5); padding: var(--s3) var(--s4); background: var(--paper); border: 1px solid var(--line-2); border-radius: var(--r3); }
.home-filter label { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; font-size: var(--t-sm); color: var(--ink); margin: 0; }
.home-filter label svg { color: var(--sail-blue); width: 18px; height: 18px; }
.home-filter select { width: auto; min-width: 260px; flex: 0 1 320px; }
@media (max-width: 560px) { .home-filter select { min-width: 0; flex: 1 1 100%; } }

/* classificação: escudos compactos para a tabela ficar fácil de ler; o selo "sorteio" fica ao lado do nome */
td .tn .crest.logo { --s: 34px; } td .tn .crest:not(.logo) { --s: 30px; }
td .tn .crest, td .tn .crest:not(.logo) { width: 44px; min-width: 44px; margin: 0; }
td .tn .crest.logo img { max-width: 44px; }
td.l > .tn { display: inline-flex; vertical-align: middle; }
td.l > .tn + .pill { vertical-align: middle; margin-left: 6px; }
@media (max-width: 560px) { td .tn .crest.logo { --s: 30px; } td .tn .crest, td .tn .crest:not(.logo) { width: 38px; min-width: 38px; } td .tn .crest.logo img { max-width: 38px; } }

/* placar do jogo: informações em blocos e escudos que cabem na coluna (celular) */
.sb-info { display: grid; justify-items: center; gap: 8px; }
.sb-champ { font-size: var(--t-sm); color: rgba(255,255,255,.8); }
.sb-when { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 18px; font-size: var(--t-sm); font-weight: 700; color: #fff; }
.sb-when span { display: inline-flex; align-items: center; gap: 6px; } .sb-when svg { width: 16px; height: 16px; color: var(--sun); }
.sb-team .crest.logo { max-width: 100%; } .sb-team .crest.logo img { max-width: 100%; }
@media (max-width: 560px) {
  .scoreboard { padding: var(--s5) var(--s3); }
  .sb-row { gap: var(--s2); }
  .sb-team .crest.logo, .sb-team .crest.xl { --s: 72px; }
  .sb-team .crest.logo { min-width: 0; }
  .sb-team { font-size: var(--t-sm); gap: var(--s2); text-align: center; }
  .sb-score { font-size: clamp(2.75rem, 13vw, 3.5rem); gap: var(--s2); }
}

/* banco de atletas: busca + categoria */
.bank-filters { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--s3) var(--s4); margin-bottom: var(--s3); }
.bank-filters .field { margin: 0; flex: 0 1 320px; min-width: 220px; }
.bank-count { margin: 0 0 10px; }
@media (max-width: 560px) { .bank-filters .field { flex: 1 1 100%; } }

/* lance a lance: histórico do atleta no momento do lance */
.ev-hist { display: flex; flex-wrap: wrap; gap: 4px 6px; margin-top: 5px; }
.ev-hist b { font: 600 var(--t-xs)/1 var(--sans); color: var(--ink-2); background: var(--foam); border: 1px solid var(--line-2); border-radius: 999px; padding: 3px 8px; }
.ev-hist b.on { color: var(--ink); font-weight: 800; border-color: var(--sail-blue); }
.ev-hist b.warn { background: var(--sand); color: var(--sand-ink); border-color: transparent; }
.ev-hist b.out { background: var(--live); color: #fff; border-color: transparent; }

/* ===== mesa: lances rápidos — as duas equipes lado a lado (camisa = atleta + equipe) ===== */
.court { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s3); margin-bottom: var(--s3); }
.court-side { min-width: 0; border-top: 4px solid var(--tc); background: var(--foam); border-radius: 0 0 var(--r2) var(--r2); padding: var(--s2); }
.court-side header { display: flex; align-items: center; gap: var(--s2); margin-bottom: var(--s2); min-height: 32px; }
.court-side header b { font: 800 var(--t-md)/1 var(--display); letter-spacing: .02em; }
.court-side header .chip { margin-left: auto; background: var(--foam-2); color: var(--ink-2); } .court-side header .chip.bonus { background: var(--sun); color: var(--on-sun); }
.court-side header .crest.logo { --s: 28px; } .court-side header .crest:not(.logo) { --s: 26px; }
.jerseys { display: grid; grid-template-columns: repeat(auto-fill, minmax(64px, 1fr)); gap: 6px; }
.jersey { position: relative; display: grid; justify-items: center; align-content: center; gap: 2px; min-height: 68px; padding: 6px 2px 7px; background: var(--paper); color: var(--ink); border: 2px solid var(--line-2); border-radius: 12px 12px 8px 8px; cursor: pointer; touch-action: manipulation; transition: transform .08s, border-color .12s; }
.jersey b { font: 800 1.7rem/1 var(--display); font-variant-numeric: tabular-nums; }
.jersey span { font: 600 .68rem/1.1 var(--sans); color: var(--ink-2); max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: 0 2px; }
.jersey .pips { display: flex; gap: 3px; margin-top: 2px; } .jersey .pips em { width: 6px; height: 6px; border-radius: 50%; background: var(--line); }
.jersey .pips em.on { background: var(--ink-2); } .jersey.f4 .pips em.on { background: var(--sun); }
.jersey:active:not([disabled]) { transform: scale(.96); }
.jersey.sel { border-color: var(--tc, var(--sail-blue)); box-shadow: 0 0 0 3px color-mix(in srgb, var(--tc, var(--sail-blue)) 35%, transparent); background: color-mix(in srgb, var(--tc, var(--sail-blue)) 14%, var(--paper)); }
.court-side .jersey.sel { --tc: inherit; }
.jersey.out { opacity: .38; cursor: not-allowed; } .jersey.out b { text-decoration: line-through; } .jersey.out .pips em.on { background: var(--live); }
.jersey:focus-visible { outline: 3px solid var(--sun); outline-offset: 2px; }
/* barra de lances: mostra quem está selecionado e fica sempre à mão (fixa no rodapé do celular) */
.shot-bar { background: var(--paper); border: 1px solid var(--line-2); border-radius: var(--r2); padding: var(--s2); display: grid; gap: var(--s2); }
.shot-bar.armed { border-color: var(--tc); box-shadow: inset 4px 0 0 var(--tc); }
.sb-who { min-height: 24px; display: flex; align-items: baseline; gap: 6px; padding: 0 4px; font: 700 var(--t-md)/1.2 var(--sans); }
.sb-who b { font: 800 var(--t-lg)/1 var(--display); } .sb-who small { color: var(--ink-2); font-weight: 600; }
.shot-bar .quick-grid .type-btn { min-height: 58px; touch-action: manipulation; } .shot-bar .type-btn.foul span { color: var(--live); }
.form-title { margin: 0 0 8px; font: 700 var(--t-sm)/1.2 var(--sans); color: var(--ink-2); }
.team-toggle.compact button { padding: 6px var(--s2); font-size: var(--t-xs); }
@media (max-width: 640px) {
  .court { gap: var(--s2); } .court-side { padding: 6px; }
  .jerseys { grid-template-columns: repeat(3, 1fr); gap: 5px; } .jersey { min-height: 62px; } .jersey b { font-size: 1.45rem; }
  .shot-bar { position: sticky; bottom: 8px; z-index: 20; box-shadow: 0 12px 30px -10px rgba(0,0,0,.45); }
  .shot-bar.armed { box-shadow: inset 4px 0 0 var(--tc), 0 12px 30px -10px rgba(0,0,0,.45); }
  .shot-bar .quick-grid { grid-template-columns: repeat(6, 1fr); gap: 4px; } .shot-bar .type-btn { min-height: 52px; padding: 6px 0; font-size: .62rem; } .shot-bar .type-btn span { font-size: var(--t-md); }
}
@media (prefers-reduced-motion: reduce) { .jersey { transition: none; } .jersey:active:not([disabled]) { transform: none; } }

/* ===== mesa: tudo a partir da camisa — faltas especiais, LL, substituição, tempo e técnica de banco ===== */
.court-side.dim { opacity: .45; }
.jersey.pick-out { border-style: dashed; border-color: var(--tc); }
.team-ops { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-top: 6px; }
.tbtn { display: inline-flex; align-items: center; justify-content: center; gap: 5px; min-height: 40px; padding: 4px 6px; background: transparent; color: var(--ink); border: 1px solid var(--line); border-radius: 8px; font: 700 var(--t-xs)/1.1 var(--sans); cursor: pointer; touch-action: manipulation; }
.tbtn small { color: var(--ink-2); font-weight: 600; } .tbtn svg { width: 16px; height: 16px; } .tbtn[disabled] { opacity: .4; cursor: not-allowed; }
.tbtn:hover:not([disabled]) { border-color: var(--tc); }
.sb-top { display: flex; align-items: center; justify-content: space-between; gap: var(--s2); flex-wrap: wrap; }
.ll-seg { display: inline-flex; align-items: center; gap: 2px; background: var(--foam); border-radius: 999px; padding: 3px; }
.ll-seg span { font: 700 var(--t-xs)/1 var(--sans); color: var(--ink-2); padding: 0 6px 0 8px; }
.ll-seg button { min-width: 34px; height: 30px; border: 0; border-radius: 999px; background: transparent; color: var(--ink); font: 800 var(--t-sm)/1 var(--display); cursor: pointer; }
.ll-seg button.on { background: var(--ink); color: var(--paper); }
.quick-more { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.mbtn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 42px; padding: 4px; background: transparent; color: var(--ink); border: 1px solid var(--line); border-radius: var(--r2); font: 600 var(--t-xs)/1.1 var(--sans); cursor: pointer; touch-action: manipulation; }
.mbtn b { font: 800 var(--t-md)/1 var(--display); color: var(--live); } .mbtn svg { width: 16px; height: 16px; color: var(--blue-text); }
.mbtn[disabled] { opacity: .4; cursor: not-allowed; } .mbtn:hover:not([disabled]) { border-color: var(--sail-blue); }
.shot-bar.sub { display: flex; align-items: center; justify-content: space-between; gap: var(--s2); }
.shot-bar.sub .sb-who { gap: 8px; align-items: center; } .shot-bar.sub .sb-who svg { width: 20px; height: 20px; color: var(--tc); }
.note-line { display: flex; gap: var(--s2); margin-top: var(--s3); } .note-line input { flex: 1; min-width: 0; }
@media (max-width: 640px) {
  .quick-more { grid-template-columns: repeat(4, 1fr); gap: 4px; } .mbtn { min-height: 44px; font-size: .62rem; flex-direction: column; gap: 2px; }
  .tbtn { font-size: .62rem; gap: 3px; padding: 4px 3px; } .tbtn svg { width: 13px; height: 13px; }
}

/* tabela da categoria: equipe fora da tabela e "Adicionar equipe" no grupo */
.out-of-table { display: flex; gap: var(--s3); align-items: flex-start; margin-bottom: var(--s4); border-color: var(--sun); background: color-mix(in srgb, var(--sun) 10%, var(--paper)); }
.out-of-table > svg { color: var(--sun); flex: none; width: 22px; height: 22px; margin-top: 2px; } .out-of-table div { display: grid; gap: 4px; }
.group-foot { display: flex; flex-wrap: wrap; gap: var(--s2); align-items: center; padding: 10px 14px; }
.add-team { display: inline-flex; align-items: center; gap: 6px; margin: 0; flex: 1 1 220px; } .add-team svg { color: var(--sail-green); flex: none; }
.add-team select { width: 100%; min-width: 0; }

/* ===== mesa: cronômetro na barra, ajustes rápidos, marca d'água, inclusão de atleta e rubrica ===== */
.ctrl-clock { display: inline-flex; align-items: center; padding: 4px 14px; border-radius: var(--r2); background: var(--foam); font: 800 1.6rem/1 var(--display); font-variant-numeric: tabular-nums; color: var(--ink-2); }
.ctrl-clock.run { color: var(--ink); box-shadow: inset 0 -3px 0 var(--live); }
.nudge { display: flex; flex-wrap: wrap; gap: 6px; margin: var(--s3) 0 0; } .nudge .btn { min-width: 64px; font-variant-numeric: tabular-nums; }
.mesa-grid { grid-template-columns: 1.6fr 1fr; } @media (max-width: 920px) { .mesa-grid { grid-template-columns: 1fr; } }
.court-side { position: relative; overflow: hidden; isolation: isolate; }
.court-side .wm { position: absolute; inset: 50% auto auto 50%; width: 78%; max-height: 82%; object-fit: contain; transform: translate(-50%, -46%); opacity: .08; pointer-events: none; z-index: -1; filter: grayscale(.2); }
.team-ops { grid-template-columns: repeat(3, 1fr); }
.tok.logo { background: var(--paper); border: 1px solid var(--line-2); overflow: hidden; padding: 3px; }
.tok.logo img { width: 100%; height: 100%; object-fit: contain; display: block; }
.roster-line .num { width: 58px; flex: none; }
.add-player { display: flex; align-items: center; gap: 6px; margin: 8px 0 0; } .add-player svg { color: var(--sail-green); flex: none; } .add-player select { flex: 1; min-width: 0; }
.sig-pad { display: block; width: 100%; height: 160px; background: #fff; border: 1px dashed var(--line); border-radius: var(--r2); touch-action: none; cursor: crosshair; margin: var(--s2) 0; }
.sign-row { display: flex; flex-wrap: wrap; gap: var(--s2); align-items: center; } .sign-row input { flex: 1 1 220px; min-width: 0; }
.sign-done { display: flex; align-items: center; gap: var(--s4); margin: var(--s3) 0; } .sign-done img { width: 220px; max-width: 50%; background: #fff; border-radius: var(--r1); border: 1px solid var(--line-2); }
.sign-done div { display: grid; gap: 4px; }
@media (max-width: 640px) { .team-ops .tbtn { flex-direction: column; gap: 1px; } }
.sheet .ov.sig { object-fit: contain; object-position: left center; padding: 0; }

/* ===== cor da camisa de cada equipe ===== */
.kit-pick { position: relative; display: inline-block; }
.kit-pick > summary { list-style: none; display: inline-flex; align-items: center; gap: 6px; cursor: pointer; padding: 3px 8px 3px 4px; border: 1px solid var(--line); border-radius: 999px; font: 600 var(--t-xs)/1 var(--sans); color: var(--ink-2); }
.kit-pick > summary::-webkit-details-marker { display: none; }
.kit-pick > summary:hover { border-color: var(--tc, var(--sail-blue)); }
.kit-sw { width: 18px; height: 18px; border-radius: 50%; background: var(--c); box-shadow: inset 0 0 0 1px rgba(0,0,0,.25), 0 0 0 1px rgba(255,255,255,.2); }
.kit-sw.none { background: repeating-linear-gradient(45deg, var(--line) 0 3px, transparent 3px 6px); }
.kit-grid { position: absolute; z-index: 30; top: calc(100% + 6px); left: 0; display: grid; grid-template-columns: repeat(5, 30px); gap: 6px; padding: 10px; background: var(--paper); border: 1px solid var(--line-2); border-radius: var(--r2); box-shadow: 0 14px 30px -12px rgba(0,0,0,.45); }
.court-side .kit-pick .kit-grid { left: auto; right: 0; }
.kit-opt { width: 30px; height: 30px; border-radius: 50%; border: 0; cursor: pointer; background: var(--c); box-shadow: inset 0 0 0 1px rgba(0,0,0,.25); }
.kit-opt.on { box-shadow: 0 0 0 2px var(--paper), 0 0 0 4px var(--ink); }
.kit-opt.clear { background: var(--foam); color: var(--ink-2); font: 700 var(--t-md)/1 var(--sans); }
.kit-opt:focus-visible { outline: 3px solid var(--sun); outline-offset: 2px; }
.court-side header .kit-pick { margin-left: 4px; }
.lineup-head { display: flex; align-items: center; justify-content: space-between; gap: var(--s2); margin-bottom: 6px; }
/* camisa do atleta na cor do uniforme */
.jersey.has-jc { background: var(--jc); color: var(--jt); border-color: color-mix(in srgb, var(--jt) 22%, var(--jc)); }
.jersey.has-jc span { color: var(--jt); opacity: .85; }
.jersey.has-jc .pips em { background: color-mix(in srgb, var(--jt) 28%, transparent); }
.jersey.has-jc .pips em.on { background: var(--jt); } .jersey.has-jc.f4 .pips em.on { background: var(--sun); }
.jersey.has-jc.sel { border-color: var(--tc, var(--sail-blue)); box-shadow: 0 0 0 3px color-mix(in srgb, var(--tc, var(--sail-blue)) 45%, transparent); background: var(--jc); }
@media (max-width: 640px) { .kit-l { display: none; } .kit-pick > summary { padding: 3px; } }

/* ===== mesa: tudo ao alcance sem rolar — barra de lances sempre visível e painel mais compacto ===== */
.shot-bar { position: sticky; bottom: 10px; z-index: 20; box-shadow: 0 -10px 28px -14px rgba(0,0,0,.55), 0 12px 30px -10px rgba(0,0,0,.45); }
.shot-bar.armed { box-shadow: inset 4px 0 0 var(--tc), 0 -10px 28px -14px rgba(0,0,0,.55); }
.jerseys { grid-template-columns: repeat(auto-fill, minmax(58px, 1fr)); gap: 5px; }
.jersey { min-height: 56px; padding: 4px 2px 5px; gap: 1px; }
.jersey b { font-size: 1.45rem; } .jersey span { font-size: .64rem; } .jersey .pips em { width: 5px; height: 5px; }
.court-side header { margin-bottom: 6px; min-height: 28px; }
.court { margin-bottom: var(--s2); }
.nudge { align-items: center; margin: var(--s2) 0 var(--s3); }
.clock-more { position: relative; } .clock-more > summary { list-style: none; } .clock-more > summary::-webkit-details-marker { display: none; }
.clock-more[open] > summary { border-color: var(--sail-blue); }
.clock-more .inline-form { position: absolute; z-index: 25; top: calc(100% + 6px); left: 0; margin: 0; padding: 10px 12px; background: var(--paper); border: 1px solid var(--line-2); border-radius: var(--r2); box-shadow: 0 14px 30px -12px rgba(0,0,0,.45); white-space: nowrap; }
@media (max-width: 640px) { .clock-more .inline-form { left: auto; right: 0; } }

/* barra de controle da mesa presa no topo (abaixo do menu do site): placar, cronômetro, controles e ajustes */
.ctrl-bar.is-live { position: sticky; top: var(--topbar-h, 68px); z-index: 22; margin: calc(var(--s5) * -1) calc(var(--s5) * -1) var(--s3); padding: var(--s3) var(--s5) var(--s2); background: var(--paper); border-bottom: 1px solid var(--line-2); border-radius: var(--r3) var(--r3) 0 0; box-shadow: 0 12px 24px -18px rgba(0,0,0,.6); }
.ctrl-bar .ctrl { flex-wrap: wrap; align-items: center; }
.cb-score { display: flex; align-items: baseline; gap: 6px; margin-bottom: var(--s2); font: 700 var(--t-sm)/1 var(--sans); color: var(--ink-2); }
.cb-score b { font: 800 1.375rem/1 var(--display); color: var(--ink); font-variant-numeric: tabular-nums; } .cb-score i { font-style: normal; color: var(--ink-3); }
.cb-score small { margin-left: 8px; padding: 2px 8px; border-radius: 999px; background: var(--live); color: #fff; font-weight: 700; }
.ctrl-bar .nudge { margin: var(--s2) 0 0; }
@media (max-width: 640px) { .ctrl-bar.is-live { margin: calc(var(--s4) * -1) calc(var(--s4) * -1) var(--s3); padding: var(--s2) var(--s4); } }
.ctrl-bar.is-live { top: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding-top: var(--s2); }
.ctrl-bar.is-live .cb-score { margin: 0; } .ctrl-bar.is-live .ctrl { margin: 0; } .ctrl-bar.is-live .nudge { margin: 0; flex-basis: 100%; }
/* ajuste fino: 4 fileiras de camisas + barra de lances cabem juntas em telas de ~580 px de altura */
.jersey { min-height: 48px; padding: 3px 2px 4px; } .jersey b { font-size: 1.375rem; } .jersey span { font-size: .6rem; }
.jerseys { gap: 4px; }
.court-side { padding: 6px; } .court-side header { min-height: 26px; margin-bottom: 4px; }
.team-ops { margin-top: 4px; } .tbtn { min-height: 34px; }
.shot-bar { padding: 6px; gap: 6px; } .sb-who { min-height: 20px; font-size: var(--t-sm); }
.shot-bar .quick-grid .type-btn { min-height: 46px; padding: 4px 2px; gap: 2px; } .shot-bar .quick-grid .type-btn span { font-size: var(--t-lg); min-height: 20px; }
.mbtn { min-height: 36px; }
.ll-seg button { height: 26px; min-width: 30px; }
@media (max-width: 640px) { .shot-bar .quick-grid .type-btn { min-height: 46px; } .mbtn { min-height: 44px; } }
/* computador: tudo cabe na tela, então as barras ficam paradas no lugar (sem flutuar ao rolar); no celular a barra de lances continua presa embaixo */
@media (min-width: 641px) {
  .ctrl-bar.is-live { position: static; box-shadow: none; }
  .shot-bar, .shot-bar.armed { position: static; }
  .shot-bar { box-shadow: none; } .shot-bar.armed { box-shadow: inset 4px 0 0 var(--tc); }
}
@media (max-width: 640px) { .ctrl-bar.is-live { position: static; box-shadow: none; } }
/* status da súmula (enviando / sem conexão / lance recusado) flutua sobre a tela: não empurra o conteúdo a cada lance */
#mesa-net { position: fixed; z-index: 45; top: 12px; left: 50%; transform: translateX(-50%); width: min(760px, calc(100vw - 24px)); display: grid; gap: 8px; pointer-events: none; }
#mesa-net .net-bar { margin: 0; pointer-events: auto; box-shadow: 0 16px 34px -14px rgba(0,0,0,.55); }
@media (max-width: 640px) { #mesa-net { top: auto; bottom: 150px; } }

/* seta de posse alternada na barra de controle */
.possession { display: inline-flex; align-items: center; gap: 4px; padding: 3px; border-radius: 999px; background: var(--foam); }
.possession .pos-l { font: 700 var(--t-xs)/1 var(--sans); color: var(--ink-2); padding: 0 6px 0 8px; }
.pos-btn { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 12px; border: 0; border-radius: 999px; background: transparent; color: var(--ink-2); font: 800 var(--t-sm)/1 var(--display); letter-spacing: .02em; cursor: pointer; }
.pos-btn .arr { font-size: .8125rem; opacity: .35; }
.pos-btn.on { background: var(--sun); color: var(--on-sun, #0f2a33); } .pos-btn.on .arr { opacity: 1; }
.pos-flip { height: 32px; padding: 0 12px; border: 1px solid var(--line); border-radius: 999px; background: var(--paper); color: var(--ink); font: 700 var(--t-xs)/1 var(--sans); cursor: pointer; }
.possession.ask { box-shadow: 0 0 0 2px var(--sun); animation: posAsk 1.6s ease-in-out infinite; }
@keyframes posAsk { 50% { box-shadow: 0 0 0 5px color-mix(in srgb, var(--sun) 35%, transparent); } }
@media (prefers-reduced-motion: reduce) { .possession.ask { animation: none; } }
.ctrl-bar.is-live .nudge { flex-basis: auto; } .ctrl-bar.is-live .possession { order: 3; } .ctrl-bar.is-live .nudge { order: 4; }
.ctrl-bar.is-live .cb-score { order: 1; } .ctrl-bar.is-live .ctrl { order: 2; }
.ctrl-bar.is-live .nudge { gap: 4px; } .ctrl-bar.is-live .nudge .btn { min-width: 0; padding: 0 10px; height: 32px; }
.ctrl-bar.is-live .pos-btn, .ctrl-bar.is-live .pos-flip { height: 30px; padding: 0 10px; }

.pos-flip.held { border-color: var(--sun); } .pos-flip[disabled] { opacity: .4; cursor: not-allowed; }

/* ===== topo da página inicial: jogo + carrossel de notícias lado a lado ===== */
.hero-news { position: relative; display: flex; flex-direction: column; background: var(--paper); color: var(--ink); border-radius: var(--r3); box-shadow: 0 30px 60px -24px rgba(0,0,0,.55); overflow: hidden; min-height: 100%; }
.hero-news > header { display: flex; justify-content: space-between; align-items: center; padding: var(--s4) var(--s5); border-bottom: 1px solid var(--line-2); }
.hn-all { font: 700 var(--t-sm)/1 var(--sans); color: var(--blue-text); text-decoration: none; } .hn-all:hover { text-decoration: underline; }
.hn-track { position: relative; flex: 1; display: grid; }
.hn-slide { grid-area: 1 / 1; display: flex; flex-direction: column; color: var(--ink); text-decoration: none; opacity: 0; visibility: hidden; transition: opacity .45s ease, visibility .45s; }
.hn-slide.on { opacity: 1; visibility: visible; }
.hn-cover { aspect-ratio: 16 / 9; background: var(--g, var(--sea-800)); overflow: hidden; display: grid; place-items: center; }
.hn-cover img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s ease; }
.hn-slide:hover .hn-cover img { transform: scale(1.03); }
.hn-ph svg { width: 40px; height: 40px; color: rgba(255,255,255,.75); }
.hn-body { padding: var(--s3) var(--s5) var(--s2); display: grid; gap: 6px; }
.hn-meta { font: 700 var(--t-xs)/1 var(--sans); color: var(--ball); text-transform: capitalize; }
.hn-body h3 { font: 800 var(--t-lg)/1.15 var(--display); margin: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.hn-body p { margin: 0; font-size: var(--t-sm); color: var(--ink-2); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.hn-nav { display: flex; align-items: center; justify-content: space-between; gap: var(--s2); padding: var(--s2) var(--s4) var(--s3); }
.hn-arrow { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; border: 1px solid var(--line); background: transparent; color: var(--ink); cursor: pointer; }
.hn-arrow svg { width: 16px; height: 16px; } .hn-arrow:hover { border-color: var(--sail-blue); }
.hn-dots { display: flex; gap: 6px; } .hn-dots button { width: 8px; height: 8px; padding: 0; border-radius: 999px; border: 0; background: var(--line); cursor: pointer; transition: width .25s, background .25s; }
.hn-dots button.on { width: 22px; background: var(--ball); }
.hero-news :focus-visible { outline: 3px solid var(--sun); outline-offset: 2px; }
/* computador largo: texto | jogo | notícias */
@media (min-width: 1100px) {
  .hero-grid:has(.hero-aside.with-news) { grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); gap: var(--s6); }
  .hero-aside.with-news { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s4); align-items: stretch; }
  .hero-aside.with-news .hero-card { margin: 0; width: 100%; }
}
/* telas médias e celular: notícias logo abaixo do jogo */
@media (max-width: 1099px) { .hero-aside.with-news { display: grid; gap: var(--s4); } .hero-aside.with-news .hero-card, .hero-news { width: min(100%, 520px); margin-left: auto; } }
@media (max-width: 960px) { .hero-aside.with-news .hero-card, .hero-news { width: 100%; margin-left: 0; } }
@media (prefers-reduced-motion: reduce) { .hn-slide, .hn-cover img, .hn-dots button { transition: none; } }

/* ===== topo da página inicial: notícias (esquerda) + placar (direita) ===== */
.hero.hero-feed { padding: var(--s6) 0 calc(var(--s6) + 28px); }
.hero-feed-grid { position: relative; display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); gap: var(--s5); align-items: stretch; }
.hero-feed-grid.solo { grid-template-columns: minmax(0, 520px); justify-content: end; }
.hero-feed .gravura { position: absolute; right: 30%; top: 50%; transform: translateY(-50%); width: min(620px, 55%); opacity: .12; z-index: -1; pointer-events: none; }
.hero-feed .hero-card { display: flex; flex-direction: column; margin: 0; width: 100%; } .hero-feed .hero-card > .matches { flex: 1; align-content: center; }
/* notícia em destaque: imagem maior */
.hero-feed .hero-news { min-height: 0; }
.hero-feed .hn-cover { aspect-ratio: 16 / 9; }
.hero-feed .hn-body h3 { font-size: var(--t-xl); }
/* deslize lateral */
.hn-viewport { flex: 1; overflow: hidden; display: flex; }
.hn-track { display: flex; width: 100%; transition: transform .5s cubic-bezier(.2,.7,.2,1); }
.hn-slide { flex: 0 0 100%; min-width: 0; opacity: 1; visibility: visible; transition: none; }
.hn-slide:not(.on) { visibility: hidden; transition: visibility 0s .5s; }
@media (prefers-reduced-motion: reduce) { .hn-track { transition: none; } }
@media (max-width: 960px) {
  .hero-feed-grid, .hero-feed-grid.solo { grid-template-columns: 1fr; }
  .hero-feed .hero-card { order: -1; } /* no celular o placar vem primeiro */
  .hero-feed .hn-cover { aspect-ratio: 16 / 9; }
}
.hero-feed .hn-cover { aspect-ratio: 16 / 9; height: auto; }
.hero.hero-feed { padding: var(--s5) 0 calc(var(--s5) + 28px); }
.hero-feed .hn-body { padding: var(--s3) var(--s5) 0; }

/* ===== acessibilidade do modo claro (WCAG 2.1 AA, contraste 1.4.3) ===== */
/* laranja da bola em texto pequeno: tom mais escuro no claro (5,1:1 sobre --foam); no escuro segue o laranja original */
:root { --ball-text: #b93a14; }
:root[data-theme="dark"] { --ball-text: var(--ball); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --ball-text: var(--ball); } }
.mc-date small, .hn-meta, .esc-warn { color: var(--ball-text); }
.hn-dots button.on { background: var(--ball-text); }
/* time derrotado: esmaecido sem ficar abaixo de 4,5:1 */
.mteam.dim { opacity: .74; }
/* etiqueta sobre a foto da notícia: fundo escuro próprio, legível em qualquer imagem */
.news-card .pill { background: rgba(4,26,51,.62); }
.news-card .muted { color: rgba(255,255,255,.82); }
/* pontos de navegação do carrossel: componente com contraste mínimo de 3:1 (1.4.11) */
.hn-dots button { background: var(--ink-3); opacity: .75; } .hn-dots button.on { opacity: 1; }
.hn-arrow { border-color: var(--ink-3); }
/* foco visível (2.4.7 / 1.4.11): o laranja --sun some sobre cartões brancos; dentro deles usa --focus (azul no claro, âmbar no escuro) */
.hero .hero-card :focus-visible, .hero .hero-news :focus-visible, .terms-box:focus-visible, .jersey:focus-visible, .kit-opt:focus-visible { outline-color: var(--focus); }
/* alvo de toque dos pontos do carrossel: 24px clicáveis sem mudar o desenho (2.5.8) */
.hn-dots { gap: 0; } .hn-dots button { box-sizing: content-box; border: 8px solid transparent; background-clip: content-box; }

/* ===== tema claro: logos brancas/claras (.oll) ganham contorno escuro fino, sem fundo ===== */
/* detalhes do card-ingresso no claro: picote mais suave e recortes laterais com a mesma borda do card */
.mc-foot { border-top-color: var(--line-2); }
.mc-foot::before, .mc-foot::after { background: var(--bg, var(--foam)); box-shadow: inset 0 0 0 1px var(--line-2); }
:root[data-theme="light"] .mc-foot { background: color-mix(in srgb, var(--foam) 60%, var(--paper)); }
@media (prefers-color-scheme: light) { :root:not([data-theme="dark"]) .mc-foot { background: color-mix(in srgb, var(--foam) 60%, var(--paper)); } }
/* mapa do Ceará ao fundo: mais discreto no claro para não manchar atrás dos cards */
:root { --ceara-op: .045; }

/* ===== faixa de jogos do fim de semana (topo da página inicial) ===== */
.wk { background: var(--paper); border-bottom: 1px solid var(--line-2); }
.wk-in { display: grid; grid-template-columns: auto auto minmax(0, 1fr) auto; align-items: center; gap: var(--s3); padding-top: var(--s3); padding-bottom: var(--s3); }
.wk-head { display: grid; gap: var(--s2); justify-items: start; padding-right: var(--s2); }
.wk-title { margin: 0; display: flex; gap: 8px; align-items: center; font: 800 var(--t-sm)/1.2 var(--sans); color: var(--ink); }
.wk-title svg { width: 18px; height: 18px; color: var(--sail-green); flex: none; }
.wk-title span { display: grid; } .wk-title small { font-weight: 600; color: var(--ink-3); font-size: var(--t-xs); }
.wk-track { list-style: none; margin: 0; padding: 2px; display: flex; gap: var(--s2); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; }
.wk-track::-webkit-scrollbar { display: none; }
.wk-track li { flex: 0 0 156px; scroll-snap-align: start; }
.wk-card { display: grid; gap: 4px; padding: 8px 10px; border: 1px solid var(--line); border-radius: var(--r2); background: var(--paper); color: var(--ink); text-decoration: none; height: 100%; box-sizing: border-box; transition: border-color .15s; }
.wk-card:hover { border-color: var(--sail-blue); } .wk-card.live { border-color: var(--live); }
.wk-top { display: flex; justify-content: space-between; align-items: center; gap: 6px; font-size: var(--t-xs); }
.wk-time { font-weight: 700; color: var(--ink-2); font-variant-numeric: tabular-nums; }
.wk-tag { font: 800 10px/1 var(--sans); text-transform: uppercase; letter-spacing: .02em; padding: 3px 6px; border-radius: 4px; background: var(--foam); color: var(--ink-2); white-space: nowrap; }
.wk-tag.live { background: var(--live); color: #fff; display: inline-flex; gap: 4px; align-items: center; } .wk-tag.live .dot { width: 6px; height: 6px; }
.wk-tag.done { background: var(--foam-2, var(--foam)); }
.wk-team { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; align-items: center; gap: 6px; font-size: var(--t-sm); min-height: 24px; }
.wk-team .crest { --s: 22px; width: 22px; height: 22px; font-size: 9px; }
.wk-team b { font-weight: 800; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wk-team strong { font: 800 var(--t-md)/1 var(--display); font-variant-numeric: tabular-nums; }
.wk-team.lost b, .wk-team.lost strong { color: var(--ink-3); }
.wk-cat { font-size: 11px; color: var(--ink-3); font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wk-arrow { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; border: 1px solid var(--line); background: var(--paper); color: var(--sail-green); cursor: pointer; }
.wk-arrow svg { width: 18px; height: 18px; } .wk-arrow:hover:not([disabled]) { border-color: var(--sail-green); } .wk-arrow[disabled] { opacity: .35; cursor: default; }
@media (max-width: 760px) {
  .wk-in { grid-template-columns: minmax(0, 1fr); gap: var(--s2); }
  .wk-head { display: flex; justify-content: space-between; align-items: center; width: 100%; padding: 0; }
  .wk-arrow { display: none; } /* no celular rola com o dedo */
  .wk-track li { flex-basis: 148px; }
}
.wk-team { grid-template-columns: 26px minmax(0, 1fr) auto; }
.wk-team .crest, .wk-team .crest.sm, .wk-team .crest.logo, .wk-team .crest.logo.sm { --s: 26px; width: 26px; min-width: 26px; height: 26px; justify-content: center; font-size: 9px; }
.wk-team .crest.logo img { height: 26px; max-height: 26px; max-width: 26px; }
.wk-track li { flex-basis: 164px; }
/* jogo ao vivo em destaque na faixa do fim de semana */
.wk-card.live { border-width: 2px; padding: 7px 9px; background: color-mix(in srgb, var(--live) 10%, var(--paper)); box-shadow: 0 0 0 3px color-mix(in srgb, var(--live) 18%, transparent); }
.wk-card.live .wk-time { color: var(--ink); }
.wk-track { padding: 4px; }

/* =====================================================================
   IDENTIDADE 2026 — "quadra à noite"
   Tipografia: Anybody (largura variável) para títulos e placares + Atkinson Hyperlegible Next no texto.
   A largura da letra carrega informação: nomes e títulos estreitos; números de placar largos, como num placar de ginásio.
   O motivo visual é a própria quadra: o topo termina na linha do meio com o círculo central.
   ===================================================================== */
:root {
  --sans: 'Montserrat', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --court-line: rgba(255,255,255,.16);
  --midcourt: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 120'%3E%3Cpath d='M2 120a118 118 0 0 1 236 0' fill='none' stroke='%23ffffff' stroke-opacity='.16' stroke-width='2'/%3E%3Cpath d='M80 120a40 40 0 0 1 80 0' fill='none' stroke='%23ffffff' stroke-opacity='.10' stroke-width='2'/%3E%3C/svg%3E");
}
body { font-family: var(--sans); font-size: 1.0625rem; line-height: 1.6; }
h1, h2, h3 { font-family: var(--display); letter-spacing: 0; }
h1 { font-weight: 900; line-height: .95; }
h2 { font-weight: 850; }
h3 { font-weight: 750; }
h2.sub, .display { font-family: var(--display); }
.eyebrow, .brand-tag { font-family: var(--brand); font-style: normal; }

/* placares: algarismos largos e de largura fixa */
.score, .ml-score, .sb-score, .mcard .vs small, .wk-team strong, .amscore, .pchip b, .clock, .hero-facts b, .stat b, td.pts, .cb-score {
  font-family: var(--display); font-variant-numeric: tabular-nums; letter-spacing: 0;
}


/* topo: sem pílula branca; a página atual ganha a linha laranja da bola embaixo */
.nav a { border-radius: var(--r1); position: relative; font-weight: 700; }
.nav a.active { background: transparent; color: #fff; }
.nav a.active::after { content: ''; position: absolute; left: var(--s4); right: var(--s4); bottom: 4px; height: 3px; border-radius: 2px; background: var(--sun); }
.nav a:hover { background: rgba(255,255,255,.08); }
@media (max-width: 960px) { .topbar.open .nav a.active::after { left: 0; right: auto; top: 10px; bottom: 10px; width: 3px; height: auto; } }

/* topo das páginas: fundo de quadra à noite, termina na linha do meio com o círculo central (sem jangada nem ondas) */
.hero, .page-hero { background: linear-gradient(165deg, #0e2531 0%, #0b1c27 55%, #0f3149 120%); border-bottom: 2px solid var(--court-line); }
.hero::after, .page-hero::after { height: 120px; width: 240px; left: 50%; right: auto; bottom: 0; transform: translateX(-50%); background: var(--midcourt) center bottom/240px 120px no-repeat; z-index: 0; pointer-events: none; }
.page-hero::after { height: 80px; width: 160px; background-size: 160px 80px; }
.hero > .wrap, .page-hero > .wrap { position: relative; z-index: 1; }
.hero-feed .gravura, .jangada-art, .gravura { display: none !important; }
.hero.hero-feed { padding-bottom: var(--s7); }

/* títulos de seção: sem o quadradinho de ícone; o título fica sobre uma linha de quadra e ganha a marca laranja */
.section-head { border-bottom: 1px solid var(--line); padding-bottom: var(--s3); align-items: end; }
.section-head h2 { position: relative; gap: 0; }
.section-head h2::after { content: ''; position: absolute; left: 0; bottom: calc(-1 * var(--s3) - 2px); width: 48px; height: 4px; border-radius: 2px; background: var(--sun); }
.section-head .h-ic { display: none; }

/* botões e etiquetas com a fonte do texto (legível) */
.btn { font-weight: 700; letter-spacing: 0; }
.pill { font-family: var(--sans); letter-spacing: 0; }
.mc-cat { font-family: var(--display); font-weight: 800; letter-spacing: .01em; }
.mc-date b, .mc-venue b { font-family: var(--display); }

/* atalhos do painel da administração (mesa e escala saíram do menu principal) */
.admin-shortcuts { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: var(--s3); margin: 0 0 var(--s5); }
.admin-shortcut { display: grid; grid-template-columns: 44px 1fr auto; align-items: center; gap: var(--s3); padding: var(--s4); border: 1px solid var(--line); border-radius: var(--r2); background: var(--paper); color: var(--ink); text-decoration: none; min-height: 44px; }
.admin-shortcut:hover { border-color: var(--sun); }
.admin-shortcut > svg:first-child { width: 28px; height: 28px; color: var(--sun); justify-self: center; }
.admin-shortcut b { display: block; font: 800 var(--t-lg)/1.15 var(--display); }
.admin-shortcut > span { color: var(--ink); } .admin-shortcut span span { color: var(--ink-2); font-size: var(--t-sm); }
.admin-shortcut > svg:last-child { width: 18px; height: 18px; color: var(--ink-3); }
/* Anybody é variável na largura. Duas famílias fixas a partir do mesmo arquivo: estreita para títulos e nomes, larga para placares.
   (a largura vem do descritor font-stretch, que os atalhos "font:" do CSS não conseguem desfazer) */
:root { --display: 'Montserrat', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; --brand: 'Montserrat', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; --wide: 'Montserrat', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; }
.score, .ml-score, .sb-score, .mcard .vs small, .wk-team strong, .amscore, .pchip b, .clock, .hero-facts b, .stat b, td.pts, .cb-score { font-family: var(--wide); }
/* nomes de equipe estreitos (cabem em duas linhas), placar largo */
.mteam > span:last-child, .mteam b, .sb-team .name, .sb-team h2, .ml-t b, .mc-team-name { font-family: var(--display); font-weight: 800; font-size: var(--t-md); letter-spacing: .01em; }
/* acessibilidade (tema escuro): laranja de texto pequeno mais claro (5,8:1 sobre os cartões) e links soltos com alvo mínimo de 24px */
:root, :root[data-theme="dark"] { --ball-text: #ff7a4f; }
.mc-date small, .hn-meta, .esc-warn, .mc-venue svg { color: var(--ball-text); }
.hn-all, .sb-team a, .sb-info a, .scoreboard a { display: inline-flex; align-items: center; min-height: 24px; }

/* ===== cards de jogo: só os escudos, numa caixa quadrada (logos largas não desequilibram o card) ===== */
.mcard .mteam .crest.logo, .mcard .mteam .crest.logo.sm { --s: 84px; width: 84px; min-width: 84px; height: 84px; justify-content: center; }
.mcard .mteam .crest.logo img { width: 100%; height: 100%; max-width: 84px; max-height: 84px; object-fit: contain; }
.mcard .mteam .crest:not(.logo) { --s: 72px; }
.mcard .mrow { padding-top: var(--s3); padding-bottom: var(--s3); }
@media (max-width: 560px) { .mcard .mteam .crest.logo, .mcard .mteam .crest.logo.sm { --s: 68px; width: 68px; min-width: 68px; height: 68px; } .mcard .mteam .crest.logo img { max-width: 68px; max-height: 68px; } }
.mc-foot { justify-content: space-between; }
.mc-foot:has(> :only-child) { justify-content: center; }

/* ===== como acompanhar: YouTube (vermelho da plataforma) ou lance a lance (marca própria: bola + verde da quadra) ===== */
.cov { display: inline-flex; align-items: center; gap: 6px; font: 800 var(--t-xs)/1 var(--sans); padding: 5px 9px 5px 6px; border-radius: 999px; white-space: nowrap; }
.cov svg { width: 18px; height: 18px; flex: none; }
.cov.yt { background: #c4302b; color: #fff; } .cov.yt svg rect { fill: #fff; } .cov.yt svg path { fill: #c4302b; }
.cov.lal { background: linear-gradient(90deg, #0c5f37, #0a4a6e); color: #e9fff2; box-shadow: inset 0 0 0 1px rgba(127,224,168,.35); }
.cov.lal svg { color: #ffb04d; }
.cov.sm { font-size: 10.5px; padding: 3px 7px 3px 4px; gap: 4px; } .cov.sm svg { width: 14px; height: 14px; }
.wk-card .cov { justify-self: start; margin-top: 2px; }

/* ===== faixa do fim de semana: logo grande da LCB ===== */
.wk-head { display: grid; justify-items: center; gap: 4px; text-align: center; }
.wk-logo { width: 112px; height: auto; display: block; }
.wk-title { font-size: var(--t-xs); } .wk-title span { justify-items: center; }
.wk-track li { flex-basis: 170px; }
@media (max-width: 760px) { .wk-head { display: flex; justify-content: flex-start; gap: var(--s3); text-align: left; } .wk-logo { width: 72px; } .wk-title span { justify-items: start; } }

/* ===== jogos: próximos (esquerda) e últimos (direita) ===== */
.games-split { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: var(--s6); align-items: start; }
.gs-cards { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
.results { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s2); }
.rrow { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--s3); padding: var(--s3) var(--s4); border: 1px solid var(--line-2); border-radius: var(--r2); background: var(--paper); color: var(--ink); text-decoration: none; }
.rrow:hover { border-color: var(--sail-blue); }
.rr-meta { display: grid; gap: 2px; min-width: 0; font-size: var(--t-xs); color: var(--ink-3); }
.rr-cat { font: 800 var(--t-sm)/1.15 var(--display); color: var(--ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rr-game { display: flex; align-items: center; gap: var(--s2); }
.rr-t .crest.logo, .rr-t .crest.logo.sm, .rr-t .crest { --s: 40px; width: 40px; min-width: 40px; height: 40px; justify-content: center; font-size: 12px; }
.rr-t .crest.logo img { max-width: 40px; max-height: 40px; width: 100%; height: 100%; object-fit: contain; }
.rr-t:not(.win) { opacity: .78; }
.rr-score { display: inline-flex; align-items: center; gap: 6px; min-width: 104px; justify-content: center; font: 800 var(--t-xl)/1 var(--wide, var(--display)); font-variant-numeric: tabular-nums; }
.rr-score b { color: var(--ink-2); font-weight: 800; } .rr-score b.win { color: var(--ink); } .rr-score i { font-style: normal; font-size: .6em; color: var(--ink-3); }
@media (max-width: 1100px) { .games-split { grid-template-columns: 1fr; } }
@media (max-width: 640px) { .gs-cards { grid-template-columns: 1fr !important; } .rrow { grid-template-columns: 1fr; } .rr-game { justify-content: center; } }

/* ===== destaques da temporada (estilo placar de líderes) ===== */
.lead-pick { display: inline-flex; align-items: center; gap: var(--s2); font-weight: 700; font-size: var(--t-sm); } .lead-pick select { width: auto; max-width: 320px; min-height: 40px; }
.lead-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s4); }
.lead-card { background: var(--paper); border: 1px solid var(--line-2); border-radius: var(--r3); overflow: hidden; display: flex; flex-direction: column; }
.lead-card h3 { font: 850 var(--t-lg)/1 var(--display); text-transform: uppercase; padding: var(--s3) var(--s4); border-bottom: 1px solid var(--line-2); }
.lead-top { display: grid; grid-template-columns: 56px minmax(0, 1fr); grid-template-rows: auto auto; gap: 4px var(--s3); padding: var(--s4); background: linear-gradient(160deg, #10324a, var(--paper)); align-items: center; }
.lead-top .crest, .lead-top .crest.logo, .lead-top .crest.logo.sm { --s: 56px; width: 56px; min-width: 56px; height: 56px; justify-content: center; grid-row: span 2; }
.lead-top .crest.logo img { max-width: 56px; max-height: 56px; width: 100%; height: 100%; object-fit: contain; }
.lead-who { display: grid; min-width: 0; } .lead-who b { font: 800 var(--t-lg)/1.1 var(--display); overflow-wrap: anywhere; } .lead-who span { font-size: var(--t-xs); color: var(--ink-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lead-val { display: flex; align-items: baseline; gap: 6px; } .lead-val strong { font: 800 2.25rem/1 var(--wide, var(--display)); color: var(--sun); font-variant-numeric: tabular-nums; } .lead-val small { font-weight: 800; color: var(--ink-2); font-size: var(--t-xs); }
.lead-list { list-style: none; margin: 0; padding: var(--s2) 0; }
.lead-list li { display: grid; grid-template-columns: 22px 26px minmax(0, 1fr) auto; align-items: center; gap: var(--s2); padding: 6px var(--s4); font-size: var(--t-sm); }
.lead-list li:nth-child(odd) { background: color-mix(in srgb, var(--foam) 45%, transparent); }
.ll-pos { font: 800 var(--t-sm)/1 var(--display); color: var(--ink-3); }
.lead-list .crest, .lead-list .crest.logo, .lead-list .crest.logo.sm { --s: 24px; width: 24px; min-width: 24px; height: 24px; justify-content: center; font-size: 8px; }
.lead-list .crest.logo img { max-width: 24px; max-height: 24px; width: 100%; height: 100%; object-fit: contain; }
.ll-name { font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ll-val { font: 800 var(--t-md)/1 var(--wide, var(--display)); color: var(--sun); font-variant-numeric: tabular-nums; white-space: nowrap; } .ll-val small { font-family: var(--sans); font-size: 10px; color: var(--ink-3); }
@media (max-width: 1100px) { .lead-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .lead-grid { grid-template-columns: 1fr; } .lead-pick { width: 100%; min-width: 0; } .lead-pick select { flex: 1 1 0; min-width: 0; max-width: 100%; text-overflow: ellipsis; } }

/* ===== leitura: títulos menos apertados ===== */
h1, h2, h3, .mc-cat, .rr-cat, .lead-card h3, .lead-who b { letter-spacing: .012em; }
h1 { line-height: 1; } h2 { line-height: 1.05; }

/* ===== cards de jogo com identidade do confronto =====
   faixa no topo com as cores das duas equipes, brilho da cor da equipe atrás do escudo,
   meio de quadra desenhado atrás do horário/placar e o placar numa "placa" de ginásio */
.mcard { background-image: linear-gradient(90deg, var(--hc, var(--line)) 0 50%, var(--ac, var(--line)) 50% 100%); background-size: 100% 4px; background-repeat: no-repeat; background-position: top; }
.mcard .mrow { position: relative; background: var(--midcourt) center 115% / 220px 110px no-repeat; }
.mcard .mteam { position: relative; isolation: isolate; }
.mcard .mteam::before { content: ''; position: absolute; top: 50%; left: 50%; width: 132px; height: 132px; transform: translate(-50%, -50%); border-radius: 50%; background: radial-gradient(closest-side, color-mix(in srgb, var(--tc, #2a4854) 42%, transparent), transparent); z-index: -1; pointer-events: none; }
.mcard .mteam.dim::before { opacity: .45; }
.mcard .vs { display: grid; justify-items: center; gap: 4px; color: var(--ink-3); font-size: var(--t-xs); }
.mcard .vs > span { font: 800 var(--t-sm)/1 var(--display); color: var(--ink-3); }
.mcard .vs small, .mcard .score { background: #071a22; border: 1px solid var(--line); border-radius: 10px; padding: 6px 12px; box-shadow: inset 0 2px 8px rgba(0,0,0,.45); color: var(--ink); }
.mcard .vs small { font-size: 1.45rem; }
.mcard .score i { color: var(--ink-3); }
.mcard.live .score { border-color: var(--live); }
.mcard:hover { transform: translateY(-2px); } @media (prefers-reduced-motion: reduce) { .mcard:hover { transform: none; } }
.mcard { transition: border-color .15s, box-shadow .15s, transform .15s; }

/* resultados: faixa vertical com as cores das equipes e placar em placa */
.rrow { position: relative; overflow: hidden; padding-left: calc(var(--s4) + 4px); }
.rrow::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: linear-gradient(180deg, var(--hc, var(--line)) 0 50%, var(--ac, var(--line)) 50% 100%); }
.rr-t { position: relative; isolation: isolate; display: grid; place-items: center; width: 52px; height: 52px; }
.rr-t::before { content: ''; position: absolute; inset: 0; border-radius: 50%; background: radial-gradient(closest-side, color-mix(in srgb, var(--tc, #2a4854) 40%, transparent), transparent); z-index: -1; }
.rr-score { display: grid; justify-items: center; gap: 3px; min-width: 110px; }
.rr-plate { display: inline-flex; align-items: center; gap: 6px; background: #071a22; border: 1px solid var(--line); border-radius: 8px; padding: 5px 10px; box-shadow: inset 0 2px 8px rgba(0,0,0,.45); }
.rr-score small { font: 700 10.5px/1 var(--sans); color: var(--ink-3); }
.rr-meta > span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* faixa do fim de semana: logo, título e botão da agenda empilhados */
.wk-head .btn { margin-top: 4px; }
@media (max-width: 760px) { .wk-head .btn { margin: 0 0 0 auto; } }

/* ===== cards de categoria (painel da administração): não usam o desenho de ingresso dos jogos ===== */
.mcard.catcard { display: grid; align-content: start; gap: var(--s3); padding: var(--s4) var(--s5) var(--s5); background-image: none; border-top: 4px solid var(--sail-green); }
.mcard.catcard:hover { border-top-color: var(--sun); }
.catcard .meta { margin: 0; align-items: center; color: var(--ink-3); }
.catcard h3 { font: 850 1.45rem/1.1 var(--display); letter-spacing: .012em; margin: 0; overflow-wrap: anywhere; }
.catcard h3 + div { margin-top: 0 !important; }
.catcard .pill { display: inline-flex; align-items: center; gap: 5px; } .catcard .pill svg { width: 14px; height: 14px; }
.catcard > .muted, .catcard > p, .catcard > .small { margin: 0; padding-top: var(--s3); border-top: 1px dashed var(--line); color: var(--ink-2); font-size: var(--t-sm); }
/* cards de equipe (aba Equipes do campeonato) */
.mcard.teamcard { padding: var(--s5) var(--s4); text-align: center; }
.teamcard b { font: 850 var(--t-lg)/1.15 var(--display); letter-spacing: .012em; }
.teamcard .crest.logo, .teamcard .crest.logo.lg { --s: 110px; width: 110px; min-width: 110px; height: 110px; justify-content: center; }
.teamcard .crest.logo img { width: 100%; height: 100%; max-width: 110px; max-height: 110px; object-fit: contain; }
/* ações destrutivas */
.btn.danger { background: transparent; color: var(--err-ink, #ffb4a2); border: 1px solid var(--err-line, #7a3a2c); }
.btn.danger:hover { background: var(--err-bg, #3a1a14); border-color: var(--err-ink, #ffb4a2); }
.btn.danger svg { width: 16px; height: 16px; }
.danger-zone { border-color: var(--err-line, #7a3a2c); }

/* ===== painel "Hoje" ===== */
.today { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: var(--s4); margin: 0 0 var(--s5); }
.today-card { padding: var(--s4) var(--s5); }
.today-card > header { display: flex; justify-content: space-between; align-items: center; gap: var(--s3); margin-bottom: var(--s3); padding-bottom: var(--s3); border-bottom: 1px solid var(--line-2); }
.today-card h2 { font-size: var(--t-xl); margin: 0; }
.today-games, .todo { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s2); }
.today-games li { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto auto; grid-template-areas: "t m s b" "t c s b"; align-items: center; gap: 2px var(--s3); padding: var(--s2) var(--s3); border: 1px solid var(--line-2); border-radius: var(--r2); background: var(--foam); }
.tg-time { grid-area: t; font: 800 var(--t-lg)/1 var(--wide, var(--display)); font-variant-numeric: tabular-nums; }
.tg-match { grid-area: m; display: flex; align-items: center; gap: 6px; min-width: 0; font-weight: 800; }
.tg-match i { font-style: normal; color: var(--ink-3); }
.tg-match .crest, .tg-match .crest.logo, .tg-match .crest.logo.sm { --s: 26px; width: 26px; min-width: 26px; height: 26px; justify-content: center; font-size: 8px; }
.tg-match .crest.logo img { max-width: 26px; max-height: 26px; width: 100%; height: 100%; object-fit: contain; }
.tg-cat { grid-area: c; font-size: var(--t-xs); color: var(--ink-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.today-games li > .pill { grid-area: s; } .today-games li > .btn { grid-area: b; }
.todo li { display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; align-items: center; gap: var(--s3); padding: var(--s2) 0; border-bottom: 1px dashed var(--line-2); font-size: var(--t-sm); }
.todo li:last-child { border-bottom: 0; }
.todo li > svg { width: 18px; height: 18px; color: var(--sand-ink, #f3cf99); }
.todo li.urgent > svg { color: var(--err-ink, #ffb4a2); } .todo li.urgent span b { color: var(--err-ink, #ffb4a2); }
@media (max-width: 960px) { .today { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .today-games li { grid-template-columns: 48px minmax(0, 1fr); grid-template-areas: "t m" "t c" "s b"; } .today-games li > .btn { justify-self: end; } }

/* ===== roteiro nas categorias ===== */
.mcard.catcard { position: relative; }
.catcard > .stretch { position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
.catcard .roadmap { position: relative; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: var(--s3); flex-wrap: wrap; }
.rm-steps { list-style: none; margin: 0; padding: 0; display: flex; gap: 4px; }
.rm-steps li { width: 26px; height: 6px; border-radius: 3px; background: var(--line); }
.rm-steps li.ok { background: var(--sail-green-ink, #4fd18b); }
.rm-next svg { width: 16px; height: 16px; }
.champ-quick { display: flex; gap: var(--s2); flex-wrap: wrap; margin: 0 0 var(--s4); }
.champ-quick svg { width: 16px; height: 16px; }

/* ===== agenda em lote ===== */
.agenda-top { display: flex; justify-content: space-between; align-items: end; gap: var(--s4); flex-wrap: wrap; margin-bottom: var(--s4); }
.agenda-filters { display: flex; gap: var(--s3); align-items: center; flex-wrap: wrap; } .agenda-filters select { width: auto; min-height: 40px; }
.ag-check { display: inline-flex; align-items: center; gap: 8px; font-size: var(--t-sm); font-weight: 600; min-height: 40px; }
.agenda-bulk { display: flex; align-items: center; gap: var(--s2); flex-wrap: wrap; padding: var(--s3) var(--s4); margin: 0 0 var(--s3); }
.agenda-bulk input, .agenda-bulk select { width: auto; min-height: 40px; }
.agenda-table input[type=date], .agenda-table input[type=time], .agenda-table select { min-height: 38px; width: auto; }
.agenda-table select { max-width: 220px; }
.agenda-table tr.miss td:first-child { box-shadow: inset 3px 0 0 var(--sun); }
.agenda-table tr.changed { background: color-mix(in srgb, var(--sail-green) 12%, transparent); }
.ag-game { font-weight: 800; white-space: nowrap; } .ag-game i { font-style: normal; color: var(--ink-3); }
.agenda-save { position: sticky; bottom: 0; display: flex; justify-content: flex-end; align-items: center; gap: var(--s3); padding: var(--s3) 0; background: linear-gradient(transparent, var(--foam) 40%); z-index: 3; }

/* ===== quadro de inscrições do campeonato ===== */
.reg-panel { margin: 0 0 var(--s5); padding: var(--s4) var(--s5); }
.reg-panel > header { display: flex; justify-content: space-between; align-items: center; gap: var(--s3); flex-wrap: wrap; padding-bottom: var(--s3); margin-bottom: var(--s3); border-bottom: 1px solid var(--line-2); }
.reg-panel h2 { font-size: var(--t-xl); margin: 0; } .reg-panel h2 small { font: 600 var(--t-sm) var(--sans); color: var(--ink-3); margin-left: 6px; }
.reg-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--s3); }
.reg-item { display: flex; flex-direction: column; gap: 6px; padding: var(--s3) var(--s4); border: 1px solid var(--line-2); border-radius: var(--r2); background: var(--foam); margin: 0; }
.reg-item p { margin: 0; flex: 1; }
.reg-act { display: flex; align-items: center; gap: var(--s2); flex-wrap: wrap; margin-top: 4px; } .reg-act svg { width: 15px; height: 15px; }
.reg-dates { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s2); } .reg-dates .field { margin: 0; } .reg-dates input { min-height: 38px; }
.reg-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 270px), 1fr)); }
.reg-item { min-width: 0; }
.reg-dates { grid-template-columns: repeat(auto-fit, minmax(min(100%, 140px), 1fr)); } .reg-dates input { width: 100%; min-width: 0; box-sizing: border-box; }

/* ===== lista da mesa (súmula online) ===== */
.esc-date { width: auto; min-width: 60px; height: 60px; padding: 0 10px; gap: 2px; align-content: center; }
.esc-date b { font: 850 1.6rem/1 var(--wide, var(--display)); } .esc-date span { font-weight: 800; letter-spacing: .04em; }
.esc-day > header h2 { font-size: var(--t-xl); margin: 0; }
.mesa-list { display: grid; gap: var(--s2); background: transparent; border: 0; box-shadow: none; overflow: visible; padding: 0; }
.mesa-row { position: relative; overflow: hidden; grid-template-columns: 96px minmax(0, 1.1fr) minmax(0, 1.6fr) auto; gap: var(--s4); padding: var(--s3) var(--s4) var(--s3) calc(var(--s4) + 5px); border: 1px solid var(--line-2); border-radius: var(--r2); background: var(--paper); }
.mesa-row:last-child { border-bottom: 1px solid var(--line-2); }
.mesa-row::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: linear-gradient(180deg, var(--hc, var(--line)) 0 50%, var(--ac, var(--line)) 50% 100%); }
.mesa-row:hover { background: var(--paper); border-color: var(--sail-blue); }
.mesa-row.live { box-shadow: none; border-color: var(--live); background: color-mix(in srgb, var(--live) 8%, var(--paper)); }
.mesa-time { display: grid; place-items: center; height: 56px; padding: 0; border-radius: 10px; background: #071a22; border: 1px solid var(--line); box-shadow: inset 0 2px 8px rgba(0,0,0,.45); }
.mesa-time b { font: 800 1.375rem/1 var(--wide, var(--display)); font-variant-numeric: tabular-nums; }
.mt-end { font: 800 var(--t-sm)/1 var(--sans); color: var(--ink-3); }
.mt-live { display: inline-flex; align-items: center; gap: 5px; font: 800 var(--t-xs)/1 var(--sans); color: #ffb4a2; } .mt-live .dot { width: 7px; height: 7px; }
.mesa-cat { gap: 4px; justify-items: start; } .mesa-cat .mc-cat { font-size: var(--t-sm); padding: 3px 9px; }
.mesa-cat small { color: var(--ink-3); } .mesa-cat .mv { display: inline-flex; align-items: center; gap: 4px; } .mesa-cat .mv svg { width: 13px; height: 13px; color: var(--ball-text, #ff7a4f); }
.mesa-teams { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: var(--s3); }
.mesa-teams .t { position: relative; isolation: isolate; }
.mesa-teams .t .crest, .mesa-teams .t .crest.logo, .mesa-teams .t .crest.logo.sm { --s: 46px; width: 46px; min-width: 46px; height: 46px; justify-content: center; font-size: 12px; }
.mesa-teams .t .crest.logo img { width: 100%; height: 100%; max-width: 46px; max-height: 46px; object-fit: contain; }
.mesa-teams .t .crest::after { content: ''; position: absolute; inset: -8px; border-radius: 50%; background: radial-gradient(closest-side, color-mix(in srgb, var(--tc, #2a4854) 40%, transparent), transparent); z-index: -1; }
.mesa-teams .t .crest { position: relative; }
.mesa-teams .t b { font: 850 var(--t-md)/1.1 var(--display); letter-spacing: .012em; }
.mesa-teams .t.lost { opacity: .6; }
.mesa-teams .sc .plate { display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border-radius: 8px; background: #071a22; border: 1px solid var(--line); font: 800 var(--t-lg)/1 var(--wide, var(--display)); color: var(--ink); font-variant-numeric: tabular-nums; }
.mesa-teams .sc .plate i, .mesa-teams .vs { font-style: normal; color: var(--ink-3); font-size: .7em; }
.mesa-row.live .sc .plate { border-color: var(--live); }
.mesa-go .btn svg { width: 16px; height: 16px; } .mesa-go .btn.live { background: var(--live); }
.mesa-venue { display: none; }
@media (max-width: 860px) {
  .mesa-row { grid-template-columns: 84px minmax(0, 1fr); grid-template-areas: "time cat" "teams teams" "go go"; row-gap: var(--s3); }
  .mesa-time { height: 48px; } .mesa-go { justify-self: stretch; } .mesa-go .btn { width: 100%; justify-content: center; }
  .mesa-teams .t b { font-size: var(--t-sm); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
}
.esc-day > header .esc-date { display: grid; grid-template-columns: 1fr; grid-auto-flow: row; justify-items: center; align-content: center; }
/* logo do campeonato: sem fundo nem moldura, inteira (sem cortar) — logos transparentes aparecem como são */
.champ-logo { width: auto; height: 120px; max-width: 220px; object-fit: contain; background: none; border: 0; border-radius: 0; }
@media (max-width: 560px) { .champ-logo { height: 84px; max-width: 160px; } }
/* súmula: linhas dos atletas (número, nome em até duas linhas, botões compactos) */
.lineups > div > b { display: block; font: 850 var(--t-lg)/1.15 var(--display); letter-spacing: .012em; margin-bottom: var(--s2); }
.check.roster-line { display: flex; align-items: center; gap: var(--s2); padding: 6px var(--s2); margin-bottom: 4px; cursor: default; }
.roster-line .num { width: 52px; min-height: 36px; text-align: center; font: 800 var(--t-md)/1 var(--wide, var(--display)); }
.roster-line .grow { flex: 1; min-width: 0; font-size: var(--t-sm); font-weight: 600; line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere; }
.roster-line .btn.sm { width: 34px; min-width: 34px; height: 34px; min-height: 34px; padding: 0; justify-content: center; flex: none; }
.roster-line .btn.sm svg { width: 15px; height: 15px; margin: 0; }
/* logo do campeonato nos cards: sem fundo branco, inteira e com a margem transparente recortada */
.champ-img { width: auto; height: 64px; max-width: 120px; object-fit: contain; background: none; border: 0; border-radius: 0; }

/* ===== Escolinhas ASPAB ===== */
.esc-entry { display: inline-flex; align-items: center; gap: 8px; padding: 4px 12px 4px 4px; border-radius: 999px; border: 1px solid rgba(255,255,255,.18); color: #fff; text-decoration: none; font-weight: 700; font-size: var(--t-sm); min-height: 44px; box-sizing: border-box; }
.esc-entry img { width: 34px; height: 34px; object-fit: contain; }
.esc-entry:hover, .esc-entry.active { border-color: var(--sun); background: rgba(255,255,255,.06); }
@media (max-width: 960px) { .esc-entry span { display: none; } .esc-entry { padding: 4px; } }
.esc-hero { padding: var(--s7) 0; background: linear-gradient(165deg, #0e2531 0%, #0b1c27 55%, #2a1609 140%); border-bottom: 2px solid rgba(255,255,255,.12); }
.esc-hero-in { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--s6); align-items: center; }
.esc-logo-xl { width: 240px; height: 240px; object-fit: contain; }
.esc-hero h1 { margin: 6px 0 var(--s3); } .esc-hero .lead { max-width: 56ch; color: var(--ink-2); margin: 0 0 var(--s5); }
@media (max-width: 760px) { .esc-hero-in { grid-template-columns: 1fr; justify-items: center; text-align: center; } .esc-logo-xl { width: 160px; height: 160px; } }
.esc { padding-top: var(--s5); padding-bottom: var(--s7); }
.esc-head { display: flex; align-items: center; gap: var(--s3); margin-bottom: var(--s4); } .esc-head img { width: 64px; height: 64px; object-fit: contain; } .esc-head h1 { font-size: var(--t-3xl); margin: 0; } .esc-head p { margin: 2px 0 0; }
.esc-tabs { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: thin; padding-bottom: 4px; margin-bottom: var(--s5); border-bottom: 1px solid var(--line); }
.esc-tabs button { display: inline-flex; align-items: center; gap: 6px; padding: 10px 14px; border: 0; background: transparent; color: var(--ink-2); font: 700 var(--t-sm) var(--sans); border-radius: var(--r2) var(--r2) 0 0; cursor: pointer; white-space: nowrap; min-height: 44px; position: relative; }
.esc-tabs button svg { width: 17px; height: 17px; } .esc-tabs button:hover { color: var(--ink); background: var(--hover); }
.esc-tabs button.active { color: var(--ink); } .esc-tabs button.active::after { content: ''; position: absolute; left: 10px; right: 10px; bottom: -5px; height: 3px; border-radius: 2px; background: var(--sun); }
.esc-h2 { font-size: var(--t-xl); margin: 0 0 var(--s3); } .esc-h3 { font-size: var(--t-lg); margin: var(--s4) 0 var(--s2); }
.esc-stats { margin-bottom: var(--s5); grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.esc-grid2 { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: var(--s4); align-items: start; } @media (max-width: 960px) { .esc-grid2 { grid-template-columns: 1fr; } }
.esc-turmas, .esc-low, .esc-files { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s2); }
.esc-turmas li { display: flex; justify-content: space-between; align-items: center; gap: var(--s3); padding: var(--s3); border: 1px solid var(--line-2); border-radius: var(--r2); background: var(--foam); }
.esc-turmas li > div { display: grid; gap: 2px; min-width: 0; } .esc-turmas b { font: 800 var(--t-md)/1.15 var(--display); }
.esc-low li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: var(--s3); align-items: center; padding: 6px 0; border-bottom: 1px dashed var(--line-2); }
.freq { font: 800 var(--t-sm)/1 var(--wide, var(--display)); } .freq.ok { color: var(--green-text); } .freq.mid { color: var(--sand-ink, #f3cf99); } .freq.low { color: var(--err-ink, #ffb4a2); }
.esc-bar { display: flex; flex-wrap: wrap; gap: var(--s3); align-items: end; margin-bottom: var(--s4); } .esc-bar .field { margin: 0; min-width: 180px; } .esc-bar select, .esc-bar input { min-height: 42px; }
.esc-bar-act { margin-left: auto; display: flex; gap: var(--s2); flex-wrap: wrap; align-items: center; }
.chamada { margin-bottom: var(--s4); } .chamada-head { display: flex; flex-wrap: wrap; gap: var(--s3); align-items: end; margin-bottom: var(--s3); } .chamada-head .esc-h2 { margin: 0 auto 6px 0; } .chamada-head .field { margin: 0; } .chamada-head .pill { margin-bottom: 10px; }
.chamada-tools { display: flex; gap: var(--s2); align-items: center; flex-wrap: wrap; margin-bottom: var(--s2); }
.ch-row { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; align-items: center; gap: var(--s3); padding: 8px var(--s2); border-bottom: 1px solid var(--line-2); }
.ch-n { color: var(--ink-3); font: 800 var(--t-sm) var(--display); text-align: right; } .ch-name { display: grid; font-weight: 700; } .ch-name small { color: var(--ink-3); font-weight: 500; font-size: var(--t-xs); }
.ch-seg { display: inline-flex; gap: 4px; } .ch-opt { position: relative; } .ch-opt input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; width: 100%; height: 100%; }
.ch-opt span { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 10px; border: 1px solid var(--line); background: var(--foam); font: 800 var(--t-md)/1 var(--display); color: var(--ink-3); }
.ch-opt input:focus-visible + span { outline: 3px solid var(--focus); outline-offset: 2px; }
.ch-opt.P input:checked + span { background: #0c5f37; border-color: #2fb36a; color: #fff; } .ch-opt.F input:checked + span { background: #7a2416; border-color: #e0604a; color: #fff; }
.ch-opt.J input:checked + span, .ch-opt.A input:checked + span { background: #5a4220; border-color: #d9a648; color: #fff; }
.esc-sheet-head { display: flex; justify-content: space-between; align-items: start; gap: var(--s3); flex-wrap: wrap; margin-bottom: var(--s2); } .esc-sheet-head .esc-h2 { margin: 0; }
.freq-table th, .freq-table td { padding: 6px 4px; text-align: center; font-size: var(--t-xs); } .freq-table th.l, .freq-table td.l { text-align: left; white-space: nowrap; font-size: var(--t-sm); }
.freq-table th.off a { color: var(--ink-3); } .freq-table td.mk.P { color: var(--green-text); font-weight: 800; } .freq-table td.mk.F { color: var(--err-ink, #ffb4a2); font-weight: 800; } .freq-table td.mk.J, .freq-table td.mk.A { color: var(--sand-ink, #f3cf99); font-weight: 800; }
.plan-table td { text-align: center; } .plan-table td.l, .plan-table th.l { text-align: left; } .plan-table tr.grp th { background: var(--foam); font: 800 var(--t-sm) var(--display); letter-spacing: .02em; padding-top: 10px; }
.plan-table input { width: 20px; height: 20px; }
.rel-nums { display: flex; flex-wrap: wrap; gap: 6px var(--s3); padding: var(--s3); border-radius: var(--r2); background: var(--foam); margin: var(--s2) 0 var(--s3); font-size: var(--t-sm); } .rel-nums b { width: 100%; }
.rel-check { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 6px; margin: var(--s2) 0 var(--s3); }
.rel-fotos { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: var(--s2); margin-top: var(--s3); } .rel-fotos img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--r2); }
.esc-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: var(--s4); }
.esc-card { display: grid; gap: 6px; align-content: start; } .esc-card.off { opacity: .65; } .esc-card header { display: flex; justify-content: space-between; gap: var(--s2); } .esc-card h3 { margin: 0; font-size: var(--t-xl); } .esc-card p { margin: 0; }
.esc-vagas { height: 8px; border-radius: 4px; background: var(--foam); overflow: hidden; margin-top: 6px; } .esc-vagas span { display: block; height: 100%; width: var(--v); background: linear-gradient(90deg, #0c5f37, var(--sun)); }
.esc-dias { display: flex; flex-wrap: wrap; gap: 6px; border: 1px solid var(--line); border-radius: var(--r2); padding: var(--s3); margin-top: var(--s3); } .esc-dias legend { font-weight: 700; padding: 0 6px; }
.esc-aluno-head { display: flex; justify-content: space-between; align-items: end; gap: var(--s3); flex-wrap: wrap; margin: var(--s3) 0 var(--s4); } .esc-aluno-head h1 { font-size: var(--t-3xl); margin: 0; } .esc-aluno-head p { margin: 4px 0 0; }
.esc-up { display: flex; flex-wrap: wrap; gap: var(--s3); align-items: end; margin-bottom: var(--s4); } .esc-up .field { margin: 0; min-width: 220px; }
.esc-files li { display: grid; grid-template-columns: 20px minmax(0, 1fr) auto auto; gap: var(--s3); align-items: center; padding: var(--s3); border: 1px solid var(--line-2); border-radius: var(--r2); background: var(--paper); } .esc-files svg { width: 18px; height: 18px; color: var(--sun); }
@media print {
  .esc-head, .esc-tabs, .esc-bar, .chamada, .esc-entry { display: none !important; }
  .esc-sheet { border: 0; box-shadow: none; } .freq-table th, .freq-table td { border: 1px solid #999; color: #000 !important; }
}

/* escolinhas: acompanhamento de frequência baixa */
.bx-info { margin-bottom: var(--s4); } .bx-info p { margin: 0; }
.bx-turma { margin-bottom: var(--s4); } .bx-turma h2 span { font-family: var(--sans); margin-left: 6px; }
.bx-list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s3); }
.bx-item { padding: var(--s3); border: 1px solid var(--line-2); border-radius: var(--r2); background: var(--foam); display: grid; gap: 6px; }
.bx-top { display: flex; justify-content: space-between; gap: var(--s3); align-items: center; } .bx-item p { margin: 0; }
.bx-faltas { display: flex; flex-wrap: wrap; gap: 6px; }
.bx-falta { display: inline-flex; align-items: center; gap: 6px; padding: 3px 4px 3px 10px; border-radius: 999px; font-size: var(--t-xs); font-weight: 700; background: color-mix(in srgb, #e0604a 18%, transparent); border: 1px solid #7a2416; }
.bx-falta.J, .bx-falta.A { background: color-mix(in srgb, #d9a648 16%, transparent); border-color: #5a4220; }
.bx-falta .btn.sm { min-height: 28px; padding: 2px 10px; }

/* ===== Rede ASPAB: menu lateral e telas ===== */
.esc-layout { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: var(--s5); align-items: start; }
.esc-side { position: sticky; top: 84px; display: grid; gap: var(--s3); padding: var(--s3); border: 1px solid var(--line-2); border-radius: var(--r3); background: var(--paper); max-height: calc(100vh - 100px); overflow: auto; }
.esc-brand { display: flex; gap: var(--s2); align-items: center; padding-bottom: var(--s3); border-bottom: 1px solid var(--line-2); }
.esc-brand img { width: 56px; height: 56px; object-fit: contain; flex: none; }
.esc-brand div { display: grid; min-width: 0; } .esc-brand b { font: 850 var(--t-lg)/1.1 var(--display); letter-spacing: .012em; } .esc-brand span { font-size: var(--t-xs); color: var(--ink-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.esc-nav { display: grid; gap: 2px; }
.esc-nav button { display: flex; align-items: center; gap: 10px; width: 100%; text-align: left; padding: 10px 12px; border: 0; border-radius: var(--r2); background: transparent; color: var(--ink-2); font: 700 var(--t-sm) var(--sans); cursor: pointer; min-height: 44px; position: relative; }
.esc-nav button svg { width: 18px; height: 18px; flex: none; }
.esc-nav button:hover { background: var(--hover); color: var(--ink); }
.esc-nav button.active { background: color-mix(in srgb, var(--sun) 14%, transparent); color: var(--ink); }
.esc-nav button.active::before { content: ''; position: absolute; left: 0; top: 8px; bottom: 8px; width: 3px; border-radius: 2px; background: var(--sun); }
.esc-out { justify-self: start; }
.esc-main { min-width: 0; }
.esc-title { font-size: var(--t-3xl); margin: 0 0 var(--s4); }
@media (max-width: 900px) {
  .esc-layout { grid-template-columns: 1fr; }
  .esc-side { position: static; max-height: none; }
  .esc-nav { display: flex; overflow-x: auto; gap: 4px; } .esc-nav button { width: auto; white-space: nowrap; }
  .esc-nav button.active::before { left: 10px; right: 10px; top: auto; bottom: 2px; width: auto; height: 3px; }
}
.esc-login { margin-top: var(--s4); max-width: 420px; display: grid; gap: var(--s2); } .esc-login .field { margin: 0; }
.esc-filters { display: flex; flex-wrap: wrap; gap: var(--s3); align-items: end; margin-bottom: var(--s3); padding: var(--s3) var(--s4); }
.esc-filters .field { margin: 0; min-width: 150px; } .esc-filters select, .esc-filters input { min-height: 40px; }
.pd-list { list-style: none; margin: 0 0 var(--s2); padding: 0; display: grid; gap: var(--s2); }
.pd-list li { display: flex; flex-wrap: wrap; align-items: center; gap: 6px var(--s2); padding: var(--s2) 0; border-bottom: 1px dashed var(--line-2); }
.pd-dates { display: flex; flex-wrap: wrap; gap: 4px; width: 100%; }
.pd-date { display: inline-flex; align-items: center; min-height: 28px; padding: 2px 10px; border-radius: 999px; font: 800 var(--t-xs)/1 var(--sans); color: var(--ink); text-decoration: none; background: color-mix(in srgb, var(--sun) 18%, transparent); border: 1px solid color-mix(in srgb, var(--sun) 45%, transparent); }
.pd-date:hover { border-color: var(--sun); }
.freq-days { margin-bottom: var(--s3); padding: var(--s3) var(--s4); }
.fd-list { display: flex; flex-wrap: wrap; gap: 6px; margin: var(--s2) 0; }
.fd { display: grid; place-items: center; width: 54px; min-height: 52px; border-radius: var(--r2); text-decoration: none; color: var(--ink); border: 1px solid var(--line); background: var(--foam); }
.fd b { font: 800 var(--t-lg)/1 var(--wide, var(--display)); } .fd span { font-size: 11px; color: var(--ink-3); }
.fd.ok { border-color: #2fb36a; background: color-mix(in srgb, #2fb36a 14%, var(--foam)); }
.fd.miss { border-color: color-mix(in srgb, var(--sun) 60%, transparent); background: color-mix(in srgb, var(--sun) 12%, var(--foam)); }
.fd.on { outline: 3px solid var(--focus); outline-offset: 2px; }
.dia-list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s2); }
.dia-item { padding: var(--s3) var(--s4); } .dia-item header { display: flex; flex-wrap: wrap; align-items: center; gap: 4px var(--s3); margin-bottom: 6px; } .dia-item header .btn { margin-left: auto; }
.dia-item p { margin: 0 0 4px; } .dia-item.vazio { border-color: color-mix(in srgb, var(--sun) 45%, transparent); }
.ev-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: var(--s4); }
.ev-card { padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.ev-fotos { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2px; } .ev-fotos img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.ev-fotos a:only-child { grid-column: span 2; }
.ev-body { padding: var(--s3) var(--s4) var(--s4); display: grid; gap: 6px; } .ev-body h3 { margin: 0; font-size: var(--t-xl); } .ev-body p { margin: 0; }
.nuc-list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s2); }
.nuc-item { padding: 0; overflow: hidden; } .nuc-item.open { border-color: var(--sun); }
.nuc-head { display: flex; align-items: center; gap: var(--s3); width: 100%; padding: var(--s3) var(--s4); border: 0; background: transparent; color: var(--ink); text-align: left; cursor: pointer; min-height: 56px; }
.nuc-head:hover { background: var(--hover); } .nuc-head > svg { width: 18px; height: 18px; flex: none; color: var(--ink-3); }
.nuc-name { display: grid; flex: 1; min-width: 0; } .nuc-name b { font: 850 var(--t-lg)/1.1 var(--display); letter-spacing: .012em; }
.nuc-nums { display: flex; gap: var(--s3); align-items: center; font-size: var(--t-sm); color: var(--ink-2); flex-wrap: wrap; justify-content: flex-end; }
.nuc-body { padding: 0 var(--s4) var(--s4); display: grid; gap: var(--s3); } .nuc-body p { margin: 0; }

/* Rede ASPAB: período de vigência */
.vig-bar { display: flex; align-items: center; flex-wrap: wrap; gap: var(--s2) var(--s3); margin-bottom: var(--s4); padding: var(--s3) var(--s4); border-radius: var(--r3); border: 1px solid var(--line-2); background: var(--paper); font-size: var(--t-sm); }
.vig-bar > svg { width: 20px; height: 20px; flex: none; color: var(--ink-3); } .vig-bar > span { flex: 1; min-width: 200px; } .vig-bar .btn { margin-left: auto; }
.vig-bar.encerrado { border-color: color-mix(in srgb, var(--sun) 55%, transparent); background: color-mix(in srgb, var(--sun) 10%, var(--paper)); }
.vig-bar.vigente { border-color: color-mix(in srgb, #2fb36a 50%, transparent); }
.vig-list { list-style: none; margin: 0 0 var(--s3); padding: 0; display: grid; gap: var(--s2); }
.vig-list li { display: flex; align-items: center; flex-wrap: wrap; gap: var(--s2); padding: var(--s2) 0; border-bottom: 1px dashed var(--line-2); } .vig-list .actions { margin-left: auto; display: flex; gap: 6px; }

/* Rede ASPAB: alternância Frequência / Diários */
.esc-seg { display: inline-flex; flex-wrap: wrap; gap: 4px; padding: 4px; margin-bottom: var(--s4); border: 1px solid var(--line-2); border-radius: 999px; background: var(--paper); }
.esc-seg button { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 6px 16px; border: 0; border-radius: 999px; background: transparent; color: var(--ink-2); font: 700 var(--t-sm) var(--sans); cursor: pointer; }
.esc-seg button svg { width: 16px; height: 16px; }
.esc-seg button:hover { color: var(--ink); background: var(--hover); }
.esc-seg button.active { background: color-mix(in srgb, var(--sun) 18%, transparent); color: var(--ink); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--sun) 55%, transparent); }
input[data-upper] { text-transform: uppercase; }

/* Rede ASPAB: avaliações técnicas no núcleo */
.av-sec { border-top: 1px solid var(--line-2); padding-top: var(--s3); display: grid; gap: var(--s2); }
.av-head { display: flex; flex-wrap: wrap; gap: var(--s2) var(--s4); align-items: end; justify-content: space-between; } .av-head p { margin: 4px 0 0; max-width: 70ch; }
.av-head .actions { display: flex; gap: var(--s2); align-items: end; flex-wrap: wrap; } .av-head .field { margin: 0; min-width: 160px; }
.av-table td, .av-table th { text-align: center; white-space: nowrap; } .av-table td.l, .av-table th.l { text-align: left; white-space: normal; }
.av-table td small { display: block; font-size: 11px; } .av-table td b { font-variant-numeric: tabular-nums; }
.av-ev { font: 800 var(--t-xs)/1 var(--sans); font-variant-numeric: tabular-nums; padding: 3px 7px; border-radius: 999px; background: var(--foam); }
.av-ev.up { color: #57d38c; background: color-mix(in srgb, #2fb36a 16%, transparent); } .av-ev.down { color: #ff8a7a; background: color-mix(in srgb, #e5533d 16%, transparent); }
.av-obs td { padding-top: 0; border-top: 0; }
.linklike { background: none; border: 0; padding: 0; color: var(--ink); font: inherit; font-weight: 700; text-align: left; cursor: pointer; text-decoration: underline; text-decoration-color: var(--line); text-underline-offset: 3px; }
.linklike:hover { text-decoration-color: var(--sun); }

/* Rede ASPAB: tabelas cabem na área ao lado do menu (nomes quebram linha; o que ainda sobrar rola, nunca corta) */
.esc-main .table-wrap { overflow-x: auto; }
.esc-main table { width: 100%; }
.esc-main td.l, .esc-main th.l { white-space: normal; overflow-wrap: break-word; }
.esc-main td.l b, .esc-main td.l a { white-space: normal; }

/* Rede ASPAB: registro de alterações */
.log-list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s2); }
.log-item { padding: var(--s3) var(--s4); }
.log-item header { display: flex; flex-wrap: wrap; align-items: center; gap: 6px var(--s3); }
.log-item header .pill { display: inline-flex; align-items: center; gap: 4px; } .log-item header .pill svg { width: 14px; height: 14px; }
.log-desc { min-width: 0; overflow-wrap: anywhere; } .log-meta { margin-left: auto; white-space: nowrap; }
.log-alt { list-style: none; margin: var(--s2) 0 0; padding: var(--s2) 0 0; border-top: 1px dashed var(--line-2); display: grid; gap: 4px; font-size: var(--t-sm); }
.log-alt li { display: flex; flex-wrap: wrap; gap: 4px 8px; overflow-wrap: anywhere; } .log-alt s { color: var(--ink-3); }
.log-campo { color: var(--ink-3); min-width: 120px; }
.pill.bad { color: #ff9a8a; background: color-mix(in srgb, #e5533d 16%, transparent); border-color: color-mix(in srgb, #e5533d 45%, transparent); }

/* Rede ASPAB: Departamento pessoal e Financeiro */
.chip { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 4px 12px; border-radius: 999px; border: 1px solid var(--line-2); background: var(--paper); color: var(--ink-2); font: 700 var(--t-sm) var(--sans); cursor: pointer; }
.chip b { font-variant-numeric: tabular-nums; color: var(--ink); } .chip.on { border-color: var(--sun); background: color-mix(in srgb, var(--sun) 16%, var(--paper)); color: var(--ink); }
.dp-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: var(--s3); }
.dp-sec { margin-top: var(--s4); display: grid; gap: var(--s2); }
.dp-contrs { display: grid; gap: var(--s3); grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); }
.dp-contr { display: grid; gap: var(--s2); } .dp-contr header { display: flex; flex-wrap: wrap; gap: var(--s2); align-items: start; } .dp-contr header > div { flex: 1; min-width: 160px; } .dp-contr h3 { margin: 0; } .dp-contr header p { margin: 2px 0 0; }
.dp-steps { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px; counter-reset: st; }
.dp-steps li { counter-increment: st; font-size: 12px; padding: 4px 10px; border-radius: 999px; background: var(--foam); color: var(--ink-3); } .dp-steps li::before { content: counter(st) '. '; }
.dp-steps li.done { color: var(--ink-2); background: color-mix(in srgb, #2fb36a 14%, var(--foam)); } .dp-steps li.on { color: var(--ink); font-weight: 800; background: color-mix(in srgb, var(--sun) 22%, var(--foam)); outline: 1px solid var(--sun); }
.dp-hist summary { cursor: pointer; font-size: var(--t-sm); color: var(--ink-2); } .dp-hist ul { list-style: none; margin: 6px 0 0; padding: 0; display: grid; gap: 6px; font-size: var(--t-sm); }
.fin-contas { display: grid; gap: var(--s3); grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); margin-bottom: var(--s4); }
.fin-conta { display: grid; gap: 2px; text-align: left; padding: var(--s3) var(--s4); cursor: pointer; color: var(--ink); font: inherit; } .fin-conta:hover { border-color: var(--sun); }
.fin-conta b { font: 850 var(--t-lg)/1.15 var(--display); } .fin-saldo { font: 800 var(--t-xl)/1.2 var(--sans); font-variant-numeric: tabular-nums; color: #57d38c; } .fin-saldo.neg { color: #ff8a7a; }
.fin-conta.nova { border-style: dashed; color: var(--ink-2); } .fin-conta.nova svg { width: 18px; height: 18px; }
.fin-acts .esc-bar-act { display: flex; flex-wrap: wrap; gap: var(--s2); }
.fin-val { font-weight: 800; font-variant-numeric: tabular-nums; white-space: nowrap; } .fin-val.despesa { color: #ff9a8a; } .fin-val.receita { color: #57d38c; }
.fin-off td { opacity: .55; } .fin-off .fin-val { text-decoration: line-through; }
.fin-cats { margin-top: var(--s4); } .fin-cats ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.fin-cats li { display: grid; grid-template-columns: minmax(140px, 220px) 1fr auto; gap: var(--s3); align-items: center; font-size: var(--t-sm); }
.fin-bar { height: 10px; border-radius: 999px; background: var(--foam); overflow: hidden; } .fin-bar i { display: block; height: 100%; background: var(--sun); border-radius: 999px; }
.fin-comps { display: flex; flex-wrap: wrap; gap: 6px var(--s3); margin-bottom: 6px; }
@media (max-width: 560px) { .fin-cats li { grid-template-columns: 1fr auto; } .fin-cats .fin-bar { grid-column: 1 / -1; } }
.fin-stats .stat b { font-size: clamp(1.125rem, 1.9vw, 1.6rem); white-space: nowrap; font-variant-numeric: tabular-nums; }

/* DP: documentos para aprovação */
.dp-aguard { margin-bottom: var(--s4); border-color: color-mix(in srgb, var(--sun) 55%, transparent); }
.dp-aguard ul { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s2); }
.dp-aguard li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--s2); padding: var(--s2) 0; border-bottom: 1px dashed var(--line-2); }
.dp-acts { display: flex; flex-wrap: wrap; gap: 6px; align-items: start; }
.dp-proc h4 { margin: var(--s2) 0 6px; } .dp-proc ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; counter-reset: it; }
.dp-item { counter-increment: it; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px var(--s3); padding: var(--s2) var(--s3); border-radius: var(--r2); background: var(--foam); border-left: 3px solid var(--line-2); }
.dp-item > div:first-child { flex: 1; min-width: 220px; } .dp-item > div:first-child > b::before { content: counter(it) '. '; color: var(--ink-3); }
.dp-item.enviado { border-left-color: var(--sun); } .dp-item.aprovado { border-left-color: #2fb36a; } .dp-item.recusado { border-left-color: #e5533d; } .dp-item.nao_aplica { opacity: .7; }
.dp-motivo { color: #ff9a8a; }
.dp-contrs { grid-template-columns: 1fr; }


/* ===== Escala compacta (legibilidade sem poluição) =====
   Base de 15px e degraus de ~1,2×. Títulos de seção do sistema em caixa normal; maiúsculas condensadas só nas manchetes públicas.
   Alvos de toque continuam ≥ 32px (WCAG 2.5.8 pede 24px) e o menor texto fica em 12,5px. */
:root { --t-xs: .78125rem; --t-sm: .875rem; --t-md: .9375rem; --t-lg: 1.0625rem; --t-xl: 1.25rem; --t-2xl: 1.5rem; --t-3xl: 1.875rem; --t-4xl: 2.5rem; }
body { font-size: var(--t-md); line-height: 1.55; }
h1 { font-size: clamp(1.875rem, 4.2vw, 3.25rem); }
h2 { font-size: clamp(1.375rem, 2.3vw, 1.75rem); }
h3 { font-size: var(--t-lg); }
.page-head { padding: var(--s6) 0 var(--s2); } .page-head.compact h1 { font-size: var(--t-2xl); }
.card { padding: var(--s4); }
.stats-strip { gap: var(--s2); margin-bottom: var(--s4); }
.stat { padding: var(--s3) var(--s4); gap: 0; } .stat b { font-size: var(--t-2xl); } .stat span { font-size: var(--t-xs); }
.btn { min-height: 40px; padding: 0 var(--s4); } .btn.sm { min-height: 32px; padding: 0 var(--s3); font-size: .8125rem; } .btn.lg { min-height: 48px; }
input, select, textarea { min-height: 40px; font-size: var(--t-md); } textarea { padding-top: 8px; padding-bottom: 8px; }
label { font-size: .8125rem; margin-bottom: 4px; } .field { margin-bottom: var(--s3); }
th { padding: 9px var(--s2); } td { padding: 8px var(--s2); }
.pill { padding: 2px 9px; }
.topbar .wrap { min-height: 60px; gap: var(--s4); } .nav a, .nav a { min-height: 38px; padding: 6px var(--s3); }
.logo img { height: 40px; }
.footer .brand img { height: 48px; }
/* Rede ASPAB e áreas de gestão */
.esc-layout { grid-template-columns: 224px minmax(0, 1fr); gap: var(--s4); }
.esc-side { padding: var(--s2); gap: var(--s2); }
.esc-brand img { width: 63px; height: 42px; } .esc-brand b { font-size: var(--t-md); }
.esc-nav button { min-height: 36px; padding: 7px 10px; font-size: var(--t-sm); gap: 9px; } .esc-nav button svg { width: 16px; height: 16px; }
.esc-title { font-size: 1.625rem; margin-bottom: var(--s3); text-transform: none; letter-spacing: 0; }
.esc-h2 { font: 700 var(--t-lg)/1.3 var(--sans); text-transform: none; letter-spacing: 0; margin-bottom: var(--s2); }
.esc-h3 { font: 700 var(--t-md)/1.3 var(--sans); text-transform: none; letter-spacing: 0; margin: var(--s3) 0 6px; }
.esc-entry img { width: 45px; height: 30px; }
.esc-logo-xl { width: 240px; height: auto; }
.esc-filters { padding: var(--s2) var(--s3); gap: var(--s2); } .esc-filters .field { min-width: 132px; }
.nuc-head { min-height: 48px; padding: var(--s2) var(--s3); } .nuc-name b { font-size: var(--t-md); }
.dia-item, .log-item { padding: var(--s2) var(--s3); }
.ev-body h3 { font-size: var(--t-lg); }
.fd { width: 48px; min-height: 46px; } .fd b { font-size: var(--t-md); }
@media (max-width: 900px) { .esc-layout { grid-template-columns: 1fr; } }
/* painéis de números: uma linha só em telas largas, sem ícone decorativo (o rótulo já diz o que é) */
.esc-stats { grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); }
.esc-stats .stat > svg, .esc-stats .stat > .i { display: none; }
.nav { gap: 2px; min-width: 0; } .nav a { white-space: nowrap; }
@media (max-width: 1120px) { .nav a { padding: 6px 10px; } .esc-entry span { display: none; } }

/* =====================================================================================
   REDE ASPAB — identidade própria ("caderneta de chamada")
   Claro, de giz e papel; tinta azul-marinho dos pontos da logo; laranja da bola só como destaque.
   Títulos em Schibsted Grotesk (caixa normal), texto em Atkinson Hyperlegible.
   Tudo restrito a html[data-area="rede"]: o site da liga continua igual.
   ===================================================================================== */
:root[data-area="rede"] {
  --rd-giz: #f3f5f7; --rd-papel: #ffffff; --rd-tinta: #13213d; --rd-tinta-2: #3a4763; --rd-tinta-3: #5b6782;
  --rd-linha: #d9dfe7; --rd-linha-2: #e8ecf1; --rd-bola: #e8731a; --rd-bola-texto: #a94b0a; --rd-bola-fundo: #fff1e4;
  --rd-head: 'Montserrat', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --foam: var(--rd-giz); --foam-2: #e6eaf0; --paper: var(--rd-papel); --hover: #f0f3f7; --skeleton-hi: #f7f9fb;
  --ink: var(--rd-tinta); --ink-2: var(--rd-tinta-2); --ink-3: var(--rd-tinta-3); --line: var(--rd-linha); --line-2: var(--rd-linha-2);
  --sun: var(--rd-bola); --on-sun: #ffffff; --sun-hover: #d4650f;
  --blue-text: #1f4fa3; --green-text: #1d7343; --sail-green: #1d7343; --sail-green-ink: #1d7343; --green-hover: #165c36; --tint-green: #e3f3e9;
  --ok-bg: #e2f2e8; --ok-ink: #145c33; --sand: #fdecd7; --sand-ink: #7d4108; --sand-line: #f2cf9f;
  --err-bg: #fce8e4; --err-line: #f1b9ad; --err-ink: #9f2d1a; --live: #c2412d; --live-hover: #a3301c;
  --btn-dark: var(--rd-tinta); --btn-dark-hover: #22345a; --focus: #1f4fa3;
  --shadow: 0 1px 2px rgba(19,33,61,.05); --ceara-op: 0;
  --display: var(--rd-head); --wide: var(--rd-head);
  color-scheme: light;
}
[data-area="rede"] body { background: var(--rd-giz); color: var(--rd-tinta); }
[data-area="rede"] body::before, [data-area="rede"] #topbar, [data-area="rede"] .footer { display: none; }
[data-area="rede"] main { padding: 0; }
[data-area="rede"] h1, [data-area="rede"] h2, [data-area="rede"] h3, [data-area="rede"] h4 { font-family: var(--rd-head); text-transform: none; letter-spacing: -.01em; color: var(--rd-tinta); }
[data-area="rede"] :focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }

/* barra superior */
.rd-app { min-height: 100vh; }
.rd-top { position: sticky; top: 0; z-index: 30; display: flex; align-items: center; gap: var(--s4); min-height: 60px; padding: 0 var(--s5); background: var(--rd-papel); border-bottom: 1px solid var(--rd-linha); }
.rd-brand { display: flex; align-items: center; gap: 10px; color: var(--rd-tinta); text-decoration: none; }
.rd-brand img { width: 54px; height: 36px; object-fit: contain; }
.rd-brand b { display: block; font: 800 1.0625rem/1.1 var(--rd-head); letter-spacing: -.015em; } .rd-brand small { display: block; font-size: .78125rem; color: var(--rd-tinta-3); }
.rd-who { margin-left: auto; display: flex; align-items: center; gap: var(--s3); }
.rd-user { display: grid; text-align: right; line-height: 1.2; } .rd-user b { font-size: .875rem; } .rd-user small { font-size: .78125rem; color: var(--rd-tinta-3); }
.rd-link { color: var(--rd-tinta-2); font-size: .875rem; font-weight: 600; text-decoration: underline; text-decoration-color: var(--rd-linha); text-underline-offset: 3px; display: inline-flex; align-items: center; gap: 6px; }
.rd-link:hover { color: var(--rd-tinta); text-decoration-color: var(--rd-bola); }
.rd-link svg { width: 16px; height: 16px; }

/* menu lateral agrupado */
.rd-body { display: grid; grid-template-columns: 236px minmax(0, 1fr); }
.rd-rail { position: sticky; top: 60px; align-self: start; height: calc(100vh - 60px); overflow-y: auto; padding: var(--s5) var(--s3) var(--s6); background: var(--rd-papel); border-right: 1px solid var(--rd-linha); }
.rd-group + .rd-group { margin-top: var(--s4); padding-top: var(--s4); border-top: 1px solid var(--rd-linha-2); }
.rd-group h2 { margin: 0 10px 6px; font: 600 .78125rem/1.2 var(--sans); color: var(--rd-tinta-3); letter-spacing: 0; }
.rd-rail button { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 36px; padding: 7px 10px; border: 0; border-radius: 8px; background: none; color: var(--rd-tinta-2); font: 600 .875rem/1.2 var(--sans); text-align: left; cursor: pointer; }
.rd-rail button svg { width: 17px; height: 17px; flex: none; color: var(--rd-tinta-3); }
.rd-rail button:hover { background: var(--hover); color: var(--rd-tinta); }
.rd-rail button.active { background: var(--rd-bola-fundo); color: var(--rd-tinta); }
.rd-rail button.active svg { color: var(--rd-bola-texto); }
.rd-rail button.active::after { content: ''; flex: none; width: 9px; height: 9px; margin-left: auto; border-radius: 50%; background: var(--rd-bola); box-shadow: inset -2px -2px 0 rgba(0,0,0,.12); }

/* página */
.rd-main { min-width: 0; padding: var(--s6) clamp(16px, 3vw, 40px) var(--s8); max-width: 1280px; }
.rd-head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: var(--s2) var(--s5); padding-bottom: var(--s4); margin-bottom: var(--s5); border-bottom: 1px solid var(--rd-linha); }
.rd-head h1 { margin: 0; font: 800 1.75rem/1.15 var(--rd-head); letter-spacing: -.02em; }
.rd-head p { margin: 4px 0 0; color: var(--rd-tinta-3); font-size: .9375rem; max-width: 68ch; }
[data-area="rede"] .esc-main { display: grid; gap: var(--s5); align-content: start; }
[data-area="rede"] .esc-main > * { margin-top: 0; margin-bottom: 0; }

/* superfícies: papel com borda fina, sem sombra pesada; hierarquia por divisórias */
[data-area="rede"] .card { background: var(--rd-papel); border: 1px solid var(--rd-linha); border-radius: 12px; box-shadow: none; padding: var(--s4) var(--s5); }
[data-area="rede"] .card.pad0 { padding: 0; }
[data-area="rede"] .esc-h2 { font: 700 1.0625rem/1.3 var(--rd-head); letter-spacing: -.01em; margin: 0 0 var(--s3); padding-bottom: var(--s2); border-bottom: 1px solid var(--rd-linha-2); display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
[data-area="rede"] .esc-h3 { font: 700 .9375rem/1.3 var(--rd-head); margin: var(--s4) 0 6px; }
[data-area="rede"] .esc-grid2 { gap: var(--s4); }

/* números do painel: uma faixa só, dividida */
[data-area="rede"] .stats-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(118px, 1fr)); gap: 0; margin: 0; background: var(--rd-papel); border: 1px solid var(--rd-linha); border-radius: 12px; overflow: hidden; }
[data-area="rede"] .stat { border: 0; border-radius: 0; box-shadow: none; background: none; padding: var(--s3) var(--s4); border-right: 1px solid var(--rd-linha-2); }
[data-area="rede"] .stat:last-child { border-right: 0; }
[data-area="rede"] .stat > svg, [data-area="rede"] .stat > .i { display: none; }
[data-area="rede"] .stat b { font: 800 1.5rem/1.1 var(--rd-head); color: var(--rd-tinta); letter-spacing: -.02em; }
[data-area="rede"] .stat span { font-size: .78125rem; color: var(--rd-tinta-3); }
[data-area="rede"] .stat.warn b { color: var(--rd-bola-texto); }

/* tabelas planas */
[data-area="rede"] table { font-size: .875rem; }
[data-area="rede"] th { background: #f7f9fb; color: var(--rd-tinta-3); font: 600 .78125rem var(--sans); border-bottom: 1px solid var(--rd-linha); }
[data-area="rede"] td { border-bottom: 1px solid var(--rd-linha-2); }
[data-area="rede"] tbody tr:hover { background: #fafbfc; }

/* controles */
[data-area="rede"] .btn { background: var(--rd-tinta); color: #fff; border-radius: 8px; font-weight: 700; }
[data-area="rede"] .btn:hover { background: #22345a; }
[data-area="rede"] .btn.ghost { background: var(--rd-papel); color: var(--rd-tinta); border-color: var(--rd-linha); }
[data-area="rede"] .btn.ghost:hover { background: var(--hover); border-color: var(--rd-tinta-3); }
[data-area="rede"] .btn.danger, [data-area="rede"] .btn.ghost.danger { color: var(--err-ink); }
[data-area="rede"] input, [data-area="rede"] select, [data-area="rede"] textarea { background: var(--rd-papel); border-color: var(--rd-linha); border-radius: 8px; color: var(--rd-tinta); }
[data-area="rede"] input:focus, [data-area="rede"] select:focus, [data-area="rede"] textarea:focus { border-color: var(--focus); box-shadow: 0 0 0 3px rgba(31,79,163,.16); }
[data-area="rede"] label { color: var(--rd-tinta-2); }
[data-area="rede"] .pill { font-weight: 700; }
[data-area="rede"] .pill.warn { background: var(--sand); color: var(--sand-ink); }
[data-area="rede"] .chip { background: var(--rd-papel); border-color: var(--rd-linha); color: var(--rd-tinta-2); }
[data-area="rede"] .chip.on { background: var(--rd-bola-fundo); border-color: var(--rd-bola); color: var(--rd-tinta); }
[data-area="rede"] .esc-filters { background: var(--rd-papel); }
[data-area="rede"] .esc-seg { background: var(--rd-papel); border-color: var(--rd-linha); }
[data-area="rede"] .esc-seg button.active { background: var(--rd-bola-fundo); box-shadow: inset 0 0 0 1px var(--rd-bola); }
[data-area="rede"] .pd-date { background: var(--rd-bola-fundo); border-color: #f3c08e; color: var(--rd-bola-texto); }
[data-area="rede"] .fd { background: var(--rd-papel); border-color: var(--rd-linha); }
[data-area="rede"] .fd.ok { background: #e9f6ee; border-color: #8fd0a9; } [data-area="rede"] .fd.miss { background: #fff4e8; border-color: #f3c08e; }
[data-area="rede"] .vig-bar { background: var(--rd-papel); border-color: var(--rd-linha); border-left: 4px solid var(--rd-tinta-3); border-radius: 10px; margin: 0; }
[data-area="rede"] .vig-bar.encerrado { border-left-color: var(--rd-bola); background: #fffaf4; } [data-area="rede"] .vig-bar.vigente { border-left-color: #2f9e5e; }
[data-area="rede"] .fin-conta { border-radius: 12px; } [data-area="rede"] .fin-saldo { color: #1d7343; } [data-area="rede"] .fin-saldo.neg, [data-area="rede"] .fin-val.despesa { color: #b3321d; } [data-area="rede"] .fin-val.receita { color: #1d7343; }
[data-area="rede"] .av-ev.up { color: #145c33; background: #e2f2e8; } [data-area="rede"] .av-ev.down { color: #9f2d1a; background: #fce8e4; }
[data-area="rede"] .dp-item { background: #f7f9fb; } [data-area="rede"] .dp-steps li { background: #eef1f5; } [data-area="rede"] .dp-motivo { color: #9f2d1a; }
[data-area="rede"] .log-alt s { color: var(--rd-tinta-3); }
[data-area="rede"] .nuc-item.open { border-color: var(--rd-bola); }
[data-area="rede"] .crumbs a { color: var(--rd-tinta-2); }
[data-area="rede"] dialog#modal { background: var(--rd-papel); color: var(--rd-tinta); border: 1px solid var(--rd-linha); }
[data-area="rede"] dialog#modal h3 { font: 800 1.125rem/1.2 var(--rd-head); text-transform: none; }

/* entrada (sem login) */
.rd-entry { min-height: 100vh; display: grid; align-content: center; padding: var(--s7) var(--s4); position: relative; background: var(--rd-giz); }
.rd-back { position: absolute; top: var(--s4); left: var(--s4); }
.rd-entry .esc-hero-in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 400px); gap: var(--s7); align-items: center; max-width: 960px; margin: 0 auto; width: 100%; }
.rd-entry-brand .esc-logo-xl { width: 180px; height: auto; margin-bottom: var(--s4); }
.rd-entry h1 { font: 800 clamp(2rem, 4vw, 2.75rem)/1.05 var(--rd-head); letter-spacing: -.025em; margin: 0 0 var(--s3); }
.rd-entry .lead { font-size: 1.0625rem; color: var(--rd-tinta-2); max-width: 44ch; margin: 0 0 var(--s2); }
.rd-entry .esc-login { margin: 0; max-width: none; padding: var(--s5); }

/* telas estreitas: menu vira uma faixa rolável acima do conteúdo */
@media (max-width: 900px) {
  .rd-body { grid-template-columns: 1fr; }
  .rd-rail { position: sticky; top: 60px; z-index: 20; height: auto; display: flex; gap: 4px; overflow-x: auto; padding: 8px var(--s3); border-right: 0; border-bottom: 1px solid var(--rd-linha); }
  .rd-group { display: contents; } .rd-group h2 { display: none; }
  .rd-rail button { width: auto; white-space: nowrap; flex: none; } .rd-rail button.active::after { display: none; } .rd-rail button.active { box-shadow: inset 0 -3px 0 var(--rd-bola); }
  .rd-user, .rd-brand small { display: none; }
  .rd-main { padding-top: var(--s4); }
  .rd-entry .esc-hero-in { grid-template-columns: 1fr; gap: var(--s5); }
}
@media (max-width: 560px) { .rd-top { padding: 0 var(--s3); } .rd-who .rd-link { display: none; } .rd-head h1 { font-size: 1.5rem; } }
@media (prefers-reduced-motion: reduce) { [data-area="rede"] * { transition: none !important; } }

@media (max-width: 560px) { [data-area="rede"] .stats-strip { grid-template-columns: repeat(3, 1fr); } [data-area="rede"] .stat { padding: 10px 12px; border-bottom: 1px solid var(--rd-linha-2); } [data-area="rede"] .stat b { font-size: 1.25rem; } }

/* Rede ASPAB: painel em gráficos, pendências e WhatsApp */
.dash-filtro { margin: 0; } .dash-filtro .field { max-width: 320px; }
.dash-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 420px), 1fr)); gap: var(--s4); }
.dash-card.wide { grid-column: 1 / -1; }
.dash-bars { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.dash-bars li { display: grid; grid-template-columns: minmax(110px, 38%) 1fr auto; gap: var(--s3); align-items: center; font-size: .875rem; }
.db-l { color: var(--rd-tinta-2, var(--ink-2)); overflow-wrap: anywhere; } .db-t { height: 10px; border-radius: 999px; background: #eef1f5; overflow: hidden; } .db-t i { display: block; height: 100%; border-radius: 999px; }
.db-v { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; } .db-v small { color: var(--rd-tinta-3, var(--ink-3)); margin-left: 4px; }
.dash-donut { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s5); }
.dd-ring { width: 148px; height: 148px; border-radius: 50%; display: grid; place-items: center; flex: none; }
.dd-ring span { width: 96px; height: 96px; border-radius: 50%; background: var(--paper); display: grid; place-items: center; align-content: center; text-align: center; }
.dd-ring b { font: 800 1.25rem/1 var(--rd-head, var(--display)); } .dd-ring small { font-size: .75rem; color: var(--ink-3); }
.dash-donut ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; flex: 1; min-width: 180px; font-size: .875rem; }
.dash-donut li { display: grid; grid-template-columns: 12px 1fr auto auto; gap: 8px; align-items: center; } .dash-donut li i { width: 12px; height: 12px; border-radius: 3px; } .dash-donut li small { color: var(--ink-3); min-width: 34px; text-align: right; }
.pd-banner { display: flex; flex-wrap: wrap; align-items: center; gap: 6px var(--s3); padding: var(--s3) var(--s4); border-radius: 10px; background: #fff7ee; border: 1px solid #f3c08e; border-left: 4px solid var(--rd-bola, var(--sun)); color: var(--ink); text-decoration: none; font-size: .9375rem; }
.pd-banner svg { width: 18px; height: 18px; color: var(--rd-bola-texto, var(--sun)); } .pd-banner span:nth-child(2) { flex: 1; min-width: 200px; }
.pd-banner .pd-ver { font-weight: 700; text-decoration: underline; text-underline-offset: 3px; } .pd-banner:hover { border-color: var(--rd-bola, var(--sun)); }
.pd-wrap { display: grid; gap: var(--s4); max-width: 900px; }
.btn.wa-btn, [data-area="rede"] .btn.wa-btn { background: #18794a; color: #fff; border-color: transparent; } .btn.wa-btn:hover, [data-area="rede"] .btn.wa-btn:hover { background: #12603a; }
.inc-opts { display: flex; flex-wrap: wrap; gap: 8px var(--s4); margin-bottom: var(--s3); }

/* Rede ASPAB: mapa interativo do Ceará */
.mapa-wrap { display: grid; grid-template-columns: minmax(0, 560px) minmax(220px, 1fr); gap: var(--s5); align-items: start; }
.mapa-ce { width: 100%; height: auto; display: block; }
.mapa-ce path { stroke: #ffffff; stroke-width: 1.2; stroke-linejoin: round; cursor: pointer; transition: opacity .12s; }
.mapa-ce path.hov, .mapa-ce path.fix { stroke: var(--rd-bola, #e8731a); stroke-width: 3; }
.mapa-info { position: sticky; top: 80px; display: grid; gap: var(--s3); }
.mapa-det { display: grid; gap: 2px; padding: var(--s3) var(--s4); border: 1px solid var(--line); border-radius: 10px; background: #f7f9fb; min-height: 86px; align-content: center; }
.mapa-det b { font: 700 1.0625rem/1.2 var(--rd-head, var(--display)); } .mapa-num { font: 800 1.5rem/1.1 var(--rd-head, var(--display)); color: var(--rd-tinta, var(--ink)); }
.mapa-leg { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; font-size: .875rem; } .mapa-leg li { display: flex; align-items: center; gap: 8px; } .mapa-leg i { width: 18px; height: 12px; border-radius: 3px; border: 1px solid rgba(19,33,61,.12); }
@media (max-width: 760px) { .mapa-wrap { grid-template-columns: 1fr; } .mapa-info { position: static; } }
@media (prefers-reduced-motion: reduce) { .mapa-ce path { transition: none; } }

.mapa-nucs { list-style: none; margin: 6px 0 0; padding: 6px 0 0; border-top: 1px solid var(--line-2); display: grid; gap: 4px; font-size: .875rem; } .mapa-nucs li { display: flex; justify-content: space-between; gap: 12px; } .mapa-nucs b { font-variant-numeric: tabular-nums; }

/* Rede ASPAB: ciclos */
.rd-ciclo { display: flex; align-items: center; gap: 8px; margin: 0 0 0 auto; font: 600 .8125rem var(--sans); color: var(--rd-tinta-3, var(--ink-3)); }
.rd-ciclo select { min-height: 34px; width: auto; max-width: 240px; padding: 0 30px 0 10px; font-weight: 700; }
.rd-ciclo + .rd-who { margin-left: var(--s4); }
.mg-sec { border-top: 1px solid var(--line-2); padding-top: var(--s3); margin-top: var(--s3); }
.mg-sec header { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px; } .mg-sec h4 { margin: 0; } .mg-tg { display: flex; gap: 6px; }
.mg-turmas { display: grid; gap: 6px; margin-top: var(--s2); }
.mg-turma { border: 1px solid var(--line); border-radius: 10px; padding: 8px 12px; background: #fafbfc; }
.mg-turma summary { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; cursor: pointer; } .mg-turma summary .ag-check { margin: 0; }
.mg-alunos { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 4px 12px; padding: 8px 0 4px 26px; }
.mg-al { font-size: .875rem; margin: 0; }
.mg-equipe { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 6px 12px; margin: var(--s2) 0; }
.mg-dp { margin-top: var(--s2); font-weight: 600; }
@media (max-width: 900px) { .rd-ciclo > span:first-child { display: none; } .rd-ciclo select { max-width: 150px; } .rd-ciclo .pill { display: none; } }

/* Rede ASPAB: contador e aviso de pendências, cobrança por núcleo, declarações */
.rd-badge { margin-left: auto; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 999px; background: var(--rd-bola, #e8731a); color: #fff; font: 800 .75rem/22px var(--sans); text-align: center; }
.rd-rail button.active:has(.rd-badge)::after { display: none; }
.rd-aviso { margin-bottom: var(--s4); }
.cobra { border-color: #8fd0a9; } .cobra-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.cobra-list li { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px 16px; padding: 8px 0; border-bottom: 1px dashed var(--line-2); }
.decl-grid { align-items: start; } .decl-busca { display: flex; gap: 8px; } .decl-busca input { flex: 1; }
.decl-res { display: grid; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; margin-bottom: 10px; }
.decl-sel { margin: 4px 0 10px; font-weight: 700; } .decl-form .btn { margin-top: 4px; }

/* ---------- disponibilidades das equipes ---------- */
.disp-forms { display: grid; gap: var(--s4); }
.disp-card { display: grid; gap: var(--s3); }
.disp-head { display: flex; justify-content: space-between; gap: var(--s3); flex-wrap: wrap; align-items: flex-start; }
.disp-meta { display: flex; gap: var(--s2); align-items: center; flex-wrap: wrap; }
.disp-fs { border: 0; padding: 0; margin: 0 0 var(--s2); min-width: 0; }
.disp-fs legend { font-weight: 700; font-size: var(--t-sm); margin-bottom: var(--s2); padding: 0; }
.disp-radio { display: flex; gap: var(--s4); }
.disp-days { display: grid; grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); gap: var(--s2); }
.disp-day { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 48px; padding: 6px 8px; border: 1px solid var(--line); border-radius: var(--r2); background: var(--paper); font-weight: 700; text-align: center; font-variant-numeric: tabular-nums; }
.disp-day.pick { cursor: pointer; position: relative; }
.disp-day.pick input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.disp-day.pick:has(input:checked) { background: var(--sail-green); border-color: var(--sail-green); color: #fff; }
.disp-day.pick:has(input:focus-visible) { outline: 3px solid var(--focus); outline-offset: 2px; }
.disp-day.off { background: var(--foam); color: var(--ink-3); border-style: dashed; }
.disp-day.off small { font-weight: 500; font-size: .75rem; display: block; }
.disp-days.ro .disp-day { min-height: 40px; color: var(--ink-3); }
.disp-days.ro .disp-day.on { background: var(--ok-bg); color: var(--ok-ink); border-color: transparent; }
.disp-list { display: grid; gap: var(--s3); margin-bottom: var(--s5); }
.disp-item { display: flex; gap: var(--s4); align-items: center; flex-wrap: wrap; padding: var(--s4); }
.disp-item.sel { border-color: var(--sail-blue); box-shadow: 0 0 0 2px var(--sail-blue) inset; }
.disp-item .grow { flex: 1 1 320px; min-width: 0; }
.disp-cats { display: flex; flex-wrap: wrap; gap: var(--s2) var(--s4); }
.disp-excl { display: grid; gap: 6px; max-height: 280px; overflow: auto; padding-right: 4px; }
.disp-excl-row { display: grid; grid-template-columns: 130px 1fr; gap: var(--s2); align-items: center; }
.disp-excl-row input:not([type]) , .disp-excl-row input[name^="m_"] { min-height: 38px; }
.disp-board { margin-top: var(--s5); display: grid; gap: var(--s4); }
.disp-board-head { display: flex; justify-content: space-between; gap: var(--s3); flex-wrap: wrap; align-items: flex-end; }
.disp-cat { padding: var(--s4); }
.disp-table th, .disp-table td { border: 1px solid var(--line-2); text-align: center; padding: 6px 8px; white-space: nowrap; }
.disp-table thead th { background: var(--foam); font-size: var(--t-xs); text-transform: none; }
.disp-table th.l { text-align: left; }
.disp-table tbody th { font-weight: 700; text-align: left; min-width: 180px; white-space: normal; }
.disp-table tbody th small { display: block; font-weight: 500; color: var(--ink-3); font-size: .75rem; }
.disp-table td.x { background: var(--ok-bg); color: var(--ok-ink); font-weight: 800; }
.disp-table tr.sit-sem_resposta td.x { background: var(--sand); color: var(--sand-ink); }
.disp-table tr.sit-aguardando th { color: var(--ink-3); }
.disp-table tfoot th, .disp-table tfoot td { background: var(--foam); font-weight: 700; }
.disp-obs { margin-top: var(--s3); font-size: var(--t-sm); }
.disp-obs ul { margin: var(--s2) 0 0; padding-left: 18px; display: grid; gap: 4px; }
.disp-sug th, .disp-sug td { padding: 6px 8px; border-bottom: 1px solid var(--line-2); text-align: center; vertical-align: middle; }
.disp-sug td.l, .disp-sug th.l { text-align: left; }
.disp-sug select { min-height: 36px; min-width: 128px; }
.disp-sug td.small { white-space: normal; min-width: 220px; }
@media (max-width: 560px) { .disp-excl-row { grid-template-columns: 1fr; } .disp-days { grid-template-columns: repeat(auto-fill, minmax(92px, 1fr)); } }
@media print { body:has(.disp-board) :is(.disp-admin > :not(.disp-board), .disp-casar, .crumbs, .page-head, .champ-quick, .adm-side, .adm-head, .adm-main > .tabs) { display: none !important; } .disp-cat { break-inside: avoid; box-shadow: none; } .disp-table td.x { -webkit-print-color-adjust: exact; print-color-adjust: exact; } }
.disp-opts { display: flex; flex-wrap: wrap; gap: var(--s3) var(--s4); align-items: flex-end; }
.disp-opts .field select { min-width: 280px; }
.disp-sug tr.sem-data td { opacity: .85; }

/* ---------- Rede ASPAB: ajustes de leitura no celular e no computador ---------- */
/* datas e campos nunca passam da largura da coluna (o iOS dá largura mínima própria ao campo de data) */
[data-area="rede"] input, [data-area="rede"] select { min-width: 0; max-width: 100%; }
[data-area="rede"] input[type=date], [data-area="rede"] input[type=month] { -webkit-appearance: none; appearance: none; width: 100%; min-height: 42px; text-align: left; }
[data-area="rede"] input[type=date]::-webkit-date-and-time-value, [data-area="rede"] input[type=month]::-webkit-date-and-time-value { text-align: left; }
[data-area="rede"] .esc-filters { align-items: start; }
[data-area="rede"] .esc-filters .field { display: grid; gap: 4px; align-content: start; }
/* núcleos: nome e números sem sobrepor */
.nuc-head { display: grid; grid-template-columns: minmax(0, 1fr) auto 18px; }
.nuc-name span { overflow-wrap: break-word; }
/* tabelas: nunca quebrar letra a letra; colunas de texto com largura mínima legível */
.esc-main table.rt td.l, .esc-main table.rt th.l { min-width: 6.5rem; }
.esc-main table.rt td.rt-act { white-space: normal !important; }
.esc-main table.rt td.l .small { overflow-wrap: anywhere; }
/* tabelas simples viram cartões quando o espaço da tabela é estreito (celular ou coluna lateral), um registro por cartão */
.esc-main :has(> table.rt) { container-type: inline-size; }
@container (max-width: 600px) {
  .esc-main table.rt, .esc-main table.rt tbody, .esc-main table.rt tr, .esc-main table.rt td { display: block; width: 100%; }
  .esc-main table.rt thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .esc-main table.rt tr { padding: 12px 14px; border-bottom: 1px solid var(--rd-linha, var(--line-2)); }
  .esc-main table.rt td { position: relative; padding: 4px 0 4px 8rem; min-height: 1.6em; border: 0; text-align: left; white-space: normal; min-width: 0; overflow-wrap: break-word; }
  .esc-main table.rt td::before { content: attr(data-label); position: absolute; left: 0; top: 6px; width: 7.25rem; color: var(--rd-tinta-3, var(--ink-3)); font-size: .75rem; font-weight: 600; line-height: 1.3; }
  .esc-main table.rt td:first-child { padding: 0 0 6px; font-size: 1rem; }
  .esc-main table.rt td:first-child::before { content: none; }
  .esc-main table.rt td.rt-act, .esc-main table.rt td[colspan] { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-start; padding: 8px 0 0; }
  .esc-main table.rt td.rt-act::before, .esc-main table.rt td[colspan]::before { content: none; }
  .esc-main table.rt td:empty { display: none; }
  .esc-main table.rt { min-width: 0; }
}
@media (max-width: 720px) {
  /* menu superior: logotipo, ciclo e sair numa linha só, sem cortar o ciclo */
  .rd-top { gap: var(--s2); }
  .rd-brand > span, .rd-brand b { display: none; }
  .rd-ciclo { flex: 1 1 auto; min-width: 0; margin-left: 0; }
  .rd-ciclo select { width: 100%; max-width: none; text-overflow: ellipsis; }
  .rd-ciclo + .rd-who { margin-left: 0; }
  /* núcleos: números numa segunda linha */
  .nuc-head { grid-template-columns: minmax(0, 1fr) 18px; row-gap: 6px; }
  .nuc-head .nuc-nums { grid-column: 1 / -1; grid-row: 2; justify-content: flex-start; gap: 4px var(--s3); }
  .nuc-head > svg { grid-column: 2; grid-row: 1; }
  /* chamada: nome em linha inteira e os botões P F J A logo abaixo, largos */
  .ch-row { grid-template-columns: 24px minmax(0, 1fr); row-gap: 8px; padding: 10px var(--s1); }
  .ch-seg { grid-column: 2; display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
  .ch-opt span { width: 100%; }
  /* alternância (lançar / diários): duas metades iguais, sem pílula quebrada */
  .esc-seg { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; width: 100%; border-radius: 12px; }
  .esc-seg button { justify-content: center; text-align: center; border-radius: 9px; line-height: 1.2; padding: 6px 8px; }
}
[data-area="rede"] input[type=date], [data-area="rede"] input[type=month] { padding-left: 10px; padding-right: 6px; }
[data-area="rede"] input[type=date]::-webkit-calendar-picker-indicator, [data-area="rede"] input[type=month]::-webkit-calendar-picker-indicator { margin: 0; padding: 2px; }
@media (max-width: 420px) { [data-area="rede"] .esc-filters .field:has(input[type=month]), [data-area="rede"] .esc-filters .field:has(input[type=date]) { flex-basis: 100%; } }
/* rede de segurança: nada empurra a página para os lados no celular (clip não cria rolagem, o topo fixo continua funcionando) */
html, body { overflow-x: clip; }
select { max-width: 100%; }
.page-hero, .hero { overflow-x: clip; }
/* Equipe: acesso (login + trocar senha) numa coluna; ações lado a lado, alinhadas à direita */
.eq-acesso { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.eq-acesso .small { color: var(--ink-2); overflow-wrap: anywhere; }
.esc-main table.rt td.eq-acoes { white-space: nowrap !important; text-align: right; width: 1%; }
.esc-main table.rt td.eq-acoes .btn + .btn { margin-left: 6px; }
@container (max-width: 600px) { .esc-main table.rt td.eq-acoes { width: 100%; justify-content: flex-start; } .esc-main table.rt td.eq-acoes .btn + .btn { margin-left: 0; } }

/* =====================================================================================
   REDE ASPAB — "Quadra viva"
   Azul-marinho da logo + azul de quadra + laranja da bola. Títulos em Bricolage Grotesque,
   texto em Atkinson Hyperlegible. O destaque é a faixa do topo de cada página (gradiente com
   as linhas da quadra). Um único movimento de entrada; números do painel contam até o valor.
   Tudo restrito a html[data-area="rede"]: o site da liga não muda.
   ===================================================================================== */
html[data-area="rede"] {
  --qv-marinho: #13213d; --qv-marinho-2: #1b2d52; --qv-quadra: #1f5fbf; --qv-quadra-2: #2a74e0;
  --qv-bola: #e8731a; --qv-bola-texto: #a94b0a; --qv-bola-fundo: #fff2e6;
  --qv-fundo: #f3f6fb; --qv-papel: #ffffff; --qv-linha: #dfe5ee; --qv-linha-2: #edf1f6;
  --qv-tinta: #13213d; --qv-tinta-2: #3a4763; --qv-tinta-3: #56627d;
  --qv-titulo: 'Montserrat', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --qv-texto: 'Montserrat', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --qv-sombra-1: 0 1px 2px rgba(19,33,61,.06), 0 2px 6px -2px rgba(19,33,61,.08);
  --qv-sombra-2: 0 1px 2px rgba(19,33,61,.06), 0 12px 28px -14px rgba(19,33,61,.28);
  --qv-sombra-3: 0 2px 4px rgba(19,33,61,.08), 0 22px 44px -18px rgba(19,33,61,.38);
  --qv-raio: 16px; --qv-raio-2: 12px;
  --rd-giz: var(--qv-fundo); --rd-papel: var(--qv-papel); --rd-tinta: var(--qv-tinta); --rd-tinta-2: var(--qv-tinta-2); --rd-tinta-3: var(--qv-tinta-3);
  --rd-linha: var(--qv-linha); --rd-linha-2: var(--qv-linha-2); --rd-bola: var(--qv-bola); --rd-bola-texto: var(--qv-bola-texto); --rd-bola-fundo: var(--qv-bola-fundo);
  --rd-head: var(--qv-titulo); --display: var(--qv-titulo); --wide: var(--qv-titulo); --sans: var(--qv-texto);
  --foam: var(--qv-fundo); --foam-2: #e6ebf3; --paper: var(--qv-papel); --hover: #f1f5fb;
  --ink: var(--qv-tinta); --ink-2: var(--qv-tinta-2); --ink-3: var(--qv-tinta-3); --line: var(--qv-linha); --line-2: var(--qv-linha-2);
  --btn-dark: var(--qv-marinho); --btn-dark-hover: var(--qv-marinho-2); --focus: var(--qv-quadra);
  --shadow: var(--qv-sombra-1);
}
html[data-area="rede"] body {
  background:
    radial-gradient(900px 480px at 100% -10%, rgba(232,115,26,.10), transparent 60%),
    radial-gradient(800px 520px at -10% 30%, rgba(31,95,191,.09), transparent 60%),
    var(--qv-fundo) fixed;
  color: var(--qv-tinta); font-family: var(--qv-texto);
}
html[data-area="rede"] h1, html[data-area="rede"] h2, html[data-area="rede"] h3, html[data-area="rede"] h4 { font-family: var(--qv-titulo); letter-spacing: -.015em; }
html[data-area="rede"] :focus-visible { outline: 3px solid var(--qv-quadra); outline-offset: 2px; }

/* ---------- barra superior: branca translúcida com desfoque ---------- */
html[data-area="rede"] .rd-top { min-height: 64px; background: rgba(255,255,255,.78); -webkit-backdrop-filter: saturate(160%) blur(14px); backdrop-filter: saturate(160%) blur(14px); border-bottom: 1px solid rgba(19,33,61,.08); box-shadow: 0 6px 24px -18px rgba(19,33,61,.45); }
html[data-area="rede"] .rd-brand { padding: 4px 8px 4px 4px; border-radius: 14px; transition: background .2s; }
html[data-area="rede"] .rd-brand:hover { background: rgba(19,33,61,.05); }
html[data-area="rede"] .rd-brand b { font: 800 1.125rem/1.1 var(--qv-titulo); letter-spacing: -.02em; }
html[data-area="rede"] .rd-ciclo select { min-height: 38px; border-radius: 999px; border: 1.5px solid var(--qv-linha); background-color: #fff; font: 700 .8125rem var(--qv-texto); padding-left: 14px; }
html[data-area="rede"] .rd-top .btn.ghost { border-radius: 999px; }

/* ---------- menu: ícones em círculos, módulo ativo em pílula escura ---------- */
html[data-area="rede"] .rd-body { grid-template-columns: 252px minmax(0, 1fr); }
html[data-area="rede"] .rd-rail { top: 64px; height: calc(100vh - 64px); background: rgba(255,255,255,.6); border-right: 1px solid rgba(19,33,61,.07); padding: 20px 12px 32px; }
html[data-area="rede"] .rd-group + .rd-group { border-top: 1px dashed var(--qv-linha); }
html[data-area="rede"] .rd-group h2 { font: 700 .75rem/1.2 var(--qv-texto); color: var(--qv-tinta-3); margin: 0 12px 8px; }
html[data-area="rede"] .rd-rail button { min-height: 42px; padding: 5px 10px 5px 6px; gap: 10px; border-radius: 999px; font: 600 .9375rem/1.2 var(--qv-texto); color: var(--qv-tinta-2); transition: background .18s, color .18s, transform .18s; }
html[data-area="rede"] .rd-rail button svg { box-sizing: content-box; width: 16px; height: 16px; padding: 7px; border-radius: 50%; background: #eaf0f8; color: var(--qv-quadra); transition: background .18s, color .18s; }
html[data-area="rede"] .rd-rail button:hover { background: #fff; color: var(--qv-tinta); box-shadow: var(--qv-sombra-1); transform: translateX(2px); }
html[data-area="rede"] .rd-rail button:hover svg { background: var(--qv-bola-fundo); color: var(--qv-bola-texto); }
html[data-area="rede"] .rd-rail button.active { background: linear-gradient(135deg, var(--qv-marinho), var(--qv-marinho-2)); color: #fff; box-shadow: 0 8px 18px -10px rgba(19,33,61,.7); }
html[data-area="rede"] .rd-rail button.active svg { background: var(--qv-bola); color: #fff; }
html[data-area="rede"] .rd-rail button.active::after { background: #fff; box-shadow: none; width: 7px; height: 7px; }
html[data-area="rede"] .rd-badge { background: var(--qv-bola); color: #fff; box-shadow: 0 0 0 2px #fff; }
html[data-area="rede"] .rd-rail button.active .rd-badge { box-shadow: 0 0 0 2px var(--qv-marinho); }

/* ---------- faixa do topo da página: gradiente com as linhas da quadra (o destaque) ---------- */
html[data-area="rede"] .rd-main { padding-top: 24px; }
html[data-area="rede"] .rd-head {
  position: relative; overflow: hidden; isolation: isolate; align-items: center;
  padding: 26px 28px; margin: 0 0 22px; border: 0; border-radius: 20px; color: #fff;
  background: linear-gradient(120deg, var(--qv-marinho) 0%, #18376e 45%, var(--qv-quadra) 100%);
  box-shadow: var(--qv-sombra-2);
}
html[data-area="rede"] .rd-head::before {
  content: ''; position: absolute; z-index: -1; inset: -40px -40px -40px auto; width: min(520px, 70%);
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 260' fill='none' stroke='%23ffffff' stroke-width='2'%3E%3Ccircle cx='200' cy='130' r='48'/%3E%3Cline x1='200' y1='0' x2='200' y2='260'/%3E%3Cpath d='M400 70h-90v120h90'/%3E%3Ccircle cx='310' cy='130' r='40'/%3E%3Cpath d='M400 20a150 150 0 0 0 0 220'/%3E%3C/svg%3E") right center / contain no-repeat;
  opacity: .14;
}
html[data-area="rede"] .rd-head::after { content: ''; position: absolute; z-index: -1; right: -60px; top: -60px; width: 220px; height: 220px; border-radius: 50%; background: radial-gradient(circle, rgba(232,115,26,.55), transparent 65%); }
html[data-area="rede"] .rd-head h1 { color: #fff; font: 800 clamp(1.6rem, 2.6vw, 2.15rem)/1.1 var(--qv-titulo); letter-spacing: -.025em; }
html[data-area="rede"] .rd-head p { color: #d6e2f7; font-size: .9375rem; }
html[data-area="rede"] .rd-head .btn { background: var(--qv-bola); color: var(--qv-marinho); }
html[data-area="rede"] .rd-head .btn:hover { background: #f08a37; color: var(--qv-marinho); }
html[data-area="rede"] .rd-head .btn.ghost { background: rgba(255,255,255,.12); color: #fff; border-color: rgba(255,255,255,.35); }
html[data-area="rede"] .rd-head .btn.ghost:hover { background: rgba(255,255,255,.22); color: #fff; }
html[data-area="rede"] .rd-head :focus-visible { outline-color: #fff; }

/* ---------- superfícies ---------- */
html[data-area="rede"] .card { border: 1px solid rgba(19,33,61,.06); border-radius: var(--qv-raio); box-shadow: var(--qv-sombra-2); padding: 18px 22px; }
html[data-area="rede"] .card.pad0 { padding: 0; }
html[data-area="rede"] .esc-h2 { font: 800 1.125rem/1.25 var(--qv-titulo); letter-spacing: -.015em; border-bottom: 0; padding-bottom: 0; display: flex; align-items: center; gap: 10px; }
html[data-area="rede"] .esc-h2::before { content: ''; width: 6px; height: 1.1em; border-radius: 3px; background: linear-gradient(var(--qv-bola), #f2a35e); flex: none; }
html[data-area="rede"] .esc-h3 { font: 700 1rem/1.3 var(--qv-titulo); }
/* indicadores: cartões com número grande e faixa de cor */
html[data-area="rede"] .stats-strip { gap: 14px; background: none; border: 0; box-shadow: none; overflow: visible; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
html[data-area="rede"] .stat { position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 4px; padding: 16px 18px; border: 1px solid rgba(19,33,61,.06); border-radius: var(--qv-raio); background: #fff; box-shadow: var(--qv-sombra-2); }
html[data-area="rede"] .stat::before { content: ''; position: absolute; left: 0; top: 0; right: 0; height: 4px; background: linear-gradient(90deg, var(--qv-quadra), var(--qv-quadra-2)); }
html[data-area="rede"] .stat.warn::before { background: linear-gradient(90deg, var(--qv-bola), #f2a35e); }
html[data-area="rede"] .stat b { font: 800 2rem/1.05 var(--qv-titulo); letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
html[data-area="rede"] .stat span { font-size: .8125rem; }
/* núcleos e cartões clicáveis: elevam ao passar o mouse */
html[data-area="rede"] .nuc-item { transition: box-shadow .2s, transform .2s, border-color .2s; }
html[data-area="rede"] .nuc-item:hover { box-shadow: var(--qv-sombra-3); transform: translateY(-2px); }
html[data-area="rede"] .nuc-item.open { border-color: var(--qv-bola); }
html[data-area="rede"] .nuc-name b { font: 800 1.125rem/1.15 var(--qv-titulo); }
html[data-area="rede"] .pd-banner { border-radius: var(--qv-raio-2); background: linear-gradient(90deg, #fff4ea, #fff); box-shadow: var(--qv-sombra-1); }

/* ---------- botões: pílulas com brilho ao passar o mouse ---------- */
html[data-area="rede"] .btn {
  position: relative; overflow: hidden; border-radius: 999px; padding: 0 18px; min-height: 40px; font: 700 .875rem var(--qv-texto); letter-spacing: 0;
  background: linear-gradient(135deg, var(--qv-quadra), var(--qv-marinho)); color: #fff; border: 1px solid transparent;
  box-shadow: 0 6px 16px -8px rgba(31,95,191,.65); transition: transform .18s, box-shadow .18s, background .18s;
}
html[data-area="rede"] .btn::after { content: ''; position: absolute; top: 0; bottom: 0; left: -60%; width: 40%; transform: skewX(-20deg); background: linear-gradient(90deg, transparent, rgba(255,255,255,.35), transparent); transition: left .5s; pointer-events: none; }
html[data-area="rede"] .btn:hover { transform: translateY(-1px); box-shadow: 0 10px 22px -10px rgba(31,95,191,.8); background: linear-gradient(135deg, var(--qv-quadra-2), var(--qv-marinho)); color: #fff; }
html[data-area="rede"] .btn:hover::after { left: 120%; }
html[data-area="rede"] .btn:active { transform: translateY(0); }
html[data-area="rede"] .btn.sm { min-height: 34px; padding: 0 13px; font-size: .8125rem; }
html[data-area="rede"] .btn.ghost { background: #fff; color: var(--qv-tinta); border: 1.5px solid var(--qv-linha); box-shadow: var(--qv-sombra-1); }
html[data-area="rede"] .btn.ghost svg { color: var(--qv-quadra); }
html[data-area="rede"] .btn.ghost::after { background: linear-gradient(90deg, transparent, rgba(31,95,191,.10), transparent); }
html[data-area="rede"] .btn.ghost:hover { background: #fff; border-color: var(--qv-quadra); color: var(--qv-tinta); box-shadow: 0 8px 18px -12px rgba(31,95,191,.6); }
html[data-area="rede"] .btn.danger, html[data-area="rede"] .btn.ghost.danger { color: #9f2d1a; }
html[data-area="rede"] .btn.hot { background: linear-gradient(135deg, #d0412b, #9f2d1a); }
html[data-area="rede"] .btn:disabled, html[data-area="rede"] .btn[disabled] { background: #e9edf3; color: #6b7590; box-shadow: none; transform: none; }
html[data-area="rede"] .btn:disabled::after { display: none; }

/* ---------- campos: cantos suaves e anel laranja no foco ---------- */
html[data-area="rede"] .rd-main input:not([type=checkbox]):not([type=radio]):not([type=file]), html[data-area="rede"] .rd-main select, html[data-area="rede"] textarea, html[data-area="rede"] dialog input:not([type=checkbox]):not([type=radio]):not([type=file]), html[data-area="rede"] dialog select {
  border: 1.5px solid var(--qv-linha); border-radius: var(--qv-raio-2); background-color: #fff; min-height: 42px; transition: border-color .18s, box-shadow .18s;
}
html[data-area="rede"] .rd-main input:not([type=checkbox]):not([type=radio]):hover, html[data-area="rede"] .rd-main select:hover, html[data-area="rede"] textarea:hover { border-color: #b9c4d6; }
html[data-area="rede"] input:not([type=checkbox]):not([type=radio]):focus, html[data-area="rede"] select:focus, html[data-area="rede"] textarea:focus { border-color: var(--qv-bola); box-shadow: 0 0 0 4px rgba(232,115,26,.22); outline: none; }
html[data-area="rede"] input[type=checkbox], html[data-area="rede"] input[type=radio] { accent-color: var(--qv-bola); }
html[data-area="rede"] .esc-filters { border-radius: var(--qv-raio); border: 1px solid rgba(19,33,61,.06); box-shadow: var(--qv-sombra-1); }

/* ---------- tabelas: cabeçalho limpo, linha em destaque com marcador laranja ---------- */
html[data-area="rede"] th { background: #f7f9fd; color: var(--qv-tinta-3); font: 700 .78125rem var(--qv-texto); }
html[data-area="rede"] tbody tr { transition: background .15s; }
html[data-area="rede"] tbody tr:hover { background: #f6f9ff; box-shadow: inset 3px 0 0 var(--qv-bola); }

/* ---------- etiquetas ---------- */
html[data-area="rede"] .pill { border-radius: 999px; padding: 3px 10px; font-weight: 700; }
html[data-area="rede"] .pill.ok { background: #e3f4ea; color: #145c33; }
html[data-area="rede"] .pill.warn { background: var(--qv-bola-fundo); color: #8a3c08; }
html[data-area="rede"] .chip { border-radius: 999px; }
html[data-area="rede"] .chip.on { background: var(--qv-marinho); border-color: var(--qv-marinho); color: #fff; }

/* ---------- abas (lançar / diários): pílula deslizante ---------- */
html[data-area="rede"] .esc-seg { background: #e8edf5; border: 0; padding: 4px; border-radius: 999px; box-shadow: inset 0 1px 2px rgba(19,33,61,.08); }
html[data-area="rede"] .esc-seg button { border-radius: 999px; color: var(--qv-tinta-2); font-weight: 700; transition: background .2s, color .2s, box-shadow .2s; }
html[data-area="rede"] .esc-seg button.active { background: #fff; color: var(--qv-tinta); box-shadow: var(--qv-sombra-1); }
html[data-area="rede"] .esc-seg button.active svg { color: var(--qv-bola); }

/* ---------- chamada: botões P/F/J/A com cor viva ---------- */
html[data-area="rede"] .ch-opt span { border-radius: 12px; border: 1.5px solid var(--qv-linha); background: #fff; transition: transform .12s, background .15s; }
html[data-area="rede"] .ch-opt input:checked + span { transform: scale(1.04); box-shadow: 0 6px 14px -8px rgba(19,33,61,.6); }
html[data-area="rede"] .ch-opt.P input:checked + span { background: linear-gradient(135deg, #1d8a4a, #0c5f37); border-color: #0c5f37; }
html[data-area="rede"] .ch-opt.F input:checked + span { background: linear-gradient(135deg, #c2412d, #7a2416); border-color: #7a2416; }
html[data-area="rede"] .ch-opt.J input:checked + span, html[data-area="rede"] .ch-opt.A input:checked + span { background: linear-gradient(135deg, #a8691b, #5a4220); border-color: #5a4220; }

/* ---------- janelas ---------- */
html[data-area="rede"] dialog#modal { border-radius: 20px; border: 0; box-shadow: 0 30px 80px -20px rgba(19,33,61,.55); }
html[data-area="rede"] dialog#modal::backdrop { background: rgba(19,33,61,.45); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
html[data-area="rede"] dialog#modal h3 { font: 800 1.25rem/1.2 var(--qv-titulo); }

/* ---------- entrada da página: um único movimento coordenado ---------- */
@keyframes qv-sobe { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
html[data-area="rede"] .rd-main > .rd-head { animation: qv-sobe .45s cubic-bezier(.2,.7,.2,1) both; }
html[data-area="rede"] .rd-main > :not(.rd-head) { animation: qv-sobe .5s .08s cubic-bezier(.2,.7,.2,1) both; }

/* ---------- celular ---------- */
@media (max-width: 900px) {
  html[data-area="rede"] .rd-body { grid-template-columns: 1fr; }
  html[data-area="rede"] .rd-rail { top: 64px; height: auto; background: rgba(255,255,255,.85); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); padding: 8px 10px; gap: 6px; border-bottom: 1px solid rgba(19,33,61,.07); }
  html[data-area="rede"] .rd-rail button { min-height: 40px; padding: 4px 12px 4px 4px; }
  html[data-area="rede"] .rd-rail button:hover { transform: none; }
  html[data-area="rede"] .rd-rail button.active { box-shadow: 0 6px 14px -8px rgba(19,33,61,.7); }
  html[data-area="rede"] .rd-main { padding-top: 14px; }
}
@media (max-width: 720px) {
  html[data-area="rede"] .rd-top { min-height: 56px; }
  html[data-area="rede"] .rd-rail { top: 56px; }
  html[data-area="rede"] .rd-head { padding: 20px 18px; border-radius: 16px; margin-bottom: 16px; }
  html[data-area="rede"] .rd-head::before { width: 85%; opacity: .1; }
  html[data-area="rede"] .card { padding: 14px 16px; }
  html[data-area="rede"] .stat b { font-size: 1.6rem; }
}
@media (prefers-reduced-motion: reduce) {
  html[data-area="rede"] *, html[data-area="rede"] *::after { animation: none !important; transition: none !important; }
  html[data-area="rede"] .btn:hover, html[data-area="rede"] .nuc-item:hover { transform: none; }
}
html[data-area="rede"] .stat > svg { box-sizing: content-box; width: 18px; height: 18px; padding: 8px; border-radius: 50%; background: #eaf0f8; color: var(--qv-quadra); margin-bottom: 4px; }
html[data-area="rede"] .stat.warn > svg { background: var(--qv-bola-fundo); color: var(--qv-bola-texto); }
/* contraste (WCAG 1.4.3): contador de pendências, "P" da chamada e número dentro do filtro ativo */
html[data-area="rede"] .rd-badge { background: #b4530d; }
html[data-area="rede"] .ch-opt.P input:checked + span { background: linear-gradient(135deg, #17783f, #0c5f37); }
html[data-area="rede"] .chip.on b, html[data-area="rede"] .chip.on * { color: #fff; }

/* ---------- barra superior: dois blocos (ciclo | conta) ---------- */
html[data-area="rede"] .rd-who { margin-left: 0; gap: 0; }
html[data-area="rede"] .rd-ciclo { margin-left: auto; display: inline-flex; align-items: center; gap: 0; height: 40px; padding: 0 4px 0 14px; border: 1.5px solid var(--qv-linha); border-radius: 999px; background: #fff; box-shadow: var(--qv-sombra-1); }
html[data-area="rede"] .rd-ciclo:focus-within { border-color: var(--qv-bola); box-shadow: 0 0 0 4px rgba(232,115,26,.22); }
html[data-area="rede"] .rd-ciclo-l { font: 600 .75rem var(--qv-texto); color: var(--qv-tinta-3); padding-right: 8px; border-right: 1px solid var(--qv-linha); }
html[data-area="rede"] .rd-ciclo select, html[data-area="rede"] .rd-ciclo select:focus, html[data-area="rede"] .rd-ciclo select:hover { min-height: 0; height: 34px; border: 0; box-shadow: none; background-color: transparent; border-radius: 999px; padding: 0 28px 0 10px; font: 700 .8125rem var(--qv-texto); color: var(--qv-tinta); max-width: 230px; }
html[data-area="rede"] .rd-ciclo select:focus-visible { outline: none; }
html[data-area="rede"] .rd-ciclo-st { display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 10px; border-radius: 999px; background: #eef1f6; color: var(--qv-tinta-2); font: 600 .75rem var(--qv-texto); white-space: nowrap; }
html[data-area="rede"] .rd-ciclo-st i { width: 8px; height: 8px; border-radius: 50%; background: #8a94a8; }
html[data-area="rede"] .rd-ciclo-st.vigente { background: #e3f4ea; color: #145c33; } html[data-area="rede"] .rd-ciclo-st.vigente i { background: #1d8a4a; box-shadow: 0 0 0 3px rgba(29,138,74,.18); }
html[data-area="rede"] .rd-ciclo-st.nao_iniciado { background: var(--qv-bola-fundo); color: #8a3c08; } html[data-area="rede"] .rd-ciclo-st.nao_iniciado i { background: var(--qv-bola); }
html[data-area="rede"] .rd-ciclo + .rd-who { margin-left: 14px; padding-left: 14px; border-left: 1px solid var(--qv-linha); }

html[data-area="rede"] .rd-conta { position: relative; }
html[data-area="rede"] .rd-conta summary { list-style: none; display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 3px 10px 3px 3px; border-radius: 999px; cursor: pointer; transition: background .18s; }
html[data-area="rede"] .rd-conta summary::-webkit-details-marker { display: none; }
html[data-area="rede"] .rd-conta summary:hover, html[data-area="rede"] .rd-conta[open] summary { background: rgba(19,33,61,.06); }
html[data-area="rede"] .rd-conta summary > svg { width: 16px; height: 16px; color: var(--qv-tinta-3); transition: transform .18s; }
html[data-area="rede"] .rd-conta[open] summary > svg { transform: rotate(180deg); }
html[data-area="rede"] .rd-av { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; flex: none; background: linear-gradient(135deg, var(--qv-quadra), var(--qv-marinho)); color: #fff; font: 800 .875rem/1 var(--qv-titulo); letter-spacing: .02em; box-shadow: 0 0 0 2px #fff, 0 0 0 3.5px rgba(232,115,26,.55); }
html[data-area="rede"] .rd-conta .rd-user { display: grid; text-align: left; line-height: 1.2; }
html[data-area="rede"] .rd-conta .rd-user b { font: 700 .875rem var(--qv-texto); color: var(--qv-tinta); max-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
html[data-area="rede"] .rd-conta .rd-user small { font-size: .75rem; color: var(--qv-tinta-3); }
html[data-area="rede"] .rd-menu { position: absolute; right: 0; top: calc(100% + 8px); z-index: 50; min-width: 240px; padding: 6px; border-radius: 14px; background: #fff; border: 1px solid rgba(19,33,61,.08); box-shadow: var(--qv-sombra-3); display: grid; gap: 2px; animation: qv-sobe .18s ease both; }
html[data-area="rede"] .rd-menu-who { display: none; padding: 8px 10px 10px; border-bottom: 1px solid var(--qv-linha-2); margin-bottom: 4px; }
html[data-area="rede"] .rd-menu-who b { display: block; font: 700 .9375rem var(--qv-texto); } html[data-area="rede"] .rd-menu-who small { color: var(--qv-tinta-3); font-size: .75rem; }
html[data-area="rede"] .rd-menu a, html[data-area="rede"] .rd-menu button { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 40px; padding: 8px 10px; border: 0; border-radius: 10px; background: none; color: var(--qv-tinta); font: 600 .875rem var(--qv-texto); text-decoration: none; text-align: left; cursor: pointer; }
html[data-area="rede"] .rd-menu svg { width: 18px; height: 18px; color: var(--qv-quadra); }
html[data-area="rede"] .rd-menu a:hover, html[data-area="rede"] .rd-menu button:hover { background: var(--hover); }
html[data-area="rede"] .rd-menu button { color: #9f2d1a; } html[data-area="rede"] .rd-menu button svg { color: #9f2d1a; }

@media (max-width: 900px) {
  html[data-area="rede"] .rd-conta .rd-user, html[data-area="rede"] .rd-conta summary > svg { display: none; }
  html[data-area="rede"] .rd-conta summary { padding: 3px; }
  html[data-area="rede"] .rd-menu-who { display: block; }
}
@media (max-width: 720px) {
  html[data-area="rede"] .rd-ciclo { flex: 1 1 auto; min-width: 0; height: 38px; padding-left: 4px; }
  html[data-area="rede"] .rd-ciclo-l { display: none; }
  html[data-area="rede"] .rd-ciclo select, html[data-area="rede"] .rd-ciclo select:focus, html[data-area="rede"] .rd-ciclo select:hover { flex: 1 1 auto; min-width: 0; max-width: none; width: auto; }
  html[data-area="rede"] .rd-ciclo-st { padding: 0 8px; font-size: 0; gap: 0; }
  html[data-area="rede"] .rd-ciclo-st i { width: 9px; height: 9px; }
  html[data-area="rede"] .rd-ciclo + .rd-who { margin-left: 6px; padding-left: 6px; }
  html[data-area="rede"] .rd-av { width: 36px; height: 36px; }
}
/* editor de dias e horários da turma */
.hr-ed { border: 0; padding: 0; margin: 12px 0; min-width: 0; }
.hr-ed legend { font-weight: 700; padding: 0; margin-bottom: 4px; }
.hr-dia { display: grid; grid-template-columns: minmax(110px, 140px) minmax(0, 130px) auto minmax(0, 130px); gap: 8px; align-items: center; padding: 6px 8px; border-radius: 10px; }
.hr-dia + .hr-dia { margin-top: 2px; }
.hr-dia.on { background: var(--rd-bola-fundo, #fff2e6); }
.hr-dia input[type=time] { min-height: 38px; }
.hr-dia input[type=time]:disabled { opacity: .45; }
.hr-dia > span { color: var(--ink-3); font-size: .8125rem; }
@media (max-width: 480px) { .hr-dia { grid-template-columns: 1fr 1fr; } .hr-dia > label { grid-column: 1 / -1; } .hr-dia > span { display: none; } }
/* prestação de contas */
.pc-wrap { display: grid; gap: var(--s4); }
.pc-head { display: flex; gap: 14px; align-items: flex-start; margin-bottom: 12px; }
.pc-head .esc-h2 { margin: 0 0 2px; }
.pc-head p { margin: 0; max-width: 72ch; }
.pc-n { display: grid; place-items: center; flex: none; width: 34px; height: 34px; border-radius: 50%; background: var(--rd-tinta, #13213d); color: #fff; font: 800 1rem/1 var(--rd-head, var(--display)); }
.pc-assin { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 8px; }
.pc-assin li { display: grid; grid-template-columns: minmax(0, 1fr) 180px auto; gap: 12px; align-items: center; padding: 8px 10px; border: 1px solid var(--line-2); border-radius: 12px; }
.pc-who { display: grid; } .pc-img { display: flex; align-items: center; min-height: 48px; }
.pc-img img { max-height: 48px; max-width: 180px; object-fit: contain; background: #fff; }
@media (max-width: 600px) { .pc-assin li { grid-template-columns: 1fr; } }
.pc-head .esc-h2::before { display: none; }
/* faixa do topo: bola de basquete (contorno e costuras) no lugar das linhas da quadra */
html[data-area="rede"] .rd-head::before {
  inset: auto; right: -34px; top: 50%; width: 210px; height: 210px; transform: translateY(-50%) rotate(-18deg);
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200' fill='none' stroke='%23ffffff' stroke-width='5' stroke-linecap='round'%3E%3Ccircle cx='100' cy='100' r='92'/%3E%3Cpath d='M100 8v184M8 100h184'/%3E%3Cpath d='M36 30c36 36 36 104 0 140M164 30c-36 36-36 104 0 140'/%3E%3C/svg%3E") center / contain no-repeat;
  opacity: .2;
}
html[data-area="rede"] .rd-head::after { right: -10px; top: 50%; transform: translateY(-50%); width: 200px; height: 200px; background: radial-gradient(circle, rgba(232,115,26,.5), transparent 62%); }
@media (max-width: 720px) { html[data-area="rede"] .rd-head::before { width: 150px; height: 150px; right: -40px; opacity: .16; } html[data-area="rede"] .rd-head::after { width: 150px; height: 150px; right: -30px; } }
@media (prefers-reduced-motion: no-preference) { html[data-area="rede"] .rd-main > .rd-head::before { animation: qv-gira 1.1s cubic-bezier(.2,.7,.2,1) both; } }
@keyframes qv-gira { from { transform: translateY(-50%) rotate(-70deg); opacity: 0; } to { transform: translateY(-50%) rotate(-18deg); } }
/* faixa do topo em laranja: tijolo do lado do texto (contraste ≥ 4,5:1 com branco) até o laranja da bola */
html[data-area="rede"] .rd-head { background: linear-gradient(120deg, #6e260a 0%, #9a3a0c 42%, #c2500e 78%, #e06a14 100%); box-shadow: 0 1px 2px rgba(110,38,10,.12), 0 14px 30px -16px rgba(154,58,12,.55); }
html[data-area="rede"] .rd-head p { color: #ffe8d4; }
html[data-area="rede"] .rd-head::after { background: radial-gradient(circle, rgba(255,214,140,.45), transparent 62%); }
html[data-area="rede"] .rd-head .btn { background: #fff; color: #6e260a; box-shadow: 0 6px 16px -8px rgba(0,0,0,.4); }
html[data-area="rede"] .rd-head .btn:hover { background: #fff4ea; color: #6e260a; }
html[data-area="rede"] .rd-head .btn svg { color: #c2500e; }
@media (max-width: 720px) { html[data-area="rede"] .rd-head { background: linear-gradient(120deg, #6e260a 0%, #8f360b 55%, #a9450d 100%); } }
.dia-acts { display: inline-flex; flex-wrap: wrap; gap: 6px; margin-left: auto; }
/* menu lateral com letras maiores */
html[data-area="rede"] .rd-body { grid-template-columns: 272px minmax(0, 1fr); }
html[data-area="rede"] .rd-rail button { min-height: 46px; font-size: 1.0625rem; gap: 12px; padding: 6px 12px 6px 6px; }
html[data-area="rede"] .rd-rail button svg { width: 18px; height: 18px; padding: 8px; }
html[data-area="rede"] .rd-group h2 { font-size: .875rem; margin-bottom: 10px; }
html[data-area="rede"] .rd-badge { font-size: .8125rem; min-width: 24px; height: 24px; line-height: 24px; }
@media (max-width: 900px) { html[data-area="rede"] .rd-body { grid-template-columns: 1fr; } html[data-area="rede"] .rd-rail button { font-size: 1rem; min-height: 44px; } }

/* ===== cartão de jogo (LCB) — "vela contra vela": metades na cor de cada time, costura inclinada como a borda
   de uma vela de jangada, escudos inteiros em medalhão e um placar de ginásio no centro ===== */
.mcard.mc3 { background-image: none; }
.mcard.mc3 .mrow { position: relative; isolation: isolate; background: none; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: var(--s2); padding: var(--s5) var(--s4) var(--s4); margin-top: var(--s3); }
.mcard.mc3 .mrow::before { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: linear-gradient(104deg,
    color-mix(in srgb, var(--hc, var(--line)) 24%, transparent) 0 calc(50% - 2px),
    var(--paper) calc(50% - 2px) calc(50% + 2px),
    color-mix(in srgb, var(--ac, var(--line)) 24%, transparent) calc(50% + 2px) 100%); }
.mcard.mc3 .mteam::before { content: none; }
.mcard.mc3 .mteam { gap: var(--s2); }
.mcard.mc3 .mteam.dim { opacity: 1; }
.mcard.mc3 .mteam.dim .crest { opacity: .5; } .mcard.mc3 .mteam.dim .mc3-name { opacity: .75; }
/* medalhão: escudo inteiro, sem corte, com anel na cor do time */
.mcard.mc3 .mteam .crest.logo, .mcard.mc3 .mteam .crest.logo.sm { --s: 88px; width: 88px; min-width: 88px; height: 88px; padding: 10px; border-radius: 50%; background: #0f2a33;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--tc, var(--line)) 75%, transparent), 0 10px 22px -10px rgba(0, 0, 0, .55); }
.mcard.mc3 .mteam .crest.logo img { width: 100%; height: 100%; max-width: 100%; max-height: 100%; object-fit: contain; }
.mcard.mc3 .mteam .crest:not(.logo) { --s: 88px; width: 88px; height: 88px; border-radius: 50%; font-size: 1.5rem; box-shadow: 0 0 0 3px var(--paper), 0 10px 22px -10px rgba(0, 0, 0, .55); }
.mc3-name { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; max-width: 100%;
  font: 800 1rem/1.12 var(--display); letter-spacing: .01em; color: var(--ink); overflow-wrap: anywhere; }
/* placar de ginásio */
.mc3-mid { display: grid; justify-items: center; gap: 6px; }
.mc3-board { display: inline-flex; align-items: baseline; gap: 6px; padding: 7px 12px 6px; border-radius: 10px; background: #071a22; border: 1px solid #23414c;
  box-shadow: inset 0 2px 10px rgba(0, 0, 0, .6), 0 6px 16px -8px rgba(0, 0, 0, .6); font-variant-numeric: tabular-nums; }
.mc3-board b { font: 800 1.9rem/1 var(--wide, var(--display)); color: #ffb35c; text-shadow: 0 0 12px rgba(255, 140, 40, .35); }
.mc3-board b.off { color: #7f969e; text-shadow: none; }
.mc3-board i { font: 700 1.125rem/1 var(--sans); font-style: normal; color: #7f969e; }
.mc3-board.hora b { font-size: 1.55rem; color: #ffffff; text-shadow: none; }
.mcard.mc3.live .mc3-board { border-color: var(--live); }
.mcard.mc3.live .mc3-board b { color: #ffffff; text-shadow: 0 0 10px rgba(255, 90, 60, .45); }
.mc3-fim { font: 700 var(--t-xs)/1 var(--sans); color: var(--ink-2); padding: 4px 9px; border-radius: 999px; background: var(--paper); border: 1px solid var(--line-2); }
.mcard.mc3:focus-visible { outline: 3px solid var(--sun); outline-offset: 3px; }
@media (max-width: 560px) {
  .mcard.mc3 .mrow { padding: var(--s4) var(--s3) var(--s3); }
  .mcard.mc3 .mteam .crest.logo, .mcard.mc3 .mteam .crest.logo.sm, .mcard.mc3 .mteam .crest:not(.logo) { --s: 72px; width: 72px; min-width: 72px; height: 72px; padding: 8px; }
  .mc3-name { font-size: .9375rem; }
  .mc3-board b { font-size: 1.6rem; } .mc3-board.hora b { font-size: 1.375rem; }
}
.ticker .mcard.mc3 { min-width: 330px; }
/* rodapé do cartão sem cara de ticket: linha contínua, sem pontilhado nem recortes */
.mcard.mc3 .mc-foot { border-top: 1px solid var(--line-2); }
.mcard.mc3 .mc-foot::before, .mcard.mc3 .mc-foot::after { content: none; }
/* telas largas: o site usa mais a largura e a barra de cima fica com letras maiores */
@media (min-width: 1200px) { .wrap { width: min(1440px, 100% - 64px); } }
/* com o menu completo (admin logado) só cabe tudo numa linha a partir de ~1320px */
@media (min-width: 1320px) {
  .topbar .wrap { min-height: 76px; gap: var(--s5); }
  .logo img { height: 50px; width: auto; }
  .nav { gap: var(--s1); }
  .nav a { font-size: 1.0625rem; min-height: 46px; padding: 8px var(--s4); }
  .nav-right .btn.sm { font-size: .9375rem; min-height: 42px; padding: 0 var(--s4); }
  .esc-entry { font-size: .9375rem; min-height: 48px; }
  .esc-entry img { width: 54px; height: 36px; }
}
@media (min-width: 1600px) { .wrap { width: min(1560px, 100% - 96px); } }

/* escudo do cartão de jogo: a logo preenche o medalhão inteiro e é aparada pela moldura redonda
   (antes, logos altas ficavam no tamanho natural e escapavam do círculo) */
.mcard.mc3 .mteam .crest.logo, .mcard.mc3 .mteam .crest.logo.sm { position: relative; overflow: hidden; padding: 0; display: block; }
.mcard.mc3 .mteam .crest.logo img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; max-height: none; object-fit: contain; transform: scale(1.1); }
/* mesmo cuidado nos escudos pequenos das listas: a imagem nunca passa do quadro dela */
.rr-t .crest.logo, .lead-top .crest.logo, .lead-list .crest.logo { position: relative; display: block; }
.rr-t .crest.logo img, .lead-top .crest.logo img, .lead-list .crest.logo img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; max-height: none; object-fit: contain; }

/* últimos jogos e líderes maiores em telas largas */
@media (min-width: 1100px) {
  .games-split { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); }
  .results { gap: var(--s3); }
  .rrow { padding: var(--s4) var(--s5); gap: var(--s4); }
  .rr-cat { font-size: var(--t-lg); }
  .rr-meta { font-size: var(--t-sm); gap: 4px; }
  .rr-game { gap: var(--s3); }
  .rr-t { width: 68px; height: 68px; }
  .rr-t .crest.logo, .rr-t .crest.logo.sm, .rr-t .crest { --s: 56px; width: 56px; min-width: 56px; height: 56px; font-size: 15px; }
  .rr-score { min-width: 128px; }
  .rr-plate { padding: 7px 14px; font-size: 1.6rem; }
  .rr-score small { font-size: 12px; }

  .lead-grid { gap: var(--s5); }
  .lead-card h3 { font-size: var(--t-xl); padding: var(--s4) var(--s5); }
  .lead-top { grid-template-columns: 80px minmax(0, 1fr); gap: 6px var(--s4); padding: var(--s5); }
  .lead-top .crest, .lead-top .crest.logo, .lead-top .crest.logo.sm { --s: 80px; width: 80px; min-width: 80px; height: 80px; }
  .lead-who b { font-size: var(--t-xl); } .lead-who span { font-size: var(--t-sm); }
  .lead-val strong { font-size: 3rem; }
  .lead-list { padding: var(--s3) 0; }
  .lead-list li { grid-template-columns: 24px 36px minmax(0, 1fr) auto; gap: var(--s3); padding: 10px var(--s5); font-size: var(--t-md); }
  .lead-list .crest, .lead-list .crest.logo, .lead-list .crest.logo.sm { --s: 34px; width: 34px; min-width: 34px; height: 34px; font-size: 10px; }
  .ll-pos { font-size: var(--t-md); }
  .ll-val { font-size: var(--t-lg); } .ll-val small { font-size: 11px; }
}
/* quatro quadros de líderes só cabem lado a lado com folga em telas bem largas */
@media (min-width: 1100px) and (max-width: 1399px) { .lead-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* =====================================================================================
   Tipografia (out/2026): Geologica no texto dos dois sites — traço firme, formas levemente
   quadradas e o eixo SHRP, que chanfra os cantos das letras nos títulos da Rede ASPAB.
   Placares e títulos da LCB seguem na Anybody condensada (identidade da liga).
   Tamanho: a base sobe de 16px para 17px (celular) e 18px (computador); como quase tudo
   é medido em rem, todas as letras crescem juntas, sem mexer em cada tela.
   ===================================================================================== */
:root { --sans: 'Montserrat', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; }
html[data-area="rede"] {
  --qv-texto: 'Montserrat', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --qv-titulo: 'Montserrat', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
}
html { font-size: 106.25%; }
@media (min-width: 1024px) { html { font-size: 112.5%; } }
body { font-variation-settings: 'SHRP' 0; }
html[data-area="rede"] h1, html[data-area="rede"] h2, html[data-area="rede"] h3, html[data-area="rede"] h4,
html[data-area="rede"] .esc-h2, html[data-area="rede"] .esc-h3, html[data-area="rede"] .rd-brand b,
html[data-area="rede"] .stat b, html[data-area="rede"] .nuc-name b, html[data-area="rede"] dialog#modal h3 {
  font-variation-settings: 'SHRP' 100 !important; /* o atalho font: dos títulos zeraria o eixo */
  letter-spacing: -.02em;
}
/* menu do topo com a base maior: cabe numa linha até com o menu completo (admin + cadastro aberto) */
@media (min-width: 1320px) { .nav a { font-size: 1rem; padding: 8px 12px; } }
@media (min-width: 1560px) { .nav a { font-size: 1.0625rem; padding: 8px var(--s4); } }
.row-item.nw .grow b, .row-item.nw .grow .small { overflow-wrap: anywhere; }

/* =====================================================================================
   LCB (out/2026, 2ª rodada): Archivo — grotesca de cantos retos, firme e muito legível.
   Largura um pouco expandida (wdth 108) em menus, botões, abas e rótulos: ar de uniforme
   esportivo; largura normal no texto corrido. Placares/títulos seguem na Anybody da liga.
   Letras maiores só no site da LCB (a Rede ASPAB mantém o tamanho anterior).
   ===================================================================================== */
html:not([data-area="rede"]) {
  --sans: 'Montserrat', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --t-xs: .8125rem; --t-sm: .9375rem; --t-md: 1rem; --t-lg: 1.125rem; --t-xl: 1.375rem; --t-2xl: 1.75rem; --t-3xl: 2.125rem; --t-4xl: 2.75rem;
}
@media (min-width: 1024px) { html:not([data-area="rede"]) { font-size: 118.75%; } }
html:not([data-area="rede"]) body { font-weight: 450; letter-spacing: .005em; }
html:not([data-area="rede"]) :is(.nav a, .btn, .tab, .seg button, label, th, .pill, .chip, .eyebrow, .crumbs, .tabs a, .tabs button) { font-stretch: 108%; }
html:not([data-area="rede"]) :is(.btn, .tab, .nav a, th) { font-weight: 700; }
/* com a base maior, o menu do topo volta ao tamanho do texto para caber numa linha */
@media (min-width: 1320px) { html:not([data-area="rede"]) .nav a { font-size: .9375rem; padding: 8px 12px; } }
@media (min-width: 1560px) { html:not([data-area="rede"]) .nav a { font-size: 1rem; } }

/* Rede ASPAB: ícones dos módulos maiores */
html[data-area="rede"] .rd-rail button svg { width: 22px; height: 22px; padding: 9px; }
html[data-area="rede"] .rd-rail button { min-height: 52px; }
html[data-area="rede"] .esc-tabs button svg { width: 22px; height: 22px; }
@media (min-width: 961px) and (max-width: 1439px) { html:not([data-area="rede"]) .esc-entry span { display: none; } html:not([data-area="rede"]) .esc-entry { padding: 4px; } }
/* com a letra maior, o menu completo só cabe numa linha a partir de 1200px: abaixo disso, botão "Menu" */
@media (min-width: 881px) and (max-width: 1199px) {
  html:not([data-area="rede"]) .btn.menu-btn { display: inline-flex; margin-left: auto; }
  html:not([data-area="rede"]) .nav, html:not([data-area="rede"]) .nav-right { display: none; }
  html:not([data-area="rede"]) .topbar.open .wrap { flex-wrap: wrap; padding: var(--s3) 0 var(--s4); }
  html:not([data-area="rede"]) .topbar.open .nav, html:not([data-area="rede"]) .topbar.open .nav-right { display: flex; flex-direction: column; width: 100%; align-items: stretch; }
  html:not([data-area="rede"]) .topbar.open .nav a { padding: var(--s3) var(--s4); }
  html:not([data-area="rede"]) .topbar.open .nav a.active::after { left: 0; right: auto; top: 10px; bottom: 10px; width: 3px; height: auto; }
  html:not([data-area="rede"]) .topbar.open .esc-entry span { display: inline; }
}

/* Rede ASPAB (out/2026): mesma Archivo da LCB — firme, de cantos retos, com largura um pouco
   expandida em botões, menus, abas, rótulos e cabeçalhos de tabela */
html[data-area="rede"] {
  --qv-texto: 'Montserrat', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --qv-titulo: 'Montserrat', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
}
html[data-area="rede"] body { font-weight: 450; }
html[data-area="rede"] :is(h1, h2, h3, h4, .esc-h2, .esc-h3, .rd-brand b, .stat b, .nuc-name b, dialog#modal h3) { font-variation-settings: normal !important; font-stretch: 112%; letter-spacing: -.01em; }
html[data-area="rede"] :is(.btn, .rd-rail button, .esc-tabs button, .esc-seg button, label, th, .pill, .chip) { font-stretch: 108%; }

/* quadro "Dias de aula" da frequência: dias maiores e fáceis de tocar */
html[data-area="rede"] .freq-days { padding: var(--s4) var(--s5); }
html[data-area="rede"] .freq-days > b { font-size: 1.125rem; }
html[data-area="rede"] .fd-list { gap: 10px; margin: var(--s3) 0; }
html[data-area="rede"] .fd { width: 74px; min-height: 72px; border-width: 1.5px; border-radius: 14px; gap: 2px; }
html[data-area="rede"] .fd b { font: 800 1.625rem/1 var(--qv-titulo); font-stretch: 112%; }
html[data-area="rede"] .fd span { font-size: .875rem; font-weight: 600; color: var(--qv-tinta-2); }
html[data-area="rede"] .freq-days p { font-size: .9375rem; }
@media (max-width: 560px) { html[data-area="rede"] .fd { width: 62px; min-height: 64px; } html[data-area="rede"] .fd b { font-size: 1.375rem; } }

/* painel de logo: antes e depois do recorte do fundo */
.logo-ed { flex-basis: 100%; margin-top: var(--s3); padding: var(--s4); border: 1px solid var(--line-2); border-radius: var(--r2); background: var(--paper); display: grid; gap: var(--s3); }
.logo-ed-views { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s3); }
.logo-ed-views figure { margin: 0; display: grid; gap: 6px; }
.logo-ed-views figcaption { font-size: var(--t-xs); color: var(--ink-3); text-align: center; }
.logo-ed-img { aspect-ratio: 1; border-radius: var(--r2); border: 1px solid var(--line-2); display: grid; place-items: center; padding: 10px; background: #fff; }
.logo-ed-img img { max-width: 100%; max-height: 100%; object-fit: contain; }
.logo-ed-img.xadrez { background: repeating-conic-gradient(#e6e9ee 0 25%, #fff 0 50%) 0 0 / 16px 16px; }
.logo-ed-img.escuro { background: #0f2a33; }
.logo-ed-ctl { display: grid; gap: var(--s2); }
.logo-ed-range { display: grid; grid-template-columns: 9.5em minmax(0, 1fr); align-items: center; gap: var(--s3); margin: 0; }
.logo-ed-range input { width: 100%; accent-color: var(--sail-green); min-height: 0; padding: 0; border: 0; background: none; }
.logo-ed-act { display: flex; gap: var(--s2); flex-wrap: wrap; }
@media (max-width: 480px) { .logo-ed-views { grid-template-columns: repeat(2, minmax(0, 1fr)); } .logo-ed-views figure:last-child { display: none; } }
/* corte do logo: quadro arrastável sobre a imagem original */
.crop-wrap { position: relative; width: 100%; max-height: 100%; touch-action: none; user-select: none; }
.crop-wrap.alta { width: auto; height: 100%; max-width: 100%; }
.crop-wrap img { display: block; width: 100%; height: 100%; object-fit: fill; max-width: none; max-height: none; pointer-events: none; }
.crop-box { position: absolute; box-sizing: border-box; border: 2px solid var(--sun); box-shadow: 0 0 0 9999px rgba(8, 20, 28, .55); cursor: move; outline: none; }
.crop-box:focus-visible { border-color: #fff; box-shadow: 0 0 0 9999px rgba(8, 20, 28, .55), 0 0 0 3px var(--sun); }
.crop-box i { position: absolute; width: 18px; height: 18px; background: var(--sun); border: 2px solid #fff; border-radius: 50%; }
.crop-box i[data-h="nw"] { left: -10px; top: -10px; cursor: nwse-resize; } .crop-box i[data-h="se"] { right: -10px; bottom: -10px; cursor: nwse-resize; }
.crop-box i[data-h="ne"] { right: -10px; top: -10px; cursor: nesw-resize; } .crop-box i[data-h="sw"] { left: -10px; bottom: -10px; cursor: nesw-resize; }
.logo-ed-img:has(.crop-wrap) { overflow: hidden; padding: 14px; }

/* últimos jogos no mesmo desenho do cartão de jogo: metades coloridas com costura inclinada, medalhão, nome e placar de ginásio */
.rrow.rr3 { display: grid; grid-template-columns: 1fr; gap: 0; padding: 0; overflow: hidden; border-radius: var(--r3); }
.rrow.rr3::before { content: none; }
.rr3-head { display: flex; justify-content: space-between; align-items: center; gap: var(--s3); padding: var(--s3) var(--s4) var(--s2); }
.rr3-head .mc-cat { font-size: var(--t-sm); padding: 3px 9px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 60%; }
.rr3-data { font-size: var(--t-xs); color: var(--ink-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: 600; }
.rr3-game { position: relative; isolation: isolate; display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: var(--s2); padding: var(--s3) var(--s3) var(--s3); }
.rr3-game::before { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: linear-gradient(104deg, color-mix(in srgb, var(--hc, var(--line)) 24%, transparent) 0 calc(50% - 2px), var(--paper) calc(50% - 2px) calc(50% + 2px), color-mix(in srgb, var(--ac, var(--line)) 24%, transparent) calc(50% + 2px) 100%); }
.rr3-t { display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; min-width: 0; }
.rr3-t .crest, .rr3-t .crest.logo, .rr3-t .crest.logo.sm { --s: 60px; width: 60px; min-width: 60px; height: 60px; border-radius: 50%; position: relative; overflow: hidden; padding: 0; display: block; font-size: 15px; }
.rr3-t .crest.logo { background: #0f2a33; box-shadow: 0 0 0 3px color-mix(in srgb, var(--tc, var(--line)) 75%, transparent), 0 8px 18px -10px rgba(0, 0, 0, .55); }
.rr3-t .crest:not(.logo) { display: grid; place-items: center; box-shadow: 0 0 0 3px var(--paper), 0 8px 18px -10px rgba(0, 0, 0, .55); }
.rr3-t .crest.logo img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; max-height: none; object-fit: contain; transform: scale(1.1); }
.rr3-t.dim .crest { opacity: .5; } .rr3-t.dim .rr3-name { opacity: .75; }
.rr3-name { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; max-width: 100%; font: 800 var(--t-sm)/1.12 var(--display); color: var(--ink); overflow-wrap: anywhere; }
.rr3-mid { display: grid; justify-items: center; gap: 5px; }
.rr3-mid .mc3-board b { font-size: 1.6rem; }
@media (min-width: 1100px) {
  .rrow.rr3 { padding: 0; }
  .rr3-head { padding: var(--s4) var(--s5) var(--s2); }
  .rr3-head .mc-cat { font-size: var(--t-md); }
  .rr3-data { font-size: var(--t-sm); }
  .rr3-game { padding: var(--s4) var(--s4) var(--s4); gap: var(--s3); }
  .rr3-t .crest, .rr3-t .crest.logo, .rr3-t .crest.logo.sm { --s: 76px; width: 76px; min-width: 76px; height: 76px; font-size: 18px; }
  .rr3-name { font-size: var(--t-md); }
  .rr3-mid .mc3-board b { font-size: 1.9rem; }
}

/* últimos jogos: linha compacta (escudo ao lado do nome), para não se confundir com os cartões dos próximos jogos */
.results { gap: var(--s2); }
.rrow.rr3 { border-radius: var(--r2); }
.rr3-head { padding: 8px var(--s3) 0; gap: var(--s2); }
.rr3-head .mc-cat { font-size: var(--t-xs); padding: 2px 7px; background: transparent; color: var(--ink-2); border: 1px solid var(--line); font-weight: 800; }
.rr3-data { font-size: .75rem; }
.rr3-game { padding: 6px var(--s3) 10px; gap: var(--s2); }
.rr3-game::before { background: linear-gradient(104deg, color-mix(in srgb, var(--hc, var(--line)) 16%, transparent) 0 calc(50% - 1px), var(--paper) calc(50% - 1px) calc(50% + 1px), color-mix(in srgb, var(--ac, var(--line)) 16%, transparent) calc(50% + 1px) 100%); }
.rr3-t { flex-direction: row; justify-content: flex-start; text-align: left; gap: var(--s2); }
.rr3-t:last-child { flex-direction: row-reverse; text-align: right; }
.rr3-t .crest, .rr3-t .crest.logo, .rr3-t .crest.logo.sm { --s: 40px; width: 40px; min-width: 40px; height: 40px; font-size: 12px; }
.rr3-name { font-size: .8125rem; -webkit-line-clamp: 2; }
.rr3-mid { gap: 3px; }
.rr3-mid .mc3-board { padding: 4px 9px 3px; border-radius: 8px; gap: 4px; }
.rr3-mid .mc3-board b { font-size: 1.25rem; }
.rr3-mid .mc3-board i { font-size: .8125rem; }
.rr3-mid .mc3-fim { font-size: .6875rem; padding: 2px 7px; }
@media (min-width: 1100px) {
  .rr3-head { padding: 9px var(--s4) 0; }
  .rr3-head .mc-cat { font-size: var(--t-xs); }
  .rr3-data { font-size: var(--t-xs); }
  .rr3-game { padding: 6px var(--s4) 11px; gap: var(--s3); }
  .rr3-t .crest, .rr3-t .crest.logo, .rr3-t .crest.logo.sm { --s: 44px; width: 44px; min-width: 44px; height: 44px; font-size: 13px; }
  .rr3-name { font-size: var(--t-sm); }
  .rr3-mid .mc3-board b { font-size: 1.375rem; }
}
@media (max-width: 480px) { .rr3-t .crest, .rr3-t .crest.logo, .rr3-t .crest.logo.sm { --s: 34px; width: 34px; min-width: 34px; height: 34px; } .rr3-name { font-size: .75rem; } .rr3-mid .mc3-board b { font-size: 1.125rem; } }

/* menu aberto (celular e telas médias): os blocos ocupam a linha toda, abaixo da logo, e o botão Rede ASPAB mostra o nome */
@media (max-width: 1199px) {
  .topbar.open .nav, .topbar.open .nav-right { flex: 0 0 100%; }
  .topbar.open .esc-entry { justify-content: flex-start; padding: 4px 16px 4px 6px; gap: 10px; }
  .topbar.open .esc-entry span { display: inline; }
  .topbar.open .nav-right > .btn, .topbar.open .nav-right > .esc-entry { width: 100%; justify-content: center; }
}

/* selo de transmissão (YouTube + LCB) no centro do cartão de jogo agendado */
.mc3-selo { display: block; width: 58px; height: auto; margin: 0 auto 2px; }
@media (max-width: 480px) { .mc3-selo { width: 52px; } }

/* administração: cabeçalhos e blocos repetidos viram classes (antes eram estilos soltos em cada tela) */
.adm-bar { display: flex; justify-content: space-between; align-items: center; gap: var(--s3); flex-wrap: wrap; margin-bottom: var(--s4); }
.adm-h { font-size: 1.6rem; }
.adm-h.tight { margin-bottom: 6px; }
.adm-h.adm-sub { margin: var(--s7) 0 var(--s4); }
.adm-sep { border: 0; border-top: 1px solid var(--line-2); margin: var(--s7) 0 var(--s6); }
.imp-legado { margin-top: var(--s6); }
.imp-legado > summary { cursor: pointer; font-weight: 800; font-size: var(--t-lg); min-height: 44px; display: flex; align-items: center; }
.imp-legado[open] > summary { margin-bottom: var(--s4); }
.venue-name { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; }
.venue-name svg { color: var(--sun); flex: none; }
.table-wrap th[scope="row"] { font-weight: 700; text-align: left; }
/* filtros da lista de equipes */
.team-filters { align-items: end; }
.inline-field { display: grid; gap: 2px; margin: 0; font-size: var(--t-xs); font-weight: 700; color: var(--ink-2); }
.inline-field select { min-width: 150px; }
.dup-alert { border-color: var(--warn); margin-bottom: var(--s4); }
.dup-alert h3 { display: flex; align-items: center; gap: 8px; }
.dup-alert ul { margin: var(--s2) 0 0; padding-left: 1.2em; }

/* disciplina */
.grid3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); gap: var(--s3); }
.disc-fs { margin: var(--s4) 0 0; padding: var(--s3) var(--s4) var(--s4); border: 1px solid var(--line-2); border-radius: var(--r2); }
.disc-fs legend { font-weight: 800; padding: 0 var(--s2); }
.pill.susp { background: var(--live); color: #fff; }
.susp-why { display: block; font-size: var(--t-xs); }
.roster-line .grow { min-width: 0; }

/* financeiro */
.fin-table td, .fin-table th { vertical-align: middle; }
.fin-aberto { font-weight: 800; color: var(--ball-text); }
.fin-orig { font-weight: 600; }
.fin-pags { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 6px; }
.fin-pags li { display: flex; justify-content: space-between; align-items: center; gap: var(--s3); padding: 8px 10px; border: 1px solid var(--line-2); border-radius: var(--r2); }
.fin-pags li.estornado { opacity: .65; text-decoration: line-through; } .fin-pags li.estornado .small { text-decoration: none; color: var(--live); }
.fin-hist td { padding-top: 0; }
.fin-hist summary { cursor: pointer; min-height: 32px; display: flex; align-items: center; font-weight: 700; }

/* perfil do atleta e destaque da rodada */
.atl-link { color: inherit; text-decoration: none; } .atl-link:hover b, .atl-link:hover { text-decoration: underline; text-underline-offset: 3px; }
.atl-foto { width: 120px; height: 120px; border-radius: 50%; object-fit: cover; border: 3px solid var(--sun); }
.resv { color: var(--green-text, #4fd18b); font-weight: 800; } .resd { color: var(--live); font-weight: 800; }
.dest-rodada { margin-bottom: var(--s5); }
.dest-rodada h2.sub { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: var(--s3); }
.dr-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s3); grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); }
.dr-lista li.dr-card { border: 1px solid var(--line-2); border-radius: var(--r2); padding: var(--s3) var(--s4) var(--s3); display: flex; flex-direction: column; gap: var(--s3); }
.dr-placar { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: var(--s2); padding-bottom: var(--s3); border-bottom: 1px solid var(--line-2); color: inherit; text-decoration: none; }
.dr-placar:hover .dr-pl { color: var(--sun); }
.dr-eq { display: flex; align-items: center; gap: 8px; min-width: 0; font: 800 var(--t-sm)/1.1 var(--display); letter-spacing: .02em; color: var(--muted, inherit); opacity: .8; }
.dr-eq > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dr-eq.fora { justify-content: flex-end; text-align: right; }
.dr-eq.win { opacity: 1; }
.dr-pl { display: flex; align-items: baseline; gap: 6px; font: 900 1.5rem/1 var(--display); font-variant-numeric: tabular-nums; }
.dr-pl b { font-weight: 900; opacity: .65; } .dr-pl b.win { opacity: 1; } .dr-pl i { font: 700 1rem/1 var(--sans); opacity: .6; align-self: center; }
.dr-who { display: flex; align-items: center; gap: var(--s3); min-width: 0; }
.dr-who > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.dr-who .atl-link b { font: 800 var(--t-lg)/1.15 var(--display); }
.dr-tag { font-size: var(--t-xs, .75rem); font-weight: 800; color: var(--sun); }
.dr-nums { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s2); margin: 0; }
.dr-nums > div { background: var(--line-2); border-radius: 10px; padding: 8px 10px; text-align: center; }
.dr-nums dt { font-size: var(--t-xs, .75rem); opacity: .75; } .dr-nums dd { margin: 2px 0 0; font: 900 1.375rem/1 var(--display); font-variant-numeric: tabular-nums; }
.dr-nums > div:first-child dd { color: var(--sun); }
.dr-ver { margin-top: auto; align-self: flex-end; font: 700 var(--t-sm)/1 var(--sans); color: var(--blue-text); text-decoration: none; min-height: 32px; display: inline-flex; align-items: center; }
.dr-ver:hover { text-decoration: underline; }
.dr-jogo { display: flex; justify-content: space-between; gap: var(--s2); flex-wrap: wrap; font-size: var(--t-sm); }
.dr-atleta { display: flex; align-items: baseline; gap: var(--s2); flex-wrap: wrap; }
.dr-atleta .atl-link b { font-size: var(--t-lg); font-family: var(--display); }
.dr-num { margin-left: auto; font: 800 var(--t-md)/1 var(--display); color: var(--sun); }

/* histórico da liga */
.hist-grid { display: grid; gap: var(--s3); grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.hist-card { display: grid; gap: var(--s3); align-content: start; }
.hist-card h3 { margin: 0; }
.hist-eq { display: flex; align-items: center; gap: var(--s3); color: inherit; text-decoration: none; }
.hist-eq span { display: grid; line-height: 1.2; }
.hist-eq b { font-family: var(--display); font-size: var(--t-lg); }
.hist-eq:first-of-type b { color: var(--sun); }
.hist-cest { display: flex; gap: var(--s2); margin: 0; font-size: var(--t-sm); align-items: flex-start; }
.hist-cest svg { flex: none; margin-top: 2px; }
.hist-recs { display: grid; gap: var(--s3); grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }
.hist-rec { border: 1px solid var(--line-2); border-radius: var(--r2); padding: var(--s3) var(--s4); display: grid; gap: 4px; }
.hist-rec b { font: 800 var(--t-xl)/1.1 var(--display); }

/* credencial do atleta (QR) */
.cred-valida { display: flex; gap: var(--s3); align-items: center; margin-bottom: var(--s3); border-left: 6px solid var(--sail-green); }
.cred-valida.warn { border-left-color: var(--sun); }
.cred-selo { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: color-mix(in srgb, var(--sail-green) 18%, transparent); flex: none; }
.cred-valida.warn .cred-selo { background: color-mix(in srgb, var(--sun) 22%, transparent); }
.cred-atl { display: flex; gap: var(--s4); align-items: center; margin-bottom: var(--s3); }
.cred-grid { display: grid; gap: var(--s4); grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.cred { border: 2px solid var(--cor); border-radius: 14px; overflow: hidden; background: var(--paper); color: var(--ink); display: grid; break-inside: avoid; }
.cred header { display: flex; gap: var(--s3); align-items: center; padding: var(--s2) var(--s3); background: var(--cor); color: #fff; }
.cred header div { display: grid; line-height: 1.15; }
.cred header small { opacity: .9; }
.cred-corpo { display: flex; gap: var(--s3); align-items: center; padding: var(--s3); }
.cred-foto { width: 72px; height: 88px; object-fit: cover; border-radius: 8px; background: var(--line-2); flex: none; }
.cred-vazia { display: grid; place-items: center; font: 800 2rem/1 var(--display); color: var(--cor); }
.cred-nome { display: block; font-family: var(--display); font-size: var(--t-lg); line-height: 1.15; }
.cred-corpo small { color: var(--ink-3); }
.cred footer { display: flex; gap: var(--s3); align-items: center; padding: var(--s2) var(--s3) var(--s3); }
.cred-qr { background: #fff; border-radius: 6px; flex: none; }
.cred footer small { color: var(--ink-3); font-size: .75rem; }
@media print { .cred-grid { grid-template-columns: repeat(2, 1fr); gap: 10mm; } .cred { color: #000; background: #fff; -webkit-print-color-adjust: exact; print-color-adjust: exact; } .cred header { -webkit-print-color-adjust: exact; print-color-adjust: exact; } }

/* busca de atleta (liberação e cadastro) */
.atl-busca { margin: -4px 0 var(--s3); }
.atl-res { list-style: none; margin: 0; padding: 0; border: 1px solid var(--line-2); border-radius: var(--r2); overflow: hidden; background: var(--paper); }
.atl-res li + li { border-top: 1px solid var(--line-2); }
.atl-res-item { color: var(--ink); display: flex; gap: var(--s3); align-items: center; width: 100%; padding: var(--s2) var(--s3); text-align: left; background: none; border: 0; font: inherit; cursor: pointer; min-height: 48px; }
.atl-res-item:hover, .atl-res-item:focus-visible { background: color-mix(in srgb, var(--sun) 16%, transparent); }
.atl-res-item .grow { display: grid; line-height: 1.25; }
.atl-res-tags { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.atl-vazio { margin: 6px 2px; }
.atl-aviso { display: grid; gap: var(--s2); padding: var(--s3); border: 1px solid var(--line-2); border-left: 4px solid var(--sun); border-radius: var(--r2); justify-items: start; }
.atl-escolhido { padding: var(--s2) var(--s3); border: 1px solid var(--line-2); border-left: 4px solid var(--sail-green); border-radius: var(--r2); margin-top: 6px; }

/* ---------- página inicial enxuta: um placar (faixa), notícias, resultados que ficaram fora da faixa, líderes ---------- */
.hero-feed-grid.only-news { grid-template-columns: minmax(0, 1fr); }
.home-head { display: flex; align-items: baseline; gap: var(--s4); flex-wrap: wrap; margin-bottom: var(--s4); }
.obs-fixo { margin-bottom: var(--s5); border-left: 4px solid var(--sun); }
.obs-fixo-agora { margin: 0; font-size: var(--t-md); }
.obs-pick-bt { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.obs-fixo-st { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.od-fixo { display: grid; gap: 4px; margin: 0 0 10px; font-size: 13px; font-weight: 700; } .od-fixo select { width: 100%; min-height: 40px; }
.esqueci-link { font-weight: 700; color: var(--accent); }
.esqueci-ok { margin-top: var(--s3); padding: var(--s3) var(--s4); border-radius: var(--r2); background: rgba(0, 160, 70, .12); border: 1px solid rgba(0, 160, 70, .35); line-height: 1.5; }
.ot-st { display: inline-grid; place-items: center; width: 20px; height: 20px; margin-left: 6px; border-radius: 50%; font-size: 12px; font-style: normal; font-weight: 900; vertical-align: 2px; }
.ot-st.ok { background: #0f8a4a; color: #fff; } .ot-st.no { background: #c7342a; color: #fff; }
.obs-tela.bloq, .obs-dock .od-bt button.bloq { opacity: .55; cursor: not-allowed; filter: grayscale(.4); }
.obs-dock .od-bt button { position: relative; padding-right: 26px; } .obs-dock .od-bt .ot-st { position: absolute; top: 4px; right: 4px; margin: 0; width: 16px; height: 16px; font-size: 10px; }
.prazos { display: grid; gap: 10px; margin: 0 0 18px; }
.prz-camp { display: flex; flex-wrap: wrap; align-items: stretch; gap: 10px; padding: 12px 14px; border-radius: var(--r2); background: var(--paper, #fff); border: 1px solid var(--line-2); }
.prz-nome { flex: 1 1 100%; font-weight: 800; font-size: var(--t-sm); display: flex; align-items: center; gap: 6px; }
.prz-item { flex: 1 1 200px; display: grid; gap: 2px; padding: 10px 12px; border-radius: 10px; background: var(--line-2); }
.prz-item b { font-size: var(--t-lg); font-family: var(--display); }
.prz-rot { font-size: var(--t-xs); font-weight: 700; opacity: .8; } .prz-item small { opacity: .75; }
.prz-item.ok { background: rgba(0, 160, 70, .12); } .prz-item.urg { background: rgba(239, 128, 33, .18); } .prz-item.urg b { color: #c45a00; } .prz-item.fim { background: rgba(200, 52, 42, .1); }
.fin-alerta { display: flex; gap: 10px; align-items: flex-start; margin: 10px 0 14px; padding: 12px 14px; border-radius: var(--r2); background: rgba(239, 128, 33, .14); border: 1px solid rgba(239, 128, 33, .4); }
.fin-alerta.atraso { background: rgba(200, 52, 42, .12); border-color: rgba(200, 52, 42, .45); } .fin-alerta div { display: grid; gap: 2px; } .fin-alerta span { font-size: var(--t-sm); opacity: .85; }
.fin-comps { margin-bottom: 16px; border-left: 4px solid var(--sun, #ef8021); }
.fin-comp-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; } .fin-comp-lista li { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; padding: 10px 0; border-top: 1px solid var(--line-2); }
.pill.danger { background: rgba(200, 52, 42, .14); color: #b3261e; }
.home-filtro { margin-bottom: var(--s4); } .home-filtro .lead-pick select { max-width: min(460px, 100%); }
.home-head h2 { margin: 0; font-size: clamp(1.375rem, 2.4vw, 1.875rem); }
.home-more { margin-left: auto; font: 700 var(--t-sm)/1.2 var(--sans); color: var(--blue-text); text-decoration: none; display: inline-flex; align-items: center; min-height: 44px; }
.home-more:hover { text-decoration: underline; }
.home-head .lead-pick select { min-height: 40px; padding: 6px 34px 6px 12px; border-radius: 999px; font-weight: 700; }
.results.results-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s3); }
@media (max-width: 900px) { .results.results-2 { grid-template-columns: minmax(0, 1fr); } }
.hn-side { display: flex; flex-direction: column; }
.hn-list { list-style: none; margin: 0; padding: 0; display: grid; align-content: start; }
.hn-list li + li { border-top: 1px solid var(--line-2); }
.hn-list a { display: grid; gap: 4px; padding: var(--s4) var(--s5); color: var(--ink); text-decoration: none; height: 100%; align-content: center; }
.hn-list a b { font: 800 var(--t-md)/1.25 var(--display); }
.hn-list a:hover b { text-decoration: underline; }
.lead-tiles { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: var(--s3); }
.lt { background: var(--paper); border: 1px solid var(--line-2); border-radius: var(--r3); padding: var(--s4); display: grid; gap: var(--s2); }
.lt-k { font: 700 var(--t-sm)/1.2 var(--sans); color: var(--ink-3); }
.lt-v strong { font: 850 clamp(2.25rem, 4vw, 3rem)/1 var(--display); color: var(--ink); }
.lt-v small { margin-left: 6px; font-weight: 700; color: var(--ink-3); }
.lt-who { display: flex; gap: var(--s2); align-items: center; min-width: 0; }
.lt-who > span { display: grid; min-width: 0; line-height: 1.2; }
.lt-who b, .lt-who small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cta-strip { display: flex; align-items: center; justify-content: space-between; gap: var(--s4); flex-wrap: wrap; padding: var(--s4) var(--s5); border-radius: var(--r3); background: var(--sand); color: var(--sand-ink); text-decoration: none; border: 1px solid var(--sand-line); }
.cta-strip > span:first-child { display: flex; gap: var(--s2) var(--s3); align-items: center; flex-wrap: wrap; }
.cta-strip .muted { color: var(--sand-ink); opacity: .85; }
.cta-strip:hover .btn { filter: brightness(1.08); }
.home-jogos, .leaders { padding-top: var(--s7); }

/* classificação: resumida por padrão (Pts, J, V, D, saldo); a completa abre com um toque */
.st.compact .full { display: none; }
.st-bar { display: flex; justify-content: flex-end; margin: 0 0 var(--s2); }
.st-toggle { background: none; border: 0; padding: 0 2px; min-height: 40px; font: 700 var(--t-sm)/1 var(--sans); color: var(--blue-text); cursor: pointer; }
.st-toggle:hover { text-decoration: underline; }
.st td.sp.pos-sg { color: var(--green-text); }
.st td.sp.neg-sg { color: var(--live); }
.st.compact th, .st.compact td { padding-left: var(--s3); padding-right: var(--s3); }
.tab-tools { display: flex; align-items: center; gap: var(--s3); flex-wrap: wrap; margin: 0 0 var(--s4); }
.tab-tools .seg { margin: 0; }
.tab-tools-end { margin-left: auto; }
.group-title { margin: 0; padding: var(--s4) var(--s5) var(--s2); font: 800 var(--t-lg)/1.2 var(--display); text-transform: uppercase; }

/* busca de atleta: lista limpa, uma linha de nome + uma de equipe/técnico, rótulo único à direita */
.atl-busca { margin: 4px 0 var(--s3); }
.atl-res-cab { margin: 0 2px 6px; }
.atl-res { max-height: 300px; overflow-y: auto; border-radius: var(--r2); box-shadow: 0 12px 28px -16px rgba(0,0,0,.45); }
.atl-res-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--s3); align-items: center; padding: 10px var(--s3); min-height: 56px; }
.atl-res-txt { display: grid; gap: 2px; min-width: 0; }
.atl-res-nome { font: 700 var(--t-sm)/1.25 var(--sans); color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; letter-spacing: .01em; }
.atl-res-meta { display: flex; flex-wrap: nowrap; overflow: hidden; gap: 0 10px; font-size: var(--t-xs); color: var(--ink-3); }
.atl-res-meta span + span { padding-left: 10px; border-left: 1px solid var(--line); }
.atl-tag { font: 700 .75rem/1 var(--sans); padding: 5px 9px; border-radius: 999px; white-space: nowrap; }
.atl-tag.ok { background: var(--ok-bg); color: var(--ok-ink); }
.atl-tag.warn { background: var(--sand); color: var(--sand-ink); }
.atl-res-meta span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
@media (max-width: 960px) { .hero-feed .hn-side { display: none; } }
@media (max-width: 600px) {
  .lead-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s2); }
  .lt { padding: var(--s3); }
  .lt-v strong { font-size: 2rem; }
  .lt-who .crest { display: none; }
  .home-more { margin-left: 0; }
}
.home-head .seg { margin: 0; }

/* ---------- painel do administrador: menu lateral fixo + área de conteúdo ---------- */
.adm-shell { display: grid; grid-template-columns: 228px minmax(0, 1fr); gap: var(--s6); align-items: start; padding: var(--s5) 0 var(--s7); }
.adm-side { position: sticky; top: 96px; max-height: calc(100vh - 112px); overflow-y: auto; padding: var(--s3); border: 1px solid var(--line-2); border-radius: var(--r3); background: var(--paper); }
.adm-nav-g { display: grid; gap: 2px; }
.adm-nav-g + .adm-nav-g { margin-top: var(--s3); padding-top: var(--s3); border-top: 1px solid var(--line-2); }
.adm-nav-t { font: 700 .75rem/1 var(--sans); color: var(--ink-3); padding: 2px 12px 6px; letter-spacing: .02em; }
.adm-nav-i { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 40px; padding: 8px 12px; border: 0; border-radius: 10px; background: none; color: var(--ink-2); font: 600 var(--t-sm)/1.2 var(--sans); text-align: left; text-decoration: none; cursor: pointer; }
.adm-nav-i svg { width: 18px; height: 18px; flex: none; }
.adm-nav-i:hover { background: var(--hover); color: var(--ink); }
.adm-nav-i.on { background: var(--sun); color: var(--on-sun); }
.adm-badge { margin-left: auto; min-width: 22px; padding: 2px 7px; border-radius: 999px; background: var(--live); color: #fff; font: 700 .75rem/1.3 var(--sans); text-align: center; }
.adm-main { min-width: 0; }
.adm-main > .crumbs { margin: 0 0 var(--s2); padding: 0; }
.adm-head { display: flex; align-items: center; gap: var(--s4); flex-wrap: wrap; margin: 0 0 var(--s5); }
.adm-head-txt { flex: 1; min-width: 220px; }
.adm-head h1 { margin: 0; font-size: clamp(1.625rem, 2.8vw, 2.25rem); line-height: 1.1; }
.adm-head-txt > p { margin: 6px 0 0; display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.adm-eyebrow { display: block; margin-bottom: 4px; font: 700 var(--t-sm)/1.2 var(--sans); color: var(--ink-3); }
.adm-head-act { display: flex; gap: var(--s2); flex-wrap: wrap; align-items: center; }
.adm-head-act select { min-height: 36px; padding: 4px 32px 4px 10px; }
.adm-head .champ-logo { width: 56px; height: 56px; object-fit: contain; border-radius: 12px; }
.adm-main > .tabs { margin-bottom: var(--s5); }
.adm-nums { margin: var(--s5) 0; }
.adm-sec { margin-top: var(--s5); }
.adm-list { list-style: none; margin: 0; padding: 0; border: 1px solid var(--line-2); border-radius: var(--r3); background: var(--paper); overflow: hidden; }
.adm-list li + li { border-top: 1px solid var(--line-2); }
.adm-list a { display: grid; grid-template-columns: minmax(0, 1fr) auto auto auto; gap: var(--s3); align-items: center; padding: var(--s3) var(--s4); min-height: 56px; color: var(--ink); text-decoration: none; }
.adm-list a:hover { background: var(--hover); }
.adm-list a b { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.adm-list svg { width: 18px; height: 18px; color: var(--ink-3); }
.adm-arq { margin-top: var(--s5); }
.adm-arq > summary { cursor: pointer; font-weight: 700; color: var(--ink-2); min-height: 44px; display: flex; align-items: center; }
.adm-arq[open] > summary { margin-bottom: var(--s3); }
@media (max-width: 960px) {
  .adm-shell { grid-template-columns: minmax(0, 1fr); gap: var(--s4); padding-top: var(--s3); }
  .adm-side { position: static; max-height: none; overflow-x: auto; padding: 6px; }
  .adm-side nav { display: flex; gap: 4px; }
  .adm-nav-g { display: flex; gap: 4px; }
  .adm-nav-g + .adm-nav-g { margin: 0; padding: 0 0 0 4px; border-top: 0; border-left: 1px solid var(--line-2); }
  .adm-nav-t { display: none; }
  .adm-nav-i { width: auto; white-space: nowrap; }
  .adm-list a { grid-template-columns: minmax(0, 1fr) auto; }
  .adm-list a .muted, .adm-list a svg { display: none; }
}

/* modo escuro: página no azul-noite (o tom do rodapé) e rodapé no verde-petróleo (o tom que era da página) */
:root[data-theme="dark"] body { background-color: var(--sea-900); }
:root[data-theme="dark"] .footer { background: #0f2a33; }
:root[data-theme="dark"] .footer::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 28' preserveAspectRatio='none'%3E%3Cpath d='M0 14C100 0 200 0 300 14s200 14 300 0 200-14 300 0 200 14 300 0v14H0z' fill='%230f2a33'/%3E%3C/svg%3E"); }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) body { background-color: var(--sea-900); }
  :root:not([data-theme="light"]) .footer { background: #0f2a33; }
  :root:not([data-theme="light"]) .footer::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 28' preserveAspectRatio='none'%3E%3Cpath d='M0 14C100 0 200 0 300 14s200 14 300 0 200-14 300 0 200 14 300 0v14H0z' fill='%230f2a33'/%3E%3C/svg%3E"); }
}
/* menu lateral do painel: cabe inteiro em telas de notebook, sem barra de rolagem interna */
.adm-side { max-height: none; overflow: visible; position: sticky; }
.adm-nav-i { min-height: 36px; padding: 6px 12px; }
.adm-nav-g + .adm-nav-g { margin-top: var(--s2); padding-top: var(--s2); }
@media (max-height: 700px) and (min-width: 961px) { .adm-side { position: static; } }
@media (max-width: 960px) { .adm-side { overflow-x: auto; } }

/* rubricas da arbitragem e relatório do árbitro */
.sheet .ov.sig { object-fit: contain; object-position: center; padding: 0; mix-blend-mode: multiply; }
.sign-list { list-style: none; margin: var(--s3) 0 0; padding: 0; display: grid; }
.sign-list li { display: grid; grid-template-columns: minmax(0, 1fr) 150px auto; gap: var(--s3); align-items: center; padding: var(--s2) 0; border-top: 1px solid var(--line-2); }
.sign-role { display: grid; min-width: 0; line-height: 1.25; }
.sign-role small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sign-thumb { width: 150px; height: 30px; object-fit: contain; background: #fff; border-radius: 6px; border: 1px solid var(--line); }
.sign-thumb.vazio { display: block; background: repeating-linear-gradient(90deg, transparent 0 6px, var(--line-2) 6px 7px); border-style: dashed; }
.sig-pad { width: 100%; aspect-ratio: 1000 / 220; height: auto; background: #fff; border: 2px dashed var(--line); border-radius: 12px; touch-action: none; display: block; }
.rel-card textarea { width: 100%; min-height: 150px; }
.rel-row { display: flex; gap: var(--s3); align-items: end; flex-wrap: wrap; margin-top: var(--s2); }
.rel-row .inline-field { flex: 1; min-width: 220px; }
.rel-row .inline-field input { width: 100%; }
.sumula-rel { width: min(100%, 860px); margin: var(--s5) auto 0; background: #fff; color: #0b2a5b; padding: 40px 48px; box-shadow: var(--shadow); }
.sumula-rel h2 { margin: 0 0 6px; font-size: 1.375rem; color: #0b2a5b; }
.sumula-rel .sr-meta { margin: 0 0 18px; font-size: .9375rem; color: #33476b; border-bottom: 1px solid #c9d3e6; padding-bottom: 10px; }
.sumula-rel .sr-txt p { margin: 0 0 12px; line-height: 1.6; white-space: normal; }
.sumula-rel .sr-ass { margin: 28px 0 0; padding-top: 8px; border-top: 1px solid #0b2a5b; width: 60%; font-size: .9375rem; }
@media (max-width: 600px) { .sign-list li { grid-template-columns: minmax(0, 1fr) auto; } .sign-list .sign-thumb { grid-column: 1 / -1; width: 100%; height: 40px; } }
@media print { .sumula-rel { break-before: page; page-break-before: always; box-shadow: none; margin: 0; width: 100%; } }

/* páginas de impressão com nome: cada documento escolhe o seu formato (antes a escala e as disponibilidades deixavam TUDO em paisagem) */
@page sumula { size: A4 portrait; margin: 0; }
@page relatorio { size: A4 portrait; margin: 14mm; }
@page paisagem { size: A4 landscape; margin: 10mm; }
@media print {
  .sheet { page: sumula; break-after: auto; }
  .sumula-rel { page: relatorio; break-before: page; padding: 0; }
  .escala-print, .disp-board { page: paisagem; }
  body:has(.sheet) .wrap, body:has(.sheet) main { padding: 0 !important; margin: 0 !important; max-width: none !important; width: auto !important; }
}

/* tema claro de volta: logos claras/brancas (.oll) ganham um contorno escuro fino para não sumir no fundo claro */
:root[data-theme="light"] .crest.logo.oll img { filter: drop-shadow(var(--ow) 0 0 #0b1f33) drop-shadow(calc(var(--ow) * -1) 0 0 #0b1f33) drop-shadow(0 var(--ow) 0 #0b1f33) drop-shadow(0 calc(var(--ow) * -1) 0 #0b1f33); }
/* jogos da página inicial: cards grandes (logos em destaque) nas abas Próximos e Resultados */
.home-cards { grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: var(--s4); }

/* ===== mesa: atletas em destaque, lance a lance e tempo mais compactos ===== */
.mesa-grid { grid-template-columns: minmax(0, 1fr) minmax(280px, 340px); gap: var(--s4); }
@media (max-width: 1100px) { .mesa-grid { grid-template-columns: minmax(0, 1fr); } }
.mesa-log { position: sticky; top: 84px; max-height: calc(100vh - 100px); overflow-y: auto; align-self: start; }
.mesa-log .timeline .ev { padding-top: 6px; padding-bottom: 6px; font-size: var(--t-sm); }
@media (max-width: 1100px) { .mesa-log { position: static; max-height: 60vh; } }
.jerseys { grid-template-columns: repeat(auto-fill, minmax(84px, 1fr)); gap: 8px; }
.jersey { min-height: 86px; }
.jersey b { font-size: 2.15rem; }
.jersey span { font-size: .75rem; }
.jersey .pips em { width: 8px; height: 8px; }
.jz-label { font: 700 var(--t-xs)/1 var(--sans); color: var(--ink-3); margin: 8px 2px 6px; display: flex; gap: 8px; align-items: baseline; }
.jz-label small { font-weight: 500; }
.jerseys.on-court .jersey { border-width: 3px; box-shadow: 0 0 0 1px var(--tc, var(--line)) inset; }
.jersey.is-bench { opacity: .62; border-style: dashed; background: transparent; min-height: 64px; }
.jersey.is-bench b { font-size: 1.55rem; }
.jersey.is-bench:hover:not([disabled]) { opacity: 1; }
.cap.tit { font-weight: 800; }
.ev.flagged { background: color-mix(in srgb, var(--sun) 16%, transparent); box-shadow: inset 4px 0 0 var(--sun); }
.flag-pill { background: var(--sun) !important; color: var(--on-sun) !important; }
.flag-btn.on { color: var(--sun); }
.flag-note { margin: 0 0 8px; padding: 8px 10px; border-radius: 10px; background: color-mix(in srgb, var(--sun) 16%, transparent); font-size: var(--t-sm); display: flex; gap: 6px; align-items: center; }
/* tempo e placar compactos durante o jogo */
.mesa-grid ~ * .scoreboard, .scoreboard.live { padding: var(--s3) var(--s4); }
@media (max-width: 760px) { .jerseys { grid-template-columns: repeat(3, 1fr); } .jersey { min-height: 74px; } .jersey b { font-size: 1.8rem; } }
.mesa-wrap .scoreboard { padding: var(--s3) var(--s4); }
.mesa-wrap .scoreboard .sb-row { gap: var(--s3); }
.mesa-wrap .scoreboard .sb-team .crest.logo, .mesa-wrap .scoreboard .sb-team .crest.lg { --s: 52px; }
.mesa-wrap .scoreboard .sb-team .crest:not(.logo) { --s: 48px; }
.mesa-wrap .scoreboard .sb-score { font-size: clamp(2rem, 5vw, 3rem); }
.mesa-wrap .scoreboard .clock { font-size: 1.375rem; margin-top: 4px; }
.mesa-wrap .scoreboard .linescore { margin-top: 6px; }
.mesa-wrap .mesa-grid { margin-top: var(--s3); }

/* ===== súmula: cor por período (1º/3º vermelho, 2º/4º azul); cabeçalho, fechamento e rubricas em azul ===== */
.sheet { color: #1f3f99; }
.sheet .ov.xmark { background: linear-gradient(to top right, transparent calc(50% - .7px), var(--pc, #1f3f99) calc(50% - .7px), var(--pc, #1f3f99) calc(50% + .7px), transparent calc(50% + .7px)), linear-gradient(to bottom right, transparent calc(50% - .7px), var(--pc, #1f3f99) calc(50% - .7px), var(--pc, #1f3f99) calc(50% + .7px), transparent calc(50% + .7px)); }
/* lance livre: • ; cesta de 2 ou 3: / */
.sheet .ov.mk-dot::after { content: ''; display: block; margin: auto; width: calc(3.6 * var(--pt)); height: calc(3.6 * var(--pt)); border-radius: 50%; background: var(--pc); }
.sheet .ov.mk-slash { background: linear-gradient(to top right, transparent calc(50% - .8px), var(--pc) calc(50% - .8px), var(--pc) calc(50% + .8px), transparent calc(50% + .8px)); }
/* 3 pontos: número do atleta circulado */
.sheet .ov.c3::before { content: ''; position: absolute; left: 50%; top: 50%; width: calc(10.4 * var(--pt)); height: calc(10.4 * var(--pt)); transform: translate(-50%, -50%); border: calc(.9 * var(--pt)) solid var(--pc); border-radius: 50%; }
.sheet .ov.pend { border-bottom: calc(1.7 * var(--pt)) solid var(--pc, #1f3f99); }
.sheet .ov.pend.half { border-bottom: calc(3.2 * var(--pt)) double var(--pc, #1f3f99); }
/* coluna E: titular = X vermelho dentro de círculo azul */
.sheet .ov.ent.tit { justify-content: center; }
.sheet .ov.ent.tit i { font-style: normal; font-weight: 800; color: #1f3f99; width: calc(9.6 * var(--pt)); height: calc(9.6 * var(--pt)); border: calc(.9 * var(--pt)) solid #c8102e; border-radius: 50%; display: grid; place-items: center; line-height: 1; }
/* rubricas em azul na súmula (o traço preto vira azul-caneta) */
.sheet .ov.sig { filter: brightness(0) saturate(100%) invert(19%) sepia(64%) saturate(2400%) hue-rotate(218deg) brightness(88%) contrast(98%); mix-blend-mode: normal; }

/* compartilhar (stories e WhatsApp) */
.share-row { margin-top: var(--s3); }
.share-btn svg { width: 16px; height: 16px; }
.share-wrap { display: grid; grid-template-columns: minmax(0, 260px) minmax(0, 1fr); gap: var(--s5); align-items: start; }
.share-prev { width: 100%; aspect-ratio: 9 / 16; object-fit: contain; border-radius: 16px; background: #000c26; box-shadow: var(--shadow); }
.share-ops { display: grid; gap: var(--s3); align-content: start; }
.share-ops .btn { justify-content: center; }
@media (max-width: 600px) { .share-wrap { grid-template-columns: 1fr; } .share-prev { max-height: 52vh; } }
.dest-jogo { margin-top: var(--s4); }
.dest-jogo h2 { margin: 0 0 var(--s3); display: flex; gap: var(--s2); align-items: baseline; }
.dj-linha { display: flex; align-items: center; gap: var(--s4); flex-wrap: wrap; padding: var(--s3) 0; border-top: 1px solid var(--line-2); }
.dj-quem { display: grid; flex: 1; min-width: 160px; line-height: 1.2; }
.dj-quem b { font: 800 var(--t-lg)/1.15 var(--display); }
.dj-num { display: grid; justify-items: center; min-width: 52px; }
.dj-num b { font: 850 1.75rem/1 var(--display); color: var(--ink); }
.dj-num small { color: var(--ink-3); font-weight: 700; }
/* botão de compartilhar em cada jogo: visível, com a cor de destaque */
td .share-btn.ghost { border-color: var(--sun); color: var(--ink); white-space: nowrap; }
td .share-btn.ghost svg { color: var(--sun); }
/* mesa (ajuste após a simulação): placar do topo enxuto, lance a lance legível, 5 em quadra numa fileira */
.mesa-wrap .scoreboard .linescore { display: none; }
.mesa-wrap .scoreboard .sb-team { font-size: var(--t-md); gap: 6px; }
.mesa-wrap .scoreboard .sb-team .crest.logo, .mesa-wrap .scoreboard .sb-team .crest.lg, .mesa-wrap .scoreboard .sb-team .crest { --s: 40px; }
.mesa-wrap .scoreboard .sb-score { font-size: clamp(1.8rem, 4vw, 2.6rem); }
.mesa-wrap .scoreboard > .muted { font-size: var(--t-xs); }
.mesa-grid { grid-template-columns: minmax(0, 1fr) minmax(320px, 400px); }
.mesa-log .ev { grid-template-columns: 46px 30px minmax(0, 1fr) auto; gap: 8px; padding: 6px 8px; }
.mesa-log .ev .tok { width: 28px; height: 28px; font-size: .75rem; }
.mesa-log .ev .tt b { font-size: var(--t-sm); line-height: 1.25; }
.mesa-log .ev .tt span { font-size: var(--t-xs); }
.mesa-log .ev .ev-hist { display: none; }
.mesa-log .ev-end { gap: 4px; }
.mesa-log .ev-end .btn.sm { padding: 4px 6px; min-height: 30px; }
.mesa-log .runscore { font-size: var(--t-xs); padding: 2px 6px; }
.jerseys.on-court { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.jerseys.bench { grid-template-columns: repeat(auto-fill, minmax(62px, 1fr)); }
@media (max-width: 760px) { .jerseys.on-court { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 4px; } .jerseys.on-court .jersey b { font-size: 1.5rem; } .jerseys.on-court .jersey span { display: none; } }

/* ===== mesa (ajustes pedidos): botões da equipe maiores, banco visível com qualquer camisa, lance a lance em linhas ===== */
.court-side .team-ops { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 10px; }
.court-side .tbtn { min-height: 54px; font-size: var(--t-md); font-weight: 800; gap: 8px; padding: 6px 10px; border-width: 2px; border-radius: 12px; }
.court-side .tbtn small { font-size: var(--t-sm); }
.court-side .tbtn svg { width: 20px; height: 20px; }
/* banco: mesma cor da camisa, só mais apagada (antes o fundo ficava transparente e camisa branca sumia) */
.jersey.is-bench { background: var(--paper); opacity: .6; border-style: dashed; }
.jersey.is-bench.has-jc { background: var(--jc); color: var(--jt); border-color: color-mix(in srgb, var(--jt) 30%, var(--jc)); }
.jersey.is-bench:not([disabled]):hover { opacity: .95; }
/* lance a lance: uma linha por lance (tempo · ícone · lance e atleta · placar · ações), sem quebrar palavra por palavra */
.mesa-grid { grid-template-columns: minmax(0, 1fr) minmax(340px, 400px); }
@media (max-width: 1240px) { .mesa-grid { grid-template-columns: minmax(0, 1fr); } .mesa-log { position: static; max-height: 70vh; } }
.mesa-log { overflow-x: hidden; }
.mesa-log .timeline { gap: 6px; }
.mesa-log .ev { display: grid; grid-template-columns: 48px 28px minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 6px 8px; min-width: 0; }
.mesa-log .ev .tok, .mesa-log .ev .tok.logo { width: 28px; height: 28px; }
.mesa-log .ev .tt { min-width: 0; display: grid; gap: 1px; }
.mesa-log .ev .tt > b, .mesa-log .ev .tt > span { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mesa-log .ev .tt > b { font-size: .8125rem; }
.mesa-log .ev .tt > span { font-size: .75rem; }
.mesa-log .ev .ev-hist { display: none !important; }
.mesa-log .ev .min { font-size: .9375rem; }
.mesa-log .ev-end { display: flex; gap: 4px; align-items: center; }
.mesa-log .ev-end .btn.sm { min-height: 30px; min-width: 30px; padding: 2px 6px; }
.mesa-log .runscore { font-size: .75rem; padding: 2px 6px; white-space: nowrap; }
.mesa-log .ev .tt > b { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; line-height: 1.2; }

/* ===== cartão do jogo em destaque (página do jogo e mesa): logos grandes, mesmo desenho do cartão da página inicial ===== */
.mcard.mc-hero { cursor: default; margin-top: var(--s4); }
.mcard.mc-hero:hover { transform: none; }
.mcard.mc-hero .mrow { padding: var(--s6) var(--s5) var(--s5); }
.mcard.mc-hero .mteam .crest.logo, .mcard.mc-hero .mteam .crest.logo.sm { --s: 150px; width: 150px; min-width: 150px; height: 150px; }
.mcard.mc-hero .mteam .crest.logo img { max-width: 150px; max-height: 150px; }
.mcard.mc-hero .mteam .crest:not(.logo) { --s: 128px; }
.mcard.mc-hero .mc3-name { font-size: clamp(1rem, 2.2vw, 1.6rem); }
.mcard.mc-hero .mc3-board { font-size: clamp(2.6rem, 6vw, 4.4rem); padding: 10px 22px; }
.mcard.mc-hero .mc-head { padding: var(--s3) var(--s5); }
@media (max-width: 640px) {
  .mcard.mc-hero .mteam .crest.logo, .mcard.mc-hero .mteam .crest.logo.sm { --s: 88px; width: 88px; min-width: 88px; height: 88px; }
  .mcard.mc-hero .mteam .crest.logo img { max-width: 88px; max-height: 88px; }
  .mcard.mc-hero .mteam .crest:not(.logo) { --s: 76px; }
  .mcard.mc-hero .mc3-board { font-size: 2.2rem; padding: 6px 12px; }
}
/* na mesa o cartão é um pouco menor, para sobrar espaço para os atletas */
.mesa-hero .mcard.mc-hero { margin-top: var(--s3); }
.mesa-hero .mcard.mc-hero .mrow { padding: var(--s4) var(--s4) var(--s3); }
.mesa-hero .mcard.mc-hero .mteam .crest.logo, .mesa-hero .mcard.mc-hero .mteam .crest.logo.sm { --s: 104px; width: 104px; min-width: 104px; height: 104px; }
.mesa-hero .mcard.mc-hero .mteam .crest.logo img { max-width: 104px; max-height: 104px; }
.mesa-hero .mcard.mc-hero .mteam .crest:not(.logo) { --s: 88px; }
.mesa-hero .mcard.mc-hero .mc3-board { font-size: clamp(2.2rem, 4.5vw, 3.4rem); }
.mesa-hero .mcard.mc-hero .mc-foot { display: none; }
/* página do jogo: ações, vídeo menor com o lance a lance ao lado, placar por período */
.jogo-acoes { display: flex; gap: var(--s2); flex-wrap: wrap; align-items: center; margin: var(--s3) 0 0; }
.live-split { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(300px, 1fr); gap: var(--s4); margin-top: var(--s4); align-items: start; }
.live-split .stream { margin: 0; border-radius: var(--r3); overflow: hidden; aspect-ratio: 16 / 9; background: #000; }
.live-split .stream iframe { width: 100%; height: 100%; border: 0; display: block; }
.live-feed { padding: var(--s3); max-height: min(70vh, 520px); overflow-y: auto; }
.live-feed h2 { margin: 0 0 var(--s2); }
.live-feed .ev { grid-template-columns: 48px 28px minmax(0, 1fr) auto; gap: 8px; padding: 6px 8px; }
.live-feed .ev .ev-hist { display: none; }
.live-feed .ev .tt > span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: block; }
@media (max-width: 900px) { .live-split { grid-template-columns: minmax(0, 1fr); } .live-feed { max-height: 60vh; } }
.jogo-line { margin-top: var(--s4); padding: var(--s3) var(--s4); border-radius: var(--r3); background: linear-gradient(180deg, #0f2a33, #000c26); }
.jogo-line .linescore { margin-top: 0; }
/* camisas da mesa: nome e sobrenome (até 2 linhas) */
.jersey span { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; line-height: 1.1; text-align: center; font-size: .75rem; }
.live-feed .ev .tt > .ev-hist { display: none; }
.share-zap { background: #1d8f4e; border-color: #1d8f4e; color: #fff; }
.share-zap:hover { background: #167a41; }
.share-zap svg { width: 16px; height: 16px; }
/* súmula preenchida dentro da mesa: na impressão sai só a súmula (e o relatório na folha seguinte) */
.sumula-prev .sheet { box-shadow: 0 0 0 1px var(--line); }
@media print {
  body:has(.sumula-prev) main * { visibility: hidden; }
  body:has(.sumula-prev) .sumula-prev, body:has(.sumula-prev) .sumula-prev * { visibility: visible; }
  body:has(.sumula-prev) .sumula-prev { position: absolute; left: 0; top: 0; width: 100%; }
}

/* rodapé: ASPAB-CE em maiúsculas */
.footer .brand-tag { text-transform: uppercase; }
/* tabelas dentro de cartões: rolam para o lado no celular (o cartão cortava a sobra) */
.card.pad0.table-wrap { overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch; }
.card.pad0.table-wrap > table { min-width: 100%; }
/* ao puxar a página além do fim (iPhone/Android), aparece a cor do rodapé, não uma faixa clara */
html { background: var(--sea-900); }
:root[data-theme="dark"] { background: #0f2a33; }
body { min-height: 100vh; }
/* súmula: traçado do intervalo (faltas do 1º tempo x 2º tempo) */
.sheet .ov-tracos { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.sheet .ov-tracos polyline { fill: none; stroke: #1f3f99; stroke-width: 1.7; stroke-linejoin: miter; stroke-linecap: square; }
@media print { .sheet .ov-tracos { print-color-adjust: exact; -webkit-print-color-adjust: exact; } }

.sheet .ov-tracos line.fecho { stroke:#1f3f99; stroke-width:1; stroke-linecap:round; }
.sheet .ov.fimc::before { content: ''; position: absolute; left: 50%; top: 50%; width: calc(11.2 * var(--pt)); height: calc(11.2 * var(--pt)); transform: translate(-50%, -50%); border: calc(1.1 * var(--pt)) solid var(--pc); border-radius: 50%; }

/* aviso de privacidade (LGPD) junto dos formulários */
.lgpd-aviso { display: flex; gap: 8px; align-items: flex-start; margin: 14px 0 6px; padding: 10px 12px; border-radius: var(--r-sm, 8px); background: var(--surface-2, rgba(0,0,0,.04)); color: var(--ink-2, inherit); font-size: .8125rem; line-height: 1.45; }
.lgpd-aviso .i { flex: none; width: 16px; height: 16px; margin-top: 1px; opacity: .8; }
.lgpd-aviso a { font-weight: 700; }
/* relatório do árbitro: assinatura na mesa */
.rel-sign { display: grid; grid-template-columns: minmax(0, 1fr) 150px auto; gap: var(--s3); align-items: center; margin-top: var(--s3); padding-top: var(--s3); border-top: 1px solid var(--line-2); }
@media (max-width: 600px) { .rel-sign { grid-template-columns: minmax(0, 1fr) auto; } .rel-sign .sign-thumb { grid-column: 1 / -1; width: 100%; height: 40px; } }
/* relatório do árbitro: folha impressa (A4) com a logo da liga em marca d'água */
.sumula-rel { position: relative; overflow: hidden; isolation: isolate; box-sizing: border-box; font-family: 'Montserrat', Arial, Helvetica, sans-serif; }
.sumula-rel .sr-wm { position: absolute; left: 50%; top: 52%; width: 72%; max-width: 520px; transform: translate(-50%, -50%); opacity: .07; z-index: -1; pointer-events: none; filter: grayscale(1); }
.sumula-rel .sr-head { display: flex; align-items: center; gap: 14px; padding-bottom: 12px; margin-bottom: 18px; border-bottom: 3px solid #1f3f99; }
.sumula-rel .sr-head img { height: 44px; width: auto; }
.sumula-rel .sr-head div { display: grid; line-height: 1.25; }
.sumula-rel .sr-head b { font-size: 1rem; color: #0b2a5b; }
.sumula-rel .sr-head span { font-size: .8125rem; color: #33476b; }
.sumula-rel h2 { margin: 0 0 14px; font-size: 1.5rem; letter-spacing: .02em; text-transform: uppercase; color: #1f3f99; }
.sumula-rel h3 { margin: 22px 0 8px; font-size: .9375rem; text-transform: uppercase; color: #1f3f99; }
.sumula-rel .sr-dados { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin: 0; border: 1px solid #9fb0d0; }
.sumula-rel .sr-dados div { display: grid; grid-template-columns: 96px 1fr; border-bottom: 1px solid #c9d3e6; }
.sumula-rel .sr-dados div:nth-child(odd) { border-right: 1px solid #c9d3e6; }
.sumula-rel .sr-dados div:nth-last-child(-n+2) { border-bottom: 0; }
.sumula-rel .sr-dados dt { padding: 6px 8px; font-size: .75rem; font-weight: 700; text-transform: uppercase; color: #33476b; background: rgba(31, 63, 153, .06); }
.sumula-rel .sr-dados dd { margin: 0; padding: 6px 8px; font-size: .8125rem; font-weight: 700; color: #0b2a5b; overflow-wrap: anywhere; }
.sumula-rel .sr-txt { min-height: 300px; padding: 4px 2px; background-image: repeating-linear-gradient(to bottom, transparent 0, transparent 25px, #d6deee 25px, #d6deee 26px); line-height: 26px; }
.sumula-rel .sr-txt p { margin: 0 0 26px; line-height: 26px; font-size: .9375rem; color: #0b1f33; }
.sumula-rel .sr-txt p:last-child { margin-bottom: 0; }
.sumula-rel .sr-ass { display: none; }
.sumula-rel .sr-assina { width: 62%; margin: 40px auto 0; text-align: center; }
.sumula-rel .sr-campo { height: 64px; display: flex; align-items: flex-end; justify-content: center; border-bottom: 1.5px solid #0b2a5b; }
.sumula-rel .sr-campo img { max-height: 58px; max-width: 90%; object-fit: contain; filter: brightness(0) saturate(100%) invert(19%) sepia(64%) saturate(2400%) hue-rotate(218deg) brightness(88%) contrast(98%); }
.sumula-rel .sr-nome { display: grid; gap: 2px; padding-top: 6px; }
.sumula-rel .sr-nome b { font-size: .9375rem; color: #0b2a5b; }
.sumula-rel .sr-nome span { font-size: .75rem; color: #33476b; }
.sumula-rel .sr-lgpd { margin: 34px 0 0; padding-top: 8px; border-top: 1px solid #c9d3e6; font-size: .68rem; color: #5b6b88; text-align: center; }
@page relatorio { size: A4 portrait; margin: 0; }
@media print {
  .sumula-rel { page: relatorio; break-before: page; page-break-before: always; width: 210mm !important; min-height: 296mm; margin: 0 !important; padding: 16mm 18mm !important; box-shadow: none; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .sumula-rel .sr-wm { position: absolute; }
}

/* aviso de privacidade: perguntas frequentes */
.priv .body ul { padding-left: 1.2em; }
.priv .body li { margin: 0 0 8px; }
.priv-faq details { border-top: 1px solid var(--line-2); padding: 10px 0; }
.priv-faq details:last-child { border-bottom: 1px solid var(--line-2); }
.priv-faq summary { cursor: pointer; font-weight: 700; }
.priv-faq details p { margin: 8px 0 0; }
.sumula-rel p { max-width: none; }
.sumula-rel .sr-dados div { grid-template-columns: 112px 1fr; }
.sumula-rel .sr-dados dt { white-space: nowrap; font-size: .68rem; }
.sumula-rel .sr-txt { background-image: linear-gradient(to bottom, transparent 25px, #d6deee 25px); background-size: 100% 26px; background-position: 0 4px; padding: 4px 2px 0; }

/* menu lateral da administração envolvendo telas que têm o próprio .wrap (mesa, súmula, arbitragem…) */
.adm-livre .adm-main > .wrap, .adm-livre .adm-main > div > .wrap { width: auto; margin-inline: 0; }
.adm-livre .adm-main > .wrap.section { padding-top: 0; }
.wrap.adm-largo { width: min(1560px, 100% - 32px); }
@media print { .adm-shell { display: block; padding: 0; } .adm-side { display: none !important; } }

/* ---------- painel da organização no celular: trilho lateral fino (ícones) + lista completa ao tocar no menu ---------- */
.adm-rail-btn { display: none; }
@media (max-width: 960px) {
  .wrap:has(> .adm-shell) { width: calc(100% - 16px); }
  .adm-shell, .adm-shell.adm-livre { grid-template-columns: 52px minmax(0, 1fr); gap: 10px; padding-top: var(--s3); }
  .adm-side { position: sticky; top: 8px; max-height: calc(100vh - 16px); max-height: calc(100dvh - 16px); overflow-x: hidden; overflow-y: auto; padding: 6px 4px; z-index: 40; scrollbar-width: none; }
  .adm-side nav, .adm-nav-g { display: grid; gap: 2px; }
  .adm-nav-g + .adm-nav-g { margin: 6px 0 0; padding: 6px 0 0; border-left: 0; border-top: 1px solid var(--line-2); }
  .adm-nav-t { display: none; }
  .adm-nav-i { width: 100%; min-height: 44px; padding: 0; justify-content: center; position: relative; }
  .adm-nav-i svg { width: 20px; height: 20px; }
  .adm-nav-i span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .adm-nav-i .adm-badge { position: absolute; top: 2px; right: 2px; width: auto; height: auto; clip: auto; overflow: visible; font-size: 10px; padding: 0 5px; }
  .adm-rail-btn { display: grid; place-items: center; width: 100%; min-height: 44px; margin-bottom: 6px; border: 0; border-radius: 10px; background: var(--sea-800); color: #fff; cursor: pointer; }
  .adm-rail-btn svg { width: 20px; height: 20px; }
  /* aberto: a lista com os nomes desliza por cima do conteúdo */
  .adm-side.aberto { position: fixed; top: 0; left: 0; bottom: 0; width: min(280px, 82vw); max-height: none; padding: 12px; border-radius: 0 var(--r3) var(--r3) 0; box-shadow: 0 0 0 100vmax rgba(3, 12, 18, .45), 0 20px 60px rgba(0, 0, 0, .35); z-index: 60; }
  .adm-side.aberto .adm-nav-t { display: block; }
  .adm-side.aberto .adm-nav-i { justify-content: flex-start; padding: 8px 12px; gap: 10px; }
  .adm-side.aberto .adm-nav-i span { position: static; width: auto; height: auto; clip: auto; overflow: visible; }
  .adm-side.aberto .adm-rail-btn { justify-content: start; padding: 0 14px; place-items: center start; }
  body.adm-rail-aberto { overflow: hidden; }
  .adm-shell > .adm-main .adm-head { gap: var(--s3); }
}
@media (max-width: 960px) and (prefers-reduced-motion: no-preference) { .adm-side.aberto { animation: admRail .18s ease-out; } }
@keyframes admRail { from { transform: translateX(-24px); opacity: .6; } to { transform: none; opacity: 1; } }

/* ---------- controle da transmissão (OBS) ---------- */
.obs-pick { display: grid; gap: var(--s2); }
.obs-pick > .btn { justify-self: start; }
.obs-hero { margin-bottom: var(--s4); }
.obs-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: var(--s4); align-items: start; }
@media (max-width: 960px) { .obs-grid { grid-template-columns: minmax(0, 1fr); } }
.obs-telas { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: var(--s2); margin-top: var(--s3); }
.obs-tela { display: grid; grid-template-columns: 40px 1fr; grid-template-rows: auto auto; column-gap: 10px; align-items: start; text-align: left; padding: 12px 14px; min-height: 88px; border: 2px solid var(--line-2); border-radius: var(--r3, 14px); background: var(--paper); color: var(--ink); cursor: pointer; font: inherit; }
.obs-tela .ot-ic { grid-row: 1 / 3; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 10px; background: var(--hover); }
.obs-tela .ot-ic svg { width: 20px; height: 20px; }
.obs-tela b { font-size: var(--t-md, 1rem); }
.obs-tela small { color: var(--ink-3); font-size: .75rem; line-height: 1.35; }
.obs-tela:hover { border-color: var(--sun); }
.obs-tela.on { border-color: var(--sun); background: color-mix(in srgb, var(--sun) 12%, var(--paper)); }
.obs-tela.on .ot-ic { background: var(--sun); color: var(--on-sun, #1d0d00); }
.obs-link { display: flex; flex-wrap: wrap; gap: var(--s2); align-items: center; margin: var(--s3) 0; }
.obs-link code { flex: 1 1 100%; padding: 10px 12px; border-radius: 10px; background: var(--hover); font-size: .85rem; overflow-wrap: anywhere; }
.obs-passos { margin: 0 0 var(--s3); padding-left: 1.2em; display: grid; gap: 6px; }

.obs-sigilo { display: flex; gap: 8px; align-items: flex-start; padding: 10px 12px; border-radius: 10px; background: color-mix(in srgb, var(--sun) 12%, transparent); }
.obs-sigilo svg { flex: none; width: 16px; height: 16px; margin-top: 2px; }

/* controle do OBS: escolha de atleta */
.obs-atl { display: grid; grid-template-columns: 52px 1fr; gap: 8px; align-items: start; margin-top: var(--s3); }
.obs-atl > b { padding-top: 8px; }
.obs-atl > div { display: flex; flex-wrap: wrap; gap: 6px; }
.obs-atl-b { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 4px 10px 4px 4px; border: 1px solid var(--line-2); border-radius: 999px; background: var(--paper); color: var(--ink); font: 600 .85rem/1 var(--sans); cursor: pointer; }
.obs-atl-b span { display: grid; place-items: center; min-width: 30px; height: 30px; border-radius: 50%; background: var(--hover); font-weight: 800; }
.obs-atl-b small { color: var(--ink-3); }
.obs-atl-b.on { border-color: var(--sun); background: color-mix(in srgb, var(--sun) 14%, var(--paper)); }
/* tela do operador de 24 s */
.op24 { max-width: 520px; text-align: center; }
.op24-t { font-size: var(--t-2xl, 1.6rem); margin: 10px 0; } .op24-t small { color: var(--ink-3); font-size: .7em; }
.op24-rel { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 12px 0 18px; }
.op24-rel > div { padding: 12px; border-radius: 16px; background: var(--sea-800, #0d2b3a); color: #fff; }
.op24-rel span { display: block; font-size: .8125rem; letter-spacing: .08em; text-transform: uppercase; opacity: .7; }
.op24-rel b { font: 900 2.6rem/1.1 var(--display, sans-serif); font-variant-numeric: tabular-nums; }
.op24-rel .sh b { color: #ffd34d; } .op24-rel .sh b.verm { color: #ff4d5e; }
.op24-bt { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.op24-bt button { min-height: 140px; border: 0; border-radius: 22px; font: 900 4rem/1 var(--display, sans-serif); color: #fff; cursor: pointer; touch-action: manipulation; }
.op24-bt .b24 { background: var(--green, #00843d); } .op24-bt .b14 { background: var(--sun, #ef8021); color: #1d0d00; }
.op24-bt button:active { transform: scale(.97); }
.op24-off { margin: 16px 0 10px; width: 100%; }

.obs-24vis { margin: var(--s2) 0 var(--s3); }
.op24-aviso { padding: 10px 12px; border-radius: 10px; background: color-mix(in srgb, var(--sun) 14%, transparent); }

.obs-dica { display: flex; gap: 8px; align-items: flex-start; margin: 0 0 var(--s2); color: var(--ink-3); }
.obs-dica svg { flex: none; width: 16px; height: 16px; margin-top: 2px; }
.obs-volta { color: var(--sun); }

/* painel compacto dentro do OBS */
body:has(.obs-dock) .topbar, body:has(.obs-dock) .footer, body:has(.obs-dock) .skip { display: none !important; }
body:has(.obs-dock) main { padding: 0 !important; }
.obs-dock { padding: 10px; display: grid; gap: 8px; font-size: 14px; }
.obs-dock .od-top { display: flex; justify-content: space-between; align-items: baseline; padding: 8px 10px; border-radius: 10px; background: var(--sea-800, #0d2b3a); color: #fff; }
.obs-dock .od-top b { font: 900 1.125rem/1 var(--display, sans-serif); } .obs-dock .od-top small { opacity: .75; }
.obs-dock .od-st { margin: 0; color: var(--ink-3); } .obs-dock .od-st b { color: var(--ink); }
.obs-dock .od-bt { display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: 6px; }
.obs-dock .od-bt button { display: flex; align-items: center; gap: 6px; min-height: 44px; padding: 6px 8px; border: 2px solid var(--line-2); border-radius: 10px; background: var(--paper); color: var(--ink); font: 700 .8125rem/1.15 var(--sans); text-align: left; cursor: pointer; }
.obs-dock .od-bt button svg { flex: none; width: 16px; height: 16px; }
.obs-dock .od-bt button.on { border-color: var(--sun); background: color-mix(in srgb, var(--sun) 16%, var(--paper)); }
.obs-dock .od-atl summary { cursor: pointer; font-weight: 700; padding: 6px 0; }
.obs-dock .od-atl > div { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; margin: 4px 0; }
.obs-dock .od-atl > div > b { width: 40px; }
.obs-dock .od-atl button { min-height: 34px; padding: 4px 8px; border: 1px solid var(--line-2); border-radius: 999px; background: var(--paper); color: var(--ink); font: 600 .75rem/1 var(--sans); cursor: pointer; }
.obs-dock .od-atl button.on { border-color: var(--sun); background: color-mix(in srgb, var(--sun) 16%, var(--paper)); }
.obs-mais { margin: var(--s3) 0; padding: 10px 12px; border: 1px solid var(--line-2); border-radius: 12px; }
.obs-mais summary { cursor: pointer; }
.obs-fontes { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 6px; }
.obs-fontes li { display: flex; justify-content: space-between; align-items: center; gap: 8px; }

.obs-atl-b.mvp { border-color: var(--sun); }
.obs-atl-b.mvp small { color: var(--sun); font-weight: 800; }
.obs-atl-b.com span { background: color-mix(in srgb, var(--sun) 20%, var(--hover)); }
.obs-atl-b.com span svg { width: 15px; height: 15px; }
.obs-dock .od-atl button.mvp { border-color: var(--sun); font-weight: 800; }
.obs-dock .od-atl button.mvp::after { content: ' ★'; color: var(--sun); }

/* declarações: participações digitadas pelo técnico e validação */
.tdecl-sis { margin: 4px 0 10px; }
.tdecl-lista { margin: 0 0 8px; padding-left: 18px; font-size: var(--t-sm, .875rem); color: var(--muted, inherit); }
.tdecl-lista li { margin: 2px 0; }
.tdecl-extra { margin: 4px 0 14px; padding: 10px 12px; border: 1px dashed var(--line, #ccd); border-radius: 10px; }
.tdecl-extra summary { cursor: pointer; }
.tdecl-extra .decl-row { margin-top: 8px; }
.decl-aviso { max-width: 210mm; margin: 0 auto 12px; padding: 10px 14px; border-radius: 10px; background: var(--warn-bg, #fff4d6); color: var(--warn-ink, #6b4a00); border: 1px solid var(--warn, #e0a400); }
@media screen { .decl-livre { background: #fff4d6; outline: 2px dashed #e0a400; outline-offset: 2px; } }
.decl-pend { margin-bottom: 18px; border-color: var(--warn, #e0a400); }
.decl-pend-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 8px 0; border-top: 1px solid var(--line, #dde); }
.decl-pend-row .grow { flex: 1 1 260px; }

/* ===== Institucional ===== */
.inst-nav { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 8px; }
.inst-nav a { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border: 1px solid var(--line); border-radius: 999px; color: var(--ink); text-decoration: none; font-weight: 600; font-size: .9375rem; }
.inst-nav a:hover { border-color: var(--sun); }
.inst-nav a .ic, .inst-nav a svg { width: 16px; height: 16px; }
.inst-sec { scroll-margin-top: 84px; }
.inst-texto { max-width: 68ch; }
.inst-texto p { font-size: 1.08rem; line-height: 1.7; color: var(--ink-2); margin: 0 0 1em; }
.inst-arb { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 18px 16px; }
.inst-arb li { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 4px; }
.inst-arb img, .inst-arb .inst-av { width: 112px; height: 112px; border-radius: 50%; object-fit: cover; border: 3px solid var(--sun); margin-bottom: 6px; }
.inst-av { display: inline-grid; place-items: center; background: var(--btn-dark); color: #fff; font-family: var(--brand); font-weight: 700; font-size: 1.6rem; flex: none; }
.inst-eqs { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; }
.inst-eqs a { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px; color: var(--ink); text-decoration: none; min-height: 64px; background: var(--paper); }
.inst-eqs a:hover { border-color: var(--sun); }
.inst-eqs a > span:not(.crest) { display: flex; flex-direction: column; min-width: 0; }
.inst-camp { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.inst-camp h3 { font-family: var(--brand); font-size: 1.6rem; margin: 0 0 8px; color: var(--sun); }
.inst-camp ul { list-style: none; margin: 0; padding: 0; }
.inst-camp li { display: flex; flex-direction: column; gap: 2px; padding: 8px 0; border-top: 1px solid var(--line-2); }
.inst-camp li:first-child { border-top: 0; }
.inst-camp li b { display: inline-flex; align-items: center; gap: 6px; }
.inst-camp li b svg { width: 16px; height: 16px; color: var(--sun); }
.inst-arb-adm, .gal-adm { list-style: none; margin: 0; padding: 0; }
.inst-arb-adm li, .gal-adm li { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; padding: 10px 14px; border-top: 1px solid var(--line-2); }
.inst-arb-adm li:first-child, .gal-adm li:first-child { border-top: 0; }
.inst-arb-adm img, .inst-arb-adm .inst-av { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; font-size: .9375rem; }
.inst-arb-adm .grow, .gal-adm .grow { flex: 1 1 180px; display: flex; flex-direction: column; min-width: 0; }
.gal-adm-capa { width: 64px; height: 48px; border-radius: 8px; overflow: hidden; background: var(--line-2); display: grid; place-items: center; flex: none; }
.gal-adm-capa img { width: 100%; height: 100%; object-fit: cover; }
.gal-adm-fotos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; }
.gal-adm-fotos img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 8px; display: block; margin-bottom: 4px; }

/* home: atalhos institucionais */
.hi-links { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px; }
.hi-links a { display: flex; align-items: flex-start; gap: 12px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 14px; color: var(--ink); text-decoration: none; height: 100%; background: var(--paper); }
.hi-links a:hover { border-color: var(--sun); }
.hi-links a > svg, .hi-links a > .ic { width: 22px; height: 22px; color: var(--sun); flex: none; margin-top: 2px; }
.hi-links a > span { display: flex; flex-direction: column; gap: 2px; }

/* ===== Galeria ===== */
.gal-tipos { flex-wrap: wrap; margin-bottom: 12px; }
.gal-filtros { display: flex; flex-wrap: wrap; align-items: end; gap: 10px 16px; margin: 0 0 10px; }
.gal-grid { list-style: none; margin: 12px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 16px; }
.gal-card { display: flex; flex-direction: column; color: var(--ink); text-decoration: none; border-radius: 14px; overflow: hidden; border: 1px solid var(--line); height: 100%; background: var(--paper); }
.gal-card:hover .gal-capa img { transform: scale(1.03); }
.gal-capa { position: relative; aspect-ratio: 4/3; background: var(--line-2); display: grid; place-items: center; overflow: hidden; }
.gal-capa img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.gal-qtd { position: absolute; right: 8px; bottom: 8px; display: inline-flex; align-items: center; gap: 4px; padding: 3px 8px; border-radius: 999px; background: rgba(15,42,51,.82); color: #fff; font-size: .8125rem; font-weight: 700; }
.gal-qtd svg { width: 14px; height: 14px; }
.gal-info { display: flex; flex-direction: column; gap: 3px; padding: 10px 12px 12px; }
.gal-fotos { list-style: none; margin: 18px 0 0; padding: 0; columns: 3 260px; column-gap: 12px; }
.gal-fotos li { break-inside: avoid; margin: 0 0 12px; }
.gal-fotos button { display: block; width: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; border-radius: 10px; overflow: hidden; }
.gal-fotos img { width: 100%; display: block; }
.gal-luz { width: min(96vw, 1200px); max-height: 94vh; padding: 0; border: 0; background: #071419; color: #fff; border-radius: 12px; }
.gal-luz::backdrop { background: rgba(4,12,15,.88); }
.gal-luz figure { margin: 0; display: flex; flex-direction: column; align-items: center; }
.gal-luz img { max-width: 100%; max-height: 84vh; object-fit: contain; display: block; }
.gal-luz figcaption { padding: 8px 14px 12px; font-size: .9375rem; opacity: .85; }
.gal-x { position: absolute; top: 8px; right: 8px; z-index: 2; background: rgba(0,0,0,.5); color: #fff; border: 0; border-radius: 999px; width: 40px; height: 40px; display: grid; place-items: center; cursor: pointer; }
.gal-nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 48px; height: 64px; border: 0; background: rgba(0,0,0,.45); color: #fff; font-size: 2rem; cursor: pointer; }
.gal-nav.ant { left: 0; border-radius: 0 10px 10px 0; } .gal-nav.prox { right: 0; border-radius: 10px 0 0 10px; }
@media (prefers-reduced-motion: reduce) { .gal-capa img { transition: none; } }
.gal-tipos { border-radius: 18px; }
/* barra compacta: links não cabem numa linha (detectado no script) */
.topbar.compact .btn.menu-btn { display: inline-flex; margin-left: auto; }
.topbar.compact .nav, .topbar.compact .nav-right { display: none; }
.topbar.compact.open .wrap { flex-wrap: wrap; padding: var(--s3) 0 var(--s4); }
.topbar.compact.open .nav, .topbar.compact.open .nav-right { display: flex; flex-direction: column; width: 100%; align-items: stretch; }
.topbar.compact.open .nav a { padding: var(--s3) var(--s4); }
.topbar.compact.open .nav a.active::after { left: 0; right: auto; top: 10px; bottom: 10px; width: 3px; height: auto; }
/* liberação aprovada */
.lib-aviso { display: flex; gap: 12px; align-items: flex-start; margin: 0 0 14px; padding: 12px 16px; border-radius: 12px; background: var(--ok-bg); color: var(--ok-ink); border: 1px solid color-mix(in srgb, var(--ok-ink) 30%, transparent); }
.lib-aviso > svg { width: 22px; height: 22px; flex: none; margin-top: 2px; }
.lib-aviso p { margin: 2px 0; }
.lib-ok { color: var(--ok-ink); display: flex; align-items: center; gap: 4px; margin-top: 2px; }
.lib-pend { color: var(--err-ink); display: flex; align-items: center; gap: 4px; margin-top: 2px; }
.lib-ok svg, .lib-pend svg { width: 14px; height: 14px; }
/* institucional: gestão e estrutura */
.inst-ges { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: 16px; }
.inst-ges li { display: flex; gap: 16px; align-items: flex-start; padding: 18px; }
.inst-ges img, .inst-ges .inst-av { width: 96px; height: 96px; border-radius: 16px; object-fit: cover; flex: none; border: 0; margin: 0; }
.inst-ges .inst-av { border-radius: 16px; }
.inst-ges b { display: block; font-size: 1.125rem; }
.inst-cargo { display: inline-block; margin: 2px 0 6px; color: var(--burnt); font-weight: 700; font-size: .9375rem; }
.inst-ges p { margin: 0; color: var(--ink-2); line-height: 1.55; }
.inst-organo { display: block; margin: 0 0 16px; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; background: #fff; max-width: 1000px; }
.inst-organo img { display: block; width: 100%; height: auto; }
.inst-estrutura p { white-space: pre-line; }
/* Institucional: seção ainda sem conteúdo */
.inst-vazio{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;padding:14px 16px;border:1px dashed var(--line, #c9d3cf);border-radius:12px;margin-top:6px}
.inst-vazio p{margin:0}
/* Rodapé: assinatura de parceiros e crédito de desenvolvimento */
.footer .parceiros { display: block; margin-bottom: var(--s6); }
.parceiros-t { font-size: var(--t-sm); font-weight: 700; color: #fff; margin: 0 0 var(--s3); letter-spacing: .01em; }
.parceiros-card { background: #fff; border-radius: 14px; padding: clamp(12px, 2.5vw, 24px) clamp(12px, 3vw, 32px); }
.parceiros-card img { display: block; width: 100%; height: auto; max-width: 1100px; margin: 0 auto; }
.parceiros-mais { max-width: none; width: 100%; display: flex; justify-content: center; margin: clamp(8px, 1.6vw, 16px) 0 0; padding-top: clamp(8px, 1.6vw, 14px); border-top: 1px solid #e3e8e6; }
.parceiros-card img.parceiros-siara { display: block; height: clamp(40px, 5vw, 56px); width: auto; max-width: 100%; margin: 0; }
.footer .dev-credito { display: flex; flex-direction: column; gap: 2px; margin: 0; padding-left: var(--s5); border-left: 1px solid rgba(255,255,255,.22); font-size: var(--t-sm); max-width: none; }
.footer .dev-credito { gap: 8px; } .footer .dev-credito img { display: block; height: 44px; width: auto; align-self: flex-start; }
@media (max-width: 560px) { .footer .dev-credito { padding-left: 0; border-left: 0; } }
/* selo "Desenvolvido por Siará Lab" (estatísticas, tempo real, súmula) */
.siara-selo { max-width: none; display: flex; align-items: center; justify-content: flex-end; gap: 8px; margin: var(--s5) 0 0; font-size: var(--t-xs); color: var(--ink-3); }
.siara-selo img { display: block; height: 30px; width: auto; }
.siara-selo .ss-escuro { display: none; }
:root[data-theme="dark"] .siara-selo .ss-claro { display: none; } :root[data-theme="dark"] .siara-selo .ss-escuro { display: block; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .siara-selo .ss-claro { display: none; } :root:not([data-theme="light"]) .siara-selo .ss-escuro { display: block; } }
@media print { .siara-selo .ss-claro { display: block !important; } .siara-selo .ss-escuro { display: none !important; } }

/* redes sociais no topo (Instagram e YouTube) */
.topbar .logo { order: 0; } .topbar .nav { order: 1; } .topbar .tb-social { order: 2; } .topbar .nav-right { order: 3; } .topbar .btn.menu-btn { order: 3; }
.redes { display: flex; align-items: center; gap: 4px; }
.redes a { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 999px; color: rgba(255,255,255,.85); transition: background .15s, color .15s; }
.redes a:hover { background: rgba(255,255,255,.12); color: #fff; }
.redes a:focus-visible { outline: 2px solid var(--sun); outline-offset: 2px; }
.redes svg { width: 22px; height: 22px; }
@media (max-width: 880px) { .topbar .tb-social { margin-left: auto; } .topbar .btn.menu-btn { margin-left: 0; } .topbar.open .nav { order: 4; } .topbar.open .nav-right { order: 5; } }
.topbar.compact .tb-social { margin-left: auto; } .topbar.compact .btn.menu-btn { margin-left: 0; } .topbar.compact.open .nav { order: 4; } .topbar.compact.open .nav-right { order: 5; }
/* próximo jogo (início): contagem, momento das equipes, último confronto, atalhos e jogos seguintes */
.prox-card { display: flex; flex-direction: column; }
.pj-cd { display: flex; align-items: center; justify-content: center; gap: 8px; margin: var(--s3) var(--s4) var(--s2); font-weight: 800; color: var(--burnt); font-size: var(--t-sm); }
.pj-cd .i { width: 18px; height: 18px; }
.pj-momento { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: var(--s3); margin: var(--s3) var(--s4) 0; padding: var(--s3); border-radius: 12px; background: var(--line-2); }
.pj-x { font-size: var(--t-xs); font-weight: 800; letter-spacing: .06em; color: var(--ink-3); text-transform: uppercase; }
.pj-eq { display: flex; flex-direction: column; align-items: center; gap: 2px; text-align: center; }
.pj-eq b { font-size: var(--t-md); } .pj-pos { color: var(--burnt); } .pj-grupo { color: var(--ink-3); font-weight: 700; font-size: var(--t-xs); }
.pj-forma { display: flex; gap: 4px; margin-top: 2px; }
.pj-forma i { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 6px; font-style: normal; font-size: 12px; font-weight: 900; color: #fff; }
.pj-forma i.v { background: #1e8e4e; } .pj-forma i.d { background: #c23b3b; }
.pj-ultimo { display: flex; justify-content: space-between; align-items: center; gap: var(--s3); margin: var(--s2) var(--s4) 0; padding: var(--s2) var(--s3); border-radius: 10px; border: 1px solid var(--line-2); color: inherit; }
.pj-ultimo:hover { border-color: var(--ink-3); }
.pj-acoes { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--s2); margin: var(--s3) var(--s4) 0; }
.pj-depois { margin-top: var(--s4); padding: var(--s3) var(--s4) var(--s4); border-top: 1px solid var(--line-2); }
.pj-depois h3 { margin: 0 0 var(--s2); font-size: var(--t-xs); letter-spacing: .06em; text-transform: uppercase; color: var(--ink-3); }
.pj-depois ul { list-style: none; margin: 0; padding: 0; }
.pj-depois li a { display: grid; grid-template-columns: 5.5em auto 1fr; align-items: center; gap: var(--s3); padding: 8px 6px; border-radius: 8px; color: inherit; }
.pj-depois li a:hover { background: var(--line-2); }
.pj-hora { font-weight: 800; font-size: var(--t-sm); text-transform: capitalize; }
.pj-times { display: inline-flex; align-items: center; gap: 6px; font-weight: 800; }
.pj-times .crest, .pj-times .crest.sm, .pj-times .crest.logo.sm { --s: 24px; width: 24px; min-width: 24px; height: 24px; font-size: 9px; }
.pj-cat { text-align: right; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pj-mais { display: inline-flex; align-items: center; gap: 4px; margin-top: var(--s2); font-weight: 700; font-size: var(--t-sm); float: right; }
.pj-mais .i { width: 16px; height: 16px; }
.hero .prox-card .pj-acoes .btn.ghost, .prox-card .pj-acoes .btn.ghost { background: var(--paper); color: var(--ink); border: 1px solid var(--line); } .hero .prox-card .pj-acoes .btn.ghost:hover, .prox-card .pj-acoes .btn.ghost:hover { background: var(--hover); color: var(--ink); }
@media (max-width: 520px) { .pj-depois li a { grid-template-columns: 5em 1fr; } .pj-cat { display: none; } .pj-momento { gap: var(--s2); padding: var(--s3) var(--s2); } }
/* saúde da ligação site–OBS no painel da transmissão */
.od-saude { display: flex; align-items: center; gap: 8px; margin: 0 0 8px; font-size: var(--t-xs); color: var(--ink-3); }
.od-saude i { flex: none; width: 10px; height: 10px; border-radius: 50%; background: #1e8e4e; box-shadow: 0 0 0 3px rgba(30, 142, 78, .2); }
.od-saude.warn { color: var(--err-ink); } .od-saude.warn i { background: #d97706; box-shadow: 0 0 0 3px rgba(217, 119, 6, .25); }
@media print { .escala-print .ep-x { color: #ef8021; font-weight: 800; } }

/* ===== impressão / PDF: ajustes gerais (revisão dos documentos da liga) ===== */
@page { size: A4 portrait; margin: 12mm; }            /* padrão A4 (sem isto, alguns navegadores usam Carta) */
@page declaracao { size: A4 portrait; margin: 0; }
@media print {
  html { background: #fff !important; }               /* o fundo azul-noite do site saía nas sobras da última folha */
  body::before { display: none !important; }
  /* relatórios do painel: some o "cromo" de navegação (migalhas, atalhos, botões) */
  .crumbs, .champ-quick, .adm-side, main .btn, main button, .tabs { display: none !important; }
  /* súmula: a folha ficava um fio maior que o A4 e empurrava o relatório para a 3ª página (a 2ª saía em branco) */
  .sheet { height: 296.5mm !important; overflow: hidden; }
  /* declaração: uma folha A4 só, com cabeçalho, rodapé e código de autenticidade dentro dela */
  body:has(.decl-sheet) main, body:has(.decl-sheet) .wrap { padding: 0 !important; margin: 0 !important; max-width: none !important; width: auto !important; }
  .decl-wrap { width: 210mm !important; margin: 0 !important; }
  .decl-sheet { page: declaracao; height: 296.5mm !important; min-height: 0 !important; overflow: hidden; }
  .decl-head, .decl-foot, .decl-wm { position: absolute !important; }
}
@media print {
  /* o resto da página (espaços do site) ia para uma folha nova com outro formato: agora tudo usa o formato do documento */
  body:has(.decl-sheet), body:has(.decl-sheet) main { page: declaracao; }
  body:has(.sheet), body:has(.sheet) main { page: sumula; }
  body:has(.decl-sheet) main, body:has(.sheet) main { min-height: 0 !important; padding-bottom: 0 !important; }
}
@media print { .adm-shell { padding: 0 !important; margin: 0 !important; display: block !important; } .adm-main { padding: 0 !important; margin: 0 !important; } }
@media print { .decl-wm { opacity: .08 !important; } } /* marca d'água com letras escuras: mais clara para não competir com o texto */
/* mesa: corrigir lance */
.ev-fix { gap: 4px; } .ev-fix span { font-size: var(--t-xs); }
.pill.ev-corr { background: var(--tint-green); color: var(--ok-ink); font-size: 11px; }
.mesa-log .ev-fix span { display: none; } /* coluna estreita: só o lápis (nome no toque longo / leitor de tela), a descrição do lance não é cortada */

/* ===== súmula online no tablet: "modo mesa" =====
   Até 1280 px (tablets em pé e deitados): some a barra do site e o menu do painel, some o cartão grande do jogo
   quando ele está ao vivo (o placar já está na barra de controle), a barra de controle fica fixa no topo e,
   deitado, o lance a lance vira uma coluna própria ao lado, com rolagem só dela. Tudo com alvos de toque de 44 px. */
@media (max-width: 1280px) {
  html[data-tela="mesa"] { --topbar-h: 0px; }
  html[data-tela="mesa"] #topbar, html[data-tela="mesa"] .footer, html[data-tela="mesa"] .adm-side, html[data-tela="mesa"] body::before { display: none !important; }
  html[data-tela="mesa"] main { padding-top: 0; }
  html[data-tela="mesa"] .adm-shell { display: block; padding: 6px 0 16px; }
  html[data-tela="mesa"] .wrap, html[data-tela="mesa"] .mesa-wrap { width: auto; max-width: none; margin-inline: 12px; }
  html[data-tela="mesa"] .mesa-wrap > a.muted { margin-top: 4px !important; display: inline-flex !important; align-items: center; min-height: 44px; }
  html[data-tela="mesa"] .mesa-wrap:has(.ctrl-bar.is-live) .mesa-hero { display: none; }
  html[data-tela="mesa"] .mesa-grid { margin-top: 6px; gap: 12px; }
  html[data-tela="mesa"] .mesa-grid .card { padding: 12px 14px; }
  html[data-tela="mesa"] .ctrl-bar.is-live { position: sticky !important; top: 0; margin: -12px -14px 10px; padding: 8px 14px; box-shadow: 0 6px 14px -10px rgba(0, 0, 0, .35); }
  /* toque confortável */
  html[data-tela="mesa"] .ctrl-bar .btn, html[data-tela="mesa"] .ctrl .btn { min-height: 48px; }
  html[data-tela="mesa"] .ctrl-bar.is-live .nudge .btn, html[data-tela="mesa"] .clock-more summary { height: 44px; min-height: 44px; min-width: 56px; }
  html[data-tela="mesa"] .ll-seg button { min-width: 44px; min-height: 44px; }
  html[data-tela="mesa"] .type-btn { min-height: 64px; }
  html[data-tela="mesa"] .mbtn, html[data-tela="mesa"] .tbtn { min-height: 52px; }
  html[data-tela="mesa"] .timeline .ev .btn { min-width: 44px; min-height: 44px; }
}
/* deitado (ou tablet grande em pé): controles à esquerda, lance a lance numa coluna fixa à direita */
@media (min-width: 900px) and (max-width: 1280px) {
  html[data-tela="mesa"] .mesa-grid { grid-template-columns: minmax(0, 1fr) 300px; align-items: start; }
  html[data-tela="mesa"] .mesa-log { position: sticky; top: 6px; max-height: calc(100vh - 12px); overflow-y: auto; overscroll-behavior: contain; padding-right: 2px; }
  html[data-tela="mesa"] .mesa-log h3 { position: sticky; top: 0; z-index: 2; background: var(--foam); padding: 4px 0 6px; margin: 0; }
}
@media (min-width: 900px) and (max-width: 1280px) {
  /* deitado: compacta para os botões de lance caberem na tela sem rolar */
  html[data-tela="mesa"] .mesa-grid { grid-template-columns: minmax(0, 1fr) 280px; }
  html[data-tela="mesa"] .ctrl-bar.is-live { gap: 6px 10px; padding: 6px 12px; }
  html[data-tela="mesa"] .ctrl-bar.is-live .nudge { flex-basis: auto; }
  html[data-tela="mesa"] .ctrl-bar .btn, html[data-tela="mesa"] .ctrl .btn { min-height: 44px; }
  html[data-tela="mesa"] .court-side header { min-height: 26px; margin-bottom: 2px; }
  html[data-tela="mesa"] .jz-label { margin: 2px 0; font-size: 11px; }
  html[data-tela="mesa"] .jersey { min-height: 52px; }
  html[data-tela="mesa"] .jerseys.bench .jersey { min-height: 44px; } html[data-tela="mesa"] .jerseys.bench .jersey b { font-size: 1.125rem; }
  html[data-tela="mesa"] .team-ops { grid-template-columns: repeat(4, 1fr); gap: 4px; }
  html[data-tela="mesa"] .tbtn { min-height: 44px; font-size: 12px; padding: 2px 4px; gap: 4px; flex-direction: column; line-height: 1.1; }
  html[data-tela="mesa"] .type-btn { min-height: 58px; }
  /* lance a lance estreito: os botões do lance descem para uma linha própria e o texto não é cortado */
  html[data-tela="mesa"] .mesa-log .ev { grid-template-columns: 48px 32px 1fr; gap: 6px 8px; padding: 8px 10px; }
  html[data-tela="mesa"] .mesa-log .ev-end { grid-column: 1 / -1; justify-content: flex-end; gap: 6px; }
  html[data-tela="mesa"] .mesa-log .ev .tt b, html[data-tela="mesa"] .mesa-log .ev .tt span { white-space: normal; overflow: visible; text-overflow: clip; }
}
/* modo mesa: camisas mais largas — as 5 de quadra ocupam toda a largura do time e o banco segue a mesma grade */
@media (max-width: 1280px) {
  html[data-tela="mesa"] .court { gap: 8px; }
  html[data-tela="mesa"] .court-side { padding: 6px 6px 8px; }
  html[data-tela="mesa"] .jerseys, html[data-tela="mesa"] .jerseys.on-court, html[data-tela="mesa"] .jerseys.bench { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 5px; }
  html[data-tela="mesa"] .jersey { border-radius: 10px; padding: 5px 4px 6px; }
  html[data-tela="mesa"] .jersey span { font-size: .7rem; padding: 0 3px; }
}
@media (min-width: 900px) and (max-width: 1280px) {
  html[data-tela="mesa"] .mesa-grid { grid-template-columns: minmax(0, 1fr) 248px; gap: 10px; }
  html[data-tela="mesa"] .wrap, html[data-tela="mesa"] .mesa-wrap { margin-inline: 8px; }
  html[data-tela="mesa"] .mesa-grid .card { padding: 10px; }
  html[data-tela="mesa"] .ctrl-bar.is-live { margin: -10px -10px 8px; padding: 6px 10px; }
  html[data-tela="mesa"] .mesa-log .ev { grid-template-columns: 44px 28px 1fr; padding: 7px 8px; }
}
/* modo mesa: times empilhados (cada um com a largura toda) — camisas largas e nome inteiro; botões do time numa linha só */
@media (max-width: 1280px) {
  html[data-tela="mesa"] .court { grid-template-columns: 1fr; gap: 6px; }
  html[data-tela="mesa"] .court-side { display: grid; grid-template-columns: minmax(0, 1fr); padding: 6px 8px 8px; }
  html[data-tela="mesa"] .team-ops { grid-template-columns: repeat(4, 1fr); gap: 6px; }
  html[data-tela="mesa"] .tbtn { flex-direction: row; font-size: 13px; min-height: 44px; }
  html[data-tela="mesa"] .jersey { min-height: 58px; }
  html[data-tela="mesa"] .jersey b { font-size: 1.6rem; }
  html[data-tela="mesa"] .jersey span { font-size: .75rem; }
  html[data-tela="mesa"] .jerseys.bench .jersey { min-height: 46px; } html[data-tela="mesa"] .jerseys.bench .jersey b { font-size: 1.125rem; }
}
@media (min-width: 900px) and (max-width: 1280px) {
  /* deitado: um pouco mais baixo para os botões de lance continuarem na tela */
  html[data-tela="mesa"] .jersey { min-height: 50px; padding: 3px 4px 4px; }
  html[data-tela="mesa"] .jersey b { font-size: 1.375rem; }
  html[data-tela="mesa"] .jerseys.bench .jersey { min-height: 40px; }
  html[data-tela="mesa"] .jz-label { display: none; }
  html[data-tela="mesa"] .jerseys.bench { margin-top: 4px; }
  html[data-tela="mesa"] .tbtn { min-height: 40px; }
  html[data-tela="mesa"] .court-side header { min-height: 24px; }
}
@media (min-width: 900px) and (max-width: 1280px) {
  /* deitado: cabeçalho do time (nome, camisa, faltas) na mesma linha dos botões do time; camisas embaixo */
  html[data-tela="mesa"] .court-side { grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "head ops" "quadra quadra" "banco banco"; column-gap: 10px; row-gap: 4px; align-items: center; }
  html[data-tela="mesa"] .court-side > header { grid-area: head; margin: 0; gap: 6px; }
  html[data-tela="mesa"] .court-side > header .chip { margin-left: 6px; }
  html[data-tela="mesa"] .court-side > .team-ops { grid-area: ops; margin: 0; }
  html[data-tela="mesa"] .court-side > .jerseys.on-court { grid-area: quadra; }
  html[data-tela="mesa"] .court-side > .jerseys.bench { grid-area: banco; margin: 0; }
  html[data-tela="mesa"] .court-side > .jerseys:not(.on-court):not(.bench) { grid-column: 1 / -1; }
  html[data-tela="mesa"] .tbtn { min-height: 40px; font-size: 12px; padding: 2px 6px; }
}
@media (min-width: 900px) and (max-width: 1280px) {
  html[data-tela="mesa"] .mesa-wrap > a.muted { min-height: 30px; margin: 0 !important; font-size: 13px; }
  html[data-tela="mesa"] .adm-shell { padding-top: 2px; }
  html[data-tela="mesa"] .shot-bar { padding: 6px 8px; margin-top: 0; }
  html[data-tela="mesa"] .shot-bar .sb-top { margin-bottom: 4px; min-height: 0; }
  html[data-tela="mesa"] .ll-seg button { min-height: 38px; min-width: 40px; }
  html[data-tela="mesa"] .type-btn { min-height: 54px; }
  html[data-tela="mesa"] .mbtn { min-height: 44px; }
  html[data-tela="mesa"] .quick-grid, html[data-tela="mesa"] .quick-more { gap: 6px; }
}

/* ---------- "ver como": faixa fixa no topo enquanto o administrador usa o login de outra pessoa ---------- */
.ver-como-bar { display: flex; align-items: center; justify-content: center; gap: 12px; flex-wrap: wrap; padding: 8px 16px; background: #FFD34D; color: #1a1400; font-size: .9375rem; }
.ver-como-bar span { display: inline-flex; align-items: center; gap: 6px; }
.ver-como-bar .icon, .ver-como-bar svg { width: 18px; height: 18px; }
.ver-como-bar .btn { background: #1a1400; color: #FFD34D; border-color: #1a1400; }
.vc-lista { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 2px; max-height: 420px; overflow: auto; }
.vc-lista li { display: flex; align-items: center; gap: 10px; padding: 8px 4px; border-bottom: 1px solid var(--line); }
.vc-lista li .grow { display: flex; flex-direction: column; min-width: 0; }
.vc-lista li[hidden] { display: none; }
.av-aviso { display: flex; gap: 8px; align-items: flex-start; margin: 0 0 8px; padding: 10px 12px; border-radius: 8px; background: color-mix(in srgb, #FFD34D 22%, transparent); border: 1px solid color-mix(in srgb, #FFD34D 60%, transparent); }
.fin-cat { border: 1px solid var(--line); border-radius: 8px; padding: 10px 14px 4px; margin: 0 0 12px; }
.fin-cat legend { font-weight: 700; padding: 0 6px; }
.warn-ink { color: var(--warn-ink, #8a5a00); font-weight: 600; }
.hist-adm { display: flex; gap: 6px; margin-top: 10px; }
.hist-obs { margin: 8px 0 0; }
div.hist-eq { cursor: default; }
/* banco único de atletas (administração) */
.ba-filtros { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr)); gap: var(--s3); align-items: end; margin-bottom: 12px; }
.ba-nome { display: flex; gap: 10px; align-items: center; }
.ba-nome > span { display: flex; flex-direction: column; }
.ba-foto { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; }
.ba-dup { display: inline-flex; gap: 4px; align-items: center; color: var(--warn-ink, #8a5a00); }
.ba-tab td small { display: block; }
.ba-pag { display: flex; gap: 10px; align-items: center; justify-content: center; margin-top: 12px; }
.ba-outras { margin-top: 6px; padding-top: 6px; border-top: 1px dashed var(--line); }
.ba-conf { color: var(--warn-ink, #8a5a00); }

/* ---------- boletim montado no site ---------- */
.bol-lista { list-style: none; margin: 0; padding: 0; }
.bol-lista li { display: flex; align-items: center; gap: 8px; border-bottom: 1px solid var(--line); }
.bol-lista li a { flex: 1; display: flex; flex-direction: column; padding: 12px 16px; color: inherit; text-decoration: none; }
.bol-lista li a:hover { background: var(--hover); }
.bol-lista li .btn { margin-right: 12px; }
.bol-cfg { margin-bottom: 16px; }
.bol-cfg-g { display: grid; grid-template-columns: 90px repeat(2, minmax(140px, 1fr)) minmax(180px, 2fr); gap: var(--s3); }
@media (max-width: 720px) { .bol-cfg-g { grid-template-columns: 1fr 1fr; } }
.bol-grid { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 16px; align-items: start; }
@media (max-width: 1500px) { .bol-grid { grid-template-columns: 1fr; } .bol-sem { position: static; max-height: none; order: -1; } }
.bol-add-dia { display: flex; gap: 10px; align-items: end; flex-wrap: wrap; margin-bottom: 12px; }
.bol-add-dia .field { margin: 0; }
.bol-dia { margin-bottom: 14px; }
.bol-dia-cab { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.bol-dia-cab h3 { margin: 0; }
.bol-nota { margin: 8px 0; }
.bol-tab td, .bol-tab th { white-space: nowrap; }
.bol-tab td.l, .bol-tab th.l { white-space: normal; }
.bol-tab td small { display: block; }
.bol-tab td, .bol-tab th { padding-left: 6px; padding-right: 6px; }
.bol-tab input[type=time] { width: 6.6em; } .bol-tab input[type=date] { width: 9.6em; } .bol-tab select { min-width: 0; width: 11em; }
.bol-tab .bol-num { display: block; font-size: .75rem; margin-top: 2px; }
.bol-sigla { display: inline-block; min-width: 3em; padding: 2px 6px; border-radius: 6px; background: var(--line-2, #e6ecef); font-weight: 700; font-size: .8125rem; text-align: center; }
.bol-num { font-variant-numeric: tabular-nums; color: var(--muted); }
.bol-placar { font-weight: 800; text-align: center; }
.bol-fixo { opacity: .75; }
.bol-sem { position: sticky; top: 76px; max-height: calc(100vh - 96px); overflow: auto; }
.bol-sem h4 { margin: 12px 0 4px; font-size: .9375rem; }
.bol-sem ul { list-style: none; margin: 0; padding: 0; }
.bol-sem li { display: flex; flex-direction: column; gap: 4px; padding: 8px 0; border-bottom: 1px solid var(--line); }
.bol-sem li small { display: block; }
.bol-escolha { border: 0; padding: 0; margin: 10px 0 0; max-height: 46vh; overflow: auto; }
.bol-escolha h4 { margin: 10px 0 4px; }
.bol-print { display: none; }
@page boletim { size: A4 portrait; margin: 12mm; }
@media print {
  .adm-main:has(.bol-print) > :not(.bol-wrap) { display: none !important; }
  .bol-print { display: block; page: boletim; color: #000; font: 400 9pt/1.3 Archivo, Arial, sans-serif; }
  .bp-cab { display: flex; align-items: center; gap: 14px; padding-bottom: 8px; margin-bottom: 10px; border-bottom: 2.5px solid #ef8021; }
  .bp-cab img { height: 54px; width: auto; } .bp-cab .bp-camp { margin-left: auto; height: 48px; }
  .bp-cab h1 { margin: 0; font: 900 18pt/1 Archivo, Arial, sans-serif; letter-spacing: .01em; color: #0a1f4a; }
  .bp-cab p { margin: 2px 0 0; font-size: 9.5pt; color: #222; }
  .bp-local { margin: 0 0 10px; }
  .bp-local h2 { margin: 10px 0 4px; padding: 4px 8px; background: #0a1f4a; color: #fff; font: 800 9.5pt/1.25 Archivo, Arial, sans-serif; letter-spacing: .01em; -webkit-print-color-adjust: exact; print-color-adjust: exact; break-after: avoid; }
  .bp-dia { break-inside: avoid; margin: 0 0 6px; }
  .bp-dia h3 { margin: 6px 0 3px; font: 800 9pt/1.2 Archivo, Arial, sans-serif; color: #004d9d; break-after: avoid; }
  .bol-print table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 8.8pt; }
  .bol-print th { padding: 3px 5px; background: #e9eef0; border: .6pt solid #8a9a9f; font: 700 7.5pt/1.2 Archivo, Arial, sans-serif; text-align: center; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .bol-print td { padding: 3px 5px; border: .6pt solid #b5c1c4; text-align: center; }
  .bol-print th.l, .bol-print td.l { text-align: left; }
  .bol-print th:nth-child(1), .bol-print th:nth-child(2) { width: 9%; } .bol-print th:nth-child(4) { width: 12%; } .bol-print th:nth-child(6) { width: 12%; }
  .bol-print tbody tr:nth-child(even) td { background: #f6f8f9; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .bol-print td small { font-size: 7pt; color: #444; }
  .bp-avisos { margin-top: 12px; break-inside: avoid; } .bp-avisos h2 { margin: 0 0 4px; font: 800 9.5pt/1.2 Archivo, Arial, sans-serif; color: #0a1f4a; } .bp-avisos p { margin: 0 0 4px; }
  .bp-rod { margin-top: 12px; padding-top: 4px; border-top: .6pt solid #b5c1c4; font-size: 7pt; color: #555; }
}
/* boletim × disponibilidades */
.bol-barra { display: flex; justify-content: space-between; align-items: end; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.bol-barra .bol-add-dia { margin-bottom: 0; }
.bol-sug { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; max-width: 340px; text-align: right; }
.bol-disp { display: flex; align-items: center; gap: 6px; margin: 6px 0 0; font-size: .85rem; color: var(--muted); }
.bol-disp.nao { color: var(--warn-ink, #8a5a00); }
.bol-disp svg, .bol-alerta svg { width: 16px; height: 16px; flex: none; }
.bol-alerta td { padding-top: 0 !important; text-align: left; font-size: .8125rem; color: var(--warn-ink, #8a5a00); white-space: normal !important; }
.bol-alerta td { display: table-cell; } .bol-alerta td > * { vertical-align: middle; } .bol-alerta span { margin-left: 4px; }
.bol-sug-opts { display: flex; gap: 12px; align-items: end; flex-wrap: wrap; margin: 8px 0 12px; }
.vc-h { margin: 16px 0 4px; font-size: 1rem; }
/* cobranças pelo Asaas */
.cb-sec { margin-top: 28px; }
.cb-aviso { display: flex; gap: 8px; align-items: flex-start; padding: 10px 12px; border-radius: 8px; background: color-mix(in srgb, #FFD34D 22%, transparent); border: 1px solid color-mix(in srgb, #FFD34D 60%, transparent); }
.cb-amb { display: inline-block; margin: 0 0 12px; padding: 4px 10px; border-radius: 999px; font-size: .8125rem; font-weight: 600; background: var(--line-2, #e6ecef); }
.cb-amb.producao { background: color-mix(in srgb, #008538 18%, transparent); color: var(--ok-ink, #0b5d2a); }
.cb-tab td small, .cb-tab th small { display: block; }
.cb-escolha { border: 0; padding: 0; margin: 10px 0 0; max-height: 46vh; overflow: auto; }
.cb-escolha small { display: block; } .cb-falta { color: var(--warn-ink, #8a5a00); }
.cb-dados, .cb-lista { list-style: none; margin: 0; padding: 0; }
.cb-dados li, .cb-lista li { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; padding: 10px 0; border-bottom: 1px solid var(--line); }
.cb-dados li .grow, .cb-lista li .grow { display: flex; flex-direction: column; min-width: 200px; flex: 1; }
.cb-valor { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.cb-qr { display: block; margin: 0 auto 12px; border-radius: 8px; background: #fff; padding: 8px; }
/* movimentação de atletas (página inicial, equipes e organização) */
.mov-card { display: grid; gap: 12px; }
.mov-cab { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.mov-cab h2 { margin: 0 0 4px; }
.mov-cab > div { min-width: 0; flex: 1; }
.mov-filtros { display: flex; flex-wrap: wrap; gap: 10px; align-items: end; }
.mov-filtros select, .mov-filtros input { min-width: 150px; }
.mov-tab td, .mov-tab th { vertical-align: top; }
.mov-tab small { display: block; }
.mov-hora, .mov-doc { white-space: nowrap; font-variant-numeric: tabular-nums; }
.mov-transf { color: var(--warn-ink, #8a5a00); font-weight: 600; }
.mov-por.antigo { color: var(--muted); font-style: italic; }
.mov-por.organizacao { font-weight: 600; }
.mov-pag { display: flex; gap: 10px; align-items: center; justify-content: center; }
/* topo no computador: espaço interno um pouco menor nos links para caberem todos numa linha (inclusive Movimentação) */
@media (min-width: 881px) { .topbar:not(.compact) .nav a { padding-left: 9px; padding-right: 9px; font-size: 15px; } }
/* institucional · equipes: coluna fixa para o escudo (logos largos não empurram o nome), nome em até 2 linhas, cartões da mesma altura */
.inst-eqs { grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); grid-auto-rows: 1fr; gap: 12px; }
.inst-eqs li { display: flex; min-width: 0; }
.inst-eqs a { flex: 1; min-width: 0; height: 100%; display: grid; grid-template-columns: 72px minmax(0, 1fr); align-items: center; gap: 12px; padding: 12px 14px; }
.inst-eqs a > .crest { justify-self: center; }
.inst-eqs a > .crest:not(.logo) { --s: 52px; }
.inst-eqs a > .crest.logo { --s: 56px; width: 72px; min-width: 72px; height: 56px; display: grid; place-items: center; }
.inst-eqs a > .crest.logo img { width: auto; height: auto; max-width: 72px; max-height: 56px; object-fit: contain; }
.inst-eqs a > span:not(.crest) { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.inst-eqs a > span:not(.crest) b { font-size: .9375rem; line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: break-word; }
.inst-eqs a > span:not(.crest) .small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* página não encontrada (404) */
.p404 { display: grid; justify-items: center; text-align: center; gap: 12px; padding-block: 56px 72px; }
.p404-num { margin: 0; display: flex; align-items: center; gap: 6px; font: 900 clamp(5rem, 18vw, 9rem)/1 var(--display); color: var(--ink); letter-spacing: -.02em; }
.p404-bola { width: .78em; height: .78em; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #ffb066, var(--ball, #EF8021) 55%, #b9570f); position: relative; box-shadow: inset 0 0 0 2px rgba(0,0,0,.12); }
.p404-bola::before, .p404-bola::after { content: ""; position: absolute; inset: 0; border-radius: 50%; border: 2px solid rgba(40,20,0,.55); }
.p404-bola::before { clip-path: inset(0 47% 0 47%); border: 0; background: rgba(40,20,0,.55); }
.p404-bola::after { inset: 46% 0 46% 0; border-radius: 0; border: 0; background: rgba(40,20,0,.55); }
.p404 h1 { margin: 6px 0 0; font-size: clamp(1.5rem, 4vw, 2.2rem); text-wrap: balance; }
.p404 p { max-width: 52ch; }
.p404-links { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 8px; }

/* erros de formulário: campo destacado e mensagem logo abaixo */
[aria-invalid="true"] { border-color: var(--danger, #c62828) !important; box-shadow: 0 0 0 3px color-mix(in srgb, var(--danger, #c62828) 18%, transparent) !important; }
.campo-msg { margin: 4px 0 0; font-size: .85rem; font-weight: 600; color: var(--danger-ink, #b3261e); display: flex; gap: 4px; align-items: baseline; }
.campo-msg::before { content: "!"; display: inline-grid; place-items: center; width: 16px; height: 16px; border-radius: 50%; background: var(--danger, #c62828); color: #fff; font-size: .7rem; flex: none; transform: translateY(2px); }
:root[data-theme="dark"] .campo-msg { color: #ff8a80; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .campo-msg { color: #ff8a80; } }

/* barra fixa no celular */
.cta-movel { display: none; }
@media (max-width: 720px) {
  .cta-movel:not([hidden]) { display: grid; grid-template-columns: repeat(3, 1fr); position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; background: var(--ink-deep, #0A1F4A); border-top: 1px solid rgba(255,255,255,.12);
    padding: 6px max(8px, env(safe-area-inset-left, 0px)) calc(6px + env(safe-area-inset-bottom, 0px)) max(8px, env(safe-area-inset-right, 0px)); box-shadow: 0 -6px 20px -10px rgba(0,0,0,.4); }
  .cta-movel a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 48px; color: #F4F7FB; text-decoration: none; font-size: .75rem; font-weight: 700; border-radius: 10px; }
  .cta-movel a svg { width: 22px; height: 22px; }
  .cta-movel a.destaque { background: #E0283F; }
  .cta-movel a:focus-visible { outline: 3px solid #FFB066; outline-offset: 2px; }
  html.tem-cta-movel body { padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px)); }
  html.tem-cta-movel #toasts { bottom: calc(76px + env(safe-area-inset-bottom, 0px)); }
}
/* aviso de cookies */
.aviso-cookies { position: fixed; left: max(12px, env(safe-area-inset-left, 0px)); right: max(12px, env(safe-area-inset-right, 0px)); bottom: calc(12px + env(safe-area-inset-bottom, 0px)); z-index: 45; max-width: 640px; margin: 0 auto;
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 12px 14px; border-radius: 12px; background: var(--paper, #fff); color: var(--ink); border: 1px solid var(--line); box-shadow: 0 12px 32px -12px rgba(0,0,0,.35); }
.aviso-cookies p { margin: 0; flex: 1; min-width: 220px; font-size: .9375rem; }
@media (max-width: 720px) { html.tem-cta-movel .aviso-cookies { bottom: calc(76px + env(safe-area-inset-bottom, 0px)); } }
/* tela de carregamento enquanto o site abre */
.boot-load { min-height: 60vh; display: grid; place-content: center; justify-items: center; gap: 12px; color: var(--muted, #55635c); font-weight: 600; }
.boot-bola { width: 44px; height: 44px; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #ffb066, #EF8021 55%, #b9570f); animation: boot-quica .9s ease-in-out infinite alternate; box-shadow: inset 0 0 0 2px rgba(0,0,0,.12); }
@keyframes boot-quica { from { transform: translateY(-14px); } to { transform: translateY(10px); } }
@media (prefers-reduced-motion: reduce) { .boot-bola { animation: none; } }
.aviso-cookies a { color: inherit; font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }

/* ===== placar compacto preso no topo da página do jogo (aparece ao rolar o lance a lance) ===== */
.jogo-mini { position: fixed; left: 50%; top: 0; z-index: 29; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 10px;
  width: min(560px, calc(100% - 16px)); margin: 6px 0 0; padding: 6px 12px; border: 1px solid #23414c; border-radius: 14px;
  background: #071a22; color: #fff; font: inherit; text-align: left; cursor: pointer; box-shadow: 0 14px 28px -14px rgba(0,0,0,.7);
  transform: translate(-50%, -140%); opacity: 0; visibility: hidden; transition: transform .22s ease, opacity .22s ease, visibility 0s linear .22s; }
.jogo-mini.on { transform: translate(-50%, 0); opacity: 1; visibility: visible; transition: transform .22s ease, opacity .22s ease, visibility 0s; }
.jogo-mini:focus-visible { outline: 3px solid var(--sun); outline-offset: 2px; }
.jogo-mini .jm-t { display: flex; align-items: center; gap: 8px; min-width: 0; }
.jogo-mini .jm-t.away { justify-content: flex-end; }
.jogo-mini .jm-n { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .9375rem; font-weight: 700; color: #dfe9ec; }
.jogo-mini .jm-p { margin-left: auto; font: 800 1.6rem/1 var(--wide, var(--display)); color: #ffb35c; text-shadow: 0 0 10px rgba(255,140,40,.35); font-variant-numeric: tabular-nums; }
.jogo-mini .jm-t.away .jm-p { margin: 0 auto 0 0; }
.jogo-mini .crest.sm, .jogo-mini .crest.logo.sm { --s: 30px; width: 30px; min-width: 30px; height: 30px; }
.jogo-mini .crest.logo img { max-width: 30px; max-height: 30px; }
.jogo-mini .jm-sit { display: inline-flex; align-items: center; gap: 5px; padding: 3px 8px; border-radius: 999px; background: rgba(255,255,255,.12); font-size: .75rem; font-weight: 700; white-space: nowrap; font-variant-numeric: tabular-nums; }
.jogo-mini .jm-sit.live { background: var(--live); }
@media (max-width: 420px) {
  .jogo-mini { gap: 6px; padding: 5px 8px; }
  .jogo-mini .jm-n { font-size: .8125rem; }
  .jogo-mini .jm-p { font-size: 1.375rem; }
  .jogo-mini .crest.sm, .jogo-mini .crest.logo.sm { --s: 24px; width: 24px; min-width: 24px; height: 24px; }
  .jogo-mini .crest.logo img { max-width: 24px; max-height: 24px; }
}
@media (prefers-reduced-motion: reduce) { .jogo-mini, .jogo-mini.on { transition: none; } }
@media print { .jogo-mini { display: none !important; } }

/* ===== classificação ao vivo (projeção com os jogos em andamento) ===== */
.st-aovivo { display: block; margin: 0; padding: 10px var(--s4); border-bottom: 1px solid var(--line-2); font-size: .875rem; color: var(--ink-2); }
.st-aovivo b { color: var(--live); }
.st-aovivo .dot { display: inline-block; vertical-align: middle; margin-right: 6px; width: 9px; height: 9px; border-radius: 50%; background: var(--live); animation: st-pulso 1.4s ease-in-out infinite; }
@keyframes st-pulso { 50% { opacity: .35; } }
table.st tr.em-quadra td { background: color-mix(in srgb, var(--live) 7%, transparent); }
.st-mov { display: block; font-size: .68rem; font-weight: 800; line-height: 1; margin-top: 2px; }
.st-mov.up { color: var(--ok-ink, #1d7a3a); } .st-mov.dn { color: var(--live); }
.st-vivo { display: inline-block; vertical-align: middle; margin-left: 8px; padding: 2px 7px; border-radius: 999px; background: var(--live); color: #fff; font-size: .75rem; font-weight: 800; font-variant-numeric: tabular-nums; white-space: nowrap; }
.st-vivo.D { background: color-mix(in srgb, var(--live) 55%, var(--ink-3)); }
.st-vivo.E { background: var(--ink-3); }
@media (prefers-reduced-motion: reduce) { .st-aovivo .dot { animation: none; } }

/* ===== relatório de despesas por escola (A4, papel timbrado da ASPAB) ===== */
.desp-wrap { display: grid; gap: var(--s5); margin-bottom: var(--s5); }
.desp-body { padding-top: calc(var(--u) * 36); }
.desp-logo { display: block; height: calc(var(--u) * 24); width: auto; margin: 0 auto calc(var(--u) * 3); }
.decl-body h1.desp-org { font-size: calc(var(--u) * 5.6); line-height: 1.2; color: #1f5fae; margin-bottom: calc(var(--u) * 4); }
.desp-box { border: 1px solid #000; padding: calc(var(--u) * 3) calc(var(--u) * 4) calc(var(--u) * 6); }
.decl-body .desp-box p { margin-bottom: calc(var(--u) * 4); }
.decl-body p.desp-tit { margin-bottom: calc(var(--u) * 4); font-family: 'Montserrat', Arial, sans-serif; }
.desp-tab { width: 100%; border-collapse: collapse; margin: 0 0 calc(var(--u) * 7); font-family: 'Montserrat', Arial, sans-serif; font-size: calc(var(--u) * 4.6); }
.desp-tab td, .desp-tab th { border: 1px solid #000; padding: calc(var(--u) * .6) calc(var(--u) * 1.6); text-align: left; vertical-align: bottom; color: #000; background: #fff; font-weight: 400; }
.desp-tab td:first-child { width: 50%; }
.desp-tab tr.tot td:first-child { text-align: right; font-weight: 700; }
.desp-tab.desp-jogos { font-size: calc(var(--u) * 3.4); } .desp-tab.desp-jogos th { font-weight: 700; } .desp-tab.desp-jogos td:first-child { width: auto; white-space: nowrap; }
.desp-banco { display: inline-flex; flex-direction: column; border: 1px solid #000; padding: calc(var(--u) * 1) calc(var(--u) * 2); margin-bottom: calc(var(--u) * 5); font-family: 'Montserrat', Arial, sans-serif; font-size: calc(var(--u) * 3.5); line-height: 1.25; min-width: 50%; }
.desp-banco b { text-align: center; }
.decl-body p.desp-c { text-align: center; font-family: 'Montserrat', Arial, sans-serif; }
.desp-ass { text-align: center; margin-top: calc(var(--u) * 8); font-family: 'Montserrat', Arial, sans-serif; }
.decl-body .desp-ass p { margin: 0; font-size: calc(var(--u) * 3.4); text-transform: uppercase; }
.decl-body .desp-ass p.nome { font-style: italic; text-decoration: underline; text-transform: none; font-size: calc(var(--u) * 4.6); }
.decl-body .desp-ass p.nome.vazio { display: inline-block; min-width: 50%; border-bottom: 1px solid #000; text-decoration: none; }
@media print {
  .desp-wrap { display: block; margin: 0 !important; }
  .desp-sheet { break-after: page; page-break-after: always; }
  .desp-wrap:last-child .desp-sheet:last-child { break-after: auto; page-break-after: auto; }
}

/* ===== campeonato: resumo e sub-abas ===== */
.adm-subseg { margin: 0 0 var(--s4); }
.adm-resumo { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: var(--s4); margin-top: var(--s4); align-items: start; }
.adm-resumo .card h3 { margin-top: 0; }
.adm-resumo section:first-child { grid-column: 1 / -1; }
.adm-pend { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.adm-pend a { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid var(--line-2); border-radius: var(--r2); color: inherit; text-decoration: none; }
.adm-pend a:hover, .adm-pend a:focus-visible { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 6%, transparent); }
.adm-pend a > span { flex: 1; }
.adm-pend a > svg:last-child { opacity: .5; }
.adm-encerrar { border-style: dashed; }
/* resumo do campeonato: a lista de rótulos não estoura o cartão estreito */
.adm-resumo dl.info { grid-template-columns: minmax(0, max-content) minmax(0, 1fr); column-gap: var(--s4); }
.adm-resumo dl.info dt, .adm-resumo dl.info dd { min-width: 0; overflow-wrap: anywhere; }

/* ===== revisão das telas internas: nada cortado ou fora da tela ===== */
/* abas do painel quebram linha em vez de esconder as últimas atrás de uma rolagem invisível */
.adm-main > .tabs { flex-wrap: wrap; overflow: visible; row-gap: 0; }
.adm-main > .tabs .tab { padding-inline: var(--s3); }
.seg { flex-wrap: wrap; }
/* quadros de números: quantos couberem por linha; valor longo (R$ 4.340,00) diminui em vez de estourar */
.stats-strip, .stats-strip.six { grid-template-columns: repeat(auto-fit, minmax(min(150px, 100%), 1fr)); }
.stats-strip.six { grid-template-columns: repeat(auto-fit, minmax(min(118px, 100%), 1fr)); }
.stat { min-width: 0; }
.stat { container-type: inline-size; }
.stat b { font-size: clamp(1rem, 13cqi, var(--t-3xl)); white-space: nowrap; }
.stat span { overflow-wrap: anywhere; }
/* listas e cartões do painel não passam da largura da tela */
.adm-main .row-item, .adm-main .card, .adm-main form, .adm-main .field { min-width: 0; max-width: 100%; }
.adm-main .row-item { flex-wrap: wrap; }
.adm-main .row-item .grow { min-width: 0; overflow-wrap: anywhere; }
.adm-main code { overflow-wrap: anywhere; white-space: normal; }
.adm-main dl.info { grid-template-columns: minmax(0, max-content) minmax(0, 1fr); }
.adm-main dl.info dd { min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 640px) {
  /* grades de cartões com largura mínima fixa (300–340 px) viram uma coluna no celular */
  .adm-main .matches, .adm-main .grid2, .adm-main .grid3 { grid-template-columns: minmax(0, 1fr) !important; }
  .adm-main .upload-field, .adm-main [data-upload-field] { flex-wrap: wrap; }
  .adm-main .actions, .adm-main .hero-actions { flex-wrap: wrap; }
}
/* local do jogo: quebra em duas linhas em vez de cortar com reticências */
.mc-venue b { white-space: normal; overflow: visible; text-overflow: clip; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow-wrap: anywhere; }
@media (max-width: 640px) {
  /* campeonatos ativos (visão geral): nome em linha inteira, contagem e situação embaixo */
  .adm-list a { grid-template-columns: minmax(0, 1fr) auto; row-gap: 4px; }
  .adm-list a > :first-child { grid-column: 1 / -1; }
  .adm-list a b { white-space: normal; overflow: visible; overflow-wrap: anywhere; }
  .adm-main dl.info { grid-template-columns: minmax(0, 1fr); row-gap: 2px; }
  .adm-main dl.info dd { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-bottom: var(--s2); }
}
/* tabelas do painel: colunas de texto (nome, cidade, responsável, detalhe) quebram linha,
   para caber na tela sem rolagem lateral e sem esconder a coluna de ações */
.adm-main td.l, .adm-main th.l[scope="row"] { white-space: normal; overflow-wrap: break-word; min-width: 12ch; }
.adm-main th.l[scope="row"] .tn, .adm-main td.l .tn { min-width: 0; }
.adm-main td.l .muted.small, .adm-main td.l .small { overflow-wrap: anywhere; max-width: 60ch; }
.adm-main td .actions { flex-wrap: nowrap; }
@media (max-width: 640px) {
  /* seletores (fase, partes da aba) que quebram linha: cantos menos arredondados para não virar uma "bolha" */
  .seg { border-radius: 14px; }
  .seg button { flex: 1 1 auto; }
}
/* mesa: horário do jogo sem a caixa escura, na cor do texto do tema (escuro no tema claro, claro no tema escuro) */
.mesa-time { background: none; border: 0; box-shadow: none; }
.mesa-time b { color: var(--ink); }
/* escala de arbitragem: título da coluna longo ("Súmula online") quebra linha em vez de invadir a coluna ao lado */
.esc-table th { white-space: normal; line-height: 1.2; vertical-align: bottom; overflow-wrap: break-word; hyphens: auto; }

/* ===== vidro (glassmorphism): só onde o conteúdo passa por trás — barra do celular, placar fixo,
   aviso de cookies e avisos rápidos. Cartões, tabelas e formulários seguem sólidos, para a leitura.
   Sem suporte a desfoque, ou com "reduzir transparência" ligado no aparelho, tudo fica opaco como antes. ===== */
@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .jogo-mini { background: rgba(7, 26, 34, .72); border-color: rgba(255, 255, 255, .14); -webkit-backdrop-filter: saturate(160%) blur(16px); backdrop-filter: saturate(160%) blur(16px);
    box-shadow: 0 14px 34px -14px rgba(0, 0, 0, .6), inset 0 1px 0 rgba(255, 255, 255, .08); }
  .aviso-cookies { background: color-mix(in srgb, var(--paper) 78%, transparent); border-color: color-mix(in srgb, var(--line) 70%, rgba(255, 255, 255, .5));
    -webkit-backdrop-filter: saturate(160%) blur(18px); backdrop-filter: saturate(160%) blur(18px); box-shadow: 0 18px 40px -16px rgba(0, 0, 0, .35), inset 0 1px 0 rgba(255, 255, 255, .35); }
  .toast { background: color-mix(in srgb, var(--sea-800) 82%, transparent); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); box-shadow: 0 14px 30px -14px rgba(0, 0, 0, .5), inset 0 1px 0 rgba(255, 255, 255, .08); }
  @media (max-width: 720px) {
    .cta-movel:not([hidden]) { background: rgba(10, 31, 74, .78); border-top-color: rgba(255, 255, 255, .14); -webkit-backdrop-filter: saturate(160%) blur(16px); backdrop-filter: saturate(160%) blur(16px); }
  }
}
@media (prefers-reduced-transparency: reduce) {
  .jogo-mini { background: #071a22; backdrop-filter: none; -webkit-backdrop-filter: none; }
  .aviso-cookies { background: var(--paper); backdrop-filter: none; -webkit-backdrop-filter: none; }
  .toast { background: var(--sea-800); backdrop-filter: none; -webkit-backdrop-filter: none; }
  .cta-movel:not([hidden]) { background: #0A1F4A !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
}

/* ===== botões: ao passar o mouse, aro e brilho laranja (a cor da bola) e um leve "pulo" =====
   Excluídos: botões de excluir (seguem vermelhos) e desabilitados. Só em aparelhos com mouse. */
.btn { transition: background-color .15s ease, border-color .15s ease, color .15s ease, box-shadow .2s ease, transform .15s ease; }
@media (hover: hover) and (pointer: fine) {
  .btn:not(.danger):not([disabled]):hover { box-shadow: 0 0 0 2px var(--sun), 0 10px 20px -10px color-mix(in srgb, var(--sun) 80%, transparent); transform: translateY(-1px); }
  .btn.ghost:not(.danger):not([disabled]):hover { border-color: var(--sun); background: color-mix(in srgb, var(--sun) 12%, transparent); }
  .btn.sun:not([disabled]):hover { background: var(--sun-hover); box-shadow: 0 0 0 2px color-mix(in srgb, var(--sun) 45%, transparent), 0 10px 22px -8px color-mix(in srgb, var(--sun) 90%, transparent); }
}
.btn:not([disabled]):active { transform: translateY(0); box-shadow: 0 0 0 2px var(--sun); }
@media (prefers-reduced-motion: reduce) { .btn, .btn:hover { transition: none; transform: none !important; } }

/* ===== faixa "Jogos do fim de semana" em vidro: fundo com manchas suaves nas cores da bandeira e da bola,
   e os cartões dos jogos foscos por cima. Sem suporte a desfoque (ou com "reduzir transparência"), fica sólida. ===== */
@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .wk { position: relative; isolation: isolate; overflow: hidden;
    background:
      radial-gradient(38% 120% at 8% 0%, color-mix(in srgb, #004d9d 26%, transparent), transparent 70%),
      radial-gradient(30% 110% at 48% 110%, color-mix(in srgb, #00a046 22%, transparent), transparent 70%),
      radial-gradient(34% 120% at 92% 10%, color-mix(in srgb, var(--sun) 30%, transparent), transparent 70%),
      var(--paper); }
  .wk-card { background: color-mix(in srgb, var(--paper) 58%, transparent); border-color: color-mix(in srgb, #ffffff 55%, var(--line));
    -webkit-backdrop-filter: saturate(170%) blur(16px); backdrop-filter: saturate(170%) blur(16px);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .55), 0 10px 24px -16px rgba(4, 26, 51, .45); transition: border-color .15s, box-shadow .2s, transform .15s; }
  .wk-card:hover { border-color: var(--sun); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .55), 0 0 0 1px var(--sun), 0 12px 26px -14px color-mix(in srgb, var(--sun) 70%, transparent); }
  .wk-card.live { background: color-mix(in srgb, var(--live) 12%, color-mix(in srgb, var(--paper) 60%, transparent)); }
  .wk-tag { background: color-mix(in srgb, var(--paper) 55%, transparent); }
  .wk-arrow { background: color-mix(in srgb, var(--paper) 55%, transparent); border-color: color-mix(in srgb, #ffffff 50%, var(--line)); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
  /* tema escuro: borda e reflexo mais discretos */
  :root[data-theme="dark"] .wk-card, :root[data-theme="dark"] .wk-arrow { border-color: rgba(255, 255, 255, .14); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08), 0 10px 24px -16px rgba(0, 0, 0, .7); }
  @media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .wk-card, :root:not([data-theme="light"]) .wk-arrow { border-color: rgba(255, 255, 255, .14); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08), 0 10px 24px -16px rgba(0, 0, 0, .7); } }
}
@media (prefers-reduced-transparency: reduce) {
  .wk { background: var(--paper) !important; }
  .wk-card, .wk-arrow, .wk-tag { background: var(--paper) !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
}
/* escudo em imagem (logo larga, como a do TDB) nunca passa da caixa reservada para ele — antes invadia a sigla ao lado */
.crest.logo img { max-width: min(calc(var(--s) * 1.6), 100%); }
.pj-times .crest.logo img, .lead-list .crest.logo img, .tg-match .crest.logo img { max-width: 100%; max-height: 100%; height: auto; }

/* =====================================================================================
   REBRANDING "QUADRA AO SOL" (nov/2026) — site da LCB (o portal da Rede ASPAB não muda).
   Céu e mar do Ceará, bola laranja e linhas da quadra: leve, claro, com gradiente "maré"
   (azul-céu → verde-maré). Títulos e placares em Bricolage Grotesque; texto em Plus Jakarta Sans 400.
   Os logos oficiais não mudam. Tudo nesta camada; o tema escuro tem a sua versão logo abaixo.
   ===================================================================================== */
html:not([data-area="rede"]) {
  --sans: 'Montserrat', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --display: 'Montserrat', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --brand: var(--display); --wide: var(--display);
  --ceu: #1e6bd6; --mare: #0fb38a; --bola: #ff7a2f; --indigo: #14213d;
  --mare-g: linear-gradient(115deg, #1858b8 0%, #1279a8 48%, #087a5d 100%); /* ponta verde mais escura: texto branco ≥ 4,8:1 em todo o degradê */
  --mare-g-soft: linear-gradient(115deg, #e8f0fd 0%, #e6f6f2 100%);
  --sol-g: linear-gradient(135deg, #ffa25a 0%, #ff6a2b 100%);
  --ink: #14213d; --ink-2: #3a4a66; --ink-3: #56657f;
  --foam: #f4f7fb; --foam-2: #e8eef6; --paper: #ffffff; --hover: #eef4fc;
  --line: #d9e2ee; --line-2: #e7edf5;
  --sail-blue: #1e6bd6; --blue-text: #1858b8; --sail-green: #087a5d; --sail-green-ink: #087a5d; --green-text: #087a5d; --green-hover: #087a5d;
  --sun: #ff7a2f; --sun-hover: #ff8f4d; --on-sun: #14213d; --ball: #ff6a2b; --ball-text: #b5410f; --burnt: #c2410c;
  --btn-dark: #14213d; --btn-dark-hover: #22335a; --focus: #1e6bd6;
  --r1: 8px; --r2: 12px; --r3: 20px;
  --shadow: 0 1px 2px rgba(20, 33, 61, .06), 0 14px 34px -20px rgba(20, 33, 61, .30);
  --t-xs: .8125rem; --t-sm: .9375rem; --t-md: 1rem; --t-lg: 1.125rem; --t-xl: 1.375rem; --t-2xl: 1.75rem; --t-3xl: 2.125rem; --t-4xl: 2.75rem;
}
html:not([data-area="rede"])[data-theme="dark"] {
  /* grafite levemente azulado (saturação ~18%) no lugar do azul-marinho saturado (46–52%), que pesava a página toda */
  --ink: #eef1f6; --ink-2: #c4cbd7; --ink-3: #9ca6b6;
  --foam: #162131; --foam-2: #27344a; --paper: #212d40; --hover: #2c3a52;
  --line: #3a4964; --line-2: #2e3c55;
  --blue-text: #7fb0ff; --green-text: #4fd8ac; --sail-green-ink: #4fd8ac; --ball-text: #ff9a5c;
  --btn-dark: #22335a; --btn-dark-hover: #2c4170; --focus: #ffa25a;
  --mare-g-soft: linear-gradient(115deg, #1d2c45 0%, #1a3330 100%);
  --btn-dark: #2b3443; --btn-dark-hover: #36404f;
  --shadow: 0 1px 2px rgba(0, 0, 0, .25), 0 16px 36px -20px rgba(0, 0, 0, .55);
}
/* bola de basquete: arte grande nas faixas de título e ícone nos títulos das seções */
html:not([data-area="rede"]) {
  --bola-art: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 400' fill='none' stroke='%23ffa25a' stroke-width='6' stroke-linecap='round'%3E%3Ccircle cx='200' cy='200' r='190' stroke-opacity='.55'/%3E%3Cg stroke-opacity='.32'%3E%3Cpath d='M200 10v380M10 200h380'/%3E%3Cpath d='M66 66c62 62 62 206 0 268M334 66c-62 62-62 206 0 268'/%3E%3C/g%3E%3C/svg%3E");
  --bola-ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='11' fill='%23ff7a2f'/%3E%3Cg fill='none' stroke='%23842d07' stroke-width='1.4' stroke-linecap='round'%3E%3Cpath d='M12 1v22M1 12h22M4.2 4.2c3.6 3.6 3.6 12 0 15.6M19.8 4.2c-3.6 3.6-3.6 12 0 15.6'/%3E%3C/g%3E%3C/svg%3E");
}

/* ---------- tipografia: leve no texto, personalidade nos títulos ---------- */
html:not([data-area="rede"]) body { font-family: var(--sans); font-weight: 400; letter-spacing: 0; background: radial-gradient(1100px 520px at 105% -8%, color-mix(in srgb, var(--mare) 8%, transparent), transparent 70%), radial-gradient(900px 480px at -8% -6%, color-mix(in srgb, var(--bola) 6%, transparent), transparent 70%), var(--foam); background-attachment: fixed; }
html:not([data-area="rede"]) :is(h1, h2, h3, h4) { font-family: var(--display); text-transform: none; letter-spacing: -.02em; font-weight: 700; font-stretch: normal; }
html:not([data-area="rede"]) :is(.nav a, .btn, .tab, .seg button, label, th, .pill, .chip, .eyebrow, .crumbs, .tabs a, .tabs button) { font-stretch: normal; }
html:not([data-area="rede"]) :is(.btn, .tab, .nav a) { font-weight: 600; letter-spacing: 0; }
html:not([data-area="rede"]) th { font-weight: 600; text-transform: none; letter-spacing: 0; }
html:not([data-area="rede"]) :is(.mc3-name, .lead-card h3, .champ-card .ct, .mc-venue b, .group-title, .wk-team b, .lead-who b, .ll-name, .tn, .pj-eq b, .mc-cat, .mc-sub) { text-transform: none; font-family: var(--sans); font-weight: 700; letter-spacing: 0; }
html:not([data-area="rede"]) :is(.mc3-board b, .score, .ml-score, .wk-team strong, .stat b, td.pts, .lead-val strong, .ll-val, .clock, .hero-facts b) { font-family: var(--display); font-weight: 700; letter-spacing: -.02em; }
html:not([data-area="rede"]) .eyebrow { text-transform: none; letter-spacing: 0; font-weight: 600; }
/* rótulos minúsculos (10–11 px) passam a 12 px */
html:not([data-area="rede"]) :is(.wk-tag, .wk-cat, .pill) { font-size: .75rem; }
html:not([data-area="rede"]) .wk-tag { text-transform: none; letter-spacing: 0; }

/* ---------- topo e rodapé no gradiente "maré" ---------- */
html:not([data-area="rede"]) .topbar { background: var(--mare-g); border-bottom: 3px solid transparent; border-image: var(--sol-g) 1; box-shadow: 0 10px 30px -22px rgba(20, 33, 61, .8); }
html:not([data-area="rede"]) .topbar .nav a { color: #fff; border-radius: 999px; font-size: 14px; padding: 7px 10px; }
.topbar.sem-redes .tb-social { display: none !important; }
html:not([data-area="rede"]) .topbar .nav { gap: 2px; }
@media (min-width: 1560px) { html:not([data-area="rede"]) .topbar .nav a { font-size: 15px; padding: 8px 13px; } }
html:not([data-area="rede"]) .topbar .nav a:hover { color: #fff; background: rgba(255, 255, 255, .14); }
html:not([data-area="rede"]) .topbar .nav a.active { color: #fff; background: rgba(255, 255, 255, .2); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .25); }
html:not([data-area="rede"]) .topbar .nav a.active::after { display: none; }
/* redes sociais e tema agrupados numa pílula de vidro */
html:not([data-area="rede"]) .topbar .redes { display: inline-flex; gap: 2px; padding: 3px; border-radius: 999px; background: rgba(255, 255, 255, .14); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .18); }
html:not([data-area="rede"]) .topbar .redes a { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; color: #fff; }
html:not([data-area="rede"]) .topbar .redes a:hover { background: rgba(255, 255, 255, .2); }
html:not([data-area="rede"]) .footer { background: linear-gradient(160deg, #10284f 0%, #0f3b56 55%, #0b4a45 100%); }
html:not([data-area="rede"]) .footer::before { display: none; }

/* ---------- faixas de título (início e páginas) ---------- */
html:not([data-area="rede"]) :is(.hero, .page-hero) { background: radial-gradient(520px 260px at 92% 0%, rgba(255, 122, 47, .32), transparent 70%), var(--bola-art) right -70px bottom -70px/380px auto no-repeat, var(--mare-g); }
@media (max-width: 720px) { html:not([data-area="rede"]) :is(.hero, .page-hero) { background-size: auto, 280px auto, auto; background-position: 0 0, right -90px bottom -130px, 0 0; } }
html:not([data-area="rede"]) :is(.hero, .page-hero)::after { display: none; }

/* ---------- botões ---------- */
html:not([data-area="rede"]) .btn { background: var(--mare-g); color: #fff; border: 0; box-shadow: 0 6px 16px -10px rgba(24, 88, 184, .8); }
html:not([data-area="rede"]) .btn:hover { background: var(--mare-g); filter: brightness(1.06) saturate(1.05); }
html:not([data-area="rede"]) .btn.ghost { background: var(--paper); color: var(--ink); border: 1px solid var(--line); box-shadow: none; }
html:not([data-area="rede"]) .btn.dark { background: var(--btn-dark); color: #fff; box-shadow: none; }
html:not([data-area="rede"]) .btn.sun { background: var(--sol-g); color: var(--indigo); box-shadow: 0 8px 18px -10px rgba(255, 106, 43, .9); }
html:not([data-area="rede"]) .btn.hot { background: linear-gradient(135deg, #e5484d, #c8381a); color: #fff; }
html:not([data-area="rede"]) .btn.danger { background: transparent; box-shadow: none; }
html:not([data-area="rede"]) .topbar .btn.ghost { background: rgba(255, 255, 255, .12); border-color: rgba(255, 255, 255, .35); color: #fff; }
html:not([data-area="rede"]) .topbar .btn:not(.ghost):not(.dark) { background: #fff; color: var(--indigo); box-shadow: none; }
html:not([data-area="rede"]) .topbar .btn.dark { background: rgba(255, 255, 255, .16); }

/* ---------- seletores, abas e campos ---------- */
html:not([data-area="rede"]) :is(select, input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=color]), textarea) { border-radius: var(--r2); border: 1px solid var(--line); background-color: var(--paper); color: var(--ink); }
html:not([data-area="rede"]) select { -webkit-appearance: none; appearance: none; padding-right: 40px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%23ff7a2f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; }
html:not([data-area="rede"]) :is(select, input, textarea):focus-visible { outline: none; border-color: var(--ceu); box-shadow: 0 0 0 3px color-mix(in srgb, var(--ceu) 25%, transparent); }
html:not([data-area="rede"]) .seg { background: color-mix(in srgb, var(--ink) 7%, transparent); border: 0; padding: 4px; border-radius: 999px; }
html:not([data-area="rede"]) .seg button { border-radius: 999px; border: 0; background: transparent; color: var(--ink-2); font-weight: 600; }
html:not([data-area="rede"]) .seg button.active { background: var(--paper); color: var(--ink); box-shadow: 0 1px 3px rgba(20, 33, 61, .18); }
html:not([data-area="rede"]) .tab.active { color: var(--ink); border-bottom-color: var(--bola); }

/* ---------- quadros: brancos, cantos de 20 px, sombra suave ---------- */
html:not([data-area="rede"]) :is(.card, .mcard, .hero-card, .hero-news, .lead-card, .stat, .news-card, .champ-card, .wk-card) { border-radius: var(--r3); border-color: var(--line-2); box-shadow: var(--shadow); }
html:not([data-area="rede"]) .stat { border: 1px solid var(--line-2); }
/* cartão de jogo: metades com a cor das equipes mais suaves e placar sem caixa preta */
html:not([data-area="rede"]) .mcard.mc3 .mrow::before { background: linear-gradient(104deg, color-mix(in srgb, var(--hc, var(--line)) 12%, transparent) 0 calc(50% - 1px), var(--paper) calc(50% - 1px) calc(50% + 1px), color-mix(in srgb, var(--ac, var(--line)) 12%, transparent) calc(50% + 1px) 100%); }
html:not([data-area="rede"]) .mc3-board { background: var(--paper); border: 1px solid var(--line); box-shadow: 0 6px 16px -10px rgba(20, 33, 61, .35); }
html:not([data-area="rede"]) .mc3-board b { color: var(--indigo); text-shadow: none; }
html:not([data-area="rede"]) .mc3-board b.off { color: var(--ink-3); }
html:not([data-area="rede"]) .mc3-board i { color: var(--ink-3); }
html:not([data-area="rede"]) .mc3-board.hora b { color: var(--indigo); }
html:not([data-area="rede"]) .mcard.mc3 .mteam .crest.logo, html:not([data-area="rede"]) .mcard.mc3 .mteam .crest.logo.sm { background: var(--paper); box-shadow: 0 0 0 3px color-mix(in srgb, var(--tc, var(--line)) 55%, transparent), 0 8px 18px -12px rgba(20, 33, 61, .5); }
html:not([data-area="rede"])[data-theme="dark"] .mc3-board b, html:not([data-area="rede"])[data-theme="dark"] .mc3-board.hora b { color: #fff; }
/* contraste do dia da semana nos cartões (antes 2,3:1) */
html:not([data-area="rede"]) .mc-date small { color: var(--ball-text); }
/* destaques da temporada: sem o degradê escuro que apagava o nome no tema claro */
html:not([data-area="rede"]) .lead-top { background: var(--mare-g-soft); }
html:not([data-area="rede"]) .lead-who b { color: var(--ink); }

/* ---------- ícones em pastilhas ---------- */
html:not([data-area="rede"]) .hi-links a > svg, html:not([data-area="rede"]) .hi-links a > .ic { width: 40px; height: 40px; padding: 9px; border-radius: 12px; background: var(--mare-g-soft); color: var(--ceu); box-sizing: border-box; }
html:not([data-area="rede"]) .hi-links a { align-items: center; border-radius: var(--r3); border-color: var(--line-2); background: var(--paper); box-shadow: var(--shadow); }
html:not([data-area="rede"]) .hi-links a:hover { border-color: var(--bola); }
html:not([data-area="rede"]) .adm-side a svg, html:not([data-area="rede"]) .adm-side a .ic { color: var(--ceu); }
html:not([data-area="rede"]) .adm-side a.active, html:not([data-area="rede"]) .adm-side a[aria-current] { background: var(--mare-g); color: #fff; }
html:not([data-area="rede"]) .adm-side a.active svg, html:not([data-area="rede"]) .adm-side a[aria-current] svg { color: #fff; }

/* o conteúdo recebe foco a cada troca de página (leitor de tela): sem o contorno de foco em volta da página inteira */
#main:focus { outline: none; }

/* ---------- toques de laranja do basquete ---------- */
html:not([data-area="rede"]) :is(.home-head h2, .section > h2, .page-hero h1)::before { content: ""; display: inline-block; width: .72em; height: .72em; margin-right: .32em; vertical-align: -.04em; background: var(--bola-ic) center/contain no-repeat; }
html:not([data-area="rede"]) .mcard:hover { border-color: color-mix(in srgb, var(--bola) 55%, var(--line)); }
html:not([data-area="rede"]) .mc3-board { border-top: 3px solid var(--bola); }
html:not([data-area="rede"]) .seg button.active { box-shadow: 0 1px 3px rgba(20, 33, 61, .18), inset 0 -2px 0 var(--bola); }
html:not([data-area="rede"]) .home-more, html:not([data-area="rede"]) .card-head a { text-decoration-color: var(--bola); }
/* tema escuro: metades com a cor das equipes ainda mais discretas, para o cartão não escurecer em azul */
html:not([data-area="rede"])[data-theme="dark"] .mcard.mc3 .mrow::before { background: linear-gradient(104deg, color-mix(in srgb, var(--hc, var(--line)) 8%, transparent) 0 calc(50% - 1px), var(--line) calc(50% - 1px) calc(50% + 1px), color-mix(in srgb, var(--ac, var(--line)) 8%, transparent) calc(50% + 1px) 100%); }
/* o fundo da página no escuro vinha de uma regra antiga (azul-marinho #000c26) que vencia o token novo */
html:not([data-area="rede"])[data-theme="dark"] body { background-color: var(--foam); }
@media (prefers-color-scheme: dark) { html:not([data-area="rede"]):not([data-theme="light"]) body { background-color: var(--foam); } }
html:not([data-area="rede"])[data-theme="dark"] { background: #12161d; }

/* ===== ajustes da crítica de design (nov/2026) ===== */
/* botões do topo no mesmo corpo dos links do menu */
@media (min-width: 881px) { html:not([data-area="rede"]) .topbar .nav-right .btn { font-size: 14px; min-height: 40px; padding: 8px 14px; } }
/* datas sem "De Out": a escrita vem do servidor ("08 de out") e é a mesma da lista ao lado */
html:not([data-area="rede"]) .hn-meta { text-transform: none; }
html:not([data-area="rede"]) .wk-title small { white-space: nowrap; }
/* notícia sem foto: sem o bloco vazio de 16:9, só o texto */
html:not([data-area="rede"]) .hn-cover:has(.hn-ph) { display: none; }
/* cartão de jogo com menos cores disputando: categoria em contorno e metades das equipes mais claras */
html:not([data-area="rede"]) .mcard .mc-cat { background: color-mix(in srgb, var(--ceu) 9%, transparent); color: var(--blue-text); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--ceu) 35%, transparent); font-family: var(--sans); font-weight: 700; font-size: var(--t-sm); letter-spacing: 0; padding: 4px 10px; border-radius: 999px; }
html:not([data-area="rede"]) .mcard.mc3 .mrow::before { background: linear-gradient(104deg, color-mix(in srgb, var(--hc, var(--line)) 7%, transparent) 0 calc(50% - 1px), var(--line-2) calc(50% - 1px) calc(50% + 1px), color-mix(in srgb, var(--ac, var(--line)) 7%, transparent) calc(50% + 1px) 100%); }
html:not([data-area="rede"])[data-theme="dark"] .mcard.mc3 .mrow::before { background: linear-gradient(104deg, color-mix(in srgb, var(--hc, var(--line)) 6%, transparent) 0 calc(50% - 1px), var(--line) calc(50% - 1px) calc(50% + 1px), color-mix(in srgb, var(--ac, var(--line)) 6%, transparent) calc(50% + 1px) 100%); }
/* selo "Lance a lance": nunca abaixo de 12 px */
html:not([data-area="rede"]) .cov.sm { font-size: 12px; padding: 3px 8px 3px 5px; }
/* faixa dos cartões de campeonato no degradê da marca, terminando no laranja da bola */
html:not([data-area="rede"]) .champ-card::before { height: 5px; background: linear-gradient(90deg, #1858b8, #1279a8 45%, #087a5d 75%, #ff7a2f); }
/* rodapé: sai a renda da marca anterior, entra a linha laranja (a mesma do topo) */
html:not([data-area="rede"]) .footer .lace { height: 3px; margin-bottom: var(--s6); -webkit-mask: none; mask: none; background: var(--sol-g); opacity: 1; }

/* ===== faixa "Jogos do fim de semana" na marca nova (nov/2026): placar limpo, sem as manchas da paleta antiga.
   Fundo branco (grafite no escuro), cartões chapados em --foam, cantos de 14 px (abaixo dos 20 px dos quadros:
   a faixa é um placar, não um bloco de conteúdo), laranja só no que pede atenção. ===== */
html:not([data-area="rede"]) .wk { background: var(--paper); border-bottom: 1px solid var(--line-2); overflow: visible; }
html:not([data-area="rede"]) .wk .wk-in { padding-top: 14px; padding-bottom: 14px; }
html:not([data-area="rede"]) .wk .wk-card { background: var(--foam); border: 1px solid transparent; border-radius: 14px; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; padding: 9px 11px; gap: 5px; transition: border-color .15s, background-color .15s; }
html:not([data-area="rede"]) .wk .wk-card:hover { border-color: var(--bola); background: var(--paper); box-shadow: none; }
html:not([data-area="rede"]) .wk .wk-card.live { background: var(--paper); border: 2px solid var(--live); box-shadow: 0 6px 18px -12px color-mix(in srgb, var(--live) 80%, transparent); padding: 8px 10px; }
html:not([data-area="rede"]) .wk .wk-tag { background: transparent; padding: 0; font-size: .75rem; font-weight: 700; color: var(--ink-3); }
html:not([data-area="rede"]) .wk .wk-tag.live { background: var(--live); color: #fff; padding: 3px 7px; border-radius: 999px; }
html:not([data-area="rede"]) .wk .wk-time { font-size: .8125rem; font-weight: 700; color: var(--ink); display: inline-flex; gap: 5px; }
html:not([data-area="rede"]) .wk .wk-dia { color: var(--ball-text); }
html:not([data-area="rede"]) .wk .wk-team { font-size: .9375rem; }
html:not([data-area="rede"]) .wk .wk-team b { font-weight: 700; }
html:not([data-area="rede"]) .wk .wk-cat { font-size: .75rem; font-weight: 500; }
/* sem a sigla de 9 px dentro do escudo genérico (ela repete o nome ao lado): fica a bolinha na cor da equipe */
html:not([data-area="rede"]) .wk .wk-team .crest:not(.logo) { font-size: 0; --s: 14px; width: 14px; min-width: 14px; height: 14px; margin-left: 6px; }
/* "Lance a lance" só no jogo ao vivo: nos outros sete cartões era o elemento mais escuro da faixa e repetia a mesma coisa */
html:not([data-area="rede"]) .wk .wk-card:not(.live) .cov { display: none; }
/* setas discretas, e um esmaecido na borda onde ainda há jogos para rolar, no lugar do corte seco no meio do cartão */
html:not([data-area="rede"]) .wk .wk-arrow { background: var(--paper); border: 1px solid var(--line); color: var(--ink-2); box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
html:not([data-area="rede"]) .wk .wk-arrow:hover:not([disabled]) { border-color: var(--bola); color: var(--ball-text); }
html:not([data-area="rede"]) .wk .wk-track { -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 28px, #000 calc(100% - 48px), transparent); mask-image: linear-gradient(90deg, transparent 0, #000 28px, #000 calc(100% - 48px), transparent); }
html:not([data-area="rede"]) .wk .wk-track.no-inicio { -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 48px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 48px), transparent); }
html:not([data-area="rede"]) .wk .wk-track.no-inicio.no-fim { -webkit-mask-image: none; mask-image: none; }
html:not([data-area="rede"]) .wk .wk-track.no-fim:not(.no-inicio) { -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 28px); mask-image: linear-gradient(90deg, transparent 0, #000 28px); }
/* cabeçalho da faixa mais enxuto: logo menor, título no corpo do site */
html:not([data-area="rede"]) .wk .wk-logo { width: 84px; }
html:not([data-area="rede"]) .wk .wk-title { font-size: .875rem; font-weight: 700; }
@media (max-width: 760px) { html:not([data-area="rede"]) .wk .wk-logo { width: 56px; } }
/* faixa no mesmo azul-claro do fundo do site (--foam), com os cartões brancos como os outros quadros; só a jangada da LCB, sem fundo */
html:not([data-area="rede"]) .wk { background: transparent; border-bottom: 0; }
html:not([data-area="rede"]) .wk .wk-card { background: var(--paper); border-color: var(--line-2); box-shadow: 0 1px 2px rgba(20, 33, 61, .05); align-content: start; }
html:not([data-area="rede"]) .wk .wk-card:hover { background: var(--paper); }
html:not([data-area="rede"]) .wk .wk-logo { width: auto; height: 64px; padding: 0; background: none; border-radius: 0; }
@media (max-width: 760px) { html:not([data-area="rede"]) .wk .wk-logo { width: auto; height: 44px; } }

/* ===== faixa do fim de semana — rebranding (nov/2026): tabela da rodada dividida por dia.
   Fundo no azul-claro do site, cartões brancos, só a jangada da LCB. A peça marcante é o marcador de dia:
   bola laranja + dia em Bricolage abrindo cada grupo; o resto fica quieto. ===== */
html:not([data-area="rede"]) .wk { background: transparent; border-bottom: 0; }
html:not([data-area="rede"]) .wk .wk-in { padding-top: 18px; padding-bottom: 18px; }
html:not([data-area="rede"]) .wk .wk-head { gap: 6px; }
html:not([data-area="rede"]) .wk .wk-logo { width: auto; height: 58px; padding: 0; background: none; border-radius: 0; }
html:not([data-area="rede"]) .wk .wk-title { font: 700 1rem/1.2 var(--display); letter-spacing: -.01em; }
html:not([data-area="rede"]) .wk .wk-title small { font: 500 .8125rem/1.3 var(--sans); color: var(--ink-3); letter-spacing: 0; }
html:not([data-area="rede"]) .wk .wk-track { align-items: stretch; gap: 10px; padding: 4px 2px; }
/* marcador de dia */
html:not([data-area="rede"]) .wk .wk-day { flex: 0 0 auto; display: grid; align-content: center; justify-items: center; gap: 2px; padding: 0 6px 0 4px; scroll-snap-align: start; }
html:not([data-area="rede"]) .wk .wk-day + li { margin-left: -2px; }
html:not([data-area="rede"]) .wk .wk-day b { font: 700 1.375rem/1 var(--display); color: var(--ink); letter-spacing: -.02em; display: grid; justify-items: center; gap: 6px; }
html:not([data-area="rede"]) .wk .wk-day b::before { content: ""; width: 18px; height: 18px; background: var(--bola-ic) center/contain no-repeat; }
html:not([data-area="rede"]) .wk .wk-day small { font: 600 .75rem/1 var(--sans); color: var(--ball-text); }
html:not([data-area="rede"]) .wk .wk-track > li:not(:first-child).wk-day { border-left: 2px dashed color-mix(in srgb, var(--bola) 45%, transparent); padding-left: 14px; margin-left: 4px; }
/* cartão de jogo */
html:not([data-area="rede"]) .wk .wk-track li:not(.wk-day) { flex: 0 0 164px; }
html:not([data-area="rede"]) .wk .wk-card { background: var(--paper); border: 1px solid var(--line-2); border-radius: 14px; box-shadow: 0 1px 2px rgba(20, 33, 61, .05); padding: 10px 12px; gap: 6px; align-content: start; }
html:not([data-area="rede"]) .wk .wk-card:hover { background: var(--paper); border-color: var(--bola); }
html:not([data-area="rede"]) .wk .wk-card.live { border: 2px solid var(--live); padding: 9px 11px; box-shadow: 0 8px 20px -14px color-mix(in srgb, var(--live) 90%, transparent); }
html:not([data-area="rede"]) .wk .wk-top { min-height: 20px; }
html:not([data-area="rede"]) .wk .wk-time { font: 700 .875rem/1 var(--display); color: var(--ball-text); }
html:not([data-area="rede"]) .wk .wk-tag.done { color: var(--ink-3); font-weight: 600; }
html:not([data-area="rede"]) .wk .wk-team { font-size: .9375rem; min-height: 26px; }
html:not([data-area="rede"]) .wk .wk-team strong { font: 700 1.25rem/1 var(--display); letter-spacing: -.02em; }
html:not([data-area="rede"]) .wk .wk-cat { font-size: .75rem; color: var(--ink-3); }
html:not([data-area="rede"])[data-theme="dark"] .wk .wk-card { box-shadow: none; }
@media (max-width: 760px) {
  html:not([data-area="rede"]) .wk .wk-logo { height: 40px; }
  html:not([data-area="rede"]) .wk .wk-track li:not(.wk-day) { flex-basis: 150px; }
  html:not([data-area="rede"]) .wk .wk-day b { font-size: 1.125rem; }
}
/* tema escuro: a faixa fica no mesmo degradê azul da faixa de título logo abaixo (antes era uma tira grafite
   espremida entre dois blocos azuis claros); cartões grafite por cima, textos e marcadores em branco */
html:not([data-area="rede"])[data-theme="dark"] .wk { background: var(--mare-g); }
html:not([data-area="rede"])[data-theme="dark"] .wk .wk-title, html:not([data-area="rede"])[data-theme="dark"] .wk .wk-day b { color: #fff; }
html:not([data-area="rede"])[data-theme="dark"] .wk .wk-title small { color: rgba(255, 255, 255, .82); }
html:not([data-area="rede"])[data-theme="dark"] .wk .wk-day small { color: #ffd1ad; }
html:not([data-area="rede"])[data-theme="dark"] .wk .wk-track > li:not(:first-child).wk-day { border-left-color: rgba(255, 255, 255, .35); }
html:not([data-area="rede"])[data-theme="dark"] .wk .wk-head .btn.ghost { background: rgba(255, 255, 255, .12); border-color: rgba(255, 255, 255, .35); color: #fff; }
html:not([data-area="rede"])[data-theme="dark"] .wk .wk-arrow { background: rgba(255, 255, 255, .12); border-color: rgba(255, 255, 255, .3); color: #fff; }
html:not([data-area="rede"])[data-theme="dark"] .wk .wk-card { background: var(--paper); border-color: rgba(255, 255, 255, .1); box-shadow: 0 10px 24px -16px rgba(0, 0, 0, .6); }
html:not([data-area="rede"])[data-theme="dark"] .wk .wk-card:hover { border-color: var(--bola); }
html:not([data-area="rede"])[data-theme="dark"] .wk .wk-card.live { border-color: var(--live); }

/* ===== faixa do fim de semana em painel de vidro (nov/2026) — crítica de design + web design
   Fundo: degradê da marca com o sol laranja e a bola em linhas (o que o vidro desfoca e atenua), igual nos dois temas.
   Um painel de vidro com contorno duplo agrupa jangada, título, dias, setas e jogos (raio 24; cartões 14 — hierarquia).
   Claro: vidro branco quase fosco, texto escuro. Escuro: vidro marinho translúcido (o azul atravessa; nada de preto),
   texto branco. Contraste do texto ≥ 4,5:1 sobre o vidro. ===== */
html:not([data-area="rede"]) .wk, html:not([data-area="rede"])[data-theme="dark"] .wk {
  position: relative; isolation: isolate; overflow: hidden; border-bottom: 0;
  background: radial-gradient(440px 230px at 86% 35%, rgba(255, 122, 47, .7), transparent 70%),
    radial-gradient(380px 210px at 14% 115%, rgba(15, 179, 138, .55), transparent 70%),
    var(--bola-art) right 4% top -140px/380px auto no-repeat, var(--mare-g); }
html:not([data-area="rede"]) .wk .wk-in {
  margin-block: 16px; padding: 14px 18px; border-radius: 24px;
  background: linear-gradient(135deg, rgba(255, 255, 255, .74), rgba(255, 255, 255, .58));
  -webkit-backdrop-filter: blur(28px) saturate(180%); backdrop-filter: blur(28px) saturate(180%);
  border: 1px solid rgba(255, 255, 255, .85);
  box-shadow: 0 0 0 1px rgba(14, 40, 80, .16), inset 0 1px 0 #fff, 0 24px 48px -28px rgba(10, 34, 74, .7); }
html:not([data-area="rede"])[data-theme="dark"] .wk .wk-in {
  background: linear-gradient(135deg, rgba(18, 40, 78, .58), rgba(18, 40, 78, .4));
  border-color: rgba(255, 255, 255, .32);
  box-shadow: 0 0 0 1px rgba(4, 14, 32, .3), inset 0 1px 0 rgba(255, 255, 255, .22), 0 24px 48px -28px rgba(0, 10, 30, .75); }
/* textos do painel */
html:not([data-area="rede"]) .wk .wk-title, html:not([data-area="rede"]) .wk .wk-day b { color: var(--indigo); text-shadow: none; }
html:not([data-area="rede"]) .wk .wk-title small { color: #3a4a66; }
html:not([data-area="rede"]) .wk .wk-day small { color: #b5410f; }
html:not([data-area="rede"]) .wk .wk-track > li:not(:first-child).wk-day { border-left-color: rgba(255, 122, 47, .55); }
html:not([data-area="rede"])[data-theme="dark"] .wk .wk-title, html:not([data-area="rede"])[data-theme="dark"] .wk .wk-day b { color: #fff; }
html:not([data-area="rede"])[data-theme="dark"] .wk .wk-title small { color: rgba(255, 255, 255, .85); }
html:not([data-area="rede"])[data-theme="dark"] .wk .wk-day small { color: #ffc49a; }
html:not([data-area="rede"])[data-theme="dark"] .wk .wk-track > li:not(:first-child).wk-day { border-left-color: rgba(255, 255, 255, .35); }
/* botão e setas no mesmo vidro */
html:not([data-area="rede"]) .wk .wk-head .btn.ghost, html:not([data-area="rede"]) .wk .wk-arrow { background: rgba(255, 255, 255, .7); border: 1px solid rgba(14, 40, 80, .16); color: var(--indigo); box-shadow: none; }
html:not([data-area="rede"]) .wk .wk-arrow:hover:not([disabled]), html:not([data-area="rede"]) .wk .wk-head .btn.ghost:hover { background: #fff; border-color: var(--bola); color: var(--indigo); }
html:not([data-area="rede"])[data-theme="dark"] .wk .wk-head .btn.ghost, html:not([data-area="rede"])[data-theme="dark"] .wk .wk-arrow { background: rgba(255, 255, 255, .12); border-color: rgba(255, 255, 255, .35); color: #fff; }
html:not([data-area="rede"])[data-theme="dark"] .wk .wk-arrow:hover:not([disabled]), html:not([data-area="rede"])[data-theme="dark"] .wk .wk-head .btn.ghost:hover { background: rgba(255, 255, 255, .22); border-color: var(--bola); color: #fff; }
/* cartões: vidro claro translúcido */
html:not([data-area="rede"]) .wk .wk-card { background: rgba(255, 255, 255, .86); border: 1px solid rgba(255, 255, 255, .95); color: var(--indigo); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); box-shadow: 0 1px 0 rgba(14, 40, 80, .06), 0 10px 22px -16px rgba(10, 34, 74, .6); }
html:not([data-area="rede"]) .wk .wk-card:hover { background: #fff; border-color: var(--bola); }
html:not([data-area="rede"])[data-theme="dark"] .wk .wk-card { background: rgba(255, 255, 255, .11); border-color: rgba(255, 255, 255, .24); color: #fff; box-shadow: 0 10px 22px -16px rgba(0, 8, 24, .7); }
html:not([data-area="rede"])[data-theme="dark"] .wk .wk-card:hover { background: rgba(255, 255, 255, .18); border-color: var(--bola); }
html:not([data-area="rede"])[data-theme="dark"] .wk .wk-team.lost :is(b, strong), html:not([data-area="rede"])[data-theme="dark"] .wk :is(.wk-cat, .wk-tag.done) { color: rgba(255, 255, 255, .78); }
html:not([data-area="rede"])[data-theme="dark"] .wk .wk-time { color: #ffc49a; }
html:not([data-area="rede"]) .wk .wk-card.live, html:not([data-area="rede"])[data-theme="dark"] .wk .wk-card.live { border: 2px solid var(--live); }
@media (max-width: 760px) { html:not([data-area="rede"]) .wk .wk-in { margin-block: 12px; padding: 12px; border-radius: 20px; } }
/* sem desfoque (navegador antigo ou "reduzir transparência"): painel e cartões sólidos, contorno mantido */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  html:not([data-area="rede"]) .wk .wk-in { background: rgba(255, 255, 255, .9); }
  html:not([data-area="rede"])[data-theme="dark"] .wk .wk-in { background: rgba(18, 40, 78, .85); } }
@media (prefers-reduced-transparency: reduce) {
  html:not([data-area="rede"]) .wk :is(.wk-in, .wk-card) { -webkit-backdrop-filter: none !important; backdrop-filter: none !important; }
  html:not([data-area="rede"]) .wk .wk-in { background: #f4f7fb !important; } html:not([data-area="rede"])[data-theme="dark"] .wk .wk-in { background: #17304f !important; } }
/* contraste medido sobre o vidro: data do dia mais escura no claro; textos secundários dos cartões mais claros no escuro */
html:not([data-area="rede"]) .wk .wk-day small { color: #8a2e0c; }
html:not([data-area="rede"])[data-theme="dark"] .wk .wk-day small { color: #ffc49a; }
html:not([data-area="rede"])[data-theme="dark"] .wk .wk-team.lost :is(b, strong), html:not([data-area="rede"])[data-theme="dark"] .wk :is(.wk-cat, .wk-tag.done) { color: #e6ebf2; }
html:not([data-area="rede"])[data-theme="dark"] .wk .wk-card { background: linear-gradient(rgba(255, 255, 255, .09), rgba(255, 255, 255, .09)), rgba(12, 32, 66, .42); }
html:not([data-area="rede"])[data-theme="dark"] .wk .wk-card:hover { background: linear-gradient(rgba(255, 255, 255, .15), rgba(255, 255, 255, .15)), rgba(12, 32, 66, .42); }

/* ===== tema escuro: moldura "noturna" (nov/2026) — crítica de design da página inteira
   O degradê vivo (luminosidade até 39%) no alto de um corpo grafite (11%) parecia outro site e terminava num corte seco.
   No escuro: o mesmo céu → maré, mais profundo (~20%), no topo, na faixa de jogos, na faixa de título e no rodapé
   (moldura em cima e embaixo); a faixa de título dissolve no grafite em vez de cortar. Botões seguem no degradê vivo. ===== */
html:not([data-area="rede"])[data-theme="dark"] { --mare-noite: linear-gradient(115deg, #143a72 0%, #10465f 50%, #0c4a3f 100%); }
@media (prefers-color-scheme: dark) { html:not([data-area="rede"]):not([data-theme="light"]) { --mare-noite: linear-gradient(115deg, #143a72 0%, #10465f 50%, #0c4a3f 100%); } }
html:not([data-area="rede"])[data-theme="dark"] .topbar { background: var(--mare-noite); }
html:not([data-area="rede"])[data-theme="dark"] .wk { background: radial-gradient(440px 230px at 86% 35%, rgba(255, 122, 47, .42), transparent 70%), radial-gradient(380px 210px at 14% 115%, rgba(15, 179, 138, .35), transparent 70%), var(--bola-art) right 4% top -140px/380px auto no-repeat, var(--mare-noite); }
html:not([data-area="rede"])[data-theme="dark"] :is(.hero, .page-hero) {
  background: linear-gradient(180deg, transparent calc(100% - 140px), var(--foam) 100%),
    radial-gradient(520px 260px at 92% 0%, rgba(255, 122, 47, .22), transparent 70%),
    var(--bola-art) right -70px bottom -70px/380px auto no-repeat, var(--mare-noite); }
html:not([data-area="rede"])[data-theme="dark"] .footer { background: linear-gradient(180deg, var(--foam) 0, transparent 120px), var(--mare-noite); }
@media (prefers-color-scheme: dark) { html:not([data-area="rede"]):not([data-theme="light"]) .footer { background: linear-gradient(180deg, var(--foam) 0, transparent 120px), var(--mare-noite); } }
html:not([data-area="rede"]) :is(.hero, .page-hero) { border-bottom: 0; }

/* ===== tema claro: a mesma moldura (nov/2026) — faixa de título que dissolve no azul-claro do corpo
   e rodapé no degradê da marca nascendo dele, em vez dos cortes secos ===== */
html:not([data-area="rede"]):not([data-theme="dark"]) :is(.hero, .page-hero) {
  background: linear-gradient(180deg, transparent calc(100% - 110px), var(--foam) 100%),
    radial-gradient(520px 260px at 92% 0%, rgba(255, 122, 47, .32), transparent 70%),
    var(--bola-art) right -70px bottom -70px/380px auto no-repeat, var(--mare-g); }
html:not([data-area="rede"]):not([data-theme="dark"]) .footer { background: linear-gradient(180deg, var(--foam) 0, transparent 120px), var(--mare-g); color: #fff; }
html:not([data-area="rede"]):not([data-theme="dark"]) .footer :is(p, a, span, small, .brand p, .dev-credito) { color: #fff; }
@media (prefers-color-scheme: dark) { html:not([data-area="rede"]):not([data-theme="light"]):not([data-theme="dark"]) :is(.hero, .page-hero) { background: linear-gradient(180deg, transparent calc(100% - 140px), var(--foam) 100%), var(--bola-art) right -70px bottom -70px/380px auto no-repeat, var(--mare-noite); } }
html:not([data-area="rede"]):not([data-theme="dark"]) .footer { background: linear-gradient(180deg, var(--foam) 0, transparent 56px), var(--mare-g); }


/* ===== fundo da página no degradê da marca (nov/2026): o céu → maré da moldura atravessa a página inteira,
   em tons próximos do fundo (não compete com tabelas e cartões). Começa azul logo abaixo da faixa de título
   e termina verde-menta (claro) / verde-petróleo (escuro) emendando no rodapé. Escuro em azul-ardósia. ===== */
html:not([data-area="rede"]) { --corpo-topo: #e6effc; --corpo-base: #e3f4ec; }
html:not([data-area="rede"])[data-theme="dark"] { --corpo-topo: #182a48; --corpo-base: #122f2f; }
@media (prefers-color-scheme: dark) { html:not([data-area="rede"]):not([data-theme="light"]) { --corpo-topo: #182a48; --corpo-base: #122f2f; } }
html:not([data-area="rede"]) body, html:not([data-area="rede"])[data-theme="dark"] body {
  background: linear-gradient(180deg, var(--corpo-topo) 0, var(--foam) 22%, var(--foam) 62%, var(--corpo-base) 100%);
  background-color: var(--foam); background-attachment: scroll; }
html:not([data-area="rede"])[data-theme="dark"] { background: #122f2f; }
/* as emendas acompanham: a faixa de título dissolve no topo do corpo e o rodapé nasce da base */
html:not([data-area="rede"]):not([data-theme="dark"]) :is(.hero, .page-hero) {
  background: linear-gradient(180deg, transparent calc(100% - 110px), var(--corpo-topo) 100%),
    radial-gradient(520px 260px at 92% 0%, rgba(255, 122, 47, .32), transparent 70%),
    var(--bola-art) right -70px bottom -70px/380px auto no-repeat, var(--mare-g); }
html:not([data-area="rede"])[data-theme="dark"] :is(.hero, .page-hero) {
  background: linear-gradient(180deg, transparent calc(100% - 140px), var(--corpo-topo) 100%),
    radial-gradient(520px 260px at 92% 0%, rgba(255, 122, 47, .22), transparent 70%),
    var(--bola-art) right -70px bottom -70px/380px auto no-repeat, var(--mare-noite); }
html:not([data-area="rede"]):not([data-theme="dark"]) .footer { background: linear-gradient(180deg, var(--corpo-base) 0, transparent 56px), var(--mare-g); }
html:not([data-area="rede"])[data-theme="dark"] .footer { background: linear-gradient(180deg, var(--corpo-base) 0, transparent 120px), var(--mare-noite); }
/* Montserrat é mais larga e mais "redonda": títulos um ponto mais fechados e sem o espaçamento negativo forte da Bricolage */
html:not([data-area="rede"]) :is(h1, h2, h3, h4) { letter-spacing: -.015em; }
html:not([data-area="rede"]) :is(.mc3-board b, .score, .ml-score, .wk-team strong, .stat b, td.pts, .lead-val strong, .ll-val, .clock, .hero-facts b) { letter-spacing: -.01em; }
@media (min-width: 881px) and (max-width: 1439px) { html:not([data-area="rede"]) .topbar .nav a { padding: 7px 8px; font-size: 13.5px; } }

/* ===== Montserrat em tudo (nov/2026): uma família só, a hierarquia vem do peso =====
   400 texto · 500 informação secundária · 600 botões, menus, abas, rótulos e cabeçalhos de tabela
   700 títulos · 800 título principal da página, placares e números de destaque (algarismos tabulares)
   itálico só onde o texto é citação ou legenda */
body { font-family: 'Montserrat', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; }
html:not([data-area="rede"]) body { font-weight: 400; }
:is(small, .muted, .mc-sub, .wk-cat, .hn-meta, .crumbs, .lead-who small) { font-weight: 500; }
:is(.btn, .nav a, .tab, .tabs a, .tabs button, .seg button, label, th, .pill, .chip, .mc-cat, .wk-tag) { font-weight: 600; }
:is(h2, h3, h4) { font-weight: 700; }
h1 { font-weight: 800; letter-spacing: -.02em; }
:is(.score, .ml-score, .mc3-board b, .wk-team strong, .stat b, td.pts, .lead-val strong, .ll-val, .clock, .hero-facts b, .cb-score, .amscore) { font-weight: 800; font-variant-numeric: tabular-nums; }
:is(blockquote, figcaption, .news-body blockquote, .legenda, .caption) { font-style: italic; font-weight: 500; }
/* súmula oficial: os campos preenchidos têm caixas fixas do formulário da FIBA; a Montserrat é mais larga que a
   condensada de antes, então o corpo desce ~11% e o espaçamento fecha um pouco para caber */
.ov { font-family: 'Montserrat', 'Arial Narrow', Arial, sans-serif; font-size: calc(6.6 * var(--pt)); letter-spacing: -.02em; }
.ov.sm { font-size: calc(5.9 * var(--pt)); } .ov.big { font-size: calc(8.5 * var(--pt)); }

/* ===== correções no celular (nov/2026) ===== */
/* campos de data no iPhone: o Safari desenha o campo com largura própria (passava da borda) e o texto centralizado */
input[type="date"], input[type="time"], input[type="datetime-local"], input[type="month"] {
  -webkit-appearance: none; appearance: none; display: block; width: 100%; min-width: 0; max-width: 100%; box-sizing: border-box; text-align: left; }
input[type="date"]::-webkit-date-and-time-value, input[type="time"]::-webkit-date-and-time-value,
input[type="datetime-local"]::-webkit-date-and-time-value { text-align: left; margin: 0; }
/* página do campeonato, aba Informações: duas colunas no computador, uma no celular */
.champ-info { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--s5); align-items: start; }
.champ-info dl.info { grid-template-columns: minmax(0, max-content) minmax(0, 1fr); }
.champ-info dl.info dd { min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 760px) {
  .champ-info { grid-template-columns: minmax(0, 1fr); gap: var(--s4); }
  .champ-info dl.info { grid-template-columns: minmax(0, 1fr); row-gap: 2px; }
  .champ-info dl.info dd { margin-bottom: var(--s3); }
}
/* nome da equipe no cartão de jogo: quebra entre palavras, nunca no meio ("MESSEJA NA"); no celular, um ponto menor
   porque a Montserrat é mais larga */
.mc3-name { overflow-wrap: normal; word-break: normal; hyphens: none; }
@media (max-width: 480px) { html:not([data-area="rede"]) .mc3-name { font-size: .8125rem; letter-spacing: -.01em; } }
/* faixa do fim de semana sem a data abaixo do título: jangada, título e "Agenda completa" no cabeçalho;
   no celular numa linha só (jangada + título à esquerda, botão à direita) */
html:not([data-area="rede"]) .wk .wk-head { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; text-align: center; }
html:not([data-area="rede"]) .wk .wk-title { display: block; margin: 0; }
@media (max-width: 760px) {
  html:not([data-area="rede"]) .wk .wk-head { flex-direction: row; justify-content: flex-start; text-align: left; gap: 10px; }
  html:not([data-area="rede"]) .wk .wk-title { font-size: .9375rem; line-height: 1.2; max-width: 9.5em; }
  html:not([data-area="rede"]) .wk .wk-head .btn { margin: 0 0 0 auto; }
}
/* iPhone: a detecção automática de endereço/telefone marcava nomes e números da súmula ("José Rodrigues 68")
   com sublinhado pontilhado; o meta format-detection desliga, e isto neutraliza o que ainda escapar */
a[x-apple-data-detectors] { color: inherit !important; text-decoration: none !important; font: inherit !important; pointer-events: none; }
/* opções de "Adicionar à agenda": uma por linha, alvo de toque grande */
.agenda-opcoes { display: grid; gap: var(--s2); }
.agenda-opcoes .btn { justify-content: center; min-height: 48px; width: 100%; }
/* faixa do fim de semana sem título: no celular, jangada à esquerda e "Agenda completa" à direita, numa linha */
@media (max-width: 760px) { html:not([data-area="rede"]) .wk .wk-head { justify-content: space-between; } }


/* ===== auditoria de acessibilidade + crítica de design (nov/2026) ===== */
/* [1.4.3] laranja como TEXTO: no claro o laranja vivo dava 2,2–2,6:1; passa ao laranja-texto (5,6:1 claro · 6,6:1 escuro) */
html:not([data-area="rede"]) :is(.ll-val, .dr-tag, .dr-nums dd) { color: var(--ball-text); }
/* [1.4.11] foco: laranja sobre fundo claro (2,42:1) e sobre o degradê (1,87:1) reprovava; branco no degradê (≥ 4,85:1),
   azul da marca nos quadros claros (4,73:1); no escuro o --focus já é laranja-claro (8,1:1) */
html:not([data-area="rede"]) :is(.topbar, .hero, .page-hero, .footer, .scoreboard) :focus-visible { outline-color: #fff; }
html:not([data-area="rede"]) :is(.hero-card, .hero-news, .mcard, .wk-card, .card) :focus-visible,
html:not([data-area="rede"]) :is(.mcard.mc3, .jogo-mini, .terms-box, .jersey, .kit-opt, .wk-card):focus-visible { outline-color: var(--focus); }
/* [1.4.3] "Ao vivo" na barra inferior do celular: 4,3 → 5,3:1 */
.cta-movel a.destaque { background: #c81e33; }
/* [1.4.3] saldo negativo na classificação, tema escuro: 2,67 → 6,0:1 */
html:not([data-area="rede"])[data-theme="dark"] .st td.sp.neg-sg { color: #ff8a75; }
/* [1.4.4] texto miúdo: a sigla de 8–9,6 px dentro dos escudos pequenos repetia o nome ao lado (fica a cor da equipe);
   unidades "PTS" de 10 px sobem para 11 px */
.crest.sm:not(.logo) { font-size: 0 !important; }
html:not([data-area="rede"]) .ll-val small { font-size: 11px; }
/* links dentro de texto: sublinhados, para não se confundirem com o texto em volta ("Ver os próximos na mesa") */
html:not([data-area="rede"]) main p:not([class*="hn"]) > a:not(.btn):not([class]) { color: var(--blue-text); text-decoration: underline; text-underline-offset: 2px; }
/* datas do calendário: "qui, 1 de out" → "Qui, 1 de out" (só a primeira letra; o capitalize fazia "De Out De") */
.cal-head h3 { text-transform: none; } .cal-head h3::first-letter { text-transform: uppercase; }
/* mesa: texto do relatório do árbitro cortado por 9 px; quebra em vez de reticências */
.sign-role small { white-space: normal; overflow: visible; text-overflow: clip; }
/* mesa no celular: nome da equipe cortado ("MESSEJAN") — palavra inteira cabe na caixa */
@media (max-width: 480px) { html:not([data-area="rede"]) .mcard.mc-hero .mc3-name { font-size: 14px; letter-spacing: -.01em; } }
/* Movimentação no celular: a etiqueta "nas últimas 24 h" espremia o texto em 166 px; vai para cima dele */
@media (max-width: 600px) { .mov-cab { display: grid; grid-template-columns: minmax(0, 1fr); } .mov-cab .pill { justify-self: start; order: -1; } }
/* admin › categoria: tabelas dos grupos (≈ 720 px) em caixas de 511 px escondiam colunas; um grupo por linha quando não cabem dois */
.adm-main .groups-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 720px), 1fr)); }
/* celular: botão "Menu" do topo com 44 px de altura (era 32) */
@media (max-width: 880px) { .topbar .btn.menu-btn { min-height: 44px; } }

/* ---- hierarquia pelo peso (71–88% do texto estava em seminegrito ou mais) ----
   400 texto · 500 rótulos e informação secundária · 600 nomes, botões, menus · 700 títulos · 800 título da página e números */
html:not([data-area="rede"]) :is(b, strong) { font-weight: 600; }
html:not([data-area="rede"]) :is(label, th, dt, small, .muted, .eyebrow, .adm-eyebrow, .pill, .chip, .wk-tag, .mc-cat, .mc-sub, .crumbs, .hn-meta, .ml-cat, .wk-cat, .mc-venue, .zone-legend, .dr-tag) { font-weight: 500; }
html:not([data-area="rede"]) :is(.tn, .mc3-name, .ll-name, .lead-who b, .wk-team b, .pj-eq b, .ml-t b, .adm-nav-i, .nav a, .btn, .tab, .tabs a, .seg button, .card h3, .card h4) { font-weight: 600; }
html:not([data-area="rede"]) :is(h2, h3) { font-weight: 700; }
html:not([data-area="rede"]) :is(.score, .ml-score, .mc3-board b, .wk-team strong, .stat b, td.pts, .lead-val strong, .ll-val, .clock, .hero-facts b, .cb-score, .amscore, .sb-score, .dr-nums dd, .tok) { font-weight: 800; }

/* ---- admin no celular (até 600 px): no lugar do trilho de ícones sem nome, uma barra no topo com a seção atual;
   tocar abre a lista completa, como antes ---- */
.adm-rail-txt { display: none; }
@media (max-width: 600px) {
  .adm-shell, .adm-shell.adm-livre { grid-template-columns: minmax(0, 1fr); gap: var(--s3); }
  .adm-side:not(.aberto) { position: static; padding: 0; border: 0; background: none; box-shadow: none; max-height: none; overflow: visible; }
  .adm-side:not(.aberto) nav { display: none; }
  .adm-side .adm-rail-btn { display: flex; align-items: center; justify-content: flex-start; gap: 10px; padding: 0 16px; margin: 0; border-radius: 999px; background: var(--mare-g); }
  .adm-rail-txt { display: inline; font: 600 .9375rem/1.2 var(--sans); }
  .adm-side.aberto .adm-rail-btn { margin-bottom: 8px; }
}
/* [2.5.8] área de toque ≥ 24 px nos nomes de atletas das listas e nos links soltos de formulário (a aparência não muda:
   o espaço extra é vertical e transparente) */
a.atl-link, a.esqueci-link, a.rd-link { display: inline-block; padding-block: 4px; min-height: 24px; box-sizing: border-box; }
/* admin no celular: caixas de números em duas colunas (em três, "Campeonatos" quebrava no meio: "Campeo/natos") */
.stats-strip .stat span { overflow-wrap: normal; }
@media (max-width: 480px) { .stats-strip.adm-nums { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.cal-dia::first-letter { text-transform: uppercase; }
/* foco nas faixas em degradê (topo, título, rodapé): a faixa de título termina dissolvendo em azul-claro, então um contorno
   só branco sumiria ali; contorno de duas cores — branco + anel marinho — aparece em qualquer trecho (≥ 4,8:1 num dos dois) */
html:not([data-area="rede"]) :is(.topbar, .hero, .page-hero, .footer, .scoreboard) :focus-visible { outline: 3px solid #fff; outline-offset: 2px; box-shadow: 0 0 0 5px #14213d; }
html:not([data-area="rede"]) :is(.hero-card, .hero-news, .mcard, .wk-card, .card) :focus-visible { box-shadow: none; }
/* pesos que regras antigas mais específicas mantinham altos */
html:not([data-area="rede"]) .mcard :is(.mc-sub, .mc-cat), html:not([data-area="rede"]) .mcard.mc3 .mc-head .mc-sub { font-weight: 500; }
html:not([data-area="rede"]) .mcard .mc3-name, html:not([data-area="rede"]) .mcard.mc3 .mteam .mc3-name { font-weight: 600; }
html:not([data-area="rede"]) .adm-side .adm-nav-i { font-weight: 500; } html:not([data-area="rede"]) .adm-side .adm-nav-i.on { font-weight: 600; }
html:not([data-area="rede"]) .adm-side .adm-nav-t { font-weight: 600; }
html:not([data-area="rede"]) :is(.hn-all, .home-more) { font-weight: 600; }
/* dentro dos quadros brancos que ficam sobre o degradê (notícia, "Mais notícias", cartões): volta o azul da marca */
html:not([data-area="rede"]) :is(.topbar, .hero, .page-hero, .footer) :is(.hero-card, .hero-news, .hn-side, .mcard, .wk-card, .card) :focus-visible,
html:not([data-area="rede"]) :is(.hero, .page-hero) :is(.hero-card, .hero-news, .hn-side, .mcard, .card):focus-visible { outline-color: var(--focus); box-shadow: none; }
/* escala de arbitragem: seletor de fim de semana (sexta a domingo) com setas */
.esc-fds-rot { display: block; font-weight: 500; margin-bottom: 6px; }
.esc-fds-nav { display: flex; align-items: center; gap: 8px; min-height: 44px; }
.esc-fds-nav b { min-width: 9.5em; text-align: center; font-size: var(--t-md); font-variant-numeric: tabular-nums; }
.esc-fds-nav .btn { min-width: 44px; min-height: 44px; padding: 0; }
/* impressão/PDF (escala, súmula, declarações): folha branca, sem o degradê de fundo da página */
@media print { html, html body, html:not([data-area="rede"]) body, html:not([data-area="rede"])[data-theme="dark"] body { background: #fff !important; } }
/* institucional › gestão: um bloco de largura inteira por gestor (como a página de presidente da LNB): nome e cargo em
   cima, texto corrido com linha de leitura confortável (até ~75 caracteres) e a foto à direita com legenda */
.inst-ges { display: grid; gap: var(--s5); }
.ges-art { padding: clamp(18px, 3vw, 32px); display: flow-root; }
.ges-cab { display: flex; align-items: center; gap: 14px; margin-bottom: var(--s3); }
.ges-cab h3 { margin: 0; font-size: clamp(1.25rem, 2.2vw, 1.5rem); }
.ges-cab .inst-av { width: 56px; height: 56px; border-radius: 14px; font-size: 1.125rem; }
.ges-art .inst-cargo { margin: 2px 0 0; color: var(--ball-text); font-weight: 600; }
.ges-art p { max-width: 75ch; margin: 0 0 var(--s3); font-size: 1rem; line-height: 1.7; color: var(--ink-2); }
.ges-foto { float: right; width: min(38%, 340px); margin: 0 0 var(--s3) var(--s5); }
.ges-foto img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--r2); display: block; }
.ges-foto figcaption { margin-top: 6px; font-size: .8125rem; color: var(--ink-3); }
@media (max-width: 640px) { .ges-foto { float: none; width: 100%; margin: 0 0 var(--s3); } .ges-foto img { aspect-ratio: 4 / 3; } }
.inst-ges { grid-template-columns: minmax(0, 1fr); }
.inst-ges .ges-foto img { width: 100%; height: auto; border-radius: var(--r2); margin: 0; }
.ges-foto figcaption { font-style: normal; }
/* institucional › estrutura organizacional: os núcleos lado a lado (três colunas no computador, uma no celular) */
.inst-estrutura { max-width: none; }
.inst-estrutura > p { max-width: 75ch; }
.inst-nucleos { list-style: none; margin: var(--s4) 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: var(--s4); align-items: stretch; }
.inst-nucleos > li { padding: 20px; display: flex; flex-direction: column; gap: 10px; border-top: 3px solid var(--bola); }
.inst-nucleos h3 { margin: 0; font-size: 1.125rem; }
.inst-nucleos p { margin: 0; font-size: .9375rem; line-height: 1.6; color: var(--ink-2); }
.inst-pessoas { list-style: none; margin: auto 0 0; padding: 10px 0 0; border-top: 1px solid var(--line-2); display: flex; flex-wrap: wrap; gap: 6px; }
.inst-pessoas li { padding: 4px 10px; border-radius: 999px; background: var(--mare-g-soft); color: var(--ink); font-size: .875rem; font-weight: 500; }
/* institucional › equipes: nome inteiro (até 3 linhas, sem "…"), escudo menor; no celular duas colunas com o escudo em cima */
.inst-eqs a { grid-template-columns: 56px minmax(0, 1fr); }
.inst-eqs a > .crest.logo { width: 56px; min-width: 56px; height: 48px; } .inst-eqs a > .crest.logo img { max-width: 56px; max-height: 48px; }
.inst-eqs a > .crest:not(.logo) { --s: 44px; }
.inst-eqs a > span:not(.crest) b { -webkit-line-clamp: 3; overflow-wrap: normal; hyphens: auto; font-weight: 600; }
@media (max-width: 600px) {
  .inst-eqs { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .inst-eqs a { grid-template-columns: minmax(0, 1fr); justify-items: center; text-align: center; gap: 6px; padding: 12px 8px; }
  .inst-eqs a > span:not(.crest) { align-items: center; }
  .inst-eqs a > span:not(.crest) b { font-size: .8125rem; }
}
/* menu de atalhos da página em peso médio (o negrito fica nos títulos) */
.inst-nav a, .inst-nav button { font-weight: 500; }
.inst-eqs a > span:not(.crest) b { -webkit-line-clamp: 4; }
.inst-eqs a > span:not(.crest) b { hyphens: manual; }
@media (min-width: 601px) { .inst-eqs { grid-template-columns: repeat(auto-fill, minmax(min(100%, 270px), 1fr)); } }
/* núcleos da estrutura: setor em negrito com filete laranja, divisões entre descrição e integrantes, nomes em negrito um por linha */
.inst-nucleos > li { gap: 0; padding: 0; overflow: hidden; border-top: 0; }
.inst-nucleos h3 { font-weight: 700; font-size: 1.125rem; padding: 18px 20px 14px; border-bottom: 1px solid var(--line-2); position: relative; }
.inst-nucleos h3::after { content: ""; position: absolute; left: 20px; bottom: -1px; width: 40px; height: 3px; border-radius: 3px; background: var(--bola); }
.inst-nucleos p { padding: 14px 20px; }
.inst-integ { margin-top: auto; padding: 14px 20px 18px; border-top: 1px solid var(--line-2); background: color-mix(in srgb, var(--ceu) 4%, transparent); }
.inst-integ-t { display: block; margin-bottom: 8px; font-size: .75rem; font-weight: 600; color: var(--ink-3); }
.inst-pessoas { margin: 0; padding: 0; border: 0; display: grid; gap: 0; }
.inst-pessoas li { padding: 7px 0; border-radius: 0; background: none; border-bottom: 1px solid var(--line-2); font-size: .9375rem; font-weight: 600; color: var(--ink); display: flex; align-items: center; gap: 10px; }
.inst-pessoas li:last-child { border-bottom: 0; }
.inst-pessoas li::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--bola); flex: none; }
/* foto do gestor levemente ampliada dentro da moldura: apara ~2% das bordas, onde fotos recortadas de captura de tela
   costumam trazer filetes pretos (a do Tancredo tem 4 px no topo) */
.ges-foto { overflow: hidden; border-radius: var(--r2); }
.ges-foto img { transform: scale(1.04); transform-origin: center 40%; }

/* organograma/foto da estrutura: enquanto carrega, o quadro fica na cor da página (antes um retângulo branco no tema escuro) */
.inst-organo { background: var(--foam-2); }
/* administração › usuários: cada acesso numa linha, ações agrupadas; bloqueado esmaecido */
.user-list { list-style: none; margin: 8px 0 0; padding: 0; }
.user-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 12px 0; border-bottom: 1px solid var(--line-2); }
.user-row:last-child { border-bottom: 0; }
.user-row .grow { flex: 1 1 180px; min-width: 0; } .user-row .grow .small { overflow-wrap: anywhere; }
.user-acoes { display: flex; flex-wrap: wrap; gap: 6px; width: 100%; }
.user-row.bloq .grow { opacity: .6; }

/* ===== Rede ASPAB › Ideias e melhorias: quadro por etapa ===== */
.id-barra { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.id-filtros { display: flex; flex-wrap: wrap; gap: 12px; flex: 1 1 420px; } .id-filtros .field { margin: 0; flex: 1 1 180px; }
.id-vazio p { margin: 0; line-height: 1.6; }
.id-quadro { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(260px, 1fr); gap: 14px; overflow-x: auto; padding-bottom: 8px; align-items: start; scroll-snap-type: x proximity; }
.id-col { background: color-mix(in srgb, var(--qv-quadra, #1f5fbf) 5%, var(--qv-fundo, #f3f6fb)); border: 1px solid var(--qv-linha, #dfe5ee); border-radius: 14px; padding: 12px; scroll-snap-align: start; }
.id-col h3 { display: flex; align-items: center; gap: 8px; margin: 0 0 10px; font-size: .9375rem; font-weight: 700; }
.id-col.st-aprovada h3, .id-col.st-andamento h3 { color: var(--qv-quadra, #1f5fbf); } .id-col.st-concluida h3 { color: #1d7343; } .id-col.st-descartada { opacity: .75; }
.id-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.id-card { background: var(--qv-papel, #fff); border: 1px solid var(--qv-linha, #dfe5ee); border-left: 4px solid var(--qv-linha, #dfe5ee); border-radius: 12px; box-shadow: var(--qv-sombra-1); }
.id-card.prio-alta { border-left-color: var(--qv-bola, #e8731a); } .id-card.prio-media { border-left-color: var(--qv-quadra, #1f5fbf); }
.id-abre { display: grid; gap: 6px; width: 100%; padding: 12px 12px 8px; border: 0; background: none; text-align: left; color: inherit; font: inherit; cursor: pointer; border-radius: 12px 12px 0 0; }
.id-abre:hover .id-tit { text-decoration: underline; }
.id-meta { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.id-tipo { font-size: .75rem; font-weight: 600; padding: 2px 8px; border-radius: 999px; background: #e8f0fd; color: #1a4fa0; }
.id-tipo.t-evento { background: #fff1e6; color: #a94b0a; } .id-tipo.t-procedimento { background: #e6f6ef; color: #1d7343; } .id-tipo.t-processo { background: #f1eafc; color: #5b3aa0; }
.id-alta { font-size: .75rem; font-weight: 600; color: #a94b0a; }
.id-tit { font-size: .9375rem; font-weight: 700; line-height: 1.3; }
.id-desc { font-size: .8125rem; color: var(--qv-tinta-2, #3a4763); line-height: 1.45; }
.id-resp { font-size: .75rem; color: var(--qv-tinta-3, #56627d); display: inline-flex; align-items: center; gap: 4px; } .id-resp svg { width: 13px; height: 13px; }
.id-card footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 6px 12px 10px; }
.id-apoio { min-height: 32px; padding: 4px 10px; border: 1px solid var(--qv-linha, #dfe5ee); border-radius: 999px; background: var(--qv-papel, #fff); font-family: inherit; font-size: .8125rem; font-weight: 600; line-height: 1; white-space: nowrap; color: var(--qv-tinta-2, #3a4763); cursor: pointer; flex: none; }
.id-apoio.on { background: var(--qv-quadra, #1f5fbf); border-color: var(--qv-quadra, #1f5fbf); color: #fff; }
.id-nada { margin: 4px 2px; }
.id-h { margin: 14px 0 4px; font-size: .875rem; font-weight: 700; }
.id-coments { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; } .id-coments li { padding: 10px 12px; border-radius: 10px; background: var(--qv-fundo, #f3f6fb); } .id-coments p { margin: 4px 0 0; }
.id-novo-com { margin-top: 12px; }
@media (max-width: 700px) { .id-quadro { grid-auto-columns: 86%; } }

/* ===== súmula online: as duas equipes lado a lado (A à esquerda, B à direita) =====
   Antes, no tablet (até 1280 px) os painéis ficavam um embaixo do outro e era preciso rolar para lançar da outra
   equipe. A partir de 700 px de largura: duas colunas, cada uma com cabeçalho (nome, faltas, camisa), botões do
   time em 2×2, quem está em quadra e o banco. No celular (< 700 px) continuam empilhadas, porque não cabem. */
@media (min-width: 700px) {
  html[data-tela="mesa"] .court, .court { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px; }
  html[data-tela="mesa"] .court-side { display: block; padding: 6px 6px 8px; }
  html[data-tela="mesa"] .court-side > header { margin: 0 0 6px; }
  html[data-tela="mesa"] .court-side > .team-ops { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin: 6px 0 0; }
  html[data-tela="mesa"] .jerseys, html[data-tela="mesa"] .jerseys.on-court { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 4px; }
  html[data-tela="mesa"] .jerseys.bench { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 4px; margin-top: 4px; }
  html[data-tela="mesa"] .jersey { min-height: 52px; padding: 3px 2px 4px; }
  html[data-tela="mesa"] .jersey b { font-size: 1.375rem; }
  html[data-tela="mesa"] .jersey span { font-size: .6875rem; }
  html[data-tela="mesa"] .jerseys.bench .jersey { min-height: 40px; } html[data-tela="mesa"] .jerseys.bench .jersey b { font-size: 1.05rem; }
  html[data-tela="mesa"] .tbtn { min-height: 44px; font-size: 12px; padding: 2px 6px; }
  html[data-tela="mesa"] .jz-label { display: block; }
}
