/* Fuentes alojadas aquí (subconjunto latino, licencia OFL en fonts/OFL.txt); sin ellas cae a la fuente del sistema */
@font-face{font-family:"Barlow";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/barlow-400.woff2) format("woff2")}
@font-face{font-family:"Barlow";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/barlow-500.woff2) format("woff2")}
@font-face{font-family:"Barlow";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/barlow-600.woff2) format("woff2")}
@font-face{font-family:"Barlow Semi Condensed";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/barlow-semi-condensed-500.woff2) format("woff2")}
@font-face{font-family:"Barlow Semi Condensed";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/barlow-semi-condensed-600.woff2) format("woff2")}
@font-face{font-family:"Twemoji Country Flags";font-style:normal;font-display:swap;unicode-range:U+1F1E6-1F1FF;src:url(fonts/twemoji-country-flags.woff2) format("woff2")}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/jetbrains-mono-500.woff2) format("woff2")}
/* MecanicaMaestra, interfaz v3 (maqueta aprobada por el CEO el 13-oct-2026 20:25:24). Paleta de PROPUESTA.md §7; radio 0 por pedido del CEO (19:36:07). */
:root{
  --ink-900:#1B1F24; --ink-700:#3A434E; --ink-500:#55606D; --edge:#7D8894; --line:#C9D0D8; --ink-100:#E6EAEE;
  --steel:#EDF0F3; --surface:#F4F6F8; --white:#FFFFFF;
  --c-principal:#1F5A96; --c-barra:#17315C; --c-autorizada:#4A4F9E; --c-diagnostico:#17778F; --c-pronto:#946A12;
  --c-ok:#3B7A33; --c-urgente:#C0282E; --c-refaccion:#B84E14; --c-cobrar:#B0305E; --c-cancelada:#86203D;
  --t-principal:#E7EFF8; --t-pronto:#FBF1DA; --t-ok:#E6F2E4; --t-urgente:#FBE7E7; --t-refaccion:#FBEBE0;
  --t-diagnostico:#E3F1F5; --t-autorizada:#ECECF7; --t-cobrar:#F8E6EE;
  --font:"Twemoji Country Flags","Barlow",system-ui,"Segoe UI",Roboto,Arial,sans-serif;
  --cond:"Twemoji Country Flags","Barlow Semi Condensed","Barlow",system-ui,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,Consolas,monospace;
  --fs-meta:0.875rem; --fs-body:1rem; --fs-title:1.125rem; --fs-module:1.375rem; --fs-total:1.75rem;
  --field-h:34px; --btn-h:36px; --btn-main-h:40px; --bar-h:44px; --task-h:40px;
  --hard:2px 2px 0 var(--line); --hard-on:3px 3px 0 var(--ink-900);
}
*,*::before,*::after{box-sizing:border-box;border-radius:0}
html,body{margin:0;height:100%}
body{font-family:var(--font);font-size:var(--fs-body);line-height:1.4;color:var(--ink-900);background:var(--surface);
  font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}
button,input,textarea,select{font:inherit;color:inherit}
:where(a,button,input,textarea,[tabindex]):focus-visible{outline:3px solid var(--c-principal);outline-offset:2px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:8px;top:-60px;background:var(--white);padding:8px 12px;border:2px solid var(--ink-900);z-index:10}
.skip:focus{top:8px}
svg.i{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}
/* Marco de la aplicación: barra, área de trabajo y barra de tareas; nunca scroll de página en escritorio */
.app{height:100dvh;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:var(--bar-h) 1fr var(--task-h);overflow:hidden}
.bar{background:var(--c-barra);color:var(--white);display:flex;align-items:center;gap:16px;padding:0 16px;border-bottom:3px solid var(--ink-900)}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--cond);font-weight:600;font-size:1.1875rem;letter-spacing:.01em;white-space:nowrap}
.brand b{display:grid;place-items:center;width:30px;height:30px;background:var(--white);color:var(--c-barra);box-shadow:3px 3px 0 var(--ink-900)}
.brand b svg{width:20px;height:20px;stroke-width:1.9}
.brand span span{font-weight:500;opacity:.8}
.bar .new{text-decoration:none;display:flex;align-items:center;gap:6px;height:30px;padding:0 12px;background:var(--white);color:var(--c-barra);border:0;font-weight:600;cursor:pointer;white-space:nowrap;box-shadow:2px 2px 0 var(--ink-900)}
.bar .new svg{width:18px;height:18px;stroke-width:2}
.bar .branch{display:flex;align-items:center;gap:8px;height:30px;padding:0 12px;background:transparent;border:1px solid rgba(255,255,255,.55);color:var(--white);cursor:default;white-space:nowrap}
.search{flex:1;max-width:520px;display:flex;align-items:center;gap:8px;height:30px;background:var(--white);color:var(--ink-900);padding:0 10px;border:1px solid var(--white)}
.search input{border:0;outline:0;flex:1;min-width:0;background:transparent;font-size:var(--fs-body)}
.search input::placeholder{color:var(--ink-500)}
.search kbd{font-family:var(--font);font-size:0.8125rem;color:var(--ink-500);border:1px solid var(--line);padding:0 5px}
.bar .when{margin-left:auto;font-size:var(--fs-meta);opacity:.92;white-space:nowrap}
.bar .me{width:30px;height:30px;display:grid;place-items:center;background:var(--white);color:var(--c-barra);font-weight:600;font-size:0.875rem;border:0;cursor:default}
/* Barra de tareas: módulos abiertos, como la del sistema operativo */
.task{background:var(--white);border-top:1px solid var(--edge);display:flex;align-items:stretch;gap:0;padding:0 8px;overflow:hidden}
.task a{flex:none;display:flex;align-items:center;gap:8px;padding:0 14px;background:transparent;border:0;border-right:1px solid var(--ink-100);cursor:pointer;min-width:44px;white-space:nowrap;color:inherit;text-decoration:none}
.task a:hover{background:var(--surface)}
.task a[aria-current="page"]{background:var(--t-principal);box-shadow:inset 0 -3px 0 var(--c-principal);font-weight:600}
/* Con muchos módulos abiertos, las pistas ceden su lugar: las que no caben bajan a una segunda línea que no se ve. */
.task .hint{margin-left:auto;min-width:0;height:var(--task-h);display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;align-content:flex-start;column-gap:14px;overflow:hidden;font-size:var(--fs-meta);color:var(--ink-500);padding-left:14px;padding-right:8px;white-space:nowrap}
.task .hint>span{height:var(--task-h);display:flex;align-items:center;gap:4px}
.task kbd{font-family:var(--font);border:1px solid var(--line);border-bottom-width:2px;padding:0 5px;color:var(--ink-700)}
.desk{display:grid;grid-template-columns:1fr 400px;min-height:0}
.board{min-height:0;overflow:auto;padding:22px 26px;background-color:var(--steel);
  background-image:radial-gradient(circle at 9px 9px,var(--line) 1.6px,transparent 1.9px);background-size:18px 18px}
/* ============ ESCRITORIO: solo accesos (ícono y nombre); lo demás vive dentro de cada módulo ============ */
.board{display:grid;place-items:center}
.launch{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,176px));gap:var(--gap-l,34px) 44px}
.launch li{display:grid}
.tile{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%;padding:16px 8px 14px;text-align:center;cursor:pointer;
  color:var(--ink-900);font:inherit;background:transparent;border:1px solid transparent;text-decoration:none}
.tile:hover{background:var(--white);border-color:var(--line)}
.tile:focus-visible{outline:2px solid var(--c-principal);outline-offset:-2px;background:var(--white)}
.tile .ic{position:relative;width:var(--plate,84px);height:var(--plate,84px);display:grid;place-items:center;
  background:var(--c-barra);color:var(--white);box-shadow:4px 4px 0 var(--ink-900);transition:transform .08s,box-shadow .08s}
.tile .ic svg{width:var(--glyph,42px);height:var(--glyph,42px);stroke-width:1.5}
.tile:hover .ic,.tile:focus-visible .ic{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--ink-900)}
.tile:active .ic{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink-900)}
.tile .nm{font-family:var(--cond);font-weight:600;font-size:1.1875rem;line-height:1.15}
.tile .bd{position:absolute;top:-9px;right:-11px;min-width:26px;height:26px;padding:0 6px;display:grid;place-items:center;
  background:var(--bd);color:var(--white);font-weight:700;font-size:0.9375rem;border:2px solid var(--white)}
