/*
 * PB Gig Diary — Public Stylesheet
 * 
 * CSS custom properties (variables) are set on :root by the plugin.
 * Override any variable in your theme's stylesheet to customise appearance:
 *
 *   :root {
 *       --gd-accent:           #4a9ebb;   /* date text, border accent, map icon    */
 *       --gd-row-border:       #333;      /* horizontal rule between gig rows      */
 *       --gd-date-color:       #4a9ebb;   /* date text color                       */
 *       --gd-time-color:       #aaa;      /* time text color                       */
 *       --gd-venue-size:       1.25em;    /* venue name font size                  */
 *       --gd-address-color:    #aaa;      /* address and secondary text color      */
 *       --gd-past-date-color:  #666;      /* past shows date color                 */
 *       --gd-past-venue-color: #888;      /* past shows venue name color           */
 *       --gd-past-border:      #444;      /* past shows left border color          */
 *       --gd-row-spacing:      6px;       /* vertical gap between gig rows         */
 *       --gd-row-padding:      16px;      /* top/bottom padding inside each row    */
 *       --gd-date-col-width:   240px;     /* width of the date column              */
 *       --gd-venue-col-padding:40px;      /* left padding on venue/address column  */
 *   }
 *
 * Full CSS class reference is available under Settings → Help → CSS Classes.
 */

/* ============================================================
   GIGS TABLE — LAYOUT
   ============================================================ */

.gd-shows-wrap {
    width: 100%;
}

.gd-section-heading {
    margin: 1.5em 0 0.5em;
}

/* Table resets — inherit font from theme */
.gd-gig-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0 var(--gd-row-spacing, 6px);
    margin-bottom: 2rem;
}

