/* =========================================================
   Panel de administración — Servicios & Alimentos de Yauca
   ========================================================= */
:root{--azul:#0179D8;--noche:#08294A;--aji:#F5A623;--nube:#F1F6FB;--linea:#DCE6F0;--tinta:#13263A;--gris:#5B6B7C;--ok:#0E8A4B;--err:#C62828;--r:14px;--sb:268px}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:400 15px/1.55 "Figtree",system-ui,sans-serif;color:var(--tinta);background:var(--nube)}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
h1,h2,h3{font-family:"Zilla Slab",Georgia,serif;font-weight:700;color:var(--noche);margin:0;line-height:1.15}
button{font:inherit;cursor:pointer}
:focus-visible{outline:3px solid var(--aji);outline-offset:2px;border-radius:6px}
.muted{color:var(--gris)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.lnk{color:var(--azul);font-weight:600}
.lnk:hover{text-decoration:underline}
.back{display:inline-block;margin-bottom:14px;color:var(--gris);font-weight:600}
.back:hover{color:var(--azul)}

/* Esqueletos */
@keyframes sk{0%{background-position:150% 0}100%{background-position:-50% 0}}
.sk-img{position:relative;display:block;overflow:hidden;background:#E2EBF4}
.sk-img::before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,#E2EBF4 30%,#F4F8FC 50%,#E2EBF4 70%);background-size:200% 100%;animation:sk 1.3s linear infinite;z-index:1;transition:opacity .3s}
.sk-img img{opacity:0;transition:opacity .4s}
.sk-img.is-loaded::before{opacity:0}
.sk-img.is-loaded img{opacity:1}

/* Botones */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 20px;border-radius:999px;border:1.5px solid transparent;font-weight:700;font-size:.95rem;transition:background .2s,color .2s,border-color .2s;white-space:nowrap}
.btn--pri{background:var(--azul);color:#fff}
.btn--pri:hover{background:var(--noche)}
.btn--sec{background:#fff;border-color:var(--linea);color:var(--noche)}
.btn--sec:hover{border-color:var(--azul);color:var(--azul)}
.btn--del{background:#fff;border-color:#F3C7C7;color:var(--err)}
.btn--del:hover{background:var(--err);color:#fff;border-color:var(--err)}
.btn--sm{min-height:36px;padding:6px 14px;font-size:.88rem}
.btn--block{width:100%}
.btn[disabled]{opacity:.5;pointer-events:none}

/* Sidebar */
.sb{position:fixed;inset:0 auto 0 0;width:var(--sb);background:var(--noche);color:#C5D7EA;display:flex;flex-direction:column;z-index:50;transition:transform .3s}
.sb__brand{display:flex;align-items:center;gap:12px;padding:20px 20px 16px;color:#fff;line-height:1.1}
.sb__brand img{width:52px;height:52px;border-radius:50%;background:#fff;padding:2px;object-fit:contain}
.sb__brand strong{font-family:"Zilla Slab",serif;font-size:1.3rem}
.sb__nav{flex:1;overflow-y:auto;padding:6px 12px 12px;scrollbar-width:thin}
.sb__grp{margin:16px 12px 6px;font-size:.78rem;font-weight:700;color:#7FA3C6}
.sb__nav a,.sb__out{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;font-weight:500;transition:background .2s,color .2s}
.sb__nav a:hover,.sb__out:hover{background:rgba(255,255,255,.07);color:#fff}
.sb__nav a.is-on{background:var(--azul);color:#fff}
.sb__nav span{flex:1}
.badge{background:var(--aji);color:var(--noche);font-size:.75rem;padding:2px 8px;border-radius:999px}
.sb__out{margin:8px 12px calc(16px + env(safe-area-inset-bottom,0px));border-top:1px solid rgba(255,255,255,.08);border-radius:0;padding-top:16px}
.sb__veil{display:none}

/* Main */
.main{margin-left:var(--sb);min-height:100vh}
.tb{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:14px;padding:14px clamp(16px,3vw,32px);background:rgba(241,246,251,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--linea)}
.tb__t{font-size:1.55rem;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tb__burger{display:none;width:44px;height:44px;border-radius:12px;border:1px solid var(--linea);background:#fff;flex-direction:column;align-items:center;justify-content:center;gap:4px}
.tb__burger span{width:18px;height:2px;background:var(--noche);border-radius:2px}
.tb__user{width:40px;height:40px;border-radius:50%;background:var(--aji);color:var(--noche);display:grid;place-items:center;font-weight:700}
.content{padding:clamp(16px,3vw,32px);max-width:1360px}

/* Toasts */
.toast{padding:14px 18px;border-radius:12px;margin-bottom:18px;font-weight:600;border:1px solid;animation:tIn .35s ease both}
.toast--ok{background:#E8F6EE;color:var(--ok);border-color:#BFE5CF}
.toast--err{background:#FDECEC;color:var(--err);border-color:#F3C7C7}
@keyframes tIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* Tarjetas */
.card{background:#fff;border:1px solid var(--linea);border-radius:18px;padding:clamp(18px,2.4vw,28px);margin-bottom:22px}
.card--flush{padding:0;overflow:hidden}
.card__hd{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.card__hd h2{font-size:1.35rem}
.empty{color:var(--gris);text-align:center;padding:30px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}
.grid2 .card{margin:0}

/* Escritorio */
.hello{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:22px}
.hello h2{font-size:1.9rem}
.hello p{margin:4px 0 0}
.stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:16px;margin-bottom:22px}
.stat{background:#fff;border:1px solid var(--linea);border-radius:16px;padding:20px;display:flex;flex-direction:column;gap:2px;transition:border-color .2s,transform .2s}
.stat:hover{border-color:var(--azul);transform:translateY(-2px)}
.stat strong{font-family:"Zilla Slab",serif;font-size:2.2rem;line-height:1;color:var(--azul)}
.stat span{color:var(--gris);font-weight:600}
.quick{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.quick a{padding:14px 16px;border-radius:12px;background:var(--nube);font-weight:600;transition:background .2s,color .2s}
.quick a:hover{background:var(--azul);color:#fff}
.msgs{list-style:none;margin:0;padding:0}
.msgs a{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:12px 4px;border-bottom:1px solid var(--linea)}
.msgs li.is-new strong{color:var(--azul)}
.msgs small{color:var(--gris)}
.pill{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.78rem;font-weight:700;background:var(--nube);color:var(--noche)}
.pill--cotizacion{background:#E6F2FD;color:var(--azul)}
.pill--postulacion{background:#FFF3DF;color:#9A5B00}
.pill--reclamo{background:#FDECEC;color:var(--err)}

/* Formularios */
.form{display:block}
.fgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 22px}
.fld{display:grid;gap:6px;align-content:start}
.fld--full,.fld--img{grid-column:1/-1}
.lbl{font-weight:700;font-size:.9rem;color:var(--noche)}
.help{color:var(--gris);font-size:.82rem}
input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),select,textarea{width:100%;font:inherit;padding:11px 14px;border:1.5px solid var(--linea);border-radius:12px;background:#fff;color:var(--tinta);min-height:44px;transition:border-color .2s,box-shadow .2s}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--azul);box-shadow:0 0 0 4px rgba(1,121,216,.14)}
textarea{resize:vertical}
input[type=range]{width:100%;accent-color:var(--azul)}
.color{display:flex;gap:10px;align-items:center}
.color input[type=color]{width:52px;height:44px;border:1.5px solid var(--linea);border-radius:12px;padding:3px;background:#fff;cursor:pointer}
.pass{position:relative}
.pass input{padding-right:84px!important}
.pass__eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:var(--nube);border-radius:8px;padding:6px 10px;font-weight:600;font-size:.85rem}
.count{font-size:.8rem;color:var(--gris);justify-self:end}

/* Interruptores */
.switch{display:inline-flex;align-items:center;gap:12px;font-weight:600;cursor:pointer;user-select:none}
.switch input[type=checkbox]{position:absolute;opacity:0;width:1px;height:1px}
.switch span{width:46px;height:26px;border-radius:999px;background:#C9D6E3;position:relative;transition:background .2s;flex-shrink:0}
.switch span::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:transform .2s}
.switch input:checked + span{background:var(--ok)}
.switch input:checked + span::after{transform:translateX(20px)}
.switch input:focus-visible + span{outline:3px solid var(--aji);outline-offset:2px}
.switch--sm{font-size:.86rem;gap:8px}
.switch--sm span{width:38px;height:22px}
.switch--sm span::after{width:16px;height:16px}
.switch--sm input:checked + span::after{transform:translateX(16px)}
.vis{padding:14px 16px;background:var(--nube);border-radius:12px;margin-bottom:20px}
.tgl{width:42px;height:24px;border-radius:999px;background:#C9D6E3;border:0;position:relative;transition:background .2s}
.tgl::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .2s}
.tgl.is-on{background:var(--ok)}
.tgl.is-on::after{transform:translateX(18px)}

/* Subida con vista previa */
.up{display:flex;gap:18px;align-items:center;padding:14px;border:1.5px dashed var(--linea);border-radius:14px;background:#FAFCFE}
.up__prev{width:200px;aspect-ratio:4/3;border-radius:10px;overflow:hidden;background:repeating-conic-gradient(#EEF3F8 0 25%,#fff 0 50%) 0 0/16px 16px;flex-shrink:0;display:grid;place-items:center}
.up__prev .sk-img{width:100%;height:100%;background:transparent}
.up__prev .sk-img::before{background-color:transparent}
.up__prev img{width:100%;height:100%;object-fit:contain}
.up__prev video{width:100%;height:100%;object-fit:cover}
.up__prev.is-empty span{color:var(--gris);font-size:.85rem}
.up__ctl{display:grid;gap:8px;justify-items:start;min-width:0}
.up__name{margin:0;font-size:.85rem;color:var(--gris);word-break:break-all}
.chk-sm{display:inline-flex;gap:6px;align-items:center;font-size:.86rem;color:var(--err);font-weight:600}
.up.is-drag{border-color:var(--azul);background:#EAF4FD}

/* Tamaño del logo */
.logo-size{display:grid;grid-template-columns:1fr 1fr;gap:18px 22px;margin-top:22px;padding-top:22px;border-top:1px solid var(--linea)}
.logo-prev{grid-column:1/-1;display:grid;gap:12px}
.logo-prev__bar{display:flex;align-items:center;gap:20px;padding:12px 22px;border:1px solid var(--linea);border-radius:14px;background:#fff;min-height:70px}
.logo-prev__bar img{width:auto;transition:height .15s}
.logo-prev__bar span:not([class]){height:10px;width:90px;border-radius:6px;background:var(--nube)}
.logo-prev__bar span:nth-of-type(1){margin-left:auto}
.logo-prev__btn{padding:9px 18px;border-radius:999px;background:var(--azul);color:#fff;font-weight:700;font-size:.85rem}
.logo-prev__bar--m{max-width:380px}
.logo-prev__burger{margin-left:auto;width:40px;height:40px;border-radius:50%;background:var(--noche)}

/* Barra de guardado */
.savebar{position:sticky;bottom:0;z-index:20;display:flex;justify-content:flex-end;align-items:center;gap:12px;flex-wrap:wrap;margin:26px calc(-1 * clamp(18px,2.4vw,28px)) calc(-1 * clamp(18px,2.4vw,28px));padding:14px clamp(18px,2.4vw,28px) calc(14px + env(safe-area-inset-bottom,0px));background:rgba(255,255,255,.95);backdrop-filter:blur(6px);border-top:1px solid var(--linea);border-radius:0 0 18px 18px}
.savebar__state{margin-right:auto}
.savebar.is-dirty .savebar__state{color:#9A5B00;font-weight:700}
form > .savebar:last-child{margin-bottom:0}
.form > section.card:last-of-type{margin-bottom:0}
.form > .savebar{margin:0;border-radius:18px;border:1px solid var(--linea)}
.savebar--inline{position:static;margin:18px 0 0;padding:0;border:0;background:none}

/* Pestañas y subnavegación */
.tabs-bar{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;margin-bottom:18px;position:sticky;top:73px;z-index:15;background:var(--nube);scrollbar-width:none}
.tabs-bar a{padding:9px 16px;border-radius:999px;background:#fff;border:1px solid var(--linea);font-weight:600;white-space:nowrap}
.tabs-bar a:hover{border-color:var(--azul);color:var(--azul)}
.split-adm{display:grid;grid-template-columns:260px minmax(0,1fr);gap:22px;align-items:start}
.subnav{background:#fff;border:1px solid var(--linea);border-radius:18px;padding:12px;position:sticky;top:90px;display:grid;gap:2px}
.subnav__t{margin:10px 10px 4px;font-size:.78rem;font-weight:700;color:var(--gris)}
.subnav a{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;font-weight:500}
.subnav a:hover{background:var(--nube)}
.subnav a.is-on{background:var(--noche);color:#fff}
.dot{width:8px;height:8px;border-radius:50%;background:#C9D6E3;flex-shrink:0}
.dot--on{background:var(--ok)}
.split-adm .card{margin:0}

/* Listados */
.listhd{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.listhd p{margin:0;max-width:60ch}
.listhd__act{display:flex;gap:10px;flex-wrap:wrap}
.search{max-width:240px}
.tbl{width:100%;border-collapse:collapse}
.tbl th{text-align:left;font-size:.8rem;color:var(--gris);font-weight:700;padding:14px 16px;background:#FAFCFE;border-bottom:1px solid var(--linea)}
.tbl td{padding:12px 16px;border-bottom:1px solid var(--linea);vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.tbl tr:hover td{background:#FAFCFE}
.tbl__main{font-weight:700;color:var(--noche)}
.tbl__main:hover{color:var(--azul)}
.w-img{width:90px}
.w-act{text-align:right;white-space:nowrap}
.w-act form{display:inline}
.thumb{width:72px;height:54px;border-radius:8px}
.thumb img{width:100%;height:100%;object-fit:cover}
.chips-adm{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.chips-adm a{padding:8px 16px;border-radius:999px;background:#fff;border:1px solid var(--linea);font-weight:600;font-size:.9rem}
.chips-adm a.is-on{background:var(--noche);border-color:var(--noche);color:#fff}

/* Galería */
.drop{display:grid;place-items:center;text-align:center;gap:6px;padding:36px 20px;border:2px dashed #B9CCE0;border-radius:16px;background:#FAFCFE;cursor:pointer;transition:border-color .2s,background .2s}
.drop:hover,.drop.is-drag{border-color:var(--azul);background:#EAF4FD}
.drop strong{font-size:1.05rem;color:var(--noche)}
.drop-prev{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin:16px 0}
.drop-prev:empty{display:none}
.dp{border:1px solid var(--linea);border-radius:12px;overflow:hidden;background:#fff;position:relative}
.dp img{width:100%;aspect-ratio:4/3;object-fit:cover}
.dp input{border:0!important;border-top:1px solid var(--linea)!important;border-radius:0!important;font-size:.85rem!important;min-height:38px!important}
.dp__x{position:absolute;top:6px;right:6px;width:28px;height:28px;border-radius:50%;border:0;background:rgba(8,41,74,.75);color:#fff;font-size:1rem;line-height:1}
.gal-adm{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px}
.gcard{background:#fff;border:1px solid var(--linea);border-radius:16px;overflow:hidden;position:relative}
.gcard.is-off .gcard__img{opacity:.45}
.gcard__img{aspect-ratio:4/3}
.gcard__img img{width:100%;height:100%;object-fit:cover}
.gcard__sel{position:absolute;top:10px;left:10px;z-index:3;background:#fff;border-radius:8px;padding:6px;display:flex;box-shadow:0 2px 8px rgba(0,0,0,.15)}
.gcard__sel input{width:18px;height:18px;accent-color:var(--azul)}
.gcard__f{padding:12px;display:grid;gap:8px}
.gcard__f input:not([type=checkbox]){min-height:38px!important;padding:8px 10px!important;font-size:.9rem}
.gcard__row{display:grid;grid-template-columns:1fr 72px;gap:8px;align-items:center}
.gcard__row:last-child{grid-template-columns:1fr auto}
.viewer{position:fixed;inset:0;z-index:100;background:rgba(5,22,40,.92);display:grid;place-items:center;padding:30px}
.viewer[hidden]{display:none}
.viewer img{max-height:88vh;border-radius:12px}
.viewer__x{position:absolute;top:16px;right:16px;width:48px;height:48px;border-radius:50%;border:0;background:rgba(255,255,255,.15);color:#fff;font-size:1.8rem}

/* Mensajes */
.inbox{display:grid;grid-template-columns:minmax(0,1fr);gap:22px;align-items:start}
.inbox.has-sel{grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr)}
.inbox__list{max-height:calc(100vh - 220px);overflow-y:auto}
.inbox__it{display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"p n d" "m m m";gap:4px 10px;padding:14px 18px;border-bottom:1px solid var(--linea);align-items:center}
.inbox__it .pill{grid-area:p}.inbox__it strong{grid-area:n}.inbox__it small{grid-area:d;color:var(--gris)}.inbox__it .muted{grid-area:m;font-size:.9rem}
.inbox__it:hover{background:#FAFCFE}
.inbox__it.is-new strong{color:var(--azul)}
.inbox__it.is-new{box-shadow:inset 3px 0 0 var(--azul)}
.inbox__it.is-on{background:#EAF4FD}
.inbox__back{display:none}
.dl{display:grid;grid-template-columns:150px 1fr;gap:8px 16px;margin:0 0 18px}
.dl dt{font-weight:700;color:var(--gris);font-size:.9rem}
.dl dd{margin:0}
.msg-body{padding:18px;background:var(--nube);border-radius:12px;margin-bottom:18px;white-space:normal}
.row-btns{display:flex;gap:10px;flex-wrap:wrap}
.row-btns form{display:inline}

/* Usuarios */
.usr{border:1px solid var(--linea);border-radius:14px;padding:14px 16px;margin-bottom:12px}
.usr summary{cursor:pointer;display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}
.usr summary small{flex-basis:100%}
.usr[open] summary{margin-bottom:12px}
.form--row{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin-bottom:12px}
.form--row .fld{flex:1 1 180px}

/* Jodit */
.jodit-container:not(.jodit_inline){border-radius:12px!important;border-color:var(--linea)!important;overflow:hidden}
.jodit-toolbar__box:not(:empty){background:#FAFCFE!important;border-color:var(--linea)!important}
.jodit-workplace{font-family:"Figtree",sans-serif}
.jodit-wysiwyg{font-size:15px;line-height:1.6}

/* Login */
.login{display:grid;grid-template-columns:1.1fr 1fr;min-height:100vh;background:#fff}
.login__art{position:relative;overflow:hidden;background:var(--noche)}
.login__art img{width:100%;height:100%;object-fit:cover;opacity:.55}
.login__art p{position:absolute;left:40px;right:40px;bottom:40px;color:#fff;font-family:"Zilla Slab",serif;font-weight:700;font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.1;margin:0;max-width:16ch}
.login__box{width:100%;max-width:440px;margin:auto;padding:40px 28px}
.login__logo{width:110px;height:110px;object-fit:contain;margin-bottom:22px}
.login__box h1{font-size:2rem;margin-bottom:6px}
.login__box .muted{margin:0 0 22px}
.login__box .form{display:grid;gap:16px}
.login__back{display:inline-block;margin-top:22px}

/* ---------- Responsive ---------- */
@media (max-width:1100px){
  .split-adm{grid-template-columns:1fr}
  .subnav{position:static;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
  .subnav__t{grid-column:1/-1}
}
@media (max-width:960px){
  .sb{transform:translateX(-100%);box-shadow:0 0 40px rgba(0,0,0,.3)}
  body.sb-open .sb{transform:none}
  body.sb-open .sb__veil{display:block;position:fixed;inset:0;background:rgba(8,41,74,.45);z-index:40}
  .main{margin-left:0}
  .tb__burger{display:flex}
  .grid2{grid-template-columns:1fr}
  .inbox.has-sel{grid-template-columns:1fr}
  .inbox.has-sel .inbox__list{display:none}
  .inbox__back{display:inline-block}
  .login{grid-template-columns:1fr}
  .login__art{display:none}
  .tabs-bar{top:69px}
}
@media (max-width:720px){
  .fgrid,.logo-size{grid-template-columns:1fr}
  .up{flex-direction:column;align-items:stretch}
  .up__prev{width:100%}
  .tb__ver span{display:none}
  .tb__t{font-size:1.25rem}
  .quick{grid-template-columns:1fr}
  .search{max-width:none;flex:1}
  .listhd__act{width:100%}
  .tbl thead{display:none}
  .tbl,.tbl tbody,.tbl tr,.tbl td{display:block;width:100%}
  .tbl tr{padding:14px 16px;border-bottom:1px solid var(--linea);display:grid;grid-template-columns:80px 1fr;gap:4px 14px}
  .tbl td{padding:2px 0;border:0}
  .tbl td[data-l="Imagen"]{grid-row:span 4}
  .tbl td:not([data-l="Imagen"]):not(.w-act)::before{content:attr(data-l) ": ";color:var(--gris);font-size:.82rem}
  .tbl td.w-act{grid-column:1/-1;text-align:left;margin-top:8px;display:flex;gap:8px}
  .dl{grid-template-columns:1fr}
  .dl dt{margin-top:6px}
  .savebar{justify-content:stretch}
  .savebar .btn{flex:1}
  .savebar__state{flex-basis:100%}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
