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

:root {
    --bg:        #05070d;
    --surface:   #0c111a;
    --surface2:  #121925;
    --border:    rgba(255,255,255,0.07);
    --border2:   rgba(255,255,255,0.13);
    --accent:    #c8a84b;
    --accent2:   #e8c96a;
    --cyan:      #38bdf8;
    --violet:    #a78bfa;
    --green:     #67e8b4;
    --text:      #e2e6f0;
    --muted:     #7d88a4;
    --radius:    14px;
    --radius-sm: 8px;
}

* { box-sizing: border-box; }

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

body {
    font-family: 'Outfit', sans-serif;
    background:
        linear-gradient(115deg, rgba(200,168,75,0.08), transparent 28%),
        linear-gradient(245deg, rgba(56,189,248,0.08), transparent 32%),
        linear-gradient(180deg, #060810 0%, #05070d 48%, #08060b 100%);
    color: var(--text);
    margin: 0;
    min-height: 100vh;
    position: relative;
}

body::before {
    content: '';
    position: fixed;
    inset: 0;
    pointer-events: none;
    background-image:
        linear-gradient(rgba(255,255,255,0.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);
    background-size: 72px 72px;
    mask-image: linear-gradient(to bottom, rgba(0,0,0,0.5), transparent 68%);
    opacity: 0.34;
}

/* ── HEADER ── */
.topbar-rec {
    height: 68px;
    padding: 0 48px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: rgba(7,9,15,0.92);
    backdrop-filter: blur(24px);
    border-bottom: 1px solid var(--border);
    position: sticky;
    top: 0;
    z-index: 100;
}
.logo-header-rec { display: flex; align-items: center; text-decoration: none; opacity: 1; transition: opacity 0.2s; }
.logo-header-rec:hover { opacity: 0.7; }
.logo-header-rec img { height: 36px; display: block; }

.btn-back-rec {
    background: transparent;
    color: var(--muted);
    border: 1px solid var(--border2);
    padding: 7px 14px;
    border-radius: 6px;
    text-decoration: none;
    font-family: 'Outfit', sans-serif;
    font-size: 0.83rem;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 7px;
    transition: all 0.2s;
}
.btn-back-rec:hover { color: var(--text); border-color: rgba(200,168,75,0.35); background: rgba(200,168,75,0.06); }

/* Legacy header support */
.logo {
    height: 68px;
    padding: 0 48px;
    display: flex;
    align-items: center;
    background: rgba(7,9,15,0.92);
    backdrop-filter: blur(24px);
    border-bottom: 1px solid var(--border);
    position: sticky;
    top: 0;
    z-index: 100;
}

.logo a { display: flex; align-items: center; text-decoration: none; opacity: 1; transition: opacity 0.2s; }
.logo a:hover { opacity: 0.7; }
.logo img { height: 36px; display: block; }

/* ── CONTAINER ── */
.recommendations-container {
    max-width: 1100px;
    margin: 0 auto;
    padding: 22px 24px 48px;
    position: relative;
    z-index: 1;
}

/* ── STEPS ── */
.step { display: none; animation: fadeUp 0.4s ease; }
.step.active { display: block; }

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

/* ── STEP HEADER ── */
.step-header {
    text-align: center;
    margin-bottom: 34px;
    position: relative;
}

.step-header h1 {
    font-family: 'DM Serif Display', serif;
    font-size: clamp(2rem, 3.5vw, 3.45rem);
    font-weight: 400;
    color: #fff;
    margin: 0 0 12px;
    letter-spacing: 0;
    line-height: 0.96;
    text-shadow: 0 20px 60px rgba(0,0,0,0.45);
}

.step-header p {
    font-size: 1rem;
    color: var(--muted);
    margin: 0;
    font-weight: 300;
}

/* Step icon (centered decorative icon above title) */
.step-icon-wrap {
    display: flex;
    justify-content: center;
    margin-bottom: 16px;
}
.step-icon {
    width: 58px; height: 58px;
    border-radius: 18px;
    background:
        linear-gradient(145deg, rgba(255,255,255,0.12), rgba(255,255,255,0.03)),
        rgba(200,168,75,0.08);
    border: 1px solid rgba(232,201,106,0.22);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--accent2);
    font-size: 1.3rem;
    box-shadow:
        0 18px 42px rgba(0,0,0,0.38),
        0 0 0 1px rgba(255,255,255,0.04) inset;
}
.step-icon-cyan {
    background: rgba(56,189,248,0.1);
    border-color: rgba(56,189,248,0.2);
    color: var(--cyan);
}
.step-icon-violet {
    background: rgba(167,139,250,0.1);
    border-color: rgba(167,139,250,0.2);
    color: var(--violet);
}

/* Mood divider */
.mood-divider {
    text-align: center;
    margin: 32px 0 20px;
    display: flex;
    align-items: center;
    gap: 16px;
    max-width: 500px;
    margin-left: auto;
    margin-right: auto;
}
.mood-divider::before,
.mood-divider::after {
    content: '';
    flex: 1;
    height: 1px;
    background: var(--border2);
}
.mood-divider span {
    color: var(--muted);
    font-size: 0.88rem;
    white-space: nowrap;
}

/* Search input wrap */
.search-input-wrap {
    display: flex;
    align-items: center;
    gap: 14px;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.06), rgba(255,255,255,0.02)),
        rgba(9,12,19,0.88);
    border: 1px solid var(--border2);
    border-radius: 16px;
    padding: 0 20px;
    transition: all 0.2s;
    box-shadow: 0 18px 52px rgba(0,0,0,0.34), 0 1px 0 rgba(255,255,255,0.05) inset;
}
.search-input-wrap:focus-within {
    border-color: rgba(232,201,106,0.5);
    box-shadow:
        0 22px 58px rgba(0,0,0,0.42),
        0 0 0 4px rgba(200,168,75,0.1),
        0 1px 0 rgba(255,255,255,0.06) inset;
}
.search-input-wrap i { color: var(--accent2); font-size: 0.92rem; flex-shrink: 0; }
.search-input-wrap input {
    flex: 1;
    background: transparent;
    border: none;
    color: var(--text);
    font-family: 'Outfit', sans-serif;
    font-size: 1rem;
    padding: 18px 0;
    outline: none;
}
.search-input-wrap input::placeholder { color: var(--muted); }

