:root{--brand:#263b57;--brand-ink:#1b2a40;--brand-tint:#eef1ec;--accent:#c8862e;--accent-ink:#8f5f1b;--good:#2f9165;--good-bg:#e3f0e9;--warn:#c99a2e;--warn-bg:#f6eeda;--bad:#c34a3d;--bad-bg:#f5e4e2;--info:#3e6b8a;--info-bg:#e4edf1;--paper:#eef1ec;--surface:#fbfaf6;--surface-2:#f3f1e9;--field-bg:#fff;--ink:#16211d;--muted:#5b6b66;--line:#dad9cd;--r-sm:6px;--r-md:10px;--r-lg:16px;--serif:Georgia, "Iowan Old Style", "Source Serif Pro", "Palatino Linotype", serif;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, "SF Mono", "Cascadia Mono", "JetBrains Mono", Consolas, monospace;--shadow-sm:0 1px 2px #16211d0f, 0 1px 1px #16211d0a;--shadow-md:0 6px 20px #16211d1a}@media (prefers-color-scheme:dark){:root{--brand:#a9bedb;--brand-ink:#dce5f2;--brand-tint:#1b2735;--accent:#e0a24f;--accent-ink:#f4ce9b;--good:#5fbf8f;--good-bg:#163427;--warn:#e0b453;--warn-bg:#362a11;--bad:#e08277;--bad-bg:#3a2220;--info:#7faac7;--info-bg:#16232b;--paper:#131a18;--surface:#1b2320;--surface-2:#212a26;--field-bg:#232e29;--ink:#eaefeb;--muted:#9aaca5;--line:#313d37;--shadow-sm:0 1px 2px #0006;--shadow-md:0 10px 28px #00000073}}.ag-root-wrapper{--ag-background-color:var(--surface);--ag-foreground-color:var(--ink);--ag-border-color:var(--line);--ag-row-border-color:var(--line);--ag-header-background-color:var(--surface-2);--ag-header-foreground-color:var(--ink);--ag-odd-row-background-color:var(--surface-2);--ag-row-hover-color:var(--brand-tint);--ag-selected-row-background-color:var(--brand-tint);--ag-accent-color:var(--brand);--ag-font-family:var(--sans);--ag-border-radius:var(--r-md)}.ag-root-wrapper .ag-row.fila-anulada .ag-cell:not(.no-strike){text-decoration:line-through;-webkit-text-decoration-color:var(--muted);text-decoration-color:var(--muted)}*{box-sizing:border-box}html,body{height:100%;margin:0;padding:0;overflow-x:hidden}body{font-family:var(--sans);color:var(--ink);background-color:var(--paper);-webkit-font-smoothing:antialiased;background-image:linear-gradient(#eef1ecdb,#eef1ecdb),url(/fondo.webp);background-position:50%;background-size:cover;background-attachment:fixed;font-size:14px;line-height:1.5}a{color:inherit}button{font-family:inherit}h1,h2,h3{font-family:var(--serif);text-wrap:balance;margin:0;font-weight:600}.num{font-family:var(--mono);font-variant-numeric:tabular-nums}.print-header,.print-footer{display:none}@media print{.rail,.env-stripe,.topbar,.no-print{display:none!important}.shell{display:block}.main,.screen{max-width:none;padding:0;display:block}body{background:#fff}.card{box-shadow:none;break-inside:avoid;border:1px solid #000}table.lines{font-size:11.5px}.print-header{text-align:center;border-bottom:2px solid #000;margin-bottom:18px;padding-bottom:10px;display:block}.print-header .razon-social{font-family:var(--serif);text-transform:uppercase;font-size:16px;font-weight:700}.print-header .ruc{margin-top:2px;font-size:12px}.print-header .titulo{text-transform:uppercase;margin-top:10px;font-size:14px;font-weight:700}.print-header .periodo{margin-top:2px;font-size:12px}.print-header .moneda{color:#333;margin-top:2px;font-size:11px;font-style:italic}.print-footer{break-inside:avoid;justify-content:space-between;gap:40px;margin-top:60px;display:flex}.print-footer .firma{text-align:center;flex:1;font-size:11px}.print-footer .firma .linea{border-top:1px solid #000;margin-bottom:4px;padding-top:4px}.print-footer .firma .cargo{font-weight:700}.print-meta{color:#555;text-align:right;margin-top:6px;font-size:10px}}.shell{grid-template-columns:236px 1fr;min-height:100vh;display:grid}.nav-toggle-checkbox,.nav-toggle-btn,.nav-overlay-bg{display:none}@media (max-width:860px){.shell{grid-template-columns:1fr}.rail{z-index:50;width:min(80vw,280px);display:none;position:fixed;inset:0 auto 0 0;overflow-y:auto;box-shadow:4px 0 24px #00000059}.shell:has(.nav-toggle-checkbox:checked) .rail{display:flex}.shell:has(.nav-toggle-checkbox:checked) .nav-overlay-bg{z-index:40;background:#00000073;display:block;position:fixed;inset:0}.nav-toggle-btn{border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface);cursor:pointer;flex:none;justify-content:center;align-items:center;width:34px;height:34px;font-size:17px;display:inline-flex}}.rail{background:var(--brand-ink);color:#edefea;flex-direction:column;gap:26px;padding:22px 16px;display:flex}.brandmark{align-items:center;gap:10px;display:flex}.brandmark .glyph{background:var(--accent);border-radius:8px;flex:none;width:30px;height:30px;overflow:hidden}.brandmark .glyph img{object-fit:cover;width:100%;height:100%}.brandmark .name{font-family:var(--serif);color:#fbfaf6;font-size:17px;font-weight:600}.brandmark .tag{color:#aeb9c4;letter-spacing:.04em;font-size:10.5px}.nav{flex-direction:column;gap:2px;display:flex}.nav a{border-radius:var(--r-sm);color:#c9d2dc;align-items:center;gap:10px;padding:9px 10px;font-size:13.5px;text-decoration:none;display:flex}.nav a svg{opacity:.85;flex:none;width:16px;height:16px}.nav a.active{color:#fff;background:#ffffff1a;font-weight:600}.nav a:not(.active):hover{background:#ffffff0f}.rail-foot{color:#8c99a6;margin-top:auto;font-size:11.5px;line-height:1.5}.main{flex-direction:column;min-width:0;min-height:100vh;display:flex}.env-stripe{letter-spacing:.02em;color:#241704;background:repeating-linear-gradient(135deg, var(--warn-bg) 0 12px, #e7d9ae 12px 24px);border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:7px 24px;font-size:12px;font-weight:600;display:flex}.env-stripe.prod{background:var(--good);color:#06301c}.env-stripe .dot{background:currentColor;border-radius:50%;width:7px;height:7px}.topbar{flex-wrap:wrap;align-items:center;gap:16px;padding:18px 28px 14px;display:flex}.topbar .sub{color:var(--muted);margin-top:3px;font-size:12.5px}.topbar .who{color:var(--muted);align-items:center;gap:10px;margin-left:auto;font-size:12.5px;display:flex}.avatar{background:var(--brand);width:30px;height:30px;color:var(--surface);font-size:12px;font-weight:700;font-family:var(--serif);border-radius:50%;justify-content:center;align-items:center;display:flex}.screen{flex-direction:column;gap:22px;max-width:980px;padding:24px 28px 60px;display:flex}@media (max-width:560px){.screen{padding:16px 14px 40px}.topbar{padding:14px 14px 10px}}.kpi-row{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-sm);padding:14px 16px}.kpi .label{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:11.5px}.kpi .value{font-family:var(--mono);font-variant-numeric:tabular-nums;margin-top:4px;font-size:24px;font-weight:600}.kpi .delta{color:var(--good);margin-top:4px;font-size:11.5px}.kpi .delta.warn{color:var(--warn)}.section-title{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px;font-size:13px;font-weight:700}.doc-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;display:grid}.doc-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);cursor:pointer;text-align:left;color:var(--ink);flex-direction:column;gap:8px;padding:14px;text-decoration:none;transition:border-color .15s,transform .15s;display:flex}.doc-card:hover{border-color:var(--accent);transform:translateY(-1px)}.doc-card.disabled{opacity:.5;cursor:default;pointer-events:none}.doc-card .icon{width:26px;height:26px;color:var(--brand)}.doc-card .t{font-size:13px;font-weight:700}.doc-card .d{color:var(--muted);font-size:11.5px}.action-btn{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);cursor:pointer;color:var(--ink);text-align:left;align-items:center;gap:10px;padding:14px;font-size:13px;font-weight:600;display:flex}.action-btn:hover{border-color:var(--brand)}.action-btn svg{width:18px;height:18px;color:var(--brand);flex:none}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:20px 22px}.inv-list{flex-direction:column;gap:8px;display:flex}.inv-row{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--line);border-radius:var(--r-sm);flex-wrap:wrap;align-items:center;gap:8px 12px;padding:11px 14px;display:flex}.inv-row.good{border-left-color:var(--good)}.inv-row.warn{border-left-color:var(--warn)}.inv-row.bad{border-left-color:var(--bad)}.inv-row .num{min-width:150px;font-size:12.5px}.inv-row .client{flex:1;min-width:0;font-size:13px}.inv-row .client .name{font-weight:600}.inv-row .client .meta{color:var(--muted);font-size:11.5px}.inv-row .amt{font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:600}.empty-state{text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:var(--r-md);padding:30px 20px;font-size:13px}.pill{letter-spacing:.01em;white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:11px;font-weight:700;display:inline-flex}.pill.good{background:var(--good-bg);color:var(--good)}.pill.warn{background:var(--warn-bg);color:var(--warn)}.pill.bad{background:var(--bad-bg);color:var(--bad)}.pill.info{background:var(--info-bg);color:var(--info)}.field{flex-direction:column;gap:5px;display:flex}.field label{color:var(--muted);font-size:11.5px;font-weight:600}.field input,.field select,.field textarea{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--field-bg);color:var(--ink);min-height:40px;padding:9px 11px;font-family:inherit;font-size:13.5px}.field textarea{resize:vertical;line-height:1.35}.field input:focus,.field select:focus,.field textarea:focus,button:focus-visible,.doc-card:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.row{flex-wrap:wrap;gap:12px;display:flex}.row>*{flex:1;min-width:160px}table.lines{border-collapse:collapse;width:100%;font-size:13px}table.lines th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:0 8px 8px;font-size:11px;font-weight:600}table.lines td{border-top:1px solid var(--line);padding:8px}table.lines td.num,table.lines th.num{font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right}table.lines input,table.lines select{border:1px solid var(--line);background:var(--surface-2);width:100%;color:var(--ink);border-radius:5px;padding:6px 8px;font-family:inherit;font-size:13px}table.lines input.num-in{text-align:right;font-family:var(--mono)}.add-line{border:1px dashed var(--line);color:var(--muted);border-radius:var(--r-sm);cursor:pointer;background:0 0;align-self:flex-start;padding:7px 12px;font-size:12.5px}.add-line:hover{border-color:var(--brand);color:var(--brand)}.remove-line{color:var(--bad);cursor:pointer;background:0 0;border:none;padding:4px;font-size:12px}.totals{flex-direction:column;gap:6px;width:260px;margin-left:auto;font-size:13px;display:flex}.totals .line{justify-content:space-between;display:flex}.totals .line .v{font-family:var(--mono);font-variant-numeric:tabular-nums}.totals .total{border-top:1px solid var(--line);margin-top:4px;padding-top:8px;font-size:18px;font-weight:700}.btn{border-radius:var(--r-sm);cursor:pointer;border:none;align-items:center;gap:8px;padding:10px 18px;font-family:inherit;font-size:13.5px;font-weight:700;display:inline-flex}.btn-primary{background:var(--accent);color:#241704}.btn-primary:hover{filter:brightness(1.06)}.btn-ghost{border:1px solid var(--line);color:var(--ink);background:0 0}.btn-ghost:hover{border-color:var(--brand)}.btn:disabled{opacity:.55;cursor:default}.progress-bar{align-items:center;gap:10px;display:flex}.progress-bar-track{background:var(--surface-2);border:1px solid var(--line);border-radius:999px;flex:1;height:8px;overflow:hidden}.progress-bar-fill{background:var(--accent);height:100%;transition:width .2s}.progress-bar-label{color:var(--muted);white-space:nowrap;font-size:12.5px}.btn-confirm-final{background:var(--good);color:#fff;border-radius:var(--r-md,var(--r-sm));justify-content:center;width:100%;padding:16px 20px;font-size:15.5px;box-shadow:0 2px 10px -2px #2f916573}.btn-confirm-final:hover{filter:brightness(1.05)}.helper{color:var(--muted);font-size:11.5px}.form-error{background:var(--bad-bg);color:var(--bad);border-radius:var(--r-sm);padding:10px 13px;font-size:13px}.form-info{background:var(--info-bg);color:var(--info);border-radius:var(--r-sm);padding:10px 13px;font-size:13px}.confirm-hero{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:30px 0 6px;display:flex}.confirm-hero.bad .check{background:var(--bad-bg);color:var(--bad)}.confirm-hero .check{background:var(--good-bg);width:60px;height:60px;color:var(--good);border-radius:50%;justify-content:center;align-items:center;display:flex}.confirm-hero h2{color:var(--good);font-size:24px}.confirm-hero.bad h2{color:var(--bad)}.confirm-hero .sub{color:var(--muted);font-size:13px}.kv{background:var(--surface-2);border-radius:var(--r-sm);flex-direction:column;gap:4px;padding:12px 14px;display:flex}.kv .k{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px}.kv .vrow{align-items:center;gap:10px;display:flex}.kv .v{font-family:var(--mono);word-break:break-all;flex:1;font-size:12.5px}.copy-btn{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:5px;flex:none;padding:4px 9px;font-size:11px}.copy-btn:hover{border-color:var(--brand);color:var(--brand)}.centered-screen{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);width:100%;max-width:400px;box-shadow:var(--shadow-sm);flex-direction:column;gap:16px;padding:34px 30px;display:flex}.auth-logo{justify-content:center;display:flex}.auth-logo img{box-shadow:var(--shadow-sm);border-radius:14px}.auth-title{font-size:26px}.auth-sub{color:var(--muted);margin:-8px 0 0;font-size:13.5px}.auth-switch{color:var(--muted);text-align:center;font-size:13px}.auth-switch button{color:var(--accent-ink);cursor:pointer;background:0 0;border:none;padding:0;font-weight:700}