:root{font-family:system-ui,sans-serif;color:#14233b;background:#f3f6fa}*{box-sizing:border-box}body{margin:0;padding-bottom:90px}header{background:#00007d;color:white;padding:20px max(20px,calc((100vw - 1050px)/2));display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font-size:29px;font-weight:800}.brand span{display:block;font-size:12px;font-weight:400}header label{font-size:12px}select,input{padding:12px;border:1px solid #cad3e2;border-radius:8px;background:white;color:#14233b;font:inherit;min-height:44px}header select{display:block;max-width:340px}.notice{text-align:center;padding:10px;font-size:12px;background:#e5edf6;color:#334967}main{max-width:1050px;margin:auto;padding:24px}h1{color:#000064;font-size:30px;margin-top:0}h2{color:#000064}button{min-height:44px;padding:10px 16px;border:1px solid #bbc9db;border-radius:8px;background:white;color:#000064;font:inherit;cursor:pointer}button.active,.primary{background:#00007d;color:white;border-color:#00007d}.hero{background:linear-gradient(125deg,#000064,#001996);color:white;border-radius:18px;padding:36px;margin-bottom:24px}.hero h1{color:white}.hero p{font-size:18px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.card{background:white;border:1px solid #e0e6ef;border-radius:12px;padding:20px}.card p{color:#526078}.filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}.filters input{flex:1;min-width:180px}.session{display:grid;grid-template-columns:110px 1fr 48px;gap:12px;border-left:5px solid #00007d;margin:10px 0}.session.DS,.session.DW{border-left-color:#001996}.session.WW{border-left-color:#007d32}.session.break,.session.meal{border-left-color:#7a4f1e}.session .open{text-align:left;border:0;padding:0;min-height:44px}.session small{display:block;margin-top:6px;color:#526078}.time{font-size:14px}.muted{color:#526078;font-size:14px}.favorite{padding:0;font-size:25px}nav{position:fixed;bottom:0;background:white;border-top:1px solid #ccd5e2;width:100%;display:flex;justify-content:center;gap:8px;padding:10px;z-index:10}nav button{border:0}.map-container{height:58vh;min-height:330px;position:relative;overflow:hidden;background:#e6ecf4;touch-action:none;border:1px solid #bac6d8;border-radius:12px}.map-stage{position:absolute;transform-origin:0 0}.map-stage>img{width:100%;height:100%;pointer-events:none}.hotspot{position:absolute;padding:0;background:#00199622;border:2px solid #001996;border-radius:0;font-size:16px;min-height:0}.hotspot.selected{background:#007d3266}.measure-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}dialog{border:0;border-radius:16px;padding:28px;width:min(560px,92vw);max-height:85vh}dialog::backdrop{background:#0008}.detail-line{margin:14px 0}a{color:#001996}@media(max-width:600px){header{padding:16px;display:block}.brand{margin-bottom:14px}header select{max-width:100%;width:100%}main{padding:16px}.hero{padding:24px}h1{font-size:25px}.session{grid-template-columns:75px 1fr 40px;padding:14px;gap:8px}.time{font-size:12px}nav{gap:0}nav button{font-size:12px;padding:10px 9px}.filters select{max-width:100%}}

#mapResults{display:flex;flex-direction:column;gap:8px;max-height:40vh;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-gutter:stable;min-width:0;margin-bottom:16px}#mapResults:empty,#mapResultCount:empty{display:none}#mapResults button{flex-shrink:0;width:100%;text-align:left;white-space:normal;overflow-wrap:anywhere}#mapResults:focus-visible{outline:2px solid #001996;outline-offset:3px}

nav button{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:12px;min-width:60px}nav svg{width:22px;height:22px}nav button.active{background:#eaf4ff;color:#001996}nav{padding-bottom:max(10px,env(safe-area-inset-bottom))}
.conference-home{position:relative;isolation:isolate;overflow:hidden;max-width:760px;margin:auto;padding:36px 36px 24px;border-radius:20px;background:radial-gradient(ellipse at 80% 20%,#7b88b6 0,transparent 48%),linear-gradient(155deg,#07385d 5%,#284f85 35%,#00326a 65%,#002b4e);color:white;box-shadow:0 12px 40px #002b4e25}.conference-home::before,.conference-home::after{content:'';position:absolute;z-index:-1;width:150%;height:200px;left:-25%;bottom:-140px;border-radius:50%;background:#0ba4d0;transform:rotate(8deg)}.conference-home::after{bottom:-165px;transform:rotate(-8deg);background:#127cb7}.home-brand{display:flex;align-items:center;gap:14px;font-size:17px;letter-spacing:1px;line-height:1.25}.home-brand svg{width:48px;height:64px}.home-heading{padding:52px 0 20px;text-align:center}.home-eyebrow{font-size:12px;letter-spacing:2px;font-weight:600;color:#d2ebff}.home-heading h1{color:white;font-size:34px;line-height:1.16;margin-bottom:15px;text-wrap:balance}.home-date{font-size:20px;margin:0 0 10px}.home-location{font-size:16px;line-height:1.5;margin:0}.home-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0 24px}.home-tiles button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:116px;padding:14px 8px;border:1px solid #d2e8f4;border-radius:9px;background:linear-gradient(145deg,#fff,#e8f2f9);color:#004578;box-shadow:0 3px 12px #001d4a33}.home-tiles button:hover{background:#d9efff}.home-tiles button:focus-visible{outline:3px solid #55d9ff;outline-offset:3px}.home-tiles svg{height:39px;width:39px}.home-tiles span{font-size:12px;font-weight:800;text-transform:uppercase;line-height:1.3}.home-footer{text-align:center;font-size:12px;color:#d8efff;margin:0}.home-page main{padding:24px}.home-page header{background:#002d50}
@media(max-width:600px){.home-page main{padding:0}.conference-home{border-radius:0;padding:25px 18px 30px;min-height:calc(100svh - 240px)}.home-heading{padding:40px 0 14px}.home-heading h1{font-size:26px}.home-date{font-size:17px}.home-brand{font-size:15px}.home-tiles{gap:7px}.home-tiles button{min-height:98px;gap:9px}.home-tiles svg{width:34px;height:34px}.home-tiles span{font-size:10px}nav{gap:0}nav button{flex:1;min-width:0;padding:7px 4px;font-size:10px}}
.brand img{display:block;width:190px;height:auto;background:white;border-radius:6px;padding:6px}.home-brand{justify-content:center}.home-brand img{display:block;width:min(320px,100%);height:auto;background:white;border-radius:8px;padding:10px}.home-heading{padding-top:30px}@media(max-width:600px){header .brand{margin-bottom:12px}.brand img{width:150px}.home-brand img{width:260px}.home-heading{padding-top:26px}}
.exhibitor-logo{display:block;width:72px;height:72px;object-fit:contain;background:white;border:1px solid #e1e7ef;border-radius:8px;padding:6px;margin-bottom:12px}
.exhibitor-logo{width:150px;height:64px;background:#d1d5db}
.connection{padding:10px 20px;display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:10px;background:#e9f4ed;color:#135332;font-size:12px}.connection button{font-size:12px;min-height:36px}.connection[data-state="offline"]{background:#e5edf6;color:#334967}.connection[data-state="stale"]{background:#fff0d2;color:#714706}.connection[data-state="updating"]{background:#eaf0ff;color:#001996}

.map-stage>img{position:absolute;inset:0}.map-stage.background-hidden{background:white}.hotspot.unassigned:not(.selected){background:#ef444466;border-color:#b91c1c;color:#991b1b}.hotspot.selected{background:#ffce4580;border-color:#9c6600}.booth-legend{display:flex;flex-wrap:wrap;gap:16px;margin:8px 0 12px;font-size:13px}.booth-legend span{display:inline-flex;align-items:center;gap:6px}.booth-legend i{width:18px;height:18px;border:2px solid #001996;background:#00199622}.booth-legend i.unassigned{background:#ef444466;border-color:#b91c1c}.booth-legend i.selected{background:#ffce4580;border-color:#9c6600}

.public-event-name{font-size:14px;max-width:390px}.public-map-frame{position:relative}.public-map-controls{position:absolute;top:10px;right:10px;display:grid;gap:3px;padding:4px;background:#ffffffee;border:1px solid #bbc9da;border-radius:9px;box-shadow:0 2px 8px #0002;z-index:3}.public-map-controls button{min-height:36px;min-width:36px;padding:4px 7px;font-size:19px}.public-map-controls #fit{font-size:12px;font-weight:600}.exhibitor-contacts{margin:20px 0}.exhibitor-contacts div{margin:12px 0}.exhibitor-contacts dt{font-size:12px;color:#526078}.exhibitor-contacts dd{margin:3px 0;overflow-wrap:anywhere}.exhibitor-contacts a{display:inline-block;padding:6px 0}@media(max-width:600px){.public-event-name{display:block;margin-top:8px;font-size:12px}}
/* Home design: watermark buttons and About in the home footer. */
.home-tiles button{position:relative;isolation:isolate;overflow:hidden}.home-tiles button::before{content:'';position:absolute;inset:5px;background:url('/assets/water-drop.png') center/contain no-repeat;opacity:.12;z-index:-1;pointer-events:none}.home-about{display:flex;justify-content:center;margin:15px 0 8px}.home-about button{display:flex;align-items:center;gap:7px;padding:8px 16px;background:#ffffff12;border:1px solid #ffffff80;border-radius:22px;color:white;min-height:44px;font-size:14px}.home-about svg{width:19px;height:19px}.about-title{margin:20px 0}#aboutInformation[hidden]{display:none}#aboutInformation{border:1px solid #d8e2ed;border-radius:14px;overflow:hidden;background:white}#aboutInformation header{padding:24px;flex-wrap:wrap;justify-content:center;text-align:center}#aboutInformation .public-event-name{max-width:100%}#aboutInformation .connection{margin:0;padding:20px;flex-wrap:wrap}.home-page .conference-home{min-height:calc(100svh - 80px)}
.map-container{touch-action:pan-y}.announcement-badge{position:absolute;top:6px;right:6px;background:#b91c1c;color:white;border-radius:20px;padding:3px 7px;font-size:12px!important;line-height:1.2!important;min-width:22px}#announcementBanner{max-width:1050px;margin:12px auto;padding:0 16px}#announcementBanner[hidden]{display:none}#announcementBanner button{width:100%;display:flex;gap:12px;align-items:center;text-align:left;background:#fff2ed;color:#8b230e;border-color:#e39c83}#announcementBanner button span{flex:1}.announcement-card{margin-bottom:14px}.announcement-card.urgent{border-left:5px solid #b91c1c}.announcement-body{white-space:pre-wrap}.announcement-countdown{font-weight:bold;color:#005f9a}
.speaker-card{margin:15px 0}.speaker-biography,.session-description{white-space:pre-wrap}#showSpeakers{margin-bottom:16px}

.content-image{display:block;width:100%;max-height:420px;object-fit:contain;border-radius:8px;margin:12px 0}.session .content-image{width:100%;max-height:150px}.speaker-headshot{width:84px;height:84px;border-radius:50%;object-fit:cover;display:inline-block;margin:8px;vertical-align:middle}.speaker-card .speaker-headshot{float:left}.speaker-card:after{content:"";display:block;clear:both}
