/* Garantía de fabricante con pasos que no se saltan (Carlos, 2026-10-22). Solo tokens de app.css. */

/* Lista de partes: distintivo junto al tipo de servicio. */
.order-warranty-badge{display:inline-flex;align-items:center;margin-top:5px;padding:3px 7px;border-radius:5px;background:var(--amber-soft);color:var(--amber);font-size:11px;font-weight:800;letter-spacing:.02em;white-space:nowrap}
.order-warranty-badge.complete{background:var(--green-soft);color:var(--green)}

/* Alta del parte. */
.warranty-intake{margin:14px 0;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.warranty-intake.active{border-color:var(--amber-strong);box-shadow:inset 4px 0 0 var(--amber-strong)}
.warranty-intake-switch{align-items:flex-start}
.warranty-intake-switch span{display:grid;gap:2px}
.warranty-intake-switch small{color:var(--muted);font-weight:500}
.warranty-intake-body{display:grid;gap:12px;margin-top:12px}
.warranty-intake-body[hidden]{display:none}
.warranty-intake-step{margin:0;padding:10px 12px;border:1px solid var(--line-inner);border-radius:8px}
.warranty-intake-step legend{padding:0 4px;font-weight:800}
.warranty-intake-step legend small{color:var(--muted);font-weight:500}
.warranty-intake-step>p{margin:0 0 8px;color:var(--muted);font-size:13px}
.warranty-intake-note{margin:0;color:var(--amber);font-size:13px;font-weight:650}
.warranty-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:10px 14px}
.warranty-field{display:grid;gap:4px;min-width:0}
.warranty-field.wide{grid-column:1/-1}
.warranty-field small{color:var(--muted);font-weight:500}
.warranty-outcome{margin:0;padding:6px 10px;border:1px solid var(--line-inner);border-radius:8px}
.warranty-outcome legend{padding:0 4px;font-weight:700}

/* Ficha del parte: bloque de la garantía. */
#detail-warranty[hidden]{display:none}
#detail-warranty{border-color:var(--amber-strong)}
#detail-warranty.flash{animation:warranty-flash 1.2s var(--ease-out,ease-out) 2}
@keyframes warranty-flash{50%{box-shadow:0 0 0 4px var(--amber-soft)}}
@media (prefers-reduced-motion: reduce){#detail-warranty.flash{animation:none;box-shadow:0 0 0 4px var(--amber-soft)}}
#detail-warranty>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.warranty-progress{padding:4px 10px;border-radius:999px;background:var(--amber-soft);color:var(--amber);font-size:13px;font-weight:850;font-variant-numeric:tabular-nums;white-space:nowrap}
.warranty-progress.complete{background:var(--green-soft);color:var(--green)}
.warranty-summary{display:grid;gap:2px;margin:10px 0 12px;padding:10px 12px;border-left:4px solid var(--amber-strong);background:var(--amber-soft);color:var(--text)}
.warranty-summary strong{color:var(--amber)}
.warranty-summary.complete{border-left-color:var(--green);background:var(--green-soft)}
.warranty-summary.complete strong{color:var(--green)}
.warranty-summary span{font-size:13px}
.warranty-version{margin:0 0 10px;color:var(--muted);font-size:12px}
/* «Se factura a» (0198): a quién se factura la garantía y el dueño de la grúa. */
.warranty-billing{margin:10px 0 0;padding:8px 12px;border:1px solid var(--line-inner);border-radius:8px;background:var(--bg);font-size:14px}
.warranty-billing span{color:var(--muted)}
.warranty-phase{margin-top:12px}
.warranty-phase h4{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:0 0 6px;font-size:12px;font-weight:850;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.warranty-phase h4 small{font-size:12px;letter-spacing:0;text-transform:none;font-weight:700}
.warranty-phase.finished h4 small{color:var(--green)}
.warranty-phase ol{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.warranty-step{display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}
.warranty-step.next{border-color:var(--amber-strong);box-shadow:inset 4px 0 0 var(--amber-strong)}
.warranty-step.locked{background:var(--bg);color:var(--muted)}
.warranty-step.done{border-color:var(--line-inner)}
.warranty-mark{display:grid;place-items:center;width:28px;height:28px;border-radius:999px;border:2px solid var(--line-control);font-size:13px;font-weight:850;font-variant-numeric:tabular-nums}
.warranty-step.done .warranty-mark{border-color:var(--green);background:var(--green);color:var(--surface)}
.warranty-step.next .warranty-mark{border-color:var(--amber-strong);color:var(--amber)}
.warranty-step-body{display:grid;gap:4px;min-width:0}
.warranty-step-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.warranty-step-head strong{font-size:15px;overflow-wrap:anywhere}
.warranty-count{padding:1px 8px;border-radius:999px;background:var(--line-inner);font-size:12px;font-variant-numeric:tabular-nums}
.warranty-next-tag{padding:1px 8px;border-radius:999px;background:var(--amber-soft);color:var(--amber);font-size:11px;font-style:normal;font-weight:850;text-transform:uppercase;letter-spacing:.05em}
.warranty-instructions{margin:0;color:var(--muted);font-size:13px}
.warranty-status{margin:0;font-size:13px;font-weight:700}
.warranty-status.done{color:var(--green)}
.warranty-status.pending{color:var(--amber)}
.warranty-status.locked{color:var(--muted);font-weight:600}
.warranty-values{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));gap:4px 14px;margin:2px 0 0;padding:0;list-style:none;font-size:13px}
.warranty-values li{display:grid;min-width:0}
.warranty-values li.wide{grid-column:1/-1}
.warranty-values span{color:var(--muted);font-size:12px}
.warranty-values strong{font-weight:650;overflow-wrap:anywhere;white-space:pre-line}
.warranty-files{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.warranty-thumb{display:block;width:56px;height:56px;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--line-inner)}
.warranty-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.warranty-file-chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;min-height:32px;padding:0 10px;border:1px solid var(--line);border-radius:999px;color:var(--text);font-size:12px;font-weight:650;text-decoration:none}
.warranty-file-chip svg{width:16px;height:16px;flex:none;color:var(--blue)}
.warranty-file-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.warranty-step-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.warranty-step-actions:empty{display:none}
.warranty-upload{cursor:pointer}
.warranty-step-help{margin:0 0 12px;color:var(--muted)}
#warranty-step-fields{display:grid;gap:12px;margin-bottom:12px}

