:root{color:#241713;font-synthesis:none;text-rendering:optimizelegibility;--charcoal:#120f0d;--charcoal-2:#211713;--crust:#4a1713;--meat:#b73736;--meat-dark:#7d201f;--fat:#f0bf68;--salt:#fff7ec;--salt-2:#f7ead8;--smoke:#6f6258;--herb:#237261;--blue:#2f6892;--line:#4a171329;--shadow:0 18px 44px #25110c2e;background:#f6efe4;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:linear-gradient(110deg,#120f0de6 0%,#4a1713c7 42%,#f6efe4d1 100%),url(/steak-texture.jpg) 50%/cover fixed,#f6efe4;min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}a{color:inherit}.app-shell{background:radial-gradient(circle at 58% 12%,#f0bf6833,#0000 26%),linear-gradient(90deg,#120f0df5,#120f0d85 45%,#f6efe433);grid-template-columns:minmax(360px,420px) 1fr;min-height:100vh;display:grid}.sidebar{background:linear-gradient(#fff7ecfa,#f7ead8f2),#fff7ec;border-right:1px solid #fff7ec4d;flex-direction:column;gap:16px;height:100vh;padding:18px;display:flex;overflow:auto;box-shadow:20px 0 44px #120f0d42}.brand-bar,.map-toolbar,.dock-header,.modal-header,.section-title,.filter-heading,.card-top,.card-title-row,.external-row,.toolbar-actions{align-items:center;display:flex}.brand-bar{gap:12px}.brand-mark{object-fit:cover;background:#3a140f;border:1px solid #fff7ec57;border-radius:14px;width:54px;height:54px;display:block;box-shadow:0 14px 28px #7d201f47,0 4px 10px #120f0d2e}.eyebrow{color:var(--meat-dark);letter-spacing:0;text-transform:uppercase;margin:0;font-size:12px;font-weight:800}h1,h2,h3,p{margin-top:0}h1{color:var(--charcoal);margin-bottom:0;font-size:29px;line-height:1.1}h2{color:var(--salt);text-shadow:0 2px 14px #120f0d47;margin-bottom:0;font-size:25px;line-height:1.2}h3{color:var(--charcoal);margin-bottom:0;font-size:18px;line-height:1.25}.search-panel,.result-panel,.submission-modal,.detail-dock{background:linear-gradient(180deg, #fffaf2fa, #f7ead8f5), var(--salt);box-shadow:var(--shadow);border:1px solid #7d201f2e;border-radius:8px}.member-panel{background:#fffaf2c7;border:1px solid #7d201f24;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:12px;display:flex}.member-panel div{gap:3px;min-width:0;display:grid}.member-panel strong{color:var(--charcoal);font-size:13px}.member-panel span{color:#3a2119b8;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:800;overflow:hidden}.member-panel small{color:#7d201f;font-size:12px;font-weight:900}.member-actions{flex-wrap:wrap;flex:none;justify-content:flex-end;gap:6px;display:inline-flex}.member-panel button,.text-action{color:#7d201f;cursor:pointer;background:#ffffffc7;border:1px solid #7d201f29;border-radius:8px;justify-content:center;align-items:center;gap:5px;min-height:34px;font-size:13px;font-weight:900;display:inline-flex}.member-panel button.active{color:#fff9ef;background:#7d201f;border-color:#7d201f61}.search-panel{padding:14px}.search-box{width:100%;height:44px;color:var(--crust);background:#fffaf2;border:1px solid #7d201f38;border-radius:8px;align-items:center;gap:8px;padding:0 12px;display:flex;box-shadow:inset 0 1px #fffc}.search-box input{width:100%;min-width:0;color:var(--charcoal);background:0 0;border:0;outline:0}.search-box input::placeholder{color:#4a17138a}.filter-block{margin-top:16px}.filter-heading{color:var(--crust);gap:6px;margin-bottom:8px;font-size:13px;font-weight:900}.segmented,.tier-row{flex-wrap:wrap;gap:7px;display:flex}.segmented button,.tier-row button,.section-title button,.external-row a,.primary-action{color:#2c1712;background:#fffaf2;border:1px solid #7d201f33;border-radius:8px;justify-content:center;align-items:center;gap:6px;min-height:36px;font-size:13px;font-weight:900;text-decoration:none;display:inline-flex;box-shadow:inset 0 1px #ffffffc2}.segmented button,.tier-row button{padding:0 10px}.segmented button:hover,.tier-row button:hover,.external-row a:hover,.icon-button:hover{border-color:#b737367a;transform:translateY(-1px)}.segmented button.active,.tier-row button.active{color:var(--salt);background:linear-gradient(135deg, var(--meat), var(--meat-dark) 60%, var(--crust)), var(--meat);border-color:var(--meat-dark)}.tier-row .tier-strict.active,.tier-badge.tier-strict{color:#fff9ef;background:linear-gradient(135deg,#d94b43,#8b1f1e);border-color:#8b1f1e}.tier-row .tier-friendly.active,.tier-badge.tier-friendly{color:#fff9ef;background:linear-gradient(135deg,#2e8a73,#195b4e);border-color:#195b4e}.tier-row .tier-keto.active,.tier-badge.tier-keto{color:#fff9ef;background:linear-gradient(135deg,#3d7ea7,#264f75);border-color:#264f75}.data-source{color:#5b392e;background:#fffaf2d1;border:1px solid #7d201f1f;border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:9px 11px;font-size:12px;font-weight:900;display:flex}.data-source a{color:inherit;align-items:center;gap:5px;text-decoration:none;display:inline-flex}.data-source a:hover{text-decoration:underline}.data-source.data-sheet{color:#195b4e;background:#2372611a;border-color:#23726133}.data-source.data-loading{color:#244f75;background:#2f689214;border-color:#2f68922e}.data-source.data-failed{color:#7d201f;background:#b7373614;border-color:#b7373633}.result-panel{flex-direction:column;flex:1;min-height:0;padding:14px;display:flex}.section-title{color:var(--crust);justify-content:space-between;gap:12px;margin-bottom:10px;font-weight:900}.section-title button{color:var(--salt);background:linear-gradient(135deg,#cf413c,#811f1e);border-color:#811f1e;padding:0 12px}.place-list{flex-direction:column;gap:12px;min-height:0;padding:2px 4px 12px 2px;display:flex;overflow:auto}.place-card{text-align:left;background:linear-gradient(135deg,#fffaf2fa,#f7ead8eb),#fff8ee;border:1px solid #7d201f29;border-radius:8px;flex:none;align-content:start;gap:8px;width:100%;min-height:0;padding:14px;transition:border-color .16s,transform .16s,box-shadow .16s,background .16s;display:grid;overflow:visible;box-shadow:0 10px 22px #4a171314}.place-card:hover,.place-card.selected{background:linear-gradient(135deg,#fffaf2,#ffeed3f5),#fff8ee;border-color:#b73736b8;transform:translateY(-1px);box-shadow:0 16px 32px #4a171329}.place-card.selected{outline:2px solid #f0bf689e}.card-top,.card-title-row{justify-content:space-between;gap:8px}.card-badge-row{flex:none;align-items:center;gap:6px;display:inline-flex}.favorite-indicator{color:#b73736;background:#fffaf2e6;border:1px solid #7d201f24;border-radius:50%;place-items:center;width:24px;height:24px;display:inline-grid}.category-chip,.demo-chip,.tier-badge,.item-row span,.tips-row span{border-radius:8px;align-items:center;font-size:12px;font-weight:900;display:inline-flex}.category-chip{color:var(--crust);background:#4a171317;gap:5px;padding:5px 8px}.category-chip.cat-dining{color:#7d201f;background:#b7373621}.category-chip.cat-butcher{color:#4a1713;background:#4a171324}.category-chip.cat-market{color:#195b4e;background:#23726121}.category-chip.cat-bakery{color:#6f4304;background:#f0bf684d}.category-chip.cat-specialty{color:#67211d;background:#7d201f21}.category-chip.cat-clinic{color:#244f75;background:#2f689224}.category-chip.cat-online{color:#4d4039;background:#6f625824}.demo-chip{color:#4e2d05;background:#f0bf686b;padding:4px 7px}.tier-badge{justify-content:center;min-width:28px;padding:5px 8px}.place-card h3{margin:0}.place-card p{color:#735247;margin:0;font-size:13px;font-weight:700}.source-badge-row,.tag-row{flex-wrap:wrap;gap:6px;display:flex}.source-badge-row{margin:0}.source-badge-row span,.diet-tag{color:#604034;white-space:normal;background:#ffffff9e;border:1px solid #7d201f14;border-radius:8px;align-items:center;min-height:24px;padding:4px 7px;font-size:11px;font-weight:900;line-height:1.2;display:inline-flex}.source-badge-row .clinic-badge{color:#244f75;background:#2f68921a;border-color:#2f689229}.item-row,.tips-row{flex-wrap:wrap;gap:6px;min-width:0;display:flex}.item-row span,.tips-row span{color:#40231b;background:#ffffffb8;border:1px solid #7d201f14;padding:5px 8px}.empty-state{color:#7b5d51;text-align:center;place-items:center;gap:8px;min-height:180px;display:grid}.map-workspace{background:radial-gradient(circle at 70% 12%, #f0bf6824, transparent 30%), linear-gradient(155deg, #311711f0, #120f0df5 58%, #4a1713e0), var(--charcoal);grid-template-rows:auto 1fr auto;min-width:0;height:100vh;padding:18px;display:grid;position:relative;overflow:hidden}.map-workspace:before{content:"";pointer-events:none;opacity:.38;background-color:#0000;background-image:linear-gradient(90deg,#120f0d33 1px,#0000 1px),linear-gradient(#fff7ec14 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:42px 42px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:absolute;inset:0}.map-toolbar{z-index:3;justify-content:space-between;gap:16px;margin-bottom:14px}.map-toolbar .eyebrow,.detail-dock .eyebrow{color:#ffd589}.toolbar-actions{gap:8px}.dock-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:inline-flex}.favorite-button{color:#7d201f;cursor:pointer;background:#fffaf2e0;border:1px solid #7d201f29;border-radius:8px;justify-content:center;align-items:center;gap:6px;min-height:32px;padding:0 10px;font-size:12px;font-weight:950;display:inline-flex}.favorite-button.active{color:#b73736;background:#b737361f;border-color:#b737366b}.icon-button{width:42px;height:42px;color:var(--salt);background:#120f0dbd;border:1px solid #fff7ec33;border-radius:8px;place-items:center;display:grid;box-shadow:0 12px 26px #120f0d2e}.map-stage{background:linear-gradient(135deg,#d8ded4,#bfc9bd 52%,#e6dfd2),#d8ded4;border:1px solid #fff7ec3d;border-radius:8px;min-height:420px;position:relative;overflow:hidden;box-shadow:0 28px 62px #120f0d61}.kakao-map,.fallback-map{position:absolute;inset:0}.kakao-map{opacity:0;z-index:2}.kakao-map.is-ready{opacity:1}.fallback-map{background:radial-gradient(circle at 28% 26%,#fff7ec85,#0000 18%),radial-gradient(circle at 72% 62%,#b737361f,#0000 20%),linear-gradient(135deg,#e7e1d5 0%,#cad2c6 48%,#d7dfd0 100%);overflow:hidden}.fallback-map:before{content:"";opacity:.72;pointer-events:none;background:linear-gradient(25deg,#0000 42%,#5f6f6566 43% 45%,#0000 46%),linear-gradient(145deg,#0000 34%,#5f6f6552 35% 37%,#0000 38%),linear-gradient(78deg,#0000 58%,#b737362e 59% 61%,#0000 62%),linear-gradient(112deg,#0000 22%,#f0bf682e 23% 25%,#0000 26%);position:absolute;inset:-14%;transform:rotate(-3deg)}.fallback-map:after{content:"";pointer-events:none;background:linear-gradient(90deg,#ffffff47 1px,#0000 1px) 0 0/112px 112px,linear-gradient(#4a171314 1px,#0000 1px) 0 0/112px 112px,radial-gradient(circle at 48% 46%,#fff7ec2e,#0000 42%);position:absolute;inset:0}.map-grid{background-color:#0000;background-image:linear-gradient(90deg,#4a171326 1px,#0000 1px),linear-gradient(#4a17131f 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:58px 58px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:absolute;inset:-40px;transform:rotate(-4deg)}.map-marker,.kakao-custom-marker{color:#fff9ef;border:2px solid #fff6e8;border-radius:50%;place-items:center;width:34px;height:34px;font-size:13px;font-weight:950;display:grid;box-shadow:0 10px 22px #120f0d57}.map-marker{z-index:2;position:absolute;transform:translate(-50%,-50%)}.kakao-custom-marker{padding:0}.map-marker svg,.kakao-custom-marker svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.4px;pointer-events:none;width:17px;height:17px}.map-marker.selected,.kakao-custom-marker.selected{outline:4px solid #f0bf689e;width:44px;height:44px}.map-marker.selected svg,.kakao-custom-marker.selected svg{width:21px;height:21px}.map-marker.cat-dining,.kakao-custom-marker.cat-dining{background:linear-gradient(135deg,#d94b43,#8b1f1e);border-color:#7d201f}.map-marker.cat-butcher,.kakao-custom-marker.cat-butcher{background:linear-gradient(135deg,#8b2f2a,#4a1713);border-color:#4a1713}.map-marker.cat-market,.kakao-custom-marker.cat-market{background:linear-gradient(135deg,#2e8a73,#195b4e);border-color:#195b4e}.map-marker.cat-bakery,.kakao-custom-marker.cat-bakery{background:linear-gradient(135deg,#e0a43f,#8c5f0d);border-color:#8c5f0d}.map-marker.cat-specialty,.kakao-custom-marker.cat-specialty{background:linear-gradient(135deg,#c76834,#7d201f);border-color:#7d201f}.map-marker.cat-clinic,.kakao-custom-marker.cat-clinic{background:linear-gradient(135deg,#4f8fba,#244f75);border-color:#244f75}.map-marker.cat-online,.kakao-custom-marker.cat-online{background:linear-gradient(135deg,#7b6d63,#3a302b);border-color:#3a302b}.map-status{z-index:2;color:#3a2119;background:#fffaf2e6;border:1px solid #fff7ec33;border-radius:8px;align-items:center;gap:7px;padding:9px 12px;font-size:13px;font-weight:900;display:inline-flex;position:absolute;bottom:14px;right:14px}.detail-dock{z-index:3;background:linear-gradient(135deg, #fffaf2fa, #f7ead8f0), var(--salt);margin-top:14px;padding:16px;position:relative}.detail-dock h3{color:var(--charcoal)}.dock-header{justify-content:space-between;gap:12px}.dock-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0;display:grid}.info-line{color:#3a2119;background:#ffffffad;border:1px solid #7d201f14;border-radius:8px;align-items:flex-start;gap:8px;min-height:46px;padding:10px;font-size:13px;font-weight:800;display:flex}.info-line svg{color:var(--meat);flex:none}.contact-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 14px;display:grid}.schedule-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 14px;display:grid}.contact-item{color:#3a2119;background:#ffffffb3;border:1px solid #7d201f1a;border-radius:8px;align-items:center;gap:9px;min-height:54px;padding:10px;text-decoration:none;display:flex}.contact-item svg{color:var(--meat);flex:none}.contact-item span{gap:2px;min-width:0;display:grid}.contact-item strong,.contact-item small{text-overflow:ellipsis;overflow:hidden}.contact-item strong{white-space:nowrap;color:#7d201f;font-size:12px}.contact-item small{-webkit-line-clamp:2;word-break:break-all;color:#2f1d18;-webkit-box-orient:vertical;font-size:13px;font-weight:900;display:-webkit-box}.contact-item.is-empty{color:#3a21198a;background:#ffffff6b}.contact-item.is-empty small,.contact-item.is-empty svg{color:#3a211980}.external-row{gap:8px;margin-top:14px}.external-row a{padding:0 12px}.review-panel{border-top:1px solid #7d201f1f;gap:12px;margin-top:16px;padding-top:14px;display:grid}.review-summary{justify-content:space-between;align-items:center;gap:12px;display:flex}.review-summary div:first-child{gap:3px;display:grid}.review-summary strong{color:var(--charcoal);font-size:15px}.review-summary span,.review-empty{color:#3a2119b8;font-size:13px;font-weight:800}.star-score,.rating-picker,.review-item span{color:#b73736;letter-spacing:0}.rating-picker{gap:2px;display:inline-flex}.rating-picker button{color:#7d201f4d;cursor:pointer;background:0 0;border:0;width:32px;height:32px;font-size:24px;line-height:1}.rating-picker button.active{color:#b73736}.review-form{gap:9px;display:grid}.review-form textarea,.auth-form input{width:100%;color:var(--charcoal);font:inherit;background:#ffffffc7;border:1px solid #7d201f29;border-radius:8px}.review-form textarea{resize:vertical;min-height:84px;padding:10px}.review-list{gap:8px;display:grid}.review-item{background:#ffffff9e;border:1px solid #7d201f1a;border-radius:8px;padding:10px}.review-item div{justify-content:space-between;align-items:center;gap:10px;display:flex}.review-item strong{color:#3a2119;font-size:13px}.review-item p{color:#3a2119d6;margin:7px 0 0;font-size:13px;line-height:1.45}.auth-form{gap:12px;display:grid}.auth-form label{color:var(--charcoal);gap:6px;font-size:13px;font-weight:900;display:grid}.auth-form input{min-height:42px;padding:0 10px}.text-action{background:0 0}.tag-row{margin:0 0 12px}.diet-tag.tag-needs_verification{color:#7d201f;background:#b737361a;border-color:#b737362e}.diet-tag.tag-functional_medicine,.diet-tag.tag-keto{color:#244f75;background:#2f68921a;border-color:#2f689229}.diet-tag.tag-carnivore,.diet-tag.tag-seed_oil_free{color:#67211d;background:#7d201f14;border-color:#7d201f26}.diet-tag.tag-sourdough,.diet-tag.tag-gluten_free{color:#6f4304;background:#f0bf6833;border-color:#e0a43f38}.diet-tag.custom-tag{color:#4d4039;background:#6f62581f;border-color:#6f62582e}.detail-note{color:#3a2119;background:#ffffff9e;border:1px solid #7d201f1a;border-radius:8px;margin-top:10px;padding:12px}.detail-note strong{color:var(--crust);align-items:center;gap:6px;font-size:13px;font-weight:950;display:inline-flex}.detail-note p{color:#604034;margin:7px 0 0;font-size:13px;font-weight:750;line-height:1.45}.caution-note{background:#b7373614;border-color:#b7373633}.medical-note{background:#2f689217;border-color:#2f689233}.modal-backdrop{z-index:10;background:linear-gradient(#120f0dad,#120f0dc2),url(/steak-texture.jpg) 50%/cover;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.submission-modal{width:min(680px,100%);max-height:min(760px,100vh - 36px);padding:18px;overflow:auto}.modal-header{justify-content:space-between;gap:12px;margin-bottom:16px}.submission-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.submission-form label{color:#382119;flex-direction:column;gap:7px;font-size:13px;font-weight:900;display:flex}.submission-form input,.submission-form select,.submission-form textarea{color:#241713;background:#fffaf2;border:1px solid #7d201f2e;border-radius:8px;outline:none;width:100%}.submission-form input,.submission-form select{height:42px;padding:0 11px}.submission-form textarea{resize:vertical;padding:11px}.wide{grid-column:1/-1}.primary-action{min-height:44px;color:var(--salt);background:linear-gradient(135deg,#cf413c,#811f1e);border-color:#811f1e}.toast{z-index:20;max-width:min(440px,100vw - 32px);color:var(--salt);background:linear-gradient(135deg, var(--crust), var(--charcoal));border:1px solid #fff7ec2e;border-radius:8px;padding:12px 16px;font-size:14px;font-weight:900;position:fixed;bottom:22px;left:50%;transform:translate(-50%);box-shadow:0 16px 36px #120f0d57}@media (width<=1020px){.app-shell{grid-template-columns:minmax(0,1fr)}.sidebar{border-bottom:1px solid #120f0d29;border-right:0;height:auto;max-height:none}.result-panel{max-height:360px}.map-workspace{height:auto;min-height:720px}}@media (width<=720px){body{overflow-x:hidden}.app-shell,.sidebar,.map-workspace,.detail-dock{width:100%;min-width:0;max-width:100vw}.sidebar{overflow-x:hidden}.search-panel,.result-panel,.detail-dock{width:calc(100vw - 48px);min-width:0;max-width:calc(100vw - 48px)}.segmented,.tier-row{min-width:0}.sidebar,.map-workspace{padding:12px}.segmented button,.tier-row button{flex:100%;min-width:0}.section-title{flex-wrap:wrap}.section-title button{flex:none}.dock-grid,.contact-grid,.schedule-grid,.submission-form{grid-template-columns:1fr}.wide{grid-column:auto}.map-toolbar,.dock-header{flex-direction:column;align-items:flex-start}.dock-actions{justify-content:flex-start}.map-stage{min-height:380px}}
