/* YYC租房 2.1.0 product-level components. New work should use these tokens/classes instead of version-suffixed one-offs. */
body{font-family:var(--yyc-font)}
.ds-card{background:var(--yyc-white);border:1px solid var(--yyc-line);border-radius:var(--yyc-r-lg);box-shadow:var(--yyc-shadow-sm)}
.ds-pill{display:inline-flex;align-items:center;gap:.4rem;border:1px solid var(--yyc-green-200);border-radius:var(--yyc-r-pill);padding:.35rem .65rem;background:#fff;color:var(--yyc-green-800);font-weight:750}
.ds-status{display:inline-flex;align-items:center;border-radius:var(--yyc-r-pill);padding:.28rem .55rem;font-size:.72rem;font-weight:800;background:var(--yyc-green-100);color:var(--yyc-green-800)}
.ds-status.failed,.ds-status.dead{background:#fff0ed;color:#8a3029}.ds-status.queued,.ds-status.processing,.ds-status.sending{background:#fff6df;color:#765707}.ds-status.succeeded,.ds-status.sent,.ds-status.active{background:#e9f6ee;color:#1d6946}
.ds-grid{display:grid;gap:var(--yyc-space-4)}
.ds-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.ds-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.admin-ops-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:14px 0}.admin-ops-card{padding:16px;border:1px solid var(--yyc-line);border-radius:14px;background:#fff}.admin-ops-card h3{margin:0 0 8px}.admin-ops-card .stats-row{margin:8px 0 0}.ops-list{display:grid;gap:8px;margin-top:12px}.ops-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 12px;border:1px solid #e1ebe6;border-radius:11px;background:#fbfcfb}.ops-row small{display:block;color:var(--yyc-muted)}
.crm-pipeline{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 18px}.crm-stage{padding:8px 10px;border:1px solid var(--yyc-line);border-radius:12px;background:#fff}.crm-stage b{display:block;font-size:1.15rem;color:var(--yyc-green-800)}.crm-stage span{font-size:.72rem;color:var(--yyc-muted)}
.destination-context{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:999px;background:#eef6f2;color:#1a634f;font-size:.72rem;font-weight:760}
.map-cluster-pin{display:grid;place-items:center;min-width:48px;height:34px;padding:0 10px;border:2px solid #fff;border-radius:999px;background:#0f654f;color:#fff;font-size:.75rem;font-weight:900;box-shadow:0 5px 14px rgba(4,50,40,.28)}
.map-cluster-pin:hover,.map-cluster-pin.active{background:#c99d4a;color:#163c33}.map-cluster-wrap{background:none;border:0}
.map-intel-note{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0 0;color:var(--yyc-muted);font-size:.75rem}
.filter-core-grid>*{min-width:0}.filter-price-pair input{min-width:0}
@media(max-width:980px){.admin-ops-grid,.ds-grid-3{grid-template-columns:1fr 1fr}.ds-grid-2{grid-template-columns:1fr}}
@media(max-width:640px){.admin-ops-grid,.ds-grid-3{grid-template-columns:1fr}.ops-row{grid-template-columns:1fr}.crm-pipeline{display:grid;grid-template-columns:1fr 1fr}}
/* 2.1 mobile containment: scrollable listing rails must not enlarge their CSS-grid parent. */
.home-content-198,.home-content-198>*{min-width:0}
.home-feature-listings,.home-feature-listings .home-listing-row{min-width:0;max-width:100%}
@media(max-width:620px){.home-feature-listings .home-listing-row{width:100%}}
