/* Opticore · estilo compartido de la cara pública. */
:root {
  --tinta:#1a1d21; --suave:#6b7280; --linea:#e5e7eb; --fondo:#fff;
  --acento:#14532d; --aviso:#b45309; --radio:.5rem;
}
@media (prefers-color-scheme: dark) {
  :root { --tinta:#e8eaed; --suave:#9aa3ad; --linea:#2a313a;
          --fondo:#111418; --acento:#4ade80; }
}
* { box-sizing:border-box }
body { margin:0; background:var(--fondo); color:var(--tinta);
       font:16px/1.55 system-ui,-apple-system,"Segoe UI",sans-serif;
       padding:1.5rem; max-width:46rem; margin-inline:auto }
header { display:flex; align-items:center; gap:1rem; margin-bottom:1.5rem }
header img { max-height:3rem }
h1 { font-size:1.35rem; margin:0 0 .25rem }
h2 { font-size:1.05rem; margin:1.75rem 0 .5rem;
     border-bottom:1px solid var(--linea); padding-bottom:.3rem }
.meta { color:var(--suave); font-size:.9rem }
table { width:100%; border-collapse:collapse; margin:.75rem 0 }
th,td { text-align:left; padding:.55rem .3rem; border-bottom:1px solid var(--linea) }
td.num,th.num { text-align:right; white-space:nowrap }
tfoot td { font-weight:600; border-top:2px solid var(--suave); border-bottom:none }
.fotos { display:grid; grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));
         gap:.6rem }
.fotos figure { margin:0 }
.fotos img { width:100%; border-radius:var(--radio); display:block;
             border:1px solid var(--linea) }
.fotos figcaption { font-size:.8rem; color:var(--suave); margin-top:.2rem }
.cond { background:rgba(127,127,127,.08); padding:.8rem; border-radius:var(--radio);
        font-size:.85rem; white-space:pre-wrap; max-height:14rem; overflow:auto }
.acciones { display:flex; gap:.75rem; flex-wrap:wrap; margin-top:1.25rem }
button { font:inherit; padding:.75rem 1.5rem; border-radius:var(--radio);
         border:1px solid var(--linea); background:transparent;
         color:var(--tinta); cursor:pointer }
button.si { background:var(--acento); color:#fff; border-color:var(--acento);
            font-weight:600 }
button[disabled] { opacity:.5; cursor:progress }
textarea { width:100%; font:inherit; padding:.6rem; border-radius:var(--radio);
           border:1px solid var(--linea); background:transparent;
           color:var(--tinta) }
.aviso { padding:1rem; background:rgba(180,83,9,.1); border-radius:var(--radio) }
.estado { display:inline-block; padding:.15rem .55rem; border-radius:1rem;
          font-size:.78rem; background:rgba(127,127,127,.15) }
.diferida { color:var(--suave); font-style:italic }
footer { margin-top:2.5rem; color:var(--suave); font-size:.8rem;
         border-top:1px solid var(--linea); padding-top:1rem }
