:root,:root[data-theme=dark]{--bg: #0a0d14;--bg-card: #111622;--bg-inset: rgba(0, 0, 0, .35);--border: #232f47;--accent: #3b82f6;--accent-ink: #7eaefc;--accent-soft: rgba(59, 130, 246, .12);--ink-dim: #8fa0b8;--ink: #b6c2d4;--ink-bright: #f1f5f9;--ok: #10b981;--ok-ink: #34d399;--warn: #f59e0b;--danger-ink: #f87171;--nav-bg: rgba(17, 22, 34, .85);--star-opacity: .5;--shadow: 0 14px 34px rgba(0, 0, 0, .45);--scrollbar-thumb: #232f47;--scrollbar-track: #0a0d14;color-scheme:dark}:root[data-theme=solid-black]{--bg: #000000;--bg-card: #0a0a0c;--bg-inset: rgba(255, 255, 255, .04);--border: #26262b;--accent: #3b82f6;--accent-ink: #7eaefc;--accent-soft: rgba(59, 130, 246, .12);--ink-dim: #9ca3af;--ink: #c9ccd2;--ink-bright: #fafafa;--ok: #10b981;--ok-ink: #34d399;--warn: #f59e0b;--danger-ink: #f87171;--nav-bg: rgba(8, 8, 10, .88);--star-opacity: .35;--shadow: 0 14px 34px rgba(0, 0, 0, .65);--scrollbar-thumb: #26262b;--scrollbar-track: #000000;color-scheme:dark}:root[data-theme=ocean]{--bg: #041018;--bg-card: #082031;--bg-inset: rgba(0, 0, 0, .35);--border: #16405a;--accent: #06b6d4;--accent-ink: #22d3ee;--accent-soft: rgba(6, 182, 212, .14);--ink-dim: #8fb0c0;--ink: #b4cdd9;--ink-bright: #ecfeff;--ok: #10b981;--ok-ink: #34d399;--warn: #fbbf24;--danger-ink: #f87171;--nav-bg: rgba(8, 32, 49, .85);--star-opacity: .45;--shadow: 0 14px 34px rgba(0, 0, 0, .45);--scrollbar-thumb: #16405a;--scrollbar-track: #041018;color-scheme:dark}:root[data-theme=forest]{--bg: #06100a;--bg-card: #0c1911;--bg-inset: rgba(0, 0, 0, .35);--border: #1e3b2a;--accent: #22c55e;--accent-ink: #4ade80;--accent-soft: rgba(34, 197, 94, .14);--ink-dim: #93ac9d;--ink: #b9cec1;--ink-bright: #f0fdf4;--ok: #22c55e;--ok-ink: #4ade80;--warn: #fbbf24;--danger-ink: #f87171;--nav-bg: rgba(12, 25, 17, .85);--star-opacity: .4;--shadow: 0 14px 34px rgba(0, 0, 0, .45);--scrollbar-thumb: #1e3b2a;--scrollbar-track: #06100a;color-scheme:dark}:root[data-theme=neon]{--bg: #0a0116;--bg-card: #150726;--bg-inset: rgba(0, 0, 0, .35);--border: #3b1a66;--accent: #c026d3;--accent-ink: #e879f9;--accent-soft: rgba(192, 38, 211, .16);--ink-dim: #a794c4;--ink: #c9b8e8;--ink-bright: #faf5ff;--ok: #10b981;--ok-ink: #34d399;--warn: #fbbf24;--danger-ink: #f87171;--nav-bg: rgba(21, 7, 38, .85);--star-opacity: .6;--shadow: 0 14px 34px rgba(0, 0, 0, .5);--scrollbar-thumb: #3b1a66;--scrollbar-track: #0a0116;color-scheme:dark}:root[data-theme=light]{--bg: #eef2f7;--bg-card: #ffffff;--bg-inset: rgba(15, 23, 42, .05);--border: #d4dbe6;--accent: #1d4ed8;--accent-ink: #1d4ed8;--accent-soft: rgba(29, 78, 216, .08);--ink-dim: #556077;--ink: #333d4f;--ink-bright: #101828;--ok: #067647;--ok-ink: #067647;--warn: #92510a;--danger-ink: #b42318;--nav-bg: rgba(255, 255, 255, .88);--star-opacity: 0;--shadow: 0 14px 30px rgba(16, 24, 40, .08);--scrollbar-thumb: #d4dbe6;--scrollbar-track: #eef2f7;color-scheme:light}:root{--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Cascadia Code", "Fira Code", Consolas, monospace;--azul: var(--accent);--azul-claro: var(--accent-soft);--card: var(--bg-card);--borde: var(--border);--texto: var(--ink);--gris: var(--ink-dim);--error: var(--danger-ink)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background-color:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:14.5px;line-height:1.6;transition:background-color .3s ease,color .3s ease;min-height:100vh}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;opacity:var(--star-opacity);background-image:radial-gradient(1px 1px at 25px 45px,#ffffff 45%,transparent 55%),radial-gradient(1px 1px at 160px 120px,#ffffff 45%,transparent 55%),radial-gradient(1.5px 1.5px at 310px 210px,#ffffff 45%,transparent 55%),radial-gradient(1px 1px at 420px 60px,#ffffff 45%,transparent 55%),radial-gradient(1px 1px at 520px 170px,#ffffff 45%,transparent 55%);background-size:560px 260px;animation:twinkle 9s ease-in-out infinite alternate}@keyframes twinkle{0%{opacity:calc(var(--star-opacity) * .7)}to{opacity:var(--star-opacity)}}@keyframes blinker{50%{opacity:.2}}.mono{font-family:var(--font-mono)}h1,h2,h3,h4{color:var(--ink-bright);line-height:1.3;margin:0;font-weight:700}a{color:var(--accent-ink);text-decoration:none;transition:color .2s ease}a:hover{text-decoration:underline}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-track{background:var(--bg-inset)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:6px}::-webkit-scrollbar-thumb:hover{background:var(--accent)}.app{min-height:100vh;display:flex;flex-direction:column}.top-bar{position:sticky;top:14px;z-index:100;display:flex;justify-content:center;align-items:center;gap:12px;padding:0 16px;margin-bottom:24px}.pill-nav{display:flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:4px 10px;padding:8px 18px;border-radius:999px;background:var(--nav-bg);border:1px solid var(--border);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:var(--shadow);font-size:13.5px}.prompt{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:12.5px;color:var(--accent-ink);padding-right:6px}.status-dot{display:inline-block;width:8px;height:8px;background:var(--ok);border-radius:50%;box-shadow:0 0 8px var(--ok)}.status-dot.blink{animation:blinker 1.5s linear infinite}.pill-divider{width:1px;height:20px;background:var(--border);margin:0 4px}.nav-link{position:relative;display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;color:var(--ink);background:transparent;border:none;font-family:var(--font-sans);font-size:13.5px;cursor:pointer;text-decoration:none;transition:color .2s ease,background-color .2s ease,transform .15s ease}.nav-link:hover{color:var(--accent-ink);background:var(--accent-soft);text-decoration:none}.nav-link.active{color:var(--accent-ink);background:var(--accent-soft);font-weight:700;border:1px solid var(--accent-soft)}.btn-import-pill{color:var(--ok-ink);background:#10b9811a;border:1px solid rgba(16,185,129,.25);font-weight:600}.btn-import-pill:hover{background:#10b98133;color:#fff}.top-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.lang-pill{display:flex;align-items:center;padding:4px 6px;border-radius:999px;background:var(--nav-bg);border:1px solid var(--border);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:var(--shadow);gap:3px}.lang-btn{display:inline-flex;align-items:center;justify-content:center;padding:4px 8px;border-radius:999px;border:1px solid transparent;background:transparent;color:var(--ink-dim);font-family:var(--font-mono);font-size:11.5px;font-weight:700;cursor:pointer;transition:all .2s ease;line-height:1}.lang-btn:hover{color:var(--ink-bright)}.lang-btn.active,.lang-btn[aria-pressed=true]{color:var(--accent-ink);background:var(--accent-soft);border-color:var(--border);box-shadow:0 0 8px #22c55e26}.theme-pill{display:flex;align-items:center;padding:8px 14px;border-radius:999px;background:var(--nav-bg);border:1px solid var(--border);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:var(--shadow)}.theme-selector{display:inline-flex;align-items:center;gap:7px}.theme-btn{width:20px;height:20px;padding:0;border-radius:50%;border:2px solid var(--border);cursor:pointer;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.theme-btn:hover{transform:scale(1.2)}.theme-btn.active,.theme-btn[aria-pressed=true]{border-color:var(--ink-bright);box-shadow:0 0 0 2px var(--accent-soft),0 0 8px var(--accent)}.swatch-dark{background:linear-gradient(135deg,#0a0d14 55%,#3b82f6 45%)}.swatch-solid-black{background:linear-gradient(135deg,#000 55%,#3b82f6 45%)}.swatch-ocean{background:linear-gradient(135deg,#041018 55%,#06b6d4 45%)}.swatch-forest{background:linear-gradient(135deg,#06100a 55%,#22c55e 45%)}.swatch-neon{background:linear-gradient(135deg,#0a0116 55%,#e879f9 45%)}.swatch-light{background:linear-gradient(135deg,#fff 55%,#1d4ed8 45%)}main,.content{padding:0 24px 60px;flex:1;max-width:1200px;width:100%;margin:0 auto}.loading{text-align:center;color:var(--ink-dim);padding:80px 20px;display:flex;flex-direction:column;align-items:center;justify-content:center}.banner{margin:0 0 18px;padding:12px 18px;border-radius:10px;font-size:14px;display:flex;gap:12px;align-items:center;justify-content:space-between;border:1px solid var(--border)}.banner.error{background:#f871711a;color:var(--danger-ink);border-color:#f871714d}.banner.ok{background:#10b9811a;color:var(--ok-ink);border-color:#10b9814d}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:22px;margin-bottom:20px;box-shadow:var(--shadow);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease,background-color .3s ease}.card h2{font-size:17px;margin:0 0 12px;color:var(--ink-bright);display:flex;align-items:center;gap:10px}.grid-proyectos{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:18px}.proj-card{cursor:pointer;position:relative;overflow:hidden;border-top:3px solid var(--accent)}.proj-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 16px 36px #00000073}.proj-card h3{margin:0 0 6px;font-size:16.5px;color:var(--ink-bright)}.proj-card .meta{font-size:13px;color:var(--ink-dim);display:flex;justify-content:space-between;margin-top:10px}.proj-card .total{font-size:21px;font-weight:700;color:var(--accent-ink);margin-top:8px;font-family:var(--font-mono)}.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:20px}.kpi{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:14px 18px;transition:border-color .2s ease}.kpi:hover{border-color:var(--accent)}.kpi .k{font-size:11.5px;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.08em;font-family:var(--font-mono);font-weight:600}.kpi .v{font-size:21px;font-weight:700;color:var(--ink-bright);margin-top:4px;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.scroll-table{max-height:520px;overflow:auto;border:1px solid var(--border);border-radius:12px;background:var(--bg-card)}table.data{width:100%;border-collapse:collapse;font-size:13.5px}table.data th{background:var(--bg-inset);color:var(--ink-bright);padding:10px 14px;text-align:left;font-weight:600;position:sticky;top:0;z-index:5;border-bottom:2px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}table.data td{border-bottom:1px solid var(--border);padding:9px 14px;vertical-align:middle;color:var(--ink)}table.data tr:hover td{background:var(--accent-soft)}.num{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap}.center{text-align:center}tr.subtotal td{background:var(--accent-soft);font-weight:700;color:var(--accent-ink)}tr.partida-head td{background:var(--bg-inset);font-weight:700;color:var(--ink-bright);border-top:2px solid var(--border)}.totals-box{display:flex;gap:16px;flex-wrap:wrap;align-items:stretch}.totals-table{width:420px;margin-left:auto;border-collapse:collapse;font-size:14px}.totals-table td{padding:8px 12px;border-bottom:1px solid var(--border)}.totals-table td.v{text-align:right;font-weight:600;white-space:nowrap;font-family:var(--font-mono);color:var(--ink-bright)}.totals-table tr.grand td{background:var(--accent);color:#fff;font-size:16px;font-weight:700;border-radius:8px}input,select,button{font-family:inherit;font-size:13.5px}input[type=text],input[type=number],select{padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-inset);color:var(--ink-bright);min-width:90px;transition:border-color .2s,box-shadow .2s}input:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}button{cursor:pointer;border-radius:8px;padding:8px 16px;border:1px solid transparent;font-weight:600;transition:all .2s ease;display:inline-flex;align-items:center;gap:6px;justify-content:center}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 4px 14px var(--accent-soft)}.btn-primary:hover{filter:brightness(1.12);transform:translateY(-1px)}.btn-sec{background:var(--bg-inset);color:var(--ink);border:1px solid var(--border)}.btn-sec:hover{background:var(--accent-soft);color:var(--accent-ink);border-color:var(--accent)}.btn-danger{background:#f871711f;color:var(--danger-ink);border-color:#f871714d}.btn-danger:hover{background:#f8717140}.btn-sm{padding:5px 11px;font-size:12.5px;border-radius:6px}.toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.toolbar .spacer{flex:1}.search-box{position:relative;flex:1;max-width:420px}.search-box input{width:100%}.params-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}.param label{font-size:11.5px;color:var(--ink-dim);display:block;margin-bottom:4px;text-transform:uppercase;letter-spacing:.05em;font-family:var(--font-mono);font-weight:600}.param input{width:100%}.badge{font-family:var(--font-mono);font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:3px 9px;border-radius:999px;border:1px solid var(--border);white-space:nowrap}.badge-ok{color:var(--ok-ink);border-color:#10b98166;background:#10b9811a}.badge-danger{color:var(--danger-ink);border-color:#f8717166;background:#f871711a}.badge-accent{color:var(--accent-ink);border-color:var(--accent);background:var(--accent-soft)}.badge-dim{color:var(--ink-dim)}.badge-primary{color:var(--accent-ink);border-color:var(--accent);background:var(--accent-soft)}.badge-mob{color:#fbbf24;border-color:#fbbf2466;background:#fbbf241a}.badge-mat{color:var(--accent-ink);border-color:var(--border);background:var(--bg-inset)}.badge-matriz{color:#c084fc;border-color:#c084fc66;background:#c084fc1a}.badge-sec{color:var(--ink-dim);border-color:var(--border);background:var(--bg-inset)}.muted{color:var(--ink-dim);font-size:13px}.row-actions{display:flex;gap:6px;align-items:center}.toast{position:fixed;bottom:24px;right:24px;background:var(--bg-card);color:var(--ink-bright);border:1px solid var(--border);padding:14px 20px;border-radius:12px;box-shadow:var(--shadow);font-size:14px;z-index:150;animation:fadein .2s ease}@keyframes fadein{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:200;padding:18px;animation:fadein .15s ease}.modal-card{background:var(--bg-card);border-radius:16px;max-width:840px;width:100%;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 24px 50px #0009;border:1px solid var(--border);overflow:hidden}.modal-header{padding:18px 22px;background:var(--bg-inset);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:flex-start}.modal-header h3{color:var(--ink-bright);font-size:17px}.modal-body{padding:20px 22px;overflow-y:auto;flex:1}.modal-footer{padding:14px 22px;background:var(--bg-inset);border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:12px}.btn-close{background:transparent;border:none;font-size:18px;color:var(--ink-dim);cursor:pointer;padding:6px 10px;border-radius:8px;transition:all .15s ease}.btn-close:hover{background:var(--accent-soft);color:var(--ink-bright)}.matriz-summary-row{display:flex;gap:12px;flex-wrap:wrap}.summary-pill{background:var(--bg-inset);border:1px solid var(--border);border-radius:10px;padding:8px 14px;display:flex;flex-direction:column;min-width:100px}.pill-label{font-size:11px;text-transform:uppercase;color:var(--ink-dim);font-weight:600;font-family:var(--font-mono)}.pill-val{font-size:15px;font-weight:700;color:var(--ink-bright);margin-top:3px;font-family:var(--font-mono)}.clickable-link{color:var(--accent-ink);cursor:pointer;text-decoration:underline dotted;font-weight:600}.clickable-link:hover{text-decoration:underline;color:#fff}.editable-cell{cursor:pointer;padding:3px 6px;border-radius:6px;border:1px dashed transparent;display:inline-block;transition:all .15s;color:var(--ink-bright)}.editable-cell:hover{background:var(--accent-soft);border-color:var(--accent-ink)}.progress-cell{display:flex;align-items:center;gap:10px}.progress-bar-wrap{flex:1;height:8px;background:var(--bg-inset);border-radius:999px;overflow:hidden;min-width:70px}.progress-bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--ok));transition:width .3s ease}.progress-label{font-size:12px;font-weight:600;color:var(--ink-dim);min-width:48px;text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.toggle-group{display:inline-flex;border-radius:999px;overflow:hidden;border:1px solid var(--border);background:var(--bg-inset);padding:3px;gap:4px}.toggle-group button{border-radius:999px;border:none;background:transparent;color:var(--ink);padding:6px 14px;font-size:13px;font-weight:500}.toggle-group button:hover{color:var(--accent-ink)}.toggle-group button.active{background:var(--accent);color:#fff;font-weight:700}.ajuste-card{background:var(--bg-card);border:1px solid var(--border);border-left:4px solid var(--warn);border-radius:12px;padding:14px 18px}.app-footer{text-align:center;padding:24px;margin-top:auto;border-top:1px solid var(--border);background:var(--bg-inset)}.app-footer p{margin:0;font-size:12.5px}.footer-link{color:var(--accent-ink);font-weight:600}@media(max-width:860px){.top-bar{flex-direction:column;align-items:center;gap:8px;top:8px;padding:0 10px;margin-bottom:16px}.pill-nav{max-width:100%;padding:6px 14px;gap:4px 8px;border-radius:24px;justify-content:center}.top-controls{display:flex;justify-content:center;align-items:center;gap:8px;width:100%}main,.content{padding:0 14px 40px}.grid-proyectos{grid-template-columns:1fr;gap:14px}.kpi-row{grid-template-columns:repeat(2,1fr);gap:10px}.card{padding:16px;border-radius:12px;margin-bottom:16px}.card h2{font-size:15.5px}.toolbar{flex-direction:column;align-items:stretch;gap:8px}.toolbar .toggle-group,.toolbar select,.toolbar .search-box,.toolbar .search-box input{width:100%;max-width:100%;box-sizing:border-box}.modal-card{max-width:95vw!important;margin:8px;padding:14px}}@media(max-width:520px){.top-bar{gap:6px;padding:0 6px}.pill-nav{padding:6px 8px;gap:3px 5px;border-radius:18px;font-size:12px}.prompt{font-size:11px;gap:5px;padding-right:2px}.pill-nav .nav-link{padding:4px 7px;font-size:11.5px;gap:4px}.pill-divider{height:14px;margin:0 2px}.top-controls{gap:6px}.theme-pill{padding:6px 10px}.theme-selector{gap:5px}.theme-btn{width:18px;height:18px}.lang-pill{padding:3px 5px}.lang-btn{padding:3px 6px;font-size:11px}.kpi-row{grid-template-columns:1fr}.params-grid{grid-template-columns:1fr;gap:10px}}
