/* ==========================================================================
   SocialRooms — theme layer (mirrors www.sociallets.com)
   Loaded after style.css + app.css. Same layout as SocialLets: white header,
   eyebrow hero with street illustration, left-aligned section heads,
   bordered 5px cards with an accent bar, dark five-column footer.
   Slate + lime palette shared across the Aalay Collective family.
   ========================================================================== */

:root {
    --sl-ink: #0f172a;              /* slate-900 — text, primary buttons, footer */
    --sl-ink-hover: #1e293b;
    --sl-footer: #1e293b;           /* slate-800 — a touch lighter than the ink */
    --sl-ink-rgb: 15, 23, 42;
    --sl-lime: #0D9488;             /* brand accent */
    --sl-lime-light: #2DD4BF;
    --sl-lime-dark: #0F766E;        /* accessible lime for large text */
    --sl-lime-deep: #115E59;        /* accessible lime for small text */
    --sl-lime-rgb: 13, 148, 136;
    --sl-muted: rgba(var(--sl-ink-rgb), 0.66);
    --sl-border: rgba(var(--sl-ink-rgb), 0.12);
    --sl-bg-muted: #f8fafc;
    --sl-hero-wash: rgba(var(--sl-lime-rgb), 0.10);
    --sl-soft: rgba(var(--sl-ink-rgb), 0.06);
    --sl-radius: 3px;
    --sl-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.04);
    --sl-shadow-md: 0 10px 28px rgba(0, 0, 0, 0.08);

    /* Re-point legacy tokens so older components pick up the new look */
    --radius: 3px;
    --radius-sm: 3px;
    --radius-md: 3px;
    --radius-lg: 3px;
    --color-border: var(--sl-border);
    --color-text-muted: var(--sl-muted);
    --shadow: var(--sl-shadow-md);
    --shadow-md: var(--sl-shadow-md);
    --shadow-lg: 0 16px 40px rgba(0, 0, 0, 0.10);
    --ring: 0 0 0 4px rgba(var(--sl-lime-rgb), 0.25);
}

body {
    color: var(--sl-ink);
    background: #ffffff;
}

h1, h2, h3, h4 { color: var(--sl-ink); }
h2 { letter-spacing: -0.03em; }
h3 { letter-spacing: -0.02em; }

.text-primary { color: var(--sl-lime-dark); }

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */
.site-header {
    background: #ffffff;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border-bottom: 1px solid var(--sl-border);
}
.header-inner {
    align-items: center;
}

.main-nav { gap: 28px; }

.main-nav a:not(.nav-cta):not(.nav-btn-outline):not(.nav-logout) {
    font-weight: 600;
    font-size: 0.95rem;
    color: var(--sl-ink);
    opacity: 0.78;
    transition: opacity var(--transition), color var(--transition);
}
.main-nav a:not(.nav-cta):not(.nav-btn-outline):not(.nav-logout):hover,
.main-nav a:not(.nav-cta):not(.nav-btn-outline):not(.nav-logout).active {
    color: var(--sl-ink);
    opacity: 1;
}
.main-nav a:not(.nav-cta):not(.nav-btn-outline):not(.nav-logout).active::after {
    height: 3px;
    border-radius: 3px;
    background: var(--sl-lime);
}

.nav-cta,
.main-nav .nav-dashboard {
    margin-left: 4px;
    padding: 12px 20px !important;
    font-size: 0.95rem !important;
    font-weight: 600 !important;
    border-radius: 3px!important;
    background: var(--sl-ink) !important;
    border: 1px solid var(--sl-ink) !important;
    color: #ffffff !important;
    box-shadow: 0 2px 8px rgba(var(--sl-ink-rgb), 0.18);
}
.main-nav .nav-cta:hover {
    background: var(--sl-ink-hover) !important;
    border-color: var(--sl-ink-hover) !important;
}
.nav-btn-outline,
.nav-logout {
    border-radius: 3px!important;
}
.nav-logout {
    background: #ffffff !important;
    border: 1px solid var(--sl-border) !important;
    color: var(--sl-ink) !important;
}
.nav-logout:hover {
    background: var(--sl-bg-muted) !important;
    border-color: rgba(var(--sl-ink-rgb), 0.24) !important;
    color: var(--sl-ink) !important;
}

.nav-toggle {
    width: 44px;
    height: 44px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--sl-border);
    border-radius: 3px;
    background: #ffffff;
}
.nav-toggle span { width: 20px; background: var(--sl-ink); }

@media (max-width: 768px) {
    .nav-toggle { transform: none; }
    .main-nav {
        gap: 0;
        padding: 12px 24px 24px;
    }
    .main-nav a:not(.nav-cta):not(.nav-btn-outline):not(.nav-logout) {
        padding: 12px 0;
        border-bottom: 1px solid var(--sl-border);
        opacity: 1;
    }
    .main-nav a:not(.nav-cta):not(.nav-btn-outline):not(.nav-logout).active::after { display: none; }
    .main-nav a:not(.nav-cta):not(.nav-btn-outline):not(.nav-logout).active { color: var(--sl-lime-deep); }
    .main-nav .nav-cta,
    .main-nav .nav-logout,
    .main-nav .nav-dashboard { margin-top: 14px; }
}

/* --------------------------------------------------------------------------
   Buttons — 5px radius, dark primary, lime accent
   -------------------------------------------------------------------------- */
.btn {
    min-height: 46px;
    padding: 12px 22px;
    font-size: 0.95rem;
    font-weight: 700;
    border-radius: 3px;
    letter-spacing: -0.005em;
}
.btn-sm { min-height: 36px; padding: 7px 14px; font-size: 0.875rem; }
.btn-lg { min-height: 52px; padding: 14px 26px; font-size: 1rem; }

.btn-primary {
    background: var(--sl-ink);
    border-color: var(--sl-ink);
    color: #ffffff;
    box-shadow: 0 2px 8px rgba(var(--sl-ink-rgb), 0.18);
}
.btn-primary:hover,
.btn-primary:focus-visible {
    background: var(--sl-ink-hover);
    border-color: var(--sl-ink-hover);
    color: #ffffff;
}
.btn-accent {
    background: var(--sl-lime);
    border-color: var(--sl-lime);
    color: var(--sl-ink);
}
.btn-accent:hover {
    background: var(--sl-lime-light);
    border-color: var(--sl-lime-light);
    color: var(--sl-ink);
}
.btn-secondary,
.btn-outline,
.btn-ghost {
    background: #ffffff;
    color: var(--sl-ink);
    border-color: var(--sl-border);
    font-weight: 600;
}
.btn-secondary:hover,
.btn-outline:hover,
.btn-ghost:hover {
    background: var(--sl-bg-muted);
    border-color: rgba(var(--sl-ink-rgb), 0.28);
    color: var(--sl-ink);
}
.btn-white { color: var(--sl-ink); }
.btn-outline-white { border-color: rgba(255, 255, 255, 0.4); }

/* --------------------------------------------------------------------------
   Eyebrow (dot + uppercase label) — replaces pill tags
   -------------------------------------------------------------------------- */
.eyebrow,
.section-tag,
.hero-tag {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 0;
    margin: 0 0 18px;
    background: none;
    border-radius: 0;
    color: var(--sl-ink);
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}
.eyebrow .dot,
.section-tag::before,
.hero-tag::before {
    content: '';
    width: 10px;
    height: 10px;
    flex: 0 0 10px;
    border-radius: 50%;
    background: var(--sl-lime);
    box-shadow: 0 0 0 4px rgba(var(--sl-lime-rgb), 0.22);
}
.eyebrow .dot + * { margin: 0; }
.eyebrow:has(.dot)::before { content: none; }

/* --------------------------------------------------------------------------
   Sections
   -------------------------------------------------------------------------- */
.section {
    padding: clamp(64px, 8vw, 96px) 0;
    border-bottom: 1px solid var(--sl-border);
}
.section-alt,
.section--muted { background: var(--sl-bg-muted); }

.section-head,
.section-header {
    text-align: left;
    max-width: none;
    margin: 0 0 40px;
}
.section-head h2,
.section-header h2 {
    font-size: clamp(1.7rem, 2.8vw, 2.35rem);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.2;
    margin: 0 0 10px;
    color: var(--sl-ink);
}
.section-head p,
.section-head__lead,
.section-header p {
    max-width: 680px;
    margin: 4px 0 0;
    font-size: 1.05rem;
    line-height: 1.6;
    color: var(--sl-muted);
}

/* --------------------------------------------------------------------------
   Home hero
   -------------------------------------------------------------------------- */
.hero.hero--home {
    display: block;
    min-height: 0;
    overflow: hidden;
    border-bottom: 1px solid var(--sl-border);
    background-color: #ffffff;
    background-image:
        linear-gradient(180deg, var(--sl-hero-wash) 0%, rgba(255, 255, 255, 0) 45%),
        none;
    background-repeat: no-repeat, no-repeat;
    background-size: cover, 100% auto;
    background-position: center, center bottom;
    padding: clamp(72px, 9vw, 112px) 0 clamp(240px, 30vw, 460px);
}
.hero--home .hero-inner { max-width: 900px; }
.hero--home .hero-title {
    font-size: clamp(2.4rem, 5vw, 3.6rem);
    font-weight: 700;
    line-height: 1.08;
    letter-spacing: -0.035em;
    margin: 0 0 22px;
    max-width: none;
    color: var(--sl-ink);
}
.hero--home .hero-title .text-primary { color: var(--sl-lime-dark); }
.hero--home .hero-subtitle {
    max-width: 660px;
    margin: 0 0 30px;
    font-size: 1.1rem;
    line-height: 1.6;
    color: var(--sl-muted);
}

.hero-path-card {
    max-width: 660px;
    padding: 22px;
    background: #ffffff;
    border: 1px solid var(--sl-border);
    border-radius: 3px;
    box-shadow: var(--sl-shadow-md);
}
.hero-path-card__label {
    display: block;
    margin: 0 0 10px;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--sl-ink);
}
.hero-path-card__actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}
.hero-path-card__actions .btn { width: 100%; margin: 0; }
.hero-path-card__tip {
    margin: 16px 0 0;
    padding-top: 14px;
    border-top: 1px solid var(--sl-border);
    font-size: 0.9rem;
    color: var(--sl-muted);
    text-align: center;
}
@media (max-width: 600px) {
    .hero-path-card__actions { grid-template-columns: 1fr; }
}

/* --------------------------------------------------------------------------
   Split (image + prose)
   -------------------------------------------------------------------------- */
.split-about {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(28px, 4vw, 56px);
    align-items: center;
}
.split-about__image img {
    display: block;
    width: 100%;
    height: clamp(280px, 32vw, 440px);
    object-fit: cover;
    border-radius: 3px;
    border: 1px solid var(--sl-border);
}
.prose p {
    margin: 0 0 16px;
    font-size: 1.02rem;
    line-height: 1.7;
    color: var(--sl-muted);
}
.prose strong { color: var(--sl-ink); }
.prose .btn-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 24px;
}
@media (max-width: 900px) {
    .split-about { grid-template-columns: 1fr; }
}

/* --------------------------------------------------------------------------
   Feature cards — bordered, accent bar, round icon
   -------------------------------------------------------------------------- */
.feature-grid,
.features-grid,
.features-grid.features-grid--balanced,
.features-grid.features-grid--quad {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
    gap: 16px;
    max-width: none;
    margin-inline: 0;
}
@media (min-width: 992px) {
    .feature-grid,
    .features-grid:not(.features-grid--quad) { grid-template-columns: repeat(3, 1fr); }
    .features-grid.features-grid--quad { grid-template-columns: repeat(2, 1fr); }
}
.features-grid.features-grid--balanced .feature-card { max-width: none; }

.feature,
.feature-card {
    position: relative;
    padding: 30px 26px 26px;
    background: #ffffff;
    border: 1px solid var(--sl-border);
    border-radius: 3px;
    box-shadow: none;
    transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition);
}
.feature::before,
.feature-card::before {
    content: '';
    position: absolute;
    top: -1px;
    left: 26px;
    width: 36px;
    height: 3px;
    background: var(--sl-lime);
    border-radius: 3px;
}
.feature:hover,
.feature-card:hover {
    border-color: rgba(var(--sl-ink-rgb), 0.22);
    box-shadow: var(--sl-shadow-md);
}
.feature__title-row {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 10px;
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1.35;
}
.feature__icon,
.feature-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(var(--sl-lime-rgb), 0.14);
    color: var(--sl-lime-deep);
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: 0;
}
.feature-card .feature-icon { margin-bottom: 16px; font-size: 0.85rem; }
.feature p,
.feature-card p {
    margin: 0;
    font-size: 1rem;
    line-height: 1.6;
    color: var(--sl-muted);
    white-space: normal;
}
.feature-card h3 { font-size: 1.15rem; font-weight: 700; }

/* --------------------------------------------------------------------------
   Access / pricing cards
   -------------------------------------------------------------------------- */
.pricing-card,
.access-card,
.card {
    border-radius: 3px;
    border: 1px solid var(--sl-border);
    box-shadow: none;
}
.pricing-card {
    position: relative;
    background: #ffffff;
}
.pricing-card::before {
    content: '';
    position: absolute;
    top: -1px;
    left: 26px;
    width: 36px;
    height: 3px;
    background: var(--sl-lime);
    border-radius: 3px;
}
.pricing-card:hover { box-shadow: var(--sl-shadow-md); }


/* --------------------------------------------------------------------------
   Inner page heroes
   -------------------------------------------------------------------------- */
.page-hero,
.page-header {
    text-align: left;
    padding: clamp(56px, 7vw, 88px) 0 clamp(40px, 5vw, 64px);
    background-color: #ffffff;
    background-image: linear-gradient(180deg, var(--sl-hero-wash) 0%, rgba(255, 255, 255, 0) 70%);
    border-bottom: 1px solid var(--sl-border);
}
.page-hero h1,
.page-header h1 {
    font-size: clamp(2rem, 4vw, 3rem);
    letter-spacing: -0.035em;
    line-height: 1.1;
    margin-bottom: 14px;
    color: var(--sl-ink);
}
.page-hero p,
.page-header p {
    margin: 0;
    max-width: 660px;
    font-size: 1.08rem;
    color: var(--sl-muted);
}

/* --------------------------------------------------------------------------
   CTA band (inner pages)
   -------------------------------------------------------------------------- */


/* --------------------------------------------------------------------------
   Footer — dark, five columns, "Part of Aalay Collective"
   -------------------------------------------------------------------------- */
.site-footer {
    background: var(--sl-footer);
    color: rgba(255, 255, 255, 0.82);
    border-top: 0;
    padding-top: clamp(56px, 7vw, 88px);
}
.site-footer .footer-grid {
    grid-template-columns: minmax(0, 2fr) repeat(4, minmax(0, 1fr));
    gap: 40px;
    padding-bottom: clamp(48px, 6vw, 72px);
}
.site-footer .logo--footer { display: inline-flex; margin: 0 0 18px; }
.site-footer .logo--footer .logo-img { height: 56px; width: auto; }
.site-footer .footer-intro {
    max-width: 340px;
    font-size: 0.95rem;
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.72);
}
.site-footer .footer-affiliations { border-top: 0; padding-top: 4px; }
.site-footer .footer-affiliation img {
    filter: brightness(0) invert(1);
    opacity: 0.9;
}
.footer-col h4 {
    margin: 0 0 16px;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--sl-lime);
}
.footer-col a {
    display: block;
    margin: 0 0 10px;
    font-size: 0.95rem;
    color: rgba(255, 255, 255, 0.82);
}
.footer-col a:hover { color: #ffffff; }
.site-footer .footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    padding: 20px 0;
    font-size: 0.875rem;
    color: rgba(255, 255, 255, 0.62);
    text-align: left;
}
.site-footer .footer-bottom .container {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 8px 24px;
}
.site-footer .footer-bottom a { color: #ffffff; font-weight: 600; }
.site-footer .footer-bottom a:hover { color: var(--sl-lime); }

@media (max-width: 992px) {
    .site-footer .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .site-footer .footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 520px) {
    .site-footer .footer-grid { grid-template-columns: 1fr; gap: 28px; }
}

/* Forms & misc surfaces pick up the squarer radius */
input, select, textarea { border-radius: 3px; }
.cookie-consent { border-radius: 3px; }

.hero .eyebrow { color: var(--sl-ink); }
@media (max-width: 600px) {
    .hero.hero--home {
        background-size: cover, auto 230px;
        padding-bottom: 250px;
    }
}


/* ==========================================================================
   Spacing & layout refinements (v3)
   ========================================================================== */

/* Tighter vertical rhythm */
.section { padding: clamp(48px, 6vw, 72px) 0; }
.section-head,
.section-header { margin-bottom: 32px; }

/* Home hero — less empty sky, illustration sits right under the card */
.hero.hero--home {
    padding-top: clamp(48px, 6vw, 80px);
    padding-bottom: clamp(190px, calc(24.4vw + 28px), 420px);
}
@media (max-width: 600px) {
    .hero.hero--home {
        background-size: cover, auto 170px;
        padding-bottom: 190px;
    }
}

/* Home: "Choose your path" centred */
.section-head--center {
    text-align: center;
    margin-inline: auto;
}
.section-head--center p,
.section-head--center .section-head__lead { margin-inline: auto; }
.access-grid {
    max-width: 1000px;
    margin-inline: auto;
    gap: 16px;
}
#get-started .form-hint { text-align: center; }

/* Inner pages */
.about-mission {
    max-width: none;
    text-align: left;
    padding: 28px;
    border-radius: 3px;
}
.about-mission__links { justify-content: flex-start; }
.partnership-hero__head { margin: 0 0 28px; max-width: 760px; text-align: left; }
.partnership-hero__head .section-tag { display: inline-flex; }
.partnership-page .partnership-hero .partnership-hero__lead,
.partnership-hero__lead { margin: 0; padding: 0; text-align: left; max-width: 660px; }
.partnership-hero__grid { max-width: none; margin: 0; }
.partnership-panel { max-width: none; border-radius: 3px; box-shadow: none; }
.partnership-page .section .form-hint { text-align: left !important; }
.legal-content { max-width: 860px; padding-block: 40px 64px; }

/* Contact — form beside a short info panel instead of a lone centred card */
.contact-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr);
    gap: clamp(24px, 4vw, 56px);
    align-items: start;
}
.contact-layout .form-card { max-width: none; margin: 0; }
.contact-aside h2 {
    font-size: clamp(1.4rem, 2.2vw, 1.75rem);
    margin: 0 0 10px;
}
.contact-aside > p { color: var(--sl-muted); margin: 0 0 24px; line-height: 1.65; }
.contact-aside__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.contact-aside__list li {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    padding: 16px;
    background: #ffffff;
    border: 1px solid var(--sl-border);
    border-radius: 3px;
}
.contact-aside__list strong { display: block; color: var(--sl-ink); margin-bottom: 2px; }
.contact-aside__list span.txt { color: var(--sl-muted); font-size: 0.95rem; line-height: 1.55; }
.contact-aside__list a { font-weight: 600; color: var(--sl-ink); text-decoration: underline; text-decoration-color: var(--sl-lime); text-underline-offset: 3px; }
@media (max-width: 900px) {
    .contact-layout { grid-template-columns: 1fr; }
}

