#logoBox img{object-fit:contain!important}.invoice-title,.summary-section .grand-total span.float-end{font-weight:700}@font-face{font-family:Satoshi;src:url("../font/Satoshi-Regular.otf") format("opentype");font-weight:400;font-style:normal;font-display:swap}:root{--oflite-bg:#EDEDEF;--oflite-card:#ffffff;--oflite-input:#F3F3F6;--oflite-border:#E0E2EB;--oflite-label:#6b6f7c;--oflite-title:#111827;--oflite-teal:#52b6ca;--oflite-teal-hover:#0091af;--oflite-navy:#070322;--oflite-green:#00c36b;--oflite-green-hover:#00ad5f}body.oflite-body{margin:0;background:var(--oflite-bg);font-family:Satoshi;min-height:100vh;display:flex;flex-direction:column}.oflite-shell{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:20px 0 0}.oflite-main{width:100%;max-width:920px}.invoice-card{width:100%;background:var(--oflite-card);box-shadow:0 20px 40px rgba(7,3,34,.12)}@media (min-width:768px){.invoice-card{padding:30px 32px}.facturacion-section .col-md-6 .fact-box{height:140px}.firma-wrapper .col-md-6.text-md-end{display:flex!important;justify-content:flex-end!important}.firma-wrapper #btnGenerar.btn-generate{width:auto!important;min-width:280px;padding:14px 28px!important}}.invoice-title{text-align:center;font-size:22px;letter-spacing:.01em;color:var(--oflite-title);margin:4px 0 22px}.invoice-section-title{font-size:15px;color:var(--oflite-title);margin-bottom:10px}.btn-danger,.firma-wrapper .placeholder-text{font-size:13px}.invoice-card .form-control,.invoice-card .form-select,.invoice-card textarea{border-radius:10px;border:1px solid var(--oflite-border);background-color:var(--oflite-input);font-size:13px}.invoice-card .form-control:focus,.invoice-card .form-select:focus,.invoice-card textarea:focus{box-shadow:0 0 0 1px rgba(0,167,199,.35);border-color:#52b6ca}.invoice-card label.form-label{font-size:14px;color:var(--oflite-label);margin-bottom:4px}.text-danger{color:var(--oflite-title)!important}.btn-danger{background-color:var(--oflite-teal)!important;border-color:var(--oflite-teal)!important;color:#000!important;font-weight:600;padding-inline:18px;border-radius:.375rem}.btn-danger:hover{background-color:var(--oflite-teal-hover)!important;border-color:var(--oflite-teal-hover)!important}.btn-outline-danger{color:var(--oflite-teal)!important;border-color:var(--oflite-teal)!important}.btn-outline-danger:hover{background-color:var(--oflite-teal)!important;border-color:var(--oflite-teal)!important;color:#fff!important}.btn-generate{background-color:var(--oflite-green)!important;border-color:var(--oflite-green)!important}#logoBox img,.oflite-main,.oflite-shell,header,main,section{background:0 0!important}.summary-section .block{border-radius:10px;background-color:#f6f6fa;border:1px solid #e3e4ee}.summary-section .grand-total{background-color:var(--oflite-navy)!important;color:#fff;border-radius:8px;padding:10px 16px;font-weight:600}.logo-card .image-preview{border-radius:12px;background-color:#f7f7fb}.firma-wrapper .signature-preview{min-height:64px;display:flex;align-items:center;justify-content:center;background-color:#f7f7fb;border-radius:10px!important}#logoBox img,.invoice-header .col-lg-4,.oflite-logo{display:block!important}footer.oflite-footer{margin-top:auto;background-color:var(--oflite-navy);color:#fff;width:100%}body.oflite-body{background:#ededef!important}.oflite-header{margin:12px 0 18px!important;text-align:center!important}.oflite-logo{max-width:260px!important;height:auto!important;margin:0 auto!important}#logoBox img,#logoBox>img,.logo-placeholder{height:100%!important}.oflite-page-title{margin:10px 0 0!important;font-size:22px!important;font-weight:700!important;color:#6b6f7c!important}.invoice-card{border-radius:16px!important;box-shadow:0 18px 40px rgba(7,3,34,.12)!important;padding:28px 28px 30px!important;margin-bottom:20px}.invoice-section-label{font-size:13px!important;font-weight:600!important;color:#9ca3af!important;margin-bottom:12px!important}.detail-label{font-size:15px!important;font-weight:600!important;color:#111827!important}.detail-control .form-control{font-size:13px!important;height:40px!important;border-radius:10px!important;background:#f3f3f6!important;border:1px solid #e0e2eb!important;padding:6px 12px;}.logo-placeholder{display:flex!important;align-items:center!important;justify-content:center!important}.logo-placeholder i{font-size:18px!important}#logoBox img{max-width:90%!important;max-height:90%!important;width:12%!important}.detail-row{display:grid!important;grid-template-columns:170px 1fr!important;gap:14px!important;align-items:center!important}.logo-card.compact{width:100%;padding:0!important;max-width:260px!important;height:180px!important;margin-top:28px!important}#logoBox.image-preview{padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important;position:relative!important}.logo-placeholder{display:flex!important;align-items:center!important;justify-content:center!important}.invoice-fields-wrap{display:flex!important;flex-direction:column!important}.detail-row{display:grid!important;grid-template-columns:190px 1fr!important;gap:18px!important;align-items:center!important;margin-bottom:16px!important}#logoBox.image-preview,.btn-trash-img,.logo-placeholder{display:flex!important;display:flex!important}#logoBox.image-preview{align-items:center!important;justify-content:center!important;overflow:hidden!important}.invoice-header .row{align-items:flex-start!important}#logoBox.image-preview,.logo-placeholder{align-items:center!important}#logoBox.image-preview{width:100%!important;height:87%!important;background:#f3f3f6!important;border:1px solid rgba(82,182,202,.45)!important;border-radius:12px!important;justify-content:center!important}.logo-placeholder{gap:10px!important;font-weight:600!important;color:#111827!important}.facturacion-section .form-label{font-size:13px;font-weight:600;color:#111827}.fact-box{resize:none;min-height:120px;background:#f3f3f6!important;border:1px solid #e0e2eb!important;border-radius:12px!important;padding:14px 16px!important;font-size:13px;line-height:1.4;cursor:pointer}.fact-box:hover{background:#eceef4!important}.fact-box::placeholder{color:#9ca3af;opacity:1}.btn-trash-img{align-items:center!important;justify-content:center!important;padding:0 10px!important;align-items:center!important;justify-content:center!important;background:0 0!important;border-color:#e0e2eb!important}.btn-trash-img:hover{border-color:#d7dae6!important;background:#f3f3f6!important}.btn-trash-img .trash-img{width:16px;height:16px;object-fit:contain;display:block;pointer-events:none}.logo-placeholder .upload-img{width:18px;height:18px;object-fit:contain;display:block}.logo-upload-img{max-width:90px;max-height:90px;width:auto;height:auto;object-fit:contain}.resume-line{display:grid;grid-template-columns:170px 1fr;align-items:center}.summary-section .form-select,.summary-section .input-group .form-control{background:#f3f3f6!important;border:0!important;border-radius:10px!important;height:40px!important}.summary-section .input-group{background:#f3f3f6;border-radius:10px;overflow:hidden}.summary-section .input-group-text{background:#ededef!important;border:0!important;font-weight:700}.resume-selectwrap .form-select{appearance:none;-webkit-appearance:none;-moz-appearance:none}.mini-breakdown{display:flex;flex-direction:column;align-items:flex-end}.mini-breakdown .row-line{width:100%;display:flex;justify-content:flex-end;gap:12px;text-align:right}.mini-breakdown .row-line .label{color:#6b7280;font-weight:500}.mini-breakdown .row-line .amount{font-weight:600;min-width:90px;text-align:right}.summary-section select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("logosOnFactu/iconos/PNG_FlechaSelect.png");background-repeat:no-repeat;background-position:right 14px center;background-size:14px 14px;padding-right:42px!important}.summary-section .block.subtotal{background:#f3f3f6!important;border:1px solid #e0e2eb!important;border-radius:12px!important;padding:14px 16px!important}.summary-section .block.subtotal .text-muted{color:#111827!important;font-weight:600;font-size:13px}.summary-section .block.subtotal .subtotal-valor{color:#111827!important;font-weight:700;font-size:13px}.resume-line{display:grid;grid-template-columns:1fr 220px;gap:18px;align-items:center}.resume-label{font-size:16px;font-weight:500;color:#0b0b2a;line-height:1.15}.summary-section .resume-line .form-control{height:44px!important;border-radius:12px!important;background:#f3f3f6!important;border:1px solid #e0e2eb!important;font-size:13px}.summary-section .resume-line .input-group-text{background:#eceef4!important;border:1px solid #e0e2eb!important;border-left:0!important;border-radius:0 12px 12px 0!important;font-weight:700;color:#0b0b2a;padding:0 16px}.resume-arrow{position:absolute;right:14px;top:50%;transform:translateY(-50%);width:14px;height:14px;object-fit:contain;pointer-events:none}.invoice-section-title{color:#0b0b2a;font-weight:800}.facturacion-section textarea,.summary-section textarea,section textarea{background:#f3f4f6!important;border:1px solid #e0e2eb!important;border-radius:12px!important;color:#0b0b2a;font-size:14px}.form-check-input{background-color:#e5e7eb;border-color:#e5e7eb}.form-check-input:checked{background-color:#22c55e!important;border-color:#22c55e!important}.form-check-input:focus{box-shadow:none!important}.btn-generate{border:#52b6ca!important;font-weight:800;font-size:16px;padding:16px 22px;border-radius:14px;background:#52b6ca!important;color:#000!important}textarea.muted-disabled,textarea:disabled{background:#f1f2f4!important;color:#9ca3af!important;border-color:#e5e7eb!important;cursor:not-allowed}textarea:disabled::placeholder{color:#9ca3af!important}.firma-wrapper .row{align-items:center!important}#firmaBox.signature-preview{background:#f3f3f6!important;border:1px dashed #ced4da!important;border-radius:12px!important;min-height:64px;padding:16px!important}@media (max-width:767.98px){.resume-line{grid-template-columns:1fr;gap:10px}.btn-generate,.resume-selectwrap,.resume-selectwrap .form-select{width:100%}.firma-wrapper #btnGenerar.btn-generate{width:100%!important}}.resume-selectwrap{position:relative;width:220px}.resume-selectwrap .form-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;height:44px!important;width:100%;border-radius:12px!important;background:#f3f3f6!important;border:1px solid #e0e2eb!important;font-size:13px;appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:56px!important;color:#0b0b2a}.resume-selectwrap .select-cap{position:absolute;top:1px;right:1px;height:calc(100% - 2px);width:52px;background:#eceef4;border-left:1px solid #e0e2eb;border-radius:0 11px 11px 0;display:flex;align-items:center;justify-content:center;pointer-events:none}.resume-selectwrap .select-arrow-img{width:14px;height:14px;object-fit:contain;opacity:.9}.doc-switch{display:flex;align-items:center;box-shadow:0 10px 30px rgba(15,23,42,.08);width:max-content}.doc-switch-btn{height:54px;display:flex;align-items:center;justify-content:center;opacity:.65}#logoBox>img,.doc-switch-img{object-fit:contain;display:block}.doc-switch-btn:hover{opacity:.9;transform:translateY(-1px)}.doc-switch-btn.active{opacity:1;background:#fff;box-shadow:0 0 0 3px rgba(82,182,202,.22)}.doc-switch-img{height:26px;width:auto;pointer-events:none}@media (max-width:720px){.doc-switch{width:calc(100% - 40px)}.doc-switch-btn{min-width:0;flex:1}.doc-switch-img{height:22px}}@media (max-width:767.98px){.resume-selectwrap{width:100%}}.oflite-header{display:flex;flex-direction:column;align-items:center;gap:14px;padding:22px 0 18px}.oflite-logo{width:auto}.doc-switch{display:flex;gap:10px;padding:10px;border-radius:16px;background:#fff;box-shadow:0 14px 30px rgba(0,0,0,.1);border:1px solid rgba(15,23,42,.08);margin:10px auto 0}.doc-switch-btn{border:0;background:0 0;padding:14px 22px;border-radius:12px;font-weight:700;cursor:pointer;color:#6b7280;min-width:210px;transition:background .15s,color .15s,box-shadow .15s,transform .05s}.doc-switch-btn:hover{background:rgba(15,23,42,.05)}.doc-switch[data-current=factura] .doc-switch-btn[data-target=factura],.doc-switch[data-current=presupuesto] .doc-switch-btn[data-target=presupuesto]{background:#0b1220;color:#fff;box-shadow:0 10px 20px rgba(0,0,0,.18)}.doc-switch[data-current=factura] .doc-switch-btn[data-target=presupuesto],.doc-switch[data-current=presupuesto] .doc-switch-btn[data-target=factura]{background:#f3f4f6;color:#6b7280}@media (max-width:860px){.oflite-header{flex-direction:column;align-items:flex-start}.doc-switch{width:100%;justify-content:space-between}.doc-switch-btn{min-width:unset;flex:1;text-align:center}}#logoBox .logo-placeholder .upload-img{width:12%!important;height:auto!important;max-width:60px;object-fit:contain!important}#logoBox>img{width:100%!important;max-width:none!important;max-height:none!important}#logoActions{position:absolute;top:10px;right:10px;z-index:5}#logoActions button{padding:6px 8px;border-radius:10px}
.custom-alert {
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 9999;
  max-width: 400px;
  background: linear-gradient(135deg, #0d0c2f, #52b6ca);
  color: #fff;
  padding: 16px 20px;
  border-radius: 12px;
  box-shadow: 0 10px 25px rgba(0,0,0,0.3);
  font-size: 14px;
  animation: slideIn 0.3s ease;
}

.alert-content {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
}

.alert-close {
  background: transparent;
  border: none;
  color: #fff;
  font-size: 16px;
  cursor: pointer;
}

.alert-close:hover {
  opacity: 0.7;
}

@keyframes slideIn {
  from {
    transform: translateX(120%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}
.invalid-feedback {
  font-size:12px !important;
}
/* Asterisco automático en campos obligatorios */
.field label.required::after,
label.required::after {
  content: " *" !important;
  color: #dc3545; /* rojo Bootstrap */
  font-weight: bold;
}