:root{--ground:#f3efe6;--paper:#faf8f3;--canopy:#243d33;--moss:#4d6f5c;--bark:#5c4636;--clay:#b86b4b;--mist:#8aa3a8;--ink:#1c2620;--line:#243d3324;--shadow:0 8px 32px #1c26201f;--font-display:"DM Serif Display", "Iowan Old Style", "Palatino Linotype", serif;--font-body:"Source Sans 3", "Segoe UI", system-ui, sans-serif;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--sheet-max-h:min(48vh, 24rem);--sheet-margin:.5rem;--floating-gap:.5rem}*,:before,:after{box-sizing:border-box}html,body{background:var(--ground);min-height:100%;color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.45}button{font:inherit;cursor:pointer}.app-shell{grid-template-rows:auto 1fr auto;display:grid;position:fixed;inset:0;overflow:hidden}.map-region{width:100%;min-height:0;position:relative;overflow:hidden}.map-canvas{width:100%;height:100%;position:absolute;inset:0}.chrome{z-index:2;padding:calc(.65rem + var(--safe-top)) .75rem .65rem;pointer-events:none;background:linear-gradient(#f3efe6f5 70%,#f3efe600);justify-content:space-between;align-items:center;gap:.45rem;display:flex;position:relative}.chrome>*{pointer-events:auto}.brand{font-family:var(--font-display);letter-spacing:.02em;color:var(--canopy);flex-shrink:0;margin:0;font-size:1.75rem;font-weight:400;line-height:1}.weather-chrome{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:.05rem;min-width:2.75rem;display:flex}.chrome-actions{flex-shrink:0}.weather-temp{font-family:var(--font-display);letter-spacing:.01em;color:var(--canopy);font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:400;line-height:1}.weather-desc{letter-spacing:.04em;text-transform:uppercase;color:var(--moss);text-align:right;white-space:nowrap;text-overflow:ellipsis;max-width:8rem;font-size:.68rem;font-weight:600;overflow:hidden}.weather-chrome.loading .weather-temp{opacity:.45}.icon-btn{border:1px solid var(--line);background:var(--paper);width:2.5rem;height:2.5rem;color:var(--canopy);border-radius:999px;justify-content:center;align-items:center;padding:0;line-height:0;display:inline-flex}.icon-btn:disabled{opacity:.5}.sheet-stack{gap:var(--floating-gap);margin:0 var(--sheet-margin) calc(var(--sheet-margin) + var(--safe-bottom));z-index:3;flex-direction:column;display:flex}.sheet{border:1px solid var(--line);background:var(--paper);box-shadow:var(--shadow);max-height:var(--sheet-max-h);border-radius:1.1rem 1.1rem .85rem .85rem;flex-direction:column;display:flex;position:relative;overflow:hidden}.sheet-tabs{border-bottom:1px solid var(--line);grid-template-columns:repeat(4,1fr);display:grid}.sheet-tab{color:var(--moss);letter-spacing:.03em;text-transform:uppercase;background:0 0;border:none;padding:.7rem .5rem;font-size:.82rem}.sheet-tab[aria-selected=true]{color:var(--canopy);box-shadow:inset 0 -2px 0 var(--clay);font-weight:600}.sheet-body{padding:.85rem 1rem 1rem;overflow-y:auto}@media (width<=719px){:root{--sheet-max-h:min(36vh, 18.5rem)}.sheet.collapsed .sheet-body{display:none}.sheet.collapsed{max-height:none}.sheet.collapsed .sheet-tabs{border-bottom:none}}@media (width>=720px){.sheet.collapsed .sheet-body{display:block}}.panel-note{color:var(--bark);margin:0 0 .75rem;font-size:.88rem}.chip-row{flex-wrap:wrap;gap:.5rem;display:flex}.chip-row+.chip-row{margin-top:.65rem}.chip{border:1px solid var(--line);background:var(--ground);color:var(--canopy);border-radius:999px;align-items:center;gap:.35rem;padding:.4rem .7rem;font-size:.88rem;display:inline-flex}.chip[aria-pressed=true]{border-color:var(--canopy);background:color-mix(in srgb, var(--canopy) 12%, var(--ground))}.chip-dot{border-radius:50%;width:.55rem;height:.55rem}.place-list{gap:.45rem;margin:.75rem 0 0;padding:0;list-style:none;display:grid}.place-item{border-bottom:1px solid var(--line);grid-template-columns:auto 1fr auto;align-items:baseline;gap:.55rem;padding:.55rem 0;display:grid}.place-kind{text-transform:uppercase;letter-spacing:.05em;color:var(--moss);font-size:.72rem}.place-name{margin:0;font-size:.95rem}.place-distance{color:var(--bark);white-space:nowrap;font-size:.82rem}.status{color:var(--bark);margin:.35rem 0 0;font-size:.82rem}.status.error{color:#8b3a2f}@media (width>=720px){.sheet-stack{right:1rem;bottom:calc(1rem + var(--safe-bottom));width:min(22rem,100% - 2rem);margin:0;position:absolute;left:auto}.sheet{max-height:var(--sheet-max-h);border-radius:1rem}}
