/* ------------------------------------------------------------------
   Respy - hoja unica (backoffice + front publico). Sin build, sin CDN.
   Paleta tomada del logo y de la pieza de marca.
   ------------------------------------------------------------------ */
:root{
  --verde:#009045;
  --verde-osc:#00764a;
  --verde-prof:#0b3426;
  --verde-claro:#359054;
  --verde-suave:#92b39a;
  --tinta:#12211c;
  --gris:#6e817c;
  --gris-claro:#8f9691;
  --linea:#e2e8e4;
  --fondo:#f4f6f4;
  --blanco:#fff;
  --ok:#027a48;
  --ok-bg:#ecfdf3;
  --warn:#b54708;
  --warn-bg:#fffaeb;
  --error:#b42318;
  --error-bg:#fef3f2;
  --radio:14px;
  --sombra:0 1px 2px rgba(11,52,38,.06), 0 8px 24px rgba(11,52,38,.06);
  --fuente:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--fuente);color:var(--tinta);background:var(--fondo);line-height:1.5}
a{color:var(--verde-osc)}
img,svg{max-width:100%}
button,input,select,textarea{font:inherit;color:inherit}

/* ---------- utilidades ---------- */
.oculto{display:none !important}
.chico{font-size:.8125rem}
.gris{color:var(--gris)}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8125rem}
.der{text-align:right}
.nowrap{white-space:nowrap}