/* Min warning */
.min-warning {
    color: var(--muted);
    text-align: center;
    margin-top: 14px;
    font-size: 0.85rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-weight: 400;
}
.min-warning i { color: var(--accent2); opacity: 0.8; }

/* Type pill (mostra o tipo selecionado no step de busca) */
.type-pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 16px;
    background:
        linear-gradient(135deg, rgba(200,168,75,0.18), rgba(200,168,75,0.06)),
        rgba(5,7,13,0.62);
    border: 1px solid rgba(232,201,106,0.32);
    border-radius: 999px;
    color: var(--accent2);
    font-size: 0.74rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin: 0 0 18px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.28);
}
.type-pill i { font-size: 0.85rem; }

/* Step header — destacar o "3 filmes" no subtitle */
.step-header p strong {
    color: var(--text);
    font-weight: 600;
}

.back-btn {
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(8,11,18,0.54);
    border: 1px solid rgba(255,255,255,0.1);
    color: #91a0c4;
    padding: 10px 18px;
    border-radius: 10px;
    cursor: pointer;
    font-family: 'Outfit', sans-serif;
    font-size: 0.85rem;
    font-weight: 500;
    transition: all 0.2s;
    letter-spacing: 0.01em;
    white-space: nowrap;
}
.back-btn:hover {
    color: var(--text);
    border-color: rgba(200,168,75,0.35);
    background: rgba(200,168,75,0.08);
    transform: translateY(-50%) translateX(-3px);
}

#step1 {
    width: min(100%, 920px);
    margin-inline: auto;
    min-height: calc(100vh - 124px);
    display: none;
    grid-template-rows: auto auto minmax(214px, auto) auto auto;
    align-content: start;
}

#step1.active {
    display: grid;
}

#step1 .step-header {
    margin-bottom: 28px;
}

#step1 .step-header::before {
    content: '';
    position: absolute;
    left: 50%;
    top: 38px;
    width: min(640px, 82vw);
    height: 132px;
    transform: translateX(-50%);
    pointer-events: none;
    background:
        linear-gradient(90deg, transparent, rgba(200,168,75,0.16), transparent) top / 100% 1px no-repeat,
        repeating-linear-gradient(90deg,
            rgba(232,201,106,0.22) 0 2px,
            transparent 2px 18px);
    mask-image: linear-gradient(to bottom, transparent, #000 35%, transparent);
    opacity: 0.28;
}

/* ── SELEÇÃO DE TIPO ── */
.media-type-selector {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 14px;
    max-width: 900px;
    margin: 0 auto;
    padding: 20px 0;
}

.media-type-btn {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 36px 20px;
    cursor: pointer;
    transition: all 0.22s cubic-bezier(0.34,1.2,0.64,1);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    color: var(--text);
    position: relative;
    overflow: hidden;
}

.media-type-btn::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(200,168,75,0.08), transparent);
    opacity: 0;
    transition: opacity 0.2s;
}

.media-type-btn:hover {
    border-color: rgba(200,168,75,0.35);
    transform: translateY(-5px);
    box-shadow: 0 16px 40px rgba(0,0,0,0.5);
}
.media-type-btn:hover::after { opacity: 1; }

