/* Taller: reparaciones, presupuestos y mantenimientos */
.repair-attachments-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3)}
.repair-attachments-heading .detail-section-title{margin-bottom:0}
.repair-attachments-actions{display:flex;align-items:center;gap:var(--space-2)}
.repair-attachment-input{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important}
.repair-attachments-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}
.repair-attachment-card{min-width:0;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-offset)}
.repair-attachment-preview{display:flex;width:100%;aspect-ratio:4/3;align-items:center;justify-content:center;overflow:hidden;background:var(--color-surface-dynamic);text-decoration:none}
.repair-attachment-preview img{display:block;width:100%;height:100%;object-fit:cover}
.repair-attachment-pdf{flex-direction:column;gap:var(--space-2);color:var(--color-text-muted);font-size:var(--text-xs);font-weight:700}
.repair-attachment-pdf svg{width:28px;height:28px}
.repair-attachment-info{padding:var(--space-2) var(--space-2) 0;min-width:0}
.repair-attachment-info strong,.repair-attachment-info span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.repair-attachment-info strong{font-size:var(--text-xs);color:var(--color-text)}
.repair-attachment-info span{margin-top:2px;font-size:10px;color:var(--color-text-faint)}
.repair-attachment-footer{min-height:30px;display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:2px var(--space-2) var(--space-2)}
.repair-attachment-location{font-size:var(--text-xs);color:var(--color-primary);text-decoration:none}
.repair-attachment-delete{margin-left:auto;color:var(--color-error)!important}
.repair-attachments-empty,.repair-attachments-working{padding:var(--space-4);border:1px dashed var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:var(--text-sm);text-align:center}

.maintenance-detail-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2);width:100%;margin-top:var(--space-4)}
.maintenance-detail-actions .btn{min-width:0;justify-content:center}
.timeline{display:flex;flex-direction:column;gap:var(--space-3)}
.timeline-item{display:flex;gap:var(--space-3)}
.timeline-line{display:flex;flex-direction:column;align-items:center}
.timeline-dot{width:10px;height:10px;border-radius:50%;background:var(--color-primary);flex-shrink:0;margin-top:4px}
.timeline-connector{width:2px;flex:1;background:var(--color-divider);margin-top:4px}
.timeline-body{flex:1;padding-bottom:var(--space-3)}
.timeline-event{font-size:var(--text-sm);color:var(--color-text)}
.timeline-date{font-size:var(--text-xs);color:var(--color-text-faint);margin-top:2px}
.budget-amount{font-variant-numeric:tabular-nums lining-nums;font-weight:600}
.status-pendiente-pago{background:var(--color-warning-highlight);color:var(--color-warning)}
.status-activo{background:var(--color-success-highlight);color:var(--color-success)}
.status-cancelado{background:var(--color-error-highlight);color:var(--color-error)}

.maint-title-row{line-height:1.15}
.maint-agent-line{display:block;margin-top:1px;font-size:var(--text-xs);line-height:1.15;color:var(--color-text-muted)}
/* Indicadores compactos de facturación en contratos */
.billing-indicators{display:inline-flex;align-items:center;gap:var(--space-1);flex-wrap:wrap;margin-left:var(--space-1);vertical-align:middle}
.billing-indicator{margin-top:0!important;white-space:nowrap}
.reparaciones-table{table-layout:fixed}
.reparaciones-table th:nth-child(1),.reparaciones-table td:nth-child(1){width:56px}
.reparaciones-table th:nth-child(2),.reparaciones-table td:nth-child(2){width:20%}
.reparaciones-table th:nth-child(3),.reparaciones-table td:nth-child(3){width:17%}
.reparaciones-table th:nth-child(4),.reparaciones-table td:nth-child(4){width:auto;max-width:none!important}
.reparaciones-table th:nth-child(5),.reparaciones-table td:nth-child(5){width:86px;white-space:nowrap}
.reparaciones-table th:nth-child(6),.reparaciones-table td:nth-child(6){width:112px;white-space:nowrap}

.presupuestos-table th:nth-child(1),.presupuestos-table td:nth-child(1){width:56px}
.presupuestos-table th:nth-child(2),.presupuestos-table td:nth-child(2){width:22%}
.presupuestos-table th:nth-child(3),.presupuestos-table td:nth-child(3){width:auto;max-width:none!important}
.presupuestos-table th:nth-child(4),.presupuestos-table td:nth-child(4){width:92px}
.presupuestos-table th:nth-child(5),.presupuestos-table td:nth-child(5){width:104px}
.presupuestos-table th:nth-child(6),.presupuestos-table td:nth-child(6){width:90px}

