:root{--brand-green:#2d5016;--brand-green-light:#3a6b1e;--brand-black:#1a1a1a;--brand-cream:#f5f5f0;--brand-orange:#d4722a;--font-heading:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-body:-apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--src-recgov-badge-bg:#e8f0e0;--src-recgov-badge-text:var(--accent);--src-recgov-border:#5a8a32;--src-recgov-toggle:#5a8a32;--src-wa-badge-bg:#deeef5;--src-wa-badge-text:#1a5276;--src-wa-border:#3498b0;--src-wa-toggle:#2a7a9a;--src-or-badge-bg:#fef3e0;--src-or-badge-text:#7d5a1a;--src-or-border:#d4920a;--src-or-toggle:#b8860b;--src-id-badge-bg:#eee5f5;--src-id-badge-text:#5b2d7a;--src-id-border:#7d3cb5;--transition-fast:.12s;--transition-base:.15s;--text-xs:.7rem;--text-sm:.75rem;--text-body:.8rem;--text-base:.85rem;--text-md:.9rem;--text-lg:1.1rem;--text-xl:1.5rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--radius-xs:3px;--radius-sm:6px;--radius-md:8px;--radius-lg:10px;--radius-xl:12px;--radius-pill:999px;--weight-normal:400;--weight-medium:500;--weight-semi:600;--weight-bold:700;--shadow-sm:0 1px 3px #0000001f;--shadow-card:0 4px 12px #0000001a;--shadow-overlay:-4px 0 20px #00000026;--leading-tight:1.3;--leading-normal:1.5;--z-sticky:5;--z-overlay:100;--z-modal:101;--max-w-app:960px;--max-w-modal:400px;--text-on-accent:#fff;--map-pin-recgov:var(--src-recgov-border);--map-pin-wa:var(--src-wa-border);--map-pin-or:var(--src-or-border);--map-pin-id:var(--src-id-border);--map-pin-opacity:.85;--map-popup-max-w:280px}[data-theme=dark]{--src-recgov-badge-bg:#1e2e14;--src-recgov-badge-text:#90c060;--src-recgov-border:#5a8a38;--src-recgov-toggle:#3a6a22;--src-wa-badge-bg:#162030;--src-wa-badge-text:#60a0c8;--src-wa-border:#3a88a8;--src-wa-toggle:#1a5a7a;--src-or-badge-bg:#2a2010;--src-or-badge-text:#c89050;--src-or-border:#c08820;--src-or-toggle:#8a6a08;--src-id-badge-bg:#221830;--src-id-badge-text:#a070d0;--src-id-border:#7a40a8;--text-on-accent:#fff;--shadow-sm:0 1px 3px #00000059}:root{--bg:#f5f5f0;--bg-card:#fff;--bg-hover:#fafaf5;--bg-input:#fff;--bg-toggle:#e8e8e0;--text:#1a1a1a;--text-muted:#666;--text-light:#777;--border:#ddd;--border-light:#eee;--border-input:#ccc;--accent:#2d5016;--accent-hover:#3a6b1e;--chip-bg:#f0f7e8;--chip-border:#c5dbb0;--chip-hover:#e0efd0;--warning-bg:#fef8e8;--warning-border:#e8d48a;--warning-text:#8a6d3b;--error-bg:#fee;--error-border:#e99;--error-text:#933;--heatmap-0:#f0f0e8;--heatmap-1:#d4e8c0;--heatmap-2:#a0d070;--heatmap-3:#6aaa40;--heatmap-4:#3a7a20}[data-theme=dark]{--bg:#171714;--bg-card:#21211e;--bg-hover:#2a2a26;--bg-input:#161614;--bg-toggle:#161614;--text:#deded8;--text-muted:#9a9a90;--text-light:#8a8a80;--border:#38382e;--border-light:#2e2e26;--border-input:#3e3e34;--accent:#3a6a28;--accent-hover:#4a7a38;--accent-text:#7aad5a;--chip-bg:#1c2618;--chip-border:#3d5530;--chip-hover:#243020;--warning-bg:#2a2418;--warning-border:#6a5e30;--warning-text:#c8a84a;--error-bg:#281818;--error-border:#4a2828;--error-text:#d07070;--heatmap-0:#1a1a16;--heatmap-1:#1e3a14;--heatmap-2:#2d6a1e;--heatmap-3:#4a9a30;--heatmap-4:#6abf48}.skip-link{top:-100%;left:var(--space-4);z-index:var(--z-modal);padding:var(--space-2) var(--space-4);background:var(--accent);color:var(--text-on-accent);border-radius:var(--radius-sm);font-size:var(--text-base);font-weight:var(--weight-semi);transition:top var(--transition-fast);text-decoration:none;position:absolute}.skip-link:focus{top:var(--space-2)}.error-boundary{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-7);text-align:center;color:var(--text-muted);flex-direction:column;display:flex}.error-boundary h2{color:var(--text);font-size:var(--text-lg)}.error-boundary button{padding:var(--space-2) var(--space-4);background:var(--accent);color:var(--text-on-accent);border-radius:var(--radius-sm);font-size:var(--text-base);cursor:pointer;transition:background var(--transition-fast);border:none}.error-boundary button:hover{background:var(--accent-hover)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background:var(--bg);color:var(--text);line-height:var(--leading-normal)}h1,h2,h3,.result-header h3,.search-summary-text{font-family:var(--font-heading)}.app{max-width:var(--max-w-app);padding:var(--space-5) var(--space-4);margin:0 auto}header{margin-bottom:var(--space-4)}.header-row{justify-content:space-between;align-items:flex-start;display:flex}.header-actions,.header-secondary{gap:var(--space-2);align-items:center;display:flex}.mobile-menu-wrapper{display:none;position:relative}.mobile-menu-btn{font-size:var(--text-lg);padding:var(--space-1) var(--space-2)}.mobile-menu{right:0;top:calc(100% + var(--space-1));background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-2);z-index:var(--z-overlay);gap:var(--space-1);flex-direction:column;min-width:140px;display:flex;position:absolute}.mobile-menu .header-btn{text-align:left;width:100%;font-size:var(--text-body);padding:var(--space-2) var(--space-3)}.mobile-menu .theme-toggle{font-size:var(--text-body)}.header-btn{padding:.35rem var(--space-3);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--text-body);font-weight:var(--weight-medium);color:var(--text-muted);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast)}.header-btn:hover{background:var(--bg-hover)}.theme-toggle{padding:var(--space-1) var(--space-2);font-size:1rem}header h1{font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--accent)}.wordmark-link{color:inherit;text-decoration:none}.wordmark-link:hover{opacity:.85}header .wordmark{margin-bottom:.1rem;display:block}header p{color:var(--text-muted);font-size:var(--text-base)}.mode-toggle{background:var(--bg-toggle);border-radius:var(--radius-md);margin-bottom:var(--space-4);grid-template-columns:1fr 1fr;padding:3px;display:grid}.mode-toggle button{border-radius:var(--radius-sm);padding:var(--space-2);font-size:var(--text-base);font-weight:var(--weight-semi);color:var(--text-muted);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none}.mode-toggle button.active{background:var(--bg-card);color:var(--accent);box-shadow:var(--shadow-sm)}.search-form{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-4)}.form-row{gap:var(--space-3);margin-bottom:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.form-row label,.form-row-full{font-size:var(--text-sm);font-weight:var(--weight-semi);color:var(--text-muted);flex-direction:column;display:flex}.form-row-full{margin-bottom:var(--space-2)}.form-row input,.form-row select,.form-row-full input{padding:var(--space-2);border:1px solid var(--border-input);border-radius:var(--radius-sm);font-size:var(--text-md);width:100%;margin-top:.2rem}.trip-type{margin-bottom:var(--space-3);gap:.35rem;display:flex}.trip-type-btn{padding:.45rem var(--space-1);border:1px solid var(--border-input);border-radius:var(--radius-sm);background:var(--bg-input);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-muted);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);flex:1}.trip-type-btn.active{background:var(--accent);color:var(--text-on-accent);border-color:var(--accent)}.trip-type-btn:hover:not(.active){background:var(--bg-hover)}.trip-type-hint{font-size:.55rem;font-weight:var(--weight-normal);color:var(--text-light);margin-top:.1rem;display:block}.trip-type-btn.active .trip-type-hint{color:#ffffffc7}.date-presets-wrap{margin-bottom:var(--space-3)}.date-presets{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.date-preset-btn{border:1px solid var(--border-input);border-radius:var(--radius-pill);background:var(--bg-input);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-muted);cursor:pointer;white-space:nowrap;transition:background var(--transition-base), color var(--transition-base), border-color var(--transition-base);padding:.3rem .7rem}.date-preset-btn.active{background:var(--accent);color:var(--text-on-accent);border-color:var(--accent)}.date-preset-btn:hover:not(.active){background:var(--bg-hover)}.date-presets-sep{background:var(--border-input);flex-shrink:0;width:1px;height:1.2rem;margin:0 .15rem}.form-row-3{grid-template-columns:1fr 1fr auto}.filter-pills{margin-left:var(--space-2)}.filter-pill{font-size:var(--text-xs);background:var(--bg-hover);border:1px solid var(--border);border-radius:var(--radius-xs);margin-left:var(--space-1);color:var(--text-muted);padding:.1rem .3rem}.tag-picker{margin-bottom:var(--space-3);flex-wrap:wrap;align-items:center;gap:.3rem;display:flex}.tag-picker-label{font-size:var(--text-sm);font-weight:var(--weight-semi);color:var(--text-muted);margin-right:var(--space-1)}.tag-btn{padding:var(--space-1) .55rem;border:1px solid var(--border-input);border-radius:var(--radius-xl);background:var(--bg-card);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-muted);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast)}.tag-btn.active{background:var(--accent);color:var(--text-on-accent);border-color:var(--accent)}.tag-btn:hover:not(.active){background:var(--bg)}.advanced-toggle{appearance:none;color:var(--accent);font-size:var(--text-body);font-weight:var(--weight-medium);padding:var(--space-1) 0;cursor:pointer;margin-bottom:var(--space-2);background:0 0;border:none}.search-btn{background:var(--accent);width:100%;color:var(--text-on-accent);border-radius:var(--radius-sm);font-size:.95rem;font-weight:var(--weight-semi);cursor:pointer;transition:background var(--transition-base);border:none;min-height:48px;padding:.65rem;display:block}.search-btn:hover{background:var(--accent-hover)}.search-btn:disabled{background:var(--text-muted);cursor:not-allowed}.day-picker{margin-bottom:var(--space-3);flex-wrap:wrap;gap:.3rem;display:flex}.day-btn{border:1px solid var(--border-input);border-radius:var(--radius-sm);background:var(--bg-card);min-width:40px;min-height:40px;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-muted);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);flex:1;padding:.3rem}.day-btn.active{background:var(--accent);color:var(--text-on-accent);border-color:var(--accent)}.results{margin-top:var(--space-2)}.results-header{margin-bottom:var(--space-3);justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.results-summary{font-size:var(--text-body);color:var(--text-muted)}.search-summary-banner{align-items:flex-start;gap:var(--space-2);background:var(--bg-card);border:1px solid var(--accent);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-3);font-size:var(--text-sm);color:var(--text);font-style:italic;display:flex}.search-summary-banner p{flex:1;margin:0}.summary-dismiss{color:var(--text-muted);font-size:var(--text-lg);cursor:pointer;background:0 0;border:none;padding:0;line-height:1}.view-toggle{border:1px solid var(--border-input);border-radius:var(--radius-sm);flex-shrink:0;display:flex;overflow:hidden}.view-toggle button{background:var(--bg-card);border:none;border-right:1px solid var(--border-input);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-muted);cursor:pointer;min-height:32px;transition:background var(--transition-fast), color var(--transition-fast);padding:.3rem .65rem}.view-toggle button:last-child{border-right:none}.view-toggle button.active{background:var(--accent);color:var(--text-on-accent)}.result-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:var(--space-2);scroll-margin-top:12px;overflow:hidden}.result-card.error{border-color:var(--error-border)}.card-body{opacity:0;transition:grid-template-rows var(--transition-base) ease-out, opacity var(--transition-base) ease-out;grid-template-rows:0fr;display:grid}.card-body-open{opacity:1;grid-template-rows:1fr}.card-body-inner{overflow:hidden}.result-header{padding:var(--space-3) var(--space-4);cursor:pointer;-webkit-user-select:none;user-select:none;width:100%;min-height:56px;font:inherit;color:inherit;text-align:left;transition:background var(--transition-fast);background:0 0;border:none;justify-content:space-between;align-items:center;display:flex}.result-header:hover{background:var(--bg-hover)}.result-header h3{font-size:.95rem;font-weight:var(--weight-semi)}.source-badge{font-size:var(--text-xs);font-weight:var(--weight-semi);border-radius:var(--radius-xs);vertical-align:middle;margin-left:.4rem;padding:.1rem .4rem}.source-recgov{background:var(--src-recgov-badge-bg);color:var(--src-recgov-badge-text)}.source-wa_state{background:var(--src-wa-badge-bg);color:var(--src-wa-badge-text)}.source-or_state{background:var(--src-or-badge-bg);color:var(--src-or-badge-text)}.source-id_state{background:var(--src-id-badge-bg);color:var(--src-id-badge-text)}.result-card.card-recgov{border-left:3px solid var(--src-recgov-border)}.result-card.card-wa_state{border-left:3px solid var(--src-wa-border)}.result-card.card-or_state{border-left:3px solid var(--src-or-border)}.result-card.card-id_state{border-left:3px solid var(--src-id-border)}.tag-badge{font-size:.6rem;font-weight:var(--weight-normal);background:var(--bg);color:var(--text-light);border-radius:var(--radius-xs);vertical-align:middle;margin-left:.2rem;padding:.08rem .35rem}.drive-badge{font-size:var(--text-xs);font-weight:var(--weight-medium);background:var(--warning-bg);color:var(--warning-text);border-radius:var(--radius-xs);vertical-align:middle;margin-left:.3rem;padding:.1rem .4rem}.result-summary{font-size:var(--text-body);color:var(--text-muted);margin-top:.15rem}.expand-icon{color:var(--text-muted);margin-left:var(--space-2);flex-shrink:0;font-size:1.2rem;font-weight:300}.result-pitch{color:var(--text-muted);font-size:var(--text-xs);margin:var(--space-1) 0 0}.result-vibe{color:var(--text-muted);font-style:italic;font-size:var(--text-base);padding:var(--space-2) var(--space-4) 0;margin:0}.result-best-for{color:var(--text-muted);font-size:var(--text-sm);font-weight:var(--weight-medium);padding:var(--space-1) var(--space-4) 0;margin:0}.card-toolbar{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);border-top:1px solid var(--border-light);border-bottom:1px solid var(--border-light);background:var(--bg-hover);z-index:var(--z-sticky);display:flex;position:sticky;top:0}.book-link,.map-link{font-size:var(--text-body);color:var(--accent);font-weight:var(--weight-medium);text-decoration:none}.book-link:hover,.map-link:hover{text-decoration:underline}.error-text{color:var(--error-text);font-size:var(--text-base);padding:0 var(--space-4) var(--space-3)}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.results-skeleton{margin-top:var(--space-4)}.skeleton-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-2)}.skeleton-line{border-radius:var(--radius-xs);background:linear-gradient(90deg, var(--border) 25%, var(--bg-hover,var(--border)) 50%, var(--border) 75%);background-size:200% 100%;animation:1.5s infinite shimmer}.skeleton-title{width:60%;height:1.1rem;margin-bottom:var(--space-2)}.skeleton-summary{width:35%;height:.8rem}.first-visit{text-align:center;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-7) var(--space-6);margin-top:var(--space-4)}.first-visit-title{font-size:var(--text-lg);font-weight:var(--weight-semi);color:var(--text);margin:0 0 var(--space-2)}.first-visit-subtitle{font-size:var(--text-base);color:var(--text-light);margin:0 0 var(--space-5)}.first-visit-suggestions{justify-content:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.suggestion-chip{background:var(--chip-bg);color:var(--chip-text,var(--text));border:1px solid var(--chip-border);border-radius:var(--radius-pill);padding:var(--space-2) var(--space-4);font-size:var(--text-sm);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast)}.suggestion-chip:hover{background:var(--chip-hover)}.suggestion-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.search-summary-bar{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-2) var(--space-4);margin-bottom:var(--space-3);justify-content:space-between;align-items:center;display:flex}.nl-search-section{margin-bottom:var(--space-2)}.nl-search-row{gap:var(--space-2);display:flex}.nl-search-input{padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--text-sm);background:var(--bg);color:var(--text);transition:border-color var(--transition-fast);flex:1}.nl-search-input:focus{border-color:var(--accent);outline:none}.nl-search-input::placeholder{color:var(--text-muted);font-size:var(--text-xs)}.nl-search-btn{padding:var(--space-2) var(--space-4);background:var(--accent);color:var(--text-on-accent);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;transition:opacity var(--transition-fast);border:none;flex-shrink:0}.nl-search-btn:hover{opacity:.9}.nl-divider{align-items:center;gap:var(--space-3);margin:var(--space-3) 0 var(--space-1);color:var(--text-muted);font-size:var(--text-xs);display:flex}.nl-divider:before,.nl-divider:after{content:"";background:var(--border);flex:1;height:1px}.search-summary-text{font-size:var(--text-base);color:var(--text);margin:0}.search-summary-edit{padding:.3rem var(--space-3);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--accent);cursor:pointer;margin-left:var(--space-3);transition:background var(--transition-fast), border-color var(--transition-fast);flex-shrink:0}.search-summary-edit:hover{background:var(--bg-hover);border-color:var(--accent)}.search-summary-edit:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.recommendation-row{margin-bottom:var(--space-4)}.recommendation-title{font-size:var(--text-sm);font-weight:var(--weight-semi);color:var(--text-muted);margin:0 0 var(--space-2);text-transform:uppercase;letter-spacing:.05em}.recommendation-cards{gap:var(--space-2);padding-bottom:var(--space-1);-webkit-overflow-scrolling:touch;display:flex;overflow-x:auto}.recommendation-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);min-width:200px;max-width:240px;padding:var(--space-3);cursor:pointer;text-align:left;font:inherit;color:var(--text);transition:border-color var(--transition-fast), background var(--transition-fast);flex-direction:column;flex-shrink:0;gap:.3rem;display:flex}.recommendation-card:hover{border-color:var(--accent);background:var(--bg-hover)}.recommendation-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.recommendation-name{font-weight:var(--weight-semi);font-size:var(--text-base)}.recommendation-tags{font-size:var(--text-xs);color:var(--text-muted)}.recommendation-vibe{font-size:var(--text-xs);color:var(--text-light);font-style:italic;line-height:1.4}.recommendation-reason{font-size:var(--text-xs);color:var(--accent);font-weight:var(--weight-medium)}.warning-banner{background:var(--warning-bg);border:1px solid var(--warning-border);color:var(--warning-text);padding:.6rem var(--space-4);border-radius:var(--radius-md);font-size:var(--text-base);margin-bottom:var(--space-3)}.warning-banner p{margin:.15rem 0}.error-banner{background:var(--error-bg);border:1px solid var(--error-border);color:var(--error-text);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-md);margin-bottom:var(--space-4)}.no-results{text-align:center;color:var(--text-muted);padding:var(--space-6);font-size:var(--text-md)}.smart-zero{padding:1.25rem var(--space-5);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:var(--space-2)}.smart-zero-section{margin-bottom:var(--space-4)}.smart-zero-section:last-child{margin-bottom:0}.smart-zero-explanation{color:var(--text-muted);font-size:.95rem;line-height:var(--leading-normal)}.no-results-hint{font-size:var(--text-body);color:var(--text-light);margin-top:.35rem}.smart-zero-suggestions{font-size:var(--text-xs);font-weight:var(--weight-semi);text-transform:uppercase;letter-spacing:.05em;color:var(--text-light);margin-bottom:var(--space-2)}.smart-zero-chips{flex-wrap:wrap;gap:.4rem;display:flex}.date-suggestion-chip{background:var(--chip-bg);border:1px solid var(--chip-border);font-size:var(--text-body);color:var(--text);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast);border-radius:20px;align-items:center;gap:.4rem;padding:.3rem .65rem;display:inline-flex}.date-suggestion-chip:hover{background:var(--chip-hover);border-color:var(--accent)}.date-suggestion-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.date-suggestion-range{font-weight:var(--weight-medium)}.date-suggestion-count{background:var(--accent);color:var(--text-on-accent);font-size:var(--text-xs);font-weight:var(--weight-semi);border-radius:var(--radius-md);text-align:center;min-width:1.2rem;padding:.05rem .35rem}.action-chip{padding:.3rem var(--space-3);background:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-sm);font-size:var(--text-body);font-weight:var(--weight-medium);color:var(--text-on-accent);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast);align-items:center;display:inline-flex}.action-chip:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.action-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.action-chip.watch{color:var(--accent);border-color:var(--accent);background:0 0}.action-chip.watch:hover{background:var(--chip-bg)}.site-list{padding:0 var(--space-4) var(--space-3)}.date-block{border-bottom:1px solid var(--border-light);padding:.65rem 0}.date-block:last-child{border-bottom:none}.date-block-header{justify-content:space-between;align-items:baseline;margin-bottom:.35rem;display:flex}.date-block-range{font-size:var(--text-base);font-weight:var(--weight-semi);color:var(--text)}.date-block-meta{font-size:var(--text-xs);color:var(--text-light);margin-left:var(--space-2);flex-shrink:0}.date-block-sites{flex-wrap:wrap;gap:.35rem;display:flex}.site-chip{font-size:var(--text-body);background:var(--chip-bg);border:1px solid var(--chip-border);border-radius:var(--radius-sm);min-height:36px;color:var(--accent);font-weight:var(--weight-medium);align-items:center;gap:.35rem;padding:.35rem .6rem;text-decoration:none;display:inline-flex}.site-chip:hover{background:var(--chip-hover);border-color:var(--accent-hover)}.site-chip.wa-book-link{font-weight:var(--weight-semi)}.site-chip-meta{font-size:.6rem;font-weight:var(--weight-normal);color:var(--text-light)}.show-more-btn{border:1px dashed var(--border-input);border-radius:var(--radius-sm);width:100%;color:var(--accent);font-size:var(--text-body);font-weight:var(--weight-medium);cursor:pointer;margin-top:var(--space-2);transition:background var(--transition-fast), border-color var(--transition-fast);background:0 0;padding:.6rem;display:block}.show-more-btn:hover{background:var(--bg);border-color:var(--border)}.site-group{border-bottom:1px solid var(--border-light);padding:.65rem 0}.site-group:last-child{border-bottom:none}.site-group h4{font-size:var(--text-base);font-weight:var(--weight-semi);margin-bottom:.35rem}.site-meta{font-weight:var(--weight-normal);color:var(--text-light);font-size:var(--text-xs);margin-left:.4rem}.wa-data-note{font-size:var(--text-sm);color:var(--warning-text);background:var(--warning-bg);border:1px solid var(--warning-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);margin:0 var(--space-4) var(--space-2);line-height:1.4}.fcfs-label{font-size:var(--text-body);color:var(--warning-text);font-style:italic}.fcfs-section{border-top:1px solid var(--border-light);padding:.65rem 0}.windows-grid{flex-wrap:wrap;gap:.35rem;display:flex}.window-chip{font-size:var(--text-sm);background:var(--chip-bg);border:1px solid var(--chip-border);border-radius:var(--radius-sm);min-height:36px;color:var(--accent);white-space:nowrap;align-items:center;padding:.35rem .6rem;text-decoration:none;display:inline-flex}.window-chip:hover{background:var(--chip-hover);border-color:var(--accent-hover)}.heatmap{margin-bottom:var(--space-4);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-3)}.heatmap-header-row{margin-bottom:var(--space-2);justify-content:space-between;align-items:center;display:flex}.heatmap-title{font-size:var(--text-sm);font-weight:var(--weight-semi);color:var(--text-muted)}.heatmap-legend{color:var(--text-muted);align-items:center;gap:3px;font-size:.6rem;display:flex}.heatmap-legend-label{margin:0 var(--space-1)}.heatmap-swatch{border-radius:2px;width:12px;height:12px}.density-0{background:var(--heatmap-0)}.density-1{background:var(--heatmap-1)}.density-2{background:var(--heatmap-2)}.density-3{background:var(--heatmap-3)}.density-4{background:var(--heatmap-4)}.heatmap-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.heatmap-grid{grid-template-columns:18px repeat(var(--week-count), minmax(18px, 1fr));grid-template-rows:14px repeat(7,18px);gap:3px;width:100%;display:grid}.heatmap-month-label{font-size:.55rem;font-weight:var(--weight-semi);color:var(--text-muted);align-items:flex-end;display:flex}.heatmap-dow{color:var(--text-light);justify-content:center;align-items:center;font-size:.5rem;display:flex}.heatmap-dow.weekend{color:var(--text-muted)}.heatmap-cell{border-radius:var(--radius-xs);cursor:default;position:relative}.heatmap-cell.empty{background:0 0}.heatmap-cell:not(.empty):hover{outline:1px solid var(--accent)}.heatmap-cell.weekend-cell{border-radius:var(--radius-xs)}.source-toggle{margin-bottom:var(--space-3);gap:.35rem;display:flex}.source-toggle-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);font-size:var(--text-base);font-weight:var(--weight-semi);cursor:pointer;transition:opacity var(--transition-base);color:var(--text-on-accent);border:none;flex:1}.source-toggle-btn:not(.active){opacity:.3}.source-toggle-btn.source-recgov{background:var(--src-recgov-toggle)}.source-toggle-btn.source-wa_state{background:var(--src-wa-toggle)}.source-toggle-btn.source-or_state{background:var(--src-or-toggle)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;transition:outline-color var(--transition-fast)}[data-theme=dark] :focus-visible{outline-color:var(--accent-text)}@media (width<=640px){.app{padding:var(--space-4) var(--space-3)}header h1{font-size:1.25rem}.header-subtitle{display:none}header .wordmark{font-size:20px}.site-chip,.window-chip{min-height:44px}.date-block-sites{grid-template-columns:repeat(3,1fr);gap:.3rem;display:grid}.site-chip{text-align:center;font-size:var(--text-sm);flex-direction:column;justify-content:center;gap:.1rem;padding:.3rem .4rem}.site-chip.wa-book-link{flex-direction:row;grid-column:1/-1;gap:.4rem}.results-header{flex-direction:column;align-items:flex-start}.header-secondary{display:none}.mobile-menu-wrapper{display:block}.heatmap-grid{grid-template-rows:14px repeat(7,22px);gap:2px}.date-block-header{flex-wrap:wrap}.date-block-meta{width:100%;margin-left:0}}.watch-overlay{z-index:var(--z-overlay);background:#0006;position:fixed;inset:0}.watch-panel{width:min(var(--max-w-modal), 90vw);background:var(--bg);border-left:1px solid var(--border);z-index:var(--z-modal);box-shadow:var(--shadow-overlay);position:fixed;top:0;bottom:0;right:0;overflow-y:auto}.watch-panel-header{padding:var(--space-4) 1.25rem;border-bottom:1px solid var(--border);background:var(--bg);z-index:var(--z-sticky);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.watch-panel-header h2{font-size:var(--text-lg);font-weight:var(--weight-bold)}.watch-close{font-size:var(--text-xl);color:var(--text-light);cursor:pointer;padding:var(--space-1);background:0 0;border:none}.watch-loading{padding:var(--space-4) 1.25rem;justify-content:center;display:flex}.watch-error{padding:var(--space-4) 1.25rem;font-size:var(--text-base);color:var(--error-text)}.watch-empty{padding:var(--space-6) 1.25rem;text-align:center}.watch-empty p{font-size:var(--text-md);color:var(--text-muted)}.watch-hint{font-size:var(--text-body);margin-top:var(--space-2)}.watch-list{padding:var(--space-2) 0}.watch-item{padding:var(--space-3) 1.25rem;border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;display:flex}.watch-item.paused{opacity:.5}.watch-item-info h3{font-size:var(--text-md);font-weight:var(--weight-semi)}.watch-dates{font-size:var(--text-sm);color:var(--text-muted);margin-top:.15rem}.watch-days{font-size:var(--text-xs);color:var(--text-light)}.watch-paused-badge{font-size:var(--text-xs);background:var(--warning-bg);color:var(--warning-text);border-radius:var(--radius-xs);margin-left:.3rem;padding:.1rem .3rem}.watch-item-actions{flex-shrink:0;gap:.35rem;display:flex}.watch-action-btn{border:1px solid var(--border-input);border-radius:var(--radius-xs);padding:.3rem var(--space-2);font-size:var(--text-body);cursor:pointer;color:var(--text-muted);transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);background:0 0}.watch-action-btn:hover{background:var(--bg-hover)}.watch-delete:hover{color:var(--error-text);border-color:var(--error-border)}.watch-cta-btn{padding:.3rem var(--space-3);border:1px solid var(--accent);border-radius:var(--radius-xs);color:var(--accent);font-size:var(--text-body);font-weight:var(--weight-medium);cursor:pointer;background:0 0;margin-left:auto}.watch-cta-btn:hover{background:var(--accent);color:var(--text-on-accent)}[data-theme=dark] header h1,[data-theme=dark] .book-link,[data-theme=dark] .advanced-toggle,[data-theme=dark] .show-more-btn,[data-theme=dark] .site-chip,[data-theme=dark] .window-chip,[data-theme=dark] .watch-created{color:var(--accent-text)}[data-theme=dark] .tag-btn.active,[data-theme=dark] .day-btn.active{border-color:var(--accent)}[data-theme=dark] .mode-toggle button.active{color:var(--accent-text);background:var(--bg-hover);box-shadow:var(--shadow-sm)}[data-theme=dark] .form-row input,[data-theme=dark] .form-row select,[data-theme=dark] .form-row-full input{background:var(--bg-input);color:var(--text);border-color:var(--border-input);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=dark] .tag-badge{background:var(--bg-hover);color:var(--text-light)}[data-theme=dark] .site-chip:hover,[data-theme=dark] .window-chip:hover{border-color:var(--accent)}[data-theme=dark] .show-more-btn{border-color:var(--border-input)}[data-theme=dark] .show-more-btn:hover{background:var(--bg-hover);border-color:var(--border)}[data-theme=dark] .action-chip.watch{color:var(--accent-text);border-color:var(--accent-text)}.watch-created{font-size:var(--text-body);color:var(--accent);font-weight:var(--weight-medium)}.watch-created-group{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:inline-flex}.push-opt-in-btn{font-size:var(--text-sm);padding:.2rem var(--space-2);border:1px solid var(--accent);border-radius:var(--radius-xs);color:var(--accent);cursor:pointer;white-space:nowrap;background:0 0}.push-opt-in-btn:hover{background:var(--accent);color:var(--text-on-accent)}.auth-modal{max-width:360px}.auth-form{gap:var(--space-3);padding:var(--space-4);flex-direction:column;display:flex}.auth-form label{gap:var(--space-1);font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--text-muted);flex-direction:column;display:flex}.auth-form input{padding:var(--space-2) .6rem;border:1px solid var(--border-input);border-radius:var(--radius-sm);font-size:var(--text-md);background:var(--bg-input);color:var(--text)}.auth-form input:focus{outline:2px solid var(--accent);outline-offset:-1px}.auth-error{color:var(--error-text);background:var(--error-bg);border:1px solid var(--error-border);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-base)}.auth-switch{text-align:center;font-size:var(--text-body);color:var(--text-muted)}.auth-switch-btn{color:var(--accent);cursor:pointer;font-size:inherit;background:0 0;border:none;padding:0;text-decoration:underline}[data-theme=dark] .auth-switch-btn{color:var(--accent-text)}.user-menu{position:relative}.user-menu-trigger{text-overflow:ellipsis;white-space:nowrap;max-width:140px;overflow:hidden}.user-menu-dropdown{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-card);min-width:180px;z-index:var(--z-overlay);margin-top:4px;position:absolute;top:100%;right:0;overflow:hidden}.user-menu-item{width:100%;padding:var(--space-2) var(--space-3);text-align:left;font-size:var(--text-base);color:var(--text);cursor:pointer;transition:background var(--transition-fast);background:0 0;border:none;display:block}.user-menu-item:hover{background:var(--bg-hover)}.user-menu-item.danger{color:var(--error-text)}.user-menu-divider{border:none;border-top:1px solid var(--border-light);margin:0}.user-menu-confirm{padding:var(--space-3);font-size:var(--text-base);color:var(--text-muted)}.user-menu-confirm-actions{gap:var(--space-2);margin-top:var(--space-2);display:flex}.prefs-form{gap:var(--space-2);padding:var(--space-3);flex-direction:column;display:flex}.prefs-form label{font-size:var(--text-body);font-weight:var(--weight-medium);color:var(--text-muted);flex-direction:column;gap:.2rem;display:flex}.prefs-form input,.prefs-form select{padding:.35rem var(--space-2);border:1px solid var(--border-input);border-radius:var(--radius-xs);font-size:var(--text-body);background:var(--bg-input);color:var(--text)}.prefs-actions{gap:var(--space-2);margin-top:var(--space-1);align-items:center;display:flex}.prefs-actions .search-btn{padding:.35rem var(--space-3);font-size:var(--text-body)}.prefs-toggle{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text);cursor:pointer;margin-top:var(--space-1);flex-direction:row}.prefs-toggle input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--accent);flex-shrink:0;margin:0}.recent-searches{margin-top:var(--space-1);flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.recent-label{font-size:var(--text-sm);color:var(--text-light);font-weight:var(--weight-medium)}.recent-chip{padding:.2rem var(--space-2);background:var(--bg-hover);border:1px solid var(--border-light);border-radius:var(--radius-xl);font-size:var(--text-sm);color:var(--text-muted);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);align-items:center;gap:.3rem;display:inline-flex}.recent-chip:hover{background:var(--chip-bg);border-color:var(--chip-border);color:var(--text)}.recent-count{background:var(--accent);color:var(--text-on-accent);font-size:var(--text-xs);border-radius:var(--radius-md);font-weight:var(--weight-semi);padding:0 .3rem}.poll-dashboard{margin:var(--space-3) 0 0;padding:var(--space-3) 1.25rem var(--space-4);border-top:1px solid var(--border)}.poll-dashboard--loading{opacity:.6}.poll-dashboard-placeholder{font-size:var(--text-sm);color:var(--text-muted)}.poll-dashboard-heading{font-size:var(--text-xs);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.06em;color:var(--text-light);margin-bottom:.6rem}.poll-dashboard-stats{gap:.4rem var(--space-3);margin-bottom:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.poll-stat{flex-direction:column;gap:.1rem;display:flex}.poll-stat-label{font-size:var(--text-xs);color:var(--text-light);font-weight:var(--weight-medium)}.poll-stat-value{font-size:var(--text-body);font-weight:var(--weight-semi);color:var(--text)}.poll-stat--error .poll-stat-value{color:var(--error-text)}.poll-notifications-heading{font-size:var(--text-xs);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.06em;color:var(--text-light);margin-bottom:.4rem}.poll-notification-list{gap:var(--space-2);flex-direction:column;list-style:none;display:flex}.poll-notification-item{background:var(--bg-hover);border:1px solid var(--border-light);border-radius:var(--radius-sm);padding:.45rem .6rem}.poll-notification-main{justify-content:space-between;align-items:baseline;gap:var(--space-2);margin-bottom:.15rem;display:flex}.poll-notification-name{font-size:var(--text-body);font-weight:var(--weight-semi);color:var(--text);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.poll-notification-status{font-size:var(--text-xs);font-weight:var(--weight-semi);border-radius:var(--radius-xs);flex-shrink:0;padding:.1rem .35rem}.poll-notification-status--sent{background:var(--chip-bg);color:var(--accent);border:1px solid var(--chip-border)}[data-theme=dark] .poll-notification-status--sent{color:var(--accent-text)}.poll-notification-status--failed{background:var(--error-bg);color:var(--error-text);border:1px solid var(--error-border)}.poll-notification-meta{font-size:var(--text-xs);color:var(--text-muted)}.poll-no-notifications{font-size:var(--text-sm);color:var(--text-light);margin-top:var(--space-1)}.header-nav{gap:var(--space-1);display:flex}.header-btn.active{background:var(--bg-toggle);color:var(--accent);border-color:var(--border);border-bottom:2px solid var(--accent);font-weight:var(--weight-semi)}a.header-btn{align-items:center;text-decoration:none;display:inline-flex}.trip-planner{height:calc(100vh - 120px);padding-top:var(--space-2);flex-direction:column;display:flex}.chat-new-btn{padding:var(--space-1) .6rem;font-size:var(--text-sm);border:1px solid var(--border);border-radius:var(--radius-xs);color:var(--text-muted);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;align-self:flex-end}.chat-new-btn:hover{background:var(--bg-hover);color:var(--text)}.chat-welcome{padding:var(--space-2) 0 var(--space-4)}.chat-welcome h2{font-size:var(--text-lg);font-weight:var(--weight-semi);color:var(--text);margin-bottom:.4rem}.chat-welcome p{font-size:var(--text-md);color:var(--text-muted);line-height:var(--leading-normal)}.chat-examples{margin-top:var(--space-3)}.chat-examples-label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-light);margin-bottom:var(--space-2)}.chat-examples-list{flex-wrap:wrap;gap:.4rem;display:flex}.chat-example-btn{font-size:var(--text-body);color:var(--text-muted);background:var(--bg-card);border:1px solid var(--border);cursor:pointer;transition:background var(--transition-base), border-color var(--transition-base), color var(--transition-base);text-align:left;border-radius:20px;padding:.3rem .65rem;font-family:inherit;line-height:1.4}.chat-example-btn:hover{background:var(--chip-hover);border-color:var(--chip-border);color:var(--text)}.chat-example-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.chat-messages{gap:var(--space-2);min-height:0;padding:var(--space-1) 0 var(--space-2);flex-direction:column;flex:1;display:flex;overflow-y:auto}.chat-message{border-radius:var(--radius-md);max-width:78%;font-size:var(--text-md);line-height:var(--leading-normal);white-space:pre-wrap;padding:.6rem .8rem}.chat-message.user{background:var(--accent);color:var(--text-on-accent);border-bottom-right-radius:3px;align-self:flex-end}.chat-message.assistant{background:var(--bg-hover);color:var(--text);border:none;border-bottom-left-radius:3px;align-self:flex-start;max-width:90%}.chat-message.error{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.chat-message-content{word-break:break-word}.chat-message.user .chat-message-content{white-space:pre-wrap}.chat-message.assistant .chat-message-content{font-size:var(--text-base);line-height:1.45}.chat-message.assistant .chat-message-content *{margin:0;padding:0}.chat-message.assistant .chat-message-content p+p,.chat-message.assistant .chat-message-content p+ul,.chat-message.assistant .chat-message-content p+ol,.chat-message.assistant .chat-message-content ul+p,.chat-message.assistant .chat-message-content ol+p{margin-top:.35rem}.chat-message.assistant .chat-message-content ul,.chat-message.assistant .chat-message-content ol{padding-left:1.1rem}.chat-message.assistant .chat-message-content li{line-height:var(--leading-tight);padding-left:.15rem}.chat-message.assistant .chat-message-content a{color:var(--accent);text-decoration:underline}[data-theme=dark] .chat-message.assistant .chat-message-content a{color:var(--accent-text)}.chat-message.assistant .chat-message-content strong{font-weight:var(--weight-semi)}.tool-calls{flex-wrap:wrap;gap:.3rem;margin-bottom:.4rem;display:flex}.tool-call-badge{font-size:var(--text-xs);color:var(--text-muted);background:var(--chip-bg);border:1px solid var(--chip-border);padding:.15rem var(--space-2);border-radius:20px;align-items:center;gap:.35rem;display:inline-flex}.tool-call-name{font-weight:var(--weight-medium);color:var(--accent)}[data-theme=dark] .tool-call-name{color:var(--accent-text)}.tool-call-result{color:var(--text-light);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chat-thinking{padding:var(--space-2) .8rem;align-items:center;gap:.6rem;display:flex}.thinking-label{font-size:var(--text-body);color:var(--text-light);font-style:italic}.thinking-dots{align-items:center;gap:4px;display:flex}.thinking-dots span{background:var(--text-light);border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite thinking-pulse}.thinking-dots span:nth-child(2){animation-delay:.2s}.thinking-dots span:nth-child(3){animation-delay:.4s}@keyframes thinking-pulse{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.chat-input-form{gap:var(--space-2);padding:var(--space-3) 0 var(--space-2);border-top:1px solid var(--border-light);background:var(--bg);box-shadow:0 -4px 12px var(--bg);align-items:flex-end;display:flex;position:sticky;bottom:0}.chat-input{resize:none;border:1px solid var(--border-input);border-radius:var(--radius-md);padding:.6rem var(--space-3);font-size:var(--text-md);background:var(--bg-input);color:var(--text);flex:1;min-height:48px;max-height:120px;font-family:inherit;line-height:1.4;overflow-y:auto}.chat-input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.chat-input::placeholder{color:var(--text-light)}.chat-input:disabled{opacity:.6;cursor:not-allowed}.chat-send-btn{background:var(--accent);color:var(--text-on-accent);border-radius:var(--radius-md);font-size:var(--text-md);font-weight:var(--weight-semi);cursor:pointer;white-space:nowrap;border:none;align-self:flex-end;height:48px;padding:.6rem 1.25rem}.chat-send-btn:hover:not(:disabled){background:var(--accent-hover)}.chat-send-btn:disabled{opacity:.5;cursor:not-allowed}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}[data-theme=dark] .chat-message.user{background:var(--accent);color:var(--text-on-accent)}[data-theme=dark] .chat-input-form{background:var(--bg)}[data-theme=dark] .chat-example-btn{background:var(--bg-card);border-color:var(--border)}[data-theme=dark] .chat-example-btn:hover{background:var(--chip-hover);border-color:var(--chip-border)}[data-theme=dark] .chat-message.assistant{background:var(--bg-card)}[data-theme=dark] .header-btn.active{background:var(--bg-hover);color:var(--accent-text)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.shortcut-modal{max-width:var(--max-w-modal)}.shortcut-list{padding:var(--space-3) var(--space-4);margin:0}.shortcut-row{padding:var(--space-2) 0;border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;display:flex}.shortcut-row:last-child{border-bottom:none}.shortcut-row dt{flex-shrink:0}.shortcut-row dd{color:var(--text-muted);font-size:var(--text-sm);margin:0}.shortcut-row kbd{text-align:center;min-width:1.8em;padding:var(--space-1) var(--space-2);font-family:inherit;font-size:var(--text-sm);font-weight:var(--weight-semi);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 1px 0 var(--border);display:inline-block}.result-card.card-focused{outline:2px solid var(--accent);outline-offset:2px}
