/* One scoped control and surface system; colours follow the active site theme. */
.kb-document,.kb-schedule {
 --kc-surface:var(--surface,#fff);--kc-text:var(--text,#242331);--kc-border:var(--border,#d9d4e1);
 --kc-muted:var(--muted,#65516f);--kc-accent:var(--accent,#53217f);--kc-radius:var(--radius-small,8px);
 margin:1.5rem 0;min-width:0;color:var(--kc-text);
}
.kb-document *,.kb-schedule * {box-sizing:border-box;}
.kb-document [hidden],.kb-schedule [hidden] {display:none!important;}
.kb-document-controls,.kb-schedule-toolbar {display:grid;gap:.65rem;align-items:end;padding:.75rem;border:1px solid var(--kc-border);border-radius:var(--kc-radius);background:var(--kc-surface);}
.kb-document-controls {grid-template-columns:1fr minmax(85px,1fr) 1fr auto;}
.kb-schedule-toolbar {grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.5fr);}
.kb-document-controls label,.kb-schedule-toolbar label {display:flex;gap:.3rem;flex-direction:column;min-width:0;font-size:.875rem;font-weight:600;}
.kb-document-controls :is(button,select,a),.kb-schedule-toolbar :is(input,select) {
 min-width:0;width:100%;min-height:44px;border:1px solid var(--kc-border);border-radius:var(--kc-radius);
 background:var(--kc-surface);color:var(--kc-text);padding:.6rem .65rem;font:inherit;font-size:16px;line-height:1.3;
}
.kb-document-controls a {display:flex;align-items:center;justify-content:center;text-align:center;text-decoration:none;font-weight:600;}
.kb-document-controls button {cursor:pointer;}
.kb-document-controls button:disabled {opacity:.4;cursor:default;}
.kb-document :is(button,select,a):focus-visible,.kb-schedule :is(input,select,summary,a,button):focus-visible {outline:3px solid var(--kc-accent);outline-offset:3px;}
.kb-document-pages {background:#211a2c;border-radius:var(--kc-radius);padding:.5rem;margin-top:.75rem;outline-offset:4px;}
.kb-document-pages figure {margin:0 auto;max-width:850px;}
.kb-document-pages img {width:100%;height:auto;display:block;background:white;}
.kb-document-pages figcaption {color:white;text-align:center;padding:.5rem;font-size:.875rem;}
.kb-document-status {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;}
.kb-schedule .sr-only {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0;}
.kb-edition-nav {display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;padding:.65rem;border:1px solid var(--kc-border);border-radius:var(--kc-radius);background:var(--kc-surface);}
.kb-edition-nav__label {padding-inline:.35rem;font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--kc-muted);}
.kb-edition-links {display:flex;gap:.3rem;flex-wrap:wrap;}
.kb-edition-links a {display:flex;align-items:center;justify-content:center;min-width:64px;min-height:44px;padding:.45rem .75rem;border-radius:var(--kc-radius);color:var(--kc-text);font-weight:700;text-decoration:none;}
.kb-edition-links a:is(.is-active,[aria-current]) {background:var(--kc-accent);color:#fff;}
.kb-edition-select {display:none;gap:.3rem;flex-direction:column;font-weight:700;}
.kb-edition-select select {min-height:44px;width:100%;padding:.55rem;border:1px solid var(--kc-border);border-radius:var(--kc-radius);background:var(--kc-surface);color:var(--kc-text);font:inherit;font-size:16px;}
.kb-lineup-hero {margin:0;padding:clamp(1.5rem,5vw,4rem);border:1px solid var(--kc-border);border-radius:calc(var(--kc-radius) * 2);background:var(--kc-surface);}
.kb-lineup-hero h1 {margin:.2rem 0;font-size:clamp(2.2rem,8vw,5rem);line-height:.95;letter-spacing:-.04em;overflow-wrap:anywhere;}
.kb-lineup-kicker {margin:0;color:var(--kc-accent);font-size:.78rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase;}
.kb-lineup-theme {margin:.65rem 0 0;color:var(--kc-muted);font-size:clamp(1.15rem,3vw,1.65rem);font-weight:700;}
.kb-lineup-meta {display:flex;gap:1rem 2.5rem;flex-wrap:wrap;margin:1.5rem 0 0;}
.kb-lineup-meta div {display:grid;gap:.2rem;}
.kb-lineup-meta dt {color:var(--kc-muted);font-size:.75rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;}
.kb-lineup-meta dd {margin:0;font-weight:700;}
.kb-edition-label {display:inline-flex;margin:1.25rem 0 0;padding:.4rem .65rem;border:1px solid var(--kc-border);border-radius:999px;color:var(--kc-muted);font-size:.85rem;font-weight:700;}
.kb-stage-directory,.kb-lineup-plan {margin-block:clamp(2.5rem,7vw,5rem);}
.kb-section-heading {display:flex;align-items:end;justify-content:space-between;gap:1.25rem;margin:0 0 1.2rem;}
.kb-section-heading h2 {margin:.2rem 0;font-size:clamp(1.75rem,4vw,2.75rem);line-height:1;letter-spacing:-.025em;}
.kb-section-heading p:last-child {max-width:42rem;margin:.45rem 0 0;color:var(--kc-muted);line-height:1.55;}
.kb-stage-directory-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:.85rem;}
.kb-stage-card {position:relative;display:flex;min-height:210px;min-width:0;flex-direction:column;gap:.5rem;padding:1.1rem;border:1px solid var(--kc-border);border-top:7px solid var(--kb-stage-color,var(--kc-accent));border-radius:calc(var(--kc-radius) * 1.5);overflow:hidden;background:var(--kc-surface);color:var(--kc-text);text-decoration:none;box-shadow:0 8px 24px rgb(24 18 38 / .06);transition:transform 160ms ease,box-shadow 160ms ease,border-color 160ms ease;}
.kb-stage-card:hover,.kb-stage-card.is-active {transform:translateY(-3px);border-color:var(--kc-accent);box-shadow:0 14px 34px rgb(24 18 38 / .12);}
.kb-stage-card__type {color:var(--kc-muted);font-size:.74rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;}
.kb-stage-card__name {font-size:1.25rem;line-height:1.15;overflow-wrap:anywhere;}
.kb-stage-card__prompt {display:flex;justify-content:space-between;gap:.5rem;margin-top:auto;padding-top:.8rem;color:var(--kc-accent);font-size:.9rem;font-weight:750;}
.kb-stage-sponsor {display:flex;gap:.85rem;align-items:flex-start;flex-wrap:wrap;padding:1rem 0;}
.kb-stage-sponsor--compact {margin-top:auto;padding:.65rem 0 0;align-items:center;}
.kb-sponsor-logo {display:block;max-width:120px;max-height:72px;object-fit:contain;background:#fff;padding:.35rem;border:1px solid var(--kc-border);border-radius:var(--kc-radius);}
.kb-stage-sponsor--compact .kb-sponsor-logo {max-width:92px;max-height:54px;}
.kb-sponsor-detail {flex:1;min-width:min(150px,100%);overflow-wrap:anywhere;}
.kb-sponsor-name {margin:0;font-weight:750;}
.kb-stage-sponsor--compact .kb-sponsor-name {font-size:.84rem;color:var(--kc-muted);}
.kb-sponsor-description {font-size:.94rem;line-height:1.55;margin:.45rem 0;}
.kb-sponsor-links {list-style:none!important;padding:0!important;margin:.5rem 0 0!important;display:flex;gap:.6rem;flex-wrap:wrap;}
.kb-sponsor-links a {display:inline-flex;align-items:center;min-height:44px;color:var(--kc-accent);font-weight:700;text-decoration:underline;text-underline-offset:3px;}
.kb-stage-detail {display:grid;grid-template-columns:minmax(150px,.65fr) minmax(0,2fr);gap:1.25rem;margin-top:1rem;padding:1rem 1.2rem;border:1px solid var(--kc-border);border-radius:var(--kc-radius);background:var(--kc-surface);}
.kb-stage-detail h3 {margin:.2rem 0;font-size:1.35rem;}
.kb-schedule-heading {align-items:center;}
.kb-schedule-actions {display:flex;gap:.5rem;flex-wrap:wrap;justify-content:flex-end;}
.kb-schedule-actions button {min-height:44px;padding:.6rem .85rem;border:1px solid var(--kc-border);border-radius:var(--kc-radius);background:var(--kc-surface);color:var(--kc-text);font:inherit;font-weight:700;cursor:pointer;}
.kb-schedule-actions button:hover {border-color:var(--kc-accent);color:var(--kc-accent);}
.kb-schedule-toolbar {grid-template-columns:minmax(160px,.75fr) minmax(220px,1.5fr);margin-bottom:.85rem;}
.kb-day-jumps {display:flex;gap:.45rem;overflow-x:auto;padding:.15rem .1rem .75rem;scrollbar-width:thin;}
.kb-day-jumps a {display:flex;align-items:center;min-height:44px;flex:0 0 auto;padding:.55rem .8rem;border:1px solid var(--kc-border);border-radius:999px;background:var(--kc-surface);color:var(--kc-text);font-size:.88rem;font-weight:700;text-decoration:none;}
.kb-day-jumps a:hover {border-color:var(--kc-accent);color:var(--kc-accent);}
.kb-schedule-day {margin:.65rem 0;border:1px solid var(--kc-border);border-radius:var(--kc-radius);background:var(--kc-surface);overflow:clip;scroll-margin-top:6rem;}
.kb-schedule-day>summary {display:flex;align-items:center;justify-content:space-between;gap:1rem;cursor:pointer;min-height:56px;padding:.85rem 1rem;font-weight:800;font-size:1rem;line-height:1.4;overflow-wrap:anywhere;}
.kb-schedule-day[open]>summary {border-bottom:1px solid var(--kc-border);}
.kb-day-count {flex:0 0 auto;color:var(--kc-muted);font-size:.82rem;font-weight:700;}
.kb-schedule-day-content {padding:0;}
.kb-schedule-slots {list-style:none!important;padding:0!important;margin:0!important;}
.kb-schedule-slots li {display:grid;grid-template-columns:112px minmax(0,1fr);gap:1rem;align-items:start;min-height:64px;padding:.85rem 1rem;border-bottom:1px solid var(--kc-border);line-height:1.35;overflow-wrap:anywhere;}
.kb-schedule-slots li:last-child {border:0;}
.kb-slot-time {font-variant-numeric:tabular-nums;font-size:.86rem;font-weight:700;color:var(--kc-muted);white-space:nowrap;}
.kb-slot-act {display:grid;gap:.35rem;min-width:0;}
.kb-slot-act>strong {font-size:1rem;}
.kb-slot-meta {display:flex;align-items:center;gap:.4rem .65rem;flex-wrap:wrap;}
.kb-slot-meta a,.kb-slot-meta small {font-size:.82rem;}
.kb-slot-meta a {display:inline-flex;align-items:center;min-height:44px;margin-block:-8px;padding-block:8px;color:var(--kc-accent);font-weight:700;text-underline-offset:3px;}
.kb-slot-meta small {color:var(--kc-muted);}
.kb-slot-meta small::before {content:"·";margin-right:.65rem;}
.kb-stage-pending {padding:.85rem 1rem;margin:0;color:var(--kc-muted);}
.kb-lineup-pending,[data-schedule-status] {font-size:.94rem;line-height:1.5;}
[data-schedule-status]:empty {display:none;}
@media(max-width:620px) {
 .kb-document-controls {grid-template-columns:1fr minmax(80px,1fr) 1fr;gap:.5rem;}
 .kb-document-controls a {grid-column:1/-1;}
 .kb-edition-nav {display:block;}
 .kb-edition-nav__label,.kb-edition-links {display:none;}
 .kb-edition-select {display:flex;}
 .kb-lineup-hero {padding:1.35rem;}
 .kb-lineup-meta {display:grid;gap:.75rem;}
 .kb-section-heading,.kb-schedule-heading {display:block;}
 .kb-schedule-actions {justify-content:stretch;margin-top:1rem;}
 .kb-schedule-actions button {flex:1 1 140px;}
 .kb-schedule-toolbar {grid-template-columns:1fr;}
 .kb-stage-directory-grid {grid-template-columns:1fr 1fr;gap:.6rem;}
 .kb-stage-card {min-height:175px;padding:.9rem;}
 .kb-stage-detail {grid-template-columns:1fr;}
 .kb-schedule-slots li {grid-template-columns:76px minmax(0,1fr);padding:.8rem .75rem;gap:.55rem;}
 .kb-slot-time {display:grid;white-space:normal;}
 .kb-slot-time [aria-hidden] {display:none;}
 .kb-slot-time .sr-only {position:static;width:auto;height:auto;margin:0;clip-path:none;color:transparent;font-size:0;line-height:0;}
 .kb-document-pages {padding:.25rem;}
}
@media(max-width:390px) {.kb-stage-directory-grid {grid-template-columns:1fr;}.kb-stage-card {min-height:160px;}}
@media print {
 .kb-edition-nav,.kb-schedule-toolbar,.kb-schedule-actions,.kb-day-jumps,[data-schedule-status],.kb-stage-directory {display:none!important;}
 .kb-lineup-edition[hidden] {display:none!important;}.kb-schedule-day {display:block!important;break-inside:avoid;}.kb-schedule-day>summary {list-style:none;}.kb-schedule-day-content {display:block!important;}
}