/* CTA band — light lime panel with the street illustration, dark text */
.cta-section {
    position: relative;
    overflow: hidden;
    padding: clamp(48px, 6vw, 72px) 0;
    border-top: 1px solid var(--sl-border);
    border-bottom: 1px solid var(--sl-border);
    background-color: #F0FDFA;
    background-image:
        linear-gradient(90deg, #F0FDFA 0%, #F0FDFA 38%, rgba(240, 253, 250, 0.75) 55%, rgba(240, 253, 250, 0) 75%),
        none;
    background-repeat: no-repeat, no-repeat;
    background-size: 100% 100%, auto 100%;
    background-position: left top, right bottom;
    color: var(--sl-ink);
}
.cta-section .cta-inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 14px;
    min-height: 200px;
}
.cta-section .cta-inner > * { max-width: 560px; }
.cta-section h2,
.cta-section .cta-text h2 { color: var(--sl-ink); margin: 0; font-size: clamp(1.6rem, 2.6vw, 2.1rem); letter-spacing: -0.03em; }
.cta-section p,
.cta-section .cta-text p { color: var(--sl-muted); margin: 0; }
.cta-section .hero-actions,
.cta-section .cta-actions { margin: 8px 0 0; gap: 10px; }
.cta-section .btn-white,
.cta-section .btn-accent {
    background: var(--sl-ink);
    border-color: var(--sl-ink);
    color: #ffffff;
}
.cta-section .btn-white:hover,
.cta-section .btn-accent:hover { background: var(--sl-ink-hover); border-color: var(--sl-ink-hover); color: #ffffff; }
.cta-section .btn-outline-white {
    background: #ffffff;
    border-color: var(--sl-border);
    color: var(--sl-ink);
}
.cta-section .btn-outline-white:hover { background: var(--sl-bg-muted); border-color: rgba(var(--sl-ink-rgb), 0.28); color: var(--sl-ink); }
@media (max-width: 768px) {
    .cta-section {
        background-image: none;
        background-size: auto 150px;
        background-position: center bottom;
        padding-bottom: 170px;
    }
}

/* Footer — less padding, brand column no longer leaves a wide gap */
.site-footer { padding-top: clamp(44px, 5vw, 64px); }
.site-footer .footer-grid {
    grid-template-columns: minmax(0, 1.5fr) repeat(4, minmax(0, 1fr));
    gap: 32px;
    padding-bottom: clamp(32px, 4vw, 48px);
}
.site-footer .footer-affiliations { margin-top: 12px; }
.site-footer .logo--footer { margin-bottom: 14px; }
@media (max-width: 992px) {
    .site-footer .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
    .site-footer .footer-grid { grid-template-columns: 1fr; gap: 24px; }
}

/* ==========================================================================
   Header v2 — taller bar, Aalay-style links (no underline), same width
   ========================================================================== */
@media (min-width: 769px) {
    :root { --header-h: 112px; }
}
.site-header .header-inner { height: var(--header-h); }

.main-nav a:not(.nav-cta):not(.nav-btn-outline):not(.nav-logout) {
    padding: 4px 0;
    font-size: 0.95rem;
    font-weight: 500;
    color: rgba(var(--sl-ink-rgb), 0.66);
    opacity: 1;
    align-self: center;
}
.main-nav a:not(.nav-cta):not(.nav-btn-outline):not(.nav-logout):hover {
    color: var(--sl-ink);
}
.main-nav a:not(.nav-cta):not(.nav-btn-outline):not(.nav-logout).active {
    color: var(--sl-ink);
    font-weight: 600;
}
.main-nav a:not(.nav-cta):not(.nav-btn-outline):not(.nav-logout)::after,
.main-nav a:not(.nav-cta):not(.nav-btn-outline):not(.nav-logout).active::after {
    content: none;
    display: none;
}
.nav-cta,
.main-nav .nav-dashboard {
    padding: 10px 18px !important;
    font-size: 0.95rem !important;
    box-shadow: none;
}
@media (max-width: 768px) {
    .site-header .header-inner { padding: 8px var(--layout-gutter); }
}

/* ==========================================================================
   Partnership — form at 2/3 width with an explainer column
   ========================================================================== */
.partnership-layout {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
    gap: clamp(24px, 3vw, 40px);
    align-items: start;
}
.partnership-layout__form .partnership-panel { margin: 0; background: #ffffff; }
.partnership-aside {
    display: grid;
    gap: 16px;
    position: sticky;
    top: calc(var(--header-h) + 24px);
}
.partnership-aside__card {
    position: relative;
    padding: 26px 24px 24px;
    background: #ffffff;
    border: 1px solid var(--sl-border);
    border-radius: 3px;
}
.partnership-aside__card::before {
    content: '';
    position: absolute;
    top: -1px;
    left: 24px;
    width: 36px;
    height: 3px;
    background: var(--sl-lime);
    border-radius: 3px;
}
.partnership-aside__card h2 { font-size: 1.3rem; margin: 0 0 18px; }
.partnership-aside__card h3 { font-size: 1.05rem; margin: 0 0 14px; }
.partnership-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; }
.partnership-steps li { display: flex; gap: 14px; align-items: flex-start; }
.partnership-steps__num {
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(var(--sl-lime-rgb), 0.16);
    color: var(--sl-lime-deep);
    font-weight: 700;
    font-size: 0.9rem;
}
.partnership-steps strong { display: block; color: var(--sl-ink); margin-bottom: 2px; }
.partnership-steps .txt { display: block; color: var(--sl-muted); font-size: 0.93rem; line-height: 1.55; }
.partnership-benefits { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.partnership-benefits li {
    display: flex;
    gap: 12px;
    align-items: baseline;
    color: var(--sl-muted);
    font-size: 0.95rem;
    line-height: 1.5;
}
.partnership-benefits i { color: var(--sl-lime-deep); width: 16px; text-align: center; flex: 0 0 16px; }
.partnership-aside__contact { margin: 0; font-size: 0.93rem; color: var(--sl-muted); }
.partnership-aside__contact a { font-weight: 600; color: var(--sl-ink); }
@media (max-width: 992px) {
    .partnership-layout { grid-template-columns: 1fr; }
    .partnership-aside { position: static; }
}

/* ==========================================================================
   Partnership hero — illustration, icon cards with links
   ========================================================================== */
.partnership-page .partnership-hero {
    position: relative;
    padding: clamp(48px, 6vw, 72px) 0 clamp(40px, 5vw, 56px);
    background-color: #ffffff;
    background-image:
        linear-gradient(90deg, #ffffff 0%, #ffffff 45%, rgba(255, 255, 255, 0.6) 62%, rgba(255, 255, 255, 0) 80%),
        linear-gradient(180deg, var(--sl-hero-wash) 0%, rgba(255, 255, 255, 0) 70%),
        none;
    background-repeat: no-repeat;
    background-size: 100% 100%, 100% 100%, auto 250px;
    background-position: left top, left top, right 0 top 8px;
    text-align: left;
}
.partnership-hero__head { margin: 0 0 36px; max-width: 640px; min-height: 180px; }
.partnership-hero__head h1 { font-size: clamp(2.2rem, 4.2vw, 3.2rem); margin-bottom: 14px; }
.partnership-hero__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    max-width: none;
    margin: 0;
}
.partnership-hero__card {
    position: relative;
    display: flex;
    flex-direction: column;
    padding: 28px 24px 22px;
    background: #ffffff;
    border: 1px solid var(--sl-border);
    border-radius: 3px;
    box-shadow: var(--sl-shadow-sm);
    transition: box-shadow var(--transition), border-color var(--transition), transform var(--transition);
}
.partnership-hero__card::before {
    content: '';
    position: absolute;
    top: -1px;
    left: 24px;
    width: 36px;
    height: 3px;
    background: var(--sl-lime);
    border-radius: 3px;
}
.partnership-hero__card:hover {
    border-color: rgba(var(--sl-ink-rgb), 0.22);
    box-shadow: var(--sl-shadow-md);
    transform: translateY(-2px);
}
.partnership-hero__card h2.partnership-hero__title {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 12px;
    font-size: 1.1rem;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -0.02em;
    color: var(--sl-ink);
}
.partnership-hero__card p {
    flex: 1;
    margin: 0 0 18px;
    font-size: 0.98rem;
    line-height: 1.6;
    color: var(--sl-muted);
}
.partnership-hero__link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    align-self: flex-start;
    padding-top: 14px;
    width: 100%;
    border-top: 1px solid var(--sl-border);
    font-size: 0.93rem;
    font-weight: 700;
    color: var(--sl-ink);
}
.partnership-hero__link i { color: var(--sl-lime-deep); font-size: 0.85em; transition: transform var(--transition); }
.partnership-hero__link:hover { color: var(--sl-ink); }
.partnership-hero__link:hover i { transform: translateX(3px); }
@media (max-width: 992px) {
    .partnership-page .partnership-hero {
        background-image:
            linear-gradient(180deg, var(--sl-hero-wash) 0%, rgba(255, 255, 255, 0) 70%);
        background-size: 100% 100%;
    }
    .partnership-hero__head { min-height: 0; }
    .partnership-hero__grid { grid-template-columns: 1fr; }
}

/* ==========================================================================
   Sign in — calm, centred card on the street illustration
   ========================================================================== */
.login-page .auth-page {
    min-height: calc(100vh - var(--header-h));
    padding: clamp(40px, 6vw, 72px) 0 clamp(170px, 18vw, 260px);
    background-color: #ffffff;
    background-image:
        linear-gradient(180deg, var(--sl-hero-wash) 0%, rgba(255, 255, 255, 0) 55%),
        none;
    background-repeat: no-repeat, repeat-x;
    background-size: 100% 100%, auto clamp(150px, 16vw, 240px);
    background-position: top, center bottom;
    border-bottom: 1px solid var(--sl-border);
}
.login-page .auth-card {
    position: relative;
    max-width: 440px;
    padding: 36px 32px 28px;
    background: #ffffff;
    border: 1px solid var(--sl-border);
    border-radius: 3px;
    box-shadow: var(--sl-shadow-md);
}
.login-page .auth-card::before {
    content: '';
    position: absolute;
    top: -1px;
    left: 32px;
    width: 36px;
    height: 3px;
    background: var(--sl-lime);
    border-radius: 3px;
}
.login-page .auth-card__eyebrow { margin: 0 0 10px; font-size: 0.8rem; }
.login-page .auth-card h1 {
    text-align: left;
    font-size: 2rem;
    letter-spacing: -0.035em;
    margin: 0 0 8px;
}
.login-page .auth-card .subtitle {
    text-align: left;
    margin: 0 0 26px;
    font-size: 0.97rem;
    line-height: 1.6;
}
.login-page .auth-card .form-group label { font-size: 0.9rem; }
.login-page .auth-card input { min-height: 46px; }
.login-page .auth-card .btn-block { min-height: 48px; margin-top: 4px; }
.login-page .auth-footer {
    margin: 22px 0 0;
    padding-top: 18px;
    border-top: 1px solid var(--sl-border);
    text-align: center;
    font-size: 0.95rem;
}
.login-page .auth-footer a,
.login-page .auth-help a { font-weight: 700; color: var(--sl-ink); }
.login-page .auth-help { margin: 8px 0 0; text-align: center; font-size: 0.88rem; color: var(--sl-muted); }
@media (max-width: 520px) {
    .login-page .auth-card { padding: 30px 22px 24px; }
}

/* ==========================================================================
   v8 — About, FAQs, Get started, wizard options, declutter
   ========================================================================== */

/* About */
.about-story { align-items: center; }
.about-story .prose h2 { font-size: clamp(1.6rem, 2.6vw, 2.1rem); margin: 0 0 16px; }
.about-quote {
    margin: 24px 0 0;
    padding: 18px 22px;
    border-left: 3px solid var(--sl-lime);
    background: #F0FDFA;
    border-radius: 3px;
    font-size: 1.05rem;
    font-weight: 600;
    line-height: 1.55;
    color: var(--sl-ink);
}
@media (min-width: 1100px) {
    .feature-grid.feature-grid--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (min-width: 640px) and (max-width: 1099px) {
    .feature-grid.feature-grid--four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* FAQs */
.faq-layout { gap: clamp(24px, 3vw, 40px); }
.faq-nav {
    position: sticky;
    top: calc(var(--header-h) + 24px);
    align-self: start;
    border-radius: 3px;
    border: 1px solid var(--sl-border);
    box-shadow: none;
}
.faq-nav-links a { border-radius: 3px; }
.faq-nav-links a.is-active { background: rgba(var(--sl-lime-rgb), 0.14); color: var(--sl-ink); font-weight: 600; }
.faq-help {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--sl-border);
}
.faq-help strong { display: block; color: var(--sl-ink); margin-bottom: 2px; }
.faq-help p { margin: 0 0 12px; font-size: 0.92rem; color: var(--sl-muted); }
.faq-group {
    position: relative;
    border-radius: 3px;
    border: 1px solid var(--sl-border);
    box-shadow: none;
    scroll-margin-top: calc(var(--header-h) + 24px);
}
.faq-group::before {
    content: '';
    position: absolute;
    top: -1px;
    left: 24px;
    width: 36px;
    height: 3px;
    background: var(--sl-lime);
    border-radius: 3px;
}
.faq-group h2 { font-size: 1.2rem; letter-spacing: -0.02em; }
.faq-q-text { font-weight: 600; }
.faq-q-icon { border-radius: 50%; }

/* Wizard option tiles (partnership + get started) */
.partnership-option {
    border: 1px solid var(--sl-border);
    border-radius: 3px;
}
.partnership-option:hover,
.partnership-option.selected {
    border-color: var(--sl-lime-dark);
    background: #F0FDFA;
    box-shadow: 0 0 0 3px rgba(var(--sl-lime-rgb), 0.18);
}
.partnership-option .feature-icon { margin-bottom: 14px; font-size: 1.05rem; }
.partnership-options--choices .partnership-option {
    padding: 14px 16px;
    justify-content: center;
}
.partnership-options--choices .partnership-option strong { margin: 0; font-size: 0.97rem; }

/* The page hero already introduces the partnership form */
.partnership-page .partnership-panel__intro { display: none; }
.partnership-panel .partnership-progress { margin-top: 0; }
.signup-page .section .container.partnership-layout { max-width: var(--layout-max); }
.signup-wizard { max-width: none; }
@media (max-width: 900px) {
    .faq-nav { position: static; order: 2; }
    .faq-nav-title, .faq-nav-links { display: none; }
    .faq-help { margin-top: 0; padding-top: 0; border-top: 0; }
}

/* Header logo +10% */
:root { --header-logo-max-h: calc((83px - 12px) * 1.099328125 * 1.05 * 1.2 * 0.70125 * 1.1); }
@media (max-width: 768px) {
    :root { --header-logo-max-h: calc((77px - 12px) * 1.099328125 * 0.70125 * 1.1); }
}

/* ==========================================================================
   Dashboards (admin, landlord, provider) — aligned with the public site
   ========================================================================== */
.admin-body,
.admin-main { background: var(--sl-bg-muted); }

/* Sidebar — slate like the footer, light logo, icon nav */
.admin-sidebar {
    background: var(--sl-footer);
    border-right: 0;
    box-shadow: none;
    color: rgba(255, 255, 255, 0.82);
}
.admin-sidebar-brand {
    padding: 22px 22px 18px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    gap: 12px;
}
.admin-logo { margin: 0; }
.admin-logo .logo-img { height: 50px; width: auto; max-width: 180px; }
.admin-badge {
    margin: 0;
    padding: 0;
    background: none;
    border-radius: 0;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.72rem;
    letter-spacing: 0.1em;
}
.admin-badge::before {
    content: '';
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--sl-lime);
    box-shadow: 0 0 0 3px rgba(var(--sl-lime-rgb), 0.25);
}
.admin-sidebar-nav { padding: 16px 12px; gap: 2px; }
.admin-sidebar-nav a {
    position: relative;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 11px 14px;
    border-radius: 3px;
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.93rem;
    font-weight: 500;
}
.admin-sidebar-nav a i { width: 18px; text-align: center; font-size: 0.95rem; color: rgba(255, 255, 255, 0.5); transition: color var(--transition); }
.admin-sidebar-nav a:hover { background: rgba(255, 255, 255, 0.06); color: #ffffff; }
.admin-sidebar-nav a:hover i { color: #ffffff; }
.admin-sidebar-nav a.active {
    background: rgba(255, 255, 255, 0.08);
    color: #ffffff;
    font-weight: 600;
}
.admin-sidebar-nav a.active i { color: var(--sl-lime); }
.admin-sidebar-nav a.active::before {
    content: '';
    position: absolute;
    left: -12px;
    top: 8px;
    bottom: 8px;
    width: 3px;
    border-radius: 3px;
    background: var(--sl-lime);
}
.admin-sidebar-foot {
    padding: 12px;
    background: transparent;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    display: grid;
    gap: 2px;
}
.admin-sidebar-foot__link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    border-radius: 3px;
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.9rem;
    font-weight: 500;
}
.admin-sidebar-foot__link i { width: 18px; text-align: center; color: rgba(255, 255, 255, 0.5); }
.admin-sidebar-foot__link:hover { background: rgba(255, 255, 255, 0.06); color: #ffffff; }
@media (min-width: 993px) {
    .admin-sidebar { width: 248px; }
    .admin-main { margin-left: 248px; }
}
@media (max-width: 992px) and (min-width: 769px) {
    .admin-sidebar-nav a.active::before { display: none; }
    .admin-sidebar-foot { display: flex; flex-wrap: wrap; }
}

/* Top bar — like the site header */
.admin-topbar {
    min-height: 76px;
    padding: 14px var(--layout-gutter);
    background: #ffffff;
    backdrop-filter: none;
    border-bottom: 1px solid var(--sl-border);
}
.admin-topbar h1 {
    font-size: clamp(1.25rem, 2vw, 1.55rem);
    letter-spacing: -0.03em;
    color: var(--sl-ink);
}
.dashboard-nav-toggle {
    width: 42px;
    height: 42px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--sl-border);
    border-radius: 3px;
    background: #ffffff;
}
.dashboard-nav-toggle span { width: 18px; background: var(--sl-ink); }

.admin-content { padding: 28px var(--layout-gutter) 56px; }

/* Privacy notice — quiet lime note */
.privacy-banner {
    border: 1px solid var(--sl-border);
    border-left: 3px solid var(--sl-lime);
    background: #ffffff;
    border-radius: 3px;
    padding: 12px 16px;
    color: var(--sl-muted);
    font-size: 0.9rem;
}
.privacy-banner::before { content: none; }

/* Stat cards */
.stat-cards { gap: 16px; margin-bottom: 24px; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
.stat-card {
    position: relative;
    padding: 22px 22px 20px;
    background: #ffffff;
    border: 1px solid var(--sl-border);
    border-radius: 3px;
    box-shadow: none;
}
.stat-card::before {
    content: '';
    position: absolute;
    top: -1px;
    left: 22px;
    width: 32px;
    height: 3px;
    background: var(--sl-lime);
    border-radius: 3px;
}
.stat-card .value { color: var(--sl-ink); font-size: 2rem; font-weight: 700; line-height: 1.1; margin-bottom: 4px; }
.stat-card .label {
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--sl-muted);
}

/* Cards */
.admin-content .card {
    padding: 24px;
    margin-bottom: 20px;
    border: 1px solid var(--sl-border);
    border-radius: 3px;
    box-shadow: none;
}
.admin-content .card:hover { box-shadow: none; transform: none; }
.admin-content .card > h2:first-child,
.admin-content .card h2 { font-size: 1.15rem; letter-spacing: -0.02em; margin: 0 0 6px; color: var(--sl-ink); }
.admin-content .card > .form-hint { margin-bottom: 18px; }
.admin-card, .admin-stat { border-radius: 3px; box-shadow: none; }

/* Tables */
.table-wrap {
    border: 1px solid var(--sl-border);
    border-radius: 3px;
    overflow-x: auto;
}
.admin-table th {
    background: var(--sl-bg-muted);
    color: var(--sl-muted);
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    padding: 12px 16px;
}
.admin-table td { padding: 14px 16px; font-size: 0.92rem; color: var(--sl-ink); }
.admin-table tr:hover td { background: #F0FDFA; }
.admin-table .muted { color: var(--sl-muted); }
.btn-link { color: var(--sl-ink); font-weight: 700; text-decoration: underline; text-decoration-color: var(--sl-lime); text-underline-offset: 3px; }
.btn-link:hover { color: var(--sl-ink); text-decoration-color: var(--sl-ink); }

/* Badges */
.badge { border-radius: 3px; padding: 3px 9px; font-size: 0.75rem; font-weight: 600; }
.badge-success { background: rgba(var(--sl-lime-rgb), 0.16); color: var(--sl-lime-deep); }
.badge-info { background: #eef2ff; color: #3730a3; }
.badge-secondary { background: rgba(var(--sl-ink-rgb), 0.07); color: rgba(var(--sl-ink-rgb), 0.7); }

/* Empty states */
.empty-state {
    padding: 40px 24px;
    border: 1px dashed rgba(var(--sl-ink-rgb), 0.18);
    border-radius: 3px;
    background: var(--sl-bg-muted);
}
.empty-state h3 { font-size: 1.05rem; color: var(--sl-ink); }
.empty-state p { max-width: 520px; margin: 0 auto 16px; }

/* Forms inside dashboards */
.admin-content .listing-edit-form.form-card {
    border-radius: 3px;
    border: 1px solid var(--sl-border);
    box-shadow: none;
}
.form-section-title {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--sl-ink);
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}
.form-section-title::before {
    content: '';
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--sl-lime);
    box-shadow: 0 0 0 3px rgba(var(--sl-lime-rgb), 0.22);
}
input:not([type=checkbox]):not([type=radio]):focus,
select:focus,
textarea:focus {
    border-color: var(--sl-lime-dark);
    box-shadow: 0 0 0 3px rgba(var(--sl-lime-rgb), 0.22);
    outline: none;
}
input[type=checkbox], input[type=radio] { accent-color: var(--sl-lime-dark); }

/* Match board */
.match-pair, .match-card { border-radius: 3px; border-color: var(--sl-border); }
.match-score strong { color: var(--sl-ink); }
.match-side .section-tag { margin-bottom: 8px; font-size: 0.72rem; }

/* ==========================================================================
   Admin — landlord & provider directory and profiles
   ========================================================================== */
.people-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
}
.people-toolbar h2 { margin-bottom: 4px; }
.people-toolbar .form-hint { margin: 0; }
.people-search { display: flex; gap: 8px; align-items: center; flex-wrap: nowrap; }
@media (max-width: 640px) { .people-search { flex-wrap: wrap; width: 100%; } .people-search input[type=search] { flex: 1 1 100%; } }
.people-search input[type=search] {
    min-width: min(320px, 100%);
    min-height: 38px;
    padding: 8px 12px;
    border: 1px solid var(--sl-border);
    border-radius: 3px;
    font: inherit;
    font-size: 0.92rem;
}
.people-name { font-weight: 700; color: var(--sl-ink); }
.people-name:hover { text-decoration: underline; text-decoration-color: var(--sl-lime); text-underline-offset: 3px; }
.admin-table a:not(.btn):not(.btn-link):not(.people-name) { color: var(--sl-ink); }

.person-layout {
    display: grid;
    grid-template-columns: minmax(260px, 340px) minmax(0, 1fr);
    gap: 20px;
    align-items: start;
}
.admin-content .person-card { margin-bottom: 0; }
.person-aside { display: grid; gap: 16px; align-self: start; }
.admin-content .person-aside .card { margin-bottom: 0; }
.person-card__role { margin: 0 0 10px; font-size: 0.75rem; }
.admin-content .person-card h2 { font-size: 1.35rem; margin-bottom: 4px; }
.person-card__sub { margin: 0 0 10px; }
.person-details { margin: 18px 0 0; display: grid; gap: 0; }
.person-details > div {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
    gap: 12px;
    padding: 10px 0;
    border-top: 1px solid var(--sl-border);
}
.person-details dt { font-size: 0.8rem; color: var(--sl-muted); font-weight: 600; }
.person-details dd { margin: 0; font-size: 0.93rem; color: var(--sl-ink); word-break: break-word; }
.person-details a { color: var(--sl-ink); font-weight: 600; }
.person-card__about { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--sl-border); }
.person-card__about h3 { font-size: 0.8rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--sl-muted); margin: 0 0 6px; }
.person-card__about p { margin: 0; font-size: 0.93rem; line-height: 1.6; color: var(--sl-ink); }

.record-list { display: grid; gap: 14px; }
.record {
    padding: 18px 20px;
    border: 1px solid var(--sl-border);
    border-radius: 3px;
    background: #ffffff;
}
.record__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 14px; }
.record__head h3 { font-size: 1.05rem; margin: 0 0 2px; }
.record__head p { margin: 0; font-size: 0.9rem; }
.record__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 12px 18px;
    margin: 0;
    padding: 14px 0 0;
    border-top: 1px solid var(--sl-border);
}
.record__grid dt { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--sl-muted); }
.record__grid dd { margin: 2px 0 0; font-size: 0.93rem; font-weight: 600; color: var(--sl-ink); }
.record__desc {
    margin: 14px 0 0;
    padding: 12px 14px;
    background: var(--sl-bg-muted);
    border-radius: 3px;
    font-size: 0.93rem;
    line-height: 1.6;
    color: var(--sl-ink);
}
@media (max-width: 1100px) {
    .person-layout { grid-template-columns: 1fr; }
    .admin-content .person-card { position: static; }
}

/* Sidebar sections */
.admin-sidebar-nav__heading {
    display: block;
    margin: 18px 14px 6px;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.42);
}
.admin-sidebar-nav__heading:first-child { margin-top: 4px; }
@media (max-width: 992px) and (min-width: 769px) {
    .admin-sidebar-nav__heading { display: none; }
}

/* People toolbar — keep search inside the card, no horizontal scroll */
.people-toolbar { flex-wrap: wrap; align-items: flex-end; }
.people-toolbar > div { flex: 1 1 280px; min-width: 0; }
.people-search {
    flex: 0 1 440px;
    min-width: 0;
    max-width: 100%;
    display: flex;
    flex-wrap: nowrap;
    gap: 8px;
    margin: 0;
}
.people-search input[type=search] {
    flex: 1 1 auto;
    width: auto;
    min-width: 0;
    margin: 0;
}
.people-search .btn { flex: 0 0 auto; margin: 0; white-space: nowrap; }
@media (max-width: 640px) {
    .people-search { flex: 1 1 100%; }
}

.people-table td { vertical-align: top; }
.people-contact { overflow-wrap: anywhere; min-width: 180px; }
.people-table .muted i { font-size: 0.8em; margin-right: 2px; }
.people-table td.table-actions { vertical-align: middle; }

