/* Tipografias, tokens de color, reset y controles. Lo comparte todo el tablero; se carga desde base.html antes que cualquier otro. */

  /* Tipografias servidas desde esta carpeta, como Chart.js: el tablero
     no pide nada a internet. Son fuentes variables, un archivo por
     subconjunto cubre todo el rango de pesos. Para actualizarlas se
     reemplazan los .woff2 y se deja igual el resto. */
  /* Inter · latin-ext */
  @font-face{
    font-family:"Inter";
    font-style:normal;
    font-weight:400 700;
    font-display:swap;
    src:url(/estatico/inter-latin-ext.woff2) format("woff2");
    unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
  }
  /* Inter · latin */
  @font-face{
    font-family:"Inter";
    font-style:normal;
    font-weight:400 700;
    font-display:swap;
    src:url(/estatico/inter-latin.woff2) format("woff2");
    unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
  }
  /* JetBrains Mono · latin-ext */
  @font-face{
    font-family:"JetBrains Mono";
    font-style:normal;
    font-weight:400 500;
    font-display:swap;
    src:url(/estatico/jetbrains-mono-latin-ext.woff2) format("woff2");
    unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
  }
  /* JetBrains Mono · latin */
  @font-face{
    font-family:"JetBrains Mono";
    font-style:normal;
    font-weight:400 500;
    font-display:swap;
    src:url(/estatico/jetbrains-mono-latin.woff2) format("woff2");
    unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
  }

/* ===================================================================
   Sistema visual compartido con equipos.imadiag.com
   =================================================================== */
:root{
  --fondo:#fafafa; --panel:#ffffff; --panel-2:#f4f4f5;
  --linea:#e4e4e7; --linea-2:#d4d4d8;
  --tinta:#09090b; --tinta-2:#52525b; --tinta-3:#a1a1aa;
  --tinta-apagada:#71717a;   /* texto atenuado: 4.7:1 sobre --fondo */
  --marca:#4f46e5; --marca-suave:#eef2ff; --marca-borde:#c7d2fe;
  --marca-texto:#ffffff; --marca-hover:#4338ca;
  --al-dia:#15803d; --al-dia-suave:#dcfce7;
  --demorado:#b45309; --demorado-suave:#fef3c7;
  --callado:#b91c1c; --callado-suave:#fee2e2;
  --nunca:#71717a; --nunca-suave:#f4f4f5;
  --foco:0 0 0 3px rgba(79,70,229,.18);
  --serie-husj:#4f46e5; --serie-cer:#c2410c;
  --rejilla:#ececef;
  --velo:rgba(9,9,11,.45);
  --radio:6px;
  --sans:"Inter","Segoe UI Variable","Segoe UI",system-ui,-apple-system,sans-serif;
  --mono:"JetBrains Mono",Consolas,ui-monospace,monospace;
  --lateral:248px;
}
:root[data-tema="oscuro"]{
  --fondo:#0a0a0a; --panel:#111113; --panel-2:#18181b;
  --linea:#27272a; --linea-2:#3f3f46;
  --tinta:#fafafa; --tinta-2:#a1a1aa; --tinta-3:#71717a;
  --tinta-apagada:#8b8b94;   /* texto atenuado: 5.8:1 sobre --fondo */
  --marca:#818cf8; --marca-suave:#1e1b4b; --marca-borde:#3730a3;
  --marca-texto:#0a0a0a; --marca-hover:#a5b4fc;
  --al-dia:#4ade80; --al-dia-suave:#052e16;
  --demorado:#fbbf24; --demorado-suave:#451a03;
  --callado:#f87171; --callado-suave:#450a0a;
  --nunca:#a1a1aa; --nunca-suave:#27272a;
  --foco:0 0 0 3px rgba(129,140,248,.3);
  --serie-husj:#6366f1; --serie-cer:#ea580c;
  --rejilla:#232326;
  --velo:rgba(0,0,0,.6);
}

*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  font:15px/1.5 var(--sans);
  background:var(--fondo); color:var(--tinta);
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-weight:600;letter-spacing:-.01em;line-height:1.25}
a{color:var(--marca)}
svg{flex:none}
.oculto{display:none !important}
.solo-lectores{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:none;box-shadow:var(--foco);border-radius:var(--radio)}

/* ---------- Controles ---------- */
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  height:38px;padding:0 14px;border-radius:var(--radio);
  font-size:14px;font-weight:500;white-space:nowrap;
  background:var(--marca);color:var(--marca-texto);border:1px solid var(--marca);
  transition:background .12s,border-color .12s,opacity .12s;
}
.btn:hover{background:var(--marca-hover);border-color:var(--marca-hover)}
.btn.sec{background:var(--panel);color:var(--tinta);border-color:var(--linea-2)}
.btn.sec:hover{background:var(--panel-2)}
.btn.peligro{background:var(--panel);color:var(--callado);border-color:var(--callado-suave)}
.btn.peligro:hover{background:var(--callado-suave)}
.btn.chico{height:30px;padding:0 10px;font-size:13px}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn-icono{
  display:inline-flex;align-items:center;justify-content:center;
  width:36px;height:36px;border-radius:var(--radio);
  border:1px solid var(--linea-2);background:var(--panel);color:var(--tinta-2);
}
.btn-icono:hover{background:var(--panel-2);color:var(--tinta)}

input,select{
  font:inherit;font-size:15px;height:40px;width:100%;
  padding:0 11px;border:1px solid var(--linea-2);border-radius:var(--radio);
  background:var(--panel);color:var(--tinta);
}
input[type=file]{height:auto;padding:9px 11px;font-size:14px}
input::placeholder{color:var(--tinta-apagada)}
input:focus,select:focus{outline:none;border-color:var(--marca);box-shadow:var(--foco)}
:root[data-tema="oscuro"] input[type=month]::-webkit-calendar-picker-indicator,
:root[data-tema="oscuro"] input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.75)}

.campo{display:flex;flex-direction:column;gap:5px;min-width:0}
.campo > label{font-size:13px;font-weight:500;color:var(--tinta-2)}
.campo-icono{position:relative}
.campo-icono > svg{position:absolute;left:12px;top:50%;margin-top:-8px;color:var(--tinta-3);pointer-events:none}
.campo-icono > input{padding-left:38px}
.campo-icono > .ojo{position:absolute;right:4px;top:4px;width:32px;height:32px;
  display:flex;align-items:center;justify-content:center;color:var(--tinta-2);border-radius:4px}
.campo-icono > .ojo:hover{color:var(--tinta);background:var(--panel-2)}
.campo-icono:has(.ojo) > input{padding-right:40px}
