/* ── Groove palette ─────────────────────────────────────────── */
:root {
    --g-bg:         #fff8ef;
    --g-text:       #22152d;
    --g-muted:      #6b6276;
    --g-line:       rgba(52,22,77,.08);
    --g-pink:       #ff4fa3;
    --g-coral:      #ff7a59;
    --g-orange:     #ffb703;
    --g-violet:     #7d4dff;
    --g-mint:       #4dd9c2;
    --g-sky:        #66b7ff;
    --g-shadow-sm:  0 10px 24px rgba(67,40,91,.08);
    --g-shadow-md:  0 18px 36px rgba(67,40,91,.12);
    --g-r-xl:       32px;
    --g-r-lg:       22px;
    --g-r-md:       14px;
}

/* anime theme overrides */
.sdf-theme-ferias {
    --g-violet: #7d4dff;
    --g-pink: #ff4fa3;
    --g-coral: #ff7a59;
}
.sdf-theme-eventos {
    --g-bg: #f4fbff;
    --g-violet: #2563eb;
    --g-pink: #ff4fa3;
    --g-mint: #22d3ee;
}
.sdf-theme-convenciones {
    --g-bg: #f7f6ff;
    --g-violet: #1d4ed8;
    --g-pink: #0f766e;
    --g-mint: #4dd9c2;
}
.sdf-theme-anime {
    --g-bg: #0f1020;
    --g-text: #f0eeff;
    --g-muted: #9b93b8;
    --g-line: rgba(160,140,255,.12);
    --g-pink: #ff4fa3;
    --g-violet: #9d71ff;
    --g-shadow-sm: 0 10px 24px rgba(10,8,30,.28);
    --g-shadow-md: 0 18px 36px rgba(10,8,30,.38);
}

*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }

html { scroll-behavior: smooth; min-height: 100%; }

html:has(body.sdf-page) { overflow-x: hidden; }
body.sdf-page {
    margin: 0;
    color: var(--g-text);
    font: 15px/1.5 Inter, ui-sans-serif, system-ui, -apple-system, sans-serif;
    background:
        radial-gradient(circle at 10% 8%, rgba(255,79,163,.16), transparent 20%),
        radial-gradient(circle at 88% 10%, rgba(125,77,255,.13), transparent 22%),
        radial-gradient(circle at 75% 80%, rgba(77,217,194,.14), transparent 20%),
        linear-gradient(180deg, #fff9f1, #fff2e2 54%, #fff7ef);
    min-height: 100dvh;
    overflow-x: hidden;
}
.sdf-theme-anime body.sdf-page,
body.sdf-page.sdf-theme-anime {
    background:
        radial-gradient(circle at 12% 8%, rgba(157,113,255,.22), transparent 22%),
        radial-gradient(circle at 85% 12%, rgba(255,79,163,.18), transparent 22%),
        linear-gradient(180deg, #0f1020, #141428 60%, #0f1020);
}

/* ── Top bar ──────────────────────────────────────────────────── */
.sdf-top {
    position: sticky;
    top: 0;
    z-index: 100;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 16px;
    background: rgba(255,248,239,.88);
    backdrop-filter: blur(14px);
    border-bottom: 1px solid var(--g-line);
}
.sdf-theme-anime .sdf-top {
    background: rgba(15,16,32,.88);
}
.sdf-brand {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    padding-inline-end: 4px;
    font-weight: 800;
    font-size: .92rem;
    letter-spacing: -.02em;
    color: var(--g-text);
    text-decoration: none;
}
.sdf-top-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    min-width: 0;
}
.sdf-top-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 44px;
    padding: 0 14px;
    border-radius: 999px;
    font-weight: 800;
    font-size: .82rem;
    color: var(--g-violet);
    background: rgba(125,77,255,.08);
    border: 1px solid rgba(125,77,255,.15);
    text-decoration: none;
    transition: background .18s;
}
.sdf-top-link:hover { background: rgba(125,77,255,.14); }
.sdf-top-link--profile {
    color: #fff;
    background: linear-gradient(135deg, var(--g-violet), var(--g-pink));
    border-color: transparent;
    box-shadow: 0 6px 14px rgba(125,77,255,.22);
}
.sdf-glyph {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.15em;
    min-width: 1.15em;
    line-height: 1;
}

/* ── Shell ────────────────────────────────────────────────────── */
.sdf-shell {
    width: min(calc(100% - 24px), 680px);
    margin: 0 auto;
    padding: 20px 0 calc(140px + env(safe-area-inset-bottom));
    display: grid;
    gap: 16px;
}

/* ── Intro / search ───────────────────────────────────────────── */
.sdf-intro {
    display: grid;
    gap: 10px;
}
.sdf-intro p {
    margin: 0;
    font-size: .8rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--g-violet);
}
.sdf-intro h1 {
    margin: 0;
    font-size: clamp(1.5rem, 5vw, 2rem);
    font-weight: 800;
    letter-spacing: -.04em;
    line-height: 1.1;
}
.sdf-intro-lead {
    display: block;
    max-width: 42rem;
    color: var(--g-muted);
    font-size: .92rem;
    line-height: 1.45;
}
.sdf-search {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 16px;
    border-radius: 999px;
    border: 1px solid var(--g-line);
    background: rgba(255,255,255,.8);
    box-shadow: var(--g-shadow-sm);
}
.sdf-search span { display: none; }
.sdf-search input {
    flex: 1;
    min-height: 28px;
    border: none;
    background: none;
    font: inherit;
    color: var(--g-text);
    outline: none;
    min-width: 0;
}
.sdf-search input::placeholder { color: var(--g-muted); }

.sdf-vertical-tabs {
    display: flex;
    gap: 7px;
    overflow-x: auto;
    padding-bottom: 2px;
    scrollbar-width: none;
}
.sdf-vertical-tabs::-webkit-scrollbar { display: none; }
.sdf-vertical-tabs a {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 42px;
    padding: 0 14px;
    border-radius: 999px;
    border: 1px solid var(--g-line);
    background: rgba(255,255,255,.76);
    color: var(--g-text);
    font-size: .78rem;
    font-weight: 850;
    text-decoration: none;
    box-shadow: var(--g-shadow-sm);
}
.sdf-vertical-tabs a.is-active {
    color: #fff;
    border-color: transparent;
    background: linear-gradient(135deg, var(--g-violet), var(--g-pink));
}

.sdf-intent {
    display: flex;
    gap: 7px;
    overflow-x: auto;
    padding-bottom: 2px;
    scrollbar-width: none;
}
.sdf-intent::-webkit-scrollbar { display: none; }
.sdf-intent a {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 44px;
    padding: 0 14px;
    border-radius: 999px;
    border: 1px solid rgba(125,77,255,.14);
    background: rgba(255,255,255,.78);
    color: var(--g-text);
    font-size: .78rem;
    font-weight: 800;
    text-decoration: none;
    box-shadow: var(--g-shadow-sm);
}
.sdf-intent a:first-child {
    color: #fff;
    border-color: transparent;
    background: linear-gradient(135deg, var(--g-violet), var(--g-pink));
}
.sdf-intent .sdf-glyph { font-size: .84rem; }

/* ── Featured card ────────────────────────────────────────────── */
.sdf-feature {
    position: relative;
    background: rgba(255,255,255,.85);
    border: 1px solid rgba(255,255,255,.78);
    border-radius: var(--g-r-xl);
    box-shadow: var(--g-shadow-md);
    overflow: hidden;
}
.sdf-feature-media { display: block; }
.sdf-feature-media img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    display: block;
}
.sdf-feature-body { padding: 18px; }
.sdf-feature .sdf-save-anchor { top: 12px; right: 12px; }

/* ── Quick chips ──────────────────────────────────────────────── */
.sdf-filter-strip {
    display: flex;
    align-items: center;
    gap: 8px;
    overflow-x: auto;
    overflow-y: visible;
    padding: 1px 2px 6px;
    margin-inline: -2px;
    scrollbar-width: none;
    scroll-padding-inline: 2px;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
}
.sdf-filter-strip::-webkit-scrollbar { display: none; }
.sdf-quick {
    display: flex;
    flex: 0 0 auto;
    gap: 7px;
}
.sdf-quick button {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 44px;
    padding: 0 14px;
    border-radius: 999px;
    border: 1px solid var(--g-line);
    background: rgba(255,255,255,.75);
    box-shadow: var(--g-shadow-sm);
    font: inherit;
    font-size: .78rem;
    font-weight: 800;
    color: var(--g-text);
    cursor: pointer;
    transition: transform .16s ease, background .16s ease, border-color .16s ease;
}
.sdf-quick button:hover {
    transform: translateY(-1px);
    background: rgba(255,255,255,.95);
}
.sdf-quick button[aria-pressed="true"],
.sdf-quick button.is-active {
    background: var(--g-violet);
    border-color: transparent;
    color: #fff;
    box-shadow: 0 6px 14px rgba(125,77,255,.3);
}
.sdf-quick button .sdf-glyph { font-size: .82rem; opacity: .92; }

