/* ═══════════════════════════════════════════════════
   NutriCRM — style.css  v2
   ═══════════════════════════════════════════════════ */
@import url('https://fonts.googleapis.com/css2?family=Nunito+Sans:wght@300;400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&display=swap');
*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
:root {
  --purple:#702082; --purple-dark:#4a1558; --purple-light:#9b6aaa; --lavender:#f7f0f9;
  --fucsia:#FF218C; --fucsia-soft:#ff5aaa; --fucsia-light:#ffb3d9;
  --bg:#FFF9EE; --bg-highlight:#f7f0f9; --border:#e8dced;
  --text-dark:#2a1a35; --text-mid:#5a4a60; --text-light:#8a7a90; --white:#FFFFFF;
  --font-serif:'Playfair Display',Georgia,serif; --font-sans:'Nunito Sans','Segoe UI',Helvetica,Arial,sans-serif;
  --gradient-brand:linear-gradient(135deg,#FF218C,#702082);
  --bg2:var(--lavender); --surface:var(--white); --ink:var(--text-dark); --ink2:var(--text-mid);
  --accent:var(--purple); --accent2:var(--purple-light); --accent-lt:var(--lavender);
  --warn:var(--fucsia); --warn-lt:#fff0f7;
  --gold:var(--purple-light); --gold-lt:var(--lavender);
  --blue:var(--purple); --blue-lt:var(--lavender);
  --purple-lt:var(--lavender);
  --teal:var(--fucsia-soft); --teal-lt:#fff0f7;
  --shadow:0 2px 12px rgba(26,22,16,.07);
  --shadow-lg:0 8px 32px rgba(26,22,16,.13);
  --r:12px; --r-sm:8px; --sidebar-w:240px;
}
html,body { height:100%; font-family:var(--font-sans); background:var(--bg); color:var(--ink); font-size:14px; line-height:1.6; }
button,input,select,textarea,.nav-item,.tab-btn,.filtro-btn { font-family:var(--font-sans) !important; }
h1,h2,h3,.logo-text,.paciente-avatar,.paciente-nombre,.plan-nombre,.macro-valor,.menu-nombre,.calc-card-title,.get-kpi-val,.macro-r-val,.food-kpi-val,.an-kpi-value,.an-card-title,.modal-header h2 { font-family:var(--font-serif) !important; }

/* SIDEBAR */
.sidebar { position:fixed; top:0; left:0; bottom:0; width:var(--sidebar-w); background:var(--purple-dark); display:flex; flex-direction:column; z-index:100; }
.sidebar-logo { display:flex; align-items:center; gap:10px; padding:28px 24px 24px; border-bottom:1px solid rgba(255,255,255,.08); }
.logo-icon { color:var(--accent2); font-size:20px; }
.logo-text { font-family:'Fraunces',serif; font-size:20px; font-weight:500; color:#fff; letter-spacing:-.3px; }
.logo-text em { font-style:italic; color:var(--accent2); font-weight:300; }
.sidebar-nav { flex:1; padding:20px 12px; display:flex; flex-direction:column; gap:4px; }
.nav-item { display:flex; align-items:center; gap:10px; padding:11px 14px; border-radius:var(--r-sm); border:none; background:transparent; color:rgba(255,255,255,.5); font-family:'DM Sans',sans-serif; font-size:14px; cursor:pointer; transition:all .2s; text-align:left; width:100%; }
.nav-item:hover { background:rgba(255,255,255,.06); color:#fff; }
.nav-item.active { background:var(--accent); color:#fff; font-weight:500; }
.nav-icon { font-size:15px; opacity:.8; }
.sidebar-footer { padding:16px; border-top:1px solid rgba(255,255,255,.08); }
.nutricionista-card { display:flex; align-items:center; gap:10px; }
.avatar { width:36px; height:36px; border-radius:50%; background:var(--accent); color:#fff; font-size:12px; font-weight:600; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.nut-name { color:#fff; font-size:13px; font-weight:500; }
.nut-role { color:rgba(255,255,255,.4); font-size:11px; }

/* MAIN */
.main { margin-left:var(--sidebar-w); min-height:100vh; padding:40px; }
.view { display:none; animation:fadeUp .3s ease; }
.view.active { display:block; }
@keyframes fadeUp { from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:translateY(0)} }

/* HEADERS */
.view-header { display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:28px; }
.view-header h1 { font-family:'Fraunces',serif; font-size:32px; font-weight:500; letter-spacing:-.5px; line-height:1.1; }
.subtitle { color:var(--ink2); font-size:13px; margin-top:4px; }
.section-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:24px; }
.section-header h2 { font-family:'Fraunces',serif; font-size:22px; font-weight:500; letter-spacing:-.3px; }

/* BUTTONS */
.btn-primary { background:var(--gradient-brand); color:var(--white); border:none; padding:10px 20px; border-radius:var(--r-sm); font-family:var(--font-sans); font-size:13px; font-weight:700; cursor:pointer; transition:filter .2s,transform .1s; white-space:nowrap; display:inline-block; text-decoration:none; }
.btn-primary:hover { filter:brightness(.93); }
.btn-primary:active { transform:scale(.97); }
.btn-secondary { background:var(--bg2); color:var(--ink); border:1px solid var(--border); padding:10px 20px; border-radius:var(--r-sm); font-family:'DM Sans',sans-serif; font-size:13px; font-weight:500; cursor:pointer; transition:background .2s; }
.btn-secondary:hover { background:var(--border); }
.btn-danger { background:var(--warn-lt); color:var(--warn); border:1px solid #f5c4ba; padding:6px 12px; border-radius:6px; font-size:12px; font-weight:500; cursor:pointer; font-family:'DM Sans',sans-serif; transition:background .2s; }
.btn-danger:hover { background:#fbd4cc; }
.btn-sm { padding:6px 14px !important; font-size:12px !important; }
.btn-ghost { background:transparent; border:1px solid var(--border); color:var(--ink2); padding:6px 12px; border-radius:6px; font-size:12px; cursor:pointer; font-family:'DM Sans',sans-serif; transition:all .2s; }
.btn-ghost:hover { background:var(--bg2); color:var(--ink); }

/* BADGES */
.badge { padding:3px 10px; border-radius:20px; font-size:11px; font-weight:600; }
.badge-objetivo { background:#fff0f7; color:var(--fucsia); border:1px solid var(--fucsia-light); }
.badge-plan     { background:var(--lavender); color:var(--purple); border:1px solid var(--border); }

/* SEARCH */
.search-bar { margin-bottom:24px; display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.search-bar input { width:100%; max-width:400px; padding:10px 16px; border:1px solid var(--border); border-radius:var(--r-sm); font-family:'DM Sans',sans-serif; font-size:14px; background:var(--surface); color:var(--ink); outline:none; transition:border .2s; }
.search-bar input:focus { border-color:var(--accent); }
.search-bar .archive-toggle { display:inline-flex; align-items:center; gap:7px; color:var(--ink2); font-size:13px; cursor:pointer; user-select:none; }
.search-bar .archive-toggle input { width:16px; height:16px; padding:0; accent-color:var(--accent); cursor:pointer; }

/* CARDS GRID */
.cards-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:16px; }

/* PACIENTE CARD */
.paciente-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--r); padding:20px; box-shadow:var(--shadow); transition:box-shadow .2s,transform .2s; }
.paciente-card:hover { box-shadow:var(--shadow-lg); transform:translateY(-2px); }
.paciente-card-top { display:flex; align-items:center; gap:14px; margin-bottom:14px; }
.paciente-avatar { width:44px; height:44px; border-radius:50%; background:var(--accent-lt); color:var(--accent); font-size:15px; font-weight:600; display:flex; align-items:center; justify-content:center; flex-shrink:0; font-family:'Fraunces',serif; }
.paciente-nombre { font-family:'Fraunces',serif; font-size:16px; font-weight:500; letter-spacing:-.2px; }
.paciente-email  { color:var(--ink2); font-size:12px; margin-top:1px; }
.paciente-badges { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:14px; }
.paciente-meta { display:flex; align-items:flex-start; justify-content:space-between; padding-top:12px; border-top:1px solid var(--border); gap:10px; flex-wrap:wrap; min-width:0; }
.paciente-meta span { color:var(--ink2); font-size:12px; }
.paciente-meta-actions { display:flex; gap:8px; align-items:center; flex-wrap:wrap; max-width:100%; }

/* PLAN CARD */
.plan-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--r); padding:20px; box-shadow:var(--shadow); transition:box-shadow .2s,transform .2s; }
.plan-card:hover { box-shadow:var(--shadow-lg); transform:translateY(-2px); }
.plan-card-header { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:12px; }
.plan-nombre   { font-family:'Fraunces',serif; font-size:16px; font-weight:500; letter-spacing:-.2px; }
.plan-paciente { color:var(--ink2); font-size:12px; margin-top:3px; }
.macros-bar    { display:flex; gap:8px; margin:14px 0; }
.macro         { flex:1; background:var(--bg); border-radius:8px; padding:10px 8px; text-align:center; }
.macro-valor   { font-family:'Fraunces',serif; font-size:18px; font-weight:500; }
.macro-label   { font-size:10px; color:var(--ink2); text-transform:uppercase; letter-spacing:.5px; }
.macro-p .macro-valor { color:var(--accent); }
.macro-c .macro-valor { color:var(--gold); }
.macro-g .macro-valor { color:var(--warn); }
.plan-footer   { display:flex; align-items:center; justify-content:space-between; padding-top:12px; border-top:1px solid var(--border); }
.plan-calorias { font-size:13px; font-weight:500; }
.plan-calorias span { color:var(--ink2); font-size:11px; font-weight:400; }

/* MENÚ CARD */
.menu-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--r); padding:20px; box-shadow:var(--shadow); transition:box-shadow .2s,transform .2s; }
.menu-card:hover { box-shadow:var(--shadow-lg); transform:translateY(-2px); }
.menu-card-header { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:10px; }
.menu-nombre { font-family:'Fraunces',serif; font-size:15px; font-weight:500; }
.menu-pac    { color:var(--ink2); font-size:12px; margin-top:2px; }
.menu-footer { display:flex; justify-content:space-between; align-items:center; padding-top:10px; border-top:1px solid var(--border); margin-top:10px; gap:8px; }

