:root {
    /* Theme palette
       XPale-Blue #B0C4D4
       Pale-Blue  #8FA8BC
       Blue       #5C7A8F
       Dark-Blue  #3A5266
       XDark-Blue #243847
       Palette reference: https://paletton.com/#uid=53y0y0kePjQ7jtgbpo0iBfBnwcz
    */
    --color-text: #16161D;
    --color-main-bg: #F5F6F7;
    --color-header-bg: #142C41;
    --color-app-bg: #243847;
    --color-pale-blue: #8FA8BC;
    --color-blue: #5C7A8F;
    --color-dark-blue: #3A5266;
    --color-mario-menu-bg: #2f4557;
    --color-border: #768896;
    --color-white: #f8f9fa;
    --color-black: #000;
}

[data-theme='dark'] {
    --color-text: #e3ebf2;
    --color-main-bg: #121c26;
    --color-header-bg: #101c29;
    --color-app-bg: #0b141d;
    --color-pale-blue: #a4bbce;
    --color-blue: #6f90a7;
    --color-dark-blue: #4f6778;
    --color-mario-menu-bg: #3c5669;
    --color-border: #5f7687;
    --color-white: #e8eef3;
    --color-black: #000;
}

body {
    color: var(--color-text);
    font-size: 15px;
    font-family: "Lato", "Helvetica Neue", Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
    background-color: var(--color-app-bg);
}