/* ── Advanced filters ─────────────────────────────────────────── */
.sdf-advanced {
    position: relative;
    z-index: 45;
    flex: 0 0 auto;
    width: max-content;
    max-width: 100%;
}
.sdf-advanced summary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 44px;
    padding: 0 14px;
    border: 1px solid var(--g-line);
    border-radius: 999px;
    background: rgba(255,255,255,.78);
    box-shadow: var(--g-shadow-sm);
    font-size: .8rem;
    font-weight: 800;
    color: var(--g-text);
    cursor: pointer;
    list-style: none;
    transition: background .16s ease, color .16s ease, transform .16s ease;
}
.sdf-advanced summary::-webkit-details-marker { display: none; }
.sdf-advanced summary::marker { content: ""; }
.sdf-advanced summary::after {
    content: "\25be";
    font-size: .72rem;
    opacity: .7;
}
.sdf-advanced summary:hover {
    transform: translateY(-1px);
    background: rgba(255,255,255,.96);
}
.sdf-advanced[open] summary {
    color: #fff;
    border-color: transparent;
    background: linear-gradient(135deg, var(--g-violet), var(--g-pink));
}
.sdf-advanced[open] summary::after {
    transform: rotate(180deg);
}
.sdf-advanced:not([open]) .sdf-advanced-panel {
    display: none;
}
.sdf-advanced-panel {
    position: absolute;
    bottom: calc(100% + 10px);
    left: 50%;
    transform: translateX(-50%);
    display: grid;
    gap: 12px;
    width: min(620px, calc(100vw - 24px));
    padding: 16px;
    border: 1px solid rgba(255,255,255,.8);
    border-radius: 22px;
    background: rgba(255,255,255,.94);
    box-shadow: 0 22px 48px rgba(67,40,91,.18);
    backdrop-filter: blur(16px);
}
.sdf-advanced-title {
    color: var(--g-text);
    font-size: .9rem;
    letter-spacing: -.01em;
}
.sdf-filter-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 0;
    align-items: flex-end;
}
.sdf-filter-grid label {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
    flex: 1 1 110px;
    font-size: .76rem;
    font-weight: 800;
    color: var(--g-muted);
}
.sdf-filter-grid input,
.sdf-filter-grid select {
    width: 100%;
    min-height: 44px;
    min-width: 0;
    padding: 8px 10px;
    border-radius: 10px;
    border: 1px solid var(--g-line);
    background: rgba(255,255,255,.9);
    font: inherit;
    font-size: .82rem;
    color: var(--g-text);
}
.sdf-clear {
    display: block;
    width: max-content;
    margin: 0;
    min-height: 44px;
    padding: 0 14px;
    border-radius: 999px;
    border: 1px solid var(--g-line);
    background: rgba(255,255,255,.72);
    font: inherit;
    font-size: .78rem;
    font-weight: 800;
    color: var(--g-muted);
    cursor: pointer;
}

/* ── Result line ──────────────────────────────────────────────── */
.sdf-result-line {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    font-size: .78rem;
    color: var(--g-muted);
}
.sdf-result-line strong { color: var(--g-text); font-weight: 800; }

/* ── Organizer shortcut ───────────────────────────────────────── */
.sdf-organizer-shortcut {
    display: grid;
    gap: 12px;
    padding: 16px;
    border-radius: var(--g-r-lg);
    background: rgba(255,255,255,.75);
    border: 1px solid var(--g-line);
    box-shadow: var(--g-shadow-sm);
}
.sdf-organizer-shortcut strong { display: block; font-size: .92rem; font-weight: 800; }
.sdf-organizer-shortcut span  { font-size: .8rem; color: var(--g-muted); }

/* ── Feed ─────────────────────────────────────────────────────── */
.sdf-feed { display: grid; gap: 10px; }

/* ── Card ─────────────────────────────────────────────────────── */
.sdf-card {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    min-width: 0;
    gap: 8px;
    padding: 13px;
    background: rgba(255,249,253,.92);
    border: 1px solid rgba(99,51,113,.12);
    border-radius: 18px;
    box-shadow: 0 10px 26px rgba(64,28,70,.1);
    overflow: hidden;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.sdf-card::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at 100% 0%, rgba(125,77,255,.08), transparent 34%),
        radial-gradient(circle at 0% 100%, rgba(255,79,163,.08), transparent 36%);
}
.sdf-card > * {
    position: relative;
    z-index: 1;
}
.sdf-card:hover {
    transform: translateY(-2px);
    border-color: rgba(125,77,255,.2);
    box-shadow: var(--g-shadow-md);
}
.sdf-theme-anime .sdf-card {
    background: rgba(20,20,40,.94);
    border-color: rgba(160,140,255,.18);
}
.sdf-card--featured {
    box-shadow: var(--g-shadow-md);
}
.sdf-card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-width: 0;
}
.sdf-badge-row {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}
.sdf-card-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(72px, 104px);
    align-items: start;
    gap: 10px;
    padding-right: 40px;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
}

/* save pin */
.sdf-card > .sdf-save-anchor,
.sdf-feature .sdf-save-anchor {
    position: absolute;
    top: 14px;
    right: 14px;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,.5);
    background: rgba(255,255,255,.88);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .9rem;
    color: var(--g-muted);
    cursor: pointer;
    transition: color .18s, background .18s;
    z-index: 3;
}
.sdf-card > .sdf-save-anchor:hover,
.sdf-feature .sdf-save-anchor:hover {
    color: var(--g-violet);
    background: rgba(255,255,255,.96);
}
.sdf-card > .sdf-save-anchor + .sdf-card-heading {
    padding-right: 54px;
}
.sdf-card > .sdf-save-anchor + .sdf-card-img {
    margin-top: 0;
}
.sdf-card > .sdf-save-anchor + .sdf-card-img + .sdf-card-main {
    padding-right: 0;
}
.sdf-card > .sdf-save-anchor.is-active,
.sdf-feature .sdf-save-anchor.is-active {
    color: var(--g-violet);
    background: rgba(239,232,255,.95);
}

