/**
 * ProPlayer Social — ID-scoped dashboard layout (Luma overrides).
 * Loaded after other PPSM styles. Uses #ppsm-container as the root anchor.
 *
 * HTML note: id values must be unique per document. Repeating UI blocks use
 * classes (.ppsm-dash-card, .ppsm-dash-grid) with selectors anchored on
 * #ppsm-container for the same specificity as ids.
 */

/* ------------------------------------------------------------------
   Page shell — kill horizontal scroll on community routes
   ------------------------------------------------------------------ */
body.ppsm-social-scope,
body.ppfc-community-list,
body.tournament-create-layout,
body.ppsm-page-create {
    overflow-x: hidden !important;
    max-width: 100vw !important;
}

html {
    overflow-x: hidden !important;
}

/* ------------------------------------------------------------------
   STEP 4 — box model + cor base (`color` herdável nos textos dentro do shell)
   ------------------------------------------------------------------ */
#ppsm-container,
#ppsm-container * {
    box-sizing: border-box !important;
    color: #000000;
}

#ppsm-container button.step-nav-btn.step-nav-prev {
    color: #ffffff !important;
}

/* ------------------------------------------------------------------
   Luma reset — scoped to community root
   ------------------------------------------------------------------ */
#ppsm-container ul,
#ppsm-container ol,
#ppsm-container li {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

#ppsm-container a {
    text-decoration: none !important;
    color: #000000 !important;
}

/* ------------------------------------------------------------------
   STEP 1 — layout container (flex column + gap spacing system)
   ------------------------------------------------------------------ */
#ppsm-container {
    width: 100% !important;
    max-width: 1200px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 16px !important;
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 20px !important;
}

@media (min-width: 768px) {
    #ppsm-container {
        padding: 24px !important;
    }
}

#ppsm-header {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

#ppsm-content {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 20px !important;
}

#ppsm-content > * + * {
    margin-top: 0 !important;
}

/* ------------------------------------------------------------------
   STEP 5 — overflow guard (descendants; min-width 0 for grid/flex)
   ------------------------------------------------------------------ */
#ppsm-container div,
#ppsm-container section,
#ppsm-container article,
#ppsm-container nav,
#ppsm-container ul,
#ppsm-container ol,
#ppsm-container li,
#ppsm-container span,
#ppsm-container p,
#ppsm-container a,
#ppsm-container form,
#ppsm-container table {
    max-width: 100% !important;
}

#ppsm-container .ppsm-grid,
#ppsm-container .ppsm-dash-grid,
#ppsm-container .ppsm-stat-grid,
#ppsm-container .ppsm-trophy-gallery__grid,
#ppsm-container .ppsm-medals,
#ppsm-container .ppsm-season-page-grid {
    min-width: 0 !important;
}

/* ------------------------------------------------------------------
   STEP 2 — grid system (#ppsm-grid + class mirrors for multiple grids)
   ------------------------------------------------------------------ */
#ppsm-grid:not(.ppsm-hub-cgrid--uber),
#ppsm-container .ppsm-dash-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
    gap: 16px !important;
    align-items: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
}

@media (min-width: 900px) {
    #ppsm-grid:not(.ppsm-hub-cgrid--uber),
    #ppsm-container .ppsm-dash-grid {
        grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)) !important;
        gap: 24px !important;
    }
}

@media (max-width: 899px) {
    #ppsm-grid:not(.ppsm-hub-cgrid--uber),
    #ppsm-container .ppsm-dash-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 640px) {
    #ppsm-grid:not(.ppsm-hub-cgrid--uber),
    #ppsm-container .ppsm-dash-grid {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}

/* Hub stats strip: keep dense columns (do not inherit 320px dashboard tile min) */
#ppsm-container #ppsm-grid.ppsm-stats--hub:not(.ppsm-hub-cgrid--uber),
#ppsm-container .ppsm-stats.ppsm-stats--hub.ppsm-dash-grid {
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)) !important;
}

@media (min-width: 900px) {
    #ppsm-container #ppsm-grid.ppsm-stats--hub:not(.ppsm-hub-cgrid--uber),
    #ppsm-container .ppsm-stats.ppsm-stats--hub.ppsm-dash-grid {
        grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)) !important;
        gap: 16px !important;
    }
}

/* ------------------------------------------------------------------
   STEP 3 — card system (repeated blocks = class under container)
   ------------------------------------------------------------------ */
#ppsm-container .ppsm-dash-card,
#ppsm-container .ppsm-card,
#ppsm-container .ppsm-season-card,
#ppsm-container .ppsm-tournament-card,
#ppsm-container .ppsm-medal,
#ppsm-container .ppfc-ig-card,
#ppsm-container .create-section,
#ppsm-container .ppfc-community-list__header,
#ppsm-container .ppfc-community-list__tile,
#ppsm-container .ppfc-community-list__empty {
    background: #ffffff !important;
    border-radius: 12px !important;
    padding: 20px !important;
    /* box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05) !important; */
    /* border: 2px solid #000000 !important; */
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important;
}

@media (max-width: 640px) {
    #ppsm-container .ppsm-dash-card,
    #ppsm-container .ppsm-card,
    #ppsm-container .ppsm-medal,
    #ppsm-container .ppfc-ig-card,
    #ppsm-container .create-section,
    #ppsm-container .ppfc-community-list__tile,
    #ppsm-container .ppfc-community-list__empty {
        padding: 16px !important;
    }
}

/* STEP 3–4 — equal-height cards + structured head/body/foot */
#ppsm-container .ppsm-dash-card:not(.ppsm-season-card),
#ppsm-container .ppsm-card,
#ppsm-container .ppfc-community-list__tile {
    display: flex !important;
    flex-direction: column !important;
    gap: 16px !important;
    min-height: 0 !important;
    height: 100% !important;
    justify-content: flex-start !important;
}

#ppsm-container a.ppsm-tournament-card {
    display: flex !important;
    flex-direction: row !important;
    align-items: stretch !important;
    min-height: 0 !important;
    height: 100% !important;
    justify-content: flex-start !important;
}

#ppsm-container .ppsm-season-card.ppsm-dash-card {
    display: flex !important;
    flex-direction: row !important;
    align-items: stretch !important;
    min-height: 0 !important;
    height: 100% !important;
}

#ppsm-container .ppsm-hero.ppsm-dash-card,
#ppsm-container .ppsm-lock.ppsm-dash-card,
#ppsm-container .ppsm-empty.ppsm-dash-card,
#ppsm-container .ppfc-community-list__header {
    height: auto !important;
}

#ppsm-container .ppsm-medal {
    display: flex !important;
    flex-direction: column !important;
    min-height: 0 !important;
    height: 100% !important;
}

#ppsm-card,
#ppsm-container .ppsm-dash-card:not(.ppsm-hero):not(.ppsm-lock):not(.ppsm-empty):not(.ppsm-season-card),
#ppsm-container .ppsm-card:not(.ppsm-card--season-edit) {
    justify-content: space-between !important;
}

#ppsm-container .ppsm-card.ppsm-dash-card > .ppsm-tournament-link-grid,
#ppsm-container .ppsm-card.ppsm-dash-card > .ppsm-grid.ppsm-tournament-link-grid {
    flex: 1 1 auto !important;
    min-height: 0 !important;
}

#ppsm-container .ppsm-dash-card__head,
#ppsm-container .ppsm-card__head {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    width: 100% !important;
    max-width: 100% !important;
    flex-shrink: 0 !important;
    margin: 0 0 16px !important;
    padding-bottom: 12px !important;
    border-bottom: 1px solid #f0f0f0 !important;
}

