.conference-program {
    /* ปรับเป็น AASP Theme */
    --navy: #2D2769;         /* aasp-indigo */
    --purple: #D1236B;       /* aasp-primary */
    --purple-dark: #A31250;  /* aasp-primary-dark */
    --soft: #FDEBF3;         /* aasp-primary-light */
    --soft-2: #FFFDF9;       /* aasp-bg-cream */
    --border: #E5CDD8;       /* ปรับโทนขอบให้เข้ากับสีชมพู */
    --border-light: #F5E6ED;
    --text: #1E1A47;         /* aasp-indigo-dark */
    --muted: #6B668A;        /* ปรับสีเทาให้กลืนกับ indigo */
    --white: #FFF;
    color: var(--text);
}

.program-title { color: var(--navy); font-size: clamp(28px, 3vw, 36px); font-weight: 600; line-height: 1.3; text-align: center; }

/* Day */
.program-day { margin-top: 32px; margin-bottom: 48px; }
.program-day:last-child { margin-bottom: 0; }
.program-day-header {
    position: relative; display: flex; align-items: center; gap: 18px; margin-bottom: 18px; padding: 20px 24px;
    overflow: hidden; 
    background: linear-gradient(135deg, var(--soft-2), var(--soft)); /* ใช้ soft theme */
    border: 1px solid var(--border); border-radius: 16px;
}
.program-day-header:after {
    content: ""; position: absolute; top: -70px; right: -45px; width: 180px; height: 180px;
    background: rgba(209, 35, 107, .07); /* aasp-primary-rgb */
    border-radius: 50%;
}
.program-day-number {
    position: relative; z-index: 1; flex: 0 0 62px; display: flex; flex-direction: column;
    align-items: center; justify-content: center; width: 62px; height: 62px; color: #FFF;
    background: var(--purple); border-radius: 14px; font-size: 10px; font-weight: 700;
    line-height: 1.1; letter-spacing: .6px; text-transform: uppercase;
}
.program-day-number strong { font-size: 25px; line-height: 1.05; }
.program-day-info { position: relative; z-index: 1; min-width: 0; }
.program-day-date { margin-bottom: 2px; color: var(--purple); font-size: 12px; font-weight: 700; letter-spacing: .6px; text-transform: uppercase; }
.program-day-theme { color: var(--navy); font-size: 20px; font-weight: 700; line-height: 1.4; }