/* MENÚ BUILDER */
.menu-builder-wrap { display:flex; flex-direction:column; gap:12px; }
.menu-dia-block { background:var(--bg); border-radius:var(--r-sm); padding:14px 16px; }
.menu-dia-titulo { font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.6px; color:var(--accent); margin-bottom:12px; }
.menu-comidas-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.comida-field label { font-size:11px; color:var(--ink2); font-weight:500; display:block; margin-bottom:4px; }
.comida-field textarea { width:100%; padding:7px 10px; border:1px solid var(--border); border-radius:6px; font-family:'DM Sans',sans-serif; font-size:13px; background:var(--surface); resize:none; outline:none; min-height:52px; transition:border .2s; }
.comida-field textarea:focus { border-color:var(--accent); }
.menu-slot-toolbar{display:grid;grid-template-columns:1fr 150px auto;gap:10px;align-items:end;background:var(--lavender);border:1px solid var(--border);padding:14px;border-radius:var(--r);margin:14px 0}.menu-slot-toolbar label{display:block;font-size:11px;color:var(--text-mid);margin-bottom:4px}.menu-slot-toolbar input{width:100%;padding:9px;border:1px solid var(--border);border-radius:7px;background:var(--white)}.menu-slot-list{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:14px}.menu-slot-list>span{background:var(--white);border:1px solid var(--border);border-radius:20px;padding:6px 10px;color:var(--text-mid)}.menu-slot-list button{border:0;background:transparent;color:var(--fucsia);cursor:pointer;font-size:16px}.menu-calendar{overflow:auto;border:1px solid var(--border);border-radius:var(--r);background:var(--white);max-height:62vh}.menu-calendar-head,.menu-calendar-row{display:grid;grid-template-columns:90px repeat(5,minmax(180px,1fr));min-width:990px}.menu-calendar.is-month .menu-calendar-row:nth-child(8n+2){border-top:3px solid var(--fucsia-light)}.menu-calendar-head{position:sticky;top:0;z-index:2;background:var(--purple-dark);color:var(--white)}.menu-calendar-head>div{padding:10px;border-right:1px solid rgba(255,255,255,.15)}.menu-calendar-head small{display:block;color:var(--fucsia-light)}.menu-calendar-row{border-top:1px solid var(--border)}.menu-day-label{padding:12px;font-weight:700;color:var(--purple);background:var(--lavender);position:sticky;left:0;z-index:1}.menu-calendar-cell{padding:6px;border-left:1px solid var(--border)}.menu-cell-input{width:100%;border:0;background:var(--bg);border-radius:7px;padding:8px;color:var(--text-dark);resize:vertical;min-height:72px}.menu-cell-input:focus{outline:2px solid var(--fucsia-light);background:var(--white)}@media(max-width:700px){.menu-slot-toolbar{grid-template-columns:1fr}.menu-calendar{max-height:70vh}}

