:root{--bg:#0a0f0e;--panel:#101816;--panel-2:#16211d;--border:#22312b;--border-strong:#31453d;--text:#e8f0ec;--muted:#8fa39b;--faint:#5d6f68;--mint:#1fd8a4;--mint-dim:#17b389;--on-mint:#052019;--chart:#12a37d;--chart-2:#4c8fdc;--ramp-1:#7ee8c6;--ramp-2:#4cd3a4;--ramp-3:#22b98a;--ramp-4:#12946f;--ramp-5:#0b6b52;--amber:#f2a33c;--danger:#ff6b70;--mono:ui-monospace, "SFMono-Regular", "Cascadia Mono", "Roboto Mono", Menlo, Consolas, monospace;--sans:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.5}button{font:inherit}input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--mint);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.shell{grid-template-columns:218px 1fr;min-height:100%;display:grid}.sidebar{border-right:1px solid var(--border);background:var(--panel);flex-direction:column;gap:4px;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0}.wordmark{font-family:var(--mono);letter-spacing:.08em;color:var(--text);margin:0 8px 20px;font-size:15px}.wordmark b{color:var(--mint);font-weight:700}.wordmark span{color:var(--muted);font-weight:400}.nav-item{color:var(--muted);border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;text-decoration:none;transition:background .12s,color .12s;display:flex}.nav-item:hover{color:var(--text);background:var(--panel-2)}.nav-item.active{color:var(--text);background:var(--panel-2);box-shadow:inset 2px 0 0 var(--mint)}.nav-badge{font-family:var(--mono);background:var(--amber);color:#201503;border-radius:99px;padding:0 7px;font-size:11px;line-height:18px}.sidebar-foot{border-top:1px solid var(--border);flex-direction:column;gap:8px;margin-top:auto;padding-top:12px;display:flex}.sidebar-foot .who{font-family:var(--mono);color:var(--faint);text-overflow:ellipsis;white-space:nowrap;padding:0 8px;font-size:11px;overflow:hidden}.main{width:100%;min-width:0;padding:28px 32px 48px}@media (width<=760px){.shell{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--border);flex-direction:row;align-items:center;gap:2px;height:auto;padding:10px 12px;position:static;overflow-x:auto}.wordmark{white-space:nowrap;margin:0 10px 0 2px}.nav-item{white-space:nowrap;padding:6px 10px}.nav-item.active{box-shadow:inset 0 -2px 0 var(--mint)}.sidebar-foot{border-top:0;flex-direction:row;align-items:center;margin:0 0 0 auto;padding-top:0}.sidebar-foot .who{max-width:130px}.main{padding:20px 14px 40px}}.eyebrow{font-family:var(--mono);text-transform:uppercase;letter-spacing:.14em;color:var(--muted);margin:0 0 4px;font-size:11px}.eyebrow:before{content:"▪ ";color:var(--mint)}h1.page-title{letter-spacing:-.01em;margin:0 0 20px;font-size:22px;font-weight:650}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.faint{color:var(--faint)}.panel{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.toolbar .spacer{flex:1}.input,.select{background:var(--panel);border:1px solid var(--border-strong);color:var(--text);border-radius:8px;padding:7px 10px}.input::placeholder{color:var(--faint)}.input:focus,.select:focus{border-color:var(--mint-dim);outline:none}table.data a,.panel a:not(.btn){color:var(--text);border-bottom:1px solid var(--border-strong);text-decoration:none}table.data a:hover,.panel a:not(.btn):hover{color:var(--mint);border-bottom-color:var(--mint)}table.data{border-collapse:collapse;width:100%;font-size:13px}table.data th{text-align:left;font-family:var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--faint);border-bottom:1px solid var(--border-strong);white-space:nowrap;padding:8px 10px;font-size:11px;font-weight:500}table.data td{border-bottom:1px solid var(--border);vertical-align:middle;padding:9px 10px}table.data tr:last-child td{border-bottom:none}table.data tr:hover td{background:#1fd8a408}td.num{font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right}.table-scroll{overflow-x:auto}.btn{border:1px solid var(--border-strong);background:var(--panel-2);color:var(--text);cursor:pointer;border-radius:8px;padding:7px 12px;transition:border-color .12s,background .12s}.btn:hover:not(:disabled){border-color:var(--mint-dim)}.btn:disabled{opacity:.45;cursor:default}.btn.primary{background:var(--mint);border-color:var(--mint);color:var(--on-mint);font-weight:600}.btn.primary:hover:not(:disabled){background:var(--mint-dim);border-color:var(--mint-dim)}.btn.danger{color:var(--danger)}.btn.danger:hover:not(:disabled){border-color:var(--danger)}.btn.small{border-radius:7px;padding:4px 9px;font-size:12.5px}.chip{font-family:var(--mono);white-space:nowrap;border-radius:99px;padding:2px 9px;font-size:11.5px}.chip.ok{color:var(--mint);background:#1fd8a41f}.chip.warn{color:var(--amber);background:#f2a33c24}.chip.bad{color:var(--danger);background:#ff6b701f}.chip.plain{background:var(--panel-2);color:var(--muted)}.chip.info{color:var(--chart-2);background:#4c8fdc24}.chip-row{flex-wrap:wrap;gap:6px;margin:0 0 10px;display:flex}.chip-row .chip b{font-weight:600}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:20px;display:grid}.kpi{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:14px 16px}.kpi .label{font-family:var(--mono);text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-size:11px}.kpi .value{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:28px;font-weight:600;line-height:1.25}.kpi .value small{color:var(--muted);font-size:14px;font-weight:400}.kpi.alert{border-color:var(--amber)}.kpi.alert .value{color:var(--amber)}.kpi .hint{color:var(--faint);margin-top:4px;font-size:12px}.kpi.money{border-color:var(--border-strong)}.kpi.money .value{color:var(--mint)}.section-head{flex-wrap:wrap;align-items:baseline;gap:10px;margin:24px 0 10px;display:flex}.section-head h2{letter-spacing:-.01em;margin:0;font-size:15px;font-weight:650}.section-head .tag{font-family:var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--faint);font-size:11px}.note{border-left:2px solid var(--border-strong);color:var(--muted);max-width:720px;margin:0 0 16px;padding:3px 0 3px 12px;font-size:12.5px}.note b{color:var(--text);font-weight:600}.note.next{border-left-color:var(--mint-dim)}.rail-off{opacity:.72}.rail-off summary{cursor:pointer;align-items:center;gap:8px;font-size:13.5px;font-weight:600;list-style:none;display:flex}.rail-off summary::-webkit-details-marker{display:none}.rail-off summary:before{content:"▸";color:var(--faint);font-weight:400}.rail-off[open] summary:before{content:"▾"}.chart-grid{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:12px;display:grid}.chart-title{margin:0 0 2px;font-size:13.5px;font-weight:600}.chart-sub{color:var(--muted);margin:0 0 10px;font-size:12px}.overlay{z-index:40;background:#040807b3;place-items:center;display:grid;position:fixed;inset:0}.dialog{background:var(--panel);border:1px solid var(--border-strong);border-radius:14px;width:min(440px,100vw - 32px);padding:22px}.dialog h2{margin:0 0 4px;font-size:17px}.dialog .dialog-sub{color:var(--muted);margin:0 0 16px;font-size:13px}.field{flex-direction:column;gap:5px;margin-bottom:14px;display:flex}.field label{font-family:var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-size:11px}.dialog-actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.form-error{color:var(--danger);margin:8px 0 0;font-size:13px}.form-ok{color:var(--mint);margin:8px 0 0;font-size:13px}.login-wrap{background:radial-gradient(600px 300px at 50% -80px, #1fd8a412, transparent), var(--bg);place-items:center;min-height:100vh;display:grid}.login-card{background:var(--panel);border:1px solid var(--border);border-radius:14px;width:min(360px,100vw - 32px);padding:28px}.empty{text-align:center;color:var(--muted);padding:36px 16px}.empty .hint{color:var(--faint);margin-top:4px;font-size:12.5px}.pager{font-family:var(--mono);color:var(--muted);justify-content:flex-end;align-items:center;gap:10px;margin-top:12px;font-size:12px;display:flex}@media (width<=780px){.shell{grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--border);flex-flow:wrap;align-items:center;height:auto;position:static}.wordmark{margin:0 12px 0 0}.sidebar-foot{border:none;flex-direction:row;margin:0 0 0 auto;padding:0}.main{padding:20px 16px 40px}}.feedback-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.fb{background:var(--panel);border:1px solid var(--border);border-left:3px solid var(--border-strong);border-radius:10px;padding:12px 14px}.fb--nuevo{border-left-color:var(--amber,#f2a33c)}.fb--en_marcha{border-left-color:#6aa9ff}.fb--hecho{border-left-color:var(--mint)}.fb--descartado{opacity:.6}.fb-head{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.fb-estado{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:11px}.fb-meta{color:var(--muted);font-size:12px}.fb-body{margin:8px 0 0;font-size:14px;line-height:1.5}.fb-resp{border-left:2px solid var(--mint);color:var(--muted);margin:8px 0 0;padding-left:10px;font-size:13px}.fb-acciones{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.fb-acciones button{padding:4px 10px;font-size:12px}.banner{border:1px solid var(--border);border-radius:10px;margin:0 0 18px;padding:12px 14px;font-size:.95rem;line-height:1.45}.banner.bad{background:#dc4e4e12;border-color:#dc4e4e73 #dc4e4e73 #dc4e4e73 #c0392b;border-left-style:solid;border-left-width:3px}.correo{border-bottom:1px solid var(--border,#2a2a2a);padding:14px 0}.correo:last-child{border-bottom:0}.correo-asunto{margin:6px 0 8px;font-weight:600}.correo-cuerpo{white-space:pre-wrap;word-break:break-word;background:#ffffff08;border-radius:6px;max-height:220px;margin:0 0 10px;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;line-height:1.5;overflow:auto}
