@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,400&family=JetBrains+Mono:wght@400;500;600&display=swap');

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

/* ══ TOKENS ══════════════════════════════════════════════════ */
:root{
  --ac:#c9a84c;--ac-l:#e8c97a;--ac-d:#8a6c2a;
  --ac-g:rgba(201,168,76,.13);--ac-b:rgba(201,168,76,.25);
  --tr:.18s cubic-bezier(.4,0,.2,1);
  --r:14px;--r-sm:10px;--r-xs:7px;
  --sb-w:250px;--hdr-h:58px;
}

[data-tema="escuro"]{
  --bg:#0f1015;--bg1:#15161d;--bg2:#1a1b24;--bg3:#21222e;--bg4:#28293a;
  --ln:#2a2b3d;--ln2:#33344a;
  --t:#e8eaf6;--t2:#8890b0;--t3:#4a5070;
  --vd:#2dd4a0;--vd-g:rgba(45,212,160,.1);--vd-b:rgba(45,212,160,.22);
  --vm:#f87171;--vm-g:rgba(248,113,113,.1);--vm-b:rgba(248,113,113,.22);
  --az:#60a5fa;--az-g:rgba(96,165,250,.1);
  --es:dark;
}
[data-tema="claro"]{
  --bg:#f2f3f8;--bg1:#ffffff;--bg2:#f8f9fc;--bg3:#eef0f8;--bg4:#e4e6f2;
  --ln:#dde0ef;--ln2:#cdd0e4;
  --t:#0d0e1a;--t2:#4a5070;--t3:#9098b8;
  --vd:#0d9e72;--vd-g:rgba(13,158,114,.1);--vd-b:rgba(13,158,114,.22);
  --vm:#d93030;--vm-g:rgba(217,48,48,.1);--vm-b:rgba(217,48,48,.22);
  --az:#2563eb;--az-g:rgba(37,99,235,.1);
  --es:light;
}

html{font-size:15px;color-scheme:var(--es)}
body{background:var(--bg);color:var(--t);font-family:'Plus Jakarta Sans',sans-serif;min-height:100vh;overflow-x:hidden;transition:background .3s,color .3s}
a{color:inherit;text-decoration:none}
button{font-family:'Plus Jakarta Sans',sans-serif;cursor:pointer}
.mono{font-family:'JetBrains Mono',monospace}

/* ══ TOPBAR ══════════════════════════════════════════════════ */
.topbar{
  height:var(--hdr-h);background:var(--bg1);border-bottom:1px solid var(--ln);
  display:flex;align-items:center;justify-content:space-between;padding:0 1rem;gap:.6rem;
  position:fixed;top:0;left:0;right:0;z-index:100;
}
.tb-menu{background:none;border:1px solid var(--ln2);color:var(--t2);width:36px;height:36px;border-radius:var(--r-xs);display:flex;align-items:center;justify-content:center;transition:all var(--tr);flex-shrink:0}
.tb-menu:hover,.tb-menu.aberto{background:var(--bg3);color:var(--t);border-color:var(--ac)}
.tb-marca{display:flex;align-items:center;gap:.55rem;flex:1;min-width:0;overflow:hidden}
.logo-karate{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,var(--ac-d),var(--ac));display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 3px 12px var(--ac-g);color:#0c0c0d}
.logo-karate svg{width:22px;height:22px}
.tb-titulo strong{font-weight:800;font-size:.9rem;letter-spacing:-.02em;display:block}
.tb-titulo small{font-size:.63rem;color:var(--t3);font-weight:500}
.tb-direita{display:flex;align-items:center;gap:.4rem;flex-shrink:0}
.tb-btn{background:none;border:1px solid var(--ln2);border-radius:var(--r-xs);width:34px;height:34px;display:flex;align-items:center;justify-content:center;color:var(--t2);transition:all var(--tr);font-size:1rem}
.tb-btn:hover{border-color:var(--ac);color:var(--ac)}
.tb-av{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--ac-d),var(--ac));display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.65rem;color:#0c0c0d;border:2px solid var(--ac-b);flex-shrink:0;overflow:hidden;transition:box-shadow var(--tr)}
.tb-av:hover{box-shadow:0 0 0 3px var(--ac-g)}
.tb-av img{width:100%;height:100%;object-fit:cover}