.media-icon {
    font-size: 3rem;
    line-height: 1;
    display: block;
    position: relative;
    z-index: 1;
    transition: transform 0.2s cubic-bezier(0.34,1.56,0.64,1);
}
.media-type-btn:hover .media-icon { transform: scale(1.15); }

.media-label {
    font-size: 1.1rem;
    font-weight: 700;
    color: #fff;
    position: relative;
    z-index: 1;
}

.media-desc {
    font-size: 0.78rem;
    color: var(--muted);
    position: relative;
    z-index: 1;
    text-align: center;
    line-height: 1.4;
}

.mood-btn {
    border-style: dashed !important;
    border-color: rgba(200,168,75,0.2) !important;
}
.mood-btn:hover { border-style: solid !important; }

/* ── BUSCA ── */
.search-container {
    position: relative;
    max-width: 640px;
    margin: 0 auto 28px;
    width: 100%;
}

#searchInput {
    width: 100%;
    padding: 16px 22px;
    font-size: 1rem;
    font-family: 'Outfit', sans-serif;
    background: var(--surface);
    border: 1px solid var(--border2);
    border-radius: 16px;
    color: var(--text);
    outline: none;
    transition: all 0.2s;
}
#searchInput:focus {
    border-color: rgba(200,168,75,0.4);
    box-shadow: 0 0 0 3px rgba(200,168,75,0.08);
}
#searchInput::placeholder { color: var(--muted); }

.search-input-wrap #searchInput {
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    padding: 18px 0;
}

.search-input-wrap #searchInput:focus {
    border-color: transparent;
    box-shadow: none;
}

.search-results {
    position: absolute;
    top: calc(100% + 10px);
    left: 0;
    right: 0;
    background: rgba(10,14,22,0.97);
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 16px;
    max-height: 400px;
    overflow-y: auto;
    z-index: 20;
    display: none;
    box-shadow: 0 24px 70px rgba(0,0,0,0.72);
    backdrop-filter: blur(18px);
}
.search-results.active { display: block; }

.search-status {
    min-height: 62px;
    padding: 18px 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: var(--muted);
    font-size: 0.9rem;
    text-align: left;
}

.search-status > i {
    width: 16px;
    color: #91a0c4;
    text-align: center;
    flex-shrink: 0;
}

.search-status-loading,
.search-status-loading > i {
    color: var(--accent2);
}

.search-status-warning,
.search-status-warning > i {
    color: #fbbf24;
}

.search-status-error,
.search-status-error > i {
    color: #f87171;
}

.search-status small {
    display: block;
    margin-top: 6px;
    color: var(--muted);
}

.search-item {
    display: flex;
    gap: 14px;
    padding: 14px 16px;
    cursor: pointer;
    transition: background 0.15s;
    border-bottom: 1px solid var(--border);
}
.search-item:last-child { border-bottom: none; }
.search-item:hover { background: rgba(232,201,106,0.07); }

.search-item img {
    width: 46px;
    height: 68px;
    object-fit: cover;
    border-radius: 5px;
    background: var(--surface2);
    flex-shrink: 0;
}

.search-item-info {
    flex: 1;
    min-width: 0;
}

.search-item-info h4 {
    margin: 0 0 5px;
    font-size: 0.92rem;
    color: var(--text);
    font-weight: 600;
}
.search-item-info p {
    margin: 0;
    font-size: 0.8rem;
    color: var(--muted);
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 5px;
}

.media-type-inline,
.search-selected-state,
.search-item-rating {
    display: inline-flex;
    align-items: center;
}

.media-type-inline {
    gap: 6px;
}

.media-type-inline i {
    width: 14px;
    color: #91a0c4;
    text-align: center;
    font-size: 0.75rem;
}

.search-item-rating {
    gap: 8px;
    margin-top: 4px;
    color: #91a0c4;
    font-size: 0.76rem;
}

.search-selected-state {
    gap: 4px;
    color: var(--green);
}

.search-item.disabled { opacity: 0.4; cursor: not-allowed; }
.search-item.disabled:hover { background: transparent; }

/* ── SELECIONADOS ── */
.selected-items {
    background:
        linear-gradient(180deg, rgba(255,255,255,0.06), rgba(255,255,255,0.025)),
        linear-gradient(135deg, rgba(200,168,75,0.08), transparent 36%),
        rgba(9,13,20,0.84);
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 18px;
    padding: 26px 28px;
    margin-bottom: 24px;
    min-height: 238px;
    box-shadow:
        0 30px 90px rgba(0,0,0,0.38),
        0 1px 0 rgba(255,255,255,0.05) inset;
    position: relative;
    overflow: hidden;
}

