/* FIMMA 26 · Europea de Maquinaria — pensado para tablets Android en el stand */
:root{
  --brand:#0b3d6e; --accent:#e3a21a;
  --bg:#f4f6f9; --card:#fff; --ink:#18212b; --ink2:#55606e; --line:#e2e6ec;
  --ok:#1f8a4c; --warn:#b86a00; --err:#c0392b; --info:#2a6fb0;
  --r:16px; --sh:0 1px 2px rgba(16,24,40,.06),0 4px 14px rgba(16,24,40,.06);
  color-scheme:light;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;-webkit-tap-highlight-color:transparent}
a{color:var(--brand)}
img{max-width:100%}
.muted{color:var(--ink2)} .small{font-size:14px} .warn{color:var(--warn)}

/* Cabecera */
.top{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 20px;background:#fff;border-bottom:1px solid var(--line)}
.top-l,.top-r{display:flex;align-items:center;gap:12px;min-width:0}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font-weight:700;font-size:18px}
.brand img{height:38px}
.brand span{padding-left:12px;border-left:2px solid var(--line);color:var(--brand)}
.btn-back{display:grid;place-items:center;width:46px;height:46px;border-radius:12px;background:var(--bg);text-decoration:none;font-size:34px;line-height:1;color:var(--brand)}
.who{display:flex;align-items:center;gap:8px;font-weight:600}
.av{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--brand);color:#fff;font-size:14px;font-weight:700;flex:none}
.btn-lock{padding:10px 16px;border-radius:12px;background:var(--ink);color:#fff;text-decoration:none;font-weight:600;font-size:15px;white-space:nowrap}

.wrap{max-width:1100px;margin:0 auto;padding:20px 20px 120px}
.hello{font-size:30px;margin:8px 0 20px}
.ptitle{font-size:28px;margin:6px 0 4px}
.psub{margin:0 0 18px;color:var(--ink2)}
.sec{font-size:15px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink2);margin:30px 0 12px}
.sec small{background:var(--line);border-radius:20px;padding:1px 9px;margin-left:6px;font-size:13px}
.h2{font-size:18px;margin:0 0 12px}

