.cs-program { max-width: 1000px; margin: 0 auto; }

/* Toolbar */
.cs-prog-toolbar {
    display: flex; gap: 10px; align-items: center; flex-wrap: wrap;
    padding: 12px 16px; margin-bottom: 20px;
}
.cs-prog-search-wrap {
    position: relative; flex: 1; min-width: 200px;
}
.cs-prog-search {
    width: 100%; padding: 8px 30px 8px 12px; box-sizing: border-box;
    border: 1px solid #ccc; border-radius: 4px; font-size: 14px;
    outline: none;
}
.cs-prog-search:focus { border-color: #333; }
.cs-search-icon { display: none; }
.cs-search-clear {
    position: absolute; right: 8px; top: 50%; transform: translateY(-50%);
    cursor: pointer; color: #999; font-size: 13px; display: none; line-height: 1;
}
.cs-search-clear:hover { color: #333; }
.cs-prog-filters { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.cs-prog-filters select {
    padding: 8px 10px; border: 1px solid #ccc; border-radius: 4px;
    font-size: 13px; background: #fff;
}
.cs-filter-count { font-size: 13px; color: #333; font-weight: 600; white-space: nowrap; }

/* Day Section */
.cs-day-section { margin-bottom: 32px; }
.cs-day-heading {
    font-size: 16px; font-weight: 700;
    padding: 10px 16px; margin: 0 0 10px;
}

/* Break */
.cs-prog-break {
    display: flex; align-items: center; gap: 12px;
    padding: 8px 16px; margin: 3px 0;
    border-left: 3px solid; font-size: 13px;
    border-radius: 3px;
}
.cs-prog-break .cs-prog-time { font-weight: 600; min-width: 100px; }

/* Block */
.cs-prog-block {
    overflow: hidden;
}
.cs-prog-block-header {
    display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
    padding: 10px 14px;
}
.cs-prog-time { font-weight: 700; min-width: 100px; font-size: 13px; }
.cs-prog-type {
    display: inline-block; padding: 2px 10px; border-radius: 3px;
    font-size: 11px; font-weight: 600; color: #fff;
}
.cs-prog-type-session { background: #555; }
.cs-prog-type-keynote { background: #7b5ea7; }
.cs-prog-type-plenary { background: #3a7cc3; }
.cs-prog-type-common { background: #5a9a6a; }
.cs-prog-block-title { font-weight: 600; flex: 1; }
.cs-prog-room { font-size: 12px; padding: 2px 8px; border-radius: 3px; }
.cs-prog-chair { font-size: 12px; }

/* Talks */
.cs-prog-talks { padding: 0; }
.cs-prog-table { width: 100%; border-collapse: collapse; }
.cs-prog-table tr.cs-talk-row { cursor: pointer; transition: background .15s; }
.cs-prog-table tr.cs-talk-row:last-of-type { border-bottom: none; }
.cs-talk-time { width: 90px; font-size: 12px; font-weight: 500; vertical-align: top; white-space: nowrap; }
.cs-talk-info { vertical-align: top; }
.cs-talk-title { font-weight: 500; margin-bottom: 2px; }
.cs-talk-toggle { font-size: 10px; color: #888; margin-left: 3px; }
.cs-talk-presenter { font-size: 12px; }
.cs-talk-affil { }
.cs-talk-type { vertical-align: top; width: 60px; text-align: center; }
.cs-talk-badge {
    display: inline-block; padding: 1px 6px; border-radius: 2px;
    font-size: 10px; font-weight: 600; background: #555; color: #fff;
}

/* Detail */
.cs-talk-detail { display: none; }
.cs-talk-detail.open { display: table-row; }
.cs-talk-detail td { padding: 0 10px 12px; vertical-align: top; }
.cs-detail-keywords {
    font-size: 12px; color: #333; margin-bottom: 6px;
    padding: 6px 10px; border-radius: 3px;
}
.cs-detail-abstract {
    font-size: 13px; line-height: 1.7;
    padding: 10px 12px; border-left: 2px solid;
    border-radius: 3px; text-align: justify;
}

/* ═══ Program at a Glance ═══ */
.cs-glance { max-width: 1200px; margin: 0 auto; }
.cs-glance-day {
    font-size: 16px; font-weight: 700;
    padding: 10px 16px; margin: 24px 0 10px;
}
.cs-glance-scroll { overflow-x: auto; margin-bottom: 20px; }
.cs-glance-grid { width: 100%; border-collapse: collapse; min-width: 500px; }
.cs-glance-th {
    font-size: 13px; font-weight: 600;
    padding: 10px 12px; text-align: center; white-space: nowrap;
}
.cs-glance-th-time { width: 110px; }
.cs-glance-time {
    padding: 10px 12px; font-weight: 700; font-size: 13px; color: #111;
    text-align: center; white-space: nowrap; border-bottom: 1px solid #ddd;
    vertical-align: middle;
}
.cs-glance-cell {
    padding: 10px 12px; font-size: 13px; vertical-align: top;
    border-bottom: 1px solid #ddd; border-left: 1px solid #eee;
}
.cs-glance-full { text-align: center; }
.cs-glance-empty { background: #fff; }
.cs-glance-title { font-size: 13px; color: #111; }
.cs-glance-topic { font-size: 12px; color: #0f3460; }
.cs-glance-meta { font-size: 11px; color: #666; }
.cs-glance-room { font-size: 11px; color: #0f3460; }
.cs-glance-talks { font-size: 11px; color: #999; }
.cs-glance-break-text { color: #777; font-size: 13px; }

/* Responsive */
@media (max-width: 768px) {
    .cs-prog-toolbar { flex-direction: column; align-items: stretch; }
    .cs-prog-search-wrap { width: 100%; }
    .cs-prog-block-header { flex-direction: column; align-items: flex-start; gap: 3px; }
    .cs-prog-time { min-width: auto; }
    .cs-talk-time { width: 55px; font-size: 11px; }
    .cs-talk-info { padding: 6px; }
}
