:root{
  --bg:#f3f7fb;
  --bg2:#eaf3f8;
  --fg:#07111f;
  --muted:#667085;
  --card:#ffffff;
  --card2:#f8fafc;
  --line:#dbe7ef;
  --primary:#19c37d;
  --primary2:#8bdc2f;
  --accent:#17a2ff;
  --orange:#ff8a34;
  --danger:#ef4444;
  --shadow:0 24px 70px rgba(15,23,42,.12);
  --radius:24px;
}
body.dark{
  --bg:#06111d;
  --bg2:#0b1828;
  --fg:#f8fafc;
  --muted:#a0aec0;
  --card:#0e1b2b;
  --card2:#12243a;
  --line:#21344d;
  --shadow:0 24px 90px rgba(0,0,0,.45);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif;
  color:var(--fg);
  background:
    radial-gradient(circle at 0% 0%, rgba(25,195,125,.18), transparent 28%),
    radial-gradient(circle at 90% 10%, rgba(23,162,255,.16), transparent 30%),
    linear-gradient(145deg,var(--bg),var(--bg2));
  min-height:100vh;
}
a{color:var(--accent);text-decoration:none}
.app-shell{display:grid;grid-template-columns:292px 1fr;min-height:100vh}
.sidebar{
  position:sticky;top:0;height:100vh;padding:24px;
  border-right:1px solid var(--line);
  background:linear-gradient(180deg,rgba(255,255,255,.78),rgba(255,255,255,.48));
  backdrop-filter:blur(20px);
}
body.dark .sidebar{background:linear-gradient(180deg,rgba(14,27,43,.86),rgba(11,24,40,.66))}
.side-brand{display:flex;align-items:center;gap:12px;color:var(--fg);margin-bottom:30px}
.brand-mark{
  display:grid;place-items:center;width:46px;height:46px;border-radius:16px;
  background:linear-gradient(135deg,var(--primary),var(--accent));
  color:#02130c;font-weight:900;box-shadow:0 14px 30px rgba(25,195,125,.28)
}
.side-brand strong{display:block;font-size:1.02rem;letter-spacing:-.03em}
.side-brand small{display:block;color:var(--muted);font-weight:700;margin-top:2px}
.side-nav{display:flex;flex-direction:column;gap:8px}
.side-nav a{
  display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:16px;
  color:var(--fg);font-weight:800;transition:.18s ease;border:1px solid transparent
}
.side-nav a:hover{background:var(--card);border-color:var(--line);transform:translateX(3px);box-shadow:0 10px 30px rgba(15,23,42,.08)}
.nav-section{margin:18px 12px 6px;color:var(--muted);font-size:.75rem;font-weight:900;text-transform:uppercase;letter-spacing:.12em}
.side-card{
  position:absolute;left:24px;right:24px;bottom:24px;padding:18px;border-radius:22px;
  background:linear-gradient(135deg,rgba(25,195,125,.16),rgba(23,162,255,.16));
  border:1px solid var(--line)
}
.side-card strong{display:block;margin:8px 0 4px}
.side-card p{margin:0;color:var(--muted);font-size:.88rem;line-height:1.45}
.ai-pill,.badge{
  display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:7px 10px;
  background:rgba(25,195,125,.14);color:var(--primary);font-weight:900;font-size:.76rem;border:1px solid rgba(25,195,125,.25)
}
.main-panel{min-width:0}
.topbar,.public-topbar{
  position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;
  padding:18px 34px;border-bottom:1px solid var(--line);
  background:color-mix(in srgb,var(--bg),transparent 10%);backdrop-filter:blur(20px)
}
.topbar strong{display:block;font-size:1.05rem}
.eyebrow{display:block;color:var(--muted);font-size:.74rem;font-weight:900;text-transform:uppercase;letter-spacing:.13em;margin-bottom:3px}
.top-actions,.public-topbar nav{display:flex;align-items:center;gap:12px}
.user-chip{padding:10px 14px;border-radius:999px;background:var(--card);border:1px solid var(--line);font-weight:800}
.logout{font-weight:900;color:var(--danger)}
.icon-btn{
  display:grid;place-items:center;width:42px;height:42px;border-radius:15px;border:1px solid var(--line);
  background:var(--card);cursor:pointer;box-shadow:0 8px 22px rgba(15,23,42,.07)
}
.mobile-only{display:none}
.mobile-bottom-nav{display:none}
.container{max-width:1260px;margin:0 auto;padding:36px 34px 70px}
.public-container{max-width:1180px}
.page-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-end;margin-bottom:22px}
.page-head h1,h1{font-size:clamp(2rem,3vw,3.2rem);letter-spacing:-.065em;line-height:1;margin:0 0 10px}
.page-head p,.muted{color:var(--muted)}
.hero{
  display:grid;grid-template-columns:1.2fr .8fr;gap:24px;align-items:center;min-height:68vh
}
.hero-panel{
  padding:42px;border-radius:34px;background:linear-gradient(135deg,var(--card),color-mix(in srgb,var(--card),var(--primary) 5%));
  border:1px solid var(--line);box-shadow:var(--shadow);position:relative;overflow:hidden
}
.hero-panel:after{content:"";position:absolute;right:-90px;top:-90px;width:230px;height:230px;border-radius:50%;background:rgba(25,195,125,.18)}
.hero h1{font-size:clamp(2.7rem,6vw,5.6rem)}
.hero p{font-size:1.16rem;color:var(--muted);line-height:1.65;max-width:680px}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
.card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:24px;box-shadow:var(--shadow)
}
.card.compact{padding:18px}
.sport-card{position:relative;overflow:hidden}
.sport-card:before{
  content:"";position:absolute;inset:0 0 auto;height:5px;
  background:linear-gradient(90deg,var(--primary),var(--accent),var(--primary2))
}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}
.grid{display:flex;flex-wrap:wrap;gap:12px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.grid4{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px}
.btn,button.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:44px;padding:12px 18px;border:0;border-radius:15px;
  background:linear-gradient(135deg,var(--primary),var(--primary2));
  color:#04130a;font-weight:900;cursor:pointer;box-shadow:0 12px 28px rgba(25,195,125,.26)
}
.btn.secondary{background:linear-gradient(135deg,var(--accent),#7dd3fc);color:#031321}
.btn.danger{background:linear-gradient(135deg,#ef4444,#fb7185);color:white}
.btn-soft,.ghost{
  background:var(--card);color:var(--fg);border:1px solid var(--line);box-shadow:none
}
input,textarea,select{
  width:100%;padding:13px 14px;border:1px solid var(--line);background:var(--card2);color:var(--fg);
  border-radius:15px;margin:7px 0 16px;font:inherit;outline:none;transition:.15s ease
}
input:focus,textarea:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 4px rgba(25,195,125,.12)}
textarea{min-height:140px;resize:vertical}
label{display:block;font-weight:900;margin-top:4px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:8px}
.filters,.filters-wide,.filters-admin{
  display:grid;gap:12px;align-items:end;background:var(--card);border:1px solid var(--line);
  padding:18px;border-radius:22px;box-shadow:0 12px 35px rgba(15,23,42,.06);margin-bottom:20px
}
.filters{grid-template-columns:1fr 220px auto}
.filters-wide{grid-template-columns:1fr 220px 220px auto}
.filters-admin{grid-template-columns:1fr 220px 160px 220px auto}
table{width:100%;border-collapse:separate;border-spacing:0;background:var(--card);border:1px solid var(--line);border-radius:22px;overflow:hidden}
th,td{padding:15px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
th{font-size:.76rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);background:color-mix(in srgb,var(--primary),transparent 90%)}
tr:hover td{background:color-mix(in srgb,var(--primary),transparent 96%)}
tr:last-child td{border-bottom:0}
.alert{padding:14px 16px;border-radius:16px;margin:12px 0;font-weight:700}
.err{background:#fee2e2;color:#7f1d1d}
.ok{background:#dcfce7;color:#14532d}
body.dark .ok{background:rgba(34,197,94,.16);color:#86efac}
body.dark .err{background:rgba(239,68,68,.16);color:#fca5a5}
.pre{white-space:pre-wrap;line-height:1.65}
.pill,.tag{
  display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:999px;
  padding:9px 12px;background:var(--card);color:var(--fg);font-weight:800
}
.pill.active{background:var(--primary);color:#052e16;border-color:var(--primary)}
.category-strip{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 24px}
.stat span{color:var(--muted);font-weight:900;font-size:.78rem;text-transform:uppercase;letter-spacing:.1em}
.stat b{display:block;font-size:2.15rem;margin-top:8px;letter-spacing:-.06em}
.auth{max-width:500px;margin:52px auto}
.code-input{font-size:2rem;text-align:center;letter-spacing:.32em;font-weight:900}
.inline-form{display:inline}
.link-button{background:none;border:0;color:var(--accent);cursor:pointer;padding:0;font:inherit;font-weight:800;text-decoration:none}
.link-button.danger{color:var(--danger)}
.admin-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.tag-selector{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0 16px}
.tag-check{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:999px;padding:10px 12px;background:var(--card2);font-weight:800}
.tag-check input{width:auto;margin:0}
.recipe-card h2{font-size:1.22rem;letter-spacing:-.03em}
.kcal{font-size:2rem;font-weight:900;letter-spacing:-.06em}
.public-topbar{padding-left:6%;padding-right:6%}
@media(max-width:1100px){
  .app-shell{grid-template-columns:1fr}
  .mobile-only{display:inline-grid}
  .sidebar{
    position:fixed;left:0;top:0;bottom:0;width:min(86vw,320px);height:100vh;z-index:50;
    border-right:1px solid var(--line);border-bottom:0;transform:translateX(-102%);
    transition:transform .22s ease;
    padding:14px;
  }
  body.sidebar-open .sidebar{transform:translateX(0)}
  body.sidebar-open{overflow:hidden}
  .side-brand{margin-bottom:12px}
  .side-nav{gap:4px}
  .side-nav a{padding:10px 11px;border-radius:12px;font-size:.95rem}
  .nav-section{margin:12px 8px 4px;font-size:.68rem}
  .sidebar-ai-card,.side-card{display:none!important}
  .sidebar-scroll{height:calc(100vh - 80px);padding-right:2px;padding-bottom:8px}
  .side-nav{display:flex;grid-template-columns:none}
  .filters-admin,.filters-wide,.filters,.form-grid,.hero,.grid2{grid-template-columns:1fr}
}
@media(max-width:720px){
  .container{padding:14px 12px 60px}
  .topbar,.public-topbar{padding:10px 12px;align-items:center;gap:8px;flex-direction:row}
  .topbar > div:first-child .eyebrow{display:none}
  .topbar strong{font-size:.95rem}
  .top-actions{gap:8px}
  .top-actions .user-chip{display:none}
  .icon-btn{width:38px;height:38px;border-radius:12px}
  .hero-panel{padding:26px}
  .cards{grid-template-columns:1fr}
  table{display:block;overflow-x:auto}
  .mobile-bottom-nav{
    position:fixed;left:0;right:0;bottom:0;z-index:60;display:grid;grid-template-columns:repeat(4,1fr);
    gap:0;background:var(--card);border-top:1px solid var(--line);padding:8px 6px calc(8px + env(safe-area-inset-bottom));
  }
  .mobile-bottom-nav a{
    text-align:center;font-weight:800;color:var(--fg);font-size:.78rem;padding:8px 4px;border-radius:10px;
  }
  .mobile-bottom-nav a:active{background:var(--card2)}
  .container{padding-bottom:94px}
  .mobile-segmented{overflow:auto;flex-wrap:nowrap;padding-bottom:2px}
  .mobile-segmented .pill{white-space:nowrap}
}


/* v2.6.1 alignment fixes */
.form-card form{display:flex;flex-direction:column;gap:2px}
.section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}
.section-title h2{margin:0 0 6px;font-size:1.35rem;letter-spacing:-.04em}
.section-title p{margin:0}
.form-row.full{width:100%}
.form-grid-3{display:grid;grid-template-columns:1fr 180px 180px;gap:18px;align-items:end}
.switch-card{
  min-height:72px;display:flex;align-items:center;gap:12px;padding:13px 14px;
  border:1px solid var(--line);border-radius:18px;background:var(--card2);margin:0
}
.switch-card input{width:auto;margin:0;transform:scale(1.15)}
.switch-card strong{display:block}
.switch-card small{display:block;color:var(--muted);font-weight:700;margin-top:2px}
.sticky-actions{position:sticky;bottom:0;background:linear-gradient(180deg,transparent,var(--card) 18%);padding-top:18px}
.filters-card{margin-top:22px}
.filters-admin-clean{display:grid;grid-template-columns:1fr 220px 150px 210px auto;gap:14px;align-items:end}
.filters-admin-clean input,.filters-admin-clean select{margin-bottom:0}
.table-card{margin-top:22px}
.table-input{max-width:90px;margin:0}
.ok-badge{background:rgba(34,197,94,.14);color:var(--primary)}
.muted-badge{background:rgba(100,116,139,.12);color:var(--muted)}
@media(max-width:1100px){
  .form-grid-3,.filters-admin-clean{grid-template-columns:1fr}
}


/* autosave */
.autosave-status{
  opacity:0;
  transform:translateY(6px);
  transition:.2s ease;
  font-weight:800;
  color:var(--primary);
}
.autosave-status.visible{
  opacity:1;
  transform:none;
}
.draft-toast{
  position:fixed;
  right:24px;
  bottom:24px;
  z-index:9999;
  padding:14px 18px;
  border-radius:16px;
  background:var(--card);
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  font-weight:800;
  opacity:0;
  transform:translateY(20px);
  transition:.3s ease;
}
.draft-toast.show{
  opacity:1;
  transform:none;
}


/* v2.8 admin sorting */
.sort-link{color:inherit;text-decoration:none;font-weight:900}
.sort-link:hover{color:var(--primary)}
.filters-admin-clean{grid-template-columns:1fr 220px 150px 210px 150px auto}
@media(max-width:1100px){.filters-admin-clean{grid-template-columns:1fr}}

/* v3.1 bulk admin */
.bulk-panel{margin:22px 0}.bulk-grid{display:grid;grid-template-columns:230px 1fr 230px;gap:18px;align-items:end}.bulk-actions-box{display:flex;align-items:end;height:100%}.mini-tags{max-height:130px;overflow:auto;padding:8px;border:1px solid var(--line);border-radius:18px;background:var(--card2)}.recipe-check,#selectAllRecipes{width:18px;height:18px;margin:0}@media(max-width:1100px){.bulk-grid{grid-template-columns:1fr}}

/* v3.2 advanced filters */
.filters-admin-advanced,.filters-user-advanced{
  display:grid;
  grid-template-columns:repeat(4,minmax(180px,1fr));
  gap:14px;
  align-items:end;
  margin-bottom:22px;
}
.filters-user-advanced{grid-template-columns:repeat(3,minmax(200px,1fr))}
.range-pair{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.range-triple{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.range-pair input,.range-triple input{margin-bottom:0}
.filter-actions{display:flex;gap:10px;align-items:end}
.recipe-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}
.recipe-metrics span{background:var(--card2);border:1px solid var(--line);border-radius:14px;padding:10px;font-size:.85rem}
.recipe-metrics b{display:block;font-size:1.1rem}
@media(max-width:1100px){.filters-admin-advanced,.filters-user-advanced{grid-template-columns:1fr}.recipe-metrics{grid-template-columns:1fr}}

.export-buttons{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.table-tools{margin:14px 0;display:flex;justify-content:flex-end}
.table-tools input{max-width:320px;margin:0}
th:hover{color:var(--primary)}


/* v3.4 menus y alimentos */
.search-select-wrapper{
    display:flex;
    flex-direction:column;
    gap:8px;
}

.search-select-input{
    padding:12px;
    border-radius:12px;
}

.menu-portion-box{
    display:grid;
    grid-template-columns:2fr 1fr 1fr 1fr;
    gap:12px;
    align-items:center;
}

.portion-result{
    font-weight:bold;
    color:#16a34a;
}


/* v3.4.2 checkbox alignment */
.check-inline{
    display:flex;
    align-items:center;
    gap:10px;
    margin-top:8px;
}

.check-inline input[type="checkbox"]{
    width:18px;
    height:18px;
    margin:0;
}

.check-inline label{
    margin:0;
    font-weight:600;
}

/* v3.4.4 menu picker */
.selector-tabs{display:flex;gap:8px;margin-bottom:12px}
.tab-button{border:1px solid var(--line);background:var(--card2);border-radius:999px;padding:10px 16px;font-weight:800;cursor:pointer}
.tab-button.active{background:var(--primary);color:white}
.picker-panel{display:none}
.picker-panel.active{display:block}
.picker-search{margin-bottom:12px}
.picker-results{max-height:520px;overflow:auto;display:flex;flex-direction:column;gap:8px;padding-right:6px}
.picker-item{display:grid;grid-template-columns:1fr 135px 90px 80px;gap:8px;align-items:center;border:1px solid var(--line);background:var(--card2);border-radius:18px;padding:10px}
#food-results .picker-item{grid-template-columns:1fr 125px 75px 75px 80px}
.picker-item small{display:block;color:var(--muted);margin-top:3px}
.btn-small{padding:9px 12px;font-size:.85rem}
@media(max-width:900px){.picker-item,#food-results .picker-item{grid-template-columns:1fr}}

/* v3.4.6 home login button */
.btn-login-home,
a.btn-login-home{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:12px 18px;
    border-radius:999px;
    font-weight:900;
    text-decoration:none;
    color:#06111f !important;
    background:linear-gradient(135deg,#22c55e,#38bdf8);
    box-shadow:0 18px 35px rgba(34,197,94,.22);
    border:1px solid rgba(255,255,255,.45);
}
.btn-login-home:hover{
    transform:translateY(-1px);
    filter:saturate(1.1);
}

/* v3.5 entrenamiento */
.training-check{width:22px;height:22px}
.session-done{background:rgba(34,197,94,.12)}
.exercise-media{display:flex;gap:8px;flex-wrap:wrap}

/* v4.2 sidebar + OCR + bulk */
.sidebar,.app-sidebar,aside.sidebar,body aside{overflow:hidden!important}
.sidebar-scroll{display:flex;flex-direction:column;gap:6px;height:calc(100vh - 96px);overflow-y:auto;overflow-x:hidden;padding-right:6px;padding-bottom:24px;scrollbar-width:thin}
.sidebar-ai-card,.sidebar .ai-card,.sidebar .nutrition-card,aside .ai-card,aside .nutrition-card{position:static!important;inset:auto!important;z-index:1!important;width:auto!important;max-width:100%!important;margin:18px 0 4px!important;padding:14px 16px!important;border-radius:20px!important;background:linear-gradient(135deg,rgba(34,197,94,.18),rgba(56,189,248,.18))!important;border:1px solid rgba(125,211,252,.22)!important;box-shadow:none!important;transform:none!important}
.sidebar a,.app-sidebar a,aside a{position:relative;z-index:3}
.bulk-toolbar{position:sticky;top:0;z-index:20;display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:12px 0;padding:12px;border:1px solid var(--line);border-radius:18px;background:var(--card)}
.bulk-toolbar .selected-count{font-weight:900}
.pre{white-space:pre-wrap;max-height:460px;overflow:auto;background:var(--card2);border:1px solid var(--line);border-radius:16px;padding:14px}
@media(max-width:900px){.sidebar-scroll{height:auto;max-height:none;overflow:visible}}

/* v4.2.5 bulk foods */
.bulk-toolbar{position:sticky;top:0;z-index:30;display:flex;gap:12px;align-items:end;flex-wrap:wrap;padding:14px;margin-bottom:14px;border:1px solid var(--line);border-radius:18px;background:var(--card)}
.bulk-toolbar select,.bulk-toolbar input{min-width:180px}
.selected-count{font-weight:900;padding:10px 12px;border-radius:999px;background:rgba(34,197,94,.14)}

/* v4.2.6 cards fix */
.exercise-media{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.bulk-toolbar{position:sticky;top:0;z-index:30;display:flex;gap:12px;align-items:end;flex-wrap:wrap;padding:14px;margin-bottom:14px;border:1px solid var(--line);border-radius:18px;background:var(--card)}
.selected-count{font-weight:900;padding:10px 12px;border-radius:999px;background:rgba(34,197,94,.14)}

/* v4.2.7 stable layout */
.filters-user-advanced,.filters-admin-advanced{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;align-items:end}
.range-pair,.range-triple{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:8px}
.exercise-media{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.bulk-toolbar{position:sticky;top:0;z-index:30;display:flex;gap:12px;align-items:end;flex-wrap:wrap;padding:14px;margin-bottom:14px;border:1px solid var(--line);border-radius:18px;background:var(--card)}
.selected-count{font-weight:900;padding:10px 12px;border-radius:999px;background:rgba(34,197,94,.14)}

/* v4.2.8 visual repair */
.page-head{
    max-width:1280px;
    margin:0 auto 24px auto;
    padding:0 8px;
    display:flex;
    justify-content:space-between;
    gap:20px;
    align-items:flex-end;
}
.main-content, main, .content, .app-main{
    min-width:0;
}
.page-content{
    max-width:1280px;
    margin:0 auto;
}
.card{
    box-sizing:border-box;
}
.cards{
    max-width:1280px;
    margin:0 auto;
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
    gap:18px;
}
.recipe-grid{
    align-items:stretch;
}
.filters-user-advanced,
.filters-admin-advanced{
    max-width:1280px;
    margin:0 auto 22px auto;
    display:grid!important;
    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:14px;
    align-items:end;
}
.range-pair,.range-triple{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(82px,1fr));
    gap:8px;
}
.grid2{
    max-width:1280px;
    margin:0 auto 22px auto;
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(340px,1fr));
    gap:18px;
}
.form-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
    gap:14px;
}
.filter-actions,.form-actions,.actions{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    align-items:center;
}
.recipe-metrics{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    margin:12px 0;
}
.recipe-metrics span{
    padding:8px 10px;
    border-radius:999px;
    background:rgba(15,23,42,.06);
    border:1px solid rgba(148,163,184,.25);
}
table{
    width:100%;
}
textarea{
    min-height:120px;
}
@media(max-width:900px){
    .page-head,.filters-user-advanced,.filters-admin-advanced,.cards,.grid2{
        max-width:100%;
    }
}

/* v4.2.9 visual admin repair */
.grid4{max-width:1280px;margin:0 auto 22px;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}
.stat span{display:block;text-transform:uppercase;font-size:.75rem;font-weight:900;letter-spacing:.08em;opacity:.7}
.stat b{display:block;font-size:2rem;margin-top:8px}
.inline-form{display:inline}
.link-button{background:none;border:0;padding:0;color:#0ea5e9;font-weight:800;cursor:pointer;text-decoration:none}
.link-button.danger{color:#ef4444}
.check-inline{display:inline-flex;gap:8px;align-items:center}
.card table{background:transparent}
.card table td,.card table th{vertical-align:middle}

/* v4.2.10 critical view repair */
.container{width:100%;max-width:none;padding:48px 32px;box-sizing:border-box}
.page-head,.filters-user-advanced,.filters-admin-advanced,.cards,.grid2,.grid4{max-width:1280px}

/* v4.2.11 training sessions */
.session-row{display:grid;grid-template-columns:2fr .5fr .7fr .6fr .6fr .8fr;gap:10px;align-items:center;margin:10px 0}
@media(max-width:1000px){.session-row{grid-template-columns:1fr}}

/* v4.2.12 admin views repair */
.inline-edit-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin-top:10px}
.btn-small{padding:8px 12px;font-size:.85rem}.btn-danger{background:#ef4444!important;color:white!important}
details summary{cursor:pointer;font-weight:800}.card table details p{white-space:normal;max-width:650px}

/* v4.2.13 view sweep */
.page-head{max-width:1280px;margin:0 auto 24px;display:flex;justify-content:space-between;gap:20px;align-items:flex-end}
.cards{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}.grid2{max-width:1280px;margin:0 auto 22px;display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:18px}.filters-user-advanced,.filters-admin-advanced{max-width:1280px;margin:0 auto 22px;display:grid!important;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;align-items:end}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.actions,.filter-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.inline-form{display:inline}.link-button{background:none;border:0;color:#0ea5e9;font-weight:800;cursor:pointer}.link-button.danger{color:#ef4444}.recipe-metrics{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.recipe-metrics span{padding:8px 10px;border-radius:999px;background:rgba(15,23,42,.06);border:1px solid rgba(148,163,184,.25)}.exercise-media{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}

/* Recetas: grid propio para evitar desalineaciones por reglas globales */
.filters-recipes{
  display:grid !important;
  grid-template-columns:repeat(12,minmax(0,1fr)) !important;
  gap:14px;
  align-items:end;
}
.filters-recipes .recipes-filter-col{grid-column:span 3}
.filters-recipes .recipes-filter-col--search{grid-column:span 3}
.filters-recipes .recipes-filter-actions{
  grid-column:span 3;
  justify-content:flex-start;
  margin-top:0;
}
.filters-recipes label{
  min-height:26px;
  display:flex;
  align-items:flex-end;
}
.filters-recipes input,
.filters-recipes select{
  margin-bottom:0;
}
.filters-recipes .range-pair,
.filters-recipes .range-triple{
  align-items:end;
}
@media (max-width: 1200px){
  .filters-recipes{grid-template-columns:repeat(6,minmax(0,1fr)) !important}
  .filters-recipes .recipes-filter-col,
  .filters-recipes .recipes-filter-col--search,
  .filters-recipes .recipes-filter-actions{grid-column:span 3}
}
@media (max-width: 760px){
  .filters-recipes{grid-template-columns:1fr !important}
  .filters-recipes .recipes-filter-col,
  .filters-recipes .recipes-filter-col--search,
  .filters-recipes .recipes-filter-actions{grid-column:1/-1}
}

/* v4.2.15 admin exercises layout */
.admin-exercises-layout{
  grid-template-columns:minmax(420px,560px) minmax(620px,1fr);
  align-items:start;
}

/* v4.2.16 unified create-modal pattern */
.app-modal{position:fixed;inset:0;z-index:120;display:none}
.app-modal.is-open{display:block}
.app-modal__backdrop{position:absolute;inset:0;background:rgba(7,17,31,.45)}
.app-modal__panel{position:relative;max-width:760px;margin:4vh auto 0;max-height:92vh;overflow:auto;border-radius:24px;border:1px solid #d7e6f1;background:linear-gradient(180deg,#fff,#f7fbff);box-shadow:0 30px 80px rgba(15,23,42,.35);padding:22px}
.app-modal__header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}
.app-modal__header h2{margin:0;font-size:1.7rem;letter-spacing:-.03em}
.app-modal__close{border:1px solid #d7e6f1;background:#fff;border-radius:12px;padding:8px 10px;cursor:pointer;font-weight:800}
.app-modal label{font-size:.85rem;letter-spacing:.02em;text-transform:uppercase;color:#4b5d72}
.app-modal input,.app-modal select,.app-modal textarea{margin-top:6px!important;margin-bottom:12px!important;border-radius:13px!important;border-color:#d4e2ee!important;background:#f7fbff!important}
.table-main-card{border-radius:26px!important;border:1px solid #d7e6f1!important;box-shadow:0 14px 38px rgba(15,23,42,.10)!important;background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(249,252,255,.98))!important}
.table-wrap{border:1px solid #d7e6f1;border-radius:18px;overflow:auto;background:#fff}
.table-wrap table{margin:0;min-width:900px;border:0;border-radius:0;box-shadow:none}
.mini-actions{display:flex;gap:6px;justify-content:flex-end;align-items:center;white-space:nowrap}
.mini-actions .mini-btn{border:1px solid #d7e6f1;background:#fff;border-radius:10px;padding:6px 9px;font-size:.8rem;font-weight:800;cursor:pointer;color:#0f172a;text-decoration:none}
.mini-actions .mini-btn.danger{color:#b91c1c;border-color:#fecaca;background:#fff1f2}
.bulk-toolbar .check-inline{display:inline-flex;align-items:center;gap:8px;margin:0;min-height:40px}
.bulk-toolbar .selected-count{display:inline-flex;align-items:center;gap:6px;min-height:40px}
@media (max-width:900px){
  .app-modal__panel{margin:0;height:100vh;max-height:100vh;border-radius:0;max-width:none}
}
.admin-exercises-layout .card{
  min-width:0;
}
.exercise-form-card{
  position:sticky;
  top:92px;
}
.exercise-form-card textarea{
  min-height:96px;
}
.exercise-list-card{
  min-width:0;
}
.exercise-list-card .bulk-toolbar{
  top:92px;
}
.exercise-list-card .table-wrap{
  overflow-x:auto;
  border-radius:18px;
}
.exercise-list-card table{
  min-width:760px;
  margin-bottom:0;
}
@media(max-width:1200px){
  .admin-exercises-layout{
    grid-template-columns:1fr;
  }
  .exercise-form-card,
  .exercise-list-card .bulk-toolbar{
    position:static;
  }
}

/* v4.2.17 data pages: ancho completo + separación vertical uniforme */
.main-panel .container{
  display:flex;
  flex-direction:column;
  gap:24px;
}
.main-panel .container > *{
  margin-top:0 !important;
  margin-bottom:0 !important;
}
.main-panel .container > .page-head,
.main-panel .container > .card,
.main-panel .container > form.card,
.main-panel .container > .grid2,
.main-panel .container > .cards,
.main-panel .container > .filters-user-advanced,
.main-panel .container > .filters-admin-advanced{
  width:100%;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
}
