/* ============ HIGH TECH — Festival Estadual · identidade ============ */
:root {
    --bg: #0B0F0A; --bg2: #10160F; --panel: #141C13; --line: color-mix(in srgb, var(--lime) 18%, transparent); --line2: rgba(255,255,255,.08);
    --lime: #B0F028; --lime2: color-mix(in srgb, var(--lime) 82%, #fff); --lime-dim: color-mix(in srgb, var(--lime) 12%, transparent);
    --text: #E6EDE2; --muted: #93A38E; --white: #fff;
    --games: #B0F028; --robo: #5AE0FF; --expo: #FFB84A; --batalha: #FF5A7A; --cosplay: #C77DFF;
    --head: 'Orbitron', 'Rajdhani', system-ui, sans-serif; --sub: 'Rajdhani', system-ui, sans-serif; --body: 'Inter', system-ui, -apple-system, sans-serif;
    --r: 16px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--bg); color: var(--text); font-family: var(--body); line-height: 1.6; -webkit-font-smoothing: antialiased; }
body::before { content: ""; position: fixed; inset: 0; pointer-events: none; z-index: 0; background-image: linear-gradient(color-mix(in srgb, var(--lime) 5%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--lime) 5%, transparent) 1px, transparent 1px); background-size: 48px 48px; mask-image: radial-gradient(70% 60% at 50% 0%, #000 30%, transparent 100%); }
a { color: inherit; text-decoration: none; } img { max-width: 100%; display: block; }
h1, h2, h3 { margin: 0; color: var(--white); font-family: var(--head); line-height: 1.12; letter-spacing: -.01em; text-transform: uppercase; }
h2 { font-size: clamp(1.5rem, 3.4vw, 2.3rem); } h3 { font-size: 1.05rem; }
h2 em { font-style: normal; color: var(--lime); }
p { margin: 0; }
.wrap { max-width: 1180px; margin: 0 auto; padding: 0 24px; position: relative; z-index: 1; }
.muted { color: var(--muted); } .small { font-size: .82rem; }
.eyebrow { display: inline-flex; align-items: center; gap: .5rem; font-family: var(--sub); font-weight: 700; letter-spacing: .18em; text-transform: uppercase; font-size: .78rem; color: var(--lime); margin-bottom: .8rem; }
.eyebrow::before { content: ""; width: 26px; height: 2px; background: var(--lime); box-shadow: 0 0 10px var(--lime); }
.speed { position: relative; } .speed::after { content: ""; position: absolute; left: -60px; top: 50%; width: 46px; height: 12px; background: repeating-linear-gradient(180deg, var(--lime) 0 2px, transparent 2px 5px); opacity: .8; transform: translateY(-50%); }

/* botões */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; padding: .9rem 1.5rem; border-radius: 10px; font-family: var(--sub); font-weight: 700; font-size: 1.02rem; letter-spacing: .08em; text-transform: uppercase; border: 2px solid var(--lime); cursor: pointer; transition: transform .15s, box-shadow .15s, background .15s; clip-path: polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px); }
.btn-solid { background: var(--lime); color: #0B0F0A; } .btn-solid:hover { background: var(--lime2); transform: translateY(-2px); box-shadow: 0 10px 30px color-mix(in srgb, var(--lime) 35%, transparent); }
.btn-outline { background: transparent; color: var(--lime); } .btn-outline:hover { background: var(--lime-dim); }
.btn-sm { padding: .55rem 1rem; font-size: .88rem; } .btn-block { width: 100%; }

/* topo */
.top { position: sticky; top: 0; z-index: 50; background: rgba(11,15,10,.92); backdrop-filter: blur(12px); border-bottom: 1px solid var(--line); }
.nav { display: flex; align-items: center; gap: 1.2rem; height: 74px; }
.brand img { height: 58px; width: auto; }
.menu { display: flex; gap: 1.1rem; margin-left: auto; font-family: var(--sub); font-weight: 600; font-size: 1rem; letter-spacing: .04em; text-transform: uppercase; }
.menu a { padding: .3rem 0; border-bottom: 2px solid transparent; } .menu a:hover, .menu a.active { color: var(--lime); border-color: var(--lime); }
.menu .drop { position: relative; } .menu .drop > a::after { content: " ▾"; font-size: .8em; }
.menu .drop-list { display: none; position: absolute; top: 100%; left: 0; background: var(--panel); border: 1px solid var(--line); border-radius: 12px; padding: .5rem; min-width: 240px; box-shadow: 0 20px 50px rgba(0,0,0,.5); }
.menu .drop:hover .drop-list, .menu .drop.open .drop-list { display: grid; }
.menu .drop-list a { padding: .55rem .8rem; border-radius: 8px; border: 0; display: flex; gap: .6rem; align-items: center; text-transform: none; letter-spacing: 0; font-family: var(--body); font-weight: 500; font-size: .95rem; }
.menu .drop-list a:hover { background: var(--lime-dim); color: var(--white); }
.dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; box-shadow: 0 0 8px currentColor; }
.burger { display: none; background: none; border: 1px solid var(--line); color: #fff; border-radius: 8px; padding: .3rem .6rem; font-size: 1.3rem; margin-left: auto; }

/* hero home */
.hero { position: relative; overflow: hidden; padding: 3.5rem 0 3rem; background: radial-gradient(60% 70% at 25% 30%, color-mix(in srgb, var(--lime) 18%, transparent), transparent 60%), radial-gradient(40% 60% at 85% 70%, rgba(90,224,255,.10), transparent 60%); }
.hero-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 2rem; align-items: center; }
.hero-logo { width: min(520px, 90%); filter: drop-shadow(0 0 30px color-mix(in srgb, var(--lime) 35%, transparent)); }
.hero-tag { font-family: var(--sub); font-size: 1.25rem; letter-spacing: .22em; text-transform: uppercase; color: var(--text); margin: 1rem 0 1.4rem; }
.hero-tag b { color: var(--lime); }
.pills { display: flex; gap: .6rem; flex-wrap: wrap; margin-bottom: 1.6rem; }
.pill { border: 1px solid var(--line); background: rgba(255,255,255,.04); border-radius: 999px; padding: .45rem .95rem; font-family: var(--sub); font-weight: 600; letter-spacing: .06em; text-transform: uppercase; font-size: .9rem; }
.pill b { color: var(--lime); }
.cta-row { display: flex; gap: .8rem; flex-wrap: wrap; }
.mascot-wrap { position: relative; display: flex; justify-content: center; }
.mascot { width: min(420px, 100%); filter: drop-shadow(0 30px 40px rgba(0,0,0,.6)) drop-shadow(0 0 40px color-mix(in srgb, var(--lime) 25%, transparent)); animation: float 5s ease-in-out infinite; }
@keyframes float { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-14px) } }
.mascot-ring { position: absolute; bottom: 8%; left: 50%; transform: translateX(-50%); width: 70%; height: 40px; border-radius: 50%; background: radial-gradient(ellipse, color-mix(in srgb, var(--lime) 40%, transparent), transparent 70%); filter: blur(6px); }
.countdown { display: grid; grid-template-columns: repeat(4, 1fr); gap: .6rem; max-width: 460px; margin-top: 1.8rem; }
.countdown div { background: var(--panel); border: 1px solid var(--line); border-radius: 12px; padding: .6rem .4rem; text-align: center; }
.countdown b { display: block; font-family: var(--head); font-size: 1.6rem; color: var(--lime); } .countdown span { font-family: var(--sub); font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }

