:root {
    --oak-white: #ffffff;
    --oak-page: #ffffff;
    --oak-ink: #211f1c;
    --oak-muted: #6f746f;
    --oak-quiet: #a4aaa5;
    --oak-line: #dde2dd;
    --oak-line-strong: #c9d2ca;
    --oak-forest: #234f39;
    --oak-forest-deep: #173b2a;
    --oak-sage: #eaf1ec;
    --oak-sage-strong: #dbe8df;
    --oak-gold: #aa7c21;
    --oak-gold-soft: #fbf5e7;
    --oak-coral: #c45b48;
    --oak-coral-soft: #fff0ec;
    --oak-shadow: 0 14px 36px rgba(33, 51, 40, .08);
    --oak-serif: Georgia, "Times New Roman", serif;
    --oak-sans: "Host Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body.white-oak-modern {
    color: var(--oak-ink);
    background: var(--oak-page);
    font-family: var(--oak-sans);
    letter-spacing: 0;
    --oak-motion-ease: cubic-bezier(.2, .78, .22, 1);
}

.white-oak-modern button,
.white-oak-modern input,
.white-oak-modern select,
.white-oak-modern textarea { font-family: var(--oak-sans); letter-spacing: 0; }

.white-oak-modern :focus-visible { outline-color: rgba(35, 79, 57, .38); }

body.public-oak-app {
    --paper: var(--oak-white);
    --white: var(--oak-white);
    --ink: var(--oak-ink);
    --muted: var(--oak-muted);
    --line: var(--oak-line);
    --green: var(--oak-forest);
    --green-2: #3f7256;
    --green-soft: var(--oak-sage);
    --oak: var(--oak-gold);
    --coral: var(--oak-coral);
    --coral-soft: var(--oak-coral-soft);
    --serif: var(--oak-serif);
    --sans: var(--oak-sans);
}

body.internal-oak-app {
    --page: var(--oak-white);
    --paper: var(--oak-white);
    --paper-soft: #f7f9f7;
    --ink: var(--oak-ink);
    --muted: var(--oak-muted);
    --quiet: var(--oak-quiet);
    --line: var(--oak-line);
    --line-strong: var(--oak-line-strong);
    --forest: var(--oak-forest);
    --forest-dark: var(--oak-forest-deep);
    --forest-soft: var(--oak-sage);
    --coral: var(--oak-coral);
    --coral-soft: var(--oak-coral-soft);
    --gold: var(--oak-gold);
    --gold-soft: var(--oak-gold-soft);
    --serif: var(--oak-serif);
    --sans: var(--oak-sans);
    --shell-page: var(--oak-white);
    --shell-paper: var(--oak-white);
    --shell-soft: #f7f9f7;
    --shell-ink: var(--oak-ink);
    --shell-muted: var(--oak-muted);
    --shell-line: var(--oak-line);
    --shell-forest: var(--oak-forest);
    --shell-forest-dark: var(--oak-forest-deep);
    --shell-forest-soft: var(--oak-sage);
    --shell-gold: var(--oak-gold);
    --shell-gold-soft: var(--oak-gold-soft);
    --shell-serif: var(--oak-serif);
    --shell-sans: var(--oak-sans);
}