.reparaciones-table td:nth-child(6) .badge,
.presupuestos-table td:nth-child(4) .badge{font-size:calc(var(--text-xs) - 1px);padding:1px 8px}
.repair-time-input-row{display:flex;align-items:center;gap:var(--space-2)}
.repair-time-input-row .form-input{min-width:0;flex:1}
.repair-clear-time{flex:0 0 auto;padding:var(--space-2) var(--space-3);font-size:var(--text-xs);white-space:nowrap}
.maintenance-filters{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);flex:1}
.maintenance-filters .form-input{width:auto;min-width:170px}
.maintenance-status-filter{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
/* Reparaciones: modal de cita más cómodo */
.modal.modal-repair{
  max-width:900px;
}
.repair-appointment-row{
  grid-template-columns:minmax(130px,.75fr) minmax(220px,1.4fr) minmax(180px,1fr);
}

/* Fase 4.1: facturas vinculadas en reparaciones/presupuestos */
.linked-invoices-section{margin-top:var(--space-4)}
.linked-invoices-list{display:flex;flex-direction:column;gap:var(--space-2)}
.linked-invoice-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-2);align-items:center;padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}
.linked-invoice-main{text-align:left;min-width:0;white-space:normal;overflow-wrap:anywhere;font-size:var(--text-sm)}
.linked-invoice-unlink{white-space:nowrap;padding:var(--space-1) var(--space-2)}
.linked-invoices-actions{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-top:var(--space-3)}
.linked-invoices-empty{font-size:var(--text-sm);padding:var(--space-2) 0}

@media(min-width:768px){
  .detail-panel:has(.repair-detail-content),
  .detail-panel:has(.budget-detail-content){width:420px}
  .repair-detail-content .linked-invoices-actions,
  .budget-detail-content .linked-invoices-actions,
  .repair-detail-content .repair-detail-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:var(--space-2);
    width:100%;
  }
  .repair-detail-content .linked-invoices-actions .btn,
  .budget-detail-content .linked-invoices-actions .btn,
  .repair-detail-content .repair-detail-actions .btn{
    width:100%;
    min-width:0;
    justify-content:center;
    padding-left:var(--space-2);
    padding-right:var(--space-2);
  }
  .repair-detail-content .repair-detail-actions .repair-payment-reminder-btn{grid-column:1/-1}
  .repair-detail-content .repair-detail-actions-primary{margin-bottom:var(--space-3)}
  .budget-detail-content .budget-detail-actions{
    display:grid;
    gap:var(--space-2);
    width:100%;
  }
  .budget-detail-content .budget-detail-actions-three{grid-template-columns:repeat(3,minmax(0,1fr))}
  .budget-detail-content .budget-detail-actions-two{grid-template-columns:repeat(2,minmax(0,1fr))}
  .budget-detail-content .budget-detail-actions-four{grid-template-columns:repeat(2,minmax(0,1fr))}
  .budget-detail-content .budget-detail-actions-pairs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .budget-detail-content .budget-detail-actions-pairs .budget-action-wide{grid-column:1/-1}
  .budget-detail-content .budget-detail-actions-one{grid-template-columns:1fr}
  .budget-detail-content .budget-detail-actions .btn{
    width:100%;
    min-width:0;
    justify-content:center;
    padding-left:var(--space-2);
    padding-right:var(--space-2);
  }
}

/* Taller: ajustes responsive */
.maint-mobile-status{display:none!important}
@media (max-width: 767px) {
  .reparaciones-table tr { grid-template-columns: auto minmax(0,1fr) auto; }
  .reparaciones-table td:nth-child(1) { grid-column: 1 / 2; grid-row: 1; color: var(--color-text-muted); }
  .reparaciones-table td:nth-child(2) { grid-column: 2 / 3; grid-row: 1; }
  .reparaciones-table td:nth-child(6) { grid-column: 3 / 4; grid-row: 1; text-align: right !important; }
  .reparaciones-table td:nth-child(7) { display:none !important; }
  .reparaciones-table td:nth-child(3) { grid-column: 1 / 3; grid-row: 2; }
  .reparaciones-table td:nth-child(4) { grid-column: 1 / -1; grid-row: 3; max-width: none !important; white-space: normal !important; overflow: visible !important; }
  .reparaciones-table td:nth-child(5) { grid-column: 3 / 4; grid-row: 2; text-align:right !important; color: var(--color-text-muted); font-size: var(--text-xs); white-space:nowrap; align-self:start; }

  .presupuestos-table tr { grid-template-columns: auto minmax(0,1fr) auto; }
  .presupuestos-table td:nth-child(1) { grid-column: 1 / 2; grid-row: 1; color: var(--color-text-muted); }
  .presupuestos-table td:nth-child(2) { grid-column: 2 / 3; grid-row: 1; }
  .presupuestos-table td:nth-child(4) { grid-column: 3 / 4; grid-row: 1; text-align: right !important; }
  .presupuestos-table td:nth-child(3) { grid-column: 1 / -1; grid-row: 2; max-width: none !important; white-space: normal !important; overflow: visible !important; }
  .presupuestos-table td:nth-child(5) { grid-column: 1 / 3; grid-row: 3; color: var(--color-text-muted); font-size: var(--text-xs); text-align: left !important; }
  .presupuestos-table td:nth-child(6) { grid-column: 3 / 4; grid-row: 3; text-align: right !important; white-space: nowrap; }

  .contratos-table tr { grid-template-columns: minmax(0,1fr) auto; }
  .contratos-table td:nth-child(1) { grid-column: 1 / -1; grid-row: 1; }
  .contratos-table .maint-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-2)}
  .contratos-table .maint-mobile-status{display:inline-flex!important;flex-shrink:0}
  .contratos-table td:nth-child(2) { grid-column: 1 / 2; grid-row: 2; }
  .contratos-table td:nth-child(3) { grid-column: 2 / 3; grid-row: 2; text-align: right !important; color: var(--color-text-muted); }
  .contratos-table td:nth-child(4) { grid-column: 1 / -1; grid-row: 3; display:flex !important; align-items:center; justify-content:center; gap:var(--space-2); flex-wrap:wrap; }
  .contratos-table td:nth-child(4) .maint-desktop-status { display:none!important; }
  .contratos-table td:nth-child(4) .billing-indicators { margin-left:0; gap:var(--space-1); flex-wrap:wrap; justify-content:center; }
  .contratos-table td:nth-child(4).maint-no-billing { display:none!important; }
  .contratos-table td:nth-child(5) { display:none !important; }
}
/* Acciones de detalle en móvil */
@media (max-width: 767px) {
  .repair-detail-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-2);
  }
  .repair-detail-actions .btn {
    min-width: 0;
    width: 100%;
    padding-left:var(--space-2);
    padding-right:var(--space-2);
    justify-content: center;
    font-size:12px;
  }
  .repair-detail-actions .repair-payment-reminder-btn{grid-column:1/-1}
  .repair-detail-actions-primary{margin-bottom:var(--space-3)}
}