/* seções */
.sec { padding: 4.5rem 0; } .sec-alt { background: var(--bg2); border-top: 1px solid var(--line2); border-bottom: 1px solid var(--line2); }
.sec-head { margin-bottom: 2rem; max-width: 760px; } .sec-head p { color: var(--muted); margin-top: .6rem; }
.grid3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: 1.4rem; }
.grid2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 1.4rem; }
.card { background: var(--panel); border: 1px solid var(--line2); border-radius: var(--r); padding: 1.7rem; transition: transform .2s, border-color .2s; position: relative; overflow: hidden; }
.card:hover { transform: translateY(-3px); border-color: var(--line); }
.card p { color: var(--text); font-size: .95rem; }

/* modalidades */
.mods { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 1.2rem; }
.mod { --c: var(--lime); background: var(--panel); border: 1px solid var(--line2); border-top: 4px solid var(--c); border-radius: var(--r); padding: 1.6rem 1.4rem; display: flex; flex-direction: column; gap: .5rem; transition: transform .2s, box-shadow .2s; }
.mod:hover { transform: translateY(-4px); box-shadow: 0 16px 40px rgba(0,0,0,.45), 0 0 0 1px var(--c); }
.mod .ic { font-size: 2rem; } .mod h3 { color: var(--c); font-size: 1.05rem; } .mod p { font-size: .9rem; color: var(--text); flex: 1; }
.mod .go { font-family: var(--sub); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; font-size: .85rem; color: var(--c); margin-top: .4rem; }

/* programação */
.tabs { display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: 1.4rem; }
.tab { --c: var(--lime); border: 1px solid var(--line2); background: var(--panel); color: var(--text); border-radius: 999px; padding: .55rem 1rem; font-family: var(--sub); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; font-size: .88rem; cursor: pointer; display: inline-flex; gap: .5rem; align-items: center; }
.tab.active { background: var(--c); color: #0B0F0A; border-color: var(--c); }
.days { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1.2rem; }
.day { background: var(--panel); border: 1px solid var(--line2); border-radius: var(--r); overflow: hidden; }
.day-h { padding: .9rem 1.2rem; border-bottom: 1px solid var(--line2); font-family: var(--head); font-size: .95rem; color: var(--white); display: flex; justify-content: space-between; align-items: baseline; }
.day-h span { font-family: var(--sub); color: var(--muted); font-size: .85rem; letter-spacing: .08em; text-transform: uppercase; }
.slot { --c: var(--lime); display: grid; grid-template-columns: 62px 1fr; gap: .8rem; padding: .8rem 1.2rem; border-bottom: 1px solid var(--line2); border-left: 3px solid var(--c); }
.slot:last-child { border-bottom: 0; }
.slot time { font-family: var(--head); font-size: .85rem; color: var(--c); }
.slot b { display: block; color: var(--white); font-size: .95rem; } .slot small { color: var(--muted); }
.empty { padding: 1.2rem; color: var(--muted); font-size: .9rem; }

/* notícias */
.news { display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: 1.4rem; }
.news article { background: var(--panel); border: 1px solid var(--line2); border-radius: var(--r); overflow: hidden; display: flex; flex-direction: column; }
.news .cover { aspect-ratio: 16/9; background: linear-gradient(135deg, color-mix(in srgb, var(--lime) 25%, transparent), color-mix(in srgb, var(--lime) 6%, transparent)), var(--bg2); display: grid; place-items: center; font-size: 2.2rem; }
.news .cover img { width: 100%; height: 100%; object-fit: cover; }
.news .body { padding: 1.2rem 1.3rem 1.4rem; display: flex; flex-direction: column; gap: .4rem; flex: 1; }
.news time { font-family: var(--sub); font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; color: var(--lime); }
.news h3 { font-family: var(--body); text-transform: none; letter-spacing: 0; font-size: 1.05rem; font-weight: 700; }
.news p { color: var(--muted); font-size: .92rem; flex: 1; }
.news .tag-mod { --c: var(--lime); font-family: var(--sub); font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; color: var(--c); }

/* faq */
details { background: var(--panel); border: 1px solid var(--line2); border-radius: 12px; padding: 1rem 1.3rem; margin-bottom: .8rem; }
summary { cursor: pointer; font-family: var(--sub); font-weight: 700; font-size: 1.08rem; color: var(--white); list-style: none; display: flex; justify-content: space-between; gap: 1rem; }
summary::after { content: "+"; color: var(--lime); font-weight: 800; } details[open] summary::after { content: "–"; }
details p { margin-top: .6rem; color: var(--text); font-size: .95rem; }

/* localização */
.map-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: 1.6rem; align-items: stretch; }
.map { border: 1px solid var(--line2); border-radius: var(--r); overflow: hidden; min-height: 320px; background: var(--panel); }
.map iframe { width: 100%; height: 100%; min-height: 320px; border: 0; filter: grayscale(.2) contrast(1.05); }
.info-list { list-style: none; padding: 0; margin: 1rem 0 0; display: grid; gap: .8rem; }
.info-list li { display: grid; grid-template-columns: 32px 1fr; gap: .8rem; align-items: start; } .info-list span { font-size: 1.3rem; }
.info-list b { display: block; color: var(--white); font-family: var(--sub); letter-spacing: .04em; text-transform: uppercase; font-size: .9rem; }