/* CALCULADORA */
.calc-tabs { display:flex; gap:4px; background:var(--surface); border:1px solid var(--border); border-radius:var(--r); padding:6px; margin-bottom:20px; width:fit-content; }
.calc-tab { padding:9px 18px; border-radius:var(--r-sm); border:none; background:transparent; font-family:'DM Sans',sans-serif; font-size:13px; font-weight:500; color:var(--ink2); cursor:pointer; transition:all .2s; white-space:nowrap; }
.calc-tab:hover { background:var(--bg); color:var(--ink); }
.calc-tab.active { background:var(--gradient-brand); color:var(--white); }
.calc-panel { display:none; }
.calc-panel.active { display:block; animation:fadeUp .25s ease; }
.calc-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.calc-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--r); padding:22px; box-shadow:var(--shadow); }
.calc-card-title { font-family:'Fraunces',serif; font-size:17px; font-weight:500; letter-spacing:-.2px; margin-bottom:18px; }
.calc-empty-msg { color:var(--ink2); font-size:13px; text-align:center; padding:30px 0; }
.calc-result-box { background:var(--accent-lt); border:1px solid var(--accent2); border-radius:var(--r-sm); padding:14px 16px; font-size:13px; line-height:1.8; }

/* GET Results */
.get-kpis { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:14px; }
.get-kpi { background:var(--bg); border-radius:10px; padding:14px; text-align:center; }
.get-kpi.accent { background:var(--accent-lt); border:1px solid var(--accent2); }
.get-kpi-val { font-family:'Fraunces',serif; font-size:28px; font-weight:500; line-height:1; }
.get-kpi.accent .get-kpi-val { color:var(--accent); }
.get-kpi-lbl { font-size:11px; color:var(--ink2); margin-top:4px; }
.macro-results { display:flex; gap:8px; margin:12px 0; }
.macro-result-box { flex:1; border-radius:8px; padding:10px; text-align:center; }
.macro-result-box.prot { background:var(--accent-lt); }
.macro-result-box.carb { background:var(--gold-lt); }
.macro-result-box.gras { background:var(--warn-lt); }
.macro-r-val { font-family:'Fraunces',serif; font-size:22px; font-weight:500; }
.macro-result-box.prot .macro-r-val { color:var(--accent); }
.macro-result-box.carb .macro-r-val { color:var(--gold); }
.macro-result-box.gras .macro-r-val { color:var(--warn); }
.macro-r-lbl { font-size:10px; color:var(--ink2); text-transform:uppercase; letter-spacing:.4px; }
.formula-nota { font-size:12px; color:var(--ink2); background:var(--gold-lt); border-radius:8px; padding:10px 12px; line-height:1.7; }

