/* Prolicita · una sola identidad para la portada, el alta y el acceso (26-09-2026).
   El informe que sirve licitia-api (web.py) copia estos mismos tokens. */
:root{
  --ink:#111827; --ink-2:#374151; --muted:#566273; --faint:#6b7684;
  --line:#e4e7eb; --line-2:#d5dae0; --panel:#f7f8f8; --panel-2:#eef1f2;
  --bg:#ffffff;
  --green:#177757; --green-hi:#12664a; --green-tint:#e9f4ef; --green-line:#bfdccf;
  --amber:#8a5a00; --amber-tint:#fdf3dc;
  --red:#b42318; --red-tint:#fdecea;
  --radius:10px; --radius-lg:14px;
  --sans:'Hanken Grotesk',ui-sans-serif,system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --shadow:0 1px 2px rgba(17,24,39,.04),0 8px 24px -12px rgba(17,24,39,.12);
  color-scheme:light;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:84px}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--bg);color:var(--ink);
  font:400 17px/1.55 var(--sans);-webkit-font-smoothing:antialiased;
  font-feature-settings:"ss01" 0;text-rendering:optimizeLegibility}
::selection{background:var(--green-tint);color:var(--ink)}
a{color:var(--green);text-decoration:underline;text-decoration-color:var(--green-line);
  text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{text-decoration-color:currentColor}
:focus-visible{outline:2px solid var(--green);outline-offset:2px;border-radius:6px}
h1,h2,h3{margin:0;text-wrap:balance;font-weight:700;letter-spacing:-.025em;color:var(--ink)}
p{margin:0}
.num,td.n,.tab{font-variant-numeric:tabular-nums}
.cif{font-variant-numeric:tabular-nums;letter-spacing:.02em}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:1180px;margin:0 auto;padding-inline:max(16px,4vw)}

/* barra superior */
.top{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.94);border-bottom:1px solid var(--line)}
@supports (backdrop-filter:blur(8px)){.top{background:rgba(255,255,255,.82);backdrop-filter:saturate(160%) blur(10px)}}
.top .in{max-width:1536px;margin:0 auto;padding-inline:max(16px,4.5vw);height:64px;display:flex;align-items:center;gap:24px}
.marca{font:800 33px/1 var(--sans);letter-spacing:-.04em;color:var(--ink);text-decoration:none;display:inline-flex;align-items:center;min-height:44px}
.top nav{display:flex;gap:4px;margin-inline:auto}
.top nav a{color:var(--ink-2);text-decoration:none;font-size:15px;padding:10px 14px;border-radius:8px}
.top nav a:hover{background:var(--panel);color:var(--ink)}
.top .acc{display:flex;align-items:center;gap:8px;margin-left:auto}
.top nav + .acc{margin-left:0}
.enlace{color:var(--ink-2);text-decoration:none;font-size:15px;padding:10px 12px;border-radius:8px;min-height:44px;display:inline-flex;align-items:center}
.enlace:hover{background:var(--panel);color:var(--ink)}
@media (max-width:900px){.top nav{display:none}.top .acc{margin-left:auto}}

/* botones */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;
  padding:0 18px;border-radius:var(--radius);border:1px solid transparent;cursor:pointer;
  font:600 15px/1 var(--sans);text-decoration:none;white-space:nowrap;
  transition:background-color .15s ease,border-color .15s ease,color .15s ease}
.btn.negro{background:var(--ink);color:#fff}
.btn.negro:hover{background:#000}
.btn.verde{background:var(--green);color:#fff}
.btn.verde:hover{background:var(--green-hi)}
.btn.borde{background:#fff;color:var(--ink);border-color:var(--line-2)}
.btn.borde:hover{border-color:var(--ink-2)}
.btn[disabled],.btn[aria-busy=true]{cursor:progress;opacity:.92}
.btn .giro{width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;display:none}
.btn[aria-busy=true] .giro{display:inline-block;animation:giro .8s linear infinite}
@keyframes giro{to{transform:rotate(360deg)}}

/* campos */
label.l{display:block;font-size:14px;font-weight:600;color:var(--ink-2);margin:0 0 6px}
.campo{width:100%;min-height:48px;padding:12px 14px;border:1px solid var(--line-2);border-radius:var(--radius);
  background:#fff;color:var(--ink);font:400 16px/1.3 var(--sans);transition:border-color .15s ease,box-shadow .15s ease}
.campo::placeholder{color:var(--faint)}
.campo:hover{border-color:#b9c0c9}
.campo:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-tint)}
.campo[aria-invalid=true]{border-color:var(--red);box-shadow:0 0 0 3px var(--red-tint)}
.aviso{font-size:14px;border-radius:var(--radius);padding:12px 14px}
.aviso.mal{background:var(--red-tint);color:var(--red)}
.aviso.bien{background:var(--green-tint);color:var(--green-hi)}
.etq{display:inline-flex;align-items:center;gap:6px;font:600 12px/1 var(--sans);letter-spacing:.01em;
  padding:5px 8px;border-radius:999px;background:var(--panel-2);color:var(--ink-2);white-space:nowrap}
.etq.verde{background:var(--green-tint);color:var(--green-hi)}
.etq.ambar{background:var(--amber-tint);color:var(--amber)}

/* pie */
.pie{border-top:1px solid var(--line);background:var(--panel);color:var(--muted);font-size:14px;padding-block:40px 56px}
.pie .in{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:32px}
.pie b{color:var(--ink);font-weight:600}
.pie a{color:var(--ink-2)}
.pie ul{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:4px}
.pie li a{display:inline-flex;min-height:44px;align-items:center}
@media (max-width:760px){.pie .in{grid-template-columns:1fr}}