body,
.main,
.header,
.main-header,
.footer,
.card-profile,
.card-profile-text,
.card-profile-prints {
    -webkit-transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

ul {
    padding: 0;
}

.header {
    background-color: var(--color-header-bg);
    padding: 0 2.5%;
    width: 100%;
}

.logo-title {
    color: var(--color-white);
    font-size: 22px;
    font-weight: 600;
    line-height: 1.2;
}

.header-control-row {
    margin: 0 auto;
    width: 100%;
    overflow: hidden;
    max-width: 1200px;
    position: relative;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-flow: row nowrap;
    -ms-flex-flow: row nowrap;
    flex-flow: row nowrap;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: start;
    -webkit-justify-content: flex-start;
    -ms-flex-pack: start;
    /* justify-content: flex-start; */
    height: 52px;
    justify-content: space-between;
}

.header-logo {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 auto;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
    min-width: 0;
    height: 52px;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: start;
    -webkit-justify-content: flex-start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    color: var(--color-white);
    text-decoration: none;
}

.header-links {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-flow: row nowrap;
    -ms-flex-flow: row nowrap;
    flex-flow: row nowrap;
    -webkit-box-pack: end;
    -webkit-justify-content: flex-end;
    -ms-flex-pack: end;
    justify-content: flex-end;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    height: 52px;
    margin-left: auto;
    gap: 4px;
}

.collection-overlay-toggle-group {
    display: -webkit-inline-box;
    display: -webkit-inline-flex;
    display: -ms-inline-flexbox;
    display: inline-flex;
}

.collection-overlay-toggle-group .btn {
    display: -webkit-inline-box;
    display: -webkit-inline-flex;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
    align-items: center;
    gap: 4px;
}

.collection-overlay-owned-btn.active {
    background-color: #27ae60;
    border-color: #27ae60;
    color: var(--color-white);
}

.collection-overlay-owned-btn.active:hover,
.collection-overlay-owned-btn.active:focus {
    background-color: #219a52;
    border-color: #219a52;
    color: var(--color-white);
}

.collection-overlay-missing-btn.active {
    background-color: #c0392b;
    border-color: #c0392b;
    color: var(--color-white);
}

.collection-overlay-missing-btn.active:hover,
.collection-overlay-missing-btn.active:focus {
    background-color: #a93226;
    border-color: #a93226;
    color: var(--color-white);
}

.collection-overlay-wish-btn.active {
    background-color: #8e44ad;
    border-color: #8e44ad;
    color: var(--color-white);
}

.collection-overlay-wish-btn.active:hover,
.collection-overlay-wish-btn.active:focus {
    background-color: #7d3c98;
    border-color: #7d3c98;
    color: var(--color-white);
}

.icon-collection-check,
.icon-collection-x,
.icon-collection-wish {
    width: 14px;
    height: 14px;
    fill: currentColor;
    -webkit-flex-shrink: 0;
    -ms-flex-negative: 0;
    flex-shrink: 0;
}


@media screen and (min-width: 800px) {
    .header-links {
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        -webkit-flex-flow: row nowrap;
        -ms-flex-flow: row nowrap;
        flex-flow: row nowrap;
        -webkit-box-pack: end;
        -webkit-justify-content: flex-end;
        -ms-flex-pack: end;
        justify-content: flex-end;
        -webkit-box-align: center;
        -webkit-align-items: center;
        -ms-flex-align: center;
        align-items: center;
        height: 52px;
        margin-left: auto;
    }
}

/******/

.main {
    min-height: 70vh;
    background-color: var(--color-main-bg);
}

.inner-flex {
    margin: 0 auto;
    max-width: 1200px;
    position: relative;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-flow: column nowrap;
    -ms-flex-flow: column nowrap;
    flex-flow: column nowrap;
}

.footer {
    background-color: var(--color-header-bg);
    color: var(--color-pale-blue);
    padding: 24px 2.5%;
}

.footer-stats {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: row wrap;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
    gap: 24px;
    padding: 16px 0;
    border-bottom: 1px solid var(--color-dark-blue);
    margin-bottom: 12px;
}

.footer-stat-group {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 8px;
    min-width: 180px;
}

.footer-stat-group-label {
    font-size: 12px;
    font-weight: 700;
    color: var(--color-pale-blue);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    padding-bottom: 2px;
    border-bottom: 1px solid var(--color-dark-blue);
}

.footer-stat-item {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: flex-start;
    gap: 8px;
    background-color: var(--color-dark-blue);
    border-radius: 8px;
    padding: 10px 14px;
}

.footer-stat-body {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 4px;
    -webkit-box-flex: 1;
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
    min-width: 0;
}

.footer-stat-top {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: baseline;
    -webkit-align-items: baseline;
    -ms-flex-align: baseline;
    align-items: baseline;
    gap: 6px;
}

.footer-stat-bar-track {
    width: 100%;
    height: 5px;
    background-color: var(--color-header-bg);
    border-radius: 3px;
    overflow: hidden;
}

.footer-stat-bar-fill {
    height: 100%;
    background-color: #4a9eda;
    border-radius: 3px;
    -webkit-transition: width 0.4s ease;
    transition: width 0.4s ease;
    min-width: 2px;
}

.footer-stat-bar-fill--owned {
    background-color: #4caf82;
}

.footer-stat-icon {
    font-size: 20px;
    line-height: 1;
    padding-top: 2px;
}

.footer-stat-value {
    font-size: 22px;
    font-weight: 700;
    color: var(--color-white);
    min-width: 3ch;
}

.footer-stat-value--price {
    color: #4caf82;
}

.footer-stat-value--unowned {
    color: #e8a838;
}

.footer-stat-label {
    font-size: 13px;
    color: var(--color-pale-blue);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.footer-stat-detail {
    font-size: 12px;
    color: var(--color-blue);
}

.footer-credit {
    font-size: 12px;
    color: var(--color-blue);
    margin: 0;
}

/* ---- Export overlay (floating panel, LinkedIn-style) ---- */

.export-view-toggle {
    display: -webkit-inline-box;
    display: -webkit-inline-flex;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
    align-items: center;
    gap: 4px;
}

.export-view-toggle .icon-inline {
    width: 16px;
    height: 16px;
    fill: currentColor;
    -webkit-flex-shrink: 0;
    -ms-flex-negative: 0;
    flex-shrink: 0;
}

.export-view-toggle.active {
    background-color: var(--color-blue);
    border-color: var(--color-blue);
    color: var(--color-white);
}

.export-view-toggle.active:hover,
.export-view-toggle.active:focus {
    background-color: var(--color-dark-blue);
    border-color: var(--color-dark-blue);
    color: var(--color-white);
}

.theme-toggle.active {
    background-color: var(--color-blue);
    border-color: var(--color-blue);
    color: var(--color-white);
}

.theme-toggle.active:hover,
.theme-toggle.active:focus {
    background-color: var(--color-dark-blue);
    border-color: var(--color-dark-blue);
    color: var(--color-white);
}

[data-theme='dark'] .main {
    background-color: var(--color-main-bg);
}

[data-theme='dark'] .card-grid-header-inner:before {
    background-color: rgba(143, 168, 188, 0.42);
}

[data-theme='dark'] .card-grid-header-content {
    background: var(--color-main-bg);
    color: var(--color-pale-blue);
}

[data-theme='dark'] .card-grid-header-dot {
    color: rgba(143, 168, 188, 0.52);
}

[data-theme='dark'] .card-grid-item-meta,
[data-theme='dark'] .card-grid-item-ebay-link,
[data-theme='dark'] .card-grid-item-tcdb-link,
[data-theme='dark'] .card-grid-item-price {
    color: var(--color-pale-blue);
}

[data-theme='dark'] .card-grid-item-meta-price {
    color: #ff8a65;
}

[data-theme='dark'] .card-grid-item-meta-paid-price {
    color: #2ecc71;
}

[data-theme='dark'] .card {
    -webkit-box-shadow: 0 2px 10px rgba(0, 0, 0, 0.55), 0 0 14px rgba(255, 255, 255, 0.55), 0 0 28px rgba(255, 255, 255, 0.25);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.55), 0 0 14px rgba(255, 255, 255, 0.55), 0 0 28px rgba(255, 255, 255, 0.25);
}

[data-theme='dark'] .card-profile-card-image {
    -webkit-box-shadow: 0 2px 12px rgba(0, 0, 0, 0.6), 0 0 16px rgba(255, 255, 255, 0.6), 0 0 32px rgba(255, 255, 255, 0.28);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.6), 0 0 16px rgba(255, 255, 255, 0.6), 0 0 32px rgba(255, 255, 255, 0.28);
}