/* Configuración › Integraciones › Pasos de garantía. */
.warranty-protocols{display:grid;gap:10px}
.warranty-protocol{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.warranty-protocol>summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;padding:12px 14px;cursor:pointer}
.warranty-protocol>summary small{color:var(--muted)}
.warranty-protocol.new>summary strong{color:var(--blue)}
.warranty-protocol>form{padding:0 14px 14px}
.warranty-editor-version{align-self:end;margin:0;color:var(--muted);font-size:13px}
.warranty-editor-steps{display:grid;gap:10px;margin:6px 0;padding:0;list-style:none;counter-reset:warranty-step}
.warranty-editor-step{position:relative;display:grid;gap:8px;padding:10px 12px 10px 40px;border:1px solid var(--line-inner);border-radius:8px;counter-increment:warranty-step}
.warranty-editor-step::before{content:counter(warranty-step);position:absolute;top:12px;left:12px;font-weight:850;color:var(--muted);font-variant-numeric:tabular-nums}
.warranty-editor-step .wide{grid-column:1/-1}
.warranty-editor-step [hidden]{display:none}
.warranty-editor-config small{color:var(--muted);font-weight:500}
.warranty-editor-tools{display:flex;flex-wrap:wrap;gap:6px}
.warranty-editor-tools .danger-text{color:var(--red)}
@media (max-width: 640px){
  .warranty-step{grid-template-columns:24px minmax(0,1fr);padding:10px}
  .warranty-mark{width:24px;height:24px;font-size:12px}
  .warranty-editor-step{padding-left:12px}
  .warranty-editor-step::before{position:static}
}

/* El botón de subir es un <label>: que no herede el estilo de las etiquetas de la ficha. */
#detail-warranty .warranty-step-actions label.button{display:inline-flex;margin:0;font-size:inherit;font-weight:700}
#detail-warranty .warranty-step-actions .button svg{width:18px;height:18px}
.configuration-panel:has(#configuration-warranty-protocols){grid-template-columns:1fr}
.warranty-editor-step .field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:10px 14px;align-items:start}
.warranty-protocol-form select,.warranty-protocol-form textarea{width:100%;min-height:42px;padding:8px 11px;border:1px solid var(--line-control);border-radius:5px;background:var(--surface);color:var(--text);font-family:inherit;font-size:16px;font-weight:700;line-height:1.4;text-transform:none;letter-spacing:normal}
.warranty-protocol-form textarea{min-height:64px}

