:root{--bg-void: #04070c;--bg-deep: #070b12;--bg-panel: #0a1220;--bg-panel-2: #0d1729;--border-subtle: oklch(.3 .02 220 / .35);--border-strong: oklch(.42 .03 220 / .55);--amber: oklch(.82 .17 75);--amber-soft: oklch(.72 .13 75);--amber-dim: oklch(.62 .15 75);--amber-bright: oklch(.88 .18 75);--green: oklch(.78 .18 155);--red: oklch(.68 .24 25);--red-bright: oklch(.76 .22 25);--yellow: oklch(.86 .16 95);--fg: oklch(.94 .01 220);--fg-dim: oklch(.72 .02 220);--fg-muted: oklch(.52 .02 220);--text-muted: oklch(.52 .02 220);--font-display: "Space Grotesk", system-ui, sans-serif;--font-sans: "Inter", "Space Grotesk", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--glow-amber: 0 0 10px oklch(.82 .17 75 / .45);--glow-green: 0 0 10px oklch(.78 .18 155 / .4);--glow-red: 0 0 10px oklch(.68 .24 25 / .5);--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--sp-7: 48px;--r-sm: 3px;--r-md: 6px;--r-lg: 10px}:root[data-theme=light]{--bg-void: #fdfcf7;--bg-deep: #f8f6ee;--bg-panel: #ffffff;--bg-panel-2: #f6f3ec;--border-subtle: oklch(.85 .02 75 / .55);--border-strong: oklch(.72 .03 75 / .7);--amber: oklch(.62 .18 75);--amber-soft: oklch(.55 .15 75);--amber-dim: oklch(.5 .13 75);--amber-bright: oklch(.68 .2 75);--green: oklch(.5 .16 155);--red: oklch(.52 .22 25);--red-bright: oklch(.6 .2 25);--yellow: oklch(.68 .15 95);--fg: oklch(.2 .01 220);--fg-dim: oklch(.38 .02 220);--fg-muted: oklch(.55 .02 220);--text-muted: oklch(.55 .02 220)}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;background:var(--bg-void);color:var(--fg);font-family:var(--font-sans);font-size:13px;line-height:1.45;-webkit-font-smoothing:antialiased}a{color:var(--amber);text-decoration:none}a:hover{color:var(--amber-bright)}.amber-text{color:var(--amber)}.muted{color:var(--text-muted)}.small{font-size:11px}.card{position:relative;background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--r-md);padding:var(--sp-4);margin-bottom:var(--sp-4)}.card-title{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--sp-3)}.badge{display:inline-block;font-family:var(--font-mono);font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 6px;border-radius:var(--r-sm);border:1px solid currentColor;background:color-mix(in oklch,currentColor 12%,transparent)}.b-green{color:var(--green)}.b-amber{color:var(--amber)}.b-red{color:var(--red)}.b-muted{color:var(--text-muted)}.b-cyan{color:#00bbc3;color:oklch(.72 .13 200)}table.dt{width:100%;border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums}table.dt th{position:sticky;top:0;z-index:3;background:var(--bg-panel-2);color:var(--text-muted);font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;text-align:left;padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border-subtle);cursor:pointer}table.dt th.sort-asc:after{content:" ↑";color:var(--amber)}table.dt th.sort-desc:after{content:" ↓";color:var(--amber)}table.dt td{padding:6px 8px;border-bottom:1px solid var(--border-subtle);white-space:nowrap}table.dt tr:hover td{background:var(--bg-panel-2)}table.dt td.num{text-align:right;font-variant-numeric:tabular-nums}table.dt tr.drill-trigger{cursor:pointer}table.dt tr.drill-trigger:hover td{background:color-mix(in oklch,var(--amber) 6%,var(--bg-panel-2))}table.dt tr.drill-row td{padding:8px!important;background:transparent!important}table.dt tr.drill-row:hover td{background:transparent!important}.filter-bar{display:flex;align-items:center;gap:var(--sp-5);flex-wrap:wrap;padding:var(--sp-3) var(--sp-4);background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--r-md);margin-bottom:var(--sp-4)}.filter-group{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.filter-group-grow{flex:1 1 auto;min-width:0}.filter-label{font-family:var(--font-mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);white-space:nowrap}.filter-input{background:var(--bg-panel-2);border:1px solid var(--border-subtle);border-radius:var(--r-sm);color:var(--fg);padding:5px 10px;font-family:var(--font-sans);font-size:12px;min-width:200px}.filter-input:focus{outline:1px solid var(--amber);border-color:var(--amber)}.kpi-tile{background:var(--bg-panel-2);border:1px solid var(--border-subtle);border-radius:var(--r-sm);padding:var(--sp-3)}.kpi-tile .label{font-family:var(--font-mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-bottom:4px}.kpi-tile .value{font-family:var(--font-display);font-size:24px;font-weight:600;letter-spacing:-.01em}.kpi-tile .delta{font-family:var(--font-mono);font-size:10px;margin-top:2px}.kpi-tile .delta.up{color:var(--green)}.kpi-tile .delta.down{color:var(--red)}.kpi-tile .delta.flat{color:var(--text-muted)}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:var(--sp-3)}.chip{display:inline-block;padding:4px 10px;font-size:11px;border:1px solid var(--border-subtle);border-radius:999px;background:transparent;color:var(--fg-dim);cursor:pointer;-webkit-user-select:none;user-select:none}.chip:hover{border-color:var(--border-strong)}.chip.active{background:color-mix(in oklch,var(--amber) 12%,transparent);border-color:var(--amber);color:var(--amber)}.search-input{width:100%;background:var(--bg-panel-2);border:1px solid var(--border-subtle);border-radius:var(--r-sm);color:var(--fg);padding:6px 10px;font-family:var(--font-sans);font-size:12px}.search-input:focus{outline:1px solid var(--amber);border-color:var(--amber)}.drill-panel{background:var(--bg-panel-2);border:1px solid var(--amber);border-radius:var(--r-md);padding:var(--sp-5);margin:var(--sp-3) 0;position:relative;box-shadow:0 0 0 1px color-mix(in oklch,var(--amber) 20%,transparent)}.drill-close{position:absolute;top:var(--sp-2);right:var(--sp-3);background:transparent;border:none;color:var(--text-muted);font-size:11px;cursor:pointer;font-family:var(--font-mono)}.drill-close:hover{color:var(--amber)}.drill-title{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--amber);margin-bottom:var(--sp-4)}.drill-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,380px);gap:var(--sp-5)}.drill-grid--balanced{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.cadena .step{display:grid;grid-template-columns:150px max-content;gap:var(--sp-3);padding:9px 0;border-bottom:1px dashed var(--border-subtle);font-size:12px}.cadena .step:last-child{border-bottom:none}.cadena .k{font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.cadena .v{color:var(--fg)}.history-list .h{display:grid;grid-template-columns:1fr 120px 1.5fr 60px;gap:var(--sp-2);padding:4px 0;border-bottom:1px dashed var(--border-subtle);font-size:11px;align-items:center}.history-list .right{text-align:right}.history-list--kv .h{grid-template-columns:minmax(0,1fr) max-content}.history-list--kv .h>div:nth-child(2),.history-list--kv .h>div:nth-child(3){display:none}.dchain{display:flex;flex-direction:column}.dstep{display:grid;grid-template-columns:28px minmax(0,1fr) minmax(0,320px);column-gap:var(--sp-3);align-items:start}.dstep-rail{position:relative;align-self:stretch;display:flex;justify-content:center}.dstep-rail:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:2px;margin-left:-1px;background:var(--border-strong)}.dstep--fin .dstep-rail:before{bottom:auto;height:22px}.dstep-num{position:relative;z-index:1;margin-top:9px;width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:11px;font-weight:700;color:var(--amber);background:var(--bg-panel);border:1.5px solid var(--amber)}.dstep--fin .dstep-num{color:var(--text-muted);border-color:var(--text-muted);font-size:13px}.dstep-if{background:var(--bg-panel-2);border:1px solid var(--border-subtle);border-left:3px solid var(--border-strong);border-radius:var(--r-sm);padding:10px 12px;margin-bottom:var(--sp-3)}.dstep-if.is-venta{border-left-color:var(--amber)}.dstep-then{position:relative;padding:10px 12px;margin-bottom:var(--sp-3);border:1px dashed var(--border-subtle);border-radius:var(--r-sm)}.dstep-then:before{content:"";position:absolute;top:20px;left:calc(var(--sp-3) * -1);width:var(--sp-3);border-top:1px dashed var(--border-strong)}@media(max-width:900px){.dstep{grid-template-columns:28px minmax(0,1fr)}.dstep-if{margin-bottom:6px}.dstep-then{grid-column:2}.dstep-then:before{top:calc(var(--sp-2) * -1 + 2px);left:16px;width:0;border-top:none;border-left:1px dashed var(--border-strong);height:6px}}.fc{--arrow: var(--text-muted);background:var(--bg-panel-2);border:1px solid var(--border-subtle);border-radius:var(--r-md);padding:var(--sp-4) var(--sp-3);margin:var(--sp-4) 0;overflow-x:auto}.fc>svg{display:block;width:100%;min-width:680px;max-width:780px;height:auto;margin:0 auto}.fc .dec{fill:var(--bg-panel);stroke:var(--border-strong);stroke-width:1.5}.fc .dec.hot{fill:color-mix(in oklch,var(--red) 14%,transparent);stroke:var(--red);stroke-width:2}.fc .dec.warm{fill:color-mix(in oklch,var(--amber) 14%,transparent);stroke:var(--amber);stroke-width:2}.fc .act{fill:var(--bg-panel);stroke:var(--border-subtle);stroke-width:1}.fc .act.hot{fill:color-mix(in oklch,var(--red) 8%,transparent);stroke:var(--red);stroke-width:1.5}.fc .act.warm{fill:color-mix(in oklch,var(--amber) 8%,transparent);stroke:var(--amber);stroke-width:1.5}.fc .term{fill:var(--bg-panel);stroke:var(--border-strong);stroke-width:1.5}.fc .cx{stroke:var(--text-muted);stroke-width:1.25;fill:none}.fc text{font-family:var(--font-sans)}.fc text.dt{font-size:14px;font-weight:600;fill:var(--fg);text-anchor:middle}.fc text.at{font-size:13.5px;fill:var(--fg);text-anchor:middle}.fc text.at.bold{font-weight:700}.fc text.tt{font-size:13.5px;font-weight:600;fill:var(--fg);text-anchor:middle}.fc text.el{font-family:var(--font-mono);font-size:11px;fill:var(--text-muted)}.fc text.num{font-family:var(--font-mono);font-size:11px;fill:var(--text-muted);text-anchor:middle}.fc-leyenda{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-5);align-items:center;margin-top:var(--sp-3);font-size:11px;color:var(--text-muted)}.fc-leyenda span{display:inline-flex;align-items:center;gap:6px}table.dt tr.marcada td{background:color-mix(in oklch,var(--red) 10%,transparent)}table.dt tr.marcada:hover td{background:color-mix(in oklch,var(--red) 15%,transparent)}table.dt tr.marcada td:first-child{box-shadow:inset 3px 0 0 var(--red)}table.dt td.cero{color:var(--red);font-weight:700}.spark{width:100%;height:auto}.spark .g{stroke:var(--border-subtle);stroke-width:1;stroke-dasharray:2 3}.drill-panel .spark{margin-bottom:var(--sp-4)}.drill-panel .card-title{margin-top:var(--sp-3)}.drill-panel>*>.card-title:first-child,.drill-panel .card-title:first-child{margin-top:0}.spark .l{fill:none;stroke:var(--amber);stroke-width:1.5}.spark .a{fill:url(#sparkGrad)}.spark .d{fill:var(--amber)}.spark .lbl{font-family:var(--font-mono);font-size:8px;fill:var(--text-muted);letter-spacing:.05em}.shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{background:var(--bg-deep);border-right:1px solid var(--border-subtle);padding:var(--sp-4) var(--sp-3);position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar-brand{font-family:var(--font-display);font-size:16px;font-weight:700;letter-spacing:-.01em;color:var(--amber);margin-bottom:var(--sp-6);padding:0 var(--sp-2)}.sidebar-brand .tag{display:block;font-family:var(--font-mono);font-size:9px;letter-spacing:.1em;color:var(--text-muted);margin-top:2px;text-transform:uppercase}.sidebar-section{font-family:var(--font-mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin:var(--sp-4) var(--sp-2) var(--sp-2)}.sidebar-link{display:flex;align-items:center;gap:var(--sp-2);padding:8px var(--sp-3);border-radius:var(--r-sm);color:var(--fg-dim);cursor:pointer;font-size:12px}.sidebar-link:hover{background:var(--bg-panel);color:var(--fg)}.sidebar-link.active{background:color-mix(in oklch,var(--amber) 12%,transparent);color:var(--amber)}.sidebar-link .icon{font-family:var(--font-mono);font-size:13px;width:18px;text-align:center;color:var(--amber);opacity:.8}.sidebar-brand{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.sidebar-collapse-btn{flex:0 0 auto;background:none;border:1px solid var(--border-subtle);color:var(--text-muted);border-radius:var(--r-sm);cursor:pointer;width:24px;height:24px;line-height:1;font-size:13px;padding:0}.sidebar-collapse-btn:hover{color:var(--amber);border-color:var(--amber)}@media(max-width:768px){.sidebar-collapse-btn{display:none}}@media(min-width:769px){.shell.sidebar-collapsed{grid-template-columns:56px 1fr}.sidebar-collapsed .sidebar{padding:var(--sp-4) 8px}.sidebar-collapsed .brand-full,.sidebar-collapsed .sidebar-section,.sidebar-collapsed .link-label{display:none}.sidebar-collapsed .sidebar-brand{justify-content:center}.sidebar-collapsed .sidebar-link{justify-content:center;padding:8px 0}.sidebar-collapsed .sidebar-link .icon{width:auto;font-size:15px;opacity:1}}.main{padding:var(--sp-5) var(--sp-6);overflow-x:hidden;min-width:0}.page-header{margin-bottom:var(--sp-5)}.page-header h1{font-family:var(--font-display);font-size:22px;font-weight:600;letter-spacing:-.01em;margin:0 0 4px}.page-header .sub{font-size:12px;color:var(--text-muted)}.spacer{display:block}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4)}.grid-2-1{display:grid;grid-template-columns:2fr 1fr;gap:var(--sp-4)}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-3);align-items:start}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-3);align-items:start}.grid-5{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--sp-3);align-items:start}.grid-6{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--sp-3);align-items:start}.mobile-menu-btn{display:none;position:fixed;top:12px;left:12px;z-index:100;width:40px;height:40px;background:var(--bg-panel);border:1px solid var(--border-strong);border-radius:var(--r-sm);color:var(--amber);font-size:18px;cursor:pointer;align-items:center;justify-content:center}.sidebar-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:98}@media(max-width:1024px){.grid-6,.grid-5{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(2,1fr)}.main{padding:var(--sp-4) var(--sp-5)}}@media(max-width:768px){.shell{grid-template-columns:1fr}.sidebar{position:fixed;top:0;left:0;width:240px;height:100vh;z-index:99;transform:translate(-100%);transition:transform .25s ease;box-shadow:4px 0 16px #0000004d}.sidebar.open{transform:translate(0)}.sidebar-backdrop.open,.mobile-menu-btn{display:flex}.main{padding:56px 12px 16px;overflow-x:hidden}.grid-2,.grid-2-1,.grid-3,.grid-4,.grid-5,.grid-6{grid-template-columns:1fr;gap:var(--sp-3)}.health-num{display:none!important}.mini-health-bar{width:100%!important;height:16px!important;margin-right:0!important;border-radius:9px!important}.health-drill-row{grid-template-columns:minmax(0,1.3fr) minmax(0,2.4fr)!important;gap:12px!important}.health-drill-num{display:none!important}.health-scroll{overflow-x:hidden!important}.drill-grid{grid-template-columns:1fr;gap:var(--sp-4)}.cadena .step{grid-template-columns:1fr;gap:2px;padding:6px 0}.cadena .k{font-size:9px}.drill-panel{padding:var(--sp-4)}.page-header h1{font-size:18px}.page-header .sub{font-size:11px}.kpi-tile .value{font-size:20px}.card{padding:var(--sp-3);margin-bottom:var(--sp-3)}table.dt{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;font-size:11px}table.dt th{padding:6px 8px}table.dt td{padding:5px 6px}.dt-scroll{max-height:72vh;overflow:auto;-webkit-overflow-scrolling:touch}.dt-scroll table.dt{display:table;width:max-content;min-width:100%;overflow:visible}.dt-scroll table.dt thead th{position:sticky;top:0;z-index:3}.history-list .h{grid-template-columns:1fr;gap:2px;padding:6px 0;font-size:10px}.history-list .right{text-align:left}.chip{padding:3px 8px;font-size:10px}.filter-bar{flex-direction:column;align-items:stretch;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);margin-bottom:var(--sp-3)}.filter-group,.filter-group-grow{flex:1 1 100%;width:100%;flex-wrap:nowrap;align-items:flex-start;gap:var(--sp-2)}.filter-label{flex:0 0 46px;width:46px;padding-top:5px;font-size:8px;line-height:1.2}.filter-group .chips{flex:1 1 auto;margin-bottom:0;gap:4px}.filter-input{min-width:0;width:100%}.card[style*="width: 360"]{width:calc(100% - 24px)!important;max-width:360px}table.dt tr.drill-row td{position:sticky;left:0;width:calc(100vw - 32px);max-width:calc(100vw - 32px);box-sizing:border-box;padding:8px!important}.drill-panel{box-sizing:border-box;width:100%;max-width:100%;padding:12px;margin:8px 0;overflow-x:hidden}.drill-panel *{max-width:100%;word-break:break-word;overflow-wrap:break-word}.drill-title{font-size:10px;margin-bottom:12px;line-height:1.4;white-space:normal}.cadena .v{font-size:11px}.spark{width:100%!important;height:auto!important;max-width:100%;display:block}.drill-panel table.dt{font-size:10px;width:100%;display:block;overflow-x:auto}[data-virtual-container]{max-width:100vw;overflow-x:auto;-webkit-overflow-scrolling:touch}.card .chips{gap:4px}.card .chips .chip{font-size:10px;padding:3px 8px}table.dt thead th,table.dt tbody td{min-width:60px;white-space:nowrap}table.dt tr.drill-row td{min-width:0;white-space:normal}.drill-panel{width:100%!important;max-width:100%!important;box-sizing:border-box!important;overflow-x:hidden!important;padding:12px!important}.drill-panel,.drill-panel *{word-break:break-word!important;overflow-wrap:anywhere!important;max-width:100%!important;box-sizing:border-box!important}.drill-panel .cadena .step,.drill-panel .cadena .v{white-space:normal!important;word-break:break-word!important}.drill-panel .cadena .v{font-size:11px!important;line-height:1.4}.drill-panel .card-title{white-space:normal!important;font-size:9px}.drill-panel svg,.drill-panel svg.spark{max-width:100%!important;height:auto!important;display:block!important}.drill-panel table{width:100%!important;max-width:100%!important;display:block;overflow-x:auto;font-size:10px}.drill-panel .drill-grid{grid-template-columns:1fr!important;gap:16px!important}}input,select,textarea{font-family:inherit;font-size:13px;line-height:1.4;color:var(--fg);background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--r-sm);padding:6px 10px;outline:none;transition:border-color .12s,box-shadow .12s}input:focus,select:focus,textarea:focus{border-color:var(--amber);box-shadow:0 0 0 1px var(--amber)}input:disabled,select:disabled,textarea:disabled{opacity:.55;cursor:not-allowed}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--text-muted) 50%),linear-gradient(135deg,var(--text-muted) 50%,transparent 50%);background-position:calc(100% - 14px) 50%,calc(100% - 9px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:28px}button{font-family:inherit;font-size:13px;line-height:1.2;cursor:pointer}.btn-primary{background:var(--amber);color:#000;border:1px solid var(--amber);border-radius:var(--r-sm);padding:7px 14px;font-weight:600;letter-spacing:.01em;transition:background .12s,transform .04s}.btn-primary:hover:not(:disabled){background:var(--amber-bright, var(--amber))}.btn-primary:active:not(:disabled){transform:translateY(1px)}.btn-primary:disabled{background:var(--bg-panel-2);color:var(--text-muted);border-color:var(--border-subtle);cursor:not-allowed}.btn-ghost{background:transparent;color:var(--fg);border:1px solid var(--border-subtle);border-radius:var(--r-sm);padding:7px 14px;font-weight:500;transition:border-color .12s,background .12s}.btn-ghost:hover:not(:disabled){border-color:var(--amber);color:var(--amber)}.btn-ghost:disabled{opacity:.5;cursor:not-allowed}.btn-danger{background:var(--red);color:#fff;border:1px solid var(--red);border-radius:var(--r-sm);padding:7px 14px;font-weight:600}.btn-danger:hover:not(:disabled){filter:brightness(1.1)}.btn-danger:disabled{opacity:.5;cursor:not-allowed}.spinner{width:18px;height:18px;border:2px solid var(--border-subtle);border-top-color:var(--amber);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
