:root{--accent:#02dec9;--accent-hover:#00bfae;--accent-active:#2cc3b7;--ink:#16373d;--muted:#7a9294;--bg:#f5f9f9;--panel:#fff;--line:#e4eeee;--red:#d94755;--red-hover:#bd3343;--shadow:0 10px 38px rgba(20,85,88,.045);--radius:15px;--sidebar:#092e34;--sidebar-muted:#91adb0;--focus:0 0 0 3px rgba(2,222,201,.25)}
*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:14px}body{margin:0;background:var(--bg);color:var(--ink);line-height:1.5}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled,.btn:disabled{background:#eee!important;color:#6a6a6a!important;border-color:#eee!important;cursor:not-allowed;box-shadow:none!important;opacity:.85}input,select,textarea{max-width:100%}h1,h2,h3,p{margin:0}h1{font-size:clamp(24px,2.8vw,31px);line-height:1.25;letter-spacing:-.8px}h2{font-size:17px;letter-spacing:-.2px}p{color:var(--muted)}small{font-size:11px}.shell{min-height:100vh}.sidebar{width:252px;position:fixed;inset:0 auto 0 0;background:var(--sidebar);color:#f8ffff;padding:26px 14px;overflow:auto;z-index:60;display:flex;flex-direction:column}.brand{padding:5px 12px 24px;display:flex;gap:12px;align-items:center;border-bottom:1px solid rgba(255,255,255,.09)}.brand-mark,.auth-logo{height:44px;width:44px;display:grid;place-items:center;background:var(--accent);color:#064348;font-weight:900;border-radius:12px;letter-spacing:-1px;font-size:17px}.brand strong{font-size:14px;display:block;letter-spacing:-.2px}.brand small{color:#a4c4c2;display:block;letter-spacing:1px}.sidebar-section{font-size:10px;color:var(--sidebar-muted);letter-spacing:1.2px;font-weight:800;margin:23px 12px 8px}.nav-link{color:#b5cbcc;display:flex;align-items:center;gap:12px;border-radius:10px;padding:10px 13px;margin:2px 0;transition:.18s ease;font-weight:550}.nav-link:hover,.nav-link.active{background:rgba(2,222,201,.12);color:#dffffa}.nav-link.active{box-shadow:inset 3px 0 var(--accent)}.nav-icon{width:20px;text-align:center;font-size:18px;color:#52cfc5}.sidebar-bottom{margin-top:auto;padding:23px 12px 3px;font-size:11px;color:#b3cbcb;display:flex;align-items:center;gap:8px}.status-dot{height:7px;width:7px;border-radius:50%;background:var(--accent)}.page-container{margin-left:252px;min-width:0}.topbar{height:76px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 34px;gap:12px;position:sticky;top:0;z-index:30}.topbar-brand{display:flex;flex-direction:column}.topbar-brand strong{font-size:12px;letter-spacing:1.5px}.topbar-brand span{font-size:11px;color:var(--muted)}.topbar-actions{display:flex;align-items:center;gap:12px}.user-chip{background:#eaf7f6;border-radius:40px;padding:7px 13px;color:#316466;font-size:12px}.content{padding:34px;max-width:1610px;margin:0 auto}.page-heading{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap;margin-bottom:26px}.page-heading p{margin-top:7px}.eyebrow{font-size:10px;letter-spacing:2px;color:#02a99e;font-weight:800;margin-bottom:9px}.page-actions,.actions,.form-actions,.export-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.page-actions form{display:inline-flex}.btn,.btn-icon{display:inline-flex;justify-content:center;align-items:center;gap:8px;vertical-align:middle;white-space:nowrap;text-align:center;font-weight:700;text-decoration:none;transition:background .15s ease,border .15s ease,box-shadow .15s ease,transform .15s ease;user-select:none}.btn{border-radius:9px;padding:0 19px;height:43px;min-width:98px;border:1px solid transparent}.btn:focus-visible,.btn-icon:focus-visible,.form-input:focus-visible{outline:none;box-shadow:var(--focus)}.btn:active,.btn-icon:active{transform:translateY(1px);background:var(--accent-active)}.btn-primary{background:var(--accent);color:#064747;border-color:var(--accent)}.btn-primary:hover{background:var(--accent-hover);color:white;border-color:var(--accent-hover);box-shadow:0 5px 13px rgba(0,177,165,.15)}.btn-outline{background:white;color:#00a99d;border:1px solid #26c5b7}.btn-outline:hover{background:#e9fffb;border-color:var(--accent-hover)}.btn-danger{color:white;background:var(--red);border-color:var(--red)}.btn-danger:hover{background:var(--red-hover)}.btn-sm{height:35px;padding:0 13px;font-size:12px;min-width:0}.btn-icon{height:34px;min-width:34px;width:34px;border-radius:9px;border:1px solid #1fc3b8;font-size:17px;font-weight:700;background:white;color:#04ad9c}.btn-icon:hover{background:#ebfffc;border-color:#0ea99b}.btn-danger-outline{color:#d94e5b;border:1px solid #efc4c9}.btn-danger-outline:hover{background:#fff0f1;border-color:#d94e5b}.mobile-toggle{display:none}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-bottom:20px}.stats-grid.stats-3{grid-template-columns:repeat(3,minmax(0,1fr))}.stat{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);padding:22px;border-radius:var(--radius);min-width:0;display:flex;flex-direction:column;gap:9px;align-items:flex-start}.stat small{color:var(--muted);font-size:12px;font-weight:600}.stat strong{font-size:27px;letter-spacing:-.8px;line-height:1.2;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.stat strong.stat-word{font-size:20px}.tag{display:inline-flex;border-radius:30px;padding:4px 10px;font-size:11px;font-weight:750;white-space:nowrap}.tag-good{background:#dff8f2;color:#16806b}.tag-info{background:#e2f8fc;color:#127a8d}.tag-warn{background:#fff5da;color:#8b681a}.tag-neutral{background:#eef4f4;color:#647d80}.tag-danger{background:#feecef;color:#b73f4c}.split-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:20px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:23px;margin-bottom:20px;box-shadow:var(--shadow);min-width:0}.panel h2{margin-bottom:10px}.panel>p{margin:8px 0}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.panel-heading h2{margin:0}.panel-heading p{font-size:12px;margin-top:5px}.money-line,.detail-row{display:flex;align-items:flex-start;justify-content:space-between;border-bottom:1px solid var(--line);padding:13px 0;gap:14px}.money-line span,.detail-row span{color:var(--muted)}.detail-row strong{font-weight:650;text-align:right;overflow-wrap:anywhere;max-width:67%}.money-line strong{font-variant-numeric:tabular-nums}.muted-note{font-size:12px;margin-top:16px}.reconcile-overview{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0 23px}.reconcile-overview>div{background:#eefbf9;padding:20px;border-radius:11px}.reconcile-overview strong{display:block;font-size:30px}.reconcile-overview span{color:var(--muted);font-size:12px}.table-wrap{overflow:auto;width:100%}table{border-collapse:collapse;width:100%;font-size:12.5px}th{text-align:left;background:#f5faf9;color:#6e8d90;font-size:11px;text-transform:uppercase;letter-spacing:.55px;padding:13px 12px;white-space:nowrap}td{border-top:1px solid var(--line);padding:13px 12px;white-space:nowrap}td .tag{font-size:10px}tr:hover td{background:#fbfefd}.numeric{font-variant-numeric:tabular-nums}.text-link{color:#04b8a8;font-weight:700}.text-link:hover{text-decoration:underline}.empty{text-align:center;padding:36px;color:#8da4a5}.toolbar{display:flex;align-items:center;gap:11px;flex-wrap:wrap;margin-bottom:20px}.toolbar .form-input{width:auto;min-width:220px;max-width:350px;flex:1}.inline-label{display:flex;align-items:center;gap:7px;font-weight:700}.inline-label .form-input{min-width:160px}.export-actions{padding:10px 0}.code-chip{font-size:11px;font-weight:800;letter-spacing:1px;background:#e4fbf6;color:#167e74;border-radius:6px;padding:5px 9px}.form-panel{max-width:820px}.form-panel.wide{max-width:1000px}.form-stack{display:flex;flex-direction:column;gap:18px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.field{display:flex;flex-direction:column;gap:7px;min-width:0}.field label,.form-stack>label{font-size:12px;font-weight:740;color:#335457}.field-check{flex-direction:row;align-items:center;justify-content:flex-start}.field-check label{order:2}.form-input{width:100%;height:43px;border:1px solid #d6e5e4;border-radius:9px;padding:9px 12px;color:var(--ink);background:#fff;outline:none;transition:border-color .16s,box-shadow .16s}.form-input:hover{border-color:#95cfc9}.form-input:focus{border-color:var(--accent-hover);box-shadow:var(--focus)}textarea.form-input{height:auto;min-height:86px;resize:vertical}.form-check{width:18px;height:18px;accent-color:var(--accent-hover)}.req,.error-text{color:#d44958}.error-text{font-size:11px}.hint{font-size:11px;color:var(--muted)}.wide-field{grid-column:1/-1}.form-actions{justify-content:flex-end;border-top:1px solid var(--line);padding-top:19px}.autocomplete{position:relative}.autocomplete-results{display:none;position:absolute;z-index:30;top:calc(100% - 14px);left:0;right:0;max-height:230px;overflow-y:auto;background:#fff;border:1px solid #b1dcd7;border-radius:10px;box-shadow:0 10px 23px rgba(6,55,55,.14)}.autocomplete-results.show{display:block}.suggestion{border:0;display:block;width:100%;padding:11px 13px;text-align:left;background:white;color:var(--ink);font-size:12px}.suggestion:hover,.suggestion:focus{background:#e9fbf8}.help-banner{background:#edfbf7;border:1px solid #c9eae4;border-radius:10px;padding:15px 16px;color:#477c78;font-size:12px}.help-banner strong{color:#0a746e}.code-example{font-family:ui-monospace,SFMono-Regular,monospace;font-size:12px;line-height:2;background:#12383d;color:#dcfff7;border-radius:10px;padding:15px;overflow:auto}.big-number{font-size:32px;margin-top:20px;font-weight:800}.big-number small{font-weight:500;color:var(--muted)}.danger-line{font-size:12px;color:#bd3b49;margin:15px 0}.danger-line a:hover{text-decoration:underline}.alert{padding:13px 17px;border-radius:10px;font-size:12px;margin-bottom:12px;font-weight:600}.alert-success{background:#e1f8ec;color:#0e8565}.alert-error,.alert-danger{background:#ffedef;color:#b73f4c}.alert-warn,.alert-warning{background:#fff5e2;color:#946922}.alert-info{background:#e3faff;color:#24778b}.flash-stack{margin-bottom:20px}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:radial-gradient(circle at 15% 20%,#dcfaf3,transparent 37%),radial-gradient(circle at 80% 90%,#dcf7f6,transparent 36%),#f8fbfa}.auth-card{background:#fff;border:1px solid #deeeeb;box-shadow:0 24px 65px rgba(6,62,65,.11);border-radius:20px;padding:37px;width:100%;max-width:420px}.auth-logo{width:53px;height:53px;margin-bottom:25px}.auth-card h1{margin-bottom:8px}.auth-card>p{margin-bottom:23px}.auth-card .form-stack{gap:11px}.auth-card label{font-size:12px;font-weight:700}.auth-card .full{width:100%;margin-top:15px}.auth-card .small-note{text-align:center;margin:20px 0 0;font-size:10px}.sidebar-scrim{display:none}
@media(min-width:1500px){.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1100px){.sidebar{width:230px}.page-container{margin-left:230px}.content{padding:26px}.topbar{padding:0 26px}.stat strong{font-size:22px}}
@media(max-width:900px){.sidebar{transform:translateX(-104%);transition:transform .2s;width:262px}.sidebar.open{transform:translateX(0)}.sidebar-scrim.open{display:block;position:fixed;inset:0;background:rgba(5,38,43,.4);z-index:50}.page-container{margin-left:0}.mobile-toggle{display:inline-flex}.topbar{height:67px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.topbar{padding:0 14px;gap:7px}.topbar-brand strong{font-size:10px;letter-spacing:1px}.topbar-brand span{font-size:9px}.user-chip{display:none}.content{padding:19px 13px}.page-heading{gap:14px;align-items:start}.page-heading .page-actions{width:100%}.page-actions .btn{flex:1}.stats-grid,.stats-grid.stats-3,.split-grid{grid-template-columns:1fr}.stat{padding:19px}.stat strong{font-size:25px}.panel{padding:17px}.form-grid{grid-template-columns:1fr}.wide-field{grid-column:auto}.btn{height:42px;padding:0 13px;font-size:12px}.toolbar .form-input{min-width:0;max-width:none;width:100%;flex:auto}.toolbar .btn{flex:1}.form-actions{justify-content:stretch}.form-actions .btn{flex:1}.panel-heading{align-items:start;flex-wrap:wrap}.inline-label{width:100%;justify-content:space-between}.inline-label .form-input{flex:1}.export-actions .btn{width:100%}}

.inline-button{border:0;background:transparent;padding:0 4px;font:inherit;cursor:pointer}.quick-dialog{border:1px solid #c5e7e3;background:white;border-radius:18px;box-shadow:0 25px 80px rgba(4,51,53,.25);padding:26px;width:min(440px,calc(100vw - 34px));color:var(--ink)}.quick-dialog::backdrop{background:rgba(2,35,39,.5)}.quick-dialog p{font-size:12px}.quick-dialog .form-stack{gap:15px}

/* V2 · Diseño global del sistema, botones con estados compatibles con la referencia. */
:root{--sidebar-expanded:252px;--sidebar-compact-width:78px}
.topbar{transition:none;min-width:0}.topbar-left{display:flex;align-items:center;gap:12px;min-width:0}.topbar-brand{white-space:nowrap}.sidebar{overflow-x:hidden;scrollbar-width:thin;scrollbar-color:rgba(102,226,215,.3) transparent}
.sidebar-head{position:relative;display:flex;align-items:center;margin-bottom:12px;min-height:57px}.sidebar-head .brand{min-width:0;flex:1;padding:5px 35px 14px 7px;overflow:hidden;white-space:nowrap}.sidebar-head .brand-mark{flex-shrink:0}.sidebar-head .brand strong{font-size:12px}.sidebar-head .brand small{font-size:10px}.sidebar-collapse{position:absolute;right:0;top:8px;min-width:27px;width:27px;height:30px;border-color:rgba(143,211,206,.36);background:rgba(255,255,255,.07);color:#d5fffa}.sidebar-collapse:hover{background:rgba(2,222,201,.19);color:white}.collapse-chevron{font-size:12px;line-height:1}.nav-link{min-height:41px;white-space:nowrap}.nav-link .sidebar-text{display:block}.nav-link.active{box-shadow:inset 3px 0 var(--accent);background:rgba(2,222,201,.16)}.nav-link:active,.topbar .btn:active,.sidebar .btn-icon:active{transform:none!important}
.sidebar-compact .sidebar{width:var(--sidebar-compact-width)}.sidebar-compact .page-container{margin-left:var(--sidebar-compact-width)}.sidebar-compact .sidebar-head{flex-direction:column;gap:8px;min-height:83px}.sidebar-compact .sidebar-head .brand{padding:4px 0;border:0;flex:initial;align-self:center}.sidebar-compact .sidebar-head .brand .brand-mark{width:39px;height:39px}.sidebar-compact .sidebar-collapse{position:static;width:31px;transform:none}.sidebar-compact .collapse-chevron{display:inline-block;transform:rotate(180deg)}.sidebar-compact .sidebar-section{font-size:0;height:1px;padding:0;margin:16px 8px 9px;border-top:1px solid rgba(255,255,255,.15)}.sidebar-compact .sidebar-text{display:none}.sidebar-compact .nav-link{width:49px;margin:3px auto;justify-content:center;padding:10px 0}.sidebar-compact .nav-icon{font-size:20px}.sidebar-compact .sidebar-bottom{justify-content:center;padding:18px 0 8px}
.btn{border-radius:10px;min-width:0}.btn-icon{border-radius:10px}.btn:hover,.btn-icon:hover{filter:saturate(1.06)}.btn-outline{border-color:#26c5b7}.btn-danger-outline{color:#d94e5b;border-color:#e4a6ad}.btn:active,.btn-icon:active{transform:none}
.catalog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:19px;align-items:start}.catalog-quick-form{display:flex;gap:9px;margin-bottom:15px}.catalog-quick-form .form-input{flex:1;min-width:0}.catalog-list{max-height:420px;overflow:auto}.catalog-item{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:9px 3px;border-bottom:1px solid var(--line);word-break:break-word}.catalog-item .actions{flex-shrink:0}
.installment-head{margin-top:9px}.installment-head p{font-size:12px;margin-top:5px}.installment-list{display:flex;flex-direction:column;gap:10px}.installment-row{display:grid;grid-template-columns:48px 1fr 1fr;gap:13px;align-items:center;background:#f7fbfb;border:1px solid #e1eeec;border-radius:11px;padding:12px 14px}.installment-index{height:33px;width:33px;border-radius:50%;display:grid;place-items:center;background:#dffaf5;color:#0b8377;font-weight:800}.installment-row .field span{font-size:11px;font-weight:700;color:#51777b}.installment-row .field{gap:5px}.plan-total{display:flex;align-items:center;gap:14px;justify-content:flex-end;flex-wrap:wrap;font-size:13px}.plan-total strong{font-size:23px}.plan-total>span:last-child{color:var(--muted)}.alert-warning{background:#fff5e2;color:#8b681a}
@media(max-width:1100px){.sidebar-compact .page-container{margin-left:var(--sidebar-compact-width)}}
@media(max-width:900px){.sidebar-compact .sidebar,.sidebar{width:262px}.sidebar-compact .sidebar{transform:translateX(-104%)}.sidebar-compact .sidebar.open,.sidebar.open{transform:translateX(0)}.sidebar-compact .page-container,.page-container{margin-left:0}.sidebar-compact .sidebar-text{display:block}.sidebar-compact .sidebar-head{flex-direction:row;min-height:57px}.sidebar-compact .sidebar-head .brand{flex:1;padding:5px 35px 14px 7px;border-bottom:1px solid rgba(255,255,255,.09)}.sidebar-compact .sidebar-collapse{display:none}.sidebar-collapse{display:none}.sidebar-compact .sidebar-section{font-size:10px;height:auto;border:0;margin:23px 12px 8px}.sidebar-compact .nav-link{width:auto;margin:2px 0;justify-content:flex-start;padding:10px 13px}.sidebar-compact .sidebar-bottom{justify-content:flex-start;padding:23px 12px 3px}.sidebar-compact .sidebar-head .brand .brand-mark{width:44px;height:44px}.nav-mobile-open{overflow:hidden}}
@media(max-width:700px){.catalog-grid{grid-template-columns:1fr}.catalog-quick-form{flex-wrap:wrap}.installment-row{grid-template-columns:33px 1fr 1fr;gap:9px;padding:9px}.installment-row .form-input{height:39px;padding:7px 6px;font-size:12px}.installment-index{width:28px;height:28px}}

.pagination{display:flex;justify-content:center;align-items:center;gap:18px;margin:20px 0 3px;color:var(--muted);font-size:12px}.pagination .btn{min-width:95px}

/* UI v3: iconografía vectorial y tooltips accesibles sin CDNs. */
.ui-svg-sprite{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
.ui-icon{width:18px;height:18px;display:inline-block;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.85;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}
.nav-icon{width:23px;height:23px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 23px}
.nav-icon .ui-icon{width:19px;height:19px}
.nav-link.active .nav-icon{color:var(--accent)}
.btn-icon .ui-icon{height:17px;width:17px}
.sidebar-collapse .ui-icon{height:15px;width:15px}
.ui-floating-tooltip{position:fixed;z-index:1000;pointer-events:none;background:#10383c;color:#fff;padding:6px 9px;border-radius:7px;font-size:11px;line-height:1.25;box-shadow:0 5px 16px rgba(8,35,39,.18);max-width:225px;white-space:normal;font-weight:550;text-align:center}
.ui-floating-tooltip[hidden]{display:none!important}
.report-filter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:25px}
.report-column-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:13px;flex-wrap:wrap}
.report-column-heading p{font-size:12px;margin-top:4px}
.report-selection-actions{display:flex;gap:8px;flex-wrap:wrap}
.report-column-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.report-group{border:1px solid var(--line);border-radius:12px;min-width:0;padding:13px 14px 15px;margin:0;background:#fcfefe}
.report-group legend{font-size:12px;font-weight:800;color:#117a75;padding:0 5px}
.report-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 13px}
.report-check{display:flex;align-items:center;gap:8px;min-width:0;font-size:12px;cursor:pointer;color:#385b60}
.report-check input{width:16px;height:16px;accent-color:#08bdaa;flex:0 0 16px}
.report-check span{overflow-wrap:anywhere}
.report-form-bottom{display:flex;justify-content:space-between;align-items:center;gap:13px;flex-wrap:wrap;border-top:1px solid var(--line);margin-top:20px;padding-top:15px}
.report-form-bottom .export-actions{padding:0}
.report-validation{font-size:12px;color:var(--red);margin-top:10px;font-weight:700}
.report-table-wrap{max-height:650px}
.report-preview{min-width:max-content}
.report-preview th{position:sticky;top:0;z-index:1}
.report-preview td{max-width:320px;overflow:hidden;text-overflow:ellipsis}
.recon-filter-form{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-bottom:0}
.recon-filter-form .field{flex:1 1 140px;min-width:125px}
.recon-filter-form .btn{margin-bottom:0}
.recon-actions-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line);margin-top:17px;padding-top:16px}
.recon-actions-row form{display:inline-flex}
@media(max-width:1000px){.report-column-groups{grid-template-columns:1fr}.report-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.report-filter-grid{grid-template-columns:1fr}.report-checks{grid-template-columns:1fr}.report-form-bottom .export-actions{width:100%}.report-form-bottom .btn{flex:1 1 auto}.recon-filter-form{align-items:stretch}.recon-filter-form .field{flex:1 1 100%}.recon-filter-form .btn{flex:1 1 auto}}

/* Cobros y acciones V4: variantes globales reutilizables. */
[hidden]{display:none!important}
.btn-icon.btn-money{color:#fff;background:#14b9aa;border:1px solid #14b9aa;font-size:17px;font-weight:800}
.btn-icon.btn-money:hover{background:#069f91;border-color:#069f91;box-shadow:0 4px 10px rgba(0,168,151,.16)}
.btn-icon.btn-money .ui-icon{width:17px;height:17px}
.actions-nowrap{flex-wrap:nowrap;gap:6px;justify-content:flex-start}
.sort-header{color:inherit;text-decoration:none;white-space:nowrap;display:inline-flex;align-items:center;gap:5px}
.sort-header:hover{color:#00a99d}
.toolbar-invoices{display:flex;flex-wrap:wrap;gap:9px;align-items:center}
.toolbar-invoices input[type="search"]{flex:1 1 175px;min-width:145px}
.toolbar-invoices select{flex:0 1 148px;min-width:115px}
.toolbar-invoices .btn{flex:0 0 auto}
.invoice-suggestion{display:flex;flex-direction:column;align-items:flex-start;gap:3px}
.invoice-suggestion small{font-size:11px;color:#607f80}
.overdue-note{display:block;color:#bd4650;font-size:10px;white-space:nowrap;margin-top:5px}
@media(max-width:650px){.toolbar-invoices input[type="search"],.toolbar-invoices select{flex:1 1 100%;min-width:0}.toolbar-invoices .btn{flex:1 1 auto}}

.plan-secondary-state{display:block;color:#647d80;font-size:10px;white-space:nowrap;margin-top:5px}
/* Distribución de un ingreso bancario a varias facturas */
.receipt-allocation-table .allocation-value{width:138px;min-width:118px;text-align:right}
.receipt-distribution-summary{display:flex;align-items:stretch;justify-content:flex-end;gap:12px;flex-wrap:wrap;padding:16px 4px 0}
.receipt-distribution-summary>div{padding:12px 16px;min-width:150px;border:1px solid var(--line,#dae4e5);border-radius:12px;background:var(--surface,#f8fbfb)}
.receipt-distribution-summary small{display:block;opacity:.7;font-size:.75rem;margin-bottom:4px}
.receipt-distribution-summary strong{display:block;font-size:1.1rem;font-variant-numeric:tabular-nums}
.selected-invoices{border:1px solid var(--line,#dae4e5);border-radius:16px;padding:18px;margin:14px 0}
.selected-invoices .panel-heading{margin-bottom:12px}
@media (max-width:760px){.selected-invoices{padding:10px}.receipt-distribution-summary{justify-content:stretch}.receipt-distribution-summary>div{flex:1;min-width:110px;padding:10px}}

/* V6 · estado financiero de clientes y anulación rápida accesible. */
.btn-icon.btn-danger-solid{background:#ce3448;border:1px solid #ce3448;color:#fff;box-shadow:0 2px 6px rgba(206,52,72,.12)}
.btn-icon.btn-danger-solid:hover{background:#a92237;border-color:#a92237;box-shadow:0 4px 12px rgba(206,52,72,.21)}
.btn-icon.btn-danger-solid .ui-icon{width:17px;height:17px}
.client-filter-row{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin-bottom:17px}
.client-filter-pill{display:inline-flex;align-items:center;gap:7px;background:#fff;border:1px solid #ddeae9;border-radius:999px;padding:8px 12px;font-size:12px;color:#3f6468;text-decoration:none;transition:border-color .16s,background .16s}
.client-filter-pill:hover{border-color:#43caba;background:#f1fbf9}
.client-filter-pill.is-selected{border-color:#0cbbaa;background:#e5faf6;color:#086c65;box-shadow:0 0 0 1px rgba(12,187,170,.09)}
.client-filter-pill strong{font-size:11px;border-radius:999px;background:#eff4f4;padding:2px 7px;color:#225e63;font-variant-numeric:tabular-nums}
.client-dot{display:inline-block;flex:0 0 9px;width:9px;height:9px;border-radius:999px;background:#94a3a8;box-shadow:0 0 0 3px rgba(148,163,168,.12)}
.dot-all{background:#0aa6a2;box-shadow:0 0 0 3px rgba(10,166,162,.12)}
.dot-pendiente{background:#e05d52;box-shadow:0 0 0 3px rgba(224,93,82,.13)}
.dot-parcial{background:#eea43d;box-shadow:0 0 0 3px rgba(238,164,61,.14)}
.dot-financiado{background:#7972d7;box-shadow:0 0 0 3px rgba(121,114,215,.14)}
.dot-pagado{background:#19a486;box-shadow:0 0 0 3px rgba(25,164,134,.13)}
.dot-sin_facturas{background:#879da3}
.client-state{display:inline-flex;align-items:center;gap:8px;padding:5px 9px;border-radius:999px;border:1px solid #e5eeee;background:#f8fbfb;font-size:11px;font-weight:700;white-space:nowrap}
.client-state-pendiente{background:#fff2f0;color:#ae493f;border-color:#f7d6d1}
.client-state-parcial{background:#fff9eb;color:#937023;border-color:#f0e4c7}
.client-state-financiado{background:#f2f0ff;color:#6961bb;border-color:#e3dffc}
.client-state-pagado{background:#eafaf4;color:#147d66;border-color:#d7eee3}
.client-state-sin_facturas{background:#f4f7f8;color:#667e83}
.client-count{display:inline-flex;align-items:center;justify-content:center;min-width:27px;height:25px;border-radius:8px;padding:0 7px;background:#eff8f8;color:#0c8077;font-weight:800;font-size:12px}
.client-small-info{display:block;color:#6c658f;margin-top:5px;font-size:10px}
.client-balance-summary{display:flex;gap:10px;flex-wrap:wrap;margin:-5px 0 16px}
.client-balance-summary span{padding:8px 12px;border-radius:9px;background:#f3f8f8;border:1px solid #e4eceb;color:#587477;font-size:12px}
.client-balance-summary strong{color:#116f68;font-size:14px;font-variant-numeric:tabular-nums}
.allocation-value.allocation-zero{color:#7c9195;background:#f3f6f6}
.receipt-difference-error{color:#c85051!important}
@media(max-width:650px){.client-filter-row{gap:6px}.client-filter-pill{padding:7px 10px;font-size:11px}.client-balance-summary span{flex:1 1 120px}}

/* V7 · dashboards y conciliación integral. */
.dashboard-chart-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.85fr);gap:17px;margin:19px 0}
.dashboard-chart-panel{min-width:0}
.chart-key{display:flex;gap:16px;flex-wrap:wrap;font-size:11px;color:#537477;margin-bottom:10px}
.chart-key span{display:inline-flex;align-items:center;gap:6px}.chart-key-dot{display:inline-block;width:10px;height:10px;border-radius:3px}
.chart-invoiced{background:#1bbfac}.chart-received{background:#397fc9}.chart-paid{background:#eea64a}
.dashboard-chart-svg-container{width:100%;min-width:0;overflow-x:auto}
.dashboard-chart-svg{display:block;width:100%;min-width:480px;max-height:300px}
.chart-axis{stroke:#c1d9d7;stroke-width:1}.chart-gridline{stroke:#e8f1f0;stroke-width:1;stroke-dasharray:4 5}
.chart-tick{font-family:inherit;fill:#537477;font-size:12px;font-weight:600}
.chart-bar{transition:opacity .15s}.chart-bar:hover{opacity:.72}.chart-bar-invoiced{fill:#1bbfac}.chart-bar-received{fill:#397fc9}.chart-bar-paid{fill:#eea64a}
.invoice-donut-box{display:flex;justify-content:center;align-items:center;min-height:200px}
.invoice-donut{width:175px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;position:relative;background:conic-gradient(#19a486 0 var(--paid-pct),#e9aa43 var(--paid-pct) calc(var(--paid-pct) + var(--partial-pct)),#e05d52 calc(var(--paid-pct) + var(--partial-pct)) 100%)}
.invoice-donut:before{content:"";position:absolute;inset:22px;background:white;border-radius:50%}
.invoice-donut span{position:relative;display:flex;flex-direction:column;text-align:center}.invoice-donut strong{font-size:31px;line-height:1.15;color:#163b40}.invoice-donut small{font-size:11px;color:#67878a}
.invoice-donut-legend{display:flex;flex-direction:column;gap:10px}.invoice-donut-legend>div{display:flex;justify-content:space-between;border-bottom:1px solid #e6f0ee;padding-bottom:7px;font-size:12px;color:#567477}
.invoice-donut-legend>div span{display:inline-flex;align-items:center;gap:9px}.invoice-donut-legend strong{color:#183f43}
.recon-legend{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:13px 0 19px;font-size:11px;color:#54777a}.recon-legend span{display:inline-flex;align-items:center;gap:8px}
.recon-subnote{margin:12px 0 0;font-size:11px;color:#6a8184;line-height:1.65}
.recon-checkbox{display:inline-flex;gap:7px;align-items:center;font-size:12px;color:#426f71;white-space:nowrap}
.recon-checkbox input{accent-color:#0ebdaf;width:16px;height:16px}
.recon-export-form{display:inline-flex;gap:10px;align-items:center;flex-wrap:wrap}
.recon-status-list{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}
.recon-negative{color:#c25559}.recon-review-list{display:flex;flex-direction:column;gap:12px}
.recon-review-item{border:1px solid #e0eceb;border-radius:12px;padding:16px;background:#fbfefe;scroll-margin-top:85px}
.recon-review-item:target{border-color:#17c0b2;box-shadow:0 0 0 2px rgba(23,192,178,.12)}
.recon-review-main{display:flex;justify-content:space-between;align-items:start;gap:12px}
.recon-review-main h3{font-size:15px;margin:4px 0}.recon-review-main p{font-size:12px;color:#54797c}
.recon-review-amount{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.recon-review-amount strong{font-size:18px;font-variant-numeric:tabular-nums}
.recon-review-form{display:flex;align-items:flex-end;flex-wrap:wrap;gap:9px;margin-top:15px;border-top:1px solid #e5efed;padding-top:14px}
.recon-review-form .field{flex:1 1 185px;min-width:0}.recon-review-form .recon-note-field{flex:2 1 260px}
.recon-review-form .btn{flex-shrink:0}
@media(max-width:1050px){.dashboard-chart-grid{grid-template-columns:1fr}}
@media(max-width:680px){.recon-review-main{flex-wrap:wrap}.recon-review-amount{text-align:left;align-items:flex-start}.recon-review-form>.btn{width:100%}.invoice-donut-box{min-height:190px}}
.recon-invoice-parts{display:flex;flex-direction:column;gap:3px;padding:7px 0 0;min-width:155px}
.recon-invoice-parts small{display:block;color:#637f81;font-size:10px;line-height:1.35;white-space:normal}

/* V8 · Hoja de conciliación: diseño independiente, sin alterar los demás módulos */
.matrix-settings{background:#f7fcfb;border:1px solid #daebe7;border-radius:13px;padding:17px;margin-top:15px}
.matrix-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.matrix-controls .field span{font-size:11px;font-weight:700;color:#446e70}
.matrix-controls .field input{font-variant-numeric:tabular-nums}
.matrix-column-chooser{margin-top:14px;border-top:1px solid #daebe7;padding-top:11px}
.matrix-column-chooser summary{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:12px;font-weight:750;color:#247c76}
.matrix-column-checks{display:flex;gap:13px 20px;flex-wrap:wrap;padding:13px 0 7px}
.matrix-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:12px}
.matrix-save-form{display:flex;align-items:flex-end;gap:12px;margin:12px 0 16px;flex-wrap:wrap}
.matrix-notes-field{flex:1 1 240px}
.matrix-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0}
.matrix-kpi{padding:14px;border:1px solid #dcecea;border-radius:11px;background:#f9fdfc;display:flex;flex-direction:column;gap:6px;min-width:0}
.matrix-kpi small{color:#597e81;font-size:11px;font-weight:650}
.matrix-kpi strong{font-size:20px;font-weight:800;letter-spacing:-.5px;font-variant-numeric:tabular-nums;word-break:break-word}
.matrix-kpi-credit{background:#e8f3ff;border-color:#cde0fa}
.matrix-kpi-debit{background:#fff1f1;border-color:#f1d7d7}
.matrix-kpi-end{background:#e6f9f5;border-color:#bcdfd9}
.matrix-bank-note{font-size:11px;color:#5a777a;line-height:1.65;margin:10px 0}
.matrix-scroll{overflow:auto;max-width:100%;max-height:630px;overscroll-behavior:contain;border:1px solid #dce9e8;border-radius:12px;margin-top:17px}
.matrix-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:11px}
.matrix-table th,.matrix-table td{border-right:1px solid #dbe6e5;border-bottom:1px solid #dbe6e5;padding:9px 10px;vertical-align:middle;white-space:nowrap;font-variant-numeric:tabular-nums}
.matrix-table thead th{position:sticky;top:0;z-index:3;background:#0e4a50;color:#fff;text-align:center;font-size:10px}
.matrix-table thead tr:nth-child(2) th{top:32px}.matrix-table thead tr:nth-child(3) th{top:61px}
.matrix-table thead tr:nth-child(1){height:32px}.matrix-table thead tr:nth-child(2){height:29px}.matrix-table thead tr:nth-child(3){height:27px}
.matrix-table thead .matrix-h-credits{background:#b8d5f7;color:#164367}
.matrix-table thead .matrix-h-debits{background:#f8c5c8;color:#7c3b40}
.matrix-table thead .matrix-h-total-credit{background:#c8def9;color:#174c7b}
.matrix-table thead .matrix-h-total-debit{background:#f6d4d6;color:#7c3b40}
.matrix-table thead .matrix-h-balance{background:#eadbe5;color:#633d50}
.matrix-table tbody tr:nth-child(even){background:#f8fbfa}
.matrix-table tbody tr:hover{background:#eafbf7}
.matrix-table td.matrix-credit-cell{background:rgba(206,226,252,.42)}
.matrix-table td.matrix-debit-cell{background:rgba(255,214,216,.43)}
.matrix-table td.matrix-total-credit{background:#dbe9fd;font-weight:750}
.matrix-table td.matrix-total-debit{background:#f7dbdd;font-weight:750}
.matrix-table td.matrix-balance{background:#f1e6ed;font-weight:800}
.matrix-table td.matrix-person{font-weight:700;max-width:245px;overflow:hidden;text-overflow:ellipsis}
.matrix-table td.matrix-notes{max-width:250px;overflow:hidden;text-overflow:ellipsis}
.matrix-table td.matrix-num{text-align:right}
.matrix-table td:first-child{position:sticky;left:0;z-index:2;background:#fff;font-weight:800}
.matrix-table tbody tr:nth-child(even) td:first-child{background:#f8fbfa}
.matrix-table td a{color:#078e86;text-decoration:underline;text-underline-offset:3px}
@media(max-width:900px){.matrix-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.matrix-controls{grid-template-columns:1fr}.matrix-actions .btn{flex:1 1 100%}.matrix-save-form .btn{width:100%}.matrix-kpi strong{font-size:17px}}

/* V9 · conciliación rápida por casillas; no afecta reportes ni botones globales */
.recon-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.recon-check-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:18px 0}
.recon-check-stat{padding:18px 15px;border:1px solid #dbeae7;border-radius:14px;background:#fff;display:flex;flex-direction:column;gap:8px;min-width:0}
.recon-check-stat small{font-size:12px;color:#597b7d;font-weight:600}
.recon-check-stat strong{font-size:clamp(19px,2vw,25px);line-height:1.15;color:#143f42;white-space:nowrap}
.recon-check-green{border-color:#a9e8d6;background:#effbf7}
.recon-check-red{border-color:#f2cccb;background:#fff8f8}
.recon-check-table{min-width:1050px}
.recon-check-table th,.recon-check-table td{vertical-align:middle}
.recon-check-th,.recon-check-cell{text-align:center!important}
.recon-check-toggle{width:19px;height:19px;accent-color:#11baad;cursor:pointer;vertical-align:middle}
.recon-check-toggle:disabled{cursor:not-allowed;opacity:.65}
.recon-check-row.is-checked{background:#ebfaf6}
.recon-check-row.is-checked td:first-child{box-shadow:inset 3px 0 #13baaa}
.recon-check-footer{display:flex;align-items:end;justify-content:flex-end;gap:22px;flex-wrap:wrap;padding:19px 0 5px}
.recon-check-footer .field{flex:1;min-width:220px}
.recon-shortcuts{display:flex;gap:10px;flex-wrap:wrap;margin:19px 0}
.recon-check-table .btn-icon{display:inline-flex;margin-left:7px;vertical-align:middle}
@media(max-width:900px){.recon-check-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.recon-form-grid{grid-template-columns:1fr}}
@media(max-width:520px){.recon-check-stat{padding:12px 10px}.recon-check-stat strong{font-size:18px}.recon-check-summary{gap:8px}}

.recon-quick-context{display:flex;gap:12px;flex-wrap:wrap;margin:18px 0 4px;font-size:13px;color:#497477}.recon-quick-context span{background:#f4faf9;padding:10px 12px;border-radius:10px}.recon-quick-context strong{color:#0a5355}.recon-sync-form{margin:12px 0 4px;display:flex;justify-content:flex-end}

.recon-edit-metadata{display:grid;grid-template-columns:1fr 2fr;gap:14px;margin:16px 0}.recon-edit-metadata .field{min-width:0}@media(max-width:700px){.recon-edit-metadata{grid-template-columns:1fr}}

.recon-table-tools{display:grid;grid-template-columns:minmax(220px,2fr) minmax(145px,1fr);gap:12px;margin:16px 0}.recon-check-row[hidden]{display:none!important}@media(max-width:640px){.recon-table-tools{grid-template-columns:1fr}}

/* V10: conciliación compacta; resumen fijo y scroll solo en movimientos. */
.recon-sticky-panel{position:sticky;top:10px;z-index:12;padding:13px 14px 12px;border:1px solid #b6e8de;border-radius:14px;background:#fff;box-shadow:0 7px 22px rgba(10,67,67,.12);margin:15px 0 14px}
.recon-sticky-title{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;color:#10494a}
.recon-sticky-title small{color:#5d8082;font-size:11px}
.recon-sticky-panel .recon-check-summary{margin:11px 0 0;gap:9px}
.recon-sticky-panel .recon-check-stat{padding:12px;gap:5px;background:#f7fcfb}
.recon-sticky-panel .recon-check-stat strong{font-size:clamp(17px,1.7vw,22px)}
.recon-sticky-panel .recon-check-stat small{font-size:11px}
.recon-sticky-panel .recon-check-green{background:#e8faf4}
.recon-sticky-panel .recon-check-red{background:#fff6f3}
.recon-sticky-panel .recon-check-result{background:#e9f8f6;border-color:#56cbbd}
.recon-list-panel{margin-bottom:8px}
.recon-list-panel .recon-table-scroll{max-height:min(66vh,670px);overflow:auto;border:1px solid #e1eae9;border-radius:10px;overscroll-behavior:contain}
.recon-check-table thead th{position:sticky;top:0;z-index:2;background:#edf7f5;box-shadow:0 1px 0 #d1e4e1}
.recon-check-table td{white-space:nowrap}
.recon-check-row .numeric{font-weight:700}
.recon-positive{color:#0b9079}
.recon-negative{color:#c26649}
.recon-table-scroll:focus-visible{outline:2px solid #18b8a8;outline-offset:2px}
.recon-check-table .recon-invoice-parts{max-width:230px;white-space:normal}
@media(max-width:900px){.recon-sticky-panel{top:6px;padding:10px}.recon-list-panel .recon-table-scroll{max-height:57vh}.recon-sticky-panel .recon-check-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.recon-sticky-panel .recon-check-result{grid-column:1/-1}.recon-sticky-panel .recon-check-stat{padding:8px}.recon-sticky-panel .recon-check-stat strong{font-size:17px}}

/* V11 · Cuentas por cobrar: el estado oficial es Pendiente, no Parcial. */
.receivable-substatus{display:block;margin-top:4px;color:#7f9698;font-size:11px}

/* Distribución del dashboard según los tres estados de factura (sin estado Parcial). */
.invoice-donut{background:conic-gradient(#19a486 0 var(--paid-pct),#e05d52 var(--paid-pct) 100%)}

/* V12: asignación de cuotas y movimientos en varias partes */
.installment-box{padding:12px;background:#f4fbfa;border-left:3px solid #20c6b5;border-radius:10px;margin:4px 0}
.installment-title{display:flex;gap:8px;justify-content:space-between;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.installment-title small,.installment-card small{color:#647b86}
.installment-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:9px}
.installment-card{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #cde4e1;border-radius:10px;padding:8px 10px;background:#fff}
.installment-card span{display:grid;gap:3px}.installment-card input{width:95px;max-width:95px;text-align:right}
.installment-distribution-error{outline:2px solid #ea6c77}.payout-parts-table{min-width:1050px}
.payout-parts-table input[data-date-us]{min-width:140px}.payout-parts-table select{min-width:132px}
.payout-parts-table input[name*=notes]{min-width:180px}.payout-parts-table input[name*=receipt_number]{min-width:100px}
.text-danger{color:#b42f40}.text-success{color:#16806b}

.stats-grid.stats-4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1000px){.stats-grid.stats-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.stats-grid.stats-4{grid-template-columns:1fr}}

/* V15 · Concepto de cobro compacto y editable. */
.concept-field{display:flex;gap:8px;align-items:center;min-width:0}.concept-field .form-input{min-width:0;flex:1}.concept-field .btn{flex-shrink:0}@media(max-width:520px){.concept-field{flex-wrap:wrap}.concept-field .btn{width:100%}}

/* V16: los tipos de factura son azules/naranjas, independientes de estados. */
.tag-type-honorarios{background:#e6f0ff;color:#175bc2;border:1px solid #b6d3ff}
.tag-type-impuestos{background:#fff0dc;color:#b75c0b;border:1px solid #ffd4a1}
.recon-bank-openings{border:1px solid #dcebe8;border-radius:14px;padding:14px;background:#f7fcfb;margin:8px 0}
.recon-bank-openings h3{font-size:14px;margin:0 0 10px}
.recon-bank-opening-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:10px}
.recon-bank-item{background:#fff;border-radius:10px;border:1px solid #dfedeb;padding:10px}
.recon-bank-item .hint{display:block;margin-top:5px}
.recon-bank-overview{margin:14px 0 20px;overflow-x:auto}
.recon-bank-overview table{min-width:650px}
@media(max-width:620px){.recon-bank-opening-grid{grid-template-columns:1fr}}

/* V17: movimientos distintos de cobros y pagos, con color propio. */
.recon-linked-row{background:#f7f2ff}
.recon-linked-row.is-checked{background:#efe7ff}
.tag-adjustment{color:#6544ac;background:#eee8ff;border:1px solid #d5c7f5}
.linked-invoice-results{display:none;border:1px solid #d7e5e5;border-radius:10px;overflow:hidden;margin-top:6px;max-height:210px;overflow-y:auto}
.linked-invoice-results:not(:empty){display:block}
.linked-invoice-result{display:block;background:white;width:100%;border:0;border-bottom:1px solid #e2eded;text-align:left;padding:10px 12px;cursor:pointer;font:inherit;color:#245054}
.linked-invoice-result:hover,.linked-invoice-result:focus-visible{background:#e9f9f7}

/* Importación financiera: coherencia con paneles y formularios existentes. */
.import-guide,.import-results{margin-bottom:18px}
.import-instructions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:12px 20px 20px}
.import-instructions>div{border:1px solid #dcecea;border-radius:12px;padding:16px;background:#f8fcfb}
.import-instructions p{margin:7px 0 0;color:#526b70;font-size:.88rem;line-height:1.5}
.import-upload-form{display:flex;align-items:end;gap:12px;flex-wrap:wrap;padding:10px 20px 20px}
.import-file{flex:1 1 330px;max-width:560px}
.import-guide>.hint{display:block;margin:0;padding:0 20px 20px}
.import-stats{padding:8px 18px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.import-summary{padding:0 20px;color:#38575b}
.import-errors{margin:12px 20px 20px;padding:15px;border:1px solid #efb9b2;border-radius:12px;background:#fff6f4;color:#8f2d20}
.import-errors h3{margin:0 0 9px;font-size:1rem}
.import-errors ol{margin:0;padding-left:22px;max-height:330px;overflow:auto}
.import-errors li{padding:4px 0;overflow-wrap:anywhere}
.import-results .table-wrap{margin:10px 20px 8px}
.import-results>.hint{display:block;margin:0 20px 15px}
.import-confirm{display:flex;justify-content:space-between;gap:14px;align-items:center;border-top:1px solid #d7e7e4;padding:20px}
.import-confirm p{margin:5px 0 0;color:#526b70;font-size:.9rem}
@media(max-width:850px){.import-instructions{grid-template-columns:1fr}.import-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.import-confirm{flex-direction:column;align-items:stretch}.import-confirm button{width:100%}}


/* MM/DD/YYYY uniforme: texto editable + selector de calendario nativo. */
.date-us-wrap{display:inline-flex;position:relative;align-items:center;gap:6px;width:100%;min-width:0}
.date-us-wrap>.form-input{flex:1 1 auto;min-width:0;width:100%}
.date-us-pick{flex:0 0 37px;height:37px;border:1px solid #b9d5d3;border-radius:9px;background:#effaf8;color:#18565a;cursor:pointer;font:700 22px/1 sans-serif;display:grid;place-items:center}
.date-us-pick:hover,.date-us-pick:focus-visible{background:#d9f2ed;outline:2px solid transparent}
.date-us-native{position:absolute;right:0;top:0;width:35px;height:35px;opacity:0;pointer-events:none;z-index:-1}
.payout-parts-table .date-us-wrap{min-width:178px}

/* Estandar de listados: total filtrado, rango visible y numeracion continua. */
.list-record-counter{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;padding:10px 13px;margin:0 0 12px;background:#f7fbfb;border:1px solid #e3eeee;border-radius:10px;color:#41666a;font-size:12px}
.list-record-total{display:inline-flex;gap:6px;align-items:baseline;font-weight:650}
.list-record-total strong{font-variant-numeric:tabular-nums;color:#0a7770;font-size:15px}
.list-record-range{color:#648286;font-variant-numeric:tabular-nums}
.row-number{text-align:center;min-width:48px;font-variant-numeric:tabular-nums;color:#5f797d}
@media(max-width:650px){.list-record-counter{padding:9px 11px;gap:5px}.list-record-range{font-size:11px}.pagination{gap:9px;flex-wrap:wrap}.pagination .btn{min-width:80px}}

/* Paginación única para todos los listados; números y salto directo. */
.pagination-numbers{display:flex;flex-direction:column;gap:11px;margin:19px 0 4px;font-size:13px}
.pagination-pages{display:flex;justify-content:center;align-items:center;gap:5px;flex-wrap:wrap}
.page-number{display:inline-flex;justify-content:center;align-items:center;min-width:37px;height:37px;padding:0 9px;border:1px solid #c9e5e1;border-radius:9px;background:#fff;color:#20585b;font-size:13px;font-weight:700;line-height:1;transition:background .12s,border-color .12s}
.page-number:hover{background:#e4faf6;border-color:#13bda8;color:#116d68}
.page-number:focus-visible,.page-jump .form-input:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.page-number.is-current{border-color:#078f81;background:#0d756d;color:#fff;cursor:default}
.page-number.page-nav{font-size:20px;line-height:1}
.page-gap{padding:0 4px;font-weight:700;color:#69888b}
.page-jump{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;color:#5e797d;font-size:12px}
.page-jump .form-input{width:73px;height:35px;text-align:center;padding:5px;border-radius:8px;font-variant-numeric:tabular-nums}
.page-jump .btn{height:35px;min-width:45px}
@media(max-width:650px){.pagination-numbers{gap:10px}.pagination-pages{gap:4px}.page-number{min-width:34px;height:34px;padding:0 7px;font-size:12px}.page-jump{font-size:11px}}

/* Confirmaciones financieras: tamaño legible y controles compactos. */
.finance-action-dialog{max-width:540px;max-height:calc(100vh - 32px);overflow:auto}
.finance-action-dialog p{font-size:14px;line-height:1.55}
.finance-action-dialog label{font-size:14px;line-height:1.45}
.finance-action-dialog textarea.form-input{min-height:90px;resize:vertical}
.finance-action-dialog .form-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}

/* Disponibilidad del código de cliente en el propio formulario. */
.client-code-feedback{display:block;margin-top:6px;font-size:12px;line-height:1.4;color:#60777b}
.client-code-feedback.is-error{color:#b42318;font-weight:700}
.client-code-feedback.is-available{color:#087e67;font-weight:650}

/* Saldo progresivo de conciliación: visible y actualizado por cada selección. */
.recon-check-table .recon-running-balance{font-variant-numeric:tabular-nums;white-space:nowrap}
#receiptPaymentChoiceRow[hidden]{display:none!important}
/* Reportes por módulo · presets y columnas configurables */
.report-module-select{max-width:400px;margin-bottom:12px}
.report-preset-buttons{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 23px}
.report-preset-button{border:1px solid var(--line);background:#fff;color:#386065;border-radius:9px;padding:9px 13px;font:inherit;font-size:13px;font-weight:700;cursor:pointer;transition:border-color .18s,background .18s,color .18s}
.report-preset-button:hover{border-color:#10998e;color:#09645f}
.report-preset-button.is-active{background:#e6f8f4;border-color:#13a698;color:#07544f}
.report-filter-heading{margin-bottom:12px}
.report-filter-heading h2{font-size:15px;margin:0 0 4px}
.report-filter-heading p{font-size:12px;margin:0;color:var(--muted)}
.report-date-range{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0 0 20px;max-width:700px}
.report-module-fields[hidden],.report-preset-button[hidden],#reportDateRange[hidden],#reportTypeFilter[hidden],#reportImportableBtn[hidden]{display:none!important}
@media(max-width:650px){.report-date-range{grid-template-columns:1fr}.report-preset-button{flex:1 1 44%;text-align:center}}

/* Facturas: disponibilidad inmediata y navegación del cliente con teclado. */
.invoice-number-feedback{display:block;font-size:12px;line-height:1.4;color:#60777b}
.invoice-number-feedback.is-error{color:#b42318;font-weight:700}
.invoice-number-feedback.is-available{color:#087e67;font-weight:650}
#invoiceForm .suggestion.is-active{background:#d8f7f1;color:#086e65;font-weight:700}
