:root { --bosque:#00430A; --bosque-2:#0B5A17; --salvia:#C0CDB1; --salvia-2:#DDE5D3; --papel:#F3F4EF; --tinta:#16231A; --gris:#4A5A4D; }
* { box-sizing: border-box; }
body { margin:0; background:var(--papel); color:var(--tinta); font:400 1rem/1.55 'Source Serif 4', Georgia, serif; }
h1, h2, h3 { font-family:'Oswald','Arial Narrow',sans-serif; font-weight:600; color:var(--bosque); line-height:1.15; }
h1 { font-size:2.1rem; margin:0 0 1.2rem; } h2 { font-size:1.4rem; margin:2rem 0 .8rem; }
a { color:var(--bosque); }
:focus-visible { outline:3px solid var(--bosque); outline-offset:2px; }
.adm-barra { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:.6rem 1.5rem; padding:.7rem 1.5rem; background:var(--bosque); }
.adm-marca { display:flex; align-items:center; gap:.6rem; color:#fff; text-decoration:none; font:600 1.1rem 'Oswald',sans-serif; }
.adm-marca img { background:var(--papel); border-radius:50%; padding:2px; }
.adm-barra nav { display:flex; flex-wrap:wrap; gap:.3rem 1.2rem; }
.adm-barra nav a { color:var(--salvia-2); text-decoration:none; font:500 .98rem 'Oswald',sans-serif; padding:.3rem 0; border-bottom:2px solid transparent; }
.adm-barra nav a:hover, .adm-barra nav a[aria-current] { color:#fff; border-color:var(--salvia); }
.adm { max-width:1150px; margin:0 auto; padding:2rem 1.5rem 4rem; }
.btn { display:inline-flex; align-items:center; gap:.4rem; min-height:40px; padding:.45rem 1rem; background:var(--bosque); color:#fff; border:2px solid var(--bosque);
  border-radius:3px; font:500 .98rem 'Oswald',sans-serif; text-decoration:none; cursor:pointer; }
.btn:hover { background:var(--bosque-2); }
.btn-borde { background:#fff; color:var(--bosque); } .btn-borde:hover { background:var(--salvia-2); }
.btn-peligro { background:#fff; color:#8A1C0A; border-color:#C9867A; } .btn-peligro:hover { background:#F6DDD7; }
.btn-chico { min-height:32px; padding:.2rem .6rem; font-size:.9rem; }
.caja { background:#fff; border:1px solid var(--salvia); padding:1.4rem 1.6rem; margin-bottom:1.5rem; }
.caja > h2:first-child { margin-top:0; }
label { display:grid; gap:.3rem; font:500 .95rem 'Oswald',sans-serif; color:var(--gris); margin-bottom:1rem; }
input[type=text], input[type=password], input[type=email], input[type=date], input[type=time], input[type=number], input[type=url], select, textarea {
  font:400 1rem 'Source Serif 4', Georgia, serif; padding:.5rem .7rem; border:1px solid #9FB08F; border-radius:3px; background:#fff; width:100%; }
textarea { min-height:180px; }
.fila { display:grid; grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); gap:0 1rem; }
.opciones label { display:flex; gap:.5rem; align-items:flex-start; font-family:'Source Serif 4', Georgia, serif; color:var(--tinta); }
.tabla-caja { overflow-x:auto; background:#fff; border:1px solid var(--salvia); }
table { border-collapse:collapse; width:100%; font-size:.95rem; }
th, td { text-align:left; padding:.6rem .8rem; border-bottom:1px solid var(--salvia-2); vertical-align:top; }
th { font:500 .9rem 'Oswald',sans-serif; color:var(--gris); background:var(--papel); white-space:nowrap; }
tr.pasado td { color:#8a968c; }
td.acciones { white-space:nowrap; } td.acciones form { display:inline; }
.msg { padding:.8rem 1rem; border-radius:3px; font-weight:600; }
.msg-ok { background:var(--salvia); color:var(--bosque); } .msg-error { background:#F6D9D2; color:#7A1D0C; } .msg-aviso { background:#F4EBC8; color:#5A4700; }
.lista-errores { background:#FBEDE9; border-left:4px solid #B5412A; padding:1rem 1rem 1rem 2.2rem; }
.lista-avisos { background:#FAF5DF; border-left:4px solid #B59A2A; padding:1rem 1rem 1rem 2.2rem; }
.resumen { display:flex; flex-wrap:wrap; gap:1rem 2.5rem; margin:0 0 1.5rem; }
.resumen div { font:500 1rem 'Oswald',sans-serif; color:var(--gris); } .resumen strong { display:block; font-size:2rem; color:var(--bosque); }
.fotos { display:grid; grid-template-columns:repeat(auto-fill, minmax(170px, 1fr)); gap:1rem; }
.fotos figure { margin:0; background:#fff; border:1px solid var(--salvia); }
.fotos img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; }
.fotos figcaption { padding:.4rem; }
.login { max-width:380px; margin:4rem auto; }
.barra-progreso { height:12px; background:var(--salvia-2); border-radius:6px; overflow:hidden; margin:.5rem 0 1rem; }
.barra-progreso span { display:block; height:100%; background:var(--bosque); }
.ayuda { color:var(--gris); font-size:.95rem; max-width:70ch; }
.adm:has(.login) > h1 { text-align: center; margin-top: 2rem; }
.adm:has(.login) .login { margin-top: 1rem; }