#ppsm-card-head,
#ppsm-container .ppsm-season-card__head.ppsm-dash-card__head {
    margin-bottom: 12px !important;
}

#ppsm-container .ppsm-card__title {
    font-size: 16px !important;
    font-weight: 600 !important;
    color: #0a0a0a !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    margin: 0 !important;
}

#ppsm-container .ppsm-card__head-meta {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    flex-wrap: wrap !important;
}

#ppsm-container .ppsm-card__count {
    font-size: 13px !important;
    color: #888 !important;
    font-weight: 500 !important;
}

#ppsm-container .ppsm-card__hint {
    font-size: 13px !important;
    color: #888 !important;
    font-weight: 400 !important;
}

#ppsm-container .ppsm-dash-card__body,
#ppsm-container .ppsm-card__body,
#ppsm-container .ppsm-tournament-card__body,
#ppsm-card-body {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    width: 100% !important;
    max-width: 100% !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
    justify-content: flex-start !important;
}

#ppsm-card-footer,
#ppsm-container .ppsm-dash-card__foot {
    margin-top: auto !important;
    padding-top: 12px !important;
    flex-shrink: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 8px !important;
}

#ppsm-container .ppsm-dash-card__foot .ppsm-btn,
#ppsm-container .ppsm-dash-card__foot .ppsm-action,
#ppsm-container .ppsm-dash-card__foot a.action,
#ppsm-container .ppsm-dash-card__foot button {
    flex: 1 1 auto !important;
    min-width: 0 !important;
}

@media (min-width: 720px) {
    #ppsm-container .ppsm-season-card__actions.ppsm-dash-card__foot,
    #ppsm-container .ppsm-dash-card__foot--row {
        flex-wrap: nowrap !important;
    }

    #ppsm-container .ppsm-season-card__actions.ppsm-dash-card__foot .ppsm-btn {
        flex: 0 1 auto !important;
        width: auto !important;
    }
}

#ppsm-container .ppsm-create-page__card.ppsm-dash-card > form.ppsm-create-page__form,
#ppsm-container .ppsm-dash-card__body > form.ppsm-season-create-form {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
    width: 100% !important;
}

#ppsm-container .ppsm-lock.ppsm-dash-card {
    justify-content: flex-start !important;
}

#ppsm-container .ppsm-lock.ppsm-dash-card > a,
#ppsm-container .ppsm-lock.ppsm-dash-card > .ppsm-btn {
    margin-top: auto !important;
}

#ppsm-container a.ppsm-tournament-card {
    text-decoration: none !important;
    color: inherit !important;
}

#ppsm-container .ppsm-tournament-card__row {
    flex-shrink: 0 !important;
}

#ppsm-container .ppsm-tournament-card__meta {
    margin-top: auto !important;
}

#ppsm-container .ppfc-community-list__tile-body {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    gap: 8px !important;
    min-height: 0 !important;
}

#ppsm-container .ppfc-community-list__tile-cta {
    margin-top: auto !important;
    padding-top: 8px !important;
}

/* Font Awesome solid — space before adjacent text */
#ppsm-container i.fa-solid,
#ppsm-tournament-context i.fa-solid {
    margin-right: 5px !important;
    /* align-content: center; */
}

/* ------------------------------------------------------------------
   STEP 6 — badges
   ------------------------------------------------------------------ */
#ppsm-container:not(.ppsm-hub-page) .ppsm-badge,
#ppsm-container:not(.ppsm-hub-page) .ppfc-community-list__badge {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 4px 10px !important;
    border-radius: 6px !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
    flex-wrap: wrap !important;
    /* white-space: nowrap !important; */
    white-space: normal !important;
    word-break: break-word !important;
    overflow-wrap: anywhere !important;
    max-width: 100% !important;
    border: 1px solid transparent !important;
}

/* ------------------------------------------------------------------
   STEP 7 — typography (ids on main titles where present)
   ------------------------------------------------------------------ */
#ppsm-container:not(.ppsm-hub-page) #ppsm-title,
#ppsm-container:not(.ppsm-hub-page) h1.ppsm-hero__title,
#ppsm-container:not(.ppsm-hub-page) h1.ppsm-section-head__title,
#ppsm-container:not(.ppsm-hub-page) h1.ppfc-community-list__title,
#ppsm-container:not(.ppsm-hub-page) h1.ppsm-season-hero__title,
#ppsm-container:not(.ppsm-hub-page) .create-hero__copy h1,
#ppsm-container:not(.ppsm-hub-page) .ppfc-ig-section-title {
    font-size: 22px !important;
    font-weight: 600 !important;
    line-height: 1.25 !important;
    color: #0a0a0a !important;
    margin: 0 0 4px !important;
}

#ppsm-container:not(.ppsm-hub-page) #ppsm-subtitle,
#ppsm-container:not(.ppsm-hub-page) .ppsm-hero__subtitle,
#ppsm-container:not(.ppsm-hub-page) .ppsm-section-head__subtitle,
#ppsm-container:not(.ppsm-hub-page) .ppfc-community-list__subtitle,
#ppsm-container:not(.ppsm-hub-page) .ppsm-create-page__subtitle,
#ppsm-container:not(.ppsm-hub-page) .ppsm-hero__bio,
#ppsm-container:not(.ppsm-hub-page) .create-hero__copy p {
    font-size: 14px !important;
    color: #666666 !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
    /* margin: 0 0 8px !important; */
    margin-top: 10px !important;
    margin-right: 0 !important;
    margin-bottom: 0 !important;
    margin-left: 0 !important;
}

/* ------------------------------------------------------------------
   STEP 8 — buttons (primary / secondary; one primary per section via id)
   ------------------------------------------------------------------ */
#ppsm-container:not(.ppsm-community-list-page) #ppsm-btn-primary,
#ppsm-container:not(.ppsm-community-list-page) .ppsm-dash-btn-primary,
#ppsm-container:not(.ppsm-community-list-page) a.ppsm-dash-btn-primary,
#ppsm-container:not(.ppsm-community-list-page) button.ppsm-dash-btn-primary,
#ppsm-container .ppsm-btn--follow,
#ppsm-container .ppsm-btn--auth-login,
#ppsm-container .ppsm-btn--create-season,
#ppsm-container .ppsm-btn--open-season,
#ppsm-container .ppsm-action--primary,
#ppsm-container .ppfc-community-list__btn-primary,
#ppsm-container .ppfc-community-list__btn-accent,
#ppsm-container .ppfc-ig-btn--primary,
#ppsm-container .create-form .action.primary {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 44px !important;
    padding: 10px 16px !important;
    border-radius: 8px !important;
    background: #000000 !important;
    color: #ffffff !important;
    border: 1px solid #000000 !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    text-decoration: none !important;
    cursor: pointer !important;
    box-sizing: border-box !important;
}

#ppsm-container:not(.ppsm-community-list-page) #ppsm-btn-primary:hover,
#ppsm-container .ppsm-dash-btn-primary:hover,
#ppsm-container .ppsm-action--primary:hover {
    background: #222 !important;
    border-color: #222 !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.16) !important;
}

button#ppsm-btn-primary {
    margin-top: 20px !important;
}

