/* Comercial › Contratos (2026-09-29): revisiones de grúas y plataformas y telemetría. */
.contract-head-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.contract-views{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0 10px}
.contract-views button{min-height:var(--ui-touch-target,44px);padding:0 14px;border:1px solid var(--line-control);border-radius:var(--radius,8px);background:var(--surface);color:var(--text);font-weight:700}
.contract-views button.active{border-color:var(--blue-dark);background:var(--blue-dark);color:var(--surface)}
.contract-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.contract-toolbar[hidden],.contract-head-actions [hidden]{display:none}
.contract-toolbar label{flex:1 1 260px}
.contract-toolbar input,.contract-toolbar select{width:100%;min-height:44px;padding:0 12px;border:1px solid var(--line-control);border-radius:var(--radius,8px);background:var(--surface);font:inherit}
.contract-toolbar select{width:auto;font-weight:600}
.contract-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:4px 0 14px}
.contract-summary article{padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius,8px);background:var(--surface)}
.contract-summary article span{display:block;color:var(--muted);font-size:12px;font-weight:700}
.contract-summary article strong{display:block;margin-top:4px;font-size:22px;font-variant-numeric:tabular-nums}
.contract-summary article.needs-attention{border-left:4px solid var(--red)}
.contract-list{display:grid;gap:10px}
.contract-row{display:grid;gap:5px;padding:14px;border:1px solid var(--line);border-left:4px solid var(--line-control);border-radius:var(--radius,8px);background:var(--surface)}
.contract-row.alert{border-left-color:var(--red)}
.contract-row.info{border-left-color:var(--turquoise)}
.contract-row.ok{border-left-color:var(--green)}
.contract-row header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}
.contract-row header .link-button{font-size:13px;font-weight:700}
.contract-row>strong{font-size:15px}
.contract-state{display:inline-block;padding:3px 8px;border-radius:var(--radius,8px);background:var(--thead);color:var(--muted);font-size:12px;font-weight:800}
.contract-state.alert{background:var(--red-soft);color:var(--red)}
.contract-state.info{background:var(--info-soft);color:var(--info)}
.contract-state.ok{background:var(--green-soft);color:var(--green)}
.contract-meta,.contract-contact{margin:0;color:var(--muted);font-size:13px}
.contract-contact a{color:var(--blue-dark);font-weight:700}
.contract-row-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.contract-late{color:var(--red)}
.contract-table-wrap{overflow-x:auto}
.contract-table{width:100%;border-collapse:collapse;background:var(--surface);font-size:13px}
.contract-table th,.contract-table td{padding:10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.contract-table thead th{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;background:var(--thead)}
.contract-table tbody tr{cursor:pointer}
.contract-table tbody tr:hover,.contract-table tbody tr:focus{background:var(--row-hover);outline:0}
.contract-detail-dialog{width:min(96vw,860px)}
.contract-new-dialog{width:min(96vw,760px)}
.contract-action-dialog{width:min(96vw,580px)}
.contract-detail-dialog .dialog-card header span,.contract-action-dialog .dialog-card header span,.contract-new-dialog .dialog-card header span{display:block;color:var(--blue-dark);font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.contract-notes{margin:0 0 12px;padding:10px 12px;border-left:3px solid var(--turquoise);background:var(--thead);white-space:pre-line}
.contract-assets{display:grid;gap:10px}
.contract-asset{padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius,8px);background:var(--surface)}
.contract-asset.retired{opacity:.7}
.contract-asset header{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;margin:0 0 4px}
.contract-asset-line{margin:0 0 4px}
.contract-history{margin-top:8px}
.contract-history summary{cursor:pointer;color:var(--blue-dark);font-size:13px;font-weight:700}
.contract-history ul{margin:6px 0 0;padding-left:18px;font-size:13px}
.contract-history li{margin:3px 0}
.contract-inline-actions{display:inline-flex;gap:10px;margin-left:6px}
.contract-billing.unbilled{color:var(--red);font-weight:700}
.contract-billing.billed{color:var(--green);font-weight:700}
.contract-billing.waived{color:var(--amber);font-weight:700}
.contract-prices{margin-top:14px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius,8px);background:var(--thead)}
.contract-prices header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin:0}
.contract-prices h3{margin:0;font-size:15px}
.contract-prices ul{margin:8px 0;padding-left:18px}
.contract-detail-footer,.contract-action-footer{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:16px}
.contract-intro{margin:0 0 12px;color:var(--muted);font-size:13px}
.contract-action-dialog label,.contract-new-dialog label{display:block;margin-bottom:10px;font-weight:700;font-size:13px}
.contract-action-dialog label small,.contract-new-dialog label small{display:block;color:var(--muted);font-weight:500}
.contract-action-dialog label span,.contract-new-dialog label span{font-weight:500;color:var(--muted)}
.contract-action-dialog input,.contract-action-dialog select,.contract-action-dialog textarea,.contract-new-dialog input:not([type=checkbox]):not([type=radio]),.contract-new-dialog select,.contract-new-dialog textarea{width:100%;min-height:44px;margin-top:4px;padding:8px 10px;border:1px solid var(--line-control);border-radius:var(--radius,8px);background:var(--surface);font:inherit}
.contract-action-dialog input[type=checkbox],.contract-action-dialog input[type=radio]{width:auto;min-height:0}
.contract-channel,.contract-kind{display:flex;flex-wrap:wrap;gap:14px;margin:0 0 12px;padding:0;border:0}
.contract-channel legend,.contract-kind legend{margin-bottom:6px;font-weight:800;font-size:13px}
.contract-new-customer{display:flex;flex-wrap:wrap;gap:10px;align-items:baseline;margin-bottom:12px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius,8px);background:var(--thead)}
.contract-new-customer span{color:var(--muted);font-size:13px}
.contract-new-results{display:grid;gap:4px;margin:-4px 0 12px}
.contract-new-results button{display:grid;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius,8px);background:var(--surface);text-align:left;color:var(--text)}
.contract-new-results button:hover{background:var(--row-hover)}
.contract-new-results span{color:var(--muted);font-size:12px}
.contract-new-vehicles h3{margin:6px 0 8px;font-size:15px}
.contract-new-vehicle{padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius,8px);margin-bottom:8px;background:var(--surface)}
.contract-new-vehicle fieldset{margin:8px 0 0;padding:0;border:0}
.contract-new-vehicle fieldset[disabled]{display:none}
.contract-new-vehicle-form{margin:8px 0 14px}
.contract-new-vehicle-form summary{cursor:pointer;color:var(--blue-dark);font-weight:700}
.directory-activity .customer-vehicle{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.customer-vehicle>div{display:grid;gap:2px;min-width:0}
.directory-activity .customer-vehicle .contract-state{display:inline-block;justify-self:start;width:auto;margin:2px 0;font-size:11px}
.directory-activity .customer-vehicle>.button{display:inline-flex;align-items:center;flex:0 0 auto;width:auto;padding:0 12px;border:1px solid var(--line-control);border-radius:var(--radius,8px);background:var(--surface);color:var(--blue-dark)}
.customer-vehicle.retired{opacity:.7}
.customer-contracts>.button{margin-top:8px}
.contract-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.contract-badge{padding:3px 8px;border-radius:var(--radius,8px);background:var(--info-soft);color:var(--info);font-size:12px;font-weight:800}
.contract-badge.telemetry{background:var(--green-soft);color:var(--green)}
@media(max-width:820px){
  .contract-detail-dialog,.contract-new-dialog,.contract-action-dialog{width:100vw;max-width:100vw;margin:0}
  .contract-detail-dialog .dialog-card,.contract-new-dialog .dialog-card,.contract-action-dialog .dialog-card{min-height:100dvh;border-radius:0;padding:16px}
  .contract-row-actions .button,.contract-detail-footer .button,.contract-action-footer .button{flex:1 1 auto}
  .contract-table thead{display:none}
  .contract-table tr{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line)}
  .contract-table th,.contract-table td{border:0;padding:6px 10px}
}
.contract-item-picker{margin-bottom:10px}
.contract-item-picker>label{display:block;margin-bottom:4px;font-weight:700;font-size:13px}
.contract-item-chosen{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:6px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius,8px);background:var(--thead)}
.contract-item-chosen span{color:var(--muted);font-size:13px}
.contract-item-results{display:grid;gap:4px;max-height:240px;overflow:auto;margin-top:6px}
.contract-item-results:empty{display:none}
.contract-item-results button{display:grid;gap:2px;padding:9px 12px;border:1px solid var(--line);border-radius:var(--radius,8px);background:var(--surface);color:var(--text);text-align:left}
.contract-item-results button:hover,.contract-item-results button:focus{background:var(--row-hover)}
.contract-item-results button span{color:var(--muted);font-size:12px}
.contract-revision-item{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-bottom:6px;padding:8px 12px;border:1px solid var(--line);border-radius:var(--radius,8px);background:var(--thead)}
.contract-revision-item>span{flex:1 1 160px;color:var(--muted);font-size:13px}
.contract-revision-item label{display:flex;align-items:center;gap:6px;font-size:13px}
.contract-revision-item input[type=number]{width:64px}
