/* ==========================================================================
   SocialRooms stylesheet
   One file, built from the old style.css, app.css and theme.css (in that order),
   with rules that were always overridden removed. Edit this file directly.
   ========================================================================== */

[hidden] {
    display: none !important;
}

:root {
    --color-primary: #0f172a;
    --color-primary-dark: #020617;
    --color-primary-light: #334155;
    --color-accent: #0D9488;
    --color-accent-light: #2DD4BF;
    --color-accent-dark: #0F766E;
    --color-accent-soft: #F0FDFA;
    --color-bg: #ffffff;
    --color-bg-alt: #f8fafc;
    --color-white: #ffffff;
    --color-text: #0f172a;
    --color-danger: #dc2626;
    --color-warning: #b45309;
    --color-success: #059669;
    --color-surface: #ffffff;
    --brand: #0D9488;
    --brand-hover: #0F766E;
    --brand-dark: #0f172a;
    --brand-light: #2DD4BF;
    --brand-soft: rgba(13, 148, 136, 0.12);
    --brand-softer: #F0FDFA;
    --forest: var(--brand);
    --forest-hover: var(--brand-hover);
    --mint: var(--brand-light);
    --mint-soft: var(--brand-soft);
    --secondary: var(--brand-dark);
    --primary-rgb: 13, 148, 136;
    --text-rgb: 15, 23, 42;
    --font-sans: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    --font-display: var(--font-sans);
    --font-body: var(--font-sans);
    --font-heading: var(--font-sans);
    --radius-pill: 3px;
    --modal-detail-width: min(96vw, 900px);
    --modal-detail-width-wide: min(98vw, 1240px);
    --modal-detail-width-form: min(98vw, 1320px);
    --modal-viewport-margin-block: 10vh;
    --modal-viewport-height: calc(100vh - (2 * var(--modal-viewport-margin-block)));
    --shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.04);
    --header-h: calc(83px * 1.15);
    --layout-max: 1600px;
    --layout-gutter: clamp(16px, 2.5vw, 48px);
    --content-narrow: 820px;
    --section-header-max: 720px;
    --header-content-max: var(--layout-max);
    --transition: 0.2s ease;
}

*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: var(--font-body);
    letter-spacing: -0.01em;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    -moz-osx-font-smoothing: grayscale;
}

h1,
h2,
h3,
h4,
.page-header h1,
.hero h1,
.section-header h2,
.dashboard-content h1,
.auth-card h1,
.cta-section h2 {
    font-family: var(--font-heading);
    font-weight: 700;
    letter-spacing: -0.025em;
    line-height: 1.2;
}

.container {
    width: 100%;
    max-width: var(--layout-max);
    margin: 0 auto;
    padding: 0 var(--layout-gutter);
    box-sizing: border-box;
}

a {
    color: var(--color-primary);
    text-decoration: none;
    transition: color var(--transition);
}

a:hover {
    color: var(--color-accent-dark);
}

:where(a, button, input, textarea, select):focus-visible {
    outline: none;
    box-shadow: var(--ring);
    border-radius: 3px;
}

.impersonation-banner {
    background: rgba(255, 247, 237, 0.92);
    border-bottom: 1px solid rgba(245, 158, 11, 0.28);
    color: #92400e;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1200;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    pointer-events: auto;
}

.impersonation-banner__inner {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 8px var(--layout-gutter);
    box-sizing: border-box;
}

.impersonation-banner__group {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 14px;
    flex-wrap: wrap;
    max-width: 100%;
}

.impersonation-banner__text {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.35em;
    margin: 0;
    font-size: 0.875rem;
    line-height: 1.4;
    text-align: right;
}

.impersonation-banner__label {
    font-weight: 600;
    text-transform: uppercase;
    font-size: 0.7rem;
    letter-spacing: 0.06em;
    color: #b45309;
}

.impersonation-banner__sep {
    color: rgba(146, 64, 14, 0.45);
}

.impersonation-banner__meta {
    color: rgba(146, 64, 14, 0.75);
    font-size: 0.85rem;
}

.impersonation-banner__form {
    margin: 0;
    flex-shrink: 0;
}

.impersonation-banner__exit {
    border-color: rgba(217, 119, 6, 0.45);
    color: #92400e;
    background: rgba(255, 255, 255, 0.55);
}

.impersonation-banner__exit:hover {
    background: rgba(255, 255, 255, 0.85);
    border-color: rgba(180, 83, 9, 0.55);
    color: #78350f;
}

.admin-view-as-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.admin-view-as-actions__form {
    margin: 0;
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    overflow: visible;
}

.header-inner {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    height: var(--header-h);
    gap: 16px;
    overflow: visible;
}

.logo {
    display: inline-flex;
    align-items: center;
    align-self: center;
    flex-shrink: 0;
    margin-right: 24px;
    text-decoration: none;
    line-height: 0;
    color: inherit;
    overflow: visible;
}

.logo:hover {
    color: inherit;
    text-decoration: none;
    opacity: 0.92;
}

.logo-img {
    display: block;
    height: auto;
    max-height: var(--header-logo-max-h);
    width: auto;
    max-width: min(calc(555px * 1.05 * 1.2), calc(60.463047vw * 1.05 * 1.2));
    object-fit: contain;
    object-position: left center;
}

.logo-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background: var(--color-primary);
    color: var(--color-white);
    border-radius: 3px;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    flex-shrink: 0;
}

.logo-accent {
    color: var(--color-accent);
}

.site-header .logo {
    transform: none;
}

.logo--footer {
    display: inline-flex;
    margin: 0 0 20px;
    margin-right: 0;
    transform: none;
}

.logo--footer .logo-img {
    height: calc(74px * 1.05 * 1.2);
    max-width: 336px;
}

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

@media (max-width: 786px) {
    .site-header .logo {
        transform: none;
    }
    .site-header .logo-img {
        height: auto;
        max-height: calc(var(--header-logo-max-h) * 0.88);
        max-width: min(264px, 55vw);
    }
}

.main-nav {
    display: flex;
    align-items: center;
}

.main-nav a:not(.nav-cta):not(.nav-btn-outline):not(.nav-logout) {
    display: inline-flex;
    align-items: center;
    align-self: stretch;
    position: relative;
    white-space: nowrap;
}

.main-nav a:not(.nav-cta):not(.nav-btn-outline):not(.nav-logout).active::after {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
}

.nav-cta {
    white-space: nowrap;
    flex-shrink: 0;
}

.main-nav .nav-cta,
.main-nav .nav-cta:hover,
.main-nav .nav-cta:focus,
.main-nav .nav-cta.active {
    color: var(--color-white) !important;
}

.nav-btn-outline {
    border: 1px solid var(--color-border) !important;
    color: var(--color-primary) !important;
    font-weight: 600 !important;
    padding: 9px 18px !important;
    font-size: 0.875rem !important;
}

.nav-btn-outline:hover {
    border-color: var(--color-primary-light) !important;
    background: var(--color-bg-alt) !important;
    color: var(--color-primary) !important;
}

.nav-logout {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 600 !important;
    padding: 9px 18px !important;
    font-size: 0.875rem !important;
    text-decoration: none !important;
    transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.nav-toggle {
    display: none;
    align-self: center;
    flex-direction: column;
    gap: 5px;
    cursor: pointer;
    padding: 8px;
}

.nav-toggle span {
    display: block;
    height: 2px;
    transition: var(--transition);
}

.site-main {
    flex: 1;
    min-width: 0;
    overflow-x: clip;
}

.alert {
    padding: 14px 20px;
    margin: 16px auto;
    font-weight: 500;
}

.alert-success {
    background: #edf9f2;
    color: #1d6b45;
    border: 1px solid rgba(46, 155, 106, 0.25);
}

.alert-danger {
    background: #fdf0f0;
    color: #9b2c2c;
    border: 1px solid rgba(214, 69, 69, 0.2);
}

.alert-warning {
    background: #fff8eb;
    color: #8a5a00;
    border: 1px solid rgba(232, 160, 32, 0.25);
}

.alert-info {
    background: var(--brand-softer);
    color: var(--brand-dark);
    border: 1px solid rgba(13, 148, 136, 0.18);
}

.toast-root {
    position: fixed;
    top: calc(var(--header-h) + 12px);
    right: 16px;
    z-index: 1100;
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: min(360px, calc(100vw - 32px));
    pointer-events: none;
}

.toast-root--in-modal {
    position: absolute;
    top: 12px;
    left: 16px;
    right: 52px;
    z-index: 4;
    width: auto;
    max-width: none;
}

.toast-root--in-modal .toast {
    transform: translateY(-120%);
}

.toast-root--in-modal .toast.is-visible {
    transform: translateY(0);
}

.toast-root--in-modal .toast.is-leaving {
    transform: translateY(-120%);
}

.toast {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 0;
    overflow: hidden;
    border-radius: 3px;
    box-shadow: var(--shadow-lg);
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    color: var(--color-text);
    font-size: 0.92rem;
    font-weight: 500;
    line-height: 1.45;
    pointer-events: auto;
    transform: translateX(110%);
    opacity: 0;
    transition: transform 0.28s ease, opacity 0.28s ease;
}

.toast__content {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 16px 12px;
}

.toast__progress {
    height: 3px;
    background: rgba(15, 23, 42, 0.08);
}

.toast__progress-bar {
    display: block;
    height: 100%;
    width: 100%;
    transform: scaleX(1);
    transform-origin: left center;
}

.toast__progress-bar.is-running {
    animation: toast-progress-shrink linear forwards;
    animation-duration: var(--toast-duration, 5000ms);
}

@keyframes toast-progress-shrink {
    from { transform: scaleX(1); }
    to { transform: scaleX(0); }
}

.toast.is-visible {
    transform: translateX(0);
    opacity: 1;
}

.toast.is-leaving {
    transform: translateX(110%);
    opacity: 0;
}

.toast__icon {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
    font-weight: 800;
}

.toast__body {
    flex: 1;
    min-width: 0;
}

.toast__close {
    flex-shrink: 0;
    border: none;
    background: transparent;
    color: inherit;
    opacity: 0.55;
    font-size: 1.25rem;
    line-height: 1;
    cursor: pointer;
    padding: 0;
    margin: -2px 0 0;
}

.toast__close:hover {
    opacity: 1;
}

.toast--success {
    border-color: rgba(46, 155, 106, 0.3);
    background: #edf9f2;
    color: #1d6b45;
}

.toast--success .toast__icon {
    background: rgba(46, 155, 106, 0.12);
    color: #1d6b45;
}

.toast--success .toast__progress-bar {
    background: rgba(29, 107, 69, 0.55);
}

.toast--danger {
    border-color: #f1b0b7;
    background: #fdf3f4;
    color: #721c24;
}

.toast--danger .toast__icon {
    background: #f8d7da;
    color: #721c24;
}

.toast--danger .toast__progress-bar {
    background: rgba(114, 28, 36, 0.45);
}

.toast--warning {
    border-color: #ffe08a;
    background: #fffdf5;
    color: #856404;
}

.toast--warning .toast__icon {
    background: #fff3cd;
    color: #856404;
}

.toast--warning .toast__progress-bar {
    background: rgba(133, 100, 4, 0.45);
}

.toast--info {
    border-color: rgba(13, 148, 136, 0.22);
    background: var(--brand-softer);
    color: var(--brand-dark);
}

.toast--info .toast__icon {
    background: var(--brand-soft);
    color: var(--brand);
}

.toast--info .toast__progress-bar {
    background: rgba(13, 148, 136, 0.5);
}

.hero {
    position: relative;
    min-height: 520px;
    display: flex;
    align-items: center;
    overflow: hidden;
    background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
    border-bottom: 1px solid var(--color-border);
}

.hero-bg {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 85% 15%, rgba(13, 148, 136, 0.08) 0%, transparent 45%), radial-gradient(circle at 10% 80%, rgba(15, 23, 42, 0.04) 0%, transparent 40%);
}

.hero-layout {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(32px, 4vw, 64px);
    align-items: center;
    padding-top: 72px;
    padding-bottom: 72px;
    width: 100%;
}

.hero-visual {
    display: flex;
    justify-content: center;
    align-items: center;
}

.hero-content {
    color: var(--color-text);
    padding: 0;
    max-width: none;
    margin: 0;
    width: auto;
}

.hero-tag {
    margin-bottom: 20px;
}

.hero h1 {
    font-size: clamp(2.25rem, 4vw, 3.75rem);
    font-weight: 700;
    line-height: 1.08;
    letter-spacing: -0.03em;
    margin-bottom: 18px;
    color: var(--color-primary);
    max-width: 18ch;
}

.hero h1 em {
    font-style: normal;
    color: var(--color-accent);
}

.hero p {
    font-size: clamp(1rem, 1.5vw, 1.125rem);
    color: var(--color-text-muted);
    max-width: 36rem;
    margin-bottom: 32px;
}

.hero-actions {
    margin-bottom: 48px;
}

.hero-stats {
    display: flex;
    gap: 40px;
    flex-wrap: wrap;
    padding-top: 28px;
    border-top: 1px solid var(--color-border);
}

.hero-stats .stat strong,
.stat strong {
    display: block;
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--color-primary);
}

.hero-stats .stat span,
.stat span {
    font-size: 0.8125rem;
    color: var(--color-text-muted);
}

@media (max-width: 992px) {
    .hero-layout {
        grid-template-columns: 1fr;
        gap: 32px;
        padding-top: 56px;
        padding-bottom: 56px;
    }
    .hero-visual {
        order: -1;
    }
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-family: var(--font-body);
    border: 1px solid transparent;
    cursor: pointer;
    transition: all var(--transition);
    text-decoration: none;
    line-height: 1.4;
}

.btn-white {
    background: var(--color-white);
    border-color: var(--color-white);
}

.btn-white:hover {
    background: var(--color-bg-alt);
    color: var(--color-primary-dark);
}

.btn-outline-white {
    background: transparent;
    color: var(--color-white);
}

.btn-outline-white:hover {
    background: rgba(255, 255, 255, 0.15);
    border-color: var(--color-white);
    color: var(--color-white);
}

.btn-block {
    width: 100%;
}

.section-tag {
    margin-bottom: 10px;
}

.section-header h2 {
    margin-bottom: 12px;
}

.section-cta {
    text-align: center;
}

@media (min-width: 600px) {
    .features-grid:not(.features-grid--balanced) {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 992px) {
    .features-grid:not(.features-grid--balanced) {
        grid-template-columns: repeat(3, 1fr);
        max-width: 1080px;
        margin-inline: auto;
    }
}

.features-grid.features-grid--balanced {
    flex-wrap: wrap;
    justify-content: center;
}

.features-grid.features-grid--balanced .feature-card {
    flex: 1 1 min(100%, 280px);
}

@media (min-width: 600px) {
    .features-grid.features-grid--quad {
        grid-template-columns: repeat(2, 1fr);
    }
}

.feature-icon {
    margin-bottom: 18px;
}

.feature-card h3 {
    color: var(--color-primary);
    margin-bottom: 8px;
}

.steps-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 24px;
}

@media (min-width: 992px) {
    .steps-grid {
        max-width: 1080px;
        margin-inline: auto;
    }
}

.content-narrow {
    max-width: var(--content-narrow);
    margin-inline: auto;
}

.step-card {
    text-align: center;
    padding: 32px 24px;
}

.step-num {
    width: 48px;
    height: 48px;
    background: var(--color-primary);
    color: var(--color-white);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 1.25rem;
    margin: 0 auto 16px;
}

.step-card h3 {
    color: var(--color-primary);
    margin-bottom: 8px;
    font-size: 1.05rem;
}

.step-card p {
    color: var(--color-text-muted);
    font-size: 0.95rem;
}

.highlight-section {
    background: var(--color-accent-soft);
    color: var(--color-text);
    padding: 56px 0;
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
}

.highlight-inner {
    display: flex;
    align-items: flex-start;
    gap: clamp(20px, 3vw, 32px);
    width: 100%;
}

.highlight-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 88px;
    margin-top: 5px;
    padding: 10px 16px;
    background: var(--color-white);
    color: var(--color-accent);
    border-radius: 3px;
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    flex-shrink: 0;
    border: 1px solid rgba(13, 148, 136, 0.15);
}

.highlight-text h2 {
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 700;
    color: var(--color-primary);
    margin-bottom: 12px;
}

.highlight-text p {
    color: var(--color-text-muted);
    margin-bottom: 20px;
    line-height: 1.7;
}

.card-grid {
    display: grid;
    gap: 24px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: start;
}

.card-grid--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 760px;
    margin-inline: auto;
}

.card-grid--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

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

.card-grid.card-grid--balanced {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 24px;
    max-width: 1080px;
    margin-inline: auto;
}

.card-grid.card-grid--balanced .card {
    flex: 1 1 min(100%, 260px);
    max-width: 360px;
}

.card {
    padding: 28px;
    transition: border-color var(--transition), box-shadow var(--transition);
}

.card:hover {
    border-color: #cbd5e1;
    box-shadow: var(--shadow-md);
}

.card-icon {
    width: 44px;
    height: 44px;
    background: var(--color-accent-soft);
    color: var(--color-accent);
    border-radius: 3px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    margin-bottom: 18px;
}

.card h3 {
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--color-primary);
    margin-bottom: 8px;
}

.card p {
    color: var(--color-text-muted);
    font-size: 0.925rem;
    line-height: 1.65;
}

.feature-strip {
    background: var(--color-bg-alt);
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
    padding: 48px 0;
}

.feature-strip--inline {
    background: transparent;
    border: none;
    padding: 0;
}

.feature-strip .container,
.feature-strip--inline {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 16px 40px;
}

.feature-item {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--color-text-muted);
    font-size: 0.95rem;
    white-space: nowrap;
}

.feature-item strong {
    color: var(--color-primary);
}

.cta-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    flex-wrap: wrap;
}

.cta-text h2 {
    font-size: clamp(1.375rem, 3vw, 1.875rem);
    font-weight: 700;
    margin-bottom: 8px;
    color: var(--color-white);
}

.cta-text p {
    color: rgba(255, 255, 255, 0.75);
    max-width: 520px;
    margin-bottom: 0;
}

.cta-section h2 {
    margin-bottom: 8px;
    font-weight: 700;
}

.cta-section p {
    margin-bottom: 0;
    font-size: 1rem;
}

.page-header,
.page-hero {
    color: var(--color-text);
}

.page-header h1,
.page-hero h1 {
    font-weight: 700;
}

.form-section {
    padding: 48px 0 80px;
}

.form-card {
    padding: 28px;
    max-width: 640px;
    margin: 0 auto;
}

.form-group {
    margin-bottom: 20px;
}

.form-group label {
    display: block;
    margin-bottom: 6px;
}

.form-group:not([hidden]):has(> input[required]:not([type="hidden"]):not([disabled])) > label[for]::after,
.form-group:not([hidden]):has(> input[aria-required="true"]:not([type="hidden"]):not([disabled])) > label[for]::after,
.form-group:not([hidden]):has(> select[required]:not([disabled])) > label[for]::after,
.form-group:not([hidden]):has(> select[aria-required="true"]:not([disabled])) > label[for]::after,
.form-group:not([hidden]):has(> textarea[required]:not([disabled])) > label[for]::after,
.form-group:not([hidden]):has(> textarea[aria-required="true"]:not([disabled])) > label[for]::after,
.form-group:not([hidden]):has(> input[type="file"][required]:not([disabled])) > label[for]::after,
.form-group.checkbox-group:not([hidden]):has(> input[type="checkbox"][required]:not([disabled])) > label[for]::after,
.form-group:not([hidden]):has(.household-options input[type="radio"][required]:not([disabled])) > .benefit-checklist__label::after,
.form-group[data-required-group]:not([hidden]) > .benefit-checklist__label::after,
label[for]:has(+ input[required]:not([type="checkbox"]):not([type="radio"]):not([disabled]))::after,
label[for]:has(+ input[aria-required="true"]:not([type="checkbox"]):not([type="radio"]):not([disabled]))::after,
label[for]:has(+ select[required]:not([disabled]))::after,
label[for]:has(+ select[aria-required="true"]:not([disabled]))::after,
label[for]:has(+ textarea[required]:not([disabled]))::after,
label[for]:has(+ textarea[aria-required="true"]:not([disabled]))::after {
    content: " *";
    color: var(--color-danger);
    font-weight: 700;
}

.form-group input,
.form-group select,
.form-group textarea {
    width: 100%;
    padding: 12px 16px;
    border: 1px solid var(--color-border);
    border-radius: 3px;
    font-family: inherit;
    font-size: 1rem;
    transition: border-color var(--transition);
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    outline: none;
    border-color: rgba(var(--primary-rgb), 0.45);
    box-shadow: var(--ring);
}

.form-group input:read-only,
.form-group input:disabled,
.form-group select:disabled,
.form-group textarea:read-only {
    background: var(--color-bg);
    color: var(--color-text-muted);
    border-color: rgba(var(--text-rgb), 0.14);
    cursor: not-allowed;
    opacity: 0.88;
}

.form-group input:read-only:focus,
.form-group textarea:read-only:focus {
    border-color: rgba(var(--text-rgb), 0.14);
    box-shadow: none;
}

.form-group textarea {
    min-height: 120px;
    resize: vertical;
}

.form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.form-row--3,
.listing-edit-form .form-row--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.listing-edit-form .form-checkboxes {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px 16px;
    margin: 0 0 16px;
}

.listing-edit-form .form-checkboxes .form-group {
    margin-bottom: 0;
}

.listing-edit-form .form-row--3 .checkbox-group {
    align-self: end;
    padding-bottom: 10px;
}

@media (max-width: 991px) {
    .form-row--3,
    .listing-edit-form .form-row--3,
    .listing-edit-form .form-checkboxes {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.form-hint {
    margin-top: 4px;
}

.epc-expired-notice {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 8px;
    padding: 10px 12px;
    border-radius: 3px;
    background: #fdf0f0;
    border: 1px solid #f5c2c2;
    color: #7a1f1f;
    font-size: 0.88rem;
    line-height: 1.4;
}

.form-group input.is-expired {
    border-color: #d64545;
    background: #fff8f8;
}

.form-hint--account-type {
    margin-bottom: 15px;
}

.form-section-title {
    margin: 28px 0 16px;
    border-top: 1px solid var(--color-border);
}

.form-section-title:first-of-type {
    margin-top: 0;
    border-top: none;
}

.property-detail-section {
    font-size: 1rem;
    font-weight: 700;
    color: var(--forest);
    margin: 28px 0 16px;
    padding-top: 8px;
    border-top: 1px solid var(--color-border);
}

.property-detail-section:first-of-type {
    margin-top: 0;
    padding-top: 0;
    border-top: none;
}

.property-detail-grid {
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
}

.property-detail-notes {
    margin: 16px 0 0;
    font-size: 0.9rem;
    color: var(--color-text-muted);
    line-height: 1.5;
}

.provider-field {
    display: none;
}

.provider-field.is-active {
    display: block;
}

.form-error {
    color: var(--color-danger);
    font-size: 0.85rem;
    margin-top: 4px;
}

.text-danger {
    color: var(--color-danger);
}

.checkbox-group {
    display: flex;
    align-items: center;
    gap: 8px;
}

.checkbox-group input {
    width: auto;
}

input[type="checkbox"] {
    margin-inline-end: 0;
}

input[type="checkbox"]:not(:disabled) {
    cursor: pointer;
}

.form-group input[type="checkbox"] {
    width: auto;
    margin-inline-end: 0;
    padding: 0;
    border: none;
    border-radius: 0;
    box-shadow: none;
}

.form-group input[type="checkbox"]:focus {
    box-shadow: none;
    outline: 2px solid rgba(var(--primary-rgb), 0.45);
    outline-offset: 2px;
}

label:has(> input[type="checkbox"]),
.form-group label:has(> input[type="checkbox"]) {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
}

label:has(> input[type="checkbox"]:not(:disabled)),
label:has(input[type="checkbox"]:not(:disabled)) {
    cursor: pointer;
}

.form-actions {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
    margin-top: 24px;
}

.form-actions__primary,
.form-actions__secondary {
    display: flex;
    flex-wrap: wrap;
}

.table-actions {
    display: table-cell;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.table-actions .btn-link {
    margin-right: 8px;
    text-align: right;
}

.table-actions__form {
    display: inline;
    margin: 0;
}

.btn-link {
    background: none;
    border: none;
    padding: 0;
    font: inherit;
    cursor: pointer;
}

.btn-link--danger {
    color: var(--color-danger);
}

.btn-link--danger:hover {
    color: #a71d2a;
}

.confirm-modal {
    position: fixed;
    inset: 0;
    z-index: 1100;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.confirm-modal[hidden] {
    display: none;
}

.confirm-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(47, 28, 106, 0.45);
}

.confirm-modal__panel {
    position: relative;
    width: 100%;
    max-width: 420px;
    background: var(--color-surface);
    border-radius: 3px;
    padding: 28px;
    box-shadow: var(--shadow-lg);
    border: 1px solid var(--color-border);
}

.confirm-modal__title {
    font-size: 1.2rem;
    margin: 0 0 12px;
    color: var(--brand-dark);
}

.confirm-modal__message {
    margin: 0 0 24px;
    color: var(--color-text-muted);
    line-height: 1.5;
}

.confirm-modal__actions {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    flex-wrap: wrap;
}

body.confirm-modal-open {
    overflow: hidden;
}

body.detail-modal-open .confirm-modal,
body.image-viewer-open .confirm-modal {
    z-index: 1250;
}

.detail-modal {
    position: fixed;
    inset: 0;
    z-index: 1150;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--modal-viewport-margin-block) 24px;
    box-sizing: border-box;
}

.detail-modal[hidden] {
    display: none;
}

.detail-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(47, 28, 106, 0.5);
}

.detail-modal__panel {
    position: relative;
    width: 100%;
    max-width: var(--modal-detail-width);
    max-height: var(--modal-viewport-height);
    display: flex;
    flex-direction: column;
    background: var(--color-surface);
    border-radius: 3px;
    padding: 28px 28px 24px;
    box-shadow: var(--shadow-lg);
    border: 1px solid var(--color-border);
}

.detail-modal--wide {
    padding: var(--modal-viewport-margin-block) 16px;
}

.detail-modal--wide .detail-modal__panel {
    max-width: var(--modal-detail-width-wide);
}

.detail-modal--form {
    padding: var(--modal-viewport-margin-block) 16px;
}

.detail-modal__close {
    position: absolute;
    top: 12px;
    right: 14px;
    width: 36px;
    height: 36px;
    border: none;
    background: transparent;
    font-size: 1.6rem;
    line-height: 1;
    color: var(--color-text-muted);
    cursor: pointer;
    border-radius: 3px;
}

.detail-modal__close:hover {
    color: var(--brand);
    background: var(--brand-soft);
}

.detail-modal__title {
    font-size: 1.35rem;
    margin: 0 36px 8px 0;
    color: var(--brand-dark);
    line-height: 1.3;
}

.detail-modal__subtitle {
    margin: 0 0 20px;
    color: var(--color-text-muted);
    font-size: 0.95rem;
}

.detail-modal__body {
    overflow-y: auto;
    flex: 1;
    min-height: 0;
    padding-right: 4px;
}

.detail-modal__loading,
.detail-modal__error {
    color: var(--color-text-muted);
    margin: 0;
}

.detail-modal__error {
    color: var(--color-danger, #c0392b);
}

.detail-modal__loading-overlay {
    position: absolute;
    inset: 0;
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
    background: rgba(255, 255, 255, 0.94);
    border-radius: inherit;
}

.detail-modal__loading-overlay[hidden] {
    display: none;
}

.detail-modal__loading-text {
    margin: 0;
    color: var(--color-text-muted);
    font-size: 0.95rem;
}

.modal-spinner {
    width: 38px;
    height: 38px;
    border: 3px solid var(--brand-soft, #e8e0f5);
    border-top-color: var(--brand, #5b2d8e);
    border-radius: 50%;
    animation: modal-spin 0.75s linear infinite;
}

@keyframes modal-spin {
    to { transform: rotate(360deg); }
}

.detail-modal--loading .detail-modal__title,
.detail-modal--loading .detail-modal__subtitle,
.detail-modal--loading .detail-modal__body {
    visibility: hidden;
}

body.detail-modal-open {
    overflow: hidden;
}

.detail-modal--form .detail-modal__panel {
    max-width: var(--modal-detail-width-form);
}

.detail-modal--form .listing-edit-form.form-card {
    max-width: none;
    margin: 0;
    padding: 0;
    border: none;
    box-shadow: none;
}

.form-actions--modal-secondary {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--color-border);
}

.listing-detail__badges {
    margin: 0 0 16px;
}

.listing-detail__notice {
    margin: 0 0 16px;
    padding: 12px 14px;
    border-radius: 3px;
    background: var(--brand-softer);
    color: var(--brand);
    font-size: 0.92rem;
    line-height: 1.5;
}

.listing-detail__desc {
    color: var(--color-text-muted);
    margin: 0 0 20px;
    line-height: 1.55;
}

.listing-detail__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    margin-bottom: 8px;
}

.tenant-search-matches {
    margin: 0 0 16px;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-items: flex-start;
}

.listing-detail__meta {
    margin-top: 20px;
    color: var(--color-text-muted);
    font-size: 0.9rem;
    line-height: 1.5;
}

.listing-detail .property-detail-section {
    font-size: 1rem;
    margin: 20px 0 12px;
}

.compliance-upload-field__current {
    margin: 0 0 8px;
}

.compliance-docs-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 0 0 20px;
}

.compliance-docs-list__item {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    font-size: 0.92rem;
}

.compliance-docs-list__item .form-hint {
    margin: 0;
}

.listing-detail .property-detail-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
}

.household-options {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 20px;
    margin-top: 8px;
}

.household-options__item {
    display: inline-flex;
    align-items: center;
    gap: 0;
    font-size: 0.95rem;
    cursor: pointer;
}

.household-options__item input {
    width: auto;
    margin: 0;
    margin-inline-end: 5px;
    padding: 0;
}

.benefit-checklist__label {
    display: block;
    font-weight: 600;
    margin-bottom: 6px;
    font-size: 0.9rem;
}

fieldset[data-benefit-checklist] {
    border: none;
    margin: 0;
    padding: 0;
    min-inline-size: 0;
}

fieldset[data-benefit-checklist] > .benefit-checklist__label {
    float: none;
    width: 100%;
    padding: 0;
    margin: 0 0 6px;
}

.benefit-checklist {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 12px;
    margin-top: 10px;
}

.benefit-checklist__group {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.benefit-checklist__group-title {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--forest);
    margin: 0 0 4px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--color-border);
}

.placement-benefits__group {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--forest);
    margin: 16px 0 8px;
}

.benefit-checklist__item {
    display: flex;
    align-items: center;
    gap: 0;
    margin: 0;
    padding: 8px 10px;
    border: 1px solid var(--color-border);
    border-radius: 3px;
    background: var(--color-surface, #fff);
    font-size: 0.9rem;
    font-weight: 500;
    line-height: 1.35;
    cursor: pointer;
    transition: border-color var(--transition), background var(--transition);
}

.form-group .benefit-checklist__item {
    display: flex;
    margin-bottom: 0;
    font-weight: 500;
}

.benefit-checklist__item:has(input:checked) {
    border-color: color-mix(in srgb, var(--color-primary, #0f172a) 45%, var(--color-border, #e2e8f0));
    background: var(--color-accent-soft, #F0FDFA);
}

.benefit-checklist__item input[type="checkbox"],
.form-group .benefit-checklist__item input[type="checkbox"] {
    width: auto;
    margin: 0;
    margin-inline-end: 5px;
    padding: 0;
    border: none;
    border-radius: 0;
    box-shadow: none;
    flex-shrink: 0;
}

.form-group .benefit-checklist__item input[type="checkbox"]:focus {
    box-shadow: none;
    outline: 2px solid rgba(var(--primary-rgb), 0.45);
    outline-offset: 2px;
}

@media (max-width: 720px) {
    .benefit-checklist {
        grid-template-columns: 1fr;
    }
}

.property-type-checklist {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 12px 20px;
    grid-template-columns: none;
}

.property-type-checklist__item {
    padding: 10px 14px;
    border: 1px solid var(--color-border);
    border-radius: 3px;
    background: var(--color-surface);
    transition: border-color var(--transition), background var(--transition);
}

.property-type-checklist__item:has(input:checked) {
    border-color: var(--color-primary);
    background: var(--color-accent-soft);
}

.property-type-checklist__item input.invalid {
    outline: 2px solid var(--color-danger, #dc2626);
    outline-offset: 2px;
}

.placement-source-panel {
    margin: 0 0 24px;
    padding: 20px;
    border: 1px solid var(--color-border);
    border-radius: 3px;
    background: var(--color-surface-muted, #f8fafc);
}

.placement-source-panel__legend {
    font-size: 1rem;
    font-weight: 700;
    color: var(--forest);
    padding: 0 4px;
}

.placement-source-panel__options {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 12px;
}

.placement-source-panel__option {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    cursor: pointer;
    font-size: 0.95rem;
}

.placement-source-panel__option input {
    width: auto;
    margin: 4px 5px 0 0;
    flex-shrink: 0;
}

.placement-source-panel__select {
    margin-top: 16px;
    margin-bottom: 0;
}

.requirement-compliance-panel {
    margin: 24px 0;
    padding: 20px;
    border: 1px solid var(--color-border);
    border-radius: 3px;
    background: var(--color-surface-muted, #f8fafc);
}

.requirement-compliance-panel__title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--forest);
    margin: 0 0 6px;
}

.requirement-compliance-panel .form-hint {
    margin-bottom: 0;
}

.compliance-checklist {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 14px;
    margin: 14px 0 0;
}

.compliance-checklist__item {
    display: flex;
    align-items: flex-start;
    gap: 0;
    margin: 0;
    padding: 10px 12px;
    border: 1px solid var(--color-border);
    border-radius: 3px;
    background: var(--color-surface);
    font-size: 0.95rem;
    cursor: pointer;
    transition: border-color var(--transition), background var(--transition);
}

.compliance-checklist__item:has(input:checked) {
    border-color: var(--color-primary);
    background: var(--color-accent-soft);
}

.compliance-checklist__item input {
    width: auto;
    margin: 3px 5px 0 0;
    padding: 0;
    flex-shrink: 0;
}

.requirement-compliance-panel__selects {
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid var(--color-border);
}

.requirement-compliance-panel__selects .form-group {
    margin-bottom: 0;
}

.requirement-compliance-panel__note {
    margin: 16px 0 0;
    padding-top: 14px;
    border-top: 1px solid var(--color-border);
}

.listing-detail__compliance-note {
    margin: 8px 0 0;
    font-size: 0.9rem;
    color: var(--color-text-muted, #64748b);
    line-height: 1.45;
}

@media (max-width: 640px) {
    .compliance-checklist {
        grid-template-columns: 1fr;
    }
}

.placement-benefits {
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid var(--color-border);
}

.placement-benefits h3 {
    font-size: 1rem;
    margin-bottom: 4px;
    color: var(--forest);
}

.placement-benefits__list {
    list-style: none;
    padding: 0;
    margin: 12px 0 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.placement-benefits__list li {
    padding-left: 24px;
    position: relative;
    font-size: 0.95rem;
}

.placement-benefits__list li::before {
    content: '✓';
    position: absolute;
    left: 0;
    color: var(--forest);
    font-weight: 700;
}

.table-wrap {
    max-width: 100%;
    -webkit-overflow-scrolling: touch;
}

.data-table {
    width: 100%;
    min-width: 0;
    border-collapse: collapse;
    background: var(--color-surface);
    border-radius: 3px;
    overflow: hidden;
    box-shadow: var(--shadow);
}

.data-table th,
.data-table td {
    padding: 14px 18px;
    text-align: left;
    border-bottom: 1px solid var(--color-border);
}

.data-table th {
    background: var(--color-bg);
    font-weight: 600;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--color-text-muted);
}

.data-table tr:last-child td {
    border-bottom: none;
}

.data-table tr:hover td {
    background: var(--mint-soft);
}

.badge {
    text-transform: none;
}

.dashboard-page {
    background: var(--color-bg);
    flex: 1;
    padding: 24px 0 80px;
}

.dashboard-page > .container {
    max-width: var(--header-content-max);
    padding-left: var(--layout-gutter);
    padding-right: var(--layout-gutter);
}

.dashboard-breadcrumb {
    margin-bottom: 20px;
}

.dashboard-breadcrumb ol {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 0.9rem;
    color: var(--color-text-muted);
}

.dashboard-breadcrumb li:not(:last-child)::after {
    content: '›';
    margin-left: 8px;
    color: rgba(var(--text-rgb), 0.35);
}

.dashboard-breadcrumb a {
    color: var(--color-text-muted);
    font-weight: 500;
}

.dashboard-breadcrumb a:hover {
    color: var(--brand);
}

.dashboard-breadcrumb [aria-current="page"] {
    color: var(--color-text);
    font-weight: 600;
}

.dashboard-tabs {
    margin-bottom: 20px;
}

.dashboard-tabs__inner {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    border-bottom: 1px solid var(--color-border);
}

.dashboard-tabs a {
    display: inline-flex;
    align-items: center;
    padding: 10px 14px;
    margin-bottom: -1px;
    border-radius: 0;
    color: var(--color-text-muted);
    font-weight: 500;
    font-size: 0.9rem;
    border: none;
    border-bottom: 2px solid transparent;
    background: transparent;
}

.dashboard-tabs a:not(.active):hover {
    color: var(--brand);
    background: transparent;
}

.dashboard-tabs a.active {
    color: var(--brand);
    font-weight: 600;
    background: transparent;
    border-bottom-color: var(--brand);
    box-shadow: none;
}

.dashboard-page-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 24px;
}

.dashboard-page-header h1 {
    font-size: clamp(1.35rem, 2.5vw, 1.75rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    margin: 0;
    color: var(--color-text);
}

.dashboard-page-header--actions-only {
    justify-content: flex-end;
    margin-bottom: 16px;
}

.dashboard-page-header__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

.dashboard-metrics {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 24px;
}

.dashboard-metrics__item {
    display: flex;
    align-items: baseline;
    gap: 6px;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
}

.dashboard-metrics__item:not(:last-child)::after {
    content: '·';
    margin-left: 6px;
    color: rgba(var(--text-rgb), 0.25);
    font-weight: 400;
}

.dashboard-metrics__value {
    font-size: 1rem;
    font-weight: 700;
    color: var(--color-text);
    letter-spacing: -0.02em;
}

.dashboard-metrics__label {
    font-size: 0.88rem;
    color: var(--color-text-muted);
    font-weight: 400;
}

.dashboard-notice {
    padding: 12px 14px;
    border-radius: 3px;
    margin-bottom: 16px;
    font-size: 0.88rem;
    line-height: 1.5;
    border: 1px solid var(--color-border);
}

.dashboard-notice--info {
    background: var(--brand-softer);
    border-color: rgba(13, 148, 136, 0.16);
    color: var(--brand-dark);
}

.dashboard-notice--warning {
    background: #fff8eb;
    border-color: rgba(232, 160, 32, 0.25);
    color: #8a5a00;
}

.dashboard-notice--success {
    background: #edf9f2;
    border-color: rgba(46, 155, 106, 0.2);
    color: #1d6b45;
}

.saved-search-summary {
    margin-bottom: 20px;
    padding: 16px 18px;
    border-radius: 3px;
    border: 1px solid var(--color-border);
    background: var(--color-surface);
}

.saved-search-summary--empty {
    border-style: dashed;
}

.saved-search-summary--paused {
    opacity: 0.92;
}

.saved-search-summary__header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px 16px;
    margin-bottom: 10px;
}

.saved-search-summary__title {
    margin: 0;
    font-size: 1.1rem;
}

.saved-search-summary__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.saved-search-summary__criteria {
    margin: 0 0 8px;
    font-size: 1rem;
}

.saved-search-summary__text,
.saved-search-summary__meta {
    margin: 0 0 10px;
    color: var(--color-text-muted);
    font-size: 0.92rem;
    line-height: 1.55;
}

.saved-search-summary__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 14px;
}

.map-filters {
    margin-bottom: 20px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--color-border);
}

.map-filters .form-group {
    margin-bottom: 12px;
}

.nav-notifications {
    font-size: 0.92rem;
    font-weight: 500;
}

.nav-notifications.has-unread::after {
    content: '';
    display: inline-block;
    width: 7px;
    height: 7px;
    margin-left: 5px;
    border-radius: 50%;
    background: var(--brand);
    vertical-align: 2px;
}

.placement-enquiry {
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid var(--color-border);
}

.onboarding-checklist {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding: 0;
    margin: 0 0 16px;
}

.onboarding-checklist li {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 12px 7px 10px;
    border: 1px solid var(--color-border);
    border-radius: 3px;
    font-size: 0.82rem;
    font-weight: 500;
    line-height: 1.3;
}

.onboarding-checklist__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    font-size: 0.68rem;
    font-weight: 800;
    line-height: 1;
    flex-shrink: 0;
}

.onboarding-checklist li.is-done {
    color: #047857;
    background: #ecfdf5;
    border-color: #a7f3d0;
}

.onboarding-checklist li.is-done .onboarding-checklist__icon {
    color: #ffffff;
    background: #059669;
}

.onboarding-checklist li.is-done .onboarding-checklist__icon::before {
    content: '✓';
}

.onboarding-checklist li.is-validating {
    color: #b45309;
    background: #fffbeb;
    border-color: #fcd34d;
}

.onboarding-checklist li.is-validating .onboarding-checklist__icon {
    color: #ffffff;
    background: #d97706;
}

.onboarding-checklist li.is-validating .onboarding-checklist__icon::before {
    content: '…';
}

.onboarding-checklist li.is-outstanding {
    color: #b91c1c;
    background: #fef2f2;
    border-color: #fecaca;
}

.onboarding-checklist li.is-outstanding .onboarding-checklist__icon {
    color: #ffffff;
    background: #dc2626;
}

.onboarding-checklist li.is-outstanding .onboarding-checklist__icon::before {
    content: '✕';
}

.onboarding-checklist--steps {
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 8px;
    margin: 0 0 20px;
}

.onboarding-checklist--steps li {
    display: flex;
    gap: 14px;
    padding: 14px 16px;
    border-radius: 3px;
    background: #ffffff;
    font-size: 0.9375rem;
    line-height: 1.4;
}

.onboarding-checklist--steps .onboarding-checklist__body {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px 16px;
}

.onboarding-checklist--steps .onboarding-checklist__label {
    flex: 1;
    min-width: 0;
}

.onboarding-checklist--steps .onboarding-checklist__action {
    flex-shrink: 0;
    white-space: nowrap;
}

.onboarding-checklist--steps .onboarding-checklist__icon {
    width: 22px;
    height: 22px;
    font-size: 0.72rem;
}

.onboarding-checklist--steps li.is-done {
    color: var(--color-text);
    background: #f0fdf4;
    border-color: #bbf7d0;
}

.onboarding-checklist--steps li.is-validating {
    color: var(--color-text);
    background: #fffbeb;
    border-color: #fcd34d;
}

.onboarding-checklist--steps li.is-outstanding {
    color: var(--color-text);
    background: #ffffff;
    border-color: var(--color-border);
}

.onboarding-checklist--steps li.is-outstanding .onboarding-checklist__icon {
    color: transparent;
    background: transparent;
    border: 2px solid #cbd5e1;
    box-sizing: border-box;
}

.onboarding-checklist--steps li.is-outstanding .onboarding-checklist__icon::before {
    content: '';
}

@media (max-width: 640px) {
    .onboarding-checklist--steps .onboarding-checklist__body {
        flex-direction: column;
        align-items: flex-start;
    }
    .onboarding-checklist--steps .onboarding-checklist__action {
        align-self: flex-start;
    }
}

.dashboard-banner {
    padding: 12px 16px;
    border-radius: 3px;
    margin-bottom: 16px;
    font-size: 0.875rem;
    line-height: 1.5;
}

.dashboard-banner p {
    margin: 0;
}

.dashboard-banner a {
    font-weight: 600;
}

.dashboard-banner--warning {
    background: #fff7ed;
    border: 1px solid #fed7aa;
    color: #9a3412;
}

.dashboard-banner--info {
    background: var(--color-accent-soft);
    border: 1px solid #bfdbfe;
    color: #1e40af;
}

.checkout-summary {
    margin-top: 1rem;
    padding: 1rem 1.25rem;
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: 3px;
    background: var(--color-surface-muted, #f9fafb);
}

.checkout-summary__amount {
    font-size: 1.5rem;
    font-weight: 700;
    margin: 0.35rem 0 0;
}

.admin-pagination {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--color-border, #e5e7eb);
}

.admin-pagination__meta {
    font-size: 0.875rem;
    color: var(--color-text-muted);
}

.admin-search-form {
    display: inline-flex;
    gap: 8px;
    align-items: center;
    margin-left: 8px;
    flex-wrap: wrap;
}

.admin-search-form__input {
    min-width: 220px;
    padding: 6px 10px;
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: 3px;
}

.compliance-panel__heading {
    font-size: 0.95rem;
    margin: 1rem 0 0.35rem;
}

.compliance-panel__list {
    margin: 0 0 0.75rem 1.1rem;
    padding: 0;
}

.compliance-panel__list li {
    margin-bottom: 0.35rem;
}

.match-menu {
    position: relative;
    display: inline-flex;
    vertical-align: middle;
}

.match-menu__toggle {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
    padding: 7px 14px;
    font-size: 0.85rem;
}

.match-menu__chevron {
    font-size: 0.62rem;
    line-height: 1;
    opacity: 0.65;
}

.match-menu.is-open .match-menu__toggle {
    border-color: rgba(13, 148, 136, 0.4);
    background: var(--brand-softer);
}

.match-menu__panel {
    display: none;
    position: absolute;
    top: calc(100% + 4px);
    right: 0;
    z-index: 40;
    min-width: 260px;
    padding: 8px;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 3px;
    box-shadow: var(--shadow-md);
}

.match-menu.is-open .match-menu__panel {
    display: block;
}

.match-menu__panel--fixed {
    z-index: 1200;
}

.match-menu__panel--fixed.match-menu__panel--above {
    box-shadow: 0 -4px 16px rgba(15, 23, 42, 0.12);
}

.match-menu__item {
    display: block;
    width: 100%;
    text-align: left;
    padding: 11px 14px;
    border: none;
    background: transparent;
    font: inherit;
    font-size: 0.9rem;
    color: var(--color-text);
    border-radius: 3px;
    cursor: pointer;
    text-decoration: none;
    white-space: nowrap;
    line-height: 1.35;
}

.match-menu__item:hover,
.match-menu__item:focus-visible {
    background: var(--color-bg);
    outline: none;
}

.match-menu__item--accept {
    color: #15803d;
}

.match-menu__item--danger {
    color: #dc2626;
}

.match-menu__item--current {
    font-weight: 600;
    background: var(--brand-softer);
    color: var(--brand-dark);
}

.match-menu__item--primary {
    font-weight: 600;
    color: var(--brand);
}

.match-status-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 14px;
}

.match-status-filters__item {
    display: inline-flex;
    align-items: center;
    padding: 6px 12px;
    border: 1px solid var(--color-border);
    border-radius: 3px;
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--color-text-muted);
    text-decoration: none;
    background: var(--color-surface);
}

.match-status-filters__item:hover {
    border-color: rgba(13, 148, 136, 0.35);
    color: var(--brand-dark);
}

.match-status-filters__item.is-active {
    border-color: rgba(13, 148, 136, 0.45);
    background: var(--brand-softer);
    color: var(--brand-dark);
    font-weight: 600;
}

.match-menu__item:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.dashboard-list__actions:has(.match-actions) {
    flex: 0 1 auto;
    justify-content: flex-end;
    overflow-x: auto;
    max-width: 100%;
    -webkit-overflow-scrolling: touch;
}

.dashboard-list__row:has(.match-actions) {
    align-items: center;
    gap: 12px;
}

.alerts-inbox-panel {
    padding: 0;
    overflow: hidden;
}

.alerts-inbox-list {
    width: 100%;
}

.alerts-inbox-grid {
    display: grid;
    grid-template-columns: 1fr 1.4fr 2fr 0.75fr 0.85fr 1.35fr;
    gap: 16px 24px;
    align-items: center;
    width: 100%;
    padding: 0 24px;
    box-sizing: border-box;
}

@media (max-width: 900px) {
    .alerts-inbox-list {
        overflow-x: auto;
    }
    .alerts-inbox-grid {
        min-width: 900px;
    }
}

@media (max-width: 768px) {
    .alerts-inbox-list {
        overflow-x: visible;
    }
    .alerts-inbox-grid {
        min-width: 0;
        grid-template-columns: 1fr;
        gap: 8px;
        padding: 0 16px;
    }
    .alerts-inbox-grid--matches {
        grid-template-columns: 1fr;
    }
    .alerts-inbox-grid--head {
        display: none;
    }
    .alerts-inbox-item__actions {
        justify-content: flex-start;
    }
}

.alerts-inbox-grid--head {
    padding-top: 12px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--color-border);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--color-text-muted);
}

.alerts-inbox-grid--head span:last-child {
    text-align: right;
}

.alerts-inbox-grid--matches {
    grid-template-columns: 0.7fr 1.2fr 1.7fr 0.7fr 0.75fr minmax(220px, 2.4fr);
}

.alerts-inbox-item:has(.match-menu) {
    overflow: visible;
}

.alerts-inbox-item__actions:has(.match-menu) {
    overflow: visible;
}

.alerts-inbox-item__actions .match-menu {
    margin-left: auto;
}

.marketplace-card__actions:has(.match-menu) {
    overflow: visible;
}

.alerts-inbox-item {
    padding: 14px 0;
    border-bottom: 1px solid var(--color-border);
    transition: background var(--transition);
}

.alerts-inbox-item:last-child {
    border-bottom: none;
}

.alerts-inbox-item:hover {
    background: var(--color-bg);
}

.alerts-inbox-item.is-unread {
    background: var(--brand-softer);
}

.alerts-inbox-item__type {
    display: flex;
    align-items: center;
}

.alerts-inbox-item__type-pill {
    font-size: 0.72rem;
    font-weight: 600;
    white-space: nowrap;
}

.alerts-inbox-item__title {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--color-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.alerts-inbox-item__details {
    font-size: 0.88rem;
    color: var(--color-text-muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.alerts-inbox-item__status {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
}

.alerts-inbox-item__date {
    font-size: 0.82rem;
    color: var(--color-text-muted);
    white-space: nowrap;
    text-align: right;
}

.alerts-inbox-item__actions {
    display: flex;
    flex-wrap: nowrap;
    gap: 4px;
    align-items: center;
    justify-content: flex-end;
    min-width: 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}

.alerts-inbox-item__actions form {
    display: inline;
    margin: 0;
}

.notifications-list .dashboard-list__row.is-unread {
    background: rgba(13, 148, 136, 0.04);
}

.dashboard-list__row.is-highlighted {
    background: rgba(13, 148, 136, 0.06);
    border-left: 3px solid var(--brand);
}

.dashboard-list__highlight {
    display: block;
}

.message-layout {
    display: grid;
    grid-template-columns: minmax(240px, 300px) minmax(0, 1fr);
    gap: 20px;
    align-items: start;
}

.message-layout--single {
    grid-template-columns: minmax(0, 1fr);
}

.message-layout__sidebar,
.message-layout__main {
    min-width: 0;
}

.message-layout__sidebar {
    padding: 14px;
    border: 1px solid var(--color-border);
    border-radius: 3px;
    background: var(--color-surface);
}

.message-inbox-panel {
    padding: 0;
    overflow: hidden;
}

.message-inbox-panel h2 {
    margin: 0;
    padding: 20px 24px;
    font-size: 1.05rem;
    border-bottom: 1px solid var(--color-border);
}

.message-inbox-list {
    width: 100%;
}

.message-inbox-grid {
    display: grid;
    grid-template-columns: 1.1fr 1.55fr 2fr 1.25fr 0.75fr 0.85fr;
    gap: 16px 24px;
    align-items: center;
    width: 100%;
    padding: 0 24px;
    box-sizing: border-box;
}

@media (max-width: 900px) {
    .message-inbox-list {
        overflow-x: auto;
    }
    .message-inbox-grid {
        min-width: 820px;
    }
}

.message-inbox-grid--head {
    padding-top: 12px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--color-border);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--color-text-muted);
}

.message-inbox-grid--head span:last-child {
    text-align: right;
}

.message-inbox-item {
    display: block;
    padding: 14px 0;
    border-bottom: 1px solid var(--color-border);
    text-decoration: none;
    color: inherit;
    transition: background var(--transition);
}

.message-inbox-item:last-child {
    border-bottom: none;
}

.message-inbox-item:hover,
.message-inbox-item.is-active {
    background: var(--color-bg);
}

.message-inbox-item.is-unread {
    background: var(--brand-softer);
}

.message-inbox-item__name {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--color-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.message-inbox-item__subject {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.message-inbox-item__subject-text {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--color-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.message-inbox-item__placement-btn {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    color: var(--brand);
    cursor: pointer;
    transition: background var(--transition), border-color var(--transition);
}

.message-inbox-item__placement-btn:hover {
    background: var(--brand-softer);
    border-color: rgba(13, 148, 136, 0.25);
}

.message-inbox-item__preview {
    font-size: 0.88rem;
    color: var(--color-text-muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.message-inbox-item__type {
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.message-inbox-item__type-pill {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: none;
    white-space: nowrap;
}

.message-inbox-item__badges {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.message-inbox-item__date {
    font-size: 0.82rem;
    color: var(--color-text-muted);
    white-space: nowrap;
    text-align: right;
}

.message-sidebar__label {
    margin: 0 0 8px;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--color-text-muted);
}

.message-enquiries {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid var(--color-border);
}

.message-enquiries__heading {
    display: none;
}

.message-threads {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.message-thread-item,
.message-enquiry-item {
    display: block;
    padding: 10px 12px;
    border: none;
    border-radius: 3px;
    text-decoration: none;
    color: inherit;
    background: transparent;
    transition: background var(--transition);
}

.message-thread-item:hover,
.message-thread-item.is-active,
.message-enquiry-item:hover,
.message-enquiry-item.is-active {
    background: var(--color-bg);
}

.message-thread-item.is-unread,
.message-enquiry-item.is-unread {
    background: var(--brand-softer);
}

.message-thread-item__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 4px;
}

.message-thread-item__subject,
.message-thread-item__preview,
.message-thread-item__meta {
    margin: 0 0 4px;
    font-size: 0.88rem;
    color: var(--color-text-muted);
    line-height: 1.45;
}

.message-thread-item__subject {
    color: var(--color-text);
    font-weight: 600;
}

.message-thread-view__head {
    margin-bottom: 0;
    padding: 20px 20px 12px;
}

.message-thread-view__head h2 {
    margin: 0 0 6px;
    font-size: 1.25rem;
}

.message-thread-view__context {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 10px;
}

.message-thread-panel {
    padding: 0;
    overflow: hidden;
}

.message-thread-panel .message-thread-view {
    display: flex;
    flex-direction: column;
}

.message-thread-back {
    margin-bottom: 12px;
}

.message-thread-view__messages {
    display: flex;
    flex-direction: column;
    gap: 12px;
    max-height: min(50vh, 460px);
    min-height: 120px;
    overflow-y: auto;
    padding: 16px 20px;
    margin: 0;
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
    border-radius: 0;
    background: var(--color-bg);
}

.message-bubble {
    max-width: min(85%, 520px);
    padding: 12px 14px;
    border-radius: 3px;
    border: 1px solid var(--color-border);
    background: var(--color-surface);
}

.message-bubble--mine {
    align-self: flex-end;
    background: var(--brand-softer);
    border-color: rgba(13, 148, 136, 0.2);
}

.message-bubble--theirs {
    align-self: flex-start;
}

.message-bubble--interest {
    align-self: flex-start;
    max-width: min(92%, 560px);
    background: var(--color-accent-soft);
    border-color: #bfdbfe;
}

.message-bubble--interest.message-bubble--mine {
    align-self: flex-end;
    max-width: min(85%, 520px);
}

.message-bubble__tag {
    margin: 0 0 8px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--color-accent-dark);
}

.message-thread-reply {
    margin: 0;
    padding: 16px 20px 20px;
    background: var(--color-surface);
}

.message-thread-reply .form-group {
    margin-bottom: 12px;
}

.message-bubble__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: space-between;
    margin-bottom: 8px;
    font-size: 0.82rem;
    color: var(--color-text-muted);
}

.message-bubble__body {
    font-size: 0.95rem;
    line-height: 1.55;
}

.message-layout__empty {
    padding: 24px;
}

.message-inbox-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 48px 24px;
    min-height: 200px;
}

.message-inbox-empty h2 {
    margin: 0 0 8px;
}

.message-inbox-empty .form-hint {
    max-width: 420px;
    margin: 0;
}

.message-enquiry-items {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.message-enquiry-item__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 4px;
}

.message-enquiry-item__preview,
.message-enquiry-item__meta {
    margin: 0 0 4px;
    font-size: 0.88rem;
    color: var(--color-text-muted);
    line-height: 1.45;
}

.message-enquiry-view__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 16px;
}

@media (max-width: 900px) {
    .message-layout:not(.message-layout--single) {
        grid-template-columns: 1fr;
    }
    .message-layout:not(.message-layout--single):not(.message-layout--panel-open) .message-layout__main {
        display: none;
    }
    .message-layout:not(.message-layout--single).message-layout--panel-open .message-layout__sidebar {
        display: none;
    }
}

.listing-detail__actions {
    margin-top: 16px;
}

.listing-gallery {
    margin-bottom: 20px;
}

.listing-gallery__title {
    margin: 0 0 12px;
    font-size: 1rem;
}

.listing-gallery__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: 12px;
}

.listing-gallery__item,
.listing-gallery__manage-preview {
    display: block;
    padding: 0;
    background: none;
    font: inherit;
    cursor: pointer;
    text-align: left;
    border-radius: 3px;
    overflow: hidden;
    border: 1px solid var(--color-border);
    aspect-ratio: 4 / 3;
}

.listing-gallery__item:hover,
.listing-gallery__manage-preview:hover {
    opacity: 0.92;
}

.listing-gallery__item img,
.listing-gallery__manage-item img,
.listing-gallery__manage-preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.image-viewer-modal {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--modal-viewport-margin-block) 24px;
    box-sizing: border-box;
}

.image-viewer-modal[hidden] {
    display: none;
}

.image-viewer-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(20, 12, 40, 0.88);
}

.image-viewer-modal__panel {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: min(1100px, 100%);
    max-height: var(--modal-viewport-height);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.image-viewer-modal__figure {
    margin: 0;
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}

.image-viewer-modal__img {
    display: block;
    max-width: 100%;
    max-height: calc(var(--modal-viewport-height) - 48px);
    width: auto;
    height: auto;
    object-fit: contain;
    border-radius: 3px;
    background: #111;
}

.image-viewer-modal__caption {
    margin: 0;
    color: rgba(255, 255, 255, 0.88);
    font-size: 0.9rem;
    text-align: center;
    max-width: 100%;
    overflow-wrap: anywhere;
}

.image-viewer-modal__counter {
    position: absolute;
    left: 50%;
    bottom: -28px;
    transform: translateX(-50%);
    margin: 0;
    color: rgba(255, 255, 255, 0.75);
    font-size: 0.85rem;
}

.image-viewer-modal__close {
    position: absolute;
    top: -8px;
    right: 0;
    width: 40px;
    height: 40px;
    border: none;
    background: transparent;
    color: #fff;
    font-size: 2rem;
    line-height: 1;
    cursor: pointer;
    border-radius: 3px;
}

.image-viewer-modal__close:hover {
    background: rgba(255, 255, 255, 0.12);
}

.image-viewer-modal__nav {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border: none;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.14);
    color: #fff;
    font-size: 1.8rem;
    line-height: 1;
    cursor: pointer;
}

.image-viewer-modal__nav:hover {
    background: rgba(255, 255, 255, 0.24);
}

.image-viewer-modal__nav[hidden] {
    display: none;
}

body.image-viewer-open {
    overflow: hidden;
}

.listing-gallery__manage-item {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.saved-search-list__item {
    padding: 10px 0;
    border-bottom: 1px solid var(--color-border);
}

.saved-search-list__item:last-child {
    border-bottom: none;
}

.admin-bulk-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    margin-bottom: 16px;
    padding: 12px 16px;
    border: 1px solid var(--color-border);
    background: var(--brand-softer);
}

.admin-bulk-toolbar__count {
    font-weight: 700;
    margin-right: 8px;
}

.dashboard-list__select {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    padding-right: 4px;
}

.bulk-select {
    display: inline-flex;
    align-items: center;
    margin: 0;
}

@media (max-width: 768px) {
    .profile-sections .form-row,
    .listing-edit-form .form-row,
    .listing-edit-form .form-row--3,
    .listing-edit-form .form-checkboxes {
        grid-template-columns: 1fr;
    }
}

.dashboard-notice--danger {
    background: #fdf0f0;
    border-color: rgba(214, 69, 69, 0.2);
    color: #9b2c2c;
}

.dashboard-panel {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 3px;
    box-shadow: var(--shadow-sm);
    margin-bottom: 24px;
    overflow: hidden;
}

.dashboard-panel__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    padding: 20px 24px;
    border-bottom: 1px solid var(--color-border);
}

.dashboard-panel__meta {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.dashboard-panel__meta strong {
    font-size: 1.05rem;
    color: var(--color-text);
}

.dashboard-panel__meta span {
    font-size: 0.88rem;
    color: var(--color-text-muted);
    line-height: 1.45;
}

.dashboard-panel__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

.dashboard-list__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    padding: 14px 16px;
    border-bottom: 1px solid var(--color-border);
}

.dashboard-list__row:last-child {
    border-bottom: none;
}

.dashboard-list__row:hover {
    background: rgba(13, 148, 136, 0.02);
}

.dashboard-list--cards {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 14px;
    border: 1px solid var(--color-border);
    border-radius: 3px;
    background: var(--color-surface);
    box-shadow: var(--shadow-sm);
}

.dashboard-list--cards .dashboard-list__row {
    margin: 0;
    padding: 16px 18px;
    border: 1px solid var(--color-border);
    border-radius: 3px;
    background: var(--color-bg-alt);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.dashboard-list--cards .dashboard-list__row:last-child {
    border-bottom: 1px solid var(--color-border);
}

.dashboard-list--cards .dashboard-list__row:hover {
    background: rgba(13, 148, 136, 0.03);
    border-color: rgba(var(--primary-rgb), 0.2);
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
}

.dashboard-list--cards .dashboard-list__row:has(.match-actions) .dashboard-list__actions {
    padding-left: 16px;
    border-left: 1px solid var(--color-border);
}

.dashboard-list__main {
    display: flex;
    align-items: center;
    gap: 0;
    min-width: 0;
    flex: 1;
}

.dashboard-list__icon {
    display: none;
}

.dashboard-list__text {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.dashboard-list__title-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.dashboard-list__text strong {
    font-size: 0.98rem;
    color: var(--color-text);
}

.dashboard-list__subtitle {
    font-size: 0.88rem;
    color: var(--color-text-muted);
    line-height: 1.45;
}

.dashboard-list__badge {
    display: inline-flex;
    flex-wrap: nowrap;
    gap: 6px;
    align-items: center;
    flex-shrink: 0;
    white-space: nowrap;
}

.dashboard-list__badge .badge {
    vertical-align: middle;
    flex-shrink: 0;
}

.dashboard-list__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    justify-content: flex-end;
}

.dashboard-list__actions form {
    display: inline;
    margin: 0;
}

.dashboard-empty {
    padding: 40px 24px;
    text-align: center;
    color: var(--color-text-muted);
}

.dashboard-empty p {
    margin: 0 0 16px;
}

.dashboard-empty__actions {
    display: flex;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
}

.dashboard-content {
    min-width: 0;
    max-width: 100%;
    overflow-x: auto;
}

.dashboard-content__lead {
    color: var(--color-text-muted);
    font-size: 0.95rem;
    margin: 0 0 24px;
    max-width: 720px;
    line-height: 1.55;
}

.dashboard-content--form .dashboard-content__lead {
    max-width: none;
}

.dashboard-content--form .form-card {
    max-width: none;
    width: 100%;
    margin: 0;
}

.dashboard-content--form .dashboard-panel,
.dashboard-content--map .dashboard-panel {
    margin-bottom: 0;
}

.dashboard-content--map .map-shell {
    margin-top: 0;
}

.dashboard-content--map .map-layout {
    min-height: min(68vh, 640px);
}

.dashboard-content--map .map-main {
    min-height: min(68vh, 640px);
}

.dashboard-content--form .form-card,
.dashboard-content--form .listing-edit-form.form-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 3px;
    box-shadow: var(--shadow-sm);
}

.profile-section.form-card {
    border: 1px solid var(--color-border);
    box-shadow: var(--shadow-sm);
}

.admin-filter-group {
    margin-bottom: 22px;
}

.admin-filter-group__label {
    margin: 0 0 10px;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--color-text-muted);
}

.admin-filter-tabs {
    margin-bottom: 0;
}

.admin-filter-select-form {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 0;
}

.admin-filter-select__label {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--color-text-muted);
    white-space: nowrap;
}

.admin-filter-select {
    min-width: 160px;
    padding: 10px 36px 10px 16px;
    border-radius: 3px;
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    color: var(--color-text);
    font-weight: 600;
    font-size: 0.88rem;
    font-family: inherit;
    cursor: pointer;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
}

.admin-filter-select:focus {
    outline: none;
    border-color: var(--brand);
    box-shadow: 0 0 0 3px rgba(13, 148, 136, 0.12);
}

a.marketplace-filter {
    text-decoration: none;
}

.marketplace-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 28px;
}

.marketplace-filter {
    display: inline-flex;
    align-items: center;
    padding: 10px 20px;
    border-radius: 3px;
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    color: var(--color-text-muted);
    font-weight: 600;
    font-size: 0.92rem;
    font-family: inherit;
    cursor: pointer;
    transition: background var(--transition), color var(--transition), border-color var(--transition);
}

.marketplace-filter:hover {
    color: var(--color-text);
    border-color: rgba(var(--text-rgb), 0.2);
}

.marketplace-filter.is-active,
.marketplace-filter[aria-pressed="true"] {
    background: var(--color-text);
    color: #fff;
    border-color: var(--color-text);
}

.marketplace-section {
    margin-bottom: 36px;
}

.marketplace-section[hidden] {
    display: none !important;
}

.marketplace-section__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 18px;
}

.marketplace-section__title {
    font-size: 1.2rem;
    font-weight: 700;
    margin: 0;
    color: var(--color-text);
    letter-spacing: -0.02em;
}

.marketplace-section__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.marketplace-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

.marketplace-card {
    display: flex;
    flex-direction: column;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 3px;
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    transition: box-shadow var(--transition), border-color var(--transition);
}

.marketplace-card:hover {
    border-color: rgba(var(--primary-rgb), 0.22);
    box-shadow: var(--shadow);
}

.marketplace-card__visual {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    min-height: 0;
    padding: 14px 16px 0;
    background: transparent !important;
    color: var(--color-text-muted);
}

.marketplace-card--placement .marketplace-card__visual,
.marketplace-card--requirement .marketplace-card__visual,
.marketplace-card--property .marketplace-card__visual,
.marketplace-card--match .marketplace-card__visual {
    color: var(--color-text-muted);
}

.marketplace-card__visual-badge {
    position: absolute;
    top: 12px;
    right: 12px;
    padding: 5px 10px;
    border-radius: 3px;
    background: var(--brand);
    color: #fff;
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.2;
}

.marketplace-card__visual-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    opacity: 0.55;
}

.marketplace-card__visual-icon svg {
    width: 22px;
    height: 22px;
}

.marketplace-card__body {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-width: 0;
    padding: 12px 16px 16px;
    gap: 8px;
}

.marketplace-card__title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
}

.marketplace-card__title-row h3 {
    margin: 0;
    flex: 1 1 auto;
    min-width: 0;
    font-size: 1.02rem;
    font-weight: 700;
    line-height: 1.35;
    color: var(--color-text);
    letter-spacing: -0.02em;
}

.marketplace-card__status {
    display: inline-flex;
    flex-wrap: nowrap;
    gap: 6px;
    align-items: center;
    flex-shrink: 0;
    white-space: nowrap;
}

.marketplace-card__status .badge {
    flex-shrink: 0;
}

.marketplace-card__rejection-reason {
    margin: 12px 0 0;
    padding-top: 12px;
    border-top: 1px solid var(--color-border);
    font-size: 0.88rem;
    line-height: 1.45;
    color: var(--color-text-muted);
}

.marketplace-card__desc-wrap {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.marketplace-card__desc {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.55;
    color: var(--color-text-muted);
}

.marketplace-card__desc-meta {
    margin: 0;
    font-size: 0.84rem;
    line-height: 1.45;
    color: var(--color-text-muted);
}

.marketplace-card--property .marketplace-card__title-row,
.marketplace-card--placement .marketplace-card__title-row,
.marketplace-card--requirement .marketplace-card__title-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
}

.dashboard-list__meta-line {
    display: block;
    margin-top: 4px;
    font-size: 0.84rem;
    color: var(--color-text-muted);
}

.marketplace-card__footer {
    margin-top: auto;
    padding-top: 6px;
}

.marketplace-card__actions {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    width: 100%;
    min-width: 0;
    overflow: visible;
}

.marketplace-card__actions > .btn-marketplace {
    flex: 1 1 auto;
    min-width: 0;
}

.marketplace-card__actions > .btn-marketplace:only-child {
    flex: 1 1 100%;
    width: 100%;
}

.marketplace-card__actions:has(.match-menu) > .btn-marketplace {
    flex: 1 1 calc(100% - 6.5rem);
}

.card-actions {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 6px;
    flex: 0 0 auto;
}

.card-actions .inline-form {
    display: inline-flex;
    margin: 0;
}

.card-actions .btn {
    white-space: nowrap;
}

.marketplace-card__actions > .match-menu {
    flex: 0 0 auto;
    max-width: 100%;
}

.marketplace-card__actions > .btn:not(.btn-marketplace) {
    flex: 0 0 auto;
    align-self: stretch;
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
}

.inline-form {
    margin: 0;
}

.reject-modal__reason {
    width: 100%;
    margin: 12px 0 4px;
    min-height: 110px;
    resize: vertical;
}

.reject-modal .confirm-modal__actions {
    margin-top: 16px;
}

.input-modal__form {
    margin: 0;
}

.input-modal__fields {
    display: grid;
    gap: 14px;
    margin-bottom: 4px;
}

.input-modal__fields .form-group {
    margin: 0;
}

.input-modal__fields label {
    display: block;
    font-weight: 600;
    font-size: 0.9rem;
    margin-bottom: 6px;
    color: var(--brand-dark);
}

.input-modal__fields input[type="text"],
.input-modal__fields input[type="date"],
.input-modal__fields input[type="number"],
.input-modal__fields textarea {
    width: 100%;
    box-sizing: border-box;
}

.input-modal__fields textarea {
    min-height: 96px;
    resize: vertical;
}

.input-modal .confirm-modal__message:not([hidden]) {
    margin-bottom: 16px;
}

.input-modal .confirm-modal__actions {
    margin-top: 20px;
}

.property-rejection-notice {
    margin-bottom: 16px;
}

.marketplace-card__extras {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.btn-marketplace {
    width: auto;
    justify-content: center;
    padding: 10px 18px;
    white-space: nowrap;
    background: var(--color-surface);
    color: var(--brand);
    border: 1px solid rgba(var(--primary-rgb), 0.28);
    font-weight: 700;
    font-size: 0.9rem;
}

.btn-marketplace:hover {
    background: var(--brand-softer);
    border-color: rgba(var(--primary-rgb), 0.28);
    color: var(--brand);
}

.map-page--dashboard .map-section {
    padding: 0;
}

.dashboard-content .table-wrap {
    max-width: 100%;
}

.dashboard-content .review-card {
    overflow-wrap: anywhere;
}

.detail-modal__body .review-card {
    padding: 0;
    box-shadow: none;
    margin: 0;
    background: transparent;
    border: none;
}

.detail-modal__title--with-badge {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-bottom: 15px;
}

.provider-review__name {
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
}

.provider-review__status {
    display: inline-flex;
    align-items: center;
}

.provider-review__status .badge {
    margin: 0;
}

.provider-review__heading {
    font-size: 1rem;
    margin: 20px 0 12px;
    color: var(--forest);
}

.provider-review__heading:first-of-type {
    margin-top: 0;
}

.provider-review__grid {
    grid-template-columns: repeat(2, 1fr);
    margin-bottom: 20px;
}

.detail-modal--wide .listing-detail__grid,
.detail-modal--wide .listing-detail .property-detail-grid,
.detail-modal--wide .property-detail-grid,
.detail-modal--wide .provider-review__grid,
.detail-modal--form .listing-detail__grid,
.detail-modal--form .listing-detail .property-detail-grid,
.detail-modal--form .property-detail-grid,
.detail-modal--form .provider-review__grid,
.detail-modal--form .listing-edit-form .form-row--3,
.detail-modal--form .listing-edit-form .form-checkboxes {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.provider-review__full {
    grid-column: 1 / -1;
}

.provider-review__actions {
    margin-top: 8px;
    justify-content: flex-start;
}

.dashboard-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 20px;
}

.btn-ghost {
    border: 1px solid rgba(var(--primary-rgb), 0.28);
}

.review-card__head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    flex-wrap: wrap;
    min-width: 0;
}

.review-card__head > * {
    min-width: 0;
}

.profile-sections {
    display: flex;
    flex-direction: column;
    gap: 28px;
}

.subscription-plan-list {
    list-style: none;
    padding: 0;
    margin: 0 0 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    color: var(--color-text-muted);
}

.subscription-plan-list li {
    padding-left: 0;
}

.profile-section p + p {
    margin-top: 8px;
}

.profile-section h2 {
    font-size: 1.15rem;
    margin-bottom: 20px;
    color: var(--forest);
}

.profile-section.form-card {
    margin: 0;
    max-width: none;
}

.profile-readonly {
    padding: 14px 16px;
    margin-bottom: 20px;
    border-radius: 3px;
    background: var(--color-bg);
    font-size: 0.9rem;
    color: var(--color-text-muted);
}

.profile-readonly p {
    margin: 0 0 6px;
}

.profile-readonly p:last-child {
    margin-bottom: 0;
}

.stat-cards {
    display: grid;
}

.email-transport-options {
    display: grid;
    gap: 10px;
    margin-bottom: 20px;
}

.email-transport-option {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 16px;
    border: 1px solid var(--color-border);
    border-radius: 3px;
    background: var(--color-bg-alt);
    cursor: pointer;
}

.email-transport-option:has(input:checked) {
    border-color: var(--color-accent);
    background: var(--color-accent-soft);
}

.email-transport-option input {
    margin: 4px 5px 0 0;
    flex-shrink: 0;
}

.email-transport-option strong {
    display: block;
    margin-bottom: 4px;
}

.email-transport-panel {
    margin: 0 0 24px;
    padding: 20px;
    border: 1px solid var(--color-border);
    border-radius: 3px;
    background: var(--color-surface);
}

.email-transport-panel h3 {
    margin: 0 0 16px;
    font-size: 1rem;
}

.email-test-panel {
    margin: 20px 0 0;
    padding: 20px;
    border: 1px solid var(--color-border);
    border-radius: 3px;
    background: var(--color-bg-alt);
}

.email-test-panel--inline {
    margin-top: 24px;
}

.email-test-panel h3 {
    margin: 0 0 8px;
    font-size: 1rem;
}

.email-test-panel .alert {
    margin: 0 0 16px;
}

.email-test-panel__meta {
    display: grid;
    gap: 8px;
    margin: 16px 0 20px;
    padding: 0;
}

.email-test-panel__meta div {
    display: grid;
    grid-template-columns: 100px 1fr;
    gap: 12px;
    align-items: baseline;
}

.email-test-panel__meta dt {
    margin: 0;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--color-text-muted);
}

.email-test-panel__meta dd {
    margin: 0;
    font-size: 0.9rem;
}

.email-test-panel__form {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 12px 16px;
}

.email-test-panel__form .form-group {
    flex: 1 1 260px;
    margin: 0;
}

.email-test-panel__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    flex: 1 1 100%;
}

.settings-panel.form-card {
    max-width: none;
}

.settings-flags {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    margin-bottom: 24px;
}

.settings-flag {
    display: flex;
    flex-direction: column;
    padding: 20px;
    border: 1px solid var(--color-border);
    border-radius: 3px;
    background: var(--color-bg);
}

.settings-flag h2 {
    font-size: 1.1rem;
    margin: 0 0 16px;
    color: var(--forest);
}

.settings-flag__toggle {
    align-items: flex-start;
    margin-bottom: 16px;
}

.settings-flag__hint {
    display: block;
    margin-top: 6px;
    line-height: 1.5;
}

.settings-flag__status {
    margin: auto 0 0;
}

.container--map {
    max-width: var(--layout-max);
}

.map-page .map-section {
    padding-top: 24px;
    padding-bottom: 72px;
}

.map-page .page-header--compact {
    padding-bottom: 12px;
}

.map-shell {
    position: relative;
    width: 100%;
    max-width: 100%;
}

.map-layout {
    display: grid;
    grid-template-columns: minmax(400px, 320px) minmax(0, 1fr);
    gap: 24px;
    align-items: stretch;
    min-height: min(78vh, 760px);
    width: 100%;
}

.map-sidebar {
    grid-column: 1;
    grid-row: 1;
    position: relative;
    min-width: 0;
    width: auto;
    z-index: 2;
}

.map-main {
    grid-column: 2;
    grid-row: 1;
    position: relative;
    min-width: 0;
    min-height: min(78vh, 760px);
    border-radius: 3px;
    overflow: hidden;
    border: 1px solid var(--color-border);
    box-shadow: var(--shadow-lg);
    background: #e8ecf4;
    z-index: 1;
}

.map-canvas,
#map {
    width: 100%;
    height: 100%;
    min-height: inherit;
    max-width: 100%;
    border: none;
    border-radius: 0;
    box-shadow: none;
    background: #e8ecf4;
    z-index: 0;
}

.map-main .leaflet-container {
    width: 100% !important;
    max-width: 100%;
}

.map-panel {
    height: 100%;
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 0;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 3px;
    box-shadow: var(--shadow-sm);
}

.map-panel__head {
    margin-bottom: 18px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--color-border);
}

.map-panel__title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.map-panel__head h2 {
    font-size: 1.15rem;
    margin: 0;
    line-height: 1.25;
}

.map-panel__hint {
    font-size: 0.82rem;
    color: var(--color-text-muted);
    margin: 0;
    text-align: right;
    white-space: nowrap;
}

.map-panel__hint strong {
    color: var(--brand);
    font-weight: 700;
}

.map-counts {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
}

.map-counts--single {
    grid-template-columns: 1fr;
}

.map-count {
    padding: 10px 12px;
    border-radius: 3px;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
}

.map-count__value {
    display: block;
    font-size: 1.25rem;
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1.1;
}

.map-count__label {
    display: block;
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-muted);
    margin-top: 2px;
}

.map-count--property .map-count__value {
    color: #334155;
}

.map-count--requirement .map-count__value {
    color: #0D9488;
}

.map-count--placement .map-count__value {
    color: #0f172a;
}

.map-search {
    position: relative;
    margin-bottom: 16px;
}

.map-search__icon {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--color-text-muted);
    pointer-events: none;
}

.map-search__input {
    width: 100%;
    padding: 12px 40px 12px 42px;
    border: 1px solid var(--color-border);
    border-radius: 3px;
    font-family: inherit;
    font-size: 0.95rem;
    background: var(--color-surface);
    color: var(--color-text);
    transition: border-color var(--transition), box-shadow var(--transition);
}

.map-search__input:focus {
    outline: none;
    border-color: var(--brand);
    box-shadow: var(--ring);
}

.map-search__clear {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    width: 28px;
    height: 28px;
    border: none;
    border-radius: 50%;
    background: var(--color-bg);
    color: var(--color-text-muted);
    font-size: 1.2rem;
    line-height: 1;
    cursor: pointer;
    transition: background var(--transition), color var(--transition);
}

.map-search__clear:hover {
    background: var(--brand-softer);
    color: var(--brand);
}

.map-layers {
    margin-bottom: 16px;
}

.map-layers__label {
    display: block;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-muted);
    margin-bottom: 8px;
}

.map-layer-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.map-layer-pill {
    padding: 8px 14px;
    border: 1px solid var(--color-border);
    border-radius: 3px;
    background: var(--color-surface);
    color: var(--color-text-muted);
    font-family: inherit;
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
    transition: background var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);
}

.map-layer-pill:hover {
    border-color: rgba(13, 148, 136, 0.35);
    color: var(--brand);
}

.map-layer-pill.is-active {
    background: var(--brand);
    border-color: var(--brand);
    color: #fff;
    box-shadow: 0 4px 12px rgba(13, 148, 136, 0.28);
}

.map-layer-pill--property.is-active {
    background: #334155;
    border-color: #334155;
}

.map-layer-pill--requirement.is-active {
    background: #0D9488;
    border-color: #0D9488;
    box-shadow: 0 4px 12px rgba(13, 148, 136, 0.28);
}

.map-layer-pill--placement.is-active {
    background: #0f172a;
    border-color: #0f172a;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.28);
}

.map-layer-select {
    display: none;
}

.map-legend {
    padding-top: 14px;
    border-top: 1px solid var(--color-border);
}

.map-legend h3 {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-muted);
    margin-bottom: 10px;
}

.map-legend__list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.map-legend__list li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 0.84rem;
    color: var(--color-text-muted);
    line-height: 1.45;
    margin-bottom: 10px;
}

.map-legend__list li:last-child {
    margin-bottom: 0;
}

.map-legend__swatch {
    flex-shrink: 0;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    margin-top: 4px;
    box-shadow: 0 0 0 2px #fff, 0 1px 3px rgba(0, 0, 0, 0.2);
}

.map-legend__swatch--property {
    background: #334155;
}

.map-legend__swatch--requirement {
    background: #0D9488;
}

.map-legend__swatch--placement {
    background: #0f172a;
}

.alerts-callout {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    margin-top: 16px;
    padding: 14px;
    border-radius: 3px;
    background: var(--brand-softer);
    border: 1px solid rgba(13, 148, 136, 0.18);
}

.alerts-callout--map {
    margin-top: 20px;
    margin-bottom: 14px;
}

.alerts-callout--compact {
    margin-top: 0;
    margin-bottom: 24px;
}

.alerts-callout__icon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: rgba(13, 148, 136, 0.12);
    color: var(--brand);
}

.alerts-callout__title {
    display: block;
    font-size: 0.92rem;
    font-weight: 700;
    color: var(--color-text);
    margin-bottom: 4px;
}

.alerts-callout__text {
    font-size: 0.84rem;
    color: var(--color-text-muted);
    line-height: 1.5;
    margin: 0 0 8px;
}

.alerts-callout__link {
    font-size: 0.84rem;
    font-weight: 700;
    color: var(--brand);
    text-decoration: none;
}

.alerts-callout__link:hover {
    color: var(--brand-hover);
    text-decoration: underline;
}

.map-tip,
.map-empty-hint {
    font-size: 0.82rem;
    color: var(--color-text-muted);
    margin: 14px 0 0;
    line-height: 1.5;
}

.map-empty-hint a {
    color: var(--brand);
    font-weight: 600;
}

.map-results {
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid var(--color-border);
}

.map-results h3 {
    font-size: 0.95rem;
    margin: 0 0 10px;
}

.map-results__list {
    list-style: none;
    margin: 0;
    padding: 0;
    max-height: 280px;
    overflow: auto;
    display: grid;
    gap: 8px;
}

.map-results__item {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid var(--color-border);
    border-radius: 3px;
    background: var(--color-surface);
    cursor: pointer;
}

.map-results__item:hover {
    border-color: var(--color-accent);
}

.map-results__reason {
    display: inline-block;
    margin-top: 4px;
    margin-right: 6px;
    font-size: 0.78rem;
    color: var(--color-success);
}

.area-links {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 10px 16px;
    margin: 0;
    padding: 0;
}

.area-links a {
    font-weight: 600;
}

.area-links a[aria-current="page"] {
    color: var(--color-accent);
}

.verification-status-strip {
    margin-bottom: 18px;
}

.map-reset {
    position: absolute;
    right: 12px;
    bottom: 32px;
    z-index: 1000;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    border: 1px solid var(--color-border);
    border-radius: 3px;
    background: rgba(255, 255, 255, 0.97);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    color: var(--color-text);
    font-family: inherit;
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    box-shadow: var(--shadow);
    transition: background var(--transition), border-color var(--transition), color var(--transition);
}

.map-reset:hover {
    border-color: var(--brand);
    color: var(--brand);
}

.leaflet-div-icon.map-marker-pin,
.leaflet-div-icon.map-cluster-wrap {
    background: none !important;
    border: none !important;
}

.map-marker {
    display: flex;
    flex-direction: column;
    align-items: center;
    filter: drop-shadow(0 3px 6px rgba(29, 30, 32, 0.28));
}

.map-marker__head {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50% 50% 50% 0;
    transform: rotate(-45deg);
    background: var(--marker-color);
    color: #fff;
    border: 2.5px solid #fff;
}

.map-marker__head svg {
    transform: rotate(45deg);
}

.map-marker__tail {
    width: 4px;
    height: 6px;
    margin-top: -2px;
    border-radius: 3px;
    background: var(--marker-color);
}

.map-cluster {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background: var(--cluster-color);
    color: #fff;
    font-size: 0.85rem;
    font-weight: 800;
    border: 3px solid #fff;
    box-shadow: 0 3px 10px rgba(29, 30, 32, 0.25);
}

.leaflet-control-zoom {
    border: none !important;
    box-shadow: var(--shadow) !important;
    border-radius: 3px !important;
    overflow: hidden;
}

.leaflet-control-zoom a {
    width: 36px !important;
    height: 36px !important;
    line-height: 36px !important;
    color: var(--color-text) !important;
    border-color: var(--color-border) !important;
    font-size: 18px !important;
}

.leaflet-control-zoom a:hover {
    background: var(--brand-softer) !important;
    color: var(--brand) !important;
}

.leaflet-control-attribution {
    font-size: 10px !important;
    background: rgba(255, 255, 255, 0.85) !important;
    border-radius: 3px !important;
    padding: 2px 6px !important;
}

.leaflet-popup-content-wrapper.map-popup-wrapper,
.leaflet-popup-content-wrapper {
    padding: 0;
    border-radius: 3px;
    box-shadow: var(--shadow-lg);
    border: 1px solid var(--color-border);
    overflow: hidden;
}

.leaflet-popup-content {
    margin: 0;
    font-family: var(--font-sans);
    font-size: 0.9rem;
    line-height: 1.5;
    min-width: 220px;
}

.leaflet-popup-tip {
    box-shadow: none;
}

.map-popup__header {
    padding: 10px 14px;
    background: var(--color-bg);
    border-bottom: 1px solid var(--color-border);
}

.map-popup--property .map-popup__header {
    background: rgba(13, 148, 136, 0.08);
}

.map-popup--requirement .map-popup__header {
    background: rgba(232, 108, 0, 0.08);
}

.map-popup--placement .map-popup__header {
    background: rgba(47, 28, 106, 0.08);
}

.map-popup__body {
    padding: 14px;
}

.map-popup__title {
    display: block;
    font-weight: 700;
    color: var(--color-text);
    margin-bottom: 8px;
    font-size: 0.95rem;
    line-height: 1.35;
}

.map-popup__type {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-muted);
}

.map-popup__meta {
    list-style: none;
    margin: 0 0 12px;
    padding: 0;
    color: var(--color-text-muted);
    font-size: 0.86rem;
}

.map-popup__meta li {
    padding: 3px 0;
    padding-left: 14px;
    position: relative;
}

.map-popup__meta li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.65em;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--brand-light);
}

.map-popup--requirement .map-popup__meta li::before {
    background: #0D9488;
}

.map-popup--placement .map-popup__meta li::before {
    background: #0f172a;
}

.map-popup__link {
    display: inline-flex;
    width: 100%;
    justify-content: center;
}

.marker-cluster-small,
.marker-cluster-medium,
.marker-cluster-large {
    background: transparent !important;
}

.marker-cluster div {
    background: transparent !important;
}

.pricing-page .pricing-section {
    padding-top: 32px;
    padding-bottom: 56px;
}

.pricing-content {
    padding-inline: 10%;
    box-sizing: border-box;
}

.pricing-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    align-items: stretch;
    margin-bottom: 40px;
}

.pricing-grid.pricing-grid--balanced {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 24px;
    max-width: 1200px;
    margin-inline: auto;
    margin-bottom: 40px;
}

.pricing-grid.pricing-grid--balanced .pricing-card {
    flex: 1 1 min(100%, 280px);
    max-width: 380px;
}

.pricing-card {
    display: flex;
    flex-direction: column;
    padding: 28px 28px 32px;
    text-align: center;
}

.pricing-card--featured {
    border-color: var(--brand);
    background: linear-gradient(180deg, var(--brand-softer) 0%, var(--color-surface) 48%);
    box-shadow: 0 8px 32px rgba(13, 148, 136, 0.12);
}

.pricing-badge {
    display: inline-block;
    align-self: center;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--brand);
    background: var(--brand-soft);
    padding: 5px 12px;
    border-radius: 3px;
    margin-bottom: 16px;
}

.pricing-badge--muted {
    color: var(--color-text-muted);
    background: var(--color-bg);
}

.pricing-card--featured .pricing-badge {
    background: var(--brand);
    color: #fff;
}

.pricing-card__icon {
    width: 52px;
    height: 52px;
    margin: 0 auto 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.6rem;
    background: var(--mint-soft);
    border-radius: 3px;
}

.pricing-card--featured .pricing-card__icon {
    background: rgba(255, 255, 255, 0.85);
}

.pricing-card__title {
    font-size: 1.35rem;
    margin-bottom: 6px;
}

.pricing-card__tagline {
    font-size: 0.9rem;
    color: var(--color-text-muted);
    line-height: 1.45;
    margin: 0 0 20px;
}

.pricing-card__price {
    margin-bottom: 24px;
    padding-bottom: 24px;
    border-bottom: 1px solid var(--color-border);
}

.pricing-card__amount {
    display: block;
    font-size: clamp(2rem, 4vw, 2.5rem);
    font-weight: 800;
    color: var(--brand-dark);
    line-height: 1.1;
    letter-spacing: -0.03em;
}

.pricing-card__period {
    display: block;
    font-size: 0.95rem;
    font-weight: 500;
    color: var(--color-text-muted);
    margin-top: 4px;
}

.pricing-card__subprice {
    margin: 10px 0 0;
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--brand-dark);
    line-height: 1.4;
}

.provider-pricing-explainer {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 16px;
    margin-top: 4px;
}

.provider-pricing-explainer__tier {
    padding: 18px 20px;
    border-radius: 3px;
    border: 1px solid var(--color-border);
    background: var(--color-bg);
}

.provider-pricing-explainer__tier h3 {
    margin: 0 0 10px;
    font-size: 1rem;
    color: var(--forest);
}

.provider-pricing-explainer__tier p {
    margin: 0 0 10px;
    font-size: 0.92rem;
    line-height: 1.5;
}

.provider-pricing-explainer__tier p:last-child {
    margin-bottom: 0;
}

.provider-pricing-explainer__tier--free {
    border-color: rgba(34, 139, 34, 0.25);
    background: rgba(34, 139, 34, 0.04);
}

.provider-pricing-explainer__tier--paid {
    border-color: rgba(13, 148, 136, 0.2);
    background: rgba(13, 148, 136, 0.04);
}

.provider-pricing-explainer__price {
    font-size: 1.05rem !important;
    font-weight: 700;
    color: var(--brand-dark) !important;
}

.provider-pricing-explainer .subscription-plan-list {
    margin-bottom: 0;
}

.pricing-card__highlights {
    list-style: none;
    margin: 0 0 24px;
    padding: 0;
    text-align: left;
    flex: 1;
}

.pricing-card__highlights li {
    position: relative;
    padding: 5px 0 5px 22px;
    color: var(--color-text-muted);
    font-size: 0.82rem;
    line-height: 1.4;
}

.pricing-card__features {
    list-style: none;
    margin: 0 0 24px;
    padding: 0;
    text-align: left;
    flex: 1;
}

.pricing-card__features li {
    position: relative;
    padding: 6px 0 6px 22px;
    color: var(--color-text-muted);
    font-size: 0.9rem;
    line-height: 1.45;
}

.pricing-card__features li::before {
    content: '✓';
    position: absolute;
    left: 0;
    top: 6px;
    font-weight: 700;
}

.pricing-card__cta {
    margin-top: auto;
    text-align: center;
}

.pricing-card__cta .btn {
    width: 100%;
}

.pricing-card__highlights li::before {
    content: '✓';
    position: absolute;
    left: 0;
    top: 5px;
    color: var(--brand-light);
    font-weight: 800;
    font-size: 0.85rem;
}

.pricing-card--featured .pricing-card__highlights li::before {
    color: var(--brand);
}

.pricing-features-full {
    margin-top: 48px;
    padding-top: 48px;
    border-top: 1px solid var(--color-border);
}

.pricing-features-full__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    align-items: start;
}

.pricing-features-full__grid.pricing-features-full__grid--balanced {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 24px;
    max-width: 1200px;
    margin-inline: auto;
}

.pricing-features-full__grid.pricing-features-full__grid--balanced .pricing-features-full__col {
    flex: 1 1 min(100%, 280px);
    max-width: 380px;
}

.pricing-features-full__col {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 3px;
    padding: 24px;
    box-shadow: var(--shadow-sm);
}

.pricing-features-full__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    font-size: 1.25rem;
    background: var(--mint-soft);
    border-radius: 3px;
    margin-bottom: 12px;
}

.pricing-features-full__col h3 {
    font-size: 1.1rem;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--color-border);
}

.pricing-features-full__list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.pricing-features-full__list li {
    position: relative;
    padding: 7px 0 7px 24px;
    border-bottom: 1px solid var(--color-border);
    color: var(--color-text-muted);
    font-size: 0.88rem;
    line-height: 1.45;
}

.pricing-features-full__list li:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.pricing-features-full__list li::before {
    content: '✓';
    position: absolute;
    left: 0;
    top: 7px;
    color: var(--forest);
    font-weight: 800;
}

.pricing-card .btn {
    margin-top: auto;
}

.access-page .page-hero {
    padding: 40px 0 32px;
}

.access-page .page-hero p {
    max-width: 42rem;
}

.access-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-bottom: 8px;
}

.access-card {
    text-align: left;
    min-width: 0;
}

.access-card .pricing-card__header {
    text-align: center;
    margin-bottom: 4px;
}

.access-card .pricing-card__title {
    margin-bottom: 6px;
}

.access-card .pricing-card__tagline {
    margin: 0 0 20px;
    padding: 0 0 20px;
    border-bottom: 1px solid var(--color-border);
    font-weight: 700;
    color: var(--brand-dark);
}

.access-card .pricing-card__highlights {
    flex: 0 0 auto;
    margin-bottom: 12px;
}

.access-card .pricing-card__highlights li {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--color-text);
}

.pricing-scroll-hint {
    text-align: center;
    max-width: 520px;
    margin: 8px auto 0;
    padding: 16px 20px;
    font-size: 0.92rem;
    color: var(--color-text-muted);
    line-height: 1.55;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: 3px;
}

.pricing-scroll-hint a {
    font-weight: 600;
    color: var(--forest);
}

.pricing-scroll-hint a:hover {
    color: var(--forest-hover);
}

.pricing-faq {
    margin-top: 32px;
    padding-top: 48px;
    border-top: 1px solid var(--color-border);
}

.pricing-faq .section-header {
    margin-bottom: 32px;
}

.pricing-faq__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-bottom: 24px;
}

.pricing-faq__grid.pricing-faq__grid--triple {
    grid-template-columns: 1fr;
    max-width: 1080px;
    margin-inline: auto;
}

@media (min-width: 768px) {
    .pricing-faq__grid.pricing-faq__grid--triple {
        grid-template-columns: repeat(3, 1fr);
    }
}

.pricing-faq__grid.pricing-faq__grid--quad {
    grid-template-columns: 1fr;
    max-width: 880px;
    margin-inline: auto;
}

@media (min-width: 600px) {
    .pricing-faq__grid.pricing-faq__grid--quad {
        grid-template-columns: repeat(2, 1fr);
    }
}

.pricing-faq__card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 3px;
    padding: 24px;
    box-shadow: var(--shadow-sm);
}

.pricing-faq__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    font-size: 1.35rem;
    background: var(--mint-soft);
    border-radius: 3px;
    margin-bottom: 14px;
}

.pricing-faq__card h3 {
    font-size: 1.05rem;
    margin-bottom: 8px;
}

.pricing-faq__card p {
    margin: 0;
    font-size: 0.92rem;
    color: var(--color-text-muted);
    line-height: 1.6;
}

.pricing-faq__banner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 16px 24px;
    padding: 22px 28px;
    background: var(--brand-softer);
    border: 1px solid rgba(13, 148, 136, 0.18);
    border-radius: 3px;
    margin-bottom: 24px;
}

.pricing-faq__banner-text strong {
    display: block;
    font-size: 1rem;
    color: var(--brand-dark);
    margin-bottom: 4px;
}

.pricing-faq__banner-text p {
    margin: 0;
    font-size: 0.92rem;
    color: var(--color-text-muted);
    line-height: 1.5;
    max-width: 52ch;
}

.pricing-faq__foot {
    text-align: center;
    margin: 0;
    font-size: 0.92rem;
    color: var(--color-text-muted);
}

.pricing-faq__foot a {
    font-weight: 600;
    color: var(--forest);
}

.pricing-faq__foot a:hover {
    color: var(--forest-hover);
}

.auth-page {
    min-height: calc(100vh - 200px);
    display: flex;
    align-items: center;
}

.auth-card {
    width: 100%;
    margin: 0 auto;
}

.auth-card h1 {
    text-align: center;
}

.auth-card .subtitle {
    text-align: center;
    margin-bottom: 32px;
}

.auth-footer {
    text-align: center;
    margin-top: 24px;
    color: var(--color-text-muted);
}

.captcha-widget {
    margin: 8px 0 20px;
}

.role-cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-bottom: 24px;
}

.role-cards--three {
    grid-template-columns: repeat(3, 1fr);
}

.role-card {
    border: 2px solid var(--color-border);
    border-radius: 3px;
    padding: 20px;
    cursor: pointer;
    text-align: center;
    transition: border-color var(--transition), background var(--transition);
}

.role-card:hover,
.role-card.selected {
    border-color: var(--forest);
    background: var(--mint-soft);
}

.role-card input {
    display: none;
}

.about-page .about-intro {
    padding-top: 32px;
}

.about-intro__header {
    margin-bottom: 48px;
}

.about-intro__header h1 {
    font-size: clamp(1.75rem, 3vw, 2.5rem);
    font-weight: 700;
    color: var(--color-primary);
    margin-bottom: 12px;
    letter-spacing: -0.025em;
}

.about-lead {
    font-size: 1.1rem;
    line-height: 1.65;
    color: var(--color-text-muted);
    max-width: 42rem;
    margin: 0 auto;
}

.about-intro__layout {
    display: grid;
    grid-template-columns: 2fr 3fr;
    gap: clamp(28px, 4vw, 48px);
    align-items: center;
    margin-bottom: 56px;
}

.about-intro__visual {
    border-radius: 3px;
    overflow: hidden;
    border: 1px solid var(--color-border);
    background: var(--color-bg-alt);
}

.about-intro__visual img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: contain;
    object-position: center;
    background: var(--color-bg-alt);
}

.about-intro__story p {
    color: var(--color-text-muted);
    line-height: 1.7;
    margin: 0 0 16px;
}

.about-intro__story p:last-of-type {
    margin-bottom: 20px;
}

.about-callout {
    display: grid;
    gap: 6px;
    padding: 18px 20px;
    background: var(--color-accent-soft);
    border: 1px solid rgba(13, 148, 136, 0.12);
    border-radius: 3px;
}

.about-callout strong {
    color: var(--color-primary);
    font-size: 1rem;
}

.about-callout span {
    color: var(--color-text-muted);
    line-height: 1.65;
    font-size: 0.95rem;
}

.about-pillars {
    margin-bottom: 40px;
}

.about-pillars .feature-card a {
    color: var(--color-accent);
    font-weight: 600;
    text-decoration: none;
}

.about-pillars .feature-card a:hover {
    color: var(--color-primary);
    text-decoration: underline;
}

.split-about__text .section-tag {
    margin-bottom: 12px;
}

.split-about__text h1 {
    font-size: clamp(1.75rem, 3vw, 2.5rem);
    font-weight: 700;
    color: var(--color-primary);
    margin: 0 0 12px;
    letter-spacing: -0.025em;
    line-height: 1.15;
}

.split-about__text .about-lead {
    margin: 0;
    max-width: none;
    text-align: left;
}

.faq-page__intro {
    padding-top: 32px;
    padding-bottom: 40px;
}

.split-about__image.about-intro__visual img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 2;
    object-fit: contain;
    object-position: center;
    background: var(--color-bg-alt);
    border-radius: 0;
}

.hero-showcase,
.hero-visual svg.hero-showcase {
    display: block;
    width: 100%;
    height: auto;
    min-height: 180px;
    aspect-ratio: 3 / 2;
    max-height: min(420px, 56vh);
    object-fit: contain;
    object-position: center;
    background: var(--color-bg-alt);
    border-radius: 3px;
    border: 1px solid var(--color-border);
    box-shadow: var(--shadow-md);
}

.hero-visual .hero-showcase,
.hero-visual svg.hero-showcase {
    max-width: 540px;
    margin-inline: auto;
}

.about-intro a:not(.btn),
.about-pillars a:not(.btn) {
    color: var(--forest);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.about-intro a:not(.btn):hover,
.about-pillars a:not(.btn):hover {
    color: var(--forest-hover);
}

.about-community-visual {
    max-width: var(--content-narrow);
    margin: 0 auto 36px;
    border-radius: 3px;
    border: 1px solid var(--color-border);
    background: var(--color-bg-alt);
    overflow: hidden;
}

.about-community-visual__img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 2;
    object-fit: contain;
}

@media (min-width: 992px) {
    .about-page .card-grid--3:not(.card-grid--balanced),
    .about-page .card-grid--balanced {
        max-width: 1080px;
        margin-inline: auto;
    }
}

@media (max-width: 768px) {
    .card-grid--2 {
        grid-template-columns: 1fr;
    }
}

.about-subsection {
    margin-top: 56px;
    padding-top: 56px;
    border-top: 1px solid var(--color-border);
}

.story-card__location {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--color-accent);
    margin-bottom: 10px;
}

.story-card h3 {
    margin-top: 0;
}

.story-carousel {
    margin-top: 8px;
    margin-inline: auto;
    width: 100%;
    --story-carousel-gap: 20px;
    --story-slide-basis: 100%;
}

.story-carousel.is-centered .story-carousel__track {
    justify-content: center;
    margin-inline: auto;
}

.story-carousel[data-story-layout="1"] .story-carousel__track,
.story-carousel[data-story-layout="2"] .story-carousel__track,
.story-carousel[data-story-layout="3"] .story-carousel__track {
    width: 100%;
}

.story-carousel.is-scrollable .story-carousel__viewport {
    overflow-x: auto;
    scroll-snap-type: x mandatory;
}

.story-carousel.is-centered .story-carousel__viewport {
    overflow-x: visible;
    scroll-snap-type: none;
}

.about-subsection--stories {
    text-align: center;
}

.about-subsection--stories .story-carousel {
    text-align: left;
}

.story-carousel__viewport {
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    border-radius: 3px;
}

.story-carousel__viewport::-webkit-scrollbar {
    display: none;
}

.story-carousel__track {
    display: flex;
    gap: var(--story-carousel-gap);
    width: 100%;
}

.story-carousel__slide {
    flex: 0 0 var(--story-slide-basis);
    min-width: 0;
    scroll-snap-align: start;
    scroll-snap-stop: always;
}

.story-carousel__controls {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    margin-top: 24px;
}

.story-carousel__controls[hidden] {
    display: none;
}

.story-carousel__arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: 1px solid var(--color-border);
    border-radius: 50%;
    background: #fff;
    color: var(--color-primary);
    font-size: 1.4rem;
    line-height: 1;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.story-carousel__arrow:hover:not(:disabled) {
    background: var(--brand-softer);
    border-color: var(--color-accent);
}

.story-carousel__arrow:disabled {
    opacity: 0.35;
    cursor: not-allowed;
}

.story-carousel__dots {
    display: flex;
    align-items: center;
    gap: 8px;
}

.story-carousel__dot {
    width: 10px;
    height: 10px;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: var(--color-border);
    cursor: pointer;
    transition: background 0.15s ease, transform 0.15s ease;
}

.story-carousel__dot.is-active {
    background: var(--color-accent);
    transform: scale(1.15);
}

.story-carousel__dot:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 2px;
}

.about-area-links {
    text-align: center;
    margin-top: 32px;
    font-size: 0.9rem;
    color: var(--color-text-muted);
}

.about-area-links a {
    color: var(--color-accent);
    font-weight: 500;
    text-decoration: none;
}

.about-area-links a:hover {
    color: var(--color-primary);
    text-decoration: underline;
}

.about-area-links span[aria-hidden="true"] {
    margin: 0 0.35em;
    color: var(--color-border);
}

.about-mission {
    margin: 0 auto;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    box-shadow: var(--shadow-sm);
}

.about-mission .section-tag {
    margin-bottom: 14px;
}

.about-mission > p {
    color: var(--color-text);
    font-size: 1.05rem;
    line-height: 1.7;
    margin: 0;
}

.about-mission__links {
    margin-top: 18px !important;
    font-size: 0.9rem;
    color: var(--color-text-muted);
}

.about-mission__links a {
    color: var(--color-accent);
    font-weight: 500;
    text-decoration: none;
}

.about-mission__links a:hover {
    color: var(--color-primary);
    text-decoration: underline;
}

.about-mission__links span[aria-hidden="true"] {
    margin: 0 0.35em;
    color: var(--color-border);
}

.faq-page .faq-hero {
    padding-top: 32px;
    background: var(--color-bg);
    border-bottom: 1px solid var(--color-border);
}

.faq-page .faq-hero .page-hero-split__content a {
    font-weight: 600;
    color: var(--forest);
}

.faq-page .faq-hero .hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 8px;
}

.faq-page__section {
    padding-top: 48px;
    padding-bottom: 64px;
}

.faq-page__head {
    margin-bottom: 28px;
}

.faq-layout {
    display: grid;
    grid-template-columns: minmax(25%, 248px) minmax(0, 1fr);
    align-items: start;
}

.faq-nav {
    background: var(--color-surface);
    padding: 18px 16px;
}

.faq-nav-title {
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-text-muted);
    margin: 0 0 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--color-border);
}

.faq-nav-links {
    display: grid;
    gap: 4px;
}

.faq-nav-links a {
    display: block;
    padding: 8px 10px;
    margin-left: -6px;
    margin-right: -6px;
    color: var(--color-text-muted);
    font-weight: 600;
    font-size: 0.94rem;
    line-height: 1.35;
}

.faq-nav-links a:hover {
    color: var(--color-text);
    background: rgba(var(--primary-rgb), 0.06);
}

.faq-groups {
    display: grid;
    gap: 22px;
}

.faq-group {
    background: var(--color-surface);
    padding: 20px 20px 16px;
}

.faq-group h2 {
    margin: 0 0 14px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--color-border);
    font-weight: 800;
    line-height: 1.25;
}

.faq-item + .faq-item {
    border-top: 1px solid rgba(var(--primary-rgb), 0.1);
}

.faq-q {
    width: 100%;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    background: transparent;
    border: 0;
    padding: 14px 0 16px;
    cursor: pointer;
    text-align: left;
    font-weight: 700;
    font-size: 1rem;
    line-height: 1.45;
    letter-spacing: -0.01em;
    color: var(--color-text);
    font-family: inherit;
}

.faq-item:first-of-type .faq-q {
    padding-top: 2px;
}

.faq-q-text {
    flex: 1 1 auto;
    min-width: 0;
}

.faq-q-icon {
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    border: 1px solid rgba(var(--primary-rgb), 0.14);
    background: var(--mint-soft);
    position: relative;
    margin-top: 2px;
}

.faq-q-icon::before,
.faq-q-icon::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 12px;
    height: 2px;
    background: rgba(var(--primary-rgb), 0.72);
    transform: translate(-50%, -50%);
    border-radius: 3px;
}

.faq-q-icon::after {
    transform: translate(-50%, -50%) rotate(90deg);
    transition: transform 0.18s ease;
}

.faq-item.is-open .faq-q-icon::after {
    transform: translate(-50%, -50%) rotate(0deg);
}

.faq-item.is-open .faq-q {
    color: var(--forest);
}

.faq-a {
    display: none;
    padding: 0 0 16px;
    line-height: 1.65;
}

.faq-a.prose p {
    margin: 0 0 0.85em;
    font-size: 0.975rem;
    color: var(--color-text-muted);
}

.faq-a.prose p:last-child {
    margin-bottom: 0;
}

.faq-a.prose a {
    font-weight: 600;
    color: var(--forest);
}

.faq-a.prose a:hover {
    color: var(--forest-hover);
}

.faq-item.is-open .faq-a {
    display: block;
}

.legal-content h2 {
    font-size: 1.35rem;
    margin: 32px 0 12px;
    color: var(--brand-dark);
}

.legal-content h3 {
    font-size: 1.05rem;
    margin: 20px 0 8px;
    color: var(--color-text);
}

.legal-content p,
.legal-content li {
    color: var(--color-text-muted);
    margin-bottom: 12px;
    line-height: 1.65;
}

.legal-content ul {
    padding-left: 24px;
    margin-bottom: 16px;
}

.legal-content a {
    font-weight: 600;
}

.site-footer {
    margin-top: auto;
}

.footer-grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: 48px;
    padding-bottom: 90px;
    align-items: start;
}

.footer-brand .logo {
    margin-bottom: 16px;
}

.footer-brand {
    max-width: none;
    margin-top: 0;
    margin-bottom: 0;
}

.footer-brand p {
    font-size: 0.9rem;
    line-height: 1.7;
    max-width: 320px;
}

.footer-affiliations {
    list-style: none;
    margin: 20px 0 0;
    padding: 16px 0 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 22px 28px;
}

.footer-affiliations li {
    margin: 0;
    padding: 0;
}

.footer-affiliation {
    display: inline-flex;
    align-items: center;
    line-height: 0;
    opacity: 0.82;
    transition: opacity 0.2s ease;
}

.footer-affiliation:hover {
    opacity: 1;
}

.footer-affiliation:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 4px;
}

.footer-affiliation img {
    display: block;
    height: 36px;
    width: auto;
    max-width: min(200px, 42vw);
    object-fit: contain;
}

.footer-links h4 {
    color: var(--color-primary);
    font-size: 0.875rem;
    font-weight: 700;
    margin-bottom: 16px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.footer-links ul {
    list-style: none;
}

.footer-links li {
    margin-bottom: 8px;
}

.footer-links a {
    color: var(--color-text-muted);
    font-size: 0.9rem;
}

.footer-links a:hover {
    color: var(--color-accent);
}

.footer-bottom {
    border-top: 1px solid var(--color-border);
    padding: 24px 0;
    text-align: center;
    font-size: 0.875rem;
    color: var(--color-text-muted);
}

.footer-service-provider {
    margin: 8px 0 0;
    font-size: 0.8125rem;
}

.cookie-consent {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: var(--color-white);
    color: var(--color-text);
    padding: 21px 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    flex-wrap: wrap;
    z-index: 100;
    border-top: 1px solid var(--color-border);
    box-shadow: 0 -4px 24px rgba(15, 23, 42, 0.06);
}

.cookie-consent a {
    color: var(--color-accent);
}

.cookie-consent p {
    position: relative;
    top: 0;
    margin: 0;
    max-width: 42rem;
}

.cookie-consent__actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.review-card {
    background: var(--color-surface);
    border-radius: 3px;
    padding: 28px;
    box-shadow: var(--shadow);
    margin-bottom: 24px;
    border: 1px solid var(--color-border);
}

.review-actions {
    display: flex;
    gap: 12px;
    margin-top: 20px;
}

.match-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 24px;
}

.match-grid .review-card {
    margin-bottom: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.match-grid .review-actions {
    margin-top: 15px;
}

@media (min-width: 1600px) {
    .marketplace-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 1199px) {
    .card-grid--4 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 1100px) {
    .marketplace-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .card-grid--3:not(.card-grid--balanced) {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 1024px) {
    .map-layout {
        grid-template-columns: 1fr;
        min-height: auto;
        gap: 16px;
    }
    .map-sidebar {
        grid-column: 1;
        grid-row: 1;
    }
    .map-main {
        grid-column: 1;
        grid-row: 2;
        min-height: min(56vh, 520px);
        height: auto;
    }
    .map-panel {
        height: auto;
    }
    .map-panel__hint {
        white-space: normal;
        text-align: left;
    }
}

@media (max-width: 900px) {
    .dashboard-panel__head,
    .dashboard-page-header,
    .dashboard-list__row,
    .marketplace-section__header,
    .dashboard-toolbar {
        flex-direction: column;
        align-items: flex-start;
    }
    .dashboard-list__actions,
    .dashboard-panel__actions,
    .dashboard-page-header__actions,
    .marketplace-section__actions {
        width: 100%;
        justify-content: flex-start;
    }
    .dashboard-list__actions:has(.match-actions) {
        width: 100%;
        justify-content: flex-start;
        overflow-x: auto;
        padding-left: 0;
        border-left: none;
    }
    .dashboard-list--cards {
        padding: 10px;
    }
    .dashboard-list--cards .dashboard-list__row:has(.match-actions) .dashboard-list__actions {
        padding-left: 0;
        border-left: none;
    }
    .match-actions {
        flex-wrap: wrap;
    }
    .dashboard-list__row {
        gap: 12px;
    }
    .dashboard-list__main {
        width: 100%;
    }
    .dashboard-list__badge {
        flex-wrap: wrap;
        white-space: normal;
    }
    .footer-grid {
        grid-template-columns: 1fr 1fr;
    }
    .form-row {
        grid-template-columns: 1fr;
    }
    .pricing-content {
        padding-inline: 0;
    }
    .pricing-grid:not(.pricing-grid--balanced):not(.access-grid) {
        grid-template-columns: 1fr;
    }
    .access-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .pricing-grid.pricing-grid--balanced .pricing-card,
    .pricing-features-full__grid.pricing-features-full__grid--balanced .pricing-features-full__col,
    .pricing-faq__grid.pricing-faq__grid--triple,
    .pricing-faq__grid.pricing-faq__grid--quad {
        grid-template-columns: 1fr;
    }
    .pricing-faq__grid.pricing-faq__grid--triple .pricing-faq__card,
    .pricing-faq__grid.pricing-faq__grid--quad .pricing-faq__card,
    .features-grid.features-grid--balanced .feature-card,
    .card-grid.card-grid--balanced .card {
        flex-basis: 100%;
        max-width: 100%;
    }
    .pricing-faq__grid:not(.pricing-faq__grid--triple):not(.pricing-faq__grid--quad) {
        grid-template-columns: 1fr;
    }
    .pricing-faq__banner {
        flex-direction: column;
        align-items: flex-start;
    }
    .pricing-features-full__grid:not(.pricing-features-full__grid--balanced) {
        grid-template-columns: 1fr;
    }
    .faq-layout {
        grid-template-columns: 1fr;
    }
    .listing-detail__grid,
    .listing-detail .property-detail-grid,
    .provider-review__grid {
        grid-template-columns: 1fr;
    }
    .admin-filter-select-form {
        flex-wrap: wrap;
        width: 100%;
    }
    .admin-filter-select {
        flex: 1 1 100%;
        min-width: 0;
        width: 100%;
    }
    .match-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    :root {
        --layout-gutter: 16px;
    }
    .marketplace-grid {
        grid-template-columns: 1fr;
    }
    .access-grid {
        grid-template-columns: 1fr;
        max-width: 440px;
    }
    .header-inner {
        padding: 8px 0;
        gap: 12px;
    }
    .logo {
        margin-right: 0;
    }
    .nav-toggle {
        display: flex;
    }
    .main-nav {
        display: none;
        position: fixed;
        top: var(--header-h);
        left: 0;
        right: 0;
        background: var(--color-white);
        flex-direction: column;
        align-items: stretch;
        border-bottom: 1px solid var(--color-border);
        box-shadow: var(--shadow-md);
        z-index: 999;
    }
    .main-nav.open {
        display: flex;
    }
    .main-nav a:not(.nav-cta):not(.nav-btn-outline):not(.nav-logout) {
        width: 100%;
        text-align: left;
    }
    .main-nav .nav-cta,
    .main-nav .nav-btn-outline,
    .main-nav .nav-logout {
        width: 100%;
        justify-content: center;
        margin-left: 0;
    }
    .hero-layout {
        grid-template-columns: 1fr;
        padding: 48px 24px;
        gap: 32px;
    }
    .hero-visual {
        order: -1;
    }
    .hero-showcase {
        max-width: 100%;
    }
    .hero {
        min-height: auto;
    }
    .highlight-inner {
        flex-direction: column;
    }
    .cta-inner {
        flex-direction: column;
        align-items: flex-start;
    }
    .cta-actions {
        width: 100%;
        flex-direction: column;
    }
    .cta-actions .btn {
        width: 100%;
        justify-content: center;
    }
    .hero h1 {
        font-size: clamp(1.75rem, 8vw, 2.35rem);
    }
    .hero-actions {
        flex-direction: column;
        align-items: stretch;
    }
    .hero-actions .btn {
        width: 100%;
        justify-content: center;
    }
    .hero-stats {
        flex-direction: column;
        gap: 24px;
    }
    .section {
        padding: 40px 0;
    }
    .page-header {
        padding: 24px 0 20px;
    }
    .feature-strip {
        padding: 32px 0;
    }
    .feature-strip .container {
        flex-direction: column;
        align-items: center;
        gap: 20px;
    }
    .feature-item {
        justify-content: center;
        text-align: center;
    }
    .card-grid:not(.card-grid--balanced),
    .card-grid--3:not(.card-grid--balanced),
    .card-grid--4:not(.card-grid--balanced) {
        grid-template-columns: 1fr;
    }
    .card-grid.card-grid--balanced .card {
        flex-basis: 100%;
        max-width: 100%;
    }
    .feature-item {
        white-space: normal;
    }
    .footer-grid {
        grid-template-columns: 1fr;
        gap: 28px;
        padding-bottom: 24px;
    }
    .footer-brand {
        max-width: none;
        margin-top: 0;
        margin-bottom: 0;
    }
    .logo--footer {
        transform: translateX(8px);
    }
    .role-cards,
    .role-cards--three {
        grid-template-columns: 1fr;
    }
    .about-intro__layout,
    .split-about {
        grid-template-columns: 1fr;
    }
    .about-intro__visual,
    .split-about__image {
        order: -1;
    }
    .map-main {
        min-height: 380px;
        height: 52vh;
    }
    .map-counts {
        grid-template-columns: 1fr;
    }
    .map-layer-select {
        display: block;
        width: 100%;
        margin-top: 8px;
        padding: 11px 14px;
        border: 1px solid var(--color-border);
        border-radius: 3px;
        font-family: inherit;
        font-size: 0.95rem;
        background: var(--color-surface);
    }
    .map-layer-pills {
        display: none;
    }
    .map-reset span {
        display: none;
    }
    .map-panel__title-row {
        flex-direction: column;
    }
    .marketplace-card__title-row {
        flex-direction: column;
        align-items: flex-start;
    }
    .marketplace-card__status {
        flex-wrap: wrap;
        white-space: normal;
        width: 100%;
    }
    .marketplace-filters {
        flex-wrap: wrap;
        gap: 8px;
    }
    .marketplace-filter {
        flex: 1 1 auto;
    }
    .dashboard-tabs__inner {
        gap: 6px;
    }
    .dashboard-tabs a {
        font-size: 0.85rem;
        padding: 8px 14px;
    }
    .dashboard-metrics__item {
        flex: 1 1 100%;
        justify-content: center;
    }
    .confirm-modal,
    .detail-modal {
        padding: var(--modal-viewport-margin-block) 12px;
        align-items: center;
    }
    .confirm-modal__panel,
    .detail-modal__panel {
        max-height: var(--modal-viewport-height);
        padding: 20px 16px 16px;
    }
    .detail-modal--wide .detail-modal__panel,
    .detail-modal--form .detail-modal__panel {
        max-width: 100%;
    }
    .detail-modal--wide .listing-detail__grid,
    .detail-modal--wide .listing-detail .property-detail-grid,
    .detail-modal--wide .property-detail-grid,
    .detail-modal--wide .provider-review__grid,
    .detail-modal--form .listing-detail__grid,
    .detail-modal--form .listing-detail .property-detail-grid,
    .detail-modal--form .property-detail-grid,
    .detail-modal--form .provider-review__grid,
    .detail-modal--form .listing-edit-form .form-row,
    .detail-modal--form .listing-edit-form .form-row--3,
    .detail-modal--form .listing-edit-form .form-checkboxes {
        grid-template-columns: 1fr;
    }
    .detail-modal__title {
        font-size: 1.15rem;
        margin-right: 28px;
    }
    .form-actions {
        flex-direction: column;
        align-items: stretch;
    }
    .form-actions__primary,
    .form-actions__secondary {
        width: 100%;
        flex-direction: column;
    }
    .form-actions .btn {
        width: 100%;
        justify-content: center;
    }
    .review-actions {
        flex-direction: column;
        align-items: stretch;
    }
    .review-actions .btn {
        width: 100%;
        justify-content: center;
    }
    .settings-flags {
        grid-template-columns: 1fr;
    }
    .auth-page {
        padding: 32px 0;
        align-items: flex-start;
    }
    .legal-content {
        padding-block: 32px 56px;
    }
    .toast-root {
        left: 16px;
        right: 16px;
        width: auto;
    }
}

@media (max-width: 480px) {
    .dashboard-page {
        padding: 16px 0 56px;
    }
    .map-main {
        min-height: 320px;
        height: 48vh;
    }
    .map-panel {
        padding: 16px;
    }
    .card {
        padding: 20px;
    }
    .pricing-card {
        padding: 22px 18px 26px;
    }
}

.admin-body {
    display: block;
    min-height: 100vh;
}

.admin-shell {
    display: flex;
    min-height: 100vh;
}

.admin-sidebar {
    width: 260px;
    display: flex;
    flex-direction: column;
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    z-index: 60;
}

.admin-main {
    flex: 1;
    margin-left: 260px;
}

.admin-sidebar-brand {
    display: flex;
    flex-direction: column;
}

.admin-logo {
    text-decoration: none;
    transform: none;
}

.admin-logo:hover {
    color: inherit;
    opacity: 0.92;
}

.admin-badge {
    margin-top: -2px;
    text-transform: uppercase;
}

.admin-sidebar-nav {
    display: flex;
    flex-direction: column;
    flex: 1;
}

.admin-sidebar-nav a {
    text-decoration: none;
}

.admin-overview-links {
    margin-top: 28px;
    padding-top: 16px;
    border-top: 1px solid var(--color-border);
}

.admin-jump-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    margin: 0 0 20px;
    padding: 0;
}

.admin-jump-nav a {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--color-primary);
    text-decoration: none;
}

.admin-jump-nav a:hover {
    text-decoration: underline;
}

.admin-sidebar-foot .btn {
    justify-content: center;
}

.dashboard-nav-toggle {
    display: none;
    flex-direction: column;
    gap: 5px;
    flex-shrink: 0;
    cursor: pointer;
    padding: 8px;
    margin-right: 4px;
}

.dashboard-nav-toggle span {
    display: block;
    height: 2px;
    transition: var(--transition);
}

.admin-topbar {
    display: flex;
    align-items: center;
}

.admin-topbar h1 {
    font-family: var(--font-heading);
}

.admin-content > .alert {
    margin-bottom: 20px;
}

.admin-card-stack,
.admin-page-section-plain {
    display: flex;
    flex-direction: column;
    gap: 28px;
}

.admin-card {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    overflow: hidden;
}

.admin-card-header {
    padding: 18px 22px;
    border-bottom: 1px solid var(--color-border);
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: var(--color-white);
}

.admin-card-header h2 {
    font-family: var(--font-heading);
    font-size: 1rem;
    font-weight: 600;
    color: var(--color-primary);
    letter-spacing: -0.02em;
    margin: 0;
}

.admin-card-body {
    padding: 22px;
}

.admin-card-body-flush {
    padding: 0 !important;
}

.admin-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 160px), 1fr));
    gap: 16px;
    margin-bottom: 24px;
}

.admin-stat {
    background: var(--color-white);
    padding: 22px 24px;
    border: 1px solid var(--color-border);
}

.admin-stat strong {
    display: block;
    font-family: var(--font-heading);
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--color-primary);
    line-height: 1;
    margin-bottom: 6px;
    letter-spacing: -0.025em;
}

.admin-stat span {
    font-size: 0.8125rem;
    color: var(--color-text-muted);
    font-weight: 500;
}

.admin-table {
    width: 100%;
    border-collapse: collapse;
}

.admin-table th,
.admin-table td {
    text-align: left;
    border-bottom: 1px solid var(--color-border);
}

.admin-table th {
    text-transform: uppercase;
}

.admin-table tr:last-child td {
    border-bottom: none;
}

.admin-table .badge {
    position: static;
    display: inline-block;
}

.admin-page-layout {
    display: grid;
    grid-template-columns: minmax(220px, 260px) minmax(0, 1fr);
    gap: 20px;
    align-items: start;
}

.admin-page-nav {
    position: sticky;
    top: 84px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.admin-page-nav-list {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.admin-page-nav-link {
    display: block;
    padding: 10px 14px;
    text-decoration: none;
    color: var(--color-text-muted);
    font-size: 0.875rem;
    font-weight: 500;
    transition: background var(--transition), color var(--transition);
}

.admin-page-nav-link span {
    display: block;
    font-size: 0.75rem;
    font-weight: 400;
    margin-top: 2px;
    color: var(--color-text-muted);
    opacity: 0.85;
}

.admin-page-nav-link:hover {
    background: var(--color-bg-alt);
    color: var(--color-primary);
}

.admin-page-nav-link.active {
    background: var(--color-accent-soft);
    color: var(--color-accent);
    font-weight: 600;
}

.admin-page-main {
    display: flex;
    flex-direction: column;
    gap: 28px;
    min-width: 0;
}

.admin-nav-body {
    padding: 8px !important;
}

.admin-empty {
    padding: 24px;
    color: var(--color-text-muted);
    text-align: center;
}

.bulk-bar {
    border-bottom: 1px solid var(--color-border);
}

.admin-body .dashboard-tabs {
    display: none;
}

.admin-content .dashboard-content {
    padding: 0;
    background: transparent;
}

.admin-content .dashboard-page-header {
    margin-bottom: 20px;
}

.admin-content .dashboard-page-header--actions-only {
    justify-content: flex-end;
    margin-bottom: 16px;
}

.admin-content .dashboard-content__lead {
    margin: 0 0 20px;
    color: var(--color-text-muted);
    font-size: 0.9375rem;
    max-width: 52ch;
}

.admin-content .dashboard-metrics {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 160px), 1fr));
    gap: 16px;
    margin-bottom: 24px;
}

.admin-content .dashboard-metrics__item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    padding: 22px 24px;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: 3px;
    box-shadow: var(--shadow-sm);
}

.admin-content .dashboard-metrics__item::after {
    display: none;
}

.admin-content .dashboard-metrics__value {
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--color-primary);
    letter-spacing: -0.025em;
    line-height: 1;
}

.admin-content .dashboard-metrics__label {
    font-size: 0.8125rem;
    color: var(--color-text-muted);
    font-weight: 500;
}

.admin-content .dashboard-notice {
    border-radius: 3px;
    margin-bottom: 20px;
}

.admin-content .dashboard-notice--info {
    background: var(--color-accent-soft);
    border-color: rgba(13, 148, 136, 0.18);
    color: var(--color-primary);
}

.credits-page .profile-section.form-card {
    padding: 28px 32px;
}

.credits-page__intro {
    margin: 0;
    max-width: 52ch;
    line-height: 1.55;
}

.credits-page__action {
    margin: 20px 0 0;
}

.credits-page__balance .credit-balance {
    margin-top: 4px;
}

.credits-page__buy .credits-page__intro {
    margin-bottom: 24px;
}

.credits-page__payment-notice {
    margin-top: 28px;
    padding-top: 24px;
    border-top: 1px solid var(--color-border);
}

.credits-page__payment-notice .payment-security-notice {
    margin: 0;
    max-width: 62ch;
    line-height: 1.55;
}

.credit-pack-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    max-width: 720px;
}

@media (max-width: 640px) {
    .credit-pack-grid {
        grid-template-columns: 1fr;
        max-width: none;
    }
}

.credit-pack-card {
    margin: 0;
    padding: 24px 26px;
    display: flex;
    flex-direction: column;
    gap: 0;
}

.credit-pack-card h3 {
    margin: 0 0 12px;
    font-size: 1.05rem;
}

.credit-pack-card__badge {
    display: inline-block;
    margin: 0 0 12px;
    padding: 4px 10px;
    border-radius: 3px;
    background: var(--color-accent-soft);
    color: var(--color-primary);
    font-size: 0.8rem;
    font-weight: 700;
}

.credit-pack-card__was {
    margin: 0 0 4px;
    font-size: 0.95rem;
    color: var(--color-text-muted);
}

.credit-pack-card__price {
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--color-primary);
    margin: 0 0 12px;
    line-height: 1.2;
}

.credit-pack-card .form-hint {
    margin: 0;
    line-height: 1.5;
}

.credit-pack-card .form-hint + .form-hint {
    margin-top: 10px;
}

.credit-pack-card__form {
    margin-top: 20px;
}

.credit-balance {
    font-size: 1.1rem;
    margin: 0 0 16px;
    line-height: 1.4;
}

.credit-balance strong {
    font-size: 2.25rem;
    color: var(--color-primary);
    display: inline-block;
    margin-right: 0.15em;
}

.tenant-eligibility-page .profile-sections,
.tenant-eligibility-form .profile-sections {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.tenant-eligibility-step {
    margin: 0;
}

.eligibility-wizard__progress {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin: 0 0 24px;
}

.eligibility-wizard__dot {
    width: 10px;
    height: 10px;
    border-radius: 3px;
    background: var(--color-border);
    transition: background var(--transition), transform var(--transition);
}

.eligibility-wizard__dot.is-active {
    background: var(--color-accent);
    transform: scale(1.15);
}

.eligibility-wizard__dot.is-complete {
    background: rgba(13, 148, 136, 0.45);
}

.eligibility-wizard__panel {
    margin: 0;
}

.eligibility-wizard__panel[hidden] {
    display: none !important;
}

.eligibility-wizard__nav {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 24px;
}

.eligibility-wizard__preview {
    margin-top: 24px;
    padding: 18px 20px;
    border: 1px solid rgba(13, 148, 136, 0.2);
    border-radius: 3px;
    background: var(--color-accent-soft);
}

.eligibility-wizard__preview h3 {
    margin: 0 0 8px;
    font-size: 1rem;
    color: var(--color-primary);
}

.eligibility-wizard__preview-list {
    margin: 8px 0 0;
    padding-left: 1.2em;
    color: var(--color-text-muted);
    font-size: 0.92rem;
    line-height: 1.55;
}

.enquiry-tenant-preview {
    margin: 0 0 20px;
}

.enquiry-tenant-preview__facts {
    margin: 0 0 16px;
}

.enquiry-tenant-preview__benefits-title {
    margin: 0 0 10px;
    font-size: 1rem;
}

.benefit-match {
    padding: 14px 16px;
    border: 1px solid var(--color-border);
    border-radius: 3px;
    background: var(--color-surface-muted, #f8fafc);
}

.benefit-match__status {
    margin: 0 0 8px;
}

.benefit-match__matched {
    margin: 0;
    padding-left: 1.2em;
    font-weight: 600;
    color: var(--color-text);
}

.benefit-match__matched li {
    margin: 2px 0;
}

.benefit-match__list {
    margin: 8px 0 0;
}

.tenant-eligibility-checklist {
    margin: 4px 0 0;
}

.tenant-eligibility-confirm {
    margin-top: 8px;
}

.tenant-eligibility-form__actions {
    margin-top: 8px;
}

.tenant-eligibility-form__privacy {
    margin-top: 16px;
    max-width: 62ch;
}

.tenant-eligibility-summary {
    margin: 0 0 24px;
    padding: 20px 24px;
    border: 1px solid var(--color-border);
    border-radius: 3px;
    background: var(--color-accent-soft);
}

.tenant-eligibility-summary h3 {
    margin: 0 0 8px;
    font-size: 1rem;
    color: var(--color-primary);
}

.tenant-eligibility-summary__list {
    margin: 8px 0 0;
    padding-left: 1.2em;
    color: var(--color-text-muted);
    font-size: 0.92rem;
    line-height: 1.55;
}

.dashboard-stats-group {
    margin-bottom: 20px;
}

.dashboard-stats-group__title {
    margin: 0 0 12px;
    font-size: 0.9375rem;
    font-weight: 700;
    color: var(--color-primary);
    letter-spacing: -0.02em;
}

.dashboard-charts {
    margin-bottom: 24px;
}

.dashboard-charts__grid {
    display: grid;
    gap: 16px;
}

.dashboard-chart-card {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: 3px;
    box-shadow: var(--shadow-sm);
    display: flex;
    flex-direction: column;
}

.dashboard-chart-card__head {
    margin-bottom: 10px;
}

.dashboard-chart-card__title {
    margin: 0;
    font-weight: 700;
    color: var(--color-primary);
    letter-spacing: -0.02em;
    line-height: 1.3;
}

.dashboard-chart-card__subtitle {
    margin: 4px 0 0;
    color: var(--color-text-muted);
}

.dashboard-chart-card__canvas-wrap {
    position: relative;
}

.dashboard-chart-card__canvas-wrap canvas {
    width: 100% !important;
    height: 100% !important;
}

.dashboard-charts--medium .dashboard-charts__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.dashboard-charts--medium .dashboard-chart-card {
    padding: 16px 18px 14px;
}

.dashboard-charts--medium .dashboard-chart-card__title {
    font-size: 0.9rem;
}

.dashboard-charts--medium .dashboard-chart-card__subtitle {
    font-size: 0.75rem;
}

.dashboard-charts--medium .dashboard-chart-card__canvas-wrap {
    height: 220px;
}

.dashboard-charts--large .dashboard-charts__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.dashboard-charts--large .dashboard-chart-card {
    padding: 22px 24px 18px;
}

.dashboard-charts--large .dashboard-chart-card__title {
    font-size: 1rem;
}

.dashboard-charts--large .dashboard-chart-card__subtitle {
    font-size: 0.8125rem;
}

.dashboard-charts--large .dashboard-chart-card__canvas-wrap {
    height: 320px;
}

@media (max-width: 960px) {
    .dashboard-charts--medium .dashboard-charts__grid,
    .dashboard-charts--large .dashboard-charts__grid {
        grid-template-columns: 1fr;
    }
    .dashboard-charts--medium .dashboard-chart-card__canvas-wrap {
        height: 240px;
    }
    .dashboard-charts--large .dashboard-chart-card__canvas-wrap {
        height: 280px;
    }
}

.admin-content .dashboard-panel {
    background: var(--color-white);
    border-radius: 3px;
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--color-border);
    overflow: hidden;
    margin-bottom: 28px;
}

.admin-content .dashboard-panel:last-child {
    margin-bottom: 0;
}

.admin-content .dashboard-panel__head {
    padding: 18px 22px;
    border-bottom: 1px solid var(--color-border);
    background: var(--color-white);
}

.admin-content .dashboard-panel__meta strong {
    font-size: 1rem;
    font-weight: 600;
    color: var(--color-primary);
}

.admin-content .dashboard-panel__meta span {
    font-size: 0.875rem;
    color: var(--color-text-muted);
}

.admin-content .dashboard-list__row {
    padding: 14px 18px;
    border-bottom: 1px solid var(--color-border);
    gap: 16px;
}

.admin-content .dashboard-list__row:hover {
    background: #fcfdfe;
}

.admin-content .dashboard-list__row:last-child {
    border-bottom: none;
}

.admin-content .dashboard-empty {
    padding: 24px;
    color: var(--color-text-muted);
    text-align: center;
}

.admin-content .form-card,
.admin-content .settings-panel.form-card {
    border-radius: 3px;
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--color-border);
    max-width: none;
    margin: 0;
}

.database-health-panel {
    margin-bottom: 28px;
}

.database-health-meta {
    display: grid;
    gap: 6px;
    margin-bottom: 20px;
}

.database-health-meta p {
    margin: 0;
}

.database-health-migrations {
    list-style: none;
    padding: 0;
    margin: 0 0 16px;
    display: grid;
    gap: 8px;
}

.database-health-migrations li {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.admin-content .profile-sections {
    display: flex;
    flex-direction: column;
    gap: 28px;
}

.admin-content .profile-section.form-card {
    margin: 0;
}

.admin-content .admin-filter-group {
    margin-bottom: 20px;
}

.admin-content .admin-filter-group__label {
    font-size: 0.6875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--color-text-muted);
    margin-bottom: 8px;
}

.admin-content .marketplace-filters.admin-filter-tabs {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: 3px;
    padding: 8px;
    box-shadow: var(--shadow-sm);
    margin-bottom: 20px;
}

.admin-content .marketplace-filters.admin-filter-tabs .marketplace-filter {
    border-radius: 3px;
    padding: 8px 14px;
    font-size: 0.875rem;
}

.admin-content .admin-bulk-toolbar {
    background: var(--color-bg-alt);
    border: 1px solid var(--color-border);
    border-bottom: none;
    border-radius: 3px;
    margin-bottom: 0;
}

.admin-content .admin-bulk-toolbar + .dashboard-panel,
.admin-content .dashboard-panel:has(.admin-bulk-toolbar) {
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    margin-top: 0;
}

.admin-content .marketplace-section {
    margin-bottom: 28px;
}

.admin-content .marketplace-section__head h2 {
    font-size: 1rem;
    font-weight: 600;
    color: var(--color-primary);
}

.admin-content .marketplace-card {
    border-radius: 3px;
}

.admin-content .settings-flag {
    border-radius: 3px;
    margin-bottom: 24px;
}

@media (max-width: 992px) {
    .admin-sidebar {
        position: static;
        width: 100%;
    }
    .admin-shell {
        flex-direction: column;
    }
    .admin-main {
        margin-left: 0;
    }
    .admin-sidebar-nav {
        flex-direction: row;
        flex-wrap: wrap;
        padding: 12px 14px;
    }
    .admin-sidebar-foot {
        padding: 12px 14px;
    }
    .admin-sidebar-foot .btn {
        width: auto;
        min-width: 120px;
    }
    .admin-page-layout {
        grid-template-columns: 1fr;
    }
    .admin-page-nav {
        position: static;
    }
    .admin-page-nav-list {
        flex-direction: row;
        flex-wrap: wrap;
    }
    .admin-topbar {
        flex-direction: column;
        align-items: flex-start;
    }
    .admin-topbar-actions {
        width: 100%;
    }
    .admin-topbar-actions .btn {
        flex: 1;
        justify-content: center;
    }
}

@media (max-width: 768px) {
    .dashboard-nav-toggle {
        display: flex;
    }
    .admin-shell {
        flex-direction: row;
    }
    .admin-sidebar {
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        width: min(280px, 88vw);
        z-index: 80;
        transform: translateX(-100%);
        transition: transform var(--transition);
        flex-direction: column;
    }
    .admin-sidebar.is-open {
        transform: translateX(0);
        box-shadow: var(--shadow-lg);
    }
    .admin-sidebar-nav {
        flex-direction: column;
        flex-wrap: nowrap;
    }
    .admin-sidebar-foot .btn {
        width: 100%;
    }
    .admin-main {
        margin-left: 0;
        width: 100%;
    }
    .admin-topbar {
        flex-direction: row;
        align-items: center;
        flex-wrap: wrap;
    }
    .admin-topbar h1 {
        flex: 1;
        min-width: 0;
    }
}

.admin-body.map-page--dashboard .admin-content {
    padding-bottom: 24px;
}

.admin-content .dashboard-content--map .dashboard-content__lead {
    margin-bottom: 16px;
}

.admin-content .dashboard-content--map .map-layout {
    min-height: min(calc(100vh - 220px), 720px);
}

.admin-content .dashboard-content--map .map-main {
    min-height: min(calc(100vh - 220px), 720px);
}

.admin-content .dashboard-content--form .form-card,
.admin-content .dashboard-content--form .listing-edit-form.form-card {
    border-radius: 3px;
    box-shadow: var(--shadow-sm);
}

.admin-content .message-layout {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: 3px;
    box-shadow: var(--shadow-sm);
    overflow: hidden;
}

.email-templates-layout {
    display: grid;
    grid-template-columns: minmax(240px, 300px) minmax(0, 1fr);
    gap: 20px;
    align-items: start;
}

.email-templates-layout:has(.email-templates-side) {
    grid-template-columns: minmax(240px, 300px) minmax(0, 1fr) minmax(220px, 280px);
}

.bulk-email-form > section {
    margin-bottom: 20px !important;
}

.bulk-email-form__recipients textarea {
    min-height: 200px;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.875rem;
}

.bulk-email-recipients-divider {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 8px 0 20px;
    color: var(--color-text-muted);
    font-size: 0.875rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.bulk-email-recipients-divider::before,
.bulk-email-recipients-divider::after {
    content: '';
    flex: 1;
    height: 1px;
    background: var(--color-border);
}

.bulk-email-csv-summary {
    margin-top: 8px;
    font-weight: 600;
}

.bulk-email-confirm {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 0.9375rem;
}

.bulk-email-form__summary {
    font-weight: 600;
    margin: 0 0 10px;
}

.bulk-email-form__actions {
    margin-top: 16px;
}

.email-templates-search {
    padding: 12px 16px;
    border-bottom: 1px solid var(--color-border);
}

.email-templates-search input {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--color-border);
    border-radius: 3px;
    font-family: inherit;
    font-size: 0.875rem;
}

.email-templates-items {
    margin: 0;
    padding: 0;
    max-height: 520px;
    overflow-y: auto;
}

.email-templates-group {
    border-bottom: 1px solid var(--color-border);
}

.email-templates-group:last-child {
    border-bottom: none;
}

.email-templates-group__title {
    margin: 0;
    padding: 10px 16px 8px;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--color-text-muted);
    background: var(--color-bg-alt);
    position: sticky;
    top: 0;
    z-index: 1;
}

.email-templates-group__list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.email-templates-item {
    border-bottom: 1px solid var(--color-border);
}

.email-templates-group__list .email-templates-item:last-child {
    border-bottom: none;
}

.email-templates-link {
    display: block;
    padding: 14px 16px;
    text-decoration: none;
    color: inherit;
    transition: background var(--transition);
}

.email-templates-link:hover {
    background: var(--color-bg-alt);
}

.email-templates-link.is-active {
    background: var(--color-accent-soft);
}

.email-templates-link strong {
    display: block;
    font-size: 0.9rem;
    color: var(--color-primary);
    margin-bottom: 4px;
}

.email-templates-link__desc {
    display: block;
    font-size: 0.8125rem;
    color: var(--color-text-muted);
    line-height: 1.45;
    margin-bottom: 6px;
}

.email-templates-link code {
    font-size: 0.75rem;
    color: var(--color-accent);
    background: transparent;
}

.email-template-placeholders {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.email-template-placeholders li {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 2px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--color-border);
}

.email-template-placeholders li:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.email-template-placeholders code {
    font-size: 0.78rem;
    color: var(--color-accent);
    word-break: break-all;
}

.email-template-placeholders span {
    font-size: 0.8125rem;
    color: var(--color-text-muted);
    line-height: 1.4;
}

.visually-hidden-form {
    display: none;
}

.admin-content .tox-tinymce {
    border-radius: 3px;
    border-color: var(--color-border) !important;
}

.admin-content .tox .tox-edit-area__iframe {
    background: var(--color-white);
}

.admin-content textarea.html-editor {
    min-height: 200px;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.8125rem;
}

.email-preview-modal {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--modal-viewport-margin-block) 24px;
    box-sizing: border-box;
}

.email-preview-modal[hidden] {
    display: none;
}

.email-preview-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.55);
}

.email-preview-modal__panel {
    position: relative;
    width: min(920px, 100%);
    max-height: var(--modal-viewport-height);
    background: var(--color-white);
    border-radius: 3px;
    border: 1px solid var(--color-border);
    box-shadow: var(--shadow-lg);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.email-preview-modal__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 20px;
    border-bottom: 1px solid var(--color-border);
}

.email-preview-modal__title {
    margin: 0;
    font-size: 1.1rem;
    color: var(--color-primary);
}

.email-preview-modal__subject {
    margin: 6px 0 0;
    font-size: 0.875rem;
    color: var(--color-text-muted);
}

.email-preview-modal__actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.email-preview-modal__close {
    width: 36px;
    height: 36px;
    border: 1px solid var(--color-border);
    border-radius: 3px;
    background: var(--color-white);
    color: var(--color-text-muted);
    font-size: 1.4rem;
    line-height: 1;
    cursor: pointer;
}

.email-preview-modal__close:hover {
    color: var(--color-primary);
    border-color: #cbd5e1;
}

.email-preview-modal__hint {
    margin: 0;
    padding: 10px 20px;
    font-size: 0.8125rem;
    color: var(--color-text-muted);
    background: var(--color-bg-alt);
    border-bottom: 1px solid var(--color-border);
}

.email-preview-modal__frame {
    width: 100%;
    min-height: 520px;
    height: min(72vh, 720px);
    border: 0;
    background: #f4f6f8;
}

body.email-preview-modal-open {
    overflow: hidden;
}

@media (max-width: 1100px) {
    .email-templates-layout,
    .email-templates-layout:has(.email-templates-side) {
        grid-template-columns: 1fr;
    }
    .email-templates-items {
        max-height: none;
    }
}

.audit-log-toolbar {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: 3px;
    box-shadow: var(--shadow-sm);
    padding: 14px 16px;
    margin-bottom: 20px;
}

.audit-log-toolbar__filters {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 16px 24px;
}

.audit-log-toolbar__group {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
}

.audit-log-toolbar__group--action {
    margin-left: auto;
}

.audit-log-toolbar__label {
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--color-text-muted);
}

.audit-log-toolbar__tabs {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 4px;
    background: var(--color-bg-alt);
    border: 1px solid var(--color-border);
    border-radius: 3px;
}

.audit-log-toolbar__tab {
    display: inline-flex;
    align-items: center;
    padding: 7px 14px;
    border-radius: 3px;
    border: 1px solid transparent;
    background: transparent;
    color: var(--color-text-muted);
    font-size: 0.8125rem;
    font-weight: 600;
    text-decoration: none;
    transition: background var(--transition), color var(--transition), border-color var(--transition);
}

.audit-log-toolbar__tab:hover {
    color: var(--color-text);
    background: rgba(255, 255, 255, 0.7);
}

.audit-log-toolbar__tab.is-active {
    color: var(--color-primary);
    background: var(--color-white);
    border-color: var(--color-border);
    box-shadow: var(--shadow-sm);
}

.audit-log-toolbar .admin-filter-select-form {
    margin: 0;
}

.audit-log-toolbar .admin-filter-select {
    min-width: 180px;
    padding: 8px 34px 8px 14px;
    font-size: 0.8125rem;
}

.audit-log-toolbar__search-form {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.audit-log-toolbar__search-input {
    min-width: 220px;
    padding: 8px 14px;
    border: 1px solid var(--color-border);
    border-radius: 3px;
    background: var(--color-surface);
    color: var(--color-text);
    font-size: 0.8125rem;
    font-family: inherit;
}

.audit-log-toolbar__search-input:focus {
    outline: none;
    border-color: var(--brand);
    box-shadow: 0 0 0 3px rgba(13, 148, 136, 0.12);
}

.audit-log-feed {
    display: flex;
    flex-direction: column;
}

.audit-log-entry {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr) auto;
    gap: 14px 16px;
    align-items: start;
    padding: 16px 18px;
    border-bottom: 1px solid var(--color-border);
}

.audit-log-entry:last-child {
    border-bottom: none;
}

.audit-log-entry:hover {
    background: #fcfdfe;
}

.audit-log-entry__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 3px;
    color: var(--brand);
    background: rgba(13, 148, 136, 0.08);
}

.audit-log-entry--email .audit-log-entry__icon {
    color: #0f766e;
    background: rgba(15, 118, 110, 0.1);
}

.audit-log-entry--failed .audit-log-entry__icon {
    color: #b91c1c;
    background: rgba(185, 28, 28, 0.08);
}

.audit-log-entry__body {
    min-width: 0;
}

.audit-log-entry__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 10px;
    margin-bottom: 4px;
}

.audit-log-entry__title {
    margin: 0;
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--color-primary);
    line-height: 1.35;
}

.audit-log-entry__detail,
.audit-log-entry__meta,
.audit-log-entry__note,
.audit-log-entry__error {
    margin: 0;
    font-size: 0.8125rem;
    line-height: 1.5;
}

.audit-log-entry__detail {
    color: var(--color-text);
}

.audit-log-entry__meta {
    margin-top: 4px;
    color: var(--color-text-muted);
}

.audit-log-entry__note {
    margin-top: 6px;
    color: var(--color-text-muted);
    font-style: italic;
}

.audit-log-entry__error {
    margin-top: 6px;
    color: #b91c1c;
    font-weight: 500;
}

.audit-log-entry__time {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--color-text-muted);
    white-space: nowrap;
    padding-top: 2px;
}

.admin-content .dashboard-panel:has(.audit-log-feed) .dashboard-list {
    display: block;
}

@media (max-width: 768px) {
    .audit-log-toolbar__group--action {
        margin-left: 0;
        width: 100%;
    }
    .audit-log-toolbar .admin-filter-select-form {
        width: 100%;
    }
    .audit-log-toolbar .admin-filter-select {
        flex: 1;
        min-width: 0;
    }
    .audit-log-entry {
        grid-template-columns: 36px minmax(0, 1fr);
    }
    .audit-log-entry__time {
        grid-column: 2;
        padding-top: 0;
    }
}

.alerts-inbox-item__link {
    color: inherit;
    font-weight: 600;
    text-decoration: none;
}

.alerts-inbox-item__link:hover {
    color: var(--color-primary);
    text-decoration: underline;
}

.match-deal-notice {
    background: var(--color-accent-soft);
    border: 1px solid #bfdbfe;
    border-radius: 3px;
    padding: 14px 16px;
    margin-bottom: 20px;
    font-size: 0.92rem;
    line-height: 1.55;
}

.match-pipeline {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 4px;
    list-style: none;
    margin: 0 0 12px;
    padding: 0;
}

.match-deal .match-pipeline {
    justify-content: center;
    margin: 0 auto;
    max-width: 100%;
}

.match-deal__pipeline-wrap {
    margin: 0 0 16px;
}

.match-deal__pipeline-wrap .match-pipeline {
    margin-bottom: 0;
}

.match-deal .match-pipeline__step {
    flex: 0 1 auto;
}

.match-deal .match-pipeline__step:not(:last-child)::after {
    flex: 0 0 20px;
    min-width: 20px;
}

.match-pipeline__step {
    display: flex;
    align-items: center;
    gap: 6px;
    flex: 1 1 0;
    min-width: 72px;
    font-size: 0.78rem;
    color: var(--color-text-muted);
}

.match-pipeline__step:not(:last-child)::after {
    content: '';
    flex: 1 1 auto;
    height: 2px;
    min-width: 8px;
    margin-left: 4px;
    background: var(--color-border);
}

.match-pipeline__step.is-complete {
    color: var(--color-text);
}

.match-pipeline__step.is-complete .match-pipeline__marker {
    background: var(--color-primary);
    color: #fff;
    border-color: var(--color-primary);
}

.match-pipeline__step.is-complete:not(:last-child)::after {
    background: var(--color-primary);
}

.match-pipeline__step.is-current {
    color: var(--color-primary);
    font-weight: 600;
}

.match-pipeline__step.is-current .match-pipeline__marker {
    background: var(--color-primary);
    color: #fff;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(13, 148, 136, 0.15);
}

.match-pipeline__marker {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 2px solid var(--color-border);
    font-size: 0.7rem;
    font-weight: 600;
    flex-shrink: 0;
    background: var(--color-bg);
}

.match-pipeline__label {
    line-height: 1.2;
}

.match-deal__flow-hint {
    margin: 0 0 22px;
    max-width: 72ch;
}

.match-deal__primary-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0 0 20px;
    align-items: center;
}

.match-deal__next-step {
    flex: 1 1 100%;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px 18px;
    margin: 0 0 4px;
    padding: 14px 16px;
    border-radius: 3px;
    border: 1px solid color-mix(in srgb, var(--color-primary, #0f766e) 28%, #e2e8f0);
    background: color-mix(in srgb, var(--color-primary, #0f766e) 8%, #fff);
}

.match-deal__next-step-label {
    margin: 0 0 2px;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--color-muted, #64748b);
}

.match-deal__next-step-action {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--color-text, #0f172a);
}

.match-deal__next-step-waiting {
    margin: 0;
    font-size: 0.98rem;
    color: var(--color-muted, #64748b);
}

.match-deal__next-step-cta {
    flex: 0 0 auto;
}

.match-deal__secondary-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.match-deal__quiet-actions {
    flex: 1 1 100%;
    margin-top: 2px;
}

.match-deal__quiet-actions .match-deal__ignore-btn,
.match-deal__quiet-actions .btn-ghost {
    padding: 4px 0;
    border: none;
    background: transparent;
    box-shadow: none;
    color: var(--color-muted, #64748b);
    font-weight: 500;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.match-deal__quiet-actions .match-deal__ignore-btn:hover,
.match-deal__quiet-actions .btn-ghost:hover {
    background: transparent;
    border: none;
    color: var(--color-text, #0f172a);
}

.match-deal__progress-hint {
    margin-top: 10px;
}

.match-offer-history {
    margin: 12px 0;
}

.match-offer-history > summary {
    cursor: pointer;
    font-weight: 600;
    color: var(--color-muted, #64748b);
}

.match-next-step-waiting {
    display: inline-block;
    max-width: 18rem;
    vertical-align: middle;
    line-height: 1.35;
}

.match-deal__status-form {
    display: inline;
}

.match-deal__confirm-let {
    margin: 12px 0;
    padding: 12px 14px;
    border-radius: 3px;
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
}

.match-deal__actions {
    margin-top: 12px;
}

.match-deal__header {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 12px 20px;
    margin-bottom: 22px;
}

.match-deal__titles h1 {
    margin: 0 0 6px;
    font-size: 1.5rem;
}

.match-deal__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-left: auto;
}

.match-deal__layout {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(260px, 0.9fr);
    gap: 18px;
    align-items: start;
    margin-bottom: 18px;
}

.match-deal__main,
.match-deal__sidebar {
    display: flex;
    flex-direction: column;
    gap: 18px;
    min-width: 0;
}

.match-deal__messages-panel {
    margin-bottom: 8px;
}

.match-deal__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.match-deal__panel--wide {
    grid-column: 1 / -1;
}

.match-deal__panel--focus {
    border-color: color-mix(in srgb, var(--color-primary, #0f766e) 35%, var(--color-border, #e2e8f0));
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--color-primary, #0f766e) 18%, transparent);
}

.match-deal__listing-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}

.match-deal__messages {
    max-height: 360px;
    overflow-y: auto;
    margin-bottom: 16px;
}

.match-timeline {
    list-style: none;
    margin: 0 0 16px;
    padding: 0;
    border-left: 2px solid var(--color-border);
}

.match-timeline__item {
    position: relative;
    padding: 0 0 14px 16px;
}

.match-timeline__item::before {
    content: '';
    position: absolute;
    left: -6px;
    top: 6px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--color-primary);
}

.match-timeline__time {
    display: block;
    font-size: 0.78rem;
    color: var(--color-text-muted);
}

.match-timeline__summary {
    font-size: 0.92rem;
}

.match-offers-list {
    display: grid;
    gap: 12px;
    margin-bottom: 16px;
}

.match-offer-card,
.match-viewing-card {
    border: 1px solid var(--color-border);
    border-radius: 3px;
    padding: 14px 16px;
    background: var(--color-bg-alt);
}

.match-offer-card__head,
.match-viewing-card__head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    margin-bottom: 8px;
}

.match-offer-card__details {
    margin: 0 0 8px;
    padding-left: 18px;
}

.match-offer-respond__actions,
.match-viewing-respond {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
}

.match-offer-respond__quick {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 0;
}

.match-offer-form-wrap {
    margin-top: 14px;
}

.match-offer-form-wrap summary {
    cursor: pointer;
    list-style: none;
    display: inline-block;
}

.match-offer-form-wrap summary::-webkit-details-marker {
    display: none;
}

.match-offer-form {
    margin-top: 14px;
}

.match-offer-counter-wrap {
    margin: 0;
}

.match-offer-counter-wrap summary {
    cursor: pointer;
    list-style: none;
    display: inline-flex;
    align-items: center;
}

.match-offer-counter-wrap summary::-webkit-details-marker {
    display: none;
}

.match-offer-counter-wrap[open] {
    flex: 1 1 100%;
}

.match-offer-counter-form {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--color-border);
    width: 100%;
}

@media (max-width: 900px) {
    .match-deal__layout,
    .match-deal__grid {
        grid-template-columns: 1fr;
    }
}

.listing-wizard {
    display: flex;
    flex-direction: column;
}

.listing-wizard__progress {
    margin-bottom: 24px;
}

.listing-wizard__progress-meta {
    margin: 0 0 12px;
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--color-text-muted);
}

.listing-wizard__steps,
.property-wizard__steps {
    margin: 0;
}

.listing-wizard__track {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 0;
}

.listing-wizard__track-item {
    position: relative;
    flex: 1 1 0;
    min-width: 0;
}

.listing-wizard__track-item:not(:last-child)::after {
    content: '';
    position: absolute;
    top: 17px;
    left: calc(50% + 18px);
    right: calc(-50% + 18px);
    height: 2px;
    background: var(--color-border);
    z-index: 0;
    pointer-events: none;
}

.listing-wizard__track-item.is-complete:not(:last-child)::after {
    background: var(--color-primary);
}

.listing-wizard__step,
.property-wizard__step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    width: 100%;
    margin: 0;
    padding: 0 6px 4px;
    border: 0;
    background: transparent;
    cursor: pointer;
    text-align: center;
    font: inherit;
    color: var(--color-text-muted);
}

.listing-wizard__track-dot {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    border: 2px solid var(--color-border);
    background: var(--color-surface);
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1;
    position: relative;
    z-index: 1;
    transition: border-color var(--transition), background-color var(--transition), color var(--transition);
}

.listing-wizard__track-label {
    display: block;
    font-size: 0.8125rem;
    font-weight: 500;
    line-height: 1.3;
    max-width: 9rem;
}

.listing-wizard__track-item.is-active .listing-wizard__track-dot,
.listing-wizard__step.is-active .listing-wizard__track-dot {
    border-color: var(--color-primary);
    background: var(--color-primary);
    color: var(--color-white, #fff);
}

.listing-wizard__track-item.is-active .listing-wizard__track-label,
.listing-wizard__step.is-active .listing-wizard__track-label {
    color: var(--color-primary);
    font-weight: 600;
}

.listing-wizard__track-item.is-complete .listing-wizard__track-dot {
    border-color: var(--color-primary);
    background: var(--color-surface);
    color: transparent;
    font-size: 0;
}

.listing-wizard__track-item.is-complete .listing-wizard__track-dot::after {
    content: '✓';
    font-size: 0.875rem;
    line-height: 1;
    color: var(--color-primary);
}

.listing-wizard__track-item.is-complete .listing-wizard__track-label {
    color: var(--color-text);
}

.listing-wizard__step-panel {
    flex: 1 1 auto;
}

.listing-wizard__nav-actions,
.property-wizard__nav-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid var(--color-border);
}

.listing-wizard__nav-actions [data-wizard-next] {
    margin-left: auto;
}

.listing-wizard__step-panel[hidden],
.property-wizard__step-panel[hidden] {
    display: none !important;
}

.dashboard-content--form .listing-edit-form.form-card {
    max-width: none;
}

.match-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 16px;
    align-items: flex-end;
    margin: 0 0 16px;
}

.match-toolbar__field {
    display: grid;
    grid-template-rows: auto minmax(38px, auto);
    gap: 6px;
    margin: 0;
    min-width: 0;
}

.match-toolbar__field--sort {
    min-width: 11rem;
}

.match-toolbar__field--score {
    width: 5.75rem;
}

.match-toolbar__label {
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--color-text-muted);
    line-height: 1.25;
    white-space: nowrap;
}

.match-toolbar__field select,
.match-toolbar__field input[type="number"] {
    width: 100%;
    height: 38px;
    min-height: 38px;
    margin: 0;
    padding: 0 14px;
    box-sizing: border-box;
    border: 1px solid var(--color-border);
    border-radius: 3px;
    background-color: var(--color-surface, #fff);
    font-family: inherit;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--color-text);
    line-height: 1.25;
    transition: border-color var(--transition), box-shadow var(--transition);
    -webkit-appearance: none;
    appearance: none;
}

.match-toolbar__field select {
    padding-right: 36px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' stroke='%2364748b' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 12px;
    cursor: pointer;
}

.match-toolbar__field input[type="number"] {
    -moz-appearance: textfield;
}

.match-toolbar__field input[type="number"]::-webkit-outer-spin-button,
.match-toolbar__field input[type="number"]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.match-toolbar__field select:focus,
.match-toolbar__field input[type="number"]:focus {
    outline: none;
    border-color: rgba(var(--primary-rgb), 0.45);
    box-shadow: var(--ring);
}

.match-toolbar__field--action {
    grid-template-rows: auto 38px;
}

.match-toolbar__field--action .match-toolbar__label {
    visibility: hidden;
}

.match-toolbar__apply {
    height: 38px;
    min-height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding-inline: 18px;
    white-space: nowrap;
}

.match-score-breakdown__list {
    list-style: none;
    padding: 0;
    margin: 12px 0 0;
}

.match-score-breakdown__item {
    display: grid;
    grid-template-columns: 1fr 120px 56px;
    gap: 8px;
    align-items: center;
    margin-bottom: 8px;
    font-size: 0.875rem;
}

.match-score-breakdown__bar {
    display: block;
    height: 8px;
    border-radius: 3px;
    background: var(--color-border);
    position: relative;
    overflow: hidden;
}

.match-score-breakdown__bar::after {
    content: '';
    position: absolute;
    inset: 0 auto 0 0;
    width: var(--pct, 0%);
    background: var(--color-primary);
    border-radius: inherit;
}

.match-score-breakdown__item.is-missed .match-score-breakdown__bar::after {
    background: #f59e0b;
}

.fix-listing-hints {
    margin-top: 10px;
    padding: 10px 12px;
    border-left: 3px solid #f59e0b;
    background: rgba(245, 158, 11, 0.08);
    font-size: 0.875rem;
}

.marketplace-card--photo .marketplace-card__visual {
    padding: 0;
    overflow: hidden;
}

.marketplace-card__photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    min-height: 140px;
}

.notification-centre {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    width: min(360px, 92vw);
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 3px;
    box-shadow: var(--shadow-lg);
    z-index: 200;
    padding: 12px;
}

.admin-topbar-notices,
.site-header .main-nav {
    position: relative;
}

.admin-topbar-notices {
    margin-left: auto;
    margin-right: 12px;
}

.notification-centre__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 8px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--color-border);
}

.notification-centre__empty {
    margin: 8px 0;
    font-size: 0.875rem;
    color: var(--color-text-muted);
}

.notification-centre__footer {
    margin: 8px 0 0;
    padding-top: 8px;
    border-top: 1px solid var(--color-border);
    font-size: 0.875rem;
    text-align: center;
}

.notification-centre__list {
    list-style: none;
    padding: 0;
    margin: 0;
    max-height: 320px;
    overflow: auto;
}

.notification-centre__item {
    padding: 10px 0;
    border-bottom: 1px solid var(--color-border);
    font-size: 0.875rem;
}

.notification-centre__item:last-child {
    border-bottom: none;
}

.notification-centre__link {
    display: block;
    color: inherit;
    text-decoration: none;
}

.notification-centre__link:hover .notification-centre__title {
    color: var(--color-primary);
}

.notification-centre__title {
    display: block;
    font-weight: 600;
    line-height: 1.35;
    margin-bottom: 4px;
}

.notification-centre__body {
    display: block;
    color: var(--color-text-muted);
    line-height: 1.45;
}

.notification-centre__item.is-unread .notification-centre__title {
    color: var(--color-primary);
}

.live-match-preview {
    margin: 12px 0;
    padding: 10px 12px;
    border-radius: 3px;
    background: rgba(13, 148, 136, 0.08);
}

.area-suggest-field {
    position: relative;
}

.area-suggest-field__list {
    position: absolute;
    z-index: 20;
    left: 0;
    right: 0;
    top: calc(100% + 4px);
    list-style: none;
    margin: 0;
    padding: 6px 0;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 3px;
    box-shadow: var(--shadow-md);
}

.area-suggest-field__list li {
    padding: 8px 12px;
    cursor: pointer;
}

.area-suggest-field__list li:hover {
    background: var(--color-bg-muted);
}

.placement-checklist,
.shortlist-compare__grid {
    display: grid;
    gap: 8px;
}

.shortlist-compare__grid {
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.shortlist-compare__card {
    border: 1px solid var(--color-border);
    border-radius: 3px;
    padding: 12px;
}

.match-side-by-side__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-bottom: 16px;
}

.hmo-room-strip {
    margin-top: 8px;
    font-size: 0.875rem;
}

.marketplace-loop-explainer {
    margin-bottom: 16px;
    padding: 12px 14px;
    border-radius: 3px;
    background: rgba(13, 148, 136, 0.06);
    font-size: 0.925rem;
}

@media (max-width: 768px) {
    .listing-wizard__track-label {
        font-size: 0.72rem;
        max-width: none;
    }
    .listing-wizard__track-dot {
        width: 30px;
        height: 30px;
        font-size: 0.8125rem;
    }
    .listing-wizard__track-item:not(:last-child)::after {
        top: 15px;
        left: calc(50% + 16px);
        right: calc(-50% + 16px);
    }
    .listing-wizard__nav-actions,
    .property-wizard__nav-actions {
        position: sticky;
        bottom: 0;
        margin-top: 20px;
        padding: 12px 0 4px;
        background: var(--color-surface);
        z-index: 5;
    }
    .match-side-by-side__grid {
        grid-template-columns: 1fr;
    }
}

.privacy-banner {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 24px;
    line-height: 1.5;
}

.privacy-banner::before {
    width: 10px;
    height: 10px;
    margin-top: 6px;
    flex: 0 0 10px;
    border-radius: 50%;
    background: var(--color-accent);
    box-shadow: 0 0 0 4px rgba(13, 148, 136, 0.18);
}

.admin-content .card:hover {
    border-color: var(--color-border);
}

.admin-content .dashboard-content--form .listing-edit-form.form-card,
.admin-content .listing-edit-form.form-card {
    max-width: none;
    margin: 0;
    padding: 28px;
}

.form-hint--required {
    margin: 0 0 20px;
}

.form-group select {
    appearance: none;
    -webkit-appearance: none;
    background-color: var(--color-surface);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' stroke='%2364748b' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-size: 12px;
    padding-right: 40px;
    cursor: pointer;
}

.form-group input.invalid,
.form-group select.invalid,
.form-group textarea.invalid,
input.invalid,
select.invalid,
textarea.invalid {
    border-color: var(--color-danger);
    box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.12);
}

.auth-card--wide {
    max-width: 640px;
}

.role-card p {
    font-size: 0.85rem;
    color: var(--color-text-muted);
    margin-top: 4px;
    font-weight: 400;
}

.auth-card .form-actions,
.auth-card .form-actions__primary {
    width: 100%;
    justify-content: stretch;
}

.auth-card .form-actions__primary .btn {
    width: 100%;
}

.form-actions--stacked .form-actions__primary {
    width: 100%;
    flex-direction: column;
}

.admin-table th.table-actions,
.admin-table td.table-actions,
td.table-actions {
    display: table-cell;
    vertical-align: middle;
    text-align: right;
    white-space: nowrap;
    width: 1%;
}

.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 {
    display: inline-block;
    vertical-align: middle;
}

.admin-table td.table-actions > :first-child {
    margin-left: 0;
}

.muted {
    color: var(--color-text-muted);
    font-size: 0.85rem;
}

.match-board {
    display: grid;
    gap: 20px;
}

.match-pair {
    display: grid;
    grid-template-columns: 1fr 96px 1fr;
    gap: 16px 20px;
    border: 1px solid var(--color-border);
    padding: 20px;
    background: var(--color-bg-alt);
}

.match-side {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: 3px;
    padding: 16px 18px;
}

.match-side h3 {
    margin: 6px 0 8px;
    font-size: 1.05rem;
}

.match-score {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    align-self: center;
    width: 88px;
    height: 88px;
    margin: 0 auto;
    border-radius: 50%;
    background: var(--color-white);
    border: 2px solid var(--color-accent);
    box-shadow: 0 0 0 6px rgba(13, 148, 136, 0.12);
}

.match-score strong {
    font-size: 1.35rem;
    line-height: 1;
}

.match-score span {
    font-size: 0.75rem;
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.match-reasons {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.match-reasons li {
    background: var(--color-accent-soft);
    border-radius: 3px;
    padding: 4px 10px;
    font-size: 0.8rem;
}

.match-actions {
    grid-column: 1 / -1;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    margin-top: 16px;
}

.match-action-form {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    margin: 16px 0 0;
    max-width: 100%;
}

.match-card .match-action-form,
.match-actions .match-action-form {
    margin-top: 0;
}

.match-action-form .form-group {
    width: 100%;
    margin: 0;
}

.match-actions__buttons {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}

.match-actions__buttons .btn {
    width: auto;
    margin: 0;
    white-space: nowrap;
}

.match-actions__buttons--stacked {
    flex-direction: column;
    align-items: stretch;
    margin-top: 8px;
}

.match-actions__buttons--stacked .btn {
    width: 100%;
    white-space: normal;
}

.match-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 16px;
    margin: 12px 0 0;
    color: var(--color-text-muted);
    font-size: 0.85rem;
}

.match-meta .badge {
    margin-left: 4px;
    vertical-align: middle;
}

.match-card {
    border: 1px solid var(--color-border);
    padding: 20px;
    margin-bottom: 16px;
    background: var(--color-white);
}

.match-card:last-child {
    margin-bottom: 0;
}

.match-card__header {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    margin-bottom: 8px;
}

.match-card__header h2 {
    margin: 0;
    font-size: 1.1rem;
}

.match-card__header .badge {
    flex-shrink: 0;
}

.detail-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 12px;
    margin: 16px 0;
}

.detail-list dt {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-muted);
}

.detail-list dd {
    margin: 2px 0 0;
    font-weight: 600;
}

.footer-ico img {
    height: 36px;
    width: auto;
    margin-top: 12px;
}

.process-steps {
    list-style: none;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
    padding: 8px 0 0;
    margin: 0;
    counter-reset: step;
}

.process-steps li {
    counter-increment: step;
    margin: 0;
    padding: 16px;
    background: var(--color-bg-alt);
    border: 1px solid var(--color-border);
    border-radius: 3px;
    color: var(--color-text-muted);
    font-size: 0.88rem;
    line-height: 1.45;
}

.process-steps li::before {
    content: counter(step);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    margin: 0 0 10px;
    border-radius: 50%;
    background: var(--color-primary);
    color: #fff;
    font-size: 0.72rem;
    font-weight: 700;
}

.process-steps strong {
    color: var(--color-text);
    display: block;
    margin: 0 0 4px;
    font-size: 0.95rem;
}

.timeline {
    padding-left: 18px;
    color: var(--color-text-muted);
    font-size: 0.9rem;
}

.timeline li {
    margin: 4px 0;
}

@media (max-width: 1100px) {
    .process-steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .match-pair {
        grid-template-columns: 1fr;
    }
    .match-score {
        flex-direction: column;
        width: 72px;
        height: 72px;
    }
    .process-steps {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    .match-actions__buttons {
        flex-direction: column;
        align-items: stretch;
    }
    .match-actions__buttons .btn {
        width: 100%;
        justify-content: center;
        white-space: normal;
    }
}

.placeholder-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 8px;
}

.placeholder-chip {
    font: inherit;
}

.placeholder-chip:hover {
    border-color: var(--color-accent);
    background: var(--color-accent-soft);
}

.email-preview-card {
    margin-top: 24px;
}

.email-preview-frame {
    width: 100%;
    min-height: 480px;
    border: 1px solid var(--color-border);
    border-radius: 3px;
    background: #f8fafc;
}

.email-preview-frame--newsletter {
    min-height: 640px;
    background: #0f172a;
}

.newsletter-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(280px, 0.9fr);
    gap: 24px;
    align-items: start;
}

.newsletter-preview-wrap .form-section-title {
    margin-top: 0;
}

.newsletter-preview-wrap .role-card p {
    margin-top: 4px;
}

.newsletter-locations {
    margin: 4px 0 8px;
}

.newsletter-locations[hidden] {
    display: none !important;
}

.newsletter-locations .form-hint {
    grid-column: 1 / -1;
}

@media (max-width: 1100px) {
    .newsletter-layout {
        grid-template-columns: 1fr;
    }
}

.home-search {
    margin: 8px 0 22px;
}

.home-search__row {
    display: grid;
    grid-template-columns: minmax(12rem, 1fr) max-content auto;
    gap: 10px;
    align-items: center;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: 3px;
    padding: 10px;
    box-shadow: var(--shadow-sm);
}

.home-search input,
.home-search select {
    width: 100%;
    border: 1px solid var(--color-border);
    border-radius: 3px;
    padding: 12px 14px;
    font: inherit;
    background: var(--color-surface);
}

.home-search select {
    width: auto;
    min-width: 15.75rem;
    padding-right: 40px;
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' stroke='%2364748b' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-size: 12px;
    cursor: pointer;
    white-space: nowrap;
}

.home-search .btn {
    white-space: nowrap;
}

.search-filters {
    margin-top: 24px;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: 3px;
    padding: 20px;
}

.search-filters__row {
    margin-bottom: 8px;
}

.search-filters__row:last-child {
    margin-bottom: 0;
}

.search-filters__submit {
    align-items: flex-end;
}

.search-count {
    margin: 0 0 20px;
    color: var(--color-text-muted);
}

.listing-card {
    display: flex;
    flex-direction: column;
    min-height: 100%;
}

.listing-card__media {
    position: relative;
}

.listing-card__kind {
    position: absolute;
    top: 12px;
    left: 12px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.listing-card__body {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.listing-card__price {
    margin: 0;
}

.listing-card__price span {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--color-text-muted);
}

.listing-card__meta {
    margin: 0;
}

.listing-detail__layout {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(280px, 0.7fr);
    gap: 32px;
    align-items: start;
}

.listing-detail__media {
    position: relative;
    border-radius: 3px;
    overflow: hidden;
    background: var(--color-accent-soft);
    margin-bottom: 18px;
}

.listing-detail__media img {
    width: 100%;
    display: block;
}

.listing-detail__price {
    font-size: 1.6rem;
}

.listing-detail__facts {
    margin: 16px 0 24px;
}

.listing-detail__features {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 18px;
}

.listing-detail__features span {
    border: 1px solid var(--color-border);
    border-radius: 3px;
    padding: 6px 12px;
    font-size: 0.85rem;
    font-weight: 600;
}

.listing-detail__aside .form-card {
    position: sticky;
    top: 24px;
}

.enquiry-thread {
    display: grid;
    gap: 12px;
}

.enquiry-message {
    border: 1px solid var(--color-border);
    border-radius: 3px;
    padding: 14px 16px;
    background: var(--color-bg-alt);
}

.enquiry-message--mine {
    background: var(--color-accent-soft);
    border-color: rgba(13, 148, 136, 0.35);
}

.enquiry-message__meta {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 6px;
    font-size: 0.85rem;
    color: var(--color-text-muted);
}

.enquiry-message p {
    margin: 0;
    white-space: pre-wrap;
}

@media (max-width: 960px) {
    .home-search__row,
    .search-filters__row,
    .listings-grid,
    .listings-grid--compact,
    .listing-detail__layout {
        grid-template-columns: 1fr;
    }
    .home-search select {
        width: 100%;
        min-width: 0;
    }
    .listing-detail__aside .form-card {
        position: static;
    }
}

:root {
    --sl-footer: #1e293b;
    --sl-lime: #0D9488;
    --sl-lime-light: #2DD4BF;
    --sl-lime-dark: #0F766E;
    --sl-lime-deep: #115E59;
    --sl-lime-rgb: 13, 148, 136;
    --sl-soft: rgba(var(--sl-ink-rgb), 0.06);
    --sl-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.04);
    --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;
}

.site-header {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

.header-inner {
    align-items: center;
}

.main-nav a:not(.nav-cta):not(.nav-btn-outline):not(.nav-logout) {
    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 {
    opacity: 1;
}

.nav-cta,
.main-nav .nav-dashboard {
    margin-left: 4px;
    font-weight: 600 !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;
        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;
    }
}

.btn {
    min-height: 46px;
    padding: 12px 22px;
    font-size: 0.95rem;
}

.btn-sm {
    min-height: 36px;
    padding: 7px 14px;
    font-size: 0.875rem;
}

.btn-lg {
    min-height: 52px;
    padding: 14px 26px;
    font-size: 1rem;
}

.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 {
    font-weight: 600;
}

.btn-white {
    color: var(--sl-ink);
}

.btn-outline-white {
    border-color: rgba(255, 255, 255, 0.4);
}

.eyebrow,
.section-tag,
.hero-tag {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 18px;
}

.eyebrow .dot,
.section-tag::before,
.hero-tag::before {
    content: '';
    flex: 0 0 10px;
    border-radius: 50%;
}

.eyebrow .dot + * {
    margin: 0;
}

.eyebrow:has(.dot)::before {
    content: none;
}

.section-head,
.section-header {
    text-align: left;
    max-width: none;
    margin: 0 0 40px;
}

.section-head h2,
.section-header h2 {
    font-weight: 700;
    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);
}

.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-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: 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-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;
}

.feature::before,
.feature-card::before {
    content: '';
    position: absolute;
    top: -1px;
    left: 26px;
    width: 36px;
    height: 3px;
    background: var(--sl-lime);
    border-radius: 3px;
}

.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;
    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;
    line-height: 1.6;
    white-space: normal;
}

.feature-card h3 {
    font-size: 1.15rem;
    font-weight: 700;
}

.pricing-card {
    position: relative;
}

.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);
}

.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%);
}

.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);
}

.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-weight: 700;
}

.footer-col a {
    display: block;
    margin: 0 0 10px;
}

.site-footer .footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    padding: 20px 0;
    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;
}

@media (max-width: 992px) {
    .site-footer .footer-brand {
        grid-column: 1 / -1;
    }
}

.cookie-consent {
    border-radius: 3px;
}

.hero .eyebrow {
    color: var(--sl-ink);
}

.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;
    }
}

.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;
}

.about-mission {
    max-width: none;
    text-align: left;
    padding: 28px;
    border-radius: 3px;
}

.about-mission__links {
    justify-content: flex-start;
}

.partnership-hero__head {
    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-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-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-section {
    position: relative;
    overflow: hidden;
    border-top: 1px solid var(--sl-border);
    border-bottom: 1px solid var(--sl-border);
    background-color: #F0FDFA;
    background-repeat: no-repeat, no-repeat;
    background-size: 100% 100%, auto 100%;
    background-position: left top, right bottom;
}

.cta-section .cta-inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 14px;
}

.cta-section .cta-inner > * {
    max-width: 560px;
}

.cta-section h2,
.cta-section .cta-text h2 {
    margin: 0;
    font-size: clamp(1.6rem, 2.6vw, 2.1rem);
    letter-spacing: -0.03em;
}

.cta-section p,
.cta-section .cta-text p {
    margin: 0;
}

.cta-section .hero-actions,
.cta-section .cta-actions {
    margin: 8px 0 0;
    gap: 10px;
}

@media (max-width: 768px) {
    .cta-section {
        background-image: none;
        background-size: auto 150px;
        background-position: center bottom;
        padding-bottom: 170px;
    }
}

.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;
    }
}

.site-header .header-inner {
    height: var(--header-h);
}

.main-nav a:not(.nav-cta):not(.nav-btn-outline):not(.nav-logout) {
    padding: 4px 0;
    align-self: center;
}

.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;
}

@media (max-width: 768px) {
    .site-header .header-inner {
        padding: 8px var(--layout-gutter);
    }
}

.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-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;
    }
}

.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-repeat: no-repeat, repeat-x;
    background-size: 100% 100%, auto clamp(150px, 16vw, 240px);
    background-position: top, center bottom;
}

.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;
    }
}

.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));
    }
}

.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%;
}

.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;
}

.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;
    }
}

: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);
    }
}

.admin-sidebar {
    border-right: 0;
    box-shadow: none;
}

.admin-sidebar-brand {
    gap: 12px;
}

.admin-logo {
    margin: 0;
}

.admin-logo .logo-img {
    width: auto;
}

.admin-badge {
    margin: 0;
    padding: 0;
    background: none;
    border-radius: 0;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    letter-spacing: 0.1em;
}

.admin-badge::before {
    content: '';
    border-radius: 50%;
}

.admin-sidebar-nav a {
    position: relative;
    display: flex;
    align-items: center;
}

.admin-sidebar-nav a i {
    text-align: center;
    transition: color var(--transition);
}

.admin-sidebar-nav a:hover i {
    color: #ffffff;
}

.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 {
    background: transparent;
    display: grid;
    gap: 2px;
}

.admin-sidebar-foot__link {
    display: flex;
    align-items: center;
    gap: 12px;
    font-weight: 500;
}

.admin-sidebar-foot__link i {
    text-align: center;
}

@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;
    }
}

.admin-topbar {
    padding: 14px var(--layout-gutter);
    backdrop-filter: none;
}

.admin-topbar h1 {
    color: var(--sl-ink);
}

.dashboard-nav-toggle {
    width: 42px;
    height: 42px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--sl-border);
    background: #ffffff;
}

.dashboard-nav-toggle span {
    width: 18px;
    background: var(--sl-ink);
}

.privacy-banner {
    border-left: 3px solid var(--sl-lime);
}

.privacy-banner::before {
    content: none;
}

.stat-cards {
    margin-bottom: 24px;
}

.stat-card {
    position: relative;
}

.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);
    line-height: 1.1;
    margin-bottom: 4px;
}

.admin-content .card {
    margin-bottom: 20px;
}

.admin-content .card > h2:first-child,
.admin-content .card h2 {
    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;
}

.table-wrap {
    border: 1px solid var(--sl-border);
    overflow-x: auto;
}

.admin-table td {
    font-size: 0.92rem;
}

.admin-table tr:hover td {
    background: #F0FDFA;
}

.admin-table .muted {
    color: var(--sl-muted);
}

.btn-link {
    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);
}

.empty-state h3 {
    color: var(--sl-ink);
}

.empty-state p {
    max-width: 520px;
    margin: 0 auto 16px;
}

.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[type=checkbox],
input[type=radio] {
    accent-color: var(--sl-lime-dark);
}

.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;
}

.people-toolbar {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
}

.people-toolbar h2 {
    margin-bottom: 4px;
}

.people-toolbar .form-hint {
    margin: 0;
}

.people-search {
    align-items: center;
}

@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-height: 38px;
    padding: 8px 12px;
    border: 1px solid var(--sl-border);
    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;
    }
}

.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 {
    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;
}

.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 {
    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 {
    padding: 6px 30px 6px 10px;
    border: 1px solid var(--sl-border);
    font: inherit;
    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;
}

.stat-card--link:hover {
    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;
}

.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-actions {
    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;
}

.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;
}

.admin-logo .logo-img {
    max-width: 216px;
}

.admin-sidebar .admin-logo .logo-img {
    height: 60px !important;
    max-height: none !important;
    width: auto !important;
    max-width: 216px !important;
}

.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);
}

.form-section-title {
    padding-top: 20px;
}

.form-section-title:first-of-type {
    padding-top: 0;
}

.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%;
    }
}

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-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 {
    flex-wrap: wrap;
}

.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;
    height: 44px;
    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;
    border-color: var(--sl-ink);
}

.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;
    gap: 6px;
}

.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-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;
}

.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;
}

.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-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;
}

.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;
}

label.epc-option {
    background: transparent !important;
    color: inherit;
}

.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));
    }
}

.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;
}

.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;
    }
}

.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;
}

: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;
}

.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;
}

.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;
}

.cell-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 6px;
}

.admin-table td .btn-xs {
    white-space: nowrap;
}

.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;
}

.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;
}

.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%;
    }
}

.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-card {
    transition: box-shadow .15s, transform .15s;
}

.area-card:hover {
    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;
    }
}

.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-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-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 > 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-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;
    }
}

.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;
}

.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;
}

.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);
}

.invoice-card {
    margin-top: 20px;
}

.invoice-card .row-actions {
    flex-wrap: wrap;
}

.invoice-card form {
    margin: 0;
}

.dash-period {
    margin-bottom: 16px;
}

.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 {
    flex-direction: column;
}

.funnel__label {
    font-size: 0.88rem;
}

.funnel__value {
    font-weight: 700;
    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-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;
}

.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;
    }
}

.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);
}

.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);
}

.site-footer .footer-intro a {
    color: #ffffff;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}

:root {
    --sr-teal: #0D9488;
    --sr-teal-700: #0F766E;
    --sr-teal-800: #115E59;
    --sr-teal-900: #134E4A;
    --sr-teal-950: #042F2E;
    --sr-teal-300: #5EEAD4;
    --sr-teal-50: #F0FDFA;
    --sl-hero-wash: rgba(13, 148, 136, 0.08);
}

.sr-service-bar {
    color: rgba(255,255,255,0.82);
}

.sr-service-bar .container {
    display: flex;
    align-items: center;
}

.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;
    }
}

.btn-primary,
.nav-cta.btn-primary {
    border-color: var(--sr-teal-700);
}

.text-primary {
    color: var(--sr-teal-700);
}

.eyebrow .dot,
.section-tag::before,
.hero-tag::before {
    width: 8px;
    height: 8px;
    flex-basis: 8px;
    box-shadow: none;
    background: var(--sr-teal);
}

.section-head h2,
.section-header h2 {
    letter-spacing: -0.02em;
}

.hero.hero--home.hero--rooms {
    padding: clamp(40px, 6vw, 80px) 0 clamp(48px, 6vw, 88px);
}

.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);
}

.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);
    padding: 10px;
    max-width: 620px;
}

.sr-search__row {
    display: grid;
    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;
    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 .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 {
    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;
    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;
    display: grid;
    place-items: center;
}

.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;
    }
}

.feature::before,
.pricing-card::before,
.access-card::before {
    display: none !important;
}

.pricing-card__features li::before {
    color: var(--sr-teal-700);
}

.cta-section {
    color: #ffffff;
    border: 0;
    padding: clamp(56px, 7vw, 88px) 0 !important;
}

.cta-section h2,
.cta-section .cta-text h2 {
    color: #ffffff;
}

.cta-section .cta-inner {
    min-height: 0;
}

.cta-section .btn-white,
.cta-section .btn-accent {
    background: #ffffff;
    border-color: #ffffff;
}

.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;
    color: #ffffff;
}

.cta-section .btn-outline-white:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: #ffffff;
    color: #ffffff;
}

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

.site-footer .footer-bottom {
    border-top-color: rgba(255, 255, 255, 0.1);
}

.site-footer .footer-intro a {
    text-decoration-color: var(--sr-teal-300);
}

.main-nav .nav-cta,
.main-nav a.nav-cta.btn-primary {
    color: #ffffff;
    border-radius: 3px;
}

.main-nav .nav-cta:hover {
    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;
}

.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;
}

.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 {
    border-color: var(--sr-teal-800) !important;
}

.stat-card .value--date {
    font-size: 1.25rem;
}

.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;
}

.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));
    }
}

.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;
}

.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 {
    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 {
    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;
}

.btn-row,
.hero-actions,
.cta-actions,
.form-actions,
.form-actions__primary,
.form-actions__secondary,
.search-gate__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 > 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;
}

.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 {
    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-content {
    min-width: 0;
}

.admin-main {
    min-width: 0;
    overflow-x: hidden;
}

.photo-upload {
    margin-top: 12px;
}

.photo-grid {
    margin-top: 12px;
}

.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;
}

.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 {
    height: 38px;
}

.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;
}

.listings-grid,
.listings-grid--compact {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
}

.listing-card h3 {
    line-height: 1.35;
}

.listing-card__lock {
    margin-top: auto;
    padding-top: 10px;
}

.listing-card__body {
    flex: 1;
}

@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;
    }
}

@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__intro {
    padding: clamp(24px, 3vw, 36px) 0 !important;
}

.faq-page__intro .split-about {
    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;
    }
}

.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;
}

@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;
    }
}

.benefits-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 8px 0 18px;
}

.benefit-option {
    align-items: center;
    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;
    }
}

.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-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;
    }
}

@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-hero {
    padding: clamp(40px, 6vw, 80px) 0;
}

.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;
}

.about-story__visual img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
}

.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-hero {
    text-align: center;
}

.pricing-hero h1 {
    letter-spacing: -0.03em;
    margin: 0 0 12px;
}

.pricing-hero__lead {
    margin: 0 auto;
    line-height: 1.6;
    color: var(--sl-muted);
}

.pricing-plans {
    padding-top: 0 !important;
}

.plan-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0 auto;
    align-items: stretch;
}

.plan {
    position: relative;
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid var(--sl-border);
    border-radius: 3px;
}

.plan--featured {
    border: 2px solid var(--sr-teal);
}

.plan__badge {
    position: absolute;
    right: 24px;
    border-radius: 3px;
    background: var(--sr-teal-700);
    color: #fff;
    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;
    display: grid;
    place-items: center;
    border-radius: 3px;
    background: var(--sr-teal-50);
    color: var(--sr-teal-700);
}

.plan--featured .plan__icon {
    background: var(--sr-teal-700);
    color: #fff;
}

.plan__name {
    margin: 0;
}

.plan__for {
    margin: 2px 0 0;
    color: var(--sl-muted);
}

.plan__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    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;
}

.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;
    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;
    color: var(--sl-muted);
}

.pricing-faq__more {
    margin: 18px 0 0;
    color: var(--sl-muted);
}

@media (max-width: 800px) {
    .plan-grid {
        grid-template-columns: 1fr;
    }
    .plan {
        padding: 24px;
    }
    .pricing-plans {
        margin-top: -80px;
    }
}

.plan__list,
.about-audience__card ul {
    align-content: start;
}

.register-page {
    padding: clamp(32px, 5vw, 64px) 0;
}

.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-hero {
    padding: clamp(28px, 4vw, 44px) 0 clamp(84px, 9vw, 100px);
}

.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 {
    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__list {
    gap: 8px;
    font-size: 0.92rem;
}

.plan__cta {
    margin-top: 2px;
}

.plan .btn-block {
    min-height: 42px;
}

.pricing-faq {
    padding: clamp(36px, 4vw, 52px) 0 !important;
}

.pricing-faq .section-head {
    margin-bottom: 20px;
}

.pricing-faq .section-head h2 {
    font-size: clamp(1.3rem, 2.2vw, 1.6rem);
}

.pricing-faq summary {
    padding: 13px 18px;
    font-size: 0.95rem;
}

.pricing-faq details p {
    padding: 0 18px 14px;
    font-size: 0.93rem;
}

.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;
    }
}

.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;
}

.admin-content table a:not(.btn),
.admin-content table .btn-link,
.admin-content table .btn-link-danger {
    border: 1px solid rgba(15, 118, 110, 0.4);
    border-radius: 3px;
    background: #fff;
    color: var(--sr-teal-800) !important;
    font: inherit;
    font-weight: 700;
    text-decoration: none !important;
    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 table .btn-sm {
    min-height: 32px !important;
    padding: 5px 12px !important;
    font-size: 0.82rem !important;
}

.admin-tab:hover {
    border-color: var(--sr-teal);
}

.admin-tab.is-active {
    border-color: var(--sr-teal-700);
}

.admin-alert {
    flex-wrap: wrap;
    margin: 0 0 18px;
}

.admin-alert i {
    color: #F59E0B;
}

.admin-alert > div {
    min-width: 220px;
}

.stat-card--link {
    text-decoration: none;
    color: inherit;
}

.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 {
    grid-template-columns: minmax(0, 2fr) repeat(2, minmax(0, 1fr)) auto;
}

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-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;
}

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;
    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;
}

.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;
}

.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;
}

.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;
}

.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 label {
    cursor: pointer;
}

.dwelling-group legend .req {
    color: #dc2626;
    font-weight: 700;
}

.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);
}

.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;
}

: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;
}

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 {
    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;
}

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;
}

table td .badge {
    margin: 0 4px 4px 0 !important;
}

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-table td.table-actions {
    white-space: normal;
    width: 1%;
    text-align: right;
}

.admin-listings-table td.table-actions > * {
    margin: 0 0 6px 6px !important;
}

.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-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;
}

.listings-grid--rows .listing-card {
    display: grid;
}

.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;
    color: #475569;
    line-height: 1.5;
}

.listings-grid--rows .listing-card__row-meta {
    color: var(--sl-muted);
}

.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);
}

.listing-card__cta {
    display: none;
}

.listings-grid--rows .listing-card {
    align-items: stretch;
}

.listings-grid--rows .listing-card__body {
    row-gap: 0;
    align-content: start;
}

.listings-grid--rows .listing-card__body > h3 {
    grid-area: title;
}

.listings-grid--rows .listing-card__meta {
    grid-area: meta;
}

.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 {
    align-self: start;
    margin: 0;
    text-align: right;
    display: flex;
}

.listings-grid--rows .listing-card__row-meta {
    align-self: end;
    justify-self: stretch;
    display: flex;
    padding-top: 56px;
}

.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__price {
        justify-content: flex-start;
        margin-bottom: 4px;
    }
    .listings-grid--rows .listing-card__row-meta {
        grid-area: side;
        align-items: flex-start;
        flex-direction: row;
        flex-wrap: wrap;
        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.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;
    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;
}

.listings-grid--rows .listing-card__price .price-kind {
    margin-left: 0;
}

.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;
    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__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;
    }
    .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;
    white-space: nowrap;
}

.listings-grid--rows .listing-card__lock {
    display: none;
}

.plan-grid {
    max-width: 920px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.pricing-faq > .container,
.pricing-faq__inner {
    max-width: calc(920px + 2 * var(--container-pad, 36px)) !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.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 {
    margin: 4px 0 10px;
}

.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-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;
}

.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-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;
    }
}

.perf-cell span {
    white-space: nowrap;
}

.perf-cell i {
    width: 16px;
    color: var(--sr-teal-700);
}

.trend-up {
    color: #15803d;
    font-weight: 800;
}

.trend-down {
    color: #b91c1c;
    font-weight: 800;
}

.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-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 9px;
    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;
}

.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 i {
    color: #DC2626;
}

.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 {
    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-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;
}

.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-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;
    }
}

.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);
    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 {
    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);
}

.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;
}

#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;
    }
}

.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-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;
}

.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;
}

.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;
}

.guide-tabs {
    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;
    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);
    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-sources {
    font-size: .88rem;
    color: var(--sl-muted);
    border-top: 1px solid var(--sl-border);
    padding-top: 12px;
    margin-top: 24px;
}

.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-calc {
    display: grid;
    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 li {
    margin-bottom: 6px;
}

@media (max-width: 900px) {
    .form-row--4 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.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;
}

.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;
}

.inline-search {
    display: flex;
    gap: 8px;
    max-width: 460px;
    margin-top: 16px;
}

.inline-search input {
    flex: 1;
}

.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-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-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;
}

.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;
}

.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 {
    border: 1px solid var(--sl-border);
    padding: 12px 14px;
    font-size: .82rem;
    overflow-x: auto;
    white-space: pre;
}

.funnel__row {
    display: grid;
    grid-template-columns: 110px minmax(0, 1fr) 120px;
    gap: 4px 14px;
    align-items: center;
}

.funnel__n {
    font-weight: 800;
}

.funnel__hint {
    grid-column: 2 / -1;
    font-size: .8rem;
    margin-top: -4px;
}

.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-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;
    }
}

.guides-intro .guide-tabs {
    margin-top: 14px;
}

.guide-hero .breadcrumbs {
    margin-bottom: 10px;
}

.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-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;
}

.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 p,
.guide-body li {
    color: var(--sl-ink);
}

.guide-body h2 {
    scroll-margin-top: 20px;
}

.guide-body h2:first-child {
    margin-top: 0;
}

.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 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;
    }
}

@media (max-width: 768px) {
    .site-header .header-inner {
        min-height: 0;
    }
}

.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-body h3 {
    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;
}

.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-detail .listing-detail__main .listing-top__details h1 {
    font-size: 22.4px;
    line-height: 1.25;
}

.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 {
    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;
    }
}

.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;
    }
}

.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-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;
    }
}

.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;
}

.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;
    }
}

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;
}

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;
}

.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-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;
    }
}

.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;
}

.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;
    }
}

.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: 210px minmax(0, 1fr);
    gap: 48px;
    align-items: start;
}

.dev-guide__nav {
    position: sticky;
    top: 90px;
    display: flex;
    flex-direction: column;
    gap: 1px;
    border-left: 2px solid var(--sl-border);
    max-height: calc(100vh - 110px);
    overflow-y: auto;
}

.dev-guide__nav a {
    padding: 4px 12px;
    color: var(--sl-muted);
    text-decoration: none;
    font-size: .9rem;
    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__nav-label {
    padding: 14px 12px 4px;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--sl-ink);
}

.dev-guide__nav-label:first-child {
    padding-top: 0;
}

.dev-guide__body {
    max-width: 860px;
    min-width: 0;
    width: 100%;
}

.dev-section {
    padding: 36px 0 0;
    margin: 36px 0 0;
    border-top: 1px solid var(--sl-border);
    scroll-margin-top: 90px;
}

.dev-section:first-child {
    padding-top: 0;
    margin-top: 0;
    border-top: 0;
}

.dev-section > h2 {
    margin: 0 0 14px;
}

.dev-section h3 {
    margin: 26px 0 10px;
    font-size: 1.08rem;
}

.dev-section > p,
.dev-section > ul,
.dev-section > ol {
    margin: 0 0 14px;
}

.dev-section > ul,
.dev-section > ol {
    padding-left: 1.3rem;
}

.dev-section > :last-child {
    margin-bottom: 0;
}

.dev-section .table-wrap {
    margin: 0 0 14px;
}

.dev-section .dev-cards {
    margin: 0 0 16px;
}

.dev-guide__body pre.code-block {
    overflow-x: auto;
    white-space: pre;
    font-size: .84rem;
    line-height: 1.5;
    margin: 0 0 14px;
    max-width: 100%;
}

.dev-guide__body li {
    margin-bottom: 6px;
}

.dev-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 16px 0 0;
}

.dev-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 14px;
}

.dev-card {
    padding: 16px;
}

.dev-card h3 {
    font-size: 1rem;
    margin: 0 0 6px;
    display: flex;
    gap: 8px;
    align-items: baseline;
}

.dev-card p {
    margin: 0;
}

.dev-method {
    display: inline-block;
    min-width: 58px;
    text-align: center;
    font: 700 .72rem/1 ui-monospace, SFMono-Regular, Menlo, monospace;
    padding: 4px 6px;
    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;
}

.dev-endpoints td:first-child,
.dev-endpoints td:last-child {
    white-space: nowrap;
}

@media (max-width: 860px) {
    .dev-guide {
        grid-template-columns: 1fr;
        gap: 24px;
    }
    .dev-guide__nav {
        position: static;
        flex-direction: row;
        flex-wrap: wrap;
        border-left: 0;
        max-height: none;
    }
    .dev-guide__nav a {
        border-left: 0;
        padding: 4px 8px;
    }
    .dev-guide__nav-label {
        flex-basis: 100%;
        padding: 10px 8px 2px;
    }
    .dev-cards {
        grid-template-columns: 1fr;
    }
}

.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;
    }
}

.settings-form > .form-actions {
    margin-bottom: 30px;
}

.api-keys-table tr.is-new td {
    background: rgba(var(--sl-lime-rgb), .08);
}

.partner-webhook-form {
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid var(--sl-border);
}

fieldset.form-group {
    border: 0;
    padding: 0;
    margin: 0 0 18px;
    min-width: 0;
}

fieldset.form-group > legend {
    padding: 0;
    margin: 0 0 8px;
    font-weight: 600;
    font-size: .9rem;
    color: var(--sl-ink);
}

fieldset.form-group > br {
    display: none;
}

fieldset.form-group > label.checkbox-inline:has(> input[type="checkbox"]),
fieldset.form-group > .checkbox-inline {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 8px;
    font-weight: 400;
    cursor: pointer;
}

fieldset.form-group > .checkbox-inline:last-of-type {
    margin-bottom: 0;
}

fieldset.form-group > .checkbox-inline input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin: 0;
    flex: 0 0 auto;
}

.listing-source {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 9px;
    background: #EFF6FF;
    border: 1px solid #BFDBFE;
    color: #1E40AF;
    font-size: 0.8rem;
    font-weight: 700;
    white-space: nowrap;
}

.listing-source--sm {
    padding: 1px 6px;
    font-size: 0.72rem;
    margin-left: 4px;
}

:root {
    --sl-ink: #16241F;
    --sl-ink-hover: #22362F;
    --sl-ink-rgb: 22, 36, 31;
    --sl-body: #343B37;
    --sl-muted: #67716B;
    --sl-border: #EDE6D9;
    --sl-border-strong: #DCD2BF;
    --sl-cream: #FBF8F3;
    --sl-tile: #F3EFE6;
    --sr-sand: #F6F2EA;
    --sl-bg-muted: #F6F2EA;
    --sl-radius: 6px;
    --radius: 6px;
    --radius-sm: 6px;
    --radius-md: 6px;
    --radius-lg: 8px;
    --sl-shadow-md: 0 12px 30px -12px rgba(58, 48, 28, 0.18);
    --sr-btn-top: #129C8E;
    --sr-btn-bottom: #0F766E;
}

body:not(.admin-body) {
    background: var(--sl-cream);
    color: var(--sl-body);
    letter-spacing: -0.01em;
}

h1,
h2,
h3,
h4 {
    color: var(--sl-ink);
}

h1 {
    font-weight: 800;
    letter-spacing: -0.035em;
}

h2 {
    font-weight: 800;
    letter-spacing: -0.02em;
}

h3 {
    font-weight: 750;
    letter-spacing: -0.02em;
}

p {
    color: inherit;
}

.sr-service-bar {
    background: var(--sl-ink);
}

.site-header {
    background: #ffffff;
    border-bottom: 0;
}

.main-nav a:not(.nav-cta):not(.nav-btn-outline):not(.nav-logout) {
    color: var(--sl-muted);
    font-weight: 500;
    font-size: 0.92rem;
    opacity: 1;
}

.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(--sr-teal-700, #0F766E);
    font-weight: 500;
}

.main-nav a:not(.nav-cta):not(.nav-btn-outline):not(.nav-logout).active::after {
    height: 2px;
    border-radius: 0;
    background: var(--sr-teal-700, #0F766E);
}

.nav-cta,
.main-nav .nav-dashboard {
    background: linear-gradient(var(--sr-btn-top), var(--sr-btn-bottom)) !important;
    border: 1px solid var(--sr-btn-bottom) !important;
    color: #ffffff !important;
    box-shadow: 0 8px 18px -8px rgba(15, 118, 110, 0.55) !important;
}

.main-nav .nav-cta:hover,
.main-nav .nav-dashboard:hover {
    background: linear-gradient(#0F877B, #0B5F58) !important;
}

.main-nav .nav-btn-outline,
.main-nav .nav-logout {
    border-radius: 6px !important;
    border-color: var(--sl-border-strong) !important;
    color: var(--sl-ink) !important;
    background: #fff !important;
}

.btn,
.btn-sm,
.btn-lg {
    font-weight: 600;
    letter-spacing: -0.01em;
}

.btn-primary,
.nav-cta.btn-primary {
    background: linear-gradient(var(--sr-btn-top), var(--sr-btn-bottom));
    border: 1px solid var(--sr-btn-bottom);
    color: #ffffff;
    box-shadow: 0 8px 18px -8px rgba(15, 118, 110, 0.55);
}

.btn-primary:hover,
.btn-primary:focus-visible {
    background: linear-gradient(#0F877B, #0B5F58);
    border-color: #0B5F58;
    color: #ffffff;
}

.btn-secondary,
.btn-outline,
.btn-ghost {
    background: #ffffff;
    border-color: var(--sl-border-strong);
    color: var(--sl-ink);
    box-shadow: none;
}

.btn-secondary:hover,
.btn-outline:hover,
.btn-ghost:hover {
    background: var(--sl-cream);
    border-color: #C9BDA5;
    color: var(--sl-ink);
}

.btn-danger {
    border-radius: 6px;
}

.eyebrow,
.section-tag,
.hero-tag {
    padding: 0;
    background: none;
    border: 0;
    border-radius: 0;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.eyebrow .dot,
.section-tag::before,
.hero-tag::before {
    display: none;
}

.hero--rooms .hero-title {
    font-weight: 800;
    letter-spacing: -0.035em;
    line-height: 1.08;
}

.hero--rooms .hero-subtitle {
    color: var(--sl-body);
    font-size: 1.15rem;
    line-height: 1.6;
}

.sr-search {
    border-color: var(--sl-border);
    box-shadow: 0 18px 40px -18px rgba(58, 48, 28, 0.25);
}

.sr-search input,
.sr-search select {
    background: var(--sl-cream);
}

.section {
    border-bottom: 0;
}

.card,
.form-card,
.feature,
.feature-card,
.pricing-card,
.access-card,
.listing-card,
.dev-card,
.stat-card {
    border: 1px solid var(--sl-border);
}

.card,
.form-card,
.feature,
.feature-card,
.pricing-card,
.access-card,
.listing-card,
.dev-card {
    background: #ffffff;
}

.listing-card {
    overflow: hidden;
}

.feature::before,
.feature-card::before,
.pricing-card::before {
    display: none;
}

.feature__icon,
.feature-icon {
    width: 42px;
    height: 42px;
    flex-basis: 42px;
}

.feature p,
.feature-card p,
.dev-card p {
    color: var(--sl-muted);
    font-size: 0.95rem;
}

input,
select,
textarea {
    border-radius: 6px;
}

.form-group input:not([type=checkbox]):not([type=radio]):not([type=file]),
.form-group select,
.form-group textarea {
    border-color: var(--sl-border-strong);
    border-radius: 6px;
}

.badge,
.verified-badge,
.listing-source,
.dev-method {
    border-radius: 4px;
}

.code-block {
    background: var(--sl-cream);
    border-color: var(--sl-border);
    border-radius: 6px;
}

.admin-table {
    border-color: var(--sl-border);
}

.admin-body,
.admin-main {
    background: var(--sl-cream);
    color: var(--sl-body);
}

.admin-sidebar {
    background: #16241F;
    color: rgba(255, 255, 255, 0.78);
}

.admin-sidebar-brand {
    padding: 20px 20px 16px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.admin-logo .logo-img {
    height: 42px;
}

.admin-badge {
    color: rgba(255, 255, 255, 0.6);
    font-size: 0.68rem;
    font-weight: 700;
}

.admin-badge::before {
    width: 7px;
    height: 7px;
    background: #2DD4BF;
    box-shadow: none;
}

.admin-sidebar-nav {
    padding: 12px 12px 16px;
    gap: 1px;
    overflow-y: auto;
}

.admin-sidebar-group {
    display: block;
    padding: 16px 12px 6px;
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.4);
}

.admin-sidebar-nav a {
    gap: 11px;
    padding: 8px 12px;
    border-radius: 6px;
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.9rem;
    font-weight: 500;
}

.admin-sidebar-nav a i {
    width: 16px;
    font-size: 0.88rem;
    color: rgba(255, 255, 255, 0.45);
}

.admin-sidebar-label {
    flex: 1 1 auto;
    min-width: 0;
}

.admin-sidebar-nav a:hover {
    background: rgba(255, 255, 255, 0.06);
    color: #ffffff;
}

.admin-sidebar-nav a.active {
    background: rgba(45, 212, 191, 0.12);
    color: #ffffff;
    font-weight: 600;
}

.admin-sidebar-nav a.active i {
    color: #2DD4BF;
}

.admin-sidebar-nav a.active::before {
    display: none;
}

.admin-sidebar-nav .nav-count {
    margin-left: auto;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #F97366;
    color: #ffffff;
    font-size: 0.7rem;
    font-weight: 700;
    line-height: 1;
}

.admin-sidebar-foot {
    padding: 10px 12px 14px;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.admin-sidebar-foot__link {
    padding: 8px 12px;
    border-radius: 6px;
    font-size: 0.88rem;
    color: rgba(255, 255, 255, 0.65);
    text-decoration: none;
}

.admin-sidebar-foot__link i {
    width: 16px;
    color: rgba(255, 255, 255, 0.4);
}

.admin-sidebar-foot__link:hover {
    background: rgba(255, 255, 255, 0.06);
    color: #ffffff;
}

.admin-topbar {
    min-height: 68px;
    background: #ffffff;
    border-bottom: 1px solid var(--sl-border);
    box-shadow: 0 1px 0 rgba(58, 48, 28, 0.04);
    gap: 14px;
}

.admin-topbar h1 {
    font-size: 1.2rem;
    font-weight: 800;
    letter-spacing: -0.025em;
    margin: 0;
}

.admin-topbar-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
}

.admin-user-chip {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 4px 10px 4px 4px;
    border: 1px solid var(--sl-border);
    border-radius: 999px;
    background: #ffffff;
    color: var(--sl-ink);
    text-decoration: none;
    margin-left: 4px;
}

.admin-user-chip:hover {
    border-color: var(--sl-border-strong);
    background: var(--sl-cream);
}

.admin-user-chip__avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(var(--sr-btn-top), var(--sr-btn-bottom));
    color: #ffffff;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.admin-user-chip__text {
    display: flex;
    flex-direction: column;
    line-height: 1.15;
}

.admin-user-chip__text strong {
    font-size: 0.82rem;
    font-weight: 700;
}

.admin-user-chip__text small {
    font-size: 0.7rem;
    color: var(--sl-muted);
}

.dashboard-nav-toggle {
    border-color: var(--sl-border);
    border-radius: 6px;
}

@media (max-width: 900px) {
    .admin-user-chip__text {
        display: none;
    }
    .admin-user-chip {
        padding: 3px;
    }
}

.dash-greeting {
    margin: 0 0 22px;
}

.dash-greeting h2 {
    margin: 0 0 2px;
    font-size: 1.55rem;
    font-weight: 800;
    letter-spacing: -0.03em;
}

.dash-greeting p {
    margin: 0;
    color: var(--sl-muted);
    font-size: 0.92rem;
}

.stat-cards {
    gap: 14px;
}

.stat-card {
    padding: 18px 18px 16px;
    border: 1px solid var(--sl-border);
    background: #ffffff;
    transition: border-color var(--transition), box-shadow var(--transition);
}

.stat-card::before {
    display: none;
}

.stat-card__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    margin-bottom: 14px;
    border-radius: 6px;
    background: var(--sl-tile);
    border: 1px solid var(--sl-border);
    color: var(--sr-teal-700, #0F766E);
    font-size: 0.85rem;
}

.stat-card .value {
    font-size: 1.75rem;
    font-weight: 800;
    letter-spacing: -0.03em;
}

.stat-card .label {
    font-size: 0.8rem;
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
    color: var(--sl-muted);
}

.admin-content .card {
    border: 1px solid var(--sl-border);
    border-radius: 8px;
    background: #ffffff;
}

.admin-content .card h2,
.admin-content .card > h2:first-child {
    font-size: 1.05rem;
    font-weight: 750;
}

.admin-content .form-card {
    border-radius: 8px;
    border-color: var(--sl-border);
}

.admin-alert,
.admin-content .alert {
    border-radius: 8px;
}

.privacy-banner {
    border-top: 1px solid var(--sl-border);
    margin-top: 32px;
}

.table-wrap {
    border-color: var(--sl-border);
    background: #ffffff;
}

.admin-table th {
    background: var(--sl-cream);
    color: var(--sl-muted);
    font-size: 0.7rem;
    font-weight: 700;
    border-bottom: 1px solid var(--sl-border);
}

.admin-table td {
    border-color: var(--sl-border);
}

.btn-link {
    color: var(--sr-teal-700, #0F766E);
    font-weight: 600;
}

.admin-topbar {
    justify-content: flex-start;
}

.admin-topbar h1 {
    margin-right: auto;
}

@media (min-width: 1280px) {
    .stat-cards:has(> :nth-child(6)) {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .admin-user-chip {
        display: none;
    }
}

.privacy-banner i {
    margin-right: 6px;
    color: var(--sl-muted);
}

.btn,
a.btn,
button.btn,
.btn-sm,
.btn-lg,
.btn-block,
.nav-cta,
.main-nav .nav-dashboard,
.nav-btn-outline,
.nav-logout,
input[type="submit"],
input[type="button"],
button[type="submit"] {
    border-radius: 6px !important;
}

.main-nav {
    gap: 4px;
}

.main-nav a:not(.nav-cta):not(.nav-btn-outline):not(.nav-logout):not(.nav-user-chip):not(.nav-signout) {
    padding: 8px 12px;
    border-radius: 6px;
    color: var(--sl-muted);
    font-weight: 500;
    transition: background var(--transition), color var(--transition);
}

.main-nav a:not(.nav-cta):not(.nav-btn-outline):not(.nav-logout):not(.nav-user-chip):not(.nav-signout):hover {
    background: var(--sl-tile);
    color: var(--sl-ink);
}

.main-nav a:not(.nav-cta):not(.nav-btn-outline):not(.nav-logout):not(.nav-user-chip):not(.nav-signout).active {
    background: rgba(13, 148, 136, 0.10);
    color: var(--sr-teal-800, #115E59);
    font-weight: 600;
}

.main-nav a:not(.nav-cta):not(.nav-btn-outline):not(.nav-logout).active::after {
    display: none !important;
}

.main-nav .nav-cta {
    margin-left: 10px;
}

.main-nav a.nav-user-chip {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    border: 1px solid var(--sl-border);
    border-radius: 999px;
    background: #ffffff;
    color: var(--sl-ink);
    text-decoration: none;
}

.main-nav a.nav-user-chip:hover {
    border-color: var(--sl-border-strong);
    background: var(--sl-cream);
}

.nav-user-chip__text {
    display: flex;
    flex-direction: column;
    line-height: 1.15;
}

.nav-user-chip__text strong {
    font-size: 0.82rem;
    font-weight: 700;
}

.nav-user-chip__text small {
    font-size: 0.7rem;
    color: var(--sl-muted);
}

@media (max-width: 768px) {
    .site-header .main-nav {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        max-height: calc(100vh - 120px);
        overflow-y: auto;
        background: #16241F;
        padding: 14px 16px 20px;
        gap: 2px;
        border-bottom: 0;
        box-shadow: 0 18px 36px -16px rgba(22, 36, 31, 0.45);
    }
    .main-nav a:not(.nav-cta):not(.nav-btn-outline):not(.nav-logout) {
        border-bottom: 0 !important;
    }
    .main-nav a:not(.nav-cta):not(.nav-btn-outline):not(.nav-logout):not(.nav-user-chip):not(.nav-signout) {
        color: rgba(255, 255, 255, 0.75);
        padding: 11px 12px;
    }
    .main-nav a:not(.nav-cta):not(.nav-btn-outline):not(.nav-logout):not(.nav-user-chip):not(.nav-signout):hover {
        background: rgba(255, 255, 255, 0.06);
        color: #ffffff;
    }
    .main-nav a:not(.nav-cta):not(.nav-btn-outline):not(.nav-logout):not(.nav-user-chip):not(.nav-signout).active {
        background: rgba(45, 212, 191, 0.12);
        color: #ffffff;
    }
    .main-nav a.nav-user-chip {
        background: rgba(255, 255, 255, 0.06);
        border-color: rgba(255, 255, 255, 0.12);
        color: #ffffff;
        align-self: stretch;
    }
    .main-nav a.nav-user-chip .nav-user-chip__text strong {
        color: #ffffff;
    }
    .main-nav a.nav-user-chip .nav-user-chip__text small {
        color: rgba(255, 255, 255, 0.6);
    }
    .main-nav .nav-cta {
        margin: 12px 0 0;
    }
}

.card,
.form-card,
.feature,
.feature-card,
.pricing-card,
.access-card,
.listing-card,
.dev-card,
.sr-search,
.sr-badge,
.sr-hero-media__frame,
.split-about__image img,
.admin-alert,
.alert {
    border-radius: 8px;
}

.listing-card__media img {
    border-radius: 0;
}

.feature__icon,
.feature-icon,
.sr-badge__icon {
    border-radius: 6px;
    background: var(--sl-tile);
    border: 1px solid var(--sl-border);
    color: var(--sr-teal-700, #0F766E);
}

.dev-card h3 i {
    color: var(--sr-teal-700, #0F766E);
}

.sr-badge {
    border: 1px solid var(--sl-border);
    box-shadow: 0 18px 36px -16px rgba(22, 36, 31, 0.28);
}

.site-footer {
    background: #16241F;
    border-top: 0;
}

.footer-col h4 {
    color: #2DD4BF;
}

.site-footer .footer-bottom a:hover,
.footer-col a:hover {
    color: #2DD4BF;
}

.badge {
    border-radius: 999px;
    font-weight: 700;
}

.benefit-chips li,
.area-chip {
    border-radius: 999px;
}

:root {
    --sl-focus: 0 0 0 3px rgba(13, 148, 136, 0.22);
    --sl-elev-1: 0 1px 2px rgba(22, 36, 31, 0.04), 0 1px 1px rgba(22, 36, 31, 0.03);
    --sl-elev-2: 0 1px 2px rgba(22, 36, 31, 0.04), 0 8px 24px -12px rgba(22, 36, 31, 0.16);
    --sl-elev-3: 0 2px 4px rgba(22, 36, 31, 0.04), 0 18px 40px -18px rgba(22, 36, 31, 0.28);
}

body {
    font-size: 16px;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

h1,
h2,
h3,
h4 {
    line-height: 1.2;
    text-wrap: balance;
}

p,
li {
    text-wrap: pretty;
}

.section-head h2,
.section-header h2,
.section h2 {
    font-size: clamp(1.6rem, 2.6vw, 2.2rem);
}

.section-head p,
.section-header p {
    max-width: 640px;
    color: var(--sl-muted);
    font-size: 1.05rem;
}

a {
    text-underline-offset: 3px;
}

::selection {
    background: rgba(13, 148, 136, 0.18);
}

.section {
    padding: clamp(56px, 7vw, 96px) 0;
}

.section-head,
.section-header {
    margin-bottom: 32px;
}

.site-header {
    box-shadow: 0 1px 0 var(--sl-border);
}

.sr-service-bar {
    font-size: 0.8rem;
}

.card,
.feature-card,
.feature,
.pricing-card,
.access-card,
.listing-card,
.dev-card,
.stat-card {
    box-shadow: var(--sl-elev-1);
}

.form-card {
    box-shadow: var(--sl-elev-2);
}

.feature-card,
.feature,
.listing-card,
.stat-card--link {
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.feature-card:hover,
.feature:hover,
.listing-card:hover,
.stat-card--link:hover {
    transform: translateY(-2px);
    box-shadow: var(--sl-elev-3);
    border-color: var(--sl-border-strong);
}

.admin-content .card:hover {
    transform: none;
    box-shadow: var(--sl-elev-1);
}

@media (prefers-reduced-motion: reduce) {
    .feature-card:hover,
    .feature:hover,
    .listing-card:hover,
    .stat-card--link:hover {
        transform: none;
    }
}

.listing-card__media {
    display: block;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--sl-tile);
}

.listing-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .35s ease;
}

.listing-card:hover .listing-card__media img {
    transform: scale(1.03);
}

.listing-card__kind {
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.92);
    color: var(--sl-ink);
    font-weight: 700;
    font-size: 0.72rem;
    padding: 4px 10px;
    box-shadow: var(--sl-elev-1);
}

.listing-card__body {
    padding: 16px 18px 18px;
}

.listing-card__price {
    font-size: 1.25rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--sl-ink);
}

.listing-card h3 {
    font-size: 1rem;
    font-weight: 700;
    margin: 4px 0 4px;
}

.listing-card h3 a {
    color: var(--sl-ink);
    text-decoration: none;
}

.listing-card h3 a:hover {
    color: var(--sr-teal-700, #0F766E);
}

.listing-card__meta {
    color: var(--sl-muted);
    font-size: 0.88rem;
}

.listing-card__facts {
    display: flex;
    flex-wrap: wrap;
    padding: 0;
    margin: 12px 0 0;
    list-style: none;
}

.listing-card__facts li {
    margin: 0;
    border-radius: 999px;
}

.listing-card__facts li::before {
    content: none !important;
}

:where(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]), select, textarea):not([readonly]):not(:disabled) {
    background-color: #ffffff;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.form-group input:not([type=checkbox]):not([type=radio]):not([type=file]),
.form-group select {
    min-height: 46px;
}

input:not([type=checkbox]):not([type=radio]):focus,
select:focus,
textarea:focus {
    outline: none;
    border-color: var(--sr-teal, #0D9488) !important;
    box-shadow: var(--sl-focus) !important;
}

::placeholder {
    color: #9AA39E;
}

.form-group label {
    color: var(--sl-ink);
    font-weight: 600;
    font-size: 0.88rem;
}

.form-hint {
    color: var(--sl-muted);
    font-size: 0.84rem;
}

:focus-visible {
    outline: 2px solid var(--sr-teal, #0D9488);
    outline-offset: 2px;
}

.btn:focus-visible {
    outline: none;
    box-shadow: var(--sl-focus) !important;
}

.auth-page {
    padding: clamp(40px, 7vw, 88px) 0;
}

.auth-card {
    max-width: 440px;
    padding: 32px 32px 28px;
    box-shadow: var(--sl-elev-3);
}

.auth-card h1 {
    font-size: 1.7rem;
    margin-bottom: 4px;
}

.auth-card .subtitle {
    color: var(--sl-muted);
}

.auth-forgot,
.auth-footer {
    font-size: 0.9rem;
}

.badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 10px;
    font-size: 0.72rem;
    line-height: 1.5;
    letter-spacing: 0.01em;
    border: 1px solid transparent;
}

.badge-success {
    background: #E6F6F3;
    color: #0B5F58;
    border-color: #C8EBE4;
}

.badge-warning {
    background: #FEF5E7;
    color: #8A4B0B;
    border-color: #F8E1BC;
}

.badge-danger {
    background: #FDEDEC;
    color: #A3271D;
    border-color: #F7D2CE;
}

.badge-info {
    background: #EEF3FD;
    color: #2C4FA3;
    border-color: #D6E1F8;
}

.badge-secondary {
    background: #F2EFE8;
    color: #5B635E;
    border-color: #E6E0D3;
}

.empty-state {
    padding: 40px 20px;
    text-align: center;
    color: var(--sl-muted);
}

.empty-state h3 {
    font-size: 1.05rem;
    margin-bottom: 6px;
}

.empty-state::before {
    content: '';
    display: block;
    width: 44px;
    height: 44px;
    margin: 0 auto 14px;
    border-radius: 12px;
    background: var(--sl-tile) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230F766E' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 10.5 12 4l9 6.5V20a1 1 0 0 1-1 1h-5v-6h-6v6H4a1 1 0 0 1-1-1z'/%3E%3C/svg%3E") center / 22px no-repeat;
    border: 1px solid var(--sl-border);
}

.site-footer {
    color: rgba(255, 255, 255, 0.7);
}

.footer-col h4 {
    font-size: 0.72rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin-bottom: 14px;
}

.footer-col a {
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.92rem;
    text-decoration: none;
}

.footer-intro {
    color: rgba(255, 255, 255, 0.62);
    max-width: 340px;
}

.site-footer .footer-bottom {
    font-size: 0.82rem;
    color: rgba(255, 255, 255, 0.55);
}

.admin-content {
    padding-top: 24px;
}

.admin-content .card {
    box-shadow: var(--sl-elev-1);
}

.admin-content .card > h2 + .form-hint {
    margin-top: -2px;
}

.admin-tabs {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 4px;
    padding: 4px;
    margin: 0 0 18px;
    background: #ffffff;
    border: 1px solid var(--sl-border);
    border-radius: 10px;
    box-shadow: var(--sl-elev-1);
}

.admin-tab {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 14px;
    border-radius: 7px;
    color: var(--sl-muted);
    font-size: 0.88rem;
    font-weight: 600;
    text-decoration: none;
    border: 0 !important;
    background: transparent;
}

.admin-tab:hover {
    background: var(--sl-cream);
    color: var(--sl-ink);
}

.admin-tab.is-active {
    background: var(--sl-ink);
    color: #ffffff;
}

.admin-tab__count {
    min-width: 20px;
    padding: 0 6px;
    border-radius: 999px;
    background: var(--sl-tile);
    color: var(--sl-body);
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 20px;
    text-align: center;
}

.admin-tab.is-active .admin-tab__count {
    background: rgba(255, 255, 255, 0.16);
    color: #ffffff;
}

.admin-tab__count.is-alert {
    background: #F97366;
    color: #ffffff;
}

.admin-filter,
.filter-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 14px;
    align-items: flex-end;
}

.admin-filter .form-group,
.filter-bar .form-group {
    flex: 1 1 180px;
    margin: 0;
}

.admin-filter__actions {
    display: flex;
    gap: 8px;
}

.admin-table {
    font-size: 0.9rem;
}

.admin-table td {
    color: var(--sl-body);
}

.admin-table th {
    letter-spacing: 0.06em;
}

.admin-table tbody tr:last-child td {
    border-bottom: 0;
}

.table-actions {
    white-space: nowrap;
    text-align: right;
}

.table-actions .btn-link,
.admin-table .btn-link {
    display: inline-flex;
    align-items: center;
    padding: 5px 10px;
    margin-left: 4px;
    border: 1px solid var(--sl-border);
    background: #ffffff;
    color: var(--sl-ink);
    font-size: 0.8rem;
    font-weight: 600;
    text-decoration: none;
}

.table-actions .btn-link:hover,
.admin-table .btn-link:hover {
    border-color: var(--sl-border-strong);
    background: var(--sl-cream);
}

.admin-table .btn-link-danger {
    color: #A3271D;
    font-weight: 600;
    font-size: 0.8rem;
}

.inline-form {
    display: inline;
}

.admin-alert {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 16px;
    background: #FFFBF0;
    border: 1px solid #F3E2B8;
    color: #6B4A0E;
    box-shadow: var(--sl-elev-1);
}

.admin-alert > i {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: #FDF0CF;
    color: #8A5A07;
}

.admin-alert > div {
    flex: 1 1 auto;
}

.admin-alert--danger {
    background: #FFF6F5;
    border-color: #F5D3CF;
    color: #7A231B;
}

.admin-alert--danger > i {
    background: #FCE1DE;
    color: #A3271D;
}

.admin-sidebar-brand {
    padding-bottom: 14px;
}

.admin-sidebar-nav a {
    transition: background .15s ease, color .15s ease;
}

.admin-topbar {
    position: sticky;
    top: 0;
    z-index: 30;
}

.empty-state,
.card .empty-state,
.admin-content .empty-state {
    border: 0 !important;
    background: transparent !important;
    border-radius: 0;
}

.card.empty-state {
    background: #ffffff !important;
    border: 1px solid var(--sl-border) !important;
    border-radius: 8px;
}

.table-actions > * + *,
.table-actions .btn-link + .btn-link {
    margin-left: 6px !important;
}

@media (max-width: 640px) {
    .admin-topbar {
        min-height: 60px;
        padding-top: 10px;
        padding-bottom: 10px;
    }
    .admin-topbar h1 {
        font-size: 1.05rem;
        min-width: 0;
        display: block;
    }
    .admin-topbar-actions .btn {
        flex: 0 0 auto !important;
        width: auto !important;
        min-height: 36px;
        padding: 7px 12px;
        font-size: 0.82rem;
    }
    .stat-card {
        padding: 14px;
    }
    .stat-card__icon {
        width: 30px;
        height: 30px;
        margin-bottom: 10px;
    }
    .stat-card .value {
        font-size: 1.4rem;
    }
    .dash-greeting h2 {
        font-size: 1.3rem;
    }
    .admin-alert {
        flex-wrap: wrap;
    }
}

.sr-service-bar .container {
    min-height: 38px;
    height: 38px;
}

@media (min-width: 769px) {
    :root {
        --header-h: 108px;
    }
    .site-header .header-inner {
        height: 108px;
    }
}

@media (max-width: 768px) {
    :root {
        --header-h: 108px;
    }
    .site-header .header-inner {
        height: 108px !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
    }
}

.btn,
a.btn,
button.btn,
.btn-sm,
.btn-lg,
.btn-block,
.nav-cta,
.main-nav .nav-dashboard,
.nav-btn-outline,
.nav-logout,
button:not(.nav-toggle):not(.dashboard-nav-toggle),
input[type="submit"],
input[type="button"],
input[type="reset"],
.table-actions .btn-link,
.admin-table .btn-link,
.card,
.form-card,
.auth-card,
.feature,
.feature-card,
.pricing-card,
.access-card,
.listing-card,
.dev-card,
.stat-card,
.sr-search,
.sr-badge,
.table-wrap,
.admin-alert,
.alert,
.privacy-banner,
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
select,
textarea,
.sr-search input,
.sr-search select {
    border-radius: 4px !important;
}

.cta-section {
    background: linear-gradient(135deg, #0F766E 0%, #0D9488 55%, #14B8A6 100%) !important;
    background-image: radial-gradient(700px 320px at 88% 0%, rgba(255, 255, 255, 0.16), transparent 60%), linear-gradient(135deg, #0F766E 0%, #0D9488 55%, #14B8A6 100%) !important;
}

.cta-section p,
.cta-section .cta-text p {
    color: rgba(255, 255, 255, 0.88);
}

.cta-section .btn-white,
.cta-section .btn-accent {
    color: #0F4F4A;
}

.cta-section .btn-outline-white {
    border-color: rgba(255, 255, 255, 0.7);
}

.guide-tabs {
    display: inline-flex;
    gap: 4px;
    padding: 4px;
    background: #ffffff;
    border: 1px solid var(--sl-border);
    border-radius: 4px;
    box-shadow: var(--sl-elev-1);
}

.about-intro a.guide-tab,
a.guide-tab {
    padding: 8px 16px;
    border: 0;
    border-radius: 4px;
    background: transparent;
    color: var(--sl-muted) !important;
    font-weight: 600;
    font-size: 0.92rem;
    text-decoration: none !important;
}

.about-intro a.guide-tab:hover,
a.guide-tab:hover {
    background: var(--sl-cream);
    color: var(--sl-ink) !important;
}

.about-intro a.guide-tab.is-active,
a.guide-tab.is-active {
    background: var(--sr-teal-700, #0F766E);
    color: #ffffff !important;
}

.admin-content > * {
    max-width: none;
}

.admin-content {
    padding: 24px clamp(16px, 2.2vw, 36px) 48px;
}

@media (min-width: 1600px) {
    .admin-content .card {
        padding: 22px 26px;
    }
    .stat-cards {
        gap: 16px;
    }
}

.privacy-banner {
    border: 0 !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 0 16px !important;
    color: var(--sl-muted);
    font-size: 0.8rem;
}

.admin-content > .privacy-banner:last-child {
    margin: 32px 0 0 !important;
    padding-top: 16px !important;
    border-top: 1px solid var(--sl-border) !important;
    border-radius: 0 !important;
}

.admin-sidebar-foot .btn,
.admin-sidebar-foot .btn-outline,
.admin-sidebar-foot .nav-logout {
    background: rgba(255, 255, 255, 0.06) !important;
    border: 1px solid rgba(255, 255, 255, 0.14) !important;
    color: rgba(255, 255, 255, 0.85) !important;
    box-shadow: none !important;
    min-height: 38px;
    font-weight: 600;
}

.admin-sidebar-foot .btn:hover {
    background: rgba(255, 255, 255, 0.12) !important;
    color: #ffffff !important;
}

.admin-sidebar-nav a:not(:has(i)) {
    padding-left: 14px;
}

.admin-table td .form-hint,
.admin-table td .muted,
.admin-table td small {
    display: block;
    font-size: 0.8rem;
    color: var(--sl-muted);
    line-height: 1.45;
}

.admin-table td:last-child.table-actions {
    text-align: right;
}

.search-bar__extra {
    align-items: start;
    gap: 14px 16px;
    margin-top: 14px;
}

.search-bar__extra .search-bar__field input,
.search-bar__extra .search-bar__field select {
    height: 46px;
    min-height: 46px;
    box-sizing: border-box;
}

.search-bar__extra .search-bar__field .form-hint {
    font-size: 0.78rem;
    margin-top: 2px;
}

.search-bar__extra .search-bar__checks {
    grid-column: 1 / -1;
    min-height: 0;
    gap: 8px;
    padding-top: 4px;
}

.search-bar__extra .search-bar__checks[aria-label="Features"]::before {
    flex: 0 0 100%;
    margin-bottom: 2px;
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--sl-ink);
}

.search-bar__extra .search-bar__checks[aria-label="Housing allowance"] {
    grid-column: auto;
    align-self: end;
    min-height: 46px;
    padding-top: 0;
}

.search-chip span {
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    padding: 6px 14px;
    border: 1px solid var(--sl-border-strong);
    border-radius: 4px !important;
    background: #ffffff;
    font-size: 0.86rem;
    font-weight: 600;
    color: var(--sl-body);
    transition: border-color .15s ease, background .15s ease;
}

.search-chip:hover span {
    border-color: var(--sr-teal, #0D9488);
}

@media (max-width: 700px) {
    .search-bar__extra {
        grid-template-columns: 1fr;
    }
}

:root {
    --sr-hero-bg: radial-gradient(1200px 500px at 85% 0%, rgba(13, 148, 136, 0.12), transparent 60%), linear-gradient(180deg, #F0FDFA 0%, var(--sl-cream, #FBF8F3) 100%);
}

.hero.hero--home.hero--rooms,
.guide-hero,
.guides-intro,
.faq-page__intro,
.about-intro.section-alt,
.about-hero,
.pricing-hero,
.page-hero,
.page-header,
.register-page,
.auth-page,
.login-page .auth-page {
    background: var(--sr-hero-bg) !important;
    border-bottom: 0 !important;
}

.eyebrow,
.section-tag,
.hero-tag,
.hero-tag,
.guide-hero .section-tag,
.faq-page__intro .section-tag,
.guides-intro .section-tag,
.about-hero .section-tag,
.pricing-hero .section-tag {
    color: var(--sr-teal-700, #0F766E) !important;
}

:root {
    --sr-rust: #0F766E;
}

.dash-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 340px;
    gap: 20px;
    align-items: start;
}

.dash-grid__main > .card,
.dash-grid__side > .card {
    margin-bottom: 20px;
}

@media (min-width: 1700px) {
    .dash-grid {
        grid-template-columns: minmax(0, 1fr) 380px;
    }
}

@media (max-width: 1180px) {
    .dash-grid {
        grid-template-columns: 1fr;
    }
}

.admin-content .card-head-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.admin-content .card-head-row h2 {
    margin: 0 !important;
}

.admin-content .card-head-row .btn-link {
    border: 0 !important;
    background: none !important;
    padding: 0 !important;
    color: var(--sr-teal-700, #0F766E);
    font-size: 0.85rem;
}

.admin-content .card > .table-wrap:last-child,
.dash-grid .card > .table-wrap:last-child {
    width: auto !important;
    max-width: none !important;
    margin: 14px calc(-1 * var(--card-px, 24px)) calc(-1 * var(--card-py, 22px));
    border-left: 0;
    border-right: 0;
    border-bottom: 0;
    border-radius: 0 0 4px 4px !important;
    box-shadow: none;
}

.admin-content .card > .table-wrap:first-child:last-child {
    margin-top: calc(-1 * var(--card-py, 22px));
    border-top: 0;
    border-radius: 4px !important;
}

.admin-content .card > .table-wrap:last-child .admin-table th:first-child,
.admin-content .card > .table-wrap:last-child .admin-table td:first-child {
    padding-left: 24px;
}

.admin-content .card > .table-wrap:last-child .admin-table th:last-child,
.admin-content .card > .table-wrap:last-child .admin-table td:last-child {
    padding-right: 24px;
}

.admin-content .card:has(> .table-wrap:last-child) {
    overflow: hidden;
}

.quick-actions__list {
    display: grid;
    gap: 2px;
    margin: 6px -10px 0;
}

.quick-actions__list a {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 9px 10px;
    border-radius: 4px;
    color: var(--sl-ink);
    font-weight: 600;
    font-size: 0.9rem;
    text-decoration: none;
}

.quick-actions__list a i {
    width: 30px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    background: var(--sl-tile);
    border: 1px solid var(--sl-border);
    color: var(--sr-teal-700, #0F766E);
    font-size: 0.8rem;
}

.quick-actions__list a:hover {
    background: var(--sl-cream);
}

.quick-actions__list .nav-count {
    margin-left: auto;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #F97366;
    color: #fff;
    font-size: 0.7rem;
    font-weight: 700;
}

.member-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 2px;
}

.member-list li {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 0;
    border-top: 1px solid var(--sl-border);
}

.member-list li:first-child {
    border-top: 0;
}

.member-list__avatar {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #E6F6F3;
    color: #0B5F58;
    font-size: 0.72rem;
    font-weight: 700;
}

.member-list__text {
    display: flex;
    flex-direction: column;
    min-width: 0;
    line-height: 1.3;
}

.member-list__text a {
    color: var(--sl-ink);
    font-weight: 600;
    font-size: 0.9rem;
    text-decoration: none;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.member-list__text a:hover {
    color: var(--sr-teal-700, #0F766E);
}

.member-list__text small {
    color: var(--sl-muted);
    font-size: 0.78rem;
}

.admin-content .card {
    --card-px: 24px;
    --card-py: 22px;
    padding: var(--card-py) var(--card-px);
}

@media (min-width: 1600px) {
    .admin-content .card {
        --card-px: 26px;
    }
}

.main-nav a.nav-user-chip {
    flex: 0 0 auto;
    white-space: nowrap;
    padding: 4px 14px 4px 4px !important;
    margin-left: 14px;
}

.nav-user-chip__text strong,
.nav-user-chip__text small {
    white-space: nowrap;
}

.main-nav a.nav-signout {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    white-space: nowrap;
    margin-left: 8px;
    padding: 8px 12px !important;
    border: 1px solid var(--sl-border);
    border-radius: 4px;
    background: #ffffff;
    color: var(--sl-muted);
    font-size: 0.85rem;
    font-weight: 600;
    text-decoration: none;
}

.main-nav a.nav-signout i {
    font-size: 0.8rem;
}

.main-nav a.nav-signout:hover {
    border-color: var(--sl-border-strong);
    background: var(--sl-cream);
    color: var(--sl-ink);
}

@media (max-width: 768px) {
    .main-nav a.nav-user-chip {
        margin: 12px 0 0;
    }
    .main-nav a.nav-signout {
        margin: 8px 0 0;
        justify-content: center;
        background: transparent;
        border-color: rgba(255, 255, 255, 0.16);
        color: rgba(255, 255, 255, 0.75);
    }
}

.dash-activity {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 380px;
    gap: 20px;
    align-items: start;
    margin-bottom: 4px;
}

.dash-activity > .card,
.dash-activity__side > .card {
    margin-bottom: 20px;
}

@media (max-width: 1180px) {
    .dash-activity {
        grid-template-columns: 1fr;
    }
}

.kpi-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    margin: 6px calc(-1 * var(--card-px, 24px)) calc(-1 * var(--card-py, 22px));
    border-top: 1px solid var(--sl-border);
}

.kpi {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 16px var(--card-px, 24px);
    border-right: 1px solid var(--sl-border);
    border-bottom: 1px solid var(--sl-border);
    margin-right: -1px;
    margin-bottom: -1px;
}

.kpi__label {
    display: flex;
    align-items: center;
    gap: 7px;
    color: var(--sl-muted);
    font-size: 0.8rem;
    font-weight: 600;
}

.kpi__label i {
    color: var(--sr-teal-700, #0F766E);
    font-size: 0.8rem;
    width: 14px;
    text-align: center;
}

.kpi__value {
    font-size: 1.55rem;
    font-weight: 800;
    letter-spacing: -0.03em;
    color: var(--sl-ink);
    line-height: 1.15;
}

.kpi__delta {
    align-self: flex-start;
    padding: 1px 8px;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
}

.kpi__delta--up {
    background: #E6F6F3;
    color: #0B5F58;
}

.kpi__delta--down {
    background: #FDEDEC;
    color: #A3271D;
}

.kpi__delta--flat {
    background: #F2EFE8;
    color: #5B635E;
}

.spark-bars {
    display: block;
    margin-top: 6px;
}

.spark-bars rect {
    fill: #14B8A6;
}

.spark-bars rect:last-child {
    fill: #0F766E;
}

.spark-axis {
    display: flex;
    justify-content: space-between;
    margin-top: 6px;
    color: var(--sl-muted);
    font-size: 0.75rem;
}

.health-list {
    list-style: none;
    margin: 8px 0 0;
    padding: 0;
}

.health-list li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 0;
    border-top: 1px solid var(--sl-border);
}

.health-list li:first-child {
    border-top: 0;
}

.health-list span {
    display: flex;
    flex-direction: column;
    color: var(--sl-body);
    font-size: 0.9rem;
    font-weight: 600;
}

.health-list small {
    color: var(--sl-muted);
    font-size: 0.76rem;
    font-weight: 500;
}

.health-list strong {
    font-size: 1.1rem;
    font-weight: 800;
    color: var(--sl-ink);
}

@media (max-width: 900px) {
    .kpi-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .kpi-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.dash-board {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
    align-items: start;
}

.dash-board__main,
.dash-board__mid,
.dash-board__side {
    display: grid;
    gap: 20px;
    align-content: start;
    min-width: 0;
}

.dash-board .card {
    margin: 0 !important;
}

@media (min-width: 900px) and (max-width: 1279px) {
    .dash-board {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        grid-template-areas: "main main" "mid side";
    }
    .dash-board__side {
        align-content: start;
    }
    .dash-board__main {
        grid-area: main;
    }
    .dash-board__mid {
        grid-area: mid;
    }
    .dash-board__side {
        grid-area: side;
    }
}

@media (min-width: 1280px) and (max-width: 1799px) {
    .dash-board {
        grid-template-columns: minmax(0, 1fr) 360px;
        grid-template-areas: "main mid" "side mid";
    }
    .dash-board__side {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        align-items: start;
    }
    .dash-board__main {
        grid-area: main;
    }
    .dash-board__mid {
        grid-area: mid;
    }
    .dash-board__side {
        grid-area: side;
    }
}

@media (min-width: 1800px) {
    .dash-board {
        grid-template-columns: minmax(0, 1fr) 340px 340px;
    }
}

@media (min-width: 2200px) {
    .dash-board .kpi-grid {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }
}

.dash-board .empty-state {
    padding: 22px 16px;
}

.section-alt,
.section--muted {
    background: #EEF5F2 !important;
}

.section-alt.about-intro,
.faq-page__intro.section-alt {
    background: var(--sr-hero-bg) !important;
}

.tool-card {
    padding: 22px 24px;
    gap: 8px;
    border-radius: 4px;
    box-shadow: var(--sl-elev-1);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.tool-card:hover {
    border-color: var(--sl-border-strong);
    transform: translateY(-2px);
    box-shadow: var(--sl-elev-3);
}

.tool-card i {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0 0 6px;
    border-radius: 4px;
    background: var(--sl-tile);
    border: 1px solid var(--sl-border);
    color: var(--sr-teal-700, #0F766E);
    font-size: 1rem;
}

.tool-card strong {
    font-size: 1.05rem;
}

.faq-page__intro + .section,
.guide-hero + .section,
.page-hero + .section,
.page-header + .section,
.about-hero + .section {
    padding-top: clamp(28px, 3.5vw, 48px) !important;
}

.admin-content .form-card:not(.listing-edit-form) {
    max-width: none;
}

.admin-content > .card,
.admin-content > .form-card,
.admin-content > form.card {
    margin: 0 0 20px !important;
}

.admin-content .form-card {
    padding: 22px 24px;
}

.admin-content .form-group {
    margin-bottom: 14px;
}

.admin-content .form-group input:not([type=checkbox]):not([type=radio]):not([type=file]),
.admin-content .form-group select {
    min-height: 40px;
    height: 40px;
    padding-top: 0;
    padding-bottom: 0;
    font-size: 0.92rem;
}

.admin-content .form-group textarea {
    font-size: 0.92rem;
}

.admin-content .btn:not(.btn-sm) {
    min-height: 40px;
    padding: 8px 18px;
    font-size: 0.9rem;
}

.admin-content .form-actions {
    margin-top: 6px;
}

.admin-content .form-section-title {
    margin-bottom: 12px;
}

.dwelling-group__options {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 24px;
    min-height: 0;
    padding: 6px 0;
    align-items: center;
}

.dwelling-group__options label {
    flex: 0 0 auto;
    display: inline-flex !important;
    align-items: center;
    gap: 8px;
    width: auto !important;
    white-space: nowrap;
    margin: 0 !important;
    font-weight: 500;
}

.dwelling-group__options input[type="radio"] {
    flex: 0 0 auto;
    width: 18px !important;
    height: 18px !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

.admin-content .card-head-row .muted {
    display: block;
    margin-top: 2px;
    font-size: 13px;
}

.admin-tabs.admin-tabs--compact {
    margin: 0;
    padding: 3px;
    box-shadow: none;
    border-radius: 4px;
}

.admin-tabs--compact .admin-tab {
    padding: 5px 12px;
    font-size: 13px;
    border-radius: 4px;
}

.listing-card__fresh,
.listing-fresh {
    color: var(--sr-teal-800);
    font-size: 0.85rem;
}

.listing-fresh {
    margin-top: 4px;
}

li.listing-fresh i {
    margin-right: 4px;
}

.still-available--hidden {
    border-color: #FDBA74;
    background: #FFF7ED;
}

.still-available--hidden .still-available__head > i {
    color: #C2410C;
}

.lha-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 4px 0;
    padding: 3px 9px;
    border-radius: 4px;
    font-size: 0.82rem;
    font-weight: 600;
    line-height: 1.35;
}

.lha-badge--ok {
    background: #ECFDF5;
    color: #065F46;
}

.lha-badge--over {
    background: #FFF7ED;
    color: #9A3412;
}

.quality-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 46px;
    padding: 3px 8px;
    border-radius: 4px;
    font-weight: 700;
    font-size: 0.85rem;
}

.quality-pill--great {
    background: #ECFDF5;
    color: #065F46;
}

.quality-pill--good {
    background: #FEF9C3;
    color: #854D0E;
}

.quality-pill--low {
    background: #FEE2E2;
    color: #991B1B;
}

.quality-td {
    min-width: 150px;
}

.quality-cell summary {
    cursor: pointer;
    list-style: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
}

.quality-cell summary::-webkit-details-marker {
    display: none;
}

.quality-cell__label {
    color: var(--sl-muted);
    font-size: 0.85rem;
}

.quality-cell[open] {
    min-width: 240px;
}

.quality-list {
    list-style: none;
    margin: 8px 0 6px;
    padding: 0;
}

.quality-list li {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 6px 0;
    border-top: 1px solid var(--sl-border);
    font-size: 0.85rem;
    white-space: normal;
}

.quality-list li span {
    color: var(--sl-muted);
}

.quality-cell__done {
    margin: 8px 0 0;
    font-size: 0.85rem;
    color: #065F46;
    white-space: normal;
}

.quality-card {
    margin: 0 0 20px;
    padding: 14px 16px;
    border: 1px solid var(--sl-border);
    border-radius: 4px;
    background: #fff;
}

.quality-card--great {
    border-color: #A7F3D0;
    background: #F0FDF4;
}

.quality-card--good {
    border-color: #FDE68A;
    background: #FFFBEB;
}

.quality-card--low {
    border-color: #FECACA;
    background: #FEF2F2;
}

.quality-card__head {
    display: flex;
    gap: 12px;
    align-items: center;
}

.quality-card__head .quality-pill {
    font-size: 1rem;
    min-width: 58px;
    padding: 6px 10px;
}

.quality-card__head strong {
    display: block;
}

.quality-checklist {
    list-style: none;
    margin: 12px 0 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 8px 16px;
}

.quality-checklist li {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    font-size: 0.9rem;
}

.quality-checklist li > i {
    margin-top: 3px;
}

.quality-checklist li.is-ok > i {
    color: #059669;
}

.quality-checklist li.is-todo > i {
    color: #D97706;
}

.quality-checklist small {
    display: block;
    color: var(--sl-muted);
    margin-top: 2px;
}

.enquiry-tracker {
    list-style: none;
    display: flex;
    margin: 14px 0 6px;
    padding: 0;
    counter-reset: none;
}

.enquiry-tracker__step {
    position: relative;
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 6px;
    font-size: 0.82rem;
    color: var(--sl-muted);
}

.enquiry-tracker__step::before {
    content: "";
    position: absolute;
    top: 11px;
    right: 50%;
    width: 100%;
    height: 2px;
    background: var(--sl-border);
    z-index: 0;
}

.enquiry-tracker__step:first-child::before {
    display: none;
}

.enquiry-tracker__step.is-done::before {
    background: var(--sr-teal-700);
}

.enquiry-tracker__dot {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    border: 2px solid var(--sl-border-strong);
    background: #fff;
    font-size: 0.7rem;
    color: #fff;
}

.enquiry-tracker__step.is-done .enquiry-tracker__dot {
    background: var(--sr-teal-700);
    border-color: var(--sr-teal-700);
}

.enquiry-tracker__step.is-current .enquiry-tracker__dot {
    box-shadow: 0 0 0 4px rgba(13, 148, 136, 0.18);
}

.enquiry-tracker__step.is-done,
.enquiry-tracker__step.is-current {
    color: var(--sl-ink);
}

.enquiry-tracker__step.is-current .enquiry-tracker__label {
    font-weight: 700;
}

.enquiry-tracker__label small {
    display: block;
    font-weight: 400;
    color: var(--sl-muted);
    font-size: 0.75rem;
}

.enquiry-tracker--compact {
    margin: 10px 0 4px;
}

.enquiry-tracker--compact .enquiry-tracker__step {
    font-size: 0.75rem;
}

.enquiry-tracker--compact .enquiry-tracker__dot {
    width: 18px;
    height: 18px;
    font-size: 0.6rem;
}

.enquiry-tracker--compact .enquiry-tracker__step::before {
    top: 8px;
}

.enquiry-status {
    display: inline-block;
    margin: 6px 0 0;
    font-size: 0.88rem;
    font-weight: 600;
}

.enquiry-status--ok {
    color: #065F46;
}

.enquiry-status--wait {
    color: var(--sl-muted);
}

.enquiry-status--warn {
    color: #9A3412;
}

.enquiry-status--muted {
    color: var(--sl-muted);
    font-weight: 400;
}

.enquiry-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.enquiry-list__item {
    padding: 14px 0;
    border-top: 1px solid var(--sl-border);
}

.enquiry-list__item:first-child {
    border-top: 0;
    padding-top: 0;
}

.enquiry-list__head {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 10px;
    align-items: baseline;
}

.enquiry-list__title {
    font-weight: 700;
    color: var(--sl-ink);
    text-decoration: none;
}

.enquiry-list__title:hover {
    text-decoration: underline;
}

.enquiry-list__foot {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
}

.enquiry-list__actions {
    display: inline-flex;
    gap: 12px;
    align-items: center;
}

.viewing-form {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 10px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--sl-border);
}

.viewing-form label {
    font-weight: 600;
    margin: 0;
}

.viewing-form input[type="datetime-local"] {
    width: auto;
    max-width: 240px;
}

.viewing-form .form-hint {
    flex-basis: 100%;
    margin: 0;
}

@media (max-width: 560px) {
    .enquiry-tracker__label {
        font-size: 0.7rem;
    }
    .enquiry-tracker--compact .enquiry-tracker__label {
        display: none;
    }
    .enquiry-tracker--compact .enquiry-tracker__step.is-current .enquiry-tracker__label {
        display: block;
        position: absolute;
        top: 22px;
        white-space: nowrap;
    }
    .enquiry-tracker--compact {
        margin-bottom: 22px;
    }
}

.search-map__walk {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 10px;
    margin: 0 0 14px;
    padding: 12px 14px;
    border: 1px solid var(--sl-border);
    border-radius: 4px;
    background: var(--sr-teal-50);
}

.search-map__walk label {
    font-weight: 600;
    margin: 0;
}

.search-map__walk input {
    flex: 1 1 260px;
    min-width: 0;
}

.search-map__walk .form-hint {
    flex-basis: 100%;
    margin: 0;
}

.search-map__layout {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}

.search-map__map {
    position: sticky;
    top: 16px;
    height: 620px;
    border: 1px solid var(--sl-border);
    border-radius: 4px;
    background: #E5E7EB;
    overflow: hidden;
    z-index: 0;
}

.search-map__loading {
    margin: 0;
    padding: 24px;
    color: var(--sl-muted);
}

.search-map__list {
    list-style: none;
    margin: 0;
    padding: 0;
    max-height: 620px;
    overflow-y: auto;
    border: 1px solid var(--sl-border);
    border-radius: 4px;
    background: #fff;
}

.search-map__item {
    display: flex;
    gap: 12px;
    padding: 10px 12px;
    border-top: 1px solid var(--sl-border);
    transition: background .15s;
}

.search-map__item:first-child {
    border-top: 0;
}

.search-map__item:hover,
.search-map__item.is-active {
    background: var(--sr-teal-50);
}

.search-map__thumb {
    flex: 0 0 84px;
    height: 64px;
    border-radius: 4px;
    overflow: hidden;
    background: var(--sl-tile);
}

.search-map__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.search-map__body {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}

.search-map__title {
    font-weight: 700;
    color: var(--sl-ink);
    text-decoration: none;
}

.search-map__title:hover {
    text-decoration: underline;
}

.search-map__meta {
    font-size: 0.85rem;
    color: var(--sl-muted);
}

.search-map__lha .lha-badge {
    margin: 0;
    font-size: 0.75rem;
}

.search-map__walktime {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--sr-teal-800);
}

.search-map__walktime::before {
    content: "\f554";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    margin-right: 6px;
}

.search-map__note {
    margin-top: 10px;
}

.search-map .leaflet-popup-content a {
    color: var(--sr-teal-700);
}

@media (max-width: 900px) {
    .search-map__layout {
        grid-template-columns: 1fr;
    }
    .search-map__map {
        position: relative;
        top: 0;
        height: 360px;
    }
    .search-map__list {
        max-height: none;
    }
}

.funnel {
    list-style: none;
    margin: 0 0 8px;
    padding: 0;
    display: grid;
    gap: 8px;
}

.funnel__step {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr) 90px 60px;
    gap: 12px;
    align-items: center;
}

.funnel__label {
    font-weight: 600;
}

.funnel__bar {
    height: 14px;
    border-radius: 4px;
    background: var(--sl-soft);
    overflow: hidden;
}

.funnel__bar span {
    display: block;
    height: 100%;
    border-radius: 4px;
    background: linear-gradient(90deg, var(--sr-btn-top), var(--sr-btn-bottom));
}

.funnel__n {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.funnel__rate {
    text-align: right;
    color: var(--sl-muted);
    font-size: 0.85rem;
    font-variant-numeric: tabular-nums;
}

.demand-table th.num,
.demand-table td.num {
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

@media (max-width: 640px) {
    .funnel__step {
        grid-template-columns: 1fr auto auto;
    }
    .funnel__bar {
        grid-column: 1 / -1;
        order: 4;
    }
}

.area-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 10px;
}

.area-stats span {
    display: inline-flex;
    align-items: baseline;
    gap: 5px;
    padding: 6px 12px;
    border: 1px solid var(--sl-border);
    border-radius: 4px;
    background: rgba(255, 255, 255, 0.75);
    font-size: 0.9rem;
}

.area-alert {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
    margin: 0 0 18px;
    padding: 12px 16px;
    border: 1px solid var(--sl-border);
    border-radius: 4px;
    background: var(--sr-teal-50);
}

.area-alert > i {
    font-size: 1.3rem;
    color: var(--sr-teal-700);
}

.area-alert > div {
    flex: 1 1 240px;
    display: flex;
    flex-direction: column;
}

.area-alert > div span {
    color: var(--sl-muted);
    font-size: 0.9rem;
}

.area-districts {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}

.area-faq details {
    border-top: 1px solid var(--sl-border);
    padding: 10px 0;
}

.area-faq details:last-child {
    border-bottom: 1px solid var(--sl-border);
}

.area-faq summary {
    cursor: pointer;
    font-weight: 600;
}

.area-faq p {
    margin: 8px 0 0;
}

.area-card__lha {
    color: var(--sr-teal-800) !important;
    font-size: 0.82rem !important;
}

.area-copy h2 {
    margin-top: 32px;
}

.area-copy h2:first-child {
    margin-top: 0;
}

.area-districts {
    margin-top: 14px;
}

.card .enquiry-status--ok,
.enquiry-list .enquiry-status--ok {
    color: #065F46;
}

.card .enquiry-status--warn,
.enquiry-list .enquiry-status--warn {
    color: #9A3412;
}

.admin-table th {
    padding: 11px 16px;
    white-space: nowrap;
}

.admin-table td,
.admin-table td.table-actions,
.people-table td.table-actions {
    padding: 12px 16px;
    vertical-align: middle !important;
}

.admin-table th.table-actions,
.admin-table td.table-actions {
    text-align: right;
}

.admin-table th.num,
.admin-table td.num {
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.admin-table td.nowrap {
    white-space: nowrap;
}

.admin-table td.cell-muted {
    color: var(--sl-muted);
    font-size: 0.86rem;
}

.admin-table tbody tr:hover td {
    background: rgba(13, 148, 136, 0.03);
}

.admin-table .table-actions .inline-form,
.admin-table .table-actions .reject-box {
    display: inline-block;
    vertical-align: middle;
}

.admin-table .table-actions .reject-box[open] {
    display: block;
    margin-top: 6px;
    white-space: normal;
    text-align: left;
}

.cell-person {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 200px;
}

.cell-avatar {
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    background: var(--sl-tile);
    color: var(--sl-ink);
}

.cell-avatar--landlord {
    background: var(--sr-teal-50);
    color: var(--sr-teal-800);
}

.cell-avatar--tenant {
    background: #EEF2FF;
    color: #3730A3;
}

.cell-avatar--admin {
    background: #16241F;
    color: #fff;
}

.cell-text {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
    line-height: 1.35;
}

.cell-title {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    font-weight: 700;
    color: var(--sl-ink);
}

.cell-sub {
    color: var(--sl-muted);
    font-size: 0.85rem;
    font-weight: 400;
    overflow-wrap: anywhere;
}

.cell-sub--indent {
    display: block;
    margin: 2px 0 0 48px;
}

.cell-flag {
    margin-top: 4px;
}

code.cell-sub {
    font-size: 0.8rem;
}

.admin-content table a.cell-link,
.dashboard-content table a.cell-link,
table a.cell-link {
    display: inline !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    font-size: inherit !important;
    line-height: inherit !important;
    white-space: normal;
    vertical-align: baseline;
    color: var(--sl-ink) !important;
    font-weight: inherit;
    text-decoration: none;
}

table a.cell-link.cell-sub {
    color: var(--sl-muted) !important;
    font-size: 0.85rem !important;
    font-weight: 400;
}

table a.cell-link:hover {
    color: var(--sr-teal-700) !important;
    text-decoration: underline;
}

.role-tag {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 0.8rem;
    font-weight: 600;
    background: var(--sl-tile);
    color: var(--sl-ink);
    white-space: nowrap;
}

.role-tag--landlord {
    background: var(--sr-teal-50);
    color: var(--sr-teal-800);
}

.role-tag--tenant {
    background: #EEF2FF;
    color: #3730A3;
}

.role-tag--admin {
    background: #16241F;
    color: #fff;
}

.admin-table .verified-badge--sm {
    font-weight: 600;
}

.landlord-listings .cell-title {
    display: block;
}

.landlord-listings .cell-sub {
    display: block;
    margin-top: 2px;
}

.admin-listings-table td:nth-child(2) {
    min-width: 230px;
}

.tw-intro {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px 32px;
}

.tw-intro__text {
    flex: 1 1 380px;
    margin: 0;
    color: var(--sl-muted);
    max-width: 640px;
}

.tw-filter {
    flex: 0 1 380px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 0;
}

.tw-filter label {
    font-weight: 600;
    margin: 0;
}

.tw-filter__row {
    display: flex;
    gap: 8px;
    align-items: stretch;
}

.tw-filter__row input {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    height: var(--sr-control-h, 42px);
}

.tw-filter__row .btn {
    flex: 0 0 auto;
    height: var(--sr-control-h, 42px);
    margin: 0;
    white-space: nowrap;
}

.tw-filter__clear {
    font-size: 0.85rem;
    align-self: flex-start;
}

@media (max-width: 640px) {
    .tw-filter {
        flex-basis: 100%;
    }
}

.tw-filter,
.tw-filter__row {
    min-width: 0;
    max-width: 100%;
}

.tw-filter__row input {
    width: 100%;
}

@media (max-width: 640px) {
    .tw-filter {
        flex: 1 1 100%;
    }
}

.perf-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 14px;
    align-items: center;
}

.admin-table .perf-stat {
    display: inline-flex !important;
    align-items: baseline;
    gap: 4px;
    white-space: nowrap;
    font-size: 0.88rem;
    line-height: 1.4;
}

.perf-stat i {
    width: auto;
    color: var(--sr-teal-700);
    font-size: 0.85rem;
}

.perf-stat b {
    font-weight: 700;
    color: var(--sl-ink);
}

.perf-stat em {
    font-style: normal;
    color: var(--sl-muted);
    font-size: 0.82rem;
}

.admin-table .perf-note {
    display: block !important;
    margin-top: 3px;
    font-size: 0.75rem;
    color: var(--sl-muted);
    line-height: 1.3;
}

.perf-cell {
    min-width: 150px;
}

.landlord-listings td:first-child {
    min-width: 220px;
}

.landlord-listings .listing-fresh {
    font-size: 0.8rem;
    line-height: 1.35;
}

.row-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    gap: 6px;
}

.admin-table td.table-actions .row-actions > *,
.admin-table td.table-actions .row-actions .inline-form + * {
    margin: 0 !important;
}

.row-actions .inline-form {
    display: inline-flex;
}

.admin-table.landlord-listings td.table-actions {
    width: 1%;
    white-space: nowrap;
}

.landlord-listings .row-actions {
    display: grid;
    grid-template-columns: repeat(3, auto);
    justify-content: end;
}

.landlord-listings .row-actions > *,
.landlord-listings .row-actions .inline-form > button {
    width: 100%;
}

.landlord-listings .row-actions > :last-child:nth-child(5) {
    grid-column: span 2;
}

@media (min-width: 1500px) {
    .landlord-listings .row-actions > :last-child:nth-child(5) {
        grid-column: auto;
    }
    .landlord-listings .row-actions {
        display: flex;
        flex-wrap: nowrap;
    }
    .landlord-listings .row-actions > *,
    .landlord-listings .row-actions .inline-form > button {
        width: auto;
    }
}

.area-tools {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 20px;
}

.empty-state--compact {
    padding: 22px 16px;
}

.nearby-results {
    margin-top: 8px;
}

.nearby-results__title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 12px;
    font-size: 1.05rem;
}

.nearby-results__title i {
    color: var(--sr-teal-700);
}

.nearby-results__actions {
    margin-top: 14px;
    text-align: center;
}

.listing-card__distance {
    color: var(--sr-teal-800);
    font-weight: 600;
    font-size: 0.85rem;
}

.cost-card {
    margin: 20px 0;
    padding: 16px 18px;
    border: 1px solid var(--sl-border);
    border-radius: 4px;
    background: #fff;
}

.cost-card h3 {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 10px;
    font-size: 1.05rem;
}

.cost-card h3 i {
    color: var(--sr-teal-700);
}

.cost-card__rows {
    margin: 0;
}

.cost-card__rows > div {
    display: grid;
    grid-template-columns: minmax(150px, 40%) 1fr;
    gap: 12px;
    padding: 8px 0;
    border-top: 1px solid var(--sl-border);
}

.cost-card__rows > div:first-child {
    border-top: 0;
}

.cost-card__rows dt {
    font-weight: 600;
    color: var(--sl-ink);
}

.cost-card__rows dd {
    margin: 0;
}

.cost-card__key {
    margin: 4px -10px;
    padding: 8px 10px !important;
    border-radius: 4px;
    border-top: 0 !important;
}

.cost-card__key.is-ok {
    background: #ECFDF5;
}

.cost-card__key.is-ok dd {
    color: #065F46;
    font-weight: 600;
}

.cost-card__key.is-over {
    background: #FFF7ED;
}

.cost-card__key.is-over dd {
    color: #9A3412;
    font-weight: 600;
}

.cost-card__key + div {
    border-top: 0;
}

.cost-card__small {
    margin: 10px 0 0;
    font-size: 0.82rem;
    color: var(--sl-muted);
}

@media (max-width: 520px) {
    .cost-card__rows > div {
        grid-template-columns: 1fr;
        gap: 2px;
    }
}

.viewing-calendar {
    margin: 6px 0 0;
    font-size: 0.9rem;
}

.viewing-calendar i {
    margin-right: 4px;
}

.status-page__list {
    margin: 0 0 16px;
    padding-left: 18px;
}

.checklist-card .card-head-row {
    align-items: flex-start;
}

.checklist-progress {
    height: 8px;
    margin: 2px 0 14px;
    border-radius: 4px;
    background: var(--sl-soft);
    overflow: hidden;
}

.checklist-progress span {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, var(--sr-btn-top), var(--sr-btn-bottom));
}

.checklist {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 10px 20px;
}

.checklist li {
    display: flex;
    gap: 10px;
    align-items: flex-start;
}

.checklist__tick {
    flex: 0 0 22px;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 2px solid var(--sl-border-strong);
    color: transparent;
    font-size: 0.65rem;
    margin-top: 1px;
}

.checklist li.is-done .checklist__tick {
    background: var(--sr-teal-700);
    border-color: var(--sr-teal-700);
    color: #fff;
}

.checklist li.is-done .checklist__text strong {
    color: var(--sl-muted);
    text-decoration: line-through;
    font-weight: 600;
}

.checklist__text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    line-height: 1.35;
}

.checklist__text a {
    color: var(--sl-ink);
    text-decoration: none;
}

.checklist__text a:hover strong {
    text-decoration: underline;
    color: var(--sr-teal-700);
}

.checklist__text small {
    color: var(--sl-muted);
    font-size: 0.82rem;
}

.compare-avg {
    display: inline-block;
    font-size: 0.78rem;
    color: var(--sl-muted);
}

.compare-avg--up {
    color: #065F46;
}

.compare-avg--down {
    color: #9A3412;
}

.compare-tips {
    font-size: 0.85rem;
    color: var(--sl-body);
    min-width: 220px;
}

.compare-ok {
    color: #065F46;
    font-weight: 600;
}

.recruit-top {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(280px, 1fr);
    gap: 16px;
    align-items: start;
    margin-bottom: 16px;
}

.recruit-top > .card {
    margin: 0;
}

.recruit-add > details > summary {
    list-style: none;
    display: inline-flex;
    cursor: pointer;
}

.recruit-add > details > summary::-webkit-details-marker {
    display: none;
}

.recruit-add > details[open] > summary {
    margin-bottom: 14px;
}

.recruit-form__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 14px;
}

.recruit-form__wide {
    grid-column: 1 / -1;
}

.recruit-form__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.recruit-stats {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
    margin-top: 16px;
}

.recruit-stat {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 10px 12px;
    border: 1px solid var(--sl-border);
    border-radius: 4px;
    text-decoration: none;
    color: var(--sl-ink);
    background: #fff;
}

.recruit-stat strong {
    font-size: 1.3rem;
}

.recruit-stat span {
    font-size: 0.8rem;
    color: var(--sl-muted);
}

.recruit-stat.is-active,
.recruit-stat:hover {
    border-color: var(--sr-teal-700);
    background: var(--sr-teal-50);
}

.recruit-towns h2 {
    margin-bottom: 2px;
}

.recruit-towns__list {
    list-style: none;
    margin: 10px 0 0;
    padding: 0;
}

.recruit-towns__list li {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 0 10px;
    padding: 8px 0;
    border-top: 1px solid var(--sl-border);
}

.recruit-towns__list li a:first-child {
    color: var(--sl-ink);
    text-decoration: none;
}

.recruit-towns__list li .muted {
    grid-column: 1;
    font-size: 0.82rem;
}

.recruit-towns__list li .btn-link {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: center;
}

.recruit-notes {
    margin: 6px 0 0 48px;
    font-size: 0.82rem;
    color: var(--sl-muted);
    max-width: 420px;
    white-space: normal;
}

.cell-org {
    font-weight: 400;
    font-size: 0.82rem;
}

.recruit-status select {
    width: auto;
    min-width: 140px;
    padding-top: 6px;
    padding-bottom: 6px;
}

.recruit-form--edit {
    display: grid;
    gap: 6px;
    min-width: 260px;
    margin-top: 8px;
    text-align: left;
}

.recruit-table td.table-actions {
    white-space: normal;
    min-width: 190px;
}

@media (max-width: 900px) {
    .recruit-top {
        grid-template-columns: 1fr;
    }
    .recruit-stats {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .recruit-form__grid {
        grid-template-columns: 1fr;
    }
}

.area-guide {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 32px;
    align-items: start;
}

.area-guide__main h2 {
    margin-top: 32px;
}

.area-guide__main h2:first-child {
    margin-top: 0;
}

.area-guide__aside {
    position: sticky;
    top: 20px;
}

.area-guide__aside .btn-block {
    margin-bottom: 8px;
}

.guide-lha {
    max-width: 520px;
}

.guide-lha tr.is-highlight td {
    background: var(--sr-teal-50);
    font-weight: 600;
}

.guide-checklist li {
    margin-bottom: 6px;
}

@media (max-width: 900px) {
    .area-guide {
        grid-template-columns: 1fr;
    }
    .area-guide__aside {
        position: static;
    }
}

.area-guide .table-wrap {
    max-width: 520px;
}

.area-guide .guide-lha {
    width: 100%;
    max-width: none;
}

.listings-grid--rows .listing-card__row-meta {
    flex-wrap: nowrap !important;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.listing-card__signals {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    margin: 0;
    padding: 0;
    min-width: 0;
    color: var(--sl-muted);
    font-size: 0.8rem;
    line-height: 1.5;
}

.listing-card__signals li {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    white-space: nowrap;
}

.listing-card__signals i {
    color: var(--sr-teal-700);
    margin: 0 !important;
    font-size: 0.78rem;
}

.listing-card__signals .fa-regular.fa-calendar {
    font-weight: 400;
}

.listings-grid--rows .listing-card__cta {
    flex: 0 0 auto;
    margin: 0 !important;
}

@media (max-width: 420px) {
    .listings-grid--rows .listing-card__row-meta {
        flex-wrap: wrap !important;
    }
}

.listings-grid--rows .listing-card__body {
    grid-template-areas: "title price" "meta price" "lha lha" "facts facts" "excerpt excerpt" "side side" "lock lock";
}

.listings-grid--rows .listing-card__lha {
    grid-area: lha;
    margin: 0 0 8px;
}

.listings-grid--rows .listing-card__lha .lha-badge {
    margin: 0;
}

.listing-card__signals {
    flex: 1 1 auto;
    gap: 2px 12px;
}

@media (max-width: 900px) {
    .listings-grid--rows .listing-card__body {
        grid-template-areas: "title price" "meta price" "lha lha" "facts facts" "excerpt excerpt" "side side" "lock lock";
    }
}

@media (max-width: 480px) {
    .listings-grid--rows .listing-card__row-meta {
        flex-direction: column !important;
        align-items: stretch !important;
        flex-wrap: wrap !important;
    }
    .listings-grid--rows .listing-card__cta {
        width: 100%;
        justify-content: center;
    }
}

.listing-card__price .price-amount {
    display: inline-flex;
    align-items: baseline;
    gap: 4px;
    white-space: nowrap;
    font-weight: 800;
    color: var(--sl-ink);
    letter-spacing: -0.01em;
}

.listing-card__price .price-amount > span {
    font-size: 0.8em;
    font-weight: 500;
    color: var(--sl-muted);
    letter-spacing: 0;
}

.listing-card__price .price-kind,
.listings-grid--rows .listing-card__price .price-kind {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin: 0;
    padding: 2px 8px;
    border-radius: 4px;
    border: 0;
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: none;
    letter-spacing: 0;
    line-height: 1.5;
    white-space: nowrap;
    cursor: help;
}

.listing-card__price .price-kind::before {
    content: "\f05a";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    font-size: 0.85em;
    opacity: 0.8;
}

.listings-grid--rows .listing-card__price {
    gap: 4px;
}

.listings-grid--rows .listing-card__body > h3 {
    line-height: 1.3;
}

.listings-grid--rows .listing-card__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 8px;
    color: var(--sl-muted);
}

.listing-card__facts {
    gap: 6px;
}

.listing-card__facts li {
    padding: 3px 10px;
    background: #fff;
    border: 1px solid var(--sl-border);
    color: var(--sl-body);
    font-size: 0.76rem;
    font-weight: 500;
}

.listing-card__price.listing-detail__price {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 10px;
    margin: 0 0 10px;
}

.listing-detail__price .price-amount {
    font-size: 1.75rem;
    line-height: 1.1;
}

.benefit-rule {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 10px;
    margin: 8px 0 6px;
}

.benefit-rule__part {
    flex: 1 1 240px;
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 14px;
    border: 1px solid var(--sl-border);
    border-radius: 4px;
    background: #fff;
}

.benefit-rule__part strong {
    display: block;
    color: var(--sl-ink);
}

.benefit-rule__part small {
    display: block;
    margin-top: 2px;
    color: var(--sl-muted);
    font-size: 0.82rem;
}

.benefit-rule__step {
    flex: 0 0 26px;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--sr-teal-700);
    color: #fff;
    font-weight: 700;
    font-size: 0.85rem;
}

.benefit-rule__plus {
    align-self: center;
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--sr-teal-700);
}

.benefit-rule__list {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 8px 0 0;
    padding: 0;
}

.benefit-rule__list li {
    margin: 0;
    padding: 3px 10px;
    border: 1px solid var(--sl-border);
    border-radius: 999px;
    background: var(--sr-teal-50);
    color: var(--sr-teal-800);
    font-size: 0.78rem;
    font-weight: 500;
}

.benefit-rule__list li::before {
    content: none !important;
}

@media (max-width: 560px) {
    .benefit-rule__plus {
        width: 100%;
        text-align: center;
    }
}

.listing-card__price .price-kind,
.listings-grid--rows .listing-card__price .price-kind {
    background: #FEF3C7;
    color: #92400E;
}

.listings-grid--rows .listing-card__facts,
.listing-card__facts {
    margin-top: 5px;
}

.benefit-rule__part strong {
    margin-bottom: 5px;
}

.benefit-rule__part > div > strong:only-child {
    margin-bottom: 0;
}

.benefit-rule__list {
    margin-top: 0;
}

.guide-body,
.guide-faqs,
.area-guide__main {
    max-width: 720px;
    font-size: 1.05rem;
    line-height: 1.75;
    color: var(--sl-body);
}

.guide-body p,
.guide-body li,
.area-guide__main p,
.area-guide__main li {
    font-size: 1.05rem;
    line-height: 1.75;
}

.guide-body p,
.area-guide__main p {
    margin: 0 0 16px;
}

.guide-body ul,
.guide-body ol,
.area-guide__main ul {
    margin: 0 0 18px;
    padding-left: 22px;
}

.guide-body li,
.area-guide__main li {
    margin-bottom: 8px;
}

.guide-body h2,
.guide-faqs h2,
.area-guide__main h2 {
    font-size: 1.45rem !important;
    line-height: 1.3;
    letter-spacing: -0.005em;
    font-weight: 700;
    margin: 36px 0 12px !important;
    color: var(--sl-ink);
}

.guide-body > h2:first-child,
.area-guide__main > h2:first-child {
    margin-top: 8px !important;
}

.guide-body h3 {
    font-size: 1.15rem;
    line-height: 1.35;
    margin: 24px 0 8px;
}

.guide-body strong {
    font-weight: 650;
    color: var(--sl-ink);
}

.guide-body a,
.area-guide__main a:not(.btn) {
    color: var(--sr-teal-700);
    text-underline-offset: 2px;
}

.guide-hero h1 {
    font-size: clamp(1.8rem, 3.2vw, 2.4rem);
    line-height: 1.2;
    letter-spacing: -0.01em;
}

.guide-hero .about-lead {
    font-size: 1.1rem;
    line-height: 1.6;
    max-width: 720px;
}

.guide-faqs details summary {
    font-size: 1.02rem;
}

.guide-faqs details p {
    font-size: 1rem;
    line-height: 1.7;
}

@media (max-width: 640px) {
    .guide-body,
    .guide-body p,
    .guide-body li {
        font-size: 1rem;
    }
    .guide-body h2,
    .guide-faqs h2,
    .area-guide__main h2 {
        font-size: 1.3rem !important;
        margin-top: 28px !important;
    }
}

.guides-hero h1 {
    font-size: clamp(1.9rem, 3.4vw, 2.6rem);
    line-height: 1.15;
    margin: 6px 0 8px;
}

.guides-hero .about-lead {
    max-width: 680px;
    font-size: 1.1rem;
}

.guides-hero__controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 16px;
    margin-top: 18px;
}

.guides-hero .guide-tab i {
    margin-right: 6px;
}

.guides-search {
    position: relative;
    flex: 1 1 320px;
    max-width: 480px;
    margin: 0;
}

.guides-search i {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--sl-muted);
}

.guides-search input {
    width: 100%;
    height: 46px;
    padding-left: 40px;
    border-radius: 4px;
    background: #fff;
}

.guides-section {
    padding-top: 32px;
}

.guide-featured {
    display: grid;
    gap: 6px;
    margin: 0 0 28px;
    padding: 22px 24px;
    border-radius: 4px;
    text-decoration: none;
    color: #fff;
    background: linear-gradient(135deg, #0F766E, #134E4A);
    box-shadow: var(--sl-shadow-md);
}

.guide-featured:hover {
    filter: brightness(1.05);
}

.guide-featured__label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--sr-teal-300);
}

.guide-featured__title {
    font-size: 1.45rem;
    line-height: 1.25;
}

.guide-featured__summary {
    color: rgba(255, 255, 255, 0.85);
    max-width: 720px;
}

.guide-featured__points {
    margin: 6px 0 4px;
    padding-left: 20px;
    color: rgba(255, 255, 255, 0.92);
    display: grid;
    gap: 4px;
}

.guide-featured__points li::marker {
    color: var(--sr-teal-300);
}

.guide-featured__cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 6px;
    font-weight: 700;
}

.guide-featured__cta .muted {
    color: rgba(255, 255, 255, 0.7) !important;
    font-weight: 400;
    font-size: 0.88rem;
}

.guides-layout {
    display: grid;
    grid-template-columns: 240px minmax(0, 1fr);
    gap: 32px;
    align-items: start;
}

.guides-topics {
    position: sticky;
    top: 20px;
    padding: 18px 20px;
    background: #fff;
    border: 1px solid var(--sl-border);
    border-radius: 4px;
}

.guides-topics ul {
    list-style: none;
    margin: 0 0 6px;
    padding: 0;
    display: grid;
    gap: 4px;
}

.guides-topics a {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 8px;
    margin: 0 -8px;
    border-radius: 4px;
    color: var(--sl-ink);
    text-decoration: none;
    font-size: 0.92rem;
    font-weight: 600;
}

.guides-topics a:hover {
    background: var(--sr-teal-50);
    color: var(--sr-teal-800);
}

.guides-topics a i {
    width: 16px;
    color: var(--sr-teal-700);
    text-align: center;
}

.guides-topics a span {
    margin-left: auto;
    font-size: 0.75rem;
    color: var(--sl-muted);
    background: var(--sl-soft);
    border-radius: 999px;
    padding: 0 7px;
}

.guides-topics__tools {
    margin-top: 14px !important;
}

.guide-topic {
    margin-bottom: 32px;
    scroll-margin-top: 20px;
}

.guide-topic__head {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 14px;
}

.guide-topic__icon {
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    border-radius: 4px;
    background: var(--sr-teal-50);
    color: var(--sr-teal-700);
}

.guide-topic__head h2 {
    margin: 0;
    font-size: 1.25rem;
}

.guide-topic__head p {
    margin: 2px 0 0;
    color: var(--sl-muted);
    font-size: 0.92rem;
}

.guides-topics-main .guide-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 14px;
}

.guide-card {
    border-radius: 4px;
    height: 100%;
}

.guide-card__meta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 6px;
    font-size: 0.8rem !important;
    color: var(--sr-teal-800) !important;
    font-weight: 600;
}

.guides-empty {
    padding: 24px;
    text-align: center;
    color: var(--sl-muted);
    background: #fff;
    border: 1px dashed var(--sl-border);
    border-radius: 4px;
}

@media (max-width: 900px) {
    .guides-layout {
        grid-template-columns: 1fr;
    }
    .guides-topics {
        position: static;
    }
    .guides-topics ul {
        grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    }
}

.guide-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 16px;
}

.guide-meta i {
    margin-right: 4px;
}

.guide-keypoints {
    max-width: 720px;
    margin: 0 0 28px;
    padding: 18px 22px;
    border-radius: 4px;
    background: var(--sr-teal-50);
    border-left: 4px solid var(--sr-teal-700);
}

.guide-keypoints__title {
    margin: 0 0 8px;
    font-weight: 700;
    color: var(--sr-teal-800);
    display: flex;
    align-items: center;
    gap: 8px;
}

.guide-keypoints ul {
    margin: 0;
    padding-left: 20px;
    display: grid;
    gap: 6px;
}

.guide-keypoints li {
    font-size: 1.02rem;
    line-height: 1.6;
    color: var(--sl-ink);
}

.guide-toc-mobile {
    display: none;
    max-width: 720px;
    margin: 0 0 24px;
    padding: 12px 16px;
    background: #fff;
    border: 1px solid var(--sl-border);
    border-radius: 4px;
}

.guide-toc-mobile summary {
    cursor: pointer;
    font-weight: 700;
}

.guide-toc-mobile ul {
    margin: 10px 0 0;
    padding-left: 18px;
    display: grid;
    gap: 6px;
}

.guide-toc-mobile a {
    color: var(--sr-teal-700);
}

.guide-pager {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    max-width: 720px;
    margin: 32px 0 12px;
}

.guide-pager__link {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 14px 16px;
    border: 1px solid var(--sl-border);
    border-radius: 4px;
    background: #fff;
    text-decoration: none;
    color: var(--sl-ink);
}

.guide-pager__link:hover {
    border-color: var(--sr-teal-700);
    background: var(--sr-teal-50);
}

.guide-pager__link span {
    font-size: 0.8rem;
    color: var(--sl-muted);
    font-weight: 600;
}

.guide-pager__link strong {
    font-size: 0.98rem;
    line-height: 1.35;
}

.guide-pager__link--next {
    text-align: right;
    grid-column: 2;
}

.guide-back {
    max-width: 720px;
    margin: 8px 0 0;
}

.guide-back a {
    color: var(--sr-teal-700);
    font-weight: 600;
    text-decoration: none;
}

.guide-back i {
    margin-right: 6px;
}

@media (max-width: 900px) {
    .guide-toc-mobile {
        display: block;
    }
    .guide-aside .guide-toc {
        display: none;
    }
}

@media (max-width: 560px) {
    .guide-pager {
        grid-template-columns: 1fr;
    }
    .guide-pager__link--next {
        grid-column: 1;
    }
}

.guides-hero .about-lead {
    margin: 0 !important;
    padding: 0 !important;
    text-indent: 0;
    grid-column: auto;
    text-align: left;
}

.gh-hero {
    padding: 44px 0 36px;
    background: radial-gradient(1200px 400px at 85% -10%, rgba(var(--sl-lime-rgb), .16), transparent 60%), var(--sl-cream, #FBF8F3);
    border-bottom: 1px solid var(--sl-border);
}

.gh-hero__inner {
    max-width: 860px;
    text-align: center;
}

.gh-hero h1 {
    font-size: clamp(2rem, 4vw, 2.9rem);
    line-height: 1.1;
    margin: 18px 0 10px;
    letter-spacing: -0.01em;
}

.gh-hero__lead {
    font-size: 1.12rem;
    color: var(--sl-muted);
    max-width: 620px;
    margin: 0 auto 22px !important;
    padding: 0 !important;
}

.gh-switch {
    display: inline-flex;
    padding: 4px;
    gap: 4px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid var(--sl-border);
    box-shadow: 0 1px 2px rgba(15,23,42,.05);
}

.gh-switch__opt {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    border-radius: 999px;
    font-size: .92rem;
    font-weight: 600;
    color: var(--sl-muted);
    text-decoration: none;
}

.gh-switch__opt:hover {
    color: var(--sl-ink);
}

.gh-switch__opt.is-active {
    background: var(--sl-ink);
    color: #fff;
}

.gh-search {
    position: relative;
    display: block;
    max-width: 600px;
    margin: 0 auto;
}

.gh-search i {
    position: absolute;
    left: 18px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--sl-muted);
    font-size: 1.05rem;
}

.gh-search input {
    width: 100%;
    height: 56px;
    padding: 0 18px 0 48px;
    font-size: 1.05rem;
    border-radius: 999px;
    border: 1px solid var(--sl-border-strong, #cbd5e1);
    background: #fff;
    box-shadow: 0 6px 20px rgba(15,23,42,.06);
}

.gh-search input:focus {
    outline: none;
    border-color: var(--sl-lime);
    box-shadow: 0 0 0 4px rgba(var(--sl-lime-rgb), .18);
}

.gh-questions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    margin-top: 18px;
}

.gh-question {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid var(--sl-border);
    color: var(--sl-ink);
    font-size: .92rem;
    font-weight: 500;
    text-decoration: none;
    transition: border-color .15s, transform .15s;
}

.gh-question i {
    font-size: .75rem;
    color: var(--sl-lime-deep);
}

.gh-question:hover {
    border-color: var(--sl-lime);
    transform: translateY(-1px);
}

.gh-section-head {
    margin: 0 0 22px;
}

.gh-section-head h2 {
    font-size: clamp(1.45rem, 2.4vw, 1.85rem);
    margin: 0 0 4px;
}

.gh-section-head p {
    margin: 0;
    color: var(--sl-muted);
    font-size: 1rem;
}

.gh-journey-section {
    padding-top: 44px;
}

.gh-journey {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 18px;
    counter-reset: none;
}

.gh-stage {
    position: relative;
    display: grid;
    grid-template-columns: 44px 1fr;
    gap: 16px;
    margin: 0;
}

.gh-stage__marker {
    position: relative;
    display: flex;
    justify-content: center;
}

.gh-stage__marker span {
    position: relative;
    z-index: 1;
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--sl-lime);
    color: #fff;
    font-weight: 800;
    font-size: 1.05rem;
    box-shadow: 0 0 0 6px #fff;
}

.gh-stage:not(:last-child) .gh-stage__marker::after {
    content: "";
    position: absolute;
    top: 40px;
    bottom: -18px;
    left: 50%;
    width: 2px;
    margin-left: -1px;
    background: repeating-linear-gradient(to bottom, rgba(var(--sl-lime-rgb), .45) 0 6px, transparent 6px 12px);
}

.gh-journey.is-filtered .gh-stage__marker::after {
    display: none;
}

.gh-stage__card {
    background: #fff;
    border: 1px solid var(--sl-border);
    border-radius: 8px;
    padding: 20px 22px;
    box-shadow: 0 1px 2px rgba(15,23,42,.04);
}

.gh-stage__head {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    margin-bottom: 14px;
}

.gh-stage__icon {
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 8px;
    background: var(--sl-hero-wash);
    color: var(--sl-lime-deep);
    font-size: 1.1rem;
}

.gh-stage__step {
    margin: 0 !important;
    font-size: .74rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--sl-lime-deep);
}

.gh-stage__head h3 {
    margin: 2px 0 4px;
    font-size: 1.22rem;
    line-height: 1.25;
}

.gh-stage__blurb {
    margin: 0 !important;
    color: var(--sl-muted);
    font-size: .98rem;
}

.gh-stage__guides {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 10px;
}

.gh-stage__guides li {
    margin: 0;
}

.gh-stage__guides a {
    display: grid;
    gap: 4px;
    height: 100%;
    padding: 14px 16px;
    border-radius: 6px;
    border: 1px solid var(--sl-border);
    background: var(--sl-bg-muted, #f8fafc);
    text-decoration: none;
    color: inherit;
    transition: border-color .15s, background .15s;
}

.gh-stage__guides a:hover {
    border-color: var(--sl-lime);
    background: #fff;
}

.gh-guide__title {
    font-weight: 700;
    color: var(--sl-ink);
    font-size: 1rem;
    line-height: 1.35;
}

.gh-stage__guides a:hover .gh-guide__title {
    color: var(--sl-lime-deep);
}

.gh-guide__summary {
    color: var(--sl-muted);
    font-size: .9rem;
    line-height: 1.5;
}

.gh-guide__meta {
    font-size: .8rem;
    color: var(--sl-muted);
    margin-top: 2px;
}

.gh-guide__meta i {
    margin-right: 4px;
}

.gh-stage__tool {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 14px;
    font-size: .92rem;
    font-weight: 600;
    color: var(--sl-lime-deep);
    text-decoration: none;
}

.gh-stage__tool:hover {
    text-decoration: underline;
}

@media (min-width: 1000px) {
    .gh-stage {
        grid-template-columns: 64px 1fr;
        gap: 20px;
    }
    .gh-stage__marker span {
        width: 52px;
        height: 52px;
        font-size: 1.25rem;
    }
    .gh-stage:not(:last-child) .gh-stage__marker::after {
        top: 52px;
    }
    .gh-stage__card {
        padding: 24px 26px;
    }
}

.gh-templates-section,
.gh-answers-section {
    padding-top: 12px;
}

.gh-templates {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 14px;
}

.gh-template {
    display: grid;
    gap: 6px;
    align-content: start;
    padding: 20px;
    border-radius: 8px;
    border: 1px dashed var(--sl-border-strong, #cbd5e1);
    background: #fff;
    text-decoration: none;
    color: inherit;
}

.gh-template:hover {
    border-style: solid;
    border-color: var(--sl-lime);
}

.gh-template__icon {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border-radius: 6px;
    background: var(--sl-hero-wash);
    color: var(--sl-lime-deep);
    margin-bottom: 4px;
}

.gh-template strong {
    color: var(--sl-ink);
    font-size: 1.02rem;
}

.gh-template > span:not(.gh-template__icon):not(.gh-template__cta) {
    color: var(--sl-muted);
    font-size: .9rem;
    line-height: 1.5;
}

.gh-template__cta {
    margin-top: 6px;
    font-size: .88rem;
    font-weight: 600;
    color: var(--sl-lime-deep);
}

.gh-answers {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    align-items: start;
}

.gh-answer {
    background: #fff;
    border: 1px solid var(--sl-border);
    border-radius: 8px;
    padding: 0;
}

.gh-answer summary {
    cursor: pointer;
    list-style: none;
    padding: 16px 48px 16px 18px;
    position: relative;
    font-weight: 600;
    font-size: 1rem;
    color: var(--sl-ink);
    line-height: 1.4;
}

.gh-answer summary::-webkit-details-marker {
    display: none;
}

.gh-answer summary::after {
    content: "+";
    position: absolute;
    right: 18px;
    top: 50%;
    transform: translateY(-50%);
    width: 24px;
    height: 24px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--sl-hero-wash);
    color: var(--sl-lime-deep);
    font-weight: 700;
}

.gh-answer[open] summary::after {
    content: "–";
}

.gh-answer p {
    margin: 0 !important;
    padding: 0 18px 10px !important;
    font-size: 1rem;
    line-height: 1.65;
    color: var(--sl-body, #334155);
}

.gh-answer a {
    display: inline-flex;
    gap: 6px;
    align-items: center;
    padding: 0 18px 16px;
    font-size: .9rem;
    font-weight: 600;
    color: var(--sl-lime-deep);
    text-decoration: none;
}

.gh-cta-section {
    padding-top: 12px;
}

.gh-cta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 16px 24px;
    padding: 26px 28px;
    border-radius: 10px;
    background: var(--sl-ink);
    color: #fff;
}

.gh-cta h2 {
    color: #fff;
    margin: 0 0 4px;
    font-size: 1.4rem;
}

.gh-cta p {
    margin: 0 !important;
    color: rgba(255,255,255,.78);
}

.gh-cta .btn-primary {
    background: var(--sl-lime);
    border-color: var(--sl-lime);
    color: #fff;
}

@media (max-width: 640px) {
    .gh-hero {
        padding: 28px 0 26px;
    }
    .gh-switch {
        display: flex;
        width: 100%;
    }
    .gh-switch__opt {
        flex: 1;
        justify-content: center;
        padding: 8px 10px;
        font-size: .84rem;
    }
    .gh-search input {
        height: 50px;
        font-size: 1rem;
    }
    .gh-questions {
        justify-content: flex-start;
        flex-wrap: nowrap;
        overflow-x: auto;
        margin: 16px -16px 0;
        padding: 0 16px 4px;
        scrollbar-width: none;
    }
    .gh-question {
        flex: 0 0 auto;
    }
    .gh-stage {
        grid-template-columns: 32px 1fr;
        gap: 10px;
    }
    .gh-stage__marker span {
        width: 32px;
        height: 32px;
        font-size: .92rem;
        box-shadow: 0 0 0 4px #fff;
    }
    .gh-stage:not(:last-child) .gh-stage__marker::after {
        top: 32px;
    }
    .gh-stage__card {
        padding: 16px;
    }
    .gh-stage__icon {
        display: none;
    }
    .gh-answers {
        grid-template-columns: 1fr;
    }
    .gh-cta {
        padding: 22px 20px;
    }
}

.gs__inner {
    max-width: 760px;
}

.gs-switch {
    display: inline-flex;
    gap: 20px;
    margin-bottom: 18px;
    border-bottom: 1px solid var(--sl-border);
}

.gs-switch a {
    padding: 6px 0 10px;
    margin-bottom: -1px;
    font-weight: 600;
    color: var(--sl-muted);
    text-decoration: none;
    border-bottom: 2px solid transparent;
}

.gs-switch a:hover {
    color: var(--sl-ink);
}

.gs-switch a.is-active {
    color: var(--sl-ink);
    border-bottom-color: var(--sl-lime);
}

.gs h1 {
    font-size: clamp(2rem, 4vw, 2.6rem);
    margin: 0 0 6px;
}

.gs__lead {
    font-size: 1.1rem;
    color: var(--sl-muted);
    margin: 0 0 20px !important;
    padding: 0 !important;
}

.gs-search {
    display: block;
    margin: 0 0 12px;
}

.gs-search input {
    width: 100%;
    padding: 0 16px;
    font-size: 1rem;
    border: 1px solid var(--sl-border-strong, #cbd5e1);
    background: #fff;
}

.gs-search input:focus {
    outline: none;
    border-color: var(--sl-lime);
    box-shadow: 0 0 0 3px rgba(var(--sl-lime-rgb), .18);
}

.gs-group {
    margin-top: 32px;
}

.gs-group h2 {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 1.2rem;
    margin: 0 0 6px;
}

.gs-group__num {
    display: inline-grid;
    place-items: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--sl-lime);
    color: #fff;
    font-size: .85rem;
    font-weight: 700;
}

.gs-group ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.gs-group li {
    display: grid;
    gap: 2px;
    margin: 0;
    border-bottom: 1px solid var(--sl-border);
}

.gs-group li a {
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--sl-ink);
}

.gs-group li a:hover {
    color: var(--sl-lime-deep);
}

.gs-group li span {
    font-size: .95rem;
    line-height: 1.5;
    color: var(--sl-muted);
}

.gs-empty {
    margin-top: 24px;
    color: var(--sl-muted);
}

.gs .guide-disclaimer {
    margin-top: 36px;
}

.gs-hero {
    background: var(--sl-hero-wash);
    border-bottom: 1px solid var(--sl-border);
}

.gs-search {
    position: relative;
}

.gs-search i {
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--sl-muted);
}

.gs-search input {
    height: 52px;
    padding-left: 44px;
    border-radius: 8px;
    box-shadow: 0 4px 14px rgba(15,23,42,.05);
}

.gs-questions {
    display: flex;
    align-items: center;
}

.gs-questions span {
    font-size: .9rem;
    color: var(--sl-muted);
    margin-right: 2px;
}

.gs-questions a {
    border-radius: 999px;
    background: #fff;
    border: 1px solid var(--sl-border);
    color: var(--sl-ink);
    text-decoration: none;
}

.gs-questions a:hover {
    border-color: var(--sl-lime);
    color: var(--sl-lime-deep);
}

.gs-group h2 {
    margin-bottom: 12px;
}

.gs-group ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.gs-group li {
    padding: 0;
    border: 0;
}

.gs-group li a {
    display: grid;
    gap: 4px;
    height: 100%;
    padding: 16px 18px;
    border-radius: 8px;
    border: 1px solid var(--sl-border);
    background: #fff;
    text-decoration: none;
    transition: border-color .15s, box-shadow .15s;
}

.gs-group li a:hover {
    border-color: var(--sl-lime);
    box-shadow: 0 4px 14px rgba(15,23,42,.06);
    text-decoration: none;
}

.gs-group li a strong {
    font-size: 1.04rem;
    line-height: 1.35;
    color: var(--sl-ink);
}

.gs-group li a:hover strong {
    color: var(--sl-lime-deep);
}

.gs-group li a span {
    font-size: .93rem;
    line-height: 1.5;
    color: var(--sl-muted);
}

.gs-group li a small {
    margin-top: 4px;
    font-size: .8rem;
    color: var(--sl-muted);
}

.gs-group li a small i {
    margin-right: 4px;
}

.gs-cta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px 20px;
    margin-top: 40px;
    padding: 20px 22px;
    border-radius: 8px;
    background: var(--sl-ink);
}

.gs-cta p {
    margin: 0 !important;
    color: rgba(255,255,255,.8);
}

.gs-cta strong {
    color: #fff;
}

.gs-cta .btn-primary {
    background: var(--sl-lime);
    border-color: var(--sl-lime);
    color: #fff;
}

@media (max-width: 640px) {
    .gs-hero {
        padding: 28px 0 22px;
    }
    .gs-group ul {
        grid-template-columns: 1fr;
    }
}

.gs-questions {
    flex-wrap: nowrap;
    gap: 8px;
    margin-top: 10px;
    overflow-x: auto;
    scrollbar-width: none;
}

.gs-questions::-webkit-scrollbar {
    display: none;
}

.gs-questions span,
.gs-questions a {
    flex: 0 0 auto;
    white-space: nowrap;
}

.gs-questions a {
    padding: 5px 12px;
    font-size: .86rem;
    line-height: 1.4;
}

@media (max-width: 640px) {
    .gs-questions {
        margin-right: -16px;
        padding-right: 16px;
    }
}

.gs-hero .gs__inner,
.gs .gs__inner {
    max-width: 1200px;
}

@media (min-width: 1000px) {
    .gs-group ul {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.gs-hero {
    padding: 40px 0 36px;
}

.gs-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
    gap: 32px 56px;
    align-items: center;
}

.gs-hero .gs-search,
.gs-hero .gs__lead {
    max-width: none;
}

.gs-hero .gs-search {
    margin: 0;
}

.gs-popular {
    background: #fff;
    border: 1px solid var(--sl-border);
}

.gs-popular h2 {
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--sl-lime-deep);
}

.gs-popular ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.gs-popular li {
    margin: 0;
    border-top: 1px solid var(--sl-border);
}

.gs-popular li:first-child {
    border-top: 0;
}

.gs-popular a {
    display: flex;
    align-items: center;
    color: var(--sl-ink);
    text-decoration: none;
}

.gs-popular a i {
    transition: transform .15s;
}

.gs-popular a:hover i {
    color: var(--sl-lime-deep);
    transform: translateX(3px);
}

.gs {
    padding-top: 36px;
}

.gs-board {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(var(--gs-cols, 4), minmax(0, 1fr));
    gap: 16px;
    align-items: stretch;
}

.gs-col {
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: 18px 16px 16px;
    background: var(--sl-bg-muted, #f8fafc);
    border: 1px solid var(--sl-border);
}

.gs-col__head {
    display: flex;
    align-items: center;
    gap: 10px;
}

.gs-col__head h2 {
    font-size: 1.05rem;
    line-height: 1.3;
    margin: 0;
}

.gs-col .gs-group__num {
    flex: 0 0 auto;
}

.gs-col__blurb {
    margin: 8px 0 14px !important;
    font-size: .88rem;
    line-height: 1.5;
    color: var(--sl-muted);
}

.gs-col__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 10px;
}

.gs-col__list li {
    margin: 0;
}

.gs-col__list a {
    display: grid;
    gap: 4px;
    padding: 14px;
    border: 1px solid var(--sl-border);
    background: #fff;
    text-decoration: none;
    transition: border-color .15s, box-shadow .15s;
}

.gs-col__list a:hover {
    border-color: var(--sl-lime);
    box-shadow: 0 4px 14px rgba(15,23,42,.06);
}

.gs-col__list strong {
    font-size: .98rem;
    line-height: 1.35;
    color: var(--sl-ink);
}

.gs-col__list a:hover strong {
    color: var(--sl-lime-deep);
}

.gs-col__list span {
    font-size: .86rem;
    line-height: 1.45;
    color: var(--sl-muted);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.gs-col__list small {
    font-size: .78rem;
    color: var(--sl-muted);
}

.gs-col__list small i {
    margin-right: 4px;
}

.gs-col__tool {
    margin-top: auto;
    padding-top: 14px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: .88rem;
    font-weight: 600;
    color: var(--sl-lime-deep);
    text-decoration: none;
}

.gs-col__tool i {
    font-size: .75rem;
}

.gs-col__tool:hover {
    text-decoration: underline;
}

.gs-templates {
    margin-top: 36px;
}

.gs-templates h2 {
    font-size: 1.2rem;
    margin: 0 0 12px;
}

.gs-templates ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.gs-templates li {
    margin: 0;
}

.gs-templates a {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    height: 100%;
    padding: 16px 18px;
    border: 1px dashed var(--sl-border-strong, #cbd5e1);
    background: #fff;
    text-decoration: none;
}

.gs-templates a:hover {
    border-style: solid;
    border-color: var(--sl-lime);
}

.gs-templates__icon {
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    background: var(--sl-hero-wash);
    color: var(--sl-lime-deep);
}

.gs-templates strong {
    display: block;
    color: var(--sl-ink);
    margin-bottom: 2px;
}

.gs-templates a span span {
    font-size: .88rem;
    line-height: 1.45;
    color: var(--sl-muted);
}

@media (max-width: 1100px) {
    .gs-board {
        grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    }
}

@media (max-width: 860px) {
    .gs-hero__grid {
        grid-template-columns: 1fr;
    }
    .gs-templates ul {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .gs-board {
        grid-template-columns: 1fr;
    }
    .gs-col__list span {
        -webkit-line-clamp: unset;
        display: block;
    }
}

.gs-templates a > span:last-child {
    display: block;
    line-height: 1.45;
}

.gs-templates a span span {
    display: block;
}

.gs-popular {
    padding: 16px;
    border-radius: 10px;
    box-shadow: none;
}

.gs-popular h2 {
    margin: 0 0 8px;
    padding: 0 10px;
    font-size: .74rem;
}

.gs-popular li,
.gs-popular li:first-child {
    border: 0;
}

.gs-popular a {
    justify-content: flex-start;
    gap: 10px;
    padding: 8px 10px;
    border-radius: 6px;
    font-size: .95rem;
    font-weight: 500;
    line-height: 1.4;
}

.gs-popular a i {
    flex: 0 0 auto;
    font-size: .95rem;
    color: var(--sl-lime);
    transform: none !important;
}

.gs-popular a:hover {
    background: var(--sl-hero-wash);
    color: var(--sl-lime-deep);
}

.gs-hero__grid--single {
    grid-template-columns: 1fr;
}

.gs-hero__grid--single .gs-search {
    max-width: 720px;
}

.gs-col,
.gs-col__list a,
.gs-templates a,
.gs-templates__icon {
    border-radius: 4px;
}

@media (max-width: 900px) {
    .lha-calc {
        grid-template-columns: minmax(0, 1fr);
    }
    .lha-calc .lha-calc__form.form-card {
        position: static;
    }
}

@media (max-width: 640px) {
    .admin-topbar {
        flex-wrap: wrap;
        row-gap: 8px;
    }
    .admin-topbar h1 {
        flex: 1 1 0;
        white-space: normal;
        overflow: visible;
        text-overflow: clip;
        line-height: 1.25;
    }
    .admin-topbar-actions {
        order: 10;
        flex: 1 1 100%;
        width: 100% !important;
        justify-content: flex-start;
        flex-wrap: wrap;
    }
    .admin-topbar-actions .btn {
        width: auto;
    }
    .address-finder__row input {
        min-width: 0;
        width: auto;
        flex: 1 1 auto;
    }
    .address-finder__row .btn {
        flex: 0 0 auto;
        white-space: nowrap;
    }
    .table-wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    .email-templates-table,
    .recruit-table,
    .admin-listings-table {
        min-width: 640px;
    }
    .reports-table {
        min-width: 820px;
    }
}

.checklist__optional {
    display: inline-block;
    justify-self: start;
    align-self: flex-start;
    width: auto;
    margin: 2px 0 4px;
    padding: 1px 8px;
    border-radius: 999px;
    background: var(--sl-bg-muted, #f1f5f9);
    border: 1px solid var(--sl-border);
    font-size: .72rem;
    font-weight: 600;
    color: var(--sl-muted);
    vertical-align: 1px;
}

.checklist li.is-optional .checklist__tick i {
    color: var(--sl-border-strong, #cbd5e1);
}

.listing-posted__verify {
    margin-top: 8px !important;
    padding-top: 8px;
    border-top: 1px solid rgba(0,0,0,.08);
}

.search-bar__extra .search-bar__checks[aria-label="Features"]::before {
    content: none;
}

.search-bar__extra {
    grid-template-columns: minmax(0, 1fr);
}

.search-bar__extra > .search-bar__field {
    max-width: 420px;
}

.search-bar__group {
    display: grid;
    gap: 6px;
}

.search-bar__group-label {
    font-size: .8rem;
    font-weight: 700;
    color: var(--sl-ink);
}

.search-bar__group .search-bar__checks {
    min-height: 0;
    padding-top: 0;
}

.search-bar__quick {
    margin-top: 12px;
}

.lha-toggle {
    display: inline-flex;
    align-items: flex-start;
    gap: 12px;
    cursor: pointer;
    padding: 10px 14px;
    border: 1px solid var(--sl-border);
    border-radius: 4px;
    background: #fff;
    max-width: 100%;
}

.lha-toggle input {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
}

.lha-toggle__switch {
    flex: 0 0 auto;
    position: relative;
    width: 40px;
    height: 22px;
    margin-top: 1px;
    border-radius: 999px;
    background: var(--sl-border-strong, #cbd5e1);
    transition: background .15s;
}

.lha-toggle__switch::after {
    content: "";
    position: absolute;
    top: 3px;
    left: 3px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 2px rgba(0,0,0,.2);
    transition: transform .15s;
}

.lha-toggle input:checked + .lha-toggle__switch {
    background: var(--sl-lime);
}

.lha-toggle input:checked + .lha-toggle__switch::after {
    transform: translateX(18px);
}

.lha-toggle input:focus-visible + .lha-toggle__switch {
    outline: 2px solid var(--sl-lime);
    outline-offset: 2px;
}

.lha-toggle:has(input:checked) {
    border-color: var(--sl-lime);
    background: var(--sl-hero-wash);
}

.lha-toggle__text {
    display: grid;
    gap: 2px;
}

.lha-toggle__text strong {
    font-size: .95rem;
    color: var(--sl-ink);
}

.lha-toggle__text small {
    font-size: .82rem;
    color: var(--sl-muted);
    line-height: 1.45;
}

.lha-toggle__text a {
    color: var(--sl-lime-deep);
    font-weight: 600;
}

.house-profile-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 16px;
}

.house-profile-fields__note {
    grid-column: 1 / -1;
}

.house-profile {
    margin: 20px 0;
    padding: 18px 20px;
    border: 1px solid var(--sl-border);
    border-radius: 4px;
    background: #fff;
}

.house-profile h2 {
    font-size: 1.15rem;
    margin: 0 0 12px;
}

.house-profile ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 20px;
}

.house-profile li {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    margin: 0;
}

.house-profile li i {
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    border-radius: 4px;
    background: var(--sl-hero-wash);
    color: var(--sl-lime-deep);
    font-size: .85rem;
}

.house-profile li span {
    display: grid;
    gap: 1px;
    font-size: .95rem;
    color: var(--sl-ink);
    line-height: 1.35;
}

.house-profile li small {
    font-size: .76rem;
    color: var(--sl-muted);
}

.house-profile__note {
    margin: 14px 0 0 !important;
    padding-top: 12px;
    border-top: 1px solid var(--sl-border);
    color: var(--sl-body);
}

@media (max-width: 640px) {
    .house-profile-fields,
    .house-profile ul {
        grid-template-columns: 1fr;
    }
    .lha-toggle {
        display: flex;
    }
}

.verify-page {
    display: grid;
    gap: 16px;
    max-width: 820px;
}

.verify-intro h2 {
    margin: 10px 0 6px;
    font-size: 1.25rem;
}

.verify-intro > p {
    color: var(--sl-muted);
    margin: 0 0 12px;
}

.verify-benefits {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 10px;
}

.verify-benefits li {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    margin: 0;
}

.verify-benefits i {
    flex: 0 0 auto;
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    border-radius: 4px;
    background: var(--sl-hero-wash);
    color: var(--sl-lime-deep);
}

.verify-benefits span {
    line-height: 1.5;
}

.verify-status {
    display: flex;
    gap: 14px;
    align-items: flex-start;
}

.verify-status > i {
    font-size: 1.6rem;
    margin-top: 2px;
}

.verify-status h2 {
    margin: 0 0 4px;
    font-size: 1.15rem;
}

.verify-status p {
    margin: 0;
    color: var(--sl-muted);
}

.verify-status--ok > i {
    color: var(--sl-lime);
}

.verify-status--wait > i {
    color: #B45309;
}

.verify-form h2 {
    margin: 0 0 4px;
    font-size: 1.15rem;
}

.verify-file input[type=file] {
    display: block;
    width: 100%;
    padding: 10px;
    border: 1px dashed var(--sl-border-strong, #cbd5e1);
    border-radius: 4px;
    background: var(--sl-bg-muted, #f8fafc);
}

.verify-file .form-hint {
    display: block;
    margin-top: 4px;
}

.verify-admin-hint {
    margin: 0 0 14px;
    max-width: 760px;
}

.verify-queue {
    display: grid;
    gap: 14px;
}

.verify-item__head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.verify-item__facts {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 24px;
    margin: 12px 0;
}

.verify-item__facts div {
    display: grid;
    gap: 1px;
}

.verify-item__facts dt {
    font-size: .75rem;
    color: var(--sl-muted);
    font-weight: 600;
}

.verify-item__facts dd {
    margin: 0;
    font-weight: 600;
    color: var(--sl-ink);
}

.verify-item__note {
    background: var(--sl-bg-muted, #f8fafc);
    padding: 10px 12px;
    border-radius: 4px;
    margin: 0 0 12px !important;
}

.verify-docs {
    list-style: none;
    margin: 0 0 14px;
    padding: 0;
    display: grid;
    gap: 8px;
}

.verify-docs li {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 10px;
    margin: 0;
    padding: 10px 12px;
    border: 1px solid var(--sl-border);
    border-radius: 4px;
}

.verify-docs li i {
    color: var(--sl-lime-deep);
}

.verify-docs li a {
    font-weight: 700;
}

.verify-docs li small {
    color: var(--sl-muted);
}

.verify-item__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: flex-start;
}

.verify-decline summary {
    list-style: none;
    cursor: pointer;
}

.verify-decline summary::-webkit-details-marker {
    display: none;
}

.verify-decline[open] {
    flex: 1 1 100%;
}

.verify-decline form {
    display: grid;
    gap: 8px;
    margin-top: 10px;
    max-width: 560px;
}

.verify-decline label {
    font-size: .88rem;
    font-weight: 600;
}

.verify-item__decided {
    margin: 0 !important;
    color: var(--sl-muted);
}

.photo-tile {
    position: relative;
}

.photo-warnings {
    position: absolute;
    top: 6px;
    left: 6px;
    right: 6px;
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    pointer-events: none;
}

.photo-warning {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 7px;
    border-radius: 4px;
    background: #FEF3C7;
    color: #92400E;
    font-size: .72rem;
    font-weight: 700;
    box-shadow: 0 1px 2px rgba(0,0,0,.15);
    pointer-events: auto;
}

.scam-flags h2 {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 1.1rem;
    margin: 0 0 4px;
}

.scam-flags h2 i {
    color: #B45309;
}

.scam-flags ul {
    list-style: none;
    margin: 10px 0 0;
    padding: 0;
    display: grid;
    gap: 8px;
}

.scam-flags li {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin: 0;
    padding: 10px 12px;
    border: 1px solid #FDE68A;
    border-left: 4px solid #F59E0B;
    border-radius: 4px;
    background: #FFFBEB;
}

.scam-flags li > div {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.scam-flags li span {
    font-size: .9rem;
    color: var(--sl-body);
}

.scam-flags li small {
    font-size: .78rem;
    color: var(--sl-muted);
}

.scam-flags--list {
    margin-bottom: 16px;
}

/* ==========================================================================
   Room photo carousel
   ========================================================================== */
.listing-carousel__viewport { border-radius: 4px; background: #0f172a; }
.listing-carousel__track { transition: transform .4s cubic-bezier(.22, .61, .36, 1); }
.listing-carousel__nav {
    width: 44px; height: 44px; border-radius: 50%;
    background: rgba(255, 255, 255, .9); color: var(--sl-ink);
    -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
    box-shadow: 0 6px 18px rgba(15, 23, 42, .18); font-size: .95rem;
    opacity: 0; transition: opacity .2s ease, transform .2s ease, background .2s ease;
}
.listing-carousel__nav--prev { left: 14px; }
.listing-carousel__nav--next { right: 14px; }
.listing-carousel__nav:hover { background: #fff; color: var(--sl-lime-deep); transform: translateY(-50%) scale(1.06); }
.listing-carousel__viewport:hover .listing-carousel__nav,
.listing-carousel:focus-within .listing-carousel__nav { opacity: 1; }
@media (hover: none) { .listing-carousel__nav { opacity: 1; width: 38px; height: 38px; } }
.listing-carousel__count {
    left: 14px; right: auto; bottom: 14px; display: inline-flex; align-items: center; gap: 6px;
    padding: 5px 11px; border-radius: 999px; background: rgba(15, 23, 42, .62);
    -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
    font-size: .8rem; font-weight: 600; letter-spacing: .02em;
}
.listing-carousel__count i { font-size: .78rem; opacity: .85; }
.listing-carousel__expand {
    position: absolute; top: 14px; right: 14px; z-index: 2; width: 38px; height: 38px;
    display: grid; place-items: center; padding: 0; border: 0; border-radius: 50%; cursor: pointer;
    background: rgba(15, 23, 42, .55); color: #fff; font-size: .9rem;
    -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); transition: background .2s ease;
}
.listing-carousel__expand:hover { background: rgba(15, 23, 42, .8); }
.listing-carousel__viewport.is-fullscreen { aspect-ratio: auto; border-radius: 0; background: #000; }
.listing-carousel__viewport.is-fullscreen .listing-carousel__slide img { object-fit: contain; }
.listing-carousel__viewport.is-fullscreen .listing-carousel__nav { opacity: 1; width: 52px; height: 52px; }
.listing-carousel__viewport .listing-gallery__more { left: auto; right: 14px; bottom: 14px; border-radius: 999px; padding: 5px 11px; }
.listing-carousel__dots { display: none; }

.listing-carousel__thumbs {
    position: relative; gap: 10px; margin-top: 12px; padding: 3px 3px 4px;
    scrollbar-width: none; scroll-snap-type: x proximity; scroll-padding: 3px;
}
.listing-carousel__thumbs::-webkit-scrollbar { display: none; }
.listing-carousel__thumbs.has-more-right { -webkit-mask-image: linear-gradient(90deg, #000 85%, transparent); mask-image: linear-gradient(90deg, #000 85%, transparent); }
.listing-carousel__thumbs.has-more-left { -webkit-mask-image: linear-gradient(90deg, transparent, #000 15%); mask-image: linear-gradient(90deg, transparent, #000 15%); }
.listing-carousel__thumbs.has-more-left.has-more-right { -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); }
.listing-carousel__thumb {
    flex: 0 0 88px; border: 0; border-radius: 4px; opacity: .55; scroll-snap-align: start;
    outline: 2px solid transparent; outline-offset: 2px; transition: opacity .2s ease, outline-color .2s ease;
}
.listing-carousel__thumb img { border-radius: 4px; }
.listing-carousel__thumb:hover { opacity: .85; }
.listing-carousel__thumb.is-active { opacity: 1; outline-color: var(--sl-lime); }
.listing-carousel__thumb:focus-visible { outline-color: var(--sl-lime-deep); opacity: 1; }

@media (max-width: 640px) {
    .listing-carousel__thumbs { display: none; }
    .listing-carousel__dots {
        position: absolute; left: 0; right: 0; bottom: 16px; z-index: 2;
        display: flex; justify-content: center; gap: 6px; pointer-events: none;
    }
    .listing-carousel__dots span { width: 6px; height: 6px; border-radius: 999px; background: rgba(255, 255, 255, .6); box-shadow: 0 0 2px rgba(0, 0, 0, .35); transition: width .2s ease, background .2s ease; }
    .listing-carousel__dots span.is-active { width: 18px; background: #fff; }
    .listing-carousel__count { bottom: auto; top: 12px; left: 12px; }
    .listing-carousel__expand { top: 12px; right: 12px; }
}
.listing-carousel .listing-carousel__viewport button.listing-carousel__nav,
.listing-carousel .listing-carousel__viewport button.listing-carousel__expand { border-radius: 50% !important; }
.listing-carousel .listing-carousel__thumbs button.listing-carousel__thumb { border-radius: 4px !important; }

/* ==========================================================================
   Private demand page (/demand-insights) and its admin controls
   ========================================================================== */
.di-hero { padding: 40px 0 30px; background: var(--sl-hero-wash); border-bottom: 1px solid var(--sl-border); }
.di-private { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; background: #fff; border: 1px solid var(--sl-border); font-size: .78rem; font-weight: 700; color: var(--sl-lime-deep); }
.di-hero h1 { font-size: clamp(1.9rem, 3.6vw, 2.6rem); margin: 14px 0 6px; }
.di-lead { max-width: 720px; font-size: 1.08rem; color: var(--sl-muted); margin: 0 0 18px !important; padding: 0 !important; }
.di-period { display: inline-flex; gap: 4px; padding: 4px; border-radius: 4px; background: #fff; border: 1px solid var(--sl-border); }
.di-period a { padding: 6px 14px; border-radius: 4px; font-size: .9rem; font-weight: 600; color: var(--sl-muted); text-decoration: none; }
.di-period a.is-active { background: var(--sl-ink); color: #fff; }
.di-body { padding-top: 28px; }
.di-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 30px; }
.di-stats div { display: grid; gap: 2px; padding: 16px 18px; border: 1px solid var(--sl-border); border-radius: 4px; background: #fff; }
.di-stats strong { font-size: 1.7rem; line-height: 1.1; color: var(--sl-ink); }
.di-stats span { font-size: .86rem; color: var(--sl-muted); }
.di-h2 { font-size: 1.3rem; margin: 0 0 12px; }
.di-note { margin: -6px 0 12px !important; color: var(--sl-muted); font-size: .9rem; }
.di-hotspots { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-bottom: 32px; }
.di-hotspot { position: relative; padding: 18px 20px; border-radius: 4px; background: var(--sl-ink); color: #fff; }
.di-hotspot__rank { position: absolute; top: 16px; right: 18px; font-size: 2rem; font-weight: 800; line-height: 1; color: rgba(255,255,255,.18); }
.di-hotspot h3 { color: #fff; font-size: 1.25rem; margin: 0 0 4px; }
.di-hotspot__flag { margin: 0 0 14px !important; font-size: .82rem; font-weight: 700; color: #FCD34D; }
.di-hotspot dl { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 0; }
.di-hotspot dl div { display: grid; gap: 1px; }
.di-hotspot dt { font-size: .72rem; color: rgba(255,255,255,.65); }
.di-hotspot dd { margin: 0; font-size: 1.15rem; font-weight: 700; }
.di-table td { vertical-align: middle; }
.di-rank { color: var(--sl-muted); font-weight: 700; width: 36px; }
.di-bar-cell { min-width: 180px; }
.di-bar-cell .di-bar { display: inline-block; vertical-align: middle; width: calc(100% - 52px); height: 8px; border-radius: 999px; background: var(--sl-bg-muted, #f1f5f9); overflow: hidden; }
.di-bar-cell .di-bar span { display: block; height: 100%; border-radius: 999px; background: var(--sl-lime); }
.di-score { display: inline-block; width: 46px; text-align: right; font-weight: 700; font-size: .9rem; color: var(--sl-ink); }
.di-flag { display: inline-block; margin-left: 6px; padding: 1px 8px; border-radius: 999px; font-size: .72rem; font-weight: 700; background: #FEF3C7; color: #92400E; }
.di-flag--none { background: #FEE2E2; color: #991B1B; }
.di-footnote { margin-top: 28px; padding-top: 16px; border-top: 1px solid var(--sl-border); font-size: .86rem; color: var(--sl-muted); }
.di-footnote p { margin: 0 0 8px !important; }
@media (max-width: 860px) {
    .di-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .di-hotspots { grid-template-columns: 1fr; }
}
@media (max-width: 640px) { .di-table { min-width: 720px; } }

.demand-share h2 i { color: var(--sl-lime-deep); margin-right: 4px; }
.demand-share__form { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1.2fr) minmax(0, .8fr) auto; gap: 12px; align-items: end; margin: 12px 0 16px; }
.demand-share__form .form-group { margin: 0; }
.demand-share__link { display: flex; gap: 6px; align-items: center; min-width: 280px; }
.demand-share__link input { flex: 1; min-width: 0; height: 34px; font-size: .8rem; font-family: ui-monospace, Menlo, Consolas, monospace; background: var(--sl-bg-muted, #f8fafc); }
.demand-share__table td small { display: block; color: var(--sl-muted); font-size: .76rem; }
.demand-share__table tr.is-new td { background: #F0FDFA; }
@media (max-width: 860px) { .demand-share__form { grid-template-columns: 1fr; } }

/* ==========================================================================
   Search bar: fields fill the row; benefit switch and "More filters" share a footer
   ========================================================================== */
.search-bar { padding: 18px 20px 14px; border-radius: 4px; }
.search-bar__main { grid-template-columns: minmax(0, 2.2fr) minmax(0, 1.3fr) minmax(0, 1fr) auto; gap: 12px; }
.search-bar__field--grow, .search-bar__submit { grid-column: auto; }
.search-bar__field input, .search-bar__field select { height: 48px; border-radius: 4px; border-color: var(--sl-border-strong, #cbd5e1); }
.search-bar__submit .btn { height: 48px; min-height: 48px; padding: 0 28px; width: auto; }
.search-bar__footer { display: flex; align-items: center; justify-content: space-between; gap: 12px 20px; flex-wrap: wrap; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--sl-border); }
.search-bar__footer .lha-toggle { padding: 4px 0; border: 0; background: none; align-items: center; }
.search-bar__footer .lha-toggle:has(input:checked) { background: none; }
.search-bar__footer .lha-toggle__switch { margin-top: 0; }
.search-bar__footer .lha-toggle__text { gap: 0; }
.search-bar__footer .lha-toggle__text strong { font-size: .92rem; }
.search-bar__footer .lha-toggle__text small { font-size: .8rem; }
.search-bar__more-toggle {
    display: inline-flex; align-items: center; gap: 8px; height: 38px; padding: 0 14px; cursor: pointer;
    border: 1px solid var(--sl-border-strong, #cbd5e1); border-radius: 4px; background: #fff;
    font: inherit; font-size: .9rem; font-weight: 700; color: var(--sl-ink); transition: border-color .15s ease, background .15s ease;
}
.search-bar__more-toggle:hover { border-color: var(--sl-lime); color: var(--sl-lime-deep); }
.search-bar__more-toggle[aria-expanded="true"] { background: var(--sl-hero-wash); border-color: var(--sl-lime); color: var(--sl-lime-deep); }
.search-bar__more-count { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px; background: var(--sl-lime); color: #fff; font-size: .72rem; font-weight: 800; }
.search-bar__more-chevron { font-size: .72rem; transition: transform .2s ease; }
.search-bar__more-toggle[aria-expanded="true"] .search-bar__more-chevron { transform: rotate(180deg); }
.search-bar__more { margin-top: 12px; padding-top: 14px; border-top: 1px dashed var(--sl-border); }
.search-bar__more[hidden] { display: none; }
.search-bar__more .search-bar__extra { margin-top: 0; gap: 16px; }
@media (max-width: 1000px) {
    .search-bar__main { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .search-bar__field--grow, .search-bar__submit { grid-column: 1 / -1; }
    .search-bar__submit .btn { width: 100%; }
}
@media (max-width: 560px) {
    .search-bar { padding: 14px; }
    .search-bar__main { grid-template-columns: 1fr; }
    .search-bar__footer { align-items: stretch; }
    .search-bar__more-toggle { width: 100%; justify-content: center; }
}
/* Search page: less space between the search box and the results */
.search-hero { padding-bottom: 24px !important; }
.search-hero + .section { padding-top: 0 !important; }
@media (max-width: 640px) { .search-hero { padding-bottom: 16px !important; } }

/* Private demand page: colour scale (no rooms → short → busy → well supplied) */
.demand-insights-page {
    --di-none: #DC2626; --di-none-bg: #FEF2F2; --di-none-soft: #FECACA;
    --di-high: #EA580C; --di-high-bg: #FFF7ED; --di-high-soft: #FED7AA;
    --di-mid: #D97706;  --di-mid-bg: #FFFBEB;  --di-mid-soft: #FDE68A;
    --di-low: #0D9488;  --di-low-bg: #F0FDFA;  --di-low-soft: #99F6E4;
}
.di-hero { position: relative; overflow: hidden; color: #fff; border-bottom: 0;
    background: radial-gradient(900px 380px at 90% -10%, rgba(45, 212, 191, .35), transparent 60%), linear-gradient(135deg, #0F766E 0%, #134E4A 55%, #0f172a 100%); }
.di-hero h1 { color: #fff; }
.di-lead { color: rgba(255, 255, 255, .82); }
.di-private { background: rgba(255, 255, 255, .12); border-color: rgba(255, 255, 255, .25); color: #CCFBF1; }
.di-period { background: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .2); }
.di-period a { color: rgba(255, 255, 255, .8); }
.di-period a:hover { color: #fff; }
.di-period a.is-active { background: #fff; color: #134E4A; }
.di-body { padding-top: 0; }
.di-stats { margin-top: -26px; position: relative; z-index: 1; }
.di-stat { position: relative; padding: 16px 18px 16px 64px !important; box-shadow: 0 8px 24px rgba(15, 23, 42, .08); border-top: 3px solid var(--c) !important; }
.di-stat i { position: absolute; left: 16px; top: 18px; width: 36px; height: 36px; display: grid; place-items: center; border-radius: 4px; background: var(--cbg); color: var(--c); font-size: .95rem; }
.di-stat--teal { --c: #0D9488; --cbg: #F0FDFA; }
.di-stat--indigo { --c: #4F46E5; --cbg: #EEF2FF; }
.di-stat--violet { --c: #9333EA; --cbg: #FAF5FF; }
.di-stat--coral { --c: #EA580C; --cbg: #FFF7ED; }
.di-hotspot { background: var(--bg); color: var(--sl-ink); border: 1px solid var(--soft); border-left: 5px solid var(--c); }
.di-hotspot h3 { color: var(--sl-ink); }
.di-hotspot__rank { color: var(--soft); }
.di-hotspot__flag { color: var(--c); display: flex; align-items: center; gap: 6px; }
.di-hotspot dt { color: var(--sl-muted); }
.di-hotspot dd { color: var(--sl-ink); }
.di-hotspot--none { --c: var(--di-none); --bg: var(--di-none-bg); --soft: var(--di-none-soft); }
.di-hotspot--high { --c: var(--di-high); --bg: var(--di-high-bg); --soft: var(--di-high-soft); }
.di-hotspot--mid { --c: var(--di-mid); --bg: var(--di-mid-bg); --soft: var(--di-mid-soft); }
.di-hotspot--low { --c: var(--di-low); --bg: var(--di-low-bg); --soft: var(--di-low-soft); }
.di-legend { list-style: none; display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 0 0 14px; padding: 0; }
.di-legend__item { display: inline-flex; align-items: center; gap: 6px; margin: 0; font-size: .82rem; color: var(--sl-muted); }
.di-legend__item span { width: 12px; height: 12px; border-radius: 3px; background: var(--c); }
.di-legend__item--none, .di-row--none, .di-flag--none, .di-gap--none { --c: var(--di-none); --bg: var(--di-none-bg); }
.di-legend__item--high, .di-row--high, .di-flag--high, .di-gap--high { --c: var(--di-high); --bg: var(--di-high-bg); }
.di-legend__item--mid, .di-row--mid, .di-gap--mid { --c: var(--di-mid); --bg: var(--di-mid-bg); }
.di-legend__item--low, .di-row--low, .di-gap--low { --c: var(--di-low); --bg: var(--di-low-bg); }
.di-table td:first-child { box-shadow: inset 4px 0 0 var(--c); }
.di-rank span { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--bg); color: var(--c); font-size: .82rem; font-weight: 800; }
.di-bar-cell .di-bar { background: var(--bg); }
.di-bar-cell .di-bar span { background: var(--c); }
.di-flag { background: var(--bg); color: var(--c); border: 1px solid currentColor; padding: 0 8px; }
.di-gap { display: inline-block; min-width: 44px; padding: 2px 8px; border-radius: 999px; background: var(--bg); color: var(--c); font-weight: 700; font-size: .85rem; text-align: center; }
.di-table tbody tr:hover td { background: #FAFAF9; }
@media (max-width: 640px) { .di-stats { margin-top: -18px; } }
.di-hero { padding-bottom: 60px; }
@media (max-width: 640px) { .di-hero { padding-bottom: 44px; } }
.di-flag { white-space: nowrap; }
@media (max-width: 640px) {
    .di-stat { padding: 14px !important; }
    .di-stat i { position: static; margin-bottom: 8px; width: 32px; height: 32px; }
    .di-stat strong { font-size: 1.45rem; }
}

/* Private demand page: calmer palette (teal scale, one amber accent for "no rooms") */
.demand-insights-page {
    --di-none: #B45309; --di-none-bg: #FFFBEB; --di-none-soft: #FDE68A;
    --di-high: #0F766E; --di-high-bg: #F0FDFA; --di-high-soft: #99F6E4;
    --di-mid: #14B8A6;  --di-mid-bg: #F0FDFA;  --di-mid-soft: #CCFBF1;
    --di-low: #94A3B8;  --di-low-bg: #F8FAFC;  --di-low-soft: #E2E8F0;
}
.di-stat--coral { --c: #B45309; --cbg: #FFFBEB; }
.di-stat--violet { --c: #0F766E; --cbg: #F0FDFA; }
.di-stat--indigo { --c: #334155; --cbg: #F1F5F9; }
.di-hotspot { background: #fff; border: 1px solid var(--sl-border); border-left: 1px solid var(--sl-border); border-top: 3px solid var(--c); box-shadow: 0 4px 14px rgba(15, 23, 42, .05); }
.di-hotspot__rank { color: var(--sl-border); }
.di-table td:first-child { box-shadow: none; }
.di-flag { border: 0; padding: 1px 8px; }
.di-gap { background: transparent; padding: 0; min-width: 0; color: var(--sl-ink); font-weight: 600; }
.di-gap--none { color: var(--di-none); }
.di-rank span { background: var(--sl-bg-muted, #f1f5f9); color: var(--sl-muted); }

/* Location type-ahead */
.ls-wrap { position: relative; width: 100%; }
.ls-list { position: absolute; left: 0; right: 0; top: calc(100% + 4px); z-index: 60; list-style: none; margin: 0; padding: 6px; max-height: 320px; overflow-y: auto;
    background: #fff; border: 1px solid var(--sl-border); border-radius: 4px; box-shadow: 0 14px 32px rgba(15, 23, 42, .14); text-align: left; }
.ls-item { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; align-items: center; gap: 8px; margin: 0; padding: 9px 10px; border-radius: 4px; cursor: pointer; }
.ls-item i { color: var(--sl-muted); font-size: .85rem; text-align: center; }
.ls-item__label { font-weight: 600; color: var(--sl-ink); font-size: .95rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ls-item__meta { font-size: .8rem; color: var(--sl-muted); white-space: nowrap; }
.ls-item:hover, .ls-item.is-active { background: var(--sl-hero-wash); }
.ls-item:hover i, .ls-item.is-active i { color: var(--sl-lime-deep); }
.ls-item--fix .ls-item__meta { color: #B45309; }
.sr-search__field .ls-wrap { flex: 1; min-width: 0; }
.sr-search__field .ls-wrap input { width: 100%; }
.did-you-mean { margin: 0 0 14px !important; padding: 12px 14px; border-radius: 4px; background: #FFFBEB; border: 1px solid #FDE68A; color: var(--sl-ink); }
.did-you-mean i { color: #B45309; margin-right: 4px; }
.did-you-mean a { font-weight: 700; color: var(--sl-lime-deep); }
.did-you-mean span { color: var(--sl-muted); font-size: .88rem; margin-left: 4px; }
@media (max-width: 560px) { .ls-item { grid-template-columns: 22px minmax(0, 1fr); } .ls-item__meta { grid-column: 2; } }
.ls-list .ls-item i { position: static; left: auto; color: var(--sl-muted); }
.ls-list .ls-item:hover i, .ls-list .ls-item.is-active i { color: var(--sl-lime-deep); }

/* "How to use SocialRooms" tour */
.topbar-help { display: inline-flex; align-items: center; gap: 7px; height: 36px; padding: 0 12px; border: 1px solid var(--sl-border); border-radius: 4px; background: #fff; color: var(--sl-ink); font: inherit; font-size: .86rem; font-weight: 600; cursor: pointer; white-space: nowrap; }
.topbar-help i { color: var(--sl-lime-deep); font-size: 1rem; }
.topbar-help:hover { border-color: var(--sl-lime); color: var(--sl-lime-deep); }
body.tour-open { overflow: hidden; }
.tour { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: 16px; }
.tour[hidden] { display: none; }
.tour__backdrop { position: absolute; inset: 0; background: rgba(15, 23, 42, .55); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); animation: tourFade .2s ease; }
.tour__panel { position: relative; width: min(520px, 100%); max-height: calc(100vh - 32px); overflow-y: auto; padding: 28px 28px 20px; border-radius: 8px; background: #fff; box-shadow: 0 30px 80px rgba(15, 23, 42, .35); outline: none; animation: tourIn .25s cubic-bezier(.22, .61, .36, 1); }
.tour__close { position: absolute; top: 12px; right: 12px; width: 36px; height: 36px; display: grid; place-items: center; padding: 0; border: 0; background: transparent; color: var(--sl-muted); cursor: pointer; font-size: 1.1rem; }
.tour__close:hover { color: var(--sl-ink); background: var(--sl-bg-muted, #f1f5f9); }
.tour__eyebrow { margin: 0 0 14px !important; font-size: .74rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--sl-lime-deep); }
.tour__step { animation: tourStep .25s ease; }
.tour__icon { display: grid; place-items: center; width: 64px; height: 64px; margin-bottom: 16px; border-radius: 16px; background: linear-gradient(135deg, #CCFBF1, #F0FDFA); color: var(--sl-lime-deep); font-size: 1.7rem; }
.tour__step h2 { font-size: 1.45rem; line-height: 1.25; margin: 0 0 8px; }
.tour__step p { margin: 0 0 14px !important; font-size: 1rem; line-height: 1.65; color: var(--sl-body, #334155); }
.tour__link { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: var(--sl-lime-deep); text-decoration: none; }
.tour__link:hover { text-decoration: underline; }
.tour__footer { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 22px; padding-top: 16px; border-top: 1px solid var(--sl-border); }
.tour__dots { display: flex; gap: 6px; }
.tour__dots span { width: 8px; height: 8px; border-radius: 999px; background: var(--sl-border-strong, #cbd5e1); transition: width .2s ease, background .2s ease; }
.tour__dots span.is-done { background: var(--sl-lime-soft, #99F6E4); }
.tour__dots span.is-active { width: 22px; background: var(--sl-lime); }
.tour__count { font-size: .82rem; color: var(--sl-muted); }
.tour__buttons { margin-left: auto; display: flex; gap: 8px; align-items: center; }
.tour__skip { color: var(--sl-muted); }
@keyframes tourFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes tourIn { from { opacity: 0; transform: translateY(12px) scale(.98); } to { opacity: 1; transform: none; } }
@keyframes tourStep { from { opacity: 0; transform: translateX(8px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .tour__backdrop, .tour__panel, .tour__step { animation: none; } }
@media (max-width: 640px) {
    .topbar-help { width: 36px; padding: 0; justify-content: center; }
    .topbar-help span { display: none; }
    .tour { align-items: end; padding: 0; }
    .tour__panel { width: 100%; border-radius: 12px 12px 0 0; padding: 24px 20px 18px; }
    .tour__count { display: none; }
}
.di-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 640px) { .di-stats { grid-template-columns: 1fr; } }

/* Areas page */
.areas-hero { padding-top: 36px !important; padding-bottom: 32px !important; }
.areas-hero__grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 24px 48px; align-items: center; }
.areas-hero .subtitle { margin-bottom: 0 !important; }
.areas-search { padding: 20px; border-radius: 8px; background: #fff; border: 1px solid var(--sl-border); box-shadow: 0 10px 28px rgba(4, 47, 46, .08); }
.areas-search label { display: block; margin: 0 0 8px; font-size: .85rem; font-weight: 700; color: var(--sl-ink); }
.areas-search__row { display: flex; gap: 8px; }
.areas-search__row .ls-wrap { flex: 1; min-width: 0; }
.areas-search__row input { width: 100%; height: 48px; padding: 0 14px; border: 1px solid var(--sl-border-strong, #cbd5e1); border-radius: 4px; font: inherit; }
.areas-search__row .btn { height: 48px; white-space: nowrap; }
.areas-search__note { margin: 12px 0 0 !important; font-size: .86rem; color: var(--sl-muted); }
.areas-search__note strong { color: var(--sl-ink); }
.areas-section { padding-top: 32px; }
.areas-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 28px; align-items: start; }
.areas-h2 { font-size: 1.3rem; margin: 0 0 14px; }
.areas-h2--sub { margin-top: 32px; margin-bottom: 4px; }
.areas-note { margin: 0 0 12px !important; color: var(--sl-muted); font-size: .92rem; }
.areas-grid { grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)) !important; gap: 14px; }
.areas-card { position: relative; display: grid; gap: 6px; align-content: start; padding: 18px 18px 16px !important; border-radius: 6px; transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease; }
.areas-card > i { display: none; }
.areas-card:hover { border-color: var(--sl-lime); box-shadow: 0 8px 22px rgba(15, 23, 42, .08); transform: translateY(-2px); }
.areas-card__top { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.areas-card__top strong { font-size: 1.1rem; color: var(--sl-ink); }
.areas-card__count { flex: 0 0 auto; padding: 2px 9px; border-radius: 999px; background: var(--sl-hero-wash); color: var(--sl-lime-deep); font-size: .78rem; font-weight: 700; }
.areas-card__line { font-size: .9rem; color: var(--sl-muted); }
.areas-card__lha { display: flex; gap: 6px; align-items: baseline; font-size: .86rem; color: var(--sl-lime-deep); line-height: 1.4; }
.areas-card__lha i { font-size: .75rem; }
.areas-card__cta { margin-top: 6px; display: inline-flex; align-items: center; gap: 6px; font-size: .88rem; font-weight: 700; color: var(--sl-lime-deep); }
.areas-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.areas-chips a { padding: 7px 14px; border-radius: 999px; background: #fff; border: 1px solid var(--sl-border); color: var(--sl-ink); font-size: .9rem; font-weight: 500; text-decoration: none; transition: border-color .15s ease, color .15s ease; }
.areas-chips a:hover { border-color: var(--sl-lime); color: var(--sl-lime-deep); }
.areas-aside { display: grid; gap: 14px; position: sticky; top: 20px; }
.areas-help { padding: 20px; border-radius: 8px; background: #fff; border: 1px solid var(--sl-border); }
.areas-help h2 { font-size: 1.1rem; margin: 0 0 12px; }
.areas-help ul { list-style: none; margin: 0 0 16px; padding: 0; display: grid; gap: 12px; }
.areas-help li { display: flex; gap: 10px; align-items: flex-start; margin: 0; font-size: .9rem; line-height: 1.5; color: var(--sl-body, #334155); }
.areas-help li i { flex: 0 0 auto; width: 30px; height: 30px; display: grid; place-items: center; border-radius: 4px; background: var(--sl-hero-wash); color: var(--sl-lime-deep); font-size: .85rem; }
.areas-help li strong { color: var(--sl-ink); }
.areas-help .btn + .btn { margin-top: 8px; }
.areas-landlord { display: grid; gap: 4px; padding: 16px 18px; border-radius: 8px; background: var(--sl-ink); color: rgba(255, 255, 255, .8); font-size: .88rem; }
.areas-landlord strong { color: #fff; font-size: .98rem; }
.areas-landlord a { margin-top: 6px; color: #5EEAD4; font-weight: 700; text-decoration: none; }
@media (max-width: 960px) {
    .areas-hero__grid, .areas-layout { grid-template-columns: 1fr; }
    .areas-aside { position: static; }
}
@media (max-width: 560px) { .areas-search__row { flex-direction: column; } .areas-search__row .btn { width: 100%; } }

/* Area page */
.area-page-hero { padding-top: 32px !important; padding-bottom: 28px !important; }
.area-page-hero h1 { font-size: clamp(1.8rem, 3.4vw, 2.5rem); margin-bottom: 8px; }
.area-page-hero .subtitle { max-width: 760px; margin-bottom: 18px !important; }
.area-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; max-width: 900px; }
.area-tile { display: grid; gap: 2px; padding: 14px 16px; border-radius: 6px; background: #fff; border: 1px solid var(--sl-border); box-shadow: 0 4px 14px rgba(15, 23, 42, .04); }
.area-tile strong { font-size: 1.5rem; line-height: 1.15; color: var(--sl-ink); }
.area-tile span { font-size: .84rem; color: var(--sl-muted); }
.area-page { padding-top: 28px; }
.area-page__grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 28px; align-items: start; }
.area-page__head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 14px; }
.area-page__head h2 { font-size: 1.3rem; margin: 0; }
.area-page__listings { grid-template-columns: 1fr !important; }
.area-page__copy { max-width: none; margin-top: 32px; padding: 24px; border-radius: 8px; background: #fff; border: 1px solid var(--sl-border); }
.area-page__copy h2 { font-size: 1.25rem; margin: 0 0 10px; }
.area-page__copy h2 + p { margin-top: 0; }
.area-page__copy p { font-size: .98rem; line-height: 1.7; }
.area-page__copy .area-faq { margin-top: 8px; }
.area-page__copy h2:not(:first-child) { margin-top: 26px; }
.area-page__aside { display: grid; gap: 14px; position: sticky; top: 20px; }
.area-side-card { padding: 18px; border-radius: 8px; background: #fff; border: 1px solid var(--sl-border); }
.area-side-card h3 { display: flex; align-items: center; gap: 8px; font-size: 1.02rem; margin: 0 0 6px; }
.area-side-card h3 i { color: var(--sl-lime-deep); }
.area-side-card p { margin: 0 0 12px !important; font-size: .9rem; color: var(--sl-muted); line-height: 1.5; }
.area-side-card .btn + .btn { margin-top: 8px; }
.area-side-card--primary { background: var(--sl-hero-wash); border-color: rgba(13, 148, 136, .25); }
.area-side-links { list-style: none; margin: 6px 0 0; padding: 0; display: grid; gap: 2px; }
.area-side-links li { margin: 0; }
.area-side-links a { display: flex; align-items: center; gap: 10px; padding: 8px 0; font-size: .92rem; font-weight: 600; color: var(--sl-ink); text-decoration: none; border-bottom: 1px solid var(--sl-border); }
.area-side-links li:last-child a { border-bottom: 0; }
.area-side-links a i { width: 18px; color: var(--sl-lime-deep); text-align: center; }
.area-side-links a:hover { color: var(--sl-lime-deep); }
.area-side-card .area-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
@media (max-width: 960px) {
    .area-page__grid { grid-template-columns: 1fr; }
    .area-page__aside { position: static; }
}
@media (max-width: 560px) { .area-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } .area-page__copy { padding: 18px; } }
.area-page .area-page__main .listings-grid.area-page__listings { grid-template-columns: minmax(0, 1fr) !important; }
.area-page__copy p { margin: 0 0 12px !important; }

/* Demand insights: place types and postcodes searched */
.di-type { display: inline-flex; align-items: center; gap: 5px; padding: 2px 9px; border-radius: 999px; font-size: .72rem; font-weight: 600; white-space: nowrap; background: #F1F5F9; color: #475569; }
.di-type i { font-size: .7rem; }
.di-type--town { background: #F0FDFA; color: #0F766E; }
.di-type--area { background: #EEF2FF; color: #4338CA; }
.di-type--postcode { background: #FFFBEB; color: #92400E; }
.di-hotspot .di-type { margin-bottom: 6px; }
.di-districts { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; }
.di-districts span { padding: 0 6px; border: 1px solid #E2E8F0; border-radius: 4px; font-size: .7rem; font-weight: 600; letter-spacing: .02em; color: #475569; background: #fff; line-height: 1.6; }
.di-districts .di-districts__more { border-style: dashed; color: #94A3B8; }
.di-typecount { margin: -4px 0 10px; font-size: .85rem; color: #64748B; }
.di-row--area { --c: #6366F1; --bg: #EEF2FF; }
.di-muted { color: #94A3B8; }
