:root{
  --navy:#17365d;--blue:#1f4e78;--teal:#0f6b78;--bg:#eef3f8;--card:#fff;
  --text:#1f2937;--muted:#667085;--line:#d8e2ec;--green:#18864b;--red:#c53030;
  --yellow:#b7791f;--purple:#6b46c1;--shadow:0 12px 30px rgba(23,54,93,.11)
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Segoe UI,Arial,sans-serif;color:var(--text);background:var(--bg)}
button,input,select,textarea{font:inherit}.hidden{display:none!important}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:22px;background:radial-gradient(circle at top left,#dceaf6,transparent 40%),linear-gradient(135deg,#edf4fa,#d7e4ef)}
.login-card{width:min(470px,100%);background:#fff;border-radius:22px;padding:30px;box-shadow:0 30px 80px rgba(23,54,93,.22);border:1px solid #d4e0eb}
.login-brand{display:flex;align-items:center;gap:15px;margin-bottom:25px}.logo{width:60px;height:60px;border-radius:17px;background:linear-gradient(135deg,var(--navy),var(--blue));color:#fff;display:grid;place-items:center;font-weight:900;font-size:20px;box-shadow:0 10px 20px rgba(31,78,120,.24)}
.logo.small{width:46px;height:46px;border-radius:13px;font-size:16px}.login-brand h1,.brand h1{margin:0;color:var(--navy)}.login-brand h1{font-size:22px}.login-brand p,.brand p{margin:4px 0 0;color:var(--muted);font-size:13px}.login-card form{display:grid;gap:9px}.login-card label,label{font-size:12px;font-weight:800;color:#45596c}.login-note{text-align:center;color:var(--muted);font-size:12px;margin-top:19px}
input,select,textarea{width:100%;border:1px solid #c9d6e2;border-radius:10px;padding:10px 11px;background:#fff;color:var(--text);outline:none;transition:.2s}input:focus,select:focus,textarea:focus{border-color:#4a82b3;box-shadow:0 0 0 3px rgba(31,78,120,.12)}textarea{min-height:92px;resize:vertical}.password-wrap{position:relative}.password-wrap input{padding-right:44px}.eye{position:absolute;right:7px;top:50%;transform:translateY(-50%);border:0;background:transparent;cursor:pointer;font-size:17px;color:#52677a}
.btn{border:0;border-radius:10px;padding:10px 15px;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:.18s;text-decoration:none;white-space:nowrap}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--blue);color:#fff}.btn-secondary{background:#e8eef4;color:var(--navy)}.btn-success{background:var(--green);color:#fff}.btn-danger{background:var(--red);color:#fff}.btn-outline{background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.32)}.btn-sm{padding:7px 10px;font-size:12px}.btn-block{width:100%;margin-top:8px}
.message{padding:11px 13px;border-radius:10px;margin-top:14px;font-size:13px}.message.error{background:#fee2e2;color:#991b1b}.message.success{background:#dcfce7;color:#166534}
.topbar{background:linear-gradient(135deg,var(--navy),var(--blue));color:#fff;padding:16px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px;box-shadow:0 4px 16px rgba(0,0,0,.18);position:sticky;top:0;z-index:30}.brand{display:flex;align-items:center;gap:13px}.brand h1{font-size:19px;color:#fff}.brand p{color:#dce8f4}.top-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.top-actions select{min-width:220px;background:#fff}.session{display:flex;flex-direction:column;min-width:150px}.session b{font-size:13px}.session span{font-size:11px;color:#d9e7f3}
.container{max-width:1600px;margin:auto;padding:22px}.nav{display:flex;gap:8px;background:#fff;padding:8px;border-radius:14px;box-shadow:var(--shadow);margin-bottom:20px;overflow:auto}.nav button{border:0;background:transparent;padding:11px 15px;border-radius:10px;font-weight:800;color:#496176;white-space:nowrap;cursor:pointer}.nav button.active{background:var(--blue);color:#fff}.page{display:none}.page.active{display:block}
.grid-kpi{display:grid;grid-template-columns:repeat(5,minmax(160px,1fr));gap:14px;margin-bottom:20px}.kpi{background:var(--card);border-radius:16px;padding:18px;border:1px solid var(--line);box-shadow:var(--shadow)}.kpi span{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.5px}.kpi strong{display:block;font-size:31px;color:var(--navy);margin-top:7px}
.panel{background:var(--card);border-radius:16px;border:1px solid var(--line);box-shadow:var(--shadow);margin-bottom:20px;overflow:hidden}.panel-head{padding:16px 18px;background:#f8fbfd;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.panel-head h2{font-size:17px;margin:0;color:var(--navy)}.panel-body{padding:18px}.muted{color:var(--muted);font-size:12px}.notice{background:#fff7db;border:1px solid #f3d37a;color:#725311;padding:12px 14px;border-radius:10px;font-size:13px;margin-bottom:16px}
.form-section{border:1px solid var(--line);border-radius:14px;margin-bottom:16px;overflow:hidden}.form-section h3{margin:0;padding:12px 14px;background:#edf4f9;color:var(--navy);font-size:14px;border-bottom:1px solid var(--line)}.form-grid{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:14px;padding:16px}.field{display:flex;flex-direction:column;gap:6px}.field.span2{grid-column:span 2}.field.span4{grid-column:span 4}.credential{background:#fffbea}.credential h3{background:#fff3bf;color:#7f6000}.computer{background:#faf7ff}.computer h3{background:#eee7f7;color:#5f497a}.actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.toolbar{display:flex;gap:9px;flex-wrap:wrap;align-items:center}.toolbar input,.toolbar select{width:auto;min-width:175px}.table-wrap{overflow:auto;max-height:650px}table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;min-width:900px}table.wide{min-width:1450px}th{position:sticky;top:0;background:var(--navy);color:#fff;padding:11px 10px;text-align:left;z-index:2;white-space:nowrap}td{padding:10px;border-bottom:1px solid #e5edf4;vertical-align:top;background:#fff}tr:hover td{background:#f8fbfd}.empty{text-align:center;padding:42px;color:var(--muted)}
.badge{display:inline-block;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800}.badge.green{background:#dcfce7;color:#166534}.badge.yellow{background:#fef3c7;color:#92400e}.badge.red{background:#fee2e2;color:#991b1b}.badge.gray{background:#edf2f7;color:#475569}.badge.blue{background:#dbeafe;color:#1e40af}.badge.purple{background:#ede9fe;color:#5b21b6}
.modal{position:fixed;inset:0;background:rgba(14,30,48,.62);display:none;align-items:center;justify-content:center;padding:20px;z-index:100}.modal.show{display:flex}.modal-card{background:#fff;width:min(950px,100%);max-height:92vh;overflow:auto;border-radius:18px;box-shadow:0 25px 70px rgba(0,0,0,.28)}.modal-head{padding:17px 20px;background:var(--navy);color:#fff;display:flex;justify-content:space-between;align-items:center}.modal-head h3{margin:0}.modal-body{padding:20px}.close{border:0;background:transparent;color:#fff;font-size:23px;cursor:pointer}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.detail{border:1px solid var(--line);border-radius:10px;padding:11px;background:#f9fbfd}.detail b{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;margin-bottom:5px}.modal-form{display:grid;grid-template-columns:repeat(2,1fr);gap:13px}.modal-form .span2{grid-column:span 2}
.toast{position:fixed;right:22px;bottom:22px;background:var(--navy);color:#fff;padding:13px 17px;border-radius:12px;box-shadow:0 12px 35px rgba(0,0,0,.25);opacity:0;pointer-events:none;transform:translateY(20px);transition:.25s;z-index:200}.toast.show{opacity:1;transform:translateY(0)}.toast.error{background:var(--red)}.footer-note{text-align:center;color:var(--muted);font-size:12px;padding:8px 0 20px}
@media(max-width:1100px){.grid-kpi{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:repeat(2,1fr)}.detail-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.topbar{align-items:flex-start;flex-direction:column}.container{padding:14px}.grid-kpi{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.field.span2,.field.span4{grid-column:span 1}.detail-grid,.modal-form{grid-template-columns:1fr}.modal-form .span2{grid-column:span 1}.top-actions{width:100%}.top-actions select{width:100%}}

/* Actualización 1.0.2: ayuda visual para la lista de VLAN */
.field-help{font-size:11px;color:var(--muted);line-height:1.35;margin-top:1px}


/* Actualización 1.1.0: módulo de soporte técnico y tickets */
.support-kpis{margin-bottom:18px}
.support-form{background:#f5fbff}.support-form h3{background:#dceef8;color:#174b69}
.tickets-table{min-width:1500px}
.ticket-overdue td{background:#fff8f8}.ticket-overdue:hover td{background:#fff0f0}
.overdue-label{display:inline-block;color:#a61b1b;font-weight:800;font-size:11px;margin-top:4px}
.modal-card.modal-wide{width:min(1250px,100%)}
.ticket-summary{display:grid;gap:18px}
.ticket-description,.ticket-resolution,.ticket-management,.ticket-activity{border:1px solid var(--line);border-radius:13px;padding:15px;background:#fbfdff}
.ticket-description>b,.ticket-resolution>b,.ticket-management h4,.ticket-activity h4{display:block;color:var(--navy);margin:0 0 10px;font-size:14px}
.ticket-resolution{background:#f0fff4;border-color:#b7e4c7}
.ticket-management{background:#f8fbfd}
.timeline{display:grid;gap:10px;margin-bottom:15px}
.timeline-item{border-left:4px solid var(--blue);background:#f7fafc;border-radius:9px;padding:11px 13px}
.timeline-item small{display:block;color:var(--muted);margin-top:7px}
.timeline-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:7px}
.timeline-head span{color:var(--muted);font-size:12px}
.ticket-comment-form{display:grid;grid-template-columns:1fr 1fr;gap:12px;border-top:1px solid var(--line);padding-top:15px}
.ticket-comment-form .span2{grid-column:span 2}
.empty.compact{padding:18px}
@media(max-width:700px){.ticket-comment-form{grid-template-columns:1fr}.ticket-comment-form .span2{grid-column:span 1}}


/* Actualización 1.1.1: imágenes en tickets */
.image-preview{display:flex;align-items:center;gap:14px;margin-top:10px;padding:12px;border:1px dashed #9eb8cd;border-radius:12px;background:#f8fbfd}
.image-preview img{width:120px;height:90px;object-fit:cover;border-radius:9px;border:1px solid var(--line)}
.ticket-attachments{border:1px solid var(--line);border-radius:13px;padding:15px;background:#fffdf7}
.ticket-attachments h4{display:block;color:var(--navy);margin:0 0 10px;font-size:14px}
.ticket-attachments-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-bottom:14px}
.ticket-image-card{display:flex;gap:10px;align-items:center;border:1px solid var(--line);border-radius:11px;padding:9px;background:#fff;color:var(--text);text-decoration:none;transition:.18s}
.ticket-image-card:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(23,54,93,.1)}
.ticket-image-card img{width:86px;height:70px;object-fit:cover;border-radius:8px;background:#eef3f8}
.ticket-image-card span{min-width:0}.ticket-image-card b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ticket-image-card small{display:block;color:var(--muted);margin-top:5px}
.ticket-attachment-form{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;border-top:1px solid var(--line);padding-top:12px}
.ticket-attachment-form small{grid-column:1/-1}
@media(max-width:650px){.ticket-attachment-form{grid-template-columns:1fr}.ticket-attachments-grid{grid-template-columns:1fr}}


/* Actualización 1.2.0: flujo completo de trabajo en tickets */
.modal-card{display:flex;flex-direction:column;overflow:hidden}
.modal-head{position:sticky;top:0;z-index:30;flex:0 0 auto}
.modal-body{overflow:auto;flex:1 1 auto}
.management-heading{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:14px}
.management-heading h4{margin:0 0 3px}
.work-clock-box{background:#17365d;color:#fff;border-radius:13px;padding:12px 16px;min-width:220px;text-align:center}
.work-clock-box span,.work-clock-box small{display:block;color:#dce8f4;font-size:11px}.work-clock-box strong{display:block;font-size:27px;letter-spacing:1px;margin:4px 0}
.work-control{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#edf7ef;border:1px solid #b7e4c7;padding:12px;border-radius:11px;margin-bottom:14px}
.work-control span{font-size:12px;color:#3f5c48}
.ticket-evidence-upload{border:1px solid #b9d8ea;background:#f0f9ff;border-radius:12px;padding:13px;margin-top:15px}
.ticket-evidence-upload h4{margin:0 0 10px;color:#17365d}
.ticket-evidence-upload form{display:grid;grid-template-columns:1.35fr 1fr 1fr auto;gap:10px;align-items:end}
.work-sessions{margin-top:14px;border:1px solid var(--line);border-radius:11px;padding:11px;background:#fff}
.work-sessions summary{cursor:pointer;font-weight:800;color:#17365d}
.work-session-head,.work-session-row{display:grid;grid-template-columns:1.3fr 1.4fr 1.4fr .8fr;gap:8px;padding:8px 5px;font-size:12px}
.work-session-head{font-weight:800;color:#667085;border-bottom:1px solid var(--line);margin-top:8px}
.work-session-row{border-bottom:1px solid #edf1f5}.work-session-row:last-child{border-bottom:0}
.live-text{color:#18864b}
.ticket-sticky-actions{position:sticky;bottom:0;z-index:25;display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap;padding:13px;background:rgba(255,255,255,.96);border-top:1px solid var(--line);box-shadow:0 -8px 20px rgba(23,54,93,.1);margin:0 -20px -20px}
.btn-warning{background:#d69e2e;color:#fff}.btn-outline-dark{background:#fff;color:#17365d;border:1px solid #9db2c4}
@media(max-width:850px){
  .management-heading{align-items:stretch;flex-direction:column}.work-clock-box{min-width:0}
  .ticket-evidence-upload form{grid-template-columns:1fr}
  .work-session-head,.work-session-row{grid-template-columns:1fr}.work-session-head{display:none}
  .ticket-sticky-actions{justify-content:stretch}.ticket-sticky-actions .btn{flex:1 1 45%}
}


/* Actualización 1.3.0: informes mensuales, reapertura y adaptación móvil */
#ticketReportMonth{min-width:155px}
@media(max-width:768px){
  html,body{max-width:100%;overflow-x:hidden}
  .topbar{position:relative;padding:12px;gap:12px}
  .brand{width:100%;align-items:center}.brand h1{font-size:17px}.brand p{font-size:12px}
  .top-actions{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:8px}
  .top-actions select{grid-column:1/-1;width:100%;min-width:0}
  .top-actions .session{min-width:0}.top-actions .btn{width:100%;justify-content:center}
  .container{padding:10px}
  .nav{display:flex;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:thin;padding:7px}
  .nav button{flex:0 0 auto;white-space:nowrap}
  .panel{border-radius:12px}.panel-head{align-items:stretch;padding:12px}
  .panel-head>div:first-child{width:100%}
  .toolbar{display:grid;grid-template-columns:1fr;width:100%}
  .toolbar input,.toolbar select,.toolbar .btn,.toolbar a{width:100%;min-width:0;text-align:center}
  .grid-kpi{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .kpi{padding:13px}.kpi strong{font-size:25px}
  .form-grid,.detail-grid,.modal-form{grid-template-columns:1fr!important}
  .field.span2,.field.span4,.modal-form .span2{grid-column:span 1!important}
  .form-section h3{font-size:13px}.form-grid{padding:12px}
  .actions{justify-content:stretch}.actions .btn{flex:1}
  .table-wrap{max-height:none;overflow:auto;-webkit-overflow-scrolling:touch}
  table,table.wide,.tickets-table{min-width:900px}
  .modal{padding:0;align-items:stretch}
  .modal-card,.modal-card.modal-wide{width:100%;height:100vh;max-height:100vh;border-radius:0}
  .modal-head{padding:12px}.modal-head h3{font-size:15px;max-width:85%}
  .modal-body{padding:12px}
  .ticket-summary{gap:12px}
  .ticket-description,.ticket-resolution,.ticket-management,.ticket-activity,.ticket-attachments{padding:12px}
  .ticket-image-card{align-items:flex-start}.ticket-image-card img{width:90px;height:78px}
  .ticket-sticky-actions{margin:0 -12px -12px;padding:10px;display:grid;grid-template-columns:1fr 1fr}
  .ticket-sticky-actions .btn{width:100%;font-size:12px;padding:10px 7px}
  .toast{left:10px;right:10px;bottom:10px;text-align:center}
  .login-card{padding:20px;border-radius:16px}.login-brand{align-items:flex-start}
}
@media(max-width:430px){
  .grid-kpi{grid-template-columns:1fr}
  .top-actions{grid-template-columns:1fr}
  .top-actions select{grid-column:auto}
  .ticket-sticky-actions{grid-template-columns:1fr}
  .ticket-image-card{flex-direction:column}.ticket-image-card img{width:100%;height:180px}
}


/* Actualización 1.4.0: gestión de evidencias, pegado e informes con imágenes */
.ticket-image-card-wrap{position:relative;min-width:0}
.ticket-image-card-wrap .ticket-image-card{height:100%;padding-bottom:42px}
.delete-evidence-btn{
  position:absolute;right:8px;bottom:8px;left:8px;border:0;border-radius:8px;
  padding:7px 10px;background:#fee2e2;color:#991b1b;font-weight:800;cursor:pointer
}
.delete-evidence-btn:hover{background:#fecaca}
.ticket-paste-zone{
  margin-top:11px;border:2px dashed #8fb3cb;border-radius:12px;padding:14px;
  text-align:center;background:#fff;color:#31556c;cursor:pointer;outline:none
}
.ticket-paste-zone b,.ticket-paste-zone span{display:block}
.ticket-paste-zone span{font-size:12px;color:#667085;margin-top:5px}
.ticket-paste-zone:focus,.ticket-paste-zone:hover{border-color:#1f4e78;background:#f5faff}
.ticket-paste-zone.has-image{border-color:#18864b;background:#effaf3}
#monthlyTicketImagesReportBtn{white-space:normal}
@media(max-width:768px){
  .ticket-image-card-wrap .ticket-image-card{padding-bottom:48px}
  .delete-evidence-btn{font-size:13px;padding:10px}
  .ticket-paste-zone{padding:17px 12px}
  .ticket-evidence-upload form{display:grid;grid-template-columns:1fr}
  .ticket-evidence-upload form .btn{width:100%}
  #ticketEvidenceFile{min-height:48px}
  .image-preview{align-items:flex-start}
  .image-preview img{width:100px;height:85px}
}
@media(max-width:430px){
  .image-preview{flex-direction:column}
  .image-preview img{width:100%;height:auto;max-height:250px}
}


/* Actualización 1.5.0: marca, hora Honduras y carga didáctica de solicitudes */
.ticket-create-images{
  border:1px solid #b9d8ea;
  border-radius:14px;
  padding:15px;
  background:#f5fbff;
}
.ticket-create-image-actions{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-top:7px;
}
.ticket-image-action{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:128px;
  padding:14px;
  border:2px dashed #8fb3cb;
  border-radius:13px;
  background:#fff;
  text-align:center;
  cursor:pointer;
  transition:.18s;
}
.ticket-image-action:hover{
  border-color:#1f4e78;
  background:#edf7ff;
  transform:translateY(-1px);
}
.ticket-image-action-icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  border-radius:50%;
  margin-bottom:7px;
  background:#17365d;
  color:#fff;
  font-size:20px;
}
.ticket-image-action b{color:#17365d}
.ticket-image-action small{color:#667085;margin-top:4px}
.ticket-image-action input{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  opacity:0;
  cursor:pointer;
}
.ticket-image-counter{
  display:flex;
  justify-content:space-between;
  gap:12px;
  margin-top:10px;
  color:#667085;
  font-size:12px;
}
.ticket-image-counter b{color:#17365d}
.ticket-image-counter b.limit{color:#a61b1b}
.ticket-create-preview-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(210px,1fr));
  gap:11px;
  margin-top:13px;
}
.ticket-create-preview-card{
  position:relative;
  display:grid;
  grid-template-columns:82px minmax(0,1fr);
  gap:10px;
  align-items:center;
  min-height:102px;
  padding:9px 9px 39px;
  border:1px solid #cbd8e4;
  border-radius:11px;
  background:#fff;
}
.ticket-create-preview-card img{
  width:82px;
  height:76px;
  object-fit:cover;
  border-radius:8px;
  background:#eef3f8;
}
.ticket-create-preview-card div{min-width:0}
.ticket-create-preview-card b{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#17365d;
}
.ticket-create-preview-card small{
  display:block;
  color:#667085;
  margin-top:5px;
}
.ticket-create-preview-card button{
  position:absolute;
  left:9px;
  right:9px;
  bottom:8px;
  border:0;
  border-radius:7px;
  padding:6px;
  background:#fee2e2;
  color:#991b1b;
  font-weight:800;
  cursor:pointer;
}
.ticket-create-preview-card button:hover{background:#fecaca}

@media(max-width:680px){
  .ticket-create-image-actions{grid-template-columns:1fr}
  .ticket-image-action{min-height:108px}
  .ticket-image-counter{flex-direction:column;gap:3px}
  .ticket-create-preview-grid{grid-template-columns:1fr}
  .ticket-create-preview-card{grid-template-columns:96px minmax(0,1fr)}
  .ticket-create-preview-card img{width:96px;height:88px}
}
@media(max-width:390px){
  .ticket-create-preview-card{grid-template-columns:1fr;padding-bottom:42px}
  .ticket-create-preview-card img{width:100%;height:190px}
}


/* Actualización 1.6.0: notificaciones por correo */
.email-status{
  border-radius:999px;
  padding:7px 11px;
  font-size:12px;
  font-weight:800;
  background:#eef2f6;
  color:#52677a;
}
.email-status.active{background:#dcfce7;color:#166534}
.email-status.inactive{background:#fee2e2;color:#991b1b}
.checkbox-field{
  display:flex;
  align-items:center;
  min-height:54px;
  border:1px solid var(--line);
  border-radius:10px;
  padding:11px;
  background:#fff;
}
.checkbox-field label{
  display:flex;
  align-items:center;
  gap:9px;
  margin:0;
  cursor:pointer;
}
.checkbox-field input[type="checkbox"]{
  width:19px;
  height:19px;
  flex:0 0 auto;
}
.email-active-box{
  background:#eef8ff;
  border-color:#b9d8ea;
}
.email-test-section{margin-top:20px}
.email-test-form{
  display:grid;
  grid-template-columns:minmax(260px,1fr) auto;
  gap:12px;
  align-items:end;
  padding:14px;
}
.email-test-form .field{margin:0}
@media(max-width:700px){
  .email-test-form{grid-template-columns:1fr;padding:12px}
  .email-test-form .btn{width:100%}
  #emailSettings .panel-head{gap:10px}
  #emailSettingsStatus{align-self:flex-start}
}


/* Actualización 1.7.0: portal público de solicitudes */
.public-link-actions{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}
.company-public-settings{
  border:1px solid #b9d8ea;border-radius:12px;padding:13px;background:#f2f9fd
}
.company-public-toggle{display:flex;align-items:center;gap:8px;margin-bottom:11px;color:#17365d;font-weight:800}
.company-public-toggle input{width:19px;height:19px}
.company-public-link{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:7px;margin:6px 0 9px}
.company-public-link input{font-size:12px;background:#fff}
.company-public-settings small{display:block;color:#667085;margin-top:7px}
@media(max-width:700px){
  .company-public-link{grid-template-columns:1fr}
  .company-public-link .btn{width:100%}
}


/* Actualización 1.8.0: técnicos multiempresa y permisos granulares */
.user-permission-form{display:block}
.user-basic-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:2px}
.user-basic-grid>div{display:flex;flex-direction:column;gap:6px}
.user-basic-grid small{color:#667085;font-size:11px}
.permission-summary-notice{margin:16px 0 12px;padding:12px 14px;border:1px solid #b9d8ea;border-radius:10px;background:#eef8ff;color:#31556c;font-size:13px}
.company-permissions-list{display:grid;gap:14px}
.company-permission-card{border:1px solid #b9cbd9;border-radius:13px;background:#fff;overflow:hidden;transition:.16s}
.company-permission-card.disabled{opacity:.62;background:#f5f7f9}
.company-permission-head{display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(150px,.7fr) minmax(190px,.9fr);gap:12px;align-items:end;padding:13px;background:#edf5fa;border-bottom:1px solid #d5e1ea}
.company-access-toggle{display:flex;align-items:center;gap:10px;margin:0;cursor:pointer}
.company-access-toggle input{width:21px;height:21px;flex:0 0 auto}
.company-access-toggle span{display:flex;flex-direction:column}
.company-access-toggle b{color:#17365d;font-size:14px}.company-access-toggle small{color:#667085}
.company-permission-head>div{display:flex;flex-direction:column;gap:5px}
.company-permission-body{padding:13px}
.permission-group+.permission-group{margin-top:14px}
.permission-group h5{margin:0 0 8px;color:#17365d;font-size:13px;border-bottom:1px solid #dce6ee;padding-bottom:5px}
.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.permission-option{display:flex;align-items:flex-start;gap:9px;min-height:58px;padding:9px;border:1px solid #d7e1e9;border-radius:9px;background:#fbfdfe;cursor:pointer;margin:0}
.permission-option:hover{border-color:#7fa9c4;background:#f1f8fc}
.permission-option input{width:18px;height:18px;margin-top:2px;flex:0 0 auto}
.permission-option span{display:flex;flex-direction:column;gap:2px}
.permission-option b{font-size:12px;color:#233f5b}.permission-option small{font-size:10px;color:#667085;line-height:1.3}
.sticky-modal-actions{position:sticky;bottom:-18px;z-index:5;display:flex;justify-content:flex-end;margin:17px -18px -18px;padding:12px 18px;border-top:1px solid #d5e1ea;background:rgba(255,255,255,.96);backdrop-filter:blur(5px)}
@media(max-width:820px){.company-permission-head{grid-template-columns:1fr 1fr}.company-access-toggle{grid-column:1/-1}}
@media(max-width:620px){.user-basic-grid{grid-template-columns:1fr}.company-permission-head{grid-template-columns:1fr}.company-access-toggle{grid-column:auto}.permission-grid{grid-template-columns:1fr}.sticky-modal-actions .btn{width:100%}}


/* =========================================================
   Actualización 1.9.0: visitas, GPS y firma del cliente
   ========================================================= */
.technical-visits-panel{margin:16px 0;padding:14px;border:1px solid #b9d1df;border-radius:12px;background:#f7fbfd}
.technical-visits-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.technical-visits-heading h4{margin:0;color:#17365d}.technical-visits-heading span{color:#667085;font-size:12px}
.visits-list{display:grid;gap:10px}.visit-card{padding:12px;border:1px solid #cedbe5;border-radius:10px;background:#fff}
.visit-card.active{border-color:#64a6cf;box-shadow:0 0 0 2px rgba(46,125,173,.1)}
.visit-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}
.visit-card-head>div{display:flex;flex-direction:column}.visit-card-head b{color:#17365d}.visit-card-head span{color:#667085;font-size:12px}
.visit-details-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.visit-details-grid>div{padding:8px;border-radius:8px;background:#f2f7fa}
.visit-details-grid small{display:block;color:#667085;font-size:10px;text-transform:uppercase}.visit-details-grid b{display:block;margin-top:3px;font-size:12px}
.visit-location-links{display:flex;gap:12px;flex-wrap:wrap;margin:10px 0 5px}.visit-location-links a{color:#176b9b;font-size:12px;font-weight:700}
.visit-card p{margin:8px 0;font-size:12px;white-space:pre-wrap}.finalize-ticket-form .notice{margin-bottom:14px}
.on-site-closure{display:grid;gap:14px;margin-top:14px}.closure-gps-panel,.signature-panel{padding:14px;border:1px solid #c8d9e5;border-radius:12px;background:#f8fbfd}
.closure-gps-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px}
.closure-gps-panel h4,.signature-heading h4{margin:0 0 4px;color:#17365d}.closure-gps-panel p,.signature-heading p{margin:0;color:#667085;font-size:12px}
.closure-gps-status{grid-column:1/-1;padding:10px;border:1px dashed #aec4d3;border-radius:8px;color:#667085;font-size:12px}
.closure-gps-status.captured{display:flex;flex-direction:column;gap:2px;border-style:solid;border-color:#7ac394;background:#eefbf3;color:#245b36}
.signature-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}
.signature-canvas{display:block;width:100%;height:190px;border:2px dashed #9eb5c5;border-radius:10px;background:#fff;touch-action:none;cursor:crosshair}
.client-closure-summary{margin:14px 0;padding:14px;border:1px solid #b9d8c4;border-radius:12px;background:#f2fbf5}
.client-closure-summary h4{margin:0 0 12px;color:#17365d}.saved-client-signature{margin-top:12px;padding:10px;border:1px solid #cbd9d0;border-radius:9px;background:#fff}
.saved-client-signature span{display:block;margin-bottom:6px;color:#667085;font-size:11px;font-weight:700;text-transform:uppercase}
.saved-client-signature img{display:block;width:auto;max-width:320px;max-height:130px;margin:auto}
@media(max-width:680px){.visit-details-grid{grid-template-columns:1fr}.closure-gps-panel{grid-template-columns:1fr}.closure-gps-panel .btn{width:100%}.signature-heading{flex-direction:column}.signature-heading .btn{width:100%}.signature-canvas{height:170px}.saved-client-signature img{max-width:100%}}


/* =========================================================
   Actualización 1.9.1: gestión de tickets adaptable
   ========================================================= */

:root{
  --modal-visible-height:100dvh;
  --modal-offset-top:0px;
  --modal-keyboard-height:0px
}

html,
body{
  min-height:100%;
  min-height:100dvh
}

body.modal-open{
  overflow:hidden;
  overscroll-behavior:none
}

.modal{
  inset:auto 0 auto 0;
  top:var(--modal-offset-top,0px);
  height:var(--modal-visible-height,100dvh);
  max-height:var(--modal-visible-height,100dvh);
  overflow:hidden;
  padding:
    max(12px,env(safe-area-inset-top))
    max(12px,env(safe-area-inset-right))
    max(12px,env(safe-area-inset-bottom))
    max(12px,env(safe-area-inset-left))
}

.modal-card{
  width:min(1080px,100%);
  height:min(
    94dvh,
    calc(var(--modal-visible-height,100dvh) - 24px)
  );
  max-height:none;
  min-height:0
}

.modal-card.modal-wide{
  width:min(1440px,100%)
}

.modal-head{
  min-height:58px;
  padding:
    13px
    max(16px,env(safe-area-inset-right))
    13px
    max(16px,env(safe-area-inset-left))
}

.modal-head h3{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}

.modal-head .close{
  width:42px;
  height:42px;
  flex:0 0 42px;
  display:grid;
  place-items:center;
  border-radius:10px
}

.modal-head .close:hover{
  background:rgba(255,255,255,.12)
}

.modal-body{
  min-height:0;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  scroll-behavior:smooth;
  scroll-padding-top:18px;
  scroll-padding-bottom:
    calc(92px + env(safe-area-inset-bottom));
  padding-bottom:
    max(20px,env(safe-area-inset-bottom))
}

.ticket-summary,
.ticket-management,
.ticket-activity,
.ticket-description,
.ticket-resolution,
.ticket-attachments,
.technical-visits-panel{
  min-width:0
}

/* En pantallas grandes usa mejor el espacio horizontal. */
@media(min-width:1180px){
  .modal-card.modal-wide .ticket-management .modal-form{
    grid-template-columns:repeat(4,minmax(0,1fr))
  }

  .modal-card.modal-wide .ticket-management .modal-form .span2{
    grid-column:span 2
  }

  .modal-card.modal-wide .detail-grid{
    grid-template-columns:repeat(4,minmax(0,1fr))
  }

  .modal-card.modal-wide .ticket-comment-form{
    grid-template-columns:minmax(180px,.7fr)
                          minmax(180px,.7fr)
                          minmax(0,2.6fr)
  }

  .modal-card.modal-wide
  .ticket-comment-form
  .span2{
    grid-column:auto
  }

  .modal-card.modal-wide
  .ticket-comment-form
  .span2:last-child{
    grid-column:1/-1
  }
}

.ticket-sticky-actions,
.sticky-modal-actions{
  z-index:60;
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  background:rgba(255,255,255,.97)
}

.ticket-sticky-actions{
  padding-bottom:
    max(13px,env(safe-area-inset-bottom))
}

.sticky-modal-actions{
  bottom:calc(-18px - env(safe-area-inset-bottom));
  padding-bottom:
    max(12px,env(safe-area-inset-bottom))
}

/* Reduce un poco el encabezado cuando aparece el teclado. */
.modal.keyboard-open .modal-head{
  min-height:48px;
  padding-top:7px;
  padding-bottom:7px
}

.modal.keyboard-open .modal-head .close{
  width:38px;
  height:38px;
  flex-basis:38px
}

.modal.keyboard-open .modal-body{
  scroll-padding-bottom:
    calc(84px + env(safe-area-inset-bottom))
}

/* Tablets */
@media(max-width:900px){
  .modal-card,
  .modal-card.modal-wide{
    width:100%;
    height:min(
      98dvh,
      calc(var(--modal-visible-height,100dvh) - 8px)
    )
  }

  .ticket-sticky-actions{
    justify-content:flex-start;
    flex-wrap:nowrap;
    overflow-x:auto;
    overflow-y:hidden;
    scrollbar-width:thin;
    -webkit-overflow-scrolling:touch
  }

  .ticket-sticky-actions .btn{
    flex:0 0 auto;
    min-width:132px
  }
}

/* Celular */
@media(max-width:700px){
  .modal{
    padding:0;
    align-items:flex-start
  }

  .modal-card,
  .modal-card.modal-wide{
    width:100%;
    height:var(--modal-visible-height,100dvh);
    max-height:var(--modal-visible-height,100dvh);
    border-radius:0
  }

  .modal-head{
    min-height:52px;
    padding:
      max(8px,env(safe-area-inset-top))
      max(10px,env(safe-area-inset-right))
      8px
      max(12px,env(safe-area-inset-left))
  }

  .modal-head h3{
    font-size:14px
  }

  .modal-body{
    padding:10px;
    padding-left:max(10px,env(safe-area-inset-left));
    padding-right:max(10px,env(safe-area-inset-right));
    padding-bottom:
      max(12px,env(safe-area-inset-bottom));
    scroll-padding-bottom:
      calc(78px + env(safe-area-inset-bottom))
  }

  .ticket-summary{
    gap:10px
  }

  .ticket-description,
  .ticket-resolution,
  .ticket-management,
  .ticket-activity,
  .ticket-attachments,
  .technical-visits-panel,
  .client-closure-summary{
    padding:10px;
    border-radius:10px
  }

  .modal-form{
    gap:10px
  }

  .modal-form input,
  .modal-form select,
  .modal-form textarea,
  .ticket-comment-form input,
  .ticket-comment-form select,
  .ticket-comment-form textarea{
    font-size:16px;
  }

  .ticket-management textarea{
    min-height:86px
  }

  .ticket-sticky-actions{
    position:sticky;
    left:0;
    right:0;
    bottom:0;
    display:flex;
    grid-template-columns:none;
    flex-wrap:nowrap;
    justify-content:flex-start;
    gap:7px;
    margin:0 -10px -10px;
    padding:
      8px
      max(10px,env(safe-area-inset-right))
      max(8px,env(safe-area-inset-bottom))
      max(10px,env(safe-area-inset-left));
    overflow-x:auto;
    overflow-y:hidden;
    box-shadow:0 -7px 18px rgba(23,54,93,.13);
    scrollbar-width:thin
  }

  .ticket-sticky-actions .btn{
    flex:0 0 auto;
    width:auto;
    min-width:126px;
    min-height:42px;
    padding:9px 11px;
    font-size:11px
  }

  .sticky-modal-actions{
    display:flex;
    flex-wrap:nowrap;
    justify-content:flex-start;
    gap:7px;
    margin:14px -10px -10px;
    bottom:calc(-10px - env(safe-area-inset-bottom));
    padding:
      8px
      max(10px,env(safe-area-inset-right))
      max(8px,env(safe-area-inset-bottom))
      max(10px,env(safe-area-inset-left));
    overflow-x:auto;
    overflow-y:hidden
  }

  .sticky-modal-actions .btn{
    flex:1 0 145px;
    width:auto;
    min-height:42px
  }

  .technical-visits-heading{
    align-items:stretch
  }

  .technical-visits-heading .btn{
    width:100%
  }

  .ticket-image-card img{
    max-height:230px
  }

  .toast{
    bottom:
      max(10px,env(safe-area-inset-bottom))
  }
}

/* Teléfonos muy angostos */
@media(max-width:390px){
  .modal-body{
    padding-left:8px;
    padding-right:8px
  }

  .ticket-sticky-actions{
    margin-left:-8px;
    margin-right:-8px
  }

  .ticket-sticky-actions .btn{
    min-width:118px
  }

  .detail{
    padding:9px
  }
}

@supports not (height:100dvh){
  .modal-card,
  .modal-card.modal-wide{
    height:var(--modal-visible-height,100vh)
  }
}


/* 1.9.2: ubicación proporcionada por el solicitante */
.request-location-detail{
  background:#eef8ff;
  border-color:#b9d8ea
}
.request-location-detail a{
  display:inline-block;
  margin:2px 0 3px;
  color:#176b9b;
  font-weight:800
}
.request-location-detail small{
  display:block;
  color:#667085;
  line-height:1.35
}


/* =========================================================
   2.0.0: seguimiento público seguro
   ========================================================= */
.ticket-public-tracking-panel{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:14px 0;
  padding:13px 14px;
  border:1px solid #b9d8ea;
  border-radius:11px;
  background:#eef8ff
}
.ticket-public-tracking-panel h4{
  margin:0 0 4px;
  color:#17365d
}
.ticket-public-tracking-panel p{
  margin:0;
  color:#5b6f7f;
  font-size:12px;
  line-height:1.4
}
.ticket-public-tracking-actions{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  justify-content:flex-end
}
@media(max-width:700px){
  .ticket-public-tracking-panel{
    align-items:stretch;
    flex-direction:column
  }
  .ticket-public-tracking-actions{
    display:grid;
    grid-template-columns:1fr 1fr
  }
  .ticket-public-tracking-actions .btn{
    width:100%
  }
  .ticket-public-tracking-actions .btn:last-child{
    grid-column:1/-1
  }
}


/* =========================================================
   Etapa 2 · Agenda y programación de visitas
   ========================================================= */
.agenda-panel{overflow:hidden}.agenda-panel-head{align-items:flex-start;gap:15px}.agenda-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.agenda-week-label{min-width:180px;text-align:center;color:#17365d}.agenda-legend{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:10px 15px;border-top:1px solid #e0e7ee;border-bottom:1px solid #e0e7ee;background:#f8fafc;color:#667085;font-size:11px}.agenda-dot{width:10px;height:10px;border-radius:50%;margin-left:7px}.agenda-dot.scheduled{background:#7658a5}.agenda-dot.route{background:#e0a400}.agenda-dot.onsite{background:#1f6f9f}.agenda-dot.done{background:#38905c}.agenda-dot.cancelled{background:#b44545}.agenda-week-grid{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));min-width:1080px;background:#d9e3ea;gap:1px}.agenda-panel{overflow-x:auto}.agenda-day{min-height:500px;background:#fff}.agenda-day.today{background:#f3f9fd}.agenda-day>header{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:10px;background:#eef4f8;border-bottom:1px solid #d8e2ea;color:#17365d;text-transform:capitalize}.agenda-day.today>header{background:#dff1fb}.agenda-day>header span{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:#fff;color:#52677a;font-size:10px}.agenda-day-items{display:grid;gap:8px;padding:8px}.agenda-empty-day{padding:25px 8px;text-align:center;color:#98a2b3;font-size:11px}.agenda-visit-card{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:9px;border:1px solid #d8e2ea;border-left:5px solid #7658a5;border-radius:9px;background:#fbfdfe;text-align:left;font-family:inherit;cursor:pointer}.agenda-visit-card:hover{transform:translateY(-1px);box-shadow:0 6px 13px rgba(31,78,120,.12)}.agenda-visit-card.route{border-left-color:#e0a400;background:#fff9e8}.agenda-visit-card.onsite{border-left-color:#1f6f9f;background:#eef8ff}.agenda-visit-card.done{border-left-color:#38905c;background:#effaf3}.agenda-visit-card.cancelled{border-left-color:#b44545;background:#fff2f2;opacity:.72}.agenda-visit-time{font-size:10px;color:#667085;font-weight:800}.agenda-visit-card b{color:#17365d;font-size:11px}.agenda-visit-card strong{font-size:11px;line-height:1.25}.agenda-visit-card small{color:#667085;font-size:10px}.agenda-visit-card em{font-style:normal;font-size:9px;font-weight:800;text-transform:uppercase;color:#52677a}.agenda-location-notice{display:flex;flex-direction:column;gap:3px;padding:11px;border:1px solid #dfc98f;border-radius:9px;background:#fff9e8;color:#695315}.agenda-location-notice.has-location{border-color:#8bc6a0;background:#effaf3;color:#245b36}.agenda-location-notice a{color:#176b9b;font-weight:800}.agenda-item-subject{margin:13px 0;padding:12px;border:1px solid #d9e3ea;border-radius:10px;background:#f8fafc}.agenda-item-subject p{margin:6px 0 0;white-space:pre-wrap}.agenda-history ul{display:grid;gap:8px;padding:8px 0 0;list-style:none}.agenda-history li{padding:9px;border-left:3px solid #94aabd;background:#f8fafc}.agenda-history li span,.agenda-history li small{display:block;margin-top:3px;color:#667085;font-size:11px}.ticket-agenda-panel{margin:16px 0;padding:14px;border:1px solid #c9d8e3;border-radius:12px;background:#f8fbfd}.ticket-agenda-list{display:grid;gap:8px}.ticket-agenda-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;padding:10px;border:1px solid #d8e2ea;border-left:5px solid #7658a5;border-radius:9px;background:#fff}.ticket-agenda-card.route{border-left-color:#e0a400}.ticket-agenda-card.onsite{border-left-color:#1f6f9f}.ticket-agenda-card.done{border-left-color:#38905c}.ticket-agenda-card.cancelled{border-left-color:#b44545;opacity:.72}.ticket-agenda-card>div:first-child{display:flex;flex-direction:column}.ticket-agenda-card span,.ticket-agenda-card small{color:#667085;font-size:11px}.ticket-agenda-card>small{grid-column:1/-1}.ticket-agenda-actions{grid-column:1/-1;display:flex;gap:7px;flex-wrap:wrap}@media(max-width:850px){.agenda-toolbar{justify-content:flex-start}.agenda-week-label{order:-1;width:100%;text-align:left}.agenda-week-grid{grid-template-columns:1fr;min-width:0;background:transparent;gap:10px;padding:10px}.agenda-day{min-height:auto;border:1px solid #d8e2ea;border-radius:11px;overflow:hidden}.agenda-day>header{position:static}.agenda-panel{overflow:visible}.agenda-day-items{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.agenda-day-items{grid-template-columns:1fr}.agenda-toolbar .btn,.agenda-toolbar select{flex:1 1 130px}.agenda-week-label{min-width:0}.ticket-agenda-card{grid-template-columns:1fr}.ticket-agenda-card .badge{justify-self:start}}


/* =========================================================
   ETAPA 3 — QR, activos y relación múltiple con tickets
   ========================================================= */
.qr-select-cell{width:38px;text-align:center}
.qr-select-cell input{width:18px;height:18px}
.equipment-picker{border:1px solid #c8d8e3;border-radius:10px;background:#f8fbfd;overflow:hidden}
.equipment-picker-search{display:flex;align-items:center;gap:10px;padding:9px;border-bottom:1px solid #d9e4eb;background:#eef5f9}
.equipment-picker-search input{flex:1;min-width:0}
.equipment-picker-search span{white-space:nowrap;color:#667085;font-size:11px}
.equipment-picker-list{max-height:220px;overflow:auto;padding:7px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.equipment-picker-option{display:flex;align-items:flex-start;gap:8px;padding:8px;border:1px solid #d6e1e8;border-radius:8px;background:#fff;cursor:pointer;margin:0;min-width:0}
.equipment-picker-option:hover{border-color:#76a6c3;background:#f2f8fc}
.equipment-picker-option input{width:18px;height:18px;flex:0 0 auto;margin-top:2px}
.equipment-picker-option span{display:flex;flex-direction:column;min-width:0}
.equipment-picker-option b{font-size:11px;color:#17365d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.equipment-picker-option small{font-size:10px;color:#667085;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.linked-assets-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:5px}
.linked-asset-card{display:flex;flex-direction:column;align-items:flex-start;min-width:0;padding:8px;border:1px solid #c7d9e5;border-radius:8px;background:#f4faff;text-align:left;cursor:pointer;font-family:inherit}
.linked-asset-card:hover{border-color:#4b91bb;background:#eaf6fd}
.linked-asset-card b{color:#17365d;font-size:11px}
.linked-asset-card span,.linked-asset-card small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.linked-asset-card span{font-size:11px}.linked-asset-card small{font-size:9px;color:#667085}
.asset-qr-panel{display:grid;grid-template-columns:170px minmax(0,1fr);gap:16px;align-items:center;margin:16px 0;padding:14px;border:1px solid #b7d0df;border-radius:12px;background:#f3f9fd}
.asset-qr-panel img{width:170px;height:170px;object-fit:contain;padding:7px;border:1px solid #d3e0e8;border-radius:10px;background:#fff}
.asset-qr-panel h4,.asset-history-section h4{margin:0 0 6px;color:#17365d}.asset-qr-panel p{margin:0 0 11px;color:#667085;font-size:12px}
.asset-history-section{margin-top:16px}.asset-ticket-history{display:grid;gap:7px}
.asset-ticket-row{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:10px;border:1px solid #d5e0e7;border-radius:9px;background:#fff;text-align:left;cursor:pointer;font-family:inherit}
.asset-ticket-row:hover{border-color:#6da1c0;background:#f5fbff}.asset-ticket-row>span:first-child{display:flex;flex-direction:column;min-width:0}.asset-ticket-row b{color:#17365d;font-size:12px}.asset-ticket-row small{color:#667085;font-size:10px}
@media(max-width:760px){.equipment-picker-list{grid-template-columns:1fr}.linked-assets-grid{grid-template-columns:1fr}.asset-qr-panel{grid-template-columns:1fr;text-align:center}.asset-qr-panel img{margin:auto}.asset-qr-panel .actions{justify-content:center}.equipment-picker-search{align-items:stretch;flex-direction:column}.equipment-picker-search span{align-self:flex-end}}


/* =========================================================
   2.2.1: navegación superpuesta entre tickets y activos
   ========================================================= */

.nested-modal{
  z-index:160;
  background:rgba(8,22,36,.70)
}

.nested-modal .modal-card{
  width:min(1180px,calc(100% - 40px));
  height:min(
    90dvh,
    calc(var(--modal-visible-height,100dvh) - 42px)
  );
  border:1px solid rgba(255,255,255,.25);
  box-shadow:
    0 30px 90px rgba(0,0,0,.42),
    0 0 0 1px rgba(23,54,93,.12)
}

.nested-modal .modal-card.modal-wide{
  width:min(1380px,calc(100% - 28px))
}

.modal.modal-underlay .modal-card{
  transform:scale(.985);
  filter:saturate(.86);
  box-shadow:0 18px 45px rgba(0,0,0,.20)
}

.modal.modal-underlay::after{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(10,25,40,.16);
  pointer-events:none
}

.nested-modal-back{
  font-size:24px;
  font-weight:900
}

.nested-modal .modal-head{
  background:linear-gradient(
    135deg,
    #17365d,
    #285d87
  )
}

@media(max-width:900px){
  .nested-modal .modal-card,
  .nested-modal .modal-card.modal-wide{
    width:calc(100% - 16px);
    height:calc(
      var(--modal-visible-height,100dvh) - 16px
    )
  }
}

@media(max-width:700px){
  .nested-modal{
    padding:0
  }

  .nested-modal .modal-card,
  .nested-modal .modal-card.modal-wide{
    width:100%;
    height:var(--modal-visible-height,100dvh);
    max-height:var(--modal-visible-height,100dvh);
    border:0;
    border-radius:0
  }

  .modal.modal-underlay .modal-card{
    transform:none;
    filter:none
  }

  .nested-modal-back{
    width:44px;
    height:44px;
    flex-basis:44px
  }
}


/* =========================================================
   ETAPA 4 - SLA Y ALERTAS 2.3.0
   ========================================================= */

.sla-risk-kpi{border-color:#f0c36b;background:#fffaf0}
.sla-breached-kpi{border-color:#e9a0a0;background:#fff4f4}
.sla-alert-list{display:grid;gap:11px}
.sla-alert-card{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;
  align-items:center;padding:13px;border:1px solid #d5e1ea;
  border-left:5px solid #7f9aad;border-radius:11px;background:#fff
}
.sla-alert-card.riesgo{border-left-color:#d99a20;background:#fffaf0}
.sla-alert-card.vencido,.sla-alert-card.incumplido{
  border-left-color:#c94040;background:#fff4f4
}
.sla-alert-card.pausado{border-left-color:#3281b4;background:#f1f8fd}
.sla-alert-main{display:flex;justify-content:space-between;gap:12px;min-width:0}
.sla-alert-main>div{min-width:0}
.sla-alert-main h4{
  margin:3px 0;color:#17365d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap
}
.sla-alert-main span{color:#667085;font-size:12px}
.sla-alert-metrics{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap}
.sla-alert-metrics>span{
  display:grid;gap:3px;min-width:155px;padding:8px;border:1px solid #d8e2ea;
  border-radius:8px;background:rgba(255,255,255,.75)
}
.sla-alert-metrics small{color:#667085}
.sla-workdays{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:13px;
  padding:12px;border:1px solid #d8e2ea;border-radius:10px;background:#f7fafc
}
.sla-workdays label{display:flex;align-items:center;gap:5px;cursor:pointer}
.sla-number{min-width:105px;width:100%}
.sla-rules-table input[type="checkbox"]{width:20px;height:20px}
.ticket-sla-panel{
  margin:14px 0;padding:14px;border:1px solid #b8cfdd;border-left:5px solid #4d87ad;
  border-radius:12px;background:#f5fafd
}
.ticket-sla-panel.riesgo{border-left-color:#d99a20;background:#fffaf0}
.ticket-sla-panel.vencido,.ticket-sla-panel.incumplido{
  border-left-color:#c94040;background:#fff4f4
}
.ticket-sla-panel.pausado{border-left-color:#3281b4;background:#f1f8fd}
.ticket-sla-panel.cumplido{border-left-color:#35965a;background:#f2fbf5}
.ticket-sla-panel.disabled{opacity:.75;border-left-color:#8595a1;background:#f7f8f9}
.ticket-sla-heading{
  display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:11px
}
.ticket-sla-heading h4{margin:0 0 4px;color:#17365d}
.ticket-sla-heading p{margin:0;color:#667085;font-size:12px}
.sla-paused-notice{
  margin-bottom:10px;padding:9px 11px;border:1px solid #acd0e5;
  border-radius:8px;background:#eaf6fd;color:#235c80;font-size:12px
}
.sla-metrics-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-bottom:9px
}
.sla-metric-card{
  min-width:0;display:grid;gap:5px;padding:10px;border:1px solid #d5e1ea;
  border-radius:9px;background:#fff
}
.sla-metric-card.riesgo{border-color:#edc26d}
.sla-metric-card.vencido,.sla-metric-card.incumplido{border-color:#e8a1a1}
.sla-metric-card.cumplido{border-color:#9dd0ae}
.sla-metric-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.sla-metric-card span,.sla-metric-card small{
  color:#667085;font-size:11px;line-height:1.35
}
@media(max-width:800px){
  .sla-metrics-grid{grid-template-columns:1fr}
  .sla-alert-card{grid-template-columns:1fr}
  .sla-alert-main{flex-direction:column}
  .sla-alert-card>.btn{width:100%}
  .sla-rules-table{min-width:760px}
}
@media(max-width:520px){
  .sla-workdays{display:grid;grid-template-columns:repeat(3,1fr)}
  .sla-workdays>b{grid-column:1/-1}
}


/* =========================================================
   ETAPA 6 - MANTENIMIENTO PREVENTIVO 2.4.0
   ========================================================= */
.maintenance-overdue{border-color:#e39b9b;background:#fff5f5}
.maintenance-upcoming{border-color:#e8c46f;background:#fffaf0}
.maintenance-row-overdue{background:#fff7f7}
.maintenance-progress{width:110px;height:8px;border-radius:999px;background:#e5edf3;overflow:hidden;margin-bottom:4px}
.maintenance-progress span{display:block;height:100%;background:#2f7eaa;border-radius:999px}
.link-button{border:0;background:transparent;color:#176b9b;font:inherit;font-weight:800;cursor:pointer;padding:0;text-decoration:underline}
.maintenance-template-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}
.maintenance-template-items{display:grid;gap:8px}
.maintenance-template-item{display:grid;grid-template-columns:34px minmax(0,1fr) auto auto 38px;gap:8px;align-items:center;padding:8px;border:1px solid #d8e2ea;border-radius:9px;background:#f8fbfd}
.maintenance-template-item label{display:flex;align-items:center;gap:5px;font-size:12px;white-space:nowrap}
.maintenance-item-number{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#17365d;color:#fff;font-weight:800}
.maintenance-ticket-link{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0;padding:12px;border:1px solid #a9cee3;border-radius:11px;background:#eef8fd}
.maintenance-ticket-link p{margin:4px 0 0;color:#667085;font-size:12px}
.maintenance-checklist{margin:14px 0}
.maintenance-checklist h4{margin:0 0 9px;color:#17365d}
.maintenance-check-item{display:grid;gap:8px;margin-bottom:8px;padding:11px;border:1px solid #d7e2ea;border-left:5px solid #b8c6d0;border-radius:10px;background:#fff}
.maintenance-check-item.cumplido{border-left-color:#38965a;background:#f4fbf6}
.maintenance-check-item.no-aplica{border-left-color:#7e8d98;background:#f7f8f9}
.maintenance-check-main{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.maintenance-check-main>div{display:grid;gap:3px;min-width:0}
.maintenance-check-main small{color:#667085}
.maintenance-check-main select{min-width:130px}
.maintenance-check-item textarea{min-height:62px}
.maintenance-result-box{margin:12px 0;padding:12px;border:1px solid #d8e2ea;border-radius:10px;background:#f8fafc}
.maintenance-result-box p{margin:6px 0;color:#334155}
.maintenance-asset-history{border-top:1px solid #d9e3eb;padding-top:14px}
@media(max-width:760px){
  .maintenance-template-item{grid-template-columns:32px minmax(0,1fr) 38px}
  .maintenance-template-item label{grid-column:2/3}
  .maintenance-ticket-link,.maintenance-check-main{flex-direction:column;align-items:stretch}
  .maintenance-check-main select{width:100%}
  .maintenance-progress{width:90px}
}


/* 2.4.1: ticket de mantenimiento en capa secundaria */
.nested-modal .ticket-evidence-upload{
  position:relative;
  z-index:2
}
.nested-modal .ticket-paste-zone:focus{
  outline:3px solid rgba(47,111,152,.24);
  border-color:#2f6f98
}


/* =========================================================
   2.4.2 - POSICIÓN DEL TICKET Y RELACIÓN DE MANTENIMIENTO
   ========================================================= */

.ticket-maintenance-relation{
  margin:14px 0;
  padding:14px;
  border:1px solid #b9d4e5;
  border-left:5px solid #2f6f98;
  border-radius:12px;
  background:#f2f9fd
}

.ticket-maintenance-relation.pending{
  border-color:#e8c377;
  border-left-color:#d49318;
  background:#fffaf0
}

.ticket-maintenance-relation.ready{
  border-color:#9bcaaa;
  border-left-color:#388e50;
  background:#f1fbf4
}

.ticket-maintenance-heading{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px
}

.ticket-maintenance-heading h4{
  margin:0 0 4px;
  color:#17365d
}

.ticket-maintenance-heading p{
  margin:0;
  color:#667085;
  font-size:12px
}

.ticket-maintenance-stats{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:11px
}

.ticket-maintenance-stats span{
  display:flex;
  align-items:baseline;
  gap:5px;
  padding:7px 9px;
  border:1px solid rgba(23,54,93,.14);
  border-radius:8px;
  background:rgba(255,255,255,.8);
  color:#667085;
  font-size:11px
}

.ticket-maintenance-stats b{
  color:#17365d;
  font-size:14px
}

.ticket-maintenance-progress{
  margin:10px 0
}

.ticket-maintenance-readiness{
  padding:9px 11px;
  border-radius:8px;
  font-size:12px;
  line-height:1.45
}

.ticket-maintenance-readiness.ready{
  border:1px solid #9bcaaa;
  background:#eaf8ee;
  color:#245b36
}

.ticket-maintenance-readiness.warning{
  border:1px solid #e4bd6e;
  background:#fff4d9;
  color:#76510c
}

.ticket-maintenance-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:10px
}

.ticket-section-highlight{
  animation:ticket-section-highlight 1.8s ease
}

@keyframes ticket-section-highlight{
  0%{
    box-shadow:0 0 0 0 rgba(213,147,24,.55)
  }
  35%{
    box-shadow:0 0 0 6px rgba(213,147,24,.22)
  }
  100%{
    box-shadow:0 0 0 0 rgba(213,147,24,0)
  }
}

@media(max-width:700px){
  .ticket-maintenance-heading{
    flex-direction:column
  }

  .ticket-maintenance-actions .btn{
    width:100%
  }

  .ticket-maintenance-stats{
    display:grid;
    grid-template-columns:repeat(3,1fr)
  }

  .ticket-maintenance-stats span{
    display:grid;
    text-align:center
  }
}


/* =========================================================
   2.5.0 - CENTRO DE OPERACIONES Y ORGANIZACIÓN DE TICKETS
   ========================================================= */

.operations-hero{
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(260px,.8fr)
                        minmax(520px,1.2fr);
  gap:22px;
  align-items:center;
  margin-bottom:16px;
  padding:24px;
  border-radius:22px;
  color:#fff;
  background:
    radial-gradient(
      circle at 85% 10%,
      rgba(82,157,211,.38),
      transparent 32%
    ),
    linear-gradient(
      135deg,
      #102b4e,
      #1d4d77 60%,
      #176475
    );
  box-shadow:
    0 22px 55px rgba(23,54,93,.22)
}

.operations-hero::after{
  content:"";
  position:absolute;
  width:260px;
  height:260px;
  right:-100px;
  bottom:-170px;
  border:45px solid rgba(255,255,255,.07);
  border-radius:50%
}

.operations-hero-main,
.operations-quick-actions{
  position:relative;
  z-index:1
}

.operations-eyebrow,
.operations-panel-kicker{
  display:block;
  color:#6d8297;
  font-size:10px;
  font-weight:900;
  letter-spacing:1.15px
}

.operations-hero .operations-eyebrow{
  color:#b8ddf4
}

.operations-hero h2{
  margin:7px 0 5px;
  font-size:29px
}

.operations-hero p{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:0;
  color:#d9e9f4;
  font-size:13px;
  text-transform:capitalize
}

.operations-quick-actions{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px
}

.operations-action{
  min-width:0;
  min-height:76px;
  display:flex;
  align-items:center;
  gap:11px;
  padding:12px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:14px;
  text-align:left;
  color:#fff;
  background:rgba(255,255,255,.10);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  cursor:pointer;
  transition:.18s
}

.operations-action:hover{
  transform:translateY(-2px);
  background:rgba(255,255,255,.17)
}

.operations-action.primary{
  background:#fff;
  color:#17365d;
  border-color:#fff
}

.operations-action-icon{
  width:40px;
  height:40px;
  flex:0 0 40px;
  display:grid;
  place-items:center;
  border-radius:11px;
  background:rgba(255,255,255,.16);
  font-size:21px;
  font-weight:900
}

.operations-action.primary
.operations-action-icon{
  color:#fff;
  background:#1f4e78
}

.operations-action span:last-child{
  min-width:0;
  display:grid;
  gap:3px
}

.operations-action b{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:13px
}

.operations-action small{
  color:inherit;
  opacity:.75;
  font-size:10px
}

.operations-metrics{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:11px;
  margin-bottom:16px
}

.operations-metric{
  min-width:0;
  display:flex;
  align-items:center;
  gap:11px;
  padding:15px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  box-shadow:0 9px 24px rgba(23,54,93,.08)
}

.operations-metric-icon{
  width:43px;
  height:43px;
  flex:0 0 43px;
  display:grid;
  place-items:center;
  border-radius:13px;
  font-weight:900;
  font-size:18px
}

.operations-metric.navy
.operations-metric-icon{
  color:#1f4e78;
  background:#e8f1f8
}

.operations-metric.red
.operations-metric-icon{
  color:#a92222;
  background:#fee9e9
}

.operations-metric.blue
.operations-metric-icon{
  color:#176b9b;
  background:#e7f5fc
}

.operations-metric.amber
.operations-metric-icon{
  color:#9b650c;
  background:#fff2cf
}

.operations-metric.green
.operations-metric-icon{
  color:#18733d;
  background:#e7f8ed
}

.operations-metric.purple
.operations-metric-icon{
  color:#6243a8;
  background:#f0ebfc
}

.operations-metric div{
  min-width:0;
  display:grid
}

.operations-metric small{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#667085;
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.35px
}

.operations-metric strong{
  margin:2px 0;
  color:#17365d;
  font-size:25px;
  line-height:1
}

.operations-metric div span{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#7a8a99;
  font-size:10px
}

.operations-grid{
  display:grid;
  grid-template-columns:1.35fr .85fr;
  gap:15px
}

.operations-panel{
  min-width:0;
  padding:17px;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  box-shadow:0 10px 28px rgba(23,54,93,.08)
}

.operations-panel-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:13px
}

.operations-panel-head h3{
  margin:4px 0 0;
  color:#17365d;
  font-size:16px
}

.operations-link{
  flex:0 0 auto;
  border:0;
  background:transparent;
  color:#1f4e78;
  font-size:11px;
  font-weight:900;
  cursor:pointer
}

.operations-ticket-list,
.operations-compact-list{
  display:grid;
  gap:8px
}

.operations-ticket-card{
  border:1px solid #dbe5ed;
  border-left:4px solid #3e7da9;
  border-radius:11px;
  overflow:hidden;
  background:#fbfdff
}

.operations-ticket-card.overdue{
  border-left-color:#c93b3b;
  background:#fff8f8
}

.operations-ticket-card button{
  width:100%;
  display:grid;
  grid-template-columns:auto
                        minmax(0,1fr)
                        auto
                        auto;
  gap:11px;
  align-items:center;
  padding:11px;
  border:0;
  text-align:left;
  color:inherit;
  background:transparent;
  cursor:pointer
}

.operations-ticket-code{
  color:#17365d;
  font-size:11px;
  font-weight:900
}

.operations-ticket-body{
  min-width:0;
  display:grid;
  gap:3px
}

.operations-ticket-body b,
.operations-ticket-body small{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}

.operations-ticket-body b{
  color:#25384b;
  font-size:12px
}

.operations-ticket-body small{
  color:#728294;
  font-size:10px
}

.operations-ticket-status{
  display:flex;
  gap:4px;
  flex-wrap:wrap;
  justify-content:flex-end
}

.operations-ticket-arrow{
  color:#1f4e78;
  font-weight:900
}

.operations-list-item{
  width:100%;
  min-width:0;
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px;
  border:1px solid #e0e8ef;
  border-radius:10px;
  text-align:left;
  color:inherit;
  background:#fbfdff;
  cursor:pointer
}

.operations-list-time,
.operations-list-date{
  width:64px;
  flex:0 0 64px;
  color:#1f4e78;
  font-size:11px;
  font-weight:900
}

.operations-list-content{
  min-width:0;
  flex:1;
  display:grid;
  gap:2px
}

.operations-list-content b,
.operations-list-content small{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}

.operations-list-content b{
  color:#25384b;
  font-size:11px
}

.operations-list-content small{
  color:#738396;
  font-size:10px
}

.operations-asset-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:9px
}

.operations-asset-card{
  min-width:0;
  display:grid;
  gap:5px;
  padding:11px;
  border:1px solid #dfe7ee;
  border-radius:11px;
  text-align:left;
  color:inherit;
  background:#fbfdff;
  cursor:pointer
}

.operations-asset-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:7px
}

.operations-asset-card strong,
.operations-asset-card small,
.operations-asset-card>span:last-child{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}

.operations-asset-card strong{
  color:#25384b;
  font-size:11px
}

.operations-asset-card small,
.operations-asset-card>span:last-child{
  color:#738396;
  font-size:10px
}

.operations-empty{
  min-height:120px;
  display:grid;
  place-items:center;
  align-content:center;
  gap:4px;
  padding:18px;
  text-align:center;
  color:#77889a;
  border:1px dashed #c9d8e4;
  border-radius:11px;
  background:#f9fbfd
}

.operations-empty>span{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:50%;
  color:#267248;
  background:#e4f6ea;
  font-weight:900
}

.operations-empty b{
  color:#31475b;
  font-size:12px
}

.operations-empty small{
  font-size:10px
}

.support-header{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:15px;
  margin-bottom:15px;
  padding:4px 2px
}

.support-header h2{
  margin:4px 0;
  color:#17365d;
  font-size:24px
}

.support-header p{
  max-width:720px;
  margin:0;
  color:#667085;
  font-size:12px;
  line-height:1.45
}

.ticket-workspace{
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  box-shadow:0 12px 30px rgba(23,54,93,.09)
}

.ticket-workspace-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:13px;
  padding:13px 15px;
  border-bottom:1px solid #dfe7ee;
  background:#f7fafc
}

.ticket-bucket-tabs{
  display:flex;
  gap:6px;
  padding:4px;
  border:1px solid #d9e3eb;
  border-radius:12px;
  background:#edf3f7
}

.ticket-bucket-tab{
  display:flex;
  align-items:center;
  gap:7px;
  padding:9px 13px;
  border:0;
  border-radius:9px;
  color:#53697d;
  background:transparent;
  font-size:12px;
  font-weight:900;
  cursor:pointer
}

.ticket-bucket-tab b{
  min-width:23px;
  padding:3px 6px;
  border-radius:999px;
  text-align:center;
  color:#52677a;
  background:#fff;
  font-size:10px
}

.ticket-bucket-tab.active{
  color:#fff;
  background:#1f4e78;
  box-shadow:0 5px 12px rgba(31,78,120,.20)
}

.ticket-bucket-tab.active b{
  color:#1f4e78
}

.ticket-workspace-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:7px;
  flex-wrap:wrap
}

.ticket-workspace-actions input{
  width:150px
}

.ticket-filter-bar{
  display:grid;
  grid-template-columns:minmax(260px,1.35fr)
                        repeat(4,minmax(140px,.72fr))
                        auto;
  gap:8px;
  padding:12px 15px;
  border-bottom:1px solid #e0e8ef;
  background:#fff
}

.ticket-search-box{
  position:relative
}

.ticket-search-box>span{
  position:absolute;
  left:12px;
  top:50%;
  transform:translateY(-50%);
  color:#74879a;
  font-size:18px;
  pointer-events:none
}

.ticket-search-box input{
  padding-left:37px
}

.ticket-list-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  padding:16px 17px 12px
}

.ticket-list-heading h3{
  margin:4px 0 3px;
  color:#17365d;
  font-size:17px
}

.ticket-list-heading p{
  margin:0;
  color:#718194;
  font-size:11px
}

.ticket-visible-counter{
  display:flex;
  align-items:baseline;
  gap:5px;
  padding:7px 10px;
  border:1px solid #d9e3eb;
  border-radius:10px;
  color:#667085;
  background:#f7fafc;
  font-size:10px
}

.ticket-visible-counter b{
  color:#17365d;
  font-size:18px
}

.ticket-table-desktop{
  border-top:1px solid #edf1f5
}

.ticket-mobile-cards{
  display:none
}

.ticket-row-actions{
  display:flex;
  gap:5px;
  flex-wrap:wrap
}

.btn-delete-soft{
  color:#9b2c2c;
  background:#fff1f1;
  border:1px solid #f0b7b7
}

.btn-delete-soft:hover{
  background:#fee2e2
}

.ticket-delete-note{
  color:#9b2c2c;
  font-size:10px;
  line-height:1.35
}

.ticket-deleted-row td{
  background:#fffafa
}

.delete-ticket-warning{
  padding:12px;
  border:1px solid #f0c4c4;
  border-radius:10px;
  color:#7d3030;
  background:#fff5f5;
  font-size:12px;
  line-height:1.45
}

.ticket-empty-state{
  display:grid;
  place-items:center;
  align-content:center;
  min-height:220px;
  padding:25px;
  text-align:center;
  color:#748699
}

.ticket-empty-state span{
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border-radius:50%;
  color:#267248;
  background:#e7f7ec;
  font-size:20px;
  font-weight:900
}

.ticket-empty-state h4{
  margin:8px 0 2px;
  color:#2f455a
}

.ticket-empty-state p{
  margin:0;
  font-size:11px
}

@media(max-width:1300px){
  .operations-metrics{
    grid-template-columns:repeat(3,minmax(0,1fr))
  }

  .ticket-filter-bar{
    grid-template-columns:repeat(3,minmax(0,1fr))
  }

  .ticket-search-box{
    grid-column:span 2
  }
}

@media(max-width:1000px){
  .operations-hero{
    grid-template-columns:1fr
  }

  .operations-grid{
    grid-template-columns:1fr
  }

  .operations-asset-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))
  }

  .ticket-workspace-top{
    align-items:stretch;
    flex-direction:column
  }

  .ticket-workspace-actions{
    justify-content:flex-start
  }
}

@media(max-width:800px){
  .operations-hero{
    padding:18px;
    border-radius:17px
  }

  .operations-hero h2{
    font-size:23px
  }

  .operations-quick-actions{
    grid-template-columns:1fr 1fr
  }

  .operations-metrics{
    grid-template-columns:repeat(2,minmax(0,1fr))
  }

  .operations-asset-grid{
    grid-template-columns:1fr
  }

  .operations-ticket-card button{
    grid-template-columns:auto minmax(0,1fr) auto
  }

  .operations-ticket-status{
    grid-column:2/-1;
    justify-content:flex-start
  }

  .operations-ticket-arrow{
    grid-column:3;
    grid-row:1
  }

  .support-header{
    align-items:stretch;
    flex-direction:column
  }

  .support-new-ticket{
    width:100%
  }

  .ticket-bucket-tabs{
    overflow-x:auto;
    flex-wrap:nowrap
  }

  .ticket-bucket-tab{
    flex:0 0 auto
  }

  .ticket-workspace-actions{
    display:grid;
    grid-template-columns:1fr 1fr
  }

  .ticket-workspace-actions input{
    width:100%;
    grid-column:1/-1
  }

  .ticket-filter-bar{
    grid-template-columns:1fr 1fr
  }

  .ticket-search-box{
    grid-column:1/-1
  }

  .ticket-list-heading{
    align-items:flex-start
  }

  .ticket-table-desktop{
    display:none
  }

  .ticket-mobile-cards{
    display:grid;
    gap:10px;
    padding:0 12px 13px
  }

  .ticket-mobile-card{
    display:grid;
    gap:9px;
    padding:13px;
    border:1px solid #d9e3eb;
    border-left:5px solid #3c79a5;
    border-radius:13px;
    background:#fff;
    box-shadow:0 6px 15px rgba(23,54,93,.06)
  }

  .ticket-mobile-card.overdue{
    border-left-color:#c63838;
    background:#fffafa
  }

  .ticket-mobile-card.deleted{
    border-left-color:#8d5b5b;
    background:#fff8f8
  }

  .ticket-mobile-card-top{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:9px
  }

  .ticket-mobile-card-top>div{
    display:grid;
    gap:2px
  }

  .ticket-mobile-code{
    color:#17365d;
    font-size:13px;
    font-weight:900
  }

  .ticket-mobile-card-top small{
    color:#7a8999;
    font-size:10px
  }

  .ticket-mobile-card h4{
    margin:0;
    color:#293e52;
    font-size:14px;
    line-height:1.35
  }

  .ticket-mobile-card>p{
    margin:0;
    color:#667085;
    font-size:11px
  }

  .ticket-mobile-tags{
    display:flex;
    gap:5px;
    flex-wrap:wrap
  }

  .ticket-mobile-meta{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:7px
  }

  .ticket-mobile-meta span{
    min-width:0;
    display:grid;
    gap:2px;
    padding:8px;
    border:1px solid #e0e8ef;
    border-radius:8px;
    color:#52677a;
    background:#f8fafc;
    font-size:10px
  }

  .ticket-mobile-meta span:last-child{
    grid-column:1/-1
  }

  .ticket-mobile-meta b{
    color:#7a8998;
    font-size:9px;
    text-transform:uppercase
  }

  .ticket-mobile-delete-reason{
    display:grid;
    gap:3px;
    padding:9px;
    border:1px solid #efc5c5;
    border-radius:8px;
    color:#7e3232;
    background:#fff1f1;
    font-size:11px
  }

  .ticket-mobile-delete-reason small{
    color:#956060
  }

  .ticket-mobile-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:7px
  }

  .ticket-mobile-actions .btn{
    width:100%
  }
}

@media(max-width:520px){
  .operations-quick-actions{
    grid-template-columns:1fr
  }

  .operations-metrics{
    grid-template-columns:1fr
  }

  .operations-metric{
    padding:13px
  }

  .ticket-workspace{
    border-radius:13px
  }

  .ticket-workspace-top{
    padding:10px
  }

  .ticket-workspace-actions{
    grid-template-columns:1fr
  }

  .ticket-workspace-actions input{
    grid-column:auto
  }

  .ticket-workspace-actions .btn,
  .ticket-workspace-actions a{
    width:100%
  }

  .ticket-filter-bar{
    grid-template-columns:1fr;
    padding:10px
  }

  .ticket-search-box{
    grid-column:auto
  }

  .ticket-list-heading{
    align-items:stretch;
    flex-direction:column;
    padding:13px 12px 10px
  }

  .ticket-visible-counter{
    align-self:flex-start
  }

  .ticket-mobile-meta{
    grid-template-columns:1fr
  }

  .ticket-mobile-meta span:last-child{
    grid-column:auto
  }

  .ticket-mobile-actions{
    grid-template-columns:1fr
  }
}


/* =========================================================
   2.5.1 - VISUALIZACIÓN MEJORADA DE SOPORTE / TICKETS
   ========================================================= */

/* Navegación más limpia en pantallas anchas */
@media(min-width:1200px){
  .nav{
    gap:3px;
    scrollbar-width:none;
  }

  .nav::-webkit-scrollbar{
    display:none
  }

  .nav button{
    padding:10px 12px;
    font-size:13px
  }
}

/* Cabecera */
.support-header-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap
}

/* Indicadores compactos: una sola franja en escritorio */
.support-kpis{
  grid-template-columns:repeat(8,minmax(105px,1fr));
  gap:8px;
  margin-bottom:12px
}

.support-kpis .kpi{
  min-height:82px;
  padding:12px 13px;
  border-radius:13px;
  box-shadow:0 7px 18px rgba(23,54,93,.07)
}

.support-kpis .kpi span{
  font-size:10px;
  letter-spacing:.38px
}

.support-kpis .kpi strong{
  margin-top:5px;
  font-size:25px
}

/* Modo enfocado: deja casi toda la pantalla para la lista */
.support-focus-mode .support-header>div:first-child,
.support-focus-mode .support-kpis{
  display:none
}

.support-focus-mode .support-header{
  justify-content:flex-end;
  margin-bottom:8px
}

.support-focus-mode .ticket-workspace{
  min-height:calc(100vh - 190px)
}

/* Barra superior del espacio de trabajo */
.ticket-workspace-top{
  align-items:center;
  padding:10px 13px
}

.ticket-bucket-tabs{
  flex:0 0 auto
}

/* Menú de reportes */
.ticket-tools-menu{
  position:relative;
  z-index:12
}

.ticket-tools-menu summary{
  min-height:40px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:9px 13px;
  border:1px solid #d1dde7;
  border-radius:10px;
  color:#17365d;
  background:#fff;
  font-size:12px;
  font-weight:900;
  cursor:pointer;
  list-style:none;
  user-select:none
}

.ticket-tools-menu summary::-webkit-details-marker{
  display:none
}

.ticket-tools-menu[open] summary{
  border-color:#4d7fa7;
  box-shadow:0 0 0 3px rgba(31,78,120,.10)
}

.ticket-tools-popover{
  position:absolute;
  top:calc(100% + 7px);
  right:0;
  width:270px;
  display:grid;
  gap:8px;
  padding:12px;
  border:1px solid #d5e1ea;
  border-radius:12px;
  background:#fff;
  box-shadow:0 18px 45px rgba(23,54,93,.22)
}

.ticket-tools-popover label{
  color:#667085;
  font-size:10px;
  text-transform:uppercase
}

.ticket-tools-popover input,
.ticket-tools-popover .btn{
  width:100%
}

/* Filtros más compactos */
.ticket-filter-bar{
  grid-template-columns:minmax(290px,1.6fr)
                        repeat(4,minmax(135px,.7fr))
                        auto;
  gap:7px;
  padding:10px 13px
}

.ticket-filter-bar input,
.ticket-filter-bar select,
.ticket-filter-bar .btn{
  min-height:40px;
  padding-top:8px;
  padding-bottom:8px
}

.ticket-list-heading{
  padding:13px 15px 10px
}

/* La tabla usa desplazamiento natural de la página, no una segunda barra vertical */
.ticket-workspace .table-wrap{
  max-height:none;
  overflow-x:auto;
  overflow-y:visible;
  padding:0 10px 12px
}

.tickets-table,
table.wide.tickets-table{
  min-width:1080px;
  border-collapse:separate;
  border-spacing:0 7px;
  table-layout:fixed;
  background:#f5f8fb
}

.tickets-table thead th{
  position:sticky;
  top:0;
  z-index:4;
  padding:10px 11px;
  font-size:11px
}

.tickets-table thead th:first-child{
  border-radius:9px 0 0 9px
}

.tickets-table thead th:last-child{
  border-radius:0 9px 9px 0
}

.tickets-table .ticket-col-code{
  width:12%
}

.tickets-table .ticket-col-requester{
  width:15%
}

.tickets-table .ticket-col-service{
  width:27%
}

.tickets-table .ticket-col-attention{
  width:10%
}

.tickets-table .ticket-col-tech{
  width:13%
}

.tickets-table .ticket-col-deadline{
  width:15%
}

.tickets-table .ticket-col-actions{
  width:8%
}

.tickets-table tbody tr{
  filter:drop-shadow(0 3px 5px rgba(23,54,93,.05))
}

.tickets-table tbody td{
  padding:12px 11px;
  border-top:1px solid #dfe8ef;
  border-bottom:1px solid #dfe8ef;
  background:#fff;
  vertical-align:middle;
  line-height:1.35
}

.tickets-table tbody td:first-child{
  border-left:1px solid #dfe8ef;
  border-radius:11px 0 0 11px
}

.tickets-table tbody td:last-child{
  border-right:1px solid #dfe8ef;
  border-radius:0 11px 11px 0
}

.tickets-table tbody tr:hover td{
  background:#f8fbfe;
  border-color:#c5d8e6
}

.tickets-table tbody tr.ticket-overdue td{
  background:#fff9f9;
  border-color:#efc7c7
}

.tickets-table tbody tr.ticket-deleted-row td{
  background:#fffafa;
  border-color:#e8cccc
}

/* Contenido de las nuevas columnas */
.ticket-code-link{
  display:block;
  padding:0;
  border:0;
  color:#17365d;
  background:transparent;
  font-size:13px;
  font-weight:900;
  cursor:pointer
}

.ticket-code-link:hover{
  color:#216a9d;
  text-decoration:underline
}

.ticket-code-link:disabled{
  cursor:default;
  text-decoration:none
}

.ticket-created-date,
.ticket-cell-requester>span,
.ticket-cell-technician>span,
.ticket-deadline-date,
.ticket-sla-time{
  display:block;
  margin-top:4px;
  color:#758598;
  font-size:10px
}

.ticket-cell-requester>b,
.ticket-cell-technician>b,
.ticket-cell-service>b{
  display:block;
  color:#263b50;
  font-size:12px
}

.ticket-cell-service>b{
  margin-bottom:4px;
  font-size:12.5px;
  line-height:1.3
}

.ticket-service-category{
  display:inline-block;
  margin-bottom:6px;
  color:#607487;
  font-size:10px
}

.ticket-service-equipment{
  display:block;
  padding:6px 8px;
  border-radius:7px;
  color:#53697b;
  background:#f1f5f8;
  font-size:10px
}

.ticket-service-equipment b{
  color:#344b60
}

.ticket-cell-service>small{
  display:block;
  margin-top:4px;
  color:#6f8091;
  font-size:9px
}

.ticket-attention-badges{
  display:flex;
  align-items:flex-start;
  gap:5px;
  flex-wrap:wrap
}

.ticket-unassigned{
  color:#a5521c!important;
  font-weight:800
}

.ticket-cell-deadline .badge{
  margin-bottom:3px
}

.ticket-deadline-date{
  margin-top:7px;
  color:#344b60;
  font-weight:800
}

.ticket-table-delete-reason{
  display:grid;
  gap:2px;
  margin-top:8px;
  padding:7px;
  border:1px solid #efcccc;
  border-radius:7px;
  color:#843737;
  background:#fff2f2;
  font-size:9px
}

.ticket-table-delete-reason b{
  text-transform:uppercase
}

.ticket-table-delete-reason small{
  color:#996060
}

.ticket-cell-actions{
  text-align:center
}

.ticket-cell-actions .ticket-row-actions{
  display:grid;
  grid-template-columns:1fr;
  gap:5px
}

.ticket-cell-actions .btn{
  width:100%;
  padding:7px 6px;
  font-size:10px
}

/* Escritorio mediano: tarjetas antes para evitar columnas comprimidas */
@media(max-width:1100px){
  .support-kpis{
    grid-template-columns:repeat(4,minmax(110px,1fr))
  }

  .ticket-filter-bar{
    grid-template-columns:repeat(3,minmax(0,1fr))
  }

  .ticket-search-box{
    grid-column:span 2
  }

  .ticket-table-desktop{
    display:none
  }

  .ticket-mobile-cards{
    display:grid;
    gap:10px;
    padding:0 12px 13px
  }
}

@media(max-width:800px){
  .support-header-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    width:100%
  }

  .support-header-actions .btn{
    width:100%
  }

  .support-kpis{
    grid-template-columns:repeat(4,minmax(95px,1fr));
    overflow-x:auto;
    padding-bottom:4px
  }

  .support-kpis .kpi{
    min-width:110px
  }

  .ticket-workspace-top{
    flex-direction:row;
    align-items:center
  }

  .ticket-tools-menu{
    flex:0 0 auto
  }

  .ticket-tools-menu summary span{
    display:none
  }

  .ticket-tools-menu summary{
    min-width:44px;
    justify-content:center;
    font-size:18px
  }

  .ticket-tools-popover{
    position:fixed;
    left:12px;
    right:12px;
    top:auto;
    bottom:12px;
    width:auto;
    z-index:220;
    border-radius:15px
  }
}

@media(max-width:520px){
  .support-header-actions{
    grid-template-columns:1fr
  }

  .support-kpis{
    grid-template-columns:repeat(8,112px)
  }

  .ticket-workspace-top{
    gap:7px
  }

  .ticket-bucket-tab{
    padding:8px 10px
  }

  .ticket-list-heading{
    padding:12px
  }
}


/* =========================================================
   2.5.2 - PAPELERA COORDINADA DE MANTENIMIENTO
   ========================================================= */

.maintenance-trash-notice{
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  gap:12px;
  padding:13px;
  border:1px solid #b8d5e8;
  border-left:5px solid #2f6f98;
  border-radius:11px;
  color:#29485e;
  background:#f1f8fc
}

.maintenance-trash-icon{
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border-radius:11px;
  color:#fff;
  background:#2f6f98;
  font-size:18px;
  font-weight:900
}

.maintenance-trash-notice>div:last-child{
  min-width:0;
  display:grid;
  gap:3px
}

.maintenance-trash-notice b{
  color:#17365d;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.35px
}

.maintenance-trash-notice strong{
  color:#17365d;
  font-size:15px
}

.maintenance-trash-notice span{
  color:#557086;
  font-size:11px
}

.maintenance-trash-notice p{
  margin:5px 0 0;
  color:#526b7e;
  font-size:11px;
  line-height:1.45
}

@media(max-width:600px){
  .maintenance-trash-notice{
    grid-template-columns:1fr
  }
}


/* =========================================================
   2.6.0 - CENTRO DE MANTENIMIENTO PRODUCTIVO
   ========================================================= */

.maintenance-hero{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-bottom:14px;
  padding:20px 22px;
  border-radius:20px;
  color:#fff;
  background:
    radial-gradient(
      circle at 90% 15%,
      rgba(89,176,203,.35),
      transparent 30%
    ),
    linear-gradient(
      135deg,
      #102c4f,
      #1d5078 62%,
      #17656f
    );
  box-shadow:0 20px 45px rgba(23,54,93,.20)
}

.maintenance-hero .operations-panel-kicker{
  color:#b9dff2
}

.maintenance-hero h2{
  margin:5px 0;
  font-size:25px
}

.maintenance-hero p{
  max-width:720px;
  margin:0;
  color:#dceaf3;
  font-size:12px;
  line-height:1.5
}

.maintenance-hero-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap
}

.maintenance-hero-actions .btn{
  min-height:42px
}

.maintenance-metrics{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:9px;
  margin-bottom:14px
}

.maintenance-metric{
  min-width:0;
  display:grid;
  gap:4px;
  padding:13px 14px;
  border:1px solid #dce6ee;
  border-top:4px solid #547895;
  border-radius:14px;
  background:#fff;
  box-shadow:0 8px 20px rgba(23,54,93,.07)
}

.maintenance-metric.primary{
  border-top-color:#285f8d
}

.maintenance-metric.danger{
  border-top-color:#c53838
}

.maintenance-metric.warning{
  border-top-color:#d49119
}

.maintenance-metric.info{
  border-top-color:#267caa
}

.maintenance-metric.success{
  border-top-color:#2c8a50
}

.maintenance-metric.neutral{
  border-top-color:#6b7280
}

.maintenance-metric span{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#64768a;
  font-size:9px;
  font-weight:900;
  letter-spacing:.35px;
  text-transform:uppercase
}

.maintenance-metric strong{
  color:#17365d;
  font-size:25px;
  line-height:1.05
}

.maintenance-metric small{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#8290a0;
  font-size:9px
}

.maintenance-workspace{
  overflow:hidden;
  margin-bottom:15px;
  border:1px solid #d9e4ec;
  border-radius:18px;
  background:#fff;
  box-shadow:0 12px 30px rgba(23,54,93,.09)
}

.maintenance-workspace-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:11px 13px;
  border-bottom:1px solid #dfe7ee;
  background:#f6f9fb
}

.maintenance-bucket-tabs{
  display:flex;
  gap:5px;
  padding:4px;
  border:1px solid #d7e2ea;
  border-radius:12px;
  background:#eaf1f5
}

.maintenance-bucket-tab{
  display:flex;
  align-items:center;
  gap:7px;
  padding:9px 13px;
  border:0;
  border-radius:9px;
  color:#536a7d;
  background:transparent;
  font-size:11px;
  font-weight:900;
  cursor:pointer
}

.maintenance-bucket-tab b{
  min-width:24px;
  padding:3px 6px;
  border-radius:999px;
  text-align:center;
  color:#536a7d;
  background:#fff;
  font-size:9px
}

.maintenance-bucket-tab.active{
  color:#fff;
  background:#1f4e78;
  box-shadow:0 5px 12px rgba(31,78,120,.20)
}

.maintenance-bucket-tab.active b{
  color:#1f4e78
}

.maintenance-priority-hint{
  color:#748698;
  font-size:10px
}

.maintenance-filter-bar{
  display:grid;
  grid-template-columns:minmax(300px,1.5fr)
                        minmax(170px,.65fr)
                        minmax(170px,.65fr)
                        auto;
  gap:8px;
  padding:11px 13px;
  border-bottom:1px solid #e1e9ef
}

.maintenance-filter-bar input,
.maintenance-filter-bar select,
.maintenance-filter-bar .btn{
  min-height:40px
}

.maintenance-list-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  padding:14px 15px 10px
}

.maintenance-list-heading h3{
  margin:4px 0 2px;
  color:#17365d;
  font-size:17px
}

.maintenance-list-heading p{
  margin:0;
  color:#718295;
  font-size:10px
}

.maintenance-visible-counter{
  display:flex;
  align-items:baseline;
  gap:5px;
  padding:7px 10px;
  border:1px solid #d9e3eb;
  border-radius:10px;
  color:#667085;
  background:#f7fafc;
  font-size:9px
}

.maintenance-visible-counter b{
  color:#17365d;
  font-size:18px
}

.maintenance-workspace .table-wrap{
  max-height:none;
  overflow-x:auto;
  overflow-y:visible;
  padding:0 10px 12px
}

.maintenance-orders-table{
  min-width:1120px;
  table-layout:fixed;
  border-collapse:separate;
  border-spacing:0 7px;
  background:#f5f8fb
}

.maintenance-orders-table th{
  padding:10px 11px;
  background:#203f67;
  font-size:10px
}

.maintenance-orders-table th:nth-child(1){
  width:15%
}

.maintenance-orders-table th:nth-child(2){
  width:23%
}

.maintenance-orders-table th:nth-child(3){
  width:13%
}

.maintenance-orders-table th:nth-child(4){
  width:12%
}

.maintenance-orders-table th:nth-child(5){
  width:18%
}

.maintenance-orders-table th:nth-child(6){
  width:8%
}

.maintenance-orders-table th:nth-child(7){
  width:11%
}

.maintenance-orders-table tbody tr{
  filter:drop-shadow(0 3px 5px rgba(23,54,93,.05))
}

.maintenance-orders-table tbody td{
  padding:11px;
  border-top:1px solid #dfe7ee;
  border-bottom:1px solid #dfe7ee;
  background:#fff;
  vertical-align:middle;
  line-height:1.35
}

.maintenance-orders-table tbody td:first-child{
  border-left:4px solid #5e82a2;
  border-radius:11px 0 0 11px
}

.maintenance-orders-table tbody td:last-child{
  border-right:1px solid #dfe7ee;
  border-radius:0 11px 11px 0
}

.maintenance-order-row.overdue td:first-child{
  border-left-color:#c93838
}

.maintenance-order-row.today td:first-child{
  border-left-color:#d89419
}

.maintenance-order-row.working td:first-child{
  border-left-color:#2579a8
}

.maintenance-order-row.completed td:first-child{
  border-left-color:#2b8b51
}

.maintenance-order-row.cancelled td:first-child,
.maintenance-order-row.deleted td:first-child{
  border-left-color:#7d6b72
}

.maintenance-order-code{
  display:block;
  padding:0;
  border:0;
  color:#17365d;
  background:transparent;
  font-size:12px;
  font-weight:900;
  cursor:pointer
}

.maintenance-order-code:hover{
  color:#246a9b;
  text-decoration:underline
}

.maintenance-order-date{
  display:block;
  margin:3px 0 6px;
  color:#687a8d;
  font-size:10px
}

.maintenance-urgency{
  display:inline-flex;
  align-items:center;
  padding:4px 7px;
  border:1px solid #cedbe4;
  border-radius:999px;
  color:#536b7e;
  background:#f3f7fa;
  font-size:9px;
  font-weight:900
}

.maintenance-urgency.overdue{
  color:#9d2727;
  border-color:#efb4b4;
  background:#fff0f0
}

.maintenance-urgency.today,
.maintenance-urgency.tomorrow,
.maintenance-urgency.week{
  color:#8a5b0a;
  border-color:#efd18f;
  background:#fff7df
}

.maintenance-urgency.working{
  color:#1d628c;
  border-color:#afd4e7;
  background:#edf8fd
}

.maintenance-urgency.completed{
  color:#267143;
  border-color:#add6bb;
  background:#edf9f1
}

.maintenance-urgency.cancelled,
.maintenance-urgency.deleted{
  color:#6c515a;
  border-color:#d8c4ca;
  background:#f8f2f4
}

.maintenance-orders-table td>b{
  display:block;
  color:#263c51;
  font-size:11px
}

.maintenance-orders-table td>span:not(.maintenance-urgency),
.maintenance-orders-table td>small{
  display:block;
  margin-top:3px;
  color:#758699;
  font-size:9px
}

.maintenance-unassigned{
  color:#a4531d!important;
  font-weight:900
}

.maintenance-ticket-code,
.maintenance-visit-link{
  display:block;
  padding:0;
  border:0;
  text-align:left;
  color:#1f5f8e;
  background:transparent;
  font-size:10px;
  font-weight:900;
  cursor:pointer
}

.maintenance-visit-link{
  margin-top:6px
}

.maintenance-visit-link span{
  display:block;
  margin-top:2px;
  color:#758699;
  font-size:9px;
  font-weight:400
}

.maintenance-no-ticket,
.maintenance-no-visit{
  display:block;
  color:#8a98a6;
  font-size:9px
}

.maintenance-no-visit{
  margin-top:6px
}

.maintenance-trash-reason{
  display:block;
  margin-top:7px!important;
  padding:6px 7px;
  border:1px solid #eccccc;
  border-radius:7px;
  color:#8b3e3e!important;
  background:#fff3f3;
  font-size:9px!important
}

.maintenance-row-actions{
  display:grid;
  gap:5px
}

.maintenance-row-actions .btn{
  width:100%;
  padding:7px 5px;
  font-size:9px
}

.maintenance-order-cards{
  display:none
}

.maintenance-admin-section{
  margin-bottom:12px;
  border:1px solid #dce6ed;
  border-radius:14px;
  background:#fff;
  box-shadow:0 8px 22px rgba(23,54,93,.06)
}

.maintenance-admin-section>summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 16px;
  cursor:pointer;
  list-style:none
}

.maintenance-admin-section>summary::-webkit-details-marker{
  display:none
}

.maintenance-admin-section>summary>span:first-child{
  display:grid;
  gap:2px
}

.maintenance-admin-section>summary b{
  color:#17365d;
  font-size:13px
}

.maintenance-admin-section>summary small{
  color:#748699;
  font-size:10px
}

.maintenance-admin-section>summary>span:last-child{
  color:#1f5f8e;
  font-size:10px;
  font-weight:900
}

.maintenance-admin-content{
  padding:0 12px 12px;
  border-top:1px solid #e3eaf0
}

/* Modal operativo */
.maintenance-order-overview{
  display:grid;
  grid-template-columns:minmax(0,1fr) 230px;
  gap:14px;
  align-items:stretch;
  margin-bottom:12px
}

.maintenance-order-title{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  padding:15px;
  border:1px solid #d8e4ec;
  border-radius:13px;
  background:#f8fbfd
}

.maintenance-order-title h3{
  margin:8px 0 3px;
  color:#17365d;
  font-size:18px
}

.maintenance-order-title p{
  margin:0;
  color:#65798d;
  font-size:11px
}

.maintenance-order-progress-card{
  display:grid;
  align-content:center;
  gap:5px;
  padding:15px;
  border-radius:13px;
  color:#fff;
  background:linear-gradient(135deg,#17365d,#2a668f)
}

.maintenance-order-progress-card>span,
.maintenance-order-progress-card>small{
  color:#d8e9f3;
  font-size:9px
}

.maintenance-order-progress-card>strong{
  font-size:27px
}

.maintenance-order-progress-card .maintenance-progress{
  background:rgba(255,255,255,.20)
}

.maintenance-order-progress-card .maintenance-progress span{
  background:#fff
}

.maintenance-order-detail-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  margin-bottom:12px
}

.maintenance-order-detail-grid>div{
  min-width:0;
  display:grid;
  gap:5px;
  padding:10px;
  border:1px solid #dfe7ee;
  border-radius:10px;
  background:#fff
}

.maintenance-order-detail-grid b{
  color:#718295;
  font-size:9px;
  text-transform:uppercase
}

.maintenance-order-detail-grid span{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#2d4358;
  font-size:11px
}

.maintenance-flow-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-bottom:14px
}

.maintenance-flow-card{
  min-width:0;
  display:grid;
  grid-template-columns:42px minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  padding:11px;
  border:1px solid #cfe0eb;
  border-left:4px solid #2d719c;
  border-radius:11px;
  background:#f5fbfe
}

.maintenance-flow-card.visit{
  border-left-color:#d18b18;
  background:#fffaf0
}

.maintenance-flow-card.empty-state{
  opacity:.92
}

.maintenance-flow-icon{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:10px;
  color:#fff;
  background:#2d719c;
  font-size:18px;
  font-weight:900
}

.maintenance-flow-card.visit .maintenance-flow-icon{
  background:#c37e10
}

.maintenance-flow-card>div:not(.maintenance-flow-actions){
  min-width:0;
  display:grid;
  gap:2px
}

.maintenance-flow-card b{
  color:#65798d;
  font-size:9px;
  text-transform:uppercase
}

.maintenance-flow-card strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#17365d;
  font-size:12px
}

.maintenance-flow-card small{
  color:#718295;
  font-size:9px;
  line-height:1.35
}

.maintenance-flow-actions{
  display:flex;
  gap:5px;
  flex-wrap:wrap;
  justify-content:flex-end
}

.maintenance-section-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  margin-bottom:9px
}

.maintenance-section-heading h4{
  margin:3px 0 0;
  color:#17365d
}

.maintenance-section-heading>span{
  color:#718295;
  font-size:10px
}

.maintenance-result-fields{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:12px
}

.maintenance-order-actions{
  flex-wrap:wrap
}

.maintenance-order-trash-banner{
  display:grid;
  gap:3px;
  margin-bottom:12px;
  padding:11px 13px;
  border:1px solid #e3c0c8;
  border-left:5px solid #8d4d5d;
  border-radius:10px;
  color:#71424e;
  background:#fff3f6
}

.maintenance-order-trash-banner b{
  font-size:11px;
  text-transform:uppercase
}

.maintenance-order-trash-banner span{
  font-size:11px
}

.maintenance-order-trash-banner small{
  color:#8d6470;
  font-size:9px
}

/* Modal de papelera */
.maintenance-delete-summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:11px;
  border:1px solid #dce5ec;
  border-radius:10px;
  background:#f8fafc
}

.maintenance-delete-summary>div{
  display:grid;
  gap:2px
}

.maintenance-delete-summary b{
  color:#17365d
}

.maintenance-delete-summary span{
  color:#687c8e;
  font-size:10px
}

.maintenance-delete-options{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px
}

.maintenance-delete-option{
  display:flex;
  gap:9px;
  align-items:flex-start;
  padding:12px;
  border:1px solid #d8e3eb;
  border-radius:11px;
  background:#fff;
  cursor:pointer
}

.maintenance-delete-option.recommended{
  border-color:#84b6d3;
  background:#f0f8fc
}

.maintenance-delete-option.disabled{
  opacity:.55;
  cursor:not-allowed
}

.maintenance-delete-option input{
  margin-top:3px
}

.maintenance-delete-option span{
  display:grid;
  gap:3px
}

.maintenance-delete-option b{
  color:#17365d;
  font-size:11px
}

.maintenance-delete-option small{
  color:#708294;
  font-size:9px;
  line-height:1.4
}

.maintenance-delete-blockers{
  display:grid;
  gap:3px;
  padding:10px;
  border:1px solid #efc37d;
  border-radius:10px;
  color:#76510d;
  background:#fff8e7;
  font-size:10px
}

.maintenance-agenda-context{
  display:grid;
  gap:3px;
  padding:10px;
  border:1px solid #b9d8e9;
  border-radius:9px;
  color:#285a79;
  background:#f0f9fd;
  font-size:10px
}

/* Tarjetas para móvil/tableta */
@media(max-width:1180px){
  .maintenance-metrics{
    grid-template-columns:repeat(3,minmax(0,1fr))
  }

  .maintenance-table-desktop{
    display:none
  }

  .maintenance-order-cards{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    padding:0 12px 13px
  }

  .maintenance-order-card{
    min-width:0;
    display:grid;
    gap:8px;
    padding:13px;
    border:1px solid #d9e4ec;
    border-left:5px solid #6686a1;
    border-radius:13px;
    background:#fff;
    box-shadow:0 7px 18px rgba(23,54,93,.07)
  }

  .maintenance-order-card.overdue{
    border-left-color:#c83838
  }

  .maintenance-order-card.today,
  .maintenance-order-card.tomorrow,
  .maintenance-order-card.week{
    border-left-color:#d58f18
  }

  .maintenance-order-card.working{
    border-left-color:#267ca9
  }

  .maintenance-order-card.completed{
    border-left-color:#2b8950
  }

  .maintenance-order-card-top{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:8px
  }

  .maintenance-order-card-top>div{
    display:grid;
    gap:2px
  }

  .maintenance-order-card-top small{
    color:#758699;
    font-size:9px
  }

  .maintenance-order-card h4{
    margin:0;
    color:#263d52;
    font-size:13px
  }

  .maintenance-order-card>p{
    margin:0;
    color:#708194;
    font-size:10px
  }

  .maintenance-order-card-meta{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:6px
  }

  .maintenance-order-card-meta>span{
    min-width:0;
    display:grid;
    gap:3px;
    padding:7px;
    border:1px solid #e0e8ee;
    border-radius:8px;
    color:#516779;
    background:#f8fafc;
    font-size:9px
  }

  .maintenance-order-card-meta b{
    color:#8190a0;
    font-size:8px;
    text-transform:uppercase
  }

  .maintenance-card-progress,
  .maintenance-card-visit{
    color:#718295;
    font-size:9px
  }

  .maintenance-card-visit{
    padding:7px;
    border-radius:8px;
    background:#fff7e7
  }

  .maintenance-card-actions{
    display:flex;
    gap:6px;
    flex-wrap:wrap
  }

  .maintenance-card-actions .btn{
    flex:1 1 100px
  }
}

@media(max-width:900px){
  .maintenance-hero{
    align-items:stretch;
    flex-direction:column
  }

  .maintenance-hero-actions{
    justify-content:flex-start
  }

  .maintenance-workspace-top{
    align-items:flex-start;
    flex-direction:column
  }

  .maintenance-priority-hint{
    display:none
  }

  .maintenance-filter-bar{
    grid-template-columns:1fr 1fr
  }

  .maintenance-filter-bar .ticket-search-box{
    grid-column:1/-1
  }

  .maintenance-order-overview{
    grid-template-columns:1fr
  }

  .maintenance-order-detail-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))
  }

  .maintenance-flow-grid,
  .maintenance-result-fields{
    grid-template-columns:1fr
  }
}

@media(max-width:650px){
  .maintenance-hero{
    padding:16px;
    border-radius:16px
  }

  .maintenance-hero-actions{
    display:grid;
    grid-template-columns:1fr;
    width:100%
  }

  .maintenance-hero-actions .btn{
    width:100%
  }

  .maintenance-metrics{
    display:flex;
    overflow-x:auto;
    gap:8px;
    padding-bottom:4px
  }

  .maintenance-metric{
    min-width:145px
  }

  .maintenance-bucket-tabs{
    width:100%;
    overflow-x:auto
  }

  .maintenance-bucket-tab{
    flex:0 0 auto
  }

  .maintenance-filter-bar{
    grid-template-columns:1fr;
    padding:10px
  }

  .maintenance-filter-bar .ticket-search-box{
    grid-column:auto
  }

  .maintenance-list-heading{
    align-items:stretch;
    flex-direction:column;
    padding:12px
  }

  .maintenance-visible-counter{
    align-self:flex-start
  }

  .maintenance-order-cards{
    grid-template-columns:1fr
  }

  .maintenance-order-card-meta{
    grid-template-columns:1fr 1fr
  }

  .maintenance-flow-card{
    grid-template-columns:38px minmax(0,1fr)
  }

  .maintenance-flow-card>.btn,
  .maintenance-flow-actions{
    grid-column:1/-1
  }

  .maintenance-flow-actions{
    justify-content:stretch
  }

  .maintenance-flow-actions .btn,
  .maintenance-flow-card>.btn{
    width:100%
  }

  .maintenance-delete-options{
    grid-template-columns:1fr
  }

  .maintenance-order-actions .btn{
    width:100%
  }
}


/* =========================================================
   2.7.0 - CONTRATOS Y CONSUMO DE SERVICIOS
   ========================================================= */

.contracts-hero{
  position:relative;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:14px;
  padding:22px;
  border-radius:20px;
  color:#fff;
  background:
    radial-gradient(
      circle at 92% 20%,
      rgba(255,255,255,.18),
      transparent 30%
    ),
    linear-gradient(
      135deg,
      #102b4e,
      #1d4d77 62%,
      #176475
    );
  box-shadow:0 20px 48px rgba(23,54,93,.20)
}

.contracts-hero>div{
  position:relative;
  z-index:1
}

.contracts-hero h2{
  margin:5px 0;
  font-size:25px
}

.contracts-hero p{
  max-width:720px;
  margin:0;
  color:#d7e8f3;
  font-size:12px;
  line-height:1.45
}

.contracts-hero .operations-panel-kicker{
  color:#bce0f4
}

.contracts-hero-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap
}

.contracts-hero-actions input{
  width:150px;
  min-height:42px;
  border-color:rgba(255,255,255,.45);
  background:#fff
}

.contract-alerts{
  display:grid;
  gap:8px;
  margin-bottom:12px
}

.contract-alert{
  display:grid;
  grid-template-columns:38px minmax(0,1fr);
  gap:10px;
  align-items:center;
  padding:11px 13px;
  border:1px solid #d9e3eb;
  border-left-width:5px;
  border-radius:12px;
  background:#fff
}

.contract-alert>span{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:10px;
  font-weight:900
}

.contract-alert b{
  display:block;
  margin-bottom:2px;
  color:#263b50;
  font-size:12px
}

.contract-alert p{
  margin:0;
  color:#667085;
  font-size:11px
}

.contract-alert.success{
  border-left-color:#2f8a52;
  background:#f3fbf5
}

.contract-alert.success>span{
  color:#217341;
  background:#ddf4e5
}

.contract-alert.warning{
  border-left-color:#d69821;
  background:#fffaf0
}

.contract-alert.warning>span{
  color:#8c5b00;
  background:#ffefc5
}

.contract-alert.danger{
  border-left-color:#c83c3c;
  background:#fff6f6
}

.contract-alert.danger>span{
  color:#a12424;
  background:#fde0e0
}

.current-contract-card{
  margin-bottom:12px;
  border:1px solid #cadbe7;
  border-radius:17px;
  background:#fff;
  box-shadow:0 10px 26px rgba(23,54,93,.08)
}

.current-contract-main{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:15px;
  padding:16px 17px;
  border-bottom:1px solid #e0e8ef
}

.current-contract-title{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0
}

.contract-current-icon{
  width:46px;
  height:46px;
  flex:0 0 46px;
  display:grid;
  place-items:center;
  border-radius:13px;
  color:#fff;
  background:linear-gradient(135deg,#1f4e78,#277e92);
  box-shadow:0 8px 18px rgba(31,78,120,.20);
  font-size:20px;
  font-weight:900
}

.current-contract-title>div{
  min-width:0
}

.current-contract-title span{
  color:#6f8193;
  font-size:9px;
  font-weight:900;
  letter-spacing:.8px
}

.current-contract-title h3{
  margin:3px 0;
  color:#17365d;
  font-size:18px
}

.current-contract-title p{
  margin:0;
  color:#667085;
  font-size:11px
}

.current-contract-status{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end
}

.current-contract-details{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1px;
  background:#e4ebf0
}

.current-contract-details span{
  display:grid;
  gap:4px;
  padding:12px 14px;
  color:#40586d;
  background:#f9fbfd;
  font-size:11px
}

.current-contract-details b{
  color:#758698;
  font-size:9px;
  letter-spacing:.35px;
  text-transform:uppercase
}

.contract-empty-current{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  padding:17px
}

.contract-empty-current>div{
  display:flex;
  align-items:center;
  gap:12px
}

.contract-empty-current h3{
  margin:0 0 3px;
  color:#17365d
}

.contract-empty-current p{
  margin:0;
  color:#667085;
  font-size:11px
}

.contract-metrics{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:9px;
  margin-bottom:12px
}

.contract-metric{
  min-width:0;
  padding:13px;
  border:1px solid #d9e3eb;
  border-top:4px solid #1f4e78;
  border-radius:13px;
  background:#fff;
  box-shadow:0 7px 18px rgba(23,54,93,.06)
}

.contract-metric>span{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#68798b;
  font-size:9px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.35px
}

.contract-metric strong{
  display:block;
  margin:5px 0 3px;
  overflow:hidden;
  text-overflow:ellipsis;
  color:#17365d;
  font-size:23px
}

.contract-metric small{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#7c8b99;
  font-size:9px
}

.contract-metric.info{
  border-top-color:#2383ad
}

.contract-metric.warning{
  border-top-color:#d69821
}

.contract-metric.success{
  border-top-color:#2f8a52
}

.contract-metric.purple{
  border-top-color:#7556b6
}

.contract-metric.danger{
  border-top-color:#c83c3c
}

.contract-progress-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-bottom:12px
}

.contract-progress-card{
  padding:13px 15px;
  border:1px solid #d9e3eb;
  border-radius:13px;
  background:#fff
}

.contract-progress-card>div:first-child{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  color:#40586d;
  font-size:11px;
  font-weight:900
}

.contract-progress-track{
  height:10px;
  overflow:hidden;
  margin:9px 0 6px;
  border-radius:999px;
  background:#e8eef3
}

.contract-progress-track span{
  display:block;
  width:0;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,#1f4e78,#2e91b0);
  transition:width .25s ease
}

.contract-progress-track span.warning{
  background:linear-gradient(90deg,#d99a26,#e7b347)
}

.contract-progress-track span.over{
  background:linear-gradient(90deg,#b72828,#d94c4c)
}

.contract-progress-card small{
  color:#778899;
  font-size:10px
}

.contract-layout{
  display:grid;
  grid-template-columns:minmax(0,1.65fr)
                        minmax(280px,.65fr);
  gap:12px;
  align-items:start
}

.contract-services-panel,
.contract-history-panel{
  margin:0
}

.contract-service-summary{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  padding:0 16px 12px
}

.contract-service-summary span{
  display:flex;
  align-items:baseline;
  gap:5px;
  padding:7px 10px;
  border:1px solid #dce5ec;
  border-radius:9px;
  color:#68798a;
  background:#f8fafc;
  font-size:9px;
  text-transform:uppercase
}

.contract-service-summary b{
  color:#17365d;
  font-size:15px
}

.contract-table-wrap{
  max-height:none
}

.contract-services-table td small,
.contract-services-table td b{
  display:block
}

.contract-services-table td small{
  margin-top:3px;
  color:#778899;
  font-size:9px
}

.contract-ticket-cards{
  display:none
}

.contract-history-list{
  display:grid;
  gap:8px
}

.contract-history-item{
  display:grid;
  gap:5px;
  padding:11px;
  border:1px solid #dce5ec;
  border-left:4px solid #9aabb9;
  border-radius:10px;
  background:#fbfdff
}

.contract-history-item.active{
  border-left-color:#2f8a52;
  background:#f5fbf7
}

.contract-history-item>div{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:8px
}

.contract-history-item>div b{
  color:#253b50;
  font-size:11px
}

.contract-history-item>strong{
  color:#17365d;
  font-size:11px
}

.contract-history-item>span,
.contract-history-item>small{
  color:#708193;
  font-size:9px
}

.contract-history-item .btn{
  justify-self:start
}

/* Formulario de contrato */
.contract-form-intro{
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px;
  border:1px solid #c9dce9;
  border-radius:11px;
  background:#f2f8fc
}

.contract-form-intro b{
  color:#17365d
}

.contract-form-intro p{
  margin:3px 0 0;
  color:#64778a;
  font-size:11px
}

.contract-equipment-picker{
  padding:10px;
  border:1px solid #d7e2ea;
  border-radius:11px;
  background:#f8fafc
}

.contract-equipment-help{
  margin-bottom:8px;
  color:#64778a;
  font-size:10px
}

.contract-equipment-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;
  max-height:260px;
  overflow:auto
}

.contract-equipment-item{
  display:flex;
  align-items:flex-start;
  gap:7px;
  padding:8px;
  border:1px solid #dce5ec;
  border-radius:8px;
  background:#fff;
  cursor:pointer
}

.contract-equipment-item input{
  width:auto;
  margin-top:3px
}

.contract-equipment-item span{
  min-width:0;
  display:grid;
  gap:2px
}

.contract-equipment-item b,
.contract-equipment-item small,
.contract-equipment-item em{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}

.contract-equipment-item b{
  color:#17365d;
  font-size:10px
}

.contract-equipment-item small{
  color:#40576c;
  font-size:9px
}

.contract-equipment-item em{
  color:#80909f;
  font-size:8px;
  font-style:normal
}

/* Integración dentro del ticket */
.ticket-contract-panel{
  margin:14px 0;
  padding:14px;
  border:1px solid #bfd4e2;
  border-left:5px solid #1f6f86;
  border-radius:13px;
  background:#f4fafd
}

.ticket-contract-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px
}

.ticket-contract-head h4{
  margin:3px 0;
  color:#17365d
}

.ticket-contract-head p{
  margin:0;
  color:#66798a;
  font-size:10px
}

.ticket-contract-head-actions{
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
  justify-content:flex-end
}

.ticket-contract-summary{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:7px;
  margin-bottom:10px
}

.ticket-contract-summary span{
  display:grid;
  gap:3px;
  padding:9px;
  border:1px solid #d7e4ec;
  border-radius:9px;
  color:#334d61;
  background:#fff;
  font-size:11px
}

.ticket-contract-summary b{
  color:#7a8a99;
  font-size:8px;
  text-transform:uppercase
}

.ticket-consumption-form{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  padding:11px;
  border:1px solid #d7e3eb;
  border-radius:10px;
  background:#fff
}

.ticket-consumption-form .span2{
  grid-column:span 2
}

.ticket-materials-section{
  margin-top:12px;
  padding-top:12px;
  border-top:1px solid #d5e2ea
}

.ticket-materials-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  margin-bottom:8px
}

.ticket-materials-head h4{
  margin:0 0 2px;
  color:#17365d
}

.ticket-materials-head p{
  margin:0;
  color:#718295;
  font-size:10px
}

.ticket-materials-head strong{
  color:#17365d
}

.ticket-materials-table td small{
  display:block;
  color:#7b8997;
  font-size:9px
}

.ticket-material-form{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  margin-top:9px;
  padding:10px;
  border:1px solid #dce5ec;
  border-radius:10px;
  background:#fff
}

.ticket-material-form .span2{
  grid-column:span 2
}

@media(max-width:1250px){
  .contract-metrics{
    grid-template-columns:repeat(3,minmax(0,1fr))
  }

  .contract-equipment-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))
  }

  .ticket-consumption-form,
  .ticket-material-form{
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
}

@media(max-width:980px){
  .contracts-hero{
    align-items:stretch;
    flex-direction:column
  }

  .contracts-hero-actions{
    justify-content:flex-start
  }

  .contract-layout{
    grid-template-columns:1fr
  }

  .current-contract-details{
    grid-template-columns:repeat(2,minmax(0,1fr))
  }

  .contract-services-table{
    display:none
  }

  .contract-ticket-cards{
    display:grid;
    gap:9px;
    padding:0 12px 12px
  }

  .contract-ticket-card{
    display:grid;
    gap:8px;
    padding:12px;
    border:1px solid #d9e3eb;
    border-left:5px solid #2f718d;
    border-radius:11px;
    background:#fff
  }

  .contract-ticket-card>div:first-child{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px
  }

  .contract-ticket-card h4{
    margin:0;
    color:#293f52;
    font-size:13px
  }

  .contract-ticket-card-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:6px
  }

  .contract-ticket-card-grid span{
    display:grid;
    gap:2px;
    padding:7px;
    border:1px solid #e0e8ef;
    border-radius:7px;
    color:#4c6275;
    background:#f8fafc;
    font-size:10px
  }

  .contract-ticket-card-grid b{
    color:#82909d;
    font-size:8px;
    text-transform:uppercase
  }
}

@media(max-width:700px){
  .contracts-hero{
    padding:17px;
    border-radius:16px
  }

  .contracts-hero h2{
    font-size:21px
  }

  .contracts-hero-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    width:100%
  }

  .contracts-hero-actions input{
    width:100%;
    grid-column:1/-1
  }

  .contracts-hero-actions .btn{
    width:100%
  }

  .contract-metrics{
    grid-template-columns:repeat(2,minmax(0,1fr))
  }

  .contract-progress-grid{
    grid-template-columns:1fr
  }

  .current-contract-main,
  .contract-empty-current{
    align-items:stretch;
    flex-direction:column
  }

  .current-contract-status{
    justify-content:flex-start
  }

  .current-contract-details{
    grid-template-columns:1fr
  }

  .contract-equipment-grid{
    grid-template-columns:1fr
  }

  .ticket-contract-head{
    flex-direction:column
  }

  .ticket-contract-head-actions{
    justify-content:flex-start
  }

  .ticket-contract-summary{
    grid-template-columns:repeat(2,minmax(0,1fr))
  }

  .ticket-consumption-form,
  .ticket-material-form{
    grid-template-columns:1fr
  }

  .ticket-consumption-form .span2,
  .ticket-material-form .span2{
    grid-column:auto
  }

  .ticket-materials-table{
    min-width:720px
  }
}

@media(max-width:460px){
  .contracts-hero-actions{
    grid-template-columns:1fr
  }

  .contracts-hero-actions input{
    grid-column:auto
  }

  .contract-metrics{
    grid-template-columns:1fr
  }

  .contract-ticket-card-grid,
  .ticket-contract-summary{
    grid-template-columns:1fr
  }
}


/* =========================================================
   2.7.1 - AUTOAJUSTE Y DESGLOSE DE FACTURACIÓN
   ========================================================= */

*,
*::before,
*::after{
  box-sizing:border-box
}

/* ---------------------------------------------------------
   MODAL DE TICKET: nunca ensanchar toda la aplicación
   --------------------------------------------------------- */

.modal-card.modal-ticket{
  width:min(1480px,calc(100vw - 28px));
  max-width:calc(100vw - 28px);
  min-width:0
}

.modal-card.modal-ticket .modal-body{
  width:100%;
  max-width:100%;
  overflow-x:hidden
}

.modal-card.modal-ticket .ticket-summary,
.modal-card.modal-ticket .ticket-summary>*,
.modal-card.modal-ticket .ticket-contract-panel,
.modal-card.modal-ticket .ticket-management,
.modal-card.modal-ticket .ticket-description,
.modal-card.modal-ticket .ticket-resolution,
.modal-card.modal-ticket .ticket-attachments,
.modal-card.modal-ticket .ticket-activity,
.modal-card.modal-ticket .technical-visits-panel,
.modal-card.modal-ticket .ticket-agenda-panel{
  width:100%;
  max-width:100%;
  min-width:0
}

.modal-card.modal-ticket .table-wrap{
  width:100%;
  max-width:100%;
  overflow-x:auto;
  overflow-y:visible;
  overscroll-behavior-x:contain;
  scrollbar-width:thin
}

.modal-card.modal-ticket
.ticket-consumption-form>*,
.modal-card.modal-ticket
.ticket-material-form>*,
.modal-card.modal-ticket
.modal-form>*{
  min-width:0
}

.modal-card.modal-ticket input,
.modal-card.modal-ticket select,
.modal-card.modal-ticket textarea,
.modal-card.modal-ticket button{
  max-width:100%
}

.modal-card.modal-ticket
.ticket-consumption-form input,
.modal-card.modal-ticket
.ticket-consumption-form select,
.modal-card.modal-ticket
.ticket-consumption-form textarea,
.modal-card.modal-ticket
.ticket-material-form input,
.modal-card.modal-ticket
.ticket-material-form select,
.modal-card.modal-ticket
.ticket-material-form textarea{
  width:100%;
  min-width:0
}

.modal-card.modal-ticket
.ticket-sticky-actions{
  width:auto;
  max-width:calc(100% + 40px);
  justify-content:flex-end;
  overflow-x:auto;
  overflow-y:hidden;
  scrollbar-width:thin
}

.modal-card.modal-ticket
.ticket-sticky-actions .btn{
  flex:0 0 auto
}

/* Formulario de materiales ordenado por funciones */
@media(min-width:1260px){
  .modal-card.modal-ticket
  .ticket-material-form{
    grid-template-columns:
      minmax(240px,2.1fr)
      minmax(90px,.6fr)
      minmax(120px,.8fr)
      minmax(120px,.9fr)
      minmax(120px,.9fr);
    align-items:end
  }

  .modal-card.modal-ticket
  .ticket-material-form
  .material-description-field{
    grid-column:span 2
  }

  .modal-card.modal-ticket
  .ticket-material-form
  .material-billable-field{
    grid-column:1/4
  }

  .modal-card.modal-ticket
  .ticket-material-form
  .material-submit-field{
    grid-column:4/6
  }
}

@media(max-width:1259px) and (min-width:701px){
  .modal-card.modal-ticket
  .ticket-material-form,
  .modal-card.modal-ticket
  .ticket-consumption-form{
    grid-template-columns:repeat(2,minmax(0,1fr))
  }

  .modal-card.modal-ticket
  .ticket-material-form
  .span2,
  .modal-card.modal-ticket
  .ticket-consumption-form
  .span2{
    grid-column:span 2
  }
}

@media(max-width:700px){
  .modal-card.modal-ticket{
    width:100%;
    max-width:100%
  }

  .modal-card.modal-ticket
  .ticket-sticky-actions{
    max-width:none
  }
}

/* ---------------------------------------------------------
   DESGLOSE DENTRO DEL TICKET
   --------------------------------------------------------- */

.ticket-contract-summary .has-charge{
  border-color:#e3be67;
  background:#fff9e9
}

.ticket-additional-breakdown{
  margin:10px 0;
  padding:11px;
  border:1px solid #e3d09d;
  border-left:5px solid #d49a22;
  border-radius:11px;
  background:#fffaf0
}

.ticket-additional-breakdown-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:9px
}

.ticket-additional-breakdown-head>div{
  min-width:0
}

.ticket-additional-breakdown-head b{
  display:block;
  color:#654a17;
  font-size:12px
}

.ticket-additional-breakdown-head span{
  display:block;
  margin-top:2px;
  color:#7b6b4e;
  font-size:10px
}

.ticket-additional-breakdown-head strong{
  flex:0 0 auto;
  color:#805710;
  font-size:17px
}

.ticket-additional-breakdown-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:7px
}

.ticket-additional-breakdown-grid span{
  min-width:0;
  display:grid;
  gap:3px;
  padding:8px;
  border:1px solid #ebdcb9;
  border-radius:8px;
  color:#624e2d;
  background:#fff;
  font-size:11px;
  font-weight:800
}

.ticket-additional-breakdown-grid b{
  color:#8b7959;
  font-size:8px;
  text-transform:uppercase
}

.ticket-additional-document{
  margin-top:8px;
  padding:8px;
  border-radius:8px;
  color:#5a4a30;
  background:#f5ead1;
  font-size:11px
}

.ticket-additional-document b{
  margin-right:6px;
  color:#7b5a1e
}

/* ---------------------------------------------------------
   CONTRATOS: sección inferior a todo el ancho
   --------------------------------------------------------- */

.contract-layout{
  grid-template-columns:minmax(0,1fr);
  align-items:stretch
}

.contract-services-panel,
.contract-history-panel{
  min-width:0;
  overflow:hidden
}

.contract-history-panel{
  margin-top:0
}

.contract-history-list{
  display:grid;
  grid-template-columns:repeat(
    auto-fit,
    minmax(250px,1fr)
  );
  gap:9px
}

.contract-table-wrap{
  width:100%;
  max-width:100%;
  overflow-x:auto;
  overflow-y:visible;
  overscroll-behavior-x:contain;
  scrollbar-width:thin
}

.contract-services-table{
  min-width:1050px;
  table-layout:auto
}

.contract-services-table th,
.contract-services-table td{
  vertical-align:top
}

.contract-services-table th:nth-child(1){
  width:145px
}

.contract-services-table th:nth-child(2){
  min-width:285px
}

.contract-services-table th:nth-child(6){
  min-width:225px
}

/* ---------------------------------------------------------
   PANEL DE FACTURACIÓN ADICIONAL
   --------------------------------------------------------- */

.contract-billing-panel{
  margin-bottom:12px;
  overflow:hidden;
  border:1px solid #d7e1e9;
  border-radius:16px;
  background:#fff;
  box-shadow:0 9px 24px rgba(23,54,93,.07)
}

.contract-billing-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:15px 17px;
  color:#fff;
  background:
    radial-gradient(
      circle at 88% 18%,
      rgba(255,255,255,.18),
      transparent 30%
    ),
    linear-gradient(
      135deg,
      #3f2f12,
      #7d5817 65%,
      #9b6f20
    )
}

.contract-billing-head h2{
  margin:4px 0 3px;
  font-size:18px
}

.contract-billing-head p{
  margin:0;
  color:#f5ead4;
  font-size:11px
}

.contract-billing-head
.operations-panel-kicker{
  color:#f0d89d
}

.contract-billing-total{
  flex:0 0 auto;
  display:grid;
  gap:2px;
  min-width:215px;
  padding:10px 13px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:11px;
  text-align:right;
  background:rgba(255,255,255,.10)
}

.contract-billing-total span,
.contract-billing-total small{
  color:#f7ebce;
  font-size:9px
}

.contract-billing-total strong{
  color:#fff;
  font-size:22px
}

.contract-billing-metrics{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  padding:12px 14px;
  border-bottom:1px solid #e1e8ee;
  background:#fffdf8
}

.contract-billing-metrics article{
  min-width:0;
  display:flex;
  align-items:center;
  gap:9px;
  padding:10px;
  border:1px solid #e5ddd0;
  border-radius:10px;
  background:#fff
}

.contract-billing-icon{
  width:34px;
  height:34px;
  flex:0 0 34px;
  display:grid;
  place-items:center;
  border-radius:9px;
  font-size:13px;
  font-weight:900
}

.contract-billing-icon.labor{
  color:#255d87;
  background:#e7f1f8
}

.contract-billing-icon.materials{
  color:#277044;
  background:#e7f6ec
}

.contract-billing-icon.transport{
  color:#8a5b0c;
  background:#fff2d3
}

.contract-billing-icon.other{
  color:#753d8f;
  background:#f3eafa
}

.contract-billing-metrics article>div{
  min-width:0;
  display:grid;
  gap:2px
}

.contract-billing-metrics small{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#7d8995;
  font-size:8px;
  text-transform:uppercase
}

.contract-billing-metrics strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#263d50;
  font-size:14px
}

.contract-billing-list{
  display:grid;
  gap:7px;
  padding:12px 14px 14px
}

.contract-billing-item{
  overflow:hidden;
  border:1px solid #dce5ec;
  border-left:5px solid #cf921f;
  border-radius:10px;
  background:#fff
}

.contract-billing-item-main{
  width:100%;
  min-width:0;
  display:grid;
  grid-template-columns:
    135px
    minmax(0,1fr)
    165px
    65px;
  gap:11px;
  align-items:center;
  padding:10px 12px;
  border:0;
  text-align:left;
  color:inherit;
  background:#fffdf8;
  cursor:pointer
}

.contract-billing-ticket-code{
  color:#17365d;
  font-size:11px;
  font-weight:900
}

.contract-billing-service{
  min-width:0;
  display:grid;
  gap:2px
}

.contract-billing-service b,
.contract-billing-service small{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}

.contract-billing-service b{
  color:#2c4052;
  font-size:11px
}

.contract-billing-service small{
  color:#778696;
  font-size:9px
}

.contract-billing-amount{
  display:grid;
  gap:2px;
  text-align:right
}

.contract-billing-amount small{
  color:#8a7a5c;
  font-size:8px;
  text-transform:uppercase
}

.contract-billing-amount strong{
  color:#805710;
  font-size:14px
}

.contract-billing-arrow{
  color:#1f4e78;
  font-size:10px;
  font-weight:900
}

.contract-charge-lines{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:6px
}

.contract-charge-lines.compact{
  padding:0 12px 10px
}

.contract-charge-lines span{
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:6px;
  padding:6px 7px;
  border:1px solid #e1e7ec;
  border-radius:7px;
  color:#40576b;
  background:#f8fafc;
  font-size:9px;
  font-weight:800
}

.contract-charge-lines span b{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#7b8997;
  font-size:8px
}

.contract-charge-lines
span.labor{
  border-left:3px solid #4384ad
}

.contract-charge-lines
span.materials{
  border-left:3px solid #3f9160
}

.contract-charge-lines
span.transport{
  border-left:3px solid #d09a31
}

.contract-charge-lines
span.other{
  border-left:3px solid #8654a1
}

.contract-no-charge{
  display:block;
  margin-top:4px;
  color:#8a98a5;
  font-size:9px
}

.contract-billing-empty{
  display:flex;
  align-items:center;
  gap:11px;
  padding:13px;
  border:1px dashed #cbd8e2;
  border-radius:10px;
  color:#607386;
  background:#f9fbfd
}

.contract-billing-empty>span{
  width:36px;
  height:36px;
  flex:0 0 36px;
  display:grid;
  place-items:center;
  border-radius:50%;
  color:#287247;
  background:#e3f5e9;
  font-weight:900
}

.contract-billing-empty b{
  color:#30475b;
  font-size:11px
}

.contract-billing-empty p{
  margin:2px 0 0;
  font-size:10px
}

/* Desglose compacto dentro de la tabla de servicios */
.contract-ticket-charge-cell>
b.has-charge{
  color:#9a650b
}

.contract-ticket-charge-cell
.contract-charge-lines{
  grid-template-columns:1fr 1fr;
  margin-top:6px
}

.contract-ticket-charge-cell
.contract-charge-lines span{
  padding:4px 5px;
  font-size:8px
}

.contract-ticket-charge-cell
.contract-charge-lines span b{
  display:none
}

.contract-document-number{
  display:block;
  margin-top:5px!important;
  color:#5d7184!important
}

.contract-ticket-card-grid
.has-charge{
  border-color:#e3c471;
  color:#805710;
  background:#fff8e6
}

.contract-ticket-card-charges{
  min-width:0
}

.contract-card-document{
  padding:8px;
  border:1px solid #dce5ec;
  border-radius:8px;
  color:#53697b;
  background:#f8fafc;
  font-size:10px
}

.contract-card-document b{
  display:block;
  margin-bottom:2px;
  color:#82909d;
  font-size:8px;
  text-transform:uppercase
}

@media(max-width:1100px){
  .contract-services-table{
    display:none
  }

  .contract-ticket-cards{
    display:grid;
    gap:9px;
    padding:0 12px 12px
  }

  .contract-billing-item-main{
    grid-template-columns:
      120px
      minmax(0,1fr)
      145px;
  }

  .contract-billing-arrow{
    display:none
  }
}

@media(max-width:800px){
  .ticket-additional-breakdown-grid,
  .contract-billing-metrics,
  .contract-charge-lines{
    grid-template-columns:repeat(2,minmax(0,1fr))
  }

  .contract-billing-head{
    align-items:stretch;
    flex-direction:column
  }

  .contract-billing-total{
    min-width:0;
    text-align:left
  }

  .contract-billing-item-main{
    grid-template-columns:105px minmax(0,1fr)
  }

  .contract-billing-amount{
    grid-column:1/-1;
    text-align:left
  }
}

@media(max-width:520px){
  .ticket-additional-breakdown-head{
    align-items:stretch;
    flex-direction:column
  }

  .ticket-additional-breakdown-head strong{
    font-size:20px
  }

  .ticket-additional-breakdown-grid,
  .contract-billing-metrics,
  .contract-charge-lines{
    grid-template-columns:1fr
  }

  .contract-billing-item-main{
    grid-template-columns:1fr
  }

  .contract-billing-service b,
  .contract-billing-service small{
    white-space:normal
  }

  .contract-billing-amount{
    grid-column:auto
  }

  .contract-history-list{
    grid-template-columns:1fr
  }
}


/* =========================================================
   2.7.2 - BLOQUEO FINANCIERO DE TICKETS CERRADOS
   ========================================================= */

.ticket-financial-lock{
  display:grid;
  grid-template-columns:48px minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  margin:10px 0;
  padding:13px;
  border:1px solid #e4c66f;
  border-left:5px solid #b77b0d;
  border-radius:11px;
  background:
    linear-gradient(
      135deg,
      #fff9e8,
      #fffdf7
    )
}

.ticket-financial-lock-icon{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border-radius:11px;
  background:#f5df9c;
  font-size:20px
}

.ticket-financial-lock-content{
  min-width:0
}

.ticket-financial-lock-content b{
  display:block;
  color:#67470d;
  font-size:13px
}

.ticket-financial-lock-content p{
  margin:3px 0;
  color:#65583f;
  font-size:11px;
  line-height:1.4
}

.ticket-financial-lock-content span{
  display:block;
  color:#887553;
  font-size:10px
}

.ticket-financial-lock-permission{
  max-width:190px;
  color:#796a4d;
  font-size:10px;
  text-align:right
}

.ticket-materials-total{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap
}

.ticket-materials-total strong{
  color:#17365d;
  font-size:16px
}

.ticket-financial-lock + .ticket-contract-summary{
  opacity:.93
}

@media(max-width:760px){
  .ticket-financial-lock{
    grid-template-columns:42px minmax(0,1fr)
  }

  .ticket-financial-lock .btn,
  .ticket-financial-lock-permission{
    grid-column:1/-1;
    width:100%;
    max-width:none;
    text-align:center
  }
}

@media(max-width:520px){
  .ticket-financial-lock{
    grid-template-columns:1fr
  }

  .ticket-financial-lock-icon{
    width:38px;
    height:38px
  }
}


/* =========================================================
   2.8.0 - RESPUESTA Y CONFORMIDAD DEL CLIENTE
   ========================================================= */

.client-feedback-panel{
  display:grid;
  grid-template-columns:46px minmax(0,1fr);
  gap:12px;
  margin:10px 0;
  padding:13px;
  border:1px solid #d8e3eb;
  border-left:5px solid #8094a6;
  border-radius:11px;
  background:#f8fafc
}

.client-feedback-panel.approved{
  border-color:#b9dec5;
  border-left-color:#2e8a54;
  background:#f1fbf4
}

.client-feedback-panel.reopened{
  border-color:#efc38b;
  border-left-color:#c16b12;
  background:#fff8ed
}

.client-feedback-icon{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:11px;
  color:#fff;
  background:#8094a6;
  font-size:21px;
  font-weight:900
}

.client-feedback-panel.approved
.client-feedback-icon{
  background:#2e8a54
}

.client-feedback-panel.reopened
.client-feedback-icon{
  background:#c16b12
}

.client-feedback-content{
  min-width:0
}

.client-feedback-panel h4{
  margin:4px 0 3px;
  color:#263d50;
  font-size:14px
}

.client-feedback-panel p{
  margin:0;
  color:#65778a;
  font-size:11px;
  line-height:1.45
}

.client-feedback-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap
}

.client-rating-stars{
  display:inline-flex;
  gap:2px;
  color:#cbd5df;
  font-size:17px
}

.client-rating-stars span.active{
  color:#e0a21a
}

.client-feedback-meta{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:6px;
  color:#66788a;
  font-size:10px
}

.client-feedback-meta b{
  color:#334b60
}

.client-feedback-message{
  margin-top:8px;
  padding:8px 10px;
  border:1px solid #d6e6dc;
  border-radius:8px;
  background:#fff
}

.client-feedback-message.reopen{
  border-color:#eed1aa
}

.client-feedback-message b{
  display:block;
  margin-bottom:3px;
  color:#506578;
  font-size:9px;
  text-transform:uppercase
}

.client-feedback-message p{
  color:#384e61
}

.client-feedback-current-state{
  display:inline-flex;
  margin-top:8px;
  padding:5px 8px;
  border-radius:999px;
  color:#8a4b0d;
  background:#ffead0;
  font-size:9px;
  font-weight:900
}

@media(max-width:600px){
  .client-feedback-panel{
    grid-template-columns:1fr
  }
}


/* =========================================================
   2.9.0 - CENTRO DE SALUD DEL SISTEMA
   ========================================================= */

.health-hero{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-bottom:13px;
  padding:20px 22px;
  border-radius:18px;
  color:#fff;
  background:
    radial-gradient(
      circle at 90% 15%,
      rgba(76,187,149,.32),
      transparent 30%
    ),
    linear-gradient(
      135deg,
      #122f4f,
      #185b68
    );
  box-shadow:0 16px 38px rgba(23,54,93,.18)
}

.health-hero-kicker{
  color:#aee1d5;
  font-size:9px;
  font-weight:900;
  letter-spacing:1px
}

.health-hero h2{
  margin:5px 0 4px;
  font-size:25px
}

.health-hero p{
  max-width:740px;
  margin:0;
  color:#d9edf0;
  font-size:11px;
  line-height:1.5
}

.health-hero-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap
}

.health-overview{
  display:grid;
  grid-template-columns:1.4fr repeat(5,minmax(0,1fr));
  gap:9px;
  margin-bottom:12px
}

.health-overall-card,
.health-kpi{
  min-width:0;
  display:flex;
  align-items:center;
  gap:10px;
  padding:13px;
  border:1px solid #dce5ec;
  border-radius:14px;
  background:#fff;
  box-shadow:0 7px 20px rgba(23,54,93,.07)
}

.health-overall-card{
  color:#fff;
  border-color:transparent;
  background:#6d7f90
}

.health-overall-card.healthy{
  background:
    linear-gradient(
      135deg,
      #226641,
      #2d8a58
    )
}

.health-overall-card.warning{
  background:
    linear-gradient(
      135deg,
      #8a6113,
      #c08b22
    )
}

.health-overall-card.critical{
  background:
    linear-gradient(
      135deg,
      #7f2727,
      #bd3b3b
    )
}

.health-overall-icon,
.health-kpi-icon{
  width:42px;
  height:42px;
  flex:0 0 42px;
  display:grid;
  place-items:center;
  border-radius:11px;
  font-weight:900
}

.health-overall-icon{
  color:#254458;
  background:#fff
}

.health-overall-card>div,
.health-kpi>div{
  min-width:0;
  display:grid;
  gap:2px
}

.health-overall-card small,
.health-overall-card span{
  color:rgba(255,255,255,.78)
}

.health-overall-card small,
.health-kpi small{
  font-size:8px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.4px
}

.health-overall-card strong{
  font-size:19px
}

.health-overall-card span,
.health-kpi span:last-child{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:9px
}

.health-kpi-icon.app{
  color:#27618a;
  background:#e7f2f9
}

.health-kpi-icon.database{
  color:#6e42a0;
  background:#f1eafa;
  font-size:10px
}

.health-kpi-icon.backup{
  color:#267248;
  background:#e6f7ec
}

.health-kpi-icon.disk{
  color:#99640e;
  background:#fff1d1
}

.health-kpi-icon.communication{
  color:#9b3c5b;
  background:#fbe8ef
}

.health-kpi strong{
  color:#263d50;
  font-size:14px
}

.health-status-text.healthy{
  color:#267248
}

.health-status-text.warning{
  color:#9a660f
}

.health-status-text.critical{
  color:#a52e2e
}

.health-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:11px
}

.health-panel{
  min-width:0;
  padding:14px;
  border:1px solid #dbe4eb;
  border-radius:15px;
  background:#fff;
  box-shadow:0 8px 22px rgba(23,54,93,.07)
}

.health-panel-wide{
  grid-column:1/-1
}

.health-panel-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:11px
}

.health-panel-head h3{
  margin:4px 0 2px;
  color:#263d50;
  font-size:15px
}

.health-panel-head p{
  margin:0;
  color:#728294;
  font-size:10px
}

.health-jobs{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:9px
}

.health-job-card{
  min-width:0;
  display:grid;
  gap:9px;
  padding:11px;
  border:1px solid #dce5ec;
  border-left:5px solid #879aaa;
  border-radius:10px;
  background:#fbfdff
}

.health-job-card.healthy{
  border-left-color:#2f8b55
}

.health-job-card.warning{
  border-left-color:#c18b24
}

.health-job-card.critical{
  border-left-color:#bc3e3e
}

.health-job-top{
  display:flex;
  align-items:center;
  gap:8px
}

.health-job-icon{
  width:34px;
  height:34px;
  flex:0 0 34px;
  display:grid;
  place-items:center;
  border-radius:9px;
  color:#fff;
  background:#879aaa;
  font-weight:900
}

.health-job-card.healthy
.health-job-icon{
  background:#2f8b55
}

.health-job-card.warning
.health-job-icon{
  background:#c18b24
}

.health-job-card.critical
.health-job-icon{
  background:#bc3e3e
}

.health-job-top>div{
  min-width:0;
  display:grid
}

.health-job-top b{
  color:#2a4053;
  font-size:11px
}

.health-job-top small{
  color:#758698;
  font-size:9px
}

.health-job-card p{
  min-height:30px;
  margin:0;
  color:#627587;
  font-size:10px;
  line-height:1.4
}

.health-job-card dl{
  display:grid;
  gap:5px;
  margin:0
}

.health-job-card dl>div{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding-top:5px;
  border-top:1px solid #e4ebf0
}

.health-job-card dt{
  color:#83919e;
  font-size:8px;
  text-transform:uppercase
}

.health-job-card dd{
  margin:0;
  color:#40566a;
  font-size:9px;
  font-weight:800
}

.health-job-error{
  padding:7px;
  border-radius:7px;
  color:#8d2f2f;
  background:#fff0f0;
  font-size:9px
}

.health-detail-list{
  display:grid;
  gap:0
}

.health-detail-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding:8px 2px;
  border-bottom:1px solid #e6ecf1
}

.health-detail-row:last-child{
  border-bottom:0
}

.health-detail-row>span{
  color:#748698;
  font-size:9px;
  text-transform:uppercase
}

.health-detail-row>div{
  min-width:0;
  display:grid;
  gap:2px;
  text-align:right
}

.health-detail-row b{
  overflow-wrap:anywhere;
  color:#2d4357;
  font-size:11px
}

.health-detail-row small{
  color:#7d8d9b;
  font-size:9px
}

.health-event-counter{
  padding:6px 9px;
  border-radius:999px;
  color:#8b5c0d;
  background:#fff0ce;
  font-size:9px;
  font-weight:900
}

.health-event-resolved{
  opacity:.68
}

.health-event-detail{
  margin-top:5px
}

.health-event-detail summary{
  color:#1f5e8b;
  font-size:9px;
  cursor:pointer
}

.health-event-detail pre,
.health-event-card pre{
  max-height:170px;
  margin:6px 0 0;
  padding:8px;
  overflow:auto;
  border-radius:7px;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  color:#d9e6ef;
  background:#17293a;
  font-size:9px
}

.health-event-cards{
  display:none
}

.health-log-preview{
  max-height:280px;
  margin:0;
  padding:12px;
  overflow:auto;
  border:1px solid #263f54;
  border-radius:9px;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  color:#d9e6ef;
  background:#17293a;
  font-family:Consolas,"Courier New",monospace;
  font-size:10px;
  line-height:1.45
}

@media(max-width:1250px){
  .health-overview{
    grid-template-columns:repeat(3,minmax(0,1fr))
  }

  .health-overall-card{
    grid-column:span 2
  }
}

@media(max-width:900px){
  .health-hero{
    align-items:stretch;
    flex-direction:column
  }

  .health-hero-actions{
    display:grid;
    grid-template-columns:1fr 1fr
  }

  .health-overview{
    grid-template-columns:repeat(2,minmax(0,1fr))
  }

  .health-overall-card{
    grid-column:1/-1
  }

  .health-grid{
    grid-template-columns:1fr
  }

  .health-panel-wide{
    grid-column:auto
  }

  .health-jobs{
    grid-template-columns:1fr
  }

  .health-events-table{
    display:none
  }

  .health-event-cards{
    display:grid;
    gap:8px
  }

  .health-event-card{
    display:grid;
    gap:7px;
    padding:11px;
    border:1px solid #dce5ec;
    border-left:5px solid #bd4141;
    border-radius:10px;
    background:#fff
  }

  .health-event-card.resolved{
    opacity:.7;
    border-left-color:#3c8d5d
  }

  .health-event-card>div:first-child{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px
  }

  .health-event-card h4{
    margin:0;
    color:#2b4155;
    font-size:12px
  }

  .health-event-card p{
    margin:0;
    color:#708194;
    font-size:10px
  }
}

@media(max-width:560px){
  .health-hero{
    padding:16px
  }

  .health-hero h2{
    font-size:21px
  }

  .health-hero-actions{
    grid-template-columns:1fr
  }

  .health-overview{
    grid-template-columns:1fr
  }

  .health-overall-card{
    grid-column:auto
  }

  .health-panel-head{
    align-items:stretch;
    flex-direction:column
  }

  .health-panel-head .btn{
    width:100%
  }

  .health-detail-row{
    align-items:stretch;
    flex-direction:column
  }

  .health-detail-row>div{
    text-align:left
  }
}


/* =========================================================
   3.0.0 - APLICACIÓN INSTALABLE Y ALERTAS MÓVILES
   ========================================================= */

.pwa-network-status{
  min-height:34px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 9px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:999px;
  color:#fff;
  background:rgba(255,255,255,.08);
  font-size:10px;
  font-weight:800;
  white-space:nowrap
}

.pwa-network-dot{
  width:8px;
  height:8px;
  border-radius:50%;
  background:#9aaaba;
  box-shadow:0 0 0 3px rgba(255,255,255,.1)
}

.pwa-network-status.online
.pwa-network-dot{
  background:#6fe09b
}

.pwa-network-status.offline{
  color:#ffe1e1;
  border-color:rgba(255,160,160,.4);
  background:rgba(160,30,30,.28)
}

.pwa-network-status.offline
.pwa-network-dot{
  background:#ff8d8d
}

.pwa-center-button{
  position:relative
}

.pwa-center-button>span:first-child{
  color:#7be3a1;
  font-size:9px
}

.pwa-alert-count{
  min-width:20px;
  height:20px;
  display:inline-grid;
  place-items:center;
  padding:0 5px;
  border-radius:999px;
  color:#fff;
  background:#d83a3a;
  font-size:9px;
  font-weight:900;
  box-shadow:0 0 0 2px #244a72
}

.pwa-center{
  display:grid;
  gap:12px
}

.pwa-center-hero{
  display:grid;
  grid-template-columns:62px minmax(0,1fr) auto;
  gap:14px;
  align-items:center;
  padding:17px;
  border-radius:15px;
  color:#fff;
  background:
    radial-gradient(
      circle at 90% 5%,
      rgba(65,193,157,.35),
      transparent 30%
    ),
    linear-gradient(
      135deg,
      #17365d,
      #12616d
    )
}

.pwa-center-logo{
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  border:2px solid rgba(255,255,255,.35);
  border-radius:17px;
  color:#17365d;
  background:#fff;
  font-size:18px;
  font-weight:900;
  box-shadow:0 10px 22px rgba(0,0,0,.16)
}

.pwa-center-hero>div:nth-child(2){
  min-width:0
}

.pwa-center-hero span{
  color:#b6e7dd;
  font-size:9px;
  font-weight:900;
  letter-spacing:.8px
}

.pwa-center-hero h3{
  margin:4px 0;
  font-size:19px
}

.pwa-center-hero p{
  margin:0;
  color:#d9edef;
  font-size:11px;
  line-height:1.45
}

.pwa-version{
  align-self:start;
  padding:6px 9px;
  border:1px solid rgba(255,255,255,.25);
  border-radius:999px;
  color:#fff!important;
  background:rgba(255,255,255,.1)
}

.pwa-center-status-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px
}

.pwa-center-status-grid article{
  min-width:0;
  display:grid;
  gap:3px;
  padding:11px;
  border:1px solid #dbe5ec;
  border-radius:10px;
  background:#f9fbfd
}

.pwa-center-status-grid small{
  color:#7b8c9b;
  font-size:8px;
  text-transform:uppercase
}

.pwa-center-status-grid b{
  overflow-wrap:anywhere;
  color:#284155;
  font-size:11px
}

.pwa-center-actions{
  display:flex;
  gap:7px;
  flex-wrap:wrap
}

.pwa-quick-section,
.pwa-alert-section{
  padding:13px;
  border:1px solid #dae4eb;
  border-radius:13px;
  background:#fff
}

.pwa-section-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  margin-bottom:10px
}

.pwa-section-head>div:first-child{
  min-width:0
}

.pwa-section-head span{
  color:#788a9b;
  font-size:8px;
  font-weight:900;
  letter-spacing:.7px
}

.pwa-section-head h4{
  margin:3px 0 0;
  color:#263f54;
  font-size:14px
}

.pwa-section-head h4 em{
  margin-left:5px;
  color:#8b5c10;
  font-size:9px;
  font-style:normal
}

.pwa-section-actions{
  display:flex;
  gap:6px;
  flex-wrap:wrap
}

.pwa-quick-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px
}

.pwa-quick-grid button{
  min-width:0;
  display:flex;
  align-items:center;
  gap:9px;
  padding:11px;
  border:1px solid #d9e3eb;
  border-radius:10px;
  color:#29435a;
  background:#f8fafc;
  cursor:pointer;
  text-align:left
}

.pwa-quick-grid button:hover{
  border-color:#8eb2cc;
  background:#f0f7fb
}

.pwa-quick-grid button span{
  width:32px;
  height:32px;
  flex:0 0 32px;
  display:grid;
  place-items:center;
  border-radius:9px;
  color:#fff;
  background:#1f4e78;
  font-size:12px;
  font-weight:900
}

.pwa-quick-grid button b{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:11px
}

.pwa-alert-list{
  display:grid;
  gap:7px
}

.pwa-alert-item{
  width:100%;
  min-width:0;
  display:grid;
  grid-template-columns:7px minmax(0,1fr) 18px;
  gap:9px;
  align-items:center;
  padding:10px;
  border:1px solid #dce5ec;
  border-radius:10px;
  color:inherit;
  background:#fff;
  cursor:pointer;
  text-align:left
}

.pwa-alert-item.unseen{
  box-shadow:0 6px 16px rgba(23,54,93,.08)
}

.pwa-alert-item.seen{
  opacity:.72
}

.pwa-alert-marker{
  width:7px;
  height:36px;
  border-radius:999px;
  background:#6b8ca5
}

.pwa-alert-item.warning
.pwa-alert-marker{
  background:#d59a23
}

.pwa-alert-item.critical
.pwa-alert-marker{
  background:#cf3c3c
}

.pwa-alert-main{
  min-width:0;
  display:grid;
  gap:3px
}

.pwa-alert-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px
}

.pwa-alert-heading b{
  color:#293f53;
  font-size:11px
}

.pwa-alert-heading small{
  flex:0 0 auto;
  color:#80909f;
  font-size:8px;
  text-transform:uppercase
}

.pwa-alert-message{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#546a7d;
  font-size:10px
}

.pwa-alert-date{
  color:#8795a2;
  font-size:8px
}

.pwa-alert-arrow{
  color:#65839b;
  font-size:22px
}

.pwa-alert-empty{
  display:flex;
  align-items:center;
  gap:10px;
  padding:13px;
  border:1px dashed #cbd9e3;
  border-radius:10px;
  background:#f8fbfd
}

.pwa-alert-empty>span{
  width:38px;
  height:38px;
  flex:0 0 38px;
  display:grid;
  place-items:center;
  border-radius:50%;
  color:#287148;
  background:#e5f6eb;
  font-weight:900
}

.pwa-alert-empty b{
  color:#2e4659;
  font-size:11px
}

.pwa-alert-empty p{
  margin:3px 0 0;
  color:#728395;
  font-size:10px
}

.pwa-center-note{
  padding:10px 12px;
  border:1px solid #e2d39f;
  border-radius:9px;
  color:#6b5938;
  background:#fffaf0;
  font-size:10px;
  line-height:1.45
}

.pwa-install-guide{
  display:grid;
  gap:9px
}

.pwa-install-guide-step{
  display:grid;
  grid-template-columns:38px minmax(0,1fr);
  gap:10px;
  align-items:center;
  padding:11px;
  border:1px solid #dbe5ec;
  border-radius:10px;
  background:#f9fbfd
}

.pwa-install-guide-step span{
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border-radius:50%;
  color:#fff;
  background:#1f4e78;
  font-weight:900
}

.pwa-install-guide-step p{
  margin:0;
  color:#40576a;
  font-size:11px
}

@media(max-width:1100px){
  .pwa-network-label,
  .pwa-center-label{
    display:none
  }

  .pwa-network-status{
    padding:6px 8px
  }

  .pwa-center-status-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
}

@media(max-width:760px){
  .top-actions{
    align-items:stretch
  }

  .pwa-network-status{
    min-height:40px;
    justify-content:center
  }

  .pwa-install-button,
  .pwa-center-button{
    min-height:40px
  }

  .pwa-center-hero{
    grid-template-columns:52px minmax(0,1fr)
  }

  .pwa-center-logo{
    width:50px;
    height:50px
  }

  .pwa-version{
    grid-column:1/-1;
    justify-self:start
  }

  .pwa-center-actions{
    display:grid;
    grid-template-columns:1fr 1fr
  }

  .pwa-quick-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))
  }

  .pwa-section-head{
    align-items:stretch;
    flex-direction:column
  }
}

@media(max-width:480px){
  .pwa-center-status-grid,
  .pwa-center-actions,
  .pwa-quick-grid{
    grid-template-columns:1fr
  }

  .pwa-alert-heading{
    align-items:flex-start;
    flex-direction:column
  }

  .pwa-alert-message{
    white-space:normal
  }
}


/* =========================================================
   3.0.1 - ENCABEZADO PROFESIONAL Y COMPACTO
   ========================================================= */

.topbar{
  position:sticky;
  top:0;
  z-index:30;
  padding:
    calc(12px + env(safe-area-inset-top))
    max(18px,env(safe-area-inset-right))
    12px
    max(18px,env(safe-area-inset-left));
  border-bottom:1px solid rgba(255,255,255,.12);
  background:
    radial-gradient(
      circle at 88% 5%,
      rgba(70,184,163,.26),
      transparent 31%
    ),
    linear-gradient(
      125deg,
      #18395f 0%,
      #244d77 58%,
      #285e78 100%
    );
  box-shadow:0 10px 28px rgba(15,38,65,.20)
}

.topbar-inner{
  width:min(1580px,100%);
  margin:0 auto;
  display:grid;
  grid-template-columns:
    minmax(310px,.72fr)
    minmax(600px,1.28fr);
  gap:22px;
  align-items:stretch
}

.topbar-primary,
.topbar-secondary{
  min-width:0
}

.topbar-primary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px
}

.brand{
  min-width:0;
  display:flex;
  align-items:center;
  gap:13px
}

.brand .logo.small{
  width:50px;
  height:50px;
  flex:0 0 50px;
  border:1px solid rgba(255,255,255,.24);
  border-radius:15px;
  background:
    linear-gradient(
      145deg,
      rgba(255,255,255,.16),
      rgba(255,255,255,.06)
    );
  box-shadow:
    0 8px 20px rgba(5,24,44,.22),
    inset 0 1px 0 rgba(255,255,255,.16);
  font-size:16px
}

.brand-copy{
  min-width:0
}

.brand-kicker{
  display:block;
  margin-bottom:3px;
  color:#aee5dc;
  font-size:8px;
  font-weight:900;
  letter-spacing:1px
}

.brand h1{
  overflow:hidden;
  margin:0;
  color:#fff;
  font-size:18px;
  line-height:1.15;
  text-overflow:ellipsis;
  white-space:nowrap
}

.brand p{
  overflow:hidden;
  margin:4px 0 0;
  color:#d8e8f2;
  font-size:11px;
  text-overflow:ellipsis;
  white-space:nowrap
}

.top-status-row{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:7px
}

.top-status-row .btn,
.pwa-network-status{
  min-height:36px;
  padding:7px 10px;
  border:1px solid rgba(255,255,255,.24);
  border-radius:10px;
  background:rgba(255,255,255,.09);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08)
}

.pwa-network-status{
  gap:6px;
  font-size:9px
}

.pwa-network-dot{
  width:8px;
  height:8px
}

.pwa-center-button{
  position:relative
}

.pwa-center-indicator{
  width:7px;
  height:7px;
  flex:0 0 7px;
  border-radius:50%;
  background:#6fe09b;
  box-shadow:0 0 0 3px rgba(111,224,155,.13)
}

.top-button-symbol{
  font-size:14px;
  line-height:1
}

.pwa-alert-count{
  min-width:19px;
  height:19px;
  padding:0 5px;
  border:2px solid #315a82;
  box-shadow:none
}

.topbar-secondary{
  display:grid;
  grid-template-columns:minmax(260px,1fr) minmax(390px,1.35fr);
  gap:11px;
  align-items:stretch
}

.company-switcher-box,
.account-card{
  min-width:0;
  border:1px solid rgba(255,255,255,.18);
  border-radius:13px;
  background:rgba(255,255,255,.08);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.08),
    0 8px 18px rgba(8,30,52,.10)
}

.company-switcher-box{
  display:grid;
  gap:5px;
  padding:8px 10px
}

.company-switcher-box>span{
  padding-left:2px;
  color:#c5ddea;
  font-size:8px;
  font-weight:900;
  letter-spacing:.65px;
  text-transform:uppercase
}

.company-switcher-box select{
  min-width:0;
  height:38px;
  padding:7px 34px 7px 10px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:9px;
  color:#243b4e;
  background:#fff;
  font-size:12px;
  font-weight:700;
  box-shadow:none
}

.account-card{
  display:grid;
  grid-template-columns:40px minmax(120px,1fr) auto;
  gap:10px;
  align-items:center;
  padding:8px 9px
}

.session-avatar{
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.28);
  border-radius:11px;
  color:#17365d;
  background:
    linear-gradient(
      145deg,
      #fff,
      #dbeaf3
    );
  font-size:12px;
  font-weight:900;
  box-shadow:0 6px 15px rgba(8,30,52,.16)
}

.account-card .session{
  min-width:0;
  display:grid;
  gap:1px
}

.account-card .session small{
  color:#aecaDA;
  font-size:7px;
  font-weight:900;
  letter-spacing:.55px;
  text-transform:uppercase
}

.account-card .session b{
  overflow:hidden;
  color:#fff;
  font-size:11px;
  line-height:1.2;
  text-overflow:ellipsis;
  white-space:nowrap
}

.account-card .session span{
  overflow:hidden;
  color:#d7e6ef;
  font-size:9px;
  text-overflow:ellipsis;
  white-space:nowrap
}

.account-actions{
  display:flex;
  align-items:center;
  gap:6px
}

.account-button{
  min-height:36px;
  padding:7px 10px;
  border-radius:9px;
  font-size:10px
}

.account-button.logout{
  border-color:rgba(255,196,196,.27);
  background:rgba(159,37,37,.18)
}

.account-button-icon{
  display:none
}

/* Escritorio intermedio */
@media(max-width:1250px){
  .topbar-inner{
    grid-template-columns:
      minmax(290px,.65fr)
      minmax(540px,1.35fr);
    gap:14px
  }

  .topbar-primary{
    align-items:flex-start;
    flex-direction:column;
    justify-content:center;
    gap:8px
  }

  .top-status-row{
    width:100%
  }

  .topbar-secondary{
    grid-template-columns:minmax(220px,.85fr) minmax(350px,1.15fr)
  }

  .account-button{
    width:36px;
    padding:7px
  }

  .account-button>span:last-child{
    display:none
  }

  .account-button-icon{
    display:inline;
    font-size:12px
  }
}

/* Tableta */
@media(max-width:900px){
  .topbar{
    position:relative;
    padding:
      calc(11px + env(safe-area-inset-top))
      max(12px,env(safe-area-inset-right))
      11px
      max(12px,env(safe-area-inset-left))
  }

  .topbar-inner{
    grid-template-columns:1fr;
    gap:10px
  }

  .topbar-primary{
    flex-direction:row;
    align-items:center;
    justify-content:space-between
  }

  .topbar-secondary{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)
  }

  .account-card{
    grid-template-columns:38px minmax(0,1fr) auto
  }
}

/* Teléfono */
@media(max-width:700px){
  .topbar{
    gap:0;
    padding:
      calc(10px + env(safe-area-inset-top))
      max(10px,env(safe-area-inset-right))
      10px
      max(10px,env(safe-area-inset-left))
  }

  .topbar-inner{
    gap:9px
  }

  .topbar-primary{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:9px;
    align-items:center
  }

  .brand{
    gap:9px
  }

  .brand .logo.small{
    width:43px;
    height:43px;
    flex-basis:43px;
    border-radius:12px;
    font-size:14px
  }

  .brand-kicker{
    display:none
  }

  .brand h1{
    font-size:15px;
    white-space:normal;
    line-height:1.08
  }

  .brand p{
    margin-top:3px;
    font-size:10px
  }

  .top-status-row{
    width:auto;
    display:grid;
    grid-template-columns:36px 40px;
    gap:6px
  }

  .top-status-row .btn,
  .pwa-network-status{
    width:100%;
    min-width:0;
    min-height:36px;
    justify-content:center;
    padding:6px;
    border-radius:10px
  }

  .pwa-network-label,
  .pwa-center-label,
  .pwa-install-button>span:last-child{
    display:none
  }

  .pwa-install-button{
    grid-column:1/-1
  }

  .pwa-install-button.hidden{
    display:none!important
  }

  .pwa-center-button{
    gap:0
  }

  .pwa-alert-count{
    position:absolute;
    top:-7px;
    right:-7px
  }

  .topbar-secondary{
    grid-template-columns:1fr;
    gap:8px
  }

  .company-switcher-box{
    padding:7px 8px
  }

  .company-switcher-box>span{
    font-size:7px
  }

  .company-switcher-box select{
    height:40px;
    font-size:12px
  }

  .account-card{
    grid-template-columns:38px minmax(0,1fr) auto;
    padding:7px 8px
  }

  .session-avatar{
    width:38px;
    height:38px;
    border-radius:10px
  }

  .account-card .session small{
    display:none
  }

  .account-card .session b{
    font-size:11px
  }

  .account-actions{
    gap:5px
  }

  .account-button{
    width:38px!important;
    min-height:38px;
    padding:6px!important
  }

  .account-button-icon{
    display:inline;
    font-size:13px
  }

  .account-button>span:last-child{
    display:none
  }

  .container{
    padding-top:10px
  }
}

/* Teléfono angosto */
@media(max-width:390px){
  .brand h1{
    font-size:14px
  }

  .brand p{
    max-width:180px
  }

  .top-status-row{
    grid-template-columns:34px 36px
  }

  .account-card{
    grid-template-columns:34px minmax(0,1fr) auto
  }

  .session-avatar{
    width:34px;
    height:34px
  }

  .account-button{
    width:34px!important;
    min-height:34px
  }
}


/* =========================================================
   3.1.0 - ARCHIVO DOCUMENTAL Y RESPALDO SYNOLOGY
   ========================================================= */

.document-storage-notice{
  display:grid;
  gap:2px;
  margin-top:10px;
  padding:10px 11px;
  border:1px solid #d9e3eb;
  border-left:5px solid #758b9e;
  border-radius:9px;
  background:#f8fafc
}

.document-storage-notice b{
  color:#354d61;
  font-size:10px
}

.document-storage-notice span{
  color:#6e8091;
  font-size:9px;
  line-height:1.4
}

.document-storage-notice.healthy{
  border-color:#b9ddc4;
  border-left-color:#2f8a55;
  background:#f1faf4
}

.document-storage-notice.healthy b{
  color:#28643f
}

.document-storage-notice.warning{
  border-color:#ead39a;
  border-left-color:#bf8720;
  background:#fff9ec
}

.document-storage-notice.warning b{
  color:#805611
}

.document-storage-notice.critical{
  border-color:#edbcbc;
  border-left-color:#bd3d3d;
  background:#fff3f3
}

.document-storage-notice.critical b{
  color:#8d2c2c
}

@media(max-width:560px){
  #healthDocumentStorageDetails+
  .document-storage-notice{
    margin-top:8px
  }
}


/* =========================================================
   3.2.0 - PANEL GERENCIAL Y REPORTES PROFESIONALES
   ========================================================= */

.management-hero{
  min-height:138px;display:flex;align-items:center;justify-content:space-between;
  gap:24px;margin-bottom:12px;padding:24px;border-radius:18px;color:#fff;
  background:radial-gradient(circle at 88% 12%,rgba(74,196,165,.32),transparent 31%),
    linear-gradient(128deg,#17365d,#245c7a 66%,#247c7a);
  box-shadow:0 16px 34px rgba(23,54,93,.16)
}
.management-hero h2{margin:5px 0 7px;font-size:27px}
.management-hero p{max-width:720px;margin:0;color:#dceaf2;font-size:12px;line-height:1.55}
.management-hero-status{min-width:235px;display:grid;gap:3px;padding:14px 16px;
  border:1px solid rgba(255,255,255,.2);border-radius:13px;background:rgba(255,255,255,.09)}
.management-hero-status small{color:#b9d9e5;font-size:8px;font-weight:900;letter-spacing:.7px;text-transform:uppercase}
.management-hero-status b{font-size:13px}.management-hero-status span{color:#dceaf2;font-size:10px}

.management-filter-card{display:grid;grid-template-columns:minmax(160px,.95fr) minmax(145px,.72fr)
  minmax(145px,.72fr) minmax(175px,.9fr) auto;gap:9px;align-items:end;margin-bottom:12px;
  padding:12px;border:1px solid #d9e4ec;border-radius:13px;background:#fff;
  box-shadow:0 8px 22px rgba(23,54,93,.07)}
.management-filter-card label{min-width:0;display:grid;gap:5px}
.management-filter-card label>span{padding-left:2px;color:#718395;font-size:8px;font-weight:900;
  letter-spacing:.6px;text-transform:uppercase}
.management-filter-card select,.management-filter-card input{width:100%;min-width:0;height:40px;
  border:1px solid #ccd9e3;border-radius:9px;color:#294155;background:#fbfdff;font-size:11px}
.management-filter-actions{display:flex;gap:7px;align-items:center;justify-content:flex-end}
.management-filter-actions .btn{min-height:40px;white-space:nowrap}

.management-loading{display:flex;align-items:center;justify-content:center;gap:9px;margin-bottom:12px;
  padding:10px;border:1px solid #cbdbea;border-radius:10px;color:#36536b;background:#f3f8fc;
  font-size:10px;font-weight:700}
.management-loading span{width:15px;height:15px;border:2px solid #b6c9da;border-top-color:#1f5e8d;
  border-radius:50%;animation:managementSpin .8s linear infinite}
@keyframes managementSpin{to{transform:rotate(360deg)}}

.management-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}
.management-kpi{position:relative;min-width:0;overflow:hidden;display:grid;gap:3px;min-height:105px;
  padding:15px;border:1px solid #dce5ed;border-radius:14px;background:#fff;
  box-shadow:0 9px 22px rgba(23,54,93,.07)}
.management-kpi:before{content:"";position:absolute;top:0;left:0;width:100%;height:4px;background:#315d83}
.management-kpi:after{content:"";position:absolute;right:-23px;bottom:-36px;width:96px;height:96px;
  border-radius:50%;background:rgba(31,78,120,.06)}
.management-kpi small,.management-kpi strong,.management-kpi span{position:relative;z-index:1}
.management-kpi small{color:#708295;font-size:8px;font-weight:900;letter-spacing:.5px;text-transform:uppercase}
.management-kpi strong{overflow:hidden;color:#1e3c56;font-size:24px;line-height:1.15;
  text-overflow:ellipsis;white-space:nowrap}
.management-kpi span{color:#748697;font-size:9px}
.management-kpi.blue:before{background:#2f79aa}.management-kpi.red:before{background:#c74949}
.management-kpi.green:before{background:#339261}.management-kpi.purple:before{background:#7157a8}
.management-kpi.teal:before{background:#218a88}.management-kpi.amber:before{background:#c68a20}
.management-kpi.money:before{background:#26704e}

.management-main-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(330px,.8fr);
  gap:12px;margin-bottom:12px}
.management-main-grid.equal{grid-template-columns:repeat(2,minmax(0,1fr))}
.management-panel{min-width:0;margin-bottom:12px;padding:15px;border:1px solid #dbe5ed;
  border-radius:15px;background:#fff;box-shadow:0 9px 24px rgba(23,54,93,.07)}
.management-main-grid .management-panel{margin-bottom:0}
.management-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:13px}
.management-panel-head>div{min-width:0}.management-panel-head span{color:#7e8e9d;font-size:8px;
  font-weight:900;letter-spacing:.65px}.management-panel-head h3{margin:4px 0 0;color:#263f54;font-size:15px}
.management-panel-head>small{max-width:300px;color:#7a8b9a;font-size:8px;line-height:1.4;text-align:right}

.management-legend{display:flex;gap:11px;align-items:center}.management-legend span{display:flex;
  align-items:center;gap:5px;color:#697d90;font-size:8px;letter-spacing:0}
.management-legend span:before{content:"";width:8px;height:8px;border-radius:50%}
.management-legend .received:before{background:#2f6fa3}.management-legend .closed:before{background:#3c9b6b}

.management-chart{min-height:235px}.management-trend-svg{width:100%;height:235px;overflow:visible}
.management-grid-lines line{stroke:#e3eaf0;stroke-width:1}
.management-grid-lines text,.management-axis-labels text{fill:#8292a1;font-size:8px}
.management-line{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.management-line.received{stroke:#2f6fa3}.management-line.closed{stroke:#3c9b6b}
.management-dot.received{fill:#fff;stroke:#2f6fa3;stroke-width:2}
.management-dot.closed{fill:#fff;stroke:#3c9b6b;stroke-width:2}

.management-gauge-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:12px}
.management-gauge-card{position:relative;min-width:0;min-height:145px;display:grid;place-items:center;
  padding:9px;border:1px solid #e0e7ed;border-radius:13px;background:#f9fbfd}
.management-gauge-card svg{width:112px;height:112px;transform:rotate(-90deg)}
.management-gauge-track{fill:none;stroke:#e5ebf0;stroke-width:10}
.management-gauge-value{fill:none;stroke:#2f8a5a;stroke-width:10;stroke-linecap:round}
.management-gauge-card.warning .management-gauge-value{stroke:#c38b24}
.management-gauge-card.critical .management-gauge-value{stroke:#c64b4b}
.management-gauge-copy{position:absolute;inset:0;display:grid;place-content:center;text-align:center;pointer-events:none}
.management-gauge-copy strong{color:#213c52;font-size:19px}.management-gauge-copy b{color:#4b6377;font-size:9px}
.management-gauge-copy small{max-width:105px;margin-top:3px;color:#8997a4;font-size:7px}

.management-rating-bars{display:grid;gap:6px}.management-rating-row{display:grid;
  grid-template-columns:30px minmax(0,1fr) 25px;gap:8px;align-items:center}
.management-rating-row>span,.management-rating-row>b{color:#677b8c;font-size:8px}
.management-rating-row>b{text-align:right}.management-rating-row>div{height:7px;overflow:hidden;
  border-radius:999px;background:#edf1f5}.management-rating-row i{display:block;height:100%;
  border-radius:inherit;background:linear-gradient(90deg,#c99428,#e2b44f)}

.management-horizontal-bars{min-height:180px;display:grid;align-content:start;gap:10px}
.management-bar-row{display:grid;gap:5px}.management-bar-heading{display:flex;align-items:center;
  justify-content:space-between;gap:8px}.management-bar-heading b{overflow:hidden;color:#40586c;
  font-size:9px;text-overflow:ellipsis;white-space:nowrap}.management-bar-heading span{color:#6b7e90;
  font-size:8px;font-weight:900}.management-bar-track{height:8px;overflow:hidden;border-radius:999px;background:#edf2f6}
.management-bar-track span{display:block;height:100%;min-width:3px;border-radius:inherit;
  background:linear-gradient(90deg,#245d8a,#3f91b8)}.management-bar-track span[data-rank="1"]{
  background:linear-gradient(90deg,#17365d,#2e719c)}

.management-table{min-width:980px}.management-table th{padding:9px 8px;color:#fff;background:#17365d;
  font-size:8px;text-align:right}.management-table th:first-child{text-align:left}
.management-table td{padding:9px 8px;border-bottom:1px solid #e7edf2;color:#465e72;font-size:9px;text-align:right}
.management-table td:first-child{text-align:left}.management-table tbody tr:hover{background:#f6f9fb}
.management-tech-name{display:flex;align-items:center;gap:8px}.management-tech-name>span{width:30px;height:30px;
  flex:0 0 30px;display:grid;place-items:center;border-radius:9px;color:#fff;background:#2b608a;
  font-size:8px;font-weight:900}.management-tech-name b{overflow:hidden;max-width:170px;color:#2e485d;
  text-overflow:ellipsis;white-space:nowrap}

.management-company-list,.management-asset-list,.management-financial-list{display:grid;gap:8px}
.management-company-card{display:grid;gap:9px;padding:11px;border:1px solid #dde6ed;border-radius:11px;background:#fafcfd}
.management-company-card>div:first-child{display:flex;align-items:center;gap:9px}
.management-company-card>div:first-child>span{width:36px;height:36px;flex:0 0 36px;display:grid;place-items:center;
  border-radius:10px;color:#fff;background:#285f88;font-size:8px;font-weight:900}
.management-company-card.maintenance>div:first-child>span{background:#2e8769}
.management-company-card>div:first-child div{min-width:0;display:grid;gap:2px}
.management-company-card>div:first-child b{overflow:hidden;color:#2f485b;font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.management-company-card>div:first-child small{color:#7b8c9b;font-size:8px}
.management-company-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.management-company-metrics span{min-width:0;display:grid;gap:2px;padding:7px;border-radius:8px;background:#fff}
.management-company-metrics small{color:#8796a3;font-size:7px}.management-company-metrics b{overflow:hidden;
  color:#344d61;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.danger-text{color:#b33b3b!important}

.management-asset-item{width:100%;min-width:0;display:grid;grid-template-columns:32px minmax(0,1fr) auto;
  gap:9px;align-items:center;padding:10px;border:1px solid #dee7ee;border-radius:10px;color:inherit;
  background:#fbfcfd;cursor:pointer;text-align:left}.management-asset-item:hover{border-color:#9db9cd;background:#f4f9fc}
.management-asset-rank{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;
  color:#17365d;background:#e4eef5;font-size:9px;font-weight:900}
.management-asset-item>span:nth-child(2){min-width:0;display:grid;gap:2px}
.management-asset-item b{overflow:hidden;color:#2d465a;font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.management-asset-item small,.management-asset-item em{overflow:hidden;color:#7b8b99;font-size:8px;
  font-style:normal;text-overflow:ellipsis;white-space:nowrap}.management-asset-item>strong{display:grid;gap:1px;
  color:#244f73;font-size:16px;text-align:right}.management-asset-item>strong small{color:#82909d;font-size:7px;font-weight:400}

.management-financial-card{display:grid;gap:10px;padding:12px;border:1px solid #dce6ed;border-radius:11px;background:#fafcfd}
.management-financial-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.management-financial-head>div{min-width:0;display:grid;gap:2px}.management-financial-head b{overflow:hidden;color:#2c465a;
  font-size:10px;text-overflow:ellipsis;white-space:nowrap}.management-financial-head small{color:#81909e;font-size:8px}
.management-financial-head>strong{display:grid;gap:1px;color:#276648;font-size:13px;text-align:right}
.management-financial-head>strong small{color:#80908a;font-size:7px;font-weight:400}
.management-financial-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.management-financial-grid span{min-width:0;display:grid;gap:2px;padding:7px;border-radius:8px;background:#fff}
.management-financial-grid small{color:#8997a4;font-size:7px}.management-financial-grid b{overflow:hidden;
  color:#3b5366;font-size:9px;text-overflow:ellipsis;white-space:nowrap}

.management-insights-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.management-insight{display:grid;grid-template-columns:35px minmax(0,1fr);gap:9px;align-items:start;
  padding:11px;border:1px solid #dbe5ec;border-left:5px solid #4d7999;border-radius:10px;background:#f9fbfd}
.management-insight>span{width:33px;height:33px;display:grid;place-items:center;border-radius:9px;color:#fff;
  background:#4d7999;font-weight:900}.management-insight b{color:#334c60;font-size:10px}
.management-insight p{margin:3px 0 0;color:#718393;font-size:8px;line-height:1.45}
.management-insight.warning{border-left-color:#c28a27;background:#fffaf0}.management-insight.warning>span{background:#c28a27}
.management-insight.critical{border-left-color:#be4444;background:#fff5f5}.management-insight.critical>span{background:#be4444}
.management-insight.positive{border-left-color:#34865a;background:#f2faf5}.management-insight.positive>span{background:#34865a}

.management-empty{min-height:90px;display:flex;align-items:center;justify-content:center;gap:10px;padding:14px;
  border:1px dashed #ccd9e2;border-radius:10px;color:#758797;background:#fafcfd}
.management-empty>span{width:35px;height:35px;flex:0 0 35px;display:grid;place-items:center;border-radius:50%;
  color:#30714c;background:#e5f4eb;font-weight:900}.management-empty b{color:#3d5568;font-size:10px}
.management-empty p{margin:3px 0 0;font-size:8px}
.management-footnote{margin-top:2px;padding:10px 12px;border:1px solid #ead9a8;border-radius:10px;
  color:#735e37;background:#fffaf0;font-size:9px;line-height:1.45}

@media(max-width:1200px){
  .management-filter-card{grid-template-columns:repeat(4,minmax(0,1fr))}
  .management-filter-actions{grid-column:1/-1;justify-content:flex-start}
  .management-main-grid{grid-template-columns:1fr}
  .management-main-grid.equal{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
  .management-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .management-insights-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .management-financial-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .management-hero{min-height:0;align-items:stretch;flex-direction:column;padding:17px}
  .management-hero h2{font-size:22px}.management-hero-status{min-width:0}
  .management-filter-card{grid-template-columns:1fr 1fr}
  .management-filter-card label:first-child,.management-filter-card label.admin-only{grid-column:1/-1}
  .management-filter-actions{display:grid;grid-template-columns:1fr 1fr}
  .management-filter-actions .btn:first-child{grid-column:1/-1}
  .management-kpi-grid{grid-template-columns:1fr 1fr}.management-kpi{min-height:94px;padding:12px}
  .management-kpi strong{font-size:19px}.management-main-grid.equal{grid-template-columns:1fr}
  .management-panel{padding:12px}.management-gauge-grid{grid-template-columns:1fr 1fr}
  .management-gauge-card svg{width:96px;height:96px}
  .management-financial-head{align-items:stretch;flex-direction:column}
  .management-financial-head>strong{text-align:left}.management-insights-grid{grid-template-columns:1fr}
}
@media(max-width:450px){
  .management-filter-card,.management-kpi-grid,.management-filter-actions,
  .management-gauge-grid,.management-financial-grid{grid-template-columns:1fr}
  .management-filter-card label,.management-filter-card label:first-child,
  .management-filter-card label.admin-only,.management-filter-actions,
  .management-filter-actions .btn:first-child{grid-column:auto}
  .management-legend{align-items:flex-start;flex-direction:column;gap:4px}
}


/* =========================================================
   3.4.1 - PUSH REAL Y TRABAJO SIN CONEXIÓN
   ========================================================= */

.pwa-sync-count{
  position:absolute;
  left:-7px;
  bottom:-7px;
  min-width:19px;
  height:19px;
  display:grid;
  place-items:center;
  padding:0 5px;
  border:2px solid #315a82;
  border-radius:999px;
  color:#17365d;
  background:#ffcf57;
  font-size:8px;
  font-weight:900;
  box-shadow:0 3px 8px rgba(0,0,0,.18)
}

.pwa-sync-count.failed{
  color:#fff;
  background:#d74848
}

.pwa-center-status-grid-extended{
  grid-template-columns:repeat(3,minmax(0,1fr))
}

.pwa-offline-section{
  padding:13px;
  border:1px solid #d8e4ec;
  border-radius:13px;
  background:
    linear-gradient(
      180deg,
      #fbfdff,
      #f6fafc
    )
}

.offline-queue-list{
  display:grid;
  gap:7px
}

.offline-queue-item{
  min-width:0;
  display:grid;
  grid-template-columns:36px minmax(0,1fr) auto;
  gap:9px;
  align-items:center;
  padding:9px;
  border:1px solid #dce6ed;
  border-left:4px solid #cc962e;
  border-radius:10px;
  background:#fff
}

.offline-queue-item.failed{
  border-left-color:#c44444;
  background:#fff7f7
}

.offline-queue-icon{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:9px;
  color:#fff;
  background:#315f83;
  font-size:10px;
  font-weight:900
}

.offline-queue-item>div{
  min-width:0;
  display:grid;
  gap:2px
}

.offline-queue-item b{
  overflow:hidden;
  color:#304a5f;
  font-size:10px;
  text-overflow:ellipsis;
  white-space:nowrap
}

.offline-queue-item small{
  color:#82919e;
  font-size:8px
}

.offline-queue-item em{
  overflow:hidden;
  color:#ad3e3e;
  font-size:8px;
  font-style:normal;
  text-overflow:ellipsis;
  white-space:nowrap
}

.offline-queue-item .btn{
  min-height:31px
}

.pwa-center-note b{
  color:#5b4b2c
}

@media(max-width:760px){
  .pwa-center-status-grid-extended{
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
}

@media(max-width:480px){
  .pwa-center-status-grid-extended{
    grid-template-columns:1fr
  }

  .offline-queue-item{
    grid-template-columns:34px minmax(0,1fr)
  }

  .offline-queue-item .btn{
    grid-column:1/-1;
    width:100%
  }
}


/* =========================================================
   3.4.3 - TICKET ESTABLE SIN CONEXIÓN
   ========================================================= */

.ticket-offline-pending{
  display:grid;
  gap:8px;
  margin:0 0 12px;
  padding:11px;
  border:1px solid #e4cf91;
  border-left:5px solid #c68a20;
  border-radius:11px;
  background:#fff9eb;
  box-shadow:0 7px 17px rgba(104,76,19,.08)
}

.ticket-offline-pending.has-error{
  border-color:#e9b1b1;
  border-left-color:#bd3f3f;
  background:#fff3f3
}

.ticket-offline-pending-head{
  display:grid;
  grid-template-columns:34px minmax(0,1fr) auto;
  gap:9px;
  align-items:center
}

.ticket-offline-pending-head>span{
  width:33px;
  height:33px;
  display:grid;
  place-items:center;
  border-radius:9px;
  color:#fff;
  background:#c68a20;
  font-size:15px;
  font-weight:900
}

.ticket-offline-pending.has-error
.ticket-offline-pending-head>span{
  background:#bd3f3f
}

.ticket-offline-pending-head>div{
  min-width:0;
  display:grid;
  gap:2px
}

.ticket-offline-pending-head b{
  color:#654d1c;
  font-size:10px
}

.ticket-offline-pending.has-error
.ticket-offline-pending-head b{
  color:#832f2f
}

.ticket-offline-pending-head small{
  color:#7e6c48;
  font-size:8px;
  line-height:1.4
}

.ticket-offline-pending-list{
  display:flex;
  gap:6px;
  flex-wrap:wrap
}

.ticket-offline-pending-list>span{
  min-width:0;
  display:grid;
  gap:1px;
  padding:6px 8px;
  border:1px solid rgba(170,126,34,.22);
  border-radius:8px;
  background:rgba(255,255,255,.7)
}

.ticket-offline-pending-list b{
  overflow:hidden;
  max-width:260px;
  color:#684f20;
  font-size:8px;
  text-overflow:ellipsis;
  white-space:nowrap
}

.ticket-offline-pending-list small{
  color:#8a7957;
  font-size:7px
}

@media(max-width:560px){
  .ticket-offline-pending-head{
    grid-template-columns:32px minmax(0,1fr)
  }

  .ticket-offline-pending-head .btn{
    grid-column:1/-1;
    width:100%
  }

  .ticket-offline-pending-list{
    display:grid;
    grid-template-columns:1fr
  }

  .ticket-offline-pending-list b{
    max-width:none
  }
}


/* =========================================================
   3.4.4 - ACCIONES COMPACTAS DEL TICKET EN MÓVIL
   ========================================================= */

.ticket-desktop-actions{
  width:100%;
  display:flex;
  justify-content:flex-end;
  gap:9px;
  flex-wrap:wrap
}

.ticket-mobile-actions,
.ticket-mobile-action-spacer{
  display:none
}

@media(max-width:700px){
  .modal-card.modal-ticket
  .ticket-sticky-actions{
    position:sticky;
    left:0;
    right:0;
    bottom:0;
    z-index:70;
    width:auto;
    max-width:none;
    display:block;
    margin:
      12px
      -10px
      -10px;
    padding:0;
    overflow:visible;
    border-top:0;
    background:transparent;
    box-shadow:none;
    backdrop-filter:none;
    -webkit-backdrop-filter:none
  }

  .ticket-desktop-actions{
    display:none
  }

  .ticket-mobile-actions{
    position:relative;
    display:block;
    width:100%
  }

  .ticket-mobile-action-spacer{
    display:block;
    height:
      calc(
        68px +
        env(safe-area-inset-bottom)
      )
  }

  .ticket-mobile-action-dock{
    display:grid;
    grid-template-columns:
      minmax(0,1fr)
      minmax(0,1fr)
      54px;
    gap:7px;
    align-items:stretch;
    padding:
      8px
      max(10px,env(safe-area-inset-right))
      max(8px,env(safe-area-inset-bottom))
      max(10px,env(safe-area-inset-left));
    border:1px solid rgba(185,201,214,.92);
    border-bottom:0;
    border-radius:15px 15px 0 0;
    background:rgba(255,255,255,.96);
    box-shadow:
      0 -8px 22px rgba(23,54,93,.16),
      inset 0 1px 0 rgba(255,255,255,.9);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px)
  }

  .ticket-mobile-actions.viewer
  .ticket-mobile-action-dock{
    grid-template-columns:
      repeat(2,minmax(0,1fr))
  }

  .ticket-mobile-action-button,
  .ticket-mobile-more-button{
    min-width:0;
    min-height:46px;
    border:1px solid #cbd9e4;
    border-radius:11px;
    color:#29465d;
    background:#f7fafc;
    font:inherit;
    cursor:pointer
  }

  .ticket-mobile-action-button{
    display:grid;
    grid-template-columns:32px minmax(0,1fr);
    gap:7px;
    align-items:center;
    padding:6px 8px;
    text-align:left
  }

  .ticket-mobile-action-button>span:last-child{
    min-width:0;
    display:grid;
    gap:1px
  }

  .ticket-mobile-action-button b{
    overflow:hidden;
    font-size:10px;
    line-height:1.1;
    text-overflow:ellipsis;
    white-space:nowrap
  }

  .ticket-mobile-action-button small{
    overflow:hidden;
    color:#718397;
    font-size:7px;
    text-overflow:ellipsis;
    white-space:nowrap
  }

  .ticket-mobile-action-icon{
    width:30px;
    height:30px;
    display:grid;
    place-items:center;
    border-radius:9px;
    color:#fff;
    background:#55768f;
    font-size:10px;
    font-weight:900
  }

  .ticket-mobile-action-button.primary{
    border-color:#7ca5c4;
    color:#fff;
    background:
      linear-gradient(
        135deg,
        #1f4e78,
        #2c719c
      )
  }

  .ticket-mobile-action-button.primary
  .ticket-mobile-action-icon{
    color:#17365d;
    background:#fff
  }

  .ticket-mobile-action-button.primary small{
    color:#d8e8f2
  }

  .ticket-mobile-action-button.success{
    border-color:#86c19d;
    background:#eef9f2
  }

  .ticket-mobile-action-button.success
  .ticket-mobile-action-icon{
    background:#34865a
  }

  .ticket-mobile-action-button.warning{
    border-color:#dfc47d;
    background:#fff9e9
  }

  .ticket-mobile-action-button.warning
  .ticket-mobile-action-icon{
    background:#bf8420
  }

  .ticket-mobile-action-button.neutral
  .ticket-mobile-action-icon{
    background:#62788a
  }

  .ticket-mobile-more-button{
    display:grid;
    place-content:center;
    gap:1px;
    padding:5px;
    text-align:center
  }

  .ticket-mobile-more-button>span{
    color:#294b65;
    font-size:15px;
    font-weight:900;
    letter-spacing:1px;
    line-height:.8
  }

  .ticket-mobile-more-button small{
    color:#657b8e;
    font-size:7px;
    font-weight:800
  }

  .ticket-mobile-actions.open
  .ticket-mobile-more-button{
    border-color:#7fa5bf;
    background:#eaf3f8
  }

  .ticket-mobile-action-menu{
    position:absolute;
    left:
      max(8px,env(safe-area-inset-left));
    right:
      max(8px,env(safe-area-inset-right));
    bottom:
      calc(
        100% +
        8px
      );
    max-height:min(62dvh,480px);
    overflow:auto;
    overscroll-behavior:contain;
    padding:12px;
    border:1px solid #cbd9e3;
    border-radius:16px;
    background:#fff;
    box-shadow:
      0 18px 50px rgba(16,39,64,.28);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(12px) scale(.98);
    transform-origin:bottom center;
    transition:
      opacity .17s ease,
      transform .17s ease,
      visibility .17s ease
  }

  .ticket-mobile-actions.open
  .ticket-mobile-action-menu{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translateY(0) scale(1)
  }

  .ticket-mobile-action-menu-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-bottom:10px;
    padding-bottom:9px;
    border-bottom:1px solid #e1e8ee
  }

  .ticket-mobile-action-menu-head>div{
    min-width:0;
    display:grid;
    gap:2px
  }

  .ticket-mobile-action-menu-head span{
    color:#8292a0;
    font-size:7px;
    font-weight:900;
    letter-spacing:.7px
  }

  .ticket-mobile-action-menu-head b{
    overflow:hidden;
    color:#29445a;
    font-size:11px;
    text-overflow:ellipsis;
    white-space:nowrap
  }

  .ticket-mobile-action-menu-head>button{
    width:34px;
    height:34px;
    flex:0 0 34px;
    border:1px solid #d4dfe7;
    border-radius:10px;
    color:#465f73;
    background:#f6f9fb;
    font-size:18px;
    cursor:pointer
  }

  .ticket-mobile-action-menu-grid{
    display:grid;
    grid-template-columns:
      repeat(2,minmax(0,1fr));
    gap:8px
  }

  .ticket-mobile-menu-item{
    min-width:0;
    min-height:88px;
    display:grid;
    grid-template-columns:34px minmax(0,1fr);
    grid-template-rows:auto auto;
    gap:3px 8px;
    align-content:center;
    padding:10px;
    border:1px solid #d7e2ea;
    border-radius:12px;
    color:#314b60;
    background:#f9fbfd;
    font:inherit;
    cursor:pointer;
    text-align:left
  }

  .ticket-mobile-menu-item>span{
    grid-row:1/3;
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    align-self:center;
    border-radius:10px;
    color:#fff;
    background:#55778f;
    font-size:9px;
    font-weight:900
  }

  .ticket-mobile-menu-item>b{
    overflow:hidden;
    align-self:end;
    font-size:9px;
    text-overflow:ellipsis;
    white-space:nowrap
  }

  .ticket-mobile-menu-item>small{
    overflow:hidden;
    align-self:start;
    color:#7b8d9c;
    font-size:7px;
    text-overflow:ellipsis;
    white-space:nowrap
  }

  .ticket-mobile-menu-item.important{
    border-color:#e5b1b1;
    background:#fff6f6
  }

  .ticket-mobile-menu-item.important>span{
    background:#c53e3e
  }

  .ticket-mobile-menu-item.destructive{
    border-color:#e9c6c6;
    color:#8a3333;
    background:#fffafa
  }

  .ticket-mobile-menu-item.destructive>span{
    background:#a84b4b
  }

  .modal.keyboard-open
  .modal-card.modal-ticket
  .ticket-sticky-actions{
    display:none
  }

  .modal.keyboard-open
  .modal-card.modal-ticket
  .ticket-mobile-action-spacer{
    height:8px
  }

  .modal-card.modal-ticket
  .modal-body{
    scroll-padding-bottom:
      calc(
        86px +
        env(safe-area-inset-bottom)
      )
  }
}

@media(max-width:390px){
  .modal-card.modal-ticket
  .ticket-sticky-actions{
    margin-left:-8px;
    margin-right:-8px
  }

  .ticket-mobile-action-dock{
    grid-template-columns:
      minmax(0,1fr)
      minmax(0,1fr)
      48px;
    gap:5px;
    padding-left:7px;
    padding-right:7px
  }

  .ticket-mobile-action-button{
    grid-template-columns:28px minmax(0,1fr);
    gap:5px;
    padding:5px 6px
  }

  .ticket-mobile-action-icon{
    width:27px;
    height:27px;
    border-radius:8px
  }

  .ticket-mobile-action-menu-grid{
    grid-template-columns:1fr
  }

  .ticket-mobile-menu-item{
    min-height:68px
  }
}


/* =========================================================
   3.4.5 - MONITOREO AUTOMÁTICO DE TICKETS
   ========================================================= */

.nav button[data-page="support"]{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px
}

.nav-live-count{
  min-width:19px;
  height:19px;
  display:inline-grid;
  place-items:center;
  padding:0 5px;
  border-radius:999px;
  color:#fff;
  background:#d43c3c;
  font-size:8px;
  font-weight:900;
  box-shadow:0 0 0 2px rgba(212,60,60,.12)
}

.support-header-actions{
  flex-wrap:wrap
}

.support-live-monitor{
  min-height:42px;
  display:grid;
  grid-template-columns:
    10px
    minmax(120px,1fr)
    auto
    34px
    34px;
  gap:7px;
  align-items:center;
  padding:6px 7px 6px 10px;
  border:1px solid #cbdbe6;
  border-radius:11px;
  color:#345065;
  background:#f8fbfd;
  box-shadow:0 6px 16px rgba(23,54,93,.06)
}

.support-live-dot{
  width:9px;
  height:9px;
  border-radius:50%;
  background:#3fb06e;
  box-shadow:
    0 0 0 4px rgba(63,176,110,.12)
}

.support-live-monitor.checking
.support-live-dot{
  background:#2f79a6;
  animation:ticketMonitorPulse 1s ease-in-out infinite
}

.support-live-monitor.offline
.support-live-dot{
  background:#c58a25;
  box-shadow:
    0 0 0 4px rgba(197,138,37,.12)
}

.support-live-monitor.has-news{
  border-color:#e5b3b3;
  background:#fff7f7
}

.support-live-monitor.has-news
.support-live-dot{
  background:#ce4545;
  box-shadow:
    0 0 0 4px rgba(206,69,69,.12)
}

@keyframes ticketMonitorPulse{
  50%{
    opacity:.42;
    transform:scale(.82)
  }
}

.support-live-copy{
  min-width:0;
  display:grid;
  gap:1px
}

.support-live-copy b{
  overflow:hidden;
  color:#304c61;
  font-size:9px;
  text-overflow:ellipsis;
  white-space:nowrap
}

.support-live-copy small{
  overflow:hidden;
  color:#7a8c9b;
  font-size:7px;
  text-overflow:ellipsis;
  white-space:nowrap
}

.support-live-badge{
  min-width:21px;
  height:21px;
  display:grid;
  place-items:center;
  padding:0 5px;
  border-radius:999px;
  color:#fff;
  background:#d33d3d;
  font-size:8px;
  font-weight:900
}

.support-live-icon-button{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid #cfdae3;
  border-radius:9px;
  color:#4b667a;
  background:#fff;
  font-size:14px;
  font-weight:900;
  cursor:pointer
}

.support-live-icon-button:hover{
  border-color:#8fafc5;
  background:#eef5f9
}

.support-live-icon-button.active{
  border-color:#d6b55f;
  color:#845e14;
  background:#fff8e7
}

.support-live-icon-button.refresh{
  font-size:17px
}

.support-live-notice{
  display:grid;
  grid-template-columns:
    38px
    minmax(0,1fr)
    auto
    34px;
  gap:10px;
  align-items:center;
  margin-bottom:11px;
  padding:10px;
  border:1px solid #a9c9dc;
  border-left:5px solid #2f78a3;
  border-radius:12px;
  background:#f0f8fc;
  box-shadow:0 9px 21px rgba(23,54,93,.08)
}

.support-live-notice.new{
  border-color:#e3b2b2;
  border-left-color:#c84040;
  background:#fff5f5
}

.support-live-notice.changed{
  border-color:#b7cfe0;
  border-left-color:#327aa4;
  background:#f3f8fc
}

.support-live-notice.waiting{
  border-color:#e2ce91;
  border-left-color:#bd8421;
  background:#fff9eb
}

.support-live-notice.success{
  border-color:#add5ba;
  border-left-color:#348659;
  background:#f2faf5
}

.support-live-notice-icon{
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border-radius:10px;
  color:#fff;
  background:#327aa4;
  font-size:12px;
  font-weight:900
}

.support-live-notice.new
.support-live-notice-icon{
  background:#c84040
}

.support-live-notice.waiting
.support-live-notice-icon{
  background:#bd8421
}

.support-live-notice.success
.support-live-notice-icon{
  background:#348659
}

.support-live-notice>div{
  min-width:0;
  display:grid;
  gap:2px
}

.support-live-notice b{
  color:#304a5f;
  font-size:10px
}

.support-live-notice p{
  margin:0;
  color:#6f8292;
  font-size:8px;
  line-height:1.4
}

.support-live-notice .btn{
  min-height:36px;
  white-space:nowrap
}

.support-live-notice-close{
  width:34px;
  height:34px;
  border:1px solid #d1dce4;
  border-radius:9px;
  color:#5c7182;
  background:#fff;
  font-size:17px;
  cursor:pointer
}

@media(max-width:900px){
  .support-header-actions{
    width:100%;
    display:grid;
    grid-template-columns:
      minmax(0,1fr)
      auto
      auto
  }

  .support-live-monitor{
    min-width:0
  }
}

@media(max-width:700px){
  .support-header-actions{
    grid-template-columns:1fr 1fr
  }

  .support-live-monitor{
    grid-column:1/-1;
    grid-template-columns:
      9px
      minmax(0,1fr)
      auto
      34px
      34px
  }

  .support-live-copy small{
    white-space:normal
  }

  .support-live-notice{
    grid-template-columns:
      34px
      minmax(0,1fr)
      32px
  }

  .support-live-notice .btn{
    grid-column:1/-1;
    width:100%
  }

  .support-live-notice-close{
    grid-column:3;
    grid-row:1
  }
}

@media(max-width:420px){
  .support-live-monitor{
    grid-template-columns:
      9px
      minmax(0,1fr)
      31px
      31px
  }

  .support-live-badge{
    position:absolute;
    transform:translate(17px,-17px)
  }

  .support-live-icon-button{
    width:31px;
    height:31px
  }
}


/* =========================================================
   3.5.1 - CENTRO PRODUCTIVO
   ========================================================= */
.productivity-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:12px;padding:22px;border-radius:18px;color:#fff;background:linear-gradient(125deg,#17365d,#246f78);box-shadow:0 15px 32px rgba(23,54,93,.15)}
.productivity-hero h2{margin:5px 0 7px;font-size:26px}.productivity-hero p{margin:0;color:#dcebf0;font-size:11px}
.productivity-global-search{min-width:360px;display:flex;gap:7px}.productivity-global-search input{min-width:0;flex:1;height:42px;border:0;border-radius:10px;background:#fff}
.productivity-tabs{display:flex;gap:7px;overflow:auto;margin-bottom:12px;padding:7px;border:1px solid #dbe5ed;border-radius:12px;background:#fff}
.productivity-tabs button{flex:0 0 auto;padding:9px 12px;border:0;border-radius:9px;color:#52697d;background:transparent;font-weight:800;font-size:9px;cursor:pointer}
.productivity-tabs button.active{color:#fff;background:#22577e}
.productivity-tab-page{display:none}.productivity-tab-page.active{display:block}
.productivity-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:10px}
.productivity-kpis article{display:grid;gap:3px;padding:14px;border:1px solid #dce5ed;border-radius:12px;background:#fff}
.productivity-kpis small{color:#778899;font-size:8px;font-weight:900;text-transform:uppercase}.productivity-kpis strong{color:#21445f;font-size:22px}
.productivity-active-work{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;padding:12px;border:1px solid #a7c9bc;border-radius:12px;background:#f2faf6}
.productivity-active-work div{display:grid;gap:2px}.productivity-active-work span{font-size:7px;font-weight:900;color:#638276}.productivity-active-work b{font-size:10px;color:#2d5e4c}
.productivity-two-columns{display:grid;grid-template-columns:1.35fr .65fr;gap:12px}
.productivity-panel{margin-bottom:12px;padding:14px;border:1px solid #dce5ed;border-radius:14px;background:#fff;box-shadow:0 8px 20px rgba(23,54,93,.06)}
.productivity-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:11px}.productivity-panel-head.compact{margin-top:15px}
.productivity-panel-head span{color:#81909e;font-size:7px;font-weight:900;letter-spacing:.6px}.productivity-panel-head h3{margin:3px 0 0;color:#30495d;font-size:14px}
.productivity-ticket-list,.productivity-low-stock,.productivity-resource-list,.productivity-knowledge-list{display:grid;gap:8px}
.productivity-ticket-card{width:100%;display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:9px;align-items:center;padding:10px;border:1px solid #dce5ed;border-radius:10px;color:inherit;background:#fafcfd;text-align:left;cursor:pointer}
.productivity-ticket-card>span{width:29px;height:29px;display:grid;place-items:center;border-radius:8px;color:#fff;background:#2d668e;font-size:9px;font-weight:900}
.productivity-ticket-card div{min-width:0;display:grid;gap:2px}.productivity-ticket-card b,.productivity-ticket-card small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.productivity-ticket-card b{font-size:9px;color:#304a5e}.productivity-ticket-card small{font-size:7px;color:#788a99}.productivity-ticket-card strong{font-size:8px;color:#6d8090}
.productivity-quick-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.productivity-quick-actions button{min-height:82px;display:grid;place-items:center;align-content:center;gap:3px;padding:9px;border:1px solid #d8e3eb;border-radius:11px;color:#345065;background:#f8fbfd;cursor:pointer}
.productivity-quick-actions span{font-size:17px}.productivity-quick-actions b{font-size:8px}.productivity-quick-actions small{font-size:7px;color:#81919f}
.productivity-low-stock>div,.productivity-resource-list article{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px;border:1px solid #e0e7ed;border-radius:9px;background:#fafcfd}
.productivity-low-stock b,.productivity-resource-list b{font-size:8px;color:#425b6e}.productivity-low-stock span,.productivity-resource-list strong{font-size:8px;color:#a15b25}
.productivity-technician-load{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;margin-bottom:12px}
.productivity-technician-load article{display:grid;gap:2px;padding:10px;border:1px solid #d9e3eb;border-radius:10px;background:#f8fbfd}.productivity-technician-load b{font-size:9px}.productivity-technician-load span,.productivity-technician-load small{font-size:7px;color:#718495}
.productivity-kanban{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:9px;align-items:start}.productivity-kanban section{display:grid;gap:7px;padding:8px;border-radius:11px;background:#eef3f7}
.productivity-kanban h4{display:flex;justify-content:space-between;margin:0;padding:4px;color:#40596d;font-size:9px}.productivity-kanban button{display:grid;gap:3px;padding:9px;border:1px solid #d7e1e8;border-radius:9px;background:#fff;text-align:left;cursor:pointer}
.productivity-kanban b{font-size:8px}.productivity-kanban span{font-size:8px;color:#435d72}.productivity-kanban small{font-size:7px;color:#7d8c99}
.productivity-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:12px}.productivity-form.stacked{grid-template-columns:1fr}
.productivity-form input,.productivity-form select,.productivity-form textarea,.productivity-search-line input{width:100%;min-width:0;border:1px solid #cedbe4;border-radius:9px;background:#fbfdff}
.productivity-form textarea{min-height:80px;resize:vertical}.productivity-form button{grid-column:1/-1}
.productivity-search-line{display:flex;gap:7px;margin-bottom:10px}.productivity-search-line input{flex:1}
.productivity-knowledge-list details{padding:10px;border:1px solid #dce5ed;border-radius:10px;background:#fafcfd}.productivity-knowledge-list summary{display:flex;justify-content:space-between;gap:8px;cursor:pointer}.productivity-knowledge-list b{font-size:9px}.productivity-knowledge-list span{font-size:7px;color:#718495}.productivity-knowledge-list h4{margin:10px 0 3px;font-size:8px;color:#476175}.productivity-knowledge-list p{margin:0;font-size:8px;line-height:1.5;color:#65798a}
.voice-field{position:relative}.voice-field textarea{padding-right:46px}.voice-button{position:absolute;right:7px;bottom:7px;width:34px;height:34px!important;min-height:0;border:1px solid #b8ccda;border-radius:9px;background:#eef6fa;cursor:pointer}
.productivity-automation-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.productivity-automation-form label{display:grid;gap:5px;color:#536a7c;font-size:9px}.productivity-automation-form label.wide{grid-column:1/-1}.productivity-automation-form textarea{min-height:80px}.productivity-automation-form button{grid-column:1/-1;justify-self:start}
.productivity-note{padding:10px;border-radius:9px;color:#725d33;background:#fff9ec;font-size:8px}
.productivity-search-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.productivity-search-results section{display:grid;align-content:start;gap:7px}.productivity-search-results h3{margin:0 0 4px;font-size:12px;color:#304b60}
.productivity-search-results button{display:grid;gap:2px;padding:9px;border:1px solid #dce5ed;border-radius:9px;background:#fafcfd;text-align:left;cursor:pointer}.productivity-search-results b{font-size:8px}.productivity-search-results span{font-size:7px;color:#718495}
.productivity-empty{padding:16px;border:1px dashed #cbd8e1;border-radius:10px;text-align:center;background:#fafcfd}.productivity-empty b{font-size:9px}.productivity-empty p{margin:4px 0 0;font-size:8px;color:#758797}
@media(max-width:900px){.productivity-two-columns{grid-template-columns:1fr}.productivity-global-search{min-width:0;width:100%}.productivity-hero{align-items:stretch;flex-direction:column}.productivity-kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.productivity-hero{padding:16px}.productivity-global-search{display:grid;grid-template-columns:1fr auto}.productivity-kpis,.productivity-search-results{grid-template-columns:1fr 1fr}.productivity-form,.productivity-automation-form{grid-template-columns:1fr}.productivity-automation-form label.wide,.productivity-automation-form button{grid-column:auto}.productivity-ticket-card{grid-template-columns:28px minmax(0,1fr)}.productivity-ticket-card>strong{grid-column:2}.productivity-search-results{grid-template-columns:1fr}}

/* Actualización 3.5.1: movimientos reales y resúmenes automáticos */
.productivity-resource-actions{display:flex;align-items:flex-end;gap:7px;flex-direction:column}
.productivity-resource-actions button{padding:5px 8px;border:1px solid #cbd9e3;border-radius:7px;background:#fff;color:#315a76;font-size:7px;font-weight:900;cursor:pointer}
.productivity-movement-panel{margin-top:2px}
.productivity-movement-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-bottom:14px}
.productivity-movement-form label{display:grid;gap:5px;color:#536a7c;font-size:8px;font-weight:800}
.productivity-movement-form label.wide{grid-column:1/-1}
.productivity-movement-form input,.productivity-movement-form select,.productivity-movement-form textarea{width:100%;min-width:0;border:1px solid #cedbe4;border-radius:9px;background:#fbfdff}
.productivity-movement-form textarea{min-height:70px;resize:vertical}
.productivity-movement-form button{grid-column:1/-1;justify-self:start}
.productivity-movement-list{display:grid;gap:8px}
.productivity-movement-list>article{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px;border:1px solid #dce5ed;border-radius:10px;background:#fafcfd}
.productivity-movement-main,.productivity-movement-meta{display:grid;gap:3px;min-width:0}
.productivity-movement-main b{font-size:9px;color:#304a5e}.productivity-movement-main span,.productivity-movement-main small{font-size:7px;color:#718495}
.productivity-movement-meta{text-align:right}.productivity-movement-meta strong{font-size:8px;color:#315a76}.productivity-movement-meta span,.productivity-movement-meta small{font-size:7px;color:#718495}
.productivity-automation-actions{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.productivity-automation-status{margin-top:10px}
.productivity-automation-state{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:12px;border:1px solid #dce5ed;border-radius:11px;background:#f8fbfd}
.productivity-automation-state>div{display:grid;gap:3px}.productivity-automation-state small{font-size:7px;color:#718495;font-weight:900}.productivity-automation-state b{font-size:8px;color:#304a5e}
.productivity-automation-state p{grid-column:1/-1;margin:2px 0 0;padding-top:8px;border-top:1px solid #dce5ed;font-size:8px;color:#65798a}
.productivity-automation-state.success{border-color:#b7dfc7;background:#f1faf5}.productivity-automation-state.error{border-color:#efc1c1;background:#fff5f5}
@media(max-width:800px){.productivity-movement-form{grid-template-columns:1fr 1fr}.productivity-automation-state{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.productivity-movement-form{grid-template-columns:1fr}.productivity-movement-form label.wide,.productivity-movement-form button{grid-column:auto}.productivity-movement-list>article{grid-template-columns:1fr}.productivity-movement-meta{text-align:left}.productivity-resource-actions{align-items:flex-end}.productivity-automation-actions{display:grid}.productivity-automation-actions .btn{width:100%}.productivity-automation-state{grid-template-columns:1fr}}

/* =========================================================
   3.5.4 - CENTRO PRODUCTIVO: EXPERIENCIA DE ESCRITORIO
   Mejora de legibilidad, densidad y aprovechamiento del espacio.
   La vista móvil conserva sus reglas anteriores.
   ========================================================= */
@media (min-width:1000px){
  #productivity{
    --prod-text:#2f485c;
    --prod-muted:#6f8292;
    --prod-line:#d7e2ea;
    --prod-soft:#f6f9fb;
    font-size:14px;
  }

  #productivity .productivity-hero{
    gap:30px;
    margin-bottom:16px;
    padding:27px 30px;
    border-radius:20px;
    box-shadow:0 18px 38px rgba(23,54,93,.17)
  }
  #productivity .operations-eyebrow{
    font-size:10px;
    letter-spacing:1.25px
  }
  #productivity .productivity-hero h2{
    margin:6px 0 8px;
    font-size:30px;
    line-height:1.1
  }
  #productivity .productivity-hero p{
    max-width:720px;
    font-size:13px;
    line-height:1.55
  }
  #productivity .productivity-global-search{
    min-width:460px;
    max-width:620px;
    gap:10px
  }
  #productivity .productivity-global-search input{
    height:48px;
    padding:0 15px;
    font-size:14px;
    border-radius:12px
  }
  #productivity .productivity-global-search .btn{
    min-width:92px;
    padding:0 18px;
    font-size:13px;
    border-radius:12px
  }

  #productivity .productivity-tabs{
    gap:8px;
    margin-bottom:16px;
    padding:8px;
    border-radius:14px;
    box-shadow:0 6px 18px rgba(23,54,93,.05)
  }
  #productivity .productivity-tabs button{
    padding:11px 16px;
    border-radius:10px;
    font-size:12px;
    line-height:1.2
  }
  #productivity .productivity-tabs button:hover{
    color:#214f72;
    background:#edf4f8
  }
  #productivity .productivity-tabs button.active{
    color:#fff;
    background:#22577e;
    box-shadow:0 5px 12px rgba(34,87,126,.22)
  }

  #productivity .productivity-kpis{
    gap:13px;
    margin-bottom:14px
  }
  #productivity .productivity-kpis article{
    min-height:94px;
    gap:6px;
    padding:18px 20px;
    border-radius:14px;
    box-shadow:0 7px 18px rgba(23,54,93,.05)
  }
  #productivity .productivity-kpis small{
    font-size:10px;
    letter-spacing:.45px
  }
  #productivity .productivity-kpis strong{
    font-size:29px;
    line-height:1
  }

  #productivity .productivity-active-work{
    gap:16px;
    margin-bottom:14px;
    padding:15px 18px;
    border-radius:14px
  }
  #productivity .productivity-active-work div{
    gap:4px
  }
  #productivity .productivity-active-work span{
    font-size:10px;
    letter-spacing:.35px
  }
  #productivity .productivity-active-work b{
    font-size:13px
  }

  #productivity .productivity-two-columns{
    grid-template-columns:minmax(0,1.35fr) minmax(390px,.65fr);
    gap:16px;
    align-items:start
  }
  #productivityKnowledge .productivity-two-columns{
    grid-template-columns:minmax(0,1.15fr) minmax(440px,.85fr)
  }
  #productivityResources .productivity-two-columns{
    grid-template-columns:minmax(0,1.1fr) minmax(420px,.9fr)
  }

  #productivity .productivity-panel{
    margin-bottom:16px;
    padding:20px;
    border-color:var(--prod-line);
    border-radius:16px;
    box-shadow:0 10px 25px rgba(23,54,93,.07)
  }
  #productivity .productivity-panel-head{
    gap:14px;
    margin-bottom:15px
  }
  #productivity .productivity-panel-head.compact{
    margin-top:20px
  }
  #productivity .productivity-panel-head span{
    font-size:9px;
    letter-spacing:.9px
  }
  #productivity .productivity-panel-head h3{
    margin-top:4px;
    font-size:17px;
    line-height:1.25
  }
  #productivity .productivity-panel-head .btn{
    min-height:40px;
    font-size:12px
  }

  #productivity .productivity-ticket-list,
  #productivity .productivity-low-stock,
  #productivity .productivity-resource-list,
  #productivity .productivity-knowledge-list{
    gap:10px
  }
  #productivity .productivity-ticket-card{
    grid-template-columns:42px minmax(0,1fr) auto;
    gap:12px;
    padding:13px 14px;
    border-radius:12px;
    transition:.18s ease
  }
  #productivity .productivity-ticket-card:hover{
    transform:translateY(-1px);
    border-color:#aec6d7;
    background:#fff;
    box-shadow:0 8px 18px rgba(23,54,93,.08)
  }
  #productivity .productivity-ticket-card>span{
    width:40px;
    height:40px;
    border-radius:10px;
    font-size:12px
  }
  #productivity .productivity-ticket-card div{
    gap:4px
  }
  #productivity .productivity-ticket-card b{
    font-size:13px
  }
  #productivity .productivity-ticket-card small{
    font-size:11px
  }
  #productivity .productivity-ticket-card strong{
    font-size:11px
  }

  #productivity .productivity-quick-actions{
    gap:10px
  }
  #productivity .productivity-quick-actions button{
    min-height:108px;
    gap:6px;
    padding:13px;
    border-radius:13px;
    transition:.18s ease
  }
  #productivity .productivity-quick-actions button:hover{
    transform:translateY(-2px);
    border-color:#aac4d6;
    background:#fff;
    box-shadow:0 8px 18px rgba(23,54,93,.08)
  }
  #productivity .productivity-quick-actions span{
    font-size:23px
  }
  #productivity .productivity-quick-actions b{
    font-size:12px;
    line-height:1.25
  }
  #productivity .productivity-quick-actions small{
    font-size:10px;
    line-height:1.25
  }

  #productivity .productivity-low-stock>div,
  #productivity .productivity-resource-list article{
    gap:12px;
    padding:12px 13px;
    border-radius:11px
  }
  #productivity .productivity-low-stock b,
  #productivity .productivity-resource-list b{
    font-size:12px
  }
  #productivity .productivity-low-stock span,
  #productivity .productivity-resource-list strong{
    font-size:11px
  }
  #productivity .productivity-resource-actions{
    gap:8px
  }
  #productivity .productivity-resource-actions button{
    padding:7px 10px;
    border-radius:8px;
    font-size:10px
  }

  #productivity .productivity-technician-load{
    grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
    gap:11px;
    margin-bottom:16px
  }
  #productivity .productivity-technician-load article{
    gap:5px;
    padding:14px;
    border-radius:12px
  }
  #productivity .productivity-technician-load b{
    font-size:13px
  }
  #productivity .productivity-technician-load span,
  #productivity .productivity-technician-load small{
    font-size:11px
  }

  #productivity .productivity-kanban{
    grid-template-columns:repeat(auto-fit,minmax(245px,1fr));
    gap:12px
  }
  #productivity .productivity-kanban section{
    gap:9px;
    padding:11px;
    border-radius:13px
  }
  #productivity .productivity-kanban h4{
    padding:6px;
    font-size:12px
  }
  #productivity .productivity-kanban button{
    gap:5px;
    padding:12px;
    border-radius:11px
  }
  #productivity .productivity-kanban b,
  #productivity .productivity-kanban span{
    font-size:11px
  }
  #productivity .productivity-kanban small{
    font-size:10px
  }

  #productivity .productivity-form{
    gap:11px;
    margin-bottom:16px
  }
  #productivity .productivity-form input,
  #productivity .productivity-form select,
  #productivity .productivity-form textarea,
  #productivity .productivity-search-line input,
  #productivity .productivity-movement-form input,
  #productivity .productivity-movement-form select,
  #productivity .productivity-movement-form textarea,
  #productivity .productivity-automation-form input,
  #productivity .productivity-automation-form select,
  #productivity .productivity-automation-form textarea{
    min-height:44px;
    padding:11px 13px;
    font-size:14px;
    line-height:1.4;
    border-radius:10px
  }
  #productivity .productivity-form textarea,
  #productivity .productivity-movement-form textarea,
  #productivity .productivity-automation-form textarea{
    min-height:96px
  }
  #productivity .productivity-form .btn,
  #productivity .productivity-movement-form .btn,
  #productivity .productivity-automation-form .btn{
    min-height:43px;
    padding:10px 17px;
    font-size:12px
  }
  #productivity .productivity-search-line{
    gap:10px;
    margin-bottom:14px
  }
  #productivity .productivity-search-line .btn{
    min-width:90px;
    font-size:12px
  }

  #productivity .productivity-knowledge-list details{
    padding:14px 15px;
    border-radius:12px
  }
  #productivity .productivity-knowledge-list summary{
    align-items:center;
    gap:12px
  }
  #productivity .productivity-knowledge-list b{
    font-size:13px
  }
  #productivity .productivity-knowledge-list span{
    font-size:10px
  }
  #productivity .productivity-knowledge-list h4{
    margin:13px 0 5px;
    font-size:11px
  }
  #productivity .productivity-knowledge-list p{
    font-size:12px;
    line-height:1.6
  }
  #productivity .voice-button{
    width:38px;
    height:38px!important;
    font-size:16px
  }

  #productivity .productivity-automation-form{
    gap:13px
  }
  #productivity .productivity-automation-form label{
    gap:7px;
    font-size:12px
  }
  #productivity .productivity-note{
    padding:13px;
    border-radius:11px;
    font-size:11px;
    line-height:1.5
  }
  #productivity .productivity-automation-actions{
    gap:10px;
    margin:17px 0
  }
  #productivity .productivity-automation-state{
    gap:11px;
    padding:15px;
    border-radius:13px
  }
  #productivity .productivity-automation-state small{
    font-size:10px
  }
  #productivity .productivity-automation-state b{
    font-size:12px
  }
  #productivity .productivity-automation-state p{
    padding-top:10px;
    font-size:11px;
    line-height:1.5
  }

  #productivity .productivity-movement-form{
    gap:12px;
    margin-bottom:18px
  }
  #productivity .productivity-movement-form label{
    gap:7px;
    font-size:11px
  }
  #productivity .productivity-movement-list{
    gap:10px
  }
  #productivity .productivity-movement-list>article{
    gap:15px;
    padding:13px 14px;
    border-radius:12px
  }
  #productivity .productivity-movement-main,
  #productivity .productivity-movement-meta{
    gap:5px
  }
  #productivity .productivity-movement-main b{
    font-size:13px
  }
  #productivity .productivity-movement-main span,
  #productivity .productivity-movement-main small,
  #productivity .productivity-movement-meta span,
  #productivity .productivity-movement-meta small{
    font-size:10px
  }
  #productivity .productivity-movement-meta strong{
    font-size:11px
  }

  #productivity .productivity-search-results{
    gap:16px
  }
  #productivity .productivity-search-results section{
    gap:10px
  }
  #productivity .productivity-search-results h3{
    margin-bottom:6px;
    font-size:16px
  }
  #productivity .productivity-search-results button{
    gap:5px;
    padding:12px 13px;
    border-radius:11px
  }
  #productivity .productivity-search-results b{
    font-size:12px
  }
  #productivity .productivity-search-results span{
    font-size:10px
  }

  #productivity .productivity-empty{
    padding:24px 18px;
    border-radius:12px
  }
  #productivity .productivity-empty b{
    font-size:13px
  }
  #productivity .productivity-empty p{
    margin-top:6px;
    font-size:11px;
    line-height:1.5
  }
}

@media (min-width:1500px){
  #productivity .productivity-global-search{
    min-width:520px
  }
  #productivity .productivity-two-columns{
    gap:18px
  }
  #productivity .productivity-panel{
    padding:22px
  }
}

/* =========================================================
   3.6.4 - INSTALACIONES Y TRABAJOS DE CAMPO
   ========================================================= */

.installation-hero{
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:28px 30px;margin-bottom:16px;border-radius:22px;color:#fff;
  background:linear-gradient(120deg,#17365d 0%,#245079 54%,#2f7b78 100%);
  box-shadow:0 18px 38px rgba(23,54,93,.18)
}
.installation-hero h2{margin:5px 0 7px;font-size:clamp(25px,2.2vw,36px);line-height:1.08;color:#fff}
.installation-hero p{margin:0;max-width:760px;font-size:15px;line-height:1.55;color:rgba(255,255,255,.88)}
.installation-hero .operations-eyebrow{color:rgba(255,255,255,.62)}
.installation-hero-actions{display:flex;gap:10px;flex:0 0 auto}
.installation-hero-actions .btn{min-height:46px;padding-inline:18px}

.installation-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin:0 0 16px}
.installation-kpi{min-height:110px;padding:17px;border:1px solid #dbe5ee;border-radius:17px;background:#fff;box-shadow:0 9px 24px rgba(23,54,93,.07)}
.installation-kpi small{display:block;font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#708096}
.installation-kpi strong{display:block;margin-top:7px;font-size:29px;line-height:1;color:#17365d}
.installation-kpi span{display:block;margin-top:8px;font-size:12px;color:#667085}
.installation-kpi.running{border-top:4px solid #2d6aa0}.installation-kpi.material{border-top:4px solid #d29427}.installation-kpi.late{border-top:4px solid #c63c3c}.installation-kpi.done{border-top:4px solid #2d8b68}

.installation-filter-card{display:grid;grid-template-columns:minmax(260px,2fr) minmax(180px,1fr) minmax(210px,1fr) auto;gap:12px;align-items:end;padding:16px;margin-bottom:16px;border:1px solid #d8e3ed;border-radius:17px;background:#fff;box-shadow:0 8px 22px rgba(23,54,93,.06)}
.installation-filter-card label{display:grid;gap:6px}.installation-filter-card label span{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#5d6d82}.installation-filter-card input,.installation-filter-card select{min-height:44px}

.installation-workspace{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:16px;align-items:start}
.installation-panel{border:1px solid #d8e3ed;border-radius:19px;background:#fff;box-shadow:0 10px 28px rgba(23,54,93,.07);overflow:hidden}
.installation-panel-head{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:18px 20px;border-bottom:1px solid #e7edf3}
.installation-panel-head span{display:block;font-size:10px;font-weight:900;letter-spacing:.08em;color:#7a899c}
.installation-panel-head h3{margin:4px 0 0;font-size:19px;color:#233f61}
.installation-panel-head>small{font-size:12px;color:#667085}
.installation-list{display:grid;gap:12px;padding:16px}
.installation-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;padding:17px;border:1px solid #d9e4ee;border-radius:16px;background:linear-gradient(180deg,#fff,#fbfdff);text-align:left;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;cursor:pointer}
.installation-card:hover{transform:translateY(-2px);border-color:#94b3ce;box-shadow:0 12px 24px rgba(23,54,93,.11)}
.installation-card-title{display:flex;align-items:flex-start;gap:12px}
.installation-card-code{display:inline-grid;place-items:center;min-width:94px;min-height:30px;padding:4px 8px;border-radius:9px;background:#eaf2f8;font-size:12px;font-weight:900;color:#234d77}
.installation-card h4{margin:0 0 6px;font-size:17px;line-height:1.25;color:#1f3857}.installation-card p{margin:0;font-size:13px;color:#65758a}
.installation-card-meta{display:flex;flex-wrap:wrap;gap:7px 15px;margin-top:12px;font-size:12px;color:#52647a}.installation-card-meta b{color:#30465f}
.installation-card-side{display:grid;justify-items:end;align-content:space-between;gap:12px;min-width:170px}
.installation-progress{width:170px}.installation-progress-head{display:flex;justify-content:space-between;margin-bottom:6px;font-size:11px;color:#65758a}.installation-progress-head b{font-size:13px;color:#17365d}.installation-progress-track{height:9px;border-radius:999px;background:#e6edf4;overflow:hidden}.installation-progress-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2f6da0,#2b8b78)}
.installation-card-counters{display:flex;gap:8px}.installation-card-counters span{display:grid;place-items:center;min-width:48px;padding:7px;border-radius:10px;background:#f2f6fa;font-size:11px;color:#5e6f83}.installation-card-counters b{font-size:14px;color:#243e5c}
.installation-guide ol{list-style:none;margin:0;padding:12px 18px 20px;counter-reset:installstep}.installation-guide li{position:relative;padding:13px 0 13px 43px;border-bottom:1px solid #edf1f5;counter-increment:installstep}.installation-guide li:last-child{border-bottom:0}.installation-guide li::before{content:counter(installstep);position:absolute;left:0;top:11px;display:grid;place-items:center;width:29px;height:29px;border-radius:50%;background:#e8f1f8;font-weight:900;color:#24527c}.installation-guide b{display:block;font-size:14px;color:#233f61}.installation-guide span{display:block;margin-top:3px;font-size:12px;line-height:1.45;color:#6a788b}

.installation-modal-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.installation-modal-form label{display:grid;gap:7px;font-size:13px;font-weight:850;color:#354b66}
.installation-modal-form label>small{font-size:11px;font-weight:600;line-height:1.45;color:#73839a}
.installation-modal-form .wide{grid-column:1/-1}
.installation-modal-form textarea{min-height:112px;line-height:1.55}
.installation-order-form{padding-bottom:4px}
.installation-form-intro{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 20px;border:1px solid #cbdbe8;border-radius:17px;background:linear-gradient(120deg,#edf5fb,#f8fbfd)}
.installation-form-intro>div:first-child{min-width:0}
.installation-form-intro>div:first-child>span{display:block;font-size:10px;font-weight:950;letter-spacing:.1em;color:#52718f}
.installation-form-intro h4{margin:5px 0 6px;font-size:21px;color:#203d5f}
.installation-form-intro p{max-width:790px;margin:0;font-size:13px;line-height:1.55;color:#62748a}
.installation-selection-summary{display:flex;gap:9px;flex:0 0 auto}
.installation-selection-summary span{display:grid;place-items:center;min-width:92px;padding:10px 12px;border:1px solid #c7d8e6;border-radius:13px;background:#fff;font-size:11px;font-weight:800;color:#61758b}
.installation-selection-summary b{display:block;font-size:23px;line-height:1;color:#214d78}
.installation-form-section{overflow:hidden;border:1px solid #d5e1eb;border-radius:17px;background:#fff;box-shadow:0 7px 18px rgba(28,61,92,.055)}
.installation-form-section-head{display:flex;align-items:center;gap:12px;padding:15px 17px;border-bottom:1px solid #e6edf3;background:#f8fafc}
.installation-form-section-head>div{min-width:0}
.installation-form-section-head h5{margin:0;font-size:16px;color:#263f5e}
.installation-form-section-head p{margin:3px 0 0;font-size:11.5px;line-height:1.4;color:#718197}
.installation-form-step{display:grid;place-items:center;width:32px;height:32px;flex:0 0 32px;border-radius:10px;background:#224e7a;color:#fff;font-size:14px;font-weight:950;box-shadow:0 5px 12px rgba(34,78,122,.18)}
.installation-section-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;padding:17px}
.installation-section-fields .wide,.installation-field.wide{grid-column:1/-1}
.installation-primary-field input{min-height:48px;font-size:14px;font-weight:700}
.installation-field{display:grid;gap:10px}
.installation-field-title{display:flex;align-items:flex-end;justify-content:space-between;gap:14px}
.installation-field-title>span{font-size:13px;font-weight:900;color:#354b66}
.installation-field-title strong{display:inline-block;margin-left:6px;padding:3px 7px;border-radius:999px;background:#e8f1f8;font-size:10px;color:#2c608e}
.installation-field-title>small{font-size:11px;font-weight:650;color:#63778e;text-align:right}
.installation-field-title>small.is-empty{color:#a45a24}
.installation-choice-grid{display:grid;gap:9px}
.installation-type-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.installation-technician-grid{grid-template-columns:repeat(auto-fit,minmax(225px,1fr))}
.installation-choice-card{position:relative;display:flex!important;align-items:center;gap:10px;min-height:68px;padding:11px 12px!important;border:1px solid #cfdae5;border-radius:13px;background:#fbfcfe;cursor:pointer;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease,transform .15s ease}
.installation-choice-card:hover{transform:translateY(-1px);border-color:#8faec9;box-shadow:0 7px 15px rgba(32,72,108,.08)}
.installation-choice-card:has(input:checked){border-color:#2c6a9c;background:#edf6fc;box-shadow:0 0 0 2px rgba(44,106,156,.12)}
.installation-choice-card input{position:absolute;opacity:0;pointer-events:none}
.installation-choice-mark{display:grid;place-items:center;width:24px;height:24px;flex:0 0 24px;border:2px solid #9cafc0;border-radius:8px;background:#fff;color:transparent;font-size:14px;font-weight:950}
.installation-choice-card:has(input:checked) .installation-choice-mark{border-color:#2d6d9f;background:#2d6d9f;color:#fff}
.installation-choice-copy{display:grid;gap:3px;min-width:0}
.installation-choice-copy b{font-size:13px;line-height:1.25;color:#2d4663}
.installation-choice-copy small{font-size:10.5px;font-weight:600;line-height:1.35;color:#75869b}
.installation-technician-avatar{display:grid;place-items:center;width:36px;height:36px;flex:0 0 36px;border-radius:11px;background:#dfeaf3;font-size:15px;font-weight:950;color:#315b80}
.installation-choice-card:has(input:checked) .installation-technician-avatar{background:#2d6d9f;color:#fff}
.installation-team-fields{grid-template-columns:minmax(260px,.7fr) minmax(320px,1.3fr)}
.installation-team-note{display:grid;align-content:center;gap:4px;padding:11px 13px;border:1px dashed #b7c9d9;border-radius:12px;background:#f7fafc}
.installation-team-note b{font-size:12px;color:#34516f}
.installation-team-note span{font-size:11px;line-height:1.45;color:#6d7f93}
.installation-progress-input{display:grid;grid-template-columns:minmax(0,1fr) 42px;overflow:hidden;border:1px solid #ccd8e4;border-radius:10px;background:#fff}
.installation-progress-input input{border:0!important;border-radius:0!important;box-shadow:none!important}
.installation-progress-input span{display:grid;place-items:center;border-left:1px solid #dde5ec;background:#f4f7fa;font-size:13px;font-weight:900;color:#49617a}
.installation-modal-actions{position:sticky;bottom:-20px;z-index:12;grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;margin:2px -20px -20px;padding:13px 20px max(13px,env(safe-area-inset-bottom));border-top:1px solid #dbe4ec;background:rgba(255,255,255,.96);box-shadow:0 -10px 22px rgba(30,56,82,.09);backdrop-filter:blur(9px)}
.installation-modal-actions>div{display:grid;gap:2px}
.installation-modal-actions>div b{font-size:12px;color:#2b4562}
.installation-modal-actions>div span{font-size:10.5px;color:#748397}
.installation-modal-actions .btn{min-width:120px}

.installation-detail{display:grid;gap:15px}.installation-detail-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;padding:18px;border-radius:17px;background:linear-gradient(125deg,#17365d,#2d6e7d);color:#fff}.installation-detail-hero h3{margin:4px 0 7px;font-size:23px;color:#fff}.installation-detail-hero p{margin:0;color:rgba(255,255,255,.8)}.installation-detail-actions{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:flex-end;gap:8px}.installation-detail-actions .btn{min-height:39px}
.installation-detail-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.installation-summary-item{padding:12px;border:1px solid #dbe4ed;border-radius:13px;background:#f9fbfd}.installation-summary-item small{display:block;font-size:10px;font-weight:900;letter-spacing:.06em;color:#7a899c}.installation-summary-item b{display:block;margin-top:5px;font-size:14px;line-height:1.4;color:#243e5d}
.installation-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}.installation-detail-section{border:1px solid #d9e4ee;border-radius:16px;background:#fff;overflow:hidden}.installation-detail-section.wide{grid-column:1/-1}.installation-detail-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid #e7edf3;background:#fbfcfe}.installation-detail-section-head h4{margin:0;font-size:16px;color:#233f61}.installation-detail-section-head small{color:#728197}
.installation-section-body{padding:14px}.installation-inline-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:13px}.installation-inline-form .wide{grid-column:1/-1}.installation-inline-form textarea{min-height:72px}.installation-inline-form .btn{align-self:end}.installation-inline-form.compact{grid-template-columns:repeat(4,minmax(0,1fr)) auto}.installation-inline-form.compact .wide{grid-column:auto}
.installation-task-list,.installation-material-list,.installation-log-list,.installation-equipment-list{display:grid;gap:9px}.installation-task,.installation-material,.installation-log,.installation-equipment{padding:12px;border:1px solid #dce5ed;border-radius:13px;background:#fcfdff}.installation-task-top,.installation-material-top,.installation-equipment-top{display:flex;justify-content:space-between;gap:12px}.installation-task h5,.installation-material h5,.installation-equipment h5{margin:0;font-size:14px;color:#263f5d}.installation-task p,.installation-material p,.installation-equipment p,.installation-log p{margin:7px 0 0;font-size:12px;line-height:1.5;color:#637287}.installation-task-actions,.installation-material-actions,.installation-equipment-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.installation-task-actions .btn,.installation-material-actions .btn,.installation-equipment-actions .btn{min-height:31px;padding:5px 9px;font-size:11px}.installation-material-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:10px}.installation-material-metrics span{padding:8px;border-radius:9px;background:#f0f5f9;font-size:10px;color:#66758a}.installation-material-metrics b{display:block;margin-top:3px;font-size:13px;color:#28415f}.installation-log-head{display:flex;justify-content:space-between;gap:10px}.installation-log-head b{color:#263f5d}.installation-log-head span{font-size:11px;color:#6c7a8c}.installation-log-problem{color:#9f2f2f!important}.installation-log-pending{color:#91620d!important}
.installation-evidence-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.installation-evidence{position:relative;border:1px solid #d8e3ed;border-radius:13px;overflow:hidden;background:#f4f7fa}.installation-evidence img{display:block;width:100%;height:175px;object-fit:cover}.installation-evidence figcaption{padding:9px;font-size:11px;color:#53647a}.installation-evidence button{position:absolute;top:7px;right:7px;border:0;border-radius:8px;padding:5px 7px;background:rgba(154,31,31,.9);color:#fff;cursor:pointer}
.installation-close-form{display:grid;gap:11px}.installation-signature-wrap{border:1px dashed #9eb2c5;border-radius:13px;padding:9px;background:#fff}.installation-signature-wrap canvas{width:100%;height:180px;display:block;border-radius:8px;background:#fff;touch-action:none}.installation-empty{padding:26px;text-align:center;border:1px dashed #c9d5e1;border-radius:13px;color:#6b7b90}.installation-empty b{display:block;margin-bottom:5px;color:#36516f}

@media(max-width:1180px){.installation-kpis{grid-template-columns:repeat(3,1fr)}.installation-workspace{grid-template-columns:1fr}.installation-guide{display:none}.installation-detail-summary{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){
  .installation-hero{align-items:flex-start;flex-direction:column;padding:20px;border-radius:17px}.installation-hero-actions{width:100%}.installation-hero-actions .btn{flex:1}
  .installation-kpis{grid-template-columns:repeat(2,1fr);gap:9px}.installation-kpi{min-height:96px;padding:13px}.installation-kpi strong{font-size:24px}
  .installation-filter-card{grid-template-columns:1fr}.installation-filter-card .btn{width:100%}
  .installation-card{grid-template-columns:1fr}.installation-card-title{display:block}.installation-card-code{margin-bottom:8px}.installation-card-side{justify-items:stretch;min-width:0}.installation-progress{width:100%}.installation-card-counters{justify-content:space-between}
  .installation-modal-form,.installation-detail-grid,.installation-detail-summary{grid-template-columns:1fr}.installation-modal-form .wide,.installation-detail-section.wide{grid-column:auto}.installation-detail-hero{grid-template-columns:1fr}.installation-detail-actions{justify-content:flex-start}.installation-inline-form,.installation-inline-form.compact{grid-template-columns:1fr}.installation-inline-form .wide,.installation-inline-form.compact .wide{grid-column:auto}.installation-material-metrics{grid-template-columns:repeat(2,1fr)}.installation-evidence-grid{grid-template-columns:1fr 1fr}.installation-evidence img{height:140px}
  .installation-form-intro{align-items:flex-start;flex-direction:column;padding:15px}.installation-form-intro h4{font-size:18px}.installation-selection-summary{width:100%}.installation-selection-summary span{flex:1;min-width:0}
  .installation-section-fields,.installation-team-fields{grid-template-columns:1fr;padding:14px}.installation-section-fields .wide,.installation-field.wide{grid-column:auto}
  .installation-field-title{align-items:flex-start;flex-direction:column;gap:4px}.installation-field-title>small{text-align:left}
  .installation-type-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.installation-technician-grid{grid-template-columns:1fr}
  .installation-choice-card{min-height:64px;padding:10px!important}.installation-choice-copy small{font-size:10px}
  .installation-modal-actions{bottom:-12px;margin:2px -12px -12px;padding:11px 12px max(11px,env(safe-area-inset-bottom));grid-template-columns:1fr 1fr}.installation-modal-actions>div{grid-column:1/-1}.installation-modal-actions .btn{min-width:0;width:100%}
}
@media(max-width:430px){
  .installation-type-grid{grid-template-columns:1fr}
}
.installation-movement-history{margin-top:14px;padding-top:13px;border-top:1px solid #e4ebf1}.installation-movement-history h5{margin:0 0 8px;font-size:13px;color:#314b68}.installation-movement-history>div{display:grid;grid-template-columns:auto 70px 1fr;gap:9px;align-items:center;padding:7px 0;border-bottom:1px solid #edf1f5;font-size:11px}.installation-movement-history b{font-size:13px;color:#28415f}.installation-movement-history em{font-style:normal;color:#718096;text-align:right}

/* MOVIMIENTOS DE MATERIAL VINCULADOS AL INVENTARIO */
.installation-movement-form{
  display:grid;
  gap:14px;
}
.installation-movement-form label{
  display:grid;
  gap:7px;
  color:#344054;
  font-weight:700;
}
.installation-movement-form input,
.installation-movement-form select,
.installation-movement-form textarea{
  width:100%;
}
.installation-movement-form textarea{
  min-height:92px;
  resize:vertical;
}
.installation-movement-summary{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 14px;
  padding:13px 15px;
  border:1px solid #d0dcea;
  border-radius:14px;
  background:#f8fbff;
}
.installation-movement-summary strong{
  width:100%;
  color:#17365d;
  font-size:1.02rem;
}
.installation-movement-summary span{
  color:#526276;
  font-size:.9rem;
}
.installation-inventory-note{
  padding:12px 14px;
  border:1px solid #a7d8bc;
  border-radius:13px;
  background:#eefaf3;
  color:#215c3b;
  line-height:1.45;
}
.installation-inventory-note.manual{
  border-color:#d7deea;
  background:#f7f9fc;
  color:#526276;
}


/* =========================================================
   3.6.4 - FLUJO DE INSTALACIONES, CIERRE Y REAPERTURA
   ========================================================= */
.installation-group-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 16px}
.installation-group-tab{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;align-items:center;padding:15px 17px;border:1px solid #d4e0ea;border-radius:16px;background:#fff;text-align:left;box-shadow:0 7px 20px rgba(23,54,93,.055);cursor:pointer;transition:.16s ease}
.installation-group-tab:hover{transform:translateY(-1px);border-color:#9db8ce}
.installation-group-tab span{font-size:15px;font-weight:900;color:#294763}.installation-group-tab b{grid-row:1/3;grid-column:2;display:grid;place-items:center;min-width:42px;height:42px;border-radius:12px;background:#edf3f8;font-size:19px;color:#244b70}.installation-group-tab small{font-size:11px;color:#718197}
.installation-group-tab.active{border-color:#315f8a;background:linear-gradient(120deg,#17365d,#326f80);box-shadow:0 12px 26px rgba(23,54,93,.18)}
.installation-group-tab.active span,.installation-group-tab.active small{color:#fff}.installation-group-tab.active small{opacity:.78}.installation-group-tab.active b{background:rgba(255,255,255,.18);color:#fff}
.installation-kpi.new{border-top:4px solid #6d88a4}.installation-kpi.reopened{border-top:4px solid #9466bd}
.installation-card{position:relative}.installation-card.is-process{border-left:5px solid #2d6aa0}.installation-card.is-closed{border-left:5px solid #2d8b68;background:linear-gradient(180deg,#fbfffd,#f6fbf8)}.installation-card.is-new{border-left:5px solid #7e94aa}
.installation-card-group{display:inline-flex;margin-bottom:4px;font-size:9px;font-weight:950;letter-spacing:.08em;text-transform:uppercase;color:#6d8095}.installation-card.is-process .installation-card-group{color:#2d6aa0}.installation-card.is-closed .installation-card-group{color:#2d8b68}
.installation-card-reopen{padding:5px 8px;border-radius:8px;background:#fff3d8;font-weight:800;color:#8a5c09}
.installation-detail{gap:13px}.installation-detail.is-readonly .installation-add-box{display:none}
.installation-detail-title>span{display:block;font-size:12px;opacity:.82}.installation-detail-status-row{display:flex;flex-wrap:wrap;align-items:center;gap:7px;font-size:12px;color:rgba(255,255,255,.82)}.installation-detail-status-row>span:last-child{margin-left:3px}
.installation-lock-banner,.installation-reopened-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 18px;border:1px solid #a8d0bb;border-radius:15px;background:#edf9f2}.installation-lock-banner>div:first-child{display:grid;gap:3px}.installation-lock-banner span{font-size:9px;font-weight:950;letter-spacing:.1em;color:#317258}.installation-lock-banner b{font-size:16px;color:#215b45}.installation-lock-banner p{margin:0;font-size:12px;line-height:1.5;color:#527263}.installation-lock-banner.neutral{border-color:#cbd5df;background:#f4f6f8}.installation-lock-banner.neutral span,.installation-lock-banner.neutral b{color:#536579}.installation-lock-icon{display:grid;place-items:center;width:46px;height:46px;flex:0 0 46px;border-radius:50%;background:#2d8b68;font-size:23px;color:#fff}.installation-lock-banner.neutral .installation-lock-icon{background:#73859a}
.installation-reopened-banner{display:grid;gap:3px;border-color:#d4bee7;background:#f8f2fc}.installation-reopened-banner b{font-size:14px;color:#6c438e}.installation-reopened-banner span{font-size:12px;color:#765e88}
.installation-overview-grid{display:grid;grid-template-columns:1.35fr repeat(3,minmax(0,1fr));gap:10px}.installation-overview-card{display:grid;align-content:start;min-height:92px;padding:13px 14px;border:1px solid #d9e4ed;border-radius:14px;background:#fbfcfe}.installation-overview-card.primary{background:linear-gradient(135deg,#eaf4fb,#f6fbfd);border-color:#bfd3e3}.installation-overview-card small{font-size:9px;font-weight:950;letter-spacing:.08em;color:#76869a}.installation-overview-card strong{margin-top:6px;font-size:17px;line-height:1.2;color:#24415f}.installation-overview-card span{display:block;margin-top:5px;font-size:11px;line-height:1.35;color:#6d7d91;overflow-wrap:anywhere}.installation-overview-card:not(.primary) strong{font-size:24px}
.installation-progress-wide{width:100%;padding:0 3px}.installation-progress-wide .installation-progress-track{height:11px}
.installation-detail-nav{position:sticky;top:-20px;z-index:10;display:flex;gap:7px;padding:9px;border:1px solid #d9e3ec;border-radius:14px;background:rgba(255,255,255,.94);box-shadow:0 8px 20px rgba(23,54,93,.07);backdrop-filter:blur(8px);overflow-x:auto}.installation-detail-nav button{display:flex;align-items:center;gap:7px;min-height:34px;padding:7px 10px;border:1px solid transparent;border-radius:9px;background:#f1f5f8;white-space:nowrap;font-size:11px;font-weight:850;color:#36536f;cursor:pointer}.installation-detail-nav button:hover{border-color:#a8bed1;background:#e8f1f7}.installation-detail-nav b{display:grid;place-items:center;min-width:20px;height:20px;border-radius:7px;background:#dce8f1;font-size:10px;color:#285175}
.installation-detail-section{scroll-margin-top:58px;transition:box-shadow .25s ease,border-color .25s ease}.installation-section-highlight{border-color:#5d8db4!important;box-shadow:0 0 0 4px rgba(54,116,163,.14)!important}.installation-detail-section-head>div>span{display:block;font-size:9px;font-weight:950;letter-spacing:.09em;color:#8491a2}.installation-detail-section-head>div>h4{margin-top:3px}
.installation-summary-section .installation-section-body{display:grid;gap:12px}.installation-scope-box{padding:13px 15px;border-left:4px solid #2d6aa0;border-radius:10px;background:#f3f8fc}.installation-scope-box.secondary{border-left-color:#73859a;background:#f7f8fa}.installation-scope-box b{font-size:13px;color:#294763}.installation-scope-box p{margin:6px 0 0;font-size:13px;line-height:1.55;color:#53657a}
.installation-add-box{padding:11px;border:1px dashed #b8cad9;border-radius:12px;background:#f8fbfd}
.installation-history-list{display:grid;gap:8px}.installation-history-list article{display:grid;grid-template-columns:92px minmax(0,1fr);gap:12px;align-items:start;padding:11px;border:1px solid #dfe7ee;border-radius:12px;background:#fbfcfd}.installation-history-list article>span{display:inline-grid;place-items:center;min-height:27px;padding:5px 7px;border-radius:8px;background:#e9f1f7;font-size:9px;font-weight:950;letter-spacing:.06em;color:#315878}.installation-history-list b{font-size:13px;color:#29435f}.installation-history-list p{margin:4px 0 0;font-size:11px;line-height:1.45;color:#6c7c90}
.installation-client-approval img{display:block;max-width:360px;max-height:130px;margin-top:10px;padding:7px;border:1px solid #d9e3ec;border-radius:10px;background:#fff}
.installation-reopen-form{display:grid;gap:14px}.installation-reopen-warning{display:grid;gap:5px;padding:14px;border:1px solid #e4c987;border-radius:13px;background:#fff8e8}.installation-reopen-warning b{font-size:16px;color:#79530c}.installation-reopen-warning p{margin:0;font-size:12px;line-height:1.5;color:#755f36}.installation-reopen-warning span{font-size:11px;font-weight:800;color:#8a651e}.installation-reopen-form label{display:grid;gap:7px;font-size:13px;font-weight:850;color:#354b66}.installation-reopen-form textarea{min-height:130px}.btn-warning{background:#d99724!important;border-color:#c9891e!important;color:#fff!important}
@media(max-width:1180px){.installation-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.installation-group-tabs{grid-template-columns:1fr}.installation-group-tab{padding:12px 14px}.installation-overview-grid{grid-template-columns:1fr 1fr}.installation-overview-card.primary{grid-column:1/-1}.installation-detail-nav{top:-12px}.installation-lock-banner{align-items:flex-start}.installation-lock-icon{width:38px;height:38px;flex-basis:38px;font-size:18px}.installation-history-list article{grid-template-columns:1fr}.installation-client-approval img{max-width:100%}}


/* =========================================================
   3.6.4 - EQUIPOS INSTALADOS, ESCÁNER Y CONTINUIDAD DE TRABAJO
   ========================================================= */
.installation-equipment-form{display:grid;gap:12px;margin-bottom:16px;padding:14px!important;background:linear-gradient(180deg,#f9fcff,#f5f9fc)}
.installation-equipment-form-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:2px 2px 4px}.installation-equipment-form-head b{display:block;font-size:15px;color:#24415f}.installation-equipment-form-head span{display:block;margin-top:3px;font-size:11px;line-height:1.45;color:#6d7d91}.installation-camera-hint{max-width:280px;padding:7px 10px;border-radius:10px;background:#e9f3fa;color:#315f85!important;font-weight:800;text-align:right}
.installation-equipment-form-group{overflow:hidden;border:1px solid #d7e2ec;border-radius:13px;background:#fff}.installation-equipment-form-group>h5{margin:0;padding:10px 12px;border-bottom:1px solid #e7edf3;background:#f8fafc;font-size:12px;color:#31506f}
.installation-equipment-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:12px}.installation-equipment-fields label{display:grid;align-content:start;gap:5px;font-size:11px;font-weight:850;color:#4d6076}.installation-equipment-fields .span2{grid-column:span 2}.installation-equipment-fields .span3{grid-column:span 3}.installation-equipment-fields textarea{min-height:76px}
.installation-equipment-form-actions{display:flex;align-items:center;justify-content:space-between;gap:14px}.installation-equipment-form-actions>span{font-size:11px;color:#687a8f}.installation-equipment-form-actions .btn{min-width:175px}
.installation-scan-field{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px}.installation-scan-field input{min-width:0}.installation-scan-button{min-width:76px!important;padding-inline:9px!important;font-size:10px!important}
.installation-password-field{display:grid;grid-template-columns:minmax(0,1fr) auto;border:1px solid #ccd8e4;border-radius:10px;overflow:hidden;background:#fff}.installation-password-field input{border:0!important;border-radius:0!important;box-shadow:none!important}.installation-password-field button{min-width:58px;border:0;border-left:1px solid #dce5ed;background:#edf3f8;font-weight:850;color:#315878;cursor:pointer}
.installation-equipment-quick-info{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:11px}.installation-equipment-quick-info span{padding:8px 10px;border-radius:10px;background:#f1f6f9}.installation-equipment-quick-info small{display:block;font-size:9px;font-weight:900;letter-spacing:.05em;text-transform:uppercase;color:#7a899c}.installation-equipment-quick-info b{display:block;margin-top:3px;font-size:11px;color:#344d68;overflow-wrap:anywhere}.installation-equipment-notes{padding:9px 11px;border-left:3px solid #7a9ab6;background:#f7f9fb}
.installation-equipment-actions .btn-danger{background:#fff1f1!important;border-color:#e0a5a5!important;color:#a72f2f!important}
.installation-inventory-transfer-form{display:grid;gap:14px}.installation-transfer-intro{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;border:1px solid #c9dbe9;border-radius:15px;background:linear-gradient(120deg,#edf6fc,#f8fbfd)}.installation-transfer-intro span{display:block;font-size:9px;font-weight:950;letter-spacing:.09em;color:#54738f}.installation-transfer-intro h4{margin:4px 0 5px;font-size:20px;color:#234360}.installation-transfer-intro p{margin:0;max-width:720px;font-size:12px;line-height:1.5;color:#64778c}.installation-transfer-intro>b{max-width:280px;padding:10px 12px;border-radius:11px;background:#fff;color:#294b6a;text-align:right}
.installation-inventory-transfer-form>section{overflow:hidden;border:1px solid #d8e3ed;border-radius:14px;background:#fff}.installation-inventory-transfer-form>section>header{padding:12px 14px;border-bottom:1px solid #e6edf3;background:#f8fafc}.installation-inventory-transfer-form>section>header b{display:block;font-size:14px;color:#294967}.installation-inventory-transfer-form>section>header span{display:block;margin-top:3px;font-size:10.5px;color:#748397}.installation-transfer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;padding:13px}.installation-transfer-grid label{display:grid;gap:6px;font-size:11px;font-weight:850;color:#4d6076}.installation-transfer-grid .span2{grid-column:span 2}.installation-transfer-grid .span3{grid-column:1/-1}.installation-transfer-grid textarea{min-height:90px}.installation-clear-password{display:flex!important;align-items:center!important;grid-column:1/-1;grid-template-columns:auto 1fr!important}.installation-clear-password input{width:auto!important}
.installation-inventory-transfer-form>footer{position:sticky;bottom:-20px;z-index:5;display:flex;justify-content:flex-end;gap:9px;margin:0 -20px -20px;padding:12px 20px max(12px,env(safe-area-inset-bottom));border-top:1px solid #dce5ed;background:rgba(255,255,255,.96);box-shadow:0 -9px 20px rgba(31,59,86,.08);backdrop-filter:blur(8px)}
.installation-scanner-overlay{position:fixed;inset:0;z-index:10050;display:grid;place-items:center;padding:16px;background:rgba(8,21,36,.84);backdrop-filter:blur(5px)}.installation-scanner-card{width:min(640px,100%);max-height:calc(100dvh - 32px);overflow:auto;border-radius:18px;background:#fff;box-shadow:0 24px 70px rgba(0,0,0,.42)}.installation-scanner-card>header{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 16px;background:#17365d;color:#fff}.installation-scanner-card>header b{display:block;font-size:17px}.installation-scanner-card>header span{display:block;margin-top:3px;font-size:11px;color:rgba(255,255,255,.78)}.installation-scanner-card>header button{display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:10px;background:rgba(255,255,255,.14);font-size:24px;color:#fff;cursor:pointer}.installation-scanner-video-wrap{position:relative;min-height:300px;background:#08121e;overflow:hidden}.installation-scanner-video-wrap video{display:block;width:100%;height:min(54vh,420px);object-fit:cover}.installation-scanner-guide{position:absolute;left:10%;right:10%;top:35%;height:30%;border:3px solid #59d49d;border-radius:14px;box-shadow:0 0 0 999px rgba(0,0,0,.2)}.installation-scanner-video-wrap p{position:absolute;left:12px;right:12px;bottom:10px;margin:0;padding:8px 10px;border-radius:9px;background:rgba(5,18,31,.78);font-size:11px;color:#fff;text-align:center}.installation-scanner-fallback{display:grid;gap:10px;padding:14px}.installation-scanner-fallback>label{position:relative;overflow:hidden;text-align:center}.installation-scanner-fallback>label input{position:absolute;inset:0;opacity:0;cursor:pointer}.installation-scanner-fallback>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
@media(max-width:900px){.installation-equipment-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.installation-equipment-fields .span3{grid-column:1/-1}.installation-transfer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.installation-transfer-grid .span3{grid-column:1/-1}.installation-transfer-intro{align-items:flex-start;flex-direction:column}.installation-transfer-intro>b{max-width:none;text-align:left}}
@media(max-width:600px){.installation-equipment-form{padding:10px!important}.installation-equipment-form-head{flex-direction:column}.installation-camera-hint{max-width:none;text-align:left}.installation-equipment-fields,.installation-transfer-grid{grid-template-columns:1fr}.installation-equipment-fields .span2,.installation-equipment-fields .span3,.installation-transfer-grid .span2,.installation-transfer-grid .span3{grid-column:auto}.installation-equipment-form-actions{align-items:stretch;flex-direction:column}.installation-equipment-form-actions .btn{width:100%}.installation-equipment-quick-info{grid-template-columns:1fr}.installation-scan-field{grid-template-columns:minmax(0,1fr) 78px}.installation-inventory-transfer-form>footer{bottom:-12px;margin:0 -12px -12px;padding:10px 12px max(10px,env(safe-area-inset-bottom))}.installation-inventory-transfer-form>footer .btn{flex:1}.installation-scanner-overlay{padding:0}.installation-scanner-card{width:100%;max-height:100dvh;border-radius:0}.installation-scanner-video-wrap video{height:52dvh}}


/* =========================================================
   3.6.4 - ESTABILIDAD MÓVIL, ESCÁNER Y ACTUALIZACIÓN SILENCIOSA
   ========================================================= */
html.installation-scanner-active,body.installation-scanner-active{overflow:hidden!important;overscroll-behavior:none!important}
.installation-scanner-overlay{touch-action:manipulation;overscroll-behavior:contain}
.installation-scanner-card{overscroll-behavior:contain}
.installation-scanner-video-wrap video,.installation-scanner-video-wrap img{display:block;width:100%;height:min(52vh,420px);object-fit:contain;background:#07111d}
.installation-scanner-video-wrap img[hidden]{display:none}
.installation-scanner-overlay.scanner-fallback-only .installation-scanner-video-wrap{display:grid;place-items:center;min-height:190px;background:linear-gradient(145deg,#07111d,#10273d)}
.installation-scanner-overlay.scanner-fallback-only .installation-scanner-video-wrap video,.installation-scanner-overlay.scanner-fallback-only .installation-scanner-guide{display:none}
.installation-scanner-overlay.scanner-fallback-only .installation-scanner-video-wrap:before{content:'▦';display:grid;place-items:center;width:70px;height:70px;border:2px solid #5ed6a1;border-radius:18px;font-size:34px;color:#5ed6a1}
.installation-scanner-overlay.scanner-fallback-only.has-photo-preview .installation-scanner-video-wrap:before{display:none}
.installation-scanner-overlay.scanner-fallback-only.has-photo-preview .installation-scanner-video-wrap{min-height:260px}
.installation-scanner-overlay.scanner-fallback-only.has-photo-preview .installation-scanner-video-wrap img{display:block;height:min(45vh,420px)}
.installation-scanner-fallback form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
.installation-scan-success{border-color:#35a66f!important;box-shadow:0 0 0 4px rgba(53,166,111,.18)!important;transition:box-shadow .2s ease,border-color .2s ease}
@media(max-width:900px){
  input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),select,textarea{font-size:16px!important;touch-action:manipulation}
  .installation-primary-field input,.installation-scan-field input,.installation-scanner-fallback input{font-size:16px!important}
  .installation-scan-button{font-size:12px!important;min-height:44px}
}
@media(max-width:600px){
  .installation-scanner-card{height:100dvh;max-height:100dvh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}
  .installation-scanner-video-wrap{min-height:0}
  .installation-scanner-video-wrap video,.installation-scanner-video-wrap img{height:100%;max-height:none}
  .installation-scanner-fallback{padding:12px max(14px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));background:#fff}
  .installation-scanner-fallback form{grid-template-columns:minmax(0,1fr) auto}
  .installation-scanner-fallback form .btn{min-width:112px}
  .installation-scanner-overlay.scanner-fallback-only .installation-scanner-card{grid-template-rows:auto minmax(190px,1fr) auto}
}


/* =========================================================
   3.6.5 - CAPTURA HIBRIDA DE MODELO Y SERIE EN CAMPO
   ========================================================= */
.installation-scan-sheet-overlay{position:fixed;inset:0;z-index:10070;display:flex;align-items:flex-end;justify-content:center;padding:18px;background:rgba(5,17,30,.62);backdrop-filter:blur(4px);overscroll-behavior:contain;touch-action:manipulation}.installation-scan-sheet{width:min(640px,100%);max-height:min(760px,calc(100dvh - 36px));display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;border:1px solid rgba(255,255,255,.35);border-radius:22px;background:#fff;box-shadow:0 28px 80px rgba(0,0,0,.42)}.installation-scan-sheet>header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px;background:#17365d;color:#fff}.installation-scan-sheet>header b{display:block;font-size:18px}.installation-scan-sheet>header span{display:block;margin-top:3px;color:rgba(255,255,255,.78);font-size:12px}.installation-scan-sheet-close{flex:0 0 auto;width:44px;height:44px;border:0;border-radius:13px;background:rgba(255,255,255,.16);color:#fff;font-size:28px;line-height:1;cursor:pointer}.installation-scan-sheet-body{min-height:0;overflow:auto;padding:16px;overscroll-behavior:contain}.installation-scan-choice-intro{display:grid;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:14px;padding:13px;border:1px solid #d7e2ec;border-radius:15px;background:#f6f9fc}.installation-scan-choice-intro p{margin:0;color:#52677b;font-size:13px;line-height:1.45}.installation-scan-choice-icon{display:grid;place-items:center;width:64px;height:64px;border:2px solid #3c9d73;border-radius:17px;color:#25835d;font-size:32px}.installation-scan-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:13px}.installation-scan-choice{min-height:88px;display:flex;align-items:flex-start;justify-content:center;flex-direction:column;gap:5px;padding:14px;border:1px solid #ccd9e5;border-radius:14px;background:#f8fafc;color:#203b5b;text-align:left;cursor:pointer}.installation-scan-choice.primary{border-color:#2d5a87;background:#eaf2fb}.installation-scan-choice b{font-size:14px}.installation-scan-choice span{color:#718397;font-size:11px}.installation-hidden-file{position:fixed!important;left:-10000px!important;width:1px!important;height:1px!important;opacity:0!important}.installation-scan-cancel{width:100%;margin-top:12px}.installation-scan-processing,.installation-scan-result,.installation-scan-manual{display:grid;gap:13px}.installation-scan-processing>img,.installation-scan-result>img,.installation-scan-manual-preview{width:100%;max-height:340px;object-fit:contain;border:1px solid #d7e2ec;border-radius:14px;background:#08121e}.installation-scan-processing-status{display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:4px 10px;padding:13px;border-radius:13px;background:#edf5fb}.installation-scan-processing-status small{grid-column:2;color:#6d7f90}.installation-scan-spinner{grid-row:1/3;width:26px;height:26px;border:3px solid #bed0e1;border-top-color:#2e5c88;border-radius:50%;animation:installationScannerSpin .8s linear infinite}@keyframes installationScannerSpin{to{transform:rotate(360deg)}}.installation-scan-result p,.installation-scan-manual p{margin:0;color:#53687c;font-size:13px;line-height:1.45}.installation-scan-result label,.installation-scan-manual label{display:grid;gap:6px;color:#314a63;font-size:12px;font-weight:800}.installation-scan-result input,.installation-scan-manual input{width:100%;min-height:50px;padding:11px 13px;border:1px solid #c8d6e3;border-radius:12px;font-size:16px!important}.installation-scan-result-actions,.installation-scan-secondary-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.installation-scan-result-actions .btn{min-height:48px}.installation-scan-live{position:relative;min-height:360px;overflow:hidden;border-radius:14px;background:#06111d}.installation-scan-live video{display:block;width:100%;height:min(52vh,470px);object-fit:contain;background:#06111d}.installation-scan-live-guide{position:absolute;left:11%;right:11%;top:34%;height:31%;border:3px solid #5ed6a1;border-radius:15px;box-shadow:0 0 0 999px rgba(0,0,0,.18)}.installation-scan-live p{position:absolute;left:12px;right:12px;bottom:11px;margin:0;padding:9px 10px;border-radius:10px;background:rgba(4,16,29,.84);color:#fff;text-align:center}.installation-scan-live-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:10px}.installation-draft-restored{animation:installationDraftRestored 1.2s ease}@keyframes installationDraftRestored{0%,100%{box-shadow:none}35%{box-shadow:0 0 0 4px rgba(52,145,101,.2)}}
@media(max-width:700px){.installation-scan-sheet-overlay{align-items:flex-end;padding:0}.installation-scan-sheet{width:100%;max-height:calc(100dvh - max(12px,env(safe-area-inset-top)));border-radius:22px 22px 0 0}.installation-scan-sheet>header{padding:14px max(16px,env(safe-area-inset-right)) 14px max(16px,env(safe-area-inset-left))}.installation-scan-sheet-close{width:48px;height:48px}.installation-scan-sheet-body{padding:14px max(15px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(15px,env(safe-area-inset-left))}.installation-scan-choice-grid{grid-template-columns:1fr}.installation-scan-choice{min-height:72px}.installation-scan-result-actions,.installation-scan-secondary-actions,.installation-scan-live-actions{grid-template-columns:1fr}.installation-scan-processing>img,.installation-scan-result>img,.installation-scan-manual-preview{max-height:36dvh}.installation-scan-sheet input,.installation-scan-sheet button{font-size:16px}.installation-scan-sheet button{touch-action:manipulation}}


/* =========================================================
   3.6.6 - HOTFIX DE CARGA E INICIO DE SESION
   No modifica el diseño; identifica la versión publicada.
   ========================================================= */


/* =========================================================
   3.6.7 - VALIDACION DE IP DUPLICADA
   ========================================================= */

.installation-ip-validation{
  display:grid;
  gap:6px;
  min-width:0;
}

.installation-ip-validation input{
  width:100%;
}

.installation-ip-status{
  display:flex;
  align-items:flex-start;
  min-height:18px;
  padding:0 2px;
  font-size:12px;
  line-height:1.35;
  font-weight:700;
  color:#667085;
}

.installation-ip-status::before{
  content:'';
  flex:0 0 auto;
  width:7px;
  height:7px;
  margin:5px 7px 0 0;
  border-radius:50%;
  background:#98a2b3;
}

.installation-ip-status.is-pending,
.installation-ip-status.is-checking{
  color:#475467;
}

.installation-ip-status.is-pending::before,
.installation-ip-status.is-checking::before{
  background:#f79009;
  box-shadow:0 0 0 3px rgba(247,144,9,.14);
}

.installation-ip-status.is-available{
  color:#067647;
}

.installation-ip-status.is-available::before{
  background:#12b76a;
  box-shadow:0 0 0 3px rgba(18,183,106,.14);
}

.installation-ip-status.is-duplicate,
.installation-ip-status.is-invalid,
.installation-ip-status.is-error{
  color:#b42318;
}

.installation-ip-status.is-duplicate::before,
.installation-ip-status.is-invalid::before,
.installation-ip-status.is-error::before{
  background:#f04438;
  box-shadow:0 0 0 3px rgba(240,68,56,.14);
}

.installation-ip-duplicate,
.installation-ip-invalid{
  border-color:#f04438!important;
  box-shadow:0 0 0 3px rgba(240,68,56,.12)!important;
}

.installation-ip-available{
  border-color:#12b76a!important;
  box-shadow:0 0 0 3px rgba(18,183,106,.10)!important;
}

@media(max-width:900px){
  .installation-ip-status{
    font-size:13px;
    line-height:1.4;
  }
}


/* =========================================================
   3.6.8 - PLANIFICACION PROFESIONAL DE CAMPO
   Actividades, avance y materiales
   ========================================================= */
.installation-detail-section-head.professional{align-items:flex-start;padding:18px 20px;background:linear-gradient(135deg,#f8fbfe,#f1f6fb)}
.installation-detail-section-head.professional h4{font-size:19px;margin-top:3px}
.installation-detail-section-head.professional p{margin:5px 0 0;color:#63758a;font-size:12px;line-height:1.45;max-width:760px}
.installation-professional-section>.installation-section-body{padding:18px;background:#f7f9fc}
.installation-workflow-summary,.installation-material-dashboard{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:14px}
.installation-workflow-summary article,.installation-material-dashboard article{padding:13px 14px;border:1px solid #dce5ef;border-radius:14px;background:#fff;box-shadow:0 5px 16px rgba(28,55,86,.04);border-top:4px solid #9caabc}
.installation-workflow-summary article.running{border-top-color:#2f6ea6}.installation-workflow-summary article.blocked{border-top-color:#d4922f}.installation-workflow-summary article.done{border-top-color:#2d8b68}.installation-workflow-summary article.late,.installation-material-dashboard article.danger{border-top-color:#c94a4a}
.installation-workflow-summary small,.installation-material-dashboard small{display:block;font-size:9px;font-weight:900;letter-spacing:.8px;color:#7a899c}
.installation-workflow-summary b,.installation-material-dashboard b{display:block;margin-top:4px;font-size:24px;color:#203d61}
.installation-workflow-summary span,.installation-material-dashboard span{display:block;margin-top:2px;font-size:11px;color:#68798d}
.installation-material-dashboard article.pending{border-top-color:#d59a31}.installation-material-dashboard article.field{border-top-color:#3479ac}.installation-material-dashboard article.cost{border-top-color:#7158a5}.installation-material-dashboard article.cost b{font-size:18px}
.installation-planner-panel,.installation-material-planner{margin-bottom:16px;border:1px solid #cfdae6;border-radius:16px;background:#fff;overflow:hidden;box-shadow:0 8px 24px rgba(28,55,86,.06)}
.installation-planner-head{display:flex;justify-content:space-between;gap:18px;padding:16px 18px;background:linear-gradient(135deg,#233f64,#356f78);color:#fff}
.installation-planner-head span{font-size:9px;font-weight:900;letter-spacing:1px;opacity:.7}.installation-planner-head h5{margin:3px 0 0;font-size:16px}.installation-planner-head p{margin:5px 0 0;font-size:11px;line-height:1.45;opacity:.82}
.installation-template-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:7px;min-width:260px}.installation-template-actions button{border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.12);color:#fff;border-radius:9px;padding:8px 10px;font-size:11px;font-weight:800;cursor:pointer}.installation-template-actions button:hover{background:#fff;color:#274867}
.installation-task-create-form,.installation-material-create-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:16px 18px}.installation-task-create-form label,.installation-material-create-form label{display:grid;gap:6px;font-size:11px;font-weight:800;color:#40536b}.installation-task-create-form .span2,.installation-material-create-form .span2{grid-column:span 2}.installation-material-create-form .span3{grid-column:span 3}.installation-material-create-form .span4{grid-column:1/-1}.installation-task-create-form textarea{min-height:70px}.installation-task-create-form>.btn,.installation-material-create-form>.btn{align-self:end;min-height:42px}
.installation-task-board{display:grid;grid-template-columns:repeat(4,minmax(240px,1fr));gap:12px;align-items:start;overflow-x:auto;padding-bottom:4px}.installation-task-column{min-width:240px;border:1px solid #dbe4ee;border-radius:15px;background:#edf2f7;overflow:hidden}.installation-task-column>header{display:flex;justify-content:space-between;align-items:center;padding:12px 13px;border-bottom:1px solid #d8e2ec;background:#f8fafc}.installation-task-column>header span{display:block;font-size:9px;color:#7b8a9c}.installation-task-column>header b{display:block;font-size:13px;color:#2c4664}.installation-task-column>header strong{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#dfe8f1;color:#294663;font-size:12px}.installation-task-column.en-proceso>header{border-top:4px solid #2f6ea6}.installation-task-column.pendiente>header{border-top:4px solid #8d9baa}.installation-task-column.bloqueada>header{border-top:4px solid #d28d28}.installation-task-column.completada>header{border-top:4px solid #2d8b68}.installation-task-column>div{display:grid;gap:9px;padding:9px}.installation-column-empty{margin:12px 5px;text-align:center;color:#8b98a8;font-size:11px}
.installation-task-card{padding:12px;border:1px solid #dce5ee;border-radius:13px;background:#fff;box-shadow:0 4px 12px rgba(23,47,74,.05)}.installation-task-card-head{display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:start}.installation-step-number{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:#e6eef7;color:#274b70;font-weight:900;font-size:12px}.installation-task-card-head small{display:block;font-size:8px;font-weight:900;letter-spacing:.7px;color:#8a98a8}.installation-task-card h5{margin:2px 0 0;font-size:13px;line-height:1.35;color:#243f5e}.installation-task-description{margin:9px 0 0;padding:9px;border-radius:9px;background:#f5f8fb;color:#5d6e82;font-size:11px;line-height:1.45}.installation-task-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.installation-task-meta span{padding:5px 7px;border-radius:8px;background:#edf3f8;color:#5b6e83;font-size:9px;font-weight:700}.installation-task-meta .danger{background:#fdeaea;color:#a73636}.installation-task-meta .warning{background:#fff2d9;color:#91600f}.installation-task-progress{margin-top:10px}.installation-task-progress>div:first-child{display:flex;justify-content:space-between;font-size:10px;color:#6c7b8d}.installation-task-progress b{color:#294665}.installation-task-quick-actions{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}.installation-task-quick-actions button{border:1px solid #d3dfeb;background:#f3f7fb;color:#335474;border-radius:8px;padding:6px 7px;font-size:9px;font-weight:800;cursor:pointer}.installation-task-quick-actions button:hover,.installation-task-quick-actions button.active{background:#315d8d;color:#fff;border-color:#315d8d}.installation-task-quick-actions button.complete{background:#e6f4ed;color:#237451;border-color:#bce0cf}.installation-task-quick-actions button.blocked{background:#fff1d9;color:#8e5f13;border-color:#edd39f}.installation-task-quick-actions button.edit{margin-left:auto}.installation-task-quick-actions button.danger{color:#a83b3b;background:#fff0f0;border-color:#f0caca}
.installation-material-source-tabs{display:flex;gap:8px}.installation-material-source-tabs button{flex:1;border:1px solid #d4dfeb;background:#f1f5f9;color:#536a82;border-radius:10px;padding:10px;font-size:11px;font-weight:900;cursor:pointer}.installation-material-source-tabs button.active{background:#2e5987;color:#fff;border-color:#2e5987}.installation-material-inventory-picker{display:grid;grid-template-columns:1fr 1.2fr .8fr;gap:10px;align-items:end;padding:12px;border:1px dashed #c9d7e5;border-radius:12px;background:#f7fafd}.installation-material-inventory-picker>div:first-child{display:grid;gap:4px}.installation-material-inventory-picker small{color:#78889a;font-size:9px}.installation-material-stock-preview{display:grid;gap:2px;padding:9px 11px;border-radius:10px;background:#eaf2f9;min-height:42px}.installation-material-stock-preview span{font-size:9px;color:#6f8194}.installation-material-stock-preview b{font-size:13px;color:#294966}.installation-material-stock-preview em{font-style:normal;font-size:9px;color:#6c7c8e}.installation-material-manual-help{display:flex;gap:8px;align-items:center;padding:11px 13px;border-radius:11px;background:#fff5df;color:#805c1e;font-size:10px}.installation-material-manual-help b{white-space:nowrap}.hidden{display:none!important}
.installation-material-list.professional{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.installation-material-card{padding:14px;border:1px solid #dbe5ee;border-radius:15px;background:#fff;box-shadow:0 5px 16px rgba(26,53,82,.05);border-left:5px solid #a5b1be}.installation-material-card.pending{border-left-color:#d49b35}.installation-material-card.field{border-left-color:#3277aa}.installation-material-card.done{border-left-color:#2c8a67}.installation-material-card.danger{border-left-color:#c84b4b}.installation-material-card-head{display:flex;justify-content:space-between;gap:12px}.installation-material-title-line{display:flex;align-items:center;flex-wrap:wrap;gap:7px}.installation-material-card h5{margin:0;font-size:14px;color:#263f5e}.installation-material-card p{margin:5px 0 0;color:#708095;font-size:10px}.installation-material-state{display:inline-flex;padding:4px 7px;border-radius:999px;background:#eef2f6;color:#607184;font-size:8px;font-weight:900}.installation-material-state.pending{background:#fff0d5;color:#916114}.installation-material-state.field{background:#e5f1fa;color:#28648d}.installation-material-state.done{background:#e3f4eb;color:#287454}.installation-material-state.danger{background:#fde8e8;color:#aa3939}.installation-material-progress{margin-top:12px}.installation-material-progress>div:first-child{display:flex;justify-content:space-between;font-size:10px;color:#66788b}.installation-material-progress b{color:#294866}.installation-material-metrics.professional{grid-template-columns:repeat(6,1fr);gap:6px}.installation-material-metrics.professional span{background:#f2f6fa;text-align:center}.installation-material-metrics.professional small{display:block;font-size:8px;color:#718297}.installation-material-metrics.professional b{font-size:13px}.installation-material-metrics.professional .field{background:#e9f3fa}.installation-material-metrics.professional .pending{background:#fff3df}.installation-material-cost{display:flex;justify-content:space-between;margin-top:9px;padding:8px 10px;border-radius:9px;background:#f5f1fa;color:#66507e;font-size:10px}.installation-material-actions.professional{border-top:1px solid #edf1f5;padding-top:10px}.installation-material-actions.professional .btn-danger{background:#fff0f0;color:#a93d3d;border-color:#efcaca}
.installation-movement-history.professional{margin-top:15px;border:1px solid #dbe5ee;border-radius:14px;background:#fff;overflow:hidden}.installation-movement-history.professional summary{display:flex;justify-content:space-between;align-items:center;padding:13px 15px;cursor:pointer;font-size:12px;font-weight:900;color:#304d6d}.installation-movement-history.professional summary b{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#e8eff6}.installation-movement-history.professional>div{display:grid;gap:0;border-top:1px solid #e5ebf1}.installation-movement-history.professional article{display:grid;grid-template-columns:auto 1fr;gap:10px;padding:10px 14px;border-bottom:1px solid #edf1f5}.installation-movement-history.professional article:last-child{border-bottom:0}.installation-movement-history.professional article b{font-size:12px;color:#304d6b}.installation-movement-history.professional article p{margin:3px 0 0;font-size:9px;color:#718093}.installation-movement-quantity{display:flex;gap:6px}.installation-movement-quantity input{flex:1}.installation-movement-quantity button{border:1px solid #ccd9e5;background:#eef4f9;border-radius:8px;padding:0 9px;color:#335777;font-size:10px;font-weight:800}.installation-professional-edit-form{display:grid;grid-template-columns:1fr 1fr;gap:12px}.installation-professional-edit-form label{display:grid;gap:6px;font-size:11px;font-weight:800;color:#40536b}.installation-professional-edit-form .span2{grid-column:1/-1}.installation-professional-edit-form textarea{min-height:90px}.installation-professional-edit-form footer{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}
@media(max-width:1100px){.installation-workflow-summary,.installation-material-dashboard{grid-template-columns:repeat(3,1fr)}.installation-task-board{grid-template-columns:repeat(2,minmax(260px,1fr))}.installation-material-metrics.professional{grid-template-columns:repeat(3,1fr)}}
@media(max-width:720px){.installation-detail-section-head.professional{padding:14px}.installation-professional-section>.installation-section-body{padding:10px}.installation-workflow-summary,.installation-material-dashboard{grid-template-columns:repeat(2,1fr);gap:7px}.installation-workflow-summary article,.installation-material-dashboard article{padding:10px}.installation-workflow-summary b,.installation-material-dashboard b{font-size:19px}.installation-planner-head{display:grid;padding:14px}.installation-template-actions{min-width:0;justify-content:flex-start}.installation-task-create-form,.installation-material-create-form{grid-template-columns:1fr;padding:12px}.installation-task-create-form .span2,.installation-material-create-form .span2,.installation-material-create-form .span3,.installation-material-create-form .span4{grid-column:auto}.installation-task-board{display:grid;grid-template-columns:1fr;overflow:visible}.installation-task-column{min-width:0}.installation-material-inventory-picker{grid-template-columns:1fr}.installation-material-list.professional{grid-template-columns:1fr}.installation-material-metrics.professional{grid-template-columns:repeat(3,1fr)}.installation-task-quick-actions button{min-height:34px;font-size:10px}.installation-professional-edit-form{grid-template-columns:1fr}.installation-professional-edit-form .span2{grid-column:auto}.installation-material-source-tabs{display:grid;grid-template-columns:1fr 1fr}.installation-material-card{padding:12px}}


/* =========================================================
   3.6.9 - LISTADO COMPACTO DE MATERIALES Y BITACORA PROFESIONAL
   ========================================================= */
.installation-material-summary-strip,.installation-log-summary-strip{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px;padding:8px;border:1px solid #dce5ee;border-radius:13px;background:#f7fafd}.installation-material-summary-strip>span,.installation-log-summary-strip>span{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:118px;flex:1;padding:8px 10px;border-radius:10px;background:#fff;border:1px solid #e3eaf1}.installation-material-summary-strip small,.installation-log-summary-strip small{font-size:9px;font-weight:800;color:#758499;text-transform:uppercase;letter-spacing:.35px}.installation-material-summary-strip b,.installation-log-summary-strip b{font-size:14px;color:#264565;white-space:nowrap}.installation-material-summary-strip .pending,.installation-log-summary-strip .pending{background:#fff8e9}.installation-material-summary-strip .field{background:#edf7fd}.installation-material-summary-strip .danger,.installation-log-summary-strip .warning{background:#fff0f0}.installation-material-summary-strip .cost{background:#f5f1fb}.installation-log-summary-strip .progress{background:#eaf5ef}
.installation-material-toolbar{display:grid;grid-template-columns:minmax(240px,1fr) 170px auto auto;gap:9px;align-items:end;margin-bottom:10px;padding:10px 12px;border:1px solid #dbe5ee;border-radius:13px;background:#fff}.installation-material-toolbar label{display:grid;gap:5px;font-size:10px;font-weight:800;color:#53667e}.installation-material-toolbar input,.installation-material-toolbar select{min-height:38px}.installation-material-toolbar>small{align-self:center;color:#758499;font-size:10px;white-space:nowrap}.installation-material-toolbar>.btn{min-height:38px}
.installation-material-quick-planner{margin-bottom:10px;border:1px solid #ccd9e5;border-radius:13px;background:#fff;overflow:hidden}.installation-material-quick-planner>summary,.installation-log-composer>summary{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:11px 14px;cursor:pointer;list-style:none;background:linear-gradient(100deg,#eef4fa,#f9fbfd)}.installation-material-quick-planner>summary::-webkit-details-marker,.installation-log-composer>summary::-webkit-details-marker{display:none}.installation-material-quick-planner>summary div,.installation-log-composer>summary div{display:grid;gap:2px}.installation-material-quick-planner>summary span,.installation-log-composer>summary span{font-size:8px;font-weight:900;letter-spacing:.8px;color:#71849a}.installation-material-quick-planner>summary b,.installation-log-composer>summary b{font-size:13px;color:#264566}.installation-material-quick-planner>summary small,.installation-log-composer>summary small{font-size:9px;color:#718095}.installation-material-quick-planner>summary strong,.installation-log-composer>summary strong{padding:7px 10px;border-radius:9px;background:#315f8e;color:#fff;font-size:10px}.installation-material-planner.compact{margin:0;border:0;border-top:1px solid #dbe5ee;border-radius:0;box-shadow:none}.installation-material-create-form.compact{padding:12px;gap:9px}.installation-material-create-form.compact label{font-size:10px}.installation-material-create-form.compact input,.installation-material-create-form.compact select{min-height:39px}
.installation-material-fast-list{display:grid;gap:7px}.installation-material-row{border:1px solid #dce5ee;border-left:4px solid #9caabb;border-radius:12px;background:#fff;overflow:hidden;box-shadow:0 3px 10px rgba(27,55,84,.035)}.installation-material-row.pending{border-left-color:#d89a2b}.installation-material-row.field{border-left-color:#3278aa}.installation-material-row.done{border-left-color:#2d8b68}.installation-material-row.danger{border-left-color:#c94a4a}.installation-material-row-main{display:grid;grid-template-columns:minmax(250px,1.5fr) minmax(300px,1.2fr) 130px auto;gap:12px;align-items:center;padding:10px 12px}.installation-material-row-identity{display:flex;justify-content:space-between;gap:10px;min-width:0}.installation-material-row-identity h5{margin:0;font-size:13px;color:#263f5d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.installation-material-row-identity p{margin:3px 0 0;font-size:9px;color:#738297;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.installation-material-row-badges{display:flex;align-items:flex-start;gap:5px;flex-wrap:wrap;justify-content:flex-end}.installation-material-row-numbers{display:grid;grid-template-columns:repeat(5,1fr);gap:4px}.installation-material-row-numbers span{display:grid;gap:2px;text-align:center;padding:6px 4px;border-radius:8px;background:#f3f6f9}.installation-material-row-numbers small{font-size:7px;text-transform:uppercase;color:#7c8a9d}.installation-material-row-numbers b{font-size:12px;color:#294765}.installation-material-row-numbers .field{background:#eaf4fb}.installation-material-row-numbers .pending{background:#fff3df}.installation-material-row-progress{display:grid;grid-template-columns:1fr auto;align-items:center;gap:7px}.installation-material-row-progress b{font-size:10px;color:#53677f}.installation-material-row-quick{display:flex;gap:5px;justify-content:flex-end}.installation-material-row-quick .btn{min-height:32px;padding:5px 9px;font-size:10px}.installation-material-row-details{border-top:1px solid #eef2f6;background:#fbfcfe}.installation-material-row-details>summary{padding:7px 12px;cursor:pointer;font-size:9px;font-weight:800;color:#5e728a}.installation-material-row-detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;padding:0 12px 10px}.installation-material-row-detail-grid span{padding:7px 9px;border-radius:8px;background:#f0f4f8}.installation-material-row-detail-grid small{display:block;font-size:8px;color:#718196}.installation-material-row-detail-grid b{font-size:11px;color:#2b4764}.installation-material-row-actions{display:flex;gap:6px;flex-wrap:wrap;padding:0 12px 11px}.installation-material-row-actions .btn{min-height:31px;padding:5px 9px;font-size:10px}.installation-movement-history.compact{margin-top:10px}
.installation-log-composer{margin:10px 0 14px;border:1px solid #ccd9e5;border-radius:14px;background:#fff;overflow:hidden}.installation-log-professional-form{display:grid;gap:12px;padding:14px;border-top:1px solid #dbe5ee}.installation-log-session{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.installation-log-session label,.installation-log-professional-form>label,.installation-log-two-columns label,.installation-log-close-row label{display:grid;gap:5px;font-size:10px;font-weight:800;color:#455b73}.installation-log-session .span4{grid-column:1/-1;color:#718196;font-size:9px}.installation-log-quick-chips{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:8px;border-radius:10px;background:#f3f7fa}.installation-log-quick-chips>span{font-size:9px;font-weight:800;color:#60748b}.installation-log-quick-chips button{border:1px solid #cddae6;border-radius:999px;background:#fff;color:#355a7f;padding:5px 8px;font-size:9px;font-weight:700;cursor:pointer}.installation-log-work textarea{min-height:96px}.installation-log-two-columns{display:grid;grid-template-columns:1fr 1fr;gap:10px}.installation-log-two-columns textarea{min-height:72px}.installation-log-close-row{display:grid;grid-template-columns:1.2fr 1fr auto;gap:10px;align-items:end}.installation-log-gps{display:flex!important;align-items:center;gap:9px;padding:9px 10px;border:1px solid #dbe5ee;border-radius:10px;background:#f6f9fc}.installation-log-gps input{width:18px;height:18px}.installation-log-gps span{display:grid;gap:1px}.installation-log-gps b{font-size:10px;color:#38536e}.installation-log-gps small{font-size:8px;color:#74859a}.installation-log-close-row>.btn{min-height:42px}
.installation-log-timeline{position:relative;display:grid;gap:9px;padding-left:28px}.installation-log-timeline:before{content:"";position:absolute;left:12px;top:8px;bottom:8px;width:2px;background:#dbe5ee}.installation-log-entry{position:relative}.installation-log-marker{position:absolute;left:-28px;top:12px;width:26px;display:flex;justify-content:center}.installation-log-marker span{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#315f8e;color:#fff;font-size:8px;font-weight:900;border:3px solid #eef3f7}.installation-log-entry-card{border:1px solid #dce5ee;border-radius:12px;background:#fff;overflow:hidden}.installation-log-entry-card>header{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:9px 11px;background:#f7f9fc}.installation-log-entry-card>header>div:first-child{display:grid;gap:1px}.installation-log-entry-card header span{font-size:8px;font-weight:900;letter-spacing:.5px;color:#74859a}.installation-log-entry-card header b{font-size:11px;color:#294765}.installation-log-entry-card header>div:last-child{display:flex;gap:6px;align-items:center}.installation-log-entry-card header strong{padding:4px 7px;border-radius:999px;background:#e7f3ec;color:#2b7758;font-size:9px}.installation-log-entry-card header em{font-style:normal;font-size:9px;color:#66788d}.installation-log-entry-work{padding:10px 11px;font-size:11px;line-height:1.45;color:#40566f}.installation-log-entry-card details{border-top:1px solid #edf1f5}.installation-log-entry-card details>summary{padding:7px 11px;cursor:pointer;font-size:9px;font-weight:800;color:#5d728a}.installation-log-entry-details{padding:0 11px 10px;font-size:10px;color:#566b82}.installation-log-entry-details p{margin:6px 0}.installation-log-entry-details .problem{color:#a13d3d}.installation-log-entry-details .pending{color:#8c641b}
@media(max-width:1180px){.installation-material-row-main{grid-template-columns:minmax(220px,1.4fr) minmax(270px,1.2fr) 110px}.installation-material-row-quick{grid-column:1/-1;justify-content:flex-start}.installation-material-toolbar{grid-template-columns:1fr 160px auto}.installation-material-toolbar>.btn{grid-column:1/-1;justify-self:start}}
@media(max-width:720px){.installation-material-summary-strip,.installation-log-summary-strip{display:grid;grid-template-columns:repeat(2,1fr)}.installation-material-summary-strip>span,.installation-log-summary-strip>span{min-width:0}.installation-material-toolbar{grid-template-columns:1fr 1fr;padding:9px}.installation-material-list-search{grid-column:1/-1}.installation-material-toolbar>small{grid-column:1/2}.installation-material-toolbar>.btn{grid-column:2/3;justify-self:stretch}.installation-material-row-main{grid-template-columns:1fr;gap:8px;padding:10px}.installation-material-row-identity{display:grid}.installation-material-row-badges{justify-content:flex-start}.installation-material-row-numbers{grid-template-columns:repeat(5,1fr)}.installation-material-row-progress{grid-template-columns:1fr auto}.installation-material-row-quick{grid-column:auto}.installation-material-row-detail-grid{grid-template-columns:repeat(2,1fr)}.installation-material-quick-planner>summary small,.installation-log-composer>summary small{display:none}.installation-log-session{grid-template-columns:1fr 1fr}.installation-log-two-columns{grid-template-columns:1fr}.installation-log-close-row{grid-template-columns:1fr}.installation-log-close-row>.btn{width:100%}.installation-log-quick-chips{overflow-x:auto;flex-wrap:nowrap}.installation-log-quick-chips button{white-space:nowrap}.installation-log-timeline{padding-left:24px}.installation-log-marker{left:-24px}}


/* =========================================================
   3.7.0 - MOVIMIENTOS DE MATERIAL COMPACTOS Y CORREGIBLES
   ========================================================= */
.nested-modal .modal-card.modal-installation-movement{width:min(720px,calc(100% - 30px));height:auto;max-height:min(760px,calc(var(--modal-visible-height,100dvh) - 30px));align-self:center}.modal-card.modal-installation-movement .modal-body{padding:16px}.installation-movement-form.compact{display:grid;gap:12px}.installation-movement-compact-summary{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid #d9e3ec;border-radius:13px;background:#f7f9fc}.installation-movement-compact-summary>div{min-width:0;display:grid;gap:3px}.installation-movement-compact-summary b{font-size:15px;color:#243e5b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.installation-movement-compact-summary small{color:#6c7e92;font-size:11px}.installation-movement-type{flex:0 0 auto;display:grid;place-items:center;min-width:84px;padding:8px 10px;border-radius:10px;font-size:10px;font-weight:900;text-transform:uppercase;background:#e8edf3;color:#435972}.installation-movement-type.delivery{background:#e8f2fb;color:#245d8f}.installation-movement-type.usage{background:#e8f5ee;color:#21704e}.installation-movement-type.return{background:#fff2df;color:#9a6112}.installation-movement-compact-grid{display:grid;grid-template-columns:minmax(170px,.7fr) minmax(260px,1.3fr);gap:10px}.installation-movement-compact-grid .material{grid-column:1/-1}.installation-movement-form label{display:grid;gap:6px;color:#3c5068;font-size:11px;font-weight:850}.installation-movement-form input,.installation-movement-form select,.installation-movement-form textarea{width:100%;border:1px solid #cbd7e3;border-radius:10px;background:#fff;color:#20364f;font-size:14px}.installation-movement-form input,.installation-movement-form select{min-height:43px;padding:8px 11px}.installation-movement-form textarea{min-height:76px;padding:10px 11px;resize:vertical}.installation-movement-quantity{display:grid;grid-template-columns:1fr auto;gap:6px}.installation-movement-quantity button{min-width:62px;border:1px solid #c8d6e3;border-radius:10px;background:#eef3f8;color:#294968;font-weight:850;cursor:pointer}.installation-movement-note{border:1px solid #e0e7ee;border-radius:10px;background:#fafbfd}.installation-movement-note>summary{padding:10px 12px;cursor:pointer;color:#52677e;font-size:11px;font-weight:850}.installation-movement-note textarea{border:0;border-top:1px solid #e5ebf1;border-radius:0 0 10px 10px}.installation-movement-footer{display:flex;justify-content:flex-end;gap:8px;padding-top:3px}.installation-movement-footer .btn{min-width:140px}.installation-movement-warning{padding:9px 11px;border-left:3px solid #4380ae;border-radius:8px;background:#eef6fc;color:#4e6479;font-size:11px;line-height:1.45}.installation-movement-warning.danger{border-left-color:#c84a4a;background:#fff1f1;color:#754444}.installation-movement-delete-summary{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;background:#fff3f3}.installation-movement-delete-summary>span{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#c94848;color:#fff;font-size:22px;font-weight:900}.installation-movement-delete-summary b{display:block;color:#703838}.installation-movement-delete-summary p{margin:3px 0 0;color:#815a5a;font-size:12px}
.installation-movement-ledger{margin-top:13px;border:1px solid #dce5ee;border-radius:14px;background:#fff;overflow:hidden}.installation-movement-ledger>header{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:13px 15px;border-bottom:1px solid #e6edf3;background:#f8fafc}.installation-movement-ledger>header span{display:block;color:#7c8b9d;font-size:8px;font-weight:900;letter-spacing:.08em}.installation-movement-ledger>header h5{margin:3px 0 0;color:#27435f;font-size:14px}.installation-movement-ledger>header p{margin:3px 0 0;color:#758598;font-size:10px}.installation-movement-totals{display:grid;grid-template-columns:auto auto;gap:1px 7px;align-items:center;text-align:right}.installation-movement-totals b{font-size:16px;color:#294a69}.installation-movement-totals small{font-size:8px;text-transform:uppercase;color:#8391a1}.installation-movement-toolbar{display:grid;grid-template-columns:minmax(240px,1fr) 180px auto;gap:9px;align-items:end;padding:10px 13px;border-bottom:1px solid #edf1f5}.installation-movement-toolbar label{display:grid;gap:4px}.installation-movement-toolbar label>span{font-size:8px;font-weight:850;text-transform:uppercase;color:#78889a}.installation-movement-toolbar input,.installation-movement-toolbar select{min-height:36px;padding:6px 9px;border:1px solid #ced9e4;border-radius:8px;background:#fff;font-size:11px}.installation-movement-toolbar>small{padding-bottom:9px;color:#748397;font-size:9px}.installation-movement-list{display:grid}.installation-movement-row{display:grid;grid-template-columns:135px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 13px;border-bottom:1px solid #edf1f5}.installation-movement-row:last-child{border-bottom:0}.installation-movement-row:hover{background:#fbfcfe}.installation-movement-kind{display:grid;gap:3px}.installation-movement-kind span{width:max-content;padding:3px 7px;border-radius:999px;background:#e9eff5;color:#4c6075;font-size:8px;font-weight:900;text-transform:uppercase}.installation-movement-row.delivery .installation-movement-kind span{background:#e7f2fb;color:#285f90}.installation-movement-row.usage .installation-movement-kind span{background:#e6f4ed;color:#246c4e}.installation-movement-row.return .installation-movement-kind span{background:#fff0d9;color:#986014}.installation-movement-kind strong{color:#233f5d;font-size:13px}.installation-movement-description{min-width:0}.installation-movement-description b{display:block;color:#2c465f;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.installation-movement-description p{margin:3px 0 0;color:#7a8999;font-size:9px}.installation-movement-description small{display:block;margin-top:4px;color:#52667b;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.installation-movement-description em{display:block;margin-top:4px;color:#a34545;font-size:9px;font-style:normal;font-weight:800}.installation-movement-actions{display:flex;gap:5px}.installation-movement-actions .btn{min-height:31px;padding:5px 9px;font-size:9px}.installation-movement-row.is-void{opacity:.62;background:#faf5f5}.installation-movement-row.is-void .installation-movement-kind strong{text-decoration:line-through}
@media(max-width:760px){.nested-modal .modal-card.modal-installation-movement{width:calc(100% - 12px);height:auto;max-height:calc(var(--modal-visible-height,100dvh) - 12px);border-radius:18px}.modal-card.modal-installation-movement .modal-head{min-height:54px}.modal-card.modal-installation-movement .modal-body{padding:12px}.installation-movement-compact-grid{grid-template-columns:1fr}.installation-movement-compact-grid .material{grid-column:auto}.installation-movement-footer{position:sticky;bottom:0;padding:9px 0 max(3px,env(safe-area-inset-bottom));background:#fff}.installation-movement-footer .btn{flex:1;min-width:0}.installation-movement-toolbar{grid-template-columns:1fr 1fr}.installation-movement-toolbar>small{grid-column:1/-1;padding:0}.installation-movement-row{grid-template-columns:110px minmax(0,1fr);gap:8px}.installation-movement-actions{grid-column:1/-1;justify-content:flex-end}.installation-movement-description small{white-space:normal}.installation-movement-ledger>header{align-items:flex-start}.installation-movement-ledger>header p{display:none}}
@media(max-width:480px){.installation-movement-compact-summary{align-items:flex-start}.installation-movement-type{min-width:72px}.installation-movement-toolbar{grid-template-columns:1fr}.installation-movement-row{grid-template-columns:1fr}.installation-movement-kind{grid-template-columns:auto 1fr;align-items:center}.installation-movement-kind strong{text-align:right}.installation-movement-actions{grid-column:auto}.installation-movement-actions .btn{flex:1}}


/* =========================================================
   3.7.1 - REGISTRO MASIVO DE CAMARAS
   ========================================================= */
.installation-equipment-form-head-tools{display:flex;align-items:flex-end;gap:10px;flex-direction:column}.installation-equipment-form-head-tools .btn{min-height:34px;padding:7px 12px;font-size:11px}.installation-camera-batch-note{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid #b8d7ea;border-radius:12px;background:#edf8ff;color:#315978}.installation-camera-batch-note b{font-size:12px}.installation-camera-batch-note span{flex:1;font-size:11px}.installation-camera-batch-note button{border:0;border-radius:9px;background:#315d8b;color:#fff;padding:7px 12px;font-weight:900;cursor:pointer}.installation-camera-batch-form{display:grid;gap:14px}.installation-camera-batch-intro{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px;border-radius:15px;background:linear-gradient(125deg,#24456d,#397985);color:#fff}.installation-camera-batch-intro span{font-size:9px;font-weight:900;letter-spacing:.12em;opacity:.75}.installation-camera-batch-intro h4{margin:4px 0;font-size:20px}.installation-camera-batch-intro p{margin:0;max-width:720px;font-size:12px;line-height:1.5;opacity:.9}.installation-camera-batch-intro>b{padding:9px 12px;border-radius:10px;background:rgba(255,255,255,.13);white-space:nowrap}.installation-camera-batch-form>section{overflow:hidden;border:1px solid #d5e1eb;border-radius:14px;background:#fff}.installation-camera-batch-form>section>header{padding:11px 14px;border-bottom:1px solid #e6edf3;background:#f8fafc}.installation-camera-batch-form>section>header b{display:block;color:#294766}.installation-camera-batch-form>section>header span{display:block;margin-top:2px;font-size:10px;color:#718096}.installation-camera-batch-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:13px}.installation-camera-batch-grid label,.installation-camera-batch-two label{display:grid;gap:5px;font-size:11px;font-weight:850;color:#4c6077}.installation-camera-batch-grid .span2{grid-column:span 2}.installation-camera-batch-grid textarea{min-height:76px}.installation-camera-batch-two{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:13px}.installation-camera-batch-two textarea{min-height:110px}.installation-camera-batch-actions{display:flex;justify-content:flex-end;gap:8px;position:sticky;bottom:-12px;z-index:4;padding:10px;border:1px solid #dbe5ee;border-radius:12px;background:rgba(255,255,255,.96);backdrop-filter:blur(8px)}.installation-camera-batch-preview{min-height:170px;border:1px solid #d8e3ec;border-radius:14px;background:#fff}.installation-camera-batch-preview-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid #e6edf3}.installation-camera-batch-preview-head b{display:block;color:#294766}.installation-camera-batch-preview-head span{display:block;margin-top:2px;font-size:10px;color:#718096}.installation-camera-batch-preview-head>div:last-child{display:flex;gap:7px}.installation-camera-batch-table-wrap{overflow:auto;max-height:430px}.installation-camera-batch-table{width:100%;min-width:1180px;border-collapse:collapse}.installation-camera-batch-table th{position:sticky;top:0;z-index:2;padding:8px;background:#eef4f8;color:#52677d;font-size:9px;text-transform:uppercase;letter-spacing:.05em;text-align:left}.installation-camera-batch-table td{padding:5px;border-top:1px solid #edf1f5}.installation-camera-batch-table td:first-child{width:36px;text-align:center;font-weight:900;color:#42617f}.installation-camera-batch-table input{min-height:34px;padding:6px 8px;font-size:11px}.installation-camera-batch-status{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:9px;font-weight:900;white-space:nowrap}.installation-camera-batch-status.idle{background:#edf1f5;color:#65758a}.installation-camera-batch-status.ok{background:#e2f5eb;color:#27734d}.installation-camera-batch-status.error{background:#ffe9e9;color:#a33636}.installation-camera-batch-validation-summary{padding:10px 14px;border-top:1px solid #e6edf3;font-size:11px;font-weight:800;color:#53677e}.installation-equipment-collection{display:grid;gap:12px}.installation-camera-batch-card{overflow:hidden;border:1px solid #c9dce9;border-left:5px solid #3978a9;border-radius:15px;background:#fff;box-shadow:0 8px 24px rgba(31,65,96,.06)}.installation-camera-batch-card>header{display:flex;justify-content:space-between;gap:14px;padding:13px 15px;background:linear-gradient(90deg,#f5faff,#fff)}.installation-camera-batch-card>header span{font-size:9px;font-weight:900;letter-spacing:.1em;color:#64819d}.installation-camera-batch-card>header h5{margin:3px 0;font-size:15px;color:#234363}.installation-camera-batch-card>header p{margin:0;font-size:11px;color:#687b90}.installation-camera-batch-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;padding:10px 15px}.installation-camera-batch-metrics span{padding:8px 10px;border-radius:10px;background:#f1f6fa}.installation-camera-batch-metrics small{display:block;font-size:8px;font-weight:900;text-transform:uppercase;color:#7b8ba0}.installation-camera-batch-metrics b{display:block;margin-top:3px;font-size:12px;color:#294867}.installation-camera-batch-card-actions{display:flex;justify-content:flex-end;gap:7px;padding:0 15px 12px}.installation-camera-batch-card>details{border-top:1px solid #e6edf3}.installation-camera-batch-card>details>summary{padding:10px 15px;cursor:pointer;font-size:11px;font-weight:900;color:#3e5d7b}.installation-camera-batch-card>details>.installation-equipment-list{padding:0 12px 12px}.installation-camera-series-capture{display:grid;gap:12px}.installation-camera-series-progress{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;border-radius:13px;background:linear-gradient(125deg,#24456d,#397985);color:#fff}.installation-camera-series-progress span{display:block;font-size:9px;font-weight:900;letter-spacing:.1em;opacity:.75}.installation-camera-series-progress b{display:block;margin-top:4px;font-size:16px}.installation-camera-series-progress small{display:block;margin-top:3px;opacity:.85}.installation-camera-series-progress>strong{padding:8px 10px;border-radius:9px;background:rgba(255,255,255,.15);white-space:nowrap}.installation-camera-series-form{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:10px;padding:13px;border:1px solid #d8e3ec;border-radius:13px;background:#fff}.installation-camera-series-form label{display:grid;gap:5px;font-size:11px;font-weight:850;color:#4c6077}.installation-camera-series-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px}.installation-camera-series-paste{padding:11px 13px;border:1px solid #d8e3ec;border-radius:12px;background:#f8fafc}.installation-camera-series-paste summary{cursor:pointer;font-size:11px;font-weight:900;color:#385879}.installation-camera-series-paste p{font-size:10px;color:#6d7f93}.installation-camera-series-paste textarea{width:100%;min-height:90px;margin:8px 0}.installation-camera-series-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.installation-camera-series-list button{display:flex;align-items:center;gap:8px;padding:9px;border:1px solid #dce5ed;border-radius:10px;background:#fff;text-align:left;cursor:pointer}.installation-camera-series-list button>span{display:grid;place-items:center;width:25px;height:25px;border-radius:8px;background:#edf2f6;font-size:10px;font-weight:900}.installation-camera-series-list button b{display:block;font-size:10px;color:#344e69}.installation-camera-series-list button small{display:block;margin-top:2px;font-size:9px;color:#79899c}.installation-camera-series-list button.active{border-color:#3978a9;box-shadow:0 0 0 2px rgba(57,120,169,.12)}.installation-camera-series-list button.complete>span{background:#def3e7;color:#26724b}.installation-camera-batch-inventory{display:grid;gap:13px}.installation-camera-batch-inventory-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.installation-camera-batch-inventory-summary span{padding:10px;border-radius:11px;background:#eff5f9}.installation-camera-batch-inventory-summary span.warning{background:#fff3d9}.installation-camera-batch-inventory-summary small{display:block;font-size:9px;font-weight:900;text-transform:uppercase;color:#718196}.installation-camera-batch-inventory-summary b{display:block;margin-top:3px;color:#2d4b69}.installation-camera-batch-incomplete{display:flex;gap:9px;align-items:flex-start;padding:10px;border-radius:10px;background:#fff5df;color:#77531a;font-size:11px;font-weight:800}.installation-camera-batch-inventory>footer{display:flex;justify-content:flex-end;gap:8px;padding-top:10px;border-top:1px solid #e2e9ef}
@media(max-width:900px){.installation-camera-batch-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.installation-camera-batch-grid .span2{grid-column:1/-1}.installation-camera-series-form{grid-template-columns:1fr 1fr}.installation-camera-series-form label:last-of-type{grid-column:1/-1}.installation-camera-series-list{grid-template-columns:repeat(2,minmax(0,1fr))}.installation-camera-batch-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.installation-equipment-form-head-tools{align-items:stretch;width:100%}.installation-camera-batch-note{align-items:flex-start;flex-direction:column}.installation-camera-batch-note button{width:100%}.installation-camera-batch-intro{align-items:flex-start;flex-direction:column}.installation-camera-batch-grid,.installation-camera-batch-two,.installation-camera-series-form{grid-template-columns:1fr}.installation-camera-batch-grid .span2{grid-column:auto}.installation-camera-batch-actions{display:grid;grid-template-columns:1fr 1fr;bottom:-10px}.installation-camera-batch-actions .btn-primary{grid-column:1/-1}.installation-camera-batch-preview-head{align-items:flex-start;flex-direction:column}.installation-camera-batch-preview-head>div:last-child{width:100%;display:grid;grid-template-columns:1fr 1fr}.installation-camera-batch-card>header{align-items:flex-start;flex-direction:column}.installation-camera-batch-card-actions{display:grid;grid-template-columns:1fr}.installation-camera-series-progress{align-items:flex-start;flex-direction:column}.installation-camera-series-actions{grid-column:auto;display:grid;grid-template-columns:1fr 1fr}.installation-camera-series-actions .btn-primary{grid-column:1/-1}.installation-camera-series-list{grid-template-columns:1fr}.installation-camera-batch-inventory-summary{grid-template-columns:1fr 1fr}.installation-camera-batch-inventory>footer .btn{flex:1}}

@media(max-width:600px){.installation-camera-batch-form input,.installation-camera-batch-form select,.installation-camera-batch-form textarea,.installation-camera-batch-table input,.installation-camera-series-form input,.installation-camera-series-form textarea{font-size:16px!important}}


/* =========================================================
   3.7.2 - CENTRO DE CONTROL DE MATERIALES
   ========================================================= */
.installation-material-control-center{display:grid;gap:8px;margin-bottom:10px}.installation-material-bulkbar{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:9px 12px;border:1px solid #d7e3ed;border-radius:12px;background:linear-gradient(135deg,#f8fbfd,#eef5fa)}.installation-material-bulkbar>label{display:flex;align-items:center;gap:7px;color:#38516c;font-size:10px;font-weight:850}.installation-material-bulkbar>label input{width:16px;height:16px}.installation-material-bulkbar>span{color:#60758c;font-size:10px;font-weight:800;white-space:nowrap}.installation-material-bulkbar>div{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.installation-material-bulkbar .btn{min-height:34px;padding:6px 10px;font-size:9px}.installation-material-toolbar{grid-template-columns:minmax(250px,1fr) 180px auto auto}.installation-material-toolbar>.btn{min-height:38px}.installation-material-selector{display:grid;place-items:center;align-self:stretch}.installation-material-selector input{position:absolute;opacity:0;pointer-events:none}.installation-material-selector span{display:block;width:18px;height:18px;border:2px solid #b8c7d5;border-radius:5px;background:#fff;cursor:pointer}.installation-material-selector input:checked+span{border-color:#2d6ba0;background:#2d6ba0;box-shadow:inset 0 0 0 3px #fff}.installation-material-row.selected{outline:2px solid rgba(45,107,160,.24);background:#f8fbfe}.installation-material-row-main{grid-template-columns:22px minmax(220px,1.45fr) minmax(300px,1.2fr) 120px auto}.installation-material-row-quick{flex-wrap:wrap}.installation-material-no-results{padding:24px;border:1px dashed #cfdbe6;border-radius:12px;text-align:center;color:#697d92;background:#fafcfd;font-size:12px}.installation-material-resource-search{position:relative}.installation-material-resource-results{display:grid;gap:5px;max-height:280px;overflow:auto;padding:6px 2px 2px}.installation-material-resource-result{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:9px 11px;border:1px solid #d8e3ec;border-radius:10px;background:#fff;color:#29445f;text-align:left;cursor:pointer}.installation-material-resource-result:hover,.installation-material-resource-result.selected{border-color:#4b83b0;background:#eef6fc}.installation-material-resource-result span{display:grid;gap:2px;min-width:0}.installation-material-resource-result b{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.installation-material-resource-result small{font-size:9px;color:#75869a}.installation-material-resource-result strong{font-size:13px;color:#275e8b;white-space:nowrap}.installation-material-resource-result strong small{display:block;text-align:right;font-size:7px;text-transform:uppercase}.installation-material-stock-preview{display:grid;grid-template-columns:1.5fr 1fr 1fr auto;gap:8px;align-items:center}.installation-material-stock-preview>div{display:grid;gap:2px}.installation-material-stock-preview span{font-size:8px;text-transform:uppercase;color:#7a8b9c}.installation-material-stock-preview b{font-size:11px;color:#284661}.installation-material-stock-preview button{border:1px solid #c9d7e3;border-radius:8px;background:#fff;padding:6px 9px;color:#315675;font-size:9px;font-weight:850;cursor:pointer}
.modal-card.modal-installation-movement.modal-wide{width:min(1080px,calc(100% - 30px))}.installation-material-bulk-form{display:grid;gap:12px}.installation-material-bulk-intro{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid #d9e4ed;border-radius:13px;background:#f7fafc}.installation-material-bulk-intro>div{display:grid;gap:3px}.installation-material-bulk-intro b{color:#243f5c;font-size:15px}.installation-material-bulk-intro p{margin:0;color:#65788d;font-size:11px;line-height:1.45}.installation-material-bulk-controls{display:grid;grid-template-columns:280px 1fr;gap:10px}.installation-material-bulk-controls label{display:grid;gap:5px;font-size:10px;font-weight:850;color:#425970}.installation-material-bulk-controls input,.installation-material-bulk-controls select{min-height:40px;border:1px solid #cbd8e3;border-radius:9px;padding:7px 10px;background:#fff}.installation-material-bulk-selectbar{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;border-radius:9px;background:#eef4f8;color:#496078;font-size:10px;font-weight:800}.installation-material-bulk-selectbar label{display:flex;align-items:center;gap:6px}.installation-material-bulk-list{display:grid;gap:5px;max-height:430px;overflow:auto;padding-right:3px}.installation-material-bulk-row{display:grid;grid-template-columns:20px minmax(250px,1fr) 130px 65px;gap:9px;align-items:center;padding:8px 10px;border:1px solid #dce5ed;border-radius:10px;background:#fff}.installation-material-bulk-row>input[type=checkbox]{width:16px;height:16px}.installation-material-bulk-row>span{display:grid;gap:2px;min-width:0}.installation-material-bulk-row>span b{font-size:11px;color:#29455f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.installation-material-bulk-row>span small{font-size:9px;color:#728399}.installation-material-bulk-row>input[type=number]{min-height:36px;border:1px solid #cbd8e3;border-radius:8px;padding:6px 9px;font-size:12px}.installation-material-bulk-row>em{font-style:normal;color:#61758b;font-size:9px}.installation-material-bulk-row:has(input[type=checkbox]:not(:checked)){opacity:.52;background:#f8fafb}
@media(max-width:1180px){.installation-material-row-main{grid-template-columns:22px minmax(210px,1.3fr) minmax(270px,1.2fr) 105px}.installation-material-row-quick{grid-column:2/-1;justify-content:flex-start}.installation-material-toolbar{grid-template-columns:1fr 160px auto}.installation-material-toolbar>small{grid-column:1/-1}.installation-material-bulkbar{align-items:flex-start}.installation-material-bulkbar>div{flex:1}}
@media(max-width:720px){.installation-material-toolbar{grid-template-columns:1fr 1fr}.installation-material-toolbar>.btn{grid-column:auto}.installation-material-toolbar>small{grid-column:1/-1}.installation-material-bulkbar{display:grid;grid-template-columns:1fr auto}.installation-material-bulkbar>div{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.installation-material-bulkbar .btn{width:100%}.installation-material-row-main{grid-template-columns:22px 1fr}.installation-material-row-identity,.installation-material-row-numbers,.installation-material-row-progress,.installation-material-row-quick{grid-column:2/3}.installation-material-stock-preview{grid-template-columns:1fr 1fr}.installation-material-stock-preview button{grid-column:1/-1}.installation-material-bulk-controls{grid-template-columns:1fr}.installation-material-bulk-row{grid-template-columns:20px 1fr 95px}.installation-material-bulk-row>em{display:none}.installation-material-bulk-list{max-height:50dvh}.modal-card.modal-installation-movement.modal-wide{width:calc(100% - 12px)}}
@media(max-width:480px){.installation-material-bulkbar>div{grid-template-columns:1fr}.installation-material-row-numbers{grid-template-columns:repeat(3,1fr)}.installation-material-row-numbers span:nth-child(4),.installation-material-row-numbers span:nth-child(5){grid-column:auto}.installation-material-resource-result strong{display:none}.installation-material-bulk-row{grid-template-columns:20px 1fr}.installation-material-bulk-row>input[type=number]{grid-column:2/3}.installation-material-bulk-selectbar{align-items:flex-start;gap:8px}}


/* =========================================================
   3.7.3 - SELECCION SEGURA DE MATERIALES
   ========================================================= */
.installation-material-resource-result.selected{
  outline:2px solid rgba(36,88,139,.32);
  outline-offset:-2px;
}
.installation-material-resource-result.selected strong::after{
  content:"Seleccionado";
  display:block;
  margin-top:.18rem;
  font-size:.66rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
}

/* =========================================================
   3.7.5 - SELECCION MULTIPLE ESTABLE Y BARRA ADHERIDA
   ========================================================= */
.installation-material-desktop-picker{display:none}

.installation-material-bulk-dock{
  position:sticky;
  top:8px;
  z-index:32;
  width:100%;
  max-height:0;
  margin:0;
  padding:0 14px;
  overflow:hidden;
  opacity:0;
  pointer-events:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  border:0 solid rgba(255,255,255,.32);
  border-radius:14px;
  background:linear-gradient(135deg,#173b63,#2f648c);
  color:#fff;
  box-shadow:none;
  transition:max-height .18s ease,padding .18s ease,margin .18s ease,opacity .16s ease;
}

.installation-material-bulk-dock.active{
  max-height:112px;
  margin:9px 0 11px;
  padding:11px 14px;
  border-width:1px;
  opacity:1;
  pointer-events:auto;
  box-shadow:0 12px 28px rgba(9,29,49,.22);
}

.installation-material-bulk-dock-summary{display:grid;gap:2px;min-width:210px}
.installation-material-bulk-dock-summary b{font-size:13px}
.installation-material-bulk-dock-summary small{color:rgba(255,255,255,.78);font-size:9px}
.installation-material-bulk-dock-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:7px}
.installation-material-bulk-dock .btn{min-height:36px;padding:7px 11px;font-size:9px}
.installation-material-bulk-dock .btn-outline{border-color:rgba(255,255,255,.46);background:rgba(255,255,255,.1);color:#fff}
.installation-material-bulk-dock .btn:disabled{opacity:.42;cursor:not-allowed}

.installation-material-selector{
  position:relative;
  z-index:3;
  user-select:none;
  -webkit-user-select:none;
}

.installation-material-selector span{
  transition:border-color .14s ease,background .14s ease,box-shadow .14s ease;
}

.installation-material-row.selected{
  scroll-margin-top:92px;
}

@media(min-width:900px){
  .installation-material-desktop-picker{display:grid;gap:6px;margin-top:6px}
  .installation-material-desktop-picker>span{color:#53677d;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.04em}
  .installation-material-desktop-picker select{width:100%;min-height:188px;padding:5px;border:1px solid #d7e2ec;border-radius:11px;background:#fff;color:#29445f;font-size:11px}
  .installation-material-desktop-picker option{padding:7px 8px}
  .installation-material-resource-results{display:none}
}

@media(max-width:899px){
  .installation-material-desktop-picker{display:none!important}
}

@media(max-width:720px){
  .installation-material-bulk-dock{
    top:5px;
    display:grid;
    gap:8px;
  }
  .installation-material-bulk-dock.active{
    max-height:190px;
    padding:10px;
  }
  .installation-material-bulk-dock-summary{min-width:0}
  .installation-material-bulk-dock-actions{display:grid;grid-template-columns:1fr 1fr}
  .installation-material-bulk-dock .btn{width:100%}
}


/* =========================================================
   3.7.6 - LOTE DE CAMARAS ADAPTADO EXCLUSIVAMENTE A MOVIL
   No modifica la presentación de escritorio.
   ========================================================= */
@media(max-width:600px){
  .modal-card.modal-installation-camera-batch{
    width:100vw!important;
    max-width:none!important;
    height:100dvh!important;
    max-height:100dvh!important;
    margin:0!important;
    border-radius:0!important;
  }

  .modal-card.modal-installation-camera-batch .modal-head{
    flex:0 0 auto;
    min-height:64px;
    padding:
      max(14px,env(safe-area-inset-top))
      14px
      12px;
  }

  .modal-card.modal-installation-camera-batch .modal-head h3{
    font-size:18px;
    line-height:1.2;
  }

  .modal-card.modal-installation-camera-batch .modal-body{
    padding:
      10px
      10px
      calc(18px + env(safe-area-inset-bottom));
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
  }

  .modal-card.modal-installation-camera-batch .installation-camera-batch-form{
    gap:10px;
  }

  .modal-card.modal-installation-camera-batch .installation-camera-batch-intro{
    gap:10px;
    padding:14px;
    border-radius:14px;
  }

  .modal-card.modal-installation-camera-batch .installation-camera-batch-intro h4{
    font-size:18px;
  }

  .modal-card.modal-installation-camera-batch .installation-camera-batch-intro p{
    font-size:11px;
  }

  .modal-card.modal-installation-camera-batch .installation-camera-batch-intro>b{
    width:100%;
    padding:8px 10px;
    text-align:center;
  }

  .modal-card.modal-installation-camera-batch .installation-camera-batch-form>section{
    border-radius:13px;
  }

  .modal-card.modal-installation-camera-batch .installation-camera-batch-form>section>header{
    padding:11px 12px;
  }

  .modal-card.modal-installation-camera-batch .installation-camera-batch-form>section>header b{
    font-size:13px;
  }

  .modal-card.modal-installation-camera-batch .installation-camera-batch-form>section>header span{
    font-size:10px;
    line-height:1.35;
  }

  .modal-card.modal-installation-camera-batch .installation-camera-batch-grid,
  .modal-card.modal-installation-camera-batch .installation-camera-batch-two{
    grid-template-columns:1fr!important;
    gap:9px;
    padding:11px;
  }

  .modal-card.modal-installation-camera-batch .installation-camera-batch-grid .span2{
    grid-column:auto!important;
  }

  .modal-card.modal-installation-camera-batch .installation-camera-batch-grid label,
  .modal-card.modal-installation-camera-batch .installation-camera-batch-two label{
    gap:6px;
    font-size:12px;
  }

  .modal-card.modal-installation-camera-batch input,
  .modal-card.modal-installation-camera-batch select,
  .modal-card.modal-installation-camera-batch textarea{
    width:100%;
    min-width:0;
    min-height:46px;
    font-size:16px!important;
  }

  .modal-card.modal-installation-camera-batch textarea{
    min-height:96px;
  }

  .modal-card.modal-installation-camera-batch .installation-password-field{
    grid-template-columns:minmax(0,1fr) auto;
  }

  .modal-card.modal-installation-camera-batch .installation-password-field button{
    min-width:60px;
    min-height:46px;
  }

  .modal-card.modal-installation-camera-batch .installation-scan-field{
    grid-template-columns:minmax(0,1fr) auto;
  }

  .modal-card.modal-installation-camera-batch .installation-scan-field button{
    min-width:54px;
    min-height:46px;
  }

  .modal-card.modal-installation-camera-batch .installation-camera-batch-actions{
    position:sticky;
    bottom:calc(-10px + env(safe-area-inset-bottom));
    z-index:8;
    grid-template-columns:1fr 1fr;
    gap:7px;
    padding:
      9px
      9px
      calc(9px + env(safe-area-inset-bottom));
    border-radius:13px;
    box-shadow:0 -8px 24px rgba(27,55,83,.12);
  }

  .modal-card.modal-installation-camera-batch .installation-camera-batch-actions .btn{
    width:100%;
    min-height:44px;
  }

  .modal-card.modal-installation-camera-batch .installation-camera-batch-actions .btn-primary{
    grid-column:1/-1;
  }

  .modal-card.modal-installation-camera-batch .installation-camera-batch-preview{
    min-height:120px;
    border-radius:13px;
  }

  .modal-card.modal-installation-camera-batch .installation-camera-batch-preview-head{
    gap:10px;
    padding:11px;
  }

  .modal-card.modal-installation-camera-batch .installation-camera-batch-preview-head>div:last-child{
    grid-template-columns:1fr;
    gap:7px;
  }

  .modal-card.modal-installation-camera-batch .installation-camera-batch-preview-head .btn{
    width:100%;
    min-height:42px;
  }

  .modal-card.modal-installation-camera-batch .installation-camera-batch-table-wrap{
    max-height:none;
    overflow:visible;
    padding:9px;
    background:#eef4f8;
  }

  .modal-card.modal-installation-camera-batch .installation-camera-batch-table{
    display:block;
    width:100%;
    min-width:0;
  }

  .modal-card.modal-installation-camera-batch .installation-camera-batch-table thead{
    display:none;
  }

  .modal-card.modal-installation-camera-batch .installation-camera-batch-table tbody{
    display:grid;
    gap:10px;
  }

  .modal-card.modal-installation-camera-batch .installation-camera-batch-table tr{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    padding:10px;
    border:1px solid #d5e1eb;
    border-radius:13px;
    background:#fff;
    box-shadow:0 5px 14px rgba(34,68,98,.06);
  }

  .modal-card.modal-installation-camera-batch .installation-camera-batch-table td{
    display:grid;
    gap:4px;
    min-width:0;
    padding:0;
    border:0;
  }

  .modal-card.modal-installation-camera-batch .installation-camera-batch-table td::before{
    content:attr(data-label);
    color:#6d8094;
    font-size:9px;
    font-weight:900;
    letter-spacing:.05em;
    text-transform:uppercase;
  }

  .modal-card.modal-installation-camera-batch .installation-camera-batch-table td:nth-child(2),
  .modal-card.modal-installation-camera-batch .installation-camera-batch-table td:nth-child(3),
  .modal-card.modal-installation-camera-batch .installation-camera-batch-table td:nth-child(4),
  .modal-card.modal-installation-camera-batch .installation-camera-batch-table td:nth-child(7),
  .modal-card.modal-installation-camera-batch .installation-camera-batch-table td:nth-child(8),
  .modal-card.modal-installation-camera-batch .installation-camera-batch-row-status{
    grid-column:1/-1;
  }

  .modal-card.modal-installation-camera-batch .installation-camera-batch-row-number{
    grid-column:1/-1;
    display:flex!important;
    align-items:center;
    justify-content:space-between;
    padding-bottom:7px!important;
    border-bottom:1px solid #e5ebf1!important;
  }

  .modal-card.modal-installation-camera-batch .installation-camera-batch-row-number::before{
    content:"Cámara";
  }

  .modal-card.modal-installation-camera-batch .installation-camera-batch-row-number span{
    display:grid;
    place-items:center;
    width:32px;
    height:32px;
    border-radius:10px;
    background:#315d89;
    color:#fff;
    font-size:13px;
    font-weight:900;
  }

  .modal-card.modal-installation-camera-batch .installation-camera-batch-table input{
    width:100%;
    min-width:0;
    min-height:43px;
    padding:8px 10px;
    font-size:16px!important;
  }

  .modal-card.modal-installation-camera-batch .installation-camera-batch-row-status{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding-top:7px!important;
    border-top:1px solid #e5ebf1!important;
  }

  .modal-card.modal-installation-camera-batch .installation-camera-batch-row-status::before{
    margin-right:auto;
  }

  .modal-card.modal-installation-camera-batch .installation-camera-batch-status{
    padding:7px 10px;
    font-size:10px;
  }

  .modal-card.modal-installation-camera-batch .installation-camera-batch-validation-summary{
    padding:11px;
    font-size:11px;
    line-height:1.4;
  }
}

@media(max-width:390px){
  .modal-card.modal-installation-camera-batch .installation-camera-batch-table tr{
    grid-template-columns:1fr;
  }

  .modal-card.modal-installation-camera-batch .installation-camera-batch-table td{
    grid-column:1/-1!important;
  }
}


/* =========================================================
   3.7.7 - ESCANEO DE SERIES EN LOTES, SOLO EN MOVIL
   ========================================================= */
.installation-camera-batch-serial-field{
  display:block;
  min-width:0;
}

.installation-camera-batch-serial-field>input{
  width:100%;
  min-width:0;
}

.installation-camera-batch-scan-button{
  display:none;
}

@media(max-width:600px){
  .modal-card.modal-installation-camera-batch
  .installation-camera-batch-serial-field{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:stretch;
    gap:7px;
  }

  .modal-card.modal-installation-camera-batch
  .installation-camera-batch-scan-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:88px;
    min-height:43px;
    padding:8px 10px;
    font-size:11px!important;
    white-space:nowrap;
  }

  .modal-card.modal-installation-camera-batch
  tr.installation-camera-batch-next-pending{
    outline:3px solid rgba(47,126,183,.28);
    outline-offset:1px;
    animation:installationCameraBatchNextPulse 1.4s ease;
  }
}

@keyframes installationCameraBatchNextPulse{
  0%,100%{box-shadow:0 5px 14px rgba(34,68,98,.06)}
  45%{box-shadow:0 0 0 8px rgba(47,126,183,.13)}
}


/* =========================================================
   3.7.8 - VALIDACION DETALLADA DE IP Y SERIES
   ========================================================= */
.installation-camera-batch-status.warning{
  background:#fff1cf;
  color:#8b5c08;
}

.installation-camera-batch-table tr.has-error{
  box-shadow:inset 4px 0 0 #c84848;
  background:#fffafa;
}

.installation-camera-batch-table tr.has-warning{
  box-shadow:inset 4px 0 0 #d9a72e;
  background:#fffdf7;
}

.installation-camera-batch-validation-summary{
  padding:0!important;
  border:0!important;
  background:transparent!important;
}

.installation-camera-batch-validation-state,
.installation-camera-batch-validation-report{
  display:grid;
  gap:5px;
  padding:12px 14px;
  border-radius:12px;
  border:1px solid #d8e2eb;
}

.installation-camera-batch-validation-state b,
.installation-camera-batch-validation-report-head b{
  font-size:12px;
  color:#29445f;
}

.installation-camera-batch-validation-state span,
.installation-camera-batch-validation-report-head span{
  font-size:10px;
  color:#6a7d90;
  line-height:1.4;
}

.installation-camera-batch-validation-state.success{
  border-color:#a8d7bd;
  background:#f0faf5;
}

.installation-camera-batch-validation-state.neutral{
  background:#f6f9fc;
}

.installation-camera-batch-validation-report.has-errors{
  border-color:#e1aaaa;
  background:#fff7f7;
}

.installation-camera-batch-validation-report.has-warnings{
  border-color:#ead28f;
  background:#fffaf0;
}

.installation-camera-batch-validation-report-head{
  display:grid;
  gap:3px;
}

.installation-camera-batch-validation-issues{
  display:grid;
  gap:7px;
  margin-top:5px;
}

.installation-camera-batch-issue{
  width:100%;
  display:grid;
  grid-template-columns:auto 1fr;
  align-items:center;
  gap:9px;
  padding:9px 10px;
  border:1px solid #dce5ed;
  border-radius:10px;
  background:#fff;
  color:#29445f;
  text-align:left;
  cursor:pointer;
}

.installation-camera-batch-issue>span{
  padding:4px 7px;
  border-radius:999px;
  font-size:8px;
  font-weight:900;
  text-transform:uppercase;
}

.installation-camera-batch-issue>b{
  font-size:10px;
  line-height:1.35;
}

.installation-camera-batch-issue.error>span{
  background:#f9dede;
  color:#9c3030;
}

.installation-camera-batch-issue.warning>span{
  background:#fff0c8;
  color:#8b5c08;
}

.installation-camera-batch-issue:hover{
  border-color:#9ab8d2;
}

.installation-camera-batch-issue-focus{
  animation:installationCameraIssueFocus 1.6s ease;
}

@keyframes installationCameraIssueFocus{
  0%,100%{outline:0 solid rgba(49,93,137,0)}
  35%{outline:5px solid rgba(49,93,137,.23)}
}

@media(max-width:600px){
  .installation-camera-batch-validation-state,
  .installation-camera-batch-validation-report{
    padding:11px;
    border-radius:11px;
  }

  .installation-camera-batch-issue{
    grid-template-columns:1fr;
    gap:5px;
  }

  .installation-camera-batch-issue>span{
    width:max-content;
  }
}


/* =========================================================
   3.7.9 - SERIES PENDIENTES SIN ERROR INTERNO
   ========================================================= */


/* =========================================================
   3.8.0 - ELIMINACION DE LOTES Y ACTUALIZACION SILENCIOSA
   ========================================================= */
.installation-camera-batch-delete-locked{
  display:inline-flex;
  align-items:center;
  min-height:36px;
  padding:7px 10px;
  border-radius:10px;
  background:#f4f6f8;
  color:#7c8794;
  font-size:9px;
  font-weight:800;
}

.installation-batch-delete-form{
  display:grid;
  gap:14px;
  padding:4px;
}

.installation-batch-delete-warning{
  display:grid;
  gap:6px;
  padding:14px;
  border:1px solid #efb4b4;
  border-radius:13px;
  background:#fff3f3;
  color:#8b2525;
}

.installation-batch-delete-warning b{font-size:14px}
.installation-batch-delete-warning span{font-size:11px;line-height:1.45}
.installation-batch-delete-form label{display:grid;gap:6px;font-weight:800;color:#40556d}
.installation-batch-delete-form textarea{min-height:100px}
.installation-batch-delete-actions{display:flex;justify-content:flex-end;gap:8px}

.installation-live-refresh-indicator{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:34px;
  padding:6px 9px;
  border:1px solid rgba(255,255,255,.24);
  border-radius:10px;
  color:rgba(255,255,255,.76);
  font-size:9px;
  font-weight:800;
  white-space:nowrap;
}

.installation-live-refresh-indicator i{
  width:7px;
  height:7px;
  border-radius:50%;
  background:#62d9aa;
  box-shadow:0 0 0 4px rgba(98,217,170,.13);
}

.installation-live-refresh-indicator.updated{
  color:#fff;
  background:rgba(98,217,170,.14);
}

@media(max-width:720px){
  .installation-live-refresh-indicator{
    order:10;
    width:100%;
    justify-content:center;
  }
  .installation-batch-delete-actions{
    display:grid;
    grid-template-columns:1fr;
  }
  .installation-batch-delete-actions .btn{width:100%}
}


/* =========================================================
   3.8.1 - MATERIALES COMPACTOS E HISTORIAL DESPLEGABLE
   Solo modifica la sección Materiales y suministros.
   ========================================================= */
.installation-material-active-empty{
  padding:18px;
  border:1px dashed #cbd9e5;
  border-radius:12px;
  background:#f8fbfd;
  color:#60758a;
  text-align:center;
  font-size:11px;
}

.installation-material-completed-group{
  margin-top:10px;
  border:1px solid #cfe2d7;
  border-radius:13px;
  background:#f7fbf8;
  overflow:hidden;
}

.installation-material-completed-group>summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:11px 13px;
  cursor:pointer;
  list-style:none;
  user-select:none;
}

.installation-material-completed-group>summary::-webkit-details-marker{display:none}
.installation-material-completed-group>summary>div{display:grid;gap:2px;min-width:0}
.installation-material-completed-group>summary span{color:#4b8b68;font-size:8px;font-weight:900;letter-spacing:.07em}
.installation-material-completed-group>summary b{color:#2a5d43;font-size:12px}
.installation-material-completed-group>summary small{color:#698071;font-size:9px}
.installation-material-completed-group>summary em{padding:6px 9px;border-radius:999px;background:#e4f2e9;color:#347553;font-size:9px;font-style:normal;font-weight:850;white-space:nowrap}
.installation-material-completed-group[open]>summary{border-bottom:1px solid #dcebe2}
.installation-material-completed-list{display:grid}
.installation-material-completed-list .installation-material-row{border-left-color:#4b956d;background:#fbfefc}

.installation-movement-collapsible{margin-top:12px}
.installation-movement-collapsible>.installation-movement-ledger-summary{
  display:grid;
  grid-template-columns:minmax(260px,1fr) auto auto;
  align-items:center;
  gap:14px;
  border-bottom:0;
}
.installation-movement-collapsible.open>.installation-movement-ledger-summary{border-bottom:1px solid #e6edf3}
.installation-movement-ledger-summary>.btn{min-height:36px;white-space:nowrap}
.installation-movement-summary-chips{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}
.installation-movement-summary-chips>span{display:grid;min-width:68px;padding:6px 8px;border-radius:9px;background:#edf2f6;text-align:center}
.installation-movement-summary-chips b{color:#2f4f6e;font-size:13px}
.installation-movement-summary-chips small{color:#75869a;font-size:7px;font-weight:850;text-transform:uppercase}
.installation-movement-summary-chips .delivery{background:#e7f2fb}
.installation-movement-summary-chips .usage{background:#e6f4ed}
.installation-movement-summary-chips .return{background:#fff0d9}
.installation-movement-summary-chips .void{background:#f8e8e8}
.installation-movement-ledger-body[hidden]{display:none!important}
.installation-movement-list .installation-movement-row{min-height:58px}
.installation-movement-empty{padding:20px;text-align:center;color:#718399;font-size:11px}
.installation-movement-load-more{display:flex;align-items:center;justify-content:center;gap:8px;padding:11px;border-top:1px solid #e8eef3;background:#fafcfd}
.installation-movement-load-more[hidden]{display:none!important}
.installation-movement-load-more .btn{min-height:34px;font-size:9px}

@media(max-width:920px){
  .installation-movement-collapsible>.installation-movement-ledger-summary{grid-template-columns:1fr auto}
  .installation-movement-summary-chips{grid-column:1/-1;justify-content:flex-start;order:3}
}

@media(max-width:620px){
  .installation-material-completed-group>summary{align-items:flex-start}
  .installation-material-completed-group>summary em{font-size:8px}
  .installation-movement-collapsible>.installation-movement-ledger-summary{grid-template-columns:1fr}
  .installation-movement-ledger-summary>.btn{width:100%}
  .installation-movement-summary-chips{display:grid;grid-template-columns:repeat(2,1fr);width:100%}
  .installation-movement-summary-chips>span{min-width:0}
  .installation-movement-load-more{display:grid;grid-template-columns:1fr 1fr}
  .installation-movement-load-more .btn{width:100%}
}

.installation-material-completed-group>summary em .when-open{display:none}
.installation-material-completed-group[open]>summary em .when-open{display:inline}
.installation-material-completed-group[open]>summary em .when-closed{display:none}


/* =========================================================
   3.8.2 - CENTRO PROFESIONAL DE INFORMES DE INSTALACION
   ========================================================= */
.installation-report-picker{display:grid;gap:14px}
.installation-report-picker-intro{padding:15px 16px;border:1px solid #d8e3ec;border-radius:14px;background:linear-gradient(135deg,#f7fafc,#edf4f8)}
.installation-report-picker-intro>span,.installation-report-option>div:nth-child(2)>span{font-size:8px;font-weight:900;letter-spacing:.08em;color:#708399}
.installation-report-picker-intro h4{margin:4px 0;color:#17365d;font-size:20px}
.installation-report-picker-intro p{margin:0;color:#5f7184;font-size:11px;line-height:1.45}
.installation-report-picker-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.installation-report-option{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:1fr auto;gap:11px;padding:14px;border:1px solid #d8e3ec;border-radius:15px;background:#fff;box-shadow:0 7px 20px rgba(30,63,91,.07)}
.installation-report-option.internal{border-top:4px solid #315d89}.installation-report-option.client{border-top:4px solid #2f855a}.installation-report-option.materials{border-top:4px solid #8b5e22}
.installation-report-option-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#eaf1f7;color:#244f79;font-size:13px;font-weight:950}
.installation-report-option.client .installation-report-option-icon{background:#e9f6ef;color:#276749}.installation-report-option.materials .installation-report-option-icon{background:#fbf3e5;color:#7b4c14}
.installation-report-option h5{margin:3px 0 6px;color:#233d58;font-size:14px}.installation-report-option p{margin:0;color:#627487;font-size:10px;line-height:1.5}.installation-report-option small{display:block;margin-top:8px;color:#7a8997;font-size:8.5px}
.installation-report-option>.btn{grid-column:1/-1;width:100%;min-height:40px}
.installation-report-security-note{padding:11px 13px;border:1px solid #efd8a6;border-radius:12px;background:#fff8e8;color:#6f5219;font-size:9.5px;line-height:1.45}
@media(max-width:850px){.installation-report-picker-grid{grid-template-columns:1fr}.installation-report-option{grid-template-columns:auto minmax(0,1fr)}}
@media(max-width:520px){.installation-report-picker-intro{padding:13px}.installation-report-option{padding:12px}.installation-report-option h5{font-size:13px}.installation-report-option p{font-size:10.5px}}


/* =========================================================
   3.8.3 - AJUSTE DE MAQUETACION DE INFORMES PDF
   ========================================================= */


/* =========================================================
   3.8.4 - RESUMEN PRINCIPAL MEJOR DISTRIBUIDO
   ========================================================= */

#dashboard{
  --operations-panel-shadow:
    0 12px 32px rgba(23,54,93,.085);
}

#dashboard .operations-hero{
  grid-template-columns:
    minmax(330px,.86fr)
    minmax(590px,1.14fr);
  gap:30px;
  min-height:248px;
  margin-bottom:18px;
  padding:30px 32px;
  border-radius:24px;
}

#dashboard .operations-hero-main{
  display:flex;
  align-items:flex-start;
  flex-direction:column;
  justify-content:center;
  min-width:0;
}

#dashboard .operations-hero h2{
  margin-top:9px;
  font-size:32px;
  letter-spacing:-.45px;
}

#dashboard .operations-hero p{
  font-size:12px;
}

.operations-hero-summary{
  width:min(100%,490px);
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin-top:22px;
}

.operations-hero-summary>span{
  min-width:0;
  display:grid;
  gap:3px;
  padding:10px 12px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:12px;
  background:rgba(255,255,255,.08);
  backdrop-filter:blur(7px);
  -webkit-backdrop-filter:blur(7px);
}

.operations-hero-summary small{
  overflow:hidden;
  color:#c8ddeb;
  font-size:8px;
  font-weight:900;
  letter-spacing:.45px;
  text-overflow:ellipsis;
  text-transform:uppercase;
  white-space:nowrap;
}

.operations-hero-summary b{
  color:#fff;
  font-size:19px;
  line-height:1;
}

.operations-hero-pulse{
  display:flex;
  align-items:center;
  gap:7px;
  margin-top:11px;
  color:#d9e9f4;
}

.operations-hero-pulse b{
  font-size:10px;
}

.operations-hero-pulse small{
  color:#b8cedd;
  font-size:9px;
}

.operations-live-dot{
  width:7px;
  height:7px;
  border-radius:50%;
  background:#69dc91;
  box-shadow:0 0 0 5px rgba(105,220,145,.13);
}

#dashboard .operations-quick-actions{
  grid-template-columns:repeat(3,minmax(0,1fr));
  align-content:center;
  gap:10px;
}

#dashboard .operations-action{
  min-height:68px;
  padding:13px 14px;
  border-radius:15px;
}

#dashboard .operations-action-main{
  grid-column:1/-1;
  min-height:82px;
}

#dashboard .operations-action-main
.operations-action-icon{
  width:46px;
  height:46px;
  flex-basis:46px;
  border-radius:13px;
  font-size:24px;
}

#dashboard .operations-action b{
  font-size:13px;
}

#dashboard .operations-action-main b{
  font-size:15px;
}

#dashboard .operations-action small{
  font-size:9px;
}

#dashboard .operations-metrics{
  grid-template-columns:repeat(6,minmax(170px,1fr));
  gap:12px;
  margin-bottom:18px;
}

#dashboard .operations-metric{
  position:relative;
  overflow:hidden;
  min-height:88px;
  padding:16px;
  border-color:#dce5ed;
  box-shadow:0 9px 25px rgba(23,54,93,.07);
  transition:
    transform .18s ease,
    box-shadow .18s ease,
    border-color .18s ease;
}

#dashboard .operations-metric::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:3px;
  background:#2c5c88;
}

#dashboard .operations-metric.red::before{
  background:#c84a4a;
}

#dashboard .operations-metric.blue::before{
  background:#3791bd;
}

#dashboard .operations-metric.amber::before{
  background:#d6a438;
}

#dashboard .operations-metric.green::before{
  background:#4caa70;
}

#dashboard .operations-metric.purple::before{
  background:#7a61bd;
}

#dashboard .operations-metric:hover{
  transform:translateY(-2px);
  border-color:#c6d5e1;
  box-shadow:0 14px 31px rgba(23,54,93,.11);
}

#dashboard .operations-metric strong{
  font-size:27px;
}

.operations-command-grid{
  display:grid;
  grid-template-columns:
    minmax(0,1.55fr)
    minmax(340px,.75fr);
  gap:16px;
  align-items:stretch;
  margin-bottom:16px;
}

.operations-side-stack{
  min-width:0;
  display:grid;
  grid-template-rows:repeat(2,minmax(0,1fr));
  gap:16px;
}

#dashboard .operations-panel{
  position:relative;
  overflow:hidden;
  padding:19px;
  border-color:#dce5ed;
  border-radius:19px;
  box-shadow:var(--operations-panel-shadow);
}

#dashboard .operations-panel::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:3px;
  background:linear-gradient(90deg,#2e628e,#68a8c0);
  opacity:.78;
}

#dashboard .operations-panel-priority{
  min-height:390px;
  display:flex;
  flex-direction:column;
}

#dashboard .operations-panel-priority
.operations-ticket-list{
  flex:1;
  display:flex;
  flex-direction:column;
}

#dashboard .operations-panel-priority
.operations-empty{
  flex:1;
  min-height:270px;
}

#dashboard .operations-panel-compact{
  min-height:187px;
}

#dashboard .operations-panel-compact
.operations-empty{
  min-height:116px;
}

#dashboard .operations-panel-head{
  margin-bottom:14px;
}

#dashboard .operations-panel-head h3{
  font-size:17px;
}

#dashboard .operations-link{
  padding:6px 8px;
  border-radius:8px;
  transition:.18s ease;
}

#dashboard .operations-link:hover{
  background:#edf4f9;
}

#dashboard .operations-panel-assets{
  margin-bottom:20px;
}

#dashboard .operations-asset-grid{
  grid-template-columns:
    repeat(4,minmax(0,1fr));
  gap:10px;
}

#dashboard .operations-asset-card{
  min-height:108px;
  padding:13px;
  border-radius:13px;
  transition:
    transform .18s ease,
    border-color .18s ease,
    box-shadow .18s ease;
}

#dashboard .operations-asset-card:hover{
  transform:translateY(-2px);
  border-color:#b9ccdb;
  box-shadow:0 9px 20px rgba(23,54,93,.09);
}

#dashboard .operations-ticket-card,
#dashboard .operations-list-item{
  transition:
    transform .16s ease,
    border-color .16s ease,
    box-shadow .16s ease;
}

#dashboard .operations-ticket-card:hover,
#dashboard .operations-list-item:hover{
  transform:translateY(-1px);
  border-color:#bed0dd;
  box-shadow:0 7px 16px rgba(23,54,93,.07);
}

/* Navegación superior más compacta en computadora,
   conservando el desplazamiento horizontal. */
@media(min-width:1200px){
  .nav{
    gap:3px;
    padding:7px;
    scrollbar-width:none;
  }

  .nav::-webkit-scrollbar{
    display:none;
  }

  .nav button{
    padding:
      10px
      clamp(9px,.72vw,13px);
    font-size:
      clamp(11px,.73vw,13px);
  }
}

@media(max-width:1380px){
  #dashboard .operations-hero{
    grid-template-columns:
      minmax(300px,.82fr)
      minmax(520px,1.18fr);
    gap:22px;
    padding:26px;
  }

  #dashboard .operations-metrics{
    grid-template-columns:
      repeat(3,minmax(0,1fr));
  }

  #dashboard .operations-asset-grid{
    grid-template-columns:
      repeat(3,minmax(0,1fr));
  }
}

@media(max-width:1100px){
  #dashboard .operations-hero{
    grid-template-columns:1fr;
    min-height:0;
  }

  #dashboard .operations-quick-actions{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  #dashboard .operations-action-main{
    grid-column:1/-1;
  }

  .operations-command-grid{
    grid-template-columns:1fr;
  }

  .operations-side-stack{
    grid-template-columns:
      repeat(2,minmax(0,1fr));
    grid-template-rows:none;
  }

  #dashboard .operations-panel-priority{
    min-height:300px;
  }
}

@media(max-width:800px){
  #dashboard .operations-hero{
    padding:20px;
    border-radius:18px;
  }

  #dashboard .operations-hero h2{
    font-size:25px;
  }

  .operations-hero-summary{
    width:100%;
  }

  #dashboard .operations-metrics{
    grid-template-columns:
      repeat(2,minmax(0,1fr));
  }

  .operations-side-stack{
    grid-template-columns:1fr;
  }

  #dashboard .operations-asset-grid{
    grid-template-columns:
      repeat(2,minmax(0,1fr));
  }

  #dashboard .operations-panel-priority{
    min-height:0;
  }

  #dashboard .operations-panel-priority
  .operations-empty{
    min-height:150px;
  }
}

@media(max-width:560px){
  #dashboard .operations-quick-actions{
    grid-template-columns:1fr;
  }

  #dashboard .operations-action-main{
    grid-column:auto;
  }

  .operations-hero-summary{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:5px;
  }

  .operations-hero-summary>span{
    padding:9px 7px;
  }

  .operations-hero-summary small{
    font-size:7px;
  }

  .operations-hero-summary b{
    font-size:17px;
  }

  .operations-hero-pulse{
    align-items:flex-start;
    flex-wrap:wrap;
  }

  #dashboard .operations-metrics,
  #dashboard .operations-asset-grid{
    grid-template-columns:1fr;
  }

  #dashboard .operations-panel{
    padding:15px;
    border-radius:15px;
  }
}


/* =========================================================
   3.8.5 - NAVEGACION SUPERIOR INTELIGENTE
   ========================================================= */

.nav-admin{
  position:relative;
  flex:0 0 auto;
  margin:0;
  padding:0;
}

.nav-admin>summary{
  min-height:38px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  padding:10px 12px;
  border:0;
  border-radius:10px;
  background:transparent;
  color:#496176;
  font-size:13px;
  font-weight:800;
  line-height:1;
  white-space:nowrap;
  cursor:pointer;
  list-style:none;
  transition:
    background .16s ease,
    color .16s ease,
    box-shadow .16s ease;
}

.nav-admin>summary::-webkit-details-marker{
  display:none;
}

.nav-admin>summary::marker{
  display:none;
  content:"";
}

.nav-admin>summary:hover,
.nav-admin[open]>summary{
  background:#edf3f8;
  color:#234f7c;
}

.nav-admin.active>summary{
  background:var(--blue);
  color:#fff;
}

.nav-admin-chevron{
  display:inline-block;
  font-size:14px;
  line-height:1;
  transition:transform .18s ease;
}

.nav-admin[open] .nav-admin-chevron{
  transform:rotate(180deg);
}

.nav-admin-menu{
  position:absolute;
  top:calc(100% + 9px);
  right:0;
  z-index:1200;
  width:270px;
  display:grid;
  gap:5px;
  padding:10px;
  border:1px solid #d9e4ed;
  border-radius:14px;
  background:#fff;
  box-shadow:
    0 18px 44px rgba(20,48,76,.2);
}

.nav-admin-menu::before{
  content:"";
  position:absolute;
  top:-6px;
  right:23px;
  width:11px;
  height:11px;
  border-top:1px solid #d9e4ed;
  border-left:1px solid #d9e4ed;
  background:#fff;
  transform:rotate(45deg);
}

.nav-admin-title{
  position:relative;
  z-index:1;
  padding:5px 8px 7px;
  color:#7c8fa1;
  font-size:8px;
  font-weight:900;
  letter-spacing:.08em;
}

.nav-admin-menu button{
  position:relative;
  z-index:1;
  width:100%;
  min-height:50px;
  display:grid;
  justify-content:start;
  gap:3px;
  padding:9px 11px!important;
  border:1px solid transparent!important;
  border-radius:10px!important;
  text-align:left;
}

.nav-admin-menu button:hover{
  border-color:#d9e5ee!important;
  background:#f4f8fb!important;
}

.nav-admin-menu button.active{
  border-color:#bdd1e0!important;
  background:#e8f1f8!important;
  color:#244f79!important;
}

.nav-admin-menu button span{
  color:inherit;
  font-size:11px;
  font-weight:850;
}

.nav-admin-menu button small{
  color:#7a8c9d;
  font-size:8px;
  font-weight:650;
  white-space:normal;
}

@media(min-width:1100px){
  .nav{
    overflow:visible!important;
  }

  .nav button,
  .nav-admin>summary{
    padding:
      10px
      clamp(8px,.62vw,12px);
    font-size:
      clamp(10px,.69vw,13px);
  }
}

@media(min-width:1100px) and (max-width:1450px){
  .nav{
    gap:2px!important;
  }

  .nav button,
  .nav-admin>summary{
    padding:9px 8px;
    font-size:10px;
  }
}

@media(max-width:1099px){
  .nav{
    overflow-x:auto;
    overflow-y:visible;
    flex-wrap:nowrap;
    scrollbar-width:thin;
  }

  .nav-admin-menu{
    position:fixed;
    top:auto;
    right:12px;
    bottom:12px;
    left:12px;
    width:auto;
    max-height:min(70vh,520px);
    overflow:auto;
  }

  .nav-admin-menu::before{
    display:none;
  }
}


/* =========================================================
   3.8.6 - POSICION ESTABLE EN ACTIVIDADES Y AVANCE
   ========================================================= */

.installation-task-quick-actions button.is-saving{
  position:relative;
  opacity:.62;
  cursor:wait;
  pointer-events:none;
}

.installation-task-quick-actions button.is-saving::after{
  content:"";
  display:inline-block;
  width:8px;
  height:8px;
  margin-left:5px;
  border:2px solid currentColor;
  border-right-color:transparent;
  border-radius:50%;
  vertical-align:-1px;
  animation:
    installationTaskSavingSpin
    .65s linear infinite;
}

.installation-task-card.installation-task-preserved{
  animation:
    installationTaskPreservedPulse
    1.45s ease;
}

@keyframes installationTaskSavingSpin{
  to{
    transform:rotate(360deg);
  }
}

@keyframes installationTaskPreservedPulse{
  0%,100%{
    box-shadow:
      0 4px 12px rgba(23,47,74,.05);
  }

  35%{
    border-color:#639bc0;
    box-shadow:
      0 0 0 4px rgba(63,130,174,.14),
      0 9px 22px rgba(23,47,74,.1);
  }
}


/* =========================================================
   3.8.7 - CIERRE, DECLINACION Y ELIMINACION SEGURA
   ========================================================= */

.installation-kpi.declined{border-top-color:#d59032}
.installation-kpi.cancelled{border-top-color:#c23d3d}
.installation-card.is-declined{border-left-color:#d59032}
.installation-card.is-cancelled{border-left-color:#c23d3d}
.installation-group-tabs{grid-template-columns:repeat(5,minmax(0,1fr))}

.installation-project-actions{position:relative}
.installation-project-actions>summary{list-style:none;cursor:pointer}
.installation-project-actions>summary::-webkit-details-marker{display:none}
.installation-project-actions>div{position:absolute;right:0;top:calc(100% + 8px);z-index:80;width:310px;display:grid;gap:6px;padding:9px;border:1px solid #d7e2eb;border-radius:13px;background:#fff;box-shadow:0 16px 38px rgba(20,48,76,.2)}
.installation-project-actions>div button{display:grid;gap:3px;padding:10px 11px;border:1px solid #e1e9ef;border-radius:9px;background:#f8fbfd;text-align:left;cursor:pointer}
.installation-project-actions>div button:hover{border-color:#b8cedd;background:#edf5fa}
.installation-project-actions>div button.warning{border-color:#edd7a5;background:#fff9e9}
.installation-project-actions>div button.danger{border-color:#edc0c0;background:#fff1f1;color:#922}
.installation-project-actions>div button b{font-size:11px}.installation-project-actions>div button small{font-size:8px;color:#6f8191}

.installation-lock-banner.administrative.declined{border-color:#e9c981;background:#fff9ea}.installation-lock-banner.administrative.declined span,.installation-lock-banner.administrative.declined b{color:#77520d}
.installation-lock-banner.administrative.cancelled{border-color:#e9b5b5;background:#fff1f1}.installation-lock-banner.administrative.cancelled span,.installation-lock-banner.administrative.cancelled b{color:#8f2727}

.installation-administrative-closure{margin:12px 0;padding:15px;border:1px solid #dce5ed;border-left:5px solid #d59032;border-radius:15px;background:#fff}
.installation-administrative-closure.cancelled{border-left-color:#c23d3d}
.installation-administrative-closure header{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;padding-bottom:11px;border-bottom:1px solid #e6edf2}
.installation-administrative-closure header span{font-size:8px;font-weight:900;letter-spacing:.08em;color:#718293}.installation-administrative-closure header h4{margin:3px 0 0;font-size:17px;color:#203c5a}.installation-administrative-closure header>b{max-width:48%;padding:6px 9px;border-radius:999px;background:#f3f6f8;font-size:9px;color:#52677b;text-align:right}
.installation-administrative-closure-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:11px}.installation-administrative-closure-grid>span{display:grid;gap:4px;padding:10px;border-radius:10px;background:#f5f8fa}.installation-administrative-closure-grid>span.wide{grid-column:1/-1}.installation-administrative-closure-grid small{font-size:8px;font-weight:900;color:#76899a;text-transform:uppercase}.installation-administrative-closure-grid b{font-size:10px;line-height:1.45;color:#27425d}.installation-administrative-closure-grid .client{background:#eef8f1}.installation-administrative-closure-grid .internal{background:#fff8e8}

.installation-administrative-close-form,.installation-delete-project-form{display:grid;gap:14px}
.installation-administrative-close-intro,.installation-delete-project-warning{padding:16px;border-radius:14px;background:linear-gradient(135deg,#244b72,#39738a);color:#fff}.installation-administrative-close-intro.cancelled{background:linear-gradient(135deg,#7b2a2a,#b34949)}.installation-administrative-close-intro span,.installation-delete-project-warning span{font-size:8px;font-weight:900;letter-spacing:.08em}.installation-administrative-close-intro h4,.installation-delete-project-warning h4{margin:5px 0;font-size:19px}.installation-administrative-close-intro p,.installation-delete-project-warning p{margin:0;font-size:10px;line-height:1.45}.installation-administrative-close-intro>b{display:inline-block;margin-top:8px;padding:5px 8px;border-radius:8px;background:rgba(255,255,255,.12);font-size:10px}
.installation-administrative-close-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.installation-administrative-close-grid label,.installation-delete-project-form label{display:grid;gap:6px;font-size:10px;font-weight:850;color:#42586d}.installation-administrative-close-grid .wide{grid-column:1/-1}.installation-administrative-close-grid input,.installation-administrative-close-grid select,.installation-administrative-close-grid textarea,.installation-delete-project-form input,.installation-delete-project-form textarea{width:100%;min-height:42px}.installation-administrative-close-grid textarea{min-height:88px}.installation-administrative-material-warning{padding:12px;border:1px solid #e8c46d;border-radius:12px;background:#fff8e5}.installation-administrative-material-warning b{color:#7a5510}.installation-administrative-material-warning p,.installation-administrative-material-warning li,.installation-administrative-material-warning label{font-size:9px;line-height:1.45}.installation-administrative-close-actions{display:flex;justify-content:flex-end;gap:8px}.installation-delete-project-warning{background:linear-gradient(135deg,#6d2020,#a83c3c)}
.installation-report-option.closure{border-color:#e4c97a;background:#fffaf0}

@media(max-width:1050px){.installation-group-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.installation-group-tabs{grid-template-columns:1fr 1fr}.installation-project-actions>div{position:fixed;right:10px;left:10px;bottom:10px;top:auto;width:auto}.installation-administrative-closure-grid,.installation-administrative-close-grid{grid-template-columns:1fr}.installation-administrative-close-grid .wide,.installation-administrative-closure-grid>span.wide{grid-column:auto}.installation-administrative-close-actions{display:grid;grid-template-columns:1fr 1fr}.installation-administrative-closure header{display:grid}.installation-administrative-closure header>b{max-width:none;text-align:left}}


/* =========================================================
   3.9.0 - PORTAL DE TÉCNICOS EXTERNOS
   ========================================================= */

body.field-portal-user .topbar .company-switcher-box{
  max-width:420px;
}

.field-portal-page{
  --field-navy:#173b63;
  --field-blue:#2f648c;
  --field-teal:#3f8d88;
}

.field-portal-hero{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:27px 30px;
  border-radius:22px;
  color:#fff;
  background:linear-gradient(130deg,var(--field-navy),#315f7c 60%,#3d817f);
  box-shadow:0 16px 36px rgba(21,52,81,.16);
}

.field-portal-hero h2{margin:5px 0 4px;font-size:30px}
.field-portal-hero p{margin:0;color:#d6e5ef}
.field-portal-hero-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.field-portal-hero-actions>span{display:flex;align-items:center;gap:7px;color:#d8e9ef;font-size:10px;font-weight:800}
.field-portal-hero-actions i,.field-live-dot{width:8px;height:8px;border-radius:50%;background:#62dc88;box-shadow:0 0 0 5px rgba(98,220,136,.14)}

.field-portal-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:15px 0}
.field-portal-kpis article{display:grid;gap:4px;padding:15px 16px;border:1px solid #dce6ee;border-radius:15px;background:#fff;box-shadow:0 8px 21px rgba(21,52,81,.06)}
.field-portal-kpis small{color:#718497;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}
.field-portal-kpis b{color:#244a70;font-size:25px}
.field-portal-kpis span{color:#7c8d9d;font-size:9px}

.field-portal-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:end;margin-bottom:14px;padding:13px 15px;border:1px solid #dce6ee;border-radius:15px;background:#fff}
.field-portal-toolbar label{display:grid;gap:6px;color:#51677b;font-size:9px;font-weight:850}
.field-portal-toolbar input{min-height:42px}
.field-portal-toolbar>div{display:grid;text-align:right;color:#345674}
.field-portal-toolbar small{color:#8192a2;font-size:8px}

.field-portal-projects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding-bottom:30px}
.field-project-card{width:100%;display:grid;gap:13px;padding:18px;border:1px solid #d8e3ec;border-left:5px solid #447cac;border-radius:17px;background:#fff;text-align:left;box-shadow:0 9px 25px rgba(20,49,77,.07);transition:.18s ease}
.field-project-card:hover{transform:translateY(-2px);border-color:#b7ccdc;box-shadow:0 14px 30px rgba(20,49,77,.11)}
.field-project-card.journey-active{border-left-color:#35a86c}
.field-project-card header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.field-project-card header>div{min-width:0}
.field-project-card header span:first-child{color:#52728d;font-size:9px;font-weight:900}
.field-project-card h3{margin:4px 0;font-size:17px;color:#1d4064}
.field-project-card p{margin:0;color:#6e8293;font-size:10px}
.field-project-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.field-project-meta span{display:grid;gap:3px;padding:9px;border-radius:10px;background:#f3f7fa}
.field-project-meta small{color:#7b8d9d;font-size:7px;font-weight:900;text-transform:uppercase}
.field-project-meta b{overflow:hidden;color:#33536f;font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.field-project-progress>span{display:flex;justify-content:space-between;color:#516b82;font-size:9px}
.field-project-progress>div{height:8px;margin-top:5px;border-radius:999px;background:#e6eef4;overflow:hidden}
.field-project-progress i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#3c78a5,#4b9a8c)}
.field-project-card footer{display:flex;align-items:center;gap:9px;color:#287e53;font-size:9px;font-weight:900}

.field-portal-empty{min-height:150px;display:grid;place-content:center;justify-items:center;gap:6px;padding:20px;border:1px dashed #cad8e3;border-radius:14px;color:#62778a;text-align:center}
.field-portal-empty span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#e7f5eb;color:#2c8a54;font-weight:900}
.field-portal-empty small{color:#8494a2}

.modal-card:has(.field-project-detail){width:min(1460px,calc(100vw - 24px));max-height:calc(100dvh - 18px)}
.field-project-detail{display:grid;gap:14px;padding-bottom:12px}
.field-project-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px;border-radius:17px;background:linear-gradient(130deg,#173b63,#39727d);color:#fff}
.field-project-hero h2{margin:4px 0;font-size:25px}
.field-project-hero p{margin:0 0 8px;color:#d5e5ed}
.field-project-hero-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.field-project-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.field-project-summary span{display:grid;gap:3px;padding:12px;border:1px solid #d9e4ec;border-radius:12px;background:#fff}
.field-project-summary small{color:#7a8d9e;font-size:8px;font-weight:900;text-transform:uppercase}
.field-project-summary b{color:#244a6d;font-size:11px}
.field-instructions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.field-instructions>div{padding:14px;border:1px solid #d8e3eb;border-radius:13px;background:#f8fafc}
.field-instructions span{color:#58718a;font-size:8px;font-weight:900;letter-spacing:.05em}
.field-instructions p{margin:6px 0 0;color:#334f69;font-size:11px;line-height:1.55}
.field-project-nav{position:sticky;top:-14px;z-index:10;display:flex;gap:6px;padding:8px;border:1px solid #d8e4ed;border-radius:13px;background:rgba(255,255,255,.96);box-shadow:0 7px 20px rgba(22,52,80,.08);overflow:auto}
.field-project-nav button{display:flex;align-items:center;gap:6px;padding:9px 12px;border:0;border-radius:9px;background:#eef4f8;color:#315674;font-size:9px;font-weight:850;white-space:nowrap}
.field-project-nav b{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:8px;background:#dce9f2}
.field-project-section{scroll-margin-top:70px;display:grid;gap:12px;padding:16px;border:1px solid #d9e4ec;border-radius:16px;background:#fff}
.field-project-section>header{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid #e4ebf0;padding-bottom:10px}
.field-project-section>header span{color:#738699;font-size:8px;font-weight:900;letter-spacing:.06em}
.field-project-section h3{margin:3px 0 0;color:#214769;font-size:17px}
.field-project-section>header small{display:grid;place-items:center;min-width:34px;height:34px;border-radius:11px;background:#eaf1f6;color:#315674;font-weight:900}
.field-task-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.field-task-card{display:grid;gap:9px;padding:13px;border:1px solid #dbe5ed;border-radius:14px;background:#fbfcfd}
.field-task-card header{display:flex;justify-content:space-between;color:#6c8295;font-size:8px;font-weight:900}
.field-task-card h4{margin:0;color:#274a69;font-size:13px}
.field-task-card p{min-height:42px;margin:0;color:#5d7183;font-size:9px;line-height:1.45}
.field-task-meta{display:flex;justify-content:space-between;gap:7px;color:#708395;font-size:8px}
.field-task-progress>span{display:flex;justify-content:space-between;color:#557187;font-size:8px}
.field-task-progress>div{height:7px;margin-top:4px;border-radius:999px;background:#e5edf3;overflow:hidden}
.field-task-progress i{display:block;height:100%;background:#4a8d89}
.field-task-actions{display:flex;gap:5px;flex-wrap:wrap}
.field-task-actions button{padding:7px 8px;border:1px solid #cbd9e4;border-radius:8px;background:#f2f6f9;color:#315875;font-size:8px;font-weight:900}
.field-task-actions button.active{background:#315d89;color:#fff}.field-task-actions .complete{background:#e7f5eb;color:#26784b}.field-task-actions .blocked{background:#fff1da;color:#8b6416}
.field-simple-form,.field-equipment-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:11px;border-radius:12px;background:#f3f7fa}
.field-simple-form .wide,.field-equipment-form .wide{grid-column:1/-1}.field-simple-form input,.field-simple-form select,.field-simple-form textarea,.field-equipment-form input,.field-equipment-form select,.field-equipment-form textarea{min-width:0;min-height:42px;font-size:12px}.field-simple-form textarea,.field-equipment-form textarea{min-height:70px}
.field-material-list,.field-equipment-list,.field-log-list{display:grid;gap:8px}
.field-material-list article,.field-equipment-list article{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px;border:1px solid #dce5ec;border-radius:11px}
.field-material-list article>div:first-child,.field-equipment-list article>div:first-child{display:grid;gap:3px}.field-material-list b,.field-equipment-list b{color:#294d6d}.field-material-list span,.field-equipment-list span,.field-material-list small,.field-equipment-list small{color:#718496;font-size:8px}.field-material-list article>div:last-child{display:flex;align-items:center;gap:6px}
.field-log-form{display:grid;gap:8px;padding:12px;border-radius:12px;background:#f3f7fa}.field-log-form>div{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.field-log-form>div:nth-of-type(2){grid-template-columns:1fr 1fr}.field-log-form label{display:grid;gap:5px;color:#516b80;font-size:8px;font-weight:850}.field-log-form textarea{min-height:90px}
.field-log-list article{display:grid;gap:6px;padding:12px;border-left:4px solid #4c88a7;border-radius:11px;background:#f8fafb}.field-log-list header{display:flex;justify-content:space-between;color:#6f8294;font-size:8px}.field-log-list p{margin:0;color:#334f68;font-size:10px;line-height:1.45}.field-log-list small{color:#806719}.field-log-list small.problem{color:#a13e3e}
.field-evidence-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.field-evidence-grid figure{margin:0;overflow:hidden;border:1px solid #d8e4ec;border-radius:12px;background:#fff}.field-evidence-grid img{width:100%;aspect-ratio:4/3;object-fit:cover}.field-evidence-grid figcaption{display:grid;gap:2px;padding:9px;color:#607589;font-size:8px}.field-evidence-grid b{color:#2b4e6c}
.field-scan-input{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px}.field-scan-input button{border:1px solid #c6d7e3;border-radius:8px;background:#e9f2f8;color:#2e5f85;font-size:8px;font-weight:900}

.installation-external-control{border-top:4px solid #6a63ad}.installation-external-scope{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}.installation-external-scope>div{padding:12px;border:1px solid #dddfea;border-radius:12px;background:#f8f8fc}.installation-external-scope small{color:#6c6994;font-size:8px;font-weight:900}.installation-external-scope p{margin:5px 0 0;color:#4d5571;font-size:10px;line-height:1.45}.installation-external-access-list{display:grid;gap:8px;margin-top:10px}.installation-external-access-list article{display:flex;justify-content:space-between;gap:10px;padding:11px;border:1px solid #dde3ea;border-radius:11px}.installation-external-access-list article>div{display:grid;gap:3px}.installation-external-access-list b{color:#334e6b}.installation-external-access-list span,.installation-external-access-list small{color:#748697;font-size:8px}
.installation-field-access-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.installation-field-access-grid .wide{grid-column:1/-1}.installation-field-access-grid label{display:grid;gap:5px}.installation-field-access-grid textarea{min-height:95px}.installation-field-access-capabilities{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.installation-field-access-capabilities label{display:flex!important;align-items:center;gap:7px;padding:9px;border:1px solid #dce4eb;border-radius:9px;background:#f7f9fb}
.installation-field-material-admin{display:grid;gap:8px;margin:10px 0;padding:12px;border:1px solid #e1d9bd;border-radius:13px;background:#fffaf0}.installation-field-material-admin>header{display:flex;justify-content:space-between}.installation-field-material-admin>header span{color:#8a6d20;font-size:8px;font-weight:900}.installation-field-material-admin>header b{display:block;color:#645020}.installation-field-material-admin>div{display:grid;gap:6px}.installation-field-material-admin article{display:flex;justify-content:space-between;gap:10px;padding:9px;border-radius:9px;background:#fff}.installation-field-material-admin article>div:first-child{display:grid;gap:2px}.installation-field-material-admin span,.installation-field-material-admin small{color:#7e7359;font-size:8px}.installation-field-material-status{display:flex;align-items:center;gap:6px}
.installation-equipment.external-origin{border-left:4px solid #7167ad}

@media(max-width:1050px){.field-portal-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.field-task-list{grid-template-columns:repeat(2,minmax(0,1fr))}.field-evidence-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){.field-portal-hero{align-items:flex-start;flex-direction:column;padding:20px}.field-portal-hero h2{font-size:25px}.field-portal-hero-actions{width:100%;justify-content:space-between}.field-portal-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.field-portal-toolbar{grid-template-columns:1fr}.field-portal-toolbar>div{text-align:left}.field-portal-projects{grid-template-columns:1fr}.field-project-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.modal-card:has(.field-project-detail){width:100vw;height:100dvh;max-height:100dvh;margin:0;border-radius:0}.field-project-hero{align-items:flex-start;flex-direction:column;padding:15px}.field-project-hero-actions{width:100%}.field-project-hero-actions .btn{flex:1}.field-project-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.field-instructions{grid-template-columns:1fr}.field-project-nav{top:-10px}.field-task-list{grid-template-columns:1fr}.field-simple-form,.field-equipment-form{grid-template-columns:1fr}.field-simple-form .wide,.field-equipment-form .wide{grid-column:auto}.field-log-form>div,.field-log-form>div:nth-of-type(2){grid-template-columns:1fr 1fr}.field-evidence-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.installation-external-scope{grid-template-columns:1fr}.installation-field-access-grid{grid-template-columns:1fr}.installation-field-access-grid .wide{grid-column:auto}.installation-field-access-capabilities{grid-template-columns:1fr!important}.installation-external-access-list article,.installation-field-material-admin article{align-items:flex-start;flex-direction:column}.field-material-list article,.field-equipment-list article{align-items:flex-start;flex-direction:column}.field-material-list article>div:last-child{width:100%;justify-content:space-between}}
@media(max-width:420px){.field-portal-kpis{grid-template-columns:1fr}.field-project-summary{grid-template-columns:1fr}.field-log-form>div,.field-log-form>div:nth-of-type(2){grid-template-columns:1fr}.field-evidence-grid{grid-template-columns:1fr}}

/* 3.9.0 - ajustes finales del portal externo */
.field-personal-instruction{
  grid-column:1/-1;
  border-color:#d9cfef!important;
  background:#faf8ff!important;
}
.field-personal-instruction span{color:#6c56a2!important}
@media(max-width:720px){
  .modal-card.modal-field-project{
    width:100vw;
    height:100dvh;
    max-height:100dvh;
    margin:0;
    border-radius:0;
  }
}


/* =========================================================
   3.9.1 - CARGA CORRECTA DE PROYECTOS EN PORTAL DE CAMPO
   ========================================================= */

.field-portal-load-error{
  min-height:190px;
  border-color:#efc7c7!important;
  background:#fff8f8!important;
}

.field-portal-load-error>span{
  background:#fde2e2!important;
  color:#b72f2f!important;
}

.field-portal-load-error>small{
  max-width:620px;
  color:#765151!important;
}

.field-portal-load-error>.btn{
  width:auto;
  min-width:130px;
  margin-top:7px;
}


/* =========================================================
   3.9.2 - GPS Y CAMARAS POR LOTE EN PORTAL DE CAMPO
   ========================================================= */
.field-gps-overview{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0;padding:12px;border:1px solid #dce6ee;border-radius:14px;background:#f7fafc}.field-gps-overview>div{display:grid;gap:4px;padding:11px;border-radius:11px;background:#fff}.field-gps-overview span{font-size:8px;font-weight:900;letter-spacing:.06em;color:#73879a}.field-gps-overview b{font-size:12px;color:#294967}.field-gps-overview p{margin:0}.field-gps-link{display:inline-flex;align-items:center;width:max-content;margin-top:5px;color:#2c6595;font-size:10px;font-weight:850;text-decoration:none}.field-gps-link:hover{text-decoration:underline}.field-gps-capture{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;border:1px dashed #bfcfdb;border-radius:12px;background:#f6fafc}.field-gps-capture-status{display:grid;gap:2px}.field-gps-capture-status b{font-size:11px;color:#405a70}.field-gps-capture-status span{font-size:9px;color:#75899a}.field-gps-capture-status.ready b{color:#247149}.field-equipment-entry{margin-bottom:13px;padding:12px;border:1px solid #d9e4ec;border-radius:14px;background:#f8fbfd}.field-equipment-entry-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.field-equipment-entry-head>div{display:grid;gap:3px}.field-equipment-entry-head b{font-size:14px}.field-equipment-entry-head span{font-size:9px;color:#6e8294}.field-equipment-entry details{margin-top:9px}.field-equipment-entry summary{font-size:10px;font-weight:850;color:#315b80;cursor:pointer}.field-equipment-collection{display:grid;gap:12px}.field-equipment-list{display:grid;gap:8px}.field-equipment-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:12px;border:1px solid #dce5ed;border-radius:12px;background:#fff}.field-equipment-card.serial-pending{border-left:4px solid #d4a238}.field-equipment-card header{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.field-equipment-card header b{font-size:12px}.field-equipment-card header span{font-size:8px;color:#718597}.field-equipment-card p{margin:5px 0;font-size:9px;color:#536b7f}.field-equipment-card small{display:block;color:#75889a;font-size:8px}.field-equipment-card aside{display:flex;align-items:flex-end;justify-content:center;flex-direction:column;gap:7px}.field-camera-lot{padding:13px;border:1px solid #cddce7;border-left:4px solid #315f8c;border-radius:14px;background:#f8fbfd}.field-camera-lot>header{display:flex;justify-content:space-between;gap:12px}.field-camera-lot header span{font-size:8px;font-weight:900;color:#71869a}.field-camera-lot h4{margin:3px 0;font-size:15px}.field-camera-lot p{margin:0;color:#6f8395;font-size:9px}.field-camera-lot-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:10px 0}.field-camera-lot-metrics span{display:grid;gap:2px;padding:8px;border-radius:9px;background:#edf3f7;text-align:center}.field-camera-lot-metrics small{font-size:7px;color:#748799;text-transform:uppercase}.field-camera-lot-metrics b{font-size:13px}.field-camera-lot details{margin-top:9px}.field-camera-lot summary{font-size:9px;font-weight:850;cursor:pointer}.field-camera-series-finish{width:100%;margin-top:10px}
@media(max-width:700px){.field-gps-overview{grid-template-columns:1fr}.field-gps-capture{align-items:stretch;flex-direction:column}.field-gps-capture .btn{width:100%}.field-equipment-entry-head{align-items:stretch;flex-direction:column}.field-equipment-card{grid-template-columns:1fr}.field-equipment-card aside{align-items:stretch}.field-equipment-card aside .btn{width:100%}.field-camera-lot>header{flex-direction:column}.field-camera-lot>.btn{width:100%}.field-camera-lot-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}


/* =========================================================
   4.0.0 - CENTRO DE TRABAJO MULTIEMPRESA
   ========================================================= */

.workspace-nav{
  align-items:center;
  gap:5px;
  overflow:visible!important;
}

.nav-group{
  position:relative;
  flex:0 0 auto;
}

.nav-group>summary{
  min-height:40px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  padding:10px 13px;
  border-radius:10px;
  color:#405a72;
  font-size:12px;
  font-weight:850;
  list-style:none;
  white-space:nowrap;
  cursor:pointer;
  transition:.16s ease;
}

.nav-group>summary::-webkit-details-marker{
  display:none;
}

.nav-group>summary::marker{
  content:"";
}

.nav-group>summary:hover,
.nav-group[open]>summary{
  background:#edf3f8;
  color:#214e79;
}

.nav-group.active>summary{
  background:var(--blue);
  color:#fff;
}

.nav-group-chevron{
  display:inline-block;
  font-size:13px;
  transition:transform .17s ease;
}

.nav-group[open] .nav-group-chevron{
  transform:rotate(180deg);
}

.nav-group-menu{
  position:absolute;
  top:calc(100% + 9px);
  left:0;
  z-index:1250;
  width:290px;
  display:grid;
  gap:5px;
  padding:11px;
  border:1px solid #d8e3ec;
  border-radius:15px;
  background:#fff;
  box-shadow:0 20px 48px rgba(20,48,76,.21);
}

.nav-group:last-child .nav-group-menu,
.nav-admin .nav-group-menu{
  right:0;
  left:auto;
}

.nav-group-title{
  padding:5px 9px 7px;
  color:#7a8d9f;
  font-size:8px;
  font-weight:950;
  letter-spacing:.08em;
}

.nav-group-menu button{
  position:relative;
  width:100%;
  min-height:54px;
  display:grid;
  justify-content:start;
  gap:3px;
  padding:10px 12px!important;
  border:1px solid transparent!important;
  border-radius:11px!important;
  text-align:left;
}

.nav-group-menu button:hover{
  border-color:#d7e4ed!important;
  background:#f3f8fb!important;
}

.nav-group-menu button.active{
  border-color:#b9d0df!important;
  background:#e7f1f8!important;
  color:#214f79!important;
}

.nav-group-menu button b{
  color:inherit;
  font-size:11px;
}

.nav-group-menu button small{
  color:#7a8c9d;
  font-size:8px;
  white-space:normal;
}

.nav-group-menu .nav-live-count{
  position:absolute;
  top:9px;
  right:10px;
}

.workspace-hero{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);
  gap:24px;
  margin-bottom:17px;
  padding:30px 32px;
  border-radius:24px;
  background:
    radial-gradient(
      circle at 92% 110%,
      rgba(255,255,255,.11) 0 17%,
      transparent 17.2%
    ),
    linear-gradient(125deg,#203d68,#347080);
  color:#fff;
  box-shadow:0 18px 42px rgba(28,58,89,.14);
}

.workspace-hero-copy{
  min-width:0;
}

.workspace-eyebrow{
  color:#a9c4d9;
  font-size:9px;
  font-weight:950;
  letter-spacing:.13em;
}

.workspace-hero h2{
  margin:10px 0 4px;
  color:#fff;
  font-size:32px;
  line-height:1.1;
}

.workspace-hero-copy>p{
  color:#d4e2ec;
  font-size:12px;
  text-transform:capitalize;
}

.workspace-context{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin-top:23px;
}

.workspace-context>span{
  min-width:190px;
  display:grid;
  gap:3px;
  padding:10px 13px;
  border:1px solid rgba(255,255,255,.17);
  border-radius:12px;
  background:rgba(255,255,255,.08);
}

.workspace-context small{
  color:#b8d0e0;
  font-size:7px;
  font-weight:950;
  letter-spacing:.08em;
}

.workspace-context b{
  overflow:hidden;
  color:#fff;
  font-size:12px;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.workspace-hero-command{
  display:grid;
  align-content:center;
  gap:14px;
}

.workspace-hero-kpis{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:9px;
}

.workspace-hero-kpis>span{
  display:grid;
  gap:4px;
  padding:16px;
  border:1px solid rgba(255,255,255,.19);
  border-radius:14px;
  background:rgba(255,255,255,.1);
  backdrop-filter:blur(8px);
}

.workspace-hero-kpis small{
  color:#c4d9e7;
  font-size:8px;
  font-weight:900;
  text-transform:uppercase;
}

.workspace-hero-kpis b{
  color:#fff;
  font-size:26px;
  line-height:1;
}

.workspace-hero-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.workspace-sync{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:2px 7px;
  color:#d8e7ef;
}

.workspace-sync i{
  grid-row:1/3;
  align-self:center;
  width:8px;
  height:8px;
  border-radius:50%;
  background:#72dc95;
  box-shadow:0 0 0 5px rgba(114,220,149,.14);
}

.workspace-sync b{
  font-size:9px;
}

.workspace-sync small{
  color:#afc9d8;
  font-size:8px;
}

.workspace-launcher,
.workspace-panel{
  margin-bottom:17px;
  padding:20px;
  border:1px solid #dbe5ed;
  border-radius:19px;
  background:#fff;
  box-shadow:0 11px 30px rgba(26,57,88,.075);
}

.workspace-section-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  margin-bottom:15px;
}

.workspace-section-head>div{
  min-width:0;
}

.workspace-section-head span{
  display:block;
  margin-bottom:4px;
  color:#7c8fa2;
  font-size:8px;
  font-weight:950;
  letter-spacing:.1em;
}

.workspace-section-head h3{
  margin:0;
  color:#213d61;
  font-size:18px;
}

.workspace-section-head p{
  margin-top:4px;
  color:#73869a;
  font-size:10px;
}

.workspace-section-head>b{
  flex:0 0 auto;
  padding:7px 10px;
  border-radius:9px;
  background:#edf3f8;
  color:#355a7c;
  font-size:10px;
}

.workspace-module-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:11px;
}

.workspace-module-group{
  min-width:0;
  overflow:hidden;
  border:1px solid #dae5ed;
  border-radius:14px;
  background:#f8fafc;
}

.workspace-module-group>header{
  display:flex;
  align-items:center;
  gap:10px;
  padding:13px 14px;
  border-bottom:1px solid #e1e9ef;
}

.workspace-module-group>header>span{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  flex:0 0 38px;
  border-radius:11px;
  background:#e5eef6;
  color:#315f8a;
  font-size:18px;
  font-weight:950;
}

.workspace-module-group.projects>header>span{
  background:#e9e5f7;
  color:#654ea4;
}

.workspace-module-group.assets>header>span{
  background:#e3f2e8;
  color:#39835b;
}

.workspace-module-group.management>header>span{
  background:#f6eadb;
  color:#9a682b;
}

.workspace-module-group>header div{
  min-width:0;
  display:grid;
  gap:2px;
}

.workspace-module-group>header b{
  color:#294866;
  font-size:11px;
}

.workspace-module-group>header small{
  color:#7b8d9e;
  font-size:8px;
}

.workspace-module-group>div{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  padding:11px;
}

.workspace-module-group button{
  flex:1 1 105px;
  min-height:34px;
  padding:7px 9px;
  border:1px solid #d6e2eb;
  border-radius:9px;
  background:#fff;
  color:#355674;
  font-size:9px;
  font-weight:850;
  cursor:pointer;
}

.workspace-module-group button:hover{
  border-color:#a9c3d6;
  background:#edf5fa;
}

.workspace-metrics{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:11px;
  margin-bottom:17px;
}

.workspace-metric{
  position:relative;
  overflow:hidden;
  min-width:0;
  min-height:96px;
  display:flex;
  align-items:center;
  gap:12px;
  padding:15px;
  border:1px solid #dce5ed;
  border-radius:15px;
  background:#fff;
  box-shadow:0 9px 24px rgba(26,57,88,.065);
}

.workspace-metric::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:3px;
  background:#315d88;
}

.workspace-metric.ticket::before{background:#447fb0}
.workspace-metric.project::before{background:#7458b0}
.workspace-metric.visit::before{background:#3698bd}
.workspace-metric.maintenance::before{background:#4d9d69}
.workspace-metric.alert::before{background:#ca4b4b}

.workspace-metric>span{
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  flex:0 0 40px;
  border-radius:12px;
  background:#edf3f8;
  color:#315d88;
  font-size:18px;
  font-weight:950;
}

.workspace-metric.alert>span{
  background:#fbe8e8;
  color:#bd3838;
}

.workspace-metric>div{
  min-width:0;
  display:grid;
}

.workspace-metric small{
  overflow:hidden;
  color:#74879a;
  font-size:7px;
  font-weight:950;
  letter-spacing:.05em;
  text-overflow:ellipsis;
  text-transform:uppercase;
  white-space:nowrap;
}

.workspace-metric b{
  color:#213d61;
  font-size:24px;
  line-height:1.1;
}

.workspace-metric p{
  overflow:hidden;
  color:#8191a1;
  font-size:7px;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.workspace-filters{
  display:grid;
  grid-template-columns:minmax(280px,1.7fr) repeat(3,minmax(155px,.55fr));
  gap:9px;
  margin-bottom:14px;
  padding:11px;
  border:1px solid #dce6ee;
  border-radius:13px;
  background:#f7f9fb;
}

.workspace-filters label{
  display:grid;
  gap:5px;
}

.workspace-filters label>span{
  color:#6f8397;
  font-size:8px;
  font-weight:900;
}

.workspace-filters input,
.workspace-filters select{
  width:100%;
  min-width:0;
  min-height:40px;
  padding:8px 10px;
  border:1px solid #cedce7;
  border-radius:9px;
  background:#fff;
  font-size:11px;
}

.workspace-work-list{
  display:grid;
  gap:7px;
}

.workspace-work-item{
  width:100%;
  min-width:0;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) minmax(150px,.34fr);
  align-items:center;
  gap:12px;
  padding:12px 13px;
  border:1px solid #dce5ed;
  border-radius:13px;
  background:#fff;
  text-align:left;
  cursor:pointer;
  transition:.16s ease;
}

.workspace-work-item:hover{
  transform:translateY(-1px);
  border-color:#b7ccdb;
  box-shadow:0 8px 20px rgba(26,57,88,.085);
}

.workspace-work-item.is-overdue{
  border-left:4px solid #c84444;
}

.workspace-work-icon{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:#e7f0f7;
  color:#315f8a;
  font-size:18px;
  font-weight:950;
}

.workspace-work-icon.is-project{
  background:#ece8f8;
  color:#6a51a8;
}

.workspace-work-icon.is-maintenance{
  background:#e5f3e9;
  color:#38825a;
}

.workspace-work-icon.is-visit{
  background:#e4f2f7;
  color:#3484a5;
}

.workspace-work-main{
  min-width:0;
  display:grid;
  gap:4px;
}

.workspace-work-labels{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:5px;
}

.workspace-work-labels b,
.workspace-work-labels i,
.workspace-work-labels em{
  padding:4px 7px;
  border-radius:999px;
  font-size:7px;
  font-style:normal;
  font-weight:900;
}

.workspace-work-labels b{
  background:#e7f0f7;
  color:#315f8a;
}

.workspace-work-labels i{
  background:#eff2f5;
  color:#607589;
}

.workspace-work-labels em{
  background:#fbe5e5;
  color:#b63737;
}

.workspace-work-main>strong{
  overflow:hidden;
  color:#244260;
  font-size:11px;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.workspace-work-main>small{
  overflow:hidden;
  color:#73869a;
  font-size:8px;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.workspace-item-progress{
  width:min(260px,100%);
  height:5px;
  overflow:hidden;
  border-radius:999px;
  background:#e5edf3;
}

.workspace-item-progress span{
  display:block;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,#3972a3,#4a9b88);
}

.workspace-work-side{
  min-width:0;
  display:grid;
  justify-items:end;
  gap:4px;
}

.workspace-status{
  padding:5px 8px;
  border-radius:999px;
  background:#eef2f5;
  color:#607386;
  font-size:7px;
  font-weight:900;
}

.workspace-status.is-danger{
  background:#fbe4e4;
  color:#b63535;
}

.workspace-status.is-active{
  background:#e3eef8;
  color:#2e6593;
}

.workspace-status.is-warning{
  background:#fbefd7;
  color:#94661c;
}

.workspace-status.is-success{
  background:#e2f2e6;
  color:#347a50;
}

.workspace-work-side small,
.workspace-work-side time{
  color:#788b9c;
  font-size:7px;
  font-style:normal;
}

.workspace-work-side>b{
  color:#315f89;
  font-size:14px;
}

.workspace-empty{
  min-height:170px;
  display:grid;
  place-items:center;
  align-content:center;
  gap:6px;
  padding:25px;
  border:1px dashed #cddbe6;
  border-radius:13px;
  background:#f9fbfc;
  text-align:center;
}

.workspace-empty>span{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#e5f3e9;
  color:#3b865d;
  font-size:18px;
  font-weight:950;
}

.workspace-empty>b{
  color:#2c4864;
  font-size:11px;
}

.workspace-empty>small{
  color:#7e8e9d;
  font-size:8px;
}

.workspace-empty.error>span{
  background:#fbe4e4;
  color:#b63535;
}

.workspace-company-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:9px;
}

.workspace-company-card{
  min-width:0;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  padding:12px;
  border:1px solid #dce5ed;
  border-radius:13px;
  background:#fff;
  text-align:left;
  cursor:pointer;
  transition:.16s ease;
}

.workspace-company-card:hover{
  transform:translateY(-1px);
  border-color:#aec6d7;
  box-shadow:0 8px 18px rgba(26,57,88,.08);
}

.workspace-company-card.is-active{
  border-color:#7ca5c3;
  background:#f1f7fb;
}

.workspace-company-brand{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:#294f79;
  color:#fff;
  font-size:11px;
  font-weight:950;
}

.workspace-company-main{
  min-width:0;
  display:grid;
  gap:3px;
}

.workspace-company-main b{
  overflow:hidden;
  color:#274460;
  font-size:11px;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.workspace-company-main small{
  color:#788b9c;
  font-size:8px;
}

.workspace-company-total{
  display:grid;
  justify-items:end;
}

.workspace-company-total b{
  color:#234563;
  font-size:20px;
  line-height:1;
}

.workspace-company-total small{
  color:#7c8e9e;
  font-size:7px;
}

.workspace-company-breakdown{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:5px;
  padding-top:9px;
  border-top:1px solid #e4ebf0;
}

.workspace-company-breakdown i{
  display:grid;
  gap:2px;
  color:#7a8c9d;
  font-size:7px;
  font-style:normal;
}

.workspace-company-breakdown b{
  color:#315a7e;
  font-size:10px;
}

@media(max-width:1450px){
  .workspace-module-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .workspace-metrics{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }

  .workspace-company-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:1120px){
  .workspace-hero{
    grid-template-columns:1fr;
  }

  .workspace-filters{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .workspace-filter-search{
    grid-column:1/-1;
  }

  .workspace-nav{
    overflow-x:auto!important;
    overflow-y:visible!important;
    flex-wrap:nowrap;
  }

  .nav-group-menu{
    position:fixed;
    top:auto;
    right:12px!important;
    bottom:12px;
    left:12px!important;
    width:auto;
    max-height:70vh;
    overflow:auto;
  }
}

@media(max-width:760px){
  .workspace-hero{
    padding:21px;
    border-radius:18px;
  }

  .workspace-hero h2{
    font-size:25px;
  }

  .workspace-hero-kpis{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }

  .workspace-hero-actions{
    align-items:stretch;
    flex-direction:column;
  }

  .workspace-module-grid,
  .workspace-metrics,
  .workspace-company-grid{
    grid-template-columns:1fr;
  }

  .workspace-launcher,
  .workspace-panel{
    padding:15px;
    border-radius:15px;
  }

  .workspace-filters{
    grid-template-columns:1fr;
  }

  .workspace-filter-search{
    grid-column:auto;
  }

  .workspace-work-item{
    grid-template-columns:auto minmax(0,1fr);
  }

  .workspace-work-side{
    grid-column:1/-1;
    grid-template-columns:auto 1fr auto;
    align-items:center;
    justify-items:start;
    padding-top:8px;
    border-top:1px solid #e5ebf0;
  }

  .workspace-work-side>b{
    justify-self:end;
  }
}

@media(max-width:460px){
  .workspace-context{
    display:grid;
    grid-template-columns:1fr;
  }

  .workspace-context>span{
    min-width:0;
  }

  .workspace-hero-kpis>span{
    padding:12px 9px;
  }

  .workspace-hero-kpis b{
    font-size:21px;
  }

  .workspace-module-group>div{
    display:grid;
    grid-template-columns:1fr 1fr;
  }

  .workspace-company-breakdown{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}


/* =========================================================
   4.0.1 - INICIO CLARO Y TICKETS PROFESIONALES
   ========================================================= */

.workspace-clear-hero{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(490px,.95fr);
  gap:26px;
  margin-bottom:15px;
  padding:27px 30px;
  border-radius:22px;
  background:
    radial-gradient(
      circle at 95% 115%,
      rgba(255,255,255,.11) 0 18%,
      transparent 18.2%
    ),
    linear-gradient(125deg,#203e68,#377481);
  color:#fff;
  box-shadow:0 16px 38px rgba(26,56,87,.13);
}

.workspace-clear-copy{
  min-width:0;
}

.workspace-clear-copy h2{
  margin:9px 0 4px;
  color:#fff;
  font-size:30px;
  line-height:1.08;
}

.workspace-clear-copy>p{
  color:#d1e1eb;
  font-size:11px;
  text-transform:capitalize;
}

.workspace-clear-context{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  margin-top:20px;
}

.workspace-clear-context>span{
  min-width:175px;
  display:grid;
  gap:2px;
  padding:9px 12px;
  border:1px solid rgba(255,255,255,.17);
  border-radius:11px;
  background:rgba(255,255,255,.075);
}

.workspace-clear-context small{
  color:#b7d0df;
  font-size:7px;
  font-weight:950;
  letter-spacing:.07em;
}

.workspace-clear-context b{
  overflow:hidden;
  color:#fff;
  font-size:10px;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.workspace-clear-context .workspace-sync{
  min-width:205px;
  display:flex;
  align-items:center;
  gap:9px;
}

.workspace-clear-context .workspace-sync>span{
  min-width:0;
  display:grid;
  gap:2px;
}

.workspace-clear-context .workspace-sync i{
  flex:0 0 8px;
}

.workspace-clear-overview{
  display:grid;
  grid-template-columns:1.15fr repeat(3,minmax(0,1fr));
  gap:8px;
  align-content:center;
}

.workspace-clear-overview>span{
  min-width:0;
  min-height:105px;
  display:grid;
  align-content:center;
  gap:4px;
  padding:14px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:14px;
  background:rgba(255,255,255,.09);
  backdrop-filter:blur(7px);
}

.workspace-clear-overview>span.primary{
  background:rgba(255,255,255,.16);
}

.workspace-clear-overview small{
  color:#c5d9e6;
  font-size:7px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.workspace-clear-overview b{
  color:#fff;
  font-size:29px;
  line-height:1;
}

.workspace-clear-overview p{
  overflow:hidden;
  color:#bfd3e0;
  font-size:7px;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.workspace-quick-strip{
  display:grid;
  grid-template-columns:minmax(185px,.7fr) repeat(5,minmax(125px,1fr));
  gap:8px;
  align-items:stretch;
  margin-bottom:15px;
  padding:10px;
  border:1px solid #dbe5ed;
  border-radius:15px;
  background:#fff;
  box-shadow:0 8px 22px rgba(26,57,88,.06);
}

.workspace-quick-strip>div{
  display:grid;
  align-content:center;
  gap:3px;
  padding:7px 10px;
}

.workspace-quick-strip>div span{
  color:#7b8fa2;
  font-size:7px;
  font-weight:950;
  letter-spacing:.08em;
}

.workspace-quick-strip>div b{
  color:#264462;
  font-size:12px;
}

.workspace-quick-strip>button{
  min-width:0;
  min-height:58px;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  grid-template-rows:auto auto;
  align-content:center;
  gap:2px 9px;
  padding:9px 11px;
  border:1px solid #dae5ed;
  border-radius:11px;
  background:#f8fafc;
  color:#355774;
  text-align:left;
  cursor:pointer;
  transition:.16s ease;
}

.workspace-quick-strip>button:hover{
  transform:translateY(-1px);
  border-color:#afc7d8;
  background:#eef5f9;
}

.workspace-quick-strip>button.primary{
  border-color:#315d88;
  background:#315d88;
  color:#fff;
}

.workspace-quick-strip>button>span{
  grid-row:1/3;
  align-self:center;
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  border-radius:9px;
  background:#e5eef6;
  color:#315d88;
  font-size:16px;
  font-weight:950;
}

.workspace-quick-strip>button.primary>span{
  background:rgba(255,255,255,.17);
  color:#fff;
}

.workspace-quick-strip>button b{
  color:inherit;
  font-size:9px;
}

.workspace-quick-strip>button small{
  overflow:hidden;
  color:#7a8d9e;
  font-size:7px;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.workspace-quick-strip>button.primary small{
  color:#ccdae5;
}

.workspace-clear-metrics{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:9px;
  margin-bottom:15px;
}

.workspace-clear-metrics article{
  min-width:0;
  min-height:72px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px 14px;
  border:1px solid #dce5ed;
  border-radius:13px;
  background:#fff;
  box-shadow:0 7px 19px rgba(26,57,88,.055);
}

.workspace-clear-metrics article>span{
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  flex:0 0 36px;
  border-radius:10px;
  background:#e8f0f7;
  color:#315f8a;
  font-size:16px;
  font-weight:950;
}

.workspace-clear-metrics article.project>span{
  background:#eee9f8;
  color:#6b52a8;
}

.workspace-clear-metrics article.visit>span{
  background:#e3f1f7;
  color:#3484a6;
}

.workspace-clear-metrics article.maintenance>span{
  background:#e3f2e7;
  color:#39825a;
}

.workspace-clear-metrics article.alert>span{
  background:#fbe6e6;
  color:#b93636;
}

.workspace-clear-metrics article>div{
  min-width:0;
  display:grid;
}

.workspace-clear-metrics small{
  overflow:hidden;
  color:#788b9d;
  font-size:7px;
  font-weight:950;
  letter-spacing:.04em;
  text-transform:uppercase;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.workspace-clear-metrics b{
  color:#244260;
  font-size:22px;
  line-height:1.1;
}

.workspace-clear-layout{
  display:grid;
  grid-template-columns:minmax(0,1.6fr) minmax(360px,.72fr);
  gap:15px;
  align-items:start;
}

.workspace-clear-side{
  min-width:0;
  display:grid;
  gap:15px;
}

.workspace-ticket-panel{
  min-width:0;
}

.workspace-ticket-filters{
  display:grid;
  grid-template-columns:minmax(260px,1.5fr) minmax(170px,.55fr) minmax(160px,.5fr);
  gap:8px;
  margin-bottom:13px;
  padding:10px;
  border:1px solid #dce6ee;
  border-radius:12px;
  background:#f7f9fb;
}

.workspace-ticket-filters label{
  display:grid;
  gap:4px;
}

.workspace-ticket-filters label>span{
  color:#718598;
  font-size:7px;
  font-weight:900;
}

.workspace-ticket-filters input,
.workspace-ticket-filters select{
  width:100%;
  min-width:0;
  min-height:38px;
  padding:8px 10px;
  border:1px solid #cedce7;
  border-radius:9px;
  background:#fff;
  color:#314f6b;
  font-size:10px;
}

.workspace-ticket-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
}

.workspace-ticket-card{
  position:relative;
  min-width:0;
  overflow:hidden;
  display:grid;
  gap:10px;
  padding:13px 13px 12px 17px;
  border:1px solid #dce5ed;
  border-radius:14px;
  background:#fff;
  text-align:left;
  cursor:pointer;
  transition:.16s ease;
}

.workspace-ticket-card:hover{
  transform:translateY(-2px);
  border-color:#abc4d6;
  box-shadow:0 10px 23px rgba(26,57,88,.09);
}

.workspace-ticket-accent{
  position:absolute;
  top:0;
  bottom:0;
  left:0;
  width:4px;
  background:#7e91a2;
}

.workspace-ticket-card.is-medium .workspace-ticket-accent{
  background:#d0a13a;
}

.workspace-ticket-card.is-high .workspace-ticket-accent{
  background:#d87536;
}

.workspace-ticket-card.is-critical .workspace-ticket-accent,
.workspace-ticket-card.is-overdue .workspace-ticket-accent{
  background:#c84242;
}

.workspace-ticket-top{
  min-width:0;
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:5px;
}

.workspace-ticket-company,
.workspace-ticket-code,
.workspace-ticket-priority,
.workspace-ticket-overdue{
  padding:4px 7px;
  border-radius:999px;
  font-size:7px;
  font-weight:900;
  font-style:normal;
}

.workspace-ticket-company{
  max-width:180px;
  overflow:hidden;
  background:#e7f0f7;
  color:#315f89;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.workspace-ticket-code{
  background:#eff2f5;
  color:#607589;
}

.workspace-ticket-priority{
  margin-left:auto;
  background:#edf1f4;
  color:#687b8d;
}

.workspace-ticket-priority.is-medium{
  background:#faefd6;
  color:#8f641d;
}

.workspace-ticket-priority.is-high{
  background:#f9e5d9;
  color:#a45322;
}

.workspace-ticket-priority.is-critical{
  background:#fbe1e1;
  color:#b33434;
}

.workspace-ticket-overdue{
  background:#c63c3c;
  color:#fff;
}

.workspace-ticket-title{
  min-height:36px;
  overflow:hidden;
  color:#203f5e;
  font-size:13px;
  line-height:1.35;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}

.workspace-ticket-people{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
}

.workspace-ticket-people>span{
  min-width:0;
  display:grid;
  gap:2px;
  padding:8px 9px;
  border-radius:9px;
  background:#f5f8fa;
}

.workspace-ticket-people small,
.workspace-ticket-footer small{
  color:#7b8d9e;
  font-size:7px;
  font-weight:850;
}

.workspace-ticket-people b{
  overflow:hidden;
  color:#385570;
  font-size:8px;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.workspace-ticket-people b.is-unassigned{
  color:#b25c26;
}

.workspace-ticket-footer{
  display:grid;
  grid-template-columns:auto minmax(80px,.7fr) minmax(120px,1fr) auto;
  align-items:center;
  gap:7px;
  padding-top:9px;
  border-top:1px solid #e5ebf0;
}

.workspace-ticket-footer>span:not(.workspace-status):not(.workspace-ticket-open){
  min-width:0;
  display:grid;
  gap:2px;
}

.workspace-ticket-footer>span b{
  overflow:hidden;
  color:#486178;
  font-size:7px;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.workspace-ticket-footer>span b.is-danger{
  color:#b63434;
}

.workspace-ticket-open{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:5px;
  color:#315f89;
  font-size:8px;
  font-weight:900;
  white-space:nowrap;
}

.workspace-ticket-open b{
  color:inherit!important;
  font-size:13px!important;
}

.workspace-ticket-more{
  width:100%;
  margin-top:10px;
  padding:10px;
  border:1px solid #cfdde7;
  border-radius:10px;
  background:#f4f8fb;
  color:#315c83;
  font-size:9px;
  font-weight:900;
  cursor:pointer;
}

.workspace-ticket-more:hover{
  background:#eaf2f7;
}

.workspace-ticket-empty{
  grid-column:1/-1;
}

.workspace-other-list{
  display:grid;
  gap:7px;
}

.workspace-other-card{
  width:100%;
  min-width:0;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:9px;
  padding:10px;
  border:1px solid #dde6ed;
  border-radius:11px;
  background:#fff;
  text-align:left;
  cursor:pointer;
  transition:.15s ease;
}

.workspace-other-card:hover{
  border-color:#b6cbd9;
  background:#f8fbfc;
}

.workspace-other-card.is-overdue{
  border-left:3px solid #c84343;
}

.workspace-other-icon{
  width:35px;
  height:35px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:#e7f0f7;
  color:#315f89;
  font-size:15px;
  font-weight:950;
}

.workspace-other-icon.is-project{
  background:#ede9f7;
  color:#684fa6;
}

.workspace-other-icon.is-maintenance{
  background:#e5f2e8;
  color:#39815a;
}

.workspace-other-icon.is-visit{
  background:#e4f1f6;
  color:#3483a4;
}

.workspace-other-main{
  min-width:0;
  display:grid;
  gap:3px;
}

.workspace-other-main>span{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:4px;
}

.workspace-other-main>span b,
.workspace-other-main>span i{
  padding:3px 6px;
  border-radius:999px;
  font-size:6px;
  font-style:normal;
  font-weight:900;
}

.workspace-other-main>span b{
  background:#e8f0f7;
  color:#315e87;
}

.workspace-other-main>span i{
  max-width:140px;
  overflow:hidden;
  background:#eff2f5;
  color:#687b8d;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.workspace-other-main>strong{
  overflow:hidden;
  color:#294763;
  font-size:9px;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.workspace-other-main>small{
  overflow:hidden;
  color:#7a8c9d;
  font-size:7px;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.workspace-other-progress{
  width:100%;
  height:4px;
  overflow:hidden;
  border-radius:999px;
  background:#e5edf3;
}

.workspace-other-progress i{
  display:block;
  height:100%;
  border-radius:inherit;
  background:#4b8d82;
}

.workspace-other-side{
  display:grid;
  justify-items:end;
  gap:4px;
}

.workspace-other-side time{
  max-width:95px;
  overflow:hidden;
  color:#7a8c9d;
  font-size:6px;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.workspace-other-side>b{
  color:#315e87;
  font-size:12px;
}

.workspace-clear-side .workspace-company-grid{
  grid-template-columns:1fr;
  max-height:455px;
  overflow:auto;
  padding-right:3px;
}

.workspace-clear-side .workspace-company-card{
  padding:10px;
}

.workspace-clear-side .workspace-company-breakdown{
  grid-template-columns:repeat(4,minmax(0,1fr));
}

@media(max-width:1500px){
  .workspace-clear-hero{
    grid-template-columns:minmax(0,.9fr) minmax(520px,1.1fr);
  }

  .workspace-quick-strip{
    grid-template-columns:minmax(170px,.65fr) repeat(5,minmax(105px,1fr));
  }

  .workspace-clear-layout{
    grid-template-columns:minmax(0,1.45fr) minmax(340px,.7fr);
  }

  .workspace-ticket-grid{
    grid-template-columns:1fr;
  }
}

@media(max-width:1180px){
  .workspace-clear-hero{
    grid-template-columns:1fr;
  }

  .workspace-quick-strip{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }

  .workspace-quick-strip>div{
    grid-column:1/-1;
  }

  .workspace-clear-layout{
    grid-template-columns:1fr;
  }

  .workspace-clear-side{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .workspace-ticket-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:820px){
  .workspace-clear-hero{
    padding:21px;
    border-radius:18px;
  }

  .workspace-clear-overview{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .workspace-quick-strip{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .workspace-clear-metrics{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .workspace-ticket-filters{
    grid-template-columns:1fr;
  }

  .workspace-filter-search{
    grid-column:auto;
  }

  .workspace-ticket-grid{
    grid-template-columns:1fr;
  }

  .workspace-clear-side{
    grid-template-columns:1fr;
  }
}

@media(max-width:520px){
  .workspace-clear-copy h2{
    font-size:24px;
  }

  .workspace-clear-context{
    display:grid;
    grid-template-columns:1fr;
  }

  .workspace-clear-context>span{
    min-width:0;
  }

  .workspace-clear-overview{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .workspace-clear-overview>span{
    min-height:88px;
    padding:11px;
  }

  .workspace-clear-overview b{
    font-size:23px;
  }

  .workspace-quick-strip{
    grid-template-columns:1fr;
  }

  .workspace-clear-metrics{
    grid-template-columns:1fr;
  }

  .workspace-ticket-card{
    padding:12px 11px 11px 15px;
  }

  .workspace-ticket-people{
    grid-template-columns:1fr;
  }

  .workspace-ticket-footer{
    grid-template-columns:1fr 1fr;
  }

  .workspace-ticket-footer
  .workspace-status{
    justify-self:start;
  }

  .workspace-ticket-open{
    justify-content:flex-start;
  }
}


/* =========================================================
   4.0.2 - CINTA DE OPCIONES Y MENÚ MÓVIL PROFESIONAL
   ========================================================= */

.workspace-navigation-shell{
  position:relative;
  z-index:1120;
  margin-bottom:14px;
}

.workspace-mobile-nav-trigger,
.workspace-nav-mobile-head,
.workspace-nav-backdrop{
  display:none;
}

.workspace-navigation-shell .workspace-nav{
  width:100%;
  min-height:66px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  overflow:visible!important;
  padding:8px 10px;
  border:1px solid #dbe5ed;
  border-radius:16px;
  background:rgba(255,255,255,.97);
  box-shadow:
    0 8px 24px rgba(27,56,86,.07);
}

.workspace-navigation-shell
.nav-direct,
.workspace-navigation-shell
.nav-group>summary{
  min-width:0;
  min-height:48px;
  display:flex;
  align-items:center;
  gap:8px;
  padding:7px 11px;
  border:1px solid transparent;
  border-radius:11px;
  background:transparent;
  color:#405b73;
  list-style:none;
  white-space:nowrap;
  cursor:pointer;
  transition:
    background .16s ease,
    color .16s ease,
    border-color .16s ease,
    transform .16s ease;
}

.workspace-navigation-shell
.nav-direct:hover,
.workspace-navigation-shell
.nav-group>summary:hover,
.workspace-navigation-shell
.nav-group[open]>summary{
  border-color:#d5e2eb;
  background:#f0f5f9;
  color:#214e79;
}

.workspace-navigation-shell
.nav-direct.active,
.workspace-navigation-shell
.nav-group.active>summary{
  border-color:#315d88;
  background:#315d88;
  color:#fff;
  box-shadow:
    0 7px 17px rgba(49,93,136,.19);
}

.workspace-navigation-shell
.nav-direct.active:hover,
.workspace-navigation-shell
.nav-group.active>summary:hover{
  background:#294f78;
  color:#fff;
}

.workspace-navigation-shell
.nav-item-icon{
  width:31px;
  height:31px;
  display:grid;
  place-items:center;
  flex:0 0 31px;
  border-radius:9px;
  background:#e8f0f6;
  color:#315d88;
  font-size:14px;
  font-weight:950;
}

.workspace-navigation-shell
.nav-direct.active
.nav-item-icon,
.workspace-navigation-shell
.nav-group.active>summary
.nav-item-icon{
  background:rgba(255,255,255,.16);
  color:#fff;
}

.workspace-navigation-shell
.nav-item-copy{
  min-width:0;
  display:grid;
  gap:2px;
  text-align:left;
}

.workspace-navigation-shell
.nav-item-copy b{
  color:inherit;
  font-size:10px;
  line-height:1.05;
}

.workspace-navigation-shell
.nav-item-copy small{
  max-width:145px;
  overflow:hidden;
  color:#7e90a1;
  font-size:7px;
  font-weight:650;
  line-height:1.05;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.workspace-navigation-shell
.nav-direct.active
.nav-item-copy small,
.workspace-navigation-shell
.nav-group.active>summary
.nav-item-copy small{
  color:#d0dde8;
}

.workspace-navigation-shell
.nav-group{
  position:relative;
  flex:0 0 auto;
}

.workspace-navigation-shell
.nav-group>summary::-webkit-details-marker{
  display:none;
}

.workspace-navigation-shell
.nav-group>summary::marker{
  content:"";
}

.workspace-navigation-shell
.nav-group-chevron{
  display:inline-block;
  margin-left:2px;
  color:#71869a;
  font-size:12px;
  transition:transform .17s ease;
}

.workspace-navigation-shell
.nav-group.active>summary
.nav-group-chevron{
  color:#fff;
}

.workspace-navigation-shell
.nav-group[open]
.nav-group-chevron{
  transform:rotate(180deg);
}

.workspace-navigation-shell
.nav-group-menu{
  position:absolute;
  top:calc(100% + 9px);
  left:0;
  z-index:1300;
  width:340px;
  display:grid;
  grid-template-columns:1fr;
  gap:6px;
  padding:11px;
  border:1px solid #d7e3ec;
  border-radius:16px;
  background:#fff;
  box-shadow:
    0 22px 52px rgba(18,45,72,.22);
}

.workspace-navigation-shell
.nav-group-menu.is-wide{
  width:540px;
  grid-template-columns:repeat(2,minmax(0,1fr));
}

.workspace-navigation-shell
.nav-group-menu.is-wide
.nav-group-title{
  grid-column:1/-1;
}

.workspace-navigation-shell
.nav-admin
.nav-group-menu,
.workspace-navigation-shell
.nav-group:last-child
.nav-group-menu{
  right:0;
  left:auto;
}

.workspace-navigation-shell
.nav-group-title{
  padding:5px 8px 7px;
  color:#7c8fa1;
  font-size:8px;
  font-weight:950;
  letter-spacing:.09em;
}

.workspace-navigation-shell
.nav-group-menu>button{
  position:relative;
  width:100%;
  min-height:61px;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:10px;
  padding:9px 10px!important;
  border:1px solid transparent!important;
  border-radius:11px!important;
  background:#fff!important;
  color:#3b5872!important;
  text-align:left;
  cursor:pointer;
  transition:.15s ease;
}

.workspace-navigation-shell
.nav-group-menu>button:hover{
  transform:translateY(-1px);
  border-color:#d3e1ea!important;
  background:#f2f7fa!important;
}

.workspace-navigation-shell
.nav-group-menu>button.active{
  border-color:#adc6d8!important;
  background:#e8f2f8!important;
  color:#214e79!important;
}

.workspace-navigation-shell
.nav-menu-icon{
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  flex:0 0 36px;
  border-radius:10px;
  background:#e8f0f6;
  color:#315d88;
  font-size:15px;
  font-weight:950;
}

.workspace-navigation-shell
.nav-group-menu>button>span:not(.nav-menu-icon){
  min-width:0;
  display:grid;
  gap:3px;
}

.workspace-navigation-shell
.nav-group-menu>button b{
  color:inherit;
  font-size:10px;
}

.workspace-navigation-shell
.nav-group-menu>button small{
  color:#7b8e9f;
  font-size:7px;
  line-height:1.25;
  white-space:normal;
}

.workspace-navigation-shell
.nav-group-menu
.nav-live-count{
  position:absolute;
  top:8px;
  right:8px;
}

@media(max-width:1380px) and (min-width:981px){
  .workspace-navigation-shell
  .workspace-nav{
    justify-content:flex-start;
    overflow-x:auto!important;
    overflow-y:visible!important;
    scrollbar-width:none;
  }

  .workspace-navigation-shell
  .workspace-nav::-webkit-scrollbar{
    display:none;
  }

  .workspace-navigation-shell
  .nav-direct,
  .workspace-navigation-shell
  .nav-group>summary{
    padding:7px 9px;
  }

  .workspace-navigation-shell
  .nav-item-copy small{
    display:none;
  }
}

@media(max-width:980px){
  .workspace-navigation-shell{
    z-index:1450;
    margin-bottom:12px;
  }

  .workspace-mobile-nav-trigger{
    width:100%;
    min-height:64px;
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    align-items:center;
    gap:11px;
    padding:9px 12px;
    border:1px solid #d7e3ec;
    border-radius:15px;
    background:#fff;
    color:#315570;
    text-align:left;
    box-shadow:
      0 8px 23px rgba(26,56,87,.08);
    cursor:pointer;
  }

  .workspace-mobile-nav-icon{
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    border-radius:12px;
    background:#315d88;
    color:#fff;
    font-size:18px;
    font-weight:950;
  }

  .workspace-mobile-nav-copy{
    min-width:0;
    display:grid;
    gap:2px;
  }

  .workspace-mobile-nav-copy small{
    color:#7c8fa1;
    font-size:7px;
    font-weight:950;
    letter-spacing:.08em;
  }

  .workspace-mobile-nav-copy b{
    overflow:hidden;
    color:#264561;
    font-size:13px;
    text-overflow:ellipsis;
    white-space:nowrap;
  }

  .workspace-mobile-nav-copy em{
    overflow:hidden;
    color:#7b8d9e;
    font-size:8px;
    font-style:normal;
    text-overflow:ellipsis;
    white-space:nowrap;
  }

  .workspace-mobile-nav-arrow{
    width:31px;
    height:31px;
    display:grid;
    place-items:center;
    border-radius:9px;
    background:#edf3f7;
    color:#315d88;
    font-size:15px;
    transition:transform .18s ease;
  }

  .workspace-navigation-shell.is-mobile-open
  .workspace-mobile-nav-arrow{
    transform:rotate(180deg);
  }

  .workspace-nav-backdrop{
    position:fixed;
    inset:0;
    z-index:1490;
    display:block;
    background:rgba(13,31,48,.55);
    opacity:0;
    pointer-events:none;
    transition:opacity .2s ease;
    backdrop-filter:blur(2px);
  }

  .workspace-navigation-shell
  .workspace-nav{
    position:fixed;
    top:auto;
    right:10px;
    bottom:10px;
    left:10px;
    z-index:1500;
    width:auto;
    max-height:calc(100dvh - 74px);
    display:block;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    padding:0 11px 14px;
    border:1px solid #d4e0e9;
    border-radius:23px;
    background:#f5f8fa;
    box-shadow:
      0 28px 70px rgba(10,27,43,.33);
    opacity:0;
    pointer-events:none;
    transform:translateY(calc(100% + 28px));
    transition:
      transform .23s ease,
      opacity .2s ease;
    overscroll-behavior:contain;
  }

  .workspace-navigation-shell.is-mobile-open
  .workspace-nav{
    opacity:1;
    pointer-events:auto;
    transform:translateY(0);
  }

  .workspace-navigation-shell.is-mobile-open
  .workspace-nav-backdrop{
    opacity:1;
    pointer-events:auto;
  }

  body.workspace-mobile-nav-open{
    overflow:hidden;
    touch-action:none;
  }

  .workspace-nav-mobile-head{
    position:sticky;
    top:0;
    z-index:3;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin:0 -11px 11px;
    padding:15px 16px 12px;
    border-bottom:1px solid #dce5ec;
    background:rgba(245,248,250,.97);
    backdrop-filter:blur(9px);
  }

  .workspace-nav-mobile-head>div{
    display:grid;
    gap:3px;
  }

  .workspace-nav-mobile-head small{
    color:#7a8e9f;
    font-size:7px;
    font-weight:950;
    letter-spacing:.09em;
  }

  .workspace-nav-mobile-head b{
    color:#234360;
    font-size:14px;
  }

  .workspace-nav-mobile-head>button{
    width:40px;
    height:40px;
    display:grid;
    place-items:center;
    flex:0 0 40px;
    padding:0;
    border:1px solid #d3e0e9;
    border-radius:12px;
    background:#fff;
    color:#315d88;
    font-size:24px;
    line-height:1;
    cursor:pointer;
  }

  .workspace-navigation-shell
  .nav-direct,
  .workspace-navigation-shell
  .nav-group{
    width:100%;
    display:block;
    margin-bottom:7px;
  }

  .workspace-navigation-shell
  .nav-direct,
  .workspace-navigation-shell
  .nav-group>summary{
    width:100%;
    min-height:62px;
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    align-items:center;
    gap:11px;
    padding:9px 10px;
    border:1px solid #d9e4ec;
    border-radius:13px;
    background:#fff;
    color:#385672;
    box-shadow:
      0 3px 10px rgba(25,53,82,.04);
  }

  .workspace-navigation-shell
  .nav-direct.active,
  .workspace-navigation-shell
  .nav-group.active>summary{
    border-color:#315d88;
    background:#315d88;
    color:#fff;
  }

  .workspace-navigation-shell
  .nav-item-icon{
    width:40px;
    height:40px;
    flex-basis:40px;
    border-radius:11px;
    font-size:17px;
  }

  .workspace-navigation-shell
  .nav-item-copy b{
    font-size:12px;
  }

  .workspace-navigation-shell
  .nav-item-copy small{
    display:block;
    max-width:none;
    font-size:8px;
  }

  .workspace-navigation-shell
  .nav-group-chevron{
    justify-self:end;
    width:30px;
    height:30px;
    display:grid;
    place-items:center;
    border-radius:9px;
    background:#edf3f7;
  }

  .workspace-navigation-shell
  .nav-group.active>summary
  .nav-group-chevron{
    background:rgba(255,255,255,.14);
  }

  .workspace-navigation-shell
  .nav-group-menu,
  .workspace-navigation-shell
  .nav-group-menu.is-wide{
    position:static!important;
    width:100%!important;
    max-height:none!important;
    display:grid;
    grid-template-columns:1fr!important;
    gap:6px;
    margin-top:6px;
    padding:8px;
    border:1px solid #d9e4ec;
    border-radius:13px;
    background:#eaf0f4;
    box-shadow:none;
  }

  .workspace-navigation-shell
  .nav-group:not([open])
  .nav-group-menu{
    display:none;
  }

  .workspace-navigation-shell
  .nav-group-title{
    padding:5px 7px;
    font-size:7px;
  }

  .workspace-navigation-shell
  .nav-group-menu>button{
    min-height:61px;
    padding:9px!important;
    border-color:#d9e4ec!important;
    background:#fff!important;
  }

  .workspace-navigation-shell
  .nav-menu-icon{
    width:39px;
    height:39px;
    flex-basis:39px;
  }
}

@media(max-width:480px){
  .workspace-navigation-shell
  .workspace-nav{
    right:6px;
    bottom:6px;
    left:6px;
    max-height:calc(100dvh - 48px);
    border-radius:21px;
  }

  .workspace-mobile-nav-trigger{
    min-height:61px;
    padding:8px 10px;
    border-radius:14px;
  }

  .workspace-mobile-nav-icon{
    width:39px;
    height:39px;
  }

  .workspace-navigation-shell
  .nav-direct,
  .workspace-navigation-shell
  .nav-group>summary{
    min-height:59px;
  }
}


/* =========================================================
   4.0.3 - EMPRESA INDEPENDIENTE POR PESTAÑA
   ========================================================= */

.company-switcher-box{
  align-content:center;
}

.tab-company-context{
  display:flex;
  align-items:center;
  gap:5px;
  margin-top:4px;
  color:#cfe0eb;
  font-size:7px;
  font-weight:750;
  line-height:1.15;
}

.tab-company-context::before{
  content:"";
  width:6px;
  height:6px;
  flex:0 0 6px;
  border-radius:50%;
  background:#7de19a;
  box-shadow:
    0 0 0 3px rgba(125,225,154,.12);
}

.equipment-company-lock{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  margin:0 0 15px;
  padding:13px 14px;
  border:1px solid #bcd3e2;
  border-left:5px solid #315d88;
  border-radius:13px;
  background:
    linear-gradient(90deg,#eef6fb,#f8fbfd);
  transition:
    border-color .18s ease,
    background .18s ease,
    box-shadow .18s ease;
}

.equipment-company-lock-icon{
  width:39px;
  height:39px;
  display:grid;
  place-items:center;
  border-radius:11px;
  background:#315d88;
  color:#fff;
  font-size:15px;
  font-weight:950;
}

.equipment-company-lock>div{
  min-width:0;
  display:grid;
  gap:3px;
}

.equipment-company-lock small{
  color:#71889b;
  font-size:7px;
  font-weight:950;
  letter-spacing:.08em;
}

.equipment-company-lock b{
  overflow:hidden;
  color:#244766;
  font-size:12px;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.equipment-company-lock p{
  margin:0;
  color:#6f8497;
  font-size:8px;
  line-height:1.35;
}

.equipment-company-lock em{
  padding:6px 9px;
  border-radius:999px;
  background:#dceaf3;
  color:#315d88;
  font-size:8px;
  font-style:normal;
  font-weight:900;
}

.equipment-company-lock.is-mismatch{
  border-color:#d75252;
  border-left-color:#c63838;
  background:#fff2f2;
  box-shadow:
    0 0 0 4px rgba(198,56,56,.1);
  animation:
    equipmentCompanyMismatch
    .5s ease;
}

.equipment-company-lock.is-mismatch
.equipment-company-lock-icon{
  background:#c63838;
}

.equipment-company-lock.is-mismatch b{
  color:#a72e2e;
}

.equipment-company-lock.is-mismatch p{
  color:#8e4c4c;
}

@keyframes equipmentCompanyMismatch{
  0%,100%{
    transform:translateX(0);
  }

  25%{
    transform:translateX(-5px);
  }

  50%{
    transform:translateX(5px);
  }

  75%{
    transform:translateX(-3px);
  }
}

@media(max-width:700px){
  .tab-company-context{
    font-size:6px;
  }

  .equipment-company-lock{
    grid-template-columns:auto minmax(0,1fr);
    align-items:start;
    padding:12px;
  }

  .equipment-company-lock em{
    grid-column:2;
    justify-self:start;
  }
}


/* =========================================================
   4.0.4 - NAVEGACIÓN LEGIBLE Y DETRÁS DE LOS MODALES
   ========================================================= */

/*
  La navegación nunca debe superar una ficha, formulario o ventana
  emergente abierta. Los niveles se normalizan explícitamente.
*/
.modal{
  z-index:2000!important;
}

.nested-modal{
  z-index:2100!important;
}

.toast{
  z-index:2300!important;
}

body.modal-open
.workspace-navigation-shell{
  z-index:20!important;
  pointer-events:none;
}

/*
  En computadora se aumenta la legibilidad sin alterar la vista móvil.
*/
@media(min-width:981px){
  .workspace-navigation-shell{
    z-index:90;
  }

  .workspace-navigation-shell
  .workspace-nav{
    min-height:76px;
    gap:7px;
    padding:10px 14px;
    border-radius:17px;
  }

  .workspace-navigation-shell
  .nav-direct,
  .workspace-navigation-shell
  .nav-group>summary{
    min-height:56px;
    gap:10px;
    padding:9px 14px;
    border-radius:12px;
  }

  .workspace-navigation-shell
  .nav-item-icon{
    width:36px;
    height:36px;
    flex-basis:36px;
    border-radius:10px;
    font-size:16px;
  }

  .workspace-navigation-shell
  .nav-item-copy{
    gap:3px;
  }

  .workspace-navigation-shell
  .nav-item-copy b{
    font-size:12px;
    line-height:1.15;
  }

  .workspace-navigation-shell
  .nav-item-copy small{
    max-width:175px;
    font-size:8.5px;
    font-weight:700;
    line-height:1.2;
  }

  .workspace-navigation-shell
  .nav-group-chevron{
    font-size:14px;
  }

  .workspace-navigation-shell
  .nav-group-menu{
    width:390px;
    gap:7px;
    padding:13px;
    border-radius:17px;
  }

  .workspace-navigation-shell
  .nav-group-menu.is-wide{
    width:620px;
  }

  .workspace-navigation-shell
  .nav-group-title{
    padding:6px 9px 8px;
    font-size:9px;
  }

  .workspace-navigation-shell
  .nav-group-menu>button{
    min-height:69px;
    gap:11px;
    padding:10px 11px!important;
    border-radius:12px!important;
  }

  .workspace-navigation-shell
  .nav-menu-icon{
    width:41px;
    height:41px;
    flex-basis:41px;
    border-radius:11px;
    font-size:17px;
  }

  .workspace-navigation-shell
  .nav-group-menu>button b{
    font-size:12px;
    line-height:1.15;
  }

  .workspace-navigation-shell
  .nav-group-menu>button small{
    font-size:9px;
    line-height:1.35;
  }
}

@media(max-width:1380px) and (min-width:981px){
  .workspace-navigation-shell
  .nav-direct,
  .workspace-navigation-shell
  .nav-group>summary{
    padding:8px 10px;
  }

  .workspace-navigation-shell
  .nav-item-copy b{
    font-size:11.5px;
  }

  .workspace-navigation-shell
  .nav-item-copy small{
    display:none;
  }
}

/*
  El encabezado del modal también queda más claro en navegador.
*/
@media(min-width:701px){
  .modal-head{
    min-height:64px;
    padding:15px 20px;
  }

  .modal-head h3{
    font-size:18px;
    line-height:1.2;
  }
}


/* =========================================================
   4.1.0 - REGISTRO MASIVO Y PROPIEDAD DE ACTIVOS
   ========================================================= */

.equipment-entry-head{gap:14px}.equipment-entry-actions{display:flex;gap:8px;flex-wrap:wrap}.form-grid.nested{display:grid;margin:0;padding:12px;border:1px solid #dbe5ed;border-radius:12px;background:#f7f9fb}.inventory-owner-line{display:block;margin-top:4px;color:#6d8195;font-size:8px;font-weight:700}.asset-batch-wizard{display:grid;gap:15px}.asset-batch-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,.42fr);gap:16px;padding:20px;border-radius:17px;background:linear-gradient(125deg,#203f69,#397682);color:#fff}.asset-batch-intro span{color:#b7d1e0;font-size:8px;font-weight:950;letter-spacing:.09em}.asset-batch-intro h4{margin:6px 0;color:#fff;font-size:22px}.asset-batch-intro p,.asset-batch-intro em{color:#d4e3ec;font-size:9px;font-style:normal}.asset-batch-intro>div:last-child{display:grid;align-content:center;gap:4px;padding:13px;border:1px solid rgba(255,255,255,.18);border-radius:13px;background:rgba(255,255,255,.09)}.asset-batch-intro small{color:#b7d1e0;font-size:7px;font-weight:950}.asset-batch-intro b{font-size:13px}.asset-batch-setup{display:grid;gap:12px}.asset-batch-section{overflow:hidden;border:1px solid #dbe5ed;border-radius:14px;background:#fff}.asset-batch-section>header{display:flex;align-items:center;gap:11px;padding:12px 14px;border-bottom:1px solid #e2e9ef;background:#f7f9fb}.asset-batch-section>header>span{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#315d88;color:#fff;font-size:13px;font-weight:950}.asset-batch-section>header>div{display:grid;gap:2px}.asset-batch-section>header b{color:#294864;font-size:11px}.asset-batch-section>header small{color:#7a8d9f;font-size:8px}.asset-batch-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:13px}.asset-batch-grid label{min-width:0;display:grid;gap:5px}.asset-batch-grid label>span{color:#657b8f;font-size:8px;font-weight:900}.asset-batch-grid input,.asset-batch-grid select,.asset-batch-grid textarea{width:100%;min-width:0;min-height:42px;padding:8px 10px;border:1px solid #cad9e5;border-radius:9px;background:#fff;color:#2e4b67;font-size:10px}.asset-batch-grid .span2{grid-column:span 2}.asset-batch-grid .span3{grid-column:span 3}.asset-batch-grid.sequence{grid-template-columns:repeat(7,minmax(0,1fr))}.asset-batch-credentials{border:1px solid #dbe5ed;border-radius:13px;background:#f8fafc}.asset-batch-credentials>summary{padding:12px 14px;color:#315977;font-size:10px;font-weight:900;cursor:pointer}.asset-batch-generate{justify-self:end;min-width:220px}.asset-batch-preview-section{display:grid;gap:11px;padding-top:5px}.asset-batch-preview-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;border:1px solid #d7e3ec;border-radius:13px;background:#f5f8fa}.asset-batch-preview-toolbar>div:first-child{display:grid;gap:3px}.asset-batch-preview-toolbar span{color:#768a9d;font-size:7px;font-weight:950;letter-spacing:.08em}.asset-batch-preview-toolbar b{color:#274764;font-size:13px}.asset-batch-preview-toolbar small{color:#7d8f9f;font-size:8px}.asset-batch-preview-toolbar>div:last-child{display:flex;gap:7px;flex-wrap:wrap}.asset-batch-series-paste{border:1px solid #dce6ed;border-radius:11px;background:#fff}.asset-batch-series-paste summary{padding:10px 12px;color:#315b80;font-size:9px;font-weight:900;cursor:pointer}.asset-batch-series-paste p{margin:0 12px;color:#7d8e9e;font-size:8px}.asset-batch-series-paste textarea{width:calc(100% - 24px);min-height:100px;margin:8px 12px 12px;padding:9px;border:1px solid #ccdbe6;border-radius:9px}.asset-batch-table-wrap{overflow:auto;border:1px solid #d8e4ec;border-radius:13px;background:#fff}.asset-batch-table{width:100%;min-width:1500px;border-collapse:collapse}.asset-batch-table th{position:sticky;top:0;z-index:2;padding:9px 7px;background:#203e68;color:#fff;font-size:8px;text-align:left}.asset-batch-table td{vertical-align:top;padding:7px;border-bottom:1px solid #e3eaf0;background:#fff}.asset-batch-table tr.has-error td{background:#fff4f4}.asset-batch-table tr.has-warning td{background:#fffaf0}.asset-batch-table input{width:100%;min-width:92px;min-height:35px;margin-bottom:4px;padding:6px 7px;border:1px solid #ccd9e4;border-radius:8px;font-size:9px}.asset-batch-scan-field{display:flex;gap:4px}.asset-batch-scan-field input{margin-bottom:4px}.asset-batch-scan-field button{display:none;padding:5px 7px;border:0;border-radius:7px;background:#315d88;color:#fff;font-size:7px;font-weight:900}.asset-batch-status{display:inline-flex;padding:5px 7px;border-radius:999px;font-size:7px;font-weight:900;white-space:nowrap}.asset-batch-status.neutral{background:#edf1f4;color:#687b8d}.asset-batch-status.ok{background:#e1f2e6;color:#347b50}.asset-batch-status.warning{background:#faefd7;color:#93651c}.asset-batch-status.error{background:#fbe2e2;color:#b63535}.asset-batch-row-messages{margin-top:5px}.asset-batch-row-messages summary{color:#566f84;font-size:7px;cursor:pointer}.asset-batch-row-messages ul{width:280px;margin:5px 0 0;padding:8px 8px 8px 22px;border-radius:8px;background:#fff;font-size:7px}.asset-batch-row-messages li.error{color:#a92f2f}.asset-batch-row-messages li.warning{color:#8d641e}.asset-batch-remove{padding:6px 7px;border:1px solid #edc4c4;border-radius:7px;background:#fff1f1;color:#b42f2f;font-size:7px;font-weight:900;cursor:pointer}.asset-batch-validation-summary>span,.asset-batch-validation-summary>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 13px;border:1px solid #d9e4ec;border-radius:11px;background:#f7f9fb;color:#687d90;font-size:9px}.asset-batch-validation-summary .ok{border-color:#b8dcc4;background:#eef8f1;color:#34764d}.asset-batch-validation-summary .error{border-color:#e5bebe;background:#fff2f2;color:#a83333}.asset-batch-list-head{display:flex;justify-content:space-between;gap:14px;margin-bottom:13px;padding:16px;border-radius:14px;background:#f4f8fb}.asset-batch-list-head span{color:#75899c;font-size:8px;font-weight:950}.asset-batch-list-head h4{margin:4px 0;color:#274762;font-size:18px}.asset-batch-list-head p{color:#798b9b;font-size:9px}.asset-batch-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.asset-batch-list article{overflow:hidden;border:1px solid #dbe5ed;border-radius:13px;background:#fff}.asset-batch-list article>header{display:flex;justify-content:space-between;gap:10px;padding:13px;border-bottom:1px solid #e2e9ef}.asset-batch-list article>header span{color:#71879a;font-size:7px;font-weight:950}.asset-batch-list article>header h5{margin:3px 0;color:#294763;font-size:12px}.asset-batch-list article>header p{color:#75899b;font-size:8px}.asset-batch-mode{align-self:flex-start;padding:5px 8px;border-radius:999px;font-size:7px;font-weight:900}.asset-batch-mode.purple{background:#ece6f8;color:#654ca5}.asset-batch-mode.green{background:#e2f2e7;color:#397d56}.asset-batch-mode.blue{background:#e3eef7;color:#315f89}.asset-batch-list-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:11px}.asset-batch-list-metrics span{min-width:0;display:grid;gap:3px;padding:8px;border-radius:9px;background:#f5f8fa}.asset-batch-list-metrics small{color:#7c8e9f;font-size:6px;font-weight:900}.asset-batch-list-metrics b{overflow:hidden;color:#31506b;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.asset-batch-list footer{display:flex;justify-content:flex-end;gap:6px;padding:10px;border-top:1px solid #e5ebf0}.asset-batch-detail{display:grid;gap:13px}.asset-batch-detail-summary{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:17px;border-radius:14px;background:linear-gradient(125deg,#203e68,#397482);color:#fff}.asset-batch-detail-summary span{color:#b9d1e0;font-size:8px;font-weight:950}.asset-batch-detail-summary h4{margin:4px 0;color:#fff;font-size:18px}.asset-batch-detail-summary p{color:#d2e2eb;font-size:9px}.asset-batch-detail-summary>div:last-child{display:grid;justify-items:end}.asset-batch-detail-summary>div:last-child b{font-size:28px}.asset-batch-detail-summary>div:last-child small{color:#c1d6e3;font-size:7px}.asset-batch-detail-actions{display:flex;justify-content:flex-end}.asset-batch-detail-list{display:grid;gap:6px}.asset-batch-detail-list>button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 11px;border:1px solid #dde6ed;border-radius:10px;background:#fff;text-align:left;cursor:pointer}.asset-batch-detail-list>button:hover{background:#f4f8fa}.asset-batch-detail-list>button>span:first-child{min-width:0;display:grid;gap:3px}.asset-batch-detail-list b{overflow:hidden;color:#2b4965;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.asset-batch-detail-list small{overflow:hidden;color:#7a8c9d;font-size:7px;text-overflow:ellipsis;white-space:nowrap}

@media(max-width:1200px){.asset-batch-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.asset-batch-grid.sequence{grid-template-columns:repeat(3,minmax(0,1fr))}.asset-batch-grid .span3{grid-column:span 2}.asset-batch-list{grid-template-columns:1fr}}
@media(max-width:700px){.equipment-entry-head{align-items:flex-start}.equipment-entry-actions{width:100%}.equipment-entry-actions .btn{flex:1}.asset-batch-intro{grid-template-columns:1fr;padding:16px}.asset-batch-grid,.asset-batch-grid.sequence{grid-template-columns:1fr}.asset-batch-grid .span2,.asset-batch-grid .span3{grid-column:auto}.asset-batch-preview-toolbar{align-items:flex-start;flex-direction:column}.asset-batch-preview-toolbar>div:last-child{width:100%}.asset-batch-preview-toolbar .btn{flex:1}.asset-batch-table{min-width:0}.asset-batch-table thead{display:none}.asset-batch-table,.asset-batch-table tbody,.asset-batch-table tr,.asset-batch-table td{display:block;width:100%}.asset-batch-table tr{margin:10px;padding:10px;width:calc(100% - 20px);border:1px solid #d8e4ec;border-radius:12px;background:#fff}.asset-batch-table td{display:grid;grid-template-columns:105px minmax(0,1fr);gap:8px;align-items:start;padding:7px 0;border:0;border-bottom:1px solid #edf1f4}.asset-batch-table td:last-child{border-bottom:0}.asset-batch-table td::before{content:attr(data-label);color:#6f8497;font-size:8px;font-weight:900}.asset-batch-scan-field button{display:block}.asset-batch-row-messages ul{width:auto}.asset-batch-list-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.asset-batch-list footer{flex-wrap:wrap}.asset-batch-list footer .btn{flex:1}.asset-batch-detail-summary{align-items:flex-start;flex-direction:column}}


/* =========================================================
   4.1.1 - CAMPOS CONDICIONALES Y VIGENCIA DE ACTIVOS
   ========================================================= */

.equipment-extension-field{
  animation:
    equipmentConditionalFieldIn
    .18s ease;
}

@keyframes equipmentConditionalFieldIn{
  from{
    opacity:0;
    transform:translateY(-4px);
  }

  to{
    opacity:1;
    transform:translateY(0);
  }
}

.equipment-ownership-section{
  background:#fbfcfe;
}

.equipment-ownership-section>h3{
  background:
    linear-gradient(
      90deg,
      #e9f1f7,
      #f1f6fa
    );
}

.equipment-ownership-commercial{
  grid-column:1/-1;
  min-width:0;
  overflow:hidden;
  border:1px solid #cfdde7;
  border-radius:14px;
  background:#fff;
  box-shadow:
    0 6px 17px rgba(31,63,94,.055);
}

.equipment-ownership-commercial-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  padding:13px 15px;
  border-bottom:1px solid #dce6ed;
  background:
    linear-gradient(
      110deg,
      #edf5fa,
      #f8fbfd
    );
}

.equipment-ownership-commercial-head>div{
  min-width:0;
  display:grid;
  gap:3px;
}

.equipment-ownership-commercial-head small{
  color:#71889b;
  font-size:7px;
  font-weight:950;
  letter-spacing:.09em;
}

.equipment-ownership-commercial-head b{
  color:#244665;
  font-size:12px;
}

.equipment-ownership-commercial-head p{
  margin:0;
  color:#718598;
  font-size:8px;
  line-height:1.35;
}

.equipment-ownership-commercial-head>span{
  flex:0 0 auto;
  padding:6px 9px;
  border-radius:999px;
  background:#dceaf3;
  color:#315d88;
  font-size:7px;
  font-weight:900;
}

.equipment-ownership-commercial-grid{
  display:grid;
  grid-template-columns:
    minmax(210px,1.15fr)
    minmax(210px,1fr)
    minmax(210px,1fr)
    minmax(170px,.75fr);
  gap:12px;
  padding:14px;
}

.equipment-ownership-commercial-grid
.field{
  min-width:0;
  padding:10px;
  border:1px solid #e0e8ee;
  border-radius:11px;
  background:#f9fbfc;
}

.equipment-ownership-commercial-grid
.field label{
  color:#38566f;
  font-size:10px;
}

.equipment-ownership-commercial-grid
.field input{
  min-height:43px;
  background:#fff;
}

.equipment-ownership-commercial-grid
.ownership-date-field{
  border-color:#cadce8;
  background:#f2f8fb;
}

.equipment-ownership-commercial-grid
.ownership-date-field input{
  color:#244665;
  font-weight:750;
}

.equipment-ownership-commercial-grid
.ownership-date-field small{
  color:#74899b;
  font-size:7px;
  line-height:1.3;
}

@media(max-width:1200px){
  .equipment-ownership-commercial-grid{
    grid-template-columns:
      repeat(2,minmax(0,1fr));
  }
}

@media(max-width:700px){
  .equipment-ownership-commercial-head{
    align-items:flex-start;
    flex-direction:column;
  }

  .equipment-ownership-commercial-grid{
    grid-template-columns:1fr;
    padding:11px;
  }

  .equipment-ownership-commercial-grid
  .field{
    padding:9px;
  }

  .equipment-ownership-commercial-grid
  .ownership-date-field input{
    min-height:48px;
    font-size:16px;
  }
}


/* =========================================================
   4.1.2 - REGISTRO MASIVO LEGIBLE EN NAVEGADOR
   ========================================================= */

/*
  Ajustes exclusivos para computadora.
  La presentación móvil definida en la versión 4.1.0 se conserva.
*/
@media(min-width:981px){
  .modal-card.modal-asset-batch{
    width:min(97vw,1840px);
    max-width:1840px;
  }

  .modal-card.modal-asset-batch
  .modal-head{
    min-height:72px;
    padding:17px 24px;
  }

  .modal-card.modal-asset-batch
  .modal-head h3{
    font-size:21px;
    letter-spacing:-.01em;
  }

  .modal-card.modal-asset-batch
  .modal-close{
    width:42px;
    height:42px;
    font-size:24px;
  }

  .modal-card.modal-asset-batch
  .modal-body{
    padding:18px 22px 24px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-wizard{
    gap:17px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-intro{
    gap:22px;
    padding:22px 24px;
    border-radius:17px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-intro span{
    font-size:10px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-intro h4{
    margin:8px 0;
    font-size:28px;
    line-height:1.1;
  }

  .modal-card.modal-asset-batch
  .asset-batch-intro p,
  .modal-card.modal-asset-batch
  .asset-batch-intro em{
    font-size:12px;
    line-height:1.45;
  }

  .modal-card.modal-asset-batch
  .asset-batch-intro>div:last-child{
    min-width:390px;
    gap:6px;
    padding:17px;
    border-radius:15px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-intro small{
    font-size:9px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-intro b{
    font-size:17px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-setup{
    gap:15px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-section{
    border-radius:16px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-section>header{
    gap:13px;
    padding:15px 17px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-section>header>span{
    width:40px;
    height:40px;
    border-radius:11px;
    font-size:16px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-section>header>div{
    gap:4px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-section>header b{
    font-size:14px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-section>header small{
    font-size:10px;
    line-height:1.35;
  }

  .modal-card.modal-asset-batch
  .asset-batch-grid{
    gap:13px;
    padding:16px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-grid label{
    gap:7px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-grid label>span{
    font-size:10px;
    line-height:1.25;
  }

  .modal-card.modal-asset-batch
  .asset-batch-grid input,
  .modal-card.modal-asset-batch
  .asset-batch-grid select,
  .modal-card.modal-asset-batch
  .asset-batch-grid textarea{
    min-height:49px;
    padding:10px 12px;
    border-radius:10px;
    font-size:13px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-credentials{
    border-radius:15px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-credentials>summary{
    padding:15px 17px;
    font-size:13px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-generate{
    min-width:270px;
    min-height:49px;
    padding:11px 18px;
    font-size:13px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-preview-section{
    gap:13px;
    padding-top:7px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-preview-toolbar{
    position:sticky;
    top:0;
    z-index:8;
    gap:15px;
    padding:15px 17px;
    border-radius:14px;
    box-shadow:
      0 9px 24px rgba(27,57,87,.12);
  }

  .modal-card.modal-asset-batch
  .asset-batch-preview-toolbar>div:first-child{
    gap:4px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-preview-toolbar span{
    font-size:9px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-preview-toolbar b{
    font-size:17px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-preview-toolbar small{
    font-size:10px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-preview-toolbar>div:last-child{
    gap:9px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-preview-toolbar .btn{
    min-height:43px;
    padding:10px 15px;
    font-size:12px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-series-paste{
    border-radius:13px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-series-paste summary{
    padding:13px 15px;
    font-size:12px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-series-paste p{
    margin:0 15px;
    font-size:10px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-series-paste textarea{
    width:calc(100% - 30px);
    min-height:125px;
    margin:10px 15px 15px;
    padding:11px;
    font-size:13px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-validation-summary>span,
  .modal-card.modal-asset-batch
  .asset-batch-validation-summary>div{
    padding:13px 15px;
    border-radius:12px;
    font-size:11px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-table-wrap{
    border-radius:14px;
    box-shadow:
      0 6px 19px rgba(30,61,91,.06);
  }

  .modal-card.modal-asset-batch
  .asset-batch-table{
    min-width:1740px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-table th{
    padding:12px 9px;
    font-size:10px;
    line-height:1.2;
  }

  .modal-card.modal-asset-batch
  .asset-batch-table td{
    padding:9px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-table tbody tr:nth-child(even) td{
    background:#f8fafc;
  }

  .modal-card.modal-asset-batch
  .asset-batch-table tr.has-error td{
    background:#fff1f1!important;
  }

  .modal-card.modal-asset-batch
  .asset-batch-table tr.has-warning td{
    background:#fff8e9!important;
  }

  .modal-card.modal-asset-batch
  .asset-batch-table td:first-child{
    min-width:38px;
    color:#244665;
    font-size:13px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-table input{
    min-width:105px;
    min-height:42px;
    margin-bottom:6px;
    padding:8px 9px;
    border-radius:9px;
    font-size:12px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-status{
    padding:7px 9px;
    font-size:9px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-row-messages summary{
    font-size:9px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-row-messages ul{
    width:330px;
    font-size:9px;
    line-height:1.4;
  }

  .modal-card.modal-asset-batch
  .asset-batch-remove{
    min-height:38px;
    padding:8px 10px;
    border-radius:9px;
    font-size:10px;
  }
}

@media(min-width:981px) and (max-width:1350px){
  .modal-card.modal-asset-batch
  .asset-batch-intro{
    grid-template-columns:minmax(0,1fr) 340px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-intro>div:last-child{
    min-width:0;
  }

  .modal-card.modal-asset-batch
  .asset-batch-section>header b{
    font-size:13px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-grid input,
  .modal-card.modal-asset-batch
  .asset-batch-grid select{
    font-size:12px;
  }
}


/* =========================================================
   4.1.3 - CORRECCIÓN DE FORMATO MONETARIO EN ACTIVOS
   ========================================================= */

/* =========================================================
   4.1.4 - ESCANEO MÓVIL Y EDICIÓN MASIVA DE LOTES
   ========================================================= */

.equipment-serial-scan-field{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:8px;
}

.equipment-serial-scan-button,
.equipment-serial-mobile-help{
  display:none;
}

.asset-batch-edit-notice{
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px 14px;
  border:1px solid #bcd5e5;
  border-radius:13px;
  background:#eef7fb;
  color:#315b7b;
}

.asset-batch-edit-notice>span{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  flex:0 0 38px;
  border-radius:11px;
  background:#315d88;
  color:#fff;
  font-size:17px;
  font-weight:950;
}

.asset-batch-edit-notice>div{
  min-width:0;
  display:grid;
  gap:3px;
}

.asset-batch-edit-notice b{
  color:#274967;
  font-size:12px;
}

.asset-batch-edit-notice p{
  margin:0;
  color:#6d8294;
  font-size:9px;
  line-height:1.4;
}

.asset-batch-existing{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:7px 9px;
  border-radius:9px;
  background:#e8f0f6;
  color:#315d88;
  font-size:8px;
  font-weight:900;
  white-space:nowrap;
}

.asset-batch-cell-number>span,
.asset-batch-cell-number>small{
  display:none;
}

@media(max-width:700px){
  .equipment-serial-scan-field{
    grid-template-columns:minmax(0,1fr) 104px;
    align-items:stretch;
  }

  .equipment-serial-scan-button{
    display:block;
    min-height:50px;
    padding:9px 10px;
    border-radius:11px;
    font-size:11px;
  }

  .equipment-serial-mobile-help{
    display:block;
  }

  .modal-card.modal-asset-batch .modal-body{
    padding:10px 9px max(18px,env(safe-area-inset-bottom));
  }

  .modal-card.modal-asset-batch .asset-batch-wizard{
    gap:11px;
  }

  .modal-card.modal-asset-batch .asset-batch-intro{
    padding:15px;
    border-radius:14px;
  }

  .modal-card.modal-asset-batch .asset-batch-intro h4{
    font-size:22px;
  }

  .modal-card.modal-asset-batch .asset-batch-intro p,
  .modal-card.modal-asset-batch .asset-batch-intro em{
    font-size:10px;
    line-height:1.4;
  }

  .asset-batch-edit-notice{
    align-items:flex-start;
    padding:11px;
  }

  .asset-batch-edit-notice b{
    font-size:12px;
  }

  .asset-batch-edit-notice p{
    font-size:9px;
  }

  .modal-card.modal-asset-batch .asset-batch-section>header{
    padding:12px;
  }

  .modal-card.modal-asset-batch .asset-batch-section>header b{
    font-size:13px;
  }

  .modal-card.modal-asset-batch .asset-batch-section>header small{
    font-size:9px;
  }

  .modal-card.modal-asset-batch .asset-batch-grid{
    gap:11px;
    padding:12px;
  }

  .modal-card.modal-asset-batch .asset-batch-grid label>span{
    font-size:10px;
  }

  .modal-card.modal-asset-batch .asset-batch-grid input,
  .modal-card.modal-asset-batch .asset-batch-grid select,
  .modal-card.modal-asset-batch .asset-batch-grid textarea{
    min-height:49px;
    padding:10px 12px;
    border-radius:11px;
    font-size:16px!important;
  }

  .modal-card.modal-asset-batch .asset-batch-generate{
    width:100%;
    min-height:50px;
    font-size:13px;
  }

  .modal-card.modal-asset-batch .asset-batch-preview-section{
    gap:10px;
    padding-top:3px;
  }

  .modal-card.modal-asset-batch .asset-batch-preview-toolbar{
    position:sticky;
    top:0;
    z-index:12;
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
    padding:12px;
    border:1px solid #cfdee8;
    border-radius:13px;
    background:rgba(255,255,255,.97);
    box-shadow:0 8px 22px rgba(25,54,82,.14);
    backdrop-filter:blur(9px);
  }

  .modal-card.modal-asset-batch .asset-batch-preview-toolbar>div:first-child{
    display:grid;
    gap:3px;
  }

  .modal-card.modal-asset-batch .asset-batch-preview-toolbar span{
    font-size:8px;
  }

  .modal-card.modal-asset-batch .asset-batch-preview-toolbar b{
    font-size:16px;
  }

  .modal-card.modal-asset-batch .asset-batch-preview-toolbar small{
    font-size:9px;
    line-height:1.35;
  }

  .modal-card.modal-asset-batch .asset-batch-preview-toolbar>div:last-child{
    width:100%;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
  }

  .modal-card.modal-asset-batch .asset-batch-preview-toolbar .btn{
    width:100%;
    min-height:44px;
    padding:8px;
    font-size:10px;
  }

  .modal-card.modal-asset-batch .asset-batch-preview-toolbar .btn-success{
    grid-column:1/-1;
  }

  .modal-card.modal-asset-batch .asset-batch-series-paste summary{
    padding:12px;
    font-size:11px;
  }

  .modal-card.modal-asset-batch .asset-batch-series-paste p{
    font-size:9px;
  }

  .modal-card.modal-asset-batch .asset-batch-series-paste textarea{
    min-height:125px;
    font-size:16px!important;
  }

  .modal-card.modal-asset-batch .asset-batch-table-wrap{
    max-height:none;
    overflow:visible;
    border:0;
    background:transparent;
  }

  .modal-card.modal-asset-batch .asset-batch-table,
  .modal-card.modal-asset-batch .asset-batch-table tbody{
    display:block;
    width:100%;
    min-width:0;
  }

  .modal-card.modal-asset-batch .asset-batch-table thead{
    display:none;
  }

  .modal-card.modal-asset-batch .asset-batch-table tr{
    position:relative;
    width:100%;
    display:block;
    margin:0 0 13px;
    padding:0;
    overflow:hidden;
    border:1px solid #cedde7;
    border-left:5px solid #4779a3;
    border-radius:15px;
    background:#fff;
    box-shadow:0 6px 17px rgba(26,56,86,.07);
  }

  .modal-card.modal-asset-batch .asset-batch-table tr.has-error{
    border-color:#d84a4a;
    border-left-color:#c83333;
    box-shadow:0 0 0 3px rgba(200,51,51,.08);
  }

  .modal-card.modal-asset-batch .asset-batch-table tr.has-warning{
    border-color:#d7a33e;
    border-left-color:#c28a20;
  }

  .modal-card.modal-asset-batch .asset-batch-table tr.has-error td,
  .modal-card.modal-asset-batch .asset-batch-table tr.has-warning td,
  .modal-card.modal-asset-batch .asset-batch-table tbody tr:nth-child(even) td{
    background:#fff!important;
  }

  .modal-card.modal-asset-batch .asset-batch-table td{
    width:100%;
    display:block;
    padding:10px 12px;
    border:0;
    border-bottom:1px solid #e8eef3;
    background:#fff;
  }

  .modal-card.modal-asset-batch .asset-batch-table td:last-child{
    border-bottom:0;
  }

  .modal-card.modal-asset-batch .asset-batch-table td::before{
    content:attr(data-label);
    display:block;
    margin-bottom:6px;
    color:#60788e;
    font-size:10px;
    font-weight:950;
    letter-spacing:.02em;
  }

  .modal-card.modal-asset-batch .asset-batch-cell-number{
    display:flex;
    align-items:center;
    gap:9px;
    min-height:54px;
    padding:10px 12px;
    background:linear-gradient(90deg,#edf4f8,#f8fbfd)!important;
  }

  .modal-card.modal-asset-batch .asset-batch-cell-number::before{
    display:none;
  }

  .modal-card.modal-asset-batch .asset-batch-cell-number>span{
    display:inline-flex;
    padding:4px 7px;
    border-radius:999px;
    background:#dceaf3;
    color:#315d88;
    font-size:8px;
    font-weight:950;
  }

  .modal-card.modal-asset-batch .asset-batch-cell-number>b{
    color:#203f5f;
    font-size:18px;
  }

  .modal-card.modal-asset-batch .asset-batch-cell-number>small{
    display:block;
    margin-left:auto;
    color:#647b8f;
    font-size:9px;
    font-weight:850;
  }

  .modal-card.modal-asset-batch .asset-batch-table input{
    width:100%;
    min-width:0;
    min-height:49px;
    margin:0 0 7px;
    padding:10px 12px;
    border-radius:11px;
    font-size:16px!important;
  }

  .modal-card.modal-asset-batch .asset-batch-table input:last-child{
    margin-bottom:0;
  }

  .modal-card.modal-asset-batch .asset-batch-scan-field{
    display:grid;
    grid-template-columns:minmax(0,1fr) 96px;
    gap:7px;
    align-items:stretch;
    margin-bottom:7px;
  }

  .modal-card.modal-asset-batch .asset-batch-scan-field input{
    margin:0;
  }

  .modal-card.modal-asset-batch .asset-batch-scan-field button{
    min-height:49px;
    padding:8px;
    border-radius:11px;
    font-size:10px;
  }

  .modal-card.modal-asset-batch .asset-batch-cell-status{
    background:#f7f9fb!important;
  }

  .modal-card.modal-asset-batch .asset-batch-status{
    display:inline-flex;
    min-height:34px;
    align-items:center;
    padding:7px 10px;
    font-size:10px;
  }

  .modal-card.modal-asset-batch .asset-batch-row-messages{
    margin-top:8px;
  }

  .modal-card.modal-asset-batch .asset-batch-row-messages summary{
    min-height:36px;
    display:flex;
    align-items:center;
    color:#315d88;
    font-size:10px;
    font-weight:900;
  }

  .modal-card.modal-asset-batch .asset-batch-row-messages ul{
    width:auto;
    margin:5px 0 0;
    padding:10px 10px 10px 25px;
    border-radius:10px;
    background:#fff;
    font-size:10px;
    line-height:1.45;
  }

  .modal-card.modal-asset-batch .asset-batch-cell-action{
    padding:10px 12px 12px;
  }

  .modal-card.modal-asset-batch .asset-batch-remove,
  .modal-card.modal-asset-batch .asset-batch-existing{
    width:100%;
    min-height:43px;
    font-size:11px;
  }

  .modal-card.modal-asset-batch .asset-batch-validation-summary>span,
  .modal-card.modal-asset-batch .asset-batch-validation-summary>div{
    padding:12px;
    border-radius:11px;
    font-size:10px;
  }
}


/* =========================================================
   4.1.5 - ORDEN DE CAMPOS EN EDICIÓN MÓVIL DE LOTES
   ========================================================= */

.asset-batch-field-stack{
  width:100%;
  min-width:0;
  display:grid;
  gap:7px;
}

.asset-batch-subfield{
  min-width:0;
  display:grid;
  gap:4px;
}

.asset-batch-subfield>span{
  display:none;
  color:#60788e;
  font-size:8px;
  font-weight:900;
}

.asset-batch-field-stack input{
  width:100%;
  min-width:0;
}

@media(max-width:700px){
  /*
    Regla reforzada para Safari/iPhone:
    elimina definitivamente la cuadrícula antigua de etiqueta + contenido.
  */
  .modal-card.modal-asset-batch
  .asset-batch-table td{
    width:100%!important;
    display:block!important;
    grid-template-columns:none!important;
    gap:0!important;
    padding:11px 12px!important;
  }

  .modal-card.modal-asset-batch
  .asset-batch-table td::before{
    display:block!important;
    width:100%;
    margin:0 0 9px;
    font-size:11px;
    line-height:1.2;
  }

  .modal-card.modal-asset-batch
  .asset-batch-cell-number{
    display:flex!important;
    padding:11px 12px!important;
  }

  .modal-card.modal-asset-batch
  .asset-batch-cell-number::before{
    display:none!important;
  }

  .modal-card.modal-asset-batch
  .asset-batch-field-stack{
    width:100%;
    display:grid;
    grid-template-columns:1fr;
    gap:12px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-subfield{
    width:100%;
    display:grid;
    grid-template-columns:1fr;
    gap:6px;
  }

  .modal-card.modal-asset-batch
  .asset-batch-subfield>span{
    display:block;
    font-size:10px;
    line-height:1.2;
  }

  .modal-card.modal-asset-batch
  .asset-batch-field-stack input,
  .modal-card.modal-asset-batch
  .asset-batch-subfield input{
    width:100%!important;
    min-width:0!important;
    min-height:50px;
    margin:0!important;
  }

  .modal-card.modal-asset-batch
  .asset-batch-scan-field{
    width:100%;
    grid-template-columns:minmax(0,1fr) 96px;
    margin:0;
  }

  .modal-card.modal-asset-batch
  .asset-batch-scan-field input{
    width:100%!important;
    margin:0!important;
  }

  .modal-card.modal-asset-batch
  .asset-batch-cell-equipment,
  .modal-card.modal-asset-batch
  .asset-batch-cell-network,
  .modal-card.modal-asset-batch
  .asset-batch-cell-identifiers{
    background:#fff!important;
  }

  .modal-card.modal-asset-batch
  .asset-batch-cell-small input{
    width:100%!important;
    margin:0!important;
  }
}


/* =========================================================
   4.1.6 - REPORTERÍA PROFESIONAL DE ACTIVOS
   ========================================================= */

.inventory-report-button{
  border-color:#3d7ea5!important;
  background:#e9f3f8!important;
  color:#24577c!important;
}

.equipment-report-builder{
  display:grid;
  gap:14px;
  color:#29445e;
}

.equipment-report-hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,.42fr);
  gap:18px;
  padding:22px;
  border-radius:17px;
  background:linear-gradient(120deg,#203f68,#3b7883);
  color:#fff;
}

.equipment-report-hero>div:first-child{
  min-width:0;
  display:grid;
  align-content:center;
  gap:6px;
}

.equipment-report-hero span{
  color:#b8d6e6;
  font-size:8px;
  font-weight:950;
  letter-spacing:.09em;
}

.equipment-report-hero h4{
  margin:0;
  color:#fff;
  font-size:23px;
}

.equipment-report-hero p{
  margin:0;
  color:#d7e6ef;
  font-size:10px;
  line-height:1.45;
}

.equipment-report-company{
  min-width:0;
  display:grid;
  align-content:center;
  gap:5px;
  padding:14px 16px;
  border:1px solid rgba(255,255,255,.2);
  border-radius:13px;
  background:rgba(255,255,255,.1);
}

.equipment-report-company small{
  color:#b8d6e6;
  font-size:7px;
  font-weight:950;
}

.equipment-report-company b{
  overflow:hidden;
  color:#fff;
  font-size:13px;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.equipment-report-company em{
  color:#d7e6ef;
  font-size:8px;
  font-style:normal;
}

.equipment-report-form{
  display:grid;
  gap:12px;
}

.equipment-report-section{
  overflow:hidden;
  border:1px solid #d7e3ec;
  border-radius:14px;
  background:#fff;
}

.equipment-report-section>header{
  display:flex;
  align-items:center;
  gap:10px;
  padding:11px 13px;
  border-bottom:1px solid #dce6ed;
  background:#f1f6f9;
}

.equipment-report-section>header>span{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  flex:0 0 34px;
  border-radius:10px;
  background:#315d88;
  color:#fff;
  font-size:14px;
  font-weight:950;
}

.equipment-report-section>header>div{
  min-width:0;
  display:grid;
  gap:2px;
}

.equipment-report-section>header b{
  color:#274761;
  font-size:12px;
}

.equipment-report-section>header small{
  color:#728699;
  font-size:8px;
}

.equipment-report-types{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:9px;
  padding:13px;
}

.equipment-report-type{
  position:relative;
  min-width:0;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  grid-template-rows:auto auto;
  align-items:center;
  gap:3px 9px;
  padding:12px;
  border:1px solid #dce5ed;
  border-radius:12px;
  background:#f9fbfc;
  cursor:pointer;
  transition:.16s ease;
}

.equipment-report-type:hover{
  transform:translateY(-1px);
  border-color:#b5cbd9;
}

.equipment-report-type.active{
  border-color:#315d88;
  background:#eaf3f8;
  box-shadow:0 0 0 3px rgba(49,93,136,.08);
}

.equipment-report-type input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}

.equipment-report-type>span{
  grid-row:1/3;
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:#e3edf5;
  color:#315d88;
  font-size:17px;
  font-weight:950;
}

.equipment-report-type.active>span{
  background:#315d88;
  color:#fff;
}

.equipment-report-type b{
  color:#2c4b66;
  font-size:10px;
}

.equipment-report-type small{
  overflow:hidden;
  color:#788b9d;
  font-size:7px;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.equipment-report-type-help{
  margin:0 13px 13px;
  padding:10px 12px;
  border-left:4px solid #3d7ea5;
  border-radius:8px;
  background:#eef6fa;
  color:#526b80;
  font-size:9px;
}

.equipment-report-grid{
  display:grid;
  gap:10px;
  padding:13px;
}

.equipment-report-grid.scope{
  grid-template-columns:repeat(3,minmax(0,1fr));
}

.equipment-report-grid.filters{
  grid-template-columns:repeat(4,minmax(0,1fr));
}

.equipment-report-grid label{
  min-width:0;
  display:grid;
  gap:5px;
  color:#3a5871;
  font-size:9px;
  font-weight:850;
}

.equipment-report-grid input,
.equipment-report-grid select{
  width:100%;
  min-width:0;
  min-height:43px;
  padding:9px 10px;
  border:1px solid #cad9e5;
  border-radius:10px;
  background:#fff;
  color:#2e4c67;
  font-size:10px;
}

.equipment-report-grid .span2{
  grid-column:span 2;
}

.equipment-report-actions{
  position:sticky;
  bottom:0;
  z-index:3;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:9px;
  padding:12px 13px;
  border:1px solid #d4e1ea;
  border-radius:13px;
  background:rgba(255,255,255,.96);
  box-shadow:0 -7px 20px rgba(27,57,87,.08);
  backdrop-filter:blur(8px);
}

.equipment-report-actions>div{
  min-width:0;
  display:grid;
  gap:2px;
  margin-right:auto;
}

.equipment-report-actions b{
  color:#274761;
  font-size:10px;
}

.equipment-report-actions small{
  color:#718598;
  font-size:7px;
}

@media(max-width:1100px){
  .equipment-report-types{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .equipment-report-grid.filters{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:700px){
  .equipment-report-hero{
    grid-template-columns:1fr;
    padding:17px;
  }

  .equipment-report-hero h4{
    font-size:19px;
  }

  .equipment-report-types,
  .equipment-report-grid.scope,
  .equipment-report-grid.filters{
    grid-template-columns:1fr;
  }

  .equipment-report-grid .span2{
    grid-column:auto;
  }

  .equipment-report-type{
    min-height:69px;
  }

  .equipment-report-type b{
    font-size:12px;
  }

  .equipment-report-type small{
    font-size:8px;
  }

  .equipment-report-grid label{
    font-size:11px;
  }

  .equipment-report-grid input,
  .equipment-report-grid select{
    min-height:50px;
    font-size:16px;
  }

  .equipment-report-actions{
    display:grid;
    grid-template-columns:1fr;
  }

  .equipment-report-actions>div{
    margin:0;
  }

  .equipment-report-actions .btn{
    width:100%;
    min-height:48px;
  }
}


/* =========================================================
   4.1.7 - SINCRONIZACIÓN SILENCIOSA DE LA AGENDA
   ========================================================= */

.agenda-live-status{
  width:max-content;
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-top:7px;
  padding:5px 8px;
  border:1px solid #cfe2d7;
  border-radius:999px;
  background:#f1f9f4;
  color:#47705a;
  font-size:8px;
  font-weight:800;
  line-height:1;
}

.agenda-live-status>i{
  width:7px;
  height:7px;
  flex:0 0 7px;
  border-radius:50%;
  background:#52b877;
  box-shadow:
    0 0 0 3px rgba(82,184,119,.12);
}

.agenda-live-status.refreshing{
  border-color:#c8d9e7;
  background:#f0f6fa;
  color:#42657f;
}

.agenda-live-status.refreshing>i{
  background:#3f7fa8;
  animation:
    agendaLivePulse
    .85s ease-in-out infinite;
}

.agenda-live-status.offline{
  border-color:#ead7a9;
  background:#fff8e8;
  color:#806723;
}

.agenda-live-status.offline>i{
  background:#d5a326;
  box-shadow:
    0 0 0 3px rgba(213,163,38,.12);
}

@keyframes agendaLivePulse{
  0%,100%{
    opacity:.45;
    transform:scale(.82);
  }

  50%{
    opacity:1;
    transform:scale(1.12);
  }
}

@media(max-width:700px){
  .agenda-live-status{
    margin-top:6px;
    font-size:7px;
  }
}


/* =========================================================
   4.1.8 - RELACIÓN AUTOMÁTICA ENTRE TICKET Y VISITA
   ========================================================= */


/* =========================================================
   4.2.0 - ERRORES, AUDITORÍA Y DIAGNÓSTICO CENTRALIZADO
   ========================================================= */
.diagnostic-code{display:inline-block;margin-top:5px;padding:4px 7px;border-radius:7px;background:#e8f0f7;color:#254f73;font-family:Consolas,"Courier New",monospace;font-size:9px;font-weight:900;letter-spacing:.02em}.diagnostic-code.large{font-size:12px}.trace-center-panel{overflow:visible}.trace-center-head{gap:14px}.trace-tab-buttons{display:flex;gap:7px}.trace-tab-buttons .btn.active{color:#fff;background:#315d88}.trace-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.trace-summary-grid article{display:grid;gap:4px;padding:13px;border:1px solid #d9e4ec;border-radius:12px;background:linear-gradient(145deg,#fff,#f5f9fc)}.trace-summary-grid small{color:#718598;font-size:8px;font-weight:900;text-transform:uppercase}.trace-summary-grid strong{color:#203f5e;font-size:25px}.trace-summary-grid span{color:#74879a;font-size:8px}.trace-filter-grid{display:grid;grid-template-columns:minmax(280px,2fr) repeat(2,minmax(150px,.65fr)) auto;align-items:end;gap:9px;margin-bottom:12px;padding:12px;border:1px solid #dce6ed;border-radius:12px;background:#f7fafc}.trace-filter-grid.audit-filters{grid-template-columns:minmax(250px,1.6fr) repeat(2,minmax(140px,.7fr)) repeat(2,minmax(130px,.55fr)) auto}.trace-filter-grid .field{min-width:0}.trace-filter-grid label{font-size:8px}.trace-filter-grid input,.trace-filter-grid select{min-height:40px;background:#fff}.trace-filter-grid>.btn{min-height:40px}.trace-table td{vertical-align:top}.trace-table td small{display:block;margin-top:4px;color:#76899a;font-size:8px;line-height:1.35}.trace-mobile-cards{display:none}.diagnostic-detail{display:grid;gap:14px}.diagnostic-detail-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.diagnostic-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.diagnostic-meta-grid .health-detail-row{border:1px solid #e0e8ee;border-radius:9px;background:#f8fafc}.diagnostic-detail section{padding:12px;border:1px solid #dce5ec;border-radius:10px;background:#fff}.diagnostic-detail section h4{margin:0 0 7px;color:#294966}.diagnostic-detail section p{margin:0;color:#536b80;line-height:1.55}.diagnostic-detail section pre{max-height:300px;margin:0;padding:12px;overflow:auto;border-radius:9px;white-space:pre-wrap;overflow-wrap:anywhere;color:#dbe8f1;background:#17293a;font-family:Consolas,"Courier New",monospace;font-size:10px;line-height:1.5}.diagnostic-review-form{display:grid;grid-template-columns:minmax(180px,.55fr) minmax(300px,1.45fr) auto;align-items:end;gap:10px;padding:13px;border:1px solid #cfe0eb;border-radius:11px;background:#f2f8fb}.diagnostic-review-form textarea{min-height:76px}.diagnostic-review-form .btn{min-height:42px}
@media(max-width:1150px){.trace-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.trace-filter-grid,.trace-filter-grid.audit-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.trace-filter-grid .trace-search{grid-column:1/-1}}
@media(max-width:900px){.trace-table{display:none}.trace-mobile-cards{display:grid;gap:9px}.trace-mobile-card{display:grid;gap:8px;padding:12px;border:1px solid #dce6ed;border-left:5px solid #c28b25;border-radius:11px;background:#fff}.trace-mobile-card.audit{border-left-color:#3d76a4}.trace-mobile-card>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:8px}.trace-mobile-card h4{margin:0;color:#29445e;font-size:13px}.trace-mobile-card p,.trace-mobile-card small{margin:0;color:#728597;font-size:9px;line-height:1.4}.trace-mobile-card .btn{width:100%}.diagnostic-review-form{grid-template-columns:1fr}.diagnostic-meta-grid{grid-template-columns:1fr}}
@media(max-width:600px){.trace-center-head{align-items:stretch}.trace-tab-buttons{display:grid;grid-template-columns:1fr 1fr}.trace-summary-grid{grid-template-columns:1fr 1fr}.trace-filter-grid,.trace-filter-grid.audit-filters{grid-template-columns:1fr}.trace-filter-grid .trace-search{grid-column:auto}.diagnostic-detail-head{align-items:flex-start;flex-direction:column}.diagnostic-code.large{font-size:10px}}


/* =========================================================
   4.3.0 - CONTROL DE ACTIVOS ARRENDADOS
   ========================================================= */
.asset-control-hero{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:27px 30px;border-radius:22px;background:linear-gradient(120deg,#17365d,#3f7887);color:#fff;box-shadow:0 18px 35px rgba(23,54,93,.14);margin-bottom:17px}.asset-control-hero span{font-size:9px;font-weight:900;letter-spacing:.12em;opacity:.76}.asset-control-hero h2{margin:6px 0 5px;font-size:25px}.asset-control-hero p{margin:0;max-width:720px;font-size:12px;line-height:1.5;opacity:.9}.asset-control-hero-actions{display:flex;gap:9px;flex:0 0 auto}.asset-control-metrics{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:11px;margin-bottom:16px}.asset-control-metrics article{min-height:105px;padding:16px;border:1px solid #d9e4ec;border-top:4px solid #547ba2;border-radius:15px;background:#fff;box-shadow:0 8px 20px rgba(27,56,86,.05)}.asset-control-metrics small{display:block;color:#697f92;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.asset-control-metrics b{display:block;margin:8px 0 5px;color:#17365d;font-size:23px}.asset-control-metrics span{color:#76899a;font-size:8px}.asset-control-metrics .available{border-top-color:#48a96d}.asset-control-metrics .repair{border-top-color:#d39b2a}.asset-control-metrics .pending{border-top-color:#c25950}.asset-control-metrics .expiring{border-top-color:#8a67b0}.asset-control-metrics .money{border-top-color:#4b8290}.asset-control-panel{padding:0 0 12px;overflow:visible}.asset-control-filters{display:grid;grid-template-columns:2fr repeat(6,minmax(130px,1fr));gap:10px;padding:15px;border-bottom:1px solid #dfe8ee}.asset-control-filters label{display:grid;gap:5px;color:#526a7e;font-size:8px;font-weight:850}.asset-control-filters input,.asset-control-filters select{min-width:0}.asset-control-selectbar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:#f7fafc;border-bottom:1px solid #e0e8ee}.asset-control-selectbar label{display:flex;align-items:center;gap:8px;font-size:9px;font-weight:800;color:#34516b}.asset-control-selectbar b{font-size:9px;color:#60798e}.asset-control-list{display:grid;gap:9px;padding:12px}.asset-control-card{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:12px;align-items:stretch;border:1px solid #d7e3eb;border-left:5px solid #416f9f;border-radius:15px;background:#fff;overflow:hidden;box-shadow:0 5px 14px rgba(23,54,93,.035)}.asset-control-check{display:flex;justify-content:center;padding-top:19px}.asset-control-check input{width:18px;height:18px}.asset-control-main{padding:14px 0}.asset-control-main header{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}.asset-control-main header small{color:#607b91;font-size:8px;font-weight:900}.asset-control-main header h4{margin:4px 0 3px;color:#17365d;font-size:14px}.asset-control-main header p{margin:0;color:#778a9b;font-size:8px}.asset-assignment-badge{display:inline-flex;align-items:center;justify-content:center;padding:6px 9px;border-radius:999px;background:#e7eff6;color:#315b83;font-size:8px;font-weight:900;white-space:nowrap}.asset-assignment-badge.available{background:#e1f4e7;color:#287046}.asset-assignment-badge.repair{background:#fff0d0;color:#865e12}.asset-assignment-badge.pending-return{background:#fbe3e1;color:#943f38}.asset-control-facts{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:7px;margin-top:12px}.asset-control-facts span{min-width:0;padding:8px;border-radius:9px;background:#f7f9fb}.asset-control-facts small{display:block;color:#778b9b;font-size:7px}.asset-control-facts b{display:block;margin-top:3px;color:#294761;font-size:8.5px;overflow-wrap:anywhere}.asset-control-actions{display:flex;flex-direction:column;justify-content:center;gap:6px;padding:12px;border-left:1px solid #e0e8ee;background:#f8fafc}.asset-control-actions .btn{white-space:nowrap}.asset-control-bulkbar{position:sticky;bottom:12px;z-index:110;display:none;align-items:center;gap:9px;max-width:1050px;margin:12px auto;padding:11px 13px;border:1px solid #7ea1c1;border-radius:14px;background:linear-gradient(110deg,#244d78,#3e7593);color:#fff;box-shadow:0 14px 30px rgba(18,45,72,.25)}.asset-control-bulkbar.active{display:flex}.asset-control-bulkbar>div{margin-right:auto}.asset-control-bulkbar b,.asset-control-bulkbar small{display:block}.asset-control-bulkbar b{font-size:10px}.asset-control-bulkbar small{font-size:7px;opacity:.78}.asset-control-recent-panel{margin-top:15px}.asset-control-recent{display:grid}.asset-movement-row{display:grid;grid-template-columns:120px minmax(0,1fr) 180px;gap:12px;align-items:center;padding:12px 16px;border:0;border-bottom:1px solid #e1e8ee;background:#fff;text-align:left;cursor:pointer}.asset-movement-row:hover{background:#f7fafc}.asset-movement-row>span b,.asset-movement-row>span small{display:block}.asset-movement-row b{font-size:9px;color:#234562}.asset-movement-row small{margin-top:3px;font-size:7.5px;color:#768b9d}.asset-movement-type{width:max-content;padding:5px 8px;border-radius:999px;background:#e9f1f7;color:#315d86;font-size:7px;font-weight:900}.asset-movement-form{display:grid;gap:14px}.asset-movement-summary{display:flex;justify-content:space-between;align-items:center;padding:14px;border-radius:14px;background:#f1f6fa;border:1px solid #d5e2eb}.asset-movement-summary small,.asset-movement-summary b,.asset-movement-summary p{display:block}.asset-movement-summary small{font-size:7px;color:#688196;font-weight:900}.asset-movement-summary b{margin:4px 0;color:#17365d;font-size:15px}.asset-movement-summary p{margin:0;color:#6f8394;font-size:8px}.asset-movement-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.asset-movement-grid label,.asset-movement-evidence label{display:grid;gap:5px;color:#405c74;font-size:9px;font-weight:850}.asset-movement-grid .span2{grid-column:span 2}.asset-network-choice{display:flex!important;grid-template-columns:auto 1fr!important;align-items:flex-start;gap:10px!important;padding:10px;border-radius:11px;background:#eef5fa}.asset-network-choice input{width:19px;height:19px}.asset-network-choice b,.asset-network-choice small{display:block}.asset-network-choice small{margin-top:3px;font-size:7px;font-weight:500;color:#71889a}.asset-movement-gps{display:flex;justify-content:space-between;align-items:center;padding:11px;border:1px solid #d7e3eb;border-radius:12px}.asset-movement-gps b,.asset-movement-gps small{display:block}.asset-movement-gps b{font-size:9px;color:#264c6d}.asset-movement-gps small{font-size:7.5px;color:#748a9c}.asset-movement-gps .captured b{color:#287046}.asset-movement-evidence{padding:12px;border:1px dashed #c4d5e2;border-radius:12px;background:#f8fbfd}.asset-movement-evidence small{font-size:7px;color:#748a9c}.asset-movement-signature{display:grid;gap:8px}.asset-movement-signature b,.asset-movement-signature small{display:block}.asset-movement-signature b{font-size:10px;color:#17365d}.asset-movement-signature small{font-size:7.5px;color:#74899a}.asset-movement-signature canvas{width:100%;height:150px;border:1px solid #c9d8e4;border-radius:12px;background:#fff;touch-action:none}.asset-movement-signature .btn{width:max-content}.asset-movement-pdf-option{display:flex;align-items:center;gap:8px;font-size:9px;font-weight:800;color:#35546e}.asset-movement-detail{display:grid;gap:15px}.asset-movement-detail-hero{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px;border-radius:15px;background:linear-gradient(110deg,#17365d,#437b88);color:#fff}.asset-movement-detail-hero small{font-size:7px;font-weight:900;letter-spacing:.08em}.asset-movement-detail-hero h4{margin:4px 0;font-size:18px}.asset-movement-detail-hero p{margin:0;font-size:8px;opacity:.82}.asset-movement-items{display:grid;gap:7px}.asset-movement-items h4,.asset-movement-saved-signature h4,.asset-movement-evidence-grid h4{color:#17365d}.asset-movement-items button{display:flex;justify-content:space-between;gap:12px;padding:10px;border:1px solid #dce5ec;border-radius:10px;background:#fff;text-align:left}.asset-movement-items b,.asset-movement-items small{display:block}.asset-movement-items b{font-size:9px;color:#234561}.asset-movement-items small{margin-top:3px;font-size:7px;color:#768b9d}.asset-movement-items em{font-size:8px;color:#526f86}.asset-movement-saved-signature img{max-width:300px;max-height:130px;border:1px solid #d8e2ea;border-radius:10px;background:#fff}.asset-movement-evidence-grid>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.asset-movement-evidence-grid a{display:grid;gap:5px;text-decoration:none;color:#294a65}.asset-movement-evidence-grid img{width:100%;height:135px;object-fit:cover;border-radius:10px;border:1px solid #d8e2e9}.asset-movement-evidence-grid span{font-size:8px;font-weight:750}.asset-history-timeline header{padding:15px;border-radius:13px;background:#eef4f8}.asset-history-timeline header span{font-size:8px;font-weight:900;color:#5c7890}.asset-history-timeline header h4{margin:4px 0;color:#17365d}.asset-history-timeline header p{margin:0;font-size:8px;color:#718697}.asset-history-timeline>button{position:relative;display:grid;grid-template-columns:18px 1fr;width:100%;gap:8px;padding:13px 4px;border:0;border-bottom:1px solid #e0e8ee;background:#fff;text-align:left}.asset-history-timeline>button i{width:10px;height:10px;margin-top:4px;border:3px solid #d8e8f4;border-radius:50%;background:#3c77a4}.asset-history-timeline b,.asset-history-timeline small,.asset-history-timeline em{display:block}.asset-history-timeline b{font-size:9px;color:#234561}.asset-history-timeline small{margin-top:3px;font-size:7.5px;color:#71889b}.asset-history-timeline em{margin-top:4px;font-size:7px;color:#8a9aa8}
@media(max-width:1450px){.asset-control-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.asset-control-filters{grid-template-columns:2fr repeat(3,minmax(140px,1fr))}.asset-control-facts{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:900px){.asset-control-hero{align-items:flex-start;flex-direction:column}.asset-control-hero-actions{width:100%}.asset-control-hero-actions .btn{flex:1}.asset-control-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.asset-control-filters{grid-template-columns:1fr 1fr}.asset-control-card{grid-template-columns:34px minmax(0,1fr)}.asset-control-actions{grid-column:1/-1;flex-direction:row;border-left:0;border-top:1px solid #e0e8ee}.asset-control-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.asset-movement-grid{grid-template-columns:1fr 1fr}.asset-movement-row{grid-template-columns:100px 1fr}.asset-movement-row>span:last-child{grid-column:2}.asset-movement-evidence-grid>div{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.asset-control-hero{padding:21px 18px;border-radius:16px}.asset-control-hero h2{font-size:21px}.asset-control-hero-actions{flex-direction:column}.asset-control-metrics{gap:8px}.asset-control-metrics article{min-height:92px;padding:12px}.asset-control-metrics b{font-size:20px}.asset-control-filters{grid-template-columns:1fr;padding:12px}.asset-control-card{grid-template-columns:31px minmax(0,1fr)}.asset-control-main header{flex-direction:column}.asset-control-facts{grid-template-columns:1fr 1fr}.asset-control-actions{display:grid;grid-template-columns:1fr 1fr}.asset-control-actions .btn:last-child{grid-column:1/-1}.asset-control-bulkbar{bottom:8px;flex-wrap:wrap;margin:8px}.asset-control-bulkbar>div{width:100%;margin:0}.asset-control-bulkbar .btn{flex:1}.asset-movement-grid{grid-template-columns:1fr}.asset-movement-grid .span2{grid-column:auto}.asset-movement-summary{align-items:flex-start;flex-direction:column}.asset-movement-gps{align-items:flex-start;flex-direction:column;gap:9px}.asset-movement-row{grid-template-columns:1fr}.asset-movement-row>span:last-child{grid-column:auto}.asset-movement-evidence-grid>div{grid-template-columns:1fr}.asset-movement-form .actions{position:sticky;bottom:0;padding:10px;background:#fff;border-top:1px solid #dfe8ee}.asset-control-selectbar{align-items:flex-start;flex-direction:column;gap:8px}}


/* =========================================================
   4.3.1 - ACTIVOS ARRENDADOS MÁS LEGIBLES EN COMPUTADORA
   ========================================================= */

@media(min-width:901px){
  .asset-control-hero{
    padding:29px 31px;
  }

  .asset-control-hero span{
    font-size:11px;
    line-height:1.25;
  }

  .asset-control-hero h2{
    margin:7px 0 6px;
    font-size:28px;
    line-height:1.15;
  }

  .asset-control-hero p{
    max-width:820px;
    font-size:14px;
    line-height:1.5;
  }

  .asset-control-hero-actions{
    gap:11px;
  }

  .asset-control-hero-actions .btn{
    min-height:46px;
    padding:0 18px;
    font-size:13px;
  }

  .asset-control-metrics{
    gap:13px;
    margin-bottom:18px;
  }

  .asset-control-metrics article{
    min-height:122px;
    padding:18px;
  }

  .asset-control-metrics small{
    font-size:10px;
    line-height:1.25;
  }

  .asset-control-metrics b{
    margin:10px 0 7px;
    font-size:28px;
    line-height:1;
  }

  .asset-control-metrics span{
    font-size:10px;
    line-height:1.35;
  }

  .asset-control-filters{
    grid-template-columns:
      minmax(260px,2fr)
      repeat(6,minmax(145px,1fr));
    gap:12px;
    padding:18px;
  }

  .asset-control-filters label{
    gap:7px;
    font-size:10.5px;
    line-height:1.2;
  }

  .asset-control-filters input,
  .asset-control-filters select{
    min-height:44px;
    padding:0 12px;
    font-size:12.5px;
  }

  .asset-control-filters input::placeholder{
    font-size:11.5px;
  }

  .asset-control-selectbar{
    min-height:54px;
    padding:12px 18px;
  }

  .asset-control-selectbar label{
    gap:10px;
    font-size:11px;
  }

  .asset-control-selectbar input{
    width:19px;
    height:19px;
  }

  .asset-control-selectbar b{
    font-size:11px;
  }

  .asset-control-list{
    gap:12px;
    padding:14px;
  }

  .asset-control-card{
    grid-template-columns:40px minmax(0,1fr) auto;
    gap:14px;
    border-radius:16px;
  }

  .asset-control-check{
    padding-top:24px;
  }

  .asset-control-check input{
    width:20px;
    height:20px;
  }

  .asset-control-main{
    padding:18px 0;
  }

  .asset-control-main header{
    gap:17px;
  }

  .asset-control-main header small{
    font-size:10px;
    line-height:1.3;
  }

  .asset-control-main header h4{
    margin:5px 0 4px;
    font-size:17px;
    line-height:1.2;
  }

  .asset-control-main header p{
    font-size:10.5px;
    line-height:1.4;
  }

  .asset-assignment-badge{
    padding:7px 11px;
    font-size:10px;
  }

  .asset-control-facts{
    gap:9px;
    margin-top:14px;
  }

  .asset-control-facts span{
    min-height:55px;
    padding:10px;
  }

  .asset-control-facts small{
    font-size:9px;
    line-height:1.25;
  }

  .asset-control-facts b{
    margin-top:5px;
    font-size:11px;
    line-height:1.3;
  }

  .asset-control-actions{
    min-width:180px;
    gap:8px;
    padding:14px;
  }

  .asset-control-actions .btn{
    min-height:43px;
    padding:0 14px;
    font-size:12.5px;
  }

  .asset-control-bulkbar b{
    font-size:12px;
  }

  .asset-control-bulkbar small{
    margin-top:3px;
    font-size:9px;
  }

  .asset-movement-row{
    grid-template-columns:145px minmax(0,1fr) 220px;
    gap:15px;
    min-height:66px;
    padding:14px 18px;
  }

  .asset-movement-row b{
    font-size:11px;
    line-height:1.3;
  }

  .asset-movement-row small{
    margin-top:4px;
    font-size:9px;
    line-height:1.35;
  }

  .asset-movement-type{
    padding:6px 9px;
    font-size:9px;
  }

  .asset-history-timeline header span{
    font-size:10px;
  }

  .asset-history-timeline header h4{
    font-size:16px;
  }

  .asset-history-timeline header p{
    font-size:10px;
  }

  .asset-history-timeline b{
    font-size:11px;
  }

  .asset-history-timeline small{
    font-size:9px;
  }

  .asset-history-timeline em{
    font-size:8.5px;
  }
}

@media(min-width:901px) and (max-width:1500px){
  .asset-control-filters{
    grid-template-columns:
      minmax(260px,2fr)
      repeat(3,minmax(160px,1fr));
  }

  .asset-control-facts{
    grid-template-columns:
      repeat(4,minmax(0,1fr));
  }
}


/* =========================================================
   4.3.2 - PANEL CORPORATIVO SEPARADO DE LA EMPRESA ACTIVA
   ========================================================= */

.asset-control-workspace{
  display:grid;
  gap:17px;
}

.asset-control-hero-side{
  min-width:330px;
  display:grid;
  align-content:center;
  justify-items:end;
  gap:11px;
}

.asset-control-context-card{
  min-width:315px;
  display:grid;
  gap:4px;
  padding:12px 15px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:13px;
  background:rgba(255,255,255,.09);
  color:#fff;
}

.asset-control-context-card small{
  color:rgba(255,255,255,.72);
  font-size:7px;
  font-weight:950;
  letter-spacing:.08em;
}

.asset-control-context-card b{
  font-size:13px;
  line-height:1.25;
}

.asset-control-context-card span{
  color:rgba(255,255,255,.78);
  font-size:8px;
  line-height:1.35;
}

.asset-control-workspace.corporate-view
.asset-control-hero{
  background:
    linear-gradient(
      112deg,
      #202f56,
      #445f86 56%,
      #416f73
    );
}

.asset-control-workspace.corporate-view
.asset-control-context-card{
  border-color:rgba(205,224,255,.28);
  background:rgba(15,30,58,.22);
}

.asset-control-workspace.local-view
.asset-control-hero{
  background:
    linear-gradient(
      112deg,
      #294565,
      #466e80
    );
}

#corporateAssets.active{
  animation:
    corporateAssetsOpen
    .18s ease;
}

@keyframes corporateAssetsOpen{
  from{
    opacity:.65;
    transform:translateY(4px);
  }

  to{
    opacity:1;
    transform:translateY(0);
  }
}

@media(min-width:901px){
  .asset-control-workspace
  .asset-control-filters{
    grid-template-columns:
      minmax(270px,2fr)
      repeat(4,minmax(155px,1fr));
  }

  .asset-control-workspace.corporate-view
  .asset-control-filters{
    grid-template-columns:
      minmax(270px,2fr)
      repeat(5,minmax(145px,1fr));
  }

  .asset-control-hero-side
  .asset-control-hero-actions{
    justify-content:flex-end;
  }
}

@media(max-width:900px){
  .asset-control-hero-side{
    width:100%;
    min-width:0;
    justify-items:stretch;
  }

  .asset-control-context-card{
    width:100%;
    min-width:0;
  }
}

@media(max-width:600px){
  .asset-control-context-card{
    padding:11px 13px;
  }

  .asset-control-context-card b{
    font-size:12px;
  }

  .asset-control-workspace.corporate-view
  .asset-control-hero h2{
    font-size:20px;
  }
}


/* =========================================================
   4.3.3 - MOVIMIENTOS LOCALES Y CORPORATIVOS SEPARADOS
   ========================================================= */

.asset-movement-company-locked{
  padding:12px 14px;
  border:1px solid #cfddeb;
  border-radius:12px;
  background:#f3f7fb;
}

.asset-movement-company-locked input,
.asset-movement-company-origin input{
  font-weight:850;
  color:#274262;
  background:#eaf1f7;
}

.asset-movement-company-locked small{
  display:block;
  margin-top:6px;
  color:#61758c;
  font-size:8px;
  font-weight:650;
  line-height:1.4;
}

.asset-movement-form.local-movement
.asset-movement-summary{
  border-left:5px solid #4382a9;
}

.asset-movement-form.corporate-movement
.asset-movement-summary{
  border-left:5px solid #6f5bb0;
}

.asset-movement-form.local-movement
.asset-movement-grid{
  grid-template-columns:
    repeat(4,minmax(0,1fr));
}

.asset-movement-form.local-movement
.asset-movement-company-locked{
  grid-column:span 2;
}

@media(max-width:900px){
  .asset-movement-form.local-movement
  .asset-movement-grid{
    grid-template-columns:
      repeat(2,minmax(0,1fr));
  }
}

@media(max-width:600px){
  .asset-movement-form.local-movement
  .asset-movement-grid{
    grid-template-columns:1fr;
  }

  .asset-movement-form.local-movement
  .asset-movement-company-locked,
  .asset-movement-form.local-movement
  .span2{
    grid-column:auto;
  }
}


/* =========================================================
   4.3.4 - FORMULARIO DE MOVIMIENTOS LEGIBLE Y VERIFICABLE
   ========================================================= */

.asset-movement-selected-panel{
  display:grid;
  gap:11px;
  padding:14px;
  border:1px solid #cbdbe7;
  border-radius:14px;
  background:#f8fbfd;
}

.asset-movement-selected-panel>header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:15px;
}

.asset-movement-selected-panel>header small{
  display:block;
  color:#648097;
  font-size:7px;
  font-weight:950;
  letter-spacing:.08em;
}

.asset-movement-selected-panel>header h3{
  margin:4px 0 3px;
  color:#183a5e;
  font-size:15px;
  line-height:1.2;
}

.asset-movement-selected-panel>header p{
  margin:0;
  color:#70869a;
  font-size:8px;
  line-height:1.4;
}

.asset-movement-selected-panel>header>b{
  flex:0 0 auto;
  padding:7px 10px;
  border-radius:999px;
  background:#e5eef6;
  color:#315c83;
  font-size:8px;
  white-space:nowrap;
}

.asset-movement-selected-list{
  display:grid;
  gap:9px;
  max-height:360px;
  overflow:auto;
  padding-right:3px;
}

.asset-movement-selected-card{
  display:grid;
  grid-template-columns:
    minmax(190px,1.15fr)
    minmax(0,2.5fr)
    auto;
  gap:12px;
  align-items:center;
  padding:12px;
  border:1px solid #d8e4ec;
  border-left:4px solid #477dab;
  border-radius:12px;
  background:#fff;
}

.asset-movement-selected-identity small{
  display:block;
  color:#56748c;
  font-size:7.5px;
  font-weight:900;
}

.asset-movement-selected-identity h4{
  margin:4px 0 3px;
  color:#173b5e;
  font-size:14px;
  line-height:1.2;
}

.asset-movement-selected-identity p{
  margin:0;
  color:#708397;
  font-size:8px;
  line-height:1.35;
}

.asset-movement-selected-facts{
  display:grid;
  grid-template-columns:
    repeat(3,minmax(0,1fr));
  gap:7px;
}

.asset-movement-selected-facts span{
  min-width:0;
  padding:8px;
  border-radius:9px;
  background:#f3f7fa;
}

.asset-movement-selected-facts small{
  display:block;
  color:#71879a;
  font-size:7px;
}

.asset-movement-selected-facts b{
  display:block;
  margin-top:3px;
  color:#294b67;
  font-size:8.5px;
  line-height:1.3;
  overflow-wrap:anywhere;
}

.asset-movement-selected-action{
  display:grid;
  justify-items:end;
  gap:8px;
}

.btn-danger-outline{
  border:1px solid #e2aaa6;
  background:#fff4f3;
  color:#a13d37;
}

.btn-danger-outline:hover{
  border-color:#c9635c;
  background:#fbe3e1;
}

@media(min-width:901px){
  .asset-movement-form{
    gap:19px;
  }

  .asset-movement-summary{
    min-height:86px;
    padding:18px 20px;
  }

  .asset-movement-summary small{
    font-size:9px;
  }

  .asset-movement-summary b{
    margin:6px 0 5px;
    font-size:21px;
  }

  .asset-movement-summary p{
    font-size:11px;
    line-height:1.45;
  }

  .asset-movement-selected-panel{
    gap:14px;
    padding:18px;
  }

  .asset-movement-selected-panel>header small{
    font-size:9px;
  }

  .asset-movement-selected-panel>header h3{
    margin-top:5px;
    font-size:19px;
  }

  .asset-movement-selected-panel>header p{
    font-size:11px;
  }

  .asset-movement-selected-panel>header>b{
    padding:9px 13px;
    font-size:10px;
  }

  .asset-movement-selected-card{
    grid-template-columns:
      minmax(230px,1.1fr)
      minmax(0,2.6fr)
      125px;
    gap:15px;
    padding:15px;
  }

  .asset-movement-selected-identity small{
    font-size:9.5px;
  }

  .asset-movement-selected-identity h4{
    margin:5px 0 4px;
    font-size:17px;
  }

  .asset-movement-selected-identity p{
    font-size:10.5px;
  }

  .asset-movement-selected-facts{
    gap:9px;
  }

  .asset-movement-selected-facts span{
    min-height:54px;
    padding:10px;
  }

  .asset-movement-selected-facts small{
    font-size:8.5px;
  }

  .asset-movement-selected-facts b{
    margin-top:5px;
    font-size:10.5px;
  }

  .asset-movement-selected-action .btn{
    min-width:105px;
    min-height:39px;
    font-size:11px;
  }

  .asset-movement-form
  .asset-movement-grid{
    gap:14px;
  }

  .asset-movement-form
  .asset-movement-grid label,
  .asset-movement-form
  .asset-movement-evidence label{
    gap:7px;
    font-size:11.5px;
    line-height:1.25;
  }

  .asset-movement-form
  .asset-movement-grid input,
  .asset-movement-form
  .asset-movement-grid select{
    min-height:48px;
    padding:0 13px;
    font-size:13px;
  }

  .asset-movement-form
  .asset-movement-grid textarea{
    min-height:112px;
    padding:13px;
    font-size:13px;
    line-height:1.45;
  }

  .asset-movement-company-locked{
    padding:14px 16px;
  }

  .asset-movement-company-locked small{
    margin-top:8px;
    font-size:10px;
  }

  .asset-movement-gps{
    min-height:68px;
    padding:14px 16px;
  }

  .asset-movement-gps b{
    font-size:11.5px;
  }

  .asset-movement-gps small{
    margin-top:4px;
    font-size:10px;
  }

  .asset-movement-gps .btn{
    min-height:44px;
    padding:0 18px;
    font-size:12px;
  }

  .asset-movement-evidence{
    padding:16px;
  }

  .asset-movement-evidence input{
    min-height:42px;
    padding:7px;
    font-size:11px;
  }

  .asset-movement-evidence small{
    font-size:9.5px;
  }

  .asset-movement-signature{
    gap:11px;
  }

  .asset-movement-signature b{
    font-size:12.5px;
  }

  .asset-movement-signature small{
    margin-top:3px;
    font-size:10px;
  }

  .asset-movement-signature canvas{
    height:190px;
  }

  .asset-movement-pdf-option{
    gap:10px;
    font-size:11.5px;
  }

  .asset-movement-pdf-option input{
    width:19px;
    height:19px;
  }

  .asset-movement-form .actions{
    gap:11px;
  }

  .asset-movement-form .actions .btn{
    min-height:45px;
    padding:0 18px;
    font-size:12.5px;
  }
}

@media(max-width:900px){
  .asset-movement-selected-card{
    grid-template-columns:1fr;
  }

  .asset-movement-selected-action{
    grid-template-columns:1fr auto;
    align-items:center;
    justify-items:start;
  }

  .asset-movement-selected-facts{
    grid-template-columns:
      repeat(2,minmax(0,1fr));
  }
}

@media(max-width:600px){
  .asset-movement-selected-panel>header{
    flex-direction:column;
  }

  .asset-movement-selected-facts{
    grid-template-columns:1fr;
  }

  .asset-movement-selected-action{
    width:100%;
  }
}


/* =========================================================
   4.3.5 - SINCRONIZACIÓN OPERATIVA SILENCIOSA GLOBAL
   ========================================================= */

.asset-control-live-status{
  display:flex;
  align-items:center;
  gap:6px;
  margin-top:3px;
  color:rgba(255,255,255,.84);
  font-size:8px;
  font-weight:750;
  line-height:1.3;
}

.asset-control-live-status>i{
  width:8px;
  height:8px;
  flex:0 0 8px;
  border-radius:999px;
  background:#72dc91;
  box-shadow:
    0 0 0 3px
    rgba(114,220,145,.14);
}

.asset-control-live-status.refreshing>i{
  background:#f3cf67;
  animation:
    operationalSyncPulse
    .8s ease-in-out
    infinite alternate;
}

.asset-control-live-status.pending>i{
  background:#e9a84e;
}

@keyframes operationalSyncPulse{
  from{
    opacity:.45;
    transform:scale(.82);
  }

  to{
    opacity:1;
    transform:scale(1.1);
  }
}

@media(min-width:901px){
  .asset-control-live-status{
    margin-top:5px;
    font-size:9px;
  }
}


/* =========================================================
   4.3.6 - BARRA DE SELECCIÓN FLOTANTE EN MÓVIL
   ========================================================= */

.asset-control-clear-short{
  display:none;
}

@media(max-width:900px){
  .asset-control-workspace.bulk-selection-active{
    padding-bottom:
      calc(
        118px +
        env(safe-area-inset-bottom,0px)
      );
  }

  .asset-control-bulkbar{
    position:fixed;
    left:max(
      12px,
      env(safe-area-inset-left,0px)
    );
    right:max(
      12px,
      env(safe-area-inset-right,0px)
    );
    bottom:
      calc(
        10px +
        env(safe-area-inset-bottom,0px)
      );
    z-index:1450;
    width:auto;
    max-width:720px;
    margin:0 auto;
    padding:10px 12px;
    border:1px solid rgba(177,207,231,.78);
    border-radius:17px;
    box-shadow:
      0 18px 42px
      rgba(14,36,61,.34);
    backdrop-filter:
      blur(14px);
    -webkit-backdrop-filter:
      blur(14px);
  }

  .asset-control-bulkbar.active{
    display:grid;
    grid-template-columns:
      auto
      minmax(0,1fr)
      auto;
    align-items:center;
    gap:9px;
    animation:
      assetBulkBarEnter
      .2s ease-out;
  }

  .asset-control-bulkbar>div{
    width:auto;
    min-width:96px;
    margin:0;
  }

  .asset-control-bulkbar b{
    font-size:13px;
    line-height:1.2;
    white-space:nowrap;
  }

  .asset-control-bulkbar small{
    margin-top:2px;
    font-size:8px;
    line-height:1.25;
  }

  .asset-control-bulkbar .btn{
    min-height:46px;
    padding:0 14px;
    border-radius:12px;
    font-size:12px;
    white-space:nowrap;
  }

  .asset-control-bulkbar .btn-primary{
    min-width:0;
  }

  .asset-control-bulk-clear{
    padding-inline:11px!important;
  }
}

@media(max-width:600px){
  .asset-control-workspace.bulk-selection-active{
    padding-bottom:
      calc(
        132px +
        env(safe-area-inset-bottom,0px)
      );
  }

  .asset-control-bulkbar{
    left:max(
      10px,
      env(safe-area-inset-left,0px)
    );
    right:max(
      10px,
      env(safe-area-inset-right,0px)
    );
    bottom:
      calc(
        8px +
        env(safe-area-inset-bottom,0px)
      );
    padding:10px;
  }

  .asset-control-bulkbar.active{
    grid-template-columns:
      minmax(0,1fr)
      auto;
    gap:8px;
  }

  .asset-control-bulkbar>div{
    grid-column:1;
    grid-row:1;
    min-width:0;
  }

  .asset-control-bulkbar>div small{
    display:none;
  }

  .asset-control-bulkbar b{
    font-size:13px;
  }

  .asset-control-bulkbar .btn-primary{
    grid-column:1/-1;
    grid-row:2;
    width:100%;
    min-height:50px;
    font-size:14px;
  }

  .asset-control-bulk-clear{
    grid-column:2;
    grid-row:1;
    min-height:34px!important;
    padding:0 11px!important;
    border-color:rgba(255,255,255,.32)!important;
    background:rgba(255,255,255,.12)!important;
    color:#fff!important;
    font-size:10px!important;
  }

  .asset-control-clear-long{
    display:none;
  }

  .asset-control-clear-short{
    display:inline;
  }
}

@keyframes assetBulkBarEnter{
  from{
    opacity:0;
    transform:
      translateY(16px)
      scale(.98);
  }

  to{
    opacity:1;
    transform:
      translateY(0)
      scale(1);
  }
}

/* 4.4.0 - PORTAL DEL CLIENTE Y CENTRO DE NOTIFICACIONES */
.client-only.hidden{display:none!important}.notification-button{position:relative}.notification-count{min-width:20px;height:20px;display:inline-grid;place-items:center;padding:0 5px;border-radius:99px;background:#d13b3b;color:#fff;font-size:10px;font-style:normal;font-weight:900}.client-hero,.notification-hero{display:flex;justify-content:space-between;gap:22px;padding:28px 30px;border-radius:22px;background:linear-gradient(112deg,#203c67,#416987 58%,#4a8583);color:#fff;box-shadow:0 16px 34px rgba(30,57,88,.16)}.client-hero span,.notification-hero span{font-size:10px;font-weight:950;letter-spacing:.1em;opacity:.75}.client-hero h2,.notification-hero h2{margin:7px 0 6px;color:#fff;font-size:29px}.client-hero p,.notification-hero p{margin:0;opacity:.86;font-size:13px}.client-hero>div:last-child{min-width:290px;display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:14px;border:1px solid rgba(255,255,255,.2);border-radius:15px;background:rgba(255,255,255,.08)}.client-hero>div:last-child small,.client-hero>div:last-child b{grid-column:1/-1}.notification-hero>div:last-child{display:flex;align-items:center;gap:9px}.client-kpis,.notification-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:13px;margin:17px 0}.notification-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.client-kpis article,.notification-kpis article{min-height:105px;padding:17px;border:1px solid #d6e1ec;border-top:4px solid #567ca5;border-radius:16px;background:#fff}.client-kpis small,.notification-kpis small{color:#60748a;font-size:9px;font-weight:900;text-transform:uppercase}.client-kpis b,.notification-kpis b{display:block;margin-top:11px;color:#183b62;font-size:28px}.client-controls{display:flex;justify-content:space-between;gap:14px;margin-bottom:14px;padding:12px;border:1px solid #d5e0eb;border-radius:16px;background:#fff}.client-controls>div{display:flex;gap:7px;flex-wrap:wrap}.client-controls button{min-height:42px;padding:0 16px;border:1px solid #d5e0eb;border-radius:11px;background:#eff4f8;color:#234565;font-weight:850}.client-controls button.active{background:#305c8b;color:#fff}.client-controls input{min-width:340px;min-height:44px;padding:0 13px;border:1px solid #cad8e5;border-radius:11px}.client-tab-page{display:none;padding:18px;border:1px solid #d5e0eb;border-radius:18px;background:#fff}.client-tab-page.active{display:block}.client-tab-page>header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:13px;border-bottom:1px solid #e2e9f0}.client-tab-page>header span{font-size:9px;font-weight:950;color:#68809a}.client-tab-page>header h3{margin:4px 0;color:#183b62;font-size:20px}.client-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.client-card{display:block;padding:16px;border:1px solid #d9e3ec;border-left:5px solid #4c7aa8;border-radius:15px;background:#fff;color:inherit;text-align:left}.client-card header{display:flex;justify-content:space-between;gap:10px}.client-card header>span{color:#587591;font-size:9px;font-weight:900}.client-card h4{margin:8px 0 5px;color:#173b60;font-size:16px}.client-card>p{min-height:31px;margin:0 0 13px;color:#6d8093;font-size:10.5px;line-height:1.5}.client-card>div:not(.portal-progress){display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.client-card>div span{padding:9px;border-radius:10px;background:#f3f7fa}.client-card small,.portal-facts small{display:block;color:#7b8b9a;font-size:8px}.client-card b,.portal-facts b{display:block;margin-top:4px;color:#294a67;font-size:10px;overflow-wrap:anywhere}.client-card footer{display:flex;justify-content:flex-end;gap:8px;margin-top:13px}.portal-progress{height:8px;margin:13px 0;border-radius:99px;background:#e6edf3;overflow:hidden}.portal-progress i{display:block;height:100%;background:linear-gradient(90deg,#3e76a6,#4d9b88)}.portal-empty{grid-column:1/-1;min-height:150px;display:grid;place-items:center;align-content:center;padding:28px;border:1px dashed #cbd8e4;border-radius:14px;background:#f8fafc;text-align:center}.portal-empty p{margin:5px 0;color:#7a8b9a}.portal-form,.portal-detail{display:grid;gap:15px}.portal-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.portal-form-grid label{display:grid;gap:6px;font-size:11px;font-weight:850}.portal-form-grid .wide{grid-column:1/-1}.portal-form-grid input,.portal-form-grid select{min-height:46px;padding:0 12px;border:1px solid #cbd9e5;border-radius:11px}.portal-form-grid textarea{min-height:125px;padding:12px;border:1px solid #cbd9e5;border-radius:11px}.portal-form footer,.portal-detail footer{display:flex;justify-content:flex-end;gap:9px}.portal-detail>header{display:flex;justify-content:space-between;gap:15px;padding:16px;border:1px solid #d6e1eb;border-radius:14px;background:#f5f8fb}.portal-detail h3{margin:5px 0;color:#183b62}.portal-detail p{color:#5f7488;line-height:1.5}.portal-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.portal-facts span{padding:10px;border-radius:10px;background:#f1f5f8}.portal-detail>section{padding:14px;border:1px solid #d9e3ec;border-radius:13px}.portal-comment{margin-top:8px;padding:10px;border-radius:10px;background:#f3f7fa}.portal-comment em{margin-left:8px;color:#8796a4;font-size:8px}.portal-comment-form{display:grid;grid-template-columns:1fr auto;gap:9px;align-items:end}.portal-comment-form textarea{min-height:80px;padding:10px;border:1px solid #cbd9e5;border-radius:10px}.notification-toolbar{display:flex;justify-content:flex-end;margin-bottom:11px;padding:12px;border:1px solid #d7e2eb;border-radius:13px;background:#fff}.notification-list{display:grid;gap:10px}.notification-card{display:grid;grid-template-columns:46px 1fr auto;gap:12px;align-items:center;padding:13px;border:1px solid #d8e3ec;border-left:5px solid #6c89a6;border-radius:14px;background:#fff}.notification-card.critical{border-left-color:#c33f3f}.notification-card.warning{border-left-color:#d09a28}.notification-card.success{border-left-color:#4b9a68}.notification-card.read{opacity:.72}.notification-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:11px;background:#eaf1f6;color:#305c82;font-size:17px;font-weight:900}.notification-card>button{border:0;background:transparent;text-align:left}.notification-card>button header{display:flex;justify-content:space-between}.notification-card>button h4{margin:5px 0;color:#1b4065}.notification-card>button p{margin:0;color:#64798c}.notification-card>div:last-child{display:flex;gap:7px}
@media(max-width:1000px){.client-kpis{grid-template-columns:repeat(3,1fr)}.client-grid{grid-template-columns:1fr}}@media(max-width:700px){.client-hero,.notification-hero{flex-direction:column;padding:21px}.client-hero>div:last-child{min-width:0}.notification-hero>div:last-child{flex-wrap:wrap}.client-kpis,.notification-kpis{grid-template-columns:repeat(2,1fr)}.client-controls{flex-direction:column}.client-controls input{min-width:0;width:100%}.client-controls>div{display:grid;grid-template-columns:1fr 1fr}.client-tab-page{padding:12px}.client-card>div:not(.portal-progress){grid-template-columns:1fr 1fr}.portal-form-grid{grid-template-columns:1fr}.portal-form-grid .wide{grid-column:auto}.portal-detail>header{flex-direction:column}.portal-facts{grid-template-columns:1fr 1fr}.portal-comment-form{grid-template-columns:1fr}.notification-card{grid-template-columns:38px 1fr}.notification-card>div:last-child{grid-column:1/-1;justify-content:flex-end}}


/* =========================================================
   4.4.1 - ESTABILIZACIÓN DEL PORTAL DEL CLIENTE
   ========================================================= */

.client-portal-warning{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:14px 0;
  padding:12px 14px;
  border:1px solid #e5c978;
  border-left:5px solid #d39a25;
  border-radius:13px;
  background:#fff8e7;
  color:#72541b;
}

.client-portal-warning b{
  font-size:11px;
}

.client-portal-warning span{
  font-size:9px;
  line-height:1.4;
  text-align:right;
}

.client-portal-user
.nav-admin,
.client-portal-user
.admin-only,
.client-portal-user
.internal-only{
  display:none!important;
}

@media(max-width:700px){
  .client-portal-warning{
    align-items:flex-start;
    flex-direction:column;
  }

  .client-portal-warning span{
    text-align:left;
  }
}

/* =========================================================
   MONITOREO DE COMPUTADORAS 4.9.0
   ========================================================= */
.monitoring-hero{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:24px;
  padding:30px;
  margin-bottom:18px;
  border-radius:24px;
  background:linear-gradient(135deg,#10233f 0%,#17385f 60%,#1f5075 100%);
  color:#fff;
  box-shadow:0 18px 42px rgba(15,35,64,.18);
}
.monitoring-hero>div:first-child{max-width:760px}
.monitoring-hero span,.monitoring-hero small{display:block;color:#bcd8f3;font-size:.76rem;font-weight:800;letter-spacing:.12em}
.monitoring-hero h2{margin:8px 0 9px;font-size:clamp(1.55rem,2.7vw,2.35rem);line-height:1.08;color:#fff}
.monitoring-hero p{margin:0;color:#e5f0fa;line-height:1.55}
.monitoring-hero-actions{display:flex;align-items:flex-end;justify-content:flex-end;gap:10px;flex-wrap:wrap;min-width:280px}
.monitoring-hero-actions small{width:100%;text-align:right;letter-spacing:0;color:#d4e6f6;font-weight:600}
.monitoring-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin-bottom:18px}
.monitoring-kpis article{position:relative;overflow:hidden;min-height:128px;padding:20px;border:1px solid #dce6ef;border-radius:20px;background:#fff;box-shadow:0 9px 28px rgba(28,52,78,.07)}
.monitoring-kpis article:after{content:"";position:absolute;right:-22px;bottom:-30px;width:92px;height:92px;border-radius:50%;background:#edf4fa}
.monitoring-kpis article.online:after{background:#e3f7ed}.monitoring-kpis article.offline:after{background:#fde9e8}.monitoring-kpis article.warning:after{background:#fff2d8}.monitoring-kpis article.critical:after{background:#ffe2e1}
.monitoring-kpis small,.monitoring-kpis span{display:block;position:relative;z-index:1;color:#708090}
.monitoring-kpis strong{display:block;position:relative;z-index:1;margin:7px 0 3px;font-size:2.15rem;color:#152c46}
.monitoring-kpis article.online strong{color:#17764c}.monitoring-kpis article.offline strong,.monitoring-kpis article.critical strong{color:#b83a37}.monitoring-kpis article.warning strong{color:#aa6b08}
.monitoring-toolbar{display:flex;align-items:flex-end;gap:14px;padding:17px 20px;margin-bottom:18px}
.monitoring-toolbar .field{margin:0;min-width:220px}.monitoring-toolbar .monitoring-search-field{flex:1}
.monitoring-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,.75fr);gap:18px;align-items:start}
.monitoring-device-panel,.monitoring-alert-panel{padding:0;overflow:hidden}
.monitoring-device-panel>.panel-head,.monitoring-alert-panel>.panel-head{padding:20px 22px;border-bottom:1px solid #e5ecf2}
.monitoring-device-list{display:grid;gap:12px;padding:16px}
.monitoring-device-card{border:1px solid #dce6ef;border-left:5px solid #97a8b8;border-radius:18px;background:#fff;padding:18px;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.monitoring-device-card:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(26,48,72,.1);border-color:#bdd0e0}
.monitoring-device-card.online{border-left-color:#2c9b6c}.monitoring-device-card.offline{border-left-color:#d5534f}.monitoring-device-card.has-alerts{background:linear-gradient(90deg,#fff 0%,#fffaf7 100%)}
.monitoring-device-head{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:13px;align-items:start}
.monitoring-device-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#edf3f8;color:#718396;font-size:1.1rem}
.monitoring-device-card.online .monitoring-device-icon{background:#e4f6ee;color:#18805a}.monitoring-device-card.offline .monitoring-device-icon{background:#fde9e8;color:#c5413d}
.monitoring-device-title{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.monitoring-device-title h4{margin:0;color:#16304b;font-size:1.02rem}.monitoring-device-head p{margin:4px 0 2px;color:#42566b}.monitoring-device-head small{color:#788999}
.monitoring-device-alert-count{padding:7px 10px;border-radius:999px;background:#eef4f8;color:#5d7183;font-size:.75rem;font-weight:800;white-space:nowrap}.monitoring-device-alert-count.critical{background:#fde8e7;color:#b63431}
.monitoring-device-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px}
.monitoring-metric{padding:11px 12px;border-radius:12px;background:#f5f8fb}.monitoring-metric>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:8px}.monitoring-metric span{font-size:.76rem;color:#66798c}.monitoring-metric b{font-size:.82rem;color:#2d4358}
.monitoring-meter{height:7px;margin-top:8px;border-radius:999px;background:#dfe8ef;overflow:hidden}.monitoring-meter i{display:block;height:100%;border-radius:inherit;background:#3f9d72}.monitoring-metric.warning .monitoring-meter i{background:#d99428}.monitoring-metric.critical .monitoring-meter i{background:#d04e4a}
.monitoring-device-foot{display:flex;gap:10px 18px;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px dashed #dce5ec;color:#6f8191;font-size:.76rem}.monitoring-device-foot b{color:#324b61}
.monitoring-alert-list{display:grid;gap:10px;padding:14px;max-height:760px;overflow:auto}
.monitoring-alert-card{padding:15px;border:1px solid #eadab8;border-radius:15px;background:#fffaf0}.monitoring-alert-card.critical{border-color:#efc5c3;background:#fff6f5}
.monitoring-alert-top{display:flex;gap:10px;align-items:flex-start}.monitoring-alert-top>span{display:grid;place-items:center;flex:0 0 28px;height:28px;border-radius:50%;background:#f0b94c;color:#fff;font-weight:900}.monitoring-alert-card.critical .monitoring-alert-top>span{background:#cf4c48}
.monitoring-alert-top b,.monitoring-alert-top small{display:block}.monitoring-alert-top b{color:#253c51}.monitoring-alert-top small{margin-top:2px;color:#768696}
.monitoring-alert-card p{margin:10px 0;color:#586b7c;font-size:.83rem;line-height:1.45}.monitoring-alert-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;color:#80909e;font-size:.72rem}.monitoring-alert-meta button{border:0;background:#e5eef6;color:#27557c;border-radius:999px;padding:5px 8px;font:inherit;font-weight:800;cursor:pointer}.monitoring-alert-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:11px}
.monitoring-empty{display:grid;place-items:center;text-align:center;gap:5px;min-height:180px;padding:28px;color:#778a9c}.monitoring-empty b{color:#3a5268}.monitoring-empty.compact{min-height:110px}
.monitoring-provision-form,.monitoring-provision-result{display:grid;gap:18px}.monitoring-provision-note{padding:17px;border-radius:16px;background:#eff6fc;border:1px solid #d4e5f3}.monitoring-provision-note b,.monitoring-provision-note span{display:block}.monitoring-provision-note span{margin-top:5px;color:#5f7488;line-height:1.5}.monitoring-agent-requirements{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.monitoring-agent-requirements span{padding:11px;border-radius:12px;background:#f6f8fa;color:#526779;text-align:center;font-size:.8rem}
.monitoring-provision-success{display:grid;place-items:center;width:58px;height:58px;margin:auto;border-radius:50%;background:#e0f6eb;color:#17825a;font-size:1.8rem;font-weight:900}.monitoring-provision-result>h3,.monitoring-provision-result>p{text-align:center;margin:0}.monitoring-provision-result>p{color:#667a8c}.monitoring-copy-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:stretch}.monitoring-copy-row textarea{min-height:72px;resize:vertical}.monitoring-copy-row.command textarea{min-height:110px;font-family:Consolas,monospace;font-size:.8rem}.monitoring-install-steps{margin:0;padding:16px 18px 16px 38px;border-radius:15px;background:#fff9e9;color:#5b6773}.monitoring-install-steps li+li{margin-top:8px}
.monitoring-detail{display:grid;gap:16px}.monitoring-detail-hero{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:18px;border-radius:17px;background:#f2f6f9;border-left:5px solid #93a7b7}.monitoring-detail-hero.online{background:#edf8f3;border-left-color:#26986a}.monitoring-detail-hero.offline{background:#fff3f2;border-left-color:#d34b47}.monitoring-detail-hero>div{display:flex;align-items:center;gap:12px}.monitoring-detail-hero>div>span{font-size:1.45rem;color:#2e9b6e}.monitoring-detail-hero.offline>div>span{color:#cb4541}.monitoring-detail-hero h3,.monitoring-detail-hero p{margin:0}.monitoring-detail-hero p{margin-top:3px;color:#6d7f8e}
.monitoring-detail-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.monitoring-detail-kpis article{padding:16px;border:1px solid #dce6ee;border-radius:14px;background:#fff}.monitoring-detail-kpis small,.monitoring-detail-kpis span{display:block;color:#728495}.monitoring-detail-kpis b{display:block;margin:5px 0 2px;color:#18344f;font-size:1.35rem}
.monitoring-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.monitoring-detail-panel{padding:18px;border:1px solid #dfe7ee;border-radius:16px;background:#fff}.monitoring-detail-panel h4{margin:0 0 14px;color:#203b55}.monitoring-info-list{display:grid;gap:0;margin:0}.monitoring-info-list div{display:grid;grid-template-columns:145px minmax(0,1fr);gap:12px;padding:8px 0;border-bottom:1px dashed #e1e8ed}.monitoring-info-list div:last-child{border-bottom:0}.monitoring-info-list dt{color:#748596}.monitoring-info-list dd{margin:0;color:#30485d;font-weight:700;word-break:break-word}
.monitoring-disk-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.monitoring-disk-list article{padding:14px;border-radius:13px;background:#f5f8fa}.monitoring-disk-list article div{display:flex;justify-content:space-between;gap:7px}.monitoring-disk-list b,.monitoring-disk-list span,.monitoring-disk-list strong,.monitoring-disk-list small{display:block}.monitoring-disk-list strong{margin:10px 0 3px;color:#183a56}.monitoring-disk-list small,.monitoring-disk-list span{color:#728495}
.monitoring-spark-section{display:grid;gap:13px}.monitoring-spark-row{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;gap:10px}.monitoring-spark-row>span{color:#627688;font-weight:800;font-size:.8rem}.monitoring-spark-row>b{text-align:right;color:#2b465e}.monitoring-spark-row>div{display:flex;align-items:flex-end;gap:2px;height:58px;padding:4px;border-radius:10px;background:#f0f4f7;overflow:hidden}.monitoring-spark-row i{flex:1;min-width:2px;max-width:12px;border-radius:3px 3px 0 0;background:#4d8db8;opacity:.85}
.monitoring-history-list{display:grid;gap:9px}.monitoring-history-list article{padding:13px;border-radius:13px;border-left:4px solid #dfa13d;background:#fff9ee}.monitoring-history-list article.critical{border-left-color:#ce4e4a;background:#fff4f3}.monitoring-history-list article.resolved{border-left-color:#4e9d74;background:#f0f8f4}.monitoring-history-list article>div:first-child{display:flex;justify-content:space-between;gap:10px}.monitoring-history-list p{margin:7px 0;color:#5b6e7e}.monitoring-history-list small{color:#80909e}.monitoring-history-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:8px}
.monitoring-settings-panel{background:#f8fafc}.monitoring-settings-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.monitoring-settings-form .field{margin:0}.monitoring-check{display:flex;align-items:center;gap:8px;grid-column:span 2;padding:10px 12px;border-radius:12px;background:#fff;border:1px solid #dfe7ed;color:#42596d}.monitoring-settings-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap;margin-top:4px}

@media (max-width:1180px){
  .monitoring-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
  .monitoring-layout{grid-template-columns:1fr}.monitoring-alert-list{max-height:none}
}
@media (max-width:760px){
  .monitoring-hero{padding:22px;display:block}.monitoring-hero-actions{margin-top:18px;min-width:0;justify-content:flex-start}.monitoring-hero-actions small{text-align:left}
  .monitoring-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.monitoring-kpis article{min-height:108px;padding:16px}.monitoring-kpis strong{font-size:1.75rem}
  .monitoring-toolbar{display:grid;grid-template-columns:1fr}.monitoring-toolbar .field{min-width:0}
  .monitoring-device-head{grid-template-columns:30px minmax(0,1fr)}.monitoring-device-alert-count{grid-column:2;justify-self:start}.monitoring-device-metrics{grid-template-columns:1fr}.monitoring-device-foot{display:grid;gap:5px}
  .monitoring-agent-requirements{grid-template-columns:1fr}.monitoring-copy-row{grid-template-columns:1fr}.monitoring-copy-row .btn{width:100%}
  .monitoring-detail-hero{align-items:flex-start}.monitoring-detail-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.monitoring-detail-grid{grid-template-columns:1fr}.monitoring-info-list div{grid-template-columns:1fr;gap:3px}.monitoring-settings-form{grid-template-columns:1fr}.monitoring-check{grid-column:1}.monitoring-settings-actions{display:grid}.monitoring-settings-actions .btn{width:100%}
}
@media (max-width:430px){
  .monitoring-kpis{grid-template-columns:1fr 1fr}.monitoring-kpis article:first-child{grid-column:1/-1}.monitoring-detail-kpis{grid-template-columns:1fr 1fr}.monitoring-device-list{padding:10px}.monitoring-device-card{padding:14px}
}
.monitoring-agent-download{display:flex;justify-content:center}.monitoring-agent-download .btn{text-decoration:none}


/* Acciones remotas de monitoreo 4.9.0 */
.monitoring-section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.monitoring-section-title h4{margin:0}.monitoring-section-title p{margin:4px 0 0;color:#718394;font-size:.82rem}
.monitoring-action-notice{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px;padding:13px 14px;border-radius:13px}.monitoring-action-notice b,.monitoring-action-notice span{display:block}.monitoring-action-notice.error{background:#fff1f0;border:1px solid #efc6c3;color:#8d3632}.monitoring-action-notice.warning{background:#fff8e8;border:1px solid #ecd39a;color:#755313}.monitoring-action-notice .btn{margin-left:auto;text-decoration:none}
.monitoring-action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.monitoring-action-button{display:grid;grid-template-columns:38px minmax(0,1fr);grid-template-rows:auto auto;gap:2px 10px;align-items:center;padding:13px;text-align:left;border:1px solid #dbe6ee;border-radius:14px;background:#f8fbfd;color:#213d56;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.monitoring-action-button:hover:not(:disabled){transform:translateY(-1px);border-color:#9ebbd1;box-shadow:0 8px 18px rgba(31,62,89,.09)}.monitoring-action-button>span{grid-row:1/3;display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#e7f0f7;color:#24567e;font-weight:900;font-size:.76rem}.monitoring-action-button b{font-size:.86rem}.monitoring-action-button small{color:#748596;line-height:1.25}.monitoring-action-button.dangerous{border-color:#edcfcd;background:#fff8f7}.monitoring-action-button.dangerous>span{background:#fde8e6;color:#b63d39}.monitoring-action-button:disabled{cursor:not-allowed;opacity:.48}
.monitoring-action-history-title{margin-top:22px!important}.monitoring-action-history{display:grid;gap:9px}.monitoring-action-history article{padding:13px 14px;border:1px solid #dfe7ee;border-left:4px solid #8aa2b5;border-radius:13px;background:#fbfcfd}.monitoring-action-history article.pending{border-left-color:#d29b36;background:#fffaf0}.monitoring-action-history article.running{border-left-color:#3c83b9;background:#f2f8fc}.monitoring-action-history article.completed{border-left-color:#2c9869;background:#f1f9f5}.monitoring-action-history article.failed{border-left-color:#cd4c48;background:#fff4f3}.monitoring-action-history article.canceled{border-left-color:#8997a4;background:#f4f6f8}.monitoring-action-history-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.monitoring-action-history-head b,.monitoring-action-history-head small{display:block}.monitoring-action-history-head small{margin-top:3px;color:#7c8b98}.monitoring-action-history-head>span{padding:5px 8px;border-radius:999px;background:#e9eff4;color:#4e6679;font-size:.72rem;font-weight:800;white-space:nowrap}.monitoring-action-history p{margin:9px 0;color:#536879}.monitoring-action-history-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:#7b8a97;font-size:.73rem}.monitoring-action-history details{margin-top:10px}.monitoring-action-history summary{cursor:pointer;color:#2c5d83;font-weight:800;font-size:.8rem}.monitoring-action-history pre{max-height:320px;overflow:auto;margin:8px 0 0;padding:12px;border-radius:10px;background:#172737;color:#edf5fb;white-space:pre-wrap;word-break:break-word;font:12px/1.45 Consolas,monospace}
@media(max-width:900px){.monitoring-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.monitoring-section-title{display:grid}.monitoring-section-title .btn{width:100%}.monitoring-action-grid{grid-template-columns:1fr}.monitoring-action-history-head{display:grid}.monitoring-action-history-head>span{justify-self:start}.monitoring-action-notice .btn{width:100%;margin-left:0}}


/* Administración central de agentes 4.9.0 */
.monitoring-agent-health-grid,.monitoring-agent-manager-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.monitoring-agent-health-grid article,.monitoring-agent-manager-kpis article{padding:14px;border:1px solid #dfe7ee;border-radius:13px;background:#f7fafc}.monitoring-agent-health-grid small,.monitoring-agent-manager-kpis small{display:block;color:#758697}.monitoring-agent-health-grid b,.monitoring-agent-manager-kpis b{display:block;margin-top:5px;color:#183a56;font-size:1.15rem}.monitoring-action-button.agent-admin{border-color:#c9dced;background:#f3f8fc}.monitoring-action-button.agent-admin>span{background:#dcecf8;color:#1f5b86}.monitoring-agent-event-list{display:grid;gap:9px}.monitoring-agent-event-list article{padding:13px 14px;border:1px solid #dfe7ee;border-left:4px solid #2f986b;border-radius:13px;background:#f3faf6}.monitoring-agent-event-list article.failed{border-left-color:#ca4c48;background:#fff4f3}.monitoring-agent-event-list article>div{display:flex;align-items:center;justify-content:space-between;gap:10px}.monitoring-agent-event-list small{display:block;margin-top:5px;color:#7a8a98}.monitoring-agent-event-list details{margin-top:9px}.monitoring-agent-event-list summary{cursor:pointer;color:#2d5e83;font-weight:800}.monitoring-agent-event-list pre{max-height:280px;overflow:auto;padding:11px;border-radius:9px;background:#172737;color:#edf5fb;white-space:pre-wrap;word-break:break-word;font:12px/1.45 Consolas,monospace}.monitoring-manager-list{display:grid;gap:8px;max-height:430px;overflow:auto;margin:14px 0}.monitoring-manager-list article{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:10px;padding:12px 13px;border:1px solid #dfe7ee;border-radius:13px;background:#fff}.monitoring-manager-list b,.monitoring-manager-list small{display:block}.monitoring-manager-list small{margin-top:3px;color:#7b8b98}.monitoring-manager-list>article>span{font-weight:800;color:#345169}@media(max-width:1050px){.monitoring-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:720px){.monitoring-agent-health-grid,.monitoring-agent-manager-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.monitoring-manager-list article{grid-template-columns:1fr auto}.monitoring-manager-list article .badge{justify-self:start}.monitoring-hero-actions{align-items:stretch}.monitoring-hero-actions .btn{flex:1}}@media(max-width:520px){.monitoring-agent-health-grid,.monitoring-agent-manager-kpis{grid-template-columns:1fr 1fr}.monitoring-manager-list article{grid-template-columns:1fr}.monitoring-manager-list article>span{justify-self:start}}

/* =========================================================
   CENTRO DE DIAGNÓSTICO Y REPARACIÓN 4.9.0
   ========================================================= */
.monitoring-action-groups{display:grid;gap:16px}.monitoring-action-group{border:1px solid var(--line,#dbe4ef);border-radius:16px;padding:14px;background:#fbfdff}.monitoring-action-group>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.monitoring-action-group>header b{font-size:14px;color:#18385f}.monitoring-action-group>header span{font-size:11px;color:#6b7e96;background:#eef3f8;border-radius:999px;padding:4px 8px}.monitoring-action-button.featured{grid-column:span 2;background:linear-gradient(135deg,#173b69,#24568b);color:#fff;border-color:#173b69;box-shadow:0 10px 24px rgba(23,59,105,.18)}.monitoring-action-button.featured small{color:rgba(255,255,255,.82)}.monitoring-action-button.featured span{background:rgba(255,255,255,.16);color:#fff}.monitoring-diagnostic-panel{overflow:hidden;border-width:1px}.monitoring-diagnostic-panel.empty{display:flex;align-items:center;justify-content:space-between;gap:18px;background:linear-gradient(135deg,#f5f9fd,#fff)}.monitoring-diagnostic-panel.empty p{margin:4px 0 0;color:#66788f}.monitoring-diagnostic-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px;border-radius:14px;background:#f5f8fc}.monitoring-diagnostic-head>div:first-child>span{font-size:10px;font-weight:800;letter-spacing:.09em;color:#60748e}.monitoring-diagnostic-head h4{margin:5px 0 4px;font-size:20px}.monitoring-diagnostic-head p{margin:0;color:#6c7d92}.monitoring-health-score{display:flex;align-items:flex-end;justify-content:center;min-width:104px;padding:12px 16px;border-radius:16px;background:#fff;box-shadow:0 8px 20px rgba(31,61,95,.09)}.monitoring-health-score b{font-size:34px;line-height:1}.monitoring-health-score span{font-size:13px;color:#718198;margin:0 0 4px 3px}.monitoring-diagnostic-panel.healthy .monitoring-health-score b{color:#1f8b5f}.monitoring-diagnostic-panel.attention .monitoring-health-score b{color:#bb7a0b}.monitoring-diagnostic-panel.risk .monitoring-health-score b,.monitoring-diagnostic-panel.critical .monitoring-health-score b{color:#c2413b}.monitoring-diagnostic-issues{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.monitoring-diagnostic-issues article{border:1px solid #ead7a8;background:#fffaf0;border-radius:12px;padding:12px}.monitoring-diagnostic-issues article.critical{border-color:#efc5c2;background:#fff5f4}.monitoring-diagnostic-issues article>div{display:flex;justify-content:space-between;gap:10px}.monitoring-diagnostic-issues article b{font-size:13px}.monitoring-diagnostic-issues article span{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:#748398}.monitoring-diagnostic-issues article p{font-size:12px;color:#5e6f84;margin:7px 0 10px}.monitoring-diagnostic-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.monitoring-structured-result{margin:9px 0;padding:10px;border-radius:10px;background:#f4f7fb;border:1px solid #e0e7f0}.monitoring-result-kpis{display:flex;flex-wrap:wrap;gap:8px}.monitoring-result-kpis span{display:flex;align-items:baseline;gap:4px;padding:6px 9px;border-radius:9px;background:#fff;font-size:11px;color:#63748b}.monitoring-result-kpis b{font-size:16px;color:#173b69}.monitoring-structured-result ul{margin:9px 0 0;padding-left:18px;display:grid;gap:5px}.monitoring-structured-result li{font-size:11px;color:#5f7186}.monitoring-structured-result li b{display:block;color:#263e5c}.monitoring-structured-result.compact{display:flex;flex-wrap:wrap;gap:6px}.monitoring-structured-result.compact span{font-size:11px;background:#fff;border-radius:999px;padding:5px 8px;color:#54677e}
@media(max-width:760px){.monitoring-diagnostic-head{align-items:flex-start}.monitoring-diagnostic-issues{grid-template-columns:1fr}.monitoring-diagnostic-panel.empty{align-items:stretch;flex-direction:column}.monitoring-diagnostic-actions{flex-direction:column}.monitoring-action-button.featured{grid-column:span 1}.monitoring-action-group{padding:11px}}

/* =========================================================
   INSTALADORES EMPRESARIALES Y DESCUBRIMIENTO 5.0.0
   ========================================================= */
.monitoring-kpis{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.monitoring-kpis article.discovered{cursor:pointer;border-color:#c9b5ff;background:linear-gradient(145deg,#fff,#f6f1ff)}
.monitoring-kpis article.discovered strong{color:#6d3bb7}
.monitoring-discovered-button{position:relative}
.monitoring-discovered-button.has-pending::after{content:"";position:absolute;right:7px;top:7px;width:8px;height:8px;border-radius:50%;background:#e74c3c;box-shadow:0 0 0 3px rgba(231,76,60,.16)}
.monitoring-enterprise-manager,.monitoring-discovered-manager{display:grid;gap:18px}
.monitoring-profile-create{border:1px solid #dce4ec;border-radius:16px;background:#fff;overflow:hidden}
.monitoring-profile-create>summary{padding:16px 18px;font-weight:800;color:#17375c;cursor:pointer;background:#f7fafc;list-style:none}
.monitoring-profile-create>summary::-webkit-details-marker{display:none}
.monitoring-enterprise-form{padding:18px;display:grid;gap:16px}
.monitoring-profile-policy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;padding:14px;border-radius:14px;background:#f7fafc;border:1px solid #e2e9ef}
.monitoring-enterprise-profile-list{display:grid;gap:12px}
.monitoring-enterprise-profile-card{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:14px;align-items:stretch;border:1px solid #dce4ec;border-radius:16px;padding:14px;background:#fff;box-shadow:0 8px 24px rgba(23,55,92,.06)}
.monitoring-enterprise-profile-card.revoked{opacity:.68;background:#fafafa}
.monitoring-profile-color{display:flex;flex-direction:column;gap:4px;border-radius:10px;overflow:hidden;min-height:84px}
.monitoring-profile-color i:first-child{flex:2;background:var(--profile-primary)}
.monitoring-profile-color i:last-child{flex:1;background:var(--profile-secondary)}
.monitoring-profile-main{display:grid;gap:7px;min-width:0}
.monitoring-profile-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.monitoring-profile-title>div{display:grid;gap:2px;min-width:0}
.monitoring-profile-title b{font-size:1rem;color:#17375c}
.monitoring-profile-title small,.monitoring-profile-main p{color:#65788a}
.monitoring-profile-main p{margin:0}
.monitoring-profile-stats{display:flex;gap:16px;flex-wrap:wrap;font-size:.83rem;color:#66798a}
.monitoring-profile-stats span{display:flex;gap:5px;align-items:center}
.monitoring-profile-stats b{color:#20384e}
.monitoring-profile-actions{display:flex;flex-direction:column;gap:7px;align-items:stretch;justify-content:center;min-width:180px}
.monitoring-discovered-list{display:grid;gap:12px}
.monitoring-discovered-card{border:1px solid #dce4ec;border-left:5px solid #f0ad4e;border-radius:16px;padding:15px;background:#fff;display:grid;gap:13px;box-shadow:0 8px 24px rgba(23,55,92,.05)}
.monitoring-discovered-card.ignorado{border-left-color:#95a5a6;background:#fbfcfc}
.monitoring-discovered-card.bloqueado{border-left-color:#d9534f;background:#fffafa}
.monitoring-discovered-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.monitoring-discovered-head>div{display:grid;gap:3px}
.monitoring-discovered-head b{font-size:1rem;color:#17375c}
.monitoring-discovered-head small{color:#65788a}
.monitoring-discovered-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px;border-radius:13px;background:#f7fafc}
.monitoring-discovered-grid span{display:grid;gap:2px;min-width:0}
.monitoring-discovered-grid small{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:#7b8d9d}
.monitoring-discovered-grid b{font-size:.84rem;color:#2a4054;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.monitoring-discovered-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.monitoring-discovered-approval{display:grid;gap:16px}
.monitoring-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.monitoring-choice-grid label{display:grid;grid-template-columns:auto 1fr;column-gap:10px;row-gap:3px;align-items:start;border:1px solid #dce4ec;border-radius:14px;padding:14px;cursor:pointer;background:#fff}
.monitoring-choice-grid label:has(input:checked){border-color:#249774;box-shadow:0 0 0 3px rgba(36,151,116,.12);background:#f6fffb}
.monitoring-choice-grid input{grid-row:1/3;margin-top:3px}
.monitoring-choice-grid b{color:#17375c}
.monitoring-choice-grid span{font-size:.82rem;color:#65788a}
.monitoring-section-title{display:flex;justify-content:space-between;align-items:center;gap:12px}
.monitoring-section-title>div{display:flex;justify-content:space-between;gap:12px;width:100%;align-items:center}
.monitoring-section-title span{font-size:.82rem;color:#718394}
@media(max-width:900px){
  .monitoring-enterprise-profile-card{grid-template-columns:8px minmax(0,1fr)}
  .monitoring-profile-actions{grid-column:1/-1;flex-direction:row;min-width:0;flex-wrap:wrap}
  .monitoring-discovered-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
  .monitoring-profile-policy-grid,.monitoring-choice-grid,.monitoring-discovered-grid{grid-template-columns:1fr}
  .monitoring-enterprise-profile-card{padding:12px}
  .monitoring-profile-actions{display:grid;grid-template-columns:1fr}
  .monitoring-profile-actions .btn{width:100%}
  .monitoring-discovered-actions{display:grid;grid-template-columns:1fr}
  .monitoring-discovered-actions .btn{width:100%}
}


/* Centro de soporte remoto 5.2.0 */
.monitoring-inline-actions{display:flex;gap:8px;flex-wrap:wrap}.monitoring-remote-options,.monitoring-package-list,.monitoring-help-list,.monitoring-software-list{display:grid;gap:10px}.monitoring-remote-options article,.monitoring-package-list article,.monitoring-help-list article,.monitoring-software-list article{display:flex;align-items:center;gap:10px;justify-content:space-between;padding:12px 14px;border:1px solid #dbe5f0;border-radius:14px;background:#fff}.monitoring-remote-options article>div,.monitoring-package-list article>div,.monitoring-software-list article>div{display:grid;gap:3px;min-width:0}.monitoring-remote-options span,.monitoring-package-list span,.monitoring-software-list span,.monitoring-package-list small{color:#64748b;overflow-wrap:anywhere}.monitoring-help-list article{display:block}.monitoring-help-list p{margin:8px 0;white-space:pre-wrap}.monitoring-mini-history{display:grid;gap:4px;margin-top:12px;color:#64748b;font-size:.82rem}.monitoring-software-catalog{display:grid;grid-template-columns:minmax(300px,.85fr) minmax(360px,1.15fr);gap:18px}.monitoring-software-form{padding:16px;border-radius:16px;background:#f6f9fc}.monitoring-package-list{max-height:540px;overflow:auto}.monitoring-action-group:has(.monitoring-action-button.featured) header b{color:#116b5b}@media(max-width:850px){.monitoring-software-catalog{grid-template-columns:1fr}.monitoring-remote-options article,.monitoring-package-list article{align-items:flex-start;flex-wrap:wrap}.monitoring-inline-actions{width:100%}}

/* =========================================================
   AUTOMATIZACION PREVENTIVA Y GESTION MASIVA 5.2.0
   ========================================================= */
.monitoring-kpis article.maintenance:after{background:#e5f0ff}
.monitoring-kpis article.maintenance strong{color:#2d63a7}
.monitoring-kpis article.automation{cursor:pointer;border-color:#c7dff0;background:linear-gradient(145deg,#fff,#f0f8fd)}
.monitoring-kpis article.automation:after{background:#dff1fb}
.monitoring-kpis article.automation strong{color:#176d91}
.monitoring-device-card{position:relative}
.monitoring-device-card.selected{border-color:#2f7fb3;box-shadow:0 0 0 3px rgba(47,127,179,.13),0 13px 30px rgba(26,48,72,.1)}
.monitoring-device-card.maintenance{background:linear-gradient(90deg,#fff 0%,#f4f8ff 100%);border-left-color:#477fc2}
.monitoring-device-select{position:absolute;top:12px;right:12px;z-index:3;display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:#fff;border:1px solid #cfdce8;box-shadow:0 4px 12px rgba(25,54,82,.08);cursor:pointer}
.monitoring-device-select input{position:absolute;opacity:0;pointer-events:none}
.monitoring-device-select span{width:14px;height:14px;border:2px solid #8da1b3;border-radius:4px;display:block}
.monitoring-device-select input:checked+span{background:#2f7fb3;border-color:#2f7fb3;box-shadow:inset 0 0 0 3px #fff}
.monitoring-device-alert-count{margin-right:34px}
.monitoring-maintenance-mini{margin-left:auto;border:0;border-radius:999px;padding:5px 9px;background:#e9f1fb;color:#2c6196;font:inherit;font-weight:800;cursor:pointer}
.monitoring-maintenance-mini:hover{background:#dceafa}
.monitoring-bulk-bar{position:sticky;top:10px;z-index:20;display:none;align-items:center;gap:10px;flex-wrap:wrap;margin:-5px 0 18px;padding:12px 14px;border:1px solid #b9d5e9;border-radius:15px;background:rgba(244,250,255,.97);box-shadow:0 12px 28px rgba(20,61,92,.14);backdrop-filter:blur(9px)}
.monitoring-bulk-bar.visible{display:flex}
.monitoring-bulk-bar>b{color:#17375c;white-space:nowrap}
.monitoring-bulk-bar>select{min-width:235px;flex:1;max-width:390px}
.monitoring-bulk-select-all{display:flex;align-items:center;gap:7px;color:#40586e;font-size:.82rem;font-weight:800;white-space:nowrap}
.monitoring-bulk-select-all input{width:17px;height:17px}
.monitoring-automation-manager,.monitoring-operations-center{display:grid;gap:18px}
.monitoring-automation-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:10px}
.monitoring-automation-kpis article{padding:15px;border:1px solid #dce6ef;border-radius:15px;background:#f8fafc}
.monitoring-automation-kpis small,.monitoring-automation-kpis span{display:block;color:#738596}
.monitoring-automation-kpis b{display:block;margin:5px 0 2px;font-size:1.6rem;color:#17375c}
.monitoring-automation-section{padding:17px;border:1px solid #dce6ef;border-radius:16px;background:#fff}
.monitoring-automation-section .monitoring-section-title{margin-bottom:12px}
.monitoring-automation-section .monitoring-section-title>div{display:block}
.monitoring-automation-section h4{margin:0;color:#17375c}
.monitoring-automation-section p{margin:4px 0 0;color:#6b7f91}
.monitoring-automation-form{display:grid;gap:15px;padding:17px}
.monitoring-policy-list,.monitoring-window-list,.monitoring-approval-list,.monitoring-batch-list{display:grid;gap:9px}
.monitoring-policy-list article,.monitoring-window-list article,.monitoring-approval-list article,.monitoring-batch-list article{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 14px;border:1px solid #dfe8ef;border-radius:13px;background:#f9fbfc}
.monitoring-policy-list article.inactive{opacity:.62;background:#f4f4f4}
.monitoring-policy-list article>div,.monitoring-window-list article>div,.monitoring-approval-list article>div,.monitoring-batch-list article>div{display:grid;gap:3px;min-width:0}
.monitoring-policy-list b,.monitoring-window-list b,.monitoring-approval-list b,.monitoring-batch-list b{color:#203c56}
.monitoring-policy-list span,.monitoring-window-list span,.monitoring-approval-list span,.monitoring-batch-list span{color:#63778a;font-size:.82rem}
.monitoring-policy-list small,.monitoring-window-list small,.monitoring-approval-list small,.monitoring-batch-list small{color:#7b8b99;font-size:.76rem}
.monitoring-day-picker{display:flex;flex-wrap:wrap;gap:6px}
.monitoring-day-picker label{display:flex;align-items:center;gap:4px;padding:7px 8px;border:1px solid #d8e3ec;border-radius:9px;background:#fff;color:#496176;font-size:.78rem;cursor:pointer}
.monitoring-day-picker label:has(input:checked){border-color:#2b8d70;background:#edfaf5;color:#17664f}
.monitoring-day-picker input{width:14px;height:14px}
.monitoring-operations-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.monitoring-top-issues{display:grid;gap:7px}
.monitoring-top-issues article{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-radius:11px;background:#f4f7fa;color:#40586c}
.monitoring-top-issues span{display:grid;place-items:center;min-width:30px;height:26px;border-radius:999px;background:#e5eef6;color:#24577f;font-weight:900}
.monitoring-trend-chart{display:flex;align-items:flex-end;gap:7px;min-height:190px;padding:14px 8px 5px;overflow-x:auto}
.monitoring-trend-chart article{display:grid;grid-template-rows:150px auto;gap:5px;min-width:42px;flex:1;text-align:center}
.monitoring-trend-chart article>div{display:flex;align-items:flex-end;justify-content:center;gap:3px;height:150px;border-bottom:1px solid #cfdce7}
.monitoring-trend-chart i{display:block;width:7px;min-height:3px;border-radius:5px 5px 0 0;background:#4386b5}
.monitoring-trend-chart i.ram{background:#37a276}.monitoring-trend-chart i.disk{background:#d69a38}
.monitoring-trend-chart span{font-size:.68rem;color:#718394;white-space:nowrap}
.monitoring-timeline{display:grid;gap:0}
.monitoring-timeline article{position:relative;display:grid;grid-template-columns:14px minmax(0,1fr) auto;gap:10px;padding:10px 0}
.monitoring-timeline article:not(:last-child):before{content:"";position:absolute;left:6px;top:22px;bottom:-10px;width:2px;background:#dce7ef}
.monitoring-timeline article>i{width:13px;height:13px;border-radius:50%;margin-top:4px;background:#e6a93d;box-shadow:0 0 0 4px #fff}
.monitoring-timeline article.completada>i{background:#2b9a6c}.monitoring-timeline article.fallida>i{background:#d34e49}
.monitoring-timeline article>div{display:grid;gap:2px}
.monitoring-timeline b{color:#234159}.monitoring-timeline span,.monitoring-timeline small{color:#718495;font-size:.79rem}
@media(max-width:900px){
  .monitoring-operations-grid{grid-template-columns:1fr}
  .monitoring-bulk-bar{top:4px}
  .monitoring-bulk-bar>select{max-width:none;min-width:180px}
}
@media(max-width:640px){
  .monitoring-bulk-bar{display:none;position:fixed;left:10px;right:10px;bottom:10px;top:auto;max-height:55vh;overflow:auto;border-radius:18px}
  .monitoring-bulk-bar.visible{display:grid;grid-template-columns:1fr 1fr}
  .monitoring-bulk-bar>b,.monitoring-bulk-bar>select,.monitoring-bulk-select-all{grid-column:1/-1}
  .monitoring-bulk-bar .btn{width:100%}
  .monitoring-policy-list article,.monitoring-window-list article,.monitoring-approval-list article,.monitoring-batch-list article{align-items:flex-start;flex-direction:column}
  .monitoring-policy-list .btn,.monitoring-window-list .btn,.monitoring-approval-list .btn{width:100%}
  .monitoring-device-alert-count{margin-right:0}
  .monitoring-device-select{top:10px;right:10px}
}

.monitoring-policy-actions{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:720px){.monitoring-policy-actions{width:100%;justify-content:flex-start}}


/* P521 · Actividad y disponibilidad por hora */
.monitoring-activity-wrap{display:grid;gap:15px}.monitoring-activity-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.monitoring-activity-head>div:first-child{display:grid;gap:4px}.monitoring-activity-head b{color:#233f58;font-size:1rem;text-transform:capitalize}.monitoring-activity-head span{color:#718394;font-size:.82rem}.monitoring-activity-controls{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}.monitoring-activity-controls button,.monitoring-activity-controls input{height:36px;border:1px solid #cfdae3;border-radius:9px;background:#fff;color:#24435f;font:inherit;font-weight:800}.monitoring-activity-controls button{min-width:36px;padding:0 11px;cursor:pointer}.monitoring-activity-controls button:hover:not(:disabled){background:#edf4fa}.monitoring-activity-controls button:disabled{opacity:.38;cursor:not-allowed}.monitoring-activity-controls button.today{background:#244f7d;color:#fff;border-color:#244f7d}.monitoring-activity-controls input{padding:0 10px}.monitoring-activity-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.monitoring-activity-summary article{display:grid;gap:5px;padding:11px 12px;border:1px solid #dfe7ed;border-radius:12px;background:#f7f9fb}.monitoring-activity-summary article small{color:#758698;font-size:.7rem}.monitoring-activity-summary article b{color:#29445d;font-size:.9rem;line-height:1.25;word-break:break-word}.monitoring-activity-summary article.online{background:#edf8f2;border-color:#cce9da}.monitoring-activity-summary article.online b{color:#237649}.monitoring-activity-summary article.offline{background:#fff1f0;border-color:#f0d0cd}.monitoring-activity-summary article.offline b{color:#b54239}.monitoring-activity-scroll{overflow-x:auto;padding:2px 0 4px}.monitoring-activity-chart{min-width:900px;padding:13px 12px 8px;border:1px solid #dfe7ed;border-radius:13px;background:linear-gradient(180deg,#f8fafc,#fff)}.monitoring-activity-cells{display:grid;grid-template-columns:repeat(288,minmax(2px,1fr));gap:1px;height:44px;border-radius:8px;overflow:hidden;background:#e3e9ee}.monitoring-activity-cells i{display:block;height:44px;background:#b9c3cc}.monitoring-activity-cells i.online{background:#35a36e}.monitoring-activity-cells i.offline{background:#d65b50}.monitoring-activity-cells i.no-data{background:#aeb9c3}.monitoring-activity-cells i.future{background:#edf1f4}.monitoring-activity-hours{display:flex;justify-content:space-between;margin-top:7px;color:#718394;font-size:.68rem;font-weight:700}.monitoring-activity-legend{display:flex;align-items:center;gap:15px;flex-wrap:wrap;color:#617487;font-size:.76rem;font-weight:700}.monitoring-activity-legend span{display:inline-flex;align-items:center;gap:6px}.monitoring-activity-legend i{width:11px;height:11px;border-radius:3px;background:#aeb9c3}.monitoring-activity-legend i.online{background:#35a36e}.monitoring-activity-legend i.offline{background:#d65b50}.monitoring-activity-legend i.future{background:#edf1f4;border:1px solid #d8e0e6}.monitoring-activity-note{margin:0;padding:10px 12px;border-radius:10px;background:#f4f7f9;color:#677b8d;font-size:.76rem;line-height:1.45}.monitoring-activity-panel>h4{display:flex;align-items:center;justify-content:space-between}.monitoring-activity-panel>h4:after{content:'0–24 h';font-size:.7rem;color:#718394;background:#eef3f7;border-radius:999px;padding:5px 9px}
@media(max-width:900px){.monitoring-activity-head{display:grid}.monitoring-activity-controls{justify-content:flex-start}.monitoring-activity-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.monitoring-activity-summary article:last-child{grid-column:1/-1}}
@media(max-width:560px){.monitoring-activity-controls{display:grid;grid-template-columns:38px minmax(0,1fr) 38px auto;width:100%}.monitoring-activity-controls input{min-width:0;width:100%}.monitoring-activity-summary{grid-template-columns:1fr 1fr}.monitoring-activity-summary article{padding:10px}.monitoring-activity-chart{min-width:760px}}

/* =========================================================
   5.4.0 - WORKSPACE MODERNO TIPO ATERA
   Menú lateral, pestañas, búsqueda global y navegación rápida
   ========================================================= */

:root{
  --workspace-sidebar-width:276px;
  --workspace-header-height:74px;
  --workspace-tabs-height:52px;
  --workspace-sidebar-bg:#102f50;
  --workspace-sidebar-bg-2:#173f67;
  --workspace-sidebar-text:#dbe8f2;
  --workspace-sidebar-muted:#8facbf;
  --workspace-sidebar-active:#ffffff;
  --workspace-accent:#2d9a82;
}

#appView.workspace-modern-app:not(.hidden){
  min-height:100vh;
  display:grid;
  grid-template-columns:var(--workspace-sidebar-width) minmax(0,1fr);
  grid-template-rows:auto auto minmax(0,1fr) auto;
  background:#eef3f7;
  transition:grid-template-columns .2s ease;
}

#appView.workspace-sidebar-collapsed{
  --workspace-sidebar-width:86px;
}

#appView.workspace-modern-app>.topbar{
  grid-column:2;
  grid-row:1;
  min-width:0;
  min-height:var(--workspace-header-height);
  position:sticky;
  top:0;
  z-index:1180;
  padding:9px 18px;
  border-bottom:1px solid #d7e2ea;
  background:rgba(255,255,255,.96);
  color:#264762;
  box-shadow:0 5px 18px rgba(20,47,72,.08);
  backdrop-filter:blur(14px);
}

#appView.workspace-modern-app>.topbar .topbar-inner{
  width:100%;
  max-width:none;
  min-height:54px;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:16px;
  align-items:center;
}

#appView.workspace-modern-app>.topbar .topbar-primary{
  min-width:0;
  justify-content:flex-start;
}

#appView.workspace-modern-app>.topbar .brand{
  display:none;
}

#appView.workspace-modern-app>.topbar .top-status-row{
  gap:6px;
}

#appView.workspace-modern-app>.topbar .top-status-row .btn,
#appView.workspace-modern-app>.topbar .pwa-network-status{
  min-height:36px;
  border-color:#d4e0e8;
  background:#f5f8fa;
  color:#31526e;
  box-shadow:none;
}

#appView.workspace-modern-app>.topbar .pwa-network-status.online{
  color:#26745f;
}

#appView.workspace-modern-app>.topbar .topbar-secondary{
  min-width:0;
  display:grid;
  grid-template-columns:minmax(270px,1fr) auto;
  gap:10px;
}

#appView.workspace-modern-app>.topbar .company-switcher-box,
#appView.workspace-modern-app>.topbar .account-card{
  min-height:52px;
  border:1px solid #d7e2ea;
  background:#fff;
  box-shadow:none;
}

#appView.workspace-modern-app>.topbar .company-switcher-box{
  grid-template-columns:auto minmax(180px,1fr);
  align-items:center;
  gap:9px;
  padding:7px 10px;
}

#appView.workspace-modern-app>.topbar .company-switcher-box>span{
  padding:0;
  color:#73889b;
  white-space:nowrap;
}

#appView.workspace-modern-app>.topbar .company-switcher-box select{
  height:36px;
  border-color:#cfdce6;
  background:#f7fafc;
}

#appView.workspace-modern-app>.topbar .tab-company-context{
  display:none;
}

#appView.workspace-modern-app>.topbar .account-card{
  grid-template-columns:38px minmax(120px,1fr) auto;
  padding:6px 8px;
}

#appView.workspace-modern-app>.topbar .session-avatar{
  width:38px;
  height:38px;
  border-color:#d2dfe7;
  background:#eaf2f7;
}

#appView.workspace-modern-app>.topbar .session small,
#appView.workspace-modern-app>.topbar .session span{
  color:#7a8e9e;
}

#appView.workspace-modern-app>.topbar .session b{
  color:#244762;
}

#appView.workspace-modern-app>.topbar .account-button{
  min-height:34px;
  border-color:#d4e0e8;
  color:#31526e;
  background:#f7fafc;
}

#appView.workspace-modern-app>main.container{
  display:contents;
}

#appView.workspace-modern-app .workspace-navigation-shell{
  grid-column:1;
  grid-row:1/5;
  width:var(--workspace-sidebar-width);
  height:100vh;
  min-height:0;
  position:sticky;
  top:0;
  z-index:1220;
  display:flex;
  flex-direction:column;
  gap:10px;
  margin:0;
  padding:14px 12px 12px;
  overflow:hidden;
  border-right:1px solid rgba(255,255,255,.08);
  background:
    radial-gradient(circle at 20% 0%,rgba(48,157,136,.25),transparent 27%),
    linear-gradient(175deg,var(--workspace-sidebar-bg-2),var(--workspace-sidebar-bg));
  box-shadow:12px 0 30px rgba(21,46,70,.12);
  transition:width .2s ease,padding .2s ease;
}

.workspace-sidebar-brand{
  min-height:62px;
  display:grid;
  grid-template-columns:43px minmax(0,1fr) 30px;
  align-items:center;
  gap:10px;
  padding:6px 4px 10px;
  border-bottom:1px solid rgba(255,255,255,.11);
}

.workspace-sidebar-logo{
  width:43px;
  height:43px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.22);
  border-radius:13px;
  color:#fff;
  background:linear-gradient(145deg,#2ca28a,#237c8d);
  font-size:15px;
  font-weight:950;
  box-shadow:0 8px 20px rgba(3,22,39,.25);
}

.workspace-sidebar-brand-copy{
  min-width:0;
  display:grid;
  gap:2px;
}

.workspace-sidebar-brand-copy small{
  color:#85d7c7;
  font-size:7px;
  font-weight:950;
  letter-spacing:.08em;
}

.workspace-sidebar-brand-copy b{
  overflow:hidden;
  color:#fff;
  font-size:14px;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.workspace-sidebar-brand-copy span{
  overflow:hidden;
  color:#aec4d4;
  font-size:8px;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.workspace-sidebar-collapse{
  width:29px;
  height:29px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.14);
  border-radius:9px;
  color:#dce9f1;
  background:rgba(255,255,255,.08);
  font-size:20px;
  cursor:pointer;
}

.workspace-sidebar-collapse:hover{
  background:rgba(255,255,255,.15);
}

.workspace-sidebar-command{
  width:100%;
  min-height:57px;
  display:grid;
  grid-template-columns:36px minmax(0,1fr) auto;
  align-items:center;
  gap:9px;
  padding:8px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:13px;
  color:#e8f2f7;
  background:rgba(255,255,255,.075);
  text-align:left;
  cursor:pointer;
  transition:.16s ease;
}

.workspace-sidebar-command:hover{
  border-color:rgba(114,218,198,.44);
  background:rgba(255,255,255,.13);
}

.workspace-sidebar-command-icon{
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border-radius:10px;
  color:#fff;
  background:rgba(48,164,142,.28);
  font-size:18px;
}

.workspace-sidebar-command-copy{
  min-width:0;
  display:grid;
  gap:2px;
}

.workspace-sidebar-command-copy b{
  color:#f3f8fb;
  font-size:10px;
}

.workspace-sidebar-command-copy small{
  overflow:hidden;
  color:#9fb7c8;
  font-size:7px;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.workspace-sidebar-command kbd{
  padding:4px 6px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:7px;
  color:#bcd0de;
  background:rgba(0,0,0,.16);
  font-size:7px;
  font-family:inherit;
}

.workspace-sidebar-favorites{
  display:grid;
  gap:7px;
  padding:2px 1px 0;
}

.workspace-sidebar-section-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 7px;
  color:#84a3b8;
  font-size:7px;
  font-weight:950;
  letter-spacing:.1em;
}

.workspace-sidebar-section-title small{
  min-width:20px;
  padding:3px 5px;
  border-radius:999px;
  color:#d8e7f0;
  background:rgba(255,255,255,.09);
  text-align:center;
}

.workspace-sidebar-favorite-list{
  display:grid;
  gap:4px;
}

.workspace-sidebar-favorite-list button{
  width:100%;
  min-height:35px;
  display:grid;
  grid-template-columns:28px minmax(0,1fr);
  align-items:center;
  gap:7px;
  padding:4px 7px;
  border:0;
  border-radius:9px;
  color:#cfe0ea;
  background:transparent;
  text-align:left;
  cursor:pointer;
}

.workspace-sidebar-favorite-list button:hover{
  background:rgba(255,255,255,.08);
}

.workspace-sidebar-favorite-list button span{
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  border-radius:8px;
  color:#8cddce;
  background:rgba(48,164,142,.15);
}

.workspace-sidebar-favorite-list button b{
  overflow:hidden;
  font-size:9px;
  text-overflow:ellipsis;
  white-space:nowrap;
}

#appView.workspace-modern-app .workspace-navigation-shell .workspace-nav{
  min-height:0;
  flex:1 1 auto;
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:flex-start;
  gap:4px;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  padding:1px 2px 8px;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  scrollbar-width:thin;
  scrollbar-color:rgba(255,255,255,.18) transparent;
}

#appView.workspace-modern-app .workspace-navigation-shell .workspace-nav::-webkit-scrollbar{
  width:5px;
}

#appView.workspace-modern-app .workspace-navigation-shell .workspace-nav::-webkit-scrollbar-thumb{
  border-radius:999px;
  background:rgba(255,255,255,.18);
}

#appView.workspace-modern-app .workspace-nav-mobile-head,
#appView.workspace-modern-app .workspace-mobile-nav-trigger,
#appView.workspace-modern-app .workspace-nav-backdrop{
  display:none;
}

#appView.workspace-modern-app .workspace-navigation-shell .nav-direct,
#appView.workspace-modern-app .workspace-navigation-shell .nav-group>summary{
  width:100%;
  min-height:47px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:7px 9px;
  border:1px solid transparent;
  border-radius:11px;
  color:var(--workspace-sidebar-text);
  background:transparent;
  list-style:none;
  white-space:nowrap;
  cursor:pointer;
}

#appView.workspace-modern-app .workspace-navigation-shell .nav-direct:hover,
#appView.workspace-modern-app .workspace-navigation-shell .nav-group>summary:hover,
#appView.workspace-modern-app .workspace-navigation-shell .nav-group[open]>summary{
  border-color:rgba(255,255,255,.1);
  color:#fff;
  background:rgba(255,255,255,.08);
}

#appView.workspace-modern-app .workspace-navigation-shell .nav-direct.active,
#appView.workspace-modern-app .workspace-navigation-shell .nav-group.active>summary{
  border-color:rgba(86,202,181,.35);
  color:#fff;
  background:linear-gradient(90deg,rgba(44,162,138,.34),rgba(255,255,255,.08));
  box-shadow:inset 3px 0 0 #4bc6ae;
}

#appView.workspace-modern-app .workspace-navigation-shell .nav-item-icon{
  width:33px;
  height:33px;
  flex:0 0 33px;
  border-radius:9px;
  color:#acd1df;
  background:rgba(255,255,255,.075);
}

#appView.workspace-modern-app .workspace-navigation-shell .nav-direct.active .nav-item-icon,
#appView.workspace-modern-app .workspace-navigation-shell .nav-group.active>summary .nav-item-icon{
  color:#fff;
  background:rgba(67,194,171,.23);
}

#appView.workspace-modern-app .workspace-navigation-shell .nav-item-copy b{
  color:inherit;
  font-size:10px;
}

#appView.workspace-modern-app .workspace-navigation-shell .nav-item-copy small{
  max-width:174px;
  color:#8faabc;
  font-size:7px;
}

#appView.workspace-modern-app .workspace-navigation-shell .nav-direct.active .nav-item-copy small,
#appView.workspace-modern-app .workspace-navigation-shell .nav-group.active>summary .nav-item-copy small{
  color:#b9d5df;
}

#appView.workspace-modern-app .workspace-navigation-shell .nav-group{
  width:100%;
  position:static;
}

#appView.workspace-modern-app .workspace-navigation-shell .nav-group-chevron{
  margin-left:auto;
  color:#809daf;
}

#appView.workspace-modern-app .workspace-navigation-shell .nav-group:not([open]) .nav-group-menu{
  display:none;
}

#appView.workspace-modern-app .workspace-navigation-shell .nav-group-menu,
#appView.workspace-modern-app .workspace-navigation-shell .nav-group-menu.is-wide{
  position:static;
  width:auto;
  display:grid;
  grid-template-columns:1fr;
  gap:3px;
  margin:4px 0 5px 17px;
  padding:4px 0 4px 10px;
  border:0;
  border-left:1px solid rgba(255,255,255,.12);
  border-radius:0;
  background:transparent;
  box-shadow:none;
}

#appView.workspace-modern-app .workspace-navigation-shell .nav-group-title{
  padding:3px 8px 4px;
  color:#7898ad;
  font-size:6px;
}

#appView.workspace-modern-app .workspace-navigation-shell .nav-group-menu>button{
  min-height:43px;
  display:grid;
  grid-template-columns:29px minmax(0,1fr);
  gap:8px;
  padding:5px 7px!important;
  border:1px solid transparent!important;
  border-radius:9px!important;
  color:#c5d7e2!important;
  background:transparent!important;
}

#appView.workspace-modern-app .workspace-navigation-shell .nav-group-menu>button:hover{
  transform:none;
  border-color:rgba(255,255,255,.08)!important;
  color:#fff!important;
  background:rgba(255,255,255,.065)!important;
}

#appView.workspace-modern-app .workspace-navigation-shell .nav-group-menu>button.active{
  border-color:rgba(72,195,172,.23)!important;
  color:#fff!important;
  background:rgba(43,157,136,.18)!important;
}

#appView.workspace-modern-app .workspace-navigation-shell .nav-menu-icon{
  width:29px;
  height:29px;
  flex-basis:29px;
  border-radius:8px;
  color:#9bd7ca;
  background:rgba(43,157,136,.13);
  font-size:12px;
}

#appView.workspace-modern-app .workspace-navigation-shell .nav-group-menu>button b{
  font-size:9px;
}

#appView.workspace-modern-app .workspace-navigation-shell .nav-group-menu>button small{
  color:#829eb0;
  font-size:6.5px;
}

.workspace-sidebar-footer{
  display:grid;
  gap:8px;
  padding-top:9px;
  border-top:1px solid rgba(255,255,255,.1);
}

.workspace-sidebar-footer>button{
  width:100%;
  min-height:43px;
  display:grid;
  grid-template-columns:31px minmax(0,1fr);
  align-items:center;
  gap:8px;
  padding:6px 8px;
  border:1px solid rgba(255,255,255,.1);
  border-radius:10px;
  color:#d8e7ef;
  background:rgba(255,255,255,.06);
  text-align:left;
  cursor:pointer;
}

.workspace-sidebar-footer>button>span:first-child{
  width:31px;
  height:31px;
  display:grid;
  place-items:center;
  border-radius:8px;
  color:#a7d9ce;
  background:rgba(44,162,138,.14);
}

.workspace-sidebar-footer>button>span:last-child{
  display:grid;
  gap:2px;
}

.workspace-sidebar-footer b{
  font-size:9px;
}

.workspace-sidebar-footer small{
  color:#88a5b7;
  font-size:7px;
}

.workspace-sidebar-version{
  display:flex;
  justify-content:space-between;
  padding:0 7px;
  color:#7696aa;
  font-size:7px;
}

.workspace-sidebar-version b{
  color:#9dd8cc;
}

#appView.workspace-sidebar-collapsed .workspace-navigation-shell{
  padding-right:9px;
  padding-left:9px;
}

#appView.workspace-sidebar-collapsed .workspace-sidebar-brand{
  grid-template-columns:1fr;
  justify-items:center;
}

#appView.workspace-sidebar-collapsed .workspace-sidebar-brand-copy,
#appView.workspace-sidebar-collapsed .workspace-sidebar-command-copy,
#appView.workspace-sidebar-collapsed .workspace-sidebar-command kbd,
#appView.workspace-sidebar-collapsed .workspace-sidebar-section-title,
#appView.workspace-sidebar-collapsed .workspace-sidebar-favorite-list button b,
#appView.workspace-sidebar-collapsed .workspace-navigation-shell .nav-item-copy,
#appView.workspace-sidebar-collapsed .workspace-navigation-shell .nav-group-chevron,
#appView.workspace-sidebar-collapsed .workspace-sidebar-footer>button>span:last-child,
#appView.workspace-sidebar-collapsed .workspace-sidebar-version{
  display:none!important;
}

#appView.workspace-sidebar-collapsed .workspace-sidebar-collapse{
  position:absolute;
  top:61px;
  right:-11px;
  z-index:5;
  border-color:#d4e0e8;
  color:#31526e;
  background:#fff;
  box-shadow:0 5px 14px rgba(17,44,67,.15);
}

#appView.workspace-sidebar-collapsed .workspace-sidebar-command{
  grid-template-columns:1fr;
  justify-items:center;
  padding:7px;
}

#appView.workspace-sidebar-collapsed .workspace-sidebar-favorite-list button{
  grid-template-columns:1fr;
  justify-items:center;
  padding:3px;
}

#appView.workspace-sidebar-collapsed .workspace-navigation-shell .nav-direct,
#appView.workspace-sidebar-collapsed .workspace-navigation-shell .nav-group>summary{
  justify-content:center;
  padding:6px;
}

#appView.workspace-sidebar-collapsed .workspace-navigation-shell .nav-group-menu{
  display:none!important;
}

#appView.workspace-sidebar-collapsed .workspace-sidebar-footer>button{
  grid-template-columns:1fr;
  justify-items:center;
  padding:5px;
}

.workspace-tabs-shell{
  grid-column:2;
  grid-row:2;
  min-width:0;
  min-height:var(--workspace-tabs-height);
  position:sticky;
  top:var(--workspace-header-height);
  z-index:1120;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:end;
  gap:8px;
  padding:7px 18px 0;
  border-bottom:1px solid #d8e3eb;
  background:rgba(238,243,247,.96);
  backdrop-filter:blur(12px);
}

.workspace-tabs{
  min-width:0;
  display:flex;
  align-items:end;
  gap:5px;
  overflow-x:auto;
  overflow-y:hidden;
  scrollbar-width:none;
}

.workspace-tabs::-webkit-scrollbar{
  display:none;
}

.workspace-tabs-empty{
  padding:10px 12px 11px;
  color:#7f92a2;
  font-size:9px;
}

.workspace-tab{
  min-width:154px;
  max-width:230px;
  height:42px;
  flex:0 0 auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  border:1px solid #d5e1e9;
  border-bottom:0;
  border-radius:12px 12px 0 0;
  color:#526c80;
  background:#e7edf2;
  transition:.15s ease;
}

.workspace-tab:hover{
  background:#f3f7f9;
}

.workspace-tab.active{
  height:45px;
  border-color:#ccdbe5;
  color:#244966;
  background:#fff;
  box-shadow:0 -3px 14px rgba(32,61,86,.06);
}

.workspace-tab-open{
  min-width:0;
  height:100%;
  display:grid;
  grid-template-columns:27px minmax(0,1fr) auto;
  align-items:center;
  gap:7px;
  padding:5px 7px 5px 9px;
  border:0;
  color:inherit;
  background:transparent;
  text-align:left;
  cursor:pointer;
}

.workspace-tab-icon{
  width:27px;
  height:27px;
  display:grid;
  place-items:center;
  border-radius:8px;
  color:#346487;
  background:#d9e6ee;
  font-size:12px;
  font-weight:950;
}

.workspace-tab.active .workspace-tab-icon{
  color:#fff;
  background:#315f88;
}

.workspace-tab-copy{
  min-width:0;
  display:grid;
  gap:1px;
}

.workspace-tab-copy b,
.workspace-tab-copy small{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.workspace-tab-copy b{
  font-size:9px;
}

.workspace-tab-copy small{
  color:#8395a4;
  font-size:6.5px;
}

.workspace-tab-pin{
  color:#2d9a82;
  font-size:15px;
}

.workspace-tab-close{
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  margin-right:5px;
  border:0;
  border-radius:8px;
  color:#8193a2;
  background:transparent;
  font-size:16px;
  cursor:pointer;
}

.workspace-tab-close:hover{
  color:#a52f2f;
  background:#f6dddd;
}

.workspace-tab-tools{
  display:flex;
  align-items:center;
  gap:5px;
  padding-bottom:5px;
}

.workspace-tab-tools button{
  width:35px;
  height:35px;
  display:grid;
  place-items:center;
  border:1px solid #d2dee7;
  border-radius:10px;
  color:#43637c;
  background:#fff;
  font-size:16px;
  cursor:pointer;
}

.workspace-tab-tools button:hover,
.workspace-tab-tools button.active{
  border-color:#9ec9be;
  color:#237964;
  background:#e9f5f1;
}

#appView.workspace-modern-app .page{
  grid-column:2;
  grid-row:3;
  min-width:0;
  width:auto;
  margin:0;
  padding:16px 20px 24px;
}

#appView.workspace-modern-app .footer-note{
  grid-column:2;
  grid-row:4;
  margin:0;
  padding:9px 20px 16px;
}

.workspace-module-hidden{
  display:none!important;
}

#appView.workspace-density-compact .page{
  padding:11px 14px 18px;
}

#appView.workspace-density-compact .workspace-clear-hero,
#appView.workspace-density-compact .monitoring-hero,
#appView.workspace-density-compact .support-header,
#appView.workspace-density-compact .productivity-hero,
#appView.workspace-density-compact .management-hero,
#appView.workspace-density-compact .client-hero{
  padding:18px 22px;
}

#appView.workspace-density-compact .workspace-clear-layout,
#appView.workspace-density-compact .monitoring-layout,
#appView.workspace-density-compact .workspace-clear-metrics,
#appView.workspace-density-compact .monitoring-kpis{
  gap:9px;
}

#appView.workspace-density-compact .panel,
#appView.workspace-density-compact .workspace-panel{
  border-radius:13px;
}

.workspace-command-palette{
  position:fixed;
  inset:0;
  z-index:2400;
  display:none;
  place-items:start center;
  padding:clamp(58px,10vh,110px) 16px 16px;
}

.workspace-command-palette.show{
  display:grid;
}

.workspace-command-backdrop{
  position:absolute;
  inset:0;
  background:rgba(9,27,44,.58);
  backdrop-filter:blur(5px);
}

.workspace-command-dialog{
  position:relative;
  z-index:1;
  width:min(720px,100%);
  max-height:min(690px,80vh);
  display:grid;
  grid-template-rows:auto auto minmax(0,1fr) auto;
  overflow:hidden;
  border:1px solid #cbd9e3;
  border-radius:20px;
  background:#fff;
  box-shadow:0 34px 90px rgba(8,29,48,.38);
}

.workspace-command-head{
  min-height:68px;
  display:grid;
  grid-template-columns:37px minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  padding:10px 15px;
  border-bottom:1px solid #dde6ed;
}

.workspace-command-head>span{
  width:37px;
  height:37px;
  display:grid;
  place-items:center;
  border-radius:11px;
  color:#fff;
  background:#315f88;
  font-size:19px;
}

.workspace-command-head input{
  min-width:0;
  height:44px;
  padding:0 4px;
  border:0;
  outline:0;
  color:#263f54;
  background:transparent;
  font-size:15px;
  font-weight:700;
}

.workspace-command-head kbd,
.workspace-command-dialog footer kbd{
  padding:4px 6px;
  border:1px solid #d2dde5;
  border-bottom-width:2px;
  border-radius:7px;
  color:#647b8d;
  background:#f3f7f9;
  font-size:8px;
  font-family:inherit;
}

.workspace-command-hint{
  padding:8px 16px;
  color:#71889a;
  background:#f7fafc;
  font-size:8px;
}

.workspace-command-results{
  min-height:190px;
  overflow:auto;
  padding:8px;
}

.workspace-command-result{
  width:100%;
  min-height:58px;
  display:grid;
  grid-template-columns:39px minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  padding:8px 10px;
  border:1px solid transparent;
  border-radius:12px;
  color:#38566e;
  background:#fff;
  text-align:left;
  cursor:pointer;
}

.workspace-command-result:hover,
.workspace-command-result.selected{
  border-color:#bcd1df;
  background:#edf5f9;
}

.workspace-command-result-icon{
  width:39px;
  height:39px;
  display:grid;
  place-items:center;
  border-radius:11px;
  color:#315f88;
  background:#dfeaf1;
  font-size:15px;
  font-weight:950;
}

.workspace-command-result-copy{
  min-width:0;
  display:grid;
  gap:3px;
}

.workspace-command-result-copy b{
  overflow:hidden;
  color:#294b66;
  font-size:11px;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.workspace-command-result-copy small{
  overflow:hidden;
  color:#7a8f9f;
  font-size:8px;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.workspace-command-result em{
  padding:5px 8px;
  border-radius:999px;
  color:#587185;
  background:#edf2f5;
  font-size:7px;
  font-style:normal;
  font-weight:850;
}

.workspace-command-empty{
  min-height:180px;
  display:grid;
  place-content:center;
  gap:5px;
  color:#7d91a1;
  text-align:center;
}

.workspace-command-empty b{
  color:#3b5a72;
}

.workspace-command-dialog footer{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:15px;
  padding:8px 13px;
  border-top:1px solid #dde6ed;
  color:#778d9e;
  background:#f8fafb;
  font-size:7px;
}

.workspace-command-dialog footer span{
  display:flex;
  align-items:center;
  gap:4px;
}

body.workspace-command-open,
body.workspace-drawer-open{
  overflow:hidden;
}

.workspace-drawer-backdrop{
  position:fixed;
  inset:0;
  z-index:2180;
  display:none;
  background:rgba(10,29,46,.36);
  backdrop-filter:blur(2px);
}

.workspace-drawer-backdrop.show{
  display:block;
}

.workspace-drawer{
  position:fixed;
  top:0;
  right:0;
  bottom:0;
  z-index:2190;
  width:min(420px,92vw);
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  border-left:1px solid #cad8e2;
  background:#f4f7f9;
  box-shadow:-24px 0 64px rgba(10,31,49,.24);
  transform:translateX(105%);
  transition:transform .22s ease;
}

.workspace-drawer.show{
  transform:translateX(0);
}

.workspace-drawer>header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:18px;
  color:#fff;
  background:linear-gradient(135deg,#193d64,#29627b);
}

.workspace-drawer>header small{
  display:block;
  margin-bottom:3px;
  color:#9de0d3;
  font-size:7px;
  font-weight:950;
  letter-spacing:.1em;
}

.workspace-drawer>header h3{
  margin:0;
  color:#fff;
  font-size:17px;
}

.workspace-drawer>header button{
  width:35px;
  height:35px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.2);
  border-radius:10px;
  color:#fff;
  background:rgba(255,255,255,.1);
  font-size:20px;
  cursor:pointer;
}

.workspace-drawer-body{
  overflow:auto;
  padding:13px;
}

.workspace-drawer-body>section{
  display:grid;
  gap:7px;
  margin-bottom:16px;
}

.workspace-drawer-section-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:0 3px;
}

.workspace-drawer-section-head>b{
  color:#365770;
  font-size:10px;
}

.workspace-drawer-section-head>button{
  border:0;
  color:#52738c;
  background:transparent;
  font-size:7px;
  font-weight:800;
  cursor:pointer;
}

.workspace-drawer-item{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:6px;
  padding:5px;
  border:1px solid #d8e3eb;
  border-radius:12px;
  background:#fff;
}

.workspace-drawer-item.active{
  border-color:#9fc8bc;
  box-shadow:inset 3px 0 0 #2d9a82;
}

.workspace-drawer-item>button:first-child{
  min-width:0;
  display:grid;
  grid-template-columns:36px minmax(0,1fr);
  align-items:center;
  gap:8px;
  padding:5px;
  border:0;
  color:#36566e;
  background:transparent;
  text-align:left;
  cursor:pointer;
}

.workspace-drawer-item>button:first-child>span{
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border-radius:10px;
  color:#315f88;
  background:#e4edf3;
  font-weight:950;
}

.workspace-drawer-item>button:first-child>div{
  min-width:0;
  display:grid;
  gap:2px;
}

.workspace-drawer-item b,
.workspace-drawer-item small{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.workspace-drawer-item b{
  font-size:9px;
}

.workspace-drawer-item small{
  color:#8296a5;
  font-size:7px;
}

.workspace-drawer-item-actions{
  display:flex;
  gap:3px;
}

.workspace-drawer-item-actions button{
  width:29px;
  height:29px;
  display:grid;
  place-items:center;
  border:0;
  border-radius:8px;
  color:#617a8d;
  background:#edf2f5;
  cursor:pointer;
}

.workspace-drawer-links{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:6px;
}

.workspace-drawer-link{
  min-width:0;
  min-height:44px;
  display:grid;
  grid-template-columns:29px minmax(0,1fr);
  align-items:center;
  gap:7px;
  padding:6px 8px;
  border:1px solid #d8e3eb;
  border-radius:10px;
  color:#405e75;
  background:#fff;
  text-align:left;
  cursor:pointer;
}

.workspace-drawer-link span{
  width:29px;
  height:29px;
  display:grid;
  place-items:center;
  border-radius:8px;
  color:#315f88;
  background:#e6eef3;
}

.workspace-drawer-link b,
.workspace-drawer-link small{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.workspace-drawer-link b{
  font-size:8px;
}

.workspace-drawer-link small{
  display:none;
}

.workspace-drawer-empty{
  margin:0;
  padding:12px;
  border:1px dashed #cbd9e2;
  border-radius:10px;
  color:#7c91a1;
  background:#fff;
  font-size:8px;
  text-align:center;
}

.workspace-preferences-form{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}

.workspace-preferences-form>section{
  display:grid;
  align-content:start;
  gap:8px;
  padding:14px;
  border:1px solid #d8e3eb;
  border-radius:14px;
  background:#f8fafb;
}

.workspace-preferences-form h4{
  margin:0 0 3px;
  color:#2f526e;
}

.workspace-preference-choice,
.workspace-preference-toggle{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:9px;
  padding:9px;
  border:1px solid #d7e2ea;
  border-radius:10px;
  background:#fff;
  cursor:pointer;
}

.workspace-preference-choice span{
  display:grid;
  gap:2px;
}

.workspace-preference-choice b,
.workspace-preference-toggle span{
  color:#36566e;
  font-size:9px;
  font-weight:800;
}

.workspace-preference-choice small{
  color:#7b90a0;
  font-size:7px;
}

.workspace-preferences-form footer{
  grid-column:1/-1;
  display:flex;
  justify-content:flex-end;
  gap:8px;
  padding-top:4px;
}

.workspace-mobile-dock{
  display:none;
}

@media(max-width:1180px) and (min-width:981px){
  :root{
    --workspace-sidebar-width:238px;
  }

  #appView.workspace-modern-app>.topbar .topbar-secondary{
    grid-template-columns:minmax(230px,1fr) auto;
  }

  #appView.workspace-modern-app>.topbar .account-button span:last-child{
    display:none;
  }

  .workspace-tab{
    min-width:140px;
  }
}

@media(max-width:980px){
  :root{
    --workspace-header-height:auto;
    --workspace-tabs-height:48px;
  }

  #appView.workspace-modern-app:not(.hidden){
    display:block;
    min-height:100vh;
    padding-bottom:70px;
  }

  #appView.workspace-modern-app>.topbar{
    min-height:0;
    position:sticky;
    top:0;
    padding:8px 10px;
  }

  #appView.workspace-modern-app>.topbar .topbar-inner{
    display:grid;
    grid-template-columns:1fr;
    gap:7px;
  }

  #appView.workspace-modern-app>.topbar .brand{
    display:flex;
  }

  #appView.workspace-modern-app>.topbar .brand-copy{
    display:block;
  }

  #appView.workspace-modern-app>.topbar .brand .logo.small{
    width:40px;
    height:40px;
    flex-basis:40px;
  }

  #appView.workspace-modern-app>.topbar .brand h1{
    font-size:14px;
  }

  #appView.workspace-modern-app>.topbar .brand-kicker,
  #appView.workspace-modern-app>.topbar .brand p{
    display:none;
  }

  #appView.workspace-modern-app>.topbar .topbar-primary{
    justify-content:space-between;
  }

  #appView.workspace-modern-app>.topbar .topbar-secondary{
    grid-template-columns:minmax(0,1fr) auto;
  }

  #appView.workspace-modern-app>.topbar .company-switcher-box{
    min-width:0;
    grid-template-columns:1fr;
    gap:3px;
  }

  #appView.workspace-modern-app>.topbar .company-switcher-box>span{
    display:none;
  }

  #appView.workspace-modern-app>.topbar .account-card{
    grid-template-columns:38px;
  }

  #appView.workspace-modern-app>.topbar .session,
  #appView.workspace-modern-app>.topbar .account-actions{
    display:none;
  }

  #appView.workspace-modern-app>main.container{
    display:block;
    max-width:none;
    padding:10px;
  }

  #appView.workspace-modern-app .workspace-navigation-shell{
    width:auto;
    height:auto;
    position:relative;
    display:block;
    margin:0 0 9px;
    padding:0;
    overflow:visible;
    border:0;
    background:transparent;
    box-shadow:none;
  }

  .workspace-sidebar-brand,
  .workspace-sidebar-command,
  .workspace-sidebar-favorites,
  .workspace-sidebar-footer{
    display:none!important;
  }

  #appView.workspace-modern-app .workspace-mobile-nav-trigger{
    display:grid;
  }

  #appView.workspace-modern-app .workspace-navigation-shell .workspace-nav{
    position:fixed;
    top:0;
    right:auto;
    bottom:0;
    left:0;
    z-index:1500;
    width:min(370px,88vw);
    max-height:100dvh;
    display:block;
    overflow-y:auto!important;
    padding:0 11px 16px;
    border:0;
    border-right:1px solid #d4e0e9;
    border-radius:0 23px 23px 0;
    background:#f5f8fa;
    box-shadow:24px 0 70px rgba(10,27,43,.33);
    opacity:0;
    pointer-events:none;
    transform:translateX(-105%);
    transition:transform .23s ease,opacity .2s ease;
  }

  #appView.workspace-modern-app .workspace-navigation-shell.is-mobile-open .workspace-nav{
    opacity:1;
    pointer-events:auto;
    transform:translateX(0);
  }

  #appView.workspace-modern-app .workspace-nav-mobile-head{
    display:flex;
  }

  #appView.workspace-modern-app .workspace-navigation-shell .nav-direct,
  #appView.workspace-modern-app .workspace-navigation-shell .nav-group>summary{
    min-height:58px;
    color:#405b73;
    background:#fff;
    border-color:#d9e4ec;
  }

  #appView.workspace-modern-app .workspace-navigation-shell .nav-direct.active,
  #appView.workspace-modern-app .workspace-navigation-shell .nav-group.active>summary{
    color:#fff;
    background:#315d88;
    box-shadow:none;
  }

  #appView.workspace-modern-app .workspace-navigation-shell .nav-item-icon{
    color:#315d88;
    background:#e8f0f6;
  }

  #appView.workspace-modern-app .workspace-navigation-shell .nav-direct.active .nav-item-icon,
  #appView.workspace-modern-app .workspace-navigation-shell .nav-group.active>summary .nav-item-icon{
    color:#fff;
    background:rgba(255,255,255,.16);
  }

  #appView.workspace-modern-app .workspace-navigation-shell .nav-item-copy b{
    color:inherit;
  }

  #appView.workspace-modern-app .workspace-navigation-shell .nav-item-copy small{
    color:#7e90a1;
  }

  #appView.workspace-modern-app .workspace-navigation-shell .nav-group-menu,
  #appView.workspace-modern-app .workspace-navigation-shell .nav-group-menu.is-wide{
    margin:5px 0 7px 12px;
    border-left-color:#d2dee7;
  }

  #appView.workspace-modern-app .workspace-navigation-shell .nav-group-menu>button{
    color:#3b5872!important;
    background:#fff!important;
    border-color:#d9e4ec!important;
  }

  #appView.workspace-modern-app .workspace-navigation-shell .nav-group-menu>button small{
    color:#7b8e9f;
  }

  #appView.workspace-modern-app .workspace-navigation-shell .nav-menu-icon{
    color:#315d88;
    background:#e8f0f6;
  }

  .workspace-tabs-shell{
    min-height:48px;
    position:sticky;
    top:0;
    z-index:1100;
    margin:0 -2px 10px;
    padding:5px 3px 0;
    border:1px solid #d8e3eb;
    border-radius:13px;
    background:rgba(245,248,250,.97);
  }

  .workspace-tab{
    min-width:134px;
    height:39px;
  }

  .workspace-tab.active{
    height:41px;
  }

  .workspace-tab-copy small{
    display:none;
  }

  .workspace-tab-tools{
    padding:0 3px 4px 0;
  }

  .workspace-tab-tools button{
    width:33px;
    height:33px;
  }

  #appView.workspace-modern-app .page{
    width:auto;
    margin:0;
    padding:0 0 14px;
  }

  #appView.workspace-modern-app .footer-note{
    margin:0;
    padding:8px 4px 18px;
  }

  .workspace-mobile-dock{
    position:fixed;
    right:8px;
    bottom:calc(7px + env(safe-area-inset-bottom));
    left:8px;
    z-index:1300;
    height:59px;
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    align-items:center;
    gap:4px;
    padding:5px;
    border:1px solid rgba(199,215,226,.95);
    border-radius:18px;
    background:rgba(255,255,255,.95);
    box-shadow:0 15px 38px rgba(15,42,64,.23);
    backdrop-filter:blur(14px);
  }

  .workspace-mobile-dock button{
    min-width:0;
    height:47px;
    display:grid;
    place-items:center;
    align-content:center;
    gap:2px;
    border:0;
    border-radius:13px;
    color:#60798c;
    background:transparent;
    cursor:pointer;
  }

  .workspace-mobile-dock button.active{
    color:#fff;
    background:#315d88;
  }

  .workspace-mobile-dock button span{
    font-size:16px;
    font-weight:950;
  }

  .workspace-mobile-dock button small{
    overflow:hidden;
    max-width:100%;
    font-size:7px;
    font-weight:800;
    text-overflow:ellipsis;
    white-space:nowrap;
  }

  .workspace-command-palette{
    padding:12px;
    place-items:start center;
  }

  .workspace-command-dialog{
    max-height:calc(100dvh - 24px);
    border-radius:17px;
  }

  .workspace-command-head{
    min-height:61px;
    grid-template-columns:34px minmax(0,1fr);
  }

  .workspace-command-head>kbd{
    display:none;
  }

  .workspace-command-dialog footer{
    display:none;
  }

  .workspace-drawer-links{
    grid-template-columns:1fr;
  }

  .workspace-preferences-form{
    grid-template-columns:1fr;
  }

  .workspace-preferences-form footer{
    grid-column:1;
  }
}

@media(max-width:560px){
  #appView.workspace-modern-app>.topbar .pwa-network-label,
  #appView.workspace-modern-app>.topbar .pwa-center-label,
  #appView.workspace-modern-app>.topbar .notification-button>span:nth-child(2){
    display:none;
  }

  #appView.workspace-modern-app>.topbar .top-status-row .btn,
  #appView.workspace-modern-app>.topbar .pwa-network-status{
    min-width:34px;
    padding:6px 8px;
  }

  .workspace-tabs-shell{
    grid-template-columns:minmax(0,1fr) auto;
  }

  .workspace-tab{
    min-width:122px;
    max-width:165px;
  }

  #workspaceFavoriteToggle{
    display:none;
  }

  .workspace-command-result{
    grid-template-columns:36px minmax(0,1fr);
  }

  .workspace-command-result em{
    display:none;
  }
}


/* =========================================================
   5.4.0 - LEGIBILIDAD MEJORADA Y MENU PERSISTENTE
   ========================================================= */

#appView.workspace-modern-app{
  font-family:"Segoe UI Variable Text","Segoe UI",Tahoma,Arial,sans-serif;
  font-size:14px;
  line-height:1.45;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

#appView.workspace-modern-app:not(.workspace-sidebar-collapsed){
  --workspace-sidebar-width:294px;
}

#appView.workspace-modern-app button,
#appView.workspace-modern-app input,
#appView.workspace-modern-app select,
#appView.workspace-modern-app textarea{
  font-family:inherit;
  letter-spacing:.005em;
}

.workspace-sidebar-brand-copy small{font-size:8.5px;line-height:1.25}
.workspace-sidebar-brand-copy b{font-size:15px;line-height:1.2}
.workspace-sidebar-brand-copy span{font-size:9.5px;line-height:1.25}
.workspace-sidebar-command-copy b{font-size:11.5px;line-height:1.25}
.workspace-sidebar-command-copy small{font-size:9px;line-height:1.3}
.workspace-sidebar-command kbd{font-size:8px}
.workspace-sidebar-section-title{font-size:8.5px}
.workspace-sidebar-favorite-list button b{font-size:10.5px;line-height:1.25}

#appView.workspace-modern-app .workspace-navigation-shell .nav-direct,
#appView.workspace-modern-app .workspace-navigation-shell .nav-group>summary{
  min-height:50px;
}

#appView.workspace-modern-app .workspace-navigation-shell .nav-item-copy b{
  font-size:11.5px;
  line-height:1.25;
  font-weight:800;
}

#appView.workspace-modern-app .workspace-navigation-shell .nav-item-copy small{
  max-width:190px;
  color:#aec2d0;
  font-size:9px;
  line-height:1.25;
  font-weight:600;
}

#appView.workspace-modern-app .workspace-navigation-shell .nav-group-title{
  color:#9bb4c4;
  font-size:7.8px;
  line-height:1.3;
}

#appView.workspace-modern-app .workspace-navigation-shell .nav-group-menu>button{
  min-height:48px;
}

#appView.workspace-modern-app .workspace-navigation-shell .nav-group-menu>button b{
  font-size:10.8px;
  line-height:1.25;
  font-weight:800;
}

#appView.workspace-modern-app .workspace-navigation-shell .nav-group-menu>button small{
  color:#a4bac8;
  font-size:8.5px;
  line-height:1.3;
  font-weight:550;
}

.workspace-sidebar-footer b{font-size:10.5px;line-height:1.25}
.workspace-sidebar-footer small{font-size:8.5px;line-height:1.3}
.workspace-sidebar-version{font-size:8px}

.workspace-tabs-empty{font-size:10.5px}
.workspace-tab{min-width:170px;max-width:250px}
.workspace-tab-copy b{font-size:10.8px;line-height:1.2;font-weight:800}
.workspace-tab-copy small{font-size:8px;line-height:1.2}

#appView.workspace-modern-app>.topbar .company-switcher-box>span,
#appView.workspace-modern-app>.topbar .session small,
#appView.workspace-modern-app>.topbar .session span{
  font-size:9.5px;
  line-height:1.25;
}

#appView.workspace-modern-app>.topbar .session b{
  font-size:11.5px;
  line-height:1.25;
}

#appView.workspace-modern-app .operations-panel-kicker,
#appView.workspace-modern-app .workspace-eyebrow{
  font-size:9.5px;
  line-height:1.25;
  letter-spacing:.09em;
}

#appView.workspace-modern-app .support-header p,
#appView.workspace-modern-app .ticket-list-heading p{
  font-size:12.5px;
  line-height:1.5;
}

#appView.workspace-modern-app .grid-kpi .kpi span{
  font-size:10.5px;
  line-height:1.3;
}

#appView.workspace-modern-app .ticket-bucket-tab{
  font-size:12.5px;
}

#appView.workspace-modern-app .tickets-table thead th{
  font-size:10.5px;
  letter-spacing:.015em;
}

#appView.workspace-modern-app .ticket-created-date,
#appView.workspace-modern-app .ticket-cell-requester>span,
#appView.workspace-modern-app .ticket-cell-technician>span,
#appView.workspace-modern-app .ticket-deadline-date,
#appView.workspace-modern-app .ticket-sla-time,
#appView.workspace-modern-app .ticket-service-category,
#appView.workspace-modern-app .ticket-service-equipment{
  font-size:10.8px;
  line-height:1.4;
}

#appView.workspace-modern-app .ticket-cell-requester>b,
#appView.workspace-modern-app .ticket-cell-technician>b,
#appView.workspace-modern-app .ticket-cell-service>b{
  font-size:12.5px;
  line-height:1.4;
}

#appView.workspace-modern-app .ticket-code-link{
  font-size:13.5px;
}

#appView.workspace-modern-app .ticket-cell-actions .btn{
  font-size:10.8px;
}

#appView.workspace-modern-app .badge,
#appView.workspace-modern-app .status-badge{
  font-size:max(9px,.68rem);
}

@media(max-width:1180px) and (min-width:981px){
  #appView.workspace-modern-app:not(.workspace-sidebar-collapsed){
    --workspace-sidebar-width:278px;
  }
}

@media(max-width:980px){
  #appView.workspace-modern-app{
    font-size:15px;
  }

  #appView.workspace-modern-app .workspace-navigation-shell .nav-item-copy b{
    font-size:13px;
  }

  #appView.workspace-modern-app .workspace-navigation-shell .nav-item-copy small{
    font-size:10.5px;
  }

  #appView.workspace-modern-app .workspace-navigation-shell .nav-group-menu>button b{
    font-size:12px;
  }

  #appView.workspace-modern-app .workspace-navigation-shell .nav-group-menu>button small{
    font-size:9.5px;
  }
}


/* =========================================================
   CENTRO DE MONITOREO MODERNO 5.4.0
   ========================================================= */
.monitoring-workspace{position:relative}
.monitoring-commandbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:14px;padding:18px 20px;border:1px solid #dbe6ef;border-radius:18px;background:linear-gradient(120deg,#fff 0%,#f6fafd 100%);box-shadow:0 8px 24px rgba(24,54,82,.06)}
.monitoring-command-title{min-width:0}.monitoring-command-title h2{margin:3px 0 2px;font-size:1.55rem;color:#17375c}.monitoring-command-title p{margin:0;color:#617589}.monitoring-command-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.monitoring-live-chip{display:flex!important;align-items:center;gap:7px;padding:8px 10px;border:1px solid #d8e7df;border-radius:999px;background:#f5fbf8;color:#416a57!important;font-size:.74rem!important;font-weight:750!important;letter-spacing:0!important;white-space:nowrap}.monitoring-live-chip i{width:8px;height:8px;border-radius:50%;background:#35a870;box-shadow:0 0 0 4px rgba(53,168,112,.12)}
.monitoring-admin-dropdown{position:relative}.monitoring-admin-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:80;display:none;width:min(360px,calc(100vw - 32px));padding:8px;border:1px solid #d9e4ed;border-radius:16px;background:#fff;box-shadow:0 22px 55px rgba(20,43,66,.2)}.monitoring-admin-menu.open{display:grid}.monitoring-admin-menu>button{display:grid;grid-template-columns:42px 1fr;gap:10px;align-items:center;width:100%;padding:10px;border:0;border-radius:11px;background:transparent;text-align:left;cursor:pointer}.monitoring-admin-menu>button:hover{background:#f0f6fb}.monitoring-admin-menu>button>span{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:#eaf2f8;color:#25577d;font-size:.72rem;font-weight:900}.monitoring-admin-menu b,.monitoring-admin-menu small{display:block}.monitoring-admin-menu b{color:#1e3d58}.monitoring-admin-menu small{margin-top:2px;color:#718497}.monitoring-admin-menu .has-pending>span{background:#fff0dd;color:#a45e05}
.monitoring-overview{display:grid;gap:12px;margin-bottom:14px}.monitoring-kpi-strip{display:grid;grid-template-columns:repeat(9,minmax(94px,1fr));gap:8px;margin:0}.monitoring-kpi-strip article{min-height:88px;padding:13px 14px;border-radius:14px;box-shadow:none}.monitoring-kpi-strip article:after{width:56px;height:56px;right:-18px;bottom:-20px}.monitoring-kpi-strip strong{margin:3px 0 0;font-size:1.55rem}.monitoring-kpi-strip small{font-size:.67rem;font-weight:800;text-transform:uppercase;letter-spacing:.035em}.monitoring-kpi-strip span{font-size:.7rem}
.monitoring-health-strip{display:grid;grid-template-columns:minmax(250px,.9fr) minmax(240px,.85fr) minmax(280px,1fr);gap:10px}.monitoring-health-strip>article{display:flex;align-items:center;gap:13px;min-height:100px;padding:15px 17px;border:1px solid #dbe6ef;border-radius:16px;background:#fff;box-shadow:0 7px 22px rgba(25,53,79,.05)}.monitoring-health-strip small{display:block;color:#788b9d;font-size:.68rem;font-weight:850;letter-spacing:.07em}.monitoring-health-strip b{display:block;margin:3px 0;color:#193a57;font-size:1.08rem}.monitoring-health-strip span{color:#667b8e;font-size:.78rem}
.monitoring-health-ring{--score:0;position:relative;display:grid;place-items:center;flex:0 0 68px;width:68px;height:68px;border-radius:50%;background:conic-gradient(#39a878 calc(var(--score)*1%),#e5edf3 0)}.monitoring-health-ring:before{content:"";position:absolute;inset:7px;border-radius:50%;background:#fff}.monitoring-health-ring>span{position:relative;z-index:1;display:flex;align-items:baseline;gap:1px;color:#183b59}.monitoring-health-ring b{margin:0;font-size:1.25rem}.monitoring-health-ring small{font-size:.58rem;letter-spacing:0}.monitoring-health-ring.attention{background:conic-gradient(#d99b2e calc(var(--score)*1%),#e5edf3 0)}.monitoring-health-ring.critical{background:conic-gradient(#d5534f calc(var(--score)*1%),#e5edf3 0)}
.monitoring-availability-card{display:grid!important;grid-template-columns:1fr auto;align-content:center}.monitoring-availability-card>div:first-child b{font-size:1.35rem}.monitoring-availability-card>span{grid-column:1/-1}.monitoring-availability-meter{grid-column:1/-1;height:8px;border-radius:999px;background:#e4ecf2;overflow:hidden}.monitoring-availability-meter i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2a9c6c,#61bd8f)}.monitoring-primary-issue-card{display:block!important}.monitoring-primary-issue-card b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.monitoring-primary-issue-card span{display:block}
.monitoring-control-center{display:grid;grid-template-columns:minmax(250px,1.5fr) repeat(4,minmax(145px,.65fr)) auto auto;gap:10px;align-items:end;padding:13px 14px;margin-bottom:14px}.monitoring-control-center .field{min-width:0}.monitoring-search-box{position:relative}.monitoring-search-box>span{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#6d8193;font-size:1rem}.monitoring-search-box input{padding-left:36px}.monitoring-clear-filters{height:42px}.monitoring-view-switch{display:flex;align-items:center;padding:3px;border:1px solid #d6e1ea;border-radius:12px;background:#f3f7fa}.monitoring-view-switch button{display:flex;align-items:center;gap:5px;height:34px;padding:0 9px;border:0;border-radius:9px;background:transparent;color:#5a7186;font:inherit;font-size:.76rem;font-weight:800;cursor:pointer}.monitoring-view-switch button.active{background:#fff;color:#174a73;box-shadow:0 3px 9px rgba(28,60,89,.12)}.monitoring-view-switch button span{display:none}
.monitoring-modern-layout{grid-template-columns:minmax(0,1.78fr) minmax(315px,.7fr);gap:14px}.monitoring-list-head p,.monitoring-alert-head p{margin:4px 0 0;color:#728598;font-size:.76rem}.monitoring-alert-panel{position:sticky;top:74px}.monitoring-problem-summary{display:grid;gap:7px;padding:12px 12px 0}.monitoring-problem-summary>button{display:grid;grid-template-columns:35px 1fr auto;gap:9px;align-items:center;width:100%;padding:9px;border:0;border-radius:11px;background:#f6f9fb;text-align:left;cursor:pointer}.monitoring-problem-summary>button:hover{background:#edf4f8}.monitoring-problem-summary>button>span{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:#fff0d9;color:#9c630d;font-weight:900}.monitoring-problem-summary>button>span.critical{background:#fde7e5;color:#b43936}.monitoring-problem-summary b,.monitoring-problem-summary small{display:block}.monitoring-problem-summary b{color:#28445d}.monitoring-problem-summary small{margin-top:2px;color:#718497}.monitoring-problem-summary i{color:#7c90a1;font-style:normal;font-size:1.2rem}
.monitoring-device-list.view-cards{grid-template-columns:repeat(auto-fit,minmax(420px,1fr));align-items:start}.monitoring-device-card{padding:15px;border-radius:15px}.monitoring-device-head.modern{grid-template-columns:34px minmax(0,1fr) auto}.monitoring-device-identity{min-width:0}.monitoring-device-statuses{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.monitoring-device-title{justify-content:flex-start}.monitoring-device-title h4{font-size:1.05rem}.monitoring-device-head.modern p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.monitoring-health-badge{display:grid;grid-template-columns:36px auto;column-gap:7px;align-items:center;min-width:92px;padding:6px 8px;border-radius:12px;background:#edf8f3;color:#1f7754}.monitoring-health-badge>i{grid-row:1/3;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:conic-gradient(#39a878 calc(var(--score)*1%),#d8e8df 0)}.monitoring-health-badge>i:after{content:"";width:25px;height:25px;border-radius:50%;background:#fff}.monitoring-health-badge b{align-self:end;font-size:1rem}.monitoring-health-badge small{align-self:start;font-size:.63rem;color:inherit}.monitoring-health-badge.attention{background:#fff7e9;color:#9b650d}.monitoring-health-badge.attention>i{background:conic-gradient(#d99b2e calc(var(--score)*1%),#eee2ca 0)}.monitoring-health-badge.critical{background:#fff0ef;color:#ad3835}.monitoring-health-badge.critical>i{background:conic-gradient(#d5534f calc(var(--score)*1%),#efd7d5 0)}.monitoring-health-badge.compact{display:flex;justify-content:center;min-width:65px;padding:5px 7px}.monitoring-health-badge.compact>i{display:none}
.monitoring-device-foot.modern{align-items:center;justify-content:space-between}.monitoring-device-facts{display:flex;gap:8px 15px;flex-wrap:wrap}.monitoring-card-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin-left:auto}.monitoring-card-actions button{border:1px solid #cad9e5;border-radius:9px;padding:6px 9px;background:#fff;color:#315a7b;font:inherit;font-size:.72rem;font-weight:850;cursor:pointer}.monitoring-card-actions button.primary{border-color:#285f8a;background:#285f8a;color:#fff}.monitoring-device-alert-count{margin:0}
.monitoring-device-list.view-compact,.monitoring-device-list.view-locations{display:block;padding:0;overflow:auto}.monitoring-compact-header,.monitoring-compact-row{display:grid;grid-template-columns:20px minmax(170px,1.25fr) minmax(120px,.8fr) 72px 58px 58px 58px minmax(100px,.7fr) minmax(145px,.9fr) 48px 48px;gap:8px;align-items:center;min-width:1080px}.monitoring-compact-header{padding:9px 13px;background:#173b60;color:#fff;font-size:.66rem;font-weight:850;text-transform:uppercase;letter-spacing:.04em}.monitoring-compact-row{position:relative;padding:10px 13px;border-bottom:1px solid #e4ebf1;background:#fff;cursor:pointer}.monitoring-compact-row:hover{background:#f4f8fb}.monitoring-compact-row.selected{background:#edf6fc}.monitoring-compact-row .monitoring-status-dot{position:absolute;left:0;top:0;bottom:0;width:4px;background:#d24c48}.monitoring-compact-row.online .monitoring-status-dot{background:#27996a}.monitoring-compact-select input{width:16px;height:16px}.monitoring-compact-name,.monitoring-compact-location,.monitoring-compact-metric,.monitoring-compact-user,.monitoring-compact-contact{display:grid;gap:2px;min-width:0}.monitoring-compact-row b{color:#28435a;font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.monitoring-compact-row small{color:#788b9c;font-size:.65rem}.monitoring-compact-alerts{display:grid;place-items:center;width:28px;height:28px;border-radius:999px;background:#eef3f7;color:#5b7287;font-size:.72rem;font-weight:900}.monitoring-compact-alerts.critical{background:#fde6e4;color:#b23b38}.monitoring-compact-quick{border:0;border-radius:8px;padding:6px;background:#e8f1f7;color:#245777;font:inherit;font-size:.7rem;font-weight:850;cursor:pointer}
.monitoring-location-group{margin:10px;border:1px solid #dbe5ed;border-radius:14px;overflow:hidden;background:#fff}.monitoring-location-group>header{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:12px 14px;background:linear-gradient(90deg,#f4f8fb,#fff)}.monitoring-location-group>header>div{display:flex;align-items:center;gap:10px}.monitoring-location-group h4,.monitoring-location-group p{margin:0}.monitoring-location-group h4{color:#1d3e5b}.monitoring-location-group p{margin-top:2px;color:#718496;font-size:.72rem}.monitoring-location-group>header>span{padding:6px 9px;border-radius:999px;background:#e8f3ef;color:#2c775a;font-size:.72rem;font-weight:850}.monitoring-location-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#e6f0f7;color:#285d84}
.monitoring-alert-card.grouped{padding:13px}.monitoring-alert-card.grouped .monitoring-alert-top{display:grid;grid-template-columns:28px 1fr auto}.monitoring-alert-card.grouped .monitoring-alert-top>strong{display:grid;place-items:center;min-width:28px;height:28px;border-radius:9px;background:#fff;color:#aa6a08}.monitoring-alert-card.grouped.critical .monitoring-alert-top>strong{color:#b03936}.monitoring-alert-devices{display:flex;gap:5px;flex-wrap:wrap}.monitoring-alert-devices span{padding:4px 7px;border-radius:999px;background:rgba(255,255,255,.85);border:1px solid #e3dfd5;color:#607284;font-size:.66rem;font-weight:750}.monitoring-alert-group-modal,.monitoring-alert-group-list{display:grid;gap:10px}.monitoring-alert-group-list article{display:flex;align-items:center;gap:8px;padding:11px;border:1px solid #dfe7ee;border-radius:12px}.monitoring-alert-group-list article>div{display:grid;gap:2px;min-width:0;margin-right:auto}.monitoring-alert-group-list b{color:#29455d}.monitoring-alert-group-list span{color:#728596;font-size:.75rem}.monitoring-all-clear{display:flex;align-items:center;gap:10px;padding:11px;border-radius:12px;background:#eef9f4}.monitoring-all-clear>span{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#d9f1e5;color:#21805a;font-weight:900}.monitoring-all-clear b,.monitoring-all-clear small{display:block}.monitoring-all-clear b{color:#28664d}.monitoring-all-clear small{margin-top:2px;color:#678274}.monitoring-all-clear.compact{padding:9px}
.monitoring-quick-backdrop{position:fixed;inset:0;z-index:205;background:rgba(13,29,45,.26);opacity:0;pointer-events:none;transition:opacity .2s}.monitoring-quick-backdrop.show{opacity:1;pointer-events:auto}.monitoring-quick-panel{position:fixed;z-index:206;top:0;right:0;width:min(430px,calc(100vw - 20px));height:100dvh;padding:0;background:#f4f7fa;box-shadow:-18px 0 45px rgba(13,31,48,.24);transform:translateX(105%);transition:transform .24s ease;overflow:auto}.monitoring-quick-panel.open{transform:translateX(0)}.monitoring-quick-panel>header{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:17px 18px;background:#173b60;color:#fff}.monitoring-quick-panel>header small{display:block;color:#bcd2e4;font-size:.66rem;font-weight:850;letter-spacing:.09em}.monitoring-quick-panel>header h3{margin:3px 0 0;color:#fff}.monitoring-quick-panel>header button{width:34px;height:34px;border:0;border-radius:10px;background:rgba(255,255,255,.12);color:#fff;font-size:1.35rem;cursor:pointer}.monitoring-quick-body{display:grid;gap:11px;padding:14px}.monitoring-quick-body>section,.monitoring-quick-status,.monitoring-quick-metrics{padding:14px;border:1px solid #dce5ed;border-radius:14px;background:#fff}.monitoring-quick-status{display:flex;align-items:center;justify-content:space-between;gap:12px}.monitoring-quick-status>div:first-child{display:grid;grid-template-columns:10px 1fr;column-gap:8px}.monitoring-quick-status>div:first-child>span{grid-row:1/3;width:9px;height:9px;margin-top:5px;border-radius:50%;background:#d34f4b}.monitoring-quick-status.online>div:first-child>span{background:#2c9d6d}.monitoring-quick-status b,.monitoring-quick-status small{display:block}.monitoring-quick-status small{color:#718496;font-size:.7rem}.monitoring-quick-body h4,.monitoring-quick-body p{margin:0}.monitoring-quick-body p{margin-top:4px;color:#667b8e;line-height:1.45}.monitoring-quick-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.monitoring-quick-metrics .monitoring-metric{padding:9px}.monitoring-quick-alerts header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.monitoring-quick-alerts header span{display:grid;place-items:center;min-width:28px;height:26px;border-radius:999px;background:#eef3f7;color:#526b80;font-weight:900}.monitoring-quick-alerts article{display:grid;gap:3px;padding:9px;border-left:3px solid #dfa43a;background:#fff9ed}.monitoring-quick-alerts article+article{margin-top:6px}.monitoring-quick-alerts article.critical{border-left-color:#d04b47;background:#fff3f2}.monitoring-quick-alerts small{color:#687b8c}.monitoring-quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.monitoring-quick-actions .btn:first-child{grid-column:1/-1}.monitoring-quick-note{display:block;padding:0 5px;color:#718496;line-height:1.45}
.monitoring-empty-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:#edf3f7;color:#416982;font-size:1.25rem}
@media(max-width:1450px){.monitoring-kpi-strip{grid-template-columns:repeat(5,minmax(100px,1fr))}.monitoring-control-center{grid-template-columns:minmax(240px,1.4fr) repeat(3,minmax(135px,.7fr)) auto}.monitoring-control-center .field:nth-of-type(5){grid-column:auto}.monitoring-view-switch{grid-column:auto}.monitoring-device-list.view-cards{grid-template-columns:1fr}}
@media(max-width:1120px){.monitoring-commandbar{align-items:flex-start}.monitoring-health-strip{grid-template-columns:1fr 1fr}.monitoring-primary-issue-card{grid-column:1/-1}.monitoring-control-center{grid-template-columns:repeat(3,1fr)}.monitoring-search-field{grid-column:1/-1}.monitoring-modern-layout{grid-template-columns:1fr}.monitoring-alert-panel{position:static}.monitoring-alert-list{max-height:none}.monitoring-view-switch{justify-self:end}}
@media(max-width:720px){.monitoring-commandbar{display:grid;padding:14px}.monitoring-command-actions{justify-content:flex-start}.monitoring-command-actions>.btn{flex:1}.monitoring-live-chip{width:100%;justify-content:center}.monitoring-admin-dropdown{flex:1}.monitoring-admin-dropdown>.btn{width:100%}.monitoring-kpi-strip{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:4px}.monitoring-kpi-strip article{flex:0 0 118px;scroll-snap-align:start}.monitoring-health-strip{grid-template-columns:1fr}.monitoring-primary-issue-card{grid-column:auto}.monitoring-control-center{grid-template-columns:1fr 1fr}.monitoring-search-field{grid-column:1/-1}.monitoring-control-center .field{min-width:0}.monitoring-clear-filters{width:100%}.monitoring-view-switch{grid-column:1/-1;width:100%;justify-content:stretch}.monitoring-view-switch button{flex:1;justify-content:center}.monitoring-view-switch button span{display:inline}.monitoring-device-list.view-cards{display:grid;padding:10px}.monitoring-device-head.modern{grid-template-columns:32px minmax(0,1fr)}.monitoring-device-head.modern>.monitoring-health-badge{grid-column:1/-1;width:100%;display:flex;justify-content:center}.monitoring-device-metrics{grid-template-columns:1fr}.monitoring-device-foot.modern{display:grid}.monitoring-card-actions{margin-left:0;justify-content:stretch}.monitoring-card-actions button{flex:1}.monitoring-device-facts{display:grid;gap:4px}.monitoring-quick-actions{grid-template-columns:1fr}.monitoring-quick-actions .btn:first-child{grid-column:auto}.monitoring-bulk-bar{bottom:66px;top:auto}.monitoring-health-card,.monitoring-availability-card,.monitoring-primary-issue-card{min-height:92px!important}.monitoring-alert-panel>.panel-head{padding:15px}.monitoring-problem-summary{padding:10px 10px 0}.monitoring-alert-list{padding:10px}}
