:root{--primary:#1a56db;--primary-light:#eff6ff;--primary-dark:#1e40af;--success:#059669;--success-light:#ecfdf5;--warning:#d97706;--warning-light:#fffbeb;--danger:#dc2626;--danger-light:#fef2f2;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--bg-primary:#fff;--bg-secondary:#f8fafc;--bg-tertiary:#f1f5f9;--border:#e2e8f0;--border-light:#f1f5f9;--space-0:0;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--text-xs:.6875rem;--text-sm:.75rem;--text-base:.875rem;--text-md:1rem;--text-lg:1.25rem;--text-xl:1.5rem;--text-2xl:2rem;--weight-normal:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-extrabold:800;--weight-black:900;--leading-tight:1.2;--leading-snug:1.35;--leading-normal:1.5;--leading-relaxed:1.65;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--shadow-sm:0 1px 3px #0000000a;--shadow-md:0 4px 16px #0000000f;--shadow-lg:0 8px 30px #0000001a;--transition-fast:.15s ease;--transition-base:.2s ease;--transition-slow:.3s ease;--font:"DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--container-max:1200px;--sidebar-width:240px}[data-theme=dark]{--primary:#60a5fa;--primary-light:#1e293b;--primary-dark:#93c5fd;--success:#34d399;--success-light:#064e3b;--warning:#fbbf24;--warning-light:#451a03;--danger:#f87171;--danger-light:#450a0a;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-muted:#64748b;--bg-primary:#0f172a;--bg-secondary:#1e293b;--bg-tertiary:#334155;--border:#334155;--border-light:#1e293b;--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 4px 16px #0006;--shadow-lg:0 8px 30px #00000080}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.6}html{scroll-behavior:smooth}a{color:inherit;text-decoration:none}.page-container{background:var(--bg-primary);max-width:100%;min-height:100vh;margin:0 auto;padding:0 1.2rem 5rem}@media (min-width:576px){.page-container{padding:0 1.5rem 3rem}}@media (min-width:768px){.page-container{max-width:720px;padding:0 2rem 3rem}}@media (min-width:992px){.page-container{max-width:860px}}@media (min-width:1200px){.page-container{max-width:960px}}.page-header{background:var(--bg-primary);z-index:50;align-items:center;gap:.75rem;padding:1.2rem 0;display:flex;position:sticky;top:0}.page-header h1{font-size:1.25rem;font-weight:800}@media (min-width:768px){.page-header{padding:1.5rem 0}.page-header h1{font-size:1.5rem}}.back-btn{border-radius:var(--radius-sm);cursor:pointer;color:var(--text-primary);background:0 0;border:none;align-items:center;padding:.5rem;display:flex}.section-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.8px;margin-bottom:.75rem;font-size:.8rem;font-weight:700}@media (min-width:992px){.bottom-nav{display:none!important}.page-container{padding-bottom:2rem}}.brand-logo{letter-spacing:-.03em;-webkit-user-select:none;user-select:none;align-items:center;gap:.2em;font-family:DM Sans,-apple-system,sans-serif;font-weight:800;line-height:1;text-decoration:none;display:inline-flex}.brand-logo-icon{color:#009b6e;flex-shrink:0;width:1.3em;height:1.3em}.brand-logo-wel{color:#1a1a4e}.brand-logo-homies{color:#009b6e}[data-theme=dark] .brand-logo-wel{color:#e2e8f0}[data-theme=dark] .brand-logo-homies,[data-theme=dark] .brand-logo-icon{color:#34d399}.navbar{background:var(--bg-primary);z-index:100;border-bottom:1px solid #f3f4f6;justify-content:space-between;align-items:center;gap:.8rem;padding:1rem 1.5rem;display:flex;position:sticky;top:0}.navbar-brand{text-decoration:none}.nav-location{cursor:pointer;background:#f9fafb;border:1px solid #e5e7eb;border-radius:20px;flex:1;align-items:center;gap:.3rem;max-width:160px;padding:.4rem .75rem;transition:border-color .2s;display:flex;position:relative}.nav-location:hover{border-color:#d1d5db}.nav-loc-icon{color:#2563eb;flex-shrink:0}.nav-loc-city{color:#111827;white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.8rem;font-weight:600;overflow:hidden}.nav-loc-chevron{color:#6b7280;flex-shrink:0}.nav-loc-dropdown{z-index:200;background:#fff;border:1px solid #e5e7eb;border-radius:12px;min-width:160px;position:absolute;top:calc(100% + 6px);left:0;overflow:hidden;box-shadow:0 8px 24px #0000001a}.nav-loc-option{text-align:left;color:#374151;cursor:pointer;background:0 0;border:none;width:100%;padding:.6rem 1rem;font-size:.82rem;font-weight:500;transition:background .15s;display:block}.nav-loc-option:hover{background:#f9fafb}.nav-loc-option.active{color:#2563eb;background:#eff6ff;font-weight:700}.nav-cta{background:var(--text-primary);color:#fff;white-space:nowrap;border-radius:50px;flex-shrink:0;padding:.5rem 1.1rem;font-size:.82rem;font-weight:600;transition:opacity .2s}.nav-cta:hover{opacity:.85;color:#fff}@media (min-width:768px){.navbar{padding:1rem 3rem}.brand-name{font-size:1.5rem}.nav-location{max-width:200px}}@media (min-width:1200px){.navbar{padding:1rem 5rem}}.bottom-nav{background:var(--bg-primary);border-top:1px solid var(--border-light);padding:.4rem 0 calc(.4rem + env(safe-area-inset-bottom));z-index:100;justify-content:space-around;align-items:center;min-height:56px;display:flex;position:fixed;bottom:0;left:0;right:0}.nav-tab{color:var(--text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.18rem;min-height:44px;padding-bottom:.25rem;font-size:.6rem;font-weight:500;text-decoration:none;transition:color .2s;display:flex}.nav-tab.active{color:var(--primary)}@media (min-width:768px){.bottom-nav{padding:.6rem 0 calc(.6rem + env(safe-area-inset-bottom))}.nav-tab{font-size:.68rem}}@media (min-width:992px){.bottom-nav{display:none}}.sidebar{display:none}@media (min-width:992px){.sidebar{width:var(--sidebar-width);background:var(--bg-primary);border-right:1px solid var(--border-light);z-index:100;flex-direction:column;height:100vh;padding:1.5rem 1rem;display:flex;position:fixed;top:0;left:0}.sidebar-brand{flex-direction:column;margin-bottom:2rem;padding:0 .5rem;display:flex}.sidebar-tagline{color:var(--text-muted);font-size:.65rem}.sidebar-version-badge{color:#fff;letter-spacing:.3px;border-radius:20px;width:-moz-fit-content;width:fit-content;margin-top:.4rem;padding:.15rem .5rem;font-size:.6rem;font-weight:700;display:inline-block}.sidebar-nav{flex-direction:column;gap:.25rem;display:flex}.sidebar-link{border-radius:var(--radius-md);color:var(--text-secondary);align-items:center;gap:.75rem;padding:.7rem .75rem;font-size:.88rem;font-weight:500;transition:all .2s;display:flex}.sidebar-link:hover{background:var(--bg-secondary);color:var(--text-primary)}.sidebar-link.active{background:var(--primary-light);color:var(--primary);font-weight:600}}.sidebar-link--locked{opacity:.45;cursor:not-allowed;pointer-events:auto}.sidebar-link--locked:hover{background:0 0}.sidebar-lock-icon{color:var(--text-muted,#9ca3af);flex-shrink:0;margin-left:auto}.toast-container{z-index:9999;animation:.3s slideDown;position:fixed;top:1rem;left:50%;transform:translate(-50%)}.toast-bar{color:#1a1a2e;background:#fff;border-left:4px solid;border-radius:10px;align-items:center;gap:.6rem;padding:.8rem 1.2rem;font-size:.85rem;font-weight:500;display:flex;box-shadow:0 4px 20px #0000001a}@keyframes slideDown{0%{opacity:0;transform:translate(-50%)translateY(-10px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.sw-fab{display:none}@media (min-width:992px){.sw-fab{background:var(--primary);color:#fff;cursor:pointer;z-index:200;border:none;border-radius:50%;justify-content:center;align-items:center;width:50px;height:50px;transition:transform .2s,box-shadow .2s;display:flex;position:fixed;bottom:2rem;right:2rem;box-shadow:0 3px 12px #1a56db59}.sw-fab:hover{transform:scale(1.08);box-shadow:0 5px 16px #1a56db73}}.sw-overlay{z-index:300;background:#0006;align-items:flex-end;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}@media (min-width:576px){.sw-overlay{justify-content:center;align-items:center}}.sw-sheet{background:var(--bg-primary);border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;max-width:440px;padding:.75rem 1.5rem 2rem;animation:.25s slideUp}@media (min-width:576px){.sw-sheet{border-radius:var(--radius-xl);margin:1rem}}@keyframes slideUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.sw-sheet-handle{background:var(--border);border-radius:2px;width:40px;height:4px;margin:0 auto 1rem}@media (min-width:576px){.sw-sheet-handle{display:none}}.sw-header{justify-content:space-between;align-items:center;margin-bottom:1.25rem;display:flex}.sw-title{color:var(--text-primary);font-size:1rem;font-weight:700}.sw-close{cursor:pointer;color:var(--text-muted);background:0 0;border:none;padding:.25rem;display:flex}.sw-menu{flex-direction:column;gap:.75rem;display:flex}.sw-option{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-secondary);cursor:pointer;text-align:left;align-items:center;gap:1rem;padding:1rem;transition:border-color .2s,background .2s;display:flex}.sw-option:hover{border-color:var(--primary);background:var(--primary-light)}.sw-option-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.sw-option-icon--green{color:#16a34a;background:#dcfce7}.sw-option-icon--blue{background:var(--primary-light);color:var(--primary)}.sw-option-body{flex:1}.sw-option-label{color:var(--text-primary);font-size:.9rem;font-weight:600;display:block}.sw-option-sub{color:var(--text-muted);margin-top:.1rem;font-size:.75rem;display:block}.sw-option-arrow{color:var(--text-muted);flex-shrink:0}.sw-call{flex-direction:column;align-items:center;gap:.5rem;padding:.5rem 0;display:flex}.sw-call-icon{color:#16a34a;background:#dcfce7;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin-bottom:.5rem;display:flex}.sw-call-label{color:var(--text-muted);font-size:.8rem}.sw-call-number{color:var(--text-primary);letter-spacing:.5px;font-size:1.4rem;font-weight:800}.sw-call-hours{color:var(--text-muted);font-size:.75rem}.sw-call-btn{color:#fff;background:#16a34a;border-radius:50px;align-items:center;gap:.5rem;margin-top:.75rem;padding:.75rem 2rem;font-size:.9rem;font-weight:700;transition:opacity .2s;display:flex}.sw-call-btn:hover{opacity:.88;color:#fff}.sw-form{flex-direction:column;gap:1rem;display:flex}.sw-field{flex-direction:column;gap:.4rem;display:flex}.sw-field label{color:var(--text-secondary);font-size:.78rem;font-weight:600}.sw-topics{flex-wrap:wrap;gap:.5rem;display:flex}.sw-topic-chip{border:1.5px solid var(--border);color:var(--text-secondary);background:var(--bg-secondary);cursor:pointer;border-radius:50px;padding:.35rem .85rem;font-size:.8rem;font-weight:500;transition:all .15s}.sw-topic-chip--active{border-color:var(--primary);background:var(--primary-light);color:var(--primary);font-weight:700}.sw-field textarea{border:1.5px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);background:var(--bg-primary);resize:none;outline:none;padding:.75rem;font-family:inherit;font-size:.88rem;transition:border-color .2s}.sw-field textarea:focus{border-color:var(--primary)}.sw-submit{background:var(--primary);color:#fff;border-radius:var(--radius-md);cursor:pointer;border:none;padding:.85rem;font-family:inherit;font-size:.9rem;font-weight:700;transition:opacity .2s}.sw-submit:disabled{opacity:.5;cursor:not-allowed}.sw-submit:hover:not(:disabled){opacity:.88}.sw-back{color:var(--text-muted);cursor:pointer;text-align:center;background:0 0;border:none;padding:.25rem;font-family:inherit;font-size:.8rem}.sw-back:hover{color:var(--text-secondary)}.error-boundary{min-height:50vh;padding:var(--space-6);justify-content:center;align-items:center;display:flex}.error-boundary-card{text-align:center;width:100%;max-width:380px;padding:var(--space-8) var(--space-6)}.error-boundary-icon{background:var(--warning-light);width:56px;height:56px;color:var(--warning);margin:0 auto var(--space-4);border-radius:50%;justify-content:center;align-items:center;display:flex}.error-boundary-title{font-size:var(--text-lg);font-weight:var(--weight-extrabold);color:var(--text-primary);margin-bottom:var(--space-2)}.error-boundary-desc{font-size:var(--text-base);color:var(--text-secondary);line-height:var(--leading-relaxed);margin-bottom:var(--space-6)}.error-boundary-actions{gap:var(--space-3);flex-direction:column;align-items:center;display:flex}.error-boundary-btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);font-size:var(--text-base);font-weight:var(--weight-semibold);cursor:pointer;background:var(--text-primary);color:var(--bg-primary);transition:opacity var(--transition-fast);border:none;min-width:160px;font-family:inherit;display:flex}.error-boundary-btn:hover{opacity:.85}.error-boundary-btn--secondary{color:var(--text-secondary);border:1.5px solid var(--border);background:0 0}.error-boundary-details{margin-top:var(--space-6);text-align:left;font-size:var(--text-sm);color:var(--text-muted)}.error-boundary-details summary{cursor:pointer;margin-bottom:var(--space-2)}.error-boundary-details pre{background:var(--bg-secondary);padding:var(--space-3);border-radius:var(--radius-sm);white-space:pre-wrap;word-break:break-all;font-size:.7rem;overflow-x:auto}.skip-nav{top:-100%;left:var(--space-4);z-index:99999;padding:var(--space-3) var(--space-5);background:var(--text-primary);color:var(--bg-primary);border-radius:var(--radius-sm);font-size:var(--text-base);font-weight:var(--weight-semibold);transition:top var(--transition-fast);text-decoration:none;position:fixed}.skip-nav:focus{top:var(--space-4);outline:3px solid var(--primary);outline-offset:2px}@media (min-width:992px){.app-main{margin-left:var(--sidebar-width);overflow-x:hidden}}body{overflow-x:hidden}#main-content{width:100%;min-height:100vh}.app-main{width:100%}.page-loader{z-index:9999;height:3px;position:fixed;top:0;left:0;right:0}.page-loader-bar{background:var(--primary,#2563eb);border-radius:0 2px 2px 0;width:0;height:100%;animation:1.2s ease-in-out infinite page-load}@keyframes page-load{0%{width:0}50%{width:70%}to{width:95%}}#main-content:focus{outline:none}