.doc.modbody{grid-template-rows:1fr;place-items:center}
.modnote{margin:0 0 6vh;display:grid;justify-items:center;gap:8px;max-width:46ch;text-align:center;color:var(--ink-700)}
.modnote .i{width:56px;height:56px;stroke-width:1.2;color:var(--ink-500);margin-bottom:6px}
.modnote small{margin-top:10px;padding-top:10px;border-top:1px solid var(--line);font-size:var(--fs-meta);color:var(--ink-500)} .modnote b{font-family:var(--cond);font-size:var(--fs-module);color:var(--ink-900)}
/* Tablero de Órdenes: llaveros por estado, en el orden del flujo del taller */
.board-ot{grid-template-rows:auto minmax(0,1fr);gap:10px}
.bt-head{margin:0;color:var(--ink-700)} .bt-head b{font-family:var(--cond);font-size:var(--fs-module);color:var(--ink-900);margin-right:10px}
.lanes{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;min-height:0}
.lane{min-width:0;display:flex;flex-direction:column;gap:8px;padding:8px;background:var(--steel);border-top:3px solid var(--tone)}
.lane h2{margin:0;display:flex;justify-content:space-between;gap:8px;font-family:var(--cond);font-size:1.0625rem;font-weight:600;color:var(--ink-900)}
.hooks{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.fob{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 8px;width:100%;padding:9px 10px 10px 28px;text-align:left;cursor:pointer;
  font:inherit;color:var(--ink-900);background:var(--white);border:1px solid var(--edge);box-shadow:inset 4px 0 0 var(--tone),var(--hard)}
.fob::before{content:"";position:absolute;left:11px;top:13px;width:8px;height:8px;border:1.5px solid var(--edge);background:var(--surface)}
.fob:hover,.fob:focus-visible{box-shadow:inset 4px 0 0 var(--tone),var(--hard-on)}
.fob:focus-visible{outline:2px solid var(--c-principal);outline-offset:1px}
.fob b{font-family:var(--cond);font-weight:600;font-size:1.0625rem}
.fob .pl{font-family:var(--mono);font-size:0.8125rem;border:1px solid var(--ink-700);padding:0 4px;align-self:center;justify-self:end}
.fob .car{grid-column:1/-1;font-size:0.9375rem;line-height:1.25}
.fob .tec{grid-column:1/-1;font-size:var(--fs-meta);color:var(--ink-700)}
.lane{min-height:0;overflow:hidden} .lane h2 span{font-variant-numeric:tabular-nums}
.fob .bt-st{grid-column:1/-1;justify-self:start;font-size:var(--fs-meta);font-weight:600;color:var(--tone)}
.fob .bt-ans{grid-column:1/-1;justify-self:start;margin:2px 0 0;padding:1px 6px;font-size:var(--fs-meta);font-weight:600;color:var(--white);background:var(--c-pronto)}
.fob.is-answered{border-color:var(--c-pronto)}
.fob .bt-ask{grid-column:1/-1;justify-self:start;margin:2px 0 0;padding:1px 6px;font-size:var(--fs-meta);font-weight:600;color:var(--white);background:var(--c-refaccion)}
.fob.is-asking{border-color:var(--c-refaccion)}
.hooks .bt-empty{padding:6px 2px;font-size:var(--fs-meta);color:var(--ink-500)}
.bt-more{align-self:flex-start;min-height:32px;padding:0 4px;font-weight:600}
.lamp{width:9px;height:9px;flex:none;background:var(--lamp,var(--ink-500))}
/* Panel derecho: el día del taller */
.today{background:var(--white);border-left:1px solid var(--edge);display:flex;flex-direction:column;min-height:0}
.today header{padding:14px 18px 10px;border-bottom:1px solid var(--ink-100)}
.today h2{margin:0;font-family:var(--cond);font-size:var(--fs-module);font-weight:600}
.today header p{margin:2px 0 0;color:var(--ink-500);font-size:var(--fs-meta)}
.gauges{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--ink-100)}
.gauge{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:9px 18px;border:0;border-bottom:1px solid var(--ink-100);
  background:transparent;text-align:left;cursor:pointer;min-height:44px}