/* ══ TOGGLE TEMA ═════════════════════════════════════════════ */
.tema-toggle{background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center}
.toggle-track{
  width:52px;height:28px;background:var(--bg4);border:1.5px solid var(--ln2);
  border-radius:14px;display:flex;align-items:center;padding:2px;
  transition:all .3s;position:relative;overflow:hidden;
}
[data-tema="claro"] .toggle-track{background:#e8f0fe;border-color:#aac4f5}
.toggle-thumb{
  width:22px;height:22px;border-radius:50%;
  background:linear-gradient(135deg,var(--ac-d),var(--ac));
  display:flex;align-items:center;justify-content:center;
  transform:translateX(0);transition:transform .3s cubic-bezier(.4,0,.2,1);
  box-shadow:0 2px 6px rgba(0,0,0,.3);flex-shrink:0;position:relative;
}
[data-tema="claro"] .toggle-thumb{transform:translateX(24px)}
.toggle-icon-dark,.toggle-icon-light{position:absolute;font-size:.7rem;color:#0c0c0d;transition:opacity .2s}
.toggle-icon-dark{opacity:1}
.toggle-icon-light{opacity:0}
[data-tema="claro"] .toggle-icon-dark{opacity:0}
[data-tema="claro"] .toggle-icon-light{opacity:1}

/* ══ PESQUISA GLOBAL ══════════════════════════════════════════ */
.pesquisa-overlay{position:fixed;inset:0;z-index:250;background:rgba(0,0,0,.65);backdrop-filter:blur(8px);display:flex;flex-direction:column;align-items:center;padding-top:max(70px,10vh);opacity:0;pointer-events:none;transition:opacity .2s}
.pesquisa-overlay.aberto{opacity:1;pointer-events:all}
.pesquisa-box{background:var(--bg2);border:1px solid var(--ln2);border-radius:var(--r);width:min(560px,94vw);box-shadow:0 20px 60px rgba(0,0,0,.4);overflow:hidden}
.pesquisa-input-wrap{display:flex;align-items:center;gap:.7rem;padding:.9rem 1.1rem;border-bottom:1px solid var(--ln)}
.pesquisa-input-wrap .bi{color:var(--t3);font-size:1rem;flex-shrink:0}
.pesquisa-input{flex:1;background:none;border:none;outline:none;font-size:1rem;font-family:'Plus Jakarta Sans',sans-serif;color:var(--t)}
.pesquisa-input::placeholder{color:var(--t3)}
.pesquisa-fechar{background:none;border:none;color:var(--t3);font-size:1rem;cursor:pointer;transition:color var(--tr);padding:.1rem .3rem}
.pesquisa-fechar:hover{color:var(--vm)}
.pesquisa-resultados{max-height:400px;overflow-y:auto;padding:.5rem}
.pesquisa-secao{font-size:.65rem;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:.1em;padding:.6rem .6rem .3rem}
.pesquisa-item{display:flex;align-items:center;gap:.8rem;padding:.65rem .8rem;border-radius:var(--r-xs);cursor:pointer;transition:background var(--tr)}
.pesquisa-item:hover{background:var(--bg3)}
.pesquisa-item-icon{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1rem}
.pesquisa-item-titulo{font-size:.85rem;font-weight:600}
.pesquisa-item-sub{font-size:.73rem;color:var(--t2);margin-top:.1rem}
.pesquisa-vazio{text-align:center;padding:2rem;color:var(--t3);font-size:.85rem}
mark{background:var(--ac-g);color:var(--ac);border-radius:3px;padding:0 2px}

/* ══ OVERLAY & SIDEBAR ═══════════════════════════════════════ */
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);backdrop-filter:blur(3px);z-index:150;opacity:0;pointer-events:none;transition:opacity .2s}
.overlay.aberto{opacity:1;pointer-events:all}
.sidebar{position:fixed;top:0;left:0;bottom:0;width:var(--sb-w);background:var(--bg1);border-right:1px solid var(--ln);z-index:160;transform:translateX(-100%);transition:transform .24s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;overflow:hidden}
.sidebar.aberto{transform:translateX(0)}
.sb-topo{padding:1rem .9rem .85rem;border-bottom:1px solid var(--ln)}
.sb-marca{display:flex;align-items:center;gap:.6rem;margin-bottom:.85rem}
.sb-marca .logo-karate{width:34px;height:34px}
.sb-marca span{font-weight:800;font-size:.95rem;letter-spacing:-.02em}
.sb-utilizador{display:flex;align-items:center;gap:.7rem;padding:.7rem .8rem;background:var(--bg3);border:1px solid var(--ln);border-radius:var(--r-sm)}
.sb-av{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--ac-d),var(--ac));display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.7rem;color:#0c0c0d;border:2px solid var(--ac-b);flex-shrink:0;overflow:hidden}
.sb-av img{width:100%;height:100%;object-fit:cover}
.sb-nome{font-weight:700;font-size:.82rem;display:block;letter-spacing:-.01em}
.sb-sub{font-size:.67rem;color:var(--t2);margin-top:.05rem}
.sb-relogio{margin-top:.7rem;padding:.55rem .8rem;background:var(--bg4);border-radius:var(--r-xs);display:flex;align-items:center;justify-content:space-between}
.sb-relogio .hora{font-family:'JetBrains Mono',monospace;font-size:1rem;font-weight:600;color:var(--ac)}
.sb-relogio .data{font-size:.64rem;color:var(--t3)}
.sb-nav{flex:1;padding:.75rem .65rem;overflow-y:auto;display:flex;flex-direction:column;gap:.1rem}
.nav-item{display:flex;align-items:center;gap:.65rem;padding:.62rem .8rem;border-radius:var(--r-sm);font-size:.85rem;font-weight:500;color:var(--t2);transition:all var(--tr);border:1px solid transparent;position:relative;cursor:pointer;text-decoration:none}
.nav-item .bi{font-size:1rem;flex-shrink:0;opacity:.6;transition:opacity var(--tr)}
.nav-item:hover{background:var(--bg3);color:var(--t)}
.nav-item.ativo{background:var(--ac-g);color:var(--ac);border-color:var(--ac-b);font-weight:700}
.nav-item.ativo .bi{opacity:1}
.nav-badge{position:absolute;right:.7rem;top:50%;transform:translateY(-50%);background:var(--vm);color:#fff;font-size:.58rem;font-weight:700;min-width:17px;height:17px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 .3rem;animation:pulsar 2.5s infinite}
@keyframes pulsar{0%,100%{box-shadow:0 0 0 0 rgba(248,113,113,.5)}60%{box-shadow:0 0 0 6px rgba(248,113,113,0)}}
.nav-sep{height:1px;background:var(--ln);margin:.4rem .5rem}
.sb-rodape{padding:.65rem;border-top:1px solid var(--ln);display:flex;flex-direction:column;gap:.08rem}
.nav-sair{color:var(--vm)!important}
.nav-sair:hover{background:var(--vm-g)!important}

/* ══ LAYOUT ══════════════════════════════════════════════════ */
.conteudo{margin-top:var(--hdr-h)}
.pagina{padding:1.2rem 1rem}
@media(min-width:720px){
  .tb-menu{display:none!important}
  .conteudo{margin-left:var(--sb-w)}
  .sidebar{transform:translateX(0);z-index:50;box-shadow:none}
  .overlay{display:none!important}
  .pagina{padding:1.8rem 2rem}
}

/* ══ FOOTER ══════════════════════════════════════════════════ */
.rodape-app{
  position:fixed;bottom:0;left:0;right:0;
  text-align:center;padding:.55rem 1rem;
  border-top:1px solid var(--ln);
  background:var(--bg1);
  font-size:.72rem;color:var(--t3);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:.1rem;z-index:90;line-height:1.5;
}
@media(min-width:720px){.rodape-app{left:var(--sb-w)}}
.rodape-app .rodape-nome{font-weight:700;color:var(--t2)}
.rodape-app a{color:var(--ac);font-weight:600;transition:opacity var(--tr)}
.rodape-app a:hover{opacity:.75}
/* Add bottom padding to content so footer doesn't overlap */
.pagina{padding-bottom:5.5rem}

/* ══ ALERTAS ════════════════════════════════════════════════ */
.alerta{display:flex;align-items:flex-start;gap:.6rem;padding:.75rem 1rem;border-radius:var(--r-sm);font-size:.8rem;margin-bottom:1rem;line-height:1.5;animation:slideDown .25s ease}
@keyframes slideDown{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
.alerta .bi{font-size:1rem;flex-shrink:0;margin-top:.05rem}
.alerta-erro{background:var(--vm-g);color:var(--vm);border:1px solid var(--vm-b)}
.alerta-sucesso{background:var(--vd-g);color:var(--vd);border:1px solid var(--vd-b)}
.alerta-info{background:var(--ac-g);color:var(--ac);border:1px solid var(--ac-b)}

/* ══ SAUDAÇÃO ═══════════════════════════════════════════════ */
.saudacao-bloco{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.8rem;margin-bottom:1.2rem}
.saudacao-texto h2{font-size:1.15rem;font-weight:800;letter-spacing:-.03em}
.saudacao-texto p{font-size:.78rem;color:var(--t2);margin-top:.2rem}
.saudacao-relogio{font-family:'JetBrains Mono',monospace;font-size:1.6rem;font-weight:600;color:var(--ac);letter-spacing:-.02em;display:none}
@media(min-width:720px){.saudacao-relogio{display:block}}

/* ══ STATS ══════════════════════════════════════════════════ */
.stats-grelha{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;margin-bottom:1rem}
@media(min-width:900px){.stats-grelha{grid-template-columns:repeat(4,1fr)}}
.stat{background:var(--bg2);border:1px solid var(--ln);border-radius:var(--r);padding:.95rem 1.05rem;position:relative;overflow:hidden;transition:transform var(--tr),border-color var(--tr)}
.stat:hover{transform:translateY(-2px);border-color:var(--ln2)}
.stat::before{content:'';position:absolute;top:0;left:0;right:0;height:2.5px}
.stat.ouro::before{background:linear-gradient(90deg,var(--ac-d),var(--ac-l))}
.stat.verde::before{background:var(--vd)}
.stat.vermelho::before{background:var(--vm)}
.stat.cinza::before{background:var(--t3)}
.stat-ico{
  width:34px;height:34px;border-radius:9px;
  display:flex!important;align-items:center;justify-content:center;
  margin-bottom:.6rem;flex-shrink:0;min-width:34px;
}
.stat-ico i{
  font-size:1.15rem;
  line-height:1;
  display:block;
}
.stat.ouro .stat-ico{background:var(--ac-g);color:var(--ac)}
.stat.verde .stat-ico{background:var(--vd-g);color:var(--vd)}
.stat.vermelho .stat-ico{background:var(--vm-g);color:var(--vm)}
.stat.cinza .stat-ico{background:rgba(255,255,255,.06);color:var(--t2)}
[data-tema="claro"] .stat.cinza .stat-ico{background:rgba(0,0,0,.05)}
.stat-valor{font-family:'JetBrains Mono',monospace;font-size:1.35rem;font-weight:600;line-height:1;margin-bottom:.2rem}
.stat.ouro .stat-valor{color:var(--ac)}
.stat.verde .stat-valor{color:var(--vd)}
.stat.vermelho .stat-valor{color:var(--vm)}
.stat.cinza .stat-valor{color:var(--t2)}
.stat-rotulo{font-size:.65rem;color:var(--t3);font-weight:600;text-transform:uppercase;letter-spacing:.07em}

/* ══ CARDS ══════════════════════════════════════════════════ */
.card{background:var(--bg2);border:1px solid var(--ln);border-radius:var(--r);padding:1.1rem 1.15rem;max-width:100%;box-sizing:border-box}
.card+.card{margin-top:.85rem}
.card-cab{display:flex;align-items:center;justify-content:space-between;margin-bottom:.9rem;gap:.5rem;flex-wrap:wrap}
.card-titulo{font-weight:700;font-size:.88rem;letter-spacing:-.01em}

/* ══ COMPETIÇÕES GRID ════════════════════════════════════════ */
.provas-grid{
  display:grid;gap:1rem;
  grid-template-columns:1fr;
}
@media(min-width:600px){.provas-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:900px){.provas-grid{grid-template-columns:repeat(4,1fr)}}

.prova-card{
  background:var(--bg2);border:1px solid var(--ln);border-radius:var(--r);
  overflow:hidden;display:flex;flex-direction:column;
  transition:transform var(--tr),box-shadow var(--tr),border-color var(--tr);
}
.prova-card:hover{transform:translateY(-3px);box-shadow:0 10px 30px rgba(0,0,0,.15);border-color:var(--ln2)}
.prova-card-banner{
  height:80px;display:flex;align-items:center;justify-content:center;
  font-size:2.2rem;flex-shrink:0;position:relative;overflow:hidden;
}
.prova-card-body{flex:1;padding:.9rem .95rem}
.prova-card-nome{font-weight:800;font-size:.88rem;line-height:1.35;margin-bottom:.45rem;letter-spacing:-.01em}
.prova-card-meta{display:flex;flex-direction:column;gap:.2rem;margin-bottom:.75rem}
.prova-card-meta-item{font-size:.74rem;color:var(--t2);display:flex;align-items:center;gap:.35rem}
.prova-card-meta-item .bi{color:var(--t3);font-size:.8rem}
.prova-card-resultado{
  background:var(--bg3);border-top:1px solid var(--ln);
  padding:.6rem .95rem;font-size:.76rem;font-weight:600;
  display:flex;align-items:center;gap:.4rem;
}
.prova-card-resultado .bi{color:var(--vd);font-size:.9rem}
.prova-card-resultado.sem-resultado{color:var(--t3)}
.prova-card-actions{
  display:flex;border-top:1px solid var(--ln);
}
.prova-card-btn{
  flex:1;border:none;background:none;color:var(--t2);
  font-size:.75rem;font-weight:600;font-family:'Plus Jakarta Sans',sans-serif;
  padding:.62rem .4rem;cursor:pointer;transition:all var(--tr);
  display:flex;flex-direction:column;align-items:center;gap:.2rem;
  border-right:1px solid var(--ln);
}
.prova-card-btn:last-child{border-right:none}
.prova-card-btn .bi{font-size:1rem}
.prova-card-btn:hover{background:var(--bg3);color:var(--t)}
.prova-card-btn.danger:hover{background:var(--vm-g);color:var(--vm)}
.prova-card-btn.primary:hover{background:var(--ac-g);color:var(--ac)}

/* ══ DETALHE PROVA ═══════════════════════════════════════════ */
.detalhe-hero{
  background:var(--bg2);border:1px solid var(--ln);border-radius:var(--r);
  overflow:hidden;margin-bottom:1rem;
}
.detalhe-hero-banner{height:100px;display:flex;align-items:center;justify-content:center;font-size:3rem;position:relative}
.detalhe-hero-body{padding:1rem 1.15rem}
.detalhe-hero-nome{font-size:1.15rem;font-weight:800;letter-spacing:-.03em;margin-bottom:.4rem}
.detalhe-hero-meta{display:flex;flex-wrap:wrap;gap:.55rem;align-items:center;margin-bottom:.6rem}
.detalhe-hero-meta span{font-size:.77rem;color:var(--t2);display:flex;align-items:center;gap:.35rem}
.detalhe-hero-meta .bi{color:var(--t3)}
.detalhe-hero-actions{display:flex;gap:.45rem;flex-wrap:wrap;margin-top:.8rem}

/* ══ FOTOS GRELHA ═══════════════════════════════════════════ */
.fotos-grelha{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem;margin-top:.75rem}
@media(min-width:480px){.fotos-grelha{grid-template-columns:repeat(3,1fr)}}
@media(min-width:900px){.fotos-grelha{grid-template-columns:repeat(4,1fr)}}

.foto-item{border-radius:var(--r-sm);overflow:hidden;border:1.5px solid var(--ln);display:flex;flex-direction:column;transition:border-color var(--tr)}
.foto-item:hover{border-color:var(--ac)}
.foto-img-wrap{aspect-ratio:4/3;position:relative;cursor:zoom-in;overflow:hidden}
.foto-img-wrap img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}
.foto-img-wrap:hover img{transform:scale(1.06)}
.foto-overlay{position:absolute;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--tr)}
.foto-img-wrap:hover .foto-overlay{opacity:1}
.foto-overlay-icon{color:#fff;font-size:1.6rem}
.foto-acoes{padding:.45rem .5rem;display:flex;gap:.3rem;background:var(--bg3);border-top:1px solid var(--ln)}
.foto-obs{padding:.35rem .5rem;font-size:.68rem;color:var(--t2);background:var(--bg3);border-top:1px solid var(--ln);min-height:30px}
.foto-obs-input{width:100%;background:transparent;border:none;outline:none;font-size:.72rem;color:var(--t);font-family:'Plus Jakarta Sans',sans-serif;resize:none;padding:0;cursor:pointer}
.foto-obs-input::placeholder{color:var(--t3)}
.foto-obs-input:focus{color:var(--t)}

/* ══ DESPESAS STATS ══════════════════════════════════════════ */
.desp-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem;margin-bottom:1rem}
@media(min-width:900px){.desp-stats{grid-template-columns:repeat(4,1fr)}}
/* desp-stats herda .stat - garantir que stat-ico é um flex box */

