/* ============================================================
   Live Schedule Manager – Public Styles  (v1.2.2)
   Gig Press 互換レイアウト
   フォントサイズ基準: テーブル全体 1.18em（≒18.9px @ 16px親）
   ============================================================ */

/* ── ラッパー ────────────────────────────────────────────── */
.lsm-schedule-wrap {
    font-family: inherit;
    margin: 1.5em 0;
}

/* ── 月フィルター ────────────────────────────────────────── */
.lsm-month-filter {
    margin-bottom: 1.4em;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 5px;
}

.lsm-filter-label {
    font-weight: bold;
    margin-right: 4px;
    white-space: nowrap;
}

.lsm-month-btn {
    background: #f0f0f0;
    border: 1px solid #ccc;
    padding: 4px 10px;
    cursor: pointer;
    border-radius: 3px;
    font-size: 0.9em;
    transition: background 0.2s, color 0.2s;
    line-height: 1.4;
}

.lsm-month-btn:hover,
.lsm-month-btn.active {
    background: #333;
    color: #fff;
    border-color: #333;
}

/* ── テーブル全体 ────────────────────────────────────────── */
.lsm-schedule-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 1.18em;   /* v1.2.1: 1.06em(≒17.0px) → v1.2.2: 1.18em(≒18.9px) +約2pt */
}

/* ── ヘッダー行 ──────────────────────────────────────────── */
.lsm-schedule-table thead th {
    background: #f9f9f9;
    color: #333;
    padding: 6px 14px;
    text-align: left;
    font-weight: bold;
    border: 1px solid #ddd;
    border-bottom: 2px solid #aaa;
}

/* ── 1段目：メイン行（開催日・アーティスト名・都市名・会場） ── */
.lsm-show-row td {
    padding: 7px 14px;            /* 左右ともヘッダーと同じ14pxで統一 */
    border: 1px solid #ddd;
    vertical-align: middle;
    background: #fff;
    line-height: 1.4;
}

/* 開催日セル：左はヘッダーと同じ14px、右もテキスト右端と同等の14px */
/* widthはautoにしてテキスト実幅＋余白のみに収める                  */
.lsm-show-row .lsm-col-date {
    color: #555;
    padding-left: 14px;
    padding-right: 14px;
    white-space: nowrap;
}