/* Admin add / edit */
.card-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 16px; }
.admin-content .card .card-head h2 { margin: 0; }
.record__actions { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
.admin-topbar-actions .btn i { font-size: 0.85em; }
.password-field { display: flex; gap: 8px; }
.password-field input { flex: 1 1 auto; min-width: 0; }
.password-field .btn { flex: 0 0 auto; }

/* Users — filters, status, account management */
.users-filters { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 16px; }
.filter-tabs { display: flex; flex-wrap: wrap; gap: 4px; padding: 4px; background: var(--sl-bg-muted); border: 1px solid var(--sl-border); border-radius: 3px; }
.filter-tabs a { padding: 7px 12px; border-radius: 3px; font-size: 0.9rem; font-weight: 600; color: var(--sl-muted); }
.filter-tabs a span { margin-left: 4px; font-size: 0.78rem; font-weight: 700; color: rgba(var(--sl-ink-rgb), 0.45); }
.filter-tabs a:hover { color: var(--sl-ink); }
.filter-tabs a.is-active { background: #ffffff; color: var(--sl-ink); box-shadow: 0 1px 2px rgba(0,0,0,0.06); }
.filter-tabs a.is-active span { color: var(--sl-lime-deep); }
.people-search select { min-height: 38px; padding: 6px 30px 6px 10px; border: 1px solid var(--sl-border); border-radius: 3px; font: inherit; font-size: 0.9rem; background-color: #fff; }
.users-summary { margin: -4px 0 14px; }
.users-summary a { font-weight: 700; color: var(--sl-ink); }
.sort-link { color: inherit; }
.sort-link:hover, .sort-link.is-active { color: var(--sl-ink); }
.admin-table tr.is-suspended td { background: #fdf6f6; }
.admin-table tr.is-suspended .people-name { color: rgba(var(--sl-ink-rgb), 0.6); }
.stat-card--link { display: block; color: inherit; transition: border-color var(--transition), box-shadow var(--transition); }
.stat-card--link:hover { border-color: rgba(var(--sl-ink-rgb), 0.25); box-shadow: var(--sl-shadow-md); color: inherit; }
.pager { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 16px; flex-wrap: wrap; }
.pager div { display: flex; gap: 8px; }
.badge-danger { background: #fdecec; color: #b42318; }
.btn-danger { background: #b42318; border-color: #b42318; color: #fff; }
.btn-danger:hover { background: #912018; border-color: #912018; color: #fff; }
.btn-link-danger { background: none; border: 0; padding: 0; font: inherit; font-weight: 700; color: #b42318; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }

.account-alert { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; margin-bottom: 20px; border-radius: 3px; border: 1px solid; font-size: 0.93rem; line-height: 1.55; }
.account-alert i { margin-top: 3px; }
.account-alert strong { display: block; }
.account-alert--danger { background: #fdf3f2; border-color: #f4c7c3; color: #7a1d15; }
.account-alert--info { background: #F0FDFA; border-color: rgba(var(--sl-lime-rgb), 0.5); color: var(--sl-ink); }
.temp-password { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 1rem; padding: 2px 8px; background: #fff; border: 1px solid var(--sl-border); border-radius: 3px; user-select: all; }

.admin-content .account-card h2 { font-size: 1rem; margin-bottom: 12px; }
.account-actions { display: grid; gap: 2px; margin: 0 -8px; }
.account-actions form { margin: 0; }
.account-action {
    display: flex; align-items: center; gap: 10px; width: 100%;
    padding: 9px 8px; border: 0; border-radius: 3px; background: none;
    font: inherit; font-size: 0.93rem; font-weight: 600; color: var(--sl-ink); text-align: left; cursor: pointer;
}
.account-action i { width: 18px; text-align: center; color: var(--sl-lime-deep); }
.account-action:hover { background: var(--sl-bg-muted); color: var(--sl-ink); }
.account-block { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--sl-border); }
.account-block summary { cursor: pointer; font-weight: 700; font-size: 0.93rem; color: var(--sl-ink); list-style: none; display: flex; align-items: center; justify-content: space-between; }
.account-block summary::-webkit-details-marker { display: none; }
.account-block summary::after { content: '+'; font-weight: 700; color: var(--sl-muted); }
.account-block[open] summary::after { content: '–'; }
.account-block form { margin-top: 12px; }
.account-block .form-group { margin-bottom: 10px; }
.account-block--danger summary { color: #b42318; }

/* Row action buttons (All users) */
.admin-table td, .admin-table td.table-actions, .people-table td.table-actions { vertical-align: top; }
.row-actions { display: flex; justify-content: flex-end; align-items: flex-start; gap: 6px; flex-wrap: nowrap; margin-top: -4px; }
.row-actions form { margin: 0; display: inline-flex; }
.admin-table td.table-actions .row-actions > * { margin-left: 0; }
.btn-xs { min-height: 30px; padding: 5px 10px; font-size: 0.8rem; font-weight: 700; gap: 6px; line-height: 1.2; box-shadow: none; }
.btn-xs i { font-size: 0.85em; }
.btn-warning-outline { background: #fff; color: #9a3412; border: 1px solid #fed7aa; }
.btn-warning-outline:hover { background: #fff7ed; border-color: #fdba74; color: #7c2d12; }
.row-actions .btn-danger { background: #fff; color: #b42318; border: 1px solid #f4c7c3; }
.row-actions .btn-danger:hover { background: #b42318; border-color: #b42318; color: #fff; }

/* Admin "view as" bar */
.impersonation-bar {
    position: sticky; top: 0; z-index: 2000;
    display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px 16px;
    padding: 8px 16px; background: #fef3c7; border-bottom: 1px solid #f59e0b;
    color: #78350f; font-size: 0.9rem; text-align: center;
}
.impersonation-bar i { margin-right: 4px; }
.impersonation-bar form { margin: 0; }
.impersonation-bar__btn { background: #78350f; border: 1px solid #78350f; color: #fff; }
.impersonation-bar__btn:hover { background: #451a03; border-color: #451a03; color: #fff; }
body:has(.impersonation-bar) .site-header { top: 38px; }
body:has(.impersonation-bar) .admin-topbar { top: 38px; }
body:has(.impersonation-bar) .admin-sidebar { top: 38px; }

/* Dashboard sidebar logo +20% */
.admin-logo .logo-img { height: 60px; max-width: 216px; }
.admin-sidebar .admin-logo .logo-img { height: 60px !important; max-height: none !important; width: auto !important; max-width: 216px !important; }

/* Lease, compliance and photo fields */
.compliance-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: 12px; margin-bottom: 20px; }
.compliance-item { margin: 0; padding: 14px 16px; border: 1px solid var(--sl-border); border-radius: 3px; background: #fff; }
.compliance-item legend { padding: 0 4px; margin-left: -4px; font-weight: 700; font-size: 0.9rem; color: var(--sl-ink); }
.choice-pills { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.choice-pills label { position: relative; cursor: pointer; margin: 0; }
.choice-pills input { position: absolute; opacity: 0; pointer-events: none; }
.choice-pills span { display: inline-block; padding: 6px 12px; border: 1px solid var(--sl-border); border-radius: 3px; font-size: 0.85rem; font-weight: 600; color: var(--sl-muted); background: #fff; transition: all var(--transition); }
.choice-pills label:hover span { border-color: rgba(var(--sl-ink-rgb), 0.3); color: var(--sl-ink); }
.choice-pills input:checked + span { background: #F0FDFA; border-color: var(--sl-lime-dark); color: var(--sl-ink); box-shadow: 0 0 0 2px rgba(var(--sl-lime-rgb), 0.2); }
.choice-pills input:focus-visible + span { outline: 2px solid var(--sl-lime-dark); outline-offset: 2px; }
.form-checkboxes--wrap { display: flex; flex-wrap: wrap; gap: 8px 24px; }
.form-checkboxes--wrap .form-group { margin-bottom: 6px; }

.photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; margin-bottom: 16px; }
.photo-tile { border: 1px solid var(--sl-border); border-radius: 3px; overflow: hidden; background: #fff; }
.photo-tile img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: var(--sl-bg-muted); }
.photo-tile__controls { display: flex; justify-content: space-between; gap: 6px; padding: 8px 10px; font-size: 0.8rem; font-weight: 600; }
.photo-tile__controls label { display: inline-flex; align-items: center; gap: 4px; margin: 0; cursor: pointer; }
.photo-tile__remove { color: #b42318; }
.photo-tile:has(.photo-tile__remove input:checked) img { opacity: 0.35; }
.photo-upload input[type=file] { display: block; width: 100%; padding: 14px; border: 1px dashed rgba(var(--sl-ink-rgb), 0.25); border-radius: 3px; background: var(--sl-bg-muted); cursor: pointer; }
.photo-preview { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.photo-preview img { width: 96px; height: 72px; object-fit: cover; border-radius: 3px; border: 1px solid var(--sl-border); }
.postcode-status { margin: 6px 0 0; min-height: 0; }
.postcode-status:empty { display: none; }
.postcode-status.is-error { color: #b42318; }
input.is-autofilled { background-color: #F0FDFA !important; transition: background-color 1s ease; }
.record__photos { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.record__photos img { width: 120px; height: 90px; object-fit: cover; border-radius: 3px; border: 1px solid var(--sl-border); }

/* Space between section divider line and heading */
.form-section-title { padding-top: 20px; }
.form-section-title:first-of-type { padding-top: 0; }

/* EPC register lookup */
.epc-lookup select[data-epc-pick] { margin-bottom: 8px; }
.epc-lookup .btn-sm { display: inline-flex; align-items: center; gap: 6px; }
.epc-lookup .form-hint.is-error { color: #b45309; }
.epc-card { display: flex; align-items: center; gap: 14px; margin: 4px 0 20px; padding: 12px 16px; border: 1px solid var(--sl-border); border-left: 4px solid var(--sl-lime); border-radius: 3px; background: var(--sl-bg-muted); }
.epc-card[hidden] { display: none; }
.epc-card__band { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 3px; font-size: 1.25rem; font-weight: 800; color: #fff; background: #64748b; }
.epc-band-a { background: #008054; } .epc-band-b { background: #19b459; } .epc-band-c { background: #8dce46; }
.epc-band-d { background: #ffd500; color: var(--sl-ink); } .epc-band-e { background: #fcaa65; color: var(--sl-ink); }
.epc-band-f { background: #ef8023; } .epc-band-g { background: #e9153b; }
.epc-card__body { flex: 1 1 auto; display: flex; flex-direction: column; gap: 2px; font-size: 0.9rem; color: #475569; min-width: 0; }
.epc-card__body strong { color: var(--sl-ink); font-size: 0.95rem; }
.epc-card__expired { color: #b91c1c; font-style: normal; font-weight: 600; }
.epc-card__link { flex: 0 0 auto; font-size: 0.875rem; font-weight: 600; color: var(--sl-lime-deep); white-space: nowrap; }
.epc-card__link:hover { color: var(--sl-ink); }
@media (max-width: 640px) { .epc-card { flex-wrap: wrap; } .epc-card__link { width: 100%; } }

/* Town / county locked after a successful postcode lookup */
input.is-locked, input.is-locked:focus { background: var(--sl-bg-muted); color: #475569; cursor: default; box-shadow: none; }
.postcode-status .postcode-edit { padding: 0; border: 0; background: none; font: inherit; font-weight: 600; color: var(--sl-lime-deep); text-decoration: underline; cursor: pointer; }
.postcode-status .postcode-edit:hover { color: var(--sl-ink); }

/* EPC rating picker (A–G buttons in EPC colours) */
.epc-picker { margin: 0; padding: 0; border: 0; min-width: 0; }
.epc-picker legend { padding: 0; margin-bottom: 8px; font-weight: 600; color: var(--sl-ink); font-size: 0.9rem; }
.epc-scale { display: flex; flex-wrap: wrap; gap: 6px; }
.epc-option { position: relative; margin: 0; cursor: pointer; }
.epc-option input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.epc-option span { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; padding: 0 10px; border-radius: 3px; font-size: 1.1rem; font-weight: 800; color: #fff; background: #64748b; border: 2px solid transparent; opacity: 0.55; transition: opacity .15s, transform .15s, box-shadow .15s; user-select: none; }
.epc-option.epc-band-a span { background: #008054; }
.epc-option.epc-band-b span { background: #19b459; }
.epc-option.epc-band-c span { background: #8dce46; }
.epc-option.epc-band-d span { background: #ffd500; color: var(--sl-ink); }
.epc-option.epc-band-e span { background: #fcaa65; color: var(--sl-ink); }
.epc-option.epc-band-f span { background: #ef8023; }
.epc-option.epc-band-g span { background: #e9153b; }
.epc-option--unknown span { background: #fff; color: #475569; border-color: var(--sl-border); font-size: 0.85rem; font-weight: 600; opacity: 1; }
.epc-option:hover span { opacity: 0.9; }
.epc-option input:checked + span { opacity: 1; transform: translateY(-2px); border-color: var(--sl-ink); box-shadow: 0 0 0 2px #fff inset, 0 4px 10px rgba(15, 23, 42, 0.18); }
.epc-option--unknown input:checked + span { background: var(--sl-ink); color: #fff; border-color: var(--sl-ink); box-shadow: none; }
.epc-option input:focus-visible + span { outline: 3px solid var(--sl-lime); outline-offset: 2px; }
.epc-picker.is-autofilled .epc-option input:checked + span { box-shadow: 0 0 0 2px #fff inset, 0 0 0 4px var(--sl-lime); }
.epc-scale { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; max-width: 420px; }
.epc-option span { width: 100%; min-width: 0; padding: 0; }
.epc-option--unknown { grid-column: 1 / -1; justify-self: start; margin-top: 2px; }
.epc-option--unknown span { width: auto; height: 32px; padding: 0 12px; }

/* EPC: Look up button beside G, register details in the right-hand column */
.epc-scale { grid-template-columns: repeat(7, minmax(34px, 1fr)) auto; max-width: none; }
.epc-find { grid-column: 8; grid-row: 1; height: 44px; margin-left: 6px; padding: 0 14px; display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; font-size: 0.875rem; }
.epc-option--unknown { grid-row: 2; }
.epc-lookup .epc-card { margin: 0 0 8px; padding: 10px 12px; gap: 12px; flex-wrap: wrap; }
.epc-lookup .epc-card__body { flex: 1 1 180px; }
.epc-lookup .epc-card__link { margin-left: auto; }
.epc-lookup .form-hint:empty { display: none; }
@media (max-width: 560px) {
    .epc-scale { grid-template-columns: repeat(7, minmax(0, 1fr)); }
    .epc-find { grid-column: 4 / -1; grid-row: 2; justify-self: end; margin-left: 0; margin-top: 2px; height: 32px; }
    .epc-option--unknown { grid-column: 1 / 4; }
}
.epc-lookup .epc-card { flex-wrap: nowrap; align-items: flex-start; }
.epc-lookup .epc-card__body { flex: 1 1 auto; font-size: 0.875rem; }
.epc-lookup .epc-card__body strong { font-size: 0.925rem; }
.epc-lookup .epc-card__link { margin-left: 0; white-space: nowrap; }
.epc-find.btn { line-height: 1; }
@media (max-width: 560px) { .epc-find.btn { height: 32px; padding: 0 12px; min-height: 0; } }

.epc-option--unknown[hidden] { display: none; }

/* Safety and compliance: one row per document with a segmented control */
.compliance-list { margin: 8px 0 20px; border: 1px solid var(--sl-border); border-radius: 3px; background: #fff; }
.compliance-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px 24px; padding: 14px 16px; }
.compliance-row + .compliance-row { border-top: 1px solid var(--sl-border); }
.compliance-row__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.compliance-row__label { font-weight: 700; font-size: 0.925rem; color: var(--sl-ink); }
.compliance-row__hint { font-size: 0.8rem; color: #64748b; }
.segmented { display: grid; grid-template-columns: repeat(4, 124px); gap: 6px; }
.segmented__opt { position: relative; margin: 0; cursor: pointer; }
.segmented__opt input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.segmented__opt span { display: flex; align-items: center; justify-content: center; gap: 6px; height: 38px; padding: 0 8px; border: 1px solid var(--sl-border); border-radius: 3px; background: #fff; font-size: 0.825rem; font-weight: 600; color: #475569; text-align: center; line-height: 1.15; white-space: nowrap; transition: background .15s, border-color .15s, color .15s; }
.segmented__opt span i { font-size: 0.8rem; }
.segmented__opt:hover span { border-color: #94a3b8; color: var(--sl-ink); }
.segmented__opt input:focus-visible + span { outline: 2px solid var(--sl-lime-dark); outline-offset: 2px; }
.segmented__opt--yes input:checked + span { background: #CCFBF1; border-color: var(--sl-lime-dark); color: #134E4A; }
.segmented__opt--no input:checked + span { background: #fef2f2; border-color: #f87171; color: #991b1b; }
.segmented__opt--na input:checked + span { background: #f1f5f9; border-color: #64748b; color: var(--sl-ink); }
.segmented__opt--unsure input:checked + span { background: var(--sl-bg-muted); border-color: #94a3b8; color: var(--sl-ink); }
@media (max-width: 900px) {
    .compliance-row { grid-template-columns: 1fr; }
    .segmented { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .segmented__gap { display: none; }
}
.compliance-list { container-type: inline-size; }
@container (max-width: 860px) {
    .compliance-row { grid-template-columns: 1fr; gap: 10px; }
    .segmented { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@container (max-width: 480px) {
    .segmented { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .segmented__gap { display: none; }
}

/* EPC buttons: soften once a rating has been chosen */
.epc-scale:has(.epc-option:not(.epc-option--unknown) input:checked) .epc-option:not(.epc-option--unknown) input:not(:checked) + span { opacity: 0.22; filter: saturate(0.5); }
.epc-scale:has(.epc-option:not(.epc-option--unknown) input:checked) .epc-option:not(.epc-option--unknown):hover input:not(:checked) + span { opacity: 0.6; filter: none; }
.epc-option input:checked + span { box-shadow: 0 0 0 2px #fff inset, 0 2px 6px rgba(15, 23, 42, 0.12); transform: none; }

/* Minimum EPC (providers): chosen band and everything better stay coloured */
.epc-scale--min { grid-template-columns: repeat(5, minmax(34px, 56px)); }
.epc-scale--min .epc-option--unknown { grid-row: 2; grid-column: 1 / -1; }
.epc-scale--min .epc-option:not(.epc-option--unknown):has(~ .epc-option:not(.epc-option--unknown) input:checked) input + span { opacity: 0.8 !important; filter: none !important; }
.epc-picker--min + .form-hint { margin-top: 8px; }

/* band classes colour the button face only, not the wrapping label */
label.epc-option { background: transparent !important; color: inherit; }

/* Two-option segmented control (provider requirements) */
.segmented--2 { grid-template-columns: repeat(2, 150px); }
@container (max-width: 860px) { .segmented--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 900px) { .segmented--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Matching: things to check (compliance gaps, lease differences) */
.match-reasons--concerns { margin-top: -4px; }
.match-reasons--concerns li { background: #fffbeb; color: #92400e; border: 1px solid #fde68a; }
.match-reasons--concerns li i { margin-right: 4px; font-size: 0.75rem; }

/* Admin match details */
.md-back { margin: 0 0 12px; font-size: 0.9rem; }
.md-back a { color: var(--sl-lime-deep); font-weight: 600; text-decoration: none; }
.md-picker .form-row { margin-bottom: 8px; }
.md-picker__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.md-picker__actions .form-hint { margin: 0; }
.md-summary { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; }
.md-summary__score { flex: 0 0 auto; width: 104px; height: 104px; border-radius: 50%; display: flex; flex-direction: column; align-items: center; justify-content: center; background: var(--sl-bg-muted); border: 4px solid var(--sl-border); }
.md-summary__score strong { font-size: 1.75rem; line-height: 1; color: var(--sl-ink); }
.md-summary__score span { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.08em; color: #64748b; margin-top: 4px; }
.md-summary__score.is-good { border-color: var(--sl-lime); background: #F0FDFA; }
.md-summary__score.is-low { border-color: #fbbf24; background: #fffbeb; }
.md-summary__score.is-excluded { border-color: #f87171; background: #fef2f2; }
.md-summary__body { flex: 1 1 320px; min-width: 0; }
.md-summary__body h2 { margin: 0 0 8px; font-size: 1.2rem; }
.md-summary__body p { margin: 0 0 6px; }
.md-arrow { color: var(--sl-lime-dark); margin: 0 4px; }
.md-summary__meta { color: #64748b; font-size: 0.875rem; }
.md-exclusions { list-style: none; margin: 6px 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.md-exclusions li { color: #991b1b; font-size: 0.875rem; font-weight: 600; }
.md-exclusions i { margin-right: 6px; }
.md-summary__actions { flex: 1 1 100%; }
.md-summary__actions form { display: flex; flex-wrap: wrap; gap: 8px; }
.md-summary__actions input[type="text"] { flex: 1 1 260px; }
.md-sides { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 16px; margin-bottom: 16px; }
.md-sides .card { margin: 0; }
.md-side h3 { margin: 6px 0 12px; }
.md-facts { display: grid; gap: 6px; margin: 0; }
.md-facts div { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 8px; font-size: 0.9rem; }
.md-facts dt { color: #64748b; font-weight: 600; }
.md-facts dd { margin: 0; color: var(--sl-ink); }
.md-facts a { color: var(--sl-lime-deep); font-weight: 600; }
.md-desc { margin: 12px 0 0; padding-top: 12px; border-top: 1px solid var(--sl-border); font-size: 0.875rem; color: #475569; }
.md-table td, .md-table th { vertical-align: top; }
.md-table .md-group th { background: var(--sl-bg-muted); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.08em; color: #475569; padding-top: 10px; padding-bottom: 10px; }
.md-table .md-base td { color: #475569; }
.md-points { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; font-weight: 700; }
.md-points.is-plus { color: var(--sl-lime-deep); }
.md-points.is-minus { color: #b91c1c; }
.md-table tfoot td { border-top: 2px solid var(--sl-ink); font-size: 1rem; }
.md-status { display: inline-flex; align-items: center; gap: 6px; padding: 2px 8px; border-radius: 3px; font-size: 0.8rem; font-weight: 700; white-space: nowrap; }
.md-status.md-pass { background: #CCFBF1; color: #134E4A; }
.md-status.md-fail { background: #fee2e2; color: #991b1b; }
.md-status.md-warn { background: #fef3c7; color: #92400e; }
.md-status.md-info { background: #f1f5f9; color: #64748b; }
.md-status.md-excluded { background: #991b1b; color: #fff; }
.md-note { display: block; margin-top: 4px; font-size: 0.8rem; color: #64748b; }
.md-info-row td { color: #64748b; }
.md-excluded-row td { background: #fef2f2; }
.match-card__tools { display: inline-flex; align-items: center; gap: 8px; }
@media (max-width: 720px) {
    .md-table thead { display: none; }
    .md-table tr { display: block; padding: 10px 0; border-bottom: 1px solid var(--sl-border); }
    .md-table td { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 8px; border: 0; padding: 4px 12px; text-align: left; }
    .md-table td::before { content: attr(data-label); font-weight: 600; color: #64748b; font-size: 0.8rem; }
    .md-table .md-base td, .md-table tfoot td { display: table-cell; }
    .md-table .md-base td::before, .md-table tfoot td::before { content: none; }
    .md-table .md-group th { display: block; }
}

/* Admin emails: delivery status and test form */
.email-test-form { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; max-width: 520px; }
.email-test-form input[type="email"] { flex: 1 1 240px; }
.email-log-error { display: inline-block; margin-top: 4px; font-size: 0.8rem; color: #b91c1c; max-width: 320px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* ==========================================================================
   Text fields: one consistent skin everywhere (dashboard and public forms).
   :where() keeps this at zero specificity so component styles still win.
   ========================================================================== */
:where(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]):not([type=submit]):not([type=button]):not([type=reset]):not([type=range]):not([type=color]):not([type=image]), select, textarea) {
    box-sizing: border-box;
    min-height: 42px;
    padding: 10px 14px;
    border: 1px solid rgba(var(--sl-ink-rgb), 0.18);
    border-radius: 3px;
    background-color: #fff;
    color: var(--sl-ink);
    font-family: inherit;
    font-size: 0.95rem;
    line-height: 1.4;
    transition: border-color .15s ease, box-shadow .15s ease;
}
:where(textarea) { min-height: 96px; resize: vertical; }
:where(input, select, textarea)::placeholder { color: #94a3b8; opacity: 1; }
:where(input:not([type=checkbox]):not([type=radio]), select, textarea):hover:not(:disabled):not([readonly]) { border-color: rgba(var(--sl-ink-rgb), 0.32); }
:where(input, select, textarea):disabled,
:where(input, textarea)[readonly] { background-color: var(--sl-bg-muted); color: #64748b; }
:where(input, select, textarea):disabled { cursor: not-allowed; }

/* Consistent border colour for fields that already had their own layout rules */
.form-group input:not([type=checkbox]):not([type=radio]):not([type=file]),
.form-group select,
.form-group textarea,
.people-search input[type=search],
.people-search select,
.lead-filters select, .lead-filters input,
.lead-detail select, .lead-detail textarea,
.pl-url input {
    border-color: rgba(var(--sl-ink-rgb), 0.18);
    border-radius: 3px;
}
.people-search select { min-height: 38px; padding-top: 6px; padding-bottom: 6px; font-size: 0.92rem; }

/* Select chevron */
.admin-body select:not([multiple]):not([size]),
.form-group select:not([multiple]):not([size]),
.md-picker select {
    -webkit-appearance: none;
    appearance: none;
    padding-right: 38px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%23475569' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-size: 12px 8px;
}

/* Buttons inside table cells (contact actions etc.) */
.cell-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.admin-table td .btn-xs { white-space: nowrap; }

/* Admin emails: delivery tracking */
.email-log-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.email-log-head h2 { margin: 0; }
.email-log-notice { margin: 8px 0 12px; }
.delivery-summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 10px; margin: 14px 0; }
.delivery-stat { display: flex; flex-direction: column; gap: 2px; padding: 12px 14px; border: 1px solid var(--sl-border); border-left-width: 4px; border-radius: 3px; background: #fff; text-decoration: none; color: var(--sl-ink); }
.delivery-stat strong { font-size: 1.4rem; line-height: 1.1; }
.delivery-stat span { font-size: 0.8rem; color: #64748b; font-weight: 600; }
.delivery-stat--success { border-left-color: #0F766E; }
.delivery-stat--warning { border-left-color: #f59e0b; }
.delivery-stat--danger { border-left-color: #dc2626; }
.delivery-stat--secondary { border-left-color: #94a3b8; }
.delivery-stat:hover, .delivery-stat.is-active { background: var(--sl-bg-muted); }
.delivery-filters { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }

/* ==========================================================================
   Growth features: completeness, progress, messages, reviews, areas, reports
   ========================================================================== */
.completeness { display: flex; align-items: center; gap: 8px; margin-top: 6px; }
.completeness__bar { flex: 0 0 90px; height: 6px; border-radius: 3px; background: #e2e8f0; overflow: hidden; }
.completeness__bar span { display: block; height: 100%; border-radius: 3px; background: #0D9488; }
.completeness--ok .completeness__bar span { background: #f59e0b; }
.completeness--low .completeness__bar span { background: #ef4444; }
.completeness__label { font-size: 0.75rem; font-weight: 600; color: #64748b; white-space: nowrap; }
.completeness:not(.completeness--compact) .completeness__bar { flex-basis: 160px; height: 8px; }
.completeness-panel { margin: 0 0 16px; padding: 16px 18px; border: 1px solid var(--sl-border); border-left: 4px solid #f59e0b; border-radius: 3px; background: #fff; }
.completeness-panel--done { border-left-color: #0D9488; color: #134E4A; font-weight: 600; }
.completeness-panel__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
.completeness-panel .form-hint { margin: 8px 0 6px; }
.completeness-panel__list { margin: 0; padding-left: 18px; columns: 2; column-gap: 24px; font-size: 0.9rem; }
@media (max-width: 640px) { .completeness-panel__list { columns: 1; } }

.match-progress { display: flex; list-style: none; margin: 12px 0 14px; padding: 0; counter-reset: none; }
.match-progress__step { flex: 1 1 0; position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 6px; font-size: 0.8rem; color: #64748b; }
.match-progress__step::before { content: ""; position: absolute; top: 14px; left: -50%; width: 100%; height: 3px; background: #e2e8f0; z-index: 0; }
.match-progress__step:first-child::before { display: none; }
.match-progress__step.is-done::before, .match-progress__step.is-current::before { background: #0D9488; }
.match-progress__dot { position: relative; z-index: 1; display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; background: #fff; border: 2px solid #cbd5e1; font-weight: 700; font-size: 0.8rem; color: #94a3b8; }
.match-progress__step.is-done .match-progress__dot { background: #0D9488; border-color: #0D9488; color: #fff; }
.match-progress__step.is-current .match-progress__dot { background: var(--sl-ink); border-color: var(--sl-ink); color: #fff; box-shadow: 0 0 0 4px rgba(13, 148, 136, 0.25); }
.match-progress__step.is-current .match-progress__label { color: var(--sl-ink); font-weight: 700; }
.match-progress__label small { display: block; font-size: 0.72rem; color: #94a3b8; font-weight: 500; }
.match-progress--declined { display: block; padding: 10px 14px; border-radius: 3px; background: #fef2f2; color: #991b1b; font-weight: 600; }
@media (max-width: 560px) { .match-progress__label { font-size: 0.7rem; } .match-progress__dot { width: 24px; height: 24px; } .match-progress__step::before { top: 11px; } }

.match-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 12px 0; }
.count-pill { display: inline-block; margin-left: 4px; padding: 1px 8px; border-radius: 3px; background: #0D9488; color: var(--sl-ink); font-size: 0.72rem; font-weight: 800; }
.viewing-form, .review-form { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 10px 0; padding: 12px 14px; border: 1px dashed var(--sl-border); border-radius: 3px; background: var(--sl-bg-muted); }
.viewing-form label { font-size: 0.85rem; font-weight: 600; }
.viewing-form input[type=text], .review-form input[type=text] { flex: 1 1 200px; min-height: 36px; }
.viewing-form input[type=date] { min-height: 36px; }
.review-done { margin: 10px 0; }
.star-input { display: inline-flex; flex-direction: row-reverse; align-items: center; gap: 2px; margin: 0; padding: 0; border: 0; }
.star-input legend { float: left; width: 100%; margin-bottom: 6px; font-size: 0.9rem; font-weight: 600; }
.star-input input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.star-input label { cursor: pointer; font-size: 1.7rem; line-height: 1; color: #cbd5e1; padding: 0 2px; display: inline-block; min-width: 1.4em; min-height: 1.4em; text-align: center; }
.star-input label:hover, .star-input label:hover ~ label, .star-input input:checked ~ label { color: #f59e0b; }
.star-input input:focus-visible + label { outline: 2px solid var(--sl-lime-dark); outline-offset: 2px; border-radius: 3px; }
.review-form { flex-direction: column; align-items: stretch; }
.review-form .btn { align-self: flex-start; }
.review-form input[type=text] { flex: none; width: 100%; }
.review-form .star-input { display: flex; justify-content: flex-end; flex-wrap: wrap; }
.review-form .star-input legend { text-align: left; }
.rating-stars { color: #f59e0b; letter-spacing: 1px; white-space: nowrap; }
.rating-stars .fa-regular { color: #cbd5e1; }

.thread-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 12px; }
.thread-head h2 { margin: 4px 0; }
.thread__list { display: flex; flex-direction: column; gap: 12px; margin-bottom: 16px; }
.thread__msg { max-width: 78%; padding: 12px 14px; border-radius: 3px; background: var(--sl-bg-muted); border: 1px solid var(--sl-border); }
.thread__msg--mine { align-self: flex-end; background: #F0FDFA; border-color: #99F6E4; border-radius: 3px; }
.thread__msg--team { background: #eff6ff; border-color: #bfdbfe; }
.thread__meta { font-size: 0.78rem; color: #64748b; margin-bottom: 4px; }
.thread__body { white-space: normal; line-height: 1.55; overflow-wrap: anywhere; }
.thread__form textarea { width: 100%; }
.thread__actions { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px; margin-top: 8px; }
.thread__actions .form-hint { margin: 0; }
@media (max-width: 640px) { .thread__msg { max-width: 92%; } }

.verified-badge { display: inline-flex; align-items: center; gap: 4px; }
.verify-form .form-group { margin-bottom: 12px; }
.input-with-button { display: flex; gap: 6px; }
.input-with-button input { flex: 1 1 auto; min-width: 0; }
.md-progress .match-progress { margin-top: 16px; }
.md-review { margin: 6px 0; }

.area-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); gap: 16px; }
.area-card { display: flex; flex-direction: column; gap: 4px; padding: 20px; border: 1px solid var(--sl-border); border-radius: 3px; background: #fff; color: var(--sl-ink); text-decoration: none; transition: box-shadow .15s, transform .15s; }
.area-card:hover { box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08); transform: translateY(-2px); }
.area-card h2 { margin: 0 0 6px; font-size: 1.2rem; }
.area-card p { margin: 0; color: #475569; }
.area-card__more { margin-top: 10px; font-weight: 700; color: var(--sl-lime-deep); font-size: 0.9rem; }
.area-hero .section-tag a { color: inherit; }
.area-hero .hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px; }
.area-stats { margin-bottom: 20px; }
.area-columns { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); gap: 20px; }
.area-columns .card { margin: 0; }
.bar-list { display: flex; flex-direction: column; gap: 8px; margin: 12px 0 20px; }
.bar-list__row { display: grid; grid-template-columns: 56px 1fr 32px; align-items: center; gap: 10px; font-size: 0.9rem; }
.bar-list__bar { height: 10px; border-radius: 3px; background: #e2e8f0; overflow: hidden; }
.bar-list__bar span { display: block; height: 100%; background: #0D9488; border-radius: 3px; }
.bar-list__value { text-align: right; font-weight: 700; }
.tick-list { list-style: none; padding: 0; margin: 8px 0 0; }
.tick-list li { padding: 4px 0 4px 24px; position: relative; }
.tick-list li::before { content: "\2713"; position: absolute; left: 0; color: var(--sl-lime-dark); font-weight: 800; }
.process-steps--stack { display: flex; flex-direction: column; gap: 10px; padding-left: 20px; margin: 12px 0 20px; }
.area-note { margin-top: 20px; font-size: 0.85rem; }

.report-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 16px; }
.report-head h2 { margin: 4px 0 6px; }
.report-month select { min-width: 200px; }
@media print {
    .admin-sidebar, .dashboard-topbar, .admin-topbar, .no-print, .impersonation-bar, .cookie-banner, [class*="cookie"], .toast-stack, .privacy-notice, .dashboard-notice { display: none !important; }
    .admin-shell, .admin-main, .dashboard-content { display: block !important; margin: 0 !important; padding: 0 !important; width: auto !important; }
    body { background: #fff !important; }
    .card, .stat-card { box-shadow: none !important; break-inside: avoid; }
}

/* ==========================================================================
   Growth features, round 2
   ========================================================================== */
.hp-field { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.quick-done { text-align: center; padding: 40px 28px; }
.quick-done > i { font-size: 2.6rem; color: var(--sl-lime-dark); margin-bottom: 12px; }
.quick-request-card { margin-top: 16px; }
.form-group--full { grid-column: 1 / -1; }

/* Case studies */
.case-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 20px; }
.case-card { background: #fff; border: 1px solid var(--sl-border); border-radius: 3px; padding: 24px; display: flex; flex-direction: column; gap: 10px; }
.case-card h2 { font-size: 1.2rem; margin: 0; }
.case-card p { margin: 0; color: #475569; line-height: 1.6; }
.case-facts { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: auto 0 0; padding-top: 12px; border-top: 1px solid var(--sl-border); }
.case-facts div { display: flex; flex-direction: column; }
.case-facts dt { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.06em; color: #64748b; }
.case-facts dd { margin: 0; font-weight: 700; }
.case-cta { text-align: center; margin-top: 48px; }
.case-new { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.case-new select { min-width: 280px; }

/* Viewing slots */
.viewing-box { margin: 10px 0; padding: 14px 16px; border: 1px dashed var(--sl-border); border-radius: 3px; background: var(--sl-bg-muted); }
.viewing-box__title { font-weight: 700; margin: 0 0 6px; }
.viewing-box .form-hint { margin: 4px 0 8px; }
.slot-list { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0; }
.slot-list form { margin: 0; }
.slot-btn { font-weight: 600; }
.viewing-more { margin-top: 8px; }
.viewing-more > summary { cursor: pointer; font-weight: 600; font-size: 0.9rem; color: var(--sl-ink); padding: 4px 0; }
.viewing-more .viewing-form { margin: 8px 0 0; background: #fff; }
.slot-form { display: flex; flex-direction: column; gap: 8px; margin-top: 8px; }
.slot-inputs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.slot-form input { min-height: 38px; }
.slot-form .btn { align-self: flex-start; }
@media (max-width: 760px) { .slot-inputs { grid-template-columns: 1fr; } }

/* Decline reasons */
.decline-details { margin-top: 10px; }
.decline-details > summary { cursor: pointer; color: #64748b; font-size: 0.9rem; font-weight: 600; padding: 4px 0; }
.decline-details[open] > summary { color: var(--sl-ink); }
.decline-details form { margin-top: 8px; padding: 12px 14px; border: 1px solid var(--sl-border); border-radius: 3px; background: #fff; }
.decline-fields { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 0 12px; }
@media (max-width: 760px) { .decline-fields { grid-template-columns: 1fr; } }

/* Documents */
.doc-card { margin-top: 20px; }
.doc-panel__head .form-hint { margin-top: -6px; }
.doc-list { list-style: none; margin: 0 0 16px; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.doc-item { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border: 1px solid var(--sl-border); border-radius: 3px; background: #fff; flex-wrap: wrap; }
.doc-item > i { font-size: 1.3rem; color: #94a3b8; }
.doc-item__main { display: flex; flex-direction: column; flex: 1 1 220px; min-width: 0; }
.doc-item__main a { color: var(--sl-ink); }
.doc-item__main .muted { font-size: 0.82rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.doc-item form { margin: 0; }
.doc-upload { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr) auto; gap: 12px; align-items: end; padding-top: 12px; border-top: 1px solid var(--sl-border); }
.doc-upload .form-group { margin-bottom: 0; }
.doc-upload input[type=file] { padding: 8px; background: #fff; border: 1px solid var(--sl-border); border-radius: 3px; width: 100%; }
@media (max-width: 760px) { .doc-upload { grid-template-columns: 1fr; } }
.doc-details { margin-top: 10px; }
.doc-details > summary { cursor: pointer; font-weight: 600; font-size: 0.9rem; padding: 4px 0; }
.doc-details .doc-panel { margin-top: 8px; }
.doc-details .form-section-title { display: none; }
.md-side .doc-panel { margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--sl-border); }
.md-side .doc-upload { grid-template-columns: 1fr; }

/* Timeline */
.md-timeline > summary { list-style: none; cursor: pointer; }
.md-timeline > summary::-webkit-details-marker { display: none; }
.md-timeline > summary h2 { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.md-timeline__hint { font-size: 0.85rem; font-weight: 400; }
.timeline { list-style: none; margin: 12px 0 0; padding: 0; position: relative; }
.timeline::before { content: ""; position: absolute; left: 15px; top: 6px; bottom: 6px; width: 2px; background: var(--sl-border); }
.timeline__item { position: relative; display: flex; gap: 14px; padding: 0 0 16px; }
.timeline__icon { position: relative; z-index: 1; flex: 0 0 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: #fff; border: 2px solid var(--sl-border); color: #64748b; font-size: 0.8rem; }
.timeline__item--success .timeline__icon { border-color: var(--sl-lime); color: var(--sl-lime-deep, #134E4A); background: #F0FDFA; }
.timeline__item--info .timeline__icon { border-color: #93c5fd; color: #1d4ed8; background: #eff6ff; }
.timeline__item--warning .timeline__icon { border-color: #fcd34d; color: #b45309; background: #fffbeb; }
.timeline__item--danger .timeline__icon { border-color: #fca5a5; color: #b91c1c; background: #fef2f2; }
.timeline__body { flex: 1; min-width: 0; padding-top: 4px; }
.timeline__head { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.timeline__head time { color: #64748b; font-size: 0.82rem; white-space: nowrap; }
.timeline__body p { margin: 4px 0 0; color: #475569; font-size: 0.9rem; overflow-wrap: anywhere; }
.timeline__who { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.05em; color: #94a3b8; }
.timeline__item--muted .timeline__head strong { font-weight: 600; }

/* To-do */
.todo-summary { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; align-items: center; }
.todo-summary h2 { margin: 0; }
.todo-jump { display: flex; flex-wrap: wrap; gap: 6px; }
.todo-section h2 { display: flex; align-items: center; gap: 8px; }
.todo-list { list-style: none; margin: 0; padding: 0; }
.todo-item { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 0; border-top: 1px solid var(--sl-border); flex-wrap: wrap; }
.todo-item:first-child { border-top: 0; }
.todo-item__main { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1 1 320px; }
.todo-item__main .muted { font-size: 0.85rem; }
.todo-item .row-actions { flex-wrap: wrap; }
.todo-item form { margin: 0; }
.todo-banner { display: flex; align-items: center; gap: 16px; text-decoration: none; color: inherit; border-left: 4px solid #f59e0b; }
.todo-banner > i { font-size: 1.6rem; color: #f59e0b; }
.todo-banner > span:nth-child(2) { display: flex; flex-direction: column; flex: 1; }
.todo-banner--clear { border-left-color: var(--sl-lime); }
.todo-banner--clear > i { color: var(--sl-lime-dark); }
.todo-banner:hover { box-shadow: 0 4px 16px rgba(15, 23, 42, 0.08); }

/* Invoices */
.invoice-card { margin-top: 20px; }
.invoice-card .row-actions { flex-wrap: wrap; }
.invoice-card form { margin: 0; }

/* Business dashboard */
.dash-period { margin-bottom: 16px; }
.dash-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.dash-grid > .card { margin-bottom: 0; }
.dash-grid + .card { margin-top: 20px; }
@media (max-width: 960px) { .dash-grid { grid-template-columns: 1fr; } }
.dash-note { font-size: 0.85rem; margin-top: 14px; }
.funnel { display: flex; flex-direction: column; gap: 10px; }
.funnel__row { display: grid; grid-template-columns: 130px 1fr 44px 44px; gap: 10px; align-items: center; }
.funnel__label { font-size: 0.88rem; font-weight: 600; }
.funnel__bar { height: 22px; background: var(--sl-bg-muted); border-radius: 3px; overflow: hidden; }
.funnel__bar span { display: block; height: 100%; background: var(--sl-lime); border-radius: 3px; }
.funnel__value { font-weight: 700; text-align: right; }
.funnel__rate { font-size: 0.8rem; color: #64748b; text-align: right; }
.fee-chart { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 8px; align-items: end; height: 200px; padding-top: 8px; }
.fee-chart__col { display: flex; flex-direction: column; align-items: center; height: 100%; gap: 6px; }
.fee-chart__bars { flex: 1; width: 100%; display: flex; align-items: flex-end; justify-content: center; gap: 3px; border-bottom: 1px solid var(--sl-border); }
.fee-chart__bar { width: 38%; max-width: 18px; min-height: 2px; border-radius: 3px; }
.fee-chart__bar--invoiced, .fee-key--invoiced { background: #cbd5e1; }
.fee-chart__bar--paid, .fee-key--paid { background: var(--sl-lime-dark); }
.fee-chart__label { font-size: 0.7rem; color: #64748b; white-space: nowrap; }
.fee-legend { display: flex; gap: 8px; align-items: center; font-size: 0.85rem; color: #475569; margin-top: 12px; }
.fee-key { display: inline-block; width: 12px; height: 12px; border-radius: 3px; margin-left: 8px; }
@media (max-width: 600px) { .fee-chart__label { writing-mode: vertical-rl; transform: rotate(180deg); } .funnel__row { grid-template-columns: 100px 1fr 34px 36px; } }

/* Portfolio */
.portfolio-list { display: flex; flex-direction: column; gap: 16px; }
.portfolio-card { margin: 0; }
.portfolio-card__head { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.portfolio-card__head h2 { margin: 0; font-size: 1.15rem; }
.portfolio-card__head h2 a { color: var(--sl-ink); }
.portfolio-card__head p { margin: 2px 0 0; }
.portfolio-card__stats { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin: 14px 0; }
.portfolio-card__stats > div { background: var(--sl-bg-muted); border-radius: 3px; padding: 10px 12px; display: flex; flex-direction: column; }
.portfolio-card__stats .value { font-size: 1.3rem; font-weight: 800; }
.portfolio-card__stats .label { font-size: 0.75rem; color: #64748b; }
@media (max-width: 760px) { .portfolio-card__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.portfolio-card__meter { margin-bottom: 12px; }
.portfolio-tips { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.portfolio-tip { display: flex; align-items: center; gap: 10px; padding: 8px 12px; border-radius: 3px; background: #f8fafc; font-size: 0.9rem; flex-wrap: wrap; }
.portfolio-tip > span { flex: 1 1 240px; }
.portfolio-tip--urgent { background: #fef2f2; } .portfolio-tip--urgent > i { color: #b91c1c; }
.portfolio-tip--action { background: #fffbeb; } .portfolio-tip--action > i { color: #b45309; }
.portfolio-tip--info > i { color: #2563eb; }
.portfolio-tip--ok { background: #F0FDFA; } .portfolio-tip--ok > i { color: var(--sl-lime-dark); }
.portfolio-card__foot { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 14px; flex-wrap: wrap; font-size: 0.85rem; }

/* Tenancy check-in */
.checkin-choices { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; border: 0; padding: 0; margin: 16px 0; }
.checkin-choice { position: relative; }
.checkin-choice input { position: absolute; opacity: 0; }
.checkin-choice span { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 14px 10px; border: 1px solid var(--sl-border); border-radius: 3px; cursor: pointer; font-weight: 600; text-align: center; background: #fff; }
.checkin-choice input:checked + span { border-color: var(--sl-lime-dark); background: #F0FDFA; box-shadow: 0 0 0 2px var(--sl-lime) inset; }
.checkin-choice input:focus-visible + span { outline: 2px solid var(--sl-lime-dark); outline-offset: 2px; }
@media (max-width: 600px) { .checkin-choices { grid-template-columns: 1fr; } }

/* Dashboard sidebar: slim, dark scrollbar that only shows on hover */
.admin-sidebar-nav { scrollbar-width: thin; scrollbar-color: transparent transparent; scrollbar-gutter: stable; }
.admin-sidebar-nav:hover, .admin-sidebar-nav:focus-within { scrollbar-color: rgba(255, 255, 255, 0.22) transparent; }
.admin-sidebar-nav::-webkit-scrollbar { width: 6px; }
.admin-sidebar-nav::-webkit-scrollbar-track { background: transparent; }
.admin-sidebar-nav::-webkit-scrollbar-button { display: none; height: 0; }
.admin-sidebar-nav::-webkit-scrollbar-thumb { background: transparent; border-radius: 3px; }
.admin-sidebar-nav:hover::-webkit-scrollbar-thumb, .admin-sidebar-nav:focus-within::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.22); }
.admin-sidebar-nav::-webkit-scrollbar-thumb:hover { background: rgba(255, 255, 255, 0.38); }


/* ==========================================================================
   SocialRooms additions — benefits strip, listing search in hero
   ========================================================================== */
.hero--home .home-search { max-width: 660px; margin: 0 0 16px; }
.hero--home .home-search__row { background: #ffffff; border: 1px solid var(--sl-border); border-radius: 3px; box-shadow: var(--sl-shadow-md); }
.hero-path-card__tip a { color: var(--sl-ink); font-weight: 600; text-decoration: underline; text-decoration-color: var(--sl-lime); text-underline-offset: 3px; }
.benefit-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 22px 0 0; padding: 0; list-style: none; }
.benefit-chips li {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 6px 12px; font-size: 0.88rem; font-weight: 600; color: var(--sl-ink);
    background: #ffffff; border: 1px solid var(--sl-border); border-radius: 3px;
}
.benefit-chips li i { color: var(--sl-lime-dark); }
.section-cta { margin-top: 32px; }
.site-footer .footer-intro a { color: #ffffff; font-weight: 600; text-decoration: underline; text-decoration-color: var(--sl-lime); text-underline-offset: 3px; }

/* ==========================================================================
   SocialRooms identity — deliberately distinct from SocialLets
   Teal accent, rounded cards, pill buttons, split search hero, deep-teal
   footer, and a "service provided by SocialLets" bar above the header.
   ========================================================================== */
:root {
    --sr-teal: #0D9488;          /* brand accent */
    --sr-teal-700: #0F766E;      /* buttons, links on white (AA) */
    --sr-teal-800: #115E59;
    --sr-teal-900: #134E4A;      /* footer */
    --sr-teal-950: #042F2E;
    --sr-teal-300: #5EEAD4;      /* accents on dark */
    --sr-teal-50: #F0FDFA;
    --sr-sand: #FFFBF5;          /* warm section background */
    --sl-radius: 3px;
    --radius: 3px; --radius-sm: 3px; --radius-md: 3px; --radius-lg: 3px;
    --sl-hero-wash: rgba(13, 148, 136, 0.08);
    --sl-bg-muted: var(--sr-sand);
}

/* Service bar */
.sr-service-bar { background: var(--sr-teal-950); color: rgba(255,255,255,0.82); font-size: 0.85rem; }
.sr-service-bar .container { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 38px; }
.sr-service-bar a { color: #ffffff; font-weight: 700; text-decoration: underline; text-decoration-color: var(--sr-teal-300); text-underline-offset: 3px; }
.sr-service-bar__note { display: inline-flex; align-items: center; gap: 8px; }
.sr-service-bar__note i { color: var(--sr-teal-300); }
@media (max-width: 640px) { .sr-service-bar__note { display: none; } }

/* Header */
.site-header { border-bottom: 0; box-shadow: 0 1px 0 rgba(15, 23, 42, 0.06); }
@media (min-width: 769px) { :root { --header-h: 88px; } }
.main-nav a:not(.nav-cta):not(.nav-btn-outline):not(.nav-logout).active::after { background: var(--sr-teal); border-radius: 3px; }
.main-nav a:not(.nav-cta):not(.nav-btn-outline):not(.nav-logout).active { color: var(--sr-teal-700); }

/* Buttons — pills, teal primary */
.btn, .btn-sm, .btn-lg { border-radius: 3px; }
.btn-primary, .nav-cta.btn-primary {
    background: var(--sr-teal-700); border-color: var(--sr-teal-700); color: #ffffff;
    box-shadow: 0 6px 18px rgba(15, 118, 110, 0.25);
}
.btn-primary:hover, .btn-primary:focus-visible { background: var(--sr-teal-800); border-color: var(--sr-teal-800); color: #ffffff; }
.btn-secondary, .btn-outline, .btn-ghost { border-color: rgba(15, 118, 110, 0.35); color: var(--sr-teal-800); }
.btn-secondary:hover, .btn-outline:hover, .btn-ghost:hover { background: var(--sr-teal-50); border-color: var(--sr-teal-700); color: var(--sr-teal-800); }
.text-primary { color: var(--sr-teal-700); }

/* Eyebrow: pill label instead of dot + caps */
.eyebrow, .section-tag, .hero-tag {
    padding: 6px 14px; border-radius: 3px; background: var(--sr-teal-50);
    color: var(--sr-teal-800); border: 1px solid rgba(13, 148, 136, 0.2);
    font-size: 0.8rem; letter-spacing: 0.04em;
}
.eyebrow .dot, .section-tag::before, .hero-tag::before { width: 8px; height: 8px; flex-basis: 8px; box-shadow: none; background: var(--sr-teal); }

/* Sections */
.section { border-bottom: 0; }
.section-head h2, .section-header h2 { letter-spacing: -0.02em; }

/* Home hero — split: copy + search on the left, photo on the right */
.hero.hero--home.hero--rooms {
    background: radial-gradient(1200px 500px at 85% 0%, rgba(13, 148, 136, 0.12), transparent 60%),
                linear-gradient(180deg, var(--sr-teal-50) 0%, #ffffff 100%);
    padding: clamp(40px, 6vw, 80px) 0 clamp(48px, 6vw, 88px);
    border-bottom: 0;
}
.sr-hero-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: clamp(28px, 5vw, 64px); align-items: center; }
.hero--rooms .hero-title { font-size: clamp(2.2rem, 4.4vw, 3.3rem); letter-spacing: -0.03em; }
.hero--rooms .hero-title .text-primary { color: var(--sr-teal-700); }
.hero--rooms .hero-subtitle { margin-bottom: 26px; }

.sr-search { background: #ffffff; border: 1px solid rgba(15, 23, 42, 0.08); border-radius: 3px; padding: 10px; box-shadow: 0 18px 40px rgba(4, 47, 46, 0.12); max-width: 620px; }
.sr-search__row { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) auto; gap: 8px; align-items: stretch; }
.sr-search__field { position: relative; display: flex; align-items: center; }
.sr-search__field i { position: absolute; left: 16px; color: var(--sr-teal-700); pointer-events: none; }
.sr-search input, .sr-search select {
    width: 100%; height: 52px; margin: 0; padding: 0 16px 0 42px; border: 1px solid transparent; border-radius: 3px;
    background: #f8fafc; font: inherit; font-size: 0.98rem; color: var(--sl-ink);
}
.sr-search select { padding-left: 42px; }
.sr-search input:focus, .sr-search select:focus { outline: none; border-color: var(--sr-teal); box-shadow: 0 0 0 4px rgba(13, 148, 136, 0.18); background: #ffffff; }
.sr-search .btn { height: 52px; min-height: 52px; padding-inline: 26px; }
@media (max-width: 720px) { .sr-search__row { grid-template-columns: 1fr; } .sr-search .btn { width: 100%; } }

.sr-hero-landlord { margin: 18px 0 0; font-size: 0.95rem; color: var(--sl-muted); }
.sr-hero-landlord a { color: var(--sr-teal-800); font-weight: 700; text-decoration: none; }
.sr-hero-landlord a:hover { text-decoration: underline; }

.benefit-chips li { border-color: rgba(13, 148, 136, 0.25); }
.benefit-chips li i { color: var(--sr-teal-700); }

.sr-hero-media { position: relative; }
.sr-hero-media__frame { border-radius: 3px; overflow: hidden; aspect-ratio: 4 / 5; max-height: 560px; box-shadow: 0 30px 60px rgba(4, 47, 46, 0.18); }
.sr-hero-media__frame img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sr-badge {
    position: absolute; display: flex; align-items: center; gap: 12px; padding: 12px 16px;
    background: #ffffff; border-radius: 3px; box-shadow: 0 12px 30px rgba(4, 47, 46, 0.16); font-size: 0.9rem; line-height: 1.3;
}
.sr-badge strong { display: block; color: var(--sl-ink); }
.sr-badge span { color: var(--sl-muted); font-size: 0.82rem; }
.sr-badge__icon { width: 38px; height: 38px; flex: 0 0 38px; border-radius: 3px; display: grid; place-items: center; background: var(--sr-teal-50); color: var(--sr-teal-700); }
.sr-badge--top { top: 28px; left: -28px; }
.sr-badge--bottom { bottom: 32px; right: -20px; }
@media (max-width: 960px) {
    .sr-hero-grid { grid-template-columns: 1fr; }
    .sr-hero-media { max-width: 520px; }
    .sr-hero-media__frame { aspect-ratio: 16 / 11; }
    .sr-badge--top { left: 12px; top: 12px; }
    .sr-badge--bottom { right: 12px; bottom: 12px; }
}

/* Split about image */
.split-about__image img { border-radius: 3px; }

/* Cards — soft, rounded, top accent removed in favour of teal icon tiles */
.feature, .pricing-card, .access-card { border-radius: 3px; }
.feature::before, .pricing-card::before, .access-card::before { display: none !important; }
.feature__icon { border-radius: 3px; background: var(--sr-teal-50); color: var(--sr-teal-700); }
.pricing-card__features li::before { color: var(--sr-teal-700); }

/* CTA band — solid deep teal */
.cta-section {
    background: var(--sr-teal-900) !important;
    background-image: radial-gradient(700px 300px at 90% 10%, rgba(94, 234, 212, 0.18), transparent 60%) !important;
    color: #ffffff; border: 0; padding: clamp(56px, 7vw, 88px) 0 !important;
}
.cta-section h2, .cta-section .cta-text h2 { color: #ffffff; }
.cta-section p, .cta-section .cta-text p { color: rgba(255, 255, 255, 0.78); }
.cta-section .cta-inner { min-height: 0; }
.cta-section .btn-white, .cta-section .btn-accent { background: #ffffff; border-color: #ffffff; color: var(--sr-teal-900); }
.cta-section .btn-white:hover, .cta-section .btn-accent:hover { background: var(--sr-teal-50); border-color: var(--sr-teal-50); color: var(--sr-teal-900); }
.cta-section .btn-outline-white { background: transparent; border-color: rgba(255, 255, 255, 0.5); color: #ffffff; }
.cta-section .btn-outline-white:hover { background: rgba(255, 255, 255, 0.1); border-color: #ffffff; color: #ffffff; }

/* Sign-in page: no illustration */
.login-page .auth-page { padding-bottom: clamp(48px, 6vw, 80px); background-image: linear-gradient(180deg, var(--sr-teal-50) 0%, #ffffff 70%); }

/* Footer — deep teal */
.site-footer { background: var(--sr-teal-950); }
.site-footer .footer-bottom { border-top-color: rgba(255, 255, 255, 0.1); }
.footer-col h4 { color: var(--sr-teal-300); }
.site-footer .footer-bottom a:hover, .footer-col a:hover { color: var(--sr-teal-300); }
.site-footer .footer-intro a { text-decoration-color: var(--sr-teal-300); }
.main-nav .nav-cta, .main-nav a.nav-cta.btn-primary { background: var(--sr-teal-700); border-color: var(--sr-teal-700); color: #ffffff; border-radius: 3px; }
.main-nav .nav-cta:hover { background: var(--sr-teal-800); border-color: var(--sr-teal-800); color: #ffffff; }
.cta-section + .site-footer, .site-footer { border-top: 1px solid rgba(94, 234, 212, 0.12); }
@media (max-width: 640px) { .sr-service-bar__note:first-child { display: inline-flex; } }
.sr-service-bar .container { justify-content: flex-end; gap: 28px; }

/* One button shape everywhere: pill */
.btn, a.btn, button.btn, .btn-sm, .btn-lg, .btn-block,
.nav-cta, .main-nav .nav-dashboard, .nav-btn-outline, .nav-logout,
.btn-marketplace, .message-inbox-item__placement-btn,
.match-deal__quiet-actions .match-deal__ignore-btn, .match-deal__quiet-actions .btn-ghost,
input[type="submit"], input[type="button"], button[type="submit"] {
    border-radius: 3px!important;
}
.sr-search { border-radius: 3px; }
.sr-search input, .sr-search select { border-radius: 3px; }
.main-nav .nav-cta, .main-nav a.nav-cta.btn-primary { background: var(--sr-teal-700) !important; border-color: var(--sr-teal-700) !important; box-shadow: 0 6px 18px rgba(15, 118, 110, 0.25); }
.main-nav .nav-cta:hover { background: var(--sr-teal-800) !important; border-color: var(--sr-teal-800) !important; }

/* Admin — free listings */
.free-listings-filter { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) auto; gap: 12px 16px; align-items: end; margin-top: 16px; }
.free-listings-filter .form-group { margin: 0; }
.free-listings-filter__actions { display: flex; gap: 8px; }
.free-listings-form { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0 0 6px; }
.free-listings-form input[type="date"] { width: 160px; }
.free-listings-form input[type="text"] { flex: 1 1 160px; min-width: 140px; }
.free-listings-form input { height: 38px; padding: 6px 10px; border: 1px solid var(--color-border); border-radius: 3px; font: inherit; font-size: 0.9rem; }
.free-listings-table td { vertical-align: top; }
.free-listings-table .badge { margin-top: 4px; }
.stat-card .value--date { font-size: 1.25rem; }
@media (max-width: 800px) { .free-listings-filter { grid-template-columns: 1fr; } }
.admin-sidebar { background: var(--sr-teal-950); }

/* Dashboard sidebar logo — left aligned with the role badge */
.admin-sidebar-brand { align-items: flex-start !important; text-align: left; }
.admin-sidebar .admin-logo { display: inline-flex; justify-content: flex-start; align-self: flex-start; width: auto; margin: 0 !important; }
.admin-sidebar .admin-logo .logo-img { margin: 0 !important; object-fit: contain; object-position: left center; }

/* Compact listing grids (tenant dashboard) — 4 per row */
.listings-grid--compact { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 1200px) { .listings-grid--compact { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 900px) { .listings-grid--compact { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .listings-grid--compact { grid-template-columns: 1fr; } }

/* Dashboard stat tiles — 4 per row (5 when there are five) */
.stat-cards { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.stat-cards:has(> :nth-child(5)) { grid-template-columns: repeat(5, minmax(0, 1fr)); }
@media (max-width: 1100px) { .stat-cards, .stat-cards:has(> :nth-child(5)) { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 700px) { .stat-cards, .stat-cards:has(> :nth-child(5)) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Public preview (guests) */
.search-gate {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px;
    padding: 18px 20px; margin: 0 0 28px; background: var(--sr-teal-50); border: 1px solid rgba(13, 148, 136, 0.25); border-radius: 3px;
}
.search-gate__text { display: flex; flex-direction: column; gap: 4px; max-width: 640px; }
.search-gate__text span { color: var(--sl-muted); }
.search-gate__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.listing-card__lock { display: flex; align-items: center; gap: 6px; margin: 12px 0 0; font-size: 0.82rem; font-weight: 600; color: var(--sr-teal-800); }
.listing-locked {
    display: flex; gap: 14px; align-items: flex-start; margin: 24px 0; padding: 18px 20px;
    background: var(--sr-teal-50); border: 1px solid rgba(13, 148, 136, 0.25); border-radius: 3px;
}
.listing-locked i { margin-top: 3px; color: var(--sr-teal-700); }
.listing-locked strong { display: block; margin-bottom: 4px; }
.listing-locked p { margin: 0; color: var(--sl-muted); }

/* Listing gallery */
.listing-gallery { margin: 0 0 20px; }
.listing-gallery .listing-detail__media { position: relative; margin: 0; }
.listing-gallery .listing-detail__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 3px; background: #F1F5F9; display: block; }
.listing-gallery__more {
    position: absolute; right: 12px; bottom: 12px; display: inline-flex; align-items: center; gap: 6px;
    padding: 6px 10px; background: rgba(4, 47, 46, 0.85); color: #fff; font-size: 0.8rem; font-weight: 600; border-radius: 3px;
}
.listing-gallery__thumbs { display: grid; grid-template-columns: repeat(auto-fill, minmax(88px, 1fr)); gap: 8px; margin-top: 10px; }
.listing-gallery__thumb { padding: 0; border: 2px solid transparent; border-radius: 3px; background: none; cursor: pointer; overflow: hidden; }
.listing-gallery__thumb img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.listing-gallery__thumb.is-active { border-color: var(--sr-teal); }

/* Tenant listing (control panel) */
.tenant-listing { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(280px, 1fr); gap: 24px; align-items: start; }
.tenant-listing .card { margin-bottom: 0; }
.tenant-listing__title { margin: 6px 0 6px; font-size: 1.5rem; }
.tenant-listing__aside { position: sticky; top: 96px; }
.tenant-listing__aside .form-group { margin-bottom: 14px; }
.tenant-listing__aside .save-form { margin-top: 10px; }
@media (max-width: 1000px) { .tenant-listing { grid-template-columns: 1fr; } .tenant-listing__aside { position: static; } }
.dashboard-search .search-filters { margin: 0; }

/* ==========================================================================
   Spacing pass — consistent gaps between buttons, text and form parts
   ========================================================================== */
/* Buttons that sit next to or under each other */
.btn-row, .hero-actions, .cta-actions, .form-actions, .form-actions__primary, .form-actions__secondary,
.search-gate__actions, .free-listings-filter__actions, .about-mission__links { gap: 12px; }
.btn-row, .hero-actions, .cta-actions { display: flex; flex-wrap: wrap; }
.btn-block + .btn-block, .btn-block + form, form + .btn-block, .save-form { margin-top: 10px; }
.form-card > .btn-block:first-of-type, .card > .btn-block:first-of-type { margin-top: 16px; }
.form-hint + .btn, .form-hint + .btn-block, p + .btn-row, p + .hero-actions { margin-top: 16px; }
.section-cta { display: flex; justify-content: center; gap: 12px; margin-top: 32px; }
.empty-state .btn { margin-top: 16px; }

/* Card and aside headings get room before their content */
.card > h2, .form-card > h2, .listing-detail__aside h2, .tenant-listing__aside h2 { margin: 0 0 12px; }
.listing-detail__aside .form-hint { margin: 0 0 4px; }

/* Table action links */
.admin-table td.table-actions a, .admin-table td.table-actions .btn-link,
.admin-table td.table-actions .btn-link-danger, .admin-table td.table-actions .inline-form { margin-left: 16px; }

/* Search filters: fields, then a tidy row of features and the button */
.search-filters { display: grid; gap: 16px; }
.search-filters__row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; align-items: end; margin: 0; }
.search-filters__row--more { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 2fr); }
.search-filters .form-group { margin: 0; }
.search-filters__checks { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; min-height: 46px; }
.search-filters__checks .checkbox-group { display: inline-flex; align-items: center; gap: 8px; margin: 0; padding: 0; }
.search-filters__checks .checkbox-group label { margin: 0; font-weight: 600; font-size: 0.92rem; }
.search-filters__checks input[type="checkbox"] { width: 18px; height: 18px; margin: 0; accent-color: var(--sr-teal-700); }
.search-filters__submit { grid-column: 1 / -1; display: flex; justify-content: flex-end; }
.search-filters__submit .btn { min-width: 180px; }
@media (max-width: 900px) {
    .search-filters__row, .search-filters__row--more { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .search-filters__checks { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
    .search-filters__row, .search-filters__row--more { grid-template-columns: 1fr; gap: 12px; }
    .search-filters__checks { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
    .search-filters__submit .btn { width: 100%; }
}

/* Admin free listings on phones: stack each landlord as a card */
@media (max-width: 800px) {
    .free-listings-table, .free-listings-table tbody, .free-listings-table tr, .free-listings-table td { display: block; width: 100%; }
    .free-listings-table thead { display: none; }
    .free-listings-table tr { padding: 14px 0; border-bottom: 1px solid var(--color-border); }
    .free-listings-table td { padding: 4px 0; border: 0; }
    .free-listings-table td:nth-child(2)::before { content: 'Live listings: '; font-weight: 600; }
    .free-listings-form input[type="date"], .free-listings-form input[type="text"], .free-listings-form .btn { width: 100%; flex: 1 1 100%; }
}
.admin-content { min-width: 0; }
.admin-main { min-width: 0; overflow-x: hidden; }
@media (max-width: 800px) { .free-listings-table tr { padding: 14px; } }
.photo-upload { margin-top: 12px; } .photo-grid { margin-top: 12px; }

/* ==========================================================================
   Find a home — search bar, toolbar and 4-up responsive grid
   ========================================================================== */
.search-hero { padding: clamp(28px, 4vw, 48px) 0 clamp(24px, 3vw, 36px); }
.search-hero h1 { font-size: clamp(1.7rem, 3vw, 2.3rem); margin: 0 0 8px; }
.search-hero .subtitle { margin: 0 0 22px; max-width: 680px; }
.search-hero .section-tag { margin-bottom: 12px; }
.search-hero + .section { padding-top: clamp(24px, 3vw, 36px); }

.search-bar { background: #fff; border: 1px solid var(--sl-border); border-radius: 3px; box-shadow: 0 10px 28px rgba(4, 47, 46, 0.08); padding: 16px; }
.search-bar__main { display: grid; grid-template-columns: minmax(0, 1.3fr) repeat(4, minmax(0, 1fr)) auto; gap: 12px; align-items: end; }
.search-bar__field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.search-bar__field label { font-size: 0.8rem; font-weight: 700; color: var(--sl-ink); margin: 0; }
.search-bar__field input, .search-bar__field select {
    width: 100%; height: 46px; margin: 0; padding: 0 12px; border: 1px solid var(--sl-border); border-radius: 3px;
    background-color: #fff; font: inherit; font-size: 0.95rem; color: var(--sl-ink);
}
.search-bar__field input:focus, .search-bar__field select:focus { outline: none; border-color: var(--sr-teal); box-shadow: 0 0 0 3px rgba(13, 148, 136, 0.18); }
.search-bar__submit .btn { height: 46px; min-height: 46px; padding: 0 24px; gap: 8px; white-space: nowrap; }
.search-bar__more { margin-top: 12px; border-top: 1px solid var(--sl-border); padding-top: 10px; }
.search-bar__more summary { cursor: pointer; font-weight: 700; font-size: 0.9rem; color: var(--sr-teal-800); list-style: none; display: inline-flex; align-items: center; gap: 6px; }
.search-bar__more summary::-webkit-details-marker { display: none; }
.search-bar__more summary::after { content: '+'; font-weight: 800; }
.search-bar__more[open] summary::after { content: '−'; }
.search-bar__extra { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 180px) minmax(0, 2fr); gap: 12px 16px; align-items: end; margin-top: 12px; }
.search-bar__checks { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; min-height: 46px; }
.search-chip { position: relative; margin: 0; cursor: pointer; }
.search-chip input { position: absolute; opacity: 0; pointer-events: none; }
.search-chip span {
    display: inline-flex; align-items: center; height: 38px; padding: 0 14px; border: 1px solid var(--sl-border); border-radius: 3px;
    background: #fff; font-size: 0.88rem; font-weight: 600; color: var(--sl-ink); transition: background .15s, border-color .15s;
}
.search-chip input:checked + span { background: var(--sr-teal-50); border-color: var(--sr-teal); color: var(--sr-teal-800); }
.search-chip input:checked + span::before { content: '✓'; margin-right: 6px; font-weight: 800; }
.search-chip input:focus-visible + span { box-shadow: 0 0 0 3px rgba(13, 148, 136, 0.25); }

.search-toolbar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px 16px; margin: 0 0 16px; }
.search-toolbar .search-count { margin: 0; color: var(--sl-muted); }
.search-toolbar .search-count strong { color: var(--sl-ink); }
.search-gate { margin-bottom: 20px; }

/* Listing grid: 4 / 3 / 2 / 1 */
.listings-grid, .listings-grid--compact { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.listing-card__media { aspect-ratio: 4 / 3; }
.listing-card__body { padding: 14px 16px 16px; }
.listing-card h3 { font-size: 1rem; line-height: 1.35; }
.listing-card__facts { gap: 6px; }
.listing-card__lock { margin-top: auto; padding-top: 10px; }
.listing-card__body { flex: 1; }
.pagination { display: flex; justify-content: center; align-items: center; gap: 16px; margin-top: 32px; }

@media (max-width: 1200px) {
    .listings-grid, .listings-grid--compact { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .search-bar__main { grid-template-columns: repeat(2, minmax(0, 1fr)) repeat(2, minmax(0, 1fr)); }
    .search-bar__field--grow { grid-column: 1 / -1; }
    .search-bar__submit { grid-column: 1 / -1; }
    .search-bar__submit .btn { width: 100%; }
}
@media (max-width: 900px) {
    .listings-grid, .listings-grid--compact { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
    .search-bar__main { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .search-bar__extra { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
    .search-bar__checks { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
    .listings-grid, .listings-grid--compact { grid-template-columns: 1fr; }
    .search-bar { padding: 12px; }
    .search-bar__main, .search-bar__extra { grid-template-columns: 1fr; }
}
/* Dashboard content is narrower (sidebar), so step down earlier there */
@media (max-width: 1200px) { .admin-content .listings-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 1000px) { .admin-content .listings-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px)  { .admin-content .listings-grid { grid-template-columns: 1fr; } }
.admin-content .search-bar { box-shadow: none; border: 0; padding: 0; }

/* ==========================================================================
   FAQ page header — compact (half height)
   ========================================================================== */
.faq-page__intro { padding: clamp(24px, 3vw, 36px) 0 !important; }
.faq-page__intro .split-about { grid-template-columns: minmax(0, 220px) minmax(0, 1fr); gap: clamp(20px, 3vw, 40px); align-items: center; }
.faq-page__intro .split-about__image img, .faq-page__intro .about-intro__visual img { width: 100%; max-height: 150px; object-fit: contain; }
.faq-page__intro h1 { font-size: clamp(1.6rem, 2.6vw, 2.1rem); margin: 0 0 8px; }
.faq-page__intro .about-lead { margin: 0; font-size: 1rem; }
.faq-page__intro .section-tag { margin-bottom: 10px; }
@media (max-width: 700px) { .faq-page__intro .split-about__image { display: none; } .faq-page__intro .split-about { grid-template-columns: 1fr; } }
/* The FAQ illustration described partner/provider matching (not SocialRooms) — hide it */
.faq-page__intro .split-about__image { display: none; }
.faq-page__intro .split-about { grid-template-columns: 1fr; }
.faq-page__intro .split-about__text { max-width: 760px; }
/* Header between tablet and desktop: tighten so the menu fits */
@media (min-width: 769px) and (max-width: 1024px) {
    .main-nav { gap: 14px !important; }
    .main-nav a:not(.nav-cta):not(.nav-btn-outline):not(.nav-logout) { font-size: 0.88rem !important; }
    .main-nav .nav-cta { padding: 10px 14px !important; font-size: 0.88rem !important; }
    .site-header .logo-img { height: 44px !important; width: auto !important; }
}

/* Tenant benefits */
.benefits-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 8px 0 18px; }
.benefit-option { display: flex; align-items: center; gap: 10px; margin: 0; padding: 12px 14px; border: 1px solid var(--sl-border); border-radius: 3px; background: #fff; cursor: pointer; font-weight: 600; font-size: 0.93rem; }
.benefit-option input { width: 18px; height: 18px; margin: 0; flex: 0 0 18px; accent-color: var(--sr-teal-700); }
.benefit-option:has(input:checked) { border-color: var(--sr-teal); background: var(--sr-teal-50); }
.benefit-option--none { grid-column: 1 / -1; }
.benefits-other { margin: 0 0 18px; }
.benefits-other[hidden] { display: none; }
.benefits-proof, .enquiry-benefits { display: flex; gap: 12px; align-items: flex-start; padding: 16px 18px; margin: 0 0 20px; background: var(--sr-teal-50); border: 1px solid rgba(13, 148, 136, 0.25); border-radius: 3px; }
.enquiry-benefits { display: block; margin: 12px 0 0; }
.enquiry-benefits ul { margin: 8px 0; padding-left: 18px; }
.enquiry-benefits p { margin: 6px 0 0; }
.benefits-proof i { color: var(--sr-teal-700); margin-top: 3px; }
.benefits-proof strong { display: block; margin-bottom: 4px; }
.benefits-proof p { margin: 0; color: var(--sl-muted); }
.benefits-reminder { display: flex; gap: 8px; align-items: flex-start; margin: 12px 0 0; font-size: 0.85rem; }
.benefits-reminder i { color: var(--sr-teal-700); margin-top: 3px; }
.benefits-summary__head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 10px; }
.benefits-summary__head h2 { margin: 0; }
.benefits-summary__list { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0 0 12px; padding: 0; }
.benefits-summary__list li { padding: 6px 12px; background: var(--sr-teal-50); border: 1px solid rgba(13, 148, 136, 0.25); border-radius: 3px; font-size: 0.88rem; font-weight: 600; }
@media (max-width: 640px) { .benefits-options { grid-template-columns: 1fr; } }
/* Checkbox/radio to label text: always a clear gap */
.benefit-option, .form-group .benefit-option, label.benefit-option:has(> input) { display: flex !important; gap: 10px !important; }
label:has(> input[type="radio"]) { display: inline-flex; align-items: center; gap: 6px; }

/* ==========================================================================
   Listing page — half-width photo carousel beside the key details, and map
   ========================================================================== */
.listing-top { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; align-items: start; margin: 0 0 24px; }
.listing-top__details h1, .listing-top__details .tenant-listing__title { margin-top: 4px; }
.listing-top__details .listing-detail__price { margin-top: 0; }
.listing-carousel { min-width: 0; outline: none; }
.listing-carousel:focus-visible .listing-carousel__viewport { box-shadow: 0 0 0 3px rgba(13, 148, 136, 0.35); }
.listing-carousel__viewport { position: relative; overflow: hidden; border-radius: 3px; background: #F1F5F9; aspect-ratio: 4 / 3; }
.listing-carousel__track { display: flex; height: 100%; transition: transform .35s ease; }
.listing-carousel__slide { flex: 0 0 100%; height: 100%; }
.listing-carousel__slide img { display: block; width: 100%; height: 100%; object-fit: cover; }
.listing-carousel .listing-card__kind { z-index: 2; }
.listing-carousel__nav {
    position: absolute; top: 50%; transform: translateY(-50%); z-index: 2;
    width: 38px; height: 38px; display: grid; place-items: center; padding: 0;
    border: 0; border-radius: 3px; background: rgba(255, 255, 255, 0.92); color: var(--sl-ink);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); cursor: pointer; font-size: 0.95rem;
}
.listing-carousel__nav:hover { background: #fff; color: var(--sr-teal-700); }
.listing-carousel__nav--prev { left: 10px; }
.listing-carousel__nav--next { right: 10px; }
.listing-carousel__nav span { font-size: 1.7rem; line-height: 1; margin-top: -3px; }
.listing-carousel__count {
    position: absolute; right: 10px; bottom: 10px; z-index: 2; padding: 4px 10px; border-radius: 3px;
    background: rgba(4, 47, 46, 0.8); color: #fff; font-size: 0.8rem; font-weight: 700;
}
.listing-carousel__thumbs { display: flex; gap: 8px; margin-top: 10px; overflow-x: auto; padding-bottom: 4px; scrollbar-width: thin; }
.listing-carousel__thumb { flex: 0 0 72px; padding: 0; border: 2px solid transparent; border-radius: 3px; background: none; cursor: pointer; overflow: hidden; opacity: 0.75; }
.listing-carousel__thumb img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.listing-carousel__thumb.is-active { border-color: var(--sr-teal); opacity: 1; }
.listing-carousel .listing-gallery__more { z-index: 2; left: 10px; right: auto; }

.listing-map { margin-top: 28px; }
.listing-map h3 { margin: 0 0 6px; }
.listing-map__note { margin: 0 0 12px; }
.listing-map__canvas { position: relative; z-index: 0; height: 320px; border: 1px solid var(--sl-border); border-radius: 3px; background: #F1F5F9; overflow: hidden; }
.listing-map__loading { display: grid; place-items: center; height: 100%; margin: 0; color: var(--sl-muted); font-size: 0.9rem; }

@media (max-width: 800px) {
    .listing-top { grid-template-columns: 1fr; }
    .listing-map__canvas { height: 260px; }
}

/* About page — intro image at 60% of its previous size */
@media (min-width: 769px) {
    .about-page .about-intro__layout { grid-template-columns: minmax(0, 1fr) minmax(0, 3fr); }
}
@media (max-width: 768px) {
    .about-page .about-intro__visual { max-width: 60%; }
}

/* ==========================================================================
   About page (v2)
   ========================================================================== */
.about-hero {
    padding: clamp(40px, 6vw, 80px) 0;
    background: radial-gradient(1000px 420px at 85% 0%, rgba(13, 148, 136, 0.12), transparent 60%), linear-gradient(180deg, var(--sr-teal-50) 0%, #ffffff 100%);
}
.about-hero__grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 64px); align-items: center; }
.about-hero h1 { font-size: clamp(2rem, 4vw, 3rem); line-height: 1.1; letter-spacing: -0.03em; margin: 0 0 16px; }
.about-hero__lead { font-size: 1.1rem; line-height: 1.6; color: var(--sl-muted); max-width: 620px; margin: 0 0 24px; }
.about-hero__facts { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.about-hero__facts li { display: flex; align-items: center; gap: 14px; padding: 16px 18px; background: #fff; border: 1px solid var(--sl-border); border-radius: 3px; box-shadow: 0 10px 24px rgba(4, 47, 46, 0.06); }
.about-hero__facts strong { display: block; color: var(--sl-ink); }
.about-hero__facts span:not(.about-hero__icon) { color: var(--sl-muted); font-size: 0.9rem; }
.about-hero__icon { width: 42px; height: 42px; flex: 0 0 42px; display: grid; place-items: center; border-radius: 3px; background: var(--sr-teal-50); color: var(--sr-teal-700); font-size: 1.1rem; }

.about-story__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: clamp(28px, 5vw, 64px); align-items: center; max-width: 1040px; }
.about-story__visual { margin: 0; border: 1px solid var(--sl-border); border-radius: 3px; overflow: hidden; background: #F8FAFC; }
.about-story__visual img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: contain; }
.about-story__text h2 { margin: 0 0 14px; font-size: clamp(1.5rem, 2.5vw, 2rem); }
.about-story__text p { color: var(--sl-muted); line-height: 1.7; margin: 0 0 14px; }

.about-audience__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.about-audience__card { display: flex; flex-direction: column; gap: 12px; padding: 28px; background: #fff; border: 1px solid var(--sl-border); border-radius: 3px; }
.about-audience__card h3 { margin: 0; font-size: 1.3rem; }
.about-audience__icon { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 3px; background: var(--sr-teal-700); color: #fff; font-size: 1.2rem; }
.about-audience__card ul { list-style: none; margin: 4px 0 8px; padding: 0; display: grid; gap: 10px; flex: 1; }
.about-audience__card li { position: relative; padding-left: 26px; color: var(--sl-muted); }
.about-audience__card li::before { content: '✓'; position: absolute; left: 0; top: 0; color: var(--sr-teal-700); font-weight: 800; }
.about-audience__card .btn { align-self: flex-start; }

.about-values__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.about-mission-band { padding: clamp(44px, 6vw, 72px) 0; background: #fff; border-top: 1px solid var(--sl-border); text-align: center; }
.about-mission-band .section-tag { margin-bottom: 16px; }
.about-mission-band blockquote { max-width: 860px; margin: 0 auto; font-size: clamp(1.25rem, 2.4vw, 1.75rem); line-height: 1.45; font-weight: 600; letter-spacing: -0.01em; color: var(--sl-ink); }

@media (max-width: 1000px) { .about-values__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 800px) {
    .about-hero__grid, .about-story__grid, .about-audience__grid { grid-template-columns: 1fr; }
    .about-story__visual { max-width: 60%; }
}
@media (max-width: 560px) { .about-values__grid { grid-template-columns: 1fr; } .about-audience__card .btn { align-self: stretch; } }

/* ==========================================================================
   Pricing page (v2)
   ========================================================================== */
.pricing-hero { padding: clamp(40px, 6vw, 72px) 0 clamp(120px, 12vw, 150px); text-align: center; background: radial-gradient(900px 380px at 50% 0%, rgba(13, 148, 136, 0.14), transparent 65%), linear-gradient(180deg, var(--sr-teal-50) 0%, #ffffff 100%); }
.pricing-hero h1 { font-size: clamp(2rem, 4vw, 3rem); letter-spacing: -0.03em; margin: 0 0 12px; }
.pricing-hero__lead { max-width: 620px; margin: 0 auto; font-size: 1.1rem; line-height: 1.6; color: var(--sl-muted); }
.pricing-plans { padding-top: 0 !important; margin-top: clamp(-110px, -10vw, -90px); }
.plan-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; max-width: 920px; margin: 0 auto; align-items: stretch; }
.plan { position: relative; display: flex; flex-direction: column; gap: 18px; padding: 32px; background: #fff; border: 1px solid var(--sl-border); border-radius: 3px; box-shadow: 0 18px 40px rgba(4, 47, 46, 0.08); }
.plan--featured { border: 2px solid var(--sr-teal); box-shadow: 0 24px 50px rgba(15, 118, 110, 0.18); }
.plan__badge { position: absolute; top: -14px; right: 24px; padding: 6px 12px; border-radius: 3px; background: var(--sr-teal-700); color: #fff; font-size: 0.78rem; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; }
.plan__head { display: grid; grid-template-columns: auto 1fr; column-gap: 14px; align-items: center; }
.plan__icon { grid-row: span 2; width: 48px; height: 48px; display: grid; place-items: center; border-radius: 3px; background: var(--sr-teal-50); color: var(--sr-teal-700); font-size: 1.2rem; }
.plan--featured .plan__icon { background: var(--sr-teal-700); color: #fff; }
.plan__name { margin: 0; font-size: 1.35rem; }
.plan__for { margin: 2px 0 0; color: var(--sl-muted); font-size: 0.92rem; }
.plan__price { display: flex; align-items: baseline; gap: 10px; padding-top: 18px; border-top: 1px solid var(--sl-border); }
.plan__amount { font-size: clamp(2.6rem, 5vw, 3.4rem); font-weight: 800; letter-spacing: -0.04em; line-height: 1; color: var(--sl-ink); }
.plan__unit { color: var(--sl-muted); font-weight: 600; }
.plan__then { margin: -8px 0 0; padding: 10px 12px; background: var(--sr-teal-50); border-radius: 3px; color: var(--sr-teal-800); font-size: 0.95rem; }
.plan__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; flex: 1; }
.plan__list li { position: relative; padding-left: 28px; color: var(--sl-ink); }
.plan__list li::before { content: '✓'; position: absolute; left: 0; top: 0; width: 18px; height: 18px; display: grid; place-items: center; border-radius: 50%; background: var(--sr-teal-50); color: var(--sr-teal-700); font-size: 0.72rem; font-weight: 800; margin-top: 3px; }
.plan__cta { margin-top: 6px; }

.pricing-how__grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 24px; align-items: start; }
.pricing-steps { list-style: none; counter-reset: step; margin: 0; padding: 0; display: grid; gap: 12px; }
.pricing-steps li { counter-increment: step; position: relative; display: grid; gap: 4px; padding: 18px 20px 18px 68px; background: #fff; border: 1px solid var(--sl-border); border-radius: 3px; }
.pricing-steps li::before { content: counter(step); position: absolute; left: 20px; top: 18px; width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; background: var(--sr-teal-700); color: #fff; font-weight: 800; }
.pricing-steps span { color: var(--sl-muted); }
.pricing-examples { padding: 22px; background: #fff; border: 1px solid var(--sl-border); border-radius: 3px; }
.pricing-examples h3 { margin: 0 0 12px; font-size: 1.05rem; }
.pricing-examples table { width: 100%; border-collapse: collapse; }
.pricing-examples th, .pricing-examples td { padding: 10px 0; border-bottom: 1px solid var(--sl-border); text-align: left; }
.pricing-examples th { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--sl-muted); }
.pricing-examples td:last-child, .pricing-examples th:last-child { text-align: right; font-weight: 700; }
.pricing-examples tr:last-child td { border-bottom: 0; }

.pricing-faq__inner { max-width: 820px; }
.pricing-faq details { border: 1px solid var(--sl-border); border-radius: 3px; background: #fff; margin-bottom: 10px; }
.pricing-faq summary { cursor: pointer; list-style: none; padding: 16px 20px; font-weight: 700; display: flex; justify-content: space-between; gap: 16px; }
.pricing-faq summary::-webkit-details-marker { display: none; }
.pricing-faq summary::after { content: '+'; color: var(--sr-teal-700); font-weight: 800; }
.pricing-faq details[open] summary::after { content: '−'; }
.pricing-faq details p { margin: 0; padding: 0 20px 18px; color: var(--sl-muted); }
.pricing-faq__more { margin: 18px 0 0; color: var(--sl-muted); }

@media (max-width: 800px) {
    .plan-grid, .pricing-how__grid { grid-template-columns: 1fr; }
    .plan { padding: 24px; }
    .pricing-plans { margin-top: -80px; }
}
.plan__list, .about-audience__card ul { align-content: start; }

/* ==========================================================================
   Register page (v2)
   ========================================================================== */
.register-page { padding: clamp(32px, 5vw, 64px) 0; background: radial-gradient(900px 400px at 10% 0%, rgba(13, 148, 136, 0.10), transparent 60%), linear-gradient(180deg, var(--sr-teal-50) 0%, #ffffff 60%); }
.register-layout { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); gap: 0; max-width: 1080px; margin: 0 auto; border-radius: 3px; overflow: hidden; box-shadow: 0 24px 60px rgba(4, 47, 46, 0.14); }
.register-aside { display: flex; flex-direction: column; justify-content: space-between; gap: 32px; padding: clamp(28px, 4vw, 48px); background: radial-gradient(600px 300px at 100% 0%, rgba(94, 234, 212, 0.18), transparent 60%), var(--sr-teal-900); color: rgba(255, 255, 255, 0.85); }
.register-aside [hidden] { display: none !important; }
.register-aside__tag { display: inline-block; margin: 0 0 14px; padding: 5px 10px; border-radius: 3px; background: rgba(94, 234, 212, 0.16); color: var(--sr-teal-300); font-size: 0.78rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; }
.register-aside h2 { margin: 0 0 22px; color: #fff; font-size: clamp(1.5rem, 2.4vw, 2rem); line-height: 1.2; letter-spacing: -0.02em; }
.register-aside__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.register-aside__list li { display: flex; gap: 12px; align-items: flex-start; line-height: 1.5; }
.register-aside__list i { color: var(--sr-teal-300); margin-top: 4px; }
.register-aside__foot { margin: 0; font-size: 0.92rem; }
.register-aside__foot a { color: #fff; font-weight: 700; text-decoration: underline; text-decoration-color: var(--sr-teal-300); text-underline-offset: 3px; }

.register-card { padding: clamp(28px, 4vw, 48px); background: #fff; }
.register-card h1 { margin: 0 0 6px; font-size: clamp(1.6rem, 2.6vw, 2rem); letter-spacing: -0.02em; }
.register-card__lead { margin: 0 0 24px; color: var(--sl-muted); }
.register-card__lead .req { color: #dc2626; font-weight: 700; }
.register-card__signin { margin: 18px 0 0; text-align: center; color: var(--sl-muted); display: none; }
.register-form .form-group { margin-bottom: 16px; }
.register-form .form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.register-form .form-row > .form-group[hidden] { display: none; }
.register-form label .optional { font-weight: 500; color: var(--sl-muted); font-size: 0.85em; }
.register-roles { border: 0; margin: 0 0 20px; padding: 0; }
.register-roles legend { padding: 0; margin: 0 0 10px; font-weight: 700; font-size: 0.9rem; }
.register-roles .role-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; }
.register-roles .role-card { position: relative; display: flex !important; align-items: center; gap: 12px !important; margin: 0; padding: 14px 16px; border: 1.5px solid var(--sl-border); border-radius: 3px; background: #fff; cursor: pointer; text-align: left; transition: border-color .15s, background .15s; }
.register-roles .role-card input { position: absolute; opacity: 0; pointer-events: none; }
.register-roles .role-card:hover { border-color: rgba(13, 148, 136, 0.5); }
.register-roles .role-card.selected, .register-roles .role-card:has(input:checked) { border-color: var(--sr-teal); background: var(--sr-teal-50); box-shadow: 0 0 0 3px rgba(13, 148, 136, 0.12); }
.register-roles .role-card:has(input:focus-visible) { box-shadow: 0 0 0 3px rgba(13, 148, 136, 0.35); }
.role-card__icon { width: 40px; height: 40px; flex: 0 0 40px; display: grid; place-items: center; border-radius: 3px; background: var(--sr-teal-50); color: var(--sr-teal-700); }
.register-roles .role-card.selected .role-card__icon, .register-roles .role-card:has(input:checked) .role-card__icon { background: var(--sr-teal-700); color: #fff; }
.role-card__text { display: flex; flex-direction: column; gap: 2px; }
.role-card__text strong { font-size: 1rem; color: var(--sl-ink); }
.role-card__text span { font-size: 0.85rem; color: var(--sl-muted); }
.password-field { position: relative; }
.password-field input { padding-right: 72px; }
.password-field__toggle { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); padding: 6px 10px; border: 0; border-radius: 3px; background: var(--sr-teal-50); color: var(--sr-teal-800); font: inherit; font-size: 0.82rem; font-weight: 700; cursor: pointer; }
.register-terms { margin: 4px 0 20px !important; align-items: flex-start !important; }
.register-terms input { margin-top: 3px !important; }
.register-terms label { font-weight: 500; font-size: 0.92rem; line-height: 1.5; }

@media (max-width: 900px) {
    .register-layout { grid-template-columns: 1fr; }
    .register-aside { order: 2; }
    .register-aside__foot { display: none; }
    .register-card__signin { display: block; }
}
@media (max-width: 560px) {
    .register-form .form-row, .register-roles .role-cards { grid-template-columns: 1fr; gap: 0 16px; }
    .register-roles .role-cards { gap: 10px; }
    .register-page { padding: 0; background: #fff; }
    .register-layout { box-shadow: none; }
}
.register-form .req { color: #dc2626; font-weight: 700; }

/* Pricing — calmer, more compact */
.pricing-hero { padding: clamp(28px, 4vw, 44px) 0 clamp(84px, 9vw, 100px); background: linear-gradient(180deg, var(--sr-teal-50) 0%, #ffffff 100%); }
.pricing-hero h1 { font-size: clamp(1.6rem, 2.8vw, 2.1rem); margin-bottom: 8px; }
.pricing-hero__lead { font-size: 1rem; max-width: 560px; }
.pricing-hero .section-tag { margin-bottom: 10px; }
.pricing-plans { margin-top: clamp(-72px, -7vw, -60px); padding-bottom: clamp(36px, 4vw, 48px) !important; }
.plan-grid { max-width: 820px; gap: 18px; }
.plan { padding: 22px 24px; gap: 14px; box-shadow: 0 6px 18px rgba(4, 47, 46, 0.06); }
.plan--featured { border-width: 1px; box-shadow: 0 8px 22px rgba(15, 118, 110, 0.10); }
.plan__badge { top: -11px; padding: 4px 10px; font-size: 0.7rem; }
.plan__icon { width: 38px; height: 38px; font-size: 1rem; }
.plan__name { font-size: 1.15rem; }
.plan__for { font-size: 0.86rem; }
.plan__price { padding-top: 14px; gap: 8px; }
.plan__amount { font-size: clamp(1.9rem, 3vw, 2.3rem); }
.plan__unit { font-size: 0.9rem; }
.plan__then { font-size: 0.88rem; padding: 8px 10px; margin-top: -4px; }
.plan__list { gap: 8px; font-size: 0.92rem; }
.plan__cta { margin-top: 2px; }
.plan .btn-block { min-height: 42px; }
.pricing-how, .pricing-faq { padding: clamp(36px, 4vw, 52px) 0 !important; }
.pricing-how .section-head, .pricing-faq .section-head { margin-bottom: 20px; }
.pricing-how .section-head h2, .pricing-faq .section-head h2 { font-size: clamp(1.3rem, 2.2vw, 1.6rem); }
.pricing-steps li { padding: 14px 16px 14px 58px; font-size: 0.93rem; }
.pricing-steps li::before { width: 26px; height: 26px; left: 18px; top: 14px; font-size: 0.85rem; }
.pricing-examples { padding: 18px; font-size: 0.93rem; }
.pricing-faq summary { padding: 13px 18px; font-size: 0.95rem; }
.pricing-faq details p { padding: 0 18px 14px; font-size: 0.93rem; }
.pricing-how__grid { max-width: 920px; }
.pricing-how > .container { max-width: 920px; } .pricing-faq__inner { max-width: 820px; }

/* ==========================================================================
   Featured (promoted) listings
   ========================================================================== */
.listing-card--promoted { position: relative; border: 2px solid var(--sr-teal) !important; box-shadow: 0 10px 26px rgba(15, 118, 110, 0.18); background: linear-gradient(180deg, #fff 0%, var(--sr-teal-50) 100%); }
.listing-card--promoted .listing-card__price { color: var(--sr-teal-800); }
.listing-card__featured {
    position: absolute; z-index: 3; top: 12px; right: 12px; display: inline-flex; align-items: center; gap: 6px;
    padding: 5px 10px; border-radius: 3px; background: #F59E0B; color: #1f1300; font-size: 0.74rem; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
}
.listing-card--promoted .listing-card__featured::before { content: none; }
.badge-featured { display: inline-flex; align-items: center; gap: 5px; background: #FEF3C7; color: #92400E; font-weight: 700; }
.listing-featured-badge { margin: 0 0 6px; }
.promo-cell { white-space: nowrap; }
.promo-cell .btn-link { margin-left: 8px; }
.promo-callout { display: flex; gap: 12px; align-items: flex-start; margin: 0 0 18px; padding: 14px 16px; border: 1px solid #FCD34D; border-radius: 3px; background: #FFFBEB; color: #78350F; }
.promo-callout i { color: #F59E0B; margin-top: 3px; }

.promote-layout { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(260px, 0.7fr); gap: 24px; align-items: start; }
.promote-offer__tag { display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border-radius: 3px; background: #FEF3C7; color: #92400E; font-size: 0.78rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.04em; }
.promote-offer h2 { margin: 14px 0 6px; font-size: 1.5rem; }
.promote-offer__price { margin: 0 0 16px; color: var(--sl-muted); }
.promote-offer__price strong { font-size: 1.6rem; color: var(--sl-ink); margin-right: 4px; }
.promote-offer__list { list-style: none; margin: 0 0 18px; padding: 0; display: grid; gap: 10px; }
.promote-offer__list li { position: relative; padding-left: 26px; }
.promote-offer__list li::before { content: '✓'; position: absolute; left: 0; color: var(--sr-teal-700); font-weight: 800; }
.promote-offer__note { margin: 0 0 16px; padding: 12px 14px; border-radius: 3px; background: var(--sr-teal-50); color: var(--sr-teal-800); }
.promote-offer .btn i { margin-right: 6px; }
.promote-offer__secure { margin: 10px 0 0; font-size: 0.85rem; color: var(--sl-muted); }
.promote-preview h3 { margin: 0 0 12px; font-size: 1rem; }
.promote-history { margin-top: 18px; padding: 14px 16px; background: #fff; border: 1px solid var(--sl-border); border-radius: 3px; }
.promote-history h4 { margin: 0 0 8px; font-size: 0.9rem; }
.promote-history ul { margin: 0; padding-left: 18px; color: var(--sl-muted); font-size: 0.88rem; }
@media (max-width: 900px) { .promote-layout { grid-template-columns: 1fr; } }

.pricing-addon { padding: 0 0 clamp(32px, 4vw, 44px); }
.addon { display: flex; gap: 16px; align-items: flex-start; max-width: 820px; margin: 0 auto; padding: 18px 22px; background: #FFFBEB; border: 1px solid #FCD34D; border-radius: 3px; }
.addon__icon { width: 38px; height: 38px; flex: 0 0 38px; display: grid; place-items: center; border-radius: 3px; background: #F59E0B; color: #1f1300; }
.addon h2 { margin: 0 0 4px; font-size: 1.05rem; }
.addon p { margin: 0; color: #78350F; font-size: 0.93rem; }

/* Homepage hero search: give the type dropdown room for its full label */
.sr-search__row { grid-template-columns: minmax(0, 1fr) minmax(200px, max-content) auto; }
.sr-search select { padding-right: 36px; min-width: 200px; text-overflow: clip; }
@media (max-width: 720px) { .sr-search__row { grid-template-columns: 1fr; } .sr-search select { min-width: 0; } }
.promo-cell { white-space: normal; min-width: 120px; }
.promo-cell .badge { display: inline-flex; margin-bottom: 4px; }
.promo-cell .btn-link { display: block; margin: 2px 0 0; }
.promo-cell .btn-sm { white-space: nowrap; }

/* Real photos (Unsplash, free licence) in place of illustrations */
.about-story__visual { background: none; }
.about-story__visual img { object-fit: cover; }
.split-about__image img[src$=".jpg"] { width: 100%; height: 100%; min-height: 280px; object-fit: cover; border-radius: 3px; }

/* ==========================================================================
   Dashboard tables (admin, landlord, tenant): every action is a button
   ========================================================================== */
.admin-content table a:not(.btn),
.admin-content table .btn-link,
.admin-content table .btn-link-danger {
    display: inline-flex; align-items: center; justify-content: center; gap: 6px;
    min-height: 32px; padding: 5px 12px; margin: 2px 0;
    border: 1px solid rgba(15, 118, 110, 0.4); border-radius: 3px; background: #fff;
    color: var(--sr-teal-800) !important; font: inherit; font-size: 0.82rem; font-weight: 700; line-height: 1.2;
    text-decoration: none !important; white-space: nowrap; cursor: pointer;
    transition: background .15s, border-color .15s, color .15s;
}
.admin-content table a:not(.btn):hover,
.admin-content table .btn-link:hover { background: var(--sr-teal-50); border-color: var(--sr-teal-700); }
.admin-content table .btn-link-danger { border-color: rgba(220, 38, 38, 0.4); color: #b91c1c !important; }
.admin-content table .btn-link-danger:hover { background: #FEF2F2; border-color: #dc2626; }
.admin-content table a:not(.btn):focus-visible,
.admin-content table .btn-link:focus-visible,
.admin-content table .btn-link-danger:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(13, 148, 136, 0.3); }
.admin-content td.table-actions { white-space: nowrap; }
.admin-content td.table-actions > a, .admin-content td.table-actions > .inline-form { margin-left: 6px !important; }
.admin-content td.table-actions > :first-child { margin-left: 0 !important; }
.admin-content .promo-cell .btn-link { display: inline-flex; margin: 4px 0 0; }
.admin-content table .btn-sm { min-height: 32px !important; padding: 5px 12px !important; font-size: 0.82rem !important; }

/* ==========================================================================
   Admin moderation and user management
   ========================================================================== */
.admin-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; }
.admin-tab { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border: 1px solid var(--sl-border); border-radius: 3px; background: #fff; color: var(--sl-ink); font-weight: 700; font-size: 0.9rem; text-decoration: none; }
.admin-tab:hover { border-color: var(--sr-teal); }
.admin-tab.is-active { background: var(--sr-teal-700); border-color: var(--sr-teal-700); color: #fff; }
.admin-tab__count { min-width: 22px; padding: 1px 7px; border-radius: 999px; background: rgba(15, 23, 42, 0.08); font-size: 0.78rem; text-align: center; }
.admin-tab.is-active .admin-tab__count { background: rgba(255, 255, 255, 0.2); }
.admin-tab__count.is-alert { background: #F59E0B; color: #1f1300; }
.admin-alert { display: flex; flex-wrap: wrap; gap: 12px 16px; align-items: center; margin: 0 0 18px; padding: 14px 18px; border: 1px solid #FCD34D; border-radius: 3px; background: #FFFBEB; color: #78350F; }
.admin-alert i { color: #F59E0B; }
.admin-alert > div { flex: 1; min-width: 220px; }
.stat-card--link { text-decoration: none; color: inherit; transition: border-color .15s, box-shadow .15s; }
.stat-card--link:hover { border-color: var(--sr-teal); box-shadow: 0 6px 18px rgba(4, 47, 46, 0.08); }
.approval-state { margin-top: 4px; }
.approval-note { margin-top: 4px; max-width: 260px; font-size: 0.82rem; color: #9b2c2c; white-space: normal; }
.admin-content table .btn-approve { border-color: rgba(21, 128, 61, 0.5); color: #15803d !important; }
.admin-content table .btn-approve:hover { background: #F0FDF4; border-color: #15803d; }
.reject-box { display: inline-block; position: relative; vertical-align: middle; margin-left: 6px; }
.reject-box > summary { list-style: none; }
.reject-box > summary::-webkit-details-marker { display: none; }
.reject-box[open] > summary { background: #FEF2F2; }
.reject-box__form { position: absolute; right: 0; top: calc(100% + 6px); z-index: 10; display: flex; gap: 8px; width: 340px; padding: 10px; background: #fff; border: 1px solid var(--sl-border); border-radius: 3px; box-shadow: 0 12px 28px rgba(0, 0, 0, 0.12); }
.reject-box__form input { flex: 1; min-width: 0; height: 34px; padding: 0 10px; border: 1px solid var(--sl-border); border-radius: 3px; font: inherit; font-size: 0.85rem; }
.admin-listings-table td { vertical-align: top; }
.admin-filter { display: grid; grid-template-columns: minmax(0, 2fr) repeat(2, minmax(0, 1fr)) auto; gap: 12px 16px; align-items: end; }
.admin-filter .form-group { margin: 0; }
.admin-filter__actions { display: flex; gap: 8px; }
tr.is-suspended td { background: #FEF2F2; }
.user-form .optional { font-weight: 500; color: var(--sl-muted); font-size: 0.85em; }
.user-form [hidden] { display: none !important; }
@media (max-width: 800px) { .admin-filter { grid-template-columns: 1fr; } .reject-box__form { width: 280px; } }

/* ==========================================================================
   Admin preview modal, inspect page, certificates
   ========================================================================== */
.admin-modal { width: min(1200px, 94vw); height: min(90vh, 900px); padding: 0; border: 0; border-radius: 3px; box-shadow: 0 30px 80px rgba(0, 0, 0, 0.35); overflow: hidden; }
.admin-modal[open] { display: flex; flex-direction: column; }
.admin-modal::backdrop { background: rgba(4, 47, 46, 0.55); }
.admin-modal--wide { width: min(1320px, 96vw); }
.admin-modal__bar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px 16px; padding: 12px 16px; border-bottom: 1px solid var(--sl-border); background: #fff; }
.admin-modal__title { margin: 0; font-size: 1rem; }
.admin-modal__tools { display: flex; align-items: center; gap: 10px; }
.admin-modal__switch { display: inline-flex; border: 1px solid var(--sl-border); border-radius: 3px; overflow: hidden; }
.admin-modal__switch[hidden] { display: none; }
.admin-modal__switch button { padding: 7px 12px; border: 0; background: #fff; font: inherit; font-size: 0.85rem; font-weight: 700; color: var(--sl-muted); cursor: pointer; }
.admin-modal__switch button.is-active { background: var(--sr-teal-700); color: #fff; }
.admin-modal__close { width: 36px; height: 36px; border: 1px solid var(--sl-border); border-radius: 3px; background: #fff; font-size: 1.4rem; line-height: 1; cursor: pointer; }
.admin-modal__frame { flex: 1; width: 100%; border: 0; background: #F8FAFC; }

/* Embedded pages (inside the modal) */
body.is-embed .sr-service-bar, body.is-embed .site-header, body.is-embed .site-footer, body.is-embed .cookie-consent,
body.is-embed .admin-sidebar, body.is-embed .admin-topbar, body.is-embed .privacy-banner { display: none !important; }
body.is-embed .admin-main { margin-left: 0 !important; }
body.is-embed .admin-content { padding: 16px !important; }
.preview-bar { background: #FFFBEB; border-bottom: 1px solid #FCD34D; color: #78350F; font-size: 0.9rem; }
.preview-bar .container { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; padding-top: 10px; padding-bottom: 10px; }
.preview-bar__warn { font-weight: 700; color: #b91c1c; }
.listing-detail__aside [disabled], .listing-detail__aside [aria-disabled="true"] { opacity: 0.7; cursor: not-allowed; }

.inspect { display: grid; gap: 16px; }
.inspect .card { margin: 0; }
.inspect__head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; align-items: flex-start; }
.inspect__head h2 { margin: 0 0 4px; font-size: 1.35rem; }
.inspect__head .muted { margin: 0 0 8px; }
.inspect__badges { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
.inspect__actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.inspect__actions form { margin: 0; }
.inspect__reject { display: flex; gap: 8px; }
.inspect__reject input { height: 42px; min-width: 240px; padding: 0 10px; border: 1px solid var(--sl-border); border-radius: 3px; font: inherit; font-size: 0.9rem; }
.btn-danger-outline { background: #fff; border: 1px solid rgba(220, 38, 38, 0.5); color: #b91c1c; }
.btn-danger-outline:hover { background: #FEF2F2; border-color: #dc2626; color: #b91c1c; }
.inspect h3 { margin: 0 0 12px; font-size: 1.05rem; }
.inspect h4 { margin: 18px 0 8px; font-size: 0.95rem; }
.inspect__grid { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(280px, 1fr); gap: 16px; align-items: start; }
.inspect__side { display: grid; gap: 16px; }
.inspect-dl { display: grid; grid-template-columns: 180px 1fr; gap: 8px 16px; margin: 0; }
.inspect-dl dt { color: var(--sl-muted); font-size: 0.88rem; font-weight: 600; }
.inspect-dl dd { margin: 0; }
.inspect-dl--compact { grid-template-columns: 120px 1fr; margin-bottom: 12px; }
.inspect-desc { padding: 12px 14px; background: #F8FAFC; border: 1px solid var(--sl-border); border-radius: 3px; line-height: 1.6; }
.yn { font-weight: 700; } .yn--yes { color: #15803d; } .yn--no { color: var(--sl-muted); }
.inspect-checks { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.inspect-checks__item { position: relative; padding: 8px 12px 8px 34px; border-radius: 3px; font-size: 0.92rem; }
.inspect-checks__item::before { position: absolute; left: 12px; top: 8px; font-weight: 800; }
.inspect-checks__item--ok { background: #F0FDF4; color: #166534; } .inspect-checks__item--ok::before { content: '✓'; }
.inspect-checks__item--info { background: #EFF6FF; color: #1e40af; } .inspect-checks__item--info::before { content: 'i'; }
.inspect-checks__item--warn { background: #FFFBEB; color: #92400E; } .inspect-checks__item--warn::before { content: '!'; }
.inspect-checks__item--bad { background: #FEF2F2; color: #991b1b; } .inspect-checks__item--bad::before { content: '×'; }
.inspect-photos { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 10px; }
.inspect-photo { display: block; border: 1px solid var(--sl-border); border-radius: 3px; overflow: hidden; text-decoration: none; color: var(--sl-muted); font-size: 0.78rem; }
.inspect-photo img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.inspect-photo span { display: block; padding: 6px 8px; }
.inspect-doc-thumb { display: inline-block; width: 160px; margin: 12px 10px 0 0; border: 1px solid var(--sl-border); border-radius: 3px; overflow: hidden; text-decoration: none; color: var(--sl-muted); font-size: 0.78rem; }
.inspect-doc-thumb img { display: block; width: 100%; aspect-ratio: 3 / 4; object-fit: cover; background: #F8FAFC; }
.inspect-doc-thumb span { display: block; padding: 6px 8px; }
.inspect-list { margin: 0; padding-left: 18px; }
@media (max-width: 900px) { .inspect__grid { grid-template-columns: 1fr; } .inspect-dl { grid-template-columns: 1fr; gap: 2px; } .inspect-dl dd { margin-bottom: 8px; } }

.cert-list { display: grid; gap: 10px; margin: 8px 0 24px; }
.cert-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px 20px; align-items: center; padding: 14px 16px; border: 1px solid var(--sl-border); border-radius: 3px; background: #fff; }
.cert-row__info { display: flex; flex-direction: column; gap: 3px; }
.cert-row__info .muted { font-size: 0.84rem; }
.cert-row__file { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 4px; font-size: 0.88rem; font-weight: 600; }
.cert-row__file i { color: var(--sr-teal-700); }
.cert-row__inputs { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; }
.cert-row__inputs input[type="file"] { max-width: 100%; font-size: 0.85rem; }
.cert-row__expiry { display: inline-flex; align-items: center; gap: 8px; margin: 0; font-size: 0.85rem; font-weight: 600; }
.cert-row__expiry input { height: 36px; padding: 0 8px; border: 1px solid var(--sl-border); border-radius: 3px; font: inherit; font-size: 0.85rem; }
.cert-row__remove { display: inline-flex; align-items: center; gap: 6px; margin: 0; font-size: 0.85rem; color: #b91c1c; font-weight: 600; }
@media (max-width: 800px) { .cert-row { grid-template-columns: 1fr; } }
.admin-modal { margin: auto; inset: 0; position: fixed; }
.cert-required, .cert-optional { display: inline-block; margin-left: 4px; padding: 1px 7px; border-radius: 3px; font-size: 0.7rem; font-weight: 800; letter-spacing: 0.03em; text-transform: uppercase; vertical-align: middle; }
.cert-required { background: #FEE2E2; color: #991b1b; }
.cert-optional { background: #F1F5F9; color: #475569; }
.cert-row .req { color: #dc2626; }
.listing-note { display: flex; gap: 10px; align-items: flex-start; margin: 0 0 14px; padding: 10px 14px; border-radius: 3px; background: var(--sr-teal-50); color: var(--sr-teal-800); font-size: 0.9rem; }
.listing-note i { margin-top: 3px; }
.listing-note--promo { margin: 14px 0 0; background: #FFFBEB; color: #78350F; }
.listing-note--promo i { color: #F59E0B; }
.landlord-listings td { vertical-align: top; }
.landlord-listings__meta { display: block; margin-top: 3px; color: var(--sl-muted); font-size: 0.85rem; }
.landlord-listings__unit { color: var(--sl-muted); font-size: 0.82rem; }
.landlord-listings td:nth-child(2) { white-space: nowrap; }
.cert-notice { display: inline-flex; gap: 6px; align-items: flex-start; margin-top: 6px; padding: 6px 10px; border-radius: 3px; background: #FFFBEB; border: 1px solid #FCD34D; color: #92400E; font-size: 0.84rem; font-weight: 700; }
.cert-notice i { margin-top: 2px; color: #D97706; }

/* Admin "view as" banner */
.sr-impersonation { position: sticky; top: 0; z-index: 1000; background: #7C2D12; color: #fff; font-size: 0.9rem; box-shadow: 0 2px 10px rgba(0,0,0,0.2); }
.sr-impersonation__inner { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px 16px; max-width: 1280px; margin: 0 auto; padding: 8px 20px; }
.sr-impersonation i { margin-right: 6px; }
.sr-impersonation__form { margin: 0; }
.sr-impersonation__exit { padding: 6px 14px; border: 0; border-radius: 3px; background: #fff; color: #7C2D12; font: inherit; font-weight: 800; font-size: 0.85rem; cursor: pointer; }
.sr-impersonation__exit:hover { background: #FFEDD5; }
body.admin-body .sr-impersonation { position: fixed; left: 0; right: 0; }
body.admin-body:has(.sr-impersonation) .admin-shell { padding-top: 44px; }
body.admin-body:has(.sr-impersonation) .admin-sidebar { top: 44px; }
.admin-topbar-actions .inline-form { display: inline; }
.cert-row__confirm { display: flex !important; align-items: flex-start; gap: 10px !important; margin: 0 0 4px; cursor: pointer; }
.cert-row__confirm input { width: 20px; height: 20px; margin: 2px 0 0 !important; flex: 0 0 20px; accent-color: var(--sr-teal-700); }
.cert-row__confirm > span { display: flex; flex-direction: column; gap: 2px; }
.cert-row__ask { font-size: 0.88rem; font-weight: 500; color: var(--sl-ink); }
.cert-row__info > .muted, .cert-row__info > .cert-notice, .cert-row__info > .badge { margin-left: 30px; }
.cert-row.is-confirmed { border-color: rgba(13, 148, 136, 0.45); background: var(--sr-teal-50); }
.cert-row__inputs[hidden] { display: none !important; }
.cert-row__upload { display: flex; flex-direction: column; gap: 4px; margin: 0; font-size: 0.85rem; font-weight: 600; }
.cert-row__upload .optional, .cert-row__expiry .optional { font-weight: 500; color: var(--sl-muted); }
.cert-row__file { flex-wrap: wrap; }

/* Benefits accepted on a listing */
.listing-benefits { margin: 1.5rem 0; }
.listing-benefits h3 { font-size: 1.05rem; margin: 0 0 .6rem; }
.listing-benefits ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.listing-benefits li,
.listing-benefits__all {
    display: inline-flex; align-items: center; gap: .4rem;
    background: var(--sr-teal-50); color: var(--sr-teal-800);
    border: 1px solid rgba(13, 148, 136, .25); border-radius: 3px;
    padding: .35rem .7rem; font-size: .9rem; margin: 0;
}
.listing-benefits i { color: var(--sr-teal); }
.benefit-checks { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: .25rem 1rem; }

/* House or flat question on the listing form */
.dwelling-group { border: 0; padding: 0; margin: 0 0 1rem; min-width: 0; }
.dwelling-group legend { font-weight: 600; font-size: .9rem; margin-bottom: 8px; padding: 0; }
.dwelling-group__options { display: flex; gap: 20px; flex-wrap: wrap; min-height: 46px; align-items: center; }
.dwelling-group__options label { display: inline-flex; align-items: center; gap: 8px; font-weight: 500; margin: 0; cursor: pointer; }
.dwelling-group legend .req { color: #dc2626; font-weight: 700; }

/* Listing save feedback that stays on screen */
.form-error-summary { margin-bottom: 1.25rem; }
.form-error-summary p { margin: .35rem 0 0; }
.form-error-summary:focus { outline: 2px solid #dc2626; outline-offset: 2px; }
.listing-posted { display: flex; gap: 12px; align-items: flex-start; margin-bottom: 1rem; }
.listing-posted > i { font-size: 1.25rem; margin-top: 2px; }
.listing-posted p { margin: .25rem 0 0; }
.landlord-listings tr.is-just-saved td { background: var(--sr-teal-50); }
.landlord-listings tr.is-just-saved td:first-child { box-shadow: inset 3px 0 0 var(--sr-teal); }

/* Rent (monthly) or service charge (weekly) */
.price-group__inputs { display: flex; gap: 8px; }
.price-group__inputs input { flex: 1 1 40%; min-width: 0; }
.price-group__inputs select { flex: 1 1 60%; min-width: 0; }
.price-kind {
    display: inline-block; margin-left: 4px; padding: 2px 8px; border-radius: 3px;
    background: #FEF3C7; color: #92400E; font-size: .72rem; font-weight: 700;
    letter-spacing: .02em; text-transform: uppercase; vertical-align: middle;
}
.service-charge-note { display: flex; gap: 8px; align-items: flex-start; font-size: .9rem; color: #92400E; background: #FFFBEB; border: 1px solid #FDE68A; border-radius: 3px; padding: 8px 12px; margin: 8px 0 12px; }
.service-charge-note i { margin-top: 3px; }
.nowrap { white-space: nowrap; }
.service-charge-note > span { flex: 1 1 auto; min-width: 0; line-height: 1.45; }
.service-charge-note > i { flex: 0 0 auto; }

/* ==========================================================================
   Tables everywhere: content aligned to the top, one height for every
   button and badge (30px) so rows line up
   ========================================================================== */
:root { --sr-control-h: 30px; }
table th, table td,
.admin-table th, .admin-table td,
.admin-table td.table-actions, .people-table td.table-actions { vertical-align: top !important; }

/* Buttons inside table cells */
table td .btn, table td a.btn, table td button.btn, table td .btn-sm,
table td .btn-link, table td .btn-link-danger, table td .reject-box > summary,
.admin-content table a:not(.btn), .admin-content table .btn-link, .admin-content table .btn-link-danger {
    display: inline-flex !important; align-items: center; justify-content: center; gap: 6px;
    box-sizing: border-box; height: var(--sr-control-h) !important; min-height: var(--sr-control-h) !important;
    padding: 0 12px !important; margin: 0 !important;
    font-size: 0.82rem !important; line-height: 1 !important; white-space: nowrap; vertical-align: top;
}
table td .inline-form, table td .reject-box { display: inline-flex; vertical-align: top; margin: 0; }
table td.table-actions { white-space: nowrap; }
table td.table-actions > * + *, table td.table-actions .inline-form + *, table td.table-actions > .reject-box { margin-left: 6px !important; }
table td.table-actions > :first-child { margin-left: 0 !important; }

/* Badges inside table cells */
table td .badge, table td .price-kind, table td .cert-required, table td .cert-optional {
    display: inline-flex !important; align-items: center; box-sizing: border-box;
    height: var(--sr-control-h); padding: 0 10px; margin: 0; line-height: 1; white-space: nowrap; vertical-align: top;
}
table td .badge + .badge { margin-left: 4px; }
table td .badge-danger + br + .badge, table td br + .badge { margin-top: 4px; }
/* Several badges in one cell sit side by side, wrapping with a small gap */
table td .badge { margin: 0 4px 4px 0 !important; }
/* Forms and popovers wrapping a button add no extra offset */
table td form, table td .inline-form, table td .reject-box { display: inline-flex !important; vertical-align: top; margin-top: 0 !important; margin-bottom: 0 !important; padding: 0; }
table td form > .btn, table td form > button, table td .reject-box > summary { margin: 0 !important; }
/* Admin listings: action buttons wrap in rows instead of running off the card */
.admin-listings-table td.table-actions { white-space: normal; width: 1%; min-width: 250px; text-align: right; }
.admin-listings-table td.table-actions > * { margin: 0 0 6px 6px !important; }

/* On-page confirm / alert modal (replaces browser pop-ups) */
.sr-dialog { position: fixed; inset: 0; margin: auto; height: fit-content; max-height: calc(100vh - 32px); padding: 0; border: 0; border-radius: 3px; width: min(440px, calc(100vw - 32px)); box-shadow: 0 24px 60px rgba(4, 47, 46, 0.28); color: var(--sl-ink, #0f172a); }
.sr-dialog::backdrop { background: rgba(4, 47, 46, 0.55); }
.sr-dialog__box { margin: 0; padding: 22px 24px 20px; }
.sr-dialog__title { margin: 0 0 8px; font-size: 1.15rem; }
.sr-dialog__message { margin: 0 0 20px; color: #334155; line-height: 1.5; }
.sr-dialog__actions { display: flex; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }
.btn-danger { background: #dc2626; border-color: #dc2626; color: #fff; }
.btn-danger:hover { background: #b91c1c; border-color: #b91c1c; color: #fff; }

/* ==========================================================================
   Search results: grid / rows toggle, page size, numbered pagination
   ========================================================================== */
.search-toolbar__controls { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
.per-page-form { display: inline-flex; align-items: center; gap: 8px; margin: 0; }
.per-page-form label { margin: 0; font-size: 0.85rem; font-weight: 600; color: var(--sl-muted); }
.per-page-form select { height: 36px; padding: 0 30px 0 10px; border: 1px solid var(--sl-border); border-radius: 3px; background-color: #fff; font: inherit; font-size: 0.88rem; }
.view-toggle { display: inline-flex; border: 1px solid var(--sl-border); border-radius: 3px; overflow: hidden; background: #fff; }
.view-toggle__btn { display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 12px; color: var(--sl-ink); font-size: 0.85rem; font-weight: 700; text-decoration: none; }
.view-toggle__btn + .view-toggle__btn { border-left: 1px solid var(--sl-border); }
.view-toggle__btn:hover { background: var(--sr-teal-50); color: var(--sr-teal-800); }
.view-toggle__btn.is-active { background: var(--sr-teal-700); color: #fff; }

/* Rows layout: photo on the left, details on the right */
.listings-grid.listings-grid--rows { grid-template-columns: 1fr !important; gap: 14px; }
.listings-grid--rows .listing-card { display: grid; grid-template-columns: 260px minmax(0, 1fr); }
.listings-grid--rows .listing-card__media { aspect-ratio: auto; height: 100%; min-height: 180px; }
.listings-grid--rows .listing-card__media img { height: 100%; object-fit: cover; }
.listings-grid--rows .listing-card__body { padding: 16px 20px; }
.listings-grid--rows .listing-card h3 { font-size: 1.1rem; }
.listing-card__excerpt, .listing-card__row-meta { display: none; }
.listings-grid--rows .listing-card__excerpt { display: block; margin: 8px 0 0; color: #475569; font-size: 0.9rem; line-height: 1.5; }
.listings-grid--rows .listing-card__row-meta { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 10px 0 0; color: var(--sl-muted); font-size: 0.85rem; }
.listings-grid--rows .listing-card__row-meta i { color: var(--sr-teal); margin-right: 4px; }
@media (max-width: 640px) {
    .listings-grid--rows .listing-card { grid-template-columns: 1fr; }
    .listings-grid--rows .listing-card__media { aspect-ratio: 4 / 3; min-height: 0; }
}

.pagination { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 6px; margin-top: 28px; }
.pagination__link { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-width: 36px; height: 36px; padding: 0 10px; border: 1px solid var(--sl-border); border-radius: 3px; background: #fff; color: var(--sl-ink); font-size: 0.88rem; font-weight: 700; text-decoration: none; }
a.pagination__link:hover { border-color: var(--sr-teal); color: var(--sr-teal-800); background: var(--sr-teal-50); }
.pagination__link.is-current { background: var(--sr-teal-700); border-color: var(--sr-teal-700); color: #fff; }
.pagination__link.is-disabled { opacity: .45; cursor: default; }
.pagination__gap { padding: 0 4px; color: var(--sl-muted); }

/* Rows layout, refined: compact photo, details in the middle, price and key facts on the right */
.listing-card__cta { display: none; }
.listings-grid--rows .listing-card { grid-template-columns: 220px minmax(0, 1fr); align-items: stretch; }
.listings-grid--rows .listing-card__media { min-height: 0; height: 100%; max-height: 190px; aspect-ratio: auto; }
.listings-grid--rows .listing-card__body {
    display: grid; grid-template-columns: minmax(0, 1fr) 200px; column-gap: 28px; row-gap: 0;
    grid-template-areas: "title side" "meta side" "facts side" "excerpt side" "lock side";
    align-content: start; padding: 16px 20px;
}
.listings-grid--rows .listing-card__body > h3 { grid-area: title; margin: 0 0 4px; font-size: 1.1rem; }
.listings-grid--rows .listing-card__meta { grid-area: meta; margin: 0 0 10px; }
.listings-grid--rows .listing-card__facts { grid-area: facts; margin: 0; }
.listings-grid--rows .listing-card__excerpt {
    grid-area: excerpt; margin: 10px 0 0;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.listings-grid--rows .listing-card__lock { grid-area: lock; margin: 10px 0 0; padding: 0; }
.listings-grid--rows .listing-card__price {
    grid-area: side; align-self: start; margin: 0; text-align: right;
    display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: baseline; gap: 4px 6px;
}
.listings-grid--rows .listing-card__price { font-size: 1.35rem; }
.listings-grid--rows .listing-card__row-meta {
    grid-area: side; align-self: end; justify-self: stretch;
    display: flex; flex-direction: column; align-items: flex-end; gap: 6px; margin: 0;
    padding-top: 56px; text-align: right;
}
.listings-grid--rows .listing-card__cta { display: inline-flex; margin-top: 6px; }
.listings-grid--rows .listing-card__body::before {
    content: ''; grid-column: 2; grid-row: 1 / -1; margin-left: -14px; border-left: 1px solid var(--sl-border);
}
@media (max-width: 900px) {
    .listings-grid--rows .listing-card__body { grid-template-columns: 1fr; grid-template-areas: "price" "title" "meta" "facts" "excerpt" "side" "lock"; }
    .listings-grid--rows .listing-card__price { grid-area: price; justify-content: flex-start; text-align: left; margin-bottom: 4px; }
    .listings-grid--rows .listing-card__row-meta { grid-area: side; align-items: flex-start; flex-direction: row; flex-wrap: wrap; padding-top: 10px; text-align: left; }
    .listings-grid--rows .listing-card__body::before { display: none; }
}
@media (max-width: 640px) {
    .listings-grid--rows .listing-card__media { max-height: none; }
}
.listings-grid--rows .listing-card__media { max-height: none; }
.listings-grid--rows .listing-card__featured { top: auto !important; bottom: 12px; left: 12px !important; right: auto !important; z-index: 2; }

/* Rows layout, two per row: photo never sets the height (content does), footer strip for dates / benefits / button */
.listings-grid.listings-grid--rows { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 16px; align-items: start; }
.listings-grid--rows .listing-card { grid-template-columns: 170px minmax(0, 1fr); }
.listings-grid--rows .listing-card__media { position: relative; height: auto; min-height: 150px; max-height: none; aspect-ratio: auto; overflow: hidden; }
.listings-grid--rows .listing-card__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.listings-grid--rows .listing-card__body {
    display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 12px;
    grid-template-areas: "title price" "meta price" "facts facts" "excerpt excerpt" "side side" "lock lock";
    padding: 14px 16px;
}
.listings-grid--rows .listing-card__body::before { display: none; }
.listings-grid--rows .listing-card__body > h3 { font-size: 1rem; margin: 0 0 2px; }
.listings-grid--rows .listing-card__meta { margin: 0 0 8px; font-size: 0.85rem; }
.listings-grid--rows .listing-card__price { grid-area: price; font-size: 1.15rem; flex-direction: column; align-items: flex-end; gap: 2px; }
.listings-grid--rows .listing-card__price .price-kind { margin-left: 0; font-size: 0.65rem; }
.listings-grid--rows .listing-card__excerpt { margin-top: 8px; font-size: 0.85rem; }
.listings-grid--rows .listing-card__row-meta {
    grid-area: side; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: flex-start;
    gap: 4px 14px; margin: 10px 0 0; padding: 10px 0 0; border-top: 1px solid var(--sl-border); text-align: left; font-size: 0.8rem;
}
.listings-grid--rows .listing-card__cta { margin: 0 0 0 auto; }
.listings-grid--rows .listing-card__lock { font-size: 0.82rem; }
@media (max-width: 1100px) {
    .listings-grid.listings-grid--rows { grid-template-columns: 1fr !important; }
}
@media (max-width: 900px) {
    .listings-grid--rows .listing-card__body { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "title price" "meta price" "facts facts" "excerpt excerpt" "side side" "lock lock"; }
    .listings-grid--rows .listing-card__price { grid-area: price; text-align: right; margin: 0; }
    .listings-grid--rows .listing-card__row-meta { padding-top: 10px; }
}
@media (max-width: 560px) {
    .listings-grid--rows .listing-card { grid-template-columns: 1fr; }
    .listings-grid--rows .listing-card__media { min-height: 0; aspect-ratio: 16 / 9; }
}
.listings-grid--rows .listing-card__price { flex-direction: row; flex-wrap: wrap; justify-content: flex-end; align-items: baseline; max-width: 170px; gap: 2px 5px; white-space: nowrap; }
.listings-grid--rows .listing-card__lock { display: none; }

/* Pricing page: every section uses the same full container width */
/* Pricing page: plans, featured add-on, how-it-works and questions all share one centred 920px column */
.plan-grid, .addon { max-width: 920px !important; margin-left: auto !important; margin-right: auto !important; }
/* these are .container elements with side padding, so allow for it to land on the same 920px content width */
.pricing-how > .container, .pricing-faq > .container, .pricing-faq__inner { max-width: calc(920px + 2 * var(--container-pad, 36px)) !important; margin-left: auto !important; margin-right: auto !important; }
.pricing-how__grid { max-width: none !important; }

/* ==========================================================================
   New features: alerts, viewings, stats, reports, LHA, verified, share, areas
   ========================================================================== */
.nav-count { display: inline-flex; align-items: center; justify-content: center; min-width: 20px; height: 20px; margin-left: 6px; padding: 0 6px; border-radius: 10px; background: #F59E0B; color: #1f1300; font-size: 0.72rem; font-weight: 800; line-height: 1; vertical-align: middle; }
.card-head-row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 6px 12px; margin-bottom: 12px; }
.card-head-row h2 { margin: 0; }
.dash-two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-bottom: 20px; }
.dash-two > .card { margin: 0; }
@media (max-width: 900px) { .dash-two { grid-template-columns: 1fr; } }
.mini-list { list-style: none; margin: 0; padding: 0; }
.mini-list li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; padding: 9px 0; border-top: 1px solid var(--sl-border); }
.mini-list li:first-child { border-top: 0; padding-top: 0; }
.mini-list--numbered { list-style: decimal; padding-left: 20px; }
.mini-list--numbered li { display: list-item; }
.needs-reply { display: inline-block; font-size: 0.75rem; font-weight: 800; color: #B45309; text-transform: uppercase; letter-spacing: .03em; }
tr.is-attention td { background: #FFFBEB; }
tr.is-muted td { opacity: .65; }
.spark-bars { display: block; margin: 4px 0 10px; }
.spark-bars rect { fill: var(--sr-teal); }
.spark-bars rect:hover { fill: var(--sr-teal-800); }
.tip-card { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; background: var(--sr-teal-50); border-color: rgba(13, 148, 136, .25); }
.tip-card > i { font-size: 1.4rem; color: var(--sr-teal-700); }
.tip-card > div { flex: 1; min-width: 220px; }
.tip-card p { margin: 2px 0 0; color: #475569; }

/* Search alerts */
.search-alert-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 16px; padding: 14px 18px; background: #fff; }
.search-alert-bar__text { display: flex; gap: 12px; align-items: flex-start; min-width: 0; flex: 1 1 320px; }
.search-alert-bar__text > i { font-size: 1.3rem; color: var(--sr-teal-700); margin-top: 2px; }
.search-alert-bar__text strong { display: block; }
.search-alert-bar__text span { display: block; color: var(--sl-muted); font-size: 0.88rem; }
.search-alert-bar__actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.search-alert-bar select, .alerts-table select { height: 32px; padding: 0 28px 0 10px; border: 1px solid var(--sl-border); border-radius: 3px; background-color: #fff; font: inherit; font-size: 0.85rem; }

/* Viewings */
.viewing-panel__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 8px; }
.viewing-panel__head h2 { margin: 0; font-size: 1.1rem; }
.viewing-panel__head h2 i { color: var(--sr-teal-700); margin-right: 6px; }
.viewing-panel__when { font-size: 1.15rem; margin: 4px 0 6px; }
.viewing-slots { display: grid; gap: 8px; margin: 10px 0; }
.viewing-slot { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid var(--sl-border); border-radius: 3px; cursor: pointer; margin: 0; }
.viewing-slot:has(input:checked) { border-color: var(--sr-teal); background: var(--sr-teal-50); }
.viewing-slot.is-past { opacity: .5; cursor: default; }
.viewing-list { margin: 6px 0 10px; padding-left: 20px; }
.viewing-note { font-size: 0.9rem; color: #475569; }
.viewing-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 6px 0 4px; }
.viewing-more { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; margin-top: 12px; }
.viewing-details { width: 100%; border: 1px solid var(--sl-border); border-radius: 3px; background: #fff; }
.viewing-details > summary { cursor: pointer; padding: 10px 14px; font-weight: 700; color: var(--sr-teal-800); list-style: none; }
.viewing-details > summary::-webkit-details-marker { display: none; }
.viewing-details > summary::before { content: '+'; display: inline-block; width: 16px; font-weight: 800; }
.viewing-details[open] > summary::before { content: '−'; }
.viewing-details .viewing-form { padding: 0 14px 14px; }
.viewing-inputs { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 10px; margin-bottom: 10px; }
.viewing-inputs label, .viewing-note-field { display: flex; flex-direction: column; gap: 4px; margin: 0 0 10px; font-size: 0.85rem; font-weight: 600; }
.viewing-inputs input, .viewing-note-field input { height: 40px; padding: 0 10px; border: 1px solid var(--sl-border); border-radius: 3px; font: inherit; font-weight: 400; }
.viewing-cancel { margin: 0; }
.viewing-option { display: block; }

/* Tenant profile card */
.tenant-card { background: #fff; border: 1px solid var(--sl-border); border-radius: 3px; padding: 18px 20px; margin-bottom: 20px; }
.tenant-card__head { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.tenant-card__head strong { display: block; font-size: 1.05rem; }
.tenant-card__head .muted { font-size: 0.82rem; }
.tenant-card__avatar { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 50%; background: var(--sr-teal-700); color: #fff; font-weight: 800; font-size: 1.1rem; }
.tenant-card__facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px 20px; margin: 0; }
.tenant-card__facts dt { font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--sl-muted); }
.tenant-card__facts dd { margin: 2px 0 0; }
.tenant-card__wide { grid-column: 1 / -1; }
.tenant-card__note { margin: 14px 0 0; padding-top: 12px; border-top: 1px solid var(--sl-border); font-size: 0.85rem; color: var(--sl-muted); }
@media (max-width: 640px) { .tenant-card__facts { grid-template-columns: 1fr 1fr; } }

/* Performance on landlord listings */
.perf-cell span { display: block; white-space: nowrap; font-size: 0.85rem; line-height: 1.7; }
.perf-cell i { width: 16px; color: var(--sr-teal-700); }
.promo-results { width: 100%; border-collapse: collapse; font-size: 0.85rem; }
.promo-results th, .promo-results td { text-align: left; padding: 6px 4px; border-top: 1px solid var(--sl-border); vertical-align: top; }
.promo-results th { font-size: 0.72rem; text-transform: uppercase; letter-spacing: .04em; color: var(--sl-muted); border-top: 0; }
.trend-up { color: #15803d; font-weight: 800; }
.trend-down { color: #b91c1c; font-weight: 800; }

/* Still available? */
.still-available { border-color: #FCD34D; background: #FFFBEB; }
.still-available__head { display: flex; gap: 12px; align-items: flex-start; }
.still-available__head > i { font-size: 1.4rem; color: #D97706; margin-top: 2px; }
.still-available__head h2 { margin: 0 0 4px; font-size: 1.1rem; }
.still-available__list { list-style: none; margin: 12px 0 0; padding: 0; }
.still-available__list li { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px 16px; padding: 10px 0; border-top: 1px solid rgba(217, 119, 6, .25); }
.still-available__actions { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
.status-page { max-width: 560px; }
.status-page h1 { font-size: 1.5rem; }
.status-page h1 i { color: var(--sr-teal); }
.status-page .btn + .btn { margin-left: 8px; }

/* Verified landlord */
.verified-badge { display: inline-flex; align-items: center; gap: 5px; padding: 3px 9px; border-radius: 3px; background: #ECFDF5; border: 1px solid #A7F3D0; color: #047857; font-size: 0.8rem; font-weight: 700; white-space: nowrap; }
.verified-badge i { color: #059669; }
.verified-badge--sm { padding: 1px 6px; font-size: 0.72rem; vertical-align: middle; }
.listing-verified { margin: 6px 0 0; }
.listing-card__meta .verified-badge { margin-left: 4px; }

/* Share + report */
.listing-side-tools { margin-top: 16px; display: flex; flex-direction: column; gap: 14px; }
.share-listing { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.share-listing__label { width: 100%; font-size: 0.78rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: var(--sl-muted); }
.share-btn { display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 12px; border: 1px solid var(--sl-border); border-radius: 3px; background: #fff; color: var(--sl-ink); font: inherit; font-size: 0.85rem; font-weight: 700; text-decoration: none; cursor: pointer; }
.share-btn:hover { border-color: var(--sr-teal); color: var(--sr-teal-800); }
.share-btn--whatsapp i { color: #25D366; }
.report-listing > summary { cursor: pointer; list-style: none; color: var(--sl-muted); font-size: 0.85rem; font-weight: 600; }
.report-listing > summary::-webkit-details-marker { display: none; }
.report-listing > summary:hover { color: #b91c1c; }
.report-listing__form { margin-top: 10px; }
.report-listing__form select, .report-listing__form textarea { width: 100%; }
.report-details { margin: 4px 0 0; font-size: 0.85rem; color: #475569; max-width: 360px; white-space: normal; }
.reports-table__states { margin-top: 6px; }
.approval-note--neutral { color: #475569; }
.reject-box__form--stack { flex-direction: column; width: 320px; }
.reject-box__buttons { display: flex; flex-wrap: wrap; gap: 6px; }
.admin-alert--danger { border-color: #FCA5A5; background: #FEF2F2; color: #7F1D1D; }
.admin-alert--danger i { color: #DC2626; }

/* LHA */
.lha-hint { margin: 18px 0; padding: 14px 16px; border-radius: 3px; border: 1px solid #A7F3D0; background: #ECFDF5; }
.lha-hint--over { border-color: #FCD34D; background: #FFFBEB; }
.lha-hint__head { display: flex; align-items: center; gap: 8px; }
.lha-hint__head i { color: #059669; }
.lha-hint--over .lha-hint__head i { color: #D97706; }
.lha-hint p { margin: 6px 0 0; font-size: 0.92rem; }
.lha-hint__small { font-size: 0.8rem !important; color: #64748b; }
.lha-table .num, .analytics-table .num { text-align: right; white-space: nowrap; }
.lha-districts { max-width: 260px; white-space: normal; font-size: 0.85rem; }
.form-row--5 { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
@media (max-width: 900px) { .form-row--5 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.form-subtitle { font-size: 1rem; margin: 8px 0 10px; }

/* Analytics */
.analytics-table td.is-zero { color: #cbd5e1; }
.analytics-table tfoot th { border-top: 2px solid var(--sl-border); padding: 12px 16px; }
.cron-url code { display: block; padding: 8px 10px; background: #f1f5f9; border-radius: 3px; font-size: 0.8rem; word-break: break-all; }

/* Bulk actions */
.check-col { width: 34px; }
.check-col input { width: 18px; height: 18px; margin: 0; }
.bulk-bar { position: sticky; top: 0; z-index: 5; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 12px; padding: 10px 12px; background: #0F766E; border-radius: 3px; color: #fff; }
.bulk-bar[hidden] { display: none; }
.bulk-bar__count { font-weight: 800; margin-right: 6px; }
.bulk-bar input[type=text] { flex: 1 1 220px; height: 32px; padding: 0 10px; border: 0; border-radius: 3px; font: inherit; font-size: 0.85rem; }
.bulk-bar .btn-primary { background: #fff; color: #0F766E; border-color: #fff; }
.bulk-bar .btn-danger-outline { background: transparent; color: #fff; border-color: rgba(255,255,255,.7); }

/* Email templates */
.email-editor { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; align-items: start; }
.email-editor > .form-card, .email-editor > .card { margin: 0; }
.email-editor textarea { font-family: inherit; line-height: 1.5; }
.email-preview iframe { width: 100%; height: 560px; border: 1px solid var(--sl-border); border-radius: 3px; background: #f8fafc; }
.email-preview__subject { font-size: 0.9rem; }
.placeholder-list { margin: 4px 0 12px; }
.placeholder-list strong { display: block; font-size: 0.8rem; margin-bottom: 6px; }
.placeholder-list > div { display: flex; flex-wrap: wrap; gap: 6px; }
.placeholder-chip { padding: 4px 8px; border: 1px dashed var(--sr-teal); border-radius: 3px; background: var(--sr-teal-50); color: var(--sr-teal-800); font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 0.8rem; cursor: pointer; }
@media (max-width: 1100px) { .email-editor { grid-template-columns: 1fr; } }

/* Areas */
.area-chips { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 22px 0 0; }
.area-chips__label { font-weight: 700; margin-right: 4px; }
.area-chip { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 12px; border: 1px solid var(--sl-border); border-radius: 3px; background: #fff; color: var(--sl-ink); font-size: 0.88rem; font-weight: 600; text-decoration: none; }
.area-chip span { color: var(--sl-muted); font-weight: 700; font-size: 0.78rem; }
.area-chip:hover { border-color: var(--sr-teal); color: var(--sr-teal-800); }
.area-chip--all { color: var(--sr-teal-800); font-weight: 800; }
.area-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.area-card { position: relative; display: flex; flex-direction: column; gap: 4px; padding: 16px 40px 16px 18px; border: 1px solid var(--sl-border); border-radius: 3px; background: #fff; color: var(--sl-ink); text-decoration: none; }
.area-card span { color: var(--sl-muted); font-size: 0.88rem; }
.area-card i { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); color: var(--sr-teal); }
.area-card:hover { border-color: var(--sr-teal); box-shadow: 0 6px 18px rgba(4, 47, 46, .08); }
.area-stats { display: flex; flex-wrap: wrap; gap: 8px 22px; margin-top: 14px; color: #334155; }
.area-copy { max-width: 760px; margin: 40px 0 0; }
.area-copy h2 { font-size: 1.3rem; }
.area-copy p { color: #475569; line-height: 1.65; }
.breadcrumbs { font-size: 0.85rem; color: var(--sl-muted); margin-bottom: 10px; }
.breadcrumbs a { color: var(--sr-teal-800); }
/* fixes after review */
.perf-cell span { display: inline; line-height: inherit; font-size: inherit; }
.perf-cell > span { display: block; white-space: nowrap; font-size: 0.85rem; line-height: 1.7; }
.viewing-cancel .btn-link-danger { display: inline-flex; align-items: center; height: 32px; padding: 0 12px; border: 1px solid rgba(220, 38, 38, .45); border-radius: 3px; background: #fff; color: #b91c1c; font-size: 0.85rem; font-weight: 700; text-decoration: none; cursor: pointer; }
.viewing-cancel .btn-link-danger:hover { background: #FEF2F2; border-color: #dc2626; }
.analytics-table td:first-child, .analytics-table th:first-child { white-space: nowrap; }
.admin-listings-table td.table-actions { min-width: 215px; }
.lha-table th, .lha-table td { padding-left: 10px; padding-right: 10px; }
.lha-intro { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 10px 20px; margin-bottom: 14px; }
.lha-intro .form-hint { flex: 1 1 480px; margin: 0; }
.lha-filter { margin-bottom: 12px; }
.lha-count { margin: 0 0 8px; font-size: 0.85rem; }
.lha-districts { max-width: 320px; }

/* Homepage "Made for renting on benefits": smaller photo, more room for the text */
#about-socialrooms .split-about { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); }
#about-socialrooms .split-about__image img,
#about-socialrooms .split-about__image img[src$=".jpg"] { height: 260px; min-height: 0; }
@media (max-width: 900px) {
    #about-socialrooms .split-about { grid-template-columns: 1fr; }
    #about-socialrooms .split-about__image img,
    #about-socialrooms .split-about__image img[src$=".jpg"] { height: 200px; }
}

/* Admin → Emails */
.email-log-tools { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.email-log-tools .delivery-filters { margin-bottom: 0; }
.email-log-search { display: flex; gap: 6px; align-items: center; }
.email-log-search input[type="search"] { min-width: 220px; height: 30px; padding: 4px 10px; }
.email-log-table .email-log-error { display: block; }
.email-log-pager { display: flex; align-items: center; justify-content: center; gap: 12px; margin-top: 14px; }
.service-charge-note > div { flex: 1 1 auto; min-width: 0; line-height: 1.45; }
.service-charge-note > div p { margin: 0; color: inherit; font-size: inherit; }
.service-charge-note > div p + p { margin-top: 4px; }

/* Share → Email popup */
.share-email-dialog { width: min(480px, calc(100vw - 32px)); }
.share-email-form .form-group { margin-bottom: 12px; }
.share-email-form label { display: block; font-weight: 600; font-size: .9rem; margin-bottom: 4px; }
.share-email-form input[type="email"], .share-email-form input[type="text"], .share-email-form textarea { width: 100%; box-sizing: border-box; }
.share-email-form textarea { resize: vertical; min-height: 72px; }
.share-email-form__listing { margin: 0 0 14px; color: #475569; font-size: .92rem; }
.share-email-form__trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.share-email-form__status { margin: 0 0 12px; font-size: .9rem; min-height: 0; }
.share-email-form__status:empty { display: none; }
.share-email-form__status.is-error { color: #b42318; }
.share-email-form__status.is-ok { color: #0F766E; font-weight: 600; }

/* ==========================================================================
   Growth features: sign-in options, guides, LHA calculator, partners,
   tenants wanted, demand, response times, teams, referrals, settings
   ========================================================================== */

/* Sign-in options */
.alt-signin { margin-top: 18px; display: grid; gap: 10px; }
.alt-signin__divider { display: flex; align-items: center; gap: 12px; color: var(--sl-muted); font-size: .85rem; }
.alt-signin__divider::before, .alt-signin__divider::after { content: ""; flex: 1; height: 1px; background: var(--sl-border); }
.btn-google { display: inline-flex; align-items: center; justify-content: center; gap: 10px; background: #fff; }
.role-card--wide { grid-column: 1 / -1; }
.quick-signup-inline { display: grid; gap: 8px; margin: 4px 0 10px; }
.quick-signup-inline input[type="text"], .quick-signup-inline input[type="email"] { width: 100%; box-sizing: border-box; }
.quick-signup-inline__terms { font-size: .82rem; line-height: 1.4; }
.quick-signup-inline__alt { margin-top: 6px; }
.listing-locked--soft { background: var(--sl-hero-wash); }
.next-steps li { margin-bottom: 8px; }

/* Badges on listings */
.response-badge { display: inline-flex; align-items: center; gap: 6px; padding: 3px 9px; border-radius: 3px; background: rgba(var(--sl-lime-rgb), .1); color: var(--sl-lime-deep); font-size: .8rem; font-weight: 700; }
.listing-verified { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.listed-by { margin: 4px 0 8px; font-size: .9rem; color: var(--sl-muted); }
.listed-by a { font-weight: 700; }
.listed-by i { margin-right: 4px; }

/* Guides */
.guide-tabs { display: flex; gap: 8px; margin-top: 18px; flex-wrap: wrap; }
.guide-tab { padding: 8px 16px; border: 1px solid var(--sl-border); border-radius: 3px; background: #fff; font-weight: 700; text-decoration: none; color: var(--sl-ink); }
.guide-tab.is-active { background: var(--sl-ink); color: #fff; border-color: var(--sl-ink); }
.guide-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }
.guide-card { display: flex; gap: 14px; padding: 18px; background: #fff; border: 1px solid var(--sl-border); border-radius: 3px; text-decoration: none; color: var(--sl-ink); transition: border-color .15s, box-shadow .15s; }
.guide-card:hover { border-color: var(--sl-lime); box-shadow: var(--sl-shadow-md); }
.guide-card__icon { flex: 0 0 44px; height: 44px; display: grid; place-items: center; border-radius: 3px; background: rgba(var(--sl-lime-rgb), .1); color: var(--sl-lime-dark); font-size: 1.1rem; }
.guide-card__body { display: flex; flex-direction: column; gap: 4px; }
.guide-card__body > span { color: var(--sl-muted); font-size: .92rem; line-height: 1.45; }
.guide-card__body strong { font-size: 1.02rem; }
.guide-card__tag { align-self: flex-start; margin-top: 4px; padding: 2px 8px; border-radius: 3px; background: var(--sl-soft); font-size: .72rem !important; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--sl-ink) !important; }
.guide-card--tool { border-color: rgba(var(--sl-lime-rgb), .45); }
.guide-container { max-width: 820px; }
.guide-meta { color: var(--sl-muted); font-size: .85rem; margin-top: 8px; }
.guide-body h2 { margin-top: 1.6em; }
.guide-body ul { padding-left: 1.2em; }
.guide-body li { margin-bottom: .45em; line-height: 1.55; }
.guide-sources { font-size: .88rem; color: var(--sl-muted); border-top: 1px solid var(--sl-border); padding-top: 12px; margin-top: 24px; }
.guide-faqs { margin-top: 28px; }
.guide-faqs details { border: 1px solid var(--sl-border); border-radius: 3px; padding: 12px 16px; margin-bottom: 8px; background: #fff; }
.guide-faqs summary { font-weight: 700; cursor: pointer; }
.guide-faqs details p { margin: 8px 0 0; }
.guide-cta { margin: 32px 0; padding: 24px; border-radius: 3px; background: var(--sl-hero-wash); border: 1px solid rgba(var(--sl-lime-rgb), .25); }
.guide-cta h2 { margin-top: 0; }
.guide-cta .btn + .btn { margin-left: 8px; }
.guide-related ul { padding-left: 1.2em; }
.guide-disclaimer { font-size: .82rem; color: var(--sl-muted); margin-top: 24px; }
.print-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 18px; }
.print-table { width: 100%; border-collapse: collapse; margin: 8px 0 18px; font-size: .92rem; }
.print-table th, .print-table td { border: 1px solid #94a3b8; padding: 8px 10px; text-align: left; vertical-align: top; height: 28px; }
.print-table th { background: #f1f5f9; font-weight: 700; }
.print-checklist { list-style: none; padding: 0; }
.print-checklist li { display: flex; gap: 10px; align-items: flex-start; padding: 6px 0; border-bottom: 1px dashed var(--sl-border); }
.print-box { flex: 0 0 16px; height: 16px; border: 1.5px solid #475569; border-radius: 2px; margin-top: 2px; }
.print-only { display: none; }
@media print {
    .site-header, .site-footer, .sr-service-bar, .no-print, .page-hero .breadcrumbs, .cookie-consent, .guide-hero { display: none !important; }
    .print-only { display: block; }
    .section { padding: 0 !important; }
    body { background: #fff; }
}

/* LHA calculator */
.lha-calc { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 24px; align-items: start; }
.lha-calc__form { margin: 0; }
.lha-calc__area { margin: -4px 0 14px; }
.lha-calc__area summary { cursor: pointer; color: var(--sl-lime-dark); font-weight: 700; font-size: .9rem; margin-bottom: 8px; }
.lha-calc__household { border: 0; padding: 0; margin: 0 0 6px; }
.lha-calc__household legend { font-weight: 700; margin-bottom: 8px; }
.form-row--4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.lha-result { border-left: 4px solid var(--sl-lime); }
.lha-result__label { margin: 0; color: var(--sl-muted); font-weight: 700; font-size: .9rem; }
.lha-result__amount { font-size: 2.4rem; font-weight: 800; margin: 6px 0 0; line-height: 1.1; }
.lha-result__amount span { font-size: 1rem; font-weight: 600; color: var(--sl-muted); }
.lha-result__weekly { margin: 2px 0 12px; color: var(--sl-muted); }
.lha-notes ul { padding-left: 1.2em; }
.lha-notes li { margin-bottom: 6px; }
@media (max-width: 900px) { .lha-calc { grid-template-columns: 1fr; } .form-row--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Partners */
.partners-who { margin: 32px 0; }
.pill-list { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.pill-list li { padding: 6px 12px; border-radius: 999px; background: #fff; border: 1px solid var(--sl-border); font-size: .9rem; }
.partner-client-bar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px; border-left: 4px solid var(--sl-lime); }
.partner-listing-tools .inline-fields { display: flex; gap: 8px; }
.partner-listing-tools select { flex: 1; min-width: 0; }
.partner-shortlist-form label { display: block; font-weight: 700; margin-bottom: 6px; }
.partner-card dl { display: grid; grid-template-columns: max-content 1fr; gap: 4px 14px; margin: 10px 0 0; }
.partner-card dt { font-weight: 700; color: var(--sl-muted); }
.partner-card dd { margin: 0; }
.send-shortlist { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--sl-border); }
.send-shortlist .form-hint { flex-basis: 100%; margin: 0; }
.checkbox-columns { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 6px 16px; }
.checkbox-inline { display: inline-flex; align-items: flex-start; gap: 8px; font-weight: 400; }
.checkbox-inline input { margin-top: 3px; }
.link-list { padding-left: 1.2em; }
.link-list li { margin-bottom: 6px; }

/* Tenants wanted */
.request-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
.request-card { display: flex; flex-direction: column; gap: 10px; padding: 18px; background: #fff; border: 1px solid var(--sl-border); border-radius: 3px; }
.request-card__head { display: flex; align-items: center; gap: 10px; }
.request-card__head > div { display: flex; flex-direction: column; }
.request-card__head .muted { font-size: .8rem; }
.request-card__avatar { flex: 0 0 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; background: rgba(var(--sl-lime-rgb), .14); color: var(--sl-lime-deep); font-weight: 800; }
.request-card__want { margin: 0; font-weight: 700; }
.request-card__facts { list-style: none; padding: 0; margin: 0; display: grid; gap: 4px; font-size: .88rem; color: var(--sl-muted); }
.request-card__facts i { width: 16px; color: var(--sl-lime-dark); }
.request-card__note { margin: 0; padding: 10px 12px; background: var(--sl-bg-muted); border-radius: 3px; font-size: .9rem; }
.request-card__suggest summary { list-style: none; cursor: pointer; }
.request-card__suggest summary::-webkit-details-marker { display: none; }
.request-card__suggest form { display: grid; gap: 6px; margin-top: 10px; }
.request-card__suggest label { font-weight: 700; font-size: .85rem; }
.request-card__suggest select, .request-card__suggest textarea { width: 100%; box-sizing: border-box; }
.filter-bar { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px; }
.filter-bar .form-group { margin: 0; }
.inline-search { display: flex; gap: 8px; max-width: 460px; margin-top: 16px; }
.inline-search input { flex: 1; }

/* Demand */
.demand-strip { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 20px; margin-bottom: 24px; background: var(--sl-hero-wash); border-radius: 3px; }
.demand-strip__stat strong { font-size: 1.8rem; margin-right: 8px; }
.demand-table-wrap { margin-bottom: 28px; overflow-x: auto; }
.demand-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.demand-list li { display: flex; flex-wrap: wrap; gap: 4px 14px; align-items: baseline; padding-bottom: 10px; border-bottom: 1px solid var(--sl-border); }
.demand-list li:last-child { border-bottom: 0; }
.demand-list span { color: var(--sl-muted); font-size: .88rem; }
.demand-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.demand-chip { display: flex; flex-direction: column; padding: 10px 14px; background: #fff; border: 1px solid var(--sl-border); border-radius: 3px; text-decoration: none; color: var(--sl-ink); min-width: 120px; }
.demand-chip span { font-size: .82rem; color: var(--sl-muted); }
.demand-chip:hover { border-color: var(--sl-lime); }
.area-demand { margin: 14px 0 0; font-size: .95rem; }
.area-demand i { color: var(--sl-lime-dark); margin-right: 4px; }
.area-tools { margin: 8px 0 0; font-weight: 700; }

/* Response time card, referral */
.response-card__big { font-size: 1.8rem; font-weight: 800; margin: 0; }
.refer-banner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; border-left: 4px solid var(--sl-lime); }
.refer-card .copy-field { display: flex; gap: 8px; margin: 14px 0; }
.refer-card .copy-field input { flex: 1; min-width: 0; font-family: ui-monospace, monospace; font-size: .9rem; }

/* Tenant dashboard next steps, homepage tools */
.tenant-next-steps, .tool-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; margin-bottom: 20px; }
.next-step-card, .tool-card { display: flex; gap: 12px; align-items: flex-start; padding: 16px; background: #fff; border: 1px solid var(--sl-border); border-radius: 3px; text-decoration: none; color: var(--sl-ink); }
.next-step-card:hover, .tool-card:hover { border-color: var(--sl-lime); }
.next-step-card i, .tool-card i { color: var(--sl-lime-dark); font-size: 1.2rem; margin-top: 3px; }
.next-step-card > span { display: flex; flex-direction: column; gap: 2px; }
.next-step-card > span > span, .tool-card span { color: var(--sl-muted); font-size: .88rem; }
.tool-card { flex-direction: column; gap: 6px; }

/* Testimonials */
.testimonial-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; }
.testimonial { margin: 0; padding: 20px; background: #fff; border: 1px solid var(--sl-border); border-radius: 3px; }
.testimonial blockquote { margin: 0 0 12px; font-size: 1.02rem; line-height: 1.55; }
.testimonial blockquote::before { content: "“"; color: var(--sl-lime); font-size: 2rem; line-height: 0; vertical-align: -0.4em; margin-right: 2px; }
.testimonial figcaption { font-size: .88rem; color: var(--sl-muted); }
.testimonial figcaption span { display: block; font-size: .78rem; text-transform: uppercase; letter-spacing: .05em; margin-top: 2px; }
.testimonial-admin textarea { width: 100%; box-sizing: border-box; margin-bottom: 8px; }
.testimonial-admin .form-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }

/* Admin settings switches */
.flag-row { padding: 12px 0; border-bottom: 1px solid var(--sl-border); }
.flag-row:last-child { border-bottom: 0; }
.flag-row .form-hint { margin: 6px 0 0 54px; }
.flag-row label[for="referral_reward_months"] { display: block; font-weight: 700; margin-bottom: 6px; }
.flag-row label[for="referral_reward_months"] + input + .form-hint { margin-left: 0; }
.input-short { max-width: 120px; }
.flag-row--field label { display: block; font-weight: 700; margin-bottom: 6px; }
.flag-row--field .form-hint { margin-left: 0; }
.flag-row--field .form-hint + .form-hint { margin-top: 4px; }
.input-date { width: 100%; max-width: 200px; }
.switch { display: inline-flex; align-items: center; gap: 12px; cursor: pointer; font-weight: 700; }
.switch input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.switch__track { position: relative; flex: 0 0 42px; height: 24px; border-radius: 999px; background: #cbd5e1; transition: background .15s; }
.switch__track::after { content: ""; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(0,0,0,.2); transition: transform .15s; }
.switch input:checked + .switch__track { background: var(--sl-lime); }
.switch input:checked + .switch__track::after { transform: translateX(18px); }
.switch input:focus-visible + .switch__track { box-shadow: var(--ring); }
.code-block { background: var(--sl-bg-muted); border: 1px solid var(--sl-border); border-radius: 3px; padding: 12px 14px; font-size: .82rem; overflow-x: auto; white-space: pre; }

/* Funnel */
.funnel { display: grid; gap: 10px; margin: 6px 0 22px; }
.funnel__row { display: grid; grid-template-columns: 110px minmax(0, 1fr) 120px; gap: 4px 14px; align-items: center; }
.funnel__label { font-weight: 700; }
.funnel__bar { height: 14px; background: var(--sl-soft); border-radius: 3px; overflow: hidden; }
.funnel__bar span { display: block; height: 100%; background: var(--sl-lime); border-radius: 3px; }
.funnel__n { font-weight: 800; text-align: right; }
.funnel__hint { grid-column: 2 / -1; font-size: .8rem; margin-top: -4px; }

/* Bulk upload */
.steps-list { padding-left: 1.3em; }
.steps-list li { margin-bottom: 8px; line-height: 1.5; }
.bulk-upload { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 16px 0; }
.bulk-columns { margin: 12px 0; }
.bulk-columns summary { cursor: pointer; font-weight: 700; color: var(--sl-lime-dark); margin-bottom: 8px; }

@media (max-width: 640px) {
    .funnel__row { grid-template-columns: 80px minmax(0, 1fr) 70px; }
    .refer-card .copy-field { flex-direction: column; }
    .partner-listing-tools .inline-fields { flex-direction: column; }
}
.benefit-fieldset { border: 0; padding: 0; margin: 0 0 16px; }
.benefit-fieldset legend { font-weight: 700; padding: 0; margin-bottom: 8px; }
.card.lha-result p.lha-result__amount { font-size: 2.4rem; font-weight: 800; color: var(--sl-ink); margin: 6px 0 0; line-height: 1.1; }
.card.lha-result p.lha-result__amount span { font-size: 1rem; font-weight: 600; color: var(--sl-muted); }
/* Register: three account types side by side, equal height */
.register-roles .role-cards.role-cards--three { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; }
.register-roles .role-cards--three .role-card { flex-direction: column; align-items: flex-start !important; gap: 10px !important; padding: 14px; height: 100%; box-sizing: border-box; }
.register-roles .role-cards--three .role-card__text span { line-height: 1.35; }
@media (max-width: 640px) {
    .register-roles .role-cards.role-cards--three { grid-template-columns: 1fr; }
    .register-roles .role-cards--three .role-card { flex-direction: row; align-items: center !important; }
}
.guide-tab, .guide-tab:hover { text-decoration: none; }
.guides-intro .guide-tabs { margin-top: 14px; }
.guide-hero .breadcrumbs { margin-bottom: 10px; }
.guide-hero .about-lead { max-width: 760px; }
/* Town suggestions (LHA calculator) */
.town-suggest { position: relative; }
.town-suggest input { width: 100%; box-sizing: border-box; }
.town-suggest__list { position: absolute; z-index: 30; left: 0; right: 0; top: calc(100% + 4px); margin: 0; padding: 4px 0; list-style: none; background: #fff; border: 1px solid var(--sl-border); border-radius: 3px; box-shadow: var(--sl-shadow-md); max-height: 280px; overflow-y: auto; }
.town-suggest__list li { padding: 9px 14px; cursor: pointer; font-size: .95rem; color: var(--sl-ink); }
.town-suggest__list li:hover, .town-suggest__list li.is-active { background: rgba(var(--sl-lime-rgb), .1); color: var(--sl-lime-deep); }
/* LHA calculator: fill both columns, info cards */
.lha-calc { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; }
.lha-calc .lha-calc__form.form-card { max-width: none; margin: 0; }
.lha-calc__result { display: grid; gap: 16px; }
.lha-calc__result .card { margin: 0; }
.lha-notes h2 { font-size: 1.1rem; margin: 0 0 10px; }
.lha-notes p { margin: 0 0 10px; }
.lha-notes p:last-child { margin-bottom: 0; }
.lha-notes ul { margin: 0 0 10px; padding-left: 1.2em; }
.lha-notes ul:last-child { margin-bottom: 0; }
.lha-steps { margin: 0; padding-left: 1.3em; display: grid; gap: 8px; }
.lha-rate-table { width: 100%; border-collapse: collapse; font-size: .92rem; }
.lha-rate-table th, .lha-rate-table td { padding: 7px 8px; border-bottom: 1px solid var(--sl-border); text-align: right; }
.lha-rate-table th:first-child, .lha-rate-table td:first-child { text-align: left; }
.lha-rate-table th { font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; color: var(--sl-muted); }
.lha-calc .lha-calc__form.form-card { position: sticky; top: 20px; }
.lha-notes p:not(.form-hint) { color: var(--sl-ink); font-size: 1rem; line-height: 1.6; }
@media (max-width: 900px) { .lha-calc .lha-calc__form.form-card { position: static; } }

/* Guide pages: article + sidebar, consistent type */
.guide-section { padding-top: clamp(28px, 4vw, 44px) !important; }
.guide-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: clamp(24px, 4vw, 48px); align-items: start; }
.guide-main { max-width: 760px; min-width: 0; }
.guide-aside { position: sticky; top: 20px; display: grid; gap: 16px; }
.guide-body { font-size: 1.02rem; line-height: 1.65; color: var(--sl-ink); }
.guide-body p, .guide-body li { color: var(--sl-ink); font-size: inherit; line-height: inherit; }
.guide-body p { margin: 0 0 14px; }
.guide-body h2 { font-size: 1.35rem; margin: 32px 0 12px; scroll-margin-top: 20px; }
.guide-body h2:first-child { margin-top: 0; }
.guide-body ul { margin: 0 0 16px; padding-left: 1.25em; }
.guide-body li { margin-bottom: 8px; }
.guide-body a, .guide-related a, .guide-toc a { color: var(--sl-lime-dark); text-decoration: underline; text-underline-offset: 2px; }
.guide-body a:hover, .guide-related a:hover, .guide-toc a:hover { color: var(--sl-lime-deep); }
.guide-body .guide-sources { font-size: .9rem; color: var(--sl-muted); }
.guide-faqs { margin-top: 32px; scroll-margin-top: 20px; }
.guide-faqs h2 { font-size: 1.35rem; margin: 0 0 12px; }
.guide-faqs details p { color: var(--sl-ink); }
.guide-toc, .guide-related { padding: 18px 20px; background: #fff; border: 1px solid var(--sl-border); border-radius: 3px; }
.guide-toc__title { margin: 0 0 10px; font-size: .75rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--sl-muted); }
.guide-toc ul, .guide-related ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.guide-toc a, .guide-related a { font-size: .93rem; font-weight: 600; text-decoration: none; }
.guide-aside .guide-cta { margin: 0; padding: 20px; }
.guide-aside .guide-cta h2 { font-size: 1.1rem; margin: 0 0 8px; }
.guide-aside .guide-cta p { font-size: .92rem; margin: 0 0 14px; }
.guide-aside .guide-cta .btn + .btn { margin: 8px 0 0; }
.guide-layout--template .guide-main { max-width: none; }
.guide-tab, .guide-tab:hover, .guide-tab:focus { text-decoration: none !important; }
.print-sheet { overflow-x: auto; }
.print-sheet .print-table { min-width: 520px; }
@media (max-width: 960px) {
    .guide-layout { grid-template-columns: 1fr; }
    .guide-aside { position: static; }
    .guide-toc { display: none; }
}
@media print { .guide-layout { display: block; } .guide-aside { display: none !important; } }

/* Header: 10px more space above and below the logo (logo size unchanged) */
@media (min-width: 769px) {
    :root { --header-h: 108px; }
}
@media (max-width: 768px) {
    :root { --header-h: 108.5px; }
    .site-header .header-inner { height: auto !important; min-height: 0; padding-top: 30px !important; padding-bottom: 30px !important; }
}

/* Supported housing: listing note, and the locked section on the listing form */
.supported-note { display: flex; gap: 10px; align-items: flex-start; font-size: .9rem; color: #134E4A; background: #F0FDFA; border: 1px solid #99F6E4; border-radius: 3px; padding: 10px 12px; margin: 8px 0 12px; }
.supported-note i { margin-top: 3px; color: #0F766E; }
.supported-note p { margin: 0 0 4px; line-height: 1.45; }
.supported-note p:last-child { margin-bottom: 0; }
.supported-note__title { font-weight: 700; }
.supported-gate { display: flex; gap: 12px; align-items: flex-start; background: #F8FAFC; border: 1px solid #E2E8F0; border-radius: 4px; padding: 12px 14px; margin: 0 0 16px; font-size: .92rem; }
.supported-gate i { color: #64748B; margin-top: 4px; }
.supported-gate p { margin: 0 0 6px; line-height: 1.5; }
.supported-gate p:last-child { margin-bottom: 0; }
.price-group__unit { align-self: center; padding: 0 10px; color: #475569; white-space: nowrap; }
.form-hint--warning { color: #92400E; }

/* Guide tables and link groups */
.guide-body h3 { font-size: 1.05rem; margin: 22px 0 8px; color: var(--sl-text, #0F172A); }
.guide-body .table-wrap { overflow-x: auto; margin: 10px 0 18px; }
.guide-table { width: 100%; border-collapse: collapse; font-size: .92rem; }
.guide-table th, .guide-table td { text-align: left; vertical-align: top; padding: 9px 12px; border-bottom: 1px solid var(--sl-border, #E2E8F0); line-height: 1.45; }
.guide-table thead th { background: #F1F5F9; font-weight: 700; }
.guide-table tbody tr:nth-child(even) td { background: #FAFBFC; }
.guide-table td:first-child { min-width: 160px; }
.guide-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 28px; }
.guide-links h3 { margin-top: 10px; }
.guide-links ul { padding-left: 18px; margin: 0 0 8px; }
.guide-links li { margin-bottom: 6px; }
@media (max-width: 700px) { .guide-links { grid-template-columns: 1fr; } }
.guide-cta__more { text-align: center; margin: 10px 0 0; font-size: .92rem; }
.supported-gate a, .sp-intro a, .supported-note a { color: var(--sl-primary, #0F766E); text-decoration: underline; }
.sp-details { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 6px 16px; margin: 12px 0 14px; font-size: .92rem; }
.sp-details dt { color: #64748B; font-weight: 600; }
.sp-details dd { margin: 0; overflow-wrap: anywhere; }
.sp-note { width: 100%; margin-bottom: 10px; }
@media (max-width: 600px) { .sp-details { grid-template-columns: 1fr; gap: 2px; } .sp-details dd { margin-bottom: 8px; } }
.sp-intro { margin-bottom: 14px; }
/* Admin → Supported housing: action area */
.sp-actions { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 12px 16px; align-items: end; border-top: 1px solid var(--sl-border, #E2E8F0); padding-top: 14px; }
.sp-actions .form-group { margin: 0; }
.sp-actions label { display: block; font-size: .85rem; font-weight: 600; margin-bottom: 4px; }
.sp-actions select, .sp-actions input { width: 100%; }
.sp-actions__note:only-child { grid-column: 1 / -1; }
.sp-buttons { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 14px; }
.sp-buttons .btn { width: auto; }
.sp-buttons__danger { color: #B91C1C; border-color: #FCA5A5; }
@media (max-width: 700px) { .sp-actions { grid-template-columns: 1fr; } }
.supported-note__list { margin: 2px 0 6px; padding-left: 18px; }
.supported-note__list li { margin-bottom: 3px; line-height: 1.45; }
.supported-note__details { font-style: italic; }

/* Listing page title: 30% smaller (was 32px) */
.listing-detail .listing-detail__main .listing-top__details h1 { font-size: 22.4px; line-height: 1.25; }

/* ===================== Renter passport ===================== */
.passport-badges { display: inline-flex; flex-wrap: wrap; gap: 6px; vertical-align: middle; }
.passport-badges--compact { display: flex; margin-top: 4px; }
.passport-badge { display: inline-flex; align-items: center; gap: 5px; font-size: .78rem; font-weight: 700; color: #065F46; background: #ECFDF5; border: 1px solid #A7F3D0; border-radius: 999px; padding: 2px 9px; white-space: nowrap; }
.passport-badge i { color: #059669; }
.passport-intro { display: flex; gap: 24px; align-items: center; justify-content: space-between; }
.passport-intro__text p { margin: 0 0 8px; }
.passport-intro__score { flex: 0 0 auto; width: 110px; height: 110px; border-radius: 50%; background: #F0FDFA; border: 3px solid #5EEAD4; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.passport-intro__score strong { font-size: 1.8rem; color: #0F766E; line-height: 1; }
.passport-intro__score span { font-size: .8rem; color: #475569; }
.passport-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 16px; }
.passport-card { margin: 0; display: flex; flex-direction: column; gap: 6px; }
.passport-card__head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.passport-card__head i { color: #0F766E; font-size: 1.2rem; }
.passport-card__head h3 { margin: 0; font-size: 1.05rem; flex: 1 1 auto; }
.passport-card--verified { border-color: #A7F3D0; }
.passport-upload { display: flex; flex-direction: column; gap: 8px; margin-top: auto; }
.passport-upload input[type=file] { font-size: .88rem; max-width: 100%; }
.passport-upload .btn { align-self: flex-start; }
.passport-remove { margin-top: 4px; }
.passport-thread { display: flex; flex-direction: column; gap: 6px; }
.passport-thread p { margin: 0; }
@media (max-width: 900px) { .passport-grid { grid-template-columns: 1fr; } .passport-intro { flex-direction: column; align-items: flex-start; } }

/* ===================== Enquire about several homes ===================== */
.multi-sent { display: flex; gap: 10px; align-items: center; }
.multi-enquiry__list { display: grid; gap: 10px; margin: 12px 0; }
.multi-enquiry__item { display: grid; grid-template-columns: auto 72px minmax(0, 1fr) auto; gap: 12px; align-items: center; border: 1px solid var(--sl-border, #E2E8F0); border-radius: 6px; padding: 8px 12px; cursor: pointer; }
.multi-enquiry__item:has(input:checked) { border-color: #14B8A6; background: #F0FDFA; }
.multi-enquiry__item:has(input:disabled) { opacity: .55; }
.multi-enquiry__item img { width: 72px; height: 54px; object-fit: cover; border-radius: 4px; background: #E2E8F0; }
.multi-enquiry__item input { width: 18px; height: 18px; }
.multi-enquiry__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.multi-enquiry__text strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.multi-enquiry__text span { font-size: .88rem; color: #475569; }
.multi-enquiry__why { font-size: .75rem !important; font-weight: 700; color: #0F766E !important; text-transform: uppercase; letter-spacing: .04em; }
.multi-enquiry__view { font-size: .88rem; }
.saved-multi { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin: 0 0 16px; }
@media (max-width: 600px) { .multi-enquiry__item { grid-template-columns: auto 56px minmax(0, 1fr); } .multi-enquiry__item img { width: 56px; height: 44px; } .multi-enquiry__view { display: none; } }

/* ===================== Help with moving ===================== */
.moving-help { display: flex; flex-direction: column; gap: 20px; }
.moving-help__form { max-width: 640px; margin: 0; }
.moving-help__row { display: flex; gap: 10px; }
.moving-help__row input { flex: 1 1 auto; }
.council-card { border-left: 4px solid #14B8A6; margin: 0; }
.council-card__label { margin: 0; font-size: .82rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #0F766E; }
.council-card h2 { margin: 2px 0 10px; }
.council-card ul { margin: 0 0 12px; padding-left: 20px; }
.council-card li { margin-bottom: 6px; }
.council-card__parent { border-top: 1px solid var(--sl-border, #E2E8F0); padding-top: 12px; margin-top: 12px; }
.moving-help__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.moving-help__section { margin: 0; }
.moving-help__section h2 { font-size: 1.15rem; display: flex; gap: 10px; align-items: center; }
.moving-help__section h2 i { color: #0F766E; }
.moving-help__links { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.moving-help__links a { font-weight: 700; }
.moving-help__links a i { font-size: .7rem; margin-left: 2px; }
.moving-help__links span { display: block; font-size: .9rem; color: #475569; margin-top: 2px; }
.moving-help__more { margin: 0; }
.moving-help__more ul { padding-left: 20px; }
@media (max-width: 800px) { .moving-help__grid { grid-template-columns: 1fr; } .moving-help__row { flex-direction: column; } }

/* ===================== Share kit ===================== */
.share-kit-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-bottom: 16px; }
.share-kit-card { margin: 0; display: flex; flex-direction: column; gap: 8px; }
.share-kit-card h3 { margin: 0; font-size: 1.05rem; display: flex; gap: 8px; align-items: center; }
.share-kit-card h3 i { color: #0F766E; }
.share-kit-card p { margin: 0; }
.share-kit-image { width: 100%; border-radius: 6px; border: 1px solid var(--sl-border, #E2E8F0); }
.share-kit-qr { width: 140px; }
.share-kit-qr svg { width: 140px; height: 140px; display: block; }
.share-kit-label { font-size: .82rem; font-weight: 700; color: #475569; }
.share-kit-copy { display: flex; gap: 8px; }
.share-kit-copy input { flex: 1 1 auto; }
.share-kit-card textarea { width: 100%; font-size: .9rem; resize: vertical; }
@media (max-width: 800px) { .share-kit-grid { grid-template-columns: 1fr; } }

/* ===================== Guaranteed rent offer ===================== */
.sl-offer { display: flex; gap: 16px; align-items: flex-start; border: 1px solid #FDE68A; background: #FFFBEB; }
.sl-offer__icon { flex: 0 0 auto; width: 44px; height: 44px; border-radius: 50%; background: #FEF3C7; display: flex; align-items: center; justify-content: center; color: #B45309; font-size: 1.2rem; }
.sl-offer h2 { margin: 0 0 6px; font-size: 1.1rem; }
.sl-offer p { margin: 0 0 10px; }
.sl-offer__actions { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }

/* ===================== Language & accessibility ===================== */
.access-tools { position: relative; }
.access-tools__toggle { font: inherit; font-size: .85rem; font-weight: 700; display: inline-flex; align-items: center; gap: 6px; background: transparent; border: 1px solid rgba(255,255,255,.35); color: #fff; border-radius: 999px; padding: 3px 12px; cursor: pointer; }
.access-tools__toggle:hover, .access-tools__toggle[aria-expanded="true"] { background: rgba(255,255,255,.12); }
.access-tools__sep { opacity: .6; }
.access-tools--topbar .access-tools__toggle { color: #0F172A; border-color: var(--sl-border, #CBD5E1); background: #fff; }
.access-tools--topbar { margin-left: auto; margin-right: 10px; }
.access-panel { position: absolute; right: 0; top: calc(100% + 8px); z-index: 1000; width: min(360px, calc(100vw - 32px)); background: #fff; color: #0F172A; border: 1px solid var(--sl-border, #E2E8F0); border-radius: 8px; box-shadow: 0 12px 32px rgba(15, 23, 42, .18); padding: 14px; text-align: left; }
.access-panel__title { margin: 0 0 8px; font-size: .78rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: #0F766E; }
.access-panel__langs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin-bottom: 8px; }
.access-panel__langs button { font: inherit; font-size: .85rem; padding: 6px 4px; border: 1px solid var(--sl-border, #E2E8F0); border-radius: 4px; background: #F8FAFC; color: #0F172A; cursor: pointer; }
.access-panel__langs button:hover { border-color: #14B8A6; }
.access-panel__langs button[aria-current="true"] { background: #0F766E; border-color: #0F766E; color: #fff; font-weight: 700; }
.access-panel__note { font-size: .75rem; color: #64748B; margin: 0 0 12px; }
.access-panel__action { font: inherit; font-size: .9rem; font-weight: 700; width: 100%; display: flex; gap: 8px; align-items: center; justify-content: center; padding: 8px; border: 1px solid #0F766E; border-radius: 4px; background: #F0FDFA; color: #0F766E; cursor: pointer; margin-bottom: 10px; }
.access-panel__switch { display: flex; gap: 8px; align-items: center; font-size: .9rem; cursor: pointer; }
.access-panel__switch input { width: 18px; height: 18px; }
.sr-service-bar .access-panel a { color: #0F766E; }
@media (max-width: 640px) { .sr-service-bar .container { justify-content: space-between; } .access-tools--topbar .access-tools__toggle span[data-access-current], .access-tools--topbar .access-tools__sep { display: none; } }
/* Hide Google Translate's own toolbar */
body > .skiptranslate, .goog-te-banner-frame, iframe.skiptranslate { display: none !important; }
body { top: 0 !important; }
.goog-tooltip, .goog-text-highlight { background: none !important; box-shadow: none !important; }
html.is-rtl-lang .site-main, html.is-rtl-lang .admin-content { direction: rtl; text-align: right; }
/* Easier to read */
html.easy-read { font-size: 118%; }
html.easy-read body { line-height: 1.75; letter-spacing: .01em; word-spacing: .06em; }
html.easy-read p, html.easy-read li { max-width: 70ch; }
html.easy-read .form-hint, html.easy-read .muted { color: #334155 !important; font-size: .95rem; }
html.easy-read a { text-decoration: underline !important; }
/* Fixes: access panel above the sticky header, passport card heads */
.sr-service-bar { position: relative; z-index: 1200; }
.passport-card__head { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 10px; align-items: center; }
.passport-card__head .badge { grid-column: 2; justify-self: start; }
/* Share kit: wider text cards with two versions each */
.share-kit-card--wide { grid-column: auto; }
.share-kit-variants { display: grid; grid-template-columns: 1fr; gap: 16px; }
.share-kit-variant { display: flex; flex-direction: column; gap: 6px; }
.share-kit-variant p { display: flex; gap: 8px; flex-wrap: wrap; }
@media (max-width: 800px) { .share-kit-variants { grid-template-columns: 1fr; } }

/* ==========================================================================
   Right to Rent, scam protection, viewing slots, saved replies,
   address finder, partner widget, your data
   ========================================================================== */
.rtr-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 16px 0; }
.rtr-option h3 { display: flex; gap: 8px; align-items: baseline; font-size: 1.05rem; margin: 0 0 8px; }
.rtr-option h3 i { color: var(--sl-lime); }
.rtr-option ol { padding-left: 20px; margin: 0 0 12px; }
.rtr-landlord p { margin: 8px 0 0; }
.rtr-code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .08em; font-size: 1.05rem; }
.scam-warning { display: flex; gap: 10px; align-items: flex-start; background: #FFFBEB; border: 1px solid #FCD34D; border-left: 4px solid #D97706; color: #78350F; padding: 10px 12px; margin: 12px 0 6px; font-size: .92rem; line-height: 1.45; }
.scam-warning i { color: #D97706; margin-top: 3px; }
.scam-warning a { color: #78350F; text-decoration: underline; }
.scam-photo i { margin-right: 4px; }
.turnstile-box { margin: 12px 0; min-height: 65px; }
.viewing-calendar { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 0; }
.viewing-tip { margin-top: 12px; }
.viewing-tip i { color: var(--sl-lime); }
.viewing-book { border: 1px solid var(--sl-border); background: var(--sl-bg-muted); padding: 14px; margin: 12px 0; }
.viewing-book__title { margin: 0 0 10px; }
.viewing-book__title .form-hint { display: block; margin-top: 2px; }
.viewing-book__days { display: flex; flex-direction: column; gap: 10px; max-height: 340px; overflow-y: auto; margin-bottom: 12px; }
.viewing-book__day { display: grid; grid-template-columns: 96px 1fr; gap: 8px; align-items: start; }
.viewing-book__date { font-weight: 700; font-size: .9rem; padding-top: 6px; }
.viewing-book__times { display: flex; flex-wrap: wrap; gap: 6px; }
.viewing-book__time { position: relative; cursor: pointer; margin: 0; }
.viewing-book__time input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.viewing-book__time span { display: inline-block; padding: 5px 10px; border: 1px solid var(--sl-border); background: #fff; border-radius: 999px; font-size: .88rem; }
.viewing-book__time input:checked + span { background: var(--sl-lime); border-color: var(--sl-lime); color: #fff; font-weight: 700; }
.viewing-book__time input:focus-visible + span { box-shadow: var(--ring); }
.reply-label-row { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 6px; }
.reply-label-row label { margin: 0; }
.saved-reply-picker { display: inline-flex; align-items: center; gap: 10px; font-size: .9rem; }
.saved-reply-picker select { width: auto; max-width: 240px; padding: 4px 8px; font-size: .9rem; }
.saved-replies-list { display: flex; flex-direction: column; gap: 12px; }
.saved-reply { border: 1px solid var(--sl-border); padding: 12px 14px; }
.saved-reply__head { display: flex; justify-content: space-between; gap: 10px; align-items: baseline; }
.saved-reply__actions { display: inline-flex; gap: 10px; align-items: center; }
.saved-reply__actions form { display: inline; margin: 0; }
.saved-reply__body { margin: 6px 0 0; color: var(--sl-muted); font-size: .92rem; }
.address-finder { background: var(--sl-bg-muted); border: 1px solid var(--sl-border); padding: 12px; margin-bottom: 16px; }
.address-finder label { display: block; font-weight: 600; margin-bottom: 6px; }
.address-finder__row { display: flex; gap: 8px; }
.address-finder__row input { flex: 1; max-width: 220px; text-transform: uppercase; }
.address-finder__results { margin-top: 8px; width: 100%; }
.address-finder .form-hint:empty { display: none; }
.widget-builder { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; align-items: start; }
.widget-builder__form textarea { width: 100%; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .82rem; }
.widget-builder__preview { position: sticky; top: 90px; }
.widget-builder__preview iframe { width: 100%; border: 1px solid var(--sl-border); }
.your-data .danger-zone { margin-top: 16px; border-top: 1px solid var(--sl-border); padding-top: 12px; }
.your-data .danger-zone summary { cursor: pointer; color: #b42318; font-weight: 600; }
.your-data .danger-zone[open] summary { margin-bottom: 10px; }
@media (max-width: 760px) {
    .rtr-grid, .widget-builder { grid-template-columns: 1fr; }
    .widget-builder__preview { position: static; }
    .viewing-book__day { grid-template-columns: 1fr; gap: 4px; }
    .viewing-book__date { padding-top: 0; }
    .address-finder__row input { max-width: none; }
}
.form-row--3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
@media (max-width: 760px) { .form-row--3 { grid-template-columns: 1fr; } }

/* Developer API */
.api-new-key { border-left: 4px solid var(--sl-lime); }
.api-new-key h2 i { color: var(--sl-lime); margin-right: 6px; }
.api-key-copy { display: flex; gap: 8px; margin: 10px 0; }
.api-key-copy input { flex: 1; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .9rem; }
.api-keys-table tr.is-revoked td { color: var(--sl-muted); }
.api-keys-table tr.is-revoked code { text-decoration: line-through; }
.api-keys-table td .form-hint { display: block; }
.dev-guide { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 40px; align-items: start; }
.dev-guide__nav { position: sticky; top: 90px; display: flex; flex-direction: column; gap: 2px; border-left: 2px solid var(--sl-border); }
.dev-guide__nav a { padding: 5px 12px; color: var(--sl-muted); text-decoration: none; font-size: .92rem; margin-left: -2px; border-left: 2px solid transparent; }
.dev-guide__nav a:hover { color: var(--sl-ink); border-left-color: var(--sl-lime); }
.dev-guide__body { max-width: 860px; }
.dev-guide__body h2 { margin: 40px 0 12px; scroll-margin-top: 90px; }
.dev-guide__body h2:first-child { margin-top: 0; }
.dev-guide__body pre.code-block { overflow-x: auto; white-space: pre; font-size: .84rem; line-height: 1.5; margin: 12px 0; }
.dev-guide__body li { margin-bottom: 6px; }
.dev-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.dev-card { border: 1px solid var(--sl-border); padding: 16px; background: #fff; }
.dev-card h3 { font-size: 1rem; margin: 0 0 6px; display: flex; gap: 8px; align-items: baseline; }
.dev-card h3 i { color: var(--sl-lime); }
.dev-card p { margin: 0; color: var(--sl-muted); font-size: .92rem; }
.dev-method { display: inline-block; min-width: 58px; text-align: center; font: 700 .72rem/1 ui-monospace, SFMono-Regular, Menlo, monospace; padding: 4px 6px; border-radius: 3px; background: #E0F2FE; color: #075985; }
.dev-method--post { background: #DCFCE7; color: #166534; }
.dev-method--patch { background: #FEF3C7; color: #92400E; }
.dev-method--delete { background: #FEE2E2; color: #991B1B; }
.dev-endpoints td { vertical-align: top; }
@media (max-width: 860px) {
    .dev-guide { grid-template-columns: 1fr; }
    .dev-guide__nav { position: static; flex-direction: row; flex-wrap: wrap; border-left: 0; }
    .dev-guide__nav a { border-left: 0; padding: 4px 8px; }
    .dev-cards { grid-template-columns: 1fr; }
}

/* Admin → Settings: data retention */
.retention-list { margin-top: 8px; }
.retention-row { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 14px 0; border-bottom: 1px solid var(--sl-border); }
.retention-row:last-child { border-bottom: 0; padding-bottom: 0; }
.retention-row__text label { display: block; font-weight: 700; margin: 0; }
.retention-row__text .form-hint { margin: 4px 0 0; }
.retention-row__input { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.retention-row__input input { width: 84px; text-align: right; margin: 0; }
.retention-row__unit { color: var(--sl-muted); font-size: .92rem; }
@media (max-width: 640px) {
    .retention-row { flex-direction: column; align-items: flex-start; gap: 8px; }
}

/* Admin → Settings: space after the Save settings button */
.settings-form > .form-actions { margin-bottom: 30px; }
.api-keys-table tr.is-new td { background: rgba(var(--sl-lime-rgb), .08); }