/* Secondary — outlined neutral */
#ppsm-btn-secondary,
#ppsm-container .ppsm-dash-btn-secondary,
#ppsm-container .ppsm-btn--nav-back,
#ppsm-container .ppsm-btn--unfollow,
#ppsm-container .ppsm-action--secondary,
#ppsm-container .ppfc-ig-btn--ghost,
#ppsm-container .create-hero__back,
#ppsm-container .create-form .action.secondary,
#ppsm-container .create-form .action.tertiary {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 44px !important;
    padding: 10px 16px !important;
    border-radius: 8px !important;
    border: 1px solid #cccccc !important;
    background: #ffffff !important;
    color: #0a0a0a !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    text-decoration: none !important;
    box-sizing: border-box !important;
    cursor: pointer !important;
    transition: all 0.15s ease !important;
}

#ppsm-btn-secondary:hover,
#ppsm-container .ppsm-dash-btn-secondary:hover,
#ppsm-container .ppsm-action--secondary:hover {
    background: #f5f5f5 !important;
    border-color: #999 !important;
}

/* Ghost — minimal, no border (tertiary) */
#ppsm-container .ppsm-action--ghost {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 44px !important;
    padding: 10px 16px !important;
    border-radius: 8px !important;
    border: 1px solid #e0e0e0 !important;
    background: #fafafa !important;
    color: #555 !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    text-decoration: none !important;
    box-sizing: border-box !important;
    cursor: pointer !important;
    transition: all 0.15s ease !important;
}

#ppsm-container .ppsm-action--ghost:hover {
    background: #f0f0f0 !important;
    color: #0a0a0a !important;
    border-color: #bbb !important;
}

/* Danger outline — red text, red hover fill */
#ppsm-container .ppsm-action--danger-outline {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 44px !important;
    padding: 10px 16px !important;
    border-radius: 8px !important;
    border: 1px solid #fca5a5 !important;
    background: #ffffff !important;
    color: #b91c1c !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    text-decoration: none !important;
    box-sizing: border-box !important;
    cursor: pointer !important;
    transition: all 0.15s ease !important;
}

#ppsm-container .ppsm-action--danger-outline:hover {
    background: #fef2f2 !important;
    border-color: #ef4444 !important;
    color: #991b1b !important;
    box-shadow: 0 2px 8px rgba(185, 28, 28, 0.12) !important;
}

#ppsm-container .ppsm-action--disabled {
    opacity: 0.45 !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
    filter: grayscale(40%) !important;
}

/* Success — green action (start season, confirm, etc.) */
#ppsm-container .ppsm-action--success {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 44px !important;
    padding: 10px 16px !important;
    border-radius: 8px !important;
    border: 1px solid #2e7d32 !important;
    background: #2e7d32 !important;
    color: #ffffff !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    text-decoration: none !important;
    box-sizing: border-box !important;
    cursor: pointer !important;
    transition: all 0.15s ease !important;
}

#ppsm-container .ppsm-action--success:hover {
    background: #1b5e20 !important;
    border-color: #1b5e20 !important;
    box-shadow: 0 4px 12px rgba(46, 125, 50, 0.25) !important;
}

/* Back link — subtle, not competing with actions */
#ppsm-container .ppsm-action--back {
    background: transparent !important;
    border-color: transparent !important;
    color: #888 !important;
    font-weight: 500 !important;
    min-width: auto !important;
    width: auto !important;
    padding: 6px 0 !important;
    min-height: auto !important;
    height: auto !important;
}

#ppsm-container .ppsm-action--back:hover {
    color: #0a0a0a !important;
    background: transparent !important;
}

@media (min-width: 900px) {
    #ppsm-container:not(.ppsm-community-list-page) #ppsm-btn-primary,
    #ppsm-container .ppsm-dash-btn-primary,
    #ppsm-container a.ppsm-dash-btn-primary,
    #ppsm-container button.ppsm-dash-btn-primary,
    #ppsm-container .ppsm-btn--follow,
    #ppsm-container .ppsm-btn--auth-login,
    #ppsm-container .ppsm-btn--create-season,
    #ppsm-container .ppsm-btn--open-season,
    #ppsm-container .ppsm-action--primary,
    #ppsm-container .ppfc-community-list__btn-primary,
    #ppsm-container .ppfc-community-list__btn-accent,
    #ppsm-container .ppfc-ig-btn--primary,
    #ppsm-container .create-form .action.primary,
    #ppsm-btn-secondary,
    #ppsm-container .ppsm-dash-btn-secondary,
    #ppsm-container .ppsm-btn--nav-back,
    #ppsm-container .ppsm-btn--unfollow,
    #ppsm-container .ppsm-action--secondary,
    #ppsm-container .ppsm-action--ghost,
    #ppsm-container .ppsm-action--danger-outline,
    #ppsm-container .ppsm-action--success,
    #ppsm-container .ppfc-ig-btn--ghost,
    #ppsm-container .create-hero__back,
    #ppsm-container .create-form .action.secondary,
    #ppsm-container .create-form .action.tertiary {
        min-height: 40px !important;
        height: 40px !important;
    }
}

@media (min-width: 720px) {
    #ppsm-container:not(.ppsm-community-list-page) #ppsm-btn-primary,
    #ppsm-container .ppsm-dash-btn-primary,
    #ppsm-container a.ppsm-dash-btn-primary,
    #ppsm-container button.ppsm-dash-btn-primary,
    #ppsm-container .ppsm-btn--follow,
    #ppsm-container .ppsm-btn--auth-login,
    #ppsm-container .ppsm-btn--create-season,
    #ppsm-container .ppsm-btn--open-season,
    #ppsm-container .ppsm-action--primary,
    #ppsm-container .ppfc-community-list__btn-primary,
    #ppsm-container .ppfc-community-list__btn-accent,
    #ppsm-container .ppfc-ig-btn--primary,
    #ppsm-container .create-form .action.primary,
    #ppsm-btn-secondary,
    #ppsm-container .ppsm-dash-btn-secondary,
    #ppsm-container .ppsm-btn--nav-back,
    #ppsm-container .ppsm-btn--unfollow,
    #ppsm-container .ppsm-action--secondary,
    #ppsm-container .ppsm-action--ghost,
    #ppsm-container .ppsm-action--danger-outline,
    #ppsm-container .ppsm-action--success,
    #ppsm-container .ppfc-ig-btn--ghost,
    #ppsm-container .create-hero__back,
    #ppsm-container .create-form .action.secondary,
    #ppsm-container .create-form .action.tertiary {
        width: auto !important;
        min-width: 160px !important;
    }

    #ppsm-container .ppsm-hero__actions,
    #ppsm-container .ppsm-season-card__actions,
    #ppsm-container .ppfc-ig-actions,
    #ppsm-container .form-actions {
        flex-wrap: wrap !important;
    }

    #ppsm-container .ppsm-hero__actions .ppsm-btn,
    #ppsm-container .ppsm-season-card__actions .ppsm-btn {
        width: auto !important;
        min-width: 140px !important;
    }
}

/* Hero + stats strip */
#ppsm-container .ppsm-hero,
#ppsm-container .ppsm-season-hero,
#ppsm-container .create-hero {
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
}

#ppsm-container .ppsm-hero__body,
#ppsm-container .ppsm-season-hero__main {
    position: relative !important;
    padding: clamp(14px, 2.2vw, 22px) clamp(16px, 3vw, 28px) !important;
    /* display: grid; */
    display: flex !important;
    flex-wrap: wrap !important;
    grid-template-columns: auto 1fr auto !important;
    gap: clamp(12px, 2vw, 22px) !important;
    align-items: flex-start !important;
    max-width: 100% !important;
}

@media (max-width: 540px) {
    #ppsm-container .ppsm-hero__avatar {
        margin-top: 15px !important;
    }
}