/* アーティスト名リンク */
.lsm-show-row .lsm-col-artist a      { color: #0b55a8; text-decoration: underline; }
.lsm-show-row .lsm-col-artist a:hover{ color: #003d7a; }

/* 会場名リンク */
.lsm-show-row .lsm-col-venue a      { color: #0b55a8; text-decoration: underline; }
.lsm-show-row .lsm-col-venue a:hover{ color: #003d7a; }

/* モバイル用複製要素はPCでは非表示 */
.lsm-venue-mobile { display: none; }

/* ── 2段目：詳細行（特記事項・電話・住所） ───────────────── */
.lsm-detail-row td {
    padding: 5px 14px 10px 14px;
    background: #fff;
    border: 1px solid #ddd;
    border-top: none;
    font-size: 1em;
    color: #555;
    vertical-align: top;
}

.lsm-detail-text {
    margin: 0 0 4px 40px;
    line-height: 1.6;
}
.lsm-detail-text a       { color: #0b55a8; text-decoration: none; }
.lsm-detail-text a:hover { text-decoration: underline; }

/* ── ツアーラベル行 ──────────────────────────────────────── */
.lsm-tour-row td.lsm-tour-label {
    background: #f4f4f4;
    color: #333;
    font-weight: bold;
    padding: 6px 14px;
    border: 1px solid #ddd;
    border-top: 3px solid #999;
    font-size: 1em;
    letter-spacing: 0.02em;
}

/* ── カレンダーリンク ────────────────────────────────────── */
.lsm-cal-links {
    margin: 3px 0 0 40px;
    line-height: 1.8;
}
.lsm-cal-links a {
    margin-right: 10px;
    font-size: 1em;
    text-decoration: none;
    color: #0b55a8;
}
.lsm-cal-links a:hover { text-decoration: underline; }

.lsm-cal-panel {
    margin: 6px 0 0 40px;
    padding: 8px 10px;
    background: #f8f8f8;
    border: 1px solid #ddd;
    border-radius: 3px;
    font-size: 1em;
}
.lsm-cal-panel p { margin: 3px 0; }

/* ── カラム幅（PC） ──────────────────────────────────────── */
/* 開催日：white-space:nowrap + width:1% でテキスト実幅ちょうどに収縮 */
/* アーティスト名：開催日が縮んだ分を吸収して広めに                   */
/* 都市名：文字数が少ないため最小限                                   */
/* 会場：残り全幅                                                    */
.lsm-col-date   { width: 1%;   white-space: nowrap; }   /* 実幅=テキスト+左右padding */
.lsm-col-artist { width: 26%;  min-width: 130px; }
.lsm-col-city   { width: 7%;   min-width:  55px; }
.lsm-col-venue  { /* 残り全幅 */ }

/* ── 「公演なし」メッセージ ──────────────────────────────── */
.lsm-no-shows {
    padding: 1em;
    background: #f9f9f9;
    border: 1px solid #ddd;
    color: #666;
}

/* ── キャンセル公演 ──────────────────────────────────────── */
.lsm-show-row.lsm-cancelled td,
.lsm-detail-row.lsm-cancelled td {
    background: #fafafa;
    color: #999;
}
.lsm-show-row.lsm-cancelled td a {
    color: #aaa;
    text-decoration: line-through;
    pointer-events: none;
}
.lsm-cancelled-badge {
    display: inline-block;
    background: #d63638;
    color: #fff;
    font-size: 0.78em;
    font-weight: bold;
    padding: 2px 6px;
    border-radius: 3px;
    margin-left: 6px;
    vertical-align: middle;
    white-space: nowrap;
}

/* ============================================================
   モバイル表示（～640px）

   HTML構造：
     .lsm-col-city（PC:都市名のみ、mobile:都市名+会場名を横並び）
       └ .lsm-city-text   → 都市名（最小幅）
       └ .lsm-venue-mobile → 会場名（残り幅）※PC非表示
     .lsm-venue-pc（PC:会場名、mobile:非表示）

   行構成：
     1行目: 開催日
     2行目: アーティスト名
     3行目: 都市名 + 会場名（横並び）
     4行目: 詳細

   外枠ボーダーはPC同様に統一
   ============================================================ */
@media screen and (max-width: 640px) {

    /* テーブル外枠を明示（border-collapseだと外枠が消えるためseprateに） */
    .lsm-schedule-table {
        border-collapse: separate;
        border-spacing: 0;
        border: 1px solid #ddd;
        border-radius: 0;
    }

    /* thead非表示 */
    .lsm-schedule-table thead { display: none; }

    /* tbody・tr・td をブロック化 */
    .lsm-schedule-table tbody { display: block; }
    .lsm-show-row,
    .lsm-detail-row,
    .lsm-tour-row   { display: block; }

    /* 各公演の区切り：メイン行上部に太めのボーダー */
    .lsm-show-row {
        border-top: 2px solid #bbb;
    }

    /* メイン行の全セル：幅100%・個別ボーダーなし */
    .lsm-show-row td {
        display: block;
        width: 100% !important;
        min-width: 0 !important;
        border: none;
        padding: 3px 14px;
        white-space: normal;
        box-sizing: border-box;
    }

    /* 1行目：開催日 */
    .lsm-show-row .lsm-col-date {
        padding-top: 8px;
        padding-left: 14px;
        padding-right: 14px;
        font-weight: bold;
        white-space: nowrap;
    }

    /* 2行目：アーティスト名（デフォルト継承） */

    /* 3行目：都市名 + 会場名を横並び
       .lsm-col-cityをflexコンテナにして
       .lsm-city-text（最小幅）+ .lsm-venue-mobile（残り）を並べる */
    .lsm-show-row .lsm-col-city {
        display: flex !important;
        align-items: baseline;
        width: 100% !important;
        padding-bottom: 8px;
    }

    .lsm-show-row .lsm-city-text {
        white-space: nowrap;
        flex-shrink: 0;
        padding-right: 10px;    /* 都市名と会場名の間のスペース */
    }

    .lsm-venue-mobile {
        display: inline;        /* PCではnone、モバイルでは表示 */
        flex: 1;
        min-width: 0;
        word-break: break-word;
    }
    .lsm-venue-mobile a       { color: #0b55a8; text-decoration: underline; }
    .lsm-venue-mobile a:hover { color: #003d7a; }

    /* PC用会場名セルはモバイルでは非表示 */
    .lsm-show-row .lsm-venue-pc {
        display: none !important;
    }

    /* 詳細行 */
    .lsm-detail-row td {
        display: block;
        width: 100% !important;
        border: none;
        border-top: 1px solid #eee;
        padding: 6px 14px 12px 14px;
        box-sizing: border-box;
    }

    /* インデント解除 */
    .lsm-detail-text,
    .lsm-cal-links,
    .lsm-cal-panel {
        margin-left: 0;
    }

    /* ツアーラベル行 */
    .lsm-tour-row td.lsm-tour-label {
        display: block;
        width: 100% !important;
        border: none;
        border-top: 3px solid #999;
        padding: 6px 14px;
        box-sizing: border-box;
    }
}
