/* ============================================================================
   Tema de marca · Colegio Médico del Perú (Manual de Identidad Gráfica)
   Colores PANTONE oficiales y tipografías Montserrat / Open Sans.
   ============================================================================ */
:root{
  --cmp-morado:#681E5B;   /* PANTONE 167-1C */
  --cmp-dorado:#D29703;   /* PANTONE 20-1C  */
  --cmp-violeta:#543576;  /* PANTONE 269 C  */
  --cmp-ambar:#EFA527;    /* PANTONE 7409 C */
  --cmp-negro:#3C3C3B;    /* PANTONE Black C*/
  --cmp-crema:#FFF8EB;    /* PANTONE 18-9C  */
  --cmp-morado-osc:#4f0f39;
  --cmp-gris:#6b5f66;
  --font-titulo:'Montserrat',system-ui,sans-serif;
  --font-texto:'Open Sans',system-ui,sans-serif;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;font-family:var(--font-texto);color:var(--cmp-negro);background:#fff;-webkit-font-smoothing:antialiased;}
h1,h2,h3,h4{font-family:var(--font-titulo);}
img{display:block;max-width:100%;}
a{text-decoration:none;color:inherit;}
input,textarea,select,button{font-family:inherit;}
input::placeholder,textarea::placeholder{color:#a394a0;}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--cmp-morado);box-shadow:0 0 0 3px rgba(104,30,91,.13);}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-13px)}}
::selection{background:var(--cmp-dorado);color:#3a0e2a;}

/* ---------- Isologo oficial CMP ---------- */
.cmp-emblema{width:46px;height:46px;flex:none;background-image:url('/img/logo-cmp.png');background-size:contain;background-position:center;background-repeat:no-repeat;}
.cmp-emblema .cruz{display:none;}   /* compatibilidad: el marcado antiguo <div class="cruz"> queda oculto */

/* ---------- Botones ---------- */
.btn-dorado{display:inline-flex;align-items:center;gap:9px;background:var(--cmp-dorado);color:#3a0e2a;font-weight:800;padding:13px 24px;border:none;border-radius:12px;cursor:pointer;box-shadow:0 14px 28px -14px rgba(210,151,3,.8);}
.btn-morado{display:inline-flex;align-items:center;gap:9px;background:var(--cmp-morado);color:#fff;font-weight:700;padding:13px 24px;border:none;border-radius:12px;cursor:pointer;}
.btn-outline{display:inline-flex;align-items:center;gap:9px;background:transparent;color:var(--cmp-morado);font-weight:700;padding:12px 22px;border:1px solid #e7d9e3;border-radius:12px;cursor:pointer;}

/* ============================================================================
   BACKOFFICE
   ============================================================================ */
.admin-shell{display:flex;min-height:100vh;background:#f7f3f6;}
.admin-side{width:250px;background:var(--cmp-morado);color:#fff;flex:none;display:flex;flex-direction:column;padding:20px 0;}
.admin-side .brand{display:flex;align-items:center;gap:11px;padding:0 20px 18px;border-bottom:1px solid rgba(255,255,255,.12);margin-bottom:12px;}
.admin-side .brand b{font-family:var(--font-titulo);font-size:14px;}
.admin-side .brand span{font-size:9px;letter-spacing:.3em;color:var(--cmp-ambar);}
.admin-side .mod{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--cmp-ambar);padding:14px 22px 6px;}
.admin-side a{display:flex;align-items:center;gap:10px;padding:10px 22px;font-size:14px;color:rgba(255,255,255,.86);font-weight:600;}
.admin-side a:hover{background:rgba(255,255,255,.08);}
.admin-side a.active{background:var(--cmp-dorado);color:#3a0e2a;}
.admin-main{flex:1;min-width:0;display:flex;flex-direction:column;}
.admin-top{background:#fff;border-bottom:1px solid #ecdff0;padding:14px 26px;display:flex;align-items:center;justify-content:space-between;}
.admin-top h1{font-size:19px;color:var(--cmp-morado);margin:0;}
.admin-body{padding:26px;}
.admin-user{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--cmp-gris);}

.card-panel{background:#fff;border:1px solid #efe6ec;border-radius:16px;padding:22px;}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:22px;}
.stat{background:#fff;border:1px solid #efe6ec;border-radius:16px;padding:18px 20px;border-left:4px solid var(--cmp-dorado);}
.stat .n{font-family:var(--font-titulo);font-weight:800;font-size:30px;color:var(--cmp-morado);line-height:1;}
.stat .l{font-size:12.5px;color:var(--cmp-gris);margin-top:6px;}

table.grid{width:100%;border-collapse:collapse;font-size:13.5px;}
table.grid th{background:var(--cmp-morado);color:#fff;text-align:left;padding:10px 12px;font-family:var(--font-titulo);font-weight:600;font-size:12.5px;}
table.grid td{padding:9px 12px;border-bottom:1px solid #efe6ec;}
table.grid tr:hover td{background:#faf6fb;}
.badge{display:inline-block;font-size:11px;font-weight:700;padding:3px 10px;border-radius:999px;}
.badge.nueva{background:#eef0fb;color:#4b3ea8;}
.badge.enatencion{background:#fdf3e5;color:#9a6b06;}
.badge.cotizada{background:#eaf7f0;color:#1c8a56;}
.badge.cerrada{background:#f0e9ee;color:#6b5f66;}
.badge.confirmada{background:#eaf7f0;color:#1c8a56;}
.badge.tentativa{background:#fdf3e5;color:#9a6b06;}
.badge.cancelada{background:#fbe4e4;color:#b4283f;}

.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;}
.field label{display:block;font-size:13px;font-weight:700;color:var(--cmp-morado);margin-bottom:6px;}
.field input,.field select,.field textarea{width:100%;padding:11px 13px;border:1px solid #e3d7df;border-radius:10px;font-size:14px;background:#fff;color:var(--cmp-negro);}
.alerta{padding:11px 15px;border-radius:10px;font-size:13.5px;font-weight:600;margin:12px 0;}
.alerta.ok{background:#eaf7f0;color:#1c8a56;}
.alerta.err{background:#fbe4e4;color:#b4283f;}

.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--cmp-morado);padding:20px;}
.login-card{background:#fff;border-radius:22px;padding:40px;max-width:400px;width:100%;box-shadow:0 40px 80px -40px rgba(0,0,0,.5);}
.login-card h1{font-size:22px;color:var(--cmp-morado);margin:16px 0 4px;}
.login-card p{font-size:13.5px;color:var(--cmp-gris);margin:0 0 24px;}
