:root{--canvas: #e4e8ed;--surface: #ffffff;--surface-2: #f5f7f9;--ink: #12161b;--ink-2: #5b6673;--ink-3: #8a94a0;--line: #d0d7de;--line-2: #e4e9ee;--steel: #1f4e79;--steel-hover: #183e5f;--steel-soft: #e8f0f7;--signal: #e8b004;--ok: #166534;--ok-soft: #e3f2e6;--warn: #9a5b00;--warn-soft: #fcf0dc;--stop: #9f1d1d;--stop-soft: #fbe9e9;--wait: #4b3f8f;--wait-soft: #edeaf8;--nav-ink: #b9c2cc;--nav-hover: #1d242c;--nav-line: #262e37;--radius: 3px;--row: 33px;--top: 50px;--aside: 198px;--mono: "JetBrains Mono", ui-monospace, Menlo, monospace;--sans: "Inter", system-ui, sans-serif;--cond: "Barlow Condensed", system-ui, sans-serif;--store-color: var(--signal)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--sans);font-size:13px;line-height:1.45;color:var(--ink);background:var(--canvas);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:none;border:none}a{color:var(--steel);text-decoration:none}:focus-visible{outline:2px solid var(--steel);outline-offset:1px}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.plate{display:inline-block;font-family:var(--mono);font-weight:500;font-size:12px;letter-spacing:.04em;background:var(--ink);color:#f2f4f6;padding:2px 7px 3px;border-radius:2px;border-bottom:2px solid var(--signal);white-space:nowrap}.plate.lg{font-size:19px;font-weight:700;padding:5px 12px 6px;letter-spacing:.06em;border-bottom-width:3px}.plate.ghost{background:transparent;color:var(--ink);border:1px solid var(--line);border-bottom:2px solid var(--signal)}.mono{font-family:var(--mono);font-size:12px;letter-spacing:.02em}.num{font-family:var(--mono);font-size:12px;text-align:right;font-variant-numeric:tabular-nums}.app{display:grid;grid-template-columns:var(--aside) 1fr;grid-template-rows:auto 1fr;height:100vh;grid-template-areas:"brand top" "nav main"}.brand{grid-area:brand;background:var(--ink);display:flex;align-items:center;gap:8px;padding:0 14px;height:var(--top)}.brand b{font-family:var(--cond);font-size:22px;font-weight:700;letter-spacing:.06em;color:#fff;text-transform:uppercase}.brand span{font-family:var(--mono);font-size:9px;color:var(--signal);letter-spacing:.14em;padding-top:4px}.top{grid-area:top;background:var(--surface);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:14px;padding:0 16px;height:var(--top);position:relative}.top:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--store-color)}.search{flex:1;max-width:460px;position:relative}.search input{width:100%;height:31px;border:1px solid var(--line);border-radius:var(--radius);padding:0 10px 0 30px;background:var(--surface-2);font-size:13px;cursor:pointer}.search input:focus{background:#fff;border-color:var(--steel);outline:none}.search .ico{position:absolute;left:9px;top:7px;color:var(--ink-3);font-size:13px}.search kbd{position:absolute;right:8px;top:7px;font-family:var(--mono);font-size:10px;color:var(--ink-3);border:1px solid var(--line);border-radius:2px;padding:1px 4px;background:#fff}.store{display:flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:var(--radius);padding:4px 9px;background:var(--surface-2)}.store .dot{width:9px;height:9px;border-radius:50%;background:var(--store-color)}.store select{border:none;background:none;font-size:12px;font-weight:600;cursor:pointer;outline:none}.store .sola{font-size:12px;font-weight:600}.store.pide{border-color:var(--signal);background:#fefaf0}.store.pide select{color:var(--ink-2)}.who{display:flex;align-items:center;gap:8px;padding-left:12px;border-left:1px solid var(--line-2)}.who .av{width:27px;height:27px;border-radius:50%;background:var(--steel);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:600}.who .n{font-size:12px;font-weight:600;line-height:1.2}.who .r{font-size:10px;color:var(--ink-2);text-transform:uppercase;letter-spacing:.05em}.nav{grid-area:nav;background:var(--ink);overflow-y:auto;padding:8px 0 20px}.nav .grp{color:var(--ink-3);font-family:var(--mono);font-size:9px;letter-spacing:.16em;padding:14px 14px 6px;text-transform:uppercase}.nav a{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 14px;color:var(--nav-ink);font-family:var(--cond);font-size:15px;letter-spacing:.03em;text-transform:uppercase;border-left:3px solid transparent}.nav a:hover{background:var(--nav-hover);color:#fff}.nav a.on{background:var(--nav-hover);color:#fff;border-left-color:var(--signal)}.nav a .cnt{font-family:var(--mono);font-size:10px;color:var(--ink-3);letter-spacing:0}.nav a.on .cnt{color:var(--signal)}.nav .frontier{margin-top:10px;border-top:1px solid var(--nav-line);padding-top:4px}.main{grid-area:main;overflow-y:auto;padding:16px 18px 40px}.crumb{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--ink-2);margin-bottom:9px}.crumb b{color:var(--ink);font-weight:600}.head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:14px}.head h1{font-family:var(--cond);font-size:29px;font-weight:600;letter-spacing:.01em;text-transform:uppercase;line-height:1}.head .sub{font-size:12px;color:var(--ink-2);margin-top:4px}.head .acciones{display:flex;gap:8px;align-items:center}.pattern{font-family:var(--mono);font-size:9px;letter-spacing:.12em;color:var(--ink-2);border:1px dashed var(--line);border-radius:2px;padding:3px 7px;background:var(--surface-2)}.btn{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius);padding:5px 11px;font-size:12px;font-weight:500;display:inline-flex;align-items:center;gap:6px}.btn:hover:not([disabled]){border-color:var(--ink-3);background:var(--surface-2)}.btn.primary{background:var(--steel);border-color:var(--steel);color:#fff}.btn.primary:hover:not([disabled]){background:var(--steel-hover);border-color:var(--steel-hover)}.btn.sm{padding:3px 8px;font-size:11px}.btn[disabled]{opacity:.45;cursor:not-allowed}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.panel+.panel{margin-top:14px}.panel-h{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;border-bottom:1px solid var(--line-2);background:var(--surface-2)}.panel-h h2{font-family:var(--cond);font-size:16px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.panel-b{padding:12px}.filters{display:flex;flex-wrap:wrap;align-items:center;gap:7px;padding:9px 12px;border-bottom:1px solid var(--line-2);background:var(--surface)}.filters select,.filters input{height:28px;border:1px solid var(--line);border-radius:var(--radius);padding:0 8px;font-size:12px;background:var(--surface)}.chip{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--steel);background:var(--steel-soft);color:var(--steel);border-radius:12px;padding:2px 8px;font-size:11px;font-weight:500}.chip button{color:var(--steel);font-size:13px;line-height:1}.spacer{flex:1}.scroll-x{overflow-x:auto}table{width:100%;border-collapse:collapse}thead th{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-2);text-align:left;padding:7px 10px;border-bottom:1px solid var(--line);background:var(--surface-2);position:sticky;top:0;white-space:nowrap}thead th.r{text-align:right}tbody td{padding:0 10px;height:var(--row);border-bottom:1px solid var(--line-2);vertical-align:middle;white-space:nowrap}tbody tr:hover{background:#f7fafc}tbody tr.sel{background:var(--steel-soft)}tbody tr.clickable{cursor:pointer}td .sub{font-size:11px;color:var(--ink-2)}.check{width:13px;height:13px;accent-color:var(--steel)}.vacio{padding:26px 12px;text-align:center;color:var(--ink-2);font-size:12px}.st{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:2px 7px;border-radius:2px;letter-spacing:.02em}.st:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}.st.ok{background:var(--ok-soft);color:var(--ok)}.st.warn{background:var(--warn-soft);color:var(--warn)}.st.stop{background:var(--stop-soft);color:var(--stop)}.st.wait{background:var(--wait-soft);color:var(--wait)}.st.idle{background:var(--surface-2);color:var(--ink-2)}.bulk{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--ink);color:#fff}.bulk .c{font-family:var(--mono);font-size:12px;color:var(--signal)}.bulk .btn{background:transparent;border-color:#3a444f;color:#fff}.bulk .btn:hover:not([disabled]){background:#2a333d;border-color:#3a444f}.foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;border-top:1px solid var(--line-2);font-size:11px;color:var(--ink-2)}.pager{display:flex;gap:3px}.pager button{border:1px solid var(--line);border-radius:2px;min-width:24px;height:24px;font-size:11px;background:var(--surface)}.pager button.on{background:var(--ink);color:#fff;border-color:var(--ink)}.pager button[disabled]{opacity:.4;cursor:not-allowed}.exp-head{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);border-top:3px solid var(--ink);padding:13px 15px;display:flex;gap:22px;align-items:flex-start;flex-wrap:wrap}.exp-head .idblock{display:flex;flex-direction:column;gap:7px}.exp-head .facts{display:flex;gap:26px;flex-wrap:wrap;flex:1}.fact{min-width:96px}.fact dt{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-2);margin-bottom:3px}.fact dd{font-size:13px;font-weight:500}.exp{display:grid;grid-template-columns:1fr 292px;gap:14px;margin-top:14px;align-items:start}.tabs{display:flex;border-bottom:1px solid var(--line);background:var(--surface-2);overflow-x:auto}.tabs button{padding:8px 13px;font-family:var(--cond);font-size:14px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}.tabs button.on{color:var(--ink);border-bottom-color:var(--signal);background:var(--surface)}.log{padding:4px 0}.log li{list-style:none;display:grid;grid-template-columns:15px 1fr;gap:9px;padding:8px 12px;border-bottom:1px solid var(--line-2)}.log .mark{width:7px;height:7px;border-radius:50%;background:var(--line);margin-top:5px;box-shadow:0 0 0 3px var(--surface),0 0 0 4px var(--line-2)}.log li.hot .mark{background:var(--signal)}.log .t{font-size:12px;line-height:1.4}.log .m{font-family:var(--mono);font-size:10px;color:var(--ink-3);margin-top:2px}.acciones-barra{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.bloqueo{border-top:1px solid var(--line-2);padding:10px 12px;background:var(--surface-2)}.bloqueo .t{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-2);margin-bottom:6px}.bloqueo ul{list-style:none;display:grid;gap:5px;font-size:12px}.steps{display:flex;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.step{flex:1;padding:9px 13px;border-right:1px solid var(--line-2);text-align:left}.step:last-child{border-right:none}.step .k{font-family:var(--mono);font-size:10px;color:var(--ink-3)}.step .l{font-family:var(--cond);font-size:15px;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-2)}.step.done{background:var(--surface-2)}.step.done .k{color:var(--ok)}.step.done .l{color:var(--ink)}.step.on{background:var(--ink)}.step.on .k{color:var(--signal)}.step.on .l{color:#fff}.form{display:grid;grid-template-columns:repeat(2,1fr);gap:12px 16px}.form .full{grid-column:1 / -1}.f label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-2);margin-bottom:4px;font-weight:600}.f input,.f select,.f textarea{width:100%;height:31px;border:1px solid var(--line);border-radius:var(--radius);padding:0 9px;background:var(--surface)}.f textarea{height:64px;padding:7px 9px;resize:vertical}.f .hint{font-size:11px;color:var(--ink-2);margin-top:4px}.f.req>label:after{content:" *";color:var(--stop)}.scope{border:1px solid var(--line);border-radius:var(--radius);padding:9px;background:var(--surface-2)}.scope label{display:flex;align-items:center;gap:7px;padding:3px 0;font-size:12px;text-transform:none;letter-spacing:0;font-weight:400;color:var(--ink)}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:11px 13px}.kpi .l{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-2)}.kpi .v{font-family:var(--mono);font-size:25px;font-weight:700;margin-top:5px;letter-spacing:-.01em}.kpi .d{font-size:11px;color:var(--ink-2);margin-top:2px}.bar{height:7px;background:var(--line-2);border-radius:1px;overflow:hidden;min-width:64px}.bar i{display:block;height:100%;background:var(--steel)}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0e128c;z-index:50}.omni{position:fixed;top:74px;left:50%;transform:translate(-50%);width:min(620px,92vw);background:var(--surface);border-radius:5px;box-shadow:0 18px 50px #0000004d;z-index:51;overflow:hidden}.omni input{width:100%;height:47px;border:none;border-bottom:1px solid var(--line);padding:0 15px;font-size:16px;font-family:var(--mono);outline:none}.omni .kind{font-family:var(--mono);font-size:9px;letter-spacing:.14em;color:var(--ink-2);padding:9px 15px 5px;text-transform:uppercase;background:var(--surface-2);border-bottom:1px solid var(--line-2)}.omni .hit{display:flex;align-items:center;gap:11px;padding:9px 15px;border-bottom:1px solid var(--line-2);cursor:pointer;width:100%;text-align:left}.omni .hit:hover,.omni .hit.on{background:var(--steel-soft)}.omni .hit .t{font-size:13px}.omni .hit .s{font-size:11px;color:var(--ink-2)}.omni .tip{padding:8px 15px;font-size:11px;color:var(--ink-2);background:var(--surface-2)}.sin-marco{border:0;padding:0;margin:0;min-width:0}.note{border-left:3px solid var(--signal);background:#fefaf0;padding:9px 12px;font-size:12px;border-radius:0 var(--radius) var(--radius) 0}.error{border-left:3px solid var(--stop);background:var(--stop-soft);padding:9px 12px;font-size:12px;border-radius:0 var(--radius) var(--radius) 0}.cargando{padding:26px 12px;text-align:center;color:var(--ink-2);font-size:12px}.login{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;grid-template-columns:44% 1fr;z-index:60;background:var(--surface)}.login .side{background:var(--ink);color:#fff;padding:44px 44px 32px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.login .side:after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--signal)}.login .side h1{font-family:var(--cond);font-size:56px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;line-height:.9}.login .side .tag{font-family:var(--mono);font-size:10px;letter-spacing:.22em;color:var(--signal);margin-top:10px}.login .side .lead{font-size:14px;color:#9aa5b1;margin-top:26px;max-width:34ch;line-height:1.55}.login .caja{display:grid;place-items:center;padding:32px}.login .box{width:min(360px,100%)}.login .box h2{font-family:var(--cond);font-size:27px;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.login .box .hi{font-size:13px;color:var(--ink-2);margin:6px 0 26px}.login .box .f{margin-bottom:16px}.login .box .f input{height:38px}.login .pw{position:relative}.login .pw button{position:absolute;right:9px;top:9px;font-size:11px;color:var(--steel);font-weight:600}.login .btn{width:100%;height:39px;justify-content:center;font-size:14px;font-weight:600}.login .foot-note{margin-top:30px;padding-top:16px;border-top:1px solid var(--line-2);font-size:11px;color:var(--ink-2);line-height:1.6}@media(max-width:820px){.login{grid-template-columns:1fr;grid-template-rows:auto 1fr}.login .side{padding:26px 26px 20px}.login .side h1{font-size:38px}.login .side .lead{display:none}}@media(max-width:960px){.app{grid-template-columns:1fr;grid-template-areas:"brand" "top" "main"}.nav{display:none}.exp{grid-template-columns:1fr}.kpis{grid-template-columns:repeat(2,1fr)}.form{grid-template-columns:1fr}}
