*{box-sizing:border-box}html{font-size:15px}body{margin:0;font-family:Inter,Arial,Helvetica,sans-serif;color:#1f2937;background:#f8fafc}a{text-decoration:none}button,input,select{font:inherit}img{max-width:100%}
:root{--primary:#f97316;--primary-dark:#ea580c;--primary-soft:#fff7ed;--dark:#1f2937;--muted:#64748b;--border:#e5e7eb;--card:#ffffff;--shadow:0 18px 40px rgba(15,23,42,.08)}
.auth-shell{background:linear-gradient(180deg,#efc078,#ea5a13);min-height:100vh}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(100%,450px);background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-radius:24px;box-shadow:0 24px 50px rgba(0,0,0,.18);padding:28px}.brand-box{text-align:center}.brand-logo{width:140px;height:140px;object-fit:contain;margin:0 auto 8px;display:block}.brand-box h1{margin:6px 0 0;color:var(--primary-dark);font-size:1.75rem;letter-spacing:.02em}.brand-box p{margin:0;color:#9a6732;font-size:.7rem}.login-title{text-align:center;margin:8px 0 18px}.avatar-circle{display:inline-flex;align-items:center;justify-content:center;min-width:58px;height:58px;padding:0 18px;border-radius:999px;background:var(--primary-soft);color:var(--primary-dark);font-size:.9rem;font-weight:800}.login-title h2{margin:10px 0;border-bottom:3px solid #f4a21b;display:inline-block;padding-bottom:6px;font-size:1.8rem}.form-grid{display:grid;gap:16px}.form-grid label{display:grid;gap:7px;font-weight:700;color:#222;font-size:.94rem}.form-grid input,.form-grid select{border:1px solid #f4b26e;border-radius:14px;padding:13px 14px;background:#fff;font-size:.95rem;outline:none}.form-grid input:focus,.form-grid select:focus,.commerce-form input:focus,.commerce-form select:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(249,115,22,.16)}.password-wrap{position:relative}.password-wrap input{width:100%;padding-right:50px}.toggle-pass{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer}.btn{border:none;border-radius:14px;padding:13px 18px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:800;cursor:pointer;box-shadow:0 8px 16px rgba(0,0,0,.08);transition:.2s transform,.2s opacity}.btn:hover{transform:translateY(-1px)}.btn-primary{background:linear-gradient(90deg,var(--primary-dark),#f59e0b);color:#fff}.btn-secondary{background:#e5e7eb;color:#111827}.btn-success{background:#198754;color:#fff}.btn-sm{padding:9px 13px;border-radius:10px;font-size:.86rem}.btn-block{width:100%}.muted-link{display:block;text-align:center;color:var(--primary-dark);margin-top:10px;font-size:.8rem}
.app-shell{min-height:100vh}.dashboard-layout{display:flex;min-height:100vh;position:relative}.sidebar{width:285px;background:linear-gradient(180deg,#26272e,#17181d);color:#fff;padding:18px;position:sticky;top:0;height:100vh;transition:.25s width,.25s transform;overflow-x:hidden;overflow-y:auto;box-shadow:inset -1px 0 0 rgba(255,255,255,.03)}.sidebar-header{text-align:center;position:relative}.sidebar-logo{width:120px;height:120px;object-fit:contain;margin:4px auto 10px;display:block;background:#fff7ed;border-radius:22px;padding:10px;box-shadow:0 10px 22px rgba(0,0,0,.18)}.sidebar-close{display:none;position:absolute;right:0;top:0;border:none;background:rgba(255,255,255,.12);color:#fff;width:34px;height:34px;border-radius:10px;cursor:pointer;font-size:1.2rem}.sidebar-header h2{margin:6px 0 0;color:#ff8b1f;font-size:1.35rem}.sidebar-header p{margin:6px 0 14px;color:#f5e7d4;font-size:.8rem}.sidebar-header strong{font-size:1.35rem;display:block;margin-top:8px}.sidebar-nav{display:grid;gap:8px;margin-top:22px}.sidebar-nav a{color:#fff;padding:12px 14px;border-radius:14px;font-weight:700;display:flex;align-items:center;gap:12px;font-size:.95rem}.nav-icon{width:22px;text-align:center;font-size:1.05rem}.sidebar-nav a.active,.sidebar-nav a:hover{background:rgba(255,255,255,.1)}.sidebar-nav a.disabled{opacity:.45;pointer-events:none}.content-area{flex:1;padding:22px;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px}.topbar-left{display:flex;align-items:flex-start;gap:12px}.topbar h1{margin:0;font-size:2rem;color:#1f4b77}.topbar p{margin:6px 0 0;color:var(--muted);font-size:.92rem}.menu-btn,.collapse-btn{border:none;background:#fff;border-radius:12px;padding:10px 12px;box-shadow:0 8px 18px rgba(0,0,0,.08);cursor:pointer}.menu-btn{display:none}.collapse-btn{display:inline-flex}.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(180px,250px));gap:14px;margin-bottom:18px}.stat-card{background:linear-gradient(180deg,#fff,#fff7ed);padding:18px;border-radius:18px;box-shadow:var(--shadow);display:grid;gap:8px;border:1px solid rgba(249,115,22,.08)}.stat-card span{color:#6b7280;font-size:.86rem}.stat-card strong{font-size:1.8rem;color:var(--primary-dark)}.actions-row{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:18px}.table-card,.form-card{background:var(--card);border-radius:20px;box-shadow:var(--shadow);overflow:hidden;border:1px solid #eef2f7}.table-responsive{overflow:auto}.desktop-table{width:100%;border-collapse:collapse;min-width:980px}.desktop-table thead th{background:linear-gradient(90deg,var(--primary-dark),#fb923c);color:#fff;text-align:left;padding:15px 16px;font-size:.9rem}.desktop-table tbody td{padding:15px 16px;border-bottom:1px solid #ececec;vertical-align:middle;font-size:.9rem}.desktop-table tbody tr:hover{background:#fffaf4}.badge{display:inline-flex;padding:6px 10px;border-radius:999px;font-size:.78rem;font-weight:800}.badge.success{background:#dcfce7;color:#166534}.badge.danger{background:#fee2e2;color:#991b1b}.commerce-form{grid-template-columns:repeat(2,minmax(0,1fr));padding:22px}.commerce-form .col-2{grid-column:span 2}.commerce-form label{display:grid;gap:7px;font-weight:700;font-size:.9rem}.commerce-form input,.commerce-form select{padding:11px 13px;border:1px solid #d6dbe1;border-radius:12px;background:#fff;font-size:.92rem}.section-title{display:block;font-weight:800;color:#1f4b77;margin-bottom:10px;font-size:.95rem}.day-checkboxes{display:grid;gap:12px}.checkbox-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.checkbox-grid-small{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.check-card{display:flex!important;align-items:center;gap:12px;padding:13px 14px;border:1px solid #e4e4e7;border-radius:14px;background:linear-gradient(180deg,#fff,#fffaf4);font-weight:700;color:#333;font-size:.88rem}.check-card input{width:18px;height:18px;accent-color:var(--primary);margin:0}.logo-upload-wrap{display:grid;gap:12px}.logo-upload-card{display:grid;grid-template-columns:160px 1fr;gap:18px;align-items:center;border:1px solid #f1f5f9;border-radius:18px;padding:18px;background:#fffaf4}.logo-preview-box{width:160px;height:160px;border-radius:18px;background:#fff;border:1px dashed #d0d5dd;display:grid;place-items:center;overflow:hidden}.logo-preview-image{width:100%;height:100%;object-fit:contain;padding:10px}.logo-placeholder{font-weight:700;color:#9ca3af}.logo-upload-fields{display:grid;gap:10px}.hint-text{color:#6b7280;font-size:.82rem}.table-logo{width:56px;height:56px;object-fit:contain;border-radius:12px;background:#fff;border:1px solid #e5e7eb;padding:6px}.table-logo-placeholder{display:grid;place-items:center;font-size:.74rem;color:#9ca3af}.mobile-cards{display:none;padding:14px}.mobile-card{border:1px solid #eef2f7;border-radius:18px;padding:14px;background:#fff;box-shadow:0 8px 20px rgba(15,23,42,.05)}.commerce-mobile-card+.commerce-mobile-card{margin-top:12px}.mobile-card-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}.mobile-card-head h3{margin:0;font-size:1rem}.mobile-card-head small{color:var(--muted)}.mobile-card-grid{display:grid;gap:10px}.mobile-card-grid div{display:grid;gap:3px}.mobile-card-grid span{font-size:.78rem;color:var(--muted)}.mobile-card-grid strong{font-size:.9rem;word-break:break-word}.mobile-card-actions{margin-top:14px;display:flex;justify-content:flex-end}.sidebar-collapsed .sidebar{width:92px}.sidebar-collapsed .sidebar-header p,.sidebar-collapsed .sidebar-header strong,.sidebar-collapsed .sidebar-header h2,.sidebar-collapsed .nav-text{display:none}.sidebar-collapsed .sidebar-logo{width:58px;height:58px;padding:6px;border-radius:14px}.sidebar-collapsed .sidebar-nav a{justify-content:center;padding:12px}.sidebar-collapsed .nav-icon{margin:0;font-size:1.15rem}.sidebar-collapsed .content-area{padding-left:18px}
@media (max-width: 1080px){.stats-grid{grid-template-columns:repeat(2,minmax(150px,1fr))}.topbar h1{font-size:1.75rem}}
@media (max-width: 980px){.sidebar{position:fixed;left:0;transform:translateX(-100%);z-index:50;width:285px}.sidebar.open{transform:translateX(0)}.sidebar-close{display:inline-flex;align-items:center;justify-content:center}.content-area{padding:16px}.menu-btn{display:inline-flex}.collapse-btn{display:none}.stats-grid{grid-template-columns:1fr}.commerce-form{grid-template-columns:1fr}.commerce-form .col-2{grid-column:span 1}.topbar h1{font-size:1.6rem}.logo-upload-card{grid-template-columns:1fr}.logo-preview-box{width:100%;max-width:180px;height:180px}.desktop-table-wrap{display:block}.mobile-cards{display:block}.sidebar-collapsed .sidebar{width:285px}}
@media (max-width: 640px){html{font-size:14px}.login-page{padding:16px}.login-card{padding:22px}.brand-logo{width:118px;height:118px}.topbar-left{align-items:center}.content-area{padding:14px}.check-card{padding:12px}.btn{width:100%}.actions-row .btn{flex:1 1 100%}}

.btn-danger{background:#dc2626;color:#fff}.table-actions{display:flex;gap:8px;flex-wrap:wrap}.table-card-header{padding:18px 22px;border-bottom:1px solid #eef2f7;background:#fff7ed}.table-card-header h3{margin:0;color:#9a3412;font-size:1rem}

.menu-logo-btn{width:58px;height:58px;border:none;border-radius:18px;background:linear-gradient(135deg,#ffffff,#eff6ff);box-shadow:0 10px 25px rgba(37,99,235,.14);display:inline-flex;align-items:center;justify-content:center;padding:8px;cursor:pointer}.menu-logo-btn img{width:100%;height:100%;object-fit:contain}.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.topbar-left{display:flex;align-items:center;gap:14px}.topbar h1{margin:0;font-size:1.7rem;color:#0f172a}.topbar p{margin:4px 0 0;color:#64748b;font-size:.92rem}.icon-btn{width:42px;height:42px;border-radius:12px;border:1px solid #dbeafe;background:#fff;color:#1e3a8a}.table-search{min-width:220px;max-width:320px;padding:12px 14px;border:1px solid #d6deeb;border-radius:14px;background:#fff;outline:none}.desktop-table thead th{background:linear-gradient(180deg,#eff6ff,#e0ecff)!important;color:#1e3a8a;font-size:.8rem;letter-spacing:.03em}.desktop-table tbody tr:nth-child(even){background:#fbfdff}.desktop-table tbody tr:hover{background:#f5f9ff}.btn{border-radius:14px!important;padding:12px 16px!important;font-weight:700!important}.btn-primary{background:linear-gradient(135deg,#2563eb,#1d4ed8)!important}.btn-secondary{background:#fff!important;color:#334155!important;border:1px solid #dbe2ea}.icon-link{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;border:none;text-decoration:none;background:#f8fafc;box-shadow:inset 0 0 0 1px #e2e8f0;cursor:pointer;font-size:1rem}.icon-edit{background:#eff6ff}.icon-delete{background:#fef2f2}.icon-view{background:#fff7ed}.compact-card{padding:18px}.inner-actions{padding:0 18px 12px}.relation-card{border:1px solid #e2e8f0;background:#fcfdff;border-radius:18px;padding:18px}.relation-card-header{margin-bottom:10px}.relation-card-header h3{margin:0 0 4px;font-size:1rem;color:#0f172a}.relation-card-header small{color:#64748b}.relation-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.relation-item{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px 12px;border:1px solid #e8eef7;border-radius:14px;background:#fff}.relation-check{display:flex;align-items:center;gap:10px}.relation-price input{width:95px}.product-flags{grid-column:span 2}.sidebar-header{background:linear-gradient(180deg,#eff6ff,#ffffff)}
@media (max-width:980px){.table-search{max-width:none;width:100%}.topbar h1{font-size:1.35rem}.menu-logo-btn{width:52px;height:52px}.product-flags{grid-column:span 1}}

.catalog-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px}.catalog-mini-card{overflow:hidden}.catalog-mini-header{display:flex;justify-content:space-between;align-items:center}.mini-search-wrap{padding:14px 16px 0}.mini-search{width:100%;max-width:none;min-width:0}.mini-table{min-width:0}.mini-badge{display:inline-flex;align-items:center;justify-content:center;padding:9px 14px;border-radius:12px;background:linear-gradient(135deg,#d4a514,#b58b11);color:#fff;font-weight:700}.icon-add{background:#eff6ff;color:#1d4ed8}.icon-text-link{color:inherit}.table-actions form{display:inline-flex;margin:0}.desktop-table select{border:1px solid #d6deeb;border-radius:12px;padding:10px 12px;background:#fff}.sidebar-nav a.active{background:linear-gradient(90deg,rgba(37,99,235,.18),rgba(37,99,235,.06));box-shadow:inset 3px 0 0 #60a5fa}.table-card{border-radius:18px}.desktop-table tbody td small{color:#64748b}@media (max-width:980px){.catalog-grid{grid-template-columns:1fr}}

.tabs-scroll{display:flex;gap:10px;overflow:auto;padding:4px 0 16px;margin-bottom:8px}.tab-btn{border:1px solid #dbe4f0;background:#fff;border-radius:999px;padding:10px 16px;font-weight:700;white-space:nowrap}.tab-btn.active{background:#eff6ff;color:#1d4ed8;border-color:#93c5fd}.tab-panel{display:none}.tab-panel.active{display:block}.header-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.btn-inline{width:auto!important}.catalog-thumb{width:52px;height:52px;border-radius:12px;object-fit:cover;border:1px solid #e5e7eb;padding:3px;background:#fff}.mini-upload-card{grid-template-columns:110px 1fr}.small-preview-box{width:110px;height:110px}.inline-select-tools{display:flex;gap:8px;align-items:center}.inline-quick-add{display:flex;gap:8px;align-items:end;flex-wrap:wrap;padding:12px;border:1px solid #e2e8f0;border-radius:14px;background:#f8fbff;margin-top:8px}.field-block{display:grid;gap:8px}.option-section{border:1px solid #e5eef8;border-radius:18px;padding:16px;background:#fcfdff}.option-section[hidden]{display:none!important}.option-cards{display:flex;gap:12px;overflow:auto;padding-bottom:6px}.option-card{min-width:280px;flex:0 0 280px}.menu-logo-btn{width:46px;height:46px;border-radius:14px;padding:5px;overflow:hidden}.menu-logo-btn img{border-radius:10px;object-fit:cover}.relation-card{margin-top:10px}.desktop-table{min-width:860px}@media (max-width:980px){.table-card,.form-card{overflow:hidden}.table-responsive{overflow-x:auto}.desktop-table{min-width:760px}.header-tools{flex-direction:column;align-items:stretch}.option-card{min-width:240px;flex-basis:240px}}

.p-compact{padding:18px}
.menu-logo-btn{width:42px!important;height:42px!important;padding:4px!important;border-radius:14px!important;border:1px solid #dbe4f0;background:#fff!important;box-shadow:0 6px 16px rgba(15,23,42,.08)!important}
.menu-logo-btn img{width:100%;height:100%;object-fit:cover;border-radius:10px;border:1px solid #eef2f7}
.icon-view{background:#eff6ff;color:#1d4ed8}
.header-tools small{color:#64748b}
.table-search{min-width:240px;max-width:360px;padding:11px 13px;border:1px solid #d6dbe1;border-radius:12px}
.form-card .table-card-header{border-radius:16px 16px 0 0;margin:-18px -18px 16px -18px}
.option-section{margin-top:10px}
.option-cards{display:flex;gap:14px;overflow-x:auto;padding:8px 2px 10px}
.option-card{background:linear-gradient(180deg,#fff,#f8fafc);border:1px solid #e5e7eb;border-radius:16px;padding:14px;min-width:260px;max-width:260px;display:grid;gap:10px;align-content:start}
.relation-item .relation-check{display:flex;align-items:center;gap:10px}
.relation-item .relation-check input{width:18px;height:18px}
.relation-item .relation-price input{width:100%;padding:10px 12px;border:1px solid #d6dbe1;border-radius:12px}
.inline-quick-add{display:flex;gap:10px;align-items:end;flex-wrap:wrap;background:#f8fafc;border:1px dashed #cbd5e1;padding:12px;border-radius:14px}
.inline-quick-add .btn{width:auto}
.tab-panel .table-responsive{overflow-x:auto}
.tab-panel .desktop-table{min-width:720px}
.catalog-thumb{width:56px;height:56px;border-radius:12px;object-fit:cover;padding:0}
.table-logo-placeholder{width:56px;height:56px;border-radius:12px;display:grid;place-items:center;background:#f8fafc}
@media (max-width:980px){
  .option-card{min-width:220px;max-width:220px}
  .tab-panel .desktop-table{min-width:640px}
  .actions-row .btn,.header-tools .btn{width:auto}
}
@media (max-width:640px){
  .table-search{min-width:0;max-width:none;width:100%}
  .header-tools{width:100%}
  .inline-quick-add{align-items:stretch}
  .inline-quick-add .btn{width:100%}
}

.sidebar-logo{width:82px!important;height:82px!important;object-fit:cover!important;padding:6px!important;border-radius:18px!important;background:#fff!important;border:1px solid #dbe4f0!important;box-shadow:0 8px 18px rgba(15,23,42,.12)!important}
.section-divider{padding-top:10px;border-top:1px solid #e2e8f0;margin-top:6px}


/* Ajustes v12 fix municipios + logo */
.sidebar-header-card{background:transparent!important;padding:12px 10px 18px!important;text-align:center!important}
.sidebar-logo-card{display:flex;justify-content:center;align-items:center;width:138px;height:104px;margin:0 auto 12px;background:#f8fafc;border:1px solid rgba(255,255,255,.18);border-radius:16px;box-shadow:0 10px 18px rgba(0,0,0,.18)}
.sidebar-logo{width:96px!important;height:76px!important;object-fit:contain!important;padding:0!important;border:none!important;background:transparent!important;box-shadow:none!important;border-radius:10px!important}
.sidebar-header h2{display:none!important}
.sidebar-subtitle{margin:6px 0 0!important;color:#f2c27a!important;font-size:.98rem!important}
.sidebar-role{display:block!important;margin-top:6px!important;color:#ffffff!important;font-size:1rem!important;font-weight:700!important}
.sidebar-collapsed .sidebar-logo-card{width:58px;height:58px;padding:6px}
.sidebar-collapsed .sidebar-logo{width:46px!important;height:46px!important}
.sidebar-collapsed .sidebar-subtitle,.sidebar-collapsed .sidebar-role{display:none!important}


.catalog-header-spaced{justify-content:space-between}
.tools-with-gap{gap:18px}
.select-heading{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}
.select-heading .icon-link{margin-bottom:2px}
.quick-grow{flex:1;min-width:220px}
.quick-price{width:130px}
.with-inline-add{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}


.sidebar-group{display:grid;gap:8px}
.sidebar-group-toggle{width:100%;border:none;background:rgba(255,255,255,.08);color:#fff;padding:12px 14px;border-radius:14px;font-weight:700;display:flex;align-items:center;gap:12px;font-size:.95rem;cursor:pointer}
.sidebar-group-toggle.active,.sidebar-group-toggle:hover{background:rgba(255,255,255,.12)}
.group-caret{margin-left:auto;transition:transform .2s ease}
.sidebar-group.open .group-caret{transform:rotate(180deg)}
.sidebar-subnav{display:grid;gap:8px;padding-left:14px}
.sidebar-subnav[hidden]{display:none!important}
.sidebar-group.open .sidebar-subnav{display:grid}
.sidebar-subnav a{background:rgba(255,255,255,.05)}
@media (max-width: 980px){.desktop-table{min-width:760px}.table-responsive{overflow:auto}.sidebar-group-toggle{justify-content:flex-start}}

.summary-bar{cursor:pointer;list-style:none;padding:16px 20px;font-weight:800;color:#1e3a8a;background:#eff6ff;border-bottom:1px solid #dbeafe;border-radius:18px 18px 0 0}.summary-bar::-webkit-details-marker{display:none}.table-card>section,.table-card>div,.table-card>form{padding:18px}

.sidebar-nav{padding-bottom:22px}.sidebar::-webkit-scrollbar{width:8px}.sidebar::-webkit-scrollbar-thumb{background:rgba(255,255,255,.18);border-radius:999px}.sidebar{scrollbar-color:rgba(255,255,255,.18) transparent;}

/* Cobros v19 */
.search-wide{width:100%;max-width:none}
.cobranza-search-card{display:grid;gap:14px}
.cobranza-search-form{align-items:end}
.contract-search-results{display:grid;gap:10px;max-height:180px;overflow:auto;padding-right:4px}
.contract-search-item{display:grid;gap:4px;padding:12px 14px;border:1px solid #dbe4f0;border-radius:14px;text-decoration:none;color:#0f172a;background:#fff}
.contract-search-item span{color:#64748b;font-size:.88rem}
.contract-search-item.active,.contract-search-item:hover{background:#eff6ff;border-color:#93c5fd}
.cobranza-grid-layout{display:grid;grid-template-columns:minmax(360px,1.05fr) minmax(340px,.95fr);gap:18px;align-items:start}
.cobranza-left-stack,.cobranza-right-stack{display:grid;gap:18px}
.compact-header{display:flex;justify-content:space-between;align-items:start;gap:12px}
.compact-header h3{margin:0;color:#0f172a}.compact-header small{color:#64748b}
.cobranza-section-block{display:grid;gap:12px;margin-bottom:16px}
.letters-picker{max-height:340px;overflow:auto;border:1px solid #dbe4f0;border-radius:16px;padding:10px;background:#f8fbff;display:grid;gap:10px}
.letter-option{display:flex;gap:12px;align-items:flex-start;padding:12px;border:1px solid #dbe4f0;border-radius:14px;background:#fff;cursor:pointer}
.letter-option input{margin-top:2px;width:18px;height:18px}
.letter-option-body{display:grid;gap:3px}.letter-option-body small{color:#64748b}.letter-option-body em{font-style:normal;color:#1d4ed8;font-size:.83rem}
.letter-option.selected{background:#eff6ff;border-color:#60a5fa;box-shadow:inset 0 0 0 1px #93c5fd}
.cobranza-inline-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
.check-label-line{display:flex;align-items:center;gap:8px;font-weight:700}.discount-box-toggle{justify-content:center;border:1px solid #dbe4f0;border-radius:14px;padding:12px;background:#f8fbff}
.discount-box-toggle small{color:#64748b}
.payment-method-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
.cash-panel{border:1px solid #b7ebc6;background:#f0fdf4;border-radius:16px;padding:14px;display:grid;gap:12px;margin-bottom:14px}
.cash-panel-amount input{font-size:1.05rem;font-weight:700}.cash-panel-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px}.cash-panel-summary div{background:#fff;border:1px solid #d1fae5;border-radius:14px;padding:12px}.cash-panel-summary span{display:block;color:#64748b;font-size:.85rem}.cash-panel-summary strong{font-size:1.15rem;color:#059669}
.cobranza-actions{margin-bottom:14px}
.payment-totals-box{border-top:1px solid #e2e8f0;padding-top:12px;display:grid;gap:8px}.payment-total-line{display:flex;justify-content:space-between;gap:12px;color:#334155}.payment-total-line.total{font-size:1.12rem;font-weight:800;color:#0f172a;padding-top:6px;border-top:1px solid #e2e8f0}
.contract-resume-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;margin-bottom:14px}.contract-main-box{grid-row:span 2}.contract-detail-box{border:1px solid #dbe4f0;background:#f8fbff;border-radius:16px;padding:14px}.contract-detail-box p{margin:0 0 8px;color:#334155}.mini-stat-card{border:1px solid #dbe4f0;border-radius:16px;padding:14px;background:#fff;display:grid;gap:6px}.mini-stat-card span{color:#64748b;font-size:.84rem}.mini-stat-card strong{font-size:1.4rem;color:#0f172a}.mini-stat-card.success strong{color:#059669}.mini-stat-card.danger strong{color:#dc2626}
.receipt-mini-table{min-width:0}.empty-cell{text-align:center;color:#64748b;padding:18px!important}
.receipt-page-wrap{display:grid;gap:18px;max-width:980px;margin:0 auto}.receipt-toolbar{display:flex;justify-content:flex-end;gap:10px}.receipt-card-print{background:#fff;border:1px solid #e2e8f0;border-radius:24px;padding:28px;box-shadow:0 18px 40px rgba(15,23,42,.08)}
.receipt-top-row{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:18px}.receipt-brand-block{display:flex;gap:16px;align-items:center}.receipt-brand-logo{width:72px;height:72px;object-fit:contain;border:1px solid #e5e7eb;border-radius:16px;padding:6px;background:#fff}.receipt-brand-block h2{margin:0;color:#0f172a;font-size:2rem}.receipt-brand-block p{margin:6px 0 0;color:#64748b;font-size:1rem}
.receipt-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:18px 0}.receipt-meta-grid p{margin:0 0 12px;color:#0f172a}
.receipt-detail-table{min-width:0}.receipt-detail-table thead th{font-size:.82rem}.receipt-totals-wrap{margin-left:auto;max-width:360px;display:grid;gap:10px;padding-top:14px}.receipt-total-line{display:flex;justify-content:space-between;gap:16px;color:#334155}.receipt-total-line.total{font-size:1.35rem;font-weight:800;border-top:1px solid #e2e8f0;padding-top:10px;color:#0f172a}
@media (max-width:1200px){.cobranza-grid-layout{grid-template-columns:1fr}.contract-resume-grid{grid-template-columns:1fr 1fr}.contract-main-box{grid-column:1/-1;grid-row:auto}}
@media (max-width:780px){.cobranza-inline-grid,.payment-method-row,.cash-panel-summary,.receipt-meta-grid{grid-template-columns:1fr}.contract-resume-grid{grid-template-columns:1fr}.receipt-top-row{flex-direction:column}.receipt-toolbar{justify-content:stretch}.receipt-toolbar .btn{flex:1}.receipt-card-print{padding:20px}.receipt-brand-block h2{font-size:1.65rem}}
@media print{.sidebar,.topbar,.receipt-toolbar,.receipt-actions-print-hidden,.btn,.menu-logo-btn,.collapse-btn{display:none!important}.dashboard-layout,.content-area{display:block!important;padding:0!important;background:#fff!important}.receipt-page-wrap{max-width:none;margin:0}.receipt-card-print{box-shadow:none;border:none;border-radius:0;padding:0}.table-card,.form-card{box-shadow:none!important;border:none!important}}

.cobranza-inline-grid-compact{align-items:stretch}.option-toggle-card{justify-content:center;border:1px solid #dbe4f0;border-radius:14px;padding:14px;background:#fff;transition:.2s ease}.option-toggle-card.active-option{border-color:#93c5fd;background:#eff6ff}.letter-option.disabled{opacity:.65;background:#f8fafc;cursor:not-allowed}.contract-main-box-padded{padding:18px 20px}.payment-totals-box-spaced{margin-top:8px;padding:16px;border:1px solid #e2e8f0;border-radius:16px;background:#fff}.payment-total-line-letters{align-items:flex-start}.payment-total-line-letters strong{max-width:62%;text-align:right;line-height:1.45;font-size:.92rem}.cash-panel-disabled{background:#f8fafc;border-color:#e2e8f0}.cash-panel-disabled .cash-panel-summary div{border-color:#e2e8f0}.receipt-totals-wrap-wide{max-width:520px}.receipt-total-letters strong{max-width:60%;text-align:right;line-height:1.45}.receipt-meta-grid p,.contract-main-box-padded p{padding-right:8px}.receipt-detail-table td,.receipt-detail-table th,.receipt-mini-table td,.receipt-mini-table th{padding:12px 14px}.letter-option-body{padding-right:8px}


/* Cobros v20 fix layout + mora */
.cobranza-grid-layout,.cobranza-grid-layout>*,.cobranza-left-stack,.cobranza-right-stack,.table-card,.form-card,.table-responsive{min-width:0}
.cobranza-grid-layout{grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);align-items:start}
.cobranza-right-stack{position:relative}
.system-date-note{display:block;margin-top:4px;color:#475569;font-size:.82rem}
.letter-option-body em.late-text{color:#dc2626;font-weight:700}
.letter-option-body em.ok-text{color:#2563eb}
.text-danger{color:#dc2626!important}
.live-detail-wrap{display:grid;gap:12px}
.live-empty{border:1px dashed #cbd5e1;border-radius:14px;background:#f8fafc}
.live-detail-list{display:grid;gap:10px}
.live-detail-item{display:grid;gap:10px;padding:12px 14px;border:1px solid #dbe4f0;border-radius:14px;background:#fff}
.live-detail-item small{display:block;margin-top:4px;color:#64748b}
.live-detail-amounts{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:center;color:#334155}
.live-detail-amounts strong{color:#0f172a}
.receipt-mini-table{width:100%;min-width:760px;table-layout:auto}
.receipt-mini-table th,.receipt-mini-table td{white-space:nowrap}
.contract-resume-grid{grid-template-columns:minmax(0,2fr) repeat(2,minmax(150px,1fr))}
.contract-main-box-padded p{word-break:break-word}
@media (max-width:1200px){.cobranza-grid-layout{grid-template-columns:1fr}.cobranza-right-stack{order:2}.cobranza-left-stack{order:1}}


/* Cobros v21 UI ajustes */
.cobranza-top-stats-grid{margin-bottom:16px}
.cobranza-info-card{border:1px solid #dbe4f0;border-radius:18px;background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);padding:16px;display:grid;gap:6px;box-shadow:0 8px 24px rgba(15,23,42,.04)}
.cobranza-info-card-accent{border-color:#bfdbfe;background:linear-gradient(180deg,#eff6ff 0%,#ffffff 100%)}
.cobranza-info-card-warning{border-color:#fde68a;background:linear-gradient(180deg,#fffbea 0%,#ffffff 100%)}
.cobranza-info-label{font-size:.82rem;font-weight:700;letter-spacing:.02em;color:#64748b;text-transform:uppercase}
.cobranza-info-value{font-size:1.6rem;color:#0f172a;line-height:1}
.cobranza-info-card small{color:#64748b;line-height:1.45}
.payment-method-row-modern{align-items:stretch}
.enhanced-field{border:1px solid #dbe4f0;border-radius:18px;background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);padding:14px 14px 12px;box-shadow:0 10px 30px rgba(15,23,42,.04)}
.enhanced-field span{display:block;margin-bottom:8px;font-weight:700;color:#0f172a}
.enhanced-field select,.enhanced-field input{border:1px solid #cbd5e1;border-radius:14px;background:#fff;min-height:48px;padding:0 14px;box-shadow:inset 0 1px 2px rgba(15,23,42,.03)}
.enhanced-field small{display:block;margin-top:8px;color:#64748b;line-height:1.4}
.enhanced-select-field select{font-weight:700;color:#0f172a}
.enhanced-input-field input::placeholder{color:#94a3b8}
.option-toggle-card small{line-height:1.5}
.option-toggle-card input[type=checkbox]{width:18px;height:18px}

/* Autocomplete de búsqueda de contratos en Cobros */
.cobranza-search-card{position:relative;overflow:visible}
.autocomplete-results{position:absolute;left:18px;right:18px;top:calc(100% - 10px);z-index:30;display:none;gap:8px;max-height:360px;overflow:auto;padding:10px;background:#fff;border:1px solid #dbe4f0;border-radius:16px;box-shadow:0 18px 45px rgba(15,23,42,.14)}
.autocomplete-results:empty{display:none!important}
.autocomplete-item{border-radius:12px;transition:background .15s ease,border-color .15s ease,transform .15s ease}
.autocomplete-item:hover,.autocomplete-item.keyboard-active{background:#eff6ff;border-color:#60a5fa;transform:translateY(-1px)}
.autocomplete-item mark{background:#fde68a;color:inherit;border-radius:4px;padding:0 2px}
.autocomplete-footer{font-size:.78rem;color:#64748b;padding:2px 6px 0;text-align:right}
.autocomplete-empty{padding:12px 14px;border-radius:12px;background:#f8fafc;color:#64748b}
@media (max-width: 768px){.autocomplete-results{left:10px;right:10px;top:calc(100% - 6px);max-height:300px}.cobranza-search-form{gap:8px}.cobranza-search-form .btn{padding:10px 12px}}
.quick-action-card{text-decoration:none;color:inherit;transition:.18s transform,.18s box-shadow}.quick-action-card:hover{transform:translateY(-2px);box-shadow:0 16px 32px rgba(15,23,42,.12)}.quick-action-card small{color:#64748b;font-weight:700}

.menu-badge{margin-left:auto;background:#ef4444;color:#fff;border-radius:999px;min-width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;font-size:.74rem;font-weight:900;padding:0 7px;box-shadow:0 5px 12px rgba(239,68,68,.32)}.sidebar-collapsed .menu-badge{position:absolute;right:6px;top:6px;min-width:18px;height:18px;font-size:.65rem;padding:0 5px}.sidebar-nav a{position:relative}.app-header .brand.jf-brand-home{text-decoration:none;color:inherit;cursor:pointer}

/* ==========================================================
   UI dashboard refresh v100_44
   Ajuste visual global de paneles: menú lateral, barra superior,
   tarjetas de resumen y accesos rápidos con animación hover.
   ========================================================== */
body{background:#fbf8f4;color:#262626}.dashboard-layout{background:linear-gradient(180deg,#fbf8f4 0%,#fffaf5 100%)}
.sidebar{width:252px;background:linear-gradient(180deg,#2f3035 0%,#26272c 55%,#202126 100%);padding:22px 16px;border-right:1px solid rgba(255,255,255,.06);box-shadow:12px 0 35px rgba(15,23,42,.12)}
.sidebar-header-card{text-align:left;margin-bottom:18px;padding:0 2px 14px;border-bottom:1px solid rgba(255,255,255,.06)}
.sidebar-logo-card{width:74px;height:74px;border-radius:17px;background:linear-gradient(145deg,#fff,#f3f4f6);display:grid;place-items:center;padding:5px;box-shadow:0 12px 28px rgba(0,0,0,.24),inset 0 0 0 1px rgba(255,255,255,.75)}
.sidebar .sidebar-logo{width:100%;height:100%;margin:0;border-radius:13px;padding:2px;background:#fff;object-fit:contain;box-shadow:none}.sidebar-subtitle{margin:14px 0 3px!important;color:#f8fafc!important;font-weight:900;font-size:1.05rem!important}.sidebar-role{display:block!important;color:#9ca3af!important;font-size:.82rem!important;font-weight:800!important;margin:0!important}.sidebar-nav{gap:7px;margin-top:12px}.sidebar-nav a,.sidebar-group-toggle{min-height:44px;color:#d9dde4!important;border:1px solid transparent;border-radius:7px;padding:11px 12px;background:transparent;font-size:.88rem;font-weight:800;letter-spacing:-.01em;transition:background .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease,border-color .18s ease}.sidebar-nav a:hover,.sidebar-group-toggle:hover{background:rgba(255,255,255,.07);color:#fff!important;transform:translateX(3px)}.sidebar-nav a.active,.sidebar-group-toggle.active{background:linear-gradient(135deg,#ff7a00 0%,#ff5a00 100%)!important;color:#fff!important;box-shadow:0 12px 24px rgba(255,90,0,.28);border-color:rgba(255,255,255,.12)}.sidebar-nav a.active .nav-icon,.sidebar-group-toggle.active .nav-icon{filter:grayscale(0);opacity:1}.nav-icon{width:22px;font-size:1rem;opacity:.82;filter:grayscale(.25)}.sidebar-subnav{margin:5px 0 5px 10px;padding-left:9px;border-left:1px solid rgba(255,255,255,.08);display:grid;gap:5px}.sidebar-subnav a{min-height:38px;padding:9px 10px;font-size:.82rem;border-radius:7px}.content-area{padding:0 28px 28px;background:#fbf8f4}.topbar{position:sticky;top:0;z-index:12;margin:0 -28px 22px;padding:14px 28px;background:rgba(251,248,244,.88);backdrop-filter:blur(14px);border-bottom:1px solid rgba(15,23,42,.05);box-shadow:0 10px 26px rgba(15,23,42,.04)}.topbar-left{align-items:center}.menu-logo-btn{width:42px!important;height:42px!important;border-radius:10px!important;background:#fff1e6!important;box-shadow:none!important;transition:transform .18s ease,box-shadow .18s ease}.menu-logo-btn:hover{transform:translateY(-2px);box-shadow:0 12px 24px rgba(249,115,22,.18)!important}.collapse-btn.icon-btn{width:34px;height:34px;border-radius:999px;background:transparent;box-shadow:none;color:#92400e}.topbar h1{font-size:1.35rem;color:#222;margin:0;font-weight:1000;letter-spacing:-.03em}.topbar p{margin-top:3px;color:#7c736b;font-size:.85rem;font-weight:700}.summary-bar{list-style:none;cursor:pointer;padding:17px 20px!important;color:#ff5a00!important;font-size:1.08rem!important;font-weight:1000!important;background:transparent!important;border:0!important}.summary-bar::-webkit-details-marker{display:none}.summary-bar::before{content:'⚡';display:inline-flex;margin-right:8px;color:#ff5a00}.table-card>summary.summary-bar+section{padding-top:0}.table-card:has(> .summary-bar){background:transparent;border:0;box-shadow:none;overflow:visible;margin-bottom:18px}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin:0 0 18px}.stat-card{position:relative;overflow:hidden;background:#fff!important;border:1px solid rgba(255,90,0,.18)!important;border-radius:13px!important;padding:22px!important;box-shadow:0 14px 32px rgba(15,23,42,.06)!important;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease,background .22s ease}.stat-card::after{content:'';position:absolute;inset:auto -35px -45px auto;width:105px;height:105px;border-radius:50%;background:rgba(56,189,248,.12);transition:transform .25s ease,opacity .25s ease}.stat-card span{font-size:.72rem!important;text-transform:uppercase;letter-spacing:.12em;color:#8a837d!important;font-weight:1000}.stat-card strong{font-size:1.35rem!important;color:#2d2d2d!important;line-height:1.2}.stats-grid .stat-card strong{font-size:2.45rem!important;color:#ff5a00!important}.stat-card p{margin:0;color:#6f6760;font-size:.88rem;line-height:1.45}.stat-card[href],a.stat-card{min-height:154px;display:grid;align-content:start;gap:10px;color:inherit!important}.stat-card[href]:hover,a.stat-card:hover{transform:translateY(-7px) scale(1.015);box-shadow:0 24px 55px rgba(15,23,42,.13)!important;border-color:rgba(255,90,0,.42)!important;background:linear-gradient(180deg,#fff 0%,#fff8f1 100%)!important}.stat-card[href]:hover::after,a.stat-card:hover::after{transform:scale(1.35);opacity:.9}.mobile-card-grid[style*="grid-template-columns"]{gap:18px!important}.dash-cuenta-card{transition:transform .2s ease,box-shadow .2s ease}.dash-cuenta-card:hover{transform:translateY(-5px);box-shadow:0 22px 50px rgba(15,23,42,.14)}.sidebar-collapsed .sidebar{width:82px}.sidebar-collapsed .sidebar-logo-card{width:56px;height:56px}.sidebar-collapsed .sidebar-header-card{display:grid;place-items:center}.sidebar-collapsed .sidebar-nav a,.sidebar-collapsed .sidebar-group-toggle{justify-content:center;border-radius:12px}.sidebar-collapsed .sidebar-nav a:hover,.sidebar-collapsed .sidebar-group-toggle:hover{transform:translateY(-2px)}
@media (max-width:980px){.sidebar{width:285px}.content-area{padding:0 16px 18px}.topbar{margin:0 -16px 16px;padding:12px 16px}.topbar h1{font-size:1.15rem}.stat-card[href],a.stat-card{min-height:128px}.stats-grid .stat-card strong{font-size:2rem!important}}

/* Splash breve al entrar a panel/public usando el Logo App configurado */
.jf-panel-login-splash{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at center,rgba(255,255,255,.98) 0%,rgba(255,247,237,.96) 46%,rgba(251,248,244,.92) 100%);pointer-events:none;opacity:1;transition:opacity .72s ease,visibility .72s ease}.jf-panel-login-splash.is-hidden{opacity:0;visibility:hidden}.jf-panel-login-splash__halo{position:absolute;width:250px;height:250px;border-radius:999px;background:linear-gradient(135deg,rgba(255,122,0,.18),rgba(255,197,71,.20));filter:blur(2px);animation:jfSplashHalo 2.05s ease-out forwards}.jf-panel-login-splash__content{position:relative;display:flex;flex-direction:column;align-items:center;gap:18px;animation:jfSplashContent 2.05s cubic-bezier(.22,1,.36,1) forwards}.jf-panel-login-splash__logo{width:min(182px,46vw);height:min(182px,46vw);object-fit:contain;border-radius:30px;background:#fff;padding:16px;box-shadow:0 28px 70px rgba(15,23,42,.20)}.jf-panel-login-splash__text{font-size:clamp(22px,4.8vw,34px);font-weight:900;color:#1f2937;letter-spacing:.02em;text-align:center;text-shadow:0 5px 24px rgba(15,23,42,.12)}@keyframes jfSplashContent{0%{opacity:0;transform:scale(.72) translateY(14px)}22%{opacity:1;transform:scale(1.04) translateY(0)}64%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.12) translateY(-8px)}}@keyframes jfSplashHalo{0%{opacity:0;transform:scale(.55)}35%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.45)}}

/* ==========================================================
   Login panel v100_250 - diseño dividido con slider visual
   Ruta: /panel/public/
   ========================================================== */
body.auth-shell{background:#f4f5f7!important;min-height:100vh;overflow-x:hidden}
.jf-panel-login{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.18fr) minmax(390px,.82fr);background:#f4f5f7}
.jf-panel-login__slider{position:relative;min-height:100vh;overflow:hidden;background:#171717}
.jf-panel-login__slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity 1s ease,visibility 1s ease;transform:translateZ(0)}
.jf-panel-login__slide.is-active{opacity:1;visibility:visible;z-index:1}
.jf-panel-login__slide img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.035);transition:transform 7s ease}
.jf-panel-login__slide.is-active img{transform:scale(1.09)}
.jf-panel-login__shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.04) 35%,rgba(0,0,0,.70) 100%)}
.jf-panel-login__caption{position:absolute;z-index:2;left:clamp(28px,4.2vw,66px);right:40px;bottom:clamp(64px,9vh,104px);color:#fff;text-shadow:0 2px 18px rgba(0,0,0,.38)}
.jf-panel-login__caption h2{margin:0 0 8px;font-size:clamp(34px,4.4vw,64px);font-weight:500;letter-spacing:-.035em;line-height:1.02}
.jf-panel-login__caption p{margin:0;font-size:clamp(14px,1.45vw,21px);font-weight:500;opacity:.96}
.jf-panel-login__dots{position:absolute;z-index:5;right:30px;bottom:28px;display:flex;gap:7px}
.jf-panel-login__dots button{width:10px;height:10px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.38);box-shadow:none;cursor:pointer;transition:transform .2s ease,background .2s ease}
.jf-panel-login__dots button.is-active{background:#fff;transform:scale(1.2)}
.jf-panel-login__form-side{min-height:100vh;display:grid;place-items:center;padding:32px clamp(22px,4vw,72px);background:#f6f6f7}
.jf-panel-login__card{position:relative;width:min(100%,430px);min-height:720px;background:#fff;border-radius:0 0 24px 24px;box-shadow:0 20px 48px rgba(15,23,42,.15);padding:142px 34px 34px;overflow:hidden}
.jf-panel-login__top-band{position:absolute;left:0;right:0;top:0;height:118px;background:#ff7418}
.jf-panel-login__icon-wrap{position:absolute;z-index:2;top:61px;left:50%;transform:translateX(-50%);width:94px;height:94px;border-radius:50%;display:grid;place-items:center;background:#fff;border:1px solid #e6e6e6;box-shadow:0 6px 18px rgba(15,23,42,.10)}
.jf-panel-login__cutlery{font-size:40px;line-height:1;filter:saturate(1.4)}
.jf-panel-login__brand{text-align:center;display:grid;gap:5px;margin-top:2px}
.jf-panel-login__brand strong{color:#ff5f12;font-size:22px;font-weight:900}
.jf-panel-login__brand span{color:#9b7770;font-size:8px;letter-spacing:.08em;font-weight:800}
.jf-panel-login__card h1{text-align:center;color:#111827;font-family:Georgia,'Times New Roman',serif;font-size:22px;margin:23px 0 32px;font-weight:700}
.jf-panel-login__form{display:grid;gap:20px}
.jf-panel-login__form label{display:grid;gap:7px;color:#5f504c;font-size:12px;font-weight:800}
.jf-panel-login__input-wrap{position:relative}
.jf-panel-login__input-wrap input{width:100%;height:48px;border:0!important;border-radius:999px!important;background:#f1f1f1!important;padding:0 46px!important;color:#252525;font-size:13px;outline:none;box-shadow:none!important;transition:box-shadow .2s ease,background .2s ease}
.jf-panel-login__input-wrap input:focus{background:#fff!important;box-shadow:0 0 0 2px rgba(255,101,18,.28)!important}
.jf-panel-login__input-icon{position:absolute;z-index:2;left:15px;top:50%;transform:translateY(-50%);font-size:18px;color:#665b58;pointer-events:none}
.jf-panel-login__toggle-pass{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:32px;height:32px;border:0;background:transparent;color:#796a65;cursor:pointer;font-size:18px;box-shadow:none}
.jf-panel-login__submit{width:100%;height:57px;margin-top:12px;border:0;border-radius:999px;background:#ff6512;color:#fff;font-size:16px;font-weight:1000;letter-spacing:.02em;cursor:pointer;box-shadow:0 10px 18px rgba(255,101,18,.24);transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
.jf-panel-login__submit:hover{transform:translateY(-2px);background:#f65c08;box-shadow:0 15px 25px rgba(255,101,18,.28)}
.jf-panel-login__forgot{display:block;text-align:center;margin-top:35px;color:#ff5f12;font-size:12px;font-weight:800}
.jf-panel-login__register{display:flex;justify-content:center;align-items:center;gap:6px;flex-wrap:wrap;margin-top:28px;font-size:11px;color:#796d68}
.jf-panel-login__register a{color:#ff5f12;font-weight:900}
@media(max-width:980px){
  .jf-panel-login{grid-template-columns:1fr}
  .jf-panel-login__slider{min-height:38vh;height:38vh}
  .jf-panel-login__caption{left:24px;bottom:48px}.jf-panel-login__caption h2{font-size:36px}.jf-panel-login__caption p{font-size:14px}
  .jf-panel-login__form-side{min-height:auto;padding:24px 16px 36px}
  .jf-panel-login__card{min-height:0;width:min(100%,500px);padding:128px 26px 32px}
  .jf-panel-login__top-band{height:108px}.jf-panel-login__icon-wrap{top:55px;width:88px;height:88px}
}
@media(max-width:560px){
  .jf-panel-login__slider{height:31vh;min-height:240px}
  .jf-panel-login__caption{left:20px;right:70px;bottom:42px}.jf-panel-login__caption h2{font-size:30px}
  .jf-panel-login__dots{right:18px;bottom:20px}
  .jf-panel-login__form-side{padding:0 0 24px;background:#fff}
  .jf-panel-login__card{border-radius:0;box-shadow:none;width:100%;padding:126px 22px 30px}
  .jf-panel-login__card h1{margin-bottom:26px}
}

/* v100.251 - ajustes visuales del login principal */
.jf-panel-login__icon-wrap{overflow:hidden;padding:12px;background:#fff}
.jf-panel-login__logo{width:100%;height:100%;object-fit:contain;display:block}
.jf-panel-login__input-icon{display:grid;place-items:center;color:#756a66}
.jf-panel-login__input-icon svg{display:block}
.jf-panel-login__toggle-pass{display:grid;place-items:center;border-radius:50%;color:#716560;transition:background .18s ease,color .18s ease,transform .18s ease}
.jf-panel-login__toggle-pass:hover{background:#ffe9dc;color:#ff6512;transform:translateY(-50%) scale(1.06)}
.jf-panel-login__toggle-pass:focus-visible{outline:2px solid rgba(255,101,18,.45);outline-offset:2px}
.jf-panel-login__toggle-pass .jf-eye-closed{display:none}
.jf-panel-login__toggle-pass.is-visible .jf-eye-open{display:none}
.jf-panel-login__toggle-pass.is-visible .jf-eye-closed{display:block}


/* v100.253 - refinamiento visual del login principal */
.jf-panel-login__card{
  border-radius:30px;
  padding-top:176px;
  overflow:hidden;
  font-family:"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
.jf-panel-login__top-band{
  height:132px;
  background:#ff7418;
  border-radius:0 0 52% 52% / 0 0 34px 34px;
}
.jf-panel-login__icon-wrap{
  top:68px;
  width:124px;
  height:124px;
  padding:10px;
  border:5px solid #fff;
  box-shadow:0 10px 28px rgba(15,23,42,.16);
}
.jf-panel-login__brand{margin-top:4px;gap:6px}
.jf-panel-login__brand strong{
  font-family:"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-size:24px;
  line-height:1.1;
  font-weight:800;
  letter-spacing:-.02em;
}
.jf-panel-login__brand span{
  font-family:"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-size:9px;
  letter-spacing:.12em;
  font-weight:700;
}
.jf-panel-login__card h1{
  font-family:"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-size:23px;
  font-weight:750;
  letter-spacing:-.02em;
  margin:26px 0 30px;
}
.jf-panel-login__form label,
.jf-panel-login__input-wrap input,
.jf-panel-login__submit,
.jf-panel-login__forgot,
.jf-panel-login__register{
  font-family:"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
@media(max-width:980px){
  .jf-panel-login__card{padding-top:160px}
  .jf-panel-login__top-band{height:122px;border-radius:0 0 48% 48% / 0 0 30px 30px}
  .jf-panel-login__icon-wrap{top:63px;width:112px;height:112px}
}
@media(max-width:560px){
  .jf-panel-login__card{border-radius:0 0 26px 26px;padding-top:156px}
  .jf-panel-login__top-band{height:118px;border-radius:0 0 44% 44% / 0 0 28px 28px}
  .jf-panel-login__icon-wrap{top:61px;width:108px;height:108px}
}

/* v100.254 - mejor separación del logotipo y controles más legibles */
.jf-panel-login__card{
  padding-top:218px;
}
.jf-panel-login__brand{
  margin-top:0;
  gap:8px;
}
.jf-panel-login__brand strong{
  font-size:26px;
  line-height:1.2;
}
.jf-panel-login__brand span{
  font-size:10px;
  line-height:1.4;
}
.jf-panel-login__card h1{
  font-size:24px;
  margin:28px 0 32px;
}
.jf-panel-login__form{
  gap:23px;
}
.jf-panel-login__form label{
  gap:9px;
  font-size:14px;
  line-height:1.35;
}
.jf-panel-login__input-wrap input{
  height:55px;
  padding:0 50px!important;
  font-size:15px;
}
.jf-panel-login__input-icon{
  left:17px;
}
.jf-panel-login__toggle-pass{
  right:13px;
  width:36px;
  height:36px;
}
.jf-panel-login__submit{
  height:59px;
  font-size:16px;
}
.jf-panel-login__forgot{
  margin-top:32px;
  font-size:14px;
  line-height:1.4;
}
.jf-panel-login__register{
  margin-top:25px;
  font-size:13px;
  line-height:1.5;
  gap:7px;
}
.jf-panel-login__register a{
  font-size:14px;
}
@media(max-width:980px){
  .jf-panel-login__card{padding-top:204px}
}
@media(max-width:560px){
  .jf-panel-login__card{padding-top:200px}
  .jf-panel-login__brand strong{font-size:25px}
  .jf-panel-login__form label{font-size:13.5px}
  .jf-panel-login__input-wrap input{height:54px;font-size:14.5px}
  .jf-panel-login__forgot{font-size:13.5px}
  .jf-panel-login__register{font-size:12.5px}
  .jf-panel-login__register a{font-size:13.5px}
}

/* v100.256 - decoración sutil del fondo sin alterar la estructura original del login */
.jf-panel-login__form-side{
  background-color:#f5f5f6;
  background-image:
    radial-gradient(circle at 14% 18%, rgba(255,111,18,.08) 0, rgba(255,111,18,.08) 70px, transparent 71px),
    radial-gradient(circle at 88% 82%, rgba(255,111,18,.055) 0, rgba(255,111,18,.055) 95px, transparent 96px),
    linear-gradient(135deg, rgba(255,255,255,.85), rgba(244,245,247,.95));
  background-repeat:no-repeat;
}
@media(max-width:560px){
  .jf-panel-login__form-side{
    background-image:
      radial-gradient(circle at 92% 8%, rgba(255,111,18,.07) 0, rgba(255,111,18,.07) 55px, transparent 56px),
      linear-gradient(180deg, #f7f7f8 0%, #ffffff 100%);
  }
}

/* v100.257 - ajuste responsive para zoom del navegador al 100% */
@media (min-width:981px){
  .jf-panel-login__form-side{
    padding:clamp(18px,3vh,32px) clamp(22px,4vw,72px);
  }
  .jf-panel-login__card{
    width:min(100%,430px);
    min-height:0;
    max-height:calc(100vh - 36px);
    padding:clamp(176px,25vh,218px) 34px clamp(24px,4vh,34px);
  }
}

/* En pantallas de escritorio con poca altura (por ejemplo 1366x768 al 100%),
   compacta únicamente el eje vertical para mantener todo el formulario visible. */
@media (min-width:981px) and (max-height:820px){
  .jf-panel-login__form-side{padding:18px clamp(22px,3vw,52px)}
  .jf-panel-login__card{
    width:min(100%,410px);
    padding:172px 30px 24px;
    border-radius:28px;
  }
  .jf-panel-login__top-band{height:116px}
  .jf-panel-login__icon-wrap{top:58px;width:110px;height:110px}
  .jf-panel-login__brand{gap:5px}
  .jf-panel-login__brand strong{font-size:24px}
  .jf-panel-login__brand span{font-size:9px}
  .jf-panel-login__card h1{font-size:22px;margin:20px 0 22px}
  .jf-panel-login__form{gap:17px}
  .jf-panel-login__form label{gap:7px;font-size:13px}
  .jf-panel-login__input-wrap input{height:50px;font-size:14px}
  .jf-panel-login__submit{height:53px;margin-top:7px;font-size:15px}
  .jf-panel-login__forgot{margin-top:22px;font-size:13px}
  .jf-panel-login__register{margin-top:18px;font-size:12px}
  .jf-panel-login__register a{font-size:13px}
}

@media (min-width:981px) and (max-height:700px){
  .jf-panel-login__card{padding-top:154px;padding-bottom:18px}
  .jf-panel-login__top-band{height:104px}
  .jf-panel-login__icon-wrap{top:52px;width:96px;height:96px}
  .jf-panel-login__brand strong{font-size:22px}
  .jf-panel-login__brand span{font-size:8px}
  .jf-panel-login__card h1{margin:15px 0 17px;font-size:20px}
  .jf-panel-login__form{gap:13px}
  .jf-panel-login__input-wrap input{height:46px}
  .jf-panel-login__submit{height:49px;margin-top:4px}
  .jf-panel-login__forgot{margin-top:16px}
  .jf-panel-login__register{margin-top:13px}
}

/* v100.258 - tipografía del formulario ligeramente mayor al 100% de zoom */
@media (min-width:981px){
  .jf-panel-login__brand strong{font-size:27px}
  .jf-panel-login__brand span{font-size:10.5px}
  .jf-panel-login__card h1{font-size:25px}
  .jf-panel-login__form label{font-size:14.5px}
  .jf-panel-login__input-wrap input{font-size:15.5px}
  .jf-panel-login__submit{font-size:16.5px}
  .jf-panel-login__forgot{font-size:14.5px}
  .jf-panel-login__register{font-size:13.5px}
  .jf-panel-login__register a{font-size:14.5px}
}
@media (min-width:981px) and (max-height:820px){
  .jf-panel-login__brand strong{font-size:25.5px}
  .jf-panel-login__brand span{font-size:9.5px}
  .jf-panel-login__card h1{font-size:23.5px}
  .jf-panel-login__form label{font-size:14.5px}
  .jf-panel-login__input-wrap input{font-size:15.5px}
  .jf-panel-login__submit{font-size:16px}
  .jf-panel-login__forgot{font-size:14px}
  .jf-panel-login__register{font-size:13px}
  .jf-panel-login__register a{font-size:14px}
}
@media (min-width:981px) and (max-height:700px){
  .jf-panel-login__brand strong{font-size:23px}
  .jf-panel-login__brand span{font-size:8.8px}
  .jf-panel-login__card h1{font-size:21.5px}
  .jf-panel-login__form label{font-size:13.5px}
  .jf-panel-login__input-wrap input{font-size:14.5px}
  .jf-panel-login__submit{font-size:15.5px}
  .jf-panel-login__forgot{font-size:13.5px}
  .jf-panel-login__register{font-size:12.5px}
  .jf-panel-login__register a{font-size:13.5px}
}
