/* Panel de la web de Dental Place. Hoja propia y ligera: el panel no carga el tema de la tienda. */

:root{
    --tinta:#1b2733; --tinta-suave:#5b6b7c; --linea:#e3e9ef; --fondo:#f5f7fa; --papel:#fff;
    --marca:#0E76BC; --marca-clara:#3FD0FF; --oscuro:#16212c; --oscuro-2:#1e2c3a;
    --ok:#1f9d63; --aviso:#b97b12; --malo:#c0392b;
    --radio:12px; --sombra:0 1px 2px rgba(20,35,50,.06), 0 8px 24px rgba(20,35,50,.06);
}
*{box-sizing:border-box}
body{margin:0;background:var(--fondo);color:var(--tinta);
     font:15px/1.55 -apple-system,"Segoe UI",Roboto,system-ui,sans-serif}
a{color:var(--marca);text-decoration:none}
a:hover{text-decoration:underline}
code{font-family:ui-monospace,Consolas,monospace;font-size:.88em;background:#eef2f6;padding:.1em .35em;border-radius:5px}

/* ── Barra lateral ───────────────────────────────────────────────────────── */
#adm_lateral{position:fixed;inset:0 auto 0 0;width:238px;background:var(--oscuro);color:#c7d5e2;
             display:flex;flex-direction:column;padding:1rem .7rem;overflow:auto}
.adm_marca{display:flex;align-items:center;gap:.55rem;color:#fff;font-weight:700;font-size:1.05rem;
           padding:.35rem .5rem 1.1rem}
.adm_marca:hover{text-decoration:none}
#adm_lateral nav{display:flex;flex-direction:column;gap:2px}
#adm_lateral nav a{display:flex;align-items:center;gap:.6rem;padding:.55rem .6rem;border-radius:9px;
                   color:#c7d5e2;font-size:.94rem}
#adm_lateral nav a:hover{background:var(--oscuro-2);color:#fff;text-decoration:none}
#adm_lateral nav a.activo{background:var(--marca);color:#fff}
#adm_lateral nav a svg{flex:none;opacity:.85}
.adm_sec{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:#7d92a6;
         padding:1rem .6rem .35rem}
