@import url('https://fonts.googleapis.com/css2?family=Inter+Tight:wght@300..800&family=IBM+Plex+Mono:wght@400;500;600&display=swap');
@font-face{font-family:"CfNum";font-style:normal;font-weight:400;font-display:swap;src:local("IBM Plex Mono"),url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F63fjptAgt5VM-kVkqdyU8n1i8q131nj-o.woff2) format("woff2");unicode-range:U+0030-0039}
@font-face{font-family:"CfNum";font-style:normal;font-weight:500;font-display:swap;src:local("IBM Plex Mono"),url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3twJwlBFgsAXHNk.woff2) format("woff2");unicode-range:U+0030-0039}
@font-face{font-family:"CfNum";font-style:normal;font-weight:600;font-display:swap;src:local("IBM Plex Mono"),url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3vAOwlBFgsAXHNk.woff2) format("woff2");unicode-range:U+0030-0039}
@font-face{font-family:"CfNum";font-style:normal;font-weight:700 900;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3vAOwlBFgsAXHNk.woff2) format("woff2");unicode-range:U+0030-0039}
:root{
  color-scheme:light;
  --cf-page:#F3F2EF;--cf-card:#FBFAF8;--color-bg:#FBFAF8;--color-surface:#ECEDEA;--color-text:#141B22;--color-divider:#E2E1DC;
  --color-neutral-100:#F0EFEB;--color-neutral-200:#E6E7E4;--color-neutral-300:#D5D7D4;--color-neutral-400:#B3B9BC;--color-neutral-500:#8A9BA6;--color-neutral-600:#6B7A84;--color-neutral-700:#4E5B64;--color-neutral-800:#343F47;--color-neutral-900:#1F282F;
  --color-accent:#1D3A4C;--color-accent-100:#E4E9EC;--color-accent-200:#CBD4DA;--color-accent-300:#A5B4BE;--color-accent-400:#6E8494;--color-accent-500:#2C4C60;--color-accent-600:#18323F;--color-accent-700:#16303F;--color-accent-800:#122733;--color-accent-900:#0B171E;--cf-acc-hover:#142C39;
  --prot:#1D3A4C;--prot-bg:#E2E8EC;--prot-ink:#1D3A4C;
  --carb:#9DB0BC;--carb-bg:#EBEFF1;--carb-ink:#3F505B;
  --fat:#A8865A;--fat-bg:#F1EADF;--fat-ink:#6B522F;
  --veg:#7E9C86;--veg-bg:#E6EDE7;--veg-ink:#3D5A45;
  --lav:#8F89AD;--lav-bg:#ECEAF2;--lav-ink:#4E4870;
  --brass:#A8865A;--brass-ink:#7A5E38;--cf-nut:#1D3A4C;--cf-sym-ring:#141B22;--cf-sym-tick:#141B22;--cf-sym-dot:#1D3A4C;--cf-glass:rgba(255,255,255,.7);
  --danger:#9B2F1C;--danger-bg:#F6E6E1;--danger-bd:#E7C3B8;--danger-mid:#C4573F;
  --ok:#2F5E43;--ok-bg:#E3ECE5;--ok-bd:#C4D6C9;--ok-mid:#5E8F6E;
  --warn:#7A5A1E;--warn-bg:#F4ECDC;--warn-bd:#E3D2AE;--warn-mid:#B89350;
  --cf-on-ink:#fff;
  --radius-sm:6px;--radius-md:10px;--radius-lg:14px;
  --shadow-sm:0 1px 2px rgba(20,27,34,.05),0 4px 14px rgba(20,27,34,.04);
  --shadow-md:0 6px 22px rgba(20,27,34,.09);
  --shadow-lg:0 20px 50px rgba(20,27,34,.16);
  --font-heading:"CfNum","Inter Tight",system-ui,sans-serif;--font-body:"CfNum","Inter Tight",system-ui,sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,monospace;
  --cf-grid:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='M8 6.5v3M6.5 8h3' stroke='%23141B22' stroke-opacity='.11' stroke-width='1'/%3E%3C/svg%3E");
}
@media screen{:root[data-theme="dark"]{
  color-scheme:dark;
  --cf-page:#0E1317;--cf-card:#151C22;--color-bg:#151C22;--color-surface:#1A2229;--color-text:#E8E7E3;--color-divider:#26303A;
  --color-neutral-100:#1A2229;--color-neutral-200:#212A32;--color-neutral-300:#2C3640;--color-neutral-400:#44515C;--color-neutral-500:#66737D;--color-neutral-600:#8A9BA6;--color-neutral-700:#A9B5BD;--color-neutral-800:#C9D1D6;--color-neutral-900:#E1E5E8;
  --color-accent:#4A7A96;--color-accent-100:#1B2A34;--color-accent-200:#213645;--color-accent-300:#2C4A5E;--color-accent-400:#3C6680;--color-accent-500:#5A8AA6;--color-accent-600:#7AA3BB;--color-accent-700:#9DBCCE;--color-accent-800:#C0D5E1;--color-accent-900:#DDE8EF;--cf-acc-hover:#3C6680;
  --prot:#7FA2B7;--prot-bg:#1E2C36;--prot-ink:#A9C3D2;
  --carb:#B5C3CC;--carb-bg:#232B31;--carb-ink:#C9D3D9;
  --fat:#C2A276;--fat-bg:#2D271F;--fat-ink:#D9BE96;
  --veg:#93B39C;--veg-bg:#1F2B23;--veg-ink:#B4CDBB;
  --lav:#A7A1C6;--lav-bg:#26243A;--lav-ink:#C5C0DE;
  --brass:#B8956A;--brass-ink:#D2B48A;--cf-nut:#8A9BA6;--cf-sym-ring:#F3F2EF;--cf-sym-tick:#8A9BA6;--cf-sym-dot:#A8865A;--cf-glass:rgba(255,255,255,.08);
  --danger:#F0A493;--danger-bg:#3A211B;--danger-bd:#5A3329;--danger-mid:#D9715A;
  --ok:#9CCBAA;--ok-bg:#1C2D22;--ok-bd:#2E4636;--ok-mid:#6FA884;
  --warn:#E3C58E;--warn-bg:#33291A;--warn-bd:#4D3E24;--warn-mid:#C9A45E;
  --cf-on-ink:#10161B;
  --shadow-sm:0 1px 2px rgba(0,0,0,.3);--shadow-md:0 6px 22px rgba(0,0,0,.4);--shadow-lg:0 20px 50px rgba(0,0,0,.55);
  --cf-grid:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='M8 6.5v3M6.5 8h3' stroke='%23F3F2EF' stroke-opacity='.05' stroke-width='1'/%3E%3C/svg%3E");
}
:root[data-theme="dark"] img{color-scheme:light}
/* Tarjetas oscuras (competición): conservan la paleta clara dentro */
:root[data-theme="dark"] [data-cf-inv]{--cf-page:#F3F2EF;--cf-card:#FBFAF8;--color-bg:#FBFAF8;--color-surface:#ECEDEA;--color-text:#141B22;--color-divider:#E2E1DC;--color-neutral-100:#F0EFEB;--color-neutral-200:#E6E7E4;--color-neutral-300:#D5D7D4;--color-neutral-400:#B3B9BC;--color-neutral-500:#8A9BA6;--color-neutral-600:#6B7A84;--color-neutral-700:#4E5B64;--color-neutral-800:#343F47;--color-neutral-900:#1F282F;--color-accent-100:#E4E9EC;--color-accent-200:#CBD4DA;--color-accent-300:#A5B4BE;--color-accent-400:#6E8494;--color-accent-500:#2C4C60;--color-accent-600:#18323F;--color-accent-700:#16303F;--color-accent-800:#122733;--color-accent-900:#0B171E;--prot:#1D3A4C;--prot-bg:#E2E8EC;--prot-ink:#1D3A4C;--carb:#9DB0BC;--carb-bg:#EBEFF1;--carb-ink:#3F505B;--fat:#A8865A;--fat-bg:#F1EADF;--fat-ink:#6B522F;--veg:#7E9C86;--veg-bg:#E6EDE7;--veg-ink:#3D5A45;--lav:#8F89AD;--lav-bg:#ECEAF2;--lav-ink:#4E4870;--brass:#A8865A;--brass-ink:#7A5E38;--danger:#9B2F1C;--danger-bg:#F6E6E1;--danger-bd:#E7C3B8;--danger-mid:#C4573F;--ok:#2F5E43;--ok-bg:#E3ECE5;--ok-bd:#C4D6C9;--ok-mid:#5E8F6E;--warn:#7A5A1E;--warn-bg:#F4ECDC;--warn-bd:#E3D2AE;--warn-mid:#B89350;--cf-on-ink:#fff;outline:1px solid #2C3640;outline-offset:-1px}
:root[data-theme="dark"] .input,:root[data-theme="dark"] input,:root[data-theme="dark"] select,:root[data-theme="dark"] textarea{color:var(--color-text)}
}
*{box-sizing:border-box}
::selection{background:var(--color-accent-200)}
input[type=range]{-webkit-appearance:none;appearance:none;height:6px;border-radius:999px;background:var(--color-neutral-200);outline:none;cursor:pointer;margin:6px 0}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--cf-card);border:3px solid currentColor;box-shadow:0 2px 6px rgba(20,50,80,.2);transition:transform .12s}
input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.15)}
input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--cf-card);border:3px solid currentColor;box-shadow:0 2px 6px rgba(20,50,80,.2)}
input[type=range]::-moz-range-progress{background:currentColor;height:6px;border-radius:999px}
[draggable=true]:active{cursor:grabbing}
::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--color-neutral-300);border-radius:999px;border:2px solid transparent;background-clip:padding-box}
body{margin:0;font-family:var(--font-body);font-size:15px;line-height:1.55;color:var(--color-text);background:var(--cf-grid),var(--cf-page);background-attachment:fixed;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--font-heading);font-weight:600;line-height:1.15;letter-spacing:-0.02em;margin:0 0 8px}
h1{font-size:34px}h2{font-size:28px}h3{font-size:22px}
button,input,select,textarea{font-family:inherit}
.btn{white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;font-weight:700;font-size:14px;line-height:1.2;color:var(--color-text);background:transparent;border:1px solid transparent;padding:8px 14px;border-radius:12px;transition:background .15s,box-shadow .15s}
.btn svg{display:block}
.btn-primary{background:var(--color-accent);color:#fff;box-shadow:none}
.btn-primary:hover{background:var(--cf-acc-hover)}
.btn:active{transform:translateY(1px)}
.btn-secondary{background:var(--cf-card);border-color:var(--color-divider)}
.btn-secondary:hover{background:var(--color-neutral-100)}
.btn-ghost{color:var(--color-accent-700);padding-inline:8px}
.btn-ghost:hover{background:var(--color-accent-100)}
.btn-icon{width:36px;height:36px;padding:0}
.input{width:100%;min-height:38px;padding:7px 12px;font:inherit;font-size:14px;color:var(--color-text);caret-color:var(--color-accent);background:var(--cf-card);border:1.5px solid var(--color-divider);border-radius:12px;transition:border-color .15s,background .15s}
.input:hover{border-color:var(--color-neutral-400)}
.input:focus,.input:focus-visible{outline:none;background:var(--cf-card);border-color:var(--color-accent-300);box-shadow:0 0 0 3px var(--color-accent-100)}
textarea.input{min-height:90px;resize:vertical}
.tag{display:inline-flex;align-items:center;font-size:12px;font-weight:700;padding:3px 10px;border-radius:999px}
.tag-accent{background:var(--color-accent-100);color:var(--color-accent-800)}
.tag-danger{background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger-bd)}
.table{width:100%;border-collapse:collapse;font-size:14px}
.table th{text-align:left;font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--color-neutral-600);padding:10px 8px;border-bottom:1px solid var(--color-divider)}
.table td{padding:9px 8px;border-bottom:1px solid var(--color-neutral-200)}
.table tbody tr:last-child td{border-bottom:0}
.table tbody tr:hover{background:var(--color-neutral-100)}

