/* ═══════════════════════════════════════════
   TEMA RETRO ~2000 — Recitales
   Inspirado en Yahoo! 1999-2000
   ═══════════════════════════════════════════ */

:root {
    --bg: #FFFFFF;
    --bg-card: #FFFFFF;
    --bg-hover: #F0F0E8;
    --gold: #CC0033;
    --gold-dim: #990022;
    --text: #000000;
    --text-dim: #444444;
    --text-muted: #777777;
    --border: #CCCCCC;
    --tag-bg: #EEEEEE;
    --tag-text: #333333;
    --overlay: rgba(255,255,255,0.92);
}

/* +50% size globally — resoluciones modernas son mucho más altas que 800x600 */
html {
    font-size: 150%;
}

body {
    background: #FFFFFF;
    font-family: "Times New Roman", Times, serif;
    color: #000000;
}

/* ── Header: Yahoo! style ── */
.header {
    background: #FFFFFF;
    border-bottom: 2px solid #CC0033;
    padding: 0.75rem 1rem;
    max-width: 800px;
    margin: 0 auto;
    text-align: center;
}

/* Hide header map link in retro — it's in the filters bar instead */
.header .map-link {
    display: none;
}

.header h1 {
    color: #CC0033;
    font-size: 3.3rem;
    font-family: "Times New Roman", Times, serif;
    font-weight: bold;
    letter-spacing: -0.5px;
    text-shadow: 2px 2px 0 #000000;
    animation: retro-blink 1.5s infinite;
}

@keyframes retro-blink {
    0%, 49% { text-shadow: 2px 2px 0 #ff0000, 4px 4px 0 #000000; }
    50%, 100% { text-shadow: 2px 2px 0 #00ffff, 4px 4px 0 #000000; }
}

/* Remove marquee banner */
.header::after {
    content: none;
}

/* ── Theme switcher button ── */
.header #theme-switcher {
    position: absolute;
    top: 0.5rem;
    right: 0.2rem;
    background: #EEEEEE;
    border: 1px solid #999999;
    color: #333333;
    font-size: 0.85rem;
    padding: 0.15rem 0.4rem;
    border-radius: 0;
    cursor: pointer;
    font-family: "Times New Roman", Times, serif;
}
.header #theme-switcher:hover {
    background: #DDDDDD;
}

/* ── Welcome note: same width as filters bar ── */
.welcome-note {
    max-width: 95%;
    margin: 0.5rem auto;
    padding: 0 1rem;
}

/* ── Filters bar ── */
.filters {
    background: #FFFFCC;
    border-bottom: 1px solid #CCCC99;
    max-width: 95%;
    margin: 0 auto;
    padding: 0.5rem 1rem;
    gap: 0.35rem;
    top: 0;
}

/* Show map link inside filters bar */
.filters-map-link {
    display: inline-flex !important;
    align-items: center;
    color: #0033CC;
    text-decoration: underline;
    font-family: "Times New Roman", Times, serif;
    font-size: 0.8rem;
    white-space: nowrap;
    padding: 0.25rem 0.4rem;
}
.filters-map-link:hover {
    color: #CC0033;
}

.filters input,
.filters select {
    background: #FFFFFF;
    color: #000000;
    border: 1px solid #999999;
    border-radius: 0;
    font-family: "Times New Roman", Times, serif;
    font-size: 0.78rem;
    padding: 0.25rem 0.4rem;
    min-width: 90px;
}

.filters input:focus,
.filters select:focus {
    outline: 1px solid #0033CC;
    border-color: #0033CC;
}

.filters .count {
    color: #666666;
    font-size: 0.75rem;
    font-family: "Times New Roman", Times, serif;
}

.filters .clear-btn {
    background: none;
    border: none;
    color: #0033CC;
    padding: 0.25rem 0.5rem;
    cursor: pointer;
    font-size: 0.75rem;
    font-family: "Times New Roman", Times, serif;
    text-decoration: underline;
}
.filters .clear-btn:hover {
    color: #CC0033;
}

/* ── Main content area ── */
.main {
    max-width: 800px;
    margin: 0 auto;
    padding: 0.5rem 1rem 3rem;
}

/* Remove "Best viewed in" footer */
.main::after {
    content: none;
}

/* ── Month label (like Yahoo! category header) ── */
.month-label {
    color: #CC0033;
    background: #FFFFFF;
    font-size: 0.85rem;
    font-weight: bold;
    font-family: "Times New Roman", Times, serif;
    letter-spacing: 0;
    padding: 0.4rem 0;
    border-bottom: 1px solid #CC0033;
    top: 50px;
}

/* ── Event card (like Yahoo! directory listing) ── */
.event-card {
    background: #FFFFFF;
    border: none;
    border-bottom: 1px dotted #CCCCCC;
    margin: 0;
    padding: 0.35rem 0.2rem;
    display: flex;
    gap: 0.6rem;
    transition: background 0.1s;
}
.event-card:hover {
    background: #F4F4EE;
}

/* Two-line layout: bands on top, everything else inline below */
.event-body {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    column-gap: 0.4rem;
}

/* ── Date ── */
.event-date {
    min-width: 48px;
    text-align: center;
    flex-shrink: 0;
}
.event-date .day {
    color: #000000;
    font-size: 1.05rem;
    font-weight: bold;
    font-family: "Times New Roman", Times, serif;
}
.event-date .dow {
    color: #666666;
    font-size: 0.65rem;
    font-family: "Times New Roman", Times, serif;
    text-transform: uppercase;
}
.event-date .month-sm {
    color: #999999;
    font-size: 0.6rem;
}