/* Menú principal en cuadrícula */
.tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.tile{display:flex;flex-direction:column;gap:6px;min-height:170px;padding:24px;border-radius:22px;background:var(--card);box-shadow:var(--sh);text-decoration:none;color:var(--ink);border:2px solid transparent;transition:transform .12s,border-color .12s}
.tile:active{transform:scale(.98);border-color:var(--brand)}
.ti{display:grid;place-items:center;width:56px;height:56px;border-radius:16px;background:color-mix(in srgb,var(--brand) 10%,#fff);color:var(--brand);font-size:28px;font-weight:700;margin-bottom:auto}
.tt{font-size:23px;font-weight:700}
.ts{color:var(--ink2);font-size:15px}
.tile-main{grid-column:1/-1;background:var(--brand);color:#fff;min-height:200px}
.tile-main .ti{background:var(--accent);color:var(--brand);font-size:36px}
.tile-main .tt{font-size:30px}
.tile-main .ts{color:rgba(255,255,255,.8)}
.tiles-admin{grid-template-columns:repeat(3,1fr)}
.tiles-admin .tile{min-height:140px}

/* Bloqueo con teclado numérico */
body.lock{background:var(--brand);color:#fff}
.lockscreen{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:24px}
.lock-brand{display:flex;flex-direction:column;align-items:center;gap:10px}
.lock-logo{height:56px;background:#fff;border-radius:12px;padding:6px 12px}
.lock-feria{font-size:34px;font-weight:800;letter-spacing:.04em;text-align:center}
.lock-feria small{display:block;font-size:15px;font-weight:500;letter-spacing:0;color:var(--accent)}
.lock-card{background:#fff;color:var(--ink);border-radius:26px;padding:28px 28px 24px;width:100%;max-width:400px;text-align:center;box-shadow:0 20px 50px rgba(0,0,0,.25)}
.lock-card h1{font-size:20px;margin:0 0 18px}
.dots{display:flex;justify-content:center;gap:18px;margin-bottom:6px}
.dots i{width:18px;height:18px;border-radius:50%;border:2px solid var(--brand);transition:background .1s}
.dots i.on{background:var(--brand)}
.dots.shake{animation:shake .35s}
@keyframes shake{25%{transform:translateX(-8px)}75%{transform:translateX(8px)}}
.lock-err{min-height:24px;margin:6px 0 10px;color:var(--err);font-weight:600;visibility:hidden}
.lock-err.show{visibility:visible}
.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.keypad button{height:72px;border:0;border-radius:18px;background:var(--bg);font:600 28px system-ui,sans-serif;color:var(--ink);cursor:pointer;touch-action:manipulation}
.keypad button:active{background:var(--brand);color:#fff}
.keypad .k-sec{font-size:22px;color:var(--ink2)}
.keypad[data-disabled] button{opacity:.4;pointer-events:none}
.lock-foot{font-size:13px;opacity:.7;margin:0}

/* Tarjetas y formularios */
.card{background:var(--card);border-radius:var(--r);box-shadow:var(--sh);padding:20px;margin:0 0 16px;border:0}
fieldset.card{min-width:0}
legend{float:left;width:100%;padding:0;margin:0 0 14px;font-size:18px;font-weight:700}
legend+*{clear:both}
.form label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600;color:var(--ink2);margin-bottom:12px}
.form label.inline{display:inline-flex;flex-direction:row;align-items:center;margin:0}
input,select,textarea{font:inherit;color:var(--ink);width:100%;padding:13px 14px;border:1.5px solid var(--line);border-radius:12px;background:#fff;min-height:52px}
input[type=checkbox],input[type=radio]{width:auto;min-height:0}
input[type=file]{padding:10px}
textarea{resize:vertical;min-height:90px}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 18%,transparent)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.span2{grid-column:1/-1}
.lbl{font-weight:700;margin:16px 0 8px}
.sublbl{font-size:13px;color:var(--ink2);margin:10px 0 6px;text-transform:uppercase;letter-spacing:.06em}

.chips{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:6px}
.chip{position:relative;margin:0!important}
.chip input{position:absolute;opacity:0;pointer-events:none}
.chip span{display:inline-block;padding:11px 16px;border-radius:999px;border:1.5px solid var(--line);background:#fff;color:var(--ink);font-weight:500;font-size:15px;cursor:pointer}
.chip input:checked+span{background:var(--brand);border-color:var(--brand);color:#fff}
.chip-link{text-decoration:none}
.chips-radio{margin-bottom:16px}

.seg{display:flex;gap:10px;margin-bottom:8px}
.seg-i{flex:1;margin:0!important}
.seg-i input{position:absolute;opacity:0}
.seg-i span{display:block;text-align:center;padding:13px;border-radius:12px;border:1.5px solid var(--line);font-weight:600;color:var(--ink);cursor:pointer}
.seg-i input:checked+span{background:var(--brand);border-color:var(--brand);color:#fff}
.n-alto input:checked+span{background:var(--ok);border-color:var(--ok)}
.n-medio input:checked+span{background:var(--accent);border-color:var(--accent)}
.n-bajo input:checked+span{background:#7b8794;border-color:#7b8794}

.switch{flex-direction:row!important;align-items:center;gap:12px!important;color:var(--ink)!important;font-size:16px!important;align-self:end;min-height:52px}
.switch input{position:absolute;opacity:0}
.sw{width:52px;height:30px;border-radius:30px;background:var(--line);position:relative;transition:background .15s;flex:none}
.sw::after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:left .15s}
.switch input:checked+.sw{background:var(--ok)}
.switch input:checked+.sw::after{left:25px}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:0 22px;border-radius:14px;border:1.5px solid var(--line);background:#fff;color:var(--ink);font:600 16px system-ui,sans-serif;text-decoration:none;cursor:pointer;white-space:nowrap}
.btn:active{transform:scale(.98)}
.btn-pri{background:var(--brand);border-color:var(--brand);color:#fff}
.btn-ghost{background:transparent;border-color:transparent;color:var(--ink2)}
.btn-danger{background:#fff;border-color:var(--err);color:var(--err)}
.btn-sm{min-height:40px;padding:0 14px;font-size:14px}
.btn-lg{min-height:60px;font-size:18px;padding:0 30px}
.actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.actions.sticky{position:sticky;bottom:0;padding:14px 0;background:linear-gradient(transparent,var(--bg) 30%);justify-content:flex-end}

.flash{padding:14px 18px;border-radius:12px;margin:0 0 16px;font-weight:600;background:#e7f6ec;color:var(--ok)}
.flash.err{background:#fdecea;color:var(--err)}
.flash.warn{background:#fff4e0;color:var(--warn)}

/* Máquinas */
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.fchip{padding:10px 16px;border-radius:999px;background:#fff;border:1.5px solid var(--line);text-decoration:none;color:var(--ink);font-weight:600;font-size:15px}
.fchip.on{background:var(--ink);border-color:var(--ink);color:#fff}
.mgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
.mcard{display:flex;flex-direction:column;background:#fff;border-radius:var(--r);box-shadow:var(--sh);overflow:hidden;text-decoration:none;color:var(--ink)}
.mcard:active{transform:scale(.98)}
.mimg{aspect-ratio:4/3;background:linear-gradient(135deg,color-mix(in srgb,var(--brand) 12%,#fff),#eef1f5);display:grid;place-items:center;overflow:hidden}
.mimg img{width:100%;height:100%;object-fit:cover}
.mimg span{font-size:22px;font-weight:800;color:var(--brand);opacity:.5;letter-spacing:.05em;text-transform:uppercase}
.mbody{padding:14px 16px 16px;display:flex;flex-direction:column;gap:2px}
.mmarca{font-size:13px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink2);font-weight:700}
.mmod{font-size:19px;font-weight:700}
.mfoot{display:flex;justify-content:space-between;align-items:center;margin-top:8px}
.mprice{font-weight:800;color:var(--brand);font-size:18px}
.mdisp{color:var(--ok);font-size:14px;font-weight:600;margin:4px 0 0}
.mdet-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:24px;align-items:start}
.mdet-head:not(:has(.mdet-img)){grid-template-columns:1fr}
.mdet-img{width:100%;border-radius:12px;object-fit:cover}
.mdet-info h1{font-size:30px;margin:4px 0 8px}
.mdet-price{font-size:30px;font-weight:800;color:var(--brand);margin-bottom:8px}
.mdet-price small{font-size:15px;color:var(--ink2);font-weight:500}
.mdesc{color:var(--ink2);margin:8px 0 16px}
.pdfview{display:flex;flex-direction:column;gap:12px}
.pdfview canvas{width:100%;height:auto;border-radius:8px;box-shadow:0 0 0 1px var(--line)}
.vgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.vthumb{position:relative;border:0;padding:0;border-radius:12px;overflow:hidden;cursor:pointer;aspect-ratio:16/9;background:#000}
.vthumb img{width:100%;height:100%;object-fit:cover;opacity:.85}
.vthumb span{position:absolute;inset:0;display:grid;place-items:center;font-size:44px;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.5)}
.vgrid iframe{width:100%;aspect-ratio:16/9;border:0;border-radius:12px}

/* Visitas */
.toolbar{margin-bottom:12px}
.trow{display:flex;gap:10px}
.trow select{max-width:220px}
.search{flex:1}
.vlist,.ulist{display:flex;flex-direction:column;gap:10px}
.vrow,.urow{display:flex;align-items:center;gap:14px;padding:14px 16px;background:#fff;border-radius:14px;box-shadow:var(--sh);text-decoration:none;color:var(--ink)}
.vav{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--bg);font-weight:700;color:var(--brand);flex:none}
.vmain{flex:1;min-width:0;display:flex;flex-direction:column}
.vname{font-weight:700;overflow:hidden;text-overflow:ellipsis}
.vname small{font-weight:500;color:var(--ink2)}
.vmeta{font-size:14px;color:var(--ink2)}
.vbad{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700;background:var(--line);color:var(--ink2);white-space:nowrap}
.b-ok{background:#e1f4e8;color:var(--ok)} .b-warn{background:#fff1d9;color:var(--warn)} .b-info{background:#e3eefa;color:var(--info)}
.b-accent{background:color-mix(in srgb,var(--accent) 22%,#fff);color:#7a5200}
.badge.n-alto{background:#e1f4e8;color:var(--ok)} .badge.n-medio{background:#fff1d9;color:var(--warn)} .badge.n-bajo{background:#eceff3;color:#5b6773}
.vhead{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:12px}
.badges{display:flex;gap:6px;flex-wrap:wrap;margin:0}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.dl{display:grid;grid-template-columns:130px 1fr;gap:8px 12px;margin:0}
.dl dt{color:var(--ink2);font-size:15px} .dl dd{margin:0;font-weight:600}
.note{background:var(--bg);border-radius:10px;padding:12px;margin:14px 0 0}
.log{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px;font-size:15px}
.empty{background:#fff;border-radius:var(--r);padding:30px;text-align:center;color:var(--ink2);border:2px dashed var(--line)}
.empty .btn{margin-top:14px}

.people{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;margin-bottom:16px}
.person{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;padding:12px;border-radius:14px;background:#fff;box-shadow:var(--sh);text-decoration:none;color:var(--ink);border:2px solid transparent}
.person .av{grid-row:1/3}
.person.on{border-color:var(--brand)}
.pn{font-weight:700} .pstats{font-size:13px;color:var(--ink2)}

.urow.off{opacity:.55}
.code{font:700 22px ui-monospace,Menlo,monospace;letter-spacing:.12em;background:var(--bg);padding:6px 12px;border-radius:10px;color:var(--brand)}
.code-in{font:700 24px ui-monospace,Menlo,monospace;letter-spacing:.3em}
.uact{display:flex;gap:6px;align-items:center}
.uact form{margin:0}
.ord{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--bg);font-weight:700;color:var(--ink2)}
.thumb{height:60px;border-radius:8px;vertical-align:middle}

.greet{display:flex;align-items:center;gap:10px;margin:4px 0 10px;font-weight:600}
.greet select{width:auto}
.sig-prev table{margin-top:0!important}

.lockwarn{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:50;background:var(--ink);color:#fff;padding:14px 22px;border-radius:14px;font-weight:600;box-shadow:0 8px 30px rgba(0,0,0,.3);text-align:center}

/* Pantallas más pequeñas (tablet vertical / móvil) */
@media (max-width:760px){
  body{font-size:16px}
  .wrap{padding:16px 16px 110px}
  .tiles-admin{grid-template-columns:1fr 1fr}
  .grid2,.cols{grid-template-columns:1fr}
  .mdet-head{grid-template-columns:1fr}
  .who-n{display:none}
  .brand span{display:none}
  .vbad{display:none}
  .uact{flex-direction:column}
}
@media (max-width:480px){
  .tiles,.tiles-admin{grid-template-columns:1fr}
  .tile{min-height:120px}
  .trow{flex-direction:column}
  .trow select{max-width:none}
  .actions.sticky .btn{flex:1}
}

/* Identidad Europea de Maquinaria: antracita + verde/rojo del logo */
:root{--red:#c8160c;--green:#2a9a35}
.top{border-bottom:0;box-shadow:0 1px 0 var(--line)}
.top::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:4px;background:linear-gradient(90deg,var(--green),#7fb52a 45%,#d0561a 55%,var(--red))}
.brand img{height:44px;width:44px}
.brand span{color:var(--ink)}
.btn-pri{background:var(--accent);border-color:var(--accent)}
.tile-main{background:radial-gradient(120% 140% at 0% 0%,#33393d,var(--brand) 60%)}
.tile-main .ti{background:var(--accent);color:#fff}
.tile-main .tt{color:#fff}
.ti{background:#eef0f1;color:var(--brand)}
body.lock{background:radial-gradient(90% 70% at 50% 0%,#353b3f,var(--brand) 70%)}
.lock-logo{height:132px;width:132px;background:none;padding:0;border-radius:50%;box-shadow:0 10px 30px rgba(0,0,0,.4)}
.lock-feria small{color:#8fd197}
.keypad button:active{background:var(--accent)}
.chip input:checked+span,.seg-i input:checked+span{background:var(--brand);border-color:var(--brand)}
.mimg .mlogo{width:auto;height:auto;max-width:70%;max-height:45%;object-fit:contain}
.fchip{display:inline-flex;align-items:center;gap:8px}
.fchip img{height:18px;width:auto}
.mdet-brand{display:block;height:34px;width:auto;margin-bottom:8px}
.mprice,.mdet-price,.code{color:var(--brand)}
.tiles{grid-template-columns:repeat(3,1fr)}
@media (max-width:760px){.tiles{grid-template-columns:1fr 1fr}.tiles .tile:last-child:nth-child(even){grid-column:1/-1}}

/* modo quiosco */
body{-webkit-user-select:none;user-select:none;overscroll-behavior:none;-webkit-touch-callout:none}
input,textarea,.note,.dl dd,.mdesc{-webkit-user-select:text;user-select:text}

/* ===== v4 · Bloqueo en horizontal con logos de marcas ===== */
.lockscreen{flex-direction:row;justify-content:center;align-items:stretch;gap:clamp(24px,5vw,72px);padding:clamp(20px,4vh,48px) clamp(24px,5vw,80px);box-sizing:border-box;height:100vh;height:100dvh;min-height:0;overflow:hidden}
.lock-side{flex:1 1 0;min-width:0;display:flex;flex-direction:column;justify-content:space-between;gap:16px;padding:clamp(8px,3vh,32px) 0}
.lock-brand{flex-direction:row;align-items:center;gap:18px}
.lock-logo{height:clamp(64px,11vh,96px);width:auto}
.lock-co{font-size:clamp(17px,2.4vh,21px);font-weight:700;letter-spacing:.02em}
.lock-co-sub{font-size:14px;opacity:.7}
.lock-feria{text-align:left;display:flex;flex-direction:column;gap:10px}
.lock-feria small{order:-1;font-size:13px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#8fd197}
.lock-feria span{font-size:clamp(64px,13vh,120px);font-weight:800;line-height:.95;letter-spacing:-.03em}
.lock-feria p{margin:0;font-size:clamp(15px,2.2vh,19px);font-weight:400;opacity:.8;max-width:420px}
.lock-brands small{display:block;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;opacity:.6;margin-bottom:10px}
.lock-brands-row{display:flex;flex-wrap:wrap;gap:10px}
.lock-chip{background:#f3f4f2;border-radius:12px;height:clamp(40px,6.5vh,54px);padding:0 16px;display:flex;align-items:center}
.lock-chip img{height:clamp(18px,3.2vh,26px);width:auto}
.lock-card{flex:0 0 auto;width:min(420px,40vw);align-self:center;padding:clamp(18px,3.5vh,34px) clamp(20px,3vw,36px);display:flex;flex-direction:column}
.lock-card h1{margin-bottom:12px}
.keypad{gap:clamp(8px,1.4vh,14px)}
.keypad button{height:clamp(52px,9.5vh,76px)}
.lock-foot{margin:14px 0 0;font-size:12px;color:var(--ink2);opacity:1;text-align:center}
@media (orientation:portrait){
  .lockscreen{flex-direction:column;align-items:center;justify-content:center;height:auto;min-height:100dvh;overflow:visible}
  .lock-side{flex:none;align-items:center;text-align:center}
  .lock-feria{text-align:center;align-items:center}
  .lock-card{width:min(420px,100%)}
}

/* ===== v4 · Inicio sin scroll en horizontal ===== */
.home{display:grid;grid-template-columns:1.25fr 1fr 1fr;grid-template-rows:auto 1fr 1fr;gap:16px;height:calc(100dvh - 72px - 36px)}
.home-admin{grid-template-rows:auto 1fr 1fr auto}
.home-head{grid-column:1/-1;display:flex;align-items:baseline;gap:16px;flex-wrap:wrap}
.home .hello{margin:0;font-size:clamp(24px,4vh,32px)}
.home-date{color:var(--ink2);font-size:15px}
.home .tile{min-height:0;padding:clamp(16px,2.6vh,26px)}
.home .ti{width:clamp(44px,7vh,56px);height:clamp(44px,7vh,56px);font-size:clamp(22px,3.6vh,28px)}
.home .tt{font-size:clamp(19px,3.2vh,24px)}
.h-new{grid-column:1;grid-row:2/4;min-height:0}
.h-new .ti{width:clamp(64px,11vh,96px);height:clamp(64px,11vh,96px);font-size:clamp(34px,6vh,52px);border-radius:24px}
.h-new .tt{font-size:clamp(30px,5.5vh,44px)}
.h-new .ts{font-size:clamp(15px,2.3vh,18px)}
.h-exp{grid-column:2;grid-row:2}
.h-stock{grid-column:3;grid-row:2}
.h-hist{grid-column:2/4;grid-row:3}
.h-admin{grid-column:1/-1;display:flex;align-items:center;gap:12px;background:#fff;border-radius:18px;box-shadow:var(--sh);padding:10px 12px}
.h-admin-lbl{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink2);padding:0 8px;white-space:nowrap}
.atile{flex:1;display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:12px;text-decoration:none;color:var(--ink);min-width:0}
.atile:active{background:var(--bg)}
.atile .ti{width:40px;height:40px;font-size:18px;margin:0;flex:none;border-radius:12px}
.atile b{display:block;font-size:15px}
.atile small{display:block;font-size:13px;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (orientation:landscape){ body.page-home{overflow:hidden} body.page-home .wrap{padding-top:18px;padding-bottom:18px;max-width:none} }
@media (orientation:portrait){
  .home{height:auto;grid-template-columns:1fr 1fr;grid-template-rows:auto}
  .h-new{grid-column:1/-1;grid-row:auto;min-height:200px}
  .h-exp,.h-stock{grid-row:auto;grid-column:auto;min-height:150px}
  .h-hist{grid-column:1/-1;grid-row:auto;min-height:120px}
  .h-admin{flex-wrap:wrap}
}
.lock-brands-row{flex-wrap:nowrap;gap:8px}
.lock-chip{flex:0 1 auto;min-width:0;padding:0 clamp(8px,1vw,14px)}
.lock-chip img{height:clamp(14px,2.6vh,22px);max-width:100%;object-fit:contain}

/* ===== v5 · Portada con logo FIMMA y marcas a lo ancho ===== */
.lockscreen{flex-direction:column;align-items:stretch;justify-content:space-between;gap:clamp(14px,2.6vh,28px);padding:clamp(18px,3.5vh,40px) clamp(24px,4vw,64px)}
.lock-main{flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:space-between;gap:clamp(24px,4vw,64px)}
.lock-side{padding:0;justify-content:center;gap:clamp(18px,4vh,40px);align-self:stretch}
.lock-fimma{display:inline-block;background:#fff;border-radius:18px;padding:clamp(10px,1.8vh,18px) clamp(14px,1.8vw,24px);align-self:flex-start;box-shadow:0 10px 30px rgba(0,0,0,.3)}
.lock-fimma img{display:block;height:clamp(90px,19vh,170px);width:auto;max-width:100%}
.lock-feria small{order:0;margin-top:2px}
.lock-card{align-self:center;max-height:100%}
.lock-brands{flex:none;display:grid;grid-template-columns:repeat(var(--n,4),minmax(0,1fr));gap:clamp(10px,1.4vw,20px)}
.lock-brands-row{display:contents}
.lock-chip{height:clamp(56px,10vh,88px);padding:0 clamp(10px,1.4vw,22px);display:flex;align-items:center;justify-content:center;background:#f6f7f5;border-radius:14px;min-width:0}
.lock-chip img{height:calc(clamp(24px,4.4vh,40px) * var(--f,1));width:auto;max-width:88%;object-fit:contain}
@media (orientation:portrait){
  .lock-main{flex-direction:column}
  .lock-side{align-items:center;text-align:center}
  .lock-fimma{align-self:center}
  .lock-brands{grid-template-columns:repeat(2,minmax(0,1fr))}
}
body.lock .wrap{max-width:none;padding:0;margin:0}
.lock-chip img{height:calc(clamp(26px,5vh,46px) * var(--f,1));max-width:90%}
.lock-logo{height:clamp(96px,17vh,150px);width:auto}
.lock-brand{gap:clamp(16px,2vw,26px)}
.lock-co{font-size:clamp(22px,3.6vh,32px);line-height:1.15}
.lock-co-sub{font-size:clamp(15px,2.4vh,20px);opacity:.8;margin-top:4px}
.lock-fimma img{height:clamp(84px,16vh,150px)}

/* ===== v6 · Paso 1 / Paso 2 ===== */
.steps{display:flex;align-items:center;gap:10px;font-weight:700;font-size:15px;color:var(--ink2)}
.step{display:inline-flex;align-items:center;gap:8px;padding:6px 14px 6px 6px;border-radius:999px;background:#fff;box-shadow:var(--sh)}
.step b{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--line);color:var(--ink2);font-size:14px}
.step.on{color:var(--ink)} .step.on b{background:var(--accent);color:#fff}
.step.done{color:var(--ok)} .step.done b{background:#e1f4e8;color:var(--ok)}
.step-line{width:36px;height:2px;background:var(--line)}
.step.pulse{animation:pulse 1.6s ease-in-out infinite}
@keyframes pulse{50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--accent) 25%,transparent)}}

.page-p1 .wrap{max-width:none;padding:16px 22px 20px}
.p1,.p2{display:grid;gap:14px}
.p1{grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);grid-template-rows:auto 1fr auto}
.p1-head{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.p1-err{margin:0}
.p1 .card,.p2 .card{margin:0}
.p1-datos{display:flex;flex-direction:column;gap:2px}
.p1-datos label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600;color:var(--ink2);margin-bottom:8px}
.p1-datos input{min-height:50px;font-size:18px}
.h2 small{font-weight:500;color:var(--ink2);font-size:14px;margin-left:6px}
.itiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.itile{position:relative;margin:0}
.itile input{position:absolute;opacity:0;pointer-events:none}
.itile-in{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:clamp(84px,14vh,118px);padding:10px;border-radius:16px;border:2px solid var(--line);background:#fafbf9;color:var(--ink);font-weight:700;font-size:clamp(15px,2.3vh,18px);text-align:center;cursor:pointer;transition:all .12s}
.itile-in svg{color:var(--ink2)}
.itile-ok{position:absolute;top:8px;right:10px;display:none;width:24px;height:24px;border-radius:50%;background:#fff;color:var(--accent);font-style:normal;font-size:15px;line-height:24px;text-align:center}
.itile input:checked+.itile-in{background:var(--brand);border-color:var(--brand);color:#fff}
.itile input:checked+.itile-in svg{color:#fff}
.itile input:checked+.itile-in .itile-ok{display:block}
.itile-otros{grid-column:span 3}
.itile-otros .itile-in{flex-direction:row;min-height:58px}
.otro-in{margin-top:12px;min-height:52px;font-size:17px;border-color:var(--accent)}
.p1-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:12px}
.p1-actions .btn-lg{min-width:320px}

.listo{max-width:760px;margin:4vh auto 0;text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px}
.listo h1{margin:0;font-size:32px}
.listo-ico{width:84px;height:84px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:44px;font-weight:800}
.listo-ico.warn{background:var(--warn)}
.steps-big{font-size:17px;margin:8px 0}
.listo-hint{color:var(--ink2);margin:0}
.listo-act{justify-content:center;margin-top:10px}

.p2-head{display:flex}
.p2-private{font-size:14px;font-weight:700;color:#7a5200;background:color-mix(in srgb,var(--accent) 14%,#fff);padding:8px 14px;border-radius:999px}
.p2-resumen{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.p2-who{display:flex;flex-direction:column;flex:1;min-width:200px}
.p2-who b{font-size:19px}
.p2-ints{display:flex;flex-wrap:wrap;gap:6px}
.p2-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:14px}
.seg-big .seg-i span{padding:16px;font-size:18px}
.p2-notas{display:flex;flex-direction:column}
.p2-notas textarea{flex:1;min-height:200px;font-size:17px}

.pend-banner{margin-left:auto;padding:9px 16px;border-radius:999px;background:#fff1d9;color:#7a4b00;text-decoration:none;font-size:15px;box-shadow:var(--sh);animation:pulse 2s ease-in-out infinite}
.vrow-pend{border-left:5px solid var(--warn)}
.vbad .btn-sm{margin-top:4px}
@media (orientation:portrait){.p1,.p2-grid{grid-template-columns:1fr}.itiles{grid-template-columns:repeat(2,minmax(0,1fr))}.itile-otros{grid-column:span 2}}
.itile-in{transition:background .1s,border-color .1s}
.p2 .switch{display:flex;align-items:center;gap:12px;font-size:16px;font-weight:600;color:var(--ink);min-height:52px;cursor:pointer}
.p2 .grid2>label:not(.switch){display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600;color:var(--ink2)}
.p2 .grid2{margin-top:12px;align-items:end}

/* ===== v7 · Ofertas feria ===== */
.p1-note{align-self:center;color:var(--ink2);font-weight:600;margin-right:auto}
.txt-err{color:#c8160c}
.of-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:16px}
.of-t{margin-top:12px}
.of-head .psub{margin-bottom:0}
.of-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.of-card{position:relative;display:flex;flex-direction:column;background:#fff;border-radius:18px;box-shadow:var(--sh);overflow:hidden;color:var(--ink);text-decoration:none;border:2px solid transparent;transition:transform .12s}
.of-card:active{transform:scale(.98)}
.of-card.of-le{border-color:var(--accent)}
.of-img{display:block;height:clamp(90px,15vh,170px);background:#f2f4f1;padding:10px}
.of-img img{width:100%;height:100%;object-fit:contain}
.of-info{display:flex;flex-direction:column;gap:2px;padding:10px 16px 12px}
.of-brand{height:26px;display:flex;align-items:center;font-weight:700;color:var(--ink2)}
.of-brand img{max-height:24px;max-width:150px}
.of-model{font-size:20px;line-height:1.15}
.of-price{font-weight:700;font-size:17px}
.of-price small{color:var(--ink2);font-weight:400;font-size:12px}
.of-tags{position:absolute;top:10px;left:10px;right:10px;display:flex;flex-wrap:wrap;gap:6px}
.of-done{border-color:var(--brand)}

body.page-of .wrap{max-width:none;padding:14px 18px}
.ofx{display:grid;grid-template-columns:1fr 340px;gap:18px;height:calc(100vh - 110px)}
.ofx-prev{background:#9aa1a8;border-radius:16px;overflow:hidden}
.ofx-prev iframe{width:100%;height:100%;border:0;display:block}
.ofx-side{display:flex;flex-direction:column;gap:10px;background:#fff;border-radius:18px;box-shadow:var(--sh);padding:18px;overflow:auto}
.ofx-mq{display:flex;flex-direction:column;line-height:1.25}
.ofx-mq b{font-size:22px}
.ofx-row{display:flex;justify-content:space-between;align-items:baseline;font-size:16px;padding:6px 0;border-bottom:1px solid var(--line)}
.ofx-row b{font-size:19px}
.ofx-lbl{font-weight:700;color:var(--ink2);font-size:13px;text-transform:uppercase;letter-spacing:.04em;margin-top:4px}
.ofx-seg{margin:0}
.ofx-seg .seg-i span{padding:12px 4px;font-size:15px}
.ofx-in{display:flex;align-items:center;border:2px solid var(--brand);border-radius:14px;padding:0 16px;background:#fff}
.ofx-in input{flex:1;border:0;outline:0;font-size:30px;font-weight:700;padding:10px 0;min-width:0;background:transparent;text-align:right}
.ofx-in span{font-size:24px;font-weight:700;color:var(--ink2);margin-left:8px}
.ofx-quick{display:flex;gap:6px}
.chipb{flex:1;border:1.5px solid var(--line);background:#fff;border-radius:10px;padding:10px 0;font-weight:700;font-size:15px;color:var(--ink)}
.chipb:active{background:var(--line)}
.ofx-res{margin-top:auto}
.ofx-res .ofx-row b{color:#c8160c;font-size:16px}
.ofx-neto{display:flex;flex-direction:column;background:var(--brand);color:#fff;border-radius:14px;padding:12px 16px;margin-top:8px}
.ofx-neto span{font-size:13px;opacity:.8;text-transform:uppercase;letter-spacing:.04em}
.ofx-neto b{font-size:32px;line-height:1.15}
.ofx-neto small{opacity:.7}
.ofx-act{display:flex;flex-direction:column;gap:8px}
.ofx-act .btn{width:100%;flex-direction:column;line-height:1.15}
.ofx-act .btn small{font-size:12px;font-weight:400;opacity:.8}
.ofx-st{margin:0;font-size:12px;text-align:center}
.ofx-in input,.ofx-in input:focus{border:0!important;box-shadow:none!important;outline:0!important;background:transparent!important;border-radius:0!important;padding:10px 0!important;margin:0!important;height:auto!important}

/* ===== v8 · Máquina = documento + "Enviar al cliente" ===== */
.mbar{display:flex;align-items:center;gap:20px;padding:14px 20px;margin-bottom:14px}
.mbar-brand{max-height:42px;max-width:170px}
.mbar-t{flex:1;min-width:0}
.mbar-t h1{margin:2px 0 0;font-size:26px;line-height:1.1}
.mbar-price{font-size:24px;font-weight:800;white-space:nowrap}
.mbar-price small{font-size:13px;font-weight:400;color:var(--ink2)}
.mbar-act{display:flex;gap:10px}
.mdoc{margin-bottom:14px}
.mdoc-hoja{background:#9aa1a8;border-radius:16px;overflow:hidden;height:calc(100vh - 210px);min-height:420px}
.mdoc-hoja iframe{width:100%;height:100%;border:0;display:block}
.ofx{grid-template-columns:1fr 420px}
.ofx-side{gap:8px;padding:14px 16px}
.ofx-mq b{font-size:20px}
.ofx-ya{width:100%;padding:10px 12px;border:1.5px solid var(--line);border-radius:12px;font-size:15px;background:#fff}
.ofx-cli{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.ofx-cli input{width:100%;padding:10px 12px!important;border:1.5px solid var(--line);border-radius:12px;font-size:16px;min-height:0;margin:0}
.ofx-cli .span2{grid-column:span 2}
.ofx-dto{display:grid;grid-template-columns:1.25fr 1fr;gap:8px;align-items:stretch}
.ofx-seg .seg-i span{padding:10px 2px;font-size:14px}
.ofx-in{padding:0 12px}
.ofx-in.off{opacity:.35;pointer-events:none}
.ofx-in input,.ofx-in input:focus{font-size:24px;padding:4px 0!important}
.ofx-in span{font-size:20px}
.chipb{padding:7px 0;font-size:14px}
.ofx-neto{flex-direction:row;align-items:center;justify-content:space-between;padding:10px 16px;margin-top:2px}
.ofx-neto span{font-size:12px}
.ofx-neto em{display:block;font-style:normal;text-transform:none;letter-spacing:0;color:#ffd2cf;font-size:13px;opacity:1}
.ofx-neto b{font-size:28px}
.ofx-act{flex-direction:row;margin-top:auto}
.ofx-act .btn{flex:1;min-height:58px;font-size:17px;padding:0 10px}
/* v9 · panel de oferta sin scroll en la tablet */
body.page-of .top{padding-top:6px;padding-bottom:6px}
body.page-of .wrap{padding:10px 14px}
.ofx{height:calc(100vh - 86px);gap:12px;grid-template-columns:1fr 400px}
.ofx-side{gap:clamp(4px,0.9vh,8px);padding:12px 14px;overflow:hidden}
.ofx-lbl{margin:0;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ofx-ya{padding:clamp(6px,1vh,9px) 10px;font-size:15px}
.ofx-cli{gap:5px}
.ofx-cli input{padding:clamp(6px,1vh,9px) 10px!important;font-size:15px}
.ofx-row{padding:2px 0;font-size:15px}
.ofx-row b{font-size:17px}
.ofx-seg .seg-i span{padding:clamp(6px,1.1vh,10px) 2px}
.ofx-in input,.ofx-in input:focus{font-size:22px;padding:2px 0!important}
.chipb{padding:clamp(4px,0.8vh,7px) 0}
.ofx-neto{padding:clamp(6px,1vh,10px) 14px}
.ofx-neto b{font-size:clamp(22px,3.4vh,28px)}
.ofx-act .btn{min-height:clamp(44px,7vh,56px);font-size:16px}
.ofx-side .flash{margin:0;padding:8px 12px;font-size:14px}

/* ===== v10 · Máquina a pantalla completa (sin precio) ===== */
body.page-pres{background:#fff;overflow:hidden}
body.page-pres .wrap{max-width:none;padding:0;margin:0}
.pres{position:fixed;inset:0;background:#fff}
.pres-doc{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.pres-pdf{overflow:auto;padding:0 70px}
.pres-btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:999px;background:rgba(36,40,43,.82);color:#fff;font-weight:700;font-size:17px;text-decoration:none;box-shadow:0 4px 14px rgba(0,0,0,.18);cursor:pointer}
.pres-back{position:absolute;top:12px;left:12px;width:48px;height:48px;font-size:30px;line-height:1;padding-bottom:3px}
.pres-tools{position:absolute;right:14px;bottom:14px;display:flex;gap:8px;align-items:center}
.pres-sm{height:44px;padding:0 16px;font-size:15px;background:rgba(36,40,43,.6)}
.pres-next{height:52px;padding:0 26px;background:var(--accent)}
.pres-vid{position:absolute;inset:0;background:rgba(20,22,24,.92);padding:70px 40px 30px;overflow:auto}
.pres-close{position:absolute;top:14px;right:14px;width:48px;height:48px;font-size:20px}
body.page-pres .flash{position:fixed;z-index:30;top:12px;left:50%;transform:translateX(-50%);margin:0;box-shadow:0 6px 20px rgba(0,0,0,.2);animation:flashout 4s forwards}
@keyframes flashout{0%,80%{opacity:1}100%{opacity:0;visibility:hidden}}

/* ===== v11 · Permisos de máquinas ===== */
.perm{border:0;padding:0;margin:14px 0 6px}
.perm legend{font-weight:700;font-size:17px;margin-bottom:8px}
.perm-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.perm-head b{margin-right:auto}
.perm-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:10px}
.perm-i{margin:0!important;cursor:pointer}
.perm-i input{position:absolute;opacity:0}
.perm-i span{display:flex;flex-direction:column;padding:10px 14px;border:2px solid var(--line);border-radius:12px;background:#fff;line-height:1.2;position:relative}
.perm-i small{color:var(--ink2);font-size:12px}
.perm-i input:checked+span{border-color:var(--accent);background:#eaf6ec}
.perm-i input:checked+span::after{content:"✓";position:absolute;top:8px;right:10px;color:var(--accent);font-weight:800}
.perm-stock span{max-width:360px}
.tile-off{opacity:.45;pointer-events:none}
.ofx-inc{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.ofx-chk{margin:0!important;cursor:pointer}
.ofx-chk input{position:absolute;opacity:0}
.ofx-chk span{display:block;text-align:center;padding:clamp(6px,1.1vh,10px) 4px;border:1.5px solid var(--line);border-radius:12px;font-weight:600;font-size:14px;color:var(--ink2);background:#fff}
.ofx-chk input:checked+span{border-color:var(--accent);background:#eaf6ec;color:var(--ink)}

/* ===== v12 · Solo horizontal ===== */
.giro{display:none}
@media screen and (orientation: portrait){
  .giro{display:flex;position:fixed;inset:0;z-index:999;background:#24282b;color:#fff;align-items:center;justify-content:center;flex-direction:column;gap:16px;font-size:24px;font-weight:700;text-align:center;padding:30px}
  .giro i{font-style:normal;font-size:72px;line-height:1;animation:giro 2s ease-in-out infinite}
  .giro small{font-size:16px;font-weight:400;opacity:.7}
}
@keyframes giro{0%,30%{transform:rotate(0)}60%,100%{transform:rotate(90deg)}}

/* ===== v13 · Tarjetas de máquinas en color, mismo formato ===== */
.home .h-exp,.home .h-stock{color:#fff;border:0;position:relative;overflow:hidden}
.home .h-exp{background:linear-gradient(135deg,#34ab40 0%,#22802c 100%)}
.home .h-stock{background:linear-gradient(135deg,#df6a2a 0%,#b8401a 100%)}
.home .h-exp::after,.home .h-stock::after{content:"";position:absolute;right:-40px;top:-40px;width:170px;height:170px;border-radius:50%;background:rgba(255,255,255,.08)}
.home .h-exp .ti,.home .h-stock .ti{background:rgba(255,255,255,.18);color:#fff}
.home .h-exp .tt,.home .h-stock .tt{display:flex;flex-direction:column;margin-top:auto;font-size:clamp(28px,5vh,40px);line-height:1.05;color:#fff;letter-spacing:-.01em}
.home .h-exp .tt small,.home .h-stock .tt small{font-size:clamp(14px,2.2vh,17px);font-weight:600;letter-spacing:.06em;text-transform:uppercase;opacity:.85;margin-bottom:4px}
.home .h-exp .ts,.home .h-stock .ts{color:rgba(255,255,255,.85)}
.home .h-stock.tile-off{opacity:1;filter:grayscale(1) brightness(.8)}

/* ===== v14 · Visitas en hoja de cálculo ===== */
body.page-xls .wrap{max-width:none;padding:12px 18px}
.xls-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:10px}
.xls-head .ptitle{margin:0}
.xls-head .psub{margin:2px 0 0}
.xls-tools{display:flex;gap:10px;align-items:center}
.xls-tools .filters{margin:0}
.xls-tools .search{width:260px;flex:none}
.csv-form{display:flex;gap:8px;align-items:center}
.csv-form select{max-width:190px}
body.page-xls .people{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px;margin-bottom:10px}
body.page-xls .person{padding:8px 10px}
body.page-xls .toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
body.page-xls .toolbar .filters{margin:0}
body.page-xls .toolbar .trow{flex:1;min-width:300px}
.sheet-wrap{background:#fff;border-radius:14px;box-shadow:var(--sh);overflow:auto;max-height:calc(100vh - 190px);-webkit-overflow-scrolling:touch}
.xls{width:100%;border-collapse:separate;border-spacing:0;font-size:14px}
.xls th{position:sticky;top:0;z-index:2;background:#24282b;color:#fff;text-align:left;font-weight:700;font-size:12.5px;letter-spacing:.02em;padding:10px 10px;white-space:nowrap}
.xls th:first-child{border-top-left-radius:14px}
.xls th:last-child{border-top-right-radius:14px}
.xls td{padding:11px 10px;border-bottom:1px solid #e8ebef;border-right:1px solid #f1f3f5;vertical-align:middle;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.xls tbody tr:nth-child(even) td{background:#f8f9fb}
.xls tbody tr{cursor:pointer}
.xls tbody tr:active td,.xls tbody tr:hover td{background:#e9f5eb}
.xls tr.r-pend td:first-child{box-shadow:inset 4px 0 0 #e7a321}
.xls .c-n{color:#9aa1a8;font-size:12px;text-align:right;width:34px}
.xls .c-strong a{color:var(--ink);font-weight:700;text-decoration:none}
.xls .c-mail{max-width:200px;color:#55606e}
.xls .c-int{max-width:240px}
.xls .nw{white-space:nowrap}
.lvl{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:700}
.lvl.n-alto{background:#e1f4e5;color:#1f7a2a}
.lvl.n-medio{background:#fff3d6;color:#9a6a00}
.lvl.n-bajo{background:#eceff2;color:#55606e}
.st{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:700}
.st-pend{background:#fff0d4;color:#a5650a}
.st-ok{background:#e1f4e5;color:#1f7a2a}
.st-mail{background:#e6f0fb;color:#2a62a3}
body.page-xls .wrap{display:flex;flex-direction:column;height:calc(100dvh - 70px);overflow:hidden}
body.page-xls .wrap>*{flex:none}
body.page-xls .sheet-wrap{flex:1 1 auto;min-height:0;max-height:none}
body.page-xls .people{display:flex;gap:8px;overflow-x:auto;margin-bottom:10px;padding-bottom:2px}
body.page-xls .person{display:flex;align-items:center;gap:8px;flex:none;padding:6px 14px 6px 6px;border-radius:999px}
body.page-xls .person .av{width:32px;height:32px;font-size:13px}
body.page-xls .person .pn{font-weight:700;font-size:14px;white-space:nowrap}
body.page-xls .person .pstats{font-size:12.5px;white-space:nowrap;color:var(--ink2)}
body.page-xls .fchip{padding:8px 14px;font-size:14px}
body.page-xls .toolbar .trow select,body.page-xls .toolbar .search,.xls-tools .search{padding-top:9px;padding-bottom:9px;min-height:0}
.xls .c-mail{max-width:180px}
.xls .c-int{max-width:200px}
.csv-lbl{font-weight:700;color:var(--ink2);font-size:14px}
/* filas: rojo claro = Paso 2 pendiente · verde claro = completo */
.xls tbody tr.r-pend td,.xls tbody tr.r-pend:nth-child(even) td{background:#fdeaea}
.xls tbody tr.r-ok td,.xls tbody tr.r-ok:nth-child(even) td{background:#e8f6ea}
.xls tbody tr.r-pend td:first-child{box-shadow:inset 5px 0 0 #d9463b}
.xls tbody tr.r-ok td:first-child{box-shadow:inset 5px 0 0 #2a9a35}
.xls tbody tr.r-pend td{border-bottom-color:#f5cfcc}
.xls tbody tr.r-ok td{border-bottom-color:#cbe9d0}
.xls tbody tr.r-pend:active td,.xls tbody tr.r-pend:hover td{background:#f9d9d7}
.xls tbody tr.r-ok:active td,.xls tbody tr.r-ok:hover td{background:#d6efda}
.st-pend{background:#d9463b;color:#fff}
.st-ok{background:#2a9a35;color:#fff}
.xls-right{display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.xls-right .csv-form .btn{min-height:44px;padding:0 16px}
.xls-right .csv-form select{padding-top:9px;padding-bottom:9px;min-height:0}
.csv-lbl{white-space:nowrap}
.csv-form .btn{min-height:46px;padding:0 18px;white-space:nowrap}
.csv-form select{padding-top:10px;padding-bottom:10px;min-height:0}
body.page-xls .xls-tools{margin-bottom:10px}
body.page-xls .xls-tools .search{flex:1;width:auto}

/* ===== v15 · Máquinas: foto entera y separadas por fabricante ===== */
.mimg{background:#fff;border-bottom:1px solid #eef0f3}
.mimg img{object-fit:contain;padding:12px;box-sizing:border-box}
.mimg .mlogo{padding:0}
.mbrand{margin-bottom:22px}
.mbrand-h{display:flex;align-items:center;gap:14px;margin:6px 0 12px;padding-bottom:8px;border-bottom:2px solid var(--line)}
.mbrand-h img{height:30px;width:auto;max-width:200px}
.mbrand-h b{font-size:22px}
.mbrand-h span{font-size:14px;font-weight:600;color:var(--ink2)}
.borrar-f{margin-bottom:14px}

/* ===== v16 · Aviso de bloqueo a pantalla completa ===== */
.lockwarn{position:fixed;top:0;right:0;bottom:0;left:0;transform:none;width:auto;padding:0;border-radius:0;background:rgba(20,22,24,.72);display:flex;align-items:center;justify-content:center;z-index:900;box-shadow:none;animation:lwin .2s ease-out}
.lockwarn[hidden]{display:none}
.lw-box{background:#fff;color:var(--ink);border-radius:24px;padding:34px 46px;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.35);min-width:420px}
.lw-ico{font-size:46px;line-height:1}
.lw-t{font-size:30px;font-weight:800;margin:10px 0 4px}
.lw-s{font-size:19px;color:var(--ink2)}
.lw-s b{display:block;font-size:64px;line-height:1.1;color:#d9463b;margin:8px 0}
.lw-btn{margin-top:14px;background:var(--accent);color:#fff;font-weight:700;font-size:19px;padding:16px 26px;border-radius:14px}
@keyframes lwin{from{opacity:0}to{opacity:1}}
.flash.toast{position:fixed;top:76px;left:50%;transform:translateX(-50%);z-index:800;margin:0;box-shadow:0 8px 28px rgba(0,0,0,.18);white-space:nowrap;animation:flashout 6s forwards}

/* ===== v17 · Paso de opcionales ===== */
body.page-opc .wrap{max-width:980px;padding-top:14px}
.opc{display:flex;flex-direction:column;height:calc(100dvh - 100px)}
.opc-head .ptitle{margin:2px 0}
.opc-head .psub{margin:0 0 12px}
.opc-list{flex:1;min-height:0;overflow:auto;background:#fff;border-radius:18px;box-shadow:var(--sh)}
.opc-row{display:flex;align-items:center;gap:14px;padding:clamp(10px,1.8vh,16px) 20px;border-bottom:1px solid var(--line);margin:0!important;font-size:17px}
.opc-row:last-child{border-bottom:0}
.opc-base{background:#f6f7f9;font-size:16px}
.opc-n{flex:1}
.opc-p{font-weight:800;white-space:nowrap}
.opc-i{cursor:pointer}
.opc-i input{position:absolute;opacity:0}
.opc-ck{flex:none;width:30px;height:30px;border-radius:9px;border:2px solid #c3c9d0;display:grid;place-items:center;background:#fff}
.opc-i input:checked~.opc-ck{background:var(--accent);border-color:var(--accent)}
.opc-i input:checked~.opc-ck::after{content:"✓";color:#fff;font-weight:900;font-size:18px}
.opc-i:has(input:checked){background:#eef8f0}
.opc-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:12px}
.opc-tot{display:flex;align-items:baseline;gap:12px}
.opc-tot span{font-weight:700;color:var(--ink2);text-transform:uppercase;font-size:13px;letter-spacing:.05em}
.opc-tot b{font-size:32px}
.opc-tot small{color:var(--ink2)}
body.page-opc .wrap{padding-bottom:12px}
.opc{height:calc(100dvh - 72px - 30px)}

/* ===== v18 · Fotos de opcionales ===== */
.opc-ver{flex:none;display:flex;align-items:center;gap:8px;border:1.5px solid var(--line);background:#fff;border-radius:12px;padding:4px 12px 4px 4px;font-weight:700;font-size:14px;color:var(--ink);cursor:pointer}
.opc-ver img{width:56px;height:42px;object-fit:cover;border-radius:8px;display:block}
.opc-ver:active{background:#eef1f5}
.lbox{position:fixed;inset:0;z-index:850;background:rgba(15,17,19,.88);display:flex;align-items:center;justify-content:center;padding:24px}
.lbox[hidden]{display:none}
.lbox-in{display:flex;flex-direction:column;max-width:100%;max-height:100%;background:#fff;border-radius:20px;overflow:hidden}
.lbox-in img{display:block;max-width:calc(100vw - 48px);max-height:calc(100dvh - 160px);object-fit:contain;background:#fff;margin:0 auto}
.lbox-bar{display:flex;align-items:center;gap:12px;padding:14px 18px;border-top:1px solid var(--line)}
.lbox-bar>div{flex:1;display:flex;flex-direction:column}
.lbox-bar b{font-size:19px}
.lbox-bar span{color:var(--ink2);font-weight:700}
.opc-adm{margin-top:10px;border-top:1px solid var(--line);padding-top:10px}
.opc-adm-r{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid #f0f2f4}
.opc-adm-n{flex:1;font-weight:600}
.opc-adm-img{width:64px;height:48px;object-fit:cover;border-radius:8px}

/* ===== v19 · Opcionales con código, descripción y foto ===== */
.opc-tab{width:100%;border-collapse:collapse;margin:4px 0 14px;font-size:15px}
.opc-tab th{text-align:left;font-size:12px;color:var(--ink2);text-transform:uppercase;letter-spacing:.04em;padding:6px 8px;border-bottom:2px solid var(--line)}
.opc-tab td{padding:8px;border-bottom:1px solid var(--line);vertical-align:middle}
.opc-tab img{width:64px;height:48px;object-fit:cover;border-radius:8px;display:block}
.opc-tab .r{text-align:right}
.opc-tab .nw{white-space:nowrap}
.opc-form-g{display:grid;grid-template-columns:1fr 300px;gap:24px}
.opc-form-foto{display:flex;flex-direction:column;gap:10px}
.opc-form-foto img{width:100%;max-height:220px;object-fit:contain;border-radius:12px;border:1px solid var(--line);background:#fff}
.opc-nofoto{height:160px;border:2px dashed var(--line);border-radius:12px;display:grid;place-items:center;color:var(--ink2)}
.opc-cod{display:block;font-size:12px;color:var(--ink2);font-weight:600;letter-spacing:.03em}
.opc-desc{display:block;font-size:13px;color:var(--ink2);margin-top:2px;line-height:1.3}
#lb-d{color:var(--ink2);font-size:14px;margin:2px 0;max-width:520px}

/* ===== v20 · Descuento feria de serie ===== */
.dto-serie{border:1.5px solid var(--line);border-radius:14px;padding:12px 14px;background:#f9fafb}
.dto-serie-r{display:grid;grid-template-columns:260px 1fr;gap:10px;margin:8px 0 4px}
.dto-hint{font-size:13px;color:var(--ink2);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.dto-hint b{color:var(--ink)}
.dto-hint .chipb{flex:none;padding:5px 10px;font-size:13px}
.ofx-lbl-dto{margin-top:0}
.ofx-opcdto{display:flex;align-items:center;gap:8px;font-weight:600;font-size:14px}
.ofx-opcdto input{width:78px;padding:6px 8px!important;border:1.5px solid var(--line);border-radius:10px;text-align:right;font-size:16px;font-weight:700;min-height:0;margin:0}
.ofx-opcdto .u{color:var(--ink2)}
.ofx-opcdto small{color:var(--ink2);font-weight:400}

/* ---- Listado de máquinas (v24): bloques por marca con color, tarjetas compactas, vista lista ---- */
.mhead{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:12px}
.mhead .ptitle{margin:0 0 2px}.mhead .psub{margin:0}
.mtools{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.mlogos{display:flex;gap:8px;flex-wrap:wrap}
.mlg{display:grid;place-items:center;height:48px;min-width:64px;padding:0 14px;background:#fff;border:2px solid var(--line);border-radius:12px;text-decoration:none;color:var(--ink);font-weight:700;font-size:15px;box-sizing:border-box}
.mlg img{height:24px;width:auto;max-width:130px;display:block}
.mlg.on{border-color:var(--bc,var(--ink));box-shadow:0 0 0 3px color-mix(in srgb,var(--bc,var(--ink)) 22%,transparent)}
.mlg-all.on{background:var(--ink);color:#fff;border-color:var(--ink);box-shadow:none}
.mlogos:has(.mlg.on:not(.mlg-all)) .mlg:not(.on){opacity:.45}
.mview{display:flex;background:#fff;border:2px solid var(--line);border-radius:12px;overflow:hidden;height:48px}
.mview button{border:0;background:none;width:48px;font-size:22px;color:var(--ink2);cursor:pointer;padding:0}
.mview button.on{background:var(--ink);color:#fff}

.mbrands{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-start}
.mbrands .mbrand{flex:1 1 auto;margin:0;background:color-mix(in srgb,var(--bc) 7%,#fff);border:1px solid color-mix(in srgb,var(--bc) 25%,#fff);border-top:5px solid var(--bc);border-radius:14px;padding:10px 12px 12px}
.mbrands .mbrand-h{margin:0 0 10px;padding:0;border:0;gap:10px}
.mbrands .mbrand-h img{height:24px}
.mbrands .mbrand-h span{background:var(--bc);color:#fff;font-size:13px;font-weight:800;border-radius:999px;min-width:24px;height:24px;display:grid;place-items:center;padding:0 7px;box-sizing:border-box}
.mbrands .mgrid{display:flex;flex-wrap:wrap;gap:10px}
.mbrands .mcard{width:182px;border-radius:12px;box-shadow:0 1px 3px rgba(15,23,42,.08);border:1px solid #e8ebf0}
.mbrands .mimg{aspect-ratio:auto;height:104px;border-bottom:3px solid var(--bc)}
.mbrands .mimg img{padding:6px}
.mbrands .mbody{padding:8px 10px 10px;gap:1px}
.mbrands .mmod{font-size:16px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mbrands .mcat{font-size:12px;color:var(--ink2);font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.mbrands .mprice{font-size:16px;color:var(--bc);margin-top:4px}
.mbrands .mdisp{font-size:12px}

/* vista lista */
.mbrands.mlist{display:block}
.mbrands.mlist .mbrand{margin-bottom:12px}
.mbrands.mlist .mgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:8px}
.mbrands.mlist .mcard{width:auto;flex-direction:row;align-items:center}
.mbrands.mlist .mimg{width:110px;height:64px;flex:none;border-bottom:0;border-right:3px solid var(--bc)}
.mbrands.mlist .mbody{flex:1;display:grid;grid-template-columns:1fr auto;grid-template-areas:"mod price" "cat price";align-items:center;padding:6px 14px}
.mbrands.mlist .mmod{grid-area:mod}.mbrands.mlist .mcat{grid-area:cat}
.mbrands.mlist .mprice{grid-area:price;margin:0;font-size:17px}
.mbrands.mlist .mdisp{grid-column:1/-1}
body.page-maq .wrap{max-width:none;padding:12px 18px 40px}
body.page-maq .mbrands .mcard{width:170px}
body.page-maq .mbrands .mimg{height:94px}
body.page-maq .mbrands.mlist .mcard{width:auto}
body.page-maq .mbrands.mlist .mimg{height:64px}
.mlogos:has(.mlg.on:not(.mlg-all)) .mlg-all{opacity:1}
/* ¿Qué le interesa?: 4 columnas (8 máquinas) + "Otras consultas" a lo ancho */
.p1-int .itiles{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.p1-int .itile-in{min-height:clamp(78px,12.5vh,108px);font-size:clamp(14px,2.1vh,17px)}
.p1-int .itile-cons{grid-column:1/-1}
.p1-int .itile-cons .itile-in{flex-direction:row;min-height:54px;border-style:dashed;background:#fff}
.p1-int .itile-cons small{display:block;font-weight:500;font-size:13px;color:var(--ink2)}
.p1-int .itile-cons input:checked+.itile-in{background:#475569;border-color:#475569;border-style:solid}
.p1-int .itile-cons input:checked+.itile-in small{color:#e2e8f0}
.p1-int textarea.otro-in{width:100%;box-sizing:border-box;resize:none;font:inherit;font-size:17px;padding:12px 14px;border:2px solid var(--accent);border-radius:12px}
@media (orientation:portrait){.p1-int .itiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
.p1-int .itiles-cons{margin-top:10px}
/* Paso 1 sin scroll en tablets (alto útil < 860 px) */
@media (orientation:landscape) and (max-height:860px){
  .page-p1 .wrap{padding:10px 18px 12px}
  .p1{gap:10px}
  .p1 .card{padding:14px 18px}
  .p1 .h2{margin-bottom:8px}
  .p1-datos label{margin-bottom:4px;gap:2px}
  .p1-datos input{min-height:44px;font-size:17px}
  .p1-int .itiles{gap:8px}
  .p1-int .itile-in{min-height:clamp(60px,10.5vh,96px);gap:4px;padding:6px}
  .p1-int .itile-in svg{width:28px;height:28px}
  .p1-int .itiles-cons{margin-top:8px}
  .p1-int .itile-cons .itile-in{min-height:46px}
  .p1-int .otro-in{margin-top:8px;min-height:44px;font-size:16px}
  .p1-int textarea.otro-in{height:52px;min-height:0;padding:8px 12px;font-size:16px}
  .p1-actions .btn-lg{min-height:52px}
  .steps .step{padding-top:4px;padding-bottom:4px}
}
/* logo de Europea en los avisos (bloqueo y errores) */
.lw-ico{display:flex;flex-direction:column;align-items:center;gap:6px}
.lw-ico img{width:78px;height:78px;display:block}
.lw-ico span{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink2)}
.errmodal .lw-box{max-width:620px;border-top:8px solid #d9463b}
.errmodal .lw-t{color:#d9463b}
.em-msg{font-size:24px;font-weight:600;line-height:1.35;color:var(--ink);margin:6px 0 4px}
.errmodal .em-ok{border:0;cursor:pointer;min-width:260px;font-family:inherit}
.campo-falta{border-color:#d9463b!important;box-shadow:0 0 0 4px rgba(217,70,59,.18)!important;background:#fff5f4!important}
.mbrands .mbrand{flex:1 1 100%}
/* cada marca en su fila: logo a la izquierda, máquinas a la derecha (cabe todo sin scroll) */
.mbrands .mbrand{display:flex;align-items:center;gap:14px;padding:10px 12px}
.mbrands .mbrand-h{flex:none;width:118px;flex-direction:column;align-items:center;justify-content:center;gap:8px;margin:0;text-align:center}
.mbrands .mbrand-h img{height:auto;max-height:34px;max-width:110px}
.mbrands .mgrid{flex:1;min-width:0}
body.page-maq .mbrands .mimg{height:84px}
body.page-maq .mbrands.mlist .mimg{height:60px}
.mbrands.mlist .mbrand{margin-bottom:10px}
@media (orientation:portrait){.mbrands .mbrand{flex-direction:column;align-items:stretch}.mbrands .mbrand-h{width:auto;flex-direction:row;justify-content:flex-start}}
body.page-maq .wrap{padding-bottom:12px}
.em-list{list-style:none;margin:10px auto 6px;padding:0;display:inline-flex;flex-direction:column;gap:6px;text-align:left}
.em-list li{font-size:22px;font-weight:700;color:var(--ink);padding-left:30px;position:relative}
.em-list li::before{content:"✕";position:absolute;left:0;top:0;color:#d9463b;font-weight:800}
.errmodal .lw-box{display:flex;flex-direction:column;align-items:center}
.oblig{color:#d9463b;font-weight:800}
.p1-datos label>span{display:block}
/* oferta: lo que ve el cliente (tarifa) y lo interno (precio especial de palabra) */
.ofx-pub{font-size:13px;color:var(--ink2);background:#f1f5f9;border-radius:10px;padding:8px 12px;margin:6px 0}
.ofx-int{border:1.5px dashed #94a3b8;border-radius:12px;padding:0 12px;margin:4px 0 8px;background:#fafbfc}
.ofx-int>summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;padding:10px 0;font-weight:700;font-size:15px}
.ofx-int>summary::-webkit-details-marker{display:none}
.ofx-int>summary::after{content:"▾";color:var(--ink2);font-size:18px}
.ofx-int[open]>summary::after{content:"▴"}
.ofx-int>summary small{display:block;font-weight:500;font-size:12px;color:var(--ink2)}
.ofx-int[open]{padding-bottom:10px}
/* oferta: botón discreto para cerrar en feria */
.ofx-venta{margin-top:8px;width:100%;background:none;border:1.5px dashed #94a3b8;border-radius:12px;padding:10px;font:inherit;font-weight:700;font-size:15px;color:var(--ink2);cursor:pointer}
/* hoja de venta (formulario) */
.vta{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:12px;align-items:start}
.vta>.flash{grid-column:1/-1;margin:0}
.vta .card{margin:0;padding:14px 18px}
.vta-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px}
.vta-grid .span2{grid-column:1/-1}
.vta label{display:flex;flex-direction:column;gap:3px;font-size:13px;font-weight:600;color:var(--ink2);margin:0}
.vta label>span{display:block}
.vta input{min-height:44px;font-size:17px}
.vta-opc{margin:0 0 8px;padding:0;list-style:none;font-size:14px;line-height:1.5;max-height:110px;overflow:auto}
.vta-imp{display:grid;grid-template-columns:1.6fr 1fr;gap:12px}
.vta-in{display:flex;align-items:center;gap:6px}.vta-in input{flex:1;text-align:right;font-weight:800;font-size:20px}.vta-in i{font-style:normal;font-weight:700;color:var(--ink2)}
.vta-tot{display:flex;flex-wrap:wrap;gap:6px 16px;margin:8px 0;font-size:14px;color:var(--ink2)}.vta-tot b{color:var(--ink)}.vta-tot .r{color:#15803d}.vta-tot .r b{color:#15803d;font-size:16px}
.vta-row{display:flex;gap:8px;margin:6px 0}.vta-row .ofx-chk{flex:1}
.vta-row2{display:grid;grid-template-columns:1fr 1.4fr;gap:10px;margin:6px 0 10px}
.vta-btn{width:100%}
@media (orientation:portrait){.vta{grid-template-columns:1fr}}
.vta label>span.vta-in{display:flex}
/* pasos de la oferta */
.pasos{display:flex;gap:4px;margin:0 0 8px}
.pasos span{flex:1;display:flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;color:#94a3b8;padding:5px 6px;border-radius:8px;background:#f1f5f9;white-space:nowrap;overflow:hidden}
.pasos b{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#cbd5e1;color:#fff;font-size:11px;flex:none}
.pasos span.on{background:var(--ink);color:#fff}.pasos span.on b{background:#fff;color:var(--ink)}
.pasos span.ok{color:#15803d;background:#ecfdf3}.pasos span.ok b{background:#16a34a}
.ofx-next{width:100%;margin-top:8px;display:flex;flex-direction:column;align-items:center;gap:0;background:#fff;border:2px solid var(--ink);color:var(--ink)}
.ofx-next small{font-weight:500;font-size:12px;color:var(--ink2)}
.fin-cli{background:#f1f5f9;border-radius:10px;padding:8px 12px;margin-bottom:6px;font-size:15px}.fin-cli small{color:var(--ink2)}
.vta-pasos{grid-column:1/-1}.vta-pasos .pasos{max-width:760px;margin:0}
.vta-aviso{margin:4px 0 8px;font-size:13px;font-weight:700;color:#c8160c}
.perm-neg{margin-top:8px}.perm-neg-note{margin:4px 0 0;font-size:13px}
/* ---- Entrada con tarjeta QR (pantalla de bloqueo) ---- */
.qr-entrar{display:flex;flex-direction:column;align-items:center;gap:10px}
.qr-btn{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%;padding:28px 18px;border:0;border-radius:22px;background:#2a9a35;color:#fff;cursor:pointer;font-family:inherit}
.qr-btn .qr-ico{font-size:64px;line-height:1}
.qr-btn b{font-size:26px}
.qr-btn small{font-size:15px;opacity:.85}
.qr-alt{background:none;border:0;color:var(--ink2);text-decoration:underline;font:inherit;font-size:14px;cursor:pointer;padding:6px}
.qr-err{min-height:1.2em}
/* ---- Tarjetas QR (85 × 54 mm, se doblan por la mitad) ---- */
/* Tarjeta de acreditación vertical 10 × 14 cm: delante presentación, detrás QR. Se imprime en A4 (2 por hoja), se recorta y se dobla por la línea central */
.tj-hoja{display:flex;flex-direction:column;align-items:center;gap:6mm;padding:6mm 0}
.tj-par{display:flex;outline:.3mm dashed #999;break-inside:avoid;page-break-inside:avoid}
.tj{width:100mm;height:140mm;box-sizing:border-box;background:#fff;color:#1f2328;font-family:Arial,Helvetica,sans-serif;overflow:hidden;display:flex;flex-direction:column;align-items:center;text-align:center;position:relative}
.tj-front{border-right:.3mm dashed #999;padding:0}
.tj-head{align-self:stretch;background:#e6e8eb;color:#1f2328;height:52mm;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5mm}
.tj-head img{width:25mm;height:25mm;margin-bottom:1mm}.tj-head b{font-size:15pt;letter-spacing:.2mm}.tj-head small{font-size:8pt;color:#5f666d;letter-spacing:.6mm}
.tj-band{align-self:stretch;height:3.5mm;flex:none;background:linear-gradient(90deg,#2a9a35 0 50%,#c8160c 50% 100%)}
.tj-mid{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 6mm}
.tj-nom{font-size:28pt;font-weight:bold;line-height:1.08}
.tj-cargo{font-size:13pt;color:#2a9a35;font-weight:bold;margin-top:3mm;text-transform:uppercase;letter-spacing:.3mm}
.tj-feria-txt{font-size:8pt;color:#8a8f96;margin-top:4mm;letter-spacing:.3mm}
.tj-pie{align-self:stretch;margin:0 4mm 3mm;border-top:.3mm solid #e2e2e2;padding:3mm 0 0;display:flex;flex-direction:column;align-items:center;gap:1.5mm}
.tj-pie>small{font-size:6.5pt;color:#8a8f96;letter-spacing:.8mm;font-weight:bold;text-transform:uppercase}
.tj-marcas{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:15mm;gap:0 4mm;align-items:center;justify-items:center;width:100%}
.tj-marcas img{object-fit:contain}
.tj-back{justify-content:center;padding:8mm 7mm;gap:5mm}
.tj-back .tj-band{position:absolute;top:0;left:0;right:0;margin:0}
.tj-feria{height:15mm;width:auto}
.tj-qr{padding:3mm;border:.4mm solid #ddd;border-radius:3mm}.tj-qr svg{width:72mm;height:72mm;display:block}
.tj-qrtxt{display:flex;flex-direction:column;gap:1.8mm}.tj-qrtxt b{font-size:13pt}.tj-qrtxt span{font-size:11pt}.tj-qrtxt small{font-size:8.5pt;color:#c8160c;font-weight:bold;line-height:1.35;margin-top:1mm}
.tj-movil{margin-top:20px}.tj-qr-big svg{width:260px;height:260px}
@media print{
  @page{size:A4 portrait;margin:4mm 5mm}
  body.page-tarjeta{background:#fff}
  body.page-tarjeta .top,body.page-tarjeta .no-print,body.page-tarjeta .flash,body.page-tarjeta .lockwarn{display:none!important}
  body.page-tarjeta .wrap{padding:0;max-width:none}
  .tj-par{break-inside:avoid}
  body.page-tarjeta .tj-hoja{padding:0;gap:5mm}
  body.page-tarjeta .tj-par:nth-child(2n){break-after:page;page-break-after:always}
}
.qr-foto{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;padding:14px;border:2px dashed #94a3b8;border-radius:18px;cursor:pointer;color:var(--ink);box-sizing:border-box;text-align:center}
.qr-foto input{position:absolute;opacity:0;width:1px;height:1px}
.qr-foto .qr-ico{font-size:30px}.qr-foto b{font-size:17px}.qr-foto small{font-size:13px;color:var(--ink2)}
.qr-foto.main{border:0;background:#2a9a35;color:#fff;padding:28px 18px}.qr-foto.main b{font-size:24px}.qr-foto.main small{color:#e8f5ea}.qr-foto.main .qr-ico{font-size:56px}
.qr-mail{max-width:460px;width:100%;display:flex;flex-direction:column;gap:10px}.qr-mail h1{text-align:center;margin:0}.qr-mail input{min-height:52px;font-size:18px}
a.who{text-decoration:none;color:inherit}
.miqr-card{display:flex;gap:28px;align-items:center;flex-wrap:wrap}
.qr-btn[hidden]{display:none!important}
/* dispositivos */
.dev-no{text-align:center;display:flex;flex-direction:column;gap:8px;align-items:center}
.dev-no h1{margin:0;font-size:24px}.dev-ico{font-size:44px}
.dev-cod{background:#f1f5f9;border-radius:10px;padding:8px 14px;font-size:15px}.dev-cod b{font-family:monospace;font-size:20px;letter-spacing:.08em}
.dev-pend{color:#b45309;font-weight:600}
.dev-form{display:flex;flex-direction:column;gap:8px;width:100%}.dev-form input{min-height:48px;font-size:17px}
.dev-list{display:flex;flex-direction:column;gap:10px}
.dev-row{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:0;padding:12px 16px;flex-wrap:wrap}
.dev-main{display:flex;flex-direction:column;gap:4px;flex:1;min-width:280px}
.dev-st{font-weight:800;font-size:14px}.dev-pendiente{border-left:5px solid #f59e0b}.dev-autorizado{border-left:5px solid #16a34a}.dev-bloqueado{border-left:5px solid #dc2626;opacity:.75}
.dev-nom{display:flex;gap:6px}.dev-nom input{min-height:40px;font-size:16px;font-weight:700;max-width:320px}
.dev-main small{color:var(--ink2)}
.dev-act{display:flex;gap:8px}
.dev-cod b{white-space:nowrap}
.qr-inicial{display:flex;flex-direction:column;gap:6px;text-align:center;border-top:1px solid var(--line);padding-top:12px;margin-top:4px}
.qr-inicial b{display:block;font-size:15px}.qr-inicial small{display:block;font-size:13px;color:var(--ink2);line-height:1.35}
/* ---- Pantalla de entrada (v38): más grande, centrada y sin marco blanco alrededor del botón QR ---- */
body.lock .lock-main{justify-content:center;gap:clamp(40px,8vw,140px)}
body.lock .lock-side{flex:0 1 auto;justify-content:center;gap:clamp(22px,5vh,48px)}
body.lock .lock-brand{gap:clamp(18px,2vw,28px)}
body.lock .lock-logo{height:clamp(110px,22vh,190px);width:auto}
body.lock .lock-co{font-size:clamp(24px,4.2vh,38px)}
body.lock .lock-co-sub{font-size:clamp(15px,2.4vh,20px)}
body.lock .lock-fimma img{height:clamp(110px,24vh,210px)}
body.lock .lock-card.lock-card-qr{background:none;box-shadow:none;padding:0;width:min(520px,40vw);border-radius:0}
body.lock .lock-card-qr .qr-btn{padding:clamp(34px,8vh,70px) 24px;border-radius:30px;box-shadow:0 18px 50px rgba(0,0,0,.35);gap:clamp(8px,1.6vh,16px)}
body.lock .lock-card-qr .qr-btn .qr-ico{font-size:clamp(70px,14vh,120px)}
body.lock .lock-card-qr .qr-btn b{font-size:clamp(28px,5vh,42px)}
body.lock .lock-card-qr .qr-btn small{font-size:clamp(15px,2.4vh,19px)}
body.lock .lock-card-qr .qr-btn:active{transform:scale(.98)}
body.lock .lock-card-qr .lock-foot{color:#fff;opacity:.55;font-size:13px;margin-top:18px}
body.lock .lock-card-qr .qr-err{color:#ffb4a8;font-size:16px}
body.lock .lock-card-qr .qr-inicial{border-top-color:rgba(255,255,255,.2);color:#fff}
body.lock .lock-card-qr .qr-inicial small{color:rgba(255,255,255,.75)}
body.lock .lock-card-qr .qr-err:not(.show){display:none}body.lock .lock-card-qr .qr-btn small{max-width:300px}
/* ---- Entrada (v39): Europea de Maquinaria protagonista, FIMMA arriba y pequeño ---- */
body.lock .lockscreen{justify-content:space-between}
body.lock .lock-top{flex:none;display:flex;align-items:center;justify-content:center;gap:14px}
body.lock .lock-top .lock-fimma{align-self:auto;padding:8px 14px;border-radius:12px;box-shadow:0 6px 18px rgba(0,0,0,.3)}
body.lock .lock-top .lock-fimma img{height:clamp(44px,8vh,70px)}
body.lock .lock-top small{color:#8fd197;font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:13px}
body.lock .lock-top .lock-fimma-t{font-size:22px;font-weight:800}
body.lock .lock-brand-xl{flex-direction:column;align-items:center;text-align:center;gap:clamp(14px,2.6vh,26px)}
body.lock .lock-brand-xl .lock-logo{height:clamp(170px,36vh,300px);width:auto;border-radius:0;box-shadow:none;filter:drop-shadow(0 14px 30px rgba(0,0,0,.45))}
body.lock .lock-brand-xl .lock-co{font-size:clamp(30px,5.6vh,50px);font-weight:800;letter-spacing:.01em;line-height:1.05}
body.lock .lock-brand-xl .lock-co-sub{font-size:clamp(16px,2.8vh,23px);opacity:.75;margin-top:6px}
/* ---- Entrada (v40): logo + nombre en fila a la izquierda, botón QR a la derecha a la misma altura; FIMMA arriba a la izquierda ---- */
body.lock .lock-top{justify-content:flex-start}
body.lock .lock-top .lock-fimma{padding:10px 16px;border-radius:14px}
body.lock .lock-top .lock-fimma img{height:clamp(70px,13vh,110px)}
body.lock .lock-main{align-items:center}
body.lock .lock-side{align-self:center}
body.lock .lock-brand-xl{flex-direction:row;align-items:center;text-align:left;gap:clamp(18px,2.4vw,34px)}
body.lock .lock-brand-xl .lock-logo{height:clamp(130px,25vh,210px)}
body.lock .lock-brand-xl .lock-co{font-size:clamp(30px,5.4vh,48px)}
body.lock .lock-card.lock-card-qr{width:min(440px,36vw)}
body.lock .lock-card-qr .qr-btn{padding:clamp(26px,6vh,52px) 22px}
body.lock .lock-card-qr .lock-foot{position:absolute;left:0;right:0;bottom:calc(clamp(10px,2vh,20px) + clamp(56px,10vh,90px));margin:0}
body.lock .lock-card.lock-card-qr{position:static}
body.lock .lock-card-qr .lock-foot{display:none}
body.lock .lock-main{justify-content:center;gap:clamp(40px,7vw,110px)}
body.lock .lock-brand-xl .lock-logo{height:clamp(150px,28vh,230px)}
body.lock .lock-brand-xl .lock-co{white-space:nowrap;font-size:clamp(28px,5vh,44px)}
/* fotos de máquinas siempre enteras; barra de administración sin desbordarse */
.mbrands .mimg img{object-fit:contain!important}
.h-admin{gap:6px;padding:8px 10px}
.h-admin .atile{gap:8px;padding:6px 8px}
.h-admin .atile .ti{width:34px;height:34px;font-size:16px}
.h-admin .atile b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.h-admin .atile small{font-size:12px;white-space:normal;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.h-admin .h-admin-lbl{padding:0 4px;font-size:11px}
.ofx-inc[hidden]{display:none!important}
/* tarjeta de colaborador de marca: logo de la marca en la cabecera, sin pie de logos */
.tj-head-mk{gap:5mm;padding:0 8mm}
.tj-head-mk img{object-fit:contain}
.tj-front:not(:has(.tj-pie)) .tj-mid{padding-bottom:10mm}
/* menú principal: el aviso (p. ej. "Oferta enviada") flota encima y no empuja las tarjetas */
body.page-home .flash{position:fixed;z-index:40;top:78px;left:50%;transform:translateX(-50%);width:min(760px,calc(100% - 32px));margin:0;text-align:center;box-shadow:0 8px 24px rgba(0,0,0,.18);animation:flashhome 6s forwards;pointer-events:none}
@keyframes flashhome{0%{opacity:0;transform:translate(-50%,-8px)}6%{opacity:1;transform:translate(-50%,0)}85%{opacity:1}100%{opacity:0;visibility:hidden}}
/* tarjeta v2: marco negro en las dos caras, sin franja verde/roja; detrás manda la empresa y el nombre */
.tj{border:1.2mm solid #111!important}
.tj-front{border-right:1.2mm solid #111!important}
.tj-par{outline:0!important;gap:0}
.tj-band{display:none!important}
.tj-head{height:54mm!important}.tj-head img{width:34mm!important;height:34mm!important}
.tj-back{justify-content:flex-start!important;padding:4mm 4mm 0!important;gap:0!important}
.tj-bemp{height:25mm;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1mm}
.tj-bemp .tj-em3{width:17mm;height:17mm}.tj-bemp b{font-size:10.5pt}
.tj-bnom{font-size:25pt;font-weight:bold;line-height:1.05;margin-top:2mm}
.tj-bcar{font-size:10pt;font-weight:bold;color:#2a9a35;text-transform:uppercase;letter-spacing:.3mm;margin-top:1.2mm}
.tj-back .tj-qr{margin-top:3mm;padding:2.5mm}.tj-back .tj-qr svg{width:52mm!important;height:52mm!important}
.tj-bpie{position:absolute;left:4mm;right:4mm;bottom:3mm;display:flex;align-items:center;justify-content:space-between;gap:3mm;text-align:right}
.tj-bpie .tj-feria{height:9mm!important;width:auto;margin:0}
.tj-bpie span{display:flex;flex-direction:column;font-size:6.6pt;color:#c8160c;font-weight:bold;line-height:1.3}.tj-bpie b{font-size:8.5pt;color:#1f2328}
/* tarjeta: QR arriba del todo (la mano la sujeta por abajo al enseñarla a la cámara) */
.tj-back{padding-top:4mm!important}.tj-back .tj-qr{margin-top:0!important}
.tj-back .tj-bnom{margin-top:3mm}.tj-back .tj-bemp{height:auto;margin-top:3mm}
/* tarjeta 11 × 14,5 cm por cara: una por hoja A4 horizontal */
.tj{width:110mm!important;height:145mm!important}
.tj-head{height:56mm!important}.tj-head img{width:36mm!important;height:36mm!important}
.tj-back .tj-qr svg{width:57mm!important;height:57mm!important}
@media print{
  @page{size:A4 landscape;margin:0}
  body.page-tarjeta .tj-hoja{padding:0;gap:0;display:block}
  body.page-tarjeta .tj-par{width:220mm;margin:32.5mm auto 0;break-after:page;page-break-after:always}
  body.page-tarjeta .tj-par:last-child{break-after:auto;page-break-after:auto}
}
/* precio especial feria (descuento de serie de la máquina) */
.mprice-esp s{font-weight:500;color:#8a9097;font-size:13px;margin-right:4px}
.mesp{display:inline-block;margin-top:3px;font-size:11px;font-weight:800;letter-spacing:.3px;text-transform:uppercase;color:#c8160c}
.ofx-esp b{color:#c8160c}
/* oferta: el panel derecho hace scroll y los botones Enviar/Imprimir quedan siempre visibles abajo */
body.page-of .ofx-side{overflow-y:auto!important;-webkit-overflow-scrolling:touch}
body.page-of .ofx-act{position:sticky;bottom:-14px;margin-top:auto;background:#fff;padding:10px 0 6px;z-index:3;box-shadow:0 -10px 12px -10px rgba(0,0,0,.18);flex:none}
/* sin scroll en la oferta: el panel se ajusta a la pantalla (zoom automático en app.js) */
body.page-of .ofx-side{overflow:hidden!important}
body.page-of .ofx-act{position:static;box-shadow:none;padding:0;background:none}
body.page-of .ofx-pub{font-size:13px;padding:6px 10px;line-height:1.35}
.ext-campos{margin-top:10px}.ext-logo{display:flex;align-items:center;gap:14px}.ext-logo img{max-height:50px;max-width:220px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:8px;padding:4px}
/* oferta: botón Hoja de pedido (solo con poder negociador) */
body.page-of .ofx-act{flex-wrap:wrap}
body.page-of .ofx-ped{flex:1 1 100%;display:flex;align-items:center;justify-content:center;gap:10px;background:#24282b;color:#fff;border-color:#24282b}
body.page-of .ofx-ped small{font-weight:500;opacity:.75;font-size:13px}
/* emails enviados al cliente: tipo bien visible */
.log li.env{line-height:1.5}
.env-tag{display:inline-block;padding:2px 10px;border-radius:999px;font-size:13px;font-weight:800;margin-right:4px}
.env-pre{background:#e7f1fb;color:#1f5fae}
.env-of{background:#e7f6ec;color:#1d7a32}
.env-otro{background:#eef0f2;color:#475569}
/* buscador de clientes propios en la oferta */
.cli-busca{position:relative}
.cli-res{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:20;background:#fff;border:1.5px solid var(--line);border-radius:12px;box-shadow:0 12px 30px rgba(0,0,0,.18);max-height:320px;overflow:auto}
.cli-hit{display:block;width:100%;text-align:left;border:0;background:none;padding:10px 14px;border-bottom:1px solid #eef0f2;font:inherit;cursor:pointer}
.cli-hit:active,.cli-hit:hover{background:#eaf6ec}
.cli-hit b{display:block;font-size:15px}.cli-hit small{color:var(--ink2);font-size:12.5px}
.cli-no{padding:12px 14px;color:var(--ink2);font-size:14px}
.opc-todos{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 12px;padding:10px 12px;background:#fff4e5;border-radius:12px}
.opc-todos input{width:80px;text-align:right}
.ap-todos{display:block;margin-top:8px}
/* elegir condiciones feria / estándar antes de configurar */
.cond-modal{position:fixed;inset:0;z-index:90;background:rgba(20,22,24,.72);display:flex;align-items:center;justify-content:center;padding:20px}
.cond-modal[hidden]{display:none}
.cond-box{background:#fff;border-radius:22px;padding:28px 30px;width:min(760px,100%);text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.cond-box h2{margin:0;font-size:28px}.cond-box p{margin:6px 0 20px}
.cond-opts{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:14px}
.cond-op{display:flex;flex-direction:column;align-items:center;gap:6px;padding:26px 18px;border-radius:18px;text-decoration:none;color:#fff}
.cond-op span{font-size:44px}.cond-op b{font-size:22px}.cond-op small{font-size:15px;opacity:.9}
.cond-feria{background:linear-gradient(135deg,#2a9a35,#1f7a2a)}
.cond-std{background:linear-gradient(135deg,#3a4046,#24282b)}
.ofx-cond{font-weight:800;font-size:14px;padding:6px 10px;border-radius:10px;text-align:center}
.ofx-cond.feria{background:#e7f6ec;color:#1d7a32}.ofx-cond.std{background:#eef0f2;color:#475569}
/* elección de condiciones discreta: solo dos botones */
.cond-modal{background:rgba(20,22,24,.35)!important}
.cond-box{position:relative;display:flex;gap:14px;width:auto!important;padding:18px!important;border-radius:18px!important}
.cond-op{display:block!important;padding:16px 38px!important;border-radius:14px!important;font-size:20px;font-weight:800;color:#fff;text-decoration:none}
.cond-feria{background:#2a9a35!important}.cond-std{background:#c8160c!important}
.cond-x{position:absolute;top:-12px;right:-12px;width:30px;height:30px;border-radius:50%;border:0;background:#24282b;color:#fff;font-size:14px;cursor:pointer}
.ofx-cond{display:inline-block;align-self:flex-start;font-size:12px!important;padding:3px 10px!important;border-radius:999px!important;color:#fff!important}
.ofx-cond.feria{background:#2a9a35!important}.ofx-cond.std{background:#c8160c!important}
.opc-ahora{font-size:13px;color:#24282b;background:#fff;border-radius:8px;padding:4px 8px}
/* gestionar máquinas: descuentos de feria a simple vista */
.dto-chips{display:flex;gap:8px;margin-left:auto;margin-right:10px;flex-wrap:wrap;justify-content:flex-end}
.dchip{display:flex;flex-direction:column;align-items:flex-end;min-width:110px;padding:5px 10px;border-radius:10px;background:#f1f3f5;color:#8a9097;font-size:13px;font-weight:700;line-height:1.2}
.dchip small{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}
.dchip.on{background:#fdecea;color:#c8160c}
.dchip.on small{color:#a14a43}
/* gestionar máquinas: flechas para subir / bajar el orden */
.mrow{display:flex;align-items:stretch;gap:8px;scroll-margin-top:90px}
.mrow .urow{flex:1;min-width:0}
.mord{display:flex;flex-direction:column;gap:4px;justify-content:center}
.mord button{width:46px;height:34px;border:1.5px solid var(--line);border-radius:10px;background:#fff;font-size:16px;color:#24282b;cursor:pointer}
.mord button:active{background:#eaf6ec}
.mord button:disabled{opacity:.25;cursor:default}
.orden-bar{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:60;display:flex;align-items:center;gap:12px;background:#24282b;color:#fff;padding:10px 12px 10px 20px;border-radius:16px;box-shadow:0 10px 30px rgba(0,0,0,.3)}
.orden-bar[hidden]{display:none}
.orden-bar span{font-weight:700}
.mrow.movida .urow{background:#eaf6ec;transition:background .3s}
/* FE / STD: dos botones grandes, uno a cada lado */
.cond-box{background:none!important;box-shadow:none!important;padding:0!important;width:100%!important;max-width:1100px;justify-content:space-between;gap:30px}
.cond-op{flex:0 0 auto;width:min(34vw,320px);height:min(34vw,220px);display:flex!important;align-items:center;justify-content:center;font-size:clamp(48px,7vw,84px)!important;letter-spacing:.06em;border-radius:28px!important;box-shadow:0 14px 40px rgba(0,0,0,.35);padding:0!important}
.cond-x{top:-60px!important;right:50%!important;transform:translateX(50%);width:46px!important;height:46px!important;font-size:18px!important}

/* matrícula y cartel VENDIDA */
.mmat{font-size:12px;font-weight:700;color:#475569;background:#eef1f5;border-radius:6px;padding:1px 6px;align-self:flex-start;letter-spacing:.02em}
.vname .mmat{font-size:13px;vertical-align:middle;margin-left:4px}
.mvend{display:block;margin-top:5px;background:#c8160c;color:#fff;font-weight:900;font-size:14px;letter-spacing:.14em;text-align:center;border-radius:6px;padding:3px 0}
.mbrands.mlist .mmat,.mbrands.mlist .mvend{grid-column:1/-1}
.mcard.vendida .mimg{opacity:.6}
.vend-f{display:flex;margin:0}
.vend-b{min-width:96px;border:2px solid #e3b4b0;background:#fff;color:#c8160c;border-radius:12px;font-weight:800;font-size:14px;cursor:pointer;padding:0 10px}
.vend-b.on{background:#c8160c;border-color:#c8160c;color:#fff;letter-spacing:.08em}
.chk-vendida{display:flex;align-items:center;gap:8px;align-self:end;padding-bottom:10px}
.chk-vendida input{width:22px;height:22px}
.del-user{margin-top:14px;border:1.5px solid #f0c9c5}
.del-user h3{margin:0 0 4px;color:#c8160c}
.del-row{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end}
.del-row label{display:flex;flex-direction:column;gap:4px}
.del-row label.chk{flex-direction:row;align-items:center;padding-bottom:12px}

/* fichas del QR (clientes) */
.fpub{margin-top:14px}.fpub h3{margin:0 0 4px}.fpub p{margin:6px 0}
.fpub-b{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.fpub-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:#f1f5f9;border-radius:12px;padding:6px 10px}
.fpub-top span{font-weight:700;font-size:14px;color:#24282b}

.fpub{margin-top:14px}
.qe-maq,.qe-con{margin-top:14px}.qe-maq h3,.qe-con h3{margin:0 0 8px}
.qe-row{display:grid;grid-template-columns:minmax(150px,26%) 1fr auto;gap:12px;align-items:center;padding:5px 0}
.qe-n{font-weight:700}.qe-bar{height:12px;background:#eef1f5;border-radius:6px;overflow:hidden}.qe-bar i{display:block;height:100%;background:#2a9a35;border-radius:6px}
.qe-v{font-size:14px;white-space:nowrap}
.qe-c{display:flex;gap:12px;align-items:center;justify-content:space-between;border-top:1px solid #eef1f5;padding:10px 0}
.qe-m{font-size:14px;margin-top:2px}.qe-f{font-size:12px}
.qe-ok{color:#1f7a2b;font-weight:700}.qe-ko{color:#c8160c;font-weight:700}
.fpub-sel{font-size:14px;padding:6px 8px;border-radius:10px;border:1px solid #cfd5dc;background:#fff}

.cq-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;margin-top:14px}
.cq-it{background:#fff;border-radius:14px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.cq-n b{display:block;font-size:16px}.cq-n span{font-size:12px;color:#6b7480}.cq-b{display:flex;gap:6px}.cq-b form{margin:0}
.chk-inm b{color:#e85d00}
