/* Inter variable font for GitHub Pages
   Font file location in repository: /fonts/InterVariable.woff2
   If the actual filename differs in case/spelling, rename the file or update the URL below exactly. */
@font-face {
    font-family: "Inter";
    src: url("../fonts/InterVariable.woff2") format("woff2");
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "Inter";
    src: url("../fonts/InterVariable.woff2") format("woff2");
    font-weight: 100 900;
    font-style: italic;
    font-display: swap;
}

* {
margin: 0;
padding: 0;
box-sizing: border-box;
}  
body {
font-family: "Inter";
line-height: 1.6;
color: #212529;
background: #f8f9fa;
display: flex;
flex-direction: column;
min-height: 100vh;
overflow-x: hidden;
}  
header {
background: white;
border-bottom: 1px solid #dee2e6;
color: #212529;
padding: 15px 20px;
box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.05);
display: flex;
align-items: center;
gap: 15px;
}  
.logo {
height: 50px;
width: auto;
}  
.header-text h1 {
font-size: 1.5em;
margin-bottom: 2px;
color: #0d6efd;
font-weight: 600;
}  
.header-text p {
font-size: 0.9em;
color: #6c757d;
}  
.main-container {
display: flex;
flex: 1;
max-width: 1800px;
margin: 0 auto;
width: 100%;
}  
.sidebar {
width: 300px;
background: white;
padding: 1.5rem;
border-right: 1px solid #dee2e6;
overflow-y: auto;
position: sticky;
top: 0;
height: calc(100vh - 82px);
}  
.sidebar h2 {
font-size: 1.1em;
margin-bottom: 1rem;
color: #495057;
font-weight: 600;
}  
.day-tabs {
display: flex;
gap: 0.5rem;
margin-bottom: 1.5rem;
flex-wrap: wrap;
}  
.day-tab {
flex: 1;
min-width: fit-content;
padding: 0.5rem 0.75rem;
background: white;
border: 1px solid #ced4da;
border-radius: 0.375rem;
cursor: pointer;
font-size: 0.85em;
font-weight: 500;
color: #495057;
text-align: center;
transition: all 0.15s ease-in-out;
}  
.day-tab:hover   
.day-tab.active {
background: #0d6efd;
border-color: #0d6efd;
color: white;
}  
.mobile-filter-toggle {
display: none;
position: fixed;
bottom: 1.5rem;
right: 1.5rem;
background: #0d6efd;
color: white;
border: none;
border-radius: 50%;
width: 56px;
height: 56px;
font-size: 1.5em;
cursor: pointer;
box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.15);
z-index: 1000;
transition: all 0.15s ease-in-out;
}  
.mobile-filter-toggle:hover {
background: #0b5ed7;
transform: scale(1.05);
}  
.sidebar-overlay {
display: none;
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0,0,0,0.5);
z-index: 999;
}  
.control-item {
display: flex;
flex-direction: column;
margin-bottom: 20px;
}  
label {
font-weight: 600;
margin-bottom: 8px;
color: #555;
font-size: 0.85em;
}  
.track-select-wrapper {
position: relative;
}  
.track-select-wrapper::before {
content: '';
position: absolute;
left: 0;
top: 0;
bottom: 0;
width: 4px;
border-radius: 4px 0 0 4px;
background: var(--track-color, #d1d5db);
pointer-events: none;
z-index: 1;
transition: background 0.3s;
}  
.track-select-wrapper select {
padding-left: 12px;
width: 100%;
}  
input, select {
font-family: inherit;
padding: 0.5rem 0.75rem;
border: 1px solid #ced4da;
border-radius: 0.375rem;
font-size: 0.95em;
transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
width: 100%;
background-color: #fff;
}  
input:focus, select:focus {
outline: none;
border-color: #86b7fe;
box-shadow: 0 0 0 0.25rem rgba(13,110,253,0.25);
}  
.button-group {
display: flex;
flex-direction: column;
gap: 10px;
margin-top: 20px;
padding-top: 20px;
border-top: 1px solid #e5e5e5;
}  
.expand-all {
font-family: inherit;
background: #0d6efd;
color: white;
border: 1px solid #0d6efd;
padding: 0.5rem 1rem;
border-radius: 0.375rem;
cursor: pointer;
font-size: 0.9em;
transition: all 0.15s ease-in-out;
width: 100%;
font-weight: 500;
}  
.expand-all:hover   
.stats {
display: flex;
flex-direction: column;
gap: 10px;
margin-top: 20px;
padding-top: 20px;
border-top: 1px solid #e5e5e5;
}  
.stat {
font-size: 0.85em;
color: #666;
}  
.stat strong {
color: #1e3a8a;
font-size: 1em;
}  
.content {
flex: 1;
padding: 20px;
overflow-y: auto;
}  
/* Track colors */
.cat-general      { border-left: 5px solid #E69F00 !important; }
.cat-health       { border-left: 5px solid #56B4E9 !important; }
.cat-innovation   { border-left: 5px solid #CC79A7 !important; }
.cat-labor        { border-left: 5px solid #806600 !important; }
.cat-operations   { border-left: 5px solid #0072B2 !important; }
.cat-policy       { border-left: 5px solid #D55E00 !important; }
.cat-sustainability { border-left: 5px solid #009E73 !important; }
.cat-special      { border-left: 5px solid #6f42c1 !important; }
.cat-event        { border-left: 5px solid #17a2b8 !important; background: #f0fbfd; }  
.event-card .session-header { cursor: default; }
.event-card .session-header:hover   
.badge-event {
background: #d1ecf1;
color: #0c5460;
border: 1px solid #bee5eb;
}  
.session-group {
background: white;
border: 1px solid #dee2e6;
border-radius: 0.5rem;
margin-bottom: 1rem;
box-shadow: 0 0.125rem 0.25rem rgba(0,0,0,0.075);
overflow: hidden;
transition: box-shadow 0.15s ease-in-out;
}  
.session-group:hover {
box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.1);
}  
.session-header {
background: white;
color: #212529;
padding: 1rem 1.25rem;
cursor: pointer;
user-select: none;
transition: background 0.15s ease-in-out;
}  
.session-header:hover   
.session-meta {
display: flex;
justify-content: space-between;
align-items: flex-start;
flex-wrap: wrap;
gap: 10px;
}  
.session-title-row {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 0.5rem;
margin-bottom: 8px;
}  
.session-title {
font-size: 1.3em;
font-weight: 600;
}  
.session-badge {
display: inline-block;
padding: 0.15rem 0.5rem;
border-radius: 0.25rem;
font-size: 0.65em;
font-weight: 700;
letter-spacing: 0.03em;
text-transform: uppercase;
vertical-align: middle;
white-space: nowrap;
}  
.badge-plenary {
background: #ffd54d;
color: #5a3700;
border: 1px solid #ffb300;
}  
.badge-special {
background: #e8d5ff;
color: #3d0070;
border: 1px solid #c49af0;
}  
/* Panel badge — distinct from .badge-special */
.badge-panel {
background: #f0f0f0;
color: #495057;
border: 1px solid #d0d0d0;
}
/* Activity badge */
.badge-activity {
background: #e2f5e9;
color: #14532d;
border: 1px solid #86cfa3;
}
/* Ensure badges use a continuous shade (no hover change) */
.badge-panel:hover {
    background: #f0f0f0;
    color: #495057;
    border: 1px solid #d0d0d0;
    transition: none;
}
.badge-activity:hover {
    background: #e2f5e9;
    color: #14532d;
    border: 1px solid #86cfa3;
    transition: none;
}
.badge-special:hover {
    background: #e8d5ff;
    color: #3d0070;
    border: 1px solid #c49af0;
    transition: none;
}
.badge-plenary:hover {
    background: #ffd54d;
    color: #5a3700;
    border: 1px solid #ffb300;
    transition: none;
}
.badge-event:hover {
    background: #d1ecf1;
    color: #0c5460;
    border: 1px solid #bee5eb;
    transition: none;
}
.session-badge:hover { transition: none; }
/* Ensure Social badges always show the event color (higher specificity) */
.session-badge.badge-event {
    background: #d1ecf1;
    color: #0c5460;
    border: 1px solid #bee5eb;
}
/* Ensure Panel badges always show the panel (light grey) color */
.session-badge.badge-panel {
    background: #f0f0f0;
    color: #495057;
    border: 1px solid #d0d0d0;
}
.session-info {
display: flex;
gap: 20px;
flex-wrap: wrap;
font-size: 0.95em;
opacity: 0.95;
}  
.session-info span {
display: flex;
align-items: center;
gap: 5px;
}  
.session-papers {
padding: 0;
display: none;
}  
.session-group.expanded .session-papers {
display: block;
}  
.paper {
padding: 20px;
border-bottom: 1px solid #e5e5e5;
}  
.paper:last-child {
border-bottom: none;
}  
.paper-title {
font-size: 1.05em;
font-weight: 600;
color: #212529;
margin-bottom: 0.5rem;
}  
.award-badge {
display: inline-flex;
align-items: center;
gap: 3px;
font-size: 0.72em;
font-weight: 600;
padding: 2px 7px;
border-radius: 20px;
vertical-align: middle;
margin-left: 6px;
white-space: nowrap;
}
.award-badge-winner {
background: #fff3cd;
color: #856404;
border: 1px solid #ffd700;
}
.award-badge-runnerup {
background: #f0f0f0;
color: #555;
border: 1px solid #aaa;
}  
.paper-authors {
color: #6c757d;
font-size: 0.9em;
margin-bottom: 0.75rem;
}  
.session-chair {
font-size: 0.9em;
color: #495057;
padding: 12px 20px 4px 20px;
}  
.session-discussant {
font-size: 0.9em;
color: #495057;
padding: 4px 20px 12px 20px;
}  
.paper-category {
display: inline-block;
background: #e7f1ff;
color: #084298;
padding: 0.25rem 0.5rem;
border-radius: 0.25rem;
font-size: 0.85em;
margin-bottom: 0.75rem;
border: 1px solid #b6d4fe;
}
.abstract-toggle {
    font-family: inherit;
    background: #adb5bd;
    color: white;
    border: 1px solid #adb5bd;
    padding: 0.375rem 0.75rem;
    border-radius: 0.375rem;
    cursor: pointer;
    font-size: 0.9em;
    transition: all 0.15s ease-in-out;
    font-weight: 500;
}
.abstract-toggle:hover {
    background: #9aa0a6;
}
.abstract {
    display: none;
    margin-top: 1rem;
    padding: 1rem;
    background: #f0f1f2;
    border-radius: 0.375rem;
    color: #495057;
    line-height: 1.7;
}
.abstract.visible {
    display: block;
}
/* Special session (panel) content styles */
.panel-moderator {
font-size: 0.95em;
margin-bottom: 0.75rem;
}  
.panel-panelists {
font-size: 0.95em;
margin-bottom: 0.75rem;
}  
.panel-panelists ul {
margin: 0.3rem 0 0 1.5rem;
padding: 0;
}  
.panel-panelists li {
margin-bottom: 0.2rem;
color: #495057;
}  
.panel-description {
font-size: 0.95em;
margin-bottom: 0.75rem;
color: #495057;
line-height: 1.7;
}  
.no-results {
text-align: center;
padding: 60px 20px;
color: #666;
background: white;
border-radius: 8px;
}  
.no-results h2 {
font-size: 1.5em;
margin-bottom: 10px;
}  
@media (max-width: 1024px) {
.main-container { flex-direction: column; }  
}  
.header-btns {
display: flex;
gap: 8px;
margin-left: auto;
flex-shrink: 0;
}  
.header-btn {
font-family: inherit;
text-decoration: none;
padding: 7px 14px;
border-radius: 6px;
font-size: 0.82em;
font-weight: 500;
border: 1px solid;
white-space: nowrap;
transition: background 0.2s, color 0.2s;
}  
.header-btn-blue {
color: #0d6efd;
border-color: #0d6efd;
background: white;
}
.header-btn-blue:hover { background: #0d6efd; color: white; }  
.header-btn-gray {
color: #6c757d;
border-color: #6c757d;
background: white;
}
.header-btn-gray:hover { background: #6c757d; color: white; }  
.session-category {
font-weight: 600;
font-size: 0.9em;
}  
.loading {
text-align: center;
padding: 40px;
font-size: 1.2em;
color: #666;
}  
label.filter-active 
label.filter-active::after {
content: ' ›';
font-size: 0.65em;
vertical-align: middle;
}  
/* View navigation tabs */
.view-nav {
background: white;
border-bottom: 2px solid #dee2e6;
padding: 0 20px;
display: flex;
width: 100%;
box-sizing: border-box;
}  
.view-nav-spacer {
flex: 1 1 auto;
min-width: 1rem;
}  
.view-btn {
font-family: inherit;
padding: 0.75rem 1.25rem;
border: none;
border-bottom: 3px solid transparent;
margin-bottom: -2px;
background: none;
cursor: pointer;
font-size: 0.95em;
font-weight: 500;
color: #6c757d;
transition: all 0.15s ease-in-out;
white-space: nowrap;
}  
.view-btn:hover   
.view-btn.active   
/* Speakers view */
.speakers-view {
max-width: 1800px;
margin: 0 auto;
width: 100%;
padding: 20px;
}  
.speakers-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 1rem;
}  
.speaker-card {
background: white;
border: 1px solid #dee2e6;
border-radius: 0.5rem;
padding: 1.25rem;
display: flex;
gap: 1.25rem;
box-shadow: 0 0.125rem 0.25rem rgba(0,0,0,0.075);
transition: box-shadow 0.15s ease-in-out;
scroll-margin-top: 20px;
}  
.speaker-card:hover {
box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.1);
}  
.speaker-photo {
width: 110px;
height: 110px;
border-radius: 50%;
object-fit: cover;
flex-shrink: 0;
border: 2px solid #dee2e6;
}  
.speaker-photo-placeholder {
width: 110px;
height: 110px;
border-radius: 50%;
background: #e9ecef;
flex-shrink: 0;
display: flex;
align-items: center;
justify-content: center;
font-size: 2.5em;
color: #adb5bd;
}  
.speaker-info { flex: 1; min-width: 0; }  
.speaker-name {
font-size: 1.05em;
font-weight: 600;
color: #212529;
margin-bottom: 0.5rem;
}  
.speaker-bio {
font-size: 0.88em;
color: #495057;
line-height: 1.65;
margin: 0;
}  
.speaker-link {
color: #0d6efd;
text-decoration: none;
cursor: pointer;
border-bottom: 1px dotted #0d6efd;
transition: border-bottom-style 0.1s;
}  
.speaker-link:hover {
color: #0b5ed7;
border-bottom-style: solid;
}  
@keyframes speaker-highlight-fade {
0%   { box-shadow: 0 0 0 4px rgba(13,110,253,0.45), 0 0.5rem 1rem rgba(0,0,0,0.1); }
100% { box-shadow: 0 0.125rem 0.25rem rgba(0,0,0,0.075); }
}  
.speaker-highlight {
animation: speaker-highlight-fade 2s ease-out forwards;
}  
@media (max-width: 900px) {
.speakers-grid { grid-template-columns: 1fr; }
.speaker-photo, .speaker-photo-placeholder { width: 80px; height: 80px; }
}  
/* Awards view */
.awards-view {
max-width: 960px;
margin: 0 auto;
width: 100%;
padding: 20px;
}  
.award-card {
background: white;
border: 1px solid #dee2e6;
border-radius: 0.5rem;
margin-bottom: 1.5rem;
box-shadow: 0 0.125rem 0.25rem rgba(0,0,0,0.075);
overflow: hidden;
}  
.award-header {
padding: 1.1rem 1.25rem 0.9rem;
border-bottom: 1px solid #dee2e6;
background: #f8f9fa;
}  
.award-name {
font-size: 1.15em;
font-weight: 700;
color: #212529;
margin-bottom: 0.4rem;
}  
.award-description {
font-size: 0.85em;
color: #6c757d;
line-height: 1.55;
}  
.award-entries {
padding: 0.75rem 1.25rem 1rem;
display: flex;
flex-direction: column;
gap: 0.85rem;
}  
.award-entry {
display: flex;
gap: 0.85rem;
align-items: flex-start;
}  
.award-rank-badge {
flex-shrink: 0;
font-size: 0.7em;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.04em;
padding: 0.2rem 0.55rem;
border-radius: 0.25rem;
margin-top: 0.2rem;
white-space: nowrap;
}  
.rank-winner {
background: #fff3cd;
color: #664d03;
border: 1px solid #ffc107;
}  
.rank-runnerup {
background: #f0f0f0;
color: #495057;
border: 1px solid #adb5bd;
}  
.award-entry-body { flex: 1; min-width: 0; }  
.award-paper-title {
font-size: 0.97em;
font-weight: 600;
color: #212529;
margin-bottom: 0.2rem;
}  
.award-authors {
font-size: 0.87em;
color: #6c757d;
margin-bottom: 0.2rem;
}  
.award-publication {
font-size: 0.85em;
color: #495057;
font-style: italic;
}  
.award-publication a {
color: #0d6efd;
text-decoration: none;
}
.award-publication a:hover { text-decoration: underline; }  
.award-committee {
font-size: 0.82em;
color: #6c757d;
margin-top: 0.5rem;
padding-top: 0.6rem;
border-top: 1px solid #f0f0f0;
}  
.awards-luncheon-note {
text-align: center;
padding: 1rem;
font-size: 0.92em;
color: #495057;
background: #f8f9fa;
border: 1px solid #dee2e6;
border-radius: 0.5rem;
margin-bottom: 1.5rem;
}
#lightbox-overlay {
display: none;
position: fixed;
inset: 0;
background: rgba(0,0,0,0.85);
z-index: 9999;
align-items: center;
justify-content: center;
cursor: zoom-out;
}
#lightbox-overlay.active { display: flex; }
#lightbox-overlay img {
max-width: 92vw;
max-height: 92vh;
object-fit: contain;
border-radius: 4px;
box-shadow: 0 4px 32px rgba(0,0,0,0.6);
}
img[data-lightbox] {
cursor: zoom-in;
transition: opacity 0.15s;
}
img[data-lightbox]:hover { opacity: 0.85; }  
/* Add-to-calendar button */
.cal-wrapper { position: relative; display: inline-block; }
.cal-btn {
font-family: inherit;
background: white;
border: 1px solid #ced4da;
border-radius: 0.375rem;
padding: 0.3rem 0.7rem;
font-size: 0.82em;
cursor: pointer;
color: #6c757d;
white-space: nowrap;
transition: all 0.15s ease-in-out;
}
.cal-btn:hover 
.cal-menu {
position: absolute;
left: 0;
top: calc(100% + 4px);
background: white;
border: 1px solid #dee2e6;
border-radius: 0.375rem;
box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.1);
z-index: 200;
min-width: 210px;
overflow: hidden;
}
.cal-menu a {
display: block;
padding: 0.5rem 1rem;
font-size: 0.88em;
color: #212529;
text-decoration: none;
white-space: nowrap;
}
.cal-menu a:hover   
/* Cross-Track and non-social programme activity styles */
.cat-cross-track { border-left: 5px solid #5C4D7D !important; }
.cat-activity { border-left: 5px solid #6c757d !important; background: #f7f7f7; }
/* removed broken empty selectors for badge-panel and badge-activity */
/* Sponsor logos */
.sponsor-logo-row {
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: center;
gap: 2.5rem 3rem;
}
.sponsor-logo-box {
width: 255px;
height: 110px;
display: flex;
align-items: center;
justify-content: center;
}
.sponsor-logo-box img {
width: 100%;
height: 100%;
object-fit: contain;
display: block;
}  
/* See Oxford view */
.see-oxford-btn { margin-left: 0; color: #174f3f; font-weight: 650; flex: 0 0 auto; }
.oxford-view { max-width: 1180px; margin: 0 auto; padding: 1.5rem; }
.oxford-hero { position: relative; min-height: 300px; border-radius: 16px; overflow: hidden; box-shadow: 0 0.6rem 1.8rem rgba(31,48,42,0.18); margin-bottom: 1.5rem; background: #203f35; }
.oxford-hero img { width: 100%; height: 360px; object-fit: cover; display: block; }
.oxford-hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(13,38,31,0.88) 0%, rgba(13,38,31,0.58) 48%, rgba(13,38,31,0.08) 100%); }
.oxford-hero-overlay { position: absolute; z-index: 1; left: 0; bottom: 0; max-width: 620px; padding: 2.3rem; color: white; }
.oxford-kicker { margin: 0 0 0.35rem; text-transform: uppercase; letter-spacing: 0.12em; font-size: 0.78rem; font-weight: 700; opacity: 0.86; }
.oxford-hero h2 { margin: 0; font-size: clamp(2rem, 5vw, 3.4rem); line-height: 1.05; }
.oxford-hero p:last-child { margin: 0.8rem 0 0; font-size: 1.05rem; line-height: 1.55; }
.oxford-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.15rem; }
.oxford-card { background: white; border: 1px solid #dde5e1; border-radius: 12px; padding: 1.35rem 1.45rem; box-shadow: 0 0.18rem 0.55rem rgba(25,55,45,0.07); }
.oxford-card-wide { grid-column: 1 / -1; }
.oxford-card h3 { margin: 0 0 0.85rem; color: #174f3f; font-size: 1.2rem; display: flex; gap: 0.55rem; align-items: center; }
.oxford-card ul { margin: 0; padding-left: 1.2rem; }
.oxford-card li { padding-left: 0.2rem; margin-bottom: 0.72rem; color: #38453f; line-height: 1.58; }
.oxford-card li:last-child { margin-bottom: 0; }
.oxford-card strong 
.oxford-two-column-list { columns: 2; column-gap: 2.2rem; }
.oxford-two-column-list li { break-inside: avoid; }
@media (max-width: 760px) {
.oxford-view { padding: 0.9rem; }
.oxford-hero { min-height: 270px; }
.oxford-hero img { height: 320px; }
.oxford-hero-overlay { padding: 1.35rem; }
.oxford-grid { grid-template-columns: 1fr; }
.oxford-card-wide { grid-column: auto; }
.oxford-two-column-list { columns: 1; }
}


/* Responsive viewing and scrolling enhancements, 13 August 2026 */
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body.sidebar-is-open{overflow:hidden}
button,input,select,a{touch-action:manipulation}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,.session-header:focus-visible{outline:3px solid rgba(13,110,253,.45);outline-offset:2px}
.view-nav{overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.content,.speaker-info,.award-entry-body,.oxford-card{min-width:0;overflow-wrap:anywhere}#mapView img{height:auto}
@media(max-width:1024px){
 header{align-items:flex-start;flex-wrap:wrap}.header-text{flex:1 1 340px;min-width:0}.header-btns{margin-left:auto}
 .main-container{display:block}.content{width:100%;padding:16px;overflow:visible}
 .sidebar{position:fixed;top:0;left:0;width:min(88vw,340px);max-width:100%;height:100dvh;padding:1.25rem;border-right:1px solid #dee2e6;box-shadow:.75rem 0 2rem rgba(0,0,0,.2);transform:translateX(-105%);transition:transform .22s ease-out;z-index:1001;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
 .sidebar.mobile-open{transform:translateX(0)}.sidebar-overlay.show{display:block}
 .mobile-filter-toggle{display:inline-flex;align-items:center;justify-content:center;bottom:max(1rem,env(safe-area-inset-bottom));right:max(1rem,env(safe-area-inset-right));width:52px;height:52px;min-width:44px;min-height:44px}
 #mapView>div{gap:1rem!important}
}
@media(max-width:760px){
 header{padding:12px 14px;gap:10px}.logo{height:42px}.header-text h1{font-size:1.12rem;line-height:1.25}.header-text p{font-size:.78rem;line-height:1.35}.header-btns{flex:0 0 auto}.header-btn{padding:6px 10px;font-size:.76rem}
 .view-nav{padding:0 8px;gap:0}.view-nav-spacer{display:none}.view-btn{min-height:44px;padding:.65rem .8rem;font-size:.86rem}
 .content,.speakers-view,.awards-view{padding:12px}.session-header{padding:.85rem .9rem}.session-title{font-size:1.05rem;line-height:1.35}.session-info{display:grid;grid-template-columns:1fr;gap:4px;font-size:.88rem}
 .paper{padding:15px}.session-chair,.session-discussant{padding-left:15px;padding-right:15px}.award-badge{display:flex;width:fit-content;margin:.4rem 0 0;white-space:normal}
 .speaker-card{flex-direction:column;gap:.85rem;padding:1rem}.speaker-photo,.speaker-photo-placeholder{width:72px;height:72px}.award-entry{flex-direction:column;gap:.45rem}
 #mapView{padding:1rem!important}#mapView>div{display:block!important}#mapView>div>nav{position:static!important;width:100%!important;margin-bottom:1rem}
 .sponsor-logo-row{flex-wrap:wrap!important;gap:1.25rem!important}.sponsor-logo-box{flex:1 1 240px!important;max-width:100%!important}#committeeContainer{overflow-x:auto;-webkit-overflow-scrolling:touch}
 .oxford-hero{min-height:230px}.oxford-hero img{height:270px}
}
@media(max-width:420px){.logo{height:36px}.header-text{flex-basis:calc(100% - 52px)}.header-btns{width:100%;justify-content:flex-end}.sidebar{width:min(92vw,340px)}.content{padding:10px}.session-title-row{align-items:flex-start}.cal-menu{left:0;right:auto;max-width:calc(100vw - 40px)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}

.mobile-filter-icon {
    width: 25px;
    height: 25px;
    display: block;
    fill: currentColor;
    pointer-events: none;
}


.mobile-filter-count {
    position: absolute;
    top: -5px;
    right: -5px;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #ffffff;
    border-radius: 999px;
    background: #dc3545;
    color: #ffffff;
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.22);
    pointer-events: none;
}
.mobile-filter-count[hidden] {
    display: none;
}
