/* CitasPanel — estilos. Mobile-first, identidad propia: tinta marina + coral cálido */
:root{
  --tinta:#10243a;        /* azul marino profundo */
  --tinta-suave:#33506e;
  --fondo:#f6f8fb;
  --tarjeta:#ffffff;
  --coral:#ff6b57;        /* accion principal */
  --coral-osc:#e4513e;
  --verde:#1e9e6a;
  --rojo:#d23c3c;
  --borde:#e2e8f1;
  --radio:14px;
  --sombra:0 4px 18px rgba(16,36,58,.08);
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;background:var(--fondo);color:var(--tinta);line-height:1.55}
a{color:var(--coral-osc);text-decoration:none}
.contenedor{max-width:1000px;margin:0 auto;padding:16px}

/* Barra superior */
.barra{background:var(--tinta);color:#fff;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}
.barra .marca{font-weight:800;letter-spacing:.5px;font-size:1.05rem}
.barra .marca span{color:var(--coral)}
.barra nav{display:flex;gap:14px;flex-wrap:wrap}
.barra nav a{color:#dbe6f3;font-size:.92rem}
.barra nav a.activo,.barra nav a:hover{color:#fff}

/* Tarjetas */
.tarjeta{background:var(--tarjeta);border:1px solid var(--borde);border-radius:var(--radio);box-shadow:var(--sombra);padding:20px;margin:16px 0}
.tarjeta h2{font-size:1.15rem;margin-bottom:12px}
.tarjeta h3{font-size:1rem;margin:14px 0 8px}

/* Formularios */
label{display:block;font-size:.85rem;font-weight:600;color:var(--tinta-suave);margin:10px 0 4px}
input,select,textarea{width:100%;padding:11px 12px;border:1px solid var(--borde);border-radius:10px;font-size:1rem;background:#fff;color:var(--tinta)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--coral);outline-offset:1px;border-color:var(--coral)}
.fila{display:grid;grid-template-columns:1fr;gap:10px}
@media(min-width:640px){.fila-2{grid-template-columns:1fr 1fr}.fila-3{grid-template-columns:1fr 1fr 1fr}}

.boton{display:inline-block;background:var(--coral);color:#fff;border:none;border-radius:10px;padding:12px 20px;font-size:1rem;font-weight:700;cursor:pointer;margin-top:14px;width:100%}
.boton:hover{background:var(--coral-osc)}
@media(min-width:640px){.boton{width:auto}}
.boton-sec{background:var(--tinta-suave)}
.boton-peq{padding:6px 12px;font-size:.85rem;margin:0;width:auto}
.boton-rojo{background:var(--rojo)}

/* Avisos */
.aviso{padding:12px 14px;border-radius:10px;margin:12px 0;font-size:.95rem}
.aviso-ok{background:#e7f6ef;color:var(--verde);border:1px solid #bfe7d4}
.aviso-error{background:#fdeaea;color:var(--rojo);border:1px solid #f3c4c4}
.aviso-info{background:#eaf1fb;color:var(--tinta-suave);border:1px solid #cdddf2}

/* Tablas responsive */
.tabla-envoltura{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:.92rem}
th{background:#eef2f8;text-align:left;padding:10px;color:var(--tinta-suave);white-space:nowrap}
td{padding:10px;border-top:1px solid var(--borde);vertical-align:middle}

/* Etiquetas de estado */
.etiqueta{display:inline-block;padding:3px 10px;border-radius:99px;font-size:.78rem;font-weight:700}
.et-pendiente{background:#fff3e0;color:#b06000}
.et-confirmada{background:#e7f6ef;color:var(--verde)}
.et-cancelada{background:#fdeaea;color:var(--rojo)}
.et-completada{background:#eaf1fb;color:var(--tinta-suave)}

/* Selector de horas (pagina publica) */
.horas{display:grid;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:8px;margin-top:8px}
.horas input{display:none}
.horas label{border:1.5px solid var(--borde);border-radius:10px;padding:10px 0;text-align:center;cursor:pointer;font-weight:700;margin:0;color:var(--tinta)}
.horas input:checked + label{background:var(--coral);border-color:var(--coral);color:#fff}

/* Encabezado publico */
.hero-publico{background:linear-gradient(135deg,var(--tinta) 0%,#1d3a5c 100%);color:#fff;padding:34px 16px;text-align:center}
.hero-publico h1{font-size:1.5rem}
.hero-publico p{color:#c8d6e6;margin-top:4px;font-size:.95rem}

/* Login */
.caja-login{max-width:400px;margin:8vh auto;padding:0 16px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}
.kpi{background:var(--tarjeta);border:1px solid var(--borde);border-radius:var(--radio);padding:16px;text-align:center}
.kpi b{font-size:1.6rem;display:block;color:var(--coral-osc)}
.kpi small{color:var(--tinta-suave)}
