@import url('https://fonts.googleapis.com/css2?family=Bungee&family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&display=swap');
:root{--lime:#c8fa64;--ink:#23251f;--paper:#fbfcf6;--purple:#7756de;--muted:#66695f}*{box-sizing:border-box}body{margin:0;background:#e9ecdf;color:var(--ink);font-family:'DM Sans',sans-serif;font-size:16px}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:focus-visible,a:focus-visible{outline:3px solid var(--purple);outline-offset:3px}.app{max-width:520px;margin:auto;background:var(--paper);min-height:100dvh;padding-bottom:184px}header{display:flex;justify-content:space-between;align-items:center;padding:20px 21px 17px}.brand{display:flex;gap:9px;align-items:center;text-decoration:none;color:var(--ink);font-family:'Space Grotesk',sans-serif;font-size:29px;font-weight:700;letter-spacing:-1.8px;line-height:1}.brand-icon{font-size:34px;transform:rotate(-10deg)}.outline{color:var(--purple)}.brand small{display:block;font:700 9px 'DM Sans';letter-spacing:1.5px;margin-top:7px}.round{border:1.5px solid var(--ink);border-radius:50%;background:transparent;width:36px;height:36px;font-weight:700}.demo{background:var(--ink);color:var(--lime);padding:7px 22px;font-size:11px;font-weight:700;letter-spacing:1px}.demo span{color:#e2e6d8;letter-spacing:.1px;font-weight:400}.explore{padding:22px 21px 15px}.location{display:flex;justify-content:space-between;font-size:10px;font-weight:700;letter-spacing:1.1px}.edition{color:var(--muted)}h1{font:700 clamp(36px,10vw,46px)/1.04 'Space Grotesk',sans-serif;letter-spacing:-2px;margin:17px 0 20px}h1 em{font-style:normal;background:var(--lime);padding:0 7px;border-radius:5px;display:inline-block;transform:rotate(-3deg)}.search{display:flex;align-items:center;gap:9px;background:white;border:1.5px solid #d8ddce;border-radius:14px;padding:10px 14px}.search span{font-size:25px}.search input{border:0;outline:0;min-width:0;width:100%;background:none;font-size:14px}.filters{display:flex;gap:7px;overflow:auto;margin-top:13px;padding:2px 0 3px;scrollbar-width:none}.filters button{white-space:nowrap;border:1px solid #d8ddce;background:white;border-radius:30px;min-height:39px;padding:8px 12px;font-size:13px;font-weight:600}.filters button.active{background:var(--ink);color:white;border-color:var(--ink)}.map-wrap{position:relative;height:265px;border-top:1px solid #ddd;border-bottom:1px solid #ddd}#map{height:100%;background:#e8eddb;z-index:0}.leaflet-tile{filter:saturate(.55)}.map-location{position:absolute;right:15px;bottom:32px;background:white;border:1px solid #ddd;border-radius:14px;width:44px;height:44px;font-size:30px;box-shadow:0 3px 10px #0002}.map-note{position:absolute;left:14px;top:13px;border-radius:6px;background:#ffffffea;padding:6px 9px;font-size:9px;font-weight:700;letter-spacing:.8px}.poop-pin{border:2px solid var(--ink);border-radius:15px 15px 15px 3px;background:var(--lime);display:flex;align-items:center;justify-content:center;font-size:22px;box-shadow:3px 3px 0 #23251f;transform:rotate(-5deg)}.poop-pin.purple{background:#cfbcff}.results{padding:20px 21px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:6px}h2{font:700 21px 'Space Grotesk';letter-spacing:-.8px;margin:0}.section-title h2 span{font:600 12px 'DM Sans';background:#e9eddf;padding:3px 7px;border-radius:8px;vertical-align:middle}.section-title button{font-size:12px;border:0;background:none;padding:8px 0}.helper{font-size:13px;color:var(--muted);margin:5px 0 15px}.card{display:flex;gap:12px;text-align:left;background:white;width:100%;border:1px solid #dce1d1;border-radius:17px;padding:14px;margin-bottom:10px;box-shadow:0 3px 0 #e8ecdf}.card-icon{width:57px;height:65px;flex-shrink:0;border-radius:12px;background:#e7e0fa;display:grid;place-items:center;font-size:30px}.card:nth-child(2n) .card-icon{background:#e7f3c9}.card-info{flex:1;min-width:0}.card-top{display:flex;justify-content:space-between;gap:5px}.card h3{font:700 16px 'Space Grotesk';margin:0 0 5px}.rating{font-size:13px;white-space:nowrap;font-weight:700}.card p{font-size:12px;color:var(--muted);margin:3px 0 8px}.tag{display:inline-block;background:#f0f4e7;border-radius:5px;padding:3px 6px;font-size:11px;margin:0 4px 3px 0}.urgent{position:fixed;z-index:3;bottom:calc(80px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:calc(min(100%,520px) - 36px);background:var(--lime);border:2px solid var(--ink);border-radius:17px;min-height:63px;box-shadow:0 4px 0 var(--ink);font:700 20px 'Space Grotesk'}.urgent small{display:block;font:500 11px 'DM Sans';margin-top:3px}nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);max-width:520px;width:100%;padding:8px 17px calc(9px + env(safe-area-inset-bottom));background:#fbfcf6f5;backdrop-filter:blur(12px);border-top:1px solid #dde2d3;z-index:3;display:flex;justify-content:space-around}nav button{border:0;background:none;font-size:11px;color:var(--muted);min-width:80px;min-height:48px}nav button span{display:block;font-size:25px;line-height:28px}nav button.selected{color:var(--ink);font-weight:700}.plus{color:var(--purple)}dialog{position:fixed;inset:auto 0 0;margin:0 auto;max-width:520px;width:100%;max-height:90dvh;border:0;border-radius:25px 25px 0 0;background:var(--paper);padding:12px 23px calc(25px + env(safe-area-inset-bottom));overflow:auto;color:var(--ink)}dialog::backdrop{background:#15180fa3;backdrop-filter:blur(3px)}.handle{height:4px;width:40px;background:#d1d6c9;border-radius:4px;margin:0 auto 25px}.close{position:absolute;right:15px;top:13px;border:0;background:#e9ecdf;width:36px;height:36px;border-radius:50%;font-size:25px}.big-emoji{font-size:53px;display:block;margin:5px 0 12px}.eyebrow{font-size:11px;font-weight:700;color:var(--purple);letter-spacing:1px;margin:10px 0}dialog h2{font-size:29px;max-width:90%;margin:8px 0 12px}dialog p{line-height:1.5}.sub{font-size:14px;color:var(--muted)}.score-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}.score-grid div{background:#eaf0dd;padding:15px;border-radius:13px;font-size:14px}.score-grid strong{display:block;font-size:18px;margin:5px 0}.score-grid small{font-size:12px}.review{border-top:1px solid #d9dfcf;padding:16px 0}.review p{margin:8px 0}.review small{color:var(--muted);font-size:12px}.primary,.secondary{width:100%;border:1.5px solid var(--ink);border-radius:13px;padding:14px;margin-top:10px;font-weight:700;min-height:48px}.primary{background:var(--lime)}.secondary{background:white}.field{display:block;margin:17px 0;font-size:14px;font-weight:600}.field input,.field select,.field textarea{display:block;width:100%;padding:13px;border:1px solid #c9d1bd;background:white;border-radius:10px;margin-top:7px;color:var(--ink)}.field textarea{min-height:85px;resize:vertical}#toast{position:fixed;z-index:10;bottom:170px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;padding:13px 19px;border-radius:12px;width:max-content;max-width:90%;font-size:14px;display:none}.empty{padding:25px 5px;text-align:center}.leaflet-control-attribution{font-size:9px!important}body:has(dialog[open]){overflow:hidden}@media(min-width:521px){.app{box-shadow:0 0 60px #27341b20}dialog{bottom:15px;border-radius:25px}}@media(prefers-reduced-motion:no-preference){.card:active,.primary:active{transform:scale(.98)}}

/* Identidad oficial: supercaca con marco circular. */
.brand-logo{display:block;width:64px;height:64px;object-fit:contain;flex-shrink:0;border-radius:50%}.brand{gap:10px}.round{flex-shrink:0}@media(max-width:360px){header{padding-left:14px;padding-right:14px}.brand{font-size:26px;gap:7px}.brand-logo{width:55px;height:55px}.brand small{font-size:8px;letter-spacing:1px}}
/* Morado protagonista; verde lima reservado a las acciones destacadas. */
:root{--purple:#4c2785;--paper:#f8f5ff}
body{background:#321859}
.app{background:#4c2785}
header{background:#4c2785;color:#fff}
.brand,.brand .outline{color:#fff}
.brand small{color:#eee1ff}
.brand-logo{background:#fff}
header .round{border-color:#dac5fb;color:#fff;background:#ffffff0d}
.demo{background:#351a60;color:var(--lime)}
.demo span{color:#f0e4ff}
.explore{background:#4c2785;color:#fff}
.edition{color:#ecddff}
h1 em{color:var(--ink)}
.search{color:var(--ink);background:#fff;border-color:#fff}
.filters button{background:#ffffff12;color:#fff;border-color:#b797eb}
.filters button.active{background:var(--lime);border-color:var(--lime);color:var(--ink)}
.map-wrap{border-color:#583095}
.results{background:#4c2785;color:#fff}
.section-title h2 span{background:#532990;color:#fff}
.section-title button{color:#fff}
.helper{color:#eee1ff}
.card{color:var(--ink);border-color:#ede3fc;box-shadow:0 3px 0 #351a60;background:#fff}
.card p{color:#62606b}
.card .tag{background:#f0e9fb}
.card-icon{background:#e9defa}
.card:nth-child(2n) .card-icon{background:#ecf8d8}
.empty{color:#fff}
nav{background:#351a60f5;border-color:#8254bb}
nav button{color:#eadcfb}
nav button.selected,nav .plus{color:var(--lime)}
.urgent{background:var(--lime);color:var(--ink)}
dialog{background:#fbf9ff}
dialog .close{background:#eee5fa}
.score-grid div{background:#f0e8fb}
.secondary{background:#fff}
#toast{background:#2d143f}

html,body{background-color:#4c2785;min-height:100%}.app{background-color:#4c2785;min-height:100dvh}

/* Nombre con carácter de rótulo: Bungee. */
.brand{font-family:"Bungee","Arial Black",sans-serif;font-weight:400;font-size:25px;letter-spacing:0;line-height:1.15}.brand>span{min-width:0}.brand .outline{color:var(--lime);display:block}.brand>span{text-shadow:2px 3px 0 #321859}.brand small{font-family:"DM Sans",sans-serif;font-size:8px;letter-spacing:.6px;text-shadow:none;line-height:1.5;max-width:165px}.brand-logo{width:70px;height:70px}@media(max-width:360px){.brand{font-size:23px;gap:9px}.brand-logo{width:60px;height:60px}.brand small{font-size:8px;letter-spacing:0}}

.brand-logo{background:transparent;border-radius:0}

.urgent{display:flex;align-items:center;justify-content:center;gap:9px;padding:5px 10px;min-height:70px}.urgent-roll{width:54px;height:54px;object-fit:contain;flex-shrink:0;transform-origin:50% 80%}.urgent-copy{text-align:left;font-size:clamp(16px,4.9vw,20px)}.urgent-copy small{font-size:11px}@media(prefers-reduced-motion:no-preference){.urgent-roll{animation:rollo-saludo 3.6s ease-in-out infinite}@keyframes rollo-saludo{0%,65%,100%{transform:rotate(0) translateY(0)}72%{transform:rotate(-12deg) translateY(-3px)}80%{transform:rotate(10deg) translateY(-3px)}89%{transform:rotate(-6deg) translateY(0)}}}

/* Botón principal: misma tipografía que la marca. */
.urgent-copy{font-family:"Bungee","Arial Black",sans-serif;font-weight:400;font-size:clamp(14px,4.2vw,19px);letter-spacing:0;line-height:1.25}.urgent-copy small{font-family:"DM Sans",sans-serif;font-weight:500;font-size:11px;line-height:1.4;margin-top:4px}.urgent-roll{width:54px;height:54px}@media(max-width:360px){.urgent{gap:6px;padding-inline:8px}.urgent-roll{width:45px;height:45px}.urgent-copy{font-size:14px}}

/* Tipografía única aprobada: Bungee en toda la interfaz. */
body,button,input,select,textarea,h1,h2,h3,h4,p,a,span,label,small,strong,div,nav,section,article,header,.brand,.brand small,.urgent,.urgent-copy,.urgent-copy small,.section-title h2 span{font-family:"Bungee","Arial Black",sans-serif;font-weight:400;font-synthesis:none;letter-spacing:0}
body{line-height:1.55}
h1{font-size:clamp(29px,8vw,39px);line-height:1.2;letter-spacing:-.5px}
h2{font-size:19px;line-height:1.35}
.card h3{font-size:14px;line-height:1.45;overflow-wrap:anywhere}
.card-top{flex-wrap:wrap;align-items:baseline}
.card p,.tag{line-height:1.6}
.location{flex-wrap:wrap;gap:8px;line-height:1.6}
.brand small{font-size:8px;line-height:1.65}
.search input{font-size:12px;line-height:1.6}
.filters button{font-size:12px}
.section-title{flex-wrap:wrap}
.section-title button{font-size:11px}
.helper{font-size:12px;line-height:1.7}
.urgent-copy{font-size:clamp(14px,4.2vw,19px);line-height:1.3}
.urgent-copy small{font-size:9px;line-height:1.6;max-width:245px}
nav button{font-size:10px;line-height:1.6}
nav button span{font-family:"Bungee","Arial Black",sans-serif}
dialog h2{font-size:25px;line-height:1.35}
dialog p{font-size:14px;line-height:1.8}
.field{font-size:13px;line-height:1.7}
.field input,.field select,.field textarea{font-size:14px;line-height:1.6}
.review strong{font-size:14px}
.score-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.score-grid div{font-size:12px;overflow-wrap:anywhere}
.score-grid strong{font-size:18px}
.score-grid small{font-size:11px;line-height:1.7}
@media(max-width:360px){.urgent-copy{font-size:14px}.urgent-copy small{font-size:8px}.section-title h2{font-size:17px}.card{gap:9px;padding:12px}.card-icon{width:45px}}

/* Textos de lectura y secundarios: más ligeros para móvil. */
body,p,label,input,select,textarea,small,.sub,.helper,.demo,.demo span,.location,.location span,.brand small,.card p,.tag,.rating,.section-title h2 span,.section-title button,.filters button,nav button,.urgent-copy small,.field,.field input,.field select,.field textarea,.review strong,.review small,.score-grid div,.score-grid small,.map-note,#toast,.leaflet-control-attribution,.leaflet-control-attribution a{font-family:"DM Sans",Arial,sans-serif;font-weight:400;letter-spacing:0}
.brand small{font-size:10px;font-weight:500;line-height:1.4;letter-spacing:.4px}
.demo,.demo span{font-size:12px;line-height:1.5}
.location,.location span{font-size:12px;font-weight:500}
.helper,.sub,.card p,.tag,.rating,.filters button,.section-title button,.section-title h2 span,.review small,.score-grid div,.score-grid small{font-size:14px;line-height:1.5}
.filters button.active,.rating,.review strong{font-weight:600}
nav button{font-size:12px;line-height:1.4}
.urgent-copy small{font-size:12px;font-weight:400;line-height:1.45;max-width:none}
dialog p,.field,.field input,.field select,.field textarea{font-size:16px;line-height:1.5}
.map-note{font-size:11px;font-weight:500}
.card h3{font-size:14px}
@media(max-width:360px){.brand small{font-size:9px}.urgent-copy small{font-size:11px}.tag,.card p{font-size:13px}}

/* Lema de marca en una sola línea. */
.brand small{white-space:nowrap;max-width:none;font-size:9px;letter-spacing:0;line-height:1.5}@media(max-width:360px){.brand small{font-size:8px}}
/* Modo trono, pensado para un pulgar. */
.headline-row{display:flex;align-items:center;gap:10px}.headline-row h1{flex:1;min-width:0;font-size:clamp(25px,7.3vw,36px)}.games-entry{flex:0 0 68px;background:#351a60;border:1px solid #bda2e2;color:#fff;border-radius:15px;min-height:75px;padding:8px 5px;font-family:'DM Sans',sans-serif;font-size:12px;line-height:1.3}.games-entry span{display:block;font-size:26px;margin-bottom:5px}.game-mascot{text-align:center}.game-mascot img{width:110px;height:110px;object-fit:contain}.game-sheet{max-height:94dvh}.game-ranking-title{font-size:16px;margin:24px 0 12px}.game-ranking{padding-left:27px;font-family:'DM Sans',sans-serif}.game-ranking li{padding:7px;border-bottom:1px solid #ded3ed}.game-ranking li span{font-family:'DM Sans',sans-serif;font-weight:600}.game-heading{display:flex;align-items:center;justify-content:space-between;padding-right:20px;margin-bottom:10px}.game-heading strong{font-family:'Bungee',sans-serif;font-size:25px}.game-pause{font-family:'DM Sans',sans-serif;min-height:44px;border:1px solid #9676be;background:white;border-radius:12px;padding:9px 15px}.roll-arena{height:clamp(230px,51dvh,440px);position:relative;background:#4c2785;border-radius:18px;overflow:hidden;touch-action:none;user-select:none;outline-offset:3px}.arena-caption{position:absolute;top:16px;left:0;width:100%;text-align:center;color:#dfcbed;font:11px 'DM Sans',sans-serif}.falling-roll{position:absolute;width:46px;height:46px;object-fit:contain;transform:translateX(-50%);pointer-events:none}.roll-hand{position:absolute;bottom:65px;transform:translateX(-50%);width:64px;height:56px;text-align:center;font-size:48px;line-height:56px;z-index:2}.toilet-zone{position:absolute;bottom:0;height:64px;width:100%;background:#351a60;border-top:3px solid #9f7ac7;text-align:center;font-size:43px;line-height:60px}.game-hint{font:13px/1.5 'DM Sans',sans-serif;text-align:center}.game-pause-layer{position:absolute;inset:0;z-index:4;background:#251035ed;color:white;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:22px;text-align:center}.game-pause-layer[hidden]{display:none}.game-pause-layer strong{font:20px 'Bungee',sans-serif}.game-score{font:42px 'Bungee',sans-serif;color:#7040c8;margin:22px 0}.challenge-text{width:100%;min-height:130px;border:1px solid #bca7d4;border-radius:12px;padding:14px;font:16px/1.5 'DM Sans',sans-serif}@media(max-width:360px){.games-entry{flex-basis:60px}.headline-row{gap:6px}.headline-row h1{font-size:25px}}

/* Taza ilustrada a todo el ancho de la zona de juego. */
.roll-arena{background-color:#4c2785;background-image:linear-gradient(#ffffff09 1px,transparent 1px),linear-gradient(90deg,#ffffff09 1px,transparent 1px);background-size:48px 48px;border:2px solid #351a60;box-shadow:inset 0 0 36px #25103555;height:clamp(290px,55dvh,470px)}
.toilet-zone{height:140px;bottom:-10px;left:0;width:100%;background:transparent;border:0;line-height:normal;pointer-events:none;z-index:1}
.toilet-zone img{display:block;width:100%;height:100%;object-fit:fill;filter:drop-shadow(0 -5px 8px #24103f35)}
.roll-hand{bottom:104px;z-index:3;filter:drop-shadow(0 3px 2px #25103570)}
#rollDrops{position:absolute;inset:0;z-index:2;pointer-events:none}
.falling-roll{filter:drop-shadow(0 3px 2px #25103540)}
.arena-caption{color:#eadff5;letter-spacing:1px;font-size:10px}

/* Guante ilustrado, mismo centro de captura. */
.roll-hand{width:78px;height:58px;bottom:104px;line-height:normal;font-size:0;pointer-events:none}.roll-hand img{width:100%;height:100%;object-fit:contain;display:block;user-select:none}

.roll-hand img{transform-origin:75% 85%}

.roll-hand{width:88px;height:66px;bottom:100px}
.roll-hand img{position:absolute;inset:0;transform-origin:75% 85%}
.roll-hand .hand-grab{visibility:hidden}
.roll-hand.catching .hand-open{visibility:hidden}
.roll-hand.catching .hand-grab{visibility:visible}
@media(prefers-reduced-motion:no-preference){.roll-hand.catching{animation:catch-grip .42s ease-out}@keyframes catch-grip{0%{transform:translateX(-50%) translateY(0) rotate(0)}28%{transform:translateX(-50%) translateY(-16px) rotate(-12deg) scale(1.16)}65%{transform:translateX(-50%) translateY(-8px) rotate(-5deg) scale(1.08)}100%{transform:translateX(-50%) translateY(0) rotate(0)}}}

/* Al cerrar, conservar el punto de contacto antes del pequeño tirón. */
@keyframes catch-grip{0%,18%{transform:translateX(-50%) translateY(0) rotate(0) scale(1)}45%{transform:translateX(-50%) translateY(-6px) rotate(-4deg) scale(1)}75%{transform:translateX(-50%) translateY(-3px) rotate(-2deg) scale(1)}100%{transform:translateX(-50%) translateY(0) rotate(0) scale(1)}}

.games-entry{flex-basis:82px;padding:6px 4px 9px}.games-character{display:block;width:68px;height:78px;object-fit:contain;margin:0 auto 5px}@media(max-width:360px){.games-entry{flex-basis:72px}.games-character{width:60px;height:70px}}

.browny-button{display:block;flex-shrink:0;border:0;background:transparent;padding:0;cursor:pointer;line-height:0;touch-action:manipulation;border-radius:50%}
.browny-button .brand-logo{pointer-events:none}
.browny-button:focus-visible{outline:3px solid var(--lime);outline-offset:4px}
@media(prefers-reduced-motion:no-preference){
.browny-button{animation:browny-welcome 1.6s ease-in-out 1}
.browny-button.browny-flying{animation:browny-flight .9s ease-in-out 1}
.browny-button:hover:not(.browny-flying){transform:rotate(-7deg) translateY(-3px);transition:transform .2s}
@keyframes browny-welcome{0%,100%{transform:translateY(0) rotate(0)}35%{transform:translateY(-7px) rotate(-8deg)}65%{transform:translateY(-3px) rotate(5deg)}}
@keyframes browny-flight{0%{transform:translate(0,0) rotate(0)}20%{transform:translate(-3px,3px) rotate(-14deg) scale(.94)}45%{transform:translate(5px,-13px) rotate(18deg) scale(1.12)}75%{transform:translate(0,-5px) rotate(350deg)}100%{transform:translate(0,0) rotate(360deg)}}
}

/* Movimiento explícito de la mascota, también en la configuración actual. */
.browny-button{animation:none;transform:none}
.browny-button .brand-logo{animation:browny-hovering 2.8s ease-in-out infinite;transform-origin:50% 65%;will-change:transform}
.browny-button.browny-flying{animation:none}
.browny-button.browny-flying .brand-logo{animation:browny-takeoff 1.05s ease-in-out 1}
@keyframes browny-hovering{0%,100%{transform:translateY(2px) rotate(-7deg)}50%{transform:translateY(-8px) rotate(7deg)}}
@keyframes browny-takeoff{0%{transform:translateY(0) rotate(0) scale(1)}18%{transform:translateY(5px) rotate(-15deg) scale(.93)}48%{transform:translate(8px,-17px) rotate(18deg) scale(1.18)}72%{transform:translate(-3px,-7px) rotate(-10deg) scale(1.06)}100%{transform:translateY(0) rotate(0) scale(1)}}
@media(prefers-reduced-motion:reduce){.browny-button .brand-logo{animation-duration:4s;animation-name:browny-gentle}.browny-button.browny-flying .brand-logo{animation:browny-small-hop 1.05s ease-in-out 1}@keyframes browny-gentle{0%,100%{transform:translateY(1px)}50%{transform:translateY(-4px)}}@keyframes browny-small-hop{0%,100%{transform:translateY(0)}45%{transform:translateY(-7px)}}}

/* Diez expresiones alternadas; misma caja de colisión. */
.roll-face{background-image:url('assets/roll-faces-grimy.png');background-size:500% 200%;background-repeat:no-repeat;width:46px;height:46px}

.falling-browny{background:url('assets/game-browny.png') center/contain no-repeat;filter:drop-shadow(0 0 3px #ffce66)}
.roll-hand.exploded img{visibility:hidden!important}
.hand-explosion{position:absolute;bottom:91px;z-index:5;font-size:86px;line-height:1;transform:translateX(-50%);pointer-events:none;animation:hand-poof .65s ease-out forwards}
@keyframes hand-poof{0%{transform:translateX(-50%) scale(.4);opacity:1}35%{transform:translateX(-50%) scale(1.25);opacity:1}100%{transform:translateX(-50%) scale(1.6);opacity:0}}
@media(prefers-reduced-motion:reduce){.hand-explosion{animation:none}}

/* Baño mugriento: fondo sin WC y taza independiente en primer plano. */
.roll-arena{background-image:url('assets/game-bathroom-graffiti.png');background-size:100% 100%;background-position:center;background-repeat:no-repeat}
.arena-caption{width:auto;left:50%;transform:translateX(-50%);white-space:nowrap;padding:5px 9px;border-radius:8px;background:#251035cc;color:#fff}

/* Taza integrada: mano sobre el borde y caída alineada con el agua. */
.roll-hand{bottom:27%}
.hand-explosion{bottom:25%}

/* Inicio: pared y tubería del baño sin WC, con fondo estable en móvil. */
.app{position:relative;isolation:isolate}
.app::before{content:"";position:fixed;top:0;left:50%;transform:translateX(-50%);width:100%;max-width:520px;height:100vh;height:100lvh;z-index:-1;pointer-events:none;background:linear-gradient(#25103538,#25103555),url('assets/game-bathroom-grimy.png') center top/cover no-repeat}
.app>header,.app>.explore,.app>.results{background:transparent}
.app .location,.app h1,.app .section-title,.app .helper{ text-shadow:0 2px 4px #1b082e}
.app h1 em,.app .section-title h2 span{text-shadow:none}
.app .filters button{background:#351a60e8}
.app .filters button.active{background:var(--lime)}

/* Browny como pegatina: contorno lima sobre la silueta transparente. */
.browny-button .brand-logo{filter:drop-shadow(1px 0 0 var(--lime)) drop-shadow(-1px 0 0 var(--lime)) drop-shadow(0 1px 0 var(--lime)) drop-shadow(0 -1px 0 var(--lime)) drop-shadow(0 3px 2px #1b082ecc)}

/* Partida inmersiva: escena completa, sin estirar la ilustración. */
dialog.game-playing{inset:0;margin:0;width:100%;max-width:none;height:100vh;height:100dvh;max-height:none;padding:0;border-radius:0;overflow:hidden;background:#251035;color:#fff;overscroll-behavior:none}
.game-playing>.handle{display:none}
.game-playing>#sheetBody{position:relative;width:100%;height:100%}
.game-playing .game-stage{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;overflow:hidden}
.game-playing .roll-arena{flex:none;max-width:100%;max-height:100%;border:0;border-radius:0;background-size:contain;box-shadow:none;--game-scale:1}
.game-playing .game-heading{position:absolute;z-index:5;top:env(safe-area-inset-top,0px);left:0;right:0;margin:0;padding:8px calc(64px + env(safe-area-inset-right,0px)) 8px calc(12px + env(safe-area-inset-left,0px));pointer-events:none;background:linear-gradient(#251035dd,transparent)}
.game-playing .game-heading>div{line-height:1.1;text-shadow:0 2px 3px #251035}
.game-playing .game-heading .eyebrow{color:var(--lime);font-size:10px;margin:0 0 3px}
.game-playing .game-heading strong{font-size:22px}
.game-playing .game-pause{pointer-events:auto;background:#351a60e8;color:#fff;min-height:44px}
.game-playing>.close{z-index:6;top:calc(8px + env(safe-area-inset-top,0px));right:calc(8px + env(safe-area-inset-right,0px));width:44px;height:44px;background:#351a60e8;color:#fff;border:1px solid #9676be}
.game-playing .game-hint,.game-playing .arena-caption{display:none}
.game-playing .falling-roll{width:calc(40px * var(--game-scale));height:calc(40px * var(--game-scale))}
.game-playing .roll-hand{width:calc(78px * var(--game-scale));height:calc(52px * var(--game-scale));bottom:21%}
.game-playing .hand-explosion{bottom:19%;font-size:calc(86px * var(--game-scale))}
.game-playing .game-pause-layer{z-index:4}

/* Localización voluntaria y alternativa manual. */
.text-action{font:600 13px 'DM Sans',sans-serif;color:inherit;background:transparent;border:0;text-decoration:underline;padding:10px;min-height:44px}
.location-status{font:14px/1.5 'DM Sans',sans-serif;color:#f1e8ff;background:#251035bb;border-radius:10px;padding:9px 12px;margin:8px 0 16px}
.location .text-action{padding:0 4px;color:var(--lime)}
.search-area{position:absolute;z-index:1;bottom:16px;left:50%;transform:translateX(-50%);border:1px solid #351a60;border-radius:12px;min-height:44px;padding:9px 12px;background:var(--lime);font:700 13px 'DM Sans',sans-serif;white-space:nowrap}
.place-result{display:block;width:100%;text-align:left;min-height:44px;margin:8px 0;padding:12px;border:1px solid #c5b3df;border-radius:12px;background:#fff;font:16px/1.4 'DM Sans',sans-serif}
.privacy-link{display:block;margin:0 auto;color:#fff;background:#251035cc;border-radius:10px}
button:disabled{opacity:.55;cursor:default}
#placeFeedback,#positionFeedback{font:15px/1.5 'DM Sans',sans-serif}

.map-unavailable{position:absolute;z-index:450;top:48px;left:12px;right:65px;background:#fff;color:#23251f;padding:12px;border-radius:10px;font:14px/1.4 Arial,sans-serif;pointer-events:none}

.location-status:empty{display:none}

/* Browny identifica los tronos del mapa. */
.poop-pin{border-radius:16px 16px 16px 4px;transform:none}
.poop-pin img{display:block;width:46px;height:46px;object-fit:contain;filter:drop-shadow(0 1px 1px #25103566);pointer-events:none}

.wc-location-options{min-width:0;border:1px solid #9679ac;border-radius:13px;padding:12px;margin:20px 0}.wc-location-options legend{font-weight:700}.wc-map-frame{position:relative}.wc-map-frame #wcPickerMap{height:clamp(230px,42dvh,380px);border-radius:12px;z-index:0}.wc-center-pin{position:absolute;z-index:450;left:50%;top:50%;transform:translate(-50%,-100%);pointer-events:none;display:flex;flex-direction:column;align-items:center;background:#c8fa64;border:2px solid #251233;border-radius:12px;padding:3px 6px 6px;box-shadow:0 2px 6px #0006}.wc-center-pin:after{content:"";position:absolute;top:100%;border:8px solid transparent;border-top-color:#251233}.wc-center-pin{margin-top:-8px}.wc-center-pin img{width:43px;height:43px;object-fit:contain}.wc-center-pin span{font:700 10px Arial;color:#251233}.wc-location-options [hidden]{display:none!important}

#wcMainMapDialog{position:fixed;inset:0;margin:0;padding:0;width:100%;max-width:none;height:100dvh;max-height:none;border:0;border-radius:0;overflow:hidden;background:#351a60;color:#fff}
#wcMainMapDialog .map-wrap{position:absolute;inset:0;width:100%;height:100%;border:0}
#wcMainMapDialog .map-location,#wcMainMapDialog .search-area,#wcMainMapDialog .map-note{display:none}
#wcMainMapDialog .wc-map-help{position:absolute;z-index:500;top:calc(12px + env(safe-area-inset-top));left:65px;right:12px;background:#351a60ee;border:1px solid #9679ac;border-radius:12px;padding:10px;font-size:14px}
#wcMainMapDialog .wc-main-actions{position:absolute;z-index:500;bottom:calc(32px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:calc(100% - 32px);max-width:480px}
#wcMainMapDialog .wc-main-actions button{margin:6px 0 0;width:100%}
#wcMainMapDialog .leaflet-top{top:env(safe-area-inset-top)}
#wcMainMapDialog .wc-main-actions .primary{background:var(--lime);color:#251233}
#wcMainMapDialog .wc-main-actions .secondary{background:#351a60;color:#fff;border-color:#9679ac}

/* Compact toilet list alongside the existing discovery map. */
.discovery-layout{display:grid;grid-template-columns:minmax(130px,38%) minmax(0,1fr);gap:8px;padding:0 10px;height:410px;margin:0 0 16px}
.discovery-layout>.results{min-width:0;padding:10px 7px;background:#251035e8;border:1px solid #9679ac;border-radius:14px;overflow:auto;overscroll-behavior:contain}
.discovery-layout .section-title{display:block}
.discovery-layout .section-title h2{font-size:14px;line-height:1.4;letter-spacing:0}
.discovery-layout .section-title h2 span{font-size:11px}
.discovery-layout .section-title button{font-size:12px;min-height:36px;text-align:left}
.discovery-layout .helper{display:none}
.discovery-layout .card{display:block;padding:9px 7px;margin-bottom:8px;border-radius:11px}
.discovery-layout .card-icon{display:none}
.discovery-layout .card-top{display:block}
.discovery-layout .card h3{font-size:13px;line-height:1.35;letter-spacing:0;margin-bottom:4px;overflow-wrap:anywhere}
.discovery-layout .rating{font-size:12px}
.discovery-layout .card p{font-size:12px;line-height:1.4;margin:5px 0}
.discovery-layout .tag{font-size:11px;line-height:1.4;padding:3px 4px}
.discovery-layout>.map-wrap{height:100%;min-width:0;border:1px solid #9679ac;border-radius:14px;overflow:hidden}
.discovery-layout .search-area{left:7px;right:7px;bottom:12px;transform:none;width:calc(100% - 14px);font-size:11px;padding:8px 5px;min-height:40px}
.discovery-layout .map-location{right:9px;bottom:66px}
.discovery-layout .map-note{left:6px;right:6px;top:8px;font-size:8px;padding:5px;letter-spacing:0;text-align:center}
.discovery-layout .empty{padding:8px 2px;font-size:12px}.discovery-layout .empty h3{font-size:14px}

/* The home screen fits the available phone height; panels expand on tap. */
.app{height:100dvh;min-height:0;display:flex;flex-direction:column;padding-bottom:0;overflow:hidden}
.app>header{flex:none;padding:8px 16px}.brand-logo{width:54px;height:54px}.brand{font-size:25px}.brand small{font-size:8px}
.app>.demo{flex:none;padding:5px 16px;font-size:10px}
.app>.explore{flex:none;padding:8px 16px}.location{align-items:center}.location .text-action{min-height:32px}
.headline-row{gap:8px}.headline-row h1{font-size:clamp(23px,6.5vw,30px);margin:8px 0;line-height:1.1}
.games-entry{flex-basis:62px;min-height:0;padding:4px;font-size:10px}.games-character{width:42px;height:44px;margin-bottom:2px}
.filters{margin-top:7px}.filters button{min-height:34px;font-size:11px;padding:5px 8px}
.location-status{font-size:11px;line-height:1.3;margin:4px 0;max-height:30px;overflow:auto}
.discovery-layout{flex:1;min-height:100px;height:auto;margin:0;grid-template-columns:minmax(120px,38%) minmax(0,1fr)}
.discovery-layout>.results{position:relative;overflow:hidden}.discovery-layout .card{padding:7px}.discovery-layout .card p{font-size:11px}.discovery-layout .card .tag{display:none}
.discovery-layout .section-title h2{font-size:12px}.discovery-layout #sort{display:none}
.discovery-layout .search-area,.discovery-layout .map-location{display:none}
.discovery-expand{position:absolute;inset:0;width:100%;height:100%;z-index:600;background:transparent;border:0;border-radius:14px;display:flex;align-items:flex-end;justify-content:center;padding:8px}
.discovery-expand span{background:#351a60;color:#fff;border:1px solid #bda2e2;border-radius:8px;padding:9px 6px;font:600 11px 'DM Sans';box-shadow:0 2px 5px #0005}
.app>.privacy-link{flex:none;min-height:26px;margin:0;padding:4px;font-size:10px}
.app>.urgent{position:relative;flex:none;left:auto;bottom:auto;transform:none;width:calc(100% - 24px);margin:0 12px 8px;min-height:59px;font-size:17px}
.app>nav{position:relative;flex:none;left:auto;bottom:auto;transform:none;width:100%;max-width:none;padding:6px 12px calc(6px + env(safe-area-inset-bottom));min-height:58px}
.discovery-expanded{position:fixed;inset:0;width:100%;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;border-radius:0;background:#351a60;display:flex;flex-direction:column;color:#fff}
.discovery-expanded:not([open]){display:none}.discovery-back{flex:none;margin:8px 12px;min-height:44px;background:#351a60;color:#fff;border-color:#bda2e2}
.discovery-expanded>.map-wrap{flex:1;min-height:0;height:auto}.discovery-expanded>.results{flex:1;min-height:0;overflow:auto;padding:12px 16px}.discovery-expanded .discovery-expand{display:none}
.discovery-expanded .card{color:#23251f}.discovery-expanded .section-title{color:#fff}.discovery-expanded .helper{color:#e2d2f3}
@media(max-height:680px){.app>header{padding:5px 14px}.brand-logo{width:42px;height:42px}.headline-row h1{font-size:22px}.games-character{height:32px;width:32px}.app>.explore{padding:4px 12px}.app>.urgent{min-height:52px}.app>nav{min-height:50px}}
.discovery-expanded .discovery-back{width:calc(100% - 24px)}
.discovery-expanded .map-location,.discovery-expanded .search-area,.discovery-expanded .map-note{color:#23251f}
.discovery-expanded .map-note{left:56px;right:10px;font-size:8px;text-align:center}

.discovery-expand .preview-callout{display:none}
@media(max-width:600px){
 .discovery-layout{flex:0 1 250px;height:250px;min-height:200px}
 .app>.privacy-link{margin-top:auto}
 .discovery-layout>.results{padding:8px 6px 50px;overflow:hidden}
 .discovery-layout #cards{overflow:hidden}
 .discovery-layout .card:nth-child(n+3){display:none}
 .discovery-layout .card{padding:6px;margin-bottom:5px}
 .discovery-layout .card h3{font-size:12px;line-height:1.2;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin:0 0 2px}
 .discovery-layout .card p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:10px;line-height:1.3;margin:3px 0 0}
 .discovery-layout .rating{font-size:11px;line-height:1.2}
 .discovery-layout .section-title{margin-bottom:6px}
 .discovery-layout .discovery-expand{padding:0;align-items:flex-end}
 .discovery-layout .preview-callout{display:flex;align-items:center;justify-content:center;min-height:44px;width:100%;padding:7px 5px;border:0;border-top:1px solid #9679ac;border-radius:0;background:#351a60;color:var(--lime);font:600 11px/1.3 'DM Sans';box-shadow:none}
 .discovery-layout .map-wrap{padding-bottom:44px;background:#351a60}
 .discovery-layout .poop-pin{scale:.72;transform-origin:bottom center}
}
@media(max-width:600px){.discovery-layout .card{height:76px;line-height:1.2;overflow:hidden}.discovery-layout .card-top{line-height:1.2}.discovery-layout .card h3{font-family:'DM Sans',sans-serif}.discovery-layout .section-title{height:34px;margin-bottom:4px}}
/* Reuse the game's complete bathroom, including the connected toilet. */
.app::before{height:calc(100dvh - 135px);background-image:linear-gradient(#25103538,#25103518),url('assets/game-bathroom-graffiti.png');background-size:100% 100%;background-position:center top}

/* Separate home decoration fits the available gap without cropping the bowl. */
.app::before{height:100dvh;background-image:linear-gradient(#25103538,#25103530),url('assets/game-bathroom-grimy.png');background-size:100% 100%}
.home-toilet{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:5px 14px;pointer-events:none;overflow:hidden}
.home-toilet img{display:block;width:100%;height:100%;max-height:125px;object-fit:contain;filter:drop-shadow(0 4px 4px #16072366)}
@media(min-width:601px){.home-toilet{flex:0 0 100px}}

/* Saloon artwork belongs only to the location-choice bottom sheet. */
#sheet:has(#allowLocation){background-color:#281b23;background-image:linear-gradient(#160f191a,#160f192b),url('assets/location-saloon-doors-v2.png');background-size:100% 100%;background-position:center;color:#fff5df;border:1px solid #70503f;box-shadow:0 -8px 35px #140a24aa,inset 0 0 22px #120b0d80}
#sheet:has(#allowLocation) .handle{background:#baa389;box-shadow:0 1px 2px #000}
#sheet:has(#allowLocation) .close{background:#281a24;color:#fff5df;border:1px solid #a48a70;box-shadow:0 2px 0 #110b10}
#sheet:has(#allowLocation) .eyebrow{color:var(--lime);text-shadow:0 2px 2px #000}
#sheet:has(#allowLocation) h2{color:#fff5df;text-shadow:2px 3px 0 #170e1c}
#sheet:has(#allowLocation) #sheetBody>p{color:#fff3e5;background:#211620d9;box-shadow:0 0 12px 7px #211620b3;border-radius:4px;text-shadow:0 1px 1px #000}
#sheet:has(#allowLocation) #sheetBody>p.sub{color:#eee0cc}
#sheet:has(#allowLocation) #positionFeedback:empty{background:none;box-shadow:none}
#sheet:has(#allowLocation) #allowLocation{background:var(--lime);color:#251233;border:2px solid #1a101e;box-shadow:0 4px 0 #100a12;text-shadow:none}
#sheet:has(#allowLocation) #manualLocation{background:radial-gradient(circle at 9px 50%,#b5a082 0 2px,#211518 3px,transparent 4px),radial-gradient(circle at calc(100% - 9px) 50%,#b5a082 0 2px,#211518 3px,transparent 4px),linear-gradient(175deg,#51392f,#30202a);color:#fff3df;border:2px solid #9c7960;box-shadow:inset 0 0 0 2px #291922,0 4px 0 #160e16;text-shadow:0 2px 1px #170e1c}
#sheet:has(#allowLocation) #locationPrivacy{color:#e0ff9e;text-decoration:underline;text-underline-offset:3px;text-shadow:0 1px 3px #000}
#sheet:has(#allowLocation) button:focus-visible{outline:3px solid #fff3df;outline-offset:3px}
#sheet:has(#allowLocation) #allowLocation:disabled{opacity:.75}

/* Only the saloon location chooser is centered; other sheets retain their layout. */
#sheet:has(#allowLocation){inset:0;margin:auto;width:calc(100% - 28px);max-width:492px;height:fit-content;max-height:calc(100dvh - 48px);border-radius:24px;padding-bottom:22px}
#sheet:has(#allowLocation) .handle{visibility:hidden;margin-bottom:20px}
#sheet:has(#allowLocation) #positionFeedback:empty{display:none}
#sheet:has(#allowLocation) #locationPrivacy{display:block;margin:15px auto 0;min-height:36px}

/* The add-WC form shares the existing bathroom artwork, scoped to this form only. */
#sheet:has(#addForm){color:#fff3df;background-color:#261436;background-image:linear-gradient(#1d102650,#1d10267a),url('assets/game-bathroom-grimy.png');background-size:cover;background-position:center bottom;border:1px solid #80618e;box-shadow:0 -8px 35px #140a24aa;color-scheme:dark}
#sheet:has(#addForm) .handle{background:#b99acb}
#sheet:has(#addForm) .close{background:#281638;color:#fff3df;border:1px solid #a586b8;box-shadow:0 2px 0 #120b1c}
#sheet:has(#addForm) .eyebrow{color:var(--lime);text-shadow:0 2px 3px #10091a}
#sheet:has(#addForm) h2{color:#fff3df;text-shadow:2px 3px 0 #170e1c}
#sheet:has(#addForm) #sheetBody>.sub{color:#eee0f4;background:#251331e8;border-radius:8px;padding:10px 12px}
#addForm{background:#241230ed;border:1px solid #80628e;border-radius:16px;padding:0 14px 17px;box-shadow:0 4px 0 #100917,inset 0 0 18px #10071966}
#addForm .field{color:#fff3df;font-weight:600}
#addForm .field input,#addForm .field select,#addForm .field textarea{background:#382144;color:#fff3df;border:1px solid #a285ae;box-shadow:inset 0 2px 4px #10081b55;font-weight:400}
#addForm input::placeholder,#addForm textarea::placeholder{color:#cfbdd9;opacity:1}
#addForm .sub{color:#dccce5}
#addForm .wc-location-options{border-color:#876297;background:#301a40;border-radius:12px}
#addForm .wc-location-options legend{color:var(--lime)}
#addForm .secondary{background:linear-gradient(160deg,#4a2e59,#33203f);border-color:#a083ad;color:#fff3df;box-shadow:0 3px 0 #180d22}
#addForm .primary{background:var(--lime);color:#251233;border:2px solid #180d22;box-shadow:0 4px 0 #130b1b}
#addForm #wcPosition{color:#fff3df;border-color:#896c98;background:#22122e}
#addForm input[type=file]{font-size:13px}
#addForm input::file-selector-button{background:#533462;color:#fff3df;border:1px solid #a88ab6;border-radius:7px;padding:8px;margin-right:8px}
#sheet:has(#addForm) button:focus-visible,#addForm input:focus-visible,#addForm select:focus-visible,#addForm textarea:focus-visible{outline:3px solid var(--lime);outline-offset:3px}
/* Full-screen, compact contribution form; preserve scrolling for keyboards/accessibility. */
#sheet:has(#addForm){inset:0;margin:auto;height:100dvh;max-height:100dvh;width:100%;border-radius:0;padding:12px 14px max(12px,env(safe-area-inset-bottom));}
#sheet:has(#addForm) .handle{display:none}
#sheet:has(#addForm) .eyebrow{font-size:9px;margin:3px 40px 5px 0}
#sheet:has(#addForm) h2{font-size:22px;margin:5px 35px 6px 0;line-height:1.3}
#sheet:has(#addForm) #sheetBody>.sub{font-size:12px;line-height:1.3;padding:6px 8px;margin:0 0 8px}
#addForm{padding:4px 10px 10px}
#addForm .field{font-size:12px;line-height:1.3;margin:8px 0}
#addForm .field input,#addForm .field select,#addForm .field textarea{font-size:16px;line-height:1.25;padding:8px 10px;margin-top:4px;min-height:40px}
#addForm .field textarea{height:48px;min-height:48px}
#addForm .wc-location-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:10px 0;padding:7px 8px}
#addForm .wc-location-options legend{font-size:12px}
#addForm .wc-location-options>.secondary{font-size:10px;line-height:1.35;padding:7px 3px;margin:0;min-height:44px}
#addForm .wc-location-help,#addForm #wcPosition{grid-column:1/-1;font:400 12px/1.35 'DM Sans',sans-serif;margin:0}
#addForm .wc-location-help summary{cursor:pointer;min-height:24px;padding:3px 0;color:#dccce5}
#addForm .wc-location-help p{font-size:12px;margin:4px 0}
#addForm #wcPosition{padding:4px 6px;border-radius:5px}
#addForm>.sub{font-size:12px;line-height:1.35;margin:6px 0}
#addForm>.primary{min-height:44px;padding:9px;margin-top:5px;font-size:14px}
#addForm .field input[type=file]{font-size:12px;padding:5px;min-height:40px}
#addForm input::file-selector-button{padding:6px}
#addForm #wcAddressPanel,#addForm #wcMapPanel{position:fixed;inset:0;z-index:2;padding:55px 16px 16px;background:#281637;overflow:auto}
#sheet:has(#addForm) .close{z-index:3}
#addForm .place-result{background:#382144;color:#fff3df;border-color:#a285ae}
#addForm .wc-facts-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 9px}
#addForm .wc-facts-grid .field{min-width:0;margin:3px 0}
#addForm .wc-facts-grid select,#addForm .wc-facts-grid input{width:100%;min-width:0;padding:8px 5px}
#addForm .wc-wide{grid-column:1/-1}
#addForm [hidden]{display:none!important}
#addForm .wc-extra{margin:5px 0;color:#eee0f4;font:400 12px/1.4 'DM Sans',sans-serif}
#addForm .wc-extra summary{padding:6px 0;cursor:pointer;min-height:32px}
#addForm .wc-extra p{font:400 12px/1.4 'DM Sans',sans-serif;margin:3px 0 8px}
#addForm .wc-photo-help summary{padding:5px 0;min-height:28px}
#addForm:has(.wc-facts-grid) .wc-location-options{margin:6px 0}
#addForm .wc-choice-trigger{display:flex;align-items:center;justify-content:space-between;gap:5px;width:100%;min-height:40px;margin-top:4px;padding:8px 5px;border:1px solid #a285ae;border-radius:10px;background:#382144;color:#fff3df;box-shadow:inset 0 2px 4px #10081b55;text-align:left;font:400 16px/1.25 'DM Sans',sans-serif}
#addForm .wc-choice-trigger::after{content:'⌄';color:var(--lime);flex:none}
.wc-choice-dialog{inset:0;margin:auto;width:calc(100% - 28px);max-width:440px;height:fit-content;max-height:85dvh;padding:20px 14px 14px;border:1px solid #a285ae;border-radius:20px;background:#281637;color:#fff3df;box-shadow:0 12px 40px #100719aa}
.wc-choice-dialog h2{font-size:19px;line-height:1.35;margin:0 42px 16px 0}
.wc-choice-dialog .close{background:#382144;color:#fff3df;border:1px solid #a285ae}
.wc-choice-list{display:grid;gap:5px}
.wc-choice-option{width:100%;min-height:44px;padding:10px 13px;border:1px solid #80628e;border-radius:9px;background:#382144;color:#fff3df;text-align:left;font:500 16px/1.3 'DM Sans',sans-serif}
.wc-choice-option[aria-pressed=true],.wc-choice-option:active{background:var(--lime);color:#251233;border-color:var(--lime)}
.wc-choice-option[aria-pressed=true]::after{content:'✓';float:right;font-weight:700}
.wc-choice-dialog button:focus-visible{outline:3px solid var(--lime);outline-offset:2px}
@media(hover:hover){.wc-choice-option:hover{background:var(--lime);color:#251233;border-color:var(--lime)}}
#addForm .wc-hours-field{min-width:0}
#addForm #wcEditHours{font:500 12px 'DM Sans',sans-serif;color:var(--lime);background:none;border:0;text-decoration:underline;padding:5px 0;min-height:28px}
.wc-hours-dialog{inset:0;margin:auto;width:100%;max-width:520px;height:100dvh;max-height:100dvh;border-radius:0;padding:16px 14px 20px;background:#281637;color:#fff3df;color-scheme:dark}
.wc-hours-dialog h2{font-size:21px;margin:0 45px 8px 0}
.wc-hours-dialog .close{background:#382144;color:#fff3df;border:1px solid #a285ae}
.wc-hours-help,.wc-hours-dialog #wcHoursError{font:400 12px/1.4 'DM Sans',sans-serif;color:#dccce5;margin:8px 0}
.wc-day{position:relative;margin:6px 0;padding:5px 8px 6px;min-width:0;border:1px solid #80628e;border-radius:10px;background:#321d40}
.wc-day legend{font:600 13px 'DM Sans',sans-serif;color:var(--lime)}
.wc-closed{position:absolute;right:8px;top:-13px;background:#321d40;padding:0 4px;font:400 12px 'DM Sans',sans-serif}
.wc-hours-dialog input[type=checkbox]{accent-color:var(--lime);width:16px;height:16px;vertical-align:middle}
.wc-times{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 68px;gap:7px;align-items:end}
.wc-times label{font:400 11px 'DM Sans',sans-serif;min-width:0}
.wc-times input{display:block;min-width:0;width:100%;height:36px;margin-top:3px;padding:3px;border:1px solid #a285ae;border-radius:7px;background:#382144;color:#fff3df;font:400 16px 'DM Sans',sans-serif}
.wc-times input:disabled{opacity:.4}
.wc-copy,.wc-copy-presets button{min-height:36px;border:1px solid #a285ae;border-radius:7px;background:#493054;color:#fff3df;font:500 12px 'DM Sans',sans-serif}
.wc-hours-dialog .primary{background:var(--lime);color:#251233;font-size:14px}
.wc-hours-dialog .secondary{background:#493054;color:#fff3df}
.wc-hours-dialog button:focus-visible,.wc-hours-dialog input:focus-visible{outline:3px solid var(--lime);outline-offset:2px}
#wcCopyPanel{position:fixed;inset:0;z-index:1;background:#281637;padding:60px 20px 20px;overflow:auto}
#wcCopyPanel[hidden]{display:none}
#wcCopyPanel h3{font-size:18px}
.wc-copy-days{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.wc-copy-days label{font:400 15px 'DM Sans',sans-serif;padding:10px 3px;min-height:44px}
.wc-copy-presets{display:flex;gap:10px;margin:12px 0}
.wc-copy-presets button{flex:1;min-height:40px}
#addForm .wc-photo-control{display:flex;align-items:center;gap:8px;margin-top:4px;min-height:40px;padding:4px;background:#382144;border:1px solid #a285ae;border-radius:10px}
#addForm #wcChoosePhoto{flex:none;min-height:32px;padding:5px 7px;background:#533462;color:#fff3df;border:1px solid #a88ab6;border-radius:7px;font:500 12px 'DM Sans',sans-serif}
#addForm #wcPhotoName{min-width:0;overflow-wrap:anywhere;font:400 12px/1.3 'DM Sans',sans-serif;color:#eee0f4}
#addForm .wc-choice-trigger{display:block;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:18px;font-size:14px}
#addForm .wc-choice-trigger::after{position:absolute;right:5px;top:50%;transform:translateY(-50%)}
#addForm .wc-choice-trigger.wc-choice-long{font-size:12px}
#addForm .wc-facts-grid>.wc-choice-wide{grid-column:1/-1}
#addForm .wc-choice-wide .wc-choice-trigger{font-size:14px}
#addForm #wcPhotoHelp{display:block;min-height:28px;margin:5px 0;padding:5px 0;border:0;background:none;color:#eee0f4;text-decoration:underline;text-underline-offset:3px;font:400 12px/1.4 'DM Sans',sans-serif}
.wc-photo-info p{font:400 16px/1.5 'DM Sans',sans-serif;color:#eee0f4}
.wc-photo-info .primary{background:var(--lime);color:#251233}

/* Contribution layout: visible notes, spacing follows available height. */
#sheet:has(#addForm){padding:max(8px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}
#sheet:has(#addForm) h2{margin:3px 40px 5px 0;font-size:clamp(18px,3dvh,22px)}
#sheet:has(#addForm) .eyebrow{margin:0 40px 2px 0}
#addForm{padding:0 6px 4px}
#addForm .field{margin:3px 0}
#addForm .field input,#addForm .field textarea,#addForm .wc-choice-trigger{margin-top:2px;padding-block:6px;min-height:40px}
#addForm .wc-facts-grid{gap:0 8px}
#addForm .wc-facts-grid .field{margin:2px 0}
#addForm .wc-notes-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;margin:3px 0}
#addForm .wc-notes-grid .field{min-width:0}
#addForm .wc-notes-grid textarea{height:40px;min-height:40px;resize:none}
#addForm .wc-location-options{margin:3px 0!important;padding:3px 6px;gap:3px}
#addForm .wc-photo-heading{display:flex;align-items:center;justify-content:space-between;gap:6px}
#addForm #wcPhotoLabel{font-size:11px}
#addForm #wcPhotoHelp{margin:0;padding:6px 0;min-height:32px;white-space:nowrap;font-size:11px}
#addForm .wc-photo-control{margin-top:0}
#addForm>.primary{margin-top:4px}
@media(min-height:800px){#addForm .field{margin-block:5px}#addForm .wc-notes-grid{margin-block:6px}#addForm{padding-top:5px}}

@media(max-height:740px){
 #addForm .wc-facts-grid .field:has(.wc-field-label){position:relative;margin-block:2px}
 #addForm .wc-field-label{position:absolute;top:5px;left:6px;z-index:1;pointer-events:none;font-size:11px;line-height:13px}
 #addForm .wc-facts-grid .wc-choice-trigger{height:48px;padding-top:18px;padding-bottom:3px;margin-top:0}
}

/* Balance spare vertical space around the contribution form. Auto margins
   collapse when space is tight, keeping the beginning of the form reachable. */
#sheet[open]:has(#addForm){display:flex;flex-direction:column}
#sheet:has(#addForm)>#sheetBody{flex:none;width:100%;margin-block:auto}

/* Draw the close icon geometrically so font metrics cannot offset its centre. */
#sheet>.close{padding:0;font-size:0;line-height:1;display:grid;place-items:center}
#sheet>.close::before,#sheet>.close::after{content:"";position:absolute;left:50%;top:50%;width:16px;height:3px;border-radius:2px;background:currentColor;pointer-events:none}
#sheet>.close::before{transform:translate(-50%,-50%) rotate(45deg)}
#sheet>.close::after{transform:translate(-50%,-50%) rotate(-45deg)}

/* Dedicated information screen: worn bathroom tiles, quiet reading area. */
#sheet[open]:has(#aboutPanel){inset:0;margin:auto;width:100%;max-width:520px;height:100dvh;max-height:100dvh;border-radius:0;display:flex;flex-direction:column;padding:max(48px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));background:#211329 url('assets/about-wall.svg') center/cover;color:#fff3df}
#sheet:has(#aboutPanel)>.handle{display:none}
#sheet:has(#aboutPanel)>#sheetBody{flex:none;width:100%;margin-block:auto}
#sheet:has(#aboutPanel)>.close{background:#281638;color:#fff3df;border:1px solid #a586b8;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right))}
#aboutPanel{padding:clamp(12px,2.5dvh,24px) 16px;border:1px solid #806087;border-radius:18px;background:#24152ee8;box-shadow:0 5px 0 #110b19, inset 0 1px 0 #bca0c522}
#aboutPanel .about-browny{display:block;width:clamp(44px,9dvh,80px);height:clamp(44px,9dvh,80px);object-fit:contain;margin:0 auto 10px;filter:drop-shadow(0 2px 0 #c8fa6488)}
#aboutPanel h2{max-width:none;text-align:center;font-size:clamp(20px,3.3dvh,28px);line-height:1.25;margin:0 0 12px;color:var(--lime)}
#aboutPanel p,#aboutPanel .sub{font:400 clamp(14px,1.9dvh,16px)/1.4 'DM Sans',sans-serif;color:#fff3df;margin:10px 0;overflow-wrap:anywhere}
#aboutPanel p:last-child{margin-bottom:0;color:#e3d3e9}

/* Salva a Rolly lobby: full-height purple bathroom; gameplay stays untouched. */
#sheet[open]:has(#startRoll){inset:0;margin:auto;width:100%;max-width:520px;height:100dvh;max-height:100dvh;border-radius:0;display:flex;flex-direction:column;padding:max(48px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));background:#281638 url('assets/about-wall.svg') center/cover;color:#fff3df}
#sheet:has(#startRoll)>.handle{display:none}
#sheet:has(#startRoll)>#sheetBody{flex:none;width:100%;margin-block:auto;padding:12px 14px;border:1px solid #806087;border-radius:18px;background:#281638df;box-shadow:0 5px 0 #110b19}
#sheet:has(#startRoll)>.close{background:#281638;color:#fff3df;border:1px solid #a586b8;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right))}
#sheet:has(#startRoll) .eyebrow{color:#dfcbed;text-align:center;margin:0 0 4px}
#sheet:has(#startRoll) h2{max-width:none;color:var(--lime);text-align:center;font-size:clamp(22px,3.5dvh,28px);margin:0 0 8px;line-height:1.2}
#sheet:has(#startRoll) p{font:400 clamp(13px,1.85dvh,15px)/1.4 'DM Sans',sans-serif;color:#fff3df;margin:8px 0}
#sheet:has(#startRoll) .sub{color:#e3d3e9;font-size:12px}
#sheet:has(#startRoll) .game-mascot{height:clamp(65px,15dvh,128px);position:relative;margin:8px 0;background:url('assets/game-toilet-bowl-grimy.png') center/contain no-repeat}
#sheet:has(#startRoll) .game-mascot img{position:absolute;left:calc(50% - 77px);top:0;width:clamp(42px,8dvh,62px);height:clamp(42px,8dvh,62px);transform:rotate(-12deg);filter:drop-shadow(0 3px 2px #10091bbb)}
#sheet:has(#startRoll) .primary{min-height:48px;padding:10px;margin-top:4px;color:#251233}
#sheet:has(#startRoll) .game-ranking-title{color:var(--lime);font-size:14px;margin:12px 0 6px}
#sheet:has(#startRoll) .game-ranking{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 14px;padding-left:22px;margin:6px 0;font-size:13px}
#sheet:has(#startRoll) .game-ranking li{padding:3px;border-color:#806087}

/* Location privacy: the same bathroom identity, with a quiet readable surface. */
#sheet[open]:has(#privacyPanel){inset:0;margin:auto;width:100%;max-width:520px;height:100dvh;max-height:100dvh;border-radius:0;display:flex;flex-direction:column;padding:max(44px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));background:#281638 url('assets/about-wall.svg') center/cover;color:#fff3df}
#sheet:has(#privacyPanel)>.handle{display:none}
#sheet:has(#privacyPanel)>#sheetBody{flex:none;width:100%;margin-block:auto}
#sheet:has(#privacyPanel)>.close{background:#281638;color:#fff3df;border:1px solid #a586b8;top:max(8px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right))}
#privacyPanel{padding:12px;border:1px solid #806087;border-radius:18px;background:#24152eef;box-shadow:0 5px 0 #110b19}
#privacyPanel .eyebrow{color:#e3d3e9;text-align:center;margin:0 0 6px;font-size:10px}
#privacyPanel h2{max-width:none;text-align:center;color:var(--lime);font-size:clamp(19px,2.7dvh,24px);line-height:1.2;margin:0 0 10px}
#privacyPanel p{font:400 14px/1.35 'DM Sans',sans-serif;color:#fff3df;margin:8px 0}
#privacyPanel strong{font:700 14px/1.35 'DM Sans',sans-serif;color:#dcf5b6}
#privacyPanel .privacy-providers{font-size:12px;text-align:center;line-height:1.4}
#privacyPanel a{color:var(--lime);text-underline-offset:3px}
#privacyPanel .primary,#privacyPanel .secondary{font:600 14px/1.3 'DM Sans',sans-serif;min-height:44px;padding:8px;margin-top:6px}
#privacyPanel .secondary{background:#493054;border-color:#a285ae;color:#fff3df}
#privacyPanel .primary{color:#251233}
@media(min-width:600px) and (max-height:600px){#privacyPanel .privacy-copy{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}#sheet[open]:has(#privacyPanel){max-width:780px}}

/* Manual search uses an imaginary map, never the user's actual location. */
#sheet[open]:has(#placeForm){inset:0;margin:auto;width:100%;max-width:520px;height:100dvh;max-height:100dvh;border-radius:0;display:flex;flex-direction:column;padding:max(46px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));background:linear-gradient(#28163838,#28163866),url('assets/location-map-purple-v2.png') center/cover,#281638;color:#fff3df}
#sheet:has(#placeForm)>.handle{display:none}
#sheet:has(#placeForm)>#sheetBody{flex:none;width:100%;margin-block:auto;padding:14px;border:1px solid #9679ac;border-radius:18px;background:#281638ed;box-shadow:0 5px 0 #110b19}
#sheet:has(#placeForm)>.close{background:#281638;color:#fff3df;border:1px solid #a586b8;top:max(10px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right))}
#sheet:has(#placeForm) .eyebrow{color:#e3d3e9;margin:0 0 6px;text-align:center;font-size:10px}
#sheet:has(#placeForm) h2{max-width:none;margin:0 0 14px;color:var(--lime);text-align:center;font-size:clamp(21px,3.2dvh,26px);line-height:1.25}
#sheet:has(#placeForm) .field{margin:8px 0;font:500 14px/1.4 'DM Sans',sans-serif}
#sheet:has(#placeForm) input{font:400 16px/1.3 'DM Sans',sans-serif;min-height:44px;padding:10px;background:#42274f;color:#fff3df;border-color:#a285ae}
#sheet:has(#placeForm) input::placeholder{color:#d5c1dd}
#sheet:has(#placeForm) p{font:400 13px/1.4 'DM Sans',sans-serif;color:#e3d3e9;margin:10px 0}
#sheet:has(#placeForm) a{color:var(--lime)}
#sheet:has(#placeForm) .primary{min-height:44px;margin-top:4px;padding:10px;color:#251233;font-size:14px}
#sheet:has(#placeForm) .place-result{background:#42274f;color:#fff3df;border-color:#9679ac;font:500 14px/1.35 'DM Sans',sans-serif;min-height:44px;padding:8px 10px;margin:6px 0}
#sheet:has(#placeForm) #offlinePlaces{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
#sheet:has(#placeForm) #offlinePlaces .place-result{margin:0}
#sheet:has(#placeForm) #placeFeedback:empty{display:none}

/* Provider-independent cartography. Never tint WC markers or the GPS overlay. */
#map,#wcPickerMap{background:#302042}
.basemap-notice{position:absolute;inset:12px 10px auto;z-index:1100;padding:10px;border:1px solid #b9f34a;border-radius:12px;background:#251432f2;color:#f0e5fa;font:14px/1.25 'DM Sans',sans-serif;text-align:center;box-shadow:0 3px 12px #0008}
.basemap-notice[hidden]{display:none}
.basemap-notice>div{display:flex;gap:6px;justify-content:center;margin-top:6px}
.basemap-notice button{min-height:40px;padding:6px 12px;border:0;border-radius:8px;background:#b9f34a;color:#251432;font:700 14px 'DM Sans',sans-serif;cursor:pointer}
.leaflet-control-attribution{background:#251432e8!important;color:#e0ccec!important;font-size:9px!important;line-height:1.35!important}
.leaflet-control-attribution a{color:#e0ccec!important}

/* Map-only daylight theme; the app and WC/GPS overlays retain their identity. */
.map-theme-switch{position:absolute;left:10px;bottom:28px;z-index:1000;display:flex;border:2px solid #3d2451;border-radius:12px;overflow:hidden;background:#f7f1fc;box-shadow:0 2px 6px #0005}
.map-theme-switch button{min-height:44px;min-width:66px;padding:6px 9px;border:0;background:#f7f1fc;color:#342040;font:700 13px 'DM Sans',sans-serif}
.map-theme-switch button[aria-pressed=true]{background:var(--lime);color:#23152e;box-shadow:inset 0 -3px #3d2451}
.map-theme-switch button:focus-visible{outline:3px solid #7645a2;outline-offset:-4px}
.app .map-theme-switch{display:none}
#map[data-map-theme=light],#wcPickerMap[data-map-theme=light]{background:#f2edf6}
[data-map-theme=light] .leaflet-control-attribution{background:#fffdfaf2!important;color:#342040!important}
[data-map-theme=light] .leaflet-control-attribution a{color:#342040!important}
.discovery-expanded .map-theme-switch,#wcMainMapDialog .map-theme-switch{bottom:86px}
/* Characters identify device location versus the movable search origin. */
.location-character-pin{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;background:none;border:0;user-select:none;-webkit-user-select:none}
.location-character-pin img{width:48px;height:48px;object-fit:contain;pointer-events:none;filter:drop-shadow(0 1px 1px #fff) drop-shadow(0 2px 3px #251432)}
.location-character-pin span{display:block;white-space:nowrap;padding:3px 4px;border:2px solid #351a60;border-radius:6px;background:var(--lime);color:#251432;font:800 9px/1 'DM Sans',sans-serif;box-shadow:0 1px 4px #0005;pointer-events:none}
.location-character-pin i{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:7px solid #351a60;pointer-events:none}
.device-origin-pin span{background:#fff;color:#243f66;border-color:#2878d8}
.device-origin-pin i{border-top-color:#2878d8}
.device-origin-pin img{filter:drop-shadow(0 0 2px #fff) drop-shadow(0 0 3px #2878d8)}
.search-origin-pin{cursor:grab;touch-action:none}
.search-origin-pin.leaflet-drag-target{cursor:grabbing}
.location-character-pin:focus-visible{outline:3px solid #7756de;border-radius:10px}
/* WC quality comes from reviews, never price/access; symbols supplement colour. */
.throne-pin{position:relative;border:2px solid #291637;box-shadow:0 0 0 1px #fff,2px 3px 0 #291637;align-items:center}
.throne-pin.condition-good{background:#b9ef63}
.throne-pin.condition-mixed{background:#ffda52}
.throne-pin.condition-bad{background:#ef5555}
.throne-pin.condition-avoid{background:#17151c;border-color:#fff}
.throne-pin.condition-unrated{background:#b8b3c0}
.leaflet-container .throne-pin img{width:44px;height:48px;object-fit:contain;filter:drop-shadow(0 1px 1px #fff9)}
.throne-condition{position:absolute;right:-5px;top:-7px;display:grid;place-items:center;width:19px;height:19px;border:1px solid #fff;border-radius:50%;background:#291637;color:#fff;font:800 13px/1 'DM Sans',sans-serif;pointer-events:none}

/* Existing WC sheets share the contribution screen's artwork and compact layout. */
#sheet[open]:has(#wcDetail,#wcReview){inset:0;margin:auto;width:100%;max-width:520px;height:100dvh;max-height:100dvh;border-radius:0;padding:max(46px,env(safe-area-inset-top)) 14px max(12px,env(safe-area-inset-bottom));display:flex;flex-direction:column;background:linear-gradient(#1d102650,#1d10267a),url('assets/game-bathroom-grimy.png') center bottom/cover,#261436;color:#fff3df;color-scheme:dark}
#sheet:has(#wcDetail,#wcReview)>.handle{display:none}
#sheet:has(#wcDetail,#wcReview)>#sheetBody{width:100%;margin-block:auto}
#sheet:has(#wcDetail,#wcReview)>.close{background:#281638;color:#fff3df;border:1px solid #a586b8}
#wcDetail,#wcReview{background:#241230ed;border:1px solid #80628e;border-radius:16px;padding:12px;box-shadow:0 4px 0 #100917}
#wcDetail .detail-wc{display:block;width:48px;height:48px;object-fit:contain;margin:0 auto 4px}
#wcDetail h2,#wcReview h2{font-size:clamp(18px,3dvh,24px);line-height:1.2;margin:5px 0;max-width:none;color:#fff3df}
#wcDetail .eyebrow,#wcReview .eyebrow{font-size:10px;color:var(--lime);margin:4px 0}
#wcDetail p,#wcDetail .sub,#wcReview .sub{font:400 13px/1.3 'DM Sans',sans-serif;margin:6px 0;color:#eee0f4;overflow-wrap:anywhere}
#wcDetail .score-grid{gap:8px;margin:8px 0}
#wcDetail .score-grid>div{background:#382144;padding:8px;font-size:12px;border:1px solid #80628e;border-radius:10px}
#wcDetail .score-grid strong{font-size:16px;margin:2px 0;color:var(--lime)}
#wcDetail .score-grid small{font:12px/1.2 'DM Sans',sans-serif}
#wcDetail h3{font-size:14px;margin:8px 0 4px}
#wcDetail .review{padding:6px 0;border-color:#80628e;font:13px/1.3 'DM Sans',sans-serif}
#wcDetail .review small{color:#dccce5;font-size:11px}
#wcDetail .primary,#wcDetail .secondary,#wcReview .primary{min-height:44px;padding:8px;margin-top:6px;font-size:13px}
#wcDetail .secondary{background:#382144;color:#fff3df;border-color:#a285ae}
.review-pages{display:flex;align-items:center;justify-content:space-between;gap:8px;font:12px 'DM Sans',sans-serif}
.review-pages button{min-width:44px;min-height:44px;background:#382144;color:var(--lime);border:1px solid #80628e;border-radius:9px}
.review-pages button:disabled{opacity:.4}
#wcReview .field{font:600 13px/1.3 'DM Sans',sans-serif;margin:8px 0;color:#fff3df}
#wcReview input,#wcReview select,#wcReview textarea{background:#382144;border-color:#a285ae;color:#fff3df;font-size:16px;padding:8px;margin-top:3px;min-height:44px}
#wcReview textarea{height:70px;min-height:44px;resize:none}
@media(max-height:650px){#wcDetail .detail-wc{height:32px}#wcDetail,#wcReview{padding:8px}#wcDetail .score-grid{margin:4px 0}#wcDetail p,#wcReview .sub{margin:3px 0}#wcReview .field{margin:4px 0}}
#wcDetail .primary,#wcReview .primary{color:#251233;background:var(--lime)}

/* Four verdicts. Fixed-size pages, full comments, no clipping or tiny scaled text. */
#sheet[open]:has(.verdict-sheet){inset:0;margin:auto;width:100%;max-width:520px;height:100dvh;max-height:100dvh;padding:max(40px,env(safe-area-inset-top)) 10px max(8px,env(safe-area-inset-bottom));display:flex;flex-direction:column;border-radius:0;background:linear-gradient(#1d102650,#1d10267a),url('assets/game-bathroom-grimy.png') center bottom/cover,#261436;color:#fff3df;color-scheme:dark}
#sheet:has(.verdict-sheet)>.handle{display:none}
#sheet:has(.verdict-sheet)>#sheetBody{margin-block:auto;width:100%;min-height:0}
#sheet:has(.verdict-sheet)>.close{top:max(3px,env(safe-area-inset-top));right:10px;background:#281638;border:1px solid #a586b8;color:#fff3df}
.verdict-sheet{background:#241230ed;border:1px solid #80628e;border-radius:14px;padding:10px;box-shadow:0 4px 0 #100917}
#wcDetail.verdict-sheet h2,#wcVerdicts h2,#wcReview.verdict-sheet h2{font:400 clamp(16px,2.8dvh,22px)/1.15 'Bungee',sans-serif;color:#fff3df;max-width:none;margin:3px 0 5px;overflow-wrap:anywhere}
#wcDetail.verdict-sheet .eyebrow,#wcVerdicts .eyebrow{font:600 9px/1.2 'DM Sans',sans-serif;margin:0;color:var(--lime)}
#wcDetail.verdict-sheet .wc-access{font:12px/1.2 'DM Sans',sans-serif;margin:4px 0}
.wc-access strong{display:block;color:var(--lime);margin-top:3px}
.verdict-main{font:400 clamp(16px,2.8dvh,22px)/1.2 'Bungee',sans-serif;color:var(--lime);margin:6px 0}
.verdict-metrics{margin:0;display:grid;gap:3px}
.verdict-metrics>div{display:grid;grid-template-columns:42% 1fr;gap:6px;border:1px solid #80628e;background:#382144;border-radius:7px;padding:5px 6px;align-items:center}
.verdict-metrics dt{font:700 10px/1.2 'DM Sans',sans-serif}
.verdict-metrics dd{margin:0;font:600 11px/1.2 'DM Sans',sans-serif}
.verdict-metrics small{display:block;font:400 10px/1.2 'DM Sans',sans-serif;color:#e3cde9;margin-top:2px}
#wcDetail.verdict-sheet h3{font:400 12px/1.2 'Bungee',sans-serif;margin:7px 0 3px}
.verdict-comment{padding:5px 0;border-top:1px solid #80628e;font:12px/1.25 'DM Sans',sans-serif;overflow-wrap:anywhere}
.verdict-comment header{display:flex;justify-content:space-between;gap:6px;padding:0;margin:0;font:600 11px/1.2 'DM Sans',sans-serif}
.verdict-comment header strong{min-width:0}
.verdict-comment time{white-space:nowrap;font-weight:400;color:#dbc6e5}
#wcDetail.verdict-sheet .verdict-comment p,#wcVerdicts .verdict-comment p{font:400 12px/1.25 'DM Sans',sans-serif;color:#fff3df;margin:3px 0 0}
.all-verdicts{width:100%;min-height:44px;padding:6px 0;background:none;border:0;color:var(--lime);font:700 12px/1.2 'DM Sans',sans-serif;text-align:left}
.verdict-actions{display:flex;gap:7px}
#wcDetail.verdict-sheet .verdict-actions button{margin:0;min-height:44px}
.verdict-actions .primary{flex:1}
#wcDetail.verdict-sheet #saveBtn{width:44px;flex:0 0 44px;font:24px 'DM Sans',sans-serif}
#wcDetail.verdict-sheet .fixture-note{font:400 10px/1.2 'DM Sans',sans-serif;margin:4px 0 0}
#wcReview.verdict-sheet .field{margin:7px 0;font-size:12px}
#wcReview.verdict-sheet select{width:100%;font-size:12px;min-height:44px}
#wcReview.verdict-sheet textarea{font-size:16px;height:55px;min-height:44px}
#wcReview .optional{font-weight:400;color:#d4c0df;font-size:11px}
#verdictCount{display:block;text-align:right;font:12px 'DM Sans',sans-serif;color:#dccce5}
#wcReview.verdict-sheet .primary{width:100%;min-height:44px}
#wcVerdicts .verdict-list{display:grid;gap:8px}
#wcVerdicts .verdict-comment{border:1px solid #80628e;padding:8px;border-radius:8px;background:#382144}
.verdict-answers{margin:7px 0;display:grid;gap:4px;font:11px/1.2 'DM Sans',sans-serif}
.verdict-answers>div{display:grid;grid-template-columns:43% 1fr;gap:6px}
.verdict-answers dd{margin:0;font-weight:600}
#wcVerdicts .secondary{background:#382144;border-color:#a285ae;color:#fff3df;min-height:44px;padding:8px;font-size:12px}
#wcVerdicts .review-pages{margin-top:8px}
.card .rating{font-size:12px}
@media(max-height:650px){
 #wcDetail.verdict-sheet{padding:7px}
 #wcDetail.verdict-sheet .wc-access{margin:3px 0;font-size:11px}
 .verdict-main{margin:4px 0}
 .verdict-metrics>div{padding:4px 5px}
 .verdict-comment{padding:4px 0}
 #wcDetail.verdict-sheet h3{margin-top:5px}
 #wcReview.verdict-sheet .field{margin:4px 0}
}
.verdict-comment header{background:none}
.verdict-comment header strong{font:600 11px/1.2 'DM Sans',sans-serif}
.verdict-answers div,.verdict-answers dt,.verdict-answers dd{font-family:'DM Sans',sans-serif}
@media(max-height:650px){
 #wcDetail.verdict-sheet .wc-access strong{display:inline-block;margin:0 0 0 5px}
 #wcDetail.verdict-sheet .verdict-comment{padding:3px 0}
 #wcDetail.verdict-sheet .verdict-comment p{margin-top:2px}
}

/* Let only the throne detail use the available height; retain natural text/control sizes. */
#sheet[open]:has(#wcDetail){padding-left:max(6px,env(safe-area-inset-left));padding-right:max(6px,env(safe-area-inset-right));padding-top:calc(40px + env(safe-area-inset-top));padding-bottom:max(8px,env(safe-area-inset-bottom))}
#sheet:has(#wcDetail)>#sheetBody{flex:1;display:flex;flex-direction:column;margin-block:0}
#wcDetail.verdict-sheet{flex:1;display:flex;flex-direction:column;justify-content:space-between;min-height:min-content}
#wcDetail.verdict-sheet>*{flex-shrink:0}

/* Fill the verdict browser and measure how many complete cards fit in its list. */
#sheet[open]:has(#wcVerdicts){padding:calc(40px + env(safe-area-inset-top)) max(6px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left))}
#sheet:has(#wcVerdicts)>#sheetBody{flex:1;display:flex;flex-direction:column;margin-block:0;min-height:0}
#wcVerdicts.verdict-sheet{flex:1;min-height:0;display:flex;flex-direction:column}
#wcVerdicts>.eyebrow,#wcVerdicts>h2,#wcVerdicts>.review-pages,#wcVerdicts>.secondary{flex-shrink:0}
#wcVerdicts .verdict-list{flex:1;min-height:0;display:flex;flex-direction:column;gap:6px;margin-top:5px}
#wcVerdicts .verdict-comment{flex-shrink:0;padding:7px}
#wcVerdicts .verdict-answers{gap:3px;margin:5px 0}

/* Objective community confirmations: separate from the four verdict questions. */
#wcReview .fact-confirmations{border-top:1px solid #80628e;margin-top:6px;padding-top:5px}
#wcReview .fact-confirmations h3{font:400 12px/1.2 'Bungee',sans-serif;color:var(--lime);margin:0 0 5px}
#wcReview .fact-confirm{border:0;margin:5px 0;padding:0;min-width:0}
#wcReview .fact-confirm legend,#wcReview .fact-price{font:600 11px/1.25 'DM Sans',sans-serif;color:#fff3df}
#wcReview .fact-buttons{display:flex;gap:5px;margin-top:3px}
#wcReview .fact-buttons label{flex:1;position:relative;cursor:pointer}
#wcReview .fact-buttons input{position:absolute;opacity:0;width:1px;height:1px;min-height:0;margin:0;padding:0}
#wcReview .fact-buttons span{display:grid;place-items:center;min-height:40px;border:1px solid #a285ae;border-radius:7px;background:#382144;font:600 12px 'DM Sans',sans-serif;color:#fff3df}
#wcReview .fact-buttons input:checked+span{background:var(--lime);color:#251233;border-color:var(--lime)}
#wcReview .fact-buttons input:focus-visible+span{outline:2px solid #fff;outline-offset:2px}
#wcReview .fact-price{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:5px 0}
#wcReview .fact-price[hidden]{display:none}
#wcReview .fact-price span{display:flex;align-items:center;gap:5px;font:600 16px 'DM Sans',sans-serif}
#wcReview .fact-price input{width:95px;min-height:40px;margin:0;padding:5px}
@media(max-height:760px){
 #wcReview .verdict-questions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:3px 7px}
 #wcReview.verdict-sheet .verdict-questions .field{min-width:0;margin:2px 0;display:flex;flex-direction:column;justify-content:space-between;font-size:11px}
 #wcReview.verdict-sheet .verdict-questions select{min-height:40px;padding:5px;font-size:11px}
 #wcReview.verdict-sheet{padding:8px}
 #wcReview.verdict-sheet h2{margin:2px 0}
 #wcReview.verdict-sheet .sub{margin:3px 0}
 #wcReview.verdict-sheet textarea{height:44px}
 #wcReview .fact-confirm{margin:3px 0}
}

/* OAuth contribution prompt: keep the existing purple/lime contrast. */
.wc-login .secondary{background:#40274f;color:#fff7e8;border:1px solid #ad91c0}