/* ══ BOTÕES ══════════════════════════════════════════════════ */
.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.46rem .9rem;border-radius:var(--r-sm);font-size:.78rem;font-weight:700;border:none;cursor:pointer;transition:all var(--tr);font-family:'Plus Jakarta Sans',sans-serif;white-space:nowrap;text-decoration:none}
.btn-ac{background:linear-gradient(135deg,var(--ac-d),var(--ac));color:#0c0c0d;box-shadow:0 2px 8px var(--ac-g)}
.btn-ac:hover{filter:brightness(1.1);transform:translateY(-1px)}
.btn-ghost{background:transparent;color:var(--t2);border:1px solid var(--ln2)}
.btn-ghost:hover{border-color:var(--ac);color:var(--ac)}
.btn-perigo{background:var(--vm-g);color:var(--vm);border:1px solid var(--vm-b)}
.btn-perigo:hover{background:rgba(248,113,113,.2)}
.btn-verde{background:var(--vd-g);color:var(--vd);border:1px solid var(--vd-b)}
.btn-verde:hover{background:rgba(45,212,160,.2)}
.btn-xs{padding:.28rem .6rem;font-size:.7rem}
.btn-sm{padding:.38rem .75rem;font-size:.76rem}
.btn-bloco{width:100%;justify-content:center;padding:.72rem}

/* Grupo de opções (ações numa célula) */
.opcoes{display:flex;gap:.3rem;align-items:center}
.opcoes-label{font-size:.6rem;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:.07em;margin-bottom:.3rem}

/* ══ ETIQUETAS ═══════════════════════════════════════════════ */
.et{display:inline-flex;align-items:center;gap:.3rem;padding:.18rem .55rem;border-radius:20px;font-size:.67rem;font-weight:700;white-space:nowrap}
.et-ac{background:var(--ac-g);color:var(--ac);border:1px solid var(--ac-b)}
.et-vd{background:var(--vd-g);color:var(--vd);border:1px solid var(--vd-b)}
.et-vm{background:var(--vm-g);color:var(--vm);border:1px solid var(--vm-b)}
.et-az{background:var(--az-g);color:var(--az);border:1px solid rgba(96,165,250,.22)}
.et-muted{background:rgba(255,255,255,.05);color:var(--t2);border:1px solid var(--ln2)}
[data-tema="claro"] .et-muted{background:rgba(0,0,0,.04)}

/* ══ TABELA ══════════════════════════════════════════════════ */
.tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tbl{width:100%;border-collapse:collapse;font-size:.8rem}
.tbl th{padding:.58rem .85rem;text-align:left;color:var(--t3);font-size:.63rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;border-bottom:1px solid var(--ln);white-space:nowrap}
.tbl td{padding:.72rem .85rem;border-bottom:1px solid var(--ln);vertical-align:middle}
.tbl tr:last-child td{border-bottom:none}
.tbl tr:hover td{background:var(--bg3)}
.tbl th.opts,.tbl td.opts{text-align:center}

/* ══ PROGRESSO ═══════════════════════════════════════════════ */
.prog{height:4px;background:var(--ln2);border-radius:2px;overflow:hidden;margin-top:.5rem}
.prog-fill{height:100%;border-radius:2px;transition:width .7s cubic-bezier(.4,0,.2,1)}

/* ══ FORMULÁRIO ═══════════════════════════════════════════════ */
.form-linha{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:.75rem}
@media(max-width:420px){.form-linha{grid-template-columns:1fr}.form-campo.completo{grid-column:auto}}
.form-campo{display:flex;flex-direction:column;gap:.35rem}
.form-campo.completo{grid-column:1/-1}
.form-campo label{font-size:.67rem;font-weight:700;color:var(--t2);text-transform:uppercase;letter-spacing:.07em}
.form-campo input,.form-campo select,.form-campo textarea{
  background:var(--bg3);border:1.5px solid var(--ln2);
  border-radius:var(--r-sm);padding:.6rem .8rem;
  color:var(--t);font-family:'Plus Jakarta Sans',sans-serif;font-size:.85rem;
  transition:border-color var(--tr),box-shadow var(--tr);width:100%;
}
.form-campo input::placeholder,.form-campo textarea::placeholder{color:var(--t3)}
.form-campo input:focus,.form-campo select:focus,.form-campo textarea:focus{outline:none;border-color:var(--ac);box-shadow:0 0 0 3px var(--ac-g)}
.form-campo textarea{resize:vertical;min-height:90px}
.form-campo select option{background:var(--bg2);color:var(--t)}

/* ══ MODAL ═══════════════════════════════════════════════════ */
.modal-fundo{position:fixed;inset:0;background:rgba(0,0,0,.65);backdrop-filter:blur(6px);z-index:200;display:flex;align-items:center;justify-content:center;padding:1rem;opacity:0;pointer-events:none;transition:opacity .22s}
.modal-fundo.aberto{opacity:1;pointer-events:all}
.modal{background:var(--bg2);border:1px solid var(--ln2);border-radius:var(--r);width:100%;max-width:560px;max-height:88vh;overflow-y:auto;transform:scale(.96) translateY(10px);transition:transform .22s cubic-bezier(.4,0,.2,1);box-shadow:0 24px 64px rgba(0,0,0,.35)}
@media(max-width:600px){.modal-fundo{padding:.5rem;align-items:flex-end;padding-bottom:calc(3.5rem + 1rem)}}
@media(max-width:600px){.modal{max-height:80vh;border-radius:var(--r) var(--r) 0 0}}
.modal-fundo.aberto .modal{transform:scale(1) translateY(0)}
.modal-cab{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--ln)}
.modal-cab h2{font-weight:800;font-size:.95rem;letter-spacing:-.02em;display:flex;align-items:center;gap:.5rem}
.modal-cab h2 .bi{color:var(--ac)}
.modal-fechar{background:none;border:none;color:var(--t3);cursor:pointer;transition:color var(--tr);padding:.2rem;font-size:1.1rem;line-height:1}
.modal-fechar:hover{color:var(--vm)}
.modal-corpo{padding:1.25rem}
.modal-rodape{display:flex;justify-content:flex-end;gap:.6rem;padding:.9rem 1.25rem;border-top:1px solid var(--ln)}

