:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh;background-color:#0f0f0f}#root{width:100%}*{box-sizing:border-box;margin:0;padding:0}:root,[data-theme=dark]{--bg-primary: #0f0f0f;--bg-secondary: #1a1a1a;--bg-tertiary: #252525;--border-color: #2a2a2a;--border-hover: #3a3a3a;--text-primary: #ffffff;--text-secondary: #9ca3af;--text-muted: #6b7280;--accent: #22c55e;--accent-hover: #16a34a;--accent-text: #000000;--distance-badge: #3b82f6;--error: #ef4444}[data-theme=light]{--bg-primary: #f8fafc;--bg-secondary: #ffffff;--bg-tertiary: #f1f5f9;--border-color: #e2e8f0;--border-hover: #cbd5e1;--text-primary: #1e293b;--text-secondary: #475569;--text-muted: #64748b;--accent: #16a34a;--accent-hover: #15803d;--accent-text: #ffffff;--distance-badge: #2563eb;--error: #dc2626}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);min-height:100vh;transition:background-color .3s ease,color .3s ease}.app{max-width:1200px;margin:0 auto;padding:2rem}.header{text-align:center;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border-color)}.header-top{display:flex;justify-content:center;align-items:center;position:relative;margin-bottom:.5rem}.logo-title{display:flex;align-items:center;gap:.75rem}.logo{width:50px;height:50px;object-fit:contain}.header h1{font-size:2.5rem;font-weight:700;color:var(--accent);margin:0}.theme-toggle{position:absolute;right:0;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:20px;padding:.4rem .8rem;font-size:.85rem;cursor:pointer;display:flex;align-items:center;gap:.3rem;color:var(--text-secondary);transition:all .2s ease}.theme-toggle:hover{border-color:var(--accent);color:var(--text-primary)}.tagline{color:var(--text-secondary);font-size:1.1rem}.location-selector{position:relative;margin:1rem 0 .5rem}.current-location{display:flex;align-items:center;justify-content:center;gap:.75rem;flex-wrap:wrap}.viewing-text{color:var(--text-secondary);font-size:1rem}.viewing-text strong{color:var(--accent)}.change-location-btn{background:transparent;border:1px solid var(--border-hover);color:var(--text-muted);padding:.3rem .6rem;border-radius:4px;font-size:.8rem;cursor:pointer;transition:all .2s ease}.change-location-btn:hover{border-color:var(--accent);color:var(--accent)}.location-loading{color:var(--text-muted);font-size:.95rem}.location-status{color:var(--text-muted);font-size:.85rem;margin-top:.5rem}.search-dropdown{position:absolute;top:100%;left:50%;transform:translate(-50%);width:320px;max-width:90vw;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 8px 32px #0000004d;margin-top:.5rem;z-index:100;overflow:hidden}.search-input{width:100%;padding:.9rem 1rem;border:none;border-bottom:1px solid var(--border-color);background:transparent;color:var(--text-primary);font-size:1rem;outline:none}.search-input::placeholder{color:var(--text-muted)}.search-results{list-style:none;max-height:280px;overflow-y:auto}.search-results li{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;cursor:pointer;transition:background .15s ease}.search-results li:hover{background:var(--bg-tertiary)}.search-results li.selected{background:var(--bg-tertiary);border-left:3px solid var(--accent)}.city-name{color:var(--text-primary);font-weight:500}.city-count{color:var(--text-muted);font-size:.8rem}.no-results-search{padding:1.5rem 1rem;text-align:center}.no-results-search p{color:var(--text-secondary);margin-bottom:1rem}.request-btn{background:var(--accent);color:var(--accent-text);border:none;padding:.5rem 1rem;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background .2s ease}.request-btn:hover{background:var(--accent-hover)}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal{background:var(--bg-secondary);border-radius:12px;padding:1.5rem;width:100%;max-width:380px;box-shadow:0 8px 32px #0006}.modal h3{color:var(--text-primary);margin-bottom:.5rem}.modal p{color:var(--text-secondary);margin-bottom:.5rem}.modal-note{font-size:.9rem;color:var(--text-muted)!important;margin-top:1rem!important}.modal-input{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-tertiary);color:var(--text-primary);font-size:1rem;margin-top:.5rem}.modal-input:focus{outline:none;border-color:var(--accent)}.modal-actions{display:flex;gap:.75rem;margin-top:1.25rem}.modal-cancel{flex:1;padding:.6rem;border:1px solid var(--border-color);background:transparent;color:var(--text-secondary);border-radius:6px;cursor:pointer;font-size:.9rem;transition:all .2s ease}.modal-cancel:hover{border-color:var(--text-muted);color:var(--text-primary)}.modal-submit{flex:1;padding:.6rem;border:none;background:var(--accent);color:var(--accent-text);border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:500;transition:background .2s ease}.modal-submit:hover{background:var(--accent-hover)}.modal-success{text-align:center;padding:1rem 0}.success-icon{display:inline-block;width:48px;height:48px;line-height:48px;background:var(--accent);color:var(--accent-text);border-radius:50%;font-size:1.5rem;margin-bottom:.75rem}.controls{display:flex;flex-direction:column;gap:1rem;margin-bottom:2rem;align-items:center}.category-filters{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.filter-btn{padding:.6rem 1.2rem;border:1px solid var(--border-hover);background-color:var(--bg-secondary);color:var(--text-secondary);border-radius:9999px;cursor:pointer;font-size:.9rem;transition:all .2s ease}.filter-btn:hover{border-color:var(--accent);color:var(--text-primary)}.filter-btn.active{background-color:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}.scrape-btn{padding:.8rem 1.5rem;background-color:var(--accent);color:var(--accent-text);border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;transition:all .2s ease}.scrape-btn:hover{background-color:var(--accent-hover)}.scrape-btn:disabled{background-color:var(--border-hover);color:var(--text-muted);cursor:not-allowed}.deal-counter{text-align:center;font-size:.9rem;color:var(--text-muted);margin-bottom:1.5rem}.deal-counter-number{font-weight:600;color:var(--accent)}.main{min-height:400px}.loading,.error,.no-results{text-align:center;padding:4rem 2rem;color:var(--text-secondary)}.error{color:var(--error)}.error p:last-child{color:var(--text-muted);font-size:.9rem;margin-top:.5rem}.dispensary-grid{display:flex;flex-direction:column;gap:1.5rem;max-width:700px;margin:0 auto}.dispensary-card{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:1.5rem;transition:all .2s ease}.dispensary-card:hover{border-color:var(--border-hover)}.dispensary-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.dispensary-info{display:flex;flex-direction:column;gap:.25rem;flex:1;min-width:0}.dispensary-title{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0}.dispensary-meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.dispensary-distance{background-color:var(--distance-badge);color:#fff;padding:.15rem .5rem;border-radius:9999px;font-size:.75rem;font-weight:600}.dispensary-city{color:var(--text-secondary);font-size:.85rem}.dispensary-address{color:var(--text-muted);font-size:.8rem;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dispensary-address:hover{color:var(--accent);text-decoration:underline}.dispensary-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.deal-count{background-color:var(--accent);color:var(--accent-text);padding:.25rem .75rem;border-radius:9999px;font-size:.8rem;font-weight:600}.view-dispensary-btn-small{padding:.4rem .8rem;background-color:transparent;border:1px solid var(--accent);color:var(--accent);border-radius:6px;text-decoration:none;font-size:.85rem;font-weight:500;transition:all .2s ease}.view-dispensary-btn-small:hover{background-color:var(--accent);color:var(--accent-text)}.deals-list{display:flex;flex-direction:column;gap:.75rem}.deal-item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.6rem .75rem;background-color:var(--bg-tertiary);border-radius:8px}.deal-title{font-size:.95rem;color:var(--text-primary);flex:1}.discount-badge{background-color:var(--accent);color:var(--accent-text);padding:.2rem .6rem;border-radius:9999px;font-size:.75rem;font-weight:700;white-space:nowrap;flex-shrink:0}.footer{text-align:center;margin-top:3rem;padding-top:2rem;border-top:1px solid var(--border-color);color:var(--text-muted);font-size:.85rem}.footer a{color:var(--accent);text-decoration:none}.footer a:hover{text-decoration:underline}.dispensary-count{margin-top:.5rem}@media(max-width:640px){.app{padding:1rem}.header h1{font-size:2rem}.dispensary-grid{grid-template-columns:1fr}.filter-btn{padding:.5rem 1rem;font-size:.85rem}.deal-item{flex-direction:column;align-items:flex-start;gap:.5rem}.deal-info{flex-direction:column;align-items:flex-start;width:100%}.view-deal-btn-small{align-self:flex-end}}