#ppsm-container .ppsm-hero__avatar {
    width: clamp(84px, 12vw, 124px) !important;
    height: clamp(84px, 12vw, 124px) !important;
    border-radius: 50% !important;
    background: var(--ppsm-gradient-cta) !important;
    color: #fff !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-weight: 800 !important;
    font-size: clamp(28px, 3.2vw, 40px) !important;
    border: 4px solid var(--ppsm-surface) !important;
    box-shadow: var(--ppsm-shadow) !important;
    margin-top: 15px !important;
}

#ppsm-container button.ppsm-stat.ppsm-stat--btn {
    background-color: #ffffff !important;
}

#ppsm-container .ppsm-stats:not(.ppsm-hub-cgrid--uber),
#ppsm-container .ppsm-stat-grid {
    display: grid !important;
    grid-template-columns: repeat(5, 1fr) !important;
    width: 100% !important;
    max-width: 100% !important;
    gap: 0 !important;
    padding: 0 !important;
    background: #ffffff !important;
    border: 1px solid #eeeeee !important;
    border-radius: 12px !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05) !important;
    overflow: hidden !important;
}

@media (max-width: 640px) {
    #ppsm-container .ppsm-stats:not(.ppsm-hub-cgrid--uber),
    #ppsm-container .ppsm-stat-grid {
        grid-template-columns: repeat(3, 1fr) !important;
    }
}

#ppsm-container .ppsm-stats--hub:not(.ppsm-hub-cgrid--uber) {
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)) !important;
}

@media (min-width: 900px) {
    #ppsm-container .ppsm-stats.ppsm-dash-grid,
    #ppsm-container .ppsm-stats--hub:not(.ppsm-hub-cgrid--uber) {
        gap: 16px !important;
        padding: 16px !important;
    }
}

/* Hub #ppsm-grid: strip sem cartão — só fora da página hub (na view o estilo é ppsm-hub-page.css) */
#ppsm-container:not(.ppsm-hub-page) #ppsm-grid.ppsm-stats--hub,
#ppsm-container:not(.ppsm-hub-page) nav#ppsm-grid.ppsm-stats--hub,
#ppsm-container:not(.ppsm-hub-page) .ppsm-stats.ppsm-stats--hub.ppsm-dash-grid {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    border-radius: 0 !important;
    overflow: visible !important;
}

@media (min-width: 900px) {
    #ppsm-container:not(.ppsm-hub-page) #ppsm-grid.ppsm-stats--hub,
    #ppsm-container:not(.ppsm-hub-page) nav#ppsm-grid.ppsm-stats--hub,
    #ppsm-container:not(.ppsm-hub-page) .ppsm-stats.ppsm-stats--hub.ppsm-dash-grid {
        padding: 0 !important;
    }
}

#ppsm-container .ppsm-stats.ppsm-dash-grid > .ppsm-stat,
#ppsm-container .ppsm-stats--hub > .ppsm-stat {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    height: 100% !important;
    min-height: 96px !important;
    padding: 12px 8px !important;
    box-sizing: border-box !important;
}

/* Dash / tabs */
#ppsm-container .ppsm-dash__actions,
#ppsm-container .ppsm-tabs {
    width: 100% !important;
    max-width: 100% !important;
}

#ppsm-container .ppsm-tabs__nav,
#ppsm-container .ppsm-dash__actions--season {
    max-width: 100% !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
}

#ppsm-container .ppsm-tab-panel {
    display: flex !important;
    flex-direction: column !important;
    gap: 20px !important;
}

/* [hidden] must win over display:flex !important above (tab panels). */
#ppsm-container .ppsm-tab-panel[hidden] {
    display: none !important;
}

#ppsm-container .ppsm-season-rest-stack {
    display: flex !important;
    flex-direction: column !important;
    gap: 24px !important;
}

/* (tables moved to consolidated TABLE OVERFLOW section below) */

/* ------------------------------------------------------------------
   Tournament create — embed sections inside container
   ------------------------------------------------------------------ */
#ppsm-container .create-form {
    width: 100% !important;
    max-width: 100% !important;
}

#ppsm-container .field-grid.two-columns {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 16px !important;
}

@media (min-width: 768px) {
    #ppsm-container .field-grid.two-columns {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

/* Breadcrumb fragment (tournament view) */
#ppsm-tournament-context {
    width: 100% !important;
    max-width: 1200px !important;
    margin: 0 auto 12px !important;
    padding: 0 16px !important;
    box-sizing: border-box !important;
}

#ppsm-tournament-context,
#ppsm-tournament-context * {
    box-sizing: border-box !important;
}

@media (min-width: 768px) {
    #ppsm-tournament-context {
        padding: 0 24px !important;
    }
}
#ppsm-tournament-context .ppsm-tournament-breadcrumbs__inner,
#ppsm-tournament-context .ppsm-tournament-breadcrumbs__back,
#ppsm-tournament-context a,
#ppsm-tournament-context span {
    max-width: 100% !important;
}

/* List grid */
#ppsm-container .ppfc-community-list__grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
    gap: 16px !important;
    align-items: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
}

@media (min-width: 900px) {
    #ppsm-container .ppfc-community-list__grid {
        grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)) !important;
        gap: 24px !important;
    }
}

#ppsm-container .ppfc-community-list__header {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 16px !important;
}

/* Runner-up medal line (replaces inline style) */
#ppsm-container .ppsm-medal__winner-count--runnerup {
    color: #525252 !important;
}

#ppsm-container .ppsm-grid.ppsm-grid--2,
#ppsm-container .ppsm-tournament-link-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
    gap: 16px !important;
    align-items: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
}

@media (min-width: 900px) {
    #ppsm-container .ppsm-grid.ppsm-grid--2,
    #ppsm-container .ppsm-tournament-link-grid {
        grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)) !important;
        gap: 24px !important;
    }
}

/* Campeonatos — tournament link list (single #ppsm-list + repeated .ppsm-dash-list) */
#ppsm-list,
#ppsm-container .ppsm-dash-list {
    border: 1px dashed #dddddd !important;
    border-radius: 8px !important;
    padding: 12px !important;
    background: #fafafa !important;
    box-sizing: border-box !important;
}

/* ==================================================================
   TOURNAMENT LIST — fix broken/unstyled lists (CRITICAL)
   ================================================================== */
#ppsm-container .ppsm-tournament-list,
#ppsm-container ul.ppsm-tournament-list {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

#ppsm-container .ppsm-tournament-item {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    padding: 12px !important;
    border-radius: 8px !important;
    border: 1px solid #eee !important;
    background: #fafafa !important;
    transition: all 0.2s ease !important;
}

#ppsm-container .ppsm-tournament-item:hover {
    background: #f2f2f2 !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06) !important;
}

#ppsm-container .ppsm-tournament-item__link {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    text-decoration: none !important;
    color: inherit !important;
}

#ppsm-container .ppsm-tournament-item__icon {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 40px !important;
    height: 40px !important;
    flex-shrink: 0 !important;
    border-radius: 8px !important;
    background: #f0f0f0 !important;
    font-size: 16px !important;
    color: #333 !important;
}

#ppsm-container .ppsm-tournament-item__main {
    display: flex !important;
    flex-direction: column !important;
    gap: 2px !important;
    min-width: 0 !important;
}

#ppsm-container .ppsm-tournament-item__name {
    font-size: 15px !important;
    font-weight: 700 !important;
    color: #0a0a0a !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

#ppsm-container .ppsm-tournament-item__meta {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    font-size: 12px !important;
    color: #888 !important;
}

#ppsm-container .ppsm-tournament-item__sep {
    opacity: 0.6 !important;
}