/* ══ UPLOAD ══════════════════════════════════════════════════ */
.upload-zona{border:2px dashed var(--ln2);border-radius:var(--r-sm);padding:1.8rem 1rem;text-align:center;cursor:pointer;transition:all var(--tr);position:relative}
.upload-zona:hover{border-color:var(--ac);background:var(--ac-g)}
.upload-zona input[type="file"]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.upload-zona .bi{font-size:2rem;color:var(--t3);display:block;margin-bottom:.5rem}
.upload-zona p{font-size:.8rem;color:var(--t3);line-height:1.5}
.ficheiro-wrap{position:relative}
.ficheiro-wrap input[type="file"]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.ficheiro-label{display:flex;align-items:center;gap:.6rem;padding:.6rem .8rem;background:var(--bg3);border:1.5px dashed var(--ln2);border-radius:var(--r-sm);font-size:.82rem;color:var(--t2);cursor:pointer;transition:all var(--tr)}
.ficheiro-label:hover{border-color:var(--ac);color:var(--ac)}
.ficheiro-label .bi{font-size:1rem}

/* ══ LIGHTBOX ════════════════════════════════════════════════ */
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.95);backdrop-filter:blur(14px);z-index:300;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:.9rem;opacity:0;pointer-events:none;transition:opacity .2s}
.lightbox.aberto{opacity:1;pointer-events:all}
.lightbox img{max-width:92vw;max-height:82vh;object-fit:contain;border-radius:var(--r);box-shadow:0 40px 80px rgba(0,0,0,.8)}
.lb-legenda{font-size:.82rem;color:rgba(255,255,255,.5);letter-spacing:.03em}
.lb-fechar{position:absolute;top:1rem;right:1.2rem;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:50%;width:38px;height:38px;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.6);cursor:pointer;transition:all var(--tr)}
.lb-fechar:hover{background:var(--vm-g);border-color:var(--vm);color:var(--vm)}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;cursor:pointer;color:rgba(255,255,255,.6);transition:all var(--tr)}
.lb-nav:hover{background:var(--ac-g);border-color:var(--ac);color:var(--ac)}
.lb-ant{left:1rem}.lb-seg{right:1rem}
.lb-cnt{position:absolute;bottom:1.5rem;font-size:.72rem;color:rgba(255,255,255,.4);font-family:'JetBrains Mono',monospace}

