/* ═══════════════════════════════════════════════════════════════════════════
   CFPower — Responsive CSS
   Breakpoints: 1024px | 768px | 600px | 480px | 360px
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── 1024px — Tablet landscape ───────────────────────────────────────────── */
@media (max-width: 1024px) {

    /* Navbar */
    .navbar { padding: .85rem 1.5rem; }
    .navbar.scrolled { padding: .6rem 1.5rem; }

    /* Hero */
    .hero-stats { gap: 1rem; padding: .8rem 1.5rem; }

    /* Homepage sections */
    .section { padding: 4.5rem 0; }
    .steps-grid { grid-template-columns: repeat(2, 1fr); }
    .games-grid { grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); }

    /* Tornei */
    .detail-layout { grid-template-columns: 1fr 300px; gap: 1.5rem; }

    /* Admin */
    .admin-content { padding: 1.5rem; }
    .stats-grid { grid-template-columns: repeat(3, 1fr); }
    .dashboard-grid { grid-template-columns: 1fr; }
}

/* ── 768px — Tablet portrait / Mobile large ──────────────────────────────── */
@media (max-width: 768px) {

    /* Navbar */
    .navbar { padding: .75rem 1rem; }
    .navbar.scrolled { padding: .55rem 1rem; }
    .nav-links { display: none !important; }
    .nav-auth  { display: none; }
    .hamburger { display: flex; }

    /* Hero */
    .hero { min-height: 100svh; }
    .hero-title { font-size: clamp(2.2rem, 10vw, 3.5rem); }
    .hero-cta { flex-direction: column; align-items: center; gap: .75rem; }
    .hero-cta .btn-lg { width: 100%; max-width: 280px; justify-content: center; }
    .hero-stats {
        gap: .75rem;
        padding: .75rem 1.25rem;
        flex-wrap: wrap;
        justify-content: center;
        border-radius: 16px;
    }
    .hero-badge { font-size: .75rem; }
    .hero-subtitle { font-size: .92rem; padding: 0 .5rem; }

    /* Sections */
    .section { padding: 3.5rem 0; }
    .section-title { font-size: clamp(1.4rem, 5vw, 2rem); margin-bottom: 2.5rem; }
    .steps-grid { grid-template-columns: 1fr 1fr; gap: 1rem; }
    .types-grid { grid-template-columns: 1fr; }
    .games-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 1rem; }

    /* CTA */
    .cta-box { padding: 3rem 1.5rem; }
    .cta-glow { width: 250px; height: 250px; }

    /* Tornei — lista */
    .tournaments-grid { grid-template-columns: 1fr; }
    .filters { gap: .5rem; }
    .filter-btn { font-size: .78rem; padding: .35rem .85rem; }

    /* Tornei — dettaglio */
    .detail-layout { grid-template-columns: 1fr; gap: 1.5rem; }
    .detail-sidebar { position: static; }
    .detail-title { font-size: clamp(1.2rem, 5vw, 1.6rem); }
    .players-list { gap: .4rem; }

    /* Bracket */
    .bracket-header-inner { flex-direction: column; align-items: flex-start; gap: .75rem; }
    .bracket-header-meta { flex-wrap: wrap; gap: .5rem; }
    .admin-controls { flex-direction: column; align-items: flex-start; gap: .75rem; }
    .teams-grid { grid-template-columns: 1fr 1fr; }
    .bracket-scroll { -webkit-overflow-scrolling: touch; }

    /* Admin */
    .sidebar { transform: translateX(-100%); transition: transform .3s ease; }
    .sidebar.open { transform: translateX(0); box-shadow: 4px 0 32px rgba(0,0,0,.6); }
    .admin-main { margin-left: 0 !important; }
    .admin-topbar { padding: .85rem 1rem .85rem 3.5rem; }
    .admin-topbar h2 { font-size: .9rem; }
    .sidebar-toggle { display: flex; }
    .admin-content { padding: 1rem; }
    .stats-grid { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
    .dashboard-grid { grid-template-columns: 1fr; }
    .admin-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
    .admin-table { min-width: 560px; }
    .table-toolbar { flex-direction: column; align-items: flex-start; gap: .75rem; }
    .search-input { width: 100%; }

    /* Auth */
    .auth-card { padding: 2rem 1.25rem; }
    .auth-title { font-size: 1.15rem; }

    /* Modal */
    .modal { padding: 1.5rem 1.25rem; border-radius: 14px; }
    .modal-footer { flex-direction: column-reverse; }
    .modal-footer .btn { width: 100%; justify-content: center; }
}

