body{font-family:Arial,sans-serif;background:#f5f7fa;color:#172033;margin:0}.wrap{max-width:1180px;margin:28px auto;padding:18px}header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}h1{margin:0}header p{color:#718096;margin-top:6px}nav{display:flex;gap:8px;margin:18px 0;flex-wrap:wrap}button{border:0;border-radius:8px;padding:10px 14px;cursor:pointer;font-weight:700}nav button{background:#e7ebf0}nav .active,.primary{background:#15966a;color:#fff}.danger{background:#f6dede;color:#852d2d}.warn{background:#fff2cc;color:#765800}.panel{background:#fff;border:1px solid #e2e8f0;border-radius:14px;overflow:hidden}.head,.row{padding:17px 20px;border-bottom:1px solid #edf0f4}.head{display:flex;justify-content:space-between;align-items:center;gap:10px}.row{display:grid;grid-template-columns:1.4fr .7fr .8fr 1.5fr;gap:14px;align-items:center}.muted{color:#718096;font-size:12px}.badge{display:inline-block;padding:6px 9px;border-radius:999px;font-size:11px;font-weight:700}.ok{background:#def7ec;color:#136c4a}.bad{background:#fdeaea;color:#8c2f2f}.blue{background:#eaf2fb;color:#295f91}.info{background:#eef2f6;color:#465569}.checks{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}.check{font-size:10px;padding:4px 6px;border-radius:999px;background:#edf1f5}.drop{display:block;border:2px dashed #bcc8d4;border-radius:12px;padding:26px;text-align:center;margin:16px;cursor:pointer;background:#fbfcfd}.drop.drag{border-color:#15966a;background:#eaf8f2}.drop input{display:none}.modal{position:fixed;inset:0;background:#0008;display:none;place-items:center;padding:18px;z-index:20}.modal.show{display:grid}.card{background:#fff;width:min(840px,95vw);padding:22px;border-radius:14px;max-height:90vh;overflow:auto}.wideCard{width:min(1320px,97vw)}.reviewSplit{display:grid;grid-template-columns:minmax(420px,1.15fr) minmax(430px,1fr);gap:20px}.documentPane{border:1px solid #dfe5ec;border-radius:12px;overflow:hidden;background:#f8fafc;min-height:620px}.documentHead{padding:12px 14px;background:#fff;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;gap:10px}.documentViewer{height:650px;display:grid;place-items:stretch}.documentViewer iframe,.documentViewer img{width:100%;height:100%;border:0;object-fit:contain;background:#fff}.grid,.detailGrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.wide{grid-column:1/-1}.grid label{font-size:12px;color:#465569}.grid input,.grid select{width:100%;box-sizing:border-box;padding:10px;margin-top:5px}.grid label.wide input{width:auto;margin-right:8px}.detailBox{padding:12px;border:1px solid #e2e8f0;border-radius:8px}.detailBox b{display:block;margin-bottom:4px}.actions{display:flex;gap:8px;justify-content:flex-end;margin-top:18px;flex-wrap:wrap}.notice{padding:12px 16px;background:#eaf2fb;border-radius:10px;margin:12px 0}.empty{text-align:center;padding:35px;color:#718096}.vatRow{display:grid;grid-template-columns:.7fr 1fr 1fr auto;gap:8px;align-items:end;margin-bottom:8px}.vatRow label{font-size:12px;color:#465569}.vatRow input,.vatRow select{width:100%;box-sizing:border-box;padding:9px;margin-top:4px}.listContext,.listFilters{display:flex;align-items:end;gap:12px;flex-wrap:wrap;padding:12px 18px;background:#f8fafc;border-bottom:1px solid #e5e7eb}.listContext label,.listFilters label{font-size:11px;font-weight:700;color:#465569}.listContext select,.listFilters select,.listFilters input{display:block;margin-top:4px;padding:8px 10px;border:1px solid #d7dee7;border-radius:8px;background:#fff;box-sizing:border-box}.listSearch{flex:1;min-width:230px}.listSearch input{width:100%}.listFilters button{padding:9px 12px;background:#e7ebf0}.listFilters #ccExport{background:#15966a;color:#fff}.listTotals{flex:1;min-width:360px;padding:9px 12px;background:#eaf2fb;border-radius:9px;font-size:13px}.listPager{font-size:12px;color:#465569;white-space:nowrap}.listPager button{padding:7px 10px}.listPager button:disabled{opacity:.4;cursor:default}@media(max-width:980px){.reviewSplit{grid-template-columns:1fr}.documentPane{min-height:440px}.documentViewer{height:480px}}@media(max-width:760px){.row,.grid,.detailGrid,.vatRow{grid-template-columns:1fr}.wide{grid-column:auto}header{flex-direction:column}.listTotals{min-width:100%}.listSearch{min-width:100%}}

/* ERP suite visual shell — compatible with existing DOM and runtime */
:root{--cc-sidebar:#0d2f28;--cc-sidebar-active:#184b40;--cc-accent:#28c4a3;--cc-accent-dark:#13856f;--cc-bg:#f6f8f7;--cc-card:#ffffff;--cc-text:#1f2a35;--cc-muted:#738078;--cc-border:#dfe7e3;--cc-soft:#edf8f5;--cc-danger:#a94442}
*{box-sizing:border-box}
body{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--cc-bg);color:var(--cc-text);min-height:100vh}
.wrap{max-width:none;margin:0 0 0 270px;padding:28px 34px 56px;min-height:100vh}
header{position:relative;min-height:96px;padding:20px 24px;margin:-28px -34px 22px;background:#fff;border-bottom:1px solid var(--cc-border);align-items:center;box-shadow:0 1px 0 rgba(15,47,40,.02)}
header>div:first-child{padding-left:6px}
header h1{font-size:28px;letter-spacing:-.02em;color:#1e2926}
header p{font-size:13px;color:#78867f;margin:5px 0 0}
header button{align-self:center}
nav{position:fixed;z-index:30;left:0;top:0;bottom:0;width:270px;margin:0;padding:122px 16px 28px;background:var(--cc-sidebar);display:flex;flex-direction:column;flex-wrap:nowrap;gap:5px;overflow:auto;box-shadow:8px 0 24px rgba(10,35,30,.05)}
nav:before{content:"CUENTA CLARA\A Contabilidad ERP";white-space:pre;position:absolute;top:26px;left:26px;color:#fff;font-weight:800;font-size:18px;line-height:1.28;letter-spacing:.01em}
nav:after{content:"GESTIÓN CONTABLE";position:absolute;top:91px;left:26px;color:#78a99d;font-size:10px;font-weight:800;letter-spacing:.18em}
nav button{width:100%;text-align:left;background:transparent;color:#a8c0ba;border-radius:10px;padding:11px 13px;font-size:14px;transition:.15s ease;position:relative}
nav button:hover{background:#123b33;color:#fff}
nav button.active{background:var(--cc-sidebar-active);color:#fff;box-shadow:inset 3px 0 0 var(--cc-accent)}
nav button.active:before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:3px;background:var(--cc-accent)}
button{font-family:inherit;border-radius:9px;transition:.15s ease}
button:hover{filter:brightness(.98);transform:translateY(-1px)}
.primary,nav .active{background:var(--cc-accent-dark)}
.danger{background:#f7e9e8;color:#9b3f3a}
.warn{background:#fff5dd;color:#8a6617}
#notice,.notice{border:1px solid #cce8df;background:var(--cc-soft);color:#27695b}
.panel{border:1px solid var(--cc-border);border-radius:16px;background:var(--cc-card);box-shadow:0 12px 32px rgba(23,51,43,.04)}
.panel+.panel{margin-top:18px}
.head{padding:18px 22px;background:#fff}
.head h2,.head h3{margin:0;color:#20302b}
.row{border-bottom:1px solid #edf1ef}
.row:hover{background:#fbfdfc}
.listContext,.listFilters{background:#fbfcfc;border-color:var(--cc-border);padding:14px 20px}
.listContext select,.listFilters select,.listFilters input,.grid input,.grid select,.vatRow input,.vatRow select{border:1px solid #d5dfda;border-radius:9px;background:#fff;outline:none}
.listContext select:focus,.listFilters select:focus,.listFilters input:focus,.grid input:focus,.grid select:focus,.vatRow input:focus,.vatRow select:focus{border-color:#63cdb7;box-shadow:0 0 0 3px rgba(40,196,163,.12)}
.listTotals{background:#eef8f5;color:#37675c}
.bad{background:#fff0ef;color:#963d38}.ok{background:#e7f8f2;color:#176c58}.blue{background:#eef6fb;color:#38657e}.info{background:#f0f3f2;color:#5d6965}
.badge{font-weight:800;letter-spacing:.01em}
.drop{border-color:#b9cbc4;background:#fcfefd}.drop.drag{border-color:var(--cc-accent);background:#effbf7}
.card{border:1px solid var(--cc-border);border-radius:16px;box-shadow:0 20px 55px rgba(15,47,40,.16)}
.empty{color:#8b9692}
#app{max-width:1450px;margin:0 auto}
@media(max-width:1050px){.wrap{margin-left:218px;padding:22px}.wrap header{margin:-22px -22px 18px}nav{width:218px;padding-left:12px;padding-right:12px}nav:before,nav:after{left:20px}}
@media(max-width:780px){.wrap{margin-left:0;padding:16px}.wrap header{margin:-16px -16px 14px;padding:16px 18px 16px 76px;min-height:84px}nav{width:60px;padding:110px 7px 18px;overflow:hidden}nav:before{content:"CC";left:13px;top:24px;font-size:19px}nav:after{display:none}nav button{font-size:0;height:42px;padding:10px}nav button:after{content:attr(data-tab);font-size:9px;text-transform:uppercase;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.wrap{margin-left:60px}.reviewSplit{grid-template-columns:1fr}.row,.grid,.detailGrid,.vatRow{grid-template-columns:1fr}.wide{grid-column:auto}.listTotals,.listSearch{min-width:100%}}

/* First-paint startup surface. This is CSS-only so it appears as soon as styles.css is parsed,
   before the long legacy script chain has any chance to leave a blank screen. */
html:not(.nuv-startup-finished) body::before{content:"";position:fixed;inset:0;z-index:2147482998;background:#f7f8fb}
html:not(.nuv-startup-finished) body::after{content:"NUV CONTABLE\A Cargando empresa y datos…";white-space:pre;position:fixed;z-index:2147482999;left:50%;top:50%;transform:translate(-50%,-50%);width:min(400px,calc(100vw - 40px));padding:54px 20px 21px;text-align:center;background:#fff;border:1px solid #dde3eb;border-radius:14px;box-shadow:0 14px 42px rgba(15,23,42,.07);font-size:13px;line-height:1.8;color:#64748b;font-weight:500}
html:not(.nuv-startup-finished) body{overflow:hidden}