/* ══ SEP / ESTADOS ════════════════════════════════════════════ */
.sep-ac{display:flex;align-items:center;gap:.8rem;margin:.35rem 0 1rem}
.sep-ac::before,.sep-ac::after{content:'';flex:1;height:1px;background:var(--ln)}
.sep-ac span{font-size:.64rem;color:var(--ac);letter-spacing:.12em;text-transform:uppercase;font-weight:700;white-space:nowrap}
.estado-vazio{text-align:center;padding:3rem 1rem}
.estado-vazio .bi{font-size:2.5rem;color:var(--t3);display:block;margin-bottom:.8rem}
.estado-vazio h3{font-size:.9rem;color:var(--t2);margin-bottom:.35rem;font-weight:700}
.estado-vazio p{font-size:.8rem;color:var(--t3);line-height:1.5}
.voltar{display:inline-flex;align-items:center;gap:.4rem;font-size:.75rem;color:var(--t3);cursor:pointer;margin-bottom:.9rem;transition:color var(--tr);background:none;border:none;font-family:'Plus Jakarta Sans',sans-serif;font-weight:600}
.voltar:hover{color:var(--ac)}
.voltar .bi{font-size:.9rem}

/* ══ PATROCINADORES CARDS ════════════════════════════════════ */
.pats-grid{display:grid;gap:1rem;grid-template-columns:1fr}
@media(min-width:600px){.pats-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.pats-grid{grid-template-columns:repeat(3,1fr)}}

