:root{
  --iptel-blue:#003b71;
  --iptel-blue-dark:#06263f;
  --iptel-blue-soft:#eaf3ff;
  --iptel-blue-2:#005aa9;
  --iptel-orange:#f58220;
  --iptel-orange-dark:#d96b0e;
  --bg:#f3f6fb;
  --surface:#ffffff;
  --surface-2:#f8fafc;
  --text:#172033;
  --muted:#667085;
  --border:#dfe7f2;
  --shadow:0 16px 40px rgba(0, 44, 84, .12);
  --shadow-soft:0 8px 24px rgba(0, 44, 84, .08);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:radial-gradient(circle at top left,#ffffff 0,#f3f6fb 38%,#edf3fa 100%);color:var(--text);display:flex;min-height:100vh;line-height:1.45}
a{color:var(--iptel-blue-2);font-weight:800;text-decoration:none}a:hover{text-decoration:underline}

/* Login corporativo */
.login-body{display:grid;place-items:center;min-height:100vh;padding:28px;background:linear-gradient(135deg,rgba(0,59,113,.96),rgba(6,38,63,.96)),radial-gradient(circle at 85% 15%,rgba(245,130,32,.35),transparent 28%)}
.login-body:before{content:"";position:fixed;inset:0;background:linear-gradient(120deg,transparent 0 55%,rgba(245,130,32,.12) 55% 100%);pointer-events:none}.login-shell{position:relative;width:min(1080px,100%);display:grid;grid-template-columns:1.1fr .9fr;gap:28px;align-items:stretch}.login-hero{color:white;padding:44px;border-radius:30px;background:linear-gradient(145deg,rgba(255,255,255,.16),rgba(255,255,255,.06));border:1px solid rgba(255,255,255,.22);box-shadow:var(--shadow);backdrop-filter:blur(10px);display:flex;flex-direction:column;justify-content:center}.login-logo-card{width:235px;background:white;border-radius:22px;padding:18px;margin-bottom:28px;box-shadow:0 16px 36px rgba(0,0,0,.18);border-bottom:5px solid var(--iptel-orange)}.login-logo{width:100%;display:block}.login-hero h1{color:white;font-size:42px;line-height:1.05;margin:0 0 14px}.login-hero p{font-size:18px;color:#dcecff;max-width:560px;margin:0}.login-features{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.login-features span{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.24);padding:9px 12px;border-radius:999px;font-weight:800;color:#fff}.login-card{background:var(--surface);border-radius:30px;padding:34px;box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.35)}.login-form-card{display:flex;flex-direction:column;justify-content:center}.login-card-header small{display:inline-block;text-transform:uppercase;letter-spacing:.08em;color:var(--iptel-orange);font-weight:900;margin-bottom:8px}.login-card-header h2{font-size:30px;margin:0;color:var(--iptel-blue)}.login-card-header p{color:var(--muted);margin:8px 0 24px}.login-fields p{margin:0 0 16px}.login-fields label{font-weight:900;color:var(--iptel-blue);display:block;margin-bottom:7px}.login-fields input{width:100%;border:1px solid var(--border);border-radius:14px;padding:13px 14px;font-size:16px;background:#fbfdff;outline:none;transition:.18s}.login-fields input:focus{border-color:var(--iptel-blue-2);box-shadow:0 0 0 4px rgba(0,90,169,.12);background:white}.login-button{width:100%;margin-top:4px;padding:14px 18px;font-size:16px;border-radius:14px}.login-error{background:#fff1f2;color:#9f1239;border-left:5px solid #e11d48;padding:12px 14px;border-radius:14px;margin-bottom:16px;font-weight:800}.login-footer{text-align:center;margin:18px 0 0;color:var(--muted);font-size:13px;font-weight:700}

/* Layout principal */
.sidebar{width:276px;background:linear-gradient(180deg,var(--iptel-blue-dark),var(--iptel-blue));color:white;padding:22px 18px;position:fixed;top:0;bottom:0;left:0;box-shadow:14px 0 36px rgba(0,44,84,.16);z-index:10}.brand{background:white;border-radius:22px;padding:16px;margin-bottom:24px;border-left:6px solid var(--iptel-orange);box-shadow:0 14px 28px rgba(0,0,0,.14)}.brand-logo{width:188px;max-width:100%;display:block;margin:0 auto 8px}.brand small{color:var(--iptel-blue);font-weight:900;text-align:center;display:block;letter-spacing:.01em}.sidebar a,.sidebar button{width:100%;display:flex;align-items:center;gap:10px;text-align:left;color:#eef6ff;text-decoration:none;padding:12px 14px;border-radius:14px;margin:7px 0;background:transparent;border:1px solid transparent;font-size:15px;font-weight:800;cursor:pointer;transition:.18s}.sidebar a:hover,.sidebar button:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.14);box-shadow:inset 4px 0 0 var(--iptel-orange);text-decoration:none}.sidebar form{margin-top:20px;padding-top:14px;border-top:1px solid rgba(255,255,255,.16)}
.main{margin-left:276px;padding:28px;width:calc(100% - 276px)}.topbar{position:relative;z-index:5000;min-height:70px;background:rgba(255,255,255,.9);backdrop-filter:blur(8px);border-radius:22px;box-shadow:var(--shadow-soft);display:flex;align-items:center;justify-content:flex-end;padding:0 24px;margin-bottom:26px;border:1px solid rgba(223,231,242,.9);border-top:5px solid var(--iptel-orange)}.topbar strong{color:var(--iptel-blue)}.topbar small{display:block;color:var(--muted);text-align:right;font-weight:700}

h1{margin:0 0 18px;color:var(--iptel-blue);font-size:32px;letter-spacing:-.02em}h2{color:var(--iptel-blue);margin-top:0}.title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.title-row>div{display:flex;gap:10px;flex-wrap:wrap}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px;margin-bottom:24px}.card{background:linear-gradient(180deg,#fff,#fbfdff);border-radius:22px;padding:24px;box-shadow:var(--shadow-soft);border:1px solid var(--border);border-bottom:5px solid var(--iptel-orange)}.card span{color:var(--muted);font-weight:900;text-transform:uppercase;letter-spacing:.04em;font-size:12px}.card strong{display:block;font-size:38px;margin-top:8px;color:var(--iptel-blue)}.panel{background:rgba(255,255,255,.96);padding:24px;border-radius:22px;box-shadow:var(--shadow-soft);margin-bottom:22px;border:1px solid var(--border)}

table{width:100%;border-collapse:separate;border-spacing:0;overflow:hidden;border-radius:16px}th{text-align:left;color:var(--iptel-blue);font-size:12px;text-transform:uppercase;letter-spacing:.06em;background:#eff6ff}td,th{padding:14px;border-bottom:1px solid var(--border)}tbody tr{background:white}tbody tr:hover td{background:#fff8f1}.btn,.primary,.search button{background:linear-gradient(135deg,var(--iptel-orange),var(--iptel-orange-dark));color:white!important;border:0;border-radius:13px;padding:11px 16px;text-decoration:none;font-weight:900;cursor:pointer;display:inline-block;box-shadow:0 8px 18px rgba(245,130,32,.24);transition:.18s}.btn-secondary{background:linear-gradient(135deg,var(--iptel-blue),var(--iptel-blue-2))!important;box-shadow:0 8px 18px rgba(0,90,169,.20)}.primary:hover,.btn:hover,.search button:hover{transform:translateY(-1px);filter:brightness(.98);text-decoration:none}
.search{display:flex;gap:10px;margin:12px 0 18px}.search input,.search select,.form input,.form select,.form textarea{width:100%;border:1px solid var(--border);border-radius:13px;padding:12px 13px;font-size:15px;background:#fff;outline:none;transition:.18s}.search input:focus,.search select:focus,.form input:focus,.form select:focus,.form textarea:focus{border-color:var(--iptel-blue-2);box-shadow:0 0 0 4px rgba(0,90,169,.10)}.search button{width:auto}.form p{margin-bottom:15px}.form label{font-weight:900;color:var(--iptel-blue);display:block;margin-bottom:7px}.form textarea{min-height:116px}.form .helptext{display:block;color:var(--muted);font-size:12px;margin-top:4px}.alert{background:#fff7ed;border-left:5px solid var(--iptel-orange);padding:14px;border-radius:14px;margin-bottom:16px;color:#7c2d12;font-weight:700}.badge{background:var(--iptel-blue-soft);color:var(--iptel-blue);font-weight:900;border-radius:999px;padding:6px 10px;display:inline-block;font-size:12px}.status-ativo{background:#dcfce7;color:#166534}.status-pendente{background:#fef3c7;color:#92400e}.status-suspenso{background:#fee2e2;color:#991b1b}.status-cancelado{background:#e5e7eb;color:#374151}.hint{background:#f0f6ff;border-left:4px solid var(--iptel-blue);padding:12px;border-radius:12px;color:#234;font-weight:700}.search-form{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.search-form input{min-width:320px}.results-list{margin-top:18px;display:grid;gap:10px}.result-row{display:flex;justify-content:space-between;align-items:center;padding:14px;border:1px solid var(--border);border-radius:16px;background:#fff;box-shadow:var(--shadow-soft)}
@media(max-width:900px){.login-shell{grid-template-columns:1fr}.login-hero{padding:28px}.login-hero h1{font-size:34px}.sidebar{position:static;width:100%;min-height:auto}.main{margin-left:0;width:100%;padding:16px}body{display:block}.title-row{align-items:flex-start;flex-direction:column}.search{flex-direction:column}.search-form input{min-width:100%}}

.finance-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;margin-top:16px}.finance-card{background:linear-gradient(180deg,#ffffff,#f8fbff);border:1px solid var(--border);border-radius:20px;padding:18px;border-bottom:5px solid var(--iptel-orange);box-shadow:var(--shadow-soft)}.finance-card span{display:block;color:var(--iptel-blue);font-size:12px;text-transform:uppercase;letter-spacing:.06em;font-weight:900}.finance-card strong{display:block;font-size:24px;color:var(--iptel-blue-dark);margin:7px 0 2px}.finance-card small{color:var(--muted);font-weight:800}.finance-lines{margin-top:12px;display:grid;gap:6px;color:#344054}.btn-small{padding:7px 10px;border-radius:10px;font-size:12px}.muted{color:var(--muted)}.money-input{text-align:right;font-variant-numeric:tabular-nums}.moneda-select{max-width:240px}

.page-head{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px}.page-head>div{display:flex;gap:10px;flex-wrap:wrap}.grid{display:grid;gap:18px;margin-bottom:18px}.grid.two{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.grid.three{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.filters input,.filters select{border:1px solid var(--border);border-radius:13px;padding:11px 13px;background:#fff}.btn.secondary{background:linear-gradient(135deg,var(--iptel-blue),var(--iptel-blue-2));box-shadow:0 8px 18px rgba(0,90,169,.20)}.btn.small{padding:7px 10px;border-radius:10px;font-size:12px}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.metric strong{font-size:26px}.metric span{display:block;color:var(--muted);font-weight:900;text-transform:uppercase;font-size:12px}

.invoice-sheet{background:#fff;border-radius:22px;padding:28px;box-shadow:0 18px 40px rgba(15,35,65,.09);border:1px solid rgba(11,66,143,.10)}
.invoice-header{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;border-bottom:3px solid #f28c22;padding-bottom:18px;margin-bottom:22px}
.invoice-logo{max-width:190px;height:auto}.invoice-number{text-align:right}.invoice-number h2{margin:0 0 10px;color:#0b428f}.invoice-meta{margin-bottom:18px}.card.flat{box-shadow:none;border:1px solid rgba(11,66,143,.12);background:#fbfdff}.invoice-table th{background:#0b428f;color:white}.discount-row td{background:#fff8ee}.badge.success{background:#e8f7ee;color:#0f7d3b}.badge.warning{background:#fff3d7;color:#a45a00}.inline-form{display:grid;gap:8px;min-width:220px}.inline-form label{font-size:12px}.inline-form input[type=date]{width:100%}.check{display:flex;gap:6px;align-items:center}.approval-box{border:1px solid rgba(11,66,143,.12);border-radius:16px;padding:14px;margin-bottom:12px;background:#fbfdff}.approval-box textarea{width:100%;margin:6px 0}.muted{color:#6b7280}.no-print{}
@media print{body{background:white}.sidebar,.topbar,.no-print,.alert{display:none!important}.main{margin:0;padding:0}.invoice-sheet{box-shadow:none;border:none;border-radius:0;padding:0}.card.flat{break-inside:avoid}.invoice-table{font-size:11px}.invoice-table th,.invoice-table td{padding:6px}.invoice-header{margin-top:0}.invoice-logo{max-width:160px}a{color:inherit;text-decoration:none}}

/* v15 - facturación corporativa, impresión compacta y descuentos amigables */
.invoice-corporate{max-width:1120px;margin:0 auto;background:#fff;border-top:8px solid var(--iptel-blue)}
.invoice-header.compact{align-items:center;padding-bottom:14px;margin-bottom:14px;border-bottom:2px solid var(--iptel-orange)}
.invoice-brand-block p{margin:6px 0 0;font-weight:800}.invoice-label{display:block;color:var(--iptel-orange);font-weight:900;text-transform:uppercase;letter-spacing:.12em;font-size:12px}.invoice-summary-row{display:grid;grid-template-columns:2fr 1fr 1.15fr;gap:12px;margin:0 0 14px}.invoice-summary-row>div{background:#f8fbff;border:1px solid rgba(11,66,143,.10);border-radius:16px;padding:12px}.invoice-summary-row span{display:block;color:var(--iptel-blue);font-weight:900;text-transform:uppercase;font-size:11px;letter-spacing:.06em}.invoice-summary-row strong{display:block;color:var(--iptel-blue-dark);font-size:18px;margin:4px 0}.invoice-summary-row small{color:var(--muted);font-weight:700}.invoice-table-wrap{border:1px solid rgba(11,66,143,.12);border-radius:16px;overflow:hidden}.compact-table th,.compact-table td{padding:9px 10px;font-size:13px}.compact-table small{color:var(--muted);font-weight:700}.invoice-footer-grid{display:grid;grid-template-columns:1.4fr .8fr;gap:14px;margin-top:14px;align-items:start}.invoice-note{background:#f8fbff;border-left:5px solid var(--iptel-orange);border-radius:14px;padding:12px;color:#334155}.invoice-total-box{border:1px solid rgba(11,66,143,.14);border-radius:16px;padding:14px;background:#fff}.invoice-total-box h3{margin:0 0 8px}.total-line{display:flex;justify-content:space-between;gap:14px;border-top:1px solid var(--border);padding-top:9px;margin-top:9px}.total-line span{color:var(--muted);font-weight:900}.total-line strong{color:var(--iptel-blue);font-size:20px}
.discount-card{background:linear-gradient(180deg,#fff,#f8fbff);border:1px solid var(--border);border-radius:24px;box-shadow:var(--shadow-soft);padding:22px;border-top:6px solid var(--iptel-orange)}.discount-head span{color:var(--iptel-orange);font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:900}.discount-head h2{margin:4px 0;color:var(--iptel-blue)}.discount-head p{margin:0 0 16px;color:var(--muted);font-weight:700}.discount-form{display:grid;gap:10px}.discount-form label{font-weight:900;color:var(--iptel-blue)}.discount-form select,.discount-form input,.discount-form textarea,.discount-control,.discount-textarea{width:100%;border:1px solid var(--border);border-radius:14px;padding:12px;background:#fff;outline:none}.discount-form select:focus,.discount-form input:focus,.discount-form textarea:focus{border-color:var(--iptel-blue-2);box-shadow:0 0 0 4px rgba(0,90,169,.10)}.discount-two-cols{display:grid;grid-template-columns:160px 1fr;gap:12px}.approval-box.friendly{border-radius:18px;border:1px solid rgba(11,66,143,.12);background:linear-gradient(180deg,#fff,#fbfdff);box-shadow:0 8px 18px rgba(15,35,65,.06)}.approval-top{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:8px}.approval-actions form{background:#f8fbff;border:1px solid var(--border);border-radius:14px;padding:10px;flex:1}.approval-actions textarea{border:1px solid var(--border);border-radius:12px;padding:10px;min-height:70px}
@media(max-width:900px){.invoice-summary-row,.invoice-footer-grid,.discount-two-cols{grid-template-columns:1fr}.invoice-header.compact{align-items:flex-start}.invoice-number{text-align:left}}
@media print{@page{size:A4;margin:8mm}html,body{width:210mm;min-height:297mm;background:white!important}.invoice-corporate{max-width:none;width:100%;border-top:5px solid #0b428f;padding:0!important;margin:0!important;font-size:10.5px}.invoice-header.compact{padding-bottom:7px;margin-bottom:8px}.invoice-logo{max-width:130px}.invoice-number h2{font-size:18px;margin:0 0 4px}.invoice-summary-row{grid-template-columns:2fr 1fr 1.1fr;gap:6px;margin-bottom:8px}.invoice-summary-row>div{padding:7px;border-radius:9px}.invoice-summary-row strong{font-size:12px;margin:2px 0}.invoice-summary-row span,.invoice-summary-row small{font-size:9px}.compact-table{font-size:9px}.compact-table th,.compact-table td{padding:4px 5px}.compact-table th:nth-child(10),.compact-table td:nth-child(10){display:none!important}.invoice-table-wrap{border-radius:8px}.invoice-footer-grid{grid-template-columns:1.35fr .75fr;gap:8px;margin-top:8px}.invoice-note,.invoice-total-box{padding:8px;border-radius:9px}.invoice-total-box h3{font-size:12px}.total-line{padding-top:5px;margin-top:5px}.total-line strong{font-size:13px}.badge{padding:3px 6px;font-size:9px}.invoice-sheet{page-break-inside:avoid}.card.flat,.invoice-summary-row>div,.invoice-note,.invoice-total-box{break-inside:avoid}h1,h2,h3,p{margin-top:0}.main{width:100%;margin:0!important;padding:0!important}.no-print{display:none!important}}


/* v16 - Totales de factura más claros */
.invoice-total-breakdown .total-currency-title{
  margin-top:10px;
  padding-top:8px;
  border-top:1px solid rgba(15,23,42,.12);
  font-weight:800;
  color:#0b2f66;
}
.invoice-total-breakdown .total-line{
  display:flex;
  justify-content:space-between;
  gap:16px;
  padding:4px 0;
}
.invoice-total-breakdown .total-line.paid strong{color:#087f5b;}
.invoice-total-breakdown .total-line.pending strong{color:#d9480f;}
@media print{
  .invoice-total-breakdown .total-line{font-size:10px; padding:2px 0;}
  .invoice-total-breakdown .total-currency-title{font-size:10px; margin-top:5px; padding-top:4px;}
  .invoice-total-breakdown small{font-size:8px;}
}

/* v17 - estados de facturación más visibles */
.estado-badge{font-weight:900;border-radius:999px;padding:7px 12px;letter-spacing:.02em;text-transform:uppercase;box-shadow:0 1px 0 rgba(15,23,42,.06)}
.estado-pagada{background:#dcfce7!important;color:#166534!important;border:1px solid #86efac}
.estado-emitida{background:#dbeafe!important;color:#1d4ed8!important;border:1px solid #93c5fd}
.estado-vencida{background:#fee2e2!important;color:#991b1b!important;border:1px solid #fca5a5}
.estado-anulada,.estado-cancelada{background:#e5e7eb!important;color:#374151!important;border:1px solid #cbd5e1}
.estado-borrador{background:#fef3c7!important;color:#92400e!important;border:1px solid #fcd34d}
.finance-card .finance-lines div:last-child{margin-top:4px;padding-top:8px;border-top:1px dashed rgba(11,66,143,.18)}


/* v18 - visión gerencial de facturación y estado del cliente */
.billing-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-bottom:18px}
.billing-summary-card{background:#fff;border:1px solid var(--border);border-radius:18px;padding:16px;box-shadow:var(--shadow-soft);border-left:6px solid var(--iptel-blue)}
.billing-summary-card span{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:900;color:#475569;margin-bottom:6px}
.billing-summary-card strong{display:block;font-size:20px;color:var(--iptel-blue-dark);line-height:1.25}
.billing-summary-card.estado-emitida{border-left-color:#2563eb;background:linear-gradient(180deg,#fff,#eff6ff)}
.billing-summary-card.estado-vencida{border-left-color:#dc2626;background:linear-gradient(180deg,#fff,#fef2f2)}
.billing-summary-card.estado-pagada{border-left-color:#16a34a;background:linear-gradient(180deg,#fff,#f0fdf4)}
.billing-summary-card.estado-cancelada{border-left-color:#64748b;background:linear-gradient(180deg,#fff,#f8fafc)}
.cliente-estado{font-weight:900;border-radius:999px;padding:7px 12px;text-transform:uppercase;font-size:12px;display:inline-block}
.cliente-estado-activo{background:#dcfce7;color:#166534;border:1px solid #86efac}
.cliente-estado-suspendido{background:#fef3c7;color:#92400e;border:1px solid #fcd34d}
.cliente-estado-cancelado{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5}

/* v20 - Detalles de factura en tabla sin romper layout + estados unificados */
.status-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:28px;
  padding:6px 12px;
  border-radius:999px;
  font-size:12px;
  line-height:1;
  font-weight:900;
  letter-spacing:.025em;
  text-transform:uppercase;
  border:1px solid transparent;
  white-space:nowrap;
}
.status-badge::before{
  content:"";
  width:7px;
  height:7px;
  border-radius:50%;
  background:currentColor;
  opacity:.85;
}
.estado-pagada,.estado-pagado,.estado-aprobado,.estado-activo,.cliente-estado-activo,.ticket-instalado,.ticket-alterado,.ticket-finalizado,.ticket-removido{
  background:#dcfce7!important;color:#166534!important;border-color:#86efac!important;
}
.estado-emitida,.ticket-analise,.ticket-execucao,.ticket-novo{
  background:#dbeafe!important;color:#1d4ed8!important;border-color:#93c5fd!important;
}
.estado-vencida,.estado-rechazado,.estado-cancelada,.estado-anulada,.cliente-estado-cancelado,.ticket-cancelado,.estado-retirado,.estado-falla{
  background:#fee2e2!important;color:#991b1b!important;border-color:#fca5a5!important;
}
.estado-pendiente,.estado-pendente,.estado-borrador,.cliente-estado-suspendido,.ticket-pendente{
  background:#fef3c7!important;color:#92400e!important;border-color:#fcd34d!important;
}
.estado-suspendido,.estado-suspenso{
  background:#fef3c7!important;color:#92400e!important;border-color:#fcd34d!important;
}
.report-card{overflow-x:auto;}
.report-table{table-layout:fixed;min-width:980px;}
.report-table th:nth-child(1),.report-table td:nth-child(1){width:20%;}
.report-table th:nth-child(2),.report-table td:nth-child(2){width:15%;}
.report-table th:nth-child(3),.report-table td:nth-child(3){width:10%;}
.report-table th:nth-child(4),.report-table td:nth-child(4){width:13%;}
.report-table th:nth-child(5),.report-table td:nth-child(5){width:17%;}
.report-table th:nth-child(6),.report-table td:nth-child(6){width:25%;}
.report-main-row td{vertical-align:middle;}
.compact-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.btn.small{padding:8px 11px;border-radius:10px;font-size:12px;line-height:1;}
.invoice-details-row td{background:#f8fbff!important;padding:0 14px 18px 14px;border-bottom:1px solid var(--border);}
.invoice-details-panel{
  margin:0 0 4px 0;
  padding:18px;
  background:linear-gradient(180deg,#ffffff,#f8fbff);
  border:1px solid #dbe7f5;
  border-left:6px solid var(--iptel-orange);
  border-radius:18px;
  box-shadow:0 14px 30px rgba(0,44,84,.08);
}
.details-section{margin-bottom:18px;}
.details-section:last-child{margin-bottom:0;}
.details-section h4{margin:0 0 10px;color:var(--iptel-blue);font-size:15px;font-weight:900;}
.details-table{border:1px solid #dbe7f5;border-radius:14px;overflow:hidden;background:#fff;}
.details-table th{background:#eff6ff;color:var(--iptel-blue);font-size:11px;padding:11px 12px;}
.details-table td{padding:12px;border-bottom:1px solid #edf2f7;background:#fff;vertical-align:top;}
.details-table tr:last-child td{border-bottom:0;}
.details-table small{color:#64748b;font-weight:800;}
.empty-detail{color:#64748b;font-weight:800;background:#fff!important;}
.money-line{font-weight:900;color:var(--iptel-blue-dark);}
@media(max-width:1000px){
  .report-table{min-width:900px;}
  .compact-actions{flex-direction:column;align-items:flex-start;}
}


/* v21 - cancelación de servicios/clientes y mapa Google */
.cliente-profile-head{align-items:flex-start;gap:16px;}
.cliente-profile-head h1{margin-bottom:8px;}
.inline-form{display:inline-flex;margin:0;}
.btn-danger{background:#dc2626!important;color:#fff!important;border-color:#dc2626!important;box-shadow:0 8px 18px rgba(220,38,38,.20)!important;}
.btn-danger:hover{filter:brightness(.95);}
.cliente-estado-pendiente_retiro,.estado-pendiente_retiro,.status-pendente_baja,.estado-pendente_baja{
  background:#ffedd5!important;color:#9a3412!important;border-color:#fdba74!important;
}
.status-cancelado,.estado-cancelado,.cliente-estado-cancelado{
  background:#fee2e2!important;color:#991b1b!important;border-color:#fca5a5!important;
}
.status-ativo,.estado-activo,.cliente-estado-activo{
  background:#dcfce7!important;color:#166534!important;border-color:#86efac!important;
}
.status-pendente,.estado-pendente{
  background:#fef3c7!important;color:#92400e!important;border-color:#fcd34d!important;
}
.compact-actions form{display:inline-flex;margin:0;}

/* v22 - Dashboard gerencial e resumo financeiro executivo */
.dashboard-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 28px;
  align-items: center;
  padding: 30px;
  border-radius: 28px;
  color: #fff;
  background: radial-gradient(circle at top right, rgba(255,132,0,.95), transparent 34%), linear-gradient(135deg, #073b7a 0%, #0b5cab 52%, #07315f 100%);
  box-shadow: 0 24px 60px rgba(7, 59, 122, .25);
  margin-bottom: 24px;
  position: relative;
  overflow: hidden;
}
.dashboard-hero:after { content:""; position:absolute; inset:auto -80px -120px auto; width:260px; height:260px; border-radius:999px; background:rgba(255,255,255,.12); }
.dashboard-hero h1 { margin: 6px 0 8px; font-size: 36px; letter-spacing: -.04em; }
.dashboard-hero p { margin: 0; color: rgba(255,255,255,.82); font-size: 15px; }
.eyebrow { text-transform: uppercase; letter-spacing: .12em; font-size: 11px; font-weight: 800; color: #ff8a00; }
.dashboard-hero .eyebrow { color: #ffd49c; }
.hero-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; position: relative; z-index: 1; }
.hero-metrics div { min-width: 120px; padding: 16px; border-radius: 18px; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.22); backdrop-filter: blur(10px); }
.hero-metrics strong { display:block; font-size: 28px; line-height: 1; }
.hero-metrics span { display:block; margin-top:6px; color: rgba(255,255,255,.78); font-size: 12px; }
.executive-grid { display:grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 16px; margin-bottom: 22px; }
.exec-card { background:#fff; border:1px solid #e8eef7; border-radius: 22px; padding: 20px; box-shadow: 0 16px 40px rgba(15,35,65,.07); position:relative; overflow:hidden; }
.exec-card:before { content:""; position:absolute; top:0; left:0; right:0; height:5px; background:#0b5cab; }
.exec-card.accent-orange:before { background:#ff8a00; }
.exec-card.accent-green:before { background:#12a150; }
.exec-card.accent-purple:before { background:#7c3aed; }
.exec-icon { width:42px; height:42px; display:flex; align-items:center; justify-content:center; border-radius:14px; background:#f3f7ff; margin-bottom:14px; font-size:22px; }
.exec-card span { display:block; color:#64748b; font-size:13px; font-weight:700; }
.exec-card strong { display:block; color:#0f2747; font-size:31px; margin: 7px 0 4px; letter-spacing:-.04em; }
.exec-card small { color:#718096; line-height:1.35; }
.management-grid { display:grid; grid-template-columns: 1.15fr .85fr; gap: 18px; margin-bottom: 22px; }
.panel-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:16px; }
.panel-heading h2 { margin:3px 0 0; }
.finance-kpi-list { display:grid; gap: 12px; }
.finance-kpi-row { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:14px; border:1px solid #edf2f7; border-radius:16px; background:#fbfdff; }
.finance-kpi-row strong { color:#0f2747; margin-left:8px; }
.sep { color:#94a3b8; margin: 0 6px; }
.paid-month-box { margin-top:14px; padding:18px; border-radius:18px; color:#fff; background: linear-gradient(135deg, #0b5cab, #073b7a); }
.paid-month-box span { display:block; color:rgba(255,255,255,.75); font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.paid-month-box strong { display:block; margin-top:5px; font-size:24px; }
.top-client-list { display:grid; gap:10px; }
.top-client-item { display:grid; grid-template-columns: 36px 1fr auto; align-items:center; gap:12px; padding:13px; border-radius:16px; border:1px solid #edf2f7; background:#fbfdff; text-decoration:none; color:inherit; transition:.15s ease; }
.top-client-item:hover { transform: translateY(-1px); box-shadow:0 10px 24px rgba(15,35,65,.08); }
.top-client-item > span { width:32px; height:32px; display:flex; align-items:center; justify-content:center; border-radius:12px; background:#fff4e5; color:#c45f00; font-weight:800; }
.top-client-item strong { display:block; color:#0f2747; }
.top-client-item small { color:#718096; }
.top-client-item b { color:#0b5cab; }
.table-responsive { overflow-x:auto; }
.financial-wow { padding:0 !important; overflow:hidden; border:0 !important; background:transparent !important; box-shadow:none !important; }
.financial-wow-head { display:flex; justify-content:space-between; gap:18px; align-items:flex-start; padding:24px; border-radius:26px 26px 0 0; color:#fff; background: linear-gradient(135deg, #062f61, #0b5cab 62%, #ff8a00); }
.financial-wow-head h2 { margin:4px 0 6px; font-size:28px; letter-spacing:-.03em; }
.financial-wow-head p { margin:0; color:rgba(255,255,255,.78); }
.client-health-badge { min-width:180px; padding:14px 16px; border-radius:18px; background:rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.22); }
.client-health-badge span { display:block; font-size:11px; text-transform:uppercase; letter-spacing:.1em; color:rgba(255,255,255,.72); }
.client-health-badge strong { display:block; margin-top:4px; }
.finance-wow-grid { display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 16px; padding: 18px; background:#f6f9fc; border-radius:0 0 26px 26px; border:1px solid #e8eef7; border-top:0; }
.finance-wow-card { background:#fff; border:1px solid #e8eef7; border-radius:22px; padding:18px; box-shadow:0 16px 36px rgba(15,35,65,.07); }
.finance-wow-top { display:flex; justify-content:space-between; align-items:center; color:#64748b; font-weight:800; font-size:12px; text-transform:uppercase; letter-spacing:.06em; }
.finance-wow-top b { color:#ff8a00; }
.finance-wow-total { display:block; margin-top:14px; font-size:30px; color:#0f2747; letter-spacing:-.04em; }
.finance-wow-card small { color:#64748b; }
.finance-progress { height:8px; background:#edf2f7; border-radius:999px; overflow:hidden; margin:16px 0; }
.finance-progress div { height:100%; background:linear-gradient(90deg,#0b5cab,#ff8a00); border-radius:999px; }
.finance-wow-lines { display:grid; gap:10px; }
.finance-wow-lines div { display:flex; justify-content:space-between; gap:12px; padding:10px 0; border-top:1px solid #f1f5f9; }
.finance-wow-lines span { color:#64748b; }
.finance-wow-lines b { color:#0f2747; text-align:right; }
.finance-wow-lines .pending b { color:#b45309; }
.empty-wow { padding:28px; background:#fff; border:1px solid #e8eef7; border-radius:0 0 26px 26px; display:grid; gap:4px; }
.empty-wow strong { color:#0f2747; font-size:18px; }
.empty-wow span { color:#64748b; }
@media (max-width: 1100px) { .executive-grid, .finance-wow-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } .management-grid { grid-template-columns:1fr; } }
@media (max-width: 760px) { .dashboard-hero, .financial-wow-head { grid-template-columns:1fr; display:block; } .hero-metrics, .executive-grid, .finance-wow-grid { grid-template-columns:1fr; } .client-health-badge { margin-top:16px; } }

/* =========================================================
   v30 - Corrección de contraste en títulos principales
   Base: v22
   Objetivo: mejorar lectura en Panel Principal y Perfil Cliente
   sin alterar estructura, layout ni funcionalidades.
   ========================================================= */

/* Panel Principal: títulos dentro del hero/dashboard */
.dashboard-hero h1,
.dashboard-hero h2,
.dashboard-hero h3,
.dashboard-hero .title,
.dashboard-hero .page-title,
.dashboard-hero .metric-title {
  color: #FFFFFF !important;
  text-shadow: 0 2px 8px rgba(0, 35, 75, 0.35);
}

.dashboard-hero p,
.dashboard-hero span,
.dashboard-hero small {
  color: rgba(255, 255, 255, 0.88) !important;
}

.dashboard-hero .eyebrow {
  color: #FFD49C !important;
}

/* Cards/metricas dentro del Panel Principal */
.dashboard-hero .hero-metrics strong,
.dashboard-hero .hero-metrics span,
.dashboard-hero .hero-metrics small {
  color: #FFFFFF !important;
}

/* Perfil Cliente: bloque Resumen financiero real / hero financiero */
.client-finance-hero h1,
.client-finance-hero h2,
.client-finance-hero h3,
.client-finance-hero h4,
.client-finance-hero .title,
.client-finance-hero .page-title,
.client-finance-hero .metric-title,
.finance-hero h1,
.finance-hero h2,
.finance-hero h3,
.finance-hero h4,
.financial-hero h1,
.financial-hero h2,
.financial-hero h3,
.financial-hero h4 {
  color: #FFFFFF !important;
  text-shadow: 0 2px 8px rgba(0, 35, 75, 0.35);
}

.client-finance-hero p,
.client-finance-hero span,
.client-finance-hero small,
.finance-hero p,
.finance-hero span,
.finance-hero small,
.financial-hero p,
.financial-hero span,
.financial-hero small {
  color: rgba(255, 255, 255, 0.88) !important;
}

/* Valores dentro de los cuadros financieros */
.client-finance-hero strong,
.client-finance-hero .finance-tile strong,
.client-finance-hero .finance-tile .value,
.client-finance-hero .finance-tile .label,
.finance-hero strong,
.financial-hero strong {
  color: #FFFFFF !important;
}

/* Mantiene badges legibles si aparecen dentro de bloques oscuros */
.dashboard-hero .badge,
.client-finance-hero .badge,
.finance-hero .badge,
.financial-hero .badge {
  text-shadow: none !important;
}

/* Caso específico: títulos de sección sobre fondos azules/oscuros */
.dashboard-hero .section-title,
.client-finance-hero .section-title,
.finance-hero .section-title,
.financial-hero .section-title {
  color: #FFFFFF !important;
}

/* =========================================================
   v31 - Corrección definitiva: Resumen financiero real + Reporte gerencial
   Base: v22/v30
   ========================================================= */

/* Resumen financiero real: forzar bloque claro, legible y ejecutivo */
.real-finance,
.real-finance *,
.financial-real,
.financial-real *,
.resumen-financiero-real,
.resumen-financiero-real *,
.client-real-finance,
.client-real-finance * {
  text-shadow: none !important;
}

.real-finance,
.financial-real,
.resumen-financiero-real,
.client-real-finance {
  background: linear-gradient(180deg, #FFFFFF 0%, #F8FBFF 100%) !important;
  color: #0F172A !important;
  border: 1px solid #D9E4F2 !important;
  border-top: 6px solid #F47A20 !important;
  border-radius: 24px !important;
  box-shadow: 0 16px 42px rgba(0, 58, 99, 0.10) !important;
}

.real-finance h1,
.real-finance h2,
.real-finance h3,
.real-finance h4,
.financial-real h1,
.financial-real h2,
.financial-real h3,
.financial-real h4,
.resumen-financiero-real h1,
.resumen-financiero-real h2,
.resumen-financiero-real h3,
.resumen-financiero-real h4,
.client-real-finance h1,
.client-real-finance h2,
.client-real-finance h3,
.client-real-finance h4 {
  color: #003A63 !important;
}

.real-finance p,
.real-finance span,
.real-finance small,
.financial-real p,
.financial-real span,
.financial-real small,
.resumen-financiero-real p,
.resumen-financiero-real span,
.resumen-financiero-real small,
.client-real-finance p,
.client-real-finance span,
.client-real-finance small {
  color: #475569 !important;
}

.real-finance strong,
.financial-real strong,
.resumen-financiero-real strong,
.client-real-finance strong {
  color: #003A63 !important;
}

/* Cards internos do resumo financeiro */
.real-finance .finance-card,
.financial-real .finance-card,
.resumen-financiero-real .finance-card,
.client-real-finance .finance-card,
.real-finance .metric,
.financial-real .metric,
.resumen-financiero-real .metric,
.client-real-finance .metric {
  background: #FFFFFF !important;
  color: #0F172A !important;
  border: 1px solid #D9E4F2 !important;
  border-bottom: 5px solid #F47A20 !important;
}

.real-finance .finance-card span,
.financial-real .finance-card span,
.resumen-financiero-real .finance-card span,
.client-real-finance .finance-card span,
.real-finance .metric span,
.financial-real .metric span,
.resumen-financiero-real .metric span,
.client-real-finance .metric span {
  color: #64748B !important;
}

.real-finance .finance-card strong,
.financial-real .finance-card strong,
.resumen-financiero-real .finance-card strong,
.client-real-finance .finance-card strong,
.real-finance .metric strong,
.financial-real .metric strong,
.resumen-financiero-real .metric strong,
.client-real-finance .metric strong {
  color: #003A63 !important;
}

/* Reporte de cobranza: cabeçalho gerencial */
.cobranza-hero {
  background: radial-gradient(circle at top right, rgba(244,122,32,.22), transparent 34%),
              linear-gradient(135deg, #003A63 0%, #075985 100%) !important;
  color: #FFFFFF !important;
  border-radius: 26px !important;
  padding: 26px !important;
  box-shadow: 0 18px 44px rgba(0,58,99,.20) !important;
  margin-bottom: 18px !important;
}

.cobranza-hero h1,
.cobranza-hero h2,
.cobranza-hero h3,
.cobranza-hero p,
.cobranza-hero span,
.cobranza-hero strong {
  color: #FFFFFF !important;
}

.cobranza-kpi-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)) !important;
  gap: 14px !important;
  margin: 16px 0 18px !important;
}

.cobranza-kpi {
  background: #FFFFFF !important;
  border: 1px solid #D9E4F2 !important;
  border-radius: 20px !important;
  padding: 18px !important;
  box-shadow: 0 12px 30px rgba(0,58,99,.08) !important;
  border-left: 6px solid #003A63 !important;
}

.cobranza-kpi.emitida { border-left-color: #2563EB !important; }
.cobranza-kpi.pagada { border-left-color: #16A34A !important; }
.cobranza-kpi.vencida { border-left-color: #DC2626 !important; }
.cobranza-kpi.pendiente { border-left-color: #F47A20 !important; }

.cobranza-kpi span {
  display: block !important;
  color: #64748B !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
  letter-spacing: .06em !important;
}

.cobranza-kpi strong {
  display: block !important;
  color: #003A63 !important;
  font-size: 24px !important;
  margin-top: 8px !important;
  line-height: 1.15 !important;
}

.cobranza-kpi small {
  display: block !important;
  color: #64748B !important;
  font-weight: 700 !important;
  margin-top: 6px !important;
}

.cobranza-insights {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)) !important;
  gap: 14px !important;
  margin-bottom: 18px !important;
}

.cobranza-insight {
  background: #F8FBFF !important;
  border: 1px solid #D9E4F2 !important;
  border-radius: 18px !important;
  padding: 16px !important;
}

.cobranza-insight h4 {
  margin: 0 0 8px !important;
  color: #003A63 !important;
}

.cobranza-insight p {
  margin: 0 !important;
  color: #475569 !important;
  font-weight: 700 !important;
}
/* v32 - Ajustes reporte cobranza real */
.cobranza-kpi strong div{font-size:22px;color:#003A63!important;margin:2px 0;}
.cobranza-hero + .cobranza-kpi-grid{margin-top:16px;}
.page-head h2{margin:4px 0 0;color:var(--iptel-blue);}

/* v35 - Ajustes cliente/prospect/facturación separada */
.financial-summary,
.financial-summary *,
.financial-wow,
.financial-wow *,
.financial-real,
.financial-real *,
.real-finance,
.real-finance * {
  color: #FFFFFF !important;
}

.financial-summary h1,
.financial-summary h2,
.financial-summary h3,
.financial-summary h4,
.financial-wow h1,
.financial-wow h2,
.financial-wow h3,
.financial-wow h4 {
  color: #FFFFFF !important;
}

.financial-summary .finance-wow-card,
.financial-wow .finance-wow-card {
  color: #FFFFFF !important;
}

.financial-summary .finance-wow-card *,
.financial-wow .finance-wow-card * {
  color: #FFFFFF !important;
}

.cliente-estado-prospect,
.estado-prospect,
.status-prospect {
  background:#e0f2fe!important;
  color:#075985!important;
  border:1px solid #7dd3fc!important;
}
.form fieldset,
.form .inline-section {
  border:1px solid var(--border);
  border-radius:16px;
  padding:14px;
  margin:14px 0;
  background:#fbfdff;
}

/* v36 - Corrección específica del Resumen financiero real
   Solo el título "Resumen financiero real" queda blanco.
   Los indicadores y textos internos vuelven a los colores profesionales anteriores. */
.financial-summary .financial-wow-head h2,
.financial-wow .financial-wow-head h2 {
  color: #FFFFFF !important;
}

.financial-summary .financial-wow-head .eyebrow,
.financial-wow .financial-wow-head .eyebrow {
  color: #FFD49C !important;
}

.financial-summary .financial-wow-head p,
.financial-wow .financial-wow-head p {
  color: rgba(255,255,255,.82) !important;
}

.financial-summary .client-health-badge span,
.financial-wow .client-health-badge span {
  color: rgba(255,255,255,.82) !important;
}

.financial-summary .client-health-badge strong,
.financial-wow .client-health-badge strong {
  color: #FFFFFF !important;
}

.financial-summary .finance-wow-card,
.financial-wow .finance-wow-card {
  background: linear-gradient(180deg,#ffffff,#f8fbff) !important;
  color: #0f172a !important;
}

.financial-summary .finance-wow-card span,
.financial-wow .finance-wow-card span,
.financial-summary .finance-wow-card small,
.financial-wow .finance-wow-card small {
  color: #64748b !important;
}

.financial-summary .finance-wow-card b,
.financial-wow .finance-wow-card b,
.financial-summary .finance-wow-card strong,
.financial-wow .finance-wow-card strong,
.financial-summary .finance-wow-total,
.financial-wow .finance-wow-total {
  color: var(--iptel-blue-dark) !important;
}

.financial-summary .finance-wow-lines .pending b,
.financial-wow .finance-wow-lines .pending b {
  color: #d9480f !important;
}

/* v36 - Encargos adicionales */
.form .money-input { text-align:right; font-variant-numeric:tabular-nums; }

/* v37 - Nuevo Cargo Adicional */
.results-list .result-row small { color: var(--muted); font-weight: 700; }
/* v39 - filtros reporte e IVA */
.filters input[name="cliente"]{min-width:260px;}
.campo-instalacion[type="checkbox"]{width:auto; min-height:auto; margin-right:8px;}


/* v47 - IVA visible y pendiente destacado */
.total-line-pending strong,
.invoice-total-breakdown .total-line.pending strong {
  color:#dc2626 !important;
}
.total-line-pending span,
.invoice-total-breakdown .total-line.pending span {
  color:#991b1b !important;
}

/* v48 - IVA default / visibilidade */
.status-badge.estado-emitida{font-weight:900}
.total-line-pending strong,.invoice-total-breakdown .total-line.pending strong{color:#dc2626!important}

.sticky-actions {
  position: sticky;
  bottom: 0;
  background: #fff;
  padding: 12px;
  border-top: 1px solid #ddd;
  text-align: right;
  z-index: 999;
}

/* v53 - factura visual IVA */
.invoice-item-form {
  min-width: 260px;
  display: grid;
  gap: 8px;
  padding: 10px;
}
.invoice-item-form label {
  display: grid;
  gap: 4px;
}
.invoice-item-form input[type="date"] {
  width: 100%;
}
.invoice-total-breakdown .total-final strong {
  font-size: 1.15rem;
  color: #003A63 !important;
}
.invoice-table td:nth-child(6),
.invoice-table td:nth-child(7) {
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

/* v56 - ações de suspensão */
.btn-warning { background: #f59e0b; color: #111827; border-color: #d97706; }
.btn-warning:hover { filter: brightness(0.96); }
.status-suspenso, .ticket-suspendido, .cliente-estado-suspendido { background: #fef3c7; color: #92400e; }


/* v57: Botones de suspensión con fondo amarillo visible */
.btn-warning,
button.btn-warning,
a.btn-warning,
.compact-actions .btn-warning {
  background: #facc15 !important;
  color: #111827 !important;
  border: 1px solid #ca8a04 !important;
  box-shadow: 0 8px 18px rgba(250, 204, 21, .25) !important;
}
.btn-warning:hover,
button.btn-warning:hover,
a.btn-warning:hover {
  background: #eab308 !important;
  color: #111827 !important;
  filter: brightness(.98);
}

/* v60 - Tickets Finanzas */
.finance-status{display:inline-block;padding:4px 10px;border-radius:999px;font-weight:700;font-size:12px;}
.finance-pendiente{background:#fff3cd;color:#7a5200;border:1px solid #ffe08a;}
.finance-aprobado{background:#d1e7dd;color:#0f5132;border:1px solid #a3cfbb;}
.finance-rechazado{background:#f8d7da;color:#842029;border:1px solid #f1aeb5;}
.filters{display:flex;gap:10px;align-items:end;flex-wrap:wrap;}
.filters select{min-width:180px;}

.btn-volver{margin-right:auto;}
.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:end;}
.filters input,.filters select{min-width:180px;}
.hint{color:#64748b;font-size:.92rem;}
hr{border:0;border-top:1px solid #e5e7eb;margin:8px 0;}


/* v64 - usuario logado, foto de perfil e logo do cliente */
.user-menu{position:relative;display:flex;align-items:center;gap:10px;}
.user-summary{display:flex;align-items:center;gap:10px;cursor:pointer;padding:8px 10px;border-radius:16px;}
.user-summary:hover{background:#f8fafc;}
.user-avatar{width:42px;height:42px;border-radius:50%;object-fit:cover;border:2px solid #e5e7eb;background:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:900;color:var(--iptel-blue);}
.user-avatar-empty{background:#eaf3fb;}
.user-dropdown{display:none;position:absolute;right:0;top:56px;background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:var(--shadow-soft);min-width:210px;padding:8px;z-index:6000;}
.user-menu:hover .user-dropdown{display:block;}
.user-dropdown a,.user-dropdown button{display:block;width:100%;text-align:left;background:transparent;border:0;color:#0f172a;padding:10px 12px;border-radius:10px;text-decoration:none;font-weight:700;cursor:pointer;}
.user-dropdown a:hover,.user-dropdown button:hover{background:#f1f5f9;}
.profile-panel{display:grid;grid-template-columns:260px 1fr;gap:24px;align-items:start;}
.profile-preview{border:1px solid #e5e7eb;border-radius:18px;padding:18px;text-align:center;background:#f8fafc;}
.profile-preview span{display:block;color:#64748b;margin-top:4px;}
.profile-photo-large{width:150px;height:150px;border-radius:50%;object-fit:cover;border:4px solid #fff;box-shadow:0 10px 24px rgba(15,23,42,.12);margin-bottom:12px;display:inline-flex;align-items:center;justify-content:center;font-size:48px;font-weight:900;color:var(--iptel-blue);}
.profile-photo-empty{background:#eaf3fb;}
.cliente-identidad{display:flex;align-items:center;gap:20px;}
.cliente-logo-box{width:150px;min-width:150px;height:100px;border:1px solid #e5e7eb;border-radius:18px;background:#f8fafc;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.cliente-logo{max-width:100%;max-height:100%;object-fit:contain;padding:8px;}
.cliente-logo-empty{color:#94a3b8;font-weight:800;}
@media (max-width: 900px){.profile-panel{grid-template-columns:1fr}.cliente-identidad{align-items:flex-start;flex-direction:column}.user-dropdown{right:auto;left:0}}


/* v66 administración amigable */
.admin-panel .muted{color:#64748b;margin-top:-.25rem}.admin-card{border:1px solid #e5e7eb;border-radius:14px;margin:12px 0;padding:12px;background:#fff}.admin-card summary{cursor:pointer;display:flex;justify-content:space-between;align-items:center}.permissions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px;margin:12px 0}.permissions-grid label{background:#f8fafc;border:1px solid #e5e7eb;border-radius:10px;padding:8px;font-size:13px}.permissions-grid.compact{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.admin-nested{margin:10px 0}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.grid-2 label{display:flex;flex-direction:column;gap:4px}.check-line{flex-direction:row!important;align-items:center}.admin-inline-form input{max-width:320px}.admin-user-form h3{margin:14px 0 4px}


/* v69 - destaque visual por perfil de cliente */
.perfil-color-badge{background:color-mix(in srgb, var(--perfil-color, #2563eb) 14%, white);color:#0f172a;border:1px solid color-mix(in srgb, var(--perfil-color, #2563eb) 45%, white);}
.perfil-color-dot{display:inline-block;width:18px;height:18px;border-radius:999px;background:var(--perfil-color, #2563eb);vertical-align:middle;border:2px solid #fff;box-shadow:0 0 0 1px rgba(15,23,42,.12);}
.perfil-cliente-card{border-left:10px solid var(--perfil-color, #2563eb);background:linear-gradient(90deg, color-mix(in srgb, var(--perfil-color, #2563eb) 12%, white), #fff 45%);}
.cliente-identidad-datos{display:grid;gap:6px;}
.perfil-cliente-destaque{display:inline-flex;align-items:center;gap:10px;padding:10px 14px;border-radius:16px;background:var(--perfil-color, #2563eb);color:#fff;box-shadow:0 10px 24px color-mix(in srgb, var(--perfil-color, #2563eb) 25%, transparent);margin-bottom:6px;width:max-content;max-width:100%;}
.perfil-cliente-destaque span{font-size:12px;text-transform:uppercase;letter-spacing:.08em;opacity:.85;font-weight:800;}
.perfil-cliente-destaque strong{font-size:18px;}


/* v70 - servicios contratados y campos monetarios */
.servicios-contratados-panel .table-responsive{overflow-x:auto;}
.servicios-contratados-table{min-width:1180px;}
.servicios-contratados-table th:last-child,.servicios-contratados-table td:last-child{min-width:360px;}
.service-actions{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:center!important;gap:6px!important;white-space:nowrap;}
.service-actions .btn,.service-actions button{white-space:nowrap;}
.service-actions form.inline-form{display:inline-flex!important;min-width:0!important;width:auto!important;margin:0!important;}
.form .money-input,.money-input{text-align:right;font-variant-numeric:tabular-nums;}
@media(max-width:1000px){.service-actions{flex-direction:row!important;align-items:center!important;}.servicios-contratados-table{min-width:1180px;}}

/* v71 - Diseño mejorado de detalle de ticket */
.ticket-hero{display:grid;grid-template-columns:1fr 280px;gap:18px;align-items:stretch;margin-bottom:18px;padding:20px;border-radius:24px;background:linear-gradient(135deg,#0f172a,#1d4ed8 55%,#0ea5e9);color:#fff;box-shadow:0 18px 45px rgba(15,23,42,.18);}
.ticket-hero-main{display:flex;gap:18px;align-items:center;min-width:0;}.ticket-client-logo{width:104px;height:104px;min-width:104px;border-radius:24px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.35);display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.ticket-client-logo img{max-width:100%;max-height:100%;object-fit:contain;background:#fff;padding:8px;width:100%;height:100%;}.ticket-client-logo span{font-size:44px;font-weight:900;}.ticket-kicker{text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:800;opacity:.85}.ticket-hero h1{margin:4px 0 6px;color:#fff;font-size:30px;line-height:1.12}.ticket-subtitle{margin:0;color:rgba(255,255,255,.88)}.ticket-badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.ticket-hero .badge{background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.25)}.ticket-hero .badge.secondary{background:rgba(15,23,42,.22)}.ticket-hero-side{display:grid;gap:10px}.ticket-hero-side div{background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.22);border-radius:16px;padding:12px}.ticket-hero-side span{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.08em;opacity:.75;font-weight:800}.ticket-hero-side strong{display:block;margin-top:4px;color:#fff}.ticket-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:16px 0}.metric-card{background:#fff;border:1px solid #e5e7eb;border-radius:18px;padding:16px;box-shadow:0 10px 24px rgba(15,23,42,.06)}.metric-card span{display:block;color:#64748b;font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:900}.metric-card strong{display:block;font-size:20px;margin:6px 0;color:#0f172a}.metric-card small{color:#64748b}.ticket-section-card{border-radius:20px;border:1px solid #e5e7eb;box-shadow:0 12px 28px rgba(15,23,42,.05)}.section-title-row{display:flex;justify-content:space-between;gap:12px;align-items:start}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-top:12px}.info-grid>div{background:#f8fafc;border:1px solid #e5e7eb;border-radius:14px;padding:12px}.info-grid span{display:block;color:#64748b;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px}.info-grid strong{color:#0f172a}.compact-info-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.comment-box{margin-top:14px;border-radius:16px;border:1px solid #dbeafe;background:#eff6ff;padding:14px}.comment-box span{display:block;color:#1d4ed8;font-weight:900;text-transform:uppercase;font-size:12px;letter-spacing:.06em}.comment-box p{margin:.45rem 0 0}.finance-approval-card{border-left:8px solid #22c55e}.noc-form-card{border-left:8px solid #0ea5e9}.noc-form-grid p{background:#f8fafc;border:1px solid #e5e7eb;border-radius:12px;padding:10px}.timeline-card{background:linear-gradient(180deg,#fff,#f8fafc)}.ticket-timeline{position:relative;display:grid;gap:12px;margin-top:12px}.timeline-item{display:grid;grid-template-columns:22px 1fr;gap:10px}.timeline-dot{width:14px;height:14px;border-radius:999px;background:#2563eb;margin-top:8px;box-shadow:0 0 0 5px #dbeafe}.timeline-content{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:12px}.timeline-head{display:flex;gap:10px;justify-content:space-between;flex-wrap:wrap}.timeline-head span{color:#64748b;font-size:13px}.timeline-content p{margin:6px 0 0;color:#334155}.table-responsive{overflow-x:auto;}@media(max-width:900px){.ticket-hero{grid-template-columns:1fr}.ticket-hero-main{align-items:flex-start}.ticket-client-logo{width:82px;height:82px;min-width:82px}.ticket-hero h1{font-size:24px}.ticket-hero-side{grid-template-columns:1fr}.metric-card strong{font-size:18px}}

/* v72 - Ajustes visuales: logo llena el cuadro y acciones del cliente en una sola línea */
.ticket-client-logo img{
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  max-height:none !important;
  object-fit:cover !important;
  padding:0 !important;
  background:#fff;
  display:block;
}
.cliente-logo{
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  max-height:none !important;
  object-fit:cover !important;
  padding:0 !important;
  display:block;
}
.cliente-profile-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}
.cliente-profile-head > div:last-child{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:nowrap;
  overflow-x:auto;
  padding-bottom:4px;
  max-width:100%;
}
.cliente-profile-head > div:last-child .btn,
.cliente-profile-head > div:last-child button{
  white-space:nowrap;
}
.cliente-profile-head > div:last-child .inline-form{
  display:inline-flex !important;
  min-width:auto !important;
  width:auto !important;
  margin:0 !important;
  padding:0 !important;
  gap:0 !important;
}
@media(max-width:1100px){
  .cliente-profile-head{align-items:stretch;}
  .cliente-profile-head > div:last-child{justify-content:flex-start;}
}

/* v73 - Perfil financiero, estados estandarizados y cabecera de ticket con IPTEL + cliente */
.finance-with-rules{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));align-items:stretch;}
.profile-rules-card{border-left:8px solid var(--perfil-color,#2563eb)!important;background:linear-gradient(180deg,#fff,color-mix(in srgb,var(--perfil-color,#2563eb) 8%,#fff))!important;}
.profile-rules-card .finance-wow-top b{color:var(--perfil-color,#2563eb)!important;}
.profile-rules-card .finance-wow-total{color:var(--perfil-color,#2563eb)!important;}
.ticket-hero-v73{background:radial-gradient(circle at top right,rgba(255,138,0,.38),transparent 35%),linear-gradient(135deg,#072a52,#0b5cab 58%,#003a63);}
.ticket-brand-link{display:flex;align-items:center;gap:10px;min-width:294px;}
.ticket-iptel-logo{width:148px;height:104px;border-radius:24px;background:#fff;display:flex;align-items:center;justify-content:center;padding:14px;border:2px solid rgba(255,255,255,.75);box-shadow:0 16px 34px rgba(0,0,0,.18);}
.ticket-iptel-logo img{width:100%;height:100%;object-fit:contain;display:block;}
.ticket-link-line{width:34px;height:3px;background:rgba(255,255,255,.65);position:relative;border-radius:999px;}
.ticket-link-line span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:14px;height:14px;border-radius:999px;background:#ff8a00;border:3px solid #fff;box-shadow:0 0 0 4px rgba(255,138,0,.22);}
.ticket-hero-v73 .ticket-client-logo{width:104px;height:104px;min-width:104px;background:#fff;border:2px solid rgba(255,255,255,.75);box-shadow:0 16px 34px rgba(0,0,0,.18);}
.ticket-hero-v73 .ticket-client-logo img{width:100%!important;height:100%!important;object-fit:cover!important;padding:0!important;background:#fff;}
.ticket-hero .badge.ticket-status{font-weight:900;border-width:1px!important;}
.ticket-hero .ticket-status.ticket-novo,.ticket-hero .ticket-status.ticket-analise,.ticket-hero .ticket-status.ticket-execucao{background:#dbeafe!important;color:#1d4ed8!important;border-color:#93c5fd!important;}
.ticket-hero .ticket-status.ticket-instalado,.ticket-hero .ticket-status.ticket-alterado,.ticket-hero .ticket-status.ticket-finalizado,.ticket-hero .ticket-status.ticket-removido{background:#dcfce7!important;color:#166534!important;border-color:#86efac!important;}
.ticket-hero .ticket-status.ticket-pendente,.ticket-hero .ticket-status.ticket-suspendido{background:#fef3c7!important;color:#92400e!important;border-color:#fcd34d!important;}
.ticket-hero .ticket-status.ticket-cancelado,.ticket-hero .ticket-status.ticket-falla,.ticket-hero .ticket-status.ticket-rechazado{background:#fee2e2!important;color:#991b1b!important;border-color:#fca5a5!important;}
.ticket-section-card .ticket-status{display:inline-flex;width:max-content;}
.ticket-section-card .finance-status{display:inline-flex;width:max-content;}
.ticket-hero .perfil-color-badge{background:color-mix(in srgb,var(--perfil-color,#2563eb) 22%,white)!important;color:#0f172a!important;border-color:color-mix(in srgb,var(--perfil-color,#2563eb) 45%,white)!important;}
.ticket-hero .estado-emitida{background:#dbeafe!important;color:#1d4ed8!important;border-color:#93c5fd!important;}
.ticket-hero .estado-anulada{background:#e5e7eb!important;color:#374151!important;border-color:#cbd5e1!important;}
@media(max-width:980px){.ticket-brand-link{min-width:0;}.ticket-iptel-logo{width:118px;height:82px}.ticket-hero-v73 .ticket-client-logo{width:82px;height:82px;min-width:82px}.ticket-link-line{width:24px}.ticket-hero-main{flex-wrap:wrap;}}

/* v74 - Acciones bonitas del ticket sin formulario NOC */
.ticket-action-panel{display:flex;justify-content:space-between;align-items:center;gap:18px;margin:-4px 0 18px;padding:16px;border-radius:22px;background:linear-gradient(135deg,#ffffff,#f8fafc);border:1px solid #e5e7eb;box-shadow:0 14px 32px rgba(15,23,42,.07)}
.ticket-action-text span{display:block;color:#005aa9;font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:900}.ticket-action-text strong{display:block;color:#0f172a;font-size:18px;margin-top:3px}.ticket-action-buttons{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.ticket-action-buttons form{margin:0}.ticket-action-btn{border:0;border-radius:14px;padding:12px 15px;font-weight:900;cursor:pointer;color:#fff;box-shadow:0 10px 22px rgba(15,23,42,.14);transition:.18s;white-space:nowrap}.ticket-action-btn:hover:not(:disabled){transform:translateY(-1px);filter:brightness(.98)}.ticket-action-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.action-avanzar{background:linear-gradient(135deg,#16a34a,#22c55e)}.action-cambiar{background:linear-gradient(135deg,#005aa9,#1d4ed8)}.action-cancelar{background:linear-gradient(135deg,#f59e0b,#d97706);color:#111827}.action-rechazar{background:linear-gradient(135deg,#dc2626,#991b1b)}
@media(max-width:900px){.ticket-action-panel{align-items:flex-start;flex-direction:column}.ticket-action-buttons{justify-content:flex-start}.ticket-action-btn{width:100%}.ticket-action-buttons form{width:100%}}

/* v75 - Dashboard técnico NOC */
.noc-dashboard-panel{margin-bottom:22px;}
.title-row.compact{align-items:flex-start;margin-bottom:12px;}
.title-row.compact h2{margin:0;}
.noc-kpis{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:12px;margin:14px 0 18px;}
.noc-kpi{background:linear-gradient(135deg,#f8fafc,#eef2ff);border:1px solid #e5e7eb;border-radius:18px;padding:16px;box-shadow:0 8px 22px rgba(15,23,42,.06);}
.noc-kpi span{display:block;color:#64748b;font-size:12px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;}
.noc-kpi strong{font-size:30px;color:#0f172a;line-height:1;}
.table-responsive{overflow-x:auto;}
.noc-agent-table th,.noc-agent-table td{white-space:nowrap;}
@media (max-width:900px){.noc-kpis{grid-template-columns:repeat(2,minmax(140px,1fr));}}
@media (max-width:560px){.noc-kpis{grid-template-columns:1fr;}}

/* v76 - Dashboard NOC IPTEL */
.iptel-noc-dashboard{background:linear-gradient(135deg,#062f6f 0%,#0b4fa8 52%,#f58220 140%);color:#fff;border:0;overflow:hidden;position:relative;box-shadow:0 20px 50px rgba(6,47,111,.22);}
.iptel-noc-dashboard:before{content:"";position:absolute;right:-80px;top:-90px;width:260px;height:260px;border-radius:50%;background:rgba(245,130,32,.28);}
.iptel-noc-dashboard:after{content:"";position:absolute;left:-70px;bottom:-95px;width:230px;height:230px;border-radius:50%;background:rgba(255,255,255,.08);}
.iptel-noc-dashboard>*{position:relative;z-index:1;}
.noc-dashboard-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px;}
.noc-dashboard-hero h2{margin:0;color:#fff;font-size:28px;}
.noc-dashboard-hero .muted{color:rgba(255,255,255,.78);}
.eyebrow{margin:0 0 5px;color:#ffcf9a;font-weight:800;text-transform:uppercase;letter-spacing:.09em;font-size:12px;}
.btn-outline-light{border:1px solid rgba(255,255,255,.65);background:rgba(255,255,255,.12);color:#fff!important;box-shadow:none;}
.iptel-kpis{grid-template-columns:repeat(4,minmax(150px,1fr));}
.iptel-kpi{display:block;text-decoration:none;background:rgba(255,255,255,.96);border:1px solid rgba(255,255,255,.55);transition:.18s ease transform,.18s ease box-shadow;}
.iptel-kpi:hover,.noc-agent-card:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(2,8,23,.22);}
.iptel-kpi strong{color:#063a83;}
.iptel-kpi.orange strong{color:#f58220;}
.noc-agent-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-top:14px;}
.noc-agent-card{display:block;text-decoration:none;color:#102033;background:rgba(255,255,255,.96);border:1px solid rgba(255,255,255,.65);border-radius:18px;padding:14px;transition:.18s ease transform,.18s ease box-shadow,.18s ease border-color;}
.noc-agent-card.active{border:2px solid #f58220;box-shadow:0 0 0 4px rgba(245,130,32,.18);}
.agent-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;}
.agent-top strong{font-size:15px;color:#063a83;}
.agent-top span{font-size:12px;font-weight:800;color:#fff;background:#f58220;border-radius:999px;padding:5px 9px;white-space:nowrap;}
.agent-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
.agent-metrics span{background:#f8fafc;border:1px solid #e5e7eb;border-radius:12px;padding:8px 6px;text-align:center;font-size:11px;color:#64748b;}
.agent-metrics b{display:block;color:#063a83;font-size:18px;line-height:1.05;}
.noc-ticket-search{display:grid;grid-template-columns:minmax(280px,1fr) 220px auto auto;gap:10px;align-items:center;}
.noc-ticket-search input,.noc-ticket-search select{width:100%;}
@media (max-width:900px){.noc-dashboard-hero{flex-direction:column}.iptel-kpis{grid-template-columns:repeat(2,minmax(140px,1fr));}.noc-ticket-search{grid-template-columns:1fr;}}
@media (max-width:560px){.iptel-kpis{grid-template-columns:1fr}.agent-metrics{grid-template-columns:repeat(2,1fr);}}

/* v77 - Agente NOC, transferencia e impresión del ticket */
.action-tomar{background:linear-gradient(135deg,#f58220,#ffb15e);color:#102033;}
.ticket-transfer-mini{display:flex!important;gap:8px;align-items:center;}
.ticket-transfer-mini select{height:42px;border-radius:12px;border:1px solid #dbe3ef;padding:0 10px;min-width:210px;background:#fff;color:#0f172a;font-weight:700;}
.print-ticket-bar{display:flex;justify-content:flex-end;margin:-8px 0 14px;}
.print-ticket-btn{background:linear-gradient(135deg,#005aa9,#f58220);color:#fff!important;border:0;box-shadow:0 10px 24px rgba(0,90,169,.22);}
.noc-transfer-panel{margin:-6px 0 18px;border-left:8px solid #f58220;}
.transfer-form{display:grid!important;grid-template-columns:repeat(2,minmax(220px,1fr)) auto;gap:12px;align-items:end;}
.transfer-form label{display:flex;flex-direction:column;gap:5px;font-weight:800;color:#334155;}
.transfer-form select{height:42px;border:1px solid #dbe3ef;border-radius:12px;padding:0 10px;background:#fff;}
@media(max-width:900px){.transfer-form{grid-template-columns:1fr}.ticket-transfer-mini{width:100%;flex-direction:column;align-items:stretch}.ticket-transfer-mini select{width:100%;}.print-ticket-bar{justify-content:flex-start;}}

@media print{
  @page{size:A4;margin:10mm;}
  body{background:#fff!important;color:#0f172a!important;font-size:11px;}
  .sidebar,.topbar,.messages,.no-print,.ticket-action-panel,.print-ticket-bar,.btn,button,a.btn{display:none!important;}
  .content,.main,main{margin:0!important;padding:0!important;width:100%!important;max-width:100%!important;}
  .ticket-hero{page-break-inside:avoid;grid-template-columns:1fr 190px!important;padding:14px!important;border-radius:18px!important;box-shadow:none!important;background:linear-gradient(135deg,#072a52,#0b5cab 60%,#f58220 140%)!important;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .ticket-hero h1{font-size:22px!important;}
  .ticket-subtitle{font-size:11px!important;}
  .ticket-brand-link{min-width:220px!important;}
  .ticket-iptel-logo{width:112px!important;height:76px!important;border-radius:16px!important;padding:10px!important;}
  .ticket-hero-v73 .ticket-client-logo{width:76px!important;height:76px!important;min-width:76px!important;border-radius:16px!important;}
  .ticket-link-line{width:22px!important;}
  .ticket-hero-side{gap:6px!important;}
  .ticket-hero-side div{padding:8px!important;border-radius:12px!important;}
  .ticket-summary-grid{grid-template-columns:repeat(4,1fr)!important;gap:8px!important;margin:10px 0!important;}
  .metric-card,.panel,.ticket-section-card{box-shadow:none!important;border:1px solid #dbe3ef!important;border-radius:14px!important;padding:10px!important;page-break-inside:avoid;}
  .metric-card strong{font-size:15px!important;}
  .info-grid{grid-template-columns:repeat(3,1fr)!important;gap:7px!important;}
  .info-grid>div{padding:8px!important;border-radius:10px!important;}
  .comment-box{padding:10px!important;border-radius:12px!important;}
  table{font-size:10px!important;width:100%!important;}
  th,td{padding:5px!important;}
  .ticket-timeline{gap:7px!important;}
  .timeline-content{padding:8px!important;border-radius:10px!important;}
  .timeline-dot{width:10px!important;height:10px!important;box-shadow:0 0 0 3px #dbeafe!important;}
}


/* v78 - Flujogramas de Tickets */
.flux-grid{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(320px,1.1fr);gap:18px;margin-bottom:18px}.flux-panel{height:100%}.flux-list{display:flex;flex-direction:column;gap:10px}.flux-item{display:block;padding:14px 16px;border:1px solid #e5e7eb;border-radius:16px;background:#fff;text-decoration:none;color:#0f172a;box-shadow:0 8px 20px rgba(15,23,42,.05)}.flux-item strong{display:block;color:#0b4ea2}.flux-item span{display:block;margin-top:3px}.flux-item small{display:block;color:#64748b;margin-top:4px}.flux-item.active{border-color:#f97316;box-shadow:0 10px 26px rgba(249,115,22,.18)}.flux-builder{overflow:hidden}.workflow-track{display:flex;flex-direction:column;gap:14px;position:relative}.workflow-step{display:flex;gap:14px;padding:16px;border:1px solid #e5e7eb;border-left:7px solid var(--step-color,#2563eb);border-radius:18px;background:linear-gradient(135deg,#fff,#f8fafc)}.step-number{width:42px;height:42px;border-radius:14px;background:var(--step-color,#2563eb);color:white;display:flex;align-items:center;justify-content:center;font-weight:800;box-shadow:0 10px 20px rgba(15,23,42,.15)}.step-body{flex:1}.step-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.step-body p{margin:5px 0;color:#334155}.btn-sm{padding:6px 10px;font-size:12px}.btn-danger{background:#dc2626;color:#fff;border:0}.form-grid p{display:flex;flex-direction:column;gap:5px}.form-grid input,.form-grid select,.form-grid textarea{width:100%;border:1px solid #cbd5e1;border-radius:12px;padding:10px 12px}.status-novo,.status-pendente{background:#dbeafe;color:#1d4ed8}.status-analise{background:#fef3c7;color:#92400e}.status-execucao{background:#ffedd5;color:#c2410c}.status-instalado,.status-alterado,.status-aprobado,.estado-activo{background:#dcfce7;color:#166534}.status-cancelado,.status-rechazado{background:#fee2e2;color:#991b1b}.status-suspendido,.status-removido{background:#e5e7eb;color:#374151}@media(max-width:900px){.flux-grid{grid-template-columns:1fr}.step-head{align-items:flex-start;flex-direction:column}}

/* v80 - Flujogramas de Tickets configurables */
.flow-admin-hero{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 22px;border-radius:18px;background:linear-gradient(135deg,#0b4ea2,#f97316);color:#fff;margin:0 0 18px;box-shadow:0 14px 30px rgba(11,78,162,.18)}
.flow-admin-hero strong{display:block;font-size:18px;margin-bottom:4px}.flow-admin-hero span{display:block;opacity:.94}.flow-pill{background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.35);border-radius:999px;padding:8px 14px;font-weight:700;white-space:nowrap}
.flow-step-rich .step-body{width:100%}.flow-meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px 14px;margin:10px 0;padding:12px;border-radius:14px;background:#f8fafc;border:1px solid #e5e7eb}.flow-meta-grid p{margin:0}.form-grid-wide{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.form-grid-wide p:has(textarea),.form-grid-wide p:has(select[multiple]){grid-column:1/-1}
@media print{.flow-admin-hero,.flux-grid form,.workflow-step form{display:none!important}}

/* v81 - Dashboards NOC/Finanzas más visuales y enlaces de cliente */
.iptel-noc-dashboard{
  background:
    radial-gradient(circle at 12% 15%, rgba(255,255,255,.18) 0 16%, transparent 17%),
    radial-gradient(circle at 88% 10%, rgba(245,130,32,.34) 0 14%, transparent 15%),
    linear-gradient(135deg,#052957 0%,#005aa9 54%,#f58220 145%) !important;
}
.iptel-kpi{
  min-height:118px;
  display:flex!important;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  gap:8px;
  border-radius:22px!important;
  background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(239,246,255,.96))!important;
}
.iptel-kpi span{margin:0!important;color:#274c77!important;font-weight:900;text-align:center;}
.iptel-kpi strong{font-size:36px!important;text-align:center;}
.iptel-kpi.orange{background:linear-gradient(180deg,#fff7ed,#ffffff)!important;}
.noc-agent-card{
  text-align:center;
  background:linear-gradient(180deg,#ffffff,#f8fbff)!important;
  border-radius:22px!important;
}
.agent-top{flex-direction:column;justify-content:center!important;align-items:center!important;text-align:center;}
.agent-top strong{text-align:center;font-size:16px!important;}
.agent-top span{margin-top:2px;}
.agent-metrics span{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:62px;}
.client-ticket-link{font-weight:900;color:#005aa9;text-decoration:none;}
.client-ticket-link:hover{text-decoration:underline;color:#f58220;}
.muted-link{font-weight:800;color:#475569;}

.iptel-finance-dashboard{
  background:
    radial-gradient(circle at 10% 10%, rgba(255,255,255,.16) 0 15%, transparent 16%),
    radial-gradient(circle at 88% 18%, rgba(245,130,32,.30) 0 16%, transparent 17%),
    linear-gradient(135deg,#073b79 0%,#005aa9 48%,#f58220 135%);
  color:#fff;
  border:0;
  overflow:hidden;
  position:relative;
  box-shadow:0 20px 50px rgba(6,47,111,.22);
  margin-bottom:18px;
}
.iptel-finance-dashboard>*{position:relative;z-index:1;}
.iptel-finance-dashboard h2{color:#fff;margin:0;font-size:28px;}
.iptel-finance-dashboard .muted{color:rgba(255,255,255,.78);}
.finance-kpis{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;margin:14px 0 18px;}
.finance-kpis .iptel-kpi{text-decoration:none;}
.finance-kpis .finance-pending strong{color:#f58220!important;}
.finance-kpis .finance-approved strong{color:#16803a!important;}
.finance-kpis .finance-rejected strong{color:#b91c1c!important;}
.finance-insights{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:12px;}
.finance-insights div{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.26);border-radius:18px;padding:14px;text-align:center;}
.finance-insights span{display:block;text-transform:uppercase;letter-spacing:.07em;font-size:12px;font-weight:900;color:#ffcf9a;margin-bottom:5px;}
.finance-insights strong{display:block;color:#fff;font-size:22px;}
@media (max-width:900px){.finance-kpis{grid-template-columns:repeat(2,minmax(140px,1fr));}.finance-insights{grid-template-columns:1fr;}}
@media (max-width:560px){.finance-kpis{grid-template-columns:1fr;}}

/* v82 - Dashboard NOC más colorido, fila destacada y sidebar colapsable */
.iptel-noc-dashboard{
  border:0!important;
  box-shadow:0 24px 60px rgba(0,59,113,.28)!important;
}
.iptel-kpi{
  color:#fff!important;
  border:1px solid rgba(255,255,255,.24)!important;
  background:linear-gradient(145deg,#063a83 0%,#0067bf 70%)!important;
  box-shadow:0 14px 32px rgba(0,59,113,.24), inset 0 1px 0 rgba(255,255,255,.20)!important;
}
.iptel-kpi span{color:#dcecff!important;letter-spacing:.05em;text-transform:uppercase;}
.iptel-kpi strong{color:#fff!important;text-shadow:0 2px 12px rgba(0,0,0,.22);}
.iptel-kpi.orange{background:linear-gradient(145deg,#f58220 0%,#ffae55 100%)!important;}
.iptel-kpi.orange span{color:#fff8ed!important;}.iptel-kpi.orange strong{color:#102033!important;text-shadow:none;}
.noc-agent-card{
  background:linear-gradient(145deg,#0b4ea2 0%,#08356d 100%)!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.20)!important;
  box-shadow:0 14px 34px rgba(0,59,113,.20)!important;
}
.noc-agent-card .agent-top strong{color:#fff!important;}.noc-agent-card .agent-top span{background:#f58220;color:#122033;}
.noc-agent-card .agent-metrics span{background:rgba(255,255,255,.13)!important;border-color:rgba(255,255,255,.20)!important;color:#eaf3ff!important;}
.noc-agent-card .agent-metrics b{color:#fff!important;}
.noc-agent-card.active{border:2px solid #ffb15e!important;box-shadow:0 0 0 5px rgba(245,130,32,.20),0 18px 40px rgba(0,59,113,.26)!important;}
.noc-queue-card{
  display:grid;grid-template-columns:minmax(220px,.9fr) minmax(320px,1.1fr);gap:16px;align-items:center;text-decoration:none;
  margin:16px 0 18px;padding:20px;border-radius:24px;color:#fff!important;
  background:linear-gradient(135deg,#f58220 0%,#ffb15e 42%,#063a83 120%);
  border:1px solid rgba(255,255,255,.24);box-shadow:0 22px 44px rgba(245,130,32,.24), inset 0 1px 0 rgba(255,255,255,.28);
}
.noc-queue-card:hover{transform:translateY(-2px);text-decoration:none;box-shadow:0 28px 54px rgba(245,130,32,.30);}
.noc-queue-card.active{outline:4px solid rgba(255,255,255,.32);}
.noc-queue-card .queue-label{display:block;text-transform:uppercase;letter-spacing:.10em;font-weight:950;font-size:12px;color:#102033;}
.noc-queue-card strong{display:block;font-size:48px;line-height:1;color:#102033;margin:4px 0;}
.noc-queue-card small{display:block;font-weight:800;color:#14324f;}
.queue-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;}
.queue-metrics span{display:flex;min-height:70px;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.26);border-radius:16px;color:#fff;font-weight:900;}
.queue-metrics b{font-size:26px;color:#fff;line-height:1.05;}
.sidebar-toggle{background:rgba(255,255,255,.12)!important;border-color:rgba(255,255,255,.22)!important;justify-content:center;margin-bottom:12px!important;}
.nav-ico{width:24px;min-width:24px;display:inline-flex;align-items:center;justify-content:center;font-size:17px;line-height:1;}
.nav-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sidebar,.main{transition:width .22s ease,margin-left .22s ease,padding .22s ease;}
body.sidebar-collapsed .sidebar{width:86px;padding:18px 12px;}
body.sidebar-collapsed .main{margin-left:86px;width:calc(100% - 86px);}
body.sidebar-collapsed .brand{padding:10px;border-radius:18px;margin-bottom:14px;border-left:0;border-bottom:4px solid var(--iptel-orange);}
body.sidebar-collapsed .brand-logo{width:48px;max-width:48px;}body.sidebar-collapsed .brand small{display:none;}
body.sidebar-collapsed .sidebar a,body.sidebar-collapsed .sidebar button{justify-content:center;padding:12px 8px;}
body.sidebar-collapsed .sidebar .nav-text{display:none;}body.sidebar-collapsed .nav-ico{font-size:20px;}
body.sidebar-collapsed .sidebar a:hover::after{content:attr(title);}
@media(max-width:900px){body.sidebar-collapsed .sidebar{width:100%;}body.sidebar-collapsed .main{margin-left:0;width:100%;}.noc-queue-card{grid-template-columns:1fr}.queue-metrics{grid-template-columns:repeat(2,1fr)}}


/* v83 - Menú lateral por categorías */
.sidebar-nav{display:flex;flex-direction:column;gap:4px;padding-bottom:22px;}
.nav-category{margin:8px 0 4px;}
.nav-category-toggle{position:relative;background:rgba(255,255,255,.08)!important;border:1px solid rgba(255,255,255,.12)!important;color:#fff!important;}
.nav-category-toggle:hover{background:rgba(255,255,255,.14)!important;box-shadow:inset 4px 0 0 var(--iptel-orange);}
.nav-category-toggle .nav-caret{margin-left:auto;font-weight:950;transition:transform .18s ease;color:#ffcf9a;}
.nav-category.collapsed .nav-caret{transform:rotate(-90deg);}
.nav-category-items{padding-left:10px;border-left:2px solid rgba(245,130,32,.42);margin-left:13px;max-height:900px;overflow:hidden;transition:max-height .22s ease,opacity .18s ease,padding .18s ease;}
.nav-category.collapsed .nav-category-items{max-height:0;opacity:0;padding-top:0;padding-bottom:0;}
.nav-category-items a{font-size:14px!important;padding:10px 12px!important;margin:5px 0!important;background:rgba(255,255,255,.045)!important;}
.nav-category-items a:hover{background:rgba(245,130,32,.18)!important;}
body.sidebar-collapsed .sidebar-nav{align-items:center;}
body.sidebar-collapsed .nav-category{width:100%;margin:4px 0;}
body.sidebar-collapsed .nav-category-toggle .nav-caret{display:none;}
body.sidebar-collapsed .nav-category-items{display:none;}
body.sidebar-collapsed .nav-category-toggle{justify-content:center!important;padding:12px 8px!important;}
body.sidebar-collapsed .sidebar-nav>a{width:100%;justify-content:center!important;}
body.sidebar-collapsed .nav-category-toggle:hover::after,
body.sidebar-collapsed .sidebar-nav>a:hover::after{content:attr(title);position:fixed;left:94px;background:#102033;color:#fff;border-radius:12px;padding:8px 12px;box-shadow:0 12px 26px rgba(0,0,0,.22);white-space:nowrap;z-index:9999;border-left:4px solid var(--iptel-orange);}
@media(max-width:900px){.nav-category-items{margin-left:10px}.sidebar-nav{padding-bottom:10px}}


/* v84 - submenús colapsables reales, sidebar con scroll y Panel destacado */
.sidebar{
  overflow-y:auto;
  overflow-x:hidden;
  scrollbar-width:thin;
  scrollbar-color:rgba(245,130,32,.85) rgba(255,255,255,.12);
}
.sidebar::-webkit-scrollbar{width:8px;}
.sidebar::-webkit-scrollbar-track{background:rgba(255,255,255,.10);border-radius:999px;}
.sidebar::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--iptel-orange),#ffb061);border-radius:999px;}
.sidebar-nav>a[title="Panel"]{
  background:linear-gradient(135deg,var(--iptel-orange),#ffb25d)!important;
  color:#102033!important;
  border-color:rgba(255,255,255,.35)!important;
  box-shadow:0 14px 28px rgba(245,130,32,.28), inset 0 1px 0 rgba(255,255,255,.35);
  font-size:16px;
  justify-content:flex-start;
}
.sidebar-nav>a[title="Panel"] .nav-ico{font-size:20px;}
.sidebar-nav>a[title="Panel"]:hover{
  transform:translateY(-1px);
  background:linear-gradient(135deg,#ff9a31,#ffc07a)!important;
  box-shadow:0 18px 36px rgba(245,130,32,.36), inset 0 1px 0 rgba(255,255,255,.4)!important;
}
.nav-category-toggle{user-select:none;}
.nav-category.collapsed .nav-category-items{
  max-height:0!important;
  opacity:0!important;
  padding-top:0!important;
  padding-bottom:0!important;
  margin-top:0!important;
  margin-bottom:0!important;
  pointer-events:none;
}
.nav-category:not(.collapsed) .nav-category-items{max-height:900px;opacity:1;}
body.sidebar-collapsed .sidebar{overflow-y:auto;}
body.sidebar-collapsed .sidebar-nav>a[title="Panel"]{justify-content:center!important;}
body.sidebar-collapsed .sidebar-nav>a[title="Panel"] .nav-ico{font-size:22px;}

/* v85 - Menú compacto con panel flotante y Operación subdividida */
.nav-operation-groups{display:flex;flex-direction:column;gap:10px;}
.nav-subgroup{background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.10);border-radius:16px;padding:8px;margin:4px 0;}
.nav-subgroup-title{display:flex;align-items:center;gap:8px;color:#ffd2a5;text-transform:uppercase;letter-spacing:.10em;font-size:11px;font-weight:950;padding:6px 8px 4px;}
.nav-subgroup-title:before{content:"";width:8px;height:8px;border-radius:999px;background:linear-gradient(135deg,var(--iptel-orange),#ffc27d);box-shadow:0 0 0 4px rgba(245,130,32,.12);}
.nav-subgroup a{margin:5px 0!important;}
body.sidebar-collapsed .nav-subgroup-title{display:none;}
.compact-nav-panel{position:fixed;width:min(360px,calc(100vw - 120px));max-height:calc(100vh - 28px);overflow:auto;z-index:10000;background:linear-gradient(145deg,#082849,#0f4d7c 62%,#123a5c);border:1px solid rgba(255,255,255,.22);border-left:6px solid var(--iptel-orange);box-shadow:0 26px 80px rgba(0,28,54,.42), inset 0 1px 0 rgba(255,255,255,.20);border-radius:24px;padding:14px;animation:compactPanelIn .16s ease-out;color:white;}
@keyframes compactPanelIn{from{opacity:0;transform:translateX(-8px) scale(.98)}to{opacity:1;transform:translateX(0) scale(1)}}
.compact-nav-title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 8px 12px;border-bottom:1px solid rgba(255,255,255,.16);margin-bottom:10px;}
.compact-nav-title span{font-size:18px;font-weight:950;letter-spacing:.02em;}
.compact-nav-title button{width:34px;height:34px;border-radius:12px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.12);color:#fff;font-size:22px;line-height:1;cursor:pointer;}
.compact-nav-body{display:flex;flex-direction:column;gap:10px;}
.compact-nav-body .nav-subgroup{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.16);box-shadow:inset 0 1px 0 rgba(255,255,255,.08);}
.compact-nav-body .nav-subgroup-title{color:#ffcf9a;}
.compact-nav-body a{display:flex;align-items:center;gap:10px;text-decoration:none;color:white;padding:12px 13px;border-radius:14px;font-weight:900;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);margin:6px 0;}
.compact-nav-body a:hover{text-decoration:none;background:linear-gradient(135deg,rgba(245,130,32,.95),rgba(255,188,112,.95));color:#102033;transform:translateX(2px);box-shadow:0 12px 24px rgba(245,130,32,.24);}
.compact-nav-body .nav-text{display:inline!important;white-space:normal;}
.compact-nav-body .nav-ico{font-size:20px;min-width:28px;width:28px;}
body.sidebar-collapsed .nav-category-toggle:hover::after{display:none!important;}
@media(max-width:900px){.compact-nav-panel{left:12px!important;right:12px;width:auto;}.nav-operation-groups{gap:6px}}


/* v86 - Administración en Seguridad y Control + experiencia móvil sin app */
.mobile-menu-fab,.mobile-sidebar-backdrop{display:none;}
.sidebar .nav-category[data-nav-category="seguridad"] .nav-category-items a[title="Administración"]{
  background:linear-gradient(135deg,rgba(245,130,32,.24),rgba(255,255,255,.07))!important;
  border-color:rgba(245,130,32,.32)!important;
}
.sidebar .nav-category[data-nav-category="seguridad"] .nav-category-items a[title="Administración"] .nav-ico{filter:drop-shadow(0 4px 8px rgba(245,130,32,.25));}
@media(max-width:900px){
  html,body{overflow-x:hidden;}
  body{display:block;background:#f4f7fb;}
  .mobile-menu-fab{display:flex;position:fixed;left:14px;top:14px;z-index:10050;width:50px;height:50px;align-items:center;justify-content:center;border:0;border-radius:18px;background:linear-gradient(135deg,var(--iptel-orange),#ffb968);color:#102033;font-size:24px;font-weight:950;box-shadow:0 16px 34px rgba(245,130,32,.34);}
  .mobile-sidebar-backdrop{position:fixed;inset:0;background:rgba(8,21,38,.52);z-index:10020;backdrop-filter:blur(4px);}
  body.sidebar-mobile-open .mobile-sidebar-backdrop{display:block;}
  .sidebar{position:fixed!important;top:0!important;bottom:0!important;left:0!important;width:min(86vw,330px)!important;height:100vh!important;min-height:100vh!important;transform:translateX(-105%);transition:transform .24s ease!important;z-index:10030!important;border-radius:0 28px 28px 0;padding:18px 16px 28px!important;box-shadow:24px 0 60px rgba(0,27,52,.38);}
  body.sidebar-mobile-open .sidebar{transform:translateX(0);}
  body.sidebar-collapsed .sidebar{width:min(86vw,330px)!important;padding:18px 16px 28px!important;}
  body.sidebar-collapsed .brand{padding:16px;margin-bottom:18px;border-left:6px solid var(--iptel-orange);border-bottom:0;}
  body.sidebar-collapsed .brand-logo{width:160px;max-width:100%;}
  body.sidebar-collapsed .brand small{display:block;}
  body.sidebar-collapsed .sidebar .nav-text{display:inline;}
  body.sidebar-collapsed .sidebar a,body.sidebar-collapsed .sidebar button{justify-content:flex-start;padding:12px 14px!important;}
  body.sidebar-collapsed .nav-category-items{display:block;}
  body.sidebar-collapsed .nav-category-toggle .nav-caret{display:inline;margin-left:auto;}
  .main,body.sidebar-collapsed .main{margin-left:0!important;width:100%!important;padding:82px 14px 18px!important;}
  .topbar{position:relative;top:auto;display:flex;gap:10px;align-items:center;justify-content:space-between;margin-bottom:14px;}
  .btn-volver{padding:10px 12px;}
  .user-summary{max-width:calc(100vw - 150px);}
  .user-summary strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px;display:block;}
  .user-dropdown{right:0;left:auto;min-width:220px;z-index:10060;}
  .card,.metric-card,.ticket-section-card,.noc-dashboard-shell,.finance-dashboard-shell{border-radius:18px!important;}
  .title-row{gap:10px;}
  .table-responsive,table{max-width:100%;overflow-x:auto;display:block;}
  table th,table td{white-space:nowrap;}
  .grid,.form-grid,.ticket-summary-grid,.info-grid,.noc-agent-grid,.finance-agent-grid{grid-template-columns:1fr!important;}
  .actions,.button-row,.ticket-action-panel,.client-action-row{flex-wrap:wrap!important;gap:8px!important;}
  input,select,textarea{max-width:100%;}
  .compact-nav-panel{display:none!important;}
}
@media(max-width:520px){
  .mobile-menu-fab{width:46px;height:46px;border-radius:16px;}
  .main,body.sidebar-collapsed .main{padding:76px 10px 14px!important;}
  h1{font-size:24px;} h2{font-size:21px;} h3{font-size:18px;}
  .ticket-hero{padding:16px!important;}
  .ticket-client-logo{width:72px!important;height:72px!important;min-width:72px!important;}
  .btn{width:auto;min-height:40px;}
}


/* v87 - foto como control de menú, reporte y Nueva Solicitud profesional */
.user-summary{position:relative;border:1px solid transparent;}
.user-summary::after{content:'⇄';position:absolute;left:34px;bottom:4px;width:18px;height:18px;border-radius:999px;background:linear-gradient(135deg,var(--iptel-orange),#ffbd73);color:#102033;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:950;border:2px solid #fff;box-shadow:0 6px 14px rgba(245,130,32,.28);}
.user-summary:hover{background:#eef6ff;border-color:#d9e9fb;box-shadow:0 10px 24px rgba(15,23,42,.07);}
.sidebar-toggle,.mobile-menu-fab{display:none!important;}
.report-table .compact-actions{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;gap:8px!important;flex-wrap:nowrap!important;}
.report-table .compact-actions .btn{white-space:nowrap;}
.solicitud-hero{position:relative;overflow:hidden;margin-bottom:20px;padding:28px 30px;border-radius:28px;background:linear-gradient(135deg,#082849 0%,#0b4ea2 58%,#f58220 135%);color:#fff;box-shadow:0 24px 55px rgba(8,40,73,.22);}
.solicitud-hero::after{content:'';position:absolute;right:-60px;top:-70px;width:240px;height:240px;border-radius:50%;background:rgba(255,255,255,.12);}
.solicitud-hero .eyebrow{color:#ffd8b0;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);padding:6px 10px;border-radius:999px;display:inline-block;margin-bottom:10px;}
.solicitud-hero h1{margin:0;color:#fff;font-size:34px;letter-spacing:-.03em;}
.solicitud-hero p{max-width:760px;color:#eaf3ff;font-weight:700;margin:10px 0 0;}
.solicitud-card{border:0;border-radius:28px;padding:0;overflow:hidden;background:#fff;box-shadow:0 18px 48px rgba(15,23,42,.09);}
.solicitud-card > .solicitud-step{padding:20px 24px;background:linear-gradient(135deg,#f8fbff,#eef6ff);border-bottom:1px solid #dbe7f5;}
.solicitud-step{display:flex;gap:14px;align-items:center;}
.solicitud-step>span{width:44px;height:44px;border-radius:16px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--iptel-orange),#ffbd73);color:#102033;font-weight:950;box-shadow:0 12px 22px rgba(245,130,32,.22);}
.solicitud-step h2{margin:0;color:var(--iptel-blue-dark);}
.solicitud-step p{margin:4px 0 0;color:#64748b;font-weight:800;}
.solicitud-card .search-form,.solicitud-card .results-list,.solicitud-card form.form,.solicitud-card > .alert,.solicitud-card > a.btn{margin:22px 24px;}
.solicitud-card .search-form{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:16px;border-radius:20px;background:#f8fafc;border:1px solid #e5edf7;}
.solicitud-card .search-form input{flex:1;min-width:280px;border-radius:14px;border:1px solid #cbd5e1;padding:13px 14px;}
.solicitud-card .result-row{border:1px solid #e5edf7;background:linear-gradient(135deg,#fff,#fbfdff);border-radius:18px;padding:14px 16px;box-shadow:0 10px 24px rgba(15,23,42,.05);}
.solicitud-form-card form.form{display:grid;grid-template-columns:repeat(2,minmax(240px,1fr));gap:16px 18px;}
.solicitud-form-card form.form p{margin:0;display:flex;flex-direction:column;gap:6px;padding:14px;border:1px solid #e5edf7;border-radius:18px;background:#fbfdff;}
.solicitud-form-card form.form label{font-weight:900;color:#0f335a;}
.solicitud-form-card form.form input,.solicitud-form-card form.form select,.solicitud-form-card form.form textarea{width:100%;border:1px solid #cbd5e1;border-radius:13px;padding:11px 12px;background:#fff;}
.solicitud-form-card form.form textarea{min-height:96px;}
.solicitud-form-card #campos-dinamicos-live{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(240px,1fr));gap:16px 18px;}
.solicitud-submit{grid-column:1/-1;display:flex;justify-content:flex-end;padding-top:4px;}
.solicitud-submit .primary{font-size:15px;padding:13px 20px;border-radius:16px;box-shadow:0 16px 30px rgba(11,78,162,.18);}
@media(max-width:900px){.solicitud-form-card form.form,.solicitud-form-card #campos-dinamicos-live{grid-template-columns:1fr}.solicitud-card .search-form input{min-width:100%;}.solicitud-hero h1{font-size:28px}.user-summary::after{left:30px}}


/* v88: logo de la empresa controla el menú lateral */
.brand-menu-control{position:relative;cursor:pointer;transition:transform .18s ease, box-shadow .18s ease;}
.brand-menu-control:hover{transform:translateY(-1px);box-shadow:0 18px 34px rgba(0,0,0,.20)}
.brand-toggle-pill{display:block;margin:9px auto 0;width:max-content;padding:5px 10px;border-radius:999px;background:linear-gradient(135deg,var(--iptel-orange),#ffbd73);color:#102033;font-weight:950;font-size:11px;letter-spacing:.06em;text-transform:uppercase;box-shadow:0 8px 18px rgba(245,130,32,.28)}
body.sidebar-collapsed .brand-toggle-pill{display:none;}
body.sidebar-collapsed .brand-menu-control{display:flex;align-items:center;justify-content:center;min-height:64px;}
.user-summary{cursor:default!important;}
.user-summary:hover{background:#fff!important;box-shadow:0 10px 24px rgba(15,23,42,.08)!important;}

/* v88: más color profesional en Nueva Solicitud */
.solicitud-search-card,.solicitud-form-card{position:relative;}
.solicitud-search-card::before,.solicitud-form-card::before{content:'';display:block;height:7px;background:linear-gradient(90deg,var(--iptel-blue),var(--iptel-orange));}
.solicitud-card .search-form{background:linear-gradient(135deg,#eef6ff,#fff7ed);border-color:rgba(245,130,32,.20);box-shadow:inset 0 0 0 1px rgba(11,78,162,.04);}
.solicitud-form-card form.form p{background:linear-gradient(180deg,#ffffff 0%,#f7fbff 100%);border-left:5px solid rgba(11,78,162,.28);box-shadow:0 10px 22px rgba(15,23,42,.045);}
.solicitud-form-card form.form p:focus-within{border-left-color:var(--iptel-orange);box-shadow:0 14px 28px rgba(245,130,32,.12);}
.solicitud-form-card form.form label{display:flex;align-items:center;gap:8px;}
.solicitud-form-card form.form label::before{content:'';width:8px;height:8px;border-radius:50%;background:linear-gradient(135deg,var(--iptel-blue),var(--iptel-orange));box-shadow:0 0 0 4px rgba(11,78,162,.08);}
.solicitud-card .result-row{border-left:6px solid var(--iptel-orange);}
@media(max-width:900px){.brand-toggle-pill{display:none}.brand-menu-control{cursor:pointer}}

/* v89: selects impactantes, validación elegante y etapa 3 de revisión */
.solicitud-form-card form.form select{
  appearance:none;-webkit-appearance:none;
  background-image:linear-gradient(135deg,rgba(11,78,162,.08),rgba(245,130,32,.10)),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%230b4ea2' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat,no-repeat;
  background-position:0 0,calc(100% - 14px) 50%;
  background-size:100% 100%,18px;
  padding-right:44px!important;
  border:1px solid rgba(11,78,162,.24)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.75),0 10px 22px rgba(11,78,162,.06);
  font-weight:850;color:#0b3158;
}
.solicitud-form-card form.form select:focus{
  outline:none;border-color:var(--iptel-orange)!important;
  box-shadow:0 0 0 4px rgba(245,130,32,.16),0 14px 28px rgba(11,78,162,.10);
}
.select-impact-field{position:relative;background:linear-gradient(135deg,#ffffff 0%,#eef6ff 100%)!important;border-left-color:var(--iptel-orange)!important;}
.select-impact-badge{display:inline-flex;align-items:center;width:max-content;max-width:100%;margin-top:3px;padding:5px 9px;border-radius:999px;background:linear-gradient(135deg,#0b4ea2,#082849);color:#fff;font-size:11px;font-weight:950;letter-spacing:.03em;box-shadow:0 8px 18px rgba(11,78,162,.16);}
.campo-error-elegante{border-color:#ef4444!important;border-left-color:#dc2626!important;background:linear-gradient(180deg,#fff 0%,#fff5f5 100%)!important;box-shadow:0 12px 28px rgba(220,38,38,.11)!important;animation:fieldErrorPulse .22s ease-out;}
.campo-error-elegante label{color:#991b1b!important;}
.campo-error-elegante input,.campo-error-elegante select,.campo-error-elegante textarea{border-color:#ef4444!important;background:#fffafa!important;box-shadow:0 0 0 4px rgba(239,68,68,.12)!important;}
.field-error-elegante{display:flex;align-items:center;gap:6px;color:#b91c1c;font-weight:900;margin-top:3px;}
.field-error-elegante::before{content:'!';display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:999px;background:#dc2626;color:#fff;font-size:12px;font-weight:950;}
@keyframes fieldErrorPulse{from{transform:translateY(-2px)}to{transform:translateY(0)}}
.solicitud-review-modal{display:none;position:fixed;inset:0;z-index:11000;align-items:center;justify-content:center;padding:22px;}
.solicitud-review-modal.is-open{display:flex;}
.solicitud-review-backdrop{position:absolute;inset:0;background:rgba(8,24,43,.62);backdrop-filter:blur(7px);}
.solicitud-review-box{position:relative;width:min(980px,96vw);max-height:90vh;overflow:auto;border-radius:30px;background:linear-gradient(180deg,#fff 0%,#f7fbff 100%);box-shadow:0 34px 90px rgba(2,20,43,.42);border:1px solid rgba(255,255,255,.78);}
.solicitud-review-box::before{content:'';display:block;height:8px;background:linear-gradient(90deg,var(--iptel-blue),var(--iptel-orange));}
.solicitud-review-head{display:flex;justify-content:space-between;gap:18px;padding:24px 28px;border-bottom:1px solid #e5edf7;background:radial-gradient(circle at top right,rgba(245,130,32,.16),transparent 35%),linear-gradient(135deg,#f8fbff,#eef6ff);}
.solicitud-review-head h2{margin:6px 0;color:var(--iptel-blue-dark);font-size:26px;}
.solicitud-review-head p{margin:0;color:#64748b;font-weight:800;}
.review-close{border:0;width:42px;height:42px;border-radius:15px;background:#fff;color:#0f172a;font-size:26px;font-weight:900;box-shadow:0 10px 22px rgba(15,23,42,.10);cursor:pointer;}
.review-client-card{margin:20px 28px 0;padding:16px 18px;border-radius:20px;background:linear-gradient(135deg,#082849,#0b4ea2);color:#fff;display:flex;justify-content:space-between;gap:12px;align-items:center;box-shadow:0 18px 38px rgba(11,78,162,.18);}
.review-client-card strong{font-size:18px;}.review-client-card span{color:#ffd7b1;font-weight:900;}
.review-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:14px;padding:20px 28px;}
.review-item{padding:14px 16px;border-radius:18px;background:#fff;border:1px solid #e5edf7;border-left:5px solid var(--iptel-orange);box-shadow:0 10px 22px rgba(15,23,42,.05);}
.review-item span{display:block;color:#64748b;font-size:12px;font-weight:950;text-transform:uppercase;letter-spacing:.05em;margin-bottom:5px;}
.review-item strong{display:block;color:#102033;font-size:15px;line-height:1.35;word-break:break-word;}
.review-actions{display:flex;justify-content:flex-end;gap:12px;padding:0 28px 26px;}
@media(max-width:760px){.review-grid{grid-template-columns:1fr;padding:16px}.solicitud-review-head,.review-actions{padding-left:16px;padding-right:16px}.review-client-card{margin-left:16px;margin-right:16px;flex-direction:column;align-items:flex-start}.review-actions{flex-direction:column}.review-actions .btn,.review-actions .primary{width:100%;}}

/* v90: validación completa y selects custom en Nueva Solicitud */
.form-server-errors{grid-column:1/-1;padding:14px 16px;border-radius:18px;background:#fff5f5;border:1px solid #fecaca;color:#991b1b;font-weight:900;}
.solicitud-form-card form.form p:has(#id_localizacoes),
.solicitud-form-card form.form p:has(input[name="localizacoes"]){grid-column:1/-1;background:linear-gradient(135deg,#f8fbff,#fff7ed)!important;border-left-color:var(--iptel-orange)!important;}
.solicitud-form-card form.form p:has(input[name="localizacoes"]) .helptext{display:block;margin-top:8px;color:#64748b;font-weight:800;}
.solicitud-form-card form.form p:has(input[name="localizacoes"]) label{margin-bottom:8px;}
.solicitud-form-card form.form p:has(input[name="localizacoes"]) #id_localizacoes{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;list-style:none;padding:0;margin:0;}
.solicitud-form-card form.form p:has(input[name="localizacoes"]) #id_localizacoes li{list-style:none;margin:0;}
.solicitud-form-card form.form p:has(input[name="localizacoes"]) #id_localizacoes label{display:flex;align-items:center;gap:10px;margin:0;padding:12px 14px;border-radius:16px;background:#fff;border:1px solid #dbe7f5;box-shadow:0 8px 18px rgba(15,23,42,.045);color:#0f335a;}
.solicitud-form-card form.form p:has(input[name="localizacoes"]) #id_localizacoes label::before{display:none;}
.solicitud-form-card form.form p:has(input[name="localizacoes"]) input[type="checkbox"]{width:18px;height:18px;accent-color:var(--iptel-orange);box-shadow:none!important;}
.select-native-hidden{position:absolute!important;opacity:0!important;pointer-events:none!important;width:1px!important;height:1px!important;}
.custom-select-impact{position:relative;z-index:5;}
.custom-select-trigger{width:100%;border:1px solid rgba(11,78,162,.24);border-radius:15px;padding:13px 14px;background:linear-gradient(135deg,#ffffff,#eef6ff);color:#0b3158;font-weight:950;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;box-shadow:inset 0 1px 0 rgba(255,255,255,.75),0 10px 22px rgba(11,78,162,.06);text-align:left;}
.custom-select-trigger b{width:28px;height:28px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--iptel-blue),var(--iptel-orange));color:#fff;font-size:18px;line-height:1;transition:transform .18s ease;}
.custom-select-impact.is-open .custom-select-trigger{border-color:var(--iptel-orange);box-shadow:0 0 0 4px rgba(245,130,32,.14),0 14px 30px rgba(11,78,162,.12);}
.custom-select-impact.is-open .custom-select-trigger b{transform:rotate(180deg);}
.custom-select-menu{display:none;position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:20000;max-height:285px;overflow:auto;padding:10px;border-radius:20px;background:linear-gradient(180deg,#ffffff,#f8fbff);border:1px solid #dbe7f5;box-shadow:0 24px 55px rgba(8,40,73,.24);}
.custom-select-impact.is-open .custom-select-menu{display:grid;gap:8px;}
.custom-select-option{width:100%;border:1px solid transparent;border-radius:15px;padding:12px 13px;background:#fff;color:#0f335a;font-weight:900;text-align:left;display:flex;justify-content:space-between;align-items:center;gap:10px;cursor:pointer;box-shadow:0 8px 18px rgba(15,23,42,.045);}
.custom-select-option:hover{background:linear-gradient(135deg,#eef6ff,#fff7ed);border-color:rgba(245,130,32,.28);transform:translateY(-1px);}
.custom-select-option.is-selected{background:linear-gradient(135deg,var(--iptel-blue),#082849);color:#fff;border-color:rgba(255,255,255,.28);}
.custom-select-option strong{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#ffd7b1;}
.campo-error-elegante .custom-select-trigger{border-color:#ef4444!important;background:#fffafa!important;box-shadow:0 0 0 4px rgba(239,68,68,.12)!important;}
.solicitud-form-card .errorlist{margin:0 0 6px;padding:9px 11px;border-radius:13px;background:#fee2e2;color:#991b1b;font-weight:900;list-style:none;}
@media(max-width:900px){.solicitud-form-card form.form p:has(input[name="localizacoes"]) #id_localizacoes{grid-template-columns:1fr}.custom-select-menu{position:relative;top:8px}}

/* v91 - Validación uniforme, ubicaciones amplias y formulario de cliente profesional */
.form-error-summary{grid-column:1/-1;padding:14px 16px;border-radius:18px;background:linear-gradient(135deg,#fff1f2,#fee2e2);border:1px solid #fecaca;border-left:6px solid #dc2626;color:#7f1d1d;font-weight:950;box-shadow:0 18px 36px rgba(220,38,38,.12);}
.form-error-summary strong{display:block;margin-bottom:2px;color:#991b1b;}
.solicitud-form-card form.form p.ubicaciones-full-width{grid-column:1/-1!important;width:100%;display:block!important;background:linear-gradient(135deg,#eef6ff 0%,#fff7ed 100%)!important;border-left-color:var(--iptel-orange)!important;}
.solicitud-form-card form.form p.ubicaciones-full-width > label{display:flex;margin-bottom:12px;}
.solicitud-form-card form.form p.ubicaciones-full-width #id_localizacoes,
.solicitud-form-card form.form p.ubicaciones-full-width > div[id="id_localizacoes"]{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;width:100%;padding:0;margin:0;}
.solicitud-form-card form.form p.ubicaciones-full-width #id_localizacoes > div,
.solicitud-form-card form.form p.ubicaciones-full-width #id_localizacoes li{list-style:none;margin:0;}
.solicitud-form-card form.form p.ubicaciones-full-width #id_localizacoes label{display:flex!important;align-items:center;gap:12px;width:100%;padding:14px 16px;border-radius:18px;background:#fff;border:1px solid #dbe7f5;box-shadow:0 10px 22px rgba(15,23,42,.06);font-weight:950;color:#0f335a;}
.solicitud-form-card form.form p.ubicaciones-full-width #id_localizacoes label::before{display:none!important;}
.solicitud-form-card form.form p.ubicaciones-full-width input[type="checkbox"]{width:20px;height:20px;accent-color:var(--iptel-orange);flex:0 0 auto;}
.custom-select-menu{background:radial-gradient(circle at top right,rgba(245,130,32,.16),transparent 36%),linear-gradient(180deg,#ffffff,#eef6ff)!important;border:1px solid rgba(11,78,162,.18)!important;box-shadow:0 30px 70px rgba(8,40,73,.30)!important;}
.custom-select-option{min-height:46px;background:linear-gradient(135deg,#ffffff,#f8fbff)!important;border-color:#e5edf7!important;}
.custom-select-option::before{content:'';width:9px;height:9px;border-radius:50%;background:linear-gradient(135deg,var(--iptel-blue),var(--iptel-orange));box-shadow:0 0 0 4px rgba(11,78,162,.06);flex:0 0 auto;}
.custom-select-option:hover{background:linear-gradient(135deg,#0b4ea2,#082849)!important;color:#fff!important;border-color:rgba(255,255,255,.28)!important;box-shadow:0 16px 32px rgba(11,78,162,.22)!important;}
.custom-select-option:hover::before{background:#f58220;box-shadow:0 0 0 4px rgba(245,130,32,.22);}
.custom-select-option.is-selected{background:linear-gradient(135deg,#f58220,#ffb45d)!important;color:#102033!important;}
.select-native-hidden{position:absolute!important;opacity:0!important;pointer-events:none!important;width:1px!important;height:1px!important;}

.cliente-form-hero{background:linear-gradient(135deg,#082849 0%,#0b4ea2 52%,#f58220 125%);}
.cliente-form-pro{border:0;border-radius:28px;overflow:hidden;padding:0;background:#fff;box-shadow:0 22px 60px rgba(8,40,73,.13);}
.cliente-form-pro::before{content:'';display:block;height:8px;background:linear-gradient(90deg,var(--iptel-blue),var(--iptel-orange));}
.cliente-form-grid{display:grid;grid-template-columns:repeat(2,minmax(240px,1fr));gap:16px 18px;margin:24px!important;}
.form-section-title{grid-column:1/-1;display:flex;gap:14px;align-items:center;padding:16px;border-radius:20px;background:linear-gradient(135deg,#eef6ff,#fff7ed);border:1px solid rgba(11,78,162,.12);}
.form-section-title span{width:42px;height:42px;border-radius:15px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--iptel-blue),var(--iptel-orange));color:#fff;font-weight:950;box-shadow:0 12px 24px rgba(11,78,162,.18);}
.form-section-title h2{margin:0;color:var(--iptel-blue-dark);font-size:21px;}
.form-section-title p{margin:3px 0 0;color:#64748b;font-weight:800;}
.cliente-form-grid .field-wrap{margin:0;display:flex;flex-direction:column;gap:7px;padding:14px;border-radius:18px;background:linear-gradient(180deg,#fff,#f7fbff);border:1px solid #e5edf7;border-left:5px solid rgba(11,78,162,.28);box-shadow:0 10px 22px rgba(15,23,42,.045);}
.cliente-form-grid .field-wrap:focus-within{border-left-color:var(--iptel-orange);box-shadow:0 14px 30px rgba(245,130,32,.13);}
.cliente-form-grid label{font-weight:950;color:#0f335a;}
.cliente-form-grid input,.cliente-form-grid select,.cliente-form-grid textarea{width:100%;border:1px solid #cbd5e1;border-radius:13px;padding:12px;background:#fff;font-weight:800;color:#102033;}
.cliente-form-grid input[type="file"]{background:#f8fbff;border-style:dashed;}
.cliente-form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;padding-top:6px;}
.cliente-form-actions .primary{border-radius:16px;padding:13px 22px;box-shadow:0 16px 32px rgba(11,78,162,.18);}
@media(max-width:900px){.cliente-form-grid{grid-template-columns:1fr;margin:16px!important}.solicitud-form-card form.form p.ubicaciones-full-width #id_localizacoes,.solicitud-form-card form.form p.ubicaciones-full-width > div[id="id_localizacoes"]{grid-template-columns:1fr}.custom-select-menu{position:relative!important;top:8px!important}}

/* v92 - validación uniforme del alta de cliente */
.cliente-form-grid .field-ubicacion_endereco,
.cliente-form-grid .field-ubicacion_cidade,
.cliente-form-grid .field-ubicacion_regiao,
.cliente-form-grid .field-ubicacion_latitud,
.cliente-form-grid .field-ubicacion_longitud{background:linear-gradient(180deg,#fffaf5,#ffffff);border-left-color:rgba(245,130,32,.55)}
.cliente-form-grid .campo-error-elegante{border-color:#ef4444!important;border-left-color:#dc2626!important;background:linear-gradient(180deg,#fff5f5,#fff)!important;box-shadow:0 16px 30px rgba(220,38,38,.12)!important;animation:clienteErrorPulse .25s ease-out}
.cliente-form-grid .campo-error-elegante input,
.cliente-form-grid .campo-error-elegante select,
.cliente-form-grid .campo-error-elegante textarea{border-color:#ef4444!important;background:#fff7f7!important}
.cliente-form-alert{grid-column:1/-1;border:1px solid #fecaca;background:linear-gradient(135deg,#fff1f2,#fff7ed);color:#991b1b;border-radius:16px;padding:13px 16px;font-weight:900;box-shadow:0 12px 28px rgba(220,38,38,.1)}
@keyframes clienteErrorPulse{from{transform:translateY(-2px)}to{transform:translateY(0)}}

/* v93 - Clientes: búsqueda profesional + Región/Ciudad Chile */
.clientes-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px;padding:24px;border-radius:28px;background:linear-gradient(135deg,#082849 0%,#0b4ea2 58%,#f58220 130%);color:#fff;box-shadow:0 22px 50px rgba(8,40,73,.22);position:relative;overflow:hidden}
.clientes-hero:after{content:'';position:absolute;right:-70px;top:-90px;width:240px;height:240px;border-radius:50%;background:rgba(255,255,255,.13)}
.clientes-hero h1{margin:2px 0 6px;font-size:34px;letter-spacing:-.03em;color:#fff}.clientes-hero p{margin:0;color:rgba(255,255,255,.86);font-weight:750}.clientes-hero .eyebrow{color:#ffd6ad}.clientes-new-btn{background:#fff!important;color:#0b4ea2!important;border:0!important;font-weight:950;box-shadow:0 16px 30px rgba(0,0,0,.18);z-index:1;white-space:nowrap}
.clientes-search-panel{border:1px solid #dbeafe;background:linear-gradient(135deg,#f8fbff,#fff7ed);border-radius:24px;padding:16px;margin-bottom:18px;box-shadow:0 14px 34px rgba(15,23,42,.08)}
.clientes-search{display:flex;gap:12px;align-items:center}.clientes-search-input{flex:1;display:flex;align-items:center;gap:10px;background:#fff;border:2px solid #dbeafe;border-radius:18px;padding:0 14px;box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}.clientes-search-input:focus-within{border-color:#f58220;box-shadow:0 0 0 4px rgba(245,130,32,.13)}.clientes-search-input input{border:0!important;outline:0!important;box-shadow:none!important;width:100%;padding:15px 4px;font-weight:850;color:#0f172a;background:transparent}.clientes-search .primary{border-radius:16px;padding:14px 20px}.clientes-search .ghost{border-radius:16px;padding:13px 18px;background:#fff;color:#0b4ea2}
.clientes-grid-results{display:grid;gap:14px}.cliente-result-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;border-radius:24px;background:linear-gradient(135deg,#ffffff,#f8fbff);border:1px solid #e2e8f0;box-shadow:0 12px 32px rgba(15,23,42,.07);transition:.18s ease}.cliente-result-card:hover{transform:translateY(-2px);box-shadow:0 20px 42px rgba(11,78,162,.13);border-color:#bfdbfe}.cliente-result-main{display:flex;align-items:center;gap:14px;min-width:0}.cliente-avatar-mini{width:64px;height:64px;border-radius:20px;background:linear-gradient(135deg,#0b4ea2,#f58220);display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:0 12px 24px rgba(11,78,162,.18);flex:0 0 auto}.cliente-avatar-mini img{width:100%;height:100%;object-fit:cover}.cliente-avatar-mini span{color:#fff;font-size:26px;font-weight:950}.cliente-result-main h3{margin:0 0 3px;font-size:18px}.cliente-result-main h3 a{color:#082849;text-decoration:none}.cliente-result-main p{margin:0;color:#64748b;font-weight:750}.cliente-result-main .rut-line{color:#0b4ea2;font-weight:950}.cliente-result-tags{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.cliente-result-tags .compact{padding:9px 12px;border-radius:12px;white-space:nowrap}
.cliente-form-grid select.chile-region-select,.cliente-form-grid select.chile-city-select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,#0b4ea2 50%),linear-gradient(135deg,#0b4ea2 50%,transparent 50%),linear-gradient(135deg,#fff,#eef6ff)!important;background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%,0 0;background-size:6px 6px,6px 6px,100% 100%;background-repeat:no-repeat;border:2px solid #bfdbfe!important;color:#082849!important}.cliente-form-grid select.chile-region-select:focus,.cliente-form-grid select.chile-city-select:focus{border-color:#f58220!important;box-shadow:0 0 0 4px rgba(245,130,32,.14)!important}
@media(max-width:820px){.clientes-hero,.cliente-result-card,.clientes-search{flex-direction:column;align-items:stretch}.cliente-result-tags{justify-content:flex-start}.clientes-hero h1{font-size:28px}}

/* v94 - Logos en Clientes, selects Chile impactantes y RUT ficticio */
.clientes-brand-mini{display:inline-flex;align-items:center;gap:10px;padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);box-shadow:inset 0 1px 0 rgba(255,255,255,.18);font-weight:950;color:#fff;margin-bottom:8px;position:relative;z-index:1;}
.clientes-brand-mark{width:30px;height:30px;border-radius:11px;background:linear-gradient(135deg,#fff,#ffd7b1);color:#0b4ea2;display:inline-flex;align-items:center;justify-content:center;font-weight:1000;letter-spacing:-.08em;}
.cliente-avatar-mini.has-client-logo{width:78px;height:78px;border-radius:22px;background:linear-gradient(135deg,#eef6ff,#fff7ed);border:1px solid rgba(11,78,162,.14);padding:4px;}
.cliente-avatar-mini.has-client-logo img{width:100%;height:100%;object-fit:contain;background:#fff;border-radius:18px;padding:3px;box-shadow:inset 0 0 0 1px rgba(11,78,162,.06);}
.cliente-avatar-mini.has-client-logo span{width:100%;height:100%;align-items:center;justify-content:center;border-radius:18px;background:linear-gradient(135deg,#0b4ea2,#f58220);}
.cliente-form-grid .cliente-select-impact{width:100%;}
.cliente-form-grid .cliente-select-impact .custom-select-trigger{min-height:48px;background:radial-gradient(circle at top right,rgba(245,130,32,.15),transparent 35%),linear-gradient(135deg,#ffffff,#eef6ff);border:2px solid #bfdbfe;color:#082849;}
.cliente-form-grid .cliente-select-impact.is-open .custom-select-trigger{border-color:#f58220;box-shadow:0 0 0 4px rgba(245,130,32,.14),0 18px 38px rgba(11,78,162,.16);}
.cliente-form-grid .cliente-select-menu{max-height:330px;background:radial-gradient(circle at top right,rgba(245,130,32,.18),transparent 36%),linear-gradient(180deg,#fff,#eef6ff);border:1px solid rgba(11,78,162,.22);box-shadow:0 32px 80px rgba(8,40,73,.32);}
.cliente-form-grid .cliente-select-menu .custom-select-option{justify-content:flex-start;min-height:48px;}
.cliente-form-grid .cliente-select-menu .custom-select-option:hover{background:linear-gradient(135deg,#0b4ea2,#082849)!important;color:#fff!important;transform:translateY(-1px) scale(1.005);}
@media(max-width:820px){.cliente-avatar-mini.has-client-logo{width:68px;height:68px}.clientes-brand-mini{width:max-content}}

/* v95: logos reales en clientes y selects buscables para Región/Ciudad */
.cliente-avatar-mini.has-client-logo{background:linear-gradient(135deg,#ffffff,#eef6ff)!important;border:1px solid rgba(11,78,162,.18)!important;padding:0!important;}
.cliente-avatar-mini.has-client-logo img{width:100%!important;height:100%!important;object-fit:contain!important;background:#fff!important;border-radius:20px!important;padding:6px!important;display:block!important;}
.custom-select-search-wrap{position:sticky;top:0;z-index:3;display:flex;align-items:center;gap:8px;margin:0 0 8px;padding:10px 12px;border-radius:16px;background:linear-gradient(135deg,#eef6ff,#fff7ed);border:1px solid rgba(11,78,162,.14);box-shadow:0 8px 18px rgba(11,78,162,.08)}
.custom-select-search-wrap span{font-size:14px}.custom-select-search{width:100%;border:0!important;background:transparent!important;outline:none!important;padding:4px!important;font-weight:850;color:#082849!important;box-shadow:none!important}.custom-select-search::placeholder{color:#64748b}.custom-select-options-list{display:grid;gap:6px;max-height:290px;overflow:auto;padding-right:2px}.custom-select-empty{padding:14px;border-radius:14px;text-align:center;font-weight:900;color:#64748b;background:#f8fafc;border:1px dashed #cbd5e1}

/* v96: correcciones selects buscables */
.custom-select-search{direction:ltr!important;text-align:left!important;unicode-bidi:plaintext!important;}


/* v97 - Clear Región/Ciudad, card cliente ejecutivo, CLP humano y logo adaptable */
.cliente-form-grid .cliente-select-impact{position:relative;display:block;}
.cliente-form-grid .cliente-select-impact.has-value .custom-select-trigger{padding-right:54px;}
.custom-select-clear{position:absolute;right:11px;top:50%;transform:translateY(-50%);z-index:4;width:30px;height:30px;border:0;border-radius:999px;background:linear-gradient(135deg,#fee2e2,#fff);color:#b91c1c;font-size:22px;line-height:1;font-weight:950;box-shadow:0 8px 18px rgba(185,28,28,.16);cursor:pointer;display:flex;align-items:center;justify-content:center;}
.custom-select-clear:hover{background:linear-gradient(135deg,#ef4444,#b91c1c);color:#fff;transform:translateY(-50%) scale(1.05);}
.custom-select-clear[hidden]{display:none!important;}
.perfil-cliente-card{display:flex;gap:20px;align-items:stretch;background:radial-gradient(circle at top right,color-mix(in srgb,var(--perfil-color,#2563eb) 24%,transparent),transparent 34%),linear-gradient(135deg,#ffffff,#f8fbff);border:1px solid color-mix(in srgb,var(--perfil-color,#2563eb) 28%,#e5e7eb);border-left:8px solid var(--perfil-color,#2563eb);box-shadow:0 22px 54px rgba(8,40,73,.12);overflow:hidden;}
.cliente-logo-box{width:190px!important;min-width:190px!important;height:auto!important;min-height:142px!important;border-radius:24px!important;background:linear-gradient(135deg,#fff,#eef6ff)!important;border:1px solid rgba(11,78,162,.14)!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.85),0 18px 38px rgba(15,23,42,.08);padding:0!important;}
.cliente-logo{width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:contain!important;padding:10px!important;background:#fff;border-radius:23px;display:block;}
.cliente-logo-empty{width:100%;height:100%;display:flex;align-items:center;justify-content:center;border-radius:23px;background:linear-gradient(135deg,#eef6ff,#fff7ed);}
.cliente-data-wow{flex:1;display:grid;gap:14px;align-content:center;}
.cliente-info-chips{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr));gap:12px;}
.cliente-info-chip{padding:14px 16px;border-radius:18px;background:rgba(255,255,255,.86);border:1px solid rgba(15,23,42,.08);box-shadow:0 12px 24px rgba(15,23,42,.055);}
.cliente-info-chip span{display:block;color:#64748b;text-transform:uppercase;letter-spacing:.07em;font-size:11px;font-weight:950;margin-bottom:6px;}
.cliente-info-chip strong{display:block;color:#082849;font-size:16px;line-height:1.15;}
.cliente-info-chip small{display:block;margin-top:4px;color:#475569;font-weight:800;}
.cliente-info-chip.wide{grid-column:auto / span 1;}
.cliente-info-chip.estado-chip strong.status-badge{display:inline-flex;width:max-content;color:inherit;}
.profile-rules-card .finance-wow-total{font-size:26px;color:var(--perfil-color,#2563eb);letter-spacing:-.03em;}
@media(max-width:900px){.perfil-cliente-card{flex-direction:column}.cliente-logo-box{width:100%!important;min-width:0!important;height:150px!important}.cliente-info-chips{grid-template-columns:1fr}.cliente-info-chip.wide{grid-column:auto}}


/* v98 - IPTEL symbol in Clientes and service field configurator */
.clientes-brand-logo-only{display:inline-flex;align-items:center;gap:.6rem;padding:.45rem .75rem;border-radius:999px;background:linear-gradient(135deg,#0f3f8f,#ff7a18);color:#fff;box-shadow:0 12px 28px rgba(15,63,143,.22);font-weight:900;letter-spacing:.03em;width:max-content}
.clientes-brand-logo-only .iptel-symbol{display:grid;place-items:center;width:26px;height:26px;border-radius:9px;background:rgba(255,255,255,.18);color:#fff;transform:rotate(45deg);font-size:16px;line-height:1}
.clientes-brand-logo-only .clientes-brand-name{font-size:.95rem}
.service-field-builder{margin:1rem 0;border:1px solid rgba(37,99,235,.16);background:linear-gradient(135deg,rgba(15,63,143,.08),rgba(255,122,24,.10));box-shadow:0 18px 48px rgba(15,63,143,.10)}
.service-field-builder .builder-head h2{margin:.25rem 0 .3rem;color:#0f2f6d}.service-field-builder .builder-head p{margin:0;color:#475569}
.builder-grid{display:grid;grid-template-columns:1.3fr .8fr .7fr 1.3fr auto;gap:.7rem;align-items:end;margin:1rem 0}.builder-grid input,.builder-grid select{border:1px solid rgba(15,63,143,.18);border-radius:14px;padding:.75rem .85rem;background:#fff;box-shadow:0 10px 24px rgba(15,63,143,.06)}
.input-attention{border-color:#dc2626!important;box-shadow:0 0 0 4px rgba(220,38,38,.12)!important}.dynamic-service-field select[multiple]{min-height:110px;border-radius:16px;background:linear-gradient(180deg,#fff,#f8fbff)}.checkbox-impact-line{display:flex!important;align-items:center;gap:.75rem;background:rgba(15,63,143,.04);border-radius:14px;padding:.75rem!important}.checkbox-impact-line label{margin:0!important;order:2}.checkbox-impact-line input{order:1;width:20px;height:20px;accent-color:#ff7a18}
@media (max-width: 900px){.builder-grid{grid-template-columns:1fr}.builder-grid button{width:100%}}

/* v99 - logo IPTEL y feedback de campos */
.iptel-logo-symbol{
  width: 54px; height: 54px; border-radius: 18px;
  display: inline-flex; align-items:center; justify-content:center; position:relative;
  background: linear-gradient(135deg, #0b3d91 0%, #1d6be3 55%, #f97316 56%, #ffb347 100%);
  box-shadow: 0 14px 30px rgba(15, 49, 110, .25);
  color:#fff; font-weight: 900; font-size: 34px; line-height: 1;
  overflow:hidden;
}
.iptel-logo-symbol::after{content:''; position:absolute; inset:8px; border:2px solid rgba(255,255,255,.45); border-radius:14px;}
.iptel-logo-i{font-family: Arial, sans-serif; transform: translateY(-1px); z-index:1; text-shadow:0 3px 10px rgba(0,0,0,.25)}
.iptel-logo-dot{position:absolute; right:11px; top:10px; width:8px; height:8px; border-radius:999px; background:#fff; z-index:2;}
.clientes-brand-mini{gap:12px; align-items:center;}
.clientes-brand-name{font-weight:900; letter-spacing:.08em; color:#0b3d91; font-size:1.15rem;}
.service-builder-impact{grid-template-columns: 1.4fr .9fr .8fr 1fr 1.3fr auto; align-items:end;}
.builder-feedback{margin-top:12px; padding:12px 14px; border-radius:16px; font-weight:800; border:1px solid transparent;}
.builder-feedback.ok{background:#ecfdf5; border-color:#a7f3d0; color:#047857;}
.builder-feedback.error{background:#fef2f2; border-color:#fecaca; color:#b91c1c;}
.form-error-box{padding:12px 14px; border-radius:16px; background:#fef2f2; border:1px solid #fecaca; color:#991b1b; font-weight:800; grid-column:1/-1;}
@media (max-width: 980px){.service-builder-impact{grid-template-columns:1fr;}}


/* v100 - campos dinámicos del catálogo */
.campos-instalacion-debajo-ubicacion{grid-column:1/-1;margin:14px 0 18px;padding:18px;border-radius:22px;background:linear-gradient(135deg,rgba(0,72,145,.08),rgba(255,122,0,.10));border:1px solid rgba(0,72,145,.14);box-shadow:0 14px 34px rgba(15,23,42,.08)}
.campos-instalacion-debajo-ubicacion:before{content:'Datos específicos del servicio';display:block;font-weight:900;color:#0f2f5f;margin-bottom:12px;letter-spacing:.02em}
.dynamic-service-field{background:#fff;border:1px solid rgba(15,23,42,.10);border-radius:18px;padding:14px;margin:10px 0;box-shadow:0 8px 20px rgba(15,23,42,.05)}
.dynamic-service-field label{font-weight:800;color:#18345e;display:block;margin-bottom:8px}
.dynamic-service-field input,.dynamic-service-field select,.dynamic-service-field textarea{width:100%}
.dynamic-type-multiselect select{min-height:120px;background:linear-gradient(180deg,#fff,#f8fbff)}
.checkbox-options-impact{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.checkbox-option-chip{display:inline-flex!important;align-items:center;gap:8px;width:auto!important;padding:10px 13px;border-radius:999px;background:#f8fbff;border:1px solid rgba(0,72,145,.18);font-weight:800;color:#18345e;cursor:pointer;transition:.18s ease}
.checkbox-option-chip:hover{transform:translateY(-1px);background:#fff4e8;border-color:rgba(255,122,0,.35)}
.checkbox-option-chip input{width:auto!important;accent-color:#ff7a00}
.field-highlight-options textarea{border-color:rgba(255,122,0,.55)!important;box-shadow:0 0 0 4px rgba(255,122,0,.10)!important;background:#fffaf5!important}


/* v101 - ajustes mobile, logo IPTEL real y campos dinámicos responsivos */
.clientes-iptel-real{background:linear-gradient(135deg,#ffffff,#eef6ff)!important;color:#0b3d91!important;border:1px solid rgba(11,78,162,.14);box-shadow:0 16px 38px rgba(8,40,73,.12)}
.clientes-iptel-img{width:42px;height:42px;display:block;border-radius:14px;object-fit:contain;box-shadow:0 10px 22px rgba(8,40,73,.18)}
.clientes-iptel-real .clientes-brand-name{color:#0b3d91!important;font-weight:950;}
.multiselect-options-impact{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));width:100%;max-width:100%;overflow:visible;align-items:stretch;}
.multiselect-option-chip{border-radius:16px!important;justify-content:flex-start;min-height:46px;white-space:normal;line-height:1.2;}
.dynamic-type-multiselect{overflow:visible!important;max-width:100%;}
.dynamic-type-multiselect .checkbox-options-impact{max-width:100%;}
.campos-instalacion-debajo-ubicacion{max-width:100%;overflow:visible;}
.service-field-builder #builder-options:not(:disabled){background:#fffaf5;border-color:rgba(255,122,0,.45);box-shadow:0 0 0 4px rgba(255,122,0,.10)}
.mobile-logo-fab{display:none;}
@media(max-width:900px){
  .mobile-logo-fab{display:flex;position:fixed;left:14px;top:14px;z-index:10060;width:54px;height:54px;padding:6px;align-items:center;justify-content:center;border:0;border-radius:19px;background:#fff;box-shadow:0 18px 38px rgba(8,40,73,.28);}
  .mobile-logo-fab img{width:100%;height:100%;object-fit:contain;border-radius:15px;}
  body.sidebar-mobile-open .mobile-logo-fab{transform:translateX(min(72vw,280px));transition:transform .24s ease;}
  .multiselect-options-impact{grid-template-columns:1fr;}
  .dynamic-service-field{padding:12px;}
}


/* v102 - logo IPTEL real, logout lateral y marca de derechos */
.brand-logo{width:210px;max-width:100%;height:74px;object-fit:contain;display:block;margin:0 auto 8px;}
body.sidebar-collapsed .brand-logo{width:58px!important;height:58px!important;object-fit:contain;}
.mobile-logo-fab{width:64px!important;height:54px!important;border-radius:18px!important;padding:7px 9px!important;background:#fff!important;}
.mobile-logo-fab img{width:100%!important;height:100%!important;object-fit:contain!important;border-radius:0!important;}
.clientes-iptel-real{padding:.55rem .85rem!important;border-radius:22px!important;background:#fff!important;border:1px solid rgba(11,78,162,.18)!important;}
.clientes-iptel-img.clientes-iptel-full-logo{width:148px!important;height:52px!important;object-fit:contain!important;border-radius:0!important;box-shadow:none!important;}
.sidebar-nav{min-height:calc(100vh - 150px);}
.sidebar-footer-logout{margin-top:auto;padding-top:14px;border-top:1px solid rgba(255,255,255,.16);}
.sidebar-footer-logout form{margin:0!important;padding:0!important;border:0!important;}
.sidebar-logout-btn{background:linear-gradient(135deg,rgba(220,38,38,.22),rgba(245,130,32,.16))!important;border-color:rgba(255,255,255,.16)!important;color:#fff!important;}
.sidebar-logout-btn:hover{background:linear-gradient(135deg,#dc2626,#f58220)!important;color:#fff!important;box-shadow:0 14px 28px rgba(220,38,38,.20)!important;}
body.sidebar-collapsed .sidebar-footer-logout .nav-text{display:none;}
body.sidebar-collapsed .sidebar-footer-logout button{justify-content:center!important;padding:12px 8px!important;}
.app-watermark{position:fixed;left:50%;bottom:8px;transform:translateX(-50%);z-index:2;pointer-events:none;user-select:none;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.62);border:1px solid rgba(11,78,162,.10);color:rgba(6,38,63,.42);font-size:10px;font-weight:900;letter-spacing:.08em;text-align:center;backdrop-filter:blur(4px);}
.main{padding-bottom:40px;}
@media(max-width:900px){.brand-logo{width:205px!important;height:72px!important}.sidebar-footer-logout{padding-bottom:18px}.app-watermark{font-size:9px;bottom:5px;max-width:94vw;white-space:normal;}.clientes-iptel-img.clientes-iptel-full-logo{width:132px!important;height:46px!important}}
@media print{.app-watermark{position:fixed;bottom:6mm;color:rgba(6,38,63,.35);background:transparent;border:0}.sidebar-footer-logout{display:none!important}}

/* v103 - logo oficial IPTEL y toggle al hacer clic en espacios vacíos del menú */
.brand-logo{
  width:210px!important;
  max-width:100%!important;
  height:auto!important;
  object-fit:contain!important;
  filter:drop-shadow(0 8px 18px rgba(11,66,143,.10));
}
.mobile-logo-fab img{
  width:74px!important;
  max-width:80%!important;
  height:auto!important;
  object-fit:contain!important;
}
.mobile-logo-fab{
  width:86px!important;
  border-radius:22px!important;
  background:#fff!important;
  border:2px solid rgba(245,130,32,.45)!important;
}
body.sidebar-collapsed .brand-logo{
  width:58px!important;
  max-width:58px!important;
}
.sidebar{
  cursor:pointer;
}
.sidebar a,.sidebar button,.sidebar form,.brand-menu-control,.nav-category{
  cursor:auto;
}
.sidebar a,.sidebar button,.brand-menu-control{
  cursor:pointer;
}
@media(max-width:900px){
  body.sidebar-collapsed .brand-logo{width:170px!important;max-width:100%!important;}
  .mobile-logo-fab{display:flex!important;align-items:center!important;justify-content:center!important;}
}


/* v104 - Clientes: usar logo oficial IPTEL completa en Gestión comercial */
.clientes-hero .clientes-brand-mini.clientes-iptel-real{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:#fff!important;
  border:1px solid rgba(11,78,162,.18)!important;
  border-left:5px solid var(--iptel-orange)!important;
  border-radius:20px!important;
  padding:10px 14px!important;
  min-width:190px!important;
  box-shadow:0 16px 38px rgba(8,40,73,.14)!important;
}
.clientes-hero .clientes-iptel-img.clientes-iptel-full-logo{
  width:172px!important;
  height:58px!important;
  max-width:172px!important;
  object-fit:contain!important;
  border-radius:0!important;
  box-shadow:none!important;
  background:transparent!important;
  display:block!important;
}
.clientes-hero .clientes-brand-mini:before,
.clientes-hero .clientes-brand-mini:after{content:none!important;}

/* v105 - Logo oficial IPTEL en cabeceras operativas y financieras */
.iptel-page-hero{
  display:flex!important;
  align-items:center!important;
  gap:22px!important;
  background:linear-gradient(135deg,rgba(11,78,162,.98),rgba(7,34,73,.95) 58%,rgba(245,130,32,.92))!important;
  color:#fff!important;
  border:0!important;
  box-shadow:0 22px 55px rgba(7,34,73,.24)!important;
  overflow:hidden!important;
  position:relative!important;
}
.iptel-page-hero:after{
  content:"";
  position:absolute;
  right:-60px;top:-70px;width:220px;height:220px;
  border-radius:999px;
  background:rgba(255,255,255,.10);
}
.iptel-page-hero .eyebrow,.iptel-page-hero p{color:rgba(255,255,255,.86)!important;}
.iptel-page-hero h1{color:#fff!important;margin:.15rem 0 .35rem!important;}
.iptel-page-brand{
  flex:0 0 auto!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:190px!important;
  min-height:82px!important;
  padding:14px!important;
  border-radius:24px!important;
  background:#fff!important;
  border:1px solid rgba(255,255,255,.55)!important;
  box-shadow:0 18px 42px rgba(0,0,0,.18)!important;
  z-index:1!important;
}
.iptel-page-brand.small{width:150px!important;min-height:64px!important;padding:10px!important;border-radius:18px!important;box-shadow:0 14px 30px rgba(8,40,73,.14)!important;}
.iptel-page-brand img,
.iptel-dashboard-logo img{
  width:100%!important;
  height:auto!important;
  max-height:70px!important;
  object-fit:contain!important;
  display:block!important;
  background:transparent!important;
  border-radius:0!important;
  box-shadow:none!important;
}
.iptel-dashboard-hero-with-logo{
  display:flex!important;
  align-items:center!important;
  gap:20px!important;
}
.iptel-dashboard-logo{
  flex:0 0 170px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:74px!important;
  padding:12px 16px!important;
  border-radius:22px!important;
  background:#fff!important;
  border-left:6px solid var(--iptel-orange)!important;
  box-shadow:0 18px 42px rgba(0,0,0,.18)!important;
}
.iptel-page-head-logo{
  align-items:center!important;
  gap:16px!important;
  background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(239,246,255,.96))!important;
  border:1px solid rgba(11,78,162,.12)!important;
  border-left:6px solid var(--iptel-orange)!important;
  border-radius:26px!important;
  padding:18px!important;
  box-shadow:0 18px 42px rgba(8,40,73,.10)!important;
}
.iptel-page-title-wrap{display:flex!important;align-items:center!important;gap:16px!important;}
@media(max-width:900px){
  .iptel-page-hero,.iptel-dashboard-hero-with-logo,.iptel-page-head-logo,.iptel-page-title-wrap{flex-direction:column!important;align-items:flex-start!important;}
  .iptel-page-brand,.iptel-dashboard-logo{width:100%!important;max-width:260px!important;flex-basis:auto!important;}
  .iptel-page-head-logo > div:last-child{display:flex!important;flex-wrap:wrap!important;gap:8px!important;}
}

/* v106 - Diseño profesional para catálogos, perfiles y flujogramas */
.iptel-module-hero{
  display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;
  padding:22px;border-radius:24px;margin-bottom:22px;
  background:linear-gradient(135deg,#0b3f8a 0%,#1264b0 52%,#f97316 100%);
  color:#fff;box-shadow:0 18px 50px rgba(15,54,111,.24);position:relative;overflow:hidden;
}
.iptel-module-hero:after{content:"";position:absolute;right:-70px;top:-70px;width:210px;height:210px;border-radius:999px;background:rgba(255,255,255,.16);}
.iptel-module-hero .eyebrow{display:inline-flex;padding:5px 10px;border-radius:999px;background:rgba(255,255,255,.16);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#fff;}
.iptel-module-hero h1{margin:6px 0 4px;font-size:30px;color:#fff;}
.iptel-module-hero p{margin:0;color:rgba(255,255,255,.88);max-width:780px;}
.module-logo-card{width:86px;height:64px;border-radius:18px;background:rgba(255,255,255,.96);display:flex;align-items:center;justify-content:center;padding:9px;box-shadow:0 12px 30px rgba(0,0,0,.18);z-index:1;}
.module-logo-card img{max-width:100%;max-height:100%;object-fit:contain;display:block;}
.catalog-add-btn{z-index:1;background:#fff!important;color:#0b3f8a!important;border:0!important;box-shadow:0 12px 26px rgba(0,0,0,.18);white-space:nowrap;}
.catalog-panel,.catalog-form-panel{border:1px solid rgba(15,54,111,.08);border-radius:22px;box-shadow:0 12px 34px rgba(15,23,42,.08);overflow:hidden;}
.catalog-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 16px;border-bottom:1px solid #e5edf7;background:linear-gradient(180deg,#f8fbff,#eef6ff);}
.catalog-toolbar strong{font-size:24px;color:#0b3f8a;margin-right:6px;}
.catalog-toolbar span{color:#64748b;font-weight:700;}
.catalog-search-mini{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #dbeafe;border-radius:16px;padding:8px 12px;min-width:260px;box-shadow:0 8px 18px rgba(15,54,111,.08);}
.catalog-search-mini input{border:0;outline:0;width:100%;font-weight:700;color:#0f172a;background:transparent;}
.catalog-table{width:100%;border-collapse:separate;border-spacing:0;}
.catalog-table thead th{background:#0b3f8a;color:#fff;text-transform:uppercase;font-size:12px;letter-spacing:.06em;padding:14px 16px;}
.catalog-table tbody td{padding:14px 16px;border-bottom:1px solid #eaf0f8;vertical-align:middle;}
.catalog-table tbody tr:hover{background:#f8fbff;}
.catalog-item-main{display:flex;align-items:center;gap:12px;}
.catalog-avatar{width:42px;height:42px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0b3f8a,#f97316);color:#fff;font-weight:900;box-shadow:0 8px 18px rgba(15,54,111,.2);}
.catalog-item-main strong{display:block;color:#0f172a;font-size:15px;}
.catalog-item-main small{display:block;color:#64748b;margin-top:2px;}
.text-right{text-align:right;}.action-nowrap{white-space:nowrap;}.btn-soft-primary{background:#eaf3ff!important;color:#0b3f8a!important;border:1px solid #bfdbfe!important;}
.empty-state{padding:24px;text-align:center;color:#64748b;}.empty-state strong{display:block;color:#0b3f8a;font-size:18px;margin-bottom:6px;}
.form-hero-modern{margin-bottom:18px;}.form-modern-catalog{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
.form-modern-catalog p{margin:0;background:#f8fbff;border:1px solid #e5edf7;border-radius:16px;padding:12px;}
.form-modern-catalog label{display:block;font-weight:900;color:#0b3f8a;margin-bottom:7px;}
.form-modern-catalog input,.form-modern-catalog select,.form-modern-catalog textarea{width:100%;border:1px solid #cbd5e1;border-radius:12px;padding:10px 12px;background:#fff;}
.form-modern-catalog textarea{min-height:110px;}.form-actions-sticky{grid-column:1/-1;display:flex;justify-content:flex-end;padding-top:8px;}
.perfiles-grid-modern{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;}
.perfil-card-modern{position:relative;overflow:hidden;border-radius:24px;background:#fff;border:1px solid #e6edf7;box-shadow:0 16px 38px rgba(15,23,42,.08);padding:18px;}
.perfil-card-modern:before{content:"";position:absolute;inset:0 0 auto 0;height:7px;background:var(--perfil-color,#2563eb);}
.perfil-card-top{display:flex;align-items:center;gap:12px;margin-bottom:16px;}
.perfil-card-top h2{margin:0;color:#0f172a;font-size:20px;}.perfil-card-top p{margin:2px 0 0;color:#64748b;font-weight:700;}
.perfil-color-big{width:50px;height:50px;border-radius:18px;background:var(--perfil-color,#2563eb);box-shadow:0 12px 28px color-mix(in srgb,var(--perfil-color,#2563eb) 32%, transparent);}
.perfil-card-top .status-badge{margin-left:auto;}.perfil-rule-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
.perfil-rule-grid div{border:1px solid #e5edf7;border-radius:16px;background:linear-gradient(180deg,#f8fbff,#fff);padding:12px;}
.perfil-rule-grid small{display:block;color:#64748b;font-weight:800;text-transform:uppercase;font-size:11px;letter-spacing:.04em;}
.perfil-rule-grid strong{display:block;color:#0b3f8a;margin-top:5px;word-break:break-word;}.perfil-card-actions{display:flex;justify-content:flex-end;margin-top:16px;}
/* Flujogramas */
.flow-admin-hero{border-radius:24px;background:linear-gradient(135deg,#0b3f8a,#1d70b8 55%,#f97316);color:#fff;box-shadow:0 16px 42px rgba(15,54,111,.22);}
.flow-admin-hero strong{font-size:20px;}.flow-admin-hero span{color:rgba(255,255,255,.9);}
.flux-grid{gap:18px;}.flux-panel,.flux-builder,.card{border-radius:22px;}
.flux-panel h2,.flux-builder h2,.card h2{color:#0b3f8a;}
.flux-item{border-radius:18px;border:1px solid #e5edf7;background:linear-gradient(180deg,#fff,#f8fbff);box-shadow:0 8px 20px rgba(15,23,42,.05);transition:.18s ease;}
.flux-item:hover{transform:translateY(-2px);box-shadow:0 14px 26px rgba(15,54,111,.12);border-color:#bfdbfe;}
.flux-item.active{background:linear-gradient(135deg,#0b3f8a,#1264b0);color:#fff;border-color:transparent;}
.flux-item.active span,.flux-item.active small{color:rgba(255,255,255,.85)!important;}
.workflow-step{border-radius:20px;background:#fff;border:1px solid #e5edf7;box-shadow:0 12px 28px rgba(15,23,42,.07);}
.workflow-step .step-number{background:linear-gradient(135deg,var(--step-color,#2563eb),#f97316);box-shadow:0 10px 24px rgba(15,54,111,.2);}
.flow-meta-grid p{background:#f8fbff;border-radius:13px;padding:9px;border:1px solid #e5edf7;}
.field-highlight-options textarea,.field-highlight-options input{border-color:#f97316!important;box-shadow:0 0 0 3px rgba(249,115,22,.14)!important;}
@media(max-width:780px){.iptel-module-hero{grid-template-columns:1fr;text-align:center}.module-logo-card{margin:auto}.catalog-add-btn{width:100%;justify-content:center}.catalog-toolbar{flex-direction:column;align-items:stretch}.catalog-search-mini{min-width:0}.form-modern-catalog{grid-template-columns:1fr}.perfil-rule-grid{grid-template-columns:1fr}.catalog-table thead{display:none}.catalog-table tr{display:block;border-bottom:1px solid #e5edf7;padding:12px}.catalog-table td{display:block!important;text-align:left!important;border:0!important;padding:8px!important}.action-nowrap .btn{width:100%;}}

/* v107 - factura completa imprimible, pagos y equipos con foto */
.catalog-photo{overflow:hidden;background:#fff;border:1px solid #dbeafe;padding:0;}
.catalog-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.payment-modal-backdrop{position:fixed;inset:0;background:rgba(4,20,44,.62);z-index:9999;display:flex;align-items:center;justify-content:center;padding:22px;backdrop-filter:blur(5px);}
.payment-modal-backdrop[hidden]{display:none!important;}
.payment-modal-card{width:min(760px,96vw);max-height:92vh;overflow:auto;background:#fff;border-radius:28px;box-shadow:0 30px 80px rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.5);position:relative;padding:22px;}
.payment-modal-close{position:absolute;right:16px;top:14px;width:38px;height:38px;border:0;border-radius:14px;background:#f1f5f9;color:#0b3f8a;font-size:25px;font-weight:900;cursor:pointer;}
.payment-modal-head{display:flex;gap:16px;align-items:center;padding:14px;border-radius:22px;background:linear-gradient(135deg,#f8fbff,#eef6ff);border:1px solid #dbeafe;margin-bottom:16px;}
.payment-modal-head img{width:128px;max-height:54px;object-fit:contain;}
.payment-modal-head span{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#f97316;font-weight:900;}
.payment-modal-head h2{margin:3px 0;color:#0b3f8a;}.payment-modal-head p{margin:0;color:#64748b;font-weight:700;}
.payment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}.payment-grid label{font-weight:900;color:#0b3f8a;}.payment-grid input,.payment-grid select,.payment-grid textarea{margin-top:6px;width:100%;border:1px solid #cbd5e1;border-radius:14px;padding:11px 12px;background:#fff;font-weight:700;}
.payment-full{grid-column:1/-1}.payment-review-box{margin:16px 0;padding:14px 16px;border-radius:18px;background:linear-gradient(135deg,#fff7ed,#f8fbff);border-left:5px solid #f97316;color:#334155;}.payment-review-box p{margin:4px 0 0;}
.payment-actions{justify-content:flex-end}.payment-history{margin-top:14px}.payment-history-item{display:grid;grid-template-columns:1fr 1.5fr 1fr auto;gap:12px;align-items:center;border:1px solid #e5edf7;border-radius:16px;padding:10px 12px;margin:8px 0;background:#f8fbff;}.payment-history-item b{color:#0b3f8a}.payment-history-item span,.payment-history-item small{color:#64748b;font-weight:700;}
@media(max-width:760px){.payment-modal-head{flex-direction:column;text-align:center}.payment-grid{grid-template-columns:1fr}.payment-history-item{grid-template-columns:1fr}.payment-actions{flex-direction:column}.payment-actions .btn{width:100%;}}
@media print{
  @page{size:A4;margin:7mm;}
  html,body{background:#fff!important;width:210mm;min-height:297mm;}
  .sidebar,.topbar,.messages,.no-print,.app-watermark,.payment-modal-backdrop,.payment-history{display:none!important;}
  .main{margin:0!important;padding:0!important;width:100%!important;}
  .invoice-sheet.invoice-corporate{display:block!important;width:100%!important;max-width:100%!important;margin:0!important;padding:8mm!important;box-sizing:border-box;border:1px solid #dbeafe!important;border-top:6px solid #0b3f8a!important;border-radius:0!important;box-shadow:none!important;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .invoice-header.compact{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:8mm!important;border-bottom:2px solid #f97316!important;margin-bottom:5mm!important;padding-bottom:4mm!important;}
  .invoice-logo{max-width:42mm!important;max-height:16mm!important;object-fit:contain!important;}
  .invoice-number{text-align:right!important}.invoice-number h2{font-size:14pt!important;margin:0 0 2mm!important;color:#0b3f8a!important;}
  .invoice-summary-row{display:grid!important;grid-template-columns:2fr 1fr 1.1fr!important;gap:3mm!important;margin-bottom:4mm!important;}
  .invoice-summary-row>div{background:#f8fbff!important;border:1px solid #dbeafe!important;border-radius:3mm!important;padding:3mm!important;}
  .invoice-summary-row strong{font-size:10pt!important}.invoice-summary-row small,.invoice-summary-row span{font-size:8pt!important;}
  .invoice-table-wrap{overflow:visible!important;border:1px solid #dbeafe!important;border-radius:3mm!important;}
  .invoice-table{width:100%!important;table-layout:fixed!important;border-collapse:collapse!important;font-size:7.5pt!important;}
  .invoice-table th,.invoice-table td{padding:2mm 1.2mm!important;word-break:break-word!important;vertical-align:top!important;}
  .invoice-table th:nth-child(3),.invoice-table td:nth-child(3){width:27%!important;}
  .invoice-table th:nth-child(1),.invoice-table td:nth-child(1){width:18%!important;}
  .invoice-table th:nth-child(10),.invoice-table td:nth-child(10){display:none!important;}
  .invoice-footer-grid{display:grid!important;grid-template-columns:1.25fr .8fr!important;gap:4mm!important;margin-top:4mm!important;}
  .invoice-note,.invoice-total-box{break-inside:avoid!important;border-radius:3mm!important;padding:3mm!important;}
  .invoice-total-box h3{font-size:10pt!important}.total-line{font-size:8pt!important;padding-top:1.5mm!important;margin-top:1.5mm!important}.total-line strong{font-size:10pt!important;}
}

/* v109 - modal de pagos con selects IPTEL y validación elegante */
.iptel-payment-grid .payment-field{position:relative;display:block;background:linear-gradient(180deg,#ffffff,#f8fbff);border:1px solid #dbeafe;border-radius:18px;padding:12px 13px 10px;box-shadow:0 10px 25px rgba(15,54,104,.06);transition:.18s ease;}
.iptel-payment-grid .payment-field>span{display:flex;align-items:center;gap:5px;margin-bottom:7px;font-weight:950;color:#0b3f8a;letter-spacing:.01em;}
.iptel-payment-grid .payment-field>span b{color:#ef4444;font-size:15px;}
.iptel-payment-grid .payment-field:focus-within{border-color:#f97316;box-shadow:0 0 0 4px rgba(249,115,22,.14),0 14px 34px rgba(15,54,104,.09);transform:translateY(-1px);}
.iptel-select-wrap{position:relative;}
.iptel-select-wrap:after{content:'⌄';position:absolute;right:12px;top:50%;transform:translateY(-55%);width:30px;height:30px;border-radius:12px;background:linear-gradient(135deg,#0b3f8a,#1464c7);color:white;display:grid;place-items:center;font-weight:1000;pointer-events:none;box-shadow:0 8px 18px rgba(11,63,138,.22);}
.payment-grid .iptel-select,.payment-grid select.iptel-select{appearance:none;-webkit-appearance:none;background:linear-gradient(135deg,#eef6ff 0%,#ffffff 56%,#fff7ed 100%)!important;border:1px solid #bfdbfe!important;border-radius:15px!important;color:#0f2f57!important;font-weight:950!important;min-height:46px;padding:11px 52px 11px 14px!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.8);cursor:pointer;}
.payment-grid .iptel-select option{background:#ffffff;color:#0f2f57;font-weight:800;padding:12px;}
.payment-grid input.payment-required,.payment-grid .payment-required[type=file],.payment-grid textarea{border-radius:15px!important;min-height:46px;}
.payment-grid input[type=file].payment-file{background:linear-gradient(135deg,#f8fbff,#fff7ed);border:1px dashed #93c5fd!important;color:#0b3f8a;font-weight:900;cursor:pointer;}
.payment-grid input[type=file].payment-file::file-selector-button{border:0;border-radius:12px;background:linear-gradient(135deg,#0b3f8a,#f97316);color:white;font-weight:950;padding:9px 12px;margin-right:12px;cursor:pointer;}
.field-error{display:none;margin-top:7px;color:#b91c1c;font-weight:900;font-size:12px;}
.payment-field.has-error{border-color:#ef4444!important;background:linear-gradient(180deg,#fff7f7,#fff)!important;box-shadow:0 0 0 4px rgba(239,68,68,.12),0 14px 30px rgba(185,28,28,.08)!important;}
.payment-field.has-error .field-error{display:block;}
.payment-field.has-error .iptel-select-wrap:after{background:linear-gradient(135deg,#b91c1c,#ef4444);}
.payment-grid .input-error,.payment-field.has-error input,.payment-field.has-error select,.payment-field.has-error textarea{border-color:#ef4444!important;background:#fffafa!important;}
.payment-review-error{background:linear-gradient(135deg,#fef2f2,#fff7ed)!important;border-left-color:#ef4444!important;}
.payment-review-error strong{color:#b91c1c;}
@media(max-width:760px){.iptel-payment-grid .payment-field{padding:11px}.iptel-select-wrap:after{right:9px}.payment-grid .iptel-select{padding-right:48px!important;}}

/* v110 - modal de pagos: selects customizados y auditoría visible */
.payment-fancy-select{position:relative;width:100%;}
.payment-fancy-select .native-hidden-select{position:absolute!important;opacity:0!important;pointer-events:none!important;width:1px!important;height:1px!important;left:-9999px!important;}
.payment-fancy-trigger{width:100%;min-height:48px;border:1px solid #bfdbfe;border-radius:16px;padding:11px 48px 11px 14px;background:radial-gradient(circle at top right,rgba(249,115,22,.18),transparent 35%),linear-gradient(135deg,#f8fbff,#ffffff);color:#0f2f57;font-weight:950;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;box-shadow:0 10px 24px rgba(11,63,138,.08);text-align:left;}
.payment-fancy-trigger b{position:absolute;right:12px;width:30px;height:30px;border-radius:12px;background:linear-gradient(135deg,#0b3f8a,#f97316);color:white;display:grid;place-items:center;font-weight:1000;transition:.18s ease;}
.payment-fancy-select.is-open .payment-fancy-trigger{border-color:#f97316;box-shadow:0 0 0 4px rgba(249,115,22,.14),0 18px 38px rgba(11,63,138,.16);}
.payment-fancy-select.is-open .payment-fancy-trigger b{transform:rotate(180deg);}
.payment-fancy-menu{display:none;position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:30000;max-height:260px;overflow:auto;padding:10px;border-radius:22px;background:radial-gradient(circle at top right,rgba(249,115,22,.20),transparent 36%),linear-gradient(180deg,#ffffff,#eef6ff);border:1px solid rgba(11,63,138,.18);box-shadow:0 28px 70px rgba(8,40,73,.32);}
.payment-fancy-select.is-open .payment-fancy-menu{display:grid;gap:8px;}
.payment-fancy-option{width:100%;border:1px solid #e5edf7;border-radius:16px;padding:12px 13px;background:linear-gradient(135deg,#ffffff,#f8fbff);color:#0f335a;font-weight:900;text-align:left;display:flex;justify-content:space-between;align-items:center;gap:10px;cursor:pointer;box-shadow:0 8px 18px rgba(15,23,42,.045);}
.payment-fancy-option:before{content:'';width:9px;height:9px;border-radius:50%;background:linear-gradient(135deg,#0b3f8a,#f97316);box-shadow:0 0 0 4px rgba(11,63,138,.06);flex:0 0 auto;}
.payment-fancy-option:hover{background:linear-gradient(135deg,#0b3f8a,#082849);color:#fff;border-color:rgba(255,255,255,.28);transform:translateY(-1px);box-shadow:0 16px 32px rgba(11,63,138,.22);}
.payment-fancy-option.is-selected{background:linear-gradient(135deg,#f97316,#ffb45d);color:#102033;border-color:rgba(249,115,22,.34);}
.payment-fancy-option strong{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#0b3f8a;background:rgba(255,255,255,.55);border-radius:999px;padding:4px 8px;}
.payment-field.has-error .payment-fancy-trigger{border-color:#ef4444!important;background:#fffafa!important;box-shadow:0 0 0 4px rgba(239,68,68,.12)!important;}
.payment-audit-card{border:1px solid #dbeafe;background:linear-gradient(135deg,#f8fbff,#fff);box-shadow:0 16px 38px rgba(11,63,138,.08);}
.payment-audit-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid #e5edf7;}
.payment-audit-head span{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:#f97316;font-weight:950;}.payment-audit-head h3{margin:2px 0 0;color:#0b3f8a;}.payment-audit-head small{color:#64748b;font-weight:800;}
.payment-audit-item{grid-template-columns:1.1fr 1fr 1.15fr 1.5fr auto!important;background:radial-gradient(circle at top right,rgba(249,115,22,.12),transparent 36%),linear-gradient(135deg,#ffffff,#f8fbff)!important;border:1px solid #dbeafe!important;}
.payment-audit-item span{display:block;color:#0b3f8a!important;font-weight:950!important;}.payment-audit-item small{display:block;color:#64748b!important;font-weight:750!important;margin-top:2px;}.payment-audit-obs{padding:9px 11px;border-radius:14px;background:#fff;border:1px dashed #bfdbfe;}.payment-audit-actions{text-align:right;}
@media(max-width:900px){.payment-audit-head{align-items:flex-start;flex-direction:column}.payment-audit-item{grid-template-columns:1fr!important}.payment-audit-actions{text-align:left}.payment-fancy-menu{position:relative;top:8px;}}


/* v111 - pagos: dropdown siempre visible y auditoría más clara */
.payment-modal-backdrop{z-index:120000!important;}
.payment-modal-card{overflow:visible!important;max-height:none!important;}
.payment-grid,.iptel-payment-grid{position:relative;overflow:visible!important;}
.iptel-payment-grid .payment-field{overflow:visible!important;}
.iptel-payment-grid .payment-field.payment-select-open,
.iptel-payment-grid .payment-field:has(.payment-fancy-select.is-open){z-index:130000!important;transform:translateY(-1px);}
.payment-fancy-select{z-index:1;}
.payment-fancy-select.is-open{z-index:140000!important;}
.payment-fancy-select.is-open .payment-fancy-menu{z-index:150000!important;display:grid!important;position:absolute!important;top:calc(100% + 10px)!important;left:0!important;right:auto!important;width:min(360px, calc(96vw - 56px))!important;min-width:100%!important;max-height:320px!important;overflow:auto!important;}
.payment-field:nth-child(2) .payment-fancy-select.is-open .payment-fancy-menu{right:0!important;left:auto!important;}
.payment-fancy-menu{isolation:isolate;}
.payment-audit-card{padding:18px!important;border-radius:24px!important;background:radial-gradient(circle at top right,rgba(249,115,22,.14),transparent 38%),linear-gradient(135deg,#f8fbff 0%,#ffffff 52%,#fff7ed 100%)!important;border:1px solid rgba(11,63,138,.16)!important;box-shadow:0 22px 55px rgba(11,63,138,.12)!important;}
.payment-audit-head{background:linear-gradient(135deg,#0b3f8a,#0b4ea2)!important;color:#fff!important;border:0!important;border-radius:20px!important;padding:16px 18px!important;margin-bottom:16px!important;align-items:center!important;}
.payment-audit-head span{color:#ffb45d!important;}.payment-audit-head h3{color:#fff!important;}.payment-audit-head small{color:#dbeafe!important;}
.payment-audit-item{display:grid!important;grid-template-columns:1.05fr 1fr 1.1fr 1.35fr auto!important;gap:12px!important;align-items:stretch!important;padding:14px!important;margin-bottom:12px!important;border-radius:20px!important;background:linear-gradient(135deg,#ffffff,#f8fbff)!important;border:1px solid #dbeafe!important;box-shadow:0 12px 28px rgba(15,54,104,.08)!important;}
.payment-audit-item>div{padding:10px 12px;border-radius:15px;background:#fff;border:1px solid #eef2f7;}
.payment-audit-item>div:first-child{background:linear-gradient(135deg,#fff7ed,#ffffff);border-color:#fed7aa;}
.payment-audit-item b{display:block;color:#0b3f8a!important;font-size:17px!important;}
.payment-audit-obs{background:linear-gradient(135deg,#eef6ff,#fff)!important;border:1px dashed #93c5fd!important;}
.payment-audit-actions{display:flex;align-items:center;justify-content:flex-end;background:transparent!important;border:0!important;padding:0!important;}
.payment-audit-actions .btn{white-space:nowrap;}
@media(max-width:900px){
  .payment-modal-card{overflow:auto!important;max-height:92vh!important;}
  .payment-fancy-select.is-open .payment-fancy-menu{position:relative!important;top:8px!important;width:100%!important;max-height:260px!important;}
  .payment-audit-item{grid-template-columns:1fr!important;}
  .payment-audit-actions{justify-content:flex-start!important;}
}

/* v113 - auditoría financiera expansible, descarga de anexos e impresión completa */
.payment-audit-item{grid-template-columns:1.05fr 1fr 1.15fr 1.35fr auto!important;align-items:start;background:linear-gradient(135deg,#f8fbff,#ffffff)!important;border:1px solid rgba(11,63,138,.14)!important;box-shadow:0 12px 30px rgba(11,63,138,.07);}
.payment-audit-item>div:first-child b{font-size:18px;color:#0b3f8a;letter-spacing:-.02em;}
.payment-audit-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:nowrap;}
.payment-audit-actions .btn{white-space:nowrap;}
.audit-toggle{background:linear-gradient(135deg,#eef6ff,#ffffff)!important;border:1px solid #bfdbfe!important;color:#0b3f8a!important;}
.payment-audit-detail-panel{grid-column:1/-1;display:grid;grid-template-columns:1.3fr minmax(190px,290px);gap:18px;margin-top:12px;padding:16px;border-radius:22px;background:radial-gradient(circle at top right,rgba(249,115,22,.18),transparent 35%),linear-gradient(135deg,#082849,#0b3f8a 62%,#f97316 160%);color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 18px 40px rgba(8,40,73,.22);}
.payment-audit-detail-panel[hidden]{display:none!important;}
.audit-kicker{display:inline-flex;border-radius:999px;padding:5px 10px;background:rgba(255,255,255,.16);font-size:11px;text-transform:uppercase;letter-spacing:.10em;font-weight:950;color:#ffd4ad;}
.payment-audit-detail-copy h4{margin:8px 0 10px;font-size:22px;color:#fff;}
.payment-audit-detail-copy p{margin:6px 0;color:#eef6ff;font-weight:750;}.payment-audit-detail-copy b{color:#fff;}
.payment-audit-preview{min-height:160px;border-radius:18px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.26);overflow:hidden;display:block;text-decoration:none;box-shadow:0 14px 30px rgba(0,0,0,.20);}
.payment-audit-preview img{width:100%;height:100%;max-height:230px;object-fit:contain;background:#fff;display:block;}
.payment-file-fallback{display:none;width:100%;height:180px;place-items:center;text-align:center;color:#fff;font-weight:900;background:linear-gradient(135deg,rgba(255,255,255,.18),rgba(255,255,255,.08));}.payment-file-fallback b{color:#ffd4ad;}
@media(max-width:860px){.payment-audit-item{grid-template-columns:1fr!important}.payment-audit-detail-panel{grid-template-columns:1fr}.payment-audit-actions{justify-content:flex-start;flex-wrap:wrap}.payment-audit-actions .btn{flex:1 1 150px;text-align:center}}

@media print{
  @page{size:A4 landscape;margin:6mm;}
  html,body{background:#fff!important;width:auto!important;min-height:auto!important;}
  .sidebar,.topbar,.messages,.no-print,.app-watermark,.payment-modal-backdrop,.payment-history,.discount-card,.grid.two.no-print{display:none!important;}
  .main{margin:0!important;padding:0!important;width:100%!important;max-width:none!important;}
  .invoice-sheet.invoice-corporate{width:100%!important;max-width:none!important;margin:0!important;padding:6mm!important;box-sizing:border-box;border:1px solid #dbeafe!important;border-top:6px solid #0b3f8a!important;border-radius:0!important;box-shadow:none!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;}
  .invoice-header.compact{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:6mm!important;border-bottom:2px solid #f97316!important;margin-bottom:4mm!important;padding-bottom:3mm!important;}
  .invoice-logo{max-width:40mm!important;max-height:15mm!important;object-fit:contain!important;}
  .invoice-number{text-align:right!important}.invoice-number h2{font-size:13pt!important;margin:0 0 1.5mm!important;color:#0b3f8a!important;}
  .invoice-summary-row{display:grid!important;grid-template-columns:2fr 1fr 1.1fr!important;gap:3mm!important;margin-bottom:4mm!important;}
  .invoice-summary-row>div{background:#f8fbff!important;border:1px solid #dbeafe!important;border-radius:3mm!important;padding:2.5mm!important;}
  .invoice-summary-row strong{font-size:9pt!important}.invoice-summary-row small,.invoice-summary-row span{font-size:7.5pt!important;}
  .invoice-table-wrap{overflow:visible!important;border:1px solid #dbeafe!important;border-radius:3mm!important;}
  .invoice-table{width:100%!important;table-layout:fixed!important;border-collapse:collapse!important;font-size:6.8pt!important;display:table!important;}
  .invoice-table thead{display:table-header-group!important}.invoice-table tbody{display:table-row-group!important}.invoice-table tr{display:table-row!important;break-inside:avoid!important;}.invoice-table th,.invoice-table td{display:table-cell!important;padding:1.5mm .9mm!important;word-break:break-word!important;overflow-wrap:anywhere!important;vertical-align:top!important;line-height:1.25!important;}
  .invoice-table th{background:#0b3f8a!important;color:#fff!important;}
  .invoice-table th:nth-child(1),.invoice-table td:nth-child(1){width:17%!important;}
  .invoice-table th:nth-child(2),.invoice-table td:nth-child(2){width:8%!important;}
  .invoice-table th:nth-child(3),.invoice-table td:nth-child(3){width:26%!important;}
  .invoice-table th:nth-child(4),.invoice-table td:nth-child(4){width:6%!important;}
  .invoice-table th:nth-child(5),.invoice-table td:nth-child(5){width:5%!important;}
  .invoice-table th:nth-child(6),.invoice-table td:nth-child(6){width:10%!important;}
  .invoice-table th:nth-child(7),.invoice-table td:nth-child(7){width:10%!important;}
  .invoice-table th:nth-child(8),.invoice-table td:nth-child(8){width:8%!important;}
  .invoice-table th:nth-child(9),.invoice-table td:nth-child(9){width:10%!important;}
  .invoice-table th:nth-child(10),.invoice-table td:nth-child(10){display:none!important;}
  .invoice-footer-grid{display:grid!important;grid-template-columns:1.35fr .75fr!important;gap:4mm!important;margin-top:4mm!important;}
  .invoice-note,.invoice-total-box{break-inside:avoid!important;border-radius:3mm!important;padding:3mm!important;}
  .invoice-total-box h3{font-size:10pt!important}.total-line{font-size:8pt!important;padding-top:1mm!important;margin-top:1mm!important}.total-line strong{font-size:9pt!important;}
}

/* v114 - auditoría financiera y autorizaciones más limpias */
.payment-audit-detail-panel{align-items:start;overflow:hidden;}
.payment-audit-preview{height:150px;max-height:150px;min-height:150px;display:grid;place-items:center;padding:8px;background:linear-gradient(135deg,rgba(255,255,255,.92),rgba(255,255,255,.72));}
.payment-audit-preview img{width:100%!important;height:100%!important;max-width:100%!important;max-height:134px!important;object-fit:contain!important;border-radius:12px;background:#fff;box-shadow:0 8px 18px rgba(8,40,73,.18);}
.payment-file-fallback{height:100%;width:100%;display:none;place-items:center;text-align:center;border-radius:14px;background:rgba(255,255,255,.14);color:#fff;font-weight:800;}
.payment-audit-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:flex-end;}
.payment-audit-actions .btn{white-space:nowrap;}
.finance-auth-cell{min-width:260px;}
.finance-decision-form{display:grid;gap:8px;min-width:260px;padding:10px;border-radius:16px;background:linear-gradient(135deg,#f8fbff,#fff7ed);border:1px solid rgba(2,61,128,.10);box-shadow:0 8px 20px rgba(8,40,73,.08);}
.finance-decision-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#0b3f8a;font-weight:900;}
.finance-decision-form textarea{width:100%;resize:vertical;min-height:52px;border-radius:12px;border:1px solid #dbe7f5;padding:10px 12px;background:#fff;color:#10243f;font-weight:700;outline:none;}
.finance-decision-form textarea:focus{border-color:#f97316;box-shadow:0 0 0 4px rgba(249,115,22,.14);}
.finance-decision-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.finance-decision-done{display:flex;align-items:center;gap:10px;min-width:260px;}
.finance-comment-card{flex:1;min-width:160px;padding:9px 11px;border-radius:14px;background:linear-gradient(135deg,#eef6ff,#fff);border:1px solid rgba(2,61,128,.10);box-shadow:0 8px 18px rgba(8,40,73,.07);}
.finance-comment-card span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#64748b;font-weight:900;margin-bottom:3px;}
.finance-comment-card strong{display:block;color:#0f2748;font-size:13px;line-height:1.25;word-break:break-word;}
@media(max-width:900px){.finance-decision-done{align-items:stretch;flex-direction:column}.finance-auth-cell,.finance-decision-form,.finance-decision-done{min-width:0}.payment-audit-preview{height:130px;min-height:130px;max-height:130px}.payment-audit-preview img{max-height:114px!important}}

/* v115 - auditoría financiera en facturas */
.discount-audit-item {
  border-left: 5px solid #f97316;
  background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(255,247,237,.94));
}
.discount-audit-item .payment-audit-obs small {
  display: block;
  margin-top: 4px;
}
.discount-audit-item .status-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  margin-bottom: 4px;
}

/* v116 factura acciones y descuento modal */
.invoice-top-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:flex-end}
.approvals-card-full{border-top:5px solid var(--iptel-orange);box-shadow:var(--shadow-soft)}
.discount-modal-card{max-width:760px;background:linear-gradient(180deg,#ffffff,#f7fbff);border:1px solid rgba(0,90,169,.16)}
.discount-modal-head{background:linear-gradient(135deg,rgba(0,90,169,.08),rgba(255,122,0,.10));border-radius:18px;padding:14px;margin-bottom:14px}
.discount-modal-head img{width:132px;height:auto;object-fit:contain;background:#fff;border-radius:14px;padding:8px;box-shadow:0 10px 24px rgba(8,40,73,.12)}
.discount-modal-form select,.discount-modal-form input,.discount-modal-form textarea{width:100%;border:1px solid var(--border);border-radius:14px;padding:12px 13px;background:#fff;outline:none;font-weight:800;color:var(--text)}
.discount-modal-form textarea{min-height:96px;resize:vertical}
.discount-modal-form select:focus,.discount-modal-form input:focus,.discount-modal-form textarea:focus{border-color:var(--iptel-blue-2);box-shadow:0 0 0 4px rgba(0,90,169,.12)}
.discount-review-panel{margin-top:14px;border-radius:20px;padding:16px 18px;background:linear-gradient(135deg,var(--iptel-blue),var(--iptel-blue-2));color:#fff;box-shadow:0 14px 30px rgba(0,90,169,.22)}
.discount-review-panel span{text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:900;opacity:.86}
.discount-review-panel h3{margin:5px 0 6px;color:#fff}.discount-review-panel p{margin:0;color:rgba(255,255,255,.88);font-weight:700}
.discount-review-panel.payment-review-error{background:linear-gradient(135deg,#b42318,#f04438)}
.discount-modal-form .payment-field.has-error{border-color:#f04438!important;background:rgba(244,67,54,.06)}
.discount-modal-form .payment-field.has-error .field-error{display:block;color:#b42318;font-weight:900}.discount-modal-form .field-error{display:none}
@media(max-width:760px){.invoice-top-actions{justify-content:flex-start}.invoice-top-actions .btn{width:100%;justify-content:center}.discount-modal-card{max-width:calc(100vw - 22px)}}

/* v117 - factura descuentos modal */
.discount-select-wrap .payment-fancy-menu{width:min(620px, calc(96vw - 56px))!important;max-height:340px!important;}
.discount-select-field.payment-full .payment-fancy-select.is-open .payment-fancy-menu{width:min(780px, calc(96vw - 56px))!important;}
.discount-modal-card .payment-field:has(.payment-fancy-select.is-open){z-index:160000!important;}
.discount-modal-card .payment-fancy-select.is-open{z-index:170000!important;}
.discount-modal-card .payment-fancy-menu{z-index:180000!important;}
.discount-audit-item{border-left:5px solid #f97316;}

/* v118 - impresión de factura: tabla completa sin superposición */
@media print{
  @page{size:A4 landscape;margin:6mm;}
  .invoice-table-wrap{
    width:100%!important;
    max-width:100%!important;
    overflow:visible!important;
    border-radius:3mm!important;
  }
  .invoice-table,
  .invoice-table.compact-table{
    width:100%!important;
    max-width:100%!important;
    table-layout:fixed!important;
    border-collapse:collapse!important;
    font-size:6.4pt!important;
    line-height:1.22!important;
  }
  .invoice-table th,
  .invoice-table td,
  .invoice-table.compact-table th,
  .invoice-table.compact-table td{
    white-space:normal!important;
    word-break:break-word!important;
    overflow-wrap:anywhere!important;
    hyphens:auto!important;
    overflow:visible!important;
    text-overflow:clip!important;
    vertical-align:top!important;
    padding:1.35mm .8mm!important;
    box-sizing:border-box!important;
  }
  .invoice-table td small,
  .invoice-table td b,
  .invoice-table td span,
  .invoice-table td .badge{
    white-space:normal!important;
    word-break:break-word!important;
    overflow-wrap:anywhere!important;
    max-width:100%!important;
  }
  .invoice-table th:nth-child(1),.invoice-table td:nth-child(1){width:15%!important;}
  .invoice-table th:nth-child(2),.invoice-table td:nth-child(2){width:7%!important;}
  .invoice-table th:nth-child(3),.invoice-table td:nth-child(3){width:28%!important;}
  .invoice-table th:nth-child(4),.invoice-table td:nth-child(4){width:6%!important;text-align:center!important;}
  .invoice-table th:nth-child(5),.invoice-table td:nth-child(5){width:5%!important;text-align:center!important;}
  .invoice-table th:nth-child(6),.invoice-table td:nth-child(6){width:10%!important;text-align:right!important;}
  .invoice-table th:nth-child(7),.invoice-table td:nth-child(7){width:10%!important;text-align:right!important;}
  .invoice-table th:nth-child(8),.invoice-table td:nth-child(8){width:9%!important;}
  .invoice-table th:nth-child(9),.invoice-table td:nth-child(9){width:10%!important;}
  .invoice-table th:nth-child(10),.invoice-table td:nth-child(10){display:none!important;}
  .invoice-table tr{break-inside:avoid!important;page-break-inside:avoid!important;}
  .invoice-table .badge{
    display:inline-block!important;
    padding:2px 4px!important;
    font-size:5.8pt!important;
    line-height:1.15!important;
  }
}


/* v119 - impresión factura bonita y popups restaurados */
@media print{
  @page{size:A4 landscape;margin:7mm;}
  body{background:#fff!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;}
  .no-print,.page-head.no-print,.payment-modal-backdrop,.discount-modal-backdrop{display:none!important;}
  .invoice-sheet.invoice-corporate{padding:7mm!important;border-top:7px solid #0b3f8a!important;box-shadow:none!important;}
  .invoice-table-wrap{border:1px solid #bfdbfe!important;border-radius:4mm!important;overflow:visible!important;background:#fff!important;}
  .invoice-table{border-collapse:separate!important;border-spacing:0!important;table-layout:fixed!important;width:100%!important;font-size:6.7pt!important;line-height:1.22!important;}
  .invoice-table thead th{background:#0b3f8a!important;color:#fff!important;border-right:1px solid rgba(255,255,255,.25)!important;padding:2mm 1mm!important;text-transform:uppercase!important;letter-spacing:.02em!important;}
  .invoice-table tbody td{border-bottom:1px solid #dbeafe!important;border-right:1px solid #eaf2ff!important;padding:1.7mm 1mm!important;vertical-align:top!important;white-space:normal!important;word-break:normal!important;overflow-wrap:anywhere!important;hyphens:auto!important;overflow:visible!important;text-overflow:clip!important;}
  .invoice-table tbody tr:nth-child(even) td{background:#f8fbff!important;}
  .invoice-table th:nth-child(1),.invoice-table td:nth-child(1){width:15%!important;}
  .invoice-table th:nth-child(2),.invoice-table td:nth-child(2){width:7%!important;}
  .invoice-table th:nth-child(3),.invoice-table td:nth-child(3){width:30%!important;}
  .invoice-table th:nth-child(4),.invoice-table td:nth-child(4){width:6%!important;text-align:center!important;}
  .invoice-table th:nth-child(5),.invoice-table td:nth-child(5){width:5%!important;text-align:center!important;}
  .invoice-table th:nth-child(6),.invoice-table td:nth-child(6){width:10%!important;text-align:right!important;}
  .invoice-table th:nth-child(7),.invoice-table td:nth-child(7){width:10%!important;text-align:right!important;font-weight:800!important;color:#0b3f8a!important;}
  .invoice-table th:nth-child(8),.invoice-table td:nth-child(8){width:8%!important;}
  .invoice-table th:nth-child(9),.invoice-table td:nth-child(9){width:9%!important;}
  .invoice-table th:nth-child(10),.invoice-table td:nth-child(10){display:none!important;}
  .invoice-table td *{max-width:100%!important;white-space:normal!important;overflow-wrap:anywhere!important;}
  .invoice-table .badge{display:inline-block!important;font-size:5.8pt!important;padding:1.2mm!important;line-height:1.1!important;}
  .invoice-footer-grid{display:grid!important;grid-template-columns:1.3fr .8fr!important;gap:5mm!important;align-items:start!important;}
  .payment-history,.payment-audit-card{break-inside:avoid!important;page-break-inside:avoid!important;}
}
.payment-modal-backdrop[hidden],.discount-modal-backdrop[hidden]{display:none!important;}
.payment-modal-backdrop,.discount-modal-backdrop{z-index:140000!important;}
.payment-modal-card,.discount-modal-card{z-index:150000!important;}
.payment-fancy-select.is-open .payment-fancy-menu{z-index:220000!important;}

/* v120 - Resolución de descuentos financieros */
.finance-resolve-hero{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;background:linear-gradient(135deg,#062b63,#0a4fa3 55%,#f28c28);color:#fff;border-radius:24px;padding:24px;box-shadow:0 18px 45px rgba(6,43,99,.22);margin-bottom:18px}
.finance-resolve-hero h1{margin:4px 0;font-size:28px}.finance-resolve-hero .muted{color:rgba(255,255,255,.84)}.finance-resolve-badge{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.35);padding:10px 14px;border-radius:999px;font-weight:800}
.finance-resolve-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:18px}.finance-resolve-card{border:1px solid #e5e7eb;border-radius:22px;padding:20px;background:#fff;box-shadow:0 14px 32px rgba(15,23,42,.08)}
.finance-resolve-card h2{margin-top:0}.finance-resolve-data{display:grid;gap:12px}.finance-resolve-data div{display:flex;justify-content:space-between;gap:18px;padding:12px 0;border-bottom:1px solid #eef2f7}.finance-resolve-data div:last-child{border-bottom:0}.finance-resolve-data span{color:#64748b}.finance-resolve-data strong{text-align:right;color:#0f172a}
.finance-decision-box textarea{width:100%;min-height:120px;border-radius:16px;border:1px solid #cbd5e1;padding:14px;font-size:15px;resize:vertical}.finance-decision-box textarea:focus{outline:3px solid rgba(242,140,40,.2);border-color:#f28c28}.finance-decision-actions-big{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px}.finance-decision-actions-big .btn{padding:12px 18px;border-radius:14px}.btn-danger-soft{background:#fee2e2!important;color:#991b1b!important;border:1px solid #fecaca!important}.btn-danger-soft:hover{background:#fecaca!important}
.finance-resolve-note{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;border-radius:16px;padding:12px;margin-top:12px}.finance-resolve-done{background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px;padding:14px;margin-top:14px}
.finance-table-action-stack{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.finance-table-comment{display:block;margin-top:8px;padding:8px 10px;border-radius:12px;background:#f8fafc;border:1px solid #e2e8f0;color:#475569;max-width:260px;white-space:normal}
@media(max-width:850px){.finance-resolve-hero,.finance-resolve-grid{grid-template-columns:1fr}.finance-resolve-data div{display:block}.finance-resolve-data strong{text-align:left;display:block;margin-top:4px}}

/* v121 - contraste auditoría de pagos y transferencia automática de descuentos */
.payment-audit-detail-panel .audit-toggle,
.payment-audit-detail-panel .btn,
.payment-audit-actions .audit-toggle,
.payment-audit-actions .btn.secondary.audit-toggle{
  background:linear-gradient(135deg,#ffedd5,#ffffff)!important;
  color:#082849!important;
  border:1px solid rgba(249,115,22,.55)!important;
  box-shadow:0 8px 18px rgba(249,115,22,.18)!important;
  text-shadow:none!important;
}
.payment-audit-actions .audit-toggle:hover,
.payment-audit-actions .btn.secondary.audit-toggle:hover{
  background:linear-gradient(135deg,#f97316,#fb923c)!important;
  color:#ffffff!important;
  border-color:#f97316!important;
}
.payment-audit-detail-panel,
.payment-audit-detail-panel *{
  color-scheme:light!important;
}
.payment-audit-detail-copy p,
.payment-audit-detail-copy small{
  color:#eef6ff!important;
}
.payment-audit-detail-copy b,
.payment-audit-detail-copy h4{
  color:#ffffff!important;
}
.finance-transfer-alert{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:14px;
  align-items:start;
  padding:14px;
  margin:8px 0 14px;
  border-radius:20px;
  background:linear-gradient(135deg,#fff7ed,#eef6ff);
  border:1px solid rgba(249,115,22,.35);
  box-shadow:0 14px 30px rgba(8,40,73,.10);
}
.finance-transfer-icon{
  width:42px;height:42px;border-radius:16px;
  display:grid;place-items:center;
  background:linear-gradient(135deg,#0b3f8a,#f97316);
  color:#fff;font-size:22px;font-weight:950;
  box-shadow:0 12px 24px rgba(11,63,138,.18);
}
.finance-transfer-alert b{display:block;color:#0b3f8a;font-size:16px;margin-bottom:4px;}
.finance-transfer-alert p{margin:0 0 8px;color:#334155;font-weight:700;line-height:1.45;}
.finance-transfer-check{display:flex!important;gap:8px;align-items:center;padding:10px 12px;border-radius:14px;background:#fff;border:1px solid rgba(11,63,138,.12);font-weight:900;color:#0b3f8a!important;}
.finance-transfer-check input{accent-color:#f97316;width:18px;height:18px;}


/* v122 - resumen de factura con descuento aplicado */
.total-line.discount-applied {
  background: linear-gradient(135deg, rgba(255, 122, 0, 0.10), rgba(0, 84, 166, 0.08));
  border: 1px solid rgba(255, 122, 0, 0.28);
  border-radius: 14px;
  padding: 10px 12px;
  color: #8a3b00;
}
.total-line.discount-applied strong {
  color: #c95000;
  font-weight: 900;
}
@media print {
  .total-line.discount-applied {
    background: #fff4e8 !important;
    border: 1px solid #f0b36b !important;
    color: #7a3500 !important;
  }
}

/* v123 - contraste legível no Detalle financiero da auditoría de pagos */
.payment-audit-detail-panel{
  background:linear-gradient(135deg,#ffffff 0%,#f8fbff 58%,#fff7ed 100%)!important;
  color:#0f2748!important;
  border:1px solid #bfdbfe!important;
  box-shadow:0 18px 40px rgba(8,40,73,.16)!important;
}
.payment-audit-detail-panel,
.payment-audit-detail-panel *{
  text-shadow:none!important;
}
.payment-audit-detail-copy{
  background:#ffffff!important;
  border:1px solid #dbeafe!important;
  border-radius:18px!important;
  padding:14px!important;
}
.payment-audit-detail-copy h4,
.payment-audit-detail-copy p,
.payment-audit-detail-copy small,
.payment-audit-detail-copy b{
  color:#0f2748!important;
}
.payment-audit-detail-copy p{
  font-weight:750!important;
}
.payment-audit-detail-copy b{
  display:inline!important;
  font-weight:950!important;
}
.payment-audit-detail-copy .audit-kicker{
  background:#fff7ed!important;
  color:#c2410c!important;
  border:1px solid #fed7aa!important;
}
.payment-audit-preview{
  background:#ffffff!important;
  border:1px solid #dbeafe!important;
}
.payment-file-fallback{
  color:#0f2748!important;
  background:#f8fbff!important;
  border:1px dashed #93c5fd!important;
}
.payment-file-fallback b{
  color:#c2410c!important;
}

/* v124 - modal de factibilidad/materiales/equipos en ticket de instalación */
.ticket-modal-overlay{position:fixed;inset:0;background:rgba(15,23,42,.62);display:none;align-items:center;justify-content:center;z-index:9999;padding:24px}.ticket-modal-overlay.open{display:flex}.ticket-modal-card{background:#fff;color:#0f172a;width:min(1120px,96vw);max-height:92vh;overflow:auto;border-radius:22px;box-shadow:0 24px 80px rgba(15,23,42,.35);padding:24px}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border-bottom:1px solid #e5e7eb;padding-bottom:14px;margin-bottom:16px}.modal-head h2{margin:.2rem 0 0;color:#0f172a}.modal-close{border:0;background:#f1f5f9;color:#0f172a;border-radius:999px;width:38px;height:38px;font-size:24px;cursor:pointer}.modal-form h3{margin:18px 0 8px;color:#0f172a}.modal-grid p{margin:.35rem 0}.modal-grid label,.compact-form-table label{color:#334155;font-weight:700}.modal-form input,.modal-form select,.modal-form textarea,.compact-form-table input,.compact-form-table select{background:#fff;color:#0f172a;border:1px solid #cbd5e1;border-radius:10px;padding:9px;max-width:100%}.compact-form-table th{background:#f8fafc;color:#334155}.compact-form-table td{vertical-align:top}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;padding-top:14px;border-top:1px solid #e5e7eb}

/* v128 - fotos de catálogos y modal de factibilidad */
.catalog-photo img{background:#fff;}
.ticket-modal-overlay.open{display:flex!important;}
body.modal-open{overflow:hidden;}
.ticket-modal-card{border:1px solid rgba(255,255,255,.7);}
.modal-form .helptext{display:block;color:#64748b;font-size:12px;margin-top:4px;}
.modal-form .errorlist{margin:4px 0;color:#b91c1c;font-weight:800;}

/* v130 - popup factibilidad com design IPTEL e linhas adicionáveis */
.ticket-factibilidad-backdrop{background:rgba(4,20,44,.62)!important;z-index:140000!important;align-items:center;justify-content:center;padding:22px;backdrop-filter:blur(5px)}
.ticket-factibilidad-backdrop:not([hidden]){display:flex!important}.ticket-factibilidad-card{width:min(1180px,96vw)!important;max-height:92vh!important;overflow:auto!important;background:linear-gradient(180deg,#ffffff,#f7fbff)!important;border-radius:28px!important;color:var(--text,#0f172a)!important}.ticket-factibilidad-head{background:linear-gradient(135deg,rgba(0,90,169,.08),rgba(255,122,0,.10))!important}.ticket-factibilidad-form h3{margin:0 0 8px;color:#0b3f8a;font-weight:900}.ticket-factibilidad-form p{margin:0;color:#64748b;font-weight:700}.factibilidad-block{border:1px solid rgba(0,90,169,.12);background:#fff;border-radius:22px;padding:16px;margin:14px 0;box-shadow:0 10px 28px rgba(8,40,73,.06)}.factibilidad-section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.factibilidad-fields p{margin:.35rem 0}.ticket-factibilidad-form label{display:block;color:#334155;font-weight:900;margin-bottom:6px}.ticket-factibilidad-form input,.ticket-factibilidad-form select,.ticket-factibilidad-form textarea,.factibilidad-table input,.factibilidad-table select,.factibilidad-table textarea{width:100%;border:1px solid var(--border,#dbe3ef);border-radius:14px;padding:11px 12px;background:#fff;color:var(--text,#0f172a);font-weight:800;outline:none}.ticket-factibilidad-form input:focus,.ticket-factibilidad-form select:focus,.ticket-factibilidad-form textarea:focus,.factibilidad-table input:focus,.factibilidad-table select:focus,.factibilidad-table textarea:focus{border-color:var(--iptel-blue-2,#005aa9);box-shadow:0 0 0 4px rgba(0,90,169,.12)}.factibilidad-table{width:100%;border-collapse:separate;border-spacing:0 8px}.factibilidad-table th{background:#f1f7ff;color:#0b3f8a;font-weight:900;text-align:left;padding:10px;border:0}.factibilidad-table td{background:#fff;padding:8px;border-top:1px solid #e5eef8;border-bottom:1px solid #e5eef8;vertical-align:top}.factibilidad-table tr td:first-child{border-left:1px solid #e5eef8;border-radius:14px 0 0 14px}.factibilidad-table tr td:last-child{border-right:1px solid #e5eef8;border-radius:0 14px 14px 0}.delete-cell{min-width:90px;text-align:center}.delete-cell input[type=checkbox]{width:auto;margin:8px auto;display:none}.mini-remove-row{border:0;border-radius:999px;background:#fee2e2;color:#991b1b;font-weight:900;padding:8px 12px;cursor:pointer}.add-form-row{white-space:nowrap}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px;padding-top:14px;border-top:1px solid rgba(0,90,169,.12)}@media(max-width:760px){.factibilidad-section-title{flex-direction:column}.add-form-row,.modal-actions .btn{width:100%;justify-content:center}.factibilidad-table{min-width:820px}.ticket-factibilidad-card{max-width:calc(100vw - 18px)!important}}

/* v131 - selector popup obligatorio para materiales y equipos */
.ticket-resource-picker-backdrop{background:rgba(4,20,44,.68)!important;z-index:150000!important;align-items:center;justify-content:center;padding:22px;backdrop-filter:blur(6px)}
.ticket-resource-picker-backdrop:not([hidden]){display:flex!important}
.ticket-resource-picker-card{width:min(560px,94vw)!important;background:linear-gradient(180deg,#ffffff,#f7fbff)!important;border-radius:26px!important;color:#0f172a!important;box-shadow:0 28px 90px rgba(4,20,44,.35)!important}
.resource-picker-body{display:grid;gap:10px;padding:16px 0 4px}
.resource-picker-body label{color:#0b3f8a;font-weight:950;margin-top:4px}
.resource-picker-body select,.resource-picker-body input{width:100%;border:1px solid #dbe3ef;border-radius:14px;padding:12px;background:#fff;color:#0f172a;font-weight:850;outline:none}
.resource-picker-body select:focus,.resource-picker-body input:focus{border-color:#005aa9;box-shadow:0 0 0 4px rgba(0,90,169,.12)}
.resource-picker-error{border:1px solid #fecaca;background:#fff1f2;color:#991b1b;border-radius:14px;padding:10px;font-weight:900}


/* v132 - campos visibles de factibilidad y selector robusto */
.factibilidad-help{margin:0 0 12px!important;color:#64748b!important;font-weight:700!important}
.factibilidad-fields{gap:14px!important;margin-top:10px!important}
.factibilidad-fields .field-box{background:#f8fbff;border:1px solid #dbeafe;border-radius:16px;padding:12px}
.factibilidad-fields .full-span{grid-column:1/-1}
.factibilidad-check-field{display:flex;align-items:center;gap:10px}
.factibilidad-check-field label{margin:0!important}
.factibilidad-check-field input[type=checkbox]{width:auto!important;min-width:20px;height:20px}
.factibilidad-fields small{display:block;margin-top:5px;color:#64748b;font-weight:700}
.factibilidad-fields .errorlist{margin:6px 0 0;padding-left:18px;color:#b91c1c;font-weight:800}