#ppsm-container .ppsm-tournament-item__actions {
    display: flex !important;
    gap: 8px !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: flex-end !important;
    flex-shrink: 0 !important;
}

@media (max-width: 640px) {
    #ppsm-container .ppsm-tournament-item {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 10px !important;
    }

    #ppsm-container .ppsm-tournament-item__actions {
        width: 100% !important;
        justify-content: flex-start !important;
    }
}

/* ==================================================================
   ACTION BUTTONS — icon-act (view / edit / unlink / delete)
   Semantic colors: view=info, edit=primary, unlink=warning, delete=danger
   ================================================================== */
#ppsm-container a.ppsm-icon-act,
#ppsm-container button.ppsm-icon-act {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    padding: 6px 12px !important;
    border-radius: 6px !important;
    background: #f5f5f5 !important;
    border: 1px solid #e0e0e0 !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    color: #333 !important;
    cursor: pointer !important;
    transition: all 0.15s ease !important;
    white-space: nowrap !important;
    text-decoration: none !important;
    line-height: 1 !important;
    height: 34px !important;
    min-width: 0 !important;
}

/* View — info blue */
#ppsm-container a.ppsm-icon-act[title="Ver"],
#ppsm-container button.ppsm-icon-act[title="Ver"] {
    background: #e3f2fd !important;
    color: #0277bd !important;
    border-color: #bbdefb !important;
}

#ppsm-container a.ppsm-icon-act[title="Ver"]:hover,
#ppsm-container button.ppsm-icon-act[title="Ver"]:hover {
    background: #0288d1 !important;
    color: #fff !important;
    border-color: #0288d1 !important;
}

/* Edit — dark primary */
#ppsm-container a.ppsm-icon-act[title="Editar"],
#ppsm-container button.ppsm-icon-act[title="Editar"] {
    background: #f0f0f0 !important;
    color: #1a1a1a !important;
    border-color: #ccc !important;
}

#ppsm-container a.ppsm-icon-act[title="Editar"]:hover,
#ppsm-container button.ppsm-icon-act[title="Editar"]:hover {
    background: #1a1a1a !important;
    color: #fff !important;
    border-color: #1a1a1a !important;
}

/* Unlink — warning amber */
#ppsm-container a.ppsm-icon-act[title*="Remover"],
#ppsm-container button.ppsm-icon-act[title*="Remover"] {
    background: #fff3e0 !important;
    color: #e65100 !important;
    border-color: #ffe0b2 !important;
}

#ppsm-container a.ppsm-icon-act[title*="Remover"]:hover,
#ppsm-container button.ppsm-icon-act[title*="Remover"]:hover {
    background: #ed6c02 !important;
    color: #fff !important;
    border-color: #ed6c02 !important;
}

/* Delete — danger red */
#ppsm-container .ppsm-icon-act--danger,
#ppsm-container a.ppsm-icon-act[title="Excluir"],
#ppsm-container button.ppsm-icon-act[title="Excluir"] {
    background: #ffebee !important;
    color: #c62828 !important;
    border-color: #ffcdd2 !important;
}

#ppsm-container .ppsm-icon-act--danger:hover,
#ppsm-container a.ppsm-icon-act[title="Excluir"]:hover,
#ppsm-container button.ppsm-icon-act[title="Excluir"]:hover {
    background: #d32f2f !important;
    color: #fff !important;
    border-color: #d32f2f !important;
}

/* Fallback hover for unlabeled icon-act */
#ppsm-container a.ppsm-icon-act:hover,
#ppsm-container button.ppsm-icon-act:hover {
    background: #e0e0e0 !important;
    color: #111 !important;
    border-color: #bbb !important;
}

#ppsm-container .ppsm-icon-act-form {
    margin: 0 !important;
    display: inline-flex !important;
}

#ppsm-container .ppsm-icon-act__label {
    font-size: 12px !important;
    font-weight: 500 !important;
}

/* ==================================================================
   COLOR SYSTEM — semantic badge & status colors
   ================================================================== */
#ppsm-container .ppsm-badge--warn {
    background: #fff3e0 !important;
    color: #ed6c02 !important;
    border-color: #ffe0b2 !important;
}

#ppsm-container .ppsm-badge--info {
    background: #e3f2fd !important;
    color: #0288d1 !important;
    border-color: #bbdefb !important;
}

#ppsm-container .ppsm-badge--muted {
    background: #f5f5f5 !important;
    color: #666 !important;
    border-color: #e0e0e0 !important;
}

#ppsm-container .ppsm-badge--success {
    background: #e8f5e9 !important;
    color: #2e7d32 !important;
    border-color: #c8e6c9 !important;
}

#ppsm-container .ppsm-badge--danger {
    background: #ffebee !important;
    color: #d32f2f !important;
    border-color: #ffcdd2 !important;
}

/* ==================================================================
   TABLE — desktop: normal table; mobile: stacked card layout
   ================================================================== */
#ppsm-container .ppsm-table-wrap {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
}

#ppsm-container .ppsm-table-wrap .ppsm-table,
#ppsm-container .ppsm-table {
    display: table !important;
    width: 100% !important;
    max-width: 100% !important;
    border-collapse: collapse !important;
    table-layout: auto !important;
}

#ppsm-container .ppsm-table th,
#ppsm-container .ppsm-table td {
    word-break: break-word !important;
    overflow-wrap: anywhere !important;
    padding: 10px 14px !important;
    text-align: left !important;
    border-bottom: 1px solid #f0f0f0 !important;
    vertical-align: middle !important;
    white-space: nowrap !important;
}

#ppsm-container .ppsm-table td {
    white-space: normal !important;
}

#ppsm-container .ppsm-table thead th {
    font-weight: 600 !important;
    font-size: 11px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    color: #888 !important;
    border-bottom: 2px solid #eee !important;
    background: #fafafa !important;
}

#ppsm-container .ppsm-table tbody tr:hover {
    background: #fafafa !important;
}

/* Mobile stacked layout — each row becomes a card-like block */
@media (max-width: 768px) {
    #ppsm-container .ppsm-table-wrap--stack .ppsm-table,
    #ppsm-container .ppsm-table-wrap--stack .ppsm-table thead,
    #ppsm-container .ppsm-table-wrap--stack .ppsm-table tbody,
    #ppsm-container .ppsm-table-wrap--stack .ppsm-table tr,
    #ppsm-container .ppsm-table-wrap--stack .ppsm-table th,
    #ppsm-container .ppsm-table-wrap--stack .ppsm-table td {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        text-align: left !important;
    }

    #ppsm-container .ppsm-table-wrap--stack .ppsm-table {
        border: none !important;
    }

    #ppsm-container .ppsm-table-wrap--stack .ppsm-table thead {
        position: absolute !important;
        width: 1px !important;
        height: 1px !important;
        overflow: hidden !important;
        clip: rect(0, 0, 0, 0) !important;
        white-space: nowrap !important;
        border: 0 !important;
    }

    #ppsm-container .ppsm-table-wrap--stack .ppsm-table tbody tr {
        display: flex !important;
        flex-direction: column !important;
        gap: 0 !important;
        padding: 12px 0 !important;
        border-bottom: 1px solid #f0f0f0 !important;
    }

    #ppsm-container .ppsm-table-wrap--stack .ppsm-table tbody tr:last-child {
        border-bottom: none !important;
    }

    #ppsm-container .ppsm-table-wrap--stack .ppsm-table td {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        padding: 6px 0 !important;
        border-bottom: none !important;
        gap: 8px !important;
        font-size: 14px !important;
    }

    #ppsm-container .ppsm-table-wrap--stack .ppsm-table td::before {
        content: attr(data-label) !important;
        font-weight: 600 !important;
        font-size: 12px !important;
        text-transform: uppercase !important;
        letter-spacing: 0.04em !important;
        color: #888 !important;
        flex-shrink: 0 !important;
        min-width: 90px !important;
    }

    #ppsm-container .ppsm-table-wrap--stack .ppsm-table td:first-child {
        padding-top: 0 !important;
        font-size: 15px !important;
    }
}

