:root{
  --yellow:#F5D800;--yellow-d:#C9A800;--yellow-l:#FFFBE0;
  --blue:#1A5BA6;--blue-d:#0E3D73;--blue-l:#E8F0FB;
  --navy:#0E1E3A;--navy2:#162a4a;
  --white:#FFFFFF;--txt:#1A1A1A;--txt2:#4A5568;--txt3:#9AA5B1;
  --card:#FFFFFF;--bg:#F7F8FA;--border:rgba(0,0,0,0.08);
  --green:#1a7a45;--green-l:#e6f5ee;
  --red:#C0392B;--red-l:#fdecea;
  --orange:#E07020;--orange-l:#FFF0E0;
  --r:14px;--r-sm:8px;
  --safe-top:env(safe-area-inset-top,0px);
  --safe-bot:env(safe-area-inset-bottom,0px);
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{height:100%;overflow:hidden;font-family:'Plus Jakarta Sans',sans-serif;background:var(--bg);color:var(--txt)}
#app{display:flex;flex-direction:column;height:var(--app-height, 100dvh);overflow:hidden}

/* ONBOARDING */
#onboarding{position:fixed;inset:0;background:var(--navy);z-index:1000;display:flex;flex-direction:column;overflow-y:auto;padding:calc(var(--safe-top) + 1.5rem) 1.5rem calc(var(--safe-bot) + 2rem)}
.ob-logo{text-align:center;margin-bottom:1.5rem}
.ob-logo img{width:90px;height:90px;object-fit:contain;border-radius:50%;border:3px solid var(--yellow);padding:3px;background:rgba(255,255,255,.05)}
.ob-title{font-family:'Syne',sans-serif;font-size:26px;font-weight:800;color:var(--white);line-height:1;margin-top:.6rem}
.ob-sub{font-size:11px;color:rgba(255,255,255,.4);margin-top:4px;letter-spacing:2px;text-transform:uppercase}
.ob-step{display:none}.ob-step.active{display:block}
.ob-heading{font-family:'Syne',sans-serif;font-size:20px;font-weight:700;color:var(--white);margin-bottom:.4rem}
.ob-desc{font-size:13px;color:rgba(255,255,255,.5);margin-bottom:1.25rem;line-height:1.6}
.ob-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:1.5rem}
.ob-card{background:rgba(255,255,255,.06);border:1.5px solid rgba(255,255,255,.1);border-radius:var(--r);padding:1rem;cursor:pointer;transition:all .15s;text-align:center}
.ob-card.sel{background:rgba(245,216,0,.12);border-color:var(--yellow)}
.ob-card-icon{font-size:26px;margin-bottom:5px}
.ob-card-label{font-size:13px;font-weight:600;color:var(--white)}
.ob-card-sub{font-size:11px;color:rgba(255,255,255,.35);margin-top:2px}
.ob-label{font-size:11px;font-weight:700;color:rgba(255,255,255,.45);text-transform:uppercase;letter-spacing:1.2px;margin-bottom:6px;display:block}
.ob-select{width:100%;padding:12px 14px;background:rgba(255,255,255,.07);border:1.5px solid rgba(255,255,255,.12);border-radius:var(--r-sm);color:var(--white);font-size:15px;font-family:'Plus Jakarta Sans',sans-serif;appearance:none;margin-bottom:1rem;outline:none}
.ob-select:focus{border-color:var(--yellow)}
.ob-select option{background:#0E1E3A;color:#fff}
.ob-input{width:100%;padding:12px 14px;background:rgba(255,255,255,.07);border:1.5px solid rgba(255,255,255,.12);border-radius:var(--r-sm);color:var(--white);font-size:16px;font-family:'Plus Jakarta Sans',sans-serif;outline:none;margin-bottom:.75rem;letter-spacing:2px}
.ob-input:focus{border-color:var(--yellow)}
.ob-input-wrap{position:relative;display:flex;align-items:center}
.ob-input-wrap .ob-input{padding-right:44px;margin-bottom:0}
.ob-input-wrap{margin-bottom:.75rem}
.ob-eye-toggle{position:absolute;right:14px;display:flex;align-items:center;justify-content:center;height:100%;font-size:18px;line-height:1;cursor:pointer;user-select:none;opacity:.8}
.ob-eye-toggle:active{opacity:1}
.ob-input::placeholder{color:rgba(255,255,255,.3);letter-spacing:0}
.ob-input.error{border-color:#e74c3c;animation:shake .3s}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
.ob-error{font-size:12px;color:#e74c3c;margin-bottom:.75rem;display:none}
.ob-error.show{display:block}
.ob-info-box{background:rgba(245,216,0,.08);border:1px solid rgba(245,216,0,.2);border-radius:var(--r-sm);padding:10px 12px;font-size:12px;color:rgba(255,255,255,.55);line-height:1.5;margin-bottom:1rem}
.ob-info-box strong{color:var(--yellow)}
.ob-btn{width:100%;padding:13px;background:var(--yellow);border:none;border-radius:var(--r-sm);color:var(--navy);font-size:15px;font-weight:700;font-family:'Plus Jakarta Sans',sans-serif;cursor:pointer;margin-top:.25rem;transition:opacity .15s}
.ob-btn:disabled{opacity:.3;cursor:not-allowed}
.ob-btn-sec{background:transparent;border:1.5px solid rgba(255,255,255,.12);color:rgba(255,255,255,.5);margin-top:8px;font-weight:500}

/* HEADER */
#header{padding:calc(var(--safe-top) + 8px) 16px 8px;background:var(--navy);display:flex;align-items:center;justify-content:space-between;flex-shrink:0;border-bottom:2px solid var(--yellow)}
.hdr-logo{display:flex;align-items:center;gap:10px}
.hdr-logo img{width:32px;height:32px;object-fit:contain;border-radius:50%;border:2px solid var(--yellow)}
.hdr-title{font-family:'Syne',sans-serif;font-size:16px;font-weight:800;color:var(--white);line-height:1}
.hdr-sub{font-size:8px;color:rgba(255,255,255,.4);letter-spacing:1.5px;text-transform:uppercase}
.hdr-right{display:flex;align-items:center;gap:8px}
.hdr-live{display:flex;align-items:center;gap:5px;background:rgba(192,57,43,.15);border:1px solid rgba(192,57,43,.3);border-radius:99px;padding:4px 10px}
.hdr-live-dot{width:6px;height:6px;border-radius:50%;background:#e74c3c;animation:pulse 1.5s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
.hdr-live-txt{font-size:10px;font-weight:700;color:#e74c3c;letter-spacing:.5px}
.hdr-profile{background:var(--white);border:1px solid #000;border-radius:99px;padding:8px 8px;font-size:11px;color:#000;font-weight:600;cursor:pointer;max-width:140px;min-width:90px;min-height:42px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:5px}
.hdr-club-logo{width:22px;height:22px;border-radius:50%;object-fit:cover;flex-shrink:0;border:1.5px solid #000;background:var(--white)}
.hdr-logo-escalao{display:inline-flex;align-items:center;gap:2px}
.hdr-escalao{font-size:9px}
.hdr-dot{font-size:16px}

/* SCROLL + PAGES */
#scroll{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;position:relative}
.page{display:none;padding:12px 14px 90px}.page.active{display:block}

/* PULL TO REFRESH */
#ptr-indicator{position:fixed;top:var(--safe-top);left:0;right:0;height:140px;display:flex;align-items:center;justify-content:center;transform:translateY(-140px);pointer-events:none;z-index:1200}
#ptr-ring{width:36px;height:36px;padding:5px;background:var(--card);border-radius:50%;box-shadow:0 2px 8px rgba(0,0,0,.18);overflow:visible}
.ptr-arc{stroke:var(--blue-l);transition:stroke .15s}
.ptr-arc-fill{fill:var(--blue-l);transition:fill .15s}
#ptr-indicator.ready .ptr-arc{stroke:var(--blue)}
#ptr-indicator.ready .ptr-arc-fill{fill:var(--blue)}
#ptr-indicator.refreshing #ptr-ring{animation:spin .8s linear infinite}
#ptr-indicator.refreshing .ptr-arc{stroke:var(--blue)}
#ptr-indicator.refreshing .ptr-arc-fill{fill:var(--blue)}

/* NAV */
#nav{display:flex;background:var(--navy);border-top:2px solid var(--yellow);padding:0 0 var(--safe-bot);flex-shrink:0}
.nav-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 2px;cursor:pointer;border:none;background:none;color:rgba(255,255,255,.35);font-size:9px;font-family:'Plus Jakarta Sans',sans-serif;font-weight:600;transition:color .15s;gap:3px}
.nav-btn.active{color:var(--yellow)}
.nav-icon{font-size:18px}
@media (orientation: landscape){
  .nav-btn{flex-direction:row;gap:6px}
}

/* CARDS */
.card{background:var(--card);border-radius:var(--r);border:1px solid var(--border);overflow:hidden;margin-bottom:10px}
.card-header{padding:10px 14px 8px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;background:var(--navy)}
.card-title{font-size:11px;font-weight:700;color:rgba(255,255,255,.7);text-transform:uppercase;letter-spacing:.8px}
.card-badge{font-size:10px;font-weight:700;color:var(--yellow);background:rgba(245,216,0,.1);border:1px solid rgba(245,216,0,.2);border-radius:99px;padding:2px 8px}

/* HERO */
.hero-card{background:var(--navy);border-radius:var(--r);padding:16px;margin-bottom:12px;position:relative;overflow:hidden;border:1px solid rgba(245,216,0,.12)}
.hero-card.blue-bg{background:var(--blue-d);border-color:rgba(26,91,166,.3)}
.hero-top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;margin-bottom:12px}
.hero-top .hero-badge{justify-self:start}
.hero-badge{display:inline-flex;align-items:center;gap:5px;background:rgba(245,216,0,.12);border:1px solid rgba(245,216,0,.3);border-radius:99px;padding:3px 10px;font-size:10px;font-weight:700;color:var(--yellow);text-transform:uppercase;letter-spacing:.8px}
.hero-badge.loss{background:rgba(192,57,43,.12);border-color:rgba(192,57,43,.3);color:#e87065}
.hero-badge.win{background:rgba(26,122,69,.15);border-color:rgba(26,122,69,.35);color:#3ecf82}
.hero-game-id{justify-self:center;font-size:14px;font-weight:700;color:rgba(255,255,255,.55)}
.match-row{display:flex;align-items:flex-start;gap:8px}
.match-team{flex:1;text-align:center;min-width:0}
.match-team:first-child{padding-right:14px}
.match-team:last-child{padding-left:14px}
.match-team-abbr{position:relative;overflow:hidden;width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Syne',sans-serif;font-size:13px;font-weight:800;margin:0 auto 5px}
.match-team-abbr.home{background:var(--white);color:var(--yellow);border:1.5px solid #000}
.match-team-abbr.away{background:var(--white);color:#7EB3F5;border:1.5px solid #000}
.match-team-abbr img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.match-team-name{font-size:11px;color:rgba(255,255,255,.7);line-height:1.2;font-weight:500}
.match-team-name.my-team-name{font-weight:800;color:#fff;font-size:12.5px}
.match-score{text-align:center;flex-shrink:0;min-width:64px}
.match-score-num{font-family:'Syne',sans-serif;font-size:34px;font-weight:800;color:var(--white);line-height:1;letter-spacing:-2px}
.match-score-sets{font-size:10px;color:rgba(255,255,255,.3);margin-top:5px;display:flex;gap:3px;justify-content:center;flex-wrap:wrap}
.match-score-set-chip{font-size:8px;background:rgba(255,255,255,.08);border-radius:50px;padding:1px 4px;color:rgba(255,255,255,.6);font-weight:600}
.match-meta{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.07)}
.match-meta-status{margin-left:auto;font-weight:600;background:rgba(255,255,255,.08);border-radius:99px;padding:2px 8px;font-size:10px}
.match-meta-item{font-size:11px;color:rgba(255,255,255,.4)}

/* STATS */
.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}
.stat-chip{background:var(--card);border:1px solid var(--border);border-radius:var(--r-sm);padding:10px;text-align:center}
.stat-chip-num{font-family:'Syne',sans-serif;font-size:22px;font-weight:800;color:var(--blue);line-height:1}
.stat-chip-num.win{color:var(--green)}
.stat-chip-num.loss{color:var(--red)}
.stat-chip-label{font-size:10px;color:var(--txt3);margin-top:2px;font-weight:600;text-transform:uppercase;letter-spacing:.4px}

/* SECTION */
.sec-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;margin-top:25px}
.sec-title{font-size:11px;font-weight:700;color:var(--txt2);text-transform:uppercase;letter-spacing:1px}

/* GAME ITEM */
.game-item{padding:11px 5px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px}
.game-item:last-child{border-bottom:none}
.game-time{text-align:center;flex-shrink:0;width:50px;margin-right:-6px}
.game-time-dia{font-size:9px;color:var(--txt3);text-transform:uppercase;font-weight:700}
.game-time-hora{font-size:13px;font-weight:700;color:var(--blue)}
.game-time-id{font-size:11px;color:var(--txt3);margin-top:8px}
.game-teams{flex:1;min-width:0}
.game-teams-row{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:3px}
.game-teams-row:last-of-type{margin-bottom:0}
.game-team-name{font-size:13px;font-weight:400;color:var(--txt);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:160px}
.game-team-name.my-team{color:var(--blue);font-weight:700}
.game-team-line{display:flex;align-items:center;gap:5px;min-width:0}
.game-team-logo{width:16px;height:16px;border-radius:50%;object-fit:cover;flex-shrink:0}
.class-team-cell{display:inline-flex;align-items:center;gap:5px;max-width:100%}
.class-team-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.game-scores{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;flex-shrink:0;margin:0 10px 0 2px}
.game-score{font-family:'Syne',sans-serif;font-size:18px;font-weight:800;flex-shrink:0}
.game-score.win{color:var(--green)}.game-score.loss{color:var(--red)}
.game-badge{font-size:10px;padding:4px 7px;border-radius:99px;font-weight:700;flex-shrink:0;min-width:66px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:1px}
.badge-top{font-size:8px;font-weight:600;opacity:.7}
.badge-done{background:var(--blue-l);color:var(--blue-d)}
.badge-pending{background:#fffbe0;color:#856404;min-width:auto}
.badge-provisorio{background:var(--orange-l);color:var(--orange)}
.badge-live{background:var(--red-l);color:var(--red);animation:pulse 1.5s infinite}
.game-campo{font-size:10px;color:var(--txt3);margin-top:3px}
.campo-pav{cursor:pointer}
.campo-pav:active{opacity:.6}
.game-escalao{font-size:10px;color:var(--txt3);margin-top:2px}
.game-localizacao{font-size:10px;color:var(--txt3);margin-top:2px;cursor:pointer}
.game-localizacao:active{opacity:.6}
.sets-row{display:flex;gap:4px;margin-top:4px;flex-wrap:wrap}
.set-chip{font-size:10px;border-radius:4px;padding:2px 6px;font-weight:600}

/* FILTER BAR */
.filter-bar{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;margin-bottom:10px;scrollbar-width:none;-webkit-mask-image:linear-gradient(to right,black 80%,transparent 100%);mask-image:linear-gradient(to right,black 80%,transparent 100%)}
.filter-bar::-webkit-scrollbar{display:none}
.filter-bar.scrolled-end{-webkit-mask-image:none;mask-image:none}
.filter-pill{padding:6px 13px;border-radius:99px;font-size:12px;font-weight:600;border:1.5px solid var(--border);background:var(--card);color:var(--txt2);cursor:pointer;white-space:nowrap;flex-shrink:0;transition:all .12s}
.filter-pill.active{background:var(--navy);border-color:var(--navy);color:var(--yellow)}

/* CLASSIFICATION */
.class-table{width:100%;border-collapse:collapse;font-size:13px}
.class-table th{padding:7px 8px;text-align:center;vertical-align:middle;font-size:10px;font-weight:700;color:rgba(255,255,255,.7);text-transform:uppercase;letter-spacing:.6px;background:var(--navy)}
.class-table td{padding:9px 8px;border-bottom:1px solid var(--border);color:var(--txt);text-align:center;vertical-align:middle}
.class-table tr:last-child td{border-bottom:none}
.class-table tr.my-row td{background:var(--blue-l)}
.class-table th:not(:nth-child(2)),.class-table td:not(:nth-child(2)){width:1%;white-space:nowrap}
.class-table th:nth-child(2),.class-table td:nth-child(2){text-align:left}
.th-frac{display:inline-flex;flex-direction:column;align-items:center;line-height:1.3;font-size:9px;letter-spacing:0;text-transform:none;font-weight:700}
.th-frac-num{border-bottom:1px solid rgba(255,255,255,.5);padding:0 2px}
.th-frac-den{padding:0 2px}
@media (orientation: portrait){.col-sets{display:none}}
.pos-num{font-family:'Syne',sans-serif;font-size:14px;font-weight:800}
.pos-1{color:var(--yellow-d)}.pos-2{color:var(--txt2)}.pos-3{color:#8B5E3C}
.pts-num{font-family:'Syne',sans-serif;font-size:14px;font-weight:800;color:var(--blue)}
.class-note{padding:8px 14px;font-size:11px;color:var(--txt2);text-align:center;border-top:1px solid var(--border)}

/* Classificação Final — lista simples de posições, sem colunas de stats */
.class-final-row{display:flex;align-items:center;gap:10px;padding:9px 14px;border-bottom:1px solid var(--border)}
.class-final-row:last-child{border-bottom:none}
.class-final-row.my-row{background:var(--blue-l)}
.class-final-row .pos-num{width:30px;flex-shrink:0;text-align:center;display:inline-flex;align-items:center;justify-content:center}
.class-team-pending{font-size:12px;font-style:italic;color:var(--txt3)}

/* Tabela "Melhores" — letra um pouco menor (mais colunas visíveis de uma vez) */
.class-table-melhores{font-size:12px}
.class-table-melhores th{font-size:9px}
.class-table-melhores .th-frac{font-size:8px}
.class-table-melhores .pos-num{font-size:13px}
.class-table-melhores .pts-num{font-size:13px}
/* Nome da equipa: em vez de cortar com "...", desliza-se com o dedo dentro
   da própria célula para revelar o resto do nome (sem barra de scroll). */
.class-team-td-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap;scrollbar-width:none}
.class-team-td-scroll::-webkit-scrollbar{display:none}
.class-team-td-scroll .class-team-cell{max-width:none}
.class-team-td-scroll .class-team-name{overflow:visible;text-overflow:clip;white-space:nowrap}

/* TRANSPORT */
.transport-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;margin-bottom:8px}
.transport-ape{padding:14px 16px;display:flex;align-items:center;gap:10px;font-size:14px;color:var(--txt2)}
.transport-ape-icon{font-size:24px}
.leg{display:flex;align-items:stretch;gap:0;padding:12px 14px;border-bottom:1px solid var(--border)}
.leg:last-child{border-bottom:none}
.leg-line{display:flex;flex-direction:column;align-items:center;margin-right:12px;flex-shrink:0}
.leg-dot{width:10px;height:10px;border-radius:50%;background:var(--blue);flex-shrink:0}
.leg-dot.end{background:var(--yellow-d)}
.leg-connector{width:2px;flex:1;background:var(--border);margin:3px 0}
.leg-body{flex:1;display:flex;flex-direction:column;gap:8px}
.leg-stop{display:flex;justify-content:space-between;align-items:flex-start}
.leg-place{font-size:13px;font-weight:500;color:var(--txt)}
.leg-hora{font-size:13px;font-weight:700;color:var(--blue);font-family:'Syne',sans-serif}
.leg-arrow{text-align:center;font-size:11px;color:var(--txt3);padding:2px 0}
.transport-locked{text-align:center;padding:2.5rem 1rem}
.transport-locked-icon{font-size:36px;margin-bottom:.75rem}
.transport-key-input{width:100%;padding:12px;border:1.5px solid var(--border);border-radius:var(--r-sm);font-size:15px;font-family:'Plus Jakarta Sans',sans-serif;color:var(--txt);background:var(--bg);letter-spacing:1px;margin-bottom:.5rem;outline:none}
.transport-key-input:focus{border-color:var(--blue)}
.transport-key-input.error{border-color:var(--red);animation:shake .3s}
.transport-key-err{font-size:12px;color:var(--red);margin-bottom:.5rem;display:none}
.transport-key-err.show{display:block}
.transport-key-btn{width:100%;padding:12px;background:var(--navy);color:var(--yellow);font-size:14px;font-weight:700;border:none;border-radius:var(--r-sm);cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif}

/* LOGISTICA TABS */
.aloj-card{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:12px 14px;margin-bottom:12px}
.aloj-icon{font-size:22px;flex-shrink:0}
.aloj-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--txt3)}
.aloj-val{font-size:14px;font-weight:600;color:var(--txt);margin-top:2px}
.log-tabs{display:flex;background:var(--card);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;margin-bottom:12px}
.log-tab{flex:1;padding:10px;text-align:center;font-size:13px;font-weight:600;color:var(--txt2);cursor:pointer;border:none;background:none;font-family:'Plus Jakarta Sans',sans-serif;transition:all .15s}
.log-tab.active{background:var(--navy);color:var(--yellow)}
.log-panel{display:none}.log-panel.active{display:block}

/* RESULT ENTRY — Pavilhão */
.pav-game-item{background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:14px;margin-bottom:10px;cursor:pointer;transition:all .15s}
.pav-game-item:active{transform:scale(.99)}
.pav-game-item.has-result{border-color:rgba(26,91,166,.3);background:var(--blue-l)}
.pav-game-teams{font-size:14px;font-weight:600;color:var(--txt);margin-bottom:6px;line-height:1.4}
.pav-game-meta{font-size:11px;color:var(--txt3);display:flex;gap:10px}
.pav-game-score{font-family:'Syne',sans-serif;font-size:20px;font-weight:800;color:var(--blue);margin-top:6px}
.pav-game-pending{font-size:12px;color:var(--txt3);margin-top:4px}

/* RESULT MODAL */
#result-modal{position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:600;display:none;align-items:flex-end}
#result-modal.open{display:flex}
.result-sheet{background:var(--card);border-radius:var(--r) var(--r) 0 0;padding:1.5rem 1.5rem calc(var(--safe-bot) + 1.5rem);width:100%;max-height:90dvh;overflow-y:auto}
.result-sheet h3{font-family:'Syne',sans-serif;font-size:17px;font-weight:800;color:var(--navy);margin-bottom:4px}
.result-teams{font-size:13px;color:var(--txt2);margin-bottom:1.25rem}
.set-entry{margin-bottom:1rem}
.set-entry-label{font-size:11px;font-weight:700;color:var(--txt2);text-transform:uppercase;letter-spacing:.8px;margin-bottom:8px}
.set-scores{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px}
.set-score-input{width:100%;padding:12px;border:1.5px solid var(--border);border-radius:var(--r-sm);font-size:24px;font-weight:800;font-family:'Syne',sans-serif;text-align:center;color:var(--navy);background:var(--bg);outline:none}
.set-score-input:focus{border-color:var(--blue)}
.set-vs{font-size:16px;font-weight:700;color:var(--txt3);text-align:center}
.set-add-btn{width:100%;padding:10px;border:1.5px dashed var(--border);border-radius:var(--r-sm);background:none;font-size:13px;color:var(--txt3);cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;margin-top:.5rem}
.result-summary{background:var(--blue-l);border:1px solid rgba(26,91,166,.2);border-radius:var(--r-sm);padding:10px 12px;margin-bottom:1rem;font-size:14px;font-weight:600;color:var(--blue-d);text-align:center}
.result-submit-btn{width:100%;padding:14px;background:var(--navy);color:var(--yellow);font-size:15px;font-weight:700;border:none;border-radius:var(--r-sm);cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif}
.result-cancel-btn{width:100%;padding:12px;background:transparent;color:var(--txt2);font-size:14px;font-weight:500;border:1.5px solid var(--border);border-radius:var(--r-sm);cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;margin-top:8px}

/* PROFILE PANEL */
#profile-panel{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:500;display:none;align-items:flex-end}
#profile-panel.open{display:flex}
.profile-sheet{background:var(--card);border-radius:var(--r) var(--r) 0 0;padding:1.5rem 1.5rem calc(var(--safe-bot) + 1.5rem);width:100%}
.profile-sheet h3{font-family:'Syne',sans-serif;font-size:18px;font-weight:800;color:var(--navy);margin-bottom:1rem}
.profile-info-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--border);font-size:14px}
.profile-info-row:last-of-type{border-bottom:none}
@media (orientation: landscape){
  #profile-info{display:grid;grid-template-columns:1fr 1fr;gap:2px 16px}
  .profile-info-row{border-bottom:none;padding:6px 0}
}
.profile-info-label{color:var(--txt2)}
.profile-info-val{font-weight:700;color:var(--navy);display:inline-flex;align-items:center;gap:6px}
.profile-club-logo{width:20px;height:20px;border-radius:50%;object-fit:cover;border:1.5px solid #000;background:var(--white)}

/* EMPTY + LOADING */
.empty{text-align:center;padding:3rem 1rem;color:var(--txt3)}
.empty-icon{font-size:38px;margin-bottom:8px}
.empty-txt{font-size:14px;line-height:1.5}
.loading{text-align:center;padding:2rem;color:var(--txt3);font-size:13px}

/* LOADING SPINNER */
.loading-spinner{width:32px;height:32px;margin:60px auto 0;border:3px solid var(--border);border-top-color:var(--blue);border-radius:50%;animation:spin .7s linear infinite}
.loading-text{text-align:center;margin-top:12px;font-size:13px;color:var(--txt3)}
@keyframes spin{to{transform:rotate(360deg)}}

/* TOAST */
#toast{position:fixed;bottom:calc(var(--safe-bot) + 80px);left:50%;transform:translateX(-50%) translateY(20px);background:var(--navy);color:var(--yellow);padding:10px 20px;border-radius:99px;font-size:13px;font-weight:600;opacity:0;transition:all .3s;z-index:900;white-space:nowrap;border:1px solid rgba(245,216,0,.3)}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* OFFLINE BANNER */
#offline-banner{position:fixed;top:calc(var(--safe-top) + 8px);left:50%;transform:translateX(-50%) translateY(-20px);background:var(--orange-l);color:var(--orange);padding:8px 16px;border-radius:99px;font-size:12px;font-weight:600;opacity:0;pointer-events:none;transition:all .3s;z-index:1100;border:1px solid rgba(224,112,32,.3);max-width:90vw;text-align:center;cursor:pointer}
#offline-banner.show{opacity:1;transform:translateX(-50%) translateY(0);pointer-events:auto}

/* UPDATE BANNER — elemento de layout (não overlay): ao aparecer, empurra o
   #scroll para baixo em vez de tapar conteúdo. Anima via max-height, já que
   a altura de conteúdo é fixa/previsível (uma linha de texto + botão). */
#update-banner{flex-shrink:0;overflow:hidden;max-height:0;padding:0 16px;background:var(--navy);color:var(--white);display:flex;align-items:center;justify-content:center;gap:10px;font-size:12px;font-weight:600;white-space:nowrap;border-bottom:0 solid rgba(245,216,0,.3);transition:max-height .35s ease, padding .35s ease}
#update-banner.show{max-height:56px;padding:10px 16px;border-bottom-width:1px}
#update-banner button{background:var(--yellow);color:var(--navy);border:none;border-radius:99px;padding:6px 14px;font-size:12px;font-weight:700;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;flex-shrink:0}
