@import url('./type.css');
:root{--bg:#f5f7f8;--paper:#fff;--ink:#202c34;--muted:#7b868c;--line:#e8ecee;--green:#26795b;--green-dark:#19583f;--mint:#eaf5ee;--sidebar:244px;--shadow:0 3px 16px #172e3d04;font-family:'Segoe UI',Arial,sans-serif;color:var(--ink);font-size:14px;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:var(--bg)}a{color:var(--green);text-decoration:none}a:hover{color:var(--green-dark)}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}h1,h2,h3,h4,p{margin-top:0}h1{font-size:31px;font-weight:650;letter-spacing:-1.1px;margin-bottom:10px;line-height:1.25}h2{font-size:17px;font-weight:650;letter-spacing:-.3px;margin-bottom:9px}h3{font-size:14px}p{line-height:1.65}small{font-size:11px;color:var(--muted)}strong,b{font-weight:600}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:29px 17px 22px;z-index:30;overflow-y:auto}.brand{display:flex;gap:12px;align-items:center;margin:0 15px 35px;color:var(--ink);font-size:29px;font-weight:750;letter-spacing:1px}.brand-mark{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:var(--green);color:#fff;font-weight:600;font-size:28px;box-shadow:0 4px 9px #26795b22}.brand small{display:block;font-size:8px;letter-spacing:1.3px;color:#828b8e;line-height:1.8}.workspace-label{font-size:9px;font-weight:700;letter-spacing:1.25px;color:#9aa2a7;margin:21px 15px 12px}.context-form{border:1px solid var(--line);border-radius:10px;padding:9px 7px;background:#fafbfa;margin:0 6px 3px}.context-form select{border:0;background:transparent;margin:0;padding:7px;font-size:11px;font-weight:600;color:#52615b;min-height:30px}.context-form select:last-child{color:var(--green);font-size:12px}.nav-link{display:flex;align-items:center;gap:13px;padding:12px 14px;border-radius:7px;margin:3px 0;color:#718087;font-size:12px;font-weight:500;white-space:nowrap}.nav-link>span{font-size:19px;line-height:1;width:21px;text-align:center;color:#8d989e}.nav-link.active{background:var(--mint);color:var(--green);font-weight:650}.nav-link.active>span{color:var(--green)}.nav-link:hover{background:#f5f8f6}.nav-link small{margin-left:auto;font-size:7px;font-weight:700;color:#63947f;background:#eef5f0;padding:3px 4px;border-radius:3px}.sidebar-bottom{margin:38px 13px 0;padding-top:21px;border-top:1px solid var(--line);font-size:10px;color:#85938b}.sidebar-bottom small{display:block;font-size:8px;margin-top:8px}.live-dot{display:inline-block;width:6px;height:6px;background:#5f9f79;border-radius:50%;margin-right:5px}.app-shell{margin-left:var(--sidebar);min-height:100vh;display:flex;flex-direction:column}.topbar{height:78px;background:#fff;border-bottom:1px solid var(--line);padding:0 36px;display:flex;align-items:center;justify-content:space-between;gap:16px}.breadcrumb{color:#98a1a6;font-size:11px}.breadcrumb span{margin:0 14px;color:#c9ced0}.breadcrumb strong{color:#5b6870;font-weight:500}.topbar-right{display:flex;gap:17px;align-items:center}.topbar-divider{height:26px;border-left:1px solid var(--line)}.icon-button{display:inline-grid;place-items:center;min-width:30px;height:32px;border:0;background:transparent;color:#7e8d95;font-size:18px;padding:0 6px;border-radius:6px}.icon-button:hover{background:#f0f3f2}.user-chip{display:flex;gap:10px;align-items:center;color:#46535a;font-size:11px;font-weight:600}.user-chip small{display:block;font-size:9px;font-weight:400;margin-top:3px}.avatar{width:34px;height:34px;border-radius:50%;background:#ede8dc;display:grid;place-items:center;color:#8c7957;font-size:14px}.main{width:100%;padding:34px 36px 22px;flex:1;max-width:1900px;margin:0 auto}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:27px}.eyebrow{font-size:9px;letter-spacing:1.6px;font-weight:700;color:#829489;display:block;margin-bottom:10px}.page-heading p{font-size:12px;color:#919a9f;margin-bottom:0}.page-heading p strong{font-weight:500;color:#657970}.title-dot{color:var(--green)}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.button{display:inline-flex;justify-content:center;align-items:center;gap:8px;background:var(--green);color:#fff;border:1px solid var(--green);border-radius:7px;min-height:39px;padding:10px 17px;font-size:11px;font-weight:600;white-space:nowrap;transition:background .15s}.button:hover{background:var(--green-dark);color:#fff}.button.secondary{background:white;border-color:#dfe6e3;color:#61746b}.button.secondary:hover,.button.secondary.selected{background:var(--mint)}.button.danger{background:#b54d49;border-color:#b54d49}.button:disabled{opacity:.45;cursor:not-allowed}.button.full{width:100%;justify-content:space-between}.date-chip{border:1px solid #e3e8e7;border-radius:6px;background:#fff;color:#819089;font-size:11px;padding:11px 14px}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:24px}.stat-card{border:1px solid var(--line);border-radius:10px;padding:20px 21px 18px;background:#fff;box-shadow:var(--shadow);min-width:0}.stat-label{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#809087;font-weight:500;margin-bottom:15px}.stat-icon{border-radius:7px;font-size:17px;width:29px;height:29px;display:grid;place-items:center}.stat-card h2{font-size:27px;letter-spacing:-1px;line-height:1.2;margin-bottom:13px;white-space:nowrap;font-weight:650}.stat-card h2 small{font-size:12px;color:#6c7970;letter-spacing:0;font-weight:500}.stat-card h2 small.fraction{font-size:17px;color:#a5b0aa}.stat-card p{font-size:9px;color:#9ba69e;margin:0}.stat-card p a{font-size:9px;color:#ae8f55}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px;flex:none}.green-dot,.status-Disponible{background:#67a17c}.amber-dot,.status-Reservado{background:#d3ad63}.violet-dot,.status-Vendido{background:#aaa2cc}.gray-dot,.status-Bloqueado{background:#b7c0bd}.green,.status-badge-Disponible{background:#edf6ef;color:#58916c}.violet,.status-badge-Vendido{background:#f0eef8;color:#9786b5}.amber,.status-badge-Reservado{background:#fcf4e5;color:#b4944f}.blue{background:#ecf4f9;color:#7899b4}.red{background:#fbeeee;color:#bb6767}.neutral,.status-badge-Bloqueado{background:#f1f4f3;color:#7f8c86}.panel{background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);min-width:0;overflow:hidden}.panel.padded{padding:24px}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:22px 23px 15px}.panel-heading h2{font-size:14px;margin-bottom:5px}.panel-heading p{font-size:10px;color:#9aa5a0;margin:0}.panel-heading.flush{padding:0 0 14px}.text-link{font-size:10px;font-weight:500}.badge{display:inline-block;padding:5px 9px;font-size:9px;border-radius:5px;white-space:nowrap;line-height:1.4}.dashboard-middle{display:grid;grid-template-columns:1.3fr 1fr;gap:22px;margin-bottom:24px}.bar-chart{height:202px;display:flex;gap:15px;padding:17px 34px 5px;align-items:end;background:repeating-linear-gradient(to top,transparent 0,transparent 43px,#f4f6f5 44px,#f4f6f5 45px);margin:0 22px}.bar-column{display:flex;flex-direction:column;flex:1;align-items:center;font-size:9px;color:#98a69d;height:100%;justify-content:end;min-width:0}.bar-column svg{width:100%;height:150px;max-width:60px}.bar-column rect{fill:#71a78a}.bar-column:last-child rect{fill:#26795b}.bar-column>span:last-child{padding-top:10px;text-transform:capitalize}.bar-value{font-size:8px;color:#a8b1ac}.chart-note{padding:20px 25px;font-size:9px;color:#9faaA4}.inventory-center{display:flex;padding:0 25px;align-items:center;justify-content:space-around;gap:14px}.donut{width:170px;height:170px;flex-shrink:0}.donut text{font-family:inherit;font-size:31px;font-weight:650;fill:#394e41}.donut .donut-label{font-size:10px;font-weight:400;fill:#92a196}.inventory-legend{flex:1;max-width:200px;font-size:10px;color:#91a094}.inventory-legend p{display:flex;align-items:center;margin-bottom:13px}.inventory-legend b{margin-left:auto;color:#5f7065}.map-cta{display:flex;align-items:center;gap:13px;background:#f5f9f6;padding:13px 16px;border-radius:6px;margin:4px 23px 19px;color:#4a795d;font-size:11px}.map-cta>span{font-size:25px}.map-cta small{display:block;font-size:8px;margin-top:4px;color:#98ac9e}.map-cta>b{margin-left:auto}.dashboard-bottom{display:grid;grid-template-columns:1.4fr 1fr;gap:22px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:11px;text-align:left}thead{background:#fafbfb;color:#9ca6a2;font-weight:400;font-size:11px}
th {
    font-weight: 500;
    padding: 12px 21px;
    white-space: nowrap
}td{padding:5px 7px;border-bottom:1px solid #f0f3f1;color:#718177;line-height:1.45}td strong,.cell-title{color:#53675a;font-weight:500}td small{display:block;font-size:9px;margin-top:4px;color:#a1aea6}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fdfefd}.numeric{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}tfoot{background:#f6f9f7;font-weight:600}.task-row{display:flex;align-items:center;gap:12px;padding:15px 23px;border-bottom:1px solid #f1f4f2;color:#6e8073}.task-icon{width:32px;height:34px;display:grid;place-items:center;background:#f6f7f3;border-radius:7px;color:#91a689;font-size:18px}.task-row>div{min-width:0}.task-row strong{font-size:10px;color:#627569;display:block}.task-row small{display:block;font-size:8px;line-height:1.4;margin-top:5px}.task-row>b{margin-left:auto;font-size:11px;white-space:nowrap}.all-link{display:block;font-size:10px;text-align:center;padding:16px}.app-footer{padding:23px 36px 20px;color:#aab3ae;display:flex;gap:10px;font-size:9px}.app-footer>span:last-child{margin-left:auto}.muted{color:var(--muted);font-size:12px}.section-gap{margin-top:24px;margin-bottom:24px}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;padding:0}.panel>form>.form-grid{padding:24px}.panel.padded>form>.form-grid,.upload-form>.form-grid{padding:0}.span-2{grid-column:span 2}label{display:block;font-size:12px;color:#53665b;font-weight:500;margin:14px 0 7px}input:not([type=checkbox]):not([type=hidden]),select,textarea{display:block;width:100%;border:1px solid #dfe6e2;border-radius:6px;padding:11px 12px;background:#fff;min-height:40px;color:#3e5146;outline:none;font-size:12px;max-width:100%}input:focus,select:focus,textarea:focus{border-color:#4b9470;box-shadow:0 0 0 3px #4b947013}input[type=checkbox]{accent-color:var(--green);width:16px;height:16px}textarea{resize:vertical}form>.button{margin-top:20px}.form-footer{border-top:1px solid var(--line);margin-top:24px;padding:20px 24px;display:flex;align-items:center;justify-content:flex-end;gap:12px}.form-footer>.muted{margin-right:auto}.panel.padded .form-footer{padding:20px 0 0}.checkbox{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:400;white-space:nowrap}.inline-form{display:flex;gap:16px;align-items:end;flex-wrap:wrap}.inline-form>div{flex:1;min-width:180px}.inline-form select{min-width:110px;width:auto;flex:1}.inline-form>.button{margin:0}.hint{color:#909e95;font-size:11px;line-height:1.7;margin:15px 0}.panel>.hint{padding:0 22px}.notice{border:1px solid #e4eae4;background:#f1f6f1;border-radius:8px;padding:15px 18px;color:#718570;font-size:12px;line-height:1.6;margin-bottom:20px}.notice.success{background:#eaf5ee;border-color:#d9ebdf;color:#3f805b}.validation{color:#b24949;font-size:12px;line-height:1.7}.validation:empty,.validation.validation-summary-valid{display:none}.validation ul{padding:14px 25px;background:#fff0ee;border-radius:7px}.field-validation-error{color:#b24949}.input-validation-error{border-color:#ba7777!important}.narrow{max-width:600px;padding:26px}.row-actions{display:flex;gap:13px;justify-content:flex-end;align-items:center;flex-wrap:wrap}.row-actions a,.link-button{font-size:10px}.link-button{background:transparent;border:0;color:var(--green);padding:0}.list-toolbar{display:flex;align-items:center;gap:18px;padding:20px 23px}.search-form{display:flex;gap:10px;align-items:center;margin-right:auto;min-width:260px}.search-form input{min-width:230px}.search-form>.button{margin:0}.pagination{display:flex;justify-content:space-between;padding:19px 23px;font-size:11px;color:#9ca9a1;border-top:1px solid var(--line)}.pagination>div{display:flex;gap:20px}.empty-cell{text-align:center;padding:45px 24px!important;color:#9ca9a2;font-size:12px}.tabs{display:flex;gap:20px;border-bottom:1px solid var(--line);margin-bottom:24px}.tabs a{padding:12px 3px;font-size:12px;color:#8f9c94}.tabs .selected{color:var(--green);border-bottom:2px solid var(--green)}.max-height{max-height:450px}.max-height thead{position:sticky;top:0;z-index:1}.document-list{padding:0 23px}.document-item{display:flex;gap:13px;align-items:center;padding:15px 0;border-top:1px solid var(--line);color:#6e8072}.document-item>span{font-size:24px;color:#9da99f}.document-item strong{font-size:12px}.document-item small{display:block;margin-top:5px}.document-item>b{margin-left:auto}.upload-form{padding:0 23px 23px;border-top:1px solid var(--line)}.summary-row{display:flex;justify-content:space-between;gap:14px;padding:16px 0;border-bottom:1px solid var(--line);font-size:12px;color:#84948a}.summary-row strong,.summary-row b{color:#4b6555}.summary-row.total{font-size:15px;background:#f1f7f3;padding:19px 14px;border-radius:6px;border:0;margin:20px 0}.sale-summary h2{font-size:25px;padding:15px 0}.tender-line{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr 25px;gap:12px;align-items:end}.tender-line>.icon-button{height:40px}.report-filters{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:16px;align-items:end}.report-filters .button{margin:0}.report-filters label{margin-top:0}.property-details{font-size:11px}.property-details>div{display:grid;grid-template-columns:1fr 1fr;gap:15px;padding:12px 0;border-bottom:1px solid var(--line)}.property-details dt{color:#8c9b92}.property-details dd{margin:0;color:#5b7162;overflow-wrap:anywhere}summary{font-weight:600;cursor:pointer;color:#6a7f6e;font-size:13px}details[open]>summary{margin-bottom:20px}hr{border:0;border-top:1px solid var(--line);margin:24px 0}.map-layout{display:grid;grid-template-columns:1fr 270px;gap:22px}.map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:15px 18px;border-bottom:1px solid var(--line);flex-wrap:wrap}.map-toolbar input{max-width:130px;min-height:30px!important;padding:7px 9px!important;font-size:10px!important}.map-filters{display:flex;gap:3px;flex-wrap:wrap}.map-filter{border:0;border-radius:5px;background:transparent;color:#8a9b8f;font-size:9px;padding:8px 9px}.map-filter.selected{background:#eaf3ed;color:#4c795a}.map-filter b{font-weight:500;font-size:8px;margin-left:4px}.map-filter .status-dot{width:5px;height:5px}.map-canvas{position:relative;overflow:hidden;background:#f2f3ed;height:530px;touch-action:none}#estate-map{display:block;width:100%;height:100%;user-select:none;cursor:grab;touch-action:none}#estate-map .lot-shape{fill:#dcebd6;stroke:#f7faf4;stroke-width:3;cursor:pointer;transition:fill .1s,opacity .15s}#estate-map .lot-shape.Reservado{fill:#f3dfb0}#estate-map .lot-shape.Vendido{fill:#ded8ed}#estate-map .lot-shape.Bloqueado{fill:#d1d7d4}#estate-map .lot-shape:hover,#estate-map .lot-shape.focused{fill:#a2cca1;stroke:#508552;stroke-width:3}#estate-map .lot-label{fill:#678060;pointer-events:none;font-size:8px;font-weight:600;font-family:inherit}#estate-map .lot-area{fill:#8b9c82;pointer-events:none;font-size:5.8px}#estate-map .feature-parque{fill:#c7dab3;stroke:#eef3e9;stroke-width:2}#estate-map .feature-calle{fill:#e1e3dc;stroke:#f8f9f5;stroke-width:3}#estate-map .feature-amenidad{fill:#d0e0de;stroke:#f8f9f5;stroke-width:2}#estate-map .feature-label{font-family:inherit;font-size:11px;fill:#97a28d;pointer-events:none}#estate-map .draft{fill:#26795b25;stroke:#26795b;stroke-width:2;stroke-dasharray:5 4;pointer-events:none}#estate-map .draft-point{fill:#26795b;stroke:white;stroke-width:2;pointer-events:none}.map-compass{position:absolute;top:20px;right:22px;display:flex;flex-direction:column;align-items:center;color:#9ba78c;font-size:10px}.map-compass span{font-size:26px;line-height:1.2}.map-controls{position:absolute;bottom:26px;right:20px;display:flex;flex-direction:column;border-radius:6px;overflow:hidden;box-shadow:0 1px 12px #00000010}.map-controls button{width:34px;height:32px;border:0;background:#fff;border-bottom:1px solid #edf0e9;color:#80906d;font-size:16px}.map-caption{position:absolute;left:18px;bottom:16px;font-size:7px;letter-spacing:1px;color:#adb69d;pointer-events:none}.map-bottom{display:flex;align-items:center;padding:14px 18px;gap:5px;font-size:9px;color:#99a792}.map-bottom>span:last-child{margin-left:auto;font-size:8px}.map-bottom button{margin-left:10px;font-size:9px}.lot-preview{padding:30px 23px;align-self:start;min-height:400px}.lot-preview-icon{font-size:45px;background:#f4f7ef;color:#b1c89b;width:74px;height:74px;border-radius:18px;display:grid;place-items:center;margin:0 0 29px}.lot-preview h2{font-size:23px;font-weight:550;line-height:1.4;letter-spacing:-.5px}.lot-preview p{font-size:11px;color:#99a38e;line-height:1.9}.preview-divider{border-top:1px solid var(--line);margin:25px 0}.lot-preview h3{font-size:11px;color:#839072}.lot-preview .summary-row{font-size:11px;padding:13px 0}.lot-preview .button{width:100%;margin-top:20px}.lot-preview .badge{margin-bottom:17px}.empty-state{text-align:center;padding:80px 25px;margin:50px auto;max-width:850px}.empty-state h1{font-size:25px}.empty-state p{color:var(--muted)}.empty-state .actions{justify-content:center}.empty-icon{display:grid;place-items:center;width:65px;height:65px;background:#faf1df;color:#b79960;font-size:30px;border-radius:50%;margin:0 auto 23px}.login-page{display:grid;grid-template-columns:1.05fr 1fr;min-height:100vh}.login-story{background:#1d4938;padding:48px 60px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;position:relative;color:#fff}.login-story .brand{color:#fff;margin:0}.login-story .brand-mark{background:#f1edcc;color:#42644b}.login-story .brand small{color:#85a28d}.login-story>.brand{position:relative;z-index:2}.login-story>div{padding:50px 0 120px;position:relative;z-index:1}.login-story .eyebrow{color:#92b499;font-size:9px;letter-spacing:2px;margin-bottom:24px}.login-story h1{font-size:51px;letter-spacing:-1.7px;font-weight:450;line-height:1.15;position:relative;z-index:2}.login-story h1 em{font-style:normal;color:#b7d29f}.login-story p{max-width:340px;font-size:12px;color:#97b6a3;line-height:1.9;position:relative;z-index:2}.login-story>small{color:#658c74;font-size:10px}.login-terrain{position:absolute;right:-140px;bottom:-80px;width:470px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;transform:rotate(-26deg) skew(20deg,8deg);opacity:.24}.login-terrain i{height:130px;background:#93ad79;border-radius:4px;box-shadow:0 5px 0 #648657}.login-terrain i:nth-child(3n){background:#c8d1aa}.login-form{background:#fff;display:grid;place-items:center;padding:40px}.login-form-inner{width:100%;max-width:355px}.login-form .eyebrow{font-size:9px;margin-bottom:20px}.login-form h2{font-size:27px;line-height:1.4;font-weight:550;letter-spacing:-.7px;margin-bottom:16px}.login-form .muted{font-size:11px;margin-bottom:35px}.login-form label{font-size:11px;margin-top:22px}.login-form input{font-size:11px!important;min-height:45px!important}.login-form .button{min-height:44px;margin-top:27px;font-size:12px}.login-help{font-size:10px;color:#9aa79d;line-height:1.8;margin:25px 0;text-align:center}.secure-caption{border-top:1px solid var(--line);padding-top:22px;text-align:center;font-size:9px;color:#acb5ad}.receipt{background:#fff;border:1px solid #e4e8e5;padding:28px 30px;margin:0 auto;color:#26382b;box-shadow:var(--shadow);max-width:650px;font-size:11px}.receipt-header{text-align:center;border-bottom:1px dashed #b9c4bb;padding-bottom:15px}.receipt-brand{display:block;font-size:30px;color:#3c7251;font-weight:800;letter-spacing:3px;margin-bottom:8px}.receipt-header h2{font-size:17px}.receipt-header p{font-size:10px;line-height:1.5;margin-bottom:14px}.receipt-header h3{font-size:13px}.receipt-details{padding:15px 0}.receipt-details p{font-size:10px;margin:0 0 5px}.receipt th,.receipt td{padding:8px 0;font-size:10px;border-bottom:1px dashed #d9dfd9}.receipt-total{display:flex;justify-content:space-between;font-size:16px;border-top:2px solid #435a46;padding:15px 0}.receipt-method{display:flex;justify-content:space-between;font-size:10px;line-height:1.5;margin:8px 0}.receipt-method small{display:block;font-size:9px}.receipt-footer{text-align:center;border-top:1px dashed #b9c4bb;margin-top:18px;padding-top:15px;overflow-wrap:anywhere}.receipt-footer p{font-size:10px}.receipt-footer small{font-size:8px}.reversed-stamp{color:#b54444}.receipt.ticket{max-width:302px;padding:20px 14px}.receipt.ticket .receipt-header h2{font-size:15px}.skip-link{position:fixed;left:260px;top:-80px;background:var(--green);color:#fff;padding:15px;z-index:100}.skip-link:focus{top:0}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;clip:rect(0,0,0,0);overflow:hidden}.mobile-menu{display:none}:focus-visible{outline:2px solid #2b805e;outline-offset:3px}
@media(min-width:1600px){.main{padding:40px 48px}.stat-card h2{font-size:32px}.map-canvas{height:620px}}
@media(max-width:1250px){:root{--sidebar:220px}.sidebar{padding-left:12px;padding-right:12px}.main{padding:28px 24px}.topbar{padding:0 24px}.stat-card{padding:16px}.stat-card h2{font-size:23px}.stat-label{font-size:10px}.dashboard-middle,.dashboard-bottom{gap:16px}.inventory-center{padding:0 14px}.donut{width:145px;height:145px}.map-layout{grid-template-columns:1fr 230px}.map-canvas{height:470px}.date-chip{display:none}.map-bottom>span:last-child{display:none}.nav-link{font-size:11px}.tender-line{grid-template-columns:1fr 1fr}.tender-line>.icon-button{grid-column:2;justify-self:end}.receipt{width:100%}}
@media(max-width:1000px){.stats-grid{grid-template-columns:repeat(2,1fr)}.dashboard-middle,.dashboard-bottom{grid-template-columns:1fr}.bar-chart{height:225px}.bar-column svg{height:170px}.inventory-center{justify-content:center;gap:50px}.two-columns{grid-template-columns:1fr}.map-layout{grid-template-columns:1fr}.lot-preview{min-height:0}.lot-preview-icon{display:none}.lot-preview h2{font-size:23px}.map-canvas{height:480px}.page-heading{align-items:start;flex-wrap:wrap}.report-filters{grid-template-columns:1fr 1fr}.topbar .breadcrumb{font-size:9px}.topbar-right{gap:9px}.login-story{padding:40px 35px}.login-story h1{font-size:41px}}
@media(max-width:760px){:root{--sidebar:0px}.sidebar{width:245px;transform:translateX(-100%);transition:transform .2s;box-shadow:10px 0 25px #00000008}.nav-open .sidebar{transform:translateX(0)}.mobile-menu{display:inline-grid}.topbar{height:64px;padding:0 17px;gap:8px}.topbar .breadcrumb{display:none}.topbar-right{margin-left:auto}.main{padding:25px 17px}.page-heading{gap:16px;margin-bottom:22px}h1{font-size:27px}.page-heading p{font-size:11px}.stats-grid{gap:12px;margin-bottom:18px}.stat-card{padding:16px 13px}.stat-card h2{font-size:22px}.stat-card h2 small{font-size:9px}.stat-card p{font-size:8px}.stat-icon{width:25px;height:25px}.stat-label{font-size:9px;gap:4px}.user-chip{font-size:10px}.user-chip small{font-size:8px}.topbar .badge{font-size:8px}.panel-heading{padding:20px 17px 13px}.panel.padded{padding:20px}.list-toolbar{flex-wrap:wrap;padding:17px;gap:12px}.search-form{min-width:0;width:100%}.search-form input{min-width:0}.form-grid{grid-template-columns:1fr;gap:0}.span-2{grid-column:auto}.form-footer{padding:18px;flex-wrap:wrap}.map-canvas{height:420px}.map-toolbar{padding:10px}.map-filters{gap:0}.map-filter{font-size:8px;padding:7px}.map-toolbar input{max-width:100%!important}.map-caption{font-size:6px}.map-layout{gap:16px}.map-bottom{padding:12px;font-size:8px}.two-columns{gap:18px}.section-gap{margin-top:18px;margin-bottom:18px}.login-page{grid-template-columns:1fr}.login-story{display:none}.login-form{padding:36px 25px;min-height:100vh}.login-form h2{font-size:28px}.app-footer{padding:20px 17px}.app-footer>span:first-child{display:none}.report-filters{grid-template-columns:1fr 1fr}.report-filters>div:first-child{grid-column:span 2}.report-filters>.button{grid-column:span 2}.inline-form{gap:10px}.inline-form select{width:100%}.property-details>div{grid-template-columns:1fr 1fr;font-size:10px}.empty-state{margin:0;padding:45px 20px}.skip-link{left:10px}.inventory-center{gap:30px}.receipt.carta{padding:22px 17px}.document-item strong{overflow-wrap:anywhere}}
@media print{body{background:#fff;font-size:10px}.sidebar,.topbar,.app-footer,.no-print,.actions,.tabs,.page-heading .button,.page-heading .text-link,.upload-form,details,.notice,.list-toolbar,.pagination{display:none!important}.app-shell{margin:0}.main{padding:0;max-width:none}.panel{box-shadow:none;border:0;overflow:visible}.table-wrap,.max-height{overflow:visible;max-height:none}.panel-heading{padding:10px 0}.page-heading{margin-bottom:12px}h1{font-size:20px}.stats-grid{gap:10px}.stat-card{padding:10px;box-shadow:none}.stat-card h2{font-size:16px}thead{display:table-header-group;position:static!important}tfoot{display:table-footer-group}tr{break-inside:avoid}th,td{padding:6px 7px;color:#222!important;font-size:9px}.receipt{box-shadow:none;border:0;margin:0 auto;max-width:none}.two-columns{display:block}.section-gap{margin:12px 0}a{color:#222}button{display:none!important}.receipt .receipt-header,.receipt .receipt-details,.receipt-total,.receipt-footer{break-inside:avoid}}

/* La imagen arquitectónica y el GeoJSON son recursos independientes de la misma lotificación. */
.map-view-divider{width:1px;height:18px;background:#dfe7e1;margin:0 3px}.map-view-switch{display:inline-flex;align-items:center;gap:3px;padding:3px;background:#f5f8f6;border:1px solid #e0e9e2;border-radius:7px;color:#7a8d81;font-size:9px}.map-view-switch>span{padding:0 4px;font-weight:600}.map-view-button{border:0;border-radius:4px;background:transparent;color:#708277;padding:6px 8px;font-size:9px;line-height:1.15}.map-view-button:hover{background:#eaf3ed;color:#417259}.map-view-button.selected{background:#fff;color:#256c4c;box-shadow:0 1px 3px #183b2715;font-weight:650}.map-view-interactive #map-background{display:none}.map-view-image #map-vector-ground,.map-view-image #map-amenities,.map-view-image #map-lots,.map-view-image #map-draft{display:none}.map-view-image{background:#eef2eb}
@media(max-width:760px){.map-view-divider{display:none}.map-view-switch{width:100%;justify-content:flex-start}.map-view-switch>span{margin-right:3px}}

/* Detalle de lote: muestra las cuatro medidas del inmueble en la tarjeta de resumen. */
.stat-card-medidas .stat-label{margin-bottom:10px}.stat-card-medidas h2{margin-bottom:10px}.medidas-laterales{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-top:9px;border-top:1px solid var(--line)}.medidas-laterales>div{display:flex;flex-direction:column;gap:3px;min-width:0}.medidas-laterales span{font-size:9px;color:#809087;white-space:nowrap}.medidas-laterales strong{font-size:12px;color:#40594a;white-space:nowrap}.medidas-laterales strong small{font-size:9px}
@media(max-width:760px){.medidas-laterales{gap:6px}.medidas-laterales span{font-size:8px}.medidas-laterales strong{font-size:10px}}

/* Navegación compacta y jerárquica. */
.sidebar{padding:22px 14px 18px}.brand{margin:0 10px 25px}.menu-lateral{display:flex;flex-direction:column;gap:4px}.grupo-menu{margin:3px 0}.grupo-menu summary{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;list-style:none;font-size:9px;letter-spacing:1.25px;color:#8d979b;font-weight:700;text-transform:uppercase}.grupo-menu summary::-webkit-details-marker{display:none}.grupo-menu summary span{font-size:15px;transition:transform .15s}.grupo-menu:not([open]) summary span{transform:rotate(-90deg)}.grupo-menu>div{padding:1px 0 5px}.nav-link{gap:10px;padding:9px 12px;margin:1px 0;font-size:11px}.nav-link>span{font-size:15px;width:18px}.nav-link b{font-weight:500}.nav-link.active b{font-weight:700}.sidebar-bottom{margin-top:auto;margin-bottom:0;padding:16px 2px 0;font-size:10px}.sidebar-bottom small{font-size:8px}.topbar{height:40px;padding:0 28px}.breadcrumb{font-size:10px}.breadcrumb i{font-style:normal;margin:0 10px;color:#c9ced0}.topbar-right{gap:9px}.topbar-right .icon-button{height:28px;min-width:26px;font-size:14px}.perfil-usuario{position:relative}.avatar-boton{border:0;cursor:pointer}.tarjeta-perfil{display:none;position:absolute;right:0;top:calc(100% + 7px);width:224px;padding:14px;background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:0 10px 28px #172e3d18;z-index:80}.perfil-usuario:hover .tarjeta-perfil,.perfil-usuario:focus-within .tarjeta-perfil{display:grid;gap:7px}.tarjeta-perfil strong{font-size:12px;color:#46535a}.tarjeta-perfil small{font-size:10px;overflow-wrap:anywhere}.tarjeta-perfil a,.tarjeta-perfil button{font-size:11px;text-align:left;color:var(--green);background:transparent;border:0;padding:5px 0}.tarjeta-perfil form{margin:0}.tarjeta-perfil button{color:#9a5650}.app-shell{min-height:100vh}@media(max-width:760px){.topbar{height:48px;padding:0 14px}.breadcrumb{display:none}.sidebar{padding-top:20px}.sidebar-bottom{margin-top:auto}}

/* Contexto en cabecera y navegación lateral refinada. */
.sidebar{padding:22px 12px 16px;background:linear-gradient(180deg,#fff 0%,#fbfcfb 100%)}
.brand{margin:0 10px 22px}
.menu-lateral{gap:7px;margin-top:2px}
.grupo-menu{margin:0;border:1px solid transparent;border-radius:10px;overflow:hidden}
.grupo-menu[open]{background:#f8fbf9;border-color:#edf2ef}
.grupo-menu summary{min-height:38px;padding:9px 11px;color:#7f8b89;letter-spacing:1.12px;transition:background .16s,color .16s}
.grupo-menu summary:hover{background:#f0f6f2;color:#3f735a}
.grupo-menu summary>span{font-size:9px;line-height:1;transform:none!important}
.menu-chevron{width:17px;height:17px;padding:4px;border-radius:5px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .18s,background .18s}
.grupo-menu[open] .menu-chevron{transform:rotate(180deg);background:#e8f2eb;color:#277653}
.grupo-menu:not([open]) summary .menu-chevron{transform:none}
.grupo-menu>div{padding:1px 5px 6px}
.nav-link{min-height:33px;gap:10px;padding:8px 9px;margin:1px 0;border-radius:7px;color:#687a74}
.nav-link:hover{background:#eef6f0;color:#276f50}
.nav-link.active{background:#e4f2e8;color:#176747;box-shadow:inset 3px 0 0 #2b9668}
.nav-link>span{width:19px;font-size:15px;color:#91a09a}
.nav-link.active>span{color:#27845e}
.sidebar-bottom{margin:18px 4px 0;padding:14px 8px 0;border-top-color:#e6ece8}

.topbar{height:48px;padding:0 28px}
.topbar-context{display:flex;align-items:center;gap:11px;margin:0;padding:0;border:0;background:transparent;border-radius:0}
.topbar-context label{display:flex;align-items:center;gap:7px;margin:0;color:#95a19f;font-size:9px;font-weight:600;letter-spacing:.15px;white-space:nowrap}
.topbar-context label>span{color:#94a19f}
.topbar-context select{width:auto;min-width:132px;max-width:200px;min-height:29px;margin:0;padding:5px 27px 5px 8px;border:1px solid transparent;border-radius:6px;background-color:#fff;color:#4f625b;font-size:10px;font-weight:600;box-shadow:none}
.topbar-context select:hover{border-color:#e1e9e4;background-color:#f9fbfa}
.topbar-context select:focus{border-color:#8fbea5;box-shadow:0 0 0 3px #4b947010}
.context-separator{width:1px;height:20px;background:#e5ece8}
@media(max-width:760px){.topbar{height:48px;padding:0 13px}.topbar-context{gap:5px;min-width:0}.topbar-context label>span,.context-separator{display:none}.topbar-context select{min-width:0;max-width:115px;font-size:9px;padding-left:6px}.topbar-right .badge,.topbar-right>a{display:none}}

/* Tabla de catálogos: alta densidad sin perder jerarquía. */
.catalogo-table{font-size:10px}
.catalogo-table th{padding:8px 18px;font-size:11px;line-height:1.2}
.catalogo-table th.numeric{text-align:right}
.catalogo-table td{padding:7px 18px;line-height:1.25;vertical-align:middle}
.catalogo-table td strong{font-size:10px;line-height:1.2}
.catalogo-table td small{margin-top:2px;font-size:8px;line-height:1.2}
.catalogo-table .badge{padding:4px 7px;font-size:8px}
.catalogo-table td:last-child{min-width:185px}
.fila-actions{display:flex;justify-content:flex-end;align-items:center;gap:6px;white-space:nowrap}
.fila-actions form{display:flex;margin:0}.fila-actions .action-button{margin:0;white-space:nowrap}.action-button.danger-action{background:#fff7f6;color:#a94643;border-color:#e7c4c1}.action-button.danger-action:hover{background:#fbe9e7;border-color:#d99b96;color:#873832}
.action-button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:26px;padding:5px 8px;border:1px solid #dbe7df;border-radius:6px;background:#f7fbf8;color:#26795b;font-size:9px;font-weight:650;line-height:1;transition:background .15s,border-color .15s}
.action-button:hover{background:#eaf5ee;border-color:#aad0bb;color:#19583f}
.action-button.secondary-action{background:#fff;color:#61746b;border-color:#e0e7e3}
.action-button.secondary-action:hover{background:#f4f7f5;color:#315a45}
.action-button svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.catalogo-table .link-button{font-size:8px;margin-left:2px}
.catalogo-table-lotes{font-size:12px}.catalogo-table-lotes td strong{font-size:12px}.catalogo-table-lotes td small{font-size:10px}.catalogo-table-lotes .badge{font-size:10px}.catalogo-table-lotes .catalogo-medidas{min-width:350px;color:#62736a;line-height:1.45}
/* El catálogo de lotificaciones usa una escala uniforme de lectura para encabezados y registros. */
.catalogo-table-lotificaciones,.catalogo-table-lotificaciones th,.catalogo-table-lotificaciones td,.catalogo-table-lotificaciones td strong,.catalogo-table-lotificaciones td small,.catalogo-table-lotificaciones .badge,.catalogo-table-lotificaciones .action-button{font-size:12px}.catalogo-table-lotificaciones th{font-size:12px}.catalogo-table-lotificaciones td{line-height:1.35}.catalogo-table-lotificaciones td small{line-height:1.35}
@media(max-width:900px){.catalogo-table td:last-child{min-width:160px}.action-button{padding:5px 7px}}
.form-grid.form-grid-cuatro{grid-template-columns:repeat(4,minmax(0,1fr));gap:0 16px}.cliente-asignado,.cliente-financiero{margin-top:18px;padding:13px;background:#f4f8f5;border:1px solid #dce9df;border-radius:8px}.cliente-financiero{background:#fbfcfa}.cliente-asignado .eyebrow,.cliente-financiero .eyebrow{margin-bottom:5px;color:#5b8e6c}.cliente-asignado h3,.cliente-financiero h3{margin:0 0 7px;color:#41634d}.cliente-asignado-fila{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-top:1px solid #dfebe2;font-size:10px;color:#7d8e83}.cliente-asignado-fila strong{max-width:62%;text-align:right;overflow-wrap:anywhere;color:#486452;font-weight:600}.cliente-enlaces{display:grid;gap:7px;margin-top:12px}.cliente-enlaces .button{width:100%;min-height:31px;padding:7px 8px;font-size:9px}.sidebar-bottom{margin-top:auto}@media(max-width:1200px){.form-grid.form-grid-cuatro{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}}@media(max-width:760px){.form-grid.form-grid-cuatro{grid-template-columns:1fr}.form-grid.form-grid-cuatro .span-2{grid-column:auto}}
/* Identidad visual SOL proporcionada por la inmobiliaria. */
.logo-link{display:block;line-height:0}.marca-sol{display:block;width:100%;height:auto;object-fit:contain}.sidebar .logo-link{width:196px;margin:0 4px 25px}.login-story .logo-link{width:245px;padding:8px 10px;background:#fff;border-radius:10px}.login-story .marca-sol{width:100%}.marca-sol-recibo{width:165px;margin:0 auto 10px}.receipt.ticket .marca-sol-recibo{width:124px;margin-bottom:7px}.report-print-brand{display:none}
@media print{.report-print-brand{display:block;margin:0 0 10px}.report-print-brand .marca-sol{width:205px}.receipt .marca-sol-recibo{width:145px}.receipt.ticket .marca-sol-recibo{width:108px}}
@media(max-width:760px){.sidebar .logo-link{width:184px}.login-story .logo-link{width:220px}}

/* Pestañas para formularios y vistas de varias secciones. */
.tabset{overflow:hidden}.tab-list{display:flex;align-items:stretch;gap:2px;overflow-x:auto;padding:8px 12px 0;background:#fbfcfb;border-bottom:1px solid var(--line);scrollbar-width:thin}.tab-trigger{appearance:none;border:0;border-bottom:2px solid transparent;background:transparent;color:#75847b;padding:12px 16px 11px;font-size:11px;font-weight:600;white-space:nowrap;cursor:pointer}.tab-trigger:hover{background:#f2f7f3;color:#32694f}.tab-trigger[aria-selected="true"]{color:var(--green);border-bottom-color:var(--green);background:#edf7f0}.tab-panel{padding:24px}.tab-panel[hidden]{display:none!important}.tab-panel>.form-footer:last-child,.tab-panel form>.form-footer:last-child{margin-bottom:0}.tab-panel .panel-heading.flush{padding-top:0}.tab-panel .form-grid{padding:0}.tab-panel .form-grid.form-grid-cuatro{gap:0 16px}.tab-panel .notice:last-child{margin-bottom:0}.tab-panel .table-wrap{margin:0 -24px}.tab-panel .table-wrap table th,.tab-panel .table-wrap table td{padding-left:24px;padding-right:24px}.tab-panel .hint{margin-bottom:0}.tab-panel .form-footer{padding-left:0;padding-right:0}@media(max-width:760px){.tab-list{padding-left:8px;padding-right:8px}.tab-trigger{padding:11px 13px;font-size:10px}.tab-panel{padding:18px}.tab-panel .table-wrap{margin:0 -18px}.tab-panel .table-wrap table th,.tab-panel .table-wrap table td{padding-left:18px;padding-right:18px}}

/* Aprovechamiento horizontal de formularios y vistas. Se mantiene aire visual
   en los bordes, pero se evita que el contenido quede encajonado en pantallas
   amplias. Las reglas se limitan a pantalla para conservar la impresión. */
@media screen{
  .main{max-width:none;padding-left:22px;padding-right:22px}
  .narrow{max-width:860px}
  .panel.padded{padding:22px}
  .form-grid{column-gap:18px}
  .tab-panel{padding:20px}
  .tab-panel .table-wrap{margin-left:-20px;margin-right:-20px}
  .tab-panel .table-wrap table th,.tab-panel .table-wrap table td{padding-left:20px;padding-right:20px}
}
@media screen and (max-width:1000px){
  .main{padding-left:18px;padding-right:18px}
}
@media screen and (max-width:760px){
  .main{padding-left:12px;padding-right:12px}
  .panel.padded{padding:16px}
  .tab-panel{padding:16px}
  .tab-panel .table-wrap{margin-left:-16px;margin-right:-16px}
  .tab-panel .table-wrap table th,.tab-panel .table-wrap table td{padding-left:16px;padding-right:16px}
}

/* Alineación consistente de acciones que combinan botones y formularios. */
@media screen{
  .actions form{display:flex;align-items:center;margin:0}
}

/* Usuarios y permisos: cada control ocupa la misma columna que su encabezado. */
.users-permissions-table{table-layout:fixed;min-width:760px}
.users-permissions-table .users-permissions-user-column{width:31%}
.users-permissions-table .users-permissions-role-column{width:51%}
.users-permissions-table .users-permissions-state-column{width:8%}
.users-permissions-table .users-permissions-actions-column{width:10%}
.users-permissions-table th,.users-permissions-table td{vertical-align:middle}
.users-permissions-table td select{width:100%;min-width:0}
.users-permissions-table .users-permissions-state-cell{white-space:nowrap}
.users-permissions-table .users-permissions-state-cell .checkbox{margin:0;justify-content:flex-start}
.users-permissions-table .users-permissions-actions-cell{text-align:right;white-space:nowrap}
.users-permissions-table .users-permissions-actions-cell .button{width:100%;min-height:35px;margin:0;padding:8px 10px}

/* Registro público: cuentas existentes y confirmación de acceso. */
.registration-account-notice{margin-bottom:20px}
.registration-account-notice p{margin-bottom:12px}
.registration-account-notice .inline-form{margin:0;align-items:center}
.registration-account-notice .inline-form>.button{margin:0}
.login-confirmation-resend{margin:0 0 20px;padding:14px;border:1px solid #efdcae;border-radius:8px;background:#fff7e8;color:#86662d;font-size:10px;line-height:1.55}
.login-confirmation-resend p{margin:0 0 9px}
.login-confirmation-resend .button{margin:0;min-height:33px;padding:7px 10px;font-size:9px}

/* Acceso central de Administración de SOL. */
.saas-mode-label{margin:0 12px 14px;padding:9px 10px;border-radius:7px;background:#f5efe0;color:#9a7433;font-size:8px;font-weight:750;letter-spacing:1.25px;text-align:center}.saas-topbar-title{display:flex;align-items:center;gap:10px;font-size:10px;color:#819087}.saas-topbar-title span{font-weight:700;color:#315f49}.saas-topbar-title strong{font-size:9px;font-weight:500;padding-left:10px;border-left:1px solid var(--line)}.saas-access{min-height:28px;padding:6px 10px;font-size:9px}.saas-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.stat-card h2.saas-plan-name{font-size:20px;white-space:normal}.saas-cancel-form{display:flex;align-items:center;gap:5px;margin:0}.saas-cancel-form input:not([type=hidden]){width:150px;min-height:27px;padding:5px 7px;font-size:9px}.saas-receipt{max-width:850px;margin:0 auto}.saas-receipt .receipt-header{align-items:flex-start}
@media(max-width:1000px){.saas-stats{grid-template-columns:1fr 1fr}.saas-cancel-form{min-width:245px}}
@media(max-width:760px){.saas-topbar-title strong,.saas-access{display:none}.saas-stats{grid-template-columns:1fr}.saas-cancel-form{min-width:220px}.saas-cancel-form input:not([type=hidden]){width:125px}}

/* Cuenta SaaS por lotificación y restricción de escritura. */
.notice.warning{background:#fff7e8;border-color:#efdcae;color:#86662d}.subscription-lock{display:flex;align-items:center;justify-content:space-between;gap:18px}.subscription-lock span{display:block;margin-top:4px}.subscription-lock .action-button{background:#fff;white-space:nowrap}.saas-stats .stat-card h2{overflow-wrap:anywhere}.form-grid.form-grid-cuatro{grid-template-columns:repeat(4,minmax(0,1fr))}.form-grid.form-grid-tres{grid-template-columns:repeat(3,minmax(0,1fr))}.catalog-service-content{padding:24px}@media(max-width:1100px){.form-grid.form-grid-cuatro{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.form-grid-tres{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.form-grid.form-grid-cuatro,.form-grid.form-grid-tres{grid-template-columns:1fr}.catalog-service-content{padding:18px}.subscription-lock{align-items:flex-start;flex-direction:column}}
.review-actions{width:100%;min-width:520px}.review-actions form{display:grid;grid-template-columns:minmax(240px,1fr) 82px 82px;align-items:center;gap:6px;width:100%;margin:0}.review-actions input:not([type=hidden]){width:100%;min-width:0;min-height:28px;padding:5px 7px;font-size:9px}.review-actions .review-action-button{width:82px;min-width:82px;max-width:82px;min-height:26px;padding:5px 7px;font-size:9px;white-space:nowrap}@media(max-width:900px){.review-actions{min-width:260px}.review-actions form{grid-template-columns:1fr 1fr}.review-actions input:not([type=hidden]){grid-column:1/-1}.review-actions .review-action-button{width:100%;min-width:0;max-width:none}}
.request-history-heading{border-top:1px solid var(--line);margin-top:24px;padding-top:20px}.request-history-heading h2{font-size:14px}

/* Sitio público y registro autónomo. */
.login-story>.logo-link{align-self:center;margin:0 auto}
.public-body{min-width:320px;background:#fbfcfa;color:#18302a}.public-body h1,.public-body h2,.public-body h3{color:#17332a}.public-nav{min-height:82px;max-width:1260px;margin:0 auto;padding:15px 30px;display:flex;align-items:center;gap:28px;background:#fff}.public-brand{display:block;width:176px;line-height:0}.public-brand img{display:block;width:100%;height:auto}.public-nav nav{display:flex;align-items:center;justify-content:center;gap:24px;margin-left:auto}.public-nav nav a,.public-footer a{font-size:11px;font-weight:650;color:#536b60}.public-nav nav a:hover,.public-footer a:hover{color:var(--green)}.public-actions{display:flex;align-items:center;gap:10px}.public-actions .button{min-height:37px;padding:9px 14px;font-size:10px}.public-hero{max-width:1260px;min-height:540px;margin:0 auto;padding:86px 74px;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(350px,.9fr);align-items:center;gap:70px;background:radial-gradient(circle at 85% 10%,#d6e8cb 0,transparent 26%),linear-gradient(135deg,#eff7ef 0%,#f9fcf9 58%,#eef5ef 100%)}.public-hero-copy h1{max-width:700px;margin:14px 0 18px;font-size:54px;line-height:1.07;letter-spacing:-2.2px}.public-hero-copy h1 em{font-style:normal;color:#2d805d}.public-hero-copy>p{max-width:620px;font-size:15px;line-height:1.8;color:#60746b;margin-bottom:27px}.public-checks{display:grid;gap:9px;margin:28px 0 0;padding:0;list-style:none}.public-checks li{font-size:11px;color:#527061;padding-left:21px;position:relative}.public-checks li:before{content:"✓";position:absolute;left:0;color:#27855e;font-weight:800}.public-hero-card{padding:25px;border:1px solid #d7e6da;border-radius:15px;background:#fff;box-shadow:0 24px 55px #2254381c;transform:rotate(1.3deg)}.public-card-top{display:flex;justify-content:space-between;align-items:center;padding-bottom:19px;border-bottom:1px solid #e7eee8;font-size:12px;font-weight:750}.public-mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:22px 0}.public-mini-stats div{padding:12px 9px;border-radius:8px;background:#f5f9f5}.public-mini-stats small,.public-mini-stats span{display:block;color:#819289;font-size:8px}.public-mini-stats strong{display:block;margin:8px 0 5px;font-size:17px;color:#25483a;white-space:nowrap}.public-card-list{display:grid;gap:10px;padding-top:18px;border-top:1px solid #e7eee8;color:#47705a;font-size:10px}.public-proof{max-width:1100px;margin:-35px auto 0;position:relative;z-index:2;display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #e1e9e3;border-radius:13px;overflow:hidden;background:#fff;box-shadow:0 14px 30px #264c3210}.public-proof article{min-height:107px;padding:24px;border-right:1px solid #e7eee8}.public-proof article:last-child{border-right:0}.public-proof strong{display:block;margin-bottom:8px;color:#276c4d;font-size:11px}.public-proof span{font-size:10px;line-height:1.6;color:#788a81}.public-section{max-width:1160px;margin:0 auto;padding:104px 30px}.public-section-heading{max-width:690px;margin-bottom:38px}.public-section-heading h2,.public-operation h2,.public-contact h2{margin:12px 0;font-size:36px;letter-spacing:-1.3px}.public-section-heading p,.public-operation p,.public-contact p{font-size:13px;line-height:1.8;color:#708178}.public-features{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.public-features article{min-height:228px;padding:24px 21px;border:1px solid #e2ebe4;border-radius:11px;background:#fff;transition:transform .16s,box-shadow .16s}.public-features article:hover{transform:translateY(-3px);box-shadow:0 15px 30px #20493212}.public-features article>span{display:grid;place-items:center;width:30px;height:30px;margin-bottom:16px;border-radius:7px;background:#eaf5ed;color:#237451;font-size:16px}.public-features h3{margin:0 0 10px;font-size:14px}.public-features p{margin:0;color:#73847b;font-size:10px;line-height:1.75}.public-operation{padding:86px max(30px,calc((100% - 1160px)/2));display:grid;grid-template-columns:1fr 1fr;gap:65px;background:#174c38;color:#fff}.public-operation h2{color:#fff}.public-operation p{color:#c2d9ca}.public-operation .eyebrow{color:#bbd49a}.public-operation-list{display:grid;gap:13px}.public-operation-list>div{display:flex;gap:15px;align-items:center;padding:16px;border:1px solid #56816d;border-radius:10px;background:#1b5841}.public-operation-list b{display:grid;place-items:center;width:28px;height:28px;flex:0 0 28px;border-radius:50%;background:#b7d89e;color:#23513d;font-size:11px}.public-operation-list strong,.public-operation-list small{display:block}.public-operation-list strong{color:#fff;font-size:11px}.public-operation-list small{margin-top:4px;color:#c4dacd;font-size:10px;line-height:1.5}.public-pricing{padding-bottom:86px}.pricing-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.pricing-grid article{padding:19px;border:1px solid #dce9df;border-radius:10px;background:#fff}.pricing-grid article:last-child{grid-column:2 / span 2;background:#edf7ef;border-color:#b8d6c1}.pricing-grid strong,.pricing-grid span{display:block}.pricing-grid strong{font-size:11px;color:#527263}.pricing-grid span{margin-top:9px;font-size:20px;font-weight:750;color:#205e43}.pricing-grid small{font-size:9px;font-weight:500;color:#71877b}.pricing-note{max-width:780px;margin:22px 0 0;color:#73847b;font-size:11px;line-height:1.7}.public-cta{max-width:1100px;margin:0 auto 96px;padding:42px 47px;display:flex;justify-content:space-between;align-items:center;gap:30px;border-radius:16px;background:#f0c239}.public-cta h2{margin:8px 0;font-size:28px}.public-cta p{margin:0;color:#5f4d1e;font-size:12px}.public-cta .button{white-space:nowrap;background:#1c6043}.public-contact{max-width:1160px;margin:0 auto;padding:0 30px 100px;display:grid;grid-template-columns:.85fr 1.15fr;gap:74px}.public-contact small{display:block;margin-top:24px;color:#829087;font-size:9px;line-height:1.65}.public-whatsapp{display:inline-flex;align-items:center;gap:7px;margin-top:14px;color:#1f7f55;font-size:13px;font-weight:750}.public-contact-form{padding:28px;border:1px solid #dce8df;border-radius:12px;background:#fff;box-shadow:0 12px 30px #2b56310d}.public-contact-form h3{margin:0 0 17px;font-size:17px}.public-contact-form .form-grid{padding:0}.public-contact-form label,.registration-form label{font-size:10px}.public-contact-form textarea{min-height:105px;resize:vertical}.public-contact-form .button{margin-top:16px}.public-footer{max-width:1260px;margin:0 auto;padding:27px 30px;display:flex;align-items:center;gap:20px;border-top:1px solid #e1eae3;background:#fff;color:#71837a;font-size:10px}.public-footer img{width:115px;height:auto}.public-footer a{margin-left:auto}.registration-page{min-height:100vh;display:flex;flex-direction:column}.registration-main{width:min(100% - 40px,900px);margin:56px auto 75px}.registration-heading{max-width:660px;margin-bottom:26px}.registration-heading h1{margin:11px 0;font-size:38px;letter-spacing:-1.4px}.registration-heading p{font-size:13px;color:#718178;line-height:1.75}.registration-form{overflow:hidden}.registration-form .form-validation{margin:18px 20px 0}.registration-form h2{margin:0 0 7px;font-size:20px}.registration-form .hint{margin-bottom:17px}.registration-form .form-grid{padding:0}.registration-form .form-footer{padding:22px 0 0}.check-line{display:flex;align-items:flex-start;gap:9px;margin:10px 0 2px;font-size:11px;color:#50675b}.check-line input{width:16px;min-height:16px;margin:0}.inline-action{display:flex;align-items:center;gap:5px;margin:0}.inline-action input:not([type=hidden]){width:130px;min-height:28px;padding:5px 7px;font-size:9px}.message-preview{display:block;max-width:360px;white-space:pre-wrap;line-height:1.55;font-size:10px}.muted{color:#819087;font-size:10px}
@media(max-width:1050px){.public-hero{padding:68px 45px;gap:38px}.public-hero-copy h1{font-size:45px}.public-features{grid-template-columns:repeat(2,1fr)}.public-proof{margin:0 24px;grid-template-columns:repeat(2,1fr)}.public-proof article:nth-child(2){border-right:0}.public-proof article:nth-child(-n+2){border-bottom:1px solid #e7eee8}.pricing-grid{grid-template-columns:repeat(3,1fr)}.pricing-grid article:last-child{grid-column:auto}.public-contact{gap:38px}.public-nav{padding-left:24px;padding-right:24px}}
@media(max-width:760px){.public-nav{min-height:68px;padding:12px 16px;gap:12px}.public-brand{width:126px}.public-nav nav{display:none}.public-actions{gap:7px}.public-actions .button{min-height:32px;padding:8px 10px;font-size:9px}.public-hero{min-height:0;padding:52px 22px;grid-template-columns:1fr;gap:30px}.public-hero-copy h1{font-size:35px;letter-spacing:-1.4px}.public-hero-copy>p{font-size:12px}.public-hero-card{transform:none}.public-proof{margin:0;border-radius:0;grid-template-columns:1fr}.public-proof article{border-right:0;border-bottom:1px solid #e7eee8}.public-proof article:nth-child(2){border-bottom:1px solid #e7eee8}.public-proof article:last-child{border-bottom:0}.public-section{padding:65px 20px}.public-section-heading h2,.public-operation h2,.public-contact h2{font-size:28px}.public-features{grid-template-columns:1fr}.public-features article{min-height:0}.public-operation{padding:58px 20px;grid-template-columns:1fr;gap:30px}.pricing-grid{grid-template-columns:1fr 1fr}.public-cta{margin:0 20px 65px;padding:30px;align-items:flex-start;flex-direction:column}.public-cta h2{font-size:24px}.public-contact{padding:0 20px 65px;grid-template-columns:1fr;gap:30px}.public-footer{padding:23px 20px}.public-footer img{width:100px}.registration-main{width:min(100% - 24px,900px);margin:35px auto 50px}.registration-heading h1{font-size:31px}.registration-page .public-nav .muted{display:none}.registration-form .tab-panel{padding:18px}.inline-action{align-items:stretch;flex-direction:column}.inline-action input:not([type=hidden]){width:100%}.message-preview{max-width:220px}}

/* Acceso y recuperación de contraseña. */
.login-help{display:grid;gap:5px;margin:24px 0 0;text-align:center;font-size:10px;line-height:1.55;color:#89988f}.login-help a{font-weight:700;color:#287958}.login-registration{display:grid;gap:10px;margin-top:20px;padding:18px 0;border-top:1px solid #e4ebe6;text-align:center;color:#718278;font-size:10px}.login-registration .button{justify-self:center;min-height:35px;padding:8px 14px;font-size:10px}.login-form-inner>.notice{margin-bottom:20px}

/* Alinea las acciones de saldo general dentro de la cabecera. */
.actions form > .button { margin-top: 0; }

/* La cabecera se imprime en todos los reportes de la aplicación. */
.cabecera-reporte-impresion { display: none; }
@media print {
  .cabecera-reporte-impresion {
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr) minmax(0, 1fr);
    gap: 18px;
    align-items: center;
    padding: 0 0 14px;
    margin: 0 0 16px;
    border-bottom: 1px solid #cfd8d2;
    color: #24372d;
  }
  .cabecera-reporte-impresion .marca-sol { width: 165px; max-height: 70px; object-fit: contain; object-position: left center; }
  .cabecera-reporte-impresion strong,
  .cabecera-reporte-impresion small { display: block; }
  .cabecera-reporte-impresion strong { font-size: 13px; margin-bottom: 4px; }
  .cabecera-reporte-impresion small { color: #5e6d65; font-size: 9px; line-height: 1.45; }
  .cabecera-reporte-lotificacion { border-left: 1px solid #d9e0db; padding-left: 18px; }
}

/* Selección previa de cliente al registrar un cobro. */
.cobro-selector{margin-bottom:18px}.cobro-selector-form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:14px}.cobro-selector-form .button{margin:0;white-space:nowrap}.cobro-sin-cliente{text-align:center;padding:42px 24px}.cobro-sin-cliente h2{margin:0 0 9px}.cobro-sin-cliente p{margin:0;color:#718178}@media(max-width:760px){.cobro-selector-form{grid-template-columns:1fr}.cobro-selector-form .button{width:100%}}

/* Densidad uniforme para formularios: aprovecha el espacio sin reducir la legibilidad. */
.main{padding:20px 36px 18px}
h1{margin-bottom:5px}.eyebrow{margin-bottom:5px}.page-heading{margin-bottom:14px}.tabs{margin-bottom:12px}.section-gap{margin-top:14px;margin-bottom:14px}
.panel.padded{padding:16px}.tab-panel{padding:16px}.tab-panel .table-wrap{margin-left:-16px;margin-right:-16px}.tab-panel .table-wrap table th,.tab-panel .table-wrap table td{padding-left:16px;padding-right:16px}.tab-panel .panel-heading.flush{padding-bottom:8px}
form label{margin:8px 0 4px;line-height:1.25}form input:not([type=checkbox]):not([type=hidden]),form select,form textarea{min-height:34px;padding:7px 10px}form .hint{margin:7px 0;line-height:1.45}form>.button{margin-top:10px}form .form-footer{margin-top:14px;padding-top:12px;padding-bottom:12px}
.cobro-selector{position:relative;z-index:30;overflow:visible;margin-bottom:12px}.cobro-selector-form{position:relative;z-index:31;gap:10px}.cobro-sin-cliente{padding:24px 18px}

/* Búsqueda remota de clientes para cobros: evita cargar el catálogo completo. */
.cobro-selector-form{grid-template-columns:minmax(0,1fr) auto}.customer-search-control{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:stretch;border:1px solid #d8e1dc;border-radius:6px;background:#fff;min-height:34px}.customer-search-control>label{display:flex;align-items:center;margin:0;padding:0 13px;border-right:1px solid #d8e1dc;color:#243d31;font-size:12px;font-weight:700;white-space:nowrap}.customer-search-input-wrap{position:relative;min-width:0}.customer-search-input-wrap input{height:100%;min-height:32px!important;border:0!important;border-radius:0 6px 6px 0!important;box-shadow:none!important;padding-right:30px!important}.customer-search-input-wrap::after{content:'';position:absolute;right:13px;top:50%;width:7px;height:7px;transform:translateY(-70%) rotate(45deg);border-right:2px solid #376d54;border-bottom:2px solid #376d54;pointer-events:none}.customer-search-results{position:absolute;z-index:20;top:calc(100% + 4px);left:0;right:0;max-height:270px;margin:0;padding:5px;overflow:auto;border:1px solid #cbd8d0;border-radius:7px;background:#fff;box-shadow:0 8px 20px #173d2a20;list-style:none}.customer-search-results[hidden]{display:none}.customer-search-results button{display:block;width:100%;border:0;border-radius:5px;background:transparent;padding:9px 10px;text-align:left;color:#40594a;font:inherit;cursor:pointer}.customer-search-results button:hover,.customer-search-results button:focus-visible{background:#edf7f0;color:#216243}.customer-search-results small{display:block;margin-top:3px;color:#809188;font-size:10px}.customer-search-empty{padding:9px 10px;color:#86958d;font-size:11px}.customer-search-button{min-height:34px!important;margin:0!important}@media(max-width:760px){.cobro-selector-form{grid-template-columns:1fr}.customer-search-button{width:100%}}
@media(max-width:760px){.main{padding:18px 17px}.page-heading{margin-bottom:12px}.tabs{margin-bottom:10px}.panel.padded,.tab-panel{padding:14px}.tab-panel .table-wrap{margin-left:-14px;margin-right:-14px}.tab-panel .table-wrap table th,.tab-panel .table-wrap table td{padding-left:14px;padding-right:14px}form label{margin-top:7px}form .form-footer{margin-top:12px;padding-top:10px;padding-bottom:10px}}

/* Notificaciones no interactivas: visibles, breves y coherentes en todo SOL. */
.toast-region{position:fixed;z-index:10000;top:18px;right:18px;display:grid;gap:12px;width:min(420px,calc(100vw - 36px));pointer-events:none}.toast-notification{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr) 26px;gap:12px;align-items:start;overflow:hidden;padding:15px 12px 16px 15px;border:1px solid;border-radius:13px;background:#fff;box-shadow:0 18px 38px #173b2b2e;color:#294438;pointer-events:auto;animation:toast-enter .32s cubic-bezier(.2,.8,.2,1) both}.toast-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;font-size:19px;font-weight:800}.toast-content{padding:1px 0}.toast-content strong{display:block;margin-bottom:4px;font-size:13px;line-height:1.25}.toast-content p{margin:0;color:#5c7466;font-size:12px;line-height:1.48}.toast-close{width:26px;height:26px;padding:0;border:0;border-radius:7px;background:transparent;color:#799084;font-size:21px;line-height:1;cursor:pointer}.toast-close:hover,.toast-close:focus-visible{background:#edf4ef;color:#1b6247;outline:0}.toast-progress{position:absolute;bottom:0;left:0;width:100%;height:4px;transform-origin:left;background:currentColor;opacity:.45;animation:toast-progress 15s linear forwards}.toast-success{border-color:#b9ddc4}.toast-success .toast-icon{background:#e6f5ea;color:#20724e}.toast-success .toast-progress{color:#2f9265}.toast-info{border-color:#bfd9e7}.toast-info .toast-icon{background:#eaf5fa;color:#28749c}.toast-info .toast-progress{color:#3a91bd}.toast-warning{border-color:#eed49a}.toast-warning .toast-icon{background:#fff4d9;color:#a96e14}.toast-warning .toast-progress{color:#d49426}.toast-error{border-color:#edc0bd}.toast-error .toast-icon{background:#fff0ef;color:#b74e48}.toast-error .toast-progress{color:#d96058}.toast-notification.is-hiding{animation:toast-leave .25s ease-in forwards}.toast-notification.is-hiding .toast-progress{animation-play-state:paused}@keyframes toast-enter{from{opacity:0;transform:translateX(26px) scale(.96)}to{opacity:1;transform:translateX(0) scale(1)}}@keyframes toast-leave{to{opacity:0;transform:translateX(26px) scale(.96)}}@keyframes toast-progress{to{transform:scaleX(0)}}@media(max-width:700px){.toast-region{top:12px;right:12px;width:calc(100vw - 24px)}.toast-notification{grid-template-columns:38px minmax(0,1fr) 26px;padding:13px 10px 14px 13px}.toast-icon{width:34px;height:34px;font-size:17px}}
.report-state-filters{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:0 23px 14px;border-bottom:1px solid var(--line)}.report-state-filter{display:inline-flex;align-items:center;gap:6px;border:1px solid #dfe8e2;border-radius:6px;padding:7px 10px;background:#fff;color:#75877a;font-size:10px;line-height:1;text-decoration:none}.report-state-filter:hover{border-color:#79a489;color:#397454}.report-state-filter.selected{border-color:#d8ebdf;background:#eaf4ed;color:#277657;font-weight:600}.report-state-filter .status-dot{width:6px;height:6px}
@media(max-width:760px){.report-state-filters{padding:0 17px 12px;gap:5px}.report-state-filter{padding:6px 8px;font-size:9px}}

/* Menú de perfil: contorno del tema y conexión visual con el avatar. */
.tarjeta-perfil{top:calc(100% + 9px);border-color:var(--green);box-shadow:0 12px 30px #19583f24}
.tarjeta-perfil::before{content:"";position:absolute;top:-7px;right:10px;width:12px;height:12px;background:#fff;border-top:1px solid var(--green);border-left:1px solid var(--green);transform:rotate(45deg);z-index:1}
.tarjeta-perfil>*{position:relative;z-index:2}

/* La resolución reserva el ancho principal al campo y mantiene las acciones juntas. */
.solicitudes-baja-table{table-layout:fixed}.solicitudes-baja-table th:nth-child(1),.solicitudes-baja-table td:nth-child(1){width:17%}.solicitudes-baja-table th:nth-child(2),.solicitudes-baja-table td:nth-child(2){width:39%}.solicitudes-baja-table th:nth-child(3),.solicitudes-baja-table td:nth-child(3){width:10%}.solicitudes-baja-table th:nth-child(4),.solicitudes-baja-table td:nth-child(4){width:34%}.review-actions{min-width:0;width:100%}.review-actions form{display:grid!important;grid-template-columns:minmax(0,1fr) 86px 86px!important;justify-content:initial!important;gap:6px;width:100%}.review-actions .review-action-button{width:86px!important;min-width:86px!important;max-width:86px!important;justify-self:stretch!important}@media(max-width:900px){.solicitudes-baja-table{table-layout:auto}.solicitudes-baja-table th,.solicitudes-baja-table td{width:auto!important}.review-actions{min-width:260px}.review-actions form{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}.review-actions input:not([type=hidden]){grid-column:1/-1}.review-actions .review-action-button{width:100%!important;min-width:0!important;max-width:none!important}}
/* El selector y la casilla se leen como controles pares en la segunda fila de mora. */
.empresa-mora-compound{display:grid;grid-template-rows:31px 35px auto}.empresa-mora-compound>.checkbox{grid-row:2;align-self:start;margin:0}.empresa-mora-compound>.hint{grid-row:3;margin:0}@media(max-width:760px){.empresa-mora-compound{grid-template-rows:auto auto}.empresa-mora-compound>.checkbox{grid-row:auto;margin:14px 0 7px}.empresa-mora-compound>.hint{grid-row:auto;margin:0 0 15px}}
/* Validación de comprobantes SaaS: los controles comparten una sola fila. */
.payment-review-actions{width:100%;min-width:500px}.payment-review-actions form{display:grid;grid-template-columns:118px minmax(220px,1fr) 78px 78px;align-items:center;gap:6px;width:100%;margin:0}.payment-review-actions input:not([type=hidden]){box-sizing:border-box;min-width:0;min-height:28px;padding:5px 7px;font-size:9px}.payment-review-actions button{width:78px;min-width:78px;min-height:26px;padding:5px 6px;font-size:9px;white-space:nowrap}
/* Las acciones del expediente se muestran como botones explícitos. */
.document-item>.document-preview-button{margin-left:auto;white-space:nowrap}.document-preview-button svg{width:13px;height:13px}
/* El expediente usa una tabla para comparar rápidamente los documentos cargados. */
.document-table-wrap{padding:0 23px 23px}.document-table{min-width:860px}.document-table th,.document-table td{padding:10px 9px;vertical-align:middle}.document-table th:nth-child(1){width:15%}.document-table th:nth-child(2){width:23%}.document-table th:nth-child(3){width:11%}.document-table th:nth-child(4){width:14%}.document-table th:nth-child(5){width:25%}.document-table th:nth-child(6){width:12%}.document-table td:nth-child(5){white-space:normal;overflow-wrap:anywhere}.document-table .document-preview-button{white-space:nowrap}.document-table .empty-cell{padding:30px 12px!important}

/* Personalización de informes por lotificación. */
.report-logo-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.report-logo-card{display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:9px;padding:14px}.report-logo-card>div>strong,.report-logo-card>div>small{display:block}.report-logo-card>div>small{margin-top:4px;overflow-wrap:anywhere}.report-logo-card form{display:flex;align-items:center;gap:8px}.report-logo-card input[type=file]{max-width:245px;min-height:34px;padding:5px}.report-logo-preview{height:68px;display:grid;place-items:center;background:#f8faf8;border:1px dashed #d8e1db;border-radius:7px;color:#8c9991;font-size:10px}.report-logo-preview img{max-width:108px;max-height:54px;object-fit:contain}.report-template-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:18px;align-items:start}.report-template-list{position:sticky;top:18px}.report-template-list nav{display:flex;flex-direction:column;padding:0 10px 12px}.report-template-list nav a{padding:10px 12px;border-radius:6px;color:#617269}.report-template-list nav a span,.report-template-list nav a small{display:block}.report-template-list nav a small{margin-top:3px}.report-template-list nav a.selected{background:var(--mint);color:var(--green);font-weight:600}.report-color-input{display:grid;grid-template-columns:70px auto;gap:10px;align-items:center}.report-color-input input{height:34px;padding:3px!important}.report-color-input code{font-size:11px;color:#6e7d75}.report-options-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:18px;margin-top:14px}.report-options-grid fieldset{border:1px solid var(--line);border-radius:8px;padding:13px}.report-options-grid legend{font-size:12px;font-weight:650;color:#52665a;padding:0 5px}.report-options-grid .checkbox{margin:8px 0}.report-order-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.report-order-list li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 9px;border:1px solid var(--line);border-radius:6px;background:#fafcfa;font-size:11px}.report-order-actions{display:flex;gap:4px}.report-order-actions button{display:grid;place-items:center;width:27px;height:25px;border:1px solid #dce5df;background:#fff;color:var(--green);border-radius:5px}.report-order-actions button:disabled{opacity:.3}.report-preview{margin-top:18px;padding:16px;border:1px solid color-mix(in srgb,var(--report-color),white 65%);border-radius:8px;background:#fff}.report-preview.preview-disabled{opacity:.4}.report-preview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:center;border-bottom:2px solid var(--report-color);padding-bottom:12px}.report-preview-item{min-width:0;color:#45594d}.report-preview-item.preview-hidden{display:none}.report-preview-item img{max-width:135px;max-height:58px;object-fit:contain}.report-preview-item strong,.report-preview-item small{display:block}.report-preview-item small{margin-top:4px}.report-reset-form{margin-top:-52px;width:max-content}.pie-reporte-personalizado{display:none}.cabecera-personalizada{border-bottom-color:var(--report-color)!important}.cabecera-personalizada .cabecera-logo img{width:auto!important;max-width:165px;max-height:70px;object-fit:contain}.cabecera-titulo-personalizado strong{color:var(--report-color);font-size:16px!important}.main:has(> .cabecera-personalizada)>.cabecera-reporte-impresion:not(.cabecera-personalizada){display:none!important}
@media(max-width:1100px){.report-logo-grid,.report-template-layout{grid-template-columns:1fr}.report-template-list{position:static}.report-template-list nav{display:grid;grid-template-columns:repeat(2,1fr)}.report-logo-card{grid-template-columns:100px minmax(0,1fr)}.report-logo-card form{grid-column:1/-1}.report-options-grid{grid-template-columns:1fr}}
@media(max-width:760px){.report-logo-card{grid-template-columns:1fr}.report-logo-card form{display:grid;grid-template-columns:1fr auto}.report-logo-preview{height:78px}.report-template-list nav{grid-template-columns:1fr}.report-preview-grid{grid-template-columns:1fr 1fr}.report-reset-form{margin:8px 0 0;width:100%}.report-reset-form .button{width:100%}}
@media print{.cabecera-personalizada{grid-template-columns:repeat(3,minmax(0,1fr));border-bottom:2px solid var(--report-color)!important}.cabecera-personalizada .cabecera-elemento{min-width:0}.pie-reporte-personalizado{display:block;margin-top:18px;padding-top:8px;border-top:1px solid var(--report-color);color:#65746b;font-size:8.5px;text-align:center;white-space:pre-line}}
.mora-adjustment-panel{display:block}@media print{.estado-cuenta-page-heading .eyebrow{display:none}.mora-adjustment-panel{display:none!important}.skip-link{display:none!important}table.estado-cuenta-movimientos tfoot{display:table-row-group}}
.cabecera-personalizada-marcador{display:none}.main:has(.cabecera-personalizada-marcador)>.cabecera-reporte-impresion:not(.cabecera-personalizada){display:none!important}.report-custom-intro{white-space:pre-line;color:#52665a}
.report-logo-setting{display:grid;grid-template-columns:120px minmax(0,1fr);gap:14px;align-items:center;padding:12px 0}.report-logo-setting small{display:block;margin-top:5px;color:#6b7c72}.report-logo-setting .checkbox{margin-top:8px}.report-logo-setting-large{grid-template-columns:360px minmax(0,1fr)}.report-logo-setting-large .report-logo-preview{height:204px}.report-logo-setting-large .report-logo-preview img{max-width:324px;max-height:162px}@media(max-width:760px){.report-logo-setting-large{grid-template-columns:1fr}.report-logo-setting-large .report-logo-preview{height:204px}.report-logo-setting-large .report-logo-preview img{max-width:calc(100% - 24px)}}.empresa-config-section,.report-logo-section{min-width:0;margin:12px 0;padding:22px;border:1px solid #d7e5dc;border-radius:14px;background:#f7faf8}.empresa-config-section legend,.report-logo-section legend{padding:0 10px;color:#245d46;font-size:16px;font-weight:700}.empresa-config-section>.hint:first-of-type,.report-logo-section>.hint:first-of-type{margin-top:0}.empresa-config-section>.muted:last-child{margin-bottom:0}@media(max-width:760px){.empresa-config-section,.report-logo-section{padding:15px}}

/* Editor visual de plantillas: una página editable por bloques sin almacenar HTML ejecutable. */
.report-designer-panel{min-width:0}.report-editor-shell{margin-top:14px;border:1px solid #cfdad3;border-radius:10px;overflow:hidden;background:#eef2ef}.report-editor-toolbar{position:sticky;top:0;z-index:5;display:flex;flex-wrap:wrap;gap:7px;align-items:center;padding:9px;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 2px 8px #183c2912}.report-tool-group{display:flex;align-items:center;gap:4px;padding-right:7px;border-right:1px solid var(--line)}.report-tool-group:last-child{border-right:0}.report-editor-toolbar button{min-height:31px;padding:5px 9px;border:1px solid #d6e0da;border-radius:5px;background:#fff;color:#294c3a;font:inherit;cursor:pointer}.report-editor-toolbar button:hover,.report-editor-toolbar button:focus-visible{border-color:var(--green);background:var(--mint)}.report-tool-select,.report-tool-color{display:flex;align-items:center;gap:5px;margin:0;color:#697970;font-size:10px}.report-tool-select select{width:auto;min-width:65px;min-height:31px;padding:4px 25px 4px 7px}.report-tool-color input{width:34px;height:31px;padding:2px;border:1px solid var(--line);border-radius:5px}.report-insert-tools{flex:1;flex-wrap:wrap}.report-editor-help{display:flex;justify-content:space-between;gap:15px;padding:7px 14px;color:#6f7e76;font-size:10px}.report-page-canvas{--report-color:#26795B;width:min(100%,850px);min-height:860px;margin:0 auto 22px;padding:54px 58px;background:#fff;box-shadow:0 5px 24px #1d3a2b1f}.report-canvas-block{position:relative;margin:3px 0;border:1px solid transparent;border-radius:5px}.report-canvas-block:hover,.report-canvas-block:focus-within{border-color:#a9c8b7}.report-canvas-block.dragging{opacity:.45}.report-block-controls{position:absolute;left:-48px;top:1px;display:flex;align-items:center;gap:6px;width:43px;overflow:hidden;z-index:2;transition:width .15s;background:#f3f7f4;border:1px solid #cfe0d6;border-radius:5px;color:#50675a;white-space:nowrap}.report-canvas-block:hover>.report-block-controls,.report-canvas-block:focus-within>.report-block-controls{width:185px}.report-block-controls button{border:0;background:transparent;color:var(--green);font:inherit;cursor:pointer}.report-drag-handle{flex:0 0 41px;height:30px;font-size:19px}.report-block-controls>span{font-size:10px;font-weight:650}.report-block-controls>small{font-size:9px;color:#829087}.report-remove-block{margin-left:auto!important;padding:0 8px!important;color:#a64444!important}.report-block-body{min-height:12px}.report-rich-editor{min-height:30px;padding:5px 7px;outline:none;white-space:pre-wrap;overflow-wrap:anywhere}.report-rich-editor:focus{box-shadow:inset 0 0 0 1px var(--green);border-radius:4px}.report-editor-header-sample{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:center;padding:8px 4px 12px;border-bottom:2px solid var(--report-color)}.report-editor-header-sample>div{min-width:0}.report-editor-header-sample img{max-width:145px;max-height:62px;object-fit:contain}.report-editor-header-sample strong,.report-editor-header-sample small{display:block}.report-editor-header-sample small{margin-top:3px;color:#617269}.report-dynamic-placeholder{display:flex;flex-direction:column;gap:8px;padding:20px;border:1px dashed #9db8a9;border-radius:7px;background:#f6faf7;text-align:center;color:#587064}.report-dynamic-placeholder strong{color:var(--green)}.report-placeholder-lines{height:7px;border-radius:4px;background:#dfe9e2}.report-placeholder-lines.short{width:65%;margin:auto}.report-image-body img{display:inline-block;max-width:100%;max-height:360px;object-fit:contain}.report-block-slider{display:flex;align-items:center;justify-content:center;gap:8px;margin:5px auto;color:#738178;font-size:9px}.report-block-slider input{width:150px}.report-canvas-separador hr{border:0;border-top:2px solid var(--report-color);margin:14px 5px}.report-spacer{background:repeating-linear-gradient(135deg,#f8faf8,#f8faf8 6px,#f1f5f2 6px,#f1f5f2 12px)}.report-editor-settings{margin-top:18px;border:1px solid var(--line);border-radius:8px}.report-editor-settings>summary{padding:12px 14px;color:var(--green);font-weight:650;cursor:pointer}.report-editor-settings>.report-options-grid{padding:0 14px 14px;margin-top:0}.report-editor-footer{align-items:center}.report-editor-footer>.hint{max-width:65%;margin-right:auto}.report-editor-reset{position:relative;margin:10px 0 0;width:max-content}.documento-visual-texto{margin:5px 0;white-space:pre-wrap;overflow-wrap:anywhere}.documento-visual-linea{min-height:1em}.documento-visual-imagen{text-align:center;margin:9px 0}.documento-visual-imagen img{display:inline-block;max-width:100%;max-height:420px;object-fit:contain}.documento-visual-separador{border:0;border-top:2px solid var(--report-color,#26795B);margin:14px 0}.documento-visual-espacio{display:block}.documento-visual-texto span{white-space:pre-wrap}
@media(max-width:1150px){.report-page-canvas{padding:45px 50px}.report-editor-toolbar{position:static}.report-tool-group{border-right:0}.report-editor-help{display:none}}
@media(max-width:760px){.report-page-canvas{width:100%;min-height:650px;padding:38px 22px}.report-block-controls{left:-18px;top:-24px}.report-editor-header-sample{grid-template-columns:1fr 1fr}.report-editor-footer{align-items:stretch}.report-editor-footer>.hint{max-width:none}.report-editor-reset{width:100%}.report-editor-reset .button{width:100%}}

/* Iconografía Tabler local: los SVG heredan el color del control y no alteran su comportamiento. */
.sol-icon{display:inline-block;width:1em;height:1em;flex:0 0 auto;vertical-align:-.16em;stroke:currentColor;stroke-width:2;fill:none;pointer-events:none}
.button>.sol-icon,.action-button>.sol-icon,.icon-button>.sol-icon,.nav-link>.sol-icon,.customer-search-button>.sol-icon,.toast-close>.sol-icon{width:15px;height:15px}
.nav-link>.sol-icon{width:18px;height:18px;color:#8d989e}.nav-link.active>.sol-icon{color:var(--green)}
.file-picker-icon.sol-icon{width:15px;height:15px;margin-right:6px}.toast-icon>.sol-icon{width:21px;height:21px}.toast-close>.sol-icon{width:16px;height:16px}
.map-controls .sol-icon,.map-compass .sol-icon{width:16px;height:16px}.stat-icon>.sol-icon{width:20px;height:20px}
@media print{.documento-visual-texto,.documento-visual-imagen,.documento-visual-separador,.documento-visual-espacio{break-inside:avoid}.documento-visual-imagen img{max-height:7cm}}

/* Formularios operativos: usan todo el ancho del contenido salvo una excepción explícita. */
.form-panel-full{width:100%;max-width:none}
/* Acciones de servicios contratados: permanecen juntas en una sola fila. */
.service-row-actions{display:flex;align-items:center;gap:7px;flex-wrap:nowrap}.service-row-actions form{display:flex;margin:0}.service-row-actions .action-button{margin:0;white-space:nowrap}

/* Cobros: las cuotas se leen por lote y el alcance del abono se elige junto a sus formas de pago. */
.charge-property-heading th{padding-top:9px!important;padding-bottom:9px!important;background:#f2f7f3;color:#386a50;font-size:10px;font-weight:700;letter-spacing:.02em}.payment-property-selection{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);gap:18px;align-items:end;margin:14px 0}.payment-property-selection label{margin-top:0}.payment-property-selection select{min-height:92px}.payment-property-selection .hint{margin:0 0 3px}@media(max-width:760px){.payment-property-selection{grid-template-columns:1fr;gap:6px}.payment-property-selection .hint{margin-bottom:0}}

/* La selección por lote usa casillas visibles y el resumen muestra la distribución antes de cobrar. */
.payment-property-selection{grid-template-columns:210px minmax(0,1fr);align-items:center}.payment-property-label{font-size:12px;color:#53665b;font-weight:600}.payment-property-options{display:flex;flex-wrap:wrap;gap:8px}.payment-property-option{display:inline-flex;align-items:center;gap:7px;margin:0!important;padding:8px 11px;border:1px solid #dce6df;border-radius:6px;background:#fff;color:#4a6456;font-size:11px;font-weight:600;cursor:pointer}.payment-property-option:has(input:checked){border-color:#7eb595;background:#edf7f0;color:#246345}.payment-property-option input{width:15px;height:15px;margin:0}.payment-property-selection .hint{grid-column:1/-1;margin:0}.payment-allocation-preview{margin-top:17px;border:1px solid #dce7df;border-radius:8px;background:#fbfdfb}.payment-allocation-preview summary{padding:12px 14px;color:#32694f}.payment-allocation-preview>.hint{padding:0 14px;margin:0 0 11px}.payment-allocation-preview .table-wrap{margin:0}.payment-allocation-preview table{min-width:690px}.payment-allocation-preview th,.payment-allocation-preview td{padding-top:9px!important;padding-bottom:9px!important}.payment-allocation-preview [data-preview-priority]{width:15px;height:15px;margin:0}@media(max-width:760px){.payment-property-selection{grid-template-columns:1fr;gap:8px}.payment-property-selection .hint{margin-bottom:0}}

/* La selección de lote precede a la lista y deja una altura compacta para las cuotas pendientes. */
.charge-property-selection{margin:7px 0 12px}.charge-list-height{max-height:225px}

/* Caja: filtros de comprobantes recientes e históricos. */
.caja-comprobantes-filtros{padding:0 23px 18px;grid-template-columns:minmax(260px,2fr) minmax(150px,1fr) minmax(150px,1fr) auto;gap:12px;border-bottom:1px solid var(--line)}
.caja-comprobantes-filtros label{margin-top:0}
.caja-comprobantes-acciones{display:flex;align-items:end;gap:8px}
.caja-comprobantes-acciones .button{margin:0;height:34px;min-height:34px;padding-top:0;padding-bottom:0;line-height:1}
@media(max-width:760px){.caja-comprobantes-filtros{padding:0 17px 15px;grid-template-columns:1fr}.caja-comprobantes-acciones{align-items:stretch}.caja-comprobantes-acciones .button{flex:1}}

/* La fecha informada por el cliente queda junto al botón de confirmación. */
.payment-date-inline{display:flex;align-items:center;gap:9px}.payment-date-inline label{margin:0;white-space:nowrap}.payment-date-inline input{width:165px;min-height:40px}.payment-date-inline .field-validation-error{display:none}@media(max-width:760px){.payment-date-inline{width:100%;justify-content:space-between;gap:8px}.payment-date-inline label{white-space:normal}.payment-date-inline input{width:155px;flex:0 0 155px}}
.payment-allocation-preview table{min-width:780px}
.page-heading-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.capital-payment-notice{margin-bottom:14px}.capital-contract-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.capital-contract-option{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;margin:0;padding:14px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer}.capital-contract-option:has(input:checked){border-color:#78ad8e;background:#eff8f1;box-shadow:0 0 0 2px #4b947012}.capital-contract-option>input{margin-top:2px}.capital-contract-option strong,.capital-contract-option small{display:block}.capital-contract-option small{margin-top:4px;color:var(--muted)}.capital-contract-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 18px;margin-top:12px;padding-top:10px;border-top:1px solid #dfe9e2;font-size:10px}.capital-contract-values span{display:grid;grid-template-columns:max-content max-content;justify-content:start;align-items:baseline;gap:12px;min-width:0}.capital-contract-values b{color:#315b47;white-space:nowrap}.capital-preview{margin-top:18px;padding:16px;border:1px solid #dce7df;border-radius:8px;background:#fbfdfb}.capital-preview-message{margin:7px 0 0;color:var(--muted);font-size:11px}.capital-preview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:13px}.capital-preview-grid article{padding:11px;border-radius:7px;background:#f1f6f2}.capital-preview-grid article.positive{background:#e8f6eb}.capital-preview-grid span,.capital-preview-grid strong{display:block}.capital-preview-grid span{font-size:9px;color:#73857b}.capital-preview-grid strong{margin-top:5px;color:#294c3b;font-size:13px}.capital-preview-grid .positive strong{color:#1f784e}@media(max-width:1000px){.capital-contract-options{grid-template-columns:1fr}.capital-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.capital-contract-values,.capital-preview-grid{grid-template-columns:1fr}.capital-page-heading-actions{width:100%}.page-heading-actions{width:100%}.page-heading-actions .button{flex:1}}

/* El lote elegido para un abono conserva su ficha física y la negociación vigente a la vista. */
.charge-property-selection{display:block;margin-top:7px}.charge-property-selection .payment-property-options{display:grid;width:100%;gap:10px}.charge-property-selection .payment-property-options--one{grid-template-columns:minmax(0,1fr)}.charge-property-selection .payment-property-options--two{grid-template-columns:repeat(2,minmax(0,1fr))}.charge-property-selection .payment-property-options--three{grid-template-columns:repeat(3,minmax(0,1fr))}.charge-property-selection .payment-property-option{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;padding:11px 12px;white-space:normal}.charge-property-selection .payment-property-option input{margin-top:4px}.payment-property-details{display:grid;gap:6px;min-width:0}.payment-property-title{display:flex;align-items:baseline;gap:8px;color:#244b38}.payment-property-title strong{font-size:13px}.payment-property-title small{color:#638071;font-size:10px}.payment-property-physical{display:flex;flex-wrap:wrap;gap:4px 10px;color:#60746a;font-size:10px;line-height:1.4}.payment-property-negotiation{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 8px;padding:7px 8px;border-radius:5px;background:#f4f8f5;color:#4a6456;font-size:10px;line-height:1.35}.payment-property-negotiation small{grid-column:1/-1;color:#2f684b;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.payment-property-option:has(input:checked) .payment-property-negotiation{background:#e4f3e8}@media(max-width:760px){.charge-property-selection .payment-property-options,.charge-property-selection .payment-property-options--two,.charge-property-selection .payment-property-options--three{grid-template-columns:1fr}.payment-property-negotiation{grid-template-columns:1fr 1fr}}
.charge-property-selection{margin-top:4px!important}.charge-property-selection + .table-wrap{margin-top:10px}.panel.padded:has(> .charge-property-selection) > .panel-heading.flush{padding-bottom:0!important}.panel.padded:has(> .charge-property-selection) > .panel-heading.flush h2{margin-bottom:0!important}
.public-checks li:before{content:none!important}.public-check-icon{position:absolute;left:0;top:.2em;width:14px;height:14px;color:#27855e}
.pricing-card-detail li::before{content:none!important}.pricing-check-icon{display:inline-block;width:14px;height:14px;margin-right:7px;color:#2d8a63;vertical-align:-.2em}

/* Las ventas anteriores a SOL se capturan como un modo opcional y claramente separado. */
.historical-sale-option{margin-top:20px;border:1px solid #e3e9e5;border-radius:9px;background:#fbfcfb;overflow:hidden}.historical-sale-toggle{display:flex;align-items:flex-start;gap:11px;margin:0;padding:15px 16px;cursor:pointer}.historical-sale-toggle input{flex:0 0 auto;margin-top:2px}.historical-sale-toggle strong,.historical-sale-toggle small{display:block}.historical-sale-toggle strong{color:#405b4b;font-size:12px}.historical-sale-toggle small{margin-top:4px;line-height:1.5}.historical-sale-fields{display:none;padding:0 16px 16px;border-top:1px solid #e7ece9}.historical-sale-fields.is-active{display:block}.historical-sale-fields>.notice{margin:14px 0 4px}.historical-sale-fields>.form-grid{padding:0!important}.historical-contract-notice{display:grid;gap:5px}.historical-contract-notice strong{color:#315d46}.historical-contract-notice span,.historical-contract-notice small{display:block}.historical-contract-notice small{line-height:1.55}@media(max-width:760px){.historical-sale-option{margin-top:14px}.historical-sale-fields{padding:0 12px 12px}}
.sale-customer-search .customer-search-control{margin-top:14px}.sale-customer-search .field-validation-error{display:block;margin-top:6px}.sale-data-grid .sale-customer-search .customer-search-control{margin-top:0}.customer-search-label{display:flex;align-items:center;gap:7px}.customer-search-label label{margin-right:0}.customer-search-add{display:inline-grid;place-items:center;width:24px;height:24px;margin-top:7px;border:1px solid #c9ddd0;border-radius:5px;background:#f2f8f4;color:#287a54;transition:background-color .15s,border-color .15s,color .15s}.customer-search-add:hover,.customer-search-add:focus-visible{background:#287a54;border-color:#287a54;color:#fff}.customer-search-add svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}.sale-installment-preview{margin-top:20px;border:1px solid #e2e9e4;border-radius:9px;padding:16px;background:#fff}.sale-installment-preview .panel-heading{align-items:center}.sale-installment-preview .panel-heading p{max-width:760px;margin-bottom:0}.sale-installment-table{max-height:430px}.sale-installment-table table{min-width:1020px}.sale-installment-table th,.sale-installment-table td{padding:8px 10px}.sale-installment-table thead th{position:sticky;top:0;z-index:2;background:#fafbfb;box-shadow:0 1px 0 #e2e8e4}.sale-installment-table input[type=number]{min-width:105px;min-height:32px;padding:6px 8px;text-align:right}.sale-installment-preview:not(.historical-active) .historical-column,.sale-installment-preview:not(.historical-active) .historical-help{display:none}.sale-installment-preview tfoot td{position:sticky;bottom:0;z-index:1;background:#f4f8f5;font-weight:650;border-top:1px solid #dce6df}.sale-installment-preview.historical-active{border-color:#d8e5dc;background:#fbfdfb}@media(max-width:760px){.sale-installment-preview{padding:12px}.sale-installment-preview .panel-heading{align-items:flex-start}.sale-installment-preview .panel-heading .button{width:100%}}

/* La venta conjunta permite revisar cada inmueble completo sin perder la vista del resumen. */
.sale-properties-review{margin-top:2px;padding:16px;border:1px solid #e0e9e3;border-radius:10px;background:#fbfdfb}.sale-properties-review .panel-heading{align-items:flex-start}.sale-properties-review .panel-heading p{max-width:850px;margin-bottom:0}.sale-properties-review-list{display:grid;gap:9px;margin-top:14px}.sale-property-review{border:1px solid #dbe7df;border-radius:8px;background:#fff;overflow:hidden}.sale-property-review>summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:11px;align-items:center;padding:12px 14px;cursor:pointer;list-style:none}.sale-property-review>summary::-webkit-details-marker{display:none}.sale-property-review>summary:hover{background:#f4faf6}.sale-property-review-chevron{display:grid;place-items:center;width:25px;height:25px;border:1px solid #cfe0d5;border-radius:50%;background:#edf7f0;color:#2f7956}.sale-property-review-chevron svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .18s}.sale-property-review[open] .sale-property-review-chevron svg{transform:rotate(180deg)}.sale-property-review-identification{display:grid;gap:3px;min-width:0}.sale-property-review-identification strong{display:flex;align-items:center;flex-wrap:wrap;gap:8px;color:#244b38;font-size:13px}.sale-property-review-identification small{overflow:hidden;color:#6a7d72;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.sale-property-type{display:inline-block;padding:3px 6px;border-radius:4px;background:#e8f4ec;color:#287553;font-size:9px;font-weight:750;letter-spacing:.02em;text-transform:uppercase}.sale-property-review-quick{display:flex;align-items:center;justify-content:flex-end;gap:14px;color:#4d6859;font-size:11px;font-weight:650;white-space:nowrap}.sale-property-review-price{display:grid;justify-items:end;gap:3px}.sale-property-review-price strong{font-weight:650}.sale-property-review-price small{color:#75877d;font-size:9px;font-weight:650}.sale-property-review-content{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;padding:14px;border-top:1px solid #e2ebe5;background:#fbfdfb}.sale-property-review-content>section{min-width:0;padding:12px;border:1px solid #e5ece7;border-radius:7px;background:#fff}.sale-property-identification{grid-column:1;grid-row:1}.sale-property-measurements{grid-column:2;grid-row:1}.sale-property-registral{grid-column:1;grid-row:2}.sale-property-conditions{grid-column:2;grid-row:2}.sale-property-housing{grid-column:1/-1;grid-row:3}.sale-property-review-content h3{margin:0 0 9px;color:#315b47;font-size:11px}.sale-property-data{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;margin:0}.sale-property-data>div{min-width:0}.sale-property-data dt{color:#73857b;font-size:9px;font-weight:700}.sale-property-data dd{margin:3px 0 0;color:#304f40;font-size:11px;line-height:1.4;overflow-wrap:anywhere}.sale-property-wide{grid-column:1/-1}.sale-property-boundaries{max-height:220px;margin-top:10px}.sale-property-boundaries table{min-width:600px}.sale-property-boundaries th,.sale-property-boundaries td{padding:7px 8px;font-size:10px}.sale-properties-review-total{display:flex;flex-wrap:wrap;align-items:center;gap:7px 18px;margin-top:13px;padding:10px 12px;border-radius:7px;background:#eef6f0;color:#315b47;font-size:11px}.sale-properties-review-total span{margin-right:auto;font-weight:700}.sale-properties-review-total strong{white-space:nowrap}
@media(max-width:760px){.sale-properties-review{padding:12px}.sale-property-review>summary{grid-template-columns:auto minmax(0,1fr);padding:11px}.sale-property-review-quick{grid-column:2;justify-content:flex-start;gap:10px;font-size:10px}.sale-property-review-price{justify-items:start}.sale-property-review-content{grid-template-columns:1fr;padding:10px}.sale-property-identification,.sale-property-measurements,.sale-property-registral,.sale-property-conditions,.sale-property-housing{grid-column:auto;grid-row:auto}.sale-property-data{grid-template-columns:1fr}.sale-property-wide{grid-column:auto}.sale-properties-review-total{display:grid;gap:5px}.sale-properties-review-total span{margin:0}.sale-properties-review-total strong{white-space:normal}}

/* Controles para ampliar o depurar la selección antes de confirmar la venta. */
.sale-properties-add{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.sale-properties-add svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}.sale-property-review>summary{grid-template-columns:auto minmax(0,1fr) auto auto}.sale-property-review-quick{display:grid;grid-template-columns:minmax(112px,auto) minmax(112px,auto);gap:18px}.sale-property-review-measures,.sale-property-review-price{display:grid;justify-items:end;gap:3px}.sale-property-review-measures strong,.sale-property-review-measures small,.sale-property-review-price strong,.sale-property-review-price small{color:#4d6859;font-size:11px;font-weight:650;line-height:1.25}.sale-property-remove{display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid #e4c9c5;border-radius:7px;background:#fff8f7;color:#a54235;cursor:pointer;transition:background-color .15s,border-color .15s,color .15s}.sale-property-remove:hover,.sale-property-remove:focus-visible{border-color:#b64a3c;background:#b64a3c;color:#fff}.sale-property-remove:disabled{border-color:#e2e8e4;background:#f4f6f5;color:#aab5af;cursor:not-allowed}.sale-property-remove svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:760px){.sale-properties-review .panel-heading{gap:12px}.sale-properties-add{width:100%;justify-content:center}.sale-property-review>summary{grid-template-columns:auto minmax(0,1fr) auto}.sale-property-review-quick{grid-column:2;grid-template-columns:repeat(2,minmax(0,auto));justify-content:start;gap:14px}.sale-property-review-measures,.sale-property-review-price{justify-items:start}.sale-property-remove{grid-column:3;grid-row:1 / span 2}.sale-property-review-measures strong,.sale-property-review-measures small,.sale-property-review-price strong{font-size:10px}}
.historical-fields-grid{grid-template-columns:minmax(220px,.45fr) minmax(0,1.55fr);align-items:start}.historical-fields-grid input[type=date],.historical-fields-grid textarea{height:40px!important;min-height:40px!important;box-sizing:border-box}@media(max-width:760px){.historical-fields-grid{grid-template-columns:1fr}.historical-fields-grid input[type=date],.historical-fields-grid textarea{height:40px!important;min-height:40px!important}}
.amortization-table{min-width:1020px}.payment-allocation-preview table{min-width:1020px}

/* El menú de resultados del cliente debe sobresalir del panel de filtros y no quedar recortado. */
.panel:has(> .report-filters[data-customer-search]){position:relative;z-index:20;overflow:visible}
.report-filters[data-customer-search]>div:first-child{position:relative;z-index:31}
.report-filters[data-customer-search] .customer-search-control{position:relative;z-index:32}

/* Estado de cuenta: los filtros siguen las cuatro columnas de las tarjetas de resumen. */
.report-filters.report-filters-state-account{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);gap:16px 18px}.report-filters.report-filters-state-account>div:first-child{grid-column:span 2}.report-filters.report-filters-state-account>label.checkbox{grid-column:1 / span 2}.state-account-until-control{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;height:34px}.state-account-until-control input{min-width:0;height:34px;min-height:34px;border-radius:7px 0 0 7px;border-right:0}.state-account-until-control .button{height:34px;min-height:34px;margin:0;border-radius:0 7px 7px 0;padding-top:7px;padding-bottom:7px;padding-left:15px;padding-right:15px}.mora-adjustment-reason{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:end}.mora-adjustment-reason label{margin-top:0}.mora-adjustment-reason .button{height:34px;min-height:34px;margin:0;padding-top:7px;padding-bottom:7px}@media(max-width:760px){.report-filters.report-filters-state-account{grid-template-columns:1fr}.report-filters.report-filters-state-account>div:first-child,.report-filters.report-filters-state-account>label.checkbox{grid-column:auto}.state-account-until-control{grid-template-columns:minmax(0,1fr) auto}.mora-adjustment-reason{grid-template-columns:1fr}.mora-adjustment-reason .button{width:100%}}
.amount-input-no-spinner{text-align:right;font-variant-numeric:tabular-nums}.sale-money-left{text-align:left}.amount-input-no-spinner{-moz-appearance:textfield;appearance:textfield}.amount-input-no-spinner::-webkit-inner-spin-button,.amount-input-no-spinner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.estado-cuenta-page-actions{display:flex;align-items:center;gap:16px}.estado-cuenta-all-property{margin:0;white-space:nowrap}.estado-cuenta-all-property input{margin:0 6px 0 0}
.mora-adjustment-panel .table-wrap{overflow-x:visible}.mora-adjustment-table{width:100%;min-width:0;table-layout:fixed}.mora-adjustment-table th,.mora-adjustment-table td{padding-left:8px;padding-right:8px}.mora-adjustment-table th{white-space:normal;line-height:1.3;vertical-align:middle}.mora-adjustment-table th>span{display:block}.mora-adjustment-table th:nth-child(1){width:13%}.mora-adjustment-table th:nth-child(2){width:8%}.mora-adjustment-table th:nth-child(3){width:8%}.mora-adjustment-table th:nth-child(4){width:10%}.mora-adjustment-table th:nth-child(5){width:11%}.mora-adjustment-table th:nth-child(6){width:8%}.mora-adjustment-table th:nth-child(7){width:9%}.mora-adjustment-table th:nth-child(8){width:11%}.mora-adjustment-table th:nth-child(9){width:8%}.mora-adjustment-table th:nth-child(10){width:14%}.mora-adjustment-table .amount-input{width:100%;min-width:0;padding-left:7px;padding-right:7px}.mora-adjustment-installment{font-size:12px;white-space:normal}.mora-adjustment-installment small{display:block;margin-top:4px;color:var(--muted);line-height:1.35}
@media(max-width:1100px){.mora-adjustment-table{font-size:10px}.mora-adjustment-table th,.mora-adjustment-table td{padding-left:5px;padding-right:5px}.mora-adjustment-table .amount-input{padding-left:4px;padding-right:4px}}
@media screen{form small,form .hint,form .form-help,form .muted{font-size:12px!important}.estado-cuenta-summary .stat-label,.estado-cuenta-summary .stat-card p{font-size:12px}}
/* Estado de cuenta: bloques compactos para priorizar los datos y movimientos. */
@media screen{
  .estado-cuenta-summary{gap:14px;margin-top:12px;margin-bottom:12px}
  .estado-cuenta-summary .stat-card{padding:14px 22px 13px}
  .estado-cuenta-summary .stat-label{margin-bottom:8px}
  .estado-cuenta-summary .stat-card h2{margin-bottom:8px}
  .mora-adjustment-panel.section-gap,.estado-cuenta-movements-panel.section-gap,.panel.section-gap:has(> [data-paginated-region="estado-cuenta-movimientos"]){margin-top:12px;margin-bottom:12px}
  .mora-adjustment-panel:has(#panel-ajuste-mora[hidden]){padding:0}
  .mora-adjustment-panel:has(#panel-ajuste-mora[hidden]) .panel-heading{padding:14px 22px 12px}
  .mora-adjustment-panel .panel-heading h2,.estado-cuenta-movements-panel .panel-heading h2,.panel:has(> [data-paginated-region="estado-cuenta-movimientos"]) .panel-heading h2{margin-bottom:2px}
  .mora-adjustment-panel .panel-heading p,.estado-cuenta-movements-panel .panel-heading p,.panel:has(> [data-paginated-region="estado-cuenta-movimientos"]) .panel-heading p{line-height:1.4}
  .estado-cuenta-movements-panel .panel-heading,.panel:has(> [data-paginated-region="estado-cuenta-movimientos"]) .panel-heading{padding:14px 23px 5px}
  .estado-cuenta-movements-panel .table-page-size-bar,.panel:has(> [data-paginated-region="estado-cuenta-movimientos"]) .table-page-size-bar{padding:5px 23px 8px}
}
@media(max-width:760px){
  .estado-cuenta-summary{gap:10px}
  .estado-cuenta-summary .stat-card{padding:13px}
  .mora-adjustment-panel:has(#panel-ajuste-mora[hidden]) .panel-heading{padding:13px 17px 11px}
  .estado-cuenta-movements-panel .panel-heading,.panel:has(> [data-paginated-region="estado-cuenta-movimientos"]) .panel-heading{padding:13px 17px 5px}
  .estado-cuenta-movements-panel .table-page-size-bar,.panel:has(> [data-paginated-region="estado-cuenta-movimientos"]) .table-page-size-bar{padding:5px 17px 8px}
}
.capital-reprogramming-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:13px;margin:0 0 14px;border:1px solid #dce7df;border-radius:7px;background:#f7faf8}.capital-reprogramming-controls label{margin-top:0}.capital-reprogramming-controls input,.capital-reprogramming-controls select{min-height:34px}.capital-reprogramming-controls small{display:block;line-height:1.45;margin-top:5px}.capital-amortization-preview{max-height:420px;margin-top:14px;border:1px solid #dce7df;border-radius:7px}.capital-amortization-preview table{min-width:760px}.capital-amortization-preview th,.capital-amortization-preview td{padding:8px 10px}.capital-amortization-preview thead th{position:sticky;top:0;z-index:2;background:#f7faf8;box-shadow:0 1px 0 #dfe8e2}
@media(max-width:1050px){.capital-reprogramming-controls{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.capital-reprogramming-controls{grid-template-columns:1fr;padding:12px}.capital-amortization-preview{margin-left:-12px;margin-right:-12px}}
.capital-contract-options-1{grid-template-columns:minmax(0,1fr)}.capital-contract-options-2{grid-template-columns:repeat(2,minmax(0,1fr))}.capital-contract-options-3{grid-template-columns:repeat(3,minmax(0,1fr))}.capital-account-preview{margin-top:18px;padding:16px;border:1px solid #dce7df;border-radius:8px;background:#fbfdfb}.capital-account-preview .panel-heading{align-items:flex-start}.capital-account-preview .panel-heading p{max-width:900px}.capital-account-table{max-height:430px;margin-top:8px}.capital-account-table table{min-width:1360px}.capital-account-table th,.capital-account-table td{padding:8px 9px;vertical-align:middle}.capital-account-table thead th{position:sticky;top:0;z-index:2;background:#f7faf8;box-shadow:0 1px 0 #dfe8e2}.capital-account-status{display:inline-block;margin-left:6px;padding:2px 5px;border-radius:4px;font-size:8px;white-space:nowrap}.capital-account-status.is-paid{background:#e8f5eb;color:#4d8c63}.capital-account-status.is-pending{background:#fcf3e5;color:#a77b37}
@media(max-width:760px){.capital-contract-options-2,.capital-contract-options-3{grid-template-columns:1fr}.capital-account-preview{padding:12px}.capital-account-table{margin-left:-12px;margin-right:-12px}.capital-account-table table{min-width:1360px}}
@media print{.estado-cuenta-page-actions{gap:0}.estado-cuenta-all-property{display:flex;align-items:center;font-size:9px;color:#222}.estado-cuenta-all-property input{width:12px;height:12px}.estado-cuenta-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-bottom:12px}.estado-cuenta-summary .stat-card{padding:7px 8px}.estado-cuenta-summary .stat-label{font-size:8px;margin-bottom:5px}.estado-cuenta-summary .stat-card h2{font-size:14px;margin-bottom:4px}.estado-cuenta-summary .stat-card p{font-size:7px}.estado-cuenta-filters-panel{padding:0!important;margin-bottom:8px}.report-filters-state-account{display:grid!important;grid-template-columns:2fr 1fr 1fr!important;gap:4px 12px!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important}.report-filters-state-account>div:first-child{grid-column:auto!important}.report-filters-state-account .customer-search-control{display:flex!important;align-items:baseline;min-height:0;border:0;background:transparent;border-radius:0;text-align:left}.report-filters-state-account .customer-search-control>label,.report-filters-state-account>div>label{display:block;flex:0 0 auto;margin:0 5px 0 0;text-align:left;font-size:9px;font-weight:650;color:#222}.report-filters-state-account .customer-search-input-wrap{display:block;position:static;flex:1;min-width:0}.report-filters-state-account input[type=search],.report-filters-state-account input[type=date]{display:block;width:100%!important;height:auto;min-height:0!important;margin:0;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:transparent!important;color:#222;font-size:9px}.report-filters-state-account .customer-search-input-wrap::after{display:none!important}.report-filters-state-account .state-account-until-control{display:inline;height:auto}.report-filters-state-account .state-account-until-control .button{display:none!important}.report-filters-state-account .customer-search-results{display:none!important}.report-filters-state-account:after{content:none}.estado-cuenta-page-heading{margin-bottom:8px}.estado-cuenta-page-heading p{font-size:9px}.estado-cuenta-page-heading .estado-cuenta-all-property{margin-left:auto}}
/* Separación visual de Longitud y Tipo en los linderos registrales. */
#panel-lote-ficha > .table-wrap > table{min-width:720px}
#panel-lote-ficha > .table-wrap > table th:nth-child(1),#panel-lote-ficha > .table-wrap > table td:nth-child(1){width:34%}
#panel-lote-ficha > .table-wrap > table th:nth-child(2),#panel-lote-ficha > .table-wrap > table td:nth-child(2){width:18%;padding-right:28px}
#panel-lote-ficha > .table-wrap > table th:nth-child(3),#panel-lote-ficha > .table-wrap > table td:nth-child(3){width:22%;padding-left:28px;border-left:1px solid var(--line)}
#panel-lote-ficha > .table-wrap > table th:nth-child(4),#panel-lote-ficha > .table-wrap > table td:nth-child(4){width:26%;padding-left:24px}
/* Alineación del resumen contractual y tamaño compacto de la fecha de devolución. */
#panel-contrato-resumen .property-details{margin:0}
#panel-contrato-resumen .property-details>div,#panel-contrato-resumen .contract-summary .summary-row{height:41px;min-height:41px;padding:0;line-height:1.45;align-items:center}
#panel-contrato-resumen .contract-summary .summary-row{font-size:11px}
#panel-contrato-devolver .devolucion-fecha-field{max-width:320px}
#panel-contrato-devolver .devolucion-fecha-field input{max-width:100%}
@media(max-width:760px){#panel-contrato-devolver .devolucion-fecha-field{max-width:none}}

/* Gastos: acciones alineadas a la derecha y panel de resultados con respiración visual. */
.gastos-filter-form{grid-template-columns:repeat(4,minmax(0,1fr)) auto;align-items:end}
.gastos-catalog-form,.gastos-upload-form{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end}
.gastos-form-footer,.panel.padded .gastos-form-footer{border-top:0;margin-top:0;padding:0;justify-content:flex-end;align-self:end;min-width:max-content}
.gastos-form-footer .button{height:34px;min-height:34px;padding-top:7px;padding-bottom:7px}
.gastos-catalog-form + .table-wrap,.gastos-upload-form + .table-wrap{margin-top:20px}
.gastos-anulacion-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 16px;align-items:end}
.gastos-anulacion-form label{grid-column:1 / -1}
.gastos-anulacion-form textarea{grid-column:1;height:34px;min-height:34px;resize:none}
.gastos-anulacion-form .gastos-form-footer{grid-column:2;grid-row:2}
.gastos-filtros + .gastos-periodo-panel{margin-top:14px}
.gastos-periodo-panel{padding:0 20px 20px}
.gastos-periodo-heading{padding:20px 0 14px}
.gastos-tabs .gastos-periodo-table,.gastos-tabs .gastos-catalog-panel .table-wrap{padding:0;margin-left:0;margin-right:0}
.gastos-tabs .gastos-catalog-panel .table-wrap{margin-top:20px}
@media(max-width:1100px){
  .gastos-filter-form{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gastos-filter-form .gastos-form-footer{grid-column:1 / -1;justify-self:end}
}
@media(max-width:760px){
  .gastos-filter-form,.gastos-catalog-form,.gastos-upload-form{grid-template-columns:1fr}
  .gastos-form-footer,.panel.padded .gastos-form-footer{grid-column:1;justify-self:end}
  .gastos-anulacion-form{grid-template-columns:1fr}
  .gastos-anulacion-form textarea,.gastos-anulacion-form .gastos-form-footer{grid-column:1;grid-row:auto}
  .gastos-anulacion-form .gastos-form-footer{justify-self:end}
  .gastos-periodo-panel{padding:0 14px 14px}
  .gastos-periodo-heading{padding:16px 0 11px}
}

.form-grid.form-grid-cuatro .span-3{grid-column:span 3}
.form-grid.form-grid-cuatro .span-4{grid-column:1 / -1}
@media(max-width:1200px){.form-grid.form-grid-cuatro .span-3{grid-column:span 2}}
@media(max-width:760px){.form-grid.form-grid-cuatro .span-3,.form-grid.form-grid-cuatro .span-4{grid-column:auto}}

/* Paginación: selector uniforme sobre las tablas de resultados. */
.table-page-size-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 23px 12px;color:var(--muted);font-size:11px}
.table-page-size-form{display:flex;align-items:center;gap:9px;margin:0}
.table-page-size-form label{margin:0;color:#53665b;font-size:12px}
.table-page-size-form select{width:auto;min-width:150px;min-height:34px;padding:7px 30px 7px 10px;font-size:11px}
.button.warning{background:#d99a25;border-color:#d99a25;color:#fff}
.button.warning:hover{background:#bd7f16;border-color:#bd7f16;color:#fff}
@media(max-width:760px){.table-page-size-bar{align-items:flex-start;flex-direction:column;padding:8px 17px 12px}.table-page-size-form{width:100%}.table-page-size-form select{flex:1;min-width:0}.pagination{align-items:center;gap:12px}.pagination>div{gap:8px}}

/* Estado de cuenta: las fechas usan la misma composición horizontal del selector de cliente. */
.state-account-date-field{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:stretch;min-height:34px;overflow:hidden;border:1px solid #d8e1dc;border-radius:6px;background:#fff}
.state-account-date-field>label{display:flex;align-items:center;margin:0;padding:0 13px;border-right:1px solid #d8e1dc;color:#243d31;font-size:12px;font-weight:700;white-space:nowrap}
.state-account-date-field>input{height:32px;min-height:32px!important;border:0!important;border-radius:0!important;box-shadow:none!important}
.state-account-date-field .state-account-until-control{height:32px}
.state-account-date-field .state-account-until-control input{height:32px;min-height:32px;border:0!important;border-radius:0!important;box-shadow:none!important}
.state-account-date-field .state-account-until-control .button{height:32px;min-height:32px;border-width:0 0 0 1px;border-radius:0;padding-top:6px;padding-bottom:6px}

/* La paginación actualiza únicamente su tabla y muestra actividad sin hacer parpadear la pantalla. */
[data-paginated-region]{position:relative;min-height:90px}
.pagination-loading{position:absolute;z-index:8;inset:0;display:none;align-items:center;justify-content:center;gap:10px;background:#fffffff0;color:#4d6658;font-size:12px;font-weight:600;pointer-events:auto}
[data-paginated-region].is-loading>.pagination-loading{display:flex}
.pagination-spinner{width:25px;height:25px;border:3px solid #cfe0d6;border-top-color:var(--green);border-radius:50%;animation:pagination-spin .7s linear infinite}
@keyframes pagination-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.pagination-spinner{animation-duration:1.4s}}
@media print{.pagination-loading{display:none!important}}

/* Paginación numérica reutilizable para saltar directamente entre páginas. */
.pagination{align-items:center;gap:18px}
.pagination>.pagination-pages{display:flex;align-items:center;justify-content:flex-end;gap:4px;flex-wrap:wrap}
.pagination-button{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:1px solid #d8e1dc;border-radius:5px;background:#fff;color:#496255;font-size:9px;font-weight:650;line-height:1;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s}
a.pagination-button:hover,a.pagination-button:focus-visible{border-color:#7cac91;background:#f1f8f4;color:var(--green)}
.pagination-button.selected{border-color:var(--green);background:var(--green);color:#fff}
.pagination-button.is-disabled{background:#f7f9f8;color:#bec8c2}
.pagination-direction svg{width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.pagination-ellipsis{display:inline-grid;place-items:center;width:16px;height:26px;color:#87968d;font-size:9px;font-weight:700}
@media(max-width:760px){.pagination{align-items:flex-start;flex-direction:column}.pagination>.pagination-pages{justify-content:flex-start}.pagination-button{width:26px;height:26px}.pagination-ellipsis{height:26px}}

/* Licencia local por lotificación */
.licencia-panel{overflow:hidden}.licencia-contenido{display:grid;gap:22px;padding:26px}.licencia-estado{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:16px 18px;border:1px solid #eadbb6;border-radius:10px;background:#fff9ed}.licencia-estado.es-valida{border-color:#cae4d4;background:#f2faf5}.licencia-estado span,.licencia-estado strong{display:block}.licencia-estado span{margin-bottom:4px;color:#8a7548;font-size:9px;font-weight:750;letter-spacing:.8px;text-transform:uppercase}.licencia-estado.es-valida span{color:#39765a}.licencia-estado strong{color:#3f4b45;font-size:13px}.licencia-estado small{white-space:nowrap}.licencia-resumen{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.licencia-resumen article{min-height:112px;padding:17px 18px;border:1px solid var(--line);border-radius:10px;background:#fbfcfb}.licencia-resumen span,.licencia-resumen strong,.licencia-resumen small{display:block}.licencia-resumen span{margin-bottom:10px;color:#819087;font-size:9px;font-weight:700;letter-spacing:.65px;text-transform:uppercase}.licencia-resumen strong{margin-bottom:7px;color:#2d493c;font-size:12px;line-height:1.5}.licencia-resumen small{line-height:1.45}.licencia-aviso{display:grid;gap:4px;margin:0}.licencia-aviso span{margin:0!important}.licencia-seccion{min-width:0;padding:20px;border:1px solid #e2e9e5;border-radius:10px;background:#fff}.licencia-seccion-titulo{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:14px}.licencia-seccion-titulo>div>span{display:block;margin-bottom:4px;color:var(--green);font-size:8px;font-weight:750;letter-spacing:.9px;text-transform:uppercase}.licencia-seccion-titulo h2{margin:0;font-size:15px}.licencia-seccion-titulo p{max-width:460px;margin:0;color:var(--muted);font-size:10px;text-align:right}.licencia-seccion label{display:block;margin:0 0 6px;font-size:10px;font-weight:650;color:#51645a}.licencia-seccion textarea{display:block;width:100%;margin:0 0 7px;padding:12px 14px!important;border-color:#dce5df;background:#fbfcfb;line-height:1.55;resize:vertical}.licencia-codigo{font-family:Consolas,'Courier New',monospace;font-size:11px;overflow-wrap:anywhere}.licencia-informacion{font-size:11px}.licencia-instalacion{padding:0 26px 26px;border-top:1px solid var(--line)}.licencia-instalacion>.licencia-seccion{margin-top:22px}.licencia-instalacion .form-footer{margin:0;padding:18px 0 0;border:0}.licencia-instalacion .button{min-width:150px}
@media(max-width:1000px){.licencia-resumen{grid-template-columns:1fr 1fr}.licencia-resumen article:last-child{grid-column:1 / -1}}
@media(max-width:760px){.licencia-contenido{gap:16px;padding:18px}.licencia-instalacion{padding:0 18px 18px}.licencia-estado,.licencia-seccion-titulo{align-items:flex-start;flex-direction:column}.licencia-estado small{white-space:normal}.licencia-resumen{grid-template-columns:1fr}.licencia-resumen article:last-child{grid-column:auto}.licencia-seccion{padding:16px}.licencia-seccion-titulo{gap:6px}.licencia-seccion-titulo p{text-align:left}.licencia-instalacion .button{width:100%}}

/* Inventario: filtros a la izquierda y selección de venta en el espacio disponible. */
.catalogo-lotes-state-actions{display:flex;align-items:center;gap:18px;padding:0 23px 14px;border-bottom:1px solid var(--line)}.catalogo-lotes-state-actions .report-state-filters{flex:0 0 auto;padding:0;border:0}.catalogo-lotes-state-actions .sale-selection-toolbar{min-width:0;margin-left:auto;padding:0}@media(max-width:1200px){.catalogo-lotes-state-actions{flex-wrap:wrap}.catalogo-lotes-state-actions .sale-selection-toolbar{margin-left:0;flex-basis:100%;justify-content:flex-end}}@media(max-width:760px){.catalogo-lotes-state-actions{padding:0 17px 12px;gap:12px}.catalogo-lotes-state-actions .sale-selection-toolbar{justify-content:flex-start}}

/* Los datos secundarios de los registros conservan la misma jerarquía visual que el dato principal. */
.table-wrap td>small{font-size:inherit;line-height:inherit;color:var(--ink);margin-top:4px}

/* Comprobantes: detalle legible y separadores únicamente entre secciones. */
.receipt .receipt-applications th{border-bottom:1px dashed #b9c4bb}.receipt .receipt-applications td{border-bottom:0;color:#202020}.receipt .receipt-applications td small{margin-top:2px;font-size:inherit;line-height:inherit;color:#202020}.receipt .receipt-total{border-top:0}.receipt .receipt-payment-heading{border-top:1px dashed #b9c4bb;padding-top:8px}.receipt .receipt-payment-list{padding-bottom:8px;border-bottom:1px dashed #b9c4bb}.receipt .receipt-balance-summary{border-bottom:1px dashed #b9c4bb}.receipt-notes{margin-top:8px;padding-top:0}.receipt-notes p{margin:0 0 4px}.receipt-notes p:last-child{margin-bottom:0}

/* El bloque operativo del comprobante usa una sola jerarquía tipográfica. */
.receipt .receipt-details p,.receipt .receipt-applications th,.receipt .receipt-applications td,.receipt .receipt-applications td small,.receipt .receipt-total,.receipt .receipt-payment-heading,.receipt .receipt-method,.receipt .receipt-method small,.receipt .receipt-balance-summary p,.receipt .receipt-balance-summary span,.receipt .receipt-balance-summary strong,.receipt-notes,.receipt-notes p{font-size:10px;line-height:1.35;color:#202020}.receipt .receipt-applications td small,.receipt .receipt-method small{color:inherit}.receipt .receipt-balance-summary p{color:#202020}

/* El separador se traslada después de las observaciones cuando existen. */
.receipt .receipt-payment-list.with-notes{border-bottom:0!important}.receipt .receipt-notes{padding-bottom:8px;border-bottom:1px dashed #b9c4bb}

/* Venta conjunta: acciones agrupadas a la derecha y alta de cliente dentro del buscador. */
.sale-selection-toolbar{justify-content:flex-end;gap:10px}.sale-selection-toolbar .sale-selection-count{margin-left:auto;color:#d76400;font-size:13px;font-weight:700;white-space:nowrap}.customer-search-control.customer-search-can-create{grid-template-columns:auto minmax(0,1fr)}.customer-search-can-create .customer-search-input-wrap{order:2}.customer-search-can-create .customer-search-input-wrap input{border-radius:0 6px 6px 0!important}.customer-search-can-create .customer-search-add{display:grid;place-items:center;order:1;width:40px;height:34px;min-height:34px;margin:0;border:0;border-right:1px solid #d8e1dc;border-radius:6px 0 0 6px;background:#f2f8f4;color:#287a54;transition:background-color .15s,color .15s}.customer-search-can-create .customer-search-add:hover,.customer-search-can-create .customer-search-add:focus-visible{background:#287a54;color:#fff}.customer-search-can-create .customer-search-add svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}@media(max-width:760px){.sale-selection-toolbar .sale-selection-count{margin-left:0;white-space:normal;flex-basis:100%}}

/* Caja: el criterio conserva exactamente la primera columna de la línea de formas de pago. */
.payment-observation-grid{display:grid;grid-template-columns:calc(28.571429% - 20.857143px) minmax(0,1fr);gap:12px;align-items:start}.payment-observation-grid--single{grid-template-columns:1fr}.payment-observation-grid label{margin-top:14px}.payment-observation-field textarea{box-sizing:border-box;height:34px;min-height:34px;resize:vertical}@media(max-width:1250px){.payment-observation-grid:not(.payment-observation-grid--single){grid-template-columns:1fr 1fr}}@media(max-width:900px){.payment-observation-grid{grid-template-columns:1fr}}
