:root {
  --agenda-accent:#ff6b35;
  --agenda-accent-soft:#fff4ee;
  --agenda-text:#172033;
  --agenda-muted:#667085;
  --agenda-line:#e7ebf1;
  --agenda-panel:#fff;
}

body.public-schedule-page {
  margin:0;
  color:var(--agenda-text);
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  background:linear-gradient(180deg,#fbfcfe 0,#f6f8fb 100%);
}

/* 顶部导航是 66px 高的固定悬浮条，留白要从导航栏下沿起算：桌面留 ~78px、手机留 ~46px。 */
.public-schedule-hero { padding:144px 0 28px; text-align:center; }
.public-schedule-kicker { margin:0 0 10px; color:var(--agenda-accent); font-size:13px; font-weight:800; letter-spacing:.08em; line-height:1.4; text-transform:uppercase; }
.public-schedule-hero h1 { margin:0; color:var(--agenda-text); font-size:clamp(26px,3vw,38px); font-weight:750; letter-spacing:-.03em; line-height:1.2; }
#scheduleMeta { margin:12px 0 0; color:var(--agenda-muted); font-size:15px; line-height:1.5; }
.public-schedule-skill-link { box-sizing:border-box; display:inline-flex; align-items:center; gap:10px; min-height:46px; margin-top:18px; padding:7px 10px; color:var(--agenda-text); text-align:left; text-decoration:none; background:rgba(255,255,255,.82); border:1px solid rgba(255,107,53,.22); border-radius:12px; transition:background .18s ease,border-color .18s ease; touch-action:manipulation; }
.public-schedule-skill-link:hover { background:#fff; border-color:rgba(255,107,53,.58); }
.public-schedule-skill-link:focus-visible { outline:3px solid rgba(255,107,53,.26); outline-offset:3px; }
.public-schedule-skill-link-icon { flex:0 0 28px; width:28px; height:28px; padding:5px; fill:var(--agenda-accent); background:var(--agenda-accent-soft); border-radius:8px; }
.public-schedule-skill-link > span { min-width:0; }
.public-schedule-skill-link strong { display:block; font-size:13px; font-weight:800; line-height:1.35; }
.public-schedule-skill-link small { display:block; margin-top:1px; color:var(--agenda-muted); font-size:11px; line-height:1.35; }
.public-schedule-skill-link-arrow { flex:0 0 18px; width:18px; height:18px; fill:none; stroke:var(--agenda-accent); stroke-linecap:round; stroke-linejoin:round; stroke-width:2; }
.public-schedule-main { padding:12px 0 40px; }
.public-schedule-main .container { max-width:1320px; }
.public-schedule-status { padding:54px 20px; color:var(--agenda-muted); text-align:center; background:#fff; border:1px solid var(--agenda-line); border-radius:22px; }
.public-schedule-status[hidden] { display:none; }

.public-schedule-desktop { overflow-x:auto; padding:2px 0 0; }
.public-agenda-board { min-width:1040px; overflow:hidden; background:var(--agenda-panel); border:1px solid rgba(226,232,240,.92); border-radius:24px; }
.public-period + .public-period { border-top:1px solid var(--agenda-line); }
.public-period-header { display:grid; grid-template-columns:116px minmax(0,1fr); background:linear-gradient(180deg,#fff2eb 0,#fffaf7 100%); border-bottom:1px solid rgba(255,107,53,.2); }
.public-period-label { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:112px; padding:14px 10px; text-align:center; border-right:1px solid rgba(255,107,53,.18); }
.public-period-label strong { color:var(--agenda-accent); font-size:19px; font-weight:800; }
.public-period-topics { display:grid; grid-template-columns:repeat(var(--track-count),minmax(0,1fr)); }
.public-period-topic { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; min-height:112px; padding:14px 16px; text-align:center; }
.public-period-topic + .public-period-topic { border-left:1px solid rgba(255,107,53,.14); }
.public-period-topic-copy strong { display:block; color:var(--agenda-text); font-size:16px; font-weight:800; line-height:1.45; }
.public-period-topic-copy span { display:block; margin-top:5px; color:#925025; font-size:12px; font-weight:700; }
.public-period-venue { display:inline-flex; padding:4px 9px; color:var(--agenda-muted); font-size:12px; font-weight:700; background:rgba(255,255,255,.72); border:1px solid rgba(255,107,53,.14); border-radius:8px; }

.public-slot-session { display:block; width:100%; color:var(--agenda-text); text-decoration:none; transition:color .2s ease; }
.public-slot-session:hover,.public-slot-session:focus-visible { color:var(--agenda-accent); outline:none; }
.public-slot-session:focus-visible strong { text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:4px; }
.public-slot-session-time { display:block; margin-bottom:6px; color:#a34d22; font-size:11px; font-weight:750; white-space:nowrap; font-variant-numeric:tabular-nums; }
.public-slot-session strong { display:block; font-size:15px; font-weight:700; line-height:1.55; }
.public-slot-session small { display:block; margin-top:7px; color:var(--agenda-muted); font-size:12px; line-height:1.5; }
.public-slot-session.is-pending strong { color:var(--agenda-muted); font-weight:650; }
.public-master-table { width:100%; table-layout:fixed; border-collapse:collapse; background:#fff; }
.public-master-time-column { width:116px; }
.public-master-table tr { height:158px; }
.public-master-table tr.has-split { height:200px; }
.public-master-time { padding:12px 8px; color:var(--agenda-text); text-align:center; vertical-align:middle; background:#fbfcfe; border-right:1px solid var(--agenda-line); border-bottom:1px solid var(--agenda-line); }
.public-master-time time { font-size:13px; font-weight:800; line-height:1.3; white-space:nowrap; font-variant-numeric:tabular-nums; }
.public-master-cell { position:relative; padding:0; text-align:center; vertical-align:middle; background:#fff; border-right:1px solid var(--agenda-line); border-bottom:1px solid var(--agenda-line); }
.public-master-cell:last-child { border-right:0; }
.public-master-empty { position:absolute; top:0; right:0; bottom:0; left:0; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:9px 14px; }
.public-master-empty strong { color:var(--agenda-muted); font-size:13px; font-weight:650; line-height:1.35; }
.public-master-empty small { margin-top:3px; color:var(--agenda-muted); font-size:11px; line-height:1.3; }
.public-master-session { box-sizing:border-box; position:absolute; top:0; right:0; bottom:0; left:0; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:12px 16px; color:var(--agenda-text); text-decoration:none; transition:color .18s ease,background .18s ease; }
.public-master-session:hover,.public-master-session:focus-visible { color:var(--agenda-accent); background:#fffaf7; outline:none; }
.public-master-session .public-slot-session-time { margin-bottom:4px; font-size:10px; }
.public-master-session strong { max-width:100%; font-size:13px; line-height:1.35; }
.public-master-session small { max-width:100%; margin-top:4px; overflow:hidden; color:var(--agenda-muted); font-size:11px; line-height:1.3; text-overflow:ellipsis; white-space:nowrap; }
.public-master-session.is-pending strong { color:var(--agenda-muted); font-weight:650; }
.public-master-cell.is-split .public-master-session { bottom:auto; padding:9px 14px; }
.public-master-cell.is-split .public-master-session + .public-master-session { border-top:1px solid var(--agenda-line); }
.public-period-empty { padding:46px 20px; color:var(--agenda-muted); text-align:center; }
/* 收尾圆桌：表格最后一行，左列时间、内容居中横跨所有会场。 */
.public-roundtable-copy { position:absolute; top:0; right:0; bottom:0; left:0; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:12px 16px; text-align:center; }
.public-roundtable-copy strong { max-width:100%; color:var(--agenda-text); font-size:15px; font-weight:800; line-height:1.35; }
.public-roundtable-copy small { max-width:100%; margin-top:4px; color:var(--agenda-muted); font-size:12px; font-weight:600; line-height:1.4; }
.public-mobile-roundtable-body { display:flex; flex-direction:column; align-items:center; gap:5px; padding:14px 16px 16px; text-align:center; }
.public-mobile-roundtable-body .public-mobile-session-time { color:#a34d22; font-size:12px; font-weight:750; }
.public-mobile-roundtable-body small { color:var(--agenda-muted); font-size:12px; font-weight:600; line-height:1.45; }

.public-schedule-mobile { display:none; }
.public-mobile-period > header { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; margin:28px 0 14px; text-align:center; }
.public-mobile-period > header strong { color:var(--agenda-text); font-size:21px; }
.public-mobile-period > header span { color:var(--agenda-muted); font-size:12px; font-weight:700; font-variant-numeric:tabular-nums; }
.public-mobile-topic { margin-bottom:14px; overflow:hidden; background:#fff; border:1px solid rgba(226,232,240,.96); border-top:3px solid var(--agenda-accent); border-radius:16px; }
.public-mobile-topic > header { display:flex; flex-direction:column; align-items:center; gap:4px; padding:13px 16px 11px; text-align:center; background:#fff8f3; border-bottom:1px solid rgba(255,107,53,.16); }
.public-mobile-topic > header strong { color:var(--agenda-text); font-size:17px; font-weight:800; }
.public-mobile-topic > header span { color:#925025; font-size:12px; font-weight:700; }
.public-mobile-topic > header em { padding:3px 9px; color:var(--agenda-muted); font-size:11px; font-style:normal; font-weight:700; background:rgba(255,255,255,.72); border:1px solid rgba(255,107,53,.14); border-radius:8px; }
.public-mobile-session { display:block; min-height:44px; padding:16px; color:var(--agenda-text); text-decoration:none; transition:color .2s ease; }
.public-mobile-session:hover,.public-mobile-session:focus-visible { color:var(--agenda-accent); outline:none; }
.public-mobile-session:focus-visible strong { text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:4px; }
.public-mobile-session + .public-mobile-session { border-top:1px solid var(--agenda-line); }
.public-mobile-session-meta { display:block; color:#925025; font-size:11px; font-weight:800; line-height:1.5; }
.public-mobile-session-time { white-space:nowrap; font-variant-numeric:tabular-nums; }
.public-mobile-session strong { display:block; margin-top:7px; font-size:15px; line-height:1.5; }
.public-mobile-session small { display:block; margin-top:6px; color:var(--agenda-muted); font-size:13px; line-height:1.45; }
.public-mobile-session.is-pending strong { color:var(--agenda-muted); font-weight:650; }
/* 窗口放不下 1040px 的四栏表格（约 1088px 以下）就切移动端竖排，避免表格底下冒出横向滚动条。 */
@media (max-width:1100px) {
  .public-schedule-main .container { padding-right:18px; padding-left:18px; }
  .public-schedule-desktop { display:none; }
  .public-schedule-mobile { display:block; }
}

@media (max-width:760px) {
  .public-schedule-hero { padding:112px 0 22px; }
  .public-schedule-hero h1 { font-size:27px; }
  .public-schedule-skill-link { max-width:100%; }
  .public-schedule-main { padding:2px 0 62px; }
}

@media (prefers-reduced-motion:reduce) {
  .public-schedule-skill-link,.public-slot-session,.public-mobile-session { transition:none; }
}
