:root{
  --bg:#f4f7ef; --card:#ffffff; --ink:#1f2a1f; --muted:#63705f;
  --line:#dfe7d8; --accent:#5f8f45; --accent2:#eaf4df; --shadow:0 18px 45px rgba(37,54,31,.12);
}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:linear-gradient(180deg,#f8fbf4,#edf5e7);color:var(--ink)}
.top{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:14px 18px;background:rgba(255,255,255,.82);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.brand{display:flex;gap:12px;align-items:center}.brand .logo{width:42px;height:42px;border-radius:14px;background:var(--accent2);display:grid;place-items:center;font-size:24px}.brand span{display:block;color:var(--muted);font-size:13px}
main{max-width:1120px;margin:auto;padding:22px}
.hero{display:grid;grid-template-columns:1.5fr .9fr;gap:22px;align-items:stretch}
.heroText,.todayCard,.filters,.resultsWrap,dialog{background:var(--card);border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow)}
.heroText{padding:34px;background:radial-gradient(circle at 100% 0,#e2f2d4,transparent 38%),#fff}
.badge{display:inline-block;background:var(--accent2);color:#3f6d2d;padding:8px 12px;border-radius:999px;font-weight:700;font-size:13px}
h1{font-size:clamp(40px,7vw,72px);line-height:.95;margin:18px 0 12px} h2,h3{margin:0 0 10px}
.hero p{font-size:18px;color:var(--muted)}
.searchBox{margin-top:26px;padding:16px;border:1px solid var(--line);border-radius:20px;background:#fbfdf8}
label{display:block;font-weight:800;margin-bottom:8px}.row{display:flex;gap:10px}input{flex:1;border:1px solid var(--line);border-radius:14px;padding:13px 14px;font-size:16px}
button{border:0;border-radius:14px;padding:12px 16px;font-weight:800;cursor:pointer}.primary{background:var(--accent);color:white}.ghost{background:#eef4e9;color:#315322}.hidden{display:none}
small{display:block;color:var(--muted);margin-top:8px}.todayCard{padding:28px;display:flex;flex-direction:column;justify-content:center;text-align:center}.sun{font-size:62px}.todayCard p{min-height:54px}
.filters{margin-top:22px;padding:22px}.filterBlock{margin-bottom:20px}.chips{display:flex;gap:10px;flex-wrap:wrap}.chip{background:#f1f5ec;color:#344530;border:1px solid var(--line)}.chip.active{background:#dff0d2;border-color:#9ec48a;color:#254e17}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px}
.resultsWrap{margin-top:22px;padding:22px}.sectionTitle{display:flex;justify-content:space-between;gap:12px;align-items:end}.sectionTitle p{color:var(--muted)}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px}
.card{border:1px solid var(--line);border-radius:24px;overflow:hidden;background:#fff;display:flex;flex-direction:column}
.photo{height:150px;background:linear-gradient(135deg,#b9d5a8,#eef6e9);display:grid;place-items:center;font-size:56px}
.cardBody{padding:16px}.meta{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.pill{font-size:12px;padding:6px 9px;background:#f0f5eb;border-radius:999px;color:#41563b;font-weight:700}
.card p{color:var(--muted)}.cardActions{display:flex;gap:8px;margin-top:auto;padding:0 16px 16px}.cardActions button,.cardActions a{flex:1;text-align:center;text-decoration:none;border-radius:14px;padding:11px 10px;font-weight:800}.cardActions a{background:#eef4e9;color:#315322}
dialog{max-width:760px;width:calc(100% - 28px);border:0;padding:0}dialog::backdrop{background:rgba(14,22,11,.45)}.close{position:absolute;right:12px;top:12px;border-radius:50%;font-size:22px;background:#fff}.detail{padding:26px}.detailHero{height:210px;border-radius:22px;background:linear-gradient(135deg,#b9d5a8,#eef6e9);display:grid;place-items:center;font-size:80px;margin-bottom:18px}
.infoGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.info{background:#f6faf2;border:1px solid var(--line);border-radius:16px;padding:12px}
footer{text-align:center;color:var(--muted);padding:28px}
@media(max-width:850px){.hero{grid-template-columns:1fr}.cards{grid-template-columns:1fr}.row{flex-direction:column}.sectionTitle{display:block}main{padding:14px}.heroText{padding:24px}.top{align-items:flex-start}.brand span{max-width:220px}.infoGrid{grid-template-columns:1fr}}