[data-theme='dark'] .card-profile {
    background-color: #111c26;
    border-bottom-color: #3a4b58;
    color: var(--color-text);
}

[data-theme='dark'] .card-action-button {
    border-color: #596c7c;
    background: #1b2a37;
    color: var(--color-pale-blue);
}

[data-theme='dark'] .card-action-button:hover:not(:disabled) {
    background: #223445;
}

[data-theme='dark'] .card-action-button.is-active {
    border-color: #7a96ac;
    background: #2a4053;
}

[data-theme='dark'] .card-profile-text {
    background-color: #162330;
    border-color: #4b6172;
}

[data-theme='dark'] .card-profile-prints {
    background-color: #121d28;
}

[data-theme='dark'] .card-text,
[data-theme='dark'] .card-text-card-name,
[data-theme='dark'] .card-profile-type-line,
[data-theme='dark'] .card-profile-text-box p,
[data-theme='dark'] .card-profile-table td > span,
[data-theme='dark'] .card-profile-table td > a {
    color: var(--color-text);
}

[data-theme='dark'] .card-text {
    background: #162330;
    border-color: rgba(172, 192, 209, 0.35);
}

[data-theme='dark'] .card-profile-title,
[data-theme='dark'] .card-profile-type-line,
[data-theme='dark'] .card-profile-text-box p,
[data-theme='dark'] .card-profile-set-line,
[data-theme='dark'] .card-profile-divider,
[data-theme='dark'] .card-profile-actions {
    border-color: rgba(172, 192, 209, 0.20);
}

[data-theme='dark'] .card-profile-table {
    background-color: #162330;
    border-left-color: rgba(172, 192, 209, 0.25);
    border-right-color: rgba(172, 192, 209, 0.25);
    border-top-color: rgba(172, 192, 209, 0.35);
    border-bottom-color: rgba(172, 192, 209, 0.55);
}

[data-theme='dark'] .card-profile-table td {
    background-color: #162330;
    border-top-color: rgba(172, 192, 209, 0.20);
}

[data-theme='dark'] .card-profile-table tbody tr {
    border-bottom-color: rgba(172, 192, 209, 0.20);
    border-left-color: rgba(172, 192, 209, 0.25);
}

[data-theme='dark'] .card-profile-table tr.current td {
    background-color: rgba(111, 144, 167, 0.30);
}

[data-theme='dark'] .card-profile-soft-toggle {
    background: #162330;
    color: var(--color-pale-blue);
}

[data-theme='dark'] .btn-outline-light {
    color: var(--color-white);
}

.export-overlay {
    position: fixed;
    bottom: 0;
    right: 24px;
    width: 380px;
    max-width: calc(100vw - 32px);
    background-color: var(--color-header-bg);
    border: 1px solid var(--color-dark-blue);
    border-bottom: none;
    border-radius: 8px 8px 0 0;
    -webkit-box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.4);
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.4);
    z-index: 1050;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
}

