.carto-intro{max-width:70ch;color:#3a3a3a}
.carto-tools{margin:22px 0 10px}
.allbtn{display:inline-block;background:var(--green);color:#fff;border:none;font-weight:700;
  padding:10px 18px;border-radius:6px;cursor:pointer;font-size:.95rem}
.allbtn.off{background:#fff;color:var(--ink);border:1px solid var(--line)}
.stages{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.stage-btn{background:var(--soft);border:1px solid var(--line);border-radius:6px;padding:9px 15px;
  cursor:pointer;font-weight:600;font-size:.92rem;color:var(--ink)}
.stage-btn.open{background:#33352f;color:#fff;border-color:#33352f}
.panel{display:none;margin:12px 0 4px;border:1px solid var(--line);border-radius:8px;padding:14px 16px;background:#fff}
.panel.show{display:block}
.panel h4{margin:0 0 8px;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.chips{display:flex;flex-wrap:wrap;gap:7px}
.chip{background:#f0f2e6;border:1px solid #dbe2c2;color:#4a5a1e;border-radius:20px;padding:6px 13px;
  cursor:pointer;font-size:.86rem;line-height:1.2}
.chip:hover{background:#e6ebd2}
.chip.active{background:var(--green);color:#fff;border-color:var(--green)}
.chip.parent{font-weight:700}
.sub{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line);display:none}
.sub.show{display:block}
.carto-count{margin:20px 0 12px;font-weight:700;color:var(--muted)}
.reset{margin-left:10px;font-weight:600;font-size:.85rem;color:#4b7bb5;background:none;border:none;cursor:pointer}
.grid{list-style:none;margin:0;padding:0;display:grid;gap:16px;
  grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}
.mcard{border:1px solid var(--line);border-radius:9px;padding:14px;display:flex;flex-direction:column;
  align-items:center;text-align:center;gap:8px;background:#fff}
.mcard img{width:100%;height:80px;object-fit:contain}
.mcard .co{font-weight:700;font-size:.9rem}
.mcard .ct{font-size:.78rem;color:var(--muted)}
.mcard a.site{font-size:.8rem;font-weight:600;text-decoration:none;color:var(--green-d);margin-top:auto}
.mcard.hide{display:none}
.empty{color:var(--muted);padding:30px 0}
