:root{
  --ink:#171a20;          /* encabezado oscuro (como el logo) */
  --ink-2:#222834;
  --primary:#178f78;      /* teal de acción (familia menta, contraste para texto blanco) */
  --primary-dark:#0f6f5d;
  --mint:#6fbfa6;         /* menta de la marca (acentos) */
  --lav:#8e90c8;          /* lavanda de la marca (acentos) */
  --lav-dark:#6f72b0;
  --bg:#f5f7f8;
  --card:#ffffff;
  --text:#1f2530;
  --muted:#6b7280;
  --border:#e6e8ec;
  --danger:#dc2626;
  --danger-bg:#fef2f2;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:var(--bg);color:var(--text);line-height:1.5;-webkit-text-size-adjust:100%;
}

/* ---------- Inicio de sesión ---------- */
.login-page{display:flex;min-height:100vh;align-items:center;justify-content:center;padding:20px;background:linear-gradient(160deg,#eef1f4,#e6ebee);}
.login-card{background:var(--card);width:100%;max-width:390px;border-radius:16px;box-shadow:0 12px 40px rgba(23,26,32,.16);overflow:hidden;}
.login-logo-band{background:var(--ink);padding:26px 20px;text-align:center;}
.login-logo-band img{height:46px;max-width:84%;object-fit:contain;}
.login-logo-band .fallback{color:#e8eaee;font-size:1.15rem;letter-spacing:.04em;font-weight:600;}
.login-body{padding:24px 24px 28px;}
.login-body h1{margin:0 0 4px;font-size:1.12rem;color:var(--text);text-align:center;}
.subtitle{margin:0 0 20px;text-align:center;color:var(--muted);font-size:.9rem;}
form label{display:block;margin-bottom:14px;font-size:.9rem;font-weight:600;}
form input{width:100%;margin-top:6px;padding:12px;font-size:16px;border:1px solid var(--border);border-radius:9px;font-weight:400;}
form input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(23,143,120,.16);}
button{width:100%;padding:13px;font-size:1rem;font-weight:600;color:#fff;background:var(--primary);border:none;border-radius:9px;cursor:pointer;transition:background .15s;}
button:hover{background:var(--primary-dark);}
.alert-error{background:var(--danger-bg);color:var(--danger);border:1px solid #fecaca;padding:10px 12px;border-radius:9px;font-size:.88rem;margin-bottom:16px;}

/* ---------- App ---------- */
.topbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:var(--ink);color:#fff;padding:10px 18px;}
.topbar .brand{font-weight:700;display:flex;align-items:center;}
.brand-logo{height:30px;width:auto;max-width:220px;object-fit:contain;display:block;}
.brand-fallback{color:#fff;font-weight:700;letter-spacing:.02em;}
.topbar .user-chip{margin-left:auto;font-size:.82rem;color:#c7ccd4;}
.topbar .logout{color:#fff;text-decoration:none;font-size:.82rem;border:1px solid rgba(255,255,255,.35);padding:5px 11px;border-radius:7px;}
.topbar .logout:hover{background:rgba(255,255,255,.12);}
.container{max-width:760px;margin:0 auto;padding:20px 16px;}
.container h1{font-size:1.3rem;margin:6px 0 4px;}
.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:18px;margin-top:14px;}

.topbar .brand a{color:#fff;text-decoration:none;}
.mainnav{display:flex;gap:14px;flex-wrap:wrap;}
.mainnav a,.mainnav a:visited{color:#ffffff;text-decoration:none;font-size:.9rem;font-weight:500;opacity:.95;}
.mainnav a:hover{opacity:1;color:var(--mint);text-decoration:none;}

/* Avisos */
.notice{background:#ecfdf5;color:#065f46;border:1px solid #a7f3d0;padding:10px 12px;border-radius:9px;margin-bottom:14px;font-size:.9rem;}
.errors{background:var(--danger-bg);color:var(--danger);border:1px solid #fecaca;padding:10px 12px;border-radius:9px;margin-bottom:14px;font-size:.9rem;}
.errors ul{margin:6px 0 0;padding-left:18px;}

/* Encabezados de sección */
h2.section{font-size:1.05rem;margin:18px 0 10px;padding-left:9px;border-left:3px solid var(--mint);}
.container h1{color:var(--ink);}

/* Acciones rápidas (Inicio) */
.quick-actions{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 6px;}
.qa{display:inline-block;text-decoration:none;font-weight:600;font-size:.92rem;padding:12px 18px;border-radius:10px;background:var(--card);border:1px solid var(--border);color:var(--text);box-shadow:0 1px 2px rgba(23,26,32,.05);}
.qa:hover{border-color:var(--mint);}
.qa.primary{background:var(--primary);color:#fff;border-color:var(--primary);}
.qa.primary:hover{background:var(--primary-dark);border-color:var(--primary-dark);}

/* Formularios de la app */
.app-form{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:18px;margin-bottom:20px;}
.app-form .row{display:flex;flex-wrap:wrap;gap:12px;}
.app-form .row label{flex:1 1 220px;}
.app-form select{width:100%;margin-top:6px;padding:11px;font-size:16px;border:1px solid var(--border);border-radius:9px;background:#fff;}
.app-form button{margin-top:14px;width:auto;padding:11px 22px;}

/* Tablas de datos */
table.data{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--border);border-radius:12px;overflow:hidden;}
table.data th,table.data td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);font-size:.9rem;vertical-align:middle;}
table.data th{background:#f9fafb;font-weight:600;}
table.data tr:last-child td{border-bottom:none;}

.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:.74rem;font-weight:600;background:#d1fae5;color:var(--primary-dark);}
.badge.off{background:#f3f4f6;color:var(--muted);}
.btn-small{padding:6px 12px;font-size:.8rem;width:auto;border-radius:7px;background:var(--primary);color:#fff;border:none;cursor:pointer;}
.btn-small.gray{background:#9ca3af;}
.btn-small:hover{opacity:.9;}

/* Alergias: rojo y en negrita, visibles en cada pantalla */
.allergy{color:var(--danger);font-weight:700;}
.muted{color:var(--muted);}
.nowrap{white-space:nowrap;}

/* Fichas de alergias (rojo, seguridad) y de "Evitar" (ámbar, preferencia) */
.allergy-chip{display:inline-block;background:var(--danger-bg);color:var(--danger);border:1px solid #fecaca;font-weight:700;font-size:.78rem;padding:2px 9px;border-radius:999px;margin:2px 3px 2px 0;white-space:nowrap;}
.avoid-chip{display:inline-block;background:#fffbeb;color:#b45309;border:1px solid #fde68a;font-weight:600;font-size:.78rem;padding:2px 9px;border-radius:999px;margin:2px 3px 2px 0;white-space:nowrap;}

/* Selector de casillas (alergias / evitar) */
.allergy-picker{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 10px;}
.allergy-picker .chk{display:flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--border);border-radius:9px;padding:8px 12px;font-size:.86rem;font-weight:500;cursor:pointer;}
.allergy-picker .chk input{width:auto;margin:0;}

/* ---------- Selector de días con comidas ---------- */
.cal-controls{display:flex;gap:8px;margin:4px 0 8px;}
.cal-wrap{display:flex;flex-wrap:wrap;gap:18px;margin:4px 0 14px;}
.cal-month{flex:0 0 auto;}
.cal-h{font-weight:700;text-transform:capitalize;margin:2px 0 6px;font-size:.9rem;color:var(--ink);}
.cal-grid{display:grid;grid-template-columns:repeat(7,34px);gap:4px;}
.cal-dow{text-align:center;font-size:.68rem;color:var(--muted);font-weight:600;padding-bottom:2px;}
.cal-cell{width:34px;height:34px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:8px;font-size:.82rem;cursor:pointer;user-select:none;background:#fff;}
.cal-cell.empty{border:none;background:transparent;cursor:default;}
.cal-cell.sel{background:var(--primary);color:#fff;border-color:var(--primary);font-weight:700;}
.cal-cell:not(.empty):not(.sel):hover{border-color:var(--mint);}

/* ---------- Calendario (vista diaria) ---------- */
.dnav{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:6px 0;}
.dnav input[type=date]{padding:8px 10px;border:1px solid var(--border);border-radius:9px;font-size:15px;}
.day-title{font-weight:700;font-size:1.05rem;margin:6px 0 2px;text-transform:capitalize;}
.deadline-note{font-size:.85rem;color:var(--muted);margin:0 0 6px;}
.deadline-note.past{color:var(--danger);}
.meal-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:14px;margin-bottom:12px;}
.meal-head{display:flex;align-items:center;gap:10px;justify-content:space-between;}
.meal-head .pname{font-weight:700;font-size:1rem;color:var(--primary-dark);text-decoration:none;}
.meal-allergies{margin:8px 0;}
.slots{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px;}
.slot{display:flex;flex-direction:column;gap:4px;align-items:flex-start;background:#f9fafb;border:1px solid var(--border);border-radius:10px;padding:8px 12px;min-width:120px;flex:1 1 120px;}
.slot.cancelled{background:#fef2f2;border-color:#fecaca;}
.slot-name{font-weight:600;font-size:.9rem;}
.slot-status{font-size:.78rem;color:var(--muted);}
.slot.cancelled .slot-status{color:var(--danger);font-weight:600;}
.btn-tiny{padding:4px 10px;font-size:.76rem;border:none;border-radius:6px;background:var(--primary);color:#fff;cursor:pointer;width:auto;}
.btn-tiny.danger{background:var(--danger);}
.btn-tiny:hover{opacity:.9;}

/* ---------- Confirmaciones ---------- */
.nav-badge{display:inline-block;background:#fff;color:var(--primary-dark);font-weight:700;font-size:.72rem;border-radius:999px;padding:0 6px;min-width:16px;text-align:center;}
.ack-row{display:flex;gap:12px;align-items:center;justify-content:space-between;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:12px 14px;margin-bottom:10px;}
.ack-row.late{border-color:#fecaca;background:#fff7f7;}
.ack-type{font-weight:700;font-size:.95rem;}
.ack-desc{font-size:.9rem;margin:3px 0;}
.ack-meta{font-size:.78rem;color:var(--muted);}
.late-badge{display:inline-block;background:var(--danger);color:#fff;font-weight:700;font-size:.68rem;padding:2px 8px;border-radius:999px;margin-left:6px;vertical-align:middle;}
tr.late-row td{background:#fff7f7;}
.summary-row{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0;}
.summary-tile{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:14px 22px;text-align:center;min-width:120px;}
.summary-tile.pending{border-color:#fecaca;background:#fff7f7;}
.summary-tile .tile-n{font-size:1.8rem;font-weight:800;color:var(--primary-dark);line-height:1;}
.summary-tile.pending .tile-n{color:var(--danger);}
.summary-tile .tile-l{font-size:.85rem;color:var(--muted);margin-top:4px;}

/* ---------- Entregas (checklist) ---------- */
.bulk-actions{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0 14px;}
.slot.deliver{flex:1 1 100%;flex-direction:row;align-items:center;cursor:pointer;padding:10px 12px;}
.slot.deliver form{display:flex;align-items:center;gap:10px;width:100%;margin:0;}
.slot.deliver input[type=checkbox]{width:22px;height:22px;margin:0;flex:0 0 auto;cursor:pointer;}
.slot.deliver .slot-name{min-width:84px;font-weight:600;}
.slot.deliver .slot-status{margin-left:auto;font-size:.82rem;}
.slot.deliver.done{background:#ecfdf5;border-color:#a7f3d0;}
.slot.deliver.done .slot-status{color:#065f46;font-weight:700;}

/* ---------- Reportes ---------- */
.report-period{margin:6px 0 10px;font-size:.9rem;}
table.data tr.total-row td{background:#f0fdfa;border-top:2px solid var(--primary);}

/* Impresión / Guardar PDF */
@media print {
  .topbar, .no-print, form.app-form, .bulk-actions { display:none !important; }
  body { background:#fff; }
  .container { max-width:100%; padding:0; }
  table.data { border:1px solid #999; }
  table.data th, table.data td { border:1px solid #bbb; }
  .summary-tile { border:1px solid #999; }
}