.export-overlay-header {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
    -ms-flex-pack: justify;
    justify-content: space-between;
    padding: 10px 14px;
    background-color: var(--color-dark-blue);
    border-radius: 8px 8px 0 0;
}

.export-overlay-title {
    color: var(--color-white);
    font-weight: 600;
    font-size: 14px;
}

.export-overlay-close {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    color: var(--color-pale-blue);
    font-size: 16px;
    line-height: 1;
    display: -webkit-inline-box;
    display: -webkit-inline-flex;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
}

.export-overlay-close:hover,
.export-overlay-close:focus {
    color: var(--color-white);
    outline: none;
}

.export-overlay-body {
    padding: 12px;
}

.export-overlay-hint {
    color: var(--color-pale-blue);
    font-size: 12px;
    margin: 0 0 8px;
}

.export-textarea {
    width: 100%;
    height: 260px;
    resize: vertical;
    background-color: var(--color-app-bg);
    color: var(--color-white);
    border: 1px solid var(--color-dark-blue);
    border-radius: 4px;
    padding: 8px 10px;
    font-family: "Lato", Arial, sans-serif;
    font-size: 12px;
    line-height: 1.6;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}

.export-textarea:focus {
    outline: none;
    border-color: var(--color-pale-blue);
}

.export-overlay-footer {
    padding: 8px 12px;
    border-top: 1px solid var(--color-dark-blue);
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: end;
    -webkit-justify-content: flex-end;
    -ms-flex-pack: end;
    justify-content: flex-end;
}

.export-copy-btn--copied {
    background-color: #27ae60 !important;
    border-color: #27ae60 !important;
    color: var(--color-white) !important;
}

.scroll-to-top-btn {
    position: fixed;
    right: 18px;
    bottom: 16px;
    z-index: 1040;
    border: 1px solid var(--color-border);
    background-color: rgba(20, 44, 65, 0.82);
    color: var(--color-white);
    border-radius: 999px;
    font-size: 11px;
    line-height: 1;
    padding: 7px 10px;
    opacity: 0;
    visibility: hidden;
    -webkit-transform: translateY(6px);
    transform: translateY(6px);
    -webkit-transition: opacity .2s ease, -webkit-transform .2s ease, visibility .2s ease;
    transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
}

.scroll-to-top-btn:hover,
.scroll-to-top-btn:focus {
    background-color: var(--color-header-bg);
    outline: none;
}

.scroll-to-top-btn.is-visible {
    opacity: .72;
    visibility: visible;
    -webkit-transform: translateY(0);
    transform: translateY(0);
}

@media screen and (max-width: 480px) {
    .export-overlay {
        right: 0;
        width: 100%;
        max-width: 100%;
        border-radius: 8px 8px 0 0;
    }

    .scroll-to-top-btn {
        right: 12px;
        bottom: 12px;
    }
}

/* Mobile: footer stats — 2-column layout for stat groups */
@media screen and (max-width: 600px) {
    .footer-stats {
        display: -ms-grid;
        display: grid;
        -ms-grid-columns: 1fr 12px 1fr;
        grid-template-columns: 1fr 1fr;
        gap: 12px;
    }

    .footer-stat-group {
        min-width: 0;
    }

    .footer-stat-group:last-child:nth-child(odd) {
        grid-column: 1 / -1;
    }

    .footer-stat-item {
        padding: 8px 10px;
        gap: 6px;
    }

    .footer-stat-icon {
        font-size: 17px;
    }

    .footer-stat-value {
        font-size: 18px;
    }

    .footer-stat-label {
        font-size: 11px;
    }

    .footer-stat-detail {
        font-size: 11px;
    }
}

/* Mobile: rework top header for small screens */
@media screen and (max-width: 600px) {
    .header-control-row {
        height: auto;
        -webkit-flex-direction: column;
        -ms-flex-direction: column;
        flex-direction: column;
        -webkit-align-items: center;
        align-items: center;
        padding: 8px 0;
        gap: 6px;
        overflow: visible;
    }

    .header-logo {
        height: auto;
        width: 100%;
        -webkit-box-pack: center;
        -webkit-justify-content: center;
        -ms-flex-pack: center;
        justify-content: center;
    }

    .logo-title {
        font-size: 17px;
        text-align: center;
    }

    .header-links {
        height: auto;
        margin-left: 0;
        width: 100%;
        -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        -webkit-box-pack: center;
        -webkit-justify-content: center;
        -ms-flex-pack: center;
        justify-content: center;
    }
}