.zv-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}
@media (width<=960px){.zv-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (width<=600px){.zv-grid{grid-template-columns:1fr}}
.zv-grid li{display:grid}
.zv-tile{font:inherit;color:inherit;text-align:left;background:var(--surface);border-radius:var(--r-card);box-shadow:var(--shadow);cursor:pointer;border:0;grid-template-rows:auto auto 1fr auto auto;align-content:start;gap:10px;padding:22px;transition:transform .15s,box-shadow .15s;display:grid}
.zv-tile:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}
.zv-tile:focus-visible{outline:3px solid var(--teal);outline-offset:3px}
.zv-h{margin-top:4px;font-size:1.15rem;font-weight:620;font-stretch:108%;line-height:1.3}
.zv-p{color:var(--muted);margin:0;font-size:.94rem;line-height:1.5}
.zv-ic{background:var(--mist);width:44px;height:44px;color:var(--teal);border-radius:12px;place-items:center;display:grid}
.zv-badge{background:var(--sunk);border-radius:10px;justify-self:start;padding:6px 10px;font-size:.88rem;font-weight:620}
.zv-badge span{color:var(--muted);font-weight:500}
.zv-more{color:var(--teal);font-size:.92rem;font-weight:620}
.zv-dlg{background:var(--surface);color:var(--ink);border:0;border-radius:var(--r-panel);box-shadow:var(--shadow-lg);width:min(56rem,calc(100% - 24px));max-height:calc(100dvh - 24px);padding:0;overflow:hidden}
.zv-dlg::backdrop{background:#0b1514a6;backdrop-filter:blur(2px)}
.zv-dlg[open]{display:flex}
.zv-dlg-in{flex-direction:column;width:100%;max-height:calc(100dvh - 24px);display:flex}
.zv-dlg-head{border-bottom:1px solid var(--line);grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:14px;padding:18px clamp(16px,3vw,28px);display:grid}
.zv-dlg-head .eyebrow{margin:0}
.zv-dlg-head h3{margin:2px 0 0;font-size:clamp(1.05rem,2vw,1.3rem)}
.zv-x{background:var(--sunk);color:var(--ink);cursor:pointer;border:0;border-radius:99px;place-items:center;width:40px;height:40px;display:grid}
.zv-x:hover{background:var(--line)}
.zv-dlg-body{overscroll-behavior:contain;flex:1;gap:28px;padding:22px clamp(16px,3vw,28px) 26px;display:grid;overflow-y:auto}
.zv-dlg-body section{gap:12px;display:grid}
.zv-dlg-body h4{letter-spacing:-.01em;margin:0;font-size:1.08rem;font-weight:650}
.zv-dlg-body p{margin:0;font-size:.96rem}
.zv-list{grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}
.zv-list li{background:var(--sunk);border-radius:10px;padding:8px 12px;font-size:.94rem}
.zv-items{gap:10px;margin:0;padding:0;list-style:none;display:grid}
.zv-items li{background:var(--sunk);border-radius:12px;gap:4px;padding:12px 14px;display:grid}
.zv-items b{font-size:.98rem}
.zv-items em{color:var(--teal);white-space:nowrap;margin-left:6px;font-style:normal}
.zv-items span{color:var(--muted);font-size:.92rem;line-height:1.55}
.zv-note{background:var(--amber-mist);border-radius:12px;gap:4px;padding:12px 14px;display:grid}
.zv-note b{color:var(--amber)}
.zv-note p{font-size:.92rem}
.zv-tbl{box-shadow:inset 0 0 0 1px var(--line);border-radius:12px;overflow-x:auto}
.zv-tbl table{border-collapse:collapse;width:100%;font-size:.9rem;line-height:1.45}
.zv-tbl th,.zv-tbl td{text-align:left;vertical-align:top;border-top:1px solid var(--line);padding:10px 12px}
.zv-tbl thead th{background:var(--sunk);color:var(--muted);border-top:0;font-size:.78rem;font-weight:620}
.zv-tbl tbody th b{display:block}
.zv-tbl tbody th span,.zv-tbl small{color:var(--muted);font-size:.84rem;font-weight:400;display:block}
.zv-tbl td:nth-child(2),.zv-tbl td:nth-child(3){white-space:nowrap}
@media (width<=640px){.zv-tbl thead{display:none}.zv-tbl tr{border-top:1px solid var(--line);gap:4px;padding:12px;display:grid}.zv-tbl tr:first-child{border-top:0}.zv-tbl th,.zv-tbl td{border:0;padding:0;display:block}.zv-tbl td:nth-child(n){white-space:normal}.zv-tbl td:before{content:attr(data-l)": ";color:var(--muted);font-size:.8rem}}
.zv-dlg-foot{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px clamp(16px,3vw,28px);display:flex}
.zv-dlg-foot p{margin:0}
.zv-open{overflow:hidden}
.zv-hero{background:var(--mist);color:var(--ink);border-radius:12px;justify-self:start;padding:10px 14px;font-size:.92rem;text-decoration:none}
.zv-hero b{color:var(--teal)}
.zv-hero:hover{box-shadow:inset 0 0 0 1px var(--teal)}

.fam{display:grid;gap:12px;margin-top:16px}
.fam[hidden]{display:none}
.fam-head h3{margin:2px 0 0;font-size:1.15rem;font-weight:620;font-stretch:108%;line-height:1.3}
.fam-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}
@media (width<=760px){.fam-grid{grid-template-columns:1fr}}
.fam-card{background:var(--surface);box-shadow:var(--shadow);border-radius:14px;border:2px solid transparent;align-content:start;gap:6px;min-width:0;padding:16px 18px;display:grid}
.fam-card.best{border-color:var(--teal)}
.fam-card .badge{justify-self:start}
.fam-card h4{margin:4px 0 0;font-size:1.02rem;font-weight:620}
.fam-card .small{margin:0;color:var(--muted)}
.fam-total{margin:4px 0;font-size:1.5rem;font-weight:650}
.fam-total span{color:var(--muted);font-size:.85rem;font-weight:500}
.fam-rows{margin:0 0 8px;padding:0;list-style:none;display:grid;gap:4px;font-size:.88rem}
.fam-rows li{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:4px}
.fam-rows b{white-space:nowrap;font-weight:600}
.fam-card .btn{justify-self:start}
.fam-sum{margin:0;font-weight:620}
.fam-sum.down{color:var(--teal)}
.fam .tiny{margin:0}
