/* Core (resumido, con lo necesario para la demo) */
:root{--bg:#f8fafc;--card:#fff;--muted:#475569;--text:#1e293b;--accent:#3b82f6;--accent-weak:#e2e8f0;--ring:rgba(59,130,246,.3);--accent-6:#06b6d4}
*{box-sizing:border-box} html,body{margin:0;background:var(--bg);color:var(--text)} a{text-decoration:none;color:inherit}

header{padding:20px 16px 8px;max-width:1200px;margin:0 auto;border-bottom:1px solid #e2e8f0}
header h1{margin:0 0 6px;font-size:1.9rem;font-weight:800;background:linear-gradient(90deg,var(--accent),var(--accent-6));-webkit-background-clip:text;background-clip:text;color:transparent}
header p{margin:0;color:var(--muted)}
.topbar{display:flex;gap:8px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-top:10px}

.btn{appearance:none;border:1px solid #cbd5e1;background:var(--accent-weak);color:var(--text);padding:10px 14px;border-radius:10px;cursor:pointer;display:inline-flex;align-items:center;gap:8px}
.btn.primary{background:linear-gradient(90deg,#2563eb,#06b6d4);border-color:#2563eb;color:#fff}
.tag{font-size:.78rem;color:var(--muted);padding:2px 8px;border:1px solid #cbd5e1;border-radius:999px;background:#f1f5f9}
.today-badge{font-size:.78rem;color:#fff;background:linear-gradient(90deg,var(--accent),var(--accent-6));padding:4px 8px;border-radius:999px;font-weight:700}

.layout{display:grid;grid-template-columns:240px 1fr;min-height:100vh}
.sidebar{background:#fff;border-right:1px solid #e2e8f0;padding:16px;position:sticky;top:0;height:100dvh}
.side-link{display:block;padding:10px 12px;border-radius:10px;margin:6px 0;border:1px solid #e2e8f0;background:#fff;font-weight:600}
.side-link.active{border-color:var(--accent);color:#1d4ed8;box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.content{padding:24px 24px 60px;max-width:1100px;margin:0 auto}

.panel{max-width:1200px;margin:10px auto;padding:0 16px}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin:18px 0 24px}
.card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:14px}
.card-kpi{font-size:2.2rem;font-weight:800}
.card-label{color:#475569}

.login-box{max-width:420px;margin:40px auto;background:linear-gradient(180deg,#ffffff,#f8fafc);border:1px solid #e2e8f0;border-radius:14px;padding:18px}
.field{display:flex;flex-direction:column;gap:6px;margin:10px 0}
input[type="text"],input[type="password"],select{padding:10px;border-radius:10px;border:1px solid #cbd5e1;background:#fff}
textarea{width:100%;min-height:56px;resize:vertical;padding:8px;border-radius:10px;border:1px solid #cbd5e1;background:#fff;color:var(--text)}

.alert{max-width:1200px;margin:12px auto 0;padding:10px 14px;border-radius:12px;border:1px solid #86efac;background:#dcfce7;color:#166534}
.alert.warn{border-color:#fde68a;background:#fef9c3;color:#92400e}

.days{display:flex;flex-direction:column;gap:2rem;align-items:center;width:100%}
.day-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:14px;position:relative;width:100%;box-shadow:0 1px 8px rgba(2,6,23,.05)}
.day-card.current{box-shadow:0 0 0 2px rgba(59,130,246,.4),0 8px 24px rgba(59,130,246,.12)}
.day-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.day-name{font-weight:700;font-size:1.15rem}

.meal { margin: 18px 0 22px; }
.meal-label{
  display:inline-block;font-weight:700;font-size:.9rem;color:#0f172a;
  background:#eef2ff;border:1px solid #c7d2fe;padding:6px 10px;border-radius:999px;margin:0 0 6px 6px;
}
.meal-box{border:1px dashed #cbd5e1;border-radius:12px;background:linear-gradient(180deg,#f8fafc,#f1f5f9);padding:12px}
.meal-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.meal-list li{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}
.meal-list .item{font-size:1rem}
.meal-list .qty{color:#334155;font-variant-numeric:tabular-nums;white-space:nowrap;padding:2px 8px;border:1px solid #e2e8f0;border-radius:8px;background:#fff}

.diets-grid{display:grid;grid-template-columns:3fr 1fr;gap:16px;align-items:start}
.diets-aside{position:sticky;top:12px}
.aside-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:12px;margin-bottom:12px}

@media (min-width:1200px){ .days .day-card{width:80%;max-width:1000px} }
@media (min-width:992px) and (max-width:1199px){ .days .day-card{width:90%;max-width:950px} }
@media (max-width:991px){ .days .day-card{width:100%;max-width:100%} }

@media (max-width:900px){
  .layout{grid-template-columns:1fr}
  .sidebar{position:static;height:auto;border-right:0;border-bottom:1px solid #e2e8f0}
  .diets-grid{grid-template-columns:1fr}
}