.adm_pin{margin-left:auto;background:#e6484d;color:#fff;font-size:.72rem;border-radius:99px;padding:.05rem .45rem}

/* ── Cuerpo ──────────────────────────────────────────────────────────────── */
#adm_principal{margin-left:238px;min-height:100vh}
.adm_cabecera{display:flex;align-items:center;justify-content:space-between;gap:1rem;
              background:var(--papel);border-bottom:1px solid var(--linea);padding:1rem 1.6rem}
.adm_cabecera h1{font-size:1.15rem;margin:0}
.adm_quien{color:var(--tinta-suave);font-size:.9rem}
.adm_cuerpo{padding:1.6rem;max-width:1100px}

.adm_tarjeta{background:var(--papel);border:1px solid var(--linea);border-radius:var(--radio);
             box-shadow:var(--sombra);padding:1.2rem 1.3rem;margin-bottom:1.2rem}
.adm_tarjeta h2{font-size:1rem;margin:0 0 .9rem}
.adm_rejilla{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem;margin-bottom:1.2rem}
.adm_dato{background:var(--papel);border:1px solid var(--linea);border-radius:var(--radio);padding:1rem 1.1rem;
          box-shadow:var(--sombra)}
.adm_dato .n{font-size:1.7rem;font-weight:700;line-height:1.1}
.adm_dato .t{color:var(--tinta-suave);font-size:.86rem;margin-top:.15rem}
.adm_suave{color:var(--tinta-suave)}
.adm_pequeno{font-size:.86rem}

/* ── Tablas ──────────────────────────────────────────────────────────────── */
table.adm_tabla{width:100%;border-collapse:collapse;font-size:.92rem}
.adm_tabla th{text-align:left;font-weight:600;color:var(--tinta-suave);font-size:.8rem;
              text-transform:uppercase;letter-spacing:.04em;padding:.5rem .6rem;border-bottom:1px solid var(--linea)}
.adm_tabla td{padding:.65rem .6rem;border-bottom:1px solid var(--linea);vertical-align:top}
.adm_tabla tr:last-child td{border-bottom:0}
.adm_tabla tr.leido td{color:var(--tinta-suave)}

/* ── Estados ─────────────────────────────────────────────────────────────── */
.eti{display:inline-block;font-size:.76rem;padding:.12rem .5rem;border-radius:99px;border:1px solid transparent;
     white-space:nowrap}
.eti.activa{background:#e6f7ee;color:var(--ok);border-color:#bde9d2}
.eti.programada{background:#eaf2fc;color:var(--marca);border-color:#c9e0f7}
.eti.borrador{background:#f1f4f7;color:var(--tinta-suave);border-color:var(--linea)}
.eti.finalizada{background:#f6f1ea;color:var(--aviso);border-color:#ecdcc2}
.eti.pausada{background:#fdecea;color:var(--malo);border-color:#f7cdc8}

/* ── Formularios y botones ───────────────────────────────────────────────── */
label{display:block;margin-bottom:.8rem;font-size:.9rem;color:var(--tinta-suave)}
input[type=text],input[type=email],input[type=password],input[type=url],input[type=date],
input[type=number],select,textarea{
    width:100%;margin-top:.25rem;padding:.55rem .7rem;border:1px solid var(--linea);border-radius:9px;
    font:inherit;color:var(--tinta);background:var(--papel)}
input:focus,select:focus,textarea:focus{outline:2px solid #bfe3fb;border-color:var(--marca)}
textarea{min-height:5.5rem;resize:vertical}
.adm_fila{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}
.adm_boton{display:inline-flex;align-items:center;gap:.4rem;background:var(--marca);color:#fff;border:0;
           border-radius:9px;padding:.6rem 1.1rem;font:inherit;font-weight:600;cursor:pointer}
.adm_boton:hover{background:#0b5f97;text-decoration:none;color:#fff}
.adm_boton.claro{background:#eef3f8;color:var(--tinta)}
.adm_boton.claro:hover{background:#e3ebf3;color:var(--tinta)}
.adm_boton.peligro{background:#fdeceb;color:var(--malo)}
.adm_boton.peligro:hover{background:#f9dcd9;color:var(--malo)}
.adm_boton.mini{padding:.3rem .6rem;font-size:.85rem;font-weight:500}
.adm_acciones{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}

/* ── Avisos ──────────────────────────────────────────────────────────────── */
.adm_nota{border:1px solid var(--linea);border-left:4px solid var(--marca);background:#f8fbfe;
          border-radius:9px;padding:.8rem 1rem;margin-bottom:1.2rem}
.adm_nota.ok{border-left-color:var(--ok);background:#f4fbf7}
.adm_nota.malo{border-left-color:var(--malo);background:#fdf6f5}
#adm_aviso{position:fixed;right:1.2rem;bottom:1.2rem;display:flex;flex-direction:column;gap:.5rem;z-index:50}
#adm_aviso div{background:var(--oscuro);color:#fff;padding:.7rem 1rem;border-radius:10px;box-shadow:var(--sombra);
               font-size:.92rem;max-width:26rem}
#adm_aviso div.malo{background:var(--malo)}

/* ── Actualizaciones de BD ───────────────────────────────────────────────── */
.upd_log{background:#0f1720;color:#d7e3ee;border-radius:10px;padding:.9rem 1rem;margin-top:.8rem;
         font:13px/1.6 ui-monospace,Consolas,monospace;max-height:22rem;overflow:auto}
.upd_log span{display:block}
.upd_log code{display:block;background:#1a2532;color:#9fd5f5;margin:.15rem 0 .5rem;padding:.35rem .5rem;
              border-radius:6px;white-space:pre-wrap}
.upd_ok{color:#7ee0a8}.upd_ko{color:#ff9b91}.upd_dry{color:#9fd5f5}.upd_skip{color:#8ea3b8}
.upd_filas{color:#8ea3b8;font-size:.85em}

/* ── Vista previa del anuncio ────────────────────────────────────────────── */
.anuncio_previa{border:1px solid var(--linea);border-radius:var(--radio);padding:1rem 1.1rem;
                background:linear-gradient(120deg,#0E76BC,#3FD0FF);color:#fff}
.anuncio_previa .et{font-size:.7rem;text-transform:uppercase;letter-spacing:.09em;opacity:.8}
.anuncio_previa h3{margin:.25rem 0 .3rem;font-size:1.05rem}
.anuncio_previa p{margin:0;font-size:.92rem;opacity:.92}
.anuncio_previa img{max-width:100%;border-radius:8px;margin-top:.7rem;display:block}

/* ── Acceso ──────────────────────────────────────────────────────────────── */
body.adm_login{display:flex;align-items:center;justify-content:center;min-height:100vh;
               background:linear-gradient(160deg,#16212c,#1e2c3a)}
.adm_caja{background:var(--papel);border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.35);
          padding:2rem 1.8rem;width:min(400px,92vw)}
.adm_caja .adm_marca{color:var(--tinta);padding:0 0 1.2rem}
.adm_caja h1{font-size:1.15rem;margin:0 0 .4rem}
.adm_ayuda{color:var(--tinta-suave);font-size:.9rem;margin:0 0 1.2rem}
.adm_caja .adm_boton{width:100%;justify-content:center;margin-top:.4rem}
.adm_error{background:#fdeceb;color:var(--malo);border-radius:9px;padding:.6rem .8rem;font-size:.9rem;
           margin-bottom:.8rem}
.adm_volver{display:block;text-align:center;margin-top:1.1rem;font-size:.88rem;color:var(--tinta-suave)}

@media (max-width:820px){
    #adm_lateral{position:static;width:auto;flex-direction:row;flex-wrap:wrap;align-items:center;gap:.3rem}
    #adm_lateral nav{flex-direction:row;flex-wrap:wrap}
    .adm_sec{display:none}
    #adm_principal{margin-left:0}
    .adm_fila{grid-template-columns:1fr}
}

/* ── Uso de la aplicación ────────────────────────────────────────────────── */
.uso_punto{display:inline-block;width:8px;height:8px;border-radius:50%;background:#1f9d63;margin-left:.3rem;
           animation:uso_late 2s infinite}
@keyframes uso_late{0%,100%{opacity:1}50%{opacity:.25}}
.uso_grafica{display:flex;align-items:flex-end;gap:2px;height:110px;padding:.4rem 0;border-bottom:1px solid var(--linea)}
.uso_barra{flex:1;height:100%;display:flex;align-items:flex-end}
.uso_barra>div{width:100%;border-radius:3px 3px 0 0;min-height:0}
.uso_leyenda{font-size:.85rem;color:var(--tinta-suave);display:flex;align-items:center;gap:.4rem}
.uso_leyenda span{width:10px;height:10px;border-radius:3px;display:inline-block}

/* ── Informe para proveedores ────────────────────────────────────────────── */
.informe{background:var(--papel);border:1px solid var(--linea);border-radius:var(--radio);
         box-shadow:var(--sombra);padding:2rem 2.2rem}
.informe h1{font-size:1.5rem;margin:.2rem 0 .3rem}
.informe h2{font-size:1.05rem;margin:2rem 0 .8rem;padding-bottom:.4rem;border-bottom:1px solid var(--linea)}
.informe_marca{font-weight:700;color:var(--marca);letter-spacing:.02em}
.informe_intro{max-width:70ch}
.informe_cifras{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin:1rem 0}
.informe_cifras>div{background:#f7fafd;border:1px solid var(--linea);border-radius:10px;padding:.9rem 1rem}
.informe_cifras .n{display:block;font-size:1.5rem;font-weight:700;line-height:1.15}
.informe_cifras .t{display:block;color:var(--tinta-suave);font-size:.86rem}
.informe_peso{background:#eef3f8;border-radius:99px;height:7px;width:100%;max-width:160px;display:inline-block;
              vertical-align:middle;margin-right:.5rem}
.informe_peso span{display:block;height:100%;border-radius:99px;background:var(--marca)}
.informe_tabla tr.destacada{background:#f2f9ff;font-weight:600}

@media print{
    #adm_lateral,.adm_cabecera,.no-imprimir,#adm_aviso{display:none !important}
    #adm_principal{margin-left:0}
    .adm_cuerpo{padding:0;max-width:none}
    .informe{border:0;box-shadow:none;padding:0}
    body{background:#fff}
}
.informe_tabla td:last-child{white-space:nowrap}

/* Logo: símbolo de la gota + «Dental Place» en letra Sora (la misma de la web; se sirve desde la web) */
@font-face{font-family:'Sora';font-style:normal;font-weight:600;font-display:block;
  src:url('/assets/fonts/sora-600-latin.woff2') format('woff2')}
.marca-isla{font-family:'Sora','Segoe UI',sans-serif;font-weight:600;letter-spacing:-.02em}
.adm_marca.marca-isla{font-size:1.2rem}
.adm_caja .adm_marca.marca-isla{font-size:1.45rem}
