/* ═══ Estilos da app — extraído de index.html ═══ */
    /* Fontes carregadas via <link> no head */

    /* ══ LIGHT THEME (default): verde + branco ══ */
    :root{


      --bg-top:#f4fbf6; --bg-bottom:#e8f6ed;
      --card:#ffffff; --card-soft:#f3faf5;
      --coral:#1a9b5c; --coral-dark:#127a47; --coral-soft:#e1f5e8;
      --peach:#5cc98a; --rose:#2bb673;
      --ink:#16261c; --ink-soft:#5c6d62; --ink-dim:#94a39a;
      --line:#e3f0e7;
      --green:var(--coral); --green-light:var(--coral-dark); --green-dark:#0d5c34;
      --black:var(--bg-bottom); --black-soft:#ffffff; --black-card:#ffffff;
      --grey:#eef8f1; --grey-mid:#cdeada; --grey-light:var(--ink-soft);
      --white:var(--ink); --white-soft:var(--ink);
      --yellow:#e0a000; --blue:#2f6fb0; --red:#e0445c;
      --font-display:'Poppins',sans-serif; --font-body:'Inter',sans-serif; --font-mono:'Inter',sans-serif;
      --overlay:rgba(15,30,20,.35); --shadow-tint:rgba(20,90,55,.16); --shadow-tint-soft:rgba(20,90,55,.06);
    }

    /* ══ DARK THEME: verde + azul-escuro ══ */
    body.dark{
      --bg-top:#0a1628; --bg-bottom:#081120;
      --card:#101f36; --card-soft:#0c1830;
      --coral:#22c376; --coral-dark:#1aa863; --coral-soft:rgba(34,195,118,.14);
      --peach:#5cc98a; --rose:#2bb673;
      --ink:#eaf3ee; --ink-soft:#94aab8; --ink-dim:#5c7184;
      --line:#1c2e48;
      --green:var(--coral); --green-light:var(--coral); --green-dark:#168f56;
      --black:var(--bg-top); --black-soft:var(--card); --black-card:var(--card);
      --grey:#16273f; --grey-mid:#22364f; --grey-light:var(--ink-soft);
      --white:var(--ink); --white-soft:var(--ink);
      --yellow:#f0b429; --blue:#5b9bd9; --red:#ff5d76;
      --overlay:rgba(2,6,14,.55); --shadow-tint:rgba(0,0,0,.4); --shadow-tint-soft:rgba(0,0,0,.2);
    }

    *{box-sizing:border-box;margin:0;padding:0}
    html{background:var(--bg-bottom)}
    html { 
      height: 100%;
      font-size: 112%;
      padding-top: env(safe-area-inset-top);
      padding-bottom: env(safe-area-inset-bottom);
      padding-left: env(safe-area-inset-left);
      padding-right: env(safe-area-inset-right);
      box-sizing: border-box;
      overscroll-behavior-y: none;
    }
    body{
      font-family:var(--font-body);color:var(--ink);min-height:100vh;overflow-x:hidden;
      background:linear-gradient(160deg,var(--bg-top) 0%,var(--bg-bottom) 60%,var(--bg-bottom) 100%);
      background-attachment:fixed;transition:background .3s ease,color .3s ease;
      overscroll-behavior-y: none;
    }
    #root{min-height:100vh;display:flex;flex-direction:column}
    .app-container{max-width:480px;margin:0 auto;display:flex;flex-direction:column;min-height:100vh;width:100%}
    .page{flex:1;padding:0 0 90px;overflow-y:auto;-webkit-overflow-scrolling:touch;}
    .page-chat{display:flex;flex-direction:column;overflow:hidden;flex:1;min-height:0;padding-bottom:90px;}
    h1,h2,h3{font-family:var(--font-display);color:var(--ink)}

    /* ── HEADER ── */
    .header{
      background:color-mix(in srgb, var(--bg-top) 88%, transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
      border-bottom:1px solid var(--line);
      padding:16px 18px;
      display:flex;align-items:center;gap:12px;
      position:sticky;top:0;z-index:100;width:100%;
    }
    .header-logo{font-family:var(--font-display);font-size:1.5rem;font-weight:800;color:var(--ink);letter-spacing:-.3px}
    .header-sub{font-size:.74rem;color:var(--ink-dim);text-transform:uppercase;letter-spacing:1.5px;font-weight:600}
    .header-right{margin-left:auto;display:flex;align-items:center;gap:8px}
    .role-badge{font-size:.62rem;padding:4px 10px;border-radius:20px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}
    .role-owner{background:#fff4d6;color:#c98a00}
    body.dark .role-owner{background:rgba(240,180,41,.16);color:#f0b429}
    .role-admin{background:var(--coral-soft);color:var(--coral-dark)}
    body.dark .role-admin{color:var(--coral)}
    .role-player{background:var(--grey);color:var(--ink-soft)}

    /* ── THEME TOGGLE ── */
    .theme-toggle{display:flex;align-items:center;background:var(--grey);border-radius:20px;padding:3px;gap:2px;cursor:pointer;border:1px solid var(--line)}
    .theme-toggle-opt{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.85rem;transition:all .25s cubic-bezier(.34,1.56,.64,1);background:transparent}
    .theme-toggle-opt.active{background:linear-gradient(135deg,var(--coral),var(--coral-dark));box-shadow:0 3px 10px -2px var(--shadow-tint)}

    /* ── NAV ── */
    .bottom-nav{
      position:fixed;
      bottom:14px;
      left:50%;transform:translateX(-50%);width:calc(100% - 28px);max-width:452px;
      background:var(--card);border-radius:26px;box-shadow:0 14px 40px -10px var(--shadow-tint), 0 2px 8px var(--shadow-tint-soft);
      display:flex;z-index:100;padding:6px;border:1px solid var(--line);
    }
    .nav-btn{flex:1;padding:9px 4px;background:none;border:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px;
      color:var(--ink-dim);transition:all .25s cubic-bezier(.34,1.56,.64,1);font-size:.6rem;font-weight:600;position:relative;max-width:96px;border-radius:18px;
    }
    .nav-btn.active{color:#fff;background:linear-gradient(135deg,var(--coral),var(--coral-dark));box-shadow:0 6px 16px -4px var(--shadow-tint)}
    .nav-icon{display:flex;align-items:center;justify-content:center}
    .nav-badge{position:absolute;top:2px;right:calc(50% - 18px);background:var(--red);color:#fff;border-radius:50%;width:15px;height:15px;
      font-size:.65rem;display:flex;align-items:center;justify-content:center;font-weight:700;border:2px solid var(--card);
    }
    .nav-badge.yellow{background:var(--yellow);color:#fff}

    /* ── CARDS ── */
    .card{
      background:var(--card);border:1px solid var(--line);border-radius:24px;padding:20px;margin:14px 16px;
      box-shadow:0 8px 30px -14px var(--shadow-tint), 0 1px 2px var(--shadow-tint-soft);
      position:relative;
    }
    .card-tag{font-size:.62rem;padding:4px 11px;border-radius:20px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}
    .tag-open{background:var(--coral-soft);color:var(--coral-dark)}
    body.dark .tag-open{color:var(--coral)}
    .tag-live{background:rgba(224,68,92,.12);color:#c4304a;animation:pulse 1.6s infinite}
    body.dark .tag-live{color:#ff5d76;background:rgba(255,93,118,.14)}
    .tag-done{background:var(--grey);color:var(--ink-dim)}
    .tag-friendly{background:rgba(47,111,176,.12);color:var(--blue)}
    .msg-delete-btn { opacity: 0 !important; transition: opacity .2s; }
    .msg-delete-btn:active { opacity: 1 !important; }
    /* Long press to reveal - hidden by default on mobile */
    @media (hover: hover) {
      *:hover > .msg-delete-btn { opacity: 0.8 !important; }
    }
    @keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}

    /* ── BUTTONS ── */
    .btn{padding:13px 22px;border-radius:18px;border:none;font-family:var(--font-body);font-weight:700;font-size:.86rem;
      cursor:pointer;transition:all .2s cubic-bezier(.34,1.56,.64,1);display:inline-flex;align-items:center;justify-content:center;gap:6px;
    }
    .btn-primary{background:linear-gradient(135deg,var(--coral),var(--coral-dark));color:#fff;box-shadow:0 10px 26px -8px var(--shadow-tint)}
    .btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 30px -8px var(--shadow-tint)}
    .btn-secondary{background:var(--coral-soft);color:var(--coral-dark)}
    body.dark .btn-secondary{color:var(--coral)}
    .btn-danger{background:linear-gradient(135deg,#e0445c,#c4304a);color:#fff;box-shadow:0 8px 20px -6px rgba(224,68,92,.4)}
    .btn-warning{background:linear-gradient(135deg,#e0a000,#c98a00);color:#fff;box-shadow:0 8px 20px -6px rgba(224,160,0,.4)}
    .btn-ghost{background:var(--card-soft);border:1.5px solid var(--line);color:var(--ink-soft)}
    .btn-ghost:hover{border-color:var(--coral);color:var(--coral-dark)}
    body.dark .btn-ghost:hover{color:var(--coral)}
    .btn-sm{padding:9px 16px;font-size:.76rem;border-radius:14px}
    .btn-xs{padding:6px 11px;font-size:.7rem;border-radius:12px}
    .btn-full{width:100%}
    .btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none;transform:none}

    /* ── SCOREBOARD ── */
    .scoreboard{
      background:linear-gradient(135deg,var(--card),var(--card-soft));
      border:1px solid var(--line);border-radius:24px;padding:20px 16px;
      display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;margin-bottom:12px;
      box-shadow:0 8px 30px -14px var(--shadow-tint);
    }
    .score-num{font-family:var(--font-display);font-size:2.6rem;font-weight:800;line-height:1}
    .score-team-name{font-size:.68rem;letter-spacing:2px;color:var(--ink-dim);text-transform:uppercase;text-align:center;font-weight:700}
    .score-vs{font-size:.65rem;color:var(--ink-dim);font-weight:700}
    .score-dot{width:6px;height:6px;background:var(--coral);border-radius:50%}
    .team-a-color{color:var(--coral)}
    .team-b-color{color:var(--blue)}

    /* ── PLAYER ── */
    .player-avatar{width:40px;height:40px;border-radius:14px;background:linear-gradient(135deg,var(--coral-soft),var(--card-soft));
      display:flex;align-items:center;justify-content:center;
      font-size:.95rem;font-weight:700;color:var(--coral-dark);flex-shrink:0;overflow:hidden;
      box-shadow:0 4px 12px -4px var(--shadow-tint-soft);
    }
    body.dark .player-avatar{color:var(--coral)}
    .player-avatar img{width:100%;height:100%;object-fit:cover}
    .player-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}
    .player-row:last-child{border-bottom:none}

    /* ── STATS PILLS ── */
    .stat-pill{font-size:.72rem;padding:5px 11px;border-radius:10px;font-weight:700;display:inline-flex;align-items:center;gap:4px}
    .pill-goal{background:var(--coral-soft);color:var(--coral-dark)}
    body.dark .pill-goal{color:var(--coral)}
    .pill-assist{background:rgba(47,111,176,.12);color:var(--blue)}
    .pill-finta{background:rgba(224,160,0,.12);color:#c98a00}
    body.dark .pill-finta{color:#f0b429}
    .pill-foul{background:rgba(224,68,92,.12);color:#c4304a}
    body.dark .pill-foul{color:#ff5d76}

    /* ── FORMS ── */
    .form-group{margin-bottom:14px}
    .form-label{display:block;font-size:.72rem;font-weight:700;color:var(--ink-soft);margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}
    .form-input,.form-select,.form-textarea{
      width:100%;padding:13px 16px;border-radius:16px;background:var(--card-soft);border:1.5px solid var(--line);
      color:var(--ink);font-family:var(--font-body);font-size:1rem;outline:none;transition:border-color .2s,box-shadow .2s;
    }
    .form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--coral);box-shadow:0 0 0 4px var(--coral-soft)}
    .form-textarea{resize:vertical;min-height:90px;line-height:1.5}
    .form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}

    /* ── MODALS ── */
    .modal-overlay{position:fixed;inset:0;background:var(--overlay);backdrop-filter:blur(4px);z-index:200;display:flex;align-items:flex-end;justify-content:center}
    .modal{background:var(--card);border-radius:28px 28px 0 0;width:100%;max-width:480px;
      padding:26px 22px;max-height:92vh;overflow-y:auto;box-shadow:0 -20px 60px -20px var(--shadow-tint);border-top:1px solid var(--line);
    }
    .modal-title{font-family:var(--font-display);font-size:1.15rem;font-weight:700;margin-bottom:20px;display:flex;align-items:center;gap:8px;color:var(--ink)}
    .modal-close{margin-left:auto;background:var(--card-soft);border:none;color:var(--ink-soft);font-size:1.1rem;cursor:pointer;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center}

    /* ── TOAST ── */
    .toast{position:fixed;top:74px;left:50%;transform:translateX(-50%);background:var(--card);
      border:1px solid var(--line);color:var(--ink);padding:13px 22px;border-radius:18px;font-size:.85rem;font-weight:600;z-index:300;
      animation:slideDown .3s cubic-bezier(.34,1.56,.64,1);max-width:calc(100vw - 32px);text-align:center;
      box-shadow:0 14px 36px -10px var(--shadow-tint);
    }
    .toast.error{background:rgba(224,68,92,.1);color:#c4304a;box-shadow:0 14px 36px -10px rgba(224,68,92,.3)}
    body.dark .toast.error{color:#ff5d76}
    @keyframes slideDown{from{transform:translateX(-50%) translateY(-20px);opacity:0}to{transform:translateX(-50%) translateY(0);opacity:1}}

    /* ── SECTION HEADERS ── */
    .section-header{padding:14px 16px 8px;display:flex;align-items:center;justify-content:space-between}
    .section-title{font-family:var(--font-display);font-size:1rem;font-weight:700;letter-spacing:-.2px;color:var(--ink)}
    .section-line{flex:1;height:1px;background:var(--line);margin-left:12px}

    /* ── COUNTDOWN ── */
    .countdown{display:flex;gap:8px;justify-content:center;margin:8px 0}
    .countdown-num{font-family:var(--font-display);font-size:1.5rem;font-weight:800;color:var(--coral-dark);display:block}
    body.dark .countdown-num{color:var(--coral)}
    .countdown-label{font-size:.56rem;color:var(--ink-dim);text-transform:uppercase;letter-spacing:1px;font-weight:600}

    /* ── TABS ── */
    .tabs{display:flex;border-bottom:none;margin:0 16px 4px;background:var(--grey);border-radius:16px;padding:4px}
    .tab{flex:1;padding:10px 8px;background:none;border:none;color:var(--ink-dim);font-size:.82rem;
      font-weight:700;cursor:pointer;border-radius:12px;transition:all .2s;text-align:center}
    .tab.active{color:#fff;background:linear-gradient(135deg,var(--coral),var(--coral-dark));box-shadow:0 4px 12px -4px var(--shadow-tint)}

    /* ── TEAMS ── */
    .teams-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:12px 0}
    .team-col{background:var(--card-soft);border:1px solid var(--line);border-radius:18px;overflow:hidden}
    .team-header-a{background:var(--coral-soft);padding:10px;text-align:center;
      font-family:var(--font-display);font-size:.88rem;font-weight:700;color:var(--coral-dark);letter-spacing:1px}
    body.dark .team-header-a{color:var(--coral)}
    .team-header-b{background:rgba(47,111,176,.12);padding:10px;text-align:center;
      font-family:var(--font-display);font-size:.88rem;font-weight:700;color:var(--blue);letter-spacing:1px}
    .team-player{padding:11px 12px;font-size:.88rem;display:flex;align-items:center;gap:6px;border-bottom:1px solid var(--line)}
    .team-player:last-child{border-bottom:none}

    /* ── RANKING ── */
    .rank-row{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}
    .rank-pos{font-family:var(--font-display);font-size:1.1rem;font-weight:800;width:24px;text-align:center;color:var(--ink-dim)}
    .rank-pos.gold{color:#e0a000}
    body.dark .rank-pos.gold{color:#f0b429}
    .rank-pos.silver{color:#9aa6a0}
    .rank-pos.bronze{color:#b87f56}
    .rank-val{font-family:var(--font-display);font-size:1.15rem;font-weight:800;margin-left:auto}

    /* ── MISC ── */
    .empty-state{text-align:center;padding:50px 20px;color:var(--ink-dim)}
    .empty-icon{font-size:2.6rem;margin-bottom:12px}
    .chip{font-size:.72rem;padding:4px 12px;border-radius:20px;background:var(--grey);color:var(--ink-soft);display:inline-block;font-weight:600}
    .chip-green{background:var(--coral-soft);color:var(--coral-dark)}
    body.dark .chip-green{color:var(--coral)}
    .chip-red{background:rgba(224,68,92,.12);color:#c4304a}
    body.dark .chip-red{color:#ff5d76}
    .chip-yellow{background:rgba(224,160,0,.12);color:#c98a00}
    body.dark .chip-yellow{color:#f0b429}
    .info-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}
    .info-row:last-child{border-bottom:none}
    .info-label{font-size:.82rem;color:var(--ink-dim);font-weight:500}
    .info-val{font-size:.95rem;font-weight:700;color:var(--ink)}
    .progress-wrap{background:var(--grey);height:6px;border-radius:6px;overflow:hidden;margin:8px 0}
    .progress-fill{height:100%;background:linear-gradient(90deg,var(--coral),var(--rose));border-radius:6px}

    /* ── LOGIN ── */
    .login-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;background-image:var(--field-bg);background-size:cover;background-position:center}
    .page-bg-field{
      position:relative;
    }
    /* Campo fixo no app-container - não recria ao mudar de página */
    #field-bg-fixed{
      position:fixed;
      top:0; left:0; right:0; bottom:0;
      background-image:var(--field-bg);
      background-size:cover;
      background-position:center center;
      background-repeat:no-repeat;
      z-index:-1;
      pointer-events:none;
      will-change:transform;
      transform:translateZ(0);
      opacity:0;
      transition:opacity .3s ease;
    }
    #field-bg-fixed.visible { opacity:1; }
    .app-container { position:relative; z-index:1; min-height:100vh; }
    .login-logo{font-family:var(--font-display);font-size:2.6rem;font-weight:800;margin-bottom:4px;letter-spacing:-.5px;color:var(--ink)}
    .login-tagline{color:var(--ink-dim);font-size:.82rem;margin-bottom:36px;text-align:center;font-weight:500}
    .login-card{background:var(--card);border:1px solid var(--line);border-radius:28px;padding:30px 26px;width:100%;max-width:360px;
      box-shadow:0 24px 60px -16px var(--shadow-tint)}

    /* ── PHOTO ── */
    .photo-upload-wrap{display:flex;align-items:center;gap:16px;margin-bottom:20px}
    .photo-preview{width:74px;height:74px;border-radius:22px;background:var(--card-soft);display:flex;align-items:center;justify-content:center;
      overflow:hidden;flex-shrink:0;cursor:pointer;box-shadow:inset 0 0 0 1.5px var(--line)}
    .photo-preview img{width:100%;height:100%;object-fit:cover}

    /* ── AI ── */
    @keyframes pulse{0%{box-shadow:0 0 0 0 rgba(26,155,92,.5)}70%{box-shadow:0 0 0 8px rgba(26,155,92,0)}100%{box-shadow:0 0 0 0 rgba(26,155,92,0)}}
    .ai-eval-box{background:rgba(47,111,176,.1);border:1px solid rgba(47,111,176,.2);border-radius:18px;padding:16px;margin-top:12px}
    .ai-eval-title{font-size:.7rem;font-weight:700;color:var(--blue);text-transform:uppercase;letter-spacing:1px;margin-bottom:8px;display:flex;align-items:center;gap:6px}
    .ai-thinking{display:flex;align-items:center;gap:8px;color:var(--ink-dim);font-size:.82rem}
    .ai-dot{width:6px;height:6px;border-radius:50%;background:var(--blue);animation:blink 1s infinite}
    .ai-dot:nth-child(2){animation-delay:.2s}.ai-dot:nth-child(3){animation-delay:.4s}
    @keyframes blink{0%,80%,100%{opacity:.3}40%{opacity:1}}

    /* ── ADDITIONAL COMPONENT CLASSES ── */
    .card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
    .debt-amount{font-size:1.2rem;font-weight:800;color:#c4304a;font-family:var(--font-display)}
    body.dark .debt-amount{color:#ff5d76}
    .player-name{font-weight:700;font-size:.9rem;color:var(--ink)}
    .player-nick{font-size:.75rem;color:var(--ink-dim)}
    .score-team{text-align:center}
    .score-divider{display:flex;flex-direction:column;align-items:center;gap:4px}
    .skill-bar-wrap{display:flex;align-items:center;gap:8px;margin:5px 0}
    .skill-label{font-size:.68rem;color:var(--ink-dim);width:80px;font-weight:500}
    .skill-bar{flex:1;height:6px;background:var(--grey);border-radius:6px;overflow:hidden}
    .skill-fill{height:100%;border-radius:6px;transition:width .6s cubic-bezier(.16,1,.3,1)}
    .skill-val{font-size:.7rem;font-weight:700;width:22px;text-align:right;color:var(--ink)}
    .stat-pills{display:flex;gap:6px;flex-wrap:wrap}
    .photo-upload-btn{display:flex;flex-direction:column;gap:4px}
    .header-subtitle{font-size:.64rem;color:var(--ink-dim);text-transform:uppercase;letter-spacing:1.5px;font-weight:600}

    /* ── MISC UTILS ── */
    .fade-in{animation:fadeIn .4s cubic-bezier(.16,1,.3,1)}
    @keyframes fadeIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
    .live-dot{display:inline-block;width:7px;height:7px;background:#e0445c;border-radius:50%;margin-right:6px;animation:pulse 1s infinite}
    body.dark .live-dot{background:#ff5d76}
    .scroll-x{overflow-x:auto;scrollbar-width:none}
    .scroll-x::-webkit-scrollbar{display:none}
    .pass-strength{height:4px;border-radius:4px;margin-top:6px;transition:all .3s}
    .menu-item{width:100%;background:var(--card);border:1px solid var(--line);border-radius:20px;
      padding:16px;margin-bottom:10px;cursor:pointer;display:flex;align-items:center;gap:14px;text-align:left;
      box-shadow:0 6px 22px -10px var(--shadow-tint-soft);transition:transform .2s}
    .menu-item:hover{transform:translateY(-2px)}

    ::selection{background:var(--coral-soft);color:var(--coral-dark)}
    input,select,textarea{caret-color:var(--coral)}
    a{color:var(--coral-dark)}
    body.dark a{color:var(--coral)}

/* ═══ Animações do ecrã de carregamento ═══ */
@keyframes pulse-logo {
  0%,100% { transform: scale(1); opacity:1; }
  50% { transform: scale(1.05); opacity:.85; }
}
@keyframes bounce-letter {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
}
