* { box-sizing: border-box; }
body { margin: 0; font-family: Inter, Segoe UI, Arial, sans-serif; background: #f4f6f8; color: #17202a; }
a { color: inherit; text-decoration: none; }
.hidden { display: none !important; }
.shell { display: grid; grid-template-columns: 250px 1fr; min-height: 100vh; }
.sidebar { background: #102027; color: #ecf4f1; padding: 24px 18px; }
.brand { font-weight: 800; font-size: 20px; line-height: 1.15; margin-bottom: 26px; }
.brand span { display: block; margin-top: 8px; font-size: 12px; font-weight: 600; color: #b9cbc8; }
.current-project { border: 1px solid #27464f; border-radius: 8px; padding: 10px 12px; margin-bottom: 10px; background: #142d35; }
.current-project span { display: block; color: #9fb4af; font-size: 11px; font-weight: 800; text-transform: uppercase; margin-bottom: 4px; }
.current-project strong { display: block; color: #fff; font-size: 14px; line-height: 1.25; }
.current-project a { display: inline-flex; margin-top: 8px; color: #b9cbc8; font-size: 12px; font-weight: 800; }
.sidebar-selector { margin-bottom: 18px; }
.sidebar-selector select { background: #f8fafb; border: 0; padding: 8px 10px; font-size: 13px; }
.nav { display: grid; gap: 8px; }
.accordion-nav { gap: 6px; }
.nav-section { margin-top: 12px; font-size: 11px; color: #9fb4af; text-transform: uppercase; font-weight: 800; letter-spacing: .08em; }
.nav a, .logout { border: 0; width: 100%; text-align: left; display: block; padding: 11px 12px; border-radius: 8px; background: transparent; color: #dce8e4; font: inherit; cursor: pointer; }
.nav a:hover, .logout:hover { background: #1f3b43; }
.sidebar-link.active, .nav a.active { background: #0f766e; color: #fff; font-weight: 800; }
.sidebar-group { border-radius: 8px; overflow: hidden; }
.sidebar-group-toggle { border: 0; width: 100%; display: flex; align-items: center; gap: 9px; padding: 11px 12px; border-radius: 8px; background: transparent; color: #ecf4f1; font: inherit; font-weight: 800; cursor: pointer; text-align: left; }
.sidebar-group-toggle::after { content: "+"; margin-left: auto; color: #9fb4af; font-weight: 800; }
.sidebar-group-toggle:hover, .sidebar-group.active > .sidebar-group-toggle { background: #18343d; }
.sidebar-group.open > .sidebar-group-toggle::after { content: "-"; }
.sidebar-group-toggle span { width: 18px; color: #9fd3c7; text-align: center; }
.sidebar-submenu { display: none; padding-top: 4px; }
.sidebar-group.open .sidebar-submenu { display: block; }
.sidebar-submenu a, .nav-disabled { margin-top: 4px; padding-left: 36px; font-size: 14px; }
.nav-disabled { display: block; color: #78908b; padding-top: 10px; padding-bottom: 10px; cursor: default; }
.main { padding: 28px; }
.topbar { display: flex; justify-content: space-between; gap: 16px; align-items: center; margin-bottom: 22px; }
.title { margin: 0; font-size: 28px; }
.subtitle { font-size: 18px; font-weight: 700; color: #0f766e; margin-top: 4px; }
.muted { color: #6c7a80; }
.btn { display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 8px; padding: 10px 14px; background: #0f766e; color: #fff; font-weight: 700; cursor: pointer; }
.btn.secondary { background: #dce4e8; color: #17202a; }
.btn.danger { background: #b42318; }
.check-list { display: grid; gap: 4px; }
.check-row.compact { margin-top: 0; font-weight: 600; }
.grid { display: grid; gap: 16px; }
.stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.card { background: #fff; border: 1px solid #dce4e8; border-radius: 8px; padding: 18px; box-shadow: 0 1px 2px rgba(16,32,39,.04); }
.project-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.grid-urbanizaciones { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.project-card { overflow: hidden; background: #fff; border: 1px solid #dce4e8; border-radius: 8px; box-shadow: 0 1px 2px rgba(16,32,39,.04); }
.project-card img, .project-placeholder { width: 100%; aspect-ratio: 16 / 8; object-fit: cover; background: #eef3f4; display: grid; place-items: center; color: #6c7a80; }
.grid-urbanizaciones .project-card img,
.grid-urbanizaciones .project-placeholder { height: 170px; aspect-ratio: auto; object-fit: cover; }
.project-body { display: grid; gap: 12px; padding: 16px; }
.grid-urbanizaciones .project-body { gap: 10px; padding: 14px; }
.grid-urbanizaciones .project-body form .btn { width: 100%; }
.project-body h2 { margin: 0; }
.project-owner { margin: 0; font-size: 13px; color: #4d5d64; }
.project-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; font-size: 14px; }
.public-page { max-width: 1180px; margin: 0 auto; padding: 28px; }
.public-header { display: flex; justify-content: space-between; gap: 16px; align-items: center; margin-bottom: 22px; }
.public-header h1 { margin: 0; font-size: 30px; }
.public-header p { margin: 4px 0 0; color: #0f766e; font-weight: 700; }
.public-filter { max-width: none; margin-bottom: 18px; }
.public-link-box,
.public-link-cell { display: grid; gap: 6px; max-width: 360px; }
.public-link-box { margin-top: 10px; }
.public-link-box span,
.public-link-cell span { color: #6c7a80; font-size: 13px; font-weight: 800; }
.public-link-box a,
.public-link-cell a { color: #0f766e; font-size: 13px; font-weight: 800; overflow-wrap: anywhere; }
.public-link-qr { width: 110px; height: 110px; border: 1px solid #dce4e8; border-radius: 8px; padding: 6px; background: #fff; }
.public-cta { margin-top: 18px; display: flex; justify-content: space-between; gap: 16px; align-items: center; }
.hero-panel { display: flex; justify-content: space-between; align-items: center; gap: 18px; background: #fff; border: 1px solid #dce4e8; border-left: 6px solid #0f766e; border-radius: 8px; padding: 22px; margin-bottom: 18px; }
.metric { border-top: 4px solid #0f766e; }
.dashboard-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 18px; }
.report-card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.report-link-card { display: grid; gap: 8px; }
.report-link-card strong { font-size: 18px; color: #0f766e; }
.report-link-card span { color: #6c7a80; font-size: 14px; }
.bar-list { display: grid; gap: 12px; }
.bar-row { display: grid; grid-template-columns: 120px 1fr 86px; align-items: center; gap: 10px; }
.bar-track { height: 14px; border-radius: 999px; overflow: hidden; background: #edf2f4; }
.bar-fill { height: 100%; border-radius: 999px; background: #0f766e; }
.bar-fill.disponible { background: #16a34a; }
.bar-fill.vendido { background: #dc2626; }
.bar-fill.reservado { background: #2563eb; }
.bar-fill.bloqueado { background: #6b7280; }
.bar-fill.income { background: #0f766e; }
.footer { margin-top: 28px; padding-top: 16px; border-top: 1px solid #dce4e8; color: #6c7a80; font-size: 13px; }
.stat-value { font-size: 30px; font-weight: 800; margin-top: 6px; }
.table { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid #dce4e8; border-radius: 8px; overflow: hidden; }
.table th, .table td { padding: 12px 14px; border-bottom: 1px solid #e8edf0; text-align: left; vertical-align: top; }
.table th { background: #eef3f4; font-size: 13px; text-transform: uppercase; letter-spacing: .04em; color: #4d5d64; }
.sort-link { display: inline-flex; align-items: center; gap: 6px; color: inherit; text-decoration: none; cursor: pointer; }
.sort-link:hover, .sort-link.active { color: var(--primary); }
.sort-indicator { font-weight: 900; }
.actions { display: flex; gap: 8px; align-items: center; }
.context-title { margin: 0 0 5px; color: #0f766e; font-size: 14px; font-weight: 800; }
.filter-form { display: grid; grid-template-columns: repeat(4, minmax(150px, 1fr)); gap: 14px; align-items: end; max-width: none; margin-bottom: 18px; padding: 16px; }
.filter-form.compact { grid-template-columns: minmax(240px, 1fr) auto; }
.filter-form.list-filters { grid-template-columns: minmax(260px, 2fr) repeat(2, minmax(150px, 1fr)) auto; }
.filter-form.sales-filters { grid-template-columns: minmax(260px, 2fr) repeat(4, minmax(140px, 1fr)) auto; }
.filter-form.cash-filters { grid-template-columns: minmax(260px, 2fr) repeat(4, minmax(130px, 1fr)); }
.filter-form.cash-filters .filter-actions { grid-column: 1 / -1; }
.filter-form.cash-filters details.more-filters { grid-column: 1 / -1; margin-top: 2px; }
.filter-form.cash-filters details.more-filters > summary { cursor: pointer; font-weight: 800; font-size: 13px; color: #0f766e; user-select: none; list-style: none; display: inline-flex; align-items: center; gap: 7px; }
.filter-form.cash-filters details.more-filters > summary::-webkit-details-marker { display: none; }
.filter-form.cash-filters details.more-filters > summary::before { content: "\25b8"; transition: transform .12s ease; }
.filter-form.cash-filters details.more-filters[open] > summary::before { transform: rotate(90deg); }
.filter-form.cash-filters .more-filters-grid { display: grid; grid-template-columns: repeat(3, minmax(150px, 1fr)); gap: 14px; align-items: end; margin-top: 12px; padding: 14px; border: 1px solid #e8edf0; border-radius: 8px; background: #f8fafb; }
.filter-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.filter-actions .btn { min-height: 42px; }
.list-summary { margin: 0 0 10px; color: #6c7a80; font-size: 14px; font-weight: 700; }
.empty-table { padding: 26px !important; text-align: center !important; color: #6c7a80; font-weight: 700; }
.table-scroll { width: 100%; overflow-x: auto; }
.receipt-verification-page { max-width: 760px; }
.receipt-verification-card { display: grid; gap: 18px; }
.receipt-public-header { display: flex; gap: 14px; align-items: center; border-bottom: 1px solid #dce4e8; padding-bottom: 14px; }
.receipt-public-header img { max-width: 74px; max-height: 74px; object-fit: contain; }
.receipt-public-header h1 { margin: 0; font-size: 24px; }
.receipt-public-header p { margin: 4px 0 0; color: #6c7a80; font-weight: 700; }
.receipt-status { border-radius: 8px; padding: 14px 16px; font-weight: 900; text-align: center; letter-spacing: .04em; }
.receipt-status-valid { background: #dff7ea; color: #125b34; }
.receipt-status-annulled,
.receipt-status-missing { background: #fde7e7; color: #8a1f11; }
.receipt-status-pending { background: #fff4d6; color: #7a5a00; }
.receipt-status-rejected { background: #fde7e7; color: #8a1f11; }
.receipt-public-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; }
.receipt-public-details div { border: 1px solid #dce4e8; border-radius: 8px; padding: 12px; background: #f8fafb; }
.receipt-public-details dt { color: #6c7a80; font-size: 12px; font-weight: 800; text-transform: uppercase; }
.receipt-public-details dd { margin: 4px 0 0; font-weight: 800; }
.form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; max-width: 920px; }
.check-row { display: flex; gap: 8px; align-items: center; margin-top: 26px; }
.check-row input { width: auto; }
.field { display: grid; gap: 6px; }
.field.full { grid-column: 1 / -1; }
.cliente-search { position: relative; }
.cliente-search-results { display: grid; gap: 4px; position: absolute; left: 0; right: 0; top: 100%; z-index: 30; max-height: 240px; overflow: auto; padding: 6px; border: 1px solid #cbd5da; border-radius: 8px; background: #fff; box-shadow: 0 10px 24px rgba(16,32,39,.14); }
.cliente-search-results[hidden] { display: none !important; }
.cliente-search-result { display: grid; gap: 2px; width: 100%; border: 0; border-radius: 6px; padding: 9px 10px; background: #f8fafb; text-align: left; cursor: pointer; }
.cliente-search-results .cliente-search-result + .cliente-search-result { margin-top: 4px; }
.cliente-search-result:hover { background: #dce4e8; }
.cliente-search-result span { color: #6c7a80; font-size: 13px; }
.cliente-selected-card { border: 1px solid #dce4e8; border-left: 4px solid #0f766e; border-radius: 8px; padding: 10px 12px; background: #f8fafb; }
.cliente-selected-card strong { display: block; margin-bottom: 6px; }
.cliente-selected-detail { margin-top: 3px; color: #4d5d64; font-size: 13px; font-weight: 700; }
.cliente-selected-card span { color: #6c7a80; font-size: 13px; }
.cliente-validation-error { color: #b42318; font-size: 13px; font-weight: 700; }
label { font-weight: 700; font-size: 14px; }
input, select, textarea { width: 100%; border: 1px solid #cbd5da; border-radius: 8px; padding: 10px 12px; font: inherit; background: #fff; }
textarea { min-height: 90px; resize: vertical; }
.status { margin-bottom: 16px; padding: 12px 14px; border-radius: 8px; background: #dff7ea; color: #125b34; }
.errors { margin-bottom: 16px; padding: 12px 14px; border-radius: 8px; background: #fde7e7; color: #8a1f11; }
.badge { display: inline-flex; border-radius: 999px; padding: 4px 10px; font-size: 12px; font-weight: 800; text-transform: uppercase; }
.disponible { background: #dff7ea; color: #125b34; }
.reservado { background: #dbeafe; color: #1d4ed8; }
.vendido { background: #fde7e7; color: #8a1f11; }
.bloqueado { background: #e7ecf2; color: #34404a; }
.activa { background: #dff7ea; color: #125b34; }
.convertida { background: #e0f2fe; color: #075985; }
.cancelada { background: #e7ecf2; color: #34404a; }
.parcial { background: #fff2cc; color: #7a4b00; }
.pagada { background: #dff7ea; color: #125b34; }
.pendiente, .vencida { background: #fde7e7; color: #8a1f11; }
.map-section { margin-top: 18px; }
.map-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; margin-bottom: 14px; }
.legend { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; font-size: 13px; }
.legend-dot { display: inline-block; width: 12px; height: 12px; border-radius: 999px; margin-right: 6px; vertical-align: -1px; }
.legend-dot.disponible { background: #16a34a; }
.legend-dot.vendido { background: #dc2626; }
.legend-dot.reservado { background: #2563eb; }
.legend-dot.bloqueado { background: #6b7280; }
.empty-plan { border: 1px dashed #cbd5da; border-radius: 8px; padding: 42px; text-align: center; color: #6c7a80; background: #f8fafb; }
.plan-preview { display: block; width: min(720px, 100%); height: auto; border: 1px solid #dce4e8; border-radius: 8px; }
.map-shell { position: relative; }
.map-tools-toggle { position: absolute; top: 12px; right: 12px; z-index: 22; display: inline-flex; min-width: 0; min-height: 40px; padding: 8px 14px; border-radius: 999px; box-shadow: 0 6px 16px rgba(16,32,39,.18); }
.map-location-quick { display: none; }
.map-zoom-controls { position: absolute; top: 60px; right: 12px; z-index: 20; display: none; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; align-items: stretch; justify-content: stretch; width: min(320px, calc(100% - 24px)); max-width: 320px; padding: 10px; border-radius: 16px; background: rgba(255,255,255,.94); box-shadow: 0 10px 28px rgba(16,32,39,.18); pointer-events: auto; }
.map-zoom-controls.open { display: grid; }
.map-zoom-controls .btn { min-width: 44px; min-height: 42px; padding: 9px 12px; }
.zoom-value { min-width: 54px; text-align: center; font-weight: 800; color: #17202a; }
.zoom-value,
.gps-location-status { grid-column: 1 / -1; justify-self: stretch; }
.map-help { margin-bottom: 12px; }
.plan-map-viewport { position: relative; width: 100%; border-radius: 8px; border: 1px solid #cbd5da; overflow: hidden; background: #f8fafb; touch-action: none; z-index: 1; }
.plan-map-viewport.pannable { cursor: grab; }
.plan-map-viewport.panning { cursor: grabbing; }
.plan-map-viewport.editing { cursor: crosshair; outline: 3px solid #0f766e; }
.map-modal-open .plan-map-viewport { pointer-events: none; }
.plan-map-layer { position: relative; width: 100%; transform-origin: 0 0; will-change: transform; transition: transform .12s ease-out; }
.plan-map-image { display: block; width: 100%; height: auto; user-select: none; pointer-events: none; }
.edit-panel { display: grid; grid-template-columns: repeat(4, minmax(160px, 1fr)); gap: 14px; align-items: end; border: 1px solid #dce4e8; border-radius: 8px; padding: 14px; margin-bottom: 14px; background: #f8fafb; }
.edit-panel[hidden] { display: none; }
.map-point,
.lot-point { position: absolute; inline-size: clamp(8px, 1.4vw, 22px); block-size: clamp(8px, 1.4vw, 22px); transform: translate(-50%, -50%); transform-origin: center; border: clamp(1px, .16vw, 2px) solid #fff; border-radius: 999px; box-shadow: 0 3px 10px rgba(0,0,0,.25); cursor: pointer; padding: 0; color: #fff; font-size: clamp(6px, .7vw, 11px); font-weight: 800; z-index: 2; display: inline-grid; place-items: center; }
.map-point span,
.lot-point span { display: block; line-height: 1; text-shadow: 0 1px 2px rgba(0,0,0,.35); }
.plan-map-layer.zoom-labels-hidden .lot-point span { display: none; }
.map-point.disponible { background: #16a34a; }
.map-point.vendido { background: #dc2626; }
.map-point.reservado { background: #2563eb; }
.map-point.bloqueado { background: #6b7280; }
.map-point.public { pointer-events: none; }
.gps-reference-layer { position: absolute; inset: 0; z-index: 4; pointer-events: none; }
.gps-reference-marker { display: grid; grid-template-columns: auto 1fr; gap: 8px; align-items: start; padding: 8px 10px; border: 1px solid rgba(15,118,110,.22); border-radius: 8px; background: rgba(255,255,255,.94); box-shadow: 0 6px 16px rgba(16,32,39,.16); color: #102027; font-size: 12px; }
.gps-reference-marker:not(.on-plan) { position: relative; left: 16px; top: 16px; max-inline-size: min(360px, calc(100% - 32px)); margin-bottom: 8px; }
.gps-reference-marker.on-plan { position: absolute; transform: translate(-50%, -100%); min-inline-size: 150px; max-inline-size: 240px; pointer-events: auto; }
.gps-reference-marker strong,
.gps-reference-marker small { display: block; line-height: 1.25; }
.gps-reference-marker small { color: #52616b; }
.gps-reference-pin { inline-size: 22px; block-size: 22px; margin-top: 1px; border: 2px solid #fff; border-radius: 999px; background: #0f766e; box-shadow: 0 2px 8px rgba(15,118,110,.38); display: inline-grid; place-items: center; font-size: 12px; line-height: 1; }
.gps-reference-legend { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; color: #52616b; font-size: 12px; }
.gps-reference-legend span { display: inline-flex; align-items: center; gap: 4px; padding: 4px 8px; border-radius: 999px; background: #edf5f5; }
.map-zoom-controls .btn.active { background: #0f766e; color: #fff; }
.gps-location-status { padding: 7px 10px; border-radius: 999px; background: #eef4f6; color: #102027; font-size: 12px; font-weight: 700; }
.gps-location-status.good { background: #dcfce7; color: #166534; }
.gps-location-status.medium { background: #fef9c3; color: #854d0e; }
.gps-location-status.bad { background: #fee2e2; color: #991b1b; }
.current-location-marker { position: absolute; z-index: 8; transform: translate(-50%, -100%); display: grid; justify-items: center; gap: 4px; pointer-events: none; color: #1d4ed8; font-size: 12px; font-weight: 800; text-align: center; text-shadow: 0 1px 2px #fff; }
.current-location-marker span { inline-size: 22px; block-size: 22px; border: 3px solid #fff; border-radius: 999px; background: #2563eb; box-shadow: 0 0 0 0 rgba(37,99,235,.45); animation: current-location-pulse 1.35s infinite; }
.current-location-marker strong { display: block; padding: 2px 6px; border-radius: 999px; background: rgba(255,255,255,.9); white-space: nowrap; }
@keyframes current-location-pulse {
    0% { box-shadow: 0 0 0 0 rgba(37,99,235,.5); }
    70% { box-shadow: 0 0 0 14px rgba(37,99,235,0); }
    100% { box-shadow: 0 0 0 0 rgba(37,99,235,0); }
}

.quick-search { margin: 18px 0; }
.quick-search input { min-height: 48px; flex: 1; font-size: 1rem; }
.quick-debts { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.quick-debt .actions, .quick-pending .actions { display: flex; flex-wrap: wrap; gap: 8px; }
.quick-modal { width: min(680px, 94vw); max-height: 92vh; border: 0; border-radius: 16px; padding: 24px; }
.quick-modal::backdrop { background: rgba(15, 23, 42, .72); }
.preview-box { margin: 14px 0; padding: 12px; background: #f1f5f9; border-radius: 8px; }
.quick-pending article { padding: 14px 0; border-bottom: 1px solid #e5e7eb; }
@media (max-width: 640px) {
    .quick-summary, .quick-debts { grid-template-columns: 1fr; }
    .quick-modal { width: 100vw; height: 100vh; max-height: 100vh; border-radius: 0; }
    .quick-debt .btn { flex: 1; min-height: 46px; }
    .quick-search .actions { display: grid; }
}
.gps-plan-picker { display: grid; gap: 10px; }
.gps-plan-frame { position: relative; overflow: auto; border: 1px solid #dce4e8; border-radius: 8px; background: #eef4f6; }
.gps-plan-frame img { display: block; width: 100%; height: auto; }
.gps-temp-marker { position: absolute; inline-size: 20px; block-size: 20px; transform: translate(-50%, -50%); border: 3px solid #fff; border-radius: 999px; background: #0f766e; box-shadow: 0 4px 14px rgba(15,118,110,.35); pointer-events: none; }
.topbar.compact { margin-bottom: 10px; align-items: end; }
.map-modal { display: none; position: fixed; inset: 0; background: rgba(16,32,39,.45); place-items: center; padding: 24px; z-index: 10; }
.modal-overlay { position: fixed; inset: 0; background: rgba(16,32,39,.45); z-index: 9999; pointer-events: auto; }
.lot-modal { position: fixed; inset: 0; z-index: 10000; display: grid; place-items: center; padding: 24px; pointer-events: auto; }
.lot-modal .map-dialog,
.lot-modal a,
.lot-modal button { pointer-events: auto; }
.map-dialog { position: relative; z-index: 10001; background: #fff; width: min(480px, 100%); border-radius: 8px; padding: 20px; overflow-wrap: anywhere; }
.lot-modal-actions { flex-wrap: wrap; }
.calculator-btn { background: #f97316; color: #fff; }
.calculator-btn:hover { background: #ea580c; }
.commercial-calculator-modal { position: fixed; inset: 0; z-index: 10002; display: grid; place-items: center; padding: 24px; pointer-events: auto; }
.commercial-calculator-dialog { width: min(720px, 92vw); max-height: 85vh; overflow-y: auto; overflow-x: hidden; display: grid; gap: 16px; padding: 22px; border-radius: 16px; background: #fff; box-shadow: 0 24px 60px rgba(16,32,39,.24); }
.calculator-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.calculator-header h2 { margin: 0; }
.calculator-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.calculator-tab { background: #0f766e; color: #fff; }
.calculator-tab.semi { background: #d97706; }
.calculator-tab:not(.active) { opacity: .72; filter: grayscale(.25); }
.calculator-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.calculator-alert { margin: 0; padding: 10px 12px; border-radius: 12px; background: #ecfdf5; color: #0f766e; font-weight: 800; }
.calculator-error { margin: 0; padding: 10px 12px; border-radius: 12px; background: #fee2e2; color: #991b1b; font-weight: 800; }
.calculator-results { display: grid; gap: 10px; }
.calculator-results div { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px; border-radius: 12px; border: 1px solid rgba(16,32,39,.08); background: #f8fafb; }
.calculator-results span { color: #52616b; font-weight: 700; }
.calculator-results strong { text-align: right; overflow-wrap: anywhere; }
.calculator-results.teal div { border-color: rgba(15,118,110,.18); background: #f0fdfa; }
.calculator-results.gold div { border-color: rgba(217,119,6,.2); background: #fffbeb; }
.calculator-note { margin: 0; padding: 12px; border-radius: 12px; background: #eef4f6; color: #52616b; font-weight: 700; }
.map-grid { display: grid; grid-template-columns: repeat(4, minmax(90px, 1fr)); gap: 10px; }
.lot-tile { min-height: 78px; border: 2px solid transparent; border-radius: 8px; padding: 10px; display: grid; gap: 4px; align-content: center; }
.login-page { position: relative; min-height: 100vh; display: grid; place-items: center; padding: 24px; background: linear-gradient(135deg, #102027, #0f766e); background-position: center; background-repeat: no-repeat; background-size: cover; }
.login-page.has-background::before { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.35); }
.login-card { position: relative; z-index: 1; display: grid; gap: 16px; width: min(420px, 100%); padding: 32px; border: 1px solid rgba(255,255,255,.65); border-radius: 16px; background: rgba(255,255,255,.92); box-shadow: 0 20px 50px rgba(0,0,0,.22); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.login-heading { display: grid; justify-items: center; gap: 7px; text-align: center; }
.login-heading h1 { margin: 0; font-size: 27px; line-height: 1.15; }
.login-heading p { margin: 0; color: #526168; font-weight: 700; }
.login-heading span { color: #6c7a80; font-size: 13px; }
.login-logo { display: block; max-width: min(220px, 100%); max-height: 100px; margin-bottom: 5px; object-fit: contain; }
.login-field { text-align: left; }
.login-remember { display: flex; gap: 8px; align-items: center; justify-self: start; }
.login-remember input { width: auto; }
.login-submit { width: 100%; }
.image-setting { align-content: start; }
.setting-image-preview { display: grid; place-items: center; min-height: 100px; margin-bottom: 8px; padding: 10px; border: 1px solid #dce4e8; border-radius: 8px; background: #f8fafb; }
.setting-image-preview img { display: block; max-width: 100%; max-height: 90px; object-fit: contain; }
.setting-image-preview.background-preview { min-height: 150px; }
.setting-image-preview.background-preview img { width: 100%; height: 140px; max-height: none; object-fit: cover; }
.pagination-wrapper{
    display:flex;
    justify-content:center;
    margin-top:20px;
    margin-bottom:20px;
    overflow-x:auto;
}
.pagination{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:6px;
    margin-bottom:0;
    padding-left:0;
    list-style:none;
}
.pagination .page-item{ list-style:none; }
.pagination .page-link{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:38px;
    min-height:38px;
    padding:8px 12px;
    border:1px solid #cbd5da;
    border-radius:8px;
    background:#fff;
    color:#17202a;
    font-size:14px;
    font-weight:800;
    text-decoration:none;
}
.pagination .page-link:hover{
    border-color:#0f766e;
    color:#0f766e;
}
.pagination .page-item.active .page-link{
    background:#0f766e;
    border-color:#0f766e;
    color:#fff;
}
.pagination .page-item.disabled .page-link{
    color:#9aa8ae;
    background:#eef3f4;
    pointer-events:none;
}
.phone-with-whatsapp{
    display:inline-flex;
    align-items:center;
    gap:8px;
}
.whatsapp-link{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:28px;
    height:28px;
    border-radius:999px;
    background:#25d366;
    color:#fff;
    font-weight:900;
    text-decoration:none;
}
.whatsapp-link:hover{
    background:#1ebe5d;
    color:#fff;
}
.inline-money-input{
    width:130px;
    min-height:38px;
    padding:8px 10px;
    border:1px solid #cbd5da;
    border-radius:8px;
    font-weight:800;
}
.mini-badge{
    display:inline-flex;
    margin-top:6px;
    padding:3px 7px;
    border-radius:999px;
    background:#e0f2fe;
    color:#075985;
    font-size:12px;
    font-weight:800;
}
.bulk-lotes-panel{
    margin-bottom:18px;
    border:2px solid #b8ddd8;
}
.bulk-check{
    display:inline-flex;
    align-items:center;
    gap:8px;
    min-width:150px;
    font-weight:800;
}
.lote-bulk-checkbox,
.bulk-check input{
    width:18px;
    height:18px;
    accent-color:#0f766e;
}
@media (max-width: 850px) {
    .shell { grid-template-columns: 1fr; }
    .sidebar { position: static; }
    .stats, .form { grid-template-columns: 1fr; }
    .project-grid:not(.grid-urbanizaciones) { grid-template-columns: 1fr; }
    .filter-form, .filter-form.compact { grid-template-columns: 1fr; }
    .filter-form.cash-filters .more-filters-grid { grid-template-columns: repeat(2, minmax(150px, 1fr)); }
    .public-header, .public-cta { align-items: flex-start; flex-direction: column; }
    .receipt-public-details { grid-template-columns: 1fr; }
    .dashboard-grid { grid-template-columns: 1fr; }
    .hero-panel { align-items: flex-start; flex-direction: column; }
    .bar-row { grid-template-columns: 90px 1fr 64px; }
    .edit-panel { grid-template-columns: 1fr; }
    .map-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .map-zoom-controls { left: auto; right: 10px; top: 58px; width: min(320px, calc(100% - 20px)); }
    .map-zoom-controls .btn { flex: 1 1 42px; }
}
@media (max-width: 1200px) {
    .grid-urbanizaciones { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .filter-form, .filter-form.list-filters, .filter-form.sales-filters, .filter-form.cash-filters { grid-template-columns: repeat(2, minmax(150px, 1fr)); }
    .filter-form.cash-filters .filter-actions { grid-column: auto; }
}
@media (max-width: 768px) {
    .grid-urbanizaciones { grid-template-columns: 1fr; }
    .filter-form, .filter-form.compact, .filter-form.list-filters, .filter-form.sales-filters, .filter-form.cash-filters { grid-template-columns: 1fr; }
    .filter-form.cash-filters .more-filters-grid { grid-template-columns: 1fr; }
    .main { padding: 16px; }
    .map-shell { min-height: 420px; }
    .plan-map-viewport { min-height: 420px; overflow: auto; touch-action: pan-x pan-y; -webkit-overflow-scrolling: touch; }
    .plan-map-layer { transform-origin: top left; min-width: 720px; }
    .map-location-quick {
        position: absolute;
        top: 8px;
        z-index: 22;
        display: inline-flex;
        min-width: 0;
        min-height: 38px;
        padding: 8px 10px;
        border-radius: 999px;
        font-size: 12px;
        box-shadow: 0 6px 16px rgba(16,32,39,.18);
    }
    .map-location-quick { left: 8px; background: #2563eb; color: #fff; }
    .map-location-quick.active { background: #1d4ed8; }
    .map-tools-toggle {
        top: 8px;
        right: 8px;
        min-height: 38px;
        padding: 8px 10px;
        font-size: 12px;
    }
    .map-zoom-controls {
        right: 8px;
        left: auto;
        top: 54px;
        width: min(90vw, 320px);
        max-width: 90vw;
        max-height: min(40vh, 320px);
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 6px;
        padding: 8px;
        justify-content: stretch;
        align-items: stretch;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }
    .map-zoom-controls .btn {
        min-width: 0;
        min-height: 42px;
        padding: 7px 8px;
        font-size: 12px;
        line-height: 1.15;
        white-space: normal;
        text-align: center;
    }
    .zoom-value,
    .gps-location-status {
        grid-column: 1 / -1;
        justify-self: stretch;
        text-align: center;
    }
    .lot-modal { padding: 12px; align-items: center; }
    .map-dialog {
        width: 92vw;
        max-width: 92vw;
        max-height: 85vh;
        overflow-y: auto;
        overflow-x: hidden;
        padding: 20px;
        border-radius: 16px;
    }
    .map-dialog p { overflow-wrap: anywhere; }
    .lot-modal-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
        align-items: stretch;
    }
    .commercial-calculator-modal { padding: 12px; align-items: center; }
    .commercial-calculator-dialog {
        width: 92vw;
        max-width: 92vw;
        max-height: 85vh;
        padding: 16px;
    }
    .calculator-header { display: grid; grid-template-columns: 1fr auto; align-items: start; }
    .calculator-fields { grid-template-columns: 1fr; }
    .calculator-results div { display: grid; gap: 4px; }
    .calculator-results strong { text-align: left; }
    .lot-modal-actions a,
    .lot-modal-actions button {
        width: 100%;
        min-height: 48px;
        white-space: normal;
        text-align: center;
        padding: 10px;
    }
    .map-point,
    .lot-point { inline-size: clamp(6px, 2vw, 16px); block-size: clamp(6px, 2vw, 16px); font-size: clamp(5px, 1vw, 9px); border-width: clamp(1px, .2vw, 2px); }
}
@media (max-width: 420px) {
    .lot-modal-actions { grid-template-columns: 1fr; }
    .map-dialog { padding: 16px; }
}

/* Modern dashboard visual refresh */
:root {
    --app-bg: #edf8f4;
    --app-bg-soft: #f7fbf9;
    --surface: #ffffff;
    --surface-muted: #f3f8f6;
    --line-soft: rgba(15, 118, 110, .12);
    --line-subtle: rgba(16, 32, 39, .08);
    --text-main: #102027;
    --text-muted: #61727a;
    --primary-strong: #0f766e;
    --primary-soft: #dff5ef;
    --danger-soft: #fce8e6;
    --danger-strong: #b42318;
    --shadow-soft: 0 18px 45px rgba(16, 32, 39, .08);
    --shadow-card: 0 10px 28px rgba(16, 32, 39, .065);
}

body {
    background:
        radial-gradient(circle at 18% 0%, rgba(134, 239, 172, .20), transparent 34%),
        linear-gradient(135deg, #edf8f4 0%, #f7fbf9 42%, #eef7f3 100%);
    color: var(--text-main);
}

.shell {
    grid-template-columns: 280px 1fr;
}

.main {
    padding: 34px;
}

.sidebar {
    background: linear-gradient(180deg, #082f2c 0%, #0e3d39 54%, #102027 100%);
    padding: 26px 20px;
    box-shadow: 18px 0 45px rgba(16, 32, 39, .13);
}

.brand {
    padding: 16px;
    margin-bottom: 20px;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 22px;
    background: rgba(255,255,255,.06);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}

.brand span {
    color: rgba(236,244,241,.72);
}

.brand img {
    border-radius: 16px;
}

.current-project {
    border: 1px solid rgba(185, 203, 200, .18);
    border-radius: 18px;
    padding: 14px;
    background: rgba(255,255,255,.08);
}

.current-project span,
.current-project a {
    color: rgba(236,244,241,.72);
}

.sidebar-selector select {
    border-radius: 14px;
    padding: 11px 12px;
    background: rgba(255,255,255,.96);
}

.nav {
    gap: 10px;
}

.sidebar-group {
    border-radius: 16px;
}

.sidebar-group-toggle,
.nav a,
.logout {
    border-radius: 14px;
    padding: 12px 14px;
}

.sidebar-group-toggle {
    color: rgba(255,255,255,.92);
}

.sidebar-group-toggle:hover,
.sidebar-group.active > .sidebar-group-toggle {
    background: rgba(255,255,255,.10);
}

.sidebar-link.active,
.nav a.active {
    background: linear-gradient(135deg, var(--primary-strong), #12a08f);
    box-shadow: 0 10px 24px rgba(15,118,110,.28);
}

.sidebar-submenu a,
.nav-disabled {
    padding-left: 42px;
}

.topbar {
    margin-bottom: 26px;
}

.title {
    font-size: clamp(26px, 3vw, 36px);
    letter-spacing: 0;
}

.subtitle,
.context-title,
.report-link-card strong {
    color: var(--primary-strong);
}

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

.card,
.project-card,
.hero-panel,
.filter-form,
.public-filter,
.receipt-verification-card,
.bulk-lotes-panel,
.login-card {
    border: 1px solid var(--line-soft);
    border-radius: 22px;
    background: rgba(255,255,255,.96);
    box-shadow: var(--shadow-card);
}

.card {
    padding: 24px;
}

.hero-panel {
    padding: 30px;
    border-left: 0;
    box-shadow: var(--shadow-soft);
}

.metric {
    position: relative;
    overflow: hidden;
    border-top: 0;
}

.metric::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 5px;
    background: linear-gradient(180deg, var(--primary-strong), #8ee5d1);
}

.card.metric.disponible,
.card.metric.vendido,
.card.metric.reservado {
    background: rgba(255,255,255,.96);
    color: var(--text-main);
}

.stat-value {
    font-size: clamp(30px, 4vw, 42px);
    letter-spacing: 0;
}

.btn {
    min-height: 44px;
    border-radius: 14px;
    padding: 11px 17px;
    background: linear-gradient(135deg, var(--primary-strong), #10a08f);
    box-shadow: 0 10px 22px rgba(15,118,110,.18);
    transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
}

.btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 14px 26px rgba(15,118,110,.22);
}

.btn.secondary {
    background: #e9f0ef;
    color: #1e3438;
    box-shadow: none;
}

.btn.danger {
    background: #c0392b;
    color: #fff;
    box-shadow: 0 10px 22px rgba(180,35,24,.14);
}

input,
select,
textarea {
    border-color: rgba(16,32,39,.14);
    border-radius: 14px;
    padding: 12px 14px;
    background: #fff;
    transition: border-color .16s ease, box-shadow .16s ease;
}

input:focus,
select:focus,
textarea:focus {
    outline: none;
    border-color: rgba(15,118,110,.62);
    box-shadow: 0 0 0 4px rgba(15,118,110,.10);
}

label {
    color: #243b40;
}

.form,
.filter-form {
    gap: 18px;
}

.table {
    border: 1px solid var(--line-soft);
    border-radius: 20px;
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
    box-shadow: var(--shadow-card);
}

.table th {
    background: #eff8f5;
    color: #4b6266;
    letter-spacing: .03em;
}

.table th,
.table td {
    padding: 15px 16px;
    border-bottom: 1px solid rgba(16,32,39,.06);
}

.table tbody tr:hover {
    background: #f8fcfa;
}

.badge {
    padding: 6px 11px;
}

.status,
.errors,
.empty-plan,
.cliente-selected-card,
.receipt-public-details div {
    border-radius: 16px;
}

.bar-track {
    height: 16px;
    background: #e5f1ed;
}

.footer {
    border-top: 1px solid rgba(16,32,39,.08);
    color: var(--text-muted);
}

.plan-map-viewport,
.map-dialog,
.gps-plan-frame,
.plan-preview {
    border-radius: 20px;
    border-color: var(--line-soft);
}

.map-zoom-controls {
    border: 1px solid rgba(255,255,255,.7);
    border-radius: 16px;
    background: rgba(255,255,255,.94);
    box-shadow: var(--shadow-card);
}

.pagination .page-link {
    border-radius: 12px;
}

.pagination .page-item.active .page-link {
    background: var(--primary-strong);
    border-color: var(--primary-strong);
}

.password-toggle-wrapper {
    position: relative;
    display: flex;
    align-items: stretch;
    width: 100%;
}

.password-toggle-wrapper .password-toggle-input {
    width: 100%;
    padding-right: 48px;
}

.password-toggle-button {
    position: absolute;
    top: 50%;
    right: 10px;
    transform: translateY(-50%);
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: var(--text-muted);
    cursor: pointer;
    font-size: 18px;
    line-height: 1;
    z-index: 2;
}

.password-toggle-button:hover,
.password-toggle-button:focus {
    background: rgba(15, 118, 110, .1);
    color: var(--primary-strong);
    outline: none;
}

@media (max-width: 1200px) {
    .main {
        padding: 26px;
    }
}

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

    .sidebar {
        padding: 18px;
        box-shadow: 0 12px 32px rgba(16,32,39,.12);
    }

    .main {
        padding: 20px;
    }

    .card,
    .hero-panel,
    .filter-form {
        border-radius: 18px;
        padding: 18px;
    }

    .table {
        display: block;
        width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .table th,
    .table td {
        min-width: 120px;
    }

    .actions {
        flex-wrap: wrap;
    }
}

@media (max-width: 768px) {
    .main {
        padding: 16px;
    }

    .title {
        font-size: 26px;
    }

    .topbar {
        align-items: flex-start;
        flex-direction: column;
    }

    .btn {
        min-height: 46px;
    }

    .map-zoom-controls {
        border-radius: 16px;
    }
}

/* Fase estetica 1: capa visual global segura */
:root {
    --mint-bg: #eefaf6;
    --mint-bg-deep: #e5f6ef;
    --panel: #ffffff;
    --panel-soft: #f7fcfa;
    --ink: #102027;
    --ink-soft: #5f7479;
    --teal: var(--primary, #0f766e);
    --teal-dark: #083f3b;
    --teal-deeper: #072d2b;
    --teal-soft: #dff7ef;
    --danger-bg: #fee8e5;
    --danger-text: #9b1c12;
    --warning-bg: #fff6d7;
    --warning-text: #7a4b00;
    --radius-lg: 22px;
    --radius-md: 16px;
    --shadow-premium: 0 18px 48px rgba(16, 32, 39, .08);
    --shadow-subtle: 0 10px 28px rgba(16, 32, 39, .06);
}

body {
    min-height: 100vh;
    background:
        radial-gradient(circle at 8% 2%, rgba(20, 184, 166, .13), transparent 28%),
        radial-gradient(circle at 92% 0%, rgba(134, 239, 172, .18), transparent 28%),
        linear-gradient(145deg, var(--mint-bg) 0%, #f7fcfa 46%, var(--mint-bg-deep) 100%);
    color: var(--ink);
}

.shell {
    background: transparent;
}

.main {
    min-width: 0;
}

.sidebar {
    background:
        linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,0) 22%),
        linear-gradient(180deg, var(--teal-deeper) 0%, var(--teal-dark) 55%, #102027 100%);
    border-right: 1px solid rgba(255,255,255,.08);
}

.brand,
.current-project {
    border-radius: var(--radius-lg);
    border-color: rgba(255,255,255,.12);
    background: rgba(255,255,255,.075);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}

.brand {
    letter-spacing: 0;
}

.sidebar-selector select {
    border: 1px solid rgba(255,255,255,.4);
    box-shadow: 0 10px 24px rgba(0,0,0,.10);
}

.sidebar-group-toggle,
.nav a,
.logout {
    border-radius: 15px;
    transition: background .16s ease, color .16s ease, transform .16s ease;
}

.sidebar-group-toggle:hover,
.nav a:hover,
.logout:hover {
    transform: translateX(2px);
    background: rgba(255,255,255,.11);
}

.sidebar-link.active,
.nav a.active {
    background: linear-gradient(135deg, #0f766e 0%, #14b8a6 100%);
    box-shadow: 0 12px 28px rgba(20, 184, 166, .26);
}

.topbar {
    padding-bottom: 4px;
}

.title {
    color: #0b1f24;
    font-weight: 900;
}

.subtitle {
    color: var(--teal);
}

.card,
.project-card,
.hero-panel,
.filter-form,
.public-filter,
.receipt-verification-card,
.bulk-lotes-panel,
.login-card,
.map-dialog,
.empty-plan {
    border: 1px solid rgba(15, 118, 110, .11);
    border-radius: var(--radius-lg);
    background: rgba(255, 255, 255, .96);
    box-shadow: var(--shadow-subtle);
}

.card:hover,
.project-card:hover,
.hero-panel:hover {
    box-shadow: var(--shadow-premium);
}

.hero-panel {
    background:
        linear-gradient(135deg, rgba(255,255,255,.98), rgba(247,252,250,.96)),
        radial-gradient(circle at 8% 10%, rgba(20,184,166,.14), transparent 32%);
}

.project-card {
    overflow: hidden;
}

.project-card img,
.project-placeholder {
    background: #eaf5f2;
}

.metric {
    min-height: 126px;
}

.metric .muted {
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .03em;
    font-size: 12px;
}

.stat-value {
    color: #0b1f24;
}

.btn {
    border-radius: 14px;
    min-height: 44px;
    font-weight: 800;
    letter-spacing: 0;
    background: linear-gradient(135deg, var(--teal) 0%, #13a895 100%);
    box-shadow: 0 10px 24px rgba(15, 118, 110, .18);
}

.btn.secondary {
    background: #edf4f2;
    color: #213b40;
    box-shadow: none;
}

.btn.danger {
    background: #c0392b;
    color: #fff;
    box-shadow: 0 10px 24px rgba(192, 57, 43, .16);
}

.btn:focus-visible,
input:focus,
select:focus,
textarea:focus,
.sidebar-group-toggle:focus-visible,
.logout:focus-visible {
    outline: none;
    box-shadow: 0 0 0 4px rgba(20, 184, 166, .16);
}

input,
select,
textarea {
    min-height: 44px;
    border-radius: 14px;
    border-color: rgba(16, 32, 39, .14);
    background: #fff;
}

label {
    color: #263f44;
    font-weight: 800;
}

.form,
.filter-form {
    gap: 18px;
}

.table-scroll {
    border-radius: var(--radius-lg);
}

.table {
    border: 1px solid rgba(15, 118, 110, .10);
    border-radius: var(--radius-lg);
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
    box-shadow: var(--shadow-subtle);
}

.table th {
    background: #edf8f5;
    color: #4f686d;
    font-size: 12px;
    letter-spacing: .04em;
}

.table th,
.table td {
    border-bottom: 1px solid rgba(16, 32, 39, .065);
}

.table tbody tr {
    transition: background .14s ease;
}

.table tbody tr:hover {
    background: #f6fbf9;
}

.status,
.errors,
.alert {
    border-radius: var(--radius-md);
    border: 1px solid transparent;
    box-shadow: 0 8px 22px rgba(16, 32, 39, .04);
}

.status {
    border-color: rgba(22, 163, 74, .18);
    background: #e2f8eb;
    color: #125b34;
}

.errors,
.alert.error {
    border-color: rgba(180, 35, 24, .16);
    background: var(--danger-bg);
    color: var(--danger-text);
}

.badge {
    border-radius: 999px;
    letter-spacing: .02em;
}

.pagination-wrapper {
    padding-top: 4px;
}

.pagination .page-link {
    border-radius: 12px;
    border-color: rgba(15,118,110,.16);
    box-shadow: 0 6px 16px rgba(16,32,39,.045);
}

.footer {
    color: var(--ink-soft);
}

.plan-map-viewport,
.gps-plan-frame,
.plan-preview {
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-subtle);
}

@media (max-width: 850px) {
    .sidebar {
        border-radius: 0 0 24px 24px;
    }

    .card,
    .project-card,
    .hero-panel,
    .filter-form {
        border-radius: 18px;
    }

    .actions,
    .filter-actions {
        gap: 10px;
    }
}

@media (max-width: 768px) {
    .btn {
        width: auto;
        min-height: 46px;
    }

    .table-scroll,
    .table {
        width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    input,
    select,
    textarea {
        min-height: 46px;
    }
}

@media print {
    .sidebar, .btn, .no-print, .footer { display: none !important; }
    .shell { display: block; }
    .main, .main-content { margin: 0; padding: 0; }
    body { background: #fff; color: #111; }
    .card, .table { box-shadow: none; break-inside: avoid; }
}
/* Portal financiero: lectura y acciones prioritarias en celular. */
.portal-lots { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.portal-lots .actions { display: flex; flex-wrap: wrap; gap: 8px; }
@media (max-width: 640px) {
    .portal-stats, .portal-lots { grid-template-columns: 1fr; }
    .portal-lots .btn { width: 100%; text-align: center; }
    .table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
}

/* HOGAR CRM — capa visual reutilizable */
:root {
    --crm-black: #0d0f0d;
    --crm-black-2: #151815;
    --crm-surface: #1c201b;
    --crm-charcoal-950: #1f2427;
    --crm-charcoal-900: #252a2d;
    --crm-charcoal-850: #2b3033;
    --crm-table-border: #e5e7e2;
    --crm-table-row-alt: #fafaf7;
    --crm-table-row-hover: #f3f4ef;
    --crm-olive: var(--primary, #879a32);
    --crm-olive-light: #a4b64a;
    --crm-olive-dark: #59671e;
    --crm-canvas: #f4f5ef;
    --crm-muted: #737a70;
    --crm-border: rgba(13, 15, 13, .09);
    --crm-sidebar: 260px;
    --crm-sidebar-mini: 72px;
    --crm-topbar: 76px;
}

body { background: var(--crm-canvas); color: #20251f; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.shell { display: flex; min-height: 100vh; }
.crm-workspace { width: auto; min-width: 0; flex: 1; margin-left: var(--crm-sidebar); transition: margin-left 150ms ease; }
.main.main-content { margin: 0; padding: 30px clamp(20px, 3vw, 42px); min-height: calc(100vh - var(--crm-topbar)); }

.sidebar { position: fixed; inset: 0 auto 0 0; width: var(--crm-sidebar); height: 100vh; padding: 18px 14px; overflow-y: auto; z-index: 50; color: #b8bdb5; background: var(--crm-black); border-right: 1px solid rgba(255,255,255,.06); transition: width 150ms ease, transform 150ms ease; }
.sidebar-brand-row { display: flex; align-items: flex-start; justify-content: space-between; min-height: 72px; padding: 0 4px 14px; border-bottom: 1px solid rgba(255,255,255,.07); }
.sidebar .brand { display: grid; grid-template-columns: 46px 1fr; gap: 0 10px; align-items: center; padding: 0; color: #fff; font-size: 14px; line-height: 1.18; letter-spacing: .055em; }
.sidebar .brand span { color: #858b83; font-size: 9px; letter-spacing: .04em; }
.sidebar-collapse, .icon-button { display: inline-grid; place-items: center; width: 38px; height: 38px; flex: 0 0 38px; border: 1px solid rgba(255,255,255,.09); border-radius: 10px; color: #b8bdb5; background: rgba(255,255,255,.035); cursor: pointer; transition: 180ms ease; }
.sidebar-collapse:hover, .icon-button:hover { color: #fff; background: rgba(135,154,50,.16); border-color: rgba(135,154,50,.3); }
.current-project { margin: 14px 2px 8px; padding: 12px; border-radius: 11px; background: rgba(255,255,255,.035); border: 1px solid rgba(255,255,255,.06); }
.current-project span { color: #777e75; text-transform: uppercase; letter-spacing: .1em; font-size: 9px; }
.current-project strong, .current-project a { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.current-project strong { margin: 4px 0; color: #fff; font-size: 12px; }.current-project a { color: var(--crm-olive-light); font-size: 10px; }
.sidebar-selector select { min-height: 38px; color: #d7dacf; background: var(--crm-black-2); border-color: rgba(255,255,255,.08); }
.accordion-nav { display: flex; flex-direction: column; gap: 5px; padding-top: 10px; }
.sidebar-group { border: 0; background: transparent; }
.sidebar-group-toggle { display: flex; align-items: center; width: 100%; min-height: 43px; gap: 11px; padding: 8px 10px; border: 0; border-radius: 9px; color: #a8ada5; background: transparent; text-align: left; cursor: pointer; transition: 180ms ease; }
.sidebar-group-toggle:hover { color: #fff; background: rgba(135,154,50,.12); }
.menu-icon { display: grid; place-items: center; width: 24px; color: #8e9f42; font-size: 14px; }.menu-label { flex: 1; font-size: 11px; font-weight: 700; letter-spacing: .055em; text-transform: uppercase; }.menu-chevron { font-size: 9px; transition: transform 180ms ease; }.sidebar-group.open .menu-chevron { transform: rotate(180deg); }
.sidebar-submenu { display: none; margin: 3px 0 7px; }.sidebar-group.open .sidebar-submenu { display: grid; gap: 2px; }
.sidebar-link { position: relative; display: flex; align-items: center; min-height: 38px; padding: 8px 10px 8px 45px; border-radius: 8px; color: #969c93; font-size: 12px; transition: 180ms ease; }
.sidebar-link:hover { color: #fff; background: rgba(135,154,50,.1); }.sidebar-link.active { color: #fff; font-weight: 700; background: linear-gradient(90deg, rgba(135,154,50,.35), rgba(135,154,50,.1)); }.sidebar-link.active::before { content:""; position:absolute; inset: 7px auto 7px 0; width:3px; border-radius: 3px; background: var(--crm-olive-light); }
.sidebar-logout { margin-top: auto; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.06); }.sidebar .logout { display:flex; align-items:center; justify-content:flex-start; gap:12px; width:100%; min-height:42px; padding:10px 14px; border-radius:9px; color:#a8ada5; background:transparent; border:0; }.sidebar .logout:hover { color:#fff; background:rgba(255,255,255,.06); }

.crm-topbar { position: sticky; top: 0; z-index: 40; display: flex; align-items: center; justify-content: space-between; height: var(--crm-topbar); padding: 0 clamp(20px, 3vw, 42px); background: rgba(244,245,239,.94); border-bottom: 1px solid var(--crm-border); backdrop-filter: blur(16px); }
.topbar-left,.topbar-actions { display:flex; align-items:center; gap:10px; }.sidebar-trigger { color:#30362e; border-color:var(--crm-border); background:#fff; }.crm-search { display:flex; align-items:center; gap:10px; width:min(420px,35vw); height:42px; padding:0 13px; border:1px solid var(--crm-border); border-radius:11px; background:#fff; }.crm-search i{color:#838a80}.crm-search input{width:100%;min-height:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.crm-search kbd{white-space:nowrap;padding:3px 7px;border:1px solid #dde0d8;border-radius:6px;color:#8b9088;background:#f5f6f2;font-size:10px}.topbar-actions .icon-button{color:#555d52;background:#fff;border-color:var(--crm-border)}.topbar-create{color:#fff!important;background:var(--crm-olive)!important}.user-menu{position:relative}.user-menu-trigger{display:flex;align-items:center;gap:9px;padding:4px 7px 4px 4px;border:0;background:transparent;cursor:pointer}.user-avatar{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;color:#fff;background:var(--crm-black-2);font-size:12px;font-weight:800}.user-copy{display:grid;min-width:130px;text-align:left}.user-copy strong{font-size:12px}.user-copy small{color:var(--crm-muted);font-size:10px}.user-menu-trigger>i{font-size:9px}.user-dropdown{position:absolute;right:0;top:calc(100% + 10px);width:210px;padding:8px;border:1px solid var(--crm-border);border-radius:12px;background:#fff;box-shadow:0 18px 50px rgba(13,15,13,.16)}.user-dropdown a,.user-dropdown button{display:flex;align-items:center;gap:10px;width:100%;padding:10px;border:0;border-radius:8px;color:#343a32;background:transparent;text-align:left;font:inherit;font-size:12px;cursor:pointer}.user-dropdown a:hover,.user-dropdown button:hover{background:#f0f2e9;color:var(--crm-olive-dark)}

.sidebar-collapsed .sidebar,.crm-sidebar-collapsed .sidebar{width:var(--crm-sidebar-mini)}.sidebar-collapsed .crm-workspace,.crm-sidebar-collapsed .crm-workspace{margin-left:var(--crm-sidebar-mini)}.sidebar-collapsed .sidebar-brand-row,.crm-sidebar-collapsed .sidebar-brand-row{justify-content:center;min-height:44px}.sidebar-collapsed .sidebar .brand,.crm-sidebar-collapsed .sidebar .brand{display:none}.sidebar-collapsed .sidebar-collapse,.crm-sidebar-collapsed .sidebar-collapse,.sidebar-collapsed .current-project,.crm-sidebar-collapsed .current-project,.sidebar-collapsed .sidebar-selector,.crm-sidebar-collapsed .sidebar-selector,.sidebar-collapsed .menu-label,.crm-sidebar-collapsed .menu-label,.sidebar-collapsed .menu-chevron,.crm-sidebar-collapsed .menu-chevron,.sidebar-collapsed .sidebar-submenu,.crm-sidebar-collapsed .sidebar-submenu,.sidebar-collapsed .logout span,.crm-sidebar-collapsed .logout span{display:none}.sidebar-collapsed .sidebar-group-toggle,.crm-sidebar-collapsed .sidebar-group-toggle{justify-content:center;padding:8px}.sidebar-collapsed .menu-icon,.crm-sidebar-collapsed .menu-icon{font-size:16px}.sidebar-collapsed .sidebar .logout,.crm-sidebar-collapsed .sidebar .logout{justify-content:center}.sidebar-collapsed .sidebar-group-toggle:hover::after,.crm-sidebar-collapsed .sidebar-group-toggle:hover::after{content:attr(title);position:fixed;left:64px;z-index:80;padding:7px 10px;border:1px solid rgba(255,255,255,.1);border-radius:7px;color:#fff;background:#151815;box-shadow:0 8px 24px rgba(0,0,0,.28);font-size:11px;font-weight:600;letter-spacing:0;text-transform:none;pointer-events:none}.sidebar-overlay{display:none}

.crm-page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:24px}.crm-page-header h1{margin:3px 0 4px;color:#171b16;font-size:clamp(28px,3vw,40px);letter-spacing:-.045em}.crm-page-header p{margin:0;color:var(--crm-muted)}.eyebrow{color:var(--crm-olive-dark);font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.page-header-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.period-chip{padding:10px 13px;border:1px solid var(--crm-border);border-radius:9px;background:#fff;color:#5f665b;font-size:12px}.crm-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.crm-kpi{display:flex;align-items:flex-start;gap:14px;min-height:132px;padding:20px;border:1px solid rgba(255,255,255,.07);border-radius:14px;color:#fff;background:var(--crm-surface);box-shadow:0 14px 35px rgba(13,15,13,.09);transition:transform 180ms ease,box-shadow 180ms ease}.crm-kpi:hover{transform:translateY(-2px);box-shadow:0 18px 44px rgba(13,15,13,.14)}.crm-kpi-icon{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border-radius:11px;color:var(--crm-olive-light);background:rgba(135,154,50,.15)}.crm-kpi>div{display:grid}.crm-kpi-label{color:#a8ada5;font-size:11px}.crm-kpi strong{margin:5px 0 2px;font-size:clamp(22px,2.2vw,30px);letter-spacing:-.04em}.crm-kpi small{color:#858b83;font-size:10px}.crm-kpi.tone-warning .crm-kpi-icon{color:#e8b866;background:rgba(232,184,102,.12)}.crm-kpi-grid.compact .crm-kpi{min-height:105px}.crm-dashboard-panels{align-items:stretch;margin-top:18px}.crm-dashboard-panels>.card{height:100%;margin:0;padding:22px;border-color:var(--crm-border);box-shadow:0 10px 30px rgba(13,15,13,.045)}.card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.card-heading h2{margin:3px 0 0;font-size:17px}.card-total,.status-count{padding:7px 10px;border-radius:8px;color:var(--crm-olive-dark);background:#eef1df;font-size:11px;font-weight:800}.status-count.danger{color:#a43b32;background:#fae9e7}.crm-empty{display:grid;place-items:center;gap:7px;min-height:110px;padding:20px;color:#8a9086;text-align:center}.crm-empty i{font-size:24px;color:#a7b56a}.crm-empty p{margin:0;font-size:12px}
.btn{min-height:40px;border-radius:9px;background:var(--crm-olive);box-shadow:none;transition:180ms ease}.btn:hover{background:var(--crm-olive-light);transform:translateY(-1px)}.btn.secondary{color:#464c43;background:transparent;border:1px solid var(--crm-border)}.btn.secondary:hover{color:var(--crm-olive-dark);background:#eef1e4}.card{border-radius:14px}.table{border-color:var(--crm-border);border-radius:12px;box-shadow:none}.table th{color:#c8ccc5;background:var(--crm-black-2);border-color:rgba(255,255,255,.05)}.table td{border-color:rgba(13,15,13,.06)}.table tbody tr:hover{background:rgba(135,154,50,.06)}input,select,textarea{border-radius:9px;background:#fff;border-color:var(--crm-border)}input:focus,select:focus,textarea:focus{border-color:var(--crm-olive);box-shadow:0 0 0 3px rgba(135,154,50,.12)}

.crm-login{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(400px,.9fr);min-height:100vh;background:var(--crm-black)}.login-visual{position:relative;display:flex;align-items:flex-end;min-height:100vh;padding:clamp(40px,7vw,100px);background:#171b16 center/cover no-repeat;overflow:hidden}.login-visual-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,15,13,.14),rgba(13,15,13,.92))}.login-visual-content{position:relative;max-width:620px;color:#fff}.login-hero-logo{max-width:150px;max-height:100px;margin-bottom:26px;object-fit:contain}.login-visual-content .eyebrow{color:var(--crm-olive-light)}.login-visual-content h1{margin:10px 0;font-size:clamp(36px,5vw,70px);line-height:.98;letter-spacing:-.055em}.login-visual-content p{max-width:540px;color:#c5c9c1;font-size:17px;line-height:1.7}.login-panel{display:grid;place-items:center;padding:34px;background:var(--crm-canvas)}.login-card{width:min(100%,430px);padding:0;border:0;background:transparent;box-shadow:none}.login-heading{margin-bottom:28px}.login-logo{display:none;max-width:110px;max-height:70px;margin-bottom:18px;object-fit:contain}.login-heading h2{margin:6px 0;font-size:32px;letter-spacing:-.04em}.login-heading p{margin:0;color:var(--crm-muted)}.login-field{margin-bottom:17px}.login-field label{display:block;margin-bottom:7px;color:#444b41;font-size:12px}.input-icon{position:relative}.input-icon i{position:absolute;left:14px;top:50%;z-index:1;color:#8b9187;transform:translateY(-50%)}.input-icon input{width:100%;height:48px;padding-left:42px;background:#fff}.login-remember{display:flex;align-items:center;gap:8px;margin:5px 0 20px;font-size:12px}.login-remember input{width:auto;min-height:0}.login-submit{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;height:48px}.login-card .errors{margin-bottom:16px}

@media(max-width:1100px){.crm-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.crm-search{width:min(340px,35vw)}.user-copy{display:none}}
@media(max-width:760px){.crm-workspace,.sidebar-collapsed .crm-workspace{width:100%;margin-left:0}.sidebar,.sidebar-collapsed .sidebar{width:min(86vw,300px);transform:translateX(-102%)}.sidebar-open .sidebar{transform:translateX(0)}.sidebar-open .sidebar-overlay{display:block;position:fixed;inset:0;z-index:45;border:0;background:rgba(5,7,5,.62)}.sidebar-collapsed .sidebar .brand{display:grid;font-size:14px}.sidebar-collapsed .sidebar .brand span,.sidebar-collapsed .sidebar-collapse,.sidebar-collapsed .current-project,.sidebar-collapsed .sidebar-selector,.sidebar-collapsed .menu-label,.sidebar-collapsed .menu-chevron,.sidebar-collapsed .sidebar-submenu,.sidebar-collapsed .logout span{display:revert}.crm-topbar{height:66px;padding:0 14px}.crm-search{width:auto;flex:1}.crm-search kbd{display:none}.topbar-actions>.icon-button:not(.topbar-create){display:none}.user-menu-trigger>i{display:none}.main.main-content{padding:22px 14px}.crm-page-header{align-items:flex-start;flex-direction:column}.crm-kpi-grid{grid-template-columns:1fr 1fr;gap:10px}.crm-kpi{min-height:118px;padding:15px;gap:10px}.crm-kpi-icon{width:36px;height:36px;flex-basis:36px}.crm-dashboard-panels{grid-template-columns:1fr}.crm-login{display:block;background:var(--crm-canvas)}.login-visual{display:none}.login-panel{min-height:100vh;padding:24px}.login-logo{display:block}.table-scroll{overflow-x:auto}.table{min-width:620px}}
@media(max-width:480px){.crm-kpi-grid{grid-template-columns:1fr}.crm-search input{font-size:12px}.topbar-create{display:none}.crm-page-header h1{font-size:30px}.page-header-actions{width:100%}.page-header-actions .btn{flex:1}.crm-kpi{min-height:100px}}

.quick-debts{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:16px}.financial-debt-card{position:relative;padding:20px;border:1px solid var(--crm-border);overflow:hidden}.financial-debt-card.overdue{border-left:4px solid #c64545}.debt-client{display:grid;grid-template-columns:64px 1fr auto;align-items:center;gap:13px;margin-bottom:18px}.client-avatar{display:grid;place-items:center;width:64px;height:64px;border:2px solid rgba(137,153,52,.45);border-radius:50%;color:#fff;background:var(--crm-black-2);font-size:18px;font-weight:800}.debt-client h2{margin:0 0 4px;font-size:18px}.debt-client div span{display:block;color:var(--crm-muted);font-size:11px}.debt-status{align-self:start;padding:6px 8px;border-radius:999px;color:var(--crm-olive-dark);background:#eef1df;font-size:9px;font-weight:900;letter-spacing:.06em}.debt-property{display:grid;gap:3px;padding:12px;border-radius:9px;background:#f0f1ec}.debt-property span{color:var(--crm-muted);font-size:11px}.debt-balance{display:grid;margin:18px 0}.debt-balance span{text-transform:uppercase;color:var(--crm-muted);font-size:9px;font-weight:800;letter-spacing:.1em}.debt-balance strong{font-size:clamp(28px,3vw,38px);letter-spacing:-.045em}.debt-details{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}.debt-details div{display:grid;gap:2px}.debt-details span{color:var(--crm-muted);font-size:10px}.debt-details strong{font-size:12px}.payment-progress{height:7px;margin-bottom:18px;border-radius:99px;background:#e4e6de;overflow:hidden}.payment-progress i{display:block;height:100%;border-radius:inherit;background:var(--crm-olive)}.crm-filter-bar{grid-template-columns:2fr repeat(4,minmax(140px,1fr));align-items:end;margin-bottom:18px}.crm-filter-bar .filter-actions{grid-column:auto}.crm-filter-bar .wide{min-width:220px}
@media(max-width:1100px){.crm-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.crm-filter-bar .wide{grid-column:span 2}}
@media(max-width:600px){.quick-debts{grid-template-columns:1fr}.crm-filter-bar{grid-template-columns:1fr}.crm-filter-bar .wide{grid-column:auto}.debt-client{grid-template-columns:54px 1fr}.client-avatar{width:54px;height:54px}.debt-status{grid-column:1/-1;justify-self:start}.debt-details{grid-template-columns:1fr 1fr}}

/* Portal comprador */
.client-sidebar-nav{display:grid;gap:5px;margin:20px 0}.client-sidebar-title{padding:0 14px 8px;color:#858b98;font-size:10px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.client-sidebar-nav a{position:relative;display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:9px;color:#c8ccd4;text-decoration:none;transition:background-color .15s,color .15s}.client-sidebar-nav a i{width:20px;text-align:center}.client-sidebar-nav a:hover,.client-sidebar-nav a.active{color:#fff;background:#292d45}.client-sidebar-nav a.active:before{content:"";position:absolute;left:-1px;width:3px;height:24px;border-radius:0 4px 4px 0;background:#756dff}.client-portal{display:grid;gap:28px}.client-welcome{display:flex;align-items:center;gap:16px}.client-welcome h1,.client-section-header h1{margin:2px 0 4px;font-size:clamp(27px,3vw,32px);font-weight:600;letter-spacing:-.035em}.client-welcome p,.client-section-header p{margin:0;color:var(--crm-muted)}.client-eyebrow{color:var(--crm-primary);font-size:10px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.client-financial-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.client-financial-stat{display:flex;gap:15px;min-height:120px;padding:20px;border:1px solid var(--crm-border);border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(16,24,40,.08),0 2px 8px rgba(16,24,40,.04)}.client-financial-stat>i{display:grid;place-items:center;width:44px;height:44px;flex:0 0 44px;border-radius:12px}.client-financial-stat.balance>i{color:#5b54df;background:#efeeff}.client-financial-stat.pending>i{color:#b56b12;background:#fff3df}.client-financial-stat.overdue>i{color:#c73f3f;background:#fff0f0}.client-financial-stat div{display:grid;align-content:start;gap:3px}.client-financial-stat span,.client-financial-stat small{color:var(--crm-muted);font-size:12px}.client-financial-stat strong{font-size:25px;font-weight:600;letter-spacing:-.03em}.client-section{display:grid;gap:16px}.client-section-heading,.client-section-header{display:flex;align-items:end;justify-content:space-between;gap:18px}.client-section-heading h2{margin:3px 0;font-size:22px}.client-section-heading p{margin:0;color:var(--crm-muted)}.client-section-heading>a{color:var(--crm-primary);font-weight:600;text-decoration:none}.client-count{padding:7px 11px;border-radius:999px;color:#514ac9;background:#eeedff;font-size:12px;font-weight:600}.client-properties{display:grid;gap:18px}.client-property-card{display:grid;grid-template-columns:180px minmax(260px,1fr) minmax(210px,.65fr);gap:22px;padding:20px;border:1px solid var(--crm-border);border-radius:20px;background:#fff;box-shadow:0 12px 30px rgba(16,24,40,.08),0 3px 10px rgba(16,24,40,.04);transition:border-color .15s,box-shadow .15s}.client-property-card:hover,.client-project-card:hover{border-color:rgba(99,91,255,.32);box-shadow:0 14px 34px rgba(16,24,40,.1)}.client-property-image,.client-project-image{display:grid;place-items:center;min-height:150px;overflow:hidden;border-radius:14px;background:linear-gradient(145deg,#eceefa,#e2e5eb);color:#7771e8;font-size:35px}.client-property-image img,.client-project-image img{width:100%;height:100%;object-fit:cover}.client-modality{display:inline-flex;padding:5px 8px;border-radius:999px;color:#514ac9;background:#eeedff;font-size:10px;font-weight:700;letter-spacing:.08em}.client-property-copy h3{margin:10px 0 3px;font-size:20px}.client-lot-label{margin:0;color:var(--crm-muted)}.client-property-copy dl{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0 0}.client-property-copy dl div{display:grid;gap:2px}.client-property-copy dt{color:var(--crm-muted);font-size:10px}.client-property-copy dd{margin:0;font-size:13px;font-weight:600}.client-property-balance{display:grid;align-content:center;gap:5px;padding:18px;border-left:1px solid var(--crm-border)}.client-property-balance>span{color:var(--crm-muted);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.client-property-balance strong{color:#514ac9;font-size:clamp(27px,3vw,34px);font-weight:600;letter-spacing:-.045em}.client-property-balance small{color:var(--crm-muted);line-height:1.5}.client-property-actions{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding-top:16px;border-top:1px solid var(--crm-border)}.client-property-actions a{display:flex;align-items:center;justify-content:center;gap:8px;padding:11px;border-radius:10px;color:#373b45;background:#f5f6f9;font-size:12px;font-weight:600;text-decoration:none}.client-property-actions a.primary{color:#fff;background:var(--crm-primary)}.client-alerts{display:grid;gap:10px}.client-alerts article{display:flex;align-items:center;gap:13px;padding:14px 16px;border:1px solid;border-radius:13px;background:#fff}.client-alerts article.overdue{border-color:#f2c4c4}.client-alerts article.upcoming{border-color:#f0d6ac}.client-alerts article>i{font-size:20px}.client-alerts article.overdue>i{color:var(--crm-danger)}.client-alerts article.upcoming>i{color:var(--crm-warning)}.client-alerts article div{flex:1}.client-alerts p{margin:3px 0 0;color:var(--crm-muted)}.client-project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.client-project-card{overflow:hidden;border:1px solid var(--crm-border);border-radius:18px;background:#fff;box-shadow:0 7px 20px rgba(16,24,40,.06);transition:border-color .15s,box-shadow .15s}.client-project-image{height:165px;border-radius:0}.client-project-body{display:grid;gap:15px;padding:18px}.client-project-body h3{margin:5px 0;font-size:18px}.client-project-body p{margin:0;color:var(--crm-muted);font-size:12px}.client-project-counts{display:grid;grid-template-columns:1fr 1fr;gap:7px;color:var(--crm-muted);font-size:11px}.client-project-counts strong{color:var(--crm-text)}.client-project-actions{display:flex;flex-wrap:wrap;gap:8px}.client-project-actions .btn{flex:1;padding:10px;font-size:11px;text-align:center}.client-help{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px;border-radius:18px;color:#fff;background:linear-gradient(120deg,#24283a,#36325d);box-shadow:0 12px 30px rgba(16,24,40,.14)}.client-help>div{display:flex;align-items:center;gap:15px}.client-help>div>i{font-size:30px;color:#b8a75a}.client-help h2{margin:0 0 5px;font-size:20px}.client-help p{margin:0;color:#ced0dc}.client-section-header{align-items:center}.client-section-header>div{max-width:680px}
@media(max-width:1100px){.client-property-card{grid-template-columns:150px 1fr}.client-property-balance{grid-column:1/-1;border-top:1px solid var(--crm-border);border-left:0}.client-project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.client-financial-stats,.client-project-grid{grid-template-columns:1fr}.client-property-card{grid-template-columns:1fr;padding:15px}.client-property-image{height:190px}.client-property-copy dl{grid-template-columns:1fr 1fr}.client-property-actions{grid-template-columns:1fr 1fr}.client-section-heading,.client-section-header,.client-help{align-items:flex-start;flex-direction:column}.client-alerts article{align-items:flex-start;flex-wrap:wrap}.client-alerts article .btn{width:100%;text-align:center}}

/* Urbanizaciones compartidas: portal público, Mi cuenta y reserva de visitas */
.urbanization-card{display:flex;min-height:445px;flex-direction:column;border-color:#e6e8ec;box-shadow:0 8px 24px rgba(16,24,40,.07),0 2px 6px rgba(16,24,40,.03)}
.urbanization-card .client-project-image{height:190px;min-height:190px;padding:10px;border-radius:0;background:#f3f4f6}
.urbanization-card .client-project-image img.technical-plan{object-fit:contain;transition:transform .15s}
.urbanization-card:hover .client-project-image img{transform:scale(1.015)}
.urbanization-card .client-project-body{display:flex;height:100%;flex-direction:column}
.urbanization-card .client-project-counts{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:12px 0;border-top:1px solid #e6e8ec;border-bottom:1px solid #e6e8ec}
.urbanization-card .client-project-counts span{display:grid;gap:2px;text-align:center}
.urbanization-card .client-project-counts strong{font-size:17px;font-weight:600}
.urbanization-card .client-project-counts small{color:#69707d;font-size:10px}
.urbanization-card .client-project-counts .available strong{color:#16865a}
.urbanization-card .client-project-counts .sold strong{color:#565b66}
.urbanization-card .client-project-counts .reserved strong{color:#d17a21}
.urbanization-card .client-project-actions{margin-top:auto}
.urbanization-card .client-project-actions .btn{white-space:nowrap}
.portal-projects-unified{max-width:1400px}
.portal-projects-unified .portal-section-heading{max-width:680px;margin-bottom:28px}
.portal-projects-unified .client-project-grid{gap:24px}
.premium-public .urbanization-card{--crm-border:#e6e8ec;--crm-text:#16181d;--crm-muted:#69707d;--crm-primary:#635bff}
.premium-public .urbanization-card .secondary{color:#514ac9;border-color:#d8d5ff;background:#fff}
.premium-public .urbanization-card .whatsapp{color:#fff;border-color:#16a36a;background:#16a36a}
@media(max-width:760px){.urbanization-card{min-height:0}.urbanization-card .client-project-counts{grid-template-columns:1fr 1fr}.urbanization-card .client-project-actions{display:grid;grid-template-columns:1fr}.urbanization-card .client-project-actions .btn{width:100%}}
.client-profile-card,.client-detail-summary,.client-detail-panel{border:1px solid var(--crm-border);border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(16,24,40,.07),0 2px 6px rgba(16,24,40,.03)}
.client-profile-card{display:grid;gap:24px;max-width:850px;padding:26px}.client-profile-identity{display:flex;align-items:center;gap:16px;padding-bottom:22px;border-bottom:1px solid var(--crm-border)}.client-profile-identity h2{margin:0 0 4px;font-size:23px}.client-profile-identity span{color:var(--crm-muted)}.client-profile-details{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:0}.client-profile-details div{display:grid;gap:4px;padding:15px;border-radius:12px;background:#f7f8fa}.client-profile-details dt{color:var(--crm-muted);font-size:11px}.client-profile-details dd{margin:0;font-weight:600}.client-profile-note{display:flex;align-items:flex-start;gap:9px;margin:0;color:var(--crm-muted);font-size:12px}.client-profile-note i{color:var(--crm-primary)}.client-detail-summary{display:grid;grid-template-columns:1fr minmax(280px,.55fr);gap:24px;padding:24px}.client-detail-summary h2{margin:12px 0 4px}.client-detail-summary p{margin:0;color:var(--crm-muted)}.client-detail-summary dl{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0 0}.client-detail-summary dl div{display:grid;gap:3px}.client-detail-summary dt{color:var(--crm-muted);font-size:10px}.client-detail-summary dd{margin:0;font-weight:600}.client-detail-balance{display:grid;align-content:center;gap:7px;padding-left:24px;border-left:1px solid var(--crm-border)}.client-detail-balance>span{color:var(--crm-muted);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.client-detail-balance>strong{color:var(--crm-primary);font-size:32px;font-weight:600}.client-detail-balance .actions{margin-top:12px}.client-detail-panel{padding:22px}.client-detail-panel h2{margin:0 0 16px;font-size:19px}
@media(max-width:760px){.client-profile-details,.client-detail-summary,.client-detail-summary dl{grid-template-columns:1fr}.client-detail-balance{padding:20px 0 0;border-top:1px solid var(--crm-border);border-left:0}}
.news-admin-thumb,.news-admin-placeholder{display:grid;width:72px;height:50px;place-items:center;border-radius:9px;background:#f0f1f4;object-fit:cover;color:var(--crm-muted)}.news-form-preview{display:block;width:min(100%,360px);max-height:220px;border-radius:12px;object-fit:cover}.portal-news-placeholder{display:grid;height:190px;place-items:center;color:#756dff;background:#f0efff;font-size:34px}.public-article-placeholder{display:grid;min-height:280px;place-items:center;border-radius:18px;color:#756dff;background:#f0efff;font-size:50px}

.public-page{max-width:1320px;padding:0 28px 48px}.crm-public-header{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:22px;margin:0 -28px;padding:14px 28px;background:rgba(13,15,13,.95);border-bottom:1px solid rgba(255,255,255,.07);backdrop-filter:blur(14px)}.public-brand{display:flex;align-items:center;gap:11px;color:#fff}.public-brand img{width:44px;height:44px;object-fit:contain}.public-brand span{display:grid}.public-brand strong{font-size:12px;letter-spacing:.06em}.public-brand small{color:#8e948b;font-size:9px}.crm-public-header nav{display:flex;gap:24px}.crm-public-header nav a{color:#b5bab2;font-size:12px}.crm-public-header nav a:hover{color:var(--crm-olive-light)}.crm-public-header .btn.secondary{color:#fff;border-color:rgba(255,255,255,.13)}.public-hero{display:grid;grid-template-columns:1.4fr .6fr;align-items:center;gap:40px;min-height:480px;margin:0 -28px 28px;padding:70px clamp(28px,7vw,95px);color:#fff;background:radial-gradient(circle at 80% 20%,rgba(135,154,50,.22),transparent 28%),var(--crm-black)}.public-hero h1{max-width:760px;margin:10px 0 18px;font-size:clamp(42px,6vw,76px);line-height:.98;letter-spacing:-.06em}.public-hero p{max-width:620px;color:#b5bab2;font-size:17px;line-height:1.7}.public-hero .actions{display:flex;gap:10px;margin-top:26px}.public-hero .btn.secondary{color:#fff;border-color:rgba(255,255,255,.14)}.public-hero-mark{display:grid;place-items:center;gap:8px;padding:38px;border:1px solid rgba(255,255,255,.08);border-radius:22px;background:rgba(255,255,255,.035);text-align:center}.public-hero-mark i{color:var(--crm-olive-light);font-size:58px}.public-hero-mark span{color:#92988f;font-size:11px}.public-filter{position:relative;margin-top:-64px;z-index:2;box-shadow:0 20px 50px rgba(13,15,13,.14)}
@media(max-width:760px){.public-page{padding:0 14px 30px}.crm-public-header{margin:0 -14px;padding:12px 14px}.crm-public-header nav{display:none}.public-brand small{display:none}.public-hero{grid-template-columns:1fr;min-height:540px;margin:0 -14px 20px;padding:55px 20px 90px}.public-hero-mark{display:none}.public-hero .actions{flex-wrap:wrap}.public-filter{margin-top:-60px}}

.crm-table,.table{border-collapse:separate;border-spacing:0;width:100%}.crm-table thead th,.table thead th{position:sticky;top:var(--crm-topbar);z-index:2;padding:11px 13px;color:#fff;background:#151815}.crm-table tbody tr:nth-child(odd),.table tbody tr:nth-child(odd){background:#fff}.crm-table tbody tr:nth-child(even),.table tbody tr:nth-child(even){background:#f8f9f5}.crm-table tbody td,.table tbody td{padding:12px 13px;border-bottom:1px solid #e4e7df;vertical-align:middle}.crm-table tbody tr:hover,.table tbody tr:hover{background:rgba(137,153,52,.08);box-shadow:inset 3px 0 0 #899934}.crm-money{white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:700}.crm-actions{justify-content:flex-end}.crm-actions .btn{min-height:32px;padding:6px 9px;font-size:11px}.crm-avatar{display:inline-grid;place-items:center;overflow:hidden;border:2px solid rgba(137,153,52,.4);border-radius:50%;color:#fff;background:#151815;font-weight:800}.crm-avatar img{width:100%;height:100%;object-fit:cover}.crm-avatar-sm{width:40px;height:40px;font-size:11px}.crm-avatar-md{width:52px;height:52px}.crm-avatar-lg{width:64px;height:64px;font-size:18px}.inline-upload{display:flex;align-items:center;gap:5px}.inline-upload input{max-width:125px;min-height:32px;padding:4px;font-size:9px}.table td small{display:block;margin-top:3px;color:var(--crm-muted)}.image-remove{display:flex;align-items:center;gap:7px;color:#a52e2e;font-size:11px}.image-remove input{width:auto;min-height:0}.pagination .active>*{color:#fff!important;background:var(--crm-olive)!important;border-color:var(--crm-olive)!important}
.quick-debts{grid-template-columns:repeat(auto-fit,minmax(285px,1fr));gap:14px}.financial-debt-card{padding:17px}.debt-status{padding:7px 10px;font-size:10px}.financial-debt-card.overdue .debt-status{color:#a52e2e;background:#fce8e8}

.operations-alert{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;margin-bottom:20px;padding:18px 20px;border:1px solid #e4c276;border-left:4px solid #c89123;border-radius:14px;background:#fff8e7;box-shadow:0 10px 28px rgba(96,67,12,.07)}.operations-alert-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:11px;color:#875b0c;background:#f4dfad}.operations-alert strong{display:block;color:#563d0d;font-size:16px}.operations-alert p{margin:4px 0 0;color:#806b42;font-size:12px}.operations-section{margin-bottom:22px;padding:20px;border:1px solid var(--crm-border);border-radius:14px;background:#fff}.operations-quick-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.operations-quick{display:flex;align-items:center;gap:11px;min-height:70px;padding:14px;border:1px solid var(--crm-border);border-radius:11px;color:#30372e;background:#f8f9f5;font-size:12px;font-weight:800}.operations-quick:hover{border-color:#a7b56a;color:var(--crm-olive-dark);background:#f0f2e5}.operations-quick i{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;color:#fff;background:var(--crm-olive)}.notification-button{position:relative}.notification-button>span{position:absolute;top:-6px;right:-5px;display:grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border:2px solid #f4f5ef;border-radius:99px;color:#fff;background:#c64545;font-size:9px;font-weight:900}
@media(max-width:900px){.operations-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.operations-alert{grid-template-columns:auto 1fr}.operations-alert .btn{grid-column:1/-1;width:100%}.operations-quick-grid{grid-template-columns:1fr 1fr}.operations-quick{padding:11px;flex-direction:column;justify-content:center;text-align:center}}
.supervisor-team{margin-bottom:22px}.supervisor-project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.supervisor-project-grid>.card{margin:0;padding:18px}.supervisor-project-grid h3{margin:0 0 4px}.supervisor-project-grid p{margin:0 0 14px;color:var(--crm-muted);font-size:12px}.project-counts{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:16px}.project-counts span{display:grid;padding:9px;border-radius:8px;background:#f2f3ed;color:var(--crm-muted);font-size:9px}.project-counts strong{color:#2f352d;font-size:16px}@media(max-width:900px){.supervisor-project-grid{grid-template-columns:1fr 1fr}}@media(max-width:600px){.supervisor-project-grid{grid-template-columns:1fr}.project-counts{grid-template-columns:repeat(3,1fr)}}
.whatsapp-button{min-height:32px;padding:6px 10px;color:#fff;background:#218c54;border-color:#218c54;font-size:11px}.whatsapp-button:hover{color:#fff;background:#187344;border-color:#187344}.whatsapp-button i{font-size:14px}.phone-link{white-space:nowrap;color:#276a45;font-weight:700}.phone-link:hover{color:#174c30;text-decoration:underline}.overdue-table td:last-child{white-space:nowrap}@media(max-width:600px){.whatsapp-button span{display:none}.whatsapp-button{width:34px;padding:0;justify-content:center}}

@media(max-width:760px){
    .crm-sidebar-collapsed .crm-workspace{width:100%;margin-left:0}
    .crm-sidebar-collapsed .sidebar{width:min(86vw,300px);transform:translateX(-102%)}
    .sidebar-open .sidebar{transform:translateX(0)}
    .crm-sidebar-collapsed .sidebar .brand{display:grid}
    .crm-sidebar-collapsed .sidebar .brand span,.crm-sidebar-collapsed .sidebar-collapse,.crm-sidebar-collapsed .current-project,.crm-sidebar-collapsed .sidebar-selector,.crm-sidebar-collapsed .menu-label,.crm-sidebar-collapsed .menu-chevron,.crm-sidebar-collapsed .sidebar-submenu,.crm-sidebar-collapsed .logout span{display:revert}
}

/* Tablas CRM: cabecera en flujo normal para no superponer la primera fila. */
.table-scroll{overflow-x:auto;border:1px solid var(--crm-table-border);border-radius:14px;background:#fff;box-shadow:0 8px 24px rgba(31,36,39,.045)}
.table-scroll>.table{border:0;border-radius:0}
.crm-table thead th,.table thead th{position:static;top:auto;z-index:auto;padding:11px 13px;border-bottom:1px solid rgba(255,255,255,.08);color:#fff;background:var(--crm-charcoal-900);font-size:12px;font-weight:700;letter-spacing:.025em}
.crm-table thead th:first-child,.table thead th:first-child{border-top-left-radius:12px}
.crm-table thead th:last-child,.table thead th:last-child{border-top-right-radius:12px}
.crm-table tbody tr:nth-child(odd),.table tbody tr:nth-child(odd){background:#fff}
.crm-table tbody tr:nth-child(even),.table tbody tr:nth-child(even){background:var(--crm-table-row-alt)}
.crm-table tbody td,.table tbody td{border-bottom-color:var(--crm-table-border)}
.crm-table tbody tr:last-child td,.table tbody tr:last-child td{border-bottom:0}
.crm-table tbody tr:hover,.table tbody tr:hover{background:var(--crm-table-row-hover);box-shadow:inset 3px 0 0 var(--crm-olive)}

/* SaaS Premium prototype: shared design system for layout, dashboards and collections. */
:root{
    --crm-primary:#635bff;
    --crm-primary-hover:#5149e8;
    --crm-primary-soft:rgba(99,91,255,.11);
    --crm-success:#16a36a;
    --crm-warning:#e89a32;
    --crm-danger:#dc4c4c;
    --crm-info:#3085d6;
    --crm-bg:#f6f7fa;
    --crm-canvas:#f6f7fa;
    --crm-surface:#fff;
    --crm-surface-secondary:#f9fafc;
    --crm-text:#16181d;
    --crm-muted:#69707d;
    --crm-border:#e6e8ec;
    --crm-sidebar-bg:#171a21;
    --crm-sidebar-hover:#22262e;
    --crm-brand-gold:#b8a75a;
    --crm-olive:var(--crm-primary);
    --crm-olive-light:#817bff;
    --crm-olive-dark:#4740c9;
    --crm-black:var(--crm-sidebar-bg);
    --crm-black-2:var(--crm-sidebar-hover);
    --crm-table-border:#eceef2;
    --crm-table-row-alt:#fff;
    --crm-table-row-hover:#fafbfc;
}
body{font-family:"Instrument Sans","Segoe UI",Arial,sans-serif;color:var(--crm-text);background:var(--crm-bg);font-size:14px;font-weight:400}
.main.main-content{background:var(--crm-bg);padding:28px clamp(20px,3vw,40px)}
.footer{border-color:var(--crm-border);color:#858b96;font-size:12px}
.card,.operations-section{border:1px solid var(--crm-border);border-radius:14px;background:var(--crm-surface);box-shadow:0 1px 2px rgba(16,24,40,.02),0 4px 12px rgba(16,24,40,.03)}
.card:hover{box-shadow:0 1px 2px rgba(16,24,40,.025),0 6px 18px rgba(16,24,40,.045)}
.btn{min-height:40px;padding:9px 14px;border:1px solid transparent;border-radius:10px;color:#fff;background:var(--crm-primary);box-shadow:0 1px 2px rgba(38,34,130,.12);font-size:13px;font-weight:600;transition:background-color 150ms ease,border-color 150ms ease,box-shadow 150ms ease,transform 150ms ease}
.btn:hover{color:#fff;background:var(--crm-primary-hover);transform:translateY(-1px)}
.btn.secondary{color:#252830;background:#fff;border-color:var(--crm-border);box-shadow:0 1px 2px rgba(16,24,40,.02)}
.btn.secondary:hover{color:#252830;background:#f8f9fb;border-color:#d8dbe1}
.btn.danger{background:var(--crm-danger);border-color:var(--crm-danger)}.btn.success{background:var(--crm-success);border-color:var(--crm-success)}
.btn:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(99,91,255,.2);outline-offset:2px}
input,select,textarea{min-height:42px;border:1px solid var(--crm-border);border-radius:10px;color:var(--crm-text);background:#fff;font-size:13px;transition:border-color 150ms ease,box-shadow 150ms ease}
input:focus,select:focus,textarea:focus{border-color:var(--crm-primary);box-shadow:0 0 0 3px rgba(99,91,255,.1)}
label,.field label{color:#4f5561;font-size:12px;font-weight:500}
.sidebar{color:#aeb4bf;background:var(--crm-sidebar-bg);border-right-color:rgba(255,255,255,.055)}
.sidebar-brand-row{border-color:rgba(255,255,255,.07)}.sidebar .brand{font-weight:600;letter-spacing:.025em}.sidebar .brand span{color:#858c99;font-weight:400}.sidebar .brand img{border:1px solid rgba(184,167,90,.24)}
.current-project{border-color:rgba(255,255,255,.07);background:#1d2027}.current-project span{color:#858c99;font-weight:500}.current-project a{color:#c5b76f;font-weight:500}
.sidebar-selector select{color:#dfe2e7;background:var(--crm-sidebar-hover);border-color:rgba(255,255,255,.07)}
.sidebar-group-toggle{color:#aeb4bf;font-weight:500}.sidebar-group-toggle .menu-icon{color:#8f96a3}.sidebar-group-toggle:hover,.sidebar-group.active>.sidebar-group-toggle{color:#fff;background:var(--crm-sidebar-hover)}
.sidebar-link{color:#9299a5;font-weight:400}.sidebar-link:hover{color:#fff;background:var(--crm-sidebar-hover)}.sidebar-link.active{color:#fff;font-weight:500;background:var(--crm-primary-soft)}.sidebar-link.active::before{background:var(--crm-primary)}
.sidebar-collapse{color:#959ca8;background:transparent;border-color:rgba(255,255,255,.08)}.sidebar-collapse:hover{color:#fff;background:var(--crm-sidebar-hover);border-color:rgba(255,255,255,.1)}
.sidebar .logout{color:#9299a5}.sidebar .logout:hover{background:var(--crm-sidebar-hover)}
.crm-topbar{background:rgba(246,247,250,.92);border-color:var(--crm-border);backdrop-filter:blur(18px)}
.crm-search{height:40px;border-color:transparent;background:#f0f1f4}.crm-search:focus-within{border-color:var(--crm-primary);background:#fff;box-shadow:0 0 0 3px rgba(99,91,255,.08)}.crm-search input{background:transparent}.crm-search kbd{border-color:#dde0e6;background:#fff;color:#7a808b}
.topbar-actions .icon-button,.sidebar-trigger{color:#626975;background:transparent;border-color:transparent}.topbar-actions .icon-button:hover,.sidebar-trigger:hover{color:var(--crm-text);background:#eceef3;border-color:transparent}.topbar-create{background:var(--crm-primary)!important}.user-menu-trigger{border-radius:10px}.user-menu-trigger:hover{background:#eceef3}.user-copy strong{font-weight:600}.user-avatar{background:#262a33}
.crm-page-header{align-items:center;margin-bottom:22px}.crm-page-header h1{margin:4px 0;color:var(--crm-text);font-size:clamp(28px,3vw,32px);font-weight:600;letter-spacing:-.035em}.crm-page-header p{color:var(--crm-muted);font-size:14px}.eyebrow{color:var(--crm-brand-gold);font-size:10px;font-weight:600;letter-spacing:.12em}
.crm-kpi{min-height:122px;padding:18px;border:1px solid var(--crm-border);border-radius:14px;color:var(--crm-text);background:#fff;box-shadow:0 1px 2px rgba(16,24,40,.02),0 4px 12px rgba(16,24,40,.03)}.crm-kpi:hover{transform:translateY(-1px);box-shadow:0 1px 2px rgba(16,24,40,.025),0 8px 20px rgba(16,24,40,.05)}.crm-kpi-icon{color:var(--crm-primary);background:var(--crm-primary-soft)}.crm-kpi-label{color:var(--crm-muted);font-size:12px;font-weight:500}.crm-kpi strong{font-size:clamp(23px,2.2vw,29px);font-weight:600}.crm-kpi small{color:#858b96;font-size:11px}.crm-kpi.tone-warning .crm-kpi-icon{color:#a96512;background:#fff3df}
.operations-section{padding:20px}.operations-quick-grid{gap:10px}.operations-quick{min-height:64px;border-color:var(--crm-border);border-radius:11px;color:#30343b;background:var(--crm-surface-secondary);font-weight:500;transition:150ms ease}.operations-quick:hover{border-color:rgba(99,91,255,.3);color:var(--crm-primary-hover);background:#f7f6ff;transform:translateY(-1px)}.operations-quick i{color:var(--crm-primary);background:var(--crm-primary-soft)}
.operations-alert{border-color:#f1d7ac;border-left-color:var(--crm-warning);background:#fffaf1;box-shadow:0 1px 2px rgba(16,24,40,.02)}.operations-alert-icon{color:#9b5c09;background:#fff0d5}.operations-alert strong{color:#5e421e;font-weight:600}.operations-alert p{color:#806a4c}
.crm-dashboard-panels>.card{padding:20px;border-color:var(--crm-border);box-shadow:0 1px 2px rgba(16,24,40,.02),0 4px 12px rgba(16,24,40,.03)}.card-heading h2{font-size:18px;font-weight:600}.card-total,.status-count{color:#4e48c7;background:#f0efff;font-weight:600}.status-count.danger{color:#b13737;background:#fff0f0}.bar-track{height:9px;background:#eceef3}.bar-fill{background:var(--crm-primary)}.bar-fill.income{background:var(--crm-primary)}.bar-fill.reservado{background:var(--crm-info)}.bar-fill.disponible{background:var(--crm-success)}.bar-fill.vendido{background:var(--crm-danger)}
.table-scroll{border-color:var(--crm-table-border);border-radius:12px;box-shadow:none}.crm-table thead th,.table thead th{position:static;top:auto;z-index:auto;padding:11px 13px;border-bottom:1px solid var(--crm-table-border);color:#69707d;background:#f8f9fb;font-size:11px;font-weight:600;letter-spacing:.045em;text-transform:uppercase}.crm-table tbody tr:nth-child(odd),.table tbody tr:nth-child(odd),.crm-table tbody tr:nth-child(even),.table tbody tr:nth-child(even){background:#fff}.crm-table tbody td,.table tbody td{padding:12px 13px;border-bottom-color:var(--crm-table-border);color:#333740}.crm-table tbody tr:hover,.table tbody tr:hover{background:#fafbfc;box-shadow:inset 2px 0 0 var(--crm-primary)}.table td strong{font-weight:600}
.badge{padding:4px 8px;border-radius:7px;font-size:10px;font-weight:600}.badge.activa,.badge.confirmado,.badge.pagada{color:#0b7448;background:#e9f8f1}.badge.vencida,.badge.cancelada,.badge.rechazado,.badge.anulado{color:#b13737;background:#fff0f0}.badge.pendiente,.badge.parcial,.badge.pendiente_verificacion{color:#9b5c09;background:#fff3df}
.crm-empty{color:#7a818d}.crm-empty i{color:#9a96ee}.crm-empty strong{font-weight:600}.crm-empty p{color:#8a909b}
.quick-summary{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.quick-summary .card{min-height:96px;padding:16px}.quick-summary .stat-value{font-size:24px;font-weight:600}.crm-filter-bar{gap:10px;padding:14px;background:#fff}.financial-debt-card{border-left:1px solid var(--crm-border);box-shadow:0 1px 2px rgba(16,24,40,.02),0 4px 12px rgba(16,24,40,.03)}.financial-debt-card.overdue{border-left:3px solid var(--crm-danger)}.debt-client h2{font-weight:600}.client-avatar{border-color:rgba(99,91,255,.24);background:#292d36}.debt-status{color:#4e48c7;background:#f0efff}.financial-debt-card.overdue .debt-status{color:#b13737;background:#fff0f0}.debt-property{background:#f7f8fa}.debt-balance strong{font-weight:600}.payment-progress{background:#eceef3}.payment-progress i{background:var(--crm-primary)}.quick-modal{border:1px solid var(--crm-border);border-radius:16px;box-shadow:0 28px 80px rgba(16,24,40,.22)}.quick-pending article{border-color:var(--crm-border)}
.whatsapp-button{background:var(--crm-success);border-color:var(--crm-success)}
@media(max-width:1100px){.quick-summary{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.main.main-content{padding:22px 14px}.crm-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.operations-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.crm-kpi-grid{grid-template-columns:1fr}.quick-summary{grid-template-columns:1fr 1fr}.crm-page-header h1{font-size:27px}}

/* Premium public portal */
.premium-public{margin:0;color:var(--crm-text);background:#fff}.portal-header{position:fixed;inset:0 0 auto;z-index:100;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:28px;height:78px;padding:0 clamp(24px,4vw,72px);color:#fff;border-bottom:1px solid rgba(255,255,255,.12);transition:180ms ease}.portal-header.scrolled{color:var(--crm-text);background:rgba(255,255,255,.94);border-color:var(--crm-border);box-shadow:0 4px 20px rgba(16,24,40,.05);backdrop-filter:blur(16px)}.portal-logo{display:flex;align-items:center;gap:10px;max-width:220px;font-weight:600}.portal-logo img{width:42px;height:42px;padding:4px;border-radius:10px;background:rgba(255,255,255,.94);object-fit:contain}.portal-nav{display:flex;justify-content:center;gap:22px}.portal-nav a{font-size:13px;font-weight:500;transition:150ms ease}.portal-nav a:hover{color:#c5c1ff}.portal-header.scrolled .portal-nav a:hover{color:var(--crm-primary)}.desktop-login{display:flex;align-items:center;gap:7px}.desktop-login label{display:block;color:inherit}.desktop-login label>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.desktop-login input{width:150px;min-height:36px;padding:8px 10px;border-color:rgba(255,255,255,.2);color:#fff;background:rgba(255,255,255,.12);font-size:11px}.desktop-login input::placeholder{color:rgba(255,255,255,.72)}.portal-header.scrolled .desktop-login input{color:var(--crm-text);background:#f1f2f5;border-color:transparent}.portal-header.scrolled .desktop-login input::placeholder{color:#858b96}.desktop-login .btn{min-height:36px;padding:7px 12px}.desktop-remember{display:none!important}.portal-login-open,.portal-menu-toggle{display:none}.portal-login-error{position:fixed;z-index:110;top:84px;right:24px;max-width:420px;padding:12px 16px;border-radius:10px;color:#a52e2e;background:#fff0f0;box-shadow:0 12px 32px rgba(16,24,40,.14)}.mobile-login{width:min(420px,calc(100% - 28px));padding:0;border:0;border-radius:16px;box-shadow:0 30px 90px rgba(16,24,40,.3)}.mobile-login::backdrop{background:rgba(15,18,24,.65)}.mobile-login form{position:relative;display:grid;gap:14px;padding:26px}.mobile-login h2{margin:0}.mobile-login label{display:grid;gap:6px}.mobile-login .btn{width:100%}.dialog-close{position:absolute;top:14px;right:14px;width:34px;height:34px;border:0;border-radius:9px;background:#f1f2f5;cursor:pointer}.portal-hero{position:relative;display:flex;align-items:center;min-height:720px;padding:140px clamp(28px,8vw,140px) 150px;color:#fff;background:#171a21 center/cover no-repeat}.portal-hero-copy{max-width:760px}.portal-hero-copy .eyebrow{color:#d2c477}.portal-hero h1{max-width:800px;margin:14px 0 20px;font-size:clamp(48px,6vw,78px);font-weight:600;line-height:.98;letter-spacing:-.055em}.portal-hero p{max-width:620px;color:#d7d9de;font-size:18px;line-height:1.65}.portal-hero .actions{display:flex;gap:10px;margin-top:28px}.portal-secondary{color:#fff!important;background:rgba(255,255,255,.08)!important;border-color:rgba(255,255,255,.26)!important;box-shadow:none!important}.portal-stats{position:absolute;left:clamp(28px,8vw,140px);right:clamp(28px,8vw,140px);bottom:36px;display:grid;grid-template-columns:repeat(4,1fr);border:1px solid rgba(255,255,255,.16);border-radius:14px;background:rgba(22,24,29,.42);backdrop-filter:blur(12px)}.portal-stats span{display:grid;padding:16px 22px;color:#d8dbe1;border-right:1px solid rgba(255,255,255,.12);font-size:11px}.portal-stats span:last-child{border:0}.portal-stats strong{color:#fff;font-size:25px;font-weight:600}.portal-section{padding:90px clamp(24px,7vw,120px)}.portal-section-heading{max-width:700px;margin-bottom:32px}.portal-section-heading h2,.portal-availability h2,.portal-contact h2{margin:8px 0 10px;font-size:clamp(30px,4vw,46px);font-weight:600;letter-spacing:-.04em}.portal-section-heading p,.portal-availability p{color:var(--crm-muted);font-size:16px}.portal-project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.portal-project-card{overflow:hidden;border:1px solid var(--crm-border);border-radius:18px;background:#fff;box-shadow:0 4px 16px rgba(16,24,40,.035);transition:150ms ease}.portal-project-card:hover{border-color:rgba(99,91,255,.28);box-shadow:0 12px 30px rgba(16,24,40,.07);transform:translateY(-2px)}.portal-project-image{display:grid;place-items:center;height:230px;color:#9ba1ad;background:#eef0f4}.portal-project-image img{width:100%;height:100%;object-fit:cover;transition:180ms ease}.portal-project-card:hover img{transform:scale(1.015)}.portal-project-body{padding:20px}.portal-project-body h3{margin:7px 0 18px;font-size:22px;font-weight:600}.project-public-counts{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:18px;color:var(--crm-muted);font-size:11px}.project-public-counts strong{color:var(--crm-success);font-size:15px}.portal-availability{display:grid;grid-template-columns:1fr .8fr;align-items:center;gap:60px;background:var(--crm-bg)}.portal-availability form{display:grid;gap:12px;padding:24px;border:1px solid var(--crm-border);border-radius:16px;background:#fff}.portal-availability label{display:grid;gap:7px}.portal-benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.portal-benefits article{padding:24px;border:1px solid var(--crm-border);border-radius:15px;background:#fff}.portal-benefits i{display:grid;place-items:center;width:42px;height:42px;border-radius:11px;color:var(--crm-primary);background:var(--crm-primary-soft)}.portal-benefits h3{font-size:17px;font-weight:600}.portal-benefits p{color:var(--crm-muted);line-height:1.6}.portal-news{background:var(--crm-bg)}.portal-news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.portal-news-card{overflow:hidden;border:1px solid var(--crm-border);border-radius:16px;background:#fff}.portal-news-card img{width:100%;height:190px;object-fit:cover}.portal-news-card>div{padding:20px}.portal-news-card time{color:var(--crm-muted);font-size:11px}.portal-news-card h3{font-size:19px;font-weight:600}.portal-news-card p{color:var(--crm-muted);line-height:1.55}.portal-news-card a{color:var(--crm-primary);font-weight:600}.portal-empty{grid-column:1/-1;display:grid;place-items:center;min-height:220px;color:var(--crm-muted);text-align:center}.portal-empty i{font-size:32px;color:#9994ee}.portal-contact{display:grid;grid-template-columns:1fr 1fr;gap:70px;padding:90px clamp(24px,7vw,120px);color:#fff;background:#171a21}.portal-contact p{max-width:580px;color:#b9bec7;line-height:1.7}.portal-contact ul{display:grid;gap:10px;padding:0;list-style:none;color:#d7dae0}.portal-contact li{display:flex;gap:10px;align-items:center}.portal-contact form{display:grid;grid-template-columns:1fr 1fr;gap:13px;padding:24px;border:1px solid rgba(255,255,255,.1);border-radius:16px;background:#22262e}.portal-contact label{display:grid;gap:6px;color:#c8ccd3}.portal-contact .full{grid-column:1/-1}.portal-contact textarea{min-height:110px}.portal-footer{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:40px;padding:38px clamp(24px,7vw,120px);color:#adb2bc;background:#111318;border-top:1px solid rgba(255,255,255,.07)}.portal-footer strong{color:#fff}.portal-footer p{margin:4px 0}.portal-footer nav{display:flex;gap:18px}.public-article{max-width:820px;margin:0 auto;padding:70px 24px}.public-article>img{width:100%;max-height:480px;margin:26px 0;border-radius:18px;object-fit:cover}.public-article time{color:var(--crm-muted)}.public-article h1{font-size:clamp(38px,6vw,64px);line-height:1;letter-spacing:-.05em}.public-article .lead{color:var(--crm-muted);font-size:20px;line-height:1.6}.article-content{font-size:16px;line-height:1.8}
@media(max-width:1180px){.portal-header{grid-template-columns:auto 1fr auto}.desktop-login{display:none}.portal-login-open{display:inline-flex}.portal-project-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){.portal-header{height:68px;padding:0 16px}.portal-logo .brand-logo-name{display:none}.portal-menu-toggle{display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:10px;color:inherit;background:rgba(255,255,255,.1)}.portal-header.scrolled .portal-menu-toggle{background:#f0f1f4}.portal-nav{position:absolute;top:68px;left:12px;right:12px;display:none;padding:12px;border:1px solid var(--crm-border);border-radius:12px;color:var(--crm-text);background:#fff;box-shadow:0 18px 50px rgba(16,24,40,.16)}.portal-nav.open{display:grid}.portal-hero{min-height:620px;padding:110px 22px 150px}.portal-hero h1{font-size:48px}.portal-stats{left:16px;right:16px;bottom:18px;grid-template-columns:1fr 1fr}.portal-stats span:nth-child(2){border-right:0}.portal-stats span:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.12)}.portal-section{padding:68px 20px}.portal-project-grid,.portal-benefits,.portal-news-grid{grid-template-columns:1fr}.portal-availability,.portal-contact{grid-template-columns:1fr;gap:28px}.portal-contact{padding:68px 20px}.portal-footer{grid-template-columns:1fr;gap:18px}.portal-footer nav{flex-wrap:wrap}}
@media(max-width:420px){.portal-login-open{min-height:36px;padding:7px 10px}.portal-hero h1{font-size:40px}.portal-hero p{font-size:15px}.portal-hero .actions{align-items:stretch;flex-direction:column}.portal-stats span{padding:11px 13px}.portal-stats strong{font-size:21px}.portal-contact form{grid-template-columns:1fr}.portal-contact .full{grid-column:auto}}
.project-public-body{margin:0;background:#f5f6f8;color:#1d2027}.project-public-page{min-height:100vh}.project-public-header{position:relative;z-index:5;margin:0;padding:18px clamp(24px,6vw,96px);background:#fff;border-bottom:1px solid var(--crm-border)}.project-public-header .public-brand img{max-height:44px}.project-hero{display:flex;align-items:flex-end;min-height:clamp(460px,67vh,680px);padding:clamp(70px,10vw,140px) clamp(24px,8vw,130px);color:#fff;background-position:center;background-size:cover}.project-hero.fallback{background:radial-gradient(circle at 82% 20%,rgba(99,91,255,.36),transparent 34%),linear-gradient(135deg,#12151c,#242936)}.project-hero-copy{max-width:850px}.project-hero h1{margin:12px 0;font-size:clamp(44px,7vw,84px);font-weight:600;line-height:.96;letter-spacing:-.055em}.project-hero p{margin:0;color:#d7d9df;font-size:clamp(18px,2vw,25px)}.project-hero .actions{display:flex;gap:12px;margin-top:30px}.project-whatsapp-outline{color:#fff!important;background:rgba(255,255,255,.08)!important;border:1px solid rgba(255,255,255,.38)!important;box-shadow:none!important}.project-info-section{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,80px);align-items:center;padding:clamp(60px,8vw,110px) clamp(24px,7vw,120px);background:#fff}.project-info-section.without-video{grid-template-columns:1fr}.project-video{overflow:hidden;position:relative;width:100%;padding-top:56.25%;border-radius:20px;background:#171a21;box-shadow:0 20px 50px rgba(18,23,33,.15)}.project-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.project-features h2,.project-section-heading h2,.project-final-cta h2{margin:8px 0 24px;font-size:clamp(30px,4vw,50px);font-weight:600;line-height:1.05;letter-spacing:-.045em}.project-feature-grid{display:grid;gap:3px}.project-feature-grid article{display:grid;grid-template-columns:34px 1fr;gap:14px;padding:14px 0;border-bottom:1px solid var(--crm-border)}.project-feature-grid article>span{color:var(--crm-primary);font-size:12px;font-weight:700}.project-feature-grid h3{margin:0 0 4px;font-size:16px}.project-feature-grid p{margin:0;color:var(--crm-muted);line-height:1.55}.project-map-section{padding:clamp(60px,8vw,110px) clamp(18px,6vw,100px)}.project-section-heading{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:28px}.project-section-heading p{color:var(--crm-muted)}.project-map-shell{overflow:hidden;border:1px solid var(--crm-border);border-radius:18px;background:#fff;box-shadow:0 12px 40px rgba(16,24,40,.06)}.project-map-shell .map-zoom-controls{padding:12px}.project-map-shell .map-point{border:0;cursor:default}.project-map-shell .map-point.disponible{cursor:pointer}.project-share{margin-top:18px;color:var(--crm-muted)}.project-share summary{cursor:pointer;font-weight:600}.project-share>div{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:16px 0}.project-final-cta{display:flex;justify-content:space-between;gap:30px;align-items:center;padding:70px clamp(24px,8vw,130px);color:#fff;background:#171a21}.project-final-cta p{color:#b9bec7}.project-footer{display:flex;justify-content:space-between;gap:20px;padding:30px clamp(24px,8vw,130px);color:#aeb3bd;background:#111318;border-top:1px solid rgba(255,255,255,.08)}.public-lot-dialog{width:min(460px,calc(100% - 28px));padding:28px;border:0;border-radius:18px;box-shadow:0 30px 90px rgba(16,24,40,.35)}.public-lot-dialog::backdrop{background:rgba(15,18,24,.68)}.public-lot-dialog h2{margin:8px 0 18px}.public-lot-dialog dl{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.public-lot-dialog dl div{padding:12px;border-radius:10px;background:#f3f4f6}.public-lot-dialog dt{color:var(--crm-muted);font-size:11px}.public-lot-dialog dd{margin:5px 0 0;font-weight:700}.public-lot-dialog .btn{width:100%;margin-top:16px}.public-hero-preview{width:min(100%,760px);max-height:360px;border-radius:14px;object-fit:cover}.public-page-admin{max-width:none}.public-feature-editor{display:grid;gap:14px}.public-feature-row{display:grid;grid-template-columns:2fr 100px auto auto;gap:12px;align-items:end;padding:16px;border:1px solid var(--crm-border);border-radius:12px;background:#f8f9fb}.public-feature-row .full{grid-column:1/-1}.section-heading-inline{display:flex;justify-content:space-between;gap:18px;align-items:center}
@media(max-width:800px){.project-public-header nav{display:none}.project-public-header .public-brand small{display:none}.project-hero{min-height:500px;align-items:center}.project-hero .actions{display:grid}.project-info-section{grid-template-columns:1fr}.project-section-heading,.project-final-cta,.project-footer{align-items:flex-start;flex-direction:column}.project-section-heading .legend{justify-content:flex-start}.project-final-cta .btn{width:100%}.public-feature-row{grid-template-columns:1fr 90px}.public-feature-row .full{grid-column:1/-1}}
@media(max-width:480px){.project-public-header{padding:13px 16px}.project-public-header>a.btn{display:none}.project-hero{min-height:430px;padding:58px 20px}.project-hero h1{font-size:42px}.project-map-section{padding-left:12px;padding-right:12px}.map-zoom-controls .btn{padding:7px 9px;font-size:11px}.public-lot-dialog dl{grid-template-columns:1fr}.public-feature-row{grid-template-columns:1fr}.section-heading-inline{align-items:flex-start;flex-direction:column}}
.project-lot-list{padding:0 clamp(18px,6vw,100px) 70px}.project-lot-list>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.project-lot-list article{display:grid;gap:5px;padding:16px;border:1px solid var(--crm-border);border-radius:12px;background:#fff}.project-lot-list span,.project-lot-list small{color:var(--crm-muted)}
@media(max-width:800px){.project-lot-list>div{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.project-lot-list>div{grid-template-columns:1fr}}
.project-description-section{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(36px,6vw,84px);align-items:center;max-width:1400px;margin:0 auto;padding:clamp(64px,8vw,112px) clamp(24px,7vw,100px);background:#fff}.project-description-section.without-video{grid-template-columns:1fr}.project-description-copy{max-width:620px}.project-description-copy h2,.project-section-title h2{margin:10px 0 20px;font-size:clamp(32px,4vw,52px);font-weight:600;line-height:1.08;letter-spacing:-.045em}.project-description-copy p{margin:0;color:var(--crm-muted);font-size:17px;line-height:1.8;white-space:pre-line}.project-features-section{padding:clamp(60px,7vw,96px) clamp(24px,7vw,100px);background:#f5f6f8}.project-section-title{max-width:760px;margin:0 auto 34px;text-align:center}.project-feature-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;max-width:1300px;margin:0 auto}.project-feature-cards article{padding:24px;border:1px solid var(--crm-border);border-radius:16px;background:#fff;box-shadow:0 6px 18px rgba(16,24,40,.035)}.project-feature-cards i{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;color:var(--crm-primary);background:var(--crm-primary-soft)}.project-feature-cards h3{margin:18px 0 8px;font-size:18px}.project-feature-cards p{margin:0;color:var(--crm-muted);line-height:1.65}.admin-video-preview{max-width:720px}
@media(max-width:900px){.project-feature-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:768px){.project-description-section{grid-template-columns:1fr}.project-feature-cards{grid-template-columns:1fr}.project-description-copy{max-width:none}}

/* Public urbanization landing: compact hierarchy and high-contrast map markers. */
.project-public-header{min-height:78px;padding:11px clamp(24px,5vw,72px)}.project-public-header .public-brand{display:flex;align-items:center;gap:13px;min-height:56px;padding:3px 0}.project-public-header .public-brand img{width:auto;max-width:210px;height:54px;max-height:54px;object-fit:contain}.project-public-header>nav{display:flex;gap:24px;align-items:center}.project-public-header>nav a{color:var(--crm-muted);font-size:14px;font-weight:600}.project-public-header>.btn{padding:12px 22px;border:0;border-radius:11px;color:#fff;background:linear-gradient(135deg,#635bff,#7c6fff);box-shadow:0 8px 20px rgba(99,91,255,.22);font-weight:600;transition:transform .16s ease,box-shadow .16s ease,filter .16s ease}.project-public-header>.btn:hover{filter:brightness(1.04);transform:translateY(-1px);box-shadow:0 11px 24px rgba(99,91,255,.28)}
.project-hero{min-height:clamp(480px,58vh,620px);padding:80px max(24px,calc((100vw - 1280px)/2 + 24px))}.project-hero .btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 24px;border:0;border-radius:11px;color:#fff;background:linear-gradient(135deg,#635bff,#746aff);box-shadow:0 9px 22px rgba(41,35,154,.28);font-weight:700;transition:transform .16s ease,box-shadow .16s ease,filter .16s ease}.project-hero .btn:hover{filter:brightness(1.05);transform:translateY(-1px);box-shadow:0 12px 27px rgba(41,35,154,.34)}.project-hero .project-whatsapp-outline{color:#fff!important;background:#25d366!important;border:0!important;box-shadow:0 9px 22px rgba(37,211,102,.22)!important}.project-hero .project-whatsapp-outline:hover{background:#20bd5a!important;box-shadow:0 12px 27px rgba(37,211,102,.3)!important}
.project-description-section{max-width:1280px;padding:80px 28px;gap:clamp(48px,5vw,64px)}.project-description-copy{max-width:600px}.project-description-copy h2{font-size:clamp(30px,3vw,46px)}.project-description-copy p{font-size:clamp(16px,1.25vw,18px);line-height:1.7}.project-features-section{padding:62px max(24px,calc((100vw - 1280px)/2 + 24px))}.project-section-title{max-width:800px;margin-bottom:44px}.project-section-title h2{font-size:clamp(34px,3.2vw,44px)}.project-feature-cards{max-width:1280px;gap:22px}.project-feature-cards article{min-height:165px;padding:27px;border-radius:16px}.project-feature-cards h3{font-size:19px;font-weight:700}.project-feature-cards p{font-size:15px;line-height:1.6}
.project-map-section{max-width:1400px;margin:0 auto;padding:64px clamp(20px,4vw,60px)}.project-section-heading{align-items:flex-end;max-width:1280px;margin:0 auto 32px}.project-section-heading>div:first-child{max-width:720px}.project-section-heading h2{font-size:clamp(38px,3.5vw,46px)}.project-section-heading p{font-size:16px;line-height:1.6}.project-section-heading .legend{justify-content:flex-end;gap:14px 18px}.project-section-heading .legend span{font-size:14px}.project-section-heading .legend-dot{width:12px;height:12px;margin-right:7px}.project-map-shell{max-width:1280px;margin:0 auto;border:1px solid rgba(100,116,139,.22);border-radius:18px;background:#eef1f5;box-shadow:0 8px 24px rgba(15,23,42,.06)}
.project-map-shell .plan-map-layer{position:relative}.project-map-shell .map-point.public{inline-size:32px;block-size:32px;padding:0;pointer-events:auto;z-index:20;border:3px solid #fff;opacity:1;color:#fff;font-size:12px;font-weight:700;line-height:1;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.3);transform:translate(-50%,-50%);transform-origin:center;transition:transform .17s ease,box-shadow .17s ease,outline-color .17s ease}.project-map-shell .map-point.public.disponible{background:#22c55e}.project-map-shell .map-point.public.vendido{background:#ef4444}.project-map-shell .map-point.public.reservado{background:#3b82f6}.project-map-shell .map-point.public.bloqueado{background:#64748b}.project-map-shell .map-point.public:hover{z-index:22;transform:translate(-50%,-50%) scale(1.12);box-shadow:0 5px 14px rgba(0,0,0,.38)}.project-map-shell .map-point.public.is-selected{z-index:24;outline:3px solid rgba(99,91,255,.5);outline-offset:2px;transform:translate(-50%,-50%) scale(1.15);box-shadow:0 6px 18px rgba(0,0,0,.4)}
.project-final-cta{padding:70px max(24px,calc((100vw - 1280px)/2 + 24px))}.project-final-cta>.btn.whatsapp{min-height:48px;padding:13px 22px;border:0;background:#25d366}.project-final-cta>.btn.whatsapp:hover{background:#20bd5a}.project-footer{padding:24px max(24px,calc((100vw - 1280px)/2 + 24px))}
@media(max-width:1024px){.project-public-header .public-brand img{height:48px;max-height:48px}.project-description-section{padding:74px 28px;gap:48px}.project-features-section{padding-top:58px;padding-bottom:58px}.project-section-heading{align-items:flex-start;flex-direction:column}.project-section-heading .legend{justify-content:flex-start}}
@media(max-width:768px){.project-public-header{min-height:70px}.project-public-header .public-brand img{height:43px;max-height:43px}.project-public-header>.btn{padding:10px 15px}.project-hero{min-height:480px;padding:64px 22px}.project-hero .actions{width:100%}.project-hero .btn{width:100%}.project-description-section{padding:64px 22px}.project-features-section{padding:54px 22px}.project-section-title{margin-bottom:34px}.project-map-section{padding:56px 14px}.project-map-shell .map-point.public{inline-size:29px;block-size:29px;font-size:11px}.project-final-cta{padding:62px 22px}.project-footer{padding:21px 22px}}
@media(max-width:430px){.project-public-header{padding:9px 14px}.project-public-header .public-brand{min-height:48px}.project-public-header .public-brand img{height:40px;max-height:40px;max-width:150px}.project-public-header>a.btn{display:inline-flex;padding:9px 12px;font-size:12px}.project-hero{min-height:460px}.project-hero .actions{gap:10px}.project-feature-cards article{min-height:150px;padding:24px}.project-map-shell .map-point.public{inline-size:28px;block-size:28px}.project-final-cta{padding-top:58px;padding-bottom:58px}.project-footer{gap:8px;font-size:13px}}

/* Responsive comercial y base PWA */
html,body{max-width:100%;overflow-x:hidden}.mobile-topbar-brand,.advisor-mobile-priorities{display:none}.sidebar :is(a,button,select):focus-visible,.crm-topbar :is(a,button,input):focus-visible,.responsive-table a:focus-visible,.responsive-table button:focus-visible{outline:3px solid color-mix(in srgb,var(--crm-olive) 55%,white);outline-offset:2px}.advisor-mobile-priorities{gap:10px;margin-bottom:18px}.advisor-mobile-priorities .btn{gap:9px;min-height:48px}.advisor-projects-link{grid-column:1/-1}.supervisor-team td small{display:block;margin-top:4px;color:var(--crm-muted)}

@media(max-width:1024px){
    .crm-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .operations-quick-grid,.supervisor-project-grid,.report-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .main.main-content{padding-inline:20px}
}

@media(max-width:760px){
    body.sidebar-drawer-open{overflow:hidden}
    .crm-topbar{gap:8px;padding-inline:12px}
    .topbar-left{min-width:0;flex:1;gap:8px}
    .crm-search{display:none}
    .mobile-topbar-brand{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border:1px solid var(--crm-border);border-radius:11px;background:#fff;overflow:hidden}
    .mobile-topbar-brand img{width:100%;height:100%;padding:4px;object-fit:contain}.mobile-topbar-brand>span{color:var(--crm-olive-dark);font-size:21px;font-weight:900}
    .sidebar-trigger,.user-menu-trigger,.topbar-actions .icon-button{min-width:44px;min-height:44px}
    .user-menu-trigger{max-width:min(50vw,220px);padding-right:4px}
    .user-copy{display:grid;min-width:0;max-width:130px}.user-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-copy small{display:none}
    .user-dropdown{position:fixed;top:62px;right:10px;width:min(280px,calc(100vw - 20px))}.user-dropdown a,.user-dropdown button{min-height:44px}
    .sidebar,.sidebar-collapsed .sidebar{z-index:60}.sidebar-open .sidebar-overlay{z-index:55}.sidebar :is(.sidebar-group-toggle,.sidebar-link,.logout){min-height:44px}
    .main.main-content{padding:20px 14px}.topbar{width:100%;gap:12px}.topbar>.actions{width:100%}.topbar>.actions .btn{flex:1 1 140px}
    .form,.filter-form,.filter-form.compact,.filter-form.list-filters,.filter-form.sales-filters{grid-template-columns:1fr!important;width:100%;max-width:none}
    .field.full{grid-column:auto}.field :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea),.form :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea),.filter-form :is(input:not([type="checkbox"]):not([type="radio"]),select){min-height:44px}
    .form>.field.full:last-child .btn,.form>button[type="submit"],.filter-actions .btn{width:100%}
    .filter-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}
    .advisor-mobile-priorities{display:grid;grid-template-columns:1fr 1fr}
    .advisor-kpis .advisor-priority-reservations{order:1}.advisor-kpis .advisor-priority-clients{order:2}.advisor-kpis .advisor-priority-sales{order:3}.advisor-kpis .advisor-priority-lots{order:4}
    .table-scroll:has(.responsive-table){overflow:visible}
    .responsive-table{display:block;min-width:0!important;border:0;background:transparent;overflow:visible}
    .responsive-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
    .responsive-table tbody{display:grid;gap:12px}
    .responsive-table tr{display:grid;padding:14px;border:1px solid var(--crm-border);border-radius:13px;background:#fff;box-shadow:0 7px 20px rgba(13,15,13,.05)}
    .responsive-table td{display:grid;grid-template-columns:minmax(95px,38%) minmax(0,1fr);gap:10px;align-items:start;padding:8px 0;border-bottom:1px solid rgba(13,15,13,.07);overflow-wrap:anywhere}
    .responsive-table td::before{content:attr(data-label);color:var(--crm-muted);font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
    .responsive-table td:last-child{border-bottom:0}.responsive-table td.actions{display:grid;grid-template-columns:1fr;gap:8px;padding-top:12px}.responsive-table td.actions::before{margin-bottom:1px}.responsive-table td.actions :is(a,button,form){width:100%;min-height:44px}.responsive-table td.actions form{display:block}
    .responsive-table .responsive-empty{padding:0}.responsive-table .responsive-empty td{display:block;padding:0;border:0}.responsive-table .responsive-empty td::before{display:none}
    .commercial-list td[data-label="Nombre"],.commercial-list td[data-label="Cliente"]{grid-template-columns:1fr;font-size:16px}.commercial-list td[data-label="Nombre"]::before,.commercial-list td[data-label="Cliente"]::before{display:none}
    .commercial-list td[data-label="Email"],.commercial-list td[data-label="Asesor"],.commercial-list td[data-label="Ventas"],.commercial-list td[data-label="Tipo"],.commercial-list td[data-label="Cuota inicial"],.commercial-list td[data-label="Saldo"],.commercial-list td[data-label="Cuotas"],.commercial-list td[data-label="Propietario"],.commercial-list td[data-label="Superficie"],.commercial-list td[data-label="Manzanos"]{display:none}
    .operations-alert{align-items:flex-start;flex-direction:column}.operations-alert .btn{width:100%}
    .quick-modal,.map-dialog,.commercial-calculator-dialog{max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow:auto}
    .public-lot-dialog{width:calc(100% - 20px);max-height:calc(100dvh - 20px);padding:22px;overflow:auto}.public-lot-dialog .dialog-close{width:44px;height:44px}
    .project-map-shell .plan-map-viewport{height:clamp(360px,62dvh,580px);min-height:360px;overflow:hidden;touch-action:none;overscroll-behavior:contain}
    .project-map-shell .plan-map-layer{min-width:720px}
    .project-map-shell .map-zoom-controls{position:relative;inset:auto;display:grid;width:100%;max-width:none;grid-template-columns:repeat(2,minmax(0,1fr));border-radius:0;box-shadow:none}.project-map-shell .map-zoom-controls .btn{min-height:44px}.project-map-shell .zoom-value{grid-column:1/-1}
    .portal-contact :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea),.portal-availability select,.mobile-login input:not([type="checkbox"]):not([type="radio"]){min-height:44px}.portal-contact .btn,.portal-availability .btn{min-height:48px}
    .mobile-login{width:min(420px,calc(100% - 32px));max-width:calc(100% - 32px);max-height:calc(100dvh - 32px);overflow-x:hidden;overflow-y:auto}
    .mobile-login form{width:100%;min-width:0;padding:24px 20px}
    .mobile-login .login-remember{display:flex;align-items:center;justify-content:flex-start;gap:9px;width:fit-content;max-width:100%;min-height:44px;margin:0;font-size:13px;cursor:pointer}
    .mobile-login .login-remember input[type="checkbox"]{appearance:auto;width:18px;min-width:18px;max-width:18px;height:18px;min-height:18px;max-height:18px;flex:0 0 18px;margin:0;padding:0}
    .mobile-login .dialog-close{width:44px;height:44px}.mobile-login .btn[type="submit"]{width:100%;min-height:48px}
    .portal-nav{max-width:calc(100vw - 24px);overflow-x:hidden}.portal-nav a{display:flex;align-items:center;min-height:44px;padding:8px 10px}
}

@media(max-width:480px){
    .crm-kpi-grid,.operations-quick-grid,.supervisor-project-grid,.report-card-grid{grid-template-columns:1fr}
    .advisor-mobile-priorities{grid-template-columns:1fr}.advisor-projects-link{grid-column:auto}
    .crm-kpi{min-height:104px}.page-header-actions{display:grid;grid-template-columns:1fr;width:100%}.page-header-actions>*{width:100%}
    .filter-actions{grid-template-columns:1fr}.responsive-table td{grid-template-columns:minmax(86px,36%) minmax(0,1fr)}
    .portal-header{grid-template-columns:auto 1fr auto;gap:8px}.portal-logo{max-width:54px}.portal-login-open{justify-self:end}.portal-menu-toggle{width:44px;height:44px}
    .portal-hero{min-height:580px;padding-top:96px}.portal-hero h1{font-size:clamp(36px,11vw,44px)}.portal-section,.portal-contact{padding-inline:16px}.portal-contact form{padding:18px}
    .project-public-header{gap:10px}.project-public-header .public-brand span{min-width:0}.project-public-header .public-brand strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-public-header .public-brand img{max-width:110px}.project-hero{min-height:410px;padding:48px 18px}.project-hero h1{font-size:clamp(36px,11vw,44px)}
    .public-lot-dialog dl{grid-template-columns:1fr}.project-footer{overflow-wrap:anywhere}
}

/* Identidad visual reutilizable: el contenedor limita logos de cualquier proporción. */
.brand-logo-frame{display:inline-flex;align-items:center;gap:10px;min-width:0;max-width:100%;vertical-align:middle}
.brand-logo{display:block;flex:0 0 auto;flex-shrink:0;max-width:100%;max-height:100%;object-fit:contain;object-position:center}
.brand-logo-fallback{display:inline-grid;place-items:center;flex:0 0 auto;border:1px solid rgba(135,154,50,.35);border-radius:11px;color:#fff;background:linear-gradient(135deg,var(--crm-olive),var(--crm-olive-dark));font-weight:800;letter-spacing:.04em;line-height:1}
.brand-logo-name{min-width:0;color:inherit;font-size:inherit;font-weight:700;line-height:1.2}
.brand-logo--sidebar,.brand-logo-fallback--sidebar{width:44px;height:44px;max-width:44px;max-height:44px}
.brand-logo--topbar,.brand-logo-fallback--topbar{width:32px;height:32px;max-width:32px;max-height:32px}
.brand-logo--login,.brand-logo-fallback--login{width:180px;height:82px;max-width:min(180px,100%);max-height:82px}
.brand-logo--login-hero,.brand-logo-fallback--login-hero{width:180px;height:100px;max-width:min(180px,100%);max-height:100px}
.brand-logo--public-header,.brand-logo-fallback--public-header{width:132px;height:52px;max-width:min(132px,100%);max-height:52px}
.brand-logo--footer,.brand-logo-fallback--footer{width:52px;height:44px;max-width:52px;max-height:44px}
.brand-logo--pwa,.brand-logo-fallback--pwa{width:88px;height:88px;max-width:88px;max-height:88px}
.brand-logo-fallback--sidebar,.brand-logo-fallback--topbar{font-size:15px}
.brand-logo-fallback--login,.brand-logo-fallback--login-hero,.brand-logo-fallback--pwa{font-size:25px}
.brand-logo-fallback--public-header,.brand-logo-fallback--footer{font-size:17px}
.sidebar .brand>.brand-logo-frame{display:inline-flex;grid-row:1/span 2;width:44px;margin:0;color:#fff}
.sidebar .brand .brand-logo-frame span{margin:0}
.sidebar .brand .brand-logo-fallback--sidebar{color:#fff;font-size:15px;letter-spacing:.04em}
.sidebar .brand .sidebar-brand-copy{display:grid;gap:3px;margin:0;color:#fff;font-size:14px}
.sidebar .brand .sidebar-brand-copy strong{font-size:12px;overflow-wrap:anywhere}
.sidebar .brand .sidebar-brand-copy small{color:#858b83;font-size:9px;font-weight:400;letter-spacing:.04em}
.mobile-topbar-brand>.brand-logo-frame{display:inline-flex}
.login-heading>.brand-logo-frame--login{display:none;margin:0 auto 18px}
.login-visual-content>.brand-logo-frame--login-hero{margin-bottom:26px}
.mobile-login .brand-logo-frame--login{justify-self:center;margin:0 auto}
.mobile-login .brand-logo--login,.mobile-login .brand-logo-fallback--login{width:130px;height:58px;max-width:130px;max-height:58px}
.portal-logo>.brand-logo-frame{color:inherit}
.public-brand>.brand-logo-frame{display:inline-flex}
.portal-footer .brand-logo-frame--footer{color:#fff}
.receipt-public-header>.brand-logo-frame{flex:0 0 auto}
.portal-logo .brand-logo.brand-logo--public-header,.portal-logo .brand-logo-fallback--public-header{width:42px;height:42px;max-width:42px;max-height:42px}
.project-public-header .brand-logo.brand-logo--public-header,.project-public-header .brand-logo-fallback--public-header{width:132px;height:52px;max-width:132px;max-height:52px}
.receipt-public-header .brand-logo.brand-logo--public-header,.receipt-public-header .brand-logo-fallback--public-header{width:74px;height:74px;max-width:74px;max-height:74px}

@media(max-width:800px){
    .portal-logo .brand-logo.brand-logo--public-header,.portal-logo .brand-logo-fallback--public-header{width:44px;height:44px;max-width:44px;max-height:44px}
}

@media(max-width:760px){
    .login-heading>.brand-logo-frame--login{display:inline-flex}
    .project-public-header .brand-logo.brand-logo--public-header,.project-public-header .brand-logo-fallback--public-header{width:110px;height:43px;max-width:110px;max-height:43px}
}

@media(max-width:430px){
    .project-public-header .brand-logo.brand-logo--public-header,.project-public-header .brand-logo-fallback--public-header{width:86px;height:40px;max-width:86px;max-height:40px}
}

/* Protección comercial de clientes */
.commercial-match-card{display:grid;gap:10px;margin:0 0 18px;padding:18px 20px;border:1px solid #e2c879;border-left:5px solid #c89123;border-radius:14px;color:#59430e;background:#fff9e9;box-shadow:0 8px 24px rgba(96,67,12,.06)}
.commercial-match-card.exact{border-color:#d7a5a5;border-left-color:#b94747;color:#652929;background:#fff5f5}
.commercial-match-card h2,.commercial-match-card p{margin:0}.commercial-match-card ul{margin:0;padding-left:20px}.commercial-match-card article{display:grid;gap:3px;padding:10px 12px;border:1px solid rgba(174,127,31,.2);border-radius:9px;background:rgba(255,255,255,.65)}.commercial-match-card article span,.commercial-match-card article small{color:#75633c}
.client-match-preview{margin:0}.client-match-preview .commercial-match-card{margin:0}
.commercial-control-card,.commercial-properties-card{margin-top:18px}.commercial-control-details{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0}.commercial-control-details div{padding:14px;border:1px solid var(--crm-border);border-radius:11px;background:#f8f9f5}.commercial-control-details dt{color:var(--crm-muted);font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.commercial-control-details dd{margin:6px 0 0;font-weight:700}
.commercial-property-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.commercial-property-grid article{display:grid;gap:5px;padding:16px;border:1px solid var(--crm-border);border-radius:12px;background:#f8f9f5}.commercial-property-grid span,.commercial-property-grid small{color:var(--crm-muted)}
.commercial-protection-status,.commercial-event-badge{display:inline-flex;align-items:center;width:max-content;padding:5px 9px;border-radius:999px;font-size:10px;font-weight:800}.commercial-protection-status.protected,.commercial-event-badge.valid{color:#23613f;background:#e5f5ea}.commercial-protection-status.expired{color:#62675f;background:#eceee9}.commercial-event-badge.warning{color:#7a5610;background:#fff0c7}
.commercial-control-kpis{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:18px}.commercial-control-filters{grid-template-columns:repeat(3,minmax(180px,1fr))}.commercial-control-table td{vertical-align:middle}
@media(max-width:1024px){.commercial-control-details{grid-template-columns:repeat(2,minmax(0,1fr))}.commercial-property-grid,.commercial-control-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.commercial-control-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.commercial-match-card{padding:16px}.commercial-match-card .actions{display:grid}.commercial-match-card .actions .btn{width:100%}.commercial-control-details,.commercial-property-grid,.commercial-control-kpis,.commercial-control-filters{grid-template-columns:1fr}.commercial-control-table{display:block;min-width:0}}
/* Importación masiva de clientes */
.import-steps,.import-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}.import-steps span{padding:12px;border-radius:10px;background:#eef2f7;color:#64748b;text-align:center}.import-steps .active{background:#dbeafe;color:#1d4ed8;font-weight:700}.import-summary{grid-template-columns:repeat(5,minmax(0,1fr))}.import-summary>div{padding:16px;border:1px solid #e2e8f0;border-radius:12px;background:#fff}.import-summary strong,.import-summary span{display:block}.import-summary strong{font-size:1.5rem}.import-summary .ready{border-color:#86efac}.import-summary .match{border-color:#fbbf24}.import-summary .error{border-color:#fca5a5}.import-row-ready .import-status,.import-row-created .import-status{color:#15803d}.import-row-existing .import-status{color:#2563eb}.import-row-match .import-status{color:#b45309}.import-row-error .import-status{color:#b91c1c}.import-status{font-weight:800}.import-accept{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:.85rem}.import-accept input{width:18px;height:18px;flex:0 0 18px}.import-actions{justify-content:flex-end;margin-top:16px}
@media(max-width:700px){.import-steps{grid-template-columns:1fr 1fr}.import-summary{grid-template-columns:1fr 1fr}.import-summary>div:first-child{grid-column:1/-1}.import-table{min-width:900px}}
