:root{--green:#2f6b4f;--green2:#3f8a65;--mint:#e9f5d8;--bg:#f6f8f3;--ink:#1f2a24;--mut:#6b7a70;--line:#e2e8df;--sun:#f2b33d}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);color:var(--ink);font:16px/1.5 'Plus Jakarta Sans',system-ui,sans-serif}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}
.top{background:#fff;border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;gap:16px;height:64px}
.logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:20px;color:var(--green)}
.tag{color:var(--mut);font-size:14px;margin-left:auto}
.hero{padding:36px 0 18px}
.hero h1{font-size:38px;font-weight:800;letter-spacing:-.02em}
.hero p{color:var(--mut);margin:4px 0 20px}
.search{display:flex;align-items:center;gap:10px;background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:0 16px;height:52px;max-width:560px}
.search input{border:none;outline:none;font:inherit;font-size:16px;flex:1;background:none}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.chip{border:1.5px solid var(--line);background:#fff;border-radius:999px;padding:7px 14px;font:600 14px 'Plus Jakarta Sans',sans-serif;color:var(--ink);cursor:pointer}
.chip.on{background:var(--green);border-color:var(--green);color:#fff}
.count{color:var(--mut);font-size:14px;margin:6px 0 12px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;padding-bottom:60px}
.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px 20px;cursor:pointer;transition:box-shadow .15s}
.card:hover{box-shadow:0 8px 24px rgba(31,42,36,.08)}
.card h2{font-size:19px;font-weight:700}
.hood{color:var(--mut);font-size:14px}
.score{float:right;background:var(--mint);color:var(--green);font-weight:800;border-radius:10px;padding:4px 10px;font-size:15px}
.metrics{margin:14px 0 12px;display:grid;gap:7px}
.m{display:grid;grid-template-columns:96px 1fr 30px;align-items:center;gap:10px;font-size:13px;color:var(--mut)}
.m b{color:var(--ink);font-weight:700;text-align:right}
.track{height:8px;background:#eef2ec;border-radius:4px;overflow:hidden}
.track i{display:block;height:100%;background:var(--green2);border-radius:4px}
.tags{display:flex;flex-wrap:wrap;gap:6px}
.t{font-size:12px;font-weight:600;color:var(--green);background:#f0f6ea;border-radius:6px;padding:3px 8px}
.rc{font-size:13px;color:var(--mut);margin-top:10px}
.empty{color:var(--mut);padding:40px 0}
.drawer{position:fixed;inset:0;background:rgba(31,42,36,.35);display:flex;justify-content:flex-end}
.drawer[hidden]{display:none}
.panel{width:min(480px,100%);height:100%;overflow:auto;background:#fff;padding:28px 28px 40px;position:relative}
.close{position:absolute;right:18px;top:14px;border:none;background:none;font-size:30px;color:var(--mut);cursor:pointer}
.panel h2{font-size:24px;font-weight:800;margin-right:30px}
.rev{border-top:1px solid var(--line);padding:12px 0}
.rev .who{font-weight:700}
.rev .sc{font-size:13px;color:var(--mut)}
.form{margin-top:18px;border-top:2px solid var(--line);padding-top:18px;display:grid;gap:12px}
.form h3{font-size:18px}
.form input,.form textarea{font:inherit;border:1.5px solid var(--line);border-radius:12px;padding:10px 12px;outline:none}
.rate{display:flex;align-items:center;justify-content:space-between}
.rate span{font-weight:600}
.stars button{border:none;background:none;font-size:26px;line-height:1;color:#d9ded6;cursor:pointer;padding:0 2px}
.stars button.on{color:var(--sun)}
.form button[type=submit]{background:var(--green);color:#fff;border:none;border-radius:12px;padding:12px;font:700 16px 'Plus Jakarta Sans',sans-serif;cursor:pointer}
.msg{color:var(--green);font-weight:600;min-height:20px}
@media (max-width:600px){.hero h1{font-size:30px}.tag{display:none}.grid{grid-template-columns:1fr}}
