:root{--bg:#f7f4ec;--panel:#fffdf8;--ink:#151515;--muted:#6b7280;--line:#eadfbe;--accent:#b38728;--accent2:#d8b14a;--danger:#b91c1c;--warning:#9a6700;--shadow:0 10px 30px rgba(21,21,21,.08)}
*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial;background:var(--bg);color:var(--ink)}button,input,select{font:inherit}.sidebar{position:fixed;inset:0 auto 0 0;width:280px;background:#111111;color:#fff;padding:24px 16px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;flex-direction:column;gap:10px;align-items:flex-start;padding:0 8px 24px}.brand .logo{width:210px;max-width:100%;height:auto;display:block}.brand .brand-title{display:block;font-size:20px;color:#fff}.brand .brand-text small{color:#d1d5db}.nav-item{width:100%;border:0;background:transparent;color:#e5e7eb;text-align:left;padding:12px 14px;border-radius:10px;margin:3px 0;cursor:pointer;display:flex;gap:10px;align-items:center}.nav-item:hover,.nav-item.active{background:#262626;color:#f8e2a2}.sidebar-note{margin-top:auto;padding:14px;border:1px solid #404040;border-radius:12px;color:#e5e7eb;font-size:13px}.sidebar-note small{color:#cbd5e1}.app-shell{margin-left:280px;min-height:100vh}.topbar{height:72px;background:#fffdf8;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:10}.topbar>div{display:flex;align-items:center;gap:12px}.icon-btn{display:none;border:0;background:#f8f0d6;border-radius:8px;padding:8px 10px}.user-chip{font-size:14px;color:#4b5563}.dot{width:9px;height:9px;background:var(--accent2);border-radius:50%;display:inline-block}.view{display:none;padding:28px}.active-view{display:block}.hero-row{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:22px}.hero-row h1{margin:2px 0 4px;font-size:30px}.eyebrow{margin:0;color:var(--accent);font-weight:800;font-size:12px;letter-spacing:.12em}.muted,.hint{color:var(--muted)}.primary,.secondary,.danger-btn{border:0;border-radius:10px;padding:11px 16px;font-weight:700;cursor:pointer}.primary{background:var(--accent);color:white}.secondary{background:#fff7e0;color:#7a5a14;border:1px solid #edd48c}.danger-btn{background:#fee2e2;color:var(--danger)}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px}.kpi,.card,.report-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.kpi{padding:18px}.kpi .label{font-size:13px;color:var(--muted)}.kpi .value{font-size:25px;font-weight:800;margin-top:8px}.kpi .sub{font-size:12px;margin-top:6px;color:var(--muted)}.grid-2{display:grid;grid-template-columns:1.4fr 1fr;gap:18px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{padding:18px}.card-head{display:flex;justify-content:space-between;align-items:center}.card-head h3{margin:0 0 12px}.badge{background:#f8f0d6;color:#6b5320;border-radius:999px;padding:5px 9px;font-size:12px}.badge.danger{background:#fee2e2;color:#991b1b}.badge.success{background:#dcfce7;color:#166534}.badge.warn{background:#ffedd5;color:#9a3412}table{width:100%;border-collapse:collapse;font-size:14px}th,td{padding:12px 10px;text-align:left;border-bottom:1px solid var(--line);vertical-align:middle}th{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.empty{padding:24px;text-align:center;color:var(--muted)}.late-item{padding:12px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:14px}.late-item:last-child{border:0}.late-item strong{display:block}.toolbar{margin-bottom:14px}.toolbar input,.field input,.field select{width:100%;border:1px solid #cbd5e1;border-radius:10px;padding:11px 12px;background:#fff}.toolbar input{max-width:420px}.report-card{padding:22px}.report-card h3{margin-top:0}.report-card p{color:var(--muted);min-height:46px}.form-card{max-width:760px}.field{margin-bottom:14px}.field label{display:block;font-weight:700;font-size:13px;margin-bottom:6px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.modal{position:fixed;inset:0;background:rgba(15,23,42,.55);display:grid;place-items:center;padding:20px;z-index:100}.modal.hidden{display:none}.modal-panel{background:#fff;width:min(760px,96vw);max-height:90vh;overflow:auto;border-radius:18px;padding:24px;position:relative;box-shadow:0 30px 70px rgba(0,0,0,.25)}.modal-close{position:absolute;right:16px;top:12px;border:0;background:transparent;font-size:28px;cursor:pointer}.modal h2{margin-top:0}.toast{position:fixed;right:22px;bottom:22px;background:#0f172a;color:#fff;padding:12px 16px;border-radius:10px;opacity:0;transform:translateY(12px);pointer-events:none;transition:.2s;z-index:200}.toast.show{opacity:1;transform:translateY(0)}.schedule-wrap{max-height:350px;overflow:auto;border:1px solid var(--line);border-radius:12px}.actions{display:flex;flex-wrap:wrap;gap:8px}.small-btn{border:1px solid var(--line);background:#fff;border-radius:8px;padding:7px 9px;cursor:pointer}.small-btn:hover{background:#f8fafc}@media(max-width:1000px){.kpis{grid-template-columns:repeat(2,1fr)}.grid-2,.grid-3{grid-template-columns:1fr}.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:translateX(0)}.app-shell{margin-left:0}.icon-btn{display:inline-block}.brand .logo{width:180px}}@media(max-width:640px){.view{padding:18px}.topbar{padding:0 16px}.hero-row{align-items:flex-start;flex-direction:column}.kpis{grid-template-columns:1fr}.field-grid{grid-template-columns:1fr}table{min-width:700px}.card{overflow:auto}.hero-row h1{font-size:25px}}

/* ===== JMP Créditos · Diseño profesional oscuro/dorado ===== */
:root{--bg:#0b0c0f;--panel:#15181d;--ink:#f6f3e9;--muted:#9da3ad;--line:#2d323a;--accent:#d2a640;--accent2:#f1ca65;--danger:#e35d5d;--warning:#f0b64e;--shadow:0 18px 55px rgba(0,0,0,.28)}
body{background:radial-gradient(circle at 78% 0%,rgba(210,166,64,.08),transparent 28%),var(--bg);color:var(--ink)}
.sidebar{width:270px;background:linear-gradient(180deg,#08090a,#101215);border-right:1px solid rgba(210,166,64,.3);box-shadow:12px 0 40px rgba(0,0,0,.18)}
.brand{flex-direction:column;align-items:center;gap:8px;border-bottom:1px solid #22272e;padding-bottom:20px;margin-bottom:12px}.brand .logo{width:205px;height:auto;max-width:100%}.brand strong{font-size:18px}.brand small{color:#aaa28d}.nav-item{color:#c8cbd1}.nav-item:hover,.nav-item.active{background:linear-gradient(90deg,rgba(210,166,64,.2),rgba(210,166,64,.05));color:#fff;border:1px solid rgba(210,166,64,.35)}
.sidebar-note{border-color:#333840;color:#b7bbc2}.app-shell{margin-left:270px}.topbar{background:rgba(11,12,14,.94);border-color:#262b31;color:#fff;backdrop-filter:blur(12px)}.user-chip{color:#e5e7eb}.dot{background:#43d493;box-shadow:0 0 10px rgba(67,212,147,.6)}
.view{padding:28px}.welcome-card{display:flex;justify-content:space-between;align-items:center;gap:22px;margin-bottom:18px;padding:25px 26px;border:1px solid rgba(210,166,64,.28);border-radius:20px;background:linear-gradient(120deg,#16181c,#18150f 58%,#111317);box-shadow:var(--shadow);position:relative;overflow:hidden}.welcome-card:after{content:"";position:absolute;right:-50px;top:-95px;width:270px;height:270px;border-radius:50%;background:radial-gradient(circle,rgba(210,166,64,.18),transparent 70%)}.welcome-card h1{margin:4px 0 7px;font-size:30px}.welcome-actions{display:flex;gap:10px;z-index:1}
.eyebrow{color:var(--accent2)}.muted,.hint{color:var(--muted)}
.primary{background:linear-gradient(180deg,#f0c85f,#b88925);color:#191208;box-shadow:0 8px 22px rgba(210,166,64,.17)}.secondary{background:#1b1f25;color:#f0ce74;border:1px solid #3b4149}.primary:hover,.secondary:hover{transform:translateY(-1px);filter:brightness(1.06)}
.kpi,.card,.report-card{background:linear-gradient(145deg,#171a1f,#121419);border-color:#2e333b;box-shadow:var(--shadow)}.kpi .label{color:#a9aeb6}.kpi .value{color:#fff}.kpi .sub{color:#7f858f}
.quick-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:0 0 18px}.quick-actions button{background:#15181d;border:1px solid #2e333b;color:#fff;border-radius:14px;padding:14px;text-align:left;cursor:pointer}.quick-actions button:hover{border-color:rgba(210,166,64,.55);transform:translateY(-1px)}.quick-actions b,.quick-actions small{display:block}.quick-actions b{font-size:13px}.quick-actions small{margin-top:4px;color:#858b94}
.badge{background:#242930;color:#d2d5da}.badge.danger{background:rgba(227,93,93,.13);color:#ff9696}.badge.success{background:rgba(67,212,147,.14);color:#7ce6b7}.badge.warn{background:rgba(240,182,78,.13);color:#ffd47a}
table{color:#e8e9eb}th,td{border-color:#292e35}th{color:#838a94}tbody tr:hover{background:rgba(255,255,255,.018)}
.toolbar input,.field input,.field select{background:#101318;color:#f1f2f4;border-color:#383e47}.toolbar input:focus,.field input:focus,.field select:focus{outline:none;border-color:#b98f31;box-shadow:0 0 0 3px rgba(210,166,64,.08)}
.modal{background:rgba(0,0,0,.76);backdrop-filter:blur(5px)}.modal-panel{width:min(1140px,96vw);background:#111419;color:#f3f4f6;border:1px solid #343a43;border-radius:20px;box-shadow:0 35px 95px rgba(0,0,0,.55)}.modal-close{color:#d8dadd}.small-btn{background:#171a20;color:#e7e8ea;border-color:#383e46}.small-btn:hover{background:#22272e}.settings-logo{text-align:center;padding:6px 0 22px}.settings-logo img{width:270px;max-width:80%;height:auto}
.loan-simulator{display:grid;grid-template-columns:390px 1fr;gap:16px}.sim-form,.sim-preview{border:1px solid #2f353d;border-radius:15px;background:#16191e;padding:16px}.sim-form-title,.sim-preview-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.sim-form-title h3,.sim-preview-title h3{margin:0}.live-badge{font-size:10px;color:#7de1b2;border:1px solid rgba(67,212,147,.35);background:rgba(67,212,147,.08);border-radius:999px;padding:5px 8px}.sim-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px}.sim-stat{padding:13px;border:1px solid #323840;border-radius:12px;background:#111419}.sim-stat span{display:block;color:#8e949d;font-size:10px;text-transform:uppercase}.sim-stat strong{font-size:19px;display:block;margin-top:6px;color:#f3c962}.sim-stat:nth-child(2) strong{color:#82d7ff}.sim-stat:nth-child(3) strong{color:#7fe0ae}.schedule-wrap{max-height:390px;overflow:auto;border-color:#2d333b;background:#111419}.schedule-wrap table{min-width:650px}.sim-actions{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:14px}.sim-actions-right{display:flex;gap:9px;flex-wrap:wrap}.notice-box{border:1px solid rgba(210,166,64,.35);background:rgba(210,166,64,.07);border-radius:11px;padding:10px 12px;color:#d5c69e;font-size:11px;line-height:1.45;margin-top:7px}.modal-subtitle{color:#90969f;margin:0 0 18px}
.toast{background:#191d22;border:1px solid #3d444e;box-shadow:var(--shadow)}
@media(max-width:1100px){.quick-actions{grid-template-columns:repeat(2,1fr)}.loan-simulator{grid-template-columns:1fr}.app-shell{margin-left:0}}
@media(max-width:680px){.welcome-card{flex-direction:column;align-items:flex-start}.welcome-actions{width:100%;flex-wrap:wrap}.quick-actions,.sim-summary{grid-template-columns:1fr}.sim-actions{flex-direction:column}.sim-actions-right{width:100%}.sim-actions button{width:100%}}
.notification-item{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:14px;border:1px solid #30353d;border-radius:12px;background:#12151a;margin-bottom:10px}.notification-item div{display:flex;flex-direction:column;gap:4px}.notification-item span{color:#8f949c;font-size:12px}.notification-item b{color:#f0c65e}.danger-note{border-color:rgba(255,102,102,.28);background:rgba(255,102,102,.05)}
.contract-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}.contract-document,.signature-panel{border:1px solid #30353d;border-radius:14px;background:#16191e;padding:18px}.contract-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #343941;padding-bottom:10px;margin-bottom:14px}.contract-head strong{color:#efc75e;font-size:18px}.contract-head span{font-size:12px;letter-spacing:.12em;color:#a8acb3}.contract-body{line-height:1.62;color:#c7c9ce;font-size:13px;margin:16px 0}.contract-schedule{display:grid;grid-template-columns:1fr 1fr;gap:6px;font-size:11px;color:#a8adb5}.signature-panel label{display:block;margin:14px 0 6px;font-size:12px;font-weight:800}.signature-canvas{width:100%;height:150px;background:#fff;border-radius:10px;border:1px solid #4b5159;touch-action:none;cursor:crosshair}.signature-actions{display:flex;justify-content:flex-end;margin-top:6px}.signature-status{padding:9px 11px;border-radius:9px;background:rgba(242,184,75,.1);border:1px solid rgba(242,184,75,.3);color:#f0c65e;font-size:12px}.signature-status.signed{background:rgba(62,207,142,.1);border-color:rgba(62,207,142,.3);color:#76dfad}.contract-check{display:flex!important;gap:8px;align-items:flex-start!important;font-weight:500!important;color:#bfc3c9}.contract-check input{width:auto;margin-top:2px}
@media(max-width:900px){.contract-grid{grid-template-columns:1fr}.contract-schedule{grid-template-columns:1fr}}

/* ===== JMP Créditos v4 · Dashboard de referencia ===== */
body{background:#090b0e}
.sidebar{width:225px;padding:12px 10px;background:linear-gradient(180deg,#080908,#0d0f11);border-right:1px solid rgba(214,170,65,.28)}
.brand{padding:4px 8px 12px;margin-bottom:8px}.brand .logo{width:170px}.brand .brand-title{display:none}.brand .brand-text small{display:none}.nav-item{padding:9px 12px;margin:1px 0;font-size:13px;border-radius:8px}.app-shell{margin-left:225px}.topbar{height:60px;padding:0 18px;background:#090b0e;border-bottom:1px solid #25282d}.topbar-left,.topbar-right{display:flex;align-items:center;gap:14px}.global-search{display:flex;align-items:center;gap:8px;width:350px;background:#171a20;border:1px solid #303640;border-radius:9px;padding:8px 11px;color:#8e949d}.global-search input{width:100%;border:0;outline:0;background:transparent;color:#e9eaec}.top-date{border:1px solid rgba(214,170,65,.35);background:#17140e;border-radius:9px;padding:7px 10px;color:#cfc5aa;font-size:11px;white-space:nowrap}.admin-avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#f1c65c,#9a6e16);color:#17110a;font-weight:900}.user-chip strong,.user-chip small{display:block}.user-chip small{color:#858b95;font-size:10px;margin-top:2px}
.view{padding:18px}.dashboard-greeting{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:14px}.dashboard-greeting h1{font-size:25px;margin:0 0 3px}.dashboard-greeting p{margin:0;color:#a2a7af}.dashboard-actions{display:flex;gap:8px}
.kpis-five{grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:12px}.kpis-five .kpi{padding:14px 15px;min-height:96px}.kpis-five .kpi:nth-child(1){border-color:#8e6b1f;background:linear-gradient(145deg,#231c0e,#17140e)}.kpis-five .kpi:nth-child(2){border-color:#176b4b;background:linear-gradient(145deg,#0e2a20,#121916)}.kpis-five .kpi:nth-child(3){border-color:#225a87;background:linear-gradient(145deg,#10263a,#121820)}.kpis-five .kpi:nth-child(4){border-color:#654390;background:linear-gradient(145deg,#241634,#18131f)}.kpis-five .kpi:nth-child(5){border-color:#813636;background:linear-gradient(145deg,#351515,#1b1111)}.kpis-five .value{font-size:21px}.kpis-five .sub{font-size:10px}
.dashboard-grid-main{display:grid;grid-template-columns:1.45fr 1.05fr 1.25fr;gap:10px;margin-bottom:10px}.dashboard-grid-bottom{display:grid;grid-template-columns:1.1fr .9fr 1fr 1fr;gap:10px}.card{border-radius:12px;padding:14px}.card-head h3{font-size:14px;margin:0 0 3px}.card-head p{margin:0;color:#7f858e;font-size:10px}.chart-box{position:relative;height:190px;margin-top:5px}.chart-box.donut{height:170px;width:170px}.donut-layout{display:flex;align-items:center;justify-content:center;gap:18px}.chart-legend{display:grid;gap:9px;font-size:11px}.legend-row{display:flex;align-items:center;gap:8px}.legend-dot{width:8px;height:8px;border-radius:50%}.legend-row b{margin-left:auto}.compact-card{min-width:0}.compact-card table{font-size:11px}.compact-card th{display:none}.compact-card td{padding:8px 4px}.link-btn{border:0;background:transparent;color:#e6bd58;cursor:pointer;font-size:10px}.quick-actions.rich{grid-template-columns:repeat(2,1fr);gap:8px;margin:8px 0 0}.quick-actions.rich button{padding:10px;min-height:64px}.quick-actions.rich span{width:31px;height:31px;font-size:15px}.quick-actions.rich b{font-size:11px}.recent-payment,.reminder-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid #272c32}.recent-payment:last-child,.reminder-row:last-child{border-bottom:0}.recent-payment-left{display:flex;align-items:center;gap:8px}.initials{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:#e7bd57;color:#17110a;font-weight:800;font-size:10px}.recent-payment span,.reminder-row span{display:block;color:#858b94;font-size:10px}.recent-payment b{font-size:11px;color:#66d7a0}.reminder-icon{width:25px;height:25px;border-radius:7px;display:grid;place-items:center;background:#332a16;color:#f1c65e}.reminder-row.danger .reminder-icon{background:#381818;color:#ff7a7a}
.report-card{position:relative;overflow:hidden}.report-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#d6aa41}.report-card .secondary{margin-top:8px}
.receipt-actions{display:flex;gap:6px}.history-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}.history-summary .sim-stat{min-width:0}.history-tabs{display:flex;gap:7px;margin:12px 0}.history-tab{border:1px solid #363b43;background:#15181e;color:#c8cbd1;border-radius:8px;padding:7px 10px;cursor:pointer}.history-tab.active{border-color:#a77c25;color:#f0c65e;background:#211b0f}.cash-balance{color:#7fe0ae!important}.expense{color:#ff8a8a!important}
@media(max-width:1350px){.kpis-five{grid-template-columns:repeat(3,1fr)}.dashboard-grid-main{grid-template-columns:1.4fr 1fr}.dashboard-grid-main .compact-card{grid-column:1/-1}.dashboard-grid-bottom{grid-template-columns:repeat(2,1fr)}}
@media(max-width:1000px){.sidebar{width:225px}.app-shell{margin-left:0}.global-search{width:min(45vw,350px)}.kpis-five{grid-template-columns:repeat(2,1fr)}.dashboard-grid-main,.dashboard-grid-bottom{grid-template-columns:1fr}.dashboard-grid-main .compact-card{grid-column:auto}}
@media(max-width:680px){.top-date{display:none}.global-search{width:calc(100vw - 150px)}.dashboard-greeting{align-items:flex-start;flex-direction:column}.dashboard-actions{width:100%;flex-wrap:wrap}.kpis-five{grid-template-columns:1fr}.donut-layout{flex-direction:column}.history-summary{grid-template-columns:1fr 1fr}}

/* ===== JMP Créditos v5 ===== */
.client-status{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;padding:5px 9px;border-radius:999px;border:1px solid transparent}.client-status:before{content:"";width:7px;height:7px;border-radius:50%}.client-status.good{background:rgba(62,207,142,.12);color:#76e3b0;border-color:rgba(62,207,142,.32)}.client-status.good:before{background:#3ecf8e}.client-status.debt{background:rgba(242,184,75,.12);color:#ffd37b;border-color:rgba(242,184,75,.32)}.client-status.debt:before{background:#f2b84b}.client-status.late{background:rgba(255,102,102,.12);color:#ff9999;border-color:rgba(255,102,102,.32)}.client-status.late:before{background:#ff6666}.client-status.closed{background:#23272d;color:#aab0b8;border-color:#343a42}.client-status.closed:before{background:#747b85}.client-status.archived{background:#201b28;color:#c9a7ff;border-color:#46375d}.client-status.archived:before{background:#b794f4}.danger-link{border:1px solid rgba(255,102,102,.35);background:rgba(255,102,102,.08);color:#ff9999}.whatsapp-btn{border:1px solid rgba(37,211,102,.4);background:rgba(37,211,102,.10);color:#6ee79c}.payment-success{display:grid;gap:16px}.payment-success-card{border:1px solid #313741;background:#15191e;border-radius:16px;padding:18px}.payment-success-card h3{margin:0 0 8px}.payment-success-actions{display:flex;flex-wrap:wrap;gap:10px}.contract-help{border:1px solid rgba(212,168,63,.35);background:rgba(212,168,63,.07);border-radius:14px;padding:14px;margin-bottom:14px;color:#d8c99f}.contract-help b{color:#f2c964}.status-filter{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.status-filter button{border:1px solid #343a42;background:#16191e;color:#bbbfc5;border-radius:999px;padding:7px 11px;cursor:pointer}.status-filter button.active{border-color:#b98c30;color:#f2c964;background:#2a2214}


/* ===== v6: login, usuarios y firma escaneada ===== */
.file-label{display:inline-flex!important;align-items:center;justify-content:center;cursor:pointer}
.signature-tip{margin-top:12px;padding:10px 12px;border:1px solid rgba(214,170,65,.28);background:rgba(214,170,65,.07);border-radius:9px;color:#c8b986;font-size:11px;line-height:1.45}
.login-screen{position:fixed;inset:0;z-index:1000;background:radial-gradient(circle at 20% 0%,rgba(214,170,65,.14),transparent 30%),#090b0e;display:grid;place-items:center;padding:20px}.login-screen.hidden{display:none}.login-card{width:min(430px,94vw);background:#121519;border:1px solid #343943;border-radius:20px;padding:30px;box-shadow:0 40px 100px rgba(0,0,0,.6)}.login-logo{display:block;width:230px;max-width:72%;height:auto;margin:0 auto 20px}.login-card h1{margin:5px 0 6px;color:#f3f4f6}.login-submit{width:100%;margin-top:4px}.login-demo{margin-top:18px;padding:12px;border:1px solid #333943;border-radius:10px;background:#0d0f12;color:#b9bdc5;font-size:11px;line-height:1.55}.login-demo code{color:#f0c65e}.logout-btn{border:1px solid #363b43;background:#15181d;color:#d8dade;border-radius:8px;padding:7px 10px;cursor:pointer}.logout-btn:hover{border-color:#b98d31;color:#f0c65e}.permission-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:8px 0 18px}.permission-grid label{border:1px solid #343a43;background:#121519;border-radius:9px;padding:9px;color:#c8cbd1;font-size:12px}.field-label{display:block;font-weight:800;font-size:12px;color:#d6d8dc;margin-top:5px}@media(max-width:720px){.permission-grid{grid-template-columns:1fr 1fr}.logout-btn{display:none}}

/* ===== JMP Créditos v7 ===== */
.topbar-right{display:flex!important;align-items:center!important;gap:12px!important;height:100%}.topbar-right .user-chip{display:flex!important;align-items:center!important;gap:9px!important;height:42px;padding:5px 9px;border:1px solid #2d3239;border-radius:10px;background:#111419;white-space:nowrap}.topbar-right .user-chip>div{display:flex;flex-direction:column;justify-content:center;line-height:1.15}.topbar-right .user-chip strong{font-size:12px}.topbar-right .user-chip small{font-size:9px;margin-top:3px}.topbar-right .admin-avatar{flex:0 0 32px}.logout-btn{height:38px;align-self:center}.payroll-grid{grid-template-columns:1.05fr .95fr}.client-portal-admin{max-width:980px}.client-portal-admin>.field{max-width:460px}.client-phone-preview{width:min(430px,100%);margin:20px auto 4px;border:1px solid #42371f;border-radius:28px;background:linear-gradient(165deg,#111419,#090b0e);padding:22px;box-shadow:0 24px 70px rgba(0,0,0,.38)}.client-phone-head{display:flex;align-items:center;gap:12px;margin-bottom:20px}.client-phone-head img{width:55px;height:55px;object-fit:contain}.client-phone-head small,.client-phone-head strong{display:block}.client-phone-head small{font-size:10px;color:#d9b44d;letter-spacing:.08em}.client-phone-head strong{font-size:20px;margin-top:3px}.client-balance{border:1px solid #9d7720;border-radius:16px;padding:18px;background:linear-gradient(135deg,#e2b84e,#9d6d12);color:#17110a}.client-balance span,.client-balance small{display:block}.client-balance strong{display:block;font-size:31px;margin:6px 0}.client-portal-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:12px 0}.client-portal-grid>div{border:1px solid #2e343c;background:#15191e;border-radius:12px;padding:12px}.client-portal-grid span,.client-portal-grid strong{display:block}.client-portal-grid span{font-size:10px;color:#8e949d}.client-portal-grid strong{font-size:13px;margin-top:5px}.client-portal-actions{display:grid;gap:8px}.client-pin-note{font-size:10px;color:#8e949d;margin-top:14px;text-align:center}.client-pin-note b{color:#edc45e}@media(max-width:800px){.payroll-grid{grid-template-columns:1fr}.topbar-right .top-date{display:none}.topbar-right .user-chip{padding:4px 6px}.topbar-right .user-chip>div{display:none}.client-portal-grid{grid-template-columns:1fr}}

/* ===== JMP Créditos v8 ===== */
.reminder-row{cursor:pointer;border-radius:9px;padding:9px 7px;transition:.16s}.reminder-row:hover{background:#1b1f25;transform:translateX(2px)}
.cash-layout{grid-template-columns:1.3fr .9fr}.closure-status{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:800}.closure-status.ok{background:rgba(62,207,142,.12);color:#7be4b2}.closure-status.review{background:rgba(242,184,75,.12);color:#ffd37b}.closure-status.void{background:rgba(255,102,102,.12);color:#ff9999}
.auth-code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.14em;color:#f2c963;font-weight:900}.auth-request{border:1px solid #3a4049;background:#13171c;border-radius:13px;padding:14px;margin-bottom:12px}.auth-request.approved{border-color:rgba(62,207,142,.36)}.auth-request.pending{border-color:rgba(242,184,75,.36)}
.client-portal-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:16px}.client-portal-toolbar .field{margin:0;flex:1;max-width:520px}
.portal-shell{border:1px solid #313741;border-radius:24px;background:linear-gradient(160deg,#0f1216,#090b0e);overflow:hidden;box-shadow:0 28px 80px rgba(0,0,0,.35)}.portal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid #2b3037;background:rgba(255,255,255,.015)}.portal-brand{display:flex;align-items:center;gap:11px}.portal-brand img{width:52px;height:52px;object-fit:contain}.portal-brand strong,.portal-brand small{display:block}.portal-brand small{color:#a8adb5;font-size:10px;margin-top:2px}.portal-profile{display:flex;align-items:center;gap:9px}.portal-avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#efc85e,#9d6d14);color:#17110a;font-weight:900}.portal-body{padding:22px}.portal-welcome{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:18px}.portal-welcome h2{margin:0 0 5px}.portal-welcome p{margin:0;color:#969ca5}.portal-main-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:14px}.portal-balance-card{border:1px solid #8e6b1f;border-radius:18px;padding:20px;background:linear-gradient(135deg,#e3b84e,#9d6d13);color:#17110a}.portal-balance-card span,.portal-balance-card small{display:block}.portal-balance-card strong{display:block;font-size:34px;margin:7px 0}.portal-info-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.portal-info-card{border:1px solid #303640;border-radius:14px;background:#15191e;padding:14px}.portal-info-card span{display:block;font-size:10px;color:#8f959e}.portal-info-card strong{display:block;margin-top:6px;font-size:15px}.portal-actions-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}.portal-action{border:1px solid #343a43;background:#15191e;color:#e3e5e8;border-radius:13px;padding:14px 10px;text-align:center;cursor:pointer}.portal-action:hover{border-color:#a77d27;color:#f1c966}.portal-tabs{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}.portal-tab{border:1px solid #343a43;background:#12151a;color:#aeb3ba;border-radius:999px;padding:8px 12px;cursor:pointer}.portal-tab.active{background:#2a2214;border-color:#9f7924;color:#f0c85f}.portal-section{margin-top:12px;border:1px solid #303640;border-radius:15px;background:#12151a;padding:14px}.client-login-demo{position:fixed;inset:0;z-index:1200;background:radial-gradient(circle at 15% 5%,rgba(212,168,63,.16),transparent 28%),#080a0d;display:grid;place-items:center;padding:18px}.client-login-demo.hidden{display:none}.client-login-card{width:min(460px,94vw);background:#121519;border:1px solid #343a43;border-radius:22px;padding:28px;box-shadow:0 40px 100px rgba(0,0,0,.6)}.client-login-card img{display:block;width:210px;max-width:66%;margin:0 auto 18px}.forgot-link{border:0;background:transparent;color:#e0b64f;cursor:pointer;padding:4px 0}.portal-password-note{margin-top:12px;font-size:11px;color:#9ca2ab}.portal-password-note b{color:#f0c65e}
.manager-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border:1px solid #85661f;background:#2a2213;color:#f0c65e;border-radius:999px;font-size:10px}
@media(max-width:900px){.cash-layout,.portal-main-grid{grid-template-columns:1fr}.client-portal-toolbar,.portal-welcome{align-items:flex-start;flex-direction:column}.portal-actions-grid{grid-template-columns:1fr 1fr}.portal-info-cards{grid-template-columns:1fr 1fr}}


/* ===== v9 ===== */
.worker-mode .dashboard-greeting h1{color:#f2f3f5}
.password-row{display:flex;gap:8px}.password-row input{flex:1}.password-row .small-btn{white-space:nowrap}
.portal-loan-list{display:grid;gap:12px}.portal-loan-card{display:grid;grid-template-columns:1.25fr 1fr auto;gap:16px;align-items:center;background:#15191f;border:1px solid #313841;border-radius:14px;padding:16px}.portal-loan-card h4{font-size:22px;margin:4px 0}.portal-loan-stats{display:flex;gap:18px;flex-wrap:wrap}.portal-loan-stats span{display:flex;flex-direction:column;color:#8e949d;font-size:11px}.portal-loan-stats b{color:#f0f1f3;font-size:14px;margin-top:3px}.primary.mini{padding:7px 11px;font-size:12px}.portal-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.client-profile-card{display:flex;gap:14px;align-items:center;padding:14px 0}.portal-avatar.large{width:62px;height:62px;font-size:18px}.pay-method-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:12px 0 16px}.pay-method-card{border:1px solid #343a43;border-radius:14px;background:#15181d;padding:16px}.pay-method-card h3{color:#efc75e;margin-top:0}.payment-qr{display:block;max-width:180px;max-height:180px;border-radius:12px;background:#fff;padding:6px;margin:10px auto}.payment-qr-preview{max-width:160px;max-height:160px;border:1px solid #343a43;border-radius:12px;background:#fff;padding:5px;margin:4px 0 14px}
@media(max-width:800px){.portal-loan-card{grid-template-columns:1fr}.pay-method-grid{grid-template-columns:1fr}.password-row{flex-direction:column}}

/* ===== JMP Créditos v10: navegación lateral completa + reportes ===== */
.sidebar{display:flex;flex-direction:column;overflow:hidden;height:100vh}
.sidebar .brand{flex:0 0 auto}
.sidebar #nav{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:4px;scrollbar-width:thin;scrollbar-color:#6b5624 transparent}
.sidebar #nav::-webkit-scrollbar{width:6px}.sidebar #nav::-webkit-scrollbar-thumb{background:#6b5624;border-radius:10px}.sidebar #nav::-webkit-scrollbar-track{background:transparent}
.sidebar-note{flex:0 0 auto;margin-top:8px}
.report-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:12px}.report-actions .primary,.report-actions .secondary{flex:1;min-width:120px}
@media(max-height:760px){.brand .logo{width:150px!important}.brand{padding-bottom:10px!important}.nav-item{padding-top:8px!important;padding-bottom:8px!important}.sidebar-note{display:none}}


/* ===== v12 · Portal profesional del cliente ===== */
.client-real-portal{position:fixed;inset:0;z-index:5000;background:#0a0c0f;color:#f4f4f4;display:grid;grid-template-columns:245px 1fr;overflow:hidden}
.client-real-side{background:linear-gradient(180deg,#08090b,#0e1115);border-right:1px solid #292e35;padding:20px 14px;display:flex;flex-direction:column;overflow:auto}
.client-real-brand{padding:4px 8px 20px;border-bottom:1px solid #292e35;margin-bottom:16px}.client-real-brand img{display:block;width:180px;max-width:100%;margin:auto}.client-real-brand small{display:block;text-align:center;color:#a6abb3;font-size:10px;letter-spacing:.08em;text-transform:uppercase}
.client-real-nav{display:grid;gap:5px}.client-real-nav button{border:1px solid transparent;background:transparent;color:#c5c9cf;text-align:left;padding:12px 13px;border-radius:11px;cursor:pointer}.client-real-nav button:hover,.client-real-nav button.active{background:linear-gradient(90deg,rgba(212,168,63,.20),rgba(212,168,63,.06));border-color:rgba(212,168,63,.36);color:#fff}.client-real-nav button span{display:inline-block;width:25px;color:#efc75e}
.client-real-user{margin-top:auto;border:1px solid #303640;border-radius:14px;padding:12px;display:flex;gap:10px;align-items:center;background:#14181d}.client-real-user small,.client-real-user strong{display:block}.client-real-user small{color:#8e949d;margin-top:2px}
.client-real-main{overflow:auto;background:radial-gradient(circle at 85% 5%,rgba(212,168,63,.08),transparent 26%),#0c0e11}
.client-real-top{height:70px;display:flex;align-items:center;justify-content:space-between;padding:0 26px;border-bottom:1px solid #282d34;background:rgba(10,12,15,.94);position:sticky;top:0;z-index:3}.client-real-top-left{display:flex;align-items:center;gap:10px}.client-real-top-right{display:flex;align-items:center;gap:10px}.client-real-top .client-date{color:#e6c66f;border:1px solid #493a19;border-radius:10px;padding:8px 11px;font-size:12px}.client-real-logout{border:1px solid #383e46;background:#15191e;color:#e5e7eb;border-radius:9px;padding:8px 12px;cursor:pointer}
.client-real-content{padding:26px;max-width:1440px;margin:auto}.client-greeting{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin-bottom:18px}.client-greeting h1{margin:4px 0 3px;font-size:30px}.client-greeting p{margin:0;color:#979da6}
.client-hero-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:14px;margin-bottom:16px}.client-gold-card{padding:22px;border:1px solid #9b7620;border-radius:18px;background:linear-gradient(135deg,#e1b54b,#956713);color:#18120a;box-shadow:0 18px 45px rgba(0,0,0,.25)}.client-gold-card span,.client-gold-card small{display:block}.client-gold-card strong{display:block;font-size:36px;margin:7px 0}.client-next-card{padding:20px;border:1px solid #313740;border-radius:18px;background:#15191e}.client-next-card h3{margin:0 0 12px}.client-next-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.client-next-row div{border:1px solid #303640;border-radius:12px;background:#101318;padding:12px}.client-next-row span,.client-next-row strong{display:block}.client-next-row span{font-size:10px;color:#90969f}.client-next-row strong{margin-top:5px}
.client-dashboard-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.client-dashboard-card{border:1px solid #303640;border-radius:15px;background:#15191e;padding:15px}.client-dashboard-card span{display:block;color:#9197a0;font-size:10px}.client-dashboard-card strong{display:block;font-size:18px;margin-top:6px}
.client-real-panel{border:1px solid #303640;border-radius:17px;background:#13171c;padding:18px;margin-bottom:16px;box-shadow:0 16px 45px rgba(0,0,0,.16)}.client-real-panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:13px}.client-real-panel h2,.client-real-panel h3{margin:0}.client-loan-pro-list{display:grid;gap:12px}.client-loan-pro{display:grid;grid-template-columns:1.2fr 1fr auto;gap:16px;align-items:center;border:1px solid #303740;border-radius:14px;background:#101318;padding:16px}.client-loan-pro h3{margin:3px 0 5px}.client-loan-pro small{color:#89909a}.client-loan-metrics{display:flex;gap:20px;flex-wrap:wrap}.client-loan-metrics span{display:flex;flex-direction:column;font-size:10px;color:#8f959e}.client-loan-metrics b{font-size:13px;color:#f2f3f5;margin-top:4px}.client-loan-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.client-status-chip{display:inline-block;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:800}.client-status-chip.active{background:rgba(62,207,142,.12);color:#76ddb0}.client-status-chip.late{background:rgba(255,102,102,.12);color:#ff9292}.client-status-chip.paid{background:rgba(88,166,255,.12);color:#8ac3ff}
.client-profile-layout{display:grid;grid-template-columns:280px 1fr;gap:16px}.client-profile-summary{border:1px solid #303640;border-radius:16px;background:#111419;padding:20px;text-align:center}.client-profile-photo{width:96px;height:96px;border-radius:50%;margin:0 auto 12px;display:grid;place-items:center;overflow:hidden;background:linear-gradient(145deg,#efc85d,#966714);color:#17110a;font-size:27px;font-weight:900;border:3px solid #353b43}.client-profile-photo img{width:100%;height:100%;object-fit:cover}.client-profile-summary h3{margin:5px 0}.client-profile-summary p{margin:0;color:#8e949d}.client-profile-form{border:1px solid #303640;border-radius:16px;background:#111419;padding:20px}
.security-card{display:grid;grid-template-columns:1fr auto;align-items:center;gap:14px;border:1px solid #303640;border-radius:13px;background:#101318;padding:15px;margin-bottom:10px}.security-card p{margin:4px 0 0;color:#8e949d;font-size:12px}
.client-notification-list{display:grid;gap:9px}.client-notification{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px;border:1px solid #303640;border-radius:12px;background:#101318}.client-notification small{display:block;color:#8e949d;margin-top:3px}
.client-mobile-menu{display:none}
.client-recovery-step{margin-top:14px;border:1px solid #363d46;border-radius:12px;padding:13px;background:#101318}.client-recovery-code{font-size:24px;letter-spacing:.18em;color:#f0c65e;font-weight:900;text-align:center;margin:10px 0}
@media(max-width:980px){.client-real-portal{grid-template-columns:1fr}.client-real-side{display:none}.client-mobile-menu{display:inline-block}.client-hero-grid,.client-profile-layout{grid-template-columns:1fr}.client-dashboard-cards{grid-template-columns:repeat(2,1fr)}.client-loan-pro{grid-template-columns:1fr}.client-loan-actions{justify-content:flex-start}}
@media(max-width:620px){.client-real-content{padding:15px}.client-real-top{padding:0 14px}.client-real-top .client-date{display:none}.client-greeting{align-items:flex-start;flex-direction:column}.client-dashboard-cards,.client-next-row{grid-template-columns:1fr}.client-gold-card strong{font-size:30px}.client-loan-metrics{gap:12px}.client-real-top-right strong{display:none}}


/* ===== v13 · pagos presenciales, contratos físicos y mejoras de cronograma ===== */
.cash-code-card{border:1px solid rgba(212,168,63,.42);background:linear-gradient(145deg,#19170f,#12151a);border-radius:15px;padding:16px;margin-bottom:16px}
.cash-code-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}.cash-code-row input{font-size:22px;letter-spacing:.18em;text-align:center;text-transform:uppercase}
.cash-code-display{font-size:32px;letter-spacing:.18em;font-weight:900;color:#efc65e;text-align:center;padding:14px;border:1px dashed #8f6b20;border-radius:12px;background:#111318;margin:12px 0}
.physical-contract-box{border:1px solid #343a43;border-radius:14px;background:#111419;padding:15px;margin-top:14px}.physical-contract-box h3{margin:0 0 6px}.physical-contract-box p{margin:0 0 12px;color:#959ba4;font-size:12px}.physical-contract-actions{display:flex;gap:8px;flex-wrap:wrap}.contract-method-chip{display:inline-block;padding:5px 9px;border-radius:999px;font-size:10px;font-weight:800;background:rgba(212,168,63,.12);color:#e9c766;border:1px solid rgba(212,168,63,.28)}
.client-loan-pro .loan-doc-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.client-loan-pro .loan-doc-actions .small-btn{font-size:11px}
.schedule-download-callout{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid rgba(212,168,63,.34);background:rgba(212,168,63,.06);border-radius:12px;padding:12px;margin-bottom:12px}.schedule-download-callout p{margin:2px 0 0;color:#9ca1a9;font-size:11px}
.pay-help-box{border:1px solid #343b44;border-radius:12px;background:#101318;padding:12px;margin-top:8px}.pay-help-box strong{display:block;margin-bottom:4px}.pay-help-box span{color:#9298a1;font-size:11px}
@media(max-width:700px){.cash-code-row{grid-template-columns:1fr}.physical-contract-actions{flex-direction:column}.physical-contract-actions button,.physical-contract-actions label{width:100%;text-align:center}}


/* ===== v14 · perfil de usuario y correcciones del portal ===== */
.user-chip{cursor:pointer;transition:.18s ease}.user-chip:hover{border-color:#8b6a22!important;background:#17191e!important}
.user-profile-grid{display:grid;grid-template-columns:220px 1fr;gap:16px}.user-profile-card{border:1px solid #323841;border-radius:16px;background:#111419;padding:20px;text-align:center}.user-profile-avatar{width:86px;height:86px;border-radius:50%;margin:0 auto 12px;display:grid;place-items:center;background:linear-gradient(145deg,#efc65d,#966815);color:#17110a;font-size:28px;font-weight:900}.user-profile-form{border:1px solid #323841;border-radius:16px;background:#111419;padding:20px}.user-profile-note{border:1px solid rgba(212,168,63,.3);background:rgba(212,168,63,.06);border-radius:12px;padding:12px;color:#d4c38f;font-size:12px;margin-top:12px}
.preview-loans-list{display:grid;gap:10px}.preview-loan-row{border:1px solid #303640;border-radius:13px;padding:14px;background:#101318;display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}.preview-loan-row small{display:block;color:#9197a0;margin-top:3px}.preview-loan-actions{display:flex;gap:7px;flex-wrap:wrap}
.portal-pay-primary{background:linear-gradient(180deg,#efc75e,#bd8e27)!important;color:#17110a!important;border-color:#e4bb52!important}
.contract-signature-seal{border:1px solid #dedede;border-radius:8px;padding:8px;background:#fff}
@media(max-width:760px){.user-profile-grid{grid-template-columns:1fr}.preview-loan-row{grid-template-columns:1fr}.preview-loan-actions{justify-content:flex-start}}

/* ===== FIX ÚNICO v14: ventana de pago visible sobre el portal del cliente ===== */
.client-real-portal ~ .modal,
body > .modal {
  z-index: 6500;
}
.toast {
  z-index: 7000;
}

/* v14: solo estilos para las dos funciones nuevas */
.cancel-debt-btn,.cancel-full-v14{border-color:rgba(226,177,61,.55)!important;color:#efca69!important}

/* Solo añadido: acciones de notificación */
.notification-actions{display:flex;gap:6px;justify-content:flex-end;margin-top:7px;flex-wrap:wrap}.notification-item small{display:block;color:#818894;margin-top:4px}.whatsapp-btn{border-color:rgba(67,200,125,.35)!important}.client-profile-form .contract-check{margin-right:12px}

/* Instalación PWA — añadido sin alterar el diseño principal */
.install-app-btn{position:fixed;right:20px;bottom:20px;z-index:9000;border:1px solid rgba(230,185,66,.55);border-radius:12px;padding:12px 18px;background:linear-gradient(180deg,#efc85d,#bd8b20);color:#17120a;font-weight:800;box-shadow:0 12px 30px rgba(0,0,0,.35);cursor:pointer}
.install-app-btn.hidden{display:none}

/* Ajuste de avisos: centrados arriba para evitar superposición con sellos del hosting */
.toast{
  left:50%;
  right:auto;
  top:24px;
  bottom:auto;
  max-width:min(92vw,560px);
  width:max-content;
  text-align:center;
  transform:translate(-50%,-12px);
}
.toast.show{
  transform:translate(-50%,0);
}
@media(max-width:640px){
  .toast{
    top:14px;
    max-width:calc(100vw - 28px);
  }
}


/* Corrección menú lateral móvil: cierre visible y fondo tocable */
.sidebar-close,.sidebar-backdrop{display:none}
@media(max-width:1000px){
  .sidebar{z-index:1000}
  .sidebar.open{transform:translateX(0)}
  .sidebar-close{display:none;position:absolute;top:10px;right:10px;width:38px;height:38px;border:1px solid rgba(214,170,65,.45);border-radius:10px;background:#151719;color:#f3d273;font-size:28px;line-height:32px;align-items:center;justify-content:center;cursor:pointer;z-index:1002}
  .sidebar.open .sidebar-close{display:flex}
  .sidebar-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.58);z-index:999}
  .sidebar-backdrop.show{display:block}
  body.sidebar-open{overflow:hidden}
}

/* ===== Ajuste final: menú cerrable en móvil y escritorio ===== */
.sidebar{transition:transform .22s ease}
.sidebar-close{
  display:flex;
  position:absolute;
  top:10px;
  right:10px;
  width:36px;
  height:36px;
  border:1px solid rgba(214,170,65,.45);
  border-radius:10px;
  background:#151719;
  color:#f3d273;
  font-size:26px;
  line-height:1;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  z-index:1002;
}
.icon-btn{display:inline-block}
body.sidebar-collapsed .sidebar{transform:translateX(-100%)}
body.sidebar-collapsed .app-shell{margin-left:0}
@media(min-width:1001px){
  .sidebar-backdrop{display:none!important}
}
@media(max-width:1000px){
  .sidebar{transform:translateX(-100%);z-index:1000}
  .sidebar.open{transform:translateX(0)}
  .sidebar-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.58);z-index:999}
  .sidebar-backdrop.show{display:block}
  body.sidebar-open{overflow:hidden}
}

/* JMP Créditos v15: acceso directo al portal del cliente */
.login-client-submit{width:100%;margin-top:10px}
@media (max-width:760px){.login-client-submit{min-height:44px}}

/* JMP Créditos v16: push del cliente */
.client-push-panel{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}
.client-push-panel h2{margin:0 0 6px}.client-push-panel p{margin:0}
@media(max-width:700px){.client-push-panel{align-items:stretch;flex-direction:column}.client-push-panel button{width:100%}}

/* JMP Créditos v17: estados claros de cuotas y morosidad */
.badge.pending{background:#fff3cd;color:#8a6700;border:1px solid rgba(212,168,63,.35)}
.installment-late td{background:rgba(239,68,68,.07)}
.installment-late td:first-child{box-shadow:inset 3px 0 0 #ef4444}
.installment-today td{background:rgba(249,115,22,.06)}
.installment-today td:first-child{box-shadow:inset 3px 0 0 #f97316}
.installment-pending td{background:rgba(234,179,8,.025)}
.overdue-row td{background:rgba(239,68,68,.06)}
.today-note{border-color:rgba(249,115,22,.45)!important;background:rgba(249,115,22,.06)!important}

/* v19: mostrar/ocultar contraseña sin alterar el diseño */
.password-wrap-v19{position:relative;width:100%}.password-wrap-v19 input{width:100%;padding-right:46px!important}.password-eye-v19{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:inherit;cursor:pointer;font-size:18px;line-height:1;padding:6px 7px;border-radius:8px;opacity:.8}.password-eye-v19:hover{background:rgba(255,255,255,.06);opacity:1}

/* JMP Créditos v23: acceso cliente primero, acceso interno discreto */
.v23-client-entry .client-login-card{max-width:430px}
.v23-forgot{display:block;width:100%;margin:12px 0 4px;text-align:center}
.v23-hidden-staff-link{display:flex;flex-direction:column;align-items:center;gap:2px;width:100%;margin-top:22px;padding:10px 6px;border:0;background:transparent;color:#8f959e;cursor:pointer;font:inherit}
.v23-hidden-staff-link strong{color:#c8a84e;font-size:13px;letter-spacing:.04em}
.v23-hidden-staff-link span{font-size:11px;color:#727780}
.v23-hidden-staff-link:hover strong,.v23-hidden-staff-link:focus strong{color:#efc756}
.login-card .forgot-link{display:block;width:100%;margin:10px 0 2px;text-align:center;background:none;border:0;color:#d6b650;cursor:pointer}


/* ===== JMP Créditos v24: portal adaptable ===== */
.clickable-next-v24{cursor:pointer;transition:.16s}.clickable-next-v24:hover{border-color:#b98d31;transform:translateY(-1px)}
.client-view-toggle-v24{display:flex;gap:4px;padding:3px;border:1px solid #30353d;border-radius:9px;background:#0f1216}
.client-view-toggle-v24 button{border:0;background:transparent;color:#9fa5ae;border-radius:7px;padding:6px 8px;font-size:11px;cursor:pointer;white-space:nowrap}
.client-view-toggle-v24 button.active{background:#d6aa41;color:#15120b;font-weight:800}
.client-real-portal.view-mobile-v24{grid-template-columns:1fr!important}
.client-real-portal.view-mobile-v24 .client-real-side{display:none!important}
.client-real-portal.view-mobile-v24 .client-mobile-menu{display:inline-block!important}
.client-real-portal.view-mobile-v24 .client-real-content{padding:15px!important;max-width:760px!important}
.client-real-portal.view-mobile-v24 .client-hero-grid,.client-real-portal.view-mobile-v24 .client-profile-layout{grid-template-columns:1fr!important}
.client-real-portal.view-mobile-v24 .client-dashboard-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.client-real-portal.view-mobile-v24 .client-loan-pro{grid-template-columns:1fr!important}
.client-real-portal.view-desktop-v24{grid-template-columns:245px minmax(900px,1fr)!important;overflow:auto!important}
.client-real-portal.view-desktop-v24 .client-real-side{display:flex!important}
.client-real-portal.view-desktop-v24 .client-mobile-menu{display:none!important}
.client-real-portal.view-desktop-v24 .client-real-main{min-width:900px!important}
@media(max-width:700px){.client-view-toggle-v24 button{padding:5px 6px;font-size:10px}.client-real-portal.view-mobile-v24 .client-dashboard-cards{grid-template-columns:1fr!important}.client-real-portal.view-mobile-v24 .client-real-top-right .client-date{display:none!important}}

/* JMP Créditos v25: experiencia móvil y sincronización */
html.no-pull-refresh-v25, html.no-pull-refresh-v25 body{overscroll-behavior-y:none;overscroll-behavior-x:none}
.sync-v25{white-space:nowrap}
.client-empty-v25{padding:38px 20px;text-align:center;border:1px dashed #363a42;border-radius:16px;background:linear-gradient(145deg,#15171b,#111216)}
.client-empty-icon{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;margin:0 auto 12px;background:rgba(224,177,68,.12);color:#e0b144;font-size:23px}
.client-empty-v25 h3{margin:0 0 7px;font-size:20px}.client-empty-v25 p{max-width:520px;margin:0 auto 16px;color:#969ca6;line-height:1.5}
.loan-complete-v25{display:flex;gap:16px;align-items:flex-start;padding:20px;border:1px solid rgba(61,196,126,.28);border-radius:16px;background:linear-gradient(135deg,rgba(32,112,73,.18),rgba(18,20,24,.9))}
.loan-complete-icon{width:48px;height:48px;flex:0 0 48px;border-radius:50%;display:grid;place-items:center;background:#1d8c58;color:white;font-size:24px;font-weight:800}.loan-complete-v25 h3{margin:0 0 7px}.loan-complete-v25 p{margin:0 0 12px;color:#aeb4bd}
.client-real-content{padding-bottom:90px}
.view-mobile-v24 .client-real-content{max-width:760px!important;margin:0 auto!important;padding-left:14px!important;padding-right:14px!important}
.view-mobile-v24 .client-greeting{gap:14px;align-items:flex-start}.view-mobile-v24 .client-greeting>button{width:100%;max-width:260px}
.view-mobile-v24 .client-loan-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.view-mobile-v24 .client-loan-actions>*{width:100%}
@media(max-width:680px){.client-view-toggle-v24{order:2}.client-real-top-right{gap:6px!important}.client-real-top-right .client-date{display:none}.sync-v25{padding:7px 9px!important;font-size:11px}.client-greeting{flex-direction:column}.client-greeting>button{width:100%}.client-hero-grid,.client-dashboard-cards{grid-template-columns:1fr!important}.client-loan-metrics{grid-template-columns:1fr 1fr!important}.loan-complete-v25{flex-direction:column}}

/* ===== JMP Créditos v26: portal cliente premium + archivo ===== */
.client-real-content{background:radial-gradient(circle at 85% 0%,rgba(214,170,65,.08),transparent 34%)}
.client-greeting-v26{padding:4px 0 2px}.client-greeting-v26 h1{font-size:clamp(28px,4vw,42px);letter-spacing:-.025em}
.client-gold-card-v26{position:relative;overflow:hidden;box-shadow:0 18px 50px rgba(178,131,30,.14)}
.client-gold-card-v26:after{content:"";position:absolute;width:180px;height:180px;border-radius:50%;right:-60px;top:-90px;background:rgba(255,255,255,.12)}
.client-contact-v26{display:grid;grid-template-columns:48px 1fr auto;gap:14px;align-items:center;margin:18px 0;padding:17px 18px;border:1px solid rgba(214,170,65,.27);border-radius:16px;background:linear-gradient(135deg,rgba(214,170,65,.09),rgba(18,20,24,.95));box-shadow:0 14px 34px rgba(0,0,0,.18)}
.client-contact-v26-icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,#e7bc52,#9e741c);color:#17130a;font-size:22px;font-weight:900}.client-contact-v26 strong{font-size:15px}.client-contact-v26 p{margin:4px 0 0;color:#9da4ad;line-height:1.4;font-size:12px}
.client-loan-pro-v26{border-color:rgba(214,170,65,.22)!important;background:linear-gradient(145deg,#17191e,#111318)!important;box-shadow:0 14px 35px rgba(0,0,0,.18)}
.client-loan-title-v26 h3{font-size:20px;margin:8px 0 4px}.client-loan-title-v26 small{color:#9198a2}
.client-archive-v26{display:grid;grid-template-columns:48px 1fr auto;gap:14px;align-items:center;padding:16px;margin:10px 0;border:1px solid rgba(56,190,126,.25);border-radius:15px;background:linear-gradient(135deg,rgba(29,140,88,.12),rgba(17,19,23,.96))}
.client-archive-v26-icon{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:#1d8c58;color:#fff;font-size:21px;font-weight:900}.client-archive-v26-info span{font-size:10px;letter-spacing:.12em;color:#64d69a;font-weight:800}.client-archive-v26-info h3{margin:3px 0;font-size:18px}.client-archive-v26-info p{margin:0;color:#969da7;font-size:12px}.client-archive-v26-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.client-archive-v26-actions a{text-decoration:none}
.client-empty-pro-v26 .actions{justify-content:center;display:flex;gap:8px;flex-wrap:wrap}.client-empty-pro-v26 a{text-decoration:none}
.paid-cleanup-v26{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 14px;padding:14px 16px;border:1px solid rgba(61,196,126,.25);border-radius:13px;background:rgba(35,125,80,.09)}.paid-cleanup-v26 div{display:flex;flex-direction:column;gap:3px}.paid-cleanup-v26 span{font-size:12px;color:#9299a2}
@media(max-width:700px){.client-contact-v26,.client-archive-v26{grid-template-columns:1fr}.client-contact-v26-icon,.client-archive-v26-icon{margin-bottom:2px}.client-contact-v26 .primary,.client-archive-v26-actions>*{width:100%;text-align:center}.client-archive-v26-actions{display:grid;grid-template-columns:1fr}.paid-cleanup-v26{align-items:stretch;flex-direction:column}.paid-cleanup-v26 button{width:100%}}

/* JMP Créditos v30: aviso persistente de cuota vencida en portal del cliente */
.client-overdue-alert-v30{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;margin:0 0 16px;padding:16px 18px;border:1px solid rgba(239,68,68,.38);background:linear-gradient(135deg,rgba(127,29,29,.30),rgba(69,10,10,.18));border-radius:16px;box-shadow:0 10px 28px rgba(0,0,0,.14)}
.client-overdue-icon-v30{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:rgba(239,68,68,.18);border:1px solid rgba(248,113,113,.38);font-weight:900;font-size:22px;color:#fecaca}
.client-overdue-copy-v30 strong{display:block;font-size:16px;color:#fee2e2;margin-bottom:4px}.client-overdue-copy-v30 p{margin:0;color:#c9cdd4;line-height:1.45}
@media(max-width:700px){.client-overdue-alert-v30{grid-template-columns:auto 1fr}.client-overdue-alert-v30 .primary{grid-column:1/-1;width:100%}}

/* JMP Créditos v31: campana global y foto de gerente */
.top-notification-bell-v31,.client-notification-bell-v31{position:relative;width:38px;height:38px;border:1px solid #353a42;background:#15191e;color:#f3cc68;border-radius:10px;display:grid;place-items:center;cursor:pointer;font-size:17px;line-height:1}.top-notification-bell-v31:hover,.client-notification-bell-v31:hover{border-color:#9a772b;background:#1b1a15}.top-notification-bell-v31 span,.client-notification-bell-v31 span{position:absolute;right:-4px;top:-5px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:#d94444;color:white;font-size:9px;font-weight:900;display:grid;place-items:center;border:2px solid #0b0d10}.admin-avatar.has-photo-v31{overflow:hidden;padding:0}.admin-avatar.has-photo-v31 img{width:100%;height:100%;object-fit:cover;display:block}.user-profile-avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit}.profile-photo-actions-v31{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:14px}.profile-photo-actions-v31 .file-label{display:inline-flex;align-items:center;justify-content:center}@media(max-width:680px){.top-notification-bell-v31,.client-notification-bell-v31{width:34px;height:34px;font-size:15px}.topbar-right{gap:7px!important}}