/* ── 600px — Mobile standard ─────────────────────────────────────────────── */
@media (max-width: 600px) {

    /* Container */
    .container { padding: 0 1rem; }

    /* Hero */
    .hero-title { font-size: clamp(2rem, 11vw, 3rem); line-height: 1.15; }
    .stat-num { font-size: 1.1rem; }
    .stat-label { font-size: .65rem; }

    /* Steps */
    .steps-grid { grid-template-columns: 1fr; }
    .step-card { padding: 1.5rem 1.25rem; }

    /* Games */
    .games-grid { grid-template-columns: repeat(2, 1fr); gap: .75rem; }

    /* Tornei */
    .page-header { padding: 2rem 0 1.5rem; }
    .page-header h1 { font-size: 1.4rem; }
    .detail-cover { aspect-ratio: 16/7; }
    .sidebar-card { padding: 1.25rem; }
    .sidebar-info-row { font-size: .82rem; }

    /* Bracket */
    .teams-grid { grid-template-columns: 1fr; }
    .champion-box { padding: 2rem 1.25rem; margin: 1.5rem auto; }
    .champion-name { font-size: 1.3rem; }

    /* Admin */
    .stat-card { padding: 1.1rem; }
    .stat-card-num { font-size: 1.6rem; }
    .admin-table { min-width: 480px; }

    /* Auth */
    .auth-logo { font-size: 1.25rem; }
    .auth-card { border-radius: 16px; }
}

/* ── 480px — Mobile small ────────────────────────────────────────────────── */
@media (max-width: 480px) {

    /* Hero stats verticale */
    .hero-stats {
        flex-direction: column;
        gap: .6rem;
        padding: 1rem 1.5rem;
        border-radius: 16px;
        width: calc(100% - 2rem);
    }
    .stat-divider { width: 40px; height: 1px; }

    /* Buttons */
    .btn-lg { padding: .75rem 1.5rem; font-size: .95rem; }
    .btn-sm { padding: .32rem .85rem; font-size: .78rem; }

    /* CTA */
    .cta-box { padding: 2.5rem 1rem; border-radius: 16px; }

    /* Games */
    .games-grid { grid-template-columns: 1fr; }

    /* Tornei */
    .filters { gap: .4rem; }
    .filter-btn { font-size: .75rem; padding: .3rem .75rem; }
    .player-chip { padding: .3rem .65rem; }

    /* Bracket */
    .round-col { min-width: 200px; }
    .match-card { width: 180px; margin: 0 10px; }

    /* Admin */
    .stats-grid { grid-template-columns: 1fr 1fr; gap: .75rem; }
    .stat-card-num { font-size: 1.4rem; }
    .admin-content { padding: .75rem; }

    /* Modal */
    .modal { padding: 1.25rem 1rem; }
    .modal-header h3 { font-size: .88rem; }

    /* Auth */
    .auth-card { padding: 1.75rem 1rem; margin: 0 .5rem; }
    .form-group input { font-size: .85rem; padding: .6rem .85rem; }
}

/* ── 360px — Mobile XS ───────────────────────────────────────────────────── */
@media (max-width: 360px) {

    .hero-title { font-size: 1.9rem; }
    .hero-badge { font-size: .7rem; padding: .3rem .8rem; }
    .section-title { font-size: 1.3rem; }

    .navbar { padding: .65rem .75rem; }
    .logo-text { font-size: 1.1rem; letter-spacing: 1px; }
    #logo-canvas { width: 28px; height: 28px; }

    .games-grid { grid-template-columns: 1fr; }
    .stats-grid { grid-template-columns: 1fr; }

    .auth-card { padding: 1.5rem .85rem; }
    .auth-title { font-size: 1rem; }

    .match-card { width: 160px; margin: 0 8px; }
    .round-col { min-width: 180px; }
}

/* ── TOUCH — disabilita hover effects su touch device ────────────────────── */
@media (hover: none) {
    .tilt-card:hover { transform: none !important; }
    .tournament-card:hover { transform: none; }
    .game-card:hover { transform: none; }
    .step-card:hover { box-shadow: none; border-color: var(--border); }
    .btn-primary:hover { transform: none; }
    .match-participant.selectable:hover { background: transparent; }
    .match-participant.selectable:hover::after { display: none; }
}

/* ── PRINT ───────────────────────────────────────────────────────────────── */
@media print {
    .navbar, .hero-scroll-hint, .hero-cta, .admin-controls,
    .sidebar, .sidebar-toggle, .hamburger, .toast, .modal-overlay { display: none !important; }
    body { background: #fff; color: #000; }
    .bracket-scroll { overflow: visible; }
}