/* Micronutrientes tabla */
.micro-table { width:100%; border-collapse:collapse; font-size:12px; }
.micro-table th { background:var(--bg); padding:8px 12px; text-align:left; color:var(--ink2); font-weight:600; font-size:11px; text-transform:uppercase; letter-spacing:.4px; border-bottom:1px solid var(--border); }
.micro-table td { padding:9px 12px; border-bottom:1px solid var(--bg2); vertical-align:top; }
.micro-table tr:last-child td { border-bottom:none; }
.micro-table tr:hover td { background:var(--bg); }
.micro-destacado { background:var(--gold-lt) !important; font-weight:600; }

/* Alimentos */
.food-result-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:14px; }
.food-kpi { background:var(--bg); border-radius:8px; padding:10px 12px; }
.food-kpi-val { font-family:'Fraunces',serif; font-size:22px; font-weight:500; color:var(--accent); }
.food-kpi-lbl { font-size:11px; color:var(--ink2); }
.food-detail-table { width:100%; border-collapse:collapse; font-size:12px; }
.food-detail-table td { padding:6px 0; border-bottom:1px solid var(--bg2); }
.food-detail-table tr:last-child td { border-bottom:none; }
.food-detail-table td:first-child { color:var(--ink2); }
.food-detail-table td:last-child { font-weight:600; text-align:right; }

