:root{--color-bg:#fffcf0;--color-surface:#f2f0e5;--color-border:#dad8ce;--color-text:#100f0f;--color-text-muted:#6f6e69;--color-accent:#5e409d;--color-accent-2:#66800b;--font-body:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--space-2:.5rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--radius:.375rem;--content-width:72rem}*,:before,:after{box-sizing:border-box;margin:0}body{background:var(--color-bg);min-height:100vh;color:var(--color-text);font-family:var(--font-body);flex-direction:column;line-height:1.6;display:flex}a{color:var(--color-accent)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.site-header,.site-main,.site-footer{width:100%;max-width:var(--content-width);padding-inline:var(--space-4);margin-inline:auto}.site-main{padding-block:var(--space-6);flex:1}.site-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);padding-block:var(--space-8) var(--space-4);display:flex}.site-header h1{color:var(--color-accent);font-size:clamp(2rem,6vw,3rem);line-height:1.1}.site-header p{margin-top:var(--space-2);color:var(--color-text-muted)}.lang-switch{padding:.25rem var(--space-2);border:1px solid var(--color-accent);border-radius:var(--radius);flex-shrink:0;font-size:.875rem;font-weight:600;text-decoration:none}.lang-switch:hover{background:color-mix(in srgb, var(--color-accent) 10%, transparent)}.filters{align-items:flex-end;gap:var(--space-4);flex-wrap:wrap;display:flex}.field{flex-direction:column;gap:.25rem;min-width:10rem;display:flex}.field-search{flex:16rem}.field-label{color:var(--color-text-muted);font-size:.875rem;font-weight:600}.span-options{align-items:center;gap:.25rem var(--space-4);border:0;flex-flow:wrap;min-height:2.5rem;padding:0}.span-options legend{width:100%;padding:0}.check{cursor:pointer;align-items:center;gap:.375rem;display:inline-flex}.check input{accent-color:var(--color-accent-2)}.input{min-height:2.5rem;padding:.375rem var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:inherit;font:inherit}.input:focus-visible{outline-offset:0;border-color:var(--color-accent)}.result-bar{justify-content:space-between;align-items:baseline;gap:var(--space-2) var(--space-4);margin-top:var(--space-6);flex-wrap:wrap;display:flex}.result-count{font-weight:600}.result-note{color:var(--color-text-muted);font-size:.875rem}.table-wrap{margin-top:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius);overflow-x:auto}.places-table{border-collapse:collapse;width:100%;font-size:.9375rem}.places-table th,.places-table td{padding:var(--space-2) .75rem;border-bottom:1px solid var(--color-border);text-align:left;vertical-align:top}.places-table th{background:var(--color-surface);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);white-space:nowrap;font-size:.8125rem;position:sticky;top:0}.places-table tbody tr:last-child td{border-bottom:0}.places-table tbody tr:hover{background:color-mix(in srgb, var(--color-accent) 6%, transparent)}.places-table td:first-child{font-weight:600}.hours-cell{min-width:12rem}.hours-text{color:var(--color-text-muted);font-size:.8125rem;display:block}.table-empty{text-align:center;color:var(--color-text-muted)}.badge{background:color-mix(in srgb, var(--color-accent-2) 14%, transparent);color:var(--color-accent-2);border-radius:999px;margin:.25rem .25rem 0 0;padding:0 .5rem;font-size:.75rem;font-weight:600;display:inline-block}.map-page{height:100dvh}.map-page .site-header{padding-block:var(--space-4)}.map-page .site-header p{margin-top:0}.map-page .site-footer{padding-block:var(--space-2)}.map-view{border-top:1px solid var(--color-border);flex:1;min-height:0;display:flex}.map-panel{padding:var(--space-4);border-right:1px solid var(--color-border);flex:0 0 17rem;overflow-y:auto}.map-panel-toggle{display:none}.map-filters{gap:var(--space-4);flex-direction:column;display:flex}.map-panel .result-count{margin-top:var(--space-4)}.map-canvas{flex:1;min-width:0}.filter-group{border:0;flex-direction:column;gap:.125rem;min-width:0;padding:0;display:flex}.filter-actions{gap:var(--space-2);display:flex}.text-button{color:var(--color-accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-size:.875rem;text-decoration:underline}.checklist{max-height:14rem;padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);flex-direction:column;display:flex;overflow-y:auto}.legend-dot{border-radius:50%;width:.75rem;height:.75rem}.legend-dot[data-amenity=restaurant]{background:#af3029}.legend-dot[data-amenity=fast_food]{background:#bc5215}.legend-dot[data-amenity=bar]{background:#5e409d}.legend-dot[data-amenity=cafe]{background:#205ea6}@media (width<=40rem){.map-view{flex-direction:column}.map-panel{border-right:0;border-bottom:1px solid var(--color-border);flex:0 auto;max-height:50%}.map-panel-toggle{cursor:pointer;font-weight:600;display:list-item}.map-panel[open] .map-panel-toggle{margin-bottom:var(--space-2)}.map-canvas{min-height:20rem}}.place-dialog{width:min(28rem, calc(100% - 2 * var(--space-4)));border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);color:var(--color-text);margin:auto;padding:0}.place-dialog::backdrop{background:#100f0f66}.place-dialog-body{padding:var(--space-4) var(--space-6) var(--space-6)}.place-dialog-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);display:flex}.place-dialog-header h2{color:var(--color-accent);font-size:1.375rem;line-height:1.3}.close-button{border-radius:var(--radius);width:2rem;height:2rem;color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;flex-shrink:0;font-size:1.5rem;line-height:1}.close-button:hover{background:var(--color-surface)}.place-details{gap:var(--space-2);margin-block:var(--space-4);display:grid}.place-details dt{color:var(--color-text-muted);font-size:.875rem;font-weight:600}.place-details dd{overflow-wrap:anywhere}.site-footer{padding-block:var(--space-6);border-top:1px solid var(--color-border);color:var(--color-text-muted);font-size:.875rem}
