/* NOI · 4.19 · Dark Luxury refinado. Preserva exactamente la paleta NOI. */
:root{--noi-motion:180ms cubic-bezier(.2,.8,.2,1)}
.layout main .content{max-width:1180px}
#screen{animation:noi-screen-in .24s ease-out both}
@keyframes noi-screen-in{from{opacity:.75;transform:translateY(5px)}to{opacity:1;transform:none}}
.noi-dash{gap:15px}
.noi-dash-top{padding:6px 2px 0}
.noi-dash-grid{gap:12px}
.noi-dash-card,.noi-op-panel,.noi-dash-grid .noi-dash-tile{box-shadow:0 14px 28px #00000029,inset 0 1px #ffffff0b}
.btn,.navbtn,.noi-op-tile,.noi-dash-tile,.noi-priority,.noi-more-link{transition:transform var(--noi-motion),box-shadow var(--noi-motion),border-color var(--noi-motion),background var(--noi-motion)}
button:not(:disabled):active{transform:translateY(1px) scale(.992)}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.noi-overline{font:600 10px/1.4 Jost,Arial,sans-serif;letter-spacing:.18em;color:var(--brass)}
.noi-priorities{padding:clamp(14px,3vw,22px);background:linear-gradient(135deg,#243b2b,#13261c);border:1px solid #556b4b;border-radius:19px;box-shadow:0 15px 36px #0004}
.noi-priorities-title{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:13px}
.noi-priorities-title h2{font-size:clamp(24px,3vw,30px);margin:3px 0 0}
.noi-priority-search{font:600 12px/1.1 Jost,sans-serif;min-height:39px;color:var(--text);border:1px solid var(--line);border-radius:30px;background:#2d4434;padding:8px 13px;white-space:nowrap}
.noi-priority-search span{color:var(--brass);margin-left:8px;font-size:18px}
.noi-priority-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.noi-priority{display:grid;text-align:left;align-content:space-between;gap:6px;min-height:116px;padding:14px 15px;border:1px solid #5b745a;background:linear-gradient(155deg,#304838,#1b3024);border-radius:14px;color:var(--text);box-shadow:inset 0 1px #ffffff11}
.noi-priority>span{color:var(--muted);font-size:12px;font-weight:600}
.noi-priority>strong{font:500 clamp(26px,3vw,37px)/1 'Cormorant Garamond',serif;color:var(--cream)}
.noi-priority>small{color:var(--muted);font-size:11px}
.noi-priority.is-alert{border-color:#88654f;background:linear-gradient(155deg,#533e35,#292d24)}
.noi-priority.is-alert>strong{color:#f0d7ac}
.noi-portion{margin:20px 0 12px;padding:16px;border:1px solid #526c54;border-radius:15px;background:linear-gradient(145deg,#243a2b,#15271c)}
.noi-portion-head{display:flex;justify-content:space-between;align-items:center;gap:8px}
.noi-portion-head h4{font:500 24px/1.15 'Cormorant Garamond',serif;margin:4px 0 0;color:var(--text)}
.noi-portion-counter{border-radius:50px;background:#3d4632;color:var(--brass);padding:6px 10px;font-size:12px;white-space:nowrap}
.noi-portion-choices{display:flex;gap:6px;overflow-x:auto;margin:15px 0 11px;scrollbar-width:thin}
.noi-portion-choice{flex:1;min-width:39px;min-height:42px;background:#1c3023;border:1px solid #5a7056;border-radius:10px;color:var(--cream);font-weight:600}
.noi-portion-choice.selected{background:#6f3446;color:#fff0db;border-color:#b48288;box-shadow:inset 0 -3px #472131}
.noi-portion-lines{display:grid;gap:0}
.noi-portion-line{display:grid;grid-template-columns:minmax(90px,30%) 1fr;gap:11px;padding:9px 2px;border-bottom:1px solid #52624b5e}
.noi-portion-line:last-child{border:0}
.noi-portion-line strong{color:var(--brass);font-variant-numeric:tabular-nums;font-size:13px}
.noi-portion-line span{color:var(--text);font-size:13px;overflow-wrap:anywhere}
.noi-portion-note{margin:12px 0 0;color:var(--muted);font-size:11px;line-height:1.5}
.noi-more-dialog{position:fixed;inset:auto 0 0;max-width:none;width:100%;max-height:calc(90dvh - env(safe-area-inset-top));padding:20px max(18px,env(safe-area-inset-right)) calc(22px + env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));border:1px solid #667554;border-radius:23px 23px 0 0;background:#13271d;color:var(--text);box-shadow:0 -16px 42px #0009}
.noi-more-dialog::backdrop{background:#010b0799;backdrop-filter:blur(4px)}
.noi-more-head{display:flex;justify-content:space-between;align-items:start;gap:15px;margin-bottom:16px}
.noi-more-head h2{margin:3px 0;font-size:30px}
.noi-more-close{width:40px;height:40px;border-radius:50%;background:#2b4031;border:1px solid #53684e;color:var(--text);font-size:28px}
.noi-more-grid{display:grid;gap:8px}
.noi-more-link{display:grid;grid-template-columns:41px minmax(0,1fr) 12px;align-items:center;gap:12px;text-align:left;width:100%;min-height:63px;padding:8px 13px;background:#1d3326;border:1px solid #3d5941;border-radius:12px;color:var(--cream)}
.noi-more-link strong{display:block;font-size:14px}.noi-more-link small{display:block;font-size:11px;color:var(--muted);margin-top:3px}
.noi-more-symbol{display:grid;place-items:center;width:38px;height:38px;background:#304a37;border:1px solid #62714c;border-radius:10px;color:var(--brass);font-size:20px}
.noi-more-icon{display:block;font-size:25px;line-height:22px;letter-spacing:.07em}
.noi-zone-session{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:12px;margin:12px 0;background:#223d2d;border:1px solid #5c7959;border-radius:12px}
.noi-zone-session strong{display:block;color:var(--cream);font-size:14px}
.noi-zone-session small{color:var(--muted);font-size:12px}
.noi-zone-session .btn{min-height:42px}
.noi-zone-history{display:flex;gap:6px;flex-wrap:wrap;margin:4px 0 14px}
.noi-zone-history span{font-size:11px;border:1px solid #51654b;padding:5px 9px;background:#203425;border-radius:20px;color:var(--muted)}
@media(max-width:800px){
 .mobile{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;padding-bottom:max(4px,env(safe-area-inset-bottom))}
 .mobile .navbtn{min-width:0!important;min-height:54px;padding:7px 2px!important;font-size:10px!important;white-space:nowrap;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}
 .mobile .nav-icon{margin:0!important}
 .mobile .navbtn .ui-icon{width:21px;height:21px}
 .modal .form input,.modal .form select,.modal .form textarea,#modalform .field{min-height:45px;font-size:16px}
 #modalform textarea.field{min-height:90px}
 .modal .foot .btn{min-height:44px}
 .noi-priority-grid{gap:7px}.noi-priority{min-height:106px;padding:12px 10px}
 .noi-priority-search{font-size:11px;padding:7px 10px}
}
@media(max-width:380px){
 .noi-priorities-title{align-items:stretch;flex-direction:column}
 .noi-priority-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .noi-priority-grid .noi-priority:last-child:nth-child(odd){grid-column:1/-1}
 .noi-portion{padding:12px}
}
@media(prefers-reduced-motion:reduce){#screen{animation:none}.btn,.navbtn,.noi-op-tile,.noi-dash-tile,.noi-priority,.noi-more-link{transition:none!important}}

/* NOI · 4.19.1 — pantalla Inicio: una sola vista, cuatro métricas y equipo */
body[data-view="home"] .photo-banner{height:56px;margin-bottom:12px;border-radius:10px;opacity:.75}
body[data-view="home"] .top{margin-bottom:11px;padding-top:0;padding-bottom:0}
body[data-view="home"] #subtitle:empty{display:none}
body[data-view="home"] #title{font-size:clamp(29px,4vw,37px);margin:2px 0 0}
.noi-home-v2{display:grid;gap:12px;color:var(--text);max-width:910px;margin:0 auto 18px}
.noi-home-v2 button{font-family:inherit;cursor:pointer;min-width:0}
.noi-home-date{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:32px}
.noi-home-date>span{color:var(--brass);font-size:11px;text-transform:uppercase;letter-spacing:.075em;font-weight:600}
.noi-home-date button{display:flex;align-items:center;gap:7px;border:1px solid #455b48;background:#203629;color:var(--text);font-size:12px;border-radius:999px;padding:7px 12px}
.noi-home-date button svg{width:16px;height:16px;color:var(--brass)}
.noi-home-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.noi-home-metric{display:flex;flex-direction:column;align-items:flex-start;position:relative;text-align:left;gap:5px;min-height:119px;border-radius:13px;border:1px solid #4f684e;background:linear-gradient(156deg,#2a4130,#172b20);padding:13px 12px;box-shadow:0 8px 18px #0002,inset 0 1px #ffffff13;color:var(--cream)}
.noi-home-metric.is-alert{background:linear-gradient(150deg,#4b3037,#2b2427);border-color:#976474}
.noi-home-metric-label{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;line-height:1.15;color:var(--cream)}
.noi-home-metric-label svg{width:18px;height:18px;color:var(--brass)}
.noi-home-metric strong{font:500 32px/1 'Cormorant Garamond',Georgia,serif;color:#f0dbb9;margin-top:auto}
.noi-home-metric small{display:block;font-size:10.5px;color:var(--muted);line-height:1.25}
.noi-home-chevron{position:absolute;right:9px;top:8px;color:#bdc9bd;font-size:16px}
.noi-home-pending{display:grid;grid-template-columns:8px minmax(0,1fr) 8px;align-items:center;gap:10px;text-align:left;padding:10px 13px;background:#382b28;border:1px solid #795b4b;border-radius:10px;color:var(--cream)}
.noi-home-pending strong{font-size:12px;font-weight:600;display:block}
.noi-home-pending small{font-size:11px;display:block;margin-top:3px;color:#e1c7b2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.noi-home-dot{display:inline-block;width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#c68f88;box-shadow:0 0 0 3px #c68f881a}
.noi-home-dot.neutral{background:#a9c4a5;box-shadow:0 0 0 3px #a9c4a520}
.noi-home-team{padding:12px 14px;background:#1c3024;border:1px solid #455b46;border-radius:13px}
.noi-home-section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px}
.noi-home-section-title h2{font:500 23px/1.1 'Cormorant Garamond',Georgia,serif;margin:0;color:var(--text)}
.noi-home-section-title button{background:none;border:0;color:var(--brass);font-size:11px;padding:5px 0}
.noi-home-roster{display:grid}
.noi-home-person{display:grid;grid-template-columns:minmax(66px,.7fr) minmax(0,1.7fr) auto;align-items:center;gap:7px;border-top:1px solid #62745d45;padding:7px 0;color:var(--text);font-size:11px}
.noi-home-person strong{font-size:12px;font-weight:600;white-space:nowrap}
.noi-home-person>span{color:#e4d0a9;min-width:0;overflow-wrap:anywhere}
.noi-home-person>small{color:var(--muted);font-size:10px;white-space:nowrap}
.noi-home-empty{font-size:11px;color:var(--muted);margin:8px 0 0}
.noi-home-small-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.noi-home-small-actions button{display:flex;align-items:center;gap:7px;min-height:42px;border-radius:10px;padding:10px;background:#203529;border:1px solid #49644d;text-align:left;color:var(--text);font-size:11px}
.noi-home-small-actions button strong{margin-left:auto;font-weight:600;color:var(--brass);white-space:nowrap;font-size:11px}
.noi-home-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.noi-home-actions button{display:flex;justify-content:center;align-items:center;gap:8px;min-height:42px;border:1px solid #607459;border-radius:11px;background:#294031;color:var(--cream);font-size:12px;font-weight:700}
.noi-home-actions .noi-home-primary{background:#733c4a;border-color:#a17077;color:#fff3e7}
.noi-home-actions .ui-icon{width:17px;height:17px;color:var(--brass)}
@media(max-width:800px){
 body[data-view="home"] .photo-banner{height:38px;margin-bottom:8px}
 body[data-view="home"] main{padding-top:10px}
 body[data-view="home"] .top{margin-bottom:7px;padding:0}
 body[data-view="home"] .top .eyebrow{font-size:9px;line-height:1.2}
 body[data-view="home"] #title{font-size:30px;line-height:1.05}
 .noi-home-v2{gap:9px;margin-bottom:0}
 .noi-home-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .noi-home-metric{min-height:91px;padding:10px 12px;gap:3px}
 .noi-home-metric strong{font-size:28px}
 .noi-home-metric-label{font-size:11px}
 .noi-home-metric small{font-size:10px}
 .noi-home-team{padding:10px 12px}
 .noi-home-section-title h2{font-size:21px}
 .noi-home-person{padding:6px 0}
}
@media(max-width:370px){
 .noi-home-person{grid-template-columns:68px minmax(0,1fr);row-gap:2px}
 .noi-home-person>small{grid-column:2}
 .noi-home-small-actions button{flex-wrap:wrap}
 .noi-home-small-actions button strong{width:100%;margin:0 0 0 14px}
}
@media(prefers-reduced-motion:reduce){.noi-home-v2 *{animation:none!important}}

/* NOI 4.19.2 — solo Elaboraciones: listado compacto con imagen y ficha bajo demanda. */
body[data-view="batches"] .noi-prep-catalog{display:grid;gap:11px;max-width:970px;margin:auto;color:var(--text)}
body[data-view="batches"] .noi-prep-search{display:flex;gap:10px;align-items:center}
body[data-view="batches"] .noi-prep-search input{min-width:0;flex:1;min-height:43px}
body[data-view="batches"] .noi-prep-search small{white-space:nowrap;color:var(--muted)}
body[data-view="batches"] .noi-prep-filters{display:flex;overflow-x:auto;gap:7px;scrollbar-width:thin;padding:2px 0 5px}
body[data-view="batches"] .noi-prep-filters button{white-space:nowrap;min-height:36px;padding:7px 12px;border-radius:999px;background:#203629;border:1px solid #52674f;color:var(--text);font-size:12px;cursor:pointer}
body[data-view="batches"] .noi-prep-filters button.selected{background:#693746;border-color:#a0757e;color:#fff1df}
body[data-view="batches"] .noi-prep-list{display:grid;gap:7px}
body[data-view="batches"] .noi-prep-list-item{width:100%;min-width:0;display:flex;align-items:center;gap:12px;min-height:68px;padding:9px 12px;text-align:left;border:1px solid #4b614a;border-radius:12px;background:#1c3023;color:var(--text)}
body[data-view="batches"] .noi-prep-thumb{width:48px;height:48px;flex:0 0 48px;border:1px solid #4b624e;border-radius:9px;background:#2b4432;display:grid;place-items:center;overflow:hidden}
body[data-view="batches"] .noi-prep-thumb img{width:100%;height:100%;object-fit:cover}
body[data-view="batches"] .noi-prep-placeholder svg{width:23px;height:23px;color:var(--brass)}
body[data-view="batches"] .noi-prep-name{display:grid;min-width:0;gap:3px;flex:1}
body[data-view="batches"] .noi-prep-name strong{font-size:14px;line-height:1.25;color:var(--cream);overflow-wrap:anywhere}
body[data-view="batches"] .noi-prep-name small{font-size:11px;color:var(--muted)}
body[data-view="batches"] .noi-prep-arrow{margin-left:auto;color:var(--brass);font-size:24px}
@media(max-width:750px){
 body[data-view="batches"] .noi-prep-list-item{min-height:61px;padding:7px 9px;gap:9px}
 body[data-view="batches"] .noi-prep-thumb{width:44px;height:44px;flex-basis:44px}
}
/* NOI 4.19.3 — acceso en un solo paso. */
.access-gate .access-login-form{display:grid;gap:11px;text-align:left}
.access-gate .access-login-form label{display:grid;gap:5px;color:#ede1cc;font-size:12px;font-weight:600}
.access-gate .access-login-form .field{width:100%;min-height:46px;padding:11px 12px;border-radius:10px;font-size:16px;color:#f7f1e7;background:#15271c;border:1px solid #6c806c}
.access-gate .access-login-form .field::placeholder{color:#9ea99f}
.access-gate .access-login-form .btn.primary{margin-top:4px;min-height:49px}
.access-gate .access-login-form[hidden],.access-gate #access-join-button[hidden],.access-gate #access-other-options[hidden]{display:none!important}
.access-gate .access-link{background:transparent;border:0;color:#e7ceaa;min-height:36px;padding:6px 8px;font-size:12px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.access-gate .access-login-message{min-height:16px;margin:0!important;font-size:11px!important;line-height:1.5!important;color:#e3bcb7!important;text-align:center}
.access-gate .access-login-form button:disabled{opacity:.65;cursor:wait}
@media(max-width:750px){.access-gate .access-content{padding:21px 23px 24px}.access-gate .access-content h1{font-size:34px}.access-gate .access-buttons{margin-top:12px}}

/* NOI 4.19.4 — carrusel inferior de todas las secciones, desplazable a izquierda y derecha. */
@media(max-width:750px){
 #mobile.mobile{
  display:flex!important;
  position:fixed!important;left:0!important;right:0!important;bottom:0!important;top:auto!important;
  width:100%!important;max-width:100vw!important;box-sizing:border-box!important;
  margin:0!important;transform:none!important;
  flex-direction:row!important;flex-wrap:nowrap!important;justify-content:flex-start!important;align-items:stretch!important;
  gap:6px!important;
  padding:7px max(10px,env(safe-area-inset-right)) max(7px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))!important;
  overflow-x:auto!important;overflow-y:hidden!important;
  overscroll-behavior-x:contain;touch-action:pan-x;
  scroll-snap-type:x proximity;scroll-padding-inline:12px;
  scrollbar-width:none;-webkit-overflow-scrolling:touch;
  z-index:70;background:#121f17;border-top:1px solid #6e624766;
  box-shadow:0 -9px 26px #0009;
 }
 #mobile.mobile::-webkit-scrollbar{display:none}
 #mobile.mobile .navbtn{
  box-sizing:border-box;
  flex:0 0 clamp(78px,21vw,98px)!important;
  width:clamp(78px,21vw,98px)!important;min-width:0!important;max-width:none!important;
  min-height:56px!important;
  padding:8px 4px!important;
  margin:0!important;border-radius:11px!important;
  display:flex!important;flex-direction:column!important;
  align-items:center!important;justify-content:center!important;
  gap:4px!important;font-size:10px!important;line-height:1.15!important;
  font-weight:600;white-space:normal!important;
  scroll-snap-align:center;scroll-snap-stop:normal;
  background:transparent;border:1px solid transparent;color:#bdcbbd;
 }
 #mobile.mobile .navbtn.active{
  background:linear-gradient(150deg,#314b36,#24382b)!important;
  color:#f1d4a3!important;
  border:1px solid #736346!important;
  box-shadow:inset 0 -3px #79374c,0 2px 9px #0004!important;
 }
 #mobile.mobile .navbtn .nav-label{display:block;max-width:100%;overflow-wrap:normal;text-align:center;letter-spacing:0}
 #mobile.mobile .navbtn .nav-icon{margin:0!important}
 #mobile.mobile .navbtn .ui-icon{width:20px!important;height:20px!important}
}
@media(min-width:751px){#mobile.mobile{display:none!important}}
@media(prefers-reduced-motion:reduce){#mobile.mobile{scroll-behavior:auto}}