/* icon buttons row inside .sdf-actions */
.sdf-card-icons {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}
.sdf-icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    border: 1px solid var(--g-line);
    background: rgba(255,255,255,.8);
    color: var(--g-muted);
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: -.02em;
    cursor: pointer;
    text-decoration: none;
    transition: border-color .15s, color .15s;
    flex-shrink: 0;
}
.sdf-icon-btn:hover { border-color: rgba(125,77,255,.3); color: var(--g-violet); }
.sdf-icon-btn--ig {
    background: linear-gradient(45deg, #f09433, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888);
    border-color: transparent;
    color: #fff !important;
}
.sdf-icon-btn--ig:hover { border-color: transparent; color: #fff !important; opacity: .88; }
.sdf-save-anchor.is-active {
    border-color: rgba(125,77,255,.3);
    color: var(--g-violet);
    background: rgba(239,232,255,.9);
}

/* card image */
.sdf-card-img {
    display: block;
    border-radius: 16px;
    overflow: hidden;
    flex-shrink: 0;
    background: rgba(125,77,255,.08);
}
.sdf-card-img img {
    width: 78px;
    height: 86px;
    object-fit: cover;
    display: block;
}

/* card content */
.sdf-card-main {
    min-width: 0;
    display: grid;
    gap: 7px;
}
.sdf-card-title {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    color: var(--g-text);
    font-size: 1.05rem;
    font-weight: 850;
    letter-spacing: -.03em;
    line-height: 1.12;
}
.sdf-card-title a {
    color: inherit;
    text-decoration: none;
}
.sdf-card-title a:hover { color: var(--g-violet); }
.sdf-card-subline {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    min-width: 0;
}
.sdf-card-meta {
    display: grid;
    gap: 5px;
    color: var(--g-muted);
    font-size: .82rem;
    line-height: 1.28;
}
.sdf-meta-line {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    min-width: 0;
}
.sdf-meta-icon {
    flex: 0 0 auto;
    width: 18px;
    text-align: center;
    opacity: .88;
}
.sdf-card-place {
    flex: 1 1 145px;
    min-width: 0;
    display: inline-flex;
    align-items: flex-start;
    gap: 6px;
    color: var(--g-muted);
    font-size: .82rem;
    line-height: 1.28;
}
.sdf-one-line {
    min-width: 0;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
.sdf-card-kicker {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    min-width: 0;
}
.sdf-card-main h2 {
    margin: 0;
    font-size: 1rem;
    font-weight: 800;
    letter-spacing: -.02em;
    line-height: 1.16;
}
.sdf-card-main h2 a { color: var(--g-text); text-decoration: none; }
.sdf-card-main h2 a:hover { color: var(--g-violet); }

/* status badge */
.sdf-status {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 0 9px;
    border-radius: 999px;
    font-size: .75rem;
    font-weight: 800;
    max-width: min(100%, 190px);
    line-height: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.sdf-status--live     { background: rgba(255,79,163,.12); color: var(--g-pink); }
.sdf-status--today    { background: rgba(255,183,3,.12); color: #8b5200; }
.sdf-status--scheduled { background: rgba(125,77,255,.08); color: var(--g-violet); }
.sdf-status--open-call { background: rgba(125,77,255,.11); color: #6630c8; }
.sdf-status--rescheduled,
.sdf-status--postponed { background: rgba(255,183,3,.16); color: #805300; }
.sdf-status--cancelled,
.sdf-status--canceled { background: rgba(255,79,163,.14); color: #b31855; }
.sdf-status--past     { background: var(--g-line); color: var(--g-muted); }
.sdf-date-label {
    justify-self: end;
    width: 100%;
    max-width: 104px;
    padding-top: 1px;
    color: var(--g-muted);
    font-size: .74rem;
    font-weight: 800;
    line-height: 1.16;
    text-align: right;
    white-space: normal;
    overflow-wrap: anywhere;
}
.sdf-mini-pill {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 0 8px;
    border-radius: 999px;
    background: rgba(77,217,194,.14);
    color: #0f766e;
    font-size: .7rem;
    font-weight: 850;
    white-space: nowrap;
}

/* tags inline */
.sdf-tag {
    display: inline-flex;
    align-items: center;
    padding: 2px 7px;
    border-radius: 999px;
    font-size: .65rem;
    font-weight: 800;
    background: rgba(125,77,255,.06);
    border: 1px solid rgba(125,77,255,.12);
    color: var(--g-violet);
}

/* info list */
.sdf-info {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 3px;
}
.sdf-info li {
    display: flex;
    align-items: baseline;
    gap: 5px;
    font-size: .78rem;
    color: var(--g-muted);
    line-height: 1.3;
    min-width: 0;
    overflow: hidden;
}
.sdf-info li i {
    font-size: .68rem;
    color: var(--g-violet);
    opacity: .75;
    flex-shrink: 0;
    margin-top: 2px;
}

.sdf-card-organizer {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    width: max-content;
    max-width: 100%;
    min-height: 44px;
    padding: 3px 9px 3px 3px;
    border: 1px solid rgba(139,53,232,.14);
    border-radius: 999px;
    background: rgba(255,255,255,.74);
    color: var(--g-muted);
    font-size: .76rem;
    font-weight: 750;
    text-decoration: none;
}
.sdf-card-organizer:hover { color: var(--g-violet); }
.sdf-theme-anime .sdf-card-organizer {
    background: rgba(255,255,255,.06);
    border-color: rgba(160,140,255,.16);
}
.sdf-card-organizer img {
    width: 25px;
    height: 25px;
    border-radius: 50%;
    object-fit: cover;
    background: rgba(125,77,255,.08);
}
.sdf-card-organizer span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.sdf-card-organizer strong {
    color: var(--g-text);
    font-weight: 850;
}

.sdf-card-tags.sdf-card-tags--compact {
    display: flex;
    align-items: center;
    gap: 5px;
    overflow: hidden;
}
.sdf-card-tags.sdf-card-tags--compact span {
    min-height: 24px;
    max-width: 120px;
    padding: 0 8px;
    border-radius: 999px;
    background: rgba(139,53,232,.09);
    color: #7140c9;
    font-size: .75rem;
    font-weight: 750;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.sdf-card-tags.sdf-card-tags--compact .sdf-tag-more {
    background: rgba(255,79,163,.09);
    color: var(--g-pink);
}

.sdf-weather-alert {
    display: flex;
    align-items: flex-start;
    gap: 7px;
    margin: 0;
    padding: 9px 10px;
    border-radius: 13px;
    background: rgba(255,183,3,.14);
    color: #805300;
    font-size: .82rem;
    line-height: 1.25;
}
.sdf-weather-alert > span:first-child { flex: 0 0 auto; }

/* open call */
.sdf-opportunity {
    margin: 0;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 9px;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 800;
    background: rgba(255,79,163,.08);
    border: 1px solid rgba(255,79,163,.14);
    color: var(--g-pink);
}
.sdf-opportunity i { font-size: .66rem; }

.sdf-note {
    margin: 0;
    font-size: .75rem;
    color: var(--g-muted);
    font-style: italic;
}

/* ── Actions ──────────────────────────────────────────────────── */
.sdf-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    padding-top: 1px;
}

.sdf-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-height: 44px;
    padding: 0 14px;
    border-radius: 999px;
    border: 1px solid var(--g-line);
    background: rgba(255,255,255,.8);
    color: var(--g-text);
    font: inherit;
    font-size: .76rem;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
    transition: transform .18s ease, box-shadow .18s ease;
    box-shadow: var(--g-shadow-sm);
}
.sdf-btn:hover { transform: translateY(-1px); box-shadow: var(--g-shadow-md); }

.sdf-btn--primary {
    flex: 0 0 auto;
    min-width: 0;
    background: linear-gradient(135deg, var(--g-violet), var(--g-pink));
    border-color: transparent;
    color: #fff;
    box-shadow: 0 6px 14px rgba(125,77,255,.28);
}
.sdf-card .sdf-btn {
    min-height: 44px;
    padding: 0 14px;
    font-size: .74rem;
}
.sdf-btn--primary:hover { box-shadow: 0 8px 20px rgba(125,77,255,.38); }
.sdf-btn--secondary {
    flex: 0 0 auto;
    color: var(--g-violet);
    background: rgba(255,255,255,.78);
    border-color: rgba(125,77,255,.18);
}
.sdf-btn--only {
    width: 100%;
}

.sdf-btn--ghost {
    width: 44px;
    height: 44px;
    padding: 0;
    background: rgba(125,77,255,.06);
    border-color: rgba(125,77,255,.14);
    color: var(--g-violet);
}

.sdf-ig-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: none;
    background: linear-gradient(45deg, #f09433, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888);
    color: #fff;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: -.04em;
    flex-shrink: 0;
    cursor: pointer;
    transition: transform .18s ease, box-shadow .18s ease;
    box-shadow: 0 4px 10px rgba(220,39,67,.25);
}
.sdf-ig-btn,
.sdf-ig-btn:visited {
    color: #fff !important;
}
.sdf-ig-btn:hover { transform: translateY(-1px) scale(1.06); }
.sdf-ig-btn span,
.sdf-ig-btn i {
    display: inline-flex;
    line-height: 1;
    color: #fff !important;
    text-shadow: 0 1px 2px rgba(34,21,45,.24);
}

/* ── Featured item actions ────────────────────────────────────── */
.sdf-feature .sdf-btn { min-height: 44px; padding: 0 16px; font-size: .82rem; }
.sdf-feature .sdf-ig-btn { width: 44px; height: 44px; font-size: 16px; }
.sdf-feature .sdf-card-kicker {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-bottom: 4px;
}
.sdf-feature .sdf-date-label {
    font-size: .8rem;
    font-weight: 800;
    color: var(--g-muted);
}
.sdf-feature .sdf-actions { margin-top: 14px; }
.sdf-feature h2 { margin: 0 0 4px; font-size: 1.2rem; letter-spacing: -.04em; }
.sdf-feature h2 a { color: var(--g-text); text-decoration: none; }
.sdf-feature p { margin: 0 0 3px; font-size: .85rem; color: var(--g-muted); }
.sdf-feature .sdf-opportunity { margin-bottom: 2px; }

/* ── Empty state ──────────────────────────────────────────────── */
.sdf-empty {
    display: grid;
    gap: 5px;
    padding: 36px 20px;
    text-align: center;
    color: var(--g-muted);
    font-size: .9rem;
}
.sdf-empty strong { color: var(--g-text); }
.sdf-empty span { display: block; }

/* ── Compact detail pages ───────────────────────────────────────── */
.sdf-detail,
.sdf-panel-block {
    position: relative;
    display: grid;
    gap: 12px;
    padding: 16px;
    border-radius: var(--g-r-lg);
    border: 1px solid rgba(255,255,255,.78);
    background: rgba(255,255,255,.86);
    box-shadow: var(--g-shadow-sm);
}
.sdf-detail {
    overflow: hidden;
}
.sdf-detail h1,
.sdf-panel-block h2 {
    margin: 0;
    color: var(--g-text);
    letter-spacing: -.035em;
    line-height: 1.05;
}
.sdf-detail h1 { font-size: clamp(1.45rem, 6vw, 2.15rem); }
.sdf-panel-block h2 { font-size: 1.05rem; }
.sdf-detail-lead,
.sdf-panel-block p {
    margin: 0;
    color: var(--g-muted);
    line-height: 1.55;
}
.sdf-detail-img {
    width: 100%;
    aspect-ratio: 16 / 10;
    border-radius: 18px;
    object-fit: cover;
    background: rgba(125,77,255,.08);
}
.sdf-organizer-avatar,
.sdf-vendor-avatar {
    width: 92px;
    height: 92px;
    border-radius: 26px;
    object-fit: cover;
    background: rgba(125,77,255,.08);
    box-shadow: var(--g-shadow-sm);
}
.sdf-vendor-avatar {
    width: 112px;
    height: 112px;
}
.sdf-organizer-detail {
    isolation: isolate;
    border-color: rgba(255,255,255,.9);
    background:
        radial-gradient(circle at 14% 4%, rgba(255,79,163,.18), transparent 34%),
        radial-gradient(circle at 100% 18%, rgba(125,77,255,.16), transparent 30%),
        linear-gradient(135deg, rgba(255,255,255,.92), rgba(255,246,252,.82));
}
.sdf-theme-anime .sdf-organizer-detail {
    background:
        radial-gradient(circle at 14% 4%, rgba(255,79,163,.22), transparent 34%),
        radial-gradient(circle at 100% 18%, rgba(157,113,255,.24), transparent 30%),
        linear-gradient(135deg, rgba(28,24,50,.94), rgba(21,19,42,.88));
}
.sdf-organizer-detail::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background:
        linear-gradient(90deg, rgba(125,77,255,.14), transparent 36%),
        linear-gradient(180deg, transparent 72%, rgba(77,217,194,.11));
}
.sdf-organizer-hero {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 13px;
}
.sdf-organizer-hero-media {
    position: relative;
    width: 100px;
    min-width: 100px;
}
.sdf-organizer-detail .sdf-organizer-avatar {
    width: 96px;
    height: 96px;
    border-radius: 30px;
    border: 3px solid rgba(255,255,255,.92);
    box-shadow: 0 14px 32px rgba(67,40,91,.15);
}
.sdf-organizer-spark {
    position: absolute;
    right: -2px;
    bottom: -2px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 2px solid rgba(255,255,255,.94);
    background: linear-gradient(135deg, var(--g-violet), var(--g-pink));
    color: #fff;
    font-size: .68rem;
    font-weight: 950;
    letter-spacing: -.04em;
    box-shadow: 0 10px 22px rgba(125,77,255,.28);
}
.sdf-organizer-hero-copy {
    display: grid;
    gap: 7px;
    min-width: 0;
}
.sdf-organizer-kicker span {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 0 9px;
    border-radius: 999px;
    background: rgba(125,77,255,.09);
    color: var(--g-violet);
    border: 1px solid rgba(125,77,255,.12);
    font-size: .68rem;
    font-weight: 900;
    line-height: 1;
}
.sdf-detail-facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}
.sdf-detail-facts div {
    display: grid;
    gap: 3px;
    min-width: 0;
    padding: 10px;
    border-radius: 14px;
    border: 1px solid var(--g-line);
    background: rgba(255,255,255,.72);
}
.sdf-detail-facts strong {
    color: var(--g-violet);
    font-size: .68rem;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.sdf-detail-facts span {
    color: var(--g-text);
    font-size: .82rem;
    font-weight: 800;
    overflow-wrap: anywhere;
}
.sdf-detail-organizer {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 44px;
    padding-inline-end: 6px;
    min-width: 0;
    color: var(--g-text);
    font-size: .82rem;
    font-weight: 800;
    text-decoration: none;
}
.sdf-detail-organizer:hover { color: var(--g-violet); }
.sdf-detail-organizer img {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    object-fit: cover;
    background: rgba(125,77,255,.08);
    flex: 0 0 auto;
}
.sdf-detail-organizer span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.sdf-card-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.sdf-card-tags span {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 0 10px;
    border-radius: 999px;
    background: rgba(125,77,255,.08);
    color: var(--g-violet);
    font-size: .74rem;
    font-weight: 800;
}
.sdf-detail-actions {
    margin-top: 2px;
}
.sdf-mini-list {
    display: grid;
    gap: 8px;
}
.sdf-mini-list > a,
.sdf-mini-list > div {
    display: grid;
    gap: 3px;
    padding: 11px 12px;
    border-radius: 16px;
    border: 1px solid var(--g-line);
    background: rgba(255,255,255,.76);
    text-decoration: none;
}
.sdf-card,
.sdf-detail,
.sdf-panel-block,
.sdf-mini-list > a,
.sdf-mini-list > div {
    scroll-margin-bottom: 150px;
}
.sdf-mini-list strong {
    color: var(--g-text);
    font-size: .9rem;
    line-height: 1.2;
}
.sdf-mini-list span,
.sdf-mini-list em {
    color: var(--g-muted);
    font-size: .78rem;
    font-style: normal;
}
.sdf-mini-list em {
    color: var(--g-violet);
    font-weight: 800;
}
.sdf-panel-title-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
}
.sdf-panel-title-row span {
    color: var(--g-muted);
    font-size: .74rem;
    font-weight: 800;
    text-align: right;
}
.sdf-mini-list > a.sdf-organizer-list-card {
    grid-template-columns: 52px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 10px;
    border-color: rgba(125,77,255,.12);
    background:
        radial-gradient(circle at 0 0, rgba(255,79,163,.12), transparent 42%),
        rgba(255,255,255,.82);
}
.sdf-organizer-list-card:hover {
    border-color: rgba(125,77,255,.24);
    box-shadow: var(--g-shadow-sm);
    transform: translateY(-1px);
}
.sdf-organizer-date-badge {
    display: grid;
    place-items: center;
    width: 52px;
    min-width: 52px;
    height: 52px;
    border-radius: 17px;
    background: linear-gradient(135deg, var(--g-violet), var(--g-pink));
    color: #fff;
    box-shadow: 0 10px 20px rgba(125,77,255,.22);
}
.sdf-organizer-date-badge strong {
    color: #fff;
    font-size: 1.02rem;
    line-height: 1;
}
.sdf-organizer-date-badge em {
    color: rgba(255,255,255,.9);
    font-size: .63rem;
    font-weight: 900;
    line-height: 1;
    text-transform: uppercase;
}
.sdf-organizer-list-copy {
    display: grid;
    gap: 3px;
    min-width: 0;
}
.sdf-organizer-list-copy strong,
.sdf-organizer-list-copy span {
    overflow: hidden;
    text-overflow: ellipsis;
}
.sdf-organizer-list-copy strong {
    white-space: nowrap;
}
.sdf-organizer-list-copy span {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
.sdf-organizer-list-card > em {
    align-self: center;
    padding: 0 9px;
    min-height: 32px;
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    background: rgba(125,77,255,.08);
    color: var(--g-violet);
    white-space: nowrap;
}
.sdf-event-detail {
    isolation: isolate;
    overflow: hidden;
    background:
        radial-gradient(circle at 12% 0, rgba(255,79,163,.18), transparent 34%),
        radial-gradient(circle at 92% 12%, rgba(77,217,194,.16), transparent 30%),
        linear-gradient(135deg, rgba(255,255,255,.94), rgba(255,247,252,.86));
}
.sdf-theme-anime .sdf-event-detail {
    background:
        radial-gradient(circle at 12% 0, rgba(255,79,163,.22), transparent 34%),
        radial-gradient(circle at 92% 12%, rgba(157,113,255,.2), transparent 30%),
        linear-gradient(135deg, rgba(28,24,50,.95), rgba(21,19,42,.88));
}
.sdf-event-detail::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background:
        linear-gradient(90deg, rgba(125,77,255,.11), transparent 42%),
        linear-gradient(180deg, transparent 70%, rgba(255,183,3,.1));
}
.sdf-event-hero {
    display: grid;
    grid-template-columns: 104px minmax(0, 1fr);
    align-items: center;
    gap: 13px;
}
.sdf-event-cover {
    position: relative;
    width: 104px;
    aspect-ratio: 1;
    border-radius: 28px;
    overflow: hidden;
    border: 3px solid rgba(255,255,255,.92);
    background: rgba(125,77,255,.08);
    box-shadow: 0 14px 32px rgba(67,40,91,.14);
}
.sdf-event-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.sdf-event-cover::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 46%, rgba(34,21,45,.2));
}
.sdf-event-date-badge {
    position: absolute;
    left: 8px;
    bottom: 8px;
    z-index: 1;
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    border-radius: 17px;
    background: linear-gradient(135deg, var(--g-violet), var(--g-pink));
    color: #fff;
    box-shadow: 0 10px 20px rgba(125,77,255,.28);
}
.sdf-event-date-badge strong {
    color: #fff;
    font-size: 1rem;
    line-height: 1;
}
.sdf-event-date-badge em {
    color: rgba(255,255,255,.9);
    font-size: .62rem;
    font-weight: 900;
    line-height: 1;
    text-transform: uppercase;
}
.sdf-event-hero-copy {
    display: grid;
    gap: 7px;
    min-width: 0;
}
.sdf-event-kicker span:not(.sdf-status) {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 0 9px;
    border-radius: 999px;
    background: rgba(125,77,255,.09);
    color: var(--g-violet);
    border: 1px solid rgba(125,77,255,.12);
    font-size: .68rem;
    font-weight: 900;
    line-height: 1;
}
.sdf-event-organizer-chip {
    min-height: 36px;
    width: fit-content;
    max-width: 100%;
    padding: 4px 9px 4px 5px;
    border-radius: 999px;
    border: 1px solid rgba(125,77,255,.14);
    background: rgba(255,255,255,.7);
}
.sdf-event-place-line {
    display: inline-flex;
    align-items: flex-start;
    gap: 7px;
    min-width: 0;
    width: fit-content;
    max-width: 100%;
    padding: 8px 10px;
    border-radius: 16px;
    border: 1px solid rgba(255,79,163,.16);
    background: rgba(255,255,255,.72);
    color: var(--g-muted);
    font-size: .84rem;
}
.sdf-event-place-line strong {
    color: var(--g-text);
    font-weight: 850;
    line-height: 1.25;
}
.sdf-organizers-intro h1 {
    max-width: 11.5em;
}
.sdf-organizers-stats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    padding: 12px;
}
.sdf-organizers-stats div {
    display: grid;
    gap: 3px;
    min-width: 0;
    padding: 10px;
    border-radius: 16px;
    background: rgba(255,255,255,.72);
    border: 1px solid rgba(125,77,255,.1);
}
.sdf-organizers-stats strong {
    color: var(--g-text);
    font-size: 1.05rem;
    line-height: 1;
}
.sdf-organizers-stats span {
    color: var(--g-muted);
    font-size: .68rem;
    font-weight: 850;
    line-height: 1.15;
}
.sdf-feed-count-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    color: var(--g-muted);
    font-size: .78rem;
    font-weight: 800;
}
.sdf-feed-count-row strong {
    color: var(--g-text);
}
.sdf-feed-count-row span {
    text-align: right;
}
.sdf-organizers-feed {
    display: grid;
    gap: 12px;
}
.sdf-organizer-feed-card {
    position: relative;
    display: grid;
    grid-template-columns: 82px minmax(0, 1fr);
    gap: 12px;
    padding: 14px;
    border-radius: 24px;
    border: 1px solid rgba(255,255,255,.86);
    background:
        radial-gradient(circle at 0 0, rgba(255,79,163,.13), transparent 36%),
        radial-gradient(circle at 100% 8%, rgba(125,77,255,.12), transparent 32%),
        rgba(255,255,255,.88);
    box-shadow: var(--g-shadow-sm);
}
.sdf-theme-anime .sdf-organizer-feed-card {
    border-color: rgba(255,255,255,.12);
    background:
        radial-gradient(circle at 0 0, rgba(255,79,163,.18), transparent 36%),
        radial-gradient(circle at 100% 8%, rgba(157,113,255,.2), transparent 32%),
        rgba(28,24,50,.9);
}
.sdf-organizer-feed-card[hidden] {
    display: none;
}
.sdf-organizer-feed-avatar {
    position: relative;
    width: 82px;
    min-width: 82px;
    height: 82px;
    border-radius: 24px;
    overflow: hidden;
    border: 3px solid rgba(255,255,255,.92);
    background: rgba(125,77,255,.08);
    box-shadow: 0 12px 24px rgba(67,40,91,.12);
    text-decoration: none;
}
.sdf-organizer-feed-avatar img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.sdf-organizer-feed-avatar > span {
    position: absolute;
    left: 6px;
    bottom: 6px;
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 15px;
    background: linear-gradient(135deg, var(--g-violet), var(--g-pink));
    color: #fff;
    font-size: .9rem;
    font-weight: 950;
    line-height: 1;
    box-shadow: 0 8px 18px rgba(125,77,255,.24);
}
.sdf-organizer-feed-avatar em {
    color: rgba(255,255,255,.9);
    font-size: .54rem;
    font-style: normal;
    font-weight: 950;
    text-transform: uppercase;
}
.sdf-organizer-feed-main {
    display: grid;
    gap: 8px;
    min-width: 0;
}
.sdf-organizer-feed-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
    min-width: 0;
}
.sdf-organizer-feed-head h2 {
    margin: 0;
    min-width: 0;
    color: var(--g-text);
    font-size: 1.02rem;
    line-height: 1.12;
    letter-spacing: -.025em;
}
.sdf-organizer-feed-head h2 a {
    color: inherit;
    text-decoration: none;
}
.sdf-organizer-feed-main p {
    margin: 0;
    color: var(--g-muted);
    font-size: .84rem;
    line-height: 1.35;
}
.sdf-organizer-feed-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}
.sdf-organizer-feed-meta span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 28px;
    padding: 0 9px;
    border-radius: 999px;
    background: rgba(255,255,255,.76);
    border: 1px solid rgba(125,77,255,.1);
    color: var(--g-text);
    font-size: .72rem;
    font-weight: 850;
}
.sdf-organizer-next {
    display: grid;
    gap: 2px;
    min-width: 0;
    padding: 9px 10px;
    border-radius: 15px;
    border: 1px solid rgba(125,77,255,.1);
    background: rgba(125,77,255,.06);
    color: var(--g-text);
    text-decoration: none;
}
.sdf-organizer-next strong {
    color: var(--g-violet);
    font-size: .68rem;
    font-weight: 950;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.sdf-organizer-next span {
    color: var(--g-muted);
    font-size: .78rem;
    font-weight: 750;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.sdf-pager {
    display: flex;
    justify-content: center;
    gap: 10px;
    padding: 6px 0 2px;
}
.sdf-pager a {
    min-width: 118px;
}
.sdf-flash {
    display: grid;
    gap: 8px;
}
.sdf-flash .flash-toast,
.sdf-flash .message {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 14px;
    border: 1px solid rgba(77,217,194,.35);
    border-radius: 16px;
    background: rgba(77,217,194,.14);
    color: var(--g-text);
    box-shadow: var(--g-shadow-sm);
    font-weight: 800;
}
.sdf-flash .is-error,
.sdf-flash .error {
    border-color: rgba(255,79,79,.28);
    background: rgba(255,79,79,.11);
}
.sdf-flash .flash-toast-close {
    display: none;
}
.sdf-form {
    display: grid;
    gap: 12px;
}
.sdf-form textarea {
    min-height: 120px;
    resize: vertical;
}
.sdf-form textarea,
.sdf-form input,
.sdf-form select {
    width: 100%;
}

/* ── Focus ────────────────────────────────────────────────────── */
.sdf-btn:focus-visible,
.sdf-quick button:focus-visible,
.sdf-intent a:focus-visible,
.sdf-advanced summary:focus-visible,
.sdf-top-link:focus-visible,
.sdf-top-nav-link:focus-visible,
.sdf-hamburger:focus-visible,
.sdf-save-anchor:focus-visible,
.sdf-ig-btn:focus-visible {
    outline: 3px solid rgba(125,77,255,.4);
    outline-offset: 2px;
}

@media (max-width: 420px) {
    .sdf-top {
        padding-inline: 10px;
    }
    .sdf-top-link {
        padding-inline: 10px;
        font-size: .75rem;
    }
    .sdf-top-link--profile .sdf-glyph {
        display: none;
    }
}

@media (max-width: 639px) {
    .sdf-filter-strip {
        align-items: flex-start;
        flex-wrap: wrap;
        gap: 7px;
        overflow: visible;
        padding-bottom: 2px;
    }
    .sdf-quick {
        display: contents;
    }
    .sdf-quick::-webkit-scrollbar {
        display: none;
    }
    .sdf-quick button {
        flex-shrink: 0;
        white-space: nowrap;
        min-height: 40px;
        padding-inline: 12px;
    }
    .sdf-advanced summary {
        min-height: 40px;
    }
    .sdf-advanced[open] {
        position: fixed;
        inset: 0;
        z-index: 140;
        display: flex;
        align-items: flex-end;
        width: auto;
        max-width: none;
        padding: 12px;
        background: rgba(34,21,45,.32);
    }
    .sdf-advanced[open] summary {
        position: absolute;
        top: calc(10px + env(safe-area-inset-top));
        right: 12px;
        width: 42px;
        height: 42px;
        min-height: 42px;
        padding: 0;
        border-color: rgba(255,255,255,.7);
        background: rgba(255,255,255,.96);
        color: var(--g-text);
        font-size: 0;
        box-shadow: var(--g-shadow-md);
    }
    .sdf-advanced[open] summary i,
    .sdf-advanced[open] summary span {
        display: none;
    }
    .sdf-advanced[open] summary::after {
        content: "\00d7";
        transform: none;
        font-size: 1.45rem;
        line-height: 1;
        opacity: 1;
    }
    .sdf-advanced-panel {
        position: static;
        inset: auto;
        transform: none;
        width: 100%;
        max-height: min(82dvh, 620px);
        overflow: auto;
        border-radius: 24px 24px 18px 18px;
        padding: 18px;
    }
}

/* ── Inline nav (desktop only) ────────────────────────────────── */
.sdf-top-inline-nav {
    display: none;
}

/* ── Sidebar: transparent on mobile, sticky column on desktop ─── */
.sdf-sidebar {
    display: contents;
}

/* ── Tablet / desktop ─────────────────────────────────────────── */
@media (min-width: 640px) {
    .sdf-shell {
        padding-top: 28px;
    }
    .sdf-feature {
        display: grid;
        grid-template-columns: 240px 1fr;
    }
    .sdf-feature-media img {
        height: 100%;
        min-height: 220px;
    }
    .sdf-feed {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .sdf-card {
        grid-template-columns: 1fr;
    }
    .sdf-card-img img { width: 86px; height: 94px; }
    .sdf-detail,
    .sdf-panel-block {
        padding: 20px;
    }
    .sdf-organizer-shortcut {
        grid-template-columns: 1fr auto;
        align-items: center;
    }
}

/* ── Desktop 2-column layout ──────────────────────────────────── */
@media (min-width: 1024px) {
    /* Topbar */
    .sdf-top {
        padding-inline: 32px;
        gap: 20px;
    }
    .sdf-top-inline-nav {
        display: none;
        align-items: center;
        gap: 2px;
        flex: 1;
        min-width: 0;
        overflow: hidden;
    }
    .sdf-top-inline-link {
        display: inline-flex;
        align-items: center;
        padding: 0 12px;
        min-height: 36px;
        border-radius: 999px;
        font-size: .8rem;
        font-weight: 700;
        color: var(--g-muted);
        text-decoration: none;
        white-space: nowrap;
        transition: color .15s, background .15s;
    }
    .sdf-top-inline-link:hover,
    .sdf-top-inline-link.is-active {
        color: var(--g-violet);
        background: rgba(125,77,255,.07);
    }

    /* Feed page: sidebar + cards 2-column layout */
    .sdf-shell--feed {
        width: min(calc(100% - 64px), 1320px);
        grid-template-columns: 300px 1fr;
        align-items: start;
        column-gap: 36px;
        row-gap: 0;
    }
    /* On mobile the sidebar is transparent (display:contents);
       on desktop it becomes a sticky left column */
    .sdf-sidebar {
        display: grid;
        gap: 20px;
        grid-column: 1;
        position: sticky;
        top: calc(64px + 24px);
        align-self: start;
        padding-bottom: 32px;
    }
    .sdf-shell--feed .sdf-feed {
        grid-column: 2;
        grid-row: 1;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px;
        padding-top: 28px;
    }
    .sdf-shell--feed .sdf-empty {
        grid-column: 2;
        grid-row: 2;
    }
    /* Filter strip inside sidebar: stack vertically */
    .sdf-sidebar .sdf-filter-strip {
        flex-direction: column;
        align-items: stretch;
        overflow: visible;
        padding: 0;
        margin-inline: 0;
    }
    .sdf-sidebar .sdf-quick {
        display: flex;
        flex-wrap: wrap;
        overflow: visible;
    }
    .sdf-sidebar .sdf-quick button {
        flex-shrink: 0;
        min-height: 40px;
    }
    /* Advanced filters in sidebar: proper dropdown, not full-screen */
    .sdf-sidebar .sdf-advanced[open] {
        position: static;
        background: none;
        padding: 0;
        align-items: stretch;
    }
    .sdf-sidebar .sdf-advanced[open] summary {
        position: static;
        width: auto;
        height: auto;
        min-height: 40px;
        padding: 0 14px;
        border-color: var(--g-line);
        background: rgba(255,255,255,.75);
        color: var(--g-text);
        font-size: .78rem;
        box-shadow: var(--g-shadow-sm);
    }
    .sdf-sidebar .sdf-advanced[open] summary i,
    .sdf-sidebar .sdf-advanced[open] summary span {
        display: inline;
    }
    .sdf-sidebar .sdf-advanced-panel {
        position: static;
        transform: none;
        width: 100%;
        max-height: none;
        overflow: visible;
        border-radius: 14px;
        padding: 14px;
        margin-top: 8px;
    }
    /* Cards on desktop: taller headings look better */
    .sdf-shell--feed .sdf-card {
        padding: 16px;
    }
}

@media (min-width: 1280px) {
    .sdf-shell--feed .sdf-feed {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .sdf-shell--feed {
        grid-template-columns: 320px 1fr;
    }
}

@media (max-width: 420px) {
    .sdf-detail-facts {
        grid-template-columns: 1fr;
    }
    .sdf-organizers-stats {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        padding: 10px;
    }
    .sdf-organizers-stats div {
        padding: 8px 6px;
    }
    .sdf-organizers-stats strong {
        font-size: .92rem;
    }
    .sdf-organizers-stats span {
        font-size: .6rem;
    }
    .sdf-organizer-feed-card {
        grid-template-columns: 74px minmax(0, 1fr);
        gap: 10px;
        padding: 12px;
    }
    .sdf-organizer-feed-avatar {
        width: 74px;
        min-width: 74px;
        height: 74px;
    }
    .sdf-organizer-feed-head {
        display: grid;
        justify-content: stretch;
    }
    .sdf-organizer-feed-head .sdf-status {
        width: max-content;
    }
    .sdf-organizer-feed-card .sdf-actions {
        gap: 7px;
    }
    .sdf-organizer-feed-card .sdf-btn {
        padding-inline: 12px;
    }
    .sdf-event-detail .sdf-event-facts {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 6px;
    }
    .sdf-event-detail .sdf-event-facts div {
        padding: 8px 7px;
    }
    .sdf-event-detail .sdf-event-facts strong {
        font-size: .61rem;
    }
    .sdf-event-detail .sdf-event-facts span {
        font-size: .74rem;
    }
    .sdf-organizer-detail .sdf-detail-facts {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 6px;
    }
    .sdf-organizer-detail .sdf-detail-facts div {
        padding: 8px 7px;
    }
    .sdf-organizer-detail .sdf-detail-facts strong {
        font-size: .61rem;
    }
    .sdf-organizer-detail .sdf-detail-facts span {
        font-size: .74rem;
    }
    .sdf-organizer-hero-media {
        width: 96px;
        min-width: 96px;
    }
    .sdf-mini-list > a.sdf-organizer-list-card {
        grid-template-columns: 48px minmax(0, 1fr);
    }
    .sdf-organizer-date-badge {
        width: 48px;
        min-width: 48px;
        height: 48px;
    }
    .sdf-organizer-list-card > em {
        grid-column: 2;
        width: max-content;
    }
}

@media (max-width: 340px) {
    .sdf-organizers-stats,
    .sdf-organizer-feed-card {
        grid-template-columns: 1fr;
    }
    .sdf-organizer-feed-avatar {
        width: 82px;
        min-width: 82px;
        height: 82px;
    }
    .sdf-event-hero {
        grid-template-columns: 1fr;
    }
    .sdf-event-detail .sdf-event-facts {
        grid-template-columns: 1fr;
    }
    .sdf-organizer-hero {
        grid-template-columns: 1fr;
    }
    .sdf-organizer-detail .sdf-detail-facts {
        grid-template-columns: 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after {
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: .001ms !important;
    }
}

.sdf-menu-label {
    color: var(--g-muted);
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}

/* ── Top nav (intent chips) ───────────────────────────────────── */
.sdf-top-nav {
    position: absolute;
    top: calc(100% + 8px);
    right: 16px;
    z-index: 200;
    width: min(286px, calc(100vw - 24px));
    pointer-events: none;
    opacity: 0;
    transform: translateY(-6px) scale(.98);
    transform-origin: top right;
    transition: opacity .16s ease, transform .16s ease;
}
.sdf-top-nav.is-open {
    pointer-events: auto;
    opacity: 1;
    transform: translateY(0) scale(1);
}
.sdf-top-nav-inner {
    display: grid;
    gap: 12px;
    padding: 12px;
    border: 1px solid rgba(255,255,255,.82);
    border-radius: 20px;
    background: rgba(255,255,255,.96);
    box-shadow: 0 18px 44px rgba(67,40,91,.2);
    backdrop-filter: blur(16px);
}
.sdf-theme-anime .sdf-top-nav-inner {
    background: rgba(28,24,50,.96);
    border-color: rgba(255,255,255,.12);
}
.sdf-menu-section {
    display: grid;
    gap: 6px;
}
.sdf-top-nav-link {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    min-height: 44px;
    padding: 0 12px;
    border-radius: 14px;
    font-size: .86rem;
    font-weight: 850;
    color: var(--g-text);
    background: rgba(125,77,255,.06);
    border: 1px solid rgba(125,77,255,.1);
    text-decoration: none;
    white-space: nowrap;
    transition: background .15s;
}
.sdf-top-nav-link:hover,
.sdf-top-nav-link.is-active {
    color: #fff;
    border-color: transparent;
    background: linear-gradient(135deg, var(--g-violet), var(--g-pink));
}
.sdf-top-nav-link .sdf-glyph { font-size: 1em; }
.sdf-top-nav-link--danger { color: #e11d48; }
.sdf-top-nav-link--danger:hover { background: linear-gradient(135deg, #e11d48, #ff4fa3); color: #fff; border-color: transparent; }

/* ── Top account avatar shortcut ─────────────────────────────── */
.sdf-top-account {
    padding: 0;
    border-radius: 999px;
    overflow: hidden;
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    text-decoration: none;
}
.sdf-top-account:hover { background: transparent; }
.sdf-top-link--login {
    font-size: .78rem;
    font-weight: 700;
    padding: 0 12px;
    min-height: 36px;
    border: 1.5px solid var(--g-violet);
    color: var(--g-violet);
    background: transparent;
}

/* ── Hamburger button ─────────────────────────────────────────── */
.sdf-hamburger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 999px;
    border: 1px solid var(--g-line);
    background: rgba(255,255,255,.6);
    cursor: pointer;
    flex-shrink: 0;
}
.sdf-hamburger-icon,
.sdf-hamburger-icon::before,
.sdf-hamburger-icon::after {
    display: block;
    width: 18px;
    height: 2px;
    background: var(--g-text);
    border-radius: 2px;
    position: relative;
    transition: transform .2s, opacity .2s;
}
.sdf-hamburger-icon::before,
.sdf-hamburger-icon::after {
    content: '';
    position: absolute;
    left: 0;
}
.sdf-hamburger-icon::before { top: -5px; }
.sdf-hamburger-icon::after  { top: 5px; }

/* ── Mobile nav menu ──────────────────────────────────────────── */
@media (max-width: 639px) {
    .sdf-top-nav {
        right: 10px;
    }
    .sdf-top-nav-link {
        white-space: normal;
        line-height: 1.2;
    }
    .sdf-top-nav-inner {
        max-height: min(74dvh, 620px);
        overflow-y: auto;
    }
    .sdf-top-nav-link {
        font-size: .86rem;
    }
}

/* ── Featured card in feed ────────────────────────────────────── */
.sdf-card--featured {
    grid-column: 1 / -1;
    border: 2px solid transparent;
    background:
        linear-gradient(var(--g-bg), var(--g-bg)) padding-box,
        linear-gradient(135deg, var(--g-violet), var(--g-pink)) border-box;
    box-shadow: 0 8px 24px rgba(125,77,255,.14);
}
.sdf-card--featured .sdf-card-title a {
    background: linear-gradient(135deg, var(--g-violet), var(--g-pink));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* ══════════════════════════════════════════════════════════════════
   AUTH SCREENS  (login · register · forgot · reset · change-pw)
   ══════════════════════════════════════════════════════════════════ */
.sdf-auth-wrap {
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    padding: 24px 12px calc(60px + env(safe-area-inset-bottom));
}
.sdf-auth-card {
    width: 100%;
    max-width: 420px;
    background: rgba(255,255,255,.82);
    border: 1px solid var(--g-line);
    border-radius: var(--g-r-xl);
    box-shadow: var(--g-shadow-md);
    backdrop-filter: blur(18px);
    padding: 28px 24px 24px;
    display: grid;
    gap: 18px;
}
.sdf-auth-icon {
    width: 52px;
    height: 52px;
    border-radius: 18px;
    background: linear-gradient(135deg, var(--g-violet), var(--g-pink));
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.3rem;
    margin-bottom: 4px;
}
.sdf-auth-title {
    margin: 0;
    font-size: 1.45rem;
    font-weight: 900;
    line-height: 1.1;
    color: var(--g-text);
}
.sdf-auth-subtitle {
    margin: 6px 0 0;
    font-size: .84rem;
    color: var(--g-muted);
    line-height: 1.5;
}
.sdf-auth-kicker {
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--g-violet);
    margin: 0 0 8px;
    display: flex;
    align-items: center;
    gap: 6px;
}
.sdf-auth-divider {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: .72rem;
    color: var(--g-muted);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
}
.sdf-auth-divider::before,
.sdf-auth-divider::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--g-line);
}
.sdf-auth-field {
    display: grid;
    gap: 6px;
}
.sdf-auth-field label {
    font-size: .78rem;
    font-weight: 800;
    color: var(--g-text);
    letter-spacing: .02em;
}
.sdf-auth-input {
    width: 100%;
    min-height: 46px;
    padding: 10px 14px;
    border: 1.5px solid rgba(125,77,255,.2);
    border-radius: var(--g-r-md);
    background: rgba(255,255,255,.9);
    color: var(--g-text);
    font: inherit;
    font-size: .9rem;
    transition: border-color .18s;
    outline: none;
    -webkit-appearance: none;
}
.sdf-auth-input:focus {
    border-color: var(--g-violet);
    box-shadow: 0 0 0 3px rgba(125,77,255,.12);
}
.sdf-auth-pw-row {
    position: relative;
}
.sdf-auth-pw-row .sdf-auth-input {
    padding-right: 46px;
}
.sdf-auth-pw-toggle {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    width: 34px;
    height: 34px;
    border: none;
    background: none;
    color: var(--g-muted);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .9rem;
    padding: 0;
}
.sdf-auth-submit {
    width: 100%;
    min-height: 50px;
    border-radius: 999px;
    border: none;
    background: linear-gradient(135deg, var(--g-violet), var(--g-pink));
    color: #fff;
    font: inherit;
    font-size: .88rem;
    font-weight: 800;
    cursor: pointer;
    box-shadow: 0 6px 16px rgba(125,77,255,.3);
    transition: transform .18s, box-shadow .18s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}
.sdf-auth-submit:hover { transform: translateY(-1px); box-shadow: 0 10px 22px rgba(125,77,255,.38); }
.sdf-auth-links {
    display: grid;
    gap: 8px;
    text-align: center;
    font-size: .82rem;
    color: var(--g-muted);
}
.sdf-auth-links a {
    color: var(--g-violet);
    font-weight: 700;
    text-decoration: none;
}
.sdf-auth-links a:hover { text-decoration: underline; }
.sdf-auth-google {
    width: 100%;
    min-height: 46px;
    border-radius: 999px;
    border: 1.5px solid var(--g-line);
    background: rgba(255,255,255,.92);
    color: var(--g-text);
    font: inherit;
    font-size: .84rem;
    font-weight: 700;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    text-decoration: none;
    box-shadow: var(--g-shadow-sm);
    transition: transform .18s, box-shadow .18s;
}
.sdf-auth-google:hover { transform: translateY(-1px); }
.sdf-auth-hint {
    font-size: .76rem;
    color: var(--g-muted);
    line-height: 1.45;
    margin: 2px 0 0;
}
.sdf-auth-form {
    display: grid;
    gap: 14px;
}
.sdf-auth-details {
    border: 1px solid var(--g-line);
    border-radius: var(--g-r-md);
    padding: 12px 14px;
    font-size: .82rem;
    color: var(--g-muted);
}
.sdf-auth-details summary {
    cursor: pointer;
    font-weight: 700;
    color: var(--g-text);
    list-style: none;
    display: flex;
    align-items: center;
    gap: 6px;
}
.sdf-auth-details[open] summary { margin-bottom: 12px; }
.sdf-auth-details .sdf-auth-form { margin-top: 10px; }

/* ══════════════════════════════════════════════════════════════════
   DASHBOARD HUB  (mi-cuenta)
   ══════════════════════════════════════════════════════════════════ */
.sdf-dash-hero {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 20px;
    background: rgba(255,255,255,.7);
    border: 1px solid var(--g-line);
    border-radius: var(--g-r-xl);
    backdrop-filter: blur(14px);
    box-shadow: var(--g-shadow-sm);
}
.sdf-dash-avatar {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
    border: 2px solid rgba(125,77,255,.2);
}
.sdf-dash-avatar-initials {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--g-violet), var(--g-pink));
    color: #fff;
    font-size: 1.2rem;
    font-weight: 900;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.sdf-dash-identity {
    min-width: 0;
    flex: 1;
}
.sdf-dash-identity strong {
    display: block;
    font-size: 1rem;
    font-weight: 800;
    color: var(--g-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.sdf-dash-identity span {
    display: block;
    font-size: .76rem;
    color: var(--g-muted);
    margin-top: 2px;
}
.sdf-dash-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    border-radius: 999px;
    background: rgba(125,77,255,.1);
    color: var(--g-violet);
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
    flex-shrink: 0;
}
.sdf-dash-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}
.sdf-dash-stat {
    background: rgba(255,255,255,.7);
    border: 1px solid var(--g-line);
    border-radius: var(--g-r-lg);
    padding: 14px 10px;
    text-align: center;
    box-shadow: var(--g-shadow-sm);
}
.sdf-dash-stat strong {
    display: block;
    font-size: 1.35rem;
    font-weight: 900;
    color: var(--g-violet);
    line-height: 1;
}
.sdf-dash-stat span {
    display: block;
    font-size: .7rem;
    font-weight: 700;
    color: var(--g-muted);
    margin-top: 4px;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.sdf-dash-section-title {
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--g-muted);
    margin: 0 0 10px;
}
.sdf-dash-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}
.sdf-dash-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    padding: 18px 16px;
    background: rgba(255,255,255,.8);
    border: 1px solid var(--g-line);
    border-radius: var(--g-r-lg);
    text-decoration: none;
    color: var(--g-text);
    box-shadow: var(--g-shadow-sm);
    transition: transform .18s, box-shadow .18s, border-color .18s;
    cursor: pointer;
    min-height: 90px;
}
.sdf-dash-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--g-shadow-md);
    border-color: rgba(125,77,255,.22);
}
.sdf-dash-card--wide {
    grid-column: 1 / -1;
    flex-direction: row;
    align-items: center;
    min-height: 64px;
}
.sdf-dash-card--danger {
    border-color: rgba(220,38,38,.14);
    background: rgba(255,241,242,.85);
    color: #991b1b;
}
.sdf-dash-card--danger:hover { border-color: rgba(220,38,38,.28); }
.sdf-dash-card-icon {
    width: 36px;
    height: 36px;
    border-radius: 12px;
    background: linear-gradient(135deg, rgba(125,77,255,.12), rgba(255,79,163,.1));
    color: var(--g-violet);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .9rem;
    flex-shrink: 0;
}
.sdf-dash-card--danger .sdf-dash-card-icon {
    background: rgba(220,38,38,.1);
    color: #dc2626;
}
.sdf-dash-card-label {
    font-size: .84rem;
    font-weight: 800;
    line-height: 1.2;
    flex: 1;
}
.sdf-dash-card-sub {
    font-size: .7rem;
    color: var(--g-muted);
    line-height: 1.4;
    margin-top: 2px;
}
.sdf-dash-card--wide .sdf-dash-card-label { margin-left: 4px; }

