:root{--bg:#f5f6f8;--card:#fff;--dark:#18212f;--muted:#657083;--line:#e3e7ee;--accent:#ff6a00;--ok:#19a35b;--warn:#d99a00;--bad:#d93636}*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--dark)}.topbar{background:#111827;color:white;padding:14px 22px;display:flex;gap:20px;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:5}.topbar small{display:block;color:#cbd5e1;font-size:12px}.topbar a{color:white;text-decoration:none;margin-left:14px;font-size:14px}.container{max-width:1180px;margin:24px auto;padding:0 16px}footer{text-align:right;padding:18px 28px;color:#667085;font-size:12px}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px;margin-bottom:16px;box-shadow:0 4px 18px rgba(20,29,45,.04)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.btn{border:0;border-radius:10px;background:var(--accent);color:#fff;padding:11px 14px;text-decoration:none;display:inline-block;cursor:pointer;font-weight:bold}.btn.secondary{background:#334155}.btn.light{background:#e2e8f0;color:#111827}.input,select,textarea{width:100%;padding:11px;border:1px solid var(--line);border-radius:10px;margin:6px 0 12px;background:white}label{font-weight:bold;font-size:13px;color:#334155}.table{width:100%;border-collapse:collapse;background:white;border-radius:12px;overflow:hidden}.table th,.table td{padding:12px;border-bottom:1px solid var(--line);text-align:left;font-size:14px}.badge{padding:5px 9px;border-radius:999px;font-size:12px;font-weight:bold;display:inline-block}.ok{background:#dcfce7;color:#166534}.warn{background:#fef3c7;color:#92400e}.bad{background:#fee2e2;color:#991b1b}.muted{color:var(--muted)}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.day{min-height:120px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px}.day strong{font-size:14px}.event{margin-top:8px;padding:7px;border-left:4px solid var(--accent);background:#f8fafc;border-radius:8px;font-size:12px}.login{max-width:420px;margin:8vh auto}.signature-pad{border:2px dashed #94a3b8;border-radius:12px;width:100%;height:220px;touch-action:none;background:#fff}.gpsbox{font-size:13px;color:#334155;margin:8px 0}.alert{padding:12px;border-radius:12px;margin-bottom:14px}.alert.warn{background:#fff7ed;color:#9a3412}.alert.ok{background:#ecfdf5;color:#166534}@media(max-width:720px){.topbar{display:block}.topbar nav{margin-top:10px}.topbar a{display:inline-block;margin:5px 8px 0 0}.calendar{grid-template-columns:1fr}.table{font-size:12px}}
.grid.two{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
form.inline{display:inline}
.checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:6px}.checks label{font-size:13px;background:#f7f7f7;border:1px solid #e6e6e6;border-radius:8px;padding:7px}.checks.small{grid-template-columns:repeat(2,minmax(0,1fr))}.checks.small label{font-size:12px;padding:5px}
/* v1.3 */
.operation-form{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:14px;align-items:end}
.operation-form .field{min-width:0}.operation-form .f-title{grid-column:1}.operation-form .f-project{grid-column:2}.operation-form .f-date{grid-column:3}.operation-form .f-start{grid-column:4}.operation-form .f-client{grid-column:1}.operation-form .f-type{grid-column:2}.operation-form .f-end{grid-column:3}.operation-form .f-pilot{grid-column:4}.operation-form .f-vehicle{grid-column:1}.operation-form .f-fuel{grid-column:2}.operation-form .f-odo{grid-column:3}.operation-form .f-origin{grid-column:1}.operation-form .f-dest{grid-column:2}.operation-form .f-desc{grid-column:3 / span 2}.operation-form .f-button{grid-column:3}
.user-form,.vehicle-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;align-items:end}.roles-block{grid-column:1 / -1}.preview{max-width:100%;border:1px solid var(--line);border-radius:12px;margin-top:8px;max-height:280px;object-fit:contain;background:#f8fafc}.gpsbox{background:#f8fafc;border:1px solid var(--line);border-radius:10px;padding:9px;margin:8px 0;color:#334155}
@media(max-width:900px){.operation-form{grid-template-columns:1fr}.operation-form .field{grid-column:auto!important}}
.signature-preview{border:1px solid var(--line);border-radius:12px;min-height:130px;padding:12px;background:#fff;overflow:hidden}.signature-preview svg{max-width:100%;height:auto;display:block}.inline{display:inline}.actions-row{display:flex;gap:8px;flex-wrap:wrap}.table .btn{margin:2px}
.card.nested{background:#f8fafc;box-shadow:none;margin-top:14px}.doc-photo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.doc-photo-grid img{width:100%;max-height:260px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:12px}.signature-preview svg path{stroke:#0033CC!important}

/* v1.6 calendar / route stops */
.calendar-toolbar{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap}.calendar-view-form{display:flex;gap:8px;align-items:center}.cal-head{font-weight:bold;background:#eef2f7;border:1px solid var(--line);border-radius:10px;padding:10px;text-align:center}.muted-day{opacity:.45}.event.big{font-size:14px}.small-input{max-width:86px}.stop-form,.service-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;align-items:end}.route-stop-form{margin:12px 0}.sat-box{background:#f8fafc}.vehicle-history summary{font-weight:bold;cursor:pointer;padding:10px 0}@media print{.topbar,.btn,.actions-row,footer,.route-stop-form{display:none!important}.container{max-width:none;margin:0}.card{box-shadow:none;break-inside:avoid}.table th,.table td{font-size:11px;padding:7px}.input,select,textarea{border:0;padding:0;margin:0}.calendar-toolbar{display:none}.signature-pad{border:0}}

/* v1.6.8 calendario responsive y agenda/paradas */
.operation-form-agenda{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.operation-form-agenda .field{grid-column:auto!important}.operation-form-agenda .f-desc{grid-column:1 / -1}.operation-form-agenda .f-button{grid-column:auto}
.calendar a{text-decoration:none;color:inherit}.day{position:relative}.day-number{display:inline-flex;align-items:center;justify-content:center;font-weight:bold;color:var(--dark);border-radius:999px;min-width:24px;height:24px}.day.has-events .day-number{background:#fff7ed;color:#9a3412}.event{display:block;color:var(--dark)}.event.compact{display:flex;gap:5px;align-items:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-dot{width:7px;height:7px;background:var(--accent);border-radius:50%;display:inline-block;flex:0 0 auto}.mobile-day{display:none}.day-events{display:flex;flex-direction:column;gap:4px;margin-top:6px}
@media(max-width:720px){.calendar{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.cal-head{font-size:10px;padding:6px 2px;border-radius:7px}.desktop-day{display:none}.mobile-day{display:inline}.day{min-height:58px;padding:4px;border-radius:8px}.day-number{font-size:12px;min-width:20px;height:20px}.event{font-size:10px;margin-top:3px;padding:3px;border-left:0;border-radius:6px}.event.compact{background:transparent;padding:1px;margin-top:2px}.event.compact span:not(.event-dot){display:none}.day-events{flex-direction:row;flex-wrap:wrap;gap:2px}.calendar-semana .event.compact span:not(.event-dot){display:inline}.calendar-semana .day{min-height:92px}.calendar-semana .event.compact{font-size:9px;max-width:100%}.calendar-toolbar .actions-row .btn{padding:8px 9px;font-size:12px}.calendar-view-form{width:100%;justify-content:space-between}.calendar-view-form select{max-width:180px}.table.route-stops-table{display:block;overflow-x:auto}}

/* v1.6.9 hotfix: calendario móvil en cuadrícula real y no como columna */
@media (max-width: 900px){
  .container{padding-left:10px!important;padding-right:10px!important;}
  .calendar.calendar-mes,
  .calendar.calendar-semana{
    display:grid!important;
    grid-template-columns:repeat(7,minmax(0,1fr))!important;
    gap:4px!important;
    width:100%!important;
  }
  .calendar.calendar-mes .cal-head,
  .calendar.calendar-semana .cal-head{
    display:block!important;
    min-width:0!important;
    padding:5px 1px!important;
    font-size:10px!important;
    line-height:1.1!important;
    border-radius:6px!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:clip!important;
  }
  .calendar.calendar-mes .desktop-day,
  .calendar.calendar-semana .desktop-day{display:none!important;}
  .calendar.calendar-mes .mobile-day,
  .calendar.calendar-semana .mobile-day{display:inline!important;}
  .calendar.calendar-mes .day,
  .calendar.calendar-semana .day{
    min-height:54px!important;
    height:auto!important;
    padding:3px!important;
    border-radius:7px!important;
    overflow:hidden!important;
  }
  .calendar.calendar-mes .day-number,
  .calendar.calendar-semana .day-number{
    font-size:11px!important;
    min-width:18px!important;
    height:18px!important;
    line-height:18px!important;
  }
  .calendar.calendar-mes .day-events,
  .calendar.calendar-semana .day-events{
    display:flex!important;
    flex-direction:row!important;
    flex-wrap:wrap!important;
    gap:2px!important;
    margin-top:2px!important;
  }
  .calendar.calendar-mes .event.compact{
    background:transparent!important;
    border-left:0!important;
    padding:0!important;
    margin:0!important;
    width:auto!important;
  }
  .calendar.calendar-mes .event.compact span:not(.event-dot){display:none!important;}
  .calendar.calendar-semana .event.compact{
    background:#f8fafc!important;
    border-left:2px solid var(--accent)!important;
    padding:2px!important;
    margin:0!important;
    max-width:100%!important;
    font-size:8px!important;
  }
  .calendar.calendar-semana .event.compact span:not(.event-dot){display:inline!important;overflow:hidden;text-overflow:ellipsis;}
  .event-dot{width:6px!important;height:6px!important;}
}

@media (max-width: 520px){
  .calendar.calendar-mes .day{min-height:46px!important;}
  .calendar.calendar-semana .day{min-height:70px!important;}
  .calendar-toolbar .actions-row{gap:6px!important;}
  .calendar-toolbar .actions-row .btn{font-size:11px!important;padding:7px 8px!important;}
}
/* v1.7.3 - modal simple para datos SAT por gasto */
.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.55);z-index:9999;align-items:center;justify-content:center;padding:18px;}
.modal-card{background:#fff;border-radius:16px;box-shadow:0 24px 70px rgba(15,23,42,.25);max-width:520px;width:100%;padding:22px;border:1px solid #e2e8f0;}
.btn.small{font-size:12px;padding:7px 10px;border-radius:8px;display:inline-block;white-space:nowrap;}

/* v1.7.6 checklist activacion */
.stop-form .wide{grid-column:1/-1}.activation-checklist-panel{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:12px;margin-top:8px}.activation-checklist-panel h3{margin:0 0 6px 0}.activation-checklist-panel textarea{min-height:150px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}


/* v1.8 Activaciones - checklist maestro */
.master-checklist textarea{min-height:260px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.35}.assignment-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;align-items:end}.assignment-form .wide{grid-column:1/-1}.audit-line{border-left:4px solid var(--accent);background:#f8fafc;border-radius:10px;padding:10px;margin:8px 0}.mini-signature{border:2px dashed #94a3b8;border-radius:12px;width:100%;height:150px;touch-action:none;background:#fff}.checklist-preview{white-space:pre-wrap;background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:12px;max-height:320px;overflow:auto}.status-pill{display:inline-block;padding:5px 10px;border-radius:999px;background:#e2e8f0;font-weight:bold;font-size:12px}.status-pill.signed{background:#dcfce7;color:#166534}.status-pill.draft{background:#fef3c7;color:#92400e}

/* v1.8.1 Activaciones UX */
.checklist-main-box{min-height:220px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.35}
.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.55);z-index:9999;align-items:center;justify-content:center;padding:18px}
.modal-card{background:#fff;border-radius:18px;border:1px solid var(--line);box-shadow:0 18px 60px rgba(0,0,0,.25);padding:18px;max-width:980px;width:min(980px,96vw);max-height:92vh;overflow:auto}
.checklist-modal-card{width:min(1100px,96vw)}
.checklist-modal-text{height:62vh;min-height:420px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:14px;line-height:1.35;white-space:pre-wrap}
.signature-box-wrap{position:relative;margin:8px 0 10px;border:2px dashed #94a3b8;border-radius:14px;background:#fff;overflow:hidden}
.signature-box-wrap .signature-hint{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);text-align:center;color:#94a3b8;font-weight:bold;pointer-events:none;z-index:0}
.mini-signature.signature-box{display:block;width:100%;height:170px;border:0!important;background:transparent;position:relative;z-index:1;touch-action:none}
@media(max-width:720px){.checklist-modal-text{height:58vh;min-height:360px}.modal-card{padding:14px}.signature-box-wrap{min-height:170px}}


/* v1.8.2 - fuerza visual firma checklist maestro */
.signature-box-wrap{position:relative!important;margin:8px 0 10px!important;border:2px dashed #94a3b8!important;border-radius:14px!important;background:#fff!important;overflow:hidden!important;min-height:180px!important;width:100%!important;display:block!important}
.signature-box-wrap .signature-hint{position:absolute!important;left:0!important;right:0!important;top:50%!important;transform:translateY(-50%)!important;text-align:center!important;color:#94a3b8!important;font-weight:bold!important;pointer-events:none!important;z-index:0!important}
.mini-signature.signature-box{display:block!important;width:100%!important;height:180px!important;border:0!important;background:transparent!important;position:relative!important;z-index:1!important;touch-action:none!important}

/* v1.8.3 - editor grande checklist maestro */
.checklist-fullscreen-modal{align-items:center!important;justify-content:center!important;padding:12px!important;background:rgba(15,23,42,.55)!important;}
.checklist-fullscreen-modal .checklist-modal-card{width:min(1220px,96vw)!important;height:88vh!important;max-height:88vh!important;display:flex!important;flex-direction:column!important;padding:14px!important;}
.checklist-fullscreen-modal .checklist-modal-text{flex:1 1 auto!important;height:auto!important;min-height:0!important;width:100%!important;resize:none!important;font-family:Consolas,Menlo,Monaco,'Courier New',monospace!important;font-size:15px!important;line-height:1.45!important;white-space:pre!important;overflow:auto!important;}
@media(max-width:720px){.checklist-fullscreen-modal{padding:8px!important}.checklist-fullscreen-modal .checklist-modal-card{width:98vw!important;height:86vh!important;max-height:86vh!important;padding:10px!important}.checklist-fullscreen-modal .checklist-modal-text{font-size:14px!important}}

/* v1.8.4 - ajustes UX Activaciones */
.master-checklist textarea.compact-textarea{min-height:48px!important;height:48px!important;font-family:Arial,Helvetica,sans-serif!important;font-size:14px!important;line-height:1.35!important;resize:vertical!important;}
.master-checklist .actions-row .btn.secondary{margin-left:8px;}

/* v1.9 - semáforo operativo calendario */
.event.status-green{border-left-color:#16a34a;background:#ecfdf5}.event.status-orange{border-left-color:#f97316;background:#fff7ed}.event.status-yellow{border-left-color:#eab308;background:#fefce8}.event.status-red{border-left-color:#dc2626;background:#fef2f2}.event.status-purple{border-left-color:#7c3aed;background:#f5f3ff}.event.status-blue{border-left-color:#2563eb;background:#eff6ff}.event.status-green .event-dot,.legend-dot.status-green{background:#16a34a}.event.status-orange .event-dot,.legend-dot.status-orange{background:#f97316}.event.status-yellow .event-dot,.legend-dot.status-yellow{background:#eab308}.event.status-red .event-dot,.legend-dot.status-red{background:#dc2626}.event.status-purple .event-dot,.legend-dot.status-purple{background:#7c3aed}.event.status-blue .event-dot,.legend-dot.status-blue{background:#2563eb}.calendar-legend{display:flex;gap:12px;flex-wrap:wrap;align-items:center;padding:10px 14px}.calendar-legend span{font-size:12px;color:#334155;display:inline-flex;gap:5px;align-items:center}.legend-dot{width:10px;height:10px;border-radius:999px;display:inline-block}.compact-card{box-shadow:none}.status-badge{border:1px solid transparent}.status-cerrada{background:#dcfce7;color:#166534;border-color:#bbf7d0}.status-en-ruta{background:#ffedd5;color:#9a3412;border-color:#fed7aa}.status-no-concluida{background:#fef3c7;color:#92400e;border-color:#fde68a}.status-no-cerrada{background:#fee2e2;color:#991b1b;border-color:#fecaca}.status-no-asignado{background:#ede9fe;color:#5b21b6;border-color:#ddd6fe}.status-programada{background:#dbeafe;color:#1e40af;border-color:#bfdbfe}
@media(max-width:720px){.calendar-legend{gap:8px;padding:8px}.calendar-legend span{font-size:11px}.legend-dot{width:8px;height:8px}}


/* v1.9.12 - Calendario: evitar deformar columnas por textos largos en vista mensual */
.calendar{grid-template-columns:repeat(7,minmax(0,1fr))!important;}
.calendar .day,.calendar .cal-head{min-width:0!important;overflow:hidden;}
.calendar-mes .event.compact{max-width:100%!important;width:100%!important;min-width:0!important;display:flex!important;align-items:center!important;gap:5px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
.calendar-mes .event.compact span:not(.event-dot){display:block!important;min-width:0!important;max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;}
@media(min-width:721px){.calendar-mes .event.compact span:not(.event-dot){display:block!important;}.calendar-mes .event.compact{font-size:11px!important;padding:5px 6px!important;}}


/* v1.9.13 - Activaciones: listado de checklists con scroll propio */
.activation-master-grid{align-items:start!important;}
.activation-edit-card,.activation-list-card{min-width:0!important;}
.activation-list-card{display:flex!important;flex-direction:column!important;overflow:hidden!important;}
.activation-list-card h2{flex:0 0 auto!important;margin-top:0;}
.activation-list-scroll{flex:1 1 auto!important;overflow-y:auto!important;overflow-x:auto!important;padding-right:4px;}
.activation-list-scroll .table{min-width:100%;}
.activation-list-scroll .table th{position:sticky;top:0;background:#fff;z-index:1;}
@media(max-width:900px){.activation-list-card{max-height:none!important;overflow:visible!important}.activation-list-scroll{overflow:visible!important}}


/* v1.9.14 - Activaciones: tarjeta de checklists con scroll interno real */
@media(min-width:901px){
  .activation-master-grid{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(360px,1fr)!important;align-items:start!important;gap:18px!important;}
  .activation-edit-card{min-width:0!important;}
  .activation-list-card{min-width:0!important;display:flex!important;flex-direction:column!important;overflow:hidden!important;height:640px;max-height:640px;}
  .activation-list-card h2{flex:0 0 auto!important;margin-top:0!important;}
  .activation-list-scroll{flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;overflow-x:auto!important;padding-right:6px!important;}
  .activation-list-scroll .table{min-width:100%!important;}
}
@media(max-width:900px){
  .activation-list-card{height:auto!important;max-height:none!important;overflow:visible!important;}
  .activation-list-scroll{max-height:none!important;overflow:visible!important;}
}
/* v1.9.16 - Colores propios para activaciones maestras */
.event.status-teal{border-left-color:#14b8a6;background:#f0fdfa}
.event.status-pink{border-left-color:#db2777;background:#fdf2f8}
.event.status-teal .event-dot,.legend-dot.status-teal{background:#14b8a6}
.event.status-pink .event-dot,.legend-dot.status-pink{background:#db2777}

/* v1.9.18 */
.service-badge, .vehicle-service-hint{
  display:inline-flex; flex-direction:column; gap:2px; padding:6px 9px; border-radius:12px; font-weight:700; font-size:12px; margin-top:6px; line-height:1.15;
}
.service-badge small{font-weight:500; opacity:.85; margin-top:2px;}
.vehicle-service-hint{display:flex; min-height:18px; margin-top:6px;}
.service-ok{background:#dcfce7; color:#166534; border:1px solid #86efac;}
.service-warning{background:#fef3c7; color:#92400e; border:1px solid #facc15;}
.service-danger{background:#fee2e2; color:#991b1b; border:1px solid #fca5a5;}
.service-neutral{background:#f3f4f6; color:#4b5563; border:1px solid #d1d5db;}
.btn.small{padding:6px 9px; font-size:12px; margin-top:6px; display:inline-block;}
.service-form{display:grid; grid-template-columns:repeat(4,minmax(160px,1fr)); gap:14px; align-items:start;}
.service-form textarea{min-height:70px;}
@media(max-width:900px){.service-form{grid-template-columns:1fr;}}
.docs-search{grid-template-columns:repeat(4,minmax(160px,1fr));}
@media(max-width:900px){.docs-search{grid-template-columns:1fr;}}
/* v1.9.26 - Firma remota / anulación */
.pill{display:inline-block;padding:8px 12px;border-radius:10px;background:#eef2f7;font-weight:700;letter-spacing:.5px}
.remote-access-card input[readonly]{font-family:monospace;font-size:13px}
.remote-summary,.readonly-box{white-space:pre-wrap;background:#f8fafc;border:1px solid #dbe2ea;border-radius:12px;padding:12px;color:#1f2937;line-height:1.45}
.container.narrow{max-width:780px;margin:0 auto;padding:24px}
.alert.ok{background:#ecfdf3;border:1px solid #bbf7d0;color:#166534;border-radius:12px;padding:12px;margin:12px 0}


/* v1.9.29 - versión visible y acerca de */
footer{display:flex!important;justify-content:flex-end!important;gap:14px!important;align-items:center!important;}
.app-version{font-weight:bold;color:#334155;background:#e2e8f0;border-radius:999px;padding:4px 9px;}
.version-card .version-number{font-size:32px;font-weight:bold;margin:8px 0;color:var(--dark)}
.version-card ul{line-height:1.55}


/* v1.9.30 - Destinos de la ruta en formulario vertical para Admin/Gerencia/PM */
.route-stops-vertical{display:flex;flex-direction:column;gap:16px;margin-top:14px;}
.stop-edit-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:0 4px 18px rgba(20,29,45,.04);}
.stop-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:14px;}
.stop-number{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:28px;border-radius:999px;background:#eef2ff;color:#1e40af;font-weight:800;margin-right:8px;}
.stop-card-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
.small-text{font-size:12px;margin-top:4px;}
.stop-vertical-form{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:12px 16px;align-items:start;}
.stop-vertical-form .field{min-width:0;}
.stop-vertical-form .field.wide{grid-column:1 / -1;}
.stop-vertical-form .field.compact{max-width:180px;}
.stop-vertical-form label{display:block;margin-bottom:4px;color:#1f2937;}
.stop-vertical-form .input,.stop-vertical-form select,.stop-vertical-form textarea{margin-top:0;margin-bottom:0;}
.stop-vertical-form textarea{min-height:82px;resize:vertical;}
.stop-vertical-form .activation-checklist-panel{background:#f8fafc;border:1px solid var(--line);border-radius:14px;padding:12px;}
.stop-vertical-form .activation-checklist-panel h3{margin:0 0 8px;}
.empty-state{padding:14px;border:1px dashed var(--line);border-radius:12px;background:#f8fafc;}
@media(max-width:980px){.stop-vertical-form{grid-template-columns:repeat(2,minmax(180px,1fr));}.stop-card-header{flex-direction:column}.stop-card-actions{justify-content:flex-start}.stop-vertical-form .field.compact{max-width:none;}}
@media(max-width:720px){.stop-vertical-form{grid-template-columns:1fr;}.stop-edit-card{padding:12px;border-radius:14px}.stop-card-actions .btn{width:100%;text-align:center}.stop-number{min-width:30px;height:24px}.route-stops-vertical{gap:12px}}

/* v1.9.31 - Vehículos en formulario vertical y flujo operativo */
.vehicle-edit-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;margin:14px 0;box-shadow:0 4px 18px rgba(20,29,45,.04)}
.vehicle-card-header{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:14px}
.vehicle-card-header h3{margin:0 0 4px;color:var(--dark)}
.vehicle-card-header .actions-row{justify-content:flex-end;align-items:flex-start}
.vehicle-sections{display:flex;flex-direction:column;gap:14px}
.vehicle-sections section{border:1px solid var(--line);background:#f8fafc;border-radius:14px;padding:14px}
.vehicle-sections h4{margin:0 0 10px;color:var(--dark)}
.vehicle-card-grid{display:grid;grid-template-columns:repeat(3,minmax(200px,1fr));gap:12px 16px;align-items:start}
.vehicle-card-grid label,.vehicle-sections label{display:block;margin-bottom:4px}
.vehicle-history-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px 14px;margin:-4px 0 18px}
.vehicle-history-card summary{font-weight:bold;cursor:pointer;padding:6px 0}
@media(max-width:980px){.vehicle-card-grid{grid-template-columns:repeat(2,minmax(180px,1fr))}.vehicle-card-header{flex-direction:column}.vehicle-card-header .actions-row{justify-content:flex-start}}
@media(max-width:720px){.vehicle-card-grid{grid-template-columns:1fr}.vehicle-edit-card{padding:12px}.vehicle-card-header .btn{width:100%;text-align:center}.vehicle-card-header .actions-row{width:100%}}

/* v1.9.42 - Control interno firma remota */
.checkbox-line{display:flex!important;gap:8px;align-items:center;font-weight:700;}
.checkbox-line input{width:auto!important;margin:0;}
.remote-access-card textarea[readonly]{font-family:monospace;font-size:12px;line-height:1.35;white-space:pre-wrap;}

/* v1.9.48 - acciones de parada debajo de Observaciones / incidencias */
.stop-card-actions-bottom{border-top:1px solid var(--line);margin-top:12px;padding-top:12px;justify-content:flex-start;}

/* v1.9.50 - filtro de listado de operaciones */
.list-filter-form{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0 14px 0;padding:10px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px}
.list-filter-form select{min-width:220px;max-width:100%;padding:8px 10px;border:1px solid #cbd5e1;border-radius:8px;background:#fff}

/* v1.9.53 - Checklist de activación largo */
textarea.checklist-longtext{min-height:340px!important;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.35;white-space:pre-wrap;}
@media(max-width:720px){textarea.checklist-longtext{min-height:420px!important;font-size:12px;}}

/* v1.9.60 - Vehículos: servicio solo desde historial, filtros y protección de duplicado */
.alert.warning{background:#fffbeb;border:1px solid #fde68a;color:#92400e;border-radius:12px;padding:12px;margin:12px 0}
.alert.bad{background:#fef2f2;border:1px solid #fecaca;color:#991b1b;border-radius:12px;padding:12px;margin:12px 0}
.readonly-pill{min-height:38px;display:flex;align-items:center;background:#fff;border:1px solid var(--line);border-radius:10px;padding:9px 11px;color:#1f2937}
.vehicle-service-summary .service-badge{margin-top:0}
.vehicle-filter-form{margin-bottom:10px;padding:12px;border:1px solid var(--line);border-radius:14px;background:#f8fafc}
.vehicle-filter-form .actions-row{gap:8px;align-items:end;justify-content:flex-start}
.service-submit-btn[disabled]{opacity:.7;cursor:not-allowed}