/* Shared header language */
.public-oak-app .guest-app { width: min(100%, 1180px); box-shadow: none; }
.public-oak-app .hero {
    position: sticky;
    top: 0;
    z-index: 30;
    min-height: 88px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 30px;
    padding: 16px 150px 16px 24px;
    color: var(--oak-ink);
    background: rgba(255, 255, 255, .97);
    border-bottom: 1px solid var(--oak-line);
    overflow: visible;
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}
.public-oak-app .hero::before,
.public-oak-app .hero::after { display: none; }
.public-oak-app .brand { width: auto; height: 62px; flex: 0 0 auto; }
.public-oak-app .brand img { width: auto; height: 100%; filter: none; object-fit: contain; }
.public-oak-app .hero-copy { min-width: 0; max-width: none; margin-left: auto; }
.public-oak-app .hero-meta { justify-content: flex-end; gap: 14px; margin: 0; }
.public-oak-app .hero-meta .eyebrow { color: var(--oak-ink); font-size: .72rem; letter-spacing: 0; text-transform: none; }
.public-oak-app .hero-meta > span { padding: 0; border: 0; color: var(--oak-muted); background: transparent; font-size: .67rem; }
.public-oak-app .hero h1,
.public-oak-app .hero-message { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.public-oak-app .hero-theme { margin: 0; color: #765610; background: var(--oak-gold-soft); border-left-color: var(--oak-gold); }
.public-oak-app .language-switch {
    position: fixed;
    top: 22px;
    right: max(18px, calc((100vw - 1180px) / 2 + 22px));
    z-index: 45;
    padding: 2px;
    border-color: var(--oak-line);
    background: rgba(255, 255, 255, .97);
    box-shadow: none;
}
.public-oak-app .language-switch button { height: 30px; color: var(--oak-muted); }
.public-oak-app .language-switch button.is-active { color: var(--oak-white); background: var(--oak-forest); }

.internal-oak-app .asn-header { border-bottom-color: var(--oak-line); background: rgba(255, 255, 255, .97); }
.internal-oak-app .asn-header-inner { width: min(1180px, calc(100% - 28px)); min-height: 76px; }
.internal-oak-app .asn-brand img { width: 46px; height: 46px; }
.internal-oak-app .asn-brand strong { font: 700 1.08rem/1.1 var(--oak-serif); }
.internal-oak-app .asn-desktop-nav .is-active { color: var(--oak-forest-deep); background: transparent; box-shadow: inset 0 -2px 0 var(--oak-forest); }
.internal-oak-app .asn-refresh,
.internal-oak-app .asn-profile { border-color: var(--oak-line); border-radius: 6px; box-shadow: none; }
.internal-oak-app .asn-refresh { border-color: transparent; background: transparent; }
.internal-oak-app .asn-profile { border-color: transparent; border-left: 1px solid var(--oak-line); border-radius: 0; background: transparent; }

/* Shared day navigation */
.public-oak-app .day-picker,
.internal-oak-app .day-selector {
    margin: 0;
    padding: 18px 24px 16px;
    background: var(--oak-white);
    border-bottom: 1px solid var(--oak-line);
}
.internal-oak-app .day-selector { margin-bottom: 22px; padding: 0 0 16px; }
.public-oak-app .day-picker-heading { margin-bottom: 10px; }
.public-oak-app .day-picker-heading p { color: var(--oak-forest); font: 400 1.18rem/1.1 var(--oak-serif); }
.internal-oak-app .day-weekgrid { min-width: 0; }
.public-oak-app .day-row,
.internal-oak-app .day-row {
    display: grid;
    gap: 0;
    overflow: hidden;
    border: 1px solid var(--oak-line);
    border-radius: 6px;
    background: #f7f9f7;
}
.internal-oak-app .day-weekgrid .day-row-primary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.internal-oak-app .day-weekgrid .day-row-more { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.public-oak-app .day-row-more,
.internal-oak-app .day-row-more { margin-top: 8px; }
.public-oak-app .day-button,
.internal-oak-app .day-button {
    min-height: 54px;
    padding: 8px 6px;
    border: 0;
    border-right: 1px solid var(--oak-line);
    border-radius: 0;
    color: var(--oak-muted);
    background: transparent;
    box-shadow: none;
    transition: color .18s ease, background .18s ease;
}
.public-oak-app .day-button:last-child,
.internal-oak-app .day-button:last-child { border-right: 0; }
.public-oak-app .day-row-primary .day-button,
.internal-oak-app .day-row-primary .day-button { min-height: 64px; }
.public-oak-app .day-button strong,
.internal-oak-app .day-button strong { color: var(--oak-ink); font-size: .78rem; }
.public-oak-app .day-button span,
.internal-oak-app .day-button span { color: var(--oak-muted); font-size: .63rem; }
.public-oak-app .day-clothing,
.internal-oak-app .day-clothing {
    min-height: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    margin-top: 4px;
    color: var(--oak-forest);
    font-size: .56rem;
    font-weight: 800;
    line-height: 1;
}
.public-oak-app .day-clothing:not(.is-empty)::before,
.internal-oak-app .day-clothing:not(.is-empty)::before {
    width: 5px;
    height: 5px;
    flex: 0 0 5px;
    border-radius: 50%;
    background: currentColor;
    content: '';
}
.public-oak-app .day-clothing.is-empty,
.internal-oak-app .day-clothing.is-empty { visibility: hidden; }
.public-oak-app .day-button:hover,
.internal-oak-app .day-button:hover { color: var(--oak-forest); background: #f8faf8; transform: none; }
.public-oak-app .day-button.is-active,
.internal-oak-app .day-button.is-active {
    color: var(--oak-forest);
    background: var(--oak-sage);
    box-shadow: inset 0 -3px 0 var(--oak-forest);
}
.public-oak-app .day-button.is-active strong,
.internal-oak-app .day-button.is-active strong { color: var(--oak-forest); }
.public-oak-app .day-button.is-active span,
.internal-oak-app .day-button.is-active span,
.public-oak-app .day-button.is-active .day-clothing,
.internal-oak-app .day-button.is-active .day-clothing { color: #557362; }
.internal-oak-app .day-swipe-toolbar {
    width: min(510px, 100%);
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr) 46px;
    align-items: center;
    gap: 12px;
    margin: 0 auto 8px;
}
.internal-oak-app .day-step-button {
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    padding: 0;
    border: 1px solid var(--oak-line);
    border-radius: 50%;
    color: var(--oak-forest);
    background: var(--oak-white);
    box-shadow: 0 5px 18px rgba(24, 55, 39, .08);
    cursor: pointer;
    transition: color .18s ease, background .18s ease, border-color .18s ease, transform .18s ease, opacity .18s ease;
}
.internal-oak-app .day-step-button svg {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.internal-oak-app .day-step-button:hover:not(:disabled) {
    color: var(--oak-white);
    border-color: var(--oak-forest);
    background: var(--oak-forest);
    transform: translateY(-1px);
}
.internal-oak-app .day-step-button:active:not(:disabled) { transform: scale(.94); }
.internal-oak-app .day-step-button:disabled { opacity: .48; cursor: default; box-shadow: none; }
.internal-oak-app .day-swipe-current {
    min-width: 0;
    display: grid;
    justify-items: center;
    text-align: center;
}
.internal-oak-app .day-swipe-current small {
    color: var(--oak-muted);
    font-size: .56rem;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.internal-oak-app .day-swipe-current strong {
    margin-top: 2px;
    color: var(--oak-forest-deep);
    font: 600 1.2rem/1.08 var(--oak-serif);
}
.internal-oak-app .day-swipe-current span {
    margin-top: 3px;
    overflow: hidden;
    color: var(--oak-muted);
    font-size: .65rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.internal-oak-app .day-swipe-hint {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    margin: 0 0 10px;
    color: #64756b;
    font-size: .62rem;
    font-weight: 750;
    text-align: center;
}
.internal-oak-app .day-swipe-hint svg {
    width: 18px;
    height: 18px;
    flex: none;
    fill: none;
    stroke: var(--oak-gold-deep);
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
    animation: oakDayHint 2.4s ease-in-out infinite;
}
.internal-oak-app .day-weekrail {
    display: flex;
    overflow-x: auto;
    overflow-y: hidden;
    border: 1px solid var(--oak-line);
    border-radius: 8px;
    background: #f7f9f7;
    scrollbar-width: none;
    scroll-padding-inline: 18px;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
}
.internal-oak-app .day-weekrail::-webkit-scrollbar { display: none; }
.internal-oak-app .day-weekrail .day-button {
    min-width: 126px;
    min-height: 70px;
    flex: 1 0 126px;
    scroll-snap-align: center;
}
.internal-oak-app .day-weekrail .day-button:last-child { border-right: 0; }
.internal-oak-app .day-weekrail .day-button.is-active {
    z-index: 1;
    background: linear-gradient(180deg, #edf5ef, var(--oak-sage));
    box-shadow: inset 0 -3px 0 var(--oak-forest), 0 0 0 1px rgba(47, 96, 69, .08);
}
.internal-oak-app .day-swipe-progress {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    margin-top: 9px;
}
.internal-oak-app .day-swipe-progress i {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #cbd5ce;
    transition: width .2s ease, background .2s ease;
}
.internal-oak-app .day-swipe-progress i.is-active { width: 18px; border-radius: 99px; background: var(--oak-forest); }
.internal-oak-app .day-swipe-preview {
    position: fixed;
    z-index: 180;
    right: 50%;
    bottom: max(86px, calc(env(safe-area-inset-bottom) + 78px));
    max-width: calc(100vw - 32px);
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 13px;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 99px;
    color: #fff;
    background: rgba(24, 55, 39, .94);
    box-shadow: 0 12px 30px rgba(15, 35, 24, .26);
    font-size: .7rem;
    font-weight: 800;
    opacity: 0;
    pointer-events: none;
    transform: translate(50%, 16px) scale(.96);
    transition: opacity .16s ease, transform .16s ease, background .16s ease;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}
.internal-oak-app .day-swipe-preview svg {
    width: 18px;
    height: 18px;
    flex: none;
    fill: none;
    stroke: #e9d595;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform .16s ease;
}
.internal-oak-app .day-swipe-preview.is-previous svg { transform: scaleX(-1); }
.internal-oak-app .day-swipe-preview.is-visible { opacity: 1; transform: translate(50%, 0) scale(1); }
.internal-oak-app .day-swipe-preview.is-ready { color: #173626; background: rgba(235, 242, 237, .98); border-color: #a7bcae; }
.internal-oak-app .day-swipe-preview.is-ready svg { stroke: var(--oak-forest); }
.internal-oak-app .day-swipe-surface {
    touch-action: pan-y pinch-zoom;
    overscroll-behavior-x: contain;
}
.internal-oak-app .day-swipe-surface .day-pane.is-active,
.internal-oak-app .day-swipe-surface .focus-grid {
    transform: translateX(0);
    transition: transform .18s cubic-bezier(.22,.61,.36,1), opacity .18s ease;
}
.internal-oak-app .day-swipe-surface.is-day-swiping .day-pane.is-active,
.internal-oak-app .day-swipe-surface.is-day-swiping .focus-grid {
    opacity: .88;
    transform: translateX(var(--day-swipe-x, 0));
    transition: none !important;
    will-change: transform, opacity;
}
.internal-oak-app .day-pane.is-day-entering,
.internal-oak-app .focus-grid.is-day-entering,
.internal-oak-app .internal-special-event-pane.is-day-entering,
.internal-oak-app .internal-event-media-pane.is-day-entering,
.internal-oak-app .schedule-exception-banner.is-day-entering,
.internal-oak-app .internal-rots-pane.is-day-entering {
    animation: oakDayEnter .24s cubic-bezier(.22,.61,.36,1) both;
}
.internal-oak-app .is-day-entering.is-from-previous { animation-name: oakDayEnterPrevious; }
@keyframes oakDayHint { 0%, 100% { transform: translateX(-2px); } 50% { transform: translateX(2px); } }
@keyframes oakDayEnter { from { opacity: .35; transform: translateX(24px); } to { opacity: 1; transform: translateX(0); } }
@keyframes oakDayEnterPrevious { from { opacity: .35; transform: translateX(-24px); } to { opacity: 1; transform: translateX(0); } }
.public-oak-app .day-extra-sessions,
.internal-oak-app .day-extra {
    width: fit-content;
    max-width: calc(100% - 8px);
    min-height: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    margin: 4px auto 0;
    color: #8a671c;
    font-size: .54rem;
    font-weight: 800;
    line-height: 1.12;
    white-space: normal;
}
.public-oak-app .day-extra-sessions::before,
.internal-oak-app .day-extra::before {
    width: 5px;
    height: 5px;
    flex: 0 0 5px;
    border: 1px solid currentColor;
    border-radius: 50%;
    background: currentColor;
    content: '';
}
.public-oak-app .day-extra-sessions.is-pending::before,
.internal-oak-app .day-extra.is-pending::before { background: transparent; }
.public-oak-app .day-button.is-active .day-extra-sessions,
.internal-oak-app .day-button.is-active .day-extra { color: #705315; }
html[data-wo-theme="dark"] body.public-oak-app .day-extra-sessions,
html[data-wo-theme="dark"] body.internal-oak-app .day-extra { color: #e4c76d; }
html[data-wo-theme="dark"] body.internal-oak-app .day-step-button { color: #b9dcc6; border-color: #3f5146; background: #17251d; }
html[data-wo-theme="dark"] body.internal-oak-app .day-step-button:hover:not(:disabled) { color: #17251d; border-color: #b9dcc6; background: #b9dcc6; }
html[data-wo-theme="dark"] body.internal-oak-app .day-swipe-current strong { color: #f3f5f2; }
html[data-wo-theme="dark"] body.internal-oak-app .day-swipe-current small,
html[data-wo-theme="dark"] body.internal-oak-app .day-swipe-current span,
html[data-wo-theme="dark"] body.internal-oak-app .day-swipe-hint { color: #b8c2bb; }
html[data-wo-theme="dark"] body.internal-oak-app .day-weekrail { border-color: #3d4a41; background: #16231c; }
html[data-wo-theme="dark"] body.internal-oak-app .day-weekrail .day-button.is-active { background: linear-gradient(180deg, #243d2f, #1e3528); box-shadow: inset 0 -3px 0 #9ac8aa; }
html[data-wo-theme="dark"] body.internal-oak-app .day-swipe-progress i { background: #536057; }
html[data-wo-theme="dark"] body.internal-oak-app .day-swipe-progress i.is-active { background: #9ac8aa; }
.internal-oak-app .day-button[hidden],
.internal-oak-app .day-swipe-progress i[hidden] { display: none !important; }
.internal-oak-app .day-swipe-hint.is-learned { opacity: .62; }

@media (max-width: 719px) {
    .internal-oak-app .day-selector { margin-bottom: 16px; padding-bottom: 13px; }
    .internal-oak-app .day-swipe-toolbar { grid-template-columns: 44px minmax(0, 1fr) 44px; gap: 9px; }
    .internal-oak-app .day-step-button { width: 44px; height: 44px; }
    .internal-oak-app .day-swipe-current strong { font-size: 1.08rem; }
    .internal-oak-app .day-swipe-current span { max-width: 190px; }
    .internal-oak-app .day-swipe-hint { margin-bottom: 8px; padding: 0 12px; font-size: .59rem; line-height: 1.35; }
    .internal-oak-app .day-weekrail { margin-right: -2px; margin-left: -2px; scroll-snap-type: x mandatory; }
    .internal-oak-app .day-weekrail .day-button {
        min-width: min(38vw, 142px);
        min-height: 68px;
        flex-basis: min(38vw, 142px);
        padding: 8px 7px;
    }
    .internal-oak-app .day-weekrail .day-button strong { font-size: .73rem; }
    .internal-oak-app .day-weekrail .day-button > span { font-size: .59rem; }
}

@media (prefers-reduced-motion: reduce) {
    .internal-oak-app .day-swipe-hint svg { animation: none; }
    .internal-oak-app .day-step-button,
    .internal-oak-app .day-swipe-preview,
    .internal-oak-app .day-swipe-preview svg,
    .internal-oak-app .day-swipe-progress i { transition: none; }
    .internal-oak-app .day-swipe-surface .day-pane.is-active,
    .internal-oak-app .day-swipe-surface .focus-grid { transition: none; }
    .internal-oak-app .day-swipe-surface.is-day-swiping .day-pane.is-active,
    .internal-oak-app .day-swipe-surface.is-day-swiping .focus-grid { transform: none; }
    .internal-oak-app .day-pane.is-day-entering,
    .internal-oak-app .focus-grid.is-day-entering,
    .internal-oak-app .internal-special-event-pane.is-day-entering,
    .internal-oak-app .internal-event-media-pane.is-day-entering,
    .internal-oak-app .schedule-exception-banner.is-day-entering,
    .internal-oak-app .internal-rots-pane.is-day-entering { animation: none; }
}

/* Shared section hierarchy */
.internal-oak-app .app-shell { width: min(1180px, calc(100% - 28px)); padding-top: 26px; }
.internal-oak-app .page-heading { margin-bottom: 22px; }
.internal-oak-app .page-heading h1 { color: var(--oak-ink); font: 400 2.25rem/1.04 var(--oak-serif); }
.internal-oak-app .page-heading .eyebrow { color: var(--oak-forest); letter-spacing: 0; }
.internal-oak-app .scope-switch { border-color: var(--oak-line); border-radius: 6px; background: #f6f8f6; }
.internal-oak-app .scope-switch button { border-radius: 4px; }
.internal-oak-app .scope-switch button.is-active { color: var(--oak-white); background: var(--oak-forest); }

.public-oak-app .moment-overview,
.internal-oak-app .focus-band {
    color: var(--oak-ink);
    background: var(--oak-white);
    border: 0;
    border-bottom: 1px solid var(--oak-line);
    border-radius: 0;
    box-shadow: none;
}
.public-oak-app .moment-overview {
    margin: 24px 0 28px;
    padding: 26px 28px 0;
    border: 1px solid var(--oak-line);
    border-top: 3px solid var(--oak-forest);
    border-radius: 6px;
}
.internal-oak-app .focus-band { margin-bottom: 24px; padding: 26px 28px; border: 1px solid var(--oak-line); border-top: 3px solid var(--oak-forest); border-radius: 6px; }
.public-oak-app .moment-overview-heading,
.internal-oak-app .section-head { align-items: center; padding-bottom: 15px; border-bottom: 1px solid var(--oak-line); }
.public-oak-app .moment-overview-heading-copy { min-width: 0; }
.public-oak-app .moment-overview-kicker {
    display: block;
    margin-bottom: 7px;
    color: var(--oak-forest);
    font-size: .66rem;
    font-weight: 850;
    text-transform: uppercase;
}
.public-oak-app .moment-overview-heading h2,
.internal-oak-app .section-head-copy h2 { color: var(--oak-forest-deep); font: 400 2rem/1 var(--oak-serif); }
.public-oak-app .moment-overview-heading-copy > p { margin-top: 8px; }
.internal-oak-app .section-head-copy span { color: var(--oak-forest); }
.public-oak-app .moment-overview-meta {
    flex: none;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 7px;
}
.public-oak-app .programme-freshness,
.internal-oak-app .focus-state { color: #496b57; background: var(--oak-sage); border: 0; border-left: 3px solid #6d9a7c; border-radius: 4px; }
.public-oak-app .moment-feature-state {
    min-height: 38px;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 8px 12px;
    color: #496b57;
    background: var(--oak-sage);
    border-left: 3px solid #6d9a7c;
    border-radius: 4px;
    font-size: .72rem;
    font-weight: 800;
}
.public-oak-app .moment-feature-state i {
    width: 8px;
    height: 8px;
    flex: none;
    border-radius: 50%;
    background: #5c8c6c;
    box-shadow: 0 0 0 4px rgba(92, 140, 108, .1);
}
.public-oak-app .moment-feature-state.is-preparing { color: #755719; background: var(--oak-gold-soft); border-left-color: var(--oak-gold); }
.public-oak-app .moment-feature-state.is-preparing i { background: var(--oak-gold); }
.public-oak-app .moment-feature-state.is-soon,
.public-oak-app .moment-feature-state.is-imminent { color: #953f31; background: var(--oak-coral-soft); border-left-color: var(--oak-coral); }
.public-oak-app .moment-feature-state.is-soon i,
.public-oak-app .moment-feature-state.is-imminent i { background: var(--oak-coral); }
.public-oak-app .moment-feature-state.is-live { color: var(--oak-white); background: var(--oak-forest); border-left-color: #85b394; }
.public-oak-app .moment-feature-state.is-live i { background: #b8ecc8; }
.public-oak-app .moment-feature-state.is-afterglow { color: var(--oak-forest-deep); background: var(--oak-sage); }
.public-oak-app .moment-overview-meta .programme-status-cluster {
    display: grid;
    grid-template-columns: auto auto;
    align-items: center;
    justify-items: end;
    gap: 3px 8px;
}
.public-oak-app .moment-overview-meta .programme-freshness {
    grid-column: 1 / -1;
    min-height: 28px;
    padding: 5px 8px;
}
.public-oak-app .moment-overview-meta .app-status-open { min-height: 36px; margin: 0; padding: 6px 2px; }
.internal-oak-app .focus-state i { background: #5c8c6c; box-shadow: 0 0 0 4px rgba(92, 140, 108, .1); }
.internal-oak-app .focus-state.is-preparing { color: #755719; background: var(--oak-gold-soft); border-left-color: var(--oak-gold); }
.internal-oak-app .focus-state.is-soon,
.internal-oak-app .focus-state.is-imminent { color: #953f31; background: var(--oak-coral-soft); border-left-color: var(--oak-coral); }
.internal-oak-app .focus-state.is-live { color: var(--oak-white); background: var(--oak-forest); border-left-color: #85b394; }
.internal-oak-app .focus-status-cluster {
    flex: none;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 5px;
}
.public-oak-app .app-release-link,
.internal-oak-app .app-release-link {
    min-width: 146px;
    min-height: 40px;
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr) 12px;
    align-items: center;
    gap: 7px;
    padding: 6px 8px 6px 7px;
    color: var(--oak-forest-deep);
    background: var(--oak-white);
    border: 1px solid var(--oak-line-strong);
    border-left: 3px solid var(--oak-gold);
    border-radius: 4px;
    text-decoration: none;
    box-shadow: none;
}
.public-oak-app .app-release-link:hover,
.internal-oak-app .app-release-link:hover { color: var(--oak-forest-deep); background: var(--oak-gold-soft); border-color: var(--oak-gold); }
.public-oak-app .app-release-link:focus-visible,
.internal-oak-app .app-release-link:focus-visible { outline: 3px solid rgba(170, 124, 33, .24); outline-offset: 3px; }
.public-oak-app .app-release-icon,
.public-oak-app .app-release-arrow,
.internal-oak-app .app-release-icon,
.internal-oak-app .app-release-arrow {
    width: 100%;
    height: auto;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.public-oak-app .app-release-icon,
.internal-oak-app .app-release-icon { color: var(--oak-gold); }
.public-oak-app .app-release-arrow,
.internal-oak-app .app-release-arrow { color: var(--oak-muted); }
.public-oak-app .app-release-copy,
.internal-oak-app .app-release-copy { min-width: 0; display: grid; gap: 1px; line-height: 1.1; }
.public-oak-app .app-release-copy small,
.internal-oak-app .app-release-copy small {
    color: var(--oak-muted);
    font-size: .52rem;
    font-weight: 750;
    letter-spacing: 0;
    text-transform: uppercase;
}
.public-oak-app .app-release-copy > span,
.internal-oak-app .app-release-copy > span { min-width: 0; display: flex; align-items: baseline; gap: 6px; white-space: nowrap; }
.public-oak-app .app-release-copy strong,
.internal-oak-app .app-release-copy strong { color: var(--oak-forest-deep); font-size: .68rem; font-weight: 850; }
.public-oak-app .app-release-copy b,
.internal-oak-app .app-release-copy b { color: var(--oak-forest); font-size: .57rem; font-weight: 750; }
.public-oak-app .programme-status-cluster .app-release-link { margin-top: 2px; }
.public-oak-app .daily-motto,
.internal-oak-app .focus-daily {
    color: var(--oak-ink);
    background: var(--oak-gold-soft);
    border-left-color: var(--oak-gold);
}
.public-oak-app .daily-motto > span,
.internal-oak-app .focus-daily span { color: #83601a; }
.public-oak-app .daily-motto p,
.internal-oak-app .focus-daily p { color: #4a453c; font-family: var(--oak-serif); }
.public-oak-app .daily-motto { margin: 16px 0 22px; }
.internal-oak-app .focus-daily { margin-top: 16px; }
.public-oak-app .moment-list { border-bottom: 0; }

/* Public and internal cards now share the same light visual language */
.public-oak-app .moment-session,
.internal-oak-app .focus-session {
    border-color: var(--oak-line);
    border-radius: 6px;
    color: var(--oak-ink);
    background: var(--oak-white);
    box-shadow: none;
}
.public-oak-app .moment-session,
.public-oak-app .moment-session.is-distant {
    min-height: 340px;
    grid-template-columns: minmax(380px, .95fr) minmax(0, 1.05fr) 44px;
    grid-template-rows: minmax(0, 1fr) auto;
    align-items: stretch;
    gap: 0;
    margin: 18px 0 24px;
    padding: 0;
    border: 1px solid var(--oak-line);
    overflow: hidden;
}
.public-oak-app .moment-session:hover { background: var(--oak-white); }
.public-oak-app .moment-session.is-preparing,
.internal-oak-app .focus-session.is-preparing { border-color: #d8c38c; background: #fffdf8; }
.public-oak-app .moment-session.is-soon,
.public-oak-app .moment-session.is-imminent,
.internal-oak-app .focus-session.is-soon,
.internal-oak-app .focus-session.is-imminent { border-color: #e6a99d; background: #fffaf8; }
.public-oak-app .moment-session.is-live,
.internal-oak-app .focus-session.is-live { border-color: #9dbda6; background: #f7fbf8; }
.public-oak-app .moment-session.is-special,
.internal-oak-app .focus-session.is-live-special { border-color: #d9c37f; }
.public-oak-app .moment-rail { display: none; }
.public-oak-app .moment-room-media,
.public-oak-app .moment-session.is-distant .moment-room-media {
    grid-column: 1;
    grid-row: 1 / span 2;
    width: 100%;
    height: 340px;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}
.public-oak-app .moment-inline-time,
.internal-oak-app .focus-time {
    color: #fff;
    background: rgba(23, 59, 42, .94);
    border-radius: 4px;
    box-shadow: 0 6px 20px rgba(16, 38, 27, .2);
    font-family: var(--oak-serif);
}
.public-oak-app .moment-room-media > time { display: none; }
.public-oak-app .moment-inline-time { flex: 0 0 auto; padding: 9px 12px; font-size: 2.1rem; line-height: 1; }
.public-oak-app .moment-content,
.public-oak-app .moment-session.is-distant .moment-content {
    grid-column: 2;
    grid-row: 1;
    display: block;
    align-self: center;
    padding: 28px 28px 14px;
}
.public-oak-app .moment-session-top { min-width: 0; display: flex; align-items: center; gap: 18px; }
.public-oak-app .moment-host-identity { min-width: 0; display: flex; align-items: center; gap: 12px; }
.public-oak-app .moment-avatars,
.public-oak-app .moment-session.is-distant .moment-avatars { width: auto; min-width: 0; }
.public-oak-app .moment-avatars { gap: 7px; }
.public-oak-app .session-avatars.moment-avatars > * + * { margin-left: 0; }
.public-oak-app .moment-host-copy { min-width: 0; display: block; }
.public-oak-app .moment-host-copy strong,
.public-oak-app .moment-host-copy span { display: block; overflow-wrap: anywhere; }
.public-oak-app .moment-host-copy strong { color: var(--oak-ink); font-size: .92rem; font-weight: 800; line-height: 1.2; }
.public-oak-app .moment-host-copy span { margin-top: 4px; color: var(--oak-muted); font-size: .72rem; }
.public-oak-app .moment-session.is-distant .moment-avatars img,
.public-oak-app .moment-session.is-distant .moment-avatars .session-avatar-photo,
.public-oak-app .moment-session.is-distant .moment-avatars .session-avatar-fallback { width: 52px; height: 52px; font-size: 1rem; }
.public-oak-app .moment-session.is-distant .moment-avatars.has-three img,
.public-oak-app .moment-session.is-distant .moment-avatars.has-three .session-avatar-photo,
.public-oak-app .moment-session.is-distant .moment-avatars.has-three .session-avatar-fallback { width: 34px; height: 34px; font-size: .72rem; }
.public-oak-app .moment-main { margin-top: 18px; }
.public-oak-app .moment-main .moment-kicker { display: none; }
.public-oak-app .moment-main > strong,
.public-oak-app .moment-session.is-distant .moment-main > strong { color: var(--oak-ink); font-family: var(--oak-serif); font-size: 1.28rem; font-weight: 500; }
.public-oak-app .moment-main .moment-kicker { color: var(--oak-coral); }
.public-oak-app .moment-host { color: var(--oak-ink); font-size: .82rem; font-weight: 700; }
.public-oak-app .moment-facts,
.public-oak-app .moment-session.is-distant .moment-facts {
    grid-column: 2;
    grid-row: 2;
    align-self: start;
    align-content: start;
    padding: 8px 28px 28px;
}
.public-oak-app .moment-status-row { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.public-oak-app .moment-facts > .moment-status-row::before { display: none; }
.public-oak-app .moment-start-detail { color: var(--oak-muted); font-size: .68rem; text-align: right; }
.public-oak-app .moment-chevron {
    grid-column: 3;
    grid-row: 1 / span 2;
    align-self: center;
    justify-self: center;
}
.public-oak-app .moment-status {
    min-height: 0;
    padding: 0;
    color: var(--oak-forest);
    background: transparent;
    border: 0;
    border-radius: 0;
    font-size: .72rem;
    font-weight: 800;
}
.public-oak-app .moment-status::before { display: none; }
.public-oak-app .moment-compliment,
.internal-oak-app .focus-compliment { color: #4d432e; background: var(--oak-gold-soft); border-left-color: var(--oak-gold); }
.public-oak-app .moment-experience,
.internal-oak-app .focus-live-partner { color: var(--oak-forest-deep); background: var(--oak-sage); border-left-color: #6d9a7c; }
.public-oak-app .moment-journey::before { background: #d6ddd7; }
.public-oak-app .moment-journey i.is-complete b,
.public-oak-app .moment-journey i.is-active b { border-color: var(--oak-forest); background: var(--oak-forest); }

.internal-oak-app .focus-grid:not(.is-parallel) .focus-session { grid-template-columns: minmax(380px, .95fr) minmax(0, 1.05fr); }
.internal-oak-app .focus-grid:not(.is-parallel) .focus-room-media { height: 340px; min-height: 340px; }
.internal-oak-app .focus-grid.is-parallel .focus-room-media { min-height: 220px; }
.internal-oak-app .focus-session-body { padding: 26px 28px; }
.internal-oak-app .focus-time { padding: 9px 12px; font-size: 2.1rem; }
.internal-oak-app .focus-avatar { width: 48px; height: 48px; color: var(--oak-forest); background: var(--oak-sage); border-color: #bdd0c2; font-size: 1rem; }
.internal-oak-app .focus-copy strong { color: var(--oak-ink); font-size: .92rem; }
.internal-oak-app .focus-copy span,
.internal-oak-app .focus-detail { color: var(--oak-muted); }
.internal-oak-app .focus-detail { font-size: .74rem; }
.internal-oak-app .focus-session-signature {
    gap: 10px 12px;
    margin-top: 14px;
    padding: 12px 13px;
    border-left-width: 4px;
    border-left-color: var(--oak-gold);
    color: var(--oak-ink);
    background: var(--oak-gold-soft);
}
.internal-oak-app .focus-signature-mark { color: var(--oak-gold); }
.internal-oak-app .focus-signature-copy small {
    color: #7f6421;
    font-size: .6rem;
    letter-spacing: .035em;
}
.internal-oak-app .focus-signature-copy strong {
    color: var(--oak-forest-deep);
    font-size: 1.05rem;
    line-height: 1.2;
}
.internal-oak-app .focus-signature-copy span {
    color: var(--oak-muted);
    font-size: .8rem;
    line-height: 1.4;
}
.internal-oak-app .focus-signature-heat small {
    color: #53675b;
    font-size: .6rem;
}
.internal-oak-app .focus-compliment { font-size: .7rem; }
.internal-oak-app .focus-compliment span { color: #83601a; }
.internal-oak-app .focus-live-partner { color: var(--oak-forest-deep); }
.internal-oak-app .focus-live-partner small { color: #60766a; }
.internal-oak-app .journey-status strong { color: var(--oak-forest); }
.internal-oak-app .journey-status span,
.internal-oak-app .journey-labels { color: var(--oak-muted); }
.internal-oak-app .journey-track { background: #dce2dc; }
.internal-oak-app .journey-progress { background: var(--oak-forest); }
.internal-oak-app .journey-marker { border-color: var(--oak-white); background: var(--oak-forest); box-shadow: 0 0 0 3px rgba(35, 79, 57, .13); }
.internal-oak-app .focus-empty { color: var(--oak-muted); }
.internal-oak-app .focus-thanks { color: var(--oak-forest-deep); background: var(--oak-sage); border-color: #bcd1c2; }
.internal-oak-app .focus-thanks span { color: #4d765d; }

html[data-wo-theme="dark"] body.internal-oak-app .focus-session-signature {
    border-left-color: #d0ae4f;
    color: #f2f4f1;
    background: linear-gradient(110deg, #193126, #302b1b);
}
html[data-wo-theme="dark"] body.internal-oak-app .focus-signature-mark,
html[data-wo-theme="dark"] body.internal-oak-app .focus-signature-copy small,
html[data-wo-theme="dark"] body.internal-oak-app .focus-signature-heat small { color: #e5cf7b; }
html[data-wo-theme="dark"] body.internal-oak-app .focus-signature-copy strong { color: #f2f4f1; }
html[data-wo-theme="dark"] body.internal-oak-app .focus-signature-copy span { color: #c5cec8; }

@media (max-width: 719px) {
    .internal-oak-app .focus-session-signature {
        grid-template-columns: 22px minmax(0, 1fr);
        align-items: start;
        gap: 7px 10px;
        padding: 12px 13px 13px;
    }
    .internal-oak-app .focus-signature-heat {
        grid-column: 2;
        justify-items: start;
    }
    .internal-oak-app .focus-signature-copy strong { font-size: 1rem; }
}

/* The guest experience band follows the same hierarchy as the internal planner. */
.public-oak-app .guest-event-media {
    margin: 0 0 18px;
    padding: 16px;
    background: linear-gradient(135deg, #fbf4e2, #fffdf7);
    border: 0;
    border-bottom: 1px solid #d8c99e;
    border-left: 0;
    border-radius: 0;
    box-shadow: inset 4px 0 0 #c49b3f;
}
.public-oak-app .guest-event-media-head { margin-bottom: 12px; }
.public-oak-app .guest-event-media-head span { color: #806522; font-size: .59rem; }
.public-oak-app .guest-event-media-head strong { font-size: 1.2rem; }
.public-oak-app .guest-event-media-head small { font-size: .66rem; }
.public-oak-app .guest-flyer { border-color: #decda1; border-radius: 7px; box-shadow: 0 5px 16px rgba(91, 68, 24, .08); }
.public-oak-app .guest-flyer.is-experience { border-color: #b9cdbf; }
.public-oak-app .guest-flyer-copy > span { color: #806522; }

/* One clear start signal replaces several competing countdown messages. */
.public-oak-app .ritual-cue,
.internal-oak-app .ritual-cue {
    --ritual-accent: var(--oak-gold);
    position: relative;
    width: 100%;
    min-width: 0;
    min-height: 82px;
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr) 42px;
    align-items: stretch;
    overflow: hidden;
    color: var(--oak-ink);
    background: #fbfaf6;
    border: 1px solid #dfd4b8;
    border-left: 4px solid var(--ritual-accent);
    border-radius: 4px;
}
.public-oak-app .moment-facts > .ritual-cue::before { display: none; }
.internal-oak-app .ritual-cue { margin-top: 13px; }
.public-oak-app .ritual-cue::after,
.internal-oak-app .ritual-cue::after {
    content: "";
    position: absolute;
    right: auto;
    bottom: 0;
    left: 0;
    width: 32%;
    height: 2px;
    background: var(--ritual-accent);
    transform: none;
    animation: none;
}
.public-oak-app .ritual-cue-clock,
.internal-oak-app .ritual-cue-clock {
    position: relative;
    display: grid;
    place-content: center;
    justify-items: center;
    padding: 9px 7px;
    color: #785d20;
    background: var(--oak-gold-soft);
    border-right: 1px solid #dfd4b8;
    font-family: var(--oak-serif);
}
.public-oak-app .ritual-cue-clock b,
.internal-oak-app .ritual-cue-clock b { font-size: 1.95rem; font-weight: 500; line-height: .92; }
.public-oak-app .ritual-cue-clock small,
.internal-oak-app .ritual-cue-clock small { max-width: 64px; margin-top: 5px; font: 800 .49rem/1.2 var(--oak-sans); text-align: center; text-transform: uppercase; }
.public-oak-app .ritual-cue-copy,
.internal-oak-app .ritual-cue-copy { min-width: 0; display: grid; align-content: center; gap: 4px; padding: 12px 13px; }
.public-oak-app .ritual-cue-copy small,
.public-oak-app .ritual-cue-copy strong,
.internal-oak-app .ritual-cue-copy small,
.internal-oak-app .ritual-cue-copy strong { display: block; min-width: 0; overflow-wrap: anywhere; }
.public-oak-app .ritual-cue-copy small,
.internal-oak-app .ritual-cue-copy small { color: #80621e; font: 850 .59rem/1.2 var(--oak-sans); text-transform: uppercase; }
.public-oak-app .ritual-cue-copy strong,
.internal-oak-app .ritual-cue-copy strong { color: #4a4132; font: 500 .82rem/1.35 var(--oak-serif); }
.public-oak-app .ritual-cue-signal,
.internal-oak-app .ritual-cue-signal { display: flex; align-items: center; justify-content: center; gap: 3px; padding-right: 8px; }
.public-oak-app .ritual-cue-signal i,
.internal-oak-app .ritual-cue-signal i {
    width: 3px;
    height: 13px;
    display: block;
    border-radius: 2px;
    background: var(--ritual-accent);
    transform-origin: center bottom;
    animation: none;
}
.public-oak-app .ritual-cue-signal i:nth-child(2),
.internal-oak-app .ritual-cue-signal i:nth-child(2) { height: 23px; animation-delay: -.6s; }
.public-oak-app .ritual-cue-signal i:nth-child(3),
.internal-oak-app .ritual-cue-signal i:nth-child(3) { height: 17px; animation-delay: -1.15s; }
.public-oak-app .ritual-cue.is-soon,
.public-oak-app .ritual-cue.is-imminent,
.internal-oak-app .ritual-cue.is-soon,
.internal-oak-app .ritual-cue.is-imminent { --ritual-accent: var(--oak-coral); color: #8f3f32; background: #fff8f6; border-color: #e8b4a9; }
.public-oak-app .ritual-cue.is-soon .ritual-cue-clock,
.public-oak-app .ritual-cue.is-imminent .ritual-cue-clock,
.internal-oak-app .ritual-cue.is-soon .ritual-cue-clock,
.internal-oak-app .ritual-cue.is-imminent .ritual-cue-clock { color: #943d30; background: var(--oak-coral-soft); border-right-color: #e8b4a9; }
.public-oak-app .ritual-cue.is-soon .ritual-cue-copy small,
.public-oak-app .ritual-cue.is-imminent .ritual-cue-copy small,
.internal-oak-app .ritual-cue.is-soon .ritual-cue-copy small,
.internal-oak-app .ritual-cue.is-imminent .ritual-cue-copy small { color: #9a4032; }
.public-oak-app .ritual-cue.is-imminent,
.internal-oak-app .ritual-cue.is-imminent { box-shadow: inset 0 0 0 2px rgba(200, 93, 72, .08); }
.public-oak-app .ritual-cue.is-imminent .ritual-cue-signal i,
.internal-oak-app .ritual-cue.is-imminent .ritual-cue-signal i { animation: oakStatusBlink 1.15s steps(1, end) infinite; }
.public-oak-app .ritual-cue.is-live,
.internal-oak-app .ritual-cue.is-live { --ritual-accent: #6d9f7b; color: var(--oak-white); background: var(--oak-forest-deep); border-color: var(--oak-forest-deep); }
.public-oak-app .ritual-cue.is-live .ritual-cue-clock,
.internal-oak-app .ritual-cue.is-live .ritual-cue-clock { color: var(--oak-white); background: var(--oak-forest); border-right-color: rgba(255,255,255,.18); }
.public-oak-app .ritual-cue.is-live .ritual-cue-copy small,
.internal-oak-app .ritual-cue.is-live .ritual-cue-copy small { color: #b8ddc2; }
.public-oak-app .ritual-cue.is-live .ritual-cue-copy strong,
.internal-oak-app .ritual-cue.is-live .ritual-cue-copy strong { color: var(--oak-white); }
.public-oak-app .ritual-cue.is-live .ritual-cue-signal i,
.internal-oak-app .ritual-cue.is-live .ritual-cue-signal i { animation: oakStatusBlink .85s steps(1, end) infinite; }
.public-oak-app .ritual-cue.is-inline-signal,
.internal-oak-app .ritual-cue.is-inline-signal {
    --ritual-progress: 40%;
    min-height: 60px;
    grid-template-columns: 58px minmax(0, 1fr) 34px;
    margin-top: 7px;
    border-left-width: 3px;
    box-shadow: none;
}
.public-oak-app .ritual-cue.is-inline-signal::after,
.internal-oak-app .ritual-cue.is-inline-signal::after {
    width: var(--ritual-progress);
    height: 3px;
    transition: width .7s ease;
}
.public-oak-app .ritual-cue.is-inline-signal .ritual-cue-clock,
.internal-oak-app .ritual-cue.is-inline-signal .ritual-cue-clock { isolation: isolate; padding: 7px 5px; }
.public-oak-app .ritual-cue.is-inline-signal .ritual-cue-clock::before,
.internal-oak-app .ritual-cue.is-inline-signal .ritual-cue-clock::before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 50%;
    left: 50%;
    width: 37px;
    height: 37px;
    border: 1px solid currentColor;
    border-radius: 50%;
    opacity: .18;
    transform: translate(-50%, -50%);
}
.public-oak-app .ritual-cue.is-inline-signal .ritual-cue-clock b,
.internal-oak-app .ritual-cue.is-inline-signal .ritual-cue-clock b { font-size: 1.45rem; }
.public-oak-app .ritual-cue.is-inline-signal .ritual-cue-clock small,
.internal-oak-app .ritual-cue.is-inline-signal .ritual-cue-clock small { margin-top: 3px; font-size: .43rem; }
.public-oak-app .ritual-cue.is-inline-signal .ritual-cue-copy,
.internal-oak-app .ritual-cue.is-inline-signal .ritual-cue-copy { gap: 3px; padding: 8px 10px; }
.public-oak-app .ritual-cue.is-inline-signal .ritual-cue-copy small,
.internal-oak-app .ritual-cue.is-inline-signal .ritual-cue-copy small { font-size: .52rem; }
.public-oak-app .ritual-cue.is-inline-signal .ritual-cue-copy strong,
.internal-oak-app .ritual-cue.is-inline-signal .ritual-cue-copy strong { font-size: .72rem; line-height: 1.25; }
.public-oak-app .ritual-cue.is-inline-signal.is-soon,
.internal-oak-app .ritual-cue.is-inline-signal.is-soon {
    --ritual-accent: #b68f35;
    color: #73591d;
    background: #fdfaf0;
    border-color: #decd9d;
}
.public-oak-app .ritual-cue.is-inline-signal.is-soon .ritual-cue-clock,
.internal-oak-app .ritual-cue.is-inline-signal.is-soon .ritual-cue-clock { color: #765b1e; background: #f6edcf; border-right-color: #decd9d; }
.public-oak-app .ritual-cue.is-inline-signal.is-soon .ritual-cue-copy small,
.internal-oak-app .ritual-cue.is-inline-signal.is-soon .ritual-cue-copy small { color: #765b1e; }
.public-oak-app .ritual-cue.is-inline-signal.is-soon .ritual-cue-signal i,
.internal-oak-app .ritual-cue.is-inline-signal.is-soon .ritual-cue-signal i { animation: oakSignalWave 2.4s ease-in-out infinite; }
.public-oak-app .ritual-cue.is-inline-signal.is-imminent .ritual-cue-clock::before,
.internal-oak-app .ritual-cue.is-inline-signal.is-imminent .ritual-cue-clock::before { animation: oakSignalHalo 1.65s ease-out infinite; }
.public-oak-app .ritual-cue.is-inline-signal.is-imminent .ritual-cue-signal i,
.internal-oak-app .ritual-cue.is-inline-signal.is-imminent .ritual-cue-signal i { animation: oakSignalWave 1.15s ease-in-out infinite; }
.public-oak-app .ritual-cue.is-inline-signal.is-live .ritual-cue-clock::before,
.internal-oak-app .ritual-cue.is-inline-signal.is-live .ritual-cue-clock::before { animation: oakSignalHalo 1.35s ease-out infinite; }
.public-oak-app .ritual-cue.is-inline-signal.is-live .ritual-cue-signal i,
.internal-oak-app .ritual-cue.is-inline-signal.is-live .ritual-cue-signal i { animation: oakSignalWave .95s ease-in-out infinite; }
html[data-wo-theme="dark"] body.public-oak-app .ritual-cue.is-inline-signal.is-soon,
html[data-wo-theme="dark"] body.internal-oak-app .ritual-cue.is-inline-signal.is-soon { color: #f0ddaa; background: #2b281e; border-color: #6b5c35; }
html[data-wo-theme="dark"] body.public-oak-app .ritual-cue.is-inline-signal.is-soon .ritual-cue-clock,
html[data-wo-theme="dark"] body.internal-oak-app .ritual-cue.is-inline-signal.is-soon .ritual-cue-clock { color: #f0ddaa; background: #39311f; border-right-color: #6b5c35; }
html[data-wo-theme="dark"] body.public-oak-app .ritual-cue.is-inline-signal.is-soon .ritual-cue-copy small,
html[data-wo-theme="dark"] body.internal-oak-app .ritual-cue.is-inline-signal.is-soon .ritual-cue-copy small { color: #e1c875; }
html[data-wo-theme="dark"] body.public-oak-app .ritual-cue.is-inline-signal.is-soon .ritual-cue-copy strong,
html[data-wo-theme="dark"] body.internal-oak-app .ritual-cue.is-inline-signal.is-soon .ritual-cue-copy strong { color: #f2f4f1; }
html[data-wo-theme="dark"] body.public-oak-app .ritual-cue.is-inline-signal.is-imminent,
html[data-wo-theme="dark"] body.internal-oak-app .ritual-cue.is-inline-signal.is-imminent { background: #34221f; border-color: #895044; }
html[data-wo-theme="dark"] body.public-oak-app .ritual-cue.is-inline-signal.is-imminent .ritual-cue-clock,
html[data-wo-theme="dark"] body.internal-oak-app .ritual-cue.is-inline-signal.is-imminent .ritual-cue-clock { color: #ffd8cf; background: #452821; border-right-color: #895044; }
html[data-wo-theme="dark"] body.public-oak-app .ritual-cue.is-inline-signal.is-imminent .ritual-cue-copy small,
html[data-wo-theme="dark"] body.internal-oak-app .ritual-cue.is-inline-signal.is-imminent .ritual-cue-copy small { color: #f3a796; }
html[data-wo-theme="dark"] body.public-oak-app .ritual-cue.is-inline-signal.is-imminent .ritual-cue-copy strong,
html[data-wo-theme="dark"] body.internal-oak-app .ritual-cue.is-inline-signal.is-imminent .ritual-cue-copy strong { color: #fff4f1; }
.public-oak-app .day-button,
.internal-oak-app .day-button {
    position: relative;
    overflow: hidden;
}
.public-oak-app .day-button::after,
.internal-oak-app .day-button::after {
    display: none;
}

.public-oak-app .moment-session,
.internal-oak-app .focus-session {
    position: relative;
    isolation: isolate;
    transition: transform .45s var(--oak-motion-ease), border-color .4s ease, box-shadow .45s ease, background-color .4s ease;
}
.public-oak-app .moment-session::after,
.internal-oak-app .focus-session::after {
    content: "";
    position: absolute;
    z-index: 8;
    top: 0;
    right: 0;
    left: 0;
    height: 3px;
    pointer-events: none;
    opacity: .52;
    background: linear-gradient(90deg, var(--oak-gold), var(--oak-forest));
}
.public-oak-app .moment-session.is-preparing::after,
.internal-oak-app .focus-session.is-preparing::after { opacity: .72; }
.public-oak-app .moment-session.is-soon::after,
.public-oak-app .moment-session.is-imminent::after,
.internal-oak-app .focus-session.is-soon::after,
.internal-oak-app .focus-session.is-imminent::after {
    opacity: .9;
    background: var(--oak-coral);
}
.public-oak-app .moment-session.is-live::after,
.internal-oak-app .focus-session.is-live::after {
    height: 4px;
    opacity: 1;
    background: #6d9f7b;
}

.public-oak-app .moment-room-media,
.internal-oak-app .focus-room-media {
    animation: none;
    transform: none;
    transition: none;
    contain: paint;
}
.public-oak-app .moment-session.is-imminent .moment-room-media,
.public-oak-app .moment-session.is-live .moment-room-media,
.internal-oak-app .focus-session.is-imminent,
.internal-oak-app .focus-session.is-live { animation: none; }
.public-oak-app .moment-room-media img,
.internal-oak-app .focus-room-media img {
    animation: none;
    transform: none;
    transition: none;
    will-change: auto;
}
.public-oak-app .moment-session:hover .moment-room-media img,
.public-oak-app .concurrent-session:hover .concurrent-image { transform: none; }
.public-oak-app .moment-room-caption,
.public-oak-app .moment-room-media time,
.public-oak-app .moment-phase-badge,
.public-oak-app .moment-live-badge,
.internal-oak-app .focus-room-label,
.internal-oak-app .focus-phase-badge,
.internal-oak-app .focus-live-badge { transform: none; transition: none; will-change: auto; }
.public-oak-app .moment-atmosphere,
.internal-oak-app .focus-atmosphere {
    display: none;
}
.public-oak-app .event-brand-logo::after,
.public-oak-app .closing-steam,
.internal-oak-app .internal-rots-logo::after { display: none; }
.public-oak-app .moment-room-media::before,
.internal-oak-app .focus-room-media::before {
    opacity: 0;
    background: linear-gradient(108deg, transparent 20%, rgba(255, 244, 211, .28) 48%, transparent 74%);
    animation: none;
    transform: none;
}
.public-oak-app .moment-session.is-preparing .moment-room-media::before,
.internal-oak-app .focus-session.is-preparing .focus-room-media::before { opacity: .12; }
.public-oak-app .moment-session.is-soon .moment-room-media::before,
.public-oak-app .moment-session.is-imminent .moment-room-media::before,
.internal-oak-app .focus-session.is-soon .focus-room-media::before,
.internal-oak-app .focus-session.is-imminent .focus-room-media::before { opacity: .18; }
.public-oak-app .moment-session.is-live .moment-room-media::before,
.internal-oak-app .focus-session.is-live .focus-room-media::before { opacity: .22; }

.public-oak-app .programme-freshness i,
.internal-oak-app .focus-state i,
.public-oak-app .moment-status::before {
    position: relative;
    animation: none;
}
.public-oak-app .moment-session.is-soon .moment-status::before,
.public-oak-app .moment-session.is-imminent .moment-status::before,
.internal-oak-app .focus-state.is-soon i,
.internal-oak-app .focus-state.is-imminent i { animation: oakStatusBlink 1.35s steps(1, end) infinite; }
.public-oak-app .moment-session.is-live .moment-status::before,
.internal-oak-app .focus-state.is-live i { animation: oakStatusBlink .9s steps(1, end) infinite; }

.public-oak-app .moment-avatars > *,
.internal-oak-app .focus-avatars > * { transform-origin: center bottom; }
.public-oak-app .moment-session.is-live .moment-avatars > *,
.public-oak-app .moment-session.is-imminent .moment-avatars > *,
.internal-oak-app .focus-session.is-live .focus-avatars > *,
.internal-oak-app .focus-session.is-imminent .focus-avatars > * { animation: none; }

.public-oak-app .moment-journey::after,
.public-oak-app .timeline-journey::after,
.internal-oak-app .journey-progress,
.internal-oak-app .row-journey::after {
    background: var(--oak-forest);
}
.public-oak-app .moment-session.is-live .moment-journey::after,
.public-oak-app .timeline-row.is-live .timeline-journey::after,
.internal-oak-app .focus-session.is-live .journey-progress,
.internal-oak-app .session-row[data-stage="live"] .row-journey::after { background: #6d9f7b; }

.public-oak-app .timeline-row,
.internal-oak-app .session-row { position: relative; transition: transform .28s ease, background-color .35s ease, opacity .35s ease; }
.public-oak-app .timeline-row[data-stage="preparing"]::after,
.public-oak-app .timeline-row[data-stage="soon"]::after,
.public-oak-app .timeline-row[data-stage="imminent"]::after,
.public-oak-app .timeline-row[data-stage="live"]::after,
.internal-oak-app .session-row[data-stage="preparing"]::after,
.internal-oak-app .session-row[data-stage="soon"]::after,
.internal-oak-app .session-row[data-stage="imminent"]::after,
.internal-oak-app .session-row[data-stage="live"]::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 2px;
    pointer-events: none;
    opacity: .7;
    background: var(--oak-coral);
}
.public-oak-app .timeline-row[data-stage="live"]::after,
.internal-oak-app .session-row[data-stage="live"]::after { height: 3px; opacity: 1; background: #6d9f7b; }

@media (hover: hover) and (pointer: fine) {
    .public-oak-app .moment-session:hover,
    .internal-oak-app .focus-session:hover { border-color: #aebdb2; box-shadow: inset 0 0 0 1px rgba(35, 79, 57, .05); }
    .public-oak-app .bottom-nav .nav-item:hover .nav-icon,
    .internal-oak-app .asn-desktop-nav a:hover svg,
    .internal-oak-app .asn-bottom-nav a:hover svg,
    .internal-oak-app .asn-bottom-nav button:hover svg { transform: translateY(-2px) scale(1.05); }
    .public-oak-app .bottom-nav .nav-icon,
    .internal-oak-app .asn-desktop-nav svg,
    .internal-oak-app .asn-bottom-nav svg { transition: transform .25s var(--oak-motion-ease); }
}

@keyframes oakStatusBlink { 0%, 54% { opacity: 1; } 55%, 100% { opacity: .22; } }
@keyframes oakSignalWave {
    0%, 100% { opacity: .42; transform: scaleY(.58); }
    50% { opacity: 1; transform: scaleY(1); }
}
@keyframes oakSignalHalo {
    0% { opacity: .34; transform: translate(-50%, -50%) scale(.72); }
    75%, 100% { opacity: 0; transform: translate(-50%, -50%) scale(1.38); }
}

/* Programme and utility surfaces */
.internal-oak-app .schedule-section,
.internal-oak-app .side-section,
.public-oak-app .host-card,
.public-oak-app .app-info,
.public-oak-app .room-card { border-color: var(--oak-line); border-radius: 6px; box-shadow: none; }
.internal-oak-app .schedule-header { min-height: 78px; padding: 17px 20px; }
.internal-oak-app .schedule-title h2 { font: 400 1.55rem/1.1 var(--oak-serif); }
.internal-oak-app .session-row {
    min-height: 96px;
    grid-template-columns: 58px minmax(0, 1fr) minmax(200px, 260px) 42px;
    grid-template-rows: auto auto auto auto;
    align-items: center;
    column-gap: 14px;
    row-gap: 4px;
}
.internal-oak-app .session-time { grid-column: 1; grid-row: 1 / span 3; }
.internal-oak-app .session-main { grid-column: 2; grid-row: 1; }
.internal-oak-app .session-main strong { color: var(--oak-ink); font-size: .86rem; line-height: 1.3; }
.internal-oak-app .session-hosts { grid-column: 3; grid-row: 1 / span 3; }
.internal-oak-app .session-room {
    grid-column: 2;
    grid-row: 2;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 7px;
    color: var(--oak-forest-deep);
    font-size: .69rem;
    font-weight: 800;
    line-height: 1.35;
    overflow-wrap: anywhere;
}
.internal-oak-app .session-room::before {
    content: "";
    width: 7px;
    height: 7px;
    flex: 0 0 7px;
    border-radius: 50%;
    background: var(--oak-forest);
    box-shadow: 0 0 0 3px var(--oak-sage);
}
.internal-oak-app .session-meta { grid-column: 2; grid-row: 3; }
.internal-oak-app .session-meta > .session-fact {
    min-height: 0;
    padding: 0;
    border: 0;
    color: var(--oak-muted);
    background: transparent;
    font-weight: 650;
}
.internal-oak-app .session-meta > .session-fact.is-price {
    color: var(--oak-forest-deep);
    font-weight: 800;
}
.internal-oak-app .session-meta > .session-fact + .session-fact::before {
    content: "·";
    margin-right: 7px;
    color: var(--oak-quiet);
}
.internal-oak-app .session-meta > .session-source.is-main { display: none; }
.internal-oak-app .session-meta:not(:has(> :not(.session-source.is-main))) { display: none; }
.internal-oak-app .session-info-button {
    grid-column: 4;
    grid-row: 1 / span 3;
    justify-self: center;
    width: 36px;
    height: 36px;
    min-height: 36px;
    justify-content: center;
    padding: 0;
    border-radius: 50%;
}
.internal-oak-app .session-info-button .session-info-arrow { font-size: 1.35rem; line-height: 1; }
.internal-oak-app .row-journey { grid-column: 2 / -1; grid-row: 4; }
.internal-oak-app .session-time,
.public-oak-app .program-row time,
.public-oak-app .calendar-session-row time { color: var(--oak-forest-deep); font-family: var(--oak-serif); }
.internal-oak-app .session-avatar,
.public-oak-app .calendar-session-avatars img,
.public-oak-app .calendar-session-avatars > span { border-color: #c5d3c8; background: var(--oak-sage); }
.public-oak-app .phone-policy-home { margin-top: 18px; border-radius: 6px; }
.public-oak-app .day-panel { padding-top: 18px; }
.public-oak-app .timeline,
.public-oak-app .program-row,
.internal-oak-app .session-row { border-color: var(--oak-line); }
.public-oak-app .calendar-brand-header { min-height: 90px; }
.public-oak-app .calendar-brand-header a { width: 160px; }
.public-oak-app .calendar-intro { padding-top: 34px; }
.public-oak-app .calendar-intro h1,
.public-oak-app .page-header h1,
.public-oak-app .room-guide-heading h2 { font-family: var(--oak-serif); letter-spacing: 0; }
.public-oak-app .guest-contact-trigger {
    position: fixed;
    z-index: 35;
    right: max(14px, calc((100vw - 1180px) / 2 + 14px));
    bottom: calc(82px + env(safe-area-inset-bottom));
    width: 50px;
    height: 50px;
    padding: 0;
    border: 2px solid var(--oak-white);
    border-radius: 50%;
    color: var(--oak-forest-deep);
    background: var(--oak-white);
    box-shadow: 0 5px 16px rgba(31, 53, 39, .2), 0 0 0 1px rgba(36, 77, 54, .16);
    cursor: pointer;
}
.public-oak-app .guest-contact-trigger-photo,
.public-oak-app .guest-contact-trigger-photo img,
.public-oak-app .guest-contact-trigger-photo > span { width: 100%; height: 100%; display: grid; place-items: center; border-radius: 50%; }
.public-oak-app .guest-contact-trigger-photo { overflow: hidden; background: var(--oak-forest); color: var(--oak-white); font: 500 1.1rem var(--oak-serif); }
.public-oak-app .guest-contact-trigger-photo img { object-fit: cover; object-position: center; }
.public-oak-app .guest-contact-hint {
    position: absolute;
    right: 58px;
    top: 50%;
    width: 208px;
    padding: 10px 12px;
    color: var(--oak-forest-deep);
    background: var(--oak-white);
    border: 1px solid rgba(36, 77, 54, .18);
    border-radius: 7px;
    text-align: left;
    opacity: 1;
    visibility: visible;
    pointer-events: none;
    transform: translateY(-50%);
    box-shadow: 0 8px 24px rgba(31, 53, 39, .13);
}
.public-oak-app .guest-contact-hint::before,
.public-oak-app .guest-contact-hint::after { content: ""; position: absolute; left: 100%; top: 50%; border: 7px solid transparent; transform: translateY(-50%); }
.public-oak-app .guest-contact-hint::before { border-left-color: rgba(36, 77, 54, .2); }
.public-oak-app .guest-contact-hint::after { margin-left: -1px; border-left-color: var(--oak-white); }
.public-oak-app .guest-contact-hint strong,
.public-oak-app .guest-contact-hint small { display: block; letter-spacing: 0; }
.public-oak-app .guest-contact-hint strong { font-size: .76rem; line-height: 1.2; }
.public-oak-app .guest-contact-hint small { margin-top: 3px; color: var(--oak-muted); font-size: .68rem; line-height: 1.3; }
.public-oak-app .guest-contact-trigger:focus-visible { outline: 3px solid rgba(36, 77, 54, .2); outline-offset: 3px; }
.public-oak-app .guest-contact-dialog {
    width: min(390px, calc(100vw - 24px));
    max-height: min(620px, calc(100vh - 32px));
    padding: 0;
    overflow: hidden;
    color: var(--oak-ink);
    background: var(--oak-white);
    border: 1px solid var(--oak-line);
    border-radius: 8px;
    box-shadow: 0 26px 80px rgba(25, 43, 32, .3);
}
.public-oak-app .guest-contact-dialog[open] { display: flex; flex-direction: column; animation: oak-contact-dialog-in .28s var(--oak-motion-ease) both; }
.public-oak-app .guest-contact-dialog::backdrop { background: rgba(24, 39, 29, .58); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); }
@keyframes oak-contact-dialog-in { from { opacity: 0; transform: translateY(12px) scale(.98); } to { opacity: 1; transform: none; } }
.public-oak-app .guest-contact-handle { display: none; }
.public-oak-app .guest-contact-dialog-head { display: grid; grid-template-columns: 50px minmax(0, 1fr) 40px; align-items: center; gap: 11px; padding: 15px 16px; background: linear-gradient(135deg, #eef4ef, #f8f5ed); border-bottom: 1px solid var(--oak-line); }
.public-oak-app .guest-contact-dialog-photo,
.public-oak-app .guest-contact-dialog-photo img,
.public-oak-app .guest-contact-dialog-photo > span { width: 50px; height: 50px; display: grid; place-items: center; border-radius: 50%; }
.public-oak-app .guest-contact-dialog-photo { overflow: hidden; color: var(--oak-white); background: var(--oak-forest); box-shadow: 0 0 0 1px #bfd0c4; font: 500 1.2rem var(--oak-serif); }
.public-oak-app .guest-contact-dialog-photo img { object-fit: cover; object-position: center; }
.public-oak-app .guest-contact-dialog-head h2 { margin: 0; color: var(--oak-forest-deep); font: 600 .95rem/1.2 var(--oak-sans); letter-spacing: 0; }
.public-oak-app .guest-contact-dialog-head p { margin: 4px 0 0; color: var(--oak-muted); font-size: .64rem; }
.public-oak-app .guest-contact-online { display: flex; align-items: center; gap: 5px; }
.public-oak-app .guest-contact-online i { width: 7px; height: 7px; flex: none; border-radius: 50%; background: #2f9b58; box-shadow: 0 0 0 0 rgba(47, 155, 88, .45); animation: oak-contact-online 2s ease-in-out infinite; }
@keyframes oak-contact-online { 50% { box-shadow: 0 0 0 5px rgba(47, 155, 88, 0); } }
.public-oak-app .guest-contact-dialog-close { width: 40px; height: 40px; padding: 0; border: 1px solid var(--oak-line); border-radius: 50%; color: var(--oak-forest-deep); background: var(--oak-white); font: 400 1.35rem/1 var(--oak-sans); cursor: pointer; }
.public-oak-app .guest-contact-dialog-close:focus-visible { outline: 3px solid rgba(36, 77, 54, .2); outline-offset: 2px; }
.public-oak-app .guest-contact-dialog-body { display: grid; gap: 13px; padding: 14px 14px max(18px, env(safe-area-inset-bottom)); overflow-y: auto; background: linear-gradient(180deg, #fdfaf3, var(--oak-white)); }
.public-oak-app .guest-contact-dialog-body p { margin: 0; color: var(--oak-muted); font-size: .73rem; line-height: 1.5; }
.public-oak-app .guest-contact-dialog-body .guest-contact-dialog-intro { padding: 8px 10px; color: var(--oak-muted); background: rgba(212, 165, 116, .08); border: 1px dashed rgba(174, 132, 78, .24); border-radius: 7px; font: 600 .68rem/1.4 var(--oak-sans); text-align: center; }
.public-oak-app .guest-contact-message { display: flex; align-items: flex-end; gap: 8px; }
.public-oak-app .guest-contact-message-photo,
.public-oak-app .guest-contact-message-photo img,
.public-oak-app .guest-contact-message-photo > span { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; }
.public-oak-app .guest-contact-message-photo { flex: 0 0 32px; overflow: hidden; color: var(--oak-white); background: var(--oak-forest); box-shadow: 0 0 0 1px #bfd0c4; font: 500 .75rem var(--oak-serif); }
.public-oak-app .guest-contact-message-photo img { object-fit: cover; object-position: center; }
.public-oak-app .guest-contact-message p { max-width: calc(100% - 40px); padding: 10px 12px; color: var(--oak-ink); background: var(--oak-white); border: 1px solid var(--oak-line); border-radius: 14px 14px 14px 4px; box-shadow: 0 2px 7px rgba(31, 53, 39, .06); font-size: .76rem; }
.public-oak-app .guest-contact-choices { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 9px 12px; margin-left: 40px; }
.public-oak-app .guest-contact-choices > strong { grid-column: 1 / -1; color: var(--oak-forest-deep); font-size: .7rem; }
.public-oak-app .guest-contact-quick { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 7px; }
.public-oak-app .guest-contact-quick-link { min-height: 35px; display: inline-flex; align-items: center; gap: 6px; padding: 8px 11px; color: var(--oak-forest); background: var(--oak-white); border: 1px solid #a8bdae; border-radius: 18px; font: 750 .68rem/1 var(--oak-sans); text-decoration: none; cursor: pointer; }
.public-oak-app .guest-contact-quick-link.is-whatsapp { color: var(--oak-white); background: #218d4d; border-color: #18743e; }
.public-oak-app .guest-contact-quick-link svg { width: 15px; height: 15px; flex: none; }
.public-oak-app .guest-contact-quick-link:hover { transform: translateY(-1px); }
.public-oak-app .guest-contact-quick-link:focus-visible { outline: 3px solid rgba(36, 77, 54, .2); outline-offset: 2px; }
.public-oak-app .guest-contact-or { color: var(--oak-muted); font-size: .62rem; }
.public-oak-app .guest-contact-form { display: grid; gap: 10px; margin-left: 40px; padding: 13px; border: 1px solid var(--oak-line); border-left: 3px solid var(--oak-forest); border-radius: 6px; background: #f7f9f7; }
.public-oak-app .guest-contact-form[hidden],
.public-oak-app .guest-contact-choices[hidden],
.public-oak-app .guest-contact-file[hidden] { display: none !important; }
.public-oak-app .guest-contact-form-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.public-oak-app .guest-contact-form-head > strong { color: var(--oak-forest-deep); font-size: .78rem; }
.public-oak-app .guest-contact-form-head button { padding: 4px 0; color: var(--oak-forest); background: transparent; border: 0; font: 700 .64rem/1.2 var(--oak-sans); cursor: pointer; }
.public-oak-app .guest-contact-form label { display: grid; gap: 5px; color: var(--oak-forest-deep); font-size: .65rem; font-weight: 750; }
.public-oak-app .guest-contact-form input,
.public-oak-app .guest-contact-form textarea { width: 100%; min-height: 42px; padding: 9px 10px; color: var(--oak-ink); background: var(--oak-white); border: 1px solid #b9c8bd; border-radius: 5px; font: 500 .76rem/1.4 var(--oak-sans); }
.public-oak-app .guest-contact-form textarea { min-height: 88px; resize: vertical; }
.public-oak-app .guest-contact-form input:focus,
.public-oak-app .guest-contact-form textarea:focus { outline: 3px solid rgba(36, 77, 54, .14); border-color: var(--oak-forest); }
.public-oak-app .guest-contact-file input { min-height: 0; padding: 7px; font-size: .66rem; }
.public-oak-app .guest-contact-trap { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.public-oak-app .guest-contact-status { min-height: 0; color: var(--oak-muted); font-size: .66rem; line-height: 1.45; }
.public-oak-app .guest-contact-status:empty { display: none; }
.public-oak-app .guest-contact-status.is-success { padding: 9px 10px; color: #1d6240; background: #eaf4ed; border-left: 3px solid #2f8c58; }
.public-oak-app .guest-contact-status.is-error { padding: 9px 10px; color: #8a3128; background: #fff0ed; border-left: 3px solid #b85043; }
.public-oak-app .guest-contact-submit { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 14px; color: var(--oak-white); background: var(--oak-forest); border: 1px solid var(--oak-forest); border-radius: 5px; font: 750 .76rem/1 var(--oak-sans); cursor: pointer; }
.public-oak-app .guest-contact-submit svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.public-oak-app .guest-contact-submit:disabled { opacity: .58; cursor: wait; }
.public-oak-app .guest-contact-form > small { color: var(--oak-muted); font-size: .6rem; line-height: 1.4; }
.public-oak-app .guest-contact-phone-note { display: block; color: var(--oak-muted); font-size: .62rem; line-height: 1.45; text-align: center; }
.internal-oak-app .sidebar .guest-app-launch {
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 11px;
    margin: 0;
    padding: 15px;
    border-color: var(--oak-line);
    border-radius: 6px;
    background: #f6f8f6;
}
.internal-oak-app .sidebar .guest-app-launch-icon { width: 44px; height: 44px; border-radius: 5px; }
.internal-oak-app .sidebar .guest-app-launch-copy strong { font-size: .9rem; }
.internal-oak-app .sidebar .guest-app-launch-copy small { font-size: .61rem; }
.internal-oak-app .sidebar .guest-app-launch-link {
    grid-column: 1 / -1;
    min-height: 34px;
    justify-content: space-between;
    margin-top: 2px;
    padding: 9px 2px 0;
    color: var(--oak-forest);
    background: transparent;
    border-top: 1px solid var(--oak-line);
    border-radius: 0;
}

/* Matching navigation */
.public-oak-app .bottom-nav,
.internal-oak-app .asn-bottom-nav {
    border-top-color: var(--oak-line);
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 -8px 24px rgba(30, 53, 39, .06);
}
.public-oak-app .bottom-nav .nav-item,
.internal-oak-app .asn-bottom-nav a,
.internal-oak-app .asn-bottom-nav button { color: var(--oak-muted); }
.public-oak-app .bottom-nav .is-active,
.internal-oak-app .asn-bottom-nav .is-active { color: var(--oak-forest); }
.public-oak-app .bottom-nav .is-active::before,
.internal-oak-app .asn-bottom-nav .is-active::before { content: ""; position: absolute; top: 0; width: 28px; height: 2px; background: var(--oak-forest); }
.public-oak-app .bottom-nav .nav-item,
.internal-oak-app .asn-bottom-nav a,
.internal-oak-app .asn-bottom-nav button { position: relative; }

html[data-wo-theme="dark"] body.public-oak-app .moment-feature-state { color: #d8ecdf; background: #223229; }
html[data-wo-theme="dark"] body.public-oak-app .moment-feature-state.is-preparing { color: #f1e4be; background: #342e20; }
html[data-wo-theme="dark"] body.public-oak-app :is(.moment-feature-state.is-soon, .moment-feature-state.is-imminent) { color: #ffe2dc; background: #3b2622; }
html[data-wo-theme="dark"] body.public-oak-app .moment-feature-state.is-live { color: #101713; background: #83b795; }
html[data-wo-theme="dark"] body.public-oak-app .guest-event-media {
    color: #f2f4f1;
    background: #1d241f;
    border-color: #665a34;
    box-shadow: inset 4px 0 0 #d5b45d;
}
html[data-wo-theme="dark"] body.public-oak-app :is(.guest-flyer, .guest-flyer.is-experience) {
    color: #f2f4f1;
    background: #202b25;
    border-color: #46554d;
    box-shadow: none;
}
html[data-wo-theme="dark"] body.public-oak-app :is(.guest-event-media-head small, .guest-flyer-copy small) { color: #b6c0b9; }
html[data-wo-theme="dark"] body.public-oak-app :is(.guest-event-media-head span, .guest-flyer-copy > span) { color: #e0c776; }
html[data-wo-theme="dark"] body.public-oak-app .guest-flyer-open { color: #101713; background: #83b795; }

@media (min-width: 840px) {
    .public-oak-app main { padding-bottom: 76px; }
    .public-oak-app .bottom-nav {
        left: 50%;
        width: min(1180px, 100%);
        transform: translateX(-50%);
        grid-template-columns: repeat(5, minmax(0, 1fr));
        min-height: 68px;
        padding: 0;
        color: var(--oak-white);
        border-top: 0;
        background: var(--oak-forest-deep);
        box-shadow: none;
    }
    .public-oak-app .bottom-nav .nav-item { min-height: 68px; flex-direction: row; gap: 10px; color: rgba(255,255,255,.76); font-size: .68rem; border-right: 1px solid rgba(255,255,255,.14); }
    .public-oak-app .bottom-nav .is-active { color: var(--oak-white); background: rgba(255,255,255,.06); }
    .public-oak-app .bottom-nav .is-active::before { display: none; }
}

@media (max-width: 839px) {
    .public-oak-app .programme-status-cluster { max-width: 154px; }
    .public-oak-app .app-release-link,
    .internal-oak-app .app-release-link { min-width: 136px; padding-right: 6px; padding-left: 6px; }
    .internal-oak-app .focus-status-cluster { max-width: 148px; }
    .public-oak-app .guest-app { width: 100%; }
    .public-oak-app .hero { min-height: 78px; padding: 12px 122px 12px 16px; }
    .public-oak-app .brand { width: auto; height: 54px; }
    .public-oak-app .hero-copy { display: none; }
    .public-oak-app .language-switch { top: 18px; right: 10px; }
    .public-oak-app .language-switch button { width: 30px; }
    .public-oak-app .day-picker { padding: 14px 12px 12px; }
    .public-oak-app .day-picker-heading { margin-bottom: 7px; }
    .public-oak-app .day-picker-heading p { font-size: 1rem; }
    .public-oak-app .day-row-primary,
    .internal-oak-app .day-row-primary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .public-oak-app .day-row-more,
    .internal-oak-app .day-weekgrid .day-row-more { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .public-oak-app .day-row-more .day-button,
    .internal-oak-app .day-row-more .day-button { border-bottom: 1px solid var(--oak-line); }
    .public-oak-app .day-row-more .day-button:nth-last-child(-n + 2),
    .internal-oak-app .day-row-more .day-button:nth-last-child(-n + 2) { border-bottom: 0; }
    .public-oak-app .day-button,
    .internal-oak-app .day-button { min-height: 48px; padding: 7px 4px; }
    .public-oak-app .day-row-primary .day-button,
    .internal-oak-app .day-row-primary .day-button { min-height: 58px; }
    .public-oak-app .moment-overview { margin: 14px 0 20px; padding: 18px 14px 0; }
    .public-oak-app .moment-overview-heading { align-items: flex-start; gap: 12px; }
    .public-oak-app .moment-overview-kicker { margin-bottom: 5px; font-size: .59rem; }
    .public-oak-app .moment-overview-meta { max-width: 150px; gap: 5px; }
    .public-oak-app .moment-feature-state { min-height: 34px; padding: 7px 9px; font-size: .65rem; }
    .public-oak-app .moment-overview-meta .programme-status-cluster { grid-template-columns: 1fr; width: 100%; max-width: none; gap: 3px; }
    .public-oak-app .moment-overview-meta .programme-freshness,
    .public-oak-app .moment-overview-meta .app-release-link,
    .public-oak-app .moment-overview-meta .app-status-open { grid-column: 1; justify-self: end; }
    .public-oak-app .moment-overview-meta .programme-freshness { max-width: 150px; }
    .public-oak-app .moment-overview-heading h2,
    .internal-oak-app .section-head-copy h2 { font-size: 1.65rem; }
    .public-oak-app .daily-motto,
    .internal-oak-app .focus-daily { grid-template-columns: 1fr; gap: 3px; }
    .public-oak-app .daily-motto > span,
    .internal-oak-app .focus-daily span { white-space: normal; }
    .public-oak-app .moment-session,
    .public-oak-app .moment-session.is-distant {
        min-height: 0;
        grid-template-columns: minmax(0, 1fr) 36px;
        grid-template-rows: auto auto auto;
        gap: 10px 8px;
        margin: 14px 0 20px;
        padding: 0;
        overflow: hidden;
        border: 1px solid var(--oak-line);
        border-radius: 6px;
        box-shadow: none;
    }
    .public-oak-app .moment-room-media,
    .public-oak-app .moment-session.is-distant .moment-room-media { grid-column: 1 / -1; grid-row: 1; height: 220px; border-radius: 0; }
    .public-oak-app .moment-content,
    .public-oak-app .moment-session.is-distant .moment-content { grid-column: 1 / -1; grid-row: 2; align-self: start; padding: 16px 52px 0 16px; }
    .public-oak-app .moment-session-top { gap: 10px; }
    .public-oak-app .moment-inline-time { padding: 7px 10px; font-size: 1.65rem; }
    .public-oak-app .moment-host-identity { gap: 8px; }
    .public-oak-app .moment-host-copy strong { font-size: .82rem; }
    .public-oak-app .moment-host-copy span { font-size: .65rem; }
    .public-oak-app .moment-session.is-distant .moment-avatars { width: auto; }
    .public-oak-app .moment-session.is-distant .moment-avatars img,
    .public-oak-app .moment-session.is-distant .moment-avatars .session-avatar-photo,
    .public-oak-app .moment-session.is-distant .moment-avatars .session-avatar-fallback { width: 42px; height: 42px; font-size: .9rem; }
    .public-oak-app .moment-main { margin-top: 14px; }
    .public-oak-app .moment-main > strong,
    .public-oak-app .moment-session.is-distant .moment-main > strong { font-size: 1.08rem; }
    .public-oak-app .moment-facts,
    .public-oak-app .moment-session.is-distant .moment-facts { grid-column: 1 / -1; grid-row: 3; padding: 12px 52px 18px 16px; border-top: 1px solid var(--oak-line); }
    .public-oak-app .moment-status-row { align-items: flex-start; gap: 8px; }
    .public-oak-app .moment-start-detail { max-width: 55%; font-size: .62rem; }
    .public-oak-app .moment-chevron,
    .public-oak-app .moment-session.is-distant .moment-chevron { grid-column: 2; grid-row: 2 / span 2; align-self: center; }
    .internal-oak-app .app-shell { width: calc(100% - 20px); padding-top: 18px; }
    .internal-oak-app .page-heading h1 { font-size: 1.82rem; }
    .internal-oak-app .focus-band { padding: 17px 12px; }
    .internal-oak-app .focus-grid:not(.is-parallel) .focus-session,
    .internal-oak-app .focus-grid.is-parallel .focus-session { grid-template-columns: 1fr; }
    .internal-oak-app .focus-grid:not(.is-parallel) .focus-room-media,
    .internal-oak-app .focus-grid.is-parallel .focus-room-media { height: 220px; min-height: 220px; }
    .internal-oak-app .focus-session-body { padding: 16px; }
    .internal-oak-app .focus-time { padding: 7px 10px; font-size: 1.65rem; }
    .internal-oak-app .focus-avatar { width: 42px; height: 42px; }
    .internal-oak-app .schedule-header { padding: 14px 12px; }
    .public-oak-app .ritual-cue,
    .internal-oak-app .ritual-cue { grid-template-columns: 60px minmax(0, 1fr) 30px; min-height: 72px; }
    .public-oak-app .ritual-cue-clock b,
    .internal-oak-app .ritual-cue-clock b { font-size: 1.6rem; }
    .public-oak-app .ritual-cue-copy,
    .internal-oak-app .ritual-cue-copy { padding: 10px; }
    .public-oak-app .ritual-cue-copy strong,
    .internal-oak-app .ritual-cue-copy strong { font-size: .74rem; }
    .public-oak-app .ritual-cue-signal,
    .internal-oak-app .ritual-cue-signal { gap: 2px; padding-right: 5px; }
}

@media (max-width: 420px) {
    .public-oak-app .hero { padding-right: 112px; }
    .public-oak-app .brand { width: auto; height: 52px; }
    .public-oak-app .language-switch button { width: 28px; font-size: .62rem; }
    .public-oak-app .day-button strong,
    .internal-oak-app .day-button strong { font-size: .7rem; }
    .public-oak-app .day-button span,
    .internal-oak-app .day-button span { font-size: .56rem; }
    .public-oak-app .moment-room-media { height: 220px; }
    .internal-oak-app .focus-grid:not(.is-parallel) .focus-room-media,
    .internal-oak-app .focus-grid.is-parallel .focus-room-media { height: 220px; min-height: 220px; }
    .public-oak-app .moment-session-top { gap: 8px; }
    .public-oak-app .moment-inline-time { padding: 7px 8px; font-size: 1.45rem; }
    .public-oak-app .moment-host-identity { flex: 1 1 auto; gap: 6px; }
    .public-oak-app .moment-session.is-distant .moment-avatars { width: auto; }
    .public-oak-app .moment-session.is-distant .moment-avatars img,
    .public-oak-app .moment-session.is-distant .moment-avatars .session-avatar-photo,
    .public-oak-app .moment-session.is-distant .moment-avatars .session-avatar-fallback { width: 38px; height: 38px; }
    .public-oak-app .moment-host-copy strong { font-size: .75rem; }
    .public-oak-app .moment-host-copy span { font-size: .6rem; }
    .public-oak-app .moment-main > strong,
    .public-oak-app .moment-session.is-distant .moment-main > strong { font-size: 1.04rem; }
    .public-oak-app .moment-overview-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
    .public-oak-app .moment-overview-heading-copy > p { font-size: .62rem; }
    .public-oak-app .moment-overview-meta { max-width: 138px; }
    .public-oak-app .moment-overview-meta .programme-freshness { max-width: 138px; font-size: .57rem; }
    .public-oak-app .moment-overview-meta .app-release-link { min-width: 132px; }
    .public-oak-app .guest-contact-hint { right: 56px; width: 188px; padding: 9px 11px; }
    .public-oak-app .guest-contact-hint strong { font-size: .72rem; }
    .public-oak-app .guest-contact-hint small { font-size: .64rem; }
}

@media (max-width: 600px) {
    .public-oak-app .guest-contact-dialog { inset: auto 0 0; width: 100%; max-width: none; max-height: min(82vh, 620px); margin: 0; border-width: 1px 0 0; border-radius: 12px 12px 0 0; }
    .public-oak-app .guest-contact-dialog[open] { animation-name: oak-contact-sheet-in; }
    .public-oak-app .guest-contact-handle { display: block; width: 42px; height: 4px; margin: 8px auto 0; border-radius: 2px; background: #c8d2ca; }
    .public-oak-app .guest-contact-dialog-head { padding-top: 12px; }
    .public-oak-app .guest-contact-choices,
    .public-oak-app .guest-contact-form { margin-left: 0; }
}

@keyframes oak-contact-sheet-in { from { opacity: 0; transform: translateY(100%); } to { opacity: 1; transform: translateY(0); } }

/* Mobile session lists use a vertical reading order so names and session facts
   remain legible without competing for narrow columns. */
@media (max-width: 719px) {
    .public-oak-app .timeline {
        border-top: 0;
    }
    .public-oak-app .timeline-row,
    .public-oak-app .timeline-row.is-compact,
    .public-oak-app .timeline-row.is-featured-session,
    .public-oak-app .timeline-row.is-live-special {
        min-height: 0;
        grid-template-columns: auto minmax(0, 1fr);
        grid-template-rows: auto auto auto;
        align-items: start;
        gap: 8px 10px;
        margin: 0;
        padding: 15px 8px 15px 12px;
        border-right: 0;
        border-left: 0;
        border-radius: 0;
        box-shadow: none;
    }
    .public-oak-app .timeline-row.is-featured-session,
    .public-oak-app .timeline-row.is-live-special {
        min-height: 0;
        margin: 7px 0;
        padding: 16px 10px 16px 14px;
        border: 1px solid #d4c28f;
        border-radius: 6px;
        box-shadow: inset 4px 0 0 var(--oak-gold);
    }
    .public-oak-app .timeline-row time,
    .public-oak-app .timeline-row.is-compact time {
        grid-column: 1;
        grid-row: 1;
        align-self: start;
        min-width: 0;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 7px;
        padding: 0 0 0 22px;
        color: var(--oak-forest-deep);
        font-size: 2.1rem;
        font-weight: 600;
        line-height: 1.05;
    }
    .public-oak-app .timeline-row time small {
        display: inline-flex;
        align-items: center;
        min-height: 24px;
        margin: 0;
        padding: 5px 8px;
        border: 1px solid #d6c37e;
        border-radius: 4px;
        font-size: .74rem;
        line-height: 1;
    }
    .public-oak-app .timeline-marker {
        position: absolute;
        top: 26px;
        left: 14px;
        width: 10px;
        height: 10px;
    }
    .public-oak-app .timeline-details {
        grid-column: 1 / -1;
        grid-row: 2;
        min-width: 0;
        display: grid;
        grid-template-columns: max-content minmax(0, 1fr);
        grid-auto-flow: row;
        align-items: center;
        gap: 6px 10px;
        padding: 0 52px 0 22px;
    }
    .public-oak-app .timeline-copy {
        display: contents;
    }
    .public-oak-app .timeline-details .session-avatars-small {
        grid-column: 1;
        grid-row: 2;
        min-width: 0;
        max-width: 156px;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 5px;
    }
    .public-oak-app .timeline-details .session-avatars-small img,
    .public-oak-app .timeline-details .session-avatars-small .session-avatar-fallback,
    .public-oak-app .timeline-details .session-avatars-small.has-three img,
    .public-oak-app .timeline-details .session-avatars-small.has-three .session-avatar-fallback {
        width: 52px;
        height: 52px;
        margin: 0;
        border-width: 1px;
        font-size: 1.02rem;
    }
    .public-oak-app .timeline-details .session-avatars-small.has-three {
        max-width: 144px;
    }
    .public-oak-app .timeline-details .session-avatars-small.has-three img,
    .public-oak-app .timeline-details .session-avatars-small.has-three .session-avatar-fallback {
        width: 44px;
        height: 44px;
    }
    .public-oak-app .timeline-details:has(.session-avatars-small.has-three) .session-avatars-small {
        grid-column: 1 / -1;
    }
    .public-oak-app .timeline-details:has(.session-avatars-small.has-three) .timeline-copy > span[data-session-host] {
        grid-column: 1 / -1;
        grid-row: 3;
        margin-top: 2px;
    }
    .public-oak-app .timeline-copy strong,
    .public-oak-app .timeline-row.is-compact .timeline-copy strong {
        grid-column: 1 / -1;
        grid-row: 1;
        color: var(--oak-ink);
        font-size: 1.22rem;
        font-weight: 700;
        line-height: 1.28;
    }
    .public-oak-app .timeline-copy > span[data-session-host],
    .public-oak-app .timeline-row.is-compact .timeline-copy > span[data-session-host] {
        grid-column: 2;
        grid-row: 2;
        align-self: center;
        margin: 0;
        color: var(--oak-muted);
        font-size: 1.04rem;
        font-weight: 650;
        line-height: 1.35;
    }
    .public-oak-app .timeline-mobile-room {
        grid-column: 1 / -1;
        display: flex;
        align-items: center;
        gap: 6px;
        margin: 1px 0 0;
        color: var(--oak-forest-deep);
        font-size: 1.04rem;
        font-weight: 750;
        line-height: 1.35;
    }
    .public-oak-app .timeline-mobile-room::before {
        width: 7px;
        height: 7px;
        box-shadow: 0 0 0 3px var(--oak-sage);
    }
    .public-oak-app .timeline-copy .timeline-live-with {
        grid-column: 1 / -1;
        justify-self: start;
        margin: 2px 0 0;
        padding: 7px 9px;
        font-size: .88rem;
        line-height: 1.35;
    }
    .public-oak-app .timeline-copy .timeline-facts {
        grid-column: 1 / -1;
        gap: 5px 10px;
        margin: 2px 0 0;
        font-size: .88rem;
        line-height: 1.4;
    }
    .public-oak-app .timeline-copy .timeline-facts span + span::before {
        content: "";
        margin: 0;
    }
    .public-oak-app .timeline-room {
        display: none;
    }
    .public-oak-app .timeline-state {
        grid-column: 2;
        grid-row: 1;
        justify-self: start;
        align-self: center;
        min-height: 30px;
        max-width: 100%;
        margin: 0;
        display: inline-flex;
        align-items: center;
        padding: 6px 9px;
        font-size: .8rem;
        line-height: 1.2;
        white-space: normal;
    }
    .public-oak-app .timeline-state[hidden] {
        display: none;
    }
    .public-oak-app .timeline-row > .chevron {
        position: absolute;
        top: 50%;
        right: 8px;
        width: 42px;
        height: 42px;
        display: grid;
        place-items: center;
        border: 1px solid var(--oak-line-strong);
        border-radius: 50%;
        color: var(--oak-forest-deep);
        font-size: 1.55rem;
        line-height: 1;
        transform: translateY(-50%);
    }
    .public-oak-app .timeline-journey {
        grid-column: 1 / -1;
        grid-row: 3;
        margin: 4px 8px 0 22px;
        font-size: .64rem;
    }
    .public-oak-app .timeline-row[data-stage="preparing"],
    .public-oak-app .timeline-row[data-stage="soon"],
    .public-oak-app .timeline-row[data-stage="imminent"],
    .public-oak-app .timeline-row[data-stage="live"],
    .public-oak-app .timeline-row[data-stage="afterglow"] {
        padding-bottom: 16px;
    }

    .internal-oak-app .session-list {
        padding-right: 12px;
        padding-left: 12px;
    }
    .internal-oak-app .session-row,
    .internal-oak-app .session-row.is-compact,
    .internal-oak-app .session-row.is-current-focus,
    .internal-oak-app .session-row.is-live-special {
        min-height: 0;
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: auto auto auto auto auto auto;
        align-items: start;
        gap: 0;
        margin: 0;
        padding: 16px 64px 16px 14px;
        border-right: 0;
        border-left: 0;
        border-radius: 0;
        box-shadow: none;
    }
    .internal-oak-app .session-row.is-current-focus,
    .internal-oak-app .session-row.is-live-special {
        min-height: 0;
        margin: 7px 0;
        padding: 17px 64px 17px 14px;
        border: 1px solid #b9cbbf;
        border-radius: 6px;
        box-shadow: inset 4px 0 0 var(--oak-forest);
    }
    .internal-oak-app .session-row::before,
    .internal-oak-app .session-row.is-current-focus::before,
    .internal-oak-app .session-row.is-live-special::before {
        top: 27px;
        bottom: auto;
        left: 15px;
        width: 10px;
        height: 10px;
        display: block;
        border-radius: 50%;
        box-shadow: 0 0 0 4px var(--oak-sage);
    }
    .internal-oak-app .session-time {
        grid-column: 1;
        grid-row: 1;
        align-self: start;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 7px;
        padding: 0 0 0 22px;
        color: var(--oak-forest-deep);
        font-size: 2.1rem;
        font-weight: 600;
        line-height: 1.05;
    }
    .internal-oak-app .session-time small {
        margin: 0;
        padding: 4px 7px;
        border: 1px solid #d6c37e;
        border-radius: 4px;
        font-size: .74rem;
        line-height: 1;
    }
    .internal-oak-app .session-main {
        grid-column: 1;
        grid-row: 2;
        min-width: 0;
        margin-top: 10px;
        padding-left: 22px;
    }
    .internal-oak-app .session-main strong {
        color: var(--oak-ink);
        font-size: 1.22rem;
        line-height: 1.28;
    }
    .internal-oak-app .session-meta {
        grid-column: 1;
        grid-row: 5;
        gap: 6px 10px;
        margin: 9px 0 0;
        padding-left: 22px;
    }
    .internal-oak-app .session-meta > span,
    .internal-oak-app .session-meta > .session-source {
        min-height: 32px;
        padding: 6px 9px;
        font-size: .8rem;
        line-height: 1.25;
    }
    .internal-oak-app .session-meta > .session-source.is-main {
        display: none;
    }
    .internal-oak-app .session-meta > .session-fact {
        min-height: 0;
        padding: 0;
        font-size: .88rem;
        line-height: 1.4;
    }
    .internal-oak-app .session-info-button {
        position: absolute;
        top: 50%;
        right: 9px;
        width: 42px;
        height: 42px;
        min-height: 42px;
        display: grid;
        place-items: center;
        justify-content: center;
        margin: 0;
        padding: 0;
        border-radius: 50%;
        transform: translateY(-50%);
    }
    .internal-oak-app .session-info-button .session-info-arrow {
        font-size: 1.55rem;
        line-height: 1;
    }
    .internal-oak-app .session-hosts {
        grid-column: 1;
        grid-row: 3;
        grid-template-columns: auto minmax(0, 1fr);
        gap: 10px;
        margin: 10px 0 0;
        padding-left: 22px;
    }
    .internal-oak-app .session-avatar,
    .internal-oak-app .session-row.is-compact .session-avatar,
    .internal-oak-app .session-row.is-current-focus .session-avatar {
        width: 52px;
        height: 52px;
        font-size: 1.02rem;
    }
    .internal-oak-app .session-avatars {
        flex-wrap: wrap;
        gap: 5px;
    }
    .internal-oak-app .session-hosts:has(.session-avatar:nth-child(3)) {
        grid-template-columns: minmax(0, 1fr);
    }
    .internal-oak-app .session-person {
        color: var(--oak-ink);
        font-size: 1.04rem;
        line-height: 1.35;
    }
    .internal-oak-app .session-person small {
        margin-top: 4px;
        color: var(--oak-muted);
        font-size: .82rem;
        line-height: 1.35;
    }
    .internal-oak-app .session-room {
        grid-column: 1;
        grid-row: 4;
        margin-top: 9px;
        padding-left: 22px;
        font-size: 1.04rem;
        line-height: 1.35;
    }
    .internal-oak-app .row-journey {
        position: relative;
        grid-column: 1;
        grid-row: 6;
        left: auto;
        right: auto;
        bottom: auto;
        height: auto;
        margin: 10px 0 0 22px;
        padding-top: 15px;
        font-size: .53rem;
    }
    .internal-oak-app .row-journey i {
        top: -14px;
    }
    .internal-oak-app .row-journey b {
        position: static;
        width: auto;
        height: auto;
        max-width: 100%;
        margin: 0;
        overflow: visible;
        clip-path: none;
        white-space: normal;
        line-height: 1.15;
        overflow-wrap: anywhere;
    }
    .internal-oak-app .session-row[data-stage="preparing"],
    .internal-oak-app .session-row[data-stage="soon"],
    .internal-oak-app .session-row[data-stage="live"],
    .internal-oak-app .session-row[data-stage="afterglow"] {
        padding-bottom: 17px;
    }
}

@media (max-width: 719px) {
    body.internal-oak-app .focus-band {
        margin-bottom: 22px;
        padding: 18px 0;
        border: 0;
        border-bottom: 1px solid var(--oak-line);
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }

    body.internal-oak-app .focus-session,
    body.internal-oak-app .focus-session:is(.is-preparing, .is-soon, .is-imminent, .is-live, .is-live-special) {
        border: 0;
        border-bottom: 1px solid var(--oak-line);
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }

    body.internal-oak-app .focus-session::after {
        display: none;
    }

    body.public-oak-app .timeline-row,
    body.public-oak-app .timeline-row:is(.is-compact, .is-featured-session, .is-live-special, .is-live, .is-unassigned, .is-past, .is-afterglow, .is-soon, .is-preparing, .is-imminent, .is-completed),
    body.internal-oak-app .session-row,
    body.internal-oak-app .session-row:is(.is-compact, .is-current-focus, .is-live-special, .is-unassigned, .is-completed),
    body.internal-oak-app .session-row[data-stage] {
        min-height: 0;
        margin: 0;
        border: 0;
        border-bottom: 1px solid var(--oak-line);
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }

    body.internal-oak-app .session-row,
    body.internal-oak-app .session-row:is(.is-compact, .is-current-focus, .is-live-special),
    body.internal-oak-app .session-row[data-stage] {
        padding-top: 17px;
        padding-right: 6px;
        padding-bottom: 17px;
        padding-left: 16px;
    }

    body.public-oak-app .timeline-row .timeline-start-signal,
    body.internal-oak-app .session-row .row-start-signal {
        min-height: 0;
        grid-template-columns: auto minmax(0, 1fr);
        gap: 8px;
        margin: 7px 0 0;
        padding: 7px 0 0;
        border: 0;
        border-top: 1px solid var(--oak-line);
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }

    body.public-oak-app .timeline-row .timeline-start-signal::after,
    body.internal-oak-app .session-row .row-start-signal::after,
    body.public-oak-app .timeline-row .timeline-start-signal .ritual-cue-signal,
    body.internal-oak-app .session-row .row-start-signal .ritual-cue-signal {
        display: none;
    }

    body.public-oak-app .timeline-row .timeline-start-signal .ritual-cue-clock,
    body.internal-oak-app .session-row .row-start-signal .ritual-cue-clock,
    body.public-oak-app .timeline-row .timeline-start-signal:is(.is-soon, .is-imminent, .is-live, .is-afterglow) .ritual-cue-clock,
    body.internal-oak-app .session-row .row-start-signal:is(.is-soon, .is-imminent, .is-live, .is-afterglow) .ritual-cue-clock {
        width: auto;
        height: auto;
        min-width: 0;
        display: inline-flex;
        flex-direction: row;
        align-items: baseline;
        justify-content: flex-start;
        gap: 3px;
        padding: 0;
        color: var(--oak-forest);
        background: transparent;
        border: 0;
        border-radius: 0;
        font-family: var(--oak-sans);
    }

    body.public-oak-app .timeline-row .timeline-start-signal .ritual-cue-clock b,
    body.internal-oak-app .session-row .row-start-signal .ritual-cue-clock b {
        font-size: .72rem;
        font-weight: 850;
        line-height: 1.15;
    }

    body.public-oak-app .timeline-row .timeline-start-signal .ritual-cue-clock small,
    body.internal-oak-app .session-row .row-start-signal .ritual-cue-clock small {
        margin: 0;
        font-size: .52rem;
        line-height: 1;
    }

    body.public-oak-app .timeline-row .timeline-start-signal .ritual-cue-copy,
    body.internal-oak-app .session-row .row-start-signal .ritual-cue-copy {
        display: block;
        padding: 0;
    }

    body.public-oak-app .timeline-row .timeline-start-signal .ritual-cue-copy small,
    body.internal-oak-app .session-row .row-start-signal .ritual-cue-copy small {
        display: none;
    }

    body.public-oak-app .timeline-row .timeline-start-signal .ritual-cue-copy strong,
    body.internal-oak-app .session-row .row-start-signal .ritual-cue-copy strong,
    body.public-oak-app .timeline-row .timeline-start-signal:is(.is-soon, .is-imminent, .is-live, .is-afterglow) .ritual-cue-copy strong,
    body.internal-oak-app .session-row .row-start-signal:is(.is-soon, .is-imminent, .is-live, .is-afterglow) .ritual-cue-copy strong {
        color: var(--oak-muted);
        font-family: var(--oak-sans);
        font-size: .64rem;
        font-weight: 650;
        line-height: 1.2;
    }
}

.public-oak-app .timeline-row.is-unassigned {
    background: var(--oak-sage);
    box-shadow: inset 3px 0 0 #6e9b7c;
}
.public-oak-app .timeline-confirmation {
    display: grid;
    gap: 3px;
    margin-top: 6px;
}
.public-oak-app .timeline-confirmation b {
    color: var(--oak-forest);
    font-size: .78rem;
    font-weight: 850;
    line-height: 1.25;
}
.public-oak-app .timeline-confirmation > span {
    margin: 0;
    color: var(--oak-muted);
    font-size: .7rem;
    line-height: 1.3;
}
.public-oak-app .session-avatar-fallback.is-unassigned,
.public-oak-app .calendar-session-avatars > .is-unassigned {
    color: var(--oak-forest);
    background: var(--oak-sage-strong);
    font-family: var(--oak-sans);
    font-size: 1rem;
}
.public-oak-app .moment-host-identity.is-unassigned .moment-host-copy strong,
.public-oak-app .calendar-session-host.is-unassigned b,
.public-oak-app .detail-host-confirmation b {
    color: var(--oak-forest);
}
.public-oak-app .calendar-session-host.is-unassigned,
.public-oak-app .detail-host-confirmation {
    display: grid;
    gap: 2px;
}
.public-oak-app .calendar-session-host.is-unassigned b,
.public-oak-app .calendar-session-host.is-unassigned span,
.public-oak-app .detail-host-confirmation b,
.public-oak-app .detail-host-confirmation span {
    display: block;
    line-height: 1.3;
}
.public-oak-app .calendar-session-host.is-unassigned span,
.public-oak-app .detail-host-confirmation span {
    color: var(--oak-muted);
    font-size: .76rem;
    font-weight: 600;
}
.internal-oak-app .session-row.is-unassigned {
    background: var(--oak-sage);
    box-shadow: inset 3px 0 0 #6e9b7c;
}
.internal-oak-app .session-row.is-unassigned::before { display: none; }
.internal-oak-app .session-row.is-unassigned .session-avatar.is-fallback {
    color: var(--oak-forest);
    background: var(--oak-sage-strong);
    border-color: #9cb8a5;
    font-family: var(--oak-sans);
    text-shadow: none;
}
.internal-oak-app .focus-avatar.is-fallback.is-unassigned {
    color: var(--oak-forest);
    background: var(--oak-sage-strong);
    border-color: #9cb8a5;
    font-family: var(--oak-sans);
    text-shadow: none;
}
.internal-oak-app .session-assignment-status {
    display: grid;
    gap: 3px;
}
.internal-oak-app .session-assignment-status strong {
    color: var(--oak-forest);
    font-size: .92rem;
    line-height: 1.25;
}
.internal-oak-app .session-assignment-status small {
    margin: 0;
    color: var(--oak-muted);
    font-size: .76rem;
    font-weight: 650;
    line-height: 1.3;
}
.internal-oak-app .experience-dialog-host .session-assignment-status strong,
.internal-oak-app .experience-dialog-host .session-assignment-status small {
    display: block;
}

@media (max-width: 359px) {
    .public-oak-app .timeline-row,
    .public-oak-app .timeline-row.is-compact,
    .public-oak-app .timeline-row.is-featured-session,
    .public-oak-app .timeline-row.is-live-special {
        grid-template-columns: auto minmax(0, 1fr);
        column-gap: 8px;
        padding-right: 7px;
    }
    .public-oak-app .timeline-details {
        gap: 6px 8px;
    }
    .public-oak-app .timeline-row > .chevron {
        width: 38px;
        height: 38px;
    }
    .internal-oak-app .session-row,
    .internal-oak-app .session-row.is-compact,
    .internal-oak-app .session-row.is-current-focus,
    .internal-oak-app .session-row.is-live-special {
        grid-template-columns: minmax(0, 1fr);
        padding-right: 56px;
        padding-left: 10px;
    }
    .internal-oak-app .session-row::before,
    .internal-oak-app .session-row.is-current-focus::before,
    .internal-oak-app .session-row.is-live-special::before { left: 11px; }
    .internal-oak-app .session-info-button { right: 7px; width: 38px; height: 38px; min-height: 38px; }
}

@media (prefers-reduced-motion: reduce) {
    .public-oak-app .ritual-cue::after,
    .internal-oak-app .ritual-cue::after,
    .public-oak-app .ritual-cue-signal i,
    .internal-oak-app .ritual-cue-signal i { animation: none; }
}

/* Compacte sessiestatus: een enkel signaal vervangt badges en vier kleine faselabels. */
@keyframes oakLiveDotPulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(51, 115, 75, .28); transform: scale(.92); }
    50% { box-shadow: 0 0 0 7px rgba(51, 115, 75, 0); transform: scale(1.08); }
}

.public-oak-app .timeline-row .timeline-journey,
.internal-oak-app .session-row .row-journey { display: none !important; }

.public-oak-app .ritual-cue.is-inline-signal,
.internal-oak-app .ritual-cue.is-inline-signal {
    min-height: 54px;
    grid-template-columns: 44px minmax(0, 1fr) 22px;
    gap: 11px;
    padding: 9px 2px 10px 0;
    border: 0;
    border-top: 1px solid var(--start-rail-line);
    border-bottom: 1px solid var(--start-rail-line);
}
.public-oak-app .ritual-cue.is-inline-signal::after,
.internal-oak-app .ritual-cue.is-inline-signal::after {
    height: 2px;
    opacity: .72;
    animation-duration: 2.4s;
}
.public-oak-app .ritual-cue.is-inline-signal .ritual-cue-clock,
.internal-oak-app .ritual-cue.is-inline-signal .ritual-cue-clock,
.public-oak-app .ritual-cue.is-inline-signal:is(.is-soon, .is-imminent, .is-live, .is-afterglow) .ritual-cue-clock,
.internal-oak-app .ritual-cue.is-inline-signal:is(.is-soon, .is-imminent, .is-live, .is-afterglow) .ritual-cue-clock {
    width: 42px;
    height: 42px;
    min-width: 42px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1px;
    padding: 0;
    background: var(--start-rail-soft);
    border: 1px solid var(--start-rail-line);
    border-radius: 50%;
}
.public-oak-app .ritual-cue.is-inline-signal .ritual-cue-clock::before,
.internal-oak-app .ritual-cue.is-inline-signal .ritual-cue-clock::before { display: none; }
.public-oak-app .ritual-cue.is-inline-signal.is-live .ritual-cue-clock b,
.internal-oak-app .ritual-cue.is-inline-signal.is-live .ritual-cue-clock b {
    width: 10px;
    height: 10px;
    display: block;
    border-radius: 50%;
    background: var(--start-rail-accent);
    animation: oakLiveDotPulse 1.35s ease-in-out infinite;
}
.public-oak-app .ritual-cue.is-inline-signal .ritual-cue-copy,
.internal-oak-app .ritual-cue.is-inline-signal .ritual-cue-copy { gap: 3px; }
.public-oak-app .ritual-cue.is-inline-signal .ritual-cue-copy small,
.internal-oak-app .ritual-cue.is-inline-signal .ritual-cue-copy small,
.public-oak-app .ritual-cue.is-inline-signal:is(.is-soon, .is-imminent, .is-live, .is-afterglow) .ritual-cue-copy small,
.internal-oak-app .ritual-cue.is-inline-signal:is(.is-soon, .is-imminent, .is-live, .is-afterglow) .ritual-cue-copy small {
    font-size: .66rem;
    line-height: 1.1;
    letter-spacing: 0;
}
.public-oak-app .ritual-cue.is-inline-signal .ritual-cue-copy strong,
.internal-oak-app .ritual-cue.is-inline-signal .ritual-cue-copy strong,
.public-oak-app .ritual-cue.is-inline-signal:is(.is-soon, .is-imminent, .is-live, .is-afterglow) .ritual-cue-copy strong,
.internal-oak-app .ritual-cue.is-inline-signal:is(.is-soon, .is-imminent, .is-live, .is-afterglow) .ritual-cue-copy strong {
    font-size: .92rem;
    line-height: 1.25;
    overflow-wrap: break-word;
    word-break: normal;
}
.public-oak-app .ritual-cue.is-inline-signal.is-afterglow,
.internal-oak-app .ritual-cue.is-inline-signal.is-afterglow {
    --start-rail-accent: #567661;
    --start-rail-soft: #edf3ef;
    --start-rail-line: #c5d4c9;
    --start-rail-text: #31503b;
}
.public-oak-app .ritual-cue.is-inline-signal.is-afterglow::after,
.internal-oak-app .ritual-cue.is-inline-signal.is-afterglow::after {
    width: 100%;
    opacity: .35;
    animation: none;
}
.public-oak-app .ritual-cue.is-inline-signal.is-afterglow .ritual-cue-signal,
.internal-oak-app .ritual-cue.is-inline-signal.is-afterglow .ritual-cue-signal { display: none; }

html[data-wo-theme="dark"] body.public-oak-app .ritual-cue.is-inline-signal.is-afterglow,
html[data-wo-theme="dark"] body.internal-oak-app .ritual-cue.is-inline-signal.is-afterglow {
    --start-rail-accent: #9bc5a8;
    --start-rail-soft: #23352a;
    --start-rail-line: #496553;
    --start-rail-text: #e2f0e6;
    color: var(--start-rail-accent);
    background: transparent;
    border-color: var(--start-rail-line);
}

@media (max-width: 719px) {
    .public-oak-app .timeline-row[data-stage="preparing"],
    .public-oak-app .timeline-row[data-stage="soon"],
    .public-oak-app .timeline-row[data-stage="imminent"],
    .public-oak-app .timeline-row[data-stage="live"],
    .public-oak-app .timeline-row[data-stage="afterglow"],
    .internal-oak-app .session-row[data-stage="preparing"],
    .internal-oak-app .session-row[data-stage="soon"],
    .internal-oak-app .session-row[data-stage="imminent"],
    .internal-oak-app .session-row[data-stage="live"],
    .internal-oak-app .session-row[data-stage="afterglow"] { padding-bottom: 13px; }

    .public-oak-app .ritual-cue.is-inline-signal,
    .internal-oak-app .ritual-cue.is-inline-signal {
        grid-template-columns: 42px minmax(0, 1fr) 20px;
        gap: 9px;
        margin-top: 11px;
    }
    .public-oak-app .ritual-cue.is-inline-signal .ritual-cue-clock,
    .internal-oak-app .ritual-cue.is-inline-signal .ritual-cue-clock,
    .public-oak-app .ritual-cue.is-inline-signal:is(.is-soon, .is-imminent, .is-live, .is-afterglow) .ritual-cue-clock,
    .internal-oak-app .ritual-cue.is-inline-signal:is(.is-soon, .is-imminent, .is-live, .is-afterglow) .ritual-cue-clock {
        width: 40px;
        height: 40px;
        min-width: 40px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .public-oak-app .ritual-cue.is-inline-signal.is-live .ritual-cue-clock b,
    .internal-oak-app .ritual-cue.is-inline-signal.is-live .ritual-cue-clock b { animation: none; }
}

@media (prefers-reduced-motion: reduce) {
    .white-oak-modern *,
    .white-oak-modern *::before,
    .white-oak-modern *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}

.public-oak-app .timeline {
    display: grid;
    gap: 10px;
    padding: 8px 0 2px;
    border-top: 0;
}
.public-oak-app .timeline-row,
.public-oak-app .timeline-row.is-compact,
.public-oak-app .timeline-row.is-featured-session,
.public-oak-app .timeline-row.is-live-special {
    position: relative;
    min-height: 108px;
    display: grid;
    grid-template-columns: 76px minmax(0, 1fr) auto 38px;
    grid-template-rows: auto auto auto auto auto;
    grid-template-areas:
        "time copy avatars action"
        "time copy avatars action"
        "time state avatars action"
        "signal signal signal signal"
        "journey journey journey journey";
    align-items: center;
    gap: 5px 14px;
    margin: 0;
    padding: 14px 14px 14px 20px;
    overflow: hidden;
    color: var(--oak-ink);
    background: var(--oak-white);
    border: 1px solid var(--oak-line);
    border-radius: 8px;
    box-shadow: none;
}
.public-oak-app .timeline-row:hover { background: #f7f9f7; }
.public-oak-app .timeline-row time,
.public-oak-app .timeline-row.is-compact time {
    grid-area: time;
    align-self: start;
    min-width: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    padding: 2px 0 0;
    color: var(--oak-forest-deep);
    font: 600 1.58rem/1 var(--oak-serif);
}
.public-oak-app .timeline-row time small {
    display: inline-flex;
    align-items: center;
    min-height: 21px;
    margin: 0;
    padding: 4px 6px;
    color: #765b18;
    background: var(--oak-gold-soft);
    border: 1px solid #d8c47d;
    border-radius: 4px;
    font: 850 .58rem/1 var(--oak-sans);
}
.public-oak-app .timeline-marker {
    position: absolute;
    top: 21px;
    left: 9px;
    width: 8px;
    height: 8px;
}
.public-oak-app .timeline-details { display: contents; }
.public-oak-app .timeline-details .session-avatars-small {
    grid-area: avatars;
    min-width: 0;
    max-width: 176px;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 5px;
}
.public-oak-app .timeline-details .session-avatars-small img,
.public-oak-app .timeline-details .session-avatars-small .session-avatar-photo,
.public-oak-app .timeline-details .session-avatars-small .session-avatar-fallback {
    width: 58px;
    height: 58px;
    margin: 0;
    border-width: 1px;
    font-size: 1.12rem;
}
.public-oak-app .timeline-details .session-avatars-small:has(> :nth-child(2)) img,
.public-oak-app .timeline-details .session-avatars-small:has(> :nth-child(2)) .session-avatar-photo,
.public-oak-app .timeline-details .session-avatars-small:has(> :nth-child(2)) .session-avatar-fallback {
    width: 50px;
    height: 50px;
    font-size: 1rem;
}
.public-oak-app .timeline-details .session-avatars-small.has-three img,
.public-oak-app .timeline-details .session-avatars-small.has-three .session-avatar-photo,
.public-oak-app .timeline-details .session-avatars-small.has-three .session-avatar-fallback {
    width: 40px;
    height: 40px;
    font-size: .85rem;
}
.public-oak-app .timeline-copy {
    grid-area: copy;
    min-width: 0;
    display: grid;
    justify-items: start;
    align-content: center;
    gap: 5px;
}
.public-oak-app .timeline-copy strong,
.public-oak-app .timeline-row.is-compact .timeline-copy strong {
    color: var(--oak-forest);
    font: 800 .8rem/1.3 var(--oak-sans);
}
.public-oak-app .timeline-copy > span[data-session-host],
.public-oak-app .timeline-row.is-compact .timeline-copy > span[data-session-host] {
    margin: 0;
    color: var(--oak-ink);
    font: 700 1.08rem/1.2 var(--oak-serif);
}
.public-oak-app .timeline-confirmation {
    gap: 2px;
    margin: 0;
}
.public-oak-app .timeline-confirmation b { font-size: .78rem; }
.public-oak-app .timeline-confirmation > span { font-size: .75rem; }
.public-oak-app .timeline-mobile-room {
    width: max-content;
    max-width: 100%;
    min-height: 24px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    padding: 4px 8px;
    color: var(--oak-forest-deep);
    background: var(--oak-sage);
    border: 1px solid #c7d7cc;
    border-radius: 5px;
    font: 800 .7rem/1.15 var(--oak-sans);
}
.public-oak-app .timeline-mobile-room::before {
    content: "";
    width: 6px;
    height: 6px;
    flex: 0 0 6px;
    border-radius: 50%;
    background: currentColor;
    box-shadow: none;
}
.public-oak-app .timeline-row[data-room*="stoombad" i] .timeline-mobile-room,
.public-oak-app .timeline-row[data-room*="hamam" i] .timeline-mobile-room {
    color: #9e493c;
    background: var(--oak-coral-soft);
    border-color: #e2b9b0;
}
.public-oak-app .timeline-row[data-room*="panorama" i] .timeline-mobile-room {
    color: #3e6377;
    background: #edf5f8;
    border-color: #bfd5df;
}
.public-oak-app .timeline-row[data-room*="shou" i] .timeline-mobile-room {
    color: #655487;
    background: #f2eef8;
    border-color: #d5cae5;
}
.public-oak-app .timeline-row[data-room*="barn" i] .timeline-mobile-room {
    color: #705628;
    background: var(--oak-gold-soft);
    border-color: #dccb9d;
}
.public-oak-app .timeline-row[data-room*="forest" i] .timeline-mobile-room {
    color: #365d4c;
    background: #eef5f1;
    border-color: #8cb59f;
}
.public-oak-app .timeline-copy .timeline-facts {
    gap: 3px 9px;
    margin: 1px 0 0;
    color: var(--oak-muted);
    font-size: .71rem;
    line-height: 1.35;
}
.public-oak-app .timeline-copy .timeline-live-with {
    max-width: min(100%, 290px);
    margin: 2px 0 0;
    padding: 6px 8px;
}
.public-oak-app .timeline-live-avatars img,
.public-oak-app .timeline-live-avatars .session-avatar-fallback {
    width: 42px;
    height: 42px;
}
.public-oak-app .timeline-room { display: none; }
.public-oak-app .timeline-state {
    grid-area: state;
    justify-self: start;
    min-height: 26px;
    max-width: 100%;
    display: inline-flex;
    align-items: center;
    margin: 0;
    padding: 5px 8px;
    font-size: .66rem;
    line-height: 1.2;
    white-space: normal;
}
.public-oak-app .timeline-state[hidden] { display: none; }
.public-oak-app .timeline-row > .chevron {
    grid-area: action;
    justify-self: end;
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    color: var(--oak-forest-deep);
    border: 1px solid var(--oak-line-strong);
    border-radius: 50%;
    font-size: 1.25rem;
    line-height: 1;
}
.public-oak-app .timeline-journey {
    position: relative;
    grid-area: journey;
    left: auto;
    right: auto;
    bottom: auto;
    height: auto;
    margin: 5px 6px 0;
    padding-top: 13px;
    font-size: .5rem;
}
.public-oak-app .timeline-row .timeline-start-signal {
    grid-area: signal;
    width: 100%;
    margin: 6px 0 0;
}
.public-oak-app .timeline-row.is-featured-session,
.public-oak-app .timeline-row.is-live-special {
    border-color: #d7c78e;
    background: #fcfaf3;
    box-shadow: inset 4px 0 0 var(--oak-gold);
}
.public-oak-app .timeline-row.is-live,
.public-oak-app .timeline-row.is-featured-session.is-live {
    border-color: #9dbbaa;
    background: #eff6f1;
    box-shadow: inset 4px 0 0 #4f8e64;
}

.internal-oak-app .session-list {
    display: grid;
    gap: 10px;
    padding: 12px 16px 16px;
}
.internal-oak-app .session-row,
.internal-oak-app .session-row.is-compact,
.internal-oak-app .session-row.is-current-focus,
.internal-oak-app .session-row.is-live-special {
    position: relative;
    min-height: 108px;
    display: grid;
    grid-template-columns: 76px minmax(0, 1fr) auto 38px;
    grid-template-rows: auto auto auto auto auto auto;
    grid-template-areas:
        "time main avatars action"
        "time person avatars action"
        "time room avatars action"
        "time meta avatars action"
        "signal signal signal signal"
        "journey journey journey journey";
    align-items: center;
    gap: 4px 14px;
    margin: 0;
    padding: 14px 14px 14px 18px;
    overflow: hidden;
    color: var(--oak-ink);
    background: var(--oak-white);
    border: 1px solid var(--oak-line);
    border-radius: 8px;
    box-shadow: none;
}
.internal-oak-app .session-row:hover { background: #f7f9f7; }
.internal-oak-app .session-row::before,
.internal-oak-app .session-row.is-current-focus::before,
.internal-oak-app .session-row.is-live-special::before {
    top: 13px;
    bottom: 13px;
    left: 0;
    width: 4px;
    height: auto;
    display: block;
    border-radius: 0 4px 4px 0;
    box-shadow: none;
}
.internal-oak-app .session-row.is-hamam::before { background: var(--oak-coral); }
.internal-oak-app .session-row.is-panorama::before { background: #5f8fa8; }
.internal-oak-app .session-row.is-shou::before { background: #79679b; }
.internal-oak-app .session-row.is-barn::before { background: var(--oak-gold); }
.internal-oak-app .session-row.is-forest::before { background: #8cb59f; }
.internal-oak-app .session-time {
    grid-area: time;
    align-self: start;
    min-width: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    padding: 2px 0 0;
    color: var(--oak-forest-deep);
    font: 600 1.58rem/1 var(--oak-serif);
}
.internal-oak-app .session-time small {
    display: inline-flex;
    align-items: center;
    min-height: 21px;
    margin: 0;
    padding: 4px 6px;
    color: #765b18;
    background: var(--oak-gold-soft);
    border: 1px solid #d8c47d;
    border-radius: 4px;
    font: 850 .58rem/1 var(--oak-sans);
}
.internal-oak-app .session-main {
    grid-area: main;
    min-width: 0;
    margin: 0;
    padding: 0;
}
.internal-oak-app .session-main strong,
.internal-oak-app .session-row.is-compact .session-main strong {
    color: var(--oak-forest);
    font: 800 .8rem/1.3 var(--oak-sans);
}
.internal-oak-app .session-hosts { display: contents; }
.internal-oak-app .session-avatars {
    grid-area: avatars;
    min-width: 0;
    max-width: 176px;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 5px;
    margin: 0;
    padding: 0;
}
.internal-oak-app .session-avatar,
.internal-oak-app .session-row.is-compact .session-avatar,
.internal-oak-app .session-row.is-current-focus .session-avatar {
    width: 58px;
    height: 58px;
    margin: 0;
    border-width: 1px;
    font-size: 1.12rem;
}
.internal-oak-app .session-avatars:has(.session-avatar:nth-child(2)) .session-avatar {
    width: 50px;
    height: 50px;
    font-size: 1rem;
}
.internal-oak-app .session-avatars.has-three .session-avatar {
    width: 40px;
    height: 40px;
    font-size: .85rem;
}
.internal-oak-app .session-person {
    grid-area: person;
    min-width: 0;
    margin: 0;
    padding: 0;
    color: var(--oak-ink);
    font: 700 1.08rem/1.2 var(--oak-serif);
}
.internal-oak-app .session-person-links { gap: 2px 5px; }
.internal-oak-app .session-person small {
    margin-top: 3px;
    color: var(--oak-muted);
    font: 700 .72rem/1.3 var(--oak-sans);
}
.internal-oak-app .session-person small.is-live-partner {
    max-width: min(100%, 290px);
    margin-top: 5px;
    padding: 6px 8px;
}
.internal-oak-app .live-partner-avatar { width: 42px; height: 42px; }
.internal-oak-app .session-room {
    grid-area: room;
    justify-self: start;
    width: max-content;
    max-width: 100%;
    min-height: 24px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    padding: 4px 8px;
    color: var(--oak-forest-deep);
    background: var(--oak-sage);
    border: 1px solid #c7d7cc;
    border-radius: 5px;
    font: 800 .7rem/1.15 var(--oak-sans);
}
.internal-oak-app .session-room::before {
    width: 6px;
    height: 6px;
    flex: 0 0 6px;
    background: currentColor;
    box-shadow: none;
}
.internal-oak-app .session-row.is-hamam .session-room {
    color: #9e493c;
    background: var(--oak-coral-soft);
    border-color: #e2b9b0;
}
.internal-oak-app .session-row.is-panorama .session-room {
    color: #3e6377;
    background: #edf5f8;
    border-color: #bfd5df;
}
.internal-oak-app .session-row.is-shou .session-room {
    color: #655487;
    background: #f2eef8;
    border-color: #d5cae5;
}
.internal-oak-app .session-row.is-barn .session-room {
    color: #705628;
    background: var(--oak-gold-soft);
    border-color: #dccb9d;
}
.internal-oak-app .session-row.is-forest .session-room {
    color: #365d4c;
    background: #eef5f1;
    border-color: #8cb59f;
}
.internal-oak-app .session-meta {
    grid-area: meta;
    gap: 3px 9px;
    margin: 1px 0 0;
    padding: 0;
}
.internal-oak-app .session-meta > span,
.internal-oak-app .session-meta > .session-source {
    min-height: 0;
    padding: 0;
    border: 0;
    color: var(--oak-muted);
    background: transparent;
    font-size: .71rem;
    line-height: 1.35;
}
.internal-oak-app .session-meta > .session-source:not(.is-main) {
    min-height: 23px;
    padding: 4px 7px;
    border: 1px solid var(--oak-line);
}
.internal-oak-app .session-meta > .session-source.is-main { display: none; }
.internal-oak-app .session-info-button {
    position: static;
    grid-area: action;
    justify-self: end;
    width: 34px;
    height: 34px;
    min-height: 34px;
    display: grid;
    place-items: center;
    margin: 0;
    padding: 0;
    border-radius: 50%;
    transform: none;
}
.internal-oak-app .session-info-button .session-info-arrow {
    font-size: 1.25rem;
    line-height: 1;
}
.internal-oak-app .row-journey {
    position: relative;
    grid-area: journey;
    left: auto;
    right: auto;
    bottom: auto;
    height: auto;
    margin: 5px 6px 0;
    padding-top: 13px;
    font-size: .5rem;
}
.internal-oak-app .session-row .row-start-signal {
    grid-area: signal;
    width: 100%;
    margin: 6px 0 0;
}
.internal-oak-app .session-row.is-current-focus,
.internal-oak-app .session-row.is-live-special {
    border-color: #d7c78e;
    background: #fcfaf3;
    box-shadow: inset 4px 0 0 var(--oak-gold);
}
.internal-oak-app .session-row.is-current-focus[data-stage="live"],
.internal-oak-app .session-row[data-stage="live"] {
    border-color: #9dbbaa;
    background: #eff6f1;
    box-shadow: inset 4px 0 0 #4f8e64;
}

html[data-wo-theme="dark"] body.public-oak-app .timeline-row,
html[data-wo-theme="dark"] body.public-oak-app .timeline-row.is-compact,
html[data-wo-theme="dark"] body.internal-oak-app .session-row,
html[data-wo-theme="dark"] body.internal-oak-app .session-row.is-compact {
    color: var(--oak-ink);
    background: #1b2721;
    border-color: var(--oak-line);
}
html[data-wo-theme="dark"] body.public-oak-app .timeline-row:hover,
html[data-wo-theme="dark"] body.internal-oak-app .session-row:hover { background: #202f28; }
html[data-wo-theme="dark"] body.public-oak-app .timeline-row[data-room*="panorama" i] .timeline-mobile-room,
html[data-wo-theme="dark"] body.internal-oak-app .session-row.is-panorama .session-room {
    color: #b9dceb;
    background: #213440;
    border-color: #466373;
}
html[data-wo-theme="dark"] body.public-oak-app .timeline-row[data-room*="shou" i] .timeline-mobile-room,
html[data-wo-theme="dark"] body.internal-oak-app .session-row.is-shou .session-room {
    color: #d6c8ec;
    background: #30283a;
    border-color: #574867;
}
html[data-wo-theme="dark"] body.public-oak-app .timeline-row[data-room*="barn" i] .timeline-mobile-room,
html[data-wo-theme="dark"] body.internal-oak-app .session-row.is-barn .session-room {
    color: #ead79d;
    background: #342e20;
    border-color: #6e603a;
}
html[data-wo-theme="dark"] body.public-oak-app .timeline-row[data-room*="forest" i] .timeline-mobile-room,
html[data-wo-theme="dark"] body.internal-oak-app .session-row.is-forest .session-room {
    color: #d8ece1;
    background: #24372f;
    border-color: #557364;
}
html[data-wo-theme="dark"] body.public-oak-app .timeline-row[data-room*="stoombad" i] .timeline-mobile-room,
html[data-wo-theme="dark"] body.public-oak-app .timeline-row[data-room*="hamam" i] .timeline-mobile-room,
html[data-wo-theme="dark"] body.internal-oak-app .session-row.is-hamam .session-room {
    color: #ffc0b2;
    background: #3b2622;
    border-color: #70463e;
}

@media (max-width: 719px) {
    .public-oak-app .timeline,
    .internal-oak-app .session-list { gap: 9px; padding: 9px 0 2px; }
    .internal-oak-app .session-list { padding-right: 0; padding-left: 0; }
    .public-oak-app .timeline-row,
    .public-oak-app .timeline-row.is-compact,
    .public-oak-app .timeline-row.is-featured-session,
    .public-oak-app .timeline-row.is-live-special {
        min-height: 116px;
        grid-template-columns: 64px minmax(0, 1fr) auto 34px;
        grid-template-rows: auto auto auto auto auto;
        grid-template-areas:
            "time copy avatars action"
            "time copy avatars action"
            "time state avatars action"
            "signal signal signal signal"
            "journey journey journey journey";
        align-items: center;
        gap: 5px 9px;
        margin: 0;
        padding: 13px 9px 13px 16px;
        border: 1px solid var(--oak-line);
        border-radius: 8px;
        box-shadow: none;
    }
    .public-oak-app .timeline-row.is-featured-session,
    .public-oak-app .timeline-row.is-live-special { box-shadow: inset 4px 0 0 var(--oak-gold); }
    .public-oak-app .timeline-row.is-live,
    .public-oak-app .timeline-row.is-featured-session.is-live { box-shadow: inset 4px 0 0 #4f8e64; }
    .public-oak-app .timeline-row time,
    .public-oak-app .timeline-row.is-compact time {
        align-self: start;
        padding: 2px 0 0;
        font-size: 1.38rem;
    }
    .public-oak-app .timeline-marker { top: 20px; left: 7px; }
    .public-oak-app .timeline-details .session-avatars-small {
        grid-column: auto;
        max-width: 130px;
    }
    .public-oak-app .timeline-details .session-avatars-small img,
    .public-oak-app .timeline-details .session-avatars-small .session-avatar-photo,
    .public-oak-app .timeline-details .session-avatars-small .session-avatar-fallback {
        width: 56px;
        height: 56px;
    }
    .public-oak-app .timeline-details .session-avatars-small:has(> :nth-child(2)) img,
    .public-oak-app .timeline-details .session-avatars-small:has(> :nth-child(2)) .session-avatar-photo,
    .public-oak-app .timeline-details .session-avatars-small:has(> :nth-child(2)) .session-avatar-fallback {
        width: 44px;
        height: 44px;
    }
    .public-oak-app .timeline-details .session-avatars-small.has-three img,
    .public-oak-app .timeline-details .session-avatars-small.has-three .session-avatar-photo,
    .public-oak-app .timeline-details .session-avatars-small.has-three .session-avatar-fallback {
        width: 31px;
        height: 31px;
    }
    .public-oak-app .timeline-copy { display: grid; gap: 5px; padding: 0; }
    .public-oak-app .timeline-copy strong,
    .public-oak-app .timeline-row.is-compact .timeline-copy strong {
        grid-column: auto;
        grid-row: auto;
        font-size: .86rem;
    }
    .public-oak-app .timeline-copy > span[data-session-host],
    .public-oak-app .timeline-row.is-compact .timeline-copy > span[data-session-host] {
        grid-column: auto;
        grid-row: auto;
        font-size: 1.08rem;
    }
    .public-oak-app .timeline-mobile-room {
        grid-column: auto;
        margin: 0;
        font-size: .72rem;
    }
    .public-oak-app .timeline-copy .timeline-live-with {
        grid-column: auto;
        margin-top: 2px;
    }
    .public-oak-app .timeline-copy .timeline-facts {
        grid-column: auto;
        margin-top: 1px;
        font-size: .72rem;
    }
    .public-oak-app .timeline-state {
        grid-column: auto;
        grid-row: auto;
        align-self: center;
    }
    .public-oak-app .timeline-row > .chevron {
        position: static;
        top: auto;
        right: auto;
        width: 32px;
        height: 32px;
        transform: none;
    }
    .public-oak-app .timeline-journey {
        grid-column: auto;
        grid-row: auto;
        margin: 5px 4px 0;
    }
    .public-oak-app .timeline-row .timeline-start-signal { grid-area: signal; grid-column: 1 / -1; margin: 9px 0 0; }

    .internal-oak-app .session-row,
    .internal-oak-app .session-row.is-compact,
    .internal-oak-app .session-row.is-current-focus,
    .internal-oak-app .session-row.is-live-special {
        min-height: 116px;
        grid-template-columns: 64px minmax(0, 1fr) auto 34px;
        grid-template-rows: auto auto auto auto auto auto;
        grid-template-areas:
            "time main avatars action"
            "time person avatars action"
            "time room avatars action"
            "time meta avatars action"
            "signal signal signal signal"
            "journey journey journey journey";
        align-items: center;
        gap: 4px 9px;
        margin: 0;
        padding: 13px 9px 13px 16px;
        border: 1px solid var(--oak-line);
        border-radius: 8px;
        box-shadow: none;
    }
    .internal-oak-app .session-row.is-current-focus,
    .internal-oak-app .session-row.is-live-special { box-shadow: inset 4px 0 0 var(--oak-gold); }
    .internal-oak-app .session-row.is-current-focus[data-stage="live"],
    .internal-oak-app .session-row[data-stage="live"] { box-shadow: inset 4px 0 0 #4f8e64; }
    .internal-oak-app .session-row::before,
    .internal-oak-app .session-row.is-current-focus::before,
    .internal-oak-app .session-row.is-live-special::before {
        top: 12px;
        bottom: 12px;
        left: 0;
        width: 4px;
        height: auto;
        border-radius: 0 4px 4px 0;
    }
    .internal-oak-app .session-time {
        align-self: start;
        padding: 2px 0 0;
        font-size: 1.38rem;
    }
    .internal-oak-app .session-main { margin: 0; padding: 0; }
    .internal-oak-app .session-main strong { font-size: .86rem; }
    .internal-oak-app .session-hosts { display: contents; }
    .internal-oak-app .session-avatars {
        max-width: 130px;
        margin: 0;
        padding: 0;
    }
    .internal-oak-app .session-avatar,
    .internal-oak-app .session-row.is-compact .session-avatar,
    .internal-oak-app .session-row.is-current-focus .session-avatar {
        width: 56px;
        height: 56px;
    }
    .internal-oak-app .session-avatars:has(.session-avatar:nth-child(2)) .session-avatar {
        width: 44px;
        height: 44px;
    }
    .internal-oak-app .session-avatars.has-three .session-avatar {
        width: 31px;
        height: 31px;
    }
    .internal-oak-app .session-person {
        margin: 0;
        padding: 0;
        font-size: 1.08rem;
    }
    .internal-oak-app .session-room {
        margin: 0;
        padding: 4px 8px;
        font-size: .72rem;
    }
    .internal-oak-app .session-meta {
        margin: 1px 0 0;
        padding: 0;
    }
    .internal-oak-app .session-meta > span,
    .internal-oak-app .session-meta > .session-source { font-size: .72rem; }
    .internal-oak-app .session-info-button {
        position: static;
        top: auto;
        right: auto;
        width: 32px;
        height: 32px;
        min-height: 32px;
        transform: none;
    }
    .internal-oak-app .row-journey {
        grid-column: auto;
        grid-row: auto;
        margin: 5px 4px 0;
    }
    .internal-oak-app .session-row .row-start-signal { grid-area: signal; grid-column: 1 / -1; margin: 9px 0 0; }
}

@media (max-width: 390px) {
    .public-oak-app .timeline-row,
    .public-oak-app .timeline-row.is-compact,
    .public-oak-app .timeline-row.is-featured-session,
    .public-oak-app .timeline-row.is-live-special,
    .internal-oak-app .session-row,
    .internal-oak-app .session-row.is-compact,
    .internal-oak-app .session-row.is-current-focus,
    .internal-oak-app .session-row.is-live-special {
        grid-template-columns: 64px minmax(0, 1fr) auto 30px;
        gap: 4px 11px;
        padding-right: 7px;
        padding-left: 14px;
    }
    .public-oak-app .timeline-details .session-avatars-small:has(> :nth-child(2)) img,
    .public-oak-app .timeline-details .session-avatars-small:has(> :nth-child(2)) .session-avatar-photo,
    .public-oak-app .timeline-details .session-avatars-small:has(> :nth-child(2)) .session-avatar-fallback,
    .internal-oak-app .session-avatars:has(.session-avatar:nth-child(2)) .session-avatar {
        width: 40px;
        height: 40px;
    }
    .public-oak-app .timeline-details .session-avatars-small.has-three img,
    .public-oak-app .timeline-details .session-avatars-small.has-three .session-avatar-photo,
    .public-oak-app .timeline-details .session-avatars-small.has-three .session-avatar-fallback,
    .internal-oak-app .session-avatars.has-three .session-avatar {
        width: 27px;
        height: 27px;
    }
    .public-oak-app .timeline-row > .chevron,
    .internal-oak-app .session-info-button {
        width: 30px;
        height: 30px;
        min-height: 30px;
    }
    .public-oak-app .timeline-copy > span[data-session-host],
    .public-oak-app .timeline-row.is-compact .timeline-copy > span[data-session-host],
    .internal-oak-app .session-person { font-size: 1.04rem; }
}

@media (max-width: 359px) {
    .public-oak-app .timeline-row,
    .public-oak-app .timeline-row.is-compact,
    .public-oak-app .timeline-row.is-featured-session,
    .public-oak-app .timeline-row.is-live-special {
        grid-template-columns: 64px minmax(0, 1fr) 30px;
        grid-template-rows: auto auto auto auto auto;
        grid-template-areas:
            "time copy action"
            "time avatars action"
            "time state action"
            "signal signal signal"
            "journey journey journey";
        column-gap: 10px;
    }
    .public-oak-app .timeline-details .session-avatars-small {
        justify-content: flex-start;
        max-width: 100%;
    }
    .public-oak-app .timeline-details .session-avatars-small img,
    .public-oak-app .timeline-details .session-avatars-small .session-avatar-photo,
    .public-oak-app .timeline-details .session-avatars-small .session-avatar-fallback {
        width: 48px;
        height: 48px;
    }

    .internal-oak-app .session-row,
    .internal-oak-app .session-row.is-compact,
    .internal-oak-app .session-row.is-current-focus,
    .internal-oak-app .session-row.is-live-special {
        grid-template-columns: 64px minmax(0, 1fr) 30px;
        grid-template-rows: auto auto auto auto auto auto auto;
        grid-template-areas:
            "time main action"
            "time person action"
            "time avatars action"
            "time room action"
            "time meta action"
            "signal signal signal"
            "journey journey journey";
        column-gap: 10px;
    }
    .internal-oak-app .session-avatars {
        justify-content: flex-start;
        max-width: 100%;
    }
    .internal-oak-app .session-avatar,
    .internal-oak-app .session-row.is-compact .session-avatar,
    .internal-oak-app .session-row.is-current-focus .session-avatar {
        width: 48px;
        height: 48px;
    }
}

body.public-oak-app .timeline {
    display: block;
    gap: 0;
    padding: 0 0 2px;
    border-top: 1px solid var(--oak-line);
}
body.public-oak-app .timeline-row,
body.public-oak-app .timeline-row.is-compact,
body.public-oak-app .timeline-row.is-featured-session,
body.public-oak-app .timeline-row.is-live-special,
body.public-oak-app .timeline-row.is-special-event,
body.public-oak-app .timeline-row.is-herbal-competition,
body.public-oak-app .timeline-row.is-unassigned,
body.public-oak-app .timeline-row.is-completed,
body.public-oak-app .timeline-row[data-stage] {
    margin: 0;
    background: transparent !important;
    border: 0 !important;
    border-bottom: 1px solid var(--oak-line) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}
body.public-oak-app .timeline-row.is-herbal-competition {
    border-bottom-color: color-mix(in srgb, var(--session-accent) 34%, var(--oak-line)) !important;
}
body.public-oak-app .timeline-row.is-herbal-competition::before {
    display: none;
}
body.public-oak-app .timeline-row:last-child {
    border-bottom: 0 !important;
}
body.public-oak-app .timeline-row:hover,
body.public-oak-app .timeline-row:focus-visible {
    background: color-mix(in srgb, var(--oak-forest) 4%, transparent) !important;
}
body.public-oak-app .timeline-row.is-live {
    background: linear-gradient(90deg, transparent, color-mix(in srgb, #4f8e64 9%, transparent)) !important;
}
body.public-oak-app .timeline-row .competition-reservation,
body.public-oak-app .timeline-row .competition-color-card {
    min-height: 0;
    padding: 2px 0;
    border: 0;
    border-radius: 0;
    color: var(--oak-muted) !important;
    background: transparent;
}
body.public-oak-app .share-day-plan {
    color: #fff;
    background: #1f5941;
    border: 0;
    box-shadow: none;
}
body.public-oak-app .share-day-plan svg circle {
    fill: #fff;
}
body.public-oak-app .share-day-plan:hover {
    color: #fff;
    background: #174632;
    border-color: transparent;
}
html[data-wo-theme="dark"] body.public-oak-app .timeline-row,
html[data-wo-theme="dark"] body.public-oak-app .timeline-row.is-compact,
html[data-wo-theme="dark"] body.public-oak-app .timeline-row.is-featured-session,
html[data-wo-theme="dark"] body.public-oak-app .timeline-row.is-live-special,
html[data-wo-theme="dark"] body.public-oak-app .timeline-row.is-special-event,
html[data-wo-theme="dark"] body.public-oak-app .timeline-row.is-herbal-competition,
html[data-wo-theme="dark"] body.public-oak-app .timeline-row[data-stage] {
    background: transparent !important;
    border-bottom-color: color-mix(in srgb, var(--session-accent, #8ea194) 26%, var(--oak-line)) !important;
    box-shadow: none !important;
}
html[data-wo-theme="dark"] body.public-oak-app .timeline-row .competition-reservation,
html[data-wo-theme="dark"] body.public-oak-app .timeline-row .competition-color-card {
    color: #c7d1ca !important;
    background: transparent;
}
html[data-wo-theme="dark"] body.public-oak-app .timeline-row.is-live,
html[data-wo-theme="dark"] body.public-oak-app .timeline-row[data-stage="live"] {
    background: linear-gradient(90deg, transparent, rgba(111, 174, 132, .12)) !important;
}

.internal-oak-app .session-main .session-signature,
.public-oak-app .timeline-copy .timeline-signature {
    width: min(100%, 520px);
    min-width: 0;
    display: grid;
    grid-template-columns: 26px minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
    margin: 8px 0 1px;
    padding: 8px 9px 8px 10px;
    border-top: 1px solid #dfd3aa;
    border-left: 3px solid #b38c31;
    color: var(--oak-ink);
    background: linear-gradient(90deg, rgba(179, 140, 49, .11), rgba(76, 119, 94, .06));
}

.internal-oak-app .session-signature-mark,
.public-oak-app .timeline-signature-mark {
    width: 26px;
    height: 28px;
    display: inline-flex;
    align-items: flex-end;
    justify-content: center;
    gap: 2px;
    margin: 0;
    padding-bottom: 5px;
    color: #7b611f;
    background: #f2e7c5;
}

.internal-oak-app .session-signature-mark i,
.public-oak-app .timeline-signature-mark i {
    width: 3px;
    height: 7px;
    display: block;
    border-radius: 2px 2px 0 0;
    background: currentColor;
}

.internal-oak-app .session-signature-mark i:nth-child(2),
.public-oak-app .timeline-signature-mark i:nth-child(2) { height: 11px; }

.internal-oak-app .session-signature-mark i:nth-child(3),
.public-oak-app .timeline-signature-mark i:nth-child(3) { height: 16px; }

.internal-oak-app .session-signature-copy,
.public-oak-app .timeline-signature-copy { min-width: 0; margin: 0; }

.internal-oak-app .session-signature-copy small,
.internal-oak-app .session-signature-copy b,
.internal-oak-app .session-signature-copy span,
.public-oak-app .timeline-signature-copy small,
.public-oak-app .timeline-signature-copy b,
.public-oak-app .timeline-signature-copy span {
    min-width: 0;
    display: block;
    margin: 0;
    overflow-wrap: anywhere;
}

.internal-oak-app .session-signature-copy small,
.public-oak-app .timeline-signature-copy small {
    color: #7f6421;
    font: 900 .5rem/1.1 var(--oak-sans);
    text-transform: uppercase;
}

.internal-oak-app .session-signature-copy b,
.public-oak-app .timeline-signature-copy b {
    margin-top: 3px;
    color: var(--oak-forest-deep);
    font: 800 .75rem/1.18 var(--oak-sans);
}

.internal-oak-app .session-signature-copy span,
.public-oak-app .timeline-signature-copy span {
    display: -webkit-box;
    margin-top: 3px;
    overflow: hidden;
    color: var(--oak-muted);
    font: 600 .6rem/1.3 var(--oak-sans);
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.internal-oak-app .session-signature-heat,
.public-oak-app .timeline-signature-heat {
    min-width: 0;
    display: grid;
    justify-items: end;
    gap: 3px;
    margin: 0;
}

.internal-oak-app .session-signature-heat small,
.public-oak-app .timeline-signature-heat small {
    margin: 0;
    color: #53675b;
    font: 850 .54rem/1.15 var(--oak-sans);
    white-space: nowrap;
}

.public-oak-app .timeline-signature-heat small span {
    display: inline;
    margin: 0;
    color: inherit;
    font: inherit;
}

html[data-wo-theme="dark"] body.internal-oak-app .session-main .session-signature,
html[data-wo-theme="dark"] body.public-oak-app .timeline-copy .timeline-signature {
    border-color: #665d3d;
    border-left-color: #d1af51;
    color: var(--oak-ink);
    background: linear-gradient(90deg, rgba(209, 175, 81, .13), rgba(120, 164, 137, .08));
}

html[data-wo-theme="dark"] body.internal-oak-app .session-signature-mark,
html[data-wo-theme="dark"] body.public-oak-app .timeline-signature-mark {
    color: #f0d77d;
    background: #342e1e;
}

html[data-wo-theme="dark"] body.internal-oak-app .session-signature-copy small,
html[data-wo-theme="dark"] body.public-oak-app .timeline-signature-copy small,
html[data-wo-theme="dark"] body.internal-oak-app .session-signature-heat small,
html[data-wo-theme="dark"] body.public-oak-app .timeline-signature-heat small { color: #e4cd7b; }

html[data-wo-theme="dark"] body.internal-oak-app .session-signature-copy b,
html[data-wo-theme="dark"] body.public-oak-app .timeline-signature-copy b { color: #f3f5f2; }

html[data-wo-theme="dark"] body.internal-oak-app .session-signature-copy span,
html[data-wo-theme="dark"] body.public-oak-app .timeline-signature-copy span { color: #c6cec8; }

@media (max-width: 719px) {
    .internal-oak-app .session-main .session-signature,
    .public-oak-app .timeline-copy .timeline-signature {
        grid-template-columns: 24px minmax(0, 1fr);
        gap: 6px 8px;
        padding: 7px 7px 7px 8px;
    }

    .internal-oak-app .session-signature-mark,
    .public-oak-app .timeline-signature-mark { width: 24px; height: 26px; }

    .internal-oak-app .session-signature-heat,
    .public-oak-app .timeline-signature-heat {
        grid-column: 2;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-start;
        gap: 4px 7px;
    }
}

/* Op smalle schermen vormt de dagplanning één scanbare lijst. Alleen een
   volgend, live of bijzonder moment krijgt een kleurvlak; zo blijft de status
   zichtbaar zonder ieder programma-item als een afzonderlijke kaart te tonen. */
@media (max-width: 719px) {
    .internal-oak-app .schedule-section {
        overflow: visible;
        background: transparent;
        border: 0;
        border-radius: 0;
        box-shadow: none;
    }

    .internal-oak-app .schedule-header {
        border-bottom: 0;
    }

    .public-oak-app .timeline,
    .internal-oak-app .session-list {
        gap: 0;
        padding-top: 0;
        padding-bottom: 0;
        border-top: 1px solid var(--oak-line);
        border-bottom: 1px solid var(--oak-line);
    }

    .public-oak-app .timeline-row,
    .public-oak-app .timeline-row.is-compact,
    .public-oak-app .timeline-row.is-featured-session,
    .public-oak-app .timeline-row.is-live-special,
    .internal-oak-app .session-row,
    .internal-oak-app .session-row.is-compact,
    .internal-oak-app .session-row.is-current-focus,
    .internal-oak-app .session-row.is-live-special {
        min-height: 0;
        margin: 0;
        padding-top: 18px;
        padding-bottom: 18px;
        background: transparent;
        border: 0;
        border-bottom: 1px solid var(--oak-line);
        border-radius: 0;
        box-shadow: none;
    }

    .public-oak-app .timeline-row:last-child,
    .internal-oak-app .session-row:last-child {
        border-bottom: 0;
    }

    .public-oak-app .timeline-row:hover,
    .internal-oak-app .session-row:hover {
        background: rgba(35, 83, 61, .035);
    }

    .public-oak-app .timeline-row.is-featured-session,
    .public-oak-app .timeline-row.is-live-special,
    .internal-oak-app .session-row.is-current-focus,
    .internal-oak-app .session-row.is-live-special {
        background: linear-gradient(90deg, rgba(193, 154, 52, .10), rgba(193, 154, 52, .025) 72%, transparent);
        border-bottom-color: #ded4b7;
        box-shadow: inset 3px 0 0 var(--oak-gold);
    }

    .public-oak-app .timeline-row.is-live,
    .public-oak-app .timeline-row.is-featured-session.is-live,
    .internal-oak-app .session-row.is-current-focus[data-stage="live"],
    .internal-oak-app .session-row[data-stage="live"] {
        background: linear-gradient(90deg, rgba(79, 142, 100, .13), rgba(79, 142, 100, .035) 72%, transparent);
        border-bottom-color: #bfd1c5;
        box-shadow: inset 3px 0 0 #4f8e64;
    }

    .public-oak-app .timeline-copy .timeline-live-with,
    .internal-oak-app .session-person small.is-live-partner {
        max-width: 100%;
        margin-top: 6px;
        padding: 5px 0 5px 10px;
        background: transparent;
        border-left-width: 2px;
        border-radius: 0;
    }

    .internal-oak-app .session-main .session-signature,
    .public-oak-app .timeline-copy .timeline-signature {
        width: 100%;
        margin-top: 8px;
        padding: 8px 0 0;
        background: transparent;
        border: 0;
        border-top: 1px solid #ded6bd;
    }

    html[data-wo-theme="dark"] body.public-oak-app .timeline,
    html[data-wo-theme="dark"] body.internal-oak-app .session-list {
        border-color: #34463d;
    }

    html[data-wo-theme="dark"] body.public-oak-app .timeline-row,
    html[data-wo-theme="dark"] body.public-oak-app .timeline-row.is-compact,
    html[data-wo-theme="dark"] body.internal-oak-app .session-row,
    html[data-wo-theme="dark"] body.internal-oak-app .session-row.is-compact {
        background: transparent;
        border-bottom-color: #34463d;
    }

    html[data-wo-theme="dark"] body.public-oak-app .timeline-row:hover,
    html[data-wo-theme="dark"] body.internal-oak-app .session-row:hover {
        background: rgba(146, 193, 163, .045);
    }

    html[data-wo-theme="dark"] body.public-oak-app .timeline-row.is-featured-session,
    html[data-wo-theme="dark"] body.public-oak-app .timeline-row.is-live-special,
    html[data-wo-theme="dark"] body.internal-oak-app .session-row.is-current-focus,
    html[data-wo-theme="dark"] body.internal-oak-app .session-row.is-live-special {
        background: linear-gradient(90deg, rgba(209, 175, 81, .12), rgba(209, 175, 81, .025) 72%, transparent);
        border-bottom-color: #544c34;
    }

    html[data-wo-theme="dark"] body.public-oak-app .timeline-row.is-live,
    html[data-wo-theme="dark"] body.public-oak-app .timeline-row.is-featured-session.is-live,
    html[data-wo-theme="dark"] body.internal-oak-app .session-row.is-current-focus[data-stage="live"],
    html[data-wo-theme="dark"] body.internal-oak-app .session-row[data-stage="live"] {
        background: linear-gradient(90deg, rgba(111, 174, 132, .14), rgba(111, 174, 132, .03) 72%, transparent);
        border-bottom-color: #45604f;
    }

    html[data-wo-theme="dark"] body.public-oak-app .timeline-copy .timeline-live-with,
    html[data-wo-theme="dark"] body.internal-oak-app .session-person small.is-live-partner {
        background: transparent;
    }

html[data-wo-theme="dark"] body.internal-oak-app .session-main .session-signature,
    html[data-wo-theme="dark"] body.public-oak-app .timeline-copy .timeline-signature {
        background: transparent;
        border-color: #4b513e;
    }
}

/* De startstatus blijft onderdeel van de sessierij, zonder een tweede kaart. */
@keyframes oakStartRailPulse {
    0%, 100% { opacity: .5; transform: translate(-50%, -50%) scale(.78); }
    50% { opacity: 1; transform: translate(-50%, -50%) scale(1.18); }
}
@keyframes oakStartRailProgress {
    0%, 100% { opacity: .48; }
    50% { opacity: 1; }
}

.public-oak-app .timeline-row .timeline-start-signal,
.internal-oak-app .session-row .row-start-signal {
    grid-area: signal;
    grid-column: 1 / -1;
    width: 100%;
    min-width: 0;
    margin: 10px 0 0;
}

.public-oak-app .ritual-cue.is-inline-signal,
.internal-oak-app .ritual-cue.is-inline-signal {
    --start-rail-accent: #a47c1c;
    --start-rail-soft: #f7f1df;
    --start-rail-line: #d8c58d;
    --start-rail-text: #574719;
    min-height: 0;
    grid-template-columns: auto minmax(0, 1fr) 28px;
    align-items: center;
    gap: 10px;
    overflow: visible;
    padding: 10px 4px 8px;
    color: var(--start-rail-accent);
    background: transparent;
    border: 0;
    border-top: 1px solid var(--start-rail-line);
    border-radius: 0;
    box-shadow: none;
}
.public-oak-app .ritual-cue.is-inline-signal.is-imminent,
.internal-oak-app .ritual-cue.is-inline-signal.is-imminent {
    --start-rail-accent: #b84d3a;
    --start-rail-soft: #f9e8e3;
    --start-rail-line: #e4afa4;
    --start-rail-text: #6f3025;
}
.public-oak-app .ritual-cue.is-inline-signal.is-live,
.internal-oak-app .ritual-cue.is-inline-signal.is-live {
    --start-rail-accent: #33734b;
    --start-rail-soft: #e3efe7;
    --start-rail-line: #a8c6b2;
    --start-rail-text: #1e5333;
}
.public-oak-app .ritual-cue.is-inline-signal:is(.is-soon, .is-imminent, .is-live),
.internal-oak-app .ritual-cue.is-inline-signal:is(.is-soon, .is-imminent, .is-live) {
    color: var(--start-rail-accent);
    background: transparent;
    border-color: var(--start-rail-line);
    box-shadow: none;
}
.public-oak-app .ritual-cue.is-inline-signal::after,
.internal-oak-app .ritual-cue.is-inline-signal::after {
    width: var(--ritual-progress);
    height: 2px;
    border-radius: 0 2px 2px 0;
    background: var(--start-rail-accent);
    animation: oakStartRailProgress 1.8s ease-in-out infinite;
}
.public-oak-app .ritual-cue.is-inline-signal .ritual-cue-clock,
.internal-oak-app .ritual-cue.is-inline-signal .ritual-cue-clock,
.public-oak-app .ritual-cue.is-inline-signal:is(.is-soon, .is-imminent, .is-live) .ritual-cue-clock,
.internal-oak-app .ritual-cue.is-inline-signal:is(.is-soon, .is-imminent, .is-live) .ritual-cue-clock {
    min-width: 52px;
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 3px;
    isolation: auto;
    padding: 6px 8px;
    color: var(--start-rail-text);
    background: var(--start-rail-soft);
    border: 1px solid var(--start-rail-line);
    border-radius: 4px;
    font-family: var(--oak-sans);
}
.public-oak-app .ritual-cue.is-inline-signal .ritual-cue-clock::before,
.internal-oak-app .ritual-cue.is-inline-signal .ritual-cue-clock::before {
    z-index: auto;
    top: 50%;
    left: -6px;
    width: 7px;
    height: 7px;
    background: var(--start-rail-accent);
    border: 0;
    opacity: .72;
    transform: translate(-50%, -50%);
}
.public-oak-app .ritual-cue.is-inline-signal:is(.is-imminent, .is-live) .ritual-cue-clock::before,
.internal-oak-app .ritual-cue.is-inline-signal:is(.is-imminent, .is-live) .ritual-cue-clock::before {
    animation: oakStartRailPulse 1.25s ease-in-out infinite;
}
.public-oak-app .ritual-cue.is-inline-signal .ritual-cue-clock b,
.internal-oak-app .ritual-cue.is-inline-signal .ritual-cue-clock b {
    font: 750 1.08rem/1 var(--oak-sans);
    letter-spacing: 0;
}
.public-oak-app .ritual-cue.is-inline-signal .ritual-cue-clock small,
.internal-oak-app .ritual-cue.is-inline-signal .ritual-cue-clock small {
    margin: 0;
    font: 800 .44rem/1 var(--oak-sans);
}
.public-oak-app .ritual-cue.is-inline-signal .ritual-cue-clock small:empty,
.internal-oak-app .ritual-cue.is-inline-signal .ritual-cue-clock small:empty { display: none; }
.public-oak-app .ritual-cue.is-inline-signal .ritual-cue-copy,
.internal-oak-app .ritual-cue.is-inline-signal .ritual-cue-copy {
    display: grid;
    gap: 2px;
    padding: 0;
}
.public-oak-app .ritual-cue.is-inline-signal .ritual-cue-copy small,
.internal-oak-app .ritual-cue.is-inline-signal .ritual-cue-copy small,
.public-oak-app .ritual-cue.is-inline-signal:is(.is-soon, .is-imminent, .is-live) .ritual-cue-copy small,
.internal-oak-app .ritual-cue.is-inline-signal:is(.is-soon, .is-imminent, .is-live) .ritual-cue-copy small {
    color: var(--start-rail-accent);
    font: 800 .62rem/1.15 var(--oak-sans);
}
.public-oak-app .ritual-cue.is-inline-signal .ritual-cue-copy strong,
.internal-oak-app .ritual-cue.is-inline-signal .ritual-cue-copy strong,
.public-oak-app .ritual-cue.is-inline-signal:is(.is-soon, .is-imminent, .is-live) .ritual-cue-copy strong,
.internal-oak-app .ritual-cue.is-inline-signal:is(.is-soon, .is-imminent, .is-live) .ritual-cue-copy strong {
    color: var(--start-rail-text);
    font: 700 .84rem/1.25 var(--oak-sans);
    overflow-wrap: normal;
}
.public-oak-app .ritual-cue.is-inline-signal .ritual-cue-signal,
.internal-oak-app .ritual-cue.is-inline-signal .ritual-cue-signal {
    gap: 2px;
    padding: 0 3px 0 0;
}
.public-oak-app .ritual-cue.is-inline-signal .ritual-cue-signal i,
.internal-oak-app .ritual-cue.is-inline-signal .ritual-cue-signal i {
    width: 2px;
    height: 10px;
    background: var(--start-rail-accent);
}
.public-oak-app .ritual-cue.is-inline-signal .ritual-cue-signal i:nth-child(2),
.internal-oak-app .ritual-cue.is-inline-signal .ritual-cue-signal i:nth-child(2) { height: 18px; }
.public-oak-app .ritual-cue.is-inline-signal .ritual-cue-signal i:nth-child(3),
.internal-oak-app .ritual-cue.is-inline-signal .ritual-cue-signal i:nth-child(3) { height: 13px; }

html[data-wo-theme="dark"] body.public-oak-app .ritual-cue.is-inline-signal.is-soon,
html[data-wo-theme="dark"] body.internal-oak-app .ritual-cue.is-inline-signal.is-soon {
    --start-rail-accent: #dfc36d;
    --start-rail-soft: #342f20;
    --start-rail-line: #615637;
    --start-rail-text: #f1e6c0;
}
html[data-wo-theme="dark"] body.public-oak-app .ritual-cue.is-inline-signal.is-imminent,
html[data-wo-theme="dark"] body.internal-oak-app .ritual-cue.is-inline-signal.is-imminent {
    --start-rail-accent: #f0a08e;
    --start-rail-soft: #3a2723;
    --start-rail-line: #784a40;
    --start-rail-text: #ffe5df;
}
html[data-wo-theme="dark"] body.public-oak-app .ritual-cue.is-inline-signal.is-live,
html[data-wo-theme="dark"] body.internal-oak-app .ritual-cue.is-inline-signal.is-live {
    --start-rail-accent: #8cc5a0;
    --start-rail-soft: #20362a;
    --start-rail-line: #466b53;
    --start-rail-text: #e1f2e6;
}
html[data-wo-theme="dark"] body.public-oak-app .ritual-cue.is-inline-signal:is(.is-soon, .is-imminent, .is-live),
html[data-wo-theme="dark"] body.internal-oak-app .ritual-cue.is-inline-signal:is(.is-soon, .is-imminent, .is-live) {
    color: var(--start-rail-accent);
    background: transparent;
    border-color: var(--start-rail-line);
}
html[data-wo-theme="dark"] body.public-oak-app .ritual-cue.is-inline-signal:is(.is-soon, .is-imminent, .is-live) .ritual-cue-clock,
html[data-wo-theme="dark"] body.internal-oak-app .ritual-cue.is-inline-signal:is(.is-soon, .is-imminent, .is-live) .ritual-cue-clock {
    color: var(--start-rail-text);
    background: var(--start-rail-soft);
    border-color: var(--start-rail-line);
}
html[data-wo-theme="dark"] body.public-oak-app .ritual-cue.is-inline-signal:is(.is-soon, .is-imminent, .is-live) .ritual-cue-copy small,
html[data-wo-theme="dark"] body.internal-oak-app .ritual-cue.is-inline-signal:is(.is-soon, .is-imminent, .is-live) .ritual-cue-copy small { color: var(--start-rail-accent); }
html[data-wo-theme="dark"] body.public-oak-app .ritual-cue.is-inline-signal:is(.is-soon, .is-imminent, .is-live) .ritual-cue-copy strong,
html[data-wo-theme="dark"] body.internal-oak-app .ritual-cue.is-inline-signal:is(.is-soon, .is-imminent, .is-live) .ritual-cue-copy strong { color: var(--start-rail-text); }

@media (max-width: 719px) {
    .public-oak-app .timeline-row .timeline-start-signal,
    .internal-oak-app .session-row .row-start-signal {
        grid-area: signal;
        grid-column: 1 / -1;
        margin: 9px 0 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .public-oak-app .ritual-cue.is-inline-signal::after,
    .internal-oak-app .ritual-cue.is-inline-signal::after,
    .public-oak-app .ritual-cue.is-inline-signal .ritual-cue-clock::before,
    .internal-oak-app .ritual-cue.is-inline-signal .ritual-cue-clock::before {
        animation: none;
    }
}

/* De compacte statusstrook staat na alle responsieve basislagen en blijft daardoor identiek in beide apps. */
.public-oak-app .ritual-cue.is-inline-signal,
.internal-oak-app .ritual-cue.is-inline-signal {
    min-height: 54px;
    grid-template-columns: 44px minmax(0, 1fr) 22px;
    gap: 11px;
    padding: 9px 2px 10px 0;
    border: 0;
    border-top: 1px solid var(--start-rail-line);
    border-bottom: 1px solid var(--start-rail-line);
}
.public-oak-app .ritual-cue.is-inline-signal .ritual-cue-clock,
.internal-oak-app .ritual-cue.is-inline-signal .ritual-cue-clock,
.public-oak-app .ritual-cue.is-inline-signal:is(.is-soon, .is-imminent, .is-live, .is-afterglow) .ritual-cue-clock,
.internal-oak-app .ritual-cue.is-inline-signal:is(.is-soon, .is-imminent, .is-live, .is-afterglow) .ritual-cue-clock {
    width: 42px;
    height: 42px;
    min-width: 42px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1px;
    padding: 0;
    background: var(--start-rail-soft);
    border: 1px solid var(--start-rail-line);
    border-radius: 50%;
}
.public-oak-app .ritual-cue.is-inline-signal .ritual-cue-clock::before,
.internal-oak-app .ritual-cue.is-inline-signal .ritual-cue-clock::before { display: none; }
.public-oak-app .ritual-cue.is-inline-signal .ritual-cue-copy,
.internal-oak-app .ritual-cue.is-inline-signal .ritual-cue-copy { gap: 3px; }
.public-oak-app .ritual-cue.is-inline-signal .ritual-cue-copy small,
.internal-oak-app .ritual-cue.is-inline-signal .ritual-cue-copy small,
.public-oak-app .ritual-cue.is-inline-signal:is(.is-soon, .is-imminent, .is-live, .is-afterglow) .ritual-cue-copy small,
.internal-oak-app .ritual-cue.is-inline-signal:is(.is-soon, .is-imminent, .is-live, .is-afterglow) .ritual-cue-copy small {
    font-size: .66rem;
    line-height: 1.1;
    letter-spacing: 0;
}
.public-oak-app .ritual-cue.is-inline-signal .ritual-cue-copy strong,
.internal-oak-app .ritual-cue.is-inline-signal .ritual-cue-copy strong,
.public-oak-app .ritual-cue.is-inline-signal:is(.is-soon, .is-imminent, .is-live, .is-afterglow) .ritual-cue-copy strong,
.internal-oak-app .ritual-cue.is-inline-signal:is(.is-soon, .is-imminent, .is-live, .is-afterglow) .ritual-cue-copy strong {
    font-size: .92rem;
    line-height: 1.25;
    overflow-wrap: break-word;
    word-break: normal;
}

@media (max-width: 719px) {
    .public-oak-app .ritual-cue.is-inline-signal,
    .internal-oak-app .ritual-cue.is-inline-signal {
        grid-template-columns: 42px minmax(0, 1fr) 20px;
        gap: 9px;
        margin-top: 11px;
    }
    .public-oak-app .ritual-cue.is-inline-signal .ritual-cue-clock,
    .internal-oak-app .ritual-cue.is-inline-signal .ritual-cue-clock,
    .public-oak-app .ritual-cue.is-inline-signal:is(.is-soon, .is-imminent, .is-live, .is-afterglow) .ritual-cue-clock,
    .internal-oak-app .ritual-cue.is-inline-signal:is(.is-soon, .is-imminent, .is-live, .is-afterglow) .ritual-cue-clock {
        width: 40px;
        height: 40px;
        min-width: 40px;
    }
}

/* Op mobiel delen de interne en publieke planning dezelfde open sessierij.
   Het punt duidt het sessietype aan; de ruimte behoudt haar kleur alleen in de chip. */
@media (max-width: 719px) {
    body.internal-oak-app .session-list {
        border: 0;
    }

    .public-oak-app .timeline-row,
    .public-oak-app .timeline-row.is-compact,
    .internal-oak-app .session-row,
    .internal-oak-app .session-row.is-compact,
    .public-oak-app .timeline-row.is-unassigned,
    .internal-oak-app .session-row.is-unassigned {
        background: transparent;
        border-bottom-color: var(--oak-line);
        box-shadow: none;
    }

    .public-oak-app .timeline-row.is-featured-session,
    .public-oak-app .timeline-row.is-live-special,
    .internal-oak-app .session-row.is-current-focus,
    .internal-oak-app .session-row.is-live-special {
        background: linear-gradient(90deg, rgba(170, 124, 33, .075), rgba(170, 124, 33, .018) 72%, transparent);
        border-bottom-color: var(--oak-line);
        box-shadow: none;
    }

    .public-oak-app .timeline-row.is-live,
    .public-oak-app .timeline-row.is-featured-session.is-live,
    .internal-oak-app .session-row.is-current-focus[data-stage="live"],
    .internal-oak-app .session-row[data-stage="live"] {
        background: linear-gradient(90deg, rgba(79, 142, 100, .09), rgba(79, 142, 100, .022) 72%, transparent);
        border-bottom-color: var(--oak-line);
        box-shadow: none;
    }

    .internal-oak-app .session-row[data-session-type]::before {
        top: 20px;
        right: auto;
        bottom: auto;
        left: 7px;
        width: 8px;
        height: 8px;
        display: block;
        border-radius: 50%;
        background: var(--oak-forest);
        box-shadow: 0 0 0 4px var(--oak-sage);
    }

    .internal-oak-app .session-row[data-session-type="scrub"]::before {
        background: var(--oak-coral);
        box-shadow: 0 0 0 4px var(--oak-coral-soft);
    }

    .internal-oak-app .session-row.is-live-special::before,
    .internal-oak-app .session-row[data-sound="1"]::before {
        background: var(--oak-gold);
        box-shadow: 0 0 0 4px #f2ece6;
    }

    .public-oak-app .timeline-row[data-stage]::after,
    .internal-oak-app .session-row[data-stage]::after {
        display: none;
    }

    .internal-oak-app .session-meta > .session-source:not(.is-main) {
        min-height: 0;
        padding: 0;
        color: var(--oak-muted);
        background: transparent;
        border: 0;
        border-radius: 0;
        font-size: .68rem;
        font-weight: 650;
        line-height: 1.2;
    }

    .internal-oak-app .session-avatar.is-fallback,
    .public-oak-app .timeline-details .session-avatar-fallback {
        color: var(--oak-forest-deep);
        background: var(--oak-sage);
        border-color: #b8cbbb;
        font-weight: 800;
        text-shadow: none;
    }

    html[data-wo-theme="dark"] body.public-oak-app .timeline-row,
    html[data-wo-theme="dark"] body.public-oak-app .timeline-row.is-compact,
    html[data-wo-theme="dark"] body.internal-oak-app .session-row,
    html[data-wo-theme="dark"] body.internal-oak-app .session-row.is-compact,
    html[data-wo-theme="dark"] body.public-oak-app .timeline-row.is-unassigned,
    html[data-wo-theme="dark"] body.internal-oak-app .session-row.is-unassigned {
        background: transparent;
        border-bottom-color: var(--oak-line);
        box-shadow: none;
    }

    html[data-wo-theme="dark"] body.public-oak-app .timeline-row.is-featured-session,
    html[data-wo-theme="dark"] body.public-oak-app .timeline-row.is-live-special,
    html[data-wo-theme="dark"] body.internal-oak-app .session-row.is-current-focus,
    html[data-wo-theme="dark"] body.internal-oak-app .session-row.is-live-special {
        background: linear-gradient(90deg, rgba(209, 175, 81, .085), rgba(209, 175, 81, .018) 72%, transparent);
        border-bottom-color: var(--oak-line);
        box-shadow: none;
    }

    html[data-wo-theme="dark"] body.public-oak-app .timeline-row.is-live,
    html[data-wo-theme="dark"] body.public-oak-app .timeline-row.is-featured-session.is-live,
    html[data-wo-theme="dark"] body.internal-oak-app .session-row.is-current-focus[data-stage="live"],
    html[data-wo-theme="dark"] body.internal-oak-app .session-row[data-stage="live"] {
        background: linear-gradient(90deg, rgba(111, 174, 132, .10), rgba(111, 174, 132, .02) 72%, transparent);
        border-bottom-color: var(--oak-line);
        box-shadow: none;
    }

    html[data-wo-theme="dark"] body.internal-oak-app .session-row[data-session-type]::before,
    html[data-wo-theme="dark"] body.public-oak-app .timeline-marker {
        background: #8fc2a1;
        box-shadow: 0 0 0 4px rgba(143, 194, 161, .16);
    }

    html[data-wo-theme="dark"] body.internal-oak-app .session-row[data-session-type="scrub"]::before,
    html[data-wo-theme="dark"] body.public-oak-app .timeline-marker[data-type="scrub"] {
        background: #ef9a87;
        box-shadow: 0 0 0 4px rgba(239, 154, 135, .15);
    }

    html[data-wo-theme="dark"] body.internal-oak-app .session-row.is-live-special::before,
    html[data-wo-theme="dark"] body.internal-oak-app .session-row[data-sound="1"]::before,
    html[data-wo-theme="dark"] body.public-oak-app .timeline-marker[data-type="sound"],
    html[data-wo-theme="dark"] body.public-oak-app .timeline-row.is-live-special .timeline-marker {
        background: #d9bb67;
        box-shadow: 0 0 0 4px rgba(217, 187, 103, .15);
    }

    html[data-wo-theme="dark"] body.internal-oak-app .session-meta > .session-source:not(.is-main) {
        color: #aeb9b1;
        background: transparent;
        border: 0;
    }

    html[data-wo-theme="dark"] body.internal-oak-app .session-avatar.is-fallback,
    html[data-wo-theme="dark"] body.public-oak-app .timeline-details .session-avatar-fallback {
        color: #f1e4be;
        background: #26372e;
        border-color: #70877a;
        text-shadow: none;
    }
}

.internal-oak-app .session-meta {
    gap: 4px 10px;
}
.internal-oak-app .session-meta > .session-fact,
.internal-oak-app .session-meta > .session-fact.is-price {
    display: inline;
    min-height: 0;
    margin: 0;
    padding: 0;
    color: var(--oak-muted);
    background: transparent;
    border: 0;
    font: 400 .71rem/1.35 var(--oak-sans);
    white-space: nowrap;
}
.internal-oak-app .session-meta > .session-fact + .session-fact::before {
    content: none;
}

/* De Herbal Cup-kaarten volgen dezelfde leesvolgorde als de gastenapp.
   De bewegende lijn staat op een eigen element, zodat de live-status vrij blijft. */
.internal-oak-app .session-row.is-herbal-competition {
    --competition-line: color-mix(in srgb, var(--session-accent) 36%, var(--oak-line));
}
.internal-oak-app .session-row.is-herbal-competition .session-main {
    display: grid;
    justify-items: start;
    align-content: center;
    gap: 5px;
}
.internal-oak-app .session-row.is-herbal-competition .competition-session-type {
    min-height: 22px;
    margin: 0 !important;
    padding: 5px 9px;
    font-size: .58rem !important;
}
.internal-oak-app .session-row.is-herbal-competition .competition-session-theme {
    color: var(--oak-forest);
    font: 650 1.05rem/1.16 var(--oak-serif);
}
.internal-oak-app .session-row.is-herbal-competition .session-person {
    color: var(--oak-ink);
    font: 700 1.22rem/1.12 var(--oak-serif);
}
.internal-oak-app .session-row.is-herbal-competition .session-avatar {
    border: 2px solid var(--session-accent);
    transition: transform 280ms var(--oak-motion-ease), border-color 220ms ease;
}
.internal-oak-app .session-row.is-herbal-competition .session-info-button {
    color: var(--oak-forest-deep);
    background: color-mix(in srgb, var(--oak-white) 94%, transparent);
    border: 1px solid var(--oak-line-strong);
}
.internal-oak-app .session-row.is-herbal-competition .session-info-arrow {
    display: block;
    transition: transform 220ms var(--oak-motion-ease);
}
.internal-oak-app .competition-motion {
    position: absolute;
    z-index: 2;
    right: 14px;
    bottom: 0;
    left: 14px;
    height: 1px;
    overflow: visible;
    pointer-events: none;
    background: linear-gradient(90deg, transparent, var(--competition-line) 10%, var(--competition-line) 90%, transparent);
}
.internal-oak-app .competition-motion::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 19%;
    height: 1px;
    background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--session-accent) 88%, #fff), transparent);
    transform: translateX(-150%);
}
.internal-oak-app .competition-motion i {
    position: absolute;
    top: -16px;
    left: 27%;
    width: 9px;
    height: 9px;
    border: 2px solid color-mix(in srgb, var(--session-accent) 30%, var(--oak-white));
    border-radius: 50%;
    background: var(--session-accent);
    box-shadow: 0 0 0 5px color-mix(in srgb, var(--session-accent) 13%, transparent);
    transform: translateX(-50%);
}

@media (hover: hover) and (pointer: fine) {
    .internal-oak-app .session-row.is-herbal-competition:hover .session-avatar,
    .internal-oak-app .session-row.is-herbal-competition:focus-within .session-avatar {
        transform: scale(1.045);
    }
    .internal-oak-app .session-row.is-herbal-competition:hover .session-info-arrow,
    .internal-oak-app .session-row.is-herbal-competition:focus-within .session-info-arrow {
        transform: translateX(3px);
    }
}

@keyframes oakCompetitionReveal {
    from { opacity: 0; transform: translateY(7px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes oakCompetitionSweep {
    0%, 58% { opacity: 0; transform: translateX(-150%); }
    64% { opacity: .85; }
    82%, 100% { opacity: 0; transform: translateX(620%); }
}
@keyframes oakCompetitionPulse {
    0%, 100% { opacity: .72; transform: translateX(-50%) scale(.94); }
    50% { opacity: 1; transform: translateX(-50%) scale(1.08); }
}
@keyframes oakCompetitionLivePhoto {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.025); }
}

@media (prefers-reduced-motion: no-preference) {
    .internal-oak-app .day-pane.is-active .session-row.is-herbal-competition {
        animation: oakCompetitionReveal 420ms var(--oak-motion-ease) both;
        animation-delay: min(288ms, calc(var(--session-index, 0) * 36ms));
    }
    .internal-oak-app .session-row.is-herbal-competition.is-current-focus .competition-motion::after {
        animation: oakCompetitionSweep 6.4s ease-in-out infinite;
        animation-delay: calc(var(--session-index, 0) * -240ms);
    }
    .internal-oak-app .session-row.is-herbal-competition.is-current-focus .competition-motion i {
        animation: oakCompetitionPulse 3.4s ease-in-out infinite;
    }
    .internal-oak-app .session-row.is-herbal-competition.is-current-focus[data-stage="live"] .session-avatar {
        animation: oakCompetitionLivePhoto 3.8s ease-in-out infinite;
    }
}

@media (min-width: 720px) {
    .internal-oak-app .session-row.is-herbal-competition,
    .internal-oak-app .session-row.is-herbal-competition.is-compact,
    .internal-oak-app .session-row.is-herbal-competition.is-current-focus,
    .internal-oak-app .session-row.is-herbal-competition.is-live-special,
    .internal-oak-app .session-row.is-herbal-competition[data-stage] {
        min-height: 126px;
        grid-template-columns: 88px minmax(0, 1fr) minmax(68px, 84px) 42px;
        gap: 6px 16px;
        margin: 0;
        padding: 19px 16px 25px 22px;
        background: transparent;
        border: 0;
        border-bottom: 1px solid var(--oak-line);
        border-radius: 0;
        box-shadow: none;
    }
    .internal-oak-app .session-row.is-herbal-competition::before,
    .internal-oak-app .session-row.is-herbal-competition.is-current-focus::before,
    .internal-oak-app .session-row.is-herbal-competition.is-live-special::before {
        display: none;
    }
    .internal-oak-app .session-row.is-herbal-competition .session-info-button {
        width: 42px;
        height: 42px;
        min-height: 42px;
    }
}

@media (max-width: 719px) {
    .internal-oak-app .session-row.is-herbal-competition,
    .internal-oak-app .session-row.is-herbal-competition.is-compact,
    .internal-oak-app .session-row.is-herbal-competition.is-current-focus,
    .internal-oak-app .session-row.is-herbal-competition.is-live-special,
    .internal-oak-app .session-row.is-herbal-competition[data-stage] {
        min-height: 194px;
        grid-template-columns: 82px minmax(0, 1fr) 66px 44px;
        grid-template-rows: auto auto auto auto auto auto;
        grid-template-areas:
            "time main avatars action"
            "time person avatars action"
            "time room avatars action"
            ". meta avatars action"
            "signal signal signal signal"
            "journey journey journey journey";
        align-items: start;
        gap: 7px 10px;
        margin: 0;
        padding: 28px 8px 35px 22px;
        background: transparent;
        border: 0;
        border-bottom: 1px solid var(--oak-line);
        border-radius: 0;
        box-shadow: none;
    }
    .internal-oak-app .session-row.is-herbal-competition::before,
    .internal-oak-app .session-row.is-herbal-competition.is-current-focus::before,
    .internal-oak-app .session-row.is-herbal-competition.is-live-special::before {
        display: none;
    }
    .internal-oak-app .session-row.is-herbal-competition .session-time {
        display: grid;
        justify-items: start;
        align-content: start;
        gap: 10px;
        padding: 1px 0 0;
        font-size: 1.72rem;
        font-weight: 500;
    }
    .internal-oak-app .session-row.is-herbal-competition .session-time small {
        min-height: 0;
        margin: 0;
        padding: 7px 8px;
        color: var(--session-accent-text);
        background: color-mix(in srgb, var(--session-accent) 16%, var(--oak-white));
        border: 1px solid color-mix(in srgb, var(--session-accent) 78%, var(--oak-line));
        border-radius: 5px;
        font-size: .61rem;
        line-height: 1.08;
        letter-spacing: .02em;
    }
    .internal-oak-app .session-row.is-herbal-competition .session-main {
        align-content: start;
        gap: 7px;
    }
    .internal-oak-app .session-row.is-herbal-competition .competition-session-type {
        min-height: 24px;
        padding: 6px 9px;
        font-size: .61rem !important;
    }
    .internal-oak-app .session-row.is-herbal-competition .competition-session-theme {
        font-size: 1.08rem;
        line-height: 1.15;
    }
    .internal-oak-app .session-row.is-herbal-competition .session-person {
        font-size: 1.27rem;
        line-height: 1.08;
    }
    .internal-oak-app .session-row.is-herbal-competition .session-avatars {
        align-self: center;
        justify-self: end;
        max-width: 66px;
    }
    .internal-oak-app .session-row.is-herbal-competition .session-avatar,
    .internal-oak-app .session-row.is-herbal-competition.is-compact .session-avatar,
    .internal-oak-app .session-row.is-herbal-competition.is-current-focus .session-avatar {
        width: 64px;
        height: 64px;
        font-size: 1.18rem;
    }
    .internal-oak-app .session-row.is-herbal-competition .session-info-button {
        align-self: center;
        width: 44px;
        height: 44px;
        min-height: 44px;
    }
    .internal-oak-app .session-row.is-herbal-competition .session-room {
        min-height: 27px;
        padding: 5px 9px;
        font-size: .75rem;
    }
    .internal-oak-app .session-row.is-herbal-competition .session-meta {
        display: grid;
        justify-items: start;
        gap: 7px;
        margin-top: 2px;
    }
    .internal-oak-app .session-row.is-herbal-competition .competition-reservation,
    .internal-oak-app .session-row.is-herbal-competition .competition-color-card {
        min-height: 27px;
        margin: 0;
        padding: 6px 9px;
        font-size: .62rem;
    }
    .internal-oak-app .session-row.is-herbal-competition .row-start-signal {
        margin-top: 10px;
    }
    .internal-oak-app .session-row.is-herbal-competition .competition-motion {
        right: 0;
        left: 0;
    }
}

@media (max-width: 390px) {
    .internal-oak-app .session-row.is-herbal-competition,
    .internal-oak-app .session-row.is-herbal-competition.is-compact,
    .internal-oak-app .session-row.is-herbal-competition.is-current-focus,
    .internal-oak-app .session-row.is-herbal-competition.is-live-special {
        grid-template-columns: 72px minmax(0, 1fr) 52px 44px;
        gap: 7px 8px;
        padding-right: 4px;
        padding-left: 18px;
    }
    .internal-oak-app .session-row.is-herbal-competition .session-avatar,
    .internal-oak-app .session-row.is-herbal-competition.is-compact .session-avatar,
    .internal-oak-app .session-row.is-herbal-competition.is-current-focus .session-avatar {
        width: 50px;
        height: 50px;
    }
    .internal-oak-app .session-row.is-herbal-competition .session-info-button {
        width: 44px;
        height: 44px;
        min-height: 44px;
    }
}
