/* ════════════════════════════════════════════
   ModulPix — Shared Design System
   Link this from every HTML page.
   ════════════════════════════════════════════ */

/* ── FONTS ── */
@import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=DM+Mono:wght@400;500&family=Syne:wght@400;500;600;700&display=swap');

/* ── VARIABLES ── */
:root {
    --bg:    #0a0a0a;
    --s1:    #111;
    --s2:    #181818;
    --s3:    #222;
    --b1:    #2a2a2a;
    --b2:    #333;
    --t1:    #e8e6e0;
    --t2:    #888880;
    --t3:    #767670;
    --accent:  #c8f53a;
    --accent2: #a8d820;
    --adim:    rgba(200,245,58,.08);
    --aborder: rgba(200,245,58,.22);
    --sw: 260px;
    --th: 52px;
    --cb: 48px;
}

/* ── BASE ── */
*, *::before, *::after { box-sizing: border-box; }

body {
    background: var(--bg);
    color: var(--t1);
    font-family: 'Syne', sans-serif;
    margin: 0;
}

button {
     font-family: 'Syne', sans-serif;
     font-weight: 700;
}

/* ── TOPBAR ── */
.topbar {
    position: sticky;
    top: 0;
    z-index: 200;
    height: var(--th);
    padding: 0 20px;
    background: rgba(10,10,10,.96);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border-bottom: 1px solid var(--b1);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-shrink: 0;
}

/* Use .topbar-fixed when the page has a sidebar or cat-bar that depends on fixed positioning */
.topbar-fixed {
    position: fixed;
}

/* ── LOGO ── */
.logo {
    font-family:'Syne',sans-serif;
    font-size:20px; 
    font-weight: 800;c
    color: var(--t1);
    letter-spacing: -.3px;
    white-space: nowrap;
    text-decoration: none;
    flex-shrink: 0;
}
.logo span { color: var(--accent); }

/* ── TAB GROUP ── */
.tab-group {
    display: flex;
    background: var(--s2);
    border: 1px solid var(--b1);
    border-radius: 100px;
    padding: 3px;
    gap: 2px;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
}

@media (max-width: 600px) {
    :root { --th: 106px; }

    .topbar {
        flex-wrap: wrap;
        height: auto;
        padding: 0 16px;
        align-content: flex-start;
    }

    .logo {
        height: 52px;
        display: flex;
        align-items: center;
        order: 1;
    }

    .topbar-right {
        height: 52px;
        display: flex;
        align-items: center;
        margin-left: auto;
        order: 2;
    }

    .tab-group {
        position: static;
        transform: none;
        order: 3;
        flex-basis: 100%;
        justify-content: center;
        margin-bottom: 16px;
    }

    .tab-group .tab-btn {
        flex: 1;
        justify-content: center;
    }
}

.tab-btn {
    padding: 8px 16px;
    border-radius: 100px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    color: var(--t2);
    border: none;
    background: none;
    font-family: 'Syne', sans-serif;
    transition: all .18s;
    white-space: nowrap;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    line-height: 1;
}
.tab-btn.active  { background: var(--accent); color: #000; }
.tab-btn:hover:not(.active) { color: var(--t1); }

/* ── TOPBAR RIGHT ── */
.topbar-right {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
}

/* ── TOUR BUTTON ── */
.tour-btn {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 5px 11px;
    border-radius: 100px;
    border: 1px solid var(--b1);
    background: none;
    color: var(--t3);
    font-size: 11px;
    font-family: 'Syne', sans-serif;
    font-weight: 700;
    cursor: pointer;
    letter-spacing: .04em;
    transition: border-color .15s, color .15s;
    white-space: nowrap;
}
.tour-btn:hover {
    border-color: var(--accent);
    color: var(--accent);
}

/* ── AVATAR BUTTON ── */
.avatar-btn {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--accent);
    color: #000;
    font-family: 'Syne', sans-serif;
    font-weight: 800;
    font-size: 13px;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    transition: opacity .15s;
    flex-shrink: 0;
}
.avatar-btn:hover { opacity: .82; }
.avatar-btn img { width: 100%; height: 100%; object-fit: cover; }

/* ── AVATAR DROPDOWN ── */
.avatar-menu { position: relative; flex-shrink: 0; }

.avatar-dropdown {
    display: none;
    position: absolute;
    right: 0;
    top: calc(100% + 8px);
    min-width: 176px;
    background: var(--s2);
    border: 1px solid var(--b1);
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 8px 32px rgba(0,0,0,.65);
    z-index: 500;
    flex-direction: column;
}
.avatar-dropdown.open { display: flex; }