/* ---------- botones ---------- */
.btn{display:inline-flex;align-items:center;gap:.45rem;border:1px solid transparent;border-radius:10px;
  padding:.55rem .95rem;font-weight:600;font-size:.9rem;cursor:pointer;text-decoration:none;
  background:var(--verde);color:#fff;transition:filter .15s ease}
.btn:hover{filter:brightness(1.07)}
.btn:disabled{opacity:.55;cursor:not-allowed}
.btn-sec{background:#fff;color:var(--verde-prof);border-color:var(--linea)}
.btn-sec:hover{background:#f7faf8}
.btn-peligro{background:#fff;color:var(--error);border-color:#f3c6c2}
.btn-chico{padding:.32rem .6rem;font-size:.8rem;border-radius:8px}

/* ---------- chips de estado ---------- */
.chip{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .55rem;border-radius:999px;
  font-size:.75rem;font-weight:600;white-space:nowrap}
.chip-ok{background:var(--ok-bg);color:var(--ok)}
.chip-warn{background:var(--warn-bg);color:var(--warn)}
.chip-error{background:var(--error-bg);color:var(--error)}
.chip-neutro{background:#eef2ef;color:var(--gris)}

/* =========================================================
   BACKOFFICE (solo desktop)
   ========================================================= */
.admin-top{background:var(--verde-prof);color:#fff}
.admin-top .caja{max-width:1220px;margin:0 auto;padding:.7rem 1.5rem;display:flex;align-items:center;gap:1.5rem}
.admin-top .marca{display:flex;align-items:center;gap:.6rem;font-weight:800;letter-spacing:-.02em;font-size:1.05rem}
.admin-top .marca img{width:34px;height:34px}
.admin-top nav{display:flex;gap:.3rem;margin-left:auto}
.admin-top nav a{color:#cfe3d7;text-decoration:none;padding:.45rem .8rem;border-radius:8px;font-size:.9rem;font-weight:600}
.admin-top nav a:hover{background:rgba(255,255,255,.09);color:#fff}
.admin-top nav a.on{background:var(--verde);color:#fff}
.admin-top form{margin:0 0 0 .8rem}

.caja{max-width:1220px;margin:0 auto;padding:1.5rem}
h1{font-size:1.45rem;margin:0 0 .25rem;letter-spacing:-.02em}
h2{font-size:1.05rem;margin:0 0 .8rem;letter-spacing:-.01em}
.subtitulo{color:var(--gris);margin:0 0 1.4rem;font-size:.92rem}

.panel{background:#fff;border:1px solid var(--linea);border-radius:var(--radio);box-shadow:var(--sombra);
  padding:1.2rem;margin-bottom:1.2rem}
.panel > h2{padding-bottom:.7rem;border-bottom:1px solid var(--linea)}

.grilla{display:grid;gap:1.2rem}
.grilla-2{grid-template-columns:minmax(320px,400px) 1fr}
@media (max-width:1000px){.grilla-2{grid-template-columns:1fr}}

label{display:block;font-size:.82rem;font-weight:600;color:var(--verde-prof);margin-bottom:.3rem}
.campo{margin-bottom:.9rem}
input[type=text],input[type=email],input[type=password],input[type=number],select,textarea{
  width:100%;padding:.55rem .7rem;border:1px solid var(--linea);border-radius:10px;background:#fff}
input:focus,select:focus,textarea:focus{outline:2px solid var(--verde-claro);outline-offset:-1px;border-color:var(--verde-claro)}
textarea{min-height:260px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.82rem;line-height:1.55}
.ayuda{font-size:.78rem;color:var(--gris);margin-top:.25rem}
.error-campo{color:var(--error);font-size:.8rem;margin-top:.25rem}

table{width:100%;border-collapse:collapse;font-size:.88rem}
th{text-align:left;font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;color:var(--gris);
  padding:.5rem .6rem;border-bottom:1px solid var(--linea)}
td{padding:.6rem;border-bottom:1px solid var(--linea);vertical-align:middle}
td .mono{word-break:break-all}          /* claves largas con alternativas "a|b|c" */
.panel > table{display:block;overflow-x:auto}  /* tabla ancha: scrollea ella, no la pagina */
tbody tr:hover{background:#fafcfa}
.vacio{padding:2.2rem;text-align:center;color:var(--gris)}

.aviso{padding:.7rem .9rem;border-radius:10px;margin-bottom:1rem;font-size:.9rem}
.aviso-ok{background:var(--ok-bg);color:var(--ok);border:1px solid #a6f4c5}
.aviso-error{background:var(--error-bg);color:var(--error);border:1px solid #fecdca}

.copiar{display:flex;gap:.5rem;align-items:center;margin-top:.6rem}
.copiar input{background:#f7faf8}

.pestanas{display:flex;gap:.3rem;border-bottom:1px solid var(--linea);margin-bottom:1.2rem}
.pestanas a{padding:.6rem .95rem;text-decoration:none;color:var(--gris);font-weight:600;font-size:.9rem;
  border-bottom:2px solid transparent;margin-bottom:-1px}
.pestanas a.on{color:var(--verde-osc);border-bottom-color:var(--verde)}

/* modal */
.velo{position:fixed;inset:0;background:rgba(11,52,38,.5);display:flex;align-items:flex-start;
  justify-content:center;padding:2.5rem 1rem;overflow:auto;z-index:50}
.modal{background:#fff;border-radius:var(--radio);width:min(980px,100%);box-shadow:0 24px 60px rgba(11,52,38,.3)}
.modal-cab{display:flex;align-items:center;gap:1rem;padding:1rem 1.3rem;border-bottom:1px solid var(--linea)}
.modal-cab h2{margin:0}
.modal-cab .cerrar{margin-left:auto;background:none;border:0;font-size:1.6rem;line-height:1;cursor:pointer;color:var(--gris)}
.modal-cuerpo{padding:1.3rem}

.doc{border:1px solid var(--linea);border-radius:12px;padding:.9rem 1rem;margin-bottom:.8rem}
.doc-cab{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:.55rem}
.doc-cab strong{font-size:.95rem}
.datos{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.5rem .9rem;font-size:.85rem}
.datos div{min-width:0}
.datos dt{font-size:.72rem;text-transform:uppercase;letter-spacing:.03em;color:var(--gris)}
.datos dd{margin:0;word-break:break-word}

.faltantes{background:var(--warn-bg);border:1px solid #fedf89;border-radius:12px;padding:.85rem 1rem;margin-bottom:1.1rem}
.faltantes ul{margin:.45rem 0 0;padding-left:1.15rem}
.faltantes li{font-size:.87rem}

/* login */
.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;
  background:linear-gradient(160deg,var(--verde-prof),var(--verde-osc))}
.login .panel{width:min(400px,100%);margin:0}
.login .marca{display:flex;flex-direction:column;align-items:center;gap:.5rem;margin-bottom:1.3rem}
.login .marca img{width:76px}
.login .marca span{font-weight:800;font-size:1.25rem;letter-spacing:-.02em}

/* aviso "solo desktop" */
.solo-desktop{display:none}
@media (max-width:780px){
  .admin-cuerpo{display:none}
  .solo-desktop{display:flex;min-height:100vh;align-items:center;justify-content:center;text-align:center;
    padding:2rem;background:var(--verde-prof);color:#fff}
  .solo-desktop div{max-width:320px}
  .solo-desktop img{width:90px;margin-bottom:1rem}
}

/* paginacion (vista bootstrap-5 de Laravel, estilada a mano) */
.pagination{display:flex;gap:.25rem;list-style:none;padding:0;margin:0;align-items:center;font-size:.85rem}
.pagination .page-link{display:block;padding:.35rem .65rem;border:1px solid var(--linea);border-radius:8px;
  text-decoration:none;color:var(--verde-prof);background:#fff}
.pagination .page-item.active .page-link{background:var(--verde);border-color:var(--verde);color:#fff}
.pagination .page-item.disabled .page-link{color:var(--gris-claro);background:#f7faf8}
.pagination [aria-hidden=true]{display:none}
