:root{font-family:Arial,Helvetica,sans-serif;color:#18323a;background:#f4f7f8}*{box-sizing:border-box}body{margin:0;background:#f4f7f8}.topbar{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:14px 18px;background:#0f4c5c;color:#fff;box-shadow:0 2px 8px rgba(0,0,0,.12)}.brand{font-size:22px;font-weight:800;letter-spacing:.04em}.subtitle{font-size:12px;opacity:.9;margin-top:2px}.container{max-width:980px;margin:18px auto;padding:0 14px 40px}.card{background:#fff;border-radius:14px;padding:18px;margin-bottom:16px;box-shadow:0 3px 14px rgba(20,52,62,.08);border:1px solid #e2eaed}.hero h1,.card h2{margin-top:0}.hero p{line-height:1.5}.search-row{display:flex;gap:10px}.search-row input{flex:1;min-width:0;border:1px solid #bdcdd2;border-radius:9px;padding:12px;font-size:16px}.btn{border:0;border-radius:9px;padding:11px 14px;font-weight:700;cursor:pointer;text-decoration:none;display:inline-block;text-align:center}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:#0f6f73;color:#fff}.btn-secondary{background:#255c75;color:#fff}.btn-light{background:#eaf0f2;color:#17343d}.btn-danger{background:#8b3037;color:#fff}.btn-small{padding:8px 10px;font-size:12px}.actions,.section-title-row{display:flex;gap:8px;align-items:center;justify-content:space-between;flex-wrap:wrap}.list{margin-top:12px}.item{display:flex;gap:14px;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid #e8eef0}.item:last-child{border-bottom:0}.item-main{min-width:0}.item-main strong{display:block;font-size:16px;margin-bottom:5px}.item-main div{font-size:13px;color:#49626a}.item-main small{display:block;margin-top:6px;color:#74888e}.item-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.badge{font-size:12px;font-weight:800;border-radius:99px;padding:6px 9px;background:#d7e1e4;color:#16343d}.badge-ok{background:#d6efe0;color:#17633a}.badge-off{background:#f6dddd;color:#8c2f34}.badge-warn{background:#f6ebcd;color:#74590c}.muted{color:#687c82;font-size:13px;margin-top:8px}.empty{padding:18px;text-align:center;color:#6a7f85;background:#f8fafb;border-radius:9px}.notice{margin-top:14px;padding:12px;border-radius:9px;background:#edf5f7;line-height:1.45}.notice ul{margin:8px 0 0;padding-left:20px}.hidden{display:none!important}.note-card{font-size:13px;line-height:1.5}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.kv{padding:11px;border-radius:9px;background:#f7f9fa;border:1px solid #e2eaed}.kv span{display:block;font-size:11px;color:#667b81;text-transform:uppercase;letter-spacing:.04em;margin-bottom:5px}.kv strong{display:block;word-break:break-word}@media(max-width:640px){.container{margin-top:12px}.card{border-radius:10px;padding:14px}.search-row{flex-direction:column}.item{align-items:flex-start;flex-direction:column}.item-actions{width:100%;justify-content:flex-start}.item-actions .btn{flex:1}.grid{grid-template-columns:1fr}.topbar{padding:12px 14px}.actions .btn{flex:1}}

.item-status{background:#fffaf0;border:1px solid #f0dfb4;border-radius:10px;padding:14px;margin:8px 0}.status-label{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.05em;padding:4px 7px;border-radius:999px;background:#f6ebcd;color:#74590c;margin-bottom:7px}.status-ready{background:#d6efe0;color:#17633a}.status-message{margin-top:8px!important;padding:9px 10px;background:#fff;border-radius:8px;border:1px solid #eadfbf;color:#5c4a16!important;line-height:1.4}

.topbar-status{display:flex;gap:7px;align-items:center;justify-content:flex-end;flex-wrap:wrap}@media(max-width:640px){.topbar-status{max-width:58%;}.topbar-status .badge{font-size:10px;padding:5px 7px}}

/* Iconografía y estados — Fase 3.6 */
.brand .fa,.card h1 .fa,.card h2 .fa,.btn .fa{margin-right:6px}.brand .fa{font-size:.9em}.badge .fa{margin-right:4px}.btn .fa{pointer-events:none}.item-actions .btn .fa{margin-right:5px}@media(max-width:640px){.btn .fa{margin-right:5px}.card h1 .fa,.card h2 .fa{margin-right:5px}}

/* Fase 4: estados de sincronización */
.btn-sync{background:#17805f;color:#fff}.btn-sync:hover{background:#11694e}.sync-line{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px}.sync-line small{margin:0!important;color:#8a4a4a!important}.sync-pill{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800}.sync-none{background:#eaf0f2;color:#50666d}.sync-pending{background:#fff0c9;color:#795800}.sync-progress{background:#dceef8;color:#235a78}.sync-ok{background:#d6efe0;color:#17633a}.sync-conflict{background:#ffe2bd;color:#894d00}.sync-error{background:#f6dddd;color:#8c2f34}

.sync-review{background:#fff0c9;color:#795800}.status-message-review{background:#fff8e8!important;border-color:#e5bd68!important;color:#674b0a!important}

.sync-draft-note{display:block;margin-top:5px;color:#607781;font-size:11px}
.sync-draft-note .fa{margin-right:4px}


/* V18.1 — botón secundario para consultar metadatos de la descarga */
.btn-detail{
  background:#eef4f6;
  border-color:#c8d9de;
  color:#315b66;
}
.btn-detail:hover,
.btn-detail:focus{
  background:#ddebef;
  border-color:#9ebcc5;
  color:#173f49;
}


/* V18.2 — acciones y estado de conexión en Detalles de descarga */
.detail-actions{
  justify-content:flex-start;
}
.detail-actions .btn{
  min-width:170px;
}
.detail-connection{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:7px;
  margin-top:10px;
  padding:9px 11px;
  border-radius:9px;
  border:1px solid #d7e2e5;
  background:#f6f9fa;
  color:#60767d;
  font-size:12px;
  font-weight:700;
}
.detail-connection-dot{
  width:9px;
  height:9px;
  flex:0 0 9px;
  border-radius:50%;
  background:#d19a2d;
  box-shadow:0 0 0 3px rgba(209,154,45,.12);
}
.detail-connection.is-online{
  background:#eef8f1;
  border-color:#c7e2cf;
  color:#2d6b40;
}
.detail-connection.is-online .detail-connection-dot{
  background:#43a567;
  box-shadow:0 0 0 3px rgba(67,165,103,.12);
}
.detail-connection.is-offline{
  background:#fff7e7;
  border-color:#ead5a6;
  color:#7c5b18;
}
.detail-connection.is-offline .detail-connection-dot{
  background:#d29827;
}
@media(max-width:640px){
  .detail-actions{
    align-items:stretch;
  }
  .detail-actions .btn{
    flex:1 1 100%;
    width:100%;
  }
  .detail-connection{
    font-size:11px;
  }
}


/* V19.1 — resumen completo de equipos seleccionados */
.selected-equipment-summary{
  display:block;
  margin-top:5px;
}
.selected-equipment-line{
  display:block;
  margin-top:2px;
  padding-left:0;
  color:#506f79;
}
.pattern-weight-summary{
  display:block;
  margin-top:4px;
}


/* V19.2 — Forzar sincronización de conflicto permitido */
.btn-force-sync{
  background:#d98216;
  border-color:#c8730c;
  color:#fff;
}
.btn-force-sync:hover,
.btn-force-sync:focus{
  background:#bd6909;
  border-color:#a95e08;
  color:#fff;
}
.status-message-conflict{
  border-color:#e0a45a!important;
  background:#fff5e8!important;
  color:#70430b!important;
}


/* V21.1 — interfaz de operación móvil, sin textos técnicos de implementación */
:root{
  --elisa-teal:#0f5964;
  --elisa-teal-dark:#0c4d58;
  --elisa-bg:#f2f6f7;
  --elisa-border:#dbe6e9;
  --elisa-text:#173740;
  --elisa-muted:#667f87;
}
body{background:var(--elisa-bg);color:var(--elisa-text)}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.topbar{min-height:64px;padding:10px 16px;background:var(--elisa-teal-dark)}
.brand{font-size:23px;line-height:1.1}.subtitle{font-size:12px}
.container{max-width:1080px;margin:14px auto;padding:0 12px 32px}
.card{border-radius:16px;padding:18px;border-color:var(--elisa-border);box-shadow:0 4px 16px rgba(20,52,62,.07)}
.mobile-hero{display:flex;align-items:center;gap:16px;padding:18px 20px}
.hero-icon{width:48px;height:48px;flex:0 0 48px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:#e7f3f4;color:var(--elisa-teal);font-size:21px}
.hero-copy{min-width:0;flex:1}.mobile-hero h1{font-size:24px;margin:0 0 5px}.mobile-hero p{margin:0;color:var(--elisa-muted);line-height:1.4;font-size:14px;max-width:760px}.hero-actions{justify-content:flex-start;margin-top:12px}
.section-heading{display:flex;align-items:flex-start;gap:11px;margin-bottom:14px}.section-heading.compact{margin-bottom:0}.section-heading h2{font-size:21px;line-height:1.2;margin:0}.section-help{margin:4px 0 0;color:var(--elisa-muted);font-size:13px;line-height:1.35}
.section-icon{width:36px;height:36px;flex:0 0 36px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:#e8f3f4;color:var(--elisa-teal);font-size:17px}
.search-row{gap:8px}.search-row input{min-height:48px;border-radius:12px;padding:12px 14px}.search-btn{min-width:112px;border-radius:12px}.search-message{min-height:0;margin-top:7px}
.section-title-row{align-items:center}.refresh-btn{white-space:nowrap}
.list{margin-top:10px}.work-item{padding:15px 6px;gap:12px}.work-item:first-child{padding-top:8px}.item-main{width:100%}.work-client,.work-meta{line-height:1.35}.work-meta{font-size:13px!important;color:#506b73!important}
.work-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.work-card-head>div{min-width:0}.work-card-head .sync-pill{flex:0 0 auto;margin-top:1px}
.download-meta{display:flex;flex-wrap:wrap;gap:5px 12px;margin:8px 0 6px;color:#6b8087;font-size:11px;line-height:1.35}.download-meta span{display:inline-flex;align-items:center;gap:4px}.download-meta .fa{color:#80959b}
.equipment-details{margin-top:10px;border:1px solid #dce7ea;border-radius:10px;background:#f8fbfb;overflow:hidden}.equipment-details summary{cursor:pointer;list-style:none;padding:10px 12px;font-size:12px;font-weight:800;color:#315962;display:flex;align-items:center;gap:7px}.equipment-details summary::-webkit-details-marker{display:none}.equipment-details summary:after{content:'\f078';font-family:FontAwesome;margin-left:auto;font-size:10px;color:#6f878e}.equipment-details[open] summary:after{content:'\f077'}.equipment-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:99px;background:#e2eef0;color:#315962;font-size:11px}.equipment-list{border-top:1px solid #e1eaec;padding:5px 10px}.equipment-row{display:grid;grid-template-columns:minmax(95px,auto) 1fr;gap:3px 8px;padding:8px 2px;border-bottom:1px solid #e8eff1;font-size:12px}.equipment-row:last-child{border-bottom:0}.equipment-row strong{font-size:12px;margin:0}.equipment-row span{color:#425f67;min-width:0}.equipment-row small{grid-column:1/-1;color:#75898f;margin:0!important}
.equipment-empty{margin-top:8px;font-size:12px;color:#627b82}.equipment-empty .fa{color:#4f9b6c;margin-right:5px}

.sync-inline-error{margin-top:7px;font-size:11px;color:#8c2f34}.sync-draft-note{margin-top:7px}
.mobile-actions{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;justify-content:stretch}.mobile-actions .btn{width:100%;min-height:40px;display:flex;align-items:center;justify-content:center;line-height:1.15}.mobile-actions .primary-action{grid-column:1/-1;min-height:44px;font-size:13px}
.status-message{font-size:12px;line-height:1.4}.notice{font-size:13px}

@media(max-width:640px){
  .topbar{position:sticky;padding:9px 10px;align-items:flex-start}.brand{font-size:20px}.subtitle{font-size:10px}.topbar-status{max-width:62%;gap:4px}.topbar-status .badge{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;padding:5px 7px}
  .container{margin:8px auto;padding:0 8px 88px}.card{margin-bottom:10px;padding:13px;border-radius:13px;box-shadow:0 2px 10px rgba(20,52,62,.06)}
  .mobile-hero{gap:10px;padding:12px 13px}.hero-icon{width:38px;height:38px;flex-basis:38px;border-radius:11px;font-size:17px}.mobile-hero h1{font-size:19px;margin-bottom:3px}.mobile-hero p{font-size:12px;line-height:1.35}.hero-actions .btn{width:100%;font-size:12px;padding:10px}
  .section-heading{gap:8px;margin-bottom:10px}.section-icon{width:32px;height:32px;flex-basis:32px;font-size:15px}.section-heading h2{font-size:18px}.section-help{font-size:11px;margin-top:2px}
  .search-row{display:grid;grid-template-columns:1fr}.search-row input{width:100%;min-height:46px;font-size:16px}.search-btn{width:100%;min-height:44px;font-size:14px}.search-message{font-size:11px}
  .section-title-row{align-items:flex-start;gap:8px}.section-title-row .section-heading{flex:1;min-width:0}.refresh-btn{width:42px;min-width:42px;height:38px;padding:0;font-size:0;border-radius:10px}.refresh-btn .fa{font-size:14px;margin:0}
  .item{padding:12px 0}.item-main strong{font-size:15px}.work-meta{font-size:12px!important}.status-label{font-size:9px}.work-card-head{align-items:flex-start}.work-card-head .sync-pill{font-size:9px;padding:4px 6px}
  .download-meta{display:grid;grid-template-columns:1fr;gap:3px;margin-top:6px}.equipment-row{grid-template-columns:1fr}.equipment-row small{grid-column:auto}
  .item-actions,.mobile-actions{width:100%}.mobile-actions{grid-template-columns:1fr 1fr}.mobile-actions .btn{font-size:11px;padding:9px 7px}.mobile-actions .primary-action{font-size:12px}
  .item-status{padding:11px}.item-status .status-message{font-size:11px}
}

@media(max-width:390px){
  .topbar-status{max-width:58%}.topbar-status .badge:first-child{max-width:150px}.mobile-actions{grid-template-columns:1fr}.mobile-actions .primary-action{grid-column:auto}.section-help{display:none}.mobile-hero p{font-size:11px}
}


/* V21.2 — identidad Elicrom */
.brand{
  display:flex;
  align-items:center;
  gap:9px;
}
.elicrom-brand-logo{
  display:block;
  width:92px;
  height:34px;
  object-fit:contain;
  background:#fff;
  border-radius:7px;
  padding:2px 5px;
}
.elisa-brand-name{
  display:inline-block;
  font-size:22px;
  font-weight:800;
  letter-spacing:.04em;
}

.hero-icon.elicrom-hero-logo{
  width:118px;
  height:48px;
  flex:0 0 118px;
  padding:4px 7px;
  background:#fff;
  border:1px solid #d9e6e9;
}
.hero-icon.elicrom-hero-logo img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}

@media(max-width:640px){
  .elicrom-brand-logo{
    width:72px;
    height:29px;
    border-radius:6px;
    padding:2px 4px;
  }
  .elisa-brand-name{
    font-size:18px;
  }
  .hero-icon.elicrom-hero-logo{
    width:92px;
    height:38px;
    flex-basis:92px;
    padding:3px 5px;
  }
}

@media(max-width:390px){
  .elicrom-brand-logo{
    width:64px;
  }
  .elisa-brand-name{
    font-size:16px;
  }
  .hero-icon.elicrom-hero-logo{
    width:82px;
    flex-basis:82px;
  }
}

/* V23 — acceso ELISA / autenticación offline */
.offline-login-gate{
  position:fixed;
  inset:0;
  z-index:1000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  overflow:auto;
  background:#28456b;
}
.offline-login-backdrop{
  position:absolute;
  inset:0;
  overflow:hidden;
  background:
    radial-gradient(circle at 24% 12%,rgba(255,229,102,.90) 0,rgba(255,229,102,.38) 18%,transparent 37%),
    radial-gradient(circle at 67% 12%,rgba(126,238,158,.74) 0,rgba(126,238,158,.30) 21%,transparent 43%),
    radial-gradient(circle at 51% 58%,rgba(105,195,188,.66) 0,rgba(105,195,188,.24) 24%,transparent 49%),
    linear-gradient(135deg,#49556f 0%,#244266 46%,#263b69 100%);
}
.offline-login-backdrop:after{
  content:"";
  position:absolute;
  inset:-35px;
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  background:rgba(20,41,67,.08);
}
.offline-login-card{
  position:relative;
  z-index:1;
  width:min(560px,100%);
  border-radius:12px;
  overflow:hidden;
  color:#fff;
  background:rgba(21,52,59,.84);
  box-shadow:0 26px 70px rgba(5,22,38,.34);
  border:1px solid rgba(255,255,255,.10);
}
.offline-login-head{
  padding:28px 30px 22px;
  background:linear-gradient(180deg,rgba(33,52,45,.72),rgba(25,45,47,.78));
  border-bottom:1px solid rgba(255,255,255,.08);
}
.offline-login-brandbox{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:21px;
}
.offline-login-logo{
  display:block;
  width:176px;
  max-width:62%;
  height:auto;
  padding:7px 10px;
  border-radius:8px;
  background:#fff;
  object-fit:contain;
  box-shadow:0 3px 12px rgba(0,0,0,.12);
}
.offline-login-mode{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:5px 9px;
  border-radius:999px;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.18);
  color:#fff;
  font-size:11px;
  font-weight:800;
  letter-spacing:.13em;
}
.offline-login-title-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
}
.offline-login-title-row h1{
  margin:0 0 8px;
  color:#fff;
  font-family:Georgia,'Times New Roman',serif;
  font-size:28px;
  line-height:1.12;
  letter-spacing:.01em;
  text-shadow:0 1px 1px rgba(0,0,0,.25);
}
.offline-login-title-row p{
  margin:0;
  color:rgba(255,255,255,.90);
  font-size:15px;
  font-weight:700;
  line-height:1.4;
}
.offline-login-lock{
  flex:0 0 auto;
  margin-top:-3px;
  font-size:54px;
  color:rgba(255,255,255,.30);
}
.offline-login-body{
  padding:26px 30px 28px;
  background:linear-gradient(180deg,rgba(35,71,78,.70),rgba(28,60,67,.82));
}
.offline-login-checking{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  min-height:122px;
  color:rgba(255,255,255,.93);
  font-weight:700;
}
.offline-login-form{display:block}
.offline-login-field{
  position:relative;
  margin-bottom:16px;
}
.offline-login-field input{
  width:100%;
  height:52px;
  border:1px solid rgba(255,255,255,.35);
  border-radius:6px;
  padding:0 48px 0 14px;
  color:#24343b;
  background:#fff;
  font-size:16px;
  outline:none;
  box-shadow:inset 0 1px 2px rgba(0,0,0,.05);
}
.offline-login-field input:focus{
  border-color:#26a7dc;
  box-shadow:0 0 0 2px rgba(38,167,220,.18),0 0 16px rgba(38,167,220,.16);
}
.offline-login-field>i,
.offline-password-toggle{
  position:absolute;
  top:50%;
  right:14px;
  transform:translateY(-50%);
  color:#8a9297;
}
.offline-password-toggle{
  width:34px;
  height:34px;
  right:8px;
  border:0;
  border-radius:50%;
  background:transparent;
  cursor:pointer;
  font-size:15px;
}
.offline-password-toggle:hover,
.offline-password-toggle:focus{background:#edf4f6;color:#127da0;outline:none}
.offline-login-message{
  min-height:20px;
  margin:-2px 0 10px;
  font-size:12px;
  line-height:1.35;
  color:#fff4b6;
}
.offline-login-message.is-error{color:#ffd4d4}
.offline-login-message.is-info{color:#d9f5ff}
.offline-login-submit{
  width:100%;
  min-height:52px;
  border:0;
  border-radius:6px;
  padding:12px 18px;
  background:#2e88c8;
  color:#fff;
  font-family:Georgia,'Times New Roman',serif;
  font-size:19px;
  font-weight:800;
  cursor:pointer;
  box-shadow:0 3px 10px rgba(0,0,0,.12);
}
.offline-login-submit:hover,.offline-login-submit:focus{background:#247bb8;outline:none}
.offline-login-submit:disabled{opacity:.65;cursor:wait}
.offline-login-foot{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:15px;
}
.offline-login-foot small{
  max-width:315px;
  color:rgba(255,255,255,.68);
  font-size:10px;
  line-height:1.35;
  text-align:right;
}
.offline-login-connection{
  display:inline-flex;
  align-items:center;
  gap:5px;
  flex:0 0 auto;
  padding:6px 9px;
  border-radius:999px;
  font-size:11px;
  font-weight:800;
  border:1px solid rgba(255,255,255,.18);
}
.offline-login-connection.is-checking{background:rgba(255,255,255,.10);color:#fff}
.offline-login-connection.is-online{background:#d9f3df;color:#1f6b3a;border-color:#c3e7ce}
.offline-login-connection.is-offline{background:#fff0c6;color:#7b5a0e;border-color:#edd99e}

@media(max-width:640px){
  .offline-login-gate{padding:14px;align-items:center}
  .offline-login-card{border-radius:11px}
  .offline-login-head{padding:22px 20px 18px}
  .offline-login-brandbox{margin-bottom:17px}
  .offline-login-logo{width:150px;max-width:68%;padding:6px 8px}
  .offline-login-mode{font-size:9px;padding:5px 7px}
  .offline-login-title-row h1{font-size:23px}
  .offline-login-title-row p{font-size:13px}
  .offline-login-lock{font-size:43px}
  .offline-login-body{padding:21px 20px 22px}
  .offline-login-field{margin-bottom:13px}
  .offline-login-field input{height:50px;font-size:16px}
  .offline-login-submit{min-height:50px;font-size:17px}
  .offline-login-foot{align-items:flex-start;flex-direction:column}
  .offline-login-foot small{max-width:none;text-align:left}
}

@media(max-width:390px){
  .offline-login-gate{padding:10px}
  .offline-login-head{padding:18px 16px 15px}
  .offline-login-body{padding:18px 16px 19px}
  .offline-login-logo{width:132px}
  .offline-login-title-row h1{font-size:20px}
  .offline-login-title-row p{font-size:12px}
  .offline-login-lock{font-size:36px}
}

/* Identidad del login: OFFLINE debajo del logo Elicrom */
.offline-login-brandbox{flex-direction:column;align-items:flex-start;gap:6px}
.offline-login-mode{margin-left:2px}


.switch-user-btn{
  white-space:nowrap;
}
@media(max-width:720px){
  .topbar-status{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:6px;
    width:100%;
  }
  .topbar-status .switch-user-btn{
    grid-column:1 / -1;
    width:100%;
  }
}


/* V0.6.3 — Detalles útiles para operación */
.detail-title-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}
.detail-title-row h1{
  margin:0;
}
.detail-subtitle{
  margin-top:4px;
  color:#698087;
  font-size:12px;
}
.detail-sync-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  padding:6px 10px;
  border-radius:999px;
  font-size:11px;
  font-weight:800;
}
.detail-sync-summary{
  display:flex;
  flex-direction:column;
  gap:3px;
  margin:0 0 16px;
  padding:11px 12px;
  border:1px solid #dce6e9;
  border-radius:10px;
  background:#f7fafb;
}
.detail-sync-summary strong{font-size:13px}
.detail-sync-summary span{font-size:12px;line-height:1.4}
.detail-sync-badge.is-ok,.detail-sync-summary.is-ok{
  background:#edf8f1;border-color:#c9e4d2;color:#26653b;
}
.detail-sync-badge.is-pending,.detail-sync-summary.is-pending{
  background:#fff7df;border-color:#ecd79e;color:#775912;
}
.detail-sync-badge.is-warning,.detail-sync-summary.is-warning{
  background:#fff0d9;border-color:#e9c17f;color:#7a4c0b;
}
.detail-sync-badge.is-error,.detail-sync-summary.is-error{
  background:#fbe8e9;border-color:#e8bdc0;color:#8a343a;
}
.detail-sync-badge.is-neutral,.detail-sync-summary.is-neutral{
  background:#edf3f5;border-color:#d7e3e6;color:#526a72;
}
.detail-main-grid,.detail-status-grid{
  margin-bottom:16px;
}
.detail-equipment-list{
  display:grid;
  gap:7px;
  margin-bottom:16px;
}
.detail-equipment-item{
  padding:10px 11px;
  border:1px solid #dce6e9;
  border-radius:9px;
  background:#f8fbfb;
}
.detail-equipment-item strong{
  display:block;
  font-size:12px;
  line-height:1.35;
}
.detail-equipment-item small{
  display:block;
  margin-top:4px;
  color:#667f87;
  font-size:11px;
}
.detail-empty{
  margin-bottom:16px;
  padding:11px;
  border-radius:9px;
  background:#f6f9fa;
  color:#667f87;
  font-size:12px;
}

@media(max-width:640px){
  .detail-title-row{
    align-items:flex-start;
  }
  .detail-title-row h1{
    font-size:20px;
  }
  .detail-sync-badge{
    padding:5px 8px;
    font-size:10px;
  }
  .detail-sync-summary{
    padding:9px 10px;
  }
  .detail-main-grid,.detail-status-grid{
    gap:7px;
  }
  .detail-main-grid .kv,.detail-status-grid .kv{
    padding:9px 10px;
  }
  .detail-equipment-item{
    padding:9px 10px;
  }
}


/* v0.8.0 — flujo por Orden antes de elegir ficha */
.prepared-card .work-item{border-left:4px solid #2d7fa3}
.work-order-model{margin-top:6px;font-weight:700;color:#274852}
.work-order-patterns{margin-top:8px;font-size:13px;line-height:1.45;color:#536b74}
.work-order-patterns strong{color:#274852}
.work-target-note{margin-top:7px;padding:7px 9px;border-radius:8px;background:#fff7dc;color:#7a5b0a;font-size:12px;font-weight:700}
.btn-download-work{background:#167d86;color:#fff;border-color:#167d86}
.btn-new-capture{background:#6b5aa6;color:#fff;border-color:#6b5aa6}

.sync-target-overlay{position:fixed;inset:0;z-index:99999;background:rgba(10,31,38,.58);display:flex;align-items:center;justify-content:center;padding:16px}
.sync-target-overlay.hidden{display:none!important}
.sync-target-card{width:min(920px,100%);max-height:88vh;overflow:auto;background:#fff;border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.28);padding:0}
.sync-target-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 20px;background:#0f5a63;color:#fff;border-radius:16px 16px 0 0}
.sync-target-head h3{margin:0 0 4px;font-size:20px}.sync-target-head p{margin:0;opacity:.9;font-size:13px}
.sync-target-close{border:0;background:transparent;color:#fff;font-size:30px;line-height:1;cursor:pointer}
.sync-target-message{padding:12px 18px;font-size:13px;color:#516871}
.sync-target-list{padding:0 18px 12px;display:grid;gap:9px}
.sync-target-option{display:flex;gap:11px;align-items:flex-start;border:1px solid #d7e3e7;border-radius:11px;padding:12px;background:#fff;cursor:pointer}
.sync-target-option:hover{border-color:#73aeb4}.sync-target-option.is-disabled{opacity:.55;cursor:not-allowed;background:#f7f7f7}
.sync-target-option input{margin-top:4px}.sync-target-main{flex:1;min-width:0}
.sync-target-title{font-weight:800;color:#203e47}.sync-target-meta{margin-top:4px;color:#647a82;font-size:12px;line-height:1.4}
.sync-target-state{display:inline-block;margin-top:6px;padding:3px 7px;border-radius:999px;background:#e8f4ee;color:#287146;font-size:11px;font-weight:800}
.sync-target-state.is-draft{background:#fff1cf;color:#825b00}.sync-target-state.is-final{background:#f8dddd;color:#9c2e38}
.sync-target-actions{display:flex;justify-content:flex-end;gap:8px;padding:14px 18px 18px;border-top:1px solid #e3ecef}
@media(max-width:700px){.sync-target-overlay{padding:5px}.sync-target-card{max-height:96vh;border-radius:10px}.sync-target-head{border-radius:10px 10px 0 0;padding:14px}.sync-target-actions{position:sticky;bottom:0;background:#fff}.prepared-card .item-actions{width:100%}}
/* v0.8.4: órdenes preparadas y descargadas comparten una sola tarjeta. */
.prepared-card #localResults{margin-top:0}.prepared-card #preparedResults:empty{margin-top:0}

/* v0.8.13 — verificación real de preparación para trabajo sin conexión */
.offline-readiness{margin-top:8px;padding:9px 11px;border:1px solid #d8e5e8;border-radius:9px;font-size:12px;line-height:1.4}
.offline-readiness strong{display:block;margin-bottom:2px;font-size:12px}.offline-readiness span{display:block}
.offline-readiness.is-ready{background:#e9f7ee;border-color:#bfe2ca;color:#24653d}
.offline-readiness.is-warning{background:#fff6dc;border-color:#efdca2;color:#775a09}


/* Corrección móvil/iOS: mientras el teclado está abierto la cabecera deja de
 * ser sticky para evitar repintados/parpadeos del viewport al escribir. */
@media(max-width:700px){
  body.elisa-keyboard-active .topbar{
    position:relative!important;
    top:auto!important;
  }
}


/* ============================================================
   v0.9.5 — Ajuste visual inicio móvil
   Da aire entre la barra superior y la primera tarjeta, sin
   modificar las tarjetas ni la lógica del listado.
   ============================================================ */
@media(max-width:640px){
  body #appShell > main.container{
    margin-top:16px !important;
  }
  body #appShell > main.container > .mobile-hero:first-child{
    margin-top:2px !important;
  }
}


/* ============================================================
   v0.9.6 — Más aire bajo la barra principal en móvil
   ============================================================ */
@media(max-width:640px){
  body #appShell > main.container{
    margin-top:22px !important;
  }
  body #appShell > main.container > .mobile-hero:first-child{
    margin-top:4px !important;
  }
}


/* ================================================================
 * v1.0.17 — evita zoom accidental en iPhone/iPad/Android
 * - evita auto-zoom al enfocar inputs (fuente >= 16px en táctil)
 * - evita zoom por doble toque mediante touch-action: manipulation
 * - mantiene disponible el zoom manual con gesto de dos dedos
 * ================================================================ */
html,body{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  touch-action:manipulation;
}
a,button,input,select,textarea,label,summary,[role="button"]{
  touch-action:manipulation;
}
@media (hover:none) and (pointer:coarse){
  input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
  select,textarea{
    font-size:16px!important;
  }
}

/* ================================================================
 * v1.0.56 — iPhone/iOS: shell principal sin saltos de viewport
 * Safari/WebKit puede repintar de forma inestable barras sticky y el body
 * cuando cambia la altura del viewport o el estado de conexión. En iPhone
 * el scroll principal se aísla dentro de #appShell y la cabecera queda en el
 * flujo normal. Esto elimina el rebote visible al entrar, escribir o desplazar.
 * ================================================================ */
@supports (-webkit-touch-callout:none){
  html{
    width:100%;
    height:100%;
    overflow:hidden!important;
    overscroll-behavior:none!important;
    scroll-behavior:auto!important;
    -webkit-text-size-adjust:100%!important;
    text-size-adjust:100%!important;
    background:var(--elisa-bg,#f2f6f7);
  }
  body{
    width:100%;
    height:100%;
    min-height:100%;
    margin:0!important;
    overflow:hidden!important;
    overscroll-behavior:none!important;
    scroll-behavior:auto!important;
    position:relative;
  }
  #appShell:not(.hidden){
    display:block;
    width:100%;
    height:100svh;
    min-height:0;
    max-height:100svh;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior-y:none!important;
    scroll-behavior:auto!important;
    -webkit-overflow-scrolling:auto!important;
    position:relative;
  }
  #appShell .topbar{
    position:relative!important;
    top:auto!important;
    left:auto!important;
    right:auto!important;
    transform:none!important;
    will-change:auto!important;
    contain:layout paint;
  }
  #appShell .topbar-status,
  #appShell .topbar-status .badge,
  #appShell .switch-user-btn{
    transform:none!important;
    transition:none!important;
  }
  #appShell .topbar-status .badge{
    min-height:24px;
    display:flex;
    align-items:center;
  }
  .offline-login-gate{
    height:100svh!important;
    min-height:100svh!important;
    max-height:100svh!important;
    overflow-y:auto!important;
    overscroll-behavior:none!important;
    -webkit-overflow-scrolling:auto!important;
  }
  .sync-target-overlay{
    height:100svh!important;
    max-height:100svh!important;
    overscroll-behavior:none!important;
  }
}


/* ================================================================
 * v1.0.57 / v0.8.39 — iOS: DOCUMENTO NATURAL, SIN CONTENEDOR DE SCROLL
 *
 * Safari conserva mucho mejor la posición de la página cuando el scroll
 * pertenece al documento. El experimento anterior hacía #appShell un
 * scroller de 100svh; al cambiar de pestaña/app WebKit podía recomponer ese
 * viewport y variar scrollTop. Desde aquí NO existe un segundo scroll vertical.
 * ================================================================ */
@supports (-webkit-touch-callout:none){
  html{
    height:auto!important;
    min-height:100%!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior-y:auto!important;
    scroll-behavior:auto!important;
  }
  body{
    height:auto!important;
    min-height:100%!important;
    max-height:none!important;
    overflow-x:hidden!important;
    overflow-y:visible!important;
    overscroll-behavior-y:auto!important;
    position:static!important;
  }
  #appShell,
  #appShell:not(.hidden){
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
    overscroll-behavior:auto!important;
    -webkit-overflow-scrolling:auto!important;
    position:static!important;
    contain:none!important;
  }
  #appShell .topbar{
    position:relative!important;
    top:auto!important;
    contain:none!important;
    transform:none!important;
    transition:none!important;
  }
  #appShell > main.container{
    position:relative!important;
    overflow:visible!important;
    contain:none!important;
  }
  /* Evita que cambios de badges/estado animen dimensiones al regresar. */
  #appShell .badge,
  #appShell .sync-pill,
  #appShell .btn,
  #appShell .card,
  #appShell .item{
    transition:none!important;
    animation:none!important;
  }
}

/* v1.1.08 — Instalación PWA disponible también desde la pantalla de acceso. */
.offline-login-install{
  width:100%;
  margin-top:12px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:8px;
  padding:11px 14px;
  background:rgba(255,255,255,.08);
  color:#fff;
  font-weight:800;
  letter-spacing:.01em;
  cursor:pointer;
}
.offline-login-install:hover{background:rgba(255,255,255,.14)}
.offline-login-install:disabled{opacity:.55;cursor:not-allowed}


/* v1.1.10 — Selector de sincronización: disponibles primero, finalizadas opcionales y lista desplazable */
.sync-target-card{
  width:min(920px,100%);
  height:min(88vh,760px);
  max-height:88vh;
  overflow:hidden!important;
  display:flex;
  flex-direction:column;
}
.sync-target-head{flex:0 0 auto;}
.sync-target-message{flex:0 0 auto;}
.sync-target-toolbar{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:0 18px 10px;
  border-bottom:1px solid #e3ecef;
  background:#fff;
}
.sync-target-finalized-toggle{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin:0;
  cursor:pointer;
  font-size:13px;
  font-weight:700;
  color:#294851;
  user-select:none;
}
.sync-target-finalized-toggle input{
  width:18px;
  height:18px;
  margin:0;
  accent-color:#0f6f73;
}
.sync-target-count{font-size:12px;color:#647a82;text-align:right;}
.sync-target-list{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto!important;
  overflow-x:hidden;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  padding:12px 18px 16px;
  align-content:start;
}
.sync-target-option.is-finalized{display:none;}
.sync-target-card.show-finalized .sync-target-option.is-finalized{display:flex;}
.sync-target-actions{
  flex:0 0 auto;
  position:relative!important;
  bottom:auto!important;
  z-index:5;
  background:#fff;
  padding:14px 18px 18px;
  border-top:1px solid #dfe9ec;
  box-shadow:0 -7px 16px rgba(20,52,62,.08);
}
@media(max-width:700px){
  .sync-target-card{height:calc(100dvh - 10px);max-height:calc(100dvh - 10px);}
  @supports not (height:100dvh){.sync-target-card{height:calc(100vh - 10px);max-height:calc(100vh - 10px);}}
  .sync-target-toolbar{padding:8px 12px;align-items:flex-start;}
  .sync-target-count{max-width:46%;}
  .sync-target-list{padding:10px 12px 14px;}
  .sync-target-actions{padding:10px 12px;display:grid;grid-template-columns:1fr 1.35fr;gap:8px;}
  .sync-target-actions .btn{width:100%;min-width:0;white-space:normal;}
}


/* v1.1.17 — agrupación multiprocedimiento y búsqueda móvil */
.work-filter-panel{margin:12px 0 6px;padding:11px;border:1px solid #d8e6ea;border-radius:13px;background:#f8fbfc}
.work-search-wrap,.sync-target-search-wrap{position:relative;display:flex;align-items:center}
.work-search-wrap>i,.sync-target-search-wrap>i{position:absolute;left:12px;color:#6f858c;pointer-events:none}
.work-search-wrap input,.sync-target-search-wrap input{width:100%;min-height:42px;border:1px solid #c9dadd;border-radius:10px;background:#fff;color:#18383f;padding:9px 38px 9px 36px;font-size:14px;outline:none}
.work-search-wrap input:focus,.sync-target-search-wrap input:focus{border-color:#3c9297;box-shadow:0 0 0 3px rgba(60,146,151,.12)}
.work-search-clear{position:absolute;right:7px;top:50%;transform:translateY(-50%);width:30px;height:30px;border:0;border-radius:50%;background:transparent;color:#61777d;font-size:22px;line-height:28px;cursor:pointer}
.work-procedure-tabs{display:flex;gap:7px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;padding:10px 1px 3px}
.work-procedure-tab{flex:0 0 auto;border:1px solid #c7dbdf;background:#fff;color:#31545c;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:800;white-space:nowrap;cursor:pointer}
.work-procedure-tab.is-active{background:#0f6f73;border-color:#0f6f73;color:#fff}
.work-filter-summary{margin-top:6px;min-height:17px;color:#687e85;font-size:12px}
.work-item.is-filtered-out{display:none!important}
.sync-target-toolbar-main{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:12px}
.sync-target-search-wrap{flex:1 1 320px;max-width:430px}
.sync-target-search-wrap input{min-height:36px;padding-top:7px;padding-bottom:7px}
.sync-target-format-line{margin-top:5px;color:#35575f;font-size:12px;line-height:1.35}
@media(max-width:700px){.work-filter-panel{margin-top:9px;padding:9px;border-radius:11px}.work-procedure-tabs{padding-top:8px}.work-procedure-tab{padding:7px 10px}.sync-target-toolbar-main{width:100%;flex-direction:column;align-items:stretch;gap:8px}.sync-target-search-wrap{max-width:none;flex-basis:auto;width:100%}.sync-target-toolbar{flex-wrap:wrap}.sync-target-count{max-width:100%!important;width:100%;text-align:left!important}}

/* Avisos Push: banner persistente hasta que el dispositivo quede autorizado. */
.notification-permission-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 16px;padding:14px 16px;border:1px solid #f1d69a;background:#fff7df;border-radius:14px;color:#5f4a16;box-shadow:0 2px 8px rgba(44,54,58,.05)}
.notification-permission-banner.hidden{display:none!important}
.notification-permission-copy{display:flex;align-items:flex-start;gap:12px;min-width:0}.notification-permission-copy>i{font-size:22px;margin-top:2px}.notification-permission-copy div{display:flex;flex-direction:column;gap:3px}.notification-permission-copy strong{font-size:16px}.notification-permission-copy span{font-size:14px;line-height:1.35}
@media(max-width:700px){.notification-permission-banner{align-items:stretch;flex-direction:column}.notification-permission-banner .btn{width:100%}}


/* ============================================================
   v1.1.34 — Modal de sincronización desplazable en iPhone/Android
   El overlay es el único scroller en móvil. Evita el bloqueo que
   ocurre en Safari con flex + overflow anidados dentro de un fixed.
   ============================================================ */
.sync-target-overlay{
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  touch-action:pan-y;
}
@media(max-width:700px){
  .sync-target-overlay{
    align-items:flex-start!important;
    justify-content:center;
    padding:5px!important;
    overscroll-behavior-y:contain;
  }
  .sync-target-card{
    height:auto!important;
    max-height:none!important;
    min-height:calc(100dvh - 10px);
    overflow:visible!important;
    margin:0 auto;
    touch-action:pan-y;
  }
  @supports not (min-height:100dvh){
    .sync-target-card{min-height:calc(100vh - 10px);}
  }
  .sync-target-list{
    flex:none!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
    touch-action:pan-y;
    -webkit-overflow-scrolling:auto!important;
  }
  .sync-target-actions{
    position:sticky!important;
    bottom:0!important;
  }
}

/* v1.1.36 - separar preparaciones por descargar de trabajos ya descargados */
.offline-list-section{margin-top:18px;padding-top:2px}.offline-list-heading{display:flex;align-items:center;gap:12px;margin:0 0 10px;padding:12px 14px;border:1px solid #d9e6e9;border-radius:12px;background:#f7fafb;color:#244a53}.offline-list-heading>i{font-size:21px;color:#147984;min-width:24px;text-align:center}.offline-list-heading strong{display:block;font-size:17px;line-height:1.2}.offline-list-heading span{display:block;margin-top:3px;font-size:13px;color:#647c82;line-height:1.35}.offline-list-downloads .offline-list-heading{background:#fffaf0;border-color:#f0dfb1}.offline-list-local .offline-list-heading{background:#f0faf5;border-color:#cfe8d8}@media(max-width:640px){.offline-list-heading{padding:11px 12px}.offline-list-heading strong{font-size:16px}.offline-list-heading span{font-size:12px}}

/* v1.1.37 - vistas separadas: Por descargar / Descargados */
.offline-category-tabs{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0 6px;padding:6px;background:#eef5f6;border:1px solid #d4e2e5;border-radius:16px}
.offline-category-tab{display:flex;align-items:center;justify-content:center;gap:9px;min-height:52px;border:0;border-radius:12px;background:transparent;color:#31545c;font-size:15px;font-weight:800;cursor:pointer;transition:.18s ease}
.offline-category-tab i{font-size:18px}.offline-category-tab b{display:inline-flex;align-items:center;justify-content:center;min-width:27px;height:27px;padding:0 8px;border-radius:999px;background:#dce9eb;color:#31545c;font-size:13px}
.offline-category-tab.is-active{background:#fff;color:#0f6f73;box-shadow:0 3px 10px rgba(31,75,82,.12)}
.offline-category-tab.is-active b{background:#0f6f73;color:#fff}
.offline-list-section.is-category-hidden{display:none!important}
@media(max-width:640px){.offline-category-tabs{gap:6px;padding:5px}.offline-category-tab{min-height:50px;font-size:14px;gap:7px}.offline-category-tab span{white-space:nowrap}}


/* v1.1.39 - pestañas realmente separadas en móvil/desktop */
.offline-category-tabs{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  gap:10px!important;
  margin:16px 0 12px!important;
  padding:6px!important;
  background:#eef5f6!important;
  border:1px solid #d4e2e5!important;
  border-radius:16px!important;
}
.offline-category-tab{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  width:100%!important;
  min-width:0!important;
  min-height:52px!important;
  padding:10px 12px!important;
  border:0!important;
  border-radius:12px!important;
  background:transparent!important;
  color:#31545c!important;
  font-size:15px!important;
  font-weight:800!important;
  line-height:1.15!important;
  white-space:normal!important;
}
.offline-category-tab.is-active{
  background:#ffffff!important;
  color:#0f6f73!important;
  box-shadow:0 3px 10px rgba(31,75,82,.14)!important;
}
.offline-category-tab b{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:28px!important;
  height:28px!important;
  padding:0 8px!important;
  border-radius:999px!important;
  background:#dce9eb!important;
  color:#31545c!important;
  font-size:13px!important;
}
.offline-category-tab.is-active b{background:#0f6f73!important;color:#fff!important}
.offline-list-section.is-category-hidden{display:none!important}
.offline-list-section{margin-top:0!important;padding-top:0!important}
@media(max-width:640px){
  .offline-category-tabs{gap:7px!important;padding:5px!important}
  .offline-category-tab{min-height:54px!important;padding:9px 8px!important;font-size:14px!important}
  .offline-category-tab span{white-space:normal!important;text-align:center!important}
}


/* v1.1.42 — Modal de sincronización simplificado y orientado a compatibilidad */
.sync-target-option{position:relative;padding:14px 14px 14px 16px;align-items:flex-start}
.sync-target-option input[type="radio"]{width:22px;height:22px;margin:4px 2px 0 0;accent-color:#0f6f73;flex:0 0 auto}
.sync-target-option:has(input[type="radio"]:checked){border-color:#0f6f73;box-shadow:0 0 0 3px rgba(15,111,115,.10);background:#fbfefe}
.sync-target-topline{display:flex;align-items:center;justify-content:space-between;gap:10px}
.sync-target-title{font-size:18px;line-height:1.2}
.sync-target-equipment{margin-top:3px;color:#214650;font-size:16px;font-weight:800;line-height:1.25}
.sync-target-state{margin-top:0;flex:0 0 auto}
.sync-target-meta-grid{display:flex;flex-wrap:wrap;gap:5px 14px;margin-top:8px}
.sync-target-meta-grid span{display:inline-block}
.sync-target-checks{display:flex;flex-wrap:wrap;gap:7px 9px;margin-top:11px;padding-top:10px;border-top:1px solid #e5eef0}
.sync-target-checks span{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:999px;background:#eef8f3;color:#2e6f52;font-size:11px;font-weight:800;line-height:1}
.sync-target-checks i{color:#2e8b63}
.sync-target-blocked{margin-top:10px;color:#8d3d44}
@media(max-width:700px){
  .sync-target-message{padding:11px 14px;font-size:13px;line-height:1.35}
  .sync-target-option{padding:14px 12px}
  .sync-target-title{font-size:17px}
  .sync-target-equipment{font-size:15px}
  .sync-target-meta-grid{display:grid;grid-template-columns:1fr;gap:3px;margin-top:7px}
  .sync-target-checks{gap:6px;margin-top:10px}
  .sync-target-checks span{font-size:10px;padding:5px 7px}
}
/* v1.1.43 - Preparar trabajo directamente desde PWA cuando hay Internet */
.offline-header-actions{display:flex;gap:8px;align-items:center}.prepare-work-overlay{position:fixed;inset:0;z-index:2500;background:rgba(12,35,39,.58);overflow-y:auto;padding:18px 10px;-webkit-overflow-scrolling:touch}.prepare-work-overlay.hidden{display:none}.prepare-work-card{width:min(760px,100%);margin:0 auto;background:#fff;border-radius:18px;box-shadow:0 18px 55px rgba(0,0,0,.28);overflow:hidden}.prepare-work-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:20px 22px;background:#0e666c;color:#fff}.prepare-work-head h3{margin:0 0 5px;font-size:23px}.prepare-work-head p{margin:0;opacity:.92;line-height:1.35}.prepare-work-close{border:0;background:transparent;color:#fff;font-size:38px;line-height:1;cursor:pointer}.prepare-work-body{padding:18px 20px;display:grid;gap:15px}.prepare-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.prepare-step{display:grid;gap:7px}.prepare-step>strong{font-size:15px;color:#24464d}.prepare-step input,.prepare-step select{width:100%;min-height:46px;border:1px solid #c8d8dc;border-radius:10px;padding:9px 12px;background:#fff;font:inherit;color:#24464d}.prepare-pattern-search{display:grid;grid-template-columns:1fr auto;gap:8px}.prepare-pattern-results,.prepare-selected-patterns{display:grid;gap:8px;max-height:260px;overflow:auto;-webkit-overflow-scrolling:touch}.prepare-pattern-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border:1px solid #d8e4e6;border-radius:12px;padding:11px 12px;background:#f9fbfb}.prepare-pattern-row.is-selected{border-color:#36a28f;background:#effaf6}.prepare-pattern-main{min-width:0}.prepare-pattern-main strong{display:block;color:#153f46}.prepare-pattern-main span{display:block;font-size:13px;color:#688087;margin-top:2px}.prepare-pattern-row button{flex:0 0 auto}.prepare-count{display:inline-flex;min-width:24px;height:24px;padding:0 7px;align-items:center;justify-content:center;border-radius:999px;background:#dceff0;color:#0d666c;font-size:12px}.prepare-work-actions{display:grid;grid-template-columns:1fr 1.4fr;gap:10px;padding:16px 20px;border-top:1px solid #e3ebed;background:#fbfcfc}.prepare-work-actions .btn{min-height:48px}.prepare-work-card .empty{padding:18px;text-align:center;color:#789096;background:#f5f8f8;border-radius:10px}.prepare-work-card .notice{margin:0}.prepare-work-card .notice.hidden{display:none}@media(max-width:640px){.offline-header-actions{width:100%;display:grid;grid-template-columns:1fr auto}.section-title-row{align-items:stretch;flex-wrap:wrap}.prepare-work-overlay{padding:0}.prepare-work-card{min-height:100%;border-radius:0}.prepare-work-head{padding:18px 16px}.prepare-work-head h3{font-size:21px}.prepare-work-body{padding:15px 14px}.prepare-grid{grid-template-columns:1fr}.prepare-work-actions{position:sticky;bottom:0;padding:12px 14px}.prepare-pattern-search{grid-template-columns:1fr}.prepare-pattern-search .btn{width:100%}}