/* Table */
.program-table-wrap {
    width: 100%; overflow: hidden; background: #FFF; border: 1px solid var(--border);
    border-radius: 15px; box-shadow: 0 4px 18px rgba(45, 39, 105, .05); /* อิงจาก indigo */
}
.program-table {
    width: 100%; margin: 0!important; color: var(--text); background: #FFF;
    border-collapse: separate; border-spacing: 0; table-layout: fixed;
}
.program-table thead th {
    padding: 15px 16px; color: var(--navy); background: var(--soft); border: 0;
    border-right: 1px solid var(--border); border-bottom: 1px solid var(--border);
    font-size: 13px; font-weight: 700; line-height: 1.4; text-align: left; vertical-align: middle;
}
.program-table thead th:first-child { text-align: center; }
.program-table thead th:last-child { border-right: 0; }
.program-table thead th:nth-child(1) { width: 17%; }
.program-table thead th:nth-child(2) { width: 38%; }
.program-table thead th:nth-child(3) { width: 20%; }
.program-table thead th:nth-child(4) { width: 25%; }
.program-table tbody td {
    padding: 17px 16px; color: var(--text); background: #FFF; border: 0;
    border-right: 1px solid var(--border-light); border-bottom: 1px solid var(--border-light);
    font-size: 14px; font-weight: 400; line-height: 1.6; vertical-align: top;
    transition: background .2s ease;
}
.program-table tbody td:last-child { border-right: 0; }
.program-table tbody tr:last-child td { border-bottom: 0; }
.program-table tbody tr:hover td { background: #FFF5F9; } /* สีชมพูอ่อนมากเมื่อโฮเวอร์ */

/* Time */
.program-time { text-align: center; }
.program-time-badge {
    display: inline-flex; align-items: center; justify-content: center; padding: 6px 9px;
    color: var(--purple-dark); background: var(--soft); border-radius: 8px;
    font-size: 12px; font-weight: 700; line-height: 1.3; white-space: nowrap;
}

/* Session */
.program-session-title { color: var(--navy); font-weight: 700; line-height: 1.5; }
.program-table ul { margin: 7px 0 0; padding-left: 18px; }
.program-table li { margin-bottom: 2px; }
.program-table li:last-child { margin-bottom: 0; }

/* Venue */
.program-venue { color: var(--navy)!important; font-weight: 500!important; }
.program-venue-name { display: flex; align-items: flex-start; gap: 7px; }
.program-location-dot {
    flex: 0 0 auto; width: 7px; height: 7px; margin-top: 8px;
    background: var(--purple); border-radius: 50%;
}

/* Remarks */
.program-remarks { color: var(--muted)!important; font-size: 13px!important; }

/* Badge */
.program-tag {
    display: inline-flex; align-items: center; margin-top: 7px; padding: 3px 8px;
    color: var(--purple-dark); background: var(--soft); border-radius: 20px;
    font-size: 10px; font-weight: 700; line-height: 1.4; letter-spacing: .2px; text-transform: uppercase;
}

/* Break / Social */
.program-break td { background: var(--soft-2)!important; }
.program-break:hover td { background: var(--soft)!important; }
.program-break .program-session-title { color: var(--purple); }

/* ใช้สีเหลือง Accent สำหรับ Social ให้ดูต่างจาก Break ปกติ */
.program-social td { background: #FFFDF9!important; }
.program-social:hover td { background: #FFF9E6!important; } /* aasp-accent แบบอ่อนมาก */
.program-social .program-session-title { color: #E5A30D; } /* aasp-accent-hover */

/* Mobile */
@media(max-width:767.98px){
    .program-title { font-size: 27px; }
    .program-day { margin-top: 26px; margin-bottom: 38px; }
    .program-day-header { gap: 14px; padding: 17px; }
    .program-day-number { flex-basis: 54px; width: 54px; height: 54px; border-radius: 12px; }
    .program-day-number strong { font-size: 22px; }
    .program-day-date { font-size: 10px; }
    .program-day-theme { font-size: 17px; }
    .program-table-wrap { overflow: visible; background: transparent; border: 0; border-radius: 0; box-shadow: none; }
    .program-table, .program-table tbody { display: block; width: 100%; background: transparent; }
    .program-table thead { display: none; }
    .program-table tbody tr {
        display: block; width: 100%; margin-bottom: 12px; overflow: hidden; background: #FFF;
        border: 1px solid var(--border); border-radius: 12px;
        box-shadow: 0 3px 12px rgba(45, 39, 105, .04);
    }
    .program-table tbody tr:last-child { margin-bottom: 0; }
    .program-table tbody td {
        position: relative; display: block; width: 100%; min-height: 46px;
        padding: 12px 14px 12px 37%; background: #FFF!important; border: 0;
        border-bottom: 1px solid var(--border-light); font-size: 13px; line-height: 1.55;
        text-align: left!important; white-space: normal!important;
    }
    .program-table tbody td:last-child { border-bottom: 0; }
    .program-table tbody td::before {
        content: attr(data-label); position: absolute; top: 13px; left: 14px; width: calc(37% - 20px);
        color: var(--muted); font-size: 9px; font-weight: 700; line-height: 1.4;
        letter-spacing: .3px; text-transform: uppercase;
    }
    .program-break { border-color: var(--border)!important; }
    .program-break td { background: var(--soft-2)!important; }
    .program-social { border-color: var(--border)!important; }
    .program-social td { background: #FFFDF9!important; }
    .program-time { text-align: left!important; }
    .program-time-badge { padding: 4px 8px; font-size: 11px; }
    .program-session-title { font-size: 13px; }
    .program-remarks { font-size: 12px!important; }
}
@media(max-width:480px){
    .program-title { font-size: 24px; }
    .program-day-header { padding: 15px; }
    .program-day-theme { font-size: 15px; }
    .program-table tbody td { padding-left: 35%; font-size: 12px; }
    .program-table tbody td::before { width: calc(35% - 18px); font-size: 8px; }
}