.avatar-dropdown a,
.avatar-dropdown button {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 11px 14px;
    font-size: 12px;
    color: var(--t2);
    background: none;
    border: none;
    border-bottom: 1px solid var(--b1);
    cursor: pointer;
    text-decoration: none;
    font-family: 'Syne', sans-serif;
    font-weight: 500;
    transition: background .15s, color .15s;
    text-align: left;
    white-space: nowrap;
}
.avatar-dropdown a:last-child,
.avatar-dropdown button:last-child { border-bottom: none; }
.avatar-dropdown a:hover,
.avatar-dropdown button:hover { background: var(--s3); color: var(--t1); }
.avatar-dropdown .dd-current {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 11px 14px;
    font-size: 12px;
    font-family: 'Syne', sans-serif;
    font-weight: 700;
    border-bottom: 1px solid var(--b1);
    color: var(--accent);
    pointer-events: none;
    white-space: nowrap;
}
.avatar-dropdown .dd-current:hover { background: none; }

/* ── TOAST (shared style, used by pages that don't have their own) ── */
.mp-toast {
    position: fixed;
    bottom: 24px;
    left: 50%;
    transform: translateX(-50%) translateY(10px);
    background: var(--s2);
    border: 1px solid var(--b1);
    color: var(--t1);
    padding: 10px 20px;
    border-radius: 100px;
    font-size: 12px;
    font-weight: 600;
    font-family: 'Syne', sans-serif;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s, transform .2s;
    z-index: 9999;
}
.mp-toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }

/* ── TAILWIND EMERALD → ACCENT OVERRIDES ── */
/* Replaces Tailwind's green (#10b981) with the new accent (#c8f53a) site-wide */
.bg-emerald-500                      { background-color: var(--accent) !important; }
.bg-emerald-400                      { background-color: var(--accent2) !important; }
.text-emerald-500                    { color: var(--accent) !important; }
.text-emerald-400                    { color: var(--accent2) !important; }
.border-emerald-500                  { border-color: var(--accent) !important; }
.border-emerald-400                  { border-color: var(--accent2) !important; }
.hover\:bg-emerald-500:hover         { background-color: var(--accent) !important; }
.hover\:bg-emerald-400:hover         { background-color: var(--accent2) !important; }
.hover\:text-emerald-500:hover       { color: var(--accent) !important; }
.hover\:text-emerald-400:hover       { color: var(--accent2) !important; }
.group:hover .group-hover\:text-emerald-500 { color: var(--accent) !important; }
.group:hover .group-hover\:text-emerald-400 { color: var(--accent) !important; }
.hover\:border-emerald-500:hover     { border-color: var(--accent) !important; }
.focus\:border-emerald-500:focus     { border-color: var(--accent) !important; }
.accent-emerald-500                  { accent-color: var(--accent) !important; }
.hover\:border-emerald-500\/40:hover { border-color: rgba(200,245,58,.4) !important; }
.hover\:border-emerald-500\/50:hover { border-color: rgba(200,245,58,.5) !important; }
.bg-emerald-500\/10                  { background-color: var(--adim) !important; }
.text-emerald-400.border-emerald-500\/20 { border-color: var(--aborder) !important; }

/* Loader spinner — replace emerald ring with accent */
.border-emerald-500 { border-color: var(--accent) !important; }

/* Copy button on builder */
#copyBtn { background: var(--accent) !important; color: #000 !important; }
#copyBtn:hover { background: var(--accent2) !important; }
#mobileCopyBtn { background: var(--accent) !important; color: #000 !important; }

/* Usage bar */
#usage-bar { background: var(--accent) !important; }

/* ── ADMIN / INTERNAL PAGES — shared content styles ── */
.mp-page-wrap {
    max-width: 1100px;
    margin: 0 auto;
    padding: 40px 24px 80px;
}

.mp-page-title {
    font-family: 'DM Serif Display', serif;
    font-size: 24px;
    color: var(--t1);
    margin: 0 0 4px;
}

.mp-page-sub {
    font-size: 12px;
    color: var(--t3);
    font-family: 'DM Mono', monospace;
}

.mp-table-wrap {
    border: 1px solid var(--b1);
    border-radius: 14px;
    overflow: hidden;
}

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

.mp-table thead tr {
    background: var(--s1);
    border-bottom: 1px solid var(--b1);
}

.mp-table th {
    padding: 12px 20px;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: var(--t3);
    font-family: 'Syne', sans-serif;
    text-align: left;
}

.mp-table tbody tr {
    border-bottom: 1px solid var(--b1);
    transition: background .15s;
}
.mp-table tbody tr:last-child { border-bottom: none; }
.mp-table tbody tr:hover { background: var(--s2); }

.mp-table td {
    padding: 14px 20px;
    font-size: 13px;
    color: var(--t2);
    font-family: 'Syne', sans-serif;
}

/* ── FOOTER ── */
.site-footer a { transition: color .15s ease; }
.site-footer a:hover { color: var(--t1) !important; }

/* ── SCROLLBAR ── */
::-webkit-scrollbar { width: 4px; height: 4px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--b2); border-radius: 10px; }