/* ==================================================================
   FORM INPUTS — consistent styling inside ppsm-container
   ================================================================== */
#ppsm-container input[type="text"],
#ppsm-container input[type="number"],
#ppsm-container input[type="date"],
#ppsm-container input[type="url"],
#ppsm-container input[type="email"],
#ppsm-container select,
#ppsm-container textarea {
    width: 100% !important;
    max-width: 100% !important;
    padding: 10px 12px !important;
    border: 1px solid #ddd !important;
    border-radius: 8px !important;
    font-size: 14px !important;
    line-height: 1.5 !important;
    color: #0a0a0a !important;
    background: #fff !important;
    box-sizing: border-box !important;
    transition: border-color 0.15s ease !important;
}

#ppsm-container input[type="text"]:focus,
#ppsm-container input[type="number"]:focus,
#ppsm-container input[type="date"]:focus,
#ppsm-container input[type="url"]:focus,
#ppsm-container input[type="email"]:focus,
#ppsm-container select:focus,
#ppsm-container textarea:focus {
    border-color: #333 !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.06) !important;
}

#ppsm-container label {
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #333 !important;
}

/* ==================================================================
   EMPTY STATE — consistent empty/lock blocks
   ================================================================== */
#ppsm-container .ppsm-empty {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 12px !important;
    padding: 32px 20px !important;
    text-align: center !important;
    color: #888 !important;
    font-size: 14px !important;
    background: #fafafa !important;
    border-radius: 12px !important;
    border: 1px dashed #ddd !important;
}

#ppsm-container .ppsm-empty i {
    font-size: 24px !important;
    color: #ccc !important;
}

/* ==================================================================
   STAT CARDS — compact dashboard number tiles (single-row strip)
   ================================================================== */
#ppsm-container .ppsm-stat-card {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    gap: 4px !important;
    padding: 14px 8px !important;
    background: #fff !important;
    border: none !important;
    border-radius: 0 !important;
    border-right: 1px solid #f0f0f0 !important;
    transition: background 0.15s ease !important;
}

#ppsm-container .ppsm-stat-card:last-child {
    border-right: none !important;
}

#ppsm-container .ppsm-stat-card:hover {
    background: #fafafa !important;
}

#ppsm-container .ppsm-stat-card__icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 32px !important;
    height: 32px !important;
    border-radius: 8px !important;
    background: #f5f5f5 !important;
    color: #555 !important;
    font-size: 14px !important;
}

#ppsm-container .ppsm-stat-card__value {
    font-size: 1.5rem !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    color: #0a0a0a !important;
    letter-spacing: -0.03em !important;
    font-variant-numeric: tabular-nums !important;
}

#ppsm-container .ppsm-stat-card__label {
    font-size: 10px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.06em !important;
    color: #888 !important;
    line-height: 1.3 !important;
}

/* ==================================================================
   BADGE — base shape + semantic badge variants
   ================================================================== */
/* Base .ppsm-badge: ver STEP 6 (mais acima) — evitar duplicar e reintroduzir nowrap */

#ppsm-container .ppsm-badge--table-cell {
    white-space: normal !important;
}

/* ==================================================================
   TIMELINE — hardened at dashboard level
   ================================================================== */
#ppsm-container .ppsm-timeline {
    position: relative !important;
    padding-left: 28px !important;
    margin: 0 !important;
    list-style: none !important;
}

#ppsm-container .ppsm-timeline::before {
    content: "" !important;
    position: absolute !important;
    left: 9px !important;
    top: 6px !important;
    bottom: 6px !important;
    width: 2px !important;
    background: #e0e0e0 !important;
    border-radius: 2px !important;
}

#ppsm-container .ppsm-timeline__item {
    position: relative !important;
    margin-bottom: 18px !important;
    padding: 0 !important;
}

#ppsm-container .ppsm-timeline__item::before {
    content: "" !important;
    position: absolute !important;
    left: -23px !important;
    top: 6px !important;
    width: 10px !important;
    height: 10px !important;
    background: #0a0a0a !important;
    border-radius: 50% !important;
    border: 2px solid #fff !important;
    box-shadow: 0 0 0 2px #e0e0e0 !important;
}

#ppsm-container .ppsm-timeline__date {
    font-size: 11px !important;
    font-weight: 700 !important;
    color: #888 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    margin-bottom: 4px !important;
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
}

#ppsm-container .ppsm-timeline__title {
    margin: 0 0 2px !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    color: #0a0a0a !important;
}

#ppsm-container .ppsm-timeline__desc {
    margin: 0 !important;
    font-size: 13px !important;
    color: #666 !important;
}

/* ==================================================================
   TAB BUTTONS — dash tab navigation
   ================================================================== */
#ppsm-container .ppsm-dash__btn {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 8px 14px !important;
    border-radius: 8px !important;
    border: 1px solid #e0e0e0 !important;
    background: #fff !important;
    color: #555 !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    transition: all 0.15s ease !important;
    white-space: nowrap !important;
    margin-left: 0 !important;
}

#ppsm-container .ppsm-dash__btn + .ppsm-dash__btn {
    margin-left: 8px !important;
}

#ppsm-container .ppsm-dash__btn:hover {
    background: #f5f5f5 !important;
    border-color: #bbb !important;
    color: #0a0a0a !important;
}

#ppsm-container .ppsm-dash__btn.is-active {
    background: #0a0a0a !important;
    color: #fff !important;
    border-color: #0a0a0a !important;
}

#ppsm-container .ppsm-dash__count {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 20px !important;
    height: 20px !important;
    padding: 0 6px !important;
    border-radius: 10px !important;
    background: rgba(0, 0, 0, 0.08) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
}

#ppsm-container .ppsm-dash__btn.is-active .ppsm-dash__count {
    background: rgba(255, 255, 255, 0.2) !important;
    color: #fff !important;
}

/* ==================================================================
   MUTED TEXT helper
   ================================================================== */
#ppsm-container .ppsm-muted {
    color: #bbb !important;
}

/* Competition name(s) inside classification table */
#ppsm-container .ppsm-comp-name {
    display: block !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    color: #333 !important;
    line-height: 1.4 !important;
}

#ppsm-container .ppsm-comp-name + .ppsm-comp-name {
    margin-top: 4px !important;
    padding-top: 4px !important;
    border-top: 1px dashed #eee !important;
}

/* ==================================================================
   CALLOUT — informational banner (draft, warning, etc.)
   ================================================================== */
#ppsm-container .ppsm-callout {
    display: flex !important;
    align-items: center !important;
    gap: 16px !important;
    padding: 16px 20px !important;
    border-radius: 12px !important;
    border: 1px solid #e0e0e0 !important;
    background: #fafafa !important;
}

#ppsm-container .ppsm-callout--draft {
    border-color: #ffe0b2 !important;
    background: #fff8e1 !important;
}

#ppsm-container .ppsm-callout__icon {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 44px !important;
    height: 44px !important;
    flex-shrink: 0 !important;
    border-radius: 10px !important;
    background: #fff3e0 !important;
    color: #e65100 !important;
    font-size: 18px !important;
}

