ENRE_WEB/index.css
2025-11-06 21:37:51 +01:00

618 lines
15 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@import url('https://fonts.googleapis.com/css2?family=Rock+Salt&display=swap');
/* Fuente local Code462W Pink */
@font-face {
font-family: 'Code462WPink';
src: url('/Code462WPink-Regular.ttf') format('truetype');
font-weight: normal;
font-style: normal;
font-display: swap;
}
:root{
--sidebar-w: 250px; /* ancho completo */
--sidebar-rail: 56px; /* “raíl” visible en modo plegado */
}
/* Ocultar visualmente el checkbox */
.sr-only{
position: absolute !important;
width: 1px; height: 1px;
padding: 0; margin: -1px;
overflow: hidden; clip: rect(0,0,0,0);
border: 0;
}
/* Botón ☰ (solo se muestra en tablet/móvil) */
.sb-toggle{
position: fixed; inset: 8px auto auto 8px;
width: 40px; height: 40px;
display: none; /* se activa en media queries */
align-items: center; justify-content: center;
border-radius: 10px;
background: #ff00aa; color: #000; font-weight: 800;
z-index: 1001;
box-shadow: 0 2px 10px rgba(0,0,0,.25);
cursor: pointer; user-select: none;
}
body {
background: url('/img/fondo.jpg') no-repeat center center fixed;
background-size: cover;
color: #000;
font-family: 'Rock Salt', cursive;
margin: 0;
padding: 0;
display: flex;
}
.container {
display: flex;
width: 100%;
position: relative;
}
.logo {
width: 100%;
max-width: 180px;
border-radius: 10px;
}
.imagen {
width: 100%;
border-radius: 10px;
}
.sidebar{
width: var(--sidebar-w);
background: #222;
color: #fff;
padding: 20px;
text-align: center;
min-height: 100vh;
position: fixed; left: 0; top: 0;
z-index: 1000;
overflow-y: auto;
transition: transform .25s ease, width .25s ease;
}
.sidebar h3 {
font-family: 'Rock Salt', cursive;
font-size: 1.8em;
margin-top: 10px;
}
.sidebar p {
font-size: 0.9em;
color: #ccc;
}
.sidebar-nav {
margin-top: 20px;
display: flex;
flex-direction: column;
}
.sidebar-nav a {
color: white;
text-decoration: none;
padding: 10px;
border-radius: 5px;
transition: background 0.1s;
}
.sidebar-nav a:hover {
background: #ff00aa;
}
main {
margin-left: var(--sidebar-w);
transition: margin-left .25s ease;
flex-grow: 1;
padding: 0px 0px;
text-align: center;
font-size: 0.9em;
}
header {
background: #ff00aa;
color: white;
padding: 1px;
font-size: 2em;
}
header h1 {
font-family: 'Code462WPink', 'Rock Salt', cursive;
letter-spacing: 1px;
}
.top-nav a,
.top-nav.second a {
font-family: 'Rock Salt', cursive;
letter-spacing: 3px;
font-size: 0.5em;
}
.vertical-marquee {
position: fixed;
top: 0;
bottom: 0;
width: 20px;
writing-mode: vertical-rl;
font-family: 'VT323', monospace;
font-size: 1em;
color: #ff00aa;
background-color: transparent;
z-index: 999;
text-align: center;
pointer-events: none;
}
.left-marquee {
left: 0;
writing-mode: vertical-lr;
transform: rotate(180deg);
}
.right-marquee {
right: 0;
}
.top-nav ul {
list-style: none;
padding: 0;
margin: 0;
display: flex;
flex-wrap: wrap; /* Permite que haya varias filas si no caben */
justify-content: center;
gap: 5px; /* Espacio entre enlaces */
}
.top-nav li {
margin: 0;
}
.top-nav a {
text-decoration: none;
background-color: white;
color: black;
font-weight: bold;
padding: 15px 15px;
border-radius: 20px;
transition: background 0.3s, color 0.3s;
font-size: 0.5em;
display: inline-block;
}
.top-nav a:hover {
background: white;
color: #ff00aa;
text-decoration: none;
background-color: white;
border: 2px solid #ff00aa;
box-shadow: 4px 8px black;
border-radius: 12px;
padding: clamp(20px, 2vw, 24px);
text-align: center;
user-select: none;
transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
/* Secciones del index: fondo blanco, borde rosa, texto negro */
section{
background: #fff; /* fondo blanco */
color: #111; /* texto negro */
padding: 18px 20px;
margin: 16px auto;
max-width: 6mv;
border: 2px solid #ff00aa; /* borde rosa */
border-radius: 12px;
box-shadow: 0 6px 18px rgba(0,0,0,.08);
line-height: 1.6;
}
/* Título de cada sección: rosa con fondo negro */
section h2{
margin: 0 0 12px;
display: inline-block;
background: #000; /* fondo negro */
color: #ff00aa; /* texto rosa */
padding: 8px 12px;
border-radius: 8px;
letter-spacing: .3px;
transition: transform .2s ease, box-shadow .25s ease;
}
/* Efecto suave al pasar el ratón */
section h2:hover{
transform: translateY(-1px);
box-shadow: 0 4px 12px rgba(0,0,0,.25), 0 0 0 4px rgba(255,0,127,.15);
}
/* Texto de párrafo un poco más legible */
section p{
color: #222;
margin: .6rem 0;
}
button {
background: #ff00aa;
color: black;
font-weight: bold;
padding: 8px 15px;
border: none;
border-radius: 8px;
cursor: pointer;
transition: 0.3s;
}
button:hover {
background: #ff00aa;
}
/* Contenedor centrado y con buen ritmo de lectura */
.content-page.readable{
background:#fff;
color:var(--ink);
max-width: 860px;
margin: 24px auto 64px; /* centrado */
padding: 28px 26px;
border-radius: 12px;
box-shadow: 0 8px 24px rgba(0,0,0,.07);
line-height: 1.75;
font-size: 1.05rem;
font-family: 'Quicksand', system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
text-align: left; /* párrafo legible */
hyphens: auto;
overflow-wrap: anywhere;
}
/* Títulos centrados, mismo color y un hover elegante */
.content-page.readable h2,
.content-page.readable h3{
color: var(--accent-2);
text-align: center; /* centrados */
margin: 0 0 1rem;
letter-spacing: .2px;
/* subrayado animado con el color actual */
background-image: linear-gradient(currentColor, currentColor);
background-size: 0% 2px;
background-position: left calc(100% - 2px);
background-repeat: no-repeat;
transition: background-size .35s ease, color .25s ease, transform .2s ease;
}
.content-page.readable h2{ font-size: 2rem; margin-top: .2rem; }
.content-page.readable h3{ font-size: 1.25rem; margin-top: 1.6rem; color: var(--accent); }
.content-page.readable h2:hover,
.content-page.readable h3:hover{
background-size: 100% 2px; /* aparece la línea bonita */
transform: translateY(-1px); /* micro-animación */
}
/* Párrafos con buen contraste y separación */
.content-page.readable p{
color: var(--ink-soft);
margin: .7rem 0;
}
̣
/* ====== CALENDARIO ====== */
.cal {
display: grid;
gap: 8px;
background: #FFFFFF;
border: 1px solid rgba(0,255,255,0.18);
border-radius: 12px;
padding: 10px;
box-shadow: 0 0 20px rgba(0,255,255,0.05);
}
.cal-controls{
display: flex;
align-items: center;
justify-content: center;
gap: 10px;
margin: 6px 0 12px;
}
.cal-title{
min-width: 220px;
text-align: center;
font-weight: bold;
color: pink;
text-shadow: 0 0 8px rgba(0,255,255,0.25);
}
.cal-row{
display: grid;
grid-template-columns: repeat(7, minmax(0,1fr));
gap: 8px;
}
.cal-cell{
position: relative;
background: #FFFFFF;
border: 1px solid rgba(255,0,171,1); /* líneas rosas */
border-radius: 8px;
min-height: 90px;
overflow: hidden;
padding-top:28px;
}
.cal-head{
opacity: 0.9;
}
.cal-head-cell{
background: #FFFFFFF
border: 1px solid rgba(255,0,171,1);
text-align: center;
font-weight: bold;
padding: 8px 0;
border: 1px solid rgba(255,0,171,1);
}
.cal-daynum{
position: absolute;
top: 6px; left: 20px;
font-size: 0.95rem;
color: var(--muted);
z-index: 2;
}
.cal-empty{
background: ;
border-style: dashed;
opacity: 0.5;
}
/* celdas con evento: fondo con imagen + overlay oscuro */
.cal-event{
background: ;
}
.cal-event::before{
content: "";
position: absolute; inset: 0;
background-image: var(--bgimg);
background-size: cover;
background-position: center;
filter: contrast(1.05) saturate(1.05);
opacity: 0.9;
transition: transform .25s ease, opacity .2s ease;
}
.cal-event::after{
content: "";
position: absolute; inset: 0;
background: linear-gradient(180deg, rgba(0,0,0,0.22), rgba(0,0,0,0.6));
pointer-events: none;
}
.cal-event .cal-label{
position: absolute;
left: 8px; bottom: 16px;
z-index: 2;
display: inline-block;
background: var(--green);
color: #000;
border: 1px solid #0f0;
padding: 4px 8px;
border-radius: 6px;
font-weight: 700;
box-shadow: 0 0 8px rgba(0,255,0,0.35);
}
.cal-event:hover::before{
transform: scale(1.04);
opacity: 1;
}
/* badge leyenda */
.cal-legend{
margin-top: 10px;
color: var(--muted);
}
.badge{
display: inline-block;
border: 1px solid rgba(0,255,0,0.5);
color: var(--green);
padding: 2px 6px;
border-radius: 6px;
margin-right: 6px;
}
/* --- Corrección de typo existente --- */
.cal-head-cell{
background: #FFFFFF; /* antes tenías #FFFFFFF */
border: 1px solid rgba(255,0,171,1);
text-align: center;
font-weight: bold;
padding: 8px 0;
}
/* --- Ajustes de celda para que quepan las tiras --- */
.cal-cell{
min-height: 110px; /* un poco más alta */
padding-top: 22px; /* deja hueco al número del día */
}
/* Contenedor vertical de tiras */
.cal-pills{
position: relative;
z-index: 3; /* por encima de ::before/::after */
display: flex;
flex-direction: column;
gap: 4px;
margin-top: 15px;
}
/* Tira (pill) de cada colectivo */
.cal-pill{
background: var(--bg);
color: var(--fg);
border: 1px solid rgba(0,0,0,.15);
border-radius: 6px;
padding: 3px 6px;
font-weight: 700;
font-size: 12px;
line-height: 1.1;
box-shadow: 0 0 6px rgba(0,0,0,.06);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.cal-pill:hover{
filter: brightness(1.05);
box-shadow: 0 0 10px rgba(0,0,0,.12);
}
/* ========== TELÉFONOS PEQUEÑOS (<= 480px) ========== */
@media (max-width: 480px){
html{ font-size: 9px; } /* baja toda la escala */
body{ overflow-x: hidden; }
.vertical-marquee{ display:none !important; }
body{ flex-direction: column; overflow-x: hidden; }
.container{ width:100%; position: relative; }
main{ margin-left: 0 !important; font-size: 1rem; }
header{ padding: 16px 12px; font-size: 1.05em; }
/* Hamburguesa + sidebar superpuesta */
.sb-toggle{ display:flex; }
.sidebar{
position: fixed; left: 0; top: 0; bottom: 0;
width: min(82vw, 300px);
background: #222; color:#fff;
transform: translateX(-100%);
z-index: 1000; overflow-y:auto; padding:20px;
}
#nav-toggle:checked ~ .container .sidebar{ transform: translateX(0); }
#nav-toggle:checked ~ .container::before{
content:""; position:fixed; inset:0; background:rgba(0,0,0,.45); z-index:999;
}
/* Nav superior como chips */
.top-nav ul, .top-nav.second ul{
display:flex; flex-wrap:wrap; justify-content:center;
gap:6px; padding:0 6px; margin:10px 0 0;
}
.top-nav li, .top-nav.second li{ list-style:none; }
.top-nav a, .top-nav.second a, .top-nav2 a{
display:block; padding:6px 10px; font-size:.9em;
border:1px solid #ff00aa; border-radius:18px;
background:#fff; color:#000; text-decoration:none;
}
/* Secciones y contenido */
section{ margin:12px 0; padding:12px; border-radius:10px; }
section h2{ font-size:2rem; }
.content-page.readable{ max-width:100%; margin:16px auto 36px; padding:14px; font-size:1rem; line-height:1.7; }
button{ font-size:.9em; padding:8px 12px; }
footer{ font-size:.85em; padding:14px 0; }
/* ====== CALENDARIO (sin scroll lateral) ====== */
.cal{ width:100%; padding:8px; gap:4px; border-radius:10px; }
.cal-row{ display:grid; grid-template-columns:repeat(7, minmax(0,1fr)); gap:4px; }
.cal-cell{ min-height:56px; padding-top:18px; }
.cal-daynum{ font-size:.15rem; top:6px; left:6px; z-index:2; }
.cal-pills{ gap:7px; margin-top:6px; }
.cal-pill{ font-size:.4rem; padding:2px 4px; }
.cal-head .cal-head-cell{ padding:6px 0; font-size:.9rem; }
}
/* ========== MÓVILES / TABLETS VERTICALES (481px768px) ========== */
@media (min-width: 481px) and (max-width: 768px){
.vertical-marquee{ display:none !important; }
main{ margin-left:0 !important; font-size:1rem; }
header{ font-size:1.2em; }
/* Hamburguesa + sidebar superpuesta */
.sb-toggle{ display:flex; }
.sidebar{
position: fixed; left:0; top:0; bottom:0;
width: min(78vw, 320px);
background:#222; color:#fff;
transform: translateX(-100%);
z-index:1000; overflow-y:auto; padding:20px;
}
#nav-toggle:checked ~ .container .sidebar{ transform: translateX(0); }
#nav-toggle:checked ~ .container::before{
content:""; position:fixed; inset:0; background:rgba(0,0,0,.45); z-index:999;
}
/* Nav superior */
.top-nav ul, .top-nav.second ul{
display:flex; flex-wrap:wrap; justify-content:center;
gap:8px; padding:0; margin:12px 0 0;
}
.top-nav li, .top-nav.second li{ list-style:none; }
.top-nav a, .top-nav.second a, .top-nav2 a{
display:block; padding:8px 12px; font-size:.95em;
border:1px solid #ff00aa; border-radius:20px;
background:#fff; color:#000; text-decoration:none;
}
section{ max-width:100%; margin:14px 0; padding:14px; border-radius:12px; }
section h2{ font-size:1.1rem; }
.content-page.readable{ max-width:92vw; margin:18px auto 48px; padding:18px; font-size:1.02rem; line-height:1.75; }
button{ font-size:1em; padding:10px 16px; }
footer{ font-size:.95em; padding:16px 0; }
/* Calendario fluido (sin scroll lateral) */
.cal{ width:100%; padding:10px; gap:6px; border-radius:12px; }
.cal-row{ grid-template-columns:repeat(7, minmax(0,1fr)); gap:6px; }
.cal-cell{ min-height:70px; padding-top:20px; }
.cal-daynum{ font-size:1rem; top:6px; left:8px; z-index:2; }
.cal-pills{ gap:5px; margin-top:8px; }
.cal-pill{ font-size:11px; padding:3px 5px; }
.cal-head .cal-head-cell{ padding:8px 0; font-size:1rem; }
}
/* ========== TABLETS HORIZONTALES / PORTÁTILES PEQUEÑOS (769px1024px) ========== */
@media (min-width: 769px) and (max-width: 1024px){
.vertical-marquee{ display:none !important; }
/* Sidebar en “raíl” por defecto + hamburguesa */
.sb-toggle{ display:flex; }
.sidebar{
position: fixed; left:0; top:0; bottom:0;
width: var(--sidebar-w);
background:#222; color:#fff;
transform: translateX(calc(-100% + var(--sidebar-rail)));
z-index:1000; overflow-y:auto; padding:20px;
}
main{ margin-left: var(--sidebar-rail) !important; }
#nav-toggle:checked ~ .container .sidebar{ transform: translateX(0); }
#nav-toggle:checked ~ .container main{ margin-left: var(--sidebar-w) !important; }
header{ font-size:1.4em; padding:24px; }
.top-nav ul, .top-nav.second ul{
display:flex; flex-wrap:wrap; justify-content:center; gap:10px; padding:0;
}
.top-nav li, .top-nav.second li{ list-style:none; }
.top-nav a, .top-nav.second a{ font-size:1em; padding:10px 15px; }
section{ padding:20px; max-width:90%; margin:12px auto; }
button{ font-size:1em; padding:12px 22px; }
footer{ font-size:1em; padding:22px; }
/* Calendario (compacto, sin desbordes) */
.cal{ width:100%; padding:10px; gap:6px; border-radius:12px; }
.cal-row{ grid-template-columns:repeat(7, minmax(0,1fr)); gap:6px; }
.cal-cell{ min-height:84px; padding-top:22px; }
.cal-daynum{ font-size:1rem; }
.cal-pills{ margin-top:8px; gap:6px; }
.cal-pill{ font-size:12px; }
}