* { margin:0; padding:0; box-sizing:border-box; }
body {
  font-family:'Segoe UI', system-ui, sans-serif;
  background:#f6f7f9; color:#1f2937; min-height:100vh;
}
a { color:inherit; text-decoration:none; }

/* Barra superior */
.topbar {
  background:#16a34a; color:#fff; padding:12px 20px;
  display:flex; align-items:center; justify-content:space-between;
  gap:16px; flex-wrap:wrap;
}
.logo { font-weight:700; font-size:20px; display:flex; align-items:center; gap:8px; }
.logo-img { height:28px; width:28px; border-radius:8px; object-fit:cover; }
.nav { display:flex; gap:6px; flex-wrap:wrap; }
.nav a { padding:7px 12px; border-radius:8px; font-size:14px; }
.nav a:hover { background:rgba(255,255,255,.15); }
.nav a.activo { background:rgba(255,255,255,.25); font-weight:600; }

/* Contenido */
.contenido { max-width:960px; margin:0 auto; padding:20px 16px 60px; }
h1 { font-size:22px; margin-bottom:14px; }
h2 { font-size:18px; margin:22px 0 10px; }
p.nota { color:#6b7280; font-size:13px; margin:8px 0; }
p.vacio { color:#9ca3af; text-align:center; padding:40px 0; }

/* Tarjetas resumen */
.tarjetas-resumen { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:10px; margin-bottom:16px; }
.tarjeta-resumen { background:#fff; border:1px solid #e5e7eb; border-radius:12px; padding:14px; text-align:center; }
.tarjeta-resumen .num { display:block; font-size:24px; font-weight:700; color:#16a34a; }
.tarjeta-resumen span:last-child { font-size:13px; color:#6b7280; }

/* Botones */
.acciones, .acciones-celda { display:flex; gap:8px; flex-wrap:wrap; margin:12px 0; align-items:center; }
.btn {
  background:#fff; border:1px solid #d1d5db; border-radius:8px;
  padding:9px 14px; font-size:14px; cursor:pointer; color:#1f2937;
}
.btn:hover { background:#f3f4f6; }
.btn-primario { background:#16a34a; border-color:#16a34a; color:#fff; }
.btn-primario:hover { background:#15803d; }
.btn-mini { padding:4px 9px; font-size:12px; border-radius:6px; }
.btn-peligro:hover { background:#fee2e2; border-color:#f87171; }

/* Formularios */
.form-fila { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:10px; }
.form-fila input, .form-fila select {
  padding:8px 10px; border:1px solid #d1d5db; border-radius:8px; font-size:14px; flex:1; min-width:120px;
}
input[type=date] { flex:0 1 auto; }
.panel-nuevo { background:#fff; border:1px solid #e5e7eb; border-radius:12px; padding:12px 16px; margin-bottom:16px; }
.panel-nuevo summary { cursor:pointer; font-weight:600; color:#16a34a; }
.panel-nuevo form { margin-top:12px; }
.panel-nuevo textarea { width:100%; padding:8px 10px; border:1px solid #d1d5db; border-radius:8px; margin:6px 0; font-family:inherit; }

/* Tablas */
.tabla { width:100%; border-collapse:collapse; background:#fff; border-radius:12px; overflow:hidden; box-shadow:0 1px 2px rgba(0,0,0,.05); }
.tabla th, .tabla td { text-align:left; padding:10px 12px; border-bottom:1px solid #f3f4f6; font-size:14px; }
.tabla th { background:#f9fafb; font-size:12px; text-transform:uppercase; color:#6b7280; }
.tabla tr.hecho td { color:#9ca3af; }
.tabla tr.inactivo td { opacity:.5; }
.tabla td.vacio { text-align:center; color:#9ca3af; padding:30px; }

/* Chips */
.chip { background:#dcfce7; color:#166534; border-radius:10px; padding:2px 8px; font-size:12px; margin:2px; display:inline-block; }

/* Avisos */
.aviso { background:#fef3c7; border-left:4px solid #f59e0b; padding:10px 14px; border-radius:8px; margin:10px 0; font-size:14px; }
.aviso span { margin-right:10px; }
.flash { background:#dcfce7; color:#166534; border-radius:8px; padding:10px 14px; margin-bottom:10px; }

/* Menú semanal */
.dia { background:#fff; border:1px solid #e5e7eb; border-radius:12px; padding:14px 16px; margin-bottom:14px; }
.dia h2 { margin:0 0 10px; font-size:16px; color:#16a34a; }
.comidas { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:10px; }
.comida { border:1px solid #e5e7eb; border-radius:10px; padding:10px; }
.comida .tipo { font-size:11px; text-transform:uppercase; color:#9ca3af; font-weight:600; }
.plato { display:flex; justify-content:space-between; align-items:center; gap:6px; margin-top:4px; }
.plato.hecho { color:#9ca3af; }
.ok-texto { color:#16a34a; font-size:13px; }
.vacio-plato { color:#d1d5db; }

/* Lista compra */
.lista-compra { list-style:none; background:#fff; border-radius:12px; overflow:hidden; box-shadow:0 1px 2px rgba(0,0,0,.05); }
.lista-compra li { border-bottom:1px solid #f3f4f6; }
.lista-compra li:last-child { border-bottom:none; }
.item-compra { display:flex; align-items:center; gap:12px; padding:12px 16px; width:100%; background:none; border:none; cursor:pointer; font-size:15px; }
.item-compra:hover { background:#f9fafb; }
.check { font-size:20px; border:none; background:none; cursor:pointer; }
.nombre { flex:1; }
.cant { color:#6b7280; font-weight:600; }
li.marcado .nombre { text-decoration:line-through; color:#9ca3af; }
li.marcado .cant { color:#9ca3af; }

/* Mini inputs */
.mini-input { width:60px; padding:4px 6px; border:1px solid #d1d5db; border-radius:6px; font-size:12px; }

/* Responsive */
@media (max-width:600px) {
  .topbar { justify-content:center; }
  .nav { justify-content:center; }
  .form-fila input { min-width:100%; }
}
