.app-container{min-height:100vh;display:flex;flex-direction:column}.main{flex:1;display:flex;flex-direction:column;min-height:0}.section{padding:1rem}.header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-top:.1rem solid var(--header-border);border-bottom:.1rem solid var(--header-border);background:var(--primary-bg);color:var(--primary-fg)}.title{margin:0;font-size:1.25rem}.themeToggle{position:relative;display:flex;align-items:center;justify-content:flex-start;width:3rem;height:1.6rem;border-radius:1rem;border:1px solid var(--border);background:var(--surface-variant);cursor:pointer;padding:0;overflow:hidden;transition:background-color .3s,border-color .3s}.themeToggle .icon{position:absolute;top:50%;left:.35rem;transform:translateY(-50%);font-size:.9rem;pointer-events:none}.themeToggle .slider{position:absolute;top:2px;left:2px;width:1.2rem;height:1.2rem;border-radius:50%;background:var(--brand-accent);transition:transform .25s ease}.themeToggle.is-dark{background:var(--surface);border-color:var(--brand-accent)}.themeToggle.is-dark .slider{transform:translate(1.35rem)}.themeToggle:focus-visible{outline:2px solid var(--brand-accent);outline-offset:2px}#searchForm{display:flex;align-items:center;justify-content:center;gap:1rem;width:100%;padding:1rem 1.25rem;background-color:var(--surface);border-bottom:1px solid var(--border)}#searchForm label{color:var(--muted);font-size:.95rem;white-space:nowrap}#searchForm input{width:min(720px,55%);background-color:var(--input-bg);color:var(--primary-fg);padding:.6rem .75rem;font-size:1rem;border:1px solid var(--input-border);border-radius:.5rem;transition:border-color .2s,box-shadow .2s,background-color .2s}#searchForm input::placeholder{color:color-mix(in oklab,var(--muted) 70%,transparent)}#searchForm input:focus{outline:none;border-color:var(--brand-accent);box-shadow:0 0 0 3px color-mix(in oklab,var(--brand-accent) 35%,transparent)}#searchForm button{background-color:var(--button-bg);color:var(--button-fg);border:1px solid var(--button-border);padding:.6rem 1rem;font-size:1rem;border-radius:.5rem;cursor:pointer;transition:background-color .2s,border-color .2s,transform .05s}#searchForm button:hover{background-color:var(--button-hover-bg);border-color:var(--button-border)}#searchForm button:active{transform:translateY(1px)}@media (max-width: 640px){#searchForm{flex-wrap:wrap;gap:.75rem .75rem;padding:.75rem 1rem}#searchForm label,#searchForm input{width:100%}}.feedback-bar{display:inline-block;width:100%;background-color:#8b0000;color:#fff;text-align:center;padding-top:.25rem;padding-bottom:.25rem}.location-card{position:relative;border:1px solid var(--border);background:var(--surface-variant);color:var(--primary-fg);cursor:pointer;display:grid;grid-template-columns:1fr;align-items:center;width:16rem;min-height:5.25rem;padding:.75rem .85rem;border-radius:.75rem;text-align:left;transition:transform .12s ease,box-shadow .18s ease,border-color .18s ease,background-color .18s ease;box-shadow:0 1px 2px color-mix(in oklab,var(--primary-fg) 10%,transparent)}.location-card.compact .card-main{display:grid;grid-template-columns:1fr;row-gap:.15rem}.card-title{margin:0;font-size:1.05rem;font-weight:650;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-subtitle{margin:0;color:var(--muted);font-size:.92rem;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.location-card:hover{transform:translateY(-1px);border-color:var(--brand-accent);box-shadow:0 2px 8px color-mix(in oklab,var(--brand-accent) 16%,transparent),0 1px 2px color-mix(in oklab,var(--primary-fg) 12%,transparent)}.location-card:focus-visible{outline:3px solid color-mix(in oklab,var(--brand-accent) 40%,transparent);outline-offset:2px;border-color:var(--brand-accent)}.location-card.is-selected{border-color:var(--brand-accent);box-shadow:0 0 0 2px color-mix(in oklab,var(--brand-accent) 22%,transparent),0 1px 2px color-mix(in oklab,var(--primary-fg) 12%,transparent)}.card-remove-icon{position:absolute;top:6px;right:6px;width:1.4rem;height:1.4rem;border-radius:9999px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--button-border);background:var(--button-bg);color:var(--button-fg);cursor:pointer;transition:background-color .2s,border-color .2s,transform 60ms;line-height:1;font-size:1rem}.card-remove-icon:hover{background-color:var(--button-hover-bg)}.card-remove-icon:active{transform:translateY(1px)}@media (max-width: 720px){.location-card{width:100%}}@media (prefers-reduced-motion: reduce){.location-card,.card-remove-icon{transition:none}.location-card:hover{transform:none}}.location-bar{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:center;gap:1rem 1.25rem;padding:.75rem 1rem 1rem;margin-top:.75rem;border-bottom:1px solid var(--border);background:var(--surface);border-radius:.5rem}.location-bar>p{margin:.5rem 0 0;color:var(--muted);width:100%;text-align:center;font-size:.95rem}.location-bar-title{width:100%;margin:0 0 .5rem;font-size:1.1rem;font-weight:600;color:var(--primary-fg);text-align:left;padding-left:.25rem;border-bottom:1px solid var(--border);padding-bottom:.25rem}@media (max-width: 640px){.location-bar{gap:.75rem;padding:.5rem .75rem .75rem}}#weather-container{margin-top:auto;width:100%;background:var(--surface);border-top:1px solid var(--border);display:flex;flex-direction:column;align-items:center;padding:1rem 1.25rem}#weather-title{margin:0 0 .75rem;color:var(--primary-fg);font-size:1.25rem;text-align:center}#weather-title .accent{color:var(--brand-accent)}#weather-info{width:min(960px,100%);display:grid;grid-template-columns:1fr 1fr;gap:1rem 1.25rem;align-items:center}#info-left{display:flex;flex-direction:column;align-items:center;gap:.25rem}.weather-icon{filter:drop-shadow(0 2px 4px color-mix(in oklab,var(--primary-fg) 18%,transparent))}.description{margin:.25rem 0 0;color:var(--muted);font-size:1rem;text-align:center}#info-right{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem}.metric{background:var(--surface-variant);border:1px solid var(--border);border-radius:.75rem;padding:.75rem;text-align:center;transition:background-color .2s,border-color .2s,transform .12s;box-shadow:0 1px 2px color-mix(in oklab,var(--primary-fg) 10%,transparent)}.metric:hover{border-color:var(--brand-accent);transform:translateY(-1px)}.metric .label{display:block;color:var(--muted);font-size:.9rem;margin-bottom:.25rem}.metric .value{color:var(--primary-fg);font-weight:600;font-size:1.1rem}@media (max-width: 720px){#weather-info,#info-right{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){.metric{transition:none}.metric:hover{transform:none}}:root{--primary-dark: #000814;--primary-med: #001d3d;--primary-light: #003566;--secondary-dark: #ffc300;--secondary-light: #ffd60a;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root[data-theme=light]{--primary-bg: #e6f0fa;--primary-fg: #213547;--brand-accent: var(--primary-light);--surface: #f7f9fc;--surface-variant: #eef3f9;--border: rgba(0, 0, 0, .12);--muted: rgba(0, 0, 0, .6);--input-bg: #ffffff;--input-border: rgba(0, 0, 0, .2);--button-bg: #f3f5f8;--button-fg: var(--primary-fg);--button-border: rgba(0, 0, 0, .2);--button-hover-bg: #e7ebf2;--header-border: var(--primary-light);color-scheme:light;background-color:var(--primary-bg);color:var(--primary-fg)}:root[data-theme=dark]{--primary-bg: var(--primary-dark);--primary-fg: rgba(255, 255, 255, .87);--brand-accent: var(--secondary-light);--surface: var(--primary-med);--surface-variant: #0e1730;--border: rgba(255, 255, 255, .18);--muted: rgba(255, 255, 255, .7);--input-bg: #0a1326;--input-border: rgba(255, 255, 255, .2);--button-bg: #111827;--button-fg: var(--primary-fg);--button-border: rgba(255, 255, 255, .2);--button-hover-bg: #1f2937;--header-border: var(--secondary-light);color-scheme:dark;background-color:var(--primary-bg);color:var(--primary-fg)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}a{color:#646cff;text-decoration:none}a:hover{color:#535bf2}button{border-radius:8px;border:1px solid var(--button-border);padding:.6em 1.2em;font:inherit;background-color:var(--button-bg);color:var(--button-fg);cursor:pointer;transition:background-color .2s,border-color .2s}button:hover{background-color:var(--button-hover-bg)}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}