/* ---------- App shell ---------- */
.cf-shell{min-height:100vh;display:flex;flex-direction:column}
.cf-main{flex:1;min-width:0;display:flex;flex-direction:column}
.cf-side{display:flex;align-items:center;gap:10px 16px;padding:10px 16px;background:color-mix(in srgb,var(--cf-card) 90%,transparent);-webkit-backdrop-filter:saturate(1.5) blur(14px);backdrop-filter:saturate(1.5) blur(14px);border-bottom:1px solid var(--color-divider);flex-wrap:wrap;position:relative;z-index:30}
.cf-brand{display:flex;align-items:center;gap:10px;margin-right:auto}
.cf-nav{display:flex;gap:4px;align-items:center}
.cf-nav-label{display:none;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--color-neutral-500);padding:0 12px 6px}
.cf-nav-btn{font:inherit;font-size:14px;font-weight:600;display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:12px;border:0;background:transparent;color:var(--color-neutral-700);cursor:pointer;text-align:left;transition:background .15s,color .15s}
.cf-nav-btn:hover{background:var(--color-neutral-100);color:var(--color-text)}
.cf-nav-btn[data-on="1"]{background:var(--color-accent-100);color:var(--color-accent-800)}
.cf-nav-count{margin-left:auto;font-size:11px;font-weight:700;padding:1px 8px;border-radius:999px;background:color-mix(in srgb,var(--color-accent) 12%,transparent);color:var(--color-accent-800);font-variant-numeric:tabular-nums}
.cf-side-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
@media (max-width:1079.98px){
  .cf-nav{order:3;width:100%;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:2px}
  .cf-nav-btn{position:relative;flex-direction:column;gap:3px;padding:7px 2px;font-size:12px;line-height:1.15;justify-content:center;text-align:center}
  .cf-nav-btn>span:not(.cf-nav-count){max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .cf-nav-count{position:absolute;top:1px;left:calc(50% + 6px);margin:0;font-size:10px;padding:0 6px}
}
@media (min-width:1080px){
  .cf-shell{flex-direction:row}
  .cf-side{position:sticky;top:0;height:100vh;width:244px;flex:none;flex-direction:column;align-items:stretch;flex-wrap:nowrap;padding:24px 16px 18px;gap:26px;border-bottom:0;border-right:1px solid var(--color-divider);background:color-mix(in srgb,var(--cf-card) 72%,transparent)}
  .cf-brand{margin-right:0;padding:0 6px}
  .cf-nav{flex-direction:column;align-items:stretch}
  .cf-nav-label{display:block}
  .cf-side-foot{margin-top:auto;flex-direction:column;flex-wrap:nowrap;flex-shrink:0;align-items:stretch;padding-top:16px;border-top:1px solid var(--color-divider)}
  .cf-side{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
  .cf-side>*{flex-shrink:0}
}
/* Menú lateral contraíble (solo escritorio) */
.cf-side-tog{display:none!important}
@media (min-width:1080px){
  .cf-side{transition:width .2s ease,padding .2s ease}
  .cf-side-tog{display:flex!important}
  .cf-side[data-mini="1"] .cf-side-tog svg{transform:scaleX(-1)}
  .cf-side[data-mini="1"]{width:76px;padding:20px 10px 16px;gap:20px;overflow:hidden}
  .cf-side[data-mini="1"] .cf-brand{justify-content:center;padding:0}
  .cf-side[data-mini="1"] .cf-brand>div{display:none!important}
  .cf-side[data-mini="1"] .cf-brand img{height:38px!important}
  .cf-side[data-mini="1"] .cf-nav-label{display:none}
  .cf-side[data-mini="1"] .cf-nav-btn{position:relative;justify-content:center;padding:11px 0}
  .cf-side[data-mini="1"] .cf-nav-btn>span:not(.cf-nav-count){display:none}
  .cf-side[data-mini="1"] .cf-nav-count{position:absolute;top:3px;right:5px;margin:0;font-size:10px;padding:0 5px;background:var(--color-accent);color:#fff}
  .cf-side[data-mini="1"] .cf-side-foot>span{font-size:0!important;justify-content:center;padding:4px 0!important}
  .cf-side[data-mini="1"] .cf-side-foot button:not(.cf-nav-btn){font-size:0!important;gap:0!important;padding:10px!important}
}
/* ---------- Form controls: no native look ---------- */
.input::placeholder{color:var(--color-neutral-500);opacity:1}
select.input{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:38px !important;text-overflow:ellipsis;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23536273' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 13px center;background-size:14px}
select.input::-ms-expand{display:none}
input[type=number]{-moz-appearance:textfield;appearance:textfield}
input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
input[type=date].input{min-height:38px;color:var(--color-text)}
input[type=date]::-webkit-calendar-picker-indicator{opacity:.55;cursor:pointer;border-radius:6px;padding:2px}
input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1;background:var(--color-accent-100)}
input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}
textarea.input{line-height:1.55;padding:11px 13px;resize:vertical}
.input:-webkit-autofill,.input:-webkit-autofill:hover,.input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 40px #fff inset;-webkit-text-fill-color:var(--color-text);transition:background-color 9999s}
.cf-search{padding-left:38px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238c9cad' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:13px center;background-size:16px}
button{-webkit-tap-highlight-color:transparent}
button:focus-visible,.cf-nav-btn:focus-visible{outline:2px solid var(--color-accent-300);outline-offset:2px}
/* ---------- Motion ---------- */
.cf-fade{animation:cfIn .32s cubic-bezier(.2,.7,.2,1) backwards}
[data-cf-boot]>svg{animation:cfBootIn .6s cubic-bezier(.2,.8,.2,1) backwards}
[data-cf-boot]>svg+span{animation:cfIn .6s .12s cubic-bezier(.2,.8,.2,1) backwards}
@keyframes cfBootIn{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}
html[data-cf-gs] main.cf-fade,html[data-cf-gs] [data-cf-stage]>.cf-fade{animation:none}
html[data-cf-anim=off] .cf-fade,html[data-cf-anim=off] .cf-pop,html[data-cf-anim=off] [data-cf-boot]>*{animation:none}
.cf-pop{animation:cfPop .24s cubic-bezier(.2,.7,.2,1) backwards}
.cf-toast{animation:cfToast .3s cubic-bezier(.2,.7,.2,1) both}
.cf-lift{transition:transform .2s cubic-bezier(.2,.7,.2,1),box-shadow .2s}
.cf-lift:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
@keyframes cfIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes cfPop{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
@keyframes cfToast{from{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%,0)}}
@media (prefers-reduced-motion:reduce){.cf-fade,.cf-pop,.cf-toast{animation:none}.cf-lift:hover{transform:none}}

/* Sticky side panels only when there is room side by side */
.cf-stick{position:relative}
/* Panel lateral: fijo en cuanto cabe al lado del contenido (según el ancho real del área, no de la ventana) */
*:has(> .cf-stick){container:cfsplit/inline-size}
@container cfsplit (min-width:880px){.cf-stick{position:sticky;top:16px;align-self:flex-start;max-height:calc(100vh - 32px);overflow-y:auto}}
@container cfsplit (max-width:879.98px){.cf-stick{flex-basis:100%!important}}
@media (min-width:1260px){.cf-stick{position:sticky;top:16px;align-self:flex-start;max-height:calc(100vh - 32px);overflow-y:auto}}

@media (min-width:1260px){.cf-hud{display:none!important}}

/* Agenda: en móvil las citas del mes se ven como puntos */
.cf-cal-cell:hover{background:var(--color-neutral-100)!important}
.cf-sticky-head th{position:sticky;top:0;background:var(--cf-card);z-index:1}
.cf-cal-main{container-type:inline-size;container-name:calm}
@container calm (max-width:560px){.cf-cal-lbl{display:none!important}.cf-cal-pill{justify-content:center;padding:4px 0!important}.cf-cal-cell{min-height:70px!important;padding:3px!important}}
@container calp (max-width:760px){.cf-cal-layout{grid-template-columns:minmax(0,1fr)!important}}
@container calm (max-width:640px){.cf-cal-hint{display:none}}
select.input[data-open="1"]{border-color:var(--color-accent-300);box-shadow:0 0 0 3px var(--color-accent-100)}

/* Barras deslizables: grupos de botones en una sola fila (deslizar, rueda o arrastrar) */
.cf-rail{display:flex;flex-wrap:nowrap!important;overflow-x:auto;overflow-y:hidden;max-width:100%;scrollbar-width:none;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scroll-padding-inline:28px}
.cf-rail::-webkit-scrollbar{display:none}
.cf-rail>*{flex:none!important;white-space:nowrap}
.cf-rail[data-ov="r"]{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 44px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 44px),transparent)}
.cf-rail[data-ov="l"]{-webkit-mask-image:linear-gradient(90deg,transparent,#000 44px);mask-image:linear-gradient(90deg,transparent,#000 44px)}
.cf-rail[data-ov="lr"]{-webkit-mask-image:linear-gradient(90deg,transparent,#000 44px,#000 calc(100% - 44px),transparent);mask-image:linear-gradient(90deg,transparent,#000 44px,#000 calc(100% - 44px),transparent)}
.cf-rail.cf-dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}
/* Campos de la ventana de medición: color por grupo */
.cf-mf::placeholder{color:var(--color-neutral-400);font-weight:600}
.cf-mf:focus{outline:none;background:var(--cf-card)!important}
.cf-mf[data-g="bas"]:focus{border-color:var(--color-accent)!important;box-shadow:0 0 0 4px var(--color-accent-100)}
.cf-mf[data-g="pl"]:focus{border-color:var(--lav)!important;box-shadow:0 0 0 4px var(--fat-bg)}
.cf-mf[data-g="per"]:focus{border-color:var(--ok-mid)!important;box-shadow:0 0 0 4px var(--veg-bg)}
.cf-mf[data-g="dia"]:focus{border-color:var(--warn-mid)!important;box-shadow:0 0 0 4px var(--carb-bg)}
/* Informe de progreso: al imprimir solo sale la hoja */
@media print{[data-fold-body]{display:flex!important}
  body.cf-rep-on{background:var(--cf-card)!important}
  body.cf-rep-on>*:not(.cf-rep){display:none!important}
  body.cf-rep-on .cf-rep{position:static!important;display:block!important;background:var(--cf-card)!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  body.cf-rep-on .cf-rep-bar,body.cf-rep-on .cf-rep-np{display:none!important}
  body.cf-rep-on .cf-rep-po{display:block!important}
  body.cf-rep-on .cf-rep-scroll{overflow:visible!important;padding:0!important;background:var(--cf-card)!important}
  body.cf-rep-on .cf-rep-sheet{width:auto!important;box-shadow:none!important;border-radius:0!important;padding:0!important;margin:0!important}
  .cf-rep-avoid{break-inside:avoid}
}

/* Plan de comidas · vista en fila (opciones con desplazamiento lateral) */
.cf-opts[data-lat="1"]{flex-direction:row!important;align-items:flex-start;overflow-x:auto;scroll-snap-type:x proximity;gap:12px!important;padding:2px 2px 10px;scrollbar-width:thin}
.cf-opts[data-lat="1"]>.cf-opt{flex:0 0 min(360px,88%);scroll-snap-align:start;background:var(--cf-card);border:1px solid var(--color-divider);border-radius:12px;padding:10px;box-sizing:border-box;min-width:0}
.cf-opts[data-lat="1"] .cf-opt-grid{grid-template-columns:minmax(0,1fr)!important;gap:6px!important}
.cf-opts[data-lat="1"] .cf-col{min-height:0!important;padding:8px 10px!important;gap:4px!important;border-radius:14px!important}
.cf-opts[data-lat="1"] .cf-food{padding:4px 6px 4px 2px!important;border-radius:12px!important;gap:4px!important;box-shadow:none!important}
.cf-opts[data-lat="1"] .cf-meta{display:none}
.cf-opts[data-lat="1"] .cf-food input{min-height:24px!important}
.cf-opts[data-lat="1"]>.cf-opt-add{flex:0 0 auto;flex-direction:column;align-self:stretch}
.cf-opts[data-lat="1"][data-kind="closed"]>.cf-opt{flex-basis:min(440px,90%);border:1px solid var(--color-divider)}
.cf-opts[data-lat="1"][data-kind="closed"] .cf-food{max-width:100%}

/* ===== Estilo minimalista suave (Bloque 4). Para volver al anterior, borra este bloque. ===== */
:root{--shadow-sm:0 0 0 1px rgba(20,50,80,.06);--shadow-md:0 0 0 1px rgba(20,50,80,.06),0 8px 24px rgba(20,50,80,.06);--shadow-lg:0 0 0 1px rgba(20,50,80,.05),0 20px 50px rgba(20,50,80,.14);--color-divider:var(--color-neutral-200);--color-surface:var(--color-neutral-100)}
body{background:var(--color-neutral-100);line-height:1.6}
.btn-primary{background:var(--color-accent);box-shadow:none}
.btn-primary:hover{background:var(--cf-acc-hover)}
.btn-secondary{border-color:var(--color-neutral-200)}
.btn-secondary:hover{background:var(--color-neutral-100)}
.input{border-width:1px}
.cf-lift:hover{transform:none;box-shadow:0 0 0 1px color-mix(in srgb,var(--color-accent) 28%,transparent)}
.cf-nav-btn[data-on="1"]{font-weight:700}

/* Calibrado · cifras en mono y detalles */
.cf-num,[data-num]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
:root[data-theme="dark"] ::-webkit-scrollbar-thumb{background:#2C3640}
@media print{body{background:#fff!important}}
@keyframes cfSpin{to{transform:rotate(360deg)}}
.cf-spin{transform-box:view-box;transform-origin:50px 50px;animation:cfSpin 2.4s linear infinite}
@media (prefers-reduced-motion:reduce){.cf-spin{animation-duration:8s}}

html[data-cf-fs="lg"] [data-cf-stage]{zoom:1.15}
.cf-skel{background:linear-gradient(90deg,var(--color-neutral-200) 25%,var(--color-neutral-100) 50%,var(--color-neutral-200) 75%);background-size:200% 100%;animation:cfSk 1.3s ease-in-out infinite}
@keyframes cfSk{from{background-position:100% 0}to{background-position:-100% 0}}
@media (prefers-reduced-motion:reduce){.cf-skel{animation:none}}
@container cfsplit (min-width:880px){.cf-sumbar{display:none!important}}
@media print{.cf-plbar{position:static!important;background:none!important}}
[data-fold-h]{cursor:pointer;-webkit-user-select:none;user-select:none}
[data-fold-h]::after{content:"";flex:none;align-self:center;width:8px;height:8px;margin-left:8px;border-right:2.4px solid var(--color-neutral-500);border-bottom:2.4px solid var(--color-neutral-500);transform:translateY(-2px) rotate(45deg);transition:transform .2s;display:inline-block}
[data-fold][data-folded="1"]>[data-fold-h]::after{transform:rotate(-45deg)}
[data-fold-h]:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px;border-radius:6px}
@media screen{[data-fold][data-folded="1"]>:not([data-fold-h]){display:none!important}}
@media (max-width:1279.98px){main{padding-left:max(16px,min(28px,2.2vw))!important;padding-right:max(16px,min(28px,2.2vw))!important}}
.cf-stick>*{flex-shrink:0}