/* ══════════════════════════════════════════════════════════════════
   MANAGE SCREENS  (edit-profile · change-password)
   ══════════════════════════════════════════════════════════════════ */
.sdf-manage-header {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-bottom: 4px;
}
.sdf-back-btn {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: 1px solid var(--g-line);
    background: rgba(255,255,255,.8);
    color: var(--g-text);
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    font-size: .9rem;
    flex-shrink: 0;
    transition: border-color .18s, background .18s;
}
.sdf-back-btn:hover { border-color: rgba(125,77,255,.3); background: rgba(255,255,255,.95); }
.sdf-manage-title {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 900;
    color: var(--g-text);
}
.sdf-manage-subtitle {
    font-size: .78rem;
    color: var(--g-muted);
    margin: 0;
}
.sdf-manage-form {
    background: rgba(255,255,255,.78);
    border: 1px solid var(--g-line);
    border-radius: var(--g-r-xl);
    padding: 22px 20px;
    display: grid;
    gap: 16px;
    backdrop-filter: blur(14px);
    box-shadow: var(--g-shadow-sm);
}
.sdf-manage-field {
    display: grid;
    gap: 6px;
}
.sdf-manage-field label {
    font-size: .78rem;
    font-weight: 800;
    color: var(--g-text);
}
.sdf-manage-input {
    width: 100%;
    min-height: 46px;
    padding: 10px 14px;
    border: 1.5px solid rgba(125,77,255,.18);
    border-radius: var(--g-r-md);
    background: rgba(255,255,255,.9);
    color: var(--g-text);
    font: inherit;
    font-size: .88rem;
    transition: border-color .18s;
    outline: none;
    -webkit-appearance: none;
}
.sdf-manage-input:focus {
    border-color: var(--g-violet);
    box-shadow: 0 0 0 3px rgba(125,77,255,.1);
}
.sdf-manage-input[type="file"] {
    padding: 10px;
    font-size: .8rem;
}
textarea.sdf-manage-input {
    min-height: 90px;
    resize: vertical;
}
.sdf-manage-hint {
    font-size: .74rem;
    color: var(--g-muted);
    line-height: 1.4;
    margin: 2px 0 0;
}
.sdf-manage-section-divider {
    height: 1px;
    background: var(--g-line);
    margin: 4px 0;
}
.sdf-manage-avatar-row {
    display: flex;
    align-items: center;
    gap: 14px;
}
.sdf-manage-avatar-preview {
    width: 62px;
    height: 62px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid rgba(125,77,255,.2);
    flex-shrink: 0;
    background: rgba(125,77,255,.08);
}
.sdf-manage-submit {
    width: 100%;
    min-height: 50px;
    border-radius: 999px;
    border: none;
    background: linear-gradient(135deg, var(--g-violet), var(--g-pink));
    color: #fff;
    font: inherit;
    font-size: .9rem;
    font-weight: 800;
    cursor: pointer;
    box-shadow: 0 6px 16px rgba(125,77,255,.28);
    transition: transform .18s, box-shadow .18s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 4px;
}
.sdf-manage-submit:hover { transform: translateY(-1px); box-shadow: 0 10px 22px rgba(125,77,255,.38); }
.sdf-manage-pw-row {
    position: relative;
}
.sdf-manage-pw-row .sdf-manage-input {
    padding-right: 46px;
}
.sdf-manage-pw-toggle {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    width: 34px;
    height: 34px;
    border: none;
    background: none;
    color: var(--g-muted);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .88rem;
    padding: 0;
}