/* Calendario móvil: el mes ya se muestra en la barra superior */
/* Pulido tarjetas móviles tras quitar/compactar acciones en presupuestos y reparaciones */
@media (max-width: 768px) {
  .reparaciones-table th,
  .reparaciones-table td,
  .presupuestos-table th,
  .presupuestos-table td {
    width: auto !important;
  }

  .reparaciones-table tr,
  .presupuestos-table tr {
    align-items: start;
  }

  .reparaciones-table td:nth-child(2),
  .reparaciones-table td:nth-child(3),
  .reparaciones-table td:nth-child(4),
  .presupuestos-table td:nth-child(2),
  .presupuestos-table td:nth-child(3) {
    min-width: 0;
  }

  .reparaciones-table td:nth-child(4),
  .presupuestos-table td:nth-child(3) {
    line-height: 1.32;
  }

  .reparaciones-table td:nth-child(5),
  .presupuestos-table td:nth-child(4) {
    align-self: start;
    padding-top: 0 !important;
  }

  .reparaciones-table td:nth-child(6),
  .presupuestos-table td:nth-child(5),
  .presupuestos-table td:nth-child(6) {
    padding-bottom: 0 !important;
  }

  .presupuestos-table td:nth-child(6) .btn {
    padding: var(--space-1);
  }
}
@media (max-width: 767px){
  .modal.modal-repair{
    max-width:calc(100vw - 20px);
  }
  .repair-appointment-row{
    grid-template-columns:1fr;
  }
}

@media(max-width:767px){
  .linked-invoice-row{grid-template-columns:1fr;gap:var(--space-1)}
  .linked-invoice-unlink{justify-self:start;min-height:36px}
  .linked-invoices-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}
  .linked-invoices-actions .btn{min-width:0;min-height:40px;padding-left:var(--space-2);padding-right:var(--space-2);justify-content:center;font-size:12px}
  .budget-detail-actions{display:grid;gap:var(--space-2);width:100%}
  .budget-detail-actions-pairs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .budget-detail-actions-pairs .budget-action-wide{grid-column:1/-1}
  .budget-detail-actions-three{grid-template-columns:repeat(3,minmax(0,1fr))}
  .budget-detail-actions-one{grid-template-columns:1fr}
  .budget-detail-actions .btn{min-width:0;width:100%;padding-left:var(--space-2);padding-right:var(--space-2);justify-content:center;font-size:12px}
}

@media(max-width:767px){
  .maintenance-filters{width:100%;justify-content:flex-start;margin-bottom:0;flex-wrap:wrap;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}
  .maintenance-filters .form-input{width:100%;min-width:0}
  .maintenance-filters #maint-filter-type{grid-column:1/-1}
  .maintenance-status-filter{grid-column:1/-1;justify-content:center}
  #view-presupuestos .filter-bar,#view-reparaciones .filter-bar{justify-content:center}
  #view-presupuestos .module-list-toolbar,#view-reparaciones .module-list-toolbar{align-items:center}
  #view-mantenimientos .module-list-toolbar>.btn{width:100%;justify-content:center}
}
