.notice-banner{justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);padding:var(--space-1) var(--space-2);border:1px solid var(--color-secondary);border-radius:var(--radius);background:var(--color-surface);display:flex}.notice-banner p{margin:0}.brand-logo{width:var(--header-logo-size);height:var(--header-logo-size);background:var(--color-surface);color:var(--color-primary);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.brand-logo__image{object-fit:cover;width:100%;height:100%;transform:scale(var(--logo-zoom))}.brand-logo__fallback{font-family:var(--font-heading);font-weight:600;font-size:calc(var(--header-logo-size) * .4);letter-spacing:.05em}@media (width>=45rem){.brand-logo{width:var(--header-logo-size-wide);height:var(--header-logo-size-wide)}.brand-logo__fallback{font-size:calc(var(--header-logo-size-wide) * .4)}}.header{background:var(--color-primary);color:var(--color-on-primary);padding-top:env(safe-area-inset-top)}.header__inner{justify-content:space-between;align-items:center;gap:var(--space-2);max-width:var(--content-max-width);padding:var(--space-1) var(--space-2);margin:0 auto;display:flex}.header__actions{flex:none;align-items:center;gap:.5rem;display:flex}.header__brand{min-width:0;color:inherit;align-items:center;gap:.75rem;text-decoration:none;display:flex}.header__text{flex-direction:column;min-width:0;line-height:1.2;display:flex}.header__name{font-family:var(--font-heading);letter-spacing:.14em;text-transform:uppercase;font-size:1.05rem}.header__tagline{letter-spacing:.22em;text-transform:uppercase;opacity:.8;font-size:.7rem}.header__app{display:none}@media (width>=45rem){.header__inner{padding:var(--space-2) var(--space-3)}.header__brand{gap:var(--space-2)}.header__name{font-size:1.35rem}.header__tagline{font-size:.8rem}.header__app{font-family:var(--font-heading);margin-top:.25rem;font-size:1.05rem;font-style:italic;display:block}}.status-message{padding:var(--space-4) var(--space-2);text-align:center;color:var(--color-text-muted)}.status-message--error{border:1px solid var(--color-secondary);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text)}.login__intro{margin:0 0 var(--space-3);color:var(--color-text-muted)}.login{gap:var(--space-2);max-width:24rem;margin-bottom:var(--space-3);flex-direction:column;display:flex}.login__field{color:var(--color-text-muted);flex-direction:column;gap:.35rem;font-size:.9rem;display:flex}.login__field input{min-height:var(--tap-size);padding:0 var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-field);color:var(--color-text);font:inherit;font-size:1rem}.login__error{padding:var(--space-1) var(--space-2);border:1px solid var(--color-secondary);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);margin:0}.login__submit:disabled{opacity:.5;cursor:not-allowed}.account{gap:var(--space-2);max-width:28rem;margin:0 0 var(--space-3);padding:var(--space-2) 0;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);display:grid}.account dt{color:var(--color-text-muted);letter-spacing:.12em;text-transform:uppercase;font-size:.75rem}.account dd{font-family:var(--font-heading);overflow-wrap:anywhere;margin:.15rem 0 0;font-size:1.15rem}.filters{gap:var(--space-1);flex-direction:column;display:flex}.filters__search,.filters__select{min-height:var(--tap-size);padding:0 var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-field);color:var(--color-text);font:inherit;font-size:1rem}.filters__search{width:100%}.filters__row{gap:var(--space-1);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.filters__select--active{border-color:var(--color-secondary);background:var(--color-secondary);color:var(--color-on-secondary);font-weight:600}.filters__row .button{grid-column:1/-1}@media (width>=45rem){.filters{gap:var(--space-2)}.filters__row{gap:var(--space-2);display:flex}.filters__select{flex:1 1 0;min-width:0}.filters__row .button{flex:none}}.view-toggle{border:1px solid var(--color-primary);border-radius:var(--radius);display:inline-flex;overflow:hidden}.view-toggle__button{min-height:var(--tap-size);padding:0 var(--space-2);color:var(--color-primary);font:inherit;cursor:pointer;background:0 0;border:0;font-size:.9rem}.view-toggle__button[aria-pressed=true]{background:var(--color-primary);color:var(--color-on-primary)}.wine-photo{background:var(--color-field);justify-content:center;align-items:center;width:100%;height:100%;display:flex;overflow:hidden}.wine-photo__image{object-fit:contain;width:100%;height:100%}.wine-photo--placeholder{color:var(--color-border)}.wine-photo__bottle{width:auto;height:70%}.wine-card-grid{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(8.5rem,1fr));margin:0;padding:0;list-style:none;display:grid}@media (width>=45rem){.wine-card-grid{grid-template-columns:repeat(3, minmax(0, var(--card-max-width)));justify-content:center;gap:var(--space-3)}}@media (width>=62rem){.wine-card-grid{grid-template-columns:repeat(4, minmax(0, var(--card-max-width)));gap:1.75rem}}.wine-card{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);height:100%;color:inherit;flex-direction:column;text-decoration:none;display:flex;overflow:hidden}.wine-card:active{background:var(--color-border)}.wine-card__photo{aspect-ratio:3/4}.wine-card__body{padding:var(--space-2)}.wine-card__winery{color:var(--color-text-muted);letter-spacing:.14em;text-transform:uppercase;margin:0 0 .25rem;font-size:.7rem}.wine-card__name{font-size:1.15rem}.wine-card__meta,.wine-card__vintage{color:var(--color-text-muted);overflow-wrap:anywhere;margin:.25rem 0 0;font-size:.9rem}.wine-list{border-top:1px solid var(--color-border);margin:0;padding:0;list-style:none}.wine-list>li{border-bottom:1px solid var(--color-border)}.wine-row{column-gap:var(--space-2);padding:var(--space-1) 0;color:inherit;grid-template-columns:3.5rem minmax(0,1fr) auto;grid-template-areas:"photo name vintage""photo winery winery""photo region region""photo grapes grapes";align-content:center;align-items:center;text-decoration:none;display:grid}a.wine-row:active{background:var(--color-surface)}.wine-row__photo{border-radius:.25rem;grid-area:photo;width:3.5rem;height:4.25rem;overflow:hidden}.wine-row__name{font-family:var(--font-heading);overflow-wrap:anywhere;grid-area:name;font-size:1.05rem;font-weight:600}.wine-row__vintage{font-variant-numeric:tabular-nums;grid-area:vintage}.wine-row__winery{grid-area:winery}.wine-row__region{grid-area:region}.wine-row__grapes{grid-area:grapes}.wine-row__winery,.wine-row__region,.wine-row__grapes{color:var(--color-text-muted);overflow-wrap:anywhere;font-size:.9rem}.wine-row--header{display:none}@media (width>=45rem){.wine-row{grid-template-columns:3.5rem minmax(0,2fr) minmax(0,2fr) minmax(0,1.5fr) minmax(0,2fr) 4.5rem;grid-template-areas:"photo name winery region grapes vintage"}.wine-row__winery,.wine-row__region,.wine-row__grapes{font-size:1rem}.wine-row--header{padding:var(--space-1) 0;color:var(--color-text-muted);letter-spacing:.12em;text-transform:uppercase;font-size:.75rem;display:grid}.wine-row--header>span{grid-area:auto}}.catalog__toolbar{margin:var(--space-2) 0;justify-content:space-between;align-items:center;display:flex}.catalog__count{color:var(--color-text-muted);margin:0;font-size:.9rem}.wine-detail__back{margin-bottom:var(--space-3)}.wine-detail__layout{gap:var(--space-3);display:grid}.wine-detail__photo{aspect-ratio:4/5;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);width:100%;max-height:28rem;overflow:hidden}.wine-detail__winery{color:var(--color-text-muted);letter-spacing:.16em;text-transform:uppercase;margin:0 0 .25rem;font-size:.8rem}.wine-detail__name{font-size:2rem}.wine-detail__facts{gap:var(--space-2) var(--space-4);margin:var(--space-3) 0;padding:var(--space-2) 0;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);flex-wrap:wrap;display:flex}.wine-detail__facts dt{color:var(--color-text-muted);letter-spacing:.12em;text-transform:uppercase;font-size:.75rem}.wine-detail__facts dd{font-family:var(--font-heading);margin:.15rem 0 0;font-size:1.2rem}.wine-detail__description{max-width:38rem;margin:0;line-height:1.7}@media (width>=45rem){.wine-detail__layout{gap:var(--space-4);grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:start}.wine-detail__photo{max-height:36rem}.wine-detail__name{font-size:2.5rem}}:root{--color-primary:#182f2f;--color-secondary:#b16465;--color-background:#f6f3ea;--color-text:#222b28;--color-surface:#e9e4d8;--color-on-primary:#f6f3ea;--color-on-secondary:#fff;--color-text-muted:#5a6561;--color-border:#d3ccba;--color-field:#fbf9f3;--color-primary-pressed:#0f1f1f;--font-body:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-heading:Georgia, "Times New Roman", serif;--space-1:.5rem;--space-2:1rem;--space-3:1.5rem;--space-4:2.5rem;--radius:.5rem;--content-max-width:72rem;--card-max-width:15rem;--tap-size:2.75rem;--header-logo-size:2.5rem;--header-logo-size-wide:4rem;--logo-zoom:1.12}*,:before,:after{box-sizing:border-box}body{background:var(--color-background);color:var(--color-text);font-family:var(--font-body);margin:0;font-size:1rem;line-height:1.5}h1,h2,h3{font-family:var(--font-heading);margin:0;font-weight:600;line-height:1.2}a{color:inherit}.button{min-height:var(--tap-size);padding:0 var(--space-3);border-radius:var(--radius);background:var(--color-primary);color:var(--color-on-primary);font:inherit;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;font-weight:600;text-decoration:none;display:inline-flex}.button:active{background:var(--color-primary-pressed)}.button--outline{border-color:var(--color-on-primary);background:0 0}.button--outline:active{background:var(--color-primary-pressed)}.button--compact{min-height:2.25rem;padding:0 .75rem;font-size:.9rem}.button--light{border-color:var(--color-border);color:var(--color-text);background:0 0}.button--light:active{background:var(--color-surface)}.page{width:100%;max-width:var(--content-max-width);padding:var(--space-3) var(--space-2) var(--space-4);margin:0 auto}.page-title{margin-bottom:var(--space-2);font-size:1.75rem}@media (width>=45rem){.page-title--mobile-only{display:none}}.notice{margin:var(--space-2) 0;padding:var(--space-1) var(--space-2);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text-muted);font-size:.875rem}.empty-state{padding:var(--space-4) var(--space-2);text-align:center;color:var(--color-text-muted)}
