/* ============================================================
   LSM for YM – Public Styles  (responsive)
   ============================================================ */

:root {
    --lsm-border:    #ddd;
    --lsm-header-bg: #f5f5f5;
    --lsm-row-bg:    #fff;
    --lsm-row-alt:   #fafafa;
    --lsm-cancel-bg: #fff5f5;
    --lsm-cancel-fg: #c00;
    --lsm-accent:    #0073aa;
    --lsm-radius:    4px;
}

/* ---- Wrappers ---- */
.lsm-schedule-wrap,
.lsm-archive-wrap {
    font-size: 14px;
    line-height: 1.6;
    max-width: 100%;
    overflow: hidden;
}

/* ---- Month / Year selector ---- */
.lsm-month-nav,
.lsm-year-nav {
    margin-bottom: 12px;
}
.lsm-month-nav label,
.lsm-year-nav label {
    margin-right: 6px;
    font-weight: 600;
}
.lsm-month-nav select,
.lsm-year-nav select {
    padding: 4px 8px;
    border: 1px solid var(--lsm-border);
    border-radius: var(--lsm-radius);
}

/* ---- Grid header (desktop) ---- */
.lsm-table-header.lsm-grid {
    display: grid;
    grid-template-columns: 110px 1fr 80px 1fr;
    background: var(--lsm-header-bg);
    border: 1px solid var(--lsm-border);
    border-bottom: 2px solid var(--lsm-accent);
    font-weight: 700;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .05em;
}
.lsm-table-header .lsm-cell {
    padding: 8px 10px;
    border-right: 1px solid var(--lsm-border);
}
.lsm-table-header .lsm-cell:last-child { border-right: none; }

/* ---- Row ---- */
.lsm-row {
    border: 1px solid var(--lsm-border);
    border-top: none;
    background: var(--lsm-row-bg);
}
.lsm-row:nth-child(even) { background: var(--lsm-row-alt); }
.lsm-row--cancelled      { background: var(--lsm-cancel-bg) !important; }

/* Top row = date + artist + city + venue (grid) */
.lsm-row {
    display: grid;
    grid-template-columns: 110px 1fr 80px 1fr;
    grid-template-rows: auto auto;
}

.lsm-cell--date   { grid-column: 1; grid-row: 1; }
.lsm-cell--artist { grid-column: 2; grid-row: 1; font-weight: 600; }
.lsm-cell--city   { grid-column: 3; grid-row: 1; }
.lsm-cell--venue  { grid-column: 4; grid-row: 1; }

.lsm-cell--details {
    grid-column: 1 / -1;
    grid-row: 2;
    border-top: 1px solid var(--lsm-border);
    padding: 8px 10px;
    font-size: 13px;
    color: #444;
}

.lsm-cell {
    padding: 10px 10px;
    border-right: 1px solid var(--lsm-border);
    vertical-align: top;
}
.lsm-cell--details { border-right: none; }
.lsm-cell--date { border-right: 1px solid var(--lsm-border); white-space: nowrap; }

/* ---- Cancelled badge ---- */
.lsm-cancelled-badge {
    display: inline-block;
    background: var(--lsm-cancel-fg);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    padding: 1px 5px;
    border-radius: 3px;
    margin-left: 4px;
    vertical-align: middle;
    letter-spacing: .02em;
}

/* ---- Buy Tickets button ---- */
.lsm-btn--ticket {
    display: inline-block;
    background: var(--lsm-accent);
    color: #fff !important;
    padding: 3px 10px;
    border-radius: var(--lsm-radius);
    font-size: 12px;
    font-weight: 700;
    text-decoration: none !important;
    margin-right: 8px;
    white-space: nowrap;
}
.lsm-btn--ticket:hover { background: #005a87; }

/* ---- Calendar links ---- */
.lsm-cal-links {
    margin-top: 6px;
    font-size: 12px;
}
.lsm-cal-links a {
    margin-right: 10px;
    color: #666;
    text-decoration: none;
}
.lsm-cal-links a:hover { text-decoration: underline; }

/* ---- Feed links ---- */
.lsm-feeds {
    margin-top: 12px;
    font-size: 12px;
    color: #666;
}
.lsm-feeds a { color: var(--lsm-accent); }

/* ============================================================
   RESPONSIVE – below 680 px
   ============================================================ */
@media (max-width: 680px) {

    .lsm-table-header.lsm-grid { display: none; }

    .lsm-row {
        display: block;
        margin-bottom: 10px;
        border: 1px solid var(--lsm-border);
        border-radius: var(--lsm-radius);
        overflow: hidden;
    }

    .lsm-cell {
        display: block;
        border-right: none;
        border-bottom: 1px solid var(--lsm-border);
        padding: 6px 10px;
    }
    .lsm-cell:last-child { border-bottom: none; }

    .lsm-cell--date {
        background: var(--lsm-header-bg);
        font-weight: 700;
        font-size: 13px;
    }
    .lsm-cell--city {
        display: inline;
        font-size: 12px;
        color: #666;
    }
    .lsm-cell--artist { font-size: 15px; }
    .lsm-cell--venue  { font-size: 13px; }
}