/* ANALYTICS */
.analytics-kpis { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:24px; }
.an-kpi { background:var(--surface); border:1px solid var(--border); border-radius:var(--r); padding:18px 20px; box-shadow:var(--shadow); }
.an-kpi-label { font-size:11px; text-transform:uppercase; letter-spacing:.7px; color:var(--ink2); margin-bottom:6px; }
.an-kpi-value { font-family:'Fraunces',serif; font-size:32px; font-weight:500; letter-spacing:-.5px; line-height:1; }
.an-kpi-sub   { font-size:12px; color:var(--ink2); margin-top:4px; }
.analytics-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:20px; }
.an-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--r); padding:22px; box-shadow:var(--shadow); }
.an-card-title { font-family:'Fraunces',serif; font-size:16px; font-weight:500; margin-bottom:16px; letter-spacing:-.2px; }
/* Bar chart */
.bar-chart { display:flex; flex-direction:column; gap:10px; }
.bar-row { display:flex; align-items:center; gap:10px; }
.bar-label { font-size:12px; color:var(--ink2); min-width:140px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.bar-track { flex:1; background:var(--bg); border-radius:20px; height:10px; overflow:hidden; }
.bar-fill  { height:100%; border-radius:20px; background:var(--accent); transition:width .6s ease; }
.bar-fill.gold   { background:var(--gold); }
.bar-fill.blue   { background:var(--blue); }
.bar-fill.warn   { background:var(--warn); }
.bar-fill.purple { background:var(--purple); }
.bar-fill.teal   { background:var(--teal); }
.bar-count { font-size:12px; font-weight:700; color:var(--ink); min-width:24px; text-align:right; }
/* Donut */
.donut-wrap { display:flex; align-items:center; gap:24px; flex-wrap:wrap; }
.donut-legend { display:flex; flex-direction:column; gap:8px; }
.legend-item { display:flex; align-items:center; gap:8px; font-size:12px; }
.legend-dot  { width:10px; height:10px; border-radius:50%; flex-shrink:0; }
/* Insights */
.insights-box { background:var(--gold-lt); border:1px solid #ecd9a8; border-radius:var(--r); padding:22px 26px; margin-top:4px; }
.insights-box h3 { font-family:'Fraunces',serif; font-size:17px; font-weight:500; color:var(--gold); margin-bottom:14px; }
.insight-item { display:flex; gap:10px; margin-bottom:10px; font-size:13px; line-height:1.6; }
.insight-item::before { content:'→'; color:var(--gold); font-weight:700; flex-shrink:0; padding-top:1px; }

/* EMPTY */
.empty-state { text-align:center; padding:60px 20px; color:var(--ink2); font-size:15px; }
.empty-state::before { content:'✦'; display:block; font-size:28px; margin-bottom:12px; color:var(--border); }

/* MODAL */
.modal-overlay { display:none; position:fixed; inset:0; background:rgba(26,22,16,.5); backdrop-filter:blur(4px); z-index:1000; align-items:center; justify-content:center; padding:20px; }
.modal-overlay.open { display:flex; }
.modal { background:var(--surface); border-radius:var(--r); width:100%; max-width:580px; max-height:90vh; overflow-y:auto; box-shadow:var(--shadow-lg); animation:modalIn .25s ease; }
.modal--wide { width:min(96vw,1400px);max-width:min(96vw,1400px); }
.modal--wide .modal-body{overflow-x:auto}.modal--wide .form-row>*{min-width:0}.modal--wide .menu-calendar,.modal--wide .portion-matrix{width:100%;max-width:100%}
@keyframes modalIn { from{opacity:0;transform:scale(.95) translateY(10px)} to{opacity:1;transform:scale(1) translateY(0)} }
.modal-header { display:flex; align-items:center; justify-content:space-between; padding:24px 28px 16px; border-bottom:1px solid var(--border); position:sticky; top:0; background:var(--surface); z-index:2; }
.modal-header h2 { font-family:'Fraunces',serif; font-size:20px; font-weight:500; letter-spacing:-.3px; }
.modal-close { background:none; border:none; font-size:18px; color:var(--ink2); cursor:pointer; padding:4px 8px; border-radius:6px; transition:background .15s; }
.modal-close:hover { background:var(--bg2); color:var(--ink); }
.modal-body   { padding:24px 28px; }
.modal-footer { display:flex; justify-content:flex-end; gap:10px; padding:16px 28px 24px; border-top:1px solid var(--border); position:sticky; bottom:0; background:var(--surface); }

/* FORMS */
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
.form-row.macros-row { grid-template-columns:1fr 1fr 1fr; }
.form-row.cols-3 { grid-template-columns:1fr 1fr 1fr; }
.form-row.cols-4 { grid-template-columns:1fr 1fr 1fr 1fr; }
.form-row.cols-5 { grid-template-columns:1fr 1fr 1fr 1fr 1fr; }
.form-group { display:flex; flex-direction:column; gap:6px; }
.form-group.full { grid-column:1/-1; }
.form-group label { font-size:12px; font-weight:600; color:var(--ink2); text-transform:uppercase; letter-spacing:.4px; }
.form-group input,.form-group select,.form-group textarea { padding:10px 13px; border:1px solid var(--border); border-radius:var(--r-sm); font-family:'DM Sans',sans-serif; font-size:14px; color:var(--ink); background:var(--bg); outline:none; transition:border .2s,background .2s; resize:vertical; }
.form-group input:focus,.form-group select:focus,.form-group textarea:focus { border-color:var(--accent); background:var(--surface); }

/* TOAST */
.toast { position:fixed; bottom:28px; right:28px; background:var(--ink); color:#fff; padding:12px 20px; border-radius:var(--r-sm); font-size:13px; font-weight:500; transform:translateY(80px); opacity:0; transition:all .3s ease; z-index:9999; pointer-events:none; box-shadow:var(--shadow-lg); }
.toast.show    { transform:translateY(0); opacity:1; }
.toast.success { background:var(--accent); }
.toast.error   { background:var(--warn); }

::-webkit-scrollbar { width:6px; height:6px; }
::-webkit-scrollbar-track { background:transparent; }
::-webkit-scrollbar-thumb { background:var(--border); border-radius:10px; }
.nav-external{text-decoration:none}
.recipe-ingredient-row{display:grid;grid-template-columns:2fr 1fr 1.5fr auto;gap:8px;margin-bottom:8px}.compliance-box{background:var(--bg);border:1px solid var(--border);border-radius:var(--r);padding:14px;margin:12px 0}.compliance-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:10px 0}.compliance-grid span{padding:8px;border-radius:7px;font-size:11px;background:var(--surface)}.compliance-grid span b{display:block}.compliance-grid .ok{border-left:3px solid var(--accent)}.compliance-grid .review{border-left:3px solid var(--warn)}
.inventory-tabs{display:flex;gap:8px;margin:18px 0}.inventory-panel{display:none}.inventory-panel.active{display:block}.food-inventory-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:18px;box-shadow:var(--shadow)}.nutrition-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin:14px 0}.nutrition-grid span{background:var(--bg);padding:8px 4px;border-radius:7px;text-align:center;font-size:10px}.nutrition-grid b{display:block;font-size:14px;color:var(--accent)}.food-meta{font-size:11px;color:var(--ink2);margin:8px 0}.card-actions,.plan-state-actions{display:flex;gap:8px;margin-top:12px}.price-table{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden}.price-table>div{display:grid;grid-template-columns:1fr auto 110px;gap:16px;align-items:center;padding:14px 18px;border-bottom:1px solid var(--border)}.price-table>div:last-child{border-bottom:0}.price-table small{display:block;color:var(--ink2)}.price-table time{font-size:11px;color:var(--ink2)}
.gastro-client{background:var(--white);border:1px solid var(--border);border-radius:18px;padding:22px;margin-bottom:20px;box-shadow:var(--shadow)}.gastro-client>header{display:flex;justify-content:space-between;gap:18px;align-items:center}.gastro-client h2{font-family:var(--font-serif);color:var(--purple-dark);margin:8px 0 2px}.gastro-client header p{margin:0;color:var(--text-mid)}.restaurant-card{margin-top:20px;padding-top:18px;border-top:1px solid var(--border)}.restaurant-categories{display:grid;gap:15px}.dish-category{border:1px solid var(--border);border-radius:14px;overflow:hidden;background:var(--bg)}.dish-category-head{display:flex;justify-content:space-between;align-items:center;padding:12px 15px;background:var(--lavender)}.dish-category-head h4{font-family:var(--font-serif);color:var(--purple-dark);margin:0}.dish-category-head button{border:0;background:var(--gradient-brand);color:#fff;border-radius:8px;padding:8px 11px;cursor:pointer}.dish-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(285px,1fr));gap:11px;padding:12px}.dish-card{background:var(--white);border:1px solid var(--border);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:11px}.dish-card h5{font:700 19px var(--font-serif);color:var(--purple-dark);margin:4px 0}.dish-card p{margin:0;color:var(--text-mid)}.dish-tags{font-size:10px;text-transform:uppercase;color:var(--fucsia);font-weight:800}.dish-nutrition{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}.dish-nutrition span{padding:6px 4px;text-align:center;background:var(--lavender);border-radius:7px;font-size:10px}.dish-nutrition b{display:block;color:var(--purple)}.dish-economics{display:grid;grid-template-columns:1fr 1fr;gap:5px;font-size:11px}.dish-economics span{padding:6px;background:var(--bg);border-radius:6px}.dish-economics .review{color:var(--fucsia)}.dish-economics .ok{color:var(--purple)}.dish-allergens{padding:8px!important;background:#fff0f7;border-radius:7px;font-size:11px}.cycle-explanation{margin-top:18px;padding:16px;background:var(--lavender);border-radius:11px;color:var(--purple-dark)}@media(max-width:700px){.gastro-client>header{align-items:flex-start;flex-direction:column}.dish-nutrition{grid-template-columns:repeat(3,1fr)}}
.gastro-directory{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px}.gastro-directory-card{text-align:left;padding:22px;border:1px solid var(--border);border-radius:16px;background:var(--white);color:var(--text-dark);box-shadow:var(--shadow);cursor:pointer;transition:.2s}.gastro-directory-card:hover{transform:translateY(-3px);border-color:var(--fucsia)}.gastro-directory-card h2{font:700 23px var(--font-serif);color:var(--purple-dark);margin:12px 0 5px}.gastro-directory-card p{color:var(--text-mid)}.gastro-directory-card strong{display:block;margin-top:18px;color:var(--fucsia)}.gastro-detail-toolbar{display:flex;align-items:center;gap:20px;margin-bottom:22px}.gastro-detail-toolbar h2{font:700 28px var(--font-serif);color:var(--purple-dark);margin:5px 0}.dish-card-full summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:12px;align-items:center}.dish-card-full summary::-webkit-details-marker{display:none}.dish-expand{color:var(--fucsia);font-size:11px}.dish-full-body{padding-top:14px;margin-top:12px;border-top:1px solid var(--border)}.dish-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:12px}.dish-facts span{padding:8px;background:var(--lavender);border-radius:7px}.dish-facts small,.dish-facts b{display:block}.dish-facts small{color:var(--text-light);font-size:10px}.dish-facts b{color:var(--purple-dark);font-size:12px;margin-top:3px}@media(max-width:700px){.gastro-detail-toolbar{align-items:flex-start;flex-direction:column}.dish-facts{grid-template-columns:1fr 1fr}}
.dish-sheet-modal{width:min(97vw,1500px)!important;max-width:min(97vw,1500px)!important}.dish-sheet-hero{display:flex;justify-content:space-between;gap:24px;padding:20px;border-radius:14px;background:var(--gradient-brand);color:#fff;margin-bottom:18px}.dish-sheet-hero h2{font:700 30px var(--font-serif);margin:8px 0}.dish-sheet-hero p{margin:0;color:rgba(255,255,255,.85)}.dish-sheet-hero>div:last-child{text-align:right}.dish-sheet-hero small,.dish-sheet-hero b{display:block}.dish-sheet-section{margin-top:22px}.dish-sheet-section h3{font-family:var(--font-serif);color:var(--purple-dark)}.dish-ingredient-table{overflow:auto;border:1px solid var(--border);border-radius:11px}.dish-ingredient-head,.dish-ingredient-table>div{display:grid;grid-template-columns:1.5fr repeat(5,minmax(125px,1fr));min-width:900px}.dish-ingredient-head{background:var(--purple-dark)!important;color:#fff;font-weight:700}.dish-ingredient-table>div>span{padding:10px;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.dish-economics-large{grid-template-columns:repeat(4,1fr);gap:8px}.dish-economics-large span{padding:11px;background:var(--lavender)}.calculation-note{margin-top:18px;padding:13px;border:1px solid var(--fucsia-light);background:var(--bg);border-radius:9px;color:var(--text-mid)}@media(max-width:800px){.dish-sheet-hero{flex-direction:column}.dish-sheet-hero>div:last-child{text-align:left}.dish-economics-large{grid-template-columns:1fr 1fr}}
.gastro-client-actions{display:flex;gap:8px;margin-left:auto;flex-wrap:wrap}
@media(max-width:700px){.gastro-client-actions{width:100%;margin-left:0}}
.price-crud{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
.price-table>div{grid-template-columns:minmax(180px,1fr) auto 110px auto}
@media(max-width:700px){.price-table>div{grid-template-columns:1fr 1fr}.price-crud{grid-column:1/-1;justify-content:flex-start}.paciente-meta,.paciente-meta-actions{width:100%}}
