:root{--color-bg: #9bbc0f;--color-bg-alt: #8bac0f;--color-primary: #ff0055;--color-secondary: #00aaff;--color-accent: #ffcc00;--color-text: #000000;--color-surface: #ffffff;--color-border: #000000;--border-width: 3px;--shadow-offset: 4px;--radius-sm: 0px;--radius-md: 0px;--radius-lg: 0px;--space-xs: .5rem;--space-sm: 1rem;--space-md: 1.5rem;--space-lg: 2rem;--space-xl: 3rem}html{box-sizing:border-box;font-size:16px}*,*:before,*:after{box-sizing:inherit}body{background-color:#f0f0f0;color:var(--color-text);font-family:Courier New,Courier,monospace;font-weight:700;margin:0;padding:0;min-height:100vh;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:"Press Start 2P",cursive;text-transform:uppercase;line-height:1.4;margin-top:0;text-shadow:3px 3px 0 rgba(0,0,0,.2)}h1{font-size:2rem;color:var(--color-primary);text-shadow:4px 4px 0 #000;margin-bottom:var(--space-lg);text-align:center;background:var(--color-accent);border:var(--border-width) solid var(--color-border);padding:var(--space-sm);box-shadow:var(--shadow-offset) var(--shadow-offset) 0 var(--color-border);display:inline-block;transform:rotate(-2deg)}.app-header{padding:var(--space-lg) 0;text-align:center}.main-container{width:100%;max-width:100vw;margin:0 auto;padding:0 var(--space-sm);display:flex;flex-direction:column;align-items:center;gap:var(--space-md);justify-content:flex-start}.btn{font-family:"Press Start 2P",cursive;font-size:.8rem;padding:15px 20px;background-color:var(--color-surface);border:var(--border-width) solid var(--color-border);box-shadow:var(--shadow-offset) var(--shadow-offset) 0 var(--color-border);color:var(--color-text);cursor:pointer;transition:all .1s;text-transform:uppercase;margin:5px;position:relative;top:0;left:0}.category-group .category-btn{flex:1 1 0;min-width:120px;min-height:52px;background:#fff;font-size:.65rem;display:flex;align-items:center;justify-content:center;padding:10px 8px;white-space:nowrap;pointer-events:auto}.category-btn.active{background:var(--color-accent);border-color:var(--color-border);box-shadow:6px 6px #000}.category-group{position:relative;width:100%;max-width:520px;z-index:2}.action-btn-group{width:100%;display:flex;gap:var(--space-sm);align-items:center;justify-content:center;flex-wrap:wrap;max-width:520px;margin:0 auto}.action-btn{width:100%;background:var(--color-primary);color:#fff}#primary-button{flex:1 1 200px;min-width:180px}.filter-btn,.about-btn{width:52px;height:52px;display:inline-flex;align-items:center;justify-content:center;padding:0;flex:0 0 52px}.filter-btn{background:var(--color-secondary)}.about-btn{background:var(--color-accent)}.filter-label,.slider-value{font-family:"Press Start 2P",cursive;font-size:.75rem}.btn:hover{background-color:var(--color-secondary);color:#fff;transform:translate(-2px,-2px);box-shadow:calc(var(--shadow-offset) + 2px) calc(var(--shadow-offset) + 2px) 0 var(--color-border)}.btn:active{transform:translate(var(--shadow-offset),var(--shadow-offset));box-shadow:0 0 0 var(--color-border)}.btn.active{background-color:var(--color-primary);color:#fff}.btn-group{display:flex;gap:var(--space-sm);flex-wrap:wrap;justify-content:center}.action-btn-group{display:flex!important;flex-wrap:wrap;justify-content:center}.wheel-container{width:100%;max-width:none;margin:0 auto;display:flex;align-items:center;justify-content:center}.wheel-shadow{width:min(100%,50vh);aspect-ratio:1;display:flex;align-items:center;justify-content:center;filter:drop-shadow(4px 4px 0px rgba(0,0,0,1));position:relative}#wheel{width:100%;height:100%;transform:rotate(var(--wheel-rotation, 0deg));transition:transform 3s cubic-bezier(.17,.89,.32,1.28)}#wheel path{stroke:var(--color-border);stroke-width:2;cursor:pointer}#wheel path.winning{stroke:var(--color-primary);stroke-width:4;filter:brightness(1.2)}.wheel-pointer{position:absolute;top:50%;right:-20px;transform:translateY(-50%) rotate(0);width:40px;height:50px;background:transparent;border:none;clip-path:none;width:0;height:0;border-top:20px solid transparent;border-bottom:20px solid transparent;border-right:40px solid var(--color-border);z-index:10}.wheel-pointer:after{content:"";position:absolute;top:-16px;left:4px;width:0;height:0;border-top:16px solid transparent;border-bottom:16px solid transparent;border-right:32px solid var(--color-accent)}.wheel-pointer.pointer-tick{animation:pointerTick .15s ease-in-out}@keyframes pointerTick{0%{transform:translateY(-50%) rotate(0)}50%{transform:translateY(-50%) rotate(-20deg)}to{transform:translateY(-50%) rotate(0)}}.filter-panel{position:fixed;bottom:0;left:0;width:100%;background:var(--color-surface);border-top:var(--border-width) solid var(--color-border);box-shadow:0 -4px #0003;z-index:100;transform:translateY(100%);transition:transform .3s cubic-bezier(.17,.89,.32,1.28);padding-bottom:20px}.filter-panel.open{transform:translateY(0)}.filter-header{background:var(--color-primary);color:#fff;padding:var(--space-sm);display:flex;justify-content:space-between;align-items:center;border-bottom:var(--border-width) solid var(--color-border)}.filter-header h2{font-size:1rem;margin:0;text-shadow:2px 2px 0 #000}.filter-close-button{background:transparent;border:none;color:#fff;font-family:"Press Start 2P";font-size:1.2rem;cursor:pointer}.filter-content{padding:var(--space-md);max-height:60vh;overflow-y:auto}.filter-group{margin-bottom:var(--space-md);border:var(--border-width) solid var(--color-border);padding:var(--space-sm);background:#fff;box-shadow:4px 4px #ccc}.filter-heading{font-family:"Press Start 2P";font-size:.8rem;margin-bottom:var(--space-sm);color:var(--color-text)}.custom-slider{-webkit-appearance:none;appearance:none;width:100%;height:15px;background:var(--color-border);outline:none;border:2px solid var(--color-border)}.custom-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:25px;height:25px;background:var(--color-accent);border:2px solid var(--color-border);cursor:pointer;box-shadow:2px 2px #000}.toggle-button-group{display:flex;gap:10px;flex-wrap:wrap}.toggle-button input{display:none}.toggle-label{display:inline-block;padding:10px;border:2px solid var(--color-border);background:#fff;cursor:pointer;font-weight:700;box-shadow:2px 2px #000;transition:all .1s}.toggle-button input:checked+.toggle-label{background:var(--color-primary);color:#fff;transform:translate(2px,2px);box-shadow:none}.filter-pill{background:#fff;border:2px solid var(--color-border);padding:8px 12px;margin:4px;font-family:Courier New,monospace;font-weight:700;cursor:pointer;box-shadow:3px 3px #000;transition:all .1s}.filter-pill:hover{transform:translate(-1px,-1px);box-shadow:4px 4px #000;background:#f9f9f9}.filter-pill.active{background:var(--color-secondary);color:#000;transform:translate(2px,2px);box-shadow:1px 1px #000}.accordion-header{display:flex;justify-content:space-between;cursor:pointer;padding:5px;background:#eee;border-bottom:2px solid transparent}.accordion-content{max-height:0;overflow:hidden;transition:max-height .3s ease;box-shadow:6px 6px #000}.accordion-content.active{max-height:500px;padding-top:10px;border-top:2px solid black}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#000c;display:none;justify-content:center;align-items:center;padding:12px;z-index:1000;overflow:hidden}.modal-overlay.show{display:flex}.modal{background:var(--color-surface);border:4px solid var(--color-border);box-shadow:8px 8px 0 var(--color-primary);padding:var(--space-lg);width:min(480px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:90vh;overflow:visible;text-align:center;position:relative;animation:modalPop .3s cubic-bezier(.17,.89,.32,1.28)}.about-modal-content{display:flex;flex-direction:column;max-height:90vh;overflow:visible}.about-modal-content .about-text{overflow-y:auto;max-height:calc(90vh - 140px);padding-right:6px}@keyframes modalPop{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.modal h2{color:var(--color-primary);font-size:1.5rem;margin-bottom:var(--space-md);border:4px solid var(--color-primary);padding:10px;background:#fff;animation:flashWinner .8s infinite}@keyframes flashWinner{0%{border-color:var(--color-primary);color:var(--color-primary);box-shadow:4px 4px 0 var(--color-accent)}50%{border-color:var(--color-accent);color:var(--color-accent);box-shadow:4px 4px 0 var(--color-primary)}to{border-color:var(--color-primary);color:var(--color-primary);box-shadow:4px 4px 0 var(--color-accent)}}.modal-close{position:absolute;top:-12px;right:-12px;background:var(--color-primary);border:4px solid #000;color:#fff;font-family:"Press Start 2P",cursive;font-size:1.2rem;cursor:pointer;width:36px;height:36px;display:flex;align-items:center;justify-content:center;box-shadow:4px 4px #000;z-index:1001;text-shadow:2px 2px 0 #000}.modal-close:hover{background:#f37;transform:translate(-2px,-2px);box-shadow:6px 6px #000}.modal-close:active{transform:translate(2px,2px);box-shadow:2px 2px #000}@media(max-width:540px){.modal{padding:var(--space-md);box-shadow:6px 6px 0 var(--color-primary);width:80%;max-width:80%}.modal h2{font-size:1.1rem}}.error-state{position:fixed;bottom:20px;left:50%;transform:translate(-50%);background:var(--color-surface);border:4px solid #ff3333;color:#f33;padding:15px 20px;box-shadow:4px 4px #000;z-index:2000;font-family:"Press Start 2P",cursive;font-size:.8rem;text-align:center;min-width:300px;max-width:90%;display:none;animation:slideUp .3s ease-out}.error-state.warning-message{border-color:#fc0;color:#c90}.error-state.info-message{border-color:var(--color-primary);color:var(--color-primary)}@keyframes slideUp{0%{transform:translate(-50%,100%);opacity:0}to{transform:translate(-50%);opacity:1}}.action-btn-group{margin-top:var(--space-lg)}.action-button{font-family:"Press Start 2P",cursive;font-size:1rem;padding:15px 20px;background:var(--color-accent);border:var(--border-width) solid var(--color-border);box-shadow:4px 4px #000;color:var(--color-text);cursor:pointer;text-transform:uppercase;transition:all .1s;width:100%;margin-top:10px}.action-button:hover{background:#ffe600;transform:translate(-2px,-2px);box-shadow:6px 6px #000}.action-button:active{transform:translate(2px,2px);box-shadow:2px 2px #000}@media(max-width:600px){h1{font-size:1.5rem;margin-bottom:var(--space-sm)}.app-header{padding:var(--space-sm) 0}.wheel-container{width:92vw;max-width:none}.main-container{justify-content:flex-start;padding-top:2vh;padding-bottom:2vh;gap:var(--space-xs)}.action-btn-group{max-width:100%;gap:var(--space-xs);margin-top:var(--space-sm)}.filter-btn,.about-btn{width:48px;height:48px;flex:0 0 48px}#primary-button{flex:1 1 160px;min-width:160px}}.skeleton-segment{animation:skeletonPulse 1.5s infinite alternate ease-in-out}@keyframes skeletonPulse{0%{fill:#ddd}to{fill:#bbb}}.populate-segment{animation:populateSegment .6s cubic-bezier(.34,1.56,.64,1) forwards;transform-origin:center;opacity:0}@keyframes populateSegment{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1);fill:var(--final-color)}}@keyframes populateText{0%{opacity:0}to{opacity:1}}.filter-footer{display:flex;gap:var(--space-sm);margin-top:var(--space-md)}.clear-filters,.apply-filters{flex:1;font-family:"Press Start 2P",cursive;font-size:.7rem;padding:15px;border:var(--border-width) solid var(--color-border);box-shadow:4px 4px #000;cursor:pointer;text-transform:uppercase;transition:all .1s}.clear-filters{background:#fff;color:var(--color-text)}.apply-filters{background:var(--color-primary);color:#fff}.clear-filters:hover,.apply-filters:hover{transform:translate(-2px,-2px);box-shadow:6px 6px #000}.clear-filters:active,.apply-filters:active{transform:translate(2px,2px);box-shadow:2px 2px #000}.modal-footer{margin-top:var(--space-md)}body.bg-food{--color-bg: #9bbc0f;background-color:#9bbc0f;background-image:url("./assets/restaurant_background-363ONFLP.webp");background-repeat:repeat;background-size:400px 400px}body.bg-drinks{--color-bg: #00aaff;background-color:#0af;background-image:url("./assets/bar_background-FPOQF4WV.webp");background-repeat:repeat;background-size:400px 400px}.admin-body{background:linear-gradient(135deg,var(--color-bg) 0%,var(--color-bg-alt) 100%);min-height:100vh;padding:var(--space-lg);color:var(--color-text);font-family:"Press Start 2P",Courier New,monospace}.admin-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-md);margin-bottom:var(--space-lg)}.admin-title{font-size:1.6rem;margin:.25rem 0}.admin-kicker{letter-spacing:1px;font-size:.7rem;color:var(--color-text);margin:0}.admin-subtitle{font-size:.8rem;margin:.25rem 0 0}.admin-actions{display:flex;align-items:center;gap:var(--space-sm)}.admin-button{background:var(--color-secondary);border:var(--border-width) solid var(--color-border);box-shadow:4px 4px #000;color:var(--color-text);padding:.75rem 1.2rem;cursor:pointer;text-transform:uppercase;transition:transform .1s ease,box-shadow .1s ease;font-family:"Press Start 2P",cursive;font-size:.75rem}.admin-button:hover{transform:translate(-2px,-2px);box-shadow:6px 6px #000}.admin-button:active{transform:translate(2px,2px);box-shadow:2px 2px #000}.admin-badge{display:inline-block;padding:.5rem .8rem;border:var(--border-width) solid var(--color-border);background:var(--color-accent);box-shadow:3px 3px #000}.admin-badge.error{background:#f99}.span-2{grid-column:span 2}.span-3{grid-column:span 3}@media(max-width:768px){.span-2,.span-3{grid-column:span 1}}.admin-main{display:flex;flex-direction:column;gap:var(--space-lg);width:100%}.ip-actions .ip-action-form{display:flex;gap:var(--space-sm);flex-wrap:wrap;margin-bottom:var(--space-sm)}.ip-actions input,.ip-actions select{font-family:"Press Start 2P",Courier New,monospace;font-size:.7rem;padding:.65rem .8rem;border:var(--border-width) solid var(--color-border);background:var(--color-surface);box-shadow:3px 3px 0 var(--color-border);color:var(--color-text);min-width:120px}.ip-actions input[type=number]{width:120px}.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-md);width:100%}.admin-card{background:var(--color-surface);border:var(--border-width) solid var(--color-border);box-shadow:6px 6px #000;padding:var(--space-sm);word-break:break-word;overflow-wrap:anywhere;position:relative}.card-label{margin:0 0 .5rem;font-size:.8rem;color:var(--color-text)}.card-value{margin:0;font-size:1.6rem;line-height:1.3}.card-value.small{font-size:1rem}.card-meta{margin:.25rem 0 0;font-size:.75rem;color:#333}.admin-panels{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--space-md);width:100%}.admin-panel{background:var(--color-surface);border:var(--border-width) solid var(--color-border);box-shadow:6px 6px #000;padding:var(--space-sm);word-break:break-word;overflow-wrap:anywhere;position:relative}.map-panel{grid-column:1 / -1}.panel-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm)}.panel-title{margin:.25rem 0;font-size:1.2rem}.panel-kicker{margin:0;font-size:.75rem;letter-spacing:1px}.panel-meta{font-size:.75rem;color:#333}.panel-actions{display:flex;align-items:center;gap:var(--space-sm)}.panel-body{border-top:var(--border-width) solid var(--color-border);padding-top:var(--space-sm);overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;table-layout:fixed}.admin-table th,.admin-table td{padding:.5rem;border-bottom:2px solid var(--color-border);text-align:left;font-size:.85rem;word-break:break-word;overflow-wrap:anywhere}.admin-table th{background:var(--color-bg-alt)}.admin-table .muted{text-align:center;color:#444}.admin-footer{margin-top:var(--space-md);font-size:.75rem}.hotspot-map{width:100%;aspect-ratio:2 / 1;min-height:260px;max-height:520px;border:var(--border-width) solid var(--color-border);box-shadow:6px 6px #000;background:#f0f4ff;position:relative;overflow:hidden}.hotspot-map canvas{width:100%;height:100%;display:block}.map-zoom-controls{position:absolute;right:12px;bottom:12px;display:flex;flex-direction:column;gap:6px;z-index:2}.map-zoom-btn{min-width:40px;height:40px;background:var(--color-surface);border:3px solid var(--color-border);box-shadow:4px 4px #000;font-family:"Press Start 2P",Courier New,monospace;font-size:18px;font-weight:700;color:var(--color-text);cursor:pointer;transition:transform .05s ease,box-shadow .05s ease}.map-zoom-btn:active{transform:translate(2px,2px);box-shadow:2px 2px #000}.geo-tooltip{background:#000;color:#fff;padding:6px 8px;border:2px solid #fff;box-shadow:4px 4px #000;font-family:Courier New,monospace;font-size:12px;pointer-events:none}.admin-panel .dual-col{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-sm)}.layout-handle,.layout-resize{position:absolute;z-index:3;border:2px solid var(--color-border);background:var(--color-accent);color:var(--color-text);font-family:"Press Start 2P",Courier New,monospace;font-size:.55rem;padding:4px 6px;cursor:grab;box-shadow:2px 2px #000;opacity:0;pointer-events:none}.layout-handle{top:6px;right:6px}.layout-resize{bottom:6px;right:6px;cursor:ew-resize}.layout-dragging{opacity:.85;outline:3px dashed var(--color-primary)}.layout-drop-target{outline:3px dashed var(--color-secondary);outline-offset:4px}.admin-card:hover .layout-handle,.admin-card:hover .layout-resize,.admin-panel:hover .layout-handle,.admin-panel:hover .layout-resize,.layout-show-handles .layout-handle,.layout-show-handles .layout-resize{opacity:1;pointer-events:auto}@media(max-width:768px){.admin-body{padding:var(--space-md)}.admin-header{flex-direction:column;align-items:flex-start}.admin-actions{width:100%}.admin-card,.admin-panel{padding:var(--space-xs)}.panel-title{font-size:1rem}.admin-table th,.admin-table td{font-size:.8rem}}.bezier-inputs{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:.5rem}.bezier-inputs input{width:100%;padding:.2rem;border:2px solid var(--color-text);font-family:inherit}.btn-small{width:100%;padding:.5rem;background:var(--color-primary);color:#fff;border:2px solid var(--color-text);cursor:pointer;font-weight:700;text-transform:uppercase;box-shadow:2px 2px #00000080}.btn-small:active{transform:translate(2px,2px);box-shadow:none}.about-footer{margin-top:2rem;border-top:2px dashed var(--color-text);padding-top:1rem;font-size:.8rem;text-align:center}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