.selected-items::before {
    content: '';
    position: absolute;
    inset: 0 0 auto;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(232,201,106,0.7), rgba(56,189,248,0.35), transparent);
    opacity: 0.72;
}

.selected-items h3 {
    margin: 0 0 22px;
    color: #8fa0c7;
    font-size: 0.78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    position: relative;
    z-index: 1;
}

.selected-items h3 .selected-count {
    background: rgba(103,232,180,0.08);
    color: var(--accent2);
    border: 1px solid rgba(232,201,106,0.25);
    padding: 4px 12px;
    border-radius: 999px;
    font-size: 0.72rem;
    letter-spacing: 0.06em;
    font-weight: 700;
    font-feature-settings: "tnum";
    transition: all 0.25s ease;
}
.selected-items h3 .selected-count.complete {
    background: rgba(103,232,180,0.1);
    color: var(--green);
    border-color: rgba(103,232,180,0.25);
    box-shadow: 0 0 20px rgba(103,232,180,0.08);
}

.selected-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 16px;
    align-items: start;
    position: relative;
    z-index: 1;
}

.selected-card {
    flex: 0 0 116px;
    background: #0a0d14;
    border-radius: 12px;
    overflow: hidden;
    position: relative;
    border: 1px solid rgba(255,255,255,0.1);
    transition: border-color 0.2s, transform 0.2s, box-shadow 0.2s;
    aspect-ratio: 2/3;
    box-shadow: 0 16px 34px rgba(0,0,0,0.32);
}

.selected-card.is-new {
    animation: selectedCardIn 0.32s cubic-bezier(0.22, 1, 0.36, 1);
}

