:root{--color-bg: #fdf6f0;--color-surface: #ffffff;--color-primary: #c0392b;--color-text: #2d2a26;--color-muted: #6b6259;--space: 1rem;--radius: .75rem;--max-width: 60rem}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;background:var(--color-bg);color:var(--color-text)}.app{width:100%;max-width:var(--max-width);margin:0 auto;padding:var(--space)}.app__header{width:100%;padding:12px 16px}.app__header-row{display:flex;align-items:center;justify-content:space-between}.app__header-title-wrapper{display:flex;flex-direction:column;align-items:flex-start;line-height:2rem}.app__user-link{width:100%;background:transparent;border:none;font:inherit;font-size:.8rem;color:var(--color-muted);cursor:pointer;padding:0;white-space:nowrap;text-align:right}.app__user-info{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem}.app__allowance{font-size:.75rem;color:var(--color-muted);white-space:nowrap}.app__allowance-icon{position:relative;top:2px}.app__user-link:hover{color:var(--color-primary)}.app__auth-dropdown{position:relative}.app__auth-dropdown-panel{position:absolute;top:100%;right:0;z-index:10;width:20rem;margin-top:.5rem;box-shadow:0 4px 16px #00000026;border-radius:var(--radius)}.app__header h1{margin:0;font-size:1.1rem;color:var(--color-primary)}.app__title{color:inherit;text-decoration:none;display:flex;flex-wrap:wrap;line-height:1.1rem}.app__title-text{display:block;width:100%}.app__title:hover{opacity:.8}.app__tagline{display:none;margin:.25rem 0 0;color:var(--color-muted)}.app__auth-cta{margin:0 0 var(--space);color:var(--color-muted);font-size:.95rem}.app__auth-cta-link{background:none;border:none;padding:0;font:inherit;color:var(--color-primary);font-weight:600;cursor:pointer;text-decoration:underline}.app__main h2{font-size:1.25rem}.app__empty,.app__error{padding:var(--space);background:var(--color-surface);border-radius:var(--radius);color:var(--color-muted)}.app__error{color:var(--color-primary)}.auth{margin:var(--space) auto 0;text-align:left}.auth--status{text-align:center;color:var(--color-muted)}.auth--user{display:flex;align-items:center;justify-content:center;gap:.75rem}.auth__email{font-weight:600}.auth--form{display:grid;gap:.5rem;padding:var(--space);background:var(--color-surface);border-radius:var(--radius);box-shadow:0 1px 3px #00000014}.auth__tabs{display:flex;gap:.25rem;margin-bottom:.25rem}.auth__tab{flex:1;padding:.4rem;background:transparent;border:1px solid transparent;border-bottom:2px solid transparent;color:var(--color-muted);font:inherit;cursor:pointer}.auth__tab--active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:600}.auth__field{display:grid;gap:.25rem;font-size:.85rem;color:var(--color-muted)}.auth__field input{padding:.5rem;border:1px solid #d9cfc6;border-radius:.4rem;font:inherit;color:var(--color-text)}.auth__button{padding:.55rem;background:var(--color-primary);color:#fff;border:none;border-radius:.4rem;font:inherit;font-weight:600;cursor:pointer}.auth__button:disabled{opacity:.6;cursor:default}.auth__error{margin:0;color:var(--color-primary);font-size:.85rem}.auth__divider{display:flex;align-items:center;gap:.5rem;color:#888;font-size:.8rem}.auth__divider:before,.auth__divider:after{content:"";flex:1;height:1px;background:#ddd}.auth__providers{display:grid;gap:.5rem}.auth__button--google{background:#4285f4}.auth__button--apple{background:#000}.submit{display:grid;gap:.5rem;padding:var(--space);margin-bottom:var(--space);background:var(--color-surface);border-radius:var(--radius);box-shadow:0 1px 3px #00000014}.submit__field{display:grid;gap:.25rem;font-size:.85rem;color:var(--color-muted)}.submit__field input{padding:.5rem;border:1px solid #d9cfc6;border-radius:.4rem;font:inherit;color:var(--color-text)}.submit__button{padding:.55rem;background:var(--color-primary);color:#fff;border:none;border-radius:.4rem;font:inherit;font-weight:600;cursor:pointer}.submit__button:disabled{opacity:.6;cursor:default}.submit__error{margin:0;color:var(--color-primary);font-size:.85rem}.submit__notice{margin:0;color:var(--color-muted);font-size:.85rem}.restaurant-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--space)}.restaurant-card{position:relative;display:grid;gap:.25rem;padding:var(--space);background:var(--color-surface);border-radius:var(--radius);box-shadow:0 1px 3px #00000014}.restaurant-card--closed{opacity:.55;filter:grayscale(1)}.restaurant-card--flagged{background:#201d1a;color:#4a453f;opacity:.4;box-shadow:none}.restaurant-card--flagged .restaurant-card__name,.restaurant-card--flagged .restaurant-card__meta,.restaurant-card--flagged .restaurant-card__votes{color:inherit}.search-bar{display:flex;gap:.5rem;align-items:center;margin-bottom:var(--space)}.search-bar__input{flex:1;padding:.6rem .9rem;border:1px solid var(--color-border, #ccc);border-radius:.5rem;font:inherit}.search-bar__clear{padding:.5rem .9rem;background:transparent;color:var(--color-primary);border:1px solid var(--color-primary);border-radius:.4rem;font:inherit;font-weight:600;cursor:pointer}.sort-bar{display:flex;gap:.5rem;margin-bottom:var(--space)}.sort-bar__option{padding:.35rem .75rem;background:transparent;color:var(--color-muted);border:1px solid var(--color-border, #ccc);border-radius:.4rem;font:inherit;font-size:.85rem;cursor:pointer}.sort-bar__option--active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.restaurant-card__rank{font-variant-numeric:tabular-nums;color:var(--color-muted);font-weight:700;font-size:.9rem}.restaurant-card__unranked{font-size:.8rem;color:var(--color-primary);font-style:italic}.restaurant-card__name{font-weight:600;color:var(--color-text);text-decoration:none}.restaurant-card__name:hover{color:var(--color-primary);text-decoration:underline}.ranking-scope{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:var(--space)}.ranking-scope__location{padding:.35rem .6rem;border:1px solid var(--color-border, #ccc);border-radius:.4rem;font:inherit}.restaurant-card__meta{color:var(--color-muted);font-size:.9rem}.restaurant-card__badge{display:inline-block;margin-left:.5rem;padding:.1rem .45rem;font-size:.75rem;font-weight:700;color:#b8860b;background:#fff8e1;border:1px solid #f0d060;border-radius:.3rem;vertical-align:middle}.restaurant-card__votes{font-variant-numeric:tabular-nums;color:var(--color-primary);font-weight:600}.restaurant-card__vote{justify-self:start;padding:.35rem .9rem;background:var(--color-primary);color:#fff;border:none;border-radius:.4rem;font:inherit;font-weight:600;cursor:pointer;display:flex;justify-content:center;align-items:center;gap:4px}.restaurant-card__vote--voted{background:transparent;color:var(--color-primary);border:1px solid var(--color-primary)}.card-menu{position:absolute;top:.5rem;right:.5rem}.card-menu__trigger{background:transparent;border:none;font-size:1.25rem;line-height:1;padding:.2rem .5rem;cursor:pointer;color:var(--color-muted);border-radius:.3rem}.card-menu__trigger:hover{background:#0000000f}.card-menu__dropdown{position:absolute;top:100%;right:0;z-index:10;min-width:10rem;background:var(--color-surface);border:1px solid #e0d8d0;border-radius:.5rem;box-shadow:0 4px 12px #0000001f;padding:.25rem 0}.card-menu__dropdown button{display:block;width:100%;text-align:left;padding:.5rem .75rem;background:transparent;border:none;font:inherit;font-size:.85rem;color:var(--color-text);cursor:pointer}.card-menu__dropdown button:hover{background:#0000000d}.restaurant-card--flagged .card-menu__trigger{color:#b9b0a6}.restaurant-card--flagged .card-menu__dropdown{background:#2a2725;border-color:#4a453f}.restaurant-card--flagged .card-menu__dropdown button{color:#b9b0a6}.restaurant-card--flagged .card-menu__dropdown button:hover{background:#ffffff14}.auth__allowance{color:var(--color-muted);font-size:.9rem;font-variant-numeric:tabular-nums}.detail{position:relative;background:var(--color-surface);border-radius:.6rem;padding:1.5rem;max-width:40rem;margin:0 auto;display:flex;flex-direction:column;gap:.6rem}.detail__back{align-self:start;background:none;border:none;color:var(--color-muted);font:inherit;cursor:pointer;padding:0}.detail__name{margin:0;color:var(--color-primary)}.detail__address,.detail__meta{margin:0;color:var(--color-muted)}.detail__votes{margin:0;font-weight:700;font-variant-numeric:tabular-nums;color:var(--color-primary)}.detail__submitter{margin-top:2rem;font-size:.9rem;color:var(--color-muted)}.detail__maps{align-self:start;color:var(--color-primary);font-weight:600}.detail__rankings h2{font-size:1.1rem;margin:.5rem 0 .3rem}.detail__ranks{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.25rem}.detail__rank{font-variant-numeric:tabular-nums}.detail__unranked{color:var(--color-muted);font-style:italic}.detail__vote{align-self:start;padding:.5rem 1.2rem;background:var(--color-primary);color:#fff;border:none;border-radius:.4rem;font:inherit;font-weight:600;cursor:pointer}.detail__vote--voted{background:transparent;color:var(--color-primary);border:1px solid var(--color-primary)}.detail__report{align-self:start;padding:.5rem 1.2rem;border-radius:.4rem;font:inherit;font-weight:600}.detail__flag{align-self:start;padding:.4rem 1rem;background:transparent;color:var(--color-muted);border:1px solid var(--color-muted);border-radius:.4rem;font:inherit;cursor:pointer}.detail__notice{margin:0;color:var(--color-primary);font-weight:600}.detail__auth-prompt{margin-top:var(--space);padding:var(--space);background:var(--color-surface);border:1px solid var(--color-muted);border-radius:var(--radius)}.detail__auth-prompt>p{margin:0 0 .5rem;font-weight:600}.detail--closed{opacity:.6;filter:grayscale(1)}.detail--flagged{background:#1c1a18;color:#6b6259;opacity:.85}.detail--flagged .detail__name,.detail--flagged .detail__votes,.detail--flagged .detail__maps{color:#8a7f74}.detail--flagged .detail__report,.detail--flagged .detail__vote{color:#d7cfc6;background:transparent;border:1px solid #6b6259}@media (min-width: 600px){.app__header h1{font-size:1.75rem}.app__title{display:inline;line-height:normal}.app__title-text{display:inline;width:auto}.app__user-link{font-size:1.2rem}.app__allowance{font-size:.85rem}.app__header{padding:20px}}@media all and (min-width: 40rem){.app__header h1{font-size:2.5rem}.app__header-title-wrapper{align-items:flex-end;line-height:2rem}.app__tagline{display:flex}.restaurant-list{grid-template-columns:repeat(2,1fr)}}@media (min-width: 64rem){.restaurant-list{grid-template-columns:repeat(3,1fr)}}.app__nav{display:flex;gap:.5rem;justify-content:center;margin:.5rem 0}.app__nav-link{background:transparent;border:1px solid var(--color-primary);color:var(--color-primary);border-radius:999px;padding:.35rem 1rem;font-size:.9rem;cursor:pointer}.app__nav-link--active{background:var(--color-primary);color:#fff}.profile__back{background:transparent;border:none;color:var(--color-muted);cursor:pointer;padding:0;font-size:.9rem}.profile__settings{display:grid;gap:.75rem;background:var(--color-surface);padding:1rem;border-radius:.75rem;margin:1rem 0;max-width:28rem}.profile__field{display:grid;gap:.25rem}.profile__field span{font-size:.85rem;color:var(--color-muted)}.profile__field input{padding:.5rem;border:1px solid #ddd;border-radius:.5rem;font:inherit}.profile__status{color:var(--color-primary);font-size:.9rem;margin:0}.profile__toggle{display:flex;align-items:center;gap:.5rem;font-size:.9rem;cursor:pointer}.profile__toggle input{width:1rem;height:1rem;cursor:pointer}.profile__share{display:flex;gap:.5rem;align-items:center;margin-top:.25rem}.profile__share-url{flex:1;padding:.4rem .6rem;border:1px solid var(--color-border, #ccc);border-radius:.4rem;font:inherit;font-size:.8rem;color:var(--color-muted);background:var(--color-surface)}.profile__share-copy{padding:.4rem .8rem;background:var(--color-primary);color:#fff;border:none;border-radius:.4rem;font:inherit;font-size:.8rem;font-weight:600;cursor:pointer;white-space:nowrap}.profile__public-city{color:var(--color-muted);font-size:.9rem;margin:0 0 .5rem}.profile__stats{display:flex;gap:1.5rem;margin:var(--space) 0}.profile__stat{display:flex;flex-direction:column;align-items:center;padding:.75rem 1.25rem;background:var(--color-surface);border-radius:var(--radius);box-shadow:0 1px 3px #00000014}.profile__stat-value{font-size:1.5rem;font-weight:700;color:var(--color-primary);font-variant-numeric:tabular-nums}.profile__stat-label{font-size:.8rem;color:var(--color-muted)}.profile__logout{margin-top:calc(var(--space) * 2);padding:.55rem 1.2rem;background:transparent;color:var(--color-muted);border:1px solid var(--color-muted);border-radius:.4rem;font:inherit;cursor:pointer}.restaurant-card__voted-at{color:var(--color-muted);font-size:.85rem}.app__footer{text-align:center;padding:var(--space);font-size:.8rem}.app__footer a{color:var(--color-muted);text-decoration:none}.app__footer a:hover{text-decoration:underline}.privacy{max-width:40rem;line-height:1.6}.privacy h3{margin-top:1.5rem;margin-bottom:.25rem}.privacy p{margin:.5rem 0}.privacy a{color:var(--color-primary)}
