:root{--bg: #faf7f2;--card: #ffffff;--ink: #201a17;--muted: #8a7f77;--line: #ece5dd;--accent: #e8552a;--accent-ink: #ffffff;--star: #f2a900;--shadow: 0 1px 3px rgba(40, 25, 15, .08), 0 8px 24px rgba(40, 25, 15, .05);color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font:15px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}a{color:inherit;text-decoration:none}.app-shell{max-width:560px;margin:0 auto;min-height:100%;display:flex;flex-direction:column;background:var(--bg)}.topbar{position:sticky;top:0;z-index:10;padding:14px 18px;background:var(--bg);border-bottom:1px solid var(--line)}.brand{font-weight:800;font-size:20px;letter-spacing:-.02em;color:var(--accent)}.badge{position:absolute;top:-6px;right:-8px;background:var(--accent);color:#fff;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:999px;display:grid;place-items:center;padding:0 3px}.content{flex:1;padding:16px 16px 90px}.tabbar{position:fixed;bottom:0;left:0;right:0;max-width:560px;margin:0 auto;display:grid;grid-template-columns:repeat(6,1fr);background:var(--card);border-top:1px solid var(--line);box-shadow:var(--shadow)}.tab{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0;color:var(--muted);font-size:11px}.tab.active{color:var(--accent)}.tab-icon{font-size:20px;line-height:1}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:14px;margin-bottom:14px}.row{display:flex;align-items:center;gap:10px}.spread{justify-content:space-between}.muted{color:var(--muted)}.center{min-height:60vh;display:grid;place-items:center;text-align:center}.small{font-size:13px}.avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;background:var(--line);display:grid;place-items:center;font-weight:700;color:var(--muted)}.thumb{width:100%;height:180px;object-fit:cover;border-radius:12px;background:var(--line)}.stars{color:var(--star);letter-spacing:1px}button,.btn{font:inherit;cursor:pointer;border-radius:999px;border:1px solid var(--line);background:var(--card);padding:9px 16px;color:var(--ink)}.btn-primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}.btn-block{display:block;width:100%;text-align:center}button:disabled{opacity:.5;cursor:default}input,textarea{font:inherit;width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink)}textarea{resize:vertical;min-height:80px}label{display:block;font-weight:600;font-size:13px;margin:12px 0 6px}.chip{display:inline-block;font-size:12px;padding:3px 9px;border-radius:999px;background:#f4eee7;color:var(--muted);margin-right:6px}.chips-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:4px}.chips-row .chip{margin:0}.chip-btn{cursor:pointer;border:1px solid var(--line);font:inherit;font-size:12px}.chip-on{cursor:pointer;background:var(--accent);color:#fff;border:1px solid var(--accent);font:inherit;font-size:12px;margin:0}.filter-bar{display:flex;gap:6px;overflow-x:auto;padding-bottom:8px;margin-bottom:6px;-webkit-overflow-scrolling:touch}.filter-bar .chip,.filter-bar .chip-on{white-space:nowrap;flex:0 0 auto}.list-item{padding:12px 0;border-bottom:1px solid var(--line);cursor:pointer}.list-item:last-child{border-bottom:none}.section-title{font-weight:800;font-size:17px;margin:18px 2px 10px}.error{color:#b23b1e;font-size:13px}.map-wrap{height:62vh;border-radius:16px;overflow:hidden;border:1px solid var(--line)}.segmented{display:flex;gap:4px;background:#f1e9e0;padding:4px;border-radius:999px;margin-bottom:14px}.seg{flex:1;border:none;background:transparent;border-radius:999px;padding:8px 0;color:var(--muted);font-weight:600}.seg.on{background:var(--card);color:var(--accent);box-shadow:var(--shadow)}.gallery{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:2px}.gallery .thumb{height:200px}.rating-input{display:flex;gap:6px;font-size:30px;color:var(--line)}.rating-input .on{color:var(--star)}.rating-input span{cursor:pointer}
