:root{--bg:#f2f3f5;--card:#fff;--ink:#161616;--muted:#6b6f76;--line:#dfe2e6;--dark:#1f2328;--soft:#eceff2;--ok:#198754;--warn:#d99a00;--danger:#c73535;--blue:#1769aa}
*{box-sizing:border-box} body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--ink)}
button,input,select{font:inherit} button{cursor:pointer}
.top{background:#111;color:#fff;padding:14px 16px;position:sticky;top:0;z-index:10}
.brand{font-weight:900;font-size:23px;letter-spacing:.5px}.sub{font-size:12px;color:#bbb;margin-top:2px}
.wrap{max-width:1050px;margin:auto;padding:14px}.tabs{display:flex;gap:8px;margin-bottom:14px}
.tab{flex:1;border:0;border-radius:12px;padding:13px;font-weight:800;background:#dfe2e6}.tab.active{background:#111;color:#fff}
.panel{display:none}.panel.active{display:block}.box{background:#fff;border-radius:16px;padding:14px;margin-bottom:13px;box-shadow:0 1px 4px #00000012}
.days{display:flex;gap:7px;overflow:auto;padding-bottom:3px}.day{min-width:94px;border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px 8px;font-weight:800}.day.active{background:#111;color:#fff}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}
h2,h3,p{margin-top:0}.small{font-size:12px;color:var(--muted)}.count{font-size:14px;font-weight:800}
.btn{border:0;border-radius:11px;padding:11px 13px;font-weight:800;background:#e5e7ea}.btn.dark{background:#111;color:#fff}.btn.danger{background:#ffe4e4;color:#9b2020}.btn.ok{background:#dff4e8;color:#11663d}
.work{border:1px solid var(--line);border-radius:14px;padding:12px;margin-top:10px;background:#fff;position:relative;overflow:hidden}
.work.done{opacity:.72;background:#eeeeee}
.final-ribbon{position:absolute;top:12px;right:-34px;transform:rotate(45deg);background:#d62f2f;color:#fff;font-weight:900;font-size:11px;letter-spacing:.7px;padding:7px 38px;box-shadow:0 2px 5px #0002}
.filterbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:12px}
.filterbar select{min-width:180px;border:1px solid var(--line);border-radius:11px;padding:11px;background:#fff;font-weight:800}
.wa{background:#e4f7eb!important;color:#0b6b39!important}
.badge{display:inline-block;padding:6px 9px;border-radius:8px;font-size:12px;font-weight:900;letter-spacing:.4px}.med{background:#e4f0ff;color:#12518b}.col{background:#fff0cf;color:#7d5600}.donebadge{background:#dff4e8;color:#11663d}
.num{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#111;color:#fff;font-weight:900}
.title{font-size:18px;font-weight:900;margin:8px 0 4px}.meta{font-size:14px;line-height:1.45;color:#40444a}
.actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.actions .btn{flex:1;min-width:90px}
.installer .work{padding:16px}.installer .title{font-size:22px}.installer .meta{font-size:17px;line-height:1.55}.installer .badge{font-size:15px;padding:8px 11px}.installer .btn{padding:15px 10px;font-size:16px}
.bigfinish{width:100%;background:var(--ok)!important;color:#fff!important;font-size:18px!important}
.alert{border-left:5px solid var(--danger);background:#fff7f7}.warranty{border-left:5px solid var(--ok)}
.search{width:100%;border:1px solid var(--line);border-radius:12px;padding:13px;font-size:16px}
.modal{position:fixed;inset:0;background:#0008;display:none;align-items:flex-end;justify-content:center;z-index:50}.modal.show{display:flex}
.sheet{background:#fff;width:min(600px,100%);border-radius:20px 20px 0 0;padding:18px;max-height:85vh;overflow:auto}.sheet label{font-size:12px;font-weight:800;color:#555;display:block;margin:10px 0 4px}.sheet input,.sheet select{width:100%;padding:12px;border:1px solid var(--line);border-radius:10px}
.check{transform:scale(1.25);margin-right:8px}.footer{font-size:11px;text-align:center;color:#888;padding:18px}
@media(min-width:700px){.modal{align-items:center}.sheet{border-radius:20px}}

.done-cover{position:absolute;inset:0;background:rgba(25,135,84,.94);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;z-index:4;padding:18px}
.done-cover .done-title{font-size:28px;font-weight:900;letter-spacing:.8px}
.done-cover .done-time{font-size:17px;font-weight:800;margin-top:8px}
.done-cover .done-type{font-size:13px;font-weight:900;margin-top:7px;opacity:.95}
.done-cover.hidden{display:none}
.cover-switch{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:800;margin-top:10px}
.cover-switch input{transform:scale(1.25)}
.manager{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.manager .btn{flex:1;min-width:130px}
.notice-big{border:3px solid #c73535;background:#fff1f1;border-radius:15px;padding:16px;margin-top:10px}
.notice-big .notice-title{font-size:20px;font-weight:900;color:#a61f1f}.notice-big .notice-client{font-size:22px;font-weight:900;color:#111;margin-top:8px}
.notice-big .notice-body{margin-top:6px;font-size:15px}
.printrow{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.printrow .btn{flex:1;min-width:180px}
.people-list{margin-top:10px}
.person-pill{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);border-radius:10px;padding:9px 10px;margin-top:7px}


.work.finalized-card{opacity:1;background:#e5e5e5;border-color:#c7c7c7}
.finalized-bar{background:#198754;color:#fff;border-radius:10px;padding:12px 14px;margin-bottom:11px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.finalized-bar .final-title{font-size:21px;font-weight:900;letter-spacing:.7px}
.finalized-bar .final-time{font-size:16px;font-weight:900;white-space:nowrap}
.reopen-row{display:flex;justify-content:flex-end;margin-top:10px}


.top{background:#b71920;color:#fff;border-bottom:5px solid #111;padding:15px 16px}
.top .brand{font-size:25px;letter-spacing:.8px}
.top .sub{color:#fff;opacity:.92;font-weight:700}
@media(max-width:600px){
  .wrap{padding:10px}
  .tabs{gap:7px;margin-bottom:10px}
  .tab{padding:14px 8px;font-size:15px;min-height:52px}
  .box{border-radius:15px;padding:13px;margin-bottom:10px}
  .row{gap:7px}
  h2{font-size:24px;line-height:1.08}
  h3{font-size:18px}
  .days{gap:6px}
  .day{min-width:105px;padding:11px 8px;min-height:68px}
  .btn{min-height:46px;padding:11px 10px}
  .actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}
  .actions .btn{min-width:0;width:100%}
  .bigfinish{grid-column:1/-1}
  .installer .work{padding:13px}
  .installer .title{font-size:21px}
  .installer .meta{font-size:16px}
  .installer .btn{font-size:15px;padding:13px 8px}
  .filterbar{display:block}
  .filterbar select{width:100%;margin-top:7px;min-height:50px;font-size:16px}
  .printrow{display:grid;grid-template-columns:1fr}
  .printrow .btn{width:100%}
  .manager .btn{width:100%}
  .finalized-bar{padding:11px 12px}
  .finalized-bar .final-title{font-size:19px}
  .finalized-bar .final-time{font-size:15px}
  .notice-client{font-size:21px!important}
}


.work.reprogrammed-card{opacity:1;background:#e7e7e7;border-color:#c9c9c9}
.reprogrammed-bar{background:#c73535;color:#fff;border-radius:10px;padding:12px 14px;margin-bottom:11px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.reprogrammed-bar .reprog-title{font-size:20px;font-weight:900;letter-spacing:.5px}
.reprogrammed-bar .reprog-time{font-size:15px;font-weight:900;white-space:nowrap}


.post{background:#6f42c1;color:#fff}
.zone{display:inline-block;margin-top:6px;padding:5px 8px;border-radius:8px;background:#eef0f2;color:#333;font-size:12px;font-weight:900}
.upper{text-transform:uppercase}
.quicktime{width:100%;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fff;font-weight:800}
.zone-preview{margin-top:6px;font-size:12px;font-weight:900;color:#444}
.warranty-card{border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff}
.warranty-card .client{font-size:19px;font-weight:900}
.warranty-card .installer{font-size:15px;font-weight:900;margin-top:6px}


.warranty-result-card{margin-top:12px;border:2px solid #d5d5d5;border-radius:16px;padding:16px;background:#fff}
.warranty-result-card.active{border-color:#198754;background:#f4fbf7}
.warranty-result-card.expired{border-color:#c73535;background:#fff7f7}
.warranty-result-card.pending{border-color:#d39e00;background:#fffaf0}
.warranty-client{font-size:21px;font-weight:800}
.warranty-status{margin:12px 0;padding:13px;border-radius:11px;font-size:19px;font-weight:800;text-align:center}
.warranty-status.active{background:#198754;color:#fff}.warranty-status.expired{background:#c73535;color:#fff}.warranty-status.pending{background:#d39e00;color:#111}
.warranty-days{font-size:27px;font-weight:800;margin:7px 0}


body{font-weight:400}.small,.meta,.sub{font-weight:400}label{font-weight:600}.title{font-weight:700}.btn{font-weight:650}
@media(max-width:699px){
 .wrap{width:100%;max-width:none;padding:10px}.box{padding:13px}
 input,select,textarea{font-size:16px;min-height:46px}
 .btn{min-height:46px}
 .days{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}.day{flex:0 0 108px}
}
@media(min-width:1100px){
 .wrap{width:100%;max-width:1440px;margin:0 auto;padding:22px 28px}
 .days{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}.day{width:100%;min-width:0}
}


.chosen-date{
  display:block;background:#fff;border:1px solid #d8d8d8;border-radius:11px;
  padding:13px 14px;margin:6px 0 8px;font-size:16px;font-weight:700;color:#111;
}
.date-button{
  position:relative;display:flex;align-items:center;justify-content:center;
  min-height:48px;background:#e4e5e8;border-radius:11px;padding:10px 14px;
  font-size:15px;font-weight:700;color:#111;overflow:hidden;cursor:pointer;
}
.date-button input[type=date]{
  position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;
}
@media(max-width:699px){
  .chosen-date{font-size:16px}
  .date-button{min-height:50px}
}


.simple-date-nav{margin-top:12px}
.date-nav-row{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:8px}
.date-choice{min-height:50px;text-align:center;display:flex;align-items:center;justify-content:center}
.other-date{position:relative;overflow:hidden;cursor:pointer}
.other-date input[type=date]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.current-date{margin-top:9px;padding:11px 12px;border:1px solid #ddd;border-radius:10px;background:#fff;font-size:15px;font-weight:700;text-align:center}
@media(max-width:520px){.date-nav-row{grid-template-columns:1fr 1fr}.date-nav-row .other-date{grid-column:1/-1}}


.installer-note{margin-top:10px;padding:10px 12px;border-radius:10px;background:#fff7d6;border:1px solid #e6cf72;font-size:14px;line-height:1.35}


/* V8.4 — ADMINISTRACIÓN APROVECHA TODO EL ESCRITORIO */
@media (min-width: 1100px){
  body{padding-left:22px;padding-right:22px}
  .app{max-width:1600px;width:100%;margin-left:auto;margin-right:auto}
  #adminView{width:100%}
  #adminView .box{width:100%}
  #adminJobs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
  #adminJobs .work{margin:0}
  #alerts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  #alerts:empty{display:block}
  #installerView{max-width:760px;margin-left:auto;margin-right:auto}
}
@media (min-width: 1450px){
  #adminJobs{grid-template-columns:repeat(3,minmax(0,1fr))}
}


/* ÚNICO AJUSTE V8.5: fecha más visible en PRÓXIMOS TRABAJOS */
.future-date{
  font-size:17px;
  font-weight:800;
}


.warranty-print-btn{margin-top:14px;width:100%}


/* ============================================================
   V9.10 — MISMA LÓGICA, ESTÉTICA CONTROL DE FLOTA
   Base visual tomada del sistema Control de Flota.
   ============================================================ */
:root{
  --bg:#090909;
  --panel:#181818;
  --panel2:#303030;
  --line:#484848;
  --txt:#f8fafc;
  --muted:#a7a7a7;
  --red:#ef4444;
  --rose:#c90000;
  --green:#22c55e;
  --yellow:#f59e0b;
  --blue:#38bdf8;
  --white:#fff;
}
*{box-sizing:border-box}
html,body{max-width:100%;overflow-x:hidden}
body{
  margin:0;
  font-family:Arial,Helvetica,sans-serif;
  color:var(--txt);
  background:
    radial-gradient(circle at 88% 2%,rgba(201,0,0,.16),transparent 25%),
    linear-gradient(180deg,#050505,#0b0b0b 48%,#111);
  min-height:100vh;
}
.top{
  background:transparent;
  border:0;
  border-top:4px solid;
  border-image:linear-gradient(90deg,#8f0000,#e00000,#8f0000) 1;
  padding:14px 18px 4px;
}
.fleet-head{
  display:flex;
  align-items:center;
  gap:11px;
  width:100%;
}
.brand{
  background:linear-gradient(180deg,#d40000,#a90000);
  border:1px solid #f43f3f;
  border-radius:3px;
  box-shadow:0 5px 16px #0006;
  color:#fff;
  padding:6px 11px;
  font-size:25px;
  font-weight:1000;
  letter-spacing:1px;
  line-height:1;
}
.fleet-title{
  font-size:22px;
  font-weight:900;
  letter-spacing:.25px;
  line-height:1.05;
  color:#fff;
}
.fleet-title span{color:#fb7185;font-weight:900}
.sub{color:var(--muted);font-size:12px;font-weight:400;margin-top:4px}

.wrap{
  width:100%;
  max-width:none;
  margin:0;
  padding:14px 2.2vw 38px;
}
.tabs{display:flex;gap:8px;overflow:auto;margin:8px 0 16px}
.tab{
  flex:0 0 auto;
  border:1px solid var(--line);
  background:#181818;
  color:#dbe5f0;
  padding:10px 14px;
  border-radius:12px;
  font-weight:900;
  white-space:nowrap;
  cursor:pointer;
}
.tab.active{background:var(--rose);border-color:var(--rose);color:#fff}

.box{
  background:linear-gradient(180deg,rgba(68,68,68,.98),rgba(43,43,43,.98));
  border:1px solid var(--line);
  border-radius:18px;
  padding:16px;
  margin-bottom:14px;
  color:var(--txt);
  box-shadow:0 16px 44px rgba(0,0,0,.28);
}
h2,h3{color:#fff;margin-top:0}
h2{font-size:22px;font-weight:900}
h3{font-size:18px;font-weight:900}
.title{color:#fff;font-weight:1000}
.small{color:var(--muted)}
.count{color:#d9dee4}
.meta{color:#d8dde2}
.meta b{color:#fff}

.work{
  background:#101010;
  border:1px solid var(--line);
  border-radius:16px;
  padding:15px;
  color:#fff;
  margin-top:10px;
  box-shadow:none;
}
/* MUY IMPORTANTE: terminado/reprogramado siguen oscuros, nunca fondo claro */
.work.finalized-card,
.work.reprogrammed-card{
  opacity:1;
  background:#101010;
  border-color:var(--line);
  color:#fff;
}
.work.finalized-card .title,
.work.finalized-card .meta,
.work.finalized-card .meta b,
.work.finalized-card .small,
.work.reprogrammed-card .title,
.work.reprogrammed-card .meta,
.work.reprogrammed-card .meta b,
.work.reprogrammed-card .small{
  color:#fff;
}
.work.finalized-card .small,
.work.reprogrammed-card .small{color:#b8b8b8}

.finalized-bar{
  background:#22c55e;
  color:#052e16;
  border-radius:12px;
  padding:12px 14px;
  margin-bottom:11px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
}
.finalized-bar .final-title,
.finalized-bar .final-time{color:#052e16;font-weight:1000}
.reprogrammed-bar{
  background:#c90000;
  color:#fff;
  border-radius:12px;
  padding:12px 14px;
  margin-bottom:11px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
}
.reprogrammed-bar .reprog-title,
.reprogrammed-bar .reprog-time{color:#fff;font-weight:1000}

.btn{
  border:0;
  border-radius:12px;
  padding:11px 14px;
  font-weight:900;
  cursor:pointer;
  background:#181818;
  color:#e5edf5;
  border:1px solid var(--line);
}
.btn.dark{
  background:#e5edf5;
  color:#0f172a;
  border-color:#e5edf5;
}
.btn.danger{
  background:#c90000;
  color:#fff;
  border-color:#c90000;
}
.wa{
  background:#22c55e!important;
  color:#052e16!important;
  border-color:#22c55e!important;
}
.btn:hover{filter:brightness(1.08)}

input,select,.search,.current-date,.date-choice{
  background:#0d0d0d!important;
  border:1px solid var(--line)!important;
  color:#fff!important;
  border-radius:12px!important;
}
input::placeholder,.search::placeholder{color:#8e8e8e!important}
label{color:#cbd5e1;font-size:12px;font-weight:900}

.num{background:#101010;color:#fff;border:1px solid var(--line)}
.badge{font-weight:900}
.med{background:#0b6f9d!important;color:#e8f8ff!important}
.col{background:#f59e0b!important;color:#251500!important}
.post{background:#6f42c1!important;color:#fff!important}
.zone{
  background:#e9edf1!important;
  color:#202020!important;
  border:1px solid #e9edf1!important;
  font-weight:900!important;
}
.donebadge{background:#22c55e!important;color:#052e16!important}

.notice-big{
  background:#181818;
  border:1px solid #7f1d1d;
  color:#fff;
}
.notice-big .notice-title{color:#fb7185}
.notice-big .notice-client{color:#fff!important}
.notice-big .notice-body{color:#d2d2d2}

.warranty{
  background:linear-gradient(180deg,rgba(68,68,68,.98),rgba(43,43,43,.98));
  border-left:4px solid #22c55e;
}
.warranty-result-card{
  background:#101010;
  border:1px solid var(--line);
  color:#fff;
}
.warranty-result-card.active{background:#052e16;border-color:#22c55e;color:#fff}
.warranty-result-card.expired{background:#3b0a0a;border-color:#ef4444;color:#fff}
.warranty-result-card.pending{background:#422006;border-color:#f59e0b;color:#fff}
.warranty-status.active{background:#22c55e;color:#052e16}
.warranty-status.expired{background:#ef4444;color:#fff}
.warranty-status.pending{background:#f59e0b;color:#251500}

.installer-note{
  background:#422006;
  border:1px solid #8a5c08;
  color:#fff3c4;
}
.installer-note b{color:#fbbf24}

/* Separación real entre trabajos, alertas y garantías */
#teams{margin-bottom:18px}
#teams > .box{margin-bottom:14px}
#alerts{min-height:34px}
#admin > .box,
#admin .warranty{margin-top:14px}

/* Escritorio ancho, aprovechando monitor */
@media(min-width:1100px){
  .wrap{padding-left:2.4vw;padding-right:2.4vw}
  #teams{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
    align-items:start;
  }
  #teams > .box{margin:0}
  #adminJobs{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
    align-items:start;
  }
  #alerts{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
  }
  #installer{max-width:760px;margin:0 auto}
}
@media(min-width:1500px){
  #teams{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* Móvil */
@media(max-width:700px){
  .top{padding:10px 10px 3px}
  .fleet-head{align-items:flex-start;gap:8px}
  .brand{font-size:18px;padding:7px 9px}
  .fleet-title{font-size:15px;margin-top:1px}
  .sub{font-size:10px;line-height:1.2}
  .wrap{padding:10px}
  .tabs{display:grid;grid-template-columns:1fr 1fr;overflow:visible}
  .tab{width:100%}
  .box{padding:14px;border-radius:15px}
  .work{padding:13px}
}


/* V9.2 — FORMULARIO CLARO + SELECTOR DE FECHA ROBUSTO */
.native-date-picker{
  position:fixed!important;
  width:1px!important;
  height:1px!important;
  opacity:0!important;
  pointer-events:none!important;
  left:-10px!important;
  bottom:0!important;
}

/* Único sector claro: formulario / modal */
#modal .sheet{
  background:#f4f4f2!important;
  color:#17191b!important;
  border:1px solid #d5d7da!important;
  box-shadow:0 18px 60px #0009!important;
}
#modal .sheet h2,
#modal .sheet label{
  color:#17191b!important;
}
#modal .sheet label{
  font-weight:900!important;
}
#modal .sheet input:not(.native-date-picker),
#modal .sheet select{
  background:#292d31!important;
  color:#fff!important;
  border:1px solid #454b51!important;
}
#modal .sheet .date-choice{
  background:#555b61!important;
  color:#fff!important;
  border-color:#555b61!important;
}
#modal .sheet .current-date{
  background:#30353a!important;
  color:#fff!important;
  border-color:#454b51!important;
  font-weight:900!important;
}
#modal .sheet .btn.dark{
  background:#17191b!important;
  color:#fff!important;
  border-color:#17191b!important;
}
#modal .sheet .btn.danger{
  background:#c90000!important;
  color:#fff!important;
  border-color:#c90000!important;
}


/* ============================================================
   V9.4 — FORMULARIO LIMPIO ROGGERO
   SOLO ESTÉTICA DEL FORMULARIO. SIN CAMBIOS DE LÓGICA.
   ============================================================ */
#modal{
  background:rgba(0,0,0,.62)!important;
}
#modal .sheet{
  background:#f3f3f1!important;
  color:#222!important;
  border:1px solid #e1e1de!important;
  border-radius:18px!important;
  box-shadow:0 22px 70px #0009!important;
  padding:22px!important;
}
#modal .sheet h2{
  color:#222!important;
  text-align:center!important;
  font-size:21px!important;
  font-weight:800!important;
  margin:0 0 18px!important;
}
#modal .sheet label{
  color:#555!important;
  font-size:12px!important;
  font-weight:700!important;
  letter-spacing:.2px!important;
  margin-bottom:6px!important;
}
#modal .sheet input:not(.native-date-picker),
#modal .sheet select,
#modal .sheet textarea{
  background:#fff!important;
  color:#222!important;
  border:1px solid #e2e2df!important;
  border-radius:10px!important;
  box-shadow:0 2px 7px #0000000d!important;
  min-height:46px!important;
  padding:11px 13px!important;
  font-size:15px!important;
}
#modal .sheet input::placeholder,
#modal .sheet textarea::placeholder{
  color:#9a9a9a!important;
}
#modal .sheet select{
  appearance:auto!important;
}
#modal .sheet .date-nav-row{
  gap:8px!important;
}
#modal .sheet .date-choice{
  background:#fff!important;
  color:#333!important;
  border:1px solid #dededb!important;
  box-shadow:0 2px 7px #0000000d!important;
  min-height:44px!important;
  font-weight:800!important;
}
#modal .sheet .date-choice:hover{
  background:#f7f7f5!important;
}
#modal .sheet .current-date{
  background:#fff!important;
  color:#333!important;
  border:1px solid #dededb!important;
  box-shadow:0 2px 7px #0000000d!important;
  font-weight:800!important;
}
#modal .sheet .btn.dark{
  background:#c90000!important;
  color:#fff!important;
  border:1px solid #c90000!important;
  box-shadow:none!important;
}
#modal .sheet .btn.danger{
  background:#fff!important;
  color:#b00000!important;
  border:1px solid #d7a3a3!important;
  box-shadow:none!important;
}
#modal .sheet .btn{
  border-radius:10px!important;
}


/* V9.7 — ajuste visual solicitado */
.reopen-row{
  width:100%!important;
  display:block!important;
  margin-top:10px!important;
}
.reopen-row .btn{
  width:100%!important;
  display:block!important;
}


/* V9.8 — corrección excepcional dentro de EDITAR */
#modal .reopen-edit{
  width:100%!important;
  display:block;
  margin-top:14px!important;
  background:#fff!important;
  color:#a00000!important;
  border:1px solid #d2a6a6!important;
}


/* V9.10 — KM APROXIMADOS PARA COORDINACIÓN */
.km-summary{
  margin:10px 0 12px;
  padding:6px 2px;
  background:transparent;
  border:0;
  border-radius:0;
  color:#171717
}
.km-summary .km-total{font-size:18px;font-weight:900;margin-top:3px}
.km-summary .km-note{font-size:10px;color:#777;margin-top:4px}
.km-leg{
  margin:5px 2px 10px;
  padding:4px 2px;
  border:0;
  background:transparent;
  font-size:12px;
  font-weight:700;
  color:#555
}
.km-leg b{color:#111}
.km-car{font-size:15px;margin-right:6px;vertical-align:-1px}
/* AJUSTE FINAL RECORRIDO — lectura clara en ADMIN y COLOCADOR */
.km-summary{
  margin:12px 0 14px!important;
  padding:8px 2px!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  color:#171717!important;
}
.km-summary .small{
  font-size:12px!important;
  font-weight:800!important;
  letter-spacing:.2px!important;
}
.km-summary .km-total{
  font-size:20px!important;
  line-height:1.2!important;
  font-weight:900!important;
  margin-top:4px!important;
}
.km-summary .km-note{
  font-size:11px!important;
  line-height:1.35!important;
  color:#6b6b6b!important;
  margin-top:5px!important;
}
.km-leg{
  display:flex!important;
  align-items:center!important;
  gap:5px!important;
  margin:7px 2px 12px!important;
  padding:6px 2px!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  font-size:15px!important;
  line-height:1.35!important;
  font-weight:800!important;
  color:#444!important;
}
.km-leg b{
  color:#111!important;
  font-size:15px!important;
  font-weight:900!important;
}
.km-car{
  font-size:19px!important;
  line-height:1!important;
  margin-right:2px!important;
  flex:0 0 auto!important;
}
@media(max-width:699px){
  .km-leg{font-size:14px!important;gap:4px!important}
  .km-leg b{font-size:14px!important}
  .km-car{font-size:18px!important}
  .km-summary .km-total{font-size:19px!important}
}
/* AJUSTE VISUAL RECORRIDO — SIN TOCAR FUNCIONES */
.km-summary{
  margin:14px 0 16px!important;
  padding:15px 16px!important;
  background:#111!important;
  border:1px solid #4b4b4b!important;
  border-radius:14px!important;
  color:#fff!important;
}
.km-summary .small{
  font-size:16px!important;
  line-height:1.25!important;
  font-weight:800!important;
  color:#e8e8e8!important;
}
.km-summary .km-total{
  font-size:27px!important;
  line-height:1.15!important;
  font-weight:900!important;
  color:#fff!important;
  margin-top:5px!important;
}
.km-summary .km-note{
  font-size:13px!important;
  line-height:1.4!important;
  font-weight:650!important;
  color:#bdbdbd!important;
  margin-top:7px!important;
}
.km-leg{
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
  margin:8px 3px 14px!important;
  padding:9px 11px!important;
  background:#171717!important;
  border-left:4px solid #d00000!important;
  border-radius:7px!important;
  font-size:17px!important;
  line-height:1.3!important;
  font-weight:850!important;
  color:#f1f1f1!important;
}
.km-leg b{
  color:#fff!important;
  font-size:18px!important;
  font-weight:950!important;
}
.km-car{
  font-size:22px!important;
  line-height:1!important;
  margin-right:2px!important;
  flex:0 0 auto!important;
}
@media(max-width:699px){
  .km-summary{padding:14px!important}
  .km-summary .small{font-size:15px!important}
  .km-summary .km-total{font-size:25px!important}
  .km-summary .km-note{font-size:12px!important}
  .km-leg{font-size:15px!important;gap:5px!important;padding:9px 8px!important}
  .km-leg b{font-size:16px!important}
  .km-car{font-size:21px!important}
}
/* TRAMOS DE RECORRIDO — SIN RECUADRO */
.route-strip{
  display:flex!important;
  align-items:center!important;
  flex-wrap:wrap!important;
  gap:6px!important;
  margin:12px 4px 14px!important;
  padding:4px 2px!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  color:#f2f2f2!important;
  font-size:17px!important;
  line-height:1.35!important;
  font-weight:850!important;
}
.route-distance{
  color:#ffffff!important;
  font-size:18px!important;
  font-weight:950!important;
}
.route-car{
  font-size:21px!important;
  line-height:1!important;
  margin-right:2px!important;
}
@media(max-width:699px){
  .route-strip{font-size:16px!important;margin:11px 3px 13px!important}
  .route-distance{font-size:17px!important}
  .route-car{font-size:20px!important}
}
/* V9.18 — AJUSTE FINAL DE INTERFAZ. Sin cambios de funciones. */
.full-add{display:block!important;width:100%!important;margin-top:12px!important}
.final-date-row{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important}
.final-date-row .date-choice{width:100%!important;margin:0!important}
.final-date-row .other-date{grid-column:1 / -1!important}
.compact-filter{margin-top:12px!important;margin-bottom:10px!important}
.compact-filter select{width:100%!important}
.admin-actions,.final-printrow{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important;margin-top:10px!important}
.admin-actions .btn,.final-printrow .btn{width:100%!important;margin:0!important}
.final-printrow .btn{background:#e8eef5!important;color:#101b35!important;font-weight:900!important}
@media(min-width:900px){
  .wrap{max-width:1280px!important;padding:20px!important}
  .box{padding:20px!important}
  .full-add{max-width:none!important}
}
@media(max-width:560px){
  .admin-actions,.final-printrow{grid-template-columns:1fr 1fr!important;gap:8px!important}
  .admin-actions .btn,.final-printrow .btn{font-size:13px!important;padding-left:7px!important;padding-right:7px!important}
}
/* V9.19 — corrección móvil botones PDF + USUARIOS */
.final-printrow{
  width:100%!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  gap:10px!important;
}
.final-printrow .btn{
  min-width:0!important;
  width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  padding-left:8px!important;
  padding-right:8px!important;
}
@media(max-width:560px){
  .final-printrow{gap:8px!important}
  .final-printrow .btn{font-size:12px!important;padding:14px 4px!important}
}
/* V9.20 — RESPONSIVE FINAL MÓVIL + ESCRITORIO */
/* Móvil conserva la composición aprobada. */
@media (max-width:1099px){
  .wrap{width:100%!important;max-width:none!important;margin:0!important;padding:10px!important}
}

/* Escritorio: usar realmente el monitor, sin estirar tarjetas de trabajo. */
@media (min-width:1100px){
  body{overflow-x:hidden}
  .wrap{
    width:min(96vw,1720px)!important;
    max-width:1720px!important;
    margin:0 auto!important;
    padding:20px 24px 42px!important;
  }
  .top .fleet-head{
    width:min(96vw,1720px)!important;
    max-width:1720px!important;
    margin:0 auto!important;
  }
  .tabs{width:100%!important}
  .tab{flex:1 1 0!important;text-align:center!important}

  /* Cabecera operativa: dos módulos proporcionados, lado a lado. */
  #admin{
    display:grid!important;
    grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)!important;
    column-gap:18px!important;
    align-items:start!important;
  }
  #admin > .jornadas-box{grid-column:1!important;grid-row:1!important;margin-top:0!important}
  #admin > .tools-box{grid-column:2!important;grid-row:1!important;margin-top:0!important}
  #admin > .alerts-box{grid-column:1 / -1!important;grid-row:2!important}
  #admin > #teams{grid-column:1 / -1!important;grid-row:3!important}
  #admin > .warranty{grid-column:1 / -1!important;grid-row:4!important}

  .jornadas-box,.tools-box{min-height:100%!important}
  .full-add{min-height:54px!important}
  .final-date-row .date-choice{min-height:50px!important}

  /* Trabajos: columnas de ancho cómodo; nada queda diminuto a la izquierda. */
  #teams{
    width:100%!important;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:18px!important;
    align-items:start!important;
    margin-top:0!important;
  }
  #teams > .box{width:100%!important;margin:0!important}
  #teams .work{font-size:15px!important}
  #teams .title{font-size:18px!important}
  #teams .meta{font-size:14px!important;line-height:1.45!important}
  .route-strip{font-size:15px!important}
  .route-distance{font-size:16px!important}

  /* Alertas en horizontal cuando haya varias. */
  #alerts{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:14px!important;
  }

  /* Colocador en escritorio también aprovecha pantalla, pero sin hacerse gigante. */
  #installer{
    width:min(100%,1200px)!important;
    max-width:1200px!important;
    margin:0 auto!important;
  }
  #installerJobs{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:18px!important;
    align-items:start!important;
  }
  #installerJobs > .work,
  #installerJobs > .box{margin-top:0!important}
}

@media (min-width:1550px){
  #teams{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  #alerts{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
/* V9.21 — ESCRITORIO ESTABLE / MÓVIL INTACTO
   En PC volvemos a flujo vertical ordenado y usamos columnas SOLO para las tarjetas. */
@media (min-width:1100px){
  body{overflow-x:hidden!important}

  .wrap{
    width:calc(100% - 48px)!important;
    max-width:1500px!important;
    margin:0 auto!important;
    padding:22px 24px 44px!important;
  }

  .top .fleet-head{
    width:calc(100% - 48px)!important;
    max-width:1500px!important;
    margin:0 auto!important;
  }

  /* Administración: flujo normal, de arriba hacia abajo */
  #admin{
    display:block!important;
    width:100%!important;
  }

  #admin > .box,
  #admin > #teams{
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
  }

  /* Primeros dos módulos: cada uno ancho completo, bien legibles */
  .jornadas-box,
  .tools-box,
  .alerts-box,
  .warranty{
    display:block!important;
    width:100%!important;
    min-height:0!important;
  }

  .jornadas-box{margin-bottom:18px!important}
  .tools-box{margin-bottom:18px!important}
  .alerts-box{margin-bottom:18px!important}
  .warranty{margin-top:18px!important}

  /* Fecha y controles administrativos, centrados y proporcionados */
  .full-add{width:100%!important;min-height:56px!important}
  .final-date-row{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:12px!important;
  }
  .final-date-row .other-date{grid-column:1 / -1!important}

  .compact-filter{
    width:100%!important;
    margin:14px 0 12px!important;
  }
  .compact-filter select{
    width:100%!important;
    min-height:52px!important;
  }

  .admin-actions,
  .final-printrow{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:12px!important;
    width:100%!important;
  }

  .admin-actions .btn,
  .final-printrow .btn{
    min-height:54px!important;
    width:100%!important;
  }

  /* Alertas: una debajo de otra para que nunca se desarmen */
  #alerts{
    display:block!important;
    width:100%!important;
  }
  #alerts > *{
    width:100%!important;
    max-width:none!important;
    margin-bottom:12px!important;
  }

  /* Trabajos: dos columnas sólidas en PC */
  #teams{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:18px!important;
    align-items:start!important;
    width:100%!important;
  }

  #teams > .box{
    width:100%!important;
    margin:0!important;
    min-width:0!important;
  }

  #teams .work{
    width:100%!important;
    min-width:0!important;
    margin-left:0!important;
    margin-right:0!important;
  }

  #teams .actions{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
  }
  #teams .actions .btn{
    width:100%!important;
    min-width:0!important;
  }

  /* Colocador en PC: igual lógica, dos columnas ordenadas */
  #installer{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
  }

  #installerJobs{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:18px!important;
    align-items:start!important;
    width:100%!important;
  }

  #installerJobs > *{
    min-width:0!important;
    width:100%!important;
  }

  .route-strip{
    white-space:normal!important;
    overflow:visible!important;
    word-break:normal!important;
  }
}

/* En monitores muy anchos seguimos con 2 columnas: más funcional y legible. */
@media (min-width:1550px){
  #teams,
  #installerJobs{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
/* V9.22 — PC ORDENADO, PESTAÑAS SEPARADAS, BLOQUES ANCHO COMPLETO
   Móvil no se modifica. */
@media (min-width:1100px){

  /* CLAVE: nunca mezclar Administración y Colocador */
  .panel:not(.active){
    display:none!important;
  }
  .panel.active{
    display:block!important;
  }

  /* Administración en flujo vertical completo */
  #admin.active{
    width:100%!important;
  }

  #admin > .box,
  #admin > #teams{
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
  }

  /* Cada colocador / recorrido ocupa todo el ancho */
  #teams{
    display:block!important;
    width:100%!important;
  }

  #teams > .box{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    margin:0 0 18px 0!important;
  }

  /* Cada trabajo dentro del bloque también ocupa ancho completo */
  #teams .work{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
  }

  #teams .actions{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:10px!important;
    width:100%!important;
  }

  #teams .actions .btn{
    width:100%!important;
    min-width:0!important;
  }

  /* Vista COLOCADOR: misma filosofía de bloques completos */
  #installer.active{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
  }

  #installerJobs{
    display:block!important;
    width:100%!important;
  }

  #installerJobs > .work,
  #installerJobs > .box,
  #installerJobs .work{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    margin:0 0 18px 0!important;
  }

  #installerJobs .actions{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:10px!important;
    width:100%!important;
  }

  #installerJobs .actions .btn{
    width:100%!important;
    min-width:0!important;
  }

  /* Recorridos siempre pegados a su bloque, sin columnas laterales */
  .route-strip{
    width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
  }

  /* Próximos trabajos también ancho completo */
  #futureJobs,
  .future-box,
  .upcoming-box{
    width:100%!important;
    max-width:none!important;
  }
}
/* V9.23 — SEPARACIÓN DEFINITIVA DE VISTAS
   ADMINISTRACIÓN = desde JORNADAS hasta GARANTÍAS
   COLOCADOR = únicamente MI JORNADA + sus trabajos/próximos.
   Este bloque pisa reglas responsive anteriores que forzaban ambas vistas. */

#admin.panel:not(.active),
#installer.panel:not(.active){
  display:none!important;
}

#admin.panel.active{
  display:block!important;
}

#installer.panel.active{
  display:block!important;
}

/* Refuerzo tanto en móvil como en escritorio */
@media (min-width:1100px){
  #admin.panel:not(.active),
  #installer.panel:not(.active){
    display:none!important;
  }

  #admin.panel.active,
  #installer.panel.active{
    display:block!important;
    width:100%!important;
  }
}
/* ===== V1.0 PHP/MySQL — login, cabecera, presupuestos, links, indicador BD ===== */
[hidden]{display:none!important}
.login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;position:relative;background:#090909;color:#f8fafc}
.login-card{width:min(420px,100%);background:linear-gradient(180deg,#3a3a3a,#2d2d2d);border:1px solid #515151;color:#f8fafc;border-radius:18px;padding:26px 22px;text-align:center;box-shadow:0 24px 80px rgba(0,0,0,.55)}
.brand-badge{display:inline-block;background:linear-gradient(180deg,#d40000,#a90000);border:1px solid #f43f3f;color:#fff;padding:6px 14px;border-radius:6px;font-weight:900;font-size:22px;letter-spacing:.5px}
.login-card h1{font-size:24px;margin:14px 0 4px}
.login-card .small{margin-bottom:16px;color:#b9b9b9}
.login-card label{display:block;text-align:left;font-size:12px;font-weight:800;color:#cbd5e1;margin:10px 0 6px}
.login-card input{width:100%;min-height:56px;background:#0d0d0d;color:#fff;border:1px solid #555;border-radius:12px;padding:10px 14px;font-size:26px;font-weight:900;letter-spacing:8px;text-align:center}
.login-btn{width:100%;min-height:54px;font-size:17px;margin-top:14px;background:linear-gradient(180deg,#e00000,#aa0000)!important;color:#fff!important}
.login-error{margin-top:12px;padding:10px 12px;border-radius:12px;background:#ffe4e4;color:#9b2020;font-weight:800;font-size:14px;line-height:1.3}
.fleet-head{display:flex;align-items:center;gap:12px}
.top-right{margin-left:auto;display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.top-btn{background:#2a2a2a;color:#fff;padding:8px 10px;font-size:12px}
.db-status{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border-radius:999px;border:1px solid #444;background:#1c1c1c;font-size:11px;font-weight:900;color:#ddd;white-space:nowrap;cursor:default}
.db-status .dot{width:9px;height:9px;border-radius:50%;background:#777;flex:0 0 9px}
.db-status.wait .dot{animation:dbpulse 1.2s ease-in-out infinite}
.db-status.ok{border-color:#1f8a4c;color:#bff2d2}.db-status.ok .dot{background:#22c55e;box-shadow:0 0 8px #22c55e}
.db-status.bad{border-color:#b91c1c;color:#ffc9c9;background:#3b0d0d}.db-status.bad .dot{background:#ef4444;box-shadow:0 0 8px #ef4444}
@keyframes dbpulse{0%,100%{opacity:.35}50%{opacity:1}}
.login-shell>.db-status{position:absolute;top:12px;right:14px}
.installer-fixed{font-size:22px;font-weight:900;margin-top:6px;color:#fff}
.ppt-box{background:#f1f3f6;border:1px dashed #b9bec6;border-radius:12px;padding:10px;margin:10px 0 4px;color:#222}
.ppt-box label{margin-top:0}
.ppt-results{background:#fff;color:#222;border:1px solid #d5d9df;border-radius:12px;margin-top:6px;max-height:260px;overflow:auto}
.ppt-item{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid #e3e6ea;cursor:pointer;color:#222}
.ppt-item:last-child{border-bottom:0}.ppt-item:hover{background:#f3f5f8}
.ppt-item .n{font-weight:900;color:#111}.ppt-item .s{font-size:12px;color:#666;margin-top:2px;overflow-wrap:anywhere}
.ppt-item .t{font-weight:800;white-space:nowrap}
.ppt-linked{margin-top:8px;padding:8px 10px;border-radius:10px;background:#dff4e8;color:#11663d;font-weight:800;font-size:13px;display:flex;justify-content:space-between;gap:8px;align-items:center;flex-wrap:wrap}
.ppt-linked .btn{padding:6px 9px;font-size:12px}
.ppt-only{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:800;white-space:nowrap;color:#f8fafc}
.ppt-only input{width:18px;height:18px;margin:0}
.ppt-row{display:grid;grid-template-columns:1fr auto;gap:8px 10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.ppt-row:last-child{border-bottom:0}
.ppt-row .n{font-weight:900;font-size:15px;color:#fff}.ppt-row .s{font-size:12px;color:#c9cdd2;margin-top:3px;overflow-wrap:anywhere;line-height:1.4}
.ppt-row .flags{display:inline-block;font-size:10px;font-weight:900;background:#111;color:#fff;border-radius:6px;padding:2px 6px;margin-left:6px;vertical-align:middle}
.ppt-row .agendado{display:inline-block;font-size:10px;font-weight:900;background:#dff4e8;color:#11663d;border-radius:6px;padding:2px 6px;margin-left:6px;vertical-align:middle}
.wp-badge{display:inline-block;font-size:10px;font-weight:900;background:#1769aa;color:#fff;border-radius:6px;padding:2px 6px;vertical-align:middle;margin-left:6px}
.person-pill{display:block!important;padding:10px 12px;margin-top:8px;background:#181818;border:1px solid #484848;border-radius:12px;color:#f8fafc}
.person-pill b{color:#fff;font-size:16px}
.person-pill.inactive{opacity:.6}
.person-head{display:flex;justify-content:space-between;gap:8px;align-items:center;flex-wrap:wrap}
.person-link{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:8px}
.person-link input{flex:1 1 200px;min-width:0;font-size:11px;padding:8px 10px;border:1px solid #484848;border-radius:10px;background:#0d0d0d;color:#9ecbff}
.person-link .btn{padding:8px 10px;font-size:12px;white-space:nowrap}
.job-ppt{display:inline-block;font-size:11px;font-weight:900;background:#e8eef5;color:#101b35;border-radius:6px;padding:2px 7px;margin-top:6px}
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:#111;color:#fff;padding:10px 16px;border-radius:999px;font-weight:900;opacity:0;transition:.2s;z-index:1000;pointer-events:none;max-width:92vw;text-align:center}
.toast.show{opacity:1}
.alert-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
@media(max-width:560px){
  .fleet-head{flex-wrap:wrap}
  .top-right{width:100%;justify-content:flex-start}
  .ppt-row{grid-template-columns:1fr}
  .ppt-row .btn{width:100%}
  .ppt-only{white-space:normal}
  .person-link .btn{flex:1}
}

/* Link visible para volver al cotizador (login y barra superior) */
.home-link{display:inline-flex;align-items:center;gap:6px;background:#2a2a2a;color:#fff;border:1px solid #555;border-radius:10px;padding:8px 10px;font-weight:900;font-size:12px;text-decoration:none;white-space:nowrap}
.home-link:hover{background:#3a3a3a}
.login-card .home-link{margin-top:16px;font-size:14px;padding:10px 14px}

/* ==========================================================================
   SISTEMA DE DISEÑO ÚNICO — copiado de /flota/ (pedido de Julián, 2026-09-14)
   No es solo tipografía: también rellenos, alturas, radios y espaciado.
   Todos los valores salieron de MEDIR la app de Flota en el navegador.
   Va último en la hoja y con !important: el CSS de Jornadas arrastra diez
   bloques de estilos del HTML original.

   ESCALA FLOTA (escritorio)
   texto 16/400 · marca 24/1000 (pad 5/12, r 4) · título de app 22/700
   título de panel 20/700 · subtítulo 16/700 · texto chico 12/400 · nota 11/400
   pestaña 13/900 (pad 10/14, r 12) · botón 12/900 (pad 8/10, r 12)
   botón principal 18/900 (pad 11/14, r 12)
   campo 15/400 (pad 12/13, r 12) · lista 16/900 · etiqueta 13/900 (margen 6)
   panel pad 16, r 18 · tarjeta pad 15, r 16 · número 30/1000 · rótulo 12/400
   tabla r 14, celdas 13px pad 11/10 · chip 11/900 (pad 5/8, r 999)
   estado de la base 11/900 (pad 5/10, r 999) · link 12/900 (pad 7/11, r 10)
   ========================================================================== */

/* ---------- Base ---------- */
body { font-size: 16px !important; font-weight: 400 !important; }
.wrap { padding: 18px 14px 70px !important; }

/* ---------- Cabecera ---------- */
.top { padding: 18px 14px 0 !important; }
.fleet-head { gap: 12px !important; }
.brand, .top .brand { font-size: 24px !important; font-weight: 1000 !important; letter-spacing: 1px !important; padding: 5px 12px !important; border-radius: 4px !important; }
.fleet-title { font-size: 22px !important; font-weight: 700 !important; letter-spacing: .5px !important; }
.fleet-title span { font-size: 22px !important; font-weight: 700 !important; }
.sub, .top .sub { font-size: 12px !important; font-weight: 400 !important; margin: 3px 0 0 !important; }
.top-right { gap: 8px !important; }
.top-btn, .btn.top-btn, .home-link { font-size: 12px !important; font-weight: 900 !important; padding: 7px 11px !important; border-radius: 10px !important; gap: 6px !important; }
.db-status { font-size: 11px !important; font-weight: 900 !important; padding: 5px 10px !important; border-radius: 999px !important; gap: 7px !important; }
.db-status .txt, .db-status .dot { font-size: 11px !important; font-weight: 900 !important; }

/* ---------- Pestañas ---------- */
.tabs { gap: 8px !important; margin: 0 0 16px !important; }
.tab { font-size: 13.3333px !important; font-weight: 900 !important; padding: 10px 14px !important; border-radius: 12px !important; }

/* ---------- Cajas y títulos ---------- */
.box { padding: 16px !important; border-radius: 18px !important; margin: 0 0 16px !important; }
h2, #modal .sheet h2, .sheet h2 { font-size: 24px !important; font-weight: 700 !important; margin: 0 0 10px !important; }
h3 { font-size: 18.72px !important; font-weight: 700 !important; margin: 0 0 10px !important; }
.title, #teams .title, .installer .title { font-size: 18.72px !important; font-weight: 700 !important; }

/* ---------- Texto secundario ---------- */
.small, .meta, .installer .meta, #teams .meta, .count, .day, .footer, .installer-note,
.km-summary .km-note, .km-summary .small, .ppt-item .s, .ppt-row .s { font-size: 12px !important; font-weight: 400 !important; }
.count { font-weight: 700 !important; }

/* ---------- Botones ---------- */
.btn, .btn.dark, .btn.danger, .btn.wa, .installer .btn, .admin-actions .btn, .final-printrow .btn,
.printrow .btn, .ppt-linked .btn, .reopen-edit, .person-link .btn {
  font-size: 12px !important; font-weight: 900 !important; padding: 8px 10px !important; border-radius: 12px !important; line-height: 1.15 !important;
}
.btn.date-choice, .date-choice, #modal .sheet .date-choice { font-size: 13px !important; font-weight: 900 !important; padding: 10px 14px !important; border-radius: 12px !important; }
.full-add, .btn.full-add, .login-btn, .btn.login-btn { font-size: 18px !important; font-weight: 900 !important; padding: 11px 14px !important; border-radius: 12px !important; margin: 12px 0 0 !important; }
.bigfinish, .btn.bigfinish { font-size: 16px !important; font-weight: 1000 !important; padding: 11px 14px !important; border-radius: 12px !important; }

/* ---------- Formularios ---------- */
input, textarea, .search, .upper, .chosen-date, #modal .sheet input:not(.native-date-picker), #modal .sheet textarea {
  font-size: 15px !important; font-weight: 400 !important; padding: 12px 13px !important; border-radius: 12px !important;
}
select, .filterbar select, .quicktime, select.search, #modal .sheet select {
  font-size: 16px !important; font-weight: 900 !important; padding: 12px 13px !important; border-radius: 12px !important;
}
label, .sheet label, #modal .sheet label { font-size: 13px !important; font-weight: 900 !important; margin: 0 0 6px !important; }
.current-date, #modal .sheet .current-date, .date-button, .future-date { font-size: 14px !important; font-weight: 900 !important; }

/* ---------- Chips, estados y marcas ---------- */
.badge, .wp-badge, .final-ribbon, .job-ppt, .ppt-row .flags, .ppt-row .agendado,
.zone, .zone-preview, .ppt-only, .cover-switch, .status, .type {
  font-size: 11px !important; font-weight: 900 !important; padding: 5px 8px !important; border-radius: 999px !important;
}

/* ---------- Tarjetas de trabajo y destacados ---------- */
.job { border-radius: 16px !important; }
.client, .warranty-card .client, .notice-client, .notice-big .notice-client, .warranty-client { font-size: 16px !important; font-weight: 900 !important; }
.installer-fixed { font-size: 18px !important; font-weight: 1000 !important; }
.notice-big .notice-title, .finalized-bar .final-title, .reprogrammed-bar .reprog-title { font-size: 16px !important; font-weight: 1000 !important; }
.finalized-bar .final-time, .reprogrammed-bar .reprog-time, .notice-big .notice-body { font-size: 13px !important; font-weight: 700 !important; }
.done-cover .done-title { font-size: 22px !important; font-weight: 900 !important; }
.done-cover .done-time { font-size: 15px !important; font-weight: 700 !important; }
.done-cover .done-type { font-size: 12px !important; font-weight: 900 !important; }
.warranty-status { font-size: 14px !important; font-weight: 900 !important; }
.warranty-days { font-size: 30px !important; font-weight: 1000 !important; line-height: 1.05 !important; }
.warranty-card .installer { font-size: 13px !important; font-weight: 700 !important; }
.ppt-item .t, .ppt-row .n, .ppt-item .n, .person-pill b { font-size: 14px !important; font-weight: 900 !important; }
.ppt-linked { font-size: 13px !important; font-weight: 700 !important; padding: 10px 12px !important; border-radius: 12px !important; }
.ppt-row { padding: 10px 12px !important; }
.ppt-results { border-radius: 12px !important; }
.person-link input { font-size: 11px !important; font-weight: 400 !important; padding: 7px 9px !important; border-radius: 10px !important; }
.person-pill { border-radius: 12px !important; }

/* ---------- Recorridos y kilómetros ---------- */
.km-summary .km-total { font-size: 22px !important; font-weight: 1000 !important; }
.km-leg, .route-strip { font-size: 13px !important; font-weight: 400 !important; }
.km-leg b, .route-distance { font-size: 13px !important; font-weight: 900 !important; }
.km-car, .route-car { font-size: 18px !important; }
#teams .work { font-size: 13px !important; font-weight: 400 !important; }

/* ---------- Avisos y modales ---------- */
.toast { font-size: 14px !important; font-weight: 900 !important; padding: 12px 18px !important; border-radius: 14px !important; }
.login-error { font-size: 14px !important; font-weight: 900 !important; line-height: 1.3 !important; padding: 12px !important; border-radius: 14px !important; }
.modal { padding: 16px !important; }
.sheet { padding: 18px !important; border-radius: 20px !important; }

/* ---------- Login (tal cual la tarjeta de Flota) ---------- */
.login-card { padding: 22px !important; border-radius: 20px !important; }
.brand-badge { font-size: 24px !important; font-weight: 1000 !important; letter-spacing: 1px !important; padding: 5px 12px !important; border-radius: 4px !important; }
.login-card h1 { font-size: 24px !important; font-weight: 700 !important; margin: 0 0 6px !important; }
.login-card label { font-size: 12px !important; font-weight: 900 !important; margin: 18px 0 6px !important; }
.login-card input { font-size: 26px !important; font-weight: 900 !important; letter-spacing: 8px !important; padding: 14px !important; border-radius: 12px !important; }
.login-card .small { font-size: 12px !important; font-weight: 900 !important; }
.login-card .home-link { font-size: 14px !important; font-weight: 900 !important; padding: 9px 13px !important; border-radius: 12px !important; }

/* ---------- Tamaño de letra (A− / % / A+) ---------- */
.fontsize { display: inline-flex !important; align-items: stretch !important; gap: 0 !important; background: #292929 !important; border: 1px solid #484848 !important; border-radius: 999px !important; overflow: hidden !important; }
.fsbtn, .fsval { background: transparent !important; color: #fff !important; border: 0 !important; font-family: Arial, Helvetica, sans-serif !important; font-size: 11px !important; font-weight: 900 !important; line-height: 1 !important; padding: 5px 9px !important; cursor: pointer !important; }
.fsbtn { font-size: 13px !important; min-width: 28px !important; }
.fsbtn:hover, .fsval:hover { background: #3a3a3a !important; }
.fsval { min-width: 44px !important; text-align: center !important; color: #d3d3d3 !important; border-left: 1px solid #484848 !important; border-right: 1px solid #484848 !important; }
.login-fs { margin-top: 12px !important; display: flex !important; justify-content: center !important; }

/* ==========================================================================
   Celular — misma reducción que hace Flota
   ========================================================================== */
@media (max-width: 820px) {
  body { font-size: 14px !important; }
  .wrap { padding: 14px 12px 70px !important; }
  .top { padding: 14px 12px 0 !important; }
  .brand, .top .brand, .brand-badge { font-size: 18px !important; }
  .fleet-title, .fleet-title span { font-size: 18px !important; line-height: 1.1 !important; }
  .sub, .top .sub { font-size: 11px !important; }
  h2, #modal .sheet h2, .sheet h2 { font-size: 18px !important; }
  h3, .title, #teams .title, .installer .title { font-size: 16px !important; }
  .tab { font-size: 12px !important; line-height: 1.1 !important; padding: 10px 12px !important; }
  .box { padding: 14px !important; border-radius: 16px !important; }
  input, textarea, .search, .upper, .chosen-date, select, .filterbar select, .quicktime,
  #modal .sheet input:not(.native-date-picker), #modal .sheet select, #modal .sheet textarea { font-size: 16px !important; padding: 11px 12px !important; }
  label, .sheet label, #modal .sheet label { font-size: 12px !important; }
  .db-status, .db-status .txt, .db-status .dot { font-size: 10px !important; }
  .full-add, .btn.full-add, .login-btn, .btn.login-btn, .bigfinish { font-size: 16px !important; padding: 12px 14px !important; }
  .warranty-days, .km-summary .km-total, .done-cover .done-title { font-size: 21px !important; }
  .installer-fixed { font-size: 16px !important; }
  .client, .warranty-card .client, .notice-client, .notice-big .notice-client, .warranty-client { font-size: 15px !important; }
  .sheet { padding: 16px !important; border-radius: 18px !important; }
}

@media (max-width: 430px) {
  .wrap { padding: 8px 10px 30px !important; }
  .top { padding: 8px 10px 0 !important; }
  .box { padding: 12px !important; }
  .tab { font-size: 11px !important; padding: 9px 10px !important; }
  .warranty-days, .km-summary .km-total { font-size: 19px !important; }
}
