:root{--bg:#f5f3ef;--card:#fff;--ink:#1b1b19;--muted:#716f69;--line:#ddd8cf;--accent:#2d6247;--accent2:#e6efe9;--bad:#a62d28;--badbg:#fae9e7;--warn:#8a5a00;--warnbg:#fff4d9;--ok:#23623d;--shadow:0 8px 30px rgba(40,35,25,.08)}
*{box-sizing:border-box}html,body{max-width:100%;overflow-x:hidden}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 system-ui,-apple-system,"Segoe UI",sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--line);border-radius:8px;padding:8px 12px;background:#fff;color:var(--ink)}button:hover{border-color:#aaa49a}.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:650}.danger{color:var(--bad);border-color:#e2aaa6}.link-button{border:0;background:none;color:var(--accent);padding:12px 0}.brand{font-weight:800;letter-spacing:.12em}.company{margin-left:14px;color:var(--muted)}.muted{color:var(--muted)}code{background:#eeeae3;border-radius:4px;padding:2px 5px}.center-card{max-width:440px;margin:12vh auto;background:var(--card);padding:32px;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.center-card h1{font-size:24px;margin:12px 0 4px}.stack{display:grid;gap:14px;margin-top:22px}.stack label{display:grid;gap:6px;font-weight:600}.stack input,.stack select,.stack textarea{border:1px solid var(--line);border-radius:8px;padding:10px;background:#fff}.warning{color:var(--warn);background:var(--warnbg);padding:10px;border-radius:8px}.topbar{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 24px;background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.topbar>div,.top-actions{min-width:0}.top-actions{display:flex;align-items:center;gap:12px}.sync{color:var(--ok);font-size:13px}.sync.busy{color:var(--warn)}.sync.error{color:var(--bad)}.nav{display:flex;gap:4px;padding:10px max(16px,calc((100% - 1480px)/2));background:#fff;border-bottom:1px solid var(--line);overflow-x:auto}.nav button{border:0;background:transparent;white-space:nowrap}.nav button.active{background:var(--accent2);color:var(--accent);font-weight:700}.pill{display:inline-block;background:var(--bad);color:#fff;border-radius:99px;font-size:11px;padding:1px 6px;margin-left:4px}.content{width:100%;max-width:1480px;margin:0 auto;padding:24px 16px 60px}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px}.page-head h1{margin:0;font-size:26px}.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px}.grid>*,.card{min-width:0}.card{grid-column:span 12;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px;box-shadow:0 2px 12px rgba(40,35,25,.03)}.card h2{font-size:17px;margin:0 0 12px}.kpi{grid-column:span 3}.kpi strong{display:block;font-size:26px;margin-top:3px}.kpi small{color:var(--muted)}.half{grid-column:span 6}.drop{border:2px dashed #b9b2a7;border-radius:12px;padding:34px 18px;text-align:center;background:#fbfaf8;transition:.15s}.drop.over{border-color:var(--accent);background:var(--accent2)}.drop input{display:none}.drop strong{display:block;font-size:18px;margin-bottom:6px}.table-wrap{display:block;width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;padding-bottom:3px;scrollbar-gutter:stable;scrollbar-color:#aaa49a #eeeae3;-webkit-overflow-scrolling:touch}.table-wrap table{width:max-content;min-width:100%}table{border-collapse:collapse;font-size:14px}th,td{padding:10px 9px;border-bottom:1px solid #eeeae3;text-align:left;vertical-align:top}th{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.num{text-align:right;font-variant-numeric:tabular-nums}.status{display:inline-block;border-radius:99px;padding:3px 8px;font-size:12px;background:#eee}.status.valido,.status.aprobado{color:var(--ok);background:var(--accent2)}.status.revision,.status.error{color:var(--bad);background:var(--badbg)}.status.recibido,.status.extraido{color:var(--warn);background:var(--warnbg)}.messages{display:grid;gap:6px;margin:10px 0}.message{padding:8px 10px;border-radius:7px;font-size:13px}.message.bad{background:var(--badbg);color:var(--bad)}.message.warn{background:var(--warnbg);color:var(--warn)}.actions{display:flex;gap:8px;flex-wrap:wrap}.empty{text-align:center;color:var(--muted);padding:35px}.modal-backdrop{position:fixed;inset:0;z-index:20;background:rgba(0,0,0,.45);display:grid;place-items:center;padding:16px}.modal{background:#fff;max-width:min(900px,100%);width:100%;max-height:90vh;overflow:auto;border-radius:14px;padding:22px}.modal textarea{width:100%;min-height:380px;font:13px/1.45 ui-monospace,Consolas,monospace;border:1px solid var(--line);border-radius:8px;padding:12px}.modal-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.toast{position:fixed;right:18px;bottom:18px;z-index:50;background:#222;color:#fff;padding:11px 15px;border-radius:9px;box-shadow:var(--shadow);max-width:420px}.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-row label{display:grid;gap:5px}.form-row input,.form-row select{min-width:0;width:100%;padding:8px;border:1px solid var(--line);border-radius:7px}.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.toolbar input,.toolbar select{min-width:0;max-width:100%;padding:8px;border:1px solid var(--line);border-radius:7px}.right{margin-left:auto}
.subtabs{display:flex;gap:6px;flex-wrap:wrap;margin:-6px 0 18px;padding-bottom:2px}.subtabs button{white-space:nowrap;background:var(--card);border-color:var(--line)}.subtabs button.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700}.section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.section-head h2{margin:0}.stack-label{display:grid;gap:6px;margin:18px 0}.stack-label select{padding:10px;border:1px solid var(--line);border-radius:8px}
.section-copy{margin:3px 0 0}.mini{font-size:11px;margin-top:3px}.document-filters input[type=search]{min-width:260px;flex:1}.category-bars{display:grid;gap:9px;margin:16px 0 20px}.category-row{display:grid;grid-template-columns:minmax(90px,150px) minmax(120px,1fr) 100px 60px;gap:10px;align-items:center}.bar-track{display:block;width:100%;height:12px;background:#eeeae3;border-radius:99px;overflow:hidden}.bar-track i{display:block;height:100%;background:var(--accent);border-radius:99px}.category-row strong,.category-row .muted{text-align:right;font-variant-numeric:tabular-nums}
.check-line{display:flex!important;grid-column:span 1;align-items:center;gap:8px!important;padding-top:22px}.check-line input{width:auto}.modal-actions{margin-top:18px}.preview-block{border:1px solid var(--line);border-radius:12px;padding:12px;margin:10px 0;background:#fbfaf8}.allocation-line{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:7px 0}
.form-row.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.wide-table{min-width:1120px}.wide-table th:last-child,.wide-table td:last-child{position:sticky;right:0;z-index:1;min-width:150px;background:#fff;box-shadow:-8px 0 10px -10px rgba(0,0,0,.55)}.wide-table th:last-child{z-index:2}.concept-cell{width:320px;max-width:320px;white-space:normal;overflow-wrap:anywhere}.movement-filters label{display:flex;align-items:center;gap:5px}.movement-filters input{min-width:140px}.bulk-actions{margin:10px 0}.category-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:7px}.month-evolution{display:grid;grid-template-columns:repeat(6,minmax(110px,1fr));gap:9px;margin-top:16px}.month-card{border:1px solid var(--line);border-radius:9px;padding:10px;display:grid;gap:3px}.month-card span,.month-card small{color:var(--muted)}.delta-up{color:var(--bad)!important}.delta-down{color:var(--ok)!important}.selection-list{display:grid;gap:7px;max-height:360px;overflow:auto;margin:12px 0}.selection-list label,.choice-button{display:block;width:100%;text-align:left;border:1px solid var(--line);border-radius:8px;padding:10px;background:#fff}.small-textarea{min-height:80px!important;width:100%;padding:8px;border:1px solid var(--line);border-radius:7px}.modal h3{margin-top:22px}
.tax-plan-head{margin-top:20px;align-items:center}.tax-plan-head h3{margin:0}.tax-installment-row{display:grid;grid-template-columns:1.35fr repeat(3,1fr) auto;gap:9px;align-items:end;padding:10px 0;border-bottom:1px solid #eeeae3}.tax-installment-row label{display:grid;gap:5px;font-size:12px;color:var(--muted)}.tax-installment-row input{width:100%;padding:8px;border:1px solid var(--line);border-radius:7px;color:var(--ink)}button:disabled{cursor:not-allowed;opacity:.55}
@media(max-width:760px){.kpi,.half{grid-column:span 12}.topbar{padding:12px 14px}.company{display:none}.content{padding:16px 10px 48px}.card{padding:14px}.page-head{display:block}.form-row,.form-row.four{grid-template-columns:1fr}.section-head{display:block}.section-head>.actions{margin-top:10px}.document-filters input[type=search]{min-width:100%;width:100%}.movement-filters label{width:100%}.movement-filters label input{flex:1}.category-row{grid-template-columns:90px 1fr}.category-row strong,.category-row .muted{display:none}.tax-installment-row{grid-template-columns:1fr 1fr}.tax-installment-row button{grid-column:span 2}.month-evolution{grid-template-columns:repeat(2,minmax(110px,1fr))}.modal-backdrop{padding:8px}.modal{padding:16px}}

.results-table th:first-child{position:sticky;left:0;background:#fff;min-width:180px;z-index:1}.result-total{font-weight:700;background:var(--accent2)}.results-table td{min-width:110px}
.category-dot[data-category="comida"]{background:#c96f3b}.category-dot[data-category="bebida"]{background:#3e7fa6}.category-dot[data-category="suministros"]{background:#9b7b42}.category-dot[data-category="material"]{background:#8d68a8}.category-dot[data-category="personal"]{background:#b64e66}.category-dot[data-category="alquiler"]{background:#63875a}.category-dot[data-category="gestion"]{background:#6d7480}.category-dot[data-category="varios"]{background:#999186}
/* Navegación principal lateral; las tablas conservan su desplazamiento propio. */
#app{--sidebar-width:180px;--header-height:72px}
#app .topbar{height:var(--header-height)}
#app .nav{position:fixed;top:var(--header-height);left:0;bottom:0;width:var(--sidebar-width);display:flex;flex-direction:column;gap:6px;padding:22px 12px;background:#fff;border-bottom:0;border-right:1px solid var(--line);overflow-x:hidden;overflow-y:auto;z-index:4}
#app .nav button{text-align:left;white-space:normal;overflow-wrap:anywhere;padding:12px;border-radius:9px;min-height:44px;flex-shrink:0}
#app .nav button.active{box-shadow:inset 3px 0 var(--accent)}
#app .content{margin:0 0 0 var(--sidebar-width);width:calc(100% - var(--sidebar-width));max-width:none;padding:24px 22px 60px}
@media(max-width:1100px){#app{--sidebar-width:152px}#app .half{grid-column:span 12}#app .kpi{grid-column:span 6}}
@media(max-width:760px){#app{--sidebar-width:108px}#app .nav{padding:16px 6px}#app .nav button{padding:11px 7px;font-size:13px}#app .content{padding:16px 10px 48px}#app .kpi{grid-column:span 12}#app .topbar{gap:8px;padding:12px 10px}#app .top-actions{gap:7px}#app .brand{font-size:13px}}

.markdown-original{white-space:pre-wrap;overflow-wrap:anywhere;font:14px/1.6 ui-monospace,monospace;max-height:60vh;overflow:auto}

.document-table th:last-child,.document-table td:last-child{position:static;min-width:180px;max-width:210px;box-shadow:none}
.document-table .actions{width:180px;flex-wrap:wrap}
.document-table .status{white-space:nowrap}
.status.pendiente_correspondencia,.status.pendiente{color:var(--bad);background:var(--badbg)}
.document-actions{min-width:150px}
.document-actions summary{display:inline-flex;align-items:center;gap:12px;cursor:pointer;border:1px solid var(--line);border-radius:6px;padding:6px 10px;background:#fff;list-style:none;min-height:32px}
.document-actions summary::-webkit-details-marker{display:none}
.document-actions summary::after{content:'▾';color:var(--muted)}
.document-actions[open] summary::after{content:'▴'}
.document-actions summary:focus-visible{outline:2px solid #707782;outline-offset:2px}
.document-action-options{display:grid;gap:4px;padding:6px 0 0}
.document-action-options button{text-align:left;width:100%}
/* Interfaz compacta: tonos neutros para navegación, color para estados. */
:root{--bg:#dfe2e6;--ink:#202124;--muted:#62666d;--line:#dfe1e5;--accent:#24262a;--accent2:#eef0f2;--shadow:0 4px 18px rgba(0,0,0,.06)}
body{font-size:13px;line-height:1.45}
button{padding:6px 10px;border-radius:6px;min-height:32px}
button:hover{border-color:#91969e;background:#f3f4f5}
.primary:hover,.subtabs button.active:hover{background:#393c41;color:#fff}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #707782;outline-offset:2px}
input,select,textarea{color:var(--ink);background:#fff}
code{background:#eef0f2}
#app{--header-height:56px;--sidebar-width:168px}
#app .topbar{padding:10px 20px;background:#fff;backdrop-filter:none}
.brand{font-size:12px;letter-spacing:.1em}.company{font-size:12px}.sync{font-size:12px}
#app .nav{padding:16px 10px;gap:4px;background:#202124;border-color:#202124}
#app .nav button{padding:9px 11px;min-height:36px;border-radius:6px;color:#cdd0d5}
#app .nav button:hover{background:#2e3035;color:#fff}
#app .nav button.active{background:#3a3d43;color:#fff;box-shadow:inset 2px 0 #e3e5e8;font-weight:600}
#app .content{padding:20px 22px 48px}
.page-head{margin-bottom:14px}.page-head h1{font-size:22px;font-weight:650;letter-spacing:-.025em}.page-head p{margin:4px 0 0}
.grid{gap:12px}.card{padding:14px;border-radius:8px;box-shadow:none}.card h2{font-size:14px;font-weight:650;margin-bottom:10px}.section-head h2{margin-bottom:0}
.kpi strong{font-size:23px;letter-spacing:-.025em}.kpi small{font-size:12px}
.section-head{margin-bottom:10px;align-items:center}.section-copy{font-size:12px}
.drop{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:6px 12px;padding:12px 14px;border:1px dashed #b8bcc3;border-radius:7px;background:#f8f9fa;text-align:left}
.drop strong{display:inline;font-size:13px;font-weight:600;margin:0}.drop span{font-size:12px;color:var(--muted)}.drop br{display:none}.drop button{margin-left:auto}.drop.over{border-color:#444a53;background:#eceef1}
table{font-size:12px}th,td{padding:8px;border-bottom-color:#eceef0}th{font-size:10px;letter-spacing:.035em;background:#f8f9fa}tbody tr:hover{background:#fafbfc}
.table-wrap{scrollbar-color:#a8adb5 #eef0f2}.status{font-size:11px;padding:2px 7px}.status.valido,.status.aprobado{color:var(--ok);background:#e6efe9}
.subtabs{gap:5px;margin:0 0 14px}.subtabs button{font-size:12px}.subtabs button.active{font-weight:600}
.toolbar input,.toolbar select,.form-row input,.form-row select,.stack input,.stack select,.stack textarea{padding:6px 8px;border-radius:6px;min-height:32px}
.filters{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin:10px 0}.filters label{display:grid;gap:4px;font-size:12px}.filters input,.filters select{padding:6px 8px;min-height:32px;border:1px solid var(--line);border-radius:6px}
.empty{padding:22px}.preview-block{background:#f8f9fa;border-radius:7px}.bar-track{background:#eceef0}.result-total{background:#eef0f2}.actions{gap:6px}.modal{border-radius:9px;padding:18px}.modal h2{font-size:18px}.month-card{padding:8px;border-radius:7px}
@media(max-width:1100px){#app{--sidebar-width:148px}}
@media(max-width:760px){#app{--sidebar-width:108px}#app .content{padding:14px 10px 40px}#app .nav{padding:12px 6px}#app .nav button{font-size:12px;padding:9px 7px;min-height:40px}.card{padding:12px}.drop{padding:10px}.drop button{margin-left:0}.drop span{flex-basis:100%}.filters label{width:100%}.page-head h1{font-size:20px}button{min-height:36px}}

