:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#292820;background:#f6f1e7;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #292820;--ink-soft: #6d695e;--paper: #fffdf8;--cream: #f6f1e7;--line: #ded7c9;--red: #a5362a;--red-dark: #7e281f;--gold: #c68a25;--green: #3d6851;--shadow: 0 16px 50px rgb(69 54 31 / 8%)}*,*:before,*:after{box-sizing:border-box}html{min-width:320px;min-height:100%;background:var(--cream)}body{min-width:320px;min-height:100vh;margin:0;background:radial-gradient(circle at 10% 8%,rgb(198 138 37 / 7%),transparent 24rem),var(--cream)}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgb(165 54 42 / 24%);outline-offset:2px}button:disabled{cursor:not-allowed;opacity:.55}h1,h2,p{margin-top:0}h1,h2{font-family:Georgia,Times New Roman,serif;color:var(--ink);font-weight:500;letter-spacing:-.025em}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.eyebrow{margin-bottom:.55rem;color:var(--red);font-size:.7rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.brand-mark{display:inline-grid;place-items:center;width:3.1rem;height:3.1rem;border:1px solid rgb(165 54 42 / 25%);border-radius:50% 50% 46% 54%/53% 45% 55% 47%;color:var(--paper);background:var(--red);font-family:Georgia,Times New Roman,serif;font-size:1.05rem;letter-spacing:-.08em;box-shadow:0 8px 18px #7e281f26;transform:rotate(-2deg)}.brand-mark.small{width:2.15rem;height:2.15rem;font-size:.78rem;box-shadow:none}.primary-button,.secondary-button{min-height:2.7rem;padding:.65rem 1rem;border:1px solid transparent;border-radius:.55rem;font-weight:750;cursor:pointer;transition:.15s ease}.primary-button{color:#fff;background:var(--red);box-shadow:0 8px 20px #7e281f24}.primary-button:hover:not(:disabled){background:var(--red-dark);transform:translateY(-1px)}.secondary-button{border-color:var(--line);color:var(--ink);background:var(--paper)}.secondary-button:hover:not(:disabled){border-color:#b9ae9d;background:#fff}.text-button{padding:.3rem;border:0;color:var(--red);background:transparent;font-size:.82rem;font-weight:750;cursor:pointer}.auth-shell,.setup-shell{min-height:100vh;display:grid;place-items:center;padding:2rem 1rem;background:linear-gradient(135deg,#f6f1e7eb,#faf4eaeb),repeating-linear-gradient(45deg,transparent 0 20px,rgb(165 54 42 / 3%) 20px 21px)}.auth-shell>p{color:var(--ink-soft)}.auth-card,.setup-card{width:min(100%,28rem);padding:clamp(1.5rem,5vw,2.5rem);border:1px solid var(--line);border-radius:1.1rem;background:var(--paper);box-shadow:var(--shadow)}.auth-card .brand-mark,.setup-card .brand-mark{margin-bottom:1.5rem}.auth-card h1,.setup-card h1{margin-bottom:.8rem;font-size:clamp(2rem,8vw,2.8rem);line-height:1.02}.auth-intro,.setup-card>p{color:var(--ink-soft);line-height:1.6}.auth-card form{display:grid;gap:1rem;margin-top:1.5rem}.auth-card label{display:grid;gap:.4rem;color:#4a473f;font-size:.8rem;font-weight:700}.auth-card input{width:100%;min-height:2.8rem;padding:.65rem .75rem;border:1px solid var(--line);border-radius:.55rem;color:var(--ink);background:#fff;font-size:1rem}.auth-card input:focus{border-color:var(--red)}.form-error{margin:0;color:var(--red-dark);font-size:.84rem}.auth-footnote,.setup-note{margin:1.4rem 0 0;color:var(--ink-soft);font-size:.76rem;text-align:center}.code-block{display:grid;gap:.35rem;margin:1.35rem 0;padding:1rem;border:1px solid #ded7c9;border-radius:.55rem;color:#f7ead7;background:#2f2c26;overflow-x:auto}.code-block code{font-size:.78rem}.loading-mark{width:2rem;height:2rem;border:3px solid rgb(165 54 42 / 18%);border-top-color:var(--red);border-radius:50%;animation:spin .8s linear infinite}.app-shell{min-height:100vh}.topbar{position:sticky;z-index:10;top:0;display:flex;align-items:center;gap:clamp(1rem,3vw,2.5rem);min-height:4.5rem;padding:.65rem max(1.1rem,calc((100vw - 74rem)/2));border-bottom:1px solid rgb(222 215 201 / 85%);background:#fffdf8eb;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.wordmark{display:flex;gap:.65rem;align-items:center;flex:none;color:var(--ink);font-family:Georgia,Times New Roman,serif;font-size:1.05rem;text-decoration:none}.topbar nav{display:flex;gap:.3rem;align-self:stretch}.nav-item{display:grid;place-items:center;padding:0 .8rem;border-bottom:2px solid transparent;color:var(--ink-soft);font-size:.82rem;font-weight:700;text-decoration:none}.nav-item.active{border-bottom-color:var(--red);color:var(--ink)}.nav-item.disabled{color:#aaa397;font-weight:500}.account-menu{display:flex;gap:.8rem;align-items:center;margin-left:auto}.account-email{max-width:13rem;overflow:hidden;color:var(--ink-soft);font-size:.75rem;text-overflow:ellipsis;white-space:nowrap}.sign-out{min-height:2.3rem;padding:.4rem .7rem;font-size:.75rem}.main-content{width:min(100% - 2.2rem,74rem);margin:0 auto;padding:clamp(2.2rem,5vw,4.2rem) 0 5rem}.page-heading{display:flex;gap:2rem;align-items:end;justify-content:space-between;margin-bottom:2rem}.page-heading h1{margin-bottom:.55rem;font-size:clamp(2.35rem,6vw,4rem);line-height:.98}.page-intro{max-width:38rem;margin-bottom:0;color:var(--ink-soft);font-size:1rem;line-height:1.55}.refresh-button{flex:none}.refresh-button span{display:inline-block;margin-right:.25rem;font-size:1.1rem}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;margin-bottom:2.7rem}.summary-card{min-width:0;padding:1.3rem 1.4rem;border:1px solid var(--line);border-radius:.8rem;background:#fffdf8c7}.summary-card.accent{border-color:#c68a2552;background:#fff8e9}.summary-card p{margin-bottom:.5rem;color:var(--ink-soft);font-size:.75rem;font-weight:750}.summary-card>strong{display:block;margin-bottom:.25rem;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.9rem,4vw,2.65rem);font-weight:500;line-height:1}.summary-card>strong span{color:var(--gold);font-family:inherit;font-size:.75rem;vertical-align:.35rem}.summary-card small{color:#8e877a;font-size:.7rem}.locations{margin-bottom:3.2rem}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:.9rem}.section-heading h2{margin:0;font-size:1.4rem}.location-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.location-card{display:flex;gap:1rem;align-items:center;justify-content:space-between;min-height:5.5rem;padding:1rem 1.1rem;border:1px solid var(--line);border-radius:.8rem;color:var(--ink);background:var(--paper);text-align:left;cursor:pointer;box-shadow:0 8px 28px #45361f0a;transition:.15s ease}.location-card:hover{border-color:#bdb3a4;transform:translateY(-1px)}.location-card.selected{border-color:var(--red);box-shadow:inset 0 0 0 1px var(--red),0 8px 28px #7e281f12}.location-card>span{display:grid;gap:.25rem}.location-card strong{font-size:.9rem}.location-card small{color:var(--ink-soft);font-size:.7rem}.location-score{flex:none;justify-items:end}.location-score strong:after{content:" ★";color:var(--gold);font-size:.72rem}.location-skeleton{display:grid;justify-content:stretch;cursor:default}.reviews-section{padding-top:1.9rem;border-top:1px solid var(--line)}.review-heading{margin-bottom:1rem}.review-heading>div{display:flex;gap:.65rem;align-items:baseline}.review-heading p{margin:0;color:var(--ink-soft);font-size:.72rem}.filters{display:grid;grid-template-columns:minmax(13rem,1fr) repeat(3,auto) auto;gap:.55rem;align-items:center;margin-bottom:1.1rem}.filters select,.search-field{height:2.7rem;border:1px solid var(--line);border-radius:.55rem;color:var(--ink);background:var(--paper);font-size:.78rem}.filters select{max-width:11rem;padding:0 2rem 0 .75rem;cursor:pointer}.search-field{display:flex;gap:.45rem;align-items:center;padding:0 .75rem}.search-field>span:not(.visually-hidden){color:#948c7f;font-size:1.2rem}.search-field input{min-width:0;flex:1;border:0;outline:0;color:var(--ink);background:transparent}.search-field:focus-within,.filters select:focus{border-color:var(--red)}.clear-filters{justify-self:end}.review-list{display:grid;gap:.65rem}.review-card{display:grid;grid-template-columns:2.75rem minmax(0,1fr);gap:1rem;padding:1.25rem;border:1px solid var(--line);border-radius:.8rem;background:var(--paper);box-shadow:0 6px 20px #45361f08}.review-avatar{display:grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:50%;color:#725e38;background:#efe3ca;font-size:.72rem;font-weight:800;overflow:hidden}.review-avatar img{width:100%;height:100%;object-fit:cover}.review-content>header{display:flex;gap:1rem;align-items:start;justify-content:space-between}.review-content>header strong{display:block;margin-bottom:.2rem;font-size:.88rem}.review-content>header p,.review-content>header time{margin:0;color:var(--ink-soft);font-size:.69rem}.review-content>header time{flex:none}.review-meta{display:flex;gap:.7rem;align-items:center;margin:.65rem 0}.stars{display:flex;gap:.08rem;color:#d8d1c5;font-size:.82rem}.stars .filled{color:var(--gold)}.provider{padding:.18rem .38rem;border-radius:.25rem;color:#605b52;background:#f0ede7;font-size:.62rem;font-weight:750}.provider-google{color:#2f5d9d;background:#edf3fb}.provider-yelp{color:#9d2d2d;background:#fbebeb}.review-body{max-width:55rem;margin-bottom:.8rem;color:#454139;font-size:.86rem;line-height:1.62;white-space:pre-wrap}.review-body.muted-copy{color:#928b7f;font-style:italic}.owner-response{margin:.8rem 0;padding:.8rem .9rem;border-left:2px solid #9cb1a3;color:#45594c;background:#f1f5f1}.owner-response strong{display:block;margin-bottom:.25rem;font-size:.67rem;text-transform:uppercase;letter-spacing:.06em}.owner-response p{margin:0;font-size:.78rem;line-height:1.5}.response-needed{display:inline-block;margin-right:.8rem;padding:.24rem .48rem;border-radius:999px;color:#815e18;background:#fff2ce;font-size:.63rem;font-weight:750}.review-link{color:var(--red);font-size:.69rem;font-weight:750;text-decoration:none}.review-link:hover{text-decoration:underline}.message-card{display:grid;justify-items:start;min-height:12rem;padding:2rem;border:1px dashed #cfc6b7;border-radius:.8rem;background:#fffdf8a6}.message-card strong{align-self:end}.message-card p{max-width:30rem;margin:.45rem 0 1rem;color:var(--ink-soft);font-size:.83rem;line-height:1.5}.empty-card{place-items:center;text-align:center}.empty-icon{align-self:end;color:var(--gold);font-size:1.5rem}.error-card{border-color:#a5362a59;background:#fff7f3}.pagination{display:flex;gap:1rem;align-items:center;justify-content:center;margin-top:1.2rem}.pagination span{color:var(--ink-soft);font-size:.74rem}.pagination .secondary-button{min-height:2.4rem;font-size:.75rem}.site-footer{display:flex;justify-content:space-between;width:min(100% - 2.2rem,74rem);margin:0 auto;padding:1.4rem 0 2.5rem;border-top:1px solid var(--line);color:#938b7d;font-size:.68rem}.skeleton-card>div:last-child{display:grid;align-content:start}.skeleton{display:block;border-radius:.3rem;background:linear-gradient(90deg,#eee9df 25%,#f8f4ec,#eee9df 75%);background-size:200% 100%;animation:shimmer 1.3s ease-in-out infinite}.skeleton-avatar{width:2.75rem;height:2.75rem;border-radius:50%}.skeleton-line{width:min(100%,36rem);height:.7rem;margin-bottom:.75rem}.skeleton-line.medium{width:68%}.skeleton-line.short{width:35%}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{to{background-position:-200% 0}}@media (max-width: 860px){.topbar{gap:1rem}.topbar nav,.account-email{display:none}.filters{grid-template-columns:1fr 1fr}.search-field{grid-column:1 / -1}.filters select{width:100%;max-width:none}.clear-filters{justify-self:start}}@media (max-width: 620px){.main-content{width:min(100% - 1.4rem,74rem);padding-top:2.2rem}.wordmark>span:last-child{font-size:.92rem}.page-heading{display:grid;gap:1.25rem}.page-heading h1{font-size:2.6rem}.refresh-button{justify-self:start}.summary-grid,.location-grid{grid-template-columns:1fr}.summary-grid{gap:.55rem}.summary-card{display:grid;grid-template-columns:1fr auto;align-items:center;padding:1rem}.summary-card p{margin:0}.summary-card>strong{grid-row:1 / 3;grid-column:2;margin:0;font-size:2rem}.summary-card small{grid-row:2}.review-heading>div{display:block}.review-heading p{margin-top:.25rem}.filters{grid-template-columns:1fr}.search-field{grid-column:auto}.review-card{grid-template-columns:2.25rem minmax(0,1fr);gap:.75rem;padding:1rem .85rem}.review-avatar{width:2.25rem;height:2.25rem}.review-content>header{display:block}.review-content>header time{display:block;margin-top:.35rem}.site-footer{width:min(100% - 1.4rem,74rem)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