@keyframes selectedCardIn {
    from { opacity: 0; transform: translateY(12px) scale(0.96); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

.selected-card:hover {
    border-color: rgba(232,201,106,0.42);
    transform: translateY(-5px);
    box-shadow: 0 22px 46px rgba(0,0,0,0.42);
}

.selected-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.selected-card-caption {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    padding: 44px 10px 10px;
    background: linear-gradient(to top, rgba(0,0,0,0.94), rgba(0,0,0,0.58) 54%, transparent);
}

.selected-card-caption h4 {
    margin: 0;
    font-size: 0.75rem;
    color: #fff;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    line-height: 1.3;
}

.selected-card-caption > span {
    display: block;
    margin-top: 3px;
    color: var(--muted);
    font-size: 0.68rem;
    font-weight: 400;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

.selected-card-caption .selected-card-type {
    display: flex;
    align-items: center;
    gap: 5px;
}

.selected-card-type i {
    color: var(--accent2);
    font-size: 0.62rem;
}

.remove-btn {
    position: absolute;
    top: 7px; right: 7px;
    width: 26px; height: 26px;
    background: rgba(5,7,13,0.78);
    border: 1px solid rgba(251,113,133,0.46);
    border-radius: 999px;
    color: #f87171;
    font-size: 0.9rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
    z-index: 2;
}
.remove-btn:hover {
    background: rgba(248,113,113,0.2);
    transform: scale(1.1);
}

.selected-list-empty {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: var(--muted);
    min-height: 150px;
    padding: 30px 20px;
    font-size: 0.95rem;
    font-weight: 300;
    gap: 14px;
}
.selected-list-empty .empty-icon {
    width: 58px;
    height: 58px;
    border-radius: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,0.035);
    border: 1px dashed rgba(232,201,106,0.24);
    color: var(--accent2);
    font-size: 1.3rem;
    opacity: 0.75;
}
.selected-list-empty span {
    max-width: 280px;
    line-height: 1.5;
}

/* ── GERAR RECOMENDAÇÕES ── */
.generate-btn {
    display: block;
    width: 100%;
    max-width: 420px;
    margin: 0 auto;
    padding: 16px 34px;
    font-size: 0.95rem;
    font-weight: 700;
    font-family: 'Outfit', sans-serif;
    background: linear-gradient(135deg, var(--accent2), var(--accent) 58%, #a9832e);
    color: #0a0c12;
    border: none;
    border-radius: 50px;
    cursor: pointer;
    transition: all 0.22s cubic-bezier(0.34,1.56,0.64,1);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    box-shadow: 0 18px 44px rgba(200,168,75,0.2);
    position: relative;
    overflow: hidden;
}
.generate-btn::before {
    content: '';
    position: absolute;
    inset: 1px;
    border-radius: inherit;
    background: linear-gradient(180deg, rgba(255,255,255,0.28), transparent 45%);
    pointer-events: none;
}
.generate-btn:hover:not(:disabled) {
    background: linear-gradient(135deg, #f3dc85, var(--accent2) 58%, var(--accent));
    transform: translateY(-3px);
    box-shadow: 0 20px 50px rgba(200,168,75,0.34);
}
.generate-btn:disabled {
    background: rgba(17,23,34,0.72);
    color: #66718d;
    border: 1px solid var(--border2);
    cursor: not-allowed;
    transform: none;
    opacity: 1;
    box-shadow: none;
}

/* ── LOADING ── */
.loading {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 60px 20px;
}

.spinner {
    width: 48px;
    height: 48px;
    margin: 0 auto 20px;
    border: 3px solid rgba(200,168,75,0.15);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: spin 0.9s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

.loading p {
    font-size: 1rem;
    color: var(--muted);
    font-weight: 300;
}

/* ── LISTA DE RECOMENDAÇÕES ── */
.recommendations-list,
.mood-results-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(175px, 1fr));
    gap: 16px;
    margin-bottom: 40px;
}
.recommendations-feedback {
    grid-column: 1 / -1;
    padding: 32px 16px;
    text-align: center;
    color: var(--muted);
}
.recommendations-feedback[role="alert"] { color: var(--status-error, #f87171); }
.recommendations-feedback .retry-recs-btn { margin: 18px auto 0; color: var(--text); }

.recommendation-card,
.mood-card {
    background: var(--surface);
    border-radius: var(--radius-sm);
    overflow: hidden;
    cursor: pointer;
    transition: transform 0.25s cubic-bezier(0.34,1.2,0.64,1), box-shadow 0.25s, border-color 0.25s;
    border: 1px solid var(--border);
    position: relative;
}

.recommendation-card:hover,
.mood-card:hover {
    transform: translateY(-7px) scale(1.02);
    border-color: rgba(200,168,75,0.3);
    box-shadow: 0 20px 48px rgba(0,0,0,0.6);
}

.recommendation-card img,
.mood-card-poster {
    width: 100%;
    height: 260px;
    object-fit: cover;
    display: block;
    transition: filter 0.25s;
}

.recommendation-card:hover img,
.mood-card:hover .mood-card-poster { filter: brightness(0.8); }

.mood-card-poster.no-poster {
    height: 260px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--surface2);
    font-size: 3rem;
}

.mood-card-poster.no-poster i {
    color: var(--accent2);
    opacity: 0.78;
}

.recommendation-info,
.mood-card-info {
    padding: 13px 14px;
}

.recommendation-info h3,
.mood-card-info h3 {
    margin: 0 0 7px;
    font-size: 0.88rem;
    font-weight: 600;
    color: #fff;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    line-height: 1.3;
}

.recommendation-info .rating,
.mood-card-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.78rem;
    color: var(--muted);
    margin-bottom: 6px;
}

.mood-card-meta { margin-bottom: 0; }

.recommendation-info .rating span,
.mood-card-rating {
    color: var(--accent2);
    font-weight: 700;
}

.mood-card-rating {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.recommendation-info p {
    margin: 0;
    font-size: 0.78rem;
    color: var(--muted);
}

.recommendation-info .recommendation-reason {
    margin-top: 8px;
    color: #a5b4fc;
    line-height: 1.35;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.recommendation-reason i {
    color: var(--accent2);
    margin-right: 3px;
}

/* Badges nos cards */
.mood-card-rank {
    position: absolute;
    top: 8px; left: 8px;
    z-index: 2;
    background: rgba(0,0,0,0.72);
    backdrop-filter: blur(4px);
    color: var(--accent2);
    font-weight: 700;
    font-size: 0.72rem;
    padding: 3px 9px;
    border-radius: 6px;
    border: 1px solid rgba(200,168,75,0.25);
}

.mood-card-type {
    position: absolute;
    top: 8px; right: 8px;
    z-index: 2;
    background: rgba(0,0,0,0.72);
    backdrop-filter: blur(4px);
    font-size: 0.72rem;
    padding: 3px 8px;
    border-radius: 6px;
    color: rgba(255,255,255,0.7);
    border: 1px solid var(--border2);
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

#moodResultTitle i {
    margin-right: 10px;
    color: var(--accent2);
    font-size: 0.72em;
}

/* ── BOTÃO REINICIAR ── */
.restart-btn {
    display: block;
    width: 100%;
    max-width: 340px;
    margin: 0 auto 12px;
    padding: 13px 28px;
    font-size: 0.9rem;
    font-weight: 600;
    font-family: 'Outfit', sans-serif;
    background: transparent;
    color: var(--muted);
    border: 1px solid var(--border2);
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.2s;
    letter-spacing: 0.02em;
}
.restart-btn:hover {
    color: var(--text);
    border-color: rgba(200,168,75,0.35);
    background: rgba(200,168,75,0.06);
}

/* ── MOOD SELECTOR ── */
.mood-selector {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 12px;
    margin-top: 28px;
}

.mood-option {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 28px 12px;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    cursor: pointer;
    transition: all 0.25s cubic-bezier(0.34,1.2,0.64,1);
    color: var(--text);
    position: relative;
    overflow: hidden;
}

.mood-option::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    opacity: 0;
    transition: opacity 0.25s;
    z-index: 0;
}

.mood-option:nth-child(1)::before  { background: linear-gradient(135deg, rgba(250,204,21,0.2), transparent); }
.mood-option:nth-child(2)::before  { background: linear-gradient(135deg, rgba(96,165,250,0.2), transparent); }
.mood-option:nth-child(3)::before  { background: linear-gradient(135deg, rgba(167,139,250,0.2), transparent); }
.mood-option:nth-child(4)::before  { background: linear-gradient(135deg, rgba(148,163,184,0.2), transparent); }
.mood-option:nth-child(5)::before  { background: linear-gradient(135deg, rgba(251,113,133,0.2), transparent); }
.mood-option:nth-child(6)::before  { background: linear-gradient(135deg, rgba(52,211,153,0.2), transparent); }
.mood-option:nth-child(7)::before  { background: linear-gradient(135deg, rgba(239,68,68,0.2), transparent); }
.mood-option:nth-child(8)::before  { background: linear-gradient(135deg, rgba(6,182,212,0.2), transparent); }
.mood-option:nth-child(9)::before  { background: linear-gradient(135deg, rgba(249,115,22,0.2), transparent); }
.mood-option:nth-child(10)::before { background: linear-gradient(135deg, rgba(200,168,75,0.2), transparent); }

.mood-option:hover {
    border-color: rgba(200,168,75,0.3);
    transform: translateY(-6px);
    box-shadow: 0 14px 36px rgba(0,0,0,0.5);
}
.mood-option:hover::before { opacity: 1; }
.mood-option:active { transform: translateY(-2px); }

.mood-icon {
    width: 64px;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(255,255,255,0.03);
    border: 1px solid var(--border2);
    font-size: 1.7rem;
    line-height: 1;
    position: relative;
    z-index: 1;
    transition: transform 0.25s cubic-bezier(0.34,1.56,0.64,1),
                background 0.25s, border-color 0.25s, box-shadow 0.25s;
    color: var(--text);
}
.mood-option:hover .mood-icon {
    transform: scale(1.1);
    border-color: rgba(255,255,255,0.15);
}

/* Cor + glow específicos por humor (combinando com o gradiente) */
.mood-option:nth-child(1)  .mood-icon { color: #facc15; }  /* feliz       — sol     */
.mood-option:nth-child(2)  .mood-icon { color: #60a5fa; }  /* triste      — chuva   */
.mood-option:nth-child(3)  .mood-icon { color: #a78bfa; }  /* ansioso     — raio    */
.mood-option:nth-child(4)  .mood-icon { color: #94a3b8; }  /* entediado   — cama    */
.mood-option:nth-child(5)  .mood-icon { color: #fb7185; }  /* romântico   — coração */
.mood-option:nth-child(6)  .mood-icon { color: #34d399; }  /* aventureiro — montanha*/
.mood-option:nth-child(7)  .mood-icon { color: #ef4444; }  /* assustado   — fantasma*/
.mood-option:nth-child(8)  .mood-icon { color: #06b6d4; }  /* pensativo   — cérebro */
.mood-option:nth-child(9)  .mood-icon { color: #f97316; }  /* bravo       — fogo    */
.mood-option:nth-child(10) .mood-icon { color: #c8a84b; }  /* nostálgico  — ampulheta*/

.mood-option:nth-child(1):hover  .mood-icon { box-shadow: 0 0 0 6px rgba(250,204,21,0.08), 0 6px 20px rgba(250,204,21,0.25); }
.mood-option:nth-child(2):hover  .mood-icon { box-shadow: 0 0 0 6px rgba(96,165,250,0.08), 0 6px 20px rgba(96,165,250,0.25); }
.mood-option:nth-child(3):hover  .mood-icon { box-shadow: 0 0 0 6px rgba(167,139,250,0.08), 0 6px 20px rgba(167,139,250,0.25); }
.mood-option:nth-child(4):hover  .mood-icon { box-shadow: 0 0 0 6px rgba(148,163,184,0.08), 0 6px 20px rgba(148,163,184,0.2); }
.mood-option:nth-child(5):hover  .mood-icon { box-shadow: 0 0 0 6px rgba(251,113,133,0.08), 0 6px 20px rgba(251,113,133,0.25); }
.mood-option:nth-child(6):hover  .mood-icon { box-shadow: 0 0 0 6px rgba(52,211,153,0.08), 0 6px 20px rgba(52,211,153,0.25); }
.mood-option:nth-child(7):hover  .mood-icon { box-shadow: 0 0 0 6px rgba(239,68,68,0.08), 0 6px 20px rgba(239,68,68,0.25); }
.mood-option:nth-child(8):hover  .mood-icon { box-shadow: 0 0 0 6px rgba(6,182,212,0.08), 0 6px 20px rgba(6,182,212,0.25); }
.mood-option:nth-child(9):hover  .mood-icon { box-shadow: 0 0 0 6px rgba(249,115,22,0.08), 0 6px 20px rgba(249,115,22,0.25); }
.mood-option:nth-child(10):hover .mood-icon { box-shadow: 0 0 0 6px rgba(200,168,75,0.08), 0 6px 20px rgba(200,168,75,0.25); }

.mood-name {
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    position: relative;
    z-index: 1;
    color: var(--muted);
    transition: color 0.2s;
}
.mood-option:hover .mood-name { color: var(--text); }

/* Tema claro */
body.light-theme,
html.light-theme-early body {
    background: #f4f1ea;
    color: #1e293b;
    --bg: #f4f1ea;
    --surface: #fff;
    --surface2: #f8f7f3;
    --border: rgba(30, 41, 59, .1);
    --border2: rgba(30, 41, 59, .16);
    --text: #1e293b;
    --muted: #667085;
}
body.light-theme::before,
html.light-theme-early body::before { opacity: .08; }
body.light-theme .topbar-rec,
html.light-theme-early body .topbar-rec,
body.light-theme .logo,
html.light-theme-early body .logo {
    background: rgba(255,255,255,.94);
    border-bottom-color: rgba(30,41,59,.1);
}
body.light-theme .step-header h1,
html.light-theme-early body .step-header h1 { color: #1e293b; text-shadow: none; }
body.light-theme .media-type-btn,
html.light-theme-early body .media-type-btn {
    background: #fff;
    border-color: rgba(30,41,59,.12);
    box-shadow: 0 8px 24px rgba(30,41,59,.06);
}
body.light-theme .media-type-btn:hover,
html.light-theme-early body .media-type-btn:hover {
    border-color: rgba(138,104,29,.42);
    box-shadow: 0 12px 30px rgba(30,41,59,.1);
}
body.light-theme .media-label,
html.light-theme-early body .media-label { color: #1e293b; }
body.light-theme .media-icon,
html.light-theme-early body .media-icon { color: #526070; }
body.light-theme .search-input-wrap,
html.light-theme-early body .search-input-wrap {
    background: #fff;
    border-color: rgba(30,41,59,.16);
    box-shadow: 0 8px 24px rgba(30,41,59,.06);
}
body.light-theme .search-input-wrap input,
html.light-theme-early body .search-input-wrap input,
body.light-theme #searchInput,
html.light-theme-early body #searchInput {
    background: transparent !important;
    color: #1e293b !important;
    border: 0 !important;
}

/* ── RESPONSIVE ── */
@media (max-width: 900px) {
    .media-type-selector { grid-template-columns: repeat(3, 1fr); }
    .mood-selector { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 768px) {
    .topbar-rec { padding: 0 24px; }
    .logo { padding: 0 24px; }
    .recommendations-container { padding: 40px 16px 60px; }

    .step-header h1 { font-size: 1.7rem; }
    .back-btn {
        position: static;
        transform: none;
        margin-bottom: 20px;
        display: inline-flex;
    }
    .back-btn:hover { transform: translateX(-3px); }
    .step-header { text-align: left; }

    .media-type-selector { grid-template-columns: repeat(2, 1fr); gap: 10px; }
    .media-type-btn { padding: 28px 14px; }
    .media-icon { font-size: 2.4rem; }
    .media-label { font-size: 1rem; }

    #step1 .step-header { text-align: center; }
    .selected-items { padding: 22px 18px; }
    .selected-list { gap: 10px; }
    .selected-card {
        flex-basis: clamp(88px, calc((100vw - 90px) / 3), 108px);
    }

    .recommendations-list,
    .mood-results-grid { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 12px; }

    .recommendation-card img,
    .mood-card-poster { height: 210px; }

    .mood-selector { grid-template-columns: repeat(3, 1fr); gap: 10px; }
    .mood-option { padding: 22px 10px; }
    .mood-icon { width: 52px; height: 52px; font-size: 1.4rem; }

    .step-icon { width: 48px; height: 48px; font-size: 1.1rem; }
}

@media (max-width: 480px) {
    .mood-selector { grid-template-columns: repeat(2, 1fr); }
    .media-type-selector { grid-template-columns: repeat(2, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
    .selected-card.is-new { animation: none; }
}

/* Completa o tema claro nos passos de busca, seleção e resultados. */
:is(html.light-theme-early, body.light-theme) {
    --muted: #586577;
    --cyan: #126b82;
    --violet: #7050b5;
    --green: #1b6e47;
}
:is(html.light-theme-early, body.light-theme) :is(.step-icon, .search-input-wrap:focus-within) { box-shadow: 0 0 0 3px rgba(138, 104, 29, 0.12); }
:is(html.light-theme-early, body.light-theme) :is(.step-icon, .search-input-wrap i, .min-warning i, .recommendation-info .rating span, .mood-card-rating, .recommendation-reason i, #moodResultTitle i, .mood-card-poster.no-poster i) { color: #806018; }
:is(html.light-theme-early, body.light-theme) .step-icon-cyan { color: var(--cyan); }
:is(html.light-theme-early, body.light-theme) .step-icon-violet { color: var(--violet); }
:is(html.light-theme-early, body.light-theme) .type-pill {
    background: #f9f0d8;
    color: #806018;
    border-color: #d6b75c;
    box-shadow: none;
}
:is(html.light-theme-early, body.light-theme) .back-btn {
    background: #fff;
    color: #465369;
    border-color: var(--border2);
}
:is(html.light-theme-early, body.light-theme) :is(.media-type-btn, .mood-option):hover { box-shadow: 0 12px 30px rgba(30, 41, 59, 0.12); }
:is(html.light-theme-early, body.light-theme) :is(.search-results, .selected-items) {
    background: #fff;
    border-color: var(--border2);
    box-shadow: 0 18px 45px rgba(30, 41, 59, 0.1);
}
:is(html.light-theme-early, body.light-theme) :is(.search-item h3, .search-item-title, .recommendation-info h3, .mood-card-info h3) { color: var(--text); }
:is(html.light-theme-early, body.light-theme) :is(.search-item p, .media-type-inline i, .search-item-rating, .selected-items h3) { color: var(--muted); }
:is(html.light-theme-early, body.light-theme) .selected-items h3 .selected-count { color: #806018; background: #f9f0d8; }
:is(html.light-theme-early, body.light-theme) .selected-items h3 .selected-count.complete { color: var(--green); background: #edf8f1; border-color: rgba(27, 110, 71, 0.3); }
:is(html.light-theme-early, body.light-theme) .selected-list-empty .empty-icon { background: #f8f7f3; color: #806018; opacity: 1; }
:is(html.light-theme-early, body.light-theme) :is(.search-status-loading, .search-status-loading > i, .search-status-warning, .search-status-warning > i) { color: #806018; }
:is(html.light-theme-early, body.light-theme) :is(.search-status-error, .search-status-error > i) { color: #ad2938; }
:is(html.light-theme-early, body.light-theme) .generate-btn:disabled { background: #e5e8ed; color: #586577; border-color: var(--border2); }
:is(html.light-theme-early, body.light-theme) :is(.recommendation-card, .mood-card):hover { box-shadow: 0 18px 42px rgba(30, 41, 59, 0.14); }
:is(html.light-theme-early, body.light-theme) .recommendation-info .recommendation-reason { color: #625098; }
:is(html.light-theme-early, body.light-theme) .mood-icon { background: #f8f7f3; border-color: var(--border2); }
:is(html.light-theme-early, body.light-theme) .mood-option:nth-child(1) .mood-icon { color: #8a6500; }
:is(html.light-theme-early, body.light-theme) .mood-option:nth-child(2) .mood-icon { color: #2468b4; }
:is(html.light-theme-early, body.light-theme) .mood-option:nth-child(3) .mood-icon { color: #7050b5; }
:is(html.light-theme-early, body.light-theme) .mood-option:nth-child(4) .mood-icon { color: #586577; }
:is(html.light-theme-early, body.light-theme) .mood-option:nth-child(5) .mood-icon { color: #b52e56; }
:is(html.light-theme-early, body.light-theme) .mood-option:nth-child(6) .mood-icon { color: #1b6e47; }
:is(html.light-theme-early, body.light-theme) .mood-option:nth-child(7) .mood-icon { color: #b52c2c; }
:is(html.light-theme-early, body.light-theme) .mood-option:nth-child(8) .mood-icon { color: #126b82; }
:is(html.light-theme-early, body.light-theme) .mood-option:nth-child(9) .mood-icon { color: #b14e12; }
:is(html.light-theme-early, body.light-theme) .mood-option:nth-child(10) .mood-icon { color: #806018; }
/* Sobre pôsteres, o contraste continua sendo com o overlay escuro. */
:is(html.light-theme-early, body.light-theme) .selected-card-caption > span { color: #c7cfdb; }
:is(html.light-theme-early, body.light-theme) :is(.selected-card-type i, .mood-card-rank) { color: #f0d77f; }
