:root{--bg-app:#624873;--bg-card:#4a365799;--bg-card-subtle:#3d2e4a80;--bg-sidebar:#2a1f35;--bg-sidebar-active:#5a4870;--primary:#624873;--primary-hover:#4a3657;--primary-light:#e8def5;--primary-badge:#f3edf9;--sage-accent:var(--primary);--sage-glow:#00000026;--mint-sparkle:var(--primary-light);--emerald-accent:var(--primary);--gold-sparkle:#f39c12;--ruby-sparkle:#e74c3c;--sapphire-sparkle:#00a8ff;--text-main:#f3edf9;--text-muted:#c4b5d4;--text-light:#9a8ab0;--text-white:#fff;--income-bg:color-mix(in srgb, var(--income) 20%, transparent);--expense-bg:color-mix(in srgb, var(--expense) 20%, transparent);--warning-bg:color-mix(in srgb, var(--warning) 20%, transparent);--income:#c4b5d4;--expense:#f87171;--warning:#fbbf24;--border-light:#0f2d1e14;--border-focus:var(--primary);--radius-sm:2px;--radius-md:4px;--radius-lg:6px;--radius-xl:8px;--shadow-sm:0 2px 8px #0003;--shadow-card:0 12px 32px -4px #0000004d, 0 4px 12px #0003;--shadow-hover:0 18px 40px -4px #0006;--shadow-modal:0 24px 48px -12px #00000080;--font-sans:"Inter", "Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--transition-fast:.18s cubic-bezier(.4, 0, .2, 1);--transition-smooth:.28s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}html{width:100%;overflow-x:hidden}body{font-family:var(--font-sans);background-color:var(--bg-app);color:var(--text-main);-webkit-font-smoothing:antialiased;width:100%;min-height:100vh;line-height:1.5;overflow-x:hidden}.app-container{z-index:1;width:100%;max-width:100vw;min-height:100vh;display:flex;position:relative;overflow-x:hidden}.glitter-canvas-container{pointer-events:none;z-index:0;opacity:1;width:100vw;height:100vh;position:fixed;top:0;left:0}.main-wrapper{z-index:2;width:100%;min-width:0;transition:margin-left var(--transition-smooth);flex-direction:column;flex:1;display:flex;position:relative;overflow-x:hidden}.content-area{box-sizing:border-box;flex:1;width:100%;max-width:1400px;margin:0 auto;padding:2rem;overflow-x:hidden}.card{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-light);box-shadow:var(--shadow-card);transition:transform var(--transition-smooth), box-shadow var(--transition-smooth);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-sizing:border-box;width:100%;padding:1.5rem}.card:hover{box-shadow:var(--shadow-hover)}.card-title{font-family:"Plus Jakarta Sans", var(--font-sans);color:var(--text-main);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:1rem;font-size:1.125rem;font-weight:700;display:flex}.grid-metrics{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.25rem;width:100%;margin-bottom:1.75rem;display:grid}.grid-dashboard-main{grid-template-columns:1fr 1.2fr;gap:1.5rem;width:100%;margin-bottom:1.75rem;display:grid}.grid-dashboard-bottom{grid-template-columns:1fr 1fr;gap:1.5rem;width:100%;display:grid}.accounts-section-header{justify-content:center;align-items:center;width:100%;margin-bottom:1.25rem;display:flex;position:relative}.accounts-section-title{font-family:"Plus Jakarta Sans", var(--font-sans);color:var(--text-main);text-align:center;justify-content:center;align-items:center;gap:.5rem;font-size:1.15rem;font-weight:700;display:flex}.accounts-add-btn{position:absolute;top:50%;right:0;transform:translateY(-50%)}.accounts-cards-grid{flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;width:100%;display:flex}.account-card-item{background:var(--bg-card-subtle);border:1px solid var(--border-light);border-radius:var(--radius-md);min-width:200px;max-width:100%;transition:transform var(--transition-fast), background var(--transition-fast);flex:0 240px;align-items:center;gap:.85rem;min-height:52px;padding:.85rem 1.15rem;display:flex}.account-card-item:hover{background:color-mix(in srgb, var(--bg-card-subtle) 80%, var(--primary));transform:translateY(-2px)}.metric-card{align-items:flex-start;gap:1rem;display:flex;position:relative;overflow:hidden}.metric-card:after{content:"";background:radial-gradient(circle, var(--primary-light) 0%, transparent 70%);opacity:.15;pointer-events:none;border-radius:50%;width:80px;height:80px;position:absolute;top:0;right:0}.metric-icon-box{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;display:flex}.metric-icon-box.balance{background:color-mix(in srgb, var(--primary) 20%, transparent);color:var(--primary)}.metric-icon-box.income{background:var(--income-bg);color:var(--income)}.metric-icon-box.expense{background:var(--expense-bg);color:var(--expense)}.metric-icon-box.savings{background:color-mix(in srgb, var(--primary) 15%, transparent);color:var(--primary)}.metric-info{flex:1}.metric-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem;font-size:.85rem;font-weight:500}.metric-value{font-family:"Plus Jakarta Sans", var(--font-sans);color:var(--text-main);font-size:1.65rem;font-weight:700;line-height:1.2}.metric-sub{color:var(--text-light);align-items:center;gap:.35rem;margin-top:.35rem;font-size:.78rem;display:flex}.btn{font-family:var(--font-sans);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.65rem 1.25rem;font-size:.9rem;font-weight:600;text-decoration:none;display:inline-flex}.btn-primary{background:var(--primary);color:var(--text-white);box-shadow:0 4px 14px #1972474d}.btn-primary:hover{background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 6px 18px #19724766}.btn-secondary{background:var(--bg-card-subtle);color:var(--text-main);border-color:var(--border-light)}.btn-secondary:hover{background:color-mix(in srgb, var(--text-main) 10%, transparent);color:var(--text-main);border-color:color-mix(in srgb, var(--text-main) 15%, transparent)}.btn-danger{color:#fca5a5;background:#e74c3c33}.btn-danger:hover{background:#e74c3c4d}.btn-sm{border-radius:var(--radius-sm);padding:.4rem .85rem;font-size:.82rem}.btn-icon{border-radius:50%;width:38px;height:38px;padding:0}.badge{text-transform:capitalize;border-radius:20px;align-items:center;gap:.35rem;padding:.25rem .65rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge-income{background:var(--income-bg);color:var(--income)}.badge-expense{background:var(--expense-bg);color:var(--expense)}.badge-guest{color:#fbbf24;background:#f59e0b33;border:1px solid #f59e0b4d}.badge-recurring{color:#a5b4fc;background:#6366f133}.table-container{border-radius:var(--radius-md);width:100%;overflow-x:auto}.custom-table{border-collapse:collapse;text-align:left;width:100%}.custom-table th{background:var(--bg-card-subtle);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-light);padding:.85rem 1rem;font-size:.8rem;font-weight:600}.custom-table td{border-bottom:1px solid var(--border-light);color:var(--text-main);vertical-align:middle;padding:1rem;font-size:.9rem}.custom-table tr:last-child td{border-bottom:none}.custom-table tr:hover td{background:color-mix(in srgb, var(--text-main) 6%, transparent)}.form-group{margin-bottom:1.25rem}.form-label{color:var(--text-main);margin-bottom:.4rem;font-size:.85rem;font-weight:600;display:block}.form-control{width:100%;font-family:var(--font-sans);color:var(--text-main);background:var(--bg-card-subtle);border:1px solid var(--border-light);border-radius:var(--radius-md);transition:all var(--transition-fast);outline:none;padding:.75rem 1rem;font-size:.92rem}.form-control:focus{border-color:var(--border-focus);background:var(--bg-card);box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 25%, transparent)}.progress-bar-bg{background:color-mix(in srgb, var(--text-main) 12%, transparent);border-radius:10px;width:100%;height:10px;margin-top:.5rem;overflow:hidden}.progress-bar-fill{border-radius:10px;height:100%;transition:width .5s ease-out}.progress-safe{background:linear-gradient(90deg,#2ecc71,#10b981)}.progress-warning{background:linear-gradient(90deg,#fbbf24,#f59e0b)}.progress-danger{background:linear-gradient(90deg,#f87171,#ef4444)}.modal-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1000;background:#0a050fa6;justify-content:center;align-items:center;width:100vw;height:100vh;padding:1rem;animation:.2s ease-out fadeIn;display:flex;position:fixed;top:0;left:0}.modal-content{background:var(--bg-card);border-radius:var(--radius-xl);width:100%;max-width:500px;box-shadow:var(--shadow-modal);padding:2rem;animation:.25s cubic-bezier(.16,1,.3,1) slideUp;position:relative}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (width<=1024px){.grid-dashboard-main,.grid-dashboard-bottom{grid-template-columns:1fr;gap:1.25rem}}@media (width<=768px){.content-area{padding:1rem .85rem}.card{border-radius:var(--radius-md);padding:1.15rem 1rem}.grid-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;margin-bottom:1.25rem}.metric-card{gap:.75rem;padding:.9rem}.metric-icon-box{width:44px;height:44px}.metric-value{font-size:clamp(1.15rem,4vw,1.45rem)}.metric-label{font-size:.75rem}.metric-sub{font-size:.72rem}.btn{min-height:44px}.btn-sm{min-height:44px;padding:.5rem .95rem;font-size:.85rem}.btn-icon{min-width:44px;min-height:44px}.accounts-section-header{flex-direction:column;gap:.75rem}.accounts-add-btn{width:auto;position:static;transform:none}.account-card-item{flex:100%;min-height:52px}}@media (width<=480px){.content-area{padding:.85rem .65rem}.grid-metrics{grid-template-columns:1fr;gap:.75rem}.metric-value{font-size:1.4rem}.accounts-cards-grid{flex-direction:column}.account-card-item{width:100%}}[data-theme-preset=kiro] body,[data-theme-preset=kiro] .app-container{color:#f8fafc;background-color:#0a0a0f}[data-theme-preset=kiro] .card{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#0f0c1bc7;border:1px solid #a855f738;box-shadow:0 12px 36px -4px #000c,0 0 20px -4px #7928ca29}[data-theme-preset=kiro] .card:hover{border-color:#a855f761;box-shadow:0 16px 42px -4px #000000e6,0 0 28px #8b5cf640}[data-theme-preset=kiro] .sidebar{background:#060609;border-right:1px solid #a855f729}[data-theme-preset=kiro] .app-header{background:#0a0a0fe0;border-bottom:1px solid #a855f729}[data-theme-preset=kiro] .btn-primary{background:linear-gradient(135deg,#8b5cf6 0%,#7928ca 100%);border:1px solid #ffffff26;box-shadow:0 4px 18px #7928ca73}[data-theme-preset=kiro] .btn-primary:hover{background:linear-gradient(135deg,#9d74ff 0%,#8b3be2 100%);box-shadow:0 6px 24px #7928caa6}[data-theme-preset=kiro] .badge-income{color:#34d399;background:#10b98129;border:1px solid #10b9814d}[data-theme-preset=kiro] .badge-expense{color:#fb7185;background:#f43f5e29;border:1px solid #f43f5e4d}@keyframes float{0%,to{transform:translate(0,0)rotate(0)}33%{transform:translate(14px,-24px)rotate(5deg)}66%{transform:translate(-12px,-12px)rotate(-4deg)}}.explore-page-wrapper{width:100%;position:relative}.explore-floating-toast{z-index:9999;color:#f3edf9;border-radius:var(--radius-md);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#1e1528f2;border:1px solid #a855f7;align-items:center;gap:.6rem;padding:.85rem 1.25rem;font-size:.9rem;font-weight:600;animation:.3s cubic-bezier(.16,1,.3,1) forwards slideToastUp;display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 16px 36px #0009,0 0 20px #a855f759}@keyframes slideToastUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.explore-header-card{background:var(--bg-card);padding:1.5rem 1.75rem}.explore-header-flex{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.explore-main-title{font-family:"Plus Jakarta Sans", var(--font-sans);color:var(--text-main);letter-spacing:-.02em;font-size:1.65rem;font-weight:800}.explore-sample-badge{text-transform:uppercase;letter-spacing:.06em;color:#fbbf24;background:#f59e0b26;border:1px solid #f59e0b4d;border-radius:12px;align-items:center;padding:.2rem .65rem;font-size:.72rem;font-weight:700;display:inline-flex}.explore-subtitle{color:var(--text-muted);max-width:600px;font-size:.92rem}.explore-header-badge{background:var(--bg-card-subtle);border:1px solid var(--border-light);color:var(--text-muted);border-radius:20px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.82rem;display:flex}.explore-filters-card{transition:all var(--transition-fast)}.explore-filters-top-row{align-items:center;gap:.85rem;display:flex}.explore-search-box{flex:1;align-items:center;display:flex;position:relative}.explore-search-box .search-icon{color:var(--text-light);pointer-events:none;position:absolute;left:1rem}.explore-search-box .search-input{width:100%;font-family:var(--font-sans);color:var(--text-main);background:var(--bg-card-subtle);border:1px solid var(--border-light);border-radius:var(--radius-md);transition:all var(--transition-fast);outline:none;padding:.75rem 2.5rem .75rem 2.6rem;font-size:.92rem}.explore-search-box .search-input:focus{background:var(--bg-card);border-color:#a855f7;box-shadow:0 0 0 3px #a855f740}.explore-search-box .search-clear-btn{width:24px;height:24px;color:var(--text-muted);cursor:pointer;transition:background var(--transition-fast);background:#ffffff1a;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;right:.75rem}.explore-search-box .search-clear-btn:hover{color:var(--text-white);background:#fff3}.mobile-filter-toggle{display:none}.explore-filters-body{border-top:1px solid var(--border-light);margin-top:1rem;padding-top:1rem}.filters-grid-row{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1rem;display:grid}.filter-item{flex-direction:column;display:flex}.filter-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-light);margin-bottom:.35rem;font-size:.78rem;font-weight:600}.filter-select{cursor:pointer}.filters-chips-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.85rem;display:flex}.filter-chips-group{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.filter-chip{border:1px solid var(--border-light);background:var(--bg-card-subtle);color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);border-radius:20px;align-items:center;gap:.4rem;padding:.4rem .85rem;font-size:.82rem;font-weight:600;display:inline-flex}.filter-chip:hover{color:var(--text-main);background:#a855f71a;border-color:#a855f766}.filter-chip.active{color:#f3edf9;background:#a855f740;border-color:#a855f7;box-shadow:0 0 12px #a855f74d}.filter-summary-actions{align-items:center;gap:.75rem;display:flex}.results-count-text{color:var(--text-muted);font-size:.85rem}.reset-filters-btn{font-size:.8rem}.explore-split-layout{grid-template-columns:1.15fr .95fr;align-items:start;gap:1.5rem;margin-bottom:2rem;display:grid}.explore-map-column{width:100%}.map-wrapper-card{padding:.85rem;position:relative;overflow:hidden}.map-card-header{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;margin-bottom:.75rem;padding:.5rem .65rem .85rem;display:flex}.explore-map-container{border-radius:var(--radius-md);border:1px solid var(--border-light);width:100%;height:520px;position:relative;overflow:hidden}.explore-map-element{z-index:1;background:#181122;width:100%;height:100%}.explore-map-skeleton{border-radius:var(--radius-md);background:#2a1f35cc;flex-direction:column;justify-content:center;align-items:center;gap:1rem;width:100%;height:520px;display:flex}.skeleton-spinner{border:3px solid #a855f733;border-top-color:#a855f7;border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.skeleton-text{color:var(--text-muted);font-size:.88rem}.map-overlay-controls{z-index:400;align-items:center;gap:.5rem;display:flex;position:absolute;top:12px;left:12px}.map-control-pill-btn{color:#f3edf9;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:all var(--transition-fast);background:#1e1528e6;border:1px solid #ffffff26;border-radius:20px;align-items:center;gap:.35rem;padding:.4rem .75rem;font-size:.78rem;font-weight:600;display:inline-flex;box-shadow:0 4px 12px #0006}.map-control-pill-btn:hover{color:#fff;background:#a855f7}.map-tiles-badge{color:var(--text-light);letter-spacing:.04em;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#000000a6;border-radius:14px;padding:.35rem .65rem;font-size:.7rem;font-weight:600}.leaflet-container{font-family:var(--font-sans)!important;background-color:#120b1a!important}.leaflet-bar a{transition:all var(--transition-fast);color:#f3edf9!important;background-color:#1e1528e6!important;border-color:#ffffff26!important}.leaflet-bar a:hover{color:#fff!important;background-color:#a855f7!important}.custom-cafe-marker-wrapper{background:0 0!important;border:none!important}.custom-cafe-marker{cursor:pointer;flex-direction:column;align-items:center;transition:transform .2s cubic-bezier(.175,.885,.32,1.275);display:flex;position:relative}.custom-cafe-marker:hover{z-index:999;transform:scale(1.15)translateY(-4px)}.marker-pin{border:2px solid var(--accent-color,#a78bfa);color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#1e142af2;border-radius:18px;align-items:center;gap:.3rem;padding:.3rem .55rem;display:flex;box-shadow:0 4px 14px #0009,0 0 10px #a855f759}.marker-icon{color:var(--accent-color,#a78bfa);align-items:center;display:flex}.marker-price{letter-spacing:-.02em;font-size:.72rem;font-weight:700}.marker-tip{border-left:5px solid #0000;border-right:5px solid #0000;border-top:6px solid var(--accent-color,#a78bfa);width:0;height:0;margin-top:-1px}.marker-selected .marker-pin{background:#a855f7;border-color:#fff;box-shadow:0 0 20px #a855f7,0 4px 16px #000000b3}.marker-selected .marker-icon{color:#fff}.marker-selected .marker-tip{border-top-color:#fff}.marker-selected .marker-pulse{pointer-events:none;background:#a855f766;border-radius:50%;width:48px;height:48px;animation:1.5s cubic-bezier(.215,.61,.355,1) infinite pulseRing;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes pulseRing{0%{opacity:.9;transform:translate(-50%,-50%)scale(.6)}to{opacity:0;transform:translate(-50%,-50%)scale(1.6)}}.explore-leaflet-popup .leaflet-popup-content-wrapper{color:#f3edf9!important;border-radius:var(--radius-md)!important;-webkit-backdrop-filter:blur(12px)!important;backdrop-filter:blur(12px)!important;background:#1e1528f5!important;border:1px solid #a855f766!important;padding:0!important;box-shadow:0 16px 36px #000000b3,0 0 16px #a855f74d!important}.explore-leaflet-popup .leaflet-popup-tip{background:#1e1528f5!important;border:1px solid #a855f766!important}.explore-leaflet-popup .leaflet-popup-close-button{color:var(--text-light)!important;padding:6px!important}.explore-leaflet-popup .leaflet-popup-close-button:hover{color:#fff!important}.explore-map-popup-inner{padding:.85rem 1rem}.explore-map-popup-inner .popup-header{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.35rem;display:flex}.explore-map-popup-inner .popup-title{color:#f3edf9;font-size:.98rem;font-weight:700}.explore-map-popup-inner .popup-area-badge{color:#c084fc;background:#a855f733;border-radius:10px;padding:.15rem .5rem;font-size:.7rem;font-weight:600}.explore-map-popup-inner .popup-desc{color:var(--text-muted);margin-bottom:.65rem;font-size:.82rem;line-height:1.4}.explore-map-popup-inner .popup-meta{color:var(--text-muted);border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;margin-bottom:.75rem;padding-bottom:.5rem;font-size:.8rem;display:flex}.explore-map-popup-inner .popup-budget strong{color:var(--text-main)}.explore-map-popup-inner .popup-rating{color:#fbbf24;font-weight:700}.explore-map-popup-inner .popup-actions{width:100%}.explore-map-popup-inner .popup-details-btn{width:100%;padding:.45rem .75rem;font-size:.8rem}.explore-list-column{width:100%}.cafe-list-card{padding:.85rem}.cafe-list-header{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;margin-bottom:.75rem;padding:.5rem .65rem .85rem;display:flex}.cafe-list-scrollable{flex-direction:column;gap:.85rem;max-height:520px;padding-right:.4rem;display:flex;overflow-y:auto}.cafe-list-scrollable::-webkit-scrollbar{width:6px}.cafe-list-scrollable::-webkit-scrollbar-track{background:#ffffff0a;border-radius:10px}.cafe-list-scrollable::-webkit-scrollbar-thumb{background:#a855f74d;border-radius:10px}.cafe-list-scrollable::-webkit-scrollbar-thumb:hover{background:#a855f799}.cafe-card{background:var(--bg-card-subtle);border:1px solid var(--border-light);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);outline:none;padding:1rem 1.15rem}.cafe-card:hover{background:color-mix(in srgb, var(--bg-card-subtle) 75%, var(--primary));border-color:#a855f759;transform:translateY(-2px);box-shadow:0 8px 24px #00000059}.cafe-card.selected{background:#58386e80;border-color:#a855f7;box-shadow:0 0 16px #a855f74d,0 8px 24px #0006}.cafe-card-header{justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.4rem;display:flex}.cafe-name{font-family:"Plus Jakarta Sans", var(--font-sans);color:var(--text-main);font-size:1.05rem;font-weight:700;line-height:1.3}.cafe-area-tag{color:var(--text-muted);background:#ffffff14;border-radius:10px;padding:.15rem .5rem;font-size:.72rem;font-weight:600}.cafe-category-tag{color:#d8b4fe;background:#a855f726;border-radius:10px;padding:.15rem .5rem;font-size:.72rem;font-weight:600}.cafe-voucher-tag{color:#34d399;background:#10b98133;border:1px solid #10b9814d;border-radius:10px;align-items:center;gap:.25rem;padding:.15rem .55rem;font-size:.72rem;font-weight:700;display:inline-flex}.cafe-rating-badge{color:#fbbf24;background:#0000004d;border-radius:12px;flex-shrink:0;align-items:center;gap:.25rem;padding:.2rem .5rem;font-size:.82rem;font-weight:700;display:flex}.cafe-description{color:var(--text-muted);margin-bottom:.65rem;font-size:.85rem;line-height:1.45}.cafe-meta-bar{border-bottom:1px solid var(--border-light);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.65rem;padding-bottom:.5rem;display:flex}.cafe-budget-badge{color:var(--text-muted);font-size:.82rem}.cafe-budget-badge strong{color:var(--text-main);margin-left:.25rem}.cafe-amenities{align-items:center;gap:.4rem;display:flex}.amenity-chip{color:var(--text-light);background:#ffffff0d;border-radius:8px;align-items:center;gap:.25rem;padding:.15rem .45rem;font-size:.72rem;display:inline-flex}.cafe-budget-hint-row{margin-bottom:.75rem}.budget-hint-chip{border-radius:var(--radius-sm);align-items:center;gap:.4rem;padding:.35rem .65rem;font-size:.78rem;font-weight:600;display:flex}.budget-hint-chip.fits{color:#34d399;background:#10b98126;border:1px solid #10b98140}.budget-hint-chip.tight{color:#fbbf24;background:#f59e0b26;border:1px solid #f59e0b40}.budget-hint-chip.over{color:#f87171;background:#ef444426;border:1px solid #ef444440}.budget-hint-chip.no-budget{color:var(--text-muted);border:1px dashed var(--border-light);background:#ffffff0d}.budget-prompt-btn{color:var(--primary-light);cursor:pointer;background:0 0;border:none;align-items:center;gap:.2rem;font-size:.78rem;font-weight:700;text-decoration:underline;display:inline-flex}.budget-prompt-btn:hover{color:#fff}.cafe-card-actions{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.add-expense-quick-btn{font-weight:600}.explore-empty-state{text-align:center;color:var(--text-muted);flex-direction:column;align-items:center;gap:.5rem;padding:3rem 1.5rem;display:flex}.explore-empty-state h4{color:var(--text-main);font-size:1.1rem;font-weight:700}.explore-empty-state p{max-width:320px;margin-bottom:.75rem;font-size:.85rem}.vouchers-header-row{border-bottom:1px solid var(--border-light);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;padding-bottom:1rem;display:flex}.vouchers-filter-tabs{background:var(--bg-card-subtle);border:1px solid var(--border-light);border-radius:24px;align-items:center;gap:.5rem;padding:.3rem;display:flex}.voucher-tab-btn{color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;border-radius:18px;align-items:center;gap:.35rem;padding:.35rem .85rem;font-size:.82rem;font-weight:600;display:inline-flex}.voucher-tab-btn:hover{color:var(--text-main)}.voucher-tab-btn.active{background:var(--primary);color:#fff;box-shadow:0 2px 8px #0000004d}.vouchers-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem;display:grid}.voucher-card{background:var(--bg-card-subtle);border:1px solid var(--border-light);border-radius:var(--radius-md);transition:all var(--transition-fast);flex-direction:column;padding:1.25rem;display:flex;position:relative}.voucher-card:hover{border-color:#a855f766;transform:translateY(-2px);box-shadow:0 10px 24px #00000059}.voucher-card.expired-voucher{opacity:.5;filter:grayscale(.5)}.voucher-card-top{justify-content:space-between;align-items:center;margin-bottom:.65rem;display:flex}.voucher-cafe-link{color:var(--text-light);cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;padding:0;font-size:.82rem;font-weight:600}.voucher-cafe-link:hover{color:var(--primary-light);text-decoration:underline}.voucher-save-btn{color:var(--text-light);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;padding:4px}.voucher-save-btn:hover,.voucher-save-btn.saved{color:#fbbf24}.voucher-discount-badge-row{justify-content:space-between;align-items:center;margin-bottom:.6rem;display:flex}.voucher-value-badge{letter-spacing:.02em;border-radius:12px;padding:.25rem .65rem;font-size:.85rem;font-weight:800}.voucher-value-badge.active{color:#fff;background:linear-gradient(135deg,#10b981,#059669)}.voucher-value-badge.expiring{color:#fff;background:linear-gradient(135deg,#f59e0b,#d97706)}.voucher-value-badge.muted{color:var(--text-muted);background:#ffffff1a}.voucher-min-spend{color:var(--text-muted);font-size:.78rem}.voucher-title{font-family:"Plus Jakarta Sans", var(--font-sans);color:var(--text-main);margin-bottom:.4rem;font-size:1rem;font-weight:700}.voucher-terms{color:var(--text-light);flex:1;margin-bottom:1rem;font-size:.8rem;line-height:1.4}.voucher-card-footer{border-top:1px dashed var(--border-light);justify-content:space-between;align-items:center;gap:.5rem;padding-top:.75rem;display:flex}.voucher-code-wrapper{border:1px solid var(--border-light);background:#00000059;border-radius:8px;align-items:center;display:flex;overflow:hidden}.voucher-code-text{letter-spacing:.05em;color:#f3edf9;padding:.35rem .6rem;font-family:monospace;font-size:.82rem;font-weight:700}.voucher-copy-btn{color:#d8b4fe;cursor:pointer;transition:all var(--transition-fast);background:#a855f733;border:none;align-items:center;gap:.25rem;padding:.35rem .6rem;font-size:.75rem;font-weight:700;display:inline-flex}.voucher-copy-btn:hover:not(:disabled){color:#fff;background:#a855f7}.voucher-copy-btn.copied{color:#fff;background:#10b981}.voucher-expiry-label{color:var(--text-light);align-items:center;gap:.25rem;font-size:.74rem;display:flex}.voucher-expiry-label.expiring{color:#fbbf24;font-weight:600}.voucher-expiry-label.expired{color:var(--expense)}.cafe-modal-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.cafe-halal-tag{color:#34d399;background:#10b98126;border-radius:10px;padding:.15rem .5rem;font-size:.72rem;font-weight:600}.cafe-detail-box{border:1px solid var(--border-light);border-radius:var(--radius-sm);background:#0003;padding:.65rem .85rem}.detail-box-label{text-transform:uppercase;color:var(--text-light);align-items:center;gap:.35rem;margin-bottom:.2rem;font-size:.75rem;display:flex}.detail-box-val{color:var(--text-main);font-size:.85rem;font-weight:600}.amenity-chip-large{color:var(--text-muted);background:#ffffff0d;border-radius:14px;align-items:center;gap:.35rem;padding:.35rem .75rem;font-size:.8rem;font-weight:600;display:inline-flex}.amenity-chip-large.active{color:#d8b4fe;background:#a855f726;border:1px solid #a855f74d}@media (width<=1024px){.explore-split-layout{grid-template-columns:1fr;gap:1.25rem}.explore-map-container,.map-view-container{height:340px}.cafe-list-scrollable{max-height:440px}}@media (width<=768px){.explore-header-flex{flex-direction:column;align-items:flex-start}.mobile-filter-toggle{align-items:center;gap:.4rem;display:inline-flex}.explore-filters-body{display:none}.explore-filters-body.mobile-visible{animation:.25s ease-out fadeInDown;display:block}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.explore-map-container,.map-view-container{height:280px}.vouchers-header-row{flex-direction:column;align-items:flex-start}.vouchers-filter-tabs{justify-content:space-between;width:100%}}.map-view-container{border-radius:var(--radius-md);border:1px solid var(--border-light);-webkit-user-select:none;user-select:none;background:#140d20;width:100%;height:520px;position:relative;overflow:hidden}.map-view-canvas-wrapper{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.map-view-static-img,.static-map-svg{object-fit:cover;width:100%;height:100%;display:block}.demo-map-badge{color:#d8b4fe;letter-spacing:.04em;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#a855f740;border:1px solid #a855f773;border-radius:14px;padding:.35rem .65rem;font-size:.72rem;font-weight:700;box-shadow:0 2px 8px #0000004d}.map-markers-layer{pointer-events:none;z-index:10;width:100%;height:100%;position:absolute;inset:0}.demo-marker-container{pointer-events:auto;z-index:12;cursor:pointer;flex-direction:column;align-items:center;transition:transform .25s cubic-bezier(.175,.885,.32,1.275),opacity .3s;display:flex;position:absolute;transform:translate(-50%,-100%)}.demo-marker-container:hover{z-index:40;transform:translate(-50%,-108%)scale(1.1)}.demo-marker-container.marker-selected{z-index:50;transform:translate(-50%,-108%)scale(1.15)}.demo-marker-halo{pointer-events:none;background:#a855f773;border-radius:50%;width:48px;height:48px;animation:1.5s cubic-bezier(.215,.61,.355,1) infinite pulseRing;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.demo-marker-pill{border:2px solid var(--accent-color,#a78bfa);color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);white-space:nowrap;transition:all var(--transition-fast);background:#1c1228f2;border-radius:20px;outline:none;align-items:center;gap:.35rem;padding:.32rem .65rem;font-size:.72rem;font-weight:700;display:flex;box-shadow:0 4px 14px #0009,0 0 10px #a855f759}.demo-marker-pill:focus-visible{box-shadow:0 0 0 3px #fff,0 0 18px #a855f7}.marker-selected .demo-marker-pill{background:#a855f7;border-color:#fff;box-shadow:0 0 20px #a855f7,0 4px 16px #000000b3}.marker-pin-dot{background:var(--accent-color,#a78bfa);border-radius:50%;width:6px;height:6px}.marker-selected .marker-pin-dot{background:#fff}.marker-down-arrow{border-left:5px solid #0000;border-right:5px solid #0000;border-top:6px solid var(--accent-color,#a78bfa);width:0;height:0;margin-top:-1px}.marker-selected .marker-down-arrow{border-top-color:#fff}.demo-map-popup-card{z-index:100;border-radius:var(--radius-md);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#1c1326f7;border:1px solid #a855f78c;width:290px;max-width:90%;padding:.85rem 1rem;animation:.25s cubic-bezier(.16,1,.3,1) forwards popupIn;position:absolute;transform:translate(-50%,-100%);box-shadow:0 18px 40px #000000bf,0 0 24px #a855f766}@keyframes popupIn{0%{opacity:0;transform:translate(-50%,-92%)scale(.92)}to{opacity:1;transform:translate(-50%,-100%)scale(1)}}.popup-top{justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.4rem;display:flex}.popup-name{font-family:"Plus Jakarta Sans", var(--font-sans);color:#f3edf9;font-size:.98rem;font-weight:700;line-height:1.25}.popup-area-pill{color:#c084fc;background:#a855f733;border-radius:10px;padding:.15rem .5rem;font-size:.68rem;font-weight:600}.popup-cat-pill{color:var(--text-light);background:#ffffff14;border-radius:10px;padding:.15rem .45rem;font-size:.68rem;font-weight:600}.popup-close-btn{color:var(--text-muted);cursor:pointer;width:22px;height:22px;transition:all var(--transition-fast);background:#ffffff14;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.popup-close-btn:hover{color:#fff;background:#fff3}.popup-desc{color:var(--text-muted);margin-bottom:.65rem;font-size:.8rem;line-height:1.4}.popup-footer{color:var(--text-muted);border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;margin-bottom:.65rem;padding-bottom:.5rem;font-size:.78rem;display:flex}.popup-budget-stat strong{color:var(--text-main);margin-left:.25rem}.popup-rating-stat{color:#fbbf24;align-items:center;gap:.25rem;font-weight:700;display:flex}.popup-view-btn{width:100%;padding:.45rem .75rem;font-size:.8rem}
