/* RavePin new look "Midnight Atelier" (theme32). GENERATED by overlay/build_theme.py from styles.css + overlay/theme32-skin.css.
   Do not edit here: edit theme32-skin.css and re-run. Loaded right after styles.css. */
@font-face{font-family:'Bodoni Moda';font-style:italic;font-weight:400 900;font-display:swap;src:url(fonts/bodoni-moda-italic-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Bodoni Moda';font-style:italic;font-weight:400 900;font-display:swap;src:url(fonts/bodoni-moda-italic-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Bodoni Moda';font-style:normal;font-weight:400 900;font-display:swap;src:url(fonts/bodoni-moda-normal-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Bodoni Moda';font-style:normal;font-weight:400 900;font-display:swap;src:url(fonts/bodoni-moda-normal-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Jost';font-style:normal;font-weight:300 600;font-display:swap;src:url(fonts/jost-normal-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Jost';font-style:normal;font-weight:300 600;font-display:swap;src:url(fonts/jost-normal-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}

/* ===== 1 · tokens (old names kept, so every rule that uses var(--x) re-colours at once) ===== */
:root{--bg:#0C0D10;--bg2:#121419;--card:#15171C;--card2:rgba(255,255,255,.065);--line:rgba(255,255,255,.10);--line2:rgba(255,255,255,.16);
--txt:#F3F4F6;--txt2:#C2C7CF;--mut:#8D939D;--faint:#5A606A;--pink:#DDE1E7;--cyan:#C9CED6;--lime:#7CFFB2;--warn:#E9B08F;--red:#FF7A6E;
--plat:linear-gradient(135deg,#FAFBFC 0%,#C9CED6 45%,#F1F3F6 70%,#AEB4BD 100%);--on-plat:#121418;
--rose:linear-gradient(135deg,#D9A3AE 0%,#B87A93 48%,#7E4E6E 100%);--rose-1:#D9A3AE;--rose-2:#7E4E6E;--rose-line:rgba(217,163,174,.55);
--glass:rgba(22,24,29,.78);--glass-line:rgba(255,255,255,.10);--glass-sh:0 10px 24px -12px rgba(20,22,27,.55);
--serif:"Bodoni Moda","Bodoni 72",Didot,serif;--sans:"Jost","Avenir Next",-apple-system,BlinkMacSystemFont,sans-serif;
/* LOGO SWAP POINT: point these at the new logo files when it's picked (header mark + auth hero mark) */
--rp-logo:url(icons/icon-192.png?v=11);--rp-logo-big:url(icons/icon-512.png?v=11)}
html,body{background:radial-gradient(130% 55% at 50% -5%,#1D2027 0%,#0C0D10 62%) fixed,#0C0D10;color:var(--txt);font:15px/1.4 var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"lnum" 1}
a{color:#DDE1E7}
.serif{font-family:var(--serif);font-weight:500;font-variation-settings:"opsz" 12;font-variant-numeric:lining-nums}

/* ---- auto remap of the old palette (180 rules) ---- */
header#top{background:linear-gradient(180deg,#1A1B1D,#111213)}
#offlineBar{background:#311B0E;color:#E5BCA4;border-bottom:1px solid #5B321A}
#map{background:#202225}
nav#tabs{background:#141518}
.btn.pri{background:linear-gradient(135deg,var(--pink),#D8DADF)}
.btn.cy{color:#16171A}
.chip.on{background:rgba(216,218,223,.14);color:#EAEBED}
.av{color:#111213}
.star{color:#646972}
.star.on{color:#D4916A;text-shadow:0 0 10px rgba(212,145,106,.5)}
.badge.clash{background:rgba(246,102,86,.18);color:#F99E94;border:1px solid rgba(246,102,86,.5)}
.badge.live{background:rgba(108,206,149,.15);border:1px solid rgba(108,206,149,.45)}
.alert.red{background:rgba(246,102,86,.12);border:1px solid rgba(246,102,86,.45)}
.alert.info{background:rgba(216,218,223,.08);border:1px solid rgba(216,218,223,.35)}
.alert.warn{background:rgba(205,127,82,.1);border:1px solid rgba(205,127,82,.45)}
.neg{color:#F99E94}
#toast{color:#17181A}
.share-chip{background:rgba(20,21,24,.92)}
.fab{background:rgba(20,21,24,.95)}
.here-btn{background:linear-gradient(135deg,var(--pink),#D8DADF);box-shadow:0 6px 24px rgba(216,218,223,.35)}
.fm .bub{color:#111213}
.fm.stale .bub{border-color:#8C92A0}
.fm.stale .lbl{background:rgba(43,45,49,.92);color:#D3D6DB}
.fm.stale .lbl .ls{color:#B6BBC4}
.fm .lbl{background:rgba(17,18,19,.88)}
.pinm .lbl,.stagem .lbl,.homem .lbl{color:#17181A}
.stagem .lbl{background:rgba(216,218,223,.92)}
.leaflet-container{background:#202225}
.leaflet-control-attribution{background:rgba(17,18,19,.7)!important;color:#ABB0BA}
.leaflet-control-attribution a{color:#D8DADF}
.hero .lg{box-shadow:0 10px 40px rgba(216,218,223,.35)}
.festtile.on{background:rgba(216,218,223,.10)}
.fstat{color:#E5BCA4}
.tag.off{background:rgba(216,218,223,.16);color:#D8DADF;border:1px solid rgba(216,218,223,.5)}
.tag.un{background:rgba(171,176,186,.12)}
.tag.crew{background:rgba(216,218,223,.1);color:#D8DADF;border:1px solid rgba(216,218,223,.4)}
.partym .pe{background:#2E3136}
.poim .lbl,.partym .lbl{background:rgba(17,18,19,.85)}
.mustknow{border-color:rgba(212,145,106,.5);background:linear-gradient(180deg,rgba(212,145,106,.08),var(--card))}
.sdot{background:#646972}
.sdot.live{box-shadow:0 0 6px rgba(108,206,149,.8)}
.sdot.stale{background:#8C92A0}
.tlwrap{background:#17181B}
.tl-ruler{background:#17181B}
.tl-band{background:#2F3237;border-top:1px solid #44474E;border-bottom:1px solid #44474E}
.tl-band span{color:#E1E3E6}
.tlc{border:1px solid #484C53}
.tlc.on{background:linear-gradient(135deg,rgba(216,218,223,.32),rgba(216,218,223,.3))}
.tlc .ini{color:#17181A}
.tlc.on .tt{color:#ECEDEF}
.tlstar{border:1.5px solid #8C92A0}
.tlstar.on{color:#656A75}
.tl-now{background:rgba(246,102,86,.7);box-shadow:0 0 8px rgba(246,102,86,.7)}
.ini.big{color:#17181A}
.ini.ph{background-color:#2F3237}
.set .ini.lp{color:#17181A}
#reqBar{background:linear-gradient(90deg,rgba(216,218,223,.22),rgba(216,218,223,.22));color:#E8EAED;border-bottom:1px solid rgba(216,218,223,.5)}
.tbadge{box-shadow:0 0 0 2px #141518}
.authnote{border-color:rgba(216,218,223,.45);background:linear-gradient(135deg,rgba(216,218,223,.10),rgba(216,218,223,.10))}
.authnote .small{color:#DDDFE4}
.pend-dot{background:var(--pink,#D8DADF);box-shadow:0 0 0 0 rgba(216,218,223,.5)}
.reqcard{border-color:rgba(216,218,223,.55);background:linear-gradient(135deg,rgba(216,218,223,.12),rgba(216,218,223,.08))}
.tag.admin{background:rgba(108,206,149,.12);color:#B3E6C8;border:1px solid rgba(108,206,149,.45)}
.btn.danger{background:rgba(246,102,86,.14);border-color:rgba(246,102,86,.55);color:#FBBEB7}
.card.exists{border-color:rgba(205,127,82,.55);background:linear-gradient(135deg,rgba(205,127,82,.10),rgba(216,218,223,.08))}
.fgwarn{background:rgba(205,127,82,.10);border:1px solid rgba(205,127,82,.45)}
.fmap-ctl{background:rgba(20,21,24,.92)}
.fm-tg .sw{background:#41444A}
.fmap-legend{background:#131415}
.me-dot span{background:#D8DADF;box-shadow:0 0 0 0 rgba(216,218,223,.6),0 1px 4px rgba(0,0,0,.5)}
.fe.ini{background:linear-gradient(135deg,#474A51,#474A51)}
.fpdates{color:#E5BCA4}
.tag.tba{background:rgba(205,127,82,.12);color:#E5BCA4;border:1px solid rgba(205,127,82,.45)}
.otpbox{caret-color:var(--cyan,#D8DADF)}
.otpbox:focus{border-color:var(--cyan,#D8DADF);box-shadow:0 0 0 3px rgba(216,218,223,.18)}
.jcmsg.bad{color:#F88072}
.jcmsg.warn{color:#D69670}
.jcshare{background:rgba(216,218,223,.08);border:1px solid rgba(216,218,223,.25)}
.authnote{border:1px solid rgba(216,218,223,.3)}
#sosBtn{background:#E02510;box-shadow:0 6px 22px rgba(224,37,16,.55),0 0 0 4px rgba(224,37,16,.25)}
.sosrow{background:#D1220F;border-bottom:1px solid #F88072}
.sosrow.mine{background:#7A150A}
#sos{background:#17181A}
.soscall{background:#F43E2A;box-shadow:0 8px 28px rgba(244,62,42,.45);border:2px solid #F99D93}
.soscall2{color:#FDD8D4}
.sostip{color:#FCCBC5}
.sosnote a{color:#FBBEB7}
.sosalert{color:#BA1B0A}
.sosok{background:#2A7F4D}
.soscrewst.ok{background:rgba(70,194,122,.18);border:1px solid rgba(70,194,122,.5)}
.soscrewst.warn{background:rgba(205,127,82,.16);border:1px solid rgba(205,127,82,.5);color:#EBCDBC}
.sosm .bub{color:#111213;border:3px solid #F43E2A}
.sosm .ring{background:rgba(244,62,42,.55)}
.sosm .lbl{background:#E02510}
.aidm .pe{box-shadow:0 0 0 4px rgba(244,62,42,.6)}
.aidm .lbl{color:#BA1B0A}
.sostxt{color:#F66C5D}
.sosfirst{background:rgba(205,127,82,.16);border-color:rgba(205,127,82,.6);color:#F1DCD0}
.meetrow{background:linear-gradient(90deg,#C17B90,#C585B2);border-bottom:1px solid #984780}
.meetrow.cx{background:#4F2F45;color:#FAF4F8;border-bottom-color:#784A6A}
.meetmore{background:#C585B2}
.meetm .mhead{background:linear-gradient(135deg,#C17B90,#C585B2)}
.meetm .mlbl{background:#34192C;border:1.5px solid #C17B90}
.btn.meetbtn{background:linear-gradient(135deg,#C17B90,#C585B2)}
.meetli.now .small{color:#D4A5B3}
.meetcard{border:1px solid #C17B90;background:linear-gradient(135deg,rgba(193,123,144,.16),rgba(197,133,178,.10))}
.meetsheet .mtimebox{background:linear-gradient(135deg,#C17B90,#C585B2)}
.meetsheet.cancelled .mtimebox,.meetsheet.past .mtimebox{background:#4F2F45}
.meetsheet .rsvp .btn.on{background:linear-gradient(135deg,#C17B90,#C585B2)}
.meetcreate .mseg button.on{background:linear-gradient(135deg,#C17B90,#C585B2)}
.meetcreate .chip.on{background:linear-gradient(135deg,#C17B90,#C585B2)}
#meetPick{background:linear-gradient(135deg,#C17B90,#C585B2)}
#updBar{color:#17181A}
#mapUi .fabs #sosBtn{border:2px solid #F66C5D;background:rgba(20,21,24,.95);color:#F66C5D}
#mapUi .fabs #sosBtn.live{background:#C82210}
.meet-btn{border:1.5px solid #C17B90;background:rgba(30,14,25,.95);box-shadow:0 6px 24px rgba(193,123,144,.25)}
#offMapChip{background:#ECEDF0;color:#3E4147}
.ini.big{box-shadow:0 0 0 2px var(--bg2),0 0 0 4px rgba(216,218,223,.55)}
.djmag{background:linear-gradient(135deg,rgba(212,145,106,.18),rgba(216,218,223,.14));border:1px solid rgba(212,145,106,.55)}
.djlogo{color:#111213}
.djlogo b{color:#D9200B}
.djt{color:#EBCDBC}
.djn{color:#D4916A}
.djchip{color:#111213}
.lk-sp svg{fill:#3DB870}
.lk-yt svg{fill:#F2240D}
span.nowart{text-decoration-color:rgba(171,176,186,.45)}
.findbtn{border-color:#95467D;background:rgba(197,133,178,.16);color:#FAF4F8}
.leaflet-popup-content .popfind{background:linear-gradient(135deg,#C17B90,#C585B2)}
.radarall{border:1px solid #95467D;background:linear-gradient(135deg,rgba(193,123,144,.22),rgba(197,133,178,.22))}
.rdr{color:var(--txt,#FAF4F8);background:radial-gradient(110% 70% at 50% 42%,#381A2F 0%,#1F0F1A 60%,#0E0F10 100%)}
.rd-x{border:1px solid #5A2B4C;background:rgba(52,25,44,.92);color:#FAF4F8}
.rd-allow{background:linear-gradient(135deg,#C17B90,#C585B2)}
.rd-sos{background:#AE536E}
.rd-radar .edge{fill:rgba(50,24,42,.78);stroke:#9D4A84}
.rd-radar .rg{stroke:#70345E}
.rd-radar .rl{fill:#BF84AD}
.rd-radar .nbg{fill:#32182A;stroke:#C17B90}
.rd-radar .sweep{background:conic-gradient(from 0deg,rgba(197,133,178,0) 0deg,rgba(197,133,178,0) 300deg,rgba(197,133,178,.16) 352deg,rgba(193,123,144,.28) 360deg)}
.rd-radar .mebg{fill:rgba(31,15,26,.9)}
.rd-radar .path{stroke:#C17B90;filter:drop-shadow(0 0 4px #C17B90)}
.rd-radar #rdLine.stale .path{stroke:#A8849D}
.rd-radar #rdLine.stale .chev{stroke:#CFABC4}
.rd-av{color:#180C15}
.rd-dot .lb{background:rgba(24,12,21,.85)}
.rd-dot.sel .rd-av{box-shadow:0 0 0 4px #C17B90,0 0 22px #C17B90}
.rd-dot.stale .rd-av{border-color:#A8849D}
.rd-dot.stale .lb{color:#CFABC4}
.rd-card{background:rgba(52,25,44,.95);border:1px solid #833D6E}
.rd-card .sub{color:#E5C9DD}
.rd-card.stale .big{color:#CFABC4}
.rd-card.stale .sub{color:#BD91B0}
.rd-card.here{border-color:#C17B90;box-shadow:0 0 0 2px rgba(193,123,144,.35),0 10px 30px rgba(193,123,144,.25)}
.rd-card.here .big{background:linear-gradient(90deg,#C17B90,#DAB0CD)}
.rd-hint{color:#C99CBB}
.rd-card.rc{background:linear-gradient(160deg,rgba(86,40,72,.72),rgba(43,20,36,.82));border:1px solid rgba(218,176,205,.28)}
.rd-card.rc .rd-av{box-shadow:0 0 0 2.5px #2B1424,0 0 0 4.5px #CA8FA1,0 6px 18px rgba(193,123,144,.35)}
.rc .rc-soft{color:#E3C3D9}
.rc .rc-dist{background:linear-gradient(90deg,#CA8FA1,#D09AC0)}
.rc .rc-dir{color:#F7EEF4}
.rc .rc-fresh{color:#CB9FBE}
.rc .rc-live{background:#CA8FA1;box-shadow:0 0 0 3px rgba(202,143,161,.22)}
.rc .rc-herebig{background:linear-gradient(90deg,#CA8FA1,#DAB0CD)}
.rd-card.rc.here{border-color:rgba(202,143,161,.7);box-shadow:0 0 0 1px rgba(202,143,161,.45),0 0 34px rgba(193,123,144,.35),0 18px 40px rgba(0,0,0,.5)}
.rd-card.rc.stale .rd-av{box-shadow:0 0 0 2.5px #2B1424,0 0 0 4.5px #906683}
.rd-card.rc.stale .rc-dist,.rd-card.rc.stale .rc-hero b,.rd-card.rc.stale .rc-line b{color:#CFABC4;-webkit-text-fill-color:#CFABC4}
.rd-card.rc.stale .rc-dir,.rd-card.rc.stale .rc-pill,.rd-card.rc.stale .rc-sent{color:#BD91B0}
.rd-card.rc.stale .rc-fresh{color:#ECD8E6}
.rc-B .rc-who .rd-av{box-shadow:0 0 0 2px #2B1424,0 0 0 3.5px #CA8FA1}
.rc-B .rc-hero b{background:linear-gradient(90deg,#CA8FA1,#D09AC0)}
.rc-B .rc-hero span{color:#EFDDEA}
.rc-B .rc-hero .rc-was{color:#BD91B0}
.rc-B .rc-pill{background:rgba(202,143,161,.12);border:1px solid rgba(202,143,161,.35)}
.rc-C .rc-dial{background:radial-gradient(circle at 50% 40%,rgba(202,143,161,.22),rgba(193,123,172,.12) 70%);border:1.5px solid rgba(218,176,205,.45);box-shadow:inset 0 0 18px rgba(193,123,144,.18)}
.rc-C .rc-dial .rc-ar.big{filter:drop-shadow(0 0 6px rgba(193,123,144,.7))}
.rc-C .rc-dial.here{border-color:rgba(202,143,161,.8)}
.rc-C.stale .rc-dial{border-color:rgba(200,150,185,.3)}
.rc-C .rc-label{color:#D5A7B5}
.rc-C.stale .rc-label{color:#C69BB9}
.rc-C .rc-sent{color:#F5E9F1}

/* ===== 2 · chrome ===== */
header#top{background:rgba(12,13,16,.72);border-bottom:1px solid rgba(255,255,255,.06);-webkit-backdrop-filter:blur(24px) saturate(1.4);backdrop-filter:blur(24px) saturate(1.4)}
#crewName{font:italic 400 23px/1.1 var(--serif);font-variation-settings:"opsz" 14;letter-spacing:.005em;background:var(--plat);-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:2px}
#festName{font:500 10.5px/1.3 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--mut);margin-top:2px}
.logo{background-image:var(--rp-logo);border-radius:9px;box-shadow:0 0 0 1px rgba(255,255,255,.12)}
.pill{background:var(--card2);border-color:var(--line);color:var(--txt2);font:500 12px var(--sans);letter-spacing:.02em}
.pill.ok .dot{background:var(--lime);box-shadow:0 0 0 3px rgba(124,255,178,.18)}
.homenav{font-size:0;color:var(--txt2);background:var(--card2);border-color:var(--line);border-radius:12px}
.homenav::before{content:"";width:20px;height:20px;background:currentColor;-webkit-mask:url(icons/ui/house.svg) center/contain no-repeat;mask:url(icons/ui/house.svg) center/contain no-repeat}
nav#tabs{background:rgba(14,15,19,.95);-webkit-backdrop-filter:blur(24px) saturate(1.4);backdrop-filter:blur(24px) saturate(1.4);border-top:1px solid rgba(255,255,255,.08)}
nav#tabs button{color:var(--faint);font:500 9.5px/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;gap:5px;padding-top:9px}
nav#tabs button.on{color:#F3F4F6}
nav#tabs button .ti,nav#tabs button.on .ti{font-size:0;width:22px;height:22px;display:block;background:currentColor;-webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat;filter:none;opacity:1}
nav#tabs [data-tab=lineup] .ti{--ic:url(icons/ui/headphones.svg)}nav#tabs [data-tab=map] .ti{--ic:url(icons/ui/map-pin.svg)}
nav#tabs [data-tab=split] .ti{--ic:url(icons/ui/wallet.svg)}nav#tabs [data-tab=rides] .ti{--ic:url(icons/ui/car.svg)}
nav#tabs [data-tab=info] .ti{--ic:url(icons/ui/info.svg)}nav#tabs [data-tab=crew] .ti{--ic:url(icons/ui/users-round.svg)}
.tbadge{background:#F3F4F6;color:var(--on-plat);box-shadow:0 0 0 2px #0E0F13;font:600 10.5px/18px var(--sans)}
h1{font:500 36px/1.02 var(--serif);font-variation-settings:"opsz" 16;letter-spacing:-.01em;margin:8px 0 8px}
h2{font:500 23px/1.12 var(--serif);font-variation-settings:"opsz" 12;letter-spacing:-.005em}
h3,.stg-h,.gt-h,h3.night{font:500 11px/1.3 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--mut)}
.card,.crewcard,.festtile,.reqcard,.pendcard{background:#15171C;border:1px solid rgba(255,255,255,.08);border-radius:22px}
.card.exists{border-radius:22px}
.btn{border-radius:14px;font:500 14px/1.2 var(--sans);letter-spacing:.02em;background:rgba(255,255,255,.065);border:1px solid var(--line);color:var(--txt);transition:transform .12s ease}
.btn:active,.chip:active,.fab:active,.seg button:active{transform:scale(.97)}
.btn.pri,.btn.cy{background:var(--plat);color:var(--on-plat);border:0;font-weight:600;box-shadow:0 6px 14px -8px rgba(0,0,0,.7),inset 0 1px 0 rgba(255,255,255,.6)}
.btn.danger{background:transparent;border:1px solid rgba(255,122,110,.55);color:#FF9C90}
.btn.sm{border-radius:11px;font-size:13px}
.in,select.in,textarea.in{background:#15171C;border:1px solid var(--line);border-radius:14px;color:var(--txt);font-family:var(--sans)}
.in:focus{border-color:rgba(221,225,231,.45);box-shadow:0 0 0 3px rgba(221,225,231,.18)}
.in::placeholder{color:#5F6570}
.field>span{font:500 10.5px/1.3 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--mut)}
.seg,.seg2,.vt{background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:3px}
.seg button,.seg2 button,.vt button{border-radius:11px;font:500 13px/1.2 var(--sans);letter-spacing:.03em;color:var(--mut)}
.seg button.on,.seg2 button.on,.vt button.on{background:var(--plat);color:var(--on-plat);font-weight:600;box-shadow:0 6px 14px -6px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,255,255,.7)}
.chip{background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.08);border-radius:10px;font:400 13px var(--sans);color:var(--txt2)}
.chip.on{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.28);color:#F3F4F6}
.badge,.tag{font:500 9.5px/1.5 var(--sans);letter-spacing:.14em;text-transform:uppercase;border-radius:999px;background:rgba(255,255,255,.07);color:var(--txt2);border:1px solid rgba(255,255,255,.08)}
.badge.live{background:rgba(124,255,178,.10);color:#BFF5D5;border-color:rgba(124,255,178,.25)}
.badge.live::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 3px rgba(124,255,178,.18);margin-right:5px;vertical-align:1px}
.badge.clash{color:#E9B08F;background:rgba(233,176,143,.12);border-color:rgba(233,176,143,.25)}
.alert{border-radius:16px;font-family:var(--sans)}
.alert.info{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12)}
.alert.red{background:rgba(255,122,110,.09);border:1px solid rgba(255,122,110,.35)}
.alert.warn{background:rgba(233,176,143,.08);border:1px solid rgba(233,176,143,.32)}
.big{font:500 24px/1.15 var(--serif);font-variation-settings:"opsz" 12}
.money{font-family:var(--serif);font-weight:500;font-variation-settings:"opsz" 12;font-variant-numeric:lining-nums}
.pos{color:#A9D8B8}.neg{color:#FF9C90}
.list-item{border-bottom-color:rgba(255,255,255,.05)}
#modal{background:rgba(5,6,8,.55)}
#modal .sheet,#sos .sosin{background:rgba(20,22,27,.93);-webkit-backdrop-filter:blur(30px) saturate(1.4);backdrop-filter:blur(30px) saturate(1.4);border:1px solid rgba(255,255,255,.10);border-radius:26px 26px 0 0;animation:rpSheet .32s cubic-bezier(.32,.72,0,1)}
#modal .sheet::before{content:"";display:block;width:38px;height:5px;border-radius:3px;background:rgba(255,255,255,.22);margin:-8px auto 12px}
@keyframes rpSheet{from{transform:translateY(40px);opacity:.4}to{transform:none;opacity:1}}
#toast{background:rgba(22,24,29,.92);border:1px solid rgba(255,255,255,.12);color:var(--txt);font:500 13px var(--sans);border-radius:999px;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}
#offlineBar,#reqBar,#meetBar,#sosBar{font:500 13px/1.35 var(--sans)}
#offlineBar{background:rgba(233,176,143,.10);color:#F0CDB8;border-bottom:1px solid rgba(233,176,143,.22)}
#reqBar{background:rgba(255,255,255,.06);color:var(--txt);border-bottom:1px solid var(--line)}
#sosBar{border-left:2px solid var(--red)}
#updBar{background:var(--plat);color:var(--on-plat);font:600 13.5px var(--sans);letter-spacing:.02em}
.muted{color:var(--mut)}
.hero .lg{background-image:var(--rp-logo-big);box-shadow:0 18px 40px -16px rgba(0,0,0,.9),0 0 0 1px rgba(255,255,255,.10)}
.hero h1,.gatebox h1{font:500 40px/1.02 var(--serif);font-variation-settings:"opsz" 16}
.hero.compact h1{font-size:34px}
.otpbox{border-radius:14px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.14);font:500 24px var(--serif);font-variant-numeric:lining-nums;caret-color:#DDE1E7}
.toggle input,.chk input{accent-color:#C9CED6}
.fm-tg input:checked+.sw{background:#DDE1E7}
/* ===== 3 · lineup ===== */
#lseg{margin-bottom:12px}
.set{border-bottom:1px solid rgba(255,255,255,.05);padding:12px 2px;gap:12px}
.set .tm{font:500 10px/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--faint);min-width:46px}
.set .tm b{display:block;font:500 17px/1.1 var(--serif);font-variation-settings:"opsz" 10;font-variant-numeric:lining-nums;letter-spacing:0;text-transform:none;color:#EEF0F3}
.set .ar{font:500 18px/1.15 var(--serif);font-variation-settings:"opsz" 10;color:#F5F6F8}
.set .ar .badge{font-family:var(--sans);margin-left:6px;vertical-align:2px}
.stg{font:400 12px var(--sans);color:var(--txt2);letter-spacing:.02em}
.set .ini.lp{width:46px;height:52px;border-radius:12px;background-color:#2A2E36;color:#E8EBEF;font:600 13px var(--serif);margin-left:0}
.ini.ph{background-color:#1A1D22}
.star{color:var(--faint)}.star.on{color:#E8EBEF}
.av{background:#2A2E36!important;color:#E8EBEF;font:600 11px var(--serif);box-shadow:0 0 0 2px #14161A,inset 0 0 0 2px var(--c,transparent)}
.avs .av{border-color:#14161A}
.tlday b{font:500 19px var(--serif);font-variant-numeric:lining-nums}
.tlday button{background:rgba(255,255,255,.055);border-color:rgba(255,255,255,.10);border-radius:11px}
.tlc{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:10px}
.tlc.on{background:rgba(255,255,255,.10);border-color:rgba(221,225,231,.65)}
.tlc.live{box-shadow:inset 2px 0 0 var(--lime)}
.tlc .nm{font-family:var(--sans);font-weight:500}
.tl-ruler .tk{font:400 10px var(--sans);color:var(--faint)}
.tl-now{background:#F3F4F6;width:1px;box-shadow:none}
.tl-now b{background:var(--plat);color:var(--on-plat);font:600 9px var(--sans)}
.setsheet h2{font-size:28px}
/* Now playing = the Wallet card (photo set by JS as --ph) */
.stage-now{position:relative;overflow:hidden;border-radius:22px;background:radial-gradient(120% 90% at 20% 0%,#2A2E36,#15171C);border:1px solid rgba(255,255,255,.14);isolation:isolate}
.stage-now.hasph::before{content:"";position:absolute;inset:-40px;z-index:-1;background:var(--ph) center/cover;filter:blur(36px) saturate(.75) brightness(.55);opacity:.9}
.stage-now .sn-stage{font:500 10.5px/1.3 var(--sans)!important;letter-spacing:.22em!important;text-transform:uppercase;color:#C2C7CF!important}
.stage-now .sn-art{font:500 26px/1.05 var(--serif)!important;font-variation-settings:"opsz" 14;margin-top:6px!important;color:#F5F6F8}
.stage-now .sn-art .badge{font-family:var(--sans);vertical-align:5px;margin-left:4px}
.stage-now .sn-ph{float:right;width:64px;height:64px;border-radius:16px;margin:0 0 6px 12px;box-shadow:0 10px 24px -10px rgba(0,0,0,.8);background-size:cover;background-position:center}
#nowState .big{font-size:30px}
/* ===== 4 · map: ivory paper basemap (protomaps flavor set in theme32.js), graphite glass on top ===== */
#map,#map.vecbase{background:#EEE7DA}
.leaflet-container{background:#EEE7DA;font-family:var(--sans)}
.share-chip,.fmap-ctl,.fab,.fabs .fab,.fabzoom,.homenav.mapctl{background:var(--glass);border:1px solid var(--glass-line);box-shadow:var(--glass-sh);-webkit-backdrop-filter:blur(20px) saturate(1.5);backdrop-filter:blur(20px) saturate(1.5);color:#F3F4F6}
.share-chip,.fmap-ctl{border-radius:14px;font:500 13px var(--sans)}
.fab{border-radius:16px}
.fabzoom{border-radius:14px}.fabzoom .fab{border-radius:0;box-shadow:none;border:0;-webkit-backdrop-filter:none;backdrop-filter:none;background:transparent}
.fabzoom .fab+.fab{border-top:1px solid rgba(255,255,255,.10)}
.fab small{font:500 8.5px var(--sans);letter-spacing:.12em;text-transform:uppercase}
#mapUi .fabs #sosBtn{background:var(--glass);border:1.5px solid rgba(255,105,90,.55);color:#FF8A7E;font:600 11px var(--sans);letter-spacing:.14em;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:var(--glass-sh)}
#mapUi .fabs #sosBtn.live{animation:rpSosRing 1.6s ease-in-out infinite}
@keyframes rpSosRing{50%{border-color:rgba(255,105,90,1);box-shadow:0 0 0 6px rgba(255,105,90,.18)}}
#offMapChip{background:var(--glass);color:#F3F4F6;font:500 12px var(--sans);letter-spacing:.04em;border:1px solid var(--glass-line);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}
.friends{background:rgba(14,15,19,.96);border-top:1px solid rgba(255,255,255,.10);border-radius:26px 26px 0 0;box-shadow:0 -12px 30px -14px rgba(20,22,27,.6)}
.fm .bub{background:#1E2128!important;color:#F1ECE2;font:600 13px var(--serif);border:2.5px solid #FBF8F2;box-shadow:0 0 0 2px var(--c,transparent),0 6px 14px -4px rgba(20,22,27,.6)}
.fm.here .bub{background:var(--plat)!important;color:var(--on-plat)}
.fm .lbl{background:rgba(251,248,242,.92);color:#2B211A;font:500 10px var(--sans);letter-spacing:.04em;border-radius:7px;box-shadow:0 2px 6px rgba(43,33,26,.18)}
.fm.stale .bub{opacity:.55}
.stagem .lbl{background:none!important;color:#2B211A;font:italic 400 13.5px/1.1 var(--serif);font-variation-settings:"opsz" 10;text-shadow:0 0 3px #F3EEE5,0 0 6px #F3EEE5,0 0 10px #F3EEE5;opacity:1;padding:0}
.poim .pe,.partym .pe{background:#FBF8F2;box-shadow:0 0 0 1px rgba(43,33,26,.12),0 2px 6px rgba(43,33,26,.25);filter:grayscale(1) contrast(.9)}
.poim .lbl,.partym .lbl{background:rgba(251,248,242,.92);color:#2B211A;font:500 9.5px var(--sans);letter-spacing:.03em}
.me-dot span{background:#4C8DFF;border:3px solid #fff;box-shadow:0 0 0 6px rgba(76,141,255,.16),0 2px 6px rgba(20,22,27,.4)}
.leaflet-control-attribution{background:rgba(251,248,242,.7)!important;color:#8B7D6E}
.leaflet-control-attribution a{color:#6E6152}
/* map control icons: emoji -> Lucide line icons (CSS only; the button text stays for screen readers via aria/labels) */
#fsBtn,#meBtn,#crewBtn,#festBtn,#layBtn,#homeBtn{font-size:0;gap:3px}
#fsBtn small,#meBtn small,#crewBtn small,#festBtn small,#layBtn small,#homeBtn small{font-size:8.5px}
#fsBtn::before,#meBtn::before,#crewBtn::before,#festBtn::before,#layBtn::before,#homeBtn::before{content:"";width:19px;height:19px;background:currentColor;-webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat}
#fsBtn{--ic:url(icons/ui/maximize-2.svg)}#fsBtn[aria-label="Exit full screen"]{--ic:url(icons/ui/x.svg)}#meBtn{--ic:url(icons/ui/locate-fixed.svg)}
#crewBtn{--ic:url(icons/ui/users-round.svg)}#festBtn{--ic:url(icons/ui/map.svg)}#layBtn{--ic:url(icons/ui/layers.svg)}#homeBtn{--ic:url(icons/ui/house.svg)}
#zInBtn,#zOutBtn{font:300 24px/1 var(--sans)}
.here-btn{background:var(--glass)!important;border:1px solid var(--glass-line)!important;color:#F3F4F6!important;font:500 14px var(--sans)!important;letter-spacing:.04em;border-radius:16px!important;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:var(--glass-sh)!important}
/* meet-ups: rose -> plum (Fishy asked for pink/purple; no yellow) */
.meetm .mhead{background:var(--rose);border:2.5px solid #FBF8F2;box-shadow:0 10px 24px -8px rgba(60,30,50,.65)}
.meetm .mhead::after{background:#FBF8F2}
.meetm .mlbl{background:#16181D;color:#F3F4F6;border:1px solid var(--rose-line);font:500 12.5px var(--sans);border-radius:12px;box-shadow:0 10px 24px -8px rgba(0,0,0,.55)}
.meetm .mlbl b{font:600 15px var(--serif);font-variant-numeric:lining-nums;color:#EBC3CB}
.meetrow{background:linear-gradient(90deg,rgba(184,122,147,.92),rgba(126,78,110,.92));border-bottom:1px solid rgba(0,0,0,.25);font-family:var(--sans)}
.btn.meetbtn,.meetsheet .rsvp .btn.on,.meetcreate .mseg button.on,.meetcreate .chip.on{background:var(--rose);color:#fff;border-color:transparent;font-weight:600}
.meet-btn{background:var(--glass);border:1px solid var(--rose-line);color:#F3F4F6;font:500 14px var(--sans);letter-spacing:.04em;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:var(--glass-sh)}
.meetcard{border:1px solid rgba(217,163,174,.40);background:linear-gradient(135deg,rgba(217,163,174,.12),rgba(126,78,110,.10))}
.meetsheet .mtimebox{background:var(--rose);border-radius:16px}
.meetsheet .mtime{font:500 42px/1 var(--serif);font-variant-numeric:lining-nums;font-variation-settings:"opsz" 16}
.meetsheet .min{font:italic 400 24px/1.15 var(--serif)}
/* ===== night: same ivory paper map, dimmed (body.night set by theme32.js after local sunset / before sunrise) ===== */
body.night #map,body.night #map.vecbase,body.night .leaflet-container{background:#4A4742}
/* the ivory vector basemap is redrawn dimmed by theme32.js (IVORY_NIGHT); street tiles (festivals with no offline map) are dimmed here */
body.night #map .leaflet-tile-pane>.leaflet-layer{filter:brightness(.5) saturate(.7)}
body.night .stagem .lbl{color:#F1ECE2;text-shadow:0 0 3px #2A2724,0 0 6px #2A2724,0 0 10px #2A2724}
body.night .fm .lbl,body.night .poim .lbl,body.night .partym .lbl{background:rgba(22,24,29,.86);color:#ECE6DA;box-shadow:none}
body.night .poim .pe,body.night .partym .pe{background:rgba(22,24,29,.88);box-shadow:0 0 0 1px rgba(255,255,255,.14),0 2px 6px rgba(0,0,0,.4);filter:grayscale(1) brightness(1.15)}
body.night .meetm .mhead{border-color:#ECE6DA}
body.night .leaflet-control-attribution{background:rgba(22,24,29,.6)!important;color:#8D939D}
/* ===== 5 · other tabs ===== */
.info-sec{background:#15171C;border:1px solid rgba(255,255,255,.08);border-radius:22px}
.info-sec summary{font:500 12px var(--sans);letter-spacing:.16em;text-transform:uppercase}
.mustknow{border-left:1px solid #C9CED6;border-radius:4px 16px 16px 4px}
.festtile.on,.crewcard.on{border-color:rgba(221,225,231,.5)}
.crewcard b,.festtile b{font:500 18px var(--serif);font-variation-settings:"opsz" 10}
.fpdates{font:500 10px var(--sans);letter-spacing:.16em;text-transform:uppercase}
.fprow b{font:500 17px var(--serif)}
.hr{background:rgba(255,255,255,.06)}
.temppw{font-family:var(--serif)}

/* ===== 8 · v27–v30 features in the new look (refresh Nov 2 2026 onto live v30) ===== */
/* v27 artist sheet + DJ Mag "#N" chips: platinum + serif numerals, no gold/yellow */
.ini.big{box-shadow:0 0 0 2px #121419,0 0 0 3.5px rgba(221,225,231,.55)}
.djmag{background:rgba(255,255,255,.05);border:1px solid rgba(221,225,231,.28);gap:8px;padding:4px 12px 4px 4px}
.djlogo{background:var(--plat);color:var(--on-plat);font:600 10px/1.2 var(--sans);letter-spacing:.06em}.djlogo b{color:#9E3B4A}
.djt{font:500 11px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--txt2)}
.djn{font:500 19px/1 var(--serif);font-variant-numeric:lining-nums;background:var(--plat);-webkit-background-clip:text;background-clip:text;color:transparent}
.djchip{background:transparent;color:#E8EBEF;border:1px solid rgba(221,225,231,.45);font:500 11px/1.25 var(--serif);font-variant-numeric:lining-nums;padding:0 5px;border-radius:6px;letter-spacing:.01em}
.when div{background:#15171C;border:1px solid rgba(255,255,255,.08);border-radius:14px}
.when small{font:500 10px/1.3 var(--sans);letter-spacing:.16em;color:var(--mut)}
.when b{font:500 17px var(--serif);font-variant-numeric:lining-nums}
.aimn{font:500 12px var(--sans);letter-spacing:.04em}
span.nowart{text-decoration-color:rgba(221,225,231,.35)}
/* v29 crew radar: graphite glass, rose→plum accents (the radar's pink/purple, toned like meet-ups); layout/behaviour untouched */
.findbtn{border-color:var(--rose-line);background:rgba(217,163,174,.10);color:#F3F4F6;font-family:var(--sans)}
.leaflet-popup-content .popfind{background:var(--rose);font:600 13px var(--sans);letter-spacing:.02em}
.radarall{background:linear-gradient(135deg,rgba(217,163,174,.16),rgba(126,78,110,.18));border:1px solid var(--rose-line);border-radius:14px;font:500 14px var(--sans);letter-spacing:.04em;color:#F3F4F6}
.rdr{background:radial-gradient(110% 70% at 50% 42%,#22252C 0%,#121419 58%,#0C0D10 100%);color:#F3F4F6;font-family:var(--sans)}
.rd-top .t{font:italic 400 22px/1.1 var(--serif);font-variation-settings:"opsz" 14;background:var(--plat);-webkit-background-clip:text;background-clip:text;color:transparent}
.rd-x{background:rgba(22,24,29,.85);border:1px solid rgba(255,255,255,.12);color:#E8EBEF}
.rd-allow{background:var(--plat);color:var(--on-plat);font:600 13px var(--sans)}
.rd-sos{background:#D9473C;font:600 14px var(--sans);letter-spacing:.03em}
.rd-radar .edge{fill:rgba(21,23,28,.82);stroke:rgba(221,225,231,.26);stroke-width:1.5}
.rd-radar .rg{stroke:rgba(221,225,231,.13)}
.rd-radar .rl{fill:#8D939D;font-family:"Jost",sans-serif;font-weight:500}
.rd-radar .nbg{fill:#16181D;stroke:#D9A3AE;stroke-width:1.5}
.rd-radar .n{font-family:"Bodoni Moda",serif;font-weight:600}
.rd-radar .sweep{background:conic-gradient(from 0deg,rgba(217,163,174,0) 0deg,rgba(217,163,174,0) 300deg,rgba(184,122,147,.10) 352deg,rgba(217,163,174,.22) 360deg)}
.rd-radar .mebg{fill:rgba(18,20,25,.92);stroke:rgba(243,244,246,.85);stroke-width:2}
#rdConeG stop:nth-child(1){stop-color:#D9A3AE}#rdConeG stop:nth-child(2){stop-color:#B87A93}#rdConeG stop:nth-child(3){stop-color:#7E4E6E}
#rdArG stop:nth-child(1){stop-color:#E9BCC6}#rdArG stop:nth-child(2){stop-color:#9A6385}
#rdGlow feDropShadow{flood-color:#D9A3AE;flood-opacity:.7}
.rd-radar .path{stroke:#D9A3AE;filter:drop-shadow(0 0 4px rgba(217,163,174,.8))}
.rd-radar #rdLine.stale .path{stroke:#7F858F}.rd-radar #rdLine.stale .chev{stroke:#A3A9B2}
.rd-av{color:#121418;border-color:#F3F4F6}
.rd-dot .lb{background:rgba(18,20,25,.86);font:500 11px var(--sans);letter-spacing:.02em}
.rd-dot.sel .rd-av{box-shadow:0 0 0 3px #D9A3AE,0 0 20px rgba(217,163,174,.75)}
.rd-dot.stale .rd-av{border-color:#7F858F}.rd-dot.stale .lb{color:#A3A9B2}
.rd-hint{font:400 12.5px var(--sans);letter-spacing:.02em;color:#8D939D}
/* v30 card B ("Big number"): same layout, graphite glass, serif numerals, rose→plum distance */
.rd-card.rc{background:linear-gradient(160deg,rgba(34,37,44,.82),rgba(18,20,25,.9));border:1px solid rgba(255,255,255,.10);box-shadow:0 18px 40px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.07)}
.rd-card.rc .rd-av{box-shadow:0 0 0 2.5px #15171C,0 0 0 4px #D9A3AE,0 6px 18px rgba(0,0,0,.4)}
.rc .rc-name{font:500 22px/1.15 var(--serif);font-variation-settings:"opsz" 12;color:#F3F4F6;letter-spacing:0}
.rc .rc-soft{color:#A9AFB8;font-family:var(--sans)}
.rc .rc-dist,.rc .rc-herebig,.rc-B .rc-hero b{font-family:var(--serif);font-weight:500;font-variant-numeric:lining-nums;background:linear-gradient(90deg,#EBC3CB,#B87A93 60%,#9A6385);-webkit-background-clip:text;background-clip:text;color:transparent}
.rc-B .rc-hero b{font-size:56px;letter-spacing:-.02em;font-variation-settings:"opsz" 16}
.rc-B .rc-hero span{font:500 17px var(--sans);letter-spacing:.02em;color:#C2C7CF}.rc-B .rc-hero .rc-was{color:#8D939D}
.rc-B .rc-who{font:500 16px var(--sans);letter-spacing:.02em;color:#F3F4F6}
.rc-B .rc-who .rd-av{box-shadow:0 0 0 2px #15171C,0 0 0 3.5px #D9A3AE}
.rc .rc-dir,.rc-B .rc-pill{font-family:var(--sans);font-weight:500;color:#F3F4F6}
.rc-B .rc-pill{background:rgba(217,163,174,.10);border:1px solid rgba(217,163,174,.38);letter-spacing:.01em}
.rc-ar stop:nth-child(1){stop-color:#EBC3CB}.rc-ar stop:nth-child(2){stop-color:#9A6385}
.rc .rc-fresh{color:#8D939D;font-family:var(--sans)}
.rc .rc-live{background:#D9A3AE;box-shadow:0 0 0 3px rgba(217,163,174,.22)}
.rc-C .rc-label{color:#D9A3AE}
.rd-card.rc.here{border-color:rgba(217,163,174,.65);box-shadow:0 0 0 1px rgba(217,163,174,.4),0 0 34px rgba(184,122,147,.35),0 18px 40px rgba(0,0,0,.5)}
.rd-card.rc.stale .rd-av{box-shadow:0 0 0 2.5px #15171C,0 0 0 4px #5A606A}
.rd-card.rc.stale .rc-dist,.rd-card.rc.stale .rc-hero b,.rd-card.rc.stale .rc-line b{background:none;color:#A3A9B2;-webkit-text-fill-color:#A3A9B2}
.rd-card.rc.stale .rc-dir,.rd-card.rc.stale .rc-pill,.rd-card.rc.stale .rc-sent{color:#8D939D}.rd-card.rc.stale .rc-pill{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.12)}
.rd-card.rc.stale .rc-fresh{color:#C2C7CF}

/* ===== MAP COLOUR (Nov 2 2026) — Fishy: "more colour, look like a real map", keep colour zoomed in AND at night.
   The vector basemap colours live in theme32.js (MAPC palettes A/B/C); this block matches the map background, the
   street-tile fallback (zoomed out / outside the saved venue map) and the POI pins to the chosen palette. ===== */
body.mapc-A #map,body.mapc-A #map.vecbase{background:#F3F1EC}
body.mapc-B #map,body.mapc-B #map.vecbase{background:#EFEEE9}
body.mapc-C #map,body.mapc-C #map.vecbase{background:#EEE3CF}
body.mapc-B #map .leaflet-tile-pane>.leaflet-layer{filter:saturate(1.3) contrast(1.03)}
body.mapc-C #map .leaflet-tile-pane>.leaflet-layer{filter:sepia(.24) saturate(1.15)}
body.night.mapc-A #map,body.night.mapc-A #map.vecbase,body.night.mapc-A .leaflet-container{background:#2A2F36}
body.night.mapc-B #map,body.night.mapc-B #map.vecbase,body.night.mapc-B .leaflet-container{background:#262C35}
body.night.mapc-C #map,body.night.mapc-C #map.vecbase,body.night.mapc-C .leaflet-container{background:#302B26}
body.night.mapc-A #map .leaflet-tile-pane>.leaflet-layer{filter:brightness(.6) saturate(1.15) contrast(1.05)}
body.night.mapc-B #map .leaflet-tile-pane>.leaflet-layer{filter:brightness(.6) saturate(1.45) contrast(1.05)}
body.night.mapc-C #map .leaflet-tile-pane>.leaflet-layer{filter:sepia(.25) brightness(.58) saturate(1.15) contrast(1.05)}
/* POI pins (food, water, toilets…) in colour again — the grey emoji added to the black-and-white feel */
body[class*="mapc-"] .poim .pe,body[class*="mapc-"] .partym .pe{filter:none}
body.night[class*="mapc-"] .poim .pe,body.night[class*="mapc-"] .partym .pe{filter:brightness(1.05)}

/* DAYCHIPS (Nov 2 2026): festival days as chips in List + Timeline; active day rose (pink/purple), app font, never serif */
.seg.daychips{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.seg.daychips::-webkit-scrollbar{display:none}
.seg.daychips button{flex:1 0 auto;min-width:84px;font:500 13px/1.2 var(--sans);letter-spacing:.02em}
.tlbar .seg.daychips{flex:1;min-width:0;max-width:230px}.tlbar .seg.daychips button{min-width:58px;padding:8px 6px}
html body .seg.daychips button.on{background:var(--rose-2,#7E4E6E);background-image:var(--rose);color:#fff;font-weight:600;box-shadow:0 6px 14px -6px rgba(126,78,110,.7),inset 0 1px 0 rgba(255,255,255,.35)}
@media (orientation:landscape) and (max-height:520px){body.tlwide .gridmode .tlbar .daychips{margin-top:0!important;max-width:320px}}

/* ZOOMLAG (Nov 3 2026, Fishy: lag zooming in/out): the street-tile colour filters above now sit once on the street layer instead of on every tile image (was: one filter per tile, redone for every tile on every zoom frame). Same colours at rest: these filters work pixel by pixel. */
