:root {
    --mytcg-midnight: #111827;
    --mytcg-deep-navy: #0B1220;
    --mytcg-navy-soft: #17233A;
    --mytcg-primary: #2563EB;
    --mytcg-primary-dark: #1D4ED8;
    --mytcg-cyan: #22D3EE;
    --mytcg-violet: #7C3AED;
    --mytcg-amber: #F59E0B;
    --mytcg-bg: #F3F6FA;
    --mytcg-surface: #FFFFFF;
    --mytcg-text: #101827;

    --bg: var(--mytcg-bg);
    --bg-soft: #F8FAFC;
    --panel: rgba(255,255,255,.88);
    --panel-soft: rgba(255,255,255,.76);
    --panel-light: var(--mytcg-surface);
    --line: rgba(15, 23, 42, .09);
    --line-strong: rgba(15, 23, 42, .16);
    --text: var(--mytcg-text);
    --muted: #71798A;
    --theme-primary: var(--mytcg-primary);
    --theme-secondary: var(--mytcg-cyan);
    --theme-accent: var(--mytcg-amber);
    --theme-gradient-start: var(--mytcg-primary);
    --theme-gradient-end: var(--mytcg-violet);
    --theme-glow: rgba(37,99,235,.18);
    --green: #10B981;
    --purple: var(--mytcg-violet);
    --gold: var(--mytcg-amber);
    --gray: #8A909A;
    --cyan: var(--mytcg-cyan);
    --danger: #EF4444;
    --radius-lg: 28px;
    --radius-md: 18px;
    --shadow-soft: 0 24px 70px rgba(15,23,42,.11);
    --shadow-card: 0 14px 38px rgba(15,23,42,.09);
    --font-ui: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, Helvetica, sans-serif;
}

/* V90 - UX, branding admin e wishlist */
.app-back-link {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0 16px;
    border-radius: 999px;
    border: 1px solid var(--line, rgba(35,25,35,.09));
    background: rgba(255,255,255,.88);
    color: var(--text, #101827);
    font-weight: 900;
    text-decoration: none;
}
.admin-wide { grid-column: 1 / -1; }
.brand-color-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 12px;
    margin: 14px 0 22px;
}
.brand-color-grid label {
    display: grid;
    gap: 7px;
    padding: 12px;
    border: 1px solid var(--line, #e5e7eb);
    border-radius: 14px;
    background: rgba(255,255,255,.8);
    font-weight: 900;
    color: var(--text, #101827);
}
.brand-color-grid input[type="color"] {
    width: 100%;
    height: 42px;
    border: 0;
    background: transparent;
    padding: 0;
}
.brand-color-grid input[type="text"] {
    min-height: 38px;
    border: 1px solid var(--line, #e5e7eb);
    border-radius: 12px;
    padding: 0 10px;
}
.brand-preview {
    margin-top: 16px;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    padding: 16px;
    border-radius: 18px;
    border: 1px solid var(--line, #e5e7eb);
    background: var(--panel-light, #fff);
}
.brand-preview img { max-width: 180px; max-height: 58px; object-fit: contain; }
.brand-preview strong,
.brand-preview span { display: block; }
.brand-preview span { color: var(--muted, #7b8190); }
.brand-preview button {
    border: 0;
    border-radius: 999px;
    min-height: 42px;
    padding: 0 16px;
    background: linear-gradient(135deg, var(--theme-primary,#2563EB), var(--theme-secondary,#22D3EE));
    color: #101827;
    font-weight: 900;
}
.tcg-card.is-wishlist { outline: 2px solid rgba(37,99,235,.34); }
.quick-wishlist { background: rgba(37,99,235,.12) !important; color: #be185d !important; }
.wishlist-page-shell {
    width: min(1280px, calc(100% - 28px));
    margin: 22px auto 48px;
}
.page-soft-hero {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: center;
    padding: 20px;
    border-radius: 24px;
    background: rgba(255,255,255,.86);
    border: 1px solid var(--line, rgba(35,25,35,.09));
    box-shadow: var(--shadow-card, 0 14px 38px rgba(52,38,52,.09));
    margin-bottom: 16px;
}
.page-soft-hero h1 { margin: 0 0 4px; }
.page-soft-hero p { margin: 0; color: var(--muted, #7b8190); font-weight: 700; }
.wishlist-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(310px, 1fr));
    gap: 14px;
}
.wishlist-card {
    display: grid;
    grid-template-columns: 104px minmax(0, 1fr);
    gap: 14px;
    border: 1px solid var(--line, rgba(35,25,35,.09));
    border-radius: 22px;
    padding: 14px;
    background: rgba(255,255,255,.9);
    box-shadow: var(--shadow-card, 0 14px 38px rgba(52,38,52,.09));
}
.wishlist-image {
    min-height: 146px;
    border-radius: 16px;
    background: linear-gradient(135deg, rgba(37,99,235,.12), rgba(34,211,238,.16));
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    text-decoration: none;
}
.wishlist-image img { width: 100%; height: 100%; object-fit: contain; }
.wishlist-body { display: grid; gap: 10px; min-width: 0; }
.wishlist-title small,
.wishlist-title strong,
.wishlist-title span { display: block; overflow-wrap: anywhere; }
.wishlist-title small,
.wishlist-title span { color: var(--muted, #7b8190); font-weight: 800; }
.wishlist-controls {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}
.wishlist-controls label,
.wishlist-body > label {
    display: grid;
    gap: 5px;
    font-weight: 900;
    font-size: 12px;
    color: var(--text, #101827);
}
.wishlist-check { display: flex !important; align-items: center; grid-column: 1 / -1; }
.wishlist-controls input,
.wishlist-controls select,
.wishlist-body textarea {
    width: 100%;
    border: 1px solid var(--line, #e5e7eb);
    border-radius: 12px;
    padding: 9px 10px;
    background: #fff;
    color: var(--text, #101827);
}
.wishlist-actions { display: flex; gap: 8px; flex-wrap: wrap; }
@media (max-width: 680px) {
    .page-soft-hero { align-items: flex-start; flex-direction: column; }
    .brand-preview { grid-template-columns: 1fr; }
    .wishlist-grid { grid-template-columns: 1fr; }
    .wishlist-card { grid-template-columns: 86px minmax(0,1fr); }
    .wishlist-controls { grid-template-columns: 1fr; }
}

* { box-sizing: border-box; }
html { min-height: 100%; scroll-behavior: smooth; }
body {
    min-height: 100vh;
    margin: 0;
    color: var(--text);
    font-family: var(--font-ui);
    background:
        radial-gradient(circle at 84% 0%, rgba(255, 190, 215, .34), transparent 30%),
        radial-gradient(circle at 10% 16%, rgba(34, 211, 238, .24), transparent 26%),
        radial-gradient(circle at 82% 72%, rgba(243, 203, 117, .18), transparent 28%),
        linear-gradient(135deg, #fffdf8 0%, #F3F6FA 54%, #f7fbff 100%);
    overflow-x: hidden;
}
body::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    opacity: .38;
    background-image:
        radial-gradient(circle, rgba(37,99,235,.18) 0 2px, transparent 2px),
        radial-gradient(circle, rgba(212,154,47,.14) 0 2px, transparent 2px);
    background-size: 44px 44px, 60px 60px;
    background-position: 0 0, 26px 18px;
    mask-image: linear-gradient(180deg, #000, transparent 78%);
}
button, a, input, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }

.pokedex-shell { min-height: 100vh; position: relative; z-index: 1; }
.tcg-sky {
    position: fixed;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
    z-index: 0;
}
.float-token {
    position: absolute;
    font-size: 28px;
    opacity: .14;
    filter: drop-shadow(0 8px 16px rgba(37,99,235,.16));
    animation: floatTCG 20s linear infinite;
}
.float-token:nth-child(1){ left: 8%; top: 22%; animation-delay: -2s; }
.float-token:nth-child(2){ left: 72%; top: 10%; animation-delay: -8s; font-size: 36px; }
.float-token:nth-child(3){ left: 36%; top: 82%; animation-delay: -12s; }
.float-token:nth-child(4){ left: 92%; top: 48%; animation-delay: -5s; }
@keyframes floatTCG {
    0% { transform: translate3d(-40px, 10px, 0) rotate(-10deg); }
    50% { transform: translate3d(36px, -24px, 0) rotate(9deg); }
    100% { transform: translate3d(-40px, 10px, 0) rotate(-10deg); }
}

.pokedex-header {
    min-height: 102px;
    display: grid;
    grid-template-columns: minmax(280px, 360px) auto minmax(260px, 1fr) auto;
    align-items: center;
    gap: 24px;
    padding: 22px clamp(18px, 3vw, 34px);
    background: rgba(255,255,255,.72);
    border-bottom: 1px solid var(--line);
    box-shadow: 0 12px 40px rgba(75, 52, 75, .06);
    backdrop-filter: blur(20px);
    position: sticky;
    top: 0;
    z-index: 20;
}
.brand-area {
    display: flex;
    align-items: center;
    gap: 16px;
    min-width: 0;
}
.device-orb, .brand-orb-mark {
    width: 58px;
    height: 58px;
    flex: 0 0 auto;
    border-radius: 50%;
    position: relative;
    background:
        linear-gradient(#f14664 0 46%, #101827 46% 54%, #fff 54% 100%);
    border: 3px solid #fff;
    box-shadow: 0 16px 28px rgba(37,99,235,.18), inset 0 0 0 2px rgba(16,24,39,.12);
}
.device-orb::before, .brand-orb-mark::before {
    content: "";
    position: absolute;
    inset: 20px;
    border-radius: 50%;
    background: #fff;
    border: 4px solid #101827;
    box-shadow: inset 0 0 0 3px #f7fafc;
}
.device-orb::after, .brand-orb-mark::after {
    content: "";
    position: absolute;
    inset: -9px;
    border-radius: 50%;
    border: 1px solid rgba(37,99,235,.22);
}
.brand-area h1 {
    margin: 0;
    font-size: clamp(22px, 2vw, 31px);
    line-height: 1.04;
    text-transform: uppercase;
    letter-spacing: -.9px;
    color: #767a83;
    white-space: nowrap;
}
.brand-area h1::first-letter { color: inherit; }
.brand-area h1 { text-shadow: 0 1px 0 #fff; }
.brand-area h1::selection { background: rgba(37,99,235,.22); }
.brand-area span {
    display: block;
    margin-top: 4px;
    font-size: 12px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--muted);
    font-weight: 800;
}
.brand-area h1 strong, .brand-pink { color: #f1357c; }
.search-area { min-width: 0; }
.search-area input {
    width: 100%;
    height: 56px;
    border: 1px solid var(--line-strong);
    border-radius: 999px;
    color: var(--text);
    background:
        linear-gradient(180deg, rgba(255,255,255,.94), rgba(255,255,255,.74));
    box-shadow: inset 0 1px 0 rgba(255,255,255,.92), 0 12px 30px rgba(52,38,52,.05);
    outline: none;
    padding: 0 22px 0 54px;
    background-image:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%23858b98' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E"),
        linear-gradient(180deg, rgba(255,255,255,.94), rgba(255,255,255,.74));
    background-repeat: no-repeat, no-repeat;
    background-position: 22px center, center;
}
.search-area input:focus {
    border-color: rgba(37,99,235,.46);
    box-shadow: 0 0 0 4px rgba(37,99,235,.10), 0 18px 40px rgba(37,99,235,.08);
}
.toggle-sidebar-btn {
    min-height: 50px;
    border-radius: 999px;
    border: 1px solid var(--line-strong);
    background: linear-gradient(180deg, rgba(255,255,255,.94), rgba(255,255,255,.74));
    color: #4a5160;
    font-weight: 900;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 0 16px;
    box-shadow: 0 12px 28px rgba(52,38,52,.06);
    white-space: nowrap;
}
.toggle-sidebar-btn:hover { transform: translateY(-1px); }
.toggle-sidebar-btn.is-collapsed { color: #f1357c; border-color: rgba(37,99,235,.34); }
.toggle-sidebar-icon { font-size: 16px; line-height: 1; }
.header-right { display:flex; align-items:center; gap: 12px; justify-self: end; }
.brand-logo-box {
    min-width: 150px;
    height: 58px;
    padding: 8px 14px;
    border-radius: 22px;
    display:flex; align-items:center; justify-content:center;
    background: linear-gradient(180deg, rgba(255,255,255,.94), rgba(255,255,255,.70));
    border: 1px solid var(--line-strong);
    box-shadow: var(--shadow-card);
}
.brand-logo-box img { display:block; max-width: 100%; max-height: 38px; object-fit: contain; }
.trainer-area {
    min-width: 238px;
    min-height: 58px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 10px 14px;
    border-radius: 22px;
    background: linear-gradient(180deg, rgba(255,255,255,.94), rgba(255,255,255,.66));
    border: 1px solid var(--line-strong);
    box-shadow: var(--shadow-card);
}
.trainer-area a,
.trainer-area a[style] {
    color: #f1357c !important;
    text-decoration: none !important;
    font-weight: 900 !important;
}
.trainer-area small { display: block; color: var(--muted); font-weight: 700; }
.trainer-avatar {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: #fff7dc;
    border: 1px solid rgba(212,154,47,.28);
}

.pokedex-layout {
    display: grid;
    grid-template-columns: 300px minmax(0, 1fr) 380px;
    gap: 22px;
    padding: 18px clamp(16px, 2vw, 28px) 22px;
    min-height: calc(100vh - 102px);
    height: calc(100vh - 102px);
    transition: grid-template-columns .22s ease, gap .22s ease;
}
.pokedex-layout.sidebar-collapsed {
    grid-template-columns: 0 minmax(0, 1fr) 380px;
    gap: 18px;
}
.pokedex-layout.sidebar-collapsed .sidebar {
    opacity: 0;
    pointer-events: none;
    min-width: 0;
    width: 0;
    padding: 0;
    margin: 0;
    border: 0;
    overflow: hidden;
}
.sidebar, .content, .detail-panel, .catalog-card, .sync-card {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-soft);
    backdrop-filter: blur(18px);
}
.sidebar {
    padding: 18px;
    overflow: auto;
    min-width: 0;
}
.panel-title {
    color: #f1357c;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: -.02em;
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.panel-title::before { content: "◇"; color: #2563EB; font-size: 18px; }
.collection-list { display: flex; flex-direction: column; gap: 12px; }
.collection-item {
    display: grid;
    grid-template-columns: 52px 1fr 48px;
    align-items: center;
    gap: 12px;
    min-height: 76px;
    padding: 12px;
    color: var(--text);
    text-decoration: none;
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(255,255,255,.95), rgba(255,255,255,.58));
    border: 1px solid var(--line-strong);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.collection-item:hover, .collection-item.active {
    transform: translateY(-2px);
    border-color: rgba(37,99,235,.42);
    box-shadow: 0 16px 38px rgba(37,99,235,.12);
}
.collection-icon {
    width: 50px;
    height: 50px;
    border-radius: 16px;
    display: grid;
    place-items: center;
    color: #fff;
    font-weight: 950;
    font-size: 20px;
    background: linear-gradient(135deg, #2563EB, #9fcfff 48%, #7C3AED);
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.55), 0 10px 20px rgba(37,99,235,.18);
}
.collection-info { min-width: 0; }
.collection-info strong, .collection-info small { display: block; }
.collection-info strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.collection-info small { color: var(--muted); margin-top: 4px; }
.collection-pct { text-align: right; font-weight: 950; color: var(--text); }
.btn-add-collection {
    width: 100%;
    min-height: 56px;
    margin-top: 18px;
    border-radius: 18px;
    border: 1px solid rgba(37,99,235,.44);
    color: #f1357c;
    background: rgba(255,255,255,.62);
    text-transform: uppercase;
    font-weight: 950;
    letter-spacing: -.01em;
    box-shadow: 0 16px 34px rgba(37,99,235,.08);
}
.btn-add-collection:hover { background: #fff; transform: translateY(-1px); }
.album-box, .professor-tip {
    margin-top: 18px;
    padding: 16px;
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(255,255,255,.90), rgba(255,255,255,.58));
    border: 1px solid var(--line);
}
.album-box strong { display: block; font-size: 18px; }
.album-box small { display: block; color: var(--muted); margin-top: 8px; }
.mini-progress {
    width: 100%; height: 8px; margin: 12px 0;
    overflow: hidden; border-radius: 999px; background: #edf0f4;
}
.mini-progress span { display: block; height: 100%; background: linear-gradient(90deg, #2563EB, #22D3EE); border-radius: inherit; }
.sidebar-deco {
    margin: 26px auto 14px;
    min-height: 128px;
    display: grid;
    place-items: center;
    color: rgba(16,24,39,.82);
    text-align: center;
}
.starter-stage { font-size: 50px; letter-spacing: 8px; filter: drop-shadow(0 18px 18px rgba(52,38,52,.12)); }
.professor-tip { display: grid; grid-template-columns: 42px 1fr; gap: 12px; align-items: center; }
.professor-tip-icon { width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; background:#fff1f7; }
.professor-tip strong { color:#f1357c; font-size: 13px; }
.professor-tip p { margin:4px 0 0; color: var(--muted); font-size: 12px; line-height: 1.35; }

.content { padding: 18px; overflow: hidden; display: flex; flex-direction: column; min-width: 0; }
.stats-card {
    position: relative;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0;
    padding: 18px 20px 18px;
    border-radius: 26px;
    border: 1px solid var(--line);
    background:
        radial-gradient(circle at 6% 0%, rgba(34,211,238,.22), transparent 32%),
        radial-gradient(circle at 88% 18%, rgba(37,99,235,.14), transparent 25%),
        linear-gradient(180deg, rgba(255,255,255,.94), rgba(255,255,255,.62));
    box-shadow: var(--shadow-card);
    overflow: hidden;
    flex: 0 0 auto;
}
.stats-card-top {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 10px;
    position: relative;
    z-index: 1;
}
.stats-card::before {
    content: "";
    position:absolute; inset:0;
    background: linear-gradient(115deg, transparent, rgba(255,255,255,.42), transparent);
    transform: translateX(-100%);
    animation: panelSheen 9s ease-in-out infinite;
    pointer-events:none;
}
@keyframes panelSheen { 0%,70%{ transform: translateX(-100%);} 85%,100%{ transform: translateX(100%);} }
.stat-item { padding: 4px 18px; border-right: 1px solid var(--line); min-width: 0; }
.stat-item:first-of-type { padding-left: 0; }
.stat-item:last-of-type { border-right: 0; }
.stat-item small { display:block; color: var(--muted); text-transform: uppercase; font-size: 11px; font-weight: 850; }
.stat-item strong { display:block; margin-top: 6px; font-size: clamp(18px, 1.6vw, 24px); letter-spacing: -.04em; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.stat-item .accent { color: #2bb8df; }
.progress-line {
    grid-column: 1 / -1;
    margin-top: 14px;
    height: 11px; border-radius: 999px; overflow: hidden;
    background: #edf0f4;
}
.progress-line span { display:block; height:100%; border-radius:inherit; background: linear-gradient(90deg, #2563EB, #22D3EE, #7C3AED); }
.theme-badge {
    position: static;
    display: inline-flex; align-items:center; gap: 6px;
    padding: 7px 10px;
    border-radius: 999px;
    color: var(--muted);
    font-size: 11px;
    background: rgba(255,255,255,.72);
    border: 1px solid var(--line);
}
.theme-badge strong { color:#2bb8df; }
.btn-config-collection {
    position: static;
    min-height: 36px; padding: 0 14px; border-radius:999px;
    border: 1px solid rgba(212,154,47,.30);
    color:#c98200; background: rgba(255,250,236,.82);
    font-size: 11px; font-weight: 900; text-transform: uppercase;
}
.toolbar {
    margin: 14px 0 12px;
    display:flex; justify-content:space-between; align-items:center; gap: 12px;
    flex:0 0 auto;
}
.filter-chips { display:flex; flex-wrap:wrap; gap:10px; }
.chip, .sort-select {
    min-height: 44px;
    border-radius: 999px;
    border: 1px solid var(--line);
    color: #444b58;
    background: rgba(255,255,255,.78);
    box-shadow: 0 10px 24px rgba(52,38,52,.05);
    padding: 0 18px;
    font-weight: 800;
}
.chip.active {
    color:#fff;
    border-color: transparent;
    background: linear-gradient(135deg, #2563EB, #ff7aa9);
    box-shadow: 0 16px 34px rgba(37,99,235,.22);
}
.sort-select { min-width: 190px; outline:none; }
.card-grid {
    flex: 1; min-height:0;
    min-height: 520px;
    overflow-y:auto; overflow-x:hidden;
    padding: 2px 8px 20px 2px;
    display:grid;
    grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
    gap: 18px;
    align-content:start;
}
.card-grid::-webkit-scrollbar, .detail-panel::-webkit-scrollbar, .sidebar::-webkit-scrollbar { width: 10px; }
.card-grid::-webkit-scrollbar-thumb, .detail-panel::-webkit-scrollbar-thumb, .sidebar::-webkit-scrollbar-thumb { background: linear-gradient(180deg, #2563EB, #7C3AED); border-radius:999px; border: 3px solid #fffaf4; }
.card-grid::-webkit-scrollbar-track, .detail-panel::-webkit-scrollbar-track, .sidebar::-webkit-scrollbar-track { background: transparent; }
.tcg-card {
    position:relative;
    min-height: 334px;
    padding: 12px;
    border-radius: 22px;
    border: 1px solid var(--line);
    background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.72));
    box-shadow: var(--shadow-card);
    cursor:pointer;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
    overflow:hidden;
}
.tcg-card:hover, .tcg-card.selected { transform: translateY(-4px); border-color: rgba(37,99,235,.40); box-shadow: 0 24px 54px rgba(37,99,235,.16); }
.tcg-card.selected::before { content:""; position:absolute; inset:0; border-radius:inherit; box-shadow: inset 0 0 0 2px rgba(37,99,235,.55); pointer-events:none; }
.tcg-card.especial { border-color: rgba(212,154,47,.40); }
.tcg-card.especial::after { content:"✦"; position:absolute; top: 10px; left: 12px; color:#F59E0B; opacity:.55; }
.card-image {
    position: relative;
    height: 182px;
    display:grid; place-items:center;
    border-radius: 16px;
    overflow:hidden;
    background: linear-gradient(135deg, #fff7dc, #e9f9ff);
}
.card-image img { width:100%; height:100%; object-fit: contain; padding: 2px; }
.fake-card-art { width:100%; height:100%; display:grid; place-items:center; background: linear-gradient(135deg, #ffe1ec, #dcf7ff); }
.fake-card-art span { font-size: 54px; font-weight:950; color: rgba(37,99,235,.42); }
.card-status-dot {
    position:absolute; top:10px; right:10px;
    width:32px; height:32px; display:grid; place-items:center;
    border-radius:50%; color:#fff; font-weight: 950;
    background: rgba(16,24,39,.70);
    backdrop-filter: blur(8px);
}
.card-meta { padding: 12px 2px 8px; }
.card-meta small, .card-meta span { display:block; color: var(--muted); font-size: 12px; }
.card-meta strong { display:block; min-height: 42px; margin-top:5px; font-size: 16px; line-height:1.3; }
.variation-badges { display:flex; gap:5px; flex-wrap:wrap; min-height: 22px; margin-top:8px; }
.variation-badges span, .variation-badge-big {
    min-width: 24px; height: 24px; padding: 0 7px;
    display:inline-grid; place-items:center;
    border-radius:999px;
    background:#fff1f7;
    border:1px solid rgba(37,99,235,.24);
    color:#f1357c;
    font-size:11px; font-weight:950;
}
.status-pill, .variation-status-pill {
    display:inline-flex; align-items:center; justify-content:center;
    min-width: 78px;
    min-height: 28px;
    border-radius:999px;
    padding: 5px 10px;
    font-size: 12px;
    font-weight: 950;
    border:1px solid transparent;
}
.status-tenho { background:#ecfff2; color:#1f9d4d; border-color: rgba(53,190,101,.30); }
.status-falta { background:#f3f4f6; color:#747b87; border-color: rgba(116,123,135,.20); }
.status-repetido { background:#f2eaff; color:#8352e8; border-color: rgba(164,108,255,.28); }
.status-quero { background:#fff8df; color:#ba7a00; border-color: rgba(212,154,47,.28); }
.status-venda, .status-troca, .status-favorito { background:#eafaff; color:#129cc0; border-color: rgba(64,191,230,.28); }
.quick-actions { display:grid; grid-template-columns: 1fr 1fr 48px; gap: 8px; margin-top: 12px; }
.quick-btn, .variation-action-btn {
    height: 34px;
    border-radius: 12px;
    border:1px solid var(--line-strong);
    background: rgba(255,255,255,.72);
    color: var(--text);
    font-size:12px; font-weight: 950;
}
.quick-tenho { color:#1f9d4d; border-color: rgba(53,190,101,.30); }
.quick-falta { color:#f1357c; border-color: rgba(37,99,235,.32); }
.quick-plus { color:#8352e8; border-color: rgba(164,108,255,.30); }
.quick-updated { animation: quickPulse .42s ease; }
@keyframes quickPulse { 50% { transform: scale(1.025); } }

.detail-panel {
    padding: 20px;
    overflow-y:auto; overflow-x:hidden;
    min-width:0;
}
.detail-header { display:flex; align-items:center; justify-content:space-between; gap: 10px; }
.detail-header h2 { margin:0; color:#f1357c; font-size:20px; text-transform: uppercase; letter-spacing:-.03em; }
.detail-header button { width:36px; height:36px; border-radius:50%; border:1px solid var(--line); background:rgba(255,255,255,.72); color:#8a909a; }
.selected-card-preview {
    margin: 18px 0;
    min-height: 360px;
    display:grid; place-items:center;
    padding: 14px;
    border-radius: 24px;
    background: linear-gradient(135deg, #fff1f7, #e9f9ff 60%, #fff8df);
    border:1px solid var(--line);
}
.selected-card-preview img { max-width:100%; max-height: 500px; object-fit:contain; border-radius: 18px; filter: drop-shadow(0 20px 30px rgba(52,38,52,.18)); }
.large-fake-card { width:230px; height:320px; border-radius:18px; padding:18px; background: linear-gradient(135deg,#ffcfdd,#bfefff); display:flex; flex-direction:column; justify-content:space-between; }
.detail-card-title, .variation-panel, .price-manual-box, .price-box {
    border-radius: 18px;
    background: rgba(255,255,255,.70);
    border: 1px solid var(--line);
    box-shadow: 0 10px 26px rgba(52,38,52,.05);
}
.detail-card-title { padding: 14px 16px; margin-bottom: 14px; }
.detail-card-title strong { display:block; font-size: 21px; }
.detail-card-title small { display:block; color: var(--muted); margin-top: 3px; }
.variation-panel { margin: 14px 0; padding: 14px; }
.variation-panel-title strong, .price-manual-title strong, .detail-section-title { color:#f1357c; font-weight:950; text-transform: uppercase; font-size: 13px; }
.variation-panel-title small, .price-manual-title small { display:block; color: var(--muted); font-size: 11px; margin-top:3px; }
.variation-list { display:grid; gap: 10px; margin-top: 12px; }
.variation-row {
    padding: 12px;
    border-radius: 16px;
    background: linear-gradient(180deg, rgba(255,255,255,.86), rgba(255,255,255,.60));
    border: 1px solid var(--line);
    overflow:hidden;
}
.variation-row-header { display:grid; grid-template-columns: 34px 1fr auto; gap: 10px; align-items:center; margin-bottom:10px; }
.variation-row-title strong, .variation-row-title small { display:block; }
.variation-row-title small { color:var(--muted); font-size: 11px; }
.variation-row-controls { display:grid; grid-template-columns: 62px minmax(0,1fr) minmax(0,1fr); gap: 8px; align-items:end; }
.variation-field { min-width:0; }
.variation-field label, .detail-form label, .price-manual-box label, .form-group label, .sync-form label {
    display:block; margin-bottom: 5px; color: var(--muted); font-size: 10px; font-weight: 850; text-transform: uppercase; letter-spacing: .04em;
}
.variation-row-controls input, .variation-row-controls select, .detail-form input, .detail-form select, .price-manual-box input, .form-group input, .form-group select, .sync-form input, .sync-form select {
    width:100%; height: 40px; min-width: 0;
    border-radius: 12px;
    border: 1px solid var(--line-strong);
    background: rgba(255,255,255,.82);
    color: var(--text);
    padding: 0 10px;
    outline:none;
}
.variation-row-actions { display:grid; grid-template-columns: 1fr 1fr 48px; gap: 8px; margin-top: 10px; }
.detail-form { display:grid; gap: 10px; }
.detail-section-title { margin-top: 14px; padding-top: 12px; border-top:1px solid var(--line); }
.btn-save-card, .btn-price, .btn-save-price, .btn-modal-save, .sync-form button, .catalog-sync-link {
    min-height: 46px;
    border:0;
    border-radius: 15px;
    color:#fff;
    font-weight: 950;
    text-transform: uppercase;
    background: linear-gradient(135deg, #2563EB, #ff7aa9);
    box-shadow: 0 16px 34px rgba(37,99,235,.18);
}
.btn-price, .btn-save-price, .catalog-sync-link { background: linear-gradient(135deg, #F59E0B, #7C3AED); color:#fff; }
.btn-save-card { background: linear-gradient(135deg, #35be65, #61d889); }
.price-manual-box { padding: 14px; margin-top: 12px; }
.price-input-grid { display:grid; grid-template-columns: 1fr; gap: 8px; }
.price-box { margin-top: 14px; display:grid; grid-template-columns: repeat(3,1fr); overflow:hidden; }
.price-box div { padding: 12px 8px; text-align:center; border-right:1px solid var(--line); }
.price-box div:last-child { border-right:0; }
.price-box small { display:block; color:var(--muted); font-size: 10px; text-transform:uppercase; font-weight: 850; }
.price-box strong { display:block; margin-top:4px; font-size: 14px; }
.price-main { color:#f1357c; }
.save-message, .modal-message, .catalog-sync-message, .sync-message { min-height: 22px; color: var(--muted); font-size: 13px; }
.save-message.success, .modal-message.success, .catalog-sync-message.success, .sync-message.success { color:#1f9d4d; }
.save-message.error, .modal-message.error, .catalog-sync-message.error, .sync-message.error { color:#e04867; }
.legacy-card-fields { display:none !important; }
.empty-state, .empty-box, .variation-empty { color: var(--muted); }
.empty-collection-state {
    grid-column: 1 / -1;
    min-height: 360px;
    border:1px dashed rgba(37,99,235,.26);
    border-radius: 24px;
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    text-align:center; padding: 30px;
    background: rgba(255,255,255,.58);
}
.empty-orb { width:78px; height:78px; border-radius:50%; background: linear-gradient(#f14664 0 46%, #101827 46% 54%, #fff 54%); box-shadow:0 16px 28px rgba(37,99,235,.16); }
.btn-catalog-sync { min-height: 48px; padding: 0 18px; border-radius: 15px; border:0; color:#fff; font-weight:950; background: linear-gradient(135deg, #2563EB, #7C3AED); }

.modal-backdrop-custom { position:fixed; inset:0; display:none; z-index:1000; background: rgba(16,24,39,.38); backdrop-filter: blur(9px); }
.modal-backdrop-custom.open { display:block; }
.collection-modal, .collection-settings-modal {
    position:fixed; top:50%; left:50%; z-index:1001;
    width: min(820px, calc(100vw - 32px)); max-height: calc(100vh - 32px);
    opacity:0; pointer-events:none; overflow:hidden;
    transform: translate(-50%,-50%) scale(.96);
    transition:.18s ease;
    border-radius: 26px;
    background: rgba(255,255,255,.92);
    border:1px solid var(--line);
    box-shadow: 0 35px 100px rgba(52,38,52,.24);
}
.collection-modal { width:min(720px, calc(100vw - 32px)); }
.collection-modal.open, .collection-settings-modal.open { opacity:1; pointer-events:auto; transform: translate(-50%,-50%) scale(1); }
.collection-modal-header { padding: 22px; display:flex; justify-content:space-between; gap:16px; background: linear-gradient(135deg,#ffedf4,#fff8df); border-bottom:1px solid var(--line); }
.collection-modal-header h2 { margin:0; text-transform:uppercase; color:#f1357c; font-size:22px; }
.collection-modal-header small { display:block; color:var(--muted); margin-top:3px; }
.collection-modal-header button { width:36px; height:36px; border-radius:50%; border:1px solid var(--line); background:#fff; color:var(--muted); }
.collection-modal-body { padding:22px; max-height: calc(100vh - 184px); overflow:auto; }
.form-grid { display:grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.form-group.full { grid-column: 1 / -1; }
.collection-modal-footer { display:flex; justify-content:flex-end; gap:10px; padding:18px 22px; border-top:1px solid var(--line); background:rgba(255,255,255,.64); }
.btn-modal-cancel, .btn-delete-collection { min-height: 42px; padding:0 16px; border-radius: 14px; font-weight:900; text-transform:uppercase; }
.btn-modal-cancel { border:1px solid var(--line); background:#fff; color: var(--muted); }
.btn-delete-collection { border:1px solid rgba(224,72,103,.24); background:#fff1f4; color:#e04867; }
.settings-section-title { margin: 18px 0 12px; padding-bottom:8px; border-bottom:1px solid var(--line); color:#f1357c; font-weight:950; text-transform:uppercase; font-size:13px; }
.settings-section-title:first-child { margin-top:0; }
.field-help { display:block; margin-top:6px; color:var(--muted); font-size:11px; }

.catalog-layout, .sync-layout { padding: 24px; }
.catalog-card, .sync-card { padding: 22px; }
.catalog-header { display:flex; justify-content:space-between; align-items:flex-start; gap: 16px; margin-bottom: 18px; }
.catalog-header h2, .sync-card h2 { margin:0; color:#f1357c; text-transform:uppercase; }
.catalog-header p, .sync-card p { color:var(--muted); }
.catalog-grid { display:grid; grid-template-columns: repeat(auto-fill, minmax(290px,1fr)); gap:14px; }
.catalog-collection-item, .set-result-item {
    display:grid; grid-template-columns: 64px 1fr auto; gap: 12px; align-items:center;
    padding:14px; border-radius: 18px; border:1px solid var(--line);
    background: rgba(255,255,255,.72); box-shadow: var(--shadow-card);
}
.catalog-collection-icon, .set-result-symbol { width:64px; height:64px; display:grid; place-items:center; border-radius:16px; background:#fff8df; overflow:hidden; }
.catalog-collection-icon img, .set-result-symbol img { max-width:100%; max-height:100%; object-fit:contain; }
.catalog-collection-info strong, .catalog-collection-info small, .catalog-collection-info span, .set-result-info strong, .set-result-info small { display:block; }
.catalog-collection-info small, .catalog-collection-info span, .set-result-info small { color:var(--muted); margin-top:3px; }
.btn-add-user-collection, .btn-open-catalog, .set-result-actions button {
    min-height: 38px; padding:0 13px; border-radius: 13px;
    border:1px solid rgba(37,99,235,.34); background:#fff; color:#f1357c;
    font-weight: 950; text-transform:uppercase; text-decoration:none;
}
.sync-layout { display:grid; grid-template-columns: 430px 1fr; gap: 18px; }
.sync-form { display:grid; gap: 10px; margin-top: 14px; }
.set-results { display:grid; gap: 10px; max-height: 420px; overflow:auto; margin-top:18px; }
.sync-table-wrap { overflow:auto; }
.sync-table { width:100%; border-collapse:collapse; font-size:13px; }
.sync-table th, .sync-table td { border-bottom:1px solid var(--line); padding:10px; text-align:left; }
.sync-table th { color:var(--muted); text-transform:uppercase; font-size:11px; }
.sync-table a { color:#f1357c; font-weight:900; text-decoration:none; }

@media (max-width: 1320px) {
    .pokedex-layout { grid-template-columns: 280px minmax(0,1fr); height:auto; min-height: calc(100vh - 102px); }
    .pokedex-layout.sidebar-collapsed { grid-template-columns: 0 minmax(0,1fr); }
    .detail-panel { grid-column: 1 / -1; display:grid; grid-template-columns: 330px minmax(0,1fr); gap: 18px; }
    .detail-header { grid-column: 1 / -1; }
    #detailContent { display: contents; }
    .selected-card-preview { margin:0; min-height: 320px; }
    .card-grid { max-height: none; overflow: visible; }
}
@media (max-width: 980px) {
    .pokedex-header { grid-template-columns: 1fr; gap: 14px; position: relative; }
    .toggle-sidebar-btn { display:none; }
    .header-right { width:100%; justify-content:space-between; flex-wrap:wrap; }
    .brand-logo-box { min-width: 132px; height: 52px; }
    .trainer-area { width:100%; min-width:0; justify-content:space-between; }
    .brand-area h1 { white-space: normal; }
    .pokedex-layout { grid-template-columns: 1fr; padding: 16px; height:auto; }
    .sidebar { order: 2; }
    .content { order: 1; }
    .detail-panel { order: 3; display:block; }
    #detailContent { display:block; }
    .stats-card { grid-template-columns: 1fr 1fr; }
    .stats-card-top { margin-bottom: 0; }
    .stat-item { border-right:0; border-bottom:1px solid var(--line); padding: 12px 10px; }
    .toolbar { flex-direction: column; align-items: stretch; }
    .filter-chips { flex-wrap: nowrap; overflow-x:auto; padding-bottom: 4px; }
    .chip { flex:0 0 auto; }
    .sort-select { width:100%; }
    .card-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; }
    .sync-layout { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
    body { background: #fffdf8; }
    .pokedex-header { padding: 18px 14px; }
    .device-orb { width:48px; height:48px; }
    .brand-area { gap: 12px; }
    .brand-area h1 { font-size: 22px; }
    .brand-area span { font-size: 10px; }
    .pokedex-layout { padding: 12px; gap: 14px; }
    .content, .sidebar, .detail-panel { border-radius: 22px; padding: 14px; }
    .stats-card { grid-template-columns: 1fr; padding: 16px; }
    .stats-card-top { align-items: stretch; }
    .theme-badge, .btn-config-collection { width: 100%; justify-content: center; }
    .card-grid { grid-template-columns: 1fr; }
    .tcg-card { min-height: 250px; display:grid; grid-template-columns: 132px 1fr; gap: 12px; }
    .tcg-card .card-image { height: 185px; grid-row: 1 / span 3; }
    .tcg-card .quick-actions { grid-column: 1 / -1; }
    .selected-card-preview { min-height: 260px; }
    .form-grid, .variation-row-controls, .variation-row-actions, .quick-actions, .price-box { grid-template-columns: 1fr; }
    .collection-modal-footer { flex-direction: column; }
    .btn-modal-cancel, .btn-modal-save, .btn-delete-collection { width:100%; }
    .catalog-layout, .sync-layout { padding: 14px; }
    .catalog-header { flex-direction:column; }
    .catalog-grid { grid-template-columns: 1fr; }
    .catalog-collection-item, .set-result-item { grid-template-columns: 54px 1fr; }
    .catalog-collection-actions, .set-result-actions { grid-column: 1 / -1; }
    .btn-add-user-collection, .btn-open-catalog, .set-result-actions button { width:100%; }
}
.variation-row.selected-variation {
    border-color: rgba(37,99,235,.42);
    box-shadow: 0 14px 30px rgba(37,99,235,.10);
}
@media (max-width: 980px) {
    .detail-panel.detail-open-mobile {
        box-shadow: 0 -12px 60px rgba(52,38,52,.18);
    }
}


/* =========================================================
   V3 UX Premium - motion, mobile drawer e microinterações
   ========================================================= */

.tcg-sky {
    z-index: 0;
}

.tcg-runner {
    position: fixed;
    z-index: 0;
    pointer-events: none;
    opacity: .16;
    font-size: 28px;
    filter: blur(.1px) drop-shadow(0 10px 20px rgba(37,99,235,.16));
    animation: tcgRunner 26s linear infinite;
}

.runner-one { left: -8vw; top: 28%; animation-delay: -4s; }
.runner-two { left: -10vw; top: 62%; animation-delay: -14s; font-size: 34px; color: #2563EB; }
.runner-three { left: -8vw; top: 82%; animation-delay: -21s; font-size: 18px; color: #F59E0B; }

@keyframes tcgRunner {
    0% { transform: translateX(-10vw) translateY(0) scale(.92) rotate(-7deg); opacity: 0; }
    8% { opacity: .14; }
    48% { transform: translateX(58vw) translateY(-18px) scale(1) rotate(7deg); opacity: .18; }
    88% { opacity: .12; }
    100% { transform: translateX(112vw) translateY(10px) scale(.94) rotate(-4deg); opacity: 0; }
}

.energy-orb {
    position: fixed;
    z-index: 0;
    pointer-events: none;
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    border-radius: 999px;
    background: rgba(255,255,255,.62);
    border: 1px solid rgba(35,25,35,.08);
    box-shadow: 0 18px 38px rgba(52,38,52,.08);
    opacity: .36;
    animation: orbDrift 12s ease-in-out infinite;
}

.orb-leaf { right: 8%; top: 22%; animation-delay: -2s; }
.orb-fire { left: 8%; bottom: 13%; animation-delay: -6s; }
.orb-water { right: 28%; bottom: 8%; animation-delay: -9s; }

@keyframes orbDrift {
    0%, 100% { transform: translate3d(0,0,0) scale(1); }
    45% { transform: translate3d(18px,-20px,0) scale(1.05); }
}

.mobile-sidebar-btn,
.sidebar-close-mobile {
    display: none;
}

.header-right {
    gap: 14px;
}

.trainer-area {
    min-width: 202px;
    padding: 8px 10px;
}

.trainer-action {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: inherit;
    text-decoration: none;
}

.trainer-action strong {
    display: block;
    color: #f1357c;
    font-weight: 950;
    line-height: 1.05;
}

.trainer-action small {
    line-height: 1.1;
}

.trainer-bell {
    border: 1px solid rgba(212,154,47,.28);
    color: #101827;
}

.brand-logo-box {
    min-width: 172px;
}

.pokedex-layout.sidebar-collapsed .content {
    animation: expandedContentPulse .24s ease-out;
}

@keyframes expandedContentPulse {
    from { transform: scale(.997); }
    to { transform: scale(1); }
}

.stats-card {
    isolation: isolate;
}

.stats-card-top,
.stat-item,
.progress-line {
    position: relative;
    z-index: 1;
}

.stat-item {
    transition: transform .16s ease, background .16s ease;
    border-radius: 16px;
}

.stat-item:hover {
    background: rgba(255,255,255,.36);
    transform: translateY(-1px);
}

.tcg-card {
    transform-style: preserve-3d;
}

.tcg-card::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    opacity: 0;
    background: linear-gradient(115deg, transparent 20%, rgba(255,255,255,.46) 42%, transparent 62%);
    transform: translateX(-130%);
    transition: opacity .18s ease;
}

.tcg-card:hover::before,
.tcg-card.selected::before {
    opacity: 1;
    animation: cardSheenV3 1.1s ease;
}

@keyframes cardSheenV3 {
    0% { transform: translateX(-130%); }
    100% { transform: translateX(130%); }
}

.tcg-card:hover .card-image img {
    transform: scale(1.035);
}

.card-image img {
    transition: transform .22s ease;
}

.quick-actions {
    transition: opacity .16s ease, transform .16s ease;
}

.tcg-card:hover .quick-actions {
    transform: translateY(-1px);
}

.quick-btn:active,
.variation-action-btn:active,
.chip:active {
    transform: translateY(1px) scale(.99);
}

.detail-panel {
    scroll-behavior: smooth;
}

.selected-card-preview img {
    transition: transform .22s ease, filter .22s ease;
}

.selected-card-preview:hover img {
    transform: scale(1.015);
    filter: saturate(1.04);
}

.variation-row {
    transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease, background .16s ease;
}

.variation-row:hover {
    transform: translateY(-1px);
    background: rgba(255,255,255,.11);
}

.variation-row.selected-variation {
    border-color: rgba(37,99,235,.52);
    box-shadow: 0 16px 34px rgba(37,99,235,.12);
}

.catalog-collection-item,
.set-result-item,
.collection-item,
.album-box,
.professor-tip {
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.catalog-collection-item:hover,
.set-result-item:hover,
.collection-item:hover {
    transform: translateY(-2px);
}

/* Desktop alto: aumenta a área real de cards */
@media (min-width: 1321px) {
    .pokedex-layout {
        padding-top: 16px;
        padding-bottom: 18px;
    }

    .content {
        padding: 16px;
    }

    .card-grid {
        min-height: 600px;
        padding-bottom: 18px;
    }

    .stats-card {
        padding-top: 16px;
        padding-bottom: 16px;
    }
}

/* Mobile/tablet: sidebar vira drawer premium */
@media (max-width: 980px) {
    .mobile-sidebar-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 46px;
        border-radius: 999px;
        border: 1px solid rgba(37,99,235,.26);
        background: rgba(255,255,255,.78);
        color: #f1357c;
        font-weight: 950;
        box-shadow: 0 12px 28px rgba(37,99,235,.08);
    }

    .sidebar-close-mobile {
        display: grid;
        place-items: center;
        position: absolute;
        right: 14px;
        top: 14px;
        width: 36px;
        height: 36px;
        border-radius: 999px;
        border: 1px solid var(--line);
        background: #fff;
        color: #7b8190;
        font-size: 24px;
        line-height: 1;
        z-index: 5;
    }

    .sidebar {
        position: fixed;
        z-index: 80;
        top: 12px;
        left: 12px;
        bottom: 12px;
        width: min(350px, calc(100vw - 24px));
        transform: translateX(calc(-100% - 18px));
        opacity: 0;
        pointer-events: none;
        transition: transform .22s ease, opacity .22s ease;
        order: initial;
        padding-top: 58px;
    }

    body.mobile-sidebar-open .sidebar {
        transform: translateX(0);
        opacity: 1;
        pointer-events: auto;
    }

    body.mobile-sidebar-open::after {
        content: "";
        position: fixed;
        inset: 0;
        z-index: 70;
        background: rgba(16,24,39,.26);
        backdrop-filter: blur(5px);
    }

    .brand-logo-box {
        order: -1;
        min-width: 148px;
    }

    .trainer-area {
        flex: 1;
        width: auto;
    }

    .card-grid {
        min-height: auto;
    }

    .detail-panel.detail-open-mobile {
        position: relative;
        border-color: rgba(37,99,235,.28);
    }
}

@media (max-width: 640px) {
    .header-right {
        gap: 10px;
    }

    .brand-logo-box {
        min-width: 128px;
        flex: 1 1 128px;
    }

    .trainer-area {
        min-width: 0;
        flex: 1 1 176px;
    }

    .trainer-action strong {
        font-size: 13px;
    }

    .mobile-sidebar-btn {
        width: 100%;
    }

    .energy-orb,
    .tcg-runner {
        opacity: .10;
    }

    .tcg-card::before {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .float-token,
    .tcg-runner,
    .energy-orb,
    .stats-card::before,
    .tcg-card::before {
        animation: none !important;
    }

    * {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }
}


/* =========================================================
   V4 - Grid dinâmico de cards e controle manual de versoes
   ========================================================= */

@media (min-width: 981px) {
    .pokedex-layout {
        height: auto !important;
        min-height: calc(100vh - 102px);
        align-items: start;
    }

    .content {
        overflow: visible !important;
        min-height: calc(100vh - 140px);
    }

    .card-grid {
        flex: initial;
        min-height: auto !important;
        max-height: none !important;
        overflow: visible !important;
        padding-bottom: 32px;
    }

    .sidebar,
    .detail-panel {
        position: sticky;
        top: 122px;
        max-height: calc(100vh - 140px);
        overflow-y: auto;
    }
}

@media (min-width: 1321px) {
    .pokedex-layout.sidebar-collapsed .card-grid {
        grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    }
}

.detail-panel {
    scrollbar-gutter: stable;
}

.variation-panel-title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.btn-add-variation {
    min-height: 34px;
    padding: 0 12px;
    border-radius: 999px;
    border: 1px solid rgba(37,99,235,.32);
    background: rgba(255,255,255,.86);
    color: #f1357c;
    font-size: 11px;
    font-weight: 950;
    text-transform: uppercase;
    white-space: nowrap;
}

.btn-add-variation:hover {
    transform: translateY(-1px);
    box-shadow: 0 12px 24px rgba(37,99,235,.12);
}

.variation-create-box {
    display: none;
    margin: 12px 0;
    padding: 12px;
    border-radius: 18px;
    border: 1px dashed rgba(37,99,235,.32);
    background:
        radial-gradient(circle at 10% 0%, rgba(34,211,238,.18), transparent 34%),
        rgba(255,255,255,.58);
}

.variation-create-box.open {
    display: block;
}

.variation-create-grid {
    display: grid;
    grid-template-columns: 1fr 1.2fr 74px 96px;
    gap: 8px;
    align-items: end;
}

.variation-field-small input {
    text-align: center;
    font-weight: 900;
}

.btn-save-variation {
    width: 100%;
    min-height: 40px;
    margin-top: 10px;
    border: 0;
    border-radius: 14px;
    background: linear-gradient(135deg, #2563EB, #ff7aa9);
    color: #fff;
    font-weight: 950;
    text-transform: uppercase;
    box-shadow: 0 16px 34px rgba(37,99,235,.18);
}

.variation-row-title small::after {
    content: " • informe a quantidade desta versão";
}

.variation-row-controls .variation-field:first-child label {
    font-size: 0;
}

.variation-row-controls .variation-field:first-child label::before {
    content: "Qtd. que tenho";
    font-size: 9px;
}

.variation-qty {
    font-weight: 900;
    text-align: center;
    font-size: 15px !important;
}

.variation-status-pill.status-tenho,
.variation-status-pill.status-repetido,
.variation-status-pill.status-venda,
.variation-status-pill.status-troca,
.variation-status-pill.status-favorito {
    box-shadow: 0 0 0 1px rgba(53,190,101,.14);
}

@media (max-width: 640px) {
    .variation-panel-title-row {
        flex-direction: column;
    }

    .btn-add-variation {
        width: 100%;
    }

    .variation-create-grid {
        grid-template-columns: 1fr;
    }
}


/* =========================================================
   V5 - Correção visual do formulário de nova versão
   ========================================================= */

/* O formulário fica dentro do painel lateral; por isso não pode usar
   quatro colunas fixas. Esta versão evita sobreposicao de labels/campos. */
.variation-create-box {
    overflow: hidden;
}

.variation-create-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    gap: 10px 10px;
    align-items: end;
}

.variation-create-grid .variation-field {
    min-width: 0;
}

.variation-create-grid .variation-field:first-child,
.variation-create-grid .variation-field:nth-child(2) {
    grid-column: 1 / -1;
}

.variation-create-grid label {
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-bottom: 5px;
    line-height: 1.1;
}

.variation-create-grid input,
.variation-create-grid select {
    width: 100% !important;
    max-width: 100%;
    min-width: 0;
    height: 42px;
    border-radius: 12px;
    box-sizing: border-box;
}

.variation-field-color input,
.variation-field-small input {
    text-align: center;
}

#newVariationDescricao::placeholder {
    font-size: 13px;
}

@media (max-width: 420px) {
    .variation-create-grid {
        grid-template-columns: 1fr !important;
    }

    .variation-create-grid .variation-field {
        grid-column: 1 / -1;
    }
}


/* =========================================================
   V6 - Reorganização dos ícones e card completo na grade
   ========================================================= */

/* Faz o card da grade mostrar a carta inteira, respeitando a proporção real. */
.tcg-card {
    min-height: 468px;
    display: flex;
    flex-direction: column;
}

.card-image {
    height: auto !important;
    min-height: 292px;
    aspect-ratio: 63 / 88;
    align-self: center;
    width: 100%;
    max-width: 222px;
    padding: 8px;
    border-radius: 18px;
    background:
        radial-gradient(circle at 15% 0%, rgba(255,255,255,.82), transparent 35%),
        linear-gradient(135deg, #fff7dc, #e9f9ff);
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.64);
}

.card-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 0;
    display: block;
}

/* Ícone de status menor e mais elegante para não competir com a carta. */
.card-status-dot {
    top: 8px;
    right: 8px;
    width: 30px;
    height: 30px;
    font-size: 14px;
    border: 2px solid rgba(255,255,255,.72);
    background: rgba(39,48,64,.82);
    box-shadow: 0 10px 20px rgba(16,24,39,.18);
}

/* Reorganiza o bloco de informacoes. */
.card-meta {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 12px 2px 6px;
    flex: 1 1 auto;
}

.card-meta small {
    display: block;
    color: var(--muted);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: -.01em;
}

.card-meta strong {
    min-height: auto;
    margin-top: 0;
    font-size: 17px;
    line-height: 1.25;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.card-meta span {
    font-size: 13px;
    line-height: 1.25;
}

/* Ícones/badges mais organizados e legíveis. */
.variation-badges {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    min-height: 28px;
    margin-top: 2px;
    padding-top: 2px;
}

.variation-badges span,
.variation-badge-big {
    min-width: 28px;
    height: 28px;
    padding: 0 8px;
    border-radius: 999px;
    background: linear-gradient(180deg, #fff6fb, #fff);
    border: 1px solid rgba(37,99,235,.26);
    color: #f1357c;
    font-size: 11px;
    font-weight: 950;
    box-shadow: 0 8px 16px rgba(37,99,235,.08);
}

.status-pill {
    margin-top: 4px;
    align-self: flex-start;
    min-width: 96px;
    min-height: 32px;
    font-size: 13px;
}

.quick-actions {
    margin-top: 12px;
    gap: 9px;
}

.quick-btn {
    height: 38px;
    font-size: 13px;
}

/* Grid um pouco mais confortável para a carta inteira. */
.card-grid {
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 20px;
}

@media (min-width: 1321px) {
    .pokedex-layout.sidebar-collapsed .card-grid {
        grid-template-columns: repeat(auto-fill, minmax(232px, 1fr));
    }
}

/* Tablet */
@media (max-width: 1180px) {
    .card-grid {
        grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    }

    .tcg-card {
        min-height: 452px;
    }

    .card-image {
        max-width: 210px;
        min-height: 278px;
    }
}

/* Mobile permanece compacto, mas ainda mostra a carta inteira melhor que antes. */
@media (max-width: 760px) {
    .tcg-card {
        min-height: auto;
    }

    .card-image {
        max-width: 180px;
        min-height: 248px;
    }

    .card-meta strong {
        font-size: 16px;
    }
}

/* V95 legacy page mappings to the central surface. */
.profile-shell,
.share-shell,
.share-layout,
.tcg-admin,
.ticket-layout,
.admin-ticket-layout,
.admin-users-shell {
    width: min(100%, 1280px);
    margin: 0 auto;
    padding: 24px 16px 44px;
    color: var(--text, #101827);
}

.profile-grid,
.share-grid,
.tcg-grid,
.split-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, .55fr);
    gap: 16px;
}

.profile-collections-panel {
    grid-column: 1 / -1;
}

.box,
.share-card,
.share-top,
.tcg-card,
.ticket-card,
.admin-ticket-card,
.admin-users-page .admin-card,
.form-panel,
.share-item,
.ticket-item,
.simple-card,
.collection-row {
    color: var(--text, #101827) !important;
    border: 1px solid color-mix(in srgb, var(--line-solid, #E5E7EB) 88%, transparent) !important;
    border-radius: 8px !important;
    background: color-mix(in srgb, var(--panel-light, #FFFFFF) 96%, transparent) !important;
    box-shadow: 0 16px 42px rgba(15, 23, 42, .08) !important;
}

.box,
.share-card,
.share-top,
.ticket-card,
.admin-ticket-card,
.admin-users-page .admin-card,
.form-panel,
.share-item,
.ticket-item,
.simple-card {
    padding: 18px !important;
}

.box h1,
.box h2,
.share-card h1,
.share-card h2,
.share-top h1,
.share-top h2,
.ticket-card h2,
.tcg-card h1,
.tcg-card h2,
.admin-ticket-card h2,
.form-panel h2 {
    color: var(--text, #101827) !important;
    letter-spacing: 0 !important;
}

.box p,
.share-muted,
.ticket-card p,
.tcg-card p,
.ticket-title small,
.ticket-desc,
.ticket-tag,
.empty-ticket,
.muted {
    color: var(--muted, #7B8190) !important;
}

.profile-shell label,
.share-form label,
.tcg-card label,
.ticket-form label,
.ticket-edit label,
.user-form label {
    color: var(--text, #101827) !important;
}

.profile-shell input,
.profile-shell textarea,
.share-form input,
.share-form select,
.share-form textarea,
.ticket-form input,
.ticket-form select,
.ticket-form textarea,
.tcg-card input,
.tcg-card select,
.tcg-card textarea,
.ticket-filter select,
.admin-filter input,
.admin-filter select,
.ticket-edit select,
.ticket-edit textarea,
.user-form input,
.user-form select,
.filters-form input,
.filters-form select {
    width: 100% !important;
    box-sizing: border-box !important;
    min-height: 44px !important;
    border: 1px solid color-mix(in srgb, var(--line-solid, #E5E7EB) 88%, transparent) !important;
    border-radius: 8px !important;
    padding: 11px 12px !important;
    color: var(--text, #101827) !important;
    background: var(--panel-light, #FFFFFF) !important;
}

.btn,
.share-btn,
.tcg-card .btn,
.ticket-form button,
.ticket-filter button,
.ticket-save-btn,
.btn-gradient,
.admin-actions a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 42px !important;
    border: 0 !important;
    border-radius: 8px !important;
    padding: 10px 14px !important;
    color: #fff !important;
    background: linear-gradient(135deg, var(--theme-primary, #2563EB), var(--theme-secondary, #22D3EE)) !important;
    font-weight: 900 !important;
    text-decoration: none !important;
    cursor: pointer !important;
}

.btn-soft,
.tcg-card .btn-soft,
.share-actions a,
.share-actions button,
.quick button,
.filterbar button,
.mini-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 38px !important;
    border: 1px solid color-mix(in srgb, var(--line-solid, #E5E7EB) 88%, transparent) !important;
    border-radius: 8px !important;
    padding: 8px 11px !important;
    color: var(--text, #101827) !important;
    background: var(--panel-light, #FFFFFF) !important;
    font-weight: 800 !important;
    text-decoration: none !important;
    cursor: pointer !important;
}

.filterbar,
.share-collections,
.share-actions,
.actions,
.row-actions,
.ticket-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.filterbar button.active,
.share-collections a.active {
    color: #fff !important;
    border-color: transparent !important;
    background: linear-gradient(135deg, var(--theme-primary, #2563EB), var(--theme-secondary, #22D3EE)) !important;
}

.ticket-kpis,
.kpi-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
    gap: 10px;
    margin: 14px 0;
}

.ticket-kpi,
.kpi-box {
    padding: 13px;
    border: 1px solid color-mix(in srgb, var(--line-solid, #E5E7EB) 86%, transparent);
    border-radius: 8px;
    background: color-mix(in srgb, var(--bg, #F3F6FA) 62%, #fff);
}

.ticket-kpi small,
.kpi-box small {
    display: block;
    color: var(--muted, #7B8190);
    font-size: 12px;
}

.ticket-kpi strong,
.kpi-box strong {
    color: var(--text, #101827);
    font-size: 24px;
}

.ticket-filter,
.admin-filter,
.filters-form,
.ticket-edit {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 10px;
    align-items: end;
}

.ticket-list,
.share-list {
    display: grid;
    gap: 12px;
}

.msg,
.message,
.share-message,
.ticket-message {
    margin-top: 12px;
    border-radius: 8px;
    padding: 10px 12px;
    color: var(--muted, #7B8190);
    font-weight: 800;
}

.message:empty,
.msg:empty,
.share-message:empty,
.ticket-message:empty {
    display: none;
}

.message.success,
.share-message.ok,
.ticket-message.success {
    color: #176336 !important;
    background: color-mix(in srgb, var(--green, #35BE65) 16%, #fff);
}

.message.error,
.share-message.err,
.ticket-message.error {
    color: #8f1d38 !important;
    background: color-mix(in srgb, var(--danger, #EF4444) 16%, #fff);
}

.cf-checkbox {
    width: auto !important;
    min-height: 0 !important;
    margin-right: 8px;
}

.ticket-item-head,
.admin-title-row {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
}

.ticket-pill,
.ticket-tag,
.badge,
.pill {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 5px 9px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--line-solid, #E5E7EB) 62%, transparent) !important;
    color: var(--text, #101827) !important;
    font-size: 12px;
    font-weight: 900;
}

.ticket-pill.status-resolvido,
.badge-on { background: color-mix(in srgb, var(--green, #35BE65) 18%, #fff) !important; color: #176336 !important; }
.ticket-pill.status-aberto,
.ticket-pill.status-em_analise { background: color-mix(in srgb, var(--warning-color, #F59E0B) 18%, #fff) !important; color: #7a5200 !important; }
.ticket-pill.status-cancelado,
.badge-off { background: color-mix(in srgb, var(--danger, #EF4444) 18%, #fff) !important; color: #8f1d38 !important; }

.simple-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 14px;
}

.simple-card img {
    width: 100%;
    height: 220px;
    object-fit: contain;
    border-radius: 8px !important;
    background: color-mix(in srgb, var(--bg, #F3F6FA) 62%, #fff);
}

.table-wrap {
    overflow-x: auto;
    border-radius: 8px !important;
    border: 1px solid color-mix(in srgb, var(--line-solid, #E5E7EB) 88%, transparent) !important;
}

.users-table {
    width: 100%;
    min-width: 840px;
    border-collapse: collapse;
    background: var(--panel-light, #FFFFFF) !important;
}

.users-table th,
.users-table td {
    padding: 12px;
    border-bottom: 1px solid color-mix(in srgb, var(--line-solid, #E5E7EB) 76%, transparent) !important;
    color: var(--text, #101827) !important;
}

.users-table th {
    color: var(--muted, #7B8190) !important;
}

@media (max-width: 760px) {
    .profile-shell,
    .share-shell,
    .share-layout,
    .tcg-admin,
    .ticket-layout,
    .admin-ticket-layout,
    .admin-users-shell {
        padding: 16px 12px 32px;
    }

    .profile-grid,
    .share-grid,
    .tcg-grid,
    .split-grid,
    .ticket-layout {
        grid-template-columns: 1fr;
    }

    .ticket-item-head,
    .admin-title-row {
        flex-direction: column;
    }

    .simple-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    .simple-card {
        padding: 10px !important;
    }

    .simple-card img {
        height: 160px;
    }
}


/* =========================================================
   Auth/Admin v1 - Login premium, dashboards e multiusuario
   ========================================================= */

.session-user-bar {
    min-height: 38px;
    padding: 8px 28px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 14px;
    background: rgba(255,255,255,.72);
    border-bottom: 1px solid rgba(20,24,35,.08);
    color: #6b7280;
    font-size: 13px;
}

.session-user-bar strong {
    color: #f1357c;
}

.session-user-bar a {
    color: #111827;
    text-decoration: none;
    font-weight: 900;
}

.login-page {
    min-height: 100vh;
    overflow-x: hidden;
    background:
        radial-gradient(circle at 12% 18%, rgba(34,211,238,.28), transparent 28%),
        radial-gradient(circle at 90% 20%, rgba(37,99,235,.20), transparent 28%),
        linear-gradient(135deg, #fff8fb, #f2fbff 45%, #fff7e8);
    color: #111827;
}

.login-shell {
    min-height: 100vh;
    width: min(1180px, calc(100vw - 36px));
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.1fr .9fr;
    gap: 28px;
    align-items: center;
    padding: 34px 0;
    position: relative;
    z-index: 2;
}

.compact-login {
    grid-template-columns: minmax(320px, 520px);
    justify-content: center;
}

.login-art-panel,
.login-card {
    border: 1px solid rgba(16,24,39,.08);
    border-radius: 34px;
    background: rgba(255,255,255,.68);
    box-shadow: 0 28px 90px rgba(16,24,39,.10);
    backdrop-filter: blur(18px);
}

.login-art-panel {
    min-height: 650px;
    padding: 28px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.login-logo img {
    width: 184px;
    display: block;
    margin-bottom: 12px;
}

.login-logo strong {
    display: block;
    font-size: 30px;
    letter-spacing: -.04em;
}

.login-logo small {
    display: block;
    margin-top: 4px;
    color: #7b8190;
    text-transform: uppercase;
    font-weight: 900;
    letter-spacing: .16em;
}

.legacy-art-frame {
    position: relative;
    height: 390px;
    border-radius: 32px;
    overflow: hidden;
    border: 10px solid rgba(255,255,255,.68);
    box-shadow: inset 0 0 0 1px rgba(16,24,39,.08), 0 22px 50px rgba(16,24,39,.10);
    background: #f7ead8;
}

.oil-sky,
.oil-mountain,
.oil-field {
    position: absolute;
    inset: 0;
}

.oil-sky {
    background:
        radial-gradient(circle at 22% 18%, rgba(255,255,255,.85), transparent 16%),
        linear-gradient(160deg, #c9efff, #fff0f7 48%, #ffe8b7);
    filter: saturate(1.08);
}

.oil-mountain {
    top: 34%;
    background:
        linear-gradient(145deg, transparent 0 35%, rgba(113,151,132,.75) 36% 49%, transparent 50%),
        linear-gradient(215deg, transparent 0 34%, rgba(91,132,142,.72) 35% 52%, transparent 53%);
    opacity: .85;
}

.oil-field {
    top: 54%;
    background:
        radial-gradient(circle at 35% 18%, rgba(255,255,255,.45), transparent 18%),
        linear-gradient(160deg, #b8e986, #78c47a 42%, #e7c37c);
}

.legacy-art-token {
    position: absolute;
    width: 70px;
    height: 70px;
    display: grid;
    place-items: center;
    border-radius: 26px;
    background: rgba(255,255,255,.5);
    border: 1px solid rgba(255,255,255,.7);
    box-shadow: 0 18px 38px rgba(16,24,39,.12);
    font-size: 34px;
    animation: legacyArtFloat 5.4s ease-in-out infinite;
}

.brand-card-float { left: 12%; bottom: 18%; animation-delay: -1s; }
.legacy-art-token-a { left: 36%; bottom: 12%; animation-delay: -2s; }
.legacy-art-token-b { right: 26%; bottom: 17%; animation-delay: -3s; }
.legacy-art-token-c { right: 9%; bottom: 10%; animation-delay: -4s; }

.mew-shadow {
    position: absolute;
    top: 20%;
    right: 12%;
    font-size: 48px;
    color: rgba(37,99,235,.42);
    filter: blur(.2px);
    animation: mewGlow 4.8s ease-in-out infinite;
}

@keyframes legacyArtFloat {
    0%,100% { transform: translateY(0) rotate(-2deg); }
    50% { transform: translateY(-10px) rotate(2deg); }
}

@keyframes mewGlow {
    0%,100% { opacity: .24; transform: scale(.94); }
    50% { opacity: .62; transform: scale(1.06); }
}

.login-art-caption {
    margin: 18px 0 0;
    color: #6b7280;
    font-weight: 700;
}

.login-card {
    position: relative;
    padding: 34px;
    overflow: hidden;
}

.brand-login-orb {
    position: absolute;
    right: -44px;
    top: -44px;
    width: 150px;
    height: 150px;
    border-radius: 999px;
    background:
        linear-gradient(#2563EB 0 47%, #111827 48% 52%, #fff 53%),
        #fff;
    opacity: .12;
}

.login-card-header h1 {
    margin: 0;
    font-size: 36px;
    letter-spacing: -.05em;
}

.login-card-header p {
    color: #6b7280;
    line-height: 1.55;
    margin: 10px 0 24px;
}

.login-form {
    display: grid;
    gap: 10px;
}

.login-form label {
    font-size: 12px;
    text-transform: uppercase;
    color: #7b8190;
    font-weight: 950;
    letter-spacing: .08em;
}

.login-form input {
    height: 52px;
    border-radius: 18px;
    border: 1px solid rgba(16,24,39,.12);
    background: rgba(255,255,255,.88);
    padding: 0 16px;
    outline: none;
    font-size: 15px;
}

.login-form input:focus {
    border-color: rgba(37,99,235,.44);
    box-shadow: 0 0 0 4px rgba(37,99,235,.10);
}

.login-form button,
.admin-cta {
    min-height: 52px;
    border: 0;
    border-radius: 18px;
    background: linear-gradient(135deg, #2563EB, #ff7aa9);
    color: #fff;
    font-weight: 950;
    text-transform: uppercase;
    box-shadow: 0 18px 40px rgba(37,99,235,.22);
    cursor: pointer;
}

.login-links {
    margin-top: 18px;
    display: flex;
    gap: 9px;
    align-items: center;
    color: #9ca3af;
}

.login-links a {
    color: #f1357c;
    font-weight: 900;
    text-decoration: none;
}

.login-message {
    margin: 0 0 16px;
    padding: 12px 14px;
    border-radius: 14px;
    font-weight: 800;
    font-size: 13px;
}

.login-message.error {
    background: rgba(239,68,68,.10);
    color: #b91c1c;
    border: 1px solid rgba(239,68,68,.20);
}

.login-message.success {
    background: rgba(34,197,94,.10);
    color: #15803d;
    border: 1px solid rgba(34,197,94,.20);
}

.login-orbit span {
    position: fixed;
    z-index: 1;
    pointer-events: none;
    opacity: .18;
    animation: loginDrift 14s ease-in-out infinite;
}

.login-orbit span:nth-child(1) { left: 7%; top: 18%; font-size: 38px; color: #2563EB; }
.login-orbit span:nth-child(2) { right: 12%; top: 16%; font-size: 24px; color: #F59E0B; animation-delay: -4s; }
.login-orbit span:nth-child(3) { left: 12%; bottom: 14%; font-size: 42px; color: #f6c945; animation-delay: -8s; }
.login-orbit span:nth-child(4) { right: 18%; bottom: 16%; font-size: 34px; color: #22D3EE; animation-delay: -12s; }

@keyframes loginDrift {
    0%,100% { transform: translate3d(0,0,0) rotate(0deg); }
    50% { transform: translate3d(22px,-24px,0) rotate(10deg); }
}

.admin-page {
    min-height: 100vh;
    background:
        radial-gradient(circle at 12% 12%, rgba(34,211,238,.18), transparent 26%),
        radial-gradient(circle at 92% 8%, rgba(37,99,235,.14), transparent 28%),
        #f7f8fb;
    color: #111827;
}

.admin-shell {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
}

.admin-menu {
    padding: 24px;
    background: rgba(255,255,255,.78);
    border-right: 1px solid rgba(16,24,39,.08);
    box-shadow: 18px 0 45px rgba(16,24,39,.06);
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.admin-brand {
    margin-bottom: 22px;
    padding: 16px;
    border-radius: 24px;
    background: linear-gradient(135deg, #fff, #fff7fb);
    border: 1px solid rgba(16,24,39,.08);
}

.brand-orb-mini {
    width: 46px;
    height: 46px;
    border-radius: 999px;
    background: linear-gradient(#2563EB 0 47%, #111827 48% 52%, #fff 53%);
    box-shadow: 0 12px 24px rgba(37,99,235,.16);
    margin-bottom: 10px;
}

.admin-brand strong,
.admin-brand small {
    display: block;
}

.admin-brand small {
    margin-top: 4px;
    color: #7b8190;
}

.admin-menu a {
    min-height: 46px;
    display: flex;
    align-items: center;
    padding: 0 14px;
    border-radius: 16px;
    color: #4b5563;
    text-decoration: none;
    font-weight: 900;
}

.admin-menu a.active,
.admin-menu a:hover {
    background: linear-gradient(135deg, #2563EB, #ff7aa9);
    color: #fff;
    box-shadow: 0 14px 28px rgba(37,99,235,.18);
}

.admin-content {
    padding: 28px;
}

.admin-hero {
    min-height: 170px;
    padding: 28px;
    border-radius: 32px;
    background:
        radial-gradient(circle at 18% 0%, rgba(34,211,238,.26), transparent 32%),
        linear-gradient(135deg, rgba(255,255,255,.95), rgba(255,247,251,.88));
    border: 1px solid rgba(16,24,39,.08);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 18px;
    box-shadow: 0 24px 70px rgba(16,24,39,.08);
}

.admin-hero h1 {
    margin: 0;
    font-size: 38px;
    letter-spacing: -.05em;
}

.admin-hero p {
    color: #6b7280;
    margin-bottom: 0;
}

.admin-cta {
    text-decoration: none;
    padding: 0 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.admin-kpis {
    margin: 22px 0;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

.admin-kpis article,
.admin-card,
.collection-progress-card {
    background: rgba(255,255,255,.86);
    border: 1px solid rgba(16,24,39,.08);
    border-radius: 24px;
    box-shadow: 0 18px 50px rgba(16,24,39,.07);
}

.admin-kpis article {
    padding: 20px;
}

.admin-kpis small {
    display: block;
    color: #7b8190;
    text-transform: uppercase;
    font-weight: 950;
    font-size: 11px;
}

.admin-kpis strong {
    display: block;
    margin-top: 8px;
    font-size: 30px;
    letter-spacing: -.04em;
}

.admin-card {
    padding: 22px;
}

.admin-section-title {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 14px;
}

.admin-section-title h2 {
    margin: 0;
}

.admin-section-title span {
    color: #7b8190;
}

.admin-table {
    width: 100%;
    border-collapse: collapse;
}

.admin-table th,
.admin-table td {
    padding: 12px;
    border-bottom: 1px solid rgba(16,24,39,.08);
    text-align: left;
}

.admin-table th {
    color: #7b8190;
    text-transform: uppercase;
    font-size: 11px;
}

.admin-table a {
    color: #f1357c;
    font-weight: 900;
    text-decoration: none;
}

.collection-progress-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 14px;
}

.collection-progress-card {
    padding: 18px;
    color: inherit;
    text-decoration: none;
}

.collection-progress-card strong,
.collection-progress-card small,
.collection-progress-card em {
    display: block;
}

.collection-progress-card small,
.collection-progress-card em {
    color: #7b8190;
    margin-top: 4px;
}

.collection-progress-bar {
    height: 10px;
    background: #edf0f5;
    border-radius: 999px;
    overflow: hidden;
    margin: 16px 0 8px;
}

.collection-progress-bar span {
    display: block;
    height: 100%;
    background: linear-gradient(135deg, #2563EB, #22D3EE);
}

@media (max-width: 940px) {
    .login-shell,
    .admin-shell {
        grid-template-columns: 1fr;
    }

    .login-art-panel {
        min-height: 520px;
    }

    .admin-menu {
        position: static;
    }

    .admin-kpis {
        grid-template-columns: 1fr 1fr;
    }

    .admin-hero {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 560px) {
    .login-shell {
        width: min(100vw - 20px, 520px);
    }

    .login-card,
    .login-art-panel {
        padding: 22px;
        border-radius: 26px;
    }

    .legacy-art-frame {
        height: 300px;
    }

    .admin-kpis {
        grid-template-columns: 1fr;
    }

    .session-user-bar {
        justify-content: flex-start;
        flex-wrap: wrap;
        padding: 8px 14px;
    }
}

/* V87 - identidade neutra para produto comercial multi-TCG */
html,
body,
.pokedex-shell,
a,
button,
.tcg-card,
.collection-item,
.chip,
.quick-btn,
.variation-action-btn,
.btn-config-collection,
.btn-add-collection,
.btn-price,
.btn-save-card,
.btn-save-price,
.catalog-sync-link,
.btn-add-user-collection,
.btn-open-catalog,
.set-result-actions button,
.btn-catalog-sync,
.btn-modal-cancel,
.btn-modal-save,
.btn-delete-collection,
.binder-float-btn {
    cursor: auto !important;
}
input,
select,
textarea {
    cursor: text !important;
}
.tcg-sky {
    opacity: .48;
}
.float-token,
.tcg-runner {
    color: rgba(139,92,246,.38) !important;
}
.brand-login-orb,
.brand-orb-mini {
    display: none !important;
}
.binder-float-btn,
.binder-float-btn {
    width: 56px !important;
    height: 56px !important;
    right: 18px !important;
    bottom: 18px !important;
    border-radius: 18px !important;
    background: linear-gradient(135deg,#2563EB,#7C3AED) !important;
    box-shadow: 0 14px 34px rgba(139,92,246,.24) !important;
}
.binder-float-btn img,
.binder-float-btn img {
    display: none !important;
}
.binder-float-btn::before,
.binder-float-btn::before {
    content: "^";
    color: #fff;
    font-size: 28px;
    font-weight: 900;
    line-height: 1;
}
.binder-float-btn::after,
.binder-float-btn::after {
    display: none !important;
}

/* V100.2 - actual EOF pre-beta guard. Keep this block last. */
html,
body,
body.admin-page,
body.brand-neutral-page,
body.commercial-home-page,
body.user-dash-page {
    background:
        radial-gradient(circle at 10% 8%, color-mix(in srgb, var(--cf-secondary, #22D3EE) 16%, transparent), transparent 32%),
        radial-gradient(circle at 92% 12%, color-mix(in srgb, var(--cf-primary, #2563EB) 12%, transparent), transparent 34%),
        linear-gradient(135deg, color-mix(in srgb, var(--cf-bg, #F3F6FA) 90%, #fff 10%), color-mix(in srgb, var(--cf-surface, #FFFFFF) 74%, var(--cf-bg, #F3F6FA) 26%)) !important;
    color: var(--cf-text, #101827) !important;
    overflow-x: hidden;
}

.admin-page .admin-card,
.admin-page .admin-hero,
.admin-page .admin-content section,
.admin-page .admin-menu,
.admin-page .admin-official-topbar,
.admin-users-page .admin-card,
.admin-users-page .kpi-box,
.admin-users-page .form-panel,
.admin-users-page .table-wrap,
.ticket-card,
.admin-ticket-card,
.ticket-item,
.ticket-kpi,
.share-status-box,
.wishlist-card,
.profile-shell .box,
.catalog-card,
.catalog-collection-item,
.all-cards-panel,
.all-card-item,
.public-card,
.legal-card,
.commercial-home-header,
.pokedex-header,
.session-user-bar,
.mobile-app-header-v6,
.mobile-bottom-nav-v6,
.mobile-more-sheet-v6,
#mobileFiltersPanel.toolbar {
    background: var(--cf-card-bg, rgba(255,255,255,.93)) !important;
    color: var(--cf-text, #101827) !important;
    border-color: color-mix(in srgb, var(--cf-border, #E5E7EB) 84%, transparent) !important;
    box-shadow: var(--cf-shadow, 0 22px 60px rgba(15, 23, 42, .10)) !important;
}

.admin-page h1,
.admin-page h2,
.admin-page h3,
.admin-page strong,
.admin-page .admin-brand strong,
.admin-page .admin-menu a,
.admin-users-page .users-table td,
.ticket-card h1,
.ticket-card h2,
.admin-ticket-card h1,
.admin-ticket-card h2,
.ticket-title strong,
.cf-page-title,
.catalog-card h2,
.all-cards-title h2,
.profile-shell h1,
.profile-shell h2,
.wishlist-title strong,
.public-card h1,
.public-card h2 {
    color: var(--cf-text, #101827) !important;
    text-shadow: none !important;
}

.admin-page p,
.admin-page small,
.admin-page .admin-title-row p,
.admin-page .admin-section-title span,
.admin-users-page .muted,
.ticket-card p,
.admin-ticket-card p,
.ticket-title small,
.ticket-meta,
.cf-page-subtitle,
.catalog-card p,
.all-cards-title p,
.profile-shell .muted,
.public-card .muted {
    color: var(--cf-muted, #7B8190) !important;
}

.admin-page input,
.admin-page select,
.admin-page textarea,
.ticket-form input,
.ticket-form select,
.ticket-form textarea,
.ticket-filter select,
.ticket-filter input,
.admin-filter input,
.admin-filter select,
.filters-form input,
.filters-form select,
.all-filters input,
.all-filters select,
.search-area input,
.public-search input,
#mobileSearchCard {
    background: var(--cf-surface, #FFFFFF) !important;
    color: var(--cf-text, #101827) !important;
    border: 1px solid color-mix(in srgb, var(--cf-border, #E5E7EB) 88%, transparent) !important;
    box-shadow: none !important;
}

.admin-page .admin-cta,
.admin-page .btn-gradient,
.admin-page .btn-primary,
.admin-page button[type="submit"],
.ticket-form button,
.ticket-filter button,
.admin-filter button,
.filters-form button,
.commercial-home-cta,
.ad-preview-cta,
.sponsored-cta,
.btn-save-card,
.btn-save-price,
.profile-shell .btn:not(.btn-soft),
.wishlist-actions .admin-cta,
.public-filters .active,
.copy {
    background: linear-gradient(135deg, var(--cf-primary, #2563EB), var(--cf-secondary, #22D3EE)) !important;
    color: #fff !important;
    border-color: transparent !important;
}

.admin-secondary-link,
.admin-page .mini-btn,
.commercial-secondary,
.app-back-link,
.chip,
.filterbar button,
.profile-shell .btn-soft,
.public-filters a {
    background: var(--cf-surface, #FFFFFF) !important;
    color: var(--cf-text, #101827) !important;
    border-color: color-mix(in srgb, var(--cf-border, #E5E7EB) 85%, transparent) !important;
}

.chip.active,
.filterbar button.active,
.admin-page .admin-menu a.active,
.admin-page .admin-menu a:hover,
.admin-official-nav a.active,
.admin-official-nav a:hover,
.official-session-menu a.active,
.session-user-bar a.active,
.mobile-bottom-nav-v6 button.is-active {
    background: var(--cf-soft-primary, rgba(37,99,235,.12)) !important;
    color: var(--cf-primary, #2563EB) !important;
}

.binder-float-btn,
.binder-float-btn {
    background: linear-gradient(135deg, var(--cf-primary, #2563EB), var(--cf-secondary, #22D3EE)) !important;
    box-shadow: 0 14px 34px color-mix(in srgb, var(--cf-primary, #2563EB) 24%, transparent) !important;
}

@media (max-width: 980px) {
    #mobileFiltersPanel.toolbar {
        display: block !important;
        position: fixed !important;
        left: 10px !important;
        right: 10px !important;
        bottom: calc(var(--mobile-nav-height-v85, 68px) + env(safe-area-inset-bottom, 0px) + 10px) !important;
        z-index: 1700 !important;
        max-height: min(72dvh, 560px) !important;
        overflow: auto !important;
        transform: translate3d(0, calc(100% + 120px), 0) !important;
        opacity: 0 !important;
        pointer-events: none !important;
        border-radius: 26px !important;
        transition: transform .22s ease, opacity .18s ease !important;
    }

    body.mobile-filters-open #mobileFiltersPanel.toolbar {
        transform: translate3d(0, 0, 0) !important;
        opacity: 1 !important;
        pointer-events: auto !important;
    }

    body.mobile-filters-open::after {
        content: "" !important;
        position: fixed !important;
        inset: 0 !important;
        z-index: 1600 !important;
        background: rgba(15, 23, 42, .36) !important;
    }

    body.mobile-filters-open .mobile-bottom-nav-v6 {
        z-index: 1750 !important;
    }

    .ticket-filter,
    .admin-filter,
    .filters-form,
    .all-filters,
    .profile-grid,
    .split-grid {
        grid-template-columns: 1fr !important;
        width: 100% !important;
    }

    .admin-table-wrap,
    .table-wrap,
    .ticket-list {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch;
    }
}

/* V100.1 - real final override: this block must remain at the end. */
html,
body,
body.admin-page,
body.brand-neutral-page,
body.commercial-home-page,
body.user-dash-page {
    background:
        radial-gradient(circle at 10% 8%, color-mix(in srgb, var(--cf-secondary, #22D3EE) 16%, transparent), transparent 32%),
        radial-gradient(circle at 92% 12%, color-mix(in srgb, var(--cf-primary, #2563EB) 12%, transparent), transparent 34%),
        linear-gradient(135deg, color-mix(in srgb, var(--cf-bg, #F3F6FA) 90%, #fff 10%), color-mix(in srgb, var(--cf-surface, #FFFFFF) 74%, var(--cf-bg, #F3F6FA) 26%)) !important;
    color: var(--cf-text, #101827) !important;
    overflow-x: hidden;
}

.admin-page .admin-card,
.admin-page .admin-hero,
.admin-page .admin-content section,
.admin-page .admin-menu,
.admin-page .admin-official-topbar,
.admin-users-page .admin-card,
.admin-users-page .kpi-box,
.admin-users-page .form-panel,
.admin-users-page .table-wrap,
.ticket-card,
.admin-ticket-card,
.ticket-item,
.ticket-kpi,
.share-status-box,
.wishlist-card,
.profile-shell .box,
.catalog-card,
.catalog-collection-item,
.all-cards-panel,
.all-card-item,
.public-card,
.legal-card,
.commercial-home-header,
.pokedex-header,
.session-user-bar,
.mobile-app-header-v6,
.mobile-bottom-nav-v6,
.mobile-more-sheet-v6,
#mobileFiltersPanel.toolbar {
    background: var(--cf-card-bg, rgba(255,255,255,.93)) !important;
    color: var(--cf-text, #101827) !important;
    border-color: color-mix(in srgb, var(--cf-border, #E5E7EB) 84%, transparent) !important;
    box-shadow: var(--cf-shadow, 0 22px 60px rgba(15, 23, 42, .10)) !important;
}

.admin-page h1,
.admin-page h2,
.admin-page h3,
.admin-page strong,
.admin-page .admin-brand strong,
.admin-page .admin-menu a,
.admin-users-page .users-table td,
.ticket-card h1,
.ticket-card h2,
.admin-ticket-card h1,
.admin-ticket-card h2,
.ticket-title strong,
.cf-page-title,
.catalog-card h2,
.all-cards-title h2,
.profile-shell h1,
.profile-shell h2,
.wishlist-title strong,
.public-card h1,
.public-card h2 {
    color: var(--cf-text, #101827) !important;
    text-shadow: none !important;
}

.admin-page p,
.admin-page small,
.admin-page .admin-title-row p,
.admin-page .admin-section-title span,
.admin-users-page .muted,
.ticket-card p,
.admin-ticket-card p,
.ticket-title small,
.ticket-meta,
.cf-page-subtitle,
.catalog-card p,
.all-cards-title p,
.profile-shell .muted,
.public-card .muted {
    color: var(--cf-muted, #7B8190) !important;
}

.admin-page input,
.admin-page select,
.admin-page textarea,
.ticket-form input,
.ticket-form select,
.ticket-form textarea,
.ticket-filter select,
.ticket-filter input,
.admin-filter input,
.admin-filter select,
.filters-form input,
.filters-form select,
.all-filters input,
.all-filters select,
.search-area input,
.public-search input,
#mobileSearchCard {
    background: var(--cf-surface, #FFFFFF) !important;
    color: var(--cf-text, #101827) !important;
    border: 1px solid color-mix(in srgb, var(--cf-border, #E5E7EB) 88%, transparent) !important;
    box-shadow: none !important;
}

.admin-page .admin-cta,
.admin-page .btn-gradient,
.admin-page .btn-primary,
.admin-page button[type="submit"],
.ticket-form button,
.ticket-filter button,
.admin-filter button,
.filters-form button,
.commercial-home-cta,
.ad-preview-cta,
.sponsored-cta,
.btn-save-card,
.btn-save-price,
.profile-shell .btn:not(.btn-soft),
.wishlist-actions .admin-cta,
.public-filters .active,
.copy {
    background: linear-gradient(135deg, var(--cf-primary, #2563EB), var(--cf-secondary, #22D3EE)) !important;
    color: #fff !important;
    border-color: transparent !important;
}

.admin-secondary-link,
.admin-page .mini-btn,
.commercial-secondary,
.app-back-link,
.chip,
.filterbar button,
.profile-shell .btn-soft,
.public-filters a {
    background: var(--cf-surface, #FFFFFF) !important;
    color: var(--cf-text, #101827) !important;
    border-color: color-mix(in srgb, var(--cf-border, #E5E7EB) 85%, transparent) !important;
}

.chip.active,
.filterbar button.active,
.admin-page .admin-menu a.active,
.admin-page .admin-menu a:hover,
.admin-official-nav a.active,
.admin-official-nav a:hover,
.official-session-menu a.active,
.session-user-bar a.active,
.mobile-bottom-nav-v6 button.is-active {
    background: var(--cf-soft-primary, rgba(37,99,235,.12)) !important;
    color: var(--cf-primary, #2563EB) !important;
}

@media (max-width: 980px) {
    #mobileFiltersPanel.toolbar {
        display: block !important;
        position: fixed !important;
        left: 10px !important;
        right: 10px !important;
        bottom: calc(var(--mobile-nav-height-v85, 68px) + env(safe-area-inset-bottom, 0px) + 10px) !important;
        z-index: 1700 !important;
        max-height: min(72dvh, 560px) !important;
        overflow: auto !important;
        transform: translate3d(0, calc(100% + 120px), 0) !important;
        opacity: 0 !important;
        pointer-events: none !important;
        border-radius: 26px !important;
        transition: transform .22s ease, opacity .18s ease !important;
    }

    body.mobile-filters-open #mobileFiltersPanel.toolbar {
        transform: translate3d(0, 0, 0) !important;
        opacity: 1 !important;
        pointer-events: auto !important;
    }

    body.mobile-filters-open::after {
        content: "" !important;
        position: fixed !important;
        inset: 0 !important;
        z-index: 1600 !important;
        background: rgba(15, 23, 42, .36) !important;
    }

    body.mobile-filters-open .mobile-bottom-nav-v6 {
        z-index: 1750 !important;
    }

    .ticket-filter,
    .admin-filter,
    .filters-form,
    .all-filters,
    .profile-grid,
    .split-grid {
        grid-template-columns: 1fr !important;
        width: 100% !important;
    }

    .admin-table-wrap,
    .table-wrap,
    .ticket-list {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch;
    }
}

/* =========================================================
   V100 - pre-beta final brand layer.
   Compatibility contract: old classes stay in use by PHP/JS, but their final
   visual output is normalized through the dynamic brand tokens.
   ========================================================= */
:root {
    --cf-bg: var(--brand-bg, var(--bg, #F3F6FA));
    --cf-surface: var(--brand-surface, var(--panel-light, #FFFFFF));
    --cf-text: var(--brand-text, var(--text, #101827));
    --cf-muted: var(--brand-muted, var(--muted, #7B8190));
    --cf-border: var(--brand-border, var(--line-solid, #E5E7EB));
    --cf-primary: var(--brand-primary, var(--theme-primary, #2563EB));
    --cf-secondary: var(--brand-secondary, var(--theme-secondary, #22D3EE));
    --cf-warning: var(--brand-warning, var(--warning, #F59E0B));
    --cf-success: var(--brand-success, var(--success, #35BE65));
    --cf-danger: var(--brand-danger, var(--danger, #EF4444));
    --cf-card-bg: color-mix(in srgb, var(--cf-surface) 93%, transparent);
    --cf-soft-primary: color-mix(in srgb, var(--cf-primary) 12%, transparent);
    --cf-soft-secondary: color-mix(in srgb, var(--cf-secondary) 14%, transparent);
    --cf-shadow: 0 22px 60px rgba(15, 23, 42, .10);
}

html,
body,
body.admin-page,
body.brand-neutral-page,
body.commercial-home-page,
body.user-dash-page {
    background:
        radial-gradient(circle at 10% 8%, color-mix(in srgb, var(--cf-secondary) 16%, transparent), transparent 32%),
        radial-gradient(circle at 92% 12%, color-mix(in srgb, var(--cf-primary) 12%, transparent), transparent 34%),
        linear-gradient(135deg, color-mix(in srgb, var(--cf-bg) 90%, #fff 10%), color-mix(in srgb, var(--cf-surface) 74%, var(--cf-bg) 26%)) !important;
    color: var(--cf-text) !important;
    overflow-x: hidden;
}

body::before,
.tcg-sky {
    opacity: .18 !important;
}

.admin-page .admin-card,
.admin-page .admin-hero,
.admin-page .admin-content section,
.admin-page .admin-menu,
.admin-page .admin-official-topbar,
.admin-users-page .admin-card,
.admin-users-page .kpi-box,
.admin-users-page .form-panel,
.admin-users-page .table-wrap,
.ticket-card,
.admin-ticket-card,
.ticket-item,
.ticket-kpi,
.share-status-box,
.wishlist-card,
.profile-card,
.profile-shell .box,
.catalog-card,
.catalog-collection-item,
.all-cards-panel,
.all-card-item,
.public-card,
.legal-card,
.commercial-home-header,
.pokedex-header,
.session-user-bar,
.mobile-app-header-v6,
.mobile-bottom-nav-v6,
.mobile-more-sheet-v6,
#mobileFiltersPanel.toolbar {
    background: var(--cf-card-bg) !important;
    color: var(--cf-text) !important;
    border-color: color-mix(in srgb, var(--cf-border) 84%, transparent) !important;
    box-shadow: var(--cf-shadow) !important;
}

.admin-page h1,
.admin-page h2,
.admin-page h3,
.admin-page strong,
.admin-page .admin-brand strong,
.admin-page .admin-menu a,
.admin-users-page .users-table td,
.ticket-card h1,
.ticket-card h2,
.admin-ticket-card h1,
.admin-ticket-card h2,
.ticket-title strong,
.cf-page-title,
.catalog-card h2,
.all-cards-title h2,
.profile-shell h1,
.profile-shell h2,
.wishlist-title strong,
.public-card h1,
.public-card h2 {
    color: var(--cf-text) !important;
    text-shadow: none !important;
}

.admin-page p,
.admin-page small,
.admin-page .admin-title-row p,
.admin-page .admin-section-title span,
.admin-users-page .muted,
.ticket-card p,
.admin-ticket-card p,
.ticket-title small,
.ticket-meta,
.cf-page-subtitle,
.catalog-card p,
.all-cards-title p,
.profile-shell .muted,
.public-card .muted {
    color: var(--cf-muted) !important;
}

.admin-page input,
.admin-page select,
.admin-page textarea,
.ticket-form input,
.ticket-form select,
.ticket-form textarea,
.ticket-filter select,
.ticket-filter input,
.admin-filter input,
.admin-filter select,
.filters-form input,
.filters-form select,
.all-filters input,
.all-filters select,
.search-area input,
.public-search input,
#mobileSearchCard {
    background: var(--cf-surface) !important;
    color: var(--cf-text) !important;
    border: 1px solid color-mix(in srgb, var(--cf-border) 88%, transparent) !important;
    box-shadow: none !important;
}

.admin-page input::placeholder,
.ticket-form input::placeholder,
.ticket-form textarea::placeholder,
.admin-filter input::placeholder,
.filters-form input::placeholder,
.search-area input::placeholder,
.public-search input::placeholder,
#mobileSearchCard::placeholder {
    color: var(--cf-muted) !important;
}

.admin-page .admin-cta,
.admin-page .btn-gradient,
.admin-page .btn-primary,
.admin-page button[type="submit"],
.ticket-form button,
.ticket-filter button,
.admin-filter button,
.filters-form button,
.commercial-home-cta,
.ad-preview-cta,
.sponsored-cta,
.btn-save-card,
.btn-save-price,
.profile-shell .btn:not(.btn-soft),
.wishlist-actions .admin-cta,
.public-filters .active,
.copy {
    background: linear-gradient(135deg, var(--cf-primary), var(--cf-secondary)) !important;
    color: #fff !important;
    border-color: transparent !important;
    box-shadow: 0 14px 34px color-mix(in srgb, var(--cf-primary) 20%, transparent) !important;
}

.admin-secondary-link,
.admin-page .mini-btn,
.commercial-secondary,
.app-back-link,
.chip,
.filterbar button,
.profile-shell .btn-soft,
.public-filters a,
.public-filters .copy:not(.active) {
    background: var(--cf-surface) !important;
    color: var(--cf-text) !important;
    border-color: color-mix(in srgb, var(--cf-border) 85%, transparent) !important;
}

.chip.active,
.filterbar button.active,
.admin-page .admin-menu a.active,
.admin-page .admin-menu a:hover,
.admin-official-nav a.active,
.admin-official-nav a:hover,
.official-session-menu a.active,
.session-user-bar a.active,
.mobile-bottom-nav-v6 button.is-active {
    background: var(--cf-soft-primary) !important;
    color: var(--cf-primary) !important;
}

.ticket-pill.status-resolvido,
.badge-on,
.status-tenho,
.all-status.tenho {
    background: color-mix(in srgb, var(--cf-success) 16%, #fff) !important;
    color: color-mix(in srgb, var(--cf-success) 72%, #064e3b) !important;
}

.ticket-pill.status-aberto,
.ticket-pill.status-em_analise,
.ticket-pill.status-em_desenvolvimento,
.status-quero {
    background: color-mix(in srgb, var(--cf-warning) 17%, #fff) !important;
    color: color-mix(in srgb, var(--cf-warning) 64%, #5f3d00) !important;
}

.ticket-pill.status-cancelado,
.badge-off,
.status-falta,
.all-status.falta {
    background: color-mix(in srgb, var(--cf-danger) 13%, #fff) !important;
    color: color-mix(in srgb, var(--cf-danger) 70%, #7f1d1d) !important;
}

.status-repetido,
.badge-admin,
.all-card-tags i,
.all-status.repetido,
.all-status.wishlist {
    background: var(--cf-soft-primary) !important;
    color: var(--cf-primary) !important;
}

.badge-user,
.status-venda,
.status-troca,
.status-favorito {
    background: var(--cf-soft-secondary) !important;
    color: color-mix(in srgb, var(--cf-secondary) 65%, #075985) !important;
}

.table-wrap,
.admin-table-wrap,
.users-table,
.admin-table {
    max-width: 100%;
}

@media (max-width: 980px) {
    body.mobile-filters-open {
        overflow: hidden !important;
    }

    #mobileFiltersPanel.toolbar {
        display: block !important;
        position: fixed !important;
        left: 10px !important;
        right: 10px !important;
        bottom: calc(var(--mobile-nav-height-v85, 68px) + env(safe-area-inset-bottom, 0px) + 10px) !important;
        z-index: 1700 !important;
        max-height: min(72dvh, 560px) !important;
        overflow: auto !important;
        transform: translate3d(0, calc(100% + 120px), 0) !important;
        opacity: 0 !important;
        pointer-events: none !important;
        border-radius: 26px !important;
        backdrop-filter: blur(18px) !important;
        -webkit-backdrop-filter: blur(18px) !important;
        transition: transform .22s ease, opacity .18s ease !important;
    }

    body.mobile-filters-open #mobileFiltersPanel.toolbar {
        transform: translate3d(0, 0, 0) !important;
        opacity: 1 !important;
        pointer-events: auto !important;
    }

    body.mobile-filters-open::after {
        content: "" !important;
        position: fixed !important;
        inset: 0 !important;
        z-index: 1600 !important;
        background: rgba(15, 23, 42, .36) !important;
    }

    body.mobile-filters-open .mobile-bottom-nav-v6 {
        z-index: 1750 !important;
    }

    .ticket-filter,
    .admin-filter,
    .filters-form,
    .all-filters,
    .profile-grid,
    .split-grid {
        grid-template-columns: 1fr !important;
        width: 100% !important;
    }

    .admin-table-wrap,
    .table-wrap,
    .ticket-list {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch;
    }

    .admin-page .admin-shell,
    .admin-users-shell,
    .cf-page,
    .admin-ticket-layout,
    .ticket-layout,
    .wishlist-page-shell,
    .profile-shell,
    .public-wrap {
        padding-left: 12px !important;
        padding-right: 12px !important;
        max-width: 100% !important;
    }
}

/* V99 - system-wide brand standardization */
:root {
    --cf-bg: var(--brand-bg, var(--bg, #F3F6FA));
    --cf-surface: var(--brand-surface, var(--panel-light, #FFFFFF));
    --cf-text: var(--brand-text, var(--text, #101827));
    --cf-muted: var(--brand-muted, var(--muted, #7B8190));
    --cf-border: var(--brand-border, var(--line-solid, #E5E7EB));
    --cf-primary: var(--brand-primary, var(--theme-primary, #2563EB));
    --cf-secondary: var(--brand-secondary, var(--theme-secondary, #22D3EE));
    --cf-warning: var(--brand-warning, var(--warning, #F59E0B));
    --cf-success: var(--brand-success, var(--success, #35BE65));
    --cf-danger: var(--brand-danger, var(--danger, #EF4444));
    --cf-card-bg: color-mix(in srgb, var(--cf-surface) 92%, transparent);
    --cf-soft-primary: color-mix(in srgb, var(--cf-primary) 12%, transparent);
    --cf-soft-secondary: color-mix(in srgb, var(--cf-secondary) 14%, transparent);
    --cf-shadow: 0 22px 60px rgba(15, 23, 42, .10);
}

html,
body,
body.admin-page,
body.brand-neutral-page,
body.commercial-home-page,
body.user-dash-page {
    background:
        radial-gradient(circle at 10% 8%, color-mix(in srgb, var(--cf-secondary) 18%, transparent), transparent 32%),
        radial-gradient(circle at 92% 12%, color-mix(in srgb, var(--cf-primary) 14%, transparent), transparent 34%),
        linear-gradient(135deg, color-mix(in srgb, var(--cf-bg) 90%, #fff 10%), color-mix(in srgb, var(--cf-surface) 74%, var(--cf-bg) 26%)) !important;
    color: var(--cf-text) !important;
}

body::before,
.tcg-sky {
    opacity: .22 !important;
}

.cf-page,
.admin-shell,
.admin-content,
.ticket-layout,
.admin-ticket-layout,
.admin-users-shell,
.profile-shell,
.share-shell,
.catalog-layout,
.all-cards-layout {
    color: var(--cf-text) !important;
}

.admin-page .admin-card,
.admin-page .admin-hero,
.admin-page .admin-content section,
.admin-page .admin-menu,
.admin-page .admin-official-topbar,
.admin-users-page .admin-card,
.admin-users-page .kpi-box,
.admin-users-page .form-panel,
.admin-users-page .table-wrap,
.ticket-card,
.admin-ticket-card,
.ticket-item,
.ticket-kpi,
.share-status-box,
.wishlist-card,
.profile-card,
.catalog-card,
.catalog-collection-item,
.all-cards-panel,
.all-card-item,
.public-card,
.legal-card {
    background: var(--cf-card-bg) !important;
    color: var(--cf-text) !important;
    border-color: color-mix(in srgb, var(--cf-border) 82%, transparent) !important;
    box-shadow: var(--cf-shadow) !important;
}

.admin-page .admin-menu a,
.admin-page .admin-brand strong,
.admin-page .admin-card h1,
.admin-page .admin-card h2,
.admin-page .admin-hero h1,
.admin-page .admin-hero h2,
.admin-users-page .admin-card *:not(button):not(.badge):not(.mini-btn),
.ticket-card h1,
.ticket-card h2,
.admin-ticket-card h1,
.admin-ticket-card h2,
.ticket-title strong,
.cf-page-title,
.catalog-card h2,
.all-cards-title h2 {
    color: var(--cf-text) !important;
    text-shadow: none !important;
}

.admin-page .admin-card p,
.admin-page .admin-title-row p,
.admin-page .admin-section-title span,
.admin-users-page .muted,
.ticket-card p,
.admin-ticket-card p,
.ticket-title small,
.ticket-meta,
.cf-page-subtitle,
.catalog-card p,
.all-cards-title p {
    color: var(--cf-muted) !important;
}

.admin-page input,
.admin-page select,
.admin-page textarea,
.ticket-form input,
.ticket-form select,
.ticket-form textarea,
.ticket-filter select,
.ticket-filter input,
.admin-filter input,
.admin-filter select,
.filters-form input,
.filters-form select,
.all-filters input,
.all-filters select,
.search-area input,
#mobileSearchCard {
    background: var(--cf-surface) !important;
    color: var(--cf-text) !important;
    border: 1px solid color-mix(in srgb, var(--cf-border) 88%, transparent) !important;
    box-shadow: none !important;
}

.admin-page input::placeholder,
.ticket-form input::placeholder,
.ticket-form textarea::placeholder,
.admin-filter input::placeholder,
.filters-form input::placeholder,
.search-area input::placeholder,
#mobileSearchCard::placeholder {
    color: var(--cf-muted) !important;
}

.admin-page .admin-cta,
.admin-page .btn-gradient,
.admin-page .btn-primary,
.admin-page button[type="submit"],
.ticket-form button,
.ticket-filter button,
.admin-filter button,
.filters-form button,
.commercial-home-cta,
.ad-preview-cta,
.sponsored-cta,
.btn-save-card,
.btn-save-price {
    background: linear-gradient(135deg, var(--cf-primary), var(--cf-secondary)) !important;
    color: #fff !important;
    border-color: transparent !important;
    box-shadow: 0 14px 34px color-mix(in srgb, var(--cf-primary) 20%, transparent) !important;
}

.admin-secondary-link,
.admin-page .mini-btn,
.commercial-secondary,
.app-back-link,
.chip,
.filterbar button {
    background: var(--cf-surface) !important;
    color: var(--cf-text) !important;
    border-color: color-mix(in srgb, var(--cf-border) 85%, transparent) !important;
}

.chip.active,
.filterbar button.active,
.admin-page .admin-menu a.active,
.admin-page .admin-menu a:hover,
.admin-official-nav a.active,
.admin-official-nav a:hover,
.official-session-menu a.active,
.session-user-bar a.active,
.mobile-bottom-nav-v6 button.is-active {
    background: var(--cf-soft-primary) !important;
    color: var(--cf-primary) !important;
}

.ticket-pill.status-resolvido,
.badge-on,
.status-tenho {
    background: color-mix(in srgb, var(--cf-success) 16%, #fff) !important;
    color: color-mix(in srgb, var(--cf-success) 72%, #064e3b) !important;
}

.ticket-pill.status-aberto,
.ticket-pill.status-em_analise,
.ticket-pill.status-em_desenvolvimento,
.status-quero {
    background: color-mix(in srgb, var(--cf-warning) 17%, #fff) !important;
    color: color-mix(in srgb, var(--cf-warning) 64%, #5f3d00) !important;
}

.ticket-pill.status-cancelado,
.badge-off,
.status-falta {
    background: color-mix(in srgb, var(--cf-danger) 13%, #fff) !important;
    color: color-mix(in srgb, var(--cf-danger) 70%, #7f1d1d) !important;
}

.status-repetido,
.badge-admin,
.all-card-tags i {
    background: var(--cf-soft-primary) !important;
    color: var(--cf-primary) !important;
}

.badge-user,
.status-venda,
.status-troca,
.status-favorito {
    background: var(--cf-soft-secondary) !important;
    color: color-mix(in srgb, var(--cf-secondary) 65%, #075985) !important;
}

@media (max-width: 980px) {
    body.mobile-filters-open {
        overflow: hidden !important;
    }

    #mobileFiltersPanel.toolbar {
        display: block !important;
        position: fixed !important;
        left: 10px !important;
        right: 10px !important;
        bottom: calc(var(--mobile-nav-height-v85, 68px) + env(safe-area-inset-bottom, 0px) + 10px) !important;
        z-index: 1700 !important;
        max-height: min(72dvh, 560px) !important;
        overflow: auto !important;
        transform: translate3d(0, calc(100% + 120px), 0) !important;
        opacity: 0 !important;
        pointer-events: none !important;
        background: color-mix(in srgb, var(--cf-surface) 96%, transparent) !important;
        color: var(--cf-text) !important;
        border: 1px solid color-mix(in srgb, var(--cf-border) 85%, transparent) !important;
        border-radius: 26px !important;
        box-shadow: 0 24px 70px rgba(15, 23, 42, .22) !important;
        backdrop-filter: blur(18px) !important;
        -webkit-backdrop-filter: blur(18px) !important;
        transition: transform .22s ease, opacity .18s ease !important;
    }

    body.mobile-filters-open #mobileFiltersPanel.toolbar {
        transform: translate3d(0, 0, 0) !important;
        opacity: 1 !important;
        pointer-events: auto !important;
    }

    body.mobile-filters-open::after {
        content: "" !important;
        position: fixed !important;
        inset: 0 !important;
        z-index: 1600 !important;
        background: rgba(15, 23, 42, .36) !important;
    }

    body.mobile-filters-open .mobile-bottom-nav-v6 {
        z-index: 1750 !important;
    }

    .ticket-filter,
    .admin-filter,
    .filters-form,
    .all-filters {
        grid-template-columns: 1fr !important;
        width: 100% !important;
    }

    .admin-table-wrap,
    .table-wrap,
    .ticket-list {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch;
    }

    .admin-page .admin-shell,
    .admin-users-shell,
    .cf-page,
    .admin-ticket-layout,
    .ticket-layout {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }
}

/* V95 shared product surface and toast system. */
.cf-page {
    width: min(100%, 1280px);
    margin: 0 auto;
    padding: 24px 16px 44px;
    color: var(--text, #101827);
}

.cf-page-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 18px;
}

.cf-page-title {
    margin: 0 0 6px;
    color: var(--text, #101827);
    font-size: clamp(24px, 3vw, 34px);
    line-height: 1.08;
    letter-spacing: 0;
}

.cf-page-subtitle {
    margin: 0;
    max-width: 760px;
    color: var(--muted, #7B8190);
}

.cf-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin: 14px 0;
}

.cf-card {
    padding: 20px;
    border: 1px solid color-mix(in srgb, var(--line-solid, #E5E7EB) 88%, transparent);
    border-radius: 8px;
    background: color-mix(in srgb, var(--panel-light, #FFFFFF) 96%, transparent);
    box-shadow: 0 16px 42px rgba(15, 23, 42, .08);
}

.cf-card + .cf-card {
    margin-top: 16px;
}

.cf-card h1,
.cf-card h2,
.cf-card h3 {
    margin-top: 0;
    color: var(--text, #101827);
    letter-spacing: 0;
}

.cf-card p,
.cf-muted {
    color: var(--muted, #7B8190);
}

.cf-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 16px;
}

.cf-grid-2 {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, .55fr);
    gap: 16px;
}

.cf-form,
.cf-form-row {
    display: grid;
    gap: 10px;
}

.cf-form-row {
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    align-items: end;
}

.cf-form label {
    display: grid;
    gap: 6px;
    color: var(--text, #101827);
    font-weight: 800;
}

.cf-input,
.cf-select,
.cf-form input,
.cf-form select,
.cf-form textarea {
    width: 100%;
    box-sizing: border-box;
    min-height: 44px;
    border: 1px solid color-mix(in srgb, var(--line-solid, #E5E7EB) 92%, transparent);
    border-radius: 8px;
    padding: 11px 12px;
    color: var(--text, #101827);
    background: var(--panel-light, #FFFFFF);
    outline: none;
}

.cf-form textarea {
    min-height: 110px;
    resize: vertical;
}

.cf-input:focus,
.cf-select:focus,
.cf-form input:focus,
.cf-form select:focus,
.cf-form textarea:focus {
    border-color: color-mix(in srgb, var(--theme-primary, #2563EB) 62%, var(--line-solid, #E5E7EB));
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--theme-primary, #2563EB) 14%, transparent);
}

.cf-button,
.cf-button-primary,
.cf-button-secondary,
.cf-button-danger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    min-width: 0;
    padding: 10px 14px;
    border: 1px solid transparent;
    border-radius: 8px;
    font-weight: 900;
    line-height: 1.1;
    text-decoration: none;
    cursor: pointer !important;
}

.cf-button-primary {
    color: #fff;
    background: linear-gradient(135deg, var(--theme-primary, #2563EB), var(--theme-secondary, #22D3EE));
}

.cf-button-secondary {
    color: var(--text, #101827);
    border-color: color-mix(in srgb, var(--line-solid, #E5E7EB) 88%, transparent);
    background: var(--panel-light, #FFFFFF);
}

.cf-button-danger {
    color: #fff;
    background: var(--danger, #EF4444);
}

.cf-badge {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 5px 9px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--line-solid, #E5E7EB) 62%, transparent);
    color: var(--text, #101827);
    font-size: 12px;
    font-weight: 900;
}

.cf-badge-success { background: color-mix(in srgb, var(--green, #35BE65) 18%, #fff); color: #176336; }
.cf-badge-warning { background: color-mix(in srgb, var(--warning-color, #F59E0B) 20%, #fff); color: #7a5200; }
.cf-badge-danger { background: color-mix(in srgb, var(--danger, #EF4444) 18%, #fff); color: #8f1d38; }

.cf-empty-state {
    padding: 28px;
    text-align: center;
    color: var(--muted, #7B8190);
    border: 1px dashed color-mix(in srgb, var(--line-solid, #E5E7EB) 86%, transparent);
    border-radius: 8px;
    background: color-mix(in srgb, var(--panel-light, #FFFFFF) 76%, transparent);
}

.cf-table-wrap {
    overflow-x: auto;
    border: 1px solid color-mix(in srgb, var(--line-solid, #E5E7EB) 88%, transparent);
    border-radius: 8px;
    background: var(--panel-light, #FFFFFF);
}

.cf-responsive-table {
    width: 100%;
    min-width: 760px;
    border-collapse: collapse;
}

.cf-responsive-table th,
.cf-responsive-table td {
    padding: 12px;
    border-bottom: 1px solid color-mix(in srgb, var(--line-solid, #E5E7EB) 76%, transparent);
    text-align: left;
    vertical-align: top;
}

.cf-responsive-table th {
    color: var(--muted, #7B8190);
    font-size: 12px;
    text-transform: uppercase;
}

.cf-empty-cell {
    padding: 34px !important;
    text-align: center !important;
    color: var(--muted, #7B8190) !important;
}

.cf-separator {
    margin: 22px 0;
    border: 0;
    border-top: 1px solid color-mix(in srgb, var(--line-solid, #E5E7EB) 82%, transparent);
}

.btn-sync-cards-mini {
    min-height: 32px;
    padding: 0 10px;
    font-size: 12px;
}

.sync-layout {
    width: min(100%, 1280px);
    max-width: 100%;
    margin: 0 auto;
    display: grid;
    gap: 16px;
}

.sync-card {
    max-width: 100%;
    overflow: hidden;
}

.sync-table-wrap {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.sync-table {
    min-width: 900px;
}

.cf-toast-host {
    position: fixed;
    right: 16px;
    bottom: calc(16px + env(safe-area-inset-bottom));
    z-index: 5000;
    display: grid;
    gap: 10px;
    width: min(360px, calc(100vw - 32px));
    pointer-events: none;
}

.cf-toast {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    padding: 12px 12px 12px 14px;
    border: 1px solid rgba(15, 23, 42, .08);
    border-left: 5px solid var(--theme-primary, #2563EB);
    border-radius: 8px;
    color: var(--text, #101827);
    background: rgba(255, 255, 255, .97);
    box-shadow: 0 18px 48px rgba(15, 23, 42, .18);
    pointer-events: auto;
    animation: cfToastIn .18s ease-out;
}

.cf-toast-success { border-left-color: var(--green, #35BE65); }
.cf-toast-error { border-left-color: var(--danger, #EF4444); }
.cf-toast-warning { border-left-color: var(--warning-color, #F59E0B); }

.cf-toast button {
    width: 28px;
    height: 28px;
    border: 0;
    border-radius: 999px;
    color: var(--muted, #7B8190);
    background: color-mix(in srgb, var(--line-solid, #E5E7EB) 54%, transparent);
    cursor: pointer !important;
}

.cf-toast.is-leaving {
    opacity: 0;
    transform: translateY(8px);
    transition: opacity .18s ease, transform .18s ease;
}

@keyframes cfToastIn {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 760px) {
    .cf-page {
        padding: 16px 12px 32px;
    }

    .cf-page-header,
    .cf-grid-2 {
        grid-template-columns: 1fr;
        flex-direction: column;
    }

    .cf-card {
        padding: 16px;
    }

    .cf-toolbar .cf-button,
    .cf-toolbar .cf-button-primary,
    .cf-toolbar .cf-button-secondary,
    .cf-toolbar .cf-button-danger {
        flex: 1 1 auto;
    }

    .cf-toast-host {
        right: 10px;
        left: 10px;
        bottom: calc(10px + env(safe-area-inset-bottom));
        width: auto;
    }
}

/* V96 public community pages - neutral, brandable and mobile-safe. */
.public-page {
    min-height: 100vh;
    padding: 28px 16px 44px;
    color: var(--text, #101827);
    background:
        radial-gradient(circle at top left, color-mix(in srgb, var(--theme-secondary, #22D3EE) 22%, transparent), transparent 32%),
        linear-gradient(180deg, var(--bg, #F3F6FA), #ffffff 72%);
}

.public-wrap {
    width: min(100%, 1180px);
    margin: 0 auto;
}

.public-brand {
    display: inline-flex;
    align-items: center;
    min-height: 58px;
    text-decoration: none;
}

.public-brand img {
    width: auto;
    height: 54px;
    max-width: min(240px, 72vw);
    object-fit: contain;
}

.public-card {
    margin-top: 18px;
    padding: 22px;
    border: 1px solid color-mix(in srgb, var(--line-solid, #E5E7EB) 82%, transparent);
    border-radius: 8px;
    background: color-mix(in srgb, var(--panel-light, #FFFFFF) 94%, transparent);
    box-shadow: 0 18px 48px rgba(15, 23, 42, .08);
}

.public-card h1,
.public-card h2 {
    margin: 0 0 10px;
    color: var(--text, #101827);
    letter-spacing: 0;
}

.public-section-title {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
}

.public-section-title .copy,
.public-card .copy {
    min-height: 40px;
    padding: 9px 12px;
    border: 1px solid color-mix(in srgb, var(--line-solid, #E5E7EB) 88%, transparent);
    border-radius: 999px;
    color: var(--text, #101827);
    background: var(--panel-light, #FFFFFF);
    font-weight: 800;
    cursor: pointer !important;
}

.public-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 18px;
}

.public-stats span {
    min-width: 0;
    padding: 12px;
    border: 1px solid color-mix(in srgb, var(--line-solid, #E5E7EB) 78%, transparent);
    border-radius: 8px;
    background: color-mix(in srgb, var(--panel-light, #FFFFFF) 82%, transparent);
    color: var(--muted, #7B8190);
    font-size: 12px;
    font-weight: 800;
}

.public-stats strong {
    display: block;
    color: var(--text, #101827);
    font-size: 20px;
    line-height: 1.15;
}

.profile-top {
    display: flex;
    gap: 18px;
    align-items: center;
}

.public-avatar {
    width: 84px;
    height: 84px;
    flex: 0 0 84px;
    border-radius: 50%;
    object-fit: cover;
    background: linear-gradient(135deg, var(--theme-primary, #2563EB), var(--theme-secondary, #22D3EE));
}

.collection-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 14px;
}

.collection-card,
.public-collection-card {
    display: block;
    padding: 14px;
    color: var(--text, #101827);
    text-decoration: none;
    border: 1px solid color-mix(in srgb, var(--line-solid, #E5E7EB) 88%, transparent);
    border-radius: 8px;
    background: var(--panel-light, #FFFFFF);
}

.collection-card:hover {
    border-color: color-mix(in srgb, var(--theme-primary, #2563EB) 42%, var(--line-solid, #E5E7EB));
    box-shadow: 0 14px 36px rgba(15, 23, 42, .08);
}

.public-collection-link {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.progress {
    height: 8px;
    margin-top: 12px;
    overflow: hidden;
    border-radius: 999px;
    background: color-mix(in srgb, var(--line-solid, #E5E7EB) 70%, transparent);
}

.progress span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(135deg, var(--theme-primary, #2563EB), var(--theme-secondary, #22D3EE));
}

.public-link {
    color: var(--theme-primary, #2563EB);
    font-weight: 800;
    text-decoration: none;
}

.public-link:hover {
    text-decoration: underline;
}

.public-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}

.public-search {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    margin-top: 16px;
}

.public-search input {
    min-width: 0;
    height: 44px;
    border: 1px solid color-mix(in srgb, var(--line-solid, #E5E7EB) 88%, transparent);
    border-radius: 999px;
    padding: 0 14px;
    color: var(--text, #101827);
    background: var(--panel-light, #FFFFFF);
    font-weight: 700;
}

.public-search button {
    min-height: 44px;
    border: 0;
    border-radius: 999px;
    padding: 0 16px;
    color: #fff;
    background: var(--theme-primary, #2563EB);
    font-weight: 900;
    cursor: pointer !important;
}

.public-filters a,
.public-filters .copy {
    min-height: 40px;
    padding: 9px 12px;
    border: 1px solid color-mix(in srgb, var(--line-solid, #E5E7EB) 88%, transparent);
    border-radius: 999px;
    color: var(--text, #101827);
    background: var(--panel-light, #FFFFFF);
    font-weight: 800;
    text-decoration: none;
    cursor: pointer !important;
}

.public-filters .active {
    color: #fff;
    border-color: transparent;
    background: linear-gradient(135deg, var(--theme-primary, #2563EB), var(--theme-secondary, #22D3EE));
}

.public-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
    gap: 14px;
    margin-top: 18px;
}

.public-collection-card img {
    width: 100%;
    height: 220px;
    object-fit: contain;
    border-radius: 8px;
    background: color-mix(in srgb, var(--bg, #F3F6FA) 62%, #ffffff);
}

.public-collection-card strong {
    display: block;
    margin-top: 10px;
}

.public-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 10px;
}

.public-badges em {
    display: inline-flex;
    min-height: 26px;
    align-items: center;
    border-radius: 999px;
    padding: 4px 9px;
    color: color-mix(in srgb, var(--theme-primary, #2563EB) 78%, #111827);
    background: color-mix(in srgb, var(--theme-primary, #2563EB) 10%, #ffffff);
    font-size: 11px;
    font-style: normal;
    font-weight: 900;
}

.public-empty {
    text-align: center;
}

.tcg-card.is-trade {
    border-color: color-mix(in srgb, var(--theme-secondary, #22D3EE) 54%, var(--line-solid, #E5E7EB));
    box-shadow: 0 14px 38px color-mix(in srgb, var(--theme-secondary, #22D3EE) 18%, transparent);
}

.card-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    min-height: 0;
    margin: 8px 0 0;
}

.card-badge {
    display: inline-flex;
    min-height: 24px;
    align-items: center;
    border-radius: 999px;
    padding: 3px 8px;
    font-size: 10px;
    font-weight: 900;
    line-height: 1;
}

.card-badge-trade {
    color: color-mix(in srgb, var(--theme-secondary, #22D3EE) 68%, #0f172a);
    background: color-mix(in srgb, var(--theme-secondary, #22D3EE) 16%, #ffffff);
    border: 1px solid color-mix(in srgb, var(--theme-secondary, #22D3EE) 34%, transparent);
}

.quick-btn.quick-trade {
    color: color-mix(in srgb, var(--theme-secondary, #22D3EE) 68%, #0f172a);
    background: color-mix(in srgb, var(--theme-secondary, #22D3EE) 15%, #ffffff);
}

.tcg-card.is-trade .quick-trade {
    color: #fff;
    background: linear-gradient(135deg, var(--theme-secondary, #22D3EE), var(--theme-primary, #2563EB));
}

.share-status-box {
    display: grid;
    gap: 8px;
    margin: 14px 0;
    padding: 12px;
    border-radius: 8px;
    border: 1px solid color-mix(in srgb, var(--line-solid, #E5E7EB) 82%, transparent);
    background: color-mix(in srgb, var(--panel-light, #FFFFFF) 86%, transparent);
}

.share-status-box strong {
    color: var(--text, #101827);
}

.share-status-box span,
.share-status-box small {
    color: var(--muted, #7B8190);
}

.share-status-box.is-public {
    border-color: color-mix(in srgb, var(--green, #35BE65) 38%, var(--line-solid, #E5E7EB));
}

.share-link-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    align-items: center;
}

.share-link-row input {
    min-width: 0;
}

@media (max-width: 640px) {
    .share-link-row {
        grid-template-columns: 1fr;
    }
}

.beta-next-steps {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin: 18px 0;
}

.beta-next-steps article {
    min-width: 0;
    padding: 14px;
    border: 1px solid color-mix(in srgb, var(--line-solid, #E5E7EB) 84%, transparent);
    border-radius: 8px;
    background: color-mix(in srgb, var(--panel-light, #FFFFFF) 90%, transparent);
    box-shadow: 0 10px 28px rgba(15, 23, 42, .06);
}

.beta-next-steps strong,
.beta-next-steps span {
    display: block;
}

.beta-next-steps strong {
    color: var(--text, #101827);
    font-size: 14px;
}

.beta-next-steps span {
    margin-top: 6px;
    color: var(--muted, #7B8190);
    font-size: 13px;
    line-height: 1.35;
}

@media (max-width: 920px) {
    .beta-next-steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .beta-next-steps {
        grid-template-columns: 1fr;
    }
}

.muted {
    color: var(--muted, #7B8190);
}

@media (max-width: 640px) {
    .public-page {
        padding: 16px 12px 32px;
    }

    .public-card {
        padding: 16px;
    }

    .profile-top {
        align-items: flex-start;
    }

    .public-avatar {
        width: 68px;
        height: 68px;
        flex-basis: 68px;
    }

    .public-stats,
    .public-search {
        grid-template-columns: 1fr;
    }

    .public-filters a,
    .public-filters .copy {
        flex: 1 1 auto;
        text-align: center;
    }

    .public-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    .public-collection-card {
        padding: 10px;
    }

    .public-collection-card img {
        height: 170px;
    }
}
.brand-neutral-page .login-card,
.brand-neutral-page .login-art-panel {
    border-radius: 28px;
}
.legacy-photo-frame-filled {
    background-repeat: no-repeat !important;
    background-size: cover !important;
    background-position: 35% center !important;
}

.legacy-photo-frame-filled::after {
    background-repeat: no-repeat !important;
    background-size: cover !important;
    background-position: 35% center !important;
}
/* =========================================================
   Cursor neutro da marca
   ========================================================= */

html,
body,
.pokedex-shell {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Ccircle cx='16' cy='16' r='12' fill='%23ffffff' stroke='%23101827' stroke-width='2'/%3E%3Cpath d='M10 12h12v8H10z' rx='2' fill='%23F65B94'/%3E%3Cpath d='M12 10h8v12h-8z' rx='2' fill='%237ED8EE' fill-opacity='.9'/%3E%3Ccircle cx='16' cy='16' r='3' fill='%23ffffff' stroke='%23101827' stroke-width='1.5'/%3E%3C/svg%3E") 16 16, auto;
}

a,
button,
.tcg-card,
.collection-item,
.chip,
.quick-btn,
.variation-action-btn,
.btn-config-collection,
.btn-add-collection,
.btn-price,
.btn-save-card,
.btn-save-price {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='34' height='34' viewBox='0 0 32 32'%3E%3Ccircle cx='16' cy='16' r='12' fill='%23ffffff' stroke='%23101827' stroke-width='2'/%3E%3Cpath d='M9 12h14v8H9z' rx='2' fill='%23F65B94'/%3E%3Cpath d='M12 9h8v14h-8z' rx='2' fill='%237ED8EE' fill-opacity='.9'/%3E%3Ccircle cx='16' cy='16' r='3' fill='%23ffffff' stroke='%23101827' stroke-width='1.5'/%3E%3C/svg%3E") 16 16, pointer;
}

input,
select,
textarea {
    cursor: text;
}

/* =========================================================
   Cursor neutro da marca
   ========================================================= */

html,
body,
.pokedex-shell,
a,
button,
.tcg-card,
.collection-item,
.chip,
.quick-btn,
.variation-action-btn,
.btn-config-collection,
.btn-add-collection,
.btn-price,
.btn-save-card,
.btn-save-price,
.catalog-sync-link,
.btn-add-user-collection,
.btn-open-catalog,
.set-result-actions button,
.btn-catalog-sync,
.btn-modal-cancel,
.btn-modal-save,
.btn-delete-collection,
.binder-float-btn {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Ccircle cx='16' cy='16' r='12' fill='%23ffffff' stroke='%23101827' stroke-width='2'/%3E%3Cpath d='M10 12h12v8H10z' rx='2' fill='%23F65B94'/%3E%3Cpath d='M12 10h8v12h-8z' rx='2' fill='%237ED8EE' fill-opacity='.9'/%3E%3Ccircle cx='16' cy='16' r='3' fill='%23ffffff' stroke='%23101827' stroke-width='1.5'/%3E%3C/svg%3E") 16 16, auto !important;
}

input,
select,
textarea {
    cursor: text !important;
}

/* =========================================================
   Botão flutuante Assistente - Voltar ao início
   ========================================================= */

.binder-float-btn {
    position: fixed;
    right: 18px;
    bottom: 18px;
    width: 92px;
    height: 92px;
    border: 0;
    background: transparent;
    box-shadow: none;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform .18s ease;
    overflow: visible;
    padding: 0;
}

.binder-float-btn img {
    width: 92px;
    height: 92px;
    object-fit: contain;
    display: block;
    pointer-events: none;
    filter: drop-shadow(0 8px 14px rgba(0, 0, 0, .28));
    transition:
        transform .18s ease,
        filter .18s ease;
}

.binder-float-btn:hover img {
    transform: translateY(-4px) scale(1.05);
    filter: drop-shadow(0 12px 18px rgba(0, 0, 0, .35));
}

.binder-float-btn:active img {
    transform: translateY(-1px) scale(.98);
}

.binder-float-btn::after {
    content: "↑";
    position: absolute;
    top: 4px;
    right: 8px;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: linear-gradient(135deg, #8ec5ff, #6aa7ff);
    color: #10243f;
    font-size: 16px;
    font-weight: 900;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow:
        0 4px 10px rgba(0, 0, 0, .18),
        0 0 0 3px rgba(255, 255, 255, .55);
}

.binder-float-btn.binder-img-error {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: linear-gradient(135deg, #ffe45c, #f7c928);
    box-shadow: 0 10px 24px rgba(0,0,0,.22);
}

.binder-float-btn.binder-img-error::before {
    content: "⚡";
    font-size: 32px;
}

@media (max-width: 800px) {
    .binder-float-btn {
        right: 12px;
        bottom: 12px;
        width: 76px;
        height: 76px;
    }

    .binder-float-btn img {
        width: 76px;
        height: 76px;
    }

    .binder-float-btn::after {
        width: 24px;
        height: 24px;
        font-size: 14px;
        top: 2px;
        right: 4px;
    }
}

.stat-subtext {
    display: block;
    margin-top: 4px;
    font-size: 11px;
    line-height: 1.1;
    color: rgba(17, 24, 39, .55);
    font-weight: 700;
    letter-spacing: .01em;
}
/* Patch mobile - drawer clicável, filtros compactos e cards mais utilizáveis */
.collection-mini-total {
    display: block;
    margin-top: 2px;
    opacity: .72;
    font-size: 11px;
}

.stat-item em {
    display: block;
    margin-top: 4px;
    font-style: normal;
    color: #7b8190;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .04em;
}

@media (max-width: 980px) {
    body.mobile-sidebar-open {
        overflow: hidden;
    }

    body.mobile-sidebar-open::after {
        content: "";
        position: fixed;
        inset: 0;
        z-index: 1040;
        background: rgba(16,24,39,.32);
        backdrop-filter: blur(4px);
        pointer-events: auto;
    }

    .sidebar {
        position: fixed;
        z-index: 1050;
        top: 10px;
        left: 10px;
        bottom: 10px;
        width: min(360px, calc(100vw - 20px));
        transform: translateX(calc(-100% - 24px));
        opacity: 0;
        pointer-events: none;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        padding-top: 58px;
    }

    body.mobile-sidebar-open .sidebar {
        transform: translateX(0);
        opacity: 1;
        pointer-events: auto;
    }

    .sidebar a,
    .sidebar button,
    .sidebar .collection-item {
        pointer-events: auto;
        position: relative;
        z-index: 1051;
    }

    .pokedex-header {
        position: sticky;
        top: 0;
        z-index: 900;
        gap: 10px;
    }

    .search-area,
    .search-area input,
    .mobile-sidebar-btn {
        width: 100%;
    }

    .toolbar {
        position: sticky;
        top: 98px;
        z-index: 700;
        background: rgba(255,255,255,.88);
        backdrop-filter: blur(12px);
        border-radius: 18px;
    }

    .filter-chips {
        display: flex;
        gap: 8px;
        overflow-x: auto;
        padding-bottom: 4px;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
    }

    .filter-chips .chip {
        flex: 0 0 auto;
        scroll-snap-align: start;
        min-width: 92px;
        min-height: 40px;
    }

    .sort-select {
        width: 100%;
        min-height: 42px;
    }

    .card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
        padding-bottom: 92px;
    }

    .tcg-card {
        padding: 10px;
        border-radius: 20px;
    }

    .card-image {
        min-height: 132px;
    }

    .card-image img {
        max-height: 132px;
        width: auto;
        object-fit: contain;
    }

    .card-meta strong {
        font-size: 13px;
        line-height: 1.15;
    }

    .quick-actions {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        gap: 6px;
    }

    .quick-btn {
        min-height: 34px;
        padding: 0 6px;
        font-size: 12px;
    }

    .detail-panel.detail-open-mobile {
        position: fixed;
        z-index: 1060;
        inset: 10px;
        overflow-y: auto;
        border-radius: 24px;
    }
}

@media (max-width: 420px) {
    .card-grid {
        grid-template-columns: 1fr;
    }

    .tcg-card {
        display: grid;
        grid-template-columns: 96px 1fr;
        gap: 12px;
        align-items: center;
    }

    .card-image {
        min-height: 112px;
    }

    .card-image img {
        max-height: 112px;
    }

    .card-meta,
    .status-pill,
    .quick-actions {
        grid-column: 2;
    }
}

/* Patch mobile v2 - drawer real, filtros como bottom sheet, cards compactos e PWA friendly */
.collection-mini-total {
    display: block;
    margin-top: 2px;
    opacity: .72;
    font-size: 11px;
}

.stat-item em {
    display: block;
    margin-top: 4px;
    font-style: normal;
    color: #7b8190;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.mobile-filter-btn,
.mobile-toolbar-title,
.mobile-view-toggle {
    display: none;
}

@media (max-width: 980px) {
    html,
    body {
        max-width: 100%;
        overflow-x: hidden;
    }

    body.mobile-sidebar-open,
    body.mobile-filters-open {
        overflow: hidden;
        touch-action: none;
    }

    body.mobile-sidebar-open::before {
        content: "";
        position: fixed;
        inset: 0;
        background: rgba(15, 23, 42, .42);
        backdrop-filter: blur(4px);
        -webkit-backdrop-filter: blur(4px);
        z-index: 1040;
        pointer-events: auto;
    }

    .pokedex-shell,
    .pokedex-layout,
    .content {
        width: 100%;
        max-width: 100%;
        overflow-x: hidden;
    }

    .pokedex-header {
        position: sticky;
        top: 0;
        z-index: 900;
        gap: 10px;
        padding: 12px;
    }

    .brand-area {
        width: 100%;
    }

    .brand-area h1 {
        font-size: clamp(20px, 6vw, 28px);
        white-space: nowrap;
    }

    .search-area,
    .search-area input,
    .mobile-sidebar-btn,
    .header-right,
    .trainer-area {
        width: 100%;
    }

    .header-right {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 10px;
    }

    .trainer-area {
        display: grid;
        grid-template-columns: 1fr 64px;
        gap: 10px;
    }

    .sidebar {
        position: fixed !important;
        top: 0;
        left: 0;
        width: min(88vw, 380px);
        height: 100dvh;
        max-height: 100dvh;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        z-index: 1050 !important;
        transform: translateX(-110%);
        opacity: 1 !important;
        pointer-events: auto;
        transition: transform .28s ease;
        border-radius: 0 26px 26px 0;
        background: rgba(255, 255, 255, .97);
        backdrop-filter: blur(18px);
        -webkit-backdrop-filter: blur(18px);
        padding: 24px 18px 28px;
        box-shadow: 18px 0 60px rgba(15, 23, 42, .24);
    }

    body.mobile-sidebar-open .sidebar {
        transform: translateX(0);
    }

    body.mobile-sidebar-open .pokedex-shell,
    body.mobile-sidebar-open .pokedex-header,
    body.mobile-sidebar-open .content,
    body.mobile-sidebar-open .detail-panel {
        filter: none !important;
    }

    .sidebar-close-mobile {
        display: flex !important;
        position: sticky;
        top: 0;
        margin-left: auto;
        z-index: 1052;
        width: 38px;
        height: 38px;
        align-items: center;
        justify-content: center;
        border-radius: 999px;
        border: 1px solid rgba(15, 23, 42, .12);
        background: rgba(255, 255, 255, .92);
        font-size: 24px;
        font-weight: 900;
    }

    .sidebar a,
    .sidebar button,
    .sidebar .collection-item {
        pointer-events: auto;
        position: relative;
        z-index: 1051;
    }

    .collection-list {
        display: grid;
        gap: 10px;
    }

    .collection-item {
        min-height: 76px;
    }

    .content {
        padding-bottom: 110px;
    }

    .stats-card {
        margin-bottom: 14px;
    }

    .stats-card .stat-item {
        padding: 12px 14px;
    }

    .toolbar {
        position: fixed;
        left: 12px;
        right: 12px;
        bottom: calc(76px + env(safe-area-inset-bottom));
        z-index: 1030;
        padding: 14px;
        border-radius: 22px;
        background: rgba(255, 255, 255, .98);
        box-shadow: 0 20px 60px rgba(15, 23, 42, .22);
        transform: translateY(140%);
        transition: transform .25s ease;
        max-height: 70dvh;
        overflow-y: auto;
        pointer-events: auto;
    }

    body.mobile-filters-open .toolbar {
        transform: translateY(0);
    }

    body.mobile-filters-open::after {
        content: "";
        position: fixed;
        inset: 0;
        background: rgba(15, 23, 42, .25);
        backdrop-filter: blur(2px);
        -webkit-backdrop-filter: blur(2px);
        z-index: 1028;
    }

    .mobile-filter-btn {
        display: flex;
        position: fixed;
        left: 16px;
        bottom: calc(18px + env(safe-area-inset-bottom));
        z-index: 1035;
        height: 46px;
        padding: 0 18px;
        align-items: center;
        justify-content: center;
        gap: 8px;
        border-radius: 999px;
        border: 0;
        background: #2563EB;
        color: #fff;
        font-weight: 900;
        letter-spacing: .02em;
        box-shadow: 0 12px 30px rgba(37, 99, 235, .35);
    }

    .mobile-toolbar-title {
        display: block;
        margin-bottom: 10px;
    }

    .mobile-toolbar-title strong,
    .mobile-toolbar-title small {
        display: block;
    }

    .mobile-toolbar-title small {
        color: #7b8190;
        font-size: 12px;
        margin-top: 2px;
    }

    .mobile-view-toggle {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 8px;
        margin-bottom: 12px;
    }

    .mobile-view-toggle button {
        height: 40px;
        border-radius: 999px;
        border: 1px solid rgba(15, 23, 42, .10);
        background: rgba(255, 255, 255, .9);
        font-weight: 900;
        color: #6b7280;
    }

    .mobile-view-toggle button.active {
        background: rgba(37, 99, 235, .12);
        color: #2563EB;
        border-color: rgba(37, 99, 235, .35);
    }

    .filter-chips {
        display: flex;
        gap: 8px;
        overflow-x: auto;
        padding-bottom: 6px;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
    }

    .filter-chips .chip {
        flex: 0 0 auto;
        scroll-snap-align: start;
        min-width: 92px;
        min-height: 40px;
    }

    .sort-select {
        width: 100%;
        min-height: 42px;
        margin-top: 8px;
    }

    .card-grid {
        gap: 12px;
        padding-bottom: 112px;
    }

    .card-grid.mobile-view-album {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .card-grid.mobile-view-list {
        grid-template-columns: 1fr;
    }

    .card-grid.mobile-view-list .tcg-card {
        display: grid;
        grid-template-columns: 96px 1fr;
        gap: 12px;
        align-items: start;
        padding: 12px;
        min-height: auto;
        border-radius: 22px;
    }

    .card-grid.mobile-view-list .card-image {
        width: 96px;
        min-height: 132px;
        align-self: start;
    }

    .card-grid.mobile-view-list .card-image img {
        max-height: 132px;
        width: auto;
        object-fit: contain;
    }

    .card-grid.mobile-view-list .card-meta {
        grid-column: 2;
        align-self: start;
    }

    .card-grid.mobile-view-list .card-meta strong {
        font-size: 14px;
        line-height: 1.16;
    }

    .card-grid.mobile-view-list .status-pill {
        grid-column: 2;
        min-height: 32px;
        margin-top: 2px;
        font-size: 13px;
    }

    .card-grid.mobile-view-list .quick-actions {
        grid-column: 1 / -1;
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 8px;
        margin-top: 4px;
    }

    .quick-btn {
        min-height: 38px;
        padding: 0 6px;
        font-size: 12px;
        border-radius: 12px;
    }

    .card-grid.mobile-view-album .tcg-card {
        padding: 10px;
        border-radius: 20px;
    }

    .card-grid.mobile-view-album .card-image {
        min-height: 132px;
    }

    .card-grid.mobile-view-album .card-image img {
        max-height: 132px;
        width: auto;
        object-fit: contain;
    }

    .detail-panel.detail-open-mobile {
        position: fixed;
        z-index: 1060;
        inset: 10px;
        overflow-y: auto;
        border-radius: 24px;
        max-height: calc(100dvh - 20px);
    }

    .binder-float-btn {
        width: 58px;
        height: 58px;
        right: 14px;
        bottom: calc(18px + env(safe-area-inset-bottom));
        z-index: 1025;
    }

    body.mobile-filters-open .binder-float-btn,
    body.mobile-sidebar-open .binder-float-btn {
        display: none;
    }
}

@media (max-width: 640px) {
    .pokedex-header {
        border-radius: 0 0 22px 22px;
    }

    .session-user-bar {
        overflow-x: auto;
        white-space: nowrap;
        -webkit-overflow-scrolling: touch;
    }

    .stats-card {
        border-radius: 24px;
    }

    .stats-card-top {
        display: grid;
        gap: 10px;
    }

    .btn-config-collection {
        width: 100%;
    }
}

@media (max-width: 420px) {
    .card-grid.mobile-view-album {
        grid-template-columns: 1fr;
    }

    .card-grid.mobile-view-list .tcg-card {
        grid-template-columns: 92px 1fr;
    }

    .card-grid.mobile-view-list .card-image {
        width: 92px;
        min-height: 124px;
    }

    .card-grid.mobile-view-list .card-image img {
        max-height: 124px;
    }
}

/* =========================================================
   MyTCG-EX - Mobile UX Hotfix v5
   Objetivo: corrigir drawer, filtros/bottom-sheet e header mobile
   ========================================================= */
.brand-area-logo {
    min-width: 0;
    align-items: center;
}

.brand-logo-img {
    display: block;
    width: clamp(220px, 34vw, 520px);
    max-height: 86px;
    object-fit: contain;
    object-position: left center;
}

.brand-symbol-box img {
    width: 44px;
    height: 44px;
    object-fit: contain;
    border-radius: 14px;
}

.mobile-overlay-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1028;
    background: rgba(15, 23, 42, .34);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
    opacity: 0;
    pointer-events: none;
    transition: opacity .22s ease;
}

body.mobile-sidebar-open .mobile-overlay-backdrop,
body.mobile-filters-open .mobile-overlay-backdrop {
    opacity: 1;
    pointer-events: auto;
}

body.mobile-sidebar-open .mobile-overlay-backdrop {
    z-index: 1040;
    background: rgba(15, 23, 42, .40);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

body.mobile-filters-open .mobile-overlay-backdrop {
    z-index: 1028;
}

@media (max-width: 980px) {
    body.mobile-sidebar-open,
    body.mobile-filters-open {
        overflow: hidden !important;
        touch-action: none;
    }

    /* Desativa pseudo-overlays antigos que estavam cobrindo o conteúdo e impedindo clique. */
    body.mobile-sidebar-open::before,
    body.mobile-sidebar-open::after,
    body.mobile-filters-open::before,
    body.mobile-filters-open::after {
        content: none !important;
        display: none !important;
        pointer-events: none !important;
    }

    .pokedex-header {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 10px !important;
        padding: 12px !important;
        border-radius: 0 0 24px 24px !important;
    }

    .brand-area-logo {
        width: 100%;
        justify-content: center;
    }

    .brand-logo-img {
        width: min(100%, 380px);
        max-height: 76px;
        object-position: center;
    }

    .mobile-sidebar-btn {
        display: flex !important;
        width: 100% !important;
        min-height: 42px !important;
        align-items: center !important;
        justify-content: center !important;
        border-radius: 999px !important;
    }

    .search-area,
    .search-area input,
    .header-right,
    .trainer-area {
        width: 100% !important;
        min-width: 0 !important;
    }

    .header-right {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
        gap: 10px !important;
    }

    .brand-logo-box,
    .trainer-action,
    .trainer-bell {
        min-height: 50px !important;
    }

    .sidebar {
        position: fixed !important;
        inset: 0 auto 0 0 !important;
        width: min(88vw, 380px) !important;
        height: 100dvh !important;
        max-height: 100dvh !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch !important;
        z-index: 1055 !important;
        transform: translate3d(-105%, 0, 0) !important;
        opacity: 1 !important;
        visibility: hidden !important;
        pointer-events: none !important;
        transition: transform .26s ease, visibility .26s ease !important;
        border-radius: 0 26px 26px 0 !important;
        background: rgba(255, 255, 255, .985) !important;
        backdrop-filter: blur(18px) !important;
        -webkit-backdrop-filter: blur(18px) !important;
        padding: 18px 16px 28px !important;
        box-shadow: 18px 0 60px rgba(15, 23, 42, .24) !important;
    }

    body.mobile-sidebar-open .sidebar {
        transform: translate3d(0, 0, 0) !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }

    .sidebar-close-mobile {
        display: flex !important;
        position: sticky !important;
        top: 0 !important;
        margin-left: auto !important;
        z-index: 1060 !important;
        width: 40px !important;
        height: 40px !important;
        align-items: center !important;
        justify-content: center !important;
        border-radius: 999px !important;
        border: 1px solid rgba(15, 23, 42, .12) !important;
        background: rgba(255, 255, 255, .96) !important;
        color: #111827 !important;
        font-size: 26px !important;
        font-weight: 900 !important;
    }

    .sidebar a,
    .sidebar button,
    .sidebar .collection-item {
        pointer-events: auto !important;
        position: relative !important;
        z-index: 1056 !important;
    }

    .collection-item {
        min-height: 76px !important;
        padding: 12px !important;
        gap: 10px !important;
    }

    .collection-icon {
        flex: 0 0 48px !important;
        width: 48px !important;
        height: 48px !important;
    }

    .collection-info strong {
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        max-width: 160px !important;
    }

    .toolbar {
        display: grid !important;
        grid-template-columns: 1fr !important;
        justify-content: initial !important;
        align-items: stretch !important;
        gap: 12px !important;
        position: fixed !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        z-index: 1035 !important;
        margin: 0 !important;
        padding: 18px 16px calc(18px + env(safe-area-inset-bottom)) !important;
        border-radius: 26px 26px 0 0 !important;
        background: rgba(255, 255, 255, .99) !important;
        box-shadow: 0 -20px 60px rgba(15, 23, 42, .22) !important;
        transform: translate3d(0, 110%, 0) !important;
        transition: transform .24s ease !important;
        max-height: min(74dvh, 520px) !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch !important;
        pointer-events: auto !important;
    }

    body.mobile-filters-open .toolbar {
        transform: translate3d(0, 0, 0) !important;
    }

    .mobile-toolbar-title {
        display: flex !important;
        align-items: flex-start !important;
        justify-content: space-between !important;
        gap: 12px !important;
        margin: 0 0 2px !important;
    }

    .mobile-toolbar-title strong,
    .mobile-toolbar-title small {
        display: block !important;
    }

    .mobile-toolbar-title strong {
        font-size: 16px !important;
        color: #111827 !important;
    }

    .mobile-toolbar-title small {
        margin-top: 4px !important;
        color: #747b89 !important;
        font-size: 12px !important;
    }

    .mobile-filter-close {
        display: flex !important;
        flex: 0 0 38px !important;
        width: 38px !important;
        height: 38px !important;
        align-items: center !important;
        justify-content: center !important;
        border-radius: 999px !important;
        border: 1px solid rgba(15, 23, 42, .10) !important;
        background: #fff !important;
        color: #111827 !important;
        font-size: 24px !important;
        line-height: 1 !important;
        font-weight: 900 !important;
    }

    .mobile-view-toggle {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 8px !important;
        margin: 0 !important;
    }

    .mobile-view-toggle button {
        min-height: 40px !important;
    }

    .filter-chips {
        display: flex !important;
        flex-wrap: nowrap !important;
        gap: 8px !important;
        overflow-x: auto !important;
        padding: 0 0 6px !important;
        -webkit-overflow-scrolling: touch !important;
        scroll-snap-type: x mandatory !important;
    }

    .filter-chips .chip {
        flex: 0 0 auto !important;
        min-width: 92px !important;
        min-height: 40px !important;
        scroll-snap-align: start !important;
    }

    .sort-select {
        width: 100% !important;
        min-height: 44px !important;
        margin: 0 !important;
    }

    .mobile-filter-btn {
        display: flex !important;
        position: fixed !important;
        left: 16px !important;
        bottom: calc(16px + env(safe-area-inset-bottom)) !important;
        z-index: 1034 !important;
        height: 46px !important;
        padding: 0 18px !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 8px !important;
        border-radius: 999px !important;
        border: 0 !important;
        background: #2563EB !important;
        color: #fff !important;
        font-weight: 900 !important;
        box-shadow: 0 12px 30px rgba(37, 99, 235, .35) !important;
    }

    .content {
        padding-bottom: 104px !important;
    }

    .card-grid.mobile-view-list {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }

    .card-grid.mobile-view-list .tcg-card {
        display: grid !important;
        grid-template-columns: 94px minmax(0, 1fr) !important;
        gap: 12px !important;
        align-items: start !important;
        padding: 12px !important;
        min-height: auto !important;
        border-radius: 22px !important;
    }

    .card-grid.mobile-view-list .card-image {
        width: 94px !important;
        min-height: 126px !important;
        align-self: start !important;
    }

    .card-grid.mobile-view-list .card-image img {
        max-height: 126px !important;
        width: auto !important;
        object-fit: contain !important;
    }

    .card-grid.mobile-view-list .card-meta,
    .card-grid.mobile-view-list .status-pill {
        grid-column: 2 !important;
    }

    .card-grid.mobile-view-list .card-meta strong {
        font-size: 14px !important;
        line-height: 1.16 !important;
    }

    .card-grid.mobile-view-list .quick-actions {
        grid-column: 1 / -1 !important;
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 8px !important;
        margin-top: 2px !important;
    }

    .quick-btn {
        min-height: 38px !important;
        padding: 0 6px !important;
        font-size: 12px !important;
        border-radius: 12px !important;
    }

    .binder-float-btn {
        width: 54px !important;
        height: 54px !important;
        right: 14px !important;
        bottom: calc(14px + env(safe-area-inset-bottom)) !important;
        z-index: 1025 !important;
        background: rgba(255,255,255,.92) !important;
        border: 1px solid rgba(37,99,235,.20) !important;
        box-shadow: 0 12px 32px rgba(15,23,42,.16) !important;
    }

    .binder-float-btn img {
        width: 78% !important;
        height: 78% !important;
        object-fit: contain !important;
    }

    body.mobile-filters-open .binder-float-btn,
    body.mobile-sidebar-open .binder-float-btn {
        display: none !important;
    }
}

@media (max-width: 520px) {
    .brand-logo-img {
        width: min(100%, 330px) !important;
        max-height: 62px !important;
    }

    .header-right {
        grid-template-columns: 1fr !important;
    }

    .trainer-area {
        grid-template-columns: 1fr 58px !important;
    }

    .stats-card {
        border-radius: 22px !important;
        padding: 14px !important;
    }

    .stats-card-top {
        display: grid !important;
        gap: 10px !important;
    }

    .btn-config-collection {
        width: 100% !important;
    }
}

@media (max-width: 420px) {
    .card-grid.mobile-view-list .tcg-card {
        grid-template-columns: 86px minmax(0, 1fr) !important;
    }

    .card-grid.mobile-view-list .card-image {
        width: 86px !important;
        min-height: 116px !important;
    }

    .card-grid.mobile-view-list .card-image img {
        max-height: 116px !important;
    }
}


/* =========================================================
   MyTCG-EX - Mobile UX v6
   Objetivo: experiência mobile própria, sem afetar desktop.
   ========================================================= */

.mobile-app-header-v6,
.mobile-summary-v6,
.mobile-bottom-nav-v6,
.mobile-more-sheet-v6,
.mobile-more-backdrop-v6 {
    display: none;
}

@media (max-width: 768px) {
    :root {
        --mobile-nav-height-v6: 68px;
        --mobile-safe-bottom-v6: env(safe-area-inset-bottom, 0px);
    }

    html,
    body {
        overflow-x: hidden !important;
        max-width: 100% !important;
        scroll-behavior: smooth;
    }

    body {
        padding-bottom: calc(var(--mobile-nav-height-v6) + var(--mobile-safe-bottom-v6));
        background:
            radial-gradient(circle at 20% 0%, rgba(34, 211, 238, .16), transparent 32%),
            radial-gradient(circle at 90% 5%, rgba(37, 99, 235, .10), transparent 28%),
            #fffaf7;
    }

    body.mobile-sidebar-open,
    body.mobile-filters-open,
    body.mobile-more-open,
    body.mobile-search-open {
        overflow: hidden !important;
        touch-action: none;
    }

    .tcg-sky {
        display: none;
    }

    .pokedex-shell {
        padding: 0 !important;
        width: 100% !important;
        min-height: 100dvh;
        border-radius: 0 !important;
        box-shadow: none !important;
        background: transparent !important;
    }

    .pokedex-header,
    .session-user-bar {
        display: none !important;
    }

    .mobile-app-header-v6 {
        display: block;
        position: sticky;
        top: 0;
        z-index: 930;
        padding: 8px 10px 8px;
        background: rgba(255, 255, 255, .88);
        backdrop-filter: blur(18px);
        -webkit-backdrop-filter: blur(18px);
        border-bottom: 1px solid rgba(229, 231, 235, .82);
        box-shadow: 0 8px 26px rgba(15, 23, 42, .06);
    }

    .mobile-app-topline-v6 {
        display: grid;
        grid-template-columns: 42px minmax(0, 1fr) 42px 42px;
        gap: 8px;
        align-items: center;
        min-height: 44px;
    }

    .mobile-icon-btn-v6 {
        width: 42px;
        height: 42px;
        border: 1px solid rgba(226, 232, 240, .95);
        border-radius: 15px;
        background: rgba(255, 255, 255, .94);
        color: #1f2937;
        font-size: 18px;
        font-weight: 950;
        display: grid;
        place-items: center;
        box-shadow: 0 8px 18px rgba(15, 23, 42, .06);
    }

    .mobile-brand-v6 {
        min-width: 0;
        display: flex;
        justify-content: center;
        align-items: center;
    }

    .mobile-brand-v6 img {
        max-width: min(190px, 48vw);
        max-height: 42px;
        object-fit: contain;
        display: block;
    }

    .mobile-search-panel-v6 {
        display: grid;
        grid-template-rows: 0fr;
        transition: grid-template-rows .22s ease, margin-top .22s ease;
        margin-top: 0;
    }

    body.mobile-search-open .mobile-search-panel-v6 {
        grid-template-rows: 1fr;
        margin-top: 8px;
    }

    .mobile-search-panel-v6 input {
        min-width: 0;
        width: 100%;
        height: 42px;
        border: 1px solid rgba(226, 232, 240, .95);
        border-radius: 999px;
        padding: 0 16px;
        outline: none;
        background: rgba(255, 255, 255, .96);
        color: #111827;
        font-weight: 750;
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9);
        overflow: hidden;
    }

    .pokedex-layout {
        display: block !important;
        min-height: auto !important;
        padding: 8px 10px 0 !important;
        overflow: visible !important;
    }

    .content {
        padding: 0 !important;
        overflow: visible !important;
        min-width: 0;
    }

    /* Resumo compacto da colecao */
    .stats-card {
        display: none !important;
    }

    .mobile-summary-v6 {
        display: block;
        margin: 6px 0 10px;
        padding: 12px;
        border: 1px solid rgba(229, 231, 235, .9);
        border-radius: 20px;
        background:
            radial-gradient(circle at 6% 0%, rgba(34, 211, 238, .16), transparent 34%),
            radial-gradient(circle at 90% 0%, rgba(37, 99, 235, .10), transparent 34%),
            rgba(255, 255, 255, .92);
        box-shadow: 0 14px 32px rgba(15, 23, 42, .07);
    }

    .mobile-summary-main-v6 {
        width: 100%;
        border: 0;
        padding: 0;
        background: transparent;
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 12px;
        align-items: center;
        text-align: left;
    }

    .mobile-summary-main-v6 small {
        display: block;
        margin-bottom: 2px;
        color: #7b8190;
        font-size: 10px;
        font-weight: 950;
        letter-spacing: .08em;
        text-transform: uppercase;
    }

    .mobile-summary-main-v6 strong {
        display: block;
        color: #111827;
        font-size: 16px;
        line-height: 1.15;
        letter-spacing: -.03em;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .mobile-summary-pct-v6 {
        min-width: 58px;
        height: 42px;
        padding: 0 10px;
        display: grid;
        place-items: center;
        border-radius: 15px;
        color: #fff;
        font-size: 18px;
        font-weight: 1000;
        background: linear-gradient(135deg, #2563EB, #a78bfa);
        box-shadow: 0 12px 26px rgba(37, 99, 235, .24);
    }

    .mobile-summary-mini-v6 {
        margin-top: 10px;
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 6px;
    }

    .mobile-summary-mini-v6 span {
        min-width: 0;
        padding: 8px 6px;
        border-radius: 14px;
        background: rgba(255, 255, 255, .82);
        border: 1px solid rgba(229, 231, 235, .78);
        color: #697080;
        text-align: center;
        font-size: 11px;
        font-weight: 850;
    }

    .mobile-summary-mini-v6 strong {
        display: block;
        color: #111827;
        font-size: 13px;
        font-weight: 1000;
    }

    .mobile-summary-details-v6 {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 6px;
        max-height: 0;
        overflow: hidden;
        opacity: 0;
        transform: translateY(-4px);
        transition: max-height .24s ease, opacity .2s ease, transform .2s ease, margin-top .2s ease;
    }

    body.mobile-summary-expanded .mobile-summary-details-v6 {
        margin-top: 8px;
        max-height: 190px;
        opacity: 1;
        transform: translateY(0);
    }

    .mobile-summary-details-v6 div {
        padding: 9px 10px;
        border-radius: 14px;
        background: rgba(255, 255, 255, .74);
        border: 1px solid rgba(229, 231, 235, .72);
    }

    .mobile-summary-details-v6 small {
        display: block;
        color: #7b8190;
        font-size: 9px;
        font-weight: 950;
        letter-spacing: .06em;
        text-transform: uppercase;
    }

    .mobile-summary-details-v6 strong {
        display: block;
        margin-top: 3px;
        color: #111827;
        font-size: 14px;
        font-weight: 1000;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    /* Bottom sheet de filtros: compacto e sem espaços vazios */
    .mobile-filter-btn {
        display: none !important;
    }

    .mobile-backdrop-custom {
        z-index: 940 !important;
        background: rgba(15, 23, 42, .38) !important;
        backdrop-filter: blur(2px) !important;
        -webkit-backdrop-filter: blur(2px) !important;
    }

    .toolbar {
        position: fixed !important;
        left: 10px !important;
        right: 10px !important;
        bottom: calc(var(--mobile-nav-height-v6) + var(--mobile-safe-bottom-v6) + 8px) !important;
        z-index: 970 !important;
        display: flex !important;
        flex-direction: column !important;
        gap: 12px !important;
        max-height: min(62dvh, 470px) !important;
        min-height: 0 !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch;
        padding: 14px !important;
        border: 1px solid rgba(229, 231, 235, .9) !important;
        border-radius: 24px !important;
        background: rgba(255, 255, 255, .98) !important;
        box-shadow: 0 -18px 60px rgba(15, 23, 42, .18) !important;
        transform: translateY(calc(100% + 96px)) !important;
        transition: transform .24s ease !important;
        overscroll-behavior: contain;
    }

    body.mobile-filters-open .toolbar {
        transform: translateY(0) !important;
    }

    .mobile-toolbar-title {
        display: flex !important;
        align-items: flex-start;
        justify-content: space-between;
        gap: 10px;
        padding: 0 0 2px;
    }

    .mobile-toolbar-title strong {
        display: block;
        color: #111827;
        font-size: 16px;
        line-height: 1.1;
    }

    .mobile-toolbar-title small {
        display: block;
        margin-top: 4px;
        color: #6b7280;
        font-size: 12px;
        line-height: 1.25;
    }

    .mobile-filter-close {
        width: 38px;
        height: 38px;
        flex: 0 0 auto;
        border-radius: 50%;
        border: 1px solid rgba(229, 231, 235, .95);
        background: #fff;
        color: #111827;
        font-size: 23px;
        font-weight: 900;
        line-height: 1;
    }

    .mobile-view-toggle {
        display: grid !important;
        grid-template-columns: 1fr 1fr;
        gap: 8px;
        padding: 0;
    }

    .mobile-view-toggle button {
        height: 40px;
        border-radius: 999px;
        border: 1px solid rgba(229, 231, 235, .95);
        background: rgba(255, 255, 255, .9);
        color: #6b7280;
        font-size: 13px;
        font-weight: 950;
    }

    .mobile-view-toggle button.active {
        color: #2563EB;
        border-color: rgba(37, 99, 235, .28);
        background: rgba(37, 99, 235, .10);
    }

    .filter-chips {
        width: 100%;
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px !important;
        overflow: visible !important;
    }

    .chip,
    .sort-select {
        min-height: 40px !important;
        width: 100%;
        padding: 0 10px !important;
        font-size: 13px !important;
        border-radius: 14px !important;
        box-shadow: none !important;
        white-space: nowrap;
    }

    .chip.active {
        border-color: transparent !important;
        background: linear-gradient(135deg, #2563EB, #ff7aa9) !important;
        color: #fff !important;
    }

    .sort-select {
        height: 42px !important;
        min-width: 0 !important;
        margin: 0 !important;
        background: #fff !important;
    }

    /* Grid/lista de cartas para uso com o polegar */
    .card-grid {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 10px !important;
        min-height: 0 !important;
        max-height: none !important;
        overflow: visible !important;
        padding: 0 0 calc(var(--mobile-nav-height-v6) + 22px) !important;
    }

    .card-grid.mobile-view-list .tcg-card,
    .tcg-card {
        min-height: 0 !important;
        display: grid !important;
        grid-template-columns: 74px minmax(0, 1fr) !important;
        grid-template-areas:
            "img meta"
            "img status"
            "actions actions" !important;
        column-gap: 10px !important;
        row-gap: 8px !important;
        padding: 10px !important;
        border-radius: 18px !important;
        box-shadow: 0 12px 30px rgba(15, 23, 42, .06) !important;
    }

    .card-grid.mobile-view-list .card-image,
    .card-image {
        grid-area: img !important;
        width: 74px !important;
        min-height: 104px !important;
        height: 104px !important;
        margin: 0 !important;
        border-radius: 12px !important;
    }

    .card-grid.mobile-view-list .card-image img,
    .card-image img {
        max-height: 104px !important;
        width: 100%;
        object-fit: contain;
    }

    .card-status-dot {
        width: 28px !important;
        height: 28px !important;
        right: 3px !important;
        top: 3px !important;
        font-size: 13px !important;
    }

    .card-meta {
        grid-area: meta !important;
        padding: 0 !important;
        min-width: 0 !important;
        align-self: start;
    }

    .card-meta small {
        font-size: 11px !important;
        margin-bottom: 3px !important;
    }

    .card-meta strong {
        font-size: 14px !important;
        line-height: 1.2 !important;
        margin-bottom: 2px !important;
        display: -webkit-box !important;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        white-space: normal !important;
        overflow: hidden;
    }

    .card-meta span {
        font-size: 12px !important;
        line-height: 1.2 !important;
    }

    .variation-badges {
        margin-top: 5px !important;
        gap: 4px !important;
    }

    .variation-badges span {
        width: auto !important;
        min-width: 22px !important;
        height: 22px !important;
        padding: 0 7px !important;
        font-size: 10px !important;
    }

    .status-pill {
        grid-area: status !important;
        width: 100% !important;
        min-height: 30px !important;
        margin: 0 !important;
        padding: 0 10px !important;
        border-radius: 999px !important;
        font-size: 12px !important;
        display: flex !important;
        align-items: center;
        justify-content: center;
    }

    .quick-actions {
        grid-area: actions !important;
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 8px !important;
        margin: 0 !important;
    }

    .quick-btn {
        height: 34px !important;
        min-height: 34px !important;
        padding: 0 8px !important;
        border-radius: 12px !important;
        font-size: 12px !important;
    }

    .card-grid.mobile-view-album {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
    }

    .card-grid.mobile-view-album .tcg-card {
        display: block !important;
        padding: 8px !important;
        border-radius: 18px !important;
    }

    .card-grid.mobile-view-album .card-image {
        width: 100% !important;
        height: 132px !important;
        min-height: 132px !important;
    }

    .card-grid.mobile-view-album .card-image img {
        max-height: 132px !important;
    }

    .card-grid.mobile-view-album .card-meta {
        margin-top: 8px !important;
    }

    .card-grid.mobile-view-album .card-meta strong {
        font-size: 12px !important;
        -webkit-line-clamp: 1;
    }

    .card-grid.mobile-view-album .status-pill {
        margin-top: 8px !important;
    }

    .card-grid.mobile-view-album .quick-actions {
        margin-top: 8px !important;
        gap: 5px !important;
    }

    .card-grid.mobile-view-album .quick-btn {
        height: 30px !important;
        font-size: 11px !important;
    }

    /* Drawer de colecoes mais econômico */
    .sidebar {
        width: min(84vw, 330px) !important;
        padding: 14px 12px !important;
        border-radius: 0 22px 22px 0 !important;
    }

    .panel-title {
        margin-bottom: 12px !important;
        font-size: 13px !important;
    }

    .collection-list {
        gap: 8px !important;
    }

    .collection-item {
        min-height: 72px !important;
        padding: 10px !important;
        border-radius: 16px !important;
        grid-template-columns: 44px minmax(0, 1fr) auto !important;
    }

    .collection-icon {
        width: 44px !important;
        height: 44px !important;
        border-radius: 14px !important;
        font-size: 15px !important;
    }

    .collection-info strong {
        font-size: 13px !important;
    }

    .collection-info small {
        font-size: 10px !important;
        line-height: 1.25 !important;
    }

    .collection-pct {
        font-size: 14px !important;
        min-width: 40px !important;
    }

    .album-box,
    .sidebar-deco,
    .professor-tip {
        display: none !important;
    }

    .btn-add-collection {
        min-height: 42px !important;
        margin-top: 10px !important;
        border-radius: 15px !important;
        font-size: 12px !important;
    }

    /* Barra inferior fixa */
    .mobile-bottom-nav-v6 {
        display: grid;
        position: fixed;
        left: 10px;
        right: 10px;
        bottom: calc(8px + var(--mobile-safe-bottom-v6));
        z-index: 960;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 6px;
        padding: 8px;
        border-radius: 22px;
        background: rgba(255, 255, 255, .94);
        border: 1px solid rgba(229, 231, 235, .9);
        box-shadow: 0 18px 48px rgba(15, 23, 42, .17);
        backdrop-filter: blur(18px);
        -webkit-backdrop-filter: blur(18px);
    }

    .mobile-bottom-nav-v6 button {
        min-width: 0;
        height: 48px;
        border: 0;
        border-radius: 16px;
        background: transparent;
        color: #6b7280;
        display: grid;
        place-items: center;
        align-content: center;
        gap: 2px;
        font-weight: 950;
    }

    .mobile-bottom-nav-v6 button:active,
    .mobile-bottom-nav-v6 button.is-active {
        color: #2563EB;
        background: rgba(37, 99, 235, .10);
    }

    .mobile-bottom-nav-v6 span {
        font-size: 17px;
        line-height: 1;
    }

    .mobile-bottom-nav-v6 strong {
        font-size: 10px;
        line-height: 1;
    }

    /* Menu "Mais" */
    .mobile-more-backdrop-v6 {
        position: fixed;
        inset: 0;
        z-index: 965;
        background: rgba(15, 23, 42, .32);
        backdrop-filter: blur(2px);
        -webkit-backdrop-filter: blur(2px);
        opacity: 0;
        pointer-events: none;
        transition: opacity .2s ease;
    }

    body.mobile-more-open .mobile-more-backdrop-v6 {
        display: block;
        opacity: 1;
        pointer-events: auto;
    }

    .mobile-more-sheet-v6 {
        position: fixed;
        left: 10px;
        right: 10px;
        bottom: calc(var(--mobile-nav-height-v6) + var(--mobile-safe-bottom-v6) + 8px);
        z-index: 980;
        padding: 14px;
        border-radius: 24px;
        background: rgba(255, 255, 255, .98);
        border: 1px solid rgba(229, 231, 235, .92);
        box-shadow: 0 -18px 60px rgba(15, 23, 42, .18);
        transform: translateY(calc(100% + 96px));
        transition: transform .24s ease;
    }

    body.mobile-more-open .mobile-more-sheet-v6 {
        display: block;
        transform: translateY(0);
    }

    .mobile-more-header-v6 {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        margin-bottom: 12px;
    }

    .mobile-more-header-v6 strong {
        color: #111827;
        font-size: 16px;
    }

    .mobile-more-header-v6 button {
        width: 38px;
        height: 38px;
        border-radius: 50%;
        border: 1px solid rgba(229, 231, 235, .95);
        background: #fff;
        color: #111827;
        font-size: 23px;
        font-weight: 900;
    }

    .mobile-more-grid-v6 {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }

    .mobile-more-grid-v6 a {
        min-height: 44px;
        padding: 0 12px;
        border-radius: 14px;
        display: flex;
        align-items: center;
        justify-content: center;
        text-align: center;
        color: #374151;
        text-decoration: none;
        font-weight: 900;
        font-size: 13px;
        background: rgba(249, 250, 251, .95);
        border: 1px solid rgba(229, 231, 235, .9);
    }

    .mobile-more-grid-v6 a:active {
        color: #2563EB;
        background: rgba(37, 99, 235, .08);
    }

    /* Painel de detalhes não deve disputar espaço quando fechado */
    .detail-panel {
        z-index: 990;
    }

    /* Botão flutuante menor e discreto */
    .binder-float-btn {
        width: 44px !important;
        height: 44px !important;
        right: 12px !important;
        bottom: calc(var(--mobile-nav-height-v6) + var(--mobile-safe-bottom-v6) + 12px) !important;
        z-index: 930 !important;
        opacity: .92;
    }

    .binder-float-btn img {
        width: 34px !important;
        height: 34px !important;
    }

    body.mobile-filters-open .binder-float-btn,
    body.mobile-sidebar-open .binder-float-btn,
    body.mobile-more-open .binder-float-btn,
    body.detail-panel-open .binder-float-btn {
        display: none !important;
    }

    body.mobile-filters-open .mobile-bottom-nav-v6,
    body.mobile-sidebar-open .mobile-bottom-nav-v6,
    body.mobile-more-open .mobile-bottom-nav-v6 {
        opacity: .98;
    }

    .empty-state {
        padding: 28px 18px !important;
    }
}

@media (max-width: 390px) {
    .mobile-brand-v6 img {
        max-width: 158px;
    }

    .mobile-app-topline-v6 {
        grid-template-columns: 40px minmax(0, 1fr) 40px 40px;
        gap: 6px;
    }

    .mobile-icon-btn-v6 {
        width: 40px;
        height: 40px;
        border-radius: 14px;
    }

    .mobile-summary-mini-v6 {
        grid-template-columns: 1fr 1fr;
    }

    .mobile-summary-mini-v6 span:last-child {
        grid-column: 1 / -1;
    }

    .filter-chips {
        grid-template-columns: 1fr 1fr;
    }

    .card-grid.mobile-view-album {
        grid-template-columns: 1fr 1fr !important;
    }
}

/* V86 - validacao responsiva admin e menus logados */
.admin-page .admin-shell {
    width: min(1480px, calc(100% - 28px));
    box-sizing: border-box;
}
.admin-page .admin-content,
.admin-page .admin-card,
.admin-page .admin-hero {
    min-width: 0;
}
.admin-page .admin-table-wrap,
.admin-page .table-wrap {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.admin-page .admin-table-wrap table,
.admin-page .table-wrap table {
    min-width: 760px;
}
.admin-page .admin-table a,
.admin-page .users-table a,
.admin-page .mini-btn {
    min-height: 36px;
    display: inline-flex;
    align-items: center;
}
.btn-add-user-collection,
.btn-open-catalog,
.set-result-actions button {
    min-height: 38px;
}
@media (max-width: 940px) {
    .admin-page .admin-shell {
        display: block !important;
        min-height: 0 !important;
        width: calc(100% - 20px) !important;
        max-width: none !important;
        padding: 10px 0 18px !important;
        margin: 0 auto !important;
    }
    .admin-page .admin-menu {
        width: 100% !important;
        box-sizing: border-box !important;
        padding: 14px !important;
        margin: 0 0 14px !important;
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
        border-radius: 22px !important;
        border-right: 1px solid rgba(31,41,55,.08) !important;
    }
    .admin-page .admin-brand {
        grid-column: 1 / -1;
        margin: 0 !important;
        padding: 12px !important;
        border-radius: 18px !important;
    }
    .admin-page .brand-orb-mini {
        display: none;
    }
    .admin-page .admin-menu a {
        min-height: 42px !important;
        justify-content: center !important;
        text-align: center;
        padding: 8px 10px !important;
        font-size: 12px !important;
    }
    .admin-page .admin-content {
        padding: 0 !important;
    }
    .admin-page .admin-hero {
        min-height: 0 !important;
        padding: 18px !important;
        border-radius: 22px !important;
    }
    .admin-page .admin-hero h1 {
        font-size: 28px !important;
        letter-spacing: 0 !important;
    }
    .admin-page .admin-kpis {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
    }
    .admin-page .admin-card {
        padding: 14px !important;
        border-radius: 22px !important;
    }
    .admin-page .admin-fieldset {
        grid-template-columns: 1fr !important;
    }
}
@media (max-width: 560px) {
    .admin-page .admin-official-topbar {
        width: calc(100% - 20px) !important;
        border-radius: 22px !important;
        padding: 12px !important;
    }
    .admin-page .admin-official-nav {
        width: 100%;
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }
    .admin-page .admin-official-nav a {
        min-height: 40px;
        padding: 8px !important;
        font-size: 12px !important;
    }
    .admin-page .admin-menu {
        grid-template-columns: 1fr !important;
    }
    .admin-page .admin-kpis {
        grid-template-columns: 1fr !important;
    }
}


/* =========================================================
   MyTCG-EX - Mobile UX v6.1
   Correção: filtros não ficam presos e drawer de colecoes clicável.
   ========================================================= */

@media (max-width: 980px) {
    body:not(.mobile-filters-open) #mobileFiltersPanel.toolbar {
        transform: translateY(calc(100% + 140px)) !important;
        opacity: 0 !important;
        pointer-events: none !important;
        visibility: hidden !important;
    }

    body.mobile-filters-open #mobileFiltersPanel.toolbar {
        transform: translateY(0) !important;
        opacity: 1 !important;
        pointer-events: auto !important;
        visibility: visible !important;
    }

    body:not(.mobile-sidebar-open) #pokedexSidebar.sidebar {
        transform: translateX(-112%) !important;
        opacity: 1 !important;
        pointer-events: none !important;
        visibility: hidden !important;
    }

    body.mobile-sidebar-open #pokedexSidebar.sidebar {
        transform: translateX(0) !important;
        opacity: 1 !important;
        pointer-events: auto !important;
        visibility: visible !important;
    }

    body.mobile-sidebar-open #pokedexSidebar.sidebar,
    body.mobile-sidebar-open #pokedexSidebar.sidebar * {
        filter: none !important;
        -webkit-filter: none !important;
        pointer-events: auto;
    }

    body.mobile-sidebar-open::before,
    body.mobile-filters-open::before,
    body.mobile-more-open::before {
        z-index: 1030 !important;
        pointer-events: auto !important;
    }

    #pokedexSidebar.sidebar {
        z-index: 1110 !important;
        top: 0 !important;
        left: 0 !important;
        bottom: auto !important;
        height: 100dvh !important;
        max-height: 100dvh !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch;
        will-change: transform;
    }

    #mobileFiltersPanel.toolbar {
        z-index: 1120 !important;
        will-change: transform;
    }

    .mobile-bottom-nav-v6 {
        z-index: 1090 !important;
    }

    body.mobile-sidebar-open .mobile-bottom-nav-v6,
    body.mobile-filters-open .mobile-bottom-nav-v6,
    body.mobile-more-open .mobile-bottom-nav-v6 {
        pointer-events: none;
        opacity: .72;
    }

    .sidebar-close-mobile {
        display: grid !important;
        place-items: center;
        position: sticky;
        top: 0;
        margin-left: auto;
        width: 40px;
        height: 40px;
        border: 1px solid rgba(226,232,240,.95);
        background: rgba(255,255,255,.96);
        color: #111827;
        border-radius: 999px;
        font-size: 24px;
        font-weight: 900;
        z-index: 2;
    }

    .collection-item {
        pointer-events: auto !important;
        cursor: pointer;
    }
}


/* =========================================================
   Mobile UX v6.2 - correções finais de usabilidade mobile
   ========================================================= */
@media (max-width: 980px) {
    body.mobile-filters-open,
    body.mobile-sidebar-open,
    body.mobile-more-open {
        overflow: hidden !important;
        touch-action: none !important;
    }

    body:not(.mobile-filters-open) #mobileFiltersPanel.toolbar {
        display: flex !important;
        transform: translate3d(0, calc(100% + 180px), 0) !important;
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }

    body.mobile-filters-open #mobileFiltersPanel.toolbar {
        transform: translate3d(0, 0, 0) !important;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }

    #mobileFiltersPanel.toolbar {
        position: fixed !important;
        left: 10px !important;
        right: 10px !important;
        top: auto !important;
        bottom: calc(var(--mobile-nav-height-v6, 68px) + env(safe-area-inset-bottom, 0px) + 8px) !important;
        z-index: 1120 !important;
        max-height: min(54dvh, 430px) !important;
        min-height: 0 !important;
        overflow-y: auto !important;
        overscroll-behavior: contain !important;
        -webkit-overflow-scrolling: touch !important;
        border-radius: 24px !important;
    }

    body.mobile-filters-open::before,
    body.mobile-sidebar-open::before,
    body.mobile-more-open::before {
        content: "";
        position: fixed;
        inset: 0;
        z-index: 1030 !important;
        background: rgba(15, 23, 42, .28) !important;
        backdrop-filter: blur(2px) !important;
        -webkit-backdrop-filter: blur(2px) !important;
        pointer-events: auto !important;
    }

    body.mobile-filters-open #mobileFiltersPanel.toolbar,
    body.mobile-sidebar-open #pokedexSidebar.sidebar,
    body.mobile-more-open .mobile-more-sheet-v6 {
        z-index: 1120 !important;
    }

    body:not(.mobile-sidebar-open) #pokedexSidebar.sidebar {
        transform: translate3d(-112%, 0, 0) !important;
        opacity: 1 !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }

    body.mobile-sidebar-open #pokedexSidebar.sidebar {
        transform: translate3d(0, 0, 0) !important;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
        filter: none !important;
        -webkit-filter: none !important;
    }

    body.mobile-sidebar-open #pokedexSidebar.sidebar * {
        filter: none !important;
        -webkit-filter: none !important;
        pointer-events: auto !important;
    }

    #pokedexSidebar.sidebar {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        height: 100dvh !important;
        max-height: 100dvh !important;
        width: min(88vw, 360px) !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch !important;
        overscroll-behavior: contain !important;
        background: rgba(255,255,255,.98) !important;
    }

    .collection-item {
        position: relative !important;
        z-index: 1122 !important;
        pointer-events: auto !important;
        -webkit-tap-highlight-color: rgba(37,99,235,.12);
    }

    .mobile-app-header-v6 {
        position: sticky !important;
        top: 0 !important;
        z-index: 1020 !important;
    }

    .mobile-bottom-nav-v6 {
        z-index: 1090 !important;
    }

    body.mobile-filters-open .mobile-bottom-nav-v6,
    body.mobile-sidebar-open .mobile-bottom-nav-v6,
    body.mobile-more-open .mobile-bottom-nav-v6 {
        pointer-events: none !important;
        opacity: .74 !important;
    }

    .mobile-filter-btn {
        display: none !important;
    }
}

/* =========================================================
   Mobile UX v6.3 - correção definitiva do drawer/filtros
   ========================================================= */
@media (max-width: 980px) {
    body.mobile-sidebar-open,
    body.mobile-filters-open,
    body.mobile-more-open {
        overflow: auto !important;
        touch-action: auto !important;
    }

    body.mobile-sidebar-open::before,
    body.mobile-sidebar-open::after,
    body.mobile-filters-open::before,
    body.mobile-filters-open::after,
    body.mobile-more-open::before,
    body.mobile-more-open::after {
        content: none !important;
        display: none !important;
        pointer-events: none !important;
        background: transparent !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }

    .mobile-overlay-backdrop {
        display: none !important;
        opacity: 0 !important;
        pointer-events: none !important;
        visibility: hidden !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }

    #pokedexSidebar.sidebar {
        z-index: 2147483000 !important;
        filter: none !important;
        -webkit-filter: none !important;
        opacity: 1 !important;
        transform: translate3d(-112%, 0, 0) !important;
        visibility: hidden !important;
        pointer-events: none !important;
        background: #fff !important;
    }

    body.mobile-sidebar-open #pokedexSidebar.sidebar {
        transform: translate3d(0, 0, 0) !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }

    body.mobile-sidebar-open #pokedexSidebar.sidebar,
    body.mobile-sidebar-open #pokedexSidebar.sidebar * {
        filter: none !important;
        -webkit-filter: none !important;
        pointer-events: auto !important;
    }

    body.mobile-sidebar-open .pokedex-shell,
    body.mobile-sidebar-open .pokedex-layout,
    body.mobile-sidebar-open .content,
    body.mobile-sidebar-open .mobile-app-header-v6,
    body.mobile-sidebar-open .mobile-bottom-nav-v6 {
        filter: none !important;
        -webkit-filter: none !important;
    }

    body.mobile-sidebar-open .mobile-bottom-nav-v6,
    body.mobile-filters-open .mobile-bottom-nav-v6,
    body.mobile-more-open .mobile-bottom-nav-v6 {
        pointer-events: auto !important;
        opacity: 1 !important;
    }

    #mobileFiltersPanel.toolbar {
        z-index: 2147482990 !important;
    }

    body:not(.mobile-filters-open) #mobileFiltersPanel.toolbar {
        transform: translate3d(0, calc(100% + 220px), 0) !important;
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }

    body.mobile-filters-open #mobileFiltersPanel.toolbar {
        transform: translate3d(0, 0, 0) !important;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }

    .mobile-app-header-v6 {
        position: sticky !important;
        top: 0 !important;
        z-index: 1200 !important;
    }
}

/* =========================================================
   Comercial/Home pública inicial
   ========================================================= */
.commercial-home-page {
    min-height: 100vh;
    color: #111827;
    background:
        radial-gradient(circle at top left, rgba(37,99,235,.18), transparent 34%),
        radial-gradient(circle at top right, rgba(124,58,237,.14), transparent 30%),
        linear-gradient(180deg, #fff7fb, #f8fafc 46%, #ffffff);
}

.commercial-home-header,
.commercial-footer {
    width: min(1180px, calc(100% - 28px));
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.commercial-home-header {
    padding: 18px 0;
    position: sticky;
    top: 0;
    z-index: 20;
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
}

.commercial-home-brand img {
    width: min(260px, 58vw);
    max-height: 74px;
    object-fit: contain;
}

.commercial-home-header nav,
.commercial-footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}

.commercial-home-header a,
.commercial-footer a {
    color: #374151;
    text-decoration: none;
    font-weight: 900;
}

.commercial-home-cta,
.commercial-secondary,
.commercial-ad-preview a {
    display: inline-flex;
    min-height: 42px;
    padding: 0 16px;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    text-decoration: none;
    font-weight: 950;
}

.commercial-home-cta,
.commercial-ad-preview a {
    color: #fff !important;
    background: linear-gradient(135deg, #2563EB, #a855f7);
    box-shadow: 0 16px 36px rgba(37,99,235,.24);
}

.commercial-secondary {
    color: #f1357c;
    background: #fff;
    border: 1px solid rgba(37,99,235,.24);
}

.commercial-home-main {
    width: min(1180px, calc(100% - 28px));
    margin: 0 auto;
    padding: 42px 0 28px;
}

.commercial-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr);
    gap: 24px;
    align-items: stretch;
}

.commercial-eyebrow {
    display: inline-flex;
    margin-bottom: 14px;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(37,99,235,.10);
    color: #f1357c;
    font-weight: 950;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.commercial-hero h1 {
    margin: 0;
    max-width: 820px;
    font-size: clamp(36px, 6vw, 68px);
    line-height: .98;
    letter-spacing: -.06em;
}

.commercial-hero p {
    max-width: 760px;
    margin: 18px 0 0;
    color: #4b5563;
    font-size: 17px;
    line-height: 1.65;
}

.commercial-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 24px;
}

.commercial-ad-preview,
.commercial-feature-grid article,
.commercial-contact {
    border: 1px solid rgba(229,231,235,.92);
    background: rgba(255,255,255,.84);
    box-shadow: 0 24px 60px rgba(15,23,42,.08);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
}

.commercial-ad-preview {
    min-height: 360px;
    padding: 24px;
    border-radius: 30px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    background:
        linear-gradient(135deg, rgba(37,99,235,.12), rgba(168,85,247,.14)),
        #fff;
}

.commercial-ad-preview small {
    color: #f1357c;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.commercial-ad-preview strong {
    margin-top: 8px;
    font-size: 28px;
    line-height: 1.05;
}

.commercial-feature-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-top: 28px;
}

.commercial-feature-grid article {
    padding: 20px;
    border-radius: 24px;
}

.commercial-feature-grid strong {
    display: block;
    font-size: 16px;
}

.commercial-feature-grid p {
    margin: 8px 0 0;
    color: #6b7280;
    line-height: 1.5;
}

.commercial-contact {
    margin-top: 28px;
    padding: 26px;
    border-radius: 28px;
    text-align: center;
}

.commercial-contact h2 {
    margin: 0 0 8px;
}

.commercial-contact p {
    max-width: 760px;
    margin: 0 auto 18px;
    color: #4b5563;
    line-height: 1.65;
}

.commercial-footer {
    padding: 22px 0 30px;
    color: #6b7280;
    justify-content: center;
}

@media (max-width: 860px) {
    .commercial-home-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .commercial-hero,
    .commercial-feature-grid {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   Mobile UX v6.4 - hotfix anti-blur/overlay preso
   ========================================================= */
@media (max-width: 980px) {
    body.mobile-sidebar-open::before,
    body.mobile-sidebar-open::after,
    body.mobile-filters-open::before,
    body.mobile-filters-open::after,
    body.mobile-more-open::before,
    body.mobile-more-open::after,
    html.mobile-sidebar-open::before,
    html.mobile-sidebar-open::after {
        content: none !important;
        display: none !important;
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }

    .mobile-overlay-backdrop,
    .modal-backdrop-custom:not(.show):not(.is-open) {
        display: none !important;
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }

    #pokedexSidebar.sidebar,
    body.mobile-sidebar-open #pokedexSidebar.sidebar,
    body.mobile-sidebar-open #pokedexSidebar.sidebar * {
        filter: none !important;
        -webkit-filter: none !important;
    }

    body.mobile-sidebar-open #pokedexSidebar.sidebar {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        height: 100dvh !important;
        max-height: 100dvh !important;
        transform: translate3d(0, 0, 0) !important;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
        z-index: 2147483600 !important;
        background: #fff !important;
    }

    body.mobile-sidebar-open #pokedexSidebar .collection-item,
    body.mobile-sidebar-open #pokedexSidebar a,
    body.mobile-sidebar-open #pokedexSidebar button {
        pointer-events: auto !important;
        touch-action: manipulation !important;
    }

    body:not(.mobile-sidebar-open) #pokedexSidebar.sidebar {
        transform: translate3d(-112%, 0, 0) !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }

    body.mobile-filters-open #mobileFiltersPanel.toolbar {
        z-index: 2147483500 !important;
    }
}

.sponsored-card {
    width: min(1180px, calc(100% - 28px));
    margin: 16px auto 92px;
    padding: 16px;
    border-radius: 22px;
    border: 1px solid rgba(229,231,235,.92);
    background: linear-gradient(135deg, rgba(37,99,235,.08), rgba(168,85,247,.08)), rgba(255,255,255,.94);
    box-shadow: 0 18px 40px rgba(15,23,42,.08);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.sponsored-card small {
    display: block;
    color: #f1357c;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: 11px;
}

.sponsored-card strong {
    display: block;
    color: #111827;
    font-size: 16px;
}

.sponsored-card span {
    display: block;
    color: #6b7280;
    margin-top: 3px;
    font-size: 13px;
}

.sponsored-link {
    flex: 0 0 auto;
    min-height: 40px;
    padding: 0 16px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    color: #fff;
    font-weight: 950;
    background: linear-gradient(135deg, #2563EB, #a855f7);
}

.admin-form-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.admin-form-grid label,
.admin-fieldset {
    display: flex;
    flex-direction: column;
    gap: 6px;
    color: #374151;
    font-weight: 900;
    font-size: 12px;
}

.admin-form-grid input,
.admin-form-grid select {
    min-height: 42px;
    border: 1px solid rgba(229,231,235,.95);
    border-radius: 14px;
    padding: 0 12px;
    background: #fff;
    color: #111827;
}

.admin-fieldset {
    grid-column: 1 / -1;
    border: 1px solid rgba(229,231,235,.95);
    border-radius: 16px;
    padding: 12px;
}

.admin-fieldset label {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    margin-right: 16px;
}

.admin-alert {
    margin-bottom: 14px;
    padding: 12px 14px;
    border-radius: 16px;
    border: 1px solid rgba(37,99,235,.22);
    background: rgba(37,99,235,.08);
    color: #831843;
    font-weight: 900;
}

.commercial-kpis {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

@media (max-width: 860px) {
    .sponsored-card {
        flex-direction: column;
        align-items: flex-start;
        margin-bottom: 96px;
    }

    .sponsored-link {
        width: 100%;
    }

    .admin-form-grid,
    .commercial-kpis {
        grid-template-columns: 1fr;
    }
}


/* v67 - identidade comercial, preview de anuncios, preço pessoal e mobile detail */
.admin-form-actions { display:flex; gap:10px; align-items:center; flex-wrap:wrap; grid-column:1/-1; }
.admin-secondary-link { min-height:42px; padding:0 16px; border-radius:14px; border:1px solid var(--line, #e5e7eb); display:inline-flex; align-items:center; font-weight:900; text-decoration:none; color:#4b5563; background:#fff; }
.ad-preview-card { display:flex; gap:18px; border:1px solid rgba(37,99,235,.22); background:linear-gradient(135deg,#fff,#fff7fb); border-radius:22px; padding:16px; box-shadow:0 18px 45px rgba(15,23,42,.08); overflow:hidden; }
.ad-preview-image { width:min(260px,38vw); min-height:120px; object-fit:cover; border-radius:16px; background:#f8fafc; }
.ad-preview-body small { color:#2563EB; font-weight:900; text-transform:uppercase; letter-spacing:.12em; }
.ad-preview-body h3 { margin:8px 0 6px; color:#111827; }
.ad-preview-body p { color:#6b7280; margin:0 0 12px; }
.ad-preview-cta { display:inline-flex; align-items:center; min-height:40px; padding:0 16px; border-radius:999px; background:#2563EB; color:#fff; font-weight:900; text-decoration:none; }
.btn-detail-back { border:1px solid var(--line,#e5e7eb); background:#fff; color:#4b5563; border-radius:999px; min-height:36px; padding:0 12px; font-weight:900; }
.detail-header { gap:10px; }
.price-manual-box.always-open { display:block; margin-top:14px; }
.brand-safe-hero { position:relative; min-height:365px; border-radius:28px; overflow:hidden; background:radial-gradient(circle at 18% 22%, rgba(37,99,235,.28), transparent 30%), radial-gradient(circle at 78% 18%, rgba(167,139,250,.28), transparent 28%), linear-gradient(135deg,#fff7fb,#f8fbff 52%,#fffdf2); border:1px solid rgba(37,99,235,.18); box-shadow:inset 0 0 0 1px rgba(255,255,255,.7), 0 22px 60px rgba(15,23,42,.08); }
.brand-safe-hero:before { content:""; position:absolute; inset:32px; border-radius:26px; background:linear-gradient(135deg,rgba(255,255,255,.72),rgba(255,255,255,.24)); border:1px solid rgba(255,255,255,.78); }
.brand-card-stack { position:absolute; width:130px; height:182px; border-radius:18px; background:linear-gradient(145deg,#ffffff,#ffe7f1); border:1px solid rgba(37,99,235,.22); box-shadow:0 18px 35px rgba(15,23,42,.12); transform:rotate(-10deg); }
.brand-card-stack:after { content:""; position:absolute; inset:18px; border-radius:14px; background:linear-gradient(135deg,rgba(37,99,235,.22),rgba(167,139,250,.2)); }
.stack-a { left:12%; top:28%; }
.stack-b { left:34%; top:18%; transform:rotate(8deg); background:linear-gradient(145deg,#fff,#eef8ff); }
.stack-c { right:12%; top:30%; transform:rotate(14deg); background:linear-gradient(145deg,#fff,#fff9df); }
.brand-safe-hero-copy { position:absolute; left:42px; right:42px; bottom:42px; display:grid; gap:7px; z-index:2; }
.brand-safe-hero-copy strong { font-size:clamp(28px,4vw,46px); color:#111827; line-height:1; }
.brand-safe-hero-copy small { color:#6b7280; font-weight:800; }
@media (max-width: 780px) { .ad-preview-card { flex-direction:column; } .ad-preview-image { width:100%; } .brand-safe-hero { min-height:270px; } .brand-card-stack { width:92px; height:132px; } .detail-header { position:sticky; top:0; z-index:3; background:rgba(255,255,255,.94); backdrop-filter:blur(12px); } }

/* =========================================================
   V68 - Comercial, anuncios e padronização visual
   ========================================================= */
.brand-logo-img,
.mobile-brand-v6 img,
.commercial-home-brand img,
.login-logo-v12 img {
    background: transparent !important;
    box-shadow: none !important;
    object-fit: contain;
}
.commercial-home-brand img { width: min(260px, 70vw); height: auto; display:block; }
.login-logo-v12 img { max-width: 230px; height: auto; }
.brand-logo-img { max-width: 260px; height: auto; }
.mobile-brand-v6 img { max-height: 42px; width: auto; }

.sponsored-card.sponsored-live {
    display: grid;
    grid-template-columns: minmax(120px, 220px) minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    border: 1px solid rgba(37, 99, 235, .18);
    border-radius: 24px;
    padding: 16px;
    background: rgba(255,255,255,.82);
    box-shadow: 0 18px 48px rgba(31,41,55,.10);
    color: #151b2d;
    text-decoration: none;
}
.sponsored-card.sponsored-live .sponsored-media {
    display:block;
    overflow:hidden;
    border-radius:18px;
    background: linear-gradient(135deg, rgba(37,99,235,.08), rgba(139,92,246,.10));
    min-height: 96px;
}
.sponsored-card.sponsored-live .sponsored-media img {
    width:100%;
    height: 112px;
    object-fit: cover;
    display:block;
}
.sponsored-card.sponsored-live .sponsored-copy { display:flex; flex-direction:column; gap:5px; min-width:0; }
.sponsored-card.sponsored-live small {
    color:#2563EB;
    font-size:12px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.16em;
}
.sponsored-card.sponsored-live strong { font-size:18px; line-height:1.15; }
.sponsored-card.sponsored-live span { color:#667085; font-weight:650; }
.sponsored-card.sponsored-live .sponsored-cta {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:42px;
    padding: 0 18px;
    border-radius:999px;
    color:#fff;
    background:linear-gradient(135deg,#2563EB,#7C3AED);
    text-decoration:none;
    font-weight:900;
    white-space:nowrap;
}
.restricted-top-ad { max-width: 1420px; margin: 14px auto 0; padding: 0 20px; }
.sponsored-card-footer {
    position: static !important;
    max-width: 1420px;
    margin: 26px auto 110px;
}
.commercial-ad-strip { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:28px; }
.commercial-ad-preview .sponsored-live { height:100%; grid-template-columns: 1fr; }
.commercial-ad-preview .sponsored-live .sponsored-media img { height:150px; }
.commercial-ad-preview .sponsored-live .sponsored-cta { justify-self:start; }

.binder-float-btn {
    width: 58px !important;
    height: 58px !important;
    right: 18px !important;
    bottom: 104px !important;
    border-radius: 20px !important;
    background: rgba(255,255,255,.78) !important;
    box-shadow: 0 12px 32px rgba(139,92,246,.22) !important;
    backdrop-filter: blur(12px);
}
.binder-float-btn img { width: 46px !important; height: 46px !important; }
@media (max-width: 780px) {
    .binder-float-btn { right: 16px !important; bottom: 96px !important; width: 50px !important; height: 50px !important; }
    .binder-float-btn img { width: 38px !important; height: 38px !important; }
    .sponsored-card.sponsored-live { grid-template-columns: 1fr; align-items:start; }
    .commercial-ad-strip { grid-template-columns:1fr; }
    .restricted-top-ad { padding:0 12px; }
    .sponsored-card-footer { margin: 18px 12px 120px; }
}

/* Admin visual unificado */
.admin-page {
    min-height:100vh;
    background:
        radial-gradient(circle at 12% 8%, rgba(125,211,252,.18), transparent 30%),
        radial-gradient(circle at 94% 18%, rgba(37,99,235,.14), transparent 30%),
        linear-gradient(135deg,#F8FBFF,#FFF4FA) !important;
    color:#151b2d;
}
.admin-page .admin-shell,
.admin-users-shell {
    max-width: 1480px;
    margin: 0 auto;
    padding: 26px;
}
.admin-page .admin-menu {
    background: rgba(255,255,255,.88) !important;
    border: 1px solid rgba(31,41,55,.08) !important;
    box-shadow: 0 24px 60px rgba(31,41,55,.10) !important;
}
.admin-page .admin-menu a,
.admin-page .admin-brand strong { color:#242B3D !important; }
.admin-page .admin-menu a.active,
.admin-page .admin-menu a:hover {
    background: linear-gradient(135deg, rgba(37,99,235,.15), rgba(139,92,246,.13)) !important;
    color:#E83E84 !important;
}
.admin-page .admin-card,
.admin-page .admin-hero,
.admin-page .admin-content section,
.admin-users-shell > .admin-card {
    background: rgba(255,255,255,.88) !important;
    color:#151b2d !important;
    border:1px solid rgba(31,41,55,.08) !important;
    box-shadow:0 24px 60px rgba(31,41,55,.10) !important;
}
.admin-page .admin-card p,
.admin-page .admin-title-row p,
.admin-page .admin-section-title span { color:#667085 !important; }
.admin-page table { color:#151b2d !important; }
.admin-page th { color:#667085 !important; }
.admin-page input,
.admin-page select,
.admin-page textarea {
    background:#fff !important;
    color:#151b2d !important;
    border:1px solid rgba(31,41,55,.12) !important;
}
.admin-page .admin-actions a,
.admin-page .admin-cta,
.admin-page .btn-gradient,
.admin-page .btn-primary,
.admin-page button[type="submit"] {
    background: linear-gradient(135deg,#2563EB,#7C3AED) !important;
    color:#fff !important;
    border:0 !important;
}
.admin-top-return {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:12px 16px;
    border-radius:16px;
    text-decoration:none;
    font-weight:900;
    background:rgba(255,255,255,.86);
    color:#242B3D;
    border:1px solid rgba(31,41,55,.10);
}

/* Home interna após login */
.app-dashboard-page .app-home-main { padding-top: 24px; }
.app-welcome-hero { align-items: stretch; }
.app-kpi-grid article strong { font-size: 32px; color:#151b2d; }
.app-collections-start .app-collection-list {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
    margin-top:18px;
}
.app-collection-list a {
    display:flex;
    flex-direction:column;
    gap:4px;
    padding:16px;
    border-radius:18px;
    background:rgba(37,99,235,.06);
    text-decoration:none;
    color:#151b2d;
    border:1px solid rgba(37,99,235,.14);
}
.app-collection-list span { color:#667085; font-weight:700; }
@media (max-width: 900px) {
    .app-collections-start .app-collection-list { grid-template-columns:1fr 1fr; }
}
@media (max-width: 560px) {
    .app-collections-start .app-collection-list { grid-template-columns:1fr; }
}

/* =========================================================
   V69 - anuncios, logo e home logada com menu oficial
   ========================================================= */
.brand-logo-img,
.mobile-brand-v6 img,
.commercial-home-brand img,
.login-logo-v12 img {
    background: transparent !important;
    box-shadow: none !important;
    object-fit: contain !important;
    object-position: left center !important;
}
.brand-logo-img { width: min(300px, 24vw) !important; max-width: 300px !important; height: auto !important; display:block !important; }
.mobile-brand-v6 img { width: auto !important; max-width: 180px !important; max-height: 44px !important; }
.commercial-home-brand img { width: min(300px, 70vw) !important; max-width: 300px !important; height: auto !important; display:block !important; }
.login-logo-v12 img { width: min(260px, 72vw) !important; max-width: 260px !important; height: auto !important; }

.official-app-home .app-home-shell { width:100%; min-height:100vh; }
.official-app-home .commercial-home-main { padding-top: 44px; }
.app-official-header { position: sticky; top:0; z-index:60; }
.app-home-search { max-width: 720px; }
.official-app-home .session-user-bar { position: sticky; top: 86px; z-index:55; }

.sponsored-card.sponsored-live .sponsored-media img { background:#f8fafc; }
.sponsored-card.sponsored-live .sponsored-copy small { word-break: break-word; }
.commercial-ad-preview .sponsored-card.sponsored-live { min-height: 100%; }

@media (min-width: 901px) {
    .binder-float-btn {
        width: 44px !important;
        height: 44px !important;
        right: 24px !important;
        bottom: 24px !important;
        border-radius: 16px !important;
        opacity: .82;
    }
    .binder-float-btn img { width: 34px !important; height: 34px !important; }
    .detail-panel:hover ~ .binder-float-btn,
    body.detail-panel-open .binder-float-btn { opacity: .25; }
}
@media (max-width: 900px) {
    .brand-logo-img { width: 210px !important; max-width: 62vw !important; }
    .official-app-home .session-user-bar { top: 76px; overflow-x:auto; justify-content:flex-start; }
    .official-app-home .commercial-home-main { width: min(100% - 24px, 1180px); padding-top: 26px; }
    .app-official-header { grid-template-columns: 1fr; gap: 12px; padding: 14px 16px; }
    .app-official-header .header-right { display:none; }
    .app-home-search { display:none; }
}

.admin-page .admin-users-shell { max-width: 1480px !important; margin: 0 auto !important; padding: 26px !important; }
.admin-page .admin-users-shell .admin-card { background: rgba(255,255,255,.92) !important; color:#151b2d !important; }
.admin-page .admin-users-shell .admin-title-row h1,
.admin-page .admin-users-shell h2,
.admin-page .admin-users-shell .users-table td { color:#151b2d !important; }
.admin-page .admin-users-shell .users-table { background: rgba(255,255,255,.72) !important; }
.admin-page .admin-users-shell .users-table th,
.admin-page .admin-users-shell .users-table td { border-bottom:1px solid rgba(31,41,55,.10) !important; }
.admin-page .admin-users-shell .filters-form input,
.admin-page .admin-users-shell .filters-form select,
.admin-page .admin-users-shell .user-form input,
.admin-page .admin-users-shell .user-form select { background:#fff !important; color:#151b2d !important; border:1px solid rgba(31,41,55,.13) !important; }
.admin-fieldset label small { display:block; margin-left:24px; color:#7b8190; font-size:11px; font-weight:700; }


/* V70 - Admin, segurança e UX comercial */
.admin-official-topbar{
  width:min(1500px,calc(100% - 36px));
  margin:20px auto 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:12px 16px;
  border:1px solid rgba(31,41,55,.08);
  border-radius:26px;
  background:rgba(255,255,255,.90);
  backdrop-filter:blur(18px);
  box-shadow:0 20px 60px rgba(31,41,55,.08);
  position:sticky;
  top:12px;
  z-index:50;
}
.admin-official-brand img{display:block;width:220px;max-width:42vw;height:auto;background:transparent!important;}
.admin-official-nav{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;}
.admin-official-nav a{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border-radius:999px;padding:10px 13px;font-size:13px;font-weight:900;color:#30384b!important;}
.admin-official-nav a.active,.admin-official-nav a:hover{background:rgba(37,99,235,.10);color:#e94f8d!important;}
.admin-official-nav .admin-nav-exit{background:linear-gradient(135deg,#2563EB,#7C3AED);color:#fff!important;box-shadow:0 10px 30px rgba(37,99,235,.18);}
.admin-users-page .admin-users-shell{max-width:1500px!important;margin:0 auto!important;padding:26px!important;}
.admin-users-page .admin-card{background:rgba(255,255,255,.94)!important;color:#141827!important;border:1px solid rgba(31,41,55,.08)!important;box-shadow:0 24px 70px rgba(31,41,55,.10)!important;}
.admin-users-page .admin-card *:not(.btn-gradient):not(.admin-actions a):not(button):not(.badge):not(.mini-btn){color:#141827!important;text-shadow:none!important;}
.admin-users-page .admin-title-row p,.admin-users-page .form-panel p,.admin-users-page .muted,.admin-users-page .kpi-box small{color:#667085!important;}
.admin-users-page .kpi-box,.admin-users-page .form-panel,.admin-users-page .table-wrap{background:rgba(255,255,255,.76)!important;border:1px solid rgba(31,41,55,.10)!important;}
.admin-users-page .users-table{background:rgba(255,255,255,.72)!important;color:#141827!important;}
.admin-users-page .users-table th{color:#667085!important;}
.admin-users-page .users-table td{color:#141827!important;}
.admin-users-page .users-table th,.admin-users-page .users-table td{border-bottom:1px solid rgba(31,41,55,.10)!important;}
.admin-users-page input,.admin-users-page select,.admin-users-page textarea{background:#fff!important;color:#141827!important;border:1px solid rgba(31,41,55,.14)!important;}
.admin-users-page input::placeholder{color:#8b93a4!important;}
.admin-users-page .badge-admin{background:rgba(37,99,235,.16)!important;color:#cc2b6d!important;}
.admin-users-page .badge-user{background:rgba(125,211,252,.20)!important;color:#087aa6!important;}
.admin-users-page .badge-on{background:rgba(52,211,153,.18)!important;color:#047857!important;}
.admin-users-page .badge-off{background:rgba(248,113,113,.18)!important;color:#b91c1c!important;}
.admin-users-page .mini-btn{background:#fff!important;color:#253044!important;border:1px solid rgba(31,41,55,.14)!important;}
.admin-users-page .mini-btn-danger{background:rgba(248,113,113,.10)!important;color:#b91c1c!important;}
.admin-users-page .mini-btn-ok{background:rgba(52,211,153,.12)!important;color:#047857!important;}
.admin-users-page .btn-gradient,.admin-users-page .admin-actions a{color:#fff!important;background:linear-gradient(135deg,#2563EB,#7C3AED)!important;}
@media(max-width:900px){.admin-official-topbar{width:calc(100% - 20px);margin-top:10px;align-items:flex-start;flex-direction:column}.admin-official-brand img{width:190px;max-width:80vw}.admin-official-nav{justify-content:flex-start}.admin-users-page .admin-users-shell{padding:14px!important}.admin-users-page .filters-form,.admin-users-page .split-grid{grid-template-columns:1fr!important}.admin-users-page .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}

/* =========================================================
   V71 - Produção: menu oficial, anuncios estáveis e admin
   ========================================================= */
.official-session-menu a.active,
.session-user-bar a.active { color:#2563EB !important; background:rgba(37,99,235,.10); }
.app-official-header .brand-area-logo,
.pokedex-header .brand-area-logo { min-width: 230px; }
.app-official-header .brand-logo-img,
.pokedex-header .brand-logo-img { width: 240px; max-height: 56px; object-fit: contain; display:block; }
.search-area-empty { visibility:hidden; }
.admin-official-topbar { margin-bottom: 18px; }
.admin-page > .admin-official-topbar { width: min(1180px, calc(100% - 28px)); }

/* O anuncio dentro do hero da área logada deve se comportar como card vertical.
   Isso evita quebra letra a letra quando o banner está em uma coluna estreita. */
.app-welcome-hero .home-hero-ad.sponsored-live,
.commercial-hero .home-hero-ad.sponsored-live {
    width: 100%;
    min-width: 0;
    height: 100%;
    margin: 0;
    grid-template-columns: 1fr;
    align-content: start;
    justify-items: stretch;
    gap: 14px;
}
.app-welcome-hero .home-hero-ad.sponsored-live .sponsored-media,
.commercial-hero .home-hero-ad.sponsored-live .sponsored-media { width:100%; min-height: 130px; }
.app-welcome-hero .home-hero-ad.sponsored-live .sponsored-media img,
.commercial-hero .home-hero-ad.sponsored-live .sponsored-media img { height: 150px; object-fit: cover; }
.app-welcome-hero .home-hero-ad.sponsored-live .sponsored-copy,
.commercial-hero .home-hero-ad.sponsored-live .sponsored-copy { min-width:0; width:100%; }
.app-welcome-hero .home-hero-ad.sponsored-live small,
.commercial-hero .home-hero-ad.sponsored-live small { word-break: normal; overflow-wrap: anywhere; line-height: 1.35; }
.app-welcome-hero .home-hero-ad.sponsored-live strong,
.commercial-hero .home-hero-ad.sponsored-live strong { word-break: normal; overflow-wrap: anywhere; }
.app-welcome-hero .home-hero-ad.sponsored-live .sponsored-cta,
.commercial-hero .home-hero-ad.sponsored-live .sponsored-cta { justify-self:start; width:auto; }

/* Banner superior da área restrita: proporção horizontal oficial. */
.restricted-top-ad .restricted-banner-ad.sponsored-live {
    width: min(1180px, 100%);
    margin: 0 auto;
    grid-template-columns: minmax(180px, 280px) minmax(0,1fr) auto;
}
.restricted-top-ad .restricted-banner-ad.sponsored-live .sponsored-media img { height: 86px; }

/* User pages that received the official header */
.profile-shell, .share-shell { padding-top: 18px; }
.share-shell .app-official-header, .profile-shell .app-official-header { margin-bottom: 0; }

@media (max-width: 980px) {
    .app-official-header .brand-area-logo,
    .pokedex-header .brand-area-logo { min-width: 0; }
    .app-official-header .brand-logo-img,
    .pokedex-header .brand-logo-img { width: 210px; }
    .restricted-top-ad .restricted-banner-ad.sponsored-live { grid-template-columns:1fr; }
    .restricted-top-ad .restricted-banner-ad.sponsored-live .sponsored-media img { height: 150px; }
}

@media (max-width: 680px) {
    .session-user-bar.official-session-menu { justify-content:flex-start; overflow-x:auto; padding-left:12px; padding-right:12px; }
    .app-official-header .brand-logo-img,
    .pokedex-header .brand-logo-img { width: 190px; }
}

/* V73 - Modais/Popups de anuncios com botão de fechar */
.ad-modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 9998;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(15, 23, 42, .36);
    backdrop-filter: blur(8px);
}
.ad-modal-card {
    position: relative;
    width: min(520px, 94vw);
    max-height: min(760px, 92vh);
    overflow: auto;
    border-radius: 30px;
    background: rgba(255,255,255,.98);
    border: 1px solid rgba(37, 99, 235, .16);
    box-shadow: 0 30px 90px rgba(15, 23, 42, .22);
}
.ad-modal-close {
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 2;
    width: 38px;
    height: 38px;
    border: 1px solid rgba(148, 163, 184, .35);
    border-radius: 999px;
    background: rgba(255,255,255,.92);
    color: #64748b;
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
}
.ad-modal-media {
    display: block;
    border-radius: 28px 28px 0 0;
    overflow: hidden;
    background: #f8fafc;
}
.ad-modal-media img {
    display: block;
    width: 100%;
    max-height: 260px;
    object-fit: cover;
}
.ad-modal-body {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 26px;
}
.ad-modal-body small {
    color: #ec4899;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .12em;
}
.ad-modal-body h3 {
    margin: 0;
    color: #111827;
    font-size: clamp(24px, 3vw, 34px);
    line-height: 1.08;
}
.ad-modal-body p {
    margin: 0;
    color: #667085;
    font-weight: 650;
    line-height: 1.55;
}
.ad-modal-cta {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 22px;
    border-radius: 999px;
    background: linear-gradient(135deg, #2563EB, #7C3AED);
    color: #fff !important;
    font-weight: 900;
    text-decoration: none;
    box-shadow: 0 14px 30px rgba(139, 92, 246, .25);
}
@media (max-width: 680px) {
    .ad-modal-backdrop { padding: 14px; align-items: flex-end; }
    .ad-modal-card { border-radius: 26px; width: 100%; max-height: 86vh; }
    .ad-modal-media img { max-height: 180px; }
    .ad-modal-body { padding: 22px; }
}


/* =========================================================
   V76 - Monetização: melhor aproveitamento de espaços laterais
   ========================================================= */
.restricted-top-ad-grid {
    width: min(1760px, calc(100% - 36px));
    max-width: none;
    display: grid;
    grid-template-columns: minmax(180px, 260px) minmax(560px, 1fr) minmax(180px, 260px);
    gap: 16px;
    align-items: stretch;
    margin-top: 16px;
}
.restricted-top-ad-grid .sponsored-card.sponsored-live { margin: 0; width: 100%; height: 100%; }
.restricted-top-center-slot .restricted-banner-ad.sponsored-live {
    width: 100%;
    min-height: 112px;
    grid-template-columns: minmax(180px, 300px) minmax(0,1fr) auto;
}
.restricted-top-side-slot:empty { display: block; }
.restricted-side-mini-ad.sponsored-live {
    grid-template-columns: 1fr !important;
    gap: 9px !important;
    padding: 13px !important;
    border-radius: 22px !important;
    min-height: 112px;
}
.restricted-side-mini-ad.sponsored-live .sponsored-media { min-height: 62px !important; border-radius: 15px !important; }
.restricted-side-mini-ad.sponsored-live .sponsored-media img { height: 72px !important; }
.restricted-side-mini-ad.sponsored-live small { font-size: 9px !important; letter-spacing: .10em !important; line-height: 1.25 !important; }
.restricted-side-mini-ad.sponsored-live strong { font-size: 13px !important; line-height: 1.2 !important; }
.restricted-side-mini-ad.sponsored-live span { display:none !important; }
.restricted-side-mini-ad.sponsored-live .sponsored-cta { min-height: 34px !important; padding: 0 12px !important; font-size: 12px !important; justify-self: start; width: auto; }

.ad-rail-layer { position: relative; z-index: 24; }
.ad-rail {
    position: fixed;
    top: 172px;
    width: 184px;
    display: grid;
    gap: 14px;
    z-index: 24;
    pointer-events: none;
}
.ad-rail-left { left: 18px; }
.ad-rail-right { right: 18px; }
.ad-rail .sponsored-card.sponsored-live {
    pointer-events: auto;
    width: 100%;
    margin: 0;
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 12px;
    border-radius: 22px;
    box-shadow: 0 18px 46px rgba(15,23,42,.10);
    background: rgba(255,255,255,.88);
    backdrop-filter: blur(14px);
}
.ad-rail .sponsored-media { min-height: 70px; border-radius: 15px; }
.ad-rail .sponsored-media img { height: 82px !important; object-fit: cover; }
.ad-rail .sponsored-copy { gap: 4px !important; }
.ad-rail small { font-size: 9px !important; letter-spacing: .10em !important; line-height: 1.25 !important; }
.ad-rail strong { font-size: 13px !important; line-height: 1.2 !important; }
.ad-rail span { font-size: 11px !important; line-height: 1.25 !important; display: -webkit-box !important; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ad-rail .sponsored-cta { min-height: 34px !important; width: 100%; padding: 0 10px !important; font-size: 12px !important; }

@media (max-width: 1540px) {
    .restricted-top-ad-grid { width: min(1420px, calc(100% - 32px)); grid-template-columns: minmax(0,1fr); }
    .restricted-top-side-slot { display: none; }
    .ad-rail { display: none; }
}
@media (max-width: 980px) {
    .restricted-top-center-slot .restricted-banner-ad.sponsored-live { grid-template-columns: 1fr; }
}

/* =========================================================
   V79 - Anuncios: grade visual oficial e deduplicação por tela
   ========================================================= */
.sponsored-card.sponsored-live,
.sponsored-card.sponsored-live * {
    box-sizing: border-box;
}
.sponsored-card.sponsored-live {
    overflow: hidden;
}
.sponsored-card.sponsored-live .sponsored-copy {
    overflow: hidden;
}
.sponsored-card.sponsored-live small,
.sponsored-card.sponsored-live strong,
.sponsored-card.sponsored-live span {
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: normal;
}
.sponsored-card.sponsored-live strong,
.sponsored-card.sponsored-live span {
    display: -webkit-box !important;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.sponsored-card.sponsored-live strong { -webkit-line-clamp: 2; }
.sponsored-card.sponsored-live span { -webkit-line-clamp: 2; }
.sponsored-card.sponsored-live .sponsored-cta {
    text-align: center;
    line-height: 1.1;
}

/* Topo da tela de colecao: os 3 espaços têm altura equilibrada. */
.restricted-top-ad-grid {
    align-items: stretch !important;
    grid-auto-rows: minmax(126px, auto);
}
.restricted-top-ad-grid > * {
    min-width: 0;
}
.restricted-top-ad-grid .sponsored-card.sponsored-live {
    min-height: 126px;
    max-height: 160px;
}
.restricted-top-center-slot .restricted-banner-ad.sponsored-live {
    min-height: 126px;
    max-height: 160px;
    padding: 18px 20px;
}
.restricted-top-center-slot .restricted-banner-ad.sponsored-live .sponsored-media img {
    height: 92px !important;
}
.restricted-top-center-slot .restricted-banner-ad.sponsored-live .sponsored-cta {
    min-width: 180px;
}
.restricted-side-mini-ad.sponsored-live {
    min-height: 126px !important;
    max-height: 160px !important;
}
.restricted-side-mini-ad.sponsored-live .sponsored-media img {
    height: 74px !important;
}
.restricted-side-mini-ad.sponsored-live .sponsored-copy {
    gap: 3px !important;
}
.restricted-side-mini-ad.sponsored-live small {
    min-height: 22px;
}
.restricted-side-mini-ad.sponsored-live .sponsored-cta {
    width: 100% !important;
    justify-self: stretch !important;
}

/* Laterais: cards compactos, alinhados e sem variação brusca de tamanho. */
.ad-rail {
    top: 168px;
    width: clamp(150px, 9.8vw, 190px);
    gap: 12px;
}
.ad-rail-left { left: clamp(10px, 1vw, 22px); }
.ad-rail-right { right: clamp(10px, 1vw, 22px); }
.ad-rail .sponsored-card.sponsored-live {
    min-height: 152px;
    max-height: 184px;
    padding: 12px !important;
}
.ad-rail .sponsored-media {
    min-height: 62px !important;
}
.ad-rail .sponsored-media img {
    height: 70px !important;
}
.ad-rail .sponsored-copy {
    min-height: 50px;
}
.ad-rail small {
    min-height: 20px;
}
.ad-rail strong {
    -webkit-line-clamp: 2;
}
.ad-rail span {
    -webkit-line-clamp: 2;
}
.ad-rail .sponsored-cta {
    margin-top: auto;
}

/* Home: o anuncio dentro do hero mantém proporção de card premium. */
.app-welcome-hero .home-hero-ad.sponsored-live,
.commercial-hero .home-hero-ad.sponsored-live {
    min-height: 286px;
    max-height: 320px;
    align-content: start;
}
.app-welcome-hero .home-hero-ad.sponsored-live .sponsored-media img,
.commercial-hero .home-hero-ad.sponsored-live .sponsored-media img {
    height: 118px !important;
}
.app-welcome-hero .home-hero-ad.sponsored-live .sponsored-cta,
.commercial-hero .home-hero-ad.sponsored-live .sponsored-cta {
    width: auto !important;
    min-width: 122px;
}

@media (min-width: 1541px) and (max-width: 1820px) {
    .restricted-top-ad-grid {
        grid-template-columns: minmax(170px, 230px) minmax(520px, 1fr) minmax(170px, 230px);
        gap: 14px;
    }
    .restricted-top-center-slot .restricted-banner-ad.sponsored-live {
        grid-template-columns: minmax(160px, 230px) minmax(0,1fr) minmax(150px, auto);
    }
}

@media (max-width: 1540px) {
    .restricted-top-ad-grid .sponsored-card.sponsored-live,
    .restricted-top-center-slot .restricted-banner-ad.sponsored-live,
    .restricted-side-mini-ad.sponsored-live {
        max-height: none !important;
    }
}

@media (max-width: 980px) {
    .restricted-top-center-slot .restricted-banner-ad.sponsored-live .sponsored-cta {
        min-width: 0;
        width: 100%;
    }
    .app-welcome-hero .home-hero-ad.sponsored-live,
    .commercial-hero .home-hero-ad.sponsored-live {
        min-height: 0;
        max-height: none;
    }
}

/* =========================================================
   V80 - Anuncios premium: sem repetição visual e cards alinhados
   ========================================================= */
.restricted-top-ad-grid {
    width: min(1760px, calc(100% - 80px));
    margin: 16px auto 20px;
    grid-template-columns: minmax(220px, 300px) minmax(680px, 1fr) minmax(220px, 300px);
    gap: 22px;
    align-items: stretch;
}
.restricted-top-ad-grid > *:empty {
    display: none !important;
}
.restricted-top-ad-grid:has(.restricted-top-side-left:empty):has(.restricted-top-side-right:empty) {
    grid-template-columns: minmax(680px, 1fr);
    width: min(1260px, calc(100% - 80px));
}
.restricted-top-ad-grid:has(.restricted-top-side-left:empty) {
    grid-template-columns: minmax(680px, 1fr) minmax(220px, 300px);
}
.restricted-top-ad-grid:has(.restricted-top-side-right:empty) {
    grid-template-columns: minmax(220px, 300px) minmax(680px, 1fr);
}
.restricted-top-ad-grid .sponsored-card.sponsored-live {
    min-height: 138px !important;
    max-height: 138px !important;
    height: 138px !important;
    border-radius: 24px !important;
    background: rgba(255,255,255,.92) !important;
    box-shadow: 0 18px 46px rgba(15,23,42,.09) !important;
}
.restricted-top-center-slot .restricted-banner-ad.sponsored-live {
    grid-template-columns: minmax(0, 260px) minmax(0,1fr) minmax(180px, 360px) !important;
    padding: 18px 22px !important;
}
.restricted-top-center-slot .restricted-banner-ad.sponsored-live .sponsored-media {
    min-height: 92px !important;
}
.restricted-top-center-slot .restricted-banner-ad.sponsored-live .sponsored-media img {
    height: 92px !important;
}
.restricted-top-center-slot .restricted-banner-ad.sponsored-live .sponsored-copy {
    justify-content: center;
}
.restricted-top-center-slot .restricted-banner-ad.sponsored-live .sponsored-cta {
    min-height: 42px !important;
    width: 100% !important;
    justify-self: stretch !important;
}
.restricted-side-mini-ad.sponsored-live {
    display: grid !important;
    grid-template-rows: 58px 1fr 34px !important;
    gap: 8px !important;
    padding: 12px !important;
    min-height: 138px !important;
    max-height: 138px !important;
    height: 138px !important;
}
.restricted-side-mini-ad.sponsored-live .sponsored-media {
    min-height: 0 !important;
    height: 58px !important;
    border-radius: 15px !important;
}
.restricted-side-mini-ad.sponsored-live .sponsored-media img {
    height: 58px !important;
    object-fit: cover !important;
}
.restricted-side-mini-ad.sponsored-live .sponsored-copy {
    min-height: 0 !important;
    gap: 2px !important;
    justify-content: start !important;
}
.restricted-side-mini-ad.sponsored-live small {
    min-height: 0 !important;
    font-size: 8.5px !important;
    line-height: 1.1 !important;
    letter-spacing: .08em !important;
    -webkit-line-clamp: 1 !important;
}
.restricted-side-mini-ad.sponsored-live strong {
    font-size: 12px !important;
    line-height: 1.1 !important;
    -webkit-line-clamp: 1 !important;
}
.restricted-side-mini-ad.sponsored-live span {
    display: none !important;
}
.restricted-side-mini-ad.sponsored-live .sponsored-cta {
    min-height: 32px !important;
    height: 32px !important;
    width: 100% !important;
    padding: 0 10px !important;
    font-size: 11px !important;
    margin-top: 0 !important;
}
.ad-rail {
    top: 174px !important;
    width: clamp(158px, 9.2vw, 184px) !important;
    gap: 14px !important;
}
.ad-rail .sponsored-card.sponsored-live {
    display: grid !important;
    grid-template-rows: 62px 1fr 34px !important;
    min-height: 166px !important;
    max-height: 166px !important;
    height: 166px !important;
    gap: 8px !important;
    padding: 12px !important;
    border-radius: 22px !important;
}
.ad-rail .sponsored-media {
    min-height: 0 !important;
    height: 62px !important;
    border-radius: 15px !important;
}
.ad-rail .sponsored-media img {
    height: 62px !important;
    object-fit: cover !important;
}
.ad-rail .sponsored-copy {
    min-height: 0 !important;
    gap: 3px !important;
}
.ad-rail small {
    min-height: 0 !important;
    font-size: 8.5px !important;
    line-height: 1.1 !important;
    letter-spacing: .08em !important;
    -webkit-line-clamp: 1 !important;
}
.ad-rail strong {
    font-size: 12px !important;
    line-height: 1.1 !important;
    -webkit-line-clamp: 1 !important;
}
.ad-rail span {
    font-size: 10.5px !important;
    line-height: 1.2 !important;
    -webkit-line-clamp: 2 !important;
}
.ad-rail .sponsored-cta {
    min-height: 32px !important;
    height: 32px !important;
    font-size: 11px !important;
    padding: 0 10px !important;
}
@media (max-width: 1540px) {
    .restricted-top-ad-grid {
        width: min(1180px, calc(100% - 32px));
        grid-template-columns: 1fr !important;
    }
    .restricted-top-side-slot {
        display: none !important;
    }
}
@media (max-width: 980px) {
    .restricted-top-ad-grid {
        width: calc(100% - 24px);
        margin-top: 12px;
    }
    .restricted-top-ad-grid .sponsored-card.sponsored-live,
    .restricted-top-center-slot .restricted-banner-ad.sponsored-live {
        height: auto !important;
        max-height: none !important;
        min-height: 0 !important;
        grid-template-columns: 1fr !important;
    }
}


/* =========================================================
   V81 - Alinhamento dos anuncios superiores com as 3 colunas reais
   =========================================================
   Objetivo: os 3 anuncios do topo da tela de colecoes devem ficar
   exatamente acima das mesmas colunas do layout principal:
   esquerda = Minhas Colecoes, centro = conteúdo da colecao,
   direita = Card selecionado.
*/
.restricted-top-ad-grid {
    width: auto !important;
    margin: 16px clamp(16px, 2vw, 28px) 20px !important;
    display: grid !important;
    grid-template-columns: 300px minmax(0, 1fr) 380px !important;
    gap: 22px !important;
    align-items: stretch !important;
}
.restricted-top-side-slot,
.restricted-top-center-slot {
    min-width: 0 !important;
    display: block !important;
}
.restricted-top-ad-grid > *:empty {
    display: block !important;
    visibility: hidden !important;
    min-height: 0 !important;
}
.restricted-top-ad-grid:has(.restricted-top-side-left:empty),
.restricted-top-ad-grid:has(.restricted-top-side-right:empty),
.restricted-top-ad-grid:has(.restricted-top-side-left:empty):has(.restricted-top-side-right:empty) {
    width: auto !important;
    grid-template-columns: 300px minmax(0, 1fr) 380px !important;
}
.restricted-top-ad-grid .sponsored-card.sponsored-live {
    width: 100% !important;
    margin: 0 !important;
    min-height: 136px !important;
    height: 136px !important;
    max-height: 136px !important;
    align-self: stretch !important;
}
.restricted-top-side-slot .restricted-side-mini-ad.sponsored-live {
    grid-template-rows: 58px 1fr 32px !important;
    padding: 12px !important;
}
.restricted-top-center-slot .restricted-banner-ad.sponsored-live {
    grid-template-columns: minmax(180px, 300px) minmax(0, 1fr) minmax(190px, 360px) !important;
    padding: 18px 22px !important;
}
.restricted-top-center-slot .restricted-banner-ad.sponsored-live .sponsored-copy {
    justify-content: center !important;
    min-width: 0 !important;
}
.restricted-top-center-slot .restricted-banner-ad.sponsored-live .sponsored-cta {
    width: 100% !important;
    max-width: 360px !important;
    justify-self: end !important;
}
body.ads-sidebar-collapsed .restricted-top-ad-grid {
    grid-template-columns: 0 minmax(0, 1fr) 380px !important;
    gap: 18px !important;
}
body.ads-sidebar-collapsed .restricted-top-side-left {
    display: none !important;
}
body.ads-sidebar-collapsed .restricted-top-ad-grid:has(.restricted-top-side-left:empty),
body.ads-sidebar-collapsed .restricted-top-ad-grid:has(.restricted-top-side-right:empty),
body.ads-sidebar-collapsed .restricted-top-ad-grid:has(.restricted-top-side-left:empty):has(.restricted-top-side-right:empty) {
    grid-template-columns: 0 minmax(0, 1fr) 380px !important;
}
@media (max-width: 1540px) {
    .restricted-top-ad-grid {
        width: min(1180px, calc(100% - 32px)) !important;
        margin: 12px auto 18px !important;
        grid-template-columns: 1fr !important;
        gap: 14px !important;
    }
    .restricted-top-side-slot {
        display: none !important;
    }
    .restricted-top-center-slot {
        display: block !important;
    }
    .restricted-top-ad-grid:has(.restricted-top-side-left:empty),
    .restricted-top-ad-grid:has(.restricted-top-side-right:empty),
    .restricted-top-ad-grid:has(.restricted-top-side-left:empty):has(.restricted-top-side-right:empty),
    body.ads-sidebar-collapsed .restricted-top-ad-grid,
    body.ads-sidebar-collapsed .restricted-top-ad-grid:has(.restricted-top-side-left:empty),
    body.ads-sidebar-collapsed .restricted-top-ad-grid:has(.restricted-top-side-right:empty),
    body.ads-sidebar-collapsed .restricted-top-ad-grid:has(.restricted-top-side-left:empty):has(.restricted-top-side-right:empty) {
        grid-template-columns: 1fr !important;
    }
}
@media (max-width: 980px) {
    .restricted-top-ad-grid {
        width: calc(100% - 24px) !important;
        margin: 12px auto 16px !important;
    }
    .restricted-top-center-slot .restricted-banner-ad.sponsored-live {
        grid-template-columns: 1fr !important;
    }
}

/* V83 - Garantia visual para filtros Tenho/Faltam/Repetidos da index */
.tcg-card.is-filter-hidden-v83,
.tcg-card.is-filter-hidden-v78 {
    display: none !important;
}
.filter-empty-message-v83,
.filter-empty-message-v78 {
    grid-column: 1 / -1;
}

/* =========================================================
   V85 - Mobile-first foundation
   Objetivo: consolidar a experiência mobile sem alterar o desktop.
   Mantém PHP/backend atuais e estabiliza header, filtros, cards,
   drawer de colecoes, detalhe da carta e navegação inferior.
   ========================================================= */
@media (max-width: 768px) {
    :root {
        --mobile-nav-height-v85: 76px;
        --mobile-header-height-v85: 62px;
        --mobile-gap-v85: 10px;
        --mobile-safe-bottom-v85: env(safe-area-inset-bottom, 0px);
    }

    html {
        width: 100%;
        overflow-x: hidden !important;
        background: #fff7f4;
    }

    body {
        width: 100%;
        min-width: 0 !important;
        overflow-x: hidden !important;
        padding: 0 0 calc(var(--mobile-nav-height-v85) + var(--mobile-safe-bottom-v85) + 10px) !important;
        background:
            radial-gradient(circle at 16% -4%, rgba(34, 211, 238, .18), transparent 30%),
            radial-gradient(circle at 92% 4%, rgba(37, 99, 235, .13), transparent 28%),
            linear-gradient(180deg, #fff9f5 0%, #fff7fb 48%, #f9fbff 100%) !important;
        -webkit-tap-highlight-color: rgba(37, 99, 235, .14);
    }

    body.mobile-sidebar-open,
    body.mobile-filters-open,
    body.mobile-more-open,
    body.detail-panel-mobile-open {
        overflow: hidden !important;
        touch-action: none !important;
    }

    .pokedex-shell {
        width: 100% !important;
        max-width: 100% !important;
        min-height: 100dvh !important;
        padding: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    .mobile-app-header-v6 {
        display: block !important;
        position: sticky !important;
        top: 0 !important;
        z-index: 1200 !important;
        padding: 8px 10px !important;
        background: rgba(255, 255, 255, .94) !important;
        border-bottom: 1px solid rgba(226, 232, 240, .92) !important;
        box-shadow: 0 10px 28px rgba(15, 23, 42, .08) !important;
        backdrop-filter: blur(18px) !important;
        -webkit-backdrop-filter: blur(18px) !important;
    }

    .mobile-app-topline-v6 {
        grid-template-columns: 44px minmax(0, 1fr) 44px 44px !important;
        gap: 8px !important;
        min-height: 46px !important;
    }

    .mobile-icon-btn-v6 {
        width: 44px !important;
        height: 44px !important;
        border-radius: 16px !important;
        font-size: 18px !important;
        touch-action: manipulation;
    }

    .mobile-brand-v6 img {
        max-width: min(188px, 50vw) !important;
        max-height: 42px !important;
    }

    .mobile-search-panel-v6 {
        overflow: hidden !important;
    }

    .mobile-search-panel-v6 input {
        height: 44px !important;
        font-size: 15px !important;
    }

    .pokedex-header,
    .session-user-bar,
    .toggle-sidebar-btn,
    .mobile-sidebar-btn,
    .restricted-top-side-slot {
        display: none !important;
    }

    .restricted-top-ad-grid {
        width: calc(100% - 20px) !important;
        margin: 10px auto 10px !important;
        grid-template-columns: 1fr !important;
        gap: 0 !important;
    }

    .restricted-top-center-slot .restricted-banner-ad.sponsored-live,
    .restricted-top-ad-grid .sponsored-card.sponsored-live {
        min-height: 96px !important;
        height: auto !important;
        max-height: none !important;
        padding: 12px !important;
        border-radius: 18px !important;
        grid-template-columns: 76px minmax(0, 1fr) !important;
        gap: 10px !important;
    }

    .restricted-top-center-slot .sponsored-cta {
        grid-column: 1 / -1 !important;
        justify-self: stretch !important;
        width: 100% !important;
        min-height: 36px !important;
    }

    .pokedex-layout {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        padding: 8px 10px 0 !important;
        margin: 0 !important;
        overflow: visible !important;
        min-height: 0 !important;
    }

    .content {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        padding: 0 !important;
        overflow: visible !important;
    }

    .stats-card {
        display: none !important;
    }

    .mobile-summary-v6 {
        display: block !important;
        margin: 4px 0 10px !important;
        padding: 12px !important;
        border-radius: 22px !important;
        background: rgba(255, 255, 255, .95) !important;
        border: 1px solid rgba(226, 232, 240, .92) !important;
        box-shadow: 0 14px 32px rgba(15, 23, 42, .07) !important;
    }

    .mobile-summary-main-v6 strong {
        font-size: 16px !important;
        max-width: 100% !important;
    }

    .mobile-summary-pct-v6 {
        min-width: 62px !important;
        height: 44px !important;
        border-radius: 16px !important;
        background: linear-gradient(135deg, var(--theme-gradient-start), var(--theme-gradient-end)) !important;
    }

    .mobile-summary-mini-v6 {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 7px !important;
    }

    .mobile-summary-mini-v6 span {
        padding: 8px 5px !important;
        min-width: 0 !important;
    }

    .mobile-summary-details-v6 {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    /* Drawer de colecoes */
    #pokedexSidebar.sidebar {
        position: fixed !important;
        inset: 0 auto 0 0 !important;
        width: min(88vw, 360px) !important;
        height: 100dvh !important;
        max-height: 100dvh !important;
        padding: 16px 12px calc(22px + var(--mobile-safe-bottom-v85)) !important;
        border-radius: 0 24px 24px 0 !important;
        background: rgba(255, 255, 255, .99) !important;
        box-shadow: 22px 0 70px rgba(15, 23, 42, .22) !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch !important;
        overscroll-behavior: contain !important;
        z-index: 1300 !important;
        transform: translate3d(-108%, 0, 0) !important;
        opacity: 1 !important;
        visibility: hidden !important;
        pointer-events: none !important;
        transition: transform .24s ease, visibility .24s ease !important;
    }

    body.mobile-sidebar-open #pokedexSidebar.sidebar {
        transform: translate3d(0, 0, 0) !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }

    .sidebar-close-mobile {
        display: grid !important;
        place-items: center !important;
        position: sticky !important;
        top: 0 !important;
        margin-left: auto !important;
        width: 42px !important;
        height: 42px !important;
        border-radius: 50% !important;
        z-index: 2 !important;
        background: #fff !important;
        box-shadow: 0 10px 22px rgba(15, 23, 42, .12) !important;
    }

    .collection-item {
        min-height: 70px !important;
        padding: 10px !important;
        border-radius: 18px !important;
        grid-template-columns: 46px minmax(0, 1fr) auto !important;
    }

    .collection-info strong {
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }

    .album-box,
    .sidebar-deco,
    .professor-tip {
        display: none !important;
    }

    /* Bottom sheet de filtros */
    #mobileFiltersPanel.toolbar {
        position: fixed !important;
        left: 10px !important;
        right: 10px !important;
        bottom: calc(var(--mobile-nav-height-v85) + var(--mobile-safe-bottom-v85) + 8px) !important;
        width: auto !important;
        max-height: min(68dvh, 520px) !important;
        padding: 14px !important;
        z-index: 1320 !important;
        border-radius: 26px !important;
        background: rgba(255, 255, 255, .99) !important;
        border: 1px solid rgba(226, 232, 240, .95) !important;
        box-shadow: 0 -20px 70px rgba(15, 23, 42, .22) !important;
        overflow-y: auto !important;
        overscroll-behavior: contain !important;
        transform: translate3d(0, calc(100% + 160px), 0) !important;
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
        transition: transform .24s ease, opacity .18s ease, visibility .24s ease !important;
    }

    body.mobile-filters-open #mobileFiltersPanel.toolbar {
        transform: translate3d(0, 0, 0) !important;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }

    .filter-chips {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
        width: 100% !important;
        overflow: visible !important;
    }

    .filter-chips .chip,
    .sort-select {
        min-height: 44px !important;
        height: 44px !important;
        width: 100% !important;
        justify-content: center !important;
        border-radius: 15px !important;
        font-size: 13px !important;
    }

    .mobile-view-toggle {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 8px !important;
    }

    .mobile-view-toggle button {
        min-height: 42px !important;
        border-radius: 999px !important;
    }

    /* Backdrop único para drawer/filtros/mais */
    body.mobile-sidebar-open::after,
    body.mobile-filters-open::after,
    body.mobile-more-open::after {
        content: '' !important;
        display: block !important;
        position: fixed !important;
        inset: 0 !important;
        z-index: 1250 !important;
        background: rgba(15, 23, 42, .38) !important;
        backdrop-filter: blur(3px) !important;
        -webkit-backdrop-filter: blur(3px) !important;
        pointer-events: auto !important;
    }

    body.mobile-filters-open::after,
    body.mobile-more-open::after {
        z-index: 1260 !important;
    }

    body.mobile-sidebar-open .mobile-app-header-v6,
    body.mobile-filters-open .mobile-app-header-v6,
    body.mobile-more-open .mobile-app-header-v6 {
        z-index: 1200 !important;
    }

    body.mobile-sidebar-open #pokedexSidebar.sidebar,
    body.mobile-filters-open #mobileFiltersPanel.toolbar,
    body.mobile-more-open .mobile-more-sheet-v6 {
        position: fixed !important;
    }

    /* Lista de cartas: padrão mobile-first */
    #cardGrid.card-grid {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 10px !important;
        width: 100% !important;
        max-width: 100% !important;
        min-height: 0 !important;
        max-height: none !important;
        overflow: visible !important;
        padding: 0 0 calc(var(--mobile-nav-height-v85) + var(--mobile-safe-bottom-v85) + 18px) !important;
    }

    #cardGrid.card-grid .tcg-card {
        width: 100% !important;
        min-width: 0 !important;
        min-height: 0 !important;
        display: grid !important;
        grid-template-columns: 76px minmax(0, 1fr) !important;
        grid-template-areas:
            'img meta'
            'img status'
            'actions actions' !important;
        gap: 8px 10px !important;
        padding: 10px !important;
        border-radius: 20px !important;
        background: rgba(255, 255, 255, .96) !important;
        box-shadow: 0 12px 32px rgba(15, 23, 42, .07) !important;
        touch-action: manipulation;
    }

    #cardGrid.card-grid .card-image {
        grid-area: img !important;
        width: 76px !important;
        height: 106px !important;
        min-height: 106px !important;
        margin: 0 !important;
        border-radius: 14px !important;
    }

    #cardGrid.card-grid .card-image img {
        width: 100% !important;
        height: 100% !important;
        max-height: none !important;
        object-fit: contain !important;
    }

    #cardGrid.card-grid .card-meta {
        grid-area: meta !important;
        min-width: 0 !important;
        padding: 0 !important;
        align-self: start !important;
    }

    #cardGrid.card-grid .card-meta strong {
        font-size: 14px !important;
        line-height: 1.2 !important;
        display: -webkit-box !important;
        -webkit-line-clamp: 2 !important;
        -webkit-box-orient: vertical !important;
        white-space: normal !important;
        overflow: hidden !important;
    }

    #cardGrid.card-grid .card-meta span,
    #cardGrid.card-grid .card-meta small {
        font-size: 11.5px !important;
        line-height: 1.25 !important;
    }

    #cardGrid.card-grid .status-pill {
        grid-area: status !important;
        min-height: 32px !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 10px !important;
        justify-content: center !important;
        border-radius: 999px !important;
        font-size: 12px !important;
    }

    #cardGrid.card-grid .quick-actions {
        grid-area: actions !important;
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 8px !important;
        width: 100% !important;
        margin: 0 !important;
    }

    #cardGrid.card-grid .quick-btn {
        min-height: 38px !important;
        height: 38px !important;
        border-radius: 14px !important;
        font-size: 12px !important;
    }

    #cardGrid.card-grid.mobile-view-album {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
    }

    #cardGrid.card-grid.mobile-view-album .tcg-card {
        display: block !important;
        padding: 8px !important;
    }

    #cardGrid.card-grid.mobile-view-album .card-image {
        width: 100% !important;
        height: 136px !important;
        min-height: 136px !important;
    }

    #cardGrid.card-grid.mobile-view-album .card-meta {
        margin-top: 7px !important;
    }

    #cardGrid.card-grid.mobile-view-album .card-meta strong {
        font-size: 12px !important;
        -webkit-line-clamp: 1 !important;
    }

    #cardGrid.card-grid.mobile-view-album .status-pill,
    #cardGrid.card-grid.mobile-view-album .quick-actions {
        margin-top: 7px !important;
    }

    #cardGrid.card-grid.mobile-view-album .quick-actions {
        gap: 5px !important;
    }

    #cardGrid.card-grid.mobile-view-album .quick-btn {
        min-height: 32px !important;
        height: 32px !important;
        font-size: 11px !important;
    }

    /* Painel de detalhe como tela mobile dedicada */
    #detailPanel.detail-panel {
        position: fixed !important;
        inset: 0 !important;
        width: 100% !important;
        max-width: none !important;
        height: 100dvh !important;
        max-height: 100dvh !important;
        z-index: 1400 !important;
        padding: 12px 10px calc(20px + var(--mobile-safe-bottom-v85)) !important;
        border-radius: 0 !important;
        background: #fffaf7 !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch !important;
        overscroll-behavior: contain !important;
        transform: translate3d(100%, 0, 0) !important;
        opacity: 1 !important;
        visibility: hidden !important;
        pointer-events: none !important;
        transition: transform .24s ease, visibility .24s ease !important;
    }

    #detailPanel.detail-panel.detail-open-mobile {
        transform: translate3d(0, 0, 0) !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }

    .detail-header {
        position: sticky !important;
        top: 0 !important;
        z-index: 2 !important;
        margin: -12px -10px 12px !important;
        padding: 10px !important;
        background: rgba(255, 255, 255, .96) !important;
        border-bottom: 1px solid rgba(226, 232, 240, .9) !important;
        backdrop-filter: blur(16px) !important;
        -webkit-backdrop-filter: blur(16px) !important;
    }

    .selected-card-preview {
        min-height: 0 !important;
        padding: 12px !important;
        border-radius: 22px !important;
    }

    .selected-card-preview img {
        max-height: 54dvh !important;
        object-fit: contain !important;
    }

    .variation-panel,
    .detail-card-title,
    .detail-form,
    .price-manual-box {
        border-radius: 20px !important;
    }

    .variation-row-header,
    .variation-actions-row,
    .price-input-grid,
    .variation-create-grid {
        grid-template-columns: 1fr !important;
    }

    .mobile-more-backdrop-v6 {
        display: none !important;
    }

    .mobile-more-sheet-v6 {
        left: 10px !important;
        right: 10px !important;
        bottom: calc(var(--mobile-nav-height-v85) + var(--mobile-safe-bottom-v85) + 8px) !important;
        z-index: 1320 !important;
        border-radius: 26px !important;
        transform: translate3d(0, calc(100% + 160px), 0) !important;
    }

    body.mobile-more-open .mobile-more-sheet-v6 {
        display: block !important;
        transform: translate3d(0, 0, 0) !important;
    }

    .mobile-bottom-nav-v6 {
        display: grid !important;
        position: fixed !important;
        left: 10px !important;
        right: 10px !important;
        bottom: calc(8px + var(--mobile-safe-bottom-v85)) !important;
        z-index: 1500 !important;
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 6px !important;
        padding: 8px !important;
        border-radius: 24px !important;
        background: rgba(255, 255, 255, .96) !important;
        border: 1px solid rgba(226, 232, 240, .92) !important;
        box-shadow: 0 18px 50px rgba(15, 23, 42, .18) !important;
        backdrop-filter: blur(18px) !important;
        -webkit-backdrop-filter: blur(18px) !important;
    }

    .mobile-bottom-nav-v6 button {
        height: 50px !important;
        min-width: 0 !important;
        border-radius: 17px !important;
        touch-action: manipulation;
    }

    .mobile-bottom-nav-v6 button.is-active {
        color: #2563EB !important;
        background: rgba(37, 99, 235, .12) !important;
    }

    body.detail-panel-mobile-open .mobile-bottom-nav-v6 {
        display: none !important;
    }

    .binder-float-btn {
        right: 14px !important;
        bottom: calc(var(--mobile-nav-height-v85) + var(--mobile-safe-bottom-v85) + 14px) !important;
        z-index: 1100 !important;
    }

    body.mobile-sidebar-open .binder-float-btn,
    body.mobile-filters-open .binder-float-btn,
    body.mobile-more-open .binder-float-btn,
    body.detail-panel-mobile-open .binder-float-btn {
        display: none !important;
    }
}

@media (max-width: 390px) {
    .mobile-brand-v6 img {
        max-width: 150px !important;
    }

    .mobile-app-topline-v6 {
        grid-template-columns: 40px minmax(0, 1fr) 40px 40px !important;
        gap: 6px !important;
    }

    .mobile-icon-btn-v6 {
        width: 40px !important;
        height: 40px !important;
    }

    .mobile-summary-mini-v6 {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .mobile-summary-mini-v6 span:last-child {
        grid-column: 1 / -1 !important;
    }

    #cardGrid.card-grid.mobile-view-album {
        grid-template-columns: 1fr 1fr !important;
        gap: 8px !important;
    }

    #cardGrid.card-grid.mobile-view-album .card-image {
        height: 124px !important;
        min-height: 124px !important;
    }
}

/* V87 final override - neutral product identity wins over legacy themed blocks. */
html,
body,
.pokedex-shell,
a,
button,
.tcg-card,
.collection-item,
.chip,
.quick-btn,
.variation-action-btn,
.btn-config-collection,
.btn-add-collection,
.btn-price,
.btn-save-card,
.btn-save-price,
.catalog-sync-link,
.btn-add-user-collection,
.btn-open-catalog,
.set-result-actions button,
.btn-catalog-sync,
.btn-modal-cancel,
.btn-modal-save,
.btn-delete-collection,
.binder-float-btn {
    cursor: auto !important;
}
input,
select,
textarea {
    cursor: text !important;
}
.brand-login-orb,
.brand-orb-mini {
    display: none !important;
}
.binder-float-btn,
.binder-float-btn {
    width: 56px !important;
    height: 56px !important;
    right: 18px !important;
    bottom: 18px !important;
    border-radius: 18px !important;
    background: linear-gradient(135deg,#2563EB,#7C3AED) !important;
    box-shadow: 0 14px 34px rgba(139,92,246,.24) !important;
}
.binder-float-btn img,
.binder-float-btn img {
    display: none !important;
}
.binder-float-btn::before,
.binder-float-btn::before {
    content: "^";
    color: #fff;
    font-size: 28px;
    font-weight: 900;
    line-height: 1;
}
.binder-float-btn::after,
.binder-float-btn::after {
    display: none !important;
}

/* V100.3 - actual EOF pre-beta guard. Keep this block last. */
html,
body,
body.admin-page,
body.brand-neutral-page,
body.commercial-home-page,
body.user-dash-page {
    background:
        radial-gradient(circle at 10% 8%, color-mix(in srgb, var(--cf-secondary, #22D3EE) 16%, transparent), transparent 32%),
        radial-gradient(circle at 92% 12%, color-mix(in srgb, var(--cf-primary, #2563EB) 12%, transparent), transparent 34%),
        linear-gradient(135deg, color-mix(in srgb, var(--cf-bg, #F3F6FA) 90%, #fff 10%), color-mix(in srgb, var(--cf-surface, #FFFFFF) 74%, var(--cf-bg, #F3F6FA) 26%)) !important;
    color: var(--cf-text, #101827) !important;
    overflow-x: hidden;
}

.admin-page .admin-card,
.admin-page .admin-hero,
.admin-page .admin-content section,
.admin-page .admin-menu,
.admin-page .admin-official-topbar,
.admin-users-page .admin-card,
.admin-users-page .kpi-box,
.admin-users-page .form-panel,
.admin-users-page .table-wrap,
.ticket-card,
.admin-ticket-card,
.ticket-item,
.ticket-kpi,
.share-status-box,
.wishlist-card,
.profile-shell .box,
.catalog-card,
.catalog-collection-item,
.all-cards-panel,
.all-card-item,
.public-card,
.legal-card,
.commercial-home-header,
.pokedex-header,
.session-user-bar,
.mobile-app-header-v6,
.mobile-bottom-nav-v6,
.mobile-more-sheet-v6,
#mobileFiltersPanel.toolbar {
    background: var(--cf-card-bg, rgba(255,255,255,.93)) !important;
    color: var(--cf-text, #101827) !important;
    border-color: color-mix(in srgb, var(--cf-border, #E5E7EB) 84%, transparent) !important;
    box-shadow: var(--cf-shadow, 0 22px 60px rgba(15, 23, 42, .10)) !important;
}

.admin-page h1,
.admin-page h2,
.admin-page h3,
.admin-page strong,
.admin-page .admin-brand strong,
.admin-page .admin-menu a,
.admin-users-page .users-table td,
.ticket-card h1,
.ticket-card h2,
.admin-ticket-card h1,
.admin-ticket-card h2,
.ticket-title strong,
.cf-page-title,
.catalog-card h2,
.all-cards-title h2,
.profile-shell h1,
.profile-shell h2,
.wishlist-title strong,
.public-card h1,
.public-card h2 {
    color: var(--cf-text, #101827) !important;
    text-shadow: none !important;
}

.admin-page p,
.admin-page small,
.admin-page .admin-title-row p,
.admin-page .admin-section-title span,
.admin-users-page .muted,
.ticket-card p,
.admin-ticket-card p,
.ticket-title small,
.ticket-meta,
.cf-page-subtitle,
.catalog-card p,
.all-cards-title p,
.profile-shell .muted,
.public-card .muted {
    color: var(--cf-muted, #7B8190) !important;
}

.admin-page input,
.admin-page select,
.admin-page textarea,
.ticket-form input,
.ticket-form select,
.ticket-form textarea,
.ticket-filter select,
.ticket-filter input,
.admin-filter input,
.admin-filter select,
.filters-form input,
.filters-form select,
.all-filters input,
.all-filters select,
.search-area input,
.public-search input,
#mobileSearchCard {
    background: var(--cf-surface, #FFFFFF) !important;
    color: var(--cf-text, #101827) !important;
    border: 1px solid color-mix(in srgb, var(--cf-border, #E5E7EB) 88%, transparent) !important;
    box-shadow: none !important;
}

.admin-page .admin-cta,
.admin-page .btn-gradient,
.admin-page .btn-primary,
.admin-page button[type="submit"],
.ticket-form button,
.ticket-filter button,
.admin-filter button,
.filters-form button,
.commercial-home-cta,
.ad-preview-cta,
.sponsored-cta,
.btn-save-card,
.btn-save-price,
.profile-shell .btn:not(.btn-soft),
.wishlist-actions .admin-cta,
.public-filters .active,
.copy {
    background: linear-gradient(135deg, var(--cf-primary, #2563EB), var(--cf-secondary, #22D3EE)) !important;
    color: #fff !important;
    border-color: transparent !important;
}

.admin-secondary-link,
.admin-page .mini-btn,
.commercial-secondary,
.app-back-link,
.chip,
.filterbar button,
.profile-shell .btn-soft,
.public-filters a {
    background: var(--cf-surface, #FFFFFF) !important;
    color: var(--cf-text, #101827) !important;
    border-color: color-mix(in srgb, var(--cf-border, #E5E7EB) 85%, transparent) !important;
}

.chip.active,
.filterbar button.active,
.admin-page .admin-menu a.active,
.admin-page .admin-menu a:hover,
.admin-official-nav a.active,
.admin-official-nav a:hover,
.official-session-menu a.active,
.session-user-bar a.active,
.mobile-bottom-nav-v6 button.is-active {
    background: var(--cf-soft-primary, rgba(37,99,235,.12)) !important;
    color: var(--cf-primary, #2563EB) !important;
}

.binder-float-btn,
.binder-float-btn {
    background: linear-gradient(135deg, var(--cf-primary, #2563EB), var(--cf-secondary, #22D3EE)) !important;
    box-shadow: 0 14px 34px color-mix(in srgb, var(--cf-primary, #2563EB) 24%, transparent) !important;
}

@media (max-width: 980px) {
    #mobileFiltersPanel.toolbar {
        display: block !important;
        position: fixed !important;
        left: 10px !important;
        right: 10px !important;
        bottom: calc(var(--mobile-nav-height-v85, 68px) + env(safe-area-inset-bottom, 0px) + 10px) !important;
        z-index: 1700 !important;
        max-height: min(72dvh, 560px) !important;
        overflow: auto !important;
        transform: translate3d(0, calc(100% + 120px), 0) !important;
        opacity: 0 !important;
        pointer-events: none !important;
        border-radius: 26px !important;
        transition: transform .22s ease, opacity .18s ease !important;
    }

    body.mobile-filters-open #mobileFiltersPanel.toolbar {
        transform: translate3d(0, 0, 0) !important;
        opacity: 1 !important;
        pointer-events: auto !important;
    }

    body.mobile-filters-open::after {
        content: "" !important;
        position: fixed !important;
        inset: 0 !important;
        z-index: 1600 !important;
        background: rgba(15, 23, 42, .36) !important;
    }

    body.mobile-filters-open .mobile-bottom-nav-v6 {
        z-index: 1750 !important;
    }

    .ticket-filter,
    .admin-filter,
    .filters-form,
    .all-filters,
    .profile-grid,
    .split-grid {
        grid-template-columns: 1fr !important;
        width: 100% !important;
    }

    .admin-table-wrap,
    .table-wrap,
    .ticket-list {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch;
    }
}

/* V100.4 - bottom sheet coordinate guard. Keep after legacy mobile blocks. */
@media (max-width: 980px) {
    #mobileFiltersPanel.toolbar {
        top: auto !important;
        bottom: calc(var(--mobile-nav-height-v85, 68px) + env(safe-area-inset-bottom, 0px) + 10px) !important;
        position: fixed !important;
    }
    body.mobile-filters-open #mobileFiltersPanel.toolbar {
        top: auto !important;
        transform: translate3d(0, 0, 0) !important;
    }
}

/* V100.5 - filter visibility guard. Keep after card layout overrides. */
.tcg-card[hidden],
.tcg-card.is-filter-hidden-v78,
.tcg-card.is-filter-hidden-v83,
.tcg-card.is-filter-hidden-v99,
.card-item[hidden],
.card-item.is-filter-hidden-v78,
.card-item.is-filter-hidden-v83,
.card-item.is-filter-hidden-v99 {
    display: none !important;
}

/* V106 - hotfix desktop/mobile filter separation. */
.desktop-filters-toolbar {
    display: flex !important;
}

#mobileFiltersPanel.toolbar {
    display: none !important;
}

@media (max-width: 980px) {
    .desktop-filters-toolbar {
        display: none !important;
    }

    #mobileFiltersPanel.toolbar {
        display: block !important;
    }
}

/* =========================================================
   V107 - stable UI core guard
   Hotfix for desktop/mobile filters, mobile viewport and safe icons.
   Keep this block at EOF until the legacy CSS is cleaned in a branch.
   ========================================================= */
.toggle-sidebar-icon,
.mobile-icon-btn-v6 span,
.mobile-bottom-nav-v6 span {
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
    line-height: 1 !important;
    text-rendering: auto !important;
}

.desktop-filters-toolbar {
    display: flex !important;
    position: relative !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    top: auto !important;
    transform: none !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    z-index: 1 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 18px 0 16px !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
}

.desktop-filters-toolbar .filter-chips {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    align-items: center !important;
    min-width: 0 !important;
}

.desktop-filters-toolbar .sort-select {
    margin-left: auto !important;
    min-width: 210px !important;
}

#mobileFiltersPanel.toolbar {
    display: none !important;
}

.tcg-card[hidden],
.tcg-card.is-filter-hidden-v107,
.tcg-card.is-filter-hidden-v99,
.tcg-card.is-filter-hidden-v83,
.tcg-card.is-filter-hidden-v78 {
    display: none !important;
}

@media (max-width: 980px) {
    html,
    body {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        overflow-x: hidden !important;
    }

    .pokedex-shell,
    .pokedex-layout,
    .content,
    .card-grid,
    #cardGrid {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        box-sizing: border-box !important;
    }

    .pokedex-layout {
        display: block !important;
        padding: 8px 10px calc(var(--mobile-nav-height-v6, 68px) + 18px) !important;
    }

    .desktop-filters-toolbar {
        display: none !important;
    }

    #mobileFiltersPanel.toolbar {
        display: flex !important;
        position: fixed !important;
        left: max(10px, env(safe-area-inset-left, 0px)) !important;
        right: max(10px, env(safe-area-inset-right, 0px)) !important;
        top: auto !important;
        bottom: calc(var(--mobile-nav-height-v6, 68px) + env(safe-area-inset-bottom, 0px) + 10px) !important;
        z-index: 5000 !important;
        width: auto !important;
        max-width: none !important;
        max-height: min(70dvh, 560px) !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch !important;
        padding: 14px !important;
        border-radius: 24px !important;
        background: var(--cf-card-bg, rgba(255,255,255,.98)) !important;
        border: 1px solid color-mix(in srgb, var(--cf-border, #E5E7EB) 86%, transparent) !important;
        box-shadow: 0 -18px 58px rgba(15, 23, 42, .20) !important;
        transform: translate3d(0, calc(100% + 120px), 0) !important;
        opacity: 0 !important;
        pointer-events: none !important;
        transition: transform .22s ease, opacity .18s ease !important;
    }

    body.mobile-filters-open #mobileFiltersPanel.toolbar {
        transform: translate3d(0, 0, 0) !important;
        opacity: 1 !important;
        pointer-events: auto !important;
    }

    body.mobile-filters-open::after {
        content: "" !important;
        position: fixed !important;
        inset: 0 !important;
        z-index: 4990 !important;
        background: rgba(15, 23, 42, .34) !important;
        backdrop-filter: blur(2px) !important;
        -webkit-backdrop-filter: blur(2px) !important;
    }

    body.mobile-filters-open .mobile-bottom-nav-v6 {
        z-index: 5010 !important;
    }

    #mobileFiltersPanel .filter-chips {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 9px !important;
        width: 100% !important;
    }

    #mobileFiltersPanel .chip,
    #mobileFiltersPanel .sort-select,
    #mobileFiltersPanel .mobile-view-toggle button {
        min-height: 44px !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    #cardGrid.card-grid {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 12px !important;
        overflow: visible !important;
        padding: 0 !important;
    }

    #cardGrid.card-grid.mobile-view-album {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
    }

    .mobile-bottom-nav-v6 {
        left: 10px !important;
        right: 10px !important;
        bottom: calc(env(safe-area-inset-bottom, 0px) + 8px) !important;
        width: auto !important;
        max-width: none !important;
    }
}

@media (min-width: 981px) {
    #mobileFiltersPanel.toolbar {
        display: none !important;
    }
    .mobile-filter-btn {
        display: none !important;
    }
}

/* =========================================================
   V108 - pre-beta recovery guard
   Fixes color admin controls and gives final ownership to filter UI.
   ========================================================= */
.brand-color-grid {
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)) !important;
    align-items: stretch !important;
}
.brand-color-grid label {
    min-width: 0 !important;
    overflow: hidden !important;
}
.brand-color-grid input[type="color"] {
    appearance: auto !important;
    -webkit-appearance: none !important;
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 38px !important;
    min-height: 38px !important;
    max-height: 38px !important;
    padding: 3px !important;
    border: 1px solid var(--cf-border, #E5E7EB) !important;
    border-radius: 10px !important;
    background: var(--cf-surface, #fff) !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
}
.brand-color-grid input[type="color"]::-webkit-color-swatch-wrapper { padding: 0 !important; }
.brand-color-grid input[type="color"]::-webkit-color-swatch { border: 0 !important; border-radius: 8px !important; }
.brand-color-grid input[type="text"] {
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}
.admin-page .brand-color-grid input[type="color"] {
    background: var(--cf-surface, #fff) !important;
}

@media (min-width: 981px) {
    .desktop-filters-toolbar,
    #desktopFiltersPanel.desktop-filters-toolbar {
        display: flex !important;
        visibility: visible !important;
        opacity: 1 !important;
        pointer-events: auto !important;
    }
    #mobileFiltersPanel.toolbar { display: none !important; }
}
@media (max-width: 980px) {
    .desktop-filters-toolbar,
    #desktopFiltersPanel.desktop-filters-toolbar { display: none !important; }
    #mobileFiltersPanel.toolbar {
        display: flex !important;
        flex-direction: column !important;
        visibility: visible !important;
        position: fixed !important;
        left: max(10px, env(safe-area-inset-left, 0px)) !important;
        right: max(10px, env(safe-area-inset-right, 0px)) !important;
        bottom: calc(var(--mobile-nav-height-v6, 68px) + env(safe-area-inset-bottom, 0px) + 10px) !important;
        top: auto !important;
        z-index: 7000 !important;
        transform: translate3d(0, calc(100% + 140px), 0) !important;
        opacity: 0 !important;
        pointer-events: none !important;
    }
    body.mobile-filters-open #mobileFiltersPanel.toolbar {
        transform: translate3d(0, 0, 0) !important;
        opacity: 1 !important;
        pointer-events: auto !important;
    }
    body.mobile-filters-open::after { z-index: 6990 !important; }
    body.mobile-filters-open .mobile-bottom-nav-v6 { z-index: 7010 !important; }
}
.tcg-card[hidden],
.tcg-card.is-filter-hidden-v108,
.card-item[hidden],
.card-item.is-filter-hidden-v108 {
    display: none !important;
    visibility: hidden !important;
}


/* =========================================================
   V110 - Home pública final: lançamento MyTCG-EX
   ========================================================= */
.skip-link {
    position: absolute;
    left: 12px;
    top: -48px;
    z-index: 9999;
    padding: 10px 14px;
    border-radius: 999px;
    background: #101827;
    color: #fff;
    font-weight: 900;
    text-decoration: none;
    transition: top .18s ease;
}
.skip-link:focus { top: 12px; }
.public-home-v110 {
    background:
        radial-gradient(circle at 8% 4%, rgba(37,99,235,.22), transparent 30%),
        radial-gradient(circle at 88% 8%, rgba(34,211,238,.24), transparent 28%),
        linear-gradient(180deg, #fff8fb 0%, #f8fafc 48%, #ffffff 100%);
}
.public-home-header {
    width: min(1220px, calc(100% - 32px));
    padding: 16px 0;
}
.public-home-nav { row-gap: 8px; }
.public-home-nav a:not(.commercial-home-cta) {
    padding: 10px 12px;
    border-radius: 999px;
}
.public-home-nav a:not(.commercial-home-cta):hover,
.public-home-nav a:not(.commercial-home-cta):focus-visible {
    background: rgba(37,99,235,.10);
    color: var(--brand-primary, #2563EB);
    outline: none;
}
.public-home-main {
    width: min(1220px, calc(100% - 32px));
    padding-top: 36px;
}
.public-home-hero {
    grid-template-columns: minmax(0, 1.22fr) minmax(330px, .78fr);
    gap: 26px;
}
.public-home-hero-copy {
    padding: clamp(8px, 1vw, 16px) 0;
}
.public-home-hero h1 {
    max-width: 900px;
    font-size: clamp(38px, 6.2vw, 76px);
    letter-spacing: -.065em;
}
.public-home-hero p { font-size: clamp(16px, 1.7vw, 19px); }
.public-home-trust-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 22px 0 0;
    padding: 0;
    list-style: none;
}
.public-home-trust-list li {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 36px;
    padding: 0 12px;
    border: 1px solid rgba(37,99,235,.18);
    border-radius: 999px;
    background: rgba(255,255,255,.72);
    color: #374151;
    font-weight: 850;
    box-shadow: 0 10px 28px rgba(15,23,42,.05);
}
.public-home-trust-list li::before {
    content: "✓";
    display: inline-grid;
    place-items: center;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: rgba(53,190,101,.14);
    color: #16803b;
    font-size: 12px;
    font-weight: 950;
}
.public-home-partner-card {
    min-height: 420px;
    justify-content: space-between;
    overflow: hidden;
    position: relative;
}
.public-home-partner-card::before {
    content: "";
    position: absolute;
    inset: auto -60px -80px auto;
    width: 240px;
    height: 240px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(37,99,235,.22), transparent 66%);
    pointer-events: none;
}
.public-home-partner-card > * { position: relative; }
.public-home-feature-grid article span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    margin-bottom: 14px;
    border-radius: 14px;
    background: rgba(37,99,235,.12);
    color: var(--brand-primary, #2563EB);
    font-weight: 950;
}
.public-home-steps {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    gap: 22px;
    align-items: stretch;
    margin-top: 28px;
    padding: 26px;
    border: 1px solid rgba(229,231,235,.92);
    border-radius: 30px;
    background: rgba(255,255,255,.86);
    box-shadow: 0 24px 60px rgba(15,23,42,.08);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
}
.public-home-steps h2 {
    margin: 0;
    font-size: clamp(28px, 4vw, 46px);
    line-height: 1;
    letter-spacing: -.045em;
}
.public-home-steps p {
    margin: 14px 0 0;
    color: #4b5563;
    line-height: 1.65;
}
.public-home-steps ol {
    display: grid;
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: home-step;
}
.public-home-steps li {
    position: relative;
    min-height: 88px;
    padding: 18px 18px 18px 72px;
    border: 1px solid rgba(229,231,235,.92);
    border-radius: 24px;
    background: #fff;
    counter-increment: home-step;
}
.public-home-steps li::before {
    content: counter(home-step);
    position: absolute;
    left: 18px;
    top: 18px;
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border-radius: 15px;
    background: linear-gradient(135deg, var(--brand-primary, #2563EB), #7C3AED);
    color: #fff;
    font-weight: 950;
}
.public-home-steps li strong,
.public-home-steps li span { display: block; }
.public-home-steps li strong { color: #111827; font-size: 16px; }
.public-home-steps li span { margin-top: 6px; color: #667085; line-height: 1.45; }
.public-home-tcg-tags {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin-top: 18px;
}
.public-home-tcg-tags span {
    padding: 10px 14px;
    border-radius: 999px;
    background: rgba(37,99,235,.10);
    color: #374151;
    font-weight: 900;
}
.public-home-footer { width: min(1220px, calc(100% - 32px)); gap: 12px 16px; }
.public-home-footer small {
    flex-basis: 100%;
    text-align: center;
    line-height: 1.45;
}
@media (max-width: 900px) {
    .public-home-header {
        position: static;
        align-items: center;
        gap: 12px;
    }
    .public-home-nav {
        width: 100%;
        justify-content: center;
        overflow-x: auto;
        padding-bottom: 4px;
    }
    .public-home-hero,
    .public-home-steps {
        grid-template-columns: 1fr;
    }
    .public-home-partner-card { min-height: auto; }
}
@media (max-width: 560px) {
    .public-home-header,
    .public-home-main,
    .public-home-footer { width: min(100% - 22px, 1220px); }
    .public-home-nav { justify-content: flex-start; }
    .public-home-nav a:not(.commercial-home-cta) { padding: 9px 10px; }
    .public-home-hero h1 { font-size: clamp(34px, 12vw, 52px); }
    .commercial-actions { display: grid; grid-template-columns: 1fr; }
    .commercial-actions a { width: 100%; }
    .public-home-trust-list { display: grid; grid-template-columns: 1fr; }
    .public-home-steps { padding: 18px; border-radius: 24px; }
    .public-home-steps li { padding: 16px 16px 16px 64px; }
}

/* =========================================================
   V112 - Acesso público: login, cadastro e recuperação
   ========================================================= */
.access-page-v112 {
    background:
        radial-gradient(circle at 8% 8%, rgba(37,99,235,.22), transparent 30%),
        radial-gradient(circle at 92% 12%, rgba(34,211,238,.25), transparent 28%),
        radial-gradient(circle at 50% 100%, rgba(139,92,246,.14), transparent 34%),
        linear-gradient(135deg, #fff8fb 0%, #f7fbff 48%, #fff8eb 100%);
}
.access-shell-v112 {
    width: min(1160px, calc(100vw - 32px));
    gap: 24px;
}
.access-shell-compact-v112 {
    width: min(560px, calc(100vw - 32px));
}
.access-art-v112,
.access-card-v112 {
    border: 1px solid rgba(15, 24, 42, .08);
    background: rgba(255,255,255,.78);
    box-shadow: 0 28px 88px rgba(15, 23, 42, .11);
}
.access-art-v112 {
    min-height: 660px;
}
.access-logo-v112 a,
.access-recovery-brand-v112 a {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
}
.access-logo-v112 img {
    width: min(260px, 70vw) !important;
    max-width: 260px !important;
    height: auto !important;
    margin-bottom: 12px;
}
.access-hero-v112 {
    margin: 18px 0;
}
.access-proof-list-v112 {
    list-style: none;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    padding: 0;
    margin: 18px 0 0;
}
.access-proof-list-v112 li {
    min-height: 46px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 10px 12px;
    border-radius: 16px;
    background: rgba(255,255,255,.72);
    border: 1px solid rgba(37,99,235,.12);
    color: #4b5563;
    font-size: 12px;
    font-weight: 900;
    line-height: 1.25;
}
.access-eyebrow-v112 {
    margin: 0 0 8px !important;
    color: #f1357c !important;
    font-size: 12px;
    font-weight: 950;
    letter-spacing: .16em;
    text-transform: uppercase;
}
.access-card-v112 {
    padding: 36px;
}
.access-card-v112 .login-card-header h1 {
    font-size: clamp(30px, 4vw, 42px);
    line-height: 1.03;
}
.access-form-v112 {
    gap: 11px;
}
.access-form-v112 input {
    width: 100%;
}
.access-password-field-v112 {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    align-items: center;
}
.access-password-field-v112 input {
    min-width: 0;
}
.access-password-field-v112 button {
    min-height: 52px;
    border: 1px solid rgba(16,24,39,.12);
    border-radius: 16px;
    background: rgba(255,255,255,.92);
    color: #4b5563;
    padding: 0 14px;
    font-weight: 900;
    cursor: pointer;
}
.access-password-field-v112 button:focus-visible,
.access-form-v112 button:focus-visible,
.access-links-v112 a:focus-visible,
.access-checkbox-v112 a:focus-visible {
    outline: 3px solid rgba(37,99,235,.28);
    outline-offset: 3px;
}
.access-checkbox-v112 {
    display: grid !important;
    grid-template-columns: 20px minmax(0, 1fr);
    gap: 10px;
    align-items: flex-start;
    margin: 4px 0 2px;
    padding: 12px;
    border-radius: 16px;
    background: rgba(37,99,235,.06);
    border: 1px solid rgba(37,99,235,.12);
    color: #4b5563 !important;
    font-size: 13px !important;
    line-height: 1.45;
    letter-spacing: 0 !important;
    text-transform: none !important;
    font-weight: 750 !important;
}
.access-checkbox-v112 input {
    width: 18px;
    height: 18px;
    margin-top: 1px;
    accent-color: #2563EB;
}
.access-checkbox-v112 a,
.access-small-note-v112 a {
    color: #f1357c;
    font-weight: 900;
    text-decoration: none;
}
.access-links-v112 {
    flex-wrap: wrap;
    line-height: 1.4;
}
.access-small-note-v112 {
    margin: 18px 0 0;
    color: #6b7280;
    font-size: 12px;
    font-weight: 750;
    line-height: 1.5;
}
.access-recovery-card-v112 {
    width: 100%;
}
.access-recovery-brand-v112 {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 22px;
}
.access-recovery-brand-v112 img {
    width: 148px;
    max-width: 52vw;
    height: auto;
    display: block;
}
.access-recovery-brand-v112 span {
    color: #4b5563;
    font-size: 12px;
    font-weight: 950;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.access-orbit-v112 span {
    width: 38px;
    height: 52px;
    border-radius: 10px;
    border: 1px solid rgba(37,99,235,.34);
    background: linear-gradient(145deg, rgba(255,255,255,.62), rgba(37,99,235,.16));
    box-shadow: 0 16px 34px rgba(15,23,42,.10);
}
.access-orbit-v112 span:nth-child(2),
.access-orbit-v112 span:nth-child(4) {
    border-color: rgba(34,211,238,.38);
    background: linear-gradient(145deg, rgba(255,255,255,.62), rgba(34,211,238,.18));
}
@media (max-width: 980px) {
    .access-shell-v112 {
        grid-template-columns: 1fr;
        padding: 20px 0;
        align-items: stretch;
    }
    .access-art-v112 {
        min-height: auto;
    }
    .access-hero-v112 {
        min-height: 250px;
    }
}
@media (max-width: 680px) {
    .access-shell-v112,
    .access-shell-compact-v112 {
        width: min(100% - 22px, 560px);
    }
    .access-art-v112,
    .access-card-v112 {
        border-radius: 26px;
    }
    .access-card-v112 {
        padding: 24px;
    }
    .access-proof-list-v112 {
        grid-template-columns: 1fr;
    }
    .access-password-field-v112 {
        grid-template-columns: 1fr;
    }
    .access-password-field-v112 button {
        width: 100%;
    }
    .access-recovery-brand-v112 {
        align-items: flex-start;
        flex-direction: column;
    }
}


/* V113 - Área logada principal */
.app-home-shell .official-session-menu,
.mytcg-shell .official-session-menu,
.pokedex-shell .official-session-menu {
    overflow-x: auto;
    scrollbar-width: thin;
}
.app-home-search input,
.search-area input {
    min-height: 44px;
}
.album-box strong,
.professor-tip strong {
    letter-spacing: -.01em;
}
.empty-collection-state .btn-catalog-sync,
.btn-catalog-sync {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 10px 16px;
    border-radius: 999px;
    text-decoration: none;
    font-weight: 800;
    background: linear-gradient(135deg, var(--brand-primary), var(--brand-secondary));
    color: #fff;
}
@media (max-width: 900px) {
    #mobileFiltersPanel.toolbar {
        visibility: hidden;
        opacity: 0;
        pointer-events: none;
        transform: translateY(18px);
        transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
    }
    body.mobile-filters-open #mobileFiltersPanel.toolbar {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        pointer-events: auto !important;
        transform: translateY(0) !important;
        z-index: 9999 !important;
    }
    body.mobile-filters-open .mobile-filter-btn {
        position: relative;
        z-index: 10000;
    }
    .mobile-summary-mini-v6,
    .mobile-summary-details-v6 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .quick-actions {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .quick-actions .quick-btn {
        min-height: 38px;
    }
}
@media (max-width: 560px) {
    .mobile-more-grid-v6 a,
    .mobile-bottom-nav-v6 button,
    .chip,
    .quick-btn {
        font-size: 13px;
    }
    .card-grid {
        padding-bottom: 86px;
    }
}


/* =========================================================
   V116 - Coleção principal: filtros, cards e mobile final
   ========================================================= */
.tcg-card.is-filter-hidden-v116,
.tcg-card[hidden],
.card-item.is-filter-hidden-v116,
.card-item[hidden] {
    display: none !important;
    visibility: hidden !important;
}

.filter-empty-message-v116 {
    grid-column: 1 / -1;
    width: 100%;
    margin: 12px 0 28px;
}

.tcg-card {
    min-width: 0;
}

.tcg-card .card-meta small,
.tcg-card .card-meta strong,
.tcg-card .card-meta span {
    overflow-wrap: anywhere;
}

.card-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    min-height: 0;
}

.card-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 22px;
    padding: 3px 8px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 850;
    line-height: 1;
}

.quick-actions .quick-btn {
    white-space: normal;
    line-height: 1.15;
}

@media (min-width: 981px) {
    #desktopFiltersPanel.desktop-filters-toolbar {
        display: flex !important;
        align-items: center !important;
        gap: 12px !important;
    }

    #desktopFiltersPanel .filter-chips {
        flex: 1 1 auto !important;
    }

    #desktopFiltersPanel .sort-select {
        flex: 0 0 auto !important;
    }
}

@media (max-width: 980px) {
    .mobile-filter-btn {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 8px !important;
        width: 100% !important;
        min-height: 46px !important;
        margin: 10px 0 12px !important;
        border-radius: 999px !important;
        font-weight: 900 !important;
    }

    #mobileFiltersPanel.toolbar {
        display: flex !important;
        flex-direction: column !important;
        gap: 12px !important;
        position: fixed !important;
        left: max(10px, env(safe-area-inset-left, 0px)) !important;
        right: max(10px, env(safe-area-inset-right, 0px)) !important;
        top: auto !important;
        bottom: calc(var(--mobile-nav-height-v6, 68px) + env(safe-area-inset-bottom, 0px) + 10px) !important;
        width: auto !important;
        max-width: none !important;
        max-height: min(72dvh, 560px) !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch !important;
        z-index: 10020 !important;
        padding: 16px !important;
        border-radius: 24px !important;
        transform: translate3d(0, calc(100% + 150px), 0) !important;
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }

    body.mobile-filters-open #mobileFiltersPanel.toolbar {
        transform: translate3d(0, 0, 0) !important;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }

    body.mobile-filters-open::after {
        content: "" !important;
        position: fixed !important;
        inset: 0 !important;
        z-index: 10010 !important;
        background: rgba(15, 23, 42, .36) !important;
        backdrop-filter: blur(2px) !important;
        -webkit-backdrop-filter: blur(2px) !important;
    }

    body.mobile-filters-open .mobile-bottom-nav-v6 {
        z-index: 10030 !important;
    }

    #mobileFiltersPanel .filter-chips {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 9px !important;
        width: 100% !important;
        overflow: visible !important;
    }

    #mobileFiltersPanel .chip,
    #mobileFiltersPanel .sort-select,
    #mobileFiltersPanel .mobile-view-toggle button {
        width: 100% !important;
        min-height: 44px !important;
        max-width: 100% !important;
        font-size: 13px !important;
    }

    #mobileFiltersPanel .sort-select {
        margin: 0 !important;
    }

    #cardGrid.card-grid {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
        padding-bottom: calc(var(--mobile-nav-height-v6, 68px) + 34px) !important;
    }

    #cardGrid.card-grid.mobile-view-album {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
    }

    .tcg-card .card-image img {
        max-width: 100% !important;
        height: auto !important;
    }

    .quick-actions {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 7px !important;
    }

    .quick-actions .quick-btn {
        min-height: 38px !important;
        padding-left: 8px !important;
        padding-right: 8px !important;
    }
}

@media (max-width: 560px) {
    .search-area input,
    #mobileSearchCard {
        font-size: 15px !important;
    }

    #mobileFiltersPanel .filter-chips {
        grid-template-columns: 1fr 1fr !important;
    }

    .tcg-card .status-pill {
        max-width: 100% !important;
        white-space: normal !important;
        text-align: center !important;
    }
}

/* =========================================================
   V117 - Desktop sticky rails + fixed mobile navigation
   =========================================================
   Desktop: keep Minhas Coleções and Card selecionado visible while the
   user scrolls long collections. Mobile: keep the top bar and bottom
   navigation accessible, and force filtered cards to reflow without gaps.
*/
@media (min-width: 981px) {
    .pokedex-layout {
        height: auto !important;
        min-height: calc(100vh - 102px) !important;
        align-items: start !important;
    }

    .pokedex-layout > .sidebar,
    .pokedex-layout > .detail-panel {
        position: sticky !important;
        top: 16px !important;
        max-height: calc(100vh - 32px) !important;
        overflow-y: auto !important;
        align-self: start !important;
    }

    .pokedex-layout > .content {
        overflow: visible !important;
        min-height: calc(100vh - 32px) !important;
    }

    #cardGrid.card-grid {
        min-height: 520px !important;
        max-height: none !important;
        overflow: visible !important;
    }
}

@media (max-width: 980px) {
    body {
        padding-top: calc(var(--mobile-header-height-v85, 62px) + 10px) !important;
        padding-bottom: calc(var(--mobile-nav-height-v85, 76px) + var(--mobile-safe-bottom-v85, 0px) + 18px) !important;
    }

    .mobile-app-header-v6 {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        z-index: 1600 !important;
        transform: translate3d(0, 0, 0) !important;
        will-change: transform !important;
    }

    body.mobile-sidebar-open .mobile-app-header-v6,
    body.mobile-filters-open .mobile-app-header-v6,
    body.mobile-more-open .mobile-app-header-v6 {
        z-index: 1600 !important;
    }

    #cardGrid.card-grid > .tcg-card[hidden],
    #cardGrid.card-grid > .tcg-card.is-filter-hidden-v117,
    #cardGrid.card-grid > .tcg-card.is-filter-hidden-v116,
    #cardGrid.card-grid > .tcg-card.is-filter-hidden-v108,
    #cardGrid.card-grid > .tcg-card.is-filter-hidden-v107,
    #cardGrid.card-grid > .tcg-card.is-filter-hidden-v99,
    #cardGrid.card-grid > .tcg-card.is-filter-hidden-v83,
    #cardGrid.card-grid > .tcg-card.is-filter-hidden-v78 {
        display: none !important;
        visibility: hidden !important;
        width: 0 !important;
        height: 0 !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        overflow: hidden !important;
    }

    .mobile-bottom-nav-v6 {
        display: grid !important;
        position: fixed !important;
        left: 10px !important;
        right: 10px !important;
        bottom: calc(8px + var(--mobile-safe-bottom-v85, 0px)) !important;
        z-index: 1700 !important;
        gap: 6px !important;
        padding: 8px !important;
        border-radius: 24px !important;
        background: rgba(255, 255, 255, .97) !important;
        border: 1px solid rgba(226, 232, 240, .92) !important;
        box-shadow: 0 18px 50px rgba(15, 23, 42, .18) !important;
        backdrop-filter: blur(18px) !important;
        -webkit-backdrop-filter: blur(18px) !important;
    }

    .mobile-bottom-nav-links-v117 {
        grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    }

    .mobile-bottom-nav-v6 a,
    .mobile-bottom-nav-v6 button {
        min-width: 0 !important;
        min-height: 54px !important;
        border: 0 !important;
        border-radius: 18px !important;
        background: transparent !important;
        color: #64748b !important;
        text-decoration: none !important;
        display: grid !important;
        place-items: center !important;
        gap: 2px !important;
        font-weight: 900 !important;
        font-size: 11px !important;
        line-height: 1.05 !important;
        cursor: pointer !important;
    }

    .mobile-bottom-nav-v6 a span,
    .mobile-bottom-nav-v6 button span {
        width: 24px !important;
        height: 24px !important;
        border-radius: 999px !important;
        display: grid !important;
        place-items: center !important;
        background: rgba(37, 99, 235, .10) !important;
        color: #f1357c !important;
        font-size: 12px !important;
        font-weight: 950 !important;
    }

    .mobile-bottom-nav-v6 a strong,
    .mobile-bottom-nav-v6 button strong {
        display: block !important;
        max-width: 100% !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .mobile-bottom-nav-v6 a.is-active,
    .mobile-bottom-nav-v6 button.is-active {
        color: #f1357c !important;
        background: rgba(37, 99, 235, .10) !important;
    }

    body.detail-panel-mobile-open .mobile-bottom-nav-v6 {
        display: none !important;
    }
}

/* =========================================================
   V118 - Correção definitiva dos painéis laterais desktop
   =========================================================
   O ajuste anterior deixava os painéis dependentes de regras antigas em
   larguras menores de desktop. A partir desta versão, desktop/tablet
   horizontal mantém três colunas e os painéis laterais acompanham a
   rolagem da página, sempre abaixo do topo fixo.
*/
@media (min-width: 981px) {
    .pokedex-layout {
        grid-template-columns: clamp(260px, 20vw, 320px) minmax(420px, 1fr) clamp(330px, 25vw, 420px) !important;
        height: auto !important;
        min-height: calc(100vh - 102px) !important;
        overflow: visible !important;
        align-items: start !important;
    }

    .pokedex-layout.sidebar-collapsed {
        grid-template-columns: 0 minmax(420px, 1fr) clamp(330px, 25vw, 420px) !important;
    }

    .pokedex-layout > .sidebar,
    .pokedex-layout > .detail-panel {
        position: sticky !important;
        top: 120px !important;
        max-height: calc(100vh - 138px) !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        align-self: start !important;
        z-index: 12 !important;
    }

    .pokedex-layout > .detail-panel {
        grid-column: auto !important;
        display: block !important;
    }

    .pokedex-layout > .detail-panel #detailContent {
        display: block !important;
    }

    .pokedex-layout > .content,
    .content {
        overflow: visible !important;
        min-height: 0 !important;
    }

    #cardGrid.card-grid {
        min-height: 0 !important;
        max-height: none !important;
        overflow: visible !important;
        align-content: start !important;
    }

    .detail-panel .selected-card-preview {
        margin: 18px 0 !important;
        min-height: 280px !important;
    }

    .detail-panel .selected-card-preview img {
        max-height: 360px !important;
    }
}

@media (min-width: 981px) and (max-width: 1180px) {
    .pokedex-layout {
        grid-template-columns: 240px minmax(340px, 1fr) 300px !important;
        gap: 16px !important;
        padding-left: 14px !important;
        padding-right: 14px !important;
    }

    .pokedex-layout.sidebar-collapsed {
        grid-template-columns: 0 minmax(340px, 1fr) 300px !important;
    }

    .pokedex-layout > .sidebar,
    .pokedex-layout > .detail-panel {
        top: 112px !important;
        max-height: calc(100vh - 128px) !important;
    }
}

/* =========================================================
   V119 - Desktop com rolagem interna por coluna
   =========================================================
   Corrige o caso em que o sticky não acompanha a navegação porque
   a página inteira continua rolando. No desktop, a tela de coleção
   passa a funcionar como layout de aplicativo: laterais sempre
   visíveis e a coluna central com rolagem própria.
*/
@media (min-width: 981px) {
    html:has(.pokedex-layout),
    body:has(.pokedex-layout) {
        min-height: 100%;
    }

    body:has(.pokedex-layout) {
        overflow: hidden !important;
    }

    .pokedex-shell {
        height: 100vh !important;
        max-height: 100vh !important;
        overflow: hidden !important;
        display: flex !important;
        flex-direction: column !important;
    }

    .pokedex-header,
    .session-user-bar,
    .restricted-top-ad {
        flex: 0 0 auto !important;
    }

    .pokedex-layout {
        flex: 1 1 auto !important;
        min-height: 0 !important;
        height: auto !important;
        max-height: none !important;
        overflow: hidden !important;
        align-items: stretch !important;
        grid-template-columns: clamp(260px, 20vw, 320px) minmax(420px, 1fr) clamp(330px, 25vw, 420px) !important;
    }

    .pokedex-layout.sidebar-collapsed {
        grid-template-columns: 0 minmax(420px, 1fr) clamp(330px, 25vw, 420px) !important;
    }

    .pokedex-layout > .sidebar,
    .pokedex-layout > .content,
    .pokedex-layout > .detail-panel {
        height: 100% !important;
        max-height: 100% !important;
        min-height: 0 !important;
        align-self: stretch !important;
    }

    .pokedex-layout > .sidebar,
    .pokedex-layout > .detail-panel {
        position: relative !important;
        top: auto !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        overscroll-behavior: contain !important;
        scrollbar-gutter: stable !important;
    }

    .pokedex-layout > .content {
        overflow-y: auto !important;
        overflow-x: hidden !important;
        overscroll-behavior: contain !important;
        scrollbar-gutter: stable !important;
        display: flex !important;
        flex-direction: column !important;
    }

    #cardGrid.card-grid {
        min-height: 0 !important;
        max-height: none !important;
        overflow: visible !important;
        align-content: start !important;
        padding-bottom: 40px !important;
    }

    .detail-panel .selected-card-preview {
        min-height: 260px !important;
        margin: 14px 0 !important;
    }

    .detail-panel .selected-card-preview img {
        max-height: 340px !important;
    }
}

@media (min-width: 981px) and (max-width: 1180px) {
    .pokedex-layout {
        grid-template-columns: 240px minmax(340px, 1fr) 300px !important;
        gap: 16px !important;
        padding-left: 14px !important;
        padding-right: 14px !important;
    }

    .pokedex-layout.sidebar-collapsed {
        grid-template-columns: 0 minmax(340px, 1fr) 300px !important;
    }
}


/* =========================================================
   V120 - Correção do botão Voltar no detalhe mobile
   =========================================================
   O painel de detalhes precisa ficar acima do cabeçalho mobile fixo;
   caso contrário o botão Voltar para coleção fica escondido atrás do
   menu superior. Mantém desktop/app-scroll da v119 intacto.
*/
@media (max-width: 980px) {
    body.detail-panel-mobile-open .mobile-app-header-v6 {
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }

    #detailPanel.detail-panel {
        z-index: 2300 !important;
        padding-top: calc(10px + env(safe-area-inset-top, 0px)) !important;
    }

    #detailPanel.detail-panel.detail-open-mobile {
        z-index: 2300 !important;
    }

    #detailPanel .detail-header {
        position: sticky !important;
        top: 0 !important;
        z-index: 2310 !important;
        display: grid !important;
        grid-template-columns: auto minmax(0, 1fr) 44px !important;
        align-items: center !important;
        gap: 10px !important;
        margin: calc(-10px - env(safe-area-inset-top, 0px)) -10px 12px !important;
        padding: calc(10px + env(safe-area-inset-top, 0px)) 10px 10px !important;
        min-height: calc(58px + env(safe-area-inset-top, 0px)) !important;
        background: rgba(255,255,255,.98) !important;
        border-bottom: 1px solid rgba(226,232,240,.95) !important;
        box-shadow: 0 10px 26px rgba(15,23,42,.08) !important;
        backdrop-filter: blur(18px) !important;
        -webkit-backdrop-filter: blur(18px) !important;
    }

    #detailPanel .detail-header h2 {
        margin: 0 !important;
        min-width: 0 !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
        text-align: center !important;
        font-size: 16px !important;
    }

    #detailPanel .btn-detail-back {
        position: relative !important;
        z-index: 2311 !important;
        min-height: 42px !important;
        padding: 0 14px !important;
        border-radius: 999px !important;
        border: 1px solid rgba(37,99,235,.28) !important;
        background: #fff !important;
        color: #f1357c !important;
        box-shadow: 0 10px 22px rgba(37,99,235,.10) !important;
    }

    #detailPanel #btnCloseDetailPanel {
        position: relative !important;
        z-index: 2311 !important;
        width: 42px !important;
        height: 42px !important;
        border-radius: 999px !important;
        background: #fff !important;
    }
}

@media (max-width: 390px) {
    #detailPanel .detail-header {
        grid-template-columns: auto minmax(0, 1fr) 40px !important;
        gap: 6px !important;
    }

    #detailPanel .btn-detail-back {
        min-height: 40px !important;
        padding: 0 10px !important;
        font-size: 12px !important;
    }

    #detailPanel .detail-header h2 {
        font-size: 14px !important;
    }
}

/* V121 - perfil público e comunidade: acabamento final de publicação. */
.public-page {
    padding-bottom: calc(54px + env(safe-area-inset-bottom));
}

.public-eyebrow {
    display: inline-flex;
    margin-bottom: 6px;
    color: var(--theme-primary, #2563EB);
    font-size: 12px;
    font-weight: 950;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.public-primary-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    margin-top: 14px;
    padding: 10px 14px;
    border-radius: 999px;
    color: #fff;
    background: linear-gradient(135deg, var(--theme-primary, #2563EB), var(--theme-secondary, #22D3EE));
    font-weight: 900;
    text-decoration: none;
}

.public-profile-hero,
.public-collection-hero {
    overflow: hidden;
    position: relative;
}

.public-profile-hero::after,
.public-collection-hero::after {
    content: "TCG";
    position: absolute;
    right: 18px;
    bottom: -18px;
    color: color-mix(in srgb, var(--theme-secondary, #22D3EE) 24%, transparent);
    font-size: 76px;
    font-weight: 950;
    letter-spacing: -.08em;
    pointer-events: none;
}

.public-collection-grid .collection-card {
    min-height: 148px;
}

.public-badges em {
    border: 1px solid color-mix(in srgb, var(--theme-primary, #2563EB) 28%, var(--line-solid, #E5E7EB));
    color: color-mix(in srgb, var(--theme-primary, #2563EB) 78%, var(--text, #101827));
    background: color-mix(in srgb, var(--theme-primary, #2563EB) 10%, #fff);
    font-style: normal;
    font-size: 11px;
    font-weight: 900;
}

.public-cards .public-empty {
    grid-column: 1 / -1;
    margin-top: 0;
}

.share-status-box,
.collection-row,
.wishlist-card {
    border-radius: 18px !important;
}

.share-link-row {
    display: flex;
    gap: 8px;
    align-items: center;
}

.share-link-row input {
    min-width: 0;
}

.collection-actions {
    display: flex;
    gap: 8px;
    align-items: center;
}

.check-row {
    display: flex !important;
    gap: 8px;
    align-items: flex-start;
    line-height: 1.35;
}

.check-row input {
    width: auto !important;
    min-height: 0 !important;
    margin-top: 4px;
}

@media (max-width: 760px) {
    .share-link-row,
    .collection-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .public-profile-hero::after,
    .public-collection-hero::after {
        font-size: 52px;
    }
}


/* =========================================================
   V122 - Correção de rolagem em app_home.php e catalog.php
   =========================================================
   A rolagem interna por coluna é exclusiva da tela principal
   de coleção (index.php). As demais páginas que usam .pokedex-shell
   precisam manter rolagem normal da página inteira.
*/
@media (min-width: 981px) {
    body:not(.collection-app-page) {
        overflow-y: auto !important;
        overflow-x: hidden !important;
        height: auto !important;
        max-height: none !important;
        min-height: 100vh !important;
    }

    body:not(.collection-app-page) .pokedex-shell,
    body:not(.collection-app-page) .app-home-shell,
    body:not(.collection-app-page) .catalog-layout,
    body:not(.collection-app-page) .all-cards-layout,
    body:not(.collection-app-page) .sync-layout {
        height: auto !important;
        max-height: none !important;
        min-height: 100vh !important;
        overflow: visible !important;
        display: block !important;
    }

    body:not(.collection-app-page) .catalog-layout,
    body:not(.collection-app-page) .sync-layout,
    body:not(.collection-app-page) .all-cards-layout {
        display: block !important;
        overflow: visible !important;
    }

    body:not(.collection-app-page) .app-dashboard-page,
    body:not(.collection-app-page) .commercial-home-page,
    body:not(.collection-app-page) main,
    body:not(.collection-app-page) section {
        max-height: none !important;
        overflow: visible !important;
    }
}

/* =========================================================
   V123 - Ações rápidas restauradas no desktop
   =========================================================
   A correção de rolagem por coluna preservou o desktop como aplicativo,
   mas alguns cards passaram a cortar a área inferior, ocultando os botões
   Tenho, Faltando, +1 cópia, Troca e Wishlist. Esta regra é exclusiva da
   tela principal de coleção em desktop e garante que o card cresça conforme
   o conteúdo, sem afetar o layout mobile aprovado.
*/
@media (min-width: 981px) {
    body.collection-app-page #cardGrid.card-grid {
        align-items: start !important;
        grid-auto-rows: auto !important;
    }

    body.collection-app-page #cardGrid.card-grid .tcg-card {
        height: auto !important;
        min-height: 560px !important;
        overflow: visible !important;
        display: flex !important;
        flex-direction: column !important;
        gap: 0 !important;
        padding-bottom: 14px !important;
    }

    body.collection-app-page #cardGrid.card-grid .card-image {
        flex: 0 0 auto !important;
    }

    body.collection-app-page #cardGrid.card-grid .card-meta {
        flex: 0 0 auto !important;
    }

    body.collection-app-page #cardGrid.card-grid .status-pill {
        flex: 0 0 auto !important;
        margin-top: 4px !important;
        margin-bottom: 10px !important;
    }

    body.collection-app-page #cardGrid.card-grid .quick-actions {
        display: grid !important;
        visibility: visible !important;
        opacity: 1 !important;
        position: relative !important;
        z-index: 5 !important;
        width: 100% !important;
        margin-top: auto !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
    }

    body.collection-app-page #cardGrid.card-grid .quick-btn {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        min-height: 38px !important;
        height: auto !important;
        padding: 8px 10px !important;
        border-radius: 14px !important;
        white-space: normal !important;
        line-height: 1.15 !important;
        cursor: pointer !important;
    }

    body.collection-app-page #cardGrid.card-grid .quick-plus {
        grid-column: auto !important;
    }
}

/* =========================================================
   V124 - Correção de sobreposição dos cards no desktop
   =========================================================
   Ao restaurar as ações rápidas no desktop, os cards passaram a ter
   alturas maiores. Em alguns navegadores, a grade antiga mantinha a
   altura da linha menor que o conteúdo real e a linha seguinte invadia
   o card anterior. Na tela principal de coleção, o desktop passa a usar
   flex-wrap para a lista de cards, garantindo altura automática por item
   e espaçamento vertical real entre linhas, sem alterar o mobile.
*/
@media (min-width: 981px) {
    body.collection-app-page #cardGrid.card-grid {
        display: flex !important;
        flex-wrap: wrap !important;
        align-items: flex-start !important;
        align-content: flex-start !important;
        justify-content: flex-start !important;
        gap: 22px 18px !important;
        grid-template-columns: none !important;
        grid-auto-rows: auto !important;
        min-height: 0 !important;
        overflow: visible !important;
        padding: 2px 8px 56px 2px !important;
    }

    body.collection-app-page #cardGrid.card-grid > .tcg-card {
        flex: 1 1 178px !important;
        width: auto !important;
        min-width: 170px !important;
        max-width: 246px !important;
        height: auto !important;
        min-height: 0 !important;
        box-sizing: border-box !important;
        overflow: hidden !important;
        display: flex !important;
        flex-direction: column !important;
        gap: 0 !important;
        padding-bottom: 14px !important;
    }

    body.collection-app-page #cardGrid.card-grid > .tcg-card .card-image {
        width: 100% !important;
        height: 182px !important;
        min-height: 182px !important;
        flex: 0 0 auto !important;
    }

    body.collection-app-page #cardGrid.card-grid > .tcg-card .card-meta {
        flex: 0 0 auto !important;
        min-height: 112px !important;
    }

    body.collection-app-page #cardGrid.card-grid > .tcg-card .card-meta strong {
        min-height: 42px !important;
    }

    body.collection-app-page #cardGrid.card-grid > .tcg-card .card-badges {
        min-height: 0 !important;
        margin: 0 !important;
    }

    body.collection-app-page #cardGrid.card-grid > .tcg-card .status-pill {
        flex: 0 0 auto !important;
        margin: 4px 0 10px !important;
    }

    body.collection-app-page #cardGrid.card-grid > .tcg-card .quick-actions {
        flex: 0 0 auto !important;
        display: grid !important;
        visibility: visible !important;
        opacity: 1 !important;
        position: relative !important;
        z-index: 2 !important;
        width: 100% !important;
        margin-top: 12px !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
    }

    body.collection-app-page #cardGrid.card-grid > .tcg-card .quick-btn {
        min-height: 38px !important;
        height: auto !important;
        padding: 8px 10px !important;
        line-height: 1.15 !important;
        white-space: normal !important;
    }
}

@media (min-width: 981px) and (max-width: 1180px) {
    body.collection-app-page #cardGrid.card-grid > .tcg-card {
        flex-basis: 160px !important;
        min-width: 158px !important;
        max-width: 220px !important;
    }

    body.collection-app-page #cardGrid.card-grid > .tcg-card .card-image {
        height: 168px !important;
        min-height: 168px !important;
    }
}

/* =========================================================
   V125 - Carta completa nos cards desktop
   =========================================================
   A v124 corrigiu a sobreposição, mas reduziu a área da imagem
   do card no desktop. A imagem volta a respeitar a proporção
   real de carta TCG, exibindo a arte completa sem corte vertical.
*/
@media (min-width: 981px) {
    body.collection-app-page #cardGrid.card-grid > .tcg-card {
        flex: 1 1 218px !important;
        min-width: 206px !important;
        max-width: 266px !important;
        overflow: visible !important;
    }

    body.collection-app-page #cardGrid.card-grid > .tcg-card .card-image {
        width: 100% !important;
        max-width: 230px !important;
        height: auto !important;
        min-height: 0 !important;
        aspect-ratio: 63 / 88 !important;
        align-self: center !important;
        overflow: hidden !important;
        padding: 8px !important;
        box-sizing: border-box !important;
    }

    body.collection-app-page #cardGrid.card-grid > .tcg-card .card-image img {
        width: 100% !important;
        height: 100% !important;
        max-width: 100% !important;
        max-height: 100% !important;
        object-fit: contain !important;
        object-position: center center !important;
        display: block !important;
        padding: 0 !important;
    }

    body.collection-app-page #cardGrid.card-grid > .tcg-card .card-meta {
        min-height: 108px !important;
    }
}

@media (min-width: 981px) and (max-width: 1180px) {
    body.collection-app-page #cardGrid.card-grid > .tcg-card {
        flex-basis: 196px !important;
        min-width: 188px !important;
        max-width: 238px !important;
    }

    body.collection-app-page #cardGrid.card-grid > .tcg-card .card-image {
        max-width: 214px !important;
        height: auto !important;
        min-height: 0 !important;
        aspect-ratio: 63 / 88 !important;
    }
}

/* =========================================================
   V126 - Destaque do card selecionado no desktop
   =========================================================
   A v125 manteve a carta inteira, mas o destaque de seleção herdava
   pseudo-elementos antigos e podia gerar linhas rosa deslocadas fora
   do card. O destaque passa a ser desenhado pelo próprio box-shadow do
   card selecionado e o brilho interno fica recortado ao container.
*/
@media (min-width: 981px) {
    body.collection-app-page #cardGrid.card-grid > .tcg-card {
        overflow: hidden !important;
        isolation: isolate !important;
    }

    body.collection-app-page #cardGrid.card-grid > .tcg-card.selected {
        border-color: rgba(37, 99, 235, .62) !important;
        box-shadow:
            inset 0 0 0 2px rgba(37, 99, 235, .58),
            0 24px 54px rgba(37, 99, 235, .16) !important;
        outline: none !important;
    }

    body.collection-app-page #cardGrid.card-grid > .tcg-card::before {
        inset: 0 !important;
        border-radius: inherit !important;
        z-index: 0 !important;
        overflow: hidden !important;
        pointer-events: none !important;
    }

    body.collection-app-page #cardGrid.card-grid > .tcg-card .card-image,
    body.collection-app-page #cardGrid.card-grid > .tcg-card .card-meta,
    body.collection-app-page #cardGrid.card-grid > .tcg-card .card-badges,
    body.collection-app-page #cardGrid.card-grid > .tcg-card .status-pill,
    body.collection-app-page #cardGrid.card-grid > .tcg-card .quick-actions {
        position: relative !important;
        z-index: 1 !important;
    }

    body.collection-app-page #cardGrid.card-grid > .tcg-card .card-status-dot {
        z-index: 3 !important;
    }
}

/* =========================================================
   V127 - Remoção real dos cards filtrados no fluxo desktop
   =========================================================
   Garante que qualquer card filtrado deixe de ocupar espaço na grade
   flexível da tela principal, eliminando áreas brancas ao pesquisar por
   número no desktop.
*/
body.collection-app-page #cardGrid.card-grid > .tcg-card[hidden],
body.collection-app-page #cardGrid.card-grid > .tcg-card.is-filter-hidden-v127,
body.collection-app-page #cardGrid.card-grid > .tcg-card.is-filter-hidden-v117,
body.collection-app-page #cardGrid.card-grid > .tcg-card.is-filter-hidden-v116,
body.collection-app-page #cardGrid.card-grid > .tcg-card.is-filter-hidden-v108,
body.collection-app-page #cardGrid.card-grid > .tcg-card.is-filter-hidden-v107,
body.collection-app-page #cardGrid.card-grid > .tcg-card.is-filter-hidden-v99,
body.collection-app-page #cardGrid.card-grid > .tcg-card.is-filter-hidden-v83,
body.collection-app-page #cardGrid.card-grid > .tcg-card.is-filter-hidden-v78 {
    display: none !important;
    visibility: hidden !important;
    flex: 0 0 0 !important;
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    opacity: 0 !important;
    overflow: hidden !important;
    pointer-events: none !important;
}

body.collection-app-page #cardGrid.card-grid > .tcg-card.is-filter-hidden-v127 .quick-actions,
body.collection-app-page #cardGrid.card-grid > .tcg-card.is-filter-hidden-v117 .quick-actions,
body.collection-app-page #cardGrid.card-grid > .tcg-card.is-filter-hidden-v116 .quick-actions,
body.collection-app-page #cardGrid.card-grid > .tcg-card.is-filter-hidden-v108 .quick-actions,
body.collection-app-page #cardGrid.card-grid > .tcg-card.is-filter-hidden-v107 .quick-actions,
body.collection-app-page #cardGrid.card-grid > .tcg-card.is-filter-hidden-v99 .quick-actions,
body.collection-app-page #cardGrid.card-grid > .tcg-card.is-filter-hidden-v83 .quick-actions,
body.collection-app-page #cardGrid.card-grid > .tcg-card.is-filter-hidden-v78 .quick-actions {
    display: none !important;
}


/* =========================================================
   V128 - Administração: revisão final de leitura e navegação
   ========================================================= */
.admin-page {
    min-height: 100vh;
    overflow-x: hidden;
}

.admin-official-topbar {
    position: sticky;
    top: 0;
    z-index: 80;
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
}

.admin-shell {
    align-items: flex-start;
}

.admin-menu {
    position: sticky;
    top: 92px;
    max-height: calc(100vh - 112px);
    overflow-y: auto;
    scrollbar-width: thin;
}

.admin-content {
    min-width: 0;
}

.admin-card,
.admin-ticket-card,
.tcg-admin-card {
    overflow: visible;
}

.admin-table-wrap {
    max-width: 100%;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}

.admin-form-grid label,
.admin-users-page label,
.tcg-admin label {
    color: #4b5563;
    font-weight: 800;
}

.admin-form-grid input,
.admin-form-grid select,
.admin-form-grid textarea,
.admin-filter input,
.admin-filter select,
.tcg-admin input,
.tcg-admin select,
.tcg-admin textarea,
.admin-users-page input,
.admin-users-page select,
.admin-users-page textarea {
    color: #111827;
    background: rgba(255,255,255,.96);
}

.admin-form-grid small,
.admin-section-title span,
.admin-card p,
.admin-ticket-card p,
.tcg-admin p {
    color: #667085;
}

.admin-table th {
    white-space: nowrap;
}

.admin-table td {
    vertical-align: top;
}

.admin-form-actions,
.admin-actions {
    flex-wrap: wrap;
}

@media (max-width: 980px) {
    .admin-official-topbar {
        position: sticky;
        top: 0;
    }
    .admin-shell {
        display: block;
    }
    .admin-menu {
        position: relative;
        top: auto;
        max-height: none;
        overflow: visible;
        margin-bottom: 16px;
    }
    .admin-content {
        padding-bottom: 88px;
    }
}


/* ==========================================================
   MyTCG-EX v135 — Production + Visual Consistency
   Identidade sincronizada com o tema institucional v2.2.
   ========================================================== */
body {
    background:
        radial-gradient(circle at 86% -4%, rgba(37,99,235,.18), transparent 31%),
        radial-gradient(circle at 9% 18%, rgba(34,211,238,.15), transparent 27%),
        radial-gradient(circle at 80% 76%, rgba(124,58,237,.10), transparent 29%),
        linear-gradient(135deg, #F8FAFC 0%, #F3F6FA 54%, #EFF6FF 100%);
}
body::before {
    opacity: .32;
    background-image:
        radial-gradient(circle, rgba(37,99,235,.16) 0 2px, transparent 2px),
        radial-gradient(circle, rgba(34,211,238,.12) 0 2px, transparent 2px);
}
button, .btn, .button, .primary-button, .login-form > button, .access-form-v112 > button {
    transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
button:hover, .btn:hover, .button:hover, .primary-button:hover, .login-form > button:hover, .access-form-v112 > button:hover {
    transform: translateY(-1px);
}
.login-page.access-page-v112::after {
    content: "";
    position: fixed;
    width: 520px;
    height: 520px;
    right: -220px;
    bottom: -260px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(34,211,238,.24), rgba(34,211,238,0) 68%);
    pointer-events: none;
}
.access-card-v112, .login-card, .page-soft-hero, .wishlist-card, .pokedex-header, .session-user-bar {
    border-color: rgba(15,23,42,.08) !important;
    box-shadow: 0 18px 55px rgba(15,23,42,.09);
}
.access-card-v112 {
    background: rgba(255,255,255,.92) !important;
    backdrop-filter: blur(18px);
}
.access-eyebrow-v112, .session-user-bar a.active, .admin-official-nav a.active, .admin-official-nav a:hover {
    color: var(--mytcg-primary) !important;
}
.access-form-v112 input:focus, .access-password-field-v112 input:focus, input:focus, select:focus, textarea:focus {
    border-color: var(--mytcg-primary) !important;
    box-shadow: 0 0 0 4px rgba(37,99,235,.12) !important;
    outline: none;
}
.access-form-v112 > button, .login-form > button, .btn-gradient, .admin-nav-exit {
    color: #fff !important;
    background: linear-gradient(135deg, var(--mytcg-primary), var(--mytcg-cyan)) !important;
    box-shadow: 0 14px 34px rgba(37,99,235,.25) !important;
}
.session-user-bar a.active, .admin-official-nav a.active, .admin-official-nav a:hover {
    background: rgba(37,99,235,.10) !important;
}
.pokedex-header, .session-user-bar, .admin-official-topbar {
    backdrop-filter: blur(18px);
}
.tcg-card, .wishlist-card, .stat-card, .dashboard-card, .collection-card {
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.tcg-card:hover, .wishlist-card:hover, .collection-card:hover {
    box-shadow: 0 20px 50px rgba(15,23,42,.13);
}
.access-reset-actions-v135 { margin-top: 18px; display: flex; justify-content: center; }
.access-reset-primary-v135 {
    display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 0 20px;
    border-radius: 14px; color: #fff !important; font-weight: 900; text-decoration: none;
    background: linear-gradient(135deg, var(--mytcg-primary), var(--mytcg-cyan));
    box-shadow: 0 14px 34px rgba(37,99,235,.24);
}
@media (prefers-reduced-motion: reduce) {
    button, .btn, .button, .primary-button, .tcg-card, .wishlist-card, .collection-card { transition: none !important; }
}

/* ==========================================================
   MyTCG-EX v137 — Universal Interaction Loading
   Indicador global para APIs, integrações e telas com espera.
   ========================================================== */
.mytcg-global-loader {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: grid;
    place-items: center;
    padding: 24px;
    background: rgba(11,18,32,.54);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .22s ease, visibility .22s ease;
}
.mytcg-global-loader.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}
.mytcg-loader-panel {
    width: min(360px, calc(100vw - 36px));
    display: grid;
    justify-items: center;
    text-align: center;
    padding: 30px 28px 26px;
    border: 1px solid rgba(255,255,255,.72);
    border-radius: 28px;
    background: rgba(255,255,255,.96);
    box-shadow: 0 30px 90px rgba(2,6,23,.34);
    transform: translateY(8px) scale(.98);
    transition: transform .24s ease;
}
.mytcg-global-loader.is-visible .mytcg-loader-panel { transform: translateY(0) scale(1); }
.mytcg-loader-panel strong {
    margin-top: 18px;
    color: var(--mytcg-text, #101827);
    font-size: 18px;
    font-weight: 900;
    letter-spacing: -.02em;
}
.mytcg-loader-copy {
    max-width: 285px;
    margin-top: 6px;
    color: var(--muted, #71798A);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.45;
}
.mytcg-loader-cards {
    position: relative;
    width: 112px;
    height: 90px;
    perspective: 700px;
}
.mytcg-loader-card {
    position: absolute;
    left: 34px;
    top: 8px;
    width: 48px;
    height: 68px;
    border: 2px solid rgba(255,255,255,.95);
    border-radius: 9px;
    box-shadow: 0 15px 30px rgba(15,23,42,.22);
    transform-origin: 50% 100%;
}
.mytcg-loader-card::before {
    content: "";
    position: absolute;
    inset: 6px;
    border-radius: 5px;
    border: 1px solid rgba(255,255,255,.42);
    background: radial-gradient(circle at 70% 25%, rgba(255,255,255,.8), transparent 18%);
}
.mytcg-loader-card-a {
    background: linear-gradient(145deg, #2563EB, #22D3EE);
    animation: mytcgLoaderCardA 1.4s ease-in-out infinite;
}
.mytcg-loader-card-b {
    background: linear-gradient(145deg, #7C3AED, #2563EB);
    animation: mytcgLoaderCardB 1.4s ease-in-out infinite;
}
.mytcg-loader-card-c {
    background: linear-gradient(145deg, #22D3EE, #7C3AED);
    animation: mytcgLoaderCardC 1.4s ease-in-out infinite;
}
.mytcg-loader-shine {
    position: absolute;
    top: 2px;
    left: 12px;
    width: 26px;
    height: 84px;
    border-radius: 50%;
    background: rgba(255,255,255,.48);
    filter: blur(9px);
    transform: rotate(24deg);
    animation: mytcgLoaderShine 1.4s ease-in-out infinite;
}
.mytcg-loader-dots { display: flex; gap: 6px; margin-top: 18px; }
.mytcg-loader-dots i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--mytcg-primary, #2563EB);
    animation: mytcgLoaderDot 1s ease-in-out infinite;
}
.mytcg-loader-dots i:nth-child(2) { animation-delay: .14s; background: var(--mytcg-cyan, #22D3EE); }
.mytcg-loader-dots i:nth-child(3) { animation-delay: .28s; background: var(--mytcg-violet, #7C3AED); }
@keyframes mytcgLoaderCardA { 0%,100% { transform: translateX(-22px) rotate(-13deg) translateY(3px); } 50% { transform: translateX(-27px) rotate(-17deg) translateY(-2px); } }
@keyframes mytcgLoaderCardB { 0%,100% { transform: translateY(-3px) rotate(0deg); } 50% { transform: translateY(-10px) rotate(1deg); } }
@keyframes mytcgLoaderCardC { 0%,100% { transform: translateX(22px) rotate(13deg) translateY(3px); } 50% { transform: translateX(27px) rotate(17deg) translateY(-2px); } }
@keyframes mytcgLoaderShine { 0% { transform: translateX(-22px) rotate(24deg); opacity: 0; } 35% { opacity: .8; } 100% { transform: translateX(86px) rotate(24deg); opacity: 0; } }
@keyframes mytcgLoaderDot { 0%,100% { transform: translateY(0); opacity: .38; } 50% { transform: translateY(-5px); opacity: 1; } }
@media (max-width: 560px) {
    .mytcg-loader-panel { padding: 26px 20px 22px; border-radius: 24px; }
    .mytcg-loader-panel strong { font-size: 17px; }
}
@media (prefers-reduced-motion: reduce) {
    .mytcg-loader-card, .mytcg-loader-shine, .mytcg-loader-dots i { animation: none !important; }
    .mytcg-loader-card-a { transform: translateX(-22px) rotate(-13deg); }
    .mytcg-loader-card-b { transform: translateY(-5px); }
    .mytcg-loader-card-c { transform: translateX(22px) rotate(13deg); }
}
