@font-face {
    font-family: "Inter";
    font-style: normal;
    font-weight: 400;
    font-display: optional;
    src: url("/static/fonts/inter-latin-v1.woff2") format("woff2");
}

@font-face {
    font-family: "Inter";
    font-style: normal;
    font-weight: 500;
    font-display: optional;
    src: url("/static/fonts/inter-latin-v1.woff2") format("woff2");
}

@font-face {
    font-family: "Inter";
    font-style: normal;
    font-weight: 600;
    font-display: optional;
    src: url("/static/fonts/inter-latin-v1.woff2") format("woff2");
}

@font-face {
    font-family: "Montserrat";
    font-style: normal;
    font-weight: 600;
    font-display: optional;
    src: url("/static/fonts/montserrat-semibold-latin-v1.woff2") format("woff2");
}

:root {
    --brand-alki: #005F6B;
    --brand-sys: #2B2F33;
    --brand-alki-soft: #e7f3f4;
    --font-body: "Inter", "Segoe UI", Arial, sans-serif;
    --font-title: "Inter", "Segoe UI", Arial, sans-serif;
    --font-brand: "Montserrat", "Inter", "Segoe UI", Arial, sans-serif;
    --font-button: "Inter", "Segoe UI", Arial, sans-serif;
    --font-regular: 400;
    --font-medium: 500;
    --font-semibold: 600;
    --bg: #f4f7f7;
    --surface: #ffffff;
    --surface-soft: #f8fbfb;
    --surface-strong: #e8f0f1;
    --ink: #2B2F33;
    --muted: #657174;
    --muted-soft: #8a989b;
    --line: #d8e3e5;
    --line-strong: #c4d1d4;
    --border: #d8e3e5;
    --text: #2B2F33;
    --sidebar: #eef3f5;
    --sidebar-soft: #ffffff;
    --sidebar-line: rgba(16, 24, 32, 0.12);
    --accent-violet: #005F6B;
    --accent-teal: #0b7f89;
    --accent-amber: #b7791f;
    --accent-rose: #be4b5b;
    --accent-blue: #2563eb;
    --link-blue: #1f6fd6;
    --link-blue-dark: #7cc8ff;
    --positive: #087f6f;
    --danger: #c23d42;
    --shadow-card: 0 1px 2px rgba(43, 47, 51, 0.06), 0 10px 24px rgba(43, 47, 51, 0.05);
    --shadow-lift: 0 8px 22px rgba(43, 47, 51, 0.09);
}

* {
    box-sizing: border-box;
}

html {
    background: var(--bg);
    scroll-behavior: smooth;
}

body {
    margin: 0;
    background: var(--bg);
    color: var(--ink);
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: var(--font-regular);
    line-height: 1.42;
    letter-spacing: 0;
}

a {
    color: inherit;
    text-decoration: none;
}

button,
input,
select,
textarea {
    font: inherit;
    letter-spacing: 0;
}

button,
.button,
input[type="button"],
input[type="submit"],
input[type="reset"],
[role="button"] {
    font-family: var(--font-button);
    font-weight: var(--font-medium);
}

.app-shell {
    --active-sidebar-width: 272px;
    display: grid;
    grid-template-columns: 272px minmax(0, 1fr);
    min-height: 100vh;
    transition: grid-template-columns 0.18s ease;
}

.app-shell.is-sidebar-collapsed {
    --active-sidebar-width: 78px;
    grid-template-columns: 78px minmax(0, 1fr);
}

.sidebar {
    position: sticky;
    top: 0;
    z-index: 110;
    display: flex;
    flex-direction: column;
    height: 100vh;
    padding: 18px 16px;
    border-right: 1px solid #d7e0e4;
    background: var(--sidebar);
    color: #101820;
    transition: padding 0.18s ease;
}

.sidebar-toggle {
    position: absolute;
    top: 22px;
    right: -17px;
    z-index: 120;
    display: inline-grid;
    place-items: center;
    width: 34px;
    height: 34px;
    padding: 0;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: #ffffff;
    color: var(--brand-alki);
    cursor: pointer;
    box-shadow: var(--shadow-card);
}

.sidebar-toggle::before {
    width: 9px;
    height: 9px;
    margin-left: 3px;
    border-bottom: 2px solid currentColor;
    border-left: 2px solid currentColor;
    content: "";
    transform: rotate(45deg);
    transition: margin 0.18s ease, transform 0.18s ease;
}

.sidebar-toggle:hover,
.sidebar-toggle:focus-visible {
    border-color: rgba(0, 95, 107, 0.28);
    outline: none;
    box-shadow: 0 0 0 4px rgba(0, 95, 107, 0.13);
}

.app-shell.is-sidebar-collapsed .sidebar {
    align-items: center;
    padding-right: 10px;
    padding-left: 10px;
}

.app-shell.is-sidebar-collapsed .sidebar-toggle::before {
    margin-right: 3px;
    margin-left: 0;
    transform: rotate(225deg);
}

.brand {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 76px;
    padding: 10px 12px;
    border: 1px solid #ccd7dd;
    border-radius: 8px;
    background: #ffffff;
    color: #101820;
    box-shadow: 0 2px 10px rgba(16, 24, 32, 0.09);
}

.brand-copy,
.nav-label,
.sidebar-logout-label {
    min-width: 0;
    overflow: hidden;
    opacity: 1;
    transition: opacity 0.14s ease, width 0.18s ease;
    white-space: nowrap;
}

.app-shell.is-sidebar-collapsed .brand {
    justify-content: center;
    gap: 0;
    width: 100%;
    padding-right: 8px;
    padding-left: 8px;
}

.app-shell.is-sidebar-collapsed .brand-copy,
.app-shell.is-sidebar-collapsed .nav-label,
.app-shell.is-sidebar-collapsed .sidebar-logout-label {
    width: 0;
    opacity: 0;
    pointer-events: none;
}

.brand-logo {
    width: 50px;
    height: 50px;
    filter: none;
    object-fit: contain;
}

.brand-mark-dark {
    display: none;
}

.brand .brand-wordmark,
.brand strong,
.brand small {
    display: block;
}

.brand .brand-wordmark {
    width: 142px;
    max-width: 100%;
    height: auto;
    object-fit: contain;
}

.brand .brand-wordmark-dark {
    display: none;
}

html[data-theme="dark"] .app-shell .brand-mark-light,
html[data-theme="dark"] .app-shell .brand .brand-wordmark-light {
    display: none;
}

html[data-theme="dark"] .app-shell .brand-mark-dark,
html[data-theme="dark"] .app-shell .brand .brand-wordmark-dark {
    display: block;
}

.brand strong {
    font-family: var(--font-brand);
    font-size: 30px;
    font-weight: 600;
    line-height: 1;
}

.brand small {
    margin-top: 3px;
    color: var(--muted);
}

.brand-name {
    font-family: var(--font-brand);
    font-weight: 600;
}

.brand-alki {
    color: var(--brand-alki);
}

.brand-sys {
    color: #101820;
}

.nav-list {
    display: grid;
    gap: 5px;
    margin-top: 22px;
}

.app-shell.is-sidebar-collapsed .nav-list,
.app-shell.is-sidebar-collapsed .sidebar-session {
    width: 100%;
}

.nav-link {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 52px;
    padding: 0 12px;
    border-radius: 8px;
    color: #101820;
    font-size: 16px;
    font-weight: 600;
}

.app-shell.is-sidebar-collapsed .nav-link {
    justify-content: center;
    gap: 0;
    padding-right: 0;
    padding-left: 0;
}

.nav-link:hover,
.nav-link.is-active {
    background: var(--brand-alki);
    color: #fff;
}

.nav-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    padding: 5px;
    border: 1px solid transparent;
    border-radius: 10px;
    background: transparent;
    color: currentColor;
    box-shadow: none;
    overflow: hidden;
}

.sidebar-logout-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    flex: 0 0 32px;
    color: currentColor;
}

.nav-icon svg,
.sidebar-logout-icon svg {
    width: 100%;
    height: 100%;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
}

.theme-icon-shape {
    display: block;
    width: 19px;
    height: 19px;
    border: 2px solid #ff7a00;
    border-radius: 999px;
    box-shadow: inset -5px -4px 0 0 #ff7a00;
}

.nav-link:not(:hover):not(.is-active) .nav-icon-violet { color: var(--accent-violet); }
.nav-link:not(:hover):not(.is-active) .nav-icon-teal { color: var(--accent-teal); }
.nav-link:not(:hover):not(.is-active) .nav-icon-amber { color: var(--accent-amber); }
.nav-link:not(:hover):not(.is-active) .nav-icon-rose { color: var(--accent-rose); }
.nav-link:not(:hover):not(.is-active) .nav-icon-blue { color: var(--accent-blue); }

.app-shell.is-sidebar-collapsed .nav-icon {
    width: 40px;
    height: 40px;
    flex-basis: 40px;
}

.nav-dot {
    width: 10px;
    height: 10px;
    flex: 0 0 10px;
    border-radius: 999px;
    background: var(--accent-violet);
}

.nav-dot-violet { background: var(--accent-violet); }
.nav-dot-teal { background: var(--accent-teal); }
.nav-dot-amber { background: var(--accent-amber); }
.nav-dot-rose { background: var(--accent-rose); }
.nav-dot-blue { background: var(--accent-blue); }

.sidebar-session {
    display: grid;
    gap: 10px;
    margin-top: auto;
}

.sidebar-logout-form {
    margin: 0;
}

.sidebar-logout-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    width: 100%;
    min-height: 50px;
    padding: 0 14px;
    border: 1px solid rgba(248, 113, 113, 0.55);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.07);
    color: #fff;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
}

.app-shell.is-sidebar-collapsed .sidebar-logout-button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    min-height: 52px;
    margin: 0 auto;
    padding: 0;
}

.app-shell.is-sidebar-collapsed .sidebar-logout-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    padding: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    line-height: 0;
}

.app-shell.is-sidebar-collapsed .sidebar-logout-icon-image {
    transform: translateX(2px);
}

.sidebar-logout-button:hover {
    border-color: rgba(254, 202, 202, 0.8);
    background: rgba(185, 28, 28, 0.18);
}

.sidebar-footer {
    display: grid;
    gap: 4px;
    padding: 13px 14px;
    border: 1px solid var(--sidebar-line);
    border-radius: 8px;
    color: #d8e4e6;
}

.sidebar-footer strong {
    color: #fff;
    font-size: 16px;
}

.content {
    min-width: 0;
    width: 100%;
    max-width: 1640px;
    margin: 0 auto;
    padding: 20px 30px 44px;
}

.topbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 18px;
    margin-bottom: 20px;
}

.topbar-main {
    display: grid;
    min-width: 0;
    gap: 3px;
}

.topbar-side {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 18px;
    min-width: 0;
}

.topbar-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
}

.topbar-greeting {
    margin: 0;
    overflow: hidden;
    color: var(--muted);
    font-size: 26px;
    font-weight: var(--font-medium);
    line-height: 1.12;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.topbar-greeting strong {
    color: var(--ink);
    font-weight: var(--font-semibold);
}

.topbar-parking-logo {
    flex: 0 0 auto;
    width: 104px;
    height: 104px;
    object-fit: contain;
}

.topbar-user {
    display: grid;
    gap: 2px;
    min-height: 42px;
    padding: 7px 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    color: var(--muted);
    box-shadow: var(--shadow-card);
}

.topbar-user span {
    font-size: 11px;
    font-weight: var(--font-semibold);
    line-height: 1;
    text-transform: uppercase;
}

.topbar-user strong {
    max-width: 220px;
    overflow: hidden;
    color: var(--ink);
    font-size: 14px;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.logout-form {
    margin: 0;
}

.logout-button {
    min-height: 42px;
    padding: 0 14px;
    border: 1px solid rgba(185, 28, 28, 0.35);
    border-radius: 8px;
    background: #b91c1c;
    color: #fff;
    font-weight: 600;
    cursor: pointer;
    box-shadow: var(--shadow-card);
}

.logout-button:hover {
    border-color: rgba(153, 27, 27, 0.5);
    background: #991b1b;
}

.topbar-main,
.topbar-side,
.summary-copy,
.module-hero > div:first-child {
    min-width: 0;
}

.topbar h1,
.summary-copy h2,
.panel h2,
.module-hero h2 {
    margin: 0;
    color: var(--ink);
    font-family: var(--font-title);
    font-weight: 600;
    line-height: 1.16;
    letter-spacing: 0;
}

.topbar h1 {
    font-size: 31px;
}

.parking-title-picker {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.parking-title-separator {
    color: var(--ink);
}

.parking-title-picker select {
    min-width: min(300px, 72vw);
    height: 44px;
    border-color: rgba(0, 95, 107, 0.26);
    background: #fff;
    color: var(--ink);
    font-family: var(--font-title);
    font-size: 28px;
    font-weight: 600;
    line-height: 1.1;
}

.summary-copy h2 {
    max-width: 620px;
    font-size: 27px;
}

.module-hero h2 {
    max-width: 760px;
    font-size: 26px;
}

.panel h2 {
    font-size: 20px;
}

.eyebrow {
    margin: 0 0 7px;
    color: var(--brand-alki);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: uppercase;
}

.year-form,
.month-form {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 52px;
    padding: 8px 10px 8px 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    box-shadow: var(--shadow-card);
}

.year-form label,
.month-form label {
    color: var(--muted);
    font-size: 13px;
    font-weight: 600;
}

select,
.search-input {
    height: 40px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
}

select {
    min-width: 96px;
    padding: 0 10px;
}

.search-input {
    width: 260px;
    padding: 0 13px;
}

.search-input::placeholder,
input::placeholder {
    color: var(--muted-soft);
}

.summary-band,
.module-hero,
.panel,
.kpi-card,
.module-card {
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    box-shadow: var(--shadow-card);
}

.summary-band {
    display: grid;
    grid-template-columns: minmax(320px, 1fr) minmax(620px, 1.55fr);
    gap: 24px;
    align-items: center;
    padding: 22px;
}

.kpi-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 12px;
}

.kpi-grid-wide {
    margin: 16px 0 0;
}

.kpi-card {
    display: flex;
    position: relative;
    min-width: 0;
    min-height: 96px;
    overflow: hidden;
    padding: 15px 16px;
    box-shadow: none;
    flex-direction: column;
    justify-content: space-between;
}

.kpi-card span {
    display: block;
    color: var(--muted);
    font-size: 13px;
    font-weight: 600;
}

.kpi-card strong {
    display: block;
    margin-top: 12px;
    font-size: 24px;
    font-weight: 600;
    line-height: 1.08;
    max-width: 100%;
    overflow-wrap: anywhere;
    white-space: normal;
    font-variant-numeric: tabular-nums;
}

.kpi-card.is-clickable {
    cursor: pointer;
}

.kpi-card.is-clickable:hover,
.kpi-card.is-clickable:focus-visible {
    border-color: var(--brand-sys);
    box-shadow: 0 0 0 2px rgba(0, 108, 122, 0.14);
    outline: 0;
}

.kpi-card-map-button {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    text-align: left;
    cursor: pointer;
}

.kpi-card-map-button strong {
    white-space: normal;
}

.kpi-card-map-button:hover strong,
.kpi-card-map-button:focus-visible strong {
    color: var(--accent-blue);
}

.tone-positive strong { color: var(--positive); }
.tone-danger strong { color: var(--danger); }
.tone-blue strong { color: var(--accent-blue); }
.tone-partial strong { color: #7b3fc6; }
.tone-strong strong { color: var(--accent-violet); }

.service-billing-panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    margin-bottom: 18px;
    padding: 18px;
}

.service-billing-panel.tone-vencida {
    border-color: rgba(194, 61, 66, 0.34);
}

.service-billing-panel.tone-pendiente {
    border-color: rgba(183, 121, 31, 0.34);
}

.service-billing-panel.tone-pagada,
.service-billing-panel.tone-gratis,
.service-billing-panel.tone-bonificada {
    border-color: rgba(8, 127, 111, 0.34);
}

.service-billing-copy h2 {
    margin: 0;
    font-size: 22px;
    line-height: 1.15;
}

.service-billing-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 16px;
    margin-top: 10px;
    color: var(--muted);
    font-size: 14px;
}

.service-billing-action {
    display: grid;
    justify-items: end;
    gap: 10px;
}

.service-billing-action > strong {
    color: var(--ink);
    font-size: 24px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.service-billing-action form {
    margin: 0;
}

.service-status {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
    color: var(--muted);
    font-weight: 700;
}

.service-status.is-paid {
    border-color: rgba(8, 127, 111, 0.25);
    color: var(--positive);
}

.service-status.is-warning {
    border-color: rgba(183, 121, 31, 0.25);
    color: var(--accent-amber);
}

.module-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 14px;
    margin: 18px 0;
}

.module-card {
    position: relative;
    display: grid;
    gap: 14px;
    min-height: 186px;
    overflow: hidden;
    padding: 18px 18px 16px;
    box-shadow: none;
}

.module-card::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 4px;
    background: var(--accent-violet);
    content: "";
}

.module-card:hover {
    transform: translateY(-1px);
    box-shadow: var(--shadow-lift);
}

.module-card h3 {
    max-width: 440px;
    margin: 0;
    font-family: var(--font-title);
    font-size: 18px;
    font-weight: 600;
    line-height: 1.25;
}

.module-pill {
    width: fit-content;
    max-width: 100%;
    padding: 5px 10px;
    border-radius: 999px;
    color: #fff;
    font-size: 12px;
    font-weight: 600;
}

.accent-violet .module-pill,
.accent-violet::before { background: var(--accent-violet); }
.accent-teal .module-pill,
.accent-teal::before { background: var(--accent-teal); }
.accent-amber .module-pill,
.accent-amber::before { background: var(--accent-amber); }
.accent-rose .module-pill,
.accent-rose::before { background: var(--accent-rose); }
.accent-blue .module-pill,
.accent-blue::before { background: var(--accent-blue); }

.module-metrics {
    display: grid;
    gap: 6px;
    margin-top: auto;
}

.module-metrics span {
    display: grid;
    grid-template-columns: minmax(0, 1fr) max-content;
    gap: 10px;
    align-items: center;
    min-height: 32px;
    padding-top: 7px;
    border-top: 1px solid var(--line);
}

.module-metrics small {
    min-width: 0;
    color: var(--muted);
}

.module-metrics strong {
    white-space: nowrap;
    font-size: 15px;
    font-variant-numeric: tabular-nums;
}

.work-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(300px, 0.65fr);
    gap: 18px;
    margin-top: 18px;
}

.report-contact-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.report-message-header {
    align-items: center;
    gap: 12px;
}

.report-message-header h2 {
    margin: 0;
}

.report-stay-calculator-shell.public-design {
    --public-accent: var(--brand-alki);
    --public-ink: var(--ink);
    --public-muted: var(--muted);
    display: block;
    min-height: 0;
    background: transparent;
    color: var(--ink);
}

.report-stay-calculator-shell .report-stay-calculator {
    gap: 18px;
    padding: 20px;
    border: 1px solid var(--line);
    background: var(--surface-soft);
}

.report-stay-calculator-shell .public-calculation-mode,
.report-stay-calculator-shell .public-cyclic-field,
.report-stay-calculator-shell .public-calculation-result-panel,
.report-stay-calculator-shell .public-calculation-facts article {
    border-color: var(--line);
    background: var(--surface);
}

.report-stay-calculator-shell .public-cyclic-day {
    border-color: var(--line-strong);
    background: var(--surface-soft);
    color: var(--ink);
}

.report-stay-calculator-shell .public-cyclic-field p,
.report-stay-calculator-shell .public-selected-vehicle-models {
    color: var(--muted);
}

.entry-form.compact-form.report-message-contact-form {
    grid-template-columns: minmax(220px, 1fr) minmax(280px, 1fr) auto;
    align-items: end;
}

.report-message-contact-form button {
    width: auto;
    min-width: 180px;
}

.report-message-preset-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 12px;
}

.report-message-preset-current {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.report-message-preset-current > span {
    color: var(--muted);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.report-message-preset-current strong {
    overflow-wrap: anywhere;
}

.report-message-helper {
    margin: 12px 0 14px;
    color: var(--muted);
}

.report-message-name-choice {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(180px, 320px);
    align-items: center;
    gap: 12px;
    margin: 0 0 14px;
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: var(--surface-soft);
    color: var(--ink);
}

.report-message-name-choice[hidden] {
    display: none;
}

.report-message-name-choice > span {
    font-size: 13px;
    font-weight: 800;
}

.report-message-name-choice select {
    width: 100%;
}

.entry-form.report-pdf-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: 16px;
}

.report-pdf-primary-fields {
    grid-column: 1 / -1;
    display: flex;
    align-items: flex-start;
    gap: 16px;
    min-width: 0;
}

.report-pdf-primary-fields > * {
    flex: 1 1 0;
    min-width: 0;
}

.report-pdf-form > .report-pdf-actions {
    grid-column: 1 / -1;
}

.report-pdf-actions {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 18px;
    padding-top: 2px;
}

.report-pdf-form .report-pdf-actions button {
    min-width: 190px;
}

.report-pdf-model-field {
    grid-column: 1 / -1;
    min-width: 0;
    margin: 4px 0 0;
    padding: 0;
    border: 0;
}

.report-pdf-model-field > legend {
    padding: 0;
    color: var(--ink);
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
}

.report-pdf-model-help {
    margin: 5px 0 14px;
    color: var(--muted);
    font-size: 13px;
}

.report-pdf-model-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.report-pdf-model-card {
    position: relative;
    display: grid;
    grid-template-rows: auto 1fr;
    gap: 12px;
    min-width: 0;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--surface-soft);
    color: var(--ink);
    cursor: pointer;
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.report-pdf-model-card:hover {
    border-color: var(--accent-teal);
    transform: translateY(-1px);
}

.report-pdf-model-card.is-selected,
.report-pdf-model-card:has(input:checked) {
    border-color: var(--accent-teal);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent-teal) 28%, transparent);
}

.report-pdf-model-card:focus-within {
    outline: 2px solid var(--accent-teal);
    outline-offset: 3px;
}

.report-pdf-model-card > input {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

.report-pdf-model-thumbnail {
    position: relative;
    display: grid;
    place-items: center;
    width: 100%;
    aspect-ratio: 210 / 297;
    overflow: hidden;
    padding: 8px;
    border: 1px solid #cbd5dc;
    border-radius: 8px;
    background: #dfe8ea;
    box-shadow: 0 8px 18px rgba(10, 32, 38, 0.12);
}

.report-pdf-model-thumbnail img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: 3px;
    background: #fff;
}

.report-pdf-model-thumbnail img.is-page-changing {
    animation: report-pdf-model-page-change 260ms ease-out;
}

.report-pdf-model-page {
    position: absolute;
    top: 16px;
    right: 16px;
    z-index: 1;
    padding: 5px 8px;
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 999px;
    background: rgba(14, 37, 43, 0.88);
    box-shadow: 0 3px 10px rgba(10, 32, 38, 0.2);
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    line-height: 1;
    pointer-events: none;
}

@keyframes report-pdf-model-page-change {
    from {
        opacity: 0.35;
    }
    to {
        opacity: 1;
    }
}

.report-pdf-model-thumbnail-loading {
    max-width: 180px;
    color: #52656b;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.4;
    text-align: center;
}

.report-pdf-model-thumbnail.is-ready .report-pdf-model-thumbnail-loading {
    display: none;
}

.report-pdf-model-copy {
    display: grid;
    gap: 5px;
    min-width: 0;
}

.report-pdf-model-copy strong {
    font-size: 16px;
}

.report-pdf-model-copy small {
    color: var(--muted);
    font-size: 12px;
    line-height: 1.35;
}

.report-pdf-preview {
    margin-top: 18px;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--surface-soft);
}

.report-pdf-preview-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 14px 16px;
    border-bottom: 1px solid var(--line);
}

.report-pdf-preview-heading > div {
    display: grid;
    gap: 3px;
}

.report-pdf-preview-heading span {
    color: var(--muted);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.05em;
}

.report-pdf-preview-heading strong {
    color: var(--ink);
    font-size: 18px;
}

.report-pdf-preview-heading p {
    margin: 0;
    color: var(--muted);
    font-size: 13px;
    text-align: right;
}

.report-pdf-preview-stage {
    display: grid;
    place-items: center;
    min-height: 640px;
    padding: 18px;
    background: #102329;
}

.report-pdf-preview.has-preview .report-pdf-preview-stage {
    display: block;
    min-height: 0;
    padding: 0;
}

.report-pdf-preview-placeholder {
    display: grid;
    gap: 8px;
    max-width: 460px;
    padding: 28px;
    border: 1px dashed rgba(190, 228, 231, 0.45);
    border-radius: 12px;
    color: #eaf7f8;
    text-align: center;
}

.report-pdf-preview-placeholder strong {
    font-size: 18px;
}

.report-pdf-preview-placeholder span {
    color: #b8d8db;
    font-size: 13px;
    line-height: 1.45;
}

.report-pdf-preview-image {
    display: block;
    width: 100%;
    height: auto;
    background: #fff;
}

.report-pdf-preview-image[hidden] {
    display: none;
}

.report-pdf-preview-status {
    min-height: 20px;
    margin: 0;
    padding: 9px 16px 11px;
    color: var(--muted);
    font-size: 12px;
}

.report-pdf-preview.is-loading .report-pdf-preview-stage {
    cursor: progress;
}

.report-pdf-preview.has-error .report-pdf-preview-placeholder {
    border-color: color-mix(in srgb, var(--danger) 62%, transparent);
}

@media (max-width: 1100px) {
    .report-pdf-model-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.report-contact-form .span-2,
.report-contact-form button {
    grid-column: 1 / -1;
}

.report-contact-form .contact-add-button {
    grid-column: auto;
    justify-self: start;
    min-width: 150px;
    width: auto;
    padding-inline: 22px;
}

.report-contact-panel .panel-header {
    margin-bottom: 12px;
}

.contacts-group-panel .panel-header {
    margin-bottom: 12px;
}

.contacts-group-content {
    display: grid;
    gap: 12px;
}

.contacts-filter-panel {
    overflow: hidden;
}

.contact-filter-tabs {
    display: inline-grid;
    grid-auto-columns: minmax(130px, 1fr);
    grid-auto-flow: column;
    gap: 4px;
    width: min(100%, 420px);
    margin-bottom: 14px;
    padding: 4px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #f7fbfc;
}

.contact-filter-button {
    min-height: 42px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: var(--muted);
    font-weight: 800;
    cursor: pointer;
}

.contact-filter-button.is-active {
    background: var(--brand-sys);
    color: #fff;
}

.contacts-filter-content {
    display: grid;
    gap: 12px;
}

.contact-filter-section[hidden] {
    display: none;
}

.contact-subsection {
    display: block;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.contact-subsection-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 48px;
    padding: 0 14px;
    cursor: pointer;
    list-style: none;
}

.contact-subsection-summary::-webkit-details-marker {
    display: none;
}

.contact-subsection .report-contact-form,
.contact-subsection .report-contact-table {
    margin: 0 14px 14px;
}

.report-contact-table table {
    min-width: 720px;
}

.contact-phone-value {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.contact-phone-inline {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.contact-phone-country-flag {
    width: 24px;
    height: 16px;
    flex: 0 0 auto;
    border: 1px solid rgba(24, 35, 42, 0.18);
    border-radius: 3px;
    background: #ffffff;
    object-fit: cover;
    vertical-align: middle;
}

.employee-phone-field {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.employee-phone-field > input {
    width: 100%;
    min-width: 0;
}

.contact-phone-status {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    padding: 2px 8px;
    border: 1px solid var(--line);
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.2;
    white-space: nowrap;
}

.contact-phone-status.is-no-verificable {
    border-color: rgba(191, 118, 24, 0.42);
    background: rgba(191, 118, 24, 0.12);
    color: #8a5109;
}

.contact-phone-status.is-incorrecto {
    border-color: rgba(190, 63, 76, 0.4);
    background: rgba(190, 63, 76, 0.12);
    color: #9e2635;
}

.contacts-module {
    display: grid;
    gap: 14px;
}

.contacts-module .report-contact-panel {
    margin-top: 0;
    padding: 0;
    overflow: hidden;
    border-radius: 12px;
}

.contacts-module .report-contact-panel > .collapsible-summary {
    align-items: center;
    min-height: 72px;
    margin: 0;
    padding: 16px 18px;
    border: 0;
    border-radius: 0;
}

.contacts-module .report-contact-form {
    margin: 18px 20px 0;
}

.contacts-module .report-contact-table {
    margin: 18px 20px 20px;
}

.contacts-module .contact-filter-tabs {
    margin: 18px 20px 0;
}

:is(.report-contact-table, .report-kpi-table) .contact-client-row.has-multiple-vehicles > td {
    border-bottom-color: #c4b5fd;
    background: #f3edff;
    transition: background-color 160ms ease;
}

:is(.report-contact-table, .report-kpi-table) .contact-client-row.has-multiple-vehicles > td:first-child {
    box-shadow: inset 4px 0 0 #7c3aed;
}

:is(.report-contact-table, .report-kpi-table) .contact-client-row.has-multiple-vehicles:hover > td {
    background: #ede3ff;
}

:is(.report-contact-table, .report-kpi-table) .contact-client-row.has-multiple-vehicles.is-expanded > td {
    background: #e7d9ff;
}

.contact-client-row.has-multiple-vehicles {
    cursor: pointer;
}

.contact-client-expand {
    display: grid;
    grid-template-columns: minmax(0, auto) max-content 18px;
    gap: 8px;
    align-items: center;
    width: 100%;
    padding: 4px 6px 4px 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.contact-client-expand:focus-visible {
    border-radius: 6px;
    outline: 3px solid rgba(124, 58, 237, 0.32);
    outline-offset: 2px;
}

.contact-client-expand-name {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.contact-client-vehicle-count {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 2px 9px;
    border: 1px solid #5b21b6;
    border-radius: 999px;
    background: #6d28d9;
    color: #ffffff;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.2;
    white-space: nowrap;
}

.contact-client-expand-indicator {
    width: 9px;
    height: 9px;
    border-right: 2px solid #6d28d9;
    border-bottom: 2px solid #6d28d9;
    transform: translateY(-2px) rotate(45deg);
    transition: transform 160ms ease;
}

.contact-client-row.is-expanded .contact-client-expand-indicator {
    transform: translateY(2px) rotate(225deg);
}

:is(.report-contact-table, .report-kpi-table) .contact-client-vehicles-row > td {
    padding: 0;
    border-bottom-color: #c4b5fd;
    background: #faf7ff;
    white-space: normal;
}

.contact-client-vehicles-detail {
    display: grid;
    padding: 12px 18px 14px 22px;
}

.contact-client-vehicles-list {
    display: grid;
    gap: 8px;
}

.contact-client-vehicle-item {
    display: grid;
    grid-template-columns: repeat(3, minmax(120px, 1fr));
    gap: 12px;
    padding: 11px 14px;
    border: 1px solid #d8c6ff;
    border-radius: 8px;
    background: #ffffff;
}

.contact-client-vehicle-item > span {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.contact-client-vehicle-item small {
    color: #634d86;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.contact-client-vehicle-item strong {
    overflow-wrap: anywhere;
    color: var(--ink);
    font-size: 14px;
    font-weight: 700;
}

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

.public-link-slug-field {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    align-items: center;
    width: 100%;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    overflow: hidden;
}

.public-link-slug-field > span {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 0 12px;
    border-right: 1px solid var(--line);
    background: var(--surface-soft);
    color: var(--muted);
    font-weight: 600;
}

.public-link-slug-field input {
    border: 0;
    border-radius: 0;
}

.public-link-qr-section {
    display: grid;
    gap: 10px;
    justify-items: start;
    padding-top: 4px;
}

.public-link-qr-title {
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}

.public-link-qr-frame {
    position: relative;
    display: inline-grid;
    place-items: center;
    width: 168px;
    height: 168px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.public-link-qr {
    width: 150px;
    height: 150px;
    object-fit: contain;
}

.public-link-qr-logo {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 34px;
    height: 34px;
    padding: 5px;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.12);
    object-fit: contain;
    transform: translate(-50%, -50%);
    pointer-events: none;
}

.panel {
    min-width: 0;
    padding: 18px 20px;
}

.panel-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 14px;
}

.collapsible-panel {
    overflow: visible;
}

.collapsible-summary {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    cursor: pointer;
    list-style: none;
    margin-bottom: 0;
    padding: 12px 14px;
    border: 1px solid #d7e4e8;
    border-radius: 8px;
    background: #f6fafb;
    transition: background 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

.collapsible-summary::-webkit-details-marker {
    display: none;
}

.collapsible-summary:focus-visible {
    outline: 3px solid rgba(0, 126, 143, 0.18);
    outline-offset: 4px;
    border-radius: 8px;
}

.collapsible-panel[open] > .collapsible-summary {
    margin-bottom: 14px;
    border-color: rgba(0, 95, 107, 0.28);
    background: #e8f5f7;
    box-shadow: inset 3px 0 0 var(--brand-alki);
}

.collapsible-panel:not([open]) > .collapsible-summary {
    background: #f6fafb;
}

.collapsible-panel[open] > .collapsible-summary .collapsible-heading {
    color: var(--brand-alki);
}

.app-shell .collapsible-panel .collapsible-panel {
    border-color: #ead3a7;
    background: #fffdf8;
}

.app-shell .collapsible-panel .collapsible-panel[open] {
    border-color: rgba(183, 121, 31, 0.42);
}

.app-shell .collapsible-panel .collapsible-panel > .collapsible-summary {
    border-color: #ead3a7;
    background: #fffaf0;
}

.app-shell .collapsible-panel .collapsible-panel:not([open]) > .collapsible-summary {
    background: #fffaf0;
}

.app-shell .collapsible-panel .collapsible-panel[open] > .collapsible-summary {
    border-color: rgba(183, 121, 31, 0.34);
    background: #fff2d6;
    box-shadow: inset 3px 0 0 var(--accent-amber);
}

.app-shell .collapsible-panel .collapsible-panel[open] > .collapsible-summary .collapsible-heading {
    color: #8a570f;
}

.app-shell .collapsible-panel .collapsible-panel > .collapsible-summary .collapsible-indicator {
    color: #8a570f;
    border-color: #ead3a7;
}

.collapsible-title {
    display: block;
    min-width: 0;
}

.collapsible-title .eyebrow {
    display: block;
}

.collapsible-heading {
    display: block;
    color: var(--ink);
    font-size: 20px;
    font-weight: 700;
    line-height: 1.2;
}

.collapsible-indicator {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    border: 1px solid var(--line);
    border-radius: 8px;
    color: var(--brand-alki);
    background: #fff;
}

.collapsible-indicator::before {
    content: "";
    width: 9px;
    height: 9px;
    margin-top: -3px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    transition: transform 0.18s ease, margin 0.18s ease;
}

.collapsible-panel[open] > .collapsible-summary .collapsible-indicator::before {
    margin-top: 3px;
    transform: rotate(225deg);
}

.module-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) max-content;
    gap: 18px;
    align-items: center;
    padding: 20px 22px;
    box-shadow: var(--shadow-card);
}

.module-hero.accent-teal { border-top: 4px solid var(--accent-teal); }
.module-hero.accent-amber { border-top: 4px solid var(--accent-amber); }
.module-hero.accent-rose { border-top: 4px solid var(--accent-rose); }
.module-hero.accent-blue { border-top: 4px solid var(--accent-blue); }
.module-hero.accent-violet { border-top: 4px solid var(--accent-violet); }

.module-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
}

.module-control-row {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 14px;
    margin-top: 0;
}

.module-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    margin-left: auto;
}

.summary-panel-header {
    align-items: center;
    gap: 18px;
    margin-bottom: 16px;
}

.summary-filter-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(150px, 1fr));
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    margin-left: auto;
}

.summary-filter-form label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 9px;
    min-width: 0;
    min-height: 46px;
    padding: 7px 10px 7px 12px;
    border: 1px solid #c8dde3;
    border-radius: 8px;
    background: #f7fbfc;
    color: #36515a;
    font-size: 13px;
    font-weight: 700;
}

.summary-filter-form select {
    height: 36px;
    min-width: 136px;
    border-color: #8fa9b3;
    background-color: #fff;
    color: var(--ink);
    font-weight: 800;
}

.summary-month-panel .summary-filter-form {
    padding: 0;
}

.notice {
    margin-top: 12px;
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    font-weight: 600;
}

.notice-ok {
    color: var(--positive);
    border-color: rgba(8, 127, 111, 0.25);
    background: #f2fbf8;
}

.notice-error {
    color: var(--danger);
    border-color: rgba(194, 61, 66, 0.25);
    background: #fff6f6;
}

.notice + .notice,
.notice + .module-control-row {
    margin-top: 14px;
}

.module-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    width: fit-content;
    max-width: 100%;
    margin-top: 0;
    padding: 5px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    box-shadow: var(--shadow-card);
}

.module-tabs a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 0 13px;
    border: 1px solid transparent;
    border-radius: 8px;
    color: var(--muted);
    font-size: 14px;
    font-weight: 600;
    white-space: nowrap;
}

.module-tabs a:hover {
    border-color: var(--line-strong);
    color: var(--ink);
}

.module-tabs a.is-active {
    border-color: var(--brand-alki);
    background: var(--brand-alki);
    color: #fff;
}

.form-panel {
    margin-top: 18px;
}

.entry-form {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 13px;
    align-items: end;
}

.variables-form {
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
}

.balance-schedule-panel {
    display: grid;
    gap: 14px;
}

.balance-schedule-panel > .panel-header {
    margin-bottom: 0;
}

.balance-period-pill {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: 0 11px;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
    white-space: nowrap;
}

.balance-schedule-help {
    margin: 0;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.55;
}

.balance-payment-alerts {
    display: grid;
    gap: 8px;
    padding: 13px 15px;
    border: 1px solid rgba(183, 121, 31, 0.35);
    border-radius: 8px;
    background: rgba(245, 166, 35, 0.09);
    color: var(--ink);
    font-size: 13px;
}

.balance-payment-alerts ul {
    display: grid;
    gap: 6px;
    margin: 0;
    padding-left: 18px;
}

.balance-payment-alerts li span {
    margin-right: 6px;
    font-weight: 800;
}

.balance-payment-alerts li.is-danger {
    color: var(--danger);
}

.balance-schedule-form {
    align-items: end;
}

.balance-credit-fields {
    display: contents;
}

.balance-credit-fields[hidden] {
    display: none;
}

.balance-config-add {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 2px 0 22px;
    border-bottom: 1px solid var(--line);
}

.balance-config-add > div:first-child {
    display: grid;
    gap: 6px;
}

.balance-config-add h2,
.balance-config-list-section h2 {
    margin: 0;
}

.balance-config-add-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    flex: 0 0 auto;
}

.balance-config-list-section {
    display: grid;
    gap: 14px;
    min-width: 0;
    padding-top: 8px;
}

.balance-config-list-section > .panel-header {
    margin-bottom: 0;
}

.balance-config-scroll {
    min-width: 0;
    overflow-x: auto;
    padding-bottom: 4px;
}

.variable-row-grid.balance-service-row-grid {
    grid-template-columns: minmax(190px, 1.25fr) repeat(3, minmax(160px, 1fr)) 188px;
    min-width: 900px;
}

.variable-row-grid.balance-card-row-grid {
    grid-template-columns: minmax(170px, 1.2fr) minmax(100px, 0.65fr) repeat(4, minmax(145px, 0.9fr)) 188px;
    min-width: 1170px;
}

.balance-config-cell {
    display: flex;
    align-items: center;
    min-width: 0;
    min-height: 44px;
    padding: 9px 11px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    color: var(--ink);
    font-size: 13px;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.balance-config-cell strong {
    font-size: 14px;
}

.balance-config-actions {
    align-self: stretch;
    min-height: 44px;
}

.balance-config-actions .inline-form,
.balance-config-actions .mini-button {
    width: 100%;
}

.balance-config-empty {
    grid-column: 1 / -1;
}

.balance-config-modal-panel {
    width: min(1040px, 100%);
}

.balance-config-modal-form {
    align-items: end;
}

.balance-config-modal-actions {
    grid-column: 1 / -1;
    justify-content: flex-end;
    padding-top: 4px;
}

.balance-rule-field {
    display: grid;
    align-content: end;
    gap: 7px;
    min-width: 0;
}

.entry-form .balance-rule-open {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    min-width: 0;
    height: auto;
    min-height: 44px;
    padding: 8px 11px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    color: var(--ink);
    font: inherit;
    font-weight: 600;
    text-align: left;
    cursor: pointer;
    filter: none;
    align-self: stretch;
}

.entry-form .balance-rule-open:hover,
.entry-form .balance-rule-open:focus-visible {
    border-color: var(--brand-alki);
    box-shadow: 0 0 0 3px rgba(0, 95, 107, 0.12);
    outline: 0;
    filter: none;
}

.entry-form .balance-rule-open > span {
    min-width: 0;
    overflow-wrap: anywhere;
    font-weight: 700;
}

.entry-form .balance-rule-open small {
    flex: 0 0 auto;
    color: var(--brand-alki);
    font-size: 11px;
    font-weight: 850;
    text-transform: uppercase;
}

.record-modal.balance-rule-modal {
    z-index: 95;
}

.record-modal-panel.balance-rule-modal-panel {
    width: min(720px, 100%);
}

.balance-rule-modal-copy {
    margin: 6px 0 0;
    color: var(--muted);
    font-size: 13px;
}

.balance-rule-form {
    display: grid;
    gap: 18px;
}

.balance-rule-options-fieldset,
.balance-rule-details {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

.balance-rule-options-fieldset > legend,
.balance-rule-details > legend,
.balance-rule-details > label {
    color: var(--ink);
    font-size: 13px;
    font-weight: 800;
}

.balance-rule-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 9px;
}

.balance-rule-option {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    min-height: 70px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    color: var(--ink);
    cursor: pointer;
}

.balance-rule-option[hidden],
.balance-rule-details[hidden] {
    display: none;
}

.balance-rule-option:hover,
.balance-rule-option:has(input:focus-visible) {
    border-color: var(--brand-alki);
}

.balance-rule-option:has(input:checked) {
    border-color: var(--brand-alki);
    background: var(--brand-alki-soft);
    box-shadow: 0 0 0 2px rgba(0, 95, 107, 0.1);
}

.balance-rule-option > input {
    flex: 0 0 auto;
    width: 17px;
    min-width: 17px;
    height: 17px;
    min-height: 17px;
    margin: 2px 0 0;
    padding: 0;
    accent-color: var(--brand-alki);
}

.balance-rule-option > span {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.balance-rule-option strong {
    font-size: 13px;
}

.balance-rule-option small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.35;
}

.balance-rule-details {
    padding: 13px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
}

.balance-rule-details > label {
    display: grid;
    gap: 7px;
}

.balance-rule-details input[type="number"] {
    width: 100%;
    min-height: 42px;
    padding: 0 11px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    color: var(--ink);
    font: inherit;
}

.balance-rule-weekdays {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 7px;
    margin-top: 9px;
}

.balance-rule-weekdays label {
    position: relative;
    min-width: 0;
    cursor: pointer;
}

.balance-rule-weekdays input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.balance-rule-weekdays span {
    display: grid;
    min-height: 40px;
    place-items: center;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
}

.balance-rule-weekdays input:checked + span {
    border-color: var(--brand-alki);
    background: var(--brand-alki);
    color: #fff;
}

.balance-rule-weekdays input:focus-visible + span {
    outline: 3px solid rgba(0, 95, 107, 0.2);
    outline-offset: 2px;
}

.balance-rule-error {
    margin: -4px 0 0;
    padding: 10px 12px;
    border: 1px solid rgba(194, 61, 66, 0.32);
    border-radius: 8px;
    background: rgba(194, 61, 66, 0.08);
    color: var(--danger);
    font-size: 13px;
    font-weight: 700;
}

.balance-rule-modal-actions {
    padding-top: 2px;
}

.location-section {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    align-items: start;
}

.owner-section {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr));
    align-items: end;
}

.tools-management-form {
    display: grid;
    gap: 22px;
}

.tools-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(260px, 1fr));
    gap: 14px;
}

.tools-toggle-card {
    display: grid;
    gap: 12px;
    min-height: 112px;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.tools-toggle-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin: 0;
    color: var(--ink);
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
}

.tools-install-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}

.tools-install-row[hidden] {
    display: none;
}

.tools-actions {
    display: flex;
    justify-content: flex-end;
}

.tools-save-button {
    min-width: 220px;
    min-height: 44px;
    border: 0;
    box-shadow: 0 10px 22px rgba(0, 95, 107, 0.16);
    cursor: pointer;
}

@media (max-width: 760px) {
    .tools-grid {
        grid-template-columns: 1fr;
    }

    .tools-actions {
        justify-content: stretch;
    }

    .tools-save-button {
        width: 100%;
    }
}

.location-section > label {
    grid-column: span 2;
    min-width: 0;
    order: 20;
}

.location-section .location-company-field {
    order: 1;
}

.location-section .location-parking-field {
    order: 2;
}

.location-section .location-email-field {
    order: 3;
}

.location-section .logo-upload-field {
    order: 4;
}

.location-section .availability-field {
    order: 5;
}

.location-section .location-site-field {
    order: 6;
}

.location-section .location-phone-field {
    order: 7;
    grid-column: span 4;
}

.location-section .employee-enable-field {
    order: 8;
    grid-column: span 2;
}

.location-section[data-location-kind="estacionamiento"] .location-whatsapp-field {
    grid-column: span 2;
    order: 6;
}

.location-section[data-location-kind="estacionamiento"] .location-phone-field {
    grid-column: span 2;
    order: 7;
}

.location-section[data-location-kind="estacionamiento"] .location-site-field {
    order: 8;
}

.location-section[data-location-kind="estacionamiento"] .employee-enable-field {
    order: 9;
}

.location-section[data-location-kind="estacionamiento"] :is(.location-phone-field, .location-whatsapp-field) .phone-field {
    width: 100%;
    max-width: none;
}

.parking-entry-modes-field {
    grid-column: 1 / -1;
    order: 9;
    min-width: 0;
    margin: 6px 0 2px;
    padding: 0;
    border: 0;
    background: transparent;
}

.location-section[data-location-kind="estacionamiento"] .parking-entry-modes-field {
    order: 10;
}

.parking-entry-modes-field > legend {
    width: 100%;
    margin: 0 0 10px;
    padding: 0;
    color: var(--ink);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.3;
    text-transform: none;
}

.parking-entry-modes-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 12px 16px;
    min-width: 0;
}

.entry-form .parking-entry-mode-field {
    display: grid;
    align-content: start;
    gap: 8px;
    min-width: 0;
    color: var(--ink);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.25;
    text-transform: none;
}

.entry-form .parking-entry-mode-field .field-label-row {
    align-items: flex-start;
    width: 100%;
    min-height: 30px;
}

.entry-form .parking-entry-mode-field select {
    width: 100%;
    min-width: 0;
    height: 42px;
    padding: 0 12px;
    font-size: 13px;
    font-weight: 700;
}

@media (max-width: 1440px) {
    .parking-entry-modes-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.cyclic-help-wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.cyclic-help-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border: 0;
    border-radius: 50%;
    background: var(--brand-alki);
    color: #fff;
    font-size: 13px;
    font-weight: 900;
    line-height: 1;
    cursor: pointer;
}

.cyclic-help-popover[hidden] {
    display: none;
}

.cyclic-help-popover {
    position: absolute;
    z-index: 20;
    top: calc(100% + 8px);
    right: auto;
    left: 0;
    display: grid;
    min-width: 260px;
    gap: 5px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    box-shadow: 0 18px 44px rgba(16, 24, 33, 0.16);
    color: var(--ink);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.35;
    text-transform: none;
}

.location-section .address-map-field {
    grid-column: span 4;
    order: 21;
}

.location-section .variable-select-list-field.location-cash-field {
    grid-column: span 2;
    order: 22;
}

.location-section .address-map-field > .field-label-row,
.location-section .variable-select-list-field.location-cash-field > .variable-select-list-heading {
    min-height: 30px;
}

.location-section .location-social-grid {
    grid-column: 1 / -1;
    order: 23;
}

.location-section .space-location-list-grid {
    grid-column: 1 / -1;
    order: 24;
}

.location-section .floor-control-field {
    grid-column: span 1;
    order: 25;
}

.location-section .variable-select-list-field {
    grid-column: span 1;
    order: 26;
}

.variables-shell {
    display: grid;
    gap: 18px;
}

.variables-start-row {
    grid-column-start: 1;
}

.variable-list-field {
    align-self: stretch;
}

.variable-list-field textarea[hidden] {
    display: none;
}

.variable-list-heading,
.variable-select-list-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.variable-select-list-field {
    align-self: stretch;
}

.variable-time-range-field {
    align-self: stretch;
}

.variable-time-range {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.floor-control-field {
    align-self: stretch;
}

.space-location-list-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    align-items: stretch;
}

.space-location-list-grid .variable-select-list-field {
    min-width: 0;
}

.space-location-list-grid .variable-select-list-field select {
    min-height: 52px;
}

.space-location-list-grid .floor-control-field {
    min-width: 0;
}

.space-location-list-grid .space-list-control-field .floor-control-row {
    grid-template-columns: minmax(72px, 1fr) 30px;
}

.floor-control-row {
    display: grid;
    grid-template-columns: minmax(72px, 1fr) 30px;
    gap: 8px;
    align-items: center;
}

.space-zone-control-field .floor-control-row {
    grid-template-columns: 30px;
    justify-content: start;
}

.arca-connection-summary {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 42px;
    min-width: 0;
}

.arca-connection-summary[hidden] {
    display: none;
}

.arca-status-pill {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    min-width: 0;
    padding: 6px 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
    line-height: 1.2;
}

.arca-status-pill.is-connected {
    border-color: rgba(15, 118, 110, 0.28);
    background: rgba(15, 118, 110, 0.08);
    color: var(--brand-alki);
}

.arca-login-status {
    margin-top: 12px;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.35;
}

.arca-login-status[hidden] {
    display: none;
}

.arca-captcha-box {
    display: grid;
    gap: 10px;
    margin-top: 12px;
}

.arca-captcha-box[hidden] {
    display: none;
}

.arca-captcha-image {
    width: min(240px, 100%);
    height: auto;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.arca-login-status.is-error {
    border-color: rgba(185, 28, 28, 0.24);
    background: rgba(185, 28, 28, 0.08);
    color: #991b1b;
}

.arca-login-status.is-ok {
    border-color: rgba(15, 118, 110, 0.28);
    background: rgba(15, 118, 110, 0.08);
    color: var(--brand-alki);
}

.entry-form .variable-list-add,
.variable-collapsible-section .variable-list-add,
.parking-config-list-head .variable-list-add {
    display: inline-grid;
    place-items: center;
    min-width: 30px;
    width: 30px;
    height: 30px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: var(--brand-alki);
    color: #fff;
    font-size: 20px;
    font-weight: 800;
    line-height: 1;
    cursor: pointer;
    text-decoration: none;
}

.entry-form .variable-list-add:hover,
.variable-collapsible-section .variable-list-add:hover,
.parking-config-list-head .variable-list-add:hover {
    background: var(--brand-alki);
    filter: none;
}

.entry-form .variable-list-add.is-inactive,
.entry-form .variable-list-add.is-inactive:hover,
.variable-collapsible-section .variable-list-add.is-inactive,
.variable-collapsible-section .variable-list-add.is-inactive:hover {
    background: #d7e1e5;
    color: #6b7c82;
    filter: none;
}

.entry-form .variable-list-add.variable-list-add-inline,
.variable-collapsible-section .variable-list-add.variable-list-add-inline {
    min-width: 22px;
    width: 22px;
    height: 22px;
    font-size: 15px;
}

.variable-list-display {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    min-height: 110px;
    max-height: 180px;
    overflow: auto;
    padding: 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    text-transform: none;
}

.variable-list-chip,
.variable-list-empty {
    display: flex;
    align-items: center;
    min-width: 0;
    min-height: 30px;
    padding: 6px 9px;
    border-radius: 7px;
    background: var(--surface-soft);
    color: var(--ink);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    overflow-wrap: anywhere;
}

.variable-list-empty {
    grid-column: 1 / -1;
    justify-content: center;
    color: var(--muted);
    font-weight: 600;
}

.variable-form-section,
.variable-grid-section {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 13px;
    align-items: end;
    min-width: 0;
    padding-top: 4px;
}

.variable-collapsible-section {
    display: block;
}

.variable-collapsible-summary {
    grid-column: 1 / -1;
}

.variable-collapsible-body {
    display: grid;
    gap: 12px;
    min-width: 0;
}

.rental-unit-entry-form {
    align-items: start;
}

.rental-unit-entry-section {
    grid-column: 1 / -1;
    min-width: 0;
    padding: 0;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #ffffff;
}

.rental-unit-entry-section + .rental-unit-entry-section {
    margin-top: 2px;
}

.rental-unit-entry-section-summary {
    min-height: 54px;
    align-items: center;
    padding: 12px 14px;
}

.rental-unit-entry-section-summary .collapsible-heading {
    font-size: 17px;
}

.rental-unit-entry-section[open] > .rental-unit-entry-section-summary {
    margin-bottom: 0;
}

.rental-unit-entry-section-body {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 13px;
    align-items: end;
    min-width: 0;
    padding: 14px;
    border-top: 1px solid var(--line);
}

.rental-unit-entry-actions {
    grid-column: 1 / -1;
    justify-content: flex-end;
}

.rental-space-detail-editor {
    display: grid;
    grid-column: 1 / -1 !important;
    gap: 10px;
    align-self: stretch;
    min-width: 0;
    width: 100%;
    margin-top: 8px;
}

.rental-space-detail-list {
    display: grid;
    gap: 12px;
    min-width: 0;
    width: 100%;
    overflow-x: auto;
    padding: 2px 2px 4px;
}

.rental-space-detail-row,
.rental-space-detail-header {
    display: grid;
    grid-template-columns: minmax(170px, 1fr) minmax(120px, 0.65fr) minmax(150px, 0.75fr) minmax(280px, 1.45fr);
    column-gap: 12px;
    row-gap: 8px;
    align-items: center;
    min-width: 0;
}

.rental-space-detail-row.has-floor,
.rental-space-detail-row.has-space,
.rental-space-detail-header.has-floor,
.rental-space-detail-header.has-space {
    grid-template-columns: minmax(170px, 1fr) minmax(120px, 0.65fr) minmax(150px, 0.75fr) minmax(130px, 0.7fr) minmax(280px, 1.45fr);
}

.rental-space-detail-row.has-floor.has-space,
.rental-space-detail-header.has-floor.has-space {
    grid-template-columns: minmax(160px, 1fr) minmax(110px, 0.6fr) minmax(145px, 0.7fr) minmax(110px, 0.55fr) minmax(160px, 0.9fr) minmax(260px, 1.35fr);
}

.rental-space-detail-header span {
    min-width: 0;
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
    line-height: 1.2;
    text-transform: uppercase;
}

.rental-space-detail-name,
.rental-space-detail-empty {
    display: flex;
    align-items: center;
    min-height: 42px;
    min-width: 0;
    padding: 0 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
    color: var(--ink);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
}

.rental-space-detail-empty {
    color: var(--muted);
    font-weight: 600;
}

.rental-space-detail-row input {
    min-width: 0;
}

.rental-space-detail-row input[readonly][data-rental-space-furniture-open="1"] {
    cursor: pointer;
}

.rental-space-detail-row input[readonly][data-rental-space-furniture-open="1"]:focus {
    border-color: var(--brand-alki);
    box-shadow: 0 0 0 3px rgba(0, 95, 107, 0.18);
}

.rental-space-detail-row select {
    min-width: 0;
}

.rental-furniture-open {
    margin-top: 8px;
    width: fit-content;
}

.rental-furniture-inline {
    display: grid;
    grid-column: 1 / -1;
    gap: 10px;
    min-width: 0;
    padding: 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
}

.rental-furniture-inline[hidden] {
    display: none !important;
}

.record-modal-panel.rental-furniture-panel {
    width: min(1120px, calc(100vw - 32px));
    max-width: none;
    max-height: min(88vh, 820px);
}

.rental-furniture-list {
    display: grid;
    gap: 14px;
    min-width: 0;
}

.rental-furniture-search {
    display: grid;
    gap: 8px;
    min-width: 0;
    font-weight: 800;
    color: var(--ink);
}

.rental-furniture-search span,
.rental-furniture-table-head {
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.rental-furniture-search input {
    width: 100%;
}

.rental-furniture-suggestions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    min-height: 36px;
    align-items: center;
}

.rental-furniture-suggestion {
    min-height: 36px;
    padding: 0 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
    color: var(--ink);
    font-weight: 800;
    cursor: pointer;
}

.rental-furniture-suggestion:is(:hover, :focus-visible),
.rental-furniture-suggestion.is-custom {
    border-color: var(--brand-alki);
    color: var(--brand-alki);
}

.rental-furniture-suggestion-note,
.rental-furniture-empty {
    color: var(--muted);
    font-weight: 700;
}

.rental-furniture-table-wrap {
    min-width: 0;
    overflow-x: auto;
    padding-bottom: 2px;
}

.rental-furniture-table {
    display: grid;
    gap: 8px;
    min-width: 860px;
}

.rental-furniture-table-head,
.rental-furniture-selected-row {
    display: grid;
    grid-template-columns: minmax(160px, 1.05fr) repeat(3, minmax(100px, 0.6fr)) minmax(260px, 1.5fr) 42px;
    gap: 10px;
    align-items: center;
}

.rental-furniture-selected {
    display: grid;
    gap: 8px;
}

.rental-furniture-selected-row {
    padding: 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
}

.rental-furniture-selected-row input {
    min-width: 0;
    width: 100%;
}

.rental-furniture-selected-row input[readonly] {
    font-weight: 800;
}

.rental-furniture-remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    color: var(--danger);
    font-size: 22px;
    font-weight: 800;
    line-height: 1;
    cursor: pointer;
}

.rental-furniture-remove:is(:hover, :focus-visible) {
    border-color: var(--danger);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--danger) 18%, transparent);
}

.rental-furniture-row {
    display: grid;
    grid-template-columns: minmax(170px, 1fr) minmax(150px, 1fr);
    gap: 10px;
    align-items: center;
    min-width: 0;
    padding: 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
}

.rental-furniture-choice {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    font-weight: 700;
}

.rental-furniture-choice input {
    width: auto;
}

@media (max-width: 980px) {
    .rental-space-detail-row,
    .rental-space-detail-header {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .rental-furniture-row {
        grid-template-columns: 1fr;
    }
}

html[data-theme="dark"] {
    color-scheme: dark;
    background: #151a1d;
}

html[data-theme="dark"] body {
    background: #151a1d;
    color: #eef4f5;
}

html[data-theme="dark"] .app-shell {
    --bg: #151a1d;
    --surface: #20282c;
    --surface-soft: #273136;
    --surface-strong: #303c42;
    --ink: #eef4f5;
    --muted: #b8c4c8;
    --muted-soft: #8f9ea4;
    --line: #3b4a51;
    --line-strong: #53656d;
    --border: #3b4a51;
    --text: #eef4f5;
    --brand-sys: #eef4f5;
    --brand-alki-soft: rgba(0, 127, 143, 0.22);
    --shadow-card: 0 1px 2px rgba(0, 0, 0, 0.2), 0 12px 28px rgba(0, 0, 0, 0.24);
    --shadow-lift: 0 18px 38px rgba(0, 0, 0, 0.34);
}

html[data-theme="dark"] .report-stay-calculator-shell .public-price-grid :is(input, select, .public-time24),
html[data-theme="dark"] .report-stay-calculator-shell .public-cyclic-grid .public-time24 {
    border-color: var(--line-strong);
    background: #182126;
    color: var(--ink);
}

html[data-theme="dark"] .report-stay-calculator-shell .public-time24-badge {
    border-color: rgba(82, 216, 228, 0.38);
    background: rgba(82, 216, 228, 0.12);
    color: #8ae7ef;
}

html[data-theme="dark"] .report-stay-calculator-shell .public-calculation-mode label {
    color: var(--ink);
}

html[data-theme="dark"] .report-stay-calculator-shell .public-calculation-mode label:has(input:checked) {
    background: #087f8b;
    color: #ffffff;
}

html[data-theme="dark"] .report-stay-calculator-shell .public-vehicle-model-popover {
    border-color: var(--line-strong);
    background: #182126;
    color: var(--ink);
}

html[data-theme="dark"] .report-stay-calculator-shell .public-vehicle-model-popover article {
    border-color: var(--line);
    background: var(--surface-soft);
}

html[data-theme="dark"] .content {
    background: #151a1d;
}

html[data-theme="dark"] .topbar-greeting,
html[data-theme="dark"] .year-form label,
html[data-theme="dark"] .month-form label,
html[data-theme="dark"] .kpi-card span,
html[data-theme="dark"] th,
html[data-theme="dark"] .module-tabs a,
html[data-theme="dark"] .summary-filter-form label,
html[data-theme="dark"] .entry-form label,
html[data-theme="dark"] .variable-row-grid > span {
    color: var(--muted);
}

html[data-theme="dark"] .entry-form .parking-entry-mode-field {
    color: var(--ink);
}

html[data-theme="dark"] .topbar h1,
html[data-theme="dark"] .topbar-greeting strong,
html[data-theme="dark"] .panel h2,
html[data-theme="dark"] .module-hero h2,
html[data-theme="dark"] .summary-copy h2,
html[data-theme="dark"] .collapsible-heading,
html[data-theme="dark"] td,
html[data-theme="dark"] .parking-title-separator {
    color: var(--ink);
}

html[data-theme="dark"] .summary-band,
html[data-theme="dark"] .module-hero,
html[data-theme="dark"] .panel,
html[data-theme="dark"] .kpi-card,
html[data-theme="dark"] .module-card,
html[data-theme="dark"] .year-form,
html[data-theme="dark"] .month-form,
html[data-theme="dark"] .module-tabs,
html[data-theme="dark"] .summary-filter-form label,
html[data-theme="dark"] .notice,
html[data-theme="dark"] .service-billing-panel,
html[data-theme="dark"] .parking-config-list,
html[data-theme="dark"] .parking-config-item,
html[data-theme="dark"] .tools-toggle-card,
html[data-theme="dark"] .employee-row,
html[data-theme="dark"] .record-modal-panel,
html[data-theme="dark"] .variable-dialog-panel,
html[data-theme="dark"] .rental-unit-entry-section,
html[data-theme="dark"] .rental-space-detail-name,
html[data-theme="dark"] .rental-space-detail-empty {
    border-color: var(--line);
    background: var(--surface);
    color: var(--ink);
    box-shadow: var(--shadow-card);
}

html[data-theme="dark"] select,
html[data-theme="dark"] .search-input,
html[data-theme="dark"] .parking-title-picker select,
html[data-theme="dark"] .entry-form input,
html[data-theme="dark"] .entry-form select,
html[data-theme="dark"] .entry-form textarea,
html[data-theme="dark"] .variable-collapsible-section input,
html[data-theme="dark"] .variable-collapsible-section select,
html[data-theme="dark"] .variable-collapsible-section textarea,
html[data-theme="dark"] .location-country-button,
html[data-theme="dark"] .country-picker-button,
html[data-theme="dark"] .rental-broker-open,
html[data-theme="dark"] .rental-guarantee-picker-button,
html[data-theme="dark"] .money-prefix-field,
html[data-theme="dark"] .entry-form .cycle-days-field,
html[data-theme="dark"] .rental-unit-table-field {
    border-color: var(--line);
    background: #182023;
    color: var(--ink);
}

html[data-theme="dark"] .entry-form input::placeholder,
html[data-theme="dark"] .entry-form textarea::placeholder,
html[data-theme="dark"] .search-input::placeholder,
html[data-theme="dark"] input::placeholder {
    color: var(--muted-soft);
}

html[data-theme="dark"] option {
    background: #182023;
    color: var(--ink);
}

html[data-theme="dark"] .table-wrap,
html[data-theme="dark"] table,
html[data-theme="dark"] .country-picker-menu,
html[data-theme="dark"] .location-country-menu,
html[data-theme="dark"] .rental-broker-menu,
html[data-theme="dark"] .rental-guarantee-picker-menu {
    border-color: var(--line);
    background: var(--surface);
    box-shadow: var(--shadow-card);
}

html[data-theme="dark"] th,
html[data-theme="dark"] .availability-table th,
html[data-theme="dark"] .availability-next-table th,
html[data-theme="dark"] .ipc-view-table th {
    background: var(--surface-soft);
}

html[data-theme="dark"] th,
html[data-theme="dark"] td {
    border-bottom-color: var(--line);
}

html[data-theme="dark"] tbody tr:hover,
html[data-theme="dark"] .country-picker-option:hover,
html[data-theme="dark"] .country-picker-option.is-selected,
html[data-theme="dark"] .location-country-option:hover,
html[data-theme="dark"] .location-country-option.is-selected,
html[data-theme="dark"] .rental-broker-option:hover,
html[data-theme="dark"] .rental-broker-option:focus-visible,
html[data-theme="dark"] .rental-guarantee-option:hover,
html[data-theme="dark"] .rental-guarantee-option:focus-visible {
    background: var(--surface-strong);
    color: var(--ink);
}

html[data-theme="dark"] .collapsible-summary {
    border-color: var(--line);
    background: #222c31;
}

html[data-theme="dark"] .collapsible-panel[open] > .collapsible-summary {
    border-color: rgba(39, 193, 207, 0.36);
    background: #1d3338;
}

html[data-theme="dark"] .collapsible-panel:not([open]) > .collapsible-summary {
    background: #222c31;
}

html[data-theme="dark"] .app-shell .collapsible-panel .collapsible-panel,
html[data-theme="dark"] .app-shell .collapsible-panel .collapsible-panel > .collapsible-summary,
html[data-theme="dark"] .app-shell .collapsible-panel .collapsible-panel:not([open]) > .collapsible-summary {
    border-color: #66502d;
    background: #241f18;
}

html[data-theme="dark"] .app-shell .collapsible-panel .collapsible-panel[open] > .collapsible-summary {
    border-color: rgba(255, 184, 77, 0.36);
    background: #332817;
}

html[data-theme="dark"] .collapsible-indicator,
html[data-theme="dark"] .record-modal-close,
html[data-theme="dark"] .sidebar-toggle {
    border-color: var(--line);
    background: #1b2428;
    color: #27c1cf;
}

html[data-theme="dark"] .entry-form .rental-broker-open,
html[data-theme="dark"] .entry-form .rental-guarantee-picker-button,
html[data-theme="dark"] .entry-form .rental-broker-option,
html[data-theme="dark"] .entry-form .rental-guarantee-option,
html[data-theme="dark"] .rental-guarantee-option {
    background: #182023;
    color: var(--ink);
}

html[data-theme="dark"] .entry-form .rental-broker-option.is-selected,
html[data-theme="dark"] .entry-form .rental-broker-option[aria-pressed="true"],
html[data-theme="dark"] .entry-form .rental-guarantee-option.is-selected,
html[data-theme="dark"] .entry-form .rental-guarantee-option[aria-pressed="true"],
html[data-theme="dark"] .rental-guarantee-option.is-selected,
html[data-theme="dark"] .rental-guarantee-option[aria-pressed="true"] {
    background: rgba(0, 127, 143, 0.2);
    color: #71d9e3;
}

html[data-theme="dark"] .money-prefix-field > span,
html[data-theme="dark"] .percentage-symbol,
html[data-theme="dark"] .rental-guarantee-picker-field,
html[data-theme="dark"] .cycle-days-field legend,
html[data-theme="dark"] .cycle-row-title {
    color: var(--ink);
}

html[data-theme="dark"] .tariff-increase-row,
html[data-theme="dark"] .tariff-increase-row:hover {
    background: rgba(8, 127, 111, 0.18);
}

html[data-theme="dark"] .tariff-preview-row.tariff-month-past td,
html[data-theme="dark"] .tariff-preview-row.tariff-month-past.tariff-increase-row td {
    background: rgba(194, 61, 66, 0.24);
}

html[data-theme="dark"] .tariff-preview-row.tariff-month-current td,
html[data-theme="dark"] .tariff-preview-row.tariff-month-current.tariff-increase-row td {
    background: rgba(183, 121, 31, 0.22);
}

html[data-theme="dark"] .notice-ok {
    border-color: rgba(8, 127, 111, 0.38);
    background: rgba(8, 127, 111, 0.16);
}

html[data-theme="dark"] .notice-error {
    border-color: rgba(194, 61, 66, 0.42);
    background: rgba(194, 61, 66, 0.16);
}

html[data-theme="dark"] .record-modal-backdrop {
    background: rgba(3, 7, 10, 0.72);
}

html[data-theme="dark"] .module-tabs a:hover {
    border-color: var(--line-strong);
    color: var(--ink);
}

html[data-theme="dark"] .module-tabs a.is-active,
html[data-theme="dark"] .nav-link.is-active,
html[data-theme="dark"] .nav-link:hover {
    color: #ffffff;
}

@media (max-width: 620px) {
    .rental-space-detail-row {
        grid-template-columns: 1fr;
    }
}

.variable-grid-heading-actions {
    justify-content: flex-end;
}

.variable-form-section h3,
.variable-grid-heading h3 {
    grid-column: 1 / -1;
    margin: 0;
    color: var(--ink);
    font-size: 15px;
    line-height: 1.25;
}

.location-country-picker {
    position: relative;
    display: block;
    min-width: 0;
    text-transform: none;
}

.entry-form .location-country-button {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    width: 100%;
    height: 42px;
    min-width: 0;
    padding: 0 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    font: inherit;
    font-weight: 600;
    line-height: 1;
    text-align: left;
    cursor: pointer;
}

.location-flag {
    width: 24px;
    height: 16px;
    border: 1px solid rgba(0, 0, 0, 0.12);
    border-radius: 3px;
    background: #fff;
    object-fit: cover;
}

.location-country-button span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.location-country-menu {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    z-index: 45;
    display: none;
    width: min(260px, calc(100vw - 48px));
    max-height: 300px;
    overflow: auto;
    padding: 6px;
    border: 1px solid var(--line-strong);
    border-radius: 8px;
    background: #fff;
    box-shadow: var(--shadow-lift);
}

.location-country-picker.is-open .location-country-menu {
    display: grid;
    gap: 2px;
}

.entry-form .location-country-option {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    width: 100%;
    min-height: 34px;
    min-width: 0;
    padding: 7px 8px;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: var(--ink);
    font: inherit;
    font-weight: 600;
    line-height: 1.2;
    text-align: left;
    cursor: pointer;
}

.entry-form .location-country-option:hover,
.entry-form .location-country-option.is-selected {
    background: var(--surface-strong);
}

.location-country-option img {
    width: 24px;
    height: 16px;
    border: 1px solid rgba(0, 0, 0, 0.12);
    border-radius: 3px;
    background: #fff;
    object-fit: cover;
}

.location-country-option span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.variable-grid-heading {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.field-label-row {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.field-label-row > span:first-child {
    min-width: 0;
}

.entry-form .map-text-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: max-content;
    max-width: 100%;
    min-height: 0;
    text-transform: none;
}

.entry-form .map-text-link,
.entry-form .floor-list-link,
.entry-form .ipc-view-link {
    min-width: 0;
    height: auto;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--brand-alki);
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    text-align: left;
    white-space: nowrap;
    cursor: pointer;
}

.entry-form .map-text-link:hover,
.entry-form .floor-list-link:hover,
.entry-form .ipc-view-link:hover {
    background: transparent;
    color: #00525d;
    filter: none;
    text-decoration: underline;
}

.entry-form .map-text-link:focus-visible {
    background: transparent;
    outline: 2px solid currentColor;
    outline-offset: 2px;
    box-shadow: none;
}

.entry-form .ipc-view-link {
    color: #2563eb;
    text-transform: none;
}

.entry-form .ipc-view-link:hover {
    color: #1d4ed8;
}

.variable-grid-actions {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
}

.entry-form .variable-show-all,
.variable-collapsible-section .variable-show-all {
    min-width: 88px;
    height: 30px;
    padding: 0 10px;
}

.variable-row-grid {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: minmax(170px, 1fr) minmax(130px, 180px) 188px;
    gap: 8px;
    align-items: center;
}

.variable-row-grid-vehicles {
    grid-template-columns: 1fr;
    gap: 8px;
    align-items: stretch;
    padding-bottom: 4px;
    overflow-x: auto;
}

.vehicle-category-toolbar {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 14px;
    min-width: 0;
    padding: 0 2px 4px;
}

.vehicle-category-add-button {
    flex: 0 0 auto;
    gap: 7px;
    min-width: 168px;
}

.vehicle-category-add-button > span:first-child {
    display: inline-grid;
    place-items: center;
    width: 20px;
    height: 20px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.16);
    font-size: 17px;
    line-height: 1;
}

.vehicle-category-table-head,
.variable-row-grid-vehicles .variable-row {
    display: grid;
    grid-template-columns:
        minmax(140px, 0.82fr)
        minmax(190px, 1.16fr)
        repeat(5, minmax(100px, 0.62fr))
        minmax(118px, 0.68fr)
        180px;
    gap: 8px;
    align-items: stretch;
    min-width: 1280px;
}

.vehicle-category-table-head {
    padding: 0 12px 4px;
}

.vehicle-category-table-head > span {
    display: flex;
    align-items: center;
    min-width: 0;
    color: var(--muted);
    font-size: 11px;
    font-weight: 800;
    line-height: 1.2;
    text-transform: uppercase;
}

.vehicle-category-table-head .variable-column-heading-action {
    gap: 6px;
}

.variable-row-grid-vehicles .variable-row {
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--surface);
    transition: border-color 0.16s ease, box-shadow 0.16s ease;
}

.variable-row-grid-vehicles .variable-row:hover {
    border-color: var(--line-strong);
    box-shadow: 0 8px 20px rgba(43, 47, 51, 0.06);
}

.vehicle-category-cell {
    display: grid;
    align-content: center;
    gap: 3px;
    min-width: 0;
}

.vehicle-category-cell-label {
    display: none;
    color: var(--muted);
    font-size: 11px;
    font-weight: 800;
    line-height: 1.2;
    text-transform: uppercase;
}

.vehicle-category-main-cell strong,
.vehicle-category-cell output,
.vehicle-category-cell-value {
    min-width: 0;
    overflow: hidden;
    color: var(--ink);
    font-size: 14px;
    font-weight: 800;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.vehicle-category-models-cell small,
.vehicle-category-rate-cell small {
    min-width: 0;
    overflow: hidden;
    color: var(--muted);
    font-size: 11px;
    font-weight: 650;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vehicle-category-rate-cell {
    padding-left: 10px;
    border-left: 1px solid var(--line);
}

.vehicle-category-capacity-cell {
    justify-items: center;
    text-align: center;
}

.vehicle-category-capacity-cell output {
    display: grid;
    place-items: center;
    min-width: 44px;
    min-height: 34px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
}

.variable-row-grid-vehicles .variable-row-actions {
    align-self: center;
    justify-content: flex-end;
}

.variable-row-grid-spaces {
    grid-template-columns: minmax(150px, 1fr) repeat(var(--space-vehicle-count, 1), minmax(110px, 140px)) 188px;
}

.variable-row-grid-spaces.has-floors {
    grid-template-columns: minmax(150px, 1fr) minmax(150px, 210px) repeat(var(--space-vehicle-count, 1), minmax(100px, 132px)) 198px;
}

.variable-row-grid-spaces.has-locations {
    grid-template-columns:
        minmax(120px, 1fr)
        repeat(var(--space-location-count, 1), minmax(110px, 150px))
        repeat(var(--space-vehicle-count, 1), minmax(92px, 118px))
        198px;
}

.variable-row-grid-spaces:not(.is-rental-units) {
    gap: 10px;
    align-items: stretch;
}

.variable-row-grid-spaces:not(.is-rental-units) :is(input[name="espacio_nombre"], [data-space-entry-field], [data-space-zone-field], [data-space-floor-field], .space-vehicle-column) {
    min-height: 46px;
    font-size: 14px;
    font-weight: 800;
}

.variable-row-grid-spaces:not(.is-rental-units) input[name="espacio_nombre"] {
    background: #f8fbfc;
}

.variable-row-grid-spaces:not(.is-rental-units) :is([data-space-entry-field], [data-space-zone-field], [data-space-floor-field]) {
    background-color: #fff;
}

.variable-row-grid-spaces:not(.is-rental-units) .variable-row-actions {
    align-self: stretch;
}

.variable-row-grid-spaces.is-rental-units {
    grid-template-columns:
        minmax(180px, 1.4fr)
        minmax(78px, 0.55fr)
        minmax(120px, 0.8fr)
        minmax(120px, 0.9fr)
        minmax(130px, 0.9fr)
        minmax(130px, 0.8fr)
        minmax(120px, 0.8fr)
        188px;
}

.variable-row-grid-spaces.is-rental-units.has-floors {
    grid-template-columns:
        minmax(180px, 1.4fr)
        minmax(78px, 0.55fr)
        minmax(120px, 0.8fr)
        minmax(120px, 0.9fr)
        minmax(130px, 0.9fr)
        minmax(130px, 0.8fr)
        minmax(120px, 0.8fr)
        188px;
}

.variable-row-grid-spaces.is-rental-units [data-space-floor-field] {
    display: none !important;
}

.rental-unit-table-field {
    min-width: 0;
}

.variable-row-grid > span {
    color: #000;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;
    text-transform: uppercase;
}

.variable-row-grid > .variable-column-heading {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

.variable-row-grid > .variable-column-heading-action {
    justify-content: flex-start;
}

.variable-row {
    display: contents;
}

.variable-row[hidden] {
    display: none;
}

.employee-toolbar {
    display: flex;
    justify-content: flex-start;
    margin-bottom: 10px;
}

.employee-management-form {
    display: grid;
    gap: 18px;
}

.employee-list {
    display: grid;
    gap: 12px;
}

.employee-row {
    position: relative;
    display: grid;
    grid-template-columns: minmax(220px, 1.25fr) minmax(120px, 0.65fr) minmax(130px, 0.7fr) minmax(190px, 1fr) minmax(210px, 1fr) minmax(150px, 0.75fr) minmax(96px, auto) minmax(230px, auto);
    gap: 12px 14px;
    align-items: center;
    padding: 14px 14px 14px 18px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 8px 20px rgba(43, 47, 51, 0.05);
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.employee-row::before {
    content: "";
    position: absolute;
    top: 14px;
    bottom: 14px;
    left: 0;
    width: 4px;
    border-radius: 0 999px 999px 0;
    background: var(--employee-color, var(--brand-alki));
}

.employee-row:hover {
    border-color: rgba(0, 95, 107, 0.34);
    box-shadow: 0 12px 28px rgba(43, 47, 51, 0.08);
    transform: translateY(-1px);
}

.employee-row.is-disabled {
    background: #f4f8f8;
    opacity: 0.78;
}

.employee-cell {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.employee-cell span {
    color: var(--muted);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.employee-cell strong,
.employee-cell small {
    min-width: 0;
    overflow-wrap: anywhere;
}

.employee-cell strong {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--ink);
    font-size: 14.5px;
    line-height: 1.25;
}

.employee-cell small {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 600;
}

.employee-color-dot {
    display: inline-block;
    flex: 0 0 auto;
    width: 12px;
    height: 12px;
    border-radius: 999px;
    background: var(--employee-color, var(--brand-alki));
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--employee-color, var(--brand-alki)) 16%, transparent);
}

.employee-verified-badge {
    display: inline-grid;
    place-items: center;
    width: 16px;
    height: 16px;
    border-radius: 999px;
    background: var(--brand-alki);
}

.employee-verified-badge::before {
    content: "";
    width: 7px;
    height: 4px;
    border-left: 2px solid #fff;
    border-bottom: 2px solid #fff;
    transform: rotate(-45deg) translateY(-1px);
}

.employee-verified-badge[hidden],
.employee-hidden-file {
    display: none;
}

.employee-actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    justify-content: stretch;
    gap: 8px;
}

.employee-actions .mini-button {
    min-width: 0;
    width: 100%;
}

.employee-empty {
    border: 1px dashed var(--line);
    border-radius: 8px;
}

.record-modal[data-employee-modal] {
    place-items: stretch;
    padding: 0;
}

.employee-dialog-panel {
    width: 100vw;
    height: 100vh;
    max-height: none;
    overflow-y: auto;
    grid-template-rows: auto auto auto;
    gap: 16px;
    padding: 24px 30px 20px;
    border-radius: 0;
    background: #f7fafb;
}

.employee-dialog-panel > .record-modal-header {
    position: sticky;
    top: -24px;
    z-index: 2;
    margin: -24px -30px 0;
    padding: 24px 74px 18px 30px;
    border-bottom: 1px solid var(--line);
    background: rgba(247, 250, 251, 0.96);
    backdrop-filter: blur(8px);
}

.record-modal[data-employee-modal] .record-modal-close {
    position: fixed;
    top: 14px;
    right: 14px;
    z-index: 4;
}

.employee-dialog-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.employee-dialog-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(420px, 0.9fr);
    gap: 16px;
    align-items: start;
    min-height: 0;
    overflow: visible;
}

.employee-dialog-main {
    display: grid;
    align-content: start;
    gap: 12px;
    min-width: 0;
    min-height: 0;
    overflow: visible;
    padding-right: 4px;
}

.employee-modal-section {
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 8px 20px rgba(43, 47, 51, 0.05);
}

.employee-modal-summary {
    align-items: center;
    min-height: 56px;
    margin: 0;
    padding: 13px 16px;
    background: linear-gradient(180deg, #fff 0%, #f8fbfb 100%);
    cursor: pointer;
}

.employee-modal-summary .collapsible-heading {
    font-size: 18px;
}

.employee-modal-section[open] > .employee-modal-summary {
    margin-bottom: 0;
    border-bottom: 1px solid var(--line);
}

.employee-section-body {
    padding: 16px;
}

.employee-section-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px 14px;
}

.employee-section-grid > .employee-schedule-field,
.employee-section-grid > .employee-rotation-box,
.employee-section-grid > .employee-rotation-preview {
    grid-column: 1 / -1;
}

.employee-function-list {
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(auto-fit, minmax(128px, 1fr));
    padding: 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
}

.employee-function-row {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    min-height: 34px;
    gap: 7px;
    padding: 7px 9px;
    border: 1px solid var(--line);
    border-radius: 6px;
    background: #fff;
    color: var(--ink);
    font-size: 12px;
    font-weight: 700;
    text-transform: none;
}

.employee-function-row:hover {
    border-color: rgba(0, 95, 107, 0.32);
    background: #fdfefe;
}

.employee-function-row input[type="checkbox"],
.employee-toggle-line input {
    width: 14px;
    min-width: 14px;
    height: 14px;
    min-height: 14px;
    margin: 0;
    padding: 0;
    accent-color: var(--brand-alki);
}

.employee-color-field {
    align-content: start;
}

.employee-color-control {
    display: inline-flex;
    align-items: center;
    height: 42px;
}

.employee-color-control input[type="color"] {
    width: 28px;
    height: 28px;
    min-width: 28px;
    padding: 0;
    border: 2px solid var(--line);
    border-radius: 999px;
    background: var(--employee-color, var(--brand-alki));
}

.employee-color-control input[type="color"] {
    overflow: hidden;
    cursor: pointer;
}

.employee-color-control input[type="color"]::-webkit-color-swatch-wrapper {
    padding: 0;
}

.employee-color-control input[type="color"]::-webkit-color-swatch {
    border: 0;
    border-radius: 999px;
}

.employee-info-button {
    display: inline-grid;
    place-items: center;
    width: 20px;
    height: 20px;
    min-height: 20px;
    padding: 0;
    border: 1px solid var(--brand-alki);
    border-radius: 999px;
    background: #fff;
    color: var(--brand-alki);
    font-size: 12px;
    font-weight: 800;
}

.field-label-inline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.recargo-switch-heading {
    align-items: center;
}

.recargo-switch-field.is-disabled input[data-recargo-switch-input] {
    background: var(--surface-soft);
    color: var(--muted);
    cursor: not-allowed;
}

.mini-switch {
    position: relative;
    display: inline-flex;
    align-items: center;
    width: 38px;
    height: 22px;
    flex: 0 0 auto;
}

.mini-switch input {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    opacity: 0;
    cursor: pointer;
}

.mini-switch span {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: #dfe8eb;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.mini-switch span::after {
    content: "";
    position: absolute;
    top: 3px;
    left: 3px;
    width: 14px;
    height: 14px;
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 1px 3px rgba(16, 24, 33, 0.2);
    transition: transform 0.15s ease;
}

.mini-switch input:checked + span {
    border-color: var(--brand-alki);
    background: var(--brand-alki);
}

.mini-switch input:checked + span::after {
    transform: translateX(16px);
}

.employee-validate-link {
    min-height: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--accent-blue);
    font: inherit;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
}

.employee-validation-status,
[data-employee-contract-current] {
    min-height: 16px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 600;
    text-transform: none;
}

.employee-schedule-field input {
    cursor: pointer;
}

.employee-schedule-preview {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
}

.employee-schedule-preview[hidden] {
    display: none;
}

.employee-schedule-preview span {
    padding: 5px 8px;
    border-radius: 999px;
    background: var(--brand-alki-soft);
    color: var(--brand-alki);
    font-size: 12px;
    font-weight: 800;
    text-transform: none;
}

.employee-rotation-box {
    display: grid;
    grid-template-columns: minmax(150px, 0.75fr) repeat(4, minmax(150px, 1fr));
    gap: 10px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: linear-gradient(180deg, #f8fbfb 0%, #eef6f7 100%);
}

.employee-rotation-box label {
    margin: 0;
}

.employee-rotation-preview {
    display: grid;
    gap: 10px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.employee-rotation-preview[hidden] {
    display: none !important;
}

.employee-rotation-calendar {
    display: block;
    padding: 0;
    overflow: hidden;
}

.employee-rotation-calendar[open] > .employee-rotation-calendar-summary {
    margin-bottom: 0;
    border-bottom: 1px solid var(--line);
}

.employee-rotation-calendar-summary {
    align-items: center;
    min-height: 52px;
    padding: 10px 12px;
}

.employee-rotation-calendar-summary .collapsible-heading {
    font-size: 16px;
}

.employee-rotation-calendar-summary strong {
    display: none;
}

.employee-rotation-calendar-summary small {
    display: block;
    margin-top: 2px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
    text-transform: none;
}

.employee-rotation-calendar-body {
    overflow-x: auto;
    padding: 12px;
}

.employee-rotation-preview-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.employee-rotation-preview-head strong {
    color: var(--ink);
    font-size: 13px;
}

.employee-rotation-preview-head small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
}

.employee-rotation-preview-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(88px, 1fr));
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.6);
}

.employee-rotation-preview-cell {
    display: grid;
    align-content: start;
    gap: 5px;
    min-height: 76px;
    padding: 9px;
    border-right: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    background: #fbfdfd;
}

.employee-rotation-preview-cell:nth-child(7n) {
    border-right: 0;
}

.employee-rotation-preview-cell:nth-last-child(-n + 7) {
    border-bottom: 0;
}

.employee-rotation-preview-cell.is-rotated {
    background: #e8f7ee;
    box-shadow: inset 0 0 0 1px rgba(20, 108, 53, 0.12);
}

.employee-rotation-preview-cell.is-change {
    box-shadow: inset 4px 0 0 #d8a526, inset 0 0 0 1px rgba(216, 165, 38, 0.14);
}

.employee-rotation-preview-cell strong,
.employee-rotation-preview-cell small {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.employee-rotation-preview-cell strong {
    color: var(--ink);
    font-size: 13px;
}

.employee-rotation-preview-cell small {
    color: var(--muted);
    font-size: 11px;
    font-weight: 700;
}

.employee-rotation-preview-cell.is-rotated small {
    color: #146c35;
}

.employee-contract-section {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    min-height: 0;
}

.employee-contract-section:not([open]) {
    grid-template-rows: auto;
}

.employee-contract-body {
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr);
    gap: 10px;
    min-height: 0;
}

.employee-contract-preview {
    display: grid;
    min-height: 0;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
}

.employee-contract-preview iframe {
    width: 100%;
    height: 100%;
    min-height: 0;
    border: 0;
    background: #fff;
}

.employee-contract-preview .empty-state {
    display: grid;
    place-items: center;
    min-height: 360px;
}

.entry-form .variable-row .mini-button,
.variable-collapsible-section .variable-row .mini-button {
    min-width: 0;
    width: 88px;
    height: 42px;
    padding: 0 10px;
}

.variable-collapsible-section .variable-row .mini-button.wide {
    width: 188px;
}

.variable-row-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.variable-collapsible-section input,
.variable-collapsible-section select,
.variable-collapsible-section textarea {
    width: 100%;
    min-width: 0;
    height: 42px;
    padding: 0 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    font: inherit;
    font-weight: 600;
}

.variable-collapsible-section select[multiple] {
    height: 86px;
    padding: 8px 10px;
}

.rental-broker-picker {
    position: relative;
    display: block;
    width: 100%;
}

.rental-broker-open {
    position: relative;
    width: 100%;
    height: 42px;
    padding: 0 34px 0 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    font: inherit;
    font-weight: 600;
    text-align: left;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    cursor: pointer;
}

.rental-broker-open::after {
    content: "";
    position: absolute;
    right: 14px;
    top: 18px;
    width: 8px;
    height: 8px;
    border-right: 2px solid var(--muted);
    border-bottom: 2px solid var(--muted);
    transform: rotate(45deg);
    pointer-events: none;
}

.rental-broker-open[aria-expanded="true"]::after {
    top: 20px;
    transform: rotate(-135deg);
}

.rental-broker-menu {
    position: absolute;
    z-index: 35;
    top: calc(100% + 8px);
    right: 0;
    left: 0;
    display: grid;
    gap: 8px;
    max-height: min(280px, 42vh);
    overflow: auto;
    padding: 8px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 18px 36px rgba(20, 40, 45, 0.16);
}

.rental-broker-menu[hidden] {
    display: none;
}

.rental-broker-option {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    min-height: 44px;
    width: 100%;
    padding: 0 38px 0 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    font: inherit;
    font-weight: 600;
    text-align: left;
    cursor: pointer;
}

.rental-broker-option::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 14px;
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: var(--brand-alki);
    opacity: 0;
    transform: translateY(-50%);
}

.rental-broker-option:hover,
.rental-broker-option:focus-visible {
    border-color: rgba(0, 95, 107, 0.22);
    background: #f7fbfc;
    outline: none;
}

.rental-broker-option.is-selected,
.rental-broker-option[aria-pressed="true"] {
    border-color: var(--line);
    color: var(--brand-alki);
}

.rental-broker-option.is-selected::after,
.rental-broker-option[aria-pressed="true"]::after {
    opacity: 1;
}

.parking-config-list {
    display: grid;
    grid-column: 1 / -1;
    gap: 8px;
    margin-top: 2px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.parking-config-list-head,
.parking-config-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) max-content;
    gap: 10px;
    align-items: center;
}

.parking-config-list h3 {
    margin: 0;
    color: var(--ink);
    font-size: 15px;
    line-height: 1.2;
}

.parking-config-add {
    justify-self: end;
}

.parking-config-item {
    padding: 8px 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
}

.parking-config-item.is-active {
    border-color: rgba(0, 95, 107, 0.34);
    background: rgba(0, 95, 107, 0.07);
}

.parking-config-item.parking-config-draft {
    border-style: dashed;
}

.parking-config-item span {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.parking-config-item strong,
.parking-config-item small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.parking-config-item small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 600;
}

.parking-config-item .parking-config-actions {
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-end;
    gap: 8px;
    min-width: 0;
}

.parking-config-item .parking-config-actions .mini-button {
    flex: 0 0 auto;
    min-width: 92px;
}

.parking-select-button:disabled,
.parking-select-button[disabled] {
    border-color: rgba(0, 95, 107, 0.28);
    background: rgba(0, 95, 107, 0.12);
    color: var(--brand-alki);
    cursor: default;
}

.parking-draft-pill {
    border-color: rgba(37, 99, 235, 0.28);
    background: rgba(37, 99, 235, 0.1);
    color: var(--accent-blue);
    cursor: default;
}

.space-vehicle-column {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    appearance: none;
    min-width: 0;
    min-height: 42px;
    padding: 0 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
}

.space-vehicle-column.is-selected {
    border-color: var(--brand-alki);
    background: rgba(0, 95, 107, 0.14);
    color: #004f59;
}

.space-vehicle-column:hover {
    border-color: rgba(0, 95, 107, 0.32);
    color: var(--brand-alki);
}

.space-vehicle-picker {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 6px;
    align-self: stretch;
}

.space-vehicle-picker-title,
.space-vehicle-picker-empty {
    grid-column: 1 / -1;
    color: #000;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.space-vehicle-picker-empty {
    padding: 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    color: var(--muted);
    font-weight: 700;
    text-align: center;
    text-transform: none;
}

.space-vehicle-option {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 34px;
    padding: 8px 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    font-size: 13px;
    font-weight: 700;
    text-transform: none;
}

.space-vehicle-option input[type="checkbox"] {
    flex: 0 0 16px;
    width: 16px !important;
    min-width: 16px;
    height: 16px !important;
    min-height: 16px;
    margin: 0;
    padding: 0;
    accent-color: var(--brand-alki);
}

.variable-row select[aria-disabled="true"] {
    pointer-events: none;
}

.compact-form {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    margin-bottom: 12px;
}

.entry-form label {
    display: grid;
    min-width: 0;
    gap: 6px;
    color: #000000;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;
    text-transform: uppercase;
}

.entry-form [hidden] {
    display: none !important;
}

.parking-client-flags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    color: #000000;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;
    text-transform: uppercase;
}

.parking-client-flags > .field-label-line {
    flex: 0 0 100%;
}

.parking-client-flags.has-client-switch > .field-label-line,
.parking-client-flags.has-client-switch .parking-client-change-link {
    order: 1;
}

.parking-client-flags.has-client-switch > .field-label-line {
    flex: 0 0 auto;
}

.parking-client-flags.has-client-switch::after {
    content: "";
    order: 2;
    flex: 0 0 100%;
}

.parking-client-flags.has-client-switch .parking-client-check {
    order: 3;
}

.entry-form .parking-client-change-link {
    align-self: center;
    color: #2563eb;
    font-size: 13px;
    font-weight: 700;
    text-transform: none;
}

.entry-form .parking-client-check {
    display: inline-flex;
    width: auto;
    min-height: 42px;
    align-items: center;
    gap: 8px;
    padding: 0 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: #000000;
    font-size: 12px;
    font-weight: 600;
}

.entry-form .parking-client-check.is-locked {
    cursor: not-allowed;
    opacity: 1;
}

.entry-form .parking-client-check input {
    width: 16px;
    height: 16px;
    min-width: 16px;
    padding: 0;
    accent-color: var(--brand-alki);
}

.entry-form .parking-client-check.is-locked input {
    cursor: not-allowed;
}

.parking-client-picker-field {
    display: grid;
    align-self: end;
    min-width: 0;
    gap: 6px;
    color: #000;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;
    text-transform: uppercase;
}

.parking-client-picker-button {
    display: flex;
    width: 100%;
    min-height: 44px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 0 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: #000000;
    font: inherit;
    font-size: 14px;
    font-weight: 600;
    text-align: left;
    text-transform: none;
    cursor: pointer;
}

.entry-form .parking-client-picker-button {
    min-width: 0;
    height: auto;
    min-height: 44px;
    padding: 0 14px;
    border: 1px solid var(--line);
    background: #fff;
    color: #000000;
}

.parking-client-picker-button::after {
    content: "";
    flex: 0 0 auto;
    width: 8px;
    height: 8px;
    border-right: 2px solid var(--brand-alki);
    border-bottom: 2px solid var(--brand-alki);
    transform: rotate(45deg);
}

.parking-client-picker-button:hover,
.parking-client-picker-button:focus-visible,
.entry-form .parking-client-picker-button:hover,
.entry-form .parking-client-picker-button:focus-visible {
    border-color: var(--brand-alki);
    background: #fff;
    color: var(--ink);
    filter: none;
    box-shadow: 0 0 0 3px rgba(0, 95, 107, 0.13);
    outline: none;
}

.parking-client-picker-button.is-empty {
    color: var(--muted);
}

.parking-client-picker-button:disabled {
    cursor: not-allowed;
    opacity: 0.65;
}

.required-mark {
    color: var(--danger);
    font-weight: 800;
}

.field-label-line {
    display: inline-flex;
    align-items: center;
    gap: 3px;
}

.gastos-field-tools {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-left: 0;
    text-transform: none;
}

.gastos-label-row {
    justify-content: flex-start;
}

.panel.gastos-collapsible-panel {
    margin-top: 22px;
}

.panel.gastos-collapsible-panel + .panel.gastos-collapsible-panel {
    margin-top: 22px;
}

.gastos-collapsible-panel .collapsible-summary {
    min-height: 48px;
    align-items: center;
}

.gastos-entry-form {
    grid-template-columns:
        minmax(180px, 0.85fr)
        minmax(210px, 0.95fr)
        minmax(240px, 1.05fr)
        minmax(300px, 1.35fr);
}

.gastos-entry-form .gastos-provider-field {
    grid-column: 1;
}

.gastos-entry-form .gastos-property-field {
    grid-column: 1 / -1;
}

.gastos-entry-form .gastos-name-field {
    grid-column: 2;
}

.gastos-entry-form .gastos-category-field {
    grid-column: 3;
}

.gastos-entry-form .gastos-subcategory-field {
    grid-column: 4;
    min-width: 0;
}

.gastos-entry-form .gastos-field-tools {
    flex: 0 0 auto;
    white-space: nowrap;
}

.gastos-entry-form .gastos-method-field {
    grid-column: 1;
}

.gastos-card-field {
    display: grid;
    align-self: end;
    gap: 6px;
    min-width: 0;
}

.gastos-card-field > label {
    min-width: 0;
}

.entry-form select[data-gastos-card-select] option[data-gastos-card-add-option] {
    background-color: var(--brand-alki);
    color: #ffffff;
    font-weight: 800;
}

.gastos-entry-form.uses-card .gastos-method-field {
    grid-column: 1;
    grid-row: 2;
}

.gastos-entry-form.uses-card .gastos-card-field {
    grid-column: 2;
    grid-row: 2;
}

.gastos-entry-form.uses-card .gastos-payment-date-field {
    grid-column: 3;
    grid-row: 2;
}

.gastos-entry-form.uses-card .gastos-amount-field {
    grid-column: 4;
    grid-row: 2;
}

.gastos-entry-form.uses-card .gastos-invoice-field {
    grid-column: 2;
    grid-row: 3;
}

.gastos-entry-form.uses-card .gastos-description-field {
    grid-column: 3 / 5;
    grid-row: 3;
}

.gastos-entry-form.uses-card.is-credit .gastos-installments-field,
.gastos-entry-form.uses-card:not(.is-credit) .gastos-frequency-field {
    grid-column: 1;
    grid-row: 3;
}

.gastos-entry-form.uses-card.is-credit .gastos-installment-start-field {
    grid-column: 2;
    grid-row: 3;
}

.gastos-entry-form.uses-card.is-credit .gastos-invoice-field {
    grid-column: 3;
}

.gastos-entry-form.uses-card.is-credit .gastos-description-field {
    grid-column: 4;
}

.gastos-entry-form .gastos-payment-date-field {
    grid-column: 2;
}

.gastos-entry-form .gastos-amount-field {
    grid-column: 3;
}

.gastos-entry-form .gastos-invoice-field {
    grid-column: 4;
}

.gastos-entry-form .gastos-installments-field,
.gastos-entry-form .gastos-frequency-field {
    grid-column: 1;
}

.gastos-entry-form .gastos-installment-start-field,
.gastos-entry-form .gastos-frequency-day-field {
    grid-column: 2;
}

.gastos-entry-form .gastos-description-field {
    grid-column: 3 / 5;
}

.gastos-entry-form:where(:not(.is-credit):not(.has-frequency-day)) .gastos-description-field {
    grid-column: 2 / 5;
}

.gastos-entry-form .gastos-description-field textarea {
    height: 42px;
    min-height: 42px;
}

.gastos-items-editor {
    display: grid;
    grid-column: 1 / -1;
    gap: 10px;
    min-width: 0;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.gastos-items-heading {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 6px 16px;
}

.gastos-items-heading > .field-label-line {
    color: var(--ink);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.gastos-items-balance {
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.35;
    text-align: right;
    text-transform: none;
}

.gastos-items-balance[data-state="error"] {
    color: var(--danger);
}

.gastos-items-balance[data-state="success"] {
    color: #176b3a;
}

.gastos-items-balance[data-state="legacy"] {
    color: #7a5a00;
}

.gastos-items-list {
    display: grid;
    gap: 9px;
}

.gastos-item-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(170px, 240px) 32px;
    gap: 8px;
    align-items: end;
    min-width: 0;
}

.gastos-item-row label {
    min-width: 0;
}

.gastos-item-row input[readonly] {
    background: var(--surface-strong);
    cursor: default;
}

.gastos-item-row.is-invalid input[aria-invalid="true"] {
    border-color: var(--danger);
    box-shadow: 0 0 0 2px rgba(194, 61, 66, 0.16);
}

.entry-form .gastos-item-add,
.entry-form .gastos-item-remove {
    display: inline-grid;
    width: 32px;
    min-width: 32px;
    height: 32px;
    min-height: 32px;
    padding: 0;
    border-radius: 50%;
    place-items: center;
    font-size: 19px;
    font-weight: 800;
    line-height: 1;
    text-transform: none;
}

.entry-form .gastos-item-add {
    border: 1px solid var(--brand-alki);
    background: var(--brand-alki);
    color: #fff;
}

.entry-form .gastos-item-add:disabled {
    border-color: var(--line);
    background: var(--surface-strong);
    color: var(--muted);
    cursor: not-allowed;
    opacity: 0.75;
}

.entry-form .gastos-item-remove {
    border: 1px solid var(--danger);
    background: #fff;
    color: var(--danger);
}

.entry-form .gastos-item-add:focus-visible,
.entry-form .gastos-item-remove:focus-visible {
    outline: 3px solid rgba(0, 95, 107, 0.28);
    outline-offset: 2px;
}

.gastos-item-error {
    grid-column: 1 / -1;
    color: var(--danger);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.3;
    text-transform: none;
}

.gastos-entry-form > .gastos-form-actions {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: minmax(170px, 220px) minmax(180px, 260px);
    gap: 13px;
    align-items: end;
    justify-content: end;
    min-width: 0;
    padding-top: 2px;
}

.gastos-entry-form .gastos-form-actions .gastos-receipt-field,
.gastos-entry-form .gastos-form-actions .gastos-submit-button {
    grid-column: auto;
    width: 100%;
    min-width: 0;
}

.gastos-entry-form .gastos-form-actions .gastos-submit-button {
    justify-self: stretch;
    height: 42px;
    padding: 0 16px;
    font-size: 14px;
}

.gastos-entry-form .gastos-form-actions .payment-file-control,
.gastos-entry-form .gastos-form-actions .file-upload {
    width: 100%;
}

.file-upload.gastos-compact-upload {
    width: min(220px, 100%);
    min-width: 0;
    min-height: 34px;
}

.file-upload.gastos-compact-upload span {
    min-height: 34px;
    padding: 0 12px;
    font-size: 13px;
}

.file-upload:focus-within span {
    outline: 3px solid rgba(0, 95, 107, 0.28);
    outline-offset: 2px;
}

.gastos-provider-form {
    display: block;
}

.gastos-provider-grid {
    display: grid;
    gap: 13px;
    align-items: end;
    grid-template-columns: repeat(12, minmax(0, 1fr));
}

.gastos-provider-row {
    display: grid;
    gap: 13px;
    align-items: end;
    grid-template-columns:
        minmax(180px, 0.85fr)
        minmax(210px, 0.95fr)
        minmax(240px, 1.05fr)
        minmax(300px, 1.35fr);
}

.gastos-provider-row {
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.gastos-provider-form label {
    display: grid;
    gap: 6px;
    color: #000000;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;
    text-transform: uppercase;
}

.gastos-provider-form input,
.gastos-provider-form select {
    width: 100%;
    min-width: 0;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: #000000;
    height: 42px;
    padding: 0 12px;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.2;
    text-transform: none;
}

.gastos-provider-form input:focus,
.gastos-provider-form select:focus {
    border-color: var(--brand-alki);
    outline: 3px solid rgba(0, 95, 107, 0.14);
}

.gastos-provider-list {
    display: grid;
    gap: 10px;
}

.gastos-provider-row .gastos-list-actions {
    align-self: end;
    min-height: 42px;
}

.gastos-provider-reason-field,
.gastos-provider-country-field,
.gastos-provider-tax-field,
.gastos-provider-contact-field,
.gastos-provider-email-field,
.gastos-provider-address-field,
.gastos-provider-note-field {
    grid-column: span 2;
}

.gastos-provider-state-field,
.gastos-provider-city-field {
    grid-column: span 3;
}

.gastos-provider-actions {
    grid-column: span 4;
}

.gastos-provider-error {
    grid-column: 1 / -1;
    margin: 0;
}

.gastos-provider-actions .button {
    white-space: nowrap;
}

.gastos-provider-note-field {
    min-width: 0;
}

.gastos-provider-actions {
    justify-content: flex-end;
    margin-top: 0;
}

.gastos-provider-list-panel {
    width: min(1500px, calc(100vw - 32px));
}

.gastos-provider-count {
    margin: 4px 0 0;
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}

.gastos-provider-filter-bar {
    display: grid;
    grid-template-columns: minmax(260px, 1.4fr) repeat(3, minmax(170px, 0.8fr));
    gap: 10px;
    align-items: end;
    margin-bottom: 14px;
}

.gastos-provider-filter-bar label,
.gastos-provider-picker-field {
    display: grid;
    gap: 6px;
    min-width: 0;
    color: var(--ink);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    text-transform: uppercase;
}

.gastos-provider-filter-bar :is(input, select) {
    width: 100%;
    min-width: 0;
    height: 42px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    padding: 0 12px;
    font-size: 14px;
    font-weight: 600;
    text-transform: none;
}

.gastos-provider-table-wrap {
    max-height: min(58vh, 600px);
    overflow: auto;
}

.gastos-provider-table {
    min-width: 1390px;
}

.gastos-provider-table th {
    position: sticky;
    top: 0;
    z-index: 1;
}

.gastos-provider-table td {
    max-width: 220px;
    white-space: normal;
    overflow-wrap: anywhere;
}

.gastos-provider-table td:first-child {
    min-width: 180px;
}

.gastos-provider-table td:last-child {
    min-width: 150px;
}

.gastos-provider-table .gastos-list-actions {
    flex-wrap: nowrap;
}

.gastos-provider-picker-panel {
    width: min(780px, calc(100vw - 32px));
}

.gastos-provider-picker-filters {
    grid-template-columns: minmax(240px, 1.4fr) repeat(3, minmax(140px, 0.8fr));
}

.gastos-provider-picker-results {
    display: grid;
    gap: 8px;
    max-height: min(54vh, 520px);
    overflow: auto;
    padding: 2px;
}

.gastos-provider-picker-option {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) minmax(150px, 0.8fr) minmax(190px, 1fr);
    gap: 8px 14px;
    width: 100%;
    min-height: 58px;
    padding: 11px 13px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    text-align: left;
    text-transform: none;
    cursor: pointer;
}

.gastos-provider-picker-option:hover,
.gastos-provider-picker-option:focus-visible,
.gastos-provider-picker-option[aria-pressed="true"] {
    border-color: var(--brand-alki);
    outline: 2px solid rgba(0, 95, 107, 0.15);
    background: rgba(0, 95, 107, 0.06);
}

.gastos-provider-picker-option :is(strong, span, small) {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gastos-provider-picker-option.is-none {
    grid-template-columns: minmax(160px, 0.5fr) minmax(260px, 1fr);
}

.gastos-provider-picker-open {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
    min-width: 0;
    height: 42px;
    padding: 0 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    font: inherit;
    font-size: 14px;
    font-weight: 600;
    text-align: left;
    text-transform: none;
    cursor: pointer;
}

.gastos-provider-picker-open:hover,
.gastos-provider-picker-open:focus-visible {
    border-color: var(--brand-alki);
    outline: 3px solid rgba(0, 95, 107, 0.14);
}

.gastos-provider-picker-open [data-gastos-provider-picker-value] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.record-modal[data-gastos-provider-picker-modal] {
    z-index: 1004;
}

.gastos-provider-table tr[hidden],
.gastos-provider-picker-option[hidden] {
    display: none;
}

.gastos-provider-modal-copy strong {
    color: var(--ink);
    font-size: 14px;
}

.gastos-provider-modal-copy span {
    color: var(--muted);
    font-size: 13px;
    font-weight: 600;
}

.gastos-provider-edit-panel {
    width: min(780px, calc(100vw - 32px));
}

.gastos-provider-edit-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gastos-provider-edit-form .record-modal-actions {
    grid-column: 1 / -1;
}

@media (max-width: 1280px) {
    .gastos-provider-grid,
    .gastos-provider-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .gastos-provider-grid > label {
        grid-column: auto;
    }

    .gastos-provider-grid > .gastos-provider-note-field,
    .gastos-provider-grid > .gastos-provider-actions {
        grid-column: 1 / -1;
    }

    .gastos-provider-row .gastos-list-actions {
        justify-content: flex-start;
    }
}

.gastos-record-filter-form label {
    min-width: 150px;
    color: #000000;
}

.gastos-record-filter-form label:nth-of-type(3),
.gastos-record-filter-form label:nth-of-type(4) {
    min-width: 190px;
}

.gastos-record-filter-form select {
    color: #000000;
}

.gastos-record-filter-form .gastos-filter-submit {
    align-self: end;
    min-width: 92px;
}

.gastos-distribution-toolbar {
    display: flex;
    width: fit-content;
    max-width: 100%;
    align-items: flex-end;
    justify-content: flex-start;
    gap: 16px;
    margin: 0 0 14px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.gastos-distribution-filter-form {
    flex: 0 1 auto;
    grid-template-columns: repeat(2, minmax(230px, 1fr));
    flex-wrap: nowrap;
    margin: 0;
}

.gastos-distribution-filter-form select {
    width: 100%;
    height: 46px;
    min-width: 230px;
}

.gastos-distribution-series[hidden],
.gastos-distribution-series .bar-row[hidden],
.gastos-distribution-expenses[hidden],
.gastos-distribution-expense[hidden],
.gastos-distribution-empty[hidden] {
    display: none !important;
}

.gastos-distribution-expenses {
    display: grid;
    gap: 12px;
}

.gastos-distribution-expense {
    display: grid;
    grid-template-columns: minmax(150px, 0.35fr) minmax(260px, 1fr) minmax(230px, auto);
    align-items: center;
    gap: 14px;
    width: 100%;
    min-height: 58px;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
    color: var(--ink);
    font: inherit;
    text-align: left;
    cursor: pointer;
    appearance: none;
}

.gastos-distribution-expense:hover {
    border-color: var(--accent-teal);
}

.gastos-distribution-expense:focus-visible {
    border-color: var(--accent-teal);
    outline: 3px solid rgba(0, 122, 133, 0.24);
    outline-offset: 2px;
}

.gastos-distribution-expense-copy {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.gastos-distribution-expense-copy strong,
.gastos-distribution-expense-copy small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gastos-distribution-expense-copy strong {
    font-size: 15px;
    line-height: 1.3;
}

.gastos-distribution-expense-copy small {
    color: var(--muted);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
}

.gastos-distribution-expense > .bar-value {
    display: grid;
    gap: 2px;
    min-width: 0;
    color: var(--ink);
    font-size: 17px;
    line-height: 1.2;
    text-align: right;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.gastos-distribution-expense > .bar-value small {
    overflow: hidden;
    color: var(--muted);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 720px) {
    .gastos-distribution-toolbar,
    .gastos-distribution-filter-form {
        align-items: stretch;
        flex-direction: column;
    }

    .gastos-distribution-toolbar {
        width: 100%;
    }

    .gastos-distribution-filter-form {
        width: 100%;
        grid-template-columns: minmax(0, 1fr);
    }

    .gastos-distribution-filter-form select {
        width: 100%;
        min-width: 0;
    }
}

.gastos-edit-panel {
    width: min(1040px, 100%);
}

.record-modal-panel.gastos-detail-panel {
    width: min(1540px, 100%);
    max-height: calc(100vh - 16px);
}

.gastos-detail-layout {
    display: grid;
    grid-template-columns: minmax(360px, 0.82fr) minmax(520px, 1.18fr);
    gap: 18px;
    min-height: 0;
}

.gastos-detail-main {
    min-width: 0;
}

.gastos-detail-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.gastos-detail-grid article {
    min-width: 0;
    min-height: 76px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.gastos-detail-grid article[hidden] {
    display: none;
}

.gastos-detail-grid .gastos-detail-wide {
    grid-column: 1 / -1;
}

.gastos-detail-grid span {
    display: block;
    margin-bottom: 8px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.gastos-detail-grid strong {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
    color: var(--ink);
    font-size: 16px;
    line-height: 1.35;
}

.gastos-detail-items {
    color: var(--ink);
    font-size: 15px;
    line-height: 1.35;
}

.gastos-detail-items-list {
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.gastos-detail-items-list li {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 7px;
    border-bottom: 1px solid var(--line);
}

.gastos-detail-items-list li:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.gastos-detail-items-list span,
.gastos-detail-items-list strong {
    display: block;
    margin: 0;
    color: var(--ink);
    font-size: 15px;
    font-weight: 700;
    text-transform: none;
}

.gastos-detail-installments > p {
    margin: -1px 0 10px;
    color: var(--muted);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
}

.gastos-installment-schedule-table {
    min-width: 780px;
}

.gastos-installment-schedule-table tr.is-pagado td:nth-child(4) {
    color: var(--positive);
    font-weight: 800;
}

.gastos-installment-schedule-table tr.is-pendiente td:nth-child(4) {
    color: var(--accent);
    font-weight: 800;
}

.gastos-installment-schedule-table tr.is-a-vencer td:nth-child(4) {
    color: var(--accent-violet);
    font-weight: 800;
}

.gastos-installment-schedule-table tr.is-vencido td:nth-child(4) {
    color: var(--danger);
    font-weight: 800;
}

.gastos-installment-receipts {
    display: grid;
    gap: 4px;
}

.gastos-installment-receipts a {
    color: var(--link-blue);
    font-weight: 700;
    text-decoration: none;
}

.gastos-installment-receipts a:hover,
.gastos-installment-receipts a:focus-visible {
    text-decoration: underline;
}

.gastos-preview-panel {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    min-width: 0;
    min-height: 680px;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.gastos-preview-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-width: 0;
    padding: 14px 16px;
    border-bottom: 1px solid var(--line);
}

.gastos-preview-header > span {
    min-width: 0;
}

.gastos-preview-kicker {
    display: block;
    margin-bottom: 4px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.gastos-preview-header strong {
    display: block;
    overflow: hidden;
    color: var(--brand-sys);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gastos-pdf-preview {
    position: relative;
    display: grid;
    min-height: 620px;
    place-items: center;
    overflow: hidden;
    background: #f8fafb;
}

.gastos-preview-panel:not(.has-file) {
    min-height: 0;
    align-self: start;
}

.gastos-preview-panel:not(.has-file) .gastos-pdf-preview {
    min-height: 150px;
}

.gastos-pdf-preview iframe,
.gastos-image-preview {
    grid-area: 1 / 1;
    width: 100%;
    height: 100%;
    min-height: 620px;
    border: 0;
    background: #fff;
}

.gastos-image-preview {
    max-width: 100%;
    max-height: 620px;
    padding: 12px;
    object-fit: contain;
}

.gastos-preview-switcher {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 2;
    display: inline-flex;
    gap: 6px;
    padding: 5px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 3px 12px rgba(18, 35, 42, 0.16);
}

.gastos-preview-selector {
    display: inline-grid;
    width: 30px;
    min-width: 30px;
    height: 30px;
    min-height: 30px;
    padding: 0;
    border: 1px solid var(--line);
    border-radius: 50%;
    background: #fff;
    color: var(--ink);
    font-weight: 800;
    place-items: center;
    cursor: pointer;
}

.gastos-preview-selector[aria-pressed="true"] {
    border-color: var(--brand-alki);
    background: var(--brand-alki);
    color: #fff;
}

.gastos-detail-actions {
    flex-wrap: wrap;
    padding-top: 2px;
}

.gastos-detail-actions .inline-form .button {
    width: 100%;
}

.gastos-detail-receipt-existing {
    display: inline-flex;
    gap: 8px;
    align-items: center;
}

.gastos-detail-receipt-upload[hidden],
.gastos-detail-receipt-existing[hidden],
.gastos-detail-actions [hidden],
.gastos-preview-panel [hidden] {
    display: none !important;
}

.gastos-detail-upload-button {
    cursor: pointer;
}

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

.record-modal-actions .gastos-cancel-button {
    border: 1px solid #f0646a;
    background: #f0646a;
    color: #000;
}

.record-modal-actions .gastos-cancel-button:hover,
.record-modal-actions .gastos-cancel-button:focus-visible {
    border-color: #f0646a;
    background: #f0646a;
    color: #000;
    filter: brightness(1.04);
}

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

.gastos-edit-form .gastos-edit-items-field,
.gastos-edit-form .gastos-edit-description-field,
.gastos-edit-form .gastos-receipt-field,
.gastos-edit-form .record-modal-actions {
    grid-column: 1 / -1;
}

.gastos-edit-form .gastos-edit-description-field textarea {
    min-height: 90px;
}

.gastos-cell-descripcion {
    min-width: 240px;
    max-width: 380px;
    white-space: normal;
    overflow-wrap: anywhere;
}

.gastos-name-edit-button {
    display: inline;
    width: auto;
    min-width: 0;
    min-height: 0;
    height: auto;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: var(--link-blue);
    font: inherit;
    font-weight: 700;
    line-height: inherit;
    text-align: left;
    text-transform: none;
    cursor: pointer;
}

.gastos-name-edit-button:hover,
.gastos-name-edit-button:focus-visible {
    background: transparent;
    color: #1557a8;
    filter: none;
    text-decoration: underline;
}

html[data-theme="dark"] .app-shell .gastos-name-edit-button {
    color: var(--link-blue-dark);
}

html[data-theme="dark"] .app-shell .gastos-name-edit-button:hover,
html[data-theme="dark"] .app-shell .gastos-name-edit-button:focus-visible {
    color: #b8e2ff;
}

.gastos-edit-form .record-modal-actions {
    margin-top: 2px;
}

@media (max-width: 1180px) {
    .gastos-detail-layout {
        grid-template-columns: 1fr;
    }

    .gastos-preview-panel {
        min-height: 460px;
    }

    .gastos-pdf-preview,
    .gastos-pdf-preview iframe,
    .gastos-image-preview {
        min-height: 420px;
    }

    .gastos-image-preview {
        max-height: 420px;
    }
}

.entry-form .gastos-plus-button {
    display: inline-grid;
    width: 16px;
    height: 16px;
    min-width: 16px;
    min-height: 16px;
    padding: 0;
    place-items: center;
    border: 0;
    border-radius: 999px;
    background: var(--accent-blue);
    color: #fff;
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
    cursor: pointer;
}

.entry-form .gastos-link-button {
    min-width: 0;
    height: auto;
    min-height: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--accent-blue);
    cursor: pointer;
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    padding: 0;
    text-transform: none;
}

.entry-form .gastos-plus-button:hover {
    filter: none;
    background: #00525d;
}

.entry-form .gastos-link-button:hover {
    background: transparent;
    color: #00525d;
    filter: none;
    text-decoration: underline;
}

@media (max-width: 980px) {
    .gastos-entry-form {
        grid-template-columns: 1fr;
    }

    .gastos-entry-form .gastos-provider-field,
    .gastos-entry-form .gastos-name-field,
    .gastos-entry-form .gastos-category-field,
    .gastos-entry-form .gastos-subcategory-field,
    .gastos-entry-form .gastos-method-field,
    .gastos-entry-form .gastos-card-field,
    .gastos-entry-form .gastos-payment-date-field,
    .gastos-entry-form .gastos-amount-field,
    .gastos-entry-form .gastos-invoice-field,
    .gastos-entry-form .gastos-installments-field,
    .gastos-entry-form .gastos-installment-start-field,
    .gastos-entry-form .gastos-frequency-field,
    .gastos-entry-form .gastos-frequency-day-field,
    .gastos-entry-form .gastos-description-field,
    .gastos-entry-form > .gastos-form-actions,
    .gastos-entry-form.is-credit > .gastos-form-actions,
    .gastos-entry-form.has-frequency-day > .gastos-form-actions {
        grid-column: auto;
        grid-row: auto;
    }

    .gastos-entry-form > .gastos-form-actions,
    .gastos-entry-form.is-credit > .gastos-form-actions,
    .gastos-entry-form.has-frequency-day > .gastos-form-actions {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        justify-content: stretch;
        padding-top: 0;
    }

    .gastos-edit-form {
        grid-template-columns: 1fr;
    }

    .gastos-detail-grid {
        grid-template-columns: 1fr;
    }

    .gastos-detail-grid .gastos-detail-wide {
        grid-column: auto;
    }

    .gastos-preview-panel {
        min-height: 360px;
    }

    .gastos-pdf-preview,
    .gastos-pdf-preview iframe,
    .gastos-image-preview {
        min-height: 320px;
    }

    .gastos-image-preview {
        max-height: 320px;
    }

    .gastos-provider-grid,
    .gastos-provider-row {
        grid-template-columns: 1fr;
    }

    .gastos-provider-new-grid .gastos-provider-note-field {
        grid-column: 1 / -1;
    }

    .gastos-provider-actions {
        justify-content: stretch;
    }

    .gastos-provider-edit-form {
        grid-template-columns: 1fr;
    }

    .gastos-provider-filter-bar,
    .gastos-provider-picker-filters {
        grid-template-columns: 1fr 1fr;
    }

    .gastos-provider-search-field {
        grid-column: 1 / -1;
    }

    .gastos-provider-picker-option {
        grid-template-columns: 1fr;
    }

    .gastos-provider-picker-option.is-none {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    .gastos-provider-filter-bar,
    .gastos-provider-picker-filters {
        grid-template-columns: 1fr;
    }

    .gastos-provider-search-field {
        grid-column: auto;
    }

    .gastos-item-row {
        grid-template-columns: minmax(0, 1fr) 32px;
    }

    .gastos-item-name-field {
        grid-column: 1 / -1;
    }

    .gastos-item-amount-field {
        grid-column: 1;
    }

    .gastos-item-remove {
        grid-column: 2;
    }

    .gastos-items-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .gastos-items-balance {
        text-align: left;
    }

    .gastos-entry-form > .gastos-form-actions,
    .gastos-entry-form.is-credit > .gastos-form-actions,
    .gastos-entry-form.has-frequency-day > .gastos-form-actions {
        grid-template-columns: 1fr;
    }

    .gastos-detail-receipt-existing {
        display: grid;
        grid-template-columns: 1fr;
        width: 100%;
    }

    .gastos-detail-receipt-existing .inline-form,
    .gastos-detail-receipt-existing .button,
    .gastos-detail-receipt-upload,
    .gastos-detail-receipt-upload .gastos-compact-upload {
        width: 100%;
    }
}

.gastos-list-panel {
    width: min(900px, calc(100vw - 32px));
    max-height: min(84vh, 720px);
    gap: 20px;
    padding: 30px 28px 24px;
}

.gastos-list-form {
    display: grid;
    gap: 14px;
}

.gastos-add-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.gastos-add-header h3 {
    margin: 0;
    color: var(--ink);
    font-size: 15px;
    line-height: 1.25;
}

.gastos-new-rows {
    display: grid;
    gap: 8px;
}

.gastos-list-divider {
    height: 1px;
    margin: 2px 0;
    background: var(--line);
}

.gastos-list-row {
    display: grid;
    grid-template-columns: minmax(180px, 0.9fr) minmax(280px, 1.4fr) auto;
    gap: 12px;
    align-items: center;
    padding: 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.gastos-list-row.gastos-category-row {
    grid-template-columns: minmax(180px, 1fr) auto;
}

.gastos-list-row input,
.gastos-list-row select {
    width: 100%;
    min-width: 0;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
}

.gastos-list-row input[readonly],
.gastos-list-row select:disabled {
    background: var(--surface-soft);
    color: var(--ink);
    opacity: 1;
}

.gastos-list-row:not(.is-editing) [data-gastos-editable] {
    pointer-events: none;
}

.gastos-list-actions {
    display: inline-flex;
    justify-content: flex-end;
    gap: 8px;
    min-width: 0;
    white-space: nowrap;
}

.gastos-list-row label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #000000;
    font-size: 12px;
    font-weight: 700;
}

.gastos-list-row label input {
    width: 16px;
    height: 16px;
    min-width: 16px;
    accent-color: var(--danger);
}

.gastos-list-row button {
    min-height: 34px;
    border: 0;
    border-radius: 8px;
    background: var(--brand-alki);
    color: #fff;
    font-weight: 800;
    cursor: pointer;
}

.gastos-list-row .mini-button {
    min-height: 34px;
    padding: 0 12px;
    border-radius: 8px;
}

.gastos-add-header .mini-button {
    min-width: 86px;
    min-height: 34px;
    padding: 0 12px;
    font-size: 13px;
}

.gastos-list-actions .mini-button.edit,
.gastos-add-header .mini-button.edit {
    border-color: var(--accent-blue);
    background: var(--accent-blue);
    color: #fff;
}

.gastos-list-actions .mini-button.edit:hover,
.gastos-add-header .mini-button.edit:hover {
    border-color: #1d4ed8;
    background: #1d4ed8;
    color: #fff;
}

.gastos-list-row.is-new {
    background: var(--surface-soft);
}

@media (max-width: 720px) {
    .gastos-list-row,
    .gastos-list-row.gastos-category-row {
        grid-template-columns: 1fr;
    }
}

.entry-form input,
.entry-form select,
.entry-form textarea {
    width: 100%;
    min-width: 0;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: #000000;
    text-transform: none;
}

.percentage-field {
    position: relative;
    display: block;
    min-width: 0;
}

.entry-form .percentage-field input {
    padding-right: 34px;
}

.money-prefix-field {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    min-width: 0;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    overflow: hidden;
}

.money-prefix-field > span {
    padding-left: 12px;
    color: #000000;
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    pointer-events: none;
}

.entry-form .money-prefix-field input {
    height: 40px;
    border: 0;
    border-radius: 0;
    background: transparent;
    padding-left: 8px;
}

.money-prefix-field:focus-within {
    border-color: var(--brand-alki);
    outline: 3px solid rgba(0, 95, 107, 0.14);
}

.entry-form .money-prefix-field input:focus {
    border-color: transparent;
    outline: none;
}

.rental-guarantee-picker-field {
    position: relative;
    display: grid;
    min-width: 0;
    gap: 6px;
    color: #000000;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;
    text-transform: uppercase;
}

.rental-guarantee-picker-button {
    position: relative;
    display: flex;
    width: 100%;
    min-width: 0;
    min-height: 42px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 0 38px 0 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #ffffff;
    color: #000000;
    font: inherit;
    font-size: 14px;
    font-weight: 600;
    text-align: left;
    text-transform: none;
    cursor: pointer;
}

.rental-guarantee-picker-button > span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rental-guarantee-picker-button::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 14px;
    width: 8px;
    height: 8px;
    border-right: 2px solid var(--brand-alki);
    border-bottom: 2px solid var(--brand-alki);
    transform: translateY(-65%) rotate(45deg);
}

.rental-guarantee-picker-button[aria-expanded="true"]::after {
    transform: translateY(-30%) rotate(225deg);
}

.rental-guarantee-picker-button:hover,
.rental-guarantee-picker-button:focus-visible {
    border-color: var(--brand-alki);
    outline: 3px solid rgba(0, 95, 107, 0.14);
}

.rental-guarantee-picker-menu {
    position: absolute;
    z-index: 30;
    top: calc(100% + 6px);
    right: 0;
    left: 0;
    display: grid;
    gap: 6px;
    padding: 8px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 14px 34px rgba(15, 23, 42, 0.16);
}

.rental-guarantee-picker-menu[hidden] {
    display: none;
}

.rental-guarantee-option {
    display: flex;
    width: 100%;
    min-height: 38px;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 0 10px;
    border: 1px solid transparent;
    border-radius: 7px;
    background: #ffffff;
    color: #000000;
    font: inherit;
    font-size: 14px;
    font-weight: 600;
    text-align: left;
    text-transform: none;
    cursor: pointer;
}

.rental-guarantee-option::after {
    content: "";
    width: 8px;
    height: 8px;
    flex: 0 0 8px;
    border-radius: 999px;
    background: transparent;
}

.rental-guarantee-option:hover,
.rental-guarantee-option:focus-visible {
    border-color: rgba(0, 95, 107, 0.22);
    background: #f7fbfc;
    outline: none;
}

.rental-guarantee-option.is-selected,
.rental-guarantee-option[aria-pressed="true"] {
    border-color: var(--brand-alki);
    background: var(--brand-alki-soft);
    color: var(--brand-alki);
}

.rental-guarantee-option.is-selected::after,
.rental-guarantee-option[aria-pressed="true"]::after {
    background: var(--brand-alki);
}

.rental-guarantee-picker-button:disabled,
.rental-guarantee-option:disabled {
    cursor: not-allowed;
    opacity: 0.58;
}

.percentage-symbol {
    position: absolute;
    top: 0;
    right: 12px;
    bottom: 0;
    display: inline-flex;
    align-items: center;
    color: #000000;
    font-size: 14px;
    font-weight: 600;
    pointer-events: none;
}

.entry-form select.is-placeholder {
    color: var(--muted-soft);
}

.entry-form select.is-placeholder option {
    color: #000000;
}

.entry-form input,
.entry-form select {
    height: 42px;
    padding: 0 12px;
}

.entry-form .mini-switch input {
    width: 100%;
    min-width: 0;
    height: 100%;
    min-height: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.entry-form textarea {
    min-height: 120px;
    padding: 10px 12px;
    resize: vertical;
}

.rate-form-section {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 13px;
    align-items: end;
    min-width: 0;
    padding-top: 2px;
}

.rate-form-section + .rate-form-section {
    padding-top: 14px;
    border-top: 1px solid var(--line);
}

.rate-form-section h3 {
    grid-column: 1 / -1;
    margin: 0;
    color: var(--ink);
    font-size: 15px;
    line-height: 1.25;
}

.entry-form input:focus,
.entry-form select:focus,
.entry-form textarea:focus,
.search-input:focus,
.year-form select:focus,
.month-form select:focus {
    border-color: var(--brand-alki);
    outline: 3px solid rgba(0, 95, 107, 0.14);
}

.entry-form input.is-client-locked,
.entry-form .country-picker.is-client-locked .country-picker-button {
    border-color: #cfdde1;
    background: #f2f6f7;
    color: #000000;
    cursor: not-allowed;
}

.entry-form input.is-client-locked:focus {
    border-color: #cfdde1;
    outline: none;
}

[data-variable-increment-trigger],
[data-variable-increment] {
    cursor: pointer;
}

.table-gap {
    margin-top: 12px;
}

.read-only-lists textarea {
    background: var(--surface-soft);
}

.entry-form .cycle-days-field {
    grid-column: 1 / -1;
    align-self: stretch;
    display: block;
    min-width: 0;
    min-height: 42px;
    margin: 0;
    padding: 10px 12px 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    overflow-x: auto;
}

.cycle-days-field legend {
    padding: 0 4px;
    color: #000;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
}

.cycle-schedule-grid {
    display: grid;
    grid-template-columns: minmax(112px, 1.1fr) repeat(7, minmax(72px, 1fr));
    align-items: center;
    gap: 8px;
    min-width: 720px;
}

.cycle-schedule-corner {
    min-height: 36px;
}

.cycle-day-cell {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 36px;
    margin: 0;
    padding: 0 8px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
    font-size: 12px;
    font-weight: 700;
}

.cycle-row-title {
    color: #000;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
}

.cycle-day-cell input[type="checkbox"] {
    width: 18px;
    height: 18px;
    min-width: 18px;
    min-height: 18px;
    flex: 0 0 18px;
    margin: 0;
    padding: 0;
    accent-color: #0d6efd;
}

.cycle-schedule-grid > input[type="time"] {
    width: 100%;
    min-height: 36px;
    padding: 0 8px;
}

.phone-field {
    display: grid;
    grid-template-columns: 120px minmax(140px, 1fr);
    gap: 8px;
    max-width: 480px;
}

.country-select-wrap {
    position: relative;
    display: block;
    min-width: 0;
}

.country-select-wrap select {
    width: 100%;
    padding-left: 44px;
}

.country-flag {
    position: absolute;
    top: 50%;
    left: 12px;
    z-index: 2;
    width: 24px;
    height: 16px;
    border: 1px solid rgba(0, 0, 0, 0.12);
    border-radius: 3px;
    background: #fff;
    object-fit: cover;
    transform: translateY(-50%);
    pointer-events: none;
}

.country-picker {
    position: relative;
    z-index: 8;
    text-transform: none;
}

.country-picker.is-open {
    z-index: 1000;
}

.country-picker-button {
    display: grid;
    grid-template-columns: 26px auto;
    justify-content: center;
    align-items: center;
    gap: 8px;
    width: 100%;
    height: 42px;
    padding: 0 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    font-weight: 600;
    cursor: pointer;
}

.country-selected-flag,
.country-picker-option img {
    width: 24px;
    height: 16px;
    border: 1px solid rgba(0, 0, 0, 0.12);
    border-radius: 3px;
    background: #fff;
    object-fit: cover;
}

.country-picker-menu {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    z-index: 1001;
    display: none;
    width: min(320px, calc(100vw - 48px));
    max-height: 290px;
    overflow: auto;
    padding: 6px;
    border: 1px solid var(--line-strong);
    border-radius: 8px;
    background: #fff;
    box-shadow: var(--shadow-lift);
}

.country-picker.is-open .country-picker-menu {
    display: grid;
    gap: 2px;
}

.country-picker-option {
    display: grid;
    grid-template-columns: 26px minmax(0, 1fr);
    align-items: center;
    gap: 8px;
    width: 100%;
    min-height: 34px;
    padding: 6px 8px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--ink);
    text-align: left;
    cursor: pointer;
}

.country-picker-option:hover,
.country-picker-option.is-selected {
    background: var(--surface-strong);
}

.country-picker-option span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nationality-picker .country-picker-button {
    grid-template-columns: 26px minmax(0, 1fr);
    justify-content: start;
    height: 42px;
}

.nationality-picker [data-country-selected-name] {
    overflow: hidden;
    text-align: left;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.entry-form button,
.variables-shell > button[type="submit"] {
    min-width: 160px;
    height: 42px;
    padding: 0 16px;
    border: 0;
    border-radius: 8px;
    background: var(--brand-alki);
    color: #fff;
    font-weight: 600;
    cursor: pointer;
}

.entry-form .cyclic-help-button {
    width: 17px;
    min-width: 17px;
    height: 17px;
    min-height: 17px;
    padding: 0;
    border-radius: 50%;
    font-size: 11px;
    line-height: 1;
    flex: 0 0 17px;
}

.variables-shell > .variables-save-button {
    justify-self: end;
    min-width: 220px;
    height: 44px;
    padding: 0 22px;
    border-radius: 8px;
    box-shadow: 0 10px 22px rgba(0, 95, 107, 0.16);
}

.entry-form button:hover,
.variables-shell > button[type="submit"]:hover {
    filter: brightness(1.05);
}

.entry-form .rental-broker-open,
.entry-form .rental-guarantee-picker-button {
    min-width: 0;
    height: 42px;
    border: 1px solid var(--line);
    background: #ffffff;
    color: var(--ink);
    box-shadow: none;
    filter: none;
}

.entry-form .rental-broker-open {
    padding: 0 34px 0 12px;
}

.entry-form .rental-guarantee-picker-button {
    min-height: 42px;
    padding: 0 38px 0 12px;
}

.entry-form .rental-broker-open::after,
.entry-form .rental-guarantee-picker-button::after {
    border-right-color: var(--muted);
    border-bottom-color: var(--muted);
}

.entry-form .rental-broker-open:hover,
.entry-form .rental-broker-open:focus-visible,
.entry-form .rental-guarantee-picker-button:hover,
.entry-form .rental-guarantee-picker-button:focus-visible {
    border-color: var(--brand-alki);
    background: #ffffff;
    color: var(--ink);
    filter: none;
    outline: 3px solid rgba(0, 95, 107, 0.14);
}

.entry-form .rental-broker-option,
.entry-form .rental-guarantee-option {
    min-width: 0;
    height: auto;
    min-height: 38px;
    padding: 0 10px;
    border: 1px solid transparent;
    background: #ffffff;
    color: var(--ink);
    box-shadow: none;
    filter: none;
}

.entry-form .rental-broker-option {
    padding-right: 38px;
}

.entry-form .rental-broker-option:hover,
.entry-form .rental-broker-option:focus-visible,
.entry-form .rental-guarantee-option:hover,
.entry-form .rental-guarantee-option:focus-visible {
    border-color: rgba(0, 95, 107, 0.22);
    background: #f7fbfc;
    color: var(--ink);
    filter: none;
}

.entry-form .rental-broker-option.is-selected,
.entry-form .rental-broker-option[aria-pressed="true"],
.entry-form .rental-guarantee-option.is-selected,
.entry-form .rental-guarantee-option[aria-pressed="true"] {
    border-color: var(--line);
    background: #ffffff;
    color: var(--brand-alki);
}

.entry-form .text-action-link {
    min-width: 0;
    height: auto;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #1d6fd8;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    text-align: left;
    text-decoration: none;
    white-space: nowrap;
}

.entry-form .text-action-link:hover {
    filter: none;
    color: #005f6b;
    text-decoration: underline;
}

.entry-form .text-action-link[hidden] {
    display: none;
}

.entry-form .country-picker-button {
    min-width: 0;
    height: 42px;
    padding: 0 10px;
    border: 1px solid var(--line);
    background: #fff;
    color: var(--ink);
}

.entry-form .country-picker-option {
    min-width: 0;
    height: auto;
    padding: 6px 8px;
    border: 0;
    background: transparent;
    color: var(--ink);
}

.entry-form .country-picker-option:hover,
.entry-form .country-picker-option.is-selected {
    background: var(--surface-strong);
    filter: none;
}

.file-upload {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 42px;
}

.file-upload input {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
}

.file-upload span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 42px;
    padding: 0 14px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--surface);
    color: var(--brand-alki);
    font-weight: 600;
}

.file-upload.file-upload-accent span {
    border-color: var(--brand-alki);
    background: var(--brand-alki);
    color: #fff;
}

.file-upload.file-upload-accent:hover span {
    filter: brightness(0.96);
}

.rental-document-group {
    display: grid;
    grid-column: 1 / -1;
    gap: 8px;
    align-self: end;
    min-width: 0;
}

.rental-document-dropdown {
    display: block;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.rental-document-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 50px;
    padding: 0 14px;
    border-bottom: 1px solid transparent;
    background: #f6fafb;
    color: var(--ink);
    font-size: 18px;
    font-weight: 800;
    cursor: pointer;
    list-style: none;
    transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease, box-shadow 0.18s ease;
}

.rental-document-dropdown[open] > .rental-document-summary {
    border-bottom-color: rgba(0, 95, 107, 0.2);
    background: #e8f5f7;
    color: var(--brand-alki);
    box-shadow: inset 3px 0 0 var(--brand-alki);
}

.rental-document-summary::-webkit-details-marker {
    display: none;
}

.rental-document-content {
    display: grid;
    gap: 10px;
    padding: 0 14px 14px;
}

.rental-document-toolbar {
    display: grid;
    grid-template-columns: minmax(150px, 1fr) max-content max-content;
    gap: 8px;
    align-items: center;
}

.rental-document-toolbar select {
    min-width: 0;
}

.rental-document-toolbar select.is-complete {
    border-color: rgba(8, 127, 111, 0.48);
    background: #eefaf6;
    color: #087f6f;
}

.rental-document-toolbar select.is-incomplete {
    border-color: rgba(194, 61, 66, 0.58);
    background: #fff4f4;
    color: #b4232a;
}

.rental-document-toolbar select option.is-complete {
    background: #eefaf6;
    color: #087f6f;
}

.rental-document-toolbar select option.is-incomplete {
    background: #fff4f4;
    color: #b4232a;
}

.rental-document-requirements {
    padding: 8px 10px;
    border: 1px solid #d7e4e7;
    border-radius: 8px;
    background: #f5fafb;
    color: #435963;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.35;
}

.entry-form .rental-document-toolbar .mini-button,
.entry-form .rental-document-inner-actions .mini-button {
    min-width: 0;
    width: auto;
    min-height: 42px;
    height: 42px;
    padding: 0 12px;
    border: 1px solid var(--border);
    background: var(--surface);
    color: var(--text);
    font-weight: 700;
    white-space: nowrap;
}

.entry-form .rental-document-toolbar .mini-button.danger {
    border-color: var(--danger);
    background: var(--danger);
    color: #fff;
}

.entry-form .rental-document-toolbar .mini-button:disabled {
    cursor: not-allowed;
    opacity: 0.48;
}

.rental-document-item {
    display: grid;
    gap: 8px;
}

.rental-document-card {
    padding: 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    transition: border-color 0.16s ease, background-color 0.16s ease, box-shadow 0.16s ease;
}

.rental-document-card.is-complete {
    border-color: rgba(8, 127, 111, 0.42);
    background: #eefaf6;
    box-shadow: inset 4px 0 0 var(--positive);
}

.rental-document-card.is-incomplete {
    border-color: rgba(194, 61, 66, 0.38);
    background: #fff4f4;
    box-shadow: inset 4px 0 0 var(--danger);
}

.rental-document-card [data-rental-document-required].is-missing {
    border-color: rgba(194, 61, 66, 0.58);
    background: #fffafa;
}

.rental-document-upload.is-missing span {
    border-color: rgba(194, 61, 66, 0.68);
    background: #c23d42;
}

.rental-document-fields {
    display: grid;
    gap: 8px;
}

.rental-document-fields-comprobantes {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.rental-document-fields-garante {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.rental-guarantee-section {
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
}

.rental-guarantee-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 42px;
    padding: 0 12px;
    color: var(--ink);
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
    list-style: none;
}

.rental-guarantee-summary::-webkit-details-marker {
    display: none;
}

.rental-guarantee-body {
    display: grid;
    gap: 8px;
    padding: 0 12px 12px;
}

.rental-document-files {
    display: grid;
    gap: 8px;
}

.rental-document-file-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
}

.rental-document-inner-actions {
    display: flex;
    justify-content: flex-start;
}

.rental-document-group .file-upload {
    min-width: 0;
}

.rental-document-upload {
    justify-self: start;
    width: min(280px, 100%);
}

@media (max-width: 720px) {
    .rental-document-toolbar,
    .rental-document-fields-comprobantes,
    .rental-document-fields-garante {
        grid-template-columns: 1fr;
    }

    .rental-document-upload {
        width: 100%;
    }
}

.payment-receipt-field {
    align-self: end;
}

.payment-file-control {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 6px 8px;
    align-items: center;
    min-width: 0;
}

.payment-file-control .file-upload {
    grid-column: 1 / -1;
    min-width: 0;
}

.payment-file-selected {
    grid-column: 1;
    min-width: 0;
    overflow: hidden;
    color: #000000;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.25;
    text-overflow: ellipsis;
    text-transform: none;
    white-space: nowrap;
}

.entry-form .payment-file-clear,
.payment-file-clear {
    grid-column: 2;
    width: auto;
    min-width: 0;
    height: 30px;
    min-height: 30px;
    padding: 0 10px;
    border: 1px solid rgba(194, 61, 66, 0.35);
    border-radius: 8px;
    background: #fff;
    color: var(--danger);
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    text-transform: none;
    cursor: pointer;
}

.entry-form .payment-file-clear:hover,
.payment-file-clear:hover {
    background: rgba(194, 61, 66, 0.08);
    filter: none;
}

.logo-upload-field {
    align-self: stretch;
}

.logo-upload-heading {
    min-width: 0;
}

.logo-upload-control {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 6px 10px;
    align-items: center;
}

.logo-upload-preview {
    width: 42px;
    height: 42px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fff;
    object-fit: contain;
    box-shadow: 0 4px 12px rgba(0, 38, 43, 0.12);
}

.logo-file-upload {
    min-width: 0;
    min-height: 42px;
}

.logo-file-upload > [data-file-label] {
    min-height: 42px;
    gap: 9px;
    border-radius: 10px;
    box-shadow: 0 8px 18px rgba(0, 95, 107, 0.2);
    transition: transform 150ms ease, box-shadow 150ms ease, filter 150ms ease;
}

.logo-file-upload > [data-file-label]::before {
    content: "↑";
    display: inline-grid;
    width: 24px;
    height: 24px;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.45);
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.14);
    color: #fff;
    font-size: 16px;
    font-weight: 900;
    line-height: 1;
}

.logo-file-upload:hover > [data-file-label] {
    transform: translateY(-1px);
    box-shadow: 0 10px 22px rgba(0, 95, 107, 0.28);
}

.logo-file-upload:active > [data-file-label] {
    transform: translateY(0);
}

.logo-upload-control .logo-file-upload:first-child {
    grid-column: 1 / -1;
}

.logo-upload-status {
    min-width: 0;
    max-width: 72%;
    overflow: hidden;
    color: var(--muted);
    font-size: 12px;
    font-weight: 650;
    line-height: 1.2;
    text-align: right;
    text-overflow: ellipsis;
    text-transform: none;
    white-space: nowrap;
}

.logo-upload-status.is-selected {
    color: var(--brand-alki);
    font-weight: 750;
}

.public-image-upload-field {
    min-width: 0;
}

.public-image-upload-control {
    grid-template-columns: minmax(120px, 220px) minmax(0, 1fr);
}

.public-image-upload-preview {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 10;
    object-fit: cover;
}

.availability-field input[readonly] {
    cursor: pointer;
}

[data-availability-modal] {
    padding: 12px;
}

[data-availability-modal] .variable-dialog-panel {
    width: min(1040px, calc(100vw - 24px));
    max-height: calc(100dvh - 24px);
    padding: 34px 30px 26px;
}

.availability-dialog-form {
    display: grid;
    gap: 12px;
}

.availability-row {
    display: grid;
    grid-template-columns: minmax(170px, 0.9fr) minmax(150px, 170px) repeat(2, minmax(150px, 1fr));
    gap: 12px;
    align-items: end;
}

.availability-row label {
    display: grid;
    gap: 6px;
    color: #000;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
}

.availability-day,
.availability-all-day {
    min-height: 52px;
    grid-template-columns: auto 1fr;
    align-items: center;
    text-transform: none;
}

.availability-day input[type="checkbox"],
.availability-all-day input[type="checkbox"] {
    width: 20px;
    height: 20px;
    min-width: 20px;
    margin: 0;
    padding: 0;
    accent-color: var(--brand-alki);
}

.availability-row input[type="time"] {
    width: 100%;
    min-width: 0;
    height: 52px;
    padding: 0 16px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    font: inherit;
    font-weight: 600;
}

.availability-row.is-all-day input[type="time"] {
    background: var(--surface-soft);
    color: var(--muted);
}

.panel-actions,
.row-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.row-actions {
    min-width: 210px;
}

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

.mini-button,
.inline-form .mini-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 0 10px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--surface);
    color: var(--text);
    font: inherit;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
}

.mini-button:hover {
    border-color: rgba(0, 95, 107, 0.32);
    color: var(--brand-alki);
}

.mini-button.edit {
    border-color: var(--brand-alki);
    background: var(--brand-alki);
    color: #fff;
}

.mini-button.edit:hover {
    border-color: var(--brand-alki);
    background: var(--brand-alki);
    color: #fff;
    filter: brightness(1.04);
}

.parking-edit-button,
.parking-edit-button:hover {
    border-color: var(--accent-blue);
    background: var(--accent-blue);
    color: #fff;
}

.mini-button.danger {
    border-color: var(--danger);
    background: var(--danger);
    color: #fff;
}

.mini-button.danger:hover {
    border-color: #9f2f34;
    background: #9f2f34;
    color: #fff;
}

.detail-panel {
    display: grid;
    gap: 18px;
}

.mini-kpi-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(120px, 1fr));
    gap: 10px;
}

.mini-kpi {
    display: grid;
    gap: 6px;
    min-height: 78px;
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--surface);
}

.mini-kpi span {
    color: var(--muted);
    font-size: 0.78rem;
    font-weight: 600;
    text-transform: uppercase;
}

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

.mini-kpi.tone-positive strong {
    color: #047c72;
}

.mini-kpi.tone-danger strong {
    color: #c83d4b;
}

.mini-kpi.tone-partial strong {
    color: #7b3fc6;
}

.span-2 {
    grid-column: span 2;
}

.bars {
    display: grid;
    gap: 12px;
}

.bar-row {
    display: grid;
    grid-template-columns: minmax(72px, 0.36fr) minmax(140px, 1fr) minmax(150px, auto);
    align-items: center;
    gap: 14px;
    min-height: 42px;
    padding: 8px 10px;
    border: 1px solid rgba(216, 227, 229, 0.75);
    border-radius: 8px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbfb 100%);
}

.bar-row span {
    min-width: 0;
    overflow: hidden;
    color: var(--muted);
    font-size: 13px;
    font-weight: 600;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.bar-row strong {
    display: grid;
    gap: 2px;
    min-width: 0;
    text-align: right;
    color: var(--ink);
    font-size: 14px;
    line-height: 1.15;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.bar-row strong small {
    overflow: hidden;
    color: var(--muted);
    font-size: 11px;
    font-weight: 600;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.bar-track {
    height: 14px;
    overflow: hidden;
    border: 1px solid rgba(0, 95, 107, 0.08);
    border-radius: 999px;
    background: #edf4f5;
}

.bar-track i {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--brand-alki), var(--accent-teal));
    box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.08);
}

.bar-row.is-negative .bar-track i {
    background: linear-gradient(90deg, #c23d42, #e86d73);
}

.gastos-distribution-panel .bar-row {
    grid-template-columns: minmax(88px, 0.28fr) minmax(260px, 1fr) minmax(230px, auto);
    min-height: 58px;
    padding: 10px 12px;
}

.gastos-distribution-panel .bar-label {
    font-size: 15px;
    line-height: 1.3;
}

.gastos-distribution-panel .bar-value {
    font-size: 17px;
    line-height: 1.2;
}

.gastos-distribution-panel .bar-value small {
    font-size: 13px;
    line-height: 1.3;
}

.gastos-distribution-panel .gastos-distribution-track {
    position: relative;
    isolation: isolate;
    height: 28px;
}

.gastos-distribution-panel .gastos-distribution-track > i {
    position: absolute;
    z-index: 0;
    inset: 0 auto 0 0;
}

.gastos-distribution-panel .bar-row .gastos-distribution-percentage {
    position: absolute;
    z-index: 1;
    inset: 0;
    display: grid;
    place-items: center;
    color: #000000;
    font-size: 14px;
    font-weight: 800;
    line-height: 1;
    text-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);
    pointer-events: none;
    font-variant-numeric: tabular-nums;
}

.gastos-distribution-panel .gastos-distribution-expense .gastos-distribution-percentage {
    position: absolute;
    z-index: 1;
    inset: 0;
    display: grid;
    place-items: center;
    color: #000000;
    font-size: 14px;
    font-weight: 800;
    line-height: 1;
    text-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);
    pointer-events: none;
    font-variant-numeric: tabular-nums;
}

@media (max-width: 1380px) {
    .variable-row-grid-vehicles {
        overflow-x: visible;
    }

    .vehicle-category-table-head {
        display: none;
    }

    .variable-row-grid-vehicles .variable-row {
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: 10px;
        min-width: 0;
        padding: 12px;
    }

    .vehicle-category-cell-label {
        display: block;
    }

    .vehicle-category-main-cell {
        grid-column: span 2;
    }

    .vehicle-category-models-cell {
        grid-column: span 3;
    }

    .vehicle-category-rate-cell {
        padding: 10px 0 0;
        border-top: 1px solid var(--line);
        border-left: 0;
    }

    .vehicle-category-capacity-cell {
        grid-column: 1 / span 2;
        justify-items: start;
        padding-top: 10px;
        border-top: 1px solid var(--line);
        text-align: left;
    }

    .variable-row-grid-vehicles .variable-row .variable-row-actions {
        grid-column: 4 / -1;
        justify-self: end;
    }
}

@media (max-width: 820px) {
    .gastos-distribution-panel .bar-row,
    .gastos-distribution-expense {
        grid-template-columns: minmax(72px, auto) minmax(0, 1fr);
        gap: 8px 10px;
        min-height: 76px;
    }

    .gastos-distribution-panel .bar-value,
    .gastos-distribution-expense > .bar-value {
        grid-column: 2;
        text-align: right;
    }
}

@media (max-width: 520px) {
    .gastos-distribution-panel .bar-row,
    .gastos-distribution-expense {
        grid-template-columns: 1fr;
    }

    .gastos-distribution-panel :is(.bar-label, .bar-track, .bar-value, .gastos-distribution-expense-copy) {
        grid-column: 1;
    }

    .gastos-distribution-panel .bar-value,
    .gastos-distribution-expense > .bar-value {
        text-align: left;
        white-space: normal;
    }

    .gastos-distribution-panel .bar-value small,
    .gastos-distribution-expense-copy strong,
    .gastos-distribution-expense-copy small {
        white-space: normal;
    }
}

.insight-list {
    display: grid;
    gap: 8px;
}

.insight-item {
    display: grid;
    grid-template-columns: 12px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    min-height: 50px;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
}

.insight-item strong,
.insight-item small {
    display: block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.insight-item small {
    margin-top: 3px;
    color: var(--muted);
}

.availability-panel {
    margin-top: 18px;
}

.topbar > div > .eyebrow,
.availability-panel .panel-header .eyebrow {
    display: none;
}

.availability-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.availability-chips .empty-state {
    width: 100%;
    padding: 18px 0;
    text-align: left;
}

.availability-chips span {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: 0 11px;
    border: 1px solid rgba(8, 127, 111, 0.2);
    border-radius: 999px;
    background: #f2fbf8;
    color: var(--positive);
    font-weight: 600;
}

.availability-filter {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 10px;
    margin-bottom: 12px;
}

.availability-view-toggle {
    display: inline-flex;
    gap: 3px;
    min-height: 40px;
    padding: 3px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.availability-view-toggle button {
    min-height: 32px;
    padding: 0 14px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
}

.availability-view-toggle button.is-active {
    background: var(--accent-teal);
    color: #fff;
}

.availability-hour-controls {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 10px;
    margin-left: auto;
}

.availability-hour-controls [hidden] {
    display: none;
}

.availability-filter label {
    display: inline-flex;
    flex-direction: column;
    gap: 6px;
    min-width: 170px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
}

.availability-filter select,
.availability-filter input {
    min-height: 36px;
    font-size: 13px;
    font-weight: 600;
    text-transform: none;
}

.availability-cell {
    display: inline-block;
    width: 18px;
    height: 18px;
    border-radius: 5px;
}

.availability-space-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 54px;
    min-height: 34px;
    padding: 6px 10px;
    border: 1px solid transparent;
    border-radius: 8px;
    background: transparent;
    color: var(--link-blue);
    font: inherit;
    font-weight: 900;
    cursor: pointer;
}

.availability-space-button:hover,
.availability-space-button:focus-visible {
    border-color: rgba(0, 126, 143, 0.38);
    background: rgba(0, 126, 143, 0.1);
    color: #006b76;
    outline: none;
}

.availability-wrap {
    max-height: 620px;
}

.availability-table {
    min-width: 1180px;
    table-layout: fixed;
}

.availability-table th:first-child,
.availability-table td:first-child {
    position: sticky;
    left: 0;
    z-index: 2;
    width: 96px;
    background: #fff;
}

.availability-table th:nth-child(2),
.availability-table td:nth-child(2) {
    position: sticky;
    left: 96px;
    z-index: 2;
    width: 102px;
    background: #fff;
}

.availability-table th {
    text-align: center;
}

.availability-table th[data-availability-axis] {
    transition: background 0.12s ease, color 0.12s ease, box-shadow 0.12s ease;
}

.availability-table th[data-availability-day-jump] {
    cursor: pointer;
}

.availability-table th[data-availability-day-jump]:hover,
.availability-table th[data-availability-day-jump]:focus-visible {
    background: #e7f5f6;
    box-shadow: inset 0 0 0 2px rgba(0, 126, 143, 0.22);
    color: #006b76;
    outline: none;
}

.availability-table th:first-child,
.availability-table th:nth-child(2) {
    z-index: 3;
    background: var(--surface-soft);
}

.availability-table td {
    padding: 8px;
    text-align: center;
}

.availability-action-cell,
.availability-table td[data-availability-slot] {
    cursor: pointer;
    user-select: none;
    touch-action: none;
}

.availability-occupied-cell,
.availability-table td[data-availability-occupancy] {
    cursor: pointer;
}

.availability-block-cell {
    position: relative;
    background: #fff3f5;
    box-shadow:
        inset 0 2px 0 rgba(180, 35, 50, 0.42),
        inset 0 -2px 0 rgba(180, 35, 50, 0.42);
}

.availability-block-cell.is-partial {
    background: #f5edff;
    box-shadow:
        inset 0 2px 0 rgba(109, 40, 168, 0.4),
        inset 0 -2px 0 rgba(109, 40, 168, 0.4);
}

.availability-block-cell.is-block-start {
    border-left: 2px solid #b42332;
    border-top-left-radius: 8px;
    border-bottom-left-radius: 8px;
}

.availability-block-cell.is-block-end {
    border-right: 2px solid #b42332;
    border-top-right-radius: 8px;
    border-bottom-right-radius: 8px;
}

.availability-block-cell.is-partial.is-block-start {
    border-left-color: #6d28a8;
}

.availability-block-cell.is-partial.is-block-end {
    border-right-color: #6d28a8;
}

.availability-block-cell:hover {
    background: #ffe5ea;
}

.availability-block-cell.is-partial:hover {
    background: #eee1ff;
}

.availability-block-cell.is-entry-day::before,
.availability-block-cell.is-exit-day::after {
    position: absolute;
    top: 2px;
    display: inline-grid;
    place-items: center;
    width: 13px;
    height: 13px;
    border-radius: 999px;
    color: #fff;
    font-size: 8px;
    font-weight: 900;
    line-height: 1;
    pointer-events: none;
}

.availability-block-cell.is-entry-day::before {
    left: 2px;
    content: "I";
    background: #005f6b;
}

.availability-block-cell.is-exit-day::after {
    right: 2px;
    content: "E";
    background: #8a1f2c;
}

.availability-table tbody tr:hover td:first-child,
.availability-table tbody tr:hover td:nth-child(2) {
    background: #fbf8fb;
}

.availability-cell {
    line-height: 18px;
    color: transparent;
}

.availability-slot-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    padding: 0;
    text-align: center;
    font-size: 15px;
    font-weight: 800;
    color: #146c35;
    cursor: pointer;
    user-select: none;
    touch-action: none;
}

.availability-action-cell:hover,
.availability-table td[data-availability-slot]:hover {
    background: #f3fbf7;
}

.availability-action-cell:hover .availability-slot-button,
.availability-table td[data-availability-slot]:hover .availability-slot-button,
.availability-slot-button:hover {
    box-shadow: 0 0 0 2px rgba(8, 127, 111, 0.18);
}

.availability-slot-button:active,
.availability-slot-button:focus-visible {
    outline: 2px solid #005f6b;
    outline-offset: 2px;
    background: #007e8f;
    color: #fff;
}

.availability-cell.is-free,
.availability-status.is-free {
    background: #e8f7ee;
    color: #146c35;
}

.availability-cell.is-occupied,
.availability-status.is-occupied {
    background: #f9d7dc;
    color: #8a1f2c;
}

.availability-cell.is-partial,
.availability-status.is-partial {
    background: #eadcfb;
    color: #6d28a8;
}

.availability-status.is-positive {
    background: #e8f7ee;
    color: #146c35;
}

.availability-table :is(th:first-child, td:first-child) {
    box-shadow: 1px 0 0 rgba(216, 227, 229, 0.95);
}

.availability-table :is(th:nth-child(2), td:nth-child(2)) {
    box-shadow: 1px 0 0 rgba(216, 227, 229, 0.95);
}

.availability-hour-wrap {
    max-height: min(66vh, 620px);
}

.availability-hour-table {
    min-width: 1660px;
    font-variant-numeric: tabular-nums;
}

.availability-hour-table th[data-availability-axis="horas"] {
    padding: 7px 6px;
}

.availability-hour-heading {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 48px;
    min-height: 28px;
    padding: 0 8px;
    border: 1px solid rgba(0, 95, 107, 0.15);
    border-radius: 999px;
    background: #edf8f9;
    color: var(--brand-alki);
    font-size: 11px;
    font-weight: 900;
    line-height: 1;
    text-transform: none;
}

.availability-hour-table td {
    height: 52px;
    padding: 6px;
}

.availability-hour-cell {
    min-width: 58px;
}

.availability-hour-table .availability-cell {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    width: 100%;
    min-width: 48px;
    height: 34px;
    border-radius: 8px;
    line-height: 1.15;
}

.availability-hour-slot-button {
    border: 1px dashed rgba(8, 127, 111, 0.34);
    background: #f2fbf8;
    color: #146c35;
}

.availability-hour-block {
    border: 1px solid rgba(138, 31, 44, 0.22);
    box-shadow: inset 0 -2px 0 rgba(138, 31, 44, 0.1);
}

.availability-hour-block.is-partial {
    border-color: rgba(109, 40, 168, 0.26);
    box-shadow: inset 0 -2px 0 rgba(109, 40, 168, 0.1);
}

.availability-hour-cell-time {
    font-size: 11px;
    font-weight: 900;
    line-height: 1;
    white-space: nowrap;
}

.availability-hour-cell-action {
    display: inline-grid;
    place-items: center;
    width: 15px;
    height: 15px;
    border-radius: 999px;
    background: rgba(8, 127, 111, 0.14);
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
}

.availability-hour-cell-mark {
    display: inline-block;
    width: 8px;
    height: 8px;
    overflow: hidden;
    border-radius: 999px;
    background: currentColor;
    color: transparent;
}

.availability-hour-block.is-partial .availability-hour-cell-mark {
    border: 2px solid currentColor;
    background: transparent;
}

.availability-hour-table td[data-availability-slot] {
    background: #fbfffd;
}

.availability-hour-table td[data-availability-occupancy] {
    background: #fff8fa;
}

.availability-hour-table td[data-availability-status="Parcial"] {
    background: #fbf7ff;
}

.availability-hour-table td[data-availability-slot]:hover .availability-hour-slot-button,
.availability-hour-slot-button:hover {
    border-color: rgba(8, 127, 111, 0.58);
    background: #e5f8ef;
}

.employee-calendar-panel .panel-header {
    align-items: center;
    margin-bottom: 16px;
    padding: 4px 2px 0;
}

.employee-month-calendar,
.employee-hour-list {
    display: grid;
    gap: 14px;
}

.employee-calendar-filter {
    align-items: end;
    gap: 14px;
    margin-bottom: 16px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbfb 100%);
    box-shadow: 0 8px 20px rgba(43, 47, 51, 0.04);
}

.employee-calendar-filter .availability-hour-controls {
    align-items: end;
}

.employee-month-weekdays,
.employee-month-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 10px;
}

.employee-month-weekdays span {
    min-height: 30px;
    display: grid;
    place-items: center;
    border: 1px solid transparent;
    border-radius: 8px;
    background: #eef6f7;
    color: #4d5d62;
    font-size: 12px;
    font-weight: 800;
    text-align: center;
    text-transform: uppercase;
}

.employee-month-day {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 158px;
    gap: 8px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: linear-gradient(180deg, #ffffff 0%, #fbfdfd 100%);
    color: var(--ink);
    text-align: left;
    cursor: pointer;
    box-shadow: 0 6px 16px rgba(43, 47, 51, 0.04);
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.employee-month-day.has-shifts {
    border-color: rgba(0, 95, 107, 0.22);
    background: linear-gradient(180deg, #ffffff 0%, #f4fafb 100%);
}

.employee-month-day:hover {
    border-color: rgba(0, 95, 107, 0.42);
    box-shadow: 0 12px 26px rgba(16, 24, 33, 0.09);
    transform: translateY(-1px);
}

.employee-month-day.is-outside {
    min-height: 158px;
    border-style: dashed;
    background: #f5f8f9;
    opacity: 0.5;
    cursor: default;
    box-shadow: none;
}

.employee-month-day.is-today {
    border-color: rgba(37, 99, 235, 0.45);
    box-shadow: inset 0 0 0 1px rgba(37, 99, 235, 0.18), 0 8px 18px rgba(37, 99, 235, 0.07);
}

.employee-month-day.is-selected {
    border-color: var(--brand-alki);
    box-shadow: inset 0 0 0 2px rgba(0, 95, 107, 0.24), 0 12px 26px rgba(0, 95, 107, 0.08);
}

.employee-month-day-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
}

.employee-month-day-head strong {
    color: var(--ink);
    font-size: 23px;
    line-height: 1;
}

.employee-month-day-head small {
    padding: 4px 7px;
    border-radius: 999px;
    background: #eef6f7;
    color: #4d5d62;
    font-size: 11px;
    font-weight: 800;
}

.employee-day-timelines {
    display: grid;
    gap: 8px;
    min-width: 0;
}

.employee-day-event {
    display: grid;
    gap: 5px;
    min-width: 0;
    padding: 8px 9px;
    border: 1px solid color-mix(in srgb, var(--employee-color, var(--brand-alki)) 20%, var(--line));
    border-left: 4px solid var(--employee-color, var(--brand-alki));
    border-radius: 8px;
    background: color-mix(in srgb, var(--employee-color, var(--brand-alki)) 8%, #ffffff);
}

.employee-day-event-name {
    display: flex;
    align-items: center;
    min-width: 0;
    gap: 6px;
    color: var(--ink);
    font-size: 11px;
    font-weight: 800;
}

.employee-day-event-name span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.employee-day-track {
    position: relative;
    display: block;
    height: 8px;
    border-radius: 999px;
    background: rgba(196, 209, 212, 0.46);
    overflow: hidden;
}

.employee-day-segment {
    position: absolute;
    top: 0;
    bottom: 0;
    min-width: 2px;
    border-radius: 999px;
}

.employee-day-time,
.employee-day-extra {
    color: var(--muted);
    font-size: 10px;
    font-weight: 800;
}

.employee-day-extra {
    display: inline-flex;
    justify-self: start;
    padding: 4px 8px;
    border-radius: 999px;
    background: #f0f4f5;
    color: #4d5d62;
}

.employee-hour-list-head,
.employee-hour-row {
    display: grid;
    grid-template-columns: minmax(190px, 0.7fr) 92px repeat(5, minmax(0, 1fr));
    gap: 12px;
    align-items: center;
}

.employee-hour-list-head {
    position: sticky;
    top: 0;
    z-index: 1;
    min-height: 42px;
    padding: 0 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #eef6f7;
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.employee-hour-list-head strong {
    color: var(--ink);
    text-transform: none;
}

.employee-hour-row {
    position: relative;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 8px 20px rgba(43, 47, 51, 0.05);
}

.employee-hour-row::before {
    content: "";
    position: absolute;
    top: 14px;
    bottom: 14px;
    left: 0;
    width: 4px;
    border-radius: 0 999px 999px 0;
    background: var(--employee-color, var(--brand-alki));
}

.employee-hour-person {
    min-width: 0;
}

.employee-hour-person strong {
    display: flex;
    align-items: center;
    min-width: 0;
    gap: 7px;
    color: var(--ink);
    font-size: 15px;
}

.employee-hour-person small {
    display: block;
    margin-top: 3px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 700;
}

.employee-hour-timeline {
    position: relative;
    grid-column: 3 / -1;
    min-height: 48px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: linear-gradient(90deg, rgba(196, 209, 212, 0.42) 1px, transparent 1px) 0 0 / calc(100% / 24) 100%, linear-gradient(180deg, #ffffff 0%, #f8fbfc 100%);
    overflow: hidden;
}

.employee-hour-grid-line {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 1px;
    background: rgba(87, 105, 112, 0.24);
}

.employee-hour-grid-line.is-6 { left: 25%; }
.employee-hour-grid-line.is-12 { left: 50%; }
.employee-hour-grid-line.is-18 { left: 75%; }

.employee-hour-bar {
    position: absolute;
    top: 8px;
    bottom: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    padding: 0 8px;
    border-radius: 8px;
    box-shadow: 0 4px 10px rgba(16, 24, 33, 0.12);
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.employee-hour-empty {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
}

.availability-action-cell.is-availability-selected,
.availability-table td.is-availability-selected {
    background: #c9f1df;
    box-shadow: inset 0 0 0 2px rgba(0, 126, 143, 0.42);
}

.availability-table th.is-availability-selected {
    background: #c9f1df;
    box-shadow: inset 0 0 0 2px rgba(0, 126, 143, 0.42);
    color: #005f6b;
}

.availability-action-cell.is-availability-anchor,
.availability-table td.is-availability-anchor {
    background: #a8e7ce;
    box-shadow: inset 0 0 0 3px rgba(0, 126, 143, 0.58);
}

.availability-table th.is-availability-anchor {
    background: #a8e7ce;
    box-shadow: inset 0 0 0 3px rgba(0, 126, 143, 0.58);
    color: #004b56;
}

.availability-table td.is-availability-invalid {
    background: #fbe1e5;
    box-shadow: inset 0 0 0 2px rgba(138, 31, 44, 0.26);
}

.availability-table th.is-availability-invalid {
    background: #fbe1e5;
    box-shadow: inset 0 0 0 2px rgba(138, 31, 44, 0.26);
    color: #8a1f2c;
}

.availability-action-cell.is-availability-selected .availability-slot-button,
.availability-slot-button.is-availability-selected {
    background: #007e8f;
    box-shadow: 0 0 0 3px rgba(0, 126, 143, 0.2);
    color: #fff;
}

.availability-action-cell.is-availability-anchor .availability-slot-button,
.availability-slot-button.is-availability-anchor {
    background: #005f6b;
    box-shadow: 0 0 0 3px rgba(0, 126, 143, 0.28);
    color: #fff;
}

.availability-action-cell.is-availability-invalid .availability-slot-button,
.availability-slot-button.is-availability-invalid {
    background: #b42332;
    box-shadow: 0 0 0 3px rgba(180, 35, 50, 0.18);
    color: #fff;
}

body.availability-selecting {
    user-select: none;
}

.availability-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 28px;
    min-width: 74px;
    padding: 0 9px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
}

.table-panel {
    margin-top: 18px;
}

.work-grid > .table-panel,
.work-grid > .panel {
    margin-top: 0;
}

.table-wrap {
    overflow: auto;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

table {
    width: 100%;
    min-width: 900px;
    border-collapse: collapse;
    background: #fff;
    font-size: 14px;
}

th,
td {
    padding: 11px 12px;
    border-bottom: 1px solid var(--line);
    text-align: left;
    vertical-align: middle;
    white-space: nowrap;
}

th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: var(--surface-soft);
    color: var(--muted);
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
}

td {
    color: var(--ink);
}

tbody tr:hover {
    background: #fbf8fb;
}

.tariff-increase-row {
    background: #e9f8ee;
}

.tariff-increase-row:hover {
    background: #dff3e7;
}

.tariff-preview-row.tariff-month-past td {
    background: #f8d7da;
    color: #721c24;
}

.tariff-preview-row.tariff-month-past.tariff-increase-row td {
    background: #f8d7da;
    color: #721c24;
}

.tariff-preview-row.tariff-month-current td,
.tariff-preview-row.tariff-month-current.tariff-increase-row td {
    background: #fff3cd;
    box-shadow: inset 0 0 0 999px rgba(183, 121, 31, 0.08);
}

.tariff-preview-row.tariff-month-current td:first-child {
    border-left: 4px solid var(--accent-amber);
    font-weight: 800;
}

.summary-month-table {
    min-width: 1240px;
    table-layout: fixed;
    font-variant-numeric: tabular-nums;
}

.summary-month-table th,
.summary-month-table td {
    overflow: hidden;
    padding: 13px 16px;
    text-overflow: ellipsis;
}

.summary-month-table th {
    white-space: normal;
    line-height: 1.22;
}

.summary-month-table .summary-number-cell {
    text-align: right;
}

.summary-month-table .summary-text-cell {
    text-align: left;
}

.summary-col-mes,
.summary-col-month { width: 150px; }
.summary-col-category { width: 18%; }
.summary-col-espacio { width: 12%; }
.summary-col-cliente { width: 22%; }
.summary-col-registro { width: 22%; }
.summary-col-vehiculo { width: 17%; }
.summary-col-cobrado { width: 13%; }
.summary-col-saldo { width: 14%; }
.summary-col-gastado { width: 13%; }
.summary-col-neto { width: 13%; }
.summary-col-estado { width: 9%; }
.summary-col-contratos { width: 16%; }
.summary-col-total { width: 20%; }
.summary-col-saldo { width: 20%; }

.summary-month-row.month-state-past td {
    background: #f8d7da;
    color: #721c24;
}

.summary-month-row.month-state-current td {
    background: #fff3cf;
}

.summary-month-row.month-state-current td:first-child {
    border-left: 4px solid var(--accent-amber);
    color: #7a5416;
}

.summary-month-row.month-state-future td {
    background: #edf8f0;
}

.summary-month-table tbody td:first-child {
    font-weight: 600;
}

.summary-month-table th[data-col-key="mes"],
.summary-month-table td[data-col-key="mes"] {
    overflow: visible;
    text-overflow: clip;
    white-space: nowrap;
}

.summary-month-table .summary-paid-cell {
    background: #dff4e6;
    color: #17311d;
    font-weight: 600;
}

.summary-month-table .summary-missing-cell {
    background: #fbe1e5;
    color: #4a1f26;
    font-weight: 600;
}

.summary-month-table .summary-net-cell {
    font-weight: 700;
}

.summary-month-panel .summary-filter-form {
    padding: 0;
}

.summary-month-panel .table-wrap {
    margin-top: 4px;
}

.record-filter-form.summary-period-filter-form {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    width: 100%;
    padding: 2px 0 4px;
}

.record-filter-form.summary-period-filter-form label,
.record-filter-form.summary-period-filter-form select {
    width: 100%;
    min-width: 0;
}

.summary-month-row[data-summary-row-detail] {
    cursor: pointer;
}

.summary-row-detail-button {
    position: relative;
    display: block;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0 22px 0 0;
    border: 0;
    background: transparent;
    color: var(--link-blue);
    font: inherit;
    font-weight: 700;
    text-align: left;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    cursor: pointer;
}

.summary-row-detail-button::after {
    content: "›";
    position: absolute;
    right: 4px;
    color: currentColor;
    font-size: 20px;
    line-height: 1;
}

.summary-month-row[data-summary-row-detail]:hover td,
.summary-month-row[data-summary-row-detail]:focus-within td {
    box-shadow: inset 0 2px 0 rgba(0, 126, 143, 0.34), inset 0 -2px 0 rgba(0, 126, 143, 0.34);
}

.summary-row-detail-button:focus-visible {
    border-radius: 4px;
    outline: 3px solid rgba(0, 126, 143, 0.24);
    outline-offset: 4px;
}

.availability-summary-row-grid {
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
}

.availability-summary-row-grid .availability-summary-card strong {
    font-size: 18px;
    line-height: 1.25;
}

tr[data-payment-row] {
    cursor: pointer;
}

tr[data-payment-row].payment-state-pagado td {
    background: #d8f3dc;
    color: #000;
}

tr[data-payment-row].payment-state-parcial td {
    background: #e9d8fd;
    color: #000;
}

tr[data-payment-row].payment-state-deuda td {
    background: #f8d7da;
    color: #000;
}

tr[data-payment-row].payment-out-of-terms td {
    background: #fff1c2;
    color: #2f2200;
}

tr[data-payment-row].payment-out-of-terms td[data-col-key="fecha_pago"],
tr[data-payment-row].payment-out-of-terms td[data-col-key="comprobante"] {
    color: #8a5a00;
    font-weight: 900;
}

tr.record-row-blacklist td {
    background: #e5e7eb;
    color: #374151;
}

tr.record-row-blacklist:hover td {
    background: #d7dbe1;
}

tr.record-row-blacklist .record-row-button {
    color: #374151;
    font-weight: 800;
}

tr.record-row-ended td {
    background: #fde2e5;
    color: #7f1d1d;
}

tr.record-row-ended:hover td {
    background: #fbd3d8;
}

tr.record-row-blacklist.record-row-ended td {
    background: #e5e7eb;
    color: #374151;
}

tr.record-row-blacklist.record-row-ended:hover td {
    background: #d7dbe1;
}

tr.record-row-active-now td:first-child {
    border-left: 4px solid #007e8f;
}

tr.record-row-active-now td {
    box-shadow: inset 0 0 0 999px rgba(0, 126, 143, 0.035);
}

tr.record-row-blacklist td:first-child,
tr.record-row-blacklist.record-row-active-now td:first-child {
    border-left: 4px solid #6b7280;
}

tr.record-row-blacklist.record-row-active-now td {
    box-shadow: inset 0 0 0 999px rgba(55, 65, 81, 0.035);
}

tr[data-payment-row].payment-state-pagado .payment-row-button,
tr[data-payment-row].payment-state-parcial .payment-row-button,
tr[data-payment-row].payment-state-deuda .payment-row-button {
    color: #000;
}

.record-row-button,
.payment-row-button {
    color: var(--brand-alki);
    font-weight: 600;
}

tr[data-payment-row]:hover .payment-row-button,
.record-row-button:hover,
.payment-row-button:hover {
    text-decoration: underline;
}

.record-row-button,
.payment-row-button {
    display: inline-block;
    max-width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.record-name-cell {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
    min-width: 0;
    max-width: min(320px, 42vw);
}

.record-name-cell .record-row-button {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.record-contact-actions {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    flex: 0 0 auto;
}

.record-contact-icon {
    display: inline-grid;
    place-items: center;
    width: 22px;
    height: 22px;
    border-radius: 999px;
    color: #fff;
    line-height: 1;
    text-decoration: none;
}

.record-contact-icon svg {
    width: 15px;
    height: 15px;
    fill: currentColor;
}

.record-contact-icon.whatsapp {
    background: #22c55e;
}

.record-contact-icon.phone {
    background: #0ea5e9;
}

.whatsapp-chatbot-panel .panel-header {
    align-items: center;
}

.whatsapp-chatbot-status {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 4px 10px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: #f8fafb;
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
    white-space: nowrap;
}

.whatsapp-chatbot-status.is-positive {
    border-color: rgba(34, 197, 94, 0.28);
    background: rgba(34, 197, 94, 0.1);
    color: #15803d;
}

.whatsapp-chatbot-status.is-warning {
    border-color: rgba(217, 119, 6, 0.28);
    background: rgba(245, 158, 11, 0.12);
    color: #92400e;
}

.whatsapp-chatbot-checks {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.whatsapp-chatbot-connect {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}

.whatsapp-chatbot-connect-button {
    min-height: 38px;
}

.whatsapp-chatbot-billing {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 5px 10px;
    border: 1px solid rgba(34, 197, 94, 0.28);
    border-radius: 999px;
    background: rgba(34, 197, 94, 0.1);
    color: #15803d;
    font-size: 12px;
    font-weight: 800;
}

.whatsapp-chatbot-check {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 5px 10px;
    border: 1px solid rgba(217, 119, 6, 0.28);
    border-radius: 999px;
    background: rgba(245, 158, 11, 0.1);
    color: #92400e;
    font-size: 12px;
    font-weight: 800;
}

.whatsapp-chatbot-check.is-ok {
    border-color: rgba(34, 197, 94, 0.28);
    background: rgba(34, 197, 94, 0.1);
    color: #15803d;
}

.whatsapp-chatbot-technical {
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 10px 12px;
    background: #fff;
}

.whatsapp-chatbot-technical summary {
    cursor: pointer;
    color: var(--muted);
    font-size: 13px;
    font-weight: 800;
}

.whatsapp-chatbot-technical-grid {
    margin-top: 12px;
}

.record-contact-icon.email {
    background: var(--brand-alki);
}

.record-contact-icon:hover {
    text-decoration: none;
    filter: brightness(0.95);
}

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

.email-provider-modal {
    position: fixed;
    inset: 0;
    z-index: 120;
    display: grid;
    place-items: center;
    padding: 20px;
}

.email-provider-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(16, 24, 33, 0.46);
}

.email-provider-panel {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 14px;
    width: min(360px, 100%);
    padding: 22px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    box-shadow: var(--shadow-lift);
}

.email-provider-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding-right: 34px;
}

.email-provider-header h2 {
    margin: 0;
    font-size: 20px;
}

.email-provider-panel p {
    margin: 0;
    color: var(--muted);
    font-size: 14px;
    overflow-wrap: anywhere;
}

.email-provider-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

html[data-theme="dark"] .email-provider-backdrop {
    background: rgba(2, 7, 9, 0.78);
}

html[data-theme="dark"] .email-provider-panel {
    border-color: #5e737c;
    background: #1f2a2f;
    color: #ffffff;
    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.46);
}

html[data-theme="dark"] .email-provider-header h2,
html[data-theme="dark"] .email-provider-panel p {
    color: #ffffff;
}

html[data-theme="dark"] .email-provider-panel .record-modal-close {
    background: #102024;
    color: #6fe7f0;
}

html[data-theme="dark"] .email-provider-actions .button {
    border: 1px solid #6f858e;
    background: #007e8f;
    color: #ffffff;
}

html[data-theme="dark"] .email-provider-actions .button:hover,
html[data-theme="dark"] .email-provider-actions .button:focus-visible {
    background: #006f7c;
    color: #ffffff;
    filter: none;
}

html[data-theme="dark"] .email-provider-actions .button-neutral {
    background: #172126;
    color: #ffffff;
}

html[data-theme="dark"] .email-provider-actions .button-neutral:hover,
html[data-theme="dark"] .email-provider-actions .button-neutral:focus-visible {
    background: #26363d;
}

.record-filter-form {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 10px;
    margin: 0 0 12px;
}

.record-filter-form label {
    display: inline-flex;
    flex-direction: column;
    gap: 6px;
    min-width: 170px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
}

.record-filter-form input,
.record-filter-form select {
    min-height: 38px;
    font-size: 13px;
    font-weight: 600;
    text-transform: none;
}

.record-filter-form .mini-button {
    min-height: 38px;
}

.record-linked-list {
    display: grid;
    gap: 8px;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #f6fbfc;
}

.record-linked-list[hidden] {
    display: none;
}

.record-modal-form .record-linked-list,
.record-modal-form .record-client-history {
    grid-column: 1 / -1;
}

.record-modal-form .record-linked-list {
    border-color: #c7d7ed;
    background: #f6f9ff;
    box-shadow: inset 4px 0 0 #2563eb;
}

.record-modal-form .record-linked-list .field-label-line {
    color: #1e3a8a;
}

.record-linked-items {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.record-modal-form .record-linked-items {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.record-linked-selects {
    display: grid;
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.record-linked-select-field {
    display: grid;
    min-width: 0;
    gap: 6px;
    color: #000;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    text-transform: uppercase;
}

.record-linked-select-field select {
    min-width: 0;
    min-height: 38px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    font-size: 14px;
    font-weight: 600;
    text-transform: none;
}

.record-linked-item {
    display: grid;
    gap: 2px;
    min-height: 42px;
    padding: 7px 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--brand-sys);
    font: inherit;
    font-size: 12px;
    line-height: 1.2;
    text-align: left;
    cursor: pointer;
}

.entry-form .record-linked-item {
    width: 100%;
    min-width: 0;
    height: auto;
    min-height: 44px;
    padding: 8px 10px;
    border: 1px solid #d6e0f2;
    background: #ffffff;
    color: var(--ink);
    font-size: 12px;
    line-height: 1.25;
    text-align: left;
}

.entry-form .record-linked-item:hover,
.entry-form .record-linked-item:focus-visible {
    border-color: #2563eb;
    background: #eff6ff;
    filter: none;
    outline: none;
}

.record-linked-item strong {
    font-size: 13px;
}

.record-linked-item span {
    color: var(--muted);
}

.record-linked-item.is-current {
    border-color: var(--brand-alki);
    box-shadow: inset 3px 0 0 var(--brand-alki);
}

.field-hint,
.client-suggestion {
    display: block;
    color: #2563eb;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.35;
    text-transform: none;
}

.record-client-history {
    display: grid;
    gap: 8px;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #f6fbfc;
}

.record-client-history[hidden] {
    display: none;
}

.record-client-history .field-label-line {
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
}

.record-client-history-note {
    margin: 0;
    color: var(--ink);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
    text-transform: none;
}

.record-client-history-note .record-client-history-owner {
    display: inline;
    min-width: 0;
    height: auto;
    padding: 1px 5px;
    border: 1px solid transparent;
    border-radius: 4px;
    background: #fff0b8;
    box-shadow: inset 0 -2px 0 #f97316;
    font-size: inherit;
    font-weight: 900;
    line-height: inherit;
    text-decoration: none;
    white-space: normal;
}

.record-client-history-note .record-client-history-owner:hover,
.record-client-history-note .record-client-history-owner:focus-visible {
    border-color: #f59e0b;
    background: #ffe08a;
    filter: none;
    outline: 2px solid rgba(194, 65, 12, 0.28);
    outline-offset: 2px;
    text-decoration: none;
}

.empty-state {
    padding: 18px;
    color: var(--muted);
    text-align: center;
}

.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 0 14px;
    border-radius: 8px;
    background: var(--brand-alki);
    color: #fff;
    font-weight: 600;
}

.button[hidden],
.inline-form[hidden] {
    display: none !important;
}

.button-secondary {
    background: var(--danger);
}

.button-compact {
    min-height: 34px;
    padding: 0 12px;
    font-size: 13px;
}

.button-danger {
    background: var(--danger);
}

.button-neutral {
    border: 1px solid var(--line);
    background: #fff;
    color: var(--brand-sys);
}

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

.record-modal {
    position: fixed;
    inset: 0;
    z-index: 80;
    display: grid;
    place-items: center;
    padding: 24px;
}

@media (min-width: 1281px) {
    .app-shell .record-modal {
        inset: 0 0 0 var(--active-sidebar-width);
    }
}

.record-modal.is-over-employee {
    z-index: 95;
}

.record-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(16, 24, 33, 0.54);
}

.record-modal-panel {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 18px;
    width: min(980px, 100%);
    max-height: min(86vh, 760px);
    overflow: auto;
    padding: 28px 22px 22px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    box-shadow: var(--shadow-lift);
}

.record-modal-header,
.record-modal-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.record-modal-header {
    align-items: flex-start;
    padding-right: 44px;
}

.record-modal-header h2 {
    margin: 0;
    font-size: 24px;
}

.record-modal-close {
    position: absolute;
    top: 8px;
    right: 8px;
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    width: 28px;
    min-width: 28px;
    height: 28px;
    min-height: 28px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: var(--danger);
    color: #fff;
    font-size: 18px;
    font-weight: 800;
    line-height: 1;
    cursor: pointer;
}

.record-modal-close:hover {
    filter: brightness(1.06);
}

.parking-client-modal {
    z-index: 105;
}

.parking-client-panel {
    grid-template-rows: auto auto auto minmax(0, 1fr) auto;
    width: min(560px, 100%);
    max-height: min(82vh, 680px);
}

.parking-client-type-toggle {
    display: inline-grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
    width: min(320px, 100%);
    padding: 4px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #f6fafb;
}

.parking-client-type-toggle[hidden] {
    display: none !important;
}

.parking-client-type-toggle button {
    min-height: 38px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: var(--muted);
    font: inherit;
    font-size: 13px;
    font-weight: 800;
    cursor: pointer;
}

.parking-client-type-toggle button.is-active,
.parking-client-type-toggle button:focus-visible {
    background: var(--brand-alki);
    color: #fff;
    outline: none;
}

.parking-client-search-field {
    display: grid;
    gap: 6px;
    color: #000;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    text-transform: uppercase;
}

.parking-client-search-field input {
    width: 100%;
    min-height: 44px;
    padding: 0 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    font-size: 14px;
    font-weight: 600;
    outline: none;
}

.parking-client-search-field input:focus {
    border-color: var(--brand-alki);
    box-shadow: 0 0 0 3px rgba(0, 95, 107, 0.13);
}

.parking-client-list {
    display: grid;
    align-content: start;
    gap: 8px;
    min-height: 0;
    max-height: 430px;
    overflow: auto;
    padding: 2px;
}

.parking-client-list-item {
    display: grid;
    gap: 3px;
    width: 100%;
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    text-align: left;
    cursor: pointer;
}

.parking-client-list-item[hidden] {
    display: none !important;
}

.parking-client-list-item:hover,
.parking-client-list-item:focus-visible {
    border-color: var(--brand-alki);
    background: #f3fbfc;
    outline: none;
}

.parking-client-list-name {
    font-size: 14px;
    font-weight: 800;
    line-height: 1.25;
}

.parking-client-list-meta {
    color: var(--muted);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.25;
}

.parking-client-empty {
    margin: 0;
    padding: 14px;
    border: 1px dashed var(--line);
    border-radius: 8px;
    color: var(--muted);
    font-size: 14px;
    font-weight: 700;
    text-align: center;
}

.parking-record-picker-button {
    min-height: 58px;
    padding: 7px 14px;
}

.parking-record-picker-placeholder {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.parking-record-picker-selection {
    display: grid;
    flex: 1 1 auto;
    grid-template-columns: minmax(72px, 0.55fr) minmax(0, 1.45fr);
    gap: 14px;
    min-width: 0;
}

.parking-record-picker-selection[hidden] {
    display: none;
}

.parking-record-picker-value,
.contact-record-picker-value {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.parking-record-picker-value small,
.contact-record-picker-value small {
    color: var(--muted);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.04em;
    line-height: 1.2;
    text-transform: uppercase;
}

.parking-record-picker-value strong,
.contact-record-picker-value strong {
    overflow-wrap: anywhere;
    font-size: 14px;
    line-height: 1.25;
}

.contact-record-picker-modal {
    z-index: 105;
}

.contact-record-picker-panel {
    grid-template-rows: auto auto auto minmax(0, 1fr) auto;
    width: min(960px, 100%);
}

.contact-record-picker-panel .record-modal-header p {
    margin: 5px 0 0;
    color: var(--muted);
    font-size: 14px;
}

.contact-record-picker-filters {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
    gap: 10px;
}

.contact-record-picker-filters label {
    display: grid;
    gap: 6px;
    min-width: 0;
}

.contact-record-picker-filters label > span {
    color: var(--ink);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.03em;
    line-height: 1.2;
    text-transform: uppercase;
}

.contact-record-picker-filters select {
    width: 100%;
    min-height: 42px;
    padding: 0 34px 0 11px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    outline: none;
}

.contact-record-picker-filters select:focus {
    border-color: var(--brand-alki);
    box-shadow: 0 0 0 3px rgba(0, 95, 107, 0.13);
}

.contact-record-picker-list {
    grid-template-columns: 1fr;
}

.contact-record-picker-option {
    grid-template-columns: minmax(84px, 0.65fr) minmax(180px, 1.65fr) minmax(110px, 0.85fr) minmax(76px, 0.55fr);
    align-items: center;
    gap: 16px;
}

.contact-record-picker-overdue strong {
    font-variant-numeric: tabular-nums;
}

.contact-record-picker-overdue.is-overdue strong {
    color: var(--danger);
}

.contact-record-picker-option.is-selected,
.contact-record-picker-option[aria-pressed="true"] {
    border-color: var(--brand-alki);
    background: #eef9fa;
    box-shadow: inset 4px 0 0 var(--brand-alki);
}

.record-modal[data-employee-modal] {
    place-items: stretch;
    padding: 0;
}

.record-modal[data-employee-modal] .employee-dialog-panel {
    width: 100vw;
    max-width: none;
    height: 100vh;
    height: 100dvh;
    max-height: none;
    overflow-y: auto;
    grid-template-rows: auto auto auto;
    padding: 22px 28px 18px;
    border-radius: 0;
}

.record-modal[data-employee-modal] .record-modal-actions {
    flex-direction: row;
    justify-content: flex-end;
}

.entry-form .employee-toggle-line {
    display: inline-flex;
    align-items: center;
    align-self: end;
    gap: 8px;
    min-height: 42px;
    padding: 0;
}

.employee-function-row input[type="checkbox"],
.entry-form .employee-toggle-line input[type="checkbox"] {
    width: 16px;
    min-width: 16px;
    max-width: 16px;
    height: 16px;
    min-height: 16px;
    max-height: 16px;
    margin: 0;
    padding: 0;
    accent-color: var(--brand-alki);
}

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

.app-notice-modal {
    position: fixed;
    inset: 0;
    z-index: 130;
    display: grid;
    place-items: center;
    padding: 24px;
}

.app-notice-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(16, 24, 33, 0.54);
}

.app-notice-panel {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 18px;
    width: min(520px, 100%);
    padding: 26px 22px 20px;
    border: 1px solid var(--line);
    border-top: 4px solid var(--brand-alki);
    border-radius: 8px;
    background: var(--surface);
    color: var(--ink);
    box-shadow: var(--shadow-lift);
}

.app-notice-copy {
    display: grid;
    gap: 8px;
    padding-right: 38px;
}

.app-notice-copy h2,
.app-notice-copy p {
    margin: 0;
}

.app-notice-copy h2 {
    color: var(--ink);
    font-size: 24px;
    line-height: 1.16;
}

.app-notice-copy p:not(.eyebrow) {
    color: var(--muted);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.45;
}

.app-notice-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px;
}

html[data-theme="dark"] .app-notice-backdrop {
    background: rgba(3, 7, 10, 0.76);
}

html[data-theme="dark"] .app-notice-panel {
    border-color: var(--line);
    background: var(--surface);
    color: var(--ink);
    box-shadow: var(--shadow-lift);
}

html[data-theme="dark"] .app-notice-actions .button {
    border: 1px solid #6f858e;
    color: #ffffff;
}

html[data-theme="dark"] .app-notice-actions .button-neutral {
    border-color: #6f858e;
    background: #172126;
    color: #ffffff;
}

html[data-theme="dark"] .app-notice-actions .button-neutral:hover,
html[data-theme="dark"] .app-notice-actions .button-neutral:focus-visible {
    background: #26363d;
    color: #ffffff;
    filter: none;
}

.record-modal-form {
    margin: 0;
}

.contact-message-panel {
    width: min(780px, 100%);
}

.contact-message-form {
    display: grid;
    gap: 16px;
}

.contact-message-tabs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.contact-message-tab {
    min-height: 42px;
    padding: 8px 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    color: var(--ink);
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.2;
    text-align: left;
    cursor: pointer;
}

.contact-message-tab.is-active {
    border-color: var(--brand-alki);
    background: var(--brand-alki);
    color: #fff;
}

.contact-message-pane {
    display: none;
    gap: 8px;
    color: var(--ink);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
}

.contact-message-pane.is-active {
    display: grid;
}

.contact-message-pane-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.contact-message-pane-header .button {
    text-transform: none;
}

.contact-message-context-fields {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px 20px;
}

.contact-message-period-field,
.contact-message-category-field {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}

.space-vehicle-option.is-disabled {
    background: var(--surface-soft);
    color: var(--muted);
    opacity: 0.62;
    cursor: not-allowed;
}

.space-vehicle-option.is-disabled input {
    cursor: not-allowed;
}

.contact-message-period-field select,
.contact-message-category-field select {
    height: 38px;
    min-width: 180px;
}

.contact-message-pane textarea {
    min-height: 220px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    color: var(--ink);
    font: inherit;
    font-weight: 400;
    line-height: 1.45;
    resize: vertical;
    text-transform: none;
}

.contact-message-pane textarea:focus {
    border-color: var(--brand-alki);
    outline: 3px solid rgba(0, 95, 107, 0.14);
}

.contact-message-example {
    margin: 0;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
    color: var(--ink);
    font: inherit;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.45;
    text-transform: none;
    white-space: pre-wrap;
}

.contact-message-example[hidden] {
    display: none;
}

.contact-message-tags {
    display: grid;
    gap: 8px;
}

.contact-message-tags-label {
    color: var(--muted);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.contact-message-tag-group {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.contact-message-tag-group[hidden] {
    display: none;
}

.contact-message-tag {
    min-height: 30px;
    padding: 5px 9px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
    color: var(--ink);
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    text-transform: none;
}

.contact-message-tag:hover {
    border-color: var(--brand-alki);
    color: var(--brand-alki);
}

.contact-message-modal .record-modal-actions {
    justify-content: flex-end;
}

.availability-detail-panel {
    width: min(760px, calc(100vw - 32px));
    padding: 30px;
    gap: 18px;
}

.availability-detail-header {
    padding-right: 44px;
}

.availability-detail-header .eyebrow {
    margin: 0 0 4px;
}

.availability-detail-header h2 {
    margin: 0;
}

.availability-detail-text {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin: 0;
    padding: 0;
    color: var(--ink);
    font-size: 15px;
    line-height: 1.45;
    white-space: normal;
}

.availability-detail-item {
    display: grid;
    align-content: start;
    gap: 6px;
    min-width: 0;
    min-height: 78px;
    padding: 14px 16px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
}

.availability-detail-item.is-wide {
    grid-column: span 2;
}

.availability-detail-item.is-full {
    grid-column: 1 / -1;
}

.availability-detail-item span {
    color: var(--muted);
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}

.availability-detail-item strong {
    min-width: 0;
    color: var(--ink);
    font-size: 17px;
    font-weight: 800;
    overflow-wrap: anywhere;
}

.availability-detail-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    justify-content: flex-end;
    margin-top: 14px;
}

.availability-choice-panel {
    width: min(620px, calc(100vw - 32px));
    padding: 30px;
    gap: 16px;
}

.availability-choice-copy {
    margin: 0;
    color: var(--muted);
    font-size: 14px;
    font-weight: 700;
}

.availability-choice-actions {
    display: flex;
    justify-content: flex-start;
}

.availability-choice-list-wrap {
    display: grid;
    gap: 8px;
}

.availability-choice-list-wrap[hidden] {
    display: none;
}

.availability-choice-list {
    display: grid;
    gap: 8px;
}

.availability-choice-item {
    width: 100%;
}

.availability-kpi-panel {
    width: min(980px, calc(100vw - 32px));
    padding: 30px;
    gap: 18px;
}

.availability-kpi-body {
    display: grid;
    gap: 18px;
}

.gastos-kpi-panel {
    width: min(1480px, calc(100vw - 32px));
}

.report-kpi-panel {
    width: min(1180px, calc(100vw - 32px));
}

.report-kpi-summary {
    grid-template-columns: minmax(0, 1fr);
}

.report-kpi-summary .availability-summary-card {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    column-gap: 18px;
    min-height: 104px;
}

.report-kpi-summary .availability-summary-card > span {
    font-size: clamp(18px, 2vw, 24px);
    line-height: 1.1;
}

.report-kpi-summary .availability-summary-card > strong {
    font-size: clamp(24px, 2.5vw, 30px);
    line-height: 1;
    text-align: right;
}

.report-kpi-summary .availability-summary-card > small {
    grid-column: 1 / -1;
}

.report-kpi-table {
    min-width: 820px;
}

.report-kpi-table td:first-child {
    font-weight: 900;
}

.report-kpi-contact-link {
    color: var(--link-blue);
    font-weight: 800;
    text-decoration: none;
}

.report-kpi-contact-link:hover,
.report-kpi-contact-link:focus-visible {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.report-kpi-empty {
    margin: 0;
}

.report-increase-notice-button {
    width: 100%;
    min-width: 104px;
    white-space: nowrap;
}

.gastos-kpi-note {
    margin: 0;
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
    color: var(--muted);
    font-weight: 700;
}

.gastos-kpi-table {
    min-width: 1080px;
}

.gastos-kpi-action-row {
    cursor: pointer;
}

.gastos-kpi-action-row:hover td,
.gastos-kpi-action-row:focus-visible td {
    background: rgba(0, 95, 107, 0.08);
}

.gastos-kpi-action-row:focus-visible {
    outline: 3px solid rgba(0, 95, 107, 0.28);
    outline-offset: -3px;
}

.gastos-kpi-total-row {
    border-top: 2px solid var(--line-strong);
    background: var(--surface-soft);
    font-weight: 900;
}

.gastos-kpi-total-row td:last-child {
    color: var(--accent);
}

.gastos-kpi-summary .tone-danger strong {
    color: var(--danger);
}

.gastos-kpi-summary .tone-positive strong {
    color: var(--positive);
}

.availability-kpi-controls {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: flex-end;
}

.availability-kpi-controls label {
    display: grid;
    gap: 6px;
    min-width: 180px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.availability-kpi-controls select {
    width: 100%;
}

.availability-kpi-content {
    display: grid;
    gap: 18px;
}

.payment-day-bars {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(92px, 1fr));
    gap: 8px;
}

.payment-day-bar {
    display: grid;
    gap: 7px;
    min-height: 74px;
    padding: 10px;
    border: 1px solid #cfe2e7;
    border-radius: 8px;
    background: #f7fbfc;
    color: var(--ink);
    font: inherit;
    font-weight: 800;
    text-align: left;
    cursor: pointer;
}

.payment-day-bar:disabled {
    cursor: default;
    opacity: 0.58;
}

.payment-day-bar.is-active {
    border-color: var(--brand-alki);
    background: #e5fbfd;
    box-shadow: inset 0 0 0 2px rgba(0, 113, 124, 0.24);
}

.payment-day-bar i {
    display: block;
    height: 9px;
    overflow: hidden;
    border-radius: 999px;
    background: #dcebee;
}

.payment-day-bar b {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--brand-alki);
}

.payment-day-bar small {
    color: #4f6870;
    font-weight: 800;
}

.payment-space-summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin: 16px 0 22px;
}

.payment-space-card {
    display: grid;
    gap: 14px;
    min-width: 0;
    padding: 20px;
    border: 1px solid #d3e3e7;
    border-radius: 8px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbfc 100%);
    box-shadow: var(--shadow-card);
}

.payment-space-card.is-overdue {
    border-left: 5px solid #e05a64;
}

.payment-space-card.is-paid {
    border-left: 5px solid #087f6f;
}

.payment-space-card-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
}

.payment-space-card-header h2 {
    margin: 0;
    color: var(--ink);
    font-size: clamp(20px, 2vw, 28px);
    line-height: 1.08;
}

.payment-space-card-header p {
    margin: 6px 0 0;
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}

.payment-space-card-header strong {
    display: inline-grid;
    place-items: center;
    min-width: 52px;
    height: 52px;
    padding: 0 12px;
    border-radius: 8px;
    background: #10242a;
    color: #ffffff;
    font-size: 24px;
    font-weight: 900;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}

.payment-space-card.is-paid .payment-space-card-header strong {
    background: #087f6f;
}

.payment-space-card.is-overdue .payment-space-card-header strong {
    background: #c74450;
}

.payment-space-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.payment-space-filters label {
    display: grid;
    gap: 5px;
    min-width: 160px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

.payment-space-filters select {
    width: 100%;
    min-height: 40px;
}

.payment-space-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(62px, 1fr));
    gap: 10px;
}

.payment-space-list .empty-state {
    grid-column: 1 / -1;
    min-height: 62px;
    padding: 18px;
    border: 1px dashed #c8dce2;
    border-radius: 8px;
    background: #f6fafb;
    text-align: left;
}

.payment-space-chip {
    display: grid;
    place-items: center;
    aspect-ratio: 1;
    min-width: 0;
    min-height: 62px;
    padding: 8px;
    border: 1px solid #bfd5dc;
    border-radius: 8px;
    background: #ffffff;
    color: var(--ink);
    font: inherit;
    font-size: 16px;
    font-weight: 900;
    line-height: 1.1;
    text-align: center;
    cursor: pointer;
    box-shadow: inset 0 -1px 0 rgba(16, 24, 32, 0.06);
}

.payment-space-chip.is-paid {
    border-color: rgba(8, 127, 111, 0.34);
    background: #e8fbf7;
    color: #064f47;
}

.payment-space-chip.is-overdue {
    border-color: rgba(199, 68, 80, 0.34);
    background: #fff0f2;
    color: #8f2430;
}

.payment-space-chip:hover,
.payment-space-chip:focus-visible {
    outline: 0;
    transform: translateY(-1px);
    box-shadow: 0 8px 20px rgba(16, 24, 32, 0.12);
}

@media (max-width: 860px) {
    .payment-space-summary {
        grid-template-columns: 1fr;
    }

    .payment-space-card-header {
        align-items: center;
    }

    .payment-space-list {
        grid-template-columns: repeat(auto-fill, minmax(54px, 1fr));
    }

    .payment-space-chip {
        min-height: 54px;
        font-size: 14px;
    }
}

.availability-kpi-summary {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 10px;
}

.availability-summary-card,
.availability-kpi-insight {
    display: grid;
    gap: 6px;
    min-width: 0;
    padding: 14px 16px;
    border: 1px solid #d7e4e7;
    border-radius: 8px;
    background: linear-gradient(180deg, #ffffff 0%, #f6fbfb 100%);
}

.availability-summary-card.is-primary {
    border-color: rgba(0, 113, 124, 0.28);
    background: linear-gradient(180deg, #effbfb 0%, #ffffff 100%);
}

.availability-summary-card span,
.availability-kpi-insight span {
    min-width: 0;
    color: var(--muted);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

.availability-summary-card strong,
.availability-kpi-insight strong {
    min-width: 0;
    color: var(--ink);
    font-size: 22px;
    line-height: 1.1;
    overflow-wrap: anywhere;
}

.availability-summary-card small,
.availability-kpi-insight small {
    min-width: 0;
    color: #58727a;
    font-size: 12px;
    font-weight: 700;
}

.availability-kpi-insights {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 10px;
}

.availability-next-table-wrap {
    width: 100%;
    overflow-x: auto;
    border: 1px solid #d7e4e7;
    border-radius: 8px;
    background: #ffffff;
}

.availability-next-table {
    width: 100%;
    min-width: 720px;
    border-collapse: collapse;
}

.availability-next-table th,
.availability-next-table td {
    padding: 13px 16px;
    border-bottom: 1px solid #e2ecef;
    color: var(--ink);
    text-align: left;
    vertical-align: middle;
}

.availability-next-table th {
    background: #f5fafb;
    color: var(--muted);
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}

.availability-next-table tbody tr:last-child td {
    border-bottom: 0;
}

.availability-next-table td {
    font-size: 15px;
    font-weight: 700;
}

.availability-next-table td.is-space {
    color: var(--primary);
    font-size: 18px;
    font-weight: 900;
}

.availability-next-table td.is-time {
    text-align: center;
    font-weight: 900;
}

.payment-overdue-table :is(th:nth-child(5), td:nth-child(5)) {
    background: rgba(180, 35, 50, 0.14);
    color: #b42332;
    font-weight: 900;
}

.availability-show-all-actions {
    display: flex;
    justify-content: flex-start;
}

.availability-show-all-link {
    min-width: 0;
    height: auto;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #2563eb;
    font: inherit;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.2;
    text-align: left;
    cursor: pointer;
}

.availability-show-all-link:hover {
    background: transparent;
    color: #1d4ed8;
    filter: none;
    text-decoration: underline;
}

.availability-kpi-section {
    display: grid;
    gap: 10px;
}

.availability-kpi-section h3 {
    margin: 0 0 4px;
    color: var(--ink);
    font-size: 16px;
}

.availability-percent-row {
    display: grid;
    grid-template-columns: minmax(130px, 190px) minmax(140px, 1fr) minmax(112px, auto);
    gap: 14px;
    align-items: center;
    min-height: 54px;
    padding: 10px 12px;
    border: 1px solid #dce8ea;
    border-radius: 8px;
    background: #ffffff;
}

.availability-percent-label {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.availability-percent-label span {
    min-width: 0;
    color: var(--ink);
    font-size: 14px;
    font-weight: 800;
    overflow-wrap: anywhere;
}

.availability-percent-label small {
    min-width: 0;
    color: #60757c;
    font-size: 11px;
    font-weight: 700;
    overflow-wrap: anywhere;
}

.availability-percent-track {
    height: 12px;
    overflow: hidden;
    border-radius: 999px;
    background: #e7f0f2;
    box-shadow: inset 0 0 0 1px rgba(0, 91, 105, 0.06);
}

.availability-percent-track span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #007985 0%, #19a7a5 58%, #6bd2ba 100%);
}

.availability-percent-value {
    display: grid;
    gap: 4px;
    justify-items: end;
    min-width: 0;
    text-align: right;
}

.availability-percent-value strong {
    min-width: 0;
    color: #006a76;
    font-size: 17px;
    line-height: 1.1;
    overflow-wrap: anywhere;
}

.availability-delta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    max-width: 100%;
    padding: 4px 7px;
    border-radius: 999px;
    background: #edf3f5;
    color: #52676f;
    font-size: 11px;
    font-weight: 900;
    line-height: 1;
    overflow-wrap: anywhere;
}

.availability-delta.is-up {
    background: #e8f8ee;
    color: #15803d;
}

.availability-delta.is-down {
    background: #fdecec;
    color: #c2393f;
}

.availability-delta.is-flat {
    background: #eef3f5;
    color: #60757c;
}

.availability-space-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.availability-space-list span,
.availability-space-list button {
    padding: 8px 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
    color: var(--ink);
    font: inherit;
    font-size: 13px;
    font-weight: 800;
    cursor: pointer;
}

.availability-space-list button:hover,
.availability-space-list button:focus-visible {
    border-color: var(--brand-alki);
    background: #eff7f8;
    outline: none;
}

.availability-space-list .availability-space-item.is-free {
    border-color: rgba(20, 108, 53, 0.28);
    background: #e8f7ee;
    color: #146c35;
}

.availability-space-list .availability-space-item.is-occupied {
    border-color: rgba(138, 31, 44, 0.28);
    background: #f9d7dc;
    color: #8a1f2c;
}

.availability-space-list .availability-space-item.is-partial {
    border-color: rgba(109, 40, 168, 0.28);
    background: #eadcfb;
    color: #6d28a8;
}

.availability-space-list .availability-space-item.is-free:hover,
.availability-space-list .availability-space-item.is-free:focus-visible {
    border-color: rgba(20, 108, 53, 0.45);
    background: #d9f1e3;
}

.availability-space-list .availability-space-item.is-occupied:hover,
.availability-space-list .availability-space-item.is-occupied:focus-visible {
    border-color: rgba(138, 31, 44, 0.45);
    background: #f4c5cd;
}

.availability-space-list .availability-space-item.is-partial:hover,
.availability-space-list .availability-space-item.is-partial:focus-visible {
    border-color: rgba(109, 40, 168, 0.45);
    background: #dfcdf7;
}

@media (max-width: 720px) {
    .availability-detail-panel {
        width: min(100%, calc(100vw - 24px));
        padding: 26px 18px 18px;
    }

    .availability-detail-text {
        grid-template-columns: 1fr;
    }

    .availability-detail-item.is-wide {
        grid-column: auto;
    }

    .availability-choice-panel {
        width: min(100%, calc(100vw - 24px));
        padding: 26px 18px 18px;
    }

    .availability-kpi-panel {
        width: min(100%, calc(100vw - 24px));
        padding: 26px 18px 18px;
    }

    .availability-kpi-controls label {
        min-width: min(100%, 180px);
    }

    .availability-summary-card strong,
    .availability-kpi-insight strong {
        font-size: 19px;
    }

    .availability-percent-row {
        grid-template-columns: 1fr auto;
        gap: 10px;
    }

    .availability-percent-track {
        grid-column: 1 / -1;
        grid-row: 2;
    }

    .availability-percent-value {
        align-self: start;
    }
}

.record-modal-actions {
    justify-content: flex-end;
}

.vehicle-data-panel {
    width: min(720px, 100%);
}

.vehicle-data-message {
    padding: 10px 12px;
    border: 1px solid rgba(31, 111, 216, 0.22);
    border-radius: 8px;
    background: #f4f8ff;
    color: #31506f;
    font-size: 14px;
}

.vehicle-data-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 10px;
}

.vehicle-data-grid article {
    display: grid;
    gap: 5px;
    min-width: 0;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
}

.vehicle-data-grid span {
    color: var(--muted);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
}

.vehicle-data-grid strong {
    min-width: 0;
    overflow-wrap: anywhere;
    color: var(--ink);
    font-size: 14px;
}

.payment-modal-panel {
    width: min(1120px, 100%);
}

.payment-detail-panel {
    width: min(1640px, 100%);
    max-height: calc(100vh - 16px);
}

.payment-editor-panel {
    width: min(1240px, 100%);
}

.variable-increment-panel {
    width: min(760px, 100%);
}

.variable-list-panel {
    width: min(520px, 100%);
}

.variable-dialog-panel {
    width: min(560px, 100%);
}

[data-vehicle-modal] .variable-dialog-panel {
    grid-template-rows: auto minmax(0, 1fr) auto;
    gap: 0;
    width: min(1180px, calc(100vw - 32px));
    max-height: calc(100dvh - 24px);
    padding: 0;
    overflow: hidden;
}

.rental-unit-dialog-panel {
    width: min(860px, 100%);
}

[data-floor-setup-modal].record-modal {
    padding: 8px;
}

[data-floor-setup-modal] .variable-dialog-panel {
    width: min(1320px, calc(100vw - 16px));
    max-height: calc(100vh - 16px);
}

.variable-ipc-view-panel {
    width: min(1180px, 100%);
}

.location-map-panel {
    width: min(900px, 100%);
}

.location-map-frame {
    width: 100%;
    height: min(62vh, 520px);
    min-height: 320px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
    overflow: hidden;
}

.variable-list-form {
    grid-template-columns: 1fr;
}

.variable-dialog-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.vehicle-category-dialog-form {
    display: grid;
    grid-template-columns: 1fr;
    align-items: start;
    gap: 22px;
    min-height: 0;
    padding: 22px 26px;
    overflow-y: auto;
}

[data-vehicle-modal] .record-modal-header {
    padding: 22px 70px 16px 26px;
    border-bottom: 1px solid var(--line);
    background: var(--surface);
}

[data-vehicle-modal] .record-modal-close {
    top: 18px;
    right: 20px;
}

[data-vehicle-modal] .record-modal-actions {
    justify-content: flex-end;
    padding: 14px 26px;
    border-top: 1px solid var(--line);
    background: var(--surface);
}

[data-vehicle-modal] .record-modal-actions .button {
    min-width: 132px;
}

[data-vehicle-modal] .record-modal-actions .button:not(.category-dialog-cancel) {
    border: 1px solid var(--brand-alki);
    background: var(--brand-alki);
    color: #ffffff;
}

[data-vehicle-modal] .record-modal-actions .category-dialog-cancel {
    border-color: #f0646a;
    background: #f0646a;
    color: #000000;
}

[data-vehicle-modal] .record-modal-actions .category-dialog-cancel:hover,
[data-vehicle-modal] .record-modal-actions .category-dialog-cancel:focus-visible {
    border-color: #f0646a;
    background: #f0646a;
    color: #000000;
    filter: brightness(1.04);
}

.vehicle-category-dialog-section {
    display: grid;
    grid-column: 1 / -1;
    gap: 12px;
    min-width: 0;
}

.vehicle-category-dialog-section-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 16px;
}

.vehicle-category-dialog-section-head h3 {
    margin: 0;
    color: var(--ink);
    font-size: 16px;
    font-weight: 800;
    line-height: 1.2;
}

.vehicle-category-dialog-section-head p,
.vehicle-model-picker-head > span {
    margin: 0;
    color: var(--muted);
    font-size: 12px;
    font-weight: 650;
    line-height: 1.35;
    text-align: right;
    text-transform: none;
}

.vehicle-category-basics-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(180px, 0.5fr);
    gap: 12px;
}

.vehicle-category-period-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
}

.vehicle-period-rate {
    display: grid;
    gap: 8px;
    min-width: 0;
    align-content: start;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--surface-soft);
}

.vehicle-period-rate-title {
    color: var(--ink);
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
}

.vehicle-period-rate-controls {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
}

.vehicle-period-rate :is(input, select) {
    width: 100%;
    min-width: 0;
}

.vehicle-period-rate small {
    min-height: 18px;
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}

.vehicle-category-models-section {
    padding-top: 2px;
}

[data-vehicle-modal] .space-vehicle-picker {
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 8px;
}

[data-vehicle-modal] .space-vehicle-option {
    min-height: 42px;
    border-color: #b8c9ce;
    background: #ffffff;
    color: #243136;
    cursor: pointer;
    transition: border-color 0.16s ease, background 0.16s ease, color 0.16s ease;
}

[data-vehicle-modal] .space-vehicle-option:has(input:checked) {
    border-color: #0b8792;
    background: #e7f7f8;
    color: #004f59;
}

[data-vehicle-modal] .space-vehicle-option:focus-within {
    border-color: var(--brand-alki);
    outline: 3px solid rgba(0, 95, 107, 0.2);
    outline-offset: 1px;
}

[data-vehicle-modal] .space-vehicle-option.is-disabled {
    background: var(--surface-soft);
    color: var(--muted);
    cursor: not-allowed;
}

html[data-theme="dark"] .app-shell [data-vehicle-modal] .space-vehicle-option {
    border-color: #405861;
    background: #172329;
    color: #dfe9ec;
}

html[data-theme="dark"] .app-shell [data-vehicle-modal] .space-vehicle-option:has(input:checked) {
    border-color: #2ac4cf;
    background: #0d5962;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell [data-vehicle-modal] .space-vehicle-option.is-disabled {
    border-color: #34474f;
    background: #121a1e;
    color: #8da0a7;
}

html[data-theme="dark"] .app-shell [data-vehicle-modal] .record-modal-actions .category-dialog-cancel,
html[data-theme="dark"] .app-shell [data-vehicle-modal] .record-modal-actions .category-dialog-cancel:hover,
html[data-theme="dark"] .app-shell [data-vehicle-modal] .record-modal-actions .category-dialog-cancel:focus-visible {
    border-color: #f0646a;
    background: #f0646a;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell [data-vehicle-modal] .record-modal-actions .button:not(.category-dialog-cancel) {
    border-color: #2aaeba;
    background: #087f8b;
    color: #ffffff;
}

@media (max-width: 1180px) {
    .vehicle-category-period-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    [data-vehicle-modal] {
        padding: 8px;
    }

    [data-vehicle-modal] .variable-dialog-panel {
        width: calc(100vw - 16px);
        max-height: calc(100dvh - 16px);
    }

    [data-vehicle-modal] .record-modal-header {
        padding: 18px 58px 14px 18px;
    }

    [data-vehicle-modal] .record-modal-close {
        top: 14px;
        right: 14px;
    }

    .vehicle-category-dialog-form {
        gap: 18px;
        padding: 18px;
    }

    .vehicle-category-dialog-section-head {
        align-items: start;
        flex-direction: column;
        gap: 4px;
    }

    .vehicle-category-dialog-section-head p,
    .vehicle-model-picker-head > span {
        text-align: left;
    }

    .vehicle-category-basics-grid,
    .vehicle-category-period-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    [data-vehicle-modal] .record-modal-actions {
        padding: 12px 18px;
    }
}

@media (max-width: 520px) {
    .vehicle-category-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .vehicle-category-add-button {
        width: 100%;
    }

    .vehicle-category-basics-grid,
    .vehicle-category-period-grid {
        grid-template-columns: 1fr;
    }

    .vehicle-period-rate-controls {
        grid-template-columns: minmax(0, 1.3fr) minmax(96px, 0.7fr);
    }

    [data-vehicle-modal] .record-modal-actions .button {
        flex: 1 1 0;
        min-width: 0;
    }
}

.vehicle-period-rate.is-invalid {
    border-color: var(--danger);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--danger) 18%, transparent);
}

.vehicle-period-rate.is-invalid small {
    color: var(--danger);
}

.dialog-note {
    margin: 0;
    color: var(--muted);
    font-size: 13px;
    font-weight: 600;
}

.variable-ipc-view-filters {
    grid-template-columns: minmax(160px, 220px);
    align-items: end;
}

.ipc-view-status {
    min-height: 18px;
    margin: 0;
    color: var(--muted);
    font-size: 13px;
    font-weight: 600;
}

.ipc-view-table-wrap {
    max-height: min(58vh, 520px);
    overflow: auto;
    border: 1px solid var(--line);
    border-radius: 8px;
}

.ipc-view-table {
    width: 100%;
    min-width: 980px;
    border-collapse: collapse;
    background: #fff;
}

.ipc-view-table th,
.ipc-view-table td {
    padding: 10px 12px;
    border-bottom: 1px solid var(--line);
    color: var(--ink);
    font-size: 13px;
    text-align: left;
    white-space: nowrap;
}

.ipc-view-table th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: var(--surface-soft);
    font-weight: 800;
}

.ipc-view-table tbody tr:last-child td {
    border-bottom: 0;
}

.ipc-view-table td:first-child,
.ipc-view-table th:first-child {
    position: sticky;
    left: 0;
    z-index: 2;
    background: #fff;
    font-weight: 800;
}

.ipc-view-table th:first-child {
    z-index: 3;
    background: var(--surface-soft);
}

.ipc-view-empty {
    color: var(--muted);
}

.ipc-view-loaded {
    color: var(--brand-sys);
    font-weight: 800;
}

.ipc-view-upcoming {
    background: #fff7d6;
    color: #7c4a03;
    font-weight: 800;
}

.floor-list {
    display: grid;
    gap: 8px;
}

.floor-list-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    align-items: center;
    padding: 8px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
}

.floor-list-name {
    min-width: 0;
    min-height: 34px;
    border: 0;
    background: transparent;
    color: #000;
    font: inherit;
    font-weight: 700;
    text-align: left;
    cursor: pointer;
}

.floor-list-empty {
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    color: var(--muted);
    font-weight: 600;
    text-align: center;
}

.floor-setup-form {
    align-items: start;
    grid-template-columns: minmax(180px, 260px) minmax(0, 1fr);
    gap: 14px;
}

.floor-setup-sections {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    align-items: start;
    overflow-x: auto;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.floor-setup-grid-heading,
.floor-setup-section {
    display: grid;
    grid-template-columns: minmax(190px, 1fr) minmax(170px, 0.72fr) repeat(var(--floor-vehicle-count, 1), minmax(170px, 1fr));
    gap: 12px;
    align-items: stretch;
    width: 100%;
    min-width: max-content;
}

.floor-setup-grid-heading {
    padding: 10px 14px;
    border-bottom: 1px solid var(--line);
    background: var(--surface-soft);
    color: #000;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.2;
    text-transform: uppercase;
}

.floor-setup-vehicle-group-heading {
    grid-column: 3 / -1;
}

.floor-setup-section {
    padding: 12px 14px;
    border-bottom: 1px solid var(--line);
    background: #fff;
}

.floor-setup-section:last-child {
    border-bottom: 0;
}

.floor-setup-vehicle-counts {
    display: contents;
}

.floor-setup-vehicle-count {
    display: grid;
    gap: 7px;
    align-content: end;
    box-sizing: border-box;
    min-width: 0;
}

.floor-setup-name-field,
.floor-setup-total-field {
    display: grid;
    align-content: end;
    box-sizing: border-box;
    min-width: 0;
    padding-top: 24px;
}

.floor-setup-vehicle-label {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

.floor-setup-vehicle-name {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.floor-setup-vehicle-name strong {
    color: var(--brand-alki);
}

.floor-setup-ratio {
    flex: 0 0 auto;
    padding: 2px 6px;
    border: 1px solid rgba(0, 95, 107, 0.2);
    border-radius: 999px;
    background: rgba(0, 95, 107, 0.08);
    color: var(--brand-alki);
    font-size: 11px;
    font-weight: 800;
    line-height: 1.1;
}

.entry-form .floor-setup-help {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    width: 17px;
    height: 17px;
    min-height: 0;
    padding: 0;
    border-radius: 50%;
    background: var(--brand-alki);
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
    border: 0;
    cursor: pointer;
}

.floor-setup-vehicle-count.is-disabled {
    opacity: 0.56;
}

.floor-setup-form input {
    height: 44px;
}

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

.increment-mode-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.increment-mode-option {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 10px;
    align-items: start;
    min-width: 0;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    cursor: pointer;
}

.increment-mode-option:has(input:checked) {
    border-color: var(--brand-alki);
    background: #eef8f9;
}

.increment-mode-option input {
    margin-top: 3px;
}

.increment-mode-option span {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.increment-mode-option strong {
    color: var(--ink);
}

.increment-mode-option small,
.increment-source {
    color: var(--muted);
    font-size: 13px;
    line-height: 1.4;
}

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

.variable-increment-modal:not(.is-ipc-mode) [data-variable-ipc-control],
.variable-increment-modal.is-ipc-mode [data-variable-fixed-control] {
    display: none;
}

.increment-ipc-summary {
    color: var(--muted);
    font-size: 13px;
    line-height: 1.4;
    align-self: end;
    min-width: 0;
    display: grid;
    grid-column: 1 / -1;
    gap: 6px;
}

.increment-ipc-summary strong {
    color: var(--ink);
    font-size: 13px;
}

.increment-ipc-list {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.increment-ipc-list span {
    padding: 5px 8px;
    border: 1px solid #cfe3e7;
    border-radius: 8px;
    background: #f4fbfc;
    color: var(--brand-sys);
    font-size: 13px;
    font-weight: 700;
    white-space: nowrap;
}

.increment-example {
    display: grid;
    gap: 10px;
    padding: 14px 16px;
    border: 1px solid #cfe3e7;
    border-radius: 8px;
    background: #f4fbfc;
    color: var(--ink);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.35;
}

.increment-example-summary,
.increment-example-empty {
    margin: 0;
}

.increment-example-summary {
    font-size: 17px;
    font-weight: 800;
}

.increment-example-empty {
    color: var(--muted);
    font-weight: 600;
}

.increment-example-list {
    display: grid;
    gap: 8px;
}

.increment-example-row {
    display: grid;
    grid-template-columns: minmax(140px, 1fr) minmax(150px, auto) minmax(150px, auto);
    gap: 8px;
    align-items: center;
    min-width: 0;
    padding: 10px 12px;
    border: 1px solid rgba(0, 95, 107, 0.12);
    border-radius: 8px;
    background: #fff;
}

.increment-example-row strong,
.increment-example-row span {
    min-width: 0;
    overflow-wrap: anywhere;
}

.increment-example-row span {
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}

.increment-example-row span:last-child {
    color: var(--brand-sys);
}

.increment-source {
    margin: 0;
    word-break: break-word;
}

.payment-detail-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 18px;
    min-height: 0;
}

.payment-detail-main {
    display: grid;
    align-content: start;
    gap: 18px;
    min-width: 0;
}

.payment-detail-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.payment-detail-grid article {
    min-height: 76px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.payment-detail-grid span {
    display: block;
    margin-bottom: 8px;
    color: var(--muted);
    font-size: 14px;
    font-weight: 700;
}

.payment-detail-grid strong {
    color: var(--ink);
    font-size: 20px;
}

.payment-movements-table .payment-balance-row {
    background: #f8fafb;
    font-weight: 700;
}

.payment-movements-table .payment-balance-row:hover {
    background: #f8fafb;
}

.payment-movements-table .payment-balance-amount {
    color: var(--brand-sys);
}

.payment-movements-table .payment-movement-row {
    cursor: pointer;
}

.payment-movements-table .payment-movement-row.is-selected {
    background: #e7f5f7;
}

.payment-movements-table .payment-movement-row.is-selected:hover {
    background: #dff1f4;
}

.payment-movements-table .payment-movement-row:focus-visible {
    outline: 2px solid var(--brand-sys);
    outline-offset: -3px;
}

.payment-preview-panel {
    display: block;
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.payment-preview-panel[hidden] {
    display: none;
}

.payment-register-filter[hidden] {
    display: none !important;
}

.payment-preview-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 16px;
    cursor: pointer;
    list-style: none;
    user-select: none;
}

.payment-preview-header::-webkit-details-marker {
    display: none;
}

.payment-preview-header::after {
    content: "";
    flex: 0 0 auto;
    width: 10px;
    height: 10px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    color: var(--brand-sys);
    transform: rotate(45deg);
    transition: transform 0.18s ease;
}

.payment-preview-panel[open] .payment-preview-header::after {
    transform: rotate(225deg);
}

.payment-preview-kicker {
    display: block;
    margin-bottom: 4px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.payment-preview-header strong {
    display: block;
    max-width: 100%;
    overflow: hidden;
    color: var(--brand-sys);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.payment-pdf-preview {
    display: grid;
    place-items: center;
    min-height: 520px;
    overflow: hidden;
    border-top: 1px solid var(--line);
    background: #f8fafb;
}

.payment-preview-panel:not(.has-pdf) .payment-pdf-preview {
    min-height: 120px;
}

.payment-pdf-preview iframe {
    width: 100%;
    height: 100%;
    min-height: 640px;
    border: 0;
    background: #fff;
}

.payment-editor-form {
    display: grid;
    gap: 16px;
}

.entry-form option.payment-caja-add-option,
html[data-theme="dark"] .entry-form option.payment-caja-add-option {
    background: #bbf7d0;
    color: #14532d;
    font-weight: 800;
}

.payment-caja-modal {
    z-index: 100;
}

.payment-caja-panel {
    align-self: center;
    width: min(440px, 100%);
}

.record-modal.payment-caja-modal {
    align-items: center;
}

.payment-caja-form {
    display: grid;
    gap: 16px;
}

.payment-caja-form label {
    display: grid;
    gap: 8px;
    font-size: 13px;
    font-weight: 800;
}

.payment-caja-form input {
    width: 100%;
}

.payment-caja-form .form-error {
    margin: 0;
    color: var(--danger);
    font-size: 13px;
    font-weight: 700;
}

.payment-editor-summary {
    margin: 0;
}

.payment-lines {
    display: grid;
    gap: 14px;
}

.payment-add-line-row {
    display: flex;
    justify-content: flex-start;
}

.payment-add-button {
    gap: 8px;
}

.payment-line {
    margin: 0;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
}

.payment-line legend {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 6px;
    color: var(--brand-alki);
    font-weight: 800;
}

body.modal-open {
    overflow: hidden;
}

.actions-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 12px;
}

.public-parking-logo {
    width: 72px;
    height: 72px;
    object-fit: contain;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.public-header p,
.public-header small {
    color: var(--muted);
}

.public-page {
    min-height: 100vh;
    background: var(--bg);
}

.public-shell {
    width: min(100%, 960px);
    margin: 0 auto;
    padding: 32px 18px;
}

.public-header {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 18px;
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    box-shadow: var(--shadow-card);
}

.public-header-content {
    min-width: 0;
    width: 100%;
}

.public-title-row {
    display: flex;
    align-items: center;
    min-width: 0;
    gap: 14px;
}

.public-header h1 {
    margin: 2px 0 6px;
    font-size: clamp(28px, 4vw, 42px);
    line-height: 1.08;
    overflow-wrap: anywhere;
}

.public-header p,
.public-header small {
    display: block;
    margin: 0;
}

.public-location-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-top: 2px;
}

.public-location-text {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 8px;
    min-width: 0;
}

.public-location-text small {
    min-width: 0;
}

.public-map-link {
    min-width: 0;
    height: auto;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--accent-blue);
    font: inherit;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
    cursor: pointer;
}

.public-map-link:hover,
.public-map-link:focus-visible {
    background: transparent;
    color: #1d4ed8;
    text-decoration: underline;
}

.public-whatsapp-button {
    flex: 0 0 auto;
    min-height: 38px;
    padding: 0 16px;
}

.public-map-panel {
    display: grid;
    gap: 16px;
}

.public-map-panel .panel-header {
    align-items: center;
}

.public-map-panel .panel-header p {
    margin: 4px 0 0;
    color: var(--muted);
}

.public-map-canvas {
    width: 100%;
    min-height: min(56vh, 520px);
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
}

.public-panel {
    margin-top: 0;
}

.public-owner-preview {
    margin-top: 18px;
}

.public-price-form {
    display: block;
    overflow: visible;
}

.public-price-grid {
    display: grid;
    grid-template-columns: minmax(180px, 0.8fr) repeat(2, minmax(230px, 1fr)) minmax(140px, 0.55fr);
    gap: 12px;
    align-items: end;
    overflow: visible;
}

.public-price-grid label,
.public-price-grid .public-date-time-field {
    display: grid;
    gap: 8px;
    color: #000;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
}

.public-price-grid input,
.public-price-grid select {
    width: 100%;
    min-height: 48px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    padding: 0 14px;
    font-weight: 600;
}

.public-date-time {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 150px;
    gap: 8px;
}

.public-date-time-field {
    min-width: 0;
}

.public-date-time-field > .field-label-line {
    justify-content: space-between;
}

.public-price-grid button {
    min-height: 48px;
    border: 0;
    border-radius: 8px;
    background: var(--brand-alki);
    color: #fff;
    font-weight: 800;
    cursor: pointer;
}

.public-price-result {
    display: grid;
    grid-template-columns: minmax(220px, 0.8fr) minmax(240px, 1fr);
    gap: 18px;
    margin-top: 18px;
}

.public-price-result strong {
    display: block;
    margin: 4px 0;
    color: var(--brand-alki);
    font-size: clamp(34px, 6vw, 56px);
    line-height: 1;
}

.public-price-result span {
    color: var(--muted);
    font-weight: 700;
}

.public-price-summary {
    display: grid;
    align-content: center;
    gap: 7px;
}

.public-price-detail {
    grid-column: 1 / -1;
}

.public-price-detail tr.is-total td {
    border-top: 2px solid rgba(0, 107, 117, 0.36);
    font-weight: 900;
}

.public-price-detail table :is(th, td).public-discount-column {
    border-left: 1px solid rgba(140, 234, 242, 0.34);
    border-right: 1px solid rgba(140, 234, 242, 0.34);
    background: #006f7c !important;
    color: #ffffff !important;
    font-weight: 900;
}

.public-price-detail table tr.is-total .public-discount-column {
    background: #0d7240 !important;
    color: #ffffff !important;
}

.public-page .notice {
    margin-bottom: 16px;
}

.public-page .public-shell {
    width: min(100%, 1180px);
}

.public-site {
    --public-accent: #006b75;
    --public-accent-strong: #004d58;
    --public-bg: #f4f8f7;
    --public-surface: #ffffff;
    --public-soft: #e8f3f1;
    --public-ink: #162229;
    --public-muted: #56646b;
    display: grid;
    gap: 18px;
    color: var(--public-ink);
}

.public-template-urbana {
    --public-accent: #d9a441;
    --public-accent-strong: #8a5b11;
    --public-bg: #15191f;
    --public-surface: #222832;
    --public-soft: #2f3844;
    --public-ink: #f7fafc;
    --public-muted: #c7d1dc;
}

.public-template-mapa {
    --public-accent: #146b4f;
    --public-accent-strong: #0b4a38;
    --public-bg: #eef7f1;
    --public-surface: #ffffff;
    --public-soft: #dcefe5;
    --public-ink: #12251d;
    --public-muted: #4b6659;
}

.public-template-compacta {
    --public-accent: #b93848;
    --public-accent-strong: #8f2634;
    --public-bg: #f8f7f3;
    --public-surface: #ffffff;
    --public-soft: #efe8de;
    --public-ink: #22201d;
    --public-muted: #625d55;
}

.public-site-hero {
    display: grid;
    grid-template-columns: minmax(0, 0.95fr) minmax(360px, 1.05fr);
    gap: 20px;
    align-items: stretch;
    min-height: 520px;
    padding: 22px;
    border: 1px solid color-mix(in srgb, var(--public-accent) 20%, transparent);
    border-radius: 8px;
    background: var(--public-bg);
}

.public-template-compacta .public-site-hero {
    min-height: 420px;
    grid-template-columns: minmax(0, 1fr);
}

.public-template-mapa .public-site-hero {
    grid-template-columns: minmax(320px, 0.76fr) minmax(420px, 1.24fr);
}

.public-site-copy,
.public-site-visual {
    min-width: 0;
}

.public-site-copy {
    display: grid;
    align-content: center;
    gap: 18px;
}

.public-brand-row {
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--public-accent);
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 0;
    text-transform: uppercase;
}

.public-site-copy h1 {
    margin: 0;
    color: var(--public-ink);
    font-size: clamp(38px, 7vw, 72px);
    line-height: 0.98;
    letter-spacing: 0;
    overflow-wrap: anywhere;
}

.public-site-copy p {
    max-width: 620px;
    margin: 0;
    color: var(--public-muted);
    font-size: clamp(16px, 2vw, 21px);
    line-height: 1.45;
}

.public-hero-actions,
.public-contact-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.public-hero-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.public-hero-stats span,
.public-site-grid article,
.public-rate-list article {
    display: grid;
    gap: 4px;
    min-width: 0;
    padding: 14px;
    border: 1px solid color-mix(in srgb, var(--public-accent) 18%, transparent);
    border-radius: 8px;
    background: var(--public-surface);
    color: var(--public-ink);
}

.public-hero-stats strong,
.public-site-grid strong,
.public-rate-list strong {
    color: var(--public-accent);
    font-size: 24px;
    line-height: 1;
}

.public-site-visual {
    min-height: 360px;
    overflow: hidden;
    border-radius: 8px;
    background: var(--public-soft);
}

.public-site-visual img,
.public-hero-map {
    width: 100%;
    height: 100%;
    min-height: 360px;
    object-fit: cover;
}

.public-site-grid,
.public-rate-list {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.public-site-grid span,
.public-rate-list span,
.public-site-contact span,
.public-section-head span {
    color: var(--public-accent);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.public-site-section,
.public-site-contact,
.public-price-result {
    padding: 22px;
    border: 1px solid color-mix(in srgb, var(--public-accent) 16%, transparent);
    border-radius: 8px;
    background: var(--public-surface);
    color: var(--public-ink);
}

.public-section-head {
    display: grid;
    gap: 5px;
    margin-bottom: 16px;
}

.public-section-head h2,
.public-site-contact h2 {
    margin: 0;
    color: var(--public-ink);
    font-size: clamp(26px, 3vw, 38px);
    line-height: 1.05;
}

.public-section-head p,
.public-site-contact p,
.public-rate-list small {
    margin: 0;
    color: var(--public-muted);
}

.public-chip-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.public-chip-list span {
    padding: 10px 13px;
    border: 1px solid color-mix(in srgb, var(--public-accent) 22%, transparent);
    border-radius: 8px;
    background: var(--public-soft);
    color: var(--public-ink);
    font-weight: 800;
}

.public-rates-section {
    display: grid;
    gap: 16px;
}

.public-price-grid {
    grid-template-columns: minmax(180px, 0.8fr) repeat(2, minmax(230px, 1fr)) minmax(140px, 0.55fr);
}

.public-price-grid input,
.public-price-grid select {
    border-color: color-mix(in srgb, var(--public-accent) 24%, var(--line));
}

.public-price-grid button,
.public-site .button:not(.button-neutral) {
    background: var(--public-accent);
}

.public-site .button:not(.button-neutral):hover,
.public-price-grid button:hover {
    background: var(--public-accent-strong);
}

.public-price-result {
    align-items: center;
}

.public-price-result strong {
    color: var(--public-accent);
}

.public-map-panel {
    gap: 14px;
}

.public-site-contact {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 16px;
    align-items: center;
}

.public-template-compacta .public-site-grid,
.public-template-compacta .public-rate-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.public-page-admin-panel {
    display: grid;
    gap: 16px;
}

.public-page-config-form {
    align-items: start;
}

.public-template-picker {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.public-template-option {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    min-height: 112px;
    padding: 13px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    cursor: pointer;
}

.public-template-option.is-selected {
    border-color: var(--brand-alki);
    box-shadow: 0 0 0 2px rgba(0, 107, 117, 0.12);
}

.public-template-option input {
    width: 18px;
    height: 18px;
    margin-top: 2px;
}

.public-page-admin-meta {
    display: flex;
    justify-content: flex-end;
}

.public-page-preview-panel {
    overflow: hidden;
}

.public-page-owner-preview {
    margin-top: 0;
}

.public-page-builder {
    position: relative;
    display: grid;
    gap: 18px;
}

.public-page-form-shell {
    display: grid;
    gap: 18px;
}

.public-builder-hero {
    display: grid;
    grid-template-columns: minmax(0, 0.88fr) minmax(460px, 1fr);
    min-height: 430px;
    overflow: hidden;
    border: 1px solid rgba(0, 107, 117, 0.22);
    border-radius: 8px;
    background: #102329;
    color: #ffffff;
}

.public-builder-copy {
    display: grid;
    align-content: center;
    gap: 18px;
    min-width: 0;
    padding: clamp(24px, 4vw, 44px);
}

.public-builder-copy .eyebrow {
    color: #65c9d4;
}

.public-builder-link-editor {
    display: grid;
    grid-template-columns: minmax(260px, 680px) auto auto auto;
    gap: 12px;
    align-items: end;
}

.public-builder-link-editor label {
    display: grid;
    gap: 8px;
    color: rgba(255, 255, 255, 0.78);
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
}

.public-link-subdomain-field {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    min-height: 58px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 8px;
    background: rgba(5, 15, 18, 0.72);
}

.public-link-subdomain-field input {
    width: 100%;
    min-height: 56px;
    border: 0;
    background: transparent;
    color: #ffffff;
    font-size: 20px;
    font-weight: 900;
}

.public-link-subdomain-field input[readonly] {
    cursor: default;
}

.public-link-subdomain-field input:not([readonly]) {
    background: rgba(255, 255, 255, 0.08);
    outline: 2px solid rgba(138, 231, 239, 0.36);
    outline-offset: -2px;
}

.public-link-subdomain-field > span {
    padding: 0 16px;
    color: #8ae7ef;
    font-size: 18px;
    font-weight: 900;
    white-space: nowrap;
}

.public-link-path-field {
    grid-template-columns: auto minmax(0, 1fr);
}

.public-builder-copy h2 {
    max-width: 720px;
    margin: 0;
    color: #ffffff;
    font-size: clamp(38px, 5vw, 68px);
    line-height: 0.98;
    letter-spacing: 0;
}

.public-builder-copy p:not(.eyebrow) {
    max-width: 660px;
    margin: 0;
    color: rgba(255, 255, 255, 0.78);
    font-size: 18px;
    line-height: 1.45;
}

.public-builder-link-row {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) auto auto;
    gap: 10px;
    align-items: center;
}

.public-builder-link-row input {
    min-height: 50px;
    border: 1px solid rgba(255, 255, 255, 0.28);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.1);
    color: #ffffff;
    padding: 0 14px;
    font-weight: 800;
}

.public-builder-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.public-builder-stats span {
    display: grid;
    gap: 4px;
    padding: 14px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.09);
    color: rgba(255, 255, 255, 0.76);
    font-weight: 700;
}

.public-builder-stats strong {
    color: #ffffff;
    font-size: 30px;
    line-height: 1;
}

.public-builder-image {
    min-width: 0;
    min-height: 430px;
    position: relative;
}

.public-builder-image::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(16, 35, 41, 0.55), rgba(16, 35, 41, 0));
    pointer-events: none;
}

.public-builder-image img {
    width: 100%;
    height: 100%;
    min-height: 430px;
    object-fit: cover;
}

.public-page-builder-parking .public-builder-hero {
    grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.58fr);
    min-height: 0;
    background:
        radial-gradient(circle at 12% 12%, rgba(101, 201, 212, 0.18), transparent 34%),
        linear-gradient(135deg, #0b242a 0%, #102f35 56%, #172f2d 100%);
}

.public-page-builder-parking .public-builder-copy {
    padding: clamp(24px, 3vw, 38px);
}

.public-builder-share {
    display: grid;
    align-content: center;
    gap: 14px;
    min-width: 0;
    padding: clamp(18px, 2.5vw, 28px);
    border-left: 1px solid rgba(255, 255, 255, 0.12);
    background: rgba(4, 15, 19, 0.28);
}

.public-builder-qr-section {
    display: grid;
    gap: 12px;
    justify-items: start;
}

.public-builder-qr-section .public-link-qr-title {
    color: #8ae7ef;
}

.public-builder-qr-section .public-link-qr-frame {
    width: min(100%, 220px);
    padding: 14px;
    border-radius: 8px;
    background: #ffffff;
}

.public-builder-qr-section .public-link-qr {
    width: 100%;
}

.public-builder-qr-section .actions-row {
    justify-content: flex-start;
}

.public-builder-share .public-builder-data {
    border-color: rgba(255, 255, 255, 0.16);
    background: rgba(255, 255, 255, 0.08);
}

.public-builder-share .public-builder-data span {
    color: #8ae7ef;
}

.public-builder-share .public-builder-data strong {
    color: #ffffff;
}

.public-builder-share .public-builder-data small {
    color: rgba(255, 255, 255, 0.78);
}

.public-builder-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 380px);
    gap: 18px;
    align-items: start;
}

.public-page-builder-parking .public-builder-grid {
    grid-template-columns: minmax(0, 1fr);
}

.public-builder-panel-header {
    padding-bottom: 0;
}

.public-page-config-form {
    grid-template-columns: minmax(240px, 1fr) minmax(240px, 0.85fr) minmax(320px, 1.2fr);
    gap: 16px;
}

.public-page-config-form > .public-config-disclosure {
    grid-column: 1 / -1;
}

.public-page-config-fields {
    display: grid;
    grid-column: 1 / -1;
    gap: 16px;
    min-width: 0;
}

.public-page-config-fields > .public-config-disclosure {
    grid-column: 1 / -1;
}

.public-page-config-form .public-template-picker {
    grid-column: 1 / -1;
}

.public-page-owner-preview:not(.is-public-preview-ready) [data-public-template-stage] > .public-site > [data-public-block]:not([data-public-block~="portada"]) {
    display: none !important;
}

.public-config-disclosure {
    display: grid;
    gap: 14px;
    padding: 0;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #ffffff;
    overflow: hidden;
}

.public-config-disclosure > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 56px;
    padding: 0 16px;
    color: var(--ink);
    font-size: 16px;
    font-weight: 900;
    cursor: pointer;
    list-style: none;
}

.public-config-disclosure > summary::-webkit-details-marker {
    display: none;
}

.public-config-disclosure > summary::after {
    content: "+";
    display: inline-grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border-radius: 8px;
    background: #edf7f8;
    color: var(--brand-alki);
    font-size: 20px;
    line-height: 1;
}

.public-config-disclosure > .collapsible-summary::after {
    content: none;
    display: none;
}

.public-config-disclosure[open] > summary {
    border-bottom: 1px solid var(--line);
}

.public-config-disclosure[open] > summary::after {
    content: "-";
}

.public-config-disclosure[open] > .collapsible-summary {
    border-bottom: 0;
}

.public-config-disclosure > :not(summary) {
    margin: 16px;
}

.public-page-config-form > button[type="submit"] {
    grid-column: 1 / -1;
    justify-self: end;
    width: min(100%, 448px);
    min-width: 220px;
}

.public-page-config-form textarea {
    min-height: 150px;
    resize: vertical;
}

.public-char-counter {
    justify-self: end;
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
}

.public-page-config-form textarea.is-over-limit {
    border-color: #c63d45;
}

.public-template-picker {
    grid-template-columns: repeat(3, minmax(180px, 1fr));
    gap: 12px;
}

.public-template-option {
    --template-accent: #6fd4e5;
    --template-shadow: rgba(13, 74, 81, 0.18);
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr) auto;
    align-items: stretch;
    height: 100%;
    box-sizing: border-box;
    min-height: 310px;
    gap: 12px;
    padding: 14px;
    overflow: hidden;
    cursor: default;
    text-transform: none;
}

.public-template-option > .public-template-choice {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr);
    grid-template-rows: auto auto;
    gap: 12px;
    min-width: 0;
    color: inherit;
    cursor: pointer;
    text-transform: none;
}

.public-template-option input {
    grid-row: 2;
}

.public-template-choice > .public-template-real-thumbnail {
    display: block;
    grid-column: 1 / -1;
    gap: 0;
}

.public-template-preview {
    grid-column: 1 / -1;
    position: relative;
    width: 100%;
    min-height: 0;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--template-accent) 45%, transparent);
    border-radius: 8px;
    background: #071114;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.16), 0 14px 28px var(--template-shadow);
}

.public-template-preview-sheet {
    position: absolute;
    inset: 0;
    opacity: 0;
    visibility: hidden;
    transition: opacity 240ms ease;
}

.public-template-preview-sheet.is-active {
    opacity: 1;
    visibility: visible;
}

.public-template-preview-sheet > img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.public-template-preview-pagination {
    position: absolute;
    z-index: 2;
    right: 8px;
    bottom: 8px;
    display: inline-flex;
    align-items: center;
    max-width: calc(100% - 16px);
    padding: 5px 8px;
    border: 1px solid rgba(255, 255, 255, 0.28);
    border-radius: 999px;
    background: rgba(3, 14, 18, 0.82);
    color: #ffffff;
    font-size: 10px;
    line-height: 1;
    box-shadow: 0 5px 14px rgba(0, 0, 0, 0.22);
    backdrop-filter: blur(5px);
    opacity: 0;
    visibility: hidden;
    transform: translateY(3px);
    pointer-events: none;
    transition: opacity 160ms ease, transform 160ms ease, visibility 160ms ease;
}

.public-template-preview.is-preview-active .public-template-preview-pagination {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
    .public-template-preview-sheet {
        transition: none;
    }
}

.public-template-option-clasica {
    --template-accent: #6ed7e8;
    --template-shadow: rgba(15, 92, 99, 0.2);
}

.public-template-option-urbana {
    --template-accent: #f2c35f;
    --template-shadow: rgba(122, 45, 22, 0.22);
}

.public-template-option-mapa {
    --template-accent: #b8fff5;
    --template-shadow: rgba(54, 184, 176, 0.2);
}

.public-template-option-compacta {
    --template-accent: #ff9dab;
    --template-shadow: rgba(189, 90, 106, 0.18);
}

.public-template-option-nocturna {
    --template-accent: #56c6ff;
    --template-shadow: rgba(16, 45, 107, 0.24);
}

.public-template-option-coral {
    --template-accent: #f2b35f;
    --template-shadow: rgba(143, 61, 33, 0.2);
}

.public-template-copy {
    grid-column: 2;
    grid-row: 2;
    display: grid;
    gap: 6px;
    min-width: 0;
}

.public-template-copy strong {
    color: var(--ink);
    font-size: 15px;
    line-height: 1.15;
    text-transform: none;
}

.public-template-copy small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.35;
    text-transform: none;
}

.public-template-visualize {
    justify-self: stretch;
    width: 100%;
    min-height: 42px;
    margin-top: auto;
}

.public-block-picker {
    display: grid;
    grid-column: 1 / -1;
    gap: 12px;
}

.public-block-builder {
    display: grid;
    grid-column: 1 / -1;
    gap: 14px;
}

.public-block-sequence {
    display: grid;
    gap: 10px;
}

.public-block-picker-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.public-block-picker-head strong {
    color: var(--ink);
    font-size: 15px;
}

.public-block-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(150px, 1fr));
    gap: 10px;
}

.public-block-fixed-row,
.public-block-order-list {
    display: grid;
    gap: 10px;
}

.public-block-option {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    min-height: 118px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #ffffff;
    cursor: pointer;
    text-transform: none;
}

.public-block-option.is-enabled {
    border-color: var(--line);
    background: #ffffff;
    box-shadow: none;
}

.public-block-option.is-disabled {
    background: #f4f7f7;
    opacity: 0.72;
}

.public-block-option.is-editing {
    border-color: #22b8c7;
    background: #087985;
    opacity: 1;
    box-shadow: 0 0 0 3px rgba(34, 184, 199, 0.18);
}

.public-block-option.is-editing :is(strong, small),
.public-block-option.is-editing .public-block-fixed-label,
.public-block-option.is-editing .public-block-drag-hint {
    color: #ffffff;
}

.public-block-option.is-editing .public-block-number {
    background: #8ae7ef;
    color: #07343a;
}

.public-block-builder .public-block-option {
    grid-template-columns: 58px minmax(0, 1fr) auto;
    align-items: center;
    min-height: 74px;
    padding: 12px 16px;
    cursor: pointer;
    user-select: none;
}

.public-block-option-fixed {
    cursor: pointer;
}

.public-block-builder .public-block-option-fixed {
    grid-template-columns: 58px minmax(0, 1fr) auto;
}

.public-block-option[draggable="true"] {
    cursor: grab;
}

.public-block-option[draggable="true"]:active,
.public-block-option.is-dragging {
    cursor: grabbing;
}

.public-block-option.is-dragging {
    opacity: 0.54;
    transform: scale(0.99);
}

.public-block-number {
    display: inline-grid;
    place-items: center;
    min-width: 42px;
    height: 42px;
    padding: 0 8px;
    border-radius: 8px;
    background: #e3eef0;
    color: #31565f;
    font-size: 14px;
    font-weight: 900;
    line-height: 1;
    text-align: center;
}

.public-block-option.is-disabled .public-block-number {
    background: #d8e4e6;
    color: #53666d;
    font-size: 11px;
}

.public-block-copy {
    display: grid;
    gap: 5px;
    min-width: 0;
}

.public-block-drag-hint,
.public-block-fixed-label {
    justify-self: end;
    padding: 8px 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
    text-transform: uppercase;
}

.public-block-drag-hint {
    color: var(--brand-alki);
}

.public-block-option:focus-visible {
    outline: 3px solid rgba(34, 184, 199, 0.28);
    outline-offset: 2px;
}

.public-block-visibility-toggle {
    display: inline-grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 10px;
    align-items: center;
    justify-self: start;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #ffffff;
    color: var(--ink);
    font-weight: 900;
    cursor: pointer;
}

.public-block-visibility-toggle input {
    width: 18px;
    height: 18px;
    margin: 0;
}

.public-block-option input {
    width: 18px;
    height: 18px;
    margin-top: 2px;
}

.public-block-option strong {
    color: var(--ink);
    font-size: 14px;
    line-height: 1.15;
}

.public-block-option small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.35;
}

.public-block-order-controls {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-self: end;
}

.public-block-order-controls .mini-button {
    min-height: 34px;
    padding: 7px 10px;
    border-radius: 8px;
    line-height: 1;
}

.public-block-editors {
    display: grid;
    gap: 12px;
}

.public-block-editor {
    display: grid;
    grid-column: 1 / -1;
    gap: 14px;
    margin: 0 0 4px;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #f8fbfb;
}

.public-block-editor[hidden] {
    display: none;
}

.public-block-editor > summary {
    display: none;
}

.public-block-editor h3 {
    margin: 0;
    color: var(--ink);
    font-size: 20px;
    line-height: 1.15;
}

.public-block-editor p {
    max-width: 720px;
    margin: 0;
    color: var(--muted);
    font-weight: 700;
    line-height: 1.45;
}

.public-block-editor-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.public-block-editor-grid .span-2 {
    grid-column: 1 / -1;
}

.public-block-example-slot {
    grid-column: 1 / -1;
    display: grid;
    min-width: 0;
    overflow: hidden;
    border-radius: 8px;
}

.public-block-example-slot.has-inline-preview {
    margin-top: 4px;
}

.public-block-inline-preview.public-page-owner-preview {
    margin: 0;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 16px 36px rgba(7, 31, 36, 0.1);
}

.public-block-editor-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}

.public-block-save-button {
    min-width: 160px;
}

.public-block-inline-preview [data-public-template-stage] {
    display: block;
}

.public-block-inline-preview [data-public-template-stage] > .public-site {
    min-height: 0;
}

.public-block-inline-preview .public-design-banner {
    min-height: 76px;
    padding: 16px 24px;
}

.public-block-inline-preview .public-design-banner h2 {
    font-size: clamp(22px, 2.4vw, 30px);
}

.public-block-inline-preview .public-design :is(.visual-footer, .urban-footer, .map-footer, .direct-footer) {
    padding: 24px 24px 14px;
}

.public-block-inline-preview .public-footer-grid {
    gap: 22px;
}

.public-block-inline-preview .public-footer-logo-row strong {
    font-size: 32px;
}

.public-footer-social-editor {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.public-blog-editor-items {
    display: grid;
    gap: 14px;
}

.public-blog-top-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.public-blog-entry-selector {
    display: grid;
    gap: 12px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: rgba(0, 107, 117, 0.06);
}

.public-blog-entry-selector > strong {
    color: var(--ink);
    font-size: 13px;
    text-transform: uppercase;
}

.public-blog-entry-selector select {
    width: 100%;
    min-height: 52px;
}

.public-blog-selector-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 10px;
}

.public-blog-selector-option {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    width: 100%;
    min-height: 64px;
    padding: 8px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    color: var(--ink);
    text-align: left;
    cursor: pointer;
}

.public-blog-selector-option.is-active {
    border-color: var(--brand-alki);
    background: rgba(0, 107, 117, 0.12);
    box-shadow: 0 0 0 2px rgba(0, 107, 117, 0.14);
}

.public-blog-selector-option img,
.public-blog-selector-thumb {
    width: 56px;
    min-width: 56px;
    aspect-ratio: 1 / 1;
    border-radius: 6px;
    background: rgba(0, 107, 117, 0.12);
    object-fit: cover;
}

.public-blog-selector-option > span:last-child {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.public-blog-selector-option strong,
.public-blog-selector-option small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.public-blog-selector-option strong {
    color: inherit;
    font-size: 14px;
    line-height: 1.2;
}

.public-blog-selector-option small,
.public-blog-entry-selector > small {
    color: var(--muted);
    font-weight: 800;
}

.public-blog-editor-item {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    color: var(--ink);
}

.public-blog-editor-item-head {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.public-blog-editor-item-head strong {
    color: var(--ink);
    font-size: 15px;
}

.public-blog-block-list {
    display: grid;
    gap: 12px;
}

.public-blog-block {
    display: grid;
    gap: 10px;
    padding: 12px;
    border: 1px solid rgba(0, 107, 117, 0.24);
    border-radius: 8px;
    background: rgba(0, 107, 117, 0.06);
}

.public-blog-block-head,
.public-blog-block-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.public-blog-block-head strong {
    color: var(--ink);
    font-size: 13px;
    text-transform: uppercase;
}

.public-blog-block-actions {
    justify-content: flex-start;
}

.public-blog-character-counter {
    display: inline-flex;
    width: fit-content;
    padding: 7px 10px;
    border: 1px solid rgba(240, 82, 92, 0.5);
    border-radius: 8px;
    color: #ff5d68;
    font-size: 13px;
    font-weight: 900;
}

.public-blog-character-counter[hidden] {
    display: none;
}

.public-blog-image-field .public-image-upload-control {
    align-items: start;
    gap: 12px;
}

.public-blog-image-field .logo-file-upload {
    width: min(100%, 220px);
    flex: 0 0 auto;
}

.public-blog-image-field .public-image-upload-preview {
    aspect-ratio: 16 / 9;
}

.public-blog-text-field {
    display: grid;
    gap: 8px;
    align-content: start;
}

.public-blog-format-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.public-blog-format-button {
    display: inline-grid;
    place-items: center;
    width: 34px;
    height: 32px;
    border: 1px solid rgba(0, 107, 117, 0.35);
    border-radius: 6px;
    background: rgba(0, 107, 117, 0.1);
    color: var(--ink);
    font-size: 14px;
    font-weight: 900;
    cursor: pointer;
}

.public-blog-format-button:hover,
.public-blog-format-button:focus-visible {
    border-color: var(--brand-alki);
    background: rgba(0, 107, 117, 0.18);
    outline: none;
}

.public-blog-editor textarea[name^="pagina_web_blog_texto"] {
    min-height: 132px;
}

.public-blog-add-button {
    justify-self: start;
}

.public-comments-editor {
    display: grid;
    gap: 14px;
}

.public-comments-toolbar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}

.public-comments-toolbar > small {
    color: var(--muted);
    font-weight: 700;
}

.public-comment-add-button {
    display: inline-grid;
    place-items: center;
    width: 42px;
    min-width: 42px;
    height: 42px;
    aspect-ratio: 1;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--brand-alki);
    color: #fff;
    font-size: 28px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 8px 18px rgba(0, 107, 117, 0.2);
}

.public-comment-add-button:hover,
.public-comment-add-button:focus-visible {
    filter: brightness(1.08);
    outline: 3px solid rgba(0, 107, 117, 0.2);
    outline-offset: 2px;
}

.public-comments-view-all-button {
    min-height: 42px;
}

.public-comments-table-wrap {
    width: 100%;
    overflow-x: auto;
    border: 1px solid var(--line);
    border-radius: 8px;
}

.public-comments-table {
    width: 100%;
    min-width: 880px;
    border-collapse: collapse;
    table-layout: fixed;
}

.public-comments-table th,
.public-comments-table td {
    padding: 12px 14px;
    border-bottom: 1px solid var(--line);
    text-align: left;
    vertical-align: middle;
}

.public-comments-table th {
    background: color-mix(in srgb, var(--surface) 88%, var(--brand-alki) 12%);
    color: var(--ink);
    font-size: 12px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.public-comments-table th:nth-child(1) {
    width: 17%;
}

.public-comments-table th:nth-child(2) {
    width: 42%;
}

.public-comments-table th:nth-child(3) {
    width: 16%;
}

.public-comments-table th:nth-child(4) {
    width: 9%;
    text-align: center;
}

.public-comments-table th:nth-child(5) {
    width: 16%;
}

.public-comments-table tbody tr:last-child td {
    border-bottom: 0;
}

.public-comment-text-cell {
    overflow-wrap: anywhere;
    white-space: normal;
    line-height: 1.45;
}

.public-comment-country {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.public-comment-country img {
    width: 26px;
    height: 18px;
    flex: 0 0 auto;
    border: 1px solid rgba(0, 0, 0, 0.12);
    border-radius: 3px;
    object-fit: cover;
}

.public-comment-visible-check {
    display: grid;
    place-items: center;
    margin: 0;
}

.public-comment-visible-check input {
    width: 20px;
    height: 20px;
    margin: 0;
    accent-color: var(--brand-alki);
    cursor: pointer;
}

.public-comment-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: center;
    gap: 8px;
}

.public-comment-actions .mini-button {
    min-width: 0;
    width: 100%;
    height: 42px;
    padding: 0 10px;
}

.public-comment-modal-panel {
    width: min(760px, 100%);
}

.public-comment-modal-form {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.public-comment-modal-form .nationality-picker,
.public-comment-modal-form .country-picker-button {
    width: 100%;
}

.public-comment-country-field {
    display: grid;
    min-width: 0;
    gap: 6px;
    color: #000000;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;
    text-transform: uppercase;
}

html[data-theme="dark"] .public-comment-country-field {
    color: var(--muted);
}

.public-comment-modal-form textarea {
    min-height: 142px;
    resize: vertical;
}

.public-comment-modal-visible {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
}

.public-comment-modal-visible input {
    width: 20px;
    height: 20px;
    margin: 0;
    accent-color: var(--brand-alki);
}

.public-comments-all-panel {
    width: min(1180px, 100%);
    max-height: min(90vh, 860px);
}

.public-comments-table-wrap-all {
    max-height: min(62vh, 620px);
    overflow: auto;
}

.public-comments-table-wrap-all thead {
    position: sticky;
    top: 0;
    z-index: 1;
}

.public-comment-counter {
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
}

.public-comment-counter.is-warning {
    color: #ff6b75;
}

.country-picker [data-country-selected-name].is-placeholder {
    color: var(--muted);
    font-weight: 600;
}

@media (max-width: 700px) {
    .public-comment-modal-form {
        grid-template-columns: minmax(0, 1fr);
    }

    .public-comment-modal-form > .span-2 {
        grid-column: auto;
    }

    .public-comments-toolbar > small {
        width: 100%;
    }
}

.public-block-editor[data-public-block-editor="portada"] label:has([name="pagina_web_titulo"]),
.public-block-editor[data-public-block-editor="portada"] label:has([name="pagina_web_subtitulo"]),
.public-block-editor[data-public-block-editor="portada"] label:has([name="pagina_web_cta_principal"]),
.public-block-editor[data-public-block-editor="portada"] label:has([name="pagina_web_cta_secundaria"]),
.public-block-editor[data-public-block-editor="precio_disponibilidad"] .public-block-visibility-toggle {
    display: none;
}

.public-block-editor[data-public-block-editor="mapa"] .public-block-visibility-toggle {
    display: none;
}

.public-block-editor[data-public-block-editor="portada"] label:has([name="pagina_web_imagen_hero"]) .public-image-upload-control {
    align-items: start;
    gap: 12px;
}

.public-block-editor[data-public-block-editor="portada"] label:has([name="pagina_web_imagen_hero"]) .logo-file-upload {
    width: min(100%, 220px);
    flex: 0 0 auto;
}

.public-block-editor textarea[name="pagina_web_descripcion"] {
    min-height: 112px;
}

.public-block-editor textarea[name="pagina_web_precio_titulo"] {
    min-height: 86px;
}

.public-mars-merged-fields {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(260px, 0.9fr);
    gap: 14px;
    align-items: start;
    padding: 14px;
    border: 1px solid rgba(232, 111, 50, 0.42);
    border-radius: 8px;
    background: rgba(232, 111, 50, 0.08);
}

.public-mars-merged-fields[hidden] {
    display: none;
}

.public-calculation-vehicle-picker,
.public-price-period-picker {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    border: 0;
}

.public-calculation-vehicle-picker legend,
.public-price-period-picker legend {
    margin-bottom: 2px;
    color: var(--ink);
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
}

.public-block-editor[data-public-block-editor="calculo"] .public-calculation-vehicle-picker legend {
    margin-bottom: 6px;
    line-height: 1.35;
}

.public-calculation-vehicle-options,
.public-price-period-options {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.public-calculation-vehicle-check,
.public-price-period-check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    min-width: 118px;
    padding: 0 16px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    color: var(--ink);
    font-weight: 900;
    line-height: 1.2;
    cursor: pointer;
}

.public-calculation-vehicle-check input,
.public-price-period-check input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.public-calculation-vehicle-check:has(input:checked),
.public-price-period-check:has(input:checked) {
    border-color: var(--brand-alki);
    background: var(--brand-alki);
    color: #ffffff;
}

.public-calculation-vehicle-check:has(input:checked) > span {
    color: #ffffff;
}

.public-calculation-discount-preview {
    display: grid;
    gap: 8px;
}

.public-block-editor[data-public-block-editor="calculo"] .public-calculation-discount-preview {
    gap: 10px;
    margin-top: 6px;
}

.public-calculation-discount-preview > strong {
    color: var(--ink);
    font-size: 13px;
    text-transform: uppercase;
}

.public-block-editor[data-public-block-editor="calculo"] .public-calculation-discount-preview > strong {
    line-height: 1.35;
}

.public-block-editor[data-public-block-editor="calculo"] > p {
    margin-top: 6px;
    line-height: 1.55;
}

.public-calculation-discount-preview > div,
.public-footer-social-links-editor {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.public-calculation-discount-preview span,
.public-footer-social-links-editor > div {
    display: inline-grid;
    gap: 4px;
    min-height: 46px;
    padding: 9px 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
}

.public-footer-social-links-editor > div {
    min-width: 180px;
}

.public-footer-social-links-editor span {
    color: var(--ink);
    font-weight: 900;
}

.public-footer-social-links-editor small {
    color: var(--muted);
    font-weight: 800;
}

.public-footer-social-links-editor a {
    color: var(--brand-alki);
    font-weight: 900;
    text-decoration: none;
}

.location-social-section {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    padding: 0;
    border: 0;
    background: transparent;
}

.location-social-section > div {
    grid-column: 1 / -1;
    display: grid;
    gap: 4px;
}

.location-social-section strong {
    color: var(--ink);
    font-size: 16px;
}

.location-social-section small {
    color: var(--muted);
    font-weight: 800;
}

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

.location-social-grid label {
    min-width: 0;
}

.location-social-field {
    display: grid;
    gap: 6px;
}

.location-social-field > input[aria-invalid="true"] {
    border-color: var(--danger);
    box-shadow: 0 0 0 3px rgba(194, 61, 66, 0.12);
}

.variables-shell :is(input:not([type="hidden"]), select, textarea, button)[aria-invalid="true"] {
    border-color: var(--danger);
    box-shadow: 0 0 0 3px rgba(194, 61, 66, 0.14);
}

@media (max-width: 980px) {
    .space-location-list-grid,
    .location-social-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .space-location-list-grid,
    .location-social-grid {
        grid-template-columns: 1fr;
    }
}

.public-builder-side {
    display: grid;
    gap: 18px;
}

.public-builder-side .public-link-qr-section {
    width: 100%;
}

.public-builder-data {
    display: grid;
    gap: 8px;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #f7fbfb;
}

.public-builder-data span {
    color: var(--brand-alki);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.public-builder-data strong {
    color: var(--ink);
    font-size: 22px;
}

.public-builder-data small {
    color: var(--muted);
    font-weight: 700;
}

.public-page-preview-panel {
    padding: 0;
}

.public-page-preview-panel > .panel-header {
    padding: 22px;
}

.public-page-preview-panel[open] > .panel-header {
    margin-bottom: 0;
    padding-bottom: 14px;
}

.public-page-owner-preview {
    padding: 22px;
}

.public-site {
    --public-accent: #006b75;
    --public-accent-strong: #004d58;
    --public-bg: #f3f7f7;
    --public-surface: #ffffff;
    --public-soft: #e2f1ef;
    --public-ink: #142229;
    --public-muted: #53646b;
    gap: 22px;
}

.public-site-hero {
    position: relative;
    grid-template-columns: minmax(0, 0.9fr) minmax(300px, 0.46fr);
    min-height: min(76vh, 720px);
    overflow: hidden;
    padding: clamp(24px, 4vw, 56px);
    border: 0;
    background: #102329;
    color: #ffffff;
}

.public-site-hero-media {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.public-site-hero-media::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(8, 26, 31, 0.92) 0%, rgba(8, 26, 31, 0.72) 42%, rgba(8, 26, 31, 0.22) 100%),
        linear-gradient(0deg, rgba(8, 26, 31, 0.62), rgba(8, 26, 31, 0.08));
}

.public-site-hero-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.public-site-copy,
.public-site-visual {
    position: relative;
    z-index: 1;
}

.public-site-copy {
    align-content: center;
    gap: 20px;
}

.public-brand-row {
    color: #75d6df;
}

.public-site-copy h1 {
    max-width: 760px;
    color: #ffffff;
    font-size: clamp(44px, 7vw, 88px);
}

.public-site-copy p {
    max-width: 620px;
    color: rgba(255, 255, 255, 0.78);
}

.public-site-visual {
    align-self: end;
    display: grid;
    gap: 12px;
    min-height: 0;
    overflow: visible;
    background: transparent;
}

.public-availability-card,
.public-quick-card,
.public-hours-card {
    display: grid;
    gap: 5px;
    padding: 18px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.92);
    color: #17252c;
    box-shadow: 0 20px 46px rgba(0, 0, 0, 0.18);
}

.public-quick-card {
    transform: translateX(-28px);
}

.public-hours-card {
    transform: translateX(-8px);
}

.public-availability-card span,
.public-quick-card span,
.public-hours-card span {
    color: var(--public-accent);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.public-availability-card strong,
.public-quick-card strong,
.public-hours-card strong {
    color: #102329;
    font-size: clamp(28px, 4vw, 46px);
    line-height: 1;
}

.public-hours-card strong {
    font-size: 20px;
    line-height: 1.25;
}

.public-availability-card small,
.public-quick-card small,
.public-hours-card small {
    color: #596970;
    font-weight: 700;
}

.public-hero-stats span {
    border-color: rgba(255, 255, 255, 0.16);
    background: rgba(255, 255, 255, 0.1);
    color: rgba(255, 255, 255, 0.76);
}

.public-hero-stats strong {
    color: #ffffff;
}

.public-site-grid article,
.public-rate-list article,
.public-site-section,
.public-site-contact,
.public-price-result {
    box-shadow: 0 16px 38px rgba(15, 35, 41, 0.08);
}

.payment-return-page {
    min-height: 100vh;
    background: var(--surface-soft);
}

.payment-return {
    display: grid;
    place-items: center;
    min-height: 100vh;
    padding: 24px;
}

.account-payment {
    display: grid;
    place-items: center;
    min-height: 100vh;
    padding: 24px;
}

.payment-return > img {
    width: min(220px, 64vw);
    margin-bottom: 18px;
}

.account-payment > img {
    width: min(220px, 64vw);
    margin-bottom: 18px;
}

.payment-return-panel {
    width: min(560px, 100%);
}

.account-payment-panel {
    width: min(640px, 100%);
    border-top: 5px solid var(--accent-amber);
}

.account-payment-panel.tone-vencida {
    border-top-color: var(--danger);
}

.account-payment-panel.tone-pagada,
.account-payment-panel.tone-gratis,
.account-payment-panel.tone-bonificada {
    border-top-color: var(--positive);
}

.payment-return-panel h1 {
    margin: 0 0 12px;
    font-size: clamp(1.8rem, 4vw, 2.4rem);
}

.account-payment-panel h1 {
    margin: 0 0 12px;
    font-size: clamp(1.9rem, 4vw, 2.7rem);
    line-height: 1.05;
}

.account-payment-message {
    max-width: 56ch;
    margin: 0;
    color: var(--muted);
    font-size: 1rem;
}

.account-payment form {
    margin: 0;
}

.service-config-form {
    display: grid;
    gap: 12px;
    margin: 18px 0;
    padding: 14px;
    border: 1px solid rgba(183, 121, 31, 0.28);
    border-radius: 8px;
    background: #fffaf1;
}

.service-config-form p {
    margin: 0;
    color: var(--muted);
}

.service-config-form .service-config-title {
    color: var(--ink);
    font-size: 1rem;
    font-weight: var(--font-semibold);
}

.service-config-grid {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) minmax(110px, 140px) minmax(120px, 150px);
    gap: 10px;
}

.service-config-form label {
    display: grid;
    gap: 6px;
    color: var(--muted);
    font-size: 12px;
    font-weight: var(--font-semibold);
    text-transform: uppercase;
}

.service-config-form input,
.service-config-form select {
    width: 100%;
    height: 42px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    padding: 0 12px;
    text-transform: none;
}

.payment-return-data {
    display: grid;
    gap: 8px;
    margin: 18px 0;
}

.payment-return-data div {
    display: grid;
    gap: 4px;
}

.payment-return-data dt {
    color: var(--muted);
    font-size: 0.78rem;
    font-weight: var(--font-semibold);
    text-transform: uppercase;
}

.payment-return-data dd {
    margin: 0;
    overflow-wrap: anywhere;
    color: var(--ink);
    font-weight: var(--font-semibold);
}

.account-settings-tabs {
    margin: 0 0 16px;
}

.account-settings-shell {
    display: grid;
    gap: 16px;
}

.account-settings-panel {
    padding: 0;
    overflow: hidden;
}

.account-settings-panel[hidden] {
    display: none !important;
}

.account-settings-panel-header {
    margin: 0;
    padding: 18px 20px;
    border-bottom: 1px solid var(--line);
}

.account-settings-panel-header h2 {
    margin: 0;
    color: var(--ink);
    font-size: 24px;
    line-height: 1.15;
}

.account-settings-form,
.account-fiscal-form {
    padding: 18px 20px 20px;
}

.account-settings-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 16px;
}

.account-settings-form label,
.account-fiscal-row label {
    display: grid;
    gap: 7px;
    min-width: 0;
}

.account-settings-form input,
.account-settings-form select,
.account-settings-form textarea,
.account-fiscal-row input,
.account-fiscal-row select,
.account-fiscal-row textarea {
    width: 100%;
    min-width: 0;
    height: 42px;
    padding: 0 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    font: inherit;
    font-weight: 600;
}

.account-settings-form textarea,
.account-fiscal-row textarea {
    min-height: 86px;
    padding: 10px 12px;
    resize: vertical;
}

.account-settings-form input:focus,
.account-settings-form select:focus,
.account-settings-form textarea:focus,
.account-fiscal-row input:focus,
.account-fiscal-row select:focus,
.account-fiscal-row textarea:focus {
    border-color: var(--brand-alki);
    outline: 3px solid rgba(0, 95, 107, 0.14);
}

.account-settings-form input[readonly] {
    background: var(--surface-soft);
    color: var(--muted);
}

.account-fiscal-form {
    display: grid;
    gap: 14px;
}

.account-fiscal-list {
    display: grid;
    gap: 14px;
}

.account-fiscal-row {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px 16px;
    align-items: end;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
}

.account-settings-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}

.account-settings-form .span-2,
.account-fiscal-row .span-2 {
    grid-column: span 2;
}

.account-fiscal-remove {
    align-self: end;
    min-height: 46px;
}

.account-plan-empty {
    min-height: 120px;
    padding: 18px 20px 20px;
}

.account-plan-checkout {
    width: 100%;
    margin: 0;
    padding: 18px 20px 20px;
}

.account-plan-checkout .plan-checkout-layout {
    grid-template-columns: minmax(0, 1fr) minmax(300px, 360px);
    gap: 22px;
}

.account-plan-checkout .plan-picker {
    overflow-x: auto;
}

.account-plan-checkout .plan-picker-row {
    grid-template-columns: minmax(190px, 0.95fr) repeat(5, minmax(120px, 1fr));
    min-width: 980px;
}

.account-plan-checkout .plan-picker-heading span,
.account-plan-checkout .plan-picker-module,
.account-plan-checkout .plan-option {
    min-height: 70px;
    padding: 14px 16px;
}

.account-plan-checkout .plan-picker-module {
    font-size: 16px;
    line-height: 1.25;
}

.account-plan-checkout .plan-option {
    gap: 6px;
}

.account-plan-checkout .plan-option-price {
    min-height: 36px;
}

.account-plan-checkout .plan-summary {
    top: 18px;
    gap: 14px;
    padding: 20px;
}

.account-plan-checkout .plan-summary h2 {
    font-size: clamp(32px, 3vw, 42px);
}

.account-plan-checkout .plan-summary-discounts article {
    border-color: var(--line);
    background: var(--surface-soft);
    color: var(--muted);
}

.account-plan-checkout .plan-summary-discounts article.is-active {
    border-color: #6ac7cf;
    background: var(--brand-alki);
    color: #ffffff;
}

.account-plan-checkout .plan-summary-discounts article span,
.account-plan-checkout .plan-summary-discounts article strong {
    color: inherit;
}

@media (max-width: 1180px) {
    .account-plan-checkout .plan-checkout-layout {
        grid-template-columns: 1fr;
    }

    .account-plan-checkout .plan-summary {
        position: static;
    }
}

html[data-theme="dark"] .app-shell .account-fiscal-row {
    border-color: #5e737c;
    background: #172126;
}

html[data-theme="dark"] .app-shell .account-settings-panel {
    border-color: #425760;
    background: #202a2f;
}

html[data-theme="dark"] .app-shell .account-plan-checkout :is(.plan-picker, .plan-summary) {
    border-color: var(--line-strong);
    background: #172126;
    box-shadow: none;
}

html[data-theme="dark"] .app-shell .account-plan-checkout .plan-picker-row {
    border-top-color: var(--line-strong);
}

html[data-theme="dark"] .app-shell .account-plan-checkout .plan-picker-heading {
    background: #111a1e;
}

html[data-theme="dark"] .app-shell .account-plan-checkout :is(.plan-picker-heading span, .plan-picker-module, .plan-option) {
    border-left-color: var(--line-strong);
}

html[data-theme="dark"] .app-shell .account-plan-checkout .plan-option {
    background: #121a1e;
}

html[data-theme="dark"] .app-shell .account-plan-checkout .plan-option:has(input:checked) {
    background: rgba(0, 127, 143, 0.24);
}

html[data-theme="dark"] .app-shell .account-plan-checkout :is(.plan-picker-module, .plan-option span, .plan-price-current, .plan-summary h2, .plan-summary dd, .plan-summary dt small) {
    color: var(--ink);
}

html[data-theme="dark"] .app-shell .account-plan-checkout :is(.plan-option small, .plan-summary dt) {
    color: var(--muted);
}

html[data-theme="dark"] .app-shell .account-plan-checkout .plan-summary-discounts article {
    border-color: var(--line-strong);
    background: #121a1e;
    color: var(--muted);
}

html[data-theme="dark"] .app-shell .account-plan-checkout .plan-summary-discounts article.is-active {
    border-color: #6ac7cf;
    background: var(--brand-alki);
    color: #ffffff;
}

.calculation-summary {
    display: grid;
    gap: 8px;
    margin-bottom: 12px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
}

.calculation-summary pre {
    margin: 0;
    color: var(--muted);
    font: inherit;
    white-space: pre-wrap;
}

.message-box {
    width: 100%;
    min-height: 220px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    color: var(--ink);
    font: inherit;
    line-height: 1.45;
    resize: vertical;
}

.plan-checkout-body {
    min-height: 100vh;
    background: #f6f9f9;
    color: var(--ink);
}

.plan-checkout {
    display: grid;
    gap: 22px;
    width: min(1320px, calc(100% - 32px));
    margin: 0 auto;
    padding: 28px 0 42px;
}

.plan-checkout-head {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 18px;
    align-items: center;
    padding: 22px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: var(--shadow-card);
}

.plan-checkout-brand {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: var(--brand-sys);
    font-family: var(--font-brand);
    font-weight: var(--font-semibold);
}

.plan-checkout-brand .brand-mark {
    width: clamp(58px, 5vw, 70px);
    height: clamp(58px, 5vw, 70px);
    object-fit: contain;
}

.plan-checkout-brand .brand-wordmark {
    width: clamp(190px, 24vw, 290px);
    max-width: 46vw;
    height: auto;
    object-fit: contain;
}

.plan-checkout-head h1 {
    margin: 0;
    font-family: var(--font-title);
    font-size: clamp(18px, 2vw, 23px);
    font-weight: var(--font-semibold);
    line-height: 1.15;
}

.plan-checkout-head p {
    max-width: 760px;
    margin: 8px 0 0;
    color: var(--muted);
    font-size: 16px;
}

.plan-period-toggle {
    display: inline-grid;
    grid-template-columns: repeat(2, minmax(98px, 1fr));
    gap: 3px;
    padding: 3px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--brand-alki-soft);
}

.plan-period-toggle label,
.plan-option {
    cursor: pointer;
}

.plan-period-toggle input,
.plan-option input {
    position: fixed;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.plan-period-toggle span,
.plan-period-toggle label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    border-radius: 6px;
    color: var(--brand-sys);
    font-size: 14px;
    font-weight: var(--font-semibold);
}

.plan-period-toggle label:has(input:checked) {
    background: var(--brand-sys);
    color: #ffffff;
}

.plan-checkout-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 380px);
    gap: 18px;
    align-items: start;
}

.plan-picker,
.plan-summary {
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: var(--shadow-card);
}

.plan-picker {
    overflow: hidden;
}

.plan-picker-row {
    display: grid;
    grid-template-columns: minmax(150px, 0.95fr) repeat(5, minmax(104px, 1fr));
    gap: 0;
    border-top: 1px solid var(--line);
}

.plan-picker-row:first-child {
    border-top: 0;
}

.plan-picker-heading {
    background: var(--brand-sys);
    color: #ffffff;
    font-size: 12px;
    font-weight: var(--font-semibold);
    text-transform: uppercase;
}

.plan-picker-heading span,
.plan-picker-module,
.plan-option {
    min-height: 76px;
    padding: 14px;
    border-left: 1px solid var(--line);
}

.plan-picker-heading span:first-child,
.plan-picker-module {
    border-left: 0;
}

.plan-picker-module {
    display: flex;
    align-items: center;
    color: var(--brand-sys);
    font-size: 18px;
    font-weight: var(--font-semibold);
}

.plan-option {
    display: grid;
    align-content: center;
    gap: 5px;
    background: #ffffff;
}

.plan-option span {
    color: var(--brand-sys);
    font-weight: var(--font-semibold);
}

.plan-option small {
    color: var(--muted);
    font-weight: var(--font-medium);
}

.plan-option-price {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 5px;
}

.plan-price-original {
    color: #8a949b;
    text-decoration: line-through;
}

.plan-price-current {
    color: var(--brand-sys);
}

.plan-price-period {
    font-size: 11px;
}

.plan-option:has(input:checked) {
    background: var(--brand-alki-soft);
    box-shadow: inset 0 0 0 3px var(--brand-alki);
}

.plan-summary {
    position: sticky;
    top: 18px;
    display: grid;
    gap: 16px;
    padding: 22px;
}

.plan-summary-period-toggle {
    justify-self: start;
}

.plan-summary h2 {
    margin: 0;
    font-family: var(--font-title);
    font-size: 38px;
    font-weight: var(--font-semibold);
    line-height: 1;
}

.plan-summary dl {
    display: grid;
    gap: 10px;
    margin: 0;
}

.plan-summary dl div {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--line);
}

.plan-summary dt {
    display: grid;
    gap: 3px;
    color: var(--muted);
    font-weight: var(--font-medium);
}

.plan-summary dt small {
    color: var(--brand-sys);
    font-size: 12px;
    font-weight: var(--font-semibold);
}

.plan-summary dd {
    margin: 0;
    color: var(--brand-sys);
    font-weight: var(--font-semibold);
}

.plan-summary-discounts {
    display: grid;
    gap: 8px;
}

.plan-summary-discounts article {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--brand-sys);
    color: #ffffff;
}

.plan-summary-discounts article.is-active {
    border-color: #6ac7cf;
    background: var(--brand-alki);
}

.plan-summary-discounts span {
    color: rgba(255, 255, 255, 0.82);
    font-size: 12px;
    font-weight: var(--font-semibold);
    text-transform: uppercase;
}

.plan-summary-discounts strong {
    white-space: nowrap;
}

.plan-checkout-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    border-radius: 8px;
    background: var(--brand-alki);
    color: #ffffff;
    font-weight: var(--font-semibold);
}

@media (max-width: 1040px) {
    .plan-checkout-head,
    .plan-checkout-layout {
        grid-template-columns: 1fr;
    }

    .plan-period-toggle {
        justify-self: start;
    }

    .plan-summary {
        position: static;
    }
}

@media (max-width: 760px) {
    .plan-checkout {
        width: min(100% - 24px, 1320px);
        padding-top: 18px;
    }

    .plan-checkout-head {
        padding: 18px;
    }

    .plan-checkout-brand .brand-mark {
        width: 54px;
        height: 54px;
    }

    .plan-checkout-brand .brand-wordmark {
        width: 180px;
        max-width: 54vw;
    }

    .plan-period-toggle {
        width: 100%;
    }

    .plan-picker {
        display: grid;
        gap: 12px;
        border: 0;
        background: transparent;
        box-shadow: none;
    }

    .plan-picker-heading {
        display: none;
    }

    .plan-picker-row {
        grid-template-columns: 1fr;
        overflow: hidden;
        border: 1px solid var(--line);
        border-radius: 8px;
        background: #ffffff;
        box-shadow: var(--shadow-card);
    }

    .plan-picker-module,
    .plan-option {
        min-height: 0;
        border-left: 0;
    }

    .plan-option {
        border-top: 1px solid var(--line);
    }
}

.landing-body {
    min-height: 100vh;
    background: #f6f9f9;
    overflow-x: hidden;
}

.login-body {
    min-height: 100vh;
    background: linear-gradient(180deg, #e8f5f6 0%, #f6fbfb 100%);
}

.login-page {
    position: relative;
    display: grid;
    min-height: 100vh;
    place-items: center;
    padding: 104px 16px 48px;
}

.login-panel {
    display: grid;
    gap: 22px;
    width: min(100%, 480px);
    padding: 36px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fff;
    box-shadow: var(--shadow-lift);
}

.login-panel > .notice {
    margin-top: 0;
}

.login-brand {
    --login-brand-size: 36px;
    position: absolute;
    top: 32px;
    left: clamp(24px, 4vw, 64px);
    display: flex;
    align-items: center;
    gap: 10px;
    width: fit-content;
    color: var(--brand-alki);
}

.login-brand .brand-mark {
    width: var(--login-brand-size);
    height: var(--login-brand-size);
    object-fit: contain;
}

.login-brand .brand-wordmark,
.login-brand strong,
.login-brand small {
    display: block;
}

.login-brand .brand-wordmark {
    width: 118px;
    max-width: 100%;
    height: auto;
    object-fit: contain;
}

.login-brand strong {
    font-family: var(--font-brand);
    font-size: var(--login-brand-size);
    line-height: 1;
}

.login-brand small {
    margin-top: 3px;
    color: var(--muted);
    font-weight: 600;
}

.login-copy {
    display: grid;
    gap: 10px;
}

.login-copy h1 {
    margin: 0;
    color: var(--ink);
    font-family: var(--font-title);
    font-size: 32px;
    font-weight: 600;
    line-height: 1.12;
}

.login-copy p:not(.eyebrow) {
    margin: 0;
    color: var(--muted);
    font-size: 15px;
    line-height: 1.45;
}

.login-form {
    display: grid;
    gap: 13px;
}

.login-help {
    margin: -2px 0 0;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.45;
}

.google-auth-form {
    display: grid;
    gap: 8px;
}

.google-auth-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    min-height: 46px;
    padding: 0 14px;
    border: 1px solid #5f6368;
    border-radius: 999px;
    background: #fff;
    color: var(--ink);
    font-weight: 700;
    cursor: pointer;
}

.google-auth-button:disabled {
    cursor: wait;
    opacity: 0.68;
}

.google-auth-logo {
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
}

.google-auth-status {
    min-height: 17px;
    margin: 0;
    color: var(--muted);
    font-size: 12px;
    font-weight: 600;
}

.google-auth-status.is-error {
    color: var(--danger);
}

.google-auth-status:empty {
    display: none;
}

.login-divider {
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
}

.login-divider::before,
.login-divider::after {
    content: "";
    height: 1px;
    flex: 1;
    background: var(--line);
}

.login-form label {
    display: grid;
    gap: 6px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
}

.login-form input {
    width: 100%;
    height: 44px;
    padding: 0 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    text-transform: none;
}

.password-field {
    position: relative;
    display: block;
}

.login-form .password-field input {
    padding-right: 46px;
}

.login-form .password-toggle {
    position: absolute;
    top: 50%;
    right: 4px;
    display: inline-grid;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 0;
    border-radius: 6px;
    place-items: center;
    transform: translateY(-50%);
    background: transparent;
    color: var(--muted);
    cursor: pointer;
}

.login-form .password-toggle:hover,
.login-form .password-toggle:focus-visible {
    background: rgba(0, 95, 107, 0.08);
    color: var(--brand-alki);
}

.login-form .password-toggle:focus-visible {
    outline: 2px solid var(--brand-alki);
    outline-offset: 1px;
}

.password-toggle svg {
    width: 22px;
    height: 22px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.password-toggle[aria-pressed="true"] .password-toggle-slash {
    display: none;
}

.login-forgot-password {
    width: fit-content;
    margin-top: -2px;
    color: var(--brand-alki);
    font-size: 13px;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.login-forgot-password:hover,
.login-forgot-password:focus-visible,
.login-back:hover,
.login-back:focus-visible {
    color: var(--accent-teal);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.login-forgot-password:focus-visible,
.login-back:focus-visible {
    border-radius: 3px;
    outline: 3px solid rgba(0, 95, 107, 0.14);
    outline-offset: 3px;
}

.login-form input:focus {
    border-color: var(--brand-alki);
    outline: 3px solid rgba(0, 95, 107, 0.14);
}

.login-form > button[type="submit"] {
    height: 44px;
    border: 0;
    border-radius: 8px;
    background: var(--brand-alki);
    color: #fff;
    font-weight: 600;
    cursor: pointer;
}

.login-form > button[type="submit"]:hover,
.login-form > button[type="submit"]:focus-visible {
    background: #004e58;
}

.login-form > button[type="submit"]:focus-visible,
.login-resend-form button:focus-visible {
    outline: 3px solid rgba(0, 95, 107, 0.2);
    outline-offset: 2px;
}

.login-code-input {
    font-size: 20px;
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    letter-spacing: 0.28em;
    text-align: center;
}

.login-resend-form {
    display: grid;
    margin-top: -12px;
}

.login-resend-form button {
    min-height: 42px;
    padding: 0 14px;
    border: 1px solid rgba(0, 95, 107, 0.38);
    border-radius: 8px;
    background: #fff;
    color: var(--brand-alki);
    font-weight: 600;
    cursor: pointer;
}

.login-resend-form button:hover,
.login-resend-form button:focus-visible {
    border-color: var(--brand-alki);
    background: var(--brand-alki-soft);
}

.login-disabled {
    padding: 13px 14px;
    border: 1px solid rgba(194, 61, 66, 0.25);
    border-radius: 8px;
    background: #fff6f6;
    color: var(--danger);
    font-weight: 600;
}

.login-back {
    width: fit-content;
    color: var(--brand-alki);
    font-weight: 600;
}

@media (max-width: 560px) {
    .login-page {
        align-items: start;
        padding: 84px 14px 28px;
    }

    .login-brand {
        --login-brand-size: 30px;
        top: 22px;
        left: 20px;
    }

    .login-panel {
        gap: 19px;
        padding: 26px 22px;
    }

    .login-copy h1 {
        font-size: 28px;
    }

    .login-code-input {
        font-size: 18px;
        letter-spacing: 0.22em;
    }
}

.legal-page {
    display: grid;
    min-height: 100vh;
    padding: 32px 16px;
    place-items: start center;
}

.legal-panel {
    display: grid;
    gap: 24px;
    width: min(100%, 860px);
    padding: clamp(24px, 4vw, 40px);
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    box-shadow: var(--shadow-lift);
}

.legal-head {
    display: grid;
    gap: 10px;
}

.legal-head h1 {
    margin: 0;
    color: var(--ink);
    font-family: var(--font-title);
    font-size: clamp(32px, 5vw, 48px);
    font-weight: 600;
    line-height: 1.05;
}

.legal-head p:not(.eyebrow) {
    max-width: 680px;
    margin: 0;
    color: var(--muted);
    font-size: 17px;
    line-height: 1.55;
}

.legal-content {
    display: grid;
    gap: 22px;
}

.legal-content section {
    display: grid;
    gap: 10px;
}

.legal-content h2 {
    margin: 0;
    color: var(--ink);
    font-family: var(--font-title);
    font-size: 20px;
}

.legal-content ul {
    display: grid;
    gap: 8px;
    margin: 0;
    padding-left: 20px;
    color: var(--muted);
    line-height: 1.55;
}

.legal-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px 24px;
}

.landing-page {
    --muted: #000000;
    --muted-soft: #000000;
    --landing-scale: 0.855;
    --landing-wide: 1800px;
    --landing-wide-half: 900px;
    --landing-page-gutter: 48px;
    --landing-page-gutter-half: 24px;
    --landing-section-pad: 29px;
    --landing-section-inline: max(
        calc(var(--landing-page-gutter-half) + var(--landing-section-pad)),
        calc(50vw - var(--landing-wide-half) + var(--landing-section-pad))
    );
    width: 116.959064%;
    max-width: none;
    min-height: 100vh;
    overflow-x: hidden;
    color: var(--ink);
    zoom: var(--landing-scale);
}

.landing-hero {
    position: relative;
    min-height: 720px;
    overflow: hidden;
    padding: 24px 29px 72px;
    background: linear-gradient(180deg, #e8f5f6 0%, #f6fbfb 100%);
}

.landing-hero::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 0;
    height: 92px;
    background: #ffffff;
    content: "";
}

.landing-nav {
    position: relative;
    z-index: 3;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: 18px 26px;
    width: calc(100% - var(--landing-page-gutter));
    max-width: var(--landing-wide);
    margin: 0 auto;
}

.landing-brand,
.landing-nav-links,
.landing-nav-actions {
    display: flex;
    align-items: center;
}

.landing-brand {
    justify-self: start;
    gap: 14px;
}

.landing-brand > span {
    display: flex;
    align-items: center;
    min-width: 0;
}

.landing-brand .brand-mark {
    width: 46.8px;
    height: 46.8px;
    object-fit: contain;
}

.landing-brand .brand-wordmark {
    display: block;
    width: clamp(150px, 14.4vw, 204px);
    max-width: 28.8vw;
    height: auto;
    object-fit: contain;
}

.landing-brand .brand-wordmark-dark {
    display: none;
}

.landing-nav-links {
    grid-column: 2;
    justify-self: center;
    justify-content: center;
    gap: 16px;
    color: var(--muted);
    font-size: 18px;
    font-weight: 600;
}

.landing-nav-actions {
    grid-column: 3;
    justify-self: end;
    justify-content: flex-end;
    gap: 12px;
}

.landing-nav-menu {
    position: relative;
}

.landing-nav-menu summary {
    list-style: none;
    cursor: pointer;
}

.landing-nav-menu summary::-webkit-details-marker {
    display: none;
}

.landing-nav-menu summary::after {
    display: inline-block;
    margin-left: 6px;
    color: var(--brand-alki);
    content: "▾";
}

.landing-nav-menu > div {
    position: absolute;
    top: calc(100% + 12px);
    left: 0;
    z-index: 20;
    display: grid;
    gap: 4px;
    min-width: 230px;
    padding: 8px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: var(--shadow-lift);
}

.landing-nav-menu > div a {
    padding: 10px 12px;
    border-radius: 8px;
    color: var(--brand-sys);
    white-space: nowrap;
}

.landing-nav-menu > div a:hover {
    background: var(--brand-alki-soft);
    color: var(--brand-alki);
}

.landing-command,
.landing-register,
.landing-primary,
.landing-secondary,
.price-card a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    border-radius: 8px;
    font-family: var(--font-button);
    font-weight: var(--font-semibold);
}

.landing-command {
    padding: 0 15px;
    background: var(--brand-alki);
    color: #fff;
    font-size: 18px;
}

.landing-register {
    padding: 0 15px;
    border: 1px solid var(--line-strong);
    background: #fff;
    color: var(--brand-sys);
    font-size: 18px;
}

.landing-hero-art {
    position: absolute;
    right: max(24px, calc((100vw - var(--landing-wide)) / 2));
    bottom: 116px;
    z-index: 1;
    width: 780px;
    max-width: 50vw;
    height: auto;
}

.landing-hero-copy {
    position: relative;
    z-index: 2;
    width: calc(100% - var(--landing-page-gutter));
    max-width: var(--landing-wide);
    margin: 118px auto 0;
    padding-right: 680px;
}

.landing-hero-copy .eyebrow {
    color: var(--brand-alki);
    max-width: 760px;
    margin-bottom: 18px;
    font-size: 32.4px;
    line-height: 1.08;
}

.landing-hero-copy .eyebrow span {
    display: block;
    white-space: nowrap;
}

.landing-hero-copy h1 {
    margin: 0;
    max-width: 620px;
    font-size: 52.2px;
    font-family: var(--font-title);
    font-weight: 600;
    line-height: 1.02;
    letter-spacing: 0;
}

.landing-hero-copy .landing-brand-title {
    font-family: var(--font-brand);
    font-weight: 600;
}

.landing-hero-copy p:not(.eyebrow) {
    max-width: 690px;
    margin: 18px 0 0;
    color: var(--muted);
    font-size: 16.2px;
    white-space: nowrap;
}

.landing-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 24px;
}

.landing-primary {
    padding: 0 18px;
    background: var(--brand-alki);
    color: #fff;
}

.landing-secondary {
    padding: 0 18px;
    border: 1px solid var(--line-strong);
    background: #ffffff;
    color: var(--brand-sys);
}

.price-pill {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 0 10px;
    border-radius: 999px;
    background: #ffffff;
    color: var(--brand-sys);
    font-size: 12px;
    font-weight: 600;
}

.landing-trust {
    position: relative;
    z-index: 4;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    width: calc(100% - var(--landing-page-gutter));
    max-width: 1500px;
    margin: -24px auto 0;
}

.landing-trust article {
    display: grid;
    align-content: center;
    justify-items: center;
    gap: 10px;
    min-height: 138px;
    padding: 24px 22px 22px;
    text-align: center;
    border: 1px solid rgba(216, 227, 229, 0.88);
    border-top: 5px solid var(--brand-alki);
    border-radius: 8px;
    background: #f7fbfb;
    box-shadow: 0 14px 30px rgba(43, 47, 51, 0.09);
    transform-origin: center bottom;
    will-change: transform, opacity;
}

.landing-trust article:nth-child(1) {
    --scroll-motion-delay: 0.14s;
}

.landing-trust article:nth-child(2) {
    border-top-color: var(--accent-amber);
    background: #fff8ed;
    --scroll-motion-delay: 0.3s;
}

.landing-trust article:nth-child(3) {
    border-top-color: var(--accent-blue);
    background: #f5f8ff;
    --scroll-motion-delay: 0.46s;
}

.landing-trust article:nth-child(4) {
    border-top-color: var(--accent-rose);
    background: #fff6f8;
    --scroll-motion-delay: 0.62s;
}

.landing-trust strong {
    font-size: 22px;
    line-height: 1.15;
    text-align: center;
}

.landing-trust span {
    color: var(--muted);
    font-weight: 600;
    line-height: 1.45;
}

@keyframes landingTrustCardEnter {
    0% {
        opacity: 0;
        transform: translateY(54px) scale(0.92);
        filter: blur(5px);
    }

    68% {
        opacity: 1;
        transform: translateY(-6px) scale(1.01);
        filter: blur(0);
    }

    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
        filter: blur(0);
    }
}

.landing-trust.is-scroll-motion-ready article {
    opacity: 0;
    transform: translateY(54px) scale(0.92);
    filter: blur(5px);
}

.landing-trust.is-scroll-motion-visible article {
    animation: landingTrustCardEnter 1.08s cubic-bezier(0.18, 0.88, 0.24, 1) var(--scroll-motion-delay, 0s) both;
}

.landing-section,
.landing-feature,
.landing-final {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 82px var(--landing-section-inline);
}

.landing-section-head {
    display: grid;
    gap: 8px;
    max-width: 720px;
    margin-bottom: 24px;
}

.landing-benefits .landing-section-head {
    max-width: 1180px;
    margin-bottom: 22px;
}

.landing-benefits {
    padding-bottom: 46px;
}

.landing-benefits .landing-section-head .eyebrow {
    font-size: 15px;
}

.landing-section-head h2,
.feature-copy h2,
.landing-final h2 {
    margin: 0;
    color: var(--ink);
    font-family: var(--font-title);
    font-size: 38px;
    font-weight: 600;
    line-height: 1.08;
    letter-spacing: 0;
}

.landing-section-head p:not(.eyebrow),
.feature-copy p,
.landing-final p:not(.eyebrow) {
    margin: 0;
    color: var(--muted);
    font-size: 17px;
}

.benefit-grid,
.faq-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.benefit-grid article,
.faq-grid article,
.price-card {
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    box-shadow: var(--shadow-card);
}

.benefit-grid article,
.faq-grid article {
    display: grid;
    gap: 10px;
    min-height: 220px;
    padding: 22px;
}

.benefit-grid article {
    position: relative;
    align-content: start;
    gap: 10px;
    min-height: 152px;
    overflow: hidden;
    border-color: rgba(196, 209, 212, 0.72);
    background: linear-gradient(180deg, #ffffff 0%, #f7fbfb 100%);
    box-shadow: 0 10px 24px rgba(43, 47, 51, 0.08);
    padding: 18px 20px 20px;
}

.benefit-grid article::before {
    width: 44px;
    height: 4px;
    border-radius: 999px;
    background: var(--brand-alki);
    content: "";
}

.benefit-grid article:nth-child(2)::before {
    background: var(--accent-teal);
}

.benefit-grid article:nth-child(3)::before {
    background: var(--accent-amber);
}

.benefit-grid article:nth-child(4)::before {
    background: var(--accent-blue);
}

.benefit-grid span {
    color: var(--brand-alki);
    font-size: 13px;
    font-weight: 600;
}

.benefit-grid h3,
.faq-grid h3,
.price-card h3 {
    margin: 0;
    font-family: var(--font-title);
    font-size: 20px;
    font-weight: 600;
    line-height: 1.18;
}

.benefit-grid p,
.faq-grid p {
    margin: 0;
    color: var(--muted);
}

.benefit-grid p {
    font-size: 16px;
    line-height: 1.38;
}

.landing-feature {
    display: grid;
    grid-template-columns: minmax(0, 0.88fr) minmax(360px, 1fr);
    gap: 44px;
    align-items: center;
}

.feature-alt {
    grid-template-columns: minmax(360px, 1fr) minmax(0, 0.88fr);
}

.module-feature {
    position: relative;
    gap: 38px;
    margin-top: 0;
    margin-bottom: 24px;
    overflow: hidden;
    padding-top: 46px;
    padding-bottom: 46px;
    border: 1px solid rgba(196, 209, 212, 0.76);
    border-right: 0;
    border-left: 0;
    border-radius: 0;
    background: linear-gradient(135deg, #ffffff 0%, #f8fbfb 55%, #eef8f8 100%);
    box-shadow: 0 14px 34px rgba(43, 47, 51, 0.07);
}

.module-feature::before {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 6px;
    background: var(--accent-teal);
    content: "";
}

.module-feature-estacionamiento {
    border-color: rgba(183, 121, 31, 0.22);
    background: linear-gradient(135deg, #ffffff 0%, #fffaf2 55%, #f3fbfb 100%);
}

.module-feature-estacionamiento::before {
    background: var(--accent-amber);
}

.module-feature-flota {
    margin-bottom: 20px;
    border-color: rgba(37, 99, 235, 0.18);
    background: linear-gradient(135deg, #ffffff 0%, #f7fbff 55%, #eef8f8 100%);
}

.module-feature-flota::before {
    background: var(--accent-blue);
}

.module-feature-balance {
    margin-bottom: 24px;
}

.landing-feature img {
    width: 100%;
    max-height: 520px;
    object-fit: contain;
}

.module-feature img {
    max-height: 450px;
}

.feature-copy {
    display: grid;
    gap: 14px;
}

.module-feature .feature-copy {
    max-width: 710px;
}

.module-detail-link {
    justify-self: start;
    width: fit-content;
    margin-top: 4px;
    min-height: 52px;
    padding: 0 24px;
    font-size: 16px;
    font-weight: var(--font-semibold);
    box-shadow: 0 14px 28px rgba(0, 95, 107, 0.18);
}

.module-detail-link:hover {
    transform: translateY(-1px);
    box-shadow: 0 14px 24px rgba(0, 95, 107, 0.18);
}

.module-feature-estacionamiento .module-detail-link {
    background: var(--accent-amber);
    box-shadow: 0 10px 20px rgba(183, 121, 31, 0.15);
}

.module-feature-estacionamiento .module-detail-link:hover {
    box-shadow: 0 14px 24px rgba(183, 121, 31, 0.2);
}

.module-feature-flota .module-detail-link {
    background: var(--accent-blue);
    box-shadow: 0 10px 20px rgba(37, 99, 235, 0.14);
}

.module-feature-flota .module-detail-link:hover {
    box-shadow: 0 14px 24px rgba(37, 99, 235, 0.18);
}

.module-feature-balance .module-detail-link {
    background: var(--accent-violet);
    box-shadow: 0 14px 28px rgba(0, 95, 107, 0.18);
}

.module-feature-balance .module-detail-link:hover {
    box-shadow: 0 16px 28px rgba(0, 95, 107, 0.22);
}

.feature-copy ul,
.price-card ul {
    display: grid;
    gap: 9px;
    margin: 4px 0 0;
    padding: 0;
    list-style: none;
}

.feature-copy li,
.price-card li {
    position: relative;
    padding-left: 24px;
    color: var(--muted);
}

.feature-copy li::before,
.price-card li::before {
    position: absolute;
    top: 8px;
    left: 0;
    width: 9px;
    height: 9px;
    border-radius: 999px;
    background: var(--brand-alki);
    content: "";
}

.landing-references {
    max-width: none;
    padding-right: 0;
    padding-left: 0;
    background: #ffffff;
}

.landing-references .landing-section-head {
    width: calc(100% - var(--landing-page-gutter));
    max-width: var(--landing-wide);
    margin-right: auto;
    margin-left: auto;
    padding-right: 58px;
    padding-left: 58px;
}

.references-carousel {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) 44px;
    gap: 12px;
    align-items: center;
    width: calc(100% - var(--landing-page-gutter));
    max-width: var(--landing-wide);
    margin: 0 auto;
    padding: 0 58px;
}

.references-viewport {
    overflow: hidden;
}

.references-track {
    display: flex;
    gap: 14px;
    overflow: visible;
    padding: 2px 0 6px;
    scrollbar-width: none;
    transform: translate3d(0, 0, 0);
}

.references-track::-webkit-scrollbar {
    display: none;
}

.references-track.is-reference-moving {
    pointer-events: none;
    transition: transform 0.42s cubic-bezier(0.42, 0, 0.2, 1);
    will-change: transform;
}

.reference-card {
    position: relative;
    display: grid;
    flex: 0 0 calc((100% - 28px) / 3);
    gap: 10px;
    min-width: 0;
    min-height: 176px;
    padding: 18px 20px 16px;
    overflow: hidden;
    border: 1px solid rgba(196, 209, 212, 0.82);
    border-radius: 8px;
    background: linear-gradient(180deg, #f7fbfa 0%, #f3f8f7 100%);
    box-shadow: 0 10px 22px rgba(43, 47, 51, 0.06);
    cursor: default;
    transition: box-shadow 0.18s ease, border-color 0.18s ease;
}

.reference-card::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 4px;
    background: var(--brand-alki);
    content: "";
}

.reference-card p {
    margin: 0;
    color: var(--ink);
    font-size: 15.5px;
    line-height: 1.45;
    display: block;
    overflow: visible;
}

.reference-card strong {
    align-self: end;
    color: var(--brand-sys);
    font-size: 15.5px;
}

.reference-card > span {
    margin-top: -6px;
    color: var(--muted);
    font-size: 13px;
    font-weight: 600;
}

.reference-location,
.reference-country {
    display: inline-flex;
    align-items: center;
}

.reference-location {
    flex-wrap: wrap;
    gap: 2px 4px;
}

.reference-country {
    gap: 5px;
    white-space: nowrap;
}

.reference-flag {
    display: inline-block;
    flex: 0 0 auto;
    width: 18px;
    height: 12px;
    border-radius: 2px;
    box-shadow: 0 0 0 1px rgba(43, 47, 51, 0.12);
    object-fit: cover;
    vertical-align: -0.08em;
}

.reference-control {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border: 1px solid rgba(0, 95, 107, 0.2);
    border-radius: 999px;
    background: #ffffff;
    color: var(--brand-alki);
    font-size: 30px;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 8px 18px rgba(43, 47, 51, 0.08);
}

.reference-control:disabled {
    cursor: default;
    opacity: 0.36;
}

.landing-pricing {
    max-width: none;
    padding-right: 0;
    padding-left: 0;
    background: var(--brand-sys);
    color: #fff;
    --price-plan-list-min: 150px;
    --price-action-width: min(92%, 218px);
}

.pricing-inner {
    width: calc(100% - var(--landing-page-gutter));
    max-width: var(--landing-wide);
    margin-right: auto;
    margin-left: auto;
}

#pricing-module-inmuebles:checked ~ .pricing-inner {
    --pricing-module-accent: var(--accent-teal);
    --pricing-module-border: #5bb7c0;
    --pricing-module-shadow: rgba(11, 127, 137, 0.2);
}

#pricing-module-estacionamiento:checked ~ .pricing-inner {
    --pricing-module-accent: var(--accent-amber);
    --pricing-module-border: #dfae65;
    --pricing-module-shadow: rgba(183, 121, 31, 0.22);
}

#pricing-module-flota:checked ~ .pricing-inner {
    --pricing-module-accent: var(--accent-blue);
    --pricing-module-border: #86a7f5;
    --pricing-module-shadow: rgba(37, 99, 235, 0.18);
}

.landing-pricing .landing-section-head h2,
.landing-pricing .landing-section-head p {
    color: #fff;
}

.pricing-head {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px 24px;
    max-width: none;
}

.pricing-head h2,
.pricing-head p {
    max-width: 900px;
}

.pricing-controls {
    grid-row: 1 / span 2;
    grid-column: 2;
    align-self: end;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px;
}

.pricing-toggle {
    display: inline-grid;
    grid-template-columns: repeat(2, minmax(96px, 1fr));
    gap: 4px;
    min-height: 46px;
    padding: 4px;
    border: 1px solid rgba(231, 243, 244, 0.58);
    border-radius: 8px;
    background: #e7f3f4;
}

.pricing-module-toggle {
    grid-template-columns: repeat(3, minmax(132px, 1fr));
}

.pricing-period-input {
    position: fixed;
    top: 0;
    left: 0;
    width: 1px;
    height: 1px;
    margin: -1px;
    opacity: 0;
    overflow: hidden;
    pointer-events: none;
    clip-path: inset(50%);
    white-space: nowrap;
}

.pricing-toggle-option {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 0 14px;
    border-radius: 6px;
    color: var(--brand-sys);
    font-weight: var(--font-semibold);
    cursor: pointer;
}

.pricing-toggle-annual {
    color: var(--brand-alki);
}

.pricing-module-inmuebles {
    color: var(--accent-teal);
}

.pricing-module-estacionamiento {
    color: var(--accent-amber);
}

.pricing-module-flota {
    color: var(--accent-blue);
}

#pricing-monthly:checked ~ .pricing-inner .pricing-toggle-monthly {
    background: #111417;
    color: #ffffff;
    box-shadow: 0 8px 18px rgba(17, 20, 23, 0.16);
}

#pricing-annual:checked ~ .pricing-inner .pricing-toggle-annual {
    background: var(--brand-alki);
    color: #ffffff;
    box-shadow: 0 8px 18px rgba(0, 95, 107, 0.22);
}

#pricing-module-inmuebles:checked ~ .pricing-inner .pricing-module-inmuebles {
    background: var(--accent-teal);
    color: #ffffff;
    box-shadow: 0 8px 18px rgba(11, 127, 137, 0.22);
}

#pricing-module-estacionamiento:checked ~ .pricing-inner .pricing-module-estacionamiento {
    background: var(--accent-amber);
    color: #ffffff;
    box-shadow: 0 8px 18px rgba(183, 121, 31, 0.22);
}

#pricing-module-flota:checked ~ .pricing-inner .pricing-module-flota {
    background: var(--accent-blue);
    color: #ffffff;
    box-shadow: 0 8px 18px rgba(37, 99, 235, 0.22);
}

#pricing-monthly:focus-visible ~ .pricing-inner .pricing-toggle-monthly,
#pricing-annual:focus-visible ~ .pricing-inner .pricing-toggle-annual,
#pricing-module-inmuebles:focus-visible ~ .pricing-inner .pricing-module-inmuebles,
#pricing-module-estacionamiento:focus-visible ~ .pricing-inner .pricing-module-estacionamiento,
#pricing-module-flota:focus-visible ~ .pricing-inner .pricing-module-flota {
    outline: 3px solid rgba(231, 243, 244, 0.86);
    outline-offset: 3px;
}

.pricing-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 14px;
}

.price-card {
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr) auto;
    align-content: stretch;
    gap: 14px;
    padding: 22px;
    color: var(--brand-sys);
}

.price-card.is-featured {
    border-color: var(--pricing-module-border, #66b5bd);
    box-shadow: 0 12px 34px var(--pricing-module-shadow, rgba(0, 95, 107, 0.2));
}

.price {
    display: flex;
    align-items: baseline;
    gap: 6px;
    min-height: 52px;
    margin: 0;
    font-size: 46px;
    font-weight: 600;
    line-height: 1;
}

.price-value {
    display: flex;
    align-items: baseline;
    gap: 6px;
}

.price-value > b {
    color: inherit;
    font: inherit;
}

.price-value.billing-annual {
    display: none;
}

#pricing-annual:checked ~ .pricing-inner .billing-monthly {
    display: none;
}

#pricing-annual:checked ~ .pricing-inner .price-value.billing-annual {
    display: flex;
}

.price small,
.price-value > span {
    color: var(--muted);
    font-size: 13px;
    font-weight: 600;
}

.price-card li {
    font-size: 15px;
    line-height: 1.32;
}

.price-plan-list strong {
    color: var(--brand-sys);
}

.landing-pricing .price-card li::before {
    background: var(--pricing-module-accent, var(--brand-alki));
}

.price-card a {
    align-self: end;
    justify-self: center;
    width: var(--price-action-width);
    margin-top: 6px;
    background: var(--brand-sys);
    color: #fff;
}

.price-card.is-featured a {
    width: min(86%, 204px);
    background: var(--pricing-module-accent, var(--brand-alki));
}

.pricing-discounts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: 18px;
}

.pricing-discounts article {
    display: grid;
    gap: 8px;
    min-height: 146px;
    padding: 22px;
    border: 1px solid rgba(231, 243, 244, 0.34);
    border-radius: 8px;
    background: rgba(231, 243, 244, 0.12);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.pricing-discounts article.is-active {
    border-color: var(--pricing-module-border, #66b5bd);
    background: var(--pricing-module-accent, var(--brand-alki));
    box-shadow: 0 16px 32px var(--pricing-module-shadow, rgba(0, 95, 107, 0.22));
}

.pricing-discounts article[data-discount-card="annual"].is-active {
    border-color: rgba(190, 75, 91, 0.72);
    background: var(--accent-rose);
    box-shadow: 0 16px 32px rgba(190, 75, 91, 0.24);
}

.pricing-discounts span {
    color: #e7f3f4;
    font-size: 12px;
    font-weight: var(--font-semibold);
    text-transform: uppercase;
}

.pricing-discounts strong {
    color: #fff;
    font-size: 30px;
    line-height: 1;
}

.pricing-discounts p,
.pricing-note {
    margin: 0;
    color: rgba(255, 255, 255, 0.82);
}

.pricing-note {
    margin-top: 16px;
    font-weight: 600;
}

.landing-faq {
    background: #fff;
}

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

.faq-grid article {
    min-height: 150px;
}

.landing-contact {
    background: #f8fbfb;
    padding-bottom: 70px;
}

.landing-contact-head {
    display: grid;
    gap: 8px;
    max-width: 760px;
    margin-bottom: 26px;
}

.landing-contact-head h2 {
    margin: 0;
    color: var(--ink);
    font-family: var(--font-title);
    font-size: 38px;
    font-weight: 600;
    line-height: 1.08;
}

.landing-contact-form {
    display: grid;
    gap: 22px;
    align-items: start;
    max-width: 1320px;
}

.landing-contact-layout {
    display: grid;
    grid-template-columns: minmax(280px, 520px) minmax(320px, 520px);
    gap: 18px 32px;
    align-items: start;
}

.landing-contact-fields {
    display: grid;
    gap: 14px;
}

.landing-contact-message {
    display: grid;
    gap: 14px;
}

.landing-contact-form label {
    display: grid;
    gap: 8px;
    color: var(--brand-sys);
    font-size: 16px;
    font-weight: var(--font-medium);
}

.landing-contact-phone-field {
    display: grid;
    gap: 8px;
    color: var(--brand-sys);
    font-size: 16px;
    font-weight: var(--font-medium);
}

.landing-phone-row {
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr);
    gap: 10px;
    align-items: stretch;
    width: 100%;
}

.landing-phone-country {
    min-width: 0;
}

.landing-contact-form input,
.landing-contact-form textarea {
    width: 100%;
    border: 1px solid var(--line-strong);
    border-radius: 8px;
    background: #ffffff;
    color: var(--ink);
    box-shadow: var(--shadow-card);
}

.landing-contact-form input {
    min-height: 50px;
    padding: 0 14px;
}

.landing-contact .country-picker-button {
    grid-template-columns: 24px auto;
    justify-content: center;
    min-height: 50px;
    height: 100%;
    padding: 0 10px;
    border-color: var(--line-strong);
    box-shadow: var(--shadow-card);
}

.landing-contact .country-picker-menu {
    z-index: 2000;
    width: min(320px, calc(100vw - 32px));
}

.landing-contact .country-picker.is-open {
    z-index: 3000;
}

.landing-contact-form textarea {
    min-height: 170px;
    resize: vertical;
    padding: 14px;
}

.landing-contact-form input:focus,
.landing-contact-form textarea:focus {
    outline: 3px solid rgba(0, 95, 107, 0.14);
    border-color: var(--brand-alki);
}

.landing-contact-submit {
    justify-self: start;
    border: 0;
    font-family: var(--font-button);
    font-weight: var(--font-semibold);
    background: var(--brand-alki);
    color: #ffffff;
    cursor: pointer;
}

.landing-contact-notice {
    max-width: 760px;
    margin: 0;
    border-radius: 8px;
    padding: 12px 14px;
    font-weight: 600;
}

.landing-contact-notice.is-ok {
    background: rgba(0, 105, 122, 0.1);
    color: var(--brand-alki);
}

.landing-contact-notice.is-error {
    background: rgba(191, 72, 72, 0.1);
    color: #9f2f2f;
}

.landing-final {
    display: grid;
    grid-template-columns: minmax(300px, 0.9fr) minmax(0, 1fr);
    gap: 40px;
    align-items: center;
    padding-top: 82px;
    padding-bottom: 100px;
}

.landing-final img {
    width: 100%;
    max-height: 360px;
    object-fit: contain;
}

.landing-final > div {
    display: grid;
    gap: 18px;
}

.landing-bottom-bar {
    background:
        radial-gradient(circle at 18% 18%, rgba(11, 127, 137, 0.26), transparent 30%),
        linear-gradient(135deg, #063942 0%, #004f5a 52%, #06343d 100%);
    color: #ffffff;
}

.landing-bottom-inner {
    display: grid;
    gap: clamp(9px, 1.25vw, 14px);
    padding: clamp(18px, 2.35vw, 25px) var(--landing-section-inline) clamp(11px, 1.45vw, 14px);
}

.landing-bottom-main {
    display: grid;
    grid-template-columns: minmax(280px, 1.18fr) minmax(170px, 0.58fr) minmax(260px, 0.82fr) minmax(180px, 0.54fr);
    gap: clamp(16px, 2.7vw, 38px);
    align-items: start;
}

.landing-bottom-brand,
.landing-bottom-column {
    display: grid;
    gap: 8px;
    align-content: start;
}

.landing-bottom-brand-line {
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 0;
}

.landing-bottom-logo {
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    width: 40px;
    height: 40px;
    border-radius: 7px;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 7px 16px rgba(0, 0, 0, 0.16);
}

.landing-bottom-logo img {
    display: block;
    width: 28px;
    height: 28px;
    object-fit: contain;
}

.landing-bottom-brand strong {
    color: #ffffff;
    font-family: var(--font-body);
    font-size: clamp(24px, 2.5vw, 31px);
    font-weight: var(--font-regular);
    line-height: 0.98;
    letter-spacing: 0;
}

.landing-bottom-brand p {
    max-width: 300px;
    margin: 0;
    color: rgba(255, 255, 255, 0.82);
    font-size: clamp(12px, 0.95vw, 14px);
    font-weight: 400;
    line-height: 1.22;
}

.landing-bottom-column h2 {
    margin: 0;
    color: #4fe2e2;
    font-family: var(--font-title);
    font-size: clamp(14px, 1.08vw, 15px);
    font-weight: 400;
    line-height: 1.1;
}

.landing-bottom-column a {
    color: rgba(255, 255, 255, 0.92);
    font-size: clamp(12px, 1vw, 14px);
    font-weight: 400;
    line-height: 1.2;
    text-decoration: none;
}

.landing-bottom-product,
.landing-bottom-legal nav {
    gap: 6px;
}

.landing-bottom-column a:hover {
    color: #ffffff;
    opacity: 0.86;
}

.landing-bottom-email {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

.landing-bottom-email svg {
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
    color: #4fe2e2;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.landing-bottom-legal {
    gap: 14px;
}

.landing-bottom-legal nav {
    display: grid;
}

.landing-bottom-socials {
    display: flex;
    gap: 8px;
}

.landing-bottom-social {
    display: inline-grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border: 1.5px solid #4fe2e2;
    border-radius: 999px;
    color: #ffffff;
    text-decoration: none;
}

.landing-bottom-social:hover {
    background: rgba(79, 226, 226, 0.1);
}

.landing-bottom-social img {
    display: block;
    width: 20px;
    height: 20px;
    object-fit: contain;
}

.landing-bottom-copy {
    margin: 0;
    padding-top: clamp(8px, 1.05vw, 12px);
    border-top: 1px solid rgba(255, 255, 255, 0.25);
    color: rgba(255, 255, 255, 0.78);
    font-size: clamp(11px, 0.85vw, 13px);
    font-weight: 400;
    line-height: 1.15;
    text-align: center;
}

.module-public-hero {
    padding: 24px 58px 76px;
    background: linear-gradient(180deg, #e8f5f6 0%, #ffffff 100%);
}

.module-public-hero-inner {
    display: grid;
    grid-template-columns: minmax(0, 0.82fr) minmax(420px, 1fr);
    gap: 48px;
    align-items: center;
    width: calc(100% - var(--landing-page-gutter));
    max-width: var(--landing-wide);
    margin: 78px auto 0;
}

.module-public-copy {
    display: grid;
    gap: 16px;
}

.module-public-copy h1 {
    margin: 0;
    color: var(--ink);
    font-family: var(--font-title);
    font-size: 46px;
    font-weight: var(--font-semibold);
    line-height: 1.06;
}

.module-public-copy p:not(.eyebrow) {
    max-width: 700px;
    margin: 0;
    color: var(--muted);
    font-size: 18px;
    line-height: 1.48;
}

.module-public-hero-inner > img {
    width: 100%;
    border: 1px solid rgba(216, 227, 229, 0.72);
    border-radius: 8px;
    box-shadow: 0 18px 42px rgba(43, 47, 51, 0.12);
}

.module-public-section {
    padding-top: 68px;
}

.module-public-benefits,
.module-plan-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.module-public-benefits article {
    display: grid;
    align-content: start;
    gap: 8px;
    min-height: 132px;
    padding: 20px;
    border: 1px solid rgba(196, 209, 212, 0.82);
    border-left: 5px solid var(--brand-alki);
    border-radius: 8px;
    background: #ffffff;
    color: var(--brand-sys);
    font-size: 17px;
    font-weight: 600;
    line-height: 1.38;
    box-shadow: var(--shadow-card);
}

.module-public-benefits article strong {
    display: block;
    color: var(--brand-sys);
    font-size: 18px;
    font-weight: 700;
    line-height: 1.28;
}

.module-public-benefits article span {
    display: block;
    color: var(--muted);
    font-size: 15px;
    font-weight: 500;
    line-height: 1.46;
}

.module-plan-card {
    display: grid;
    align-content: start;
    gap: 12px;
    min-height: 312px;
    padding: 24px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: var(--shadow-card);
}

.module-plan-card.is-featured {
    border-color: rgba(0, 95, 107, 0.36);
    box-shadow: 0 14px 34px rgba(0, 95, 107, 0.14);
}

.module-plan-card span {
    width: fit-content;
    padding: 5px 10px;
    border-radius: 999px;
    background: var(--brand-alki-soft);
    color: var(--brand-alki);
    font-size: 12px;
    font-weight: var(--font-semibold);
    text-transform: uppercase;
}

.module-plan-card h3 {
    margin: 0;
    color: var(--ink);
    font-family: var(--font-title);
    font-size: 30px;
    font-weight: var(--font-semibold);
    line-height: 1;
}

.module-plan-card p {
    margin: 0;
    color: var(--muted);
    font-weight: 600;
}

.module-plan-card ul {
    display: grid;
    gap: 9px;
    margin: 4px 0 0;
    padding: 0;
    list-style: none;
}

.module-plan-card li {
    position: relative;
    padding-left: 22px;
    color: var(--muted);
}

.module-plan-card li::before {
    position: absolute;
    top: 8px;
    left: 0;
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: var(--brand-alki);
    content: "";
}

@media (max-width: 1180px) {
    .location-section {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .location-section > label,
    .location-section .location-phone-field,
    .location-section .employee-enable-field,
    .space-location-list-grid,
    .location-section .floor-control-field,
    .location-section .variable-select-list-field {
        grid-column: span 1;
    }

    .location-section[data-location-kind="estacionamiento"] :is(.location-phone-field, .location-whatsapp-field) {
        grid-column: span 1;
    }

    .location-section .address-map-field,
    .location-section .variable-select-list-field.location-cash-field {
        grid-column: span 1;
    }

    .location-section .location-social-grid,
    .location-section .space-location-list-grid {
        grid-column: 1 / -1;
    }

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

@media (max-width: 1280px) {
    .landing-page {
        --landing-page-gutter: 56px;
        --landing-page-gutter-half: 28px;
        --landing-section-pad: 28px;
    }

    .app-shell {
        grid-template-columns: 1fr;
    }

    .app-shell.is-sidebar-collapsed {
        grid-template-columns: 1fr;
    }

    .sidebar {
        position: static;
        align-items: stretch;
        height: auto;
        padding: 18px 16px;
    }

    .sidebar-toggle {
        display: none;
    }

    .app-shell.is-sidebar-collapsed .brand {
        justify-content: flex-start;
        gap: 12px;
        padding: 10px 12px;
    }

    .app-shell.is-sidebar-collapsed .brand-copy,
    .app-shell.is-sidebar-collapsed .nav-label,
    .app-shell.is-sidebar-collapsed .sidebar-logout-label {
        width: auto;
        opacity: 1;
        pointer-events: auto;
    }

    .app-shell.is-sidebar-collapsed .nav-link {
        justify-content: flex-start;
        gap: 10px;
        padding: 0 12px;
    }

    .app-shell.is-sidebar-collapsed .sidebar-logout-button {
        display: inline-flex;
        justify-content: center;
        gap: 9px;
        width: 100%;
        padding: 0 14px;
    }

    .nav-list {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }

    .sidebar-footer {
        display: none;
    }

    .summary-band,
    .module-hero,
    .service-billing-panel,
    .work-grid {
        grid-template-columns: 1fr;
    }

    .module-actions {
        justify-content: flex-start;
    }

    .service-billing-action {
        justify-items: start;
    }

    .service-config-grid {
        grid-template-columns: 1fr;
    }

    .landing-hero {
        min-height: 700px;
        padding: 22px 28px 58px;
    }

    .landing-hero-copy {
        max-width: var(--landing-wide);
        margin-top: 100px;
        padding-right: min(48vw, 560px);
    }

    .landing-hero-copy .eyebrow {
        font-size: 28.8px;
    }

    .landing-hero-copy h1 {
        font-size: 43.2px;
    }

    .landing-hero-copy p:not(.eyebrow) {
        white-space: normal;
    }

    .landing-hero-art {
        bottom: 96px;
        width: 560px;
        max-width: 48vw;
    }

    .landing-section,
    .landing-feature,
    .landing-final {
        padding-right: var(--landing-section-inline);
        padding-left: var(--landing-section-inline);
    }

    .landing-references {
        padding-right: 0;
        padding-left: 0;
    }

    .landing-pricing {
        padding-right: 0;
        padding-left: 0;
    }

    .landing-references .landing-section-head,
    .references-carousel {
        padding-right: 28px;
        padding-left: 28px;
    }

    .module-public-hero-inner {
        grid-template-columns: 1fr;
    }

    .module-public-benefits,
    .module-plan-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

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

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

    .payment-detail-layout {
        grid-template-columns: 1fr;
    }

    .payment-detail-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .payment-pdf-preview {
        min-height: 360px;
    }

    .payment-pdf-preview iframe {
        min-height: 420px;
    }
}

@media (max-width: 820px) {
    .landing-page {
        --landing-page-gutter: 32px;
        --landing-page-gutter-half: 16px;
        --landing-section-pad: 16px;
    }

    .content {
        padding: 16px;
    }

    .balance-rule-options {
        grid-template-columns: 1fr;
    }

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

    .entry-form.compact-form.report-message-contact-form {
        grid-template-columns: 1fr;
    }

    .report-message-contact-form button {
        width: 100%;
    }

    .report-message-preset-row {
        align-items: stretch;
        flex-direction: column;
    }

    .report-message-preset-row .button {
        width: 100%;
    }

    .report-message-name-choice {
        grid-template-columns: 1fr;
    }

    .entry-form.report-pdf-form {
        grid-template-columns: 1fr;
    }

    .report-pdf-primary-fields {
        flex-direction: column;
    }

    .report-pdf-primary-fields > * {
        flex: 0 0 auto;
        width: 100%;
    }

    .report-pdf-model-grid {
        grid-template-columns: 1fr;
    }

    .report-pdf-preview-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .report-pdf-preview-heading p {
        text-align: left;
    }

    .report-pdf-preview-stage {
        min-height: 520px;
        padding: 8px;
    }

    .report-pdf-preview-image {
        width: 100%;
    }

    .report-pdf-form > .span-2 {
        grid-column: auto;
    }

    .report-pdf-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .report-pdf-form .report-pdf-actions button {
        width: 100%;
    }

    .topbar {
        align-items: stretch;
        grid-template-columns: 1fr;
    }

    .topbar-side {
        align-items: flex-start;
        justify-content: space-between;
        width: 100%;
    }

    .topbar-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .topbar-parking-logo {
        width: 86px;
        height: 86px;
    }

    .topbar-greeting {
        font-size: 20px;
    }

    .topbar-user {
        width: 100%;
    }

    .topbar-user strong {
        max-width: none;
    }

    .logout-button {
        width: 100%;
    }

    .topbar h1 {
        font-size: 27px;
    }

    .parking-title-picker {
        align-items: flex-start;
    }

    .parking-title-picker select {
        width: 100%;
        min-width: 0;
    }

    .parking-title-picker select {
        font-size: 24px;
    }

    .summary-copy h2,
    .module-hero h2 {
        font-size: 23px;
    }

    .nav-list,
    .module-grid,
    .kpi-grid {
        grid-template-columns: 1fr;
    }

    .module-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .module-control-row {
        align-items: stretch;
        flex-direction: column;
    }

    .module-filters {
        align-items: stretch;
        flex-direction: column;
        width: 100%;
        margin-left: 0;
    }

    .summary-panel-header,
    .summary-filter-form {
        align-items: stretch;
        flex-direction: column;
    }

    .summary-filter-form,
    .summary-filter-form label {
        width: 100%;
    }

    .summary-filter-form {
        grid-template-columns: 1fr;
        margin-left: 0;
    }

    .summary-filter-form select {
        width: min(100%, 220px);
    }

    .record-filter-form.summary-period-filter-form {
        grid-template-columns: 1fr;
        justify-content: stretch;
        width: 100%;
        margin-left: 0;
    }

    .record-filter-form.summary-period-filter-form label,
    .record-filter-form.summary-period-filter-form select {
        width: 100%;
        min-width: 0;
    }

    .search-input,
    .year-form,
    .month-form {
        width: 100%;
    }

    .module-tabs {
        width: 100%;
    }

    .module-tabs a {
        flex: 1 1 auto;
    }

    .entry-form,
    .variables-form,
    .compact-form {
        grid-template-columns: 1fr;
    }

    .vehicle-period-rate-controls {
        grid-template-columns: 1fr;
    }

    .location-section {
        grid-template-columns: 1fr;
    }

    .parking-entry-modes-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .floor-control-row {
        grid-template-columns: 1fr;
    }

    .variable-form-section,
    .variable-grid-section,
    .variable-row-grid {
        grid-template-columns: 1fr;
    }

    .variable-row-grid > span {
        display: none;
    }

    .balance-config-add {
        align-items: stretch;
        flex-direction: column;
    }

    .balance-config-add-actions {
        justify-content: space-between;
    }

    .balance-config-scroll {
        overflow: visible;
        padding-bottom: 0;
    }

    .variable-row-grid.balance-service-row-grid,
    .variable-row-grid.balance-card-row-grid {
        grid-template-columns: 1fr;
        min-width: 0;
    }

    .balance-config-row {
        display: grid;
        grid-template-columns: 1fr;
        gap: 8px;
        min-width: 0;
        padding: 12px;
        border: 1px solid var(--line);
        border-radius: 8px;
        background: var(--surface-soft);
    }

    .balance-config-cell {
        display: grid;
        grid-template-columns: minmax(120px, 0.45fr) minmax(0, 1fr);
        gap: 10px;
        min-height: 0;
    }

    .balance-config-cell::before {
        align-self: center;
        color: var(--muted);
        content: attr(data-label);
        font-size: 11px;
        font-weight: 800;
        text-transform: uppercase;
    }

    .variable-row-grid-vehicles .variable-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .variable-row-grid-vehicles .vehicle-category-main-cell,
    .variable-row-grid-vehicles .vehicle-category-models-cell {
        grid-column: 1 / -1;
    }

    .variable-row-grid-vehicles .vehicle-category-capacity-cell {
        grid-column: 1;
    }

    .variable-row-grid-vehicles .variable-row .variable-row-actions {
        grid-column: 2;
        justify-self: end;
    }

    .entry-form .variable-row .mini-button,
    .variable-collapsible-section .variable-row .mini-button {
        width: 100%;
    }

    .variables-shell > .variables-save-button {
        justify-self: stretch;
        width: 100%;
    }

    .parking-config-list-head,
    .parking-config-item {
        grid-template-columns: 1fr;
    }

    .parking-config-item .parking-config-actions {
        justify-content: flex-start;
        overflow-x: auto;
    }

    .parking-config-item .parking-config-actions .mini-button {
        flex: 0 0 auto;
        width: auto;
    }

    .floor-setup-form,
    .floor-setup-section,
    .floor-setup-vehicle-counts,
    .availability-row {
        grid-template-columns: 1fr;
    }

    .floor-setup-grid-heading {
        display: none;
    }

    .floor-setup-section {
        min-width: 0;
    }

    .floor-setup-name-field,
    .floor-setup-total-field {
        padding-top: 0;
    }

    .floor-setup-vehicle-counts {
        display: grid;
        gap: 8px;
    }

    .span-2,
    .location-phone-field {
        grid-column: auto;
    }

    .location-section[data-location-kind="estacionamiento"] :is(.location-phone-field, .location-whatsapp-field) {
        grid-column: auto;
    }

    .phone-field {
        grid-template-columns: 1fr;
        max-width: none;
    }

    .public-shell {
        padding: 16px;
    }

    .public-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .public-location-row {
        align-items: flex-start;
        flex-direction: column;
    }

    .public-whatsapp-button {
        width: 100%;
    }

    .landing-map-head,
    .landing-map-summary {
        grid-template-columns: 1fr;
    }

    .landing-map-open {
        width: 100%;
    }

    .landing-map-shell,
    .landing-map-canvas {
        min-height: 360px;
        height: 360px;
    }

    .public-link-slug-field {
        grid-template-columns: 1fr;
    }

    .public-link-slug-field > span {
        border-right: 0;
        border-bottom: 1px solid var(--line);
    }

    .public-link-qr-frame {
        width: 150px;
        height: 150px;
    }

    .public-link-qr {
        justify-self: start;
        width: 132px;
        height: 132px;
    }

    .public-price-grid,
    .public-price-result {
        grid-template-columns: 1fr;
    }

    .public-date-time {
        grid-template-columns: 1fr;
    }

    .public-price-detail {
        grid-column: auto;
    }

    .country-picker-menu {
        width: min(310px, calc(100vw - 48px));
    }

    .record-modal {
        align-items: stretch;
        padding: 12px;
    }

    .record-modal-panel {
        max-height: calc(100vh - 24px);
        padding: 16px;
    }

    .record-modal-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .record-modal-actions .button,
    .record-modal-actions .inline-form {
        width: 100%;
    }

    .record-modal-actions .inline-form .button {
        width: 100%;
    }

    .parking-record-picker-selection {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .contact-record-picker-option {
        grid-template-columns: minmax(88px, 0.75fr) minmax(0, 1.25fr);
        gap: 10px 14px;
    }

    .contact-record-picker-filters {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .contact-record-picker-list {
        grid-template-columns: 1fr;
    }

    .report-message-header {
        align-items: stretch;
        flex-direction: column;
    }

    .report-message-header .button {
        width: 100%;
    }

    .contact-message-tabs {
        grid-template-columns: 1fr;
    }

    .increment-mode-grid {
        grid-template-columns: 1fr;
    }

    .employee-row,
    .employee-dialog-form {
        grid-template-columns: 1fr;
    }

    .employee-dialog-layout {
        grid-template-columns: 1fr;
    }

    .employee-month-calendar {
        overflow-x: auto;
    }

    .employee-month-weekdays,
    .employee-month-grid {
        min-width: 760px;
        grid-template-columns: repeat(7, minmax(96px, 1fr));
    }

    .employee-month-day,
    .employee-month-day.is-outside {
        min-height: 132px;
    }

    .employee-hour-list-head {
        display: none;
    }

    .employee-hour-row {
        grid-template-columns: 1fr;
        align-items: stretch;
    }

    .employee-hour-timeline {
        grid-column: auto;
    }

    .employee-contract-section {
        position: static;
    }

    .employee-actions {
        justify-content: stretch;
    }

    .employee-actions .mini-button {
        flex: 1;
    }

    .employee-function-list,
    .employee-rotation-box {
        grid-template-columns: 1fr;
    }

    .increment-example-row {
        grid-template-columns: 1fr;
    }

    .payment-detail-grid {
        grid-template-columns: 1fr;
    }

    .payment-pdf-preview {
        min-height: 300px;
    }

    .payment-pdf-preview iframe {
        min-height: 320px;
    }

    .landing-hero {
        min-height: 0;
        padding: 18px 16px 36px;
    }

    .landing-hero::after {
        display: none;
    }

    .landing-nav {
        display: flex;
        width: 100%;
        align-items: flex-start;
        flex-direction: column;
    }

    .landing-brand .brand-mark {
        width: 37.2px;
        height: 37.2px;
    }

    .landing-brand .brand-wordmark {
        width: 162px;
        max-width: 38.4vw;
    }

    .landing-nav-links {
        align-items: stretch;
        width: 100%;
        flex-direction: column;
    }

    .landing-nav-actions {
        align-items: stretch;
        width: 100%;
        flex-direction: column;
    }

    .landing-nav-menu > div {
        position: static;
        margin-top: 8px;
        box-shadow: var(--shadow-card);
    }

    .landing-command,
    .landing-register,
    .landing-primary,
    .landing-secondary {
        width: 100%;
    }

    .landing-hero-copy {
        max-width: none;
        margin-top: 48px;
        padding-right: 0;
    }

    .landing-hero-copy h1 {
        font-size: 34.2px;
    }

    .landing-hero-copy p:not(.eyebrow) {
        font-size: 14.4px;
    }

    .landing-hero-copy .eyebrow {
        font-size: 27px;
    }

    .landing-hero-art {
        position: relative;
        right: auto;
        bottom: auto;
        display: block;
        max-width: 100%;
        width: 100%;
        margin-top: 26px;
    }

    .landing-trust,
    .benefit-grid,
    .landing-faq-inner,
    .faq-grid,
    .landing-contact-form,
    .module-public-benefits,
    .module-plan-grid,
    .pricing-grid,
    .pricing-discounts,
    .landing-feature,
    .feature-alt,
    .landing-final {
        grid-template-columns: 1fr;
    }

    .landing-trust {
        width: auto;
        margin: 0 16px;
    }

    .landing-section,
    .landing-feature,
    .landing-final,
    .module-public-hero {
        padding: 42px 16px;
    }

    .landing-bottom-inner {
        gap: 14px;
        padding: 20px 16px 13px;
    }

    .landing-bottom-main {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .landing-bottom-brand,
    .landing-bottom-column,
    .landing-bottom-legal nav {
        justify-items: center;
        text-align: center;
    }

    .landing-bottom-brand-line {
        justify-content: center;
    }

    .landing-bottom-brand p {
        text-align: center;
    }

    .landing-bottom-socials {
        justify-content: center;
    }

    .landing-bottom-copy {
        padding-top: 11px;
    }

    .landing-contact-form textarea {
        min-height: 172px;
    }

    .landing-benefits {
        padding-bottom: 30px;
    }

    .module-feature {
        gap: 24px;
        margin-bottom: 18px;
        padding: 30px 18px;
    }

    .module-feature-flota {
        margin-bottom: 16px;
    }

    .module-feature img {
        max-height: 320px;
    }

    .module-public-hero-inner {
        width: 100%;
        margin-top: 44px;
    }

    .module-public-copy h1 {
        font-size: 34px;
    }

    .landing-references {
        padding-right: 0;
        padding-left: 0;
    }

    .landing-pricing {
        padding-right: 0;
        padding-left: 0;
    }

    .landing-references .landing-section-head,
    .references-carousel {
        padding-right: 16px;
        padding-left: 16px;
    }

    .references-carousel {
        grid-template-columns: 38px minmax(0, 1fr) 38px;
        gap: 8px;
    }

    .reference-control {
        width: 38px;
        height: 38px;
        font-size: 26px;
    }

    .reference-card {
        flex-basis: 100%;
    }

    .reference-card {
        min-height: 0;
    }

    .landing-section-head h2,
    .landing-contact-head h2,
    .feature-copy h2,
    .landing-final h2 {
        font-size: 28px;
    }

    .benefit-grid article,
    .faq-grid article {
        min-height: 0;
    }

    .price {
        font-size: 44px;
    }

    .pricing-head {
        grid-template-columns: 1fr;
    }

    .pricing-controls {
        grid-row: auto;
        grid-column: auto;
        justify-content: stretch;
        width: 100%;
    }

    .pricing-toggle {
        width: 100%;
        max-width: none;
    }

    .pricing-module-toggle {
        grid-template-columns: 1fr;
    }

    .bar-row {
        grid-template-columns: 62px minmax(120px, 1fr);
        gap: 8px 10px;
        padding: 8px;
    }

    .bar-row strong {
        grid-column: 2;
        text-align: left;
    }

    .kpi-card strong {
        font-size: 22px;
    }
}

/* Landing layout alignment */
.landing-page {
    --landing-max: 1400px;
    --landing-gutter: clamp(16px, 3vw, 48px);
    --landing-container-max: calc(var(--landing-max) + var(--landing-gutter) + var(--landing-gutter));
    --landing-nav-inline: max(var(--landing-gutter), calc((100vw - var(--landing-container-max)) / 2 + var(--landing-gutter)));
    --landing-nav-space: 112px;
    --landing-section-space: clamp(58px, 7vw, 88px);
    --landing-compact-section-space: clamp(29px, 3.5vw, 44px);
    width: 100%;
    max-width: none;
    min-height: 100vh;
    overflow-x: hidden;
    color: var(--ink);
    zoom: 1;
}

.landing-page img {
    max-width: 100%;
}

.landing-hero {
    position: relative;
    isolation: isolate;
    display: grid;
    grid-template-columns: minmax(0, 0.82fr) minmax(360px, 1.08fr);
    grid-template-areas: "copy art";
    gap: clamp(18px, 3vw, 42px);
    align-items: center;
    width: 100%;
    max-width: var(--landing-container-max);
    min-height: 0;
    overflow: visible;
    margin: 0 auto;
    padding: 24px var(--landing-gutter) clamp(54px, 7vw, 78px);
    background: transparent;
}

.landing-hero::before {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    z-index: -1;
    width: 100vw;
    background: linear-gradient(180deg, #e8f5f6 0%, #f6fbfb 100%);
    content: "";
    transform: translateX(-50%);
}

.landing-hero::after {
    display: none;
}

.landing-hero .landing-nav {
    grid-area: nav;
    width: 100%;
    max-width: none;
    padding: 0;
}

.landing-nav {
    max-width: var(--landing-container-max);
    margin-right: auto;
    margin-left: auto;
}

.landing-brand .brand-wordmark {
    width: clamp(144px, 13.8vw, 192px);
    max-width: 26.4vw;
}

.landing-nav-links {
    flex-wrap: wrap;
    justify-content: center;
    justify-self: center;
    gap: 12px 14px;
    font-size: 16px;
}

.landing-nav-actions {
    justify-content: flex-end;
    gap: 12px;
}

.landing-command,
.landing-register {
    font-size: 16px;
}

.landing-hero-copy {
    grid-area: copy;
    width: 100%;
    max-width: none;
    margin: 0;
    padding-right: 0;
}

.landing-hero-copy .eyebrow {
    max-width: 760px;
    font-size: clamp(25px, 3vw, 34px);
}

.landing-hero-copy p:not(.eyebrow) {
    max-width: 620px;
    white-space: normal;
}

.landing-hero-art {
    position: relative;
    grid-area: art;
    z-index: 1;
    inset: auto;
    justify-self: end;
    width: min(100%, 640px);
    max-width: 100%;
    max-height: 500px;
    object-fit: contain;
}

.landing-trust,
.landing-section,
.landing-feature,
.landing-final {
    width: 100%;
    max-width: var(--landing-container-max);
    margin-right: auto;
    margin-left: auto;
    padding-right: var(--landing-gutter);
    padding-left: var(--landing-gutter);
}

.landing-trust {
    align-items: stretch;
    max-width: var(--landing-container-max);
    margin-top: -24px;
    margin-bottom: clamp(44px, 5vw, 72px);
}

.landing-map-page {
    background:
        radial-gradient(circle at 8% 30%, rgba(11, 127, 137, 0.13), transparent 30rem),
        radial-gradient(circle at 94% 68%, rgba(183, 121, 31, 0.12), transparent 32rem),
        linear-gradient(180deg, #f6fbfb 0%, #f4f7f7 100%);
}

.landing-map-section {
    position: relative;
    display: grid;
    gap: 22px;
    margin-top: clamp(22px, 4vw, 46px);
    margin-bottom: clamp(34px, 5vw, 62px);
}

.landing-map-page .landing-map-section {
    padding-top: calc(var(--landing-nav-space) + 42px);
}

.landing-map-results {
    display: grid;
    gap: 22px;
}

.landing-map-results[hidden],
.landing-map-category-notice[hidden] {
    display: none !important;
}

.landing-map-picker {
    position: relative;
    isolation: isolate;
    display: grid;
    gap: clamp(24px, 3vw, 36px);
    overflow: hidden;
    padding: clamp(28px, 4vw, 48px);
    border: 1px solid rgba(0, 95, 107, 0.28);
    border-radius: 16px;
    background: linear-gradient(135deg, #064f59 0%, #08717d 66%, #1f5594 145%);
    box-shadow: 0 22px 52px rgba(0, 95, 107, 0.22);
}

.landing-map-picker::before,
.landing-map-picker::after {
    position: absolute;
    z-index: -1;
    border-radius: 999px;
    content: "";
    pointer-events: none;
}

.landing-map-picker::before {
    top: -170px;
    right: -74px;
    width: 360px;
    height: 360px;
    background: rgba(255, 255, 255, 0.1);
}

.landing-map-picker::after {
    right: 18%;
    bottom: -230px;
    width: 420px;
    height: 420px;
    background: rgba(183, 121, 31, 0.2);
}

.landing-map-picker-copy {
    display: grid;
    gap: 10px;
    max-width: 820px;
}

.landing-map-picker-kicker {
    margin: 0;
    color: #d5f5f5;
    font-size: 13px;
    font-weight: var(--font-semibold);
    line-height: 1.2;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.landing-map-picker h1 {
    margin: 0;
    color: #ffffff;
    font-size: clamp(34px, 4.4vw, 54px);
    line-height: 1.04;
}

.landing-map-picker-copy > p:last-child {
    max-width: 700px;
    margin: 0;
    color: #ffffff;
    font-size: clamp(16px, 1.5vw, 19px);
    line-height: 1.52;
}

.landing-map-picker-form,
.landing-map-picker-form fieldset {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

.landing-map-picker-form fieldset {
    display: grid;
    gap: 18px;
}

.landing-map-picker-form legend {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    clip-path: inset(50%);
}

.landing-map-type-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.landing-map-type-card {
    --landing-map-type-accent: var(--brand-alki);
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 12px 14px;
    align-content: start;
    min-height: 156px;
    padding: 20px;
    border: 2px solid transparent;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.96);
    color: #2b2f33;
    cursor: pointer;
    box-shadow: 0 13px 30px rgba(4, 42, 49, 0.16);
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.landing-map-type-card-property {
    --landing-map-type-accent: #8f590b;
}

.landing-map-type-card-vehicle {
    --landing-map-type-accent: #255b9b;
}

.landing-map-type-card:hover {
    border-color: color-mix(in srgb, var(--landing-map-type-accent) 48%, transparent);
    box-shadow: 0 17px 36px rgba(4, 42, 49, 0.22);
    transform: translateY(-2px);
}

.landing-map-type-card:has(input:focus-visible) {
    outline: 3px solid #ffffff;
    outline-offset: 3px;
}

.landing-map-type-card:has(input:checked) {
    border-color: var(--landing-map-type-accent);
    box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.7), 0 17px 36px rgba(4, 42, 49, 0.22);
}

.landing-map-type-card:has(input:checked)::after {
    position: absolute;
    top: 12px;
    right: 12px;
    display: grid;
    width: 24px;
    height: 24px;
    place-items: center;
    border-radius: 999px;
    background: var(--landing-map-type-accent);
    color: #ffffff;
    content: "\2713";
    font-size: 14px;
    font-weight: 700;
}

.landing-map-type-card input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.landing-map-type-icon {
    display: grid;
    width: 48px;
    height: 48px;
    place-items: center;
    border-radius: 12px;
    background: color-mix(in srgb, var(--landing-map-type-accent) 12%, white);
    color: var(--landing-map-type-accent);
}

.landing-map-type-icon svg {
    width: 34px;
    height: 34px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2.4;
}

.landing-map-type-copy {
    display: grid;
    gap: 5px;
    align-content: center;
    padding-right: 20px;
}

.landing-map-type-copy strong {
    color: inherit;
    font-size: clamp(17px, 1.55vw, 20px);
    line-height: 1.12;
}

.landing-map-type-copy small {
    color: #5f6e72;
    font-size: 13px;
    line-height: 1.35;
}

.landing-map-type-state {
    grid-column: 2;
    justify-self: start;
    padding: 5px 9px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--landing-map-type-accent) 10%, white);
    color: var(--landing-map-type-accent);
    font-size: 12px;
    font-weight: var(--font-semibold);
    line-height: 1;
}

.landing-map-picker-submit {
    justify-self: end;
    min-width: 210px;
    min-height: 46px;
    border: 1px solid rgba(255, 255, 255, 0.88);
    background: #ffffff;
    color: var(--brand-alki);
    box-shadow: 0 10px 24px rgba(4, 42, 49, 0.2);
}

.landing-map-picker-submit:hover:not(:disabled),
.landing-map-picker-submit:focus-visible:not(:disabled) {
    background: #fff8ed;
    color: #004d57;
    transform: translateY(-1px);
}

.landing-map-picker-submit:disabled {
    cursor: not-allowed;
    opacity: 0.62;
}

.landing-map-category-notice {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 24px;
    align-items: center;
    padding: clamp(24px, 4vw, 38px);
    border: 1px solid rgba(0, 95, 107, 0.2);
    border-left: 6px solid var(--accent-amber);
    border-radius: 14px;
    background: linear-gradient(110deg, rgba(231, 243, 244, 0.98) 0%, rgba(255, 255, 255, 0.96) 58%, rgba(255, 248, 237, 0.98) 100%);
    box-shadow: var(--shadow-card);
}

.landing-map-category-notice > div {
    display: grid;
    gap: 8px;
}

.landing-map-category-notice .landing-map-picker-kicker {
    color: var(--brand-alki);
}

.landing-map-category-notice h2 {
    margin: 0;
    color: var(--ink);
    font-size: clamp(25px, 3vw, 36px);
    line-height: 1.1;
}

.landing-map-category-notice p:last-child {
    margin: 0;
    color: var(--muted);
    line-height: 1.5;
}

.landing-map-page .landing-map-head h2 {
    margin: 0;
    color: #ffffff;
    font-size: clamp(32px, 4vw, 48px);
    line-height: 1.08;
}

.landing-map-head {
    position: relative;
    isolation: isolate;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px;
    align-items: end;
    overflow: hidden;
    padding: clamp(24px, 4vw, 44px);
    border: 1px solid rgba(0, 95, 107, 0.26);
    border-radius: 14px;
    background: linear-gradient(135deg, var(--brand-alki) 0%, #08717d 72%, #1f5594 145%);
    box-shadow: 0 18px 42px rgba(0, 95, 107, 0.2);
}

.landing-map-head::before,
.landing-map-head::after {
    position: absolute;
    z-index: -1;
    border-radius: 999px;
    content: "";
    pointer-events: none;
}

.landing-map-head::before {
    top: -118px;
    right: -36px;
    width: 270px;
    height: 270px;
    background: rgba(255, 255, 255, 0.1);
}

.landing-map-head::after {
    right: -74px;
    bottom: -132px;
    width: 310px;
    height: 310px;
    background: rgba(183, 121, 31, 0.2);
}

.landing-map-head .landing-section-head {
    max-width: 920px;
    margin: 0;
}

.landing-map-head .landing-section-head p:not(.eyebrow) {
    max-width: 840px;
    color: #ffffff;
    font-size: clamp(16px, 1.35vw, 18px);
    line-height: 1.52;
}

.landing-map-open {
    min-height: 44px;
    padding-right: 20px;
    padding-left: 20px;
    border: 1px solid rgba(255, 255, 255, 0.82);
    background: #ffffff;
    color: var(--brand-alki);
    white-space: nowrap;
    box-shadow: 0 10px 24px rgba(4, 42, 49, 0.2);
    transition: background 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.landing-map-open:hover:not(:disabled),
.landing-map-open:focus-visible:not(:disabled) {
    background: #fff8ed;
    box-shadow: 0 14px 30px rgba(4, 42, 49, 0.25);
    transform: translateY(-1px);
}

.landing-map-open:focus-visible {
    outline: 3px solid rgba(255, 255, 255, 0.48);
    outline-offset: 3px;
}

.landing-map-open:disabled {
    cursor: wait;
    opacity: 0.78;
}

.landing-map-summary {
    position: relative;
    display: grid;
    grid-template-columns: minmax(180px, 0.55fr) minmax(230px, 0.6fr) minmax(0, 1fr);
    gap: 14px;
    align-items: center;
    overflow: hidden;
    padding: 18px 20px;
    border: 1px solid rgba(0, 95, 107, 0.18);
    border-radius: 12px;
    background: linear-gradient(110deg, rgba(231, 243, 244, 0.98) 0%, rgba(255, 255, 255, 0.94) 58%, rgba(255, 248, 237, 0.98) 100%);
    box-shadow: var(--shadow-card);
}

.landing-map-summary span {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: var(--brand-alki);
    font-weight: var(--font-semibold);
}

.landing-map-summary span::before {
    flex: 0 0 auto;
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: var(--accent-teal);
    box-shadow: 0 0 0 5px rgba(11, 127, 137, 0.12);
    content: "";
}

.landing-map-summary strong {
    padding-left: 18px;
    border-left: 1px solid rgba(0, 95, 107, 0.16);
    color: var(--ink);
    font-size: clamp(24px, 3vw, 36px);
    line-height: 1;
}

.landing-map-summary p {
    margin: 0;
    padding-left: 18px;
    border-left: 1px solid rgba(183, 121, 31, 0.2);
    color: var(--muted);
    font-size: 15px;
    line-height: 1.42;
}

.landing-map-shell {
    position: relative;
    min-height: clamp(340px, 52vw, 620px);
    padding: 8px;
    border-radius: 15px;
    background: linear-gradient(135deg, var(--brand-alki) 0%, var(--accent-teal) 68%, var(--accent-amber) 118%);
    box-shadow: 0 20px 48px rgba(0, 95, 107, 0.2);
}

.landing-map-canvas {
    width: 100%;
    height: clamp(340px, 52vw, 620px);
    overflow: hidden;
    border: 0;
    border-radius: 9px;
    background: var(--brand-alki-soft);
}

.landing-map-info-window {
    color: #2b2f33;
    color-scheme: light;
    font-family: var(--font-body);
    line-height: 1.45;
}

.landing-map-info-window a {
    color: var(--brand-alki);
    font-weight: var(--font-semibold);
}

.landing-map-list {
    display: grid;
    gap: 14px;
}

.landing-map-list-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 12px;
    border-bottom: 1px solid rgba(196, 209, 212, 0.86);
    padding-bottom: 12px;
}

.landing-map-list-head h2 {
    margin: 0;
    color: var(--ink);
    font-size: 24px;
    line-height: 1.15;
}

.landing-map-list-head span,
.landing-map-empty {
    color: var(--muted);
    font-weight: var(--font-semibold);
}

.landing-map-list-grid {
    display: grid;
    gap: 10px;
}

.landing-map-list-item {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 16px;
    align-items: center;
    padding: 14px 16px;
    border: 1px solid rgba(196, 209, 212, 0.86);
    border-left: 4px solid var(--brand-alki);
    border-radius: 8px;
    background: linear-gradient(100deg, rgba(231, 243, 244, 0.84) 0%, rgba(255, 255, 255, 0.9) 44%);
    box-shadow: 0 8px 20px rgba(43, 47, 51, 0.05);
}

.landing-map-list-item:nth-child(3n + 2) {
    border-left-color: var(--accent-amber);
}

.landing-map-list-item:nth-child(3n + 3) {
    border-left-color: var(--accent-blue);
}

.landing-map-list-item h3 {
    margin: 0;
    color: var(--ink);
    font-size: 18px;
    line-height: 1.2;
}

.landing-map-list-item p,
.landing-map-list-item span {
    display: block;
    margin: 4px 0 0;
    color: var(--muted);
    font-size: 14px;
    line-height: 1.35;
}

.landing-map-list-actions {
    display: grid;
    gap: 6px;
    justify-items: end;
    white-space: nowrap;
}

.landing-map-list-actions small {
    color: var(--muted);
    font-weight: var(--font-semibold);
}

.landing-map-list-actions a {
    color: var(--brand-alki);
    font-weight: var(--font-semibold);
    text-decoration: none;
}

.landing-map-empty {
    margin: 0;
    padding: 16px;
    border: 1px dashed rgba(196, 209, 212, 0.95);
    border-radius: 8px;
    background: rgba(231, 243, 244, 0.56);
}

@media (max-width: 1040px) {
    .landing-map-type-grid {
        grid-template-columns: 1fr;
    }

    .landing-map-type-card {
        min-height: 0;
    }
}

@media (max-width: 820px) {
    .landing-map-picker {
        padding: 26px 20px;
    }

    .landing-map-type-grid,
    .landing-map-category-notice,
    .landing-map-head,
    .landing-map-summary {
        grid-template-columns: 1fr;
    }

    .landing-map-picker-submit,
    .landing-map-category-notice .landing-primary {
        width: 100%;
    }

    .landing-map-picker-submit {
        justify-self: stretch;
    }

    .landing-map-head {
        align-items: stretch;
        padding: 24px 20px;
    }

    .landing-map-open {
        width: 100%;
    }

    .landing-map-summary strong,
    .landing-map-summary p {
        padding-top: 14px;
        padding-left: 0;
        border-top: 1px solid rgba(0, 95, 107, 0.14);
        border-left: 0;
    }

    .landing-map-shell {
        height: auto;
        min-height: 0;
        padding: 5px;
        border-radius: 12px;
    }

    .landing-map-canvas {
        border-radius: 8px;
    }

    .landing-map-list-head,
    .landing-map-list-item {
        align-items: start;
        grid-template-columns: 1fr;
    }

    .landing-map-list-head {
        display: grid;
    }

    .landing-map-list-actions {
        justify-items: start;
        white-space: normal;
    }
}

.landing-trust article,
.benefit-grid article,
.faq-grid article,
.price-card {
    height: 100%;
}

.landing-section,
.landing-feature,
.landing-final {
    padding-top: var(--landing-section-space);
    padding-bottom: var(--landing-section-space);
}

.landing-section-head,
.landing-contact-head {
    max-width: 760px;
}

.landing-benefits .landing-section-head {
    gap: 20px;
    max-width: 700px;
    margin-bottom: 0;
}

.landing-benefits .landing-section-head h2 span {
    display: block;
}

.pricing-grid {
    align-items: stretch;
}

.landing-benefits {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(380px, 0.74fr);
    gap: clamp(34px, 5vw, 78px);
    align-items: center;
}

.landing-benefits .landing-section-head p:not(.eyebrow) {
    max-width: 660px;
    font-size: clamp(16px, 1.25vw, 18px);
    line-height: 1.52;
}

.benefit-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: clamp(18px, 2.6vw, 28px);
    align-items: start;
}

.benefit-grid article {
    display: grid;
    grid-template-columns: minmax(74px, 0.2fr) minmax(0, 1fr);
    gap: clamp(18px, 2.8vw, 28px);
    align-items: start;
    height: auto;
    min-height: 0;
    overflow: visible;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.benefit-grid article::before {
    display: none;
}

.benefit-grid span {
    display: block;
    color: rgba(190, 75, 91, 0.23);
    font-family: var(--font-title);
    font-size: clamp(52px, 7vw, 82px);
    font-weight: var(--font-semibold);
    line-height: 0.85;
    letter-spacing: 0;
}

.landing-benefits.is-scroll-motion-ready .benefit-grid article {
    opacity: 0;
    transform: translateX(-76px);
    will-change: transform, opacity;
}

.landing-benefits.is-scroll-motion-visible .benefit-grid article {
    animation: benefitBlockEnter 0.78s cubic-bezier(0.18, 0.84, 0.28, 1) var(--scroll-motion-delay, 0s) both;
}

.landing-benefits .benefit-grid article:nth-child(1) {
    --scroll-motion-delay: 0s;
}

.benefit-grid article:nth-child(2) span {
    color: rgba(11, 127, 137, 0.24);
}

.landing-benefits .benefit-grid article:nth-child(2) {
    --scroll-motion-delay: 0.13s;
}

.benefit-grid article:nth-child(3) span {
    color: rgba(183, 121, 31, 0.26);
}

.landing-benefits .benefit-grid article:nth-child(3) {
    --scroll-motion-delay: 0.26s;
}

.benefit-grid article:nth-child(4) span {
    color: rgba(37, 99, 235, 0.22);
}

.landing-benefits .benefit-grid article:nth-child(4) {
    --scroll-motion-delay: 0.39s;
}

@keyframes benefitBlockEnter {
    0% {
        opacity: 0;
        transform: translateX(-76px);
    }

    72% {
        opacity: 1;
        transform: translateX(6px);
    }

    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .landing-trust.is-scroll-motion-visible article,
    .landing-benefits.is-scroll-motion-visible .benefit-grid article,
    .landing-faq.is-scroll-motion-visible .faq-grid summary {
        animation: none;
    }

    .landing-trust.is-scroll-motion-ready article,
    .landing-benefits.is-scroll-motion-ready .benefit-grid article,
    .landing-faq.is-scroll-motion-ready .faq-grid summary {
        opacity: 1;
        transform: none;
        filter: none;
        will-change: auto;
    }
}

.benefit-grid h3 {
    margin-top: 6px;
    font-size: clamp(20px, 2vw, 24px);
    line-height: 1.12;
}

.benefit-grid p {
    max-width: 460px;
    margin-top: 8px;
    font-size: 17px;
    line-height: 1.45;
}

.landing-feature,
.feature-alt {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(28px, 5vw, 58px);
}

.module-feature {
    margin-top: 0;
    margin-bottom: clamp(18px, 3vw, 28px);
    padding: clamp(38px, 5vw, 58px) var(--landing-gutter);
    border-right: 1px solid rgba(196, 209, 212, 0.76);
    border-left: 1px solid rgba(196, 209, 212, 0.76);
    border-radius: 8px;
}

.module-feature::before {
    border-radius: 8px 0 0 8px;
}

.module-feature img,
.landing-feature img,
.landing-final img {
    width: 100%;
    max-height: 420px;
    object-fit: contain;
}

.module-feature .feature-copy {
    max-width: 560px;
}

.feature-alt .feature-copy {
    justify-self: end;
}

.landing-references,
.landing-pricing,
.landing-faq,
.landing-contact {
    max-width: none;
    padding-right: 0;
    padding-left: 0;
}

.landing-references {
    padding-top: var(--landing-section-space);
    padding-bottom: var(--landing-section-space);
}

.landing-references .landing-section-head,
.references-carousel,
.pricing-inner {
    width: 100%;
    max-width: var(--landing-container-max);
    margin-right: auto;
    margin-left: auto;
    padding-right: var(--landing-gutter);
    padding-left: var(--landing-gutter);
}

.references-track {
    align-items: stretch;
    padding-top: 0;
    padding-bottom: 0;
}

.reference-card {
    height: 100%;
}

.landing-pricing {
    padding-top: var(--landing-section-space);
    padding-bottom: var(--landing-section-space);
    background: var(--brand-sys);
    box-shadow: 0 0 0 100vmax var(--brand-sys);
    clip-path: inset(0 -100vmax);
    color: #fff;
}

.landing-benefits,
.landing-references,
.landing-pricing,
.landing-faq,
.landing-contact {
    padding-top: var(--landing-compact-section-space);
    padding-bottom: var(--landing-compact-section-space);
}

.pricing-inner {
    display: grid;
    gap: 18px;
}

.landing-faq-inner,
.landing-contact > .landing-contact-head,
.landing-contact > .landing-contact-form {
    width: 100%;
    max-width: var(--landing-container-max);
    margin-right: auto;
    margin-left: auto;
    padding-right: var(--landing-gutter);
    padding-left: var(--landing-gutter);
}

.landing-contact > .landing-contact-head h2 {
    max-width: 760px;
}

.pricing-head {
    width: 100%;
    max-width: none;
    grid-template-columns: minmax(0, 1fr) minmax(0, 660px);
    align-items: end;
    margin-bottom: 6px;
}

.pricing-head h2,
.pricing-head p {
    max-width: 760px;
}

.pricing-controls {
    justify-self: end;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    justify-items: end;
    gap: 10px;
    max-width: 660px;
    width: 100%;
}

.price-card {
    grid-template-rows: auto auto minmax(var(--price-plan-list-min), 1fr) auto;
}

.landing-pricing.is-single-module .price-card {
    grid-template-rows: auto auto minmax(var(--price-plan-list-min), 1fr) auto;
    align-content: stretch;
}

.landing-pricing.is-single-module .price-card a {
    align-self: end;
    margin-top: 6px;
}

.landing-pricing.is-single-module {
    --price-plan-list-min: clamp(66px, 5vw, 88px);
}

.landing-pricing.is-two-modules {
    --price-plan-list-min: clamp(112px, 7vw, 138px);
}

.landing-pricing.is-three-modules {
    --price-plan-list-min: clamp(150px, 9vw, 178px);
}

.price-card a {
    height: 48px;
    min-height: 48px;
    padding-top: 0;
    padding-bottom: 0;
}

.landing-contact-form {
    width: 100%;
    max-width: none;
}

.landing-final {
    grid-template-columns: minmax(320px, 0.9fr) minmax(0, 1fr);
}

.landing-bottom-inner {
    width: 100%;
    max-width: var(--landing-container-max);
    margin-right: auto;
    margin-left: auto;
    padding-right: var(--landing-gutter);
    padding-left: var(--landing-gutter);
}

.module-public-hero {
    padding-right: var(--landing-gutter);
    padding-left: var(--landing-gutter);
}

.module-public-hero .landing-nav,
.module-public-hero-inner,
.module-public-section {
    width: 100%;
    max-width: var(--landing-container-max);
    margin-right: auto;
    margin-left: auto;
    padding-right: var(--landing-gutter);
    padding-left: var(--landing-gutter);
}

.module-public-hero .landing-nav,
.module-public-hero-inner {
    padding-right: 0;
    padding-left: 0;
}

.landing-page .landing-hero,
.landing-page .module-public-hero {
    padding-top: calc(var(--landing-nav-space) + 24px);
}

.landing-page .landing-nav {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    z-index: 1000;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 18px var(--landing-nav-inline);
    border-bottom: 1px solid rgba(0, 105, 122, 0.12);
    background: rgba(232, 245, 246, 0.94);
    box-shadow: 0 1px 0 rgba(43, 47, 51, 0.04);
    opacity: 1;
    transform: translateY(0);
    visibility: visible;
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    transition: padding 0.22s ease, background 0.22s ease, box-shadow 0.22s ease, opacity 0.18s ease, transform 0.22s ease, visibility 0s linear;
}

.landing-theme-toggle {
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--brand-sys);
    cursor: pointer;
    box-shadow: none;
    transition: background 0.22s ease, border-color 0.22s ease, color 0.22s ease, box-shadow 0.22s ease, transform 0.22s ease, width 0.22s ease, height 0.22s ease;
}

.landing-theme-toggle span {
    font-size: 19px;
    line-height: 1;
}

.landing-theme-toggle:hover {
    background: transparent;
    color: var(--brand-alki);
    box-shadow: none;
    transform: translateY(-1px);
}

.landing-theme-toggle:focus-visible {
    outline: 3px solid rgba(0, 95, 107, 0.22);
    outline-offset: 3px;
}

.landing-page .landing-brand .brand-mark,
.landing-page .landing-brand .brand-wordmark,
.landing-page .landing-nav-links,
.landing-page .landing-nav-actions,
.landing-page .landing-command,
.landing-page .landing-register,
.landing-page .landing-theme-toggle {
    transition: width 0.22s ease, height 0.22s ease, font-size 0.22s ease, gap 0.22s ease, min-height 0.22s ease, padding 0.22s ease, opacity 0.22s ease, background 0.22s ease, border-color 0.22s ease, color 0.22s ease, box-shadow 0.22s ease, transform 0.22s ease;
}

.landing-page.is-nav-compact .landing-nav {
    padding-top: 9px;
    padding-bottom: 9px;
    background: rgba(232, 245, 246, 0.72);
    box-shadow: 0 14px 34px rgba(0, 55, 70, 0.13);
}

.landing-page.is-nav-compact .landing-brand .brand-mark {
    width: 33.6px;
    height: 33.6px;
}

.landing-page.is-nav-compact .landing-brand .brand-wordmark {
    width: clamp(120px, 10.8vw, 156px);
    max-width: 24vw;
}

.landing-page.is-nav-compact .landing-nav-links {
    gap: 8px 12px;
    font-size: 14px;
}

.landing-page.is-nav-compact .landing-command,
.landing-page.is-nav-compact .landing-register {
    min-height: 38px;
    padding-right: 12px;
    padding-left: 12px;
    font-size: 14px;
}

.landing-page.is-nav-compact .landing-theme-toggle {
    width: 28px;
    height: 28px;
}

.landing-page.is-nav-hidden .landing-nav {
    opacity: 0;
    transform: translateY(-100%);
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.18s ease, transform 0.22s ease, visibility 0s linear 0.22s;
}

.landing-page section[id] {
    scroll-margin-top: calc(var(--landing-nav-space) + 18px);
}

.landing-page #contacto {
    scroll-margin-top: 0;
}

.legal-document {
    display: grid;
    gap: clamp(26px, 4vw, 42px);
    max-width: min(100%, 960px);
    padding-top: calc(var(--landing-nav-space) + clamp(36px, 5vw, 64px));
    padding-bottom: clamp(56px, 7vw, 88px);
}

.legal-document-head {
    display: grid;
    gap: 12px;
}

.legal-document-head h1 {
    margin: 0;
    color: var(--brand-sys);
    font-family: var(--font-title);
    font-size: clamp(36px, 5vw, 58px);
    font-weight: 600;
    line-height: 1.04;
}

.legal-document-head p {
    max-width: 780px;
    margin: 0;
    color: var(--muted);
    font-size: clamp(16px, 1.3vw, 18px);
    line-height: 1.58;
}

.legal-document-head .eyebrow {
    color: var(--brand-alki);
}

.legal-document-head .legal-updated {
    color: var(--ink);
    font-weight: 600;
}

.legal-index {
    display: grid;
    gap: 14px;
    padding: 20px 0;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}

.legal-index h2 {
    margin: 0;
    color: var(--ink);
    font-family: var(--font-title);
    font-size: 22px;
    font-weight: 600;
    line-height: 1.16;
}

.legal-index ol {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 28px;
    margin: 0;
    padding-left: 20px;
    color: var(--muted);
    line-height: 1.45;
}

.legal-index a {
    color: var(--brand-sys);
    font-weight: 600;
    text-decoration: none;
}

.legal-index a:hover {
    color: var(--brand-alki);
}

.legal-document-content {
    display: grid;
    gap: clamp(28px, 4vw, 44px);
}

.legal-document-content section {
    display: grid;
    gap: 11px;
}

.legal-document-content h2 {
    margin: 0;
    color: var(--ink);
    font-family: var(--font-title);
    font-size: clamp(22px, 2.6vw, 30px);
    font-weight: 600;
    line-height: 1.16;
}

.legal-document-content p,
.legal-document-content li {
    color: var(--muted);
    font-size: clamp(15px, 1.12vw, 17px);
    line-height: 1.68;
}

.legal-document-content p {
    margin: 0;
}

.legal-document-content ul {
    display: grid;
    gap: 8px;
    margin: 0;
    padding-left: 20px;
}

.legal-contact-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.legal-contact-links a {
    color: var(--brand-sys);
    font-size: clamp(15px, 1.12vw, 17px);
    font-weight: 700;
    line-height: 1.6;
    text-decoration: none;
}

.legal-contact-links a:hover {
    color: var(--brand-alki);
}

.landing-faq-inner {
    display: grid;
    grid-template-columns: minmax(0, 0.95fr) minmax(320px, 0.72fr);
    gap: clamp(34px, 5vw, 72px);
    align-items: center;
}

.landing-faq-content {
    min-width: 0;
}

.landing-faq .landing-section-head {
    max-width: none;
    margin-bottom: 16px;
    text-align: left;
}

.landing-faq .landing-section-head h2 {
    max-width: none;
    font-size: 36.1px;
}

.landing-faq .faq-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
}

.landing-faq-art {
    width: 100%;
    max-width: 520px;
    justify-self: end;
    object-fit: contain;
}

.faq-grid details {
    border-top: 1px solid rgba(196, 209, 212, 0.78);
}

.faq-grid details:last-child {
    border-bottom: 1px solid rgba(196, 209, 212, 0.78);
}

.faq-grid summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    padding: 22px 0;
    color: var(--ink);
    font-family: var(--font-title);
    font-size: clamp(20px, 2vw, 24px);
    font-weight: 600;
    line-height: 1.2;
    cursor: pointer;
    list-style: none;
}

.landing-faq .faq-grid details:nth-child(1) summary {
    --scroll-motion-delay: 0s;
}

.landing-faq .faq-grid details:nth-child(2) summary {
    --scroll-motion-delay: 0.13s;
}

.landing-faq .faq-grid details:nth-child(3) summary {
    --scroll-motion-delay: 0.26s;
}

.landing-faq .faq-grid details:nth-child(4) summary {
    --scroll-motion-delay: 0.39s;
}

.landing-faq.is-scroll-motion-ready .faq-grid summary {
    opacity: 0;
    transform: translateX(-76px);
    will-change: transform, opacity;
}

.landing-faq.is-scroll-motion-visible .faq-grid summary {
    animation: benefitBlockEnter 0.78s cubic-bezier(0.18, 0.84, 0.28, 1) var(--scroll-motion-delay, 0s) both;
}

.faq-grid summary::-webkit-details-marker {
    display: none;
}

.faq-grid summary::after {
    color: var(--brand-alki);
    font-size: 28px;
    font-weight: 400;
    line-height: 1;
    content: "+";
}

.faq-grid details[open] summary::after {
    content: "-";
}

.faq-grid details p {
    max-width: 760px;
    margin: -6px 0 22px;
    color: var(--muted);
    font-size: 17px;
    line-height: 1.5;
}

.landing-contact {
    background: #f8fbfb;
    box-shadow: 0 0 0 100vmax #f8fbfb;
}

.landing-contact > .landing-contact-form {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
    align-items: start;
    justify-content: center;
    justify-items: center;
    margin: 0 auto;
}

.landing-contact .landing-contact-head {
    max-width: none;
    margin-bottom: 0;
    text-align: center;
}

.landing-contact .landing-contact-head h2 {
    max-width: none;
    white-space: nowrap;
    font-size: clamp(34px, 3.4vw, 48px);
}

.landing-contact .landing-contact-fields {
    width: 100%;
    max-width: 520px;
}

.landing-contact .landing-contact-layout {
    width: min(100%, 1098px);
    grid-template-columns: minmax(300px, 520px) minmax(380px, 520px);
    gap: clamp(26px, 4vw, 58px);
    align-items: start;
    justify-content: center;
}

.landing-contact .landing-contact-message {
    width: 100%;
    max-width: 520px;
}

.landing-contact .landing-message-field textarea {
    min-height: 178px;
}

.landing-contact .landing-contact-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    justify-self: end;
    min-height: 48px;
    padding: 0 28px;
    border-radius: 8px;
    font-size: 16px;
    font-weight: 600;
}

.landing-contact-art {
    display: none;
}

.landing-cta-strip {
    padding: clamp(14px, 1.9vw, 22px) var(--landing-gutter);
    background: #eef8f8;
}

.landing-cta-strip-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: clamp(22px, 4vw, 54px);
    width: 100%;
    max-width: var(--landing-container-max);
    margin: 0 auto;
}

.landing-cta-strip h2 {
    max-width: 760px;
    margin: 0;
    color: var(--ink);
    font-family: var(--font-title);
    font-size: clamp(20px, 2.05vw, 27px);
    font-weight: 400;
    line-height: 1.12;
    letter-spacing: 0;
}

.landing-cta-strip .landing-actions {
    flex: 0 0 auto;
    margin-top: 0;
}

.landing-cta-strip .landing-actions a {
    min-height: 36px;
    padding-right: 14px;
    padding-left: 14px;
    font-size: 14px;
    font-weight: 400;
}

.landing-contact-form input::placeholder,
.landing-contact-form textarea::placeholder {
    color: rgba(43, 47, 51, 0.48);
}

html[data-landing-theme="dark"] {
    background: #0f1416;
    color-scheme: dark;
}

html[data-landing-theme="dark"] body.landing-body {
    background: #0f1416;
    color: #eef7f7;
}

html[data-landing-theme="dark"] .landing-page {
    --ink: #eef7f7;
    --muted: #c0d0d2;
    --muted-soft: #91a6aa;
    --line: rgba(196, 224, 226, 0.2);
    --line-strong: rgba(196, 224, 226, 0.3);
    color: var(--ink);
    background: #0f1416;
}

html[data-landing-theme="dark"] .landing-map-page {
    background:
        radial-gradient(circle at 8% 30%, rgba(11, 127, 137, 0.22), transparent 30rem),
        radial-gradient(circle at 94% 68%, rgba(183, 121, 31, 0.14), transparent 32rem),
        #0f1416;
}

html[data-landing-theme="dark"] .landing-map-picker {
    border-color: rgba(120, 205, 210, 0.24);
    background: linear-gradient(135deg, #053f48 0%, #075e68 66%, #193f78 145%);
    box-shadow: 0 22px 52px rgba(0, 0, 0, 0.34);
}

html[data-landing-theme="dark"] .landing-map-type-card {
    border-color: rgba(196, 224, 226, 0.16);
    background: rgba(15, 20, 22, 0.92);
    color: #ffffff;
    box-shadow: 0 13px 30px rgba(0, 0, 0, 0.26);
}

html[data-landing-theme="dark"] .landing-map-type-card-parking {
    --landing-map-type-accent: #78cdd2;
}

html[data-landing-theme="dark"] .landing-map-type-card-property {
    --landing-map-type-accent: #dfae65;
}

html[data-landing-theme="dark"] .landing-map-type-card-vehicle {
    --landing-map-type-accent: #83ace4;
}

html[data-landing-theme="dark"] .landing-map-type-card:hover,
html[data-landing-theme="dark"] .landing-map-type-card:has(input:checked) {
    border-color: var(--landing-map-type-accent);
    box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.12), 0 17px 36px rgba(0, 0, 0, 0.34);
}

html[data-landing-theme="dark"] .landing-map-type-copy small {
    color: #c0d0d2;
}

html[data-landing-theme="dark"] .landing-map-type-icon,
html[data-landing-theme="dark"] .landing-map-type-state {
    background: color-mix(in srgb, var(--landing-map-type-accent) 22%, #11191b);
}

html[data-landing-theme="dark"] .landing-map-category-notice {
    border-color: rgba(120, 205, 210, 0.22);
    border-left-color: #d49a43;
    background: linear-gradient(110deg, #172b2f 0%, #172124 58%, #211d16 100%);
    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.26);
}

html[data-landing-theme="dark"] .landing-map-category-notice .landing-map-picker-kicker {
    color: #8bdcdf;
}

html[data-landing-theme="dark"] .landing-map-category-notice :is(h2, p) {
    color: #ffffff;
}

html[data-landing-theme="dark"] .landing-map-head {
    border-color: rgba(120, 205, 210, 0.22);
    background: linear-gradient(135deg, #064b55 0%, #0b7079 72%, #193f78 145%);
    box-shadow: 0 20px 46px rgba(0, 0, 0, 0.32);
}

html[data-landing-theme="dark"] .landing-map-head::after {
    background: rgba(183, 121, 31, 0.24);
}

html[data-landing-theme="dark"] .landing-map-open {
    background: #ffffff;
    color: #005f6b;
}

html[data-landing-theme="dark"] .landing-map-page :is(
    .landing-map-head h2,
    .landing-map-head p,
    .landing-map-summary span,
    .landing-map-summary strong,
    .landing-map-summary p,
    .landing-map-list-head h2,
    .landing-map-list-head span,
    .landing-map-list-item h3,
    .landing-map-list-item p,
    .landing-map-list-item span,
    .landing-map-list-actions small,
    .landing-map-empty
) {
    color: #ffffff;
}

html[data-landing-theme="dark"] .landing-map-summary {
    border-color: rgba(120, 205, 210, 0.22);
    background: linear-gradient(110deg, #172b2f 0%, #172124 58%, #211d16 100%);
    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.24);
}

html[data-landing-theme="dark"] .landing-map-summary strong {
    border-color: rgba(120, 205, 210, 0.22);
}

html[data-landing-theme="dark"] .landing-map-summary p {
    border-color: rgba(223, 174, 101, 0.24);
}

html[data-landing-theme="dark"] .landing-map-summary span::before {
    background: #78cdd2;
    box-shadow: 0 0 0 5px rgba(120, 205, 210, 0.14);
}

html[data-landing-theme="dark"] .landing-map-shell {
    background: linear-gradient(135deg, #08717d 0%, #0b7f89 68%, #9b681d 118%);
    box-shadow: 0 22px 52px rgba(0, 0, 0, 0.34);
}

html[data-landing-theme="dark"] .landing-map-canvas {
    background: #172124;
}

html[data-landing-theme="dark"] .landing-map-list-head {
    border-bottom-color: rgba(196, 224, 226, 0.22);
}

html[data-landing-theme="dark"] .landing-map-list-item {
    border-top-color: rgba(196, 224, 226, 0.18);
    border-right-color: rgba(196, 224, 226, 0.18);
    border-bottom-color: rgba(196, 224, 226, 0.18);
    background: linear-gradient(100deg, rgba(0, 95, 107, 0.24) 0%, #172124 44%);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.22);
}

html[data-landing-theme="dark"] .landing-map-list-actions a {
    color: #78cdd2;
}

html[data-landing-theme="dark"] .landing-map-empty {
    border-color: rgba(196, 224, 226, 0.26);
    background: rgba(23, 33, 36, 0.9);
}

html[data-landing-theme="dark"] .legal-document-head h1,
html[data-landing-theme="dark"] .legal-index a,
html[data-landing-theme="dark"] .legal-contact-links a {
    color: #ffffff;
    opacity: 1;
}

html[data-landing-theme="dark"] .legal-index a:hover,
html[data-landing-theme="dark"] .legal-contact-links a:hover {
    color: #4fd3d6;
}

html[data-landing-theme="dark"] .landing-benefits {
    position: relative;
    background: #0f1416;
    box-shadow: 0 0 0 100vmax #0f1416;
    clip-path: inset(0 -100vmax);
}

html[data-landing-theme="dark"] .landing-hero::before {
    background: linear-gradient(180deg, #13282b 0%, #0f1416 100%);
}

html[data-landing-theme="dark"] .landing-page .landing-nav {
    border-bottom-color: rgba(0, 95, 107, 0.16);
    background: rgba(204, 219, 221, 0.82);
    box-shadow: 0 16px 38px rgba(0, 0, 0, 0.18);
}

html[data-landing-theme="dark"] .landing-page.is-nav-compact .landing-nav {
    background: rgba(204, 219, 221, 0.74);
}

html[data-landing-theme="dark"] .landing-brand .brand-sys,
html[data-landing-theme="dark"] .landing-nav-links,
html[data-landing-theme="dark"] .landing-nav-menu summary {
    color: var(--brand-sys);
}

html[data-landing-theme="dark"] .landing-brand .brand-alki,
html[data-landing-theme="dark"] .landing-nav-menu summary::after {
    color: var(--brand-alki);
}

html[data-landing-theme="dark"] .landing-hero-copy .eyebrow {
    color: #4fd3d6;
}

html[data-landing-theme="dark"] .landing-brand .brand-wordmark-light {
    display: block;
}

html[data-landing-theme="dark"] .landing-brand .brand-wordmark-dark {
    display: none;
}

html[data-landing-theme="dark"] .landing-theme-toggle {
    border-color: transparent;
    background: transparent;
    color: var(--brand-sys);
    box-shadow: none;
}

html[data-landing-theme="dark"] .landing-theme-toggle:hover {
    background: transparent;
    color: var(--brand-alki);
    box-shadow: none;
}

html[data-landing-theme="dark"] .landing-theme-toggle:focus-visible {
    outline-color: rgba(79, 226, 226, 0.36);
}

html[data-landing-theme="dark"] .landing-register {
    border-color: rgba(43, 47, 51, 0.16);
    background: rgba(255, 255, 255, 0.88);
    color: var(--brand-sys);
}

html[data-landing-theme="dark"] .landing-secondary {
    border-color: rgba(196, 224, 226, 0.26);
    background: rgba(255, 255, 255, 0.08);
    color: #f5fbfb;
}

html[data-landing-theme="dark"] .landing-nav-menu > div {
    border-color: rgba(196, 224, 226, 0.2);
    background: #151e21;
    box-shadow: 0 18px 38px rgba(0, 0, 0, 0.34);
}

html[data-landing-theme="dark"] .landing-nav-menu > div a {
    color: #e9f5f6;
}

html[data-landing-theme="dark"] .landing-nav-menu > div a:hover {
    background: rgba(79, 226, 226, 0.12);
    color: #4fd3d6;
}

html[data-landing-theme="dark"] .reference-card,
html[data-landing-theme="dark"] .faq-grid article,
html[data-landing-theme="dark"] .price-card {
    border-color: rgba(196, 224, 226, 0.2);
    background: linear-gradient(180deg, #172124 0%, #12191c 100%);
    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.24);
}

html[data-landing-theme="dark"] .landing-trust article {
    border-color: rgba(64, 169, 179, 0.34);
    border-top-color: rgba(39, 193, 207, 0.78);
    background: linear-gradient(180deg, rgba(0, 95, 107, 0.24) 0%, rgba(18, 25, 28, 0.97) 100%);
    box-shadow: 0 16px 38px rgba(0, 0, 0, 0.28), inset 0 1px 0 rgba(118, 224, 229, 0.08);
}

html[data-landing-theme="dark"] .landing-trust article:nth-child(2) {
    border-color: rgba(183, 121, 31, 0.34);
    border-top-color: rgba(218, 157, 65, 0.78);
    background: linear-gradient(180deg, rgba(183, 121, 31, 0.22) 0%, rgba(21, 25, 28, 0.97) 100%);
}

html[data-landing-theme="dark"] .landing-trust article:nth-child(3) {
    border-color: rgba(37, 99, 235, 0.32);
    border-top-color: rgba(92, 145, 255, 0.76);
    background: linear-gradient(180deg, rgba(37, 99, 235, 0.2) 0%, rgba(18, 25, 28, 0.97) 100%);
}

html[data-landing-theme="dark"] .landing-trust article:nth-child(4) {
    border-color: rgba(190, 75, 91, 0.34);
    border-top-color: rgba(224, 108, 124, 0.76);
    background: linear-gradient(180deg, rgba(190, 75, 91, 0.2) 0%, rgba(18, 25, 28, 0.97) 100%);
}

html[data-landing-theme="dark"] .benefit-grid article {
    border-color: transparent;
    background: transparent;
    box-shadow: none;
}

html[data-landing-theme="dark"] .benefit-grid h3 {
    color: #eef7f7;
}

html[data-landing-theme="dark"] .benefit-grid p {
    color: #c0d0d2;
}

html[data-landing-theme="dark"] .benefit-grid span {
    color: rgba(244, 128, 143, 0.5);
}

html[data-landing-theme="dark"] .benefit-grid article:nth-child(2) span {
    color: rgba(79, 211, 214, 0.5);
}

html[data-landing-theme="dark"] .benefit-grid article:nth-child(3) span {
    color: rgba(223, 174, 101, 0.54);
}

html[data-landing-theme="dark"] .benefit-grid article:nth-child(4) span {
    color: rgba(134, 167, 245, 0.54);
}

html[data-landing-theme="dark"] .module-feature {
    border-color: rgba(196, 224, 226, 0.18);
    background: linear-gradient(135deg, #12191c 0%, #172326 58%, #102629 100%);
    box-shadow: 0 16px 38px rgba(0, 0, 0, 0.24);
}

html[data-landing-theme="dark"] .module-feature-estacionamiento {
    border-color: rgba(223, 174, 101, 0.28);
    background: linear-gradient(135deg, #12191c 0%, #1d1a13 58%, #102629 100%);
}

html[data-landing-theme="dark"] .module-feature-flota {
    border-color: rgba(134, 167, 245, 0.24);
    background: linear-gradient(135deg, #12191c 0%, #141d2b 58%, #102629 100%);
}

html[data-landing-theme="dark"] .landing-references {
    background: #12191c;
    box-shadow: 0 0 0 100vmax #12191c;
    clip-path: inset(0 -100vmax);
}

html[data-landing-theme="dark"] .landing-faq {
    background: #0f1416;
}

html[data-landing-theme="dark"] .reference-card p,
html[data-landing-theme="dark"] .reference-card strong,
html[data-landing-theme="dark"] .price-card h3,
html[data-landing-theme="dark"] .price-plan-list strong {
    color: #eef7f7;
}

html[data-landing-theme="dark"] .reference-control {
    border-color: rgba(79, 226, 226, 0.24);
    background: #151e21;
    color: #4fd3d6;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.24);
}

html[data-landing-theme="dark"] .landing-pricing {
    background: #191f23;
    box-shadow: 0 0 0 100vmax #191f23;
}

html[data-landing-theme="dark"] .price-card {
    color: #eef7f7;
}

html[data-landing-theme="dark"] .price small,
html[data-landing-theme="dark"] .price-value > span {
    color: #c0d0d2;
}

html[data-landing-theme="dark"] .price-card a {
    background: #e7f3f4;
    color: #111417;
}

html[data-landing-theme="dark"] .price-card.is-featured a {
    background: var(--pricing-module-accent, var(--brand-alki));
    color: #ffffff;
}

html[data-landing-theme="dark"] .pricing-toggle {
    border-color: rgba(196, 224, 226, 0.22);
    background: #12191c;
}

html[data-landing-theme="dark"] .pricing-toggle-option {
    color: #dce9ea;
}

html[data-landing-theme="dark"] #pricing-monthly:checked ~ .pricing-inner .pricing-toggle-monthly {
    background: #e7f3f4;
    color: #111417;
}

html[data-landing-theme="dark"] #module-plans-monthly:checked ~ .landing-section-head .module-plan-toggle-monthly {
    background: #e7f3f4;
    color: #111417;
}

html[data-landing-theme="dark"] .pricing-discounts article {
    border-color: rgba(196, 224, 226, 0.16);
    background: rgba(255, 255, 255, 0.07);
}

html[data-landing-theme="dark"] .pricing-discounts article.is-active {
    border-color: var(--pricing-module-border, #66b5bd);
    background: var(--pricing-module-accent, var(--brand-alki));
    box-shadow: 0 16px 32px var(--pricing-module-shadow, rgba(0, 95, 107, 0.22));
}

html[data-landing-theme="dark"] .pricing-discounts article[data-discount-card="annual"].is-active {
    border-color: rgba(190, 75, 91, 0.82);
    background: var(--accent-rose);
    box-shadow: 0 16px 32px rgba(190, 75, 91, 0.34);
}

html[data-landing-theme="dark"] .faq-grid details {
    border-top-color: rgba(196, 224, 226, 0.22);
}

html[data-landing-theme="dark"] .faq-grid details:last-child {
    border-bottom-color: rgba(196, 224, 226, 0.22);
}

html[data-landing-theme="dark"] .landing-contact {
    background: #12191c;
    box-shadow: 0 0 0 100vmax #12191c;
}

html[data-landing-theme="dark"] .landing-contact-form label,
html[data-landing-theme="dark"] .landing-contact-phone-field {
    color: #eef7f7;
}

html[data-landing-theme="dark"] .landing-contact-form input,
html[data-landing-theme="dark"] .landing-contact-form textarea,
html[data-landing-theme="dark"] .landing-contact .country-picker-button {
    border-color: rgba(196, 224, 226, 0.28);
    background: #172124;
    color: #eef7f7;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.22);
}

html[data-landing-theme="dark"] .landing-contact .country-picker-menu {
    border-color: rgba(196, 224, 226, 0.22);
    background: #151e21;
    box-shadow: 0 18px 36px rgba(0, 0, 0, 0.34);
}

html[data-landing-theme="dark"] .landing-contact .country-picker-option {
    color: #eef7f7;
}

html[data-landing-theme="dark"] .landing-contact .country-picker-option:hover,
html[data-landing-theme="dark"] .landing-contact .country-picker-option.is-selected {
    background: rgba(79, 226, 226, 0.14);
}

html[data-landing-theme="dark"] .landing-contact-form input::placeholder,
html[data-landing-theme="dark"] .landing-contact-form textarea::placeholder {
    color: rgba(224, 241, 242, 0.54);
}

html[data-landing-theme="dark"] .landing-contact-form input:focus,
html[data-landing-theme="dark"] .landing-contact-form textarea:focus {
    border-color: #4fd3d6;
    outline-color: rgba(79, 226, 226, 0.22);
}

html[data-landing-theme="dark"] .landing-cta-strip {
    background: #0e3c43;
}

html[data-landing-theme="dark"] .landing-cta-strip h2 {
    color: #eef7f7;
}

@media (max-width: 1180px) {
    .landing-hero {
        grid-template-columns: minmax(0, 0.92fr) minmax(300px, 1fr);
    }

    .landing-brand .brand-mark {
        width: 38.4px;
        height: 38.4px;
    }

    .landing-brand .brand-wordmark {
        width: 162px;
        max-width: 28.8vw;
    }

    .landing-nav-links {
        font-size: 15px;
    }

    .landing-command,
    .landing-register {
        font-size: 15px;
    }

    .landing-trust,
    .pricing-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .landing-benefits {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .landing-cta-strip-inner {
        align-items: flex-start;
        flex-direction: column;
    }

    .pricing-head {
        grid-template-columns: 1fr;
    }

    .pricing-controls {
        grid-row: auto;
        grid-column: auto;
        justify-self: end;
        width: min(100%, 660px);
    }

    .landing-bottom-main {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px 29px;
    }

    .landing-bottom-legal {
        gap: 14px;
    }

    .landing-contact .landing-contact-layout {
        grid-template-columns: minmax(280px, 1fr) minmax(360px, 1fr);
    }

    .landing-contact-art {
        grid-column: 1 / -1;
        width: min(100%, 420px);
        justify-self: end;
    }
}

@media (max-width: 820px) {
    .landing-page {
        --landing-nav-space: 132px;
        --landing-section-space: 42px;
        --landing-compact-section-space: 21px;
    }

    .landing-hero {
        grid-template-columns: 1fr;
        grid-template-areas:
            "copy"
            "art";
        gap: 28px;
        padding: 18px var(--landing-gutter) 42px;
    }

    .landing-nav {
        display: flex;
        align-items: flex-start;
        flex-direction: column;
        width: 100%;
    }

    .landing-page .landing-nav {
        display: flex;
        align-items: center;
        flex-direction: row;
        flex-wrap: wrap;
        gap: 8px 10px;
        padding-top: 12px;
        padding-bottom: 12px;
    }

    .landing-brand .brand-mark {
        width: 34.8px;
        height: 34.8px;
    }

    .landing-brand .brand-wordmark {
        width: 126px;
        max-width: 32.4vw;
    }

    .landing-nav-links {
        align-items: stretch;
        justify-content: flex-start;
        width: 100%;
        flex-direction: column;
    }

    .landing-page .landing-nav-links {
        align-items: center;
        flex: 0 0 auto;
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: flex-end;
        gap: 8px;
        width: auto;
        margin-left: auto;
        font-size: 13px;
    }

    .landing-page .landing-nav-links > a,
    .landing-page .landing-nav-menu {
        display: none;
    }

    .landing-page .landing-nav-actions {
        align-items: center;
        flex: 1 1 100%;
        flex-direction: row;
        justify-content: flex-start;
        gap: 8px;
        width: 100%;
    }

    .landing-page .landing-command,
    .landing-page .landing-register {
        flex: 1 1 136px;
        width: auto;
        min-height: 34px;
        padding-right: 10px;
        padding-left: 10px;
        font-size: 13px;
    }

    .landing-page.is-nav-compact .landing-nav {
        padding-top: 7px;
        padding-bottom: 7px;
    }

    .landing-page.is-nav-compact .landing-brand .brand-mark {
        width: 26.4px;
        height: 26.4px;
    }

    .landing-page.is-nav-compact .landing-brand .brand-wordmark {
        width: 103.2px;
        max-width: 30vw;
    }

    .landing-hero-copy {
        margin-top: 0;
    }

    .landing-hero-copy .eyebrow {
        font-size: clamp(24px, 8vw, 30px);
    }

    .landing-hero-copy .eyebrow span {
        white-space: normal;
    }

    .landing-hero-copy p:not(.eyebrow) {
        font-size: 15px;
    }

    .landing-hero-copy p:not(.eyebrow) br,
    .landing-section-head p:not(.eyebrow) br,
    .landing-trust span br {
        display: inline;
    }

    .landing-hero-copy p:not(.eyebrow) br::after,
    .landing-section-head p:not(.eyebrow) br::after,
    .landing-trust span br::after {
        content: " ";
    }

    .landing-section-head h2,
    .landing-contact-head h2,
    .feature-copy h2,
    .landing-final h2 {
        font-size: clamp(25px, 7vw, 28px);
        overflow-wrap: break-word;
    }

    .landing-hero-copy p:not(.eyebrow),
    .landing-section-head p:not(.eyebrow),
    .landing-trust span {
        overflow-wrap: break-word;
    }

    .landing-hero-art {
        justify-self: center;
        width: 100%;
        max-height: 320px;
        margin-top: 0;
    }

    .landing-trust,
    .benefit-grid,
    .landing-faq-inner,
    .faq-grid,
    .landing-contact-form,
    .landing-contact-layout,
    .pricing-grid,
    .pricing-discounts,
    .landing-feature,
    .feature-alt,
    .landing-final {
        grid-template-columns: 1fr;
    }

    .pricing-controls {
        justify-self: stretch;
        max-width: none;
        width: 100%;
    }

    .landing-faq-inner {
        gap: 24px;
    }

    .landing-faq .landing-section-head h2 {
        font-size: clamp(23.75px, 6.65vw, 26.6px);
    }

    .landing-faq-art {
        max-width: 430px;
        justify-self: center;
    }

    .pricing-toggle {
        width: 100%;
        max-width: none;
    }

    .pricing-module-toggle {
        grid-template-columns: 1fr;
    }

    .landing-trust {
        margin-top: 0;
        margin-bottom: 34px;
    }

    .landing-benefits {
        gap: 28px;
    }

    .benefit-grid {
        gap: 22px;
    }

    .benefit-grid article {
        grid-template-columns: minmax(116px, 0.32fr) minmax(0, 1fr);
        gap: 16px;
    }

    .benefit-grid span {
        font-size: clamp(44px, 14vw, 60px);
    }

    .module-feature {
        padding-top: 34px;
        padding-bottom: 34px;
    }

    .module-feature img,
    .landing-feature img,
    .landing-final img {
        max-height: 320px;
    }

    .feature-alt .feature-copy {
        justify-self: stretch;
    }

    .landing-contact-submit,
    .module-detail-link {
        width: 100%;
    }

    .landing-contact > .landing-contact-form {
        grid-template-columns: 1fr;
    }

    .landing-contact .landing-contact-layout {
        grid-template-columns: 1fr;
    }

    .landing-contact-art {
        width: min(100%, 360px);
        max-height: 240px;
        justify-self: center;
    }

    .landing-contact .landing-contact-head h2 {
        white-space: normal;
    }

    .landing-cta-strip-inner {
        gap: 16px;
    }

    .landing-cta-strip .landing-actions {
        width: 100%;
    }

    .landing-cta-strip .landing-actions a {
        flex: 1 1 150px;
        justify-content: center;
    }

    .faq-grid summary {
        padding: 18px 0;
        font-size: 20px;
    }

    .landing-bottom-inner {
        gap: 14px;
    }

    .landing-bottom-main {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .landing-bottom-brand,
    .landing-bottom-column,
    .landing-bottom-legal nav {
        justify-items: center;
        text-align: center;
    }

    .landing-bottom-brand-line {
        justify-content: center;
    }

    .landing-bottom-brand p {
        text-align: center;
    }

    .landing-bottom-socials {
        justify-content: center;
    }

    .landing-bottom-copy {
        padding-top: 11px;
    }
}

@media (max-width: 520px) {
    .parking-entry-modes-grid {
        grid-template-columns: 1fr;
    }

    .variable-row-grid-vehicles .variable-row {
        grid-template-columns: 1fr;
    }

    .variable-row-grid-vehicles .vehicle-category-main-cell,
    .variable-row-grid-vehicles .vehicle-category-models-cell,
    .variable-row-grid-vehicles .vehicle-category-capacity-cell,
    .variable-row-grid-vehicles .variable-row .variable-row-actions {
        grid-column: auto;
    }

    .variable-row-grid-vehicles .variable-row .variable-row-actions {
        justify-self: stretch;
    }

    .landing-bottom-brand-line {
        align-items: center;
        flex-direction: column;
        gap: 8px;
    }

    .landing-bottom-logo {
        width: 38px;
        height: 38px;
    }

    .landing-bottom-logo img {
        width: 27px;
        height: 27px;
    }

    .landing-bottom-social {
        width: 32px;
        height: 32px;
    }

    .landing-bottom-social img {
        width: 19px;
        height: 19px;
    }
}

/* Estacionamiento module landing */
.module-public-page-estacionamiento {
    background: #ffffff;
}

.module-public-page-estacionamiento .module-public-hero {
    background: linear-gradient(180deg, #e8f5f6 0%, #f9fdfd 64%, #ffffff 100%);
    padding-bottom: clamp(14px, 2vw, 24px);
}

.module-public-page-estacionamiento .module-public-hero-inner {
    grid-template-columns: minmax(0, 0.7fr) minmax(480px, 1fr);
    gap: clamp(24px, 3.5vw, 46px);
    margin-top: clamp(18px, 3vw, 32px);
}

.module-public-page-estacionamiento .module-public-copy {
    gap: 14px;
}

.module-public-page-estacionamiento .module-public-copy h1 {
    max-width: 660px;
    font-family: var(--font-title);
    font-size: clamp(36px, 4vw, 52px);
    font-weight: var(--font-semibold);
    line-height: 1.02;
    letter-spacing: 0;
    text-transform: none;
    overflow-wrap: anywhere;
}

.module-public-page-estacionamiento .module-public-copy p:not(.eyebrow) {
    max-width: 650px;
    color: #435154;
    font-size: clamp(17px, 1.5vw, 20px);
}

.module-public-page-estacionamiento .module-public-copy .landing-actions {
    margin-top: 12px;
}

.module-public-page-estacionamiento .module-public-copy .landing-secondary {
    border-color: var(--brand-sys);
    background: var(--brand-sys);
    color: #ffffff;
}

.module-public-page-estacionamiento .module-public-section-image {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    border: 1px solid rgba(196, 209, 212, 0.76);
    border-radius: 8px;
    object-fit: cover;
    box-shadow: 0 20px 48px rgba(0, 95, 107, 0.12);
}

.module-public-page-estacionamiento .module-public-hero-visual {
    position: relative;
    z-index: 0;
    isolation: isolate;
    width: 100%;
    min-width: 0;
    padding: 0;
    background: transparent;
    box-shadow: none;
}

.module-public-page-estacionamiento .module-public-hero-visual > img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: auto;
    border: 0;
    border-radius: 0;
    object-fit: contain;
    box-shadow: none;
    filter: drop-shadow(0 24px 28px rgba(19, 60, 65, 0.2));
}

.module-public-page-estacionamiento .module-public-section {
    width: calc(100% - var(--landing-gutter) - var(--landing-gutter));
    max-width: var(--landing-container-max);
    margin-right: auto;
    margin-left: auto;
    padding-top: clamp(18px, 2.5vw, 32px);
    padding-right: 0;
    padding-bottom: clamp(18px, 2.5vw, 32px);
    padding-left: 0;
}

.module-public-page-estacionamiento .landing-section-head {
    max-width: 790px;
    gap: 6px;
    margin-bottom: 10px;
}

.module-public-page-estacionamiento .landing-section-head p:not(.eyebrow) {
    max-width: 760px;
}

.module-public-page-estacionamiento .module-public-points .landing-section-head {
    max-width: none;
}

.module-public-page-estacionamiento .module-public-points .landing-section-head h2 {
    max-width: none;
    white-space: nowrap;
}

.module-public-page-estacionamiento .module-functions-section .landing-section-head {
    max-width: none;
}

.module-public-page-estacionamiento .module-functions-section .landing-section-head h2 {
    max-width: none;
    font-size: clamp(34px, 3.15vw, 48px);
    white-space: nowrap;
}

.module-public-page-estacionamiento .module-public-benefits {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.module-public-page-estacionamiento .module-public-benefits article {
    align-content: center;
    justify-items: center;
    min-height: 136px;
    padding: 14px 16px;
    border-top-width: 1px;
    border-left: 5px solid var(--brand-alki);
    background: #f7fbfb;
    color: var(--brand-sys);
    text-align: center;
    transform-origin: center bottom;
    will-change: transform, opacity;
}

.module-public-page-estacionamiento .module-public-benefits article:nth-child(2) {
    border-left-color: var(--accent-amber);
    background: #fff8ed;
}

.module-public-page-estacionamiento .module-public-benefits article:nth-child(3) {
    border-left-color: var(--accent-blue);
    background: #f5f8ff;
}

.module-public-page-estacionamiento .module-public-benefits.is-scroll-motion-ready article {
    opacity: 0;
    transform: translateY(54px) scale(0.92);
    filter: blur(5px);
}

.module-public-page-estacionamiento .module-public-benefits.is-scroll-motion-visible article {
    animation: landingTrustCardEnter 1.08s cubic-bezier(0.18, 0.88, 0.24, 1) var(--scroll-motion-delay, 0s) both;
}

.module-public-page-estacionamiento .module-public-benefits article:nth-child(1) {
    --scroll-motion-delay: 0.14s;
}

.module-public-page-estacionamiento .module-public-benefits article:nth-child(2) {
    --scroll-motion-delay: 0.3s;
}

.module-public-page-estacionamiento .module-public-benefits article:nth-child(3) {
    --scroll-motion-delay: 0.46s;
}

@media (prefers-reduced-motion: reduce) {
    .module-public-page-estacionamiento .module-public-benefits.is-scroll-motion-visible article {
        animation: none;
    }

    .module-public-page-estacionamiento .module-public-benefits.is-scroll-motion-ready article {
        opacity: 1;
        transform: none;
        filter: none;
        will-change: auto;
    }
}

.module-public-page-estacionamiento .module-feature-list {
    gap: 12px;
}

.module-public-page-estacionamiento .module-feature-list article {
    gap: 12px;
    min-height: 0;
    padding: 14px;
}

.module-public-page-estacionamiento .module-feature-list span {
    width: 32px;
    height: 32px;
    font-size: 12px;
}

.module-public-split,
.module-functions-layout,
.module-how-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(420px, 0.9fr);
    gap: clamp(30px, 5vw, 68px);
    align-items: center;
}

.module-functions-layout {
    grid-template-columns: minmax(0, 1.08fr) minmax(420px, 0.92fr);
    gap: clamp(24px, 3.5vw, 48px);
    align-items: stretch;
}

.module-public-page-estacionamiento .module-functions-layout {
    grid-template-columns: minmax(0, 1.18fr) minmax(360px, 0.82fr);
    align-items: start;
}

.module-public-split-copy {
    display: grid;
    gap: 24px;
    min-width: 0;
}

.module-feature-list,
.module-step-list {
    display: grid;
    gap: 14px;
}

.module-feature-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.module-functions-section .module-feature-list {
    align-content: start;
    grid-auto-rows: auto;
    height: auto;
}

.module-feature-list article,
.module-step-list article {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 14px;
    align-items: start;
    min-width: 0;
    padding: 16px;
    border: 1px solid rgba(196, 209, 212, 0.82);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: var(--shadow-card);
}

.module-functions-section .module-public-section-image {
    align-self: center;
    height: auto;
    max-height: 500px;
    object-fit: contain;
    background: linear-gradient(180deg, #eefafa 0%, #f8fdfd 100%);
}

.module-public-page-estacionamiento .module-functions-visual {
    position: relative;
    align-self: stretch;
    min-width: 0;
    min-height: 0;
    margin-right: -15%;
    margin-left: -15%;
}

.module-public-page-estacionamiento .module-functions-visual .module-public-section-image {
    position: absolute;
    bottom: -3.4%;
    left: 0;
    width: 100%;
    height: 103.4%;
    aspect-ratio: auto;
    max-height: none;
    border: 0;
    border-radius: 0;
    object-fit: contain;
    object-position: center;
    background: transparent;
    box-shadow: none;
    filter: drop-shadow(0 24px 28px rgba(19, 60, 65, 0.2));
}

html[data-landing-theme="dark"] .module-public-page-estacionamiento .module-functions-visual .module-public-section-image {
    filter:
        drop-shadow(0 30px 32px rgba(0, 0, 0, 0.46))
        drop-shadow(0 8px 18px rgba(0, 111, 120, 0.14));
}

.module-feature-list span,
.module-step-list span {
    display: inline-grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: var(--brand-alki-soft);
    color: var(--brand-alki);
    font-size: 13px;
    font-weight: var(--font-semibold);
    line-height: 1;
}

.module-feature-list h3,
.module-step-list h3 {
    margin: 0;
    color: var(--ink);
    font-family: var(--font-title);
    font-size: 18px;
    font-weight: var(--font-semibold);
    line-height: 1.18;
}

.module-feature-list p,
.module-step-list p {
    margin: 7px 0 0;
    color: var(--muted);
    font-size: 15px;
    line-height: 1.45;
}

.module-how-layout {
    grid-template-columns: minmax(420px, 0.96fr) minmax(0, 1fr);
}

.module-step-list {
    align-content: center;
}

.module-public-page-estacionamiento .module-public-plans {
    width: calc(100% - var(--landing-gutter) - var(--landing-gutter));
    max-width: var(--landing-container-max);
    margin-right: auto;
    margin-left: auto;
    padding: clamp(18px, 2.5vw, 32px) 0;
}

.module-public-page-estacionamiento .module-public-plans .landing-section-head {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    column-gap: 24px;
    max-width: none;
}

.module-public-page-estacionamiento .module-public-plans .landing-section-head h2 {
    grid-column: 1 / -1;
    max-width: none;
    white-space: nowrap;
}

.module-plan-period-toggle {
    justify-self: end;
    margin-top: 0;
}

#module-plans-monthly:checked ~ .landing-section-head .module-plan-toggle-monthly {
    background: #111417;
    color: #ffffff;
    box-shadow: 0 8px 18px rgba(17, 20, 23, 0.16);
}

#module-plans-annual:checked ~ .landing-section-head .module-plan-toggle-annual {
    background: var(--accent-amber);
    color: #ffffff;
    box-shadow: 0 8px 18px rgba(183, 121, 31, 0.22);
}

#module-plans-monthly:focus-visible ~ .landing-section-head .module-plan-toggle-monthly,
#module-plans-annual:focus-visible ~ .landing-section-head .module-plan-toggle-annual {
    outline: 3px solid rgba(183, 121, 31, 0.3);
    outline-offset: 3px;
}

.module-public-page-estacionamiento .module-plan-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.module-public-page-estacionamiento .module-plan-card {
    grid-template-rows: auto auto auto minmax(150px, 1fr) auto;
    min-height: 368px;
}

.module-public-page-estacionamiento .module-plan-card.is-featured {
    border-color: #dfae65;
    box-shadow: 0 18px 42px rgba(183, 121, 31, 0.2);
}

.module-public-page-estacionamiento .module-plan-card li::before {
    background: var(--accent-amber);
}

.module-plan-price {
    min-height: 30px;
}

.module-plan-price-value {
    display: flex;
    align-items: baseline;
    gap: 4px;
    color: var(--ink);
    font-family: var(--font-title);
    line-height: 1;
}

.module-plan-price-value strong {
    font-size: 30px;
    font-weight: var(--font-semibold);
}

.module-plan-price-value small {
    color: var(--muted);
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: var(--font-semibold);
}

.module-plan-price-value.billing-annual,
.module-plan-action.module-plan-action-annual {
    display: none;
}

#module-plans-annual:checked ~ .module-plan-grid .billing-monthly,
#module-plans-annual:checked ~ .module-plan-grid .module-plan-action-monthly {
    display: none;
}

#module-plans-annual:checked ~ .module-plan-grid .module-plan-price-value.billing-annual {
    display: flex;
}

#module-plans-annual:checked ~ .module-plan-grid .module-plan-action-annual {
    display: inline-flex;
}

.module-plan-annual-discount {
    display: grid;
    grid-template-columns: auto auto minmax(0, 1fr);
    align-items: center;
    gap: 10px 22px;
    margin-top: 16px;
    padding: 16px 20px;
    border: 1px solid rgba(196, 209, 212, 0.82);
    border-radius: 8px;
    background: #f8fbfb;
    box-shadow: 0 10px 24px rgba(43, 47, 51, 0.07);
    transition: border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease, color 0.18s ease;
}

.module-plan-annual-discount span {
    color: var(--muted);
    font-size: 12px;
    font-weight: var(--font-semibold);
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.module-plan-annual-discount strong {
    color: var(--ink);
    font-size: 28px;
    line-height: 1;
    white-space: nowrap;
}

.module-plan-annual-discount p {
    margin: 0;
    color: var(--muted);
}

#module-plans-annual:checked ~ .module-plan-annual-discount {
    border-color: rgba(190, 75, 91, 0.72);
    background: var(--accent-rose);
    color: #ffffff;
    box-shadow: 0 16px 32px rgba(190, 75, 91, 0.24);
}

#module-plans-annual:checked ~ .module-plan-annual-discount span,
#module-plans-annual:checked ~ .module-plan-annual-discount strong,
#module-plans-annual:checked ~ .module-plan-annual-discount p {
    color: #ffffff;
}

.module-plan-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    margin-top: 4px;
    padding: 0 14px;
    border-radius: 8px;
    background: var(--brand-alki);
    color: #ffffff;
    font-size: 14px;
    font-weight: var(--font-semibold);
}

.module-plan-card.is-featured .module-plan-action {
    background: var(--brand-sys);
}

.module-public-page-estacionamiento .module-plan-action {
    background: var(--brand-sys);
}

.module-public-page-estacionamiento .module-plan-card.is-featured .module-plan-action {
    background: var(--accent-amber);
}

.module-plan-comparison-section {
    background: #f8fbfb;
    box-shadow: 0 0 0 100vmax #f8fbfb;
    clip-path: inset(0 -100vmax);
}

.module-compare-scroll {
    overflow-x: auto;
    border: 1px solid rgba(196, 209, 212, 0.82);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: var(--shadow-card);
}

.module-compare-grid {
    display: grid;
    grid-template-columns: minmax(220px, 1.15fr) repeat(var(--compare-cols), minmax(132px, 1fr));
    min-width: 920px;
}

.module-compare-cell {
    display: grid;
    align-items: center;
    min-height: 56px;
    padding: 13px 14px;
    border-right: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    color: var(--muted);
    font-size: 14px;
    line-height: 1.25;
}

.module-compare-cell:nth-child(6n) {
    border-right: 0;
}

.module-compare-grid .module-compare-cell:nth-last-child(-n + 6) {
    border-bottom: 0;
}

.module-compare-corner,
.module-compare-plan {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #eef8f8;
    color: var(--brand-sys);
    font-weight: var(--font-semibold);
}

.module-compare-plan {
    justify-items: center;
    text-align: center;
}

.module-compare-feature {
    position: sticky;
    left: 0;
    z-index: 1;
    background: #ffffff;
    color: var(--brand-sys);
    font-weight: var(--font-semibold);
}

.module-compare-value {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
    width: fit-content;
    padding: 5px 10px;
    border-radius: 8px;
    background: #f4f8f8;
    color: var(--muted);
    font-weight: var(--font-medium);
}

.module-compare-value.is-strong {
    background: var(--brand-alki-soft);
    color: var(--brand-alki);
}

.module-compare-value.is-check {
    justify-content: center;
    width: 30px;
    height: 30px;
    padding: 0;
    border-radius: 999px;
    background: var(--brand-alki-soft);
    color: var(--brand-alki);
    font-size: 17px;
    font-weight: var(--font-semibold);
}

.module-compare-value.is-empty {
    background: transparent;
    color: #a0aaad;
}

.module-public-page-estacionamiento .module-plan-comparison-section {
    background: #eef5f5;
    box-shadow: 0 0 0 100vmax #eef5f5;
}

.module-public-page-estacionamiento .module-plan-comparison-section .landing-section-head {
    max-width: none;
}

.module-public-page-estacionamiento .module-plan-comparison-section .landing-section-head h2 {
    max-width: none;
    white-space: nowrap;
}

.module-public-page-estacionamiento .module-compare-scroll {
    border-color: var(--line-strong);
    background: #ffffff;
    box-shadow: 0 14px 32px rgba(43, 47, 51, 0.08);
}

.module-public-page-estacionamiento .module-compare-cell {
    border-color: #d8e3e5;
    background: #ffffff;
}

.module-public-page-estacionamiento .module-compare-cell.is-alternate {
    background: rgba(183, 121, 31, 0.09);
}

.module-public-page-estacionamiento .module-compare-corner,
.module-public-page-estacionamiento .module-compare-plan {
    background: var(--brand-alki);
    color: #ffffff;
    border-color: rgba(255, 255, 255, 0.14);
}

.module-public-page-estacionamiento .module-compare-corner {
    background: #172f33;
}

.module-public-page-estacionamiento .module-compare-plan.is-featured {
    background: var(--brand-alki);
    color: #ffffff;
    box-shadow: none;
}

.module-public-page-estacionamiento .module-compare-feature {
    padding-left: 18px;
    background: #ffffff;
    box-shadow: inset 4px 0 0 #172f33;
}

.module-public-page-estacionamiento .module-compare-feature.is-alternate {
    background: rgba(183, 121, 31, 0.09);
}

.module-public-page-estacionamiento .module-compare-cell.is-featured:not(.module-compare-plan) {
    border-right-color: #d8e3e5;
    border-left: 1px solid #d8e3e5;
    background: #ffffff;
    box-shadow: none;
}

.module-public-page-estacionamiento .module-compare-cell.is-featured.is-alternate {
    background: rgba(183, 121, 31, 0.09);
}

.module-public-page-estacionamiento .module-compare-data {
    justify-items: center;
    text-align: center;
}

.module-public-page-estacionamiento .module-compare-value.is-strong,
.module-public-page-estacionamiento .module-compare-value.is-check {
    border: 1px solid rgba(0, 95, 107, 0.12);
    box-shadow: none;
}

.module-public-page-estacionamiento .module-compare-cell.is-featured .module-compare-value.is-strong,
.module-public-page-estacionamiento .module-compare-cell.is-featured .module-compare-value.is-check {
    border-color: rgba(0, 95, 107, 0.12);
    background: var(--brand-alki-soft);
    color: var(--brand-alki);
    box-shadow: none;
}

.module-public-faq .faq-grid {
    grid-template-columns: 1fr;
    gap: 0;
    max-width: min(780px, 100%);
    padding-right: 0;
    padding-left: 0;
}

.module-public-faq .faq-grid summary {
    padding: 15px 0;
    font-size: 18px;
}

.module-public-faq .faq-grid details p {
    margin: -4px 0 16px;
    font-size: 15px;
}

.module-public-page-estacionamiento .module-public-faq .faq-grid.is-scroll-motion-ready details {
    opacity: 0;
    transform: translateX(-76px);
    will-change: transform, opacity;
}

.module-public-page-estacionamiento .module-public-faq .faq-grid.is-scroll-motion-visible details {
    animation: benefitBlockEnter 0.78s cubic-bezier(0.18, 0.84, 0.28, 1) var(--scroll-motion-delay, 0s) both;
}

.module-public-page-estacionamiento .module-public-faq .faq-grid details:nth-child(1) {
    --scroll-motion-delay: 0s;
}

.module-public-page-estacionamiento .module-public-faq .faq-grid details:nth-child(2) {
    --scroll-motion-delay: 0.13s;
}

.module-public-page-estacionamiento .module-public-faq .faq-grid details:nth-child(3) {
    --scroll-motion-delay: 0.26s;
}

.module-public-page-estacionamiento .module-public-faq .faq-grid details:nth-child(4) {
    --scroll-motion-delay: 0.39s;
}

.module-public-page-estacionamiento .module-public-faq .faq-grid details:nth-child(5) {
    --scroll-motion-delay: 0.52s;
}

@media (prefers-reduced-motion: reduce) {
    .module-public-page-estacionamiento .module-public-faq .faq-grid.is-scroll-motion-visible details {
        animation: none;
    }

    .module-public-page-estacionamiento .module-public-faq .faq-grid.is-scroll-motion-ready details {
        opacity: 1;
        transform: none;
        will-change: auto;
    }
}

.module-public-faq-content {
    min-width: 0;
}

.module-public-page-estacionamiento .module-public-faq {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(340px, 0.5fr);
    gap: clamp(32px, 4vw, 68px);
    align-items: center;
}

.module-public-page-estacionamiento .module-public-faq .landing-section-head,
.module-public-page-estacionamiento .module-public-faq .faq-grid {
    max-width: none;
}

.module-public-faq-cta-art {
    display: block;
    width: min(100%, 480px);
    height: auto;
    max-height: 440px;
    margin: 0 auto;
    object-fit: contain;
    object-position: center;
    filter: drop-shadow(0 18px 24px rgba(21, 47, 51, 0.12));
    pointer-events: none;
    user-select: none;
}

.module-final-cta {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 24px;
    align-items: center;
    width: calc(100% - var(--landing-gutter) - var(--landing-gutter));
    max-width: var(--landing-container-max);
    margin-right: auto;
    margin-left: auto;
    padding: clamp(18px, 2.5vw, 32px) 0;
    background: var(--brand-alki);
    color: #ffffff;
    box-shadow: 0 0 0 100vmax var(--brand-alki);
    clip-path: inset(0 -100vmax);
}

.module-final-cta h2,
.module-final-cta p {
    margin: 0;
    color: #ffffff;
}

.module-final-cta h2 {
    max-width: 760px;
    font-family: var(--font-title);
    font-size: clamp(32px, 4vw, 52px);
    font-weight: 600;
    line-height: 1.06;
}

.module-final-cta p:not(.eyebrow) {
    max-width: 640px;
    margin-top: 12px;
    color: rgba(255, 255, 255, 0.82);
    font-size: 18px;
    line-height: 1.45;
}

.module-final-cta .landing-primary {
    min-width: 280px;
    background: #ffffff;
    color: var(--brand-alki);
}

@media (max-width: 1280px) {
    .module-public-page-estacionamiento .module-public-hero-visual > img,
    .module-public-page-estacionamiento .module-public-section-image {
        max-height: 520px;
    }

    .module-public-page-estacionamiento .module-functions-visual {
        margin-right: -8%;
        margin-left: -8%;
    }

    .module-public-page-estacionamiento .module-plan-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .module-public-page-estacionamiento .module-public-plans .landing-section-head h2 {
        white-space: normal;
    }
}

@media (max-width: 980px) {
    .module-public-page-estacionamiento .module-public-points .landing-section-head h2,
    .module-public-page-estacionamiento .module-functions-section .landing-section-head h2 {
        white-space: normal;
    }

    .module-public-page-estacionamiento .module-plan-comparison-section .landing-section-head h2 {
        white-space: normal;
    }

    .module-public-page-estacionamiento .module-public-hero-inner,
    .module-public-page-estacionamiento .module-public-benefits,
    .module-public-page-estacionamiento .module-public-faq,
    .module-feature-list,
    .module-functions-layout,
    .module-how-layout,
    .module-public-page-estacionamiento .module-plan-grid,
    .module-final-cta {
        grid-template-columns: 1fr;
    }

    .module-public-page-estacionamiento .module-public-plans .landing-section-head {
        grid-template-columns: 1fr;
    }

    .module-plan-period-toggle {
        justify-self: start;
    }

    .module-public-page-estacionamiento .module-plan-card {
        min-height: 0;
    }

    .module-final-cta .landing-primary {
        width: 100%;
        min-width: 0;
    }

    .module-public-page-estacionamiento .module-public-faq {
        gap: 18px;
    }

    .module-public-page-estacionamiento .module-functions-visual {
        width: 100%;
        height: min(76vw, 520px);
        margin: 8px 0 0;
    }

    .module-public-faq-cta-art {
        width: min(100%, 300px);
        max-height: 300px;
        margin: 8px auto 0;
    }
}

@media (max-width: 820px) {
    .module-public-page-estacionamiento .module-public-hero-inner {
        margin-top: 16px;
    }

    .module-public-page-estacionamiento .module-public-copy h1 {
        font-size: clamp(28px, 8vw, 32px);
    }

    .module-public-page-estacionamiento .module-public-hero-visual > img,
    .module-public-page-estacionamiento .module-public-section-image {
        max-height: 320px;
    }

    .module-public-page-estacionamiento .module-public-section,
    .module-public-page-estacionamiento .module-public-plans {
        padding-top: 18px;
        padding-bottom: 18px;
    }

    .module-final-cta {
        padding-top: 18px;
        padding-bottom: 18px;
    }

    .module-feature-list article,
    .module-step-list article {
        padding: 16px;
    }

    .module-plan-annual-discount {
        grid-template-columns: auto 1fr;
        gap: 8px 14px;
        padding: 15px 16px;
    }

    .module-plan-annual-discount p {
        grid-column: 1 / -1;
    }

    .module-compare-scroll {
        margin-right: calc(var(--landing-gutter) * -1);
        border-right: 0;
        border-radius: 8px 0 0 8px;
    }

    .module-public-faq-cta-art {
        width: min(82vw, 260px);
        max-height: 260px;
    }
}

@media (max-width: 1040px) {
    .public-builder-hero,
    .public-builder-grid,
    .public-site-hero,
    .public-template-mapa .public-site-hero,
    .public-site-contact {
        grid-template-columns: 1fr;
    }

    .public-builder-link-row {
        grid-template-columns: 1fr;
    }

    .public-builder-link-editor {
        grid-template-columns: 1fr;
    }

    .public-page-builder-parking .public-builder-hero {
        grid-template-columns: 1fr;
    }

    .public-builder-share {
        border-top: 1px solid rgba(255, 255, 255, 0.12);
        border-left: 0;
    }

    .public-page-config-form {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .public-site-grid,
    .public-rate-list,
    .public-template-picker,
    .public-block-grid,
    .public-block-fixed-row,
    .public-block-order-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .public-builder-hero {
        min-height: 0;
    }

    .public-builder-copy {
        padding: 20px;
    }

    .public-builder-copy h2 {
        font-size: clamp(34px, 11vw, 46px);
    }

    .public-builder-image,
    .public-builder-image img {
        min-height: 260px;
    }

    .public-builder-stats,
    .public-page-config-form {
        grid-template-columns: 1fr;
    }

    .public-block-builder .public-block-option {
        grid-template-columns: 48px minmax(0, 1fr);
    }

    .public-block-drag-hint,
    .public-block-fixed-label {
        grid-column: 2;
        justify-self: start;
    }

    .public-site-hero {
        min-height: 0;
        padding: 16px;
    }

    .public-site-copy h1 {
        font-size: clamp(32px, 12vw, 48px);
    }

    .public-hero-stats,
    .public-site-grid,
    .public-rate-list,
    .public-template-compacta .public-site-grid,
    .public-template-compacta .public-rate-list,
    .public-template-picker,
    .public-block-grid,
    .public-block-fixed-row,
    .public-block-order-list,
    .public-block-editor-grid {
        grid-template-columns: 1fr;
    }

    .public-site-section,
    .public-site-contact,
    .public-price-result {
        padding: 16px;
    }

    .public-site-visual,
    .public-hero-map {
        min-height: 0;
    }

    .public-quick-card,
    .public-hours-card {
        transform: none;
    }

    .public-hero-actions .button,
    .public-contact-actions .button {
        width: 100%;
    }

    .public-blog-editor-item {
        grid-template-columns: 1fr;
    }
}

/* Module pages aligned with landing */
.app-shell {
    background: linear-gradient(180deg, #e8f5f6 0%, #f6fbfb 38%, #f4f7f7 100%);
}

.content {
    max-width: var(--landing-container-max, 1512px);
    padding: 0 clamp(18px, 2.4vw, 34px) 46px;
    background: transparent;
}

.topbar {
    position: static;
    z-index: 80;
    min-height: 88px;
    margin-right: calc(clamp(18px, 2.4vw, 34px) * -1);
    margin-bottom: 22px;
    margin-left: calc(clamp(18px, 2.4vw, 34px) * -1);
    padding: 18px clamp(18px, 2.4vw, 34px);
    border-bottom: 1px solid rgba(0, 105, 122, 0.12);
    background: rgba(232, 245, 246, 0.9);
    box-shadow: 0 1px 0 rgba(43, 47, 51, 0.04);
    color: #2B2F33;
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    transition: background 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}

.topbar h1,
.topbar-greeting strong,
.parking-title-separator {
    color: #2B2F33;
}

.topbar-greeting,
.topbar .year-form label,
.topbar .month-form label {
    color: #657174;
}

.topbar h1 {
    font-size: clamp(28px, 3vw, 38px);
}

.topbar-greeting {
    font-size: clamp(17px, 1.7vw, 23px);
}

.topbar .year-form,
.topbar .month-form {
    border-color: rgba(0, 95, 107, 0.14);
    background: rgba(255, 255, 255, 0.76);
    box-shadow: 0 12px 28px rgba(0, 55, 70, 0.08);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.topbar select,
.topbar .parking-title-picker select {
    border-color: rgba(0, 95, 107, 0.18);
    background: rgba(255, 255, 255, 0.9);
    color: #2B2F33;
}

.topbar-parking-logo {
    width: clamp(70px, 7vw, 92px);
    height: clamp(70px, 7vw, 92px);
    padding: 6px;
    border: 1px solid rgba(0, 95, 107, 0.14);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.72);
    box-shadow: 0 12px 28px rgba(0, 55, 70, 0.08);
}

.module-control-row {
    align-items: center;
    gap: 16px;
    margin: 0 0 18px;
}

.module-tabs,
.year-form,
.month-form,
.summary-filter-form label {
    border-color: rgba(196, 209, 212, 0.82);
    background: rgba(255, 255, 255, 0.74);
    box-shadow: 0 10px 26px rgba(43, 47, 51, 0.06);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.module-tabs a,
.module-tabs a.is-active,
.module-tabs a:hover,
.year-form,
.month-form,
.summary-filter-form label,
.module-card,
.kpi-card,
.panel,
.module-hero,
.summary-band,
.module-public-benefits article,
.module-feature-list article,
.module-step-list article,
.module-plan-card,
.module-compare-scroll {
    transition: transform 0.18s ease, border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease, color 0.18s ease;
}

.module-tabs a:hover {
    transform: translateY(-1px);
    border-color: rgba(0, 95, 107, 0.22);
    background: rgba(231, 243, 244, 0.82);
    color: var(--brand-sys);
}

.module-tabs a.is-active {
    border-color: var(--brand-alki);
    background: var(--brand-alki);
    box-shadow: 0 12px 28px rgba(0, 95, 107, 0.18);
}

.summary-band,
.module-hero,
.panel,
.kpi-card,
.module-card {
    border-color: rgba(196, 209, 212, 0.84);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.96) 0%, rgba(248, 251, 251, 0.94) 100%);
    box-shadow: 0 12px 30px rgba(43, 47, 51, 0.07);
}

.module-card:hover,
.kpi-card.is-clickable:hover,
.kpi-card.is-clickable:focus-visible {
    transform: translateY(-2px);
    border-color: rgba(0, 95, 107, 0.24);
    box-shadow: 0 18px 38px rgba(43, 47, 51, 0.11);
}

.module-hero {
    overflow: hidden;
    padding: clamp(18px, 2.4vw, 26px);
}

.module-hero.accent-teal,
.module-hero.accent-amber,
.module-hero.accent-rose,
.module-hero.accent-blue,
.module-hero.accent-violet {
    border-top-width: 5px;
}

.kpi-card {
    min-height: 104px;
}

.kpi-card strong {
    letter-spacing: 0;
}

.module-public-hero {
    padding: calc(var(--landing-nav-space) + 24px) var(--landing-gutter) clamp(54px, 7vw, 78px);
    background: linear-gradient(180deg, #e8f5f6 0%, #f6fbfb 72%, #ffffff 100%);
}

.module-public-hero-inner {
    grid-template-columns: minmax(0, 0.82fr) minmax(360px, 1.08fr);
    gap: clamp(24px, 4vw, 52px);
    max-width: var(--landing-container-max);
    margin-top: 0;
    padding-right: 0;
    padding-left: 0;
}

.module-public-copy h1 {
    max-width: 760px;
    font-size: clamp(38px, 4.6vw, 62px);
    line-height: 1.03;
}

.module-public-copy p:not(.eyebrow) {
    font-size: clamp(16px, 1.25vw, 19px);
}

.module-public-hero-inner > img,
.module-public-section-image {
    border-color: rgba(196, 209, 212, 0.76);
    border-radius: 8px;
    box-shadow: 0 20px 48px rgba(0, 95, 107, 0.12);
}

.module-public-section,
.module-public-plans {
    max-width: var(--landing-container-max);
    padding: var(--landing-section-space) var(--landing-gutter);
}

.module-public-section .landing-section-head,
.module-public-plans .landing-section-head {
    max-width: 820px;
    margin-bottom: 18px;
}

.module-public-benefits article,
.module-feature-list article,
.module-step-list article,
.module-plan-card {
    border-color: rgba(196, 209, 212, 0.82);
    background: linear-gradient(180deg, #ffffff 0%, #f8fbfb 100%);
}

.module-public-benefits article:hover,
.module-feature-list article:hover,
.module-step-list article:hover,
.module-plan-card:hover {
    transform: translateY(-2px);
    border-color: rgba(0, 95, 107, 0.24);
    box-shadow: 0 18px 38px rgba(43, 47, 51, 0.11);
}

.module-plan-card.is-featured {
    border-color: rgba(0, 95, 107, 0.36);
    box-shadow: 0 18px 42px rgba(0, 95, 107, 0.16);
}

.module-plan-action:hover,
.module-plan-action:focus-visible {
    transform: translateY(-1px);
    box-shadow: 0 14px 28px rgba(0, 95, 107, 0.2);
}

.module-public-page-estacionamiento .module-plan-action:hover,
.module-public-page-estacionamiento .module-plan-action:focus-visible {
    box-shadow: 0 14px 28px rgba(17, 20, 23, 0.22);
}

.module-public-page-estacionamiento .module-plan-card.is-featured .module-plan-action:hover,
.module-public-page-estacionamiento .module-plan-card.is-featured .module-plan-action:focus-visible {
    box-shadow: 0 14px 28px rgba(183, 121, 31, 0.24);
}

.module-plan-comparison-section {
    background: #f8fbfb;
}

.module-compare-scroll {
    border-color: rgba(196, 209, 212, 0.84);
    box-shadow: 0 12px 30px rgba(43, 47, 51, 0.07);
}

html[data-theme="dark"] .app-shell {
    background: linear-gradient(180deg, #13282b 0%, #0f1416 42%, #151a1d 100%);
}

html[data-theme="dark"] .content {
    background: transparent;
}

html[data-theme="dark"] .topbar {
    border-bottom-color: rgba(0, 95, 107, 0.16);
    background: rgba(204, 219, 221, 0.82);
    box-shadow: 0 16px 38px rgba(0, 0, 0, 0.18);
    color: #2B2F33;
}

html[data-theme="dark"] .topbar h1,
html[data-theme="dark"] .topbar-greeting strong,
html[data-theme="dark"] .parking-title-separator {
    color: #2B2F33;
}

html[data-theme="dark"] .topbar-greeting,
html[data-theme="dark"] .topbar .year-form label,
html[data-theme="dark"] .topbar .month-form label {
    color: #526064;
}

html[data-theme="dark"] .topbar .year-form,
html[data-theme="dark"] .topbar .month-form,
html[data-theme="dark"] .topbar-parking-logo {
    border-color: rgba(43, 47, 51, 0.14);
    background: rgba(255, 255, 255, 0.76);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.14);
}

html[data-theme="dark"] .topbar select,
html[data-theme="dark"] .topbar .parking-title-picker select {
    border-color: rgba(43, 47, 51, 0.16);
    background: rgba(255, 255, 255, 0.92);
    color: #2B2F33;
}

html[data-theme="dark"] .module-tabs,
html[data-theme="dark"] .year-form,
html[data-theme="dark"] .month-form,
html[data-theme="dark"] .summary-filter-form label {
    background: rgba(32, 40, 44, 0.78);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

html[data-theme="dark"] .summary-band,
html[data-theme="dark"] .module-hero,
html[data-theme="dark"] .panel,
html[data-theme="dark"] .kpi-card,
html[data-theme="dark"] .module-card {
    border-color: rgba(196, 224, 226, 0.2);
    background: linear-gradient(180deg, #172124 0%, #12191c 100%);
    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.24);
}

html[data-theme="dark"] .module-tabs a:hover {
    border-color: rgba(79, 226, 226, 0.22);
    background: rgba(79, 226, 226, 0.1);
    color: #eef7f7;
}

html[data-landing-theme="dark"] .module-public-hero {
    background: linear-gradient(180deg, #13282b 0%, #0f1416 74%, #0f1416 100%);
}

html[data-landing-theme="dark"] .module-public-page-estacionamiento .module-public-hero-visual > img {
    filter:
        drop-shadow(0 32px 34px rgba(0, 0, 0, 0.48))
        drop-shadow(0 10px 20px rgba(0, 111, 120, 0.16));
}

html[data-landing-theme="dark"] .module-public-page-estacionamiento,
html[data-landing-theme="dark"] .module-plan-comparison-section {
    background: #0f1416;
}

html[data-landing-theme="dark"] .module-public-benefits article,
html[data-landing-theme="dark"] .module-feature-list article,
html[data-landing-theme="dark"] .module-step-list article,
html[data-landing-theme="dark"] .module-plan-card,
html[data-landing-theme="dark"] .module-compare-scroll {
    border-color: rgba(196, 224, 226, 0.2);
    background: linear-gradient(180deg, #172124 0%, #12191c 100%);
    color: #eef7f7;
    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.24);
}

html[data-landing-theme="dark"] .module-public-benefits article strong {
    color: #ffffff;
}

html[data-landing-theme="dark"] .module-plan-annual-discount {
    border-color: rgba(196, 224, 226, 0.2);
    background: linear-gradient(180deg, #172124 0%, #12191c 100%);
    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.24);
}

html[data-landing-theme="dark"] .module-plan-annual-discount span,
html[data-landing-theme="dark"] .module-plan-annual-discount strong,
html[data-landing-theme="dark"] .module-plan-annual-discount p {
    color: #c0d0d2;
}

html[data-landing-theme="dark"] #module-plans-annual:checked ~ .module-plan-annual-discount {
    border-color: rgba(190, 75, 91, 0.82);
    background: var(--accent-rose);
    box-shadow: 0 16px 32px rgba(190, 75, 91, 0.34);
}

html[data-landing-theme="dark"] #module-plans-annual:checked ~ .module-plan-annual-discount span,
html[data-landing-theme="dark"] #module-plans-annual:checked ~ .module-plan-annual-discount strong,
html[data-landing-theme="dark"] #module-plans-annual:checked ~ .module-plan-annual-discount p {
    color: #ffffff;
}

html[data-landing-theme="dark"] .module-public-page-estacionamiento .module-public-benefits article {
    border-left-color: rgba(39, 193, 207, 0.78);
    background: linear-gradient(180deg, rgba(0, 95, 107, 0.24) 0%, rgba(18, 25, 28, 0.97) 100%);
}

html[data-landing-theme="dark"] .module-public-page-estacionamiento .module-public-benefits article:nth-child(2) {
    border-left-color: rgba(218, 157, 65, 0.78);
    background: linear-gradient(180deg, rgba(183, 121, 31, 0.22) 0%, rgba(21, 25, 28, 0.97) 100%);
}

html[data-landing-theme="dark"] .module-public-page-estacionamiento .module-public-benefits article:nth-child(3) {
    border-left-color: rgba(92, 145, 255, 0.76);
    background: linear-gradient(180deg, rgba(37, 99, 235, 0.2) 0%, rgba(18, 25, 28, 0.97) 100%);
}

html[data-landing-theme="dark"] .module-public-copy p:not(.eyebrow),
html[data-landing-theme="dark"] .module-feature-list p,
html[data-landing-theme="dark"] .module-step-list p,
html[data-landing-theme="dark"] .module-plan-card p,
html[data-landing-theme="dark"] .module-plan-card li,
html[data-landing-theme="dark"] .module-compare-cell {
    color: #c0d0d2;
}

html[data-landing-theme="dark"] .module-feature-list h3,
html[data-landing-theme="dark"] .module-step-list h3,
html[data-landing-theme="dark"] .module-plan-card h3,
html[data-landing-theme="dark"] .module-compare-corner,
html[data-landing-theme="dark"] .module-compare-plan,
html[data-landing-theme="dark"] .module-compare-feature {
    color: #eef7f7;
}

html[data-landing-theme="dark"] .module-compare-corner,
html[data-landing-theme="dark"] .module-compare-plan {
    background: #172f33;
}

html[data-landing-theme="dark"] .module-compare-feature {
    background: #12191c;
}

html[data-landing-theme="dark"] .module-public-page-estacionamiento .module-plan-comparison-section {
    background: #0f1416;
    box-shadow: 0 0 0 100vmax #0f1416;
}

html[data-landing-theme="dark"] .module-public-page-estacionamiento .module-compare-scroll {
    border-color: rgba(196, 224, 226, 0.24);
    background: #151e21;
    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.24);
}

html[data-landing-theme="dark"] .module-public-page-estacionamiento .module-compare-cell {
    border-color: rgba(196, 224, 226, 0.16);
    background: #151e21;
}

html[data-landing-theme="dark"] .module-public-page-estacionamiento .module-compare-cell.is-alternate {
    background: rgba(183, 121, 31, 0.15);
}

html[data-landing-theme="dark"] .module-public-page-estacionamiento .module-compare-corner,
html[data-landing-theme="dark"] .module-public-page-estacionamiento .module-compare-plan {
    border-color: rgba(255, 255, 255, 0.14);
    background: var(--brand-alki);
    color: #ffffff;
}

html[data-landing-theme="dark"] .module-public-page-estacionamiento .module-compare-corner {
    background: #172f33;
}

html[data-landing-theme="dark"] .module-public-page-estacionamiento .module-compare-plan.is-featured {
    background: var(--brand-alki);
    color: #ffffff;
    box-shadow: none;
}

html[data-landing-theme="dark"] .module-public-page-estacionamiento .module-compare-feature {
    background: #151e21;
    box-shadow: inset 4px 0 0 #2a737b;
}

html[data-landing-theme="dark"] .module-public-page-estacionamiento .module-compare-feature.is-alternate {
    background: rgba(183, 121, 31, 0.15);
}

html[data-landing-theme="dark"] .module-public-page-estacionamiento .module-compare-cell.is-featured:not(.module-compare-plan) {
    border-color: rgba(196, 224, 226, 0.16);
    background: #151e21;
    box-shadow: none;
}

html[data-landing-theme="dark"] .module-public-page-estacionamiento .module-compare-cell.is-featured.is-alternate {
    background: rgba(183, 121, 31, 0.15);
}

html[data-landing-theme="dark"] .module-public-page-estacionamiento .module-compare-value.is-strong,
html[data-landing-theme="dark"] .module-public-page-estacionamiento .module-compare-value.is-check {
    border-color: rgba(39, 193, 207, 0.3);
    background: rgba(39, 193, 207, 0.16);
    color: #7ed9df;
    box-shadow: none;
}

html[data-landing-theme="dark"] .module-public-page-estacionamiento .module-compare-cell.is-featured .module-compare-value.is-strong,
html[data-landing-theme="dark"] .module-public-page-estacionamiento .module-compare-cell.is-featured .module-compare-value.is-check {
    border-color: rgba(39, 193, 207, 0.3);
    background: rgba(39, 193, 207, 0.16);
    color: #7ed9df;
}

@media (max-width: 980px) {
    .topbar,
    .module-control-row {
        align-items: stretch;
        grid-template-columns: 1fr;
    }

    .topbar-side,
    .topbar-actions,
    .module-filters {
        justify-content: flex-start;
    }

    .module-public-hero-inner,
    .module-public-page-estacionamiento .module-public-hero-inner {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 820px) {
    .content {
        padding-right: 16px;
        padding-bottom: 34px;
        padding-left: 16px;
    }

    .topbar {
        min-height: 0;
        margin-right: -16px;
        margin-left: -16px;
        padding: 14px 16px;
    }

    .topbar h1 {
        font-size: clamp(24px, 8vw, 30px);
    }

    .topbar-greeting {
        font-size: 16px;
    }

    .module-tabs,
    .module-filters,
    .topbar-actions {
        width: 100%;
    }

    .module-tabs {
        overflow-x: auto;
        flex-wrap: nowrap;
    }

    .module-public-hero {
        padding-top: calc(var(--landing-nav-space) + 18px);
        padding-bottom: 42px;
    }

    .module-public-copy h1 {
        font-size: clamp(28px, 8vw, 34px);
    }

    .module-public-benefits,
    .module-plan-grid,
    .module-public-page-estacionamiento .module-public-benefits,
    .module-public-page-estacionamiento .module-plan-grid {
        grid-template-columns: 1fr;
    }
}

/* Public parking landing: full-screen, long-form page */
.public-page {
    background: #ffffff;
}

.public-page .public-shell {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

.public-landing {
    --public-accent: #006b75;
    --public-accent-strong: #004d58;
    --public-highlight: #d9a441;
    --public-ink: #142229;
    --public-muted: #52656d;
    --public-soft: #eef7f7;
    --public-line: #d4e5e7;
    display: block;
    position: relative;
    overflow: hidden;
    background: #ffffff;
    color: var(--public-ink);
}

.public-template-urbana {
    --public-accent: #0f766e;
    --public-accent-strong: #0a504b;
    --public-highlight: #f0b84f;
    --public-soft: #edf6f4;
}

.public-template-mapa {
    --public-accent: #146b4f;
    --public-accent-strong: #0b4a38;
    --public-highlight: #66b5bd;
    --public-soft: #eef7f1;
}

.public-template-compacta {
    --public-accent: #9f3341;
    --public-accent-strong: #762632;
    --public-highlight: #006b75;
    --public-soft: #f7f2f0;
}

.public-landing-hero {
    position: relative;
    isolation: isolate;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    min-height: 100vh;
    min-height: 100svh;
    padding: 24px clamp(18px, 4vw, 64px) 32px;
    overflow: hidden;
    background: #0b242b;
    color: #ffffff;
}

.public-landing-media {
    position: absolute;
    inset: 0;
    z-index: -2;
}

.public-landing-media::after {
    position: absolute;
    inset: 0;
    z-index: 1;
    background: rgba(7, 26, 31, 0.72);
    content: "";
}

.public-landing-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.public-landing-nav {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    width: min(100%, 1760px);
    margin: 0 auto;
}

.public-landing-brand {
    display: inline-flex;
    align-items: center;
    min-width: 0;
    gap: 14px;
    color: #ffffff;
}

.public-landing-brand img,
.public-landing-brand > span {
    width: 64px;
    height: 64px;
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.14);
    object-fit: cover;
}

.public-landing-brand > span {
    display: grid;
    place-items: center;
    color: #ffffff;
    font-size: 22px;
    font-weight: 900;
}

.public-landing-brand strong {
    display: block;
    max-width: 380px;
    overflow: hidden;
    color: #ffffff;
    font-size: 24px;
    line-height: 1.05;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.public-landing-links {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.12);
}

.public-landing-links a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0 14px;
    border-radius: 8px;
    color: rgba(255, 255, 255, 0.88);
    font-weight: 800;
}

.public-landing-links a:hover {
    background: rgba(255, 255, 255, 0.14);
    color: #ffffff;
}

.public-landing-links .public-landing-nav-cta {
    background: #ffffff;
    color: var(--public-accent-strong);
}

.public-landing-hero-inner {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, 470px);
    align-items: center;
    gap: clamp(28px, 4vw, 72px);
    width: min(100%, 1760px);
    margin: 0 auto;
    padding: 48px 0 28px;
}

.public-landing-copy {
    display: grid;
    gap: 22px;
    max-width: 940px;
}

.public-landing-section-head > span,
.public-landing-panel-copy > span,
.public-landing-calculator-head > span {
    color: #69d4dd;
    font-size: 14px;
    font-weight: 900;
    letter-spacing: 0;
    text-transform: uppercase;
}

.public-landing-copy h1 {
    margin: 0;
    color: #ffffff;
    font-family: var(--font-title);
    font-size: 92px;
    font-weight: 700;
    line-height: 0.94;
    letter-spacing: 0;
    overflow-wrap: anywhere;
}

.public-landing-copy p {
    max-width: 740px;
    margin: 0;
    color: rgba(255, 255, 255, 0.82);
    font-size: 22px;
    line-height: 1.45;
}

.public-landing-actions,
.public-landing-contact-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.public-landing-primary,
.public-landing-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 0 22px;
    border-radius: 8px;
    font-size: 17px;
    font-weight: 900;
}

.public-landing-primary {
    border: 1px solid var(--public-accent);
    background: var(--public-accent);
    color: #ffffff;
    box-shadow: 0 18px 38px rgba(0, 107, 117, 0.28);
}

.public-landing-primary:hover {
    background: var(--public-accent-strong);
    color: #ffffff;
}

.public-landing-secondary {
    border: 1px solid rgba(255, 255, 255, 0.26);
    background: rgba(255, 255, 255, 0.12);
    color: #ffffff;
}

.public-landing-secondary:hover {
    background: rgba(255, 255, 255, 0.2);
    color: #ffffff;
}

.public-whatsapp-link {
    gap: 9px;
}

.public-whatsapp-link svg {
    width: 20px;
    height: 20px;
    flex: 0 0 auto;
    fill: currentColor;
}

.public-landing-nav-cta.public-whatsapp-link {
    background: #25d366;
    color: #083b1f;
}

.public-landing-nav-cta.public-whatsapp-link:hover {
    background: #35df73;
    color: #052b17;
}

.public-whatsapp-float {
    position: fixed;
    right: 26px;
    bottom: 26px;
    z-index: 80;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, 0.32);
    border-radius: 999px;
    background: #25d366;
    color: #ffffff;
    font-weight: 900;
    box-shadow: 0 18px 42px rgba(5, 43, 23, 0.24);
}

.public-whatsapp-float:hover {
    background: #35df73;
    color: #ffffff;
    transform: translateY(-1px);
}

.public-whatsapp-float svg {
    width: 36px;
    height: 36px;
    fill: currentColor;
}

.public-whatsapp-float span {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

.public-page-owner-preview {
    position: relative;
}

.public-page-owner-preview .public-whatsapp-float {
    position: absolute;
    right: 34px;
    bottom: 34px;
}

.public-landing-hero-card {
    display: grid;
    gap: 14px;
    align-self: center;
    padding: 26px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.94);
    color: var(--public-ink);
    box-shadow: 0 28px 70px rgba(0, 0, 0, 0.28);
}

.public-landing-hero-card > span {
    color: var(--public-accent);
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
}

.public-landing-hero-card > strong {
    color: var(--public-accent-strong);
    font-size: 92px;
    line-height: 0.9;
}

.public-landing-hero-card > small {
    color: var(--public-muted);
    font-size: 16px;
    font-weight: 800;
}

.public-landing-hero-card div {
    display: grid;
    gap: 10px;
    margin-top: 8px;
    padding-top: 18px;
    border-top: 1px solid var(--public-line);
}

.public-landing-hero-card p {
    display: grid;
    gap: 3px;
    margin: 0;
    color: var(--public-muted);
    font-weight: 700;
    line-height: 1.35;
}

.public-landing-hero-card b {
    color: var(--public-ink);
    font-size: 13px;
    text-transform: uppercase;
}

.public-landing-hero-strip {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    width: min(100%, 1760px);
    margin: 0 auto;
}

.public-landing-hero-strip article {
    display: grid;
    gap: 5px;
    min-width: 0;
    padding: 18px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.12);
}

.public-landing-hero-strip span {
    color: rgba(255, 255, 255, 0.72);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.public-landing-hero-strip strong {
    color: #ffffff;
    font-size: 34px;
    line-height: 1;
}

.public-landing-section {
    width: min(100% - 64px, 1680px);
    margin: 0 auto;
    padding: 112px 0;
}

.public-landing-section-head {
    display: grid;
    gap: 14px;
    max-width: 920px;
    margin-bottom: 36px;
}

.public-landing-section-head > span,
.public-landing-panel-copy > span,
.public-landing-calculator-head > span {
    color: var(--public-accent);
}

.public-landing-section-head h2,
.public-landing-panel-copy h2,
.public-landing-contact h2 {
    margin: 0;
    color: var(--public-ink);
    font-family: var(--font-title);
    font-size: 58px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0;
}

.public-landing-section-head p,
.public-landing-panel-copy p,
.public-landing-contact p {
    max-width: 780px;
    margin: 0;
    color: var(--public-muted);
    font-size: 19px;
    line-height: 1.5;
}

.public-landing-intro {
    padding-top: 126px;
}

.public-landing-feature-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.public-landing-feature-grid article,
.public-landing-rate-cards article {
    display: grid;
    gap: 14px;
    min-width: 0;
    padding: 28px;
    border: 1px solid var(--public-line);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 18px 44px rgba(20, 34, 41, 0.08);
}

.public-landing-feature-grid article > span {
    display: inline-grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: 8px;
    background: var(--public-soft);
    color: var(--public-accent);
    font-weight: 900;
}

.public-landing-feature-grid h3 {
    margin: 0;
    color: var(--public-ink);
    font-size: 26px;
}

.public-landing-feature-grid p {
    margin: 0;
    color: var(--public-muted);
    font-size: 16px;
    line-height: 1.5;
}

.public-landing-vehicles,
.public-landing-location {
    display: grid;
    grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
    gap: 44px;
    align-items: center;
}

.public-landing-vehicles {
    width: 100%;
    max-width: none;
    padding: 118px max(32px, calc((100vw - 1680px) / 2));
    background: var(--public-soft);
}

.public-landing-panel-copy {
    display: grid;
    gap: 14px;
}

.public-landing-chip-wall {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.public-landing-chip-wall span {
    min-height: 86px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px;
    border: 1px solid color-mix(in srgb, var(--public-accent) 22%, #ffffff);
    border-radius: 8px;
    background: #ffffff;
    color: var(--public-ink);
    font-size: 22px;
    font-weight: 900;
    text-align: center;
    box-shadow: 0 14px 34px rgba(20, 34, 41, 0.07);
}

.public-landing-models {
    display: grid;
    gap: 28px;
}

.public-landing-model-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.public-landing-model-grid article {
    display: grid;
    gap: 12px;
    min-height: 188px;
    padding: 26px;
    border: 1px solid var(--public-line);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 14px 34px rgba(20, 34, 41, 0.07);
}

.public-landing-model-grid article span {
    color: var(--public-accent);
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
}

.public-landing-model-grid article strong {
    color: var(--public-ink);
    font-size: 24px;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

.public-landing-model-grid article small {
    align-self: end;
    color: var(--public-muted);
    font-size: 14px;
    font-weight: 800;
}

.public-landing-rates {
    display: grid;
    gap: 26px;
}

.public-landing-rate-cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.public-landing-rate-cards article span {
    color: var(--public-accent);
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
}

.public-landing-rate-cards article strong {
    color: var(--public-ink);
    font-size: 42px;
    line-height: 1;
}

.public-landing-rate-cards article small {
    color: var(--public-muted);
    font-weight: 800;
}

.public-landing-calculator {
    display: grid;
    gap: 22px;
    padding: 28px;
    border: 1px solid var(--public-line);
    border-radius: 8px;
    background: #f8fbfb;
    box-shadow: 0 18px 44px rgba(20, 34, 41, 0.08);
}

.public-landing-calculator-head {
    display: grid;
    gap: 4px;
}

.public-landing-calculator-head h3 {
    margin: 0;
    color: var(--public-ink);
    font-size: 34px;
    line-height: 1;
}

.public-landing .public-price-grid {
    grid-template-columns: minmax(190px, 0.85fr) repeat(2, minmax(260px, 1fr)) minmax(190px, 0.7fr);
    gap: 14px;
}

.public-landing .public-price-grid label,
.public-landing .public-price-grid .public-date-time-field {
    gap: 8px;
    color: var(--public-ink);
    font-size: 13px;
    font-weight: 900;
}

.public-landing .public-price-grid input,
.public-landing .public-price-grid select {
    min-height: 54px;
    border-color: var(--public-line);
    background: #ffffff;
    font-size: 16px;
}

.public-landing .public-price-grid button {
    min-height: 54px;
    background: var(--public-accent);
    font-size: 16px;
    font-weight: 900;
}

.public-landing .public-price-grid button:hover {
    background: var(--public-accent-strong);
}

.public-landing-result {
    margin-top: 0;
}

.public-landing-location {
    padding-top: 96px;
}

.public-landing-location .public-landing-secondary {
    border-color: var(--public-line);
    background: #ffffff;
    color: var(--public-accent);
}

.public-landing-location .public-landing-secondary:hover {
    border-color: var(--public-accent);
    background: var(--public-soft);
    color: var(--public-accent-strong);
}

.public-landing-map,
.public-landing-map-fallback {
    min-height: 560px;
    border: 1px solid var(--public-line);
    border-radius: 8px;
    background: var(--public-soft);
    box-shadow: 0 18px 44px rgba(20, 34, 41, 0.08);
}

.public-landing-map-fallback {
    display: grid;
    place-items: center;
    gap: 8px;
    padding: 28px;
    text-align: center;
}

.public-landing-map-fallback strong {
    color: var(--public-ink);
    font-size: 28px;
}

.public-landing-map-fallback span {
    color: var(--public-muted);
    font-weight: 800;
}

.public-landing-contact {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 28px;
    align-items: center;
    width: min(100% - 64px, 1680px);
    margin: 22px auto 0;
    padding: 56px;
    border-radius: 8px;
    background: #102329;
    color: #ffffff;
}

.public-landing-contact h2,
.public-landing-contact p {
    color: #ffffff;
}

.public-landing-contact p {
    color: rgba(255, 255, 255, 0.72);
}

.public-landing-contact .public-landing-secondary {
    border-color: rgba(255, 255, 255, 0.22);
}

.public-landing-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    width: min(100% - 64px, 1680px);
    margin: 0 auto;
    padding: 34px 0;
    color: var(--public-muted);
}

.public-landing-footer strong {
    color: var(--public-ink);
    font-size: 18px;
}

.public-landing-footer small {
    color: var(--public-muted);
    font-weight: 700;
}

.public-page-owner-preview .public-landing-hero {
    min-height: 820px;
}

@media (max-width: 1160px) {
    .public-landing-copy h1 {
        font-size: 72px;
    }

    .public-landing-hero-inner,
    .public-landing-vehicles,
    .public-landing-location,
    .public-landing-contact {
        grid-template-columns: 1fr;
    }

    .public-landing-hero-card {
        max-width: 620px;
    }

    .public-landing .public-price-grid,
    .public-landing-model-grid,
    .public-landing-rate-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 840px) {
    .public-landing-hero {
        min-height: 100svh;
        padding: 18px 16px 22px;
    }

    .public-landing-nav {
        align-items: flex-start;
        flex-direction: column;
    }

    .public-landing-brand strong {
        max-width: calc(100vw - 116px);
        font-size: 20px;
    }

    .public-landing-links {
        width: 100%;
        flex-wrap: wrap;
        overflow-x: visible;
        justify-content: flex-start;
    }

    .public-landing-links a {
        flex: 1 1 calc(50% - 4px);
    }

    .public-landing-links .public-landing-nav-cta {
        flex-basis: 100%;
    }

    .public-landing-hero-inner {
        padding: 34px 0 22px;
    }

    .public-landing-copy h1 {
        font-size: 52px;
    }

    .public-landing-copy p {
        font-size: 18px;
    }

    .public-landing-hero-card {
        padding: 20px;
    }

    .public-landing-hero-card > strong {
        font-size: 68px;
    }

    .public-landing-hero-strip,
    .public-landing-feature-grid,
    .public-landing-chip-wall,
    .public-landing-model-grid,
    .public-landing .public-price-grid,
    .public-landing-rate-cards {
        grid-template-columns: 1fr;
    }

    .public-landing-section,
    .public-landing-contact,
    .public-landing-footer {
        width: min(100% - 32px, 1680px);
    }

    .public-landing-section {
        padding: 72px 0;
    }

    .public-landing-vehicles {
        padding: 72px 16px;
    }

    .public-landing-section-head h2,
    .public-landing-panel-copy h2,
    .public-landing-contact h2 {
        font-size: 40px;
    }

    .public-date-time {
        grid-template-columns: 1fr;
    }

    .public-landing-map,
    .public-landing-map-fallback {
        min-height: 360px;
    }

    .public-landing-contact {
        padding: 28px;
    }

    .public-landing-contact-actions,
    .public-landing-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .public-landing-primary,
    .public-landing-secondary {
        width: 100%;
    }

    .public-landing-footer {
        align-items: flex-start;
        flex-direction: column;
    }

    .public-whatsapp-float {
        right: 16px;
        bottom: 16px;
        width: 56px;
        height: 56px;
    }

    .public-whatsapp-float svg {
        width: 32px;
        height: 32px;
    }
}

@media (max-width: 520px) {
    .public-landing-copy h1 {
        font-size: 42px;
    }

    .public-landing-section-head h2,
    .public-landing-panel-copy h2,
    .public-landing-contact h2 {
        font-size: 34px;
    }

    .public-landing-rate-cards article strong {
        font-size: 34px;
    }
}

/* Shared typography for AlkiSYS public pages and module screens. */
.landing-page,
.module-landing-page,
.plan-checkout,
.app-shell {
    font-family: var(--font-body);
    font-weight: var(--font-regular);
}

.brand-name,
.brand strong,
.landing-brand strong,
.plan-checkout-brand .brand-name {
    font-family: var(--font-brand);
    font-weight: var(--font-semibold);
}

.landing-page :is(h1, h2, h3),
.module-landing-page :is(h1, h2, h3),
.plan-checkout :is(h1, h2, h3),
.app-shell :is(.topbar h1, .summary-copy h2, .panel h2, .module-hero h2, .module-card h3) {
    font-family: var(--font-title);
    font-weight: var(--font-semibold);
}

.landing-page :is(.landing-command, .landing-register, .landing-primary, .landing-secondary, .module-detail-link, .price-card a, .module-plan-action, .landing-contact-submit),
.plan-checkout :is(.plan-checkout-submit, .plan-period-toggle label),
.app-shell :is(button, .button, .logout-button) {
    font-family: var(--font-button);
    font-weight: var(--font-semibold);
}

.landing-page :is(p, li, label, input, textarea, small),
.module-landing-page :is(p, li, label, input, textarea, small),
.plan-checkout :is(p, li, label, input, small, dt),
.app-shell :is(p, li, label, input, select, textarea, small) {
    font-family: var(--font-body);
}

/* Public parking landing: Urbana template */
.public-template-urbana.public-landing {
    --public-accent: #d9a441;
    --public-accent-strong: #a87516;
    --public-highlight: #13a8a0;
    --public-ink: #121820;
    --public-muted: #63717a;
    --public-soft: #f4efe5;
    --public-line: #d8d1c3;
    background: #111820;
}

.public-template-urbana .public-landing-hero {
    min-height: 100vh;
    min-height: 100svh;
    padding: clamp(18px, 3vw, 38px) clamp(16px, 4vw, 68px) clamp(22px, 4vw, 44px);
    background: #111820;
}

.public-template-urbana .public-landing-media::after {
    background:
        linear-gradient(90deg, rgba(17, 24, 32, 0.96) 0%, rgba(17, 24, 32, 0.88) 38%, rgba(17, 24, 32, 0.46) 68%, rgba(17, 24, 32, 0.18) 100%),
        linear-gradient(0deg, rgba(17, 24, 32, 0.76) 0%, rgba(17, 24, 32, 0.14) 42%, rgba(17, 24, 32, 0.58) 100%);
}

.public-template-urbana .public-landing-media img {
    filter: saturate(0.86) contrast(1.08);
    object-position: center;
}

.public-template-urbana .public-landing-nav {
    padding: 10px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 8px;
    background: rgba(17, 24, 32, 0.62);
    box-shadow: 0 18px 50px rgba(0, 0, 0, 0.24);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}

.public-template-urbana .public-landing-brand img,
.public-template-urbana .public-landing-brand > span {
    width: 58px;
    height: 58px;
    border-color: rgba(217, 164, 65, 0.46);
    background: rgba(217, 164, 65, 0.12);
}

.public-template-urbana .public-landing-brand strong {
    max-width: 460px;
    color: #fff8e8;
}

.public-template-urbana .public-landing-links {
    border: 0;
    background: transparent;
}

.public-template-urbana .public-landing-links a {
    color: rgba(255, 248, 232, 0.82);
}

.public-template-urbana .public-landing-links a:hover {
    background: rgba(217, 164, 65, 0.13);
    color: #ffffff;
}

.public-template-urbana .public-landing-links .public-landing-nav-cta {
    background: #fff8e8;
    color: #121820;
}

.public-template-urbana .public-landing-nav-cta.public-whatsapp-link {
    background: #26d36d;
    color: #052b17;
}

.public-template-urbana .public-landing-hero-inner {
    grid-template-columns: minmax(0, 1.18fr) minmax(340px, 0.6fr);
    align-items: end;
    padding: clamp(48px, 8vw, 118px) 0 clamp(24px, 4vw, 42px);
}

.public-template-urbana .public-landing-copy {
    align-self: center;
    gap: 20px;
    max-width: 1060px;
}

.public-template-urbana .public-landing-copy h1 {
    max-width: 1020px;
    color: #fff8e8;
    font-size: clamp(54px, 9vw, 118px);
    line-height: 0.9;
}

.public-template-urbana .public-landing-copy p {
    max-width: 760px;
    color: rgba(255, 248, 232, 0.78);
    font-size: clamp(18px, 2vw, 24px);
}

.public-template-urbana .public-landing-primary {
    border-color: var(--public-accent);
    background: var(--public-accent);
    color: #121820;
    box-shadow: 0 20px 42px rgba(217, 164, 65, 0.28);
}

.public-template-urbana .public-landing-primary:hover {
    background: #efc464;
    color: #121820;
}

.public-template-urbana .public-landing-secondary {
    border-color: rgba(255, 248, 232, 0.24);
    background: rgba(255, 248, 232, 0.08);
    color: #fff8e8;
}

.public-template-urbana .public-landing-secondary:hover {
    border-color: rgba(217, 164, 65, 0.56);
    background: rgba(217, 164, 65, 0.12);
}

.public-template-urbana .public-landing-hero-card {
    align-self: end;
    gap: 16px;
    padding: 24px;
    border-color: rgba(255, 248, 232, 0.15);
    background: rgba(18, 24, 32, 0.9);
    color: #fff8e8;
    box-shadow: 0 28px 90px rgba(0, 0, 0, 0.36);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
}

.public-template-urbana .public-landing-hero-card > span {
    color: var(--public-accent);
}

.public-template-urbana .public-landing-hero-card > strong {
    color: #ffffff;
    font-size: clamp(70px, 8vw, 112px);
}

.public-template-urbana .public-landing-hero-card > small,
.public-template-urbana .public-landing-hero-card p {
    color: rgba(255, 248, 232, 0.72);
}

.public-template-urbana .public-landing-hero-card div {
    border-top-color: rgba(255, 248, 232, 0.14);
}

.public-template-urbana .public-landing-hero-card b {
    color: #fff8e8;
}

.public-template-urbana .public-landing-hero-strip {
    gap: 0;
    border: 1px solid rgba(255, 248, 232, 0.12);
    border-radius: 8px;
    background: rgba(18, 24, 32, 0.78);
    box-shadow: 0 18px 60px rgba(0, 0, 0, 0.26);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}

.public-template-urbana .public-landing-hero-strip article {
    border: 0;
    border-right: 1px solid rgba(255, 248, 232, 0.1);
    border-radius: 0;
    background: transparent;
}

.public-template-urbana .public-landing-hero-strip article:last-child {
    border-right: 0;
}

.public-template-urbana .public-landing-hero-strip span {
    color: rgba(255, 248, 232, 0.62);
}

.public-template-urbana .public-landing-hero-strip strong {
    color: #fff8e8;
}

.public-template-urbana .public-landing-intro,
.public-template-urbana .public-landing-rates {
    width: 100%;
    max-width: none;
    padding-right: max(24px, calc((100vw - 1680px) / 2));
    padding-left: max(24px, calc((100vw - 1680px) / 2));
}

.public-template-urbana .public-landing-intro {
    padding-top: clamp(76px, 8vw, 132px);
    padding-bottom: clamp(72px, 8vw, 118px);
    background: #111820;
}

.public-template-urbana .public-landing-section-head h2,
.public-template-urbana .public-landing-panel-copy h2,
.public-template-urbana .public-landing-contact h2 {
    letter-spacing: 0;
}

.public-template-urbana .public-landing-intro .public-landing-section-head h2,
.public-template-urbana .public-landing-intro .public-landing-section-head p {
    color: #fff8e8;
}

.public-template-urbana .public-landing-intro .public-landing-section-head p {
    color: rgba(255, 248, 232, 0.68);
}

.public-template-urbana .public-landing-feature-grid {
    gap: 0;
    border: 1px solid rgba(255, 248, 232, 0.12);
    border-radius: 8px;
    overflow: hidden;
}

.public-template-urbana .public-landing-feature-grid article {
    border: 0;
    border-right: 1px solid rgba(255, 248, 232, 0.1);
    border-radius: 0;
    background: #17212b;
    box-shadow: none;
}

.public-template-urbana .public-landing-feature-grid article:last-child {
    border-right: 0;
}

.public-template-urbana .public-landing-feature-grid article > span {
    background: rgba(217, 164, 65, 0.12);
    color: var(--public-accent);
}

.public-template-urbana .public-landing-feature-grid h3 {
    color: #fff8e8;
}

.public-template-urbana .public-landing-feature-grid p {
    color: rgba(255, 248, 232, 0.64);
}

.public-template-urbana .public-landing-vehicles {
    grid-template-columns: minmax(280px, 0.58fr) minmax(0, 1.42fr);
    padding-top: clamp(74px, 8vw, 116px);
    padding-bottom: clamp(74px, 8vw, 116px);
    background: #f4efe5;
}

.public-template-urbana .public-landing-vehicles .public-landing-panel-copy h2,
.public-template-urbana .public-landing-location .public-landing-panel-copy h2 {
    color: #121820;
}

.public-template-urbana .public-landing-chip-wall {
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.public-template-urbana .public-landing-chip-wall span {
    min-height: 92px;
    border-color: #d8d1c3;
    background: #fffaf0;
    color: #121820;
    box-shadow: none;
}

.public-template-urbana .public-landing-chip-wall span:nth-child(3n + 1) {
    background: #121820;
    color: #fff8e8;
}

.public-template-urbana .public-landing-models {
    width: 100%;
    max-width: none;
    padding: clamp(78px, 8vw, 126px) max(24px, calc((100vw - 1680px) / 2));
    background: #0f6f68;
}

.public-template-urbana .public-landing-models .public-landing-section-head h2,
.public-template-urbana .public-landing-models .public-landing-section-head p {
    color: #fff8e8;
}

.public-template-urbana .public-landing-models .public-landing-section-head p {
    color: rgba(255, 248, 232, 0.74);
}

.public-template-urbana .public-landing-model-grid {
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.public-template-urbana .public-landing-model-grid article {
    border-color: rgba(255, 248, 232, 0.18);
    background: rgba(255, 250, 240, 0.96);
    box-shadow: none;
}

.public-template-urbana .public-landing-model-grid article span {
    color: #0f6f68;
}

.public-template-urbana .public-landing-model-grid article strong {
    color: #121820;
}

.public-template-urbana .public-landing-rates {
    padding-top: clamp(78px, 8vw, 124px);
    padding-bottom: clamp(82px, 8vw, 132px);
    background: #ffffff;
}

.public-template-urbana .public-landing-rate-cards {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.public-template-urbana .public-landing-rate-cards article {
    border-color: #ded6c8;
    background: #fffaf0;
    box-shadow: none;
}

.public-template-urbana .public-landing-rate-cards article strong {
    color: #121820;
}

.public-template-urbana .public-landing-calculator {
    border-color: #d6c9b5;
    background: #121820;
    color: #fff8e8;
    box-shadow: 0 24px 70px rgba(18, 24, 32, 0.18);
}

.public-template-urbana .public-landing-calculator h3,
.public-template-urbana .public-landing-calculator label {
    color: #fff8e8;
}

.public-template-urbana .public-price-grid input,
.public-template-urbana .public-price-grid select {
    border-color: rgba(255, 248, 232, 0.18);
    background: #fffaf0;
    color: #121820;
}

.public-template-urbana .public-price-grid button {
    background: var(--public-accent);
    color: #121820;
}

.public-template-urbana .public-price-result {
    border-color: #d6c9b5;
    background: #fffaf0;
    box-shadow: none;
}

.public-template-urbana .public-landing-location {
    grid-template-columns: minmax(280px, 0.52fr) minmax(0, 1.48fr);
    width: 100%;
    max-width: none;
    padding: clamp(78px, 8vw, 126px) max(24px, calc((100vw - 1680px) / 2));
    background: #f7f7f2;
}

.public-template-urbana .public-landing-location .public-landing-secondary {
    border-color: #d8d1c3;
    background: #ffffff;
    color: #121820;
}

.public-template-urbana .public-landing-map,
.public-template-urbana .public-landing-map-fallback {
    min-height: 520px;
    border-color: #cfc6b8;
    background: #e9e3d8;
    box-shadow: none;
}

.public-template-urbana .public-landing-contact {
    width: 100%;
    max-width: none;
    margin-top: 0;
    padding: clamp(48px, 6vw, 78px) max(24px, calc((100vw - 1680px) / 2));
    border-radius: 0;
    background: #111820;
}

.public-template-urbana .public-landing-contact .public-landing-secondary {
    border-color: rgba(255, 248, 232, 0.22);
    background: transparent;
    color: #fff8e8;
}

.public-template-urbana .public-landing-footer {
    width: 100%;
    max-width: none;
    padding: 28px max(24px, calc((100vw - 1680px) / 2));
    background: #0c1117;
    color: rgba(255, 248, 232, 0.64);
}

.public-template-urbana .public-landing-footer strong {
    color: #fff8e8;
}

.public-template-urbana .public-landing-footer small {
    color: rgba(255, 248, 232, 0.58);
}

.public-page-owner-preview .public-template-urbana .public-landing-hero {
    min-height: 760px;
}

@media (max-width: 1160px) {
    .public-template-urbana .public-landing-hero-inner,
    .public-template-urbana .public-landing-vehicles,
    .public-template-urbana .public-landing-location {
        grid-template-columns: 1fr;
    }

    .public-template-urbana .public-landing-hero-card {
        max-width: none;
    }

    .public-template-urbana .public-landing-feature-grid {
        grid-template-columns: 1fr;
    }

    .public-template-urbana .public-landing-feature-grid article {
        border-right: 0;
        border-bottom: 1px solid rgba(255, 248, 232, 0.1);
    }

    .public-template-urbana .public-landing-feature-grid article:last-child {
        border-bottom: 0;
    }
}

@media (max-width: 840px) {
    .public-template-urbana .public-landing-nav {
        width: 100%;
        padding: 8px;
    }

    .public-template-urbana .public-landing-links {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        padding: 0;
    }

    .public-template-urbana .public-landing-links a {
        width: 100%;
        flex: none;
        min-height: 40px;
        padding: 0 10px;
    }

    .public-template-urbana .public-landing-links .public-landing-nav-cta {
        grid-column: 1 / -1;
    }

    .public-template-urbana .public-landing-copy {
        width: min(100%, calc(100vw - 40px));
        max-width: calc(100vw - 40px);
        min-width: 0;
    }

    .public-template-urbana .public-landing-copy h1 {
        max-width: 100%;
        font-size: clamp(38px, 10.5vw, 50px);
        line-height: 0.96;
        overflow-wrap: anywhere;
        word-break: break-word;
    }

    .public-template-urbana .public-landing-copy p {
        max-width: 100%;
        font-size: 17px;
        overflow-wrap: anywhere;
    }

    .public-template-urbana .public-landing-actions,
    .public-template-urbana .public-landing-actions a {
        width: min(100%, calc(100vw - 40px));
        max-width: calc(100vw - 40px);
    }

    .public-template-urbana .public-landing-hero-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .public-template-urbana .public-landing-hero-strip article:nth-child(2n) {
        border-right: 0;
    }

    .public-template-urbana .public-landing-hero-strip article:nth-child(-n + 2) {
        border-bottom: 1px solid rgba(255, 248, 232, 0.1);
    }

    .public-template-urbana .public-landing-intro,
    .public-template-urbana .public-landing-models,
    .public-template-urbana .public-landing-rates,
    .public-template-urbana .public-landing-location,
    .public-template-urbana .public-landing-contact,
    .public-template-urbana .public-landing-footer {
        padding-right: 16px;
        padding-left: 16px;
    }

    .public-template-urbana .public-landing-chip-wall,
    .public-template-urbana .public-landing-model-grid,
    .public-template-urbana .public-landing-rate-cards {
        grid-template-columns: 1fr;
    }

    .public-template-urbana .public-landing-map,
    .public-template-urbana .public-landing-map-fallback {
        min-height: 340px;
    }
}

@media (max-width: 520px) {
    .public-template-urbana .public-landing-hero {
        padding-right: 16px;
        padding-left: 16px;
    }

    .public-template-urbana .public-landing-nav,
    .public-template-urbana .public-landing-copy,
    .public-template-urbana .public-landing-actions,
    .public-template-urbana .public-landing-hero-card,
    .public-template-urbana .public-landing-hero-strip {
        width: 100%;
        max-width: 350px;
        margin-right: auto;
        margin-left: 0;
    }

    .public-template-urbana .public-landing-links {
        width: 100%;
    }

    .public-template-urbana .public-landing-copy h1 {
        font-size: clamp(34px, 10vw, 44px);
    }

    .public-template-urbana .public-landing-copy p {
        max-width: 330px;
        font-size: 16px;
    }

    .public-template-urbana .public-landing-actions a {
        width: 100%;
        max-width: 330px;
    }
}

/* Public parking landing: four separate designs */
.public-design {
    --public-nav-height: 86px;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    background: #ffffff;
    color: #142229;
}

.public-design :is(h1, h2, h3, p) {
    margin: 0;
}

.public-design :is(h1, h2, h3) {
    font-family: var(--font-title);
    font-weight: 700;
    letter-spacing: 0;
}

.public-design a {
    text-decoration: none;
}

.public-design [data-public-block] {
    scroll-margin-top: calc(var(--public-nav-height) + 18px);
}

.public-design-brand {
    display: inline-flex;
    align-items: center;
    min-width: 0;
    gap: 8px;
    color: inherit;
}

.public-design-brand img,
.public-design-brand > span {
    width: 54px;
    height: 54px;
    flex: 0 0 auto;
    border-radius: 8px;
    object-fit: cover;
}

.public-design-brand > span {
    display: grid;
    place-items: center;
    background: currentColor;
    color: #ffffff;
    font-size: 20px;
    font-weight: 900;
}

.public-design-brand strong {
    max-width: 300px;
    overflow: hidden;
    font-size: 21px;
    line-height: 1;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.public-sticky-nav {
    position: sticky;
    top: 0;
    z-index: 220;
    order: -200;
    display: grid;
    grid-template-columns: minmax(180px, 0.8fr) minmax(360px, auto) minmax(180px, 0.8fr);
    align-items: center;
    gap: 16px;
    width: 100%;
    min-height: var(--public-nav-height);
    margin-bottom: 0;
    padding: 10px max(18px, calc((100vw - 1680px) / 2));
    border-bottom: 1px solid rgba(255, 255, 255, 0.18);
    background: rgba(8, 18, 22, 0.96);
    color: #ffffff;
    box-shadow: 0 18px 54px rgba(5, 21, 26, 0.28);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}

@media (min-width: 761px) {
    .public-page .public-site {
        padding-top: var(--public-nav-height);
    }

    .public-page .public-site > .public-sticky-nav {
        position: fixed;
        right: 0;
        left: 0;
    }
}

.public-design > .public-sticky-nav + [data-public-block~="portada"] {
    padding-top: clamp(28px, 4vw, 56px);
}

.public-sticky-nav .public-design-brand img,
.public-sticky-nav .public-design-brand > span {
    border: 1px solid rgba(255, 255, 255, 0.26);
    background: rgba(255, 255, 255, 0.92);
}

.public-sticky-nav .public-design-brand > span {
    color: #0b2d34;
}

.public-sticky-nav .public-design-brand strong,
.public-sticky-nav .public-sticky-links a,
.public-sticky-nav .public-sticky-socials a {
    color: #ffffff;
    text-shadow: 0 1px 12px rgba(0, 0, 0, 0.36);
}

.public-sticky-links,
.public-sticky-socials,
.public-sticky-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.public-sticky-links {
    justify-content: center;
}

.public-sticky-actions {
    justify-content: flex-end;
}

.public-sticky-links a,
.public-sticky-socials a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0 12px;
    border-radius: 8px;
    color: currentColor;
    font-size: 17px;
    font-weight: 900;
}

.public-sticky-links > a:hover,
.public-sticky-links > a:focus-visible,
.public-sticky-socials a:hover,
.public-sticky-socials a:focus-visible {
    background: rgba(255, 255, 255, 0.14);
}

.public-sticky-cta {
    background: #006b75;
    color: #ffffff !important;
}

.public-sticky-theme {
    min-height: 42px;
    border-color: rgba(255, 255, 255, 0.34);
    background: rgba(255, 255, 255, 0.12);
    color: #ffffff;
}

.public-design-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.public-theme-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 13px;
    border: 1px solid currentColor;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.12);
    color: currentColor;
    font: inherit;
    font-size: 13px;
    font-weight: 900;
    gap: 8px;
    cursor: pointer;
}

.public-theme-toggle:hover,
.public-theme-toggle:focus-visible {
    background: rgba(255, 255, 255, 0.2);
}

.public-theme-toggle-icon {
    width: 18px;
    height: 18px;
    border: 2px solid currentColor;
    border-radius: 50%;
    background: linear-gradient(90deg, currentColor 0 50%, transparent 50% 100%);
}

.public-theme-toggle[aria-pressed="true"] .public-theme-toggle-icon {
    transform: rotate(180deg);
}

.public-design :is(.visual-primary, .visual-secondary, .visual-nav-cta, .urban-primary, .urban-secondary, .urban-nav-cta, .map-primary, .map-secondary, .direct-primary, .direct-nav-cta) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 0 20px;
    border-radius: 8px;
    font-weight: 900;
}

.public-design .public-whatsapp-link {
    gap: 8px;
}

.public-design .public-whatsapp-link svg {
    width: 20px;
    height: 20px;
    fill: currentColor;
}

.public-design .public-price-grid {
    display: grid;
    grid-template-columns: minmax(230px, 0.86fr) repeat(2, minmax(280px, 1fr)) minmax(160px, 0.56fr);
    align-items: end;
    gap: 12px;
}

.public-design .public-price-grid label,
.public-design .public-price-grid .public-date-time-field {
    display: grid;
    position: relative;
    gap: 8px;
    color: inherit;
    font-size: 13px;
    font-weight: 900;
}

.public-design .public-price-grid input,
.public-design .public-price-grid select {
    min-height: 52px;
    border: 1px solid rgba(20, 34, 41, 0.18);
    border-radius: 8px;
    background: #ffffff;
    color: #142229;
    font-size: 16px;
}

.public-design .public-price-grid button {
    min-height: 52px;
    border-radius: 8px;
    font-weight: 900;
}

.public-design-calculator-head {
    display: grid;
    gap: 4px;
}

.public-design :is(.visual-calculator, .urban-calculator, .map-calculator, .direct-calculator) {
    display: grid;
    position: relative;
    overflow: visible;
    gap: 20px;
    padding: 24px;
    border-radius: 8px;
}

.public-design-calculator-head span,
.public-design :is(.visual-copy, .visual-intro, .visual-vehicles, .visual-models, .visual-rates, .visual-location, .urban-copy, .urban-band, .urban-section-head, .urban-location, .map-arrival-card, .map-vehicles, .map-section-head, .direct-copy, .direct-proof, .direct-rates) > span,
.public-design :is(.direct-card, .visual-summary) > span {
    color: currentColor;
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
}

.public-design-calculator-head h3 {
    font-size: 30px;
    line-height: 1;
}

.public-calculation-slot:not(:has([data-public-calculation-result])) {
    display: none;
}

.public-calculation-slot {
    overflow: visible;
}

.public-calculation-result-panel {
    display: grid;
    gap: 16px;
    width: 100%;
    min-width: 0;
    overflow: visible;
    padding: 18px;
    border: 1px solid rgba(20, 34, 41, 0.16);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.72);
    color: inherit;
}

.public-calculation-total {
    display: grid;
    gap: 5px;
}

.public-calculation-facts span {
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.public-calculation-total strong {
    font-size: clamp(34px, 5vw, 54px);
    line-height: 1;
}

.public-calculation-facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.public-calculation-facts article {
    display: grid;
    gap: 6px;
    min-width: 0;
    padding: 14px;
    border: 1px solid rgba(20, 34, 41, 0.12);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.64);
}

.public-calculation-facts article.public-discount-fact {
    border-color: rgba(0, 107, 117, 0.72);
    background: linear-gradient(135deg, rgba(0, 126, 143, 0.18), rgba(0, 107, 117, 0.08));
    box-shadow: inset 4px 0 0 #007e8f;
}

.public-calculation-facts article.public-discount-total-fact {
    border-color: rgba(37, 211, 102, 0.72);
    background: linear-gradient(135deg, rgba(37, 211, 102, 0.18), rgba(0, 126, 143, 0.08));
    box-shadow: inset 4px 0 0 #25d366;
}

.public-discount-facts {
    grid-column: 1 / -1;
    margin-top: 2px;
}

.public-calculation-facts strong {
    overflow-wrap: anywhere;
    font-size: 16px;
    line-height: 1.35;
}

.public-selected-vehicle-models {
    color: var(--public-muted, #52666d);
    font-size: 13px;
    font-weight: 800;
    line-height: 1.35;
}

.public-vehicle-label-line {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    gap: 10px;
}

.public-design .public-price-grid .public-vehicle-info-trigger {
    display: inline-grid;
    place-items: center;
    width: 1.35em;
    min-width: 1.35em;
    height: 1.35em;
    min-height: 1.35em;
    padding: 0;
    border: 1px solid currentColor;
    border-radius: 50%;
    background: transparent;
    color: currentColor;
    font: inherit;
    font-size: 1em;
    font-weight: 900;
    line-height: 1;
    cursor: pointer;
}

.public-design .public-price-grid .public-vehicle-info-trigger:hover,
.public-design .public-price-grid .public-vehicle-info-trigger:focus-visible {
    background: rgba(0, 107, 117, 0.12);
}

.public-vehicle-model-popover {
    position: absolute;
    z-index: 80;
    top: calc(100% + 8px);
    right: 0;
    left: 0;
    display: grid;
    gap: 10px;
    padding: 12px;
    border: 1px solid rgba(20, 34, 41, 0.18);
    border-radius: 8px;
    background: #ffffff;
    color: #142229;
    box-shadow: 0 18px 42px rgba(6, 22, 28, 0.18);
    text-transform: none;
}

.public-vehicle-model-popover[hidden] {
    display: none !important;
}

.public-vehicle-model-popover > strong {
    color: inherit;
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.public-vehicle-model-popover [data-public-vehicle-model-list] {
    display: grid;
    max-height: 240px;
    overflow: auto;
    gap: 8px;
}

.public-vehicle-model-popover article {
    display: grid;
    gap: 4px;
    padding: 9px;
    border: 1px solid rgba(20, 34, 41, 0.12);
    border-radius: 8px;
    background: #f7fbfc;
}

.public-vehicle-model-popover article strong {
    color: #006b75;
    font-size: 13px;
    font-weight: 900;
}

.public-vehicle-model-popover article span,
.public-vehicle-model-empty {
    margin: 0;
    color: #52666d;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.35;
}

.public-calculation-mode {
    display: inline-flex;
    width: fit-content;
    padding: 4px;
    border: 1px solid rgba(0, 107, 117, 0.22);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.72);
    gap: 4px;
}

.public-calculation-mode label {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0 14px;
    border-radius: 6px;
    color: var(--public-ink, #142229);
    cursor: pointer;
    font-weight: 900;
    white-space: nowrap;
}

.public-calculation-mode input {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
}

.public-calculation-mode label:has(input:checked) {
    background: var(--public-accent, #006b75);
    color: #ffffff;
}

.public-cyclic-field {
    display: grid;
    gap: 12px;
    min-width: 0;
    margin: 0;
    padding: 16px;
    border: 1px solid rgba(20, 34, 41, 0.14);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.52);
}

.public-cyclic-field[hidden] {
    display: none !important;
}

.public-cyclic-field legend {
    padding: 0 6px;
    font-weight: 900;
}

.public-cyclic-field p {
    margin: 0;
    color: var(--public-muted, #52666d);
    font-weight: 800;
}

.public-cyclic-grid {
    display: grid;
    grid-template-columns: minmax(72px, 0.45fr) repeat(7, minmax(124px, 1fr));
    gap: 8px;
    min-width: 0;
    overflow-x: auto;
    padding-bottom: 4px;
}

.public-cyclic-day {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 8px;
    border: 1px solid rgba(0, 107, 117, 0.22);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.76);
    color: var(--public-ink, #142229);
    font-weight: 900;
    gap: 6px;
}

.public-cyclic-day input {
    width: 16px;
    min-width: 16px;
    height: 16px;
    margin: 0;
}

.public-cyclic-row-title {
    align-self: center;
    color: inherit;
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.public-time24 {
    display: grid;
    grid-template-columns: minmax(54px, 1fr) auto minmax(54px, 1fr);
    align-items: center;
    min-width: 136px;
    min-height: 48px;
    border: 1px solid rgba(20, 34, 41, 0.18);
    border-radius: 8px;
    background: #ffffff;
    color: #142229;
    font-variant-numeric: tabular-nums;
    font-weight: 900;
    overflow: hidden;
    transition: border-color 160ms ease, box-shadow 160ms ease, opacity 160ms ease;
}

.public-time24[hidden] {
    display: none !important;
}

.public-time24:focus-within {
    border-color: var(--public-accent, #007f8f);
    box-shadow: 0 0 0 3px rgba(0, 127, 143, 0.16);
}

.public-time24[aria-disabled="true"] {
    opacity: 0.45;
}

.public-time24 > select {
    width: 100%;
    min-width: 0;
    min-height: 46px;
    margin: 0;
    padding: 0 4px !important;
    border: 0 !important;
    border-radius: 0 !important;
    outline: 0;
    background: transparent !important;
    color: inherit !important;
    box-shadow: none !important;
    font: inherit;
    font-size: 15px;
    text-align: center;
    cursor: pointer;
}

.public-time24 > select:disabled {
    cursor: not-allowed;
}

.public-time24-separator {
    color: currentColor;
    font-size: 16px;
    line-height: 1;
}

.public-time24.is-compact {
    min-width: 124px;
    min-height: 42px;
}

.public-time24.is-compact > select {
    min-height: 40px;
    font-size: 13px;
}

.public-time24-badge {
    display: inline-flex;
    align-items: center;
    min-height: 20px;
    padding: 2px 7px;
    border: 1px solid rgba(0, 127, 143, 0.28);
    border-radius: 999px;
    background: rgba(0, 127, 143, 0.1);
    color: var(--public-accent, #006b75);
    font-size: 10px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: 0.04em;
    text-transform: none;
}

.public-calculation-discounts {
    display: grid;
    gap: 10px;
}

.public-calculation-discounts > span {
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.public-calculation-discounts > div {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.public-discount-card {
    display: inline-flex;
    align-items: center;
    min-height: 46px;
    padding: 8px 10px;
    border: 1px solid rgba(0, 107, 117, 0.24);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.72);
    color: inherit;
    font-weight: 900;
    gap: 8px;
}

.public-discount-card input {
    width: 16px;
    height: 16px;
    margin: 0;
}

.public-discount-card strong {
    color: var(--public-accent, #006b75);
}

.public-discount-info-trigger {
    display: inline-grid;
    place-items: center;
    width: 24px;
    min-width: 24px;
    height: 24px;
    min-height: 24px;
    padding: 0;
    border: 1px solid currentColor;
    border-radius: 50%;
    background: transparent;
    color: inherit;
    font-size: 14px;
    font-weight: 900;
    cursor: pointer;
}

.public-discount-info,
.public-calculation-availability-warning,
.public-availability-warning {
    margin: 0;
    color: #e34858;
    font-weight: 900;
    line-height: 1.4;
}

.public-availability-warning span {
    margin-right: 4px;
    color: #e34858;
}

.public-config-needed {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    min-height: 180px;
    padding: clamp(22px, 4vw, 38px);
    border: 1px solid rgba(0, 107, 117, 0.22);
    border-radius: 8px;
    background: var(--public-surface, #ffffff);
    color: var(--public-ink, #142229);
}

.public-config-needed > div {
    display: grid;
    gap: 8px;
}

.public-config-needed span {
    color: var(--public-accent, #006b75);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.public-config-needed strong {
    font-size: clamp(24px, 3vw, 38px);
    line-height: 1.08;
}

.public-config-needed p {
    margin: 0;
    color: var(--public-muted, #52666d);
    font-weight: 800;
}

.public-config-needed a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0 18px;
    border-radius: 8px;
    background: var(--public-accent, #006b75);
    color: #ffffff;
    font-weight: 900;
    text-decoration: none;
}

.public-design :is(.visual-stats, .urban-metrics, .map-stats, .direct-stats) {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.public-design :is(.visual-stats, .urban-metrics, .map-stats, .direct-stats) article {
    display: grid;
    gap: 5px;
    min-width: 0;
    padding: 16px;
    border-radius: 8px;
}

.public-design :is(.visual-stats, .urban-metrics, .map-stats, .direct-stats) span {
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.public-design :is(.visual-stats, .urban-metrics, .map-stats, .direct-stats) strong {
    font-size: 31px;
    line-height: 1;
}

.public-design :is(.visual-rate-grid, .urban-rate-grid, .map-rate-grid, .direct-rate-list, .visual-model-grid, .urban-model-grid, .map-model-list, .direct-model-list) {
    display: grid;
    gap: 16px;
}

.public-design :is(.visual-rate-grid, .urban-rate-grid, .map-rate-grid, .direct-rate-list) {
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
}

.public-design :is(.visual-model-grid, .urban-model-grid, .map-model-list, .direct-model-list) {
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
}

.public-design :is(.visual-rate-grid, .urban-rate-grid, .map-rate-grid, .direct-rate-list, .visual-model-grid, .urban-model-grid, .map-model-list, .direct-model-list) article {
    display: grid;
    gap: 10px;
    min-height: 150px;
    padding: 22px;
    border-radius: 8px;
}

.public-design :is(.visual-rate-grid, .urban-rate-grid, .map-rate-grid, .direct-rate-list, .visual-model-grid, .urban-model-grid, .map-model-list, .direct-model-list) article span {
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.public-design :is(.visual-rate-grid, .urban-rate-grid, .map-rate-grid, .direct-rate-list) article strong {
    font-size: clamp(44px, 4.6vw, 60px);
    line-height: 1;
}

.public-design :is(.visual-model-grid, .urban-model-grid, .map-model-list, .direct-model-list) article strong {
    font-size: 22px;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

.public-design :is(.visual-chip-wall, .urban-chip-rail, .map-chip-grid, .direct-chip-list) {
    display: grid;
    gap: 12px;
}

.public-design :is(.visual-chip-wall, .urban-chip-rail, .map-chip-grid) {
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
}

.public-design :is(.visual-chip-wall, .urban-chip-rail, .map-chip-grid, .direct-chip-list) span {
    display: grid;
    place-items: center;
    min-height: 72px;
    padding: 14px;
    border-radius: 8px;
    font-size: 18px;
    font-weight: 900;
    text-align: center;
}

.public-design :is(.visual-map, .urban-map, .map-hero-canvas, .direct-map, .public-design-map-fallback) {
    min-height: 340px;
    border-radius: 8px;
    overflow: hidden;
}

.public-design-map-fallback {
    display: grid;
    place-items: center;
    gap: 8px;
    padding: 26px;
    text-align: center;
}

.public-design :is(.visual-result, .urban-result, .map-result, .direct-result) {
    display: grid;
    gap: 16px;
    padding: 24px;
    border-radius: 8px;
}

.public-design :is(.visual-result, .urban-result, .map-result, .direct-result) > div:first-child {
    display: grid;
    gap: 5px;
}

.public-design :is(.visual-result, .urban-result, .map-result, .direct-result) > div:first-child span {
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.public-design :is(.visual-result, .urban-result, .map-result, .direct-result) > div:first-child strong {
    font-size: 46px;
    line-height: 1;
}

.public-contact-block {
    padding: clamp(62px, 8vw, 112px) max(18px, calc((100vw - 1680px) / 2));
}

.public-contact-form {
    display: grid;
    gap: 28px;
}

.public-contact-head {
    display: grid;
    gap: 8px;
}

.public-contact-head span {
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
}

.public-contact-head h2 {
    max-width: 820px;
    font-size: 52px;
    line-height: 1.06;
    font-weight: 750;
}

.public-contact-layout {
    display: grid;
    grid-template-columns: minmax(280px, 0.48fr) minmax(360px, 1fr);
    gap: 22px;
    align-items: stretch;
}

.public-contact-fields,
.public-contact-message {
    display: grid;
    gap: 12px;
}

.public-contact-fields {
    grid-template-rows: repeat(3, minmax(0, 1fr));
}

.public-contact-phone-field {
    position: relative;
    display: grid;
    gap: 8px;
    align-content: start;
}

.public-phone-row {
    display: grid;
    grid-template-columns: minmax(116px, 0.24fr) minmax(0, 1fr);
    gap: 10px;
}

.public-contact-form .country-picker {
    position: relative;
    min-width: 0;
}

.public-contact-form .country-picker-button {
    width: 100%;
    min-height: 52px;
    border: 1px solid rgba(20, 34, 41, 0.18);
    border-radius: 8px;
    background: #ffffff;
    color: #142229;
    font: inherit;
    font-size: 17px;
    font-weight: 750;
}

.public-contact-form .country-picker-menu {
    z-index: 12;
    max-height: 260px;
}

.public-contact-form .country-picker-option {
    color: #142229;
}

.public-contact-message {
    grid-template-rows: auto 1fr;
}

.public-contact-form label {
    display: grid;
    gap: 8px;
    color: inherit;
    font-size: 15px;
    font-weight: 800;
    line-height: 1.2;
}

.public-contact-phone-field {
    color: inherit;
    font-size: 15px;
    font-weight: 800;
    line-height: 1.2;
}

.public-contact-form .field-label-line {
    color: currentColor;
}

.public-contact-form .required-mark {
    color: #ff6976;
}

.public-contact-form input,
.public-contact-form textarea {
    width: 100%;
    border: 1px solid rgba(20, 34, 41, 0.18);
    border-radius: 8px;
    background: #ffffff;
    color: #142229;
    font: inherit;
    font-size: 17px;
    font-weight: 650;
    line-height: 1.35;
}

.public-contact-form input {
    min-height: 52px;
    padding: 0 16px;
}

.public-contact-form textarea {
    min-height: 260px;
    padding: 15px 16px;
    resize: vertical;
}

.public-contact-submit {
    justify-self: start;
    min-height: 52px;
    min-width: 180px;
    border-radius: 8px;
    font-size: 18px;
    font-weight: 900;
}

.public-contact-notice {
    max-width: 760px;
    padding: 12px 14px;
    border-radius: 8px;
    font-weight: 800;
}

.public-contact-notice.is-ok {
    background: rgba(20, 107, 79, 0.12);
    color: #146b4f;
}

.public-contact-notice.is-error {
    background: rgba(159, 51, 65, 0.14);
    color: #9f3341;
}

.visual-contact {
    background: #102329;
    color: #ffffff;
}

.visual-contact .public-contact-submit {
    background: #ffffff;
    color: #006b75;
}

.urban-contact {
    background:
        radial-gradient(circle at 92% 10%, rgba(242, 195, 95, 0.16), transparent 34%),
        #2a120c;
    color: #fff0df;
}

.urban-contact .public-contact-head h2 {
    color: #fff0df;
}

.urban-contact .public-contact-form input,
.urban-contact .public-contact-form textarea,
.urban-contact .public-contact-form .country-picker-button {
    border-color: rgba(255, 176, 106, 0.32);
    background: #1b0f0b;
    color: #fff0df;
}

.urban-contact .public-contact-form input::placeholder,
.urban-contact .public-contact-form textarea::placeholder {
    color: rgba(255, 240, 223, 0.58);
}

.urban-contact .public-contact-submit {
    background: #f2c35f;
    color: #1b0f0b;
}

.map-contact {
    background:
        radial-gradient(circle at 94% 12%, rgba(204, 249, 255, 0.28), transparent 32%),
        linear-gradient(135deg, #e9fbff 0%, #bdeef8 100%);
    color: #083746;
}

.map-contact .public-contact-submit {
    background: #0b7892;
    color: #f6fdff;
}

.direct-contact {
    background: #231a1f;
    color: #fff7f2;
}

.direct-contact .public-contact-submit {
    background: #ffffff;
    color: #9f3341;
}

.public-design :is(.visual-footer, .urban-footer, .map-footer, .direct-footer) {
    display: grid;
    gap: 20px;
    padding: 28px max(28px, calc((100vw - 1680px) / 2)) 16px;
    background: #004f56;
    color: #ffffff;
}

/* Design 1: Impacto visual */
.public-design-visual {
    background: #f7fbfb;
}

.visual-hero {
    position: relative;
    isolation: isolate;
    min-height: 100vh;
    min-height: 100svh;
    padding: 24px max(22px, calc((100vw - 1760px) / 2)) 32px;
    overflow: hidden;
    color: #ffffff;
}

.visual-media {
    position: absolute;
    inset: 0;
    z-index: -2;
}

.visual-media::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(6, 45, 53, 0.86), rgba(6, 45, 53, 0.48) 55%, rgba(6, 45, 53, 0.16));
    content: "";
}

.visual-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.visual-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    width: min(100% - 44px, 1760px);
    margin: 0 auto;
}

.visual-nav > div {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    padding: 8px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.13);
}

.visual-nav a {
    color: #ffffff;
    font-weight: 900;
}

.visual-nav > div > a {
    padding: 11px 12px;
    border-radius: 8px;
}

.visual-nav-cta,
.visual-primary {
    border: 1px solid rgba(141, 226, 235, 0.52);
    background: linear-gradient(135deg, #8de2eb 0%, #2fb8c5 58%, #006b75 100%);
    color: #ffffff;
    box-shadow: 0 18px 38px rgba(0, 107, 117, 0.28);
}

.visual-secondary {
    border: 1px solid rgba(255, 220, 142, 0.58);
    background: rgba(255, 232, 171, 0.16);
    color: #fff3cf;
}

.visual-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: center;
    gap: clamp(28px, 5vw, 82px);
    width: min(100% - 44px, 1760px);
    min-height: calc(100svh - 110px);
    margin: 0 auto;
    padding: 42px 0;
}

.visual-copy {
    display: grid;
    gap: 20px;
    max-width: 980px;
}

.visual-copy h1 {
    max-width: 1040px;
    color: #ffffff;
    font-size: clamp(56px, 8.5vw, 120px);
    line-height: 0.9;
    overflow-wrap: anywhere;
}

.visual-copy p {
    max-width: 760px;
    color: rgba(255, 255, 255, 0.82);
    font-size: 22px;
    line-height: 1.45;
    white-space: pre-line;
}

.visual-summary {
    display: grid;
    gap: 14px;
    padding: 28px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.94);
    color: #142229;
    box-shadow: 0 28px 70px rgba(0, 0, 0, 0.28);
}

.visual-summary > strong {
    color: #006b75;
    font-size: 96px;
    line-height: 0.9;
}

.visual-summary p {
    display: grid;
    gap: 4px;
    color: #52656d;
    font-weight: 800;
}

.visual-summary b {
    color: #142229;
    font-size: 12px;
    text-transform: uppercase;
}

.visual-stats {
    width: min(100% - 44px, 1760px);
    margin: 0 auto;
}

.visual-stats article {
    border: 1px solid rgba(255, 255, 255, 0.18);
    background: rgba(255, 255, 255, 0.14);
}

.public-design-visual :is(.visual-intro, .visual-vehicles, .visual-models, .visual-rates, .visual-location) {
    display: grid;
    gap: 24px;
    width: min(100% - 64px, 1680px);
    margin: 0 auto;
    padding: 58px 0;
}

.public-design-visual .visual-availability {
    padding-top: clamp(92px, 8vw, 132px);
}

.public-design-visual .visual-calculation {
    padding-top: clamp(112px, 8vw, 150px);
}

.public-design-visual :is(.visual-intro, .visual-vehicles, .visual-models, .visual-rates, .visual-location) h2 {
    max-width: 920px;
    color: #142229;
    font-size: clamp(38px, 5vw, 68px);
    line-height: 1;
}

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

.visual-feature-grid article,
.visual-feature-grid a,
.visual-rate-grid article,
.visual-model-grid article {
    border: 1px solid #d4e5e7;
    background: #ffffff;
    box-shadow: 0 18px 44px rgba(20, 34, 41, 0.08);
}

.visual-feature-grid article,
.visual-feature-grid a {
    display: grid;
    gap: 12px;
    padding: 24px;
    border-radius: 8px;
    color: inherit;
}

.public-availability-cards {
    align-items: stretch;
}

.public-availability-card {
    position: relative;
    min-height: 190px;
    overflow: hidden;
    box-shadow: 0 20px 52px rgba(20, 34, 41, 0.12);
    transition: transform 0.16s ease, box-shadow 0.16s ease;
}

.public-availability-card > * {
    position: relative;
    z-index: 1;
}

.public-availability-card::after {
    position: absolute;
    right: -44px;
    bottom: -56px;
    width: 160px;
    height: 160px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.26);
    content: "";
    pointer-events: none;
}

.public-availability-card:hover,
.public-availability-card:focus-visible {
    transform: translateY(-2px);
    box-shadow: 0 22px 56px rgba(20, 34, 41, 0.14);
}

.public-availability-card h3 {
    color: #142229;
    font-size: clamp(24px, 3vw, 34px);
    line-height: 1.05;
}

.public-availability-card-spaces span {
    color: #102329;
    font-size: 14px;
    font-weight: 900;
    text-transform: uppercase;
}

.public-availability-card-spaces strong {
    color: #102329;
    font-size: clamp(58px, 8vw, 104px);
    line-height: 0.9;
}

.public-availability-card p,
.public-vehicle-category-grid p,
.public-category-note {
    color: #40565f;
    font-size: 16px;
    line-height: 1.45;
}

.visual-feature-grid .public-availability-card-spaces {
    background:
        radial-gradient(circle at 88% 18%, rgba(255, 255, 255, 0.42), transparent 28%),
        linear-gradient(135deg, #bff8fb 0%, #66d3dd 52%, #006b75 100%);
    border-color: #75d6df;
}

.visual-feature-grid .public-availability-card-address {
    background:
        radial-gradient(circle at 88% 18%, rgba(255, 255, 255, 0.48), transparent 28%),
        linear-gradient(135deg, #fff5cf 0%, #f4c654 54%, #c86d1d 100%);
    border-color: #f5c95d;
}

.visual-feature-grid .public-availability-card-contact {
    background:
        radial-gradient(circle at 88% 18%, rgba(255, 255, 255, 0.46), transparent 28%),
        linear-gradient(135deg, #ffe2e8 0%, #f3889b 54%, #b83252 100%);
    border-color: #f59aaa;
}

.public-availability-card-spaces h3,
.public-availability-card-address h3,
.public-availability-card-contact h3,
.public-availability-card-spaces p,
.public-availability-card-address p,
.public-availability-card-contact p {
    color: #102329;
}

.public-design:not([data-public-theme="dark"]) :is(.public-availability-card h3, .public-category-card-head strong) {
    color: #102329 !important;
}

.public-design:not([data-public-theme="dark"]) :is(.public-availability-card p, .public-vehicle-category-grid p, .public-category-note) {
    color: #40565f !important;
}

.public-category-price-panel {
    display: grid;
    gap: 14px;
}

.public-period-selector {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.public-period-selector button {
    min-height: 38px;
    padding: 0 14px;
    border: 1px solid #006b75;
    border-radius: 8px;
    background: #006b75;
    color: #ffffff;
    font-weight: 900;
    cursor: pointer;
    box-shadow: none;
}

.public-period-selector button:is(.is-active, [aria-pressed="true"]) {
    border-color: #d8a526;
    background: #f2c25f;
    color: #102329;
    box-shadow: none;
}

.public-period-selector button:focus-visible {
    outline: none;
    box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.34);
}

.public-period-selector button:is(.is-active, [aria-pressed="true"]):focus-visible {
    box-shadow: none;
}

.public-vehicle-category-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 14px;
}

.public-vehicle-category-grid article {
    display: grid;
    gap: 12px;
    padding: 20px;
    border: 1px solid #cfe5e7;
    border-radius: 8px;
    background: linear-gradient(145deg, #ffffff, #edf7f7);
    box-shadow: 0 14px 34px rgba(20, 34, 41, 0.07);
}

.public-vehicle-category-grid article:nth-child(3n + 2) {
    background: linear-gradient(145deg, #fffaf0, #ffe6ad);
}

.public-vehicle-category-grid article:nth-child(3n) {
    background: linear-gradient(145deg, #f5fff8, #bdeccf);
}

.public-vehicle-category-grid article:nth-child(3n + 1) {
    border-color: #80d8df;
    background:
        radial-gradient(circle at 96% 8%, rgba(255, 255, 255, 0.72), transparent 32%),
        linear-gradient(145deg, #f4ffff 0%, #d7f7f8 52%, #bceef1 100%);
}

.public-vehicle-category-grid article:nth-child(3n + 2) {
    border-color: #f1c86b;
    background:
        radial-gradient(circle at 96% 8%, rgba(255, 255, 255, 0.62), transparent 32%),
        linear-gradient(145deg, #fff9e8 0%, #ffe9ad 52%, #f5cf70 100%);
}

.public-vehicle-category-grid article:nth-child(3n) {
    border-color: #ee9cad;
    background:
        radial-gradient(circle at 96% 8%, rgba(255, 255, 255, 0.62), transparent 32%),
        linear-gradient(145deg, #fff1f5 0%, #ffd2db 52%, #f3a0b2 100%);
}

.public-category-card-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: start;
}

.public-category-card-head strong {
    color: #142229;
    font-size: 24px;
    line-height: 1.05;
}

.public-category-price {
    color: #006b75;
    font-size: clamp(28px, 3.2vw, 42px);
    font-weight: 900;
    line-height: 1;
    white-space: nowrap;
}

.public-category-price b {
    font: inherit;
}

.public-design :is(.visual-rate-grid, .urban-rate-grid, .map-rate-grid, .direct-rate-list) strong b {
    font: inherit;
}

.public-category-note {
    max-width: 900px;
    padding: 18px 20px;
    border: 1px solid #cfe5e7;
    border-radius: 8px;
    background: #ffffff;
}

.visual-chip-wall span {
    border: 1px solid #d4e5e7;
    background: #ffffff;
    color: #006b75;
}

.visual-calculator,
.visual-result {
    border: 1px solid #d4e5e7;
    background: #eef7f7;
}

.visual-location {
    grid-template-columns: minmax(280px, 0.55fr) minmax(0, 1.45fr);
    align-items: center;
    padding: clamp(96px, 7vw, 128px) 32px 24px;
    border-radius: 0;
    background: transparent;
}

.public-design-visual .visual-location {
    padding: clamp(96px, 7vw, 128px) 32px 24px;
}

.visual-location > div {
    display: grid;
    align-content: center;
    gap: 12px;
    padding-top: clamp(22px, 4vw, 68px);
}

.visual-map-pin {
    position: relative;
    display: inline-block;
    justify-self: center;
    width: 72px;
    height: 72px;
    margin-bottom: 8px;
    border-radius: 50% 50% 50% 0;
    background: #e53935;
    box-shadow: 0 12px 24px rgba(148, 25, 25, 0.22);
    transform: rotate(-45deg);
}

.visual-map-pin::after {
    position: absolute;
    inset: 19px;
    border-radius: 999px;
    background: #b91c1c;
    content: "";
}

.visual-map,
.visual-location .public-design-map-fallback {
    border: 1px solid #d4e5e7;
    background: transparent;
}

.public-template-clasica.public-design-visual {
    background: #eef8f4;
    color: #0f2d33;
}

.public-template-clasica .visual-media::after {
    background:
        linear-gradient(90deg, rgba(5, 42, 55, 0.9), rgba(14, 92, 104, 0.58) 58%, rgba(42, 132, 100, 0.22)),
        linear-gradient(180deg, rgba(139, 212, 125, 0.08), rgba(110, 215, 232, 0.12));
}

.public-template-clasica .visual-primary,
.public-template-clasica .visual-nav-cta,
.public-template-clasica .public-banner-primary,
.public-template-clasica .public-contact-submit {
    border-color: rgba(119, 219, 213, 0.54);
    background: linear-gradient(135deg, #6ed7e8 0%, #2f9b78 58%, #0c6f8b 100%);
    color: #ffffff;
    box-shadow: 0 18px 38px rgba(12, 111, 139, 0.22);
}

.public-template-clasica .visual-secondary,
.public-template-clasica .public-banner-secondary {
    border-color: rgba(196, 236, 176, 0.62);
    background: rgba(196, 236, 176, 0.16);
    color: #eaffdf;
}

.public-template-clasica :is(.visual-intro, .visual-vehicles, .visual-models, .visual-rates, .visual-location, .visual-gallery, .visual-blog, .visual-comments) {
    background: #eef8f4;
    color: #0f2d33;
}

.public-template-clasica :is(.visual-intro h2, .visual-vehicles h2, .visual-models h2, .visual-rates h2, .visual-location h2, .public-section-head h2) {
    color: #0b3f4a;
}

.public-template-clasica :is(.visual-feature-grid article, .visual-feature-grid a, .visual-rate-grid article, .visual-model-grid article, .public-blog-grid article, .public-blog-card, .public-blog-entry, .public-reference-card) {
    border-color: #b9d9d6;
    background: #ffffff;
    color: #0f2d33;
    box-shadow: 0 18px 44px rgba(15, 77, 88, 0.09);
}

.public-template-clasica .visual-comments .public-reference-card::before {
    background: #2f9b78;
}

.public-template-clasica .visual-comments .public-reference-control {
    border-color: #b9d9d6;
    background: #ffffff;
    color: #0c6f8b;
}

.public-template-clasica .visual-feature-grid .public-availability-card-spaces {
    border-color: #7ccdde;
    background:
        radial-gradient(circle at 88% 18%, rgba(255, 255, 255, 0.36), transparent 28%),
        linear-gradient(135deg, #dffaff 0%, #6ed7e8 54%, #0c6f8b 100%);
}

.public-template-clasica .visual-feature-grid .public-availability-card-address {
    border-color: #94d68a;
    background:
        radial-gradient(circle at 88% 18%, rgba(255, 255, 255, 0.42), transparent 28%),
        linear-gradient(135deg, #f2ffe9 0%, #8bd47d 54%, #2f8f6a 100%);
}

.public-template-clasica .visual-feature-grid .public-availability-card-contact {
    border-color: #80c8d4;
    background:
        radial-gradient(circle at 88% 18%, rgba(255, 255, 255, 0.42), transparent 28%),
        linear-gradient(135deg, #eefcff 0%, #81d5c8 52%, #1f7c70 100%);
}

.public-template-clasica :is(.public-availability-card h3, .public-availability-card p, .public-availability-card-spaces span, .public-availability-card-spaces strong) {
    color: #0b3038;
}

.public-template-clasica .public-period-selector button {
    border-color: #1f7c70;
    background: #1f7c70;
    color: #ffffff;
}

.public-template-clasica .public-period-selector button:is(.is-active, [aria-pressed="true"]) {
    border-color: #8bd47d;
    background: #8bd47d;
    color: #0b3038;
}

.public-template-clasica .public-category-price {
    color: #0c6f8b;
}

.public-template-clasica .public-vehicle-category-grid article:nth-child(3n + 1) {
    border-color: #93d5df;
    background:
        radial-gradient(circle at 96% 8%, rgba(255, 255, 255, 0.68), transparent 32%),
        linear-gradient(145deg, #f2fdff 0%, #d8f7fb 52%, #b8ebf2 100%);
}

.public-template-clasica .public-vehicle-category-grid article:nth-child(3n + 2) {
    border-color: #a9d9a3;
    background:
        radial-gradient(circle at 96% 8%, rgba(255, 255, 255, 0.62), transparent 32%),
        linear-gradient(145deg, #f6fff0 0%, #dff5d7 52%, #bfe7b8 100%);
}

.public-template-clasica .public-vehicle-category-grid article:nth-child(3n) {
    border-color: #9ccfc6;
    background:
        radial-gradient(circle at 96% 8%, rgba(255, 255, 255, 0.62), transparent 32%),
        linear-gradient(145deg, #effffc 0%, #ccefe8 52%, #a8ddd5 100%);
}

.public-template-clasica :is(.visual-chip-wall span, .visual-calculator, .visual-result, .public-category-note) {
    border-color: #b9d9d6;
    background: #f8fffd;
    color: #0f6f85;
}

.public-template-clasica .visual-banner {
    background:
        radial-gradient(circle at 100% 50%, rgba(139, 212, 125, 0.2), transparent 28%),
        linear-gradient(135deg, #0b4b61 0%, #1f6f5b 100%);
    color: #ffffff;
}

.public-template-clasica .visual-contact {
    background:
        radial-gradient(circle at 92% 8%, rgba(139, 212, 125, 0.18), transparent 32%),
        linear-gradient(135deg, #083a49 0%, #174f3e 100%);
    color: #ffffff;
}

.public-template-clasica .visual-contact .public-contact-head h2 {
    color: #ffffff;
}

.public-template-clasica .visual-footer {
    background: #083a49;
    color: #e9fbff;
}

.public-template-compacta.public-design-visual {
    background: #fff3f6;
    color: #351722;
}

.public-template-compacta .visual-media::after {
    background:
        linear-gradient(90deg, rgba(58, 20, 31, 0.9), rgba(151, 59, 78, 0.58) 58%, rgba(245, 159, 169, 0.2)),
        linear-gradient(180deg, rgba(255, 214, 205, 0.1), rgba(255, 182, 193, 0.18));
}

.public-template-compacta .visual-primary,
.public-template-compacta .visual-nav-cta,
.public-template-compacta .public-banner-primary,
.public-template-compacta .public-contact-submit {
    border-color: rgba(245, 159, 169, 0.58);
    background: linear-gradient(135deg, #ffd6cd 0%, #f59faa 48%, #b83252 100%);
    color: #351722;
    box-shadow: 0 18px 38px rgba(184, 50, 82, 0.22);
}

.public-template-compacta .visual-secondary,
.public-template-compacta .public-banner-secondary {
    border-color: rgba(255, 221, 187, 0.68);
    background: rgba(255, 221, 187, 0.16);
    color: #fff1e6;
}

.public-template-compacta :is(.visual-intro, .visual-vehicles, .visual-models, .visual-rates, .visual-location, .visual-gallery, .visual-blog, .visual-comments) {
    background: #fff3f6;
    color: #351722;
}

.public-template-compacta .visual-availability {
    background:
        radial-gradient(circle at 96% 0%, rgba(255, 214, 205, 0.46), transparent 30%),
        #fff3f6;
}

.public-template-compacta .visual-calculation {
    background:
        radial-gradient(circle at 8% 8%, rgba(245, 159, 169, 0.26), transparent 34%),
        #fff7ee;
}

.public-template-compacta :is(.visual-intro h2, .visual-vehicles h2, .visual-models h2, .visual-rates h2, .visual-location h2, .public-section-head h2) {
    color: #5b1e32;
}

.public-template-compacta :is(.visual-feature-grid article, .visual-feature-grid a, .visual-rate-grid article, .visual-model-grid article, .public-blog-grid article, .public-blog-card, .public-blog-entry, .public-reference-card) {
    border-color: #f0b5c2;
    background:
        radial-gradient(circle at 100% 0%, rgba(255, 214, 205, 0.26), transparent 34%),
        #ffffff;
    color: #351722;
    box-shadow: 0 18px 44px rgba(90, 28, 46, 0.09);
}

.public-template-compacta .visual-comments .public-reference-card::before {
    background: #d95d7a;
}

.public-template-compacta .visual-comments .public-reference-control {
    border-color: #f0b5c2;
    background: #fff8f9;
    color: #b83252;
}

.public-template-compacta .visual-feature-grid .public-availability-card-spaces {
    border-color: #f2a2b4;
    background:
        radial-gradient(circle at 88% 18%, rgba(255, 255, 255, 0.42), transparent 28%),
        linear-gradient(135deg, #fff0f3 0%, #f59faa 54%, #b83252 100%);
}

.public-template-compacta .visual-feature-grid .public-availability-card-address {
    border-color: #eab16f;
    background:
        radial-gradient(circle at 88% 18%, rgba(255, 255, 255, 0.46), transparent 28%),
        linear-gradient(135deg, #fff4df 0%, #f0b56c 54%, #a85b27 100%);
}

.public-template-compacta .visual-feature-grid .public-availability-card-contact {
    border-color: #c592d6;
    background:
        radial-gradient(circle at 88% 18%, rgba(255, 255, 255, 0.44), transparent 28%),
        linear-gradient(135deg, #fbecff 0%, #d59adb 52%, #7b3a86 100%);
}

.public-template-compacta :is(.public-availability-card h3, .public-availability-card p, .public-availability-card-spaces span, .public-availability-card-spaces strong) {
    color: #351722 !important;
}

.public-template-compacta .public-period-selector button {
    border-color: #b83252;
    background: #b83252;
    color: #ffffff;
}

.public-template-compacta .public-period-selector button:is(.is-active, [aria-pressed="true"]) {
    border-color: #f0b56c;
    background: #f0b56c;
    color: #351722;
}

.public-template-compacta .public-category-price {
    color: #b83252;
}

.public-template-compacta .public-vehicle-category-grid article:nth-child(3n + 1) {
    border-color: #f1aaba;
    background:
        radial-gradient(circle at 96% 8%, rgba(255, 255, 255, 0.68), transparent 32%),
        linear-gradient(145deg, #fff5f7 0%, #ffdbe3 52%, #f5b6c5 100%);
}

.public-template-compacta .public-vehicle-category-grid article:nth-child(3n + 2) {
    border-color: #e8b578;
    background:
        radial-gradient(circle at 96% 8%, rgba(255, 255, 255, 0.62), transparent 32%),
        linear-gradient(145deg, #fff8ed 0%, #ffe0b3 52%, #efc07f 100%);
}

.public-template-compacta .public-vehicle-category-grid article:nth-child(3n) {
    border-color: #c69bd6;
    background:
        radial-gradient(circle at 96% 8%, rgba(255, 255, 255, 0.62), transparent 32%),
        linear-gradient(145deg, #fcf0ff 0%, #ebcef2 52%, #d8abd8 100%);
}

.public-template-compacta :is(.visual-chip-wall span, .visual-calculator, .visual-result, .public-category-note) {
    border-color: #f0b5c2;
    background: #fff8f9;
    color: #b83252;
}

.public-template-compacta .visual-location {
    background:
        radial-gradient(circle at 8% 14%, rgba(245, 159, 169, 0.2), transparent 30%),
        linear-gradient(135deg, #fff7ee 0%, #fff3f6 100%);
}

.public-template-compacta :is(.visual-map, .visual-location .public-design-map-fallback) {
    border-color: #f0b5c2;
    background: #fff8f9;
}

.public-template-compacta .visual-map-pin {
    background: #d95d7a;
    box-shadow: 0 16px 34px rgba(184, 50, 82, 0.28);
}

.public-template-compacta .visual-map-pin::after {
    background: #8e243d;
}

.public-template-compacta .visual-banner {
    background:
        radial-gradient(circle at 100% 50%, rgba(255, 214, 205, 0.24), transparent 28%),
        linear-gradient(135deg, #8e243d 0%, #5b1e32 100%);
    color: #fff8f9;
}

.public-template-compacta .visual-contact {
    background:
        radial-gradient(circle at 92% 8%, rgba(255, 214, 205, 0.2), transparent 32%),
        linear-gradient(135deg, #6b2238 0%, #351722 100%);
    color: #fff8f9;
}

.public-template-compacta .visual-contact .public-contact-head h2 {
    color: #fff8f9;
}

.public-template-compacta .visual-footer {
    background: #351722;
    color: #fff1f5;
}

.public-template-nocturna.public-design-visual {
    background: #071416;
}

.public-template-nocturna .visual-media::after {
    background:
        linear-gradient(90deg, rgba(7, 20, 22, 0.94), rgba(7, 20, 22, 0.68) 58%, rgba(7, 20, 22, 0.28)),
        linear-gradient(180deg, rgba(141, 226, 235, 0.16), rgba(200, 242, 97, 0.08));
}

.public-template-nocturna .visual-copy > span,
.public-template-nocturna .public-section-head span,
.public-template-nocturna .visual-vehicles > div > span,
.public-template-nocturna .visual-models > div > span,
.public-template-nocturna .visual-rates > div > span,
.public-template-nocturna .visual-location > div > span {
    color: #c8f261;
}

.public-template-nocturna .visual-primary,
.public-template-nocturna .visual-nav-cta,
.public-template-nocturna .public-banner-primary,
.public-template-nocturna .public-contact-submit {
    background: #8de2eb;
    color: #071416;
}

.public-template-nocturna :is(.visual-intro, .visual-vehicles, .visual-models, .visual-rates, .visual-location, .visual-gallery, .visual-blog) {
    background: #0d2024;
    color: #f4f8f9;
}

.public-template-nocturna :is(.visual-intro h2, .visual-vehicles h2, .visual-models h2, .visual-rates h2, .visual-location h2, .public-section-head h2) {
    color: #ffffff;
}

.public-template-nocturna :is(.visual-feature-grid article, .visual-rate-grid article, .visual-model-grid article, .public-blog-grid article, .public-blog-card, .public-blog-entry) {
    border-color: rgba(141, 226, 235, 0.28);
    background: #122b31;
    color: #f4f8f9;
    box-shadow: none;
}

.public-template-nocturna :is(.visual-chip-wall span, .visual-calculator, .visual-result) {
    border-color: rgba(141, 226, 235, 0.28);
    background: #10262b;
    color: #8de2eb;
}

.public-template-nocturna .visual-contact {
    background: #071416;
}

.public-template-coral.public-design-visual {
    background: #fff7f4;
}

.public-template-coral .visual-media::after {
    background:
        linear-gradient(90deg, rgba(16, 75, 90, 0.9), rgba(16, 75, 90, 0.56) 56%, rgba(242, 109, 91, 0.22)),
        linear-gradient(180deg, rgba(255, 247, 244, 0.1), rgba(242, 109, 91, 0.2));
}

.public-template-coral .visual-primary,
.public-template-coral .visual-nav-cta,
.public-template-coral .public-banner-primary,
.public-template-coral .public-contact-submit {
    background: #f26d5b;
    color: #ffffff;
}

.public-template-coral .visual-secondary,
.public-template-coral .public-banner-secondary {
    border-color: rgba(255, 255, 255, 0.44);
}

.public-template-coral :is(.visual-intro, .visual-vehicles, .visual-models, .visual-rates, .visual-location, .visual-gallery, .visual-blog) {
    background: #fff7f4;
    color: #104b5a;
}

.public-template-coral :is(.visual-intro h2, .visual-vehicles h2, .visual-models h2, .visual-rates h2, .visual-location h2, .public-section-head h2) {
    color: #104b5a;
}

.public-template-coral :is(.visual-feature-grid article, .visual-rate-grid article, .visual-model-grid article, .public-blog-grid article, .public-blog-card, .public-blog-entry) {
    border-color: #f3c6be;
    background: #ffffff;
    color: #104b5a;
    box-shadow: 0 18px 44px rgba(242, 109, 91, 0.11);
}

.public-template-coral :is(.visual-chip-wall span, .visual-calculator, .visual-result) {
    border-color: #f3c6be;
    background: #ffffff;
    color: #104b5a;
}

.public-template-coral .visual-contact {
    background: #104b5a;
}

/* Design 2: Marte */
.public-design-urban {
    background: #1b0f0b;
    color: #fff0df;
}

.urban-hero {
    padding: 22px max(18px, calc((100vw - 1680px) / 2)) 0;
    background:
        radial-gradient(circle at 8% 12%, rgba(217, 103, 47, 0.22), transparent 32%),
        linear-gradient(135deg, #1b0f0b 0%, #30150d 52%, #5c2112 100%);
}

.urban-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 10px;
    border: 1px solid rgba(255, 176, 106, 0.24);
    border-radius: 8px;
    background: rgba(255, 176, 106, 0.08);
}

.urban-nav > div {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.urban-nav a {
    color: rgba(255, 240, 223, 0.86);
    font-weight: 900;
}

.urban-nav > div > a {
    padding: 11px 12px;
}

.urban-nav-cta,
.urban-primary {
    background: #e86f32;
    color: #1b0f0b;
}

.urban-secondary {
    border: 1px solid rgba(255, 240, 223, 0.28);
    color: #fff0df;
}

.urban-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, 0.5fr);
    gap: clamp(18px, 3vw, 42px);
    align-items: stretch;
    padding: clamp(42px, 7vw, 112px) 0 clamp(28px, 5vw, 72px);
}

.urban-status {
    display: grid;
    align-content: center;
    gap: 14px;
    min-height: 420px;
    padding: clamp(22px, 3vw, 32px);
    border-radius: 8px;
    background:
        radial-gradient(circle at 100% 0%, rgba(255, 240, 223, 0.22), transparent 36%),
        linear-gradient(145deg, #f2c35f 0%, #e86f32 48%, #7a2d16 100%);
    color: #1b0f0b;
    box-shadow: 0 28px 90px rgba(91, 33, 18, 0.42);
}

.urban-status > span {
    font-size: 13px;
    font-weight: 950;
    letter-spacing: 0;
    text-transform: uppercase;
}

.urban-status > strong {
    font-size: clamp(86px, 9vw, 136px);
    line-height: 0.82;
}

.urban-status > b {
    font-size: 32px;
}

.urban-status > p {
    max-width: 520px;
    margin: 0;
    color: rgba(27, 15, 11, 0.78);
    font-size: 18px;
    font-weight: 850;
    line-height: 1.35;
}

.urban-status .public-category-price-panel {
    display: grid;
    gap: 12px;
    margin-top: 10px;
}

.urban-status .public-period-selector {
    gap: 6px;
}

.urban-status .public-period-selector button {
    min-height: 34px;
    padding: 0 10px;
    border-color: rgba(27, 15, 11, 0.24);
    background: rgba(255, 240, 223, 0.68);
    color: #1b0f0b;
}

.urban-status .public-period-selector button.is-active {
    background: #1b0f0b;
    color: #fff0df;
}

.urban-status-rate-list {
    display: grid;
    gap: 9px;
}

.urban-status-rate-list article {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    padding: 13px 14px;
    border: 1px solid rgba(255, 240, 223, 0.18);
    border-radius: 8px;
    background: rgba(27, 15, 11, 0.88);
    color: #fff0df;
}

.urban-status-rate-title {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.urban-status-rate-title > span {
    font-size: 16px;
    font-weight: 950;
}

.urban-model-info {
    display: inline-grid;
    place-items: center;
    width: 1.2em;
    height: 1.2em;
    min-width: 1.2em;
    padding: 0;
    border: 1px solid rgba(247, 207, 114, 0.72);
    border-radius: 999px;
    background: rgba(247, 207, 114, 0.18);
    color: #f7cf72;
    font: inherit;
    font-size: 0.8em;
    line-height: 1;
    cursor: pointer;
}

.urban-model-info[aria-expanded="true"] {
    background: #f7cf72;
    color: #1b0f0b;
}

.urban-status-rate-list article strong {
    color: #f7cf72;
    font-size: clamp(22px, 2vw, 30px);
    line-height: 1;
    text-align: right;
}

.urban-status-rate-list article small {
    grid-column: 1 / -1;
    color: rgba(255, 240, 223, 0.62);
    font-weight: 800;
}

.urban-model-info-text {
    padding: 10px 12px;
    border: 1px solid rgba(247, 207, 114, 0.22);
    border-radius: 8px;
    background: rgba(247, 207, 114, 0.1);
    color: rgba(255, 240, 223, 0.78) !important;
    line-height: 1.45;
}

.urban-model-info-text[hidden] {
    display: none;
}

.urban-copy {
    display: grid;
    align-content: center;
    gap: 20px;
}

.urban-copy h1 {
    max-width: 920px;
    color: #fff0df;
    font-size: clamp(58px, 9vw, 122px);
    line-height: 0.9;
    overflow-wrap: anywhere;
}

.urban-copy p {
    max-width: 760px;
    color: rgba(255, 240, 223, 0.78);
    font-size: 22px;
    line-height: 1.45;
}

.urban-metrics {
    padding-bottom: 28px;
}

.urban-metrics article {
    border: 1px solid rgba(255, 176, 106, 0.2);
    background: #2a120c;
}

.public-design-urban :is(.urban-band, .urban-models, .urban-rates, .urban-location) {
    display: grid;
    gap: 28px;
    padding: clamp(70px, 8vw, 124px) max(18px, calc((100vw - 1680px) / 2));
}

.urban-band {
    grid-template-columns: minmax(260px, 0.48fr) minmax(0, 1fr);
    align-items: center;
    background:
        radial-gradient(circle at 92% 14%, rgba(242, 195, 95, 0.2), transparent 30%),
        linear-gradient(135deg, #5c2112 0%, #2a120c 100%);
    color: #fff0df;
}

.urban-band h2,
.urban-section-head h2,
.urban-location h2 {
    max-width: 900px;
    font-size: clamp(38px, 5vw, 66px);
    line-height: 1;
}

.urban-chip-rail span {
    border: 1px solid rgba(242, 195, 95, 0.44);
    background: #f2c35f;
    color: #1b0f0b;
}

.urban-models {
    background:
        radial-gradient(circle at 12% 0%, rgba(232, 111, 50, 0.28), transparent 34%),
        linear-gradient(160deg, #240d08 0%, #6a2513 100%);
}

.urban-model-grid article,
.urban-rate-grid article {
    border: 1px solid rgba(242, 195, 95, 0.28);
    background:
        radial-gradient(circle at 96% 8%, rgba(242, 195, 95, 0.12), transparent 32%),
        #3a1a10;
    color: #fff0df;
}

.urban-rates {
    background:
        radial-gradient(circle at 100% 0%, rgba(232, 111, 50, 0.18), transparent 34%),
        #1b0f0b;
    color: #fff0df;
}

.urban-calculator,
.urban-result {
    border: 1px solid rgba(242, 195, 95, 0.32);
    background: #2a120c;
    color: #fff0df;
}

.urban-location {
    grid-template-columns: minmax(280px, 0.46fr) minmax(0, 1fr);
    align-items: center;
    background:
        radial-gradient(circle at 12% 16%, rgba(242, 195, 95, 0.18), transparent 28%),
        linear-gradient(135deg, #3a1a10 0%, #7a2d16 100%);
    color: #fff0df;
}

.urban-location-copy {
    display: grid;
    align-content: center;
    justify-items: start;
    justify-self: start;
    gap: 14px;
    width: 100%;
    max-width: 520px;
    text-align: left;
}

.urban-location-copy :is(h2, p) {
    color: #ffffff;
}

.urban-location-copy p {
    max-width: 480px;
    font-size: clamp(17px, 1.5vw, 20px);
    line-height: 1.5;
}

@media (min-width: 1121px) {
    .urban-location {
        column-gap: clamp(52px, 5vw, 84px);
    }

    .urban-location-copy {
        padding-left: clamp(20px, 3vw, 48px);
        transform: translateY(-12px);
    }

    .urban-location :is(.urban-map, .public-design-map-fallback) {
        width: calc(100% - clamp(18px, 2.5vw, 36px));
        justify-self: end;
    }
}

.urban-map,
.urban-location .public-design-map-fallback {
    border: 1px solid rgba(242, 195, 95, 0.38);
    background: #2a120c;
}

.urban-footer {
    background: #160b08;
    color: rgba(255, 240, 223, 0.74);
}

.public-design-urban .public-period-selector button {
    border-color: rgba(242, 195, 95, 0.34);
    background: #5c2112;
    color: #fff0df;
}

.public-design-urban .public-period-selector button:is(.is-active, [aria-pressed="true"]) {
    border-color: #f2c35f;
    background: #f2c35f;
    color: #1b0f0b;
}

.public-design-urban .public-category-price {
    color: #f2c35f;
}

.public-design-urban :is(.public-category-card-head strong, .urban-model-grid article strong, .urban-rate-grid article strong) {
    color: #fff0df !important;
}

.public-design-urban :is(.public-vehicle-category-grid p, .public-category-note, .urban-rate-grid article small, .urban-model-grid article small) {
    color: rgba(255, 240, 223, 0.72) !important;
}

.public-design-urban .public-category-note,
.public-design-urban :is(.public-discount-card, .public-config-needed, .public-calculation-mode, .public-cyclic-field, .public-calculation-result-panel) {
    border-color: rgba(242, 195, 95, 0.28);
    background: #3a1a10;
    color: #fff0df;
}

.public-design-urban .public-price-grid :is(input, select, .public-time24),
.public-design-urban .public-cyclic-grid .public-time24 {
    border-color: rgba(242, 195, 95, 0.28);
    background: #1b0f0b;
    color: #fff0df;
}

.public-design-urban .public-price-grid :is(input, select)::placeholder {
    color: rgba(255, 240, 223, 0.56);
}

.public-design-urban .public-price-grid button,
.public-design-urban .public-contact-submit {
    background: #e86f32;
    color: #1b0f0b;
}

.public-design-urban .public-calculation-mode label,
.public-design-urban .public-cyclic-day {
    border-color: rgba(242, 195, 95, 0.28);
    background: #2a120c;
    color: #fff0df;
}

.public-design-urban .public-calculation-mode label:has(input:checked) {
    border-color: #f2c35f;
    background: #7a2d16;
    color: #fff0df;
}

.public-design-urban .public-calculation-facts article {
    border-color: rgba(242, 195, 95, 0.24);
    background: #2a120c;
}

.public-design-urban .public-calculation-facts article.public-discount-fact {
    border-color: #e86f32;
    background: linear-gradient(135deg, rgba(232, 111, 50, 0.28), rgba(42, 18, 12, 0.92));
    box-shadow: inset 4px 0 0 #e86f32;
}

.public-design-urban .public-calculation-facts article.public-discount-total-fact {
    border-color: #f2c35f;
    background: linear-gradient(135deg, rgba(242, 195, 95, 0.24), rgba(42, 18, 12, 0.92));
    box-shadow: inset 4px 0 0 #f2c35f;
}

.public-design-urban .public-price-detail :is(th, td).public-discount-column {
    background: rgba(232, 111, 50, 0.18);
    color: #f7cf72;
}

.public-design-urban .public-price-detail tr.is-total .public-discount-column {
    background: rgba(242, 195, 95, 0.2);
    color: #f2c35f;
}

.public-design-urban .public-map-info-window a {
    color: #7a2d16 !important;
}

/* Design 3: Urano */
.public-design-map {
    background: #eefcff;
    color: #083746;
}

.map-first {
    padding: clamp(32px, 5vw, 72px) max(18px, calc((100vw - 1680px) / 2)) clamp(54px, 6vw, 84px);
    background:
        radial-gradient(circle at 82% 14%, rgba(204, 249, 255, 0.68), transparent 30%),
        radial-gradient(circle at 18% 92%, rgba(89, 200, 216, 0.22), transparent 34%),
        linear-gradient(135deg, #f7fdff 0%, #d7f7ff 42%, #72d9e7 100%);
}

.map-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 22px;
}

.map-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.map-links a {
    padding: 12px 14px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.78);
    color: #0b7084;
    font-weight: 900;
}

.map-hero-grid {
    display: grid;
    grid-template-columns: minmax(320px, 580px) minmax(0, 1fr);
    gap: clamp(18px, 2.4vw, 34px);
    align-items: center;
}

.map-hero-canvas,
.map-first .public-design-map-fallback {
    width: 100%;
    height: clamp(360px, 42vh, 540px);
    min-height: 0;
    border: 1px solid rgba(82, 196, 216, 0.46);
    background: #dff8ff;
    box-shadow: 0 24px 60px rgba(23, 102, 130, 0.16);
}

.map-arrival-card {
    display: grid;
    align-content: center;
    gap: 18px;
    padding: clamp(24px, 4vw, 46px);
    border-radius: 8px;
    border: 1px solid rgba(82, 196, 216, 0.34);
    background:
        radial-gradient(circle at 100% 0%, rgba(159, 237, 249, 0.32), transparent 34%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.92), rgba(235, 251, 255, 0.86));
    box-shadow: 0 18px 44px rgba(8, 55, 70, 0.12);
}

.map-arrival-card h1 {
    color: #083746;
    font-size: clamp(58px, 7vw, 112px);
    line-height: 0.94;
    overflow-wrap: anywhere;
}

.map-arrival-card p {
    color: #426774;
    font-size: 19px;
    line-height: 1.45;
}

.map-arrival-card dl {
    display: grid;
    gap: 10px;
    margin: 0;
}

.map-arrival-card dl div {
    display: grid;
    gap: 3px;
    padding: 12px;
    border-radius: 8px;
    border: 1px solid rgba(82, 196, 216, 0.28);
    background: rgba(224, 248, 255, 0.78);
}

.map-arrival-card dt {
    color: #0b7892;
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.map-arrival-card dd {
    margin: 0;
    font-weight: 900;
}

.map-primary {
    background: #0b7892;
    color: #f6fdff;
}

.map-secondary {
    border: 1px solid rgba(11, 120, 146, 0.34);
    color: #0b7084;
    background: rgba(255, 255, 255, 0.52);
}

.map-stats {
    margin-top: 18px;
}

.map-stats article {
    border: 1px solid rgba(82, 196, 216, 0.34);
    background: rgba(255, 255, 255, 0.76);
}

.public-design-map :is(.map-vehicles, .map-rates, .map-consult) {
    display: grid;
    gap: 24px;
    padding: clamp(72px, 8vw, 118px) max(18px, calc((100vw - 1680px) / 2));
}

.map-vehicles {
    background:
        radial-gradient(circle at 95% 6%, rgba(204, 249, 255, 0.48), transparent 28%),
        #f7fdff;
}

.map-vehicles h2,
.map-section-head h2 {
    max-width: 860px;
    font-size: clamp(38px, 5vw, 64px);
    line-height: 1;
}

.map-chip-grid span {
    border: 1px solid rgba(82, 196, 216, 0.34);
    background: #dff8ff;
    color: #0b7084;
}

.map-model-list article,
.map-rate-grid article {
    border: 1px solid rgba(82, 196, 216, 0.34);
    background:
        radial-gradient(circle at 100% 0%, rgba(159, 237, 249, 0.18), transparent 32%),
        linear-gradient(145deg, #ffffff 0%, #e9fbff 100%);
    box-shadow: 0 14px 36px rgba(8, 55, 70, 0.08);
}

.map-rates {
    background:
        linear-gradient(135deg, #e9fbff 0%, #cceffc 100%);
}

.map-consult {
    background: #f6fdff;
}

.map-calculator,
.map-result {
    border: 1px solid rgba(82, 196, 216, 0.34);
    background: #e9fbff;
}

.map-footer {
    background: #083746;
    color: #e9fbff;
}

/* Design 4: Reserva rapida */
.public-design-direct {
    background: #fff9f7;
    color: #231a1f;
}

.direct-hero {
    padding: 22px max(18px, calc((100vw - 1560px) / 2)) clamp(54px, 8vw, 96px);
    background: #fff9f7;
}

.direct-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: clamp(36px, 6vw, 82px);
}

.direct-nav-link,
.direct-nav-cta,
.direct-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 16px;
    border-radius: 8px;
    font-weight: 900;
    text-decoration: none;
}

.direct-nav-link {
    border: 1px solid #ead8dc;
    color: #6d5961;
}

.direct-nav-cta,
.direct-primary {
    background: #9f3341;
    color: #ffffff;
}

.direct-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(340px, 520px);
    gap: clamp(24px, 5vw, 78px);
    align-items: start;
}

.direct-copy {
    display: grid;
    gap: 20px;
}

.direct-copy h1 {
    max-width: 900px;
    color: #231a1f;
    font-size: clamp(52px, 8vw, 112px);
    line-height: 0.9;
    overflow-wrap: anywhere;
}

.direct-copy p {
    max-width: 700px;
    color: #6d5961;
    font-size: 21px;
    line-height: 1.45;
}

.direct-stats {
    margin-top: 18px;
}

.direct-stats article {
    border: 1px solid #ead8dc;
    background: #ffffff;
}

.direct-card {
    position: sticky;
    top: 22px;
    display: grid;
    gap: 18px;
    padding: 24px;
    border: 1px solid #ead8dc;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 22px 60px rgba(35, 26, 31, 0.12);
}

.direct-card > strong {
    color: #9f3341;
    font-size: clamp(44px, 5vw, 66px);
    line-height: 0.95;
}

.direct-calculator {
    border-top: 1px solid #ead8dc;
    padding-top: 18px;
}

.direct-calculator .public-price-grid {
    grid-template-columns: 1fr;
}

.direct-calculator .public-date-time {
    grid-template-columns: 1fr 1fr;
}

.direct-proof {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(280px, 0.6fr);
    gap: 28px;
    align-items: center;
    padding: clamp(68px, 8vw, 112px) max(18px, calc((100vw - 1560px) / 2));
    background: #231a1f;
    color: #fff9f7;
}

.direct-proof img {
    width: 100%;
    min-height: 420px;
    border-radius: 8px;
    object-fit: cover;
}

.direct-proof h2 {
    font-size: clamp(38px, 5vw, 66px);
    line-height: 1;
}

.direct-result {
    width: min(100% - 36px, 1560px);
    margin: 26px auto;
    border: 1px solid #ead8dc;
    background: #ffffff;
}

.direct-lists {
    display: grid;
    grid-template-columns: minmax(280px, 0.45fr) minmax(0, 1fr);
    gap: 26px;
    padding: clamp(68px, 8vw, 112px) max(18px, calc((100vw - 1560px) / 2));
}

.direct-lists > div {
    display: grid;
    gap: 18px;
}

.direct-lists h2,
.direct-rates h2,
.direct-location h2 {
    font-size: clamp(34px, 4vw, 54px);
}

.direct-chip-list {
    grid-template-columns: 1fr;
}

.direct-chip-list span {
    background: #ffffff;
    color: #9f3341;
    border: 1px solid #ead8dc;
}

.direct-model-list article,
.direct-rate-list article {
    border: 1px solid #ead8dc;
    background: #ffffff;
}

.direct-rates {
    display: grid;
    gap: 22px;
    padding: clamp(68px, 8vw, 112px) max(18px, calc((100vw - 1560px) / 2));
    background: #fff0e8;
}

.direct-location {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 0.45fr);
    gap: 26px;
    align-items: center;
    padding: clamp(68px, 8vw, 112px) max(18px, calc((100vw - 1560px) / 2));
}

.direct-map,
.direct-location .public-design-map-fallback {
    border: 1px solid #ead8dc;
    background: #ffffff;
}

.direct-footer {
    background: #231a1f;
    color: #fff9f7;
}

.public-design :is(.visual-footer, .urban-footer, .map-footer, .direct-footer) {
    background: #004f56;
    color: #ffffff;
}

.public-footer-grid {
    display: grid;
    grid-template-columns: minmax(300px, 1.35fr) minmax(170px, 0.55fr) minmax(230px, 0.7fr) minmax(250px, 0.8fr);
    gap: clamp(24px, 5vw, 92px);
    align-items: start;
    width: 100%;
}

.public-footer-brand {
    display: grid;
    gap: 12px;
    max-width: 410px;
}

.public-footer-logo-row {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.public-footer-logo-row img {
    width: 48px;
    height: 48px;
    border-radius: 8px;
    object-fit: cover;
}

.public-footer-logo-fallback {
    display: inline-grid;
    place-items: center;
    width: 50px;
    min-width: 50px;
    height: 50px;
    border-radius: 8px;
    background: #ffffff;
    color: #004f56;
    font-size: 18px;
    font-weight: 900;
}

.public-footer-logo-row strong {
    color: #ffffff;
    font-size: 38px;
    font-weight: 500;
    line-height: 1;
    min-width: 0;
    overflow-wrap: anywhere;
}

.public-footer-brand p {
    max-width: 360px;
    margin: 0;
    color: #ffffff;
    font-size: 17px;
    line-height: 1.35;
}

.public-footer-column {
    display: grid;
    gap: 8px;
    color: #ffffff;
}

.public-footer-column > strong {
    color: #55e4ea;
    font-size: 16px;
    font-weight: 900;
}

.public-footer-column a {
    color: #ffffff;
    font-size: 16px;
    line-height: 1.25;
    text-decoration: none;
}

.public-footer-column a:hover,
.public-footer-column a:focus-visible {
    color: #55e4ea;
}

.public-footer-email {
    display: inline-flex;
    align-items: center;
    gap: 9px;
}

.public-footer-email span {
    color: #55e4ea;
}

.public-footer-legal {
    gap: 14px;
}

.public-footer-bottom {
    display: grid;
    justify-items: center;
    padding-top: 14px;
    border-top: 1px solid rgba(255, 255, 255, 0.22);
    color: #e7fbfd;
    font-size: 15px;
}

.public-models-block {
    display: grid;
    gap: 16px;
}

.public-models-block > p {
    max-width: 860px;
    margin: 0;
    color: currentColor;
    font-size: 17px;
    font-weight: 800;
    line-height: 1.5;
    opacity: 0.78;
}

.public-social-links,
.visual-socials,
.urban-socials,
.map-socials,
.direct-socials,
.public-footer-socials {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.public-social-links a,
.visual-socials a,
.urban-socials a,
.map-socials a,
.direct-socials a,
.public-footer-socials a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 38px;
    padding: 0 12px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
}

.visual-socials a {
    background: rgba(255, 255, 255, 0.14);
    color: #ffffff;
}

.urban-socials a,
.direct-socials a {
    background: rgba(255, 248, 232, 0.1);
    color: currentColor;
}

.map-socials a {
    background: #ffffff;
    color: #146b4f;
}

.public-footer-socials a {
    display: inline-grid;
    place-items: center;
    width: 44px;
    min-width: 44px;
    height: 44px;
    min-height: 44px;
    padding: 0;
    border: 1px solid #55e4ea;
    border-radius: 999px;
    color: #ffffff;
    opacity: 1;
}

.public-footer-socials a:hover,
.public-footer-socials a:focus-visible {
    background: rgba(85, 228, 234, 0.14);
    color: #55e4ea;
}

.public-footer-socials a svg,
.public-social-links a svg,
.visual-socials a svg,
.urban-socials a svg,
.map-socials a svg,
.direct-socials a svg {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    fill: currentColor;
}

.public-footer-socials a svg {
    width: 22px;
    height: 22px;
}

.public-footer-socials .public-social-label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

.public-social-icon {
    display: inline-grid;
    place-items: center;
    min-width: 24px;
    height: 24px;
    padding: 0 5px;
    border: 1px solid currentColor;
    border-radius: 8px;
    font-size: 10px;
    font-weight: 900;
    line-height: 1;
}

.direct-nav-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

[data-public-block][hidden] {
    display: none !important;
}

.public-design-blog {
    display: grid;
    gap: 24px;
    padding: clamp(62px, 8vw, 112px) max(18px, calc((100vw - 1680px) / 2));
}

.public-section-head {
    display: grid;
    gap: 8px;
    max-width: 900px;
}

.public-section-head span {
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
}

.public-section-head h2 {
    font-size: clamp(34px, 5vw, 62px);
    line-height: 1;
}

.public-section-head p {
    margin: 0;
    color: currentColor;
    font-size: 17px;
    font-weight: 800;
    line-height: 1.45;
    opacity: 0.78;
}

.public-gallery-grid,
.public-blog-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 16px;
}

.public-blog-carousel {
    position: relative;
    min-width: 0;
}

.public-blog-carousel.is-scrollable {
    padding: 0 54px;
    overflow: hidden;
}

.public-blog-grid.is-scrollable {
    display: flex;
    grid-template-columns: none;
    gap: 16px;
    overflow: hidden;
    padding: 2px 2px 6px;
    scrollbar-width: none;
    transform: translate3d(0, 0, 0);
}

.public-blog-grid.is-scrollable::-webkit-scrollbar {
    display: none;
}

.public-blog-grid.is-scrollable.is-blog-moving {
    pointer-events: none;
    transition: transform 0.42s cubic-bezier(0.42, 0, 0.2, 1);
    will-change: transform;
}

.public-blog-grid.is-scrollable .public-blog-card,
.public-blog-grid.is-scrollable article {
    flex: 0 0 calc((100% - 32px) / 3);
    min-width: 0;
}

.public-blog-carousel-button {
    position: absolute;
    top: 50%;
    z-index: 2;
    display: inline-grid;
    place-items: center;
    width: 42px;
    height: 42px;
    padding: 0;
    border: 1px solid color-mix(in srgb, currentColor 24%, transparent);
    border-radius: 999px;
    background: var(--public-surface, #ffffff);
    color: var(--public-ink, #142229);
    font-size: 30px;
    font-weight: 900;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 12px 28px rgba(7, 31, 36, 0.16);
    transform: translateY(-50%);
}

.public-blog-carousel-prev {
    left: 0;
}

.public-blog-carousel-next {
    right: 0;
}

.public-blog-carousel-button:disabled {
    cursor: default;
    opacity: 0.38;
}

/* La vista previa vive dentro de .entry-form: reservamos columnas para que
   sus controles no hereden el ancho de los botones del formulario ni tapen las fotos. */
.public-page-builder-parking
    .public-block-example-slot[data-public-block-example-slot="blog"]
    .public-blog-carousel.is-scrollable {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) 42px;
    align-items: center;
    gap: 12px;
    padding: 0;
    overflow: visible;
}

.public-page-builder-parking
    .public-block-example-slot[data-public-block-example-slot="blog"]
    .public-blog-carousel-button {
    position: static;
    width: 42px;
    min-width: 42px;
    height: 42px;
    padding: 0;
    border: 1px solid color-mix(in srgb, var(--public-accent, #087a8a) 42%, transparent);
    border-radius: 50%;
    background: color-mix(
        in srgb,
        var(--public-accent, #087a8a) 18%,
        var(--public-surface, #ffffff)
    );
    color: var(--public-accent, #087a8a);
    font-size: 30px;
    font-weight: 900;
    line-height: 1;
    box-shadow: 0 10px 22px rgba(7, 31, 36, 0.16);
    transform: none;
}

@media (min-width: 1121px) {
    .public-page-builder-parking
        .public-block-editor[data-public-block-editor="mapa"]
        .public-block-example-slot[data-public-block-example-slot="mapa"]
        .public-block-inline-preview
        .visual-location > div:first-child {
        padding-top: 0;
        transform: translateY(-24px);
    }
}

@media (max-width: 900px) {
    .public-blog-grid.is-scrollable .public-blog-card,
    .public-blog-grid.is-scrollable article {
        flex-basis: calc((100% - 16px) / 2);
    }
}

@media (max-width: 640px) {
    .public-blog-carousel.is-scrollable {
        padding: 0 46px;
    }

    .public-blog-grid.is-scrollable .public-blog-card,
    .public-blog-grid.is-scrollable article {
        flex-basis: 100%;
    }
}

.public-gallery-grid figure {
    display: grid;
    gap: 10px;
    margin: 0;
}

.public-gallery-grid img {
    width: 100%;
    aspect-ratio: 4 / 3;
    border-radius: 8px;
    object-fit: cover;
}

.public-gallery-grid figcaption {
    display: grid;
    gap: 4px;
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
}

.public-gallery-grid figcaption span {
    opacity: 0.68;
}

.public-blog-grid article,
.public-blog-card {
    display: grid;
    align-content: space-between;
    gap: 16px;
    min-height: 178px;
    overflow: hidden;
    padding: 20px;
    border: 1px solid currentColor;
    border-radius: 8px;
    color: currentColor;
    text-decoration: none;
}

.public-blog-card > img,
.public-blog-grid article > img {
    width: calc(100% + 40px);
    max-width: none;
    aspect-ratio: 16 / 9;
    margin: -20px -20px 0;
    object-fit: cover;
}

.public-blog-media {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 10px;
    width: calc(100% + 40px);
    margin: -20px -20px 0;
}

.public-blog-media img {
    width: 100%;
    height: 100%;
    min-height: 220px;
    margin: 0;
    border-radius: 0;
}

.public-blog-media-count-1 img {
    aspect-ratio: 16 / 10;
}

.public-blog-media-count-2 img {
    aspect-ratio: 4 / 3;
}

.public-blog-grid article > div,
.public-blog-card > div {
    display: grid;
    gap: 10px;
}

.public-blog-grid span {
    font-size: 13px;
    font-weight: 900;
    opacity: 0.7;
    text-transform: uppercase;
}

.public-blog-grid strong {
    font-size: 22px;
    line-height: 1.15;
}

.public-blog-card-more,
.public-blog-read-more {
    width: fit-content;
    color: #2f9dff;
    font-weight: 900;
    text-decoration: none;
}

.public-blog-card-more {
    font-size: 15px;
    opacity: 1;
    text-transform: none;
}

.public-blog-read-more {
    font-size: 18px;
}

.public-blog-card:hover .public-blog-card-more,
.public-blog-card:focus-visible .public-blog-card-more,
.public-blog-read-more:hover,
.public-blog-read-more:focus-visible {
    color: #6ac2ff;
    text-decoration: underline;
}

.public-blog-grid p,
.public-blog-grid small {
    margin: 0;
    line-height: 1.45;
    opacity: 0.78;
}

.public-blog-grid p {
    white-space: pre-line;
}

.public-blog-entry-list {
    display: grid;
    gap: 18px;
}

.public-blog-entry {
    display: none;
    gap: 18px;
    scroll-margin-top: 110px;
    padding: clamp(18px, 3vw, 32px);
    border: 1px solid currentColor;
    border-radius: 8px;
    color: currentColor;
}

.public-blog-entry:target {
    display: grid;
}

.public-blog-entry h3 {
    margin: 0;
    font-size: clamp(28px, 4vw, 48px);
    line-height: 1.05;
}

.public-blog-entry-image {
    width: 100%;
    max-height: 560px;
    border-radius: 8px;
    object-fit: cover;
}

.public-blog-entry-image-main {
    aspect-ratio: 16 / 9;
}

.public-blog-entry p {
    margin: 0;
    max-width: 980px;
    font-size: clamp(17px, 2vw, 20px);
    font-weight: 700;
    line-height: 1.62;
}

.public-blog-detail-page {
    display: block;
    min-height: 100vh;
    padding: 0;
    background: #f7fbfa;
    color: #102329;
}

.public-blog-detail-page > .public-sticky-nav {
    grid-template-columns: minmax(210px, 0.7fr) minmax(0, 1.8fr) minmax(150px, 0.55fr);
    margin-bottom: 0;
}

.public-blog-detail-page .public-sticky-links {
    justify-self: center;
    justify-content: space-between;
    width: min(100%, 860px);
}

.public-blog-detail-page .public-sticky-links > a {
    min-width: 94px;
}

.public-blog-detail-article {
    display: grid;
    gap: clamp(22px, 4vw, 42px);
    padding: clamp(28px, 5vw, 72px) max(18px, calc((100vw - 1360px) / 2));
}

.public-blog-detail-back {
    width: fit-content;
    padding: 10px 14px;
    border: 1px solid currentColor;
    border-radius: 8px;
    color: currentColor;
    font-weight: 900;
    text-decoration: none;
}

.public-blog-detail-head {
    max-width: 1240px;
    margin: 0 auto;
    text-align: left;
}

.public-blog-detail-head h1 {
    margin: 0;
    font-size: clamp(34px, 7vw, 78px);
    line-height: 0.98;
}

.public-blog-detail-head > p:first-child {
    margin: 0;
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 0;
    opacity: 0.7;
    text-transform: uppercase;
}

.public-blog-detail-head > p:not(:first-child) {
    font-weight: 400;
    line-height: 1.55;
    opacity: 0.72;
}

.public-blog-detail-body {
    display: grid;
    gap: clamp(18px, 3vw, 34px);
    width: min(100%, 1320px);
    margin: 0 auto;
}

.public-blog-entry-text {
    display: grid;
    gap: 14px;
    max-width: 980px;
}

.public-blog-entry-text p {
    margin: 0;
    font-size: clamp(17px, 2vw, 20px);
    font-weight: 400;
    line-height: 1.68;
}

.public-blog-entry-text strong {
    font-weight: 900;
}

.public-blog-list-page {
    min-height: 100vh;
    background: #071418;
    color: #f4fbfd;
}

.public-blog-list-page > .public-sticky-nav {
    margin-bottom: 0;
}

.public-blog-list-wrap {
    display: grid;
    gap: clamp(28px, 4vw, 56px);
    padding: clamp(34px, 5vw, 78px) max(18px, calc((100vw - 1460px) / 2)) clamp(58px, 8vw, 110px);
}

.public-blog-list-hero {
    display: grid;
    gap: 12px;
    max-width: 980px;
}

.public-blog-list-hero p,
.public-blog-list-hero span {
    margin: 0;
    color: rgba(244, 251, 253, 0.72);
    font-size: clamp(18px, 2vw, 24px);
    line-height: 1.45;
}

.public-blog-list-hero p {
    color: rgba(244, 251, 253, 0.58);
    font-size: 14px;
    font-weight: 900;
    text-transform: uppercase;
}

.public-blog-list-hero h1 {
    margin: 0;
    font-size: clamp(58px, 9vw, 128px);
    line-height: 0.92;
}

.public-blog-list-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}

.public-blog-list-card {
    display: grid;
    align-content: start;
    overflow: hidden;
    border: 1px solid rgba(116, 214, 223, 0.36);
    border-radius: 8px;
    background: #142328;
    box-shadow: 0 22px 60px rgba(0, 0, 0, 0.2);
}

.public-blog-list-image {
    display: block;
    min-height: 260px;
    background: rgba(255, 255, 255, 0.06);
}

.public-blog-list-image img {
    width: 100%;
    height: 100%;
    min-height: 260px;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

.public-blog-list-card > div {
    display: grid;
    gap: 14px;
    padding: 24px;
}

.public-blog-list-card small {
    color: rgba(244, 251, 253, 0.58);
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
}

.public-blog-list-card h2 {
    margin: 0;
    font-size: clamp(25px, 2.8vw, 38px);
    line-height: 1.05;
}

.public-blog-list-card h2 a {
    color: inherit;
    text-decoration: none;
}

.public-blog-list-card p {
    margin: 0;
    color: rgba(244, 251, 253, 0.76);
    font-size: 18px;
    line-height: 1.48;
}

.public-comments-block {
    display: grid;
    gap: 26px;
    padding: clamp(34px, 6vw, 78px) max(18px, calc((100vw - 1480px) / 2));
}

.public-references-head {
    max-width: 1100px;
}

.public-references-head h2 {
    max-width: none;
    font-size: clamp(34px, 5vw, 58px);
    line-height: 1.02;
}

.public-references-head p {
    max-width: 980px;
    font-size: clamp(18px, 2vw, 24px);
}

.public-references-carousel {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) 44px;
    gap: 14px;
    align-items: center;
}

.public-references-viewport {
    overflow: hidden;
}

.public-references-track {
    display: flex;
    align-items: stretch;
    gap: 14px;
    overflow: visible;
    padding: 2px 0 6px;
    scrollbar-width: none;
    transform: translate3d(0, 0, 0);
}

.public-references-track::-webkit-scrollbar {
    display: none;
}

.public-references-track.is-reference-moving {
    pointer-events: none;
    transition: transform 0.42s cubic-bezier(0.42, 0, 0.2, 1);
    will-change: transform;
}

.public-reference-card {
    position: relative;
    display: grid;
    flex: 0 0 calc((100% - 28px) / 3);
    gap: 16px;
    align-content: start;
    min-width: 0;
    min-height: 220px;
    padding: 28px 30px 26px;
    overflow: hidden;
    border: 1px solid rgba(196, 209, 212, 0.82);
    border-radius: 8px;
    background: linear-gradient(180deg, #f7fbfa 0%, #f3f8f7 100%);
    box-shadow: 0 10px 22px rgba(43, 47, 51, 0.06);
}

.public-reference-card::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 4px;
    background: var(--brand-alki);
    content: "";
}

.public-reference-card p {
    margin: 0;
    color: var(--ink);
    font-size: clamp(17px, 1.45vw, 21px);
    line-height: 1.48;
}

.public-reference-card strong {
    align-self: end;
    color: var(--brand-sys);
    font-size: clamp(17px, 1.35vw, 21px);
}

.public-reference-location {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: -10px;
    color: var(--muted);
    font-size: 15px;
    font-weight: 700;
}

.public-reference-flag {
    display: inline-block;
    flex: 0 0 auto;
    width: 18px;
    height: 12px;
    border-radius: 2px;
    box-shadow: 0 0 0 1px rgba(43, 47, 51, 0.12);
    object-fit: cover;
}

.public-references-carousel > .public-reference-control {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: center;
    justify-self: center;
    width: 42px;
    min-width: 0;
    height: 42px;
    min-height: 0;
    padding: 0;
    border: 1px solid rgba(0, 95, 107, 0.2);
    border-radius: 50%;
    background: #ffffff;
    color: var(--brand-alki);
    font-size: 30px;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 8px 18px rgba(43, 47, 51, 0.08);
}

.public-reference-control:disabled {
    cursor: default;
    opacity: 0.36;
}

@media (max-width: 900px) {
    .public-blog-list-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .public-reference-card {
        flex-basis: calc((100% - 14px) / 2);
    }
}

@media (max-width: 640px) {
    .public-blog-list-grid {
        grid-template-columns: 1fr;
    }

    .public-references-carousel {
        grid-template-columns: 36px minmax(0, 1fr) 36px;
        gap: 8px;
    }

    .public-references-carousel > .public-reference-control {
        width: 36px;
        height: 36px;
        font-size: 26px;
    }

    .public-reference-card {
        flex-basis: 100%;
        min-height: 230px;
        padding: 24px;
    }

    .public-blog-list-image,
    .public-blog-list-image img {
        min-height: 210px;
    }
}

.public-design[data-public-theme="dark"].public-blog-detail-page {
    background: #081216;
    color: #f6fbfc;
}

.public-design[data-public-theme="dark"] .public-blog-entry-text p {
    color: rgba(246, 251, 252, 0.86);
}

.visual-gallery,
.visual-blog {
    background: #f6f3ec;
    color: #102329;
}

.urban-gallery {
    background:
        radial-gradient(circle at 12% 0%, rgba(242, 195, 95, 0.16), transparent 32%),
        #2a120c;
    color: #fff0df;
}

.urban-blog {
    background:
        radial-gradient(circle at 10% 0%, rgba(232, 111, 50, 0.18), transparent 32%),
        #2a120c;
    color: #fff8e8;
}

.urban-blog .public-blog-card {
    border-color: rgba(255, 176, 106, 0.26);
    background: #3a1a10;
    color: #fff0df;
    box-shadow: 0 18px 48px rgba(27, 15, 11, 0.22);
}

.urban-blog .public-blog-card-more {
    color: #f7cf72;
}

.urban-blog .public-blog-carousel-button {
    border-color: rgba(242, 195, 95, 0.36);
    background: #f2c35f;
    color: #1b0f0b;
}

.urban-comments {
    background:
        radial-gradient(circle at 88% 10%, rgba(242, 195, 95, 0.18), transparent 32%),
        linear-gradient(135deg, #3a1a10 0%, #1b0f0b 100%);
    color: #fff0df;
}

.urban-comments .public-reference-card {
    border-color: rgba(242, 195, 95, 0.26);
    background:
        linear-gradient(180deg, #4b1e10 0%, #2a120c 100%);
    color: #fff0df;
    box-shadow: 0 16px 34px rgba(27, 15, 11, 0.2);
}

.urban-comments .public-reference-card::before {
    background: #e86f32;
}

.urban-comments .public-reference-card p,
.urban-comments .public-reference-card strong,
.urban-comments .public-reference-location {
    color: #fff0df;
}

.urban-comments .public-reference-location {
    opacity: 0.72;
}

.urban-comments .public-reference-control {
    border-color: rgba(242, 195, 95, 0.3);
    background: #f2c35f;
    color: #1b0f0b;
}

.map-gallery {
    background: #f7fdff;
    color: #083746;
}

.map-blog {
    background: #e9fbff;
    color: #083746;
}

.map-comments {
    background: #f6fdff;
    color: #083746;
}

.map-comments .public-reference-card::before {
    background: #72d9e7;
}

.direct-gallery {
    background: #fff9f7;
    color: #231a1f;
}

.direct-blog {
    background: #231a1f;
    color: #fff9f7;
}

.public-design-banner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 22px;
    align-items: center;
    min-height: 88px;
    padding: 18px max(40px, calc((100vw - 1680px) / 2));
}

.public-banner-copy {
    display: grid;
    gap: 4px;
}

.public-design-banner h2 {
    max-width: 1120px;
    margin: 0;
    font-size: clamp(24px, 2.6vw, 34px);
    line-height: 1.1;
}

.public-design-banner p {
    max-width: 860px;
    margin: 0;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.35;
    opacity: 0.82;
}

.public-banner-primary,
.public-banner-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 18px;
    border-radius: 8px;
    font-weight: 900;
}

.public-banner-actions {
    justify-content: flex-end;
}

.visual-banner,
.urban-banner,
.map-banner,
.direct-banner {
    background: #0d4b52;
    color: #ffffff;
}

.visual-banner .public-banner-primary,
.urban-banner .public-banner-primary,
.map-banner .public-banner-primary,
.direct-banner .public-banner-primary {
    background: #007681;
    color: #ffffff;
}

.visual-banner .public-banner-secondary,
.urban-banner .public-banner-secondary,
.map-banner .public-banner-secondary,
.direct-banner .public-banner-secondary {
    border: 1px solid rgba(255, 255, 255, 0.24);
    background: rgba(255, 255, 255, 0.08);
    color: #ffffff;
}

.urban-banner {
    background:
        radial-gradient(circle at 100% 50%, rgba(247, 207, 114, 0.2), transparent 28%),
        linear-gradient(135deg, #5c2112 0%, #2a120c 100%);
    color: #fff0df;
}

.urban-banner .public-banner-primary {
    background: #f2c35f;
    color: #1b0f0b;
}

.map-banner {
    background:
        radial-gradient(circle at 98% 50%, rgba(204, 249, 255, 0.24), transparent 28%),
        linear-gradient(135deg, #148eab 0%, #083746 100%);
    color: #f6fdff;
}

.map-banner .public-banner-primary {
    background: #ccf9ff;
    color: #083746;
}

.urban-banner .public-banner-secondary {
    border-color: rgba(255, 240, 223, 0.28);
    background: rgba(255, 240, 223, 0.08);
    color: #fff0df;
}

.public-design[data-public-theme="dark"] {
    background: #0f171b;
    color: #f4f8f9;
    color-scheme: dark;
}

.public-design[data-public-theme="dark"] .public-sticky-nav {
    border-bottom-color: #36505a;
    background: rgba(15, 23, 27, 0.92);
    color: #f4f8f9;
    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.32);
}

.public-design[data-public-theme="dark"] .public-sticky-links > a:hover,
.public-design[data-public-theme="dark"] .public-sticky-links > a:focus-visible,
.public-design[data-public-theme="dark"] .public-sticky-socials a:hover,
.public-design[data-public-theme="dark"] .public-sticky-socials a:focus-visible {
    background: rgba(141, 226, 235, 0.12);
}

.public-design[data-public-theme="dark"] .public-sticky-theme {
    border-color: #47626b;
    background: rgba(255, 255, 255, 0.08);
}

.public-design[data-public-theme="dark"] .public-sticky-cta {
    background: #8de2eb;
    color: #0f171b !important;
}

.public-design[data-public-theme="dark"] :is(.visual-intro, .visual-vehicles, .visual-models, .visual-rates, .visual-location, .urban-band, .urban-models, .urban-rates, .urban-location, .map-first, .map-vehicles, .map-rates, .map-consult, .map-standalone-location, .direct-hero, .direct-lists, .direct-rates, .direct-location, .visual-gallery, .visual-blog, .urban-gallery, .urban-blog, .map-gallery, .map-blog, .direct-gallery, .direct-blog, .visual-comments, .urban-comments, .map-comments, .direct-comments, .visual-banner, .urban-banner, .map-banner, .direct-banner, .public-contact-block) {
    background: #0f171b;
    color: #f4f8f9;
}

.public-design[data-public-theme="dark"] :is(.visual-intro h2, .visual-vehicles h2, .visual-models h2, .visual-rates h2, .visual-location h2, .urban-band h2, .urban-section-head h2, .urban-location h2, .map-vehicles h2, .map-section-head h2, .direct-copy h1, .direct-lists h2, .direct-rates h2, .direct-location h2, .public-section-head h2, .public-contact-head h2) {
    color: #ffffff;
}

.public-design[data-public-theme="dark"] :is(.visual-copy p, .urban-copy p, .map-arrival-card p, .direct-copy p, .public-blog-grid p, .public-blog-grid small, .public-blog-entry p, .public-reference-card p, .public-contact-form label) {
    color: #d8e8ed;
}

.public-design[data-public-theme="dark"] .visual-media::after {
    background: linear-gradient(90deg, rgba(4, 18, 23, 0.92), rgba(4, 18, 23, 0.64) 55%, rgba(4, 18, 23, 0.22));
}

.public-design[data-public-theme="dark"] :is(.visual-summary, .map-arrival-card, .direct-card, .visual-feature-grid article, .visual-feature-grid a, .visual-rate-grid article, .visual-model-grid article, .public-vehicle-category-grid article, .public-category-note, .urban-model-grid article, .urban-rate-grid article, .map-model-list article, .map-rate-grid article, .direct-model-list article, .direct-rate-list article, .public-blog-grid article, .public-blog-card, .public-blog-entry, .public-reference-card) {
    border-color: #36505a;
    background: #172329;
    color: #f4f8f9;
    box-shadow: 0 16px 38px rgba(0, 0, 0, 0.28);
}

.public-design[data-public-theme="dark"] :is(.visual-summary > strong, .visual-summary b, .map-arrival-card h1, .map-arrival-card dd, .direct-card > strong, .public-blog-grid strong, .public-blog-entry h3, .public-reference-card strong) {
    color: #ffffff;
}

.public-design[data-public-theme="dark"] .public-reference-location {
    color: #c3d5dc;
}

.public-design[data-public-theme="dark"] .public-reference-control {
    border-color: rgba(79, 226, 226, 0.24);
    background: #151e21;
    color: #4fd3d6;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.24);
}

.public-design[data-public-theme="dark"] .public-blog-grid span {
    color: #8ae7ef;
    opacity: 1;
}

.public-design[data-public-theme="dark"] .public-blog-grid p {
    opacity: 0.95;
}

.public-design[data-public-theme="dark"] :is(.visual-summary p) {
    color: #c4d4da;
}

.public-design[data-public-theme="dark"] .visual-feature-grid .public-availability-card-spaces {
    background: linear-gradient(135deg, #12383d 0%, #1b636c 60%, #7de1e9 100%);
    border-color: #2c8f99;
}

.public-design[data-public-theme="dark"] .visual-feature-grid .public-availability-card-address {
    background: linear-gradient(135deg, #392a13 0%, #70531d 60%, #f2c25f 100%);
    border-color: #b9862e;
}

.public-design[data-public-theme="dark"] .visual-feature-grid .public-availability-card-contact {
    background: linear-gradient(135deg, #3a1c24 0%, #753441 58%, #f59aaa 100%);
    border-color: #c96278;
}

.public-design[data-public-theme="dark"] :is(.public-availability-card h3, .public-category-card-head strong) {
    color: #ffffff !important;
}

.public-design[data-public-theme="dark"] :is(.public-availability-card-spaces span, .public-availability-card-spaces strong) {
    color: #ffffff !important;
}

.public-design[data-public-theme="dark"] .public-category-price {
    color: #8de2eb;
}

.public-design[data-public-theme="dark"] :is(.public-availability-card p, .public-vehicle-category-grid p, .public-category-note) {
    color: #f4f8f9 !important;
}

.public-design[data-public-theme="dark"] .public-period-selector button {
    border-color: #0b6f78;
    background: #0b6f78;
    color: #ffffff;
}

.public-design[data-public-theme="dark"] .public-period-selector button:is(.is-active, [aria-pressed="true"]) {
    border-color: #f2c25f;
    background: #f2c25f;
    color: #071416;
}

.public-design[data-public-theme="dark"] .public-vehicle-category-grid article:nth-child(3n + 1) {
    border-color: #2a8790;
    background:
        radial-gradient(circle at 96% 8%, rgba(141, 226, 235, 0.18), transparent 32%),
        linear-gradient(145deg, #11282e 0%, #173f47 54%, #1f6670 100%);
}

.public-design[data-public-theme="dark"] .public-vehicle-category-grid article:nth-child(3n + 2) {
    border-color: #9e772c;
    background:
        radial-gradient(circle at 96% 8%, rgba(240, 199, 103, 0.16), transparent 32%),
        linear-gradient(145deg, #2c2415 0%, #4a3617 54%, #74521b 100%);
}

.public-design[data-public-theme="dark"] .public-vehicle-category-grid article:nth-child(3n) {
    border-color: #9a5262;
    background:
        radial-gradient(circle at 96% 8%, rgba(245, 154, 170, 0.16), transparent 32%),
        linear-gradient(145deg, #2e1720 0%, #4c2130 54%, #723144 100%);
}

.public-design[data-public-theme="dark"] .visual-location {
    background: transparent;
}

.public-design[data-public-theme="dark"] :is(.visual-chip-wall span, .urban-chip-rail span, .map-chip-grid span, .direct-chip-list span, .map-arrival-card dl div) {
    border: 1px solid #36505a;
    background: #203238;
    color: #8de2eb;
}

.public-design[data-public-theme="dark"] :is(.visual-calculator, .visual-result, .urban-calculator, .urban-result, .map-calculator, .map-result, .direct-result, .public-calculation-result-panel) {
    border-color: #36505a;
    background: #172329;
    color: #f4f8f9;
}

.public-design[data-public-theme="dark"] :is(.public-discount-card, .public-config-needed, .public-calculation-mode, .public-cyclic-field) {
    border-color: #36505a;
    background: #172329;
    color: #f4f8f9;
}

.public-design[data-public-theme="dark"] .public-config-needed p,
.public-design[data-public-theme="dark"] .public-selected-vehicle-models,
.public-design[data-public-theme="dark"] .public-cyclic-field p {
    color: #c4d4da;
}

.public-design[data-public-theme="dark"] .public-vehicle-model-popover {
    border-color: rgba(255, 255, 255, 0.18);
    background: #142229;
    color: #f4f8f9;
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.38);
}

.public-design[data-public-theme="dark"] .public-vehicle-model-popover article {
    border-color: rgba(255, 255, 255, 0.14);
    background: #101a1f;
}

.public-design[data-public-theme="dark"] .public-vehicle-model-popover article strong {
    color: #8ce8f0;
}

.public-design[data-public-theme="dark"] .public-vehicle-model-popover article span,
.public-design[data-public-theme="dark"] .public-vehicle-model-empty {
    color: #c4d4da;
}

.public-design[data-public-theme="dark"] .public-calculation-facts article {
    border-color: #36505a;
    background: #101a1f;
}

.public-design[data-public-theme="dark"] .public-calculation-facts article.public-discount-fact {
    border-color: #52d8e4;
    background: linear-gradient(135deg, rgba(0, 126, 143, 0.34), rgba(16, 26, 31, 0.9));
    box-shadow: inset 4px 0 0 #52d8e4;
}

.public-design[data-public-theme="dark"] .public-calculation-facts article.public-discount-total-fact {
    border-color: rgba(37, 211, 102, 0.78);
    background: linear-gradient(135deg, rgba(37, 211, 102, 0.24), rgba(16, 26, 31, 0.9));
    box-shadow: inset 4px 0 0 #25d366;
}

.public-design[data-public-theme="dark"] .public-price-detail :is(th, td).public-discount-column {
    background: rgba(0, 107, 117, 0.24);
    color: #8ae7ef;
}

.public-design[data-public-theme="dark"] .public-price-detail tr.is-total .public-discount-column {
    background: rgba(37, 211, 102, 0.18);
    color: #9af0bb;
}

.public-design[data-public-theme="dark"] .public-price-grid :is(input, select, .public-time24),
.public-design[data-public-theme="dark"] .public-cyclic-grid .public-time24,
.public-design[data-public-theme="dark"] .public-contact-form :is(input, textarea, .country-picker-button) {
    border-color: #47626b;
    background: #101a1f;
    color: #f4f8f9;
}

.public-design[data-public-theme="dark"] .public-contact-form .country-picker-menu {
    border-color: #47626b;
    background: #101a1f;
}

.public-design[data-public-theme="dark"] .public-time24-badge {
    border-color: rgba(82, 216, 228, 0.38);
    background: rgba(82, 216, 228, 0.12);
    color: #8ae7ef;
}

.public-design[data-public-theme="dark"] .public-contact-form .country-picker-option {
    color: #f4f8f9;
}

.public-design[data-public-theme="dark"] .public-contact-form .country-picker-option:hover,
.public-design[data-public-theme="dark"] .public-contact-form .country-picker-option.is-selected {
    background: #17323a;
}

.public-design[data-public-theme="dark"] .public-price-grid :is(input, select)::placeholder,
.public-design[data-public-theme="dark"] .public-contact-form :is(input, textarea)::placeholder {
    color: #8fa5ad;
}

.public-design[data-public-theme="dark"] .public-calculation-mode label,
.public-design[data-public-theme="dark"] .public-cyclic-day {
    border-color: #36505a;
    background: #101a1f;
    color: #f4f8f9;
}

.public-design[data-public-theme="dark"] .public-calculation-mode label:has(input:checked) {
    background: #007987;
    color: #ffffff;
}

.public-design[data-public-theme="dark"] :is(.visual-map, .urban-map, .map-hero-canvas, .direct-map, .public-design-map-fallback) {
    border: 1px solid #36505a;
    background: #142229;
}

.public-design[data-public-theme="dark"] .visual-map {
    background: transparent;
}

.public-map-canvas :is(.gm-style-iw, .gm-style-iw-c, .gm-style-iw-d),
.public-map-canvas :is(.gm-style-iw, .gm-style-iw-c, .gm-style-iw-d) * {
    color: #17242b !important;
}

.public-map-canvas .gm-style-iw-c {
    max-width: 240px !important;
    padding: 10px 12px !important;
}

.public-map-canvas .gm-style-iw-d {
    overflow: hidden !important;
}

.public-map-info-window {
    display: grid;
    gap: 3px;
    max-width: 210px;
    color: #17242b;
    font-size: 14px;
    line-height: 1.25;
}

.public-map-info-window a {
    color: #006b75 !important;
    font-weight: 900;
    text-decoration: none;
}

.public-map-info-window span {
    color: #3d4c52 !important;
}

.public-design[data-public-theme="dark"] :is(.visual-stats, .urban-metrics, .map-stats, .direct-stats) article {
    border-color: #36505a;
    background: rgba(255, 255, 255, 0.08);
    color: #f4f8f9;
}

.public-design[data-public-theme="dark"] :is(.map-links a, .direct-nav-link, .map-socials a) {
    border: 1px solid #36505a;
    background: #172329;
    color: #f4f8f9;
}

.public-design[data-public-theme="dark"] :is(.public-theme-toggle, .visual-nav > div, .urban-nav) {
    border-color: rgba(255, 255, 255, 0.22);
    background: rgba(255, 255, 255, 0.08);
    color: #ffffff;
}

.public-design[data-public-theme="dark"] :is(.visual-primary, .visual-nav-cta, .map-primary, .direct-nav-cta, .direct-primary, .public-banner-primary, .public-contact-submit) {
    background: #8de2eb;
    color: #0f171b;
}

.public-design[data-public-theme="dark"] :is(.visual-primary, .visual-nav-cta) {
    border-color: rgba(141, 226, 235, 0.54);
    background: linear-gradient(135deg, #8de2eb 0%, #2db8c5 58%, #04717d 100%);
    color: #06191d;
}

.public-design[data-public-theme="dark"] :is(.visual-secondary, .urban-secondary, .map-secondary, .public-banner-secondary) {
    border-color: #47626b;
    color: #f4f8f9;
}

.public-design[data-public-theme="dark"] .visual-secondary {
    border-color: rgba(230, 184, 92, 0.58);
    background: rgba(230, 184, 92, 0.16);
    color: #ffe7a8;
}

.public-design[data-public-theme="dark"] :is(.urban-primary, .urban-nav-cta) {
    background: #e6b85c;
    color: #101820;
}

.public-design[data-public-theme="dark"] .direct-banner .public-banner-primary {
    background: #ff7f93;
    color: #1b1116;
}

.public-design[data-public-theme="dark"] .public-design-banner {
    background: #0d4b52;
    color: #ffffff;
}

.public-design[data-public-theme="dark"] .public-design-banner .public-banner-primary {
    background: #007681;
    color: #ffffff;
}

.public-design[data-public-theme="dark"] .public-design-banner .public-banner-secondary {
    border-color: rgba(255, 255, 255, 0.24);
    background: rgba(255, 255, 255, 0.08);
    color: #ffffff;
}

.public-design[data-public-theme="dark"] :is(.visual-contact, .urban-contact, .map-contact, .direct-contact) {
    background: #12383d;
    color: #f4f8f9;
}

.public-design[data-public-theme="dark"] :is(.visual-footer, .urban-footer, .map-footer, .direct-footer) {
    background: #004f56;
    color: #ffffff;
}

.public-design-map[data-public-theme="dark"] {
    background: #061a26;
    color: #e9fbff;
}

.public-design-map[data-public-theme="dark"] :is(.map-first, .map-vehicles, .map-rates, .map-consult, .map-standalone-location, .map-gallery, .map-blog, .map-comments) {
    background: #061a26;
    color: #e9fbff;
}

.public-design-map[data-public-theme="dark"] .map-first {
    background:
        radial-gradient(circle at 82% 18%, rgba(142, 238, 255, 0.2), transparent 32%),
        radial-gradient(circle at 12% 86%, rgba(80, 181, 215, 0.16), transparent 34%),
        linear-gradient(135deg, #061a26 0%, #0a2f43 50%, #11546a 100%);
}

.public-design-map[data-public-theme="dark"] .map-vehicles {
    background:
        radial-gradient(circle at 95% 6%, rgba(142, 238, 255, 0.14), transparent 30%),
        linear-gradient(135deg, #061a26 0%, #092536 100%);
}

.public-design-map[data-public-theme="dark"] .map-rates {
    background:
        radial-gradient(circle at 100% 0%, rgba(80, 181, 215, 0.16), transparent 34%),
        linear-gradient(135deg, #071f2e 0%, #0b3448 100%);
}

.public-design-map[data-public-theme="dark"] .map-consult,
.public-design-map[data-public-theme="dark"] .map-blog,
.public-design-map[data-public-theme="dark"] .map-comments {
    background: #071f2e;
}

.public-design-map[data-public-theme="dark"] :is(.map-arrival-card, .map-model-list article, .map-rate-grid article, .public-blog-card, .public-reference-card) {
    border-color: rgba(142, 238, 255, 0.26);
    background:
        radial-gradient(circle at 100% 0%, rgba(142, 238, 255, 0.12), transparent 32%),
        #0d3042;
    color: #e9fbff;
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.26);
}

.public-design-map[data-public-theme="dark"] :is(.map-arrival-card h1, .map-arrival-card dd, .map-vehicles h2, .map-section-head h2, .public-section-head h2, .public-contact-head h2, .public-blog-card strong, .public-reference-card strong) {
    color: #f7fdff;
}

.public-design-map[data-public-theme="dark"] :is(.map-arrival-card p, .public-blog-card p, .public-reference-card p, .public-contact-form label) {
    color: #c7e8f2;
}

.public-design-map[data-public-theme="dark"] :is(.map-arrival-card dl div, .map-chip-grid span, .map-calculator, .map-result) {
    border-color: rgba(142, 238, 255, 0.24);
    background: #082839;
    color: #8eeeff;
}

.public-design-map[data-public-theme="dark"] :is(.map-hero-canvas, .map-first .public-design-map-fallback) {
    border-color: rgba(142, 238, 255, 0.3);
    background: #082839;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.24);
}

.public-design-map[data-public-theme="dark"] :is(.map-primary, .public-period-selector button.is-active, .public-period-selector button[aria-pressed="true"], .public-price-grid button, .public-contact-submit) {
    border-color: #8eeeff;
    background: #8eeeff;
    color: #061a26;
}

.public-design-map[data-public-theme="dark"] :is(.map-secondary, .public-banner-secondary) {
    border-color: rgba(142, 238, 255, 0.28);
    background: rgba(142, 238, 255, 0.08);
    color: #e9fbff;
}

.public-design-map[data-public-theme="dark"] :is(.public-period-selector button, .public-calculation-mode label:has(input:checked)) {
    border-color: rgba(82, 196, 216, 0.58);
    background: #0b5268;
    color: #e9fbff;
}

.public-design-map[data-public-theme="dark"] .map-contact {
    background:
        radial-gradient(circle at 92% 12%, rgba(142, 238, 255, 0.16), transparent 32%),
        linear-gradient(135deg, #0a2f43 0%, #061a26 100%);
    color: #e9fbff;
}

.public-design-map[data-public-theme="dark"] .map-banner {
    background:
        radial-gradient(circle at 98% 50%, rgba(142, 238, 255, 0.18), transparent 28%),
        linear-gradient(135deg, #0b5268 0%, #061a26 100%);
    color: #e9fbff;
}

.public-design-map[data-public-theme="dark"] .map-banner .public-banner-primary {
    background: #8eeeff;
    color: #061a26;
}

.public-design-map[data-public-theme="dark"] .map-footer {
    background: #03111a;
    color: rgba(233, 251, 255, 0.8);
}

.public-template-clasica.public-design-visual[data-public-theme="dark"] {
    background: #071b20;
    color: #eefbfa;
}

.public-template-clasica[data-public-theme="dark"] .visual-media::after {
    background:
        linear-gradient(90deg, rgba(2, 19, 25, 0.94), rgba(7, 50, 60, 0.72) 58%, rgba(28, 84, 63, 0.32)),
        linear-gradient(180deg, rgba(110, 215, 232, 0.1), rgba(139, 212, 125, 0.12));
}

.public-template-clasica[data-public-theme="dark"] :is(.visual-intro, .visual-vehicles, .visual-models, .visual-rates, .visual-location, .visual-gallery, .visual-blog, .visual-comments) {
    background: #071b20;
    color: #eefbfa;
}

.public-template-clasica[data-public-theme="dark"] :is(.visual-intro h2, .visual-vehicles h2, .visual-models h2, .visual-rates h2, .visual-location h2, .public-section-head h2) {
    color: #f8ffff;
}

.public-template-clasica[data-public-theme="dark"] :is(.visual-feature-grid article, .visual-feature-grid a, .visual-rate-grid article, .visual-model-grid article, .public-vehicle-category-grid article, .public-category-note, .public-blog-grid article, .public-blog-card, .public-blog-entry, .public-reference-card) {
    border-color: rgba(110, 215, 232, 0.24);
    background: #10272d;
    color: #eefbfa;
    box-shadow: 0 16px 38px rgba(0, 0, 0, 0.28);
}

.public-template-clasica[data-public-theme="dark"] .visual-feature-grid .public-availability-card-spaces {
    border-color: #247f94;
    background:
        radial-gradient(circle at 88% 18%, rgba(110, 215, 232, 0.22), transparent 28%),
        linear-gradient(135deg, #082f3a 0%, #0c5b73 58%, #5fc6d8 100%);
}

.public-template-clasica[data-public-theme="dark"] .visual-feature-grid .public-availability-card-address {
    border-color: #347b5b;
    background:
        radial-gradient(circle at 88% 18%, rgba(139, 212, 125, 0.2), transparent 28%),
        linear-gradient(135deg, #0c2f28 0%, #246b50 58%, #8bd47d 100%);
}

.public-template-clasica[data-public-theme="dark"] .visual-feature-grid .public-availability-card-contact {
    border-color: #2e8078;
    background:
        radial-gradient(circle at 88% 18%, rgba(120, 219, 213, 0.2), transparent 28%),
        linear-gradient(135deg, #0d2f35 0%, #1f6f65 58%, #81d5c8 100%);
}

.public-template-clasica[data-public-theme="dark"] :is(.public-availability-card h3, .public-availability-card p, .public-availability-card-spaces span, .public-availability-card-spaces strong, .public-category-card-head strong) {
    color: #ffffff !important;
}

.public-template-clasica[data-public-theme="dark"] .public-category-price {
    color: #72d8e8;
}

.public-template-clasica[data-public-theme="dark"] .public-period-selector button {
    border-color: #247f78;
    background: #164f48;
    color: #f8ffff;
}

.public-template-clasica[data-public-theme="dark"] .public-period-selector button:is(.is-active, [aria-pressed="true"]) {
    border-color: #8bd47d;
    background: #8bd47d;
    color: #061b18;
}

.public-template-clasica[data-public-theme="dark"] .public-vehicle-category-grid article:nth-child(3n + 1) {
    border-color: #247f94;
    background:
        radial-gradient(circle at 96% 8%, rgba(110, 215, 232, 0.18), transparent 32%),
        linear-gradient(145deg, #09252d 0%, #0e3d4a 54%, #155c6b 100%);
}

.public-template-clasica[data-public-theme="dark"] .public-vehicle-category-grid article:nth-child(3n + 2) {
    border-color: #347b5b;
    background:
        radial-gradient(circle at 96% 8%, rgba(139, 212, 125, 0.16), transparent 32%),
        linear-gradient(145deg, #0d251f 0%, #173e31 54%, #255b42 100%);
}

.public-template-clasica[data-public-theme="dark"] .public-vehicle-category-grid article:nth-child(3n) {
    border-color: #2e8078;
    background:
        radial-gradient(circle at 96% 8%, rgba(129, 213, 200, 0.16), transparent 32%),
        linear-gradient(145deg, #0c2529 0%, #183f42 54%, #255f5a 100%);
}

.public-template-clasica[data-public-theme="dark"] :is(.visual-chip-wall span, .visual-calculator, .visual-result, .public-calculation-result-panel) {
    border-color: rgba(110, 215, 232, 0.24);
    background: #10272d;
    color: #72d8e8;
}

.public-template-clasica[data-public-theme="dark"] :is(.visual-primary, .visual-nav-cta, .public-banner-primary, .public-contact-submit) {
    border-color: rgba(110, 215, 232, 0.52);
    background: linear-gradient(135deg, #72d8e8 0%, #2f9b78 58%, #0c5b73 100%);
    color: #061b20;
}

.public-template-clasica[data-public-theme="dark"] .visual-secondary {
    border-color: rgba(139, 212, 125, 0.5);
    background: rgba(139, 212, 125, 0.13);
    color: #dfffd6;
}

.public-template-clasica[data-public-theme="dark"] .visual-banner,
.public-template-clasica[data-public-theme="dark"] .visual-contact {
    background:
        radial-gradient(circle at 92% 8%, rgba(139, 212, 125, 0.16), transparent 32%),
        linear-gradient(135deg, #082b36 0%, #103f35 100%);
    color: #ffffff;
}

.public-template-clasica[data-public-theme="dark"] .visual-footer {
    background: #061d25;
    color: #e9fbff;
}

.public-template-clasica[data-public-theme="dark"] .visual-comments .public-reference-card::before {
    background: #72d8e8;
}

.public-template-clasica[data-public-theme="dark"] .visual-comments .public-reference-control {
    border-color: rgba(110, 215, 232, 0.24);
    background: #10272d;
    color: #72d8e8;
}

.public-template-compacta.public-design-visual[data-public-theme="dark"] {
    background: #1c0d13;
    color: #fff1f5;
}

.public-template-compacta[data-public-theme="dark"] .visual-media::after {
    background:
        linear-gradient(90deg, rgba(28, 13, 19, 0.94), rgba(88, 27, 45, 0.72) 58%, rgba(169, 72, 93, 0.28)),
        linear-gradient(180deg, rgba(245, 159, 169, 0.12), rgba(240, 181, 108, 0.08));
}

.public-template-compacta[data-public-theme="dark"] :is(.visual-intro, .visual-vehicles, .visual-models, .visual-rates, .visual-location, .visual-gallery, .visual-blog, .visual-comments) {
    background: #1c0d13;
    color: #fff1f5;
}

.public-template-compacta[data-public-theme="dark"] .visual-availability {
    background:
        radial-gradient(circle at 96% 0%, rgba(245, 159, 169, 0.16), transparent 30%),
        linear-gradient(135deg, #1c0d13 0%, #30111c 100%);
}

.public-template-compacta[data-public-theme="dark"] .visual-calculation {
    background:
        radial-gradient(circle at 8% 8%, rgba(240, 181, 108, 0.14), transparent 34%),
        linear-gradient(135deg, #241016 0%, #3a1722 100%);
}

.public-template-compacta[data-public-theme="dark"] :is(.visual-intro h2, .visual-vehicles h2, .visual-models h2, .visual-rates h2, .visual-location h2, .public-section-head h2) {
    color: #fff8f9;
}

.public-template-compacta[data-public-theme="dark"] :is(.visual-feature-grid article, .visual-feature-grid a, .visual-rate-grid article, .visual-model-grid article, .public-vehicle-category-grid article, .public-category-note, .public-blog-grid article, .public-blog-card, .public-blog-entry, .public-reference-card) {
    border-color: rgba(245, 159, 169, 0.24);
    background:
        radial-gradient(circle at 100% 0%, rgba(245, 159, 169, 0.12), transparent 32%),
        #2a121a;
    color: #fff1f5;
    box-shadow: 0 16px 38px rgba(0, 0, 0, 0.28);
}

.public-template-compacta[data-public-theme="dark"] :is(.public-availability-card h3, .public-availability-card p, .public-availability-card-spaces span, .public-availability-card-spaces strong, .public-category-card-head strong) {
    color: #fff8f9 !important;
}

.public-template-compacta[data-public-theme="dark"] .public-category-price {
    color: #ff9faf;
}

.public-template-compacta[data-public-theme="dark"] .visual-feature-grid .public-availability-card-spaces {
    border-color: #b44863;
    background:
        radial-gradient(circle at 88% 18%, rgba(255, 214, 205, 0.16), transparent 28%),
        linear-gradient(135deg, #3a1722 0%, #83304a 58%, #d95d7a 100%);
}

.public-template-compacta[data-public-theme="dark"] .visual-feature-grid .public-availability-card-address {
    border-color: #a86a34;
    background:
        radial-gradient(circle at 88% 18%, rgba(240, 181, 108, 0.16), transparent 28%),
        linear-gradient(135deg, #341c12 0%, #7b4520 58%, #c7833b 100%);
}

.public-template-compacta[data-public-theme="dark"] .visual-feature-grid .public-availability-card-contact {
    border-color: #834b90;
    background:
        radial-gradient(circle at 88% 18%, rgba(213, 154, 219, 0.16), transparent 28%),
        linear-gradient(135deg, #27122f 0%, #5c2b68 58%, #9e5ca5 100%);
}

.public-template-compacta[data-public-theme="dark"] .public-period-selector button {
    border-color: #a9485d;
    background: #7c2a41;
    color: #fff8f9;
}

.public-template-compacta[data-public-theme="dark"] .public-period-selector button:is(.is-active, [aria-pressed="true"]) {
    border-color: #f0b56c;
    background: #f0b56c;
    color: #351722;
}

.public-template-compacta[data-public-theme="dark"] .public-vehicle-category-grid article:nth-child(3n + 1) {
    border-color: #b44863;
    background:
        radial-gradient(circle at 96% 8%, rgba(245, 159, 169, 0.16), transparent 32%),
        linear-gradient(145deg, #2a121a 0%, #421726 54%, #662239 100%);
}

.public-template-compacta[data-public-theme="dark"] .public-vehicle-category-grid article:nth-child(3n + 2) {
    border-color: #a86a34;
    background:
        radial-gradient(circle at 96% 8%, rgba(240, 181, 108, 0.14), transparent 32%),
        linear-gradient(145deg, #2b1810 0%, #442714 54%, #68401f 100%);
}

.public-template-compacta[data-public-theme="dark"] .public-vehicle-category-grid article:nth-child(3n) {
    border-color: #834b90;
    background:
        radial-gradient(circle at 96% 8%, rgba(213, 154, 219, 0.14), transparent 32%),
        linear-gradient(145deg, #24122b 0%, #3d1f49 54%, #5e3270 100%);
}

.public-template-compacta[data-public-theme="dark"] :is(.visual-chip-wall span, .visual-calculator, .visual-result, .public-calculation-result-panel) {
    border-color: rgba(245, 159, 169, 0.24);
    background: #2a121a;
    color: #ff9faf;
}

.public-template-compacta[data-public-theme="dark"] :is(.visual-primary, .visual-nav-cta, .public-banner-primary, .public-contact-submit) {
    border-color: rgba(245, 159, 169, 0.52);
    background: linear-gradient(135deg, #ffb3bd 0%, #d95d7a 52%, #8e243d 100%);
    color: #1c0d13;
}

.public-template-compacta[data-public-theme="dark"] .visual-secondary {
    border-color: rgba(240, 181, 108, 0.5);
    background: rgba(240, 181, 108, 0.13);
    color: #ffe6c2;
}

.public-template-compacta[data-public-theme="dark"] .visual-location {
    background:
        radial-gradient(circle at 8% 14%, rgba(245, 159, 169, 0.16), transparent 30%),
        linear-gradient(135deg, #241016 0%, #1c0d13 100%);
}

.public-template-compacta[data-public-theme="dark"] :is(.visual-map, .visual-location .public-design-map-fallback) {
    border-color: rgba(245, 159, 169, 0.24);
    background: #2a121a;
}

.public-template-compacta[data-public-theme="dark"] .visual-banner,
.public-template-compacta[data-public-theme="dark"] .visual-contact {
    background:
        radial-gradient(circle at 92% 8%, rgba(245, 159, 169, 0.16), transparent 32%),
        linear-gradient(135deg, #5b1e32 0%, #1c0d13 100%);
    color: #fff8f9;
}

.public-template-compacta[data-public-theme="dark"] .visual-footer {
    background: #16080d;
    color: rgba(255, 241, 245, 0.82);
}

.public-template-compacta[data-public-theme="dark"] .visual-comments .public-reference-card::before {
    background: #d95d7a;
}

.public-template-compacta[data-public-theme="dark"] .visual-comments .public-reference-control {
    border-color: rgba(245, 159, 169, 0.24);
    background: #2a121a;
    color: #ff9faf;
}

.public-design-urban[data-public-theme="dark"] :is(.urban-band, .urban-models, .urban-rates, .urban-location, .urban-gallery, .urban-blog, .urban-comments, .urban-contact) {
    background:
        radial-gradient(circle at 88% 8%, rgba(232, 111, 50, 0.18), transparent 32%),
        #1b0f0b;
    color: #fff0df;
}

.public-design-urban[data-public-theme="dark"] .urban-band {
    background:
        radial-gradient(circle at 92% 14%, rgba(242, 195, 95, 0.16), transparent 30%),
        linear-gradient(135deg, #5c2112 0%, #1b0f0b 100%);
}

.public-design-urban[data-public-theme="dark"] .urban-models {
    background:
        radial-gradient(circle at 12% 0%, rgba(232, 111, 50, 0.24), transparent 34%),
        linear-gradient(160deg, #1b0f0b 0%, #5c2112 100%);
}

.public-design-urban[data-public-theme="dark"] .urban-location {
    background:
        radial-gradient(circle at 12% 16%, rgba(242, 195, 95, 0.16), transparent 28%),
        linear-gradient(135deg, #2a120c 0%, #6a2513 100%);
}

.public-design-urban[data-public-theme="dark"] :is(.urban-model-grid article, .urban-rate-grid article, .public-reference-card, .public-blog-card, .public-category-note, .public-discount-card, .public-config-needed, .public-calculation-mode, .public-cyclic-field, .public-calculation-result-panel, .public-calculation-facts article) {
    border-color: rgba(242, 195, 95, 0.26);
    background: #2a120c;
    color: #fff0df;
}

.public-design-urban[data-public-theme="dark"] :is(.urban-model-grid article strong, .urban-rate-grid article strong, .public-blog-grid strong, .public-reference-card strong, .public-category-card-head strong) {
    color: #fff0df !important;
}

.public-design-urban[data-public-theme="dark"] :is(.public-blog-grid p, .public-blog-grid small, .public-reference-card p, .public-reference-location, .public-vehicle-category-grid p, .public-category-note) {
    color: rgba(255, 240, 223, 0.76) !important;
}

.public-design-urban[data-public-theme="dark"] .public-category-price {
    color: #f7cf72;
}

.public-design-urban[data-public-theme="dark"] :is(.public-period-selector button, .public-calculation-mode label, .public-cyclic-day, .urban-chip-rail span) {
    border-color: rgba(242, 195, 95, 0.3);
    background: #3a1a10;
    color: #fff0df;
}

.public-design-urban[data-public-theme="dark"] :is(.public-period-selector button.is-active, .public-period-selector button[aria-pressed="true"], .public-calculation-mode label:has(input:checked)) {
    border-color: #f2c35f;
    background: #f2c35f;
    color: #1b0f0b;
}

.public-design-urban[data-public-theme="dark"] :is(.visual-primary, .urban-primary, .urban-nav-cta, .public-banner-primary, .public-contact-submit, .public-price-grid button) {
    background: #e86f32;
    color: #1b0f0b;
}

.public-design-urban[data-public-theme="dark"] :is(.urban-secondary, .public-banner-secondary) {
    border-color: rgba(255, 240, 223, 0.28);
    background: rgba(255, 240, 223, 0.08);
    color: #fff0df;
}

.public-design-urban[data-public-theme="dark"] .urban-banner {
    background:
        radial-gradient(circle at 100% 50%, rgba(242, 195, 95, 0.2), transparent 28%),
        linear-gradient(135deg, #5c2112 0%, #1b0f0b 100%);
    color: #fff0df;
}

.public-design-urban[data-public-theme="dark"] :is(.urban-map, .public-design-map-fallback) {
    border-color: rgba(242, 195, 95, 0.3);
    background: #2a120c;
}

.public-design-urban[data-public-theme="dark"] :is(.public-price-grid input, .public-price-grid select, .public-price-grid .public-time24, .public-cyclic-grid .public-time24, .public-contact-form input, .public-contact-form textarea, .public-contact-form .country-picker-button, .public-contact-form .country-picker-menu) {
    border-color: rgba(242, 195, 95, 0.28);
    background: #1b0f0b;
    color: #fff0df;
}

.public-design-urban[data-public-theme="dark"] .public-time24-badge {
    border-color: rgba(242, 195, 95, 0.44);
    background: rgba(242, 195, 95, 0.14);
    color: #f7cf72;
}

.public-design-urban[data-public-theme="dark"] .public-calculation-facts article.public-discount-fact {
    border-color: #e86f32;
    background: linear-gradient(135deg, rgba(232, 111, 50, 0.28), rgba(42, 18, 12, 0.94));
    box-shadow: inset 4px 0 0 #e86f32;
}

.public-design-urban[data-public-theme="dark"] .public-calculation-facts article.public-discount-total-fact {
    border-color: #f2c35f;
    background: linear-gradient(135deg, rgba(242, 195, 95, 0.22), rgba(42, 18, 12, 0.94));
    box-shadow: inset 4px 0 0 #f2c35f;
}

.public-design-urban[data-public-theme="dark"] .public-price-detail :is(th, td).public-discount-column {
    background: rgba(232, 111, 50, 0.24);
    color: #f7cf72;
}

.public-design-urban[data-public-theme="dark"] .public-price-detail tr.is-total .public-discount-column {
    background: rgba(242, 195, 95, 0.18);
    color: #f2c35f;
}

.public-design-urban[data-public-theme="dark"] .urban-footer {
    background: #160b08;
    color: rgba(255, 240, 223, 0.78);
}

@media (max-width: 1120px) {
    .visual-hero-grid,
    .visual-location,
    .urban-hero-grid,
    .urban-band,
    .public-design-gallery,
    .public-design-blog,
    .public-design-banner,
    .urban-location,
    .map-hero-grid,
    .direct-grid,
    .direct-proof,
    .direct-lists,
    .direct-location {
        grid-template-columns: 1fr;
    }

    .urban-status {
        min-height: 300px;
    }

    .direct-card {
        position: static;
    }

    .public-design .public-price-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .public-footer-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .public-sticky-nav {
        align-items: flex-start;
        grid-template-columns: 1fr;
    }

    .public-sticky-links,
    .public-sticky-actions {
        width: 100%;
        justify-content: flex-start;
    }

    .public-sticky-links > a,
    .public-sticky-theme,
    .public-sticky-cta {
        flex: 1 1 130px;
    }

    .visual-nav,
    .urban-nav,
    .map-topbar,
    .direct-nav,
    .public-design :is(.visual-footer, .urban-footer, .map-footer, .direct-footer) {
        align-items: flex-start;
        flex-direction: column;
    }

    .visual-nav > div,
    .urban-nav > div,
    .map-links {
        width: 100%;
    }

    .visual-copy h1,
    .urban-copy h1,
    .map-arrival-card h1,
    .direct-copy h1 {
        font-size: clamp(38px, 12vw, 52px);
    }

    .visual-copy p,
    .urban-copy p,
    .map-arrival-card p,
    .direct-copy p {
        font-size: 17px;
    }

    .public-design :is(.visual-stats, .urban-metrics, .map-stats, .direct-stats),
    .public-calculation-facts,
    .visual-feature-grid,
    .public-design .public-price-grid,
    .direct-calculator .public-date-time {
        grid-template-columns: 1fr;
    }

    .public-calculation-mode {
        display: grid;
        width: 100%;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .public-calculation-mode label {
        min-width: 0;
        padding-right: 8px;
        padding-left: 8px;
        white-space: normal;
        text-align: center;
    }

    .public-cyclic-field {
        padding: 14px;
    }

    .public-cyclic-grid {
        grid-template-columns: minmax(66px, 0.45fr) repeat(7, minmax(116px, 1fr));
    }

    .public-design :is(.visual-intro, .visual-vehicles, .visual-models, .visual-rates, .visual-location),
    .public-design-urban :is(.urban-band, .urban-models, .urban-rates, .urban-location),
    .public-design-map :is(.map-vehicles, .map-rates, .map-consult),
    .direct-proof,
    .public-contact-block,
    .public-design-gallery,
    .public-design-blog,
    .public-design-banner,
    .direct-lists,
    .direct-rates,
    .direct-location {
        padding-right: 16px;
        padding-left: 16px;
    }

    .public-design :is(.visual-map, .urban-map, .map-hero-canvas, .direct-map, .public-design-map-fallback) {
        min-height: 340px;
    }

    .public-contact-layout {
        grid-template-columns: 1fr;
    }

    .public-contact-head h2 {
        font-size: 38px;
        line-height: 1.08;
    }

    .public-contact-submit {
        width: 100%;
    }

    .public-design-actions,
    .public-design-actions a,
    .public-design-banner .public-design-actions,
    .public-design-banner .public-design-actions a,
    .public-design :is(.visual-primary, .visual-secondary, .visual-nav-cta, .urban-primary, .urban-secondary, .urban-nav-cta, .map-primary, .map-secondary, .direct-primary, .direct-nav-cta) {
        width: 100%;
    }

    .public-banner-actions {
        justify-content: stretch;
    }

    .public-footer-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .public-footer-bottom {
        justify-items: start;
        text-align: left;
    }
}

html:not([data-theme="dark"]) .app-shell :is(label, legend, .field-label-line, .entry-form label, .gastos-provider-form label, .parking-client-flags, .parking-client-picker-field, .parking-client-search-field, .rental-guarantee-picker-field, .cycle-days-field legend, .cycle-row-title, .variable-row-grid > span, th) {
    color: #000000;
}

html[data-theme="dark"] {
    --bg: #11181b;
    --surface: #202a2f;
    --surface-soft: #263238;
    --surface-strong: #304047;
    --ink: #f4f8f9;
    --muted: #f4f8f9;
    --muted-soft: #9fb1b8;
    --line: #425760;
    --line-strong: #5e737c;
    --border: #425760;
    --text: #f4f8f9;
    --sidebar: #2B2F33;
    --sidebar-soft: #374047;
    --sidebar-line: rgba(255, 255, 255, 0.12);
    --brand-alki: #005F6B;
    --brand-alki-soft: rgba(0, 95, 107, 0.3);
    --accent-teal: #005F6B;
    --accent-violet: #005F6B;
    --positive: #28b99f;
    --danger: #f0646a;
    --shadow-card: 0 1px 2px rgba(0, 0, 0, 0.28), 0 14px 34px rgba(0, 0, 0, 0.24);
    --shadow-lift: 0 20px 44px rgba(0, 0, 0, 0.42);
}

html[data-theme="dark"] body,
html[data-theme="dark"] .app-shell,
html[data-theme="dark"] .content {
    background: var(--bg);
    color: var(--ink);
}

html[data-theme="dark"] .app-shell :is(.summary-band, .module-hero, .panel, .kpi-card, .module-card, .year-form, .month-form, .module-tabs, .service-billing-panel, .parking-config-list, .parking-config-item, .tools-toggle-card, .employee-row, .record-modal-panel, .variable-dialog-panel, .rental-unit-entry-section, .gastos-list-row, .gastos-provider-row, .gastos-provider-picker-option, .gastos-list-panel) {
    border-color: var(--line);
    background: var(--surface);
    color: var(--ink);
    box-shadow: var(--shadow-card);
}

html[data-theme="dark"] .app-shell :is(.topbar h1, .topbar-greeting strong, .panel h2, .module-hero h2, .summary-copy h2, .record-modal-header h2, .kpi-card strong, .kpi-card b, .collapsible-heading, .variable-form-section h3, .variable-grid-heading h3, .rate-form-section h3, .parking-title-separator, .gastos-provider-modal-copy strong, td, .entry-form strong) {
    color: var(--ink);
}

html[data-theme="dark"] .app-shell :is(.topbar-greeting, .year-form label, .month-form label, .kpi-card span, .summary-filter-form label, .entry-form label, .gastos-provider-form label, .parking-client-flags, .parking-client-picker-field, .parking-client-search-field, .rental-guarantee-picker-field, .cycle-days-field legend, .cycle-row-title, .variable-row-grid > span, .field-label-line, legend, th, small, .muted, .gastos-provider-modal-copy span) {
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .vehicle-period-rate.is-invalid small {
    color: var(--danger);
}

html[data-theme="dark"] .app-shell :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea, .search-input, .money-prefix-field, .entry-form .cycle-days-field, .country-picker-button, .location-country-button, .parking-client-picker-button, .rental-broker-open, .rental-guarantee-picker-button, .rental-unit-table-field, .gastos-provider-picker-open, .gastos-provider-form input, .gastos-provider-form select) {
    border-color: var(--line-strong);
    background: #121a1e;
    color: var(--ink);
    box-shadow: none;
}

html[data-theme="dark"] .app-shell :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea, .search-input, .country-picker-button, .location-country-button, .parking-client-picker-button, .rental-broker-open, .rental-guarantee-picker-button, .gastos-provider-picker-open):focus,
html[data-theme="dark"] .app-shell :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea, .search-input, .country-picker-button, .location-country-button, .parking-client-picker-button, .rental-broker-open, .rental-guarantee-picker-button, .gastos-provider-picker-open):focus-visible,
html[data-theme="dark"] .app-shell .money-prefix-field:focus-within {
    border-color: var(--brand-alki);
    outline: 3px solid rgba(0, 95, 107, 0.32);
}

html[data-theme="dark"] .app-shell .location-social-field > input[aria-invalid="true"] {
    border-color: var(--danger);
    box-shadow: 0 0 0 3px rgba(240, 100, 106, 0.18);
}

html[data-theme="dark"] .app-shell .variables-shell :is(input:not([type="hidden"]), select, textarea, button)[aria-invalid="true"] {
    border-color: var(--danger);
    box-shadow: 0 0 0 3px rgba(240, 100, 106, 0.2);
}

html[data-theme="dark"] .app-shell :is(input, textarea, .search-input)::placeholder {
    color: #9aaeb6;
    opacity: 1;
}

html[data-theme="dark"] .app-shell :is(select.is-placeholder, .entry-form select.is-placeholder, .entry-form select.is-placeholder option) {
    color: var(--muted-soft);
}

html[data-theme="dark"] .app-shell option {
    background: #121a1e;
    color: var(--ink);
}

html[data-theme="dark"] .app-shell .variable-row-grid-spaces:not(.is-rental-units) input[name="espacio_nombre"],
html[data-theme="dark"] .app-shell .variable-row-grid-spaces:not(.is-rental-units) [data-space-entry-field],
html[data-theme="dark"] .app-shell .variable-row-grid-spaces:not(.is-rental-units) [data-space-zone-field],
html[data-theme="dark"] .app-shell .variable-row-grid-spaces:not(.is-rental-units) [data-space-floor-field] {
    border-color: #48606a;
    background: #101a1f;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .space-vehicle-column {
    border-color: #324a53;
    background: #17262c;
    color: #c7d4d8;
}

html[data-theme="dark"] .app-shell .space-vehicle-column.is-selected {
    border-color: #0c7d89;
    background: #0c6f79;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .space-vehicle-column:hover {
    border-color: #1395a3;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .variable-increment-panel .increment-mode-option {
    border-color: #48606a;
    background: #101a1f;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .variable-increment-panel .increment-mode-option:has(input:checked) {
    border-color: #0c7d89;
    background: #102f35;
}

html[data-theme="dark"] .app-shell .variable-increment-panel .increment-mode-option strong,
html[data-theme="dark"] .app-shell .variable-increment-panel .increment-example-row strong,
html[data-theme="dark"] .app-shell .variable-increment-panel .increment-ipc-summary strong {
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .variable-increment-panel :is(.increment-mode-option small, .increment-example-row span, .increment-example-empty, .increment-source) {
    color: #c7d4d8;
}

html[data-theme="dark"] .app-shell .variable-increment-panel .increment-example {
    border-color: #48606a;
    background: #101a1f;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .variable-increment-panel .increment-example-row {
    border-color: #324a53;
    background: #17262c;
}

html[data-theme="dark"] .app-shell .variable-increment-panel .increment-example-row span:last-child {
    color: #79e0d1;
}

html[data-theme="dark"] .app-shell .variable-increment-panel .increment-ipc-list span {
    border-color: #0c6f79;
    background: #102f35;
    color: #79e0d1;
}

html[data-theme="dark"] .app-shell :is(input:disabled, select:disabled, textarea:disabled, button:disabled, .entry-form input.is-client-locked, .entry-form .country-picker.is-client-locked .country-picker-button) {
    border-color: #35464d;
    background: #1a2428;
    color: #7f929a;
    opacity: 1;
    cursor: not-allowed;
}

html[data-theme="dark"] .app-shell :is(.money-prefix-field > span, .percentage-symbol) {
    color: var(--ink);
}

html[data-theme="dark"] .app-shell .rental-guarantee-picker-button::after,
html[data-theme="dark"] .app-shell .rental-broker-open::after {
    border-color: var(--muted);
}

html[data-theme="dark"] .app-shell .module-tabs {
    background: #202a2f;
}

html[data-theme="dark"] .app-shell .module-tabs a {
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .module-tabs a:hover {
    background: #29383e;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .module-tabs a.is-active {
    background: var(--brand-alki);
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .collapsible-summary {
    border-color: #48606a;
    background: #27353b;
    color: var(--ink);
}

html[data-theme="dark"] .app-shell .collapsible-panel[open] > .collapsible-summary {
    border-color: rgba(0, 95, 107, 0.72);
    background: #183134;
    box-shadow: inset 4px 0 0 var(--brand-alki);
}

html[data-theme="dark"] .app-shell .collapsible-panel:not([open]) > .collapsible-summary {
    background: #27353b;
}

html[data-theme="dark"] .app-shell .collapsible-panel[open] > .collapsible-summary .collapsible-heading {
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .collapsible-indicator,
html[data-theme="dark"] .app-shell .record-modal-close,
html[data-theme="dark"] .app-shell .sidebar-toggle {
    border-color: #526b75;
    background: #172126;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .record-modal-close {
    border-color: rgba(255, 255, 255, 0.28);
    background: var(--danger);
    color: #ffffff;
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.32);
}

html[data-theme="dark"] .app-shell .record-modal-close:hover,
html[data-theme="dark"] .app-shell .record-modal-close:focus-visible {
    background: #ff6b73;
    color: #ffffff;
    outline: none;
}

html[data-theme="dark"] .app-shell .collapsible-panel .collapsible-panel,
html[data-theme="dark"] .app-shell .collapsible-panel .collapsible-panel > .collapsible-summary,
html[data-theme="dark"] .app-shell .collapsible-panel .collapsible-panel:not([open]) > .collapsible-summary {
    border-color: #725a32;
    background: #2b261c;
}

html[data-theme="dark"] .app-shell .collapsible-panel .collapsible-panel[open] > .collapsible-summary {
    border-color: rgba(230, 169, 75, 0.58);
    background: #3b2f1c;
    box-shadow: inset 4px 0 0 #d99b36;
}

html[data-theme="dark"] .app-shell .collapsible-panel .collapsible-panel[open] > .collapsible-summary .collapsible-heading,
html[data-theme="dark"] .app-shell .collapsible-panel .collapsible-panel > .collapsible-summary .collapsible-indicator {
    color: #ffd18a;
}

html[data-theme="dark"] .app-shell :is(.table-wrap, table, .country-picker-menu, .location-country-menu, .rental-broker-menu, .rental-guarantee-picker-menu, .parking-client-results) {
    border-color: var(--line);
    background: #202a2f;
    color: var(--ink);
    box-shadow: var(--shadow-card);
}

html[data-theme="dark"] .app-shell :is(th, .availability-table th, .availability-next-table th, .ipc-view-table th) {
    background: #2a383e;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell :is(td, th) {
    border-bottom-color: #364a52;
}

html[data-theme="dark"] .app-shell tbody tr:hover {
    background: #29383e;
}

html[data-theme="dark"] .app-shell :is(.country-picker-option, .location-country-option, .rental-broker-option, .rental-guarantee-option, .parking-client-result) {
    border-color: transparent;
    background: #172126;
    color: var(--ink);
}

html[data-theme="dark"] .app-shell :is(.country-picker-option:hover, .country-picker-option.is-selected, .location-country-option:hover, .location-country-option.is-selected, .rental-broker-option:hover, .rental-broker-option:focus-visible, .rental-guarantee-option:hover, .rental-guarantee-option:focus-visible, .parking-client-result:hover) {
    border-color: #526b75;
    background: #29383e;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell :is(.rental-broker-option.is-selected, .rental-broker-option[aria-pressed="true"], .rental-guarantee-option.is-selected, .rental-guarantee-option[aria-pressed="true"]) {
    border-color: var(--brand-alki);
    background: rgba(0, 95, 107, 0.35);
    color: #ffffff;
}

html[data-theme="dark"] .app-shell :is(.rental-broker-option.is-selected, .rental-broker-option[aria-pressed="true"], .rental-guarantee-option.is-selected, .rental-guarantee-option[aria-pressed="true"])::after {
    background: var(--brand-alki);
}

html[data-theme="dark"] .app-shell .parking-client-type-toggle {
    border-color: var(--line);
    background: #172126;
}

html[data-theme="dark"] .app-shell .parking-client-type-toggle button,
html[data-theme="dark"] .app-shell .parking-client-check {
    border-color: var(--line-strong);
    background: #121a1e;
    color: var(--muted);
}

html[data-theme="dark"] .app-shell .parking-client-type-toggle button.is-active,
html[data-theme="dark"] .app-shell .parking-client-type-toggle button:focus-visible,
html[data-theme="dark"] .app-shell .parking-client-check:has(input:checked) {
    background: var(--brand-alki);
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .parking-client-list-item {
    border-color: var(--line);
    background: #121a1e;
    color: var(--ink);
}

html[data-theme="dark"] .app-shell .contact-record-picker-filters select {
    border-color: var(--line);
    background: #121a1e;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .parking-client-list-item:hover,
html[data-theme="dark"] .app-shell .parking-client-list-item:focus-visible {
    border-color: #526b75;
    background: #29383e;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .contact-record-picker-option.is-selected,
html[data-theme="dark"] .app-shell .contact-record-picker-option[aria-pressed="true"] {
    border-color: #69d2da;
    background: #17363c;
    color: #ffffff;
    box-shadow: inset 4px 0 0 #69d2da;
}

html[data-theme="dark"] .app-shell :is(.parking-record-picker-value, .contact-record-picker-value) small {
    color: #9eb5bb !important;
}

html[data-theme="dark"] .app-shell :is(.parking-record-picker-value, .contact-record-picker-value) strong {
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .contact-record-picker-overdue.is-overdue strong {
    color: var(--danger);
}

html[data-theme="dark"] .app-shell .parking-client-list-item .parking-client-list-name {
    color: #ffffff !important;
}

html[data-theme="dark"] .app-shell .parking-client-list-item .parking-client-list-meta {
    color: var(--muted) !important;
}

html[data-theme="dark"] .app-shell .parking-client-list-item:hover .parking-client-list-meta,
html[data-theme="dark"] .app-shell .parking-client-list-item:focus-visible .parking-client-list-meta {
    color: #d8e5e9 !important;
}

html[data-theme="dark"] .app-shell :is(.entry-form button:not(.rental-broker-open):not(.rental-broker-option):not(.rental-guarantee-picker-button):not(.rental-guarantee-option):not(.text-action-link):not(.gastos-link-button):not(.map-text-link):not(.mini-button):not(.cyclic-help-button):not(.payment-file-clear):not(.country-picker-button):not(.location-country-button):not(.parking-client-picker-button):not(.balance-rule-open), .variables-shell > button[type="submit"], .button-primary, .mini-button.edit) {
    background: var(--brand-alki);
    color: #ffffff;
    box-shadow: none;
}

html[data-theme="dark"] .app-shell :is(.button-secondary, .entry-form .text-action-link, .entry-form .gastos-link-button, .entry-form .map-text-link, .entry-form .floor-list-link, .entry-form .ipc-view-link) {
    color: var(--link-blue-dark);
}

html[data-theme="dark"] .app-shell .entry-form .map-text-link {
    background: transparent;
    box-shadow: none;
}

html[data-theme="dark"] .app-shell .entry-form .gastos-link-button {
    background: transparent;
    box-shadow: none;
    text-decoration-color: transparent;
    text-underline-offset: 3px;
}

html[data-theme="dark"] .app-shell .entry-form .gastos-link-button:hover {
    background: transparent;
    text-decoration-color: currentColor;
}

html[data-theme="dark"] .app-shell .entry-form .gastos-link-button:focus-visible {
    background: transparent;
    outline: 2px solid rgba(124, 200, 255, 0.72);
    outline-offset: 3px;
    text-decoration: none;
}

html[data-theme="dark"] .app-shell :is(.notice, .notice-ok, .notice-error) {
    color: var(--ink);
}

html[data-theme="dark"] .app-shell .notice-ok {
    border-color: rgba(40, 185, 159, 0.42);
    background: rgba(40, 185, 159, 0.15);
}

html[data-theme="dark"] .app-shell .notice-error {
    border-color: rgba(240, 100, 106, 0.46);
    background: rgba(240, 100, 106, 0.16);
}

html[data-theme="dark"] .app-shell .public-page-builder {
    color: var(--ink);
}

html[data-theme="dark"] .app-shell :is(.public-template-option, .public-block-option, .public-builder-data, .public-block-editor, .public-config-disclosure) {
    border-color: #526a73;
    background: #162126;
    color: var(--ink);
    box-shadow: none;
}

html[data-theme="dark"] .app-shell .public-blog-selector-option {
    border-color: #526a73;
    background: #101a1f;
    color: #f4f8f9;
}

html[data-theme="dark"] .app-shell .public-blog-selector-option.is-active {
    border-color: #7bd8e2;
    background: #17353a;
}

html[data-theme="dark"] .app-shell :is(.public-template-option:hover, .public-template-option:focus-within, .public-block-option:hover, .public-block-option:focus-within) {
    border-color: #78cbd5;
    background: #1b2b31;
}

html[data-theme="dark"] .app-shell .public-template-option.is-selected {
    border-color: #7bd8e2;
    background: #17353a;
    box-shadow: 0 0 0 2px rgba(123, 216, 226, 0.18);
}

html[data-theme="dark"] .app-shell .sidebar {
    border-right-color: rgba(0, 0, 0, 0.08);
    background: var(--sidebar);
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .brand {
    border-color: rgba(255, 255, 255, 0.14);
    background: #465057;
    color: #ffffff;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.22);
}

html[data-theme="dark"] .app-shell :is(.nav-link, .brand-sys) {
    color: #e8eef0;
}

html[data-theme="dark"] .app-shell .public-block-option.is-enabled:not(.is-editing) {
    border-color: #526a73;
    background: #162126;
    box-shadow: none;
}

html[data-theme="dark"] .app-shell .public-block-option.is-disabled {
    background: #141d21;
    opacity: 0.7;
}

html[data-theme="dark"] .app-shell .public-block-option.is-editing {
    border-color: #92edf5;
    background: #087985;
    box-shadow: 0 0 0 3px rgba(146, 237, 245, 0.2);
}

html[data-theme="dark"] .app-shell :is(.public-template-copy strong, .public-block-picker-head strong, .public-block-option strong, .public-builder-data strong, .public-block-editor h3) {
    color: #ffffff;
}

html[data-theme="dark"] .app-shell :is(.public-template-copy small, .public-block-option small, .public-builder-data small, .public-block-editor p) {
    color: #c3d5dc;
}

html[data-theme="dark"] .app-shell .public-blog-editor-item {
    border-color: #526a73;
    background: #101a1f;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .public-blog-entry-selector {
    border-color: #526a73;
    background: #101a1f;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .public-blog-selector-option {
    border-color: #526a73;
    background: #132329;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .public-blog-selector-option.is-active {
    border-color: #7bd8e2;
    background: #12383d;
    box-shadow: 0 0 0 2px rgba(123, 216, 226, 0.2);
}

html[data-theme="dark"] .app-shell .public-blog-entry-selector > strong,
html[data-theme="dark"] .app-shell .public-blog-selector-option strong,
html[data-theme="dark"] .app-shell .public-blog-editor-item-head strong,
html[data-theme="dark"] .app-shell .public-blog-editor-item label {
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .public-blog-selector-option small,
html[data-theme="dark"] .app-shell .public-blog-entry-selector > small,
html[data-theme="dark"] .app-shell .public-blog-editor-item small {
    color: #c3d5dc;
}

html[data-theme="dark"] .app-shell .public-blog-editor :is(input, textarea) {
    border-color: #526a73;
    background: #0f171b;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .public-blog-editor :is(input, textarea)::placeholder {
    color: #9bb0b8;
}

html[data-theme="dark"] .app-shell .public-blog-format-button {
    border-color: #526a73;
    background: #15282e;
    color: #f4f8f9;
}

html[data-theme="dark"] .app-shell .public-blog-format-button:hover,
html[data-theme="dark"] .app-shell .public-blog-format-button:focus-visible {
    border-color: #7bd8e2;
    background: #12383d;
}

html[data-theme="dark"] .app-shell .public-blog-image-field .logo-file-upload span {
    border-color: #78cbd5;
    background: #10282e;
    color: #8ae7ef;
}

html[data-theme="dark"] .app-shell .public-config-disclosure > summary {
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .public-config-disclosure > summary::after {
    background: #101a1f;
    color: #7bd8e2;
}

html[data-theme="dark"] .app-shell .public-config-disclosure[open] > summary {
    border-bottom-color: #526a73;
}

html[data-theme="dark"] .app-shell .public-block-editor[data-public-block-editor="portada"] label:has([name="pagina_web_imagen_hero"]) .logo-file-upload span {
    border-color: #78cbd5;
    background: #10282e;
    color: #8ae7ef;
}

html[data-theme="dark"] .app-shell :is(.public-block-drag-hint, .public-block-fixed-label, .public-block-visibility-toggle) {
    border-color: #526a73;
    background: #101a1f;
    color: #d7edf1;
}

html[data-theme="dark"] .app-shell .public-block-number {
    background: #263941;
    color: #c3d5dc;
}

html[data-theme="dark"] .app-shell .public-block-option.is-editing .public-block-number {
    background: #92edf5;
    color: #06252a;
}

html[data-theme="dark"] .app-shell .public-block-option.is-disabled .public-block-number {
    background: #31464e;
    color: #c3d5dc;
}

html[data-theme="dark"] .app-shell .public-builder-data span {
    color: #7bd8e2;
}

html[data-theme="dark"] .app-shell :is(.public-template-option input, .public-block-option input) {
    accent-color: #7bd8e2;
}

html[data-theme="dark"] .app-shell .public-template-preview {
    border-color: rgba(123, 216, 226, 0.24);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08), 0 14px 28px rgba(0, 0, 0, 0.24);
}

html[data-theme="dark"] .app-shell .public-template-option-clasica {
    --template-shadow: rgba(0, 0, 0, 0.34);
}

html[data-theme="dark"] .app-shell .public-builder-link-row input {
    border-color: rgba(255, 255, 255, 0.3);
    background: rgba(255, 255, 255, 0.12);
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .record-modal-backdrop {
    background: rgba(2, 7, 9, 0.78);
}

.parking-client-flags.has-client-switch > .field-label-line,
.parking-client-flags.has-client-switch .parking-client-change-link {
    transform: translateY(16px);
}

html[data-theme="dark"] .app-shell :is(
    label,
    legend,
    .field-label-line,
    .parking-client-flags,
    .parking-client-picker-field,
    .parking-client-search-field,
    .rental-guarantee-picker-field,
    .cycle-row-title,
    .availability-detail-item span,
    .availability-summary-card span,
    .availability-kpi-insight span,
    .availability-summary-card small,
    .availability-kpi-insight small,
    .availability-percent-label span,
    .availability-percent-label small,
    .availability-percent-value strong,
    .parking-client-list-meta,
    .rental-document-summary,
    .rental-document-requirements,
    .rental-guarantee-summary
) {
    color: #ffffff !important;
}

html[data-theme="dark"] .app-shell :is(.record-modal-form .record-linked-list, .record-modal-form .record-client-history) {
    border-color: #90a4ae;
    background: #e2eaee;
    color: #101820;
    box-shadow: inset 4px 0 0 #007e8f;
}

html[data-theme="dark"] .app-shell :is(.record-modal-form .record-linked-list, .record-modal-form .record-client-history) .field-label-line {
    color: #101820 !important;
}

html[data-theme="dark"] .app-shell .record-modal-form .record-linked-items {
    gap: 10px;
}

html[data-theme="dark"] .app-shell .record-modal-form .record-linked-item {
    border-color: #006f7c;
    background: #00717b;
    color: #ffffff;
    box-shadow: 0 1px 0 rgba(16, 24, 32, 0.18);
}

html[data-theme="dark"] .app-shell .record-modal-form .record-linked-item:hover,
html[data-theme="dark"] .app-shell .record-modal-form .record-linked-item:focus-visible {
    border-color: #004f59;
    background: #005f6b;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .record-modal-form .record-linked-item strong,
html[data-theme="dark"] .app-shell .record-modal-form .record-linked-item span {
    color: #ffffff !important;
}

html[data-theme="dark"] .app-shell .record-modal-form .record-linked-item span {
    opacity: 0.82;
}

html[data-theme="dark"] .app-shell .record-client-history-note {
    color: #101820;
}

html[data-theme="dark"] .app-shell .record-client-history-note span {
    color: #101820 !important;
}

html:not([data-theme="dark"]) .app-shell :is(
    label,
    legend,
    .field-label-line,
    .parking-client-flags,
    .parking-client-picker-field,
    .parking-client-search-field,
    .rental-guarantee-picker-field,
    .cycle-row-title,
    .availability-detail-item span,
    .availability-summary-card span,
    .availability-kpi-insight span,
    .parking-client-list-meta,
    .rental-document-summary,
    .rental-guarantee-summary
) {
    color: #000000;
}

html[data-theme="dark"] .app-shell :is(.record-row-button, .payment-row-button, tbody td a:not(.record-contact-icon), .parking-client-list-name, .text-action-link, .gastos-link-button, .map-text-link, .floor-list-link, .ipc-view-link, .parking-client-change-link, .availability-show-all-link) {
    color: var(--link-blue-dark) !important;
    font-weight: 800;
}

html:not([data-theme="dark"]) .app-shell :is(.record-row-button, .payment-row-button, tbody td a:not(.record-contact-icon), .parking-client-list-name, .text-action-link, .gastos-link-button, .map-text-link, .floor-list-link, .ipc-view-link, .parking-client-change-link, .availability-show-all-link) {
    color: var(--link-blue) !important;
    font-weight: 800;
}

html[data-theme="dark"] .app-shell .record-client-history-note .record-client-history-owner,
html:not([data-theme="dark"]) .app-shell .record-client-history-note .record-client-history-owner {
    color: #6b2108 !important;
}

html[data-theme="dark"] .app-shell .record-client-history-note .record-client-history-owner:hover,
html[data-theme="dark"] .app-shell .record-client-history-note .record-client-history-owner:focus-visible,
html:not([data-theme="dark"]) .app-shell .record-client-history-note .record-client-history-owner:hover,
html:not([data-theme="dark"]) .app-shell .record-client-history-note .record-client-history-owner:focus-visible {
    color: #451a03 !important;
}

html[data-theme="dark"] .app-shell .record-modal-panel {
    border-color: #5e737c;
    background: #1f2a2f;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .record-modal-form {
    gap: 16px;
}

html[data-theme="dark"] .app-shell .record-modal-actions .button,
html[data-theme="dark"] .app-shell .availability-detail-actions .button,
html[data-theme="dark"] .app-shell .availability-choice-actions .button {
    border: 1px solid #6f858e;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell :is(.button-neutral, .record-modal-actions .button-neutral, .availability-detail-actions .button-neutral) {
    border-color: #6f858e;
    background: #172126;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell :is(.button-neutral:hover, .record-modal-actions .button-neutral:hover, .availability-detail-actions .button-neutral:hover) {
    background: #26363d;
    color: #ffffff;
    filter: none;
}

html[data-theme="dark"] .app-shell :is(button:disabled, .button:disabled, .button.is-disabled) {
    color: #ffffff;
}

html[data-theme="dark"] .app-shell :is(select[data-occupancy-space-field], select[data-rental-unit-contract-select], select[data-rental-document-select]) {
    color: #ffffff;
    font-weight: 800;
}

html[data-theme="dark"] .app-shell .availability-detail-panel,
html[data-theme="dark"] .app-shell .availability-choice-panel,
html[data-theme="dark"] .app-shell .availability-kpi-panel {
    border-color: #5e737c;
    background: #1f2a2f;
}

html[data-theme="dark"] .app-shell .availability-detail-item,
html[data-theme="dark"] .app-shell .availability-summary-card,
html[data-theme="dark"] .app-shell .availability-kpi-insight,
html[data-theme="dark"] .app-shell .availability-percent-row,
html[data-theme="dark"] .app-shell .availability-next-table-wrap {
    border-color: #5e737c;
    background: #172126;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .availability-detail-item strong,
html[data-theme="dark"] .app-shell .availability-choice-copy,
html[data-theme="dark"] .app-shell .availability-next-table td,
html[data-theme="dark"] .app-shell .availability-next-table th,
html[data-theme="dark"] .app-shell .availability-kpi-section h3,
html[data-theme="dark"] .app-shell .availability-space-list :is(span, button) {
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .availability-next-table th {
    background: #26363d;
}

html[data-theme="dark"] .app-shell .payment-overdue-table :is(th:nth-child(5), td:nth-child(5)) {
    background: rgba(255, 115, 125, 0.18);
    color: #ff9aa2;
}

html[data-theme="dark"] .app-shell .availability-next-table td.is-space,
html[data-theme="dark"] .app-shell .availability-show-all-link {
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .availability-choice-list-wrap .field-label-line {
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .availability-choice-panel .availability-choice-item {
    border-color: #78cbd5;
    background: #10282e;
    color: #ffffff;
    box-shadow: inset 4px 0 0 #00a2b4;
}

html[data-theme="dark"] .app-shell .availability-choice-panel .availability-choice-item:hover,
html[data-theme="dark"] .app-shell .availability-choice-panel .availability-choice-item:focus-visible {
    border-color: #9be7dd;
    background: #12343a;
    color: #ffffff;
    filter: none;
    outline: 2px solid rgba(123, 216, 226, 0.34);
    outline-offset: 2px;
}

html[data-theme="dark"] .app-shell .availability-choice-panel .availability-choice-item strong {
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .availability-choice-panel .availability-choice-item span {
    color: #c3d5dc;
    opacity: 1;
}

html[data-theme="dark"] .app-shell .availability-percent-track {
    background: #0f171a;
}

html[data-theme="dark"] .app-shell .availability-percent-track span {
    background: var(--brand-alki);
}

html[data-theme="dark"] .app-shell .availability-space-list :is(span, button) {
    border-color: #5e737c;
    background: #172126;
}

html[data-theme="dark"] .app-shell .rental-document-dropdown,
html[data-theme="dark"] .app-shell .rental-guarantee-section {
    border-color: #5e737c;
    background: #172126;
}

html[data-theme="dark"] .app-shell .rental-document-summary {
    border-bottom-color: transparent;
    background: #27353b;
}

html[data-theme="dark"] .app-shell .rental-document-dropdown[open] > .rental-document-summary {
    border-bottom-color: rgba(0, 95, 107, 0.72);
    background: #183134;
    box-shadow: inset 4px 0 0 var(--brand-alki);
}

html[data-theme="dark"] .app-shell .rental-document-content,
html[data-theme="dark"] .app-shell .rental-guarantee-body {
    background: #172126;
}

html[data-theme="dark"] .app-shell .rental-document-requirements,
html[data-theme="dark"] .app-shell .rental-document-card,
html[data-theme="dark"] .app-shell .rental-document-card.is-complete,
html[data-theme="dark"] .app-shell .rental-document-card.is-incomplete {
    border-color: #5e737c;
    background: #1f2a2f;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .rental-document-toolbar select.is-complete,
html[data-theme="dark"] .app-shell .rental-document-toolbar select.is-incomplete {
    border-color: #5e737c;
    background: #121a1e;
    color: #ffffff;
}

/* Ajuste final de contraste: links azules y estados con color propio en modo oscuro. */
html[data-theme="dark"] .app-shell .kpi-card.tone-positive strong,
html[data-theme="dark"] .app-shell .mini-kpi.tone-positive strong {
    color: #65dfbe;
}

html[data-theme="dark"] .app-shell .kpi-card.tone-danger strong,
html[data-theme="dark"] .app-shell .mini-kpi.tone-danger strong {
    color: #ff737d;
}

html[data-theme="dark"] .app-shell .kpi-card.tone-blue strong {
    color: var(--link-blue-dark);
}

html[data-theme="dark"] .app-shell .kpi-card.tone-partial strong,
html[data-theme="dark"] .app-shell .mini-kpi.tone-partial strong {
    color: #d3b3ff;
}

html[data-theme="dark"] .app-shell .kpi-card.tone-strong strong {
    color: #9be7dd;
}

html[data-theme="dark"] .app-shell .kpi-card-map-button:hover strong,
html[data-theme="dark"] .app-shell .kpi-card-map-button:focus-visible strong {
    color: var(--link-blue-dark);
}

html:not([data-theme="dark"]) .app-shell .kpi-card-map-button:hover strong,
html:not([data-theme="dark"]) .app-shell .kpi-card-map-button:focus-visible strong {
    color: var(--link-blue);
}

html[data-theme="dark"] .app-shell .availability-table {
    background: #11191d;
    color: #f4f8f9;
}

html[data-theme="dark"] .app-shell .availability-table th {
    border-color: #40555e;
    background: #27363c;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .availability-table td {
    border-color: #40555e;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .availability-table :is(th:first-child, th:nth-child(2)) {
    background: #2b3a40;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .availability-table :is(td:first-child, td:nth-child(2)) {
    background: #172126;
}

html[data-theme="dark"] .app-shell .availability-table tbody td:first-child {
    color: var(--link-blue-dark);
    font-weight: 900;
}

html[data-theme="dark"] .app-shell .availability-space-button {
    color: var(--link-blue-dark);
}

html[data-theme="dark"] .app-shell .availability-space-button:hover,
html[data-theme="dark"] .app-shell .availability-space-button:focus-visible {
    border-color: #78cbd5;
    background: rgba(0, 126, 143, 0.24);
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .availability-table tbody tr:hover :is(td:first-child, td:nth-child(2)) {
    background: #223239;
}

html[data-theme="dark"] .app-shell .availability-table td[data-availability-slot] {
    background: #10191d;
}

html[data-theme="dark"] .app-shell .availability-action-cell:hover,
html[data-theme="dark"] .app-shell .availability-table td[data-availability-slot]:hover {
    background: #183033;
}

html[data-theme="dark"] .app-shell .availability-block-cell {
    background: rgba(255, 115, 125, 0.18);
    box-shadow:
        inset 0 2px 0 rgba(255, 115, 125, 0.58),
        inset 0 -2px 0 rgba(255, 115, 125, 0.58);
}

html[data-theme="dark"] .app-shell .availability-block-cell:hover {
    background: rgba(255, 115, 125, 0.26);
}

html[data-theme="dark"] .app-shell .availability-block-cell.is-partial {
    background: rgba(211, 179, 255, 0.17);
    box-shadow:
        inset 0 2px 0 rgba(211, 179, 255, 0.54),
        inset 0 -2px 0 rgba(211, 179, 255, 0.54);
}

html[data-theme="dark"] .app-shell .availability-block-cell.is-partial:hover {
    background: rgba(211, 179, 255, 0.25);
}

html[data-theme="dark"] .app-shell .availability-block-cell.is-block-start {
    border-left-color: #ff737d;
}

html[data-theme="dark"] .app-shell .availability-block-cell.is-block-end {
    border-right-color: #ff737d;
}

html[data-theme="dark"] .app-shell .availability-block-cell.is-partial.is-block-start {
    border-left-color: #d3b3ff;
}

html[data-theme="dark"] .app-shell .availability-block-cell.is-partial.is-block-end {
    border-right-color: #d3b3ff;
}

html[data-theme="dark"] .app-shell .availability-block-cell.is-entry-day::before {
    background: #65dfbe;
    color: #08201d;
}

html[data-theme="dark"] .app-shell .availability-block-cell.is-exit-day::after {
    background: #ff737d;
    color: #290b0f;
}

html[data-theme="dark"] .app-shell .availability-slot-button {
    width: 22px;
    height: 22px;
    border-radius: 7px;
    background: rgba(101, 223, 190, 0.18);
    color: #9af0d7;
}

html[data-theme="dark"] .app-shell .availability-action-cell:hover .availability-slot-button,
html[data-theme="dark"] .app-shell .availability-table td[data-availability-slot]:hover .availability-slot-button,
html[data-theme="dark"] .app-shell .availability-slot-button:hover {
    background: rgba(101, 223, 190, 0.3);
    box-shadow: 0 0 0 2px rgba(101, 223, 190, 0.28);
}

html[data-theme="dark"] .app-shell :is(.availability-cell.is-free, .availability-status.is-free, .availability-status.is-positive) {
    border: 1px solid rgba(101, 223, 190, 0.5);
    background: rgba(101, 223, 190, 0.18);
    color: #9af0d7;
}

html[data-theme="dark"] .app-shell :is(.availability-cell.is-occupied, .availability-status.is-occupied) {
    border: 1px solid rgba(255, 115, 125, 0.52);
    background: rgba(255, 115, 125, 0.2);
    color: #ff9da5;
}

html[data-theme="dark"] .app-shell :is(.availability-cell.is-partial, .availability-status.is-partial) {
    border: 1px solid rgba(211, 179, 255, 0.52);
    background: rgba(211, 179, 255, 0.18);
    color: #dec8ff;
}

html[data-theme="dark"] .app-shell .availability-table :is(th:first-child, td:first-child),
html[data-theme="dark"] .app-shell .availability-table :is(th:nth-child(2), td:nth-child(2)) {
    box-shadow: 1px 0 0 #40555e;
}

html[data-theme="dark"] .app-shell .availability-hour-heading {
    border-color: rgba(123, 216, 226, 0.28);
    background: #17353a;
    color: #9be7dd;
}

html[data-theme="dark"] .app-shell .availability-hour-table .availability-cell,
html[data-theme="dark"] .app-shell .availability-hour-table .availability-slot-button {
    width: 100%;
    height: 34px;
    border-radius: 8px;
}

html[data-theme="dark"] .app-shell .availability-hour-slot-button {
    border-color: rgba(101, 223, 190, 0.4);
    background: rgba(101, 223, 190, 0.14);
    color: #9af0d7;
}

html[data-theme="dark"] .app-shell .availability-hour-cell-action {
    background: rgba(101, 223, 190, 0.2);
}

html[data-theme="dark"] .app-shell .availability-hour-block {
    border-color: rgba(255, 115, 125, 0.44);
    box-shadow: inset 0 -2px 0 rgba(255, 115, 125, 0.14);
}

html[data-theme="dark"] .app-shell .availability-hour-block.is-partial {
    border-color: rgba(211, 179, 255, 0.46);
    box-shadow: inset 0 -2px 0 rgba(211, 179, 255, 0.14);
}

html[data-theme="dark"] .app-shell .availability-hour-table td[data-availability-slot] {
    background: #10191d;
}

html[data-theme="dark"] .app-shell .availability-hour-table td[data-availability-occupancy] {
    background: rgba(255, 115, 125, 0.08);
}

html[data-theme="dark"] .app-shell .availability-hour-table td[data-availability-status="Parcial"] {
    background: rgba(211, 179, 255, 0.08);
}

html[data-theme="dark"] .app-shell .availability-hour-table td[data-availability-slot]:hover .availability-hour-slot-button,
html[data-theme="dark"] .app-shell .availability-hour-slot-button:hover {
    border-color: rgba(101, 223, 190, 0.62);
    background: rgba(101, 223, 190, 0.24);
}

html[data-theme="dark"] .app-shell .availability-view-toggle {
    border-color: #748992;
    background: #dfe8ed;
}

html[data-theme="dark"] .app-shell .availability-view-toggle button {
    color: #101820;
}

html[data-theme="dark"] .app-shell .availability-view-toggle button.is-active {
    background: #007e8f;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .availability-block-cell {
    background: #e9b9c2;
    color: #16090d;
    box-shadow:
        inset 0 2px 0 rgba(121, 28, 42, 0.46),
        inset 0 -2px 0 rgba(121, 28, 42, 0.46);
}

html[data-theme="dark"] .app-shell .availability-block-cell:hover {
    background: #df9eac;
}

html[data-theme="dark"] .app-shell .availability-block-cell.is-partial {
    background: #d4c1ec;
    color: #160b28;
    box-shadow:
        inset 0 2px 0 rgba(91, 41, 138, 0.42),
        inset 0 -2px 0 rgba(91, 41, 138, 0.42);
}

html[data-theme="dark"] .app-shell .availability-block-cell.is-partial:hover {
    background: #c3abe3;
}

html[data-theme="dark"] .app-shell :is(.availability-cell.is-free, .availability-status.is-free, .availability-status.is-positive) {
    border-color: rgba(35, 113, 82, 0.46);
    background: #bbe7d2;
    color: #082019;
}

html[data-theme="dark"] .app-shell :is(.availability-cell.is-occupied, .availability-status.is-occupied) {
    border-color: rgba(121, 28, 42, 0.5);
    background: #e9b9c2;
    color: #16090d;
}

html[data-theme="dark"] .app-shell :is(.availability-cell.is-partial, .availability-status.is-partial) {
    border-color: rgba(91, 41, 138, 0.48);
    background: #d4c1ec;
    color: #160b28;
}

html[data-theme="dark"] .app-shell .availability-hour-table td[data-availability-status="Ocupado"] {
    background: #3d2a2f;
}

html[data-theme="dark"] .app-shell .availability-hour-table td[data-availability-status="Parcial"] {
    background: #342d43;
}

html[data-theme="dark"] .app-shell .availability-hour-block {
    border-color: rgba(121, 28, 42, 0.52);
    background: #e9b9c2;
    color: #16090d;
    box-shadow: inset 0 -2px 0 rgba(121, 28, 42, 0.18);
}

html[data-theme="dark"] .app-shell .availability-hour-block.is-partial {
    border-color: rgba(91, 41, 138, 0.5);
    background: #d4c1ec;
    color: #160b28;
    box-shadow: inset 0 -2px 0 rgba(91, 41, 138, 0.16);
}

html[data-theme="dark"] .app-shell .availability-hour-cell-action {
    background: rgba(8, 32, 25, 0.16);
    color: #082019;
}

html[data-theme="dark"] .app-shell .availability-action-cell.is-availability-selected,
html[data-theme="dark"] .app-shell .availability-table td.is-availability-selected,
html[data-theme="dark"] .app-shell .availability-table th.is-availability-selected {
    background: rgba(101, 223, 190, 0.24);
    box-shadow: inset 0 0 0 2px rgba(101, 223, 190, 0.58);
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .availability-action-cell.is-availability-anchor,
html[data-theme="dark"] .app-shell .availability-table td.is-availability-anchor,
html[data-theme="dark"] .app-shell .availability-table th.is-availability-anchor {
    background: rgba(124, 200, 255, 0.24);
    box-shadow: inset 0 0 0 3px rgba(124, 200, 255, 0.58);
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .availability-table td.is-availability-invalid,
html[data-theme="dark"] .app-shell .availability-table th.is-availability-invalid {
    background: rgba(255, 115, 125, 0.24);
    box-shadow: inset 0 0 0 2px rgba(255, 115, 125, 0.58);
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .availability-action-cell.is-availability-selected .availability-slot-button,
html[data-theme="dark"] .app-shell .availability-slot-button.is-availability-selected,
html[data-theme="dark"] .app-shell .availability-action-cell.is-availability-anchor .availability-slot-button,
html[data-theme="dark"] .app-shell .availability-slot-button.is-availability-anchor {
    background: #7cc8ff;
    color: #07161d;
}

html[data-theme="dark"] .app-shell .availability-action-cell.is-availability-invalid .availability-slot-button,
html[data-theme="dark"] .app-shell .availability-slot-button.is-availability-invalid {
    background: #ff737d;
    color: #290b0f;
}

html[data-theme="dark"] .app-shell .availability-space-list :is(span, button) {
    border-color: #5e737c;
    background: #172126;
    color: var(--link-blue-dark);
}

html[data-theme="dark"] .app-shell .availability-space-list .availability-space-item.is-free {
    border-color: rgba(101, 223, 190, 0.5);
    background: rgba(101, 223, 190, 0.16);
    color: #9af0d7;
}

html[data-theme="dark"] .app-shell .availability-space-list .availability-space-item.is-occupied {
    border-color: rgba(255, 115, 125, 0.52);
    background: rgba(255, 115, 125, 0.18);
    color: #ff9da5;
}

html[data-theme="dark"] .app-shell .availability-space-list .availability-space-item.is-partial {
    border-color: rgba(211, 179, 255, 0.52);
    background: rgba(211, 179, 255, 0.18);
    color: #dec8ff;
}

html[data-theme="dark"] .app-shell .availability-next-table td.is-space {
    color: var(--link-blue-dark);
}

/* Resumen: tablas oscuras legibles. */
html[data-theme="dark"] .app-shell .summary-month-panel {
    border-color: #435962;
    background: #172126;
}

html[data-theme="dark"] .app-shell .summary-month-table {
    background: #11191d;
}

html[data-theme="dark"] .app-shell .summary-month-table th {
    border-bottom-color: #4b626c;
    background: #26363d;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .summary-month-table td {
    border-bottom-color: #344851;
    color: #f5fbfc;
}

html[data-theme="dark"] .app-shell .summary-filter-form label {
    border-color: #49636e;
    background: #1b2a30;
    color: #e8f5f7;
}

html[data-theme="dark"] .app-shell .summary-filter-form select {
    border-color: #5d7680;
    background: #10191d;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .summary-month-row.month-state-past td {
    background: #231b21;
}

html[data-theme="dark"] .app-shell .summary-month-row.month-state-current td {
    background: #2a281c;
}

html[data-theme="dark"] .app-shell .summary-month-row.month-state-current td:first-child {
    color: #ffd27d;
}

html[data-theme="dark"] .app-shell .summary-month-row.month-state-future td {
    background: #17251f;
}

html[data-theme="dark"] .app-shell .summary-month-table .summary-paid-cell {
    background: #17302d;
    color: #9af0d7;
}

html[data-theme="dark"] .app-shell .summary-month-table .summary-missing-cell {
    background: #322328;
    color: #ffb6bd;
}

html[data-theme="dark"] .app-shell .summary-month-table .summary-net-cell {
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .payment-day-bar {
    border-color: #4b626c;
    background: #172126;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .payment-day-bar.is-active {
    border-color: #65dfbe;
    background: #17302d;
    box-shadow: inset 0 0 0 2px rgba(101, 223, 190, 0.32);
}

html[data-theme="dark"] .app-shell .payment-day-bar i {
    background: #2b3b42;
}

html[data-theme="dark"] .app-shell .payment-day-bar b {
    background: #65dfbe;
}

html[data-theme="dark"] .app-shell .payment-day-bar small {
    color: #bdd1d7;
}

html[data-theme="dark"] .app-shell .payment-space-card {
    border-color: #48616b;
    background: linear-gradient(180deg, #17262c 0%, #121d22 100%);
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .payment-space-card-header h2,
html[data-theme="dark"] .app-shell .payment-space-card-header p,
html[data-theme="dark"] .app-shell .payment-space-filters label {
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .payment-space-card-header strong {
    background: #0b1519;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .payment-space-card.is-paid .payment-space-card-header strong {
    background: #087f6f;
}

html[data-theme="dark"] .app-shell .payment-space-card.is-overdue .payment-space-card-header strong {
    background: #b93f4b;
}

html[data-theme="dark"] .app-shell .payment-space-list .empty-state {
    border-color: #48616b;
    background: #101a1f;
    color: #d9e7eb;
}

html[data-theme="dark"] .app-shell .payment-space-chip {
    border-color: #5e737c;
    background: #101a1f;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .payment-space-chip.is-paid {
    border-color: rgba(101, 223, 190, 0.42);
    background: #17302d;
    color: #a7f3df;
}

html[data-theme="dark"] .app-shell .payment-space-chip.is-overdue {
    border-color: rgba(255, 139, 147, 0.44);
    background: #322328;
    color: #ffb6bd;
}

/* Cobros: tintes de estado suaves y badges compactos en modo oscuro. */
html[data-theme="dark"] .app-shell .payment-register-table-wrap {
    border-color: #344b54;
    background: #131c20;
    scrollbar-color: #536a74 #111a1e;
}

html[data-theme="dark"] .app-shell .payment-register-table {
    background: #172126;
}

html[data-theme="dark"] .app-shell .payment-register-table th {
    border-bottom-color: #45606a;
    background: #203139;
    color: #e7f0f2;
}

html[data-theme="dark"] .app-shell .payment-register-table-wrap::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

html[data-theme="dark"] .app-shell .payment-register-table-wrap::-webkit-scrollbar-track {
    background: #111a1e;
}

html[data-theme="dark"] .app-shell .payment-register-table-wrap::-webkit-scrollbar-thumb {
    border: 2px solid #111a1e;
    border-radius: 999px;
    background: #536a74;
}

html[data-theme="dark"] .app-shell tr[data-payment-row] {
    --payment-row-background: #172126;
    --payment-row-hover: #223138;
    --payment-row-tint: rgba(120, 144, 154, 0.025);
    --payment-row-tint-hover: rgba(120, 144, 154, 0.06);
    --payment-row-accent: #78909a;
    --payment-row-status: #d5e1e5;
    --payment-status-background: rgba(120, 144, 154, 0.12);
    --payment-status-border: rgba(120, 144, 154, 0.34);
}

html[data-theme="dark"] .app-shell tr[data-payment-row]:nth-child(even) {
    --payment-row-background: #1a252a;
}

html[data-theme="dark"] .app-shell tr[data-payment-row].payment-state-pagado {
    --payment-row-tint: rgba(53, 185, 155, 0.085);
    --payment-row-tint-hover: rgba(53, 185, 155, 0.14);
    --payment-row-accent: #35b99b;
    --payment-row-status: #8be8cf;
    --payment-status-background: rgba(53, 185, 155, 0.12);
    --payment-status-border: rgba(53, 185, 155, 0.34);
}

html[data-theme="dark"] .app-shell tr[data-payment-row].payment-state-parcial {
    --payment-row-tint: rgba(155, 125, 224, 0.09);
    --payment-row-tint-hover: rgba(155, 125, 224, 0.15);
    --payment-row-accent: #9b7de0;
    --payment-row-status: #cdb9ff;
    --payment-status-background: rgba(155, 125, 224, 0.14);
    --payment-status-border: rgba(155, 125, 224, 0.38);
}

html[data-theme="dark"] .app-shell tr[data-payment-row].payment-state-deuda {
    --payment-row-tint: rgba(212, 92, 104, 0.085);
    --payment-row-tint-hover: rgba(212, 92, 104, 0.145);
    --payment-row-accent: #c85461;
    --payment-row-status: #ffadb5;
    --payment-status-background: rgba(200, 84, 97, 0.12);
    --payment-status-border: rgba(200, 84, 97, 0.34);
}

html[data-theme="dark"] .app-shell tr[data-payment-row].payment-state-sin-datos {
    --payment-row-tint: rgba(120, 144, 154, 0.025);
    --payment-row-tint-hover: rgba(120, 144, 154, 0.06);
    --payment-row-accent: #78909a;
    --payment-row-status: #d5e1e5;
    --payment-status-background: rgba(120, 144, 154, 0.12);
    --payment-status-border: rgba(120, 144, 154, 0.34);
}

html[data-theme="dark"] .app-shell tr[data-payment-row].payment-out-of-terms {
    --payment-row-tint: rgba(214, 163, 71, 0.095);
    --payment-row-tint-hover: rgba(214, 163, 71, 0.155);
    --payment-row-accent: #d6a347;
    --payment-row-status: #f6d485;
    --payment-status-background: rgba(214, 163, 71, 0.12);
    --payment-status-border: rgba(214, 163, 71, 0.34);
}

html[data-theme="dark"] .app-shell tr[data-payment-row] td {
    border-bottom-color: #304249;
    background-color: var(--payment-row-background);
    background-image: linear-gradient(0deg, var(--payment-row-tint), var(--payment-row-tint));
    color: #f4f8f9;
    transition: background-color 160ms ease;
}

html[data-theme="dark"] .app-shell tr[data-payment-row]:hover td {
    background-color: var(--payment-row-hover);
    background-image: linear-gradient(0deg, var(--payment-row-tint-hover), var(--payment-row-tint-hover));
}

html[data-theme="dark"] .app-shell tr[data-payment-row].payment-out-of-terms td[data-col-key="fecha_pago"] {
    color: var(--payment-row-status);
    font-weight: 900;
}

html[data-theme="dark"] .app-shell tr[data-payment-row] .payment-status-badge {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 26px;
    padding: 3px 9px;
    border: 1px solid var(--payment-status-border);
    border-radius: 999px;
    background: var(--payment-status-background);
    color: var(--payment-row-status);
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
}

html[data-theme="dark"] .app-shell tr[data-payment-row] .payment-status-badge::before {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--payment-row-accent);
    content: "";
    flex: 0 0 auto;
}

html[data-theme="dark"] .app-shell tr[data-payment-row] .payment-row-button,
html[data-theme="dark"] .app-shell tr[data-payment-row].payment-state-pagado .payment-row-button,
html[data-theme="dark"] .app-shell tr[data-payment-row].payment-state-parcial .payment-row-button,
html[data-theme="dark"] .app-shell tr[data-payment-row].payment-state-deuda .payment-row-button {
    color: var(--link-blue-dark) !important;
    font-weight: 900;
}

html[data-theme="dark"] .app-shell :is(.payment-modal-panel, .payment-detail-panel, .payment-editor-panel) {
    border-color: #5e737c;
    background: #1f2a2f;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell :is(.gastos-detail-panel, .gastos-edit-panel) {
    border-color: #5e737c;
    background: #1f2a2f;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .gastos-items-editor {
    border-color: #526b75;
    background: #172126;
}

html[data-theme="dark"] .app-shell .gastos-items-heading > .field-label-line,
html[data-theme="dark"] .app-shell .gastos-detail-items,
html[data-theme="dark"] .app-shell .gastos-detail-items-list :is(span, strong) {
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .gastos-items-balance {
    color: #c6d6dc;
}

html[data-theme="dark"] .app-shell .gastos-items-balance[data-state="error"],
html[data-theme="dark"] .app-shell .gastos-item-error {
    color: #ff8da8;
}

html[data-theme="dark"] .app-shell .gastos-items-balance[data-state="success"] {
    color: #7ee2a8;
}

html[data-theme="dark"] .app-shell .gastos-items-balance[data-state="legacy"] {
    color: #ffd76a;
}

html[data-theme="dark"] .app-shell .gastos-item-row input[readonly] {
    background: #26363d;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .entry-form .gastos-item-add {
    border-color: var(--brand-alki);
    background: var(--brand-alki);
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .entry-form .gastos-item-add:disabled {
    border-color: #526b75;
    background: #29383e;
    color: #9eb2ba;
}

html[data-theme="dark"] .app-shell .entry-form .gastos-item-remove {
    border-color: #ff6d91;
    background: #172126;
    color: #ff8da8;
}

html[data-theme="dark"] .app-shell .record-modal-actions .gastos-cancel-button,
html[data-theme="dark"] .app-shell .record-modal-actions .gastos-cancel-button:hover,
html[data-theme="dark"] .app-shell .record-modal-actions .gastos-cancel-button:focus-visible {
    border-color: #9f1f3b;
    background: #9f1f3b;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .record-modal-actions .button-danger,
html[data-theme="dark"] .app-shell .record-modal-actions .button-danger:hover,
html[data-theme="dark"] .app-shell .record-modal-actions .button-danger:focus-visible,
html[data-theme="dark"] .app-notice-modal .app-notice-actions .button-danger,
html[data-theme="dark"] .app-notice-modal .app-notice-actions .button-danger:hover,
html[data-theme="dark"] .app-notice-modal .app-notice-actions .button-danger:focus-visible {
    border-color: #9f1f3b;
    background: #9f1f3b;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .gastos-cancel-button {
    color: #ffffff;
}

html[data-theme="dark"] .app-shell :is(.gastos-detail-grid article, .gastos-preview-panel) {
    border-color: #5e737c;
    background: #172126;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .gastos-detail-grid :is(span, strong),
html[data-theme="dark"] .app-shell .gastos-preview-header strong {
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .gastos-preview-header {
    border-bottom-color: #5e737c;
}

html[data-theme="dark"] .app-shell .gastos-pdf-preview {
    background: #121a1e;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .gastos-pdf-preview .empty-state {
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .gastos-image-preview {
    background: #121a1e;
}

html[data-theme="dark"] .app-shell .gastos-preview-switcher {
    border-color: #526b75;
    background: rgba(23, 33, 38, 0.94);
}

html[data-theme="dark"] .app-shell .gastos-preview-selector {
    border-color: #526b75;
    background: #29383e;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .gastos-preview-selector[aria-pressed="true"] {
    border-color: var(--brand-alki);
    background: var(--brand-alki);
    color: #ffffff;
}

html[data-theme="dark"] .app-shell :is(.payment-detail-grid article, .payment-line, .payment-preview-panel, .payment-editor-summary) {
    border-color: #5e737c;
    background: #172126;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .payment-detail-grid :is(span, strong),
html[data-theme="dark"] .app-shell .payment-line legend,
html[data-theme="dark"] .app-shell .payment-preview-header strong {
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .payment-detail-grid article:has([data-payment-detail-field="total"]) strong,
html[data-theme="dark"] .app-shell .payment-detail-grid article:has([data-payment-detail-field="fechaPago"]) strong {
    color: #9be7dd;
}

html[data-theme="dark"] .app-shell .payment-detail-grid article:has([data-payment-detail-field="pagado"]) strong {
    color: #65dfbe;
}

html[data-theme="dark"] .app-shell .payment-detail-grid article:has([data-payment-detail-field="saldo"]) strong {
    color: #ff8b93;
}

html[data-theme="dark"] .app-shell .payment-movements-wrap,
html[data-theme="dark"] .app-shell .payment-movements-table {
    border-color: #5e737c;
    background: #172126;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .payment-movements-table th {
    border-bottom-color: #425760;
    background: #2a383e;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .payment-movements-table td {
    border-bottom-color: #364a52;
    background: #172126;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .payment-movements-table .payment-balance-row td {
    background: #26363d;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .payment-movements-table .payment-balance-row:hover td {
    background: #2b3d45;
}

html[data-theme="dark"] .app-shell .payment-movements-table .payment-balance-amount {
    color: #ff8b93;
}

html[data-theme="dark"] .app-shell .payment-movements-table .payment-movement-row:hover td {
    background: #223239;
}

html[data-theme="dark"] .app-shell .payment-movements-table .payment-movement-row.is-selected td {
    background: #173b40;
    color: #ffffff;
    box-shadow: inset 4px 0 0 var(--brand-alki);
}

html[data-theme="dark"] .app-shell .payment-movements-table .payment-movement-row.is-selected:hover td {
    background: #1c464c;
}

html[data-theme="dark"] .app-shell .payment-pdf-preview {
    border-color: #5e737c;
    background: #121a1e;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .payment-pdf-preview .empty-state {
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .payment-file-selected {
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .payment-file-clear {
    border-color: rgba(255, 115, 125, 0.52);
    background: #172126;
    color: #ff8b93;
}

html[data-theme="dark"] .app-shell .payment-file-clear:hover {
    background: rgba(255, 115, 125, 0.16);
}

html[data-theme="dark"] .app-shell .public-page-owner-preview .public-design:not([data-public-theme="dark"]) :is(.visual-intro h2, .visual-vehicles h2, .visual-models h2, .visual-rates h2, .visual-location h2, .urban-band h2, .urban-section-head h2, .urban-location h2, .map-arrival-card h1, .map-vehicles h2, .map-section-head h2, .direct-copy h1, .direct-lists h2, .direct-rates h2, .direct-location h2, .public-section-head h2, .public-contact-head h2) {
    color: #142229 !important;
}

html[data-theme="dark"] .app-shell .public-page-owner-preview .public-design:not([data-public-theme="dark"]) :is(.visual-feature-grid article, .visual-rate-grid article, .visual-model-grid article, .map-arrival-card, .map-model-list article, .map-rate-grid article, .direct-card, .direct-model-list article, .direct-rate-list article, .public-blog-grid article, .public-blog-card, .public-blog-entry) {
    color: #142229;
}

html[data-theme="dark"] .app-shell .public-page-owner-preview .public-design:not([data-public-theme="dark"]) :is(.map-arrival-card p, .direct-copy p, .public-blog-grid p, .public-blog-grid small, .public-blog-entry p) {
    color: #53646b !important;
}

html[data-theme="dark"] .app-shell .public-page-owner-preview .public-design.public-design-urban:not([data-public-theme="dark"]) .urban-location-copy :is(h2, p) {
    color: #ffffff !important;
}

html .app-shell .public-page-owner-preview .public-design.public-design-urban .urban-rates .urban-section-head h2 {
    color: #ffffff !important;
}

html[data-theme="dark"] .app-shell .public-page-owner-preview .public-design:not([data-public-theme="dark"]) :is(.public-availability-card h3, .public-category-card-head strong) {
    color: #102329 !important;
}

html[data-theme="dark"] .app-shell .public-page-owner-preview .public-design:not([data-public-theme="dark"]) :is(.public-availability-card p, .public-vehicle-category-grid p, .public-category-note) {
    color: #40565f !important;
}

html[data-theme="dark"] .app-shell .public-page-owner-preview .public-design[data-public-theme="dark"] :is(h1, h2, h3, strong, dd, label) {
    color: #ffffff !important;
}

html[data-theme="dark"] .app-shell .public-page-owner-preview .public-design[data-public-theme="dark"] :is(p, small, .public-blog-grid p, .public-blog-grid small, .public-blog-entry p) {
    color: #c4d4da !important;
}

/* Keep the classic dark calculator preview isolated from the editor theme. */
.app-shell .public-page-owner-preview .public-template-clasica[data-public-theme="dark"] .public-price-form .public-price-grid :is(label, .public-date-time-field, .field-label-line) {
    color: #72d8e8 !important;
}

.app-shell .public-page-owner-preview .public-template-clasica[data-public-theme="dark"] .public-price-form :is(.public-calculation-mode label, .public-cyclic-field legend, .public-cyclic-field p, .public-cyclic-row-title, .public-cyclic-day) {
    color: #f4f8f9 !important;
}

.public-design .public-period-selector button:is(.is-active, [aria-pressed="true"]),
html[data-theme="dark"] .app-shell .public-page-owner-preview .public-design .public-period-selector button:is(.is-active, [aria-pressed="true"]) {
    border-color: #f2c25f !important;
    background: #f2c25f !important;
    color: #071416 !important;
    box-shadow: none !important;
}

/* Keep the Marte editor preview compact without changing the published page. */
.public-page-builder-parking .public-page-owner-preview .public-design-urban .urban-hero-grid {
    grid-template-columns: minmax(0, 1fr) minmax(400px, 0.58fr);
    gap: clamp(24px, 3vw, 44px);
    align-items: center;
    padding: clamp(34px, 4vw, 60px) 0;
}

.public-page-builder-parking .public-page-owner-preview .public-design-urban .urban-status {
    min-height: 0;
    gap: 12px;
    padding: clamp(24px, 2.4vw, 30px);
}

.public-page-builder-parking .public-page-owner-preview .public-design-urban .urban-status .public-category-price-panel {
    gap: 10px;
    margin-top: 4px;
}

.public-page-builder-parking .public-page-owner-preview .public-design-urban .public-period-selector {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    width: 100%;
}

.public-page-builder-parking .public-page-owner-preview .public-design-urban .public-period-selector button {
    width: 100%;
    min-width: 0;
    height: 34px;
    min-height: 34px;
    padding: 0 8px;
}

.public-page-builder-parking .public-page-owner-preview .public-design-urban .urban-status-rate-list article {
    grid-template-columns: minmax(96px, 0.62fr) minmax(140px, 1fr);
}

.public-page-builder-parking .public-page-owner-preview .public-design-urban .urban-status-rate-list article strong {
    display: block;
    width: 100%;
    min-width: 0;
}

.public-page-builder-parking .public-page-owner-preview .public-design-urban .urban-status-rate-list article strong b {
    display: block;
    width: 100%;
    min-width: 0;
    padding: 0;
    background: transparent;
    font: inherit;
    white-space: nowrap;
}

.public-page-builder-parking .public-page-owner-preview .public-design-urban .urban-model-info {
    display: inline-grid;
    width: 1.2em;
    min-width: 1.2em;
    height: 1.2em;
    min-height: 1.2em;
    padding: 0;
    border: 1px solid rgba(247, 207, 114, 0.72);
    border-radius: 999px;
    background: rgba(247, 207, 114, 0.18);
    color: #f7cf72;
    box-shadow: none;
    font: inherit;
    font-size: 0.8em;
    line-height: 1;
}

.public-page-builder-parking .public-page-owner-preview .public-design-urban .urban-model-info[aria-expanded="true"] {
    background: #f7cf72;
    color: #1b0f0b;
}

@media (max-width: 1120px) {
    .public-page-builder-parking .public-page-owner-preview .public-design-urban .urban-hero-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    .public-page-builder-parking .public-page-owner-preview .public-design-urban .public-period-selector {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .account-settings-form,
    .account-fiscal-row {
        grid-template-columns: 1fr;
    }

    .account-settings-form .span-2,
    .account-fiscal-row .span-2 {
        grid-column: auto;
    }

    .account-settings-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .legal-document {
        max-width: none;
        padding-top: calc(var(--landing-nav-space) + 28px);
    }

    .legal-index ol {
        grid-template-columns: 1fr;
    }
}

/* Final cascade for the landing-aligned module shell */
html[data-theme="dark"] .app-shell {
    background: linear-gradient(180deg, #13282b 0%, #0f1416 42%, #151a1d 100%);
}

html[data-theme="dark"] .app-shell .content {
    background: transparent;
}

html[data-theme="dark"] .app-shell .topbar {
    border-bottom-color: rgba(196, 224, 226, 0.16);
    background: rgba(15, 20, 22, 0.94);
    box-shadow: 0 1px 0 rgba(196, 224, 226, 0.08), 0 14px 30px rgba(0, 0, 0, 0.18);
    color: var(--ink);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
}

html[data-theme="dark"] .app-shell :is(.topbar h1, .topbar-greeting strong, .topbar .parking-title-separator) {
    color: var(--ink);
}

html[data-theme="dark"] .app-shell :is(.topbar-greeting, .topbar .year-form label, .topbar .month-form label) {
    color: var(--muted);
}

html[data-theme="dark"] .app-shell :is(.topbar .year-form, .topbar .month-form, .topbar-parking-logo) {
    border-color: var(--line);
    background: rgba(32, 40, 44, 0.86);
    box-shadow: var(--shadow-card);
}

html[data-theme="dark"] .app-shell :is(.topbar select, .topbar .parking-title-picker select) {
    border-color: var(--line-strong);
    background: #121a1e;
    color: var(--ink);
}

html[data-theme="dark"] .app-shell :is(.summary-band, .module-hero, .panel, .kpi-card, .module-card) {
    border-color: rgba(196, 224, 226, 0.2);
    background: linear-gradient(180deg, #172124 0%, #12191c 100%);
    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.24);
}

/* Distribución principal: superficies y textos legibles en modo oscuro. */
html[data-theme="dark"] .app-shell .bar-row {
    border-color: var(--line);
    background: var(--surface-soft);
}

html[data-theme="dark"] .app-shell .bar-row .bar-label {
    color: #c7d4d8;
}

html[data-theme="dark"] .app-shell .bar-row .bar-value {
    color: var(--ink);
}

html[data-theme="dark"] .app-shell .bar-row .bar-value small {
    color: #b8c9ce;
}

html[data-theme="dark"] .app-shell .bar-track {
    border-color: var(--line);
    background: #121a1e;
}

html[data-theme="dark"] .app-shell .gastos-distribution-panel .gastos-distribution-percentage {
    color: #ffffff;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.9);
}

html[data-theme="dark"] .app-shell :is(.module-tabs, .module-control-row .year-form, .module-control-row .month-form, .summary-filter-form label) {
    background: rgba(32, 40, 44, 0.78);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.availability-kpi-panel:not(.gastos-kpi-panel) {
    width: min(1080px, calc(100vw - 32px));
}

.availability-kpi-panel.report-kpi-panel {
    width: min(1180px, calc(100vw - 32px));
}

.availability-kpi-panel.is-finance-summary {
    width: min(1240px, calc(100vw - 32px));
}

@media (min-width: 1281px) {
    .app-shell .availability-kpi-panel.is-finance-summary {
        width: min(1240px, calc(100vw - var(--active-sidebar-width) - 48px));
    }
}

.availability-summary-card.is-positive strong,
.availability-summary-table td.is-positive {
    color: var(--positive);
}

.availability-summary-card.is-danger strong,
.availability-summary-table td.is-danger {
    color: var(--danger);
}

.availability-summary-card.is-warning strong,
.availability-summary-table td.is-warning {
    color: #9a640e;
}

.availability-percent-row {
    min-height: 68px;
    padding: 12px 14px;
}

.availability-percent-label span {
    font-size: 15px;
}

.availability-percent-label small {
    font-size: 13px;
    line-height: 1.3;
}

.availability-percent-track {
    position: relative;
    height: 22px;
}

.availability-percent-track .availability-percent-fill {
    position: absolute;
    inset: 0 auto 0 0;
}

.availability-percent-track-value {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: grid;
    place-items: center;
    color: #071416;
    font-size: 13px;
    font-weight: 900;
    line-height: 1;
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.38);
}

.availability-percent-value strong {
    font-size: 21px;
    font-weight: 900;
}

.availability-delta {
    padding: 5px 9px;
    font-size: 12px;
}

.availability-summary-table-wrap {
    border-radius: 10px;
}

.availability-summary-table {
    min-width: 760px;
}

.availability-summary-table th,
.availability-summary-table td {
    font-variant-numeric: tabular-nums;
}

.availability-summary-table td.is-number,
.availability-summary-table th.is-number {
    text-align: right;
}

html[data-theme="dark"] .app-shell .availability-kpi-panel {
    border-color: #516972;
    background: linear-gradient(155deg, #1d2d33 0%, #162126 62%, #121b1f 100%);
    box-shadow: 0 28px 78px rgba(0, 0, 0, 0.58);
}

html[data-theme="dark"] .app-shell .report-kpi-contact-link {
    color: var(--link-blue-dark);
}

html[data-theme="dark"] .app-shell .availability-kpi-panel .record-modal-header {
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(174, 207, 214, 0.2);
}

html[data-theme="dark"] .app-shell .availability-summary-card,
html[data-theme="dark"] .app-shell .availability-kpi-insight {
    border-color: #49626c;
    background: linear-gradient(145deg, #1d2c32 0%, #172126 100%);
}

html[data-theme="dark"] .app-shell .availability-summary-card.is-primary {
    border-color: #35aeba;
    background: linear-gradient(135deg, rgba(13, 139, 151, 0.29) 0%, #172126 76%);
    box-shadow: inset 4px 0 0 #45c9d1;
}

html[data-theme="dark"] .app-shell .availability-summary-card.is-positive {
    border-color: rgba(101, 223, 190, 0.42);
    background: linear-gradient(145deg, rgba(43, 151, 122, 0.17), #172126 75%);
}

html[data-theme="dark"] .app-shell .availability-summary-card.is-danger {
    border-color: rgba(255, 127, 144, 0.45);
    background: linear-gradient(145deg, rgba(188, 61, 82, 0.18), #172126 75%);
}

html[data-theme="dark"] .app-shell .availability-summary-card.is-primary.is-positive {
    box-shadow: inset 4px 0 0 #65dfbe;
}

html[data-theme="dark"] .app-shell .availability-summary-card.is-primary.is-danger {
    box-shadow: inset 4px 0 0 #ff7f90;
}

html[data-theme="dark"] .app-shell .availability-summary-card.is-primary.is-neutral {
    box-shadow: inset 4px 0 0 #b8c8cd;
}

html[data-theme="dark"] .app-shell .availability-summary-card.is-warning {
    border-color: rgba(246, 190, 90, 0.45);
    background: linear-gradient(145deg, rgba(177, 116, 24, 0.18), #172126 75%);
}

html[data-theme="dark"] .app-shell .availability-summary-card > span,
html[data-theme="dark"] .app-shell .availability-kpi-insight > span {
    color: #c2d2d7 !important;
    font-size: 13px;
}

html[data-theme="dark"] .app-shell .availability-summary-card strong,
html[data-theme="dark"] .app-shell .availability-kpi-insight strong {
    color: #ffffff;
    font-size: 24px;
}

html[data-theme="dark"] .app-shell .availability-summary-card.is-positive strong {
    color: #82e8cd;
}

html[data-theme="dark"] .app-shell .availability-summary-card.is-danger strong {
    color: #ff9eaa;
}

html[data-theme="dark"] .app-shell .availability-summary-card.is-warning strong {
    color: #ffd485;
}

html[data-theme="dark"] .app-shell .availability-summary-card small,
html[data-theme="dark"] .app-shell .availability-kpi-insight small {
    color: #b5c7cc !important;
    font-size: 13px;
}

html[data-theme="dark"] .app-shell .report-kpi-summary .availability-summary-card > span {
    font-size: clamp(18px, 2vw, 24px);
}

html[data-theme="dark"] .app-shell .report-kpi-summary .availability-summary-card > strong {
    font-size: clamp(24px, 2.5vw, 30px);
}

html[data-theme="dark"] .app-shell .availability-percent-row {
    border-color: #48616a;
    background: linear-gradient(90deg, #19272c 0%, #142024 100%);
}

html[data-theme="dark"] .app-shell .availability-percent-label span {
    color: #ffffff !important;
    font-size: 15px;
}

html[data-theme="dark"] .app-shell .availability-percent-label small {
    color: #b9cbd0 !important;
    font-size: 13px;
}

html[data-theme="dark"] .app-shell .availability-percent-track {
    border: 1px solid #3e5963;
    background: #0a1418;
    box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.52);
}

html[data-theme="dark"] .app-shell .availability-percent-track .availability-percent-fill {
    background: linear-gradient(90deg, #087f8e 0%, #17a8ad 54%, #55d8bd 100%);
    box-shadow: 0 0 14px rgba(49, 198, 190, 0.2);
}

html[data-theme="dark"] .app-shell .availability-percent-track-value {
    color: #ffffff;
    font-size: 14px;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.9);
}

html[data-theme="dark"] .app-shell .availability-percent-value strong {
    color: #8ce8e1 !important;
    font-size: 22px;
}

html[data-theme="dark"] .app-shell .availability-delta.is-up {
    border: 1px solid rgba(52, 211, 153, 0.38);
    background: rgba(52, 211, 153, 0.16);
    color: #95f1bd !important;
}

html[data-theme="dark"] .app-shell .availability-delta.is-down {
    border: 1px solid rgba(251, 113, 133, 0.4);
    background: rgba(251, 113, 133, 0.16);
    color: #ffabb7 !important;
}

html[data-theme="dark"] .app-shell .availability-delta.is-flat {
    border: 1px solid rgba(166, 185, 193, 0.34);
    background: rgba(148, 163, 184, 0.16);
    color: #d9e3e6 !important;
}

html[data-theme="dark"] .app-shell .availability-summary-table-wrap {
    border-color: #49626c;
    background: #121c20;
}

html[data-theme="dark"] .app-shell .availability-summary-table th {
    border-bottom-color: #526b75;
    background: #293b42;
    color: #eaf5f7;
    font-size: 12px;
}

html[data-theme="dark"] .app-shell .availability-summary-table td {
    border-bottom-color: #344b54;
    background: #172329;
    color: #edf7f8;
    font-size: 15px;
}

html[data-theme="dark"] .app-shell .availability-summary-table tbody tr:nth-child(even) td {
    background: #1a292f;
}

html[data-theme="dark"] .app-shell .availability-summary-table tbody tr:hover td {
    background: #21353d;
}

html[data-theme="dark"] .app-shell .availability-summary-table td.is-positive {
    color: #82e8cd;
}

html[data-theme="dark"] .app-shell .availability-summary-table td.is-danger {
    color: #ff9eaa;
}

html[data-theme="dark"] .app-shell .availability-summary-table td.is-warning {
    color: #ffd485;
}

/* Resumen: jerarquía temporal sobria y colores financieros reservados para los importes. */
html[data-theme="dark"] .app-shell .summary-month-table th {
    border-bottom-color: #3b515a;
    background: #26363d;
    color: #f1f6f7;
    font-size: 13px;
}

html[data-theme="dark"] .app-shell .summary-month-table td {
    background: #172329;
    border-bottom-color: #2d424a;
    color: #dce7ea;
    font-size: 15px;
}

html[data-theme="dark"] .app-shell .summary-month-row {
    --summary-row-bg: #17242a;
    --summary-row-fg: #dce7ea;
}

html[data-theme="dark"] .app-shell .summary-month-row.month-state-past {
    --summary-row-bg: #241e22;
    --summary-row-fg: #dcd3d6;
}

html[data-theme="dark"] .app-shell .summary-month-row.month-state-current {
    --summary-row-bg: #173038;
    --summary-row-fg: #e1f0f2;
}

html[data-theme="dark"] .app-shell .summary-month-row.month-state-past td,
html[data-theme="dark"] .app-shell .summary-month-row.month-state-current td,
html[data-theme="dark"] .app-shell .summary-month-row.month-state-future td {
    background: var(--summary-row-bg);
    color: var(--summary-row-fg);
}

html[data-theme="dark"] .app-shell .summary-month-row.month-state-past td:first-child {
    border-left: 4px solid #a95e6a;
}

html[data-theme="dark"] .app-shell .summary-month-row.month-state-current td:first-child {
    border-left: 4px solid #36aeb8;
}

html[data-theme="dark"] .app-shell .summary-month-row td.summary-paid-cell {
    background:
        linear-gradient(rgba(43, 132, 108, 0.14), rgba(43, 132, 108, 0.14)),
        var(--summary-row-bg);
    color: #7fd0bb;
}

html[data-theme="dark"] .app-shell .summary-month-row td.summary-missing-cell {
    background:
        linear-gradient(rgba(170, 69, 88, 0.13), rgba(170, 69, 88, 0.13)),
        var(--summary-row-bg);
    color: #e493a1;
}

html[data-theme="dark"] .app-shell .summary-month-row td.summary-net-cell.summary-net-positive {
    color: #7fd0bb;
}

html[data-theme="dark"] .app-shell .summary-month-row td.summary-net-cell.summary-net-danger {
    color: #e493a1;
}

html[data-theme="dark"] .app-shell .summary-month-row td.summary-net-cell.summary-net-neutral {
    color: #d8e4e7;
}

html[data-theme="dark"] .app-shell .summary-row-detail-button {
    color: #c7d5d9;
}

html[data-theme="dark"] .app-shell .summary-month-row.month-state-past .summary-row-detail-button {
    color: #d9909c;
}

html[data-theme="dark"] .app-shell .summary-month-row.month-state-current .summary-row-detail-button {
    color: #82d3d8;
}

html[data-theme="dark"] .app-shell .summary-month-row.month-state-future .summary-row-detail-button {
    color: #77bdd8;
}

html[data-theme="dark"] .app-shell .summary-row-detail-button::after {
    opacity: 0.72;
}

html[data-theme="dark"] .app-shell .availability-summary-row-grid .availability-summary-card strong {
    font-size: 18px;
}

html[data-theme="dark"] .app-shell .summary-month-row[data-summary-row-detail]:hover td,
html[data-theme="dark"] .app-shell .summary-month-row[data-summary-row-detail]:focus-within td {
    box-shadow: inset 0 1px 0 rgba(94, 206, 214, 0.42), inset 0 -1px 0 rgba(94, 206, 214, 0.42);
}

html[data-theme="dark"] .app-shell .summary-row-detail-button:focus-visible {
    outline-color: rgba(85, 216, 223, 0.52);
}

html[data-theme="dark"] .app-shell .summary-tariff-panel,
html[data-theme="dark"] .app-shell .summary-tariff-panel > .collapsible-summary {
    border-color: #435d67;
    background: #172329;
}

html[data-theme="dark"] .app-shell .summary-tariff-panel[open] > .collapsible-summary {
    border-color: #398c98;
    background: #193138;
}

html[data-theme="dark"] .app-shell .summary-tariff-panel .tariff-preview-row.tariff-month-past td,
html[data-theme="dark"] .app-shell .summary-tariff-panel .tariff-preview-row.tariff-month-past.tariff-increase-row td {
    background: #321f26;
    color: #f2cbd2;
}

html[data-theme="dark"] .app-shell .summary-tariff-panel .tariff-preview-row.tariff-month-current td,
html[data-theme="dark"] .app-shell .summary-tariff-panel .tariff-preview-row.tariff-month-current.tariff-increase-row td {
    background: #19363c;
    color: #f2fbfc;
    box-shadow: none;
}

html[data-theme="dark"] .app-shell .summary-tariff-panel .tariff-preview-row.tariff-month-current td:first-child {
    border-left-color: #45c9d1;
    color: #9aebef;
}

html[data-theme="dark"] .app-shell .summary-tariff-panel .tariff-preview-row.tariff-increase-row:not(.tariff-month-past):not(.tariff-month-current) td {
    background: rgba(174, 112, 24, 0.22);
    color: #ffe0a0;
}

/* Resumen oscuro: mismas tonalidades semánticas del modo claro. */
html[data-theme="dark"] .app-shell #resumen-registros,
html[data-theme="dark"] .app-shell .summary-tariff-panel {
    border-color: #435d67;
    background: #172329;
}

html[data-theme="dark"] .app-shell #resumen-registros > .table-wrap,
html[data-theme="dark"] .app-shell .summary-tariff-panel > .table-wrap,
html[data-theme="dark"] .app-shell #resumen-registros .summary-month-table,
html[data-theme="dark"] .app-shell .summary-tariff-panel table {
    border-color: #435d67;
    background: #11191d;
}

html[data-theme="dark"] .app-shell #resumen-registros:not([open]) > .collapsible-summary,
html[data-theme="dark"] .app-shell .summary-tariff-panel:not([open]) > .collapsible-summary {
    border-color: #48606a;
    background: #27353b;
}

html[data-theme="dark"] .app-shell #resumen-registros[open] > .collapsible-summary,
html[data-theme="dark"] .app-shell .summary-tariff-panel[open] > .collapsible-summary {
    border-color: #398c98;
    background: #193138;
    box-shadow: inset 4px 0 0 #45c9d1;
}

html[data-theme="dark"] .app-shell #resumen-registros > .collapsible-summary .collapsible-heading,
html[data-theme="dark"] .app-shell .summary-tariff-panel > .collapsible-summary .collapsible-heading {
    color: #ffffff;
}

html[data-theme="dark"] .app-shell #resumen-registros > .collapsible-summary .collapsible-indicator,
html[data-theme="dark"] .app-shell .summary-tariff-panel > .collapsible-summary .collapsible-indicator {
    border-color: #526b75;
    background: #172126;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell #resumen-registros > .collapsible-summary:focus-visible,
html[data-theme="dark"] .app-shell .summary-tariff-panel > .collapsible-summary:focus-visible {
    outline-color: #69d2da;
}

html[data-theme="dark"] .app-shell #resumen-registros .summary-period-filter-form label {
    color: #e8f5f7;
}

html[data-theme="dark"] .app-shell #resumen-registros .summary-period-filter-form select {
    border-color: #5d7680;
    background: #10191d;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell #resumen-registros .summary-period-filter-form select:focus,
html[data-theme="dark"] .app-shell #resumen-registros .summary-period-filter-form select:focus-visible {
    border-color: #69d2da;
    outline-color: #69d2da;
}

html[data-theme="dark"] .app-shell #resumen-registros .summary-month-table th,
html[data-theme="dark"] .app-shell .summary-tariff-panel th {
    border-bottom-color: #4b626c;
    background: #26363d;
    color: #f1f6f7;
}

html[data-theme="dark"] .app-shell #resumen-registros .summary-month-table td,
html[data-theme="dark"] .app-shell .summary-tariff-panel td {
    border-bottom-color: #344851;
    background: #172126;
    color: #e8f1f3;
}

html[data-theme="dark"] .app-shell #resumen-registros .summary-month-row {
    --summary-row-bg: #172126;
    --summary-row-fg: #e8f1f3;
    --summary-row-line: #344851;
}

html[data-theme="dark"] .app-shell #resumen-registros .summary-month-row.month-state-past {
    --summary-row-bg: #341a22;
    --summary-row-fg: #ffb8c3;
    --summary-row-line: #65313d;
}

html[data-theme="dark"] .app-shell #resumen-registros .summary-month-row.month-state-current {
    --summary-row-bg: #38300f;
    --summary-row-fg: #ffdb72;
    --summary-row-line: #6d5a1c;
}

html[data-theme="dark"] .app-shell #resumen-registros .summary-month-row.month-state-future {
    --summary-row-bg: #143126;
    --summary-row-fg: #b9ebd2;
    --summary-row-line: #285844;
}

html[data-theme="dark"] .app-shell #resumen-registros .summary-month-row.month-state-past td,
html[data-theme="dark"] .app-shell #resumen-registros .summary-month-row.month-state-current td,
html[data-theme="dark"] .app-shell #resumen-registros .summary-month-row.month-state-future td {
    background: var(--summary-row-bg);
    color: var(--summary-row-fg);
    border-bottom-color: var(--summary-row-line);
}

html[data-theme="dark"] .app-shell #resumen-registros .summary-month-row.month-state-past td:first-child {
    border-left-color: #f06478;
}

html[data-theme="dark"] .app-shell #resumen-registros .summary-month-row.month-state-current td:first-child {
    border-left-color: #e8b847;
    color: #ffdb72;
}

html[data-theme="dark"] .app-shell #resumen-registros .summary-month-row td.summary-paid-cell {
    background: #123d2d;
    color: #a8f0ca;
}

html[data-theme="dark"] .app-shell #resumen-registros .summary-month-row td.summary-missing-cell {
    background: #431b25;
    color: #ffc0cb;
}

html[data-theme="dark"] .app-shell #resumen-registros .summary-month-row td.summary-net-cell.summary-net-positive {
    color: #84e1ae;
}

html[data-theme="dark"] .app-shell #resumen-registros .summary-month-row td.summary-net-cell.summary-net-danger {
    color: #ffb5bf;
}

html[data-theme="dark"] .app-shell #resumen-registros .summary-month-row td.summary-net-cell.summary-net-neutral {
    color: #d8e4e7;
}

html[data-theme="dark"] .app-shell #resumen-registros .summary-row-detail-button,
html[data-theme="dark"] .app-shell #resumen-registros .summary-month-row.month-state-past .summary-row-detail-button,
html[data-theme="dark"] .app-shell #resumen-registros .summary-month-row.month-state-current .summary-row-detail-button,
html[data-theme="dark"] .app-shell #resumen-registros .summary-month-row.month-state-future .summary-row-detail-button {
    color: #7cc8ff;
}

html[data-theme="dark"] .app-shell #resumen-registros .summary-month-row[data-summary-row-detail]:hover td,
html[data-theme="dark"] .app-shell #resumen-registros .summary-month-row[data-summary-row-detail]:focus-within td {
    box-shadow: inset 0 1px 0 rgba(94, 206, 214, 0.42), inset 0 -1px 0 rgba(94, 206, 214, 0.42);
}

html[data-theme="dark"] .app-shell #resumen-registros .summary-row-detail-button:focus-visible {
    outline-color: #69d2da;
}

html[data-theme="dark"] .app-shell .summary-tariff-panel .tariff-preview-row td {
    background: #172126;
    color: #e8f1f3;
}

html[data-theme="dark"] .app-shell .summary-tariff-panel .tariff-preview-row.tariff-month-past td,
html[data-theme="dark"] .app-shell .summary-tariff-panel .tariff-preview-row.tariff-month-past.tariff-increase-row td {
    border-bottom-color: #65313d;
    background: #341a22;
    color: #ffb8c3;
}

html[data-theme="dark"] .app-shell .summary-tariff-panel .tariff-preview-row.tariff-month-current td,
html[data-theme="dark"] .app-shell .summary-tariff-panel .tariff-preview-row.tariff-month-current.tariff-increase-row td {
    border-bottom-color: #6d5a1c;
    background: #38300f;
    color: #ffdb72;
}

html[data-theme="dark"] .app-shell .summary-tariff-panel .tariff-preview-row.tariff-month-current td:first-child {
    border-left-color: #e8b847;
    color: #ffdb72;
}

html[data-theme="dark"] .app-shell .summary-tariff-panel .tariff-preview-row.tariff-month-future.tariff-increase-row:not(.tariff-month-past):not(.tariff-month-current) td {
    border-bottom-color: #287052;
    background: #0e4734;
    color: #9df0c5;
}

html[data-theme="dark"] .app-shell .report-message-header .button-neutral {
    border-color: #5d7882;
    background: #122126;
    color: #dff9fb;
}

html[data-theme="dark"] .app-shell .report-message-header .button-neutral:hover,
html[data-theme="dark"] .app-shell .report-message-header .button-neutral:focus-visible {
    border-color: #69d2da;
    background: #17363c;
    color: #ffffff;
    outline: 2px solid rgba(105, 210, 218, 0.25);
    outline-offset: 2px;
}

html[data-theme="dark"] .app-shell .report-message-contact-form {
    padding: 16px;
    border: 1px solid #3f5963;
    border-radius: 10px;
    background: #10191d;
    box-shadow: inset 4px 0 0 rgba(53, 185, 195, 0.72);
}

html[data-theme="dark"] .app-shell .report-message-contact-form label {
    color: #d5e3e7 !important;
}

html[data-theme="dark"] .app-shell .report-message-preset-row {
    padding: 12px;
    border: 1px solid #3f5963;
    border-radius: 9px;
    background: #122126;
}

html[data-theme="dark"] .app-shell .report-message-preset-current > span {
    color: #9eb5bb;
}

html[data-theme="dark"] .app-shell .report-message-preset-current strong {
    color: #f2f8f9;
}

html[data-theme="dark"] .app-shell .report-message-helper {
    margin: 12px 0 14px;
    padding: 10px 12px;
    border: 1px solid rgba(77, 183, 194, 0.3);
    border-radius: 8px;
    background: rgba(24, 77, 84, 0.22);
    color: #bfd1d6;
    font-size: 13px;
}

html[data-theme="dark"] .app-shell .report-message-name-choice {
    border-color: #3f5963;
    background: #122126;
    color: #f2f8f9;
}

html[data-theme="dark"] .app-shell .report-message-panel .calculation-summary {
    border-color: #47616b;
    background: #152126;
    box-shadow: inset 4px 0 0 #28b99f;
}

html[data-theme="dark"] .app-shell .report-message-panel .calculation-summary strong {
    color: #7fe2cc;
    font-size: 20px;
}

html[data-theme="dark"] .app-shell .report-message-panel .calculation-summary pre {
    color: #c1d2d7;
}

html[data-theme="dark"] .app-shell .report-message-panel .message-box {
    border-color: #48616b;
    background: #0c1519;
    color: #f4f8f9;
    box-shadow: inset 0 1px 8px rgba(0, 0, 0, 0.28);
}

html[data-theme="dark"] .app-shell .report-message-panel .actions-row .button-secondary {
    border: 1px solid #9e7538;
    background: rgba(217, 155, 54, 0.14);
    color: #ffd18a;
}

html[data-theme="dark"] .app-shell .report-message-panel .actions-row .button-secondary:hover,
html[data-theme="dark"] .app-shell .report-message-panel .actions-row .button-secondary:focus-visible {
    border-color: #d99b36;
    background: rgba(217, 155, 54, 0.24);
    color: #ffe5af;
    outline: 2px solid rgba(217, 155, 54, 0.22);
    outline-offset: 2px;
}

html[data-theme="dark"] .app-shell .contact-message-panel {
    border-color: #55717c;
    background: linear-gradient(155deg, #1d2d33 0%, #141e22 100%);
    box-shadow: 0 30px 82px rgba(0, 0, 0, 0.62);
}

html[data-theme="dark"] .app-shell .contact-message-panel .record-modal-header {
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(174, 207, 214, 0.22);
}

html[data-theme="dark"] .app-shell .contact-message-tabs {
    padding: 7px;
    border: 1px solid #405a64;
    border-radius: 10px;
    background: #0e181c;
}

html[data-theme="dark"] .app-shell .contact-message-tab {
    border-color: #405a64;
    background: #17252a;
    color: #c7d8dc;
    box-shadow: none;
}

html[data-theme="dark"] .app-shell .contact-message-tab:hover,
html[data-theme="dark"] .app-shell .contact-message-tab:focus-visible {
    border-color: #65cbd3;
    background: #1b343a;
    color: #ffffff;
    outline: 2px solid rgba(101, 203, 211, 0.22);
    outline-offset: 1px;
}

html[data-theme="dark"] .app-shell .contact-message-tab.is-active {
    border-color: #70d8df;
    background: linear-gradient(135deg, #087f8b 0%, #056874 100%);
    color: #ffffff;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.09), 0 8px 20px rgba(0, 0, 0, 0.24);
}

html[data-theme="dark"] .app-shell .contact-message-pane.is-active {
    gap: 12px;
    padding: 18px;
    border: 1px solid #405b65;
    border-radius: 10px;
    background: #152126;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .contact-message-pane-header > span {
    color: #ffffff;
    font-size: 14px;
    letter-spacing: 0.015em;
}

html[data-theme="dark"] .app-shell .contact-message-period-field,
html[data-theme="dark"] .app-shell .contact-message-category-field {
    color: #c5d6da !important;
}

html[data-theme="dark"] .app-shell .contact-message-period-field select,
html[data-theme="dark"] .app-shell .contact-message-category-field select,
html[data-theme="dark"] .app-shell .contact-message-pane textarea {
    border-color: #526c76;
    background: #0d171b;
    color: #f4f8f9;
}

html[data-theme="dark"] .app-shell .contact-message-pane textarea {
    box-shadow: inset 0 1px 8px rgba(0, 0, 0, 0.3);
    caret-color: #7be1e7;
}

html[data-theme="dark"] .app-shell .contact-message-pane textarea:focus {
    border-color: #65cbd3;
    outline-color: rgba(101, 203, 211, 0.24);
}

html[data-theme="dark"] .app-shell .contact-message-example {
    border-color: #48636d;
    background: #101a1f;
    color: #d5e3e7;
}

html[data-theme="dark"] .app-shell .contact-message-tags {
    padding: 12px;
    border: 1px solid #3d5660;
    border-radius: 9px;
    background: #101a1f;
}

html[data-theme="dark"] .app-shell .contact-message-tags-label {
    color: #aec3c9;
}

html[data-theme="dark"] .app-shell .contact-message-tag {
    border-color: #3f737b;
    background: #143037;
    color: #91e2e7;
}

html[data-theme="dark"] .app-shell .contact-message-tag:hover,
html[data-theme="dark"] .app-shell .contact-message-tag:focus-visible {
    border-color: #7be1e7;
    background: #1a464d;
    color: #ffffff;
    outline: 2px solid rgba(123, 225, 231, 0.2);
    outline-offset: 1px;
}

html[data-theme="dark"] .app-shell .contact-message-modal .record-modal-actions {
    padding-top: 14px;
    border-top: 1px solid rgba(174, 207, 214, 0.2);
}

html[data-theme="dark"] .app-shell .contact-message-modal .record-modal-actions .button:not(.button-neutral) {
    border-color: #1595a1;
    background: #087f8b;
    color: #ffffff;
}

/* Personas: jerarquía y contraste específicos para la agenda en modo oscuro. */
html[data-theme="dark"] .app-shell .contacts-module .report-contact-panel {
    border-color: #38515a;
    background: #11191c;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.28);
}

html[data-theme="dark"] .app-shell .contacts-module .report-contact-panel > .collapsible-summary,
html[data-theme="dark"] .app-shell .contacts-module .report-contact-panel:not([open]) > .collapsible-summary {
    border-color: transparent;
    background: linear-gradient(135deg, #202e33 0%, #182328 100%);
}

html[data-theme="dark"] .app-shell .contacts-module .report-contact-panel[open] > .collapsible-summary {
    border-bottom: 1px solid #34545c;
    background: linear-gradient(135deg, #18363b 0%, #16272b 100%);
    box-shadow: inset 4px 0 0 #25bac8;
}

html[data-theme="dark"] .app-shell .contacts-module .collapsible-indicator {
    border-color: #4c6872;
    background: #10191d;
    color: #6ee1e8;
}

html[data-theme="dark"] .app-shell .contacts-module .contact-phone-status.is-no-verificable {
    border-color: rgba(236, 170, 77, 0.5);
    background: rgba(165, 100, 20, 0.22);
    color: #f5c476;
}

html[data-theme="dark"] .app-shell .contacts-module .contact-phone-status.is-incorrecto {
    border-color: rgba(238, 112, 126, 0.52);
    background: rgba(151, 42, 57, 0.23);
    color: #ff9ca8;
}

html[data-theme="dark"] .app-shell .contacts-module .contact-filter-tabs {
    border-color: #3c555e;
    background: #10191d;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.02);
}

html[data-theme="dark"] .app-shell .contacts-module .contact-filter-button {
    color: #aebfc5;
}

html[data-theme="dark"] .app-shell .contacts-module .contact-filter-button:hover,
html[data-theme="dark"] .app-shell .contacts-module .contact-filter-button:focus-visible {
    background: #24343a;
    color: #ffffff;
    outline: 0;
}

html[data-theme="dark"] .app-shell .contacts-module .contact-filter-button.is-active {
    background: #087f8f;
    color: #ffffff;
    box-shadow: 0 5px 14px rgba(0, 0, 0, 0.24);
}

html[data-theme="dark"] .app-shell .contacts-module .report-contact-table,
html[data-theme="dark"] .app-shell .contacts-module .report-contact-table table {
    border-color: #344b54;
    background: #10181b;
    box-shadow: none;
}

html[data-theme="dark"] .app-shell .contacts-module .report-contact-table th {
    border-bottom-color: #405a64;
    background: #25363c;
    color: #d8e5e8;
}

html[data-theme="dark"] .app-shell .contacts-module .report-contact-table td {
    border-bottom-color: #2c4149;
    background: #121c20;
    color: #f3f7f8;
}

html[data-theme="dark"] .app-shell .contacts-module .report-contact-table tbody tr:nth-child(even) td {
    background: #162226;
}

html[data-theme="dark"] .app-shell .contacts-module .report-contact-table tbody tr:hover td {
    background: #20343a;
}

html[data-theme="dark"] .app-shell .contacts-module .report-contact-table .contact-client-row.has-multiple-vehicles > td,
html[data-theme="dark"] .app-shell .report-kpi-table .contact-client-row.has-multiple-vehicles > td {
    border-bottom-color: #66527f;
    background: #282038;
}

html[data-theme="dark"] .app-shell .contacts-module .report-contact-table .contact-client-row.has-multiple-vehicles > td:first-child,
html[data-theme="dark"] .app-shell .report-kpi-table .contact-client-row.has-multiple-vehicles > td:first-child {
    box-shadow: inset 4px 0 0 #a78bfa;
}

html[data-theme="dark"] .app-shell .contacts-module .report-contact-table .contact-client-row.has-multiple-vehicles:hover > td,
html[data-theme="dark"] .app-shell .report-kpi-table .contact-client-row.has-multiple-vehicles:hover > td {
    background: #33274b;
}

html[data-theme="dark"] .app-shell .contacts-module .report-contact-table .contact-client-row.has-multiple-vehicles.is-expanded > td,
html[data-theme="dark"] .app-shell .report-kpi-table .contact-client-row.has-multiple-vehicles.is-expanded > td {
    background: #3a2b55;
}

html[data-theme="dark"] .app-shell .contact-client-expand:focus-visible {
    outline-color: rgba(167, 139, 250, 0.58);
}

html[data-theme="dark"] .app-shell .contact-client-vehicle-count {
    border-color: #a78bfa;
    background: #6d28d9;
    color: #ffffff;
}

html[data-theme="dark"] .app-shell .contact-client-expand-indicator {
    border-color: #c4b5fd;
}

html[data-theme="dark"] .app-shell .contacts-module .report-contact-table .contact-client-vehicles-row > td,
html[data-theme="dark"] .app-shell .report-kpi-table .contact-client-vehicles-row > td {
    border-bottom-color: #66527f;
    background: #1d1827;
}

html[data-theme="dark"] .app-shell .contact-client-vehicle-item small {
    color: #c7b7e8;
}

html[data-theme="dark"] .app-shell .contact-client-vehicle-item {
    border-color: #5f4b80;
    background: #292036;
}

html[data-theme="dark"] .app-shell .contact-client-vehicle-item strong {
    color: #f4fafb;
}

html[data-theme="dark"] .app-shell .contacts-module .empty-state {
    color: #aebfc5;
}

@media (max-width: 720px) {
    .availability-percent-label span {
        font-size: 15px;
    }

    .availability-percent-value strong {
        font-size: 20px;
    }

    .availability-percent-track {
        height: 24px;
    }

    .contact-message-pane-header,
    .contact-message-context-fields,
    .contact-message-period-field,
    .contact-message-category-field {
        align-items: stretch;
        flex-direction: column;
    }

    .contact-message-pane-header .button,
    .contact-message-period-field select,
    .contact-message-category-field select {
        width: 100%;
        min-width: 0;
    }

    html[data-theme="dark"] .app-shell .contact-message-pane.is-active {
        padding: 14px;
    }

    .contacts-module .report-contact-panel > .collapsible-summary {
        padding: 14px;
    }

    .contacts-module .report-contact-table {
        margin: 14px;
    }

    .contacts-module .contact-filter-tabs {
        width: calc(100% - 28px);
        margin: 14px 14px 0;
    }

    .contact-client-expand {
        grid-template-columns: minmax(0, 1fr) max-content 18px;
    }

    .contact-client-vehicle-item {
        grid-template-columns: minmax(0, 1fr);
    }
}