#ppsm-container .ppsm-callout__body {
    flex: 1 1 auto !important;
    min-width: 0 !important;
}

#ppsm-container .ppsm-callout__title {
    font-size: 14px !important;
    font-weight: 700 !important;
    color: #0a0a0a !important;
    margin: 0 0 4px !important;
    display: block !important;
}

#ppsm-container .ppsm-callout__text {
    font-size: 13px !important;
    color: #666 !important;
    margin: 0 !important;
    line-height: 1.5 !important;
}

#ppsm-container .ppsm-callout__action {
    flex-shrink: 0 !important;
}

#ppsm-container .ppsm-callout__action .ppsm-action--success {
    width: auto !important;
    min-width: 180px !important;
    white-space: nowrap !important;
}

@media (max-width: 640px) {
    #ppsm-container .ppsm-callout {
        flex-direction: column !important;
        align-items: stretch !important;
        text-align: center !important;
    }

    #ppsm-container .ppsm-callout__icon {
        align-self: center !important;
    }

    #ppsm-container .ppsm-callout__action {
        width: 100% !important;
    }

    #ppsm-container .ppsm-callout__action .ppsm-action--success {
        width: 100% !important;
        min-width: 0 !important;
    }
}

/* ==================================================================
   Season detail page — cartão de edição partilhado (resto em season_view.phtml)
   ================================================================== */
/* Hero (#ppsm-header, breadcrumb), grelha #ppsm-form-grid → season_view.phtml (<style>) */
#ppsm-container #ppsm-card.ppsm-card--season-edit {
    padding: 20px !important;
    width: 100% !important;
    max-width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    box-sizing: border-box !important;
}

#ppsm-container #ppsm-card-head {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin-bottom: 16px !important;
    padding-bottom: 12px !important;
    border-bottom: 1px solid #f0f0f0 !important;
    flex-shrink: 0 !important;
    width: 100% !important;
    gap: 12px !important;
    box-sizing: border-box !important;
}

#ppsm-container .ppsm-action--icon {
    position: static !important;
    float: none !important;
    margin: 0 !important;
    flex-shrink: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 36px !important;
    height: 36px !important;
    min-height: auto !important;
    min-width: auto !important;
    padding: 0 !important;
    border-radius: 8px !important;
    border: 1px solid #e0e0e0 !important;
    background: #fafafa !important;
    color: #666 !important;
    cursor: pointer !important;
    transition: all 0.15s ease !important;
}

#ppsm-container .ppsm-action--icon:hover {
    background: #f0f0f0 !important;
    color: #0a0a0a !important;
    border-color: #bbb !important;
}

/* ==================================================================
   COLLAPSIBLE — expand/collapse pattern (edit form, etc.)
   ================================================================== */
#ppsm-container .ppsm-collapsible {
    padding: 0 !important;
    gap: 0 !important;
}

#ppsm-container .ppsm-collapsible__trigger {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    width: 100% !important;
    padding: 16px 20px !important;
    margin: 0 !important;
    border: none !important;
    border-bottom: none !important;
    background: transparent !important;
    cursor: pointer !important;
    gap: 12px !important;
    border-radius: 12px !important;
    transition: background 0.15s ease !important;
}

#ppsm-container .ppsm-collapsible__trigger:hover {
    background: #fafafa !important;
}

#ppsm-container .ppsm-collapsible__trigger[aria-expanded="true"] {
    border-bottom: 1px solid #f0f0f0 !important;
    border-radius: 12px 12px 0 0 !important;
}

#ppsm-container .ppsm-collapsible__chevron {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 28px !important;
    height: 28px !important;
    border-radius: 6px !important;
    background: #f5f5f5 !important;
    color: #888 !important;
    font-size: 12px !important;
    flex-shrink: 0 !important;
    transition: transform 0.2s ease, background 0.15s ease !important;
}

#ppsm-container .ppsm-collapsible__trigger[aria-expanded="true"] .ppsm-collapsible__chevron {
    transform: rotate(180deg) !important;
    background: #e0e0e0 !important;
    color: #333 !important;
}

#ppsm-container .ppsm-collapsible__body {
    padding: 20px !important;
}

#ppsm-container .ppsm-collapsible__body[hidden] {
    display: none !important;
}

#ppsm-container .ppsm-season-edit-card__title {
    font-size: 18px !important;
    font-weight: 600 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    margin: 0 !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    color: #0a0a0a !important;
}

#ppsm-container #ppsm-card-body {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
}

#ppsm-container .ppsm-season-edit-form {
    width: 100% !important;
    max-width: 720px !important;
    margin: 0 auto !important;
}


/* Season dashboard: classification planning list */
.ppsm-plan-list {
    margin: 0;
    padding-left: 1.1rem;
    font-size: 0.875rem;
    line-height: 1.45;
}
.ppsm-table-sub {
    font-size: 0.75rem;
    margin-top: 0.15rem;
}
.ppsm-tournament-list--compact .ppsm-tournament-item--flat {
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}
.ppsm-tournament-list--compact .ppsm-tournament-item--flat:last-child {
    border-bottom: 0;
}

.ppsm-stat-grid--inline {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 1rem;
}
.ppsm-stat-grid--inline .ppsm-stat-card--compact {
    flex: 1 1 120px;
    min-width: 100px;
    padding: 0.65rem 0.75rem;
    border-radius: 10px;
    border: 1px solid rgba(0, 0, 0, 0.08);
    background: rgba(0, 0, 0, 0.02);
}
.ppsm-stat-grid--inline .ppsm-stat-card--compact .ppsm-stat-card__value {
    font-size: 1.35rem;
    font-weight: 700;
    display: block;
}
.ppsm-stat-grid--inline .ppsm-stat-card--compact .ppsm-stat-card__label {
    font-size: 0.75rem;
    opacity: 0.85;
}
.ppsm-tournament-list--spaced {
    margin-top: 0.5rem;
}
.ppsm-accessos-stack {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.ppsm-card--accessos .ppsm-card__sub {
    margin: 0.35rem 0 0;
    font-size: 0.875rem;
    color: rgba(0, 0, 0, 0.55);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.15rem;
}
.ppsm-inline-link {
    font-weight: 600;
    text-decoration: none;
}
.ppsm-inline-link:hover {
    text-decoration: underline;
}
.ppsm-accessos-card__body {
    padding: 0 1rem 1rem;
}
.ppsm-accessos-block {
    margin-top: 1rem;
}
.ppsm-accessos-block:first-child {
    margin-top: 0;
}
.ppsm-accessos-block__title {
    margin: 0 0 0.35rem;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    opacity: 0.75;
}

/* Season page: readable body copy + profile links (gamertag → perfil UrlRewrite) */
#ppsm-container.ppsm-wrap--season .ppsm-player-profile-link {
    font-weight: 600;
    color: #0a66c2;
    text-decoration: none;
}
#ppsm-container.ppsm-wrap--season .ppsm-player-profile-link:hover {
    text-decoration: underline;
}
#ppsm-container.ppsm-wrap--season .ppsm-plan-list,
#ppsm-container.ppsm-wrap--season .ppsm-table-sub,
#ppsm-container.ppsm-wrap--season .ppsm-card--accessos .ppsm-card__sub,
#ppsm-container.ppsm-wrap--season .ppsm-tournament-item__meta,
#ppsm-container.ppsm-wrap--season .ppsm-timeline__desc,
#ppsm-container.ppsm-wrap--season .ppsm-muted,
#ppsm-container.ppsm-wrap--season .ppsm-empty__text {
    font-size: max(0.875rem, 14px) !important;
}
#ppsm-container.ppsm-wrap--season .ppsm-accessos-block__title {
    font-size: max(0.8125rem, 13px) !important;
}
#ppsm-container.ppsm-wrap--season .ppsm-stat-grid--inline .ppsm-stat-card--compact .ppsm-stat-card__label {
    font-size: max(0.8125rem, 13px) !important;
}
#ppsm-container.ppsm-wrap--season .ppsm-stat-grid--season-dashboard {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
    gap: 12px !important;
}
#ppsm-container.ppsm-wrap--season #ppsm-season-stats > .ppsm-card + .ppsm-card,
#ppsm-container.ppsm-wrap--season #ppsm-season-stats > .ppsm-callout,
#ppsm-container.ppsm-wrap--season #ppsm-season-stats > .ppsm-season-stats__foot {
    margin-top: 16px !important;
}
#ppsm-container.ppsm-wrap--season #ppsm-season-stats .ppsm-stat-grid--season-dashboard + .ppsm-tournament-list--spaced {
    margin-top: 16px !important;
}
#ppsm-container.ppsm-wrap--season .ppsm-season-hero__meta-line,
#ppsm-container.ppsm-wrap--season .ppsm-season-page__breadcrumb {
    font-size: max(0.875rem, 14px) !important;
}
#ppsm-container.ppsm-wrap--season .ppsm-rank-row__stats,
#ppsm-container.ppsm-wrap--season .ppsm-podium__score {
    font-size: max(0.875rem, 14px) !important;
}