/* ── Bands ── */
.event-bands {
    font-size: 0.9rem;
    font-weight: normal;
    font-family: "Times New Roman", Times, serif;
    width: 100%;  /* force own line in two-line layout */
}
.event-bands .band-name {
    color: #0033CC;
    text-decoration: underline;
    cursor: pointer;
    font-weight: normal;
}
.event-bands .band-name:hover {
    color: #CC0033;
    text-decoration: underline;
}
.event-bands .sep {
    color: #999999;
}

/* ── Venue & meta ── */
.event-meta {
    font-size: 0.75rem;
    color: #555555;
    font-family: "Times New Roman", Times, serif;
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-items: center;
}
.event-meta .venue-name {
    color: #0033CC;
    text-decoration: underline;
    cursor: pointer;
}
.event-meta .venue-name:hover {
    color: #CC0033;
    text-decoration: underline;
}
.event-meta .zone-name {
    color: #0033CC;
    text-decoration: underline;
    cursor: pointer;
}
.event-meta .zone-name:hover {
    color: #CC0033;
    text-decoration: underline;
}

.event-hora {
    color: #666666;
    font-weight: normal;
}

/* ── Tags ── */
.event-tags {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    align-items: center;
    margin-top: 0;
}
.tag {
    font-size: 0.6rem;
    background: #EEEEEE;
    color: #333333;
    padding: 0.1rem 0.4rem;
    border-radius: 0;
    border: 1px solid #CCCCCC;
    letter-spacing: 0;
    font-family: "Times New Roman", Times, serif;
}
.tag.zone {
    background: #EEEEFF;
    color: #003399;
    border: 1px solid #9999CC;
}
.tag.genre {
    color: #666666;
}

/* ── Price / tickets ── */
.event-price {
    font-size: 0.7rem;
    color: #006600;
}
.event-price a {
    color: #0033CC;
    text-decoration: underline;
}
.event-price a:hover {
    color: #CC0033;
}

/* ── Modal ── */
.modal-overlay {
    background: rgba(255,255,255,0.9);
}

.modal {
    background: #FFFFFF;
    border: 1px solid #999999;
    border-radius: 0;
    box-shadow: 3px 3px 0 rgba(0,0,0,0.15);
    max-width: 500px;
    padding: 1.25rem;
}

.modal h2 {
    color: #CC0033;
    font-size: 1.3rem;
    font-family: "Times New Roman", Times, serif;
    font-weight: bold;
    text-shadow: none;
}

.modal .detail-label {
    color: #666666;
    font-size: 0.8rem;
    min-width: 70px;
}
.modal .detail-value {
    color: #000000;
    font-size: 0.85rem;
}
.modal .detail-value a {
    color: #0033CC;
    text-decoration: underline;
}
.modal .detail-value a:hover {
    color: #CC0033;
}

.modal .modal-events {
    border-top: 1px solid #CCCCCC;
    margin-top: 1rem;
    padding-top: 0.75rem;
}
.modal .modal-events h3 {
    color: #CC0033;
    font-size: 0.8rem;
    font-family: "Times New Roman", Times, serif;
    font-weight: bold;
    background: none;
    border: none;
    padding: 0;
    text-transform: none;
    letter-spacing: 0;
}

.modal .mini-date {
    color: #666666;
    font-size: 0.75rem;
}
.modal .mini-bands {
    color: #0033CC;
}
.modal .mini-venue {
    color: #555555;
    font-size: 0.7rem;
}
.modal .no-events {
    color: #999999;
    font-size: 0.8rem;
}

/* ── Clickable links inside modals (retro) ── */
.modal-venue-link {
    cursor: pointer;
    color: #0033CC;
    text-decoration: underline;
}
.modal-venue-link:hover {
    color: #CC0033;
    text-decoration: underline;
}
.modal-band-link {
    cursor: pointer;
    color: #0033CC;
    text-decoration: underline;
}
.modal-band-link:hover {
    color: #CC0033;
    text-decoration: underline;
}
.modal-zone-link {
    cursor: pointer;
    color: #0033CC;
    text-decoration: underline;
}
.modal-zone-link:hover {
    color: #CC0033;
    text-decoration: underline;
}

.modal-close {
    background: none;
    border: none;
    color: #666666;
    font-size: 1.2rem;
    font-weight: bold;
    cursor: pointer;
    padding: 0;
}
.modal-close:hover {
    color: #CC0033;
}

/* ── Loading ── */
.loading {
    color: #666666;
    font-size: 0.85rem;
}
.loading .spinner {
    border: 2px solid #CCCCCC;
    border-top-color: #CC0033;
}

/* ── No results ── */
.no-results {
    color: #CC0033;
    background: #FFFFCC;
    border: 1px solid #CCCC99;
    padding: 2rem;
    font-size: 0.9rem;
}

/* ── Remove starfield ── */
body::before {
    content: none;
}

/* ── Responsive ── */
@media (max-width: 640px) {
    .header { padding: 0.5rem 0.75rem; }
    .header h1 { font-size: 2.1rem; }
    .filters { padding: 0.4rem 0.75rem; }
    .filters input, .filters select { font-size: 0.7rem; }
    .event-date { min-width: 40px; }
    .event-date .day { font-size: 0.9rem; }
    .event-bands { font-size: 0.8rem; }
    .main { padding: 0.3rem 0.5rem 2rem; }
}
