Cuenta de externas, arreglos de seguridad, títulos arriba y despliegue

- Rol «externas» para la asamblea de externas: pide sin cupo, siempre con el
  colectivo de fuera y su contacto, y sus solicitudes salen en naranja hasta
  que la asamblea de la Enre las confirma.
- /pedir/ explica en una línea que los colectivos externos piden fecha en la
  asamblea de externas, los lunes de 19:00 a 20:00.
- Seguridad: argon2 limitado a dos cálculos a la vez y el intento se cuenta
  antes de calcular (60 accesos simultáneos llevaban el proceso a 3,8 GB);
  bloqueo por cuenta a 20 fallos para que no se pueda dejar fuera a la
  asamblea; avisos por sesión en vez de por URL; sig sin «..»; eventos de
  31 días como mucho; parámetros de argon2 acotados.
- Títulos pegados arriba en todas las páginas; la franja de la enredadera
  recupera ese alto para seguir llenando la pantalla.
- despliegue/: instalar.sh, cuenta.sh, servicio de systemd con el proceso
  encerrado, fragmento de nginx que además deja de servir .git y las notas
  internas, y configuración de ejemplo. Ninguna contraseña en el repositorio.
This commit is contained in:
SITO 2026-09-23 12:15:33 +02:00
parent ce3127baff
commit 7d5dbeec60
24 changed files with 606 additions and 96 deletions

View file

@ -270,6 +270,19 @@ img{ max-width:100%; height:auto; display:block; }
}
.volver:hover, .volver:active{ color:var(--rosa-encendido); border-color:var(--rosa); gap:16px; }
/* En todas las páginas el título va pegado arriba y el contenido pegado al
título, para aprovechar la pantalla. Antes había 100-140px de aire encima. */
.cabecera .sub{ margin-top:4px; line-height:1.7; }
.volver{ margin-top:6px; }
@media (min-width:1024px){
/* El botón del menú es fijo y ocupa de 20 a 78px en las dos direcciones.
100px a cada lado (simétricos, para que el título siga centrado) bastan
para que un título largo no se meta debajo aunque empiece a 22px. En
móvil no hay anchura para eso y el título sigue bajo el botón: ver el
bloque de max-width:1023px. */
.cabecera{ padding:22px 100px 0; }
}
/* ========================== 5. LA ENREDADERA ==========================
Del título bajan varias raíces que se abren en columnas. De cada columna
cuelgan hojas alternando de lado. Cada hoja lleva su propio trozo de tallo
@ -313,8 +326,10 @@ img{ max-width:100%; height:auto; display:block; }
crecer por el max-width y 15vw sigue subiendo, asi que a 1920 las hojas
se salian de su columna y se pisaban. */
/* Lo que descuenta no es un numero suelto: la bajada ya no mide en vh sino
en proporcion al ancho, asi que entra en la cuenta por su nombre. */
--fila:clamp(282px,calc(100vh - 286px - var(--bajada)),1100px);
en proporcion al ancho, asi que entra en la cuenta por su nombre.
166 y no 286: la cabecera ya no deja 100-140px de aire sobre el titulo
sino 22px, y lo que sobra se lo queda la franja. */
--fila:clamp(282px,calc(100vh - 166px - var(--bajada)),1100px);
--hoja-base:clamp(282px,56vh,660px);
--col:calc(var(--rejilla) / 6);
list-style:none; margin:0; padding:0;
@ -1232,6 +1247,16 @@ gancio-calendar{
.pedir-aviso{ border:var(--pluma) solid var(--verde-hoja); background:#e7f2e9; color:var(--tinta); }
.pedir-error{ border:var(--pluma) solid var(--rosa); background:#fdeaf5; color:var(--rosa-legible); font-weight:700; }
/* ---- Aviso para colectivos de fuera ----
Una línea en naranja, el color de «solicitado externas». El naranja del
calendario (#ff7a00) no llega a AA como texto sobre el fondo claro; este
más tostado da 5.3:1 en la zona más oscura del degradado. */
.pedir-externas{
margin:10px clamp(16px,5vw,60px) 18px;
font-family:var(--lectura); font-size:1rem; line-height:1.6; color:#9a4400;
}
.pedir-externas strong{ color:#9a4400; }
/* ---- Textos de apoyo ---- */
.pista{ display:block; margin-top:4px; font-size:.85rem; color:var(--tinta-suave); }
.pedir-reglas{ margin:0 0 26px; padding-left:22px; line-height:1.7; max-width:70ch; }
@ -1318,6 +1343,7 @@ gancio-calendar{
/* Solicitado en negro y confirmado en verde radiactivo: se distinguen de un
vistazo entre sí y de los dos fondos de finde, que son verde apagado y rosa. */
.estado-solicitado{ background:var(--negro); color:#fff; }
.estado-solicitado.estado-externas{ background:#ff7a00; color:#000; }
.estado-confirmado{ background:#39ff14; color:#000; box-shadow:inset 0 0 0 1.4px #000; }
.finde-tranqui{ background:#a3d1b0; box-shadow:inset 0 0 0 1.4px var(--verde-hoja); }
.finde-ruido{ background:#fbdcef; box-shadow:inset 0 0 0 1.4px var(--rosa); }
@ -1409,6 +1435,9 @@ gancio-calendar{
}
.cal-ev-solicitado{ background:var(--negro); color:#fff; }
.cal-ev-confirmado{ background:#39ff14; color:#000; box-shadow:inset 0 0 0 1.4px #000; }
/* Lo que apunta la asamblea de externas, mientras espera: naranja con letra
negra (8.3:1). Confirmado pasa al verde como cualquier otro. */
.cal-ev-solicitado.cal-ev-externas{ background:#ff7a00; color:#000; }
.cal-ev-cab{ display:flex; flex-wrap:wrap; align-items:baseline; gap:3px 8px; }
.cal-ev-hora{ font-family:var(--titular); font-size:.78rem; letter-spacing:.04em; }
.cal-ev-estado{
@ -1420,6 +1449,7 @@ gancio-calendar{
.cal-ev-nom{ display:block; font-weight:700; }
.cal-ev-quien{ display:block; font-size:.66rem; color:var(--tinta-suave); }
.cal-ev-solicitado .cal-ev-quien{ color:#d0d4c8; }
.cal-ev-externas .cal-ev-estado, .cal-ev-externas .cal-ev-quien{ color:#000; }
.cal-ev-confirmado .cal-ev-quien{ color:var(--tinta); }
.cal-pasado{ opacity:.55; }