    :root{
      --bg:#07111f;
      --panel:#0c1728;
      --panel2:#101f35;
      --line:rgba(255,255,255,.08);
      --text:#e9f0ff;
      --muted:#9fb0d1;
      --accent:#5eead4;
      --accent2:#60a5fa;
      --accent3:#c084fc;
      --danger:#f87171;
      --warn:#fbbf24;
      --ok:#34d399;
    }
    *{box-sizing:border-box; margin:0; padding:0;}
    body{
      font-family:'DM Sans',sans-serif;
      background: radial-gradient(circle at top left,rgba(96,165,250,.15),transparent 30%),
        radial-gradient(circle at top right,rgba(192,132,252,.12),transparent 28%),
        linear-gradient(180deg,#06101d 0%,#081425 55%,#09111a 100%);
      color:var(--text);
      min-height:100vh;
    }
    .mono{font-family:'DM Mono',monospace;}
    .glass{background:linear-gradient(180deg,rgba(16,31,53,.92),rgba(10,22,39,.92)); border:1px solid var(--line); box-shadow:0 18px 55px rgba(0,0,0,.30); border-radius:24px;}
    .glass-soft{background:rgba(12,23,40,.72); border:1px solid rgba(255,255,255,.08); backdrop-filter:blur(12px); border-radius:16px;}
    .chip{border:1px solid rgba(255,255,255,.10); background:rgba(255,255,255,.04); border-radius:999px;}
    .hero-line{background:linear-gradient(90deg,rgba(94,234,212,.9),rgba(96,165,250,.9),rgba(192,132,252,.9)); height:2px;}
    input,select{outline:none; font-family:inherit;}
    input[type="range"]{-webkit-appearance:none; appearance:none; height:6px; border-radius:3px; background:rgba(255,255,255,.12);}
    input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none; width:18px; height:18px; border-radius:50%; background:#fff; border:2px solid #60a5fa; box-shadow:0 0 0 4px rgba(96,165,250,.22);}
    .tab-btn.active{background:linear-gradient(90deg,rgba(94,234,212,.18),rgba(96,165,250,.16)); border-color:rgba(96,165,250,.40); color:#fff;}
    .badge-pos{color:#c7fff4; background:rgba(52,211,153,.14); border:1px solid rgba(52,211,153,.35); border-radius:999px; padding:2px 10px; font-size:12px; display:inline-flex; align-items:center;}
    .badge-neg{color:#ffe0e0; background:rgba(248,113,113,.14); border:1px solid rgba(248,113,113,.35); border-radius:999px; padding:2px 10px; font-size:12px; display:inline-flex; align-items:center;}
    .badge-neu{color:#d9e7ff; background:rgba(148,163,184,.16); border:1px solid rgba(148,163,184,.28); border-radius:999px; padding:2px 10px; font-size:12px; display:inline-flex; align-items:center;}
    .scroll-y{overflow-y:auto;}
    .scroll-y::-webkit-scrollbar{width:6px;}
    .scroll-y::-webkit-scrollbar-thumb{background:rgba(255,255,255,.14); border-radius:3px;}
    .scroll-x::-webkit-scrollbar{height:6px;}
    .scroll-x::-webkit-scrollbar-thumb{background:rgba(255,255,255,.14); border-radius:3px;}
    .dropzone-drag{border-color:rgba(94,234,212,.65) !important; background:rgba(94,234,212,.08) !important;}
    .metric-num{font-size:clamp(1.6rem,3vw,2.2rem); font-weight:600; letter-spacing:-0.02em;}
    select{background:#0c1525; color:var(--text); border:1px solid rgba(255,255,255,.12); border-radius:12px; padding:8px 12px; font-size:13px; width:100%;}
    select option{background:#0c1525;}
    input[type=number],input[type=text]{background:#0c1525; color:var(--text); border:1px solid rgba(255,255,255,.12); border-radius:12px; padding:8px 12px; font-size:13px; width:100%;}
    .btn-primary{background:rgba(94,234,212,.18); border:1px solid rgba(94,234,212,.32); color:#fff; border-radius:16px; padding:10px 16px; font-size:14px; font-weight:500; cursor:pointer; transition:background .15s; width:100%;}
    .btn-primary:hover{background:rgba(94,234,212,.28);}
    .btn-danger{background:rgba(248,113,113,.14); border:1px solid rgba(248,113,113,.30); color:#fff; border-radius:16px; padding:10px 16px; font-size:14px; font-weight:500; cursor:pointer; transition:background .15s; width:100%;}
    .btn-danger:hover{background:rgba(248,113,113,.24);}
    .btn-purple{background:rgba(192,132,252,.16); border:1px solid rgba(192,132,252,.30); color:#fff; border-radius:16px; padding:10px 16px; font-size:14px; font-weight:500; cursor:pointer; transition:background .15s; width:100%;}
    .btn-purple:hover{background:rgba(192,132,252,.26);}
    .btn-sm{border:1px solid rgba(255,255,255,.10); background:rgba(255,255,255,.05); border-radius:10px; padding:4px 12px; font-size:12px; cursor:pointer; color:var(--text); transition:background .12s;}
    .btn-sm:hover{background:rgba(255,255,255,.10);}
    .section-label{font-size:11px; text-transform:uppercase; letter-spacing:.22em; color:var(--muted);}
    .kpi-card{padding:20px; display:flex; flex-direction:column; gap:10px;}
    table{border-collapse:collapse; width:100%;}
    th{font-size:11px; text-transform:uppercase; letter-spacing:.16em; color:var(--muted); padding:10px 12px; text-align:left; border-bottom:1px solid var(--line); white-space:nowrap;}
    td{padding:10px 12px; font-size:13px; border-bottom:1px solid rgba(255,255,255,.04); white-space:nowrap;}
    tr:hover td{background:rgba(255,255,255,.025);}
    .tag{display:inline-block; border-radius:8px; padding:2px 8px; font-size:11px; font-weight:500;}
    .tag-indefinido{background:rgba(52,211,153,.14); color:#6effc8; border:1px solid rgba(52,211,153,.28);}
    .tag-temporal{background:rgba(251,191,36,.12); color:#fde68a; border:1px solid rgba(251,191,36,.28);}
    .tag-interinidad{background:rgba(96,165,250,.12); color:#bfdbfe; border:1px solid rgba(96,165,250,.28);}
    .status-bar{border-radius:12px; padding:10px 16px; font-size:13px; transition:all .2s;}
    .status-ok{background:rgba(52,211,153,.12); border:1px solid rgba(52,211,153,.28); color:#6effc8;}
    .status-error{background:rgba(248,113,113,.12); border:1px solid rgba(248,113,113,.28); color:#fca5a5;}
    .status-neutral{background:rgba(148,163,184,.10); border:1px solid rgba(148,163,184,.20); color:#cbd5e1;}
    .main-grid{display:grid; grid-template-columns:380px minmax(0,1fr); gap:24px;}
    @media(max-width:1100px){.main-grid{grid-template-columns:1fr;}}
    .charts-grid{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
    @media(max-width:900px){.charts-grid{grid-template-columns:1fr;}}
    .kpi-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px;}
    @media(max-width:900px){.kpi-grid{grid-template-columns:repeat(2,1fr);}}
    @media(max-width:500px){.kpi-grid{grid-template-columns:1fr;}}
    .aux-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-top:16px;}
    @media(max-width:700px){.aux-grid{grid-template-columns:repeat(2,1fr);}}
