@import "https://fonts.googleapis.com/css2?family=Press+Start+2P&family=VT323&display=swap";:root{--bg:#0f0a1f;--bg-soft:#1a1330;--panel:#2a1f47;--panel-light:#382c5f;--panel-lighter:#4a3b78;--border:#1a1330;--shadow:#07041a;--text:#f0e6ff;--text-soft:#c9b3e8;--text-muted:#8a7aa8;--accent:#7cb342;--accent-dark:#689f38;--accent-light:#aed581;--secondary:#ff6b9d;--secondary-dark:#d84a7c;--sky:#4cc9f0;--sand:#f4d35e}html.light{--bg:#faf3e0;--bg-soft:#f5e6c8;--panel:#c4a574;--panel-light:#d4b584;--panel-lighter:#e0c897;--border:#2d1f15;--shadow:#1a1108;--text:#2d1f15;--text-soft:#5c3a1f;--text-muted:#6b4423;--accent:#7cb342;--accent-dark:#689f38;--accent-light:#aed581;--secondary:#e85a8a;--secondary-dark:#c93970;--sky:#4cc9f0;--sand:#f4d35e}*{box-sizing:border-box;image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges;margin:0;padding:0}html,body{background:var(--bg);color:var(--text);min-height:100vh;font-family:VT323,Courier New,monospace;font-size:18px}#root{min-height:100vh}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}input,textarea,select{font-family:inherit}.app{min-height:100vh;position:relative}.bg-fixed{z-index:-1;background:radial-gradient(circle at 20% 10%,#7cb34226 0%,#0000 40%),radial-gradient(circle at 80% 80%,#4cc9f01f 0%,#0000 40%),repeating-linear-gradient(0deg,#0000 0 4px,#0000000a 4px 8px);position:fixed;inset:0}.container{max-width:1200px;margin:0 auto;padding:24px 16px}.header{z-index:20;background:var(--panel-light);border-bottom:4px solid var(--border);box-shadow:0 4px 0 0 var(--shadow);position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;padding:16px;display:flex}.logo-wrap{align-items:center;gap:12px;display:flex}.logo-icon{background:var(--accent);border:4px solid var(--border);width:48px;height:48px;box-shadow:4px 4px 0 0 var(--shadow);justify-content:center;align-items:center;font-size:24px;display:flex}.logo-title{color:var(--text);letter-spacing:1px;font-family:"Press Start 2P",monospace;font-size:14px}.logo-sub{color:var(--text-muted);margin-top:4px;font-family:VT323,monospace;font-size:14px}.theme-btn{background:var(--sand);border:4px solid var(--border);width:40px;height:40px;box-shadow:4px 4px 0 0 var(--shadow);justify-content:center;align-items:center;transition:transform .1s;display:flex}.theme-btn:hover{transform:translate(-2px,-2px)}.theme-btn:active{box-shadow:none;transform:translate(2px,2px)}.progress-card{background:var(--panel);border:4px solid var(--border);box-shadow:6px 6px 0 0 var(--shadow);margin-bottom:24px;padding:20px}.progress-top{justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;display:flex}.progress-label{color:var(--accent);letter-spacing:1px;text-transform:uppercase;font-family:"Press Start 2P",monospace;font-size:9px}.progress-count{color:var(--text);margin-top:8px;font-family:VT323,monospace;font-size:32px}.progress-count .sep{color:var(--text-muted)}.progress-count .sub{color:var(--text-muted);font-size:20px}.progress-pct{color:var(--accent);text-shadow:3px 3px 0 var(--shadow);font-family:"Press Start 2P",monospace;font-size:24px}.progress-bar{background:var(--bg);border:2px solid var(--border);height:24px;padding:2px;overflow:hidden}.progress-fill{background:repeating-linear-gradient(90deg, var(--accent) 0, var(--accent) 8px, var(--accent-dark) 8px, var(--accent-dark) 16px);height:100%;transition:width .7s ease-out}.main-grid{grid-template-columns:1fr;gap:24px;display:grid}@media (width>=1024px){.main-grid{grid-template-columns:1fr 2fr}}.pixel-panel{border:4px solid var(--border);box-shadow:6px 6px 0 0 var(--shadow);overflow:hidden}.panel-light{background:var(--panel-light)}.panel-dark{background:var(--panel)}.panel-mid{background:var(--panel-lighter)}.form-panel{position:sticky;top:100px}@media (width<=1023px){.modal .form-panel{box-shadow:none;border:none;max-height:85vh;position:static;overflow-y:auto}}.form-header{background:var(--accent);border-bottom:4px solid var(--border);padding:12px 20px}.form-header h2{color:var(--border);letter-spacing:1px;font-family:"Press Start 2P",monospace;font-size:11px}.form-body{padding:20px}.form-group{margin-bottom:16px}.form-group:last-child{margin-bottom:0}.form-label{color:var(--accent);letter-spacing:1px;text-transform:uppercase;margin-bottom:8px;font-family:"Press Start 2P",monospace;font-size:10px;display:block}.form-input,.form-textarea{background:var(--bg);border:4px solid var(--border);width:100%;color:var(--text);outline:none;padding:8px 12px;font-family:VT323,monospace;font-size:18px;transition:border-color .1s}.form-input:focus,.form-textarea:focus{border-color:var(--accent)}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-muted)}.form-textarea{resize:none;min-height:70px}.image-upload{background:var(--bg);border:4px solid var(--border);cursor:pointer;justify-content:center;align-items:center;height:128px;transition:border-color .1s;display:flex;position:relative;overflow:hidden}.image-upload:hover,.image-upload.dragging{border-color:var(--accent)}.image-upload .upload-hint{text-align:center;color:var(--accent)}.image-upload .upload-hint .icon{color:var(--accent);margin-bottom:8px;font-size:32px}.image-upload .upload-hint .text{color:var(--text-soft);font-family:VT323,monospace;font-size:20px}.image-upload img{object-fit:cover;width:100%;height:100%;display:block}.image-overlay{color:var(--text);opacity:0;background:#0f0a1fb3;justify-content:center;align-items:center;font-family:VT323,monospace;font-size:20px;transition:opacity .1s;display:flex;position:absolute;inset:0}.image-upload:hover .image-overlay{opacity:1}.image-tabs{border:4px solid var(--border);background:var(--bg);gap:0;margin-bottom:8px;display:flex}.image-tab{background:var(--bg);color:var(--text-soft);cursor:pointer;border:none;flex:1;padding:8px 12px;font-family:"Press Start 2P",monospace;font-size:9px;transition:background .1s}.image-tab:first-child{border-right:4px solid var(--border)}.image-tab:hover{background:var(--accent);color:var(--text)}.image-tab.active{background:var(--accent);color:var(--text);box-shadow:inset 0 -3px #0003}.image-upload.has-image{cursor:default;height:160px}.image-url-wrap{flex-direction:column;gap:6px;display:flex}.url-hint{color:var(--text-soft);text-align:center;font-family:VT323,monospace;font-size:16px}.price-row{align-items:stretch;gap:8px;display:flex}.price-row .form-input{flex:1}.toggle-group{background:var(--bg);border:4px solid var(--border);padding:4px;display:flex}.toggle-btn{letter-spacing:1px;color:var(--text-soft);background:var(--panel);padding:4px 10px;font-family:"Press Start 2P",monospace;font-size:9px;transition:background .1s}.toggle-btn.active{background:var(--accent);color:var(--border)}.submit-btn{background:var(--accent);width:100%;color:var(--border);border:4px solid var(--border);box-shadow:4px 4px 0 0 var(--shadow);letter-spacing:1px;justify-content:center;align-items:center;gap:8px;margin-top:8px;padding:12px;font-family:"Press Start 2P",monospace;font-size:11px;transition:transform .1s;display:flex}.submit-btn:hover{transform:translate(-2px,-2px)}.submit-btn:active{box-shadow:none;transform:translate(2px,2px)}.add-mobile-btn{display:none}@media (width<=1023px){.form-desktop{display:none}.add-mobile-btn{background:var(--accent);width:100%;color:var(--border);border:4px solid var(--border);box-shadow:4px 4px 0 0 var(--shadow);letter-spacing:1px;justify-content:center;align-items:center;gap:8px;margin-bottom:16px;padding:14px;font-family:"Press Start 2P",monospace;font-size:11px;transition:transform .1s;display:flex}.add-mobile-btn:hover{transform:translate(-2px,-2px)}.add-mobile-btn:active{box-shadow:none;transform:translate(2px,2px)}.add-mobile-btn .add-icon{font-size:14px}}@media (width>=1024px){.add-mobile-btn{display:none!important}}.list-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.list-title{color:var(--text);text-shadow:3px 3px 0 var(--shadow);font-family:"Press Start 2P",monospace;font-size:14px}.filter-group{background:var(--panel);border:4px solid var(--border);gap:4px;padding:4px;display:flex}.filter-btn{letter-spacing:1px;color:var(--text-soft);background:var(--bg);padding:6px 12px;font-family:"Press Start 2P",monospace;font-size:10px;transition:transform .1s}.filter-btn:hover{transform:translate(-1px,-1px)}.filter-btn.active{background:var(--accent);color:var(--border)}.place-card{background:var(--panel-light);border:4px solid var(--border);box-shadow:4px 4px 0 0 var(--shadow);gap:12px;margin-bottom:12px;padding:12px;transition:transform .1s;display:flex}.place-card:hover{transform:translate(-2px,-2px)}.check-btn{border:4px solid var(--text-muted);background:var(--bg);flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;margin-top:4px;transition:all .1s;display:flex}.check-btn.checked{background:var(--accent);border-color:var(--border)}.check-btn .check-svg{width:16px;height:16px;color:var(--border);stroke-width:3px}.thumb{background:var(--bg);border:4px solid var(--border);width:96px;height:96px;box-shadow:2px 2px 0 0 var(--shadow);cursor:pointer;flex-shrink:0;position:relative;overflow:hidden}.thumb img{object-fit:cover;width:100%;height:100%;display:block}.thumb:hover .thumb-overlay{opacity:1}.thumb:hover img{opacity:.6}.thumb-overlay{color:var(--text);opacity:0;background:#0f0a1f80;justify-content:center;align-items:center;font-family:"Press Start 2P",monospace;font-size:10px;transition:opacity .1s;display:flex;position:absolute;inset:0}.card-content{cursor:pointer;flex-direction:column;flex:1;min-width:0;display:flex}.card-top{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.card-title{color:var(--text);font-family:"Press Start 2P",monospace;font-size:11px;line-height:1.4}.card-title.visited{color:var(--text-muted);text-decoration:line-through}.delete-btn{border:2px solid var(--border);width:28px;height:28px;color:var(--text-muted);background:0 0;flex-shrink:0;justify-content:center;align-items:center;font-family:"Press Start 2P",monospace;font-size:10px;transition:all .1s;display:flex}.delete-btn:hover{background:var(--secondary);color:var(--text);border-color:var(--secondary-dark)}.card-address{color:var(--text-soft);align-items:center;gap:6px;margin-top:8px;font-family:VT323,monospace;font-size:20px;display:flex}.card-price-row{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.card-price{color:var(--accent);font-family:"Press Start 2P",monospace;font-size:10px}.card-price.visited{color:var(--text-muted)}.price-badge{background:var(--bg);border:2px solid var(--border);color:var(--text-soft);letter-spacing:1px;padding:2px 8px;font-family:"Press Start 2P",monospace;font-size:8px}.empty-state{background:var(--panel);border:4px solid var(--border);box-shadow:6px 6px 0 0 var(--shadow);text-align:center;padding:48px 16px}.empty-icon{color:var(--accent);margin-bottom:16px;font-family:"Press Start 2P",monospace;font-size:32px}.empty-text{color:var(--text-soft);font-family:VT323,monospace;font-size:22px}.modal-overlay{z-index:50;background:#0f0a1fd9;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--panel-light);border:4px solid var(--border);box-shadow:8px 8px 0 0 var(--shadow);width:100%;max-width:672px;max-height:90vh;overflow-y:auto}.modal-hero{border-bottom:4px solid var(--border);height:224px;position:relative;overflow:hidden}.modal-hero img{object-fit:cover;width:100%;height:100%;display:block}.modal-hero:after{content:"";pointer-events:none;background:linear-gradient(#0000,#0f0a1fb3);position:absolute;inset:0}.modal-close{background:var(--sand);border:4px solid var(--border);width:40px;height:40px;color:var(--border);z-index:1;justify-content:center;align-items:center;font-family:"Press Start 2P",monospace;font-size:10px;transition:transform .1s;display:flex;position:absolute;top:12px;right:12px}.modal-close:hover{transform:translate(-2px,-2px)}.modal-hero-title{z-index:1;color:var(--text);letter-spacing:1px;font-family:"Press Start 2P",monospace;font-size:14px;position:absolute;bottom:16px;left:20px;right:20px}.modal-body{padding:20px}.modal-row{background:var(--panel);border:4px solid var(--border);align-items:flex-start;gap:12px;margin-bottom:12px;padding:12px;display:flex}.modal-row-icon{border:4px solid var(--border);flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-family:"Press Start 2P",monospace;font-size:12px;display:flex}.modal-row-icon.green{background:var(--accent);color:var(--border)}.modal-row-icon.yellow{background:var(--sand);color:var(--border)}.modal-row-label{color:var(--accent);letter-spacing:1px;margin-bottom:4px;font-family:"Press Start 2P",monospace;font-size:10px}.modal-row-value{color:var(--text);word-break:break-word;font-family:VT323,monospace;font-size:20px}.modal-row-sub{color:var(--text-soft);margin-top:4px;font-family:VT323,monospace;font-size:16px}.modal-row-value.big{color:var(--accent);font-family:"Press Start 2P",monospace;font-size:14px}.modal-notes{background:var(--panel);border:4px solid var(--border);margin-bottom:12px;padding:12px}.modal-map{background:var(--bg);border:4px solid var(--border);justify-content:center;align-items:center;height:224px;margin-bottom:8px;display:flex;overflow:hidden}.modal-map iframe{filter:contrast(1.1)saturate(1.2);border:0;width:100%;height:100%}.modal-link{color:var(--accent);align-items:center;gap:6px;margin-bottom:12px;font-family:"Press Start 2P",monospace;font-size:10px;text-decoration:none;display:inline-flex}.modal-link:hover{color:var(--accent-light)}.modal-actions{gap:12px;padding-top:8px;display:flex}.btn-primary{background:var(--accent);color:var(--border);border:4px solid var(--border);box-shadow:4px 4px 0 0 var(--shadow);letter-spacing:1px;flex:1;justify-content:center;align-items:center;gap:8px;padding:12px;font-family:"Press Start 2P",monospace;font-size:11px;transition:transform .1s;display:flex}.btn-primary.visited{background:var(--panel-light);color:var(--accent);border-color:var(--border)}.btn-primary:hover{transform:translate(-2px,-2px)}.btn-primary:active{box-shadow:none;transform:translate(2px,2px)}.btn-secondary{background:var(--panel);color:var(--text);border:4px solid var(--border);box-shadow:4px 4px 0 0 var(--shadow);letter-spacing:1px;padding:12px 20px;font-family:"Press Start 2P",monospace;font-size:11px;transition:transform .1s}.btn-secondary:hover{transform:translate(-2px,-2px)}.btn-secondary:active{box-shadow:none;transform:translate(2px,2px)}.modal-hero-mascot{z-index:2;border:2px solid var(--border);background:#0f0a1f99;width:64px;height:64px;padding:4px;position:absolute;bottom:16px;right:20px}.modal-hero-mascot .mascot{object-fit:contain;width:100%;height:100%}.loading-mascot-wrap{text-align:center;flex-direction:column;align-items:center;gap:12px;display:flex}.loading-mascot{width:80px;height:80px;image-rendering:pixelated}.modal-mascot-corner{z-index:2;background:var(--bg);border:2px solid var(--border);padding:4px;position:absolute;top:12px;left:12px}@media (width<=1023px){.modal-mascot-corner{display:none}}.logo-icon .mascot{object-fit:contain;width:100%;height:100%}.empty-state .mascot{margin-bottom:12px}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:var(--panel)}::-webkit-scrollbar-thumb{background:var(--panel-lighter);border:2px solid var(--border)}::-webkit-scrollbar-thumb:hover{background:var(--text-soft)}.spinner{color:var(--accent);font-size:32px;animation:2s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.pixel-img{image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges}