.gauge:nth-child(odd){border-right:1px solid var(--ink-100)}
.gauge b{font-family:var(--cond);font-size:1.5rem;font-weight:600;line-height:1}
.gauge span{font-size:var(--fs-meta);color:var(--ink-700);line-height:1.2}
.gauge:hover{background:var(--surface)}
.gauge{color:inherit;text-decoration:none} .gauge .lamp{--lamp:var(--tone)}
.gauge:focus-visible{outline:2px solid var(--c-principal);outline-offset:-2px}
.today section{padding:12px 18px;border-bottom:1px solid var(--ink-100);min-height:0}
.today h3{margin:0 0 8px;font-size:var(--fs-body);font-weight:600;display:flex;justify-content:space-between}
.today h3 a{font-weight:500;font-size:var(--fs-meta);color:var(--c-principal)}
.list{list-style:none;margin:0;padding:0}
.list li{display:grid;grid-template-columns:48px 1fr auto;gap:10px;align-items:baseline;padding:5px 0;border-top:1px dashed var(--ink-100)}
.list li:first-child{border-top:0}
.list time{font-weight:600}
.list .who{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.list .who small{display:block;color:var(--ink-500);font-size:var(--fs-meta);overflow:hidden;text-overflow:ellipsis}
.today .scroll{overflow:auto;flex:1}
.note{display:flex;gap:10px;padding:7px 0;border-top:1px dashed var(--ink-100);font-size:0.9375rem}
.note:first-child{border-top:0}
.note .lamp{margin-top:6px}
.today h3 .cnt{font-weight:500;font-size:var(--fs-meta);color:var(--ink-500)}
.alerts{list-style:none;margin:0;padding:0}
.alerts li:first-child .note{border-top:0}
.today section.feed{padding-left:0;padding-right:0} .feed h3{padding:0 18px}
a.note{color:inherit;text-decoration:none;align-items:flex-start;padding-left:18px;padding-right:18px;min-height:44px}
a.note:hover{background:var(--surface)} a.note:focus-visible{outline:2px solid var(--c-principal);outline-offset:-2px}
a.note .lamp{--lamp:var(--tone)}
.note .what{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.note .what small{display:block;color:var(--ink-500);font-size:var(--fs-meta);overflow:hidden;text-overflow:ellipsis}
.note time{flex:none;font-size:var(--fs-meta);color:var(--ink-700);font-variant-numeric:tabular-nums}
/* ============ MÓDULO CON PESTAÑAS ============ */
.mod{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr;min-height:0;background:var(--surface)}
.modbar{display:flex;align-items:flex-end;gap:18px;padding:8px 16px 0;background:var(--white);border-bottom:1px solid var(--edge)}
.modbar h1{margin:0 0 9px;display:flex;align-items:center;gap:8px;font-family:var(--cond);font-size:var(--fs-module);font-weight:600}
.modbar h1 .ic{width:28px;height:28px;display:grid;place-items:center;border:1.5px solid var(--ink-900)}
.modbar h1 .ic svg{width:17px;height:17px}
[role="tablist"].tabs{display:flex;gap:2px;min-width:0;overflow-x:auto;scrollbar-width:thin}
.tabs [role="tab"]{display:flex;align-items:center;gap:8px;height:38px;padding:0 14px;margin-bottom:-1px;white-space:nowrap;cursor:pointer;
  background:var(--surface);border:1px solid var(--line);border-bottom-color:var(--edge);color:var(--ink-700)}
.tabs [role="tab"][aria-selected="true"]{background:var(--surface);color:var(--ink-900);font-weight:600;border-color:var(--edge);border-top:3px solid var(--c-principal);border-bottom-color:var(--surface)}
.tabs .n{font-size:0.8125rem;padding:0 5px;background:var(--t-pronto);color:var(--c-pronto);font-weight:600}
.tabs .plate-s{font-family:var(--mono);font-size:0.8125rem;border:1px solid var(--ink-700);padding:0 4px;background:var(--white)}
.tabs .x{width:22px;height:22px;display:grid;place-items:center;border:0;background:transparent;cursor:pointer;margin-right:-6px}
.tabs .x svg{width:14px;height:14px}
.doc{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr;min-height:0;padding:12px 16px 12px}
.folio{font-family:var(--cond);font-size:1.5rem;font-weight:600}
.chip{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 8px 0 0;font-size:0.875rem;font-weight:600;white-space:nowrap;
  background:var(--tint);color:var(--tone);box-shadow:inset 3px 0 0 var(--tone);padding-left:9px}
.s-pronto{--tone:var(--c-pronto);--tint:var(--t-pronto)} .s-ok{--tone:var(--c-ok);--tint:var(--t-ok)}
.s-urgente{--tone:var(--c-urgente);--tint:var(--t-urgente)} .s-ref{--tone:var(--c-refaccion);--tint:var(--t-refaccion)}
.s-diag{--tone:var(--c-diagnostico);--tint:var(--t-diagnostico)} .s-aut{--tone:var(--c-autorizada);--tint:var(--t-autorizada)}
.s-proc{--tone:var(--c-principal);--tint:var(--t-principal)} .s-cobrar{--tone:var(--c-cobrar);--tint:var(--t-cobrar)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--btn-h);padding:0 14px;cursor:pointer;white-space:nowrap;
  background:var(--white);border:1px solid var(--edge);box-shadow:var(--hard);font-weight:500}
.btn:hover{box-shadow:var(--hard-on)}
.btn:active{box-shadow:none;transform:translate(1px,1px)}
.btn.danger{color:var(--c-urgente);border-color:var(--c-urgente)}
.btn.main{min-height:var(--btn-main-h);background:var(--c-principal);color:var(--white);border-color:var(--c-barra);font-weight:600}
.btn.wa{min-height:var(--btn-main-h);background:var(--c-ok);color:var(--white);border-color:#2B5A25;font-weight:600}
.btn.icon{padding:0;width:var(--btn-h)}
.btn svg{width:18px;height:18px}
.panel{background:var(--white);border:1px solid var(--edge);min-height:0;min-width:0}
.box{background:var(--white);border:1px solid var(--edge);padding:12px 14px}
.box h2{margin:0 0 8px;font-family:var(--cond);font-size:var(--fs-title);font-weight:600;display:flex;justify-content:space-between;align-items:baseline}
.box h2 a,.box h2 button.link{font-family:var(--font);font-size:var(--fs-meta);font-weight:500;color:var(--c-principal);background:none;border:0;padding:0;cursor:pointer;display:inline-flex;align-items:center;min-height:24px}
/* La placa: marco doble como la lámina de una placa */
.plate{display:inline-flex;align-items:center;gap:10px;margin:0;padding:5px 12px;background:var(--white);
  border:2px solid var(--ink-900);box-shadow:inset 0 0 0 2px var(--white),inset 0 0 0 3px var(--ink-700);font-family:var(--mono);font-size:1.3125rem;letter-spacing:.08em}
.plate{flex-direction:column;gap:0;line-height:1.1}
.plate small{font-family:var(--font);font-size:0.8125rem;letter-spacing:.02em;color:var(--ink-500)}
.vin{font-family:var(--mono);font-size:0.875rem}
.ohead{background:var(--white);border:1px solid var(--edge);border-top:3px solid var(--ink-900);padding:10px 16px 12px;margin-bottom:12px}
.otitle{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.otitle .acts{margin-left:auto;display:flex;gap:8px}
.due{font-size:0.9375rem;color:var(--ink-700)} .due b{color:var(--ink-900)}
.ident{display:grid;grid-template-columns:auto minmax(0,.9fr) minmax(0,.9fr) minmax(0,1.3fr) auto;gap:20px;align-items:center;margin-top:10px;padding-top:10px;border-top:1px solid var(--ink-100)}
.veh,.cli{display:flex;flex-direction:column;font-size:0.9375rem;line-height:1.35;color:var(--ink-700);min-width:0}
.veh b,.cli b{font-size:1.0625rem;color:var(--ink-900);font-weight:600}
.cli{border-left:1px solid var(--ink-100);padding-left:22px}
.contact{display:flex;gap:8px}
.complaint{margin:0;font-size:0.9375rem;line-height:1.35;padding:6px 12px;background:var(--surface);border-left:3px solid var(--edge);align-self:stretch;display:flex;flex-direction:column;justify-content:center}
.complaint span{color:var(--ink-500);font-size:var(--fs-meta)}
.ogrid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:12px;min-height:0}
.rail{display:flex;flex-direction:column;gap:12px;min-height:0}
.job p{margin:0 0 6px;font-size:0.9375rem} .prog{display:flex;align-items:center;gap:10px}
.desc{display:flex;align-items:flex-start;gap:10px} .desc small{display:block;font-size:var(--fs-meta);color:var(--ink-500)}
.ty{display:grid;place-items:center;width:26px;height:26px;flex:none;border:1px solid var(--line);color:var(--ink-700);background:var(--surface)} .ty svg{width:16px;height:16px}
.subtabs .lamp{display:inline-block;width:8px;height:8px;margin:0 3px 0 6px}
.btn.main-alt{min-height:var(--btn-main-h);font-weight:600}
.work{display:grid;grid-template-rows:auto 1fr;min-height:0;min-width:0}
.subtabs{display:flex;gap:0;overflow-x:auto;scrollbar-width:thin;border-bottom:1px solid var(--edge);padding:0 10px;background:var(--white)}
.subtabs [role="tab"]{height:38px;padding:0 14px;background:transparent;border:0;border-bottom:3px solid transparent;margin-bottom:-1px;cursor:pointer;color:var(--ink-700);white-space:nowrap}
.subtabs [role="tab"][aria-selected="true"]{border-bottom-color:var(--c-principal);color:var(--ink-900);font-weight:600}
.subtabs .tools{margin-left:auto;display:flex;gap:8px;align-items:center}
.subtabs .tools .btn{min-height:30px;box-shadow:none}
.tablewrap{overflow:auto;min-height:0}
table{width:100%;border-collapse:collapse;font-size:var(--fs-body)}
thead th{position:sticky;top:0;background:var(--surface);font-family:var(--cond);font-weight:600;font-size:0.9375rem;text-align:left;padding:8px 10px;border-bottom:1px solid var(--edge);white-space:nowrap}
tbody td{padding:6px 10px;border-bottom:1px solid var(--ink-100);vertical-align:middle;height:42px}
tbody tr.wait{background:#FFFBF2}
tbody tr:hover{background:var(--surface)}
tfoot td{padding:9px 10px;border-top:2px solid var(--ink-900);font-size:0.9375rem}
tfoot .split{margin-right:22px;color:var(--ink-700)} tfoot .split b{color:var(--ink-900)} tfoot .pend b{color:var(--c-pronto)}
td.n,th.n{text-align:right}
td.tag{white-space:normal}
td.nw{white-space:nowrap}
.cell{width:92px;height:var(--field-h);padding:0 8px;text-align:right;background:var(--white);border:1px solid var(--edge)}
.cell.q{width:56px}
input[type="checkbox"]{width:18px;height:18px;accent-color:var(--c-principal);margin:0}
td.ck{width:44px;text-align:center}
td.more button{width:30px;height:30px;border:0;background:transparent;cursor:pointer;color:var(--ink-500)}
.meter{flex:1;height:8px;background:var(--ink-100);border:1px solid var(--line)}
.meter i{display:block;height:100%;width:33%;background:var(--c-principal)}
.sum{display:grid;grid-template-columns:1fr auto;gap:4px 10px;margin:0;font-size:0.9375rem}
.sum dd{margin:0;text-align:right}
.sum .tot{font-family:var(--cond);font-size:var(--fs-total);font-weight:600;padding-top:6px;margin-top:4px;border-top:2px solid var(--ink-900)}
.sum .bal{color:var(--c-cobrar);font-weight:600;font-size:1.125rem}
.sent{font-size:var(--fs-meta);color:var(--ink-500);margin:8px 0 0}
.actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.actions .wa{grid-column:1/-1}
.actions .btn{min-width:0;white-space:normal;text-align:center;line-height:1.15}
[hidden]{display:none!important}
/* Tacto: objetivos más grandes solo con dedo, sin cambiar la densidad con mouse */
@media (pointer:coarse){
  :root{--field-h:44px;--btn-h:44px;--btn-main-h:48px}
  .tabs [role="tab"],.subtabs [role="tab"]{height:44px}
  td.more button{width:44px;height:44px}
}
/* 1366x768 con barras del navegador (~657 de alto útil) */
@media screen and (max-width:1500px){
  .tools .lbl{display:none}
  .ogrid{grid-template-columns:minmax(0,1fr) 300px}
  .desk{grid-template-columns:1fr 380px}
  .gauge{padding:7px 14px}
  .subtabs [role="tab"]{padding:0 10px}
  .subtabs .tools .btn{padding:0 10px}
  thead th,tbody td{padding-left:7px;padding-right:7px}
  .cell{width:80px}
}
@media screen and (max-height:800px) and (min-width:1101px){
  .gauges{grid-template-columns:repeat(3,1fr)}
  .gauge{grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:0 6px;padding:5px 10px;min-height:0;border-right:1px solid var(--ink-100)}
  .gauge:nth-child(3n){border-right:0}
  .gauge b{grid-column:2;grid-row:1;font-size:1.25rem} .gauge span{grid-column:1/-1;grid-row:2;font-size:0.8125rem}
  .gauge .lamp{grid-row:1;align-self:center}
}
@media screen and (max-height:760px) and (min-width:760px){
  .ohead{padding:8px 14px 10px;margin-bottom:8px} .ident{margin-top:8px;padding-top:8px} .complaint{padding:4px 10px} .ogrid,.rail{gap:8px}
  :root{--bar-h:40px;--task-h:36px}
  .today header{padding:8px 14px 6px} .today section{padding:6px 14px}
  .list li{padding:3px 0} .note{padding:4px 0;font-size:0.875rem} .today h3{margin-bottom:4px}
  .feed h3{padding:0 14px} a.note{padding:4px 14px;min-height:40px}
  .doc{padding:8px 12px} .box{padding:9px 12px}
  tbody td{height:38px;padding-top:4px;padding-bottom:4px}
  .plate{font-size:1.125rem;margin:0 0 6px;padding:3px 10px}
  .box h2{margin-bottom:5px}.list .chip{height:22px}
  .sum{gap:2px 10px} .sum .tot{font-size:1.5rem;padding-top:4px} .sum dt.tot{font-size:1.125rem;align-self:end;white-space:nowrap}
  .sent{margin-top:4px}
  .actions{gap:6px}
  :root{--btn-main-h:38px}
}
/* Columna de la orden en alturas cortas: Avance en una franja */
@media screen and (max-height:760px) and (min-width:1101px){
  .job{display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:4px 10px}
  .job h2{margin:0} .job p{margin:0;text-align:right} .job .prog{grid-column:1/-1}
  .sum{gap:0 10px;font-size:0.90625rem}
}
/* Tablet (~820) y teléfono: una columna; en producción el teléfono abre la PWA reducida */
@media screen and (max-width:1100px){
  .app{height:auto;min-height:100dvh;overflow:visible}
  .desk{grid-template-columns:1fr}
  .today{border-left:0;border-top:1px solid var(--edge)}.today .scroll{overflow:visible}
  .tablewrap{overflow-x:auto}
  .bar .when{display:none}
  .ogrid{grid-template-columns:1fr}
  .ident{grid-template-columns:auto 1fr;gap:12px 18px}
  .cli{border-left:0;padding-left:0}
  .complaint{grid-column:1/-1}
}
@media screen and (max-width:760px){
  .bar{flex-wrap:wrap;gap:8px;padding:6px 12px;height:auto}
  .app{grid-template-rows:auto 1fr auto}
  .search{order:3;flex-basis:100%;max-width:none}
  .bar .branch span{display:none}
  .task .hint{display:none}
  .bar .new span{display:none} .bar .new{padding:0 7px} .bar .me{margin-left:auto}
  .ident{grid-template-columns:1fr} .ident .plate{justify-self:start}
  .board{padding:12px}
  .tablewrap{overflow-x:auto}
  .modbar{flex-wrap:wrap}
}
@media screen and (max-height:760px) and (min-width:1101px){
  :root{--plate:68px;--glyph:34px;--gap-l:18px}
  .tile{gap:9px;padding:12px 8px 10px}
}
@media screen and (max-width:1100px){ .launch{grid-template-columns:repeat(4,minmax(0,150px));gap:24px} .board{padding:28px 16px} }
@media screen and (max-width:1100px){ .lanes{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media screen and (max-width:760px){ .lanes{grid-template-columns:1fr} .launch{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%} :root{--plate:60px;--glyph:30px} .tile .nm{font-size:1rem} }
@media screen and (min-width:1700px) and (min-height:900px){
  :root{--plate:100px;--glyph:50px;--gap-l:44px} .launch{grid-template-columns:repeat(4,minmax(0,200px));column-gap:56px} .tile .nm{font-size:1.25rem}
}
/* ============ MOSTRADOR → REFACCIONES (mock 13-oct-2026): buscar por vehículo o por número, cruces con su confianza ============ */
.rf{grid-template-rows:auto minmax(0,1fr);gap:12px}
.rf-find{background:var(--white);border:1px solid var(--edge);border-top:3px solid var(--ink-900);padding:10px 14px 0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 18px;align-items:end}
.fld{display:flex;flex-direction:column;gap:3px;font-size:var(--fs-meta);color:var(--ink-700);min-width:0}
.fld select,.fld input{height:var(--field-h);padding:0 8px;border:1px solid var(--edge);background:var(--white);font-size:var(--fs-body);color:var(--ink-900);min-width:0}
.qbig{display:flex;align-items:center;gap:8px;height:var(--field-h);padding:0 4px 0 10px;border:2px solid var(--ink-900);background:var(--white)}
.qbig input{border:0;outline:0;flex:1;min-width:0;height:100%;padding:0;font-size:var(--fs-body)}
.qbig:focus-within{outline:3px solid var(--c-principal);outline-offset:1px}
.qbig .scan{display:flex;align-items:center;gap:5px;height:24px;padding:0 7px;font-size:0.8125rem;color:var(--ink-700);border:1px solid var(--line);white-space:nowrap}
.qbig .scan svg{width:16px;height:16px}
.fit{display:flex;gap:6px;align-items:flex-end}
.fit .fld:nth-child(1) select{width:78px} .fit .fld:nth-child(2) select{width:104px} .fit .fld:nth-child(3) select{width:104px} .fit .fld:nth-child(4) select{width:156px}
.rf-filt{grid-column:1/-1;display:flex;align-items:stretch;gap:0;margin:0 -14px;padding:0 14px;border-top:1px solid var(--ink-100);min-width:0}
.cats{display:flex;gap:0;min-width:0}
.cats button{height:36px;padding:0 12px;background:transparent;border:0;border-bottom:3px solid transparent;cursor:pointer;color:var(--ink-700);white-space:nowrap}
.cats button[aria-pressed="true"]{border-bottom-color:var(--c-principal);color:var(--ink-900);font-weight:600}
.cats button small{font-size:0.8125rem;color:var(--ink-500);margin-left:4px}
.from-ot{display:flex;align-items:center;gap:8px;margin-left:auto;padding-left:14px;font-size:var(--fs-meta);color:var(--ink-700);white-space:nowrap}
.from-ot button{display:flex;align-items:center;gap:6px;height:26px;padding:0 8px;background:var(--surface);border:1px solid var(--line);cursor:pointer;font-size:0.875rem}
.from-ot button[aria-pressed="true"]{background:var(--t-principal);border-color:var(--c-principal);font-weight:600}
.from-ot .plate-s{font-family:var(--mono);font-size:0.8125rem;border:1px solid var(--ink-700);padding:0 3px;background:var(--white)}
.sale{display:flex;align-items:center;gap:10px;height:var(--field-h);padding:0 6px 0 12px;background:var(--c-barra);color:var(--white);border:0;cursor:pointer;white-space:nowrap;box-shadow:3px 3px 0 var(--ink-900);font-size:0.9375rem}
.sale b{font-family:var(--cond);font-size:1.125rem;font-weight:600}
.sale .go{display:flex;align-items:center;gap:6px;height:24px;padding:0 8px;background:var(--white);color:var(--c-barra);font-weight:600;font-size:0.875rem}
.rf-grid{display:grid;grid-template-columns:minmax(0,1fr) 430px;gap:12px;min-height:0}
.rf-res{display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-height:0;min-width:0}
.rf-res .cap{margin:0;display:flex;align-items:baseline;gap:10px;padding:9px 12px;border-bottom:1px solid var(--edge);font-size:0.9375rem;color:var(--ink-700)}
.rf-res .cap b{font-family:var(--cond);font-size:var(--fs-title);color:var(--ink-900);font-weight:600}
.rf-res .cap b,.rf-res .cap span:last-child{white-space:nowrap;flex:none}
.rf-res .cap [data-rf-for]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rf-res .cap span:last-child{margin-left:auto;font-size:var(--fs-meta);color:var(--ink-500)}
#rf-tb tr{cursor:pointer}
#rf-tb tr[aria-selected="true"]{background:var(--t-principal);box-shadow:inset 4px 0 0 var(--c-principal)}
#rf-tb tr:focus-visible{outline:2px solid var(--c-principal);outline-offset:-2px}
#rf-tb td{height:40px}
.pn{display:flex;flex-direction:column;line-height:1.2;min-width:0}
#rf-tb td:first-child{width:100%;max-width:0} .pn>*{overflow:hidden;text-overflow:ellipsis}
.pn small{font-size:var(--fs-meta);color:var(--ink-500)}
.mono{font-family:var(--mono);font-size:0.875rem;white-space:nowrap}
.rel{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px 0 9px;font-size:0.84375rem;font-weight:600;white-space:nowrap;background:var(--tint);color:var(--tone);box-shadow:inset 3px 0 0 var(--tone)}
.r-oem{--tone:var(--c-principal);--tint:var(--t-principal)} .r-exacto{--tone:var(--c-ok);--tint:var(--t-ok)}
.r-verif{--tone:var(--c-autorizada);--tint:var(--t-autorizada)} .r-reempl{--tone:var(--c-pronto);--tint:var(--t-pronto)}
.r-posible{--tone:var(--ink-700);--tint:var(--white);border:1px dashed var(--edge);box-shadow:none} .r-univ{--tone:var(--c-diagnostico);--tint:var(--t-diagnostico)}
.stk{display:flex;flex-direction:column;line-height:1.2;align-items:flex-end}
.stk b{font-size:1.0625rem} .stk b.zero{color:var(--c-urgente)} .stk small{font-size:0.8125rem;color:var(--ink-500);white-space:nowrap}
.rf-res .keys{margin:0;display:flex;gap:16px;padding:7px 12px;border-top:1px solid var(--ink-100);font-size:var(--fs-meta);color:var(--ink-500);white-space:nowrap;overflow:hidden}
.rf-res .keys .op-pager .btn{min-height:calc(var(--btn-h) - 8px);padding:0 10px}
.rf-res .keys kbd{font-family:var(--font);border:1px solid var(--line);border-bottom-width:2px;padding:0 5px;color:var(--ink-700)}
.pd{display:flex;flex-direction:column;gap:10px;min-height:0;padding:12px 14px}
.pd-h{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;padding-bottom:10px;border-bottom:1px solid var(--ink-100)}
.pd-h h2{margin:0;font-family:var(--cond);font-size:1.25rem;font-weight:600;line-height:1.15}
.pd-h p{margin:0;grid-column:1;font-size:var(--fs-meta);color:var(--ink-700)}
.pd-h .rel{grid-column:2;grid-row:1/3;align-self:start}
.pd-tags{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.ptag{display:inline-flex;align-items:center;min-height:22px;padding:0 8px;font-size:var(--fs-meta);font-weight:600;color:var(--ink-700);background:var(--white);border:1px solid var(--ink-100)}
.ptag.t-lim{color:var(--c-principal);background:var(--t-principal);border-color:transparent}
.ptag.t-warn{color:var(--ink-900);background:var(--t-refaccion);border-color:transparent;border-left:3px solid var(--c-refaccion)}
.pd h3{margin:0 0 5px;font-family:var(--cond);font-size:1rem;font-weight:600;display:flex;align-items:center;gap:6px}
.pd h3 svg{width:16px;height:16px;color:var(--ink-500)}
.pd-2{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:14px}
.kv{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 10px;margin:0;font-size:0.90625rem}
.kv dt{color:var(--ink-500);white-space:nowrap} .kv dd{margin:0;text-align:right;min-width:0;white-space:nowrap} .kv dd.mono{font-size:0.84375rem}
.prices{display:grid;gap:2px;margin:0;font-size:0.90625rem}
.prices div{display:flex;justify-content:space-between;gap:8px;padding:2px 6px}
.prices div.on{background:var(--t-principal);box-shadow:inset 3px 0 0 var(--c-principal);font-weight:600}
.prices dd{margin:0}
.cross{list-style:none;margin:0;padding:0;display:grid;gap:3px;font-size:0.90625rem}
.cross li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:3px 0;border-top:1px dashed var(--ink-100)}
.cross li:first-child{border-top:0}
.cross .mono{font-size:0.84375rem} .cross small{color:var(--ink-500);font-size:0.8125rem} .cross li>span:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .cross li>small{text-align:right;white-space:nowrap}
.stock{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border:1px solid var(--ink-100)}
.stock div{display:flex;align-items:baseline;gap:6px;padding:5px 8px;border-right:1px solid var(--ink-100);font-size:0.84375rem;color:var(--ink-700);line-height:1.25;white-space:nowrap;min-width:0}
.stock div:last-child{border-right:0}
.stock b{font-family:var(--cond);font-size:1.25rem;color:var(--ink-900);font-weight:600} .stock i{font-style:normal;font-family:var(--mono);font-size:0.8125rem;color:var(--ink-500);margin-left:auto}
.stock b.zero{color:var(--c-urgente)}
.pd-act{margin-top:4px;display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,1fr);gap:8px;align-items:center}
.pd-act .fld{flex-direction:row;align-items:center;gap:6px}
.pd-act .fld input{width:56px;text-align:right}
.pd-act .btn{min-width:0;white-space:normal;text-align:center;line-height:1.15;min-height:var(--btn-main-h)}
.rf-res .keys .msg{flex:1 1 0;min-width:0;color:var(--c-ok);font-weight:600;overflow:hidden;text-overflow:ellipsis}
.rf-res .keys.has-msg>span:not(.msg){display:none}
.rf-res .keys.has-msg .msg{margin-left:0}
.nw{white-space:nowrap}
.casco{font-size:0.8125rem;color:var(--c-refaccion);font-weight:600;white-space:nowrap}
@media screen and (max-width:1500px){
  .task a{padding:0 10px}
  .rf-grid{grid-template-columns:minmax(0,1fr) 380px}
  .fit .fld:nth-child(4) select{width:132px}
  .cats button{padding:0 9px}
  .from-ot .lbl{display:none}
  #rf-tb td.ubi,#rf-res-t th.ubi{display:none}
  .pd-act .btn{padding:0 8px} .pd-act .btn svg{display:none}
}
@media screen and (max-height:760px) and (min-width:1101px){
  .rf{gap:8px}
  .rf-find{padding-top:8px;row-gap:6px}
  .cats button{height:32px}
  #rf-tb td{height:33px}
  .pn{flex-direction:row;align-items:baseline;gap:8px;white-space:nowrap} .pn small{overflow:hidden;text-overflow:ellipsis}
  .stk{flex-direction:row-reverse;align-items:baseline;gap:8px}
  .rf-res .cap{padding:6px 12px}
  .rf-res .keys{padding:4px 12px}
  .pd{gap:7px;padding:9px 12px}
  .pd-h{padding-bottom:7px}
  .pd h3{margin-bottom:3px}
  .cross li{padding:2px 0}
  .stock div{padding:3px 8px} .stock b{font-size:1.125rem}
  .pd-h p{display:none} .pd-h{padding-bottom:5px} .cross{gap:1px} .cross li{padding:1px 0}
  .pd-h{grid-template-columns:minmax(0,1fr)} .pd-h .rel{grid-column:1;grid-row:2;justify-self:start}
}
@media screen and (max-width:1100px){
  .rf-find{grid-template-columns:1fr}
  .rf-grid{grid-template-columns:1fr}
  .rf-filt{flex-wrap:wrap}
  .from-ot{margin-left:0;padding:6px 0}
  .rf-res .tablewrap{overflow-x:auto}
}
@media screen and (max-width:760px){
  .fit{flex-wrap:wrap} .fit .fld{flex:1 1 40%} .fit .fld select{width:100%!important}
  .cats{overflow-x:auto;max-width:100%}
  .sale{justify-content:space-between}
  .pd-2{grid-template-columns:1fr}
  .rf-res .keys>span:not(.msg){display:none}
  .rf-res .cap{flex-wrap:wrap;gap:2px 10px} .rf-res .cap span:last-child{margin-left:0}
  #rf-res-t thead{display:none}
  #rf-tb tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:9px 12px;border-bottom:1px solid var(--ink-100)}
  #rf-tb td{display:block;height:auto;padding:0;border:0}
  #rf-tb td:nth-child(1){grid-column:1;grid-row:1} #rf-tb td:nth-child(6){grid-column:2;grid-row:1;font-weight:600}
  #rf-tb td:nth-child(2){grid-column:1;grid-row:2} #rf-tb td:nth-child(3){grid-column:1;grid-row:3}
  #rf-tb td:nth-child(4){grid-column:2;grid-row:2/4;align-self:end} #rf-tb td.ubi{display:none}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
@media (forced-colors:active){.tile .ic,.btn,.chip{border:1px solid CanvasText}}

/* ============ PASO A PRODUCCIÓN (T0.10): lo que la maqueta resolvía con estilos en línea o con datos de ejemplo ============ */
/* Globitos del escritorio: el color sale de una clase, nunca de style="" (CSP sin unsafe-inline) */
.bd-pronto{--bd:var(--c-pronto)} .bd-principal{--bd:var(--c-principal)} .bd-urgente{--bd:var(--c-urgente)}
main[tabindex="-1"]:focus{outline:none}
.bar :focus-visible{outline-color:var(--white)}
.bar .out{margin:0;display:flex}
.bar .exit{height:30px;padding:0 12px;background:transparent;border:1px solid rgba(255,255,255,.55);color:var(--white);cursor:pointer;white-space:nowrap}
.bar .exit:hover{background:rgba(255,255,255,.14)}
/* Panel «Hoy» sin datos todavía */
.today .empty{display:grid;justify-items:center;gap:8px;padding:26px 22px;text-align:center;color:var(--ink-700)}
.today .empty .i{width:44px;height:44px;stroke-width:1.2;color:var(--ink-500)}
.today .empty b{font-family:var(--cond);font-size:var(--fs-title);color:var(--ink-900)}
.today .empty small{font-size:var(--fs-meta);color:var(--ink-500)}
@media screen and (max-width:1100px){.bar .me{margin-left:auto}}
@media screen and (max-height:760px) and (min-width:1101px){.today .empty{padding:14px 18px}}

/* Aviso flotante de la sesión (bienvenida, guardado): no empuja el contenido, se cierra solo */
.toast{position:fixed;top:calc(var(--bar-h) + 10px);right:16px;z-index:40;display:flex;align-items:flex-start;max-width:min(440px,calc(100vw - 32px));background:var(--white);border:1px solid var(--edge);box-shadow:var(--hard-on)}
.toast .flash{margin:0;flex:1}
.toast-x{flex:none;width:36px;height:36px;border:0;background:transparent;font-size:1.3125rem;line-height:1;color:var(--ink-700);cursor:pointer}
@media (pointer:coarse){.toast-x{width:44px;height:44px}}

/* ============ PANTALLAS DE ACCESO (entrar, recuperar, restablecer, sin acceso) ============ */
body.auth{min-height:100dvh;height:auto;display:grid;place-items:center;padding:24px 16px;background-color:var(--steel);
  background-image:radial-gradient(circle at 9px 9px,var(--line) 1.6px,transparent 1.9px);background-size:18px 18px}
.auth-card{width:100%;max-width:400px;background:var(--white);border:1px solid var(--edge);border-top:3px solid var(--ink-900);box-shadow:var(--hard-on);padding:22px 24px 20px}
.auth-brand{display:flex;align-items:center;gap:10px;margin:0 0 18px;font-family:var(--cond);font-weight:600;font-size:1.1875rem;letter-spacing:.01em;color:var(--c-barra)}
.auth-brand b{display:grid;place-items:center;width:30px;height:30px;background:var(--c-barra);color:var(--white);box-shadow:3px 3px 0 var(--ink-900)}
.auth-brand b svg{width:20px;height:20px;stroke-width:1.9}
.auth-brand span span{font-weight:500;opacity:.8}
.auth-card h1{margin:0 0 6px;font-family:var(--cond);font-size:var(--fs-module);font-weight:600;line-height:1.2}
.auth-card p{margin:0 0 10px;color:var(--ink-700)}
.auth-card a{color:var(--c-principal)}
.auth-card .aux{margin:16px 0 0;font-size:var(--fs-meta)}
.form{display:grid;gap:12px;margin-top:14px}
.form label{display:grid;gap:3px;font-size:var(--fs-meta);color:var(--ink-700)}
.form input{width:100%;min-width:0;height:var(--field-h);padding:0 8px;border:1px solid var(--edge);background:var(--white);font-size:var(--fs-body);color:var(--ink-900)}
.form input:focus-visible{outline-offset:0}
.form .btn{width:100%}
.btn.btn-primary{min-height:var(--btn-main-h);background:var(--c-principal);color:var(--white);border-color:var(--c-barra);font-weight:600}
.trap{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.flash{margin:10px 0 0;padding:8px 12px 8px 14px;font-size:var(--fs-body);color:var(--ink-900);background:var(--tint);box-shadow:inset 3px 0 0 var(--tone)}
.flash-error{--tone:var(--c-urgente);--tint:var(--t-urgente)}
.flash-ok{--tone:var(--c-ok);--tint:var(--t-ok)}
.auth-card .aux a{display:inline-flex;align-items:center;min-height:24px}
@media (pointer:coarse){.auth-card .aux a,.box h2 a,.box h2 button.link{min-height:44px}}

/* Alta de cuenta: dos columnas en escritorio, una en teléfono */
.auth-card:has(.form-cols){max-width:640px}
.form-cols{grid-template-columns:1fr 1fr;column-gap:14px}
.form-cols .span-2{grid-column:1 / -1}
.form-cols > label{align-content:start}
.form select{width:100%;min-width:0;height:var(--field-h);padding:0 6px;border:1px solid var(--edge);background:var(--white);font-size:var(--fs-body);color:var(--ink-900)}
.form [aria-invalid="true"]{border-color:var(--c-urgente);box-shadow:inset 3px 0 0 var(--c-urgente)}
.form .field-error{color:var(--c-urgente);font-size:var(--fs-meta)}
.form .hint{color:var(--ink-500);font-size:var(--fs-meta)}
.form .choice{margin:0;padding:0;border:0;display:flex;flex-wrap:wrap;gap:6px 8px}
.form .choice legend{padding:0;margin-bottom:3px;font-size:var(--fs-meta);color:var(--ink-700)}
.form .choice label{display:flex;flex:1 1 auto;cursor:pointer}
.form .choice input{position:absolute;opacity:0;width:1px;height:1px}
.form .choice span{display:flex;flex:1;justify-content:center;align-items:center;height:var(--field-h);padding:0 14px;border:1px solid var(--edge);background:var(--white);font-size:var(--fs-body);color:var(--ink-900)}
.form .choice input:checked + span{background:var(--c-principal);border-color:var(--c-barra);color:var(--white);font-weight:600}
.form .choice input:focus-visible + span{outline:2px solid var(--c-principal);outline-offset:2px}
.form .choice[aria-invalid="true"]{box-shadow:none}
.form .choice[aria-invalid="true"] span{border-color:var(--c-urgente)}
.form .choice .field-error{flex-basis:100%}
.form .check{display:flex;gap:8px;align-items:flex-start;font-size:var(--fs-body);color:var(--ink-900)}
.form .check input{width:18px;height:18px;margin:2px 0 0;flex:none}
@media screen and (max-width:560px){.form-cols{grid-template-columns:1fr}}

/* ---------- Pestañas que son páginas (Administración) ---------- */
nav.tabs{display:flex;gap:2px;min-width:0}
.tabs a{display:flex;align-items:center;gap:8px;height:38px;padding:0 14px;margin-bottom:-1px;white-space:nowrap;text-decoration:none;
  background:var(--surface);border:1px solid var(--line);border-bottom-color:var(--edge);color:var(--ink-700)}
.tabs a:hover{color:var(--ink-900);background:var(--white)}
.tabs a[aria-current="page"]{background:var(--surface);color:var(--ink-900);font-weight:600;border-color:var(--edge);border-top:3px solid var(--c-principal);border-bottom-color:var(--surface)}
.doc.one{grid-template-rows:minmax(0,1fr)}

/* ---------- Sucursal activa: menú de la barra ---------- */
.branch-pick{position:relative}
.branch-pick summary{list-style:none}
.branch-pick summary::-webkit-details-marker{display:none}
.bar .branch-pick .branch{cursor:pointer}
.branch-pick .caret{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid currentColor;margin-left:2px}
.branch-pick[open] .branch{background:rgba(255,255,255,.14)}
.branch-menu{position:absolute;top:calc(100% + 7px);left:0;z-index:30;min-width:230px;display:grid;padding:4px;
  background:var(--white);color:var(--ink-900);border:1px solid var(--ink-900);box-shadow:4px 4px 0 var(--ink-900)}
.branch-menu button{display:flex;align-items:center;min-height:44px;padding:0 12px;border:0;background:transparent;font:inherit;color:var(--ink-900);text-align:left;cursor:pointer}
.branch-menu button:hover{background:var(--surface)}
.branch-menu button[aria-current="true"]{font-weight:600;box-shadow:inset 3px 0 0 var(--c-principal);background:var(--t-principal)}
@media screen and (max-width:760px){.bar{position:relative}.branch-pick{position:static}.branch-menu{left:12px;right:12px;min-width:0}}

/* ---------- Administración → Usuarios ---------- */
.ogrid.users{grid-template-columns:minmax(0,1fr) 384px}
@media screen and (max-width:1100px){.ogrid.users{grid-template-columns:1fr}}
.ulist{display:grid;grid-template-rows:auto minmax(0,1fr)}
.uhead{display:flex;align-items:center;gap:16px;padding:10px 14px;border-bottom:1px solid var(--edge)}
.uhead h2{margin:0;font-family:var(--cond);font-size:var(--fs-title);font-weight:600}
.usage{margin:0 auto 0 0;display:flex;gap:10px;align-items:baseline;font-size:var(--fs-meta);color:var(--ink-700)}
.usage span{padding-left:10px;border-left:1px solid var(--line)}
.usage.full{color:var(--c-urgente);font-weight:600}
.ulist tbody td{height:46px}
.ulist .who{display:grid;color:inherit;text-decoration:none;padding:2px 0}
.ulist .who b{font-weight:600}
.ulist .who small{font-size:var(--fs-meta);color:var(--ink-500)}
.ulist .who:hover b{text-decoration:underline}
.ulist tr.on{background:var(--t-principal);box-shadow:inset 3px 0 0 var(--c-principal)}
.ulist tr[data-off] td{color:var(--ink-500)}
@media screen and (max-width:760px){
  .uhead{flex-wrap:wrap;gap:6px 12px}
  .ulist thead{display:none}
  .ulist table,.ulist tbody,.ulist td{display:block}
  .ulist tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;padding:8px 12px;border-bottom:1px solid var(--line)}
  .ulist tbody td{height:auto;padding:0;border:0;white-space:normal}
  .ulist tbody td:nth-child(4){grid-column:2;grid-row:1;align-self:start}
  .ulist tbody td:nth-child(2),.ulist tbody td:nth-child(3),.ulist tbody td:nth-child(5){grid-column:1/-1;font-size:var(--fs-meta);color:var(--ink-700)}
  .ulist tbody td:nth-child(3)::before{content:"Sucursales: "}
  .ulist tbody td:nth-child(5)::before{content:"Último acceso: "}
}
.muted{color:var(--ink-500)}
a.btn{text-decoration:none}
.chip.s-off{--tone:var(--ink-500);--tint:var(--ink-100)}
.roles dl{margin:0;display:grid;gap:2px}
.roles dt{font-weight:600;margin-top:6px}
.roles dd{margin:0;font-size:var(--fs-meta);color:var(--ink-700)}
.roles .hint{margin:14px 0 0;padding-top:10px;border-top:1px solid var(--line);font-size:var(--fs-meta);color:var(--ink-500)}
.uform .form{margin-top:4px;gap:10px}
.uform .flash{margin:0 0 8px}
.uform .choice label{flex:1 1 auto}
.uform .choice span{padding:0 8px;white-space:nowrap}
.form .checks{margin:0;padding:0;border:0;display:flex;flex-wrap:wrap;gap:2px 16px}
.form .checks legend{padding:0;margin-bottom:3px;font-size:var(--fs-meta);color:var(--ink-700)}
.form .checks label{display:flex;align-items:center;gap:8px;min-height:34px;font-size:var(--fs-body);color:var(--ink-900);cursor:pointer}
.form .checks input{width:18px;height:18px;margin:0;flex:none}
.form .checks .owner-note{display:none;flex-basis:100%;min-height:34px;align-content:center}
.form .checks.is-owner label{display:none}
.form .checks.is-owner .owner-note{display:block}
.form .checks .field-error{flex-basis:100%}
.form .checks[aria-invalid="true"]{box-shadow:none}
.form .checks[aria-invalid="true"] legend{color:var(--c-urgente)}
.uacts{display:flex;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.uacts form{flex:1}
.uacts .btn{width:100%}
@media screen and (max-height:760px) and (min-width:1101px){.uform .form{gap:8px}.uacts{margin-top:8px;padding-top:8px}}
.tag{display:inline-block;margin-left:6px;padding:0 6px;font-size:0.8125rem;font-weight:600;line-height:18px;vertical-align:1px;color:var(--c-principal);background:var(--t-principal);border:1px solid var(--c-principal)}
.upper{text-transform:uppercase}
.upper::placeholder{text-transform:none}

/* ---------- Administración → Sucursales (filas apiladas en angosto) ---------- */
@media screen and (max-width:760px){
  .ulist .branches tbody td:nth-child(4){grid-column:1/-1;grid-row:auto}
  .ulist .branches tbody td:nth-child(6){grid-column:2;grid-row:1;align-self:start}
  .ulist .branches tbody td:nth-child(n+2):nth-child(-n+5){grid-column:1/-1;font-size:var(--fs-meta);color:var(--ink-700)}
  .ulist .branches tbody td:nth-child(2)::before{content:"Serie: ";font-family:var(--font);font-size:var(--fs-meta)}
  .ulist .branches tbody td:nth-child(3)::before{content:"Zona y hora: "}
  .ulist .branches tbody td:nth-child(5)::before{content:"Personas: "}
}

/* ---------- Administración → Negocio ---------- */
.biz{align-self:start}
.biz > .flash{margin:12px 14px 0}
.biz .form{padding:12px 14px 14px;gap:10px}
.biz .choice span{padding:0 8px;white-space:nowrap}
.biz .hint{margin:0}
.logo-pick{display:flex;gap:14px;align-items:center}
.logo-pick > div{display:grid;gap:6px;flex:1;min-width:0}
.logo-prev{margin:0;flex:none;display:grid;place-items:center;width:96px;height:96px;border:1px dashed var(--edge);background:var(--surface)}
.logo-prev img{width:96px;height:96px;object-fit:contain;background:var(--white)}
.logo-prev figcaption{font-size:var(--fs-meta);color:var(--ink-500)}
.logo-box form{display:grid;gap:6px}
.btn.file{position:relative;overflow:hidden}
.btn.file input{position:absolute;inset:0;opacity:0;cursor:pointer}
.btn.file:focus-within{outline:2px solid var(--c-principal);outline-offset:2px}
.btn.link{min-height:var(--btn-h);border:0;background:none;box-shadow:none;color:var(--c-urgente);text-decoration:underline;justify-self:start;padding:0}
.logo-box > .hint{margin:10px 0 0;font-size:var(--fs-meta);color:var(--ink-500)}
.logo-box .logo-msg{display:block;margin-top:6px}
@media screen and (max-width:560px){.biz .choice label{flex:1 1 100%}}
.btn.link:hover,.btn.link:active{box-shadow:none;transform:none}
.logo-prev:has(img){border-style:solid;border-color:var(--line)}

/* Plataforma (T0.17): el equipo de Syatek. Sin barra de tareas. */
.app.plat{grid-template-rows:var(--bar-h) minmax(0,1fr)}
.plat .bar a.brand{color:inherit;text-decoration:none}
.plat-tag{height:24px;display:inline-flex;align-items:center;padding:0 8px;border:1px solid rgba(255,255,255,.55);font-size:var(--fs-meta);font-weight:600;letter-spacing:.02em}
.plat-who{margin-left:auto;font-size:var(--fs-meta);opacity:.92;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.plat-main{display:flex;flex-direction:column;gap:10px;min-height:0;padding:12px 16px;background:var(--surface)}
.plat-main h1{margin:0;font-family:var(--cond);font-size:var(--fs-title);font-weight:600}
.ptab{display:grid;grid-template-rows:auto minmax(0,1fr)}
.ptab tbody td{height:44px}
.ptab .who{display:grid;color:inherit;text-decoration:none;padding:2px 0;min-width:0}
.ptab .who b{font-weight:600}
.ptab .who small{font-size:var(--fs-meta);color:var(--ink-500);overflow:hidden;text-overflow:ellipsis}
.ptab a.who:hover b{text-decoration:underline}
.ptab tr[data-off] td{color:var(--ink-500)}
.plist{flex:1}
.plist th.pbiz{width:36%}
.psearch{display:flex;align-items:center;gap:8px}
.psearch input{width:300px;max-width:100%;height:var(--btn-h);padding:0 8px;border:1px solid var(--edge);background:var(--white);font-size:var(--fs-body);color:var(--ink-900)}
.plink{color:var(--c-principal);font-size:var(--fs-meta);display:inline-flex;align-items:center;min-height:var(--btn-h)}
.pempty{margin:0;padding:26px 16px;color:var(--ink-700)}
.pcrumb{display:flex;gap:6px;align-items:center;font-size:var(--fs-meta);color:var(--ink-700);min-width:0}
.pcrumb a{color:var(--c-principal)}
.pcrumb span[aria-current]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pdetail{flex:1}
.pcol{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);grid-template-rows:auto minmax(0,1fr);gap:12px;min-height:0}
.pdata{grid-column:1 / -1}
.pkv{padding:10px 14px;grid-template-columns:repeat(3,auto minmax(0,1fr));gap:4px 12px}
.pkv dd{text-align:left;overflow:hidden;text-overflow:ellipsis}
.pkv dd.wrap{white-space:normal;grid-column:span 5}
.pact{margin-top:8px;gap:8px}
.pact .hint{margin:0}
.pdetail .rail .box h2{font-size:var(--fs-title)}
@media screen and (max-width:1500px){.pkv{grid-template-columns:repeat(2,auto minmax(0,1fr))} .pkv dd.wrap{grid-column:span 3}}
@media screen and (max-width:1100px){.pcol{grid-template-columns:1fr}.pdetail .rail{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}}
@media screen and (max-width:760px){
  .app.plat{grid-template-rows:auto minmax(0,1fr)}
  .plat-who{display:none}
  .plat .bar .out{margin-left:auto}
  .uhead:has(.psearch){flex-wrap:wrap}
  .psearch{flex-basis:100%}
  .psearch label{flex:1}
  .psearch input{width:100%}
  .ptab thead{display:none}
  .ptab table,.ptab tbody,.ptab td{display:block}
  .ptab tbody tr{display:flex;flex-wrap:wrap;gap:2px 12px;padding:8px 12px;border-bottom:1px solid var(--line)}
  .ptab tbody td{height:auto;padding:0;border:0;text-align:left;white-space:normal}
  .ptab tbody td:first-child{flex:1 1 60%}
  .ptab tbody td[data-l]{flex-basis:auto;font-size:var(--fs-meta);color:var(--ink-700)}
  .ptab td[data-l]::before{content:attr(data-l) ": "}
  .pkv{grid-template-columns:auto minmax(0,1fr)} .pkv dd.wrap{grid-column:auto}
}

/* QA fase 0 (13-oct) */
/* Acciones de soporte plegables: una abierta a la vez (name), así el riel cabe en 1366x657. */
.acc{padding:0}
.acc > summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:40px;padding:0 14px;cursor:pointer}
.acc > summary::-webkit-details-marker{display:none}
.acc > summary h2{margin:0}
.acc > summary::after{content:"";width:8px;height:8px;border-right:2px solid var(--ink-700);border-bottom:2px solid var(--ink-700);transform:rotate(45deg);margin-top:-4px}
.acc[open] > summary::after{transform:rotate(-135deg);margin-top:4px}
.acc > summary:hover{background:var(--surface)}
.acc > form{padding:0 14px 12px}
/* Error del campo en la línea de su etiqueta: marcar errores no empuja el botón fuera de vista. */
.form-cols > label:has(> .field-error){grid-template-columns:auto minmax(0,1fr);column-gap:10px}
.form-cols > label:has(> .field-error) > input,.form-cols > label:has(> .field-error) > select{grid-column:1 / -1;grid-row:2}
.form-cols > label > .field-error{grid-column:2;grid-row:1;text-align:right}
.head-error{margin:0 0 0 auto;color:var(--c-urgente);font-size:var(--fs-meta);font-weight:600}
/* Búsqueda con foco visible (el input no lleva outline propio). */
.search:focus-within{outline:3px solid var(--white);outline-offset:2px}
/* Tacto: 44 px en barra, barra de tareas, pestañas y casillas. */
@media (pointer:coarse){
  :root{--bar-h:56px;--task-h:46px}
  .bar .branch,.search,.bar .new,.bar .exit{height:44px}
  .tabs a{height:44px}
  .form .checks label{min-height:44px}
  .acc > summary{min-height:44px}
}

/* R-UI B: navegación de Plataforma (Cuentas y Catálogo vehicular). */
.plat-nav{display:flex;gap:2px;align-self:stretch;margin-left:8px}
.plat-nav a{display:flex;align-items:center;padding:0 14px;color:var(--white);text-decoration:none;white-space:nowrap}
.plat-nav a:hover{background:rgba(255,255,255,.12)}
.plat-nav a[aria-current="page"]{background:rgba(255,255,255,.18);box-shadow:inset 0 -3px 0 var(--white);font-weight:600}
@media (pointer:coarse){.plat-nav a{min-height:44px}}
@media screen and (max-width:760px){.plat-nav a{padding:0 8px}}

/* ============ BÚSQUEDA ÚNICA Ctrl K (B3.4): paleta arriba, 15 resultados en filas de una línea, sin scroll ============ */
dialog.palette{padding:0;border:2px solid var(--ink-900);background:var(--white);color:var(--ink-900);box-shadow:var(--hard-on);width:min(680px,calc(100vw - 24px));max-width:none;max-height:calc(100dvh - 32px);margin:16px auto auto;overflow:hidden}
dialog.palette[open]{display:flex;flex-direction:column}
dialog.palette::backdrop{background:rgba(27,31,36,.5)}
.pal-box{display:flex;align-items:stretch;border-bottom:2px solid var(--ink-900)}
.pal-q{flex:1;display:flex;align-items:center;gap:10px;padding:0 12px;height:48px;min-width:0}
.pal-q .i{width:20px;height:20px;color:var(--ink-500);flex:none}
.pal-q input{flex:1;min-width:0;border:0;outline:0;background:transparent;font-size:var(--fs-title);color:var(--ink-900)}
.pal-q input::placeholder{color:var(--ink-500)}
.pal-q:focus-within{box-shadow:inset 0 -3px 0 var(--c-principal)}
.pal-x{flex:none;width:48px;border:0;border-left:1px solid var(--line);background:var(--white);color:var(--ink-700);cursor:pointer;display:grid;place-items:center}
.pal-x:hover{background:var(--steel)}
.pal-x:focus-visible{outline:3px solid var(--c-principal);outline-offset:-3px}
.pal-lista{padding:4px 0}
.pal-grp+.pal-grp{border-top:1px solid var(--line);margin-top:4px;padding-top:4px}
.pal-h{display:flex;align-items:center;gap:6px;height:24px;padding:0 12px;font-family:var(--cond);font-weight:600;font-size:var(--fs-meta);color:var(--ink-500)}
.pal-h .i{width:16px;height:16px}
.pal-opt{display:flex;align-items:center;gap:10px;height:30px;padding:0 12px 0 9px;border-left:3px solid transparent;cursor:pointer;white-space:nowrap;min-width:0}
.pal-opt:hover{background:var(--steel)}
.pal-opt[aria-selected="true"]{background:var(--t-principal);border-left-color:var(--c-principal)}
.pal-main{font-weight:600;flex:none}
.pal-sub{color:var(--ink-700);overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}
.pal-tag{flex:none;font-size:var(--fs-meta);color:var(--ink-700);border:1px solid var(--line);padding:0 6px;line-height:20px}
.pal-vin{font-family:var(--mono);font-size:0.8125rem}
.pal-estado{margin:0;padding:12px;color:var(--ink-700)}
.pal-estado[hidden]{display:none}
.pal-ayuda{margin:0;display:flex;gap:16px;padding:6px 12px;border-top:1px solid var(--line);background:var(--surface);font-size:var(--fs-meta);color:var(--ink-700)}
.pal-ayuda kbd{font-family:var(--font);border:1px solid var(--line);border-bottom-width:2px;padding:0 5px;margin-right:3px;background:var(--white);color:var(--ink-700)}
@media (pointer:coarse){.pal-opt{height:40px}.pal-x{width:56px}}
