/* Osclass-only integration styles. Prototype styles remain in app.css. */
html, body { max-width: 100%; overflow-x: hidden; }
[hidden] { display: none !important; }
.flashes:empty, .auth-flash:empty { display: none; }
.flashes ul, .auth-flash ul { list-style: none; margin: 12px 0; padding: 12px 16px; border-radius: 12px; background: var(--paper-2, #f4f0eb); }
.card-placeholder, .empty-media { display: grid; place-items: center; width: 100%; min-height: 220px; background: #eee9e4; color: #826f64; }
.owner-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; padding: 18px 0; }
.owner-actions p { flex-basis: 100%; margin: 0; }
.owner-actions form, .renew-form { margin: 0; }
.contact-form input:not([type="file"]), .contact-form textarea, .auth-form input, .auth-form select { width: 100%; }
.contact-form input:not([type="file"]), .contact-form textarea { min-height: 48px; border: 1px solid var(--line, #ddd2c8); border-radius: 10px; padding: 10px 12px; font: inherit; }
.contact-form textarea { min-height: 150px; }
.hl-car-form select, .hl-car-form input { min-height: 48px; width: 100%; }
.hl-car-form { border: 0; padding: 0; }
.car-filters .row2 { margin-top: 10px; }
.modal fieldset { border: 0; padding: 0; }
.modal fieldset label { display: flex; gap: 8px; padding: 8px 0; }
.rating-bars .bar { display: block; overflow: hidden; height: 8px; border-radius: 99px; background: #e8e0d8; }
.rating-bars .bar i { display: block; height: 100%; background: #9a5a3c; }
.review { display: grid; grid-template-columns: auto 1fr; gap: 12px; }
.sticky-cta { z-index: 20; }
.status-grid > a { display: grid; gap: 0; padding: 10px 12px; border-radius: var(--r-m); background: var(--surface); border: 1px solid var(--line); text-align: start; }
.pager ul { display: flex; align-items: center; justify-content: center; gap: 6px; list-style: none; margin: 0; padding: 0; }
.pager li { margin: 0; }
.blocked-list form { margin: 0; }
.active-filters .chip { display: inline-flex; align-items: center; gap: 7px; }
.form-card + .form-card { margin-top: 18px; }
@media (max-width: 760px) { .contact-layout { grid-template-columns: 1fr; } }

/* Final revisions (22 Oct): three main categories without subcategories, simpler home. */
[data-sub-field].is-leaf { display: none !important; }
.hero-tiles.n3 { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: 300px; }
.hero-tiles.n3 .hero-tile:first-child { grid-row: auto; }
.home-finder { margin-bottom: 24px; }
.cats.cats-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cats.cats-3 .cat { min-height: 120px; }
@media (max-width: 760px) {
  .hero-tiles.n3 { grid-template-columns: 1fr 1fr; grid-template-rows: 180px 150px; }
  .hero-tiles.n3 .hero-tile:first-child { grid-column: 1 / -1; }
  .home-finder { grid-template-columns: 1fr 1fr; }
  .home-finder .btn { grid-column: 1 / -1; }
  .cats.cats-3 { grid-template-columns: 1fr; }
  .cats.cats-3 .cat { min-height: 0; }
}

/* Consent rows: a full-width input rule was stretching the checkbox and pushing the text off-screen. */
label.check input[type="checkbox"]{width:20px;min-width:20px;max-width:20px;flex:0 0 20px}
label.check > span{flex:1 1 auto;min-width:0}

/* OTP boxes follow the provider code length (hl_otp_code_length) */
.otp{grid-template-columns:repeat(var(--otp-n,6),1fr)}