/* Lista de comprobación arriba del todo mientras falten pasos (Carlos, 2026-10-22). Toques de 44 px o más. */
#detail-warranty:empty{display:none}
.detail-warranty-top[hidden],.detail-warranty-top:empty{display:none}
.detail-warranty-top{margin-top:14px}
#detail-warranty.checklist-mode{border-width:2px;scroll-margin-top:150px}
.warranty-bar{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;margin:10px 0 0}
.warranty-bar i{height:6px;border-radius:999px;background:var(--line)}
.warranty-bar i.done{background:var(--green)}
.warranty-bar i.next{background:var(--amber-strong)}
.warranty-checklist{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.warranty-check{border:1px solid var(--line);border-radius:8px;background:var(--surface)}
.warranty-check.done{border-color:var(--line-inner)}
.warranty-check.locked{background:var(--bg)}
.warranty-check.next{border:2px solid var(--amber-strong);box-shadow:inset 5px 0 0 var(--amber-strong)}
.warranty-row{display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:52px;padding:6px 12px;list-style:none;cursor:pointer}
.warranty-check.next .warranty-row{cursor:default}
.warranty-row::-webkit-details-marker{display:none}
.warranty-row:focus-visible{outline:3px solid var(--info);outline-offset:-3px;border-radius:8px}
.warranty-row-text{display:grid;gap:1px;min-width:0}
.warranty-row-text strong{font-size:15px;overflow-wrap:anywhere}
.warranty-row-text small{color:var(--muted);font-size:13px;font-weight:600}
.warranty-check.pending .warranty-row-text small{color:var(--amber)}
.warranty-check.done .warranty-row-text small{color:var(--green)}
.warranty-check .warranty-mark{width:30px;height:30px}
.warranty-check.done .warranty-mark{border-color:var(--green);background:var(--green);color:var(--surface)}
.warranty-check.next .warranty-mark{border-color:var(--amber-strong);color:var(--amber)}
.warranty-check.locked .warranty-mark{border-style:dashed;color:var(--muted)}
.warranty-state{padding:2px 9px;border-radius:999px;font-size:11px;font-style:normal;font-weight:850;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}
.warranty-state.done{background:var(--green-soft);color:var(--green)}
.warranty-state.locked{background:var(--line-inner);color:var(--muted)}
.warranty-state.pending,.warranty-state.next{background:var(--amber-soft);color:var(--amber)}
.warranty-check .warranty-step-body{padding:0 12px 12px 54px}
.warranty-check .warranty-step-actions .button{min-height:44px}
.warranty-check .warranty-step-actions .warranty-big{min-height:56px;padding:0 20px;font-size:16px}
#detail-warranty .warranty-step-actions label.button.warranty-big{font-size:16px}
.warranty-summary.withdrawn{border-left-color:var(--muted);background:var(--line-inner)}
.warranty-summary.withdrawn strong{color:var(--text)}
.warranty-progress.withdrawn{background:var(--line-inner);color:var(--muted)}
.warranty-withdrawn-steps>summary{display:flex;align-items:center;min-height:44px;cursor:pointer;color:var(--blue-dark);font-weight:750}
.warranty-withdraw-note{margin:0;padding:10px 12px;border-left:4px solid var(--amber-strong);background:var(--amber-soft);font-size:13px}
@media (max-width: 640px){
  .warranty-row{grid-template-columns:26px minmax(0,1fr);padding:8px 10px;gap:4px 10px}
  .warranty-row .warranty-state{grid-column:2;justify-self:start}
  #detail-warranty.checklist-mode>header h3{font-size:18px}
  .warranty-check .warranty-mark{width:26px;height:26px}
  .warranty-check .warranty-step-body{padding:0 10px 12px}
  .warranty-check .warranty-step-actions{display:grid}
  .warranty-check .warranty-step-actions .button{width:100%;justify-content:center}
}

/* Códigos y tiempos de la marca (fase 2, 0194). La diferencia de horas, en color neutro. */
.warranty-brand-hours{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 18px;margin:10px 0 0;padding:8px 12px;border:1px solid var(--line-inner);border-radius:8px;background:var(--bg);font-size:14px}
.warranty-brand-hours strong{font-variant-numeric:tabular-nums}
.warranty-brand-hours small{color:var(--muted);font-size:13px}
.warranty-codes{display:grid;gap:8px;margin-top:4px}
.warranty-codes-group,.warranty-codes-proposal,.warranty-codes-confirmed{display:grid;gap:3px;padding:8px 10px;border:1px solid var(--line-inner);border-radius:8px;background:var(--surface)}
.warranty-codes-group>span,.warranty-codes-proposal>span,.warranty-codes-confirmed>span{color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.warranty-codes-group strong{overflow-wrap:anywhere}
.warranty-codes-group small,.warranty-codes-proposal>small,.warranty-codes-confirmed>small{color:var(--muted);font-size:13px}
.warranty-codes-group.missing{border-color:var(--amber-strong);background:var(--amber-soft)}
.warranty-codes-confirmed{border-color:var(--green)}
.warranty-codes-candidates,.warranty-codes-lines,.warranty-codes-results,.warranty-codes-editor{display:grid;gap:6px;margin:4px 0 0;padding:0;list-style:none}
.warranty-codes-candidates li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 10px;padding:6px 0;border-top:1px solid var(--line-inner)}
.warranty-codes-candidates li span{display:grid;min-width:0}
.warranty-codes-candidates .button{min-height:44px}
.warranty-codes-lines li,.warranty-codes-results li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:baseline;gap:4px 10px;font-size:13px}
.warranty-codes-results li{grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;padding:6px 0;border-top:1px solid var(--line-inner)}
.warranty-codes-lines b,.warranty-codes-results b{font-variant-numeric:tabular-nums}
.warranty-codes-lines span,.warranty-codes-results span{display:grid;min-width:0;overflow-wrap:anywhere}
.warranty-codes-lines small,.warranty-codes-results small{color:var(--muted)}
.warranty-codes-lines em,.warranty-codes-results em{font-style:normal;font-weight:750;font-variant-numeric:tabular-nums;white-space:nowrap}
.warranty-codes-note{margin:0;color:var(--muted);font-size:13px}
.warranty-codes-note.pending{color:var(--amber);font-weight:700}
.warranty-codes-picker{display:flex;flex-wrap:wrap;align-items:end;gap:8px}
.warranty-codes-picker .warranty-field{flex:1 1 260px}
.warranty-codes-picker select,.warranty-codes-form select{box-sizing:border-box;width:100%;height:48px;min-height:48px}
.warranty-codes-form .warranty-fields{align-items:end}
.warranty-codes-change>summary{min-height:36px;display:flex;align-items:center;cursor:pointer;color:var(--blue-dark);font-weight:700;font-size:13px}
.warranty-codes-form{display:grid;gap:12px}
.warranty-codes-title{margin:4px 0 0;font-size:15px}
.warranty-codes-row{display:grid;gap:4px;padding:10px 12px;border:1px solid var(--line);border-radius:8px}
.warranty-codes-row.pending{border-color:var(--amber-strong);box-shadow:inset 4px 0 0 var(--amber-strong)}
.warranty-codes-row.removed{background:var(--bg);color:var(--muted)}
.warranty-codes-row.removed p{text-decoration:line-through}
.warranty-codes-row-head{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}
.warranty-codes-row-head b{font-size:16px;font-variant-numeric:tabular-nums}
.warranty-codes-row-head span{color:var(--muted);font-size:13px}
.warranty-codes-row p{display:grid;gap:2px;margin:0;overflow-wrap:anywhere}
.warranty-codes-row p small{color:var(--muted);text-decoration:none}
/* El original en inglés, en pequeño debajo del español (2026-10-22). */
.warranty-codes-en{color:var(--muted);font-size:12px;font-weight:400;font-style:normal}
.warranty-codes-row-foot{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}
.warranty-codes-qty{display:inline-flex;align-items:center;gap:6px;font-size:13px}
.warranty-codes-qty input{width:72px;min-height:44px}
.warranty-codes-row-foot strong{font-variant-numeric:tabular-nums}
.warranty-codes-row-actions{display:flex;flex-wrap:wrap;gap:6px;margin-left:auto}
.warranty-codes-row-actions .button,.warranty-codes-results .button{min-height:44px}
.warranty-codes-search input{min-height:44px}
.warranty-codes-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 14px;padding:10px 0 0;border-top:1px solid var(--line);background:var(--surface)}
.warranty-codes-footer span{display:grid}
.warranty-codes-footer strong{font-size:18px;font-variant-numeric:tabular-nums}
.warranty-codes-footer small{color:var(--amber);font-weight:700}
.warranty-codes-footer .button{min-height:48px}
@media (max-width: 640px){
  .warranty-codes-results li{grid-template-columns:auto minmax(0,1fr) auto}
  .warranty-codes-results .button{grid-column:1/-1;width:100%;justify-content:center}
  .warranty-codes-row-actions{margin-left:0;width:100%}
  .warranty-codes-row-actions .button{flex:1;justify-content:center}
  .warranty-codes-footer .button{width:100%;justify-content:center}
}
.billing-brand-hours[hidden]{display:none}
.billing-brand-hours{margin:0 0 10px;padding:8px 12px;border:1px solid var(--line-inner);border-radius:8px;background:var(--bg);font-size:14px}
.billing-brand-hours p{margin:0}
.warranty-changes{display:grid;gap:6px;margin:6px 0 0;padding:0;list-style:none;font-size:13px}
.warranty-changes li{display:grid;gap:2px;padding:6px 0;border-top:1px solid var(--line-inner)}
.warranty-changes span{overflow-wrap:anywhere}
.warranty-changes small{color:var(--muted)}

