:root{--green:#008f45;--green-dark:#00783b;--soft:#f7faf8;--line:#edf0f2;--txt:#111827;--muted:#6b7280;--bg:#ffffff;--shadow:0 8px 24px rgba(17,24,39,.06);--shadow-lg:0 16px 40px rgba(17,24,39,.09)}*{box-sizing:border-box}body{margin:0;font-family:'Inter',Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--txt);-webkit-font-smoothing:antialiased}.hidden{display:none!important}svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.login-screen{min-height:100vh;display:grid;place-items:center;background:var(--bg)}.login-card{width:360px;max-width:92vw;background:#fff;border:1px solid var(--line);border-radius:28px;padding:38px;box-shadow:var(--shadow-lg);text-align:center}.logo{font-weight:900;font-size:48px;letter-spacing:-3px;color:#7fbf12}.logo:after{content:' ';display:inline-block;width:16px;height:24px;background:#008f55;border-radius:80% 0 80% 0;transform:rotate(-25deg);margin-left:-28px;margin-bottom:23px}.logo.big{font-size:70px}.logo.small{font-size:28px;letter-spacing:-1px}.login-card input{width:100%;padding:16px;border:1px solid var(--line);border-radius:14px;margin:8px 0;font-size:16px;transition:.15s;background:#fff}.login-card input:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px #00944822}.login-card button,.actions button{width:100%;padding:15px;border:0;border-radius:14px;background:linear-gradient(135deg,#009448,#00783b);color:white;font-weight:800;cursor:pointer;transition:.15s}.login-card button:hover{background:linear-gradient(135deg,#00a651,#008544);box-shadow:0 8px 20px #008f4533;transform:translateY(-1px)}.login-card button:active{transform:translateY(0)}.back-link{display:inline-block;margin-top:20px;color:var(--muted);font-size:14px;text-decoration:none}.back-link:hover{color:var(--green)}.app{display:flex;min-height:100vh;background:var(--bg)}.sidebar-backdrop{display:none}.sidebar{width:250px;background:#fff;border-right:1px solid var(--line);padding:24px;position:fixed;top:0;bottom:0;left:0;overflow:auto}.brand span,.side-card span{display:block;color:var(--muted);font-size:14px}.sidebar nav{display:grid;gap:6px;margin-top:28px}.sidebar button{display:flex;align-items:center;gap:12px;border:0;background:transparent;text-align:left;padding:13px 14px;border-radius:12px;font-weight:700;cursor:pointer;color:var(--txt);transition:.15s}.sidebar button svg{width:20px;height:20px;flex:0 0 auto;opacity:.85}.sidebar button:hover{background:var(--soft)}.sidebar button.active{background:linear-gradient(135deg,#00a651,#00783b);color:white;box-shadow:0 8px 18px #008f4533}.sidebar button.active svg{opacity:1}.sidebar button.active:hover{background:linear-gradient(135deg,#00a651,#00783b)}.side-card{border:1px solid var(--line);border-radius:16px;padding:18px;margin-top:42px;background:linear-gradient(180deg,#fff,#f7fff9)}
.logout-btn{margin-top:12px;width:100%;padding:9px;border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:9px;font-weight:700;font-size:12.5px;cursor:pointer;transition:.15s}
.logout-btn:hover{background:#fee2e2;color:#dc2626;border-color:#fecaca}main{margin-left:250px;width:calc(100% - 250px);background:var(--bg)}header{height:92px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:18px;padding:0 34px;position:sticky;top:0;z-index:10}.hamb{border:0;background:#fff;cursor:pointer;border-radius:10px;transition:.15s;width:40px;height:40px;display:grid;place-items:center;color:var(--txt)}.hamb svg{width:22px;height:22px}.hamb:hover{background:var(--soft)}header h1{margin:0;font-size:30px;letter-spacing:-.5px}header p{margin:3px 0;color:var(--muted)}.topbar{margin-left:auto;display:flex;align-items:center;gap:16px}.date{border:1px solid var(--line);padding:12px 16px;border-radius:12px;color:var(--muted);display:flex;align-items:center;gap:8px}.date svg{width:16px;height:16px}.avatar{background:linear-gradient(135deg,#00a651,#00783b);color:white;border-radius:50%;width:42px;height:42px;display:grid;place-items:center;font-weight:900;box-shadow:0 6px 14px #008f4540}.section{display:none;padding:28px}.section.active{display:block}.cards{display:grid;gap:20px;margin-bottom:20px}.cards.top{grid-template-columns:repeat(4,1fr)}.cards.cats{grid-template-columns:repeat(3,1fr)}.card,.panel{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);transition:.2s}.card.kpi:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.kpi{padding:26px;display:flex;align-items:center;gap:22px;min-height:130px}.kpi h2{font-size:29px;margin:12px 0}.kpi p,.panel p{color:var(--muted);margin:6px 0}.icon{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;font-size:28px;font-weight:900}.icon svg{width:28px;height:28px}.green{background:#daf5e5;color:#008f45}.purple{background:#f0e8ff}.gold{background:#fff1cf;color:#f59e0b}.violet{background:#f3e8ff;color:#8e3fd1}.brown{background:#a64b00;color:white}.blue{background:#0075d7;color:white}.ok{background:#35b765;color:white}.brown-text{color:#93400b}.blue-text{color:#0068c9}.green-text{color:#008f45}.grid{display:grid;grid-template-columns:1.2fr .8fr;gap:20px;margin-bottom:20px}.grid.three{grid-template-columns:repeat(3,1fr)}.panel{padding:20px}h3{margin:0 0 16px;letter-spacing:-.2px}.table-wrap{overflow:auto}.table-wrap.scroll{max-height:560px;overflow:auto}.table-wrap.scroll thead th{position:sticky;top:0;z-index:1}table{width:100%;border-collapse:collapse}th,td{padding:13px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}th{background:var(--soft);color:var(--muted);font-size:13px;text-transform:uppercase;letter-spacing:.04em}.num{text-align:right;font-variant-numeric:tabular-nums}tbody tr{transition:.12s}tbody tr:hover{background:var(--soft)}.empty{text-align:center;color:#9ca3af}.chart-row{display:flex;align-items:center;gap:28px}.donut{width:190px;height:190px;flex:0 0 190px;aspect-ratio:1/1;border-radius:50%;background:conic-gradient(#9b4a00 0 65%,#0875d1 65% 90%,#109447 90% 100%);position:relative;box-shadow:var(--shadow)}.donut-center{position:absolute;inset:45px;background:#fff;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:inset 0 0 0 1px var(--line);text-align:center}.donut-center span{font-weight:800;font-size:14px;color:var(--txt)}.donut-center small{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.04em}.legend-item{display:flex;gap:10px;align-items:center;margin:16px 0}.dot{width:12px;height:12px;border-radius:50%;display:inline-block;flex:0 0 auto}.actions{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.actions button{background:#fff;color:#008f45;border:1px solid #ccebd8;box-shadow:none;display:flex;align-items:center;justify-content:center;gap:10px}.actions button svg{width:18px;height:18px}.actions button:hover{background:#f2fbf6;box-shadow:none;transform:none;border-color:#008f45}.red{color:#dc2626}.empty-state.panel{padding:56px 24px;text-align:center;border:2px dashed var(--line);background:var(--soft);box-shadow:none}.empty-icon{width:64px;height:64px;border-radius:50%;background:#fff;border:1px solid var(--line);display:grid;place-items:center;margin:0 auto 18px;color:var(--green)}.empty-icon svg{width:28px;height:28px}.empty-state h3{margin:0 0 8px;font-size:18px}.empty-state p{max-width:360px;margin:0 auto 16px;color:var(--muted)}.badge{display:inline-block;padding:6px 14px;border-radius:999px;background:#fff1cf;color:#b45309;font-size:12px;font-weight:700;letter-spacing:.03em}.report-toolbar{display:flex;align-items:center;gap:12px}.report-toolbar label{font-weight:700;color:var(--muted);font-size:14px}.report-toolbar select{padding:10px 14px;border:1px solid var(--line);border-radius:10px;font-family:inherit;font-size:14px;font-weight:600;color:var(--txt);background:#fff;cursor:pointer}.report-toolbar select:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px #00944822}
.report-toolbar input[type="date"]{padding:9px 14px;border:1px solid var(--line);border-radius:10px;font-family:inherit;font-size:14px;font-weight:600;color:var(--txt);background:#fff}
.report-toolbar input[type="date"]:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px #00944822}
.dash-range{margin-bottom:20px;flex-wrap:wrap}
.opportunities-banner{background:linear-gradient(135deg,#eafaf0,#f7faf8);border:1px solid #ccebd8;border-radius:18px;padding:22px 26px;margin-bottom:20px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.opp-headline{display:flex;align-items:center;gap:12px;font-weight:800;font-size:17px;color:var(--green-dark)}
.opp-icon{width:38px;height:38px;border-radius:50%;background:#fff;display:grid;place-items:center;color:#f59e0b;flex:0 0 auto}
.opp-icon svg{width:20px;height:20px}
.opp-countries{display:flex;gap:10px;flex-wrap:wrap;flex:1}
.opp-country{background:#fff;border:1px solid var(--line);padding:7px 14px;border-radius:999px;font-weight:700;font-size:13px}
.followup-banner{background:linear-gradient(135deg,#fff8e6,#f7faf8);border:1px solid #fde68a;border-radius:18px;padding:22px 26px;margin-bottom:20px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.followup-banner .opp-headline{color:#b45309}
.followup-banner .opp-icon{color:#f59e0b}
.account-hero{background:linear-gradient(135deg,#0f2d1a,#1a4a2c);border-radius:20px;padding:32px;margin-bottom:20px;color:#fff}
.account-hero-label{font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#9fd9b5;margin-bottom:8px}
.account-hero-balance{font-size:44px;font-weight:900;letter-spacing:-1px}
.account-hero-balance.negative{color:#ff9b9b}
.account-hero-grid{display:flex;align-items:flex-end;gap:40px;flex-wrap:wrap}
.account-hero-stat .account-hero-balance.sub{font-size:24px;color:#d7f5e2}
.account-hero-stat .account-hero-balance.sub.negative{color:#ff9b9b}
.mini-account-strip{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}
.mini-stat{display:flex;align-items:center;gap:8px;background:var(--soft);border:1px solid var(--line);border-radius:999px;padding:8px 16px}
.mini-stat-label{font-size:11.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
.mini-stat-value{font-size:13.5px;font-weight:800;color:var(--txt)}
.mini-stat-value.negative{color:#dc2626}
#miniSaldoTotal{color:#2563eb}
#miniSaldoFinal{color:#f59e0b}
.cuenta-kpis{grid-template-columns:repeat(2,1fr)}.report-kpis{margin-top:20px}
.flow-projected{margin-bottom:20px}
.flow-projected-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px;flex-wrap:wrap}
.flow-projected-head h3{margin:0}
.badge-soft{font-size:12px;font-weight:700;color:var(--muted);background:var(--soft);padding:5px 12px;border-radius:999px}
.flow-projected-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.flow-stat{padding:18px;border-radius:14px;background:var(--soft);display:flex;flex-direction:column;gap:6px}
.flow-stat.total{background:linear-gradient(135deg,#eafaf0,#f7faf8);border:1px solid #ccebd8}
.flow-label{font-size:12.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
.flow-stat b{font-size:22px}
.print-header{display:none}
@media print{
  .sidebar,.sidebar-backdrop,header,.section-toolbar .btn-add,.report-toolbar select,.report-toolbar label,.dash-range,.opportunities-banner,.followup-banner,.tabs,.btn-add,.btn-mini,.row-actions,.search-input,.actions,#loadingOverlay,#modalRoot{display:none!important}
  main{margin-left:0!important;width:100%!important}
  body{background:#fff}
  .section{display:none!important}
  .section.active{display:block!important}
  .print-header{display:flex!important;align-items:center;gap:14px;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid #008f45}
  .print-header b{display:block;font-size:18px}
  .print-header span{display:block;color:#6b7280;font-size:13px}
  .panel,.card{box-shadow:none!important;border:1px solid #ddd!important}
  .table-wrap.scroll{max-height:none!important;overflow:visible!important}
  .table-wrap.scroll thead th{position:static!important}
}
.trend-chart{display:flex;align-items:flex-end;gap:18px;height:200px;padding:10px 4px 0;overflow-x:auto}
.trend-bar-wrap{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:36px;flex:1}
.trend-value{font-size:11px;font-weight:700;color:var(--muted);white-space:nowrap}
.trend-bar{width:28px;border-radius:6px 6px 2px 2px;background:linear-gradient(180deg,#00a651,#00783b);transition:.2s}
.trend-bar-wrap:hover .trend-bar{background:linear-gradient(180deg,#00c25f,#008f45)}
.trend-label{font-size:12px;color:var(--muted);font-weight:600}
.loading-overlay{position:fixed;inset:0;background:rgba(255,255,255,.85);backdrop-filter:blur(2px);z-index:1000;display:flex;align-items:center;justify-content:center}
.loading-box{display:flex;flex-direction:column;align-items:center;gap:14px;color:var(--muted);font-weight:700}
.spinner{width:36px;height:36px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--green);animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.section-toolbar{display:flex;align-items:center;gap:16px;margin-bottom:20px;flex-wrap:wrap}
.section-toolbar h2{margin:0 auto 0 0}
.search-input{flex:1;min-width:180px;max-width:320px;padding:11px 16px;border:1px solid var(--line);border-radius:10px;font-family:inherit;font-size:14px;background:#fff;color:var(--txt)}
.search-input:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px #00944822}
.btn-add{display:inline-flex;align-items:center;gap:8px;padding:12px 18px;border:0;border-radius:12px;background:linear-gradient(135deg,#009448,#00783b);color:#fff;font-weight:800;font-size:14px;cursor:pointer;transition:.15s;box-shadow:0 8px 18px #008f4533}
.btn-add svg{width:16px;height:16px}
.btn-add:hover{background:linear-gradient(135deg,#00a651,#008544);transform:translateY(-1px)}
.btn-mini{padding:7px 12px;border:1px solid #ccebd8;background:#f2fbf6;color:var(--green-dark);border-radius:8px;font-weight:700;font-size:12px;cursor:pointer;transition:.15s;white-space:nowrap}
.btn-mini:hover{background:#e6f7ec;border-color:var(--green)}
.row-actions{display:flex;gap:6px;justify-content:flex-end;white-space:nowrap}
.icon-btn{width:32px;height:32px;display:inline-grid;place-items:center;border:1px solid var(--line);background:#fff;border-radius:9px;cursor:pointer;color:var(--muted);transition:.15s}
.icon-btn svg{width:15px;height:15px}
.icon-btn:hover{background:var(--soft);color:var(--txt);border-color:#ccc}
.icon-btn.danger:hover{background:#fee2e2;color:#dc2626;border-color:#fecaca}
.status-badge{display:inline-block;padding:5px 12px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.02em}
.status-badge.sold{background:#daf5e5;color:#008f45}
.status-badge.pending{background:#fff1cf;color:#b45309}
.status-badge.overdue{background:#fee2e2;color:#dc2626}
.status-badge.neutral{background:#f1f2f4;color:#5b6472}
.contacto-fecha{display:block;margin-top:4px;font-size:11px;color:var(--muted)}
.row-overdue{background:#fef2f2}
.row-overdue:hover{background:#fee2e2}
.icon.danger{background:#fee2e2;color:#dc2626}
.tabs{display:flex;gap:8px;margin-bottom:20px;border-bottom:1px solid var(--line)}
.tab-btn{padding:12px 18px;border:0;background:transparent;font-weight:700;font-size:14px;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;transition:.15s;margin-bottom:-1px}
.tab-btn:hover{color:var(--txt)}
.tab-btn.active{color:var(--green);border-bottom-color:var(--green)}
.pagos-kpis{grid-template-columns:repeat(3,1fr)}
.modal-overlay{position:fixed;inset:0;background:rgba(17,24,39,.5);z-index:2000;display:flex;align-items:center;justify-content:center;padding:20px}
.modal-box{background:#fff;border-radius:20px;width:560px;max-width:100%;max-height:88vh;overflow:auto;box-shadow:var(--shadow-lg)}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:22px 26px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:1}
.modal-head h3{margin:0;font-size:19px}
.modal-close{width:32px;height:32px;border:0;background:var(--soft);border-radius:9px;cursor:pointer;font-size:18px;color:var(--muted);line-height:1}
.modal-close:hover{background:#eee;color:var(--txt)}
.modal-body-plain{padding:26px}
.modal-empty-msg{color:var(--muted);margin:0 0 18px}
.modal-actions-single{display:flex;justify-content:flex-end}
#modalForm{padding:26px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.ff{display:flex;flex-direction:column;gap:6px}
.ff.wide{grid-column:1/-1}
.ff label{font-size:12.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
.ff input,.ff select{padding:12px 14px;border:1px solid var(--line);border-radius:10px;font-family:inherit;font-size:14px;color:var(--txt);background:#fff;transition:.15s}
.ff input:focus,.ff select:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px #00944822}
.ff input:disabled{background:var(--soft);color:var(--muted)}
.modal-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:10px;margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}
.btn-cancel{padding:12px 20px;border:1px solid var(--line);background:#fff;border-radius:10px;font-weight:700;cursor:pointer;color:var(--muted);transition:.15s}
.btn-cancel:hover{background:var(--soft)}
.btn-save{padding:12px 22px;border:0;border-radius:10px;background:linear-gradient(135deg,#009448,#00783b);color:#fff;font-weight:800;cursor:pointer;transition:.15s}
.btn-save:hover{background:linear-gradient(135deg,#00a651,#008544)}
.btn-save:disabled{opacity:.6;cursor:default}
@media(max-width:560px){.form-grid{grid-template-columns:1fr}.section-toolbar{flex-direction:column;align-items:flex-start}.btn-add{width:100%;justify-content:center}}
@media(max-width:900px){.sidebar{transform:translateX(-100%);transition:.2s;z-index:20}.sidebar.open{transform:translateX(0)}body.menu-open .sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(17,24,39,.45);z-index:15}main{margin-left:0;width:100%}header{padding:14px;height:auto}.topbar b{display:none}.date{font-size:12px;padding:10px}.section{padding:14px}.cards.top,.cards.cats,.grid,.grid.three{grid-template-columns:1fr 1fr}.kpi{padding:18px;gap:12px;min-height:120px}.kpi h2{font-size:24px}.icon{width:52px;height:52px}.chart-row{display:block}.actions{grid-template-columns:repeat(2,1fr)}.flow-projected-grid{grid-template-columns:1fr}}@media(max-width:560px){.cards.top,.cards.cats,.grid,.grid.three{grid-template-columns:1fr 1fr}.card:nth-child(3),.card:nth-child(4),.grid .panel,.grid.three .panel{grid-column:auto}.kpi{flex-direction:column;text-align:center}.sidebar{width:82vw}.logo{font-size:38px}header h1{font-size:24px}.topbar{gap:8px}.avatar{width:36px;height:36px}.panel{padding:14px}.donut{width:150px;height:150px;flex-basis:150px}.actions button{font-size:12px;padding:12px}}@media(max-width:430px){.cards.top,.cards.cats,.grid,.grid.three{grid-template-columns:1fr}.actions{grid-template-columns:repeat(4,1fr)}.actions button{padding:12px 8px;font-size:0}.actions button::first-letter{font-size:18px}}
@media(max-width:560px){.account-hero{padding:22px}.account-hero-balance{font-size:32px}.account-hero-grid{gap:22px}.account-hero-stat .account-hero-balance.sub{font-size:19px}.cuenta-kpis{grid-template-columns:1fr}}
