:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#172033;background:#f4f6f9;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top left,#e9efff,transparent 40%),linear-gradient(135deg,#f8fafc,#e7ecf5)}.login-card{width:min(420px,100%);background:white;padding:38px;border-radius:22px;box-shadow:0 24px 70px #1a274924}.brand-mark,.company-icon{display:grid;place-items:center;background:#1d4ed8;color:#fff;border-radius:14px}.brand-mark{width:54px;height:54px;margin-bottom:20px}.login-card h1{margin:0 0 7px}.login-card>p{margin:0 0 28px;color:#687386}.login-card label{display:block;font-weight:650;margin:16px 0 7px}.input-icon{height:48px;border:1px solid #d9dfeb;border-radius:12px;display:flex;align-items:center;gap:10px;padding:0 14px;color:#7b879a}.input-icon:focus-within{border-color:#2563eb;box-shadow:0 0 0 3px #dbeafe}.input-icon input{border:0;outline:0;width:100%;height:100%}.primary,.secondary{border:0;border-radius:11px;padding:12px 18px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700}.primary{background:#1d4ed8;color:#fff}.primary:hover{background:#1e40af}.primary:disabled{opacity:.6}.secondary{background:#eef2ff;color:#1e40af}.wide{width:100%;margin-top:20px}.alert{padding:12px 14px;border-radius:10px;margin-top:16px}.error{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}.app-shell{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:#111827;color:#fff;padding:22px 16px;display:flex;flex-direction:column}.sidebar-brand{display:flex;align-items:center;justify-content:center;gap:10px;font-size:20px;font-weight:800;padding:18px 10px 30px;overflow:visible}.sidebar nav{display:grid;gap:7px}.sidebar nav a{color:#cbd5e1;text-decoration:none;display:flex;align-items:center;gap:11px;padding:12px;border-radius:10px;font-weight:650}.sidebar nav a:hover,.sidebar nav a.active{background:#1f2937;color:#fff}.sidebar-user{margin-top:auto;border-top:1px solid #334155;padding:18px 8px 0;display:flex;align-items:center;justify-content:space-between}.sidebar-user div{display:grid}.sidebar-user small{color:#94a3b8;margin-top:2px}.sidebar-user button{border:0;background:transparent;color:#cbd5e1}.main{min-width:0}.page{padding:34px;max-width:1540px;margin:auto}.page-title h1{margin:0 0 8px;font-size:30px}.page-title p{margin:0;color:#64748b}.upload-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:26px}.upload-box{background:white;border:1px solid #e4e9f1;border-radius:16px;padding:20px;box-shadow:0 8px 24px #0f172a09}.upload-box h3{margin:0 0 6px;font-size:17px}.upload-box p{margin:0 0 16px;color:#64748b;font-size:14px;min-height:40px}.drop-zone{border:1.5px dashed #b9c4d5;background:#f8fafc;border-radius:13px;padding:25px 12px;display:grid;place-items:center;text-align:center;gap:8px;color:#52627a}.drop-zone:hover{border-color:#2563eb;background:#eff6ff}.file-list{display:grid;gap:8px;margin-top:14px}.file-list>div{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:8px;padding:9px;border-radius:9px;background:#f8fafc}.file-list span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-list small{color:#64748b}.file-list button{border:0;background:transparent}.action-row{display:flex;justify-content:flex-end;margin:22px 0}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.results{display:grid;gap:20px}.results-head{display:flex;justify-content:space-between;align-items:center}.results-head h2{margin:0}.results-head p{margin:4px 0;color:#64748b}.balance-card{background:white;border:1px solid #e4e9f1;border-radius:18px;padding:24px;box-shadow:0 10px 30px #0f172a0a}.balance-card>header{display:flex;align-items:center;gap:14px;border-bottom:1px solid #edf0f5;padding-bottom:18px}.company-icon{width:48px;height:48px}.balance-card header h2{font-size:20px;margin:0}.balance-card header p{margin:5px 0 0;color:#64748b}.date-pill{margin-left:auto;background:#eff6ff;color:#1d4ed8;padding:7px 11px;border-radius:999px;font-weight:700;font-size:13px}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:20px 0}.summary-grid div{background:#f8fafc;border-radius:12px;padding:16px}.summary-grid span{display:block;color:#64748b;font-size:13px}.summary-grid strong{display:block;margin-top:5px;font-size:18px}.group-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.metric-group{border:1px solid #e7ebf1;border-radius:13px;padding:16px}.metric-group h3{margin:0 0 10px}.metric-row{display:flex;justify-content:space-between;gap:20px;padding:8px 0;border-bottom:1px solid #f0f2f6}.metric-row:last-child{border:0}.metric-row span{color:#536176}.warnings{margin-top:18px;border:1px solid #fed7aa;border-radius:12px;overflow:hidden;background:#fffaf2}.warnings>button{width:100%;border:0;background:#fff7ed;padding:13px 15px;display:flex;justify-content:space-between;color:#9a3412;font-weight:800}.warnings>button span{display:flex;gap:8px;align-items:center}.warnings>div{padding:5px 16px 12px}.warnings p{margin:10px 0;color:#7c2d12;font-size:13px;line-height:1.5}.empty-state{margin-top:30px;background:white;border:1px solid #e4e9f1;border-radius:18px;padding:60px;text-align:center;color:#64748b}.empty-state h2{color:#172033}.empty-state p{margin-bottom:0}@media (max-width:1100px){.upload-grid{grid-template-columns:1fr}.summary-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:760px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto}.sidebar nav{grid-template-columns:1fr 1fr}.sidebar-user{margin-top:18px}.page{padding:22px}.group-grid,.summary-grid{grid-template-columns:1fr}.balance-card>header{align-items:flex-start;flex-wrap:wrap}.date-pill{margin-left:62px}.results-head{align-items:flex-start;gap:10px}}.integral-form{margin-top:26px;background:white;border:1px solid #e4e9f1;border-radius:16px;padding:20px;display:grid;grid-template-columns:minmax(180px,1.3fr) 90px minmax(130px,.8fr) minmax(120px,.7fr) auto;gap:14px;align-items:end;box-shadow:0 8px 24px #0f172a09}.integral-form label{display:grid;gap:7px}.integral-form label span{font-size:13px;font-weight:750;color:#475569}.integral-form input,.integral-form select{width:100%;height:46px;border:1px solid #d8deea;border-radius:10px;padding:0 12px;background:white;outline:none}.integral-form input:focus,.integral-form select:focus{border-color:#2563eb;box-shadow:0 0 0 3px #dbeafe}.integral-submit{height:46px;white-space:nowrap}.integral-results{display:grid;gap:18px;margin-top:24px}.integral-company,.integral-panel{background:white;border:1px solid #e4e9f1;border-radius:17px;padding:22px;box-shadow:0 9px 28px #0f172a0a}.integral-company{display:flex;align-items:center;justify-content:space-between;gap:20px}.integral-company span{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#64748b;font-weight:800}.integral-company h2{margin:5px 0;font-size:22px}.integral-company p{margin:0;color:#64748b}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.kpi-grid article{background:white;border:1px solid #e4e9f1;border-radius:15px;padding:18px;display:flex;gap:13px;align-items:flex-start;box-shadow:0 8px 23px #0f172a09}.kpi-grid article>svg{background:#eff6ff;color:#2563eb;border-radius:10px;padding:9px;width:42px;height:42px}.kpi-grid article div{min-width:0}.kpi-grid span,.kpi-grid small{display:block;color:#64748b}.kpi-grid span{font-size:13px}.kpi-grid strong{display:block;font-size:20px;margin:5px 0;overflow:hidden;text-overflow:ellipsis}.kpi-grid small{font-size:12px}.negative{color:#b91c1c!important}.integral-panel>header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px}.integral-panel h3{margin:0 0 5px;font-size:18px}.integral-panel header p{margin:0;color:#64748b;font-size:13px}.integral-chart{height:235px;display:flex;align-items:flex-end;gap:9px;overflow-x:auto;padding:25px 4px 4px;border-bottom:1px solid #e5e7eb}.chart-column{min-width:54px;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px}.chart-bar{width:34px;min-height:4px;background:linear-gradient(180deg,#2563eb,#1e40af);border-radius:7px 7px 2px 2px}.chart-value{font-size:10px;color:#64748b;white-space:nowrap}.chart-label{font-size:11px;color:#475569;white-space:nowrap}.integral-table-wrap{overflow:auto;border:1px solid #e6eaf0;border-radius:12px}.integral-table{width:100%;border-collapse:collapse;min-width:900px}.integral-table th,.integral-table td{text-align:left;padding:13px 14px;border-bottom:1px solid #edf0f4;white-space:nowrap}.integral-table th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#64748b;background:#f8fafc}.integral-table td{font-size:13px}.row-toggle{display:inline-flex;align-items:center;gap:7px;border:0;background:transparent;padding:0;color:#1d4ed8;font-weight:800}.status-pill{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800}.status-pill.ok{background:#ecfdf5;color:#047857}.status-pill.missing{background:#fff7ed;color:#c2410c}.missing-row{background:#fffdf9}.detail-row>td{padding:0!important;background:#f8fafc}.period-detail-grid{padding:18px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.period-detail-grid section{background:white;border:1px solid #e5e9ef;border-radius:12px;padding:15px}.period-detail-grid h4{margin:0 0 11px}.period-detail-grid dl{margin:0;display:grid;gap:8px}.period-detail-grid dl div{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid #f1f3f6;padding-bottom:7px}.period-detail-grid dl div:last-child{border-bottom:0}.period-detail-grid dt{color:#64748b}.period-detail-grid dd{margin:0;font-weight:700;text-align:right}.code-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.code-grid div{display:flex;justify-content:space-between;gap:10px;padding:9px;background:#f8fafc;border-radius:8px}.code-grid span{color:#64748b}.json-details{grid-column:1/-1;background:#111827;color:#e5e7eb;border-radius:12px;padding:13px}.json-details summary{cursor:pointer;font-weight:750}.json-details pre{white-space:pre-wrap;overflow:auto;font-size:12px}.period-message{display:flex;align-items:center;gap:9px;padding:18px;color:#9a3412}.short-field{max-width:90px}@media (max-width:1100px){.integral-form{grid-template-columns:repeat(2,minmax(0,1fr))}.integral-submit{grid-column:1/-1}.kpi-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:760px){.integral-form,.kpi-grid,.period-detail-grid{grid-template-columns:1fr}.short-field{max-width:none}.integral-company{align-items:flex-start;flex-direction:column}.integral-company .secondary{width:100%}}.period-detail-grid.venta-only{grid-template-columns:1fr}.venta-full-section{grid-column:1/-1}.venta-full-section dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px}.venta-full-section dl div{display:flex;justify-content:space-between;gap:20px;padding:8px 0;border-bottom:1px solid #f1f3f6}.venta-full-section dt{color:#64748b;overflow-wrap:anywhere}.venta-full-section dd{margin:0;font-weight:700;text-align:right;overflow-wrap:anywhere}@media (max-width:760px){.venta-full-section dl{grid-template-columns:1fr}}.simple-icon{display:inline-flex;align-items:center;justify-content:center;line-height:1;min-width:1em}.login-logo-wrap{display:flex;align-items:center;justify-content:center;margin-bottom:22px}.login-logo{display:block;width:190px;max-width:78%;height:auto;object-fit:contain}.sidebar-brand{min-height:96px}.sidebar-logo{display:block;width:165px;max-width:100%;height:auto;object-fit:contain}.evolution-chart-wrap{display:grid;gap:14px}.chart-legend{display:flex;align-items:center;justify-content:flex-end;gap:18px;flex-wrap:wrap}.chart-legend span{display:inline-flex;align-items:center;gap:7px;color:#475569;font-size:12px;font-weight:750}.legend-line{display:inline-block;width:24px;height:4px;border-radius:999px}.legend-line.sales{background:#2563eb}.legend-line.purchases{background:#0f766e}.legend-line.margin{background:#d97706}.evolution-chart-scroll{overflow-x:auto}.evolution-chart{display:block;width:100%;min-width:760px;height:auto}.chart-grid-line{stroke:#e5e7eb;stroke-width:1}.chart-zero-line{stroke:#94a3b8;stroke-width:1.5;stroke-dasharray:5 5}.chart-axis-value,.chart-period-label{fill:#64748b;font-size:12px}.chart-series-line{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.chart-series-line.sales{stroke:#2563eb}.chart-series-line.purchases{stroke:#0f766e}.chart-series-line.margin{stroke:#d97706}.chart-series-point{stroke:#fff;stroke-width:2}.chart-series-point.sales{fill:#2563eb}.chart-series-point.purchases{fill:#0f766e}.chart-series-point.margin{fill:#d97706}@media (max-width:760px){.login-logo{width:155px}.sidebar-brand{justify-content:center}.sidebar-logo{width:130px}.chart-legend{justify-content:flex-start}}