/* ══════════════════════════════════════════════════════════════════
   MY FAIRS  (subdomain_my_fairs)
   ══════════════════════════════════════════════════════════════════ */
.sdf-my-fairs-empty {
    text-align: center;
    padding: 40px 20px;
    background: rgba(255,255,255,.7);
    border: 1px solid var(--g-line);
    border-radius: var(--g-r-xl);
    box-shadow: var(--g-shadow-sm);
}
.sdf-my-fairs-empty-icon {
    font-size: 2.5rem;
    line-height: 1;
    margin-bottom: 12px;
}
.sdf-my-fairs-empty h3 {
    margin: 0 0 8px;
    font-size: 1rem;
    font-weight: 800;
    color: var(--g-text);
}
.sdf-my-fairs-empty p {
    margin: 0;
    font-size: .82rem;
    color: var(--g-muted);
}
.sdf-fair-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    background: rgba(255,255,255,.8);
    border: 1px solid var(--g-line);
    border-radius: var(--g-r-lg);
    text-decoration: none;
    color: var(--g-text);
    box-shadow: var(--g-shadow-sm);
    transition: transform .18s, border-color .18s;
}
.sdf-fair-row:hover { transform: translateY(-1px); border-color: rgba(125,77,255,.22); }
.sdf-fair-row-date {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: linear-gradient(135deg, rgba(125,77,255,.12), rgba(255,79,163,.1));
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    line-height: 1;
}
.sdf-fair-row-date strong {
    font-size: .95rem;
    font-weight: 900;
    color: var(--g-violet);
}
.sdf-fair-row-date em {
    font-style: normal;
    font-size: .6rem;
    font-weight: 800;
    color: var(--g-muted);
    text-transform: uppercase;
    letter-spacing: .04em;
}
.sdf-fair-row-copy {
    flex: 1;
    min-width: 0;
}
.sdf-fair-row-copy strong {
    display: block;
    font-size: .86rem;
    font-weight: 800;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: var(--g-text);
}
.sdf-fair-row-copy span {
    display: block;
    font-size: .72rem;
    color: var(--g-muted);
    margin-top: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.sdf-fair-row-status {
    display: inline-flex;
    align-items: center;
    padding: 3px 9px;
    border-radius: 999px;
    font-size: .68rem;
    font-weight: 800;
    flex-shrink: 0;
}
.sdf-fair-row-status--active {
    background: rgba(34,197,94,.12);
    color: #15803d;
}
.sdf-fair-row-status--draft {
    background: rgba(107,114,128,.1);
    color: #374151;
}
.sdf-fair-row-status--pending {
    background: rgba(245,158,11,.12);
    color: #92400e;
}
.sdf-fair-row-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    padding: 8px 16px 12px;
    border-top: 1px solid var(--g-line);
    margin: 0 -16px -14px;
}
.sdf-fair-row-action {
    flex: 1;
    min-height: 36px;
    border-radius: 999px;
    border: 1px solid var(--g-line);
    background: rgba(255,255,255,.9);
    color: var(--g-violet);
    font: inherit;
    font-size: .72rem;
    font-weight: 800;
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    cursor: pointer;
    transition: background .16s, border-color .16s;
}
.sdf-fair-row-action:hover { background: rgba(125,77,255,.08); border-color: rgba(125,77,255,.24); }
.sdf-fair-row-action--primary {
    background: linear-gradient(135deg, rgba(125,77,255,.14), rgba(255,79,163,.1));
    border-color: rgba(125,77,255,.2);
}
.sdf-fair-row-full {
    display: grid;
    gap: 10px;
    border: 1px solid var(--g-line);
    border-radius: var(--g-r-lg);
    background: rgba(255,255,255,.8);
    padding: 14px 16px;
    box-shadow: var(--g-shadow-sm);
    transition: border-color .18s;
}
.sdf-fair-row-full:hover { border-color: rgba(125,77,255,.2); }

