.qbi-toast-stack{z-index:9999;pointer-events:none;flex-direction:column;gap:12px;width:min(420px,100vw - 32px);display:flex;position:fixed;top:92px;right:22px}.qbi-toast{pointer-events:auto;-webkit-backdrop-filter:blur(18px);background:#ffffffe6;border:1px solid #ffffffe0;border-radius:20px;grid-template-columns:42px 1fr 32px;align-items:flex-start;gap:12px;padding:14px;animation:.22s both qbiToastIn;display:grid;box-shadow:0 22px 70px #00367838}.qbi-toast-icon{width:42px;height:42px;color:var(--qbi-blue);background:#eaf4ffe6;border-radius:14px;place-items:center;display:grid}.qbi-toast.success .qbi-toast-icon{color:var(--qbi-success);background:#e9f8f0}.qbi-toast.error .qbi-toast-icon{color:var(--qbi-danger);background:#fff0ef}.qbi-toast.warning .qbi-toast-icon{color:#b97900;background:#fff7df}.qbi-toast.info .qbi-toast-icon{color:var(--qbi-blue);background:#eaf4ff}.qbi-toast-body strong{color:var(--qbi-text);font-size:14px;line-height:1.2;display:block}.qbi-toast-body span{color:var(--qbi-muted);margin-top:4px;font-size:13px;line-height:1.35;display:block}.qbi-toast-close{width:30px;height:30px;color:var(--qbi-muted);background:#ffffffb3;border:1px solid #b8d3efc2;border-radius:10px;place-items:center;display:grid}.qbi-confirm-overlay{z-index:9998;-webkit-backdrop-filter:blur(8px);background:#0f2a4647;place-items:center;padding:22px;display:grid;position:fixed;inset:0}.qbi-confirm-card{background:#ffffffeb;border:1px solid #ffffffe6;border-radius:24px;grid-template-columns:58px 1fr;gap:16px;width:min(470px,100%);padding:20px;animation:.2s both qbiConfirmIn;display:grid;box-shadow:0 34px 90px #00367847}.qbi-confirm-icon{color:#b97900;background:#fff7df;border-radius:18px;place-items:center;width:58px;height:58px;display:grid}.qbi-confirm-card.danger .qbi-confirm-icon{color:var(--qbi-danger);background:#fff0ef}.qbi-confirm-content h3{color:var(--qbi-blue);margin:0;font-size:20px}.qbi-confirm-content p{color:var(--qbi-muted);margin:7px 0 0;font-size:14px;line-height:1.45}.qbi-confirm-actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.qbi-soft-btn,.qbi-confirm-btn{border:0;border-radius:13px;min-height:40px;padding:0 15px;font-weight:800}.qbi-soft-btn{background:var(--qbi-blue-soft);color:var(--qbi-blue)}.qbi-confirm-btn{background:var(--qbi-blue);color:#fff;box-shadow:0 12px 22px #006fd63d}.qbi-notification-wrap{position:relative}.qbi-notification.active{background:var(--qbi-blue);color:#fff}.qbi-notification-panel{-webkit-backdrop-filter:blur(18px);z-index:100;background:#fffffff0;border:1px solid #ffffffdb;border-radius:22px;width:min(420px,100vw - 28px);animation:.18s both qbiConfirmIn;position:absolute;top:calc(100% + 12px);right:0;overflow:hidden;box-shadow:0 30px 90px #00367847}.qbi-notification-head{background:linear-gradient(90deg,#ffffffeb,#eaf4ffd9);border-bottom:1px solid #b8d3ef9e;justify-content:space-between;align-items:flex-start;gap:12px;padding:16px;display:flex}.qbi-notification-head h3{color:var(--qbi-blue);margin:0;font-size:17px}.qbi-notification-head p{color:var(--qbi-muted);margin:3px 0 0;font-size:12px}.qbi-notification-list{max-height:390px;padding:10px;overflow-y:auto}.qbi-notification-item{text-align:left;background:#ffffffbf;border:1px solid #b8d3efb3;border-radius:16px;grid-template-columns:10px 1fr;gap:10px;width:100%;margin-bottom:9px;padding:12px;transition:all .18s;display:grid}.qbi-notification-item:hover{box-shadow:var(--qbi-shadow-soft);transform:translateY(-1px)}.qbi-notification-dot{background:var(--qbi-blue);border-radius:50%;width:10px;height:10px;margin-top:4px}.qbi-notification-item.critica .qbi-notification-dot,.qbi-notification-item.error .qbi-notification-dot{background:var(--qbi-danger)}.qbi-notification-item.warning .qbi-notification-dot,.qbi-notification-item.alta .qbi-notification-dot{background:#f2a900}.qbi-notification-item strong{color:var(--qbi-text);font-size:13px;display:block}.qbi-notification-item span{color:var(--qbi-muted);margin-top:3px;font-size:12px;line-height:1.35;display:block}.qbi-notification-meta{flex-wrap:wrap;gap:6px;font-weight:800;color:var(--qbi-blue)!important;margin-top:8px!important;display:flex!important}.qbi-notification-empty{color:var(--qbi-muted);text-align:center;padding:28px 12px;font-size:13px}@keyframes qbiToastIn{0%{opacity:0;transform:translate(18px)scale(.98)}to{opacity:1;transform:translate(0)scale(1)}}@keyframes qbiConfirmIn{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=640px){.qbi-confirm-card{grid-template-columns:1fr}.qbi-confirm-actions{flex-direction:column}.qbi-confirm-actions button{width:100%}}.crud-page{flex-direction:column;gap:22px;display:flex}.crud-title{justify-content:space-between;align-items:center;gap:16px;display:flex}.crud-title h2{color:var(--qbi-blue);margin:0;font-size:30px}.crud-title p{color:var(--qbi-muted);margin:6px 0 0}.crud-title-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.crud-stats{grid-template-columns:repeat(2,260px);gap:16px;display:grid}.crud-stats article{box-shadow:var(--qbi-shadow);color:var(--qbi-blue);border-radius:20px;align-items:center;gap:14px;padding:18px;display:flex}.glass-stats article{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffff9e;border:1px solid #ffffffc2}.crud-stats span{color:var(--qbi-muted);font-size:13px;font-weight:800;display:block}.crud-stats strong{color:var(--qbi-text);font-size:28px;display:block}.crud-panel{border-radius:22px;padding:20px}.crud-toolbar{justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px;display:flex}.crud-search{width:100%;max-width:520px;height:44px;color:var(--qbi-muted);background:#ffffffc7;border:1px solid #b8d3efeb;border-radius:14px;align-items:center;gap:8px;padding:0 12px;display:flex}.crud-search input{width:100%;color:var(--qbi-text);background:0 0;border:0;outline:0}.qbi-table td small{color:var(--qbi-muted);margin-top:4px;font-size:12px;display:block}.text-center{text-align:center}.empty-table{text-align:center;color:var(--qbi-muted);padding:26px!important}.action-buttons{justify-content:center;gap:8px;display:flex}.action-btn{background:#ffffffc7;border:1px solid #b8d3efdb;border-radius:12px;place-items:center;width:36px;height:36px;transition:all .18s;display:grid}.action-btn:hover{box-shadow:var(--qbi-shadow-soft);transform:translateY(-1px)}.action-btn.edit{color:var(--qbi-blue)}.action-btn.delete,.action-btn.cancel{color:var(--qbi-danger)}.action-btn.save{color:var(--qbi-success)}.action-btn.flow{color:#7c3aed}.action-btn.flow:hover{background:#7c3aed1a}.status-badge.activo{color:var(--qbi-success);background:#e9f8f0}.status-badge.observado{color:#b97900;background:#fff7df}.status-badge.bloqueado{color:var(--qbi-danger);background:#fff0ef}.excel-wrapper{background:#ffffff61;border:1px solid #b8d3efc2;border-radius:18px}.excel-table{min-width:980px}.excel-table th{z-index:1;position:sticky;top:0}.excel-table td{vertical-align:middle}.excel-input{width:100%;min-width:120px;height:38px;color:var(--qbi-text);background:#fffffff0;border:1px solid #0070d838;border-radius:10px;outline:none;padding:0 10px;font-weight:600}.excel-input:focus{border-color:var(--qbi-blue);box-shadow:0 0 0 3px #0070d81f}.row-editing td{box-shadow:inset 0 1px #0070d817,inset 0 -1px #0070d817;background:#e8f6ffdb!important}.qbi-modal-overlay{-webkit-backdrop-filter:blur(8px);z-index:100;background:#0f2a4652;place-items:center;padding:22px;display:grid;position:fixed;inset:0}.qbi-modal{-webkit-backdrop-filter:blur(18px);background:#ffffffe0;border:1px solid #ffffffdb;border-radius:24px;width:min(760px,100%);overflow:hidden;box-shadow:0 32px 90px #00367847}.qbi-modal-header{border-bottom:1px solid var(--qbi-border);background:linear-gradient(90deg,#ffffffeb,#eaf4ffe0);justify-content:space-between;align-items:flex-start;gap:16px;padding:20px 22px;display:flex}.qbi-modal-header h3{color:var(--qbi-blue);margin:0;font-size:22px}.qbi-modal-header p{color:var(--qbi-muted);margin:4px 0 0;font-size:13px}.modal-close{border:1px solid var(--qbi-border);width:38px;height:38px;color:var(--qbi-danger);background:#ffffffe0;border-radius:12px;place-items:center;display:grid}.qbi-form{padding:22px}.floating-form{max-height:min(74vh,780px);overflow-y:auto}.form-section{background:#ffffff8a;border:1px solid #b8d3efad;border-radius:18px;margin-bottom:14px;padding:16px}.form-section h4{color:var(--qbi-text);border-bottom:1px dashed #b8d3efe6;margin:0 0 14px;padding-bottom:8px;font-size:15px}.qbi-form-row{flex-wrap:wrap;align-items:flex-start;gap:12px;display:flex}.qbi-field{min-width:100%;flex:100%;min-inline-size:0}.qbi-field.field-xs,.qbi-field.field-sm,.qbi-field.field-md,.qbi-field.field-lg,.qbi-field.field-xl{min-inline-size:0}.qbi-fl{min-width:0;position:relative}.qbi-fl input,.qbi-fl textarea,.qbi-fl select{width:100%;min-width:0;color:var(--qbi-text);background:#fffffff0;border:1px solid #c8d3df;border-radius:12px;outline:none;padding:18px 12px 8px;font-size:13px;transition:border-color .2s,box-shadow .2s,background .2s}.qbi-fl input,.qbi-fl select{height:46px}.qbi-fl textarea{resize:vertical;min-height:86px}.qbi-fl input:focus,.qbi-fl textarea:focus,.qbi-fl select:focus{border-color:var(--qbi-blue);background:#fff;box-shadow:0 0 0 3px #0070d81f}.qbi-fl label{color:var(--qbi-muted);pointer-events:none;white-space:nowrap;text-overflow:ellipsis;background:0 0;max-width:calc(100% - 24px);padding:0 4px;font-size:13px;line-height:1;transition:all .18s;position:absolute;top:50%;left:12px;overflow:hidden;transform:translateY(-50%)}.qbi-fl textarea+label{top:18px;transform:none}.qbi-fl input:focus+label,.qbi-fl input:not(:placeholder-shown)+label,.qbi-fl textarea:focus+label,.qbi-fl textarea:not(:placeholder-shown)+label,.qbi-fl select:focus+label,.qbi-fl select:valid+label{color:var(--qbi-blue);background:#fffffff0;font-size:11px;font-weight:800;top:0;transform:translateY(-50%)}.form-grid{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.form-grid label{color:var(--qbi-text);flex-direction:column;gap:7px;font-size:13px;font-weight:800;display:flex}.form-grid input,.form-grid select,.form-grid textarea{border:1px solid var(--qbi-border);color:var(--qbi-text);background:#fff;border-radius:13px;outline:none;padding:0 12px}.form-grid input,.form-grid select{height:44px}.form-grid textarea{resize:vertical;min-height:88px;padding:12px}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:var(--qbi-blue);box-shadow:0 0 0 3px #006fd61f}.span-2{grid-column:span 2}.form-error{color:var(--qbi-danger);background:#fff0ef;border:1px solid #ffc7c2;border-radius:14px;margin:18px 22px 0;padding:12px 14px;font-weight:800}.form-error.no-margin{margin:0}.form-success{color:var(--qbi-success);background:#e9f8f0;border:1px solid #b7ebce;border-radius:14px;padding:12px 14px;font-weight:900}.modal-actions{justify-content:flex-end;gap:12px;margin-top:18px;display:flex}.mysql-status{color:var(--qbi-blue);background:#eaf4ffc7;border:1px solid #cce5ff;border-radius:14px;align-items:center;gap:8px;margin-bottom:14px;padding:11px 13px;font-size:13px;display:flex}.status-badge.disponible{color:var(--qbi-success);background:#e9f8f0}.status-badge.reservado,.status-badge.pendiente{color:#b97900;background:#fff7df}.status-badge.alquilado,.status-badge.obra{color:var(--qbi-blue);background:#e9f2ff}.status-badge.revisión,.status-badge.mantenimiento{color:var(--qbi-danger);background:#fff0ef}@media (width>=700px){.qbi-field.field-xs{flex:calc(33.333% - 12px);min-width:120px}.qbi-field.field-sm{flex:calc(50% - 12px);min-width:170px}.qbi-field.field-md{flex:calc(50% - 12px);min-width:240px}.qbi-field.field-lg{flex:2 calc(66.666% - 12px);min-width:320px}.qbi-field.field-xl{flex:100%;min-width:100%}}@media (width>=1100px){.qbi-field.field-xs{flex:115px;min-width:115px;max-width:190px}.qbi-field.field-sm{flex:170px;min-width:160px}.qbi-field.field-md{flex:240px;min-width:220px}.qbi-field.field-lg{flex:2 340px;min-width:320px}.qbi-field.field-xl{flex:100%;min-width:100%}}@media (width<=780px){.crud-title,.crud-toolbar{flex-direction:column;align-items:flex-start}.crud-title-actions{justify-content:flex-start;width:100%}.crud-stats,.form-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}.modal-actions{flex-direction:column}.modal-actions button{justify-content:center;width:100%}}.qbi-modal-wide{width:min(1040px,100%)}.full-inline-btn{justify-content:center;width:100%;min-height:46px;margin-top:0}.mysql-status{color:var(--qbi-muted);border:1px solid var(--qbi-border);background:#ffffffb3;border-radius:12px;align-items:center;gap:8px;margin-bottom:14px;padding:9px 12px;font-size:13px;display:inline-flex}.no-margin{margin:0!important}.status-badge.pendiente,.status-badge.pendiente-de-firma,.status-badge.recibido{color:#b97900;background:#fff7df}.status-badge.confirmada,.status-badge.activo,.status-badge.cerrado,.status-badge.convertida-en-contrato{color:var(--qbi-success);background:#e9f8f0}.status-badge.cancelada,.status-badge.vencido,.status-badge.con-daño{color:var(--qbi-danger);background:#fff0ef}.status-badge.en-revisión,.status-badge.renovado{color:var(--qbi-blue);background:#eaf4ff}.cotizacion-stats{grid-template-columns:repeat(4,minmax(190px,1fr))}.qbi-modal-xl{flex-direction:column;width:min(1240px,100%);max-height:calc(100vh - 34px);display:flex;overflow:hidden}.qbi-modal-xl .qbi-form{overflow:auto}.quote-section{background:#ffffff70;border:1px solid #b8d3efc2;border-radius:18px;margin-bottom:14px;padding:14px}.quote-section h4{color:var(--qbi-blue);margin:0 0 12px;font-size:16px}.quote-section-header{justify-content:space-between;align-items:center;gap:14px;margin-bottom:12px;display:flex}.quote-section-header h4{margin:0}.quote-section-header p{color:var(--qbi-muted);margin:4px 0 0;font-size:13px}.quote-commercial-section{padding:16px}.quote-commercial-header{align-items:flex-start;margin-bottom:14px}.quote-commercial-badges{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.quote-commercial-badges span{min-height:34px;color:var(--qbi-blue);background:#eaf4ffdb;border:1px solid #b8d3efe0;border-radius:999px;align-items:center;padding:0 12px;font-size:12px;font-weight:800;display:inline-flex}.quote-commercial-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:12px;display:grid}.quote-commercial-grid .qbi-field{min-width:0}.quote-commercial-grid .quote-field-client,.quote-commercial-grid .quote-field-work,.quote-commercial-grid .quote-field-code{grid-column:span 6}.quote-commercial-grid .quote-field-date,.quote-commercial-grid .quote-field-status{grid-column:span 3}.quote-commercial-grid .quote-field-notes{grid-column:1/-1}.quote-commercial-grid .qbi-fl textarea{min-height:96px}.quote-items-table{max-height:340px;overflow:auto}.quote-items-table .excel-table{min-width:1120px}.excel-description{min-width:260px}.excel-small{min-width:80px}.excel-num{min-width:76px}.excel-money{min-width:110px}.quote-totals{flex-wrap:wrap;justify-content:flex-end;gap:12px;margin-top:12px;display:flex}.quote-totals div{min-width:170px;box-shadow:var(--qbi-shadow-soft);background:#ffffff9e;border:1px solid #b8d3efc2;border-radius:16px;padding:12px 14px}.quote-totals span{color:var(--qbi-muted);font-size:12px;font-weight:800;display:block}.quote-totals strong{color:var(--qbi-text);margin-top:4px;font-size:21px;display:block}.quote-total-final{color:#fff;background:linear-gradient(135deg,#0070d8f0,#38bdf8d1)!important}.quote-total-final span,.quote-total-final strong{color:#fff}.status-badge.borrador{color:#475569;background:#eef2f7}.status-badge.enviada{color:var(--qbi-blue);background:#e9f2ff}.status-badge.aprobada{color:var(--qbi-success);background:#e9f8f0}.status-badge.rechazada,.status-badge.vencida{color:var(--qbi-danger);background:#fff0ef}@media (width<=980px){.quote-commercial-header{flex-direction:column}.quote-commercial-badges{justify-content:flex-start}.quote-commercial-grid .quote-field-client,.quote-commercial-grid .quote-field-work,.quote-commercial-grid .quote-field-code,.quote-commercial-grid .quote-field-date,.quote-commercial-grid .quote-field-status{grid-column:span 12}}@media (width<=1100px){.cotizacion-stats{grid-template-columns:repeat(2,1fr)}}@media (width<=700px){.cotizacion-stats{grid-template-columns:1fr}.quote-section-header{flex-direction:column;align-items:flex-start}.quote-totals{justify-content:stretch}.quote-totals div{width:100%}}.action-btn.print{color:var(--qbi-blue)}.checklist-wrapper{max-height:300px;overflow:auto}.checklist-table{min-width:820px}.checklist-table th:first-child,.checklist-table td:first-child{min-width:280px}.checklist-table th:nth-child(2),.checklist-table td:nth-child(2){width:120px}.checklist-table th:nth-child(3),.checklist-table td:nth-child(3){min-width:300px}.acta-overlay{align-items:flex-start;overflow-y:auto}.acta-modal{background:#fff;margin:18px auto}.acta-body{background:#fff}.acta-title{border:1px solid var(--qbi-border);color:var(--qbi-blue);background:var(--qbi-blue-soft);border-radius:16px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px;padding:14px 16px;display:flex}.acta-title strong{font-size:20px}.acta-grid{grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:18px;display:grid}.acta-grid div{border:1px solid var(--qbi-border);background:#fff;border-radius:14px;padding:12px}.acta-grid b,.acta-grid span{display:block}.acta-grid b{color:var(--qbi-blue);margin-bottom:4px}.acta-table{border-collapse:collapse;width:100%;margin:10px 0 18px}.acta-table th,.acta-table td{border:1px solid var(--qbi-border);text-align:left;padding:10px;font-size:13px}.acta-table th{background:var(--qbi-blue-soft);color:var(--qbi-blue)}.acta-firmas{grid-template-columns:repeat(2,1fr);gap:30px;margin-top:42px;display:grid}.acta-firmas div{border-top:1px solid var(--qbi-text);text-align:center;padding-top:10px}.acta-firmas span,.acta-firmas b{display:block}@media (width<=760px){.acta-grid,.acta-firmas{grid-template-columns:1fr}}@media print{body *{visibility:hidden!important}.acta-print,.acta-print *{visibility:visible!important}.acta-actions{display:none!important}.acta-print{background:#fff;width:100%;position:absolute;inset:0}.qbi-modal-overlay,.acta-modal{width:100%!important;max-width:none!important;box-shadow:none!important;background:#fff!important;border:0!important;display:block!important;position:static!important;inset:auto!important}}.equipos-stats{grid-template-columns:repeat(4,minmax(190px,1fr))}.equipos-toolbar{align-items:stretch}.equipos-filter{min-width:190px;max-width:220px}.equipos-table-wrapper{overflow:auto}.equipos-table{min-width:1320px}.sticky-modal-actions{z-index:2;border-top:1px solid var(--qbi-border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffeb;margin-bottom:-22px;margin-left:-22px;margin-right:-22px;padding:14px 22px;position:sticky;bottom:-22px}.status-badge.en-obra,.status-badge.pendiente-devolucion{color:var(--qbi-blue);background:#e9f2ff}.status-badge.en-revision,.status-badge.en-mantenimiento{color:var(--qbi-danger);background:#fff0ef}.status-badge.baja,.status-badge.devuelto{color:var(--qbi-muted);background:#f1f4f7}.equipos-detail{max-height:min(74vh,760px);overflow-y:auto}.equipment-detail-grid{grid-template-columns:repeat(3,minmax(170px,1fr));gap:12px;display:grid}.equipment-detail-grid>div{color:var(--qbi-text);background:#ffffffad;border:1px solid #b8d3efad;border-radius:14px;flex-direction:column;gap:5px;padding:12px;display:flex}.equipment-detail-grid svg{color:var(--qbi-blue)}.equipment-detail-grid b{color:var(--qbi-muted);text-transform:uppercase;letter-spacing:.03em;font-size:12px}.equipment-detail-grid span:not(.status-badge){color:var(--qbi-text);font-weight:900}.equipment-text{color:var(--qbi-text);margin:8px 0;line-height:1.55}@media (width<=1120px){.equipos-stats{grid-template-columns:repeat(2,minmax(180px,1fr))}.equipment-detail-grid{grid-template-columns:repeat(2,minmax(160px,1fr))}}@media (width<=720px){.equipos-toolbar{flex-direction:column}.equipos-filter{width:100%;max-width:100%}.equipos-stats,.equipment-detail-grid{grid-template-columns:1fr}}.qbi-stats-5{grid-template-columns:repeat(5,minmax(170px,1fr))}.obras-toolbar{align-items:stretch}.toolbar-select{min-width:190px;height:44px;color:var(--qbi-text);background:#ffffffd1;border:1px solid #b8d3efeb;border-radius:14px;outline:none;padding:0 12px;font-weight:800}.toolbar-select:focus{border-color:var(--qbi-blue);box-shadow:0 0 0 3px #0070d81f}.obras-table-wrapper{overflow:auto}.obras-table{min-width:1480px}.status-badge.activa{color:var(--qbi-success);background:#e9f8f0}.status-badge.pausada{color:#b97900;background:#fff7df}.status-badge.finalizada{color:var(--qbi-blue);background:#e9f2ff}.status-badge.cancelada{color:var(--qbi-danger);background:#fff0ef}.sticky-actions{z-index:2;border-top:1px solid var(--qbi-border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffeb;margin-bottom:-22px;margin-left:-22px;margin-right:-22px;padding:14px 22px;position:sticky;bottom:-22px}.detail-grid{grid-template-columns:repeat(4,minmax(170px,1fr));gap:12px;padding:18px 22px 8px;display:grid}.detail-grid article{color:var(--qbi-text);background:#ffffffad;border:1px solid #b8d3efad;border-radius:14px;flex-direction:column;gap:5px;padding:12px;display:flex}.detail-grid svg{color:var(--qbi-blue)}.detail-grid span{color:var(--qbi-muted);text-transform:uppercase;letter-spacing:.03em;font-size:12px;font-weight:900}.detail-grid strong{color:var(--qbi-text);font-size:16px}.detail-grid small{color:var(--qbi-muted)}.detail-body{grid-template-columns:repeat(2,minmax(220px,1fr));gap:14px;padding:14px 22px 22px;display:grid}.detail-body>div{background:#ffffff8f;border:1px solid #b8d3efad;border-radius:16px;padding:14px}.detail-body h4{color:var(--qbi-blue);margin:0 0 10px}.detail-body p{color:var(--qbi-text);margin:6px 0;line-height:1.5}@media (width<=1180px){.qbi-stats-5{grid-template-columns:repeat(2,minmax(180px,1fr))}.obras-toolbar{flex-direction:column}.toolbar-select{width:100%}.detail-grid{grid-template-columns:repeat(2,minmax(160px,1fr))}}@media (width<=720px){.qbi-stats-5,.detail-grid,.detail-body{grid-template-columns:1fr}}.quote-advanced-modal{width:min(1480px,100%)}.quote-advanced-table{max-height:470px}.quote-advanced-table .excel-table{min-width:1480px}.quote-rules-row td{border-bottom:1px solid #b8d3efb8;background:#f8fbffd1!important}.quote-rules-grid{grid-template-columns:repeat(6,minmax(150px,1fr));gap:10px;padding:8px 2px 4px;display:grid}.quote-rules-grid label{color:var(--qbi-muted);letter-spacing:.01em;flex-direction:column;gap:5px;font-size:11px;font-weight:800;display:flex}.quote-rules-grid input,.quote-rules-grid select{width:100%;height:35px;color:var(--qbi-text);background:#ffffffe6;border:1px solid #b8d3efeb;border-radius:10px;outline:none;padding:0 10px;font-weight:750}.quote-rules-summary{flex-wrap:wrap;gap:8px;padding:8px 2px 2px;display:flex}.quote-rules-summary span{color:var(--qbi-blue);background:#eaf4ffe6;border-radius:999px;align-items:center;gap:5px;padding:6px 9px;font-size:12px;font-weight:800;display:inline-flex}.quote-warning{margin-top:3px;font-weight:900;display:block;color:var(--qbi-danger)!important}.quote-auth-warning{align-items:center;gap:8px;display:flex}.quote-advanced-totals{justify-content:flex-start}.quote-advanced-totals div{min-width:152px}.quote-advanced-totals strong{font-size:18px}@media (width<=1280px){.quote-rules-grid{grid-template-columns:repeat(3,minmax(150px,1fr))}}@media (width<=760px){.quote-rules-grid{grid-template-columns:1fr}}.action-buttons a.action-btn{text-decoration:none}.fase2-page .glass-panel{overflow:visible}.fase2-form-panel{border:1px solid #3b82f629;margin-bottom:18px;padding:20px}.fase2-form-head{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:16px;display:flex}.fase2-form-head strong{color:#0f172a;font-size:1.08rem;display:block}.fase2-form-head span{color:#64748b;margin-top:4px;font-size:.9rem;display:block}.fase2-split{grid-template-columns:minmax(320px,.78fr) minmax(420px,1.22fr);align-items:start;gap:18px;display:grid}.fase2-detail-panel{position:sticky;top:86px}.fase2-list{gap:10px;max-height:calc(100vh - 315px);padding-right:4px;display:grid;overflow:auto}.fase2-list-item{text-align:left;cursor:pointer;background:#ffffffd1;border:1px solid #94a3b840;border-radius:18px;justify-content:space-between;align-items:center;gap:12px;padding:14px;transition:all .18s;display:flex}.fase2-list-item:hover,.fase2-list-item.active{border-color:#0ea5e973;transform:translateY(-1px);box-shadow:0 12px 30px #0ea5e91f}.fase2-list-item strong,.agenda-info strong{color:#0f172a;display:block}.fase2-list-item span,.agenda-info span{color:#64748b;margin-top:4px;font-size:.86rem;display:block}.fase2-med-panel{background:#0f172a09;border:1px solid #94a3b833;border-radius:20px;margin-top:18px;padding:16px}.fase2-med-panel h3{color:#0f172a;margin:0 0 12px}.fase2-measure-grid{grid-template-columns:repeat(4,minmax(115px,1fr));align-items:center;gap:10px;display:grid}.fase2-measure-grid input{background:#fff;border:1px solid #94a3b861;border-radius:13px;outline:none;width:100%;padding:11px 12px}.fase2-med-list{gap:10px;margin-top:14px;display:grid}.fase2-med-list article{background:#fff;border:1px solid #94a3b838;border-radius:16px;padding:12px}.fase2-med-list strong,.fase2-med-list span,.fase2-med-list p{margin:0;display:block}.fase2-med-list strong{color:#0f172a;font-size:.88rem}.fase2-med-list span,.fase2-med-list p{color:#64748b;margin-top:5px;font-size:.86rem}.agenda-day{padding:12px 0}.agenda-day h3{color:#0f172a;margin:0 0 12px;font-size:1rem}.agenda-list{gap:10px;display:grid}.agenda-card{background:#ffffffd1;border:1px solid #94a3b838;border-radius:18px;grid-template-columns:88px minmax(230px,1fr) auto auto;align-items:center;gap:14px;padding:14px;display:grid}.agenda-time{color:#075985;background:linear-gradient(135deg,#0ea5e91f,#2563eb1a);border-radius:15px;align-content:center;justify-items:center;min-height:62px;display:grid}.agenda-time strong{font-size:1.15rem}.agenda-time span{font-size:.78rem}.agenda-info p{color:#475569;margin:5px 0 0;font-size:.9rem}.fase2-sign-box{grid-template-columns:repeat(2,minmax(180px,1fr));gap:14px;margin-top:8px;display:grid}.fase2-sign-box>div{color:#1e3a8a;background:#eff6ff8c;border:1px dashed #3b82f661;border-radius:18px;align-content:center;justify-items:center;gap:8px;min-height:96px;display:grid}.fase2-sign-box span{color:#64748b;font-size:.9rem}.status-badge.finalizado-conforme,.status-badge.cerrado,.status-badge.cerrada,.status-badge.atendido,.status-badge.finalizada{color:#15803d;background:#16a34a1f}.status-badge.en-proceso,.status-badge.en-ejecucion,.status-badge.en-camino,.status-badge.en-sitio,.status-badge.programado,.status-badge.programada{color:#0369a1;background:#0ea5e91f}.status-badge.pendiente,.status-badge.registrada,.status-badge.pendiente-de-cotizacion,.status-badge.requiere-cotizacion{color:#b45309;background:#f59e0b24}.status-badge.cancelada,.status-badge.no-reparado,.status-badge.observada{color:#b91c1c;background:#ef44441f}@media (width<=1100px){.fase2-split{grid-template-columns:1fr}.fase2-detail-panel{position:relative;top:auto}.agenda-card{grid-template-columns:80px minmax(0,1fr)}.agenda-card .status-badge,.agenda-card .action-buttons{grid-column:2}}@media (width<=760px){.fase2-measure-grid,.fase2-sign-box{grid-template-columns:1fr}}.fase3-head-inline{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.fase3-head-inline h3{color:var(--qbi-blue);margin:0}.fase3-items-list{flex-direction:column;gap:10px;display:flex}.fase3-item{background:#ffffff94;border:1px solid #b8d3efa8;border-radius:16px;grid-template-columns:130px minmax(220px,1fr) 80px 80px 100px 90px 110px 46px;align-items:center;gap:8px;padding:10px;display:grid}.fase3-item input,.fase3-item select{width:100%;color:var(--qbi-text);background:#ffffffe6;border:1px solid #95b7dbcc;border-radius:12px;outline:none;padding:10px 11px;font-weight:800}.fase3-item strong{color:var(--qbi-blue);text-align:right}.fase3-totals{background:#0070d80f;border:1px solid #b8d3efb3;border-radius:18px;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;margin-top:12px;padding:14px;display:flex}.fase3-totals span{color:var(--qbi-muted);font-weight:800}.fase3-totals strong{color:var(--qbi-blue);font-size:16px}.small-stats{grid-template-columns:repeat(4,minmax(130px,1fr));margin-bottom:14px}.fase3-timeline{flex-direction:column;gap:10px;display:flex}.fase3-timeline article{background:#ffffff94;border:1px solid #b8d3efa8;border-radius:18px;grid-template-columns:112px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;display:grid}.fase3-timeline i{color:var(--qbi-blue);text-align:center;background:#0070d81a;border-radius:999px;padding:8px 10px;font-style:normal;font-weight:900}.fase3-timeline strong{color:var(--qbi-text);display:block}.fase3-timeline span{color:var(--qbi-muted);font-size:13px;font-weight:800}.fase3-timeline p{color:var(--qbi-muted);margin:4px 0 0}.qbi-soft-btn.danger{color:var(--qbi-danger);border-color:#e5483e47}@media (width<=1200px){.fase3-item{grid-template-columns:1fr 1fr}.fase3-item strong{text-align:left}}@media (width<=760px){.small-stats{grid-template-columns:1fr 1fr}.fase3-timeline article{grid-template-columns:1fr}}.agenda-form-panel{padding:22px 24px 24px}.agenda-form-grid{gap:16px;display:grid}.agenda-form-section{background:#ffffff94;border:1px solid #94a3b83d;border-radius:18px;padding:18px 18px 16px;position:relative}.agenda-form-section-wide{grid-column:1/-1}.agenda-section-title{color:#0369a1;background:linear-gradient(90deg,#fffffffa,#eef8fffa);border:1px solid #7dd3fc59;border-radius:999px;padding:2px 8px;font-size:.78rem;font-weight:900;position:absolute;top:-10px;left:18px}.agenda-grid{align-items:start;gap:14px;display:grid}.agenda-grid-two{grid-template-columns:repeat(2,minmax(260px,1fr))}.agenda-grid-three{grid-template-columns:minmax(260px,1.15fr) minmax(180px,.85fr) minmax(260px,1fr)}.agenda-time-grid{grid-template-columns:repeat(3,minmax(220px,1fr))}.agenda-helper{color:#b45309;margin:10px 0 0;font-size:.88rem;font-weight:700}.agenda-duration-chip{color:#075985;background:#e0f2fe8c;border:1px solid #0ea5e938;border-radius:999px;align-items:center;gap:8px;margin-top:12px;padding:8px 12px;font-size:.88rem;display:inline-flex}.agenda-duration-chip strong{color:#0f172a}.agenda-actions-row{justify-content:flex-end;margin-top:0}.agenda-info small{color:#0369a1;align-items:center;gap:5px;margin-top:7px;font-size:.82rem;font-weight:800;display:inline-flex}@media (width<=1180px){.agenda-grid-two,.agenda-grid-three,.agenda-time-grid{grid-template-columns:1fr}}.fase2-page .service-stats{align-items:stretch;width:100%;grid-template-columns:repeat(4,minmax(170px,1fr))!important}.fase2-page .service-stats article{min-width:0;height:100%}@media (width<=980px){.fase2-page .service-stats{grid-template-columns:repeat(2,minmax(170px,1fr))!important}}@media (width<=560px){.fase2-page .service-stats{grid-template-columns:1fr!important}}.agenda-advanced-page{gap:18px;display:grid}.agenda-title-row{margin-bottom:0}.agenda-advanced-toolbar,.agenda-filter-panel,.agenda-board-panel{padding:16px 18px}.agenda-advanced-toolbar{grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;display:grid}.agenda-month-nav,.agenda-view-switch,.agenda-toolbar-actions{align-items:center;gap:8px;display:flex}.agenda-toolbar-actions{justify-content:flex-end}.agenda-month-nav strong{text-transform:capitalize;color:#0f172a;min-width:150px}.agenda-month-nav button,.agenda-view-switch button,.agenda-view-switch select{color:#334155;cursor:pointer;background:#ffffffe6;border:1px solid #94a3b859;border-radius:12px;justify-content:center;align-items:center;gap:6px;padding:10px 12px;font-weight:700;display:inline-flex}.agenda-view-switch button.active{color:#1d4ed8;background:#dbeafee6;border-color:#2563eb73}.agenda-filter-panel{grid-template-columns:minmax(280px,1fr) 220px 260px;align-items:center;gap:14px;display:grid}.agenda-calendar-grid{background:#ffffffa3;border-top:1px solid #94a3b83d;border-left:1px solid #94a3b83d;border-radius:18px;grid-template-columns:repeat(7,minmax(135px,1fr));margin-top:14px;display:grid;overflow:visible}.agenda-week-label{text-align:center;color:#94a3b8;background:#f1f5f9eb;border-bottom:1px solid #94a3b83d;border-right:1px solid #94a3b83d;padding:12px;font-size:.82rem;font-weight:800}.agenda-day-cell{text-align:left;cursor:pointer;background:#ffffffb8;border:1px solid #94a3b838;border-top:0;border-left:0;min-height:154px;padding:26px 8px 8px;position:relative;overflow:visible}.agenda-day-cell:hover,.agenda-day-cell.selected{background:#eff6fff5}.agenda-day-cell.outside{color:#94a3b8;background:#f8fafcb3}.agenda-day-number{color:#3b82f6;font-size:.86rem;font-weight:800;position:absolute;top:7px;left:9px}.agenda-day-add{opacity:0;color:#fff;background:#0ea5e9;border-radius:999px;place-items:center;width:22px;height:22px;font-weight:900;transition:all .18s;display:grid;position:absolute;top:5px;right:8px}.agenda-day-cell:hover .agenda-day-add{opacity:1}.agenda-day-events{gap:5px;display:grid}.agenda-cal-event{color:#1e3a8a;text-align:left;cursor:pointer;background:#2563eb17;border:0;border-radius:10px;grid-template-columns:9px minmax(0,1fr);align-items:center;gap:6px;width:100%;padding:6px 8px;display:grid;position:relative}.agenda-cal-event strong{white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;overflow:hidden}.agenda-cal-event small{color:#64748b;grid-column:2;font-size:.72rem}.agenda-event-dot{background:#2563eb;border-radius:999px;width:9px;height:9px}.agenda-cal-event.status-pendiente,.agenda-cal-event.status-programado,.agenda-cal-event.status-programada{color:#92400e;background:#f59e0b21}.agenda-cal-event.status-pendiente .agenda-event-dot,.agenda-cal-event.status-programado .agenda-event-dot,.agenda-cal-event.status-programada .agenda-event-dot{background:#f59e0b}.agenda-cal-event.status-en-camino,.agenda-cal-event.status-en-sitio{color:#075985;background:#0ea5e924}.agenda-cal-event.status-en-camino .agenda-event-dot,.agenda-cal-event.status-en-sitio .agenda-event-dot{background:#0284c7}.agenda-cal-event.status-atendido{color:#166534;background:#16a34a21}.agenda-cal-event.status-atendido .agenda-event-dot{background:#16a34a}.agenda-cal-event.status-cancelado,.agenda-cal-event.status-no-atendido{color:#991b1b;background:#ef44441f}.agenda-cal-event.status-cancelado .agenda-event-dot,.agenda-cal-event.status-no-atendido .agenda-event-dot{background:#ef4444}.agenda-tooltip{z-index:30;color:#334155;background:#fff;border:1px solid #94a3b840;border-radius:14px;min-width:270px;padding:12px 14px;font-size:.82rem;line-height:1.7;display:none;position:absolute;bottom:calc(100% + 10px);left:12px;box-shadow:0 18px 45px #0f172a38}.agenda-cal-event:hover .agenda-tooltip{display:block}.agenda-more{color:#64748b;padding-left:8px;font-weight:800}.agenda-day-view header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px;display:flex}.agenda-day-view h3{text-transform:capitalize;color:#0f172a;margin:0}.agenda-line-item{cursor:pointer}.agenda-line-item:hover{border-color:#0ea5e966;box-shadow:0 12px 32px #0ea5e91f}.agenda-detail-overlay{z-index:2000;background:#0f172a73;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.agenda-detail-modal{background:#fff;border-radius:20px;grid-template-rows:auto auto minmax(320px,1fr) auto;width:min(1120px,96vw);max-height:92vh;display:grid;overflow:hidden;box-shadow:0 28px 80px #0f172a59}.agenda-detail-head{color:#fff;background:linear-gradient(135deg,#1668d8,#27b9ea);justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.agenda-detail-head span{opacity:.86;font-size:.86rem;display:block}.agenda-detail-head strong{font-size:1.18rem}.agenda-detail-head button{color:#fff;cursor:pointer;background:#ffffff29;border:0;border-radius:12px;width:38px;height:38px}.agenda-detail-tabs{background:#f8fafce0;border-bottom:1px solid #94a3b838;gap:12px;padding:0 20px;display:flex}.agenda-detail-tabs button{color:#475569;cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;padding:16px 8px 13px;font-weight:800}.agenda-detail-tabs button.active{color:#2563eb;border-color:#2563eb}.agenda-detail-body{padding:22px;overflow:auto}.agenda-detail-grid{grid-template-columns:repeat(2,minmax(260px,1fr));gap:15px 30px;display:grid}.agenda-info-row{color:#456477;grid-template-columns:22px auto 1fr;align-items:center;gap:6px;display:grid}.agenda-info-row svg{color:#0f74d5}.agenda-info-row span{font-weight:800}.agenda-info-row strong{color:#334155;font-weight:700}.agenda-info-row.wide{grid-column:1/-1}.agenda-monitor-panel{gap:22px;display:grid}.agenda-monitor-steps{grid-template-columns:repeat(4,minmax(120px,1fr));align-items:start;gap:10px;display:grid}.monitor-step{text-align:center;color:#64748b;justify-items:center;gap:6px;display:grid;position:relative}.monitor-step span{background:#fff;border:3px solid #cbd5e1;border-radius:999px;width:22px;height:22px}.monitor-step.done span{background:#16a34a;border-color:#16a34a;box-shadow:0 0 0 5px #16a34a1f}.monitor-step strong{color:#0f172a}.monitor-step small{min-height:18px}.agenda-monitor-actions,.agenda-detail-actions,.agenda-empty-tab div{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.agenda-monitor-actions button,.agenda-detail-actions button,.qbi-warning-btn,.qbi-danger-btn{cursor:pointer;border:0;border-radius:13px;align-items:center;gap:7px;padding:11px 14px;font-weight:900;display:inline-flex}.agenda-monitor-actions button{color:#1d4ed8;background:#dbeafee6}.agenda-events-log{border-top:1px solid #94a3b838;gap:9px;padding-top:16px;display:grid}.agenda-events-log>strong{color:#0f172a}.agenda-events-log article{background:#f8fafce0;border:1px solid #94a3b82e;border-radius:14px;padding:12px}.agenda-events-log span,.agenda-events-log small,.agenda-events-log p{display:block}.agenda-events-log span{color:#0f172a;font-weight:900}.agenda-events-log small,.agenda-events-log p{color:#64748b;margin-top:4px}.agenda-table-lite table{border-collapse:collapse;width:100%}.agenda-table-lite th,.agenda-table-lite td{text-align:left;border:1px solid #94a3b838;padding:14px}.agenda-table-lite th{color:#64748b;background:#f8fafce6}.agenda-empty-tab{text-align:center;color:#64748b;place-items:center;gap:10px;min-height:220px;display:grid}.agenda-empty-tab strong{color:#0f172a;font-size:1.05rem}.agenda-values-grid{gap:16px;display:grid}.agenda-values-grid article{background:#f8fafcb8;border:1px solid #94a3b838;border-radius:16px;padding:15px}.agenda-values-grid h4,.agenda-values-grid p{margin:0}.agenda-values-grid p{color:#64748b;text-align:center;padding:24px}.agenda-values-grid strong{text-align:right;color:#0f172a;display:block}.agenda-detail-actions{background:#f8fafce6;border-top:1px solid #94a3b838;justify-content:flex-end;padding:16px 20px}.qbi-warning-btn{color:#fff;background:#f59e0b}.qbi-danger-btn{color:#fff;background:#ef4444}@media (width<=1200px){.agenda-advanced-toolbar,.agenda-filter-panel{grid-template-columns:1fr}.agenda-toolbar-actions{justify-content:flex-start}.agenda-calendar-grid{grid-template-columns:repeat(7,minmax(110px,1fr));overflow-x:auto}}@media (width<=820px){.agenda-detail-grid,.agenda-monitor-steps{grid-template-columns:1fr}.agenda-detail-modal{width:98vw}.agenda-calendar-grid{display:block}.agenda-week-label{display:none}.agenda-day-cell{width:100%;min-height:130px;display:block}}.agenda-task-modal-overlay{z-index:2100;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0f172a7a;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.agenda-task-modal{border-radius:24px;grid-template-rows:auto minmax(0,1fr) auto;width:min(1120px,96vw);max-height:92vh;padding:0;display:grid;overflow:hidden;box-shadow:0 28px 84px #0f172a57}.agenda-task-modal-head{color:#fff;background:linear-gradient(135deg,#1274d8fa,#25b9eaf5);justify-content:space-between;align-items:flex-start;gap:16px;padding:20px 24px;display:flex}.agenda-task-modal-head span{letter-spacing:.05em;text-transform:uppercase;opacity:.82;margin-bottom:4px;font-size:.82rem;font-weight:900;display:inline-flex}.agenda-task-modal-head strong{font-size:1.34rem;line-height:1.2;display:block}.agenda-task-modal-head p{color:#ffffffdb;margin:6px 0 0;font-weight:600}.agenda-task-modal-head .modal-close{color:#fff;cursor:pointer;background:#ffffff29;border:0;border-radius:14px;flex:none;place-items:center;width:38px;height:38px;display:grid}.agenda-task-modal-body{background:linear-gradient(#f8fafcfa,#fffffffa);padding:22px 24px 10px;overflow:auto}.agenda-task-modal .agenda-form-grid{gap:16px}.agenda-task-modal .agenda-form-section{box-shadow:none;background:#ffffffd6;border:1px solid #94a3b838}.agenda-task-modal-footer{background:#f8fafcfa;border-top:1px solid #94a3b838;justify-content:flex-end;gap:10px;padding:16px 24px;display:flex}@media (width<=820px){.agenda-task-modal-overlay{padding:10px}.agenda-task-modal{border-radius:18px;width:100%;max-height:96vh}.agenda-task-modal-head,.agenda-task-modal-body,.agenda-task-modal-footer{padding-left:16px;padding-right:16px}.agenda-task-modal-footer{flex-direction:column-reverse}.agenda-task-modal-footer button{justify-content:center;width:100%}}.agenda-stats-row{align-items:stretch;width:100%;grid-template-columns:repeat(4,minmax(170px,1fr))!important}.agenda-stats-row article{min-width:0;height:100%}@media (width<=980px){.agenda-stats-row{grid-template-columns:repeat(2,minmax(170px,1fr))!important}}@media (width<=560px){.agenda-stats-row{grid-template-columns:1fr!important}}
