/* Compra y venta: tarjetas de anuncio, tablón, ficha y formulario. */
.ads-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:20px}
.ads-list.compact{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}
.ad-card{display:flex;flex-direction:column;border-radius:16px;overflow:hidden;background:#fffdf6;border:1px solid #e0e4d4;box-shadow:0 10px 24px #153f3209;transition:transform .3s,box-shadow .3s;min-width:0}
.ad-card:hover{transform:translateY(-3px);box-shadow:0 16px 32px #153f3216}
.ad-photo{position:relative;aspect-ratio:4/3;border:0;padding:0;background:linear-gradient(140deg,#0d4a3a,#16614b);cursor:pointer;display:grid;place-items:center;overflow:hidden}
.ad-photo img{width:100%;height:100%;object-fit:cover;transition:transform .8s}.ad-card:hover .ad-photo img{transform:scale(1.04)}
.ad-icon{font-size:40px;color:#e2d38f}
.ad-badge{position:absolute;left:10px;top:10px;font-size:10px;letter-spacing:1px;text-transform:uppercase;padding:5px 9px;border-radius:14px;background:#fffdf6e6;color:var(--green)}
.ad-count{position:absolute;right:10px;bottom:10px;font-size:10px;padding:4px 8px;border-radius:12px;background:#0b2e24c2;color:#fff}
.ad-body{display:flex;flex-direction:column;gap:4px;padding:14px 16px 16px;flex:1;min-width:0}
.ad-place{font-size:10px;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted);margin:0}
.ad-body h3{font-size:15px;line-height:1.35;margin:2px 0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.ad-price{font-size:17px;color:var(--green);font-variant-numeric:tabular-nums}
.ad-date{font-size:11px;color:#8a927f}
.ad-actions{display:flex;gap:8px;align-items:center;margin-top:auto;padding-top:10px;flex-wrap:wrap}
.ad-actions .primary{padding:9px 14px;font-size:12px}.ad-actions .text-button{font-size:12px}
.ads-empty{grid-column:1/-1;display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:20px;border:1px dashed #c8d2b4;border-radius:16px;color:var(--muted);font-size:13px}
.ads-empty span{font-size:28px;color:#71845c}.ads-empty p{margin:0;flex:1;min-width:180px}
.board-bar{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr) minmax(0,1fr);gap:12px;align-items:end;margin-top:18px}
.board-bar .shop-filters{margin:0}
.board-field{display:grid;gap:6px;font-size:10px;letter-spacing:1.4px;text-transform:uppercase;color:var(--muted)}
.board-field select,.board-field input{width:100%;min-width:0;padding:12px 14px;border-radius:12px;border:1px solid #d3dbc2;background:#fffdf6;font:inherit;font-size:14px;letter-spacing:0;text-transform:none;color:var(--green)}
.ad-dialog .ad-form,#supplier-dialog .ad-form{display:grid;gap:10px}
.ad-form label{display:grid;gap:5px;font-size:12px;color:var(--muted)}
.ad-form input,.ad-form select,.ad-form textarea{width:100%;min-width:0;padding:11px 13px;border-radius:11px;border:1px solid #d3dbc2;background:#fffdf6;font:inherit;font-size:14px;color:var(--green)}
.ad-form input[type=file]{padding:9px}
.ad-form .checkbox{display:flex;gap:9px;align-items:flex-start;line-height:1.5}.ad-form .checkbox input{width:auto;margin-top:3px}
.ad-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ad-trampa{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.ad-status{font-size:13px;color:#7d3b2f;margin:0;min-height:1em}
.ad-note{font-size:12px;color:var(--muted);line-height:1.6}
.ad-detail{max-width:min(720px,94vw)}
.ad-gallery{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;border-radius:14px;margin-bottom:14px}
.ad-gallery img{flex:0 0 100%;max-height:420px;object-fit:cover;scroll-snap-align:center;border-radius:14px}
.ad-detail-title{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:28px;margin:4px 0}
.ad-text{white-space:pre-line;line-height:1.7;font-size:14px}
.ad-contact{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px;border-radius:14px;background:#eef2df;margin:12px 0}
@media(max-width:1100px){.ads-list{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:820px){.ads-list{grid-template-columns:repeat(2,minmax(0,1fr))}.board-bar{grid-template-columns:1fr 1fr}.board-bar .shop-filters{grid-column:1/-1}}
@media(max-width:520px){.ads-list,.ads-list.compact{grid-template-columns:1fr}.ad-row,.board-bar{grid-template-columns:1fr}}