/* ── Account alert (plan notice) ────────────────────────────────── */
.sdf-account-alert {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    padding: 14px 16px;
    border-radius: var(--g-r-lg);
    border: 1px solid rgba(245,158,11,.22);
    background: rgba(255,248,230,.88);
    color: #92400e;
    font-size: .8rem;
    line-height: 1.45;
}
.sdf-account-alert--success {
    border-color: rgba(34,197,94,.2);
    background: rgba(240,253,244,.88);
    color: #166534;
}
.sdf-account-alert--danger {
    border-color: rgba(220,38,38,.18);
    background: rgba(255,241,242,.88);
    color: #991b1b;
}
.sdf-account-alert i { flex-shrink: 0; margin-top: 2px; }

/* ── Footer ───────────────────────────────────────────────────── */
.sdf-footer {
    margin-top: 64px;
    border-top: 1px solid var(--g-line);
    background: rgba(248,250,252,.98);
}
.sdf-footer-inner {
    display: grid;
    grid-template-columns: 1.6fr 1fr 1fr;
    gap: 32px;
    max-width: 1320px;
    margin: 0 auto;
    padding: 40px 24px 32px;
}
.sdf-footer-logo {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--g-text);
    font-weight: 900;
    font-size: .96rem;
    text-decoration: none;
    margin-bottom: 12px;
}
.sdf-footer-brand p {
    color: var(--g-muted);
    font-size: .82rem;
    line-height: 1.6;
    max-width: 30ch;
    margin: 0;
}
.sdf-footer-heading {
    display: block;
    color: var(--g-muted);
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
    margin-bottom: 10px;
}
.sdf-footer-nav {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.sdf-footer-nav a {
    color: var(--g-text);
    font-size: .84rem;
    font-weight: 600;
    text-decoration: none;
    opacity: .8;
    transition: opacity .12s;
}
.sdf-footer-nav a:hover { opacity: 1; }
.sdf-footer-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 1320px;
    margin: 0 auto;
    padding: 16px 24px;
    border-top: 1px solid var(--g-line);
    color: var(--g-muted);
    font-size: .76rem;
}
@media (max-width: 640px) {
    .sdf-footer-inner {
        grid-template-columns: 1fr 1fr;
        gap: 24px;
        padding: 28px 16px 20px;
    }
    .sdf-footer-brand {
        grid-column: 1 / -1;
    }
    .sdf-footer-brand p { max-width: none; }
    .sdf-footer-bottom {
        flex-direction: column;
        gap: 4px;
        text-align: center;
        padding: 12px 16px;
    }
}