/* Season tabs: anchors share button look + deep-link scroll target */
#ppsm-container.ppsm-wrap--season a.ppsm-dash__btn.ppsm-season-tab {
    text-decoration: none !important;
    color: inherit !important;
    cursor: pointer;
    box-sizing: border-box;
}
#ppsm-container.ppsm-wrap--season .ppsm-tab-panel[id^="ppsm-season-panel-"] {
    scroll-margin-top: 96px;
}

/* Classificação: só gamertag / texto, sem avatar */
#ppsm-container.ppsm-wrap--season .ppsm-cell-player--text-only {
    display: block;
}
#ppsm-container.ppsm-wrap--season .ppsm-cell-player--text-only .ppsm-cell-player__text {
    padding: 0;
}

/* Acessos / rebaixamentos — listas com cor semântica + posição */
#ppsm-container.ppsm-wrap--season .ppsm-accessos-plan {
    list-style: none;
    padding-left: 0;
    margin: 0;
}
#ppsm-container.ppsm-wrap--season .ppsm-accessos-line {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 12px;
    margin-bottom: 8px;
    border-radius: 10px;
    border: 1px solid rgba(0, 0, 0, 0.06);
    line-height: 1.4;
}
#ppsm-container.ppsm-wrap--season .ppsm-accessos-line:last-child {
    margin-bottom: 0;
}
#ppsm-container.ppsm-wrap--season .ppsm-accessos-line__pos {
    flex: 0 0 auto;
    min-width: 2.25rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: rgba(0, 0, 0, 0.55);
}
#ppsm-container.ppsm-wrap--season .ppsm-accessos-line__body {
    flex: 1 1 auto;
    min-width: 0;
}
#ppsm-container.ppsm-wrap--season .ppsm-accessos-line--promoted {
    border-left: 4px solid #16a34a;
    background: rgba(22, 163, 74, 0.09);
}
#ppsm-container.ppsm-wrap--season .ppsm-accessos-line--relegated {
    border-left: 4px solid #dc2626;
    background: rgba(220, 38, 38, 0.08);
}
#ppsm-container.ppsm-wrap--season .ppsm-accessos-line--note {
    border-left: 4px solid #2563eb;
    background: rgba(37, 99, 235, 0.07);
}
#ppsm-container.ppsm-wrap--season .ppsm-accessos-line--ko-champ {
    border-left: 4px solid #d97706;
    background: rgba(217, 119, 6, 0.1);
}
#ppsm-container.ppsm-wrap--season .ppsm-accessos-line--ko-vice {
    border-left: 4px solid #64748b;
    background: rgba(100, 116, 139, 0.1);
}

/* Cabeçalho explicativo no topo de cada tab da temporada */
#ppsm-container.ppsm-wrap--season .ppsm-season-panel-intro {
    margin: 0 0 1.25rem;
    padding: 0 0 1rem;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}
#ppsm-container.ppsm-wrap--season .ppsm-season-panel-intro__title {
    margin: 0 0 0.35rem;
    font-size: 1.15rem !important;
    font-weight: 700 !important;
    color: #0a0a0a !important;
}
#ppsm-container.ppsm-wrap--season .ppsm-season-panel-intro__text {
    margin: 0;
    font-size: max(0.875rem, 14px) !important;
    line-height: 1.45;
    color: rgba(0, 0, 0, 0.55) !important;
}

/* Tab ativa: ícone e texto brancos */
#ppsm-container.ppsm-wrap--season .ppsm-dash__actions--season .ppsm-dash__btn.is-active,
#ppsm-container.ppsm-wrap--season .ppsm-dash__actions--season .ppsm-dash__btn.is-active span {
    color: #fff !important;
}
#ppsm-container.ppsm-wrap--season .ppsm-dash__actions--season .ppsm-dash__btn.is-active i {
    color: #fff !important;
}

/* Duplicar temporada — destaque azul */
#ppsm-container.ppsm-wrap--season .ppsm-action--season-duplicate {
    background: #1d4ed8 !important;
    color: #fff !important;
    border: 1px solid #1e40af !important;
}
#ppsm-container.ppsm-wrap--season .ppsm-action--season-duplicate:hover {
    background: #3b82f6 !important;
    border-color: #2563eb !important;
    color: #fff !important;
}
#ppsm-container.ppsm-wrap--season .ppsm-action--season-duplicate i {
    color: #fff !important;
}

/* CTAs primários — branco + contorno preto; texto preto (evita branco sobre branco). */
/* Exclui Minhas páginas (community-list.css define CTAs premium no #ppsm-container.ppsm-community-list-page). */
#ppsm-container:not(.ppsm-community-list-page) #ppsm-btn-primary,
#ppsm-container:not(.ppsm-community-list-page) .ppsm-dash-btn-primary,
#ppsm-container:not(.ppsm-community-list-page) a.ppsm-dash-btn-primary,
#ppsm-container:not(.ppsm-community-list-page) button.ppsm-dash-btn-primary,
#ppsm-container:not(.ppsm-community-list-page) a.ppsm-btn--primary,
#ppsm-container:not(.ppsm-community-list-page) button.ppsm-btn--primary,
#ppsm-container:not(.ppsm-community-list-page) .ppsm-btn--primary,
#ppsm-container .ppsm-btn--follow,
#ppsm-container .ppsm-btn--auth-login,
#ppsm-container .ppsm-btn--create-season,
#ppsm-container .ppsm-btn--open-season,
#ppsm-container .ppsm-action--primary,
#ppsm-container .ppfc-community-list__btn-primary,
#ppsm-container .ppfc-community-list__btn-accent,
#ppsm-container .ppfc-ig-btn--primary,
#ppsm-container .create-form .action.primary {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 44px !important;
    padding: 10px 16px !important;
    border-radius: 8px !important;
    background: #ffffff !important;
    color: #000000 !important;
    border: 1px solid #000000 !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    text-decoration: none !important;
    cursor: pointer !important;
    box-sizing: border-box !important;
}
