@font-face{font-family:Ubuntu;font-style:normal;font-weight:400;font-display:swap;src:url("./assets/fonts/ubuntu-regular.ttf") format("truetype")} 
@font-face{font-family:Ubuntu;font-style:normal;font-weight:500;font-display:swap;src:url("./assets/fonts/ubuntu-medium.ttf") format("truetype")} 
@font-face{font-family:Ubuntu;font-style:normal;font-weight:700;font-display:swap;src:url("./assets/fonts/ubuntu-bold.ttf") format("truetype")} 
/* Idrettsfestivalen: official Ubuntu, deep purple and aqua profile.
   Keep hall, sport and season colors separate from navigation colors. */
:root{
 --brand-purple:#211454;--brand-aqua:#9ee8df;--brand-aqua-hover:#b9efea;
 --brand-soft:#f2f0f8;--brand-border:#e2deec;
 --ink:var(--brand-purple);--ink-soft:#58516d;--muted:#69627b;
 --paper:#f7f6fb;--lime:var(--brand-aqua);--line:var(--brand-border);
 --surface:rgba(255,255,255,.98);
 --font:Ubuntu,"Avenir Next","Segoe UI",sans-serif;
 --shadow:0 12px 40px #21145412,0 2px 6px #21145408;
 --ui-shadow:0 8px 32px #2114541a,0 2px 8px #2114540b;
}
body{background:var(--paper)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #7561bc;outline-offset:3px}
.topbar{background:var(--brand-purple);color:#fff;border-bottom:1px solid #ffffff18;box-shadow:0 2px 14px #2114541f}
.brand{flex-shrink:0}
.festival-logo{display:block;width:254px;height:auto;max-height:52px;object-fit:contain}
.view-tabs{background:#ffffff10;border:1px solid #ffffff19;border-radius:99px}
.view-tab{color:#e1dceb;border-radius:99px;font-weight:500}
.view-tab:hover{color:#fff;background:#ffffff12}
.view-tab.active,.view-tab[aria-pressed=true]{background:var(--brand-aqua);color:var(--ink);box-shadow:none}
.topbar-actions .icon-button{color:#fff;border-radius:50%}
.topbar-actions .icon-button:hover{background:#ffffff16}
.festival-open{background:var(--brand-aqua);border:1px solid transparent;border-radius:99px;color:var(--ink);font-weight:700}
.festival-open:hover{background:var(--brand-aqua-hover)}
.topbar :focus-visible{outline-color:var(--brand-aqua)}
.sidebar,.detail-card{background:var(--surface);box-shadow:var(--ui-shadow);border-color:#ffffffed}
.sidebar-heading{padding-top:3px}
.eyebrow,.sidebar-heading .eyebrow{color:var(--muted);letter-spacing:1.7px}
.tiny-cross{color:#6b56a6}
.sidebar-heading h1{font-weight:700;letter-spacing:-1px}
.sidebar-heading h1>span{color:#40b7ad}
.sidebar-heading p{color:var(--muted)}
.date-dot{background:var(--brand-aqua)}
.sidebar .search-wrap{background:#f6f5fa;border-color:var(--brand-border)}
.search-wrap:focus-within{border-color:#7561bc;box-shadow:0 0 0 3px #7561bc14}
.search-wrap>.icon,.search-wrap input::placeholder{color:#756d86}
.search-wrap input{color:var(--ink)}
.search-wrap kbd{border-color:var(--brand-border);color:#8d849f}
.filter{border-color:var(--brand-border);color:#635b77}
.filter:hover{background:var(--brand-soft)}
.filter.active,.filter[aria-pressed=true]{background:var(--brand-purple);border-color:var(--brand-purple);color:#fff}
.sidebar .places-open{background:var(--brand-soft);border-color:var(--brand-border);color:var(--ink)}
.sidebar .places-open:hover,.sidebar .places-open[aria-pressed=true]{background:#e5f7f4;border-color:#96dcd3}
.list-heading>span:first-child,.live-indicator,.destination-group{color:var(--muted)}
.destinations{scrollbar-color:#c9c2da transparent}
.destinations::-webkit-scrollbar-thumb{background:#c9c2da}
.destination:hover,.destination-item:hover{background:#f5f3fa}
.destination.selected,.destination.active,.destination[aria-current=true],.destination-item.selected,.destination-item.active{background:#efebf7;box-shadow:inset 0 0 0 1px #dcd4ef}
.destination-icon{color:var(--ink);background:var(--brand-soft)}
.destination-copy>span,.sidebar-heading p,.empty-state,.no-results{color:var(--muted)}
.destination-arrow{color:#9389aa}
.entrances{border-color:var(--brand-border)}
.entrances-title{color:var(--muted)}
.entrance-buttons button{border-color:var(--brand-border);background:#f8f7fc}
.entrance-buttons button:hover,.entrance-buttons button.active{border-color:#8cd9d0;background:#e5f7f4}
.entrance-number{background:#dff6f2;color:var(--ink)}
.entrance-buttons .icon{color:#75688e}
.sidebar .sidebar-bottom{background:#f7f5fb;color:var(--muted);border-color:var(--brand-border)}
.status-dot{background:#7966ad}
.subtle-separator{color:#c4bbd4}
.panel-toggle,.panel-open{color:var(--ink)}
.panel-open{background:var(--surface);border-color:var(--brand-border)}
.panel-toggle:hover,.panel-open:hover{background:var(--brand-soft)}
.panel-toggle .sheet-handle{background:#c5b9da}
.building-state{color:var(--ink);background:#fffffff2;border-color:#e6e0ef;box-shadow:0 3px 15px #2114540d}
.building-state:before{background:#7966ad}
.building-state[data-state=inside]:before{background:#40a99e}
.map-eyebrow,.map-heading-location,.map-heading-location>span{color:#514565}
.map-legend{background:#fffffff0;color:#635871;border-color:#ffffffdf}
.entrance-dot{background:var(--brand-aqua);border-color:var(--brand-purple)}
.control-button,.zoom-controls{background:var(--surface);color:var(--ink);box-shadow:var(--ui-shadow);border-color:#ffffffed}
.control-button:hover,.zoom-controls>.control-button:hover{background:var(--brand-soft)}
.zoom-controls>.control-button{color:var(--ink);background:transparent}
.zoom-controls>.control-button:first-child{border-color:var(--brand-border)}
.map-dock{background:var(--brand-purple);border-color:#ffffff40;box-shadow:0 8px 30px #21145430}
.map-dock .level-switch{background:transparent}
.level-switch button{color:#e6dff5;font-weight:500}
.level-switch button:hover{background:#ffffff16;color:#fff}
.level-switch button.active,.level-switch button[aria-pressed=true]{background:var(--brand-aqua);color:var(--ink);font-weight:700}
.map-tools{border-color:#ffffff28}
.map-tools>.control-button,.map-tools .season-control>.control-button{color:#e6dff5;background:transparent}
.map-tools>.control-button:hover,.map-tools .season-control>.control-button:hover{background:#ffffff18;color:#fff}
.map-tools .activity-toggle[aria-pressed=true]{background:#ffffff16;color:var(--brand-aqua)}
.map-tools [data-tooltip]::after,[data-tooltip]::after{background:var(--brand-purple);color:#fff}
.map-tools .season-panel{color:var(--ink);background:#fff;border-color:var(--brand-border)}
.map-hint,.map-footer{color:#514663;text-shadow:0 1px 2px #ffffff50}
.map-hint i{color:#756b83}
.map-label{color:var(--ink)!important;background:#ffffffee!important;box-shadow:0 2px 10px #2114541c}
.map-label:hover{background:var(--brand-soft)!important;border-color:#bfb0dc!important}
.map-label.selected{background:var(--brand-purple)!important;color:#fff!important;border-color:var(--brand-aqua)!important;box-shadow:0 0 0 3px #9ee8df66}
.entry-label{background:var(--brand-aqua)!important;color:var(--ink)!important;box-shadow:0 4px 15px #21145430}
.entry-label:after{background:var(--brand-aqua)}
.entry-label.selected:after{background:var(--brand-purple)}
.map-label:focus-visible{outline-color:#7561bc}
.detail-badge{color:var(--ink);background:var(--brand-soft)}
.detail-back:hover,.text-button:hover{color:#7056ad}
.detail-meta,.detail-copy,.detail-card .detail-copy,.route-info,.text-button,.route-options>label{color:var(--muted)}
.detail-card h2{font-weight:700}
.detail-courts button,.court-chips button{background:var(--brand-soft);border-color:var(--brand-border)}
.detail-courts button:hover,.court-chips button:hover{background:#e2dbf1}
.route-options{border-color:var(--brand-border)}
.route-select-wrap{background:#f6f4fa;border-color:var(--brand-border)}
.route-select-wrap select,.route-select-wrap>.icon:first-child,.route-select-wrap .chevron{color:#66567f}
.primary-button{background:var(--brand-aqua);border-color:#8bd7ce;color:var(--ink);font-weight:700;border-radius:99px}
.primary-button:hover{background:var(--brand-aqua-hover);box-shadow:0 4px 15px #21145414}
.modal-backdrop{background:#140a3480}
.modal-card{background:#fff;box-shadow:0 20px 70px #21145430}
.modal-card>p,.help-grid span,.info-note p,.source-links{color:var(--muted)}
.help-grid .icon,.info-note strong,.source-links a{color:var(--ink)}
.info-note{background:var(--brand-soft)}
.loading-screen{background:var(--brand-purple);color:white}.loading-logo{display:block;width:min(280px,74vw);height:auto;margin:0 0 6px}
.loading-mark>span{background:var(--brand-aqua)}
.loading-mark>span:nth-child(2){background:#fff}
.loading-mark>span:nth-child(3){background:#73639e}
.loading-eyebrow,.loading-screen p{color:#d0c7e3}
.loading-line{background:#ffffff24}
.loading-line>span{background:var(--brand-aqua)}
.error-screen{background:var(--paper)}
.error-screen>.icon{color:var(--ink)}
.error-screen p{color:var(--muted)}
/* The provider remains identifiable; the surrounding dialog follows the host UI. */
.vixon-credit{background:#fff;color:var(--ink);box-shadow:0 4px 20px #21145419}
.vixon-credit.is-subtle{background:#ffffffb8;border-color:#ffffffa3;box-shadow:0 2px 12px #2114540a}
.vixon-credit:hover,.vixon-credit:focus-visible,.vixon-credit[aria-expanded=true]{background:#fff;border-color:#d5cce8;box-shadow:0 4px 24px #21145428}
.vixon-credit .icon,.vixon-about-link{color:#695485}
.vixon-dialog{background:var(--paper);box-shadow:0 30px 100px #21145450}
.vixon-dialog::backdrop{background:#140a3480}
.vixon-head{background:var(--brand-purple);color:#fff}
.vixon-head h2 em,.vixon-kicker{color:var(--brand-aqua)!important}
.vixon-brand small,.vixon-head>p:last-child{color:#d9d0ec}
.vixon-highlights li,.vixon-form{border-color:var(--brand-border)}
.vixon-highlights .icon{color:#7461a0}
.vixon-highlights span,.vixon-fits,.vixon-form-intro,.vixon-fields label span,.vixon-form-note,.vixon-status{color:var(--muted)}
.vixon-fields input,.vixon-fields textarea{color:var(--ink);border-color:#d9d1e7}
.vixon-fields input::placeholder,.vixon-fields textarea::placeholder{color:#81748f}
.vixon-fields input:focus,.vixon-fields textarea:focus{border-color:#7561bc;box-shadow:0 0 0 3px #7561bc20}
.vixon-form-actions>a{color:var(--ink)}
.vixon-success{background:#edf9f7;border-color:#caebe6}
.vixon-success-mark{background:var(--brand-aqua);color:var(--ink)}
.vixon-success p{color:var(--muted)}
@media(min-width:761px){:root{--header:76px}.topbar{padding:0 24px}.view-tabs{padding:4px}.view-tab{height:38px}.festival-open{height:40px;padding:0 18px}}
@media(min-width:761px) and (max-width:1050px){.festival-logo{width:220px}.topbar{padding:0 16px}.view-tab{min-width:86px;padding:0 12px}.festival-open{padding:0 12px}}
@media(max-width:950px){.map-tools{background:var(--brand-purple)}.map-tools [data-tool-label]::after{background:none}}
@media(max-width:760px){.festival-logo{width:214px;max-height:43px}.festival-open{width:40px;min-width:40px;height:38px;padding:0}.festival-open>span{display:none}.topbar-actions{gap:5px}.panel-toggle{color:var(--muted)}.view-tabs{border-radius:99px}.sidebar,.detail-card{box-shadow:var(--ui-shadow)}}
@media(max-width:370px){.festival-logo{width:190px}.topbar{padding-left:12px;padding-right:12px}.topbar-actions{gap:2px}}
@media(max-width:760px) and (max-height:560px){.festival-logo{width:178px}.view-tab{font-size:11px}.topbar{gap:10px}}

/* Short windows must allow the complete contact dialog to scroll. */
@media(max-height:700px){
 .vixon-dialog[open]{display:block;overflow-y:auto;scrollbar-width:thin;scroll-padding:18px}
 .vixon-content{overflow:visible}
 .vixon-head{padding-top:20px;padding-bottom:18px}
 .vixon-brand{margin-bottom:16px;padding-right:35px}
 .vixon-head h2{font-size:27px}
}
@media(max-width:760px) and (max-height:560px) and (orientation:portrait){
 .vixon-fields{grid-template-columns:1fr}
 .vixon-highlights{grid-template-columns:1fr}
 .vixon-highlights li{display:grid}
}