/* Logo de la marca (Carlos, 2026-10-23, 0197): con su fondo negro y las esquinas un poco redondeadas. */
.warranty-brand-logo,.order-warranty-logo,.warranty-protocol-logo{display:inline-block;flex:none;width:auto;max-width:100%;object-fit:contain;border-radius:4px}
.warranty-head{display:flex;align-items:center;gap:12px;min-width:0}
.warranty-head>div{min-width:0}
.warranty-head .warranty-brand-logo{height:36px}
#detail-warranty>header{align-items:center}
.order-warranty-logo{height:18px;margin:5px 0 0 4px;vertical-align:middle;border-radius:3px}
.warranty-protocol>summary{align-items:center}
.warranty-protocol-logo{height:22px;border-radius:3px}
.warranty-editor-brand{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 14px}
.warranty-editor-brand>label{flex:1 1 240px;min-width:0}
.warranty-editor-brand small{display:block;margin-top:4px;color:var(--muted);font-weight:500}
.warranty-editor-brand-preview{display:inline-flex;align-items:center;min-height:42px}
.warranty-editor-brand-preview .warranty-brand-logo{height:40px}
.warranty-editor-billing{position:relative}
.warranty-editor-billing small{display:block;margin-top:4px;color:var(--muted);font-weight:500}
.warranty-editor-billing-results{display:grid;gap:4px;margin:6px 0 0;padding:0;list-style:none}
.warranty-editor-billing-results .button{width:100%;min-height:44px;justify-content:space-between;text-align:left}
.warranty-editor-billing-results small{display:inline;margin:0 0 0 8px}
@media (max-width: 640px){
  /* A 390 px el logo va encima del título: así el título no se parte en tres líneas. */
  .warranty-head{flex-direction:column;align-items:flex-start;gap:6px}
  .warranty-head .warranty-brand-logo{height:28px;max-width:120px}
  .order-warranty-logo{height:16px}
}
/* Garantía rechazada por el fabricante y nº de reclamación (Carlos, 2026-10-23, 0199). */
.order-warranty-badge.rejected{background:var(--red-soft);color:var(--red)}
.warranty-summary.rejected{border-left-color:var(--red);background:var(--red-soft)}
.warranty-summary.rejected strong{color:var(--red)}
.warranty-progress.rejected{background:var(--red-soft);color:var(--red)}
.warranty-claim{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin:10px 0 0;font-size:14px}
.warranty-claim span{color:var(--muted)}
.warranty-claim .button{min-height:36px}
.warranty-office-actions{margin-top:10px}
.warranty-reject-blocked{margin:10px 0 0;color:var(--muted);font-size:13px}
.warranty-supplier-documents{margin-top:14px;padding-top:12px;border-top:1px solid var(--line-inner)}
.warranty-supplier-documents h4{margin:0 0 8px;font-size:14px}
.warranty-supplier-documents ul{display:grid;gap:6px;margin:0 0 6px;padding:0;list-style:none}
.warranty-supplier-documents li{display:grid;gap:2px;padding:8px 10px;border:1px solid var(--line-inner);border-radius:8px;background:var(--bg);font-size:14px;overflow-wrap:anywhere}
.warranty-supplier-documents li a,.warranty-supplier-documents .warranty-doc-name{display:inline-flex;align-items:center;gap:6px;min-height:32px}
.warranty-supplier-documents li svg{width:16px;height:16px;flex:none}
.warranty-supplier-documents li small,.warranty-supplier-documents>small{color:var(--muted);font-size:12px}
.warranty-supplier-documents li em{font-style:normal;color:var(--amber);font-size:12px;font-weight:750}
.warranty-supplier-documents li.pending{border-style:dashed;color:var(--amber)}