/* ── Vendor subdomain index ───────────────────────────────────── */
.sdf-shell--vendors-page {
    display: grid;
    gap: 20px;
    width: min(calc(100% - 32px), 1080px);
    margin: 24px auto 48px;
}
.sdf-intro--vendors h1 { font-size: clamp(1.4rem, 3vw, 2rem); }
.sdf-feed--vendors {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 14px;
}
.sdf-vendor-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding: 0;
}
.sdf-vendor-card-top {
    position: relative;
    display: block;
    aspect-ratio: 1 / 1;
    background: linear-gradient(135deg, rgba(125,77,255,.12), rgba(255,143,208,.1));
    overflow: hidden;
}
.sdf-vendor-card-top img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.sdf-vendor-initials {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    font-weight: 900;
    color: var(--g-violet);
    opacity: .5;
    letter-spacing: -.02em;
}
.sdf-vendor-badge {
    position: absolute;
    bottom: 8px;
    left: 8px;
    background: rgba(0,0,0,.55);
    color: #fff;
    font-size: .72rem;
    font-weight: 800;
    padding: 3px 8px;
    border-radius: 999px;
    backdrop-filter: blur(6px);
}
.sdf-vendor-card .sdf-card-main {
    padding: 12px 14px 14px;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.sdf-vendor-card .sdf-card-title {
    font-size: .92rem;
    line-height: 1.3;
    margin: 0;
}
.sdf-vendor-card .sdf-card-subline {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 8px;
}
.sdf-vendor-invite-btn {
    margin-top: auto;
    padding-top: 8px;
    font-size: .76rem;
    font-weight: 800;
    color: var(--g-violet);
    text-decoration: none;
    border-top: 1px solid var(--g-line);
}
.sdf-vendor-invite-btn:hover { text-decoration: underline; }

/* Pagination */
.sdf-pagination {
    display: flex;
    justify-content: center;
    gap: 8px;
    flex-wrap: wrap;
    padding: 8px 0 24px;
}
.sdf-pagination a,
.sdf-pagination span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    min-height: 36px;
    padding: 0 10px;
    border-radius: 10px;
    border: 1px solid var(--g-line);
    font-size: .84rem;
    font-weight: 700;
    color: var(--g-text);
    text-decoration: none;
    background: #fff;
}
.sdf-pagination .current {
    background: var(--g-violet);
    color: #fff;
    border-color: var(--g-violet);
}
.sdf-pagination .disabled { opacity: .35; pointer-events: none; }

@media (max-width: 480px) {
    .sdf-feed--vendors {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
    }
}