.pat-card{background:var(--bg2);border:1px solid var(--ln);border-radius:var(--r);overflow:hidden;transition:transform var(--tr),box-shadow var(--tr),border-color var(--tr)}
.pat-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.12);border-color:var(--ln2)}
.pat-card.expirando{border-color:rgba(248,113,113,.35)}
.pat-card-topo{height:3px;background:linear-gradient(90deg,var(--ac-d),var(--ac-l))}
.pat-card.expirando .pat-card-topo{background:linear-gradient(90deg,var(--vm),#f59e0b)}
.pat-card-logo{
  height:90px;display:flex;align-items:center;justify-content:center;
  border-bottom:1px solid var(--ln);background:var(--bg3);font-size:2.5rem;
  position:relative;overflow:hidden;
}
.pat-card-logo img{max-height:70px;max-width:90%;object-fit:contain}
.pat-card-logo .pat-logo-fallback{font-size:2rem;color:var(--t3)}
.pat-card-expira-badge{position:absolute;top:.5rem;right:.5rem}
.pat-card-body{padding:.85rem .9rem}
.pat-card-nome{font-weight:800;font-size:.9rem;letter-spacing:-.02em;margin-bottom:.3rem}
.pat-card-info{font-size:.73rem;color:var(--t2);margin-bottom:.6rem;display:flex;flex-direction:column;gap:.15rem}
.pat-card-info .bi{color:var(--t3);width:14px}
.pat-card-nums{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:.7rem}
.pat-num{background:var(--bg3);border:1px solid var(--ln);border-radius:var(--r-xs);padding:.55rem .7rem}
.pat-num-lbl{font-size:.6rem;color:var(--t3);text-transform:uppercase;letter-spacing:.06em;font-weight:700;margin-bottom:.15rem}
.pat-num-val{font-family:'JetBrains Mono',monospace;font-size:.95rem;font-weight:600}
.pat-card-actions{display:flex;flex-wrap:wrap;gap:.35rem;border-top:1px solid var(--ln);padding:.65rem .9rem}

/* ══ LOGIN ════════════════════════════════════════════════════ */
.login-pagina{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);position:relative;overflow:hidden}
.login-fundo{position:absolute;inset:0;background:radial-gradient(ellipse 60% 50% at 15% 40%,var(--ac-g),transparent),radial-gradient(ellipse 50% 60% at 85% 30%,rgba(96,165,250,.05),transparent)}
.login-card{background:var(--bg2);border:1px solid var(--ln2);border-radius:var(--r);padding:2.5rem 2rem;width:100%;max-width:390px;position:relative;z-index:1;box-shadow:0 24px 64px rgba(0,0,0,.2)}
.login-logo{display:flex;align-items:center;gap:.85rem;margin-bottom:2rem}
.login-logo .logo-karate{width:44px;height:44px;border-radius:13px}
.login-logo h1{font-size:1.25rem;font-weight:800;letter-spacing:-.03em}

/* ══ SCROLLBAR ════════════════════════════════════════════════ */

/* ══ FAB ════════════════════════════════════════════════════ */
.fab{
  position:fixed;bottom:calc(3.5rem + 14px);right:1.1rem;
  width:50px;height:50px;border-radius:50%;
  background:linear-gradient(135deg,var(--ac-d),var(--ac));
  color:#0c0c0d;border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 16px var(--ac-g);
  transition:transform var(--tr),box-shadow var(--tr);
  z-index:80;font-size:1.3rem;
}
.fab:hover{transform:scale(1.07);box-shadow:0 6px 20px var(--ac-g)}
.fab:active{transform:scale(.96)}
@media(min-width:720px){.fab{display:none}}

::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--ln2);border-radius:4px}
::-webkit-scrollbar-thumb:hover{background:var(--t3)}

/* ══ FOTO RODAPÉ COM ÍCONES ══════════════════════════════════ */
.foto-rodape{
  background:var(--bg3);border-top:1px solid var(--ln);
  padding:.35rem .45rem;display:flex;align-items:center;gap:.3rem;
  min-height:30px;
}
.foto-leg-texto{
  flex:1;font-size:.67rem;color:var(--t2);
  overflow:hidden;white-space:nowrap;text-overflow:ellipsis;
}
.foto-leg-vazio{
  flex:1;font-size:.67rem;color:var(--t3);font-style:italic;
}
.foto-icon-row{display:flex;gap:.25rem;flex-shrink:0}
.foto-icon-btn{
  width:26px;height:26px;border-radius:6px;border:none;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:all var(--tr);font-size:.8rem;
}
.foto-icon-btn.edit{background:var(--ac-g);color:var(--ac)}
.foto-icon-btn.edit:hover{background:var(--ac);color:#0c0c0d}
.foto-icon-btn.del{background:var(--vm-g);color:var(--vm)}
.foto-icon-btn.del:hover{background:var(--vm);color:#fff}