.gd-gig-table td {
    vertical-align: top;
    border-top: 1px solid var(--gd-row-border, #333);
    padding: var(--gd-row-padding, 16px) 0;
}

.gd-gig-table tr:last-child td {
    border-bottom: 1px solid var(--gd-row-border, #333);
}

/* ============================================================
   DATE COLUMN
   ============================================================ */

.gd-col-date {
    width: var(--gd-date-col-width, 240px);
    min-width: 140px;
    padding-top: 0;
    padding-bottom: 0;
    border-left: 4px solid var(--gd-accent, #4a9ebb);
}

.gd-col-date-inner {
    padding: 0 20px 0 16px;
}

.gd-date-day {
    display: block;
    color: var(--gd-date-color, #4a9ebb);
    font-weight: 600;
    font-size: 1em;
}

.gd-date-time {
    display: block;
    color: var(--gd-time-color, #aaa);
    font-size: 0.88em;
    margin-top: 4px;
}

/* ============================================================
   VENUE + ADDRESS COLUMN
   ============================================================ */

.gd-col-venue-addr {
    padding: 0 12px 0 var(--gd-venue-col-padding, 40px);
}

.gd-venue-name {
    font-size: var(--gd-venue-size, 1.25em);
    font-weight: 700;
    margin-bottom: 6px;
    color: var(--gd-venue-color, inherit);
}

.gd-venue-name a {
    text-decoration: none;
    color: inherit;
}

.gd-venue-name a:hover {
    text-decoration: underline;
}

.gd-venue-addr {
    color: var(--gd-address-color, #aaa);
    font-size: 0.9em;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.gd-gig-extras {
    font-size: 0.88em;
    color: var(--gd-address-color, #aaa);
    margin-top: 5px;
    opacity: 0.85;
}

/* ============================================================
   MAP LINK
   ============================================================ */

.gd-map-link {
    margin-left: auto;
    padding-left: 1em;
    white-space: nowrap;
    flex-shrink: 0;
    font-size: 0.9em;
}

/* ============================================================
   STATUS BADGES
   ============================================================ */

.gd-tag {
    display: inline-block;
    font-size: 0.72em;
    font-weight: 600;
    padding: 1px 5px;
    border-radius: 3px;
    margin-top: 5px;
    display: block;
    width: fit-content;
}

.gd-provisional {
    background: var(--gd-provisional-bg, #fff3cd);
    color: var(--gd-provisional-text, #856404);
    border: 1px solid var(--gd-provisional-border, #ffc107);
}

.gd-cancelled {
    background: var(--gd-cancelled-bg, #f8d7da);
    color: var(--gd-cancelled-text, #721c24);
    border: 1px solid var(--gd-cancelled-border, #f5c6cb);
}

.gd-status-cancelled td {
    opacity: 0.5;
}

/* ============================================================
   PAST SHOWS — muted styling
   ============================================================ */

.gd-past-shows .gd-date-day {
    color: var(--gd-past-date-color, #666);
}

.gd-past-shows .gd-col-date {
    border-left-color: var(--gd-past-border, #444);
}

.gd-past-shows .gd-venue-name {
    color: var(--gd-past-venue-color, #888);
}

.gd-past-shows .gd-venue-addr,
.gd-past-shows .gd-gig-extras {
    color: var(--gd-past-date-color, #666);
}

.gd-past-shows .gd-map-link {
    opacity: 0.6;
}

/* ============================================================
   FEEDS
   ============================================================ */

.gd-feeds {
    font-size: 0.85em;
    margin-top: 1rem;
    opacity: 0.7;
}

.gd-feeds a {
    margin-right: 1rem;
}

/* ============================================================
   NEXT GIG SNIPPET — [pb_gig_diary_next]
   ============================================================ */

.gd-next-gig {
    display: inline-block;
}

/* ============================================================
   WIDGET — upcoming gigs list
   ============================================================ */

.gd-widget-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.gd-widget-gig {
    padding: 6px 0;
    border-bottom: 1px solid rgba(128,128,128,0.2);
}

.gd-widget-gig:last-child {
    border-bottom: none;
}

.gd-widget-date {
    display: block;
    font-size: 0.85em;
    color: var(--gd-date-color, #4a9ebb);
}

.gd-widget-time {
    margin-left: 6px;
    opacity: 0.8;
}

.gd-widget-venue {
    display: block;
    font-weight: 600;
    font-size: 0.95em;
}

.gd-widget-badge {
    display: inline-block;
    font-size: 0.7em;
    font-weight: 600;
    padding: 1px 5px;
    border-radius: 3px;
    margin-left: 5px;
    vertical-align: middle;
}

.gd-widget-provisional {
    background: var(--gd-provisional-bg, #fff3cd);
    color: var(--gd-provisional-text, #856404);
    border: 1px solid var(--gd-provisional-border, #ffc107);
}

.gd-widget-cancelled {
    background: var(--gd-cancelled-bg, #f8d7da);
    color: var(--gd-cancelled-text, #721c24);
    border: 1px solid var(--gd-cancelled-border, #f5c6cb);
}

.gd-widget-status-cancelled .gd-widget-venue {
    opacity: 0.6;
    text-decoration: line-through;
}

.gd-widget-viewall {
    margin: 8px 0 0;
    font-size: 0.85em;
}

.gd-widget-none {
    font-size: 0.9em;
    opacity: 0.7;
}

/* ============================================================
   RESPONSIVE — stack to single column on narrow screens
   ============================================================ */

@media (max-width: 600px) {
    .gd-gig-table,
    .gd-gig-table tbody,
    .gd-gig-table tr,
    .gd-gig-table td {
        display: block;
    }

    .gd-col-date {
        width: auto;
        min-width: 0;
        border-bottom: none;
        padding-bottom: 4px;
    }

    .gd-col-venue-addr {
        padding-left: 16px;
    }

    .gd-venue-addr {
        display: block;
    }

    .gd-map-link {
        margin-left: 0;
        padding-left: 0;
        display: inline-block;
        margin-top: 4px;
    }
}