/* contato */
.form { background: var(--panel); border: 1px solid var(--line2); border-radius: var(--r); padding: 1.6rem; display: grid; gap: .9rem; }
.form label { display: grid; gap: .3rem; font-family: var(--sub); font-size: .9rem; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.form input, .form select, .form textarea { font: inherit; font-family: var(--body); color: #fff; background: var(--bg); border: 1px solid var(--line2); border-radius: 10px; padding: .75rem .85rem; }
.form input:focus, .form select:focus, .form textarea:focus { outline: none; border-color: var(--lime); box-shadow: 0 0 0 3px var(--lime-dim); }
.f-row { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem; } .form .err { border-color: #FF5A7A !important; }
.contact-list { list-style: none; padding: 0; margin: 1rem 0 0; display: grid; gap: .6rem; }
.contact-list a { color: var(--lime); } .contact-list span { display: inline-block; min-width: 100px; font-family: var(--sub); letter-spacing: .08em; text-transform: uppercase; font-size: .8rem; color: var(--muted); }

/* páginas de modalidade */
.mod-hero { --c: var(--lime); position: relative; overflow: hidden; padding: 3.5rem 0 3rem; background: radial-gradient(60% 80% at 20% 30%, color-mix(in srgb, var(--c) 22%, transparent), transparent 60%); border-bottom: 1px solid var(--line2); }
.mod-hero .eyebrow { color: var(--c); } .mod-hero .eyebrow::before { background: var(--c); box-shadow: 0 0 10px var(--c); }
.mod-hero h1 { font-size: clamp(2rem, 5vw, 3.4rem); } .mod-hero h1 em { font-style: normal; color: var(--c); }
.mod-hero .lead { font-size: 1.15rem; max-width: 620px; margin: 1rem 0 1.6rem; color: var(--text); }
.mod-hero .btn-solid { background: var(--c); border-color: var(--c); } .mod-hero .btn-outline { color: var(--c); border-color: var(--c); }
.mod-hero-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 2rem; align-items: center; }
.mod-hero .mascot { width: min(300px, 80%); }
.rules { list-style: none; padding: 0; margin: 0; display: grid; gap: .7rem; counter-reset: r; }
.rules li { display: grid; grid-template-columns: 40px 1fr; gap: .8rem; align-items: start; background: var(--panel); border: 1px solid var(--line2); border-radius: 12px; padding: .9rem 1.1rem; }
.rules li::before { counter-increment: r; content: counter(r, decimal-leading-zero); font-family: var(--head); color: var(--lime); font-size: .9rem; padding-top: .15rem; }
.prize { --c: var(--lime); background: linear-gradient(135deg, color-mix(in srgb, var(--c) 18%, var(--panel)), var(--panel)); border: 1px solid var(--line2); border-radius: var(--r); padding: 1.6rem; }
.prize b { font-family: var(--head); font-size: 1.6rem; color: var(--c); display: block; }
.strip { background: var(--lime); color: #0B0F0A; padding: 1.2rem 0; font-family: var(--sub); font-weight: 700; letter-spacing: .14em; text-transform: uppercase; overflow: hidden; white-space: nowrap; }
.strip .wrap { display: flex; gap: 3rem; animation: marquee 30s linear infinite; width: max-content; padding: 0; }
@keyframes marquee { from { transform: translateX(0) } to { transform: translateX(-50%) } }

/* rodapé */
.foot { border-top: 1px solid var(--line2); background: #070A06; padding: 2.6rem 0 1.4rem; font-size: .92rem; }
.foot-grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 2rem; }
.foot img { height: 40px; margin-bottom: .8rem; } .foot p { color: var(--muted); max-width: 300px; }
.foot h4 { margin: 0 0 .6rem; font-family: var(--sub); letter-spacing: .12em; text-transform: uppercase; color: var(--lime); font-size: .85rem; }
.foot a { display: block; padding: .2rem 0; color: var(--text); } .foot a:hover { color: var(--lime); }
.foot-bottom { margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--line2); color: var(--muted); font-size: .8rem; display: flex; justify-content: space-between; flex-wrap: wrap; gap: .5rem; }
.wa-float { position: fixed; right: 18px; bottom: 18px; background: #25D366; color: #fff; border-radius: 999px; padding: .8rem 1.1rem .8rem .9rem; display: inline-flex; align-items: center; gap: .6rem; font-weight: 700; box-shadow: 0 8px 24px rgba(0,0,0,.45); z-index: 60; }

@media (max-width: 960px) {
    .hero-grid, .mod-hero-grid, .map-grid { grid-template-columns: 1fr; }
    .foot-grid { grid-template-columns: 1fr 1fr; }
    .menu { display: none; position: absolute; top: 74px; left: 0; right: 0; background: var(--bg); border-bottom: 1px solid var(--line); flex-direction: column; gap: .6rem; padding: 1rem 24px; }
    .menu.open { display: flex; } .menu .drop-list { position: static; display: grid; box-shadow: none; padding-left: .8rem; }
    .burger { display: block; } .nav .btn { display: none; }
    .f-row { grid-template-columns: 1fr; } .mascot-wrap { order: -1; } .mascot { width: min(300px, 70%); }
    .wa-float span { display: none; } .wa-float { padding: .9rem; }
}

/* hero art das modalidades (ilustrações próprias, sem repetir o mascote) */
.hero-art-wrap { display: flex; justify-content: center; }
.hero-art { width: min(520px, 100%); height: auto; animation: float 6s ease-in-out infinite; filter: drop-shadow(0 20px 40px rgba(0,0,0,.6)); }
@media (max-width: 960px) { .hero-art-wrap { order: -1; } .hero-art { width: min(360px, 85%); } }

/* Páginas de modalidade: a cor da modalidade vira o tema da página inteira (var --lime redefinida no <body>); logo em branco */
.mod-page .brand img, .mod-page .foot img { filter: brightness(0) invert(1); }
.mod-page .mod-hero { --c: var(--lime); }
.mod-page .slot { --c: var(--lime); }

/* Realização */
.realizacao { padding: 3rem 0 3.4rem; border-top: 1px solid var(--line2); background: var(--bg2); }
.real-logos { display: flex; gap: 1.4rem; flex-wrap: wrap; align-items: stretch; margin-top: .4rem; }
.real-tile { display: flex; align-items: center; justify-content: center; padding: .6rem .9rem; border-radius: 14px; border: 1px solid var(--line2); background: var(--panel); transition: transform .2s, border-color .2s; }
.real-tile:hover { transform: translateY(-2px); border-color: var(--line); }
.real-tile img { height: 96px; width: auto; max-width: 100%; object-fit: contain; }  /* arquivo original inteiro, sem recorte */
. { background: #fff; border-color: #fff; }
@media (max-width: 600px) { .real-tile { flex: 1 1 100%; padding: .5rem .7rem; } .real-tile img { height: 78px; } }
.hero-slogan { font-size: clamp(1.3rem, 2.6vw, 1.9rem); margin: 1.2rem 0 .4rem; color: var(--white); text-transform: uppercase; }
.hero-slogan::first-letter { color: var(--lime); }
.hero-tag { font-size: 1rem; margin: .2rem 0 1.4rem; }
.mods { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }

/* ============ sistema: adições (mantêm a identidade visual) ============ */
.flash { position: relative; z-index: 2; padding: .8rem 0; font-weight: 600; border-bottom: 1px solid var(--line2); }
.flash-ok { background: color-mix(in srgb, var(--lime) 16%, var(--bg)); color: var(--white); }
.flash-error { background: #3a1216; color: #ffd6db; } .flash-warn { background: #3a2a10; color: #ffe2b0; }
.flash-inline { padding: .8rem 1rem; border-radius: 10px; margin: .8rem 0; } .flash-inline.err { background: #3a1216; border: 1px solid #7a2630; color: #ffd6db; }
.narrow { max-width: 860px; } .btn-link { background: none; border: 0; color: var(--lime); cursor: pointer; font: inherit; padding: 0; text-decoration: underline; text-underline-offset: 3px; }
.page-title { font-size: clamp(1.5rem, 3.6vw, 2.3rem); margin: .4rem 0 .6rem; } .lead-p { font-size: 1.1rem; color: var(--muted); margin-bottom: 1rem; }
.rich { color: var(--text); } .rich p, .rich ul, .rich ol, .rich table, .rich h3, .rich h4, .rich figure { margin: 0 0 1rem; } .rich a { color: var(--lime); text-decoration: underline; } .rich img { border-radius: 10px; margin: 1rem 0; height: auto; }
.rich h2, .rich h3, .rich h4 { font-size: 1.05rem; margin-top: 1.6rem; color: var(--lime); } .rich table { border-collapse: collapse; width: 100%; } .rich td, .rich th { border: 1px solid var(--line2); padding: .45rem .6rem; }
.legal { background: var(--panel); border: 1px solid var(--line2); border-radius: var(--r); padding: clamp(1rem, 3vw, 2rem); }
.news-hero { width: 100%; border-radius: var(--r); margin: 1rem 0 1.4rem; }
.embed { position: relative; aspect-ratio: 16 / 9; margin-top: 1rem; border-radius: 12px; overflow: hidden; background: #000; } .embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.sched-filters { display: flex; flex-wrap: wrap; gap: .8rem; align-items: flex-end; margin-bottom: 1.2rem; }
.sched-filters label { display: flex; flex-direction: column; gap: .25rem; font-family: var(--sub); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; font-size: .78rem; color: var(--muted); }
.sched-filters select, .form input[type=file] { background: var(--panel); color: var(--text); border: 1px solid var(--line2); border-radius: 10px; padding: .6rem .8rem; font: inherit; min-width: 200px; }
.slot time small { display: block; font-size: .72rem; color: var(--muted); } .slot.is-break { opacity: .65; } .slot.is-hl b { color: var(--lime); } .slot.is-cancel b { text-decoration: line-through; }
.slot-desc { display: block; margin-top: .2rem; } .tag-cancel { font-style: normal; color: #ff8a95; font-size: .75rem; }
.period { font-family: var(--sub); font-weight: 700; letter-spacing: .04em; color: #ffcf7a; } .period.is-open { color: var(--lime); }
.doc-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1rem; } .group-title { margin: 1.6rem 0 .8rem; font-size: 1rem; color: var(--lime); }
.doc-list { margin: .6rem 0 0; padding-left: 1.2rem; } .doc-list li { margin: .35rem 0; }
.tbl-scroll { overflow-x: auto; } .tbl { width: 100%; border-collapse: collapse; font-size: .95rem; } .tbl th, .tbl td { text-align: left; padding: .55rem .7rem; border-bottom: 1px solid var(--line2); vertical-align: top; }
.tbl th { font-family: var(--sub); letter-spacing: .05em; text-transform: uppercase; font-size: .8rem; color: var(--muted); } .tbl.kv th { width: 34%; } .tbl.res td b { color: var(--white); } .tbl .tot td { font-weight: 700; color: var(--lime); }
.res-h { font-size: 1.05rem; margin: 2rem 0 .8rem; } code { font-family: ui-monospace, Consolas, monospace; font-size: .85em; } .wrap-code { word-break: break-all; }
.badge { display: inline-flex; gap: .4rem; align-items: center; padding: .3rem .75rem; border-radius: 999px; font-family: var(--sub); font-weight: 700; letter-spacing: .05em; text-transform: uppercase; font-size: .82rem; background: rgba(255,255,255,.08); border: 1px solid var(--line2); }
.badge.st-habilitada, .badge.st-selecionada, .badge.st-homologada, .badge.st-classificada, .badge.tx-ao_vivo { background: var(--lime-dim); color: var(--lime); border-color: var(--line); }
.badge.st-inabilitada, .badge.st-cancelada, .badge.st-nao_selecionada, .badge.st-desistente { background: #3a1216; color: #ff9aa5; } .badge.st-pendencia_documental, .badge.st-suplente { background: #3a2a10; color: #ffcf7a; }
.live-dot { width: 10px; height: 10px; border-radius: 50%; background: #ff3b4e; box-shadow: 0 0 0 0 rgba(255,59,78,.7); animation: pulse 1.6s infinite; display: inline-block; } @keyframes pulse { 70% { box-shadow: 0 0 0 10px rgba(255,59,78,0); } 100% { box-shadow: 0 0 0 0 rgba(255,59,78,0); } }
.live-banner { padding: 1rem 0 0; } .live-card { display: flex; gap: .7rem; align-items: center; background: var(--panel); border: 1px solid var(--line); border-radius: var(--r); padding: 1rem 1.3rem; font-family: var(--sub); font-weight: 700; letter-spacing: .05em; text-transform: uppercase; } .live-card .go { margin-left: auto; color: var(--lime); }
.tx-card { margin-bottom: 1rem; } .tx-h { display: flex; gap: 1rem; justify-content: space-between; align-items: center; flex-wrap: wrap; }
.soon { text-align: center; padding: 2.4rem; } .mod-card .pills { margin: .2rem 0 .6rem; }
/* formulário de inscrição */
.form-wrap .form { gap: 0; } .fsec { border: 1px solid var(--line2); background: var(--panel); border-radius: var(--r); padding: 1.3rem clamp(1rem, 3vw, 1.8rem) 1.5rem; margin: 0 0 1.2rem; min-width: 0; }
.fsec > legend { font-family: var(--head); text-transform: uppercase; color: var(--lime); font-size: .95rem; padding: 0 .5rem; }
.fsec-desc { color: var(--muted); margin-bottom: .8rem; } .ff { margin: .9rem 0; } .ff > label, .ff .flabel { display: block; font-weight: 600; margin-bottom: .35rem; color: var(--white); }
.ff input:not([type=checkbox]):not([type=radio]), .ff select, .ff textarea { width: 100%; background: var(--bg2); border: 1px solid var(--line2); color: var(--text); border-radius: 10px; padding: .7rem .85rem; font: inherit; }
.ff input:focus, .ff select:focus, .ff textarea:focus { outline: none; border-color: var(--lime); box-shadow: 0 0 0 3px var(--lime-dim); }
.fsec { display: grid; grid-template-columns: 1fr 1fr; column-gap: 1rem; } .fsec > legend, .fsec > .fsec-desc, .fsec > .ff:not(.half), .fsec > .review, .fsec > button, .fsec > p { grid-column: 1 / -1; }
.ff.has-err input, .ff.has-err select, .ff.has-err textarea, input.err { border-color: #ff5a6a !important; } .ferr { display: block; color: #ff8a95; font-size: .86rem; margin-top: .3rem; }
.fhelp { display: block; color: var(--muted); font-size: .84rem; margin-top: .3rem; } .req { color: var(--lime); font-style: normal; }
.opts { display: flex; flex-wrap: wrap; gap: .5rem 1.2rem; } .opt { display: inline-flex; gap: .5rem; align-items: flex-start; cursor: pointer; font-weight: 500; } .opt input { margin-top: .3rem; accent-color: var(--lime); width: 18px; height: 18px; flex: none; }
.opt.decl { background: var(--bg2); border: 1px solid var(--line2); border-radius: 10px; padding: .75rem .9rem; width: 100%; } .opt.decl a { color: var(--lime); text-decoration: underline; }
.member { border: 1px dashed var(--line2); border-radius: 12px; padding: .9rem 1rem; margin: .8rem 0; } .member-h { display: flex; gap: .8rem; align-items: center; flex-wrap: wrap; } .member-h small { color: var(--muted); }
.member-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); column-gap: 1rem; } .member-grid .ff { margin: .6rem 0; }
.ftable input { min-width: 130px; } .finfo { color: var(--muted); } .crit-min { margin-top: .6rem; color: var(--lime); } .is-sensitive > label::after, .is-sensitive > .flabel::after { content: " 🔒"; font-size: .8em; }
.steps-nav { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 1rem; position: sticky; top: 70px; z-index: 5; background: var(--bg); padding: .5rem 0; }
.steps-nav button { background: var(--panel); border: 1px solid var(--line2); color: var(--muted); border-radius: 999px; padding: .3rem .7rem; font: 600 .78rem var(--sub); letter-spacing: .05em; cursor: pointer; }
.steps-nav button.active { color: #0B0F0A; background: var(--lime); border-color: var(--lime); } .steps-nav button.err { border-color: #ff5a6a; color: #ff8a95; }
.steps-ctrl { display: flex; justify-content: space-between; gap: 1rem; margin-top: 1rem; grid-column: 1 / -1; } .js-steps .fsec[hidden] { display: none; }
.review { background: var(--bg2); border-radius: 12px; padding: 1rem; margin: 1rem 0; font-size: .92rem; } .review:empty { display: none; }
.code-big { font-family: var(--head); letter-spacing: .2em; font-size: 1.3rem; color: var(--lime); } .done-card { text-align: left; }
.track { align-items: start; } .track-head { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; flex-wrap: wrap; }
.status-card { margin: 1rem 0; } .status-card p { color: var(--muted); margin-bottom: .4rem; } .attn { border-color: #ffcf7a !important; margin: 1rem 0; } .ok-note { color: var(--lime); margin: .8rem 0; }
.timeline { list-style: none; padding: 0; border-left: 2px solid var(--line); margin-left: .4rem; } .timeline li { padding: 0 0 1rem 1rem; position: relative; } .timeline li::before { content: ""; position: absolute; left: -7px; top: .45rem; width: 12px; height: 12px; border-radius: 50%; background: var(--lime); }
.timeline time { display: block; color: var(--muted); font-size: .8rem; }
.pager { display: flex; gap: .4rem; align-items: center; margin-top: 1.4rem; flex-wrap: wrap; } .pager a, .pager b { padding: .35rem .7rem; border-radius: 8px; border: 1px solid var(--line2); } .pager b { background: var(--lime); color: #0B0F0A; } .pager span { color: var(--muted); margin-left: .6rem; font-size: .85rem; }
.err-page { display: grid; place-items: center; min-height: 100vh; } .err-box { text-align: center; padding: 2rem; max-width: 560px; } .err-box h1 { font-size: 4rem; color: var(--lime); margin: 1rem 0 0; } .err-box p { margin: 1rem 0; }
.tabs a.tab { text-decoration: none; }
@media (max-width: 700px) { .fsec { grid-template-columns: 1fr; } .sched-filters select { min-width: 0; width: 100%; } .sched-filters label { flex: 1 1 100%; } .steps-nav { top: 60px; } }
@media print { .top, .foot, .realizacao, .wa-float, .cta-row, body::before { display: none !important; } body { background: #fff; color: #000; } .card { border: 1px solid #999; } }

/* ============ ajustes de leitura (v1.2) ============ */
/* regulamentos: 2 cards por linha ocupando todo o container */
.doc-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.4rem; }
@media (max-width: 760px) { .doc-cards { grid-template-columns: 1fr; } }
.doc-card { display: flex; flex-direction: column; gap: .9rem; padding: 1.8rem 2rem; }
.doc-card h3 { margin: 0; font-size: 1.12rem; line-height: 1.35; letter-spacing: .02em; }
.doc-card .doc-type { align-self: flex-start; font-family: var(--sub); font-weight: 700; font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; color: var(--lime); background: var(--lime-dim); border: 1px solid var(--line); border-radius: 999px; padding: .2rem .7rem; }
.doc-card .doc-sum { margin: 0; color: var(--text); line-height: 1.65; }
.doc-card .doc-meta { margin: 0; color: var(--muted); font-size: .9rem; line-height: 1.5; }
.doc-card .doc-meta span { font-family: var(--sub); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; font-size: .78rem; color: var(--white); margin-right: .35rem; }
.doc-card .doc-meta i { font-style: normal; opacity: .6; margin: 0 .25rem; }
.doc-card .cta-row { margin-top: auto; padding-top: .4rem; gap: .7rem; }
.group-title { margin: 2.4rem 0 1.1rem; font-size: 1.05rem; letter-spacing: .06em; }
.sec-head + .group-title { margin-top: 1.4rem; }
/* pílulas (vagas, premiação): números legíveis */
.pill { color: var(--white); background: rgba(255,255,255,.06); border-color: color-mix(in srgb, var(--lime) 30%, transparent); display: inline-flex; align-items: baseline; gap: .35rem; }
.pill b { font-family: var(--body); font-weight: 800; font-size: 1.12em; letter-spacing: 0; color: var(--lime); font-variant-numeric: tabular-nums lining-nums; }
.pill { font-size: 1rem; padding: .5rem 1.1rem; font-weight: 700; letter-spacing: .08em; }
.pill b { font-size: 1.22em; }

/* ============ v1.3 — edital em todas as páginas ============ */
.docbar { position: relative; z-index: 51; background: color-mix(in srgb, var(--lime) 14%, #0B0F0A); border-bottom: 1px solid var(--line); font-size: .88rem; }
.docbar .wrap { display: flex; align-items: center; gap: .4rem 1rem; flex-wrap: wrap; padding-top: .45rem; padding-bottom: .45rem; }
.docbar-t { color: var(--white); font-weight: 600; margin-right: auto; }
.docbar-ret { color: #FFB84A; font-weight: 700; }
.docbar a { font-family: var(--sub); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; font-size: .8rem; color: var(--lime); border-bottom: 1px solid transparent; }
.docbar a:hover { border-color: var(--lime); }
@media (max-width: 700px) { .docbar-t { flex: 1 1 100%; font-size: .82rem; } .docbar-ic { display: none; } }
.foot-grid { grid-template-columns: 1.3fr 1fr 1fr 1.1fr 1fr; }
@media (max-width: 960px) { .foot-grid { grid-template-columns: 1fr 1fr; } }
.doc-card.is-edital { border-color: var(--line); background: linear-gradient(160deg, color-mix(in srgb, var(--lime) 10%, var(--panel)), var(--panel)); grid-column: 1 / -1; }
.rich.legal .doc-head { text-align: center; }

/* ============ v1.4 — perguntas públicas e recursos ============ */
.qa-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(280px, 1fr); gap: 1.6rem; align-items: start; }
@media (max-width: 900px) { .qa-grid { grid-template-columns: 1fr; } }
.qa-list { display: flex; flex-direction: column; gap: 1rem; }
.qa-item { background: var(--panel); border: 1px solid var(--line2); border-radius: var(--r); padding: 1.1rem 1.2rem; display: flex; flex-direction: column; gap: .9rem; }
.qa-q, .qa-a { display: flex; gap: .8rem; align-items: flex-start; }
.qa-a { margin-left: 2.2rem; padding: .8rem 1rem; border-radius: 12px; background: color-mix(in srgb, var(--lime) 8%, var(--bg2)); border: 1px solid var(--line); }
.qa-av { flex: none; width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; font-weight: 800; background: var(--bg2); border: 1px solid var(--line2); color: var(--white); }
.qa-av-org { background: var(--lime); color: #0B0F0A; border-color: var(--lime); }
.qa-item time { color: var(--muted); font-size: .8rem; margin-left: .4rem; }
.qa-item p { margin-top: .3rem; line-height: 1.6; }
.qa-form { position: sticky; top: 90px; display: flex; flex-direction: column; gap: .8rem; }
.qa-form label { display: flex; flex-direction: column; gap: .3rem; font-weight: 600; }
.qa-form label.opt { flex-direction: row; font-weight: 500; }
.qa-form input:not([type=checkbox]), .qa-form textarea, .track select, .card.form select, .card.form textarea, .card.form input:not([type=checkbox]):not([type=file]) { background: var(--bg2); border: 1px solid var(--line2); color: var(--text); border-radius: 10px; padding: .65rem .8rem; font: inherit; width: 100%; }
.hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.warn-box { background: #3a2a10; border: 1px solid #7a5a20; color: #ffe2b0; }
.appeal-card { border-color: var(--line); }
.card.form { display: flex; flex-direction: column; gap: .8rem; }
.card.form label { display: flex; flex-direction: column; gap: .3rem; font-weight: 600; }
.qa-form label small, .qa-form label.opt span { text-transform: none; letter-spacing: normal; font-family: inherit; font-size: .85rem; line-height: 1.45; color: var(--muted); }
.qa-form label.opt { display: flex; flex-direction: row; align-items: flex-start; gap: .6rem; text-transform: none; letter-spacing: normal; }
.qa-form label.opt input { margin-top: .2rem; flex: none; }
.form-outline > li { margin-bottom: .7rem; }
.form-outline ul { margin: .35rem 0 0 1.1rem; display: flex; flex-direction: column; gap: .2rem; color: var(--muted); font-size: .92rem; list-style: disc; }
.qa-mod { align-self: flex-start; font-family: var(--sub); font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--lime); border: 1px solid var(--line); border-radius: 999px; padding: .15rem .6rem; }

/* ============ documentos exigidos (página da modalidade) ============ */
.req-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
@media (max-width: 760px) { .req-grid { grid-template-columns: 1fr; } }
.req-card { background: var(--panel); border: 1px solid var(--line2); border-radius: var(--r); padding: 1rem 1.15rem; display: flex; flex-direction: column; gap: .45rem; }
.req-top { display: flex; align-items: flex-start; gap: .7rem; }
.req-top h3 { flex: 1; font-family: var(--body, inherit); font-size: 1rem; line-height: 1.35; text-transform: none; letter-spacing: normal; margin: 0; color: var(--white); }
.req-ic { flex: none; width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; background: var(--bg2); border: 1px solid var(--line2); font-size: 1rem; }
.req-badge { flex: none; font-family: var(--sub); font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; border-radius: 999px; padding: .2rem .6rem; white-space: nowrap; }
.req-req { background: var(--lime); color: #0B0F0A; }
.req-opt { border: 1px solid var(--line); color: var(--muted); }
.req-sol { border: 1px dashed var(--line); color: var(--muted); }
.req-card p { color: var(--muted); font-size: .92rem; line-height: 1.55; padding-left: calc(34px + .7rem); }
.req-meta { color: var(--muted); font-size: .78rem; padding-left: calc(34px + .7rem); opacity: .85; }
.rich .reg-items { margin: .4rem 0 .8rem 1.2rem; padding-left: .9rem; border-left: 2px solid var(--line2); }
.rich .reg-items p { margin: .25rem 0; }

/* ============ modelos de anexos para download ============ */
.tpl-links { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .9rem; margin: .35rem 0 .55rem; padding: .5rem .7rem; border: 1px dashed var(--line); border-radius: 10px; background: color-mix(in srgb, var(--lime) 6%, transparent); font-size: .85rem; }
.tpl-links > span:first-child { color: var(--muted); font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; }
.tpl-links .tpl { display: inline-flex; gap: .45rem; align-items: baseline; }
.tpl-links .tpl b { color: var(--white); font-weight: 600; }
.tpl-links a { color: var(--lime); font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
.req-tpl .tpl-links { margin-left: calc(34px + .7rem); margin-top: .2rem; }
.staged-files { margin: .35rem 0 .5rem; padding: .55rem .75rem; border-radius: 10px; background: color-mix(in srgb, #2ecc71 12%, transparent); border: 1px solid color-mix(in srgb, #2ecc71 45%, transparent); font-size: .88rem; line-height: 1.45; }

/* v1.7.0 — cronograma de seleção */
.sel-timeline { width: 100%; border-collapse: collapse; }
.sel-timeline th, .sel-timeline td { padding: .65rem .8rem; border-bottom: 1px solid rgba(255,255,255,.1); text-align: left; vertical-align: top; }
.sel-timeline th { font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; color: var(--lime); }
.sel-timeline td b { color: #fff; white-space: nowrap; }
@media (max-width: 560px) { .sel-timeline td b { white-space: normal; } }
.timeline-card .tl-title { font-size: .95rem; margin: 0 0 .6rem; color: var(--lime); letter-spacing: .01em; }

/* v1.9.6 — resultado oficial com quadro de equipes */
.official-result { margin-top: 1.25rem; border: 1px solid var(--lime); padding: clamp(1.25rem, 3vw, 2rem); }
.official-result .eyebrow { display: flex; }
.official-title { font-size: clamp(1.1rem, 2.4vw, 1.45rem); margin: .5rem 0 .6rem; }
.official-table { margin: 1rem 0; }
.official-table td, .official-table th { padding: .7rem .75rem; }
.res-st-ok { color: var(--lime); font-weight: 700; }
.res-st-no { color: #ff8a80; font-weight: 700; }
.res-st-muted { color: var(--muted); font-weight: 700; }
.res-st-alt { color: #ffcf5c; font-weight: 700; }
.official-note { margin: .5rem 0 1.25rem; }
.official-actions { display: flex; flex-wrap: wrap; gap: .75rem; }

/* v1.10.0 — chaveamento */
.bk-scroll { overflow-x: auto; margin-top: 1.5rem; padding-bottom: .5rem; }
.bk-tree { display: grid; grid-template-columns: repeat(var(--bk-rounds), minmax(220px, 1fr)); gap: 1.25rem; min-width: calc(var(--bk-rounds) * 240px); }
.bk-round { display: flex; flex-direction: column; }
.bk-round-title { font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; color: var(--lime); margin: 0 0 .75rem; }
.bk-col { display: flex; flex-direction: column; justify-content: space-around; gap: 1rem; flex: 1; }
.bk-match { border: 1px solid var(--line, rgba(255,255,255,.12)); border-radius: 12px; background: rgba(255,255,255,.03); overflow: hidden; }
.bk-match.done { border-color: rgba(190,242,100,.45); }
.bk-head { display: flex; justify-content: space-between; gap: .5rem; padding: .45rem .7rem; font-size: .75rem; color: var(--muted); border-bottom: 1px solid var(--line, rgba(255,255,255,.08)); }
.bk-team { display: flex; justify-content: space-between; gap: .5rem; padding: .55rem .7rem; font-weight: 600; }
.bk-team + .bk-team { border-top: 1px solid var(--line, rgba(255,255,255,.06)); }
.bk-team.win { color: var(--lime); }
.bk-team.win span::after { content: " ✓"; }
.bk-team.lose { color: var(--muted); text-decoration: line-through; text-decoration-thickness: 1px; }
.bk-team i { color: var(--muted); font-weight: 400; }
.bk-third { max-width: 320px; margin-top: 1.5rem; }
.bk-podium { display: flex; flex-wrap: wrap; gap: 1rem; margin: 1.25rem 0 0; }
.bk-podium div { border: 1px solid var(--lime); border-radius: 12px; padding: .75rem 1rem; min-width: 180px; }
.bk-podium span { display: block; font-size: .8rem; color: var(--muted); }
.bk-podium b { font-size: 1.1rem; }

/* v1.10.1 — card de destaque do chaveamento */
.bk-sec { padding-top: clamp(1.5rem, 3vw, 2.5rem); padding-bottom: clamp(1.5rem, 3vw, 2.5rem); }
.bk-card { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem 2rem; border: 1px solid var(--lime); box-shadow: 0 0 0 1px rgba(190,242,100,.15), 0 12px 40px rgba(190,242,100,.08); }
.bk-card-main { flex: 1 1 320px; min-width: 0; }
.bk-card-title { margin: .35rem 0 .4rem; font-size: clamp(1.15rem, 2.4vw, 1.5rem); }
.bk-card-line { margin: 0 0 .35rem; }
.bk-card-vs { font-weight: 700; font-size: 1.05rem; }
.bk-card-vs i { color: var(--lime); font-style: normal; padding: 0 .35rem; }
.bk-card-meta { margin: 0; font-size: .85rem; }
.bk-cards { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 460px), 1fr)); }
