.gfp-wrap{max-width:1180px;margin:24px auto;padding:0 18px;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#1f2937}.gfp-header{background:linear-gradient(135deg,#fff,#f5f7fb);border:1px solid #e8edf5;border-radius:22px;padding:28px;margin-bottom:18px;box-shadow:0 12px 32px rgba(31,41,55,.06)}.gfp-header h1{margin:0;font-size:30px;line-height:1.2}.gfp-header p{margin:8px 0 0;color:#6b7280}.gfp-tabs{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}.gfp-tabs a{text-decoration:none;color:#344054;background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:12px 16px;font-weight:600;box-shadow:0 4px 16px rgba(17,24,39,.04)}.gfp-tabs a.active,.gfp-tabs a:hover{background:#eaf1ff;border-color:#b9cdf5;color:#2454a6}.gfp-panel{background:#fff;border:1px solid #edf0f5;border-radius:22px;padding:20px;box-shadow:0 12px 32px rgba(31,41,55,.06)}.gfp-cards{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:16px}.gfp-card{background:#f9fafb;border:1px solid #edf0f5;border-radius:20px;padding:20px;min-height:112px;display:flex;flex-direction:column;justify-content:space-between}.gfp-card span{color:#667085;font-weight:700}.gfp-card strong{font-size:27px;color:#111827;margin-top:12px}.gfp-card small{color:#667085;margin-top:6px}.gfp-feature{background:linear-gradient(135deg,#eef5ff,#fff);border-color:#cfe0ff}.gfp-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:22px}.gfp-box{border:1px solid #edf0f5;background:#fcfcfd;border-radius:20px;padding:20px}.gfp-box h2,.gfp-panel h2{margin:0 0 16px;font-size:20px}.gfp-progress-row{background:#fff;border:1px solid #edf0f5;border-radius:16px;padding:14px;margin-bottom:12px}.gfp-progress-row div:first-child{display:flex;justify-content:space-between;gap:12px;align-items:center}.gfp-progress-row span,.gfp-progress-row small{color:#667085}.gfp-progress{height:11px;background:#eef2f7;border-radius:99px;margin-top:10px;overflow:hidden}.gfp-progress i{display:block;height:100%;background:#7aa7e8;border-radius:99px}.gfp-progress-row.ok .gfp-progress i{background:#8cc9a4}.gfp-progress-row.warning .gfp-progress i{background:#f0c96a}.gfp-progress-row.danger .gfp-progress i{background:#e88a8a}.gfp-form{background:#f9fafb;border:1px solid #edf0f5;border-radius:20px;padding:20px;margin-bottom:22px}.gfp-fields{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:14px}.gfp-fields label{display:flex;flex-direction:column;gap:7px;font-weight:700;color:#344054}.gfp-fields input,.gfp-fields select{height:43px;border:1px solid #d9e0ea;border-radius:12px;padding:0 12px;background:#fff;color:#111827}.gfp-fields input:focus,.gfp-fields select:focus{outline:2px solid #d7e6ff;border-color:#95b7ef}.gfp-btn{margin-top:16px;background:#416fb8;color:#fff;border:0;border-radius:14px;padding:13px 20px;font-size:15px;font-weight:800;cursor:pointer;box-shadow:0 8px 18px rgba(65,111,184,.18)}.gfp-btn:hover{background:#315fA7}.gfp-table{overflow:auto;border:1px solid #edf0f5;border-radius:16px;background:#fff}.gfp-table table{width:100%;border-collapse:collapse}.gfp-table th,.gfp-table td{text-align:left;padding:13px;border-bottom:1px solid #edf0f5}.gfp-table th{background:#f8fafc;color:#475467}.gfp-table tr:last-child td{border-bottom:0}.gfp-delete{color:#b42318;text-decoration:none;font-weight:700}.gfp-empty,.gfp-login-msg{padding:18px;background:#f8fafc;border:1px solid #edf0f5;border-radius:16px;color:#667085}.gfp-color{display:inline-block;width:28px;height:18px;border-radius:8px;border:1px solid #d0d5dd}@media(max-width:1050px){.gfp-cards{grid-template-columns:repeat(2,1fr)}.gfp-grid-2{grid-template-columns:1fr}.gfp-fields{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.gfp-wrap{padding:0 10px}.gfp-header{padding:20px}.gfp-header h1{font-size:23px}.gfp-tabs a{width:100%;box-sizing:border-box}.gfp-cards,.gfp-fields{grid-template-columns:1fr}.gfp-card strong{font-size:24px}.gfp-panel{padding:14px}}

.gfp-mt{margin-top:22px}

/* v1.2 navegación y edición */
.gfp-header{display:flex;align-items:center;justify-content:space-between;gap:18px}
.gfp-settings{width:48px;height:48px;border-radius:16px;border:1px solid #d9e6f8;background:#fff;color:#315fa7;display:flex;align-items:center;justify-content:center;text-decoration:none;font-size:24px;box-shadow:0 6px 18px rgba(17,24,39,.06)}
.gfp-settings.active,.gfp-settings:hover{background:#eaf1ff;border-color:#b9cdf5}
.gfp-tabs-bottom{margin-top:18px;margin-bottom:0;justify-content:center}
.gfp-tabs-bottom a{min-width:150px;text-align:center}
.gfp-edit{color:#2454a6;text-decoration:none;font-weight:700;margin-right:12px}
.gfp-cancel{display:inline-block;margin-left:12px;color:#475467;text-decoration:none;font-weight:700}
.gfp-table th:last-child,.gfp-table td:last-child{white-space:nowrap}
@media(max-width:640px){.gfp-header{align-items:flex-start}.gfp-settings{width:44px;height:44px;flex:0 0 auto}.gfp-tabs-bottom a{min-width:auto}}

/* v1.4 iconos de categorías */
.gfp-cat-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:12px;background:#f2f5f9;border:1px solid #e2e8f0;font-size:18px}
.gfp-fields select[name="icono"]{font-size:16px}

/* v1.7 login y registro */
.gfp-auth-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.gfp-auth-card{background:#fff;border:1px solid #edf0f5;border-radius:22px;padding:22px;box-shadow:0 12px 32px rgba(31,41,55,.06)}.gfp-auth-card h2{margin-top:0}.gfp-auth-card label{display:flex;flex-direction:column;gap:7px;font-weight:700;margin-bottom:14px;color:#344054}.gfp-auth-card input{height:44px;border:1px solid #d9e0ea;border-radius:12px;padding:0 12px;background:#fff}.gfp-alert{padding:14px 16px;border-radius:16px;margin-bottom:16px;font-weight:700}.gfp-alert-danger{background:#fff1f1;border:1px solid #f4b5b5;color:#9f1d1d}.gfp-alert-ok{background:#eefaf2;border:1px solid #b8e2c5;color:#166534}@media(max-width:760px){.gfp-auth-grid{grid-template-columns:1fr}}

/* v1.8 navegación superior compacta y resumen simple */
.gfp-header-compact{padding:18px 22px;margin-bottom:12px}.gfp-header-compact h1{font-size:24px}.gfp-header-compact p{font-size:14px}.gfp-tabs-compact{align-items:center;gap:8px;margin-bottom:14px}.gfp-tabs-compact a{padding:8px 11px;border-radius:11px;font-size:13px;box-shadow:none}.gfp-settings{width:40px;height:40px;border-radius:12px;font-size:20px}.gfp-cards-single{grid-template-columns:minmax(260px,520px);justify-content:center}.gfp-main-money{text-align:center;min-height:170px;align-items:center}.gfp-main-money span{font-size:17px}.gfp-main-money strong{font-size:44px}.gfp-quick-btn{display:inline-block;margin-top:16px;background:#416fb8;color:#fff;text-decoration:none;border-radius:14px;padding:12px 18px;font-weight:800}.gfp-quick-btn:hover{background:#315fa7;color:#fff}.gfp-muted{color:#667085;margin-top:-8px;margin-bottom:14px}.gfp-panel .gfp-cards{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}@media(max-width:640px){.gfp-tabs-compact a{flex:1 1 auto;text-align:center}.gfp-main-money strong{font-size:34px}.gfp-header-compact{padding:16px}.gfp-panel .gfp-cards{grid-template-columns:1fr}}

/* v1.9 título, navegación móvil desplegable y avisos solo por umbral configurado */
.gfp-mobile-nav{display:none;width:100%;height:42px;margin:0 0 14px;border:1px solid #d9e0ea;border-radius:12px;background:#fff;color:#344054;padding:0 12px;font-weight:700}
@media(max-width:640px){.gfp-tabs-main{display:none}.gfp-mobile-nav{display:block}.gfp-header-compact{align-items:center}.gfp-header-compact h1{font-size:22px}}

/* v2.0: navegación responsive exclusiva */
.gfp-mobile-nav{display:none;width:100%;max-width:280px;margin:0 0 18px auto;height:42px;border:1px solid #d9e0ea;border-radius:14px;background:#fff;color:#344054;padding:0 14px;font-weight:700;box-shadow:0 6px 18px rgba(17,24,39,.05);appearance:auto}
.gfp-tabs-main{display:flex}
@media(max-width:700px){
  .gfp-tabs-main{display:none!important}
  .gfp-mobile-nav{display:block!important}
}
@media(min-width:701px){
  .gfp-mobile-nav{display:none!important}
  .gfp-tabs-main{display:flex!important}
}

/* v2.1: lector de tickets con cámara */
.gfp-ticket-box{background:#f8fafc;border:1px solid #e3e9f2;border-radius:20px;padding:18px;margin-bottom:20px}
.gfp-ticket-head{display:flex;align-items:center;justify-content:space-between;gap:16px}
.gfp-ticket-head h2{margin:0 0 6px;font-size:19px}
.gfp-ticket-head p{margin:0;color:#667085;max-width:680px}
.gfp-camera-btn{width:58px;height:58px;min-width:58px;border-radius:18px;border:1px solid #cdd9ea;background:#fff;color:#315fa7;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:26px;box-shadow:0 8px 20px rgba(17,24,39,.06)}
.gfp-camera-btn:hover{background:#eaf1ff;border-color:#b9cdf5}
.gfp-camera-btn input{display:none}
.gfp-ticket-preview{display:grid;grid-template-columns:140px 1fr;gap:16px;align-items:center;margin-top:16px}
.gfp-ticket-image{width:140px;max-height:180px;object-fit:cover;border-radius:14px;border:1px solid #d9e0ea;background:#fff}
.gfp-ticket-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.gfp-ticket-status{color:#667085;font-weight:700}
.gfp-ticket-result{margin-top:14px;background:#fff;border:1px solid #edf0f5;border-radius:16px;padding:14px}
.gfp-ticket-result p{margin:6px 0 10px;color:#667085}
.gfp-ticket-text{max-height:130px;overflow:auto;background:#f9fafb;border:1px solid #edf0f5;border-radius:12px;padding:10px;white-space:pre-wrap;color:#475467;font-size:12px}
@media(max-width:640px){.gfp-ticket-head{align-items:flex-start}.gfp-ticket-preview{grid-template-columns:1fr}.gfp-ticket-image{width:100%;max-height:260px}.gfp-camera-btn{width:52px;height:52px;min-width:52px}}


/* v2.5: botón Gestiones junto a ajustes con panel desplegable */
.gfp-header-actions{display:flex;align-items:center;gap:10px;margin-left:auto;position:relative}
.gfp-more-wrap{position:relative;display:block}
.gfp-more-btn{height:40px;border:1px solid #d9e0ea;border-radius:999px;background:#fff;color:#344054;padding:0 16px;font-weight:800;cursor:pointer;box-shadow:0 6px 18px rgba(17,24,39,.05);font-size:13px;letter-spacing:.01em}
.gfp-more-btn:hover,.gfp-more-btn[aria-expanded="true"]{background:#f3f7fc;border-color:#c9d7eb;color:#315fa7}
.gfp-more-panel{position:absolute;right:0;top:48px;width:240px;background:#fff;border:1px solid #d9e0ea;border-radius:18px;box-shadow:0 18px 45px rgba(17,24,39,.14);padding:10px;z-index:40}
.gfp-more-title{padding:6px 10px 9px;color:#667085;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid #eef2f6;margin-bottom:6px}
.gfp-more-panel a{display:block;text-decoration:none;color:#344054;padding:11px 12px;border-radius:12px;font-weight:800;font-size:14px}
.gfp-more-panel a:hover,.gfp-more-panel a.active{background:#eef4ff;color:#315fa7}
.gfp-mobile-nav{display:none!important}
@media(max-width:700px){
  .gfp-tabs-main{display:none!important}
  .gfp-header-compact{gap:12px}
  .gfp-more-panel{right:-50px;width:min(240px,calc(100vw - 32px))}
}
@media(min-width:701px){
  .gfp-tabs-main{display:flex!important}
}


/* v2.7: Gestiones solo móvil con icono y cámara superior */
.gfp-ticket-top-btn{
  width:40px;height:40px;border-radius:12px;border:1px solid #d9e0ea;background:#fff;color:#315fa7;
  display:inline-flex;align-items:center;justify-content:center;text-decoration:none;font-size:20px;
  box-shadow:0 6px 18px rgba(17,24,39,.05)
}
.gfp-ticket-top-btn:hover{background:#eaf1ff;border-color:#b9cdf5;color:#315fa7}
.gfp-more-btn{width:40px;height:40px;padding:0;border-radius:12px;font-size:20px;line-height:1;display:none;align-items:center;justify-content:center}
.gfp-ticket-read{display:none!important}
@media(max-width:700px){
  .gfp-more-wrap{display:block!important}
  .gfp-more-btn{display:inline-flex!important}
  .gfp-tabs-main{display:none!important}
}
@media(min-width:701px){
  .gfp-more-wrap{display:none!important}
  .gfp-more-btn{display:none!important}
  .gfp-tabs-main{display:flex!important}
}
.gfp-ticket-head p{font-size:14px;color:#667085}

/* v2.8: cámara superior más visible y enmarcada como el resto */
.gfp-header-actions .gfp-ticket-top-btn{
  width:48px;
  height:48px;
  min-width:48px;
  border-radius:16px;
  border:1px solid #d9e6f8;
  background:#fff;
  color:#315fa7;
  font-size:24px;
  box-shadow:0 6px 18px rgba(17,24,39,.06);
  box-sizing:border-box;
}
.gfp-header-actions .gfp-ticket-top-btn:hover{
  background:#eaf1ff;
  border-color:#b9cdf5;
  color:#315fa7;
}
@media(max-width:700px){
  .gfp-header-actions .gfp-ticket-top-btn,
  .gfp-settings,
  .gfp-more-btn{
    width:46px!important;
    height:46px!important;
    min-width:46px!important;
    border-radius:15px!important;
  }
  .gfp-header-actions .gfp-ticket-top-btn{font-size:24px!important;}
}


/* v2.9 real: cámara más grande, mismo marco visual que ajustes y OCR reforzado */
.gfp-header-actions .gfp-ticket-top-btn{
  width:56px!important;
  height:56px!important;
  min-width:56px!important;
  border-radius:18px!important;
  border:1px solid #d9e6f8!important;
  background:#fff!important;
  color:#315fa7!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-decoration:none!important;
  font-size:28px!important;
  line-height:1!important;
  box-shadow:0 6px 18px rgba(17,24,39,.06)!important;
  box-sizing:border-box!important;
}
.gfp-header-actions .gfp-ticket-top-btn:hover{
  background:#eaf1ff!important;
  border-color:#b9cdf5!important;
}
.gfp-ticket-head p{font-size:13px!important;color:#667085!important;margin-top:2px!important}
.gfp-camera-btn{
  width:64px!important;
  height:64px!important;
  min-width:64px!important;
  border-radius:18px!important;
  font-size:30px!important;
  border:1px solid #d9e6f8!important;
  background:#fff!important;
  box-shadow:0 6px 18px rgba(17,24,39,.06)!important;
}
@media(max-width:700px){
  .gfp-header-actions .gfp-ticket-top-btn,
  .gfp-settings,
  .gfp-more-btn{
    width:50px!important;
    height:50px!important;
    min-width:50px!important;
    border-radius:16px!important;
  }
  .gfp-header-actions .gfp-ticket-top-btn{font-size:27px!important;}
}


/* v3.0 real: navegación y cámara corregidas */
.gfp-header-actions{display:flex!important;align-items:center!important;gap:8px!important;position:relative!important}
.gfp-more-btn{
  width:46px!important;height:46px!important;min-width:46px!important;
  padding:0!important;border-radius:15px!important;border:1px solid #d9e6f8!important;
  background:#fff!important;color:#344054!important;font-size:23px!important;
  box-shadow:0 6px 18px rgba(17,24,39,.06)!important;
  align-items:center!important;justify-content:center!important;
}
.gfp-camera-top-btn,.gfp-header-actions .gfp-ticket-top-btn{
  width:56px!important;height:56px!important;min-width:56px!important;
  border-radius:18px!important;border:1px solid #d9e6f8!important;
  background:#fff!important;color:#315fa7!important;
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  text-decoration:none!important;font-size:29px!important;line-height:1!important;
  box-shadow:0 6px 18px rgba(17,24,39,.06)!important;box-sizing:border-box!important;
}
.gfp-camera-top-btn:hover,.gfp-header-actions .gfp-ticket-top-btn:hover,.gfp-more-btn:hover{background:#eaf1ff!important;border-color:#b9cdf5!important;color:#315fa7!important}
.gfp-ticket-head p{font-size:13px!important;color:#667085!important;margin:2px 0 0!important}
.gfp-camera-btn{width:66px!important;height:66px!important;min-width:66px!important;border-radius:18px!important;border:1px solid #d9e6f8!important;background:#fff!important;font-size:31px!important;box-shadow:0 6px 18px rgba(17,24,39,.06)!important}
@media(max-width:767px){
  .gfp-tabs-main{display:none!important}
  .gfp-more-wrap{display:block!important}
  .gfp-more-btn{display:inline-flex!important}
  .gfp-more-panel{right:0!important;width:min(240px,calc(100vw - 32px))!important}
  .gfp-camera-top-btn,.gfp-header-actions .gfp-ticket-top-btn,.gfp-settings,.gfp-more-btn{width:50px!important;height:50px!important;min-width:50px!important;border-radius:16px!important}
  .gfp-camera-top-btn,.gfp-header-actions .gfp-ticket-top-btn{font-size:27px!important}
}
@media(min-width:768px){
  .gfp-tabs-main{display:flex!important}
  .gfp-more-wrap,.gfp-more-btn{display:none!important}
}

.gfp-ocr-progress{width:180px;height:9px;background:#e9eef6;border-radius:999px;position:relative;overflow:hidden;display:inline-flex;align-items:center;vertical-align:middle}
.gfp-ocr-progress i{display:block;height:100%;background:#9db7e8;border-radius:999px;transition:width .25s ease}
.gfp-ocr-progress b{position:absolute;right:6px;top:-1px;font-size:10px;line-height:11px;color:#344054;font-weight:700}
@media(max-width:640px){.gfp-ocr-progress{width:100%;max-width:220px}}


/* v3.3: mismo resumen y mismos avisos en móvil/escritorio */
.gfp-summary-current,
.gfp-category-alerts{display:block;visibility:visible;opacity:1}
.gfp-summary-current.gfp-cards{display:grid}
.gfp-category-alerts .gfp-progress-row{display:block!important}
@media(max-width:767px){
  .gfp-summary-current,
  .gfp-category-alerts{display:block!important;visibility:visible!important;opacity:1!important;width:100%;box-sizing:border-box}
  .gfp-summary-current.gfp-cards{display:grid!important;grid-template-columns:1fr!important}
  .gfp-category-alerts h2{font-size:18px;margin-bottom:12px}
  .gfp-category-alerts .gfp-progress-row{display:block!important;margin-bottom:10px}
  .gfp-category-alerts .gfp-progress-row div:first-child{display:flex!important;align-items:center;justify-content:space-between}
  [data-gfp-total="disponible"]{white-space:nowrap}
}
@media(min-width:768px){
  .gfp-category-alerts{display:block!important}
}


/* v3.4: el bloque de avisos se rellena desde el mismo endpoint en móvil y PC */
.gfp-category-alerts[hidden]{display:none!important}


/* v3.5 corregido: iconos superiores iguales sin pisar el plugin */
.gfp-header-actions{display:flex;align-items:center;gap:8px}
.gfp-header-actions .gfp-camera-top-btn,
.gfp-header-actions .gfp-settings{
  width:46px!important;
  height:46px!important;
  min-width:46px!important;
  min-height:46px!important;
  padding:0!important;
  border-radius:15px!important;
  border:1px solid #d9e6f8!important;
  background:#fff!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  line-height:1!important;
  font-size:22px!important;
  box-shadow:0 6px 18px rgba(17,24,39,.06)!important;
  box-sizing:border-box!important;
}
.gfp-header-actions .gfp-camera-top-btn{font-size:22px!important;color:#315fa7!important}
.gfp-header-actions .gfp-settings{font-size:22px!important;color:#315fa7!important}
.gfp-header-actions .gfp-camera-top-btn:hover,
.gfp-header-actions .gfp-settings:hover,
.gfp-header-actions .gfp-settings.active{
  background:#eaf1ff!important;
  border-color:#b9cdf5!important;
}
@media(max-width:767px){
  .gfp-header-actions .gfp-camera-top-btn,
  .gfp-header-actions .gfp-settings,
  .gfp-header-actions .gfp-more-btn{
    width:46px!important;
    height:46px!important;
    min-width:46px!important;
    min-height:46px!important;
    border-radius:15px!important;
    font-size:22px!important;
  }
}

/* v3.6: iconos superiores en SVG homogéneos */
.gfp-header-actions .gfp-camera-top-btn,
.gfp-header-actions .gfp-settings{
  width:48px!important;
  height:48px!important;
  min-width:48px!important;
  min-height:48px!important;
  padding:0!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:14px!important;
  border:1px solid #d9e6f8!important;
  background:#fff!important;
  color:#334155!important;
  line-height:1!important;
  font-size:0!important;
  box-sizing:border-box!important;
}
.gfp-header-actions .gfp-camera-top-btn svg,
.gfp-header-actions .gfp-settings svg{
  width:24px!important;
  height:24px!important;
  display:block!important;
  flex:0 0 24px!important;
}
.gfp-header-actions .gfp-camera-top-btn:hover,
.gfp-header-actions .gfp-settings:hover,
.gfp-header-actions .gfp-settings.active{
  background:#f5f8ff!important;
  border-color:#b9cdf5!important;
  color:#315fa7!important;
}
@media(max-width:767px){
  .gfp-header-actions .gfp-camera-top-btn,
  .gfp-header-actions .gfp-settings{
    width:48px!important;
    height:48px!important;
    min-width:48px!important;
    min-height:48px!important;
  }
}

/* v3.7: volver a los iconos anteriores y hacerlos visualmente iguales */
.gfp-header-actions .gfp-camera-top-btn,
.gfp-header-actions .gfp-settings{
  width:50px!important;
  height:50px!important;
  min-width:50px!important;
  min-height:50px!important;
  padding:0!important;
  border-radius:15px!important;
  border:1px solid #d9e6f8!important;
  background:#fff!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  box-sizing:border-box!important;
  line-height:1!important;
  text-decoration:none!important;
  color:#315fa7!important;
  box-shadow:0 6px 18px rgba(17,24,39,.06)!important;
  font-size:0!important;
}
.gfp-header-actions .gfp-camera-top-btn svg,
.gfp-header-actions .gfp-settings svg{display:none!important}
.gfp-header-actions .gfp-top-emoji{
  display:block!important;
  line-height:1!important;
  width:32px!important;
  height:32px!important;
  text-align:center!important;
  transform-origin:center center!important;
}
.gfp-header-actions .gfp-top-camera{font-size:29px!important;transform:translateY(1px) scale(.96)!important}
.gfp-header-actions .gfp-top-gear{font-size:30px!important;transform:translateY(1px) scale(1.08)!important}
.gfp-header-actions .gfp-camera-top-btn:hover,
.gfp-header-actions .gfp-settings:hover,
.gfp-header-actions .gfp-settings.active{
  background:#f5f8ff!important;
  border-color:#b9cdf5!important;
}
@media(max-width:767px){
  .gfp-header-actions .gfp-camera-top-btn,
  .gfp-header-actions .gfp-settings{
    width:48px!important;
    height:48px!important;
    min-width:48px!important;
    min-height:48px!important;
  }
  .gfp-header-actions .gfp-top-camera{font-size:28px!important}
  .gfp-header-actions .gfp-top-gear{font-size:29px!important}
}

/* v3.8 Categorías visuales */
.gfp-color-input{
    width:44px!important;
    height:44px!important;
    min-width:44px;
    border-radius:999px!important;
    padding:3px!important;
    overflow:hidden;
    cursor:pointer;
    border:1px solid #cfd8e3!important;
    background:#fff!important;
}
.gfp-color-input::-webkit-color-swatch-wrapper{padding:0;border-radius:999px;}
.gfp-color-input::-webkit-color-swatch{border:0;border-radius:999px;}
.gfp-color-input::-moz-color-swatch{border:0;border-radius:999px;}
.gfp-color{
    width:26px!important;
    height:26px!important;
    border-radius:999px!important;
    border:1px solid rgba(0,0,0,.12)!important;
    box-shadow:inset 0 0 0 2px rgba(255,255,255,.45);
}
.gfp-colored-row td{
    background:transparent!important;
}
.gfp-colored-row{
    transition:filter .15s ease, transform .15s ease;
}
.gfp-colored-row:hover{
    filter:brightness(.985);
}
.gfp-cat-icon{
    display:inline-flex;
    width:28px;
    height:28px;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    background:rgba(255,255,255,.65);
}
.gfp-category-select.gfp-selected-color{
    border-width:2px;
}


/* v4.2 - gastos unificados */
.gfp-checkline{
    display:flex!important;
    align-items:center;
    gap:10px;
    min-height:44px;
}
.gfp-checkline input[type="checkbox"]{
    width:18px;
    height:18px;
}
.gfp-fixed-frequency{
    transition:opacity .15s ease;
}
.gfp-fixed-frequency.gfp-muted{
    opacity:.45;
}


/* v4.3 - interruptor elegante para gasto fijo */
.gfp-switchline{
    display:flex!important;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    min-height:52px;
    padding:10px 12px;
    border:1px solid #e2e8f0;
    border-radius:16px;
    background:#ffffff;
    font-weight:600;
    color:#334155;
}
.gfp-switch{
    position:relative;
    display:inline-block;
    width:62px;
    height:32px;
    flex:0 0 auto;
}
.gfp-switch input{
    opacity:0;
    width:0;
    height:0;
    position:absolute;
}
.gfp-slider{
    position:absolute;
    cursor:pointer;
    inset:0;
    background:linear-gradient(180deg,#d8dee8,#cbd5e1);
    border:1px solid #aeb8c7;
    border-radius:999px;
    box-shadow:inset 0 2px 4px rgba(0,0,0,.18), 0 1px 2px rgba(0,0,0,.08);
    transition:all .18s ease;
}
.gfp-slider:before{
    content:"";
    position:absolute;
    width:28px;
    height:28px;
    left:1px;
    top:1px;
    background:linear-gradient(180deg,#ffffff,#f1f5f9);
    border-radius:50%;
    box-shadow:0 2px 5px rgba(0,0,0,.28);
    transition:all .18s ease;
}
.gfp-switch input:checked + .gfp-slider{
    background:linear-gradient(180deg,#8de52a,#45bf00);
    border-color:#3fa000;
}
.gfp-switch input:checked + .gfp-slider:before{
    transform:translateX(30px);
}
.gfp-switch input:focus + .gfp-slider{
    outline:2px solid rgba(69,145,255,.35);
    outline-offset:2px;
}

/* v4.4: selector de mes/año y resumen por categoría */
.gfp-period-selector{
  display:flex;
  align-items:center;
  gap:8px;
  margin-right:6px;
}
.gfp-period-selector label{
  display:flex;
  align-items:center;
  gap:6px;
  margin:0;
  font-size:12px;
  color:#667085;
}
.gfp-period-selector select,
.gfp-period-selector input{
  height:38px;
  border:1px solid #d9e6f8;
  border-radius:12px;
  background:#fff;
  padding:0 10px;
  color:#344054;
  font-weight:600;
  box-shadow:0 4px 14px rgba(17,24,39,.04);
}
.gfp-period-selector input{width:82px;}
.gfp-category-summary{
  display:grid;
  gap:10px;
}
.gfp-category-summary-row{
  border-radius:14px;
  padding:12px 14px;
  display:grid;
  grid-template-columns:1fr auto;
  gap:8px 12px;
  border:1px solid rgba(17,24,39,.06);
}
.gfp-category-summary-row strong{display:block;color:#243047;}
.gfp-category-summary-row small{display:block;color:#667085;margin-top:2px;}
.gfp-category-summary-row b{align-self:center;color:#243047;}
.gfp-category-summary-row .gfp-progress{grid-column:1 / -1;}
.gfp-muted{color:#667085;margin:0;}
.gfp-detail-cards .gfp-card small{display:block;margin-top:6px;color:#667085;font-size:12px;}
@media(max-width:767px){
  .gfp-header-actions{flex-wrap:wrap;justify-content:flex-end;}
  .gfp-period-selector{order:5;width:100%;justify-content:flex-end;margin-top:8px;}
  .gfp-period-selector label span{display:none;}
  .gfp-period-selector select{max-width:132px;}
}


.gfp-export-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.gfp-export-btn{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:8px 12px;border:1px solid #d7e1f2;border-radius:12px;background:#fff;color:#2857a4;text-decoration:none;font-weight:700;font-size:13px;box-shadow:0 6px 18px rgba(30,64,175,.05)}
.gfp-export-btn:hover{background:#f3f7ff;color:#1d4ed8}
@media(max-width:760px){.gfp-export-actions{width:100%;justify-content:flex-end}.gfp-export-btn{min-height:34px;padding:7px 10px;font-size:12px}}


/* v4.6 - gasto fijo integrado y discreto */
.gfp-switchline{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:14px!important;
    min-height:48px!important;
    padding:10px 14px!important;
    border:1px solid #e6edf7!important;
    border-radius:14px!important;
    background:#f8fafc!important;
    font-weight:600!important;
    color:#334155!important;
    box-shadow:none!important;
}
.gfp-switchline span:first-child{
    font-size:14px!important;
}
.gfp-switch{
    position:relative!important;
    display:inline-block!important;
    width:48px!important;
    height:26px!important;
    flex:0 0 auto!important;
}
.gfp-switch input{
    opacity:0!important;
    width:0!important;
    height:0!important;
    position:absolute!important;
}
.gfp-slider{
    position:absolute!important;
    cursor:pointer!important;
    inset:0!important;
    background:#d8e0eb!important;
    border:1px solid #c6d1df!important;
    border-radius:999px!important;
    box-shadow:inset 0 1px 2px rgba(15,23,42,.12)!important;
    transition:all .18s ease!important;
}
.gfp-slider:before{
    content:""!important;
    position:absolute!important;
    width:20px!important;
    height:20px!important;
    left:2px!important;
    top:2px!important;
    background:#ffffff!important;
    border-radius:50%!important;
    box-shadow:0 1px 4px rgba(15,23,42,.22)!important;
    transition:all .18s ease!important;
}
.gfp-switch input:checked + .gfp-slider{
    background:#7ccf52!important;
    border-color:#65b944!important;
}
.gfp-switch input:checked + .gfp-slider:before{
    transform:translateX(22px)!important;
}
.gfp-switch input:focus + .gfp-slider{
    outline:2px solid rgba(59,130,246,.24)!important;
    outline-offset:2px!important;
}
.gfp-fixed-frequency{
    margin-top:4px!important;
}


/* v4.7 - switch gasto fijo corregido con clases nuevas */
.gfp-fixed-toggle-row{
    grid-column:1 / -1;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:14px !important;
    min-height:58px !important;
    padding:12px 14px !important;
    margin:2px 0 4px !important;
    border:1px solid #e5edf7 !important;
    border-radius:16px !important;
    background:#f8fafc !important;
    box-shadow:0 4px 14px rgba(15,23,42,.035) !important;
}
.gfp-fixed-toggle-text{
    display:flex !important;
    flex-direction:column !important;
    gap:2px !important;
    line-height:1.2 !important;
}
.gfp-fixed-toggle-text strong{
    font-size:14px !important;
    color:#334155 !important;
    font-weight:700 !important;
}
.gfp-fixed-toggle-text small{
    font-size:12px !important;
    color:#64748b !important;
    font-weight:400 !important;
}
.gfp-fixed-toggle{
    position:relative !important;
    display:inline-block !important;
    width:50px !important;
    min-width:50px !important;
    height:28px !important;
    margin:0 !important;
}
.gfp-fixed-toggle input{
    opacity:0 !important;
    width:0 !important;
    height:0 !important;
    position:absolute !important;
}
.gfp-fixed-toggle-slider{
    position:absolute !important;
    cursor:pointer !important;
    inset:0 !important;
    background:#dbe3ee !important;
    border:1px solid #c9d4e3 !important;
    border-radius:999px !important;
    transition:all .18s ease !important;
    box-shadow:inset 0 1px 2px rgba(15,23,42,.14) !important;
}
.gfp-fixed-toggle-slider:before{
    content:"" !important;
    position:absolute !important;
    width:22px !important;
    height:22px !important;
    left:2px !important;
    top:2px !important;
    background:#fff !important;
    border-radius:50% !important;
    box-shadow:0 1px 5px rgba(15,23,42,.24) !important;
    transition:all .18s ease !important;
}
.gfp-fixed-toggle input:checked + .gfp-fixed-toggle-slider{
    background:#65c466 !important;
    border-color:#52ae53 !important;
}
.gfp-fixed-toggle input:checked + .gfp-fixed-toggle-slider:before{
    transform:translateX(22px) !important;
}
.gfp-fixed-toggle input:focus + .gfp-fixed-toggle-slider{
    outline:2px solid rgba(37,99,235,.22) !important;
    outline-offset:2px !important;
}


/* v4.8 - interruptor Gasto fijo lateral, integrado y tipo botón */
.gfp-fixed-switch-card{
    grid-column:1 / -1;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:16px !important;
    padding:13px 15px !important;
    margin:4px 0 6px !important;
    min-height:62px !important;
    border:1px solid #e5edf7 !important;
    border-radius:16px !important;
    background:#f8fafc !important;
    box-shadow:0 4px 14px rgba(15,23,42,.035) !important;
}

.gfp-fixed-switch-label{
    display:flex !important;
    flex-direction:column !important;
    justify-content:center !important;
    gap:3px !important;
    min-width:0 !important;
}

.gfp-fixed-switch-label strong{
    font-size:14px !important;
    font-weight:700 !important;
    color:#263445 !important;
    line-height:1.2 !important;
}

.gfp-fixed-switch-label span{
    font-size:12px !important;
    font-weight:400 !important;
    color:#667085 !important;
    line-height:1.25 !important;
}

.gfp-fixed-switch{
    position:relative !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:54px !important;
    min-width:54px !important;
    height:30px !important;
    margin:0 !important;
    cursor:pointer !important;
}

.gfp-fixed-switch input{
    opacity:0 !important;
    width:0 !important;
    height:0 !important;
    position:absolute !important;
}

.gfp-fixed-switch-track{
    position:relative !important;
    display:block !important;
    width:54px !important;
    height:30px !important;
    border-radius:999px !important;
    background:#cfd8e6 !important;
    border:1px solid #bcc8d8 !important;
    box-shadow:inset 0 1px 3px rgba(15,23,42,.16) !important;
    transition:background .18s ease,border-color .18s ease !important;
}

.gfp-fixed-switch-thumb{
    position:absolute !important;
    width:24px !important;
    height:24px !important;
    left:2px !important;
    top:2px !important;
    border-radius:50% !important;
    background:#ffffff !important;
    box-shadow:0 2px 6px rgba(15,23,42,.25) !important;
    transition:transform .18s ease !important;
}

.gfp-fixed-switch input:checked + .gfp-fixed-switch-track{
    background:#5fc263 !important;
    border-color:#4dab51 !important;
}

.gfp-fixed-switch input:checked + .gfp-fixed-switch-track .gfp-fixed-switch-thumb{
    transform:translateX(24px) !important;
}

.gfp-fixed-switch input:focus + .gfp-fixed-switch-track{
    outline:2px solid rgba(37,99,235,.22) !important;
    outline-offset:2px !important;
}

@media (max-width:480px){
    .gfp-fixed-switch-card{
        padding:12px 13px !important;
        gap:10px !important;
    }
    .gfp-fixed-switch-label span{
        font-size:11px !important;
    }
}


/* v4.9 - selector gasto fijo / variable tipo botón */
.gfp-expense-type-card{
    grid-column:1 / -1;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:16px !important;
    padding:13px 15px !important;
    margin:4px 0 6px !important;
    min-height:64px !important;
    border:1px solid #e5edf7 !important;
    border-radius:16px !important;
    background:#f8fafc !important;
    box-shadow:0 4px 14px rgba(15,23,42,.035) !important;
}
.gfp-expense-type-label{
    display:flex !important;
    flex-direction:column !important;
    gap:3px !important;
}
.gfp-expense-type-label strong{
    font-size:14px !important;
    font-weight:700 !important;
    color:#263445 !important;
}
.gfp-expense-type-label span{
    font-size:12px !important;
    color:#667085 !important;
}
.gfp-expense-type-switch{
    position:relative !important;
    display:block !important;
    width:132px !important;
    min-width:132px !important;
    height:34px !important;
    cursor:pointer !important;
    margin:0 !important;
}
.gfp-expense-type-switch input{
    opacity:0 !important;
    width:0 !important;
    height:0 !important;
    position:absolute !important;
}
.gfp-expense-type-track{
    position:relative !important;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    width:132px !important;
    height:34px !important;
    border-radius:999px !important;
    background:#e8edf5 !important;
    border:1px solid #d3dce9 !important;
    overflow:hidden !important;
    padding:0 12px !important;
    box-sizing:border-box !important;
}
.gfp-expense-type-thumb{
    position:absolute !important;
    left:2px !important;
    top:2px !important;
    width:64px !important;
    height:28px !important;
    border-radius:999px !important;
    background:#ffffff !important;
    box-shadow:0 2px 7px rgba(15,23,42,.22) !important;
    transition:transform .18s ease !important;
    z-index:1 !important;
}
.gfp-expense-type-text{
    position:relative !important;
    z-index:2 !important;
    font-size:11px !important;
    font-weight:700 !important;
    color:#475569 !important;
    line-height:1 !important;
    pointer-events:none !important;
}
.gfp-expense-type-on{
    color:#64748b !important;
}
.gfp-expense-type-switch input:checked + .gfp-expense-type-track{
    background:#dcfce7 !important;
    border-color:#9be7ad !important;
}
.gfp-expense-type-switch input:checked + .gfp-expense-type-track .gfp-expense-type-thumb{
    transform:translateX(62px) !important;
}
.gfp-expense-type-switch input:checked + .gfp-expense-type-track .gfp-expense-type-on{
    color:#166534 !important;
}
.gfp-expense-type-switch input:checked + .gfp-expense-type-track .gfp-expense-type-off{
    color:#64748b !important;
}
.gfp-field-note{
    display:block;
    margin-top:5px;
    font-size:11px;
    color:#667085;
}
.gfp-porcentaje-ingresos[readonly]{
    background:#f1f5f9 !important;
    color:#475569 !important;
}
@media (max-width:520px){
    .gfp-expense-type-card{
        gap:10px !important;
        padding:12px !important;
    }
    .gfp-expense-type-switch{
        width:120px !important;
        min-width:120px !important;
    }
    .gfp-expense-type-track{
        width:120px !important;
        padding:0 10px !important;
    }
    .gfp-expense-type-thumb{
        width:58px !important;
    }
    .gfp-expense-type-switch input:checked + .gfp-expense-type-track .gfp-expense-type-thumb{
        transform:translateX(56px) !important;
    }
}


/* v5.0 - aviso 50% por categoría */
.gfp-progress-row.notice{
    border-color:#bfdbfe !important;
    background:#eff6ff !important;
}
.gfp-progress-row.notice .gfp-progress i{
    background:#60a5fa !important;
}


/* v5.3 - botones pequeños Más datos / Resumen */
.gfp-card-top,
.gfp-box-title{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
}
.gfp-mini-toggle{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:5px 8px;
    border-radius:999px;
    border:1px solid #d7e2f2;
    background:#f8fafc;
    color:#475569;
    font-size:11px;
    font-weight:700;
    text-decoration:none;
    white-space:nowrap;
}
.gfp-mini-toggle.active{
    background:#e6f4ea;
    border-color:#b8e2c2;
    color:#166534;
}
.gfp-mb{margin-bottom:16px;}
.gfp-export-actions{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
}
.gfp-export-btn{
    display:inline-flex;
    padding:9px 13px;
    border-radius:12px;
    background:#eef4ff;
    color:#2454a6;
    text-decoration:none;
    font-weight:700;
    border:1px solid #d9e6ff;
}


/* v5.6 - resumen global de deuda */
.gfp-deuda-global{
    margin:18px 0;
}
.gfp-deuda-global-cards{
    grid-template-columns:repeat(4,minmax(140px,1fr));
    margin-bottom:14px;
}
@media (max-width:760px){
    .gfp-deuda-global-cards{
        grid-template-columns:repeat(2,minmax(130px,1fr));
    }
}
@media (max-width:460px){
    .gfp-deuda-global-cards{
        grid-template-columns:1fr;
    }
}


/* v5.8 - totales gastos */
.gfp-total-boxes{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:12px;
    margin:10px 0 14px;
}
.gfp-total-box{
    background:#f8fafc;
    border:1px solid #e5edf7;
    border-radius:16px;
    padding:14px 16px;
    box-shadow:0 3px 10px rgba(15,23,42,.04);
}
.gfp-total-box span{
    display:block;
    font-size:12px;
    color:#64748b;
    margin-bottom:4px;
}
.gfp-total-box strong{
    font-size:20px;
    color:#1e293b;
}


/* v5.9 - ajustes de ventanas de resumen */
.gfp-summary-settings{
    display:grid;
    gap:10px;
    margin-top:12px;
}
.gfp-summary-setting-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:12px 14px;
    border:1px solid #e5edf7;
    border-radius:14px;
    background:#f8fafc;
}
.gfp-summary-setting-row span{
    font-weight:700;
    color:#334155;
}
.gfp-setting-switch{
    position:relative;
    display:inline-block;
    width:52px;
    min-width:52px;
    height:28px;
    border-radius:999px;
    background:#cfd8e6;
    border:1px solid #bcc8d8;
    box-shadow:inset 0 1px 3px rgba(15,23,42,.16);
    transition:all .18s ease;
}
.gfp-setting-switch i{
    position:absolute;
    width:22px;
    height:22px;
    left:2px;
    top:2px;
    border-radius:50%;
    background:#fff;
    box-shadow:0 2px 6px rgba(15,23,42,.25);
    transition:transform .18s ease;
}
.gfp-setting-switch.on{
    background:#5fc263;
    border-color:#4dab51;
}
.gfp-setting-switch.on i{
    transform:translateX(24px);
}


/* v6.0 - ajustes desplegables */
.gfp-settings-dropdown{
    background:#fff;
    border:1px solid #e5edf7;
    border-radius:18px;
    margin-bottom:14px;
    box-shadow:0 6px 18px rgba(15,23,42,.04);
    overflow:hidden;
}
.gfp-settings-dropdown summary{
    cursor:pointer;
    list-style:none;
    padding:16px 18px;
    font-size:16px;
    font-weight:800;
    color:#1e293b;
    background:#f8fafc;
    display:flex;
    align-items:center;
    justify-content:space-between;
}
.gfp-settings-dropdown summary::-webkit-details-marker{
    display:none;
}
.gfp-settings-dropdown summary::after{
    content:"⌄";
    font-size:18px;
    color:#64748b;
    transition:transform .18s ease;
}
.gfp-settings-dropdown[open] summary::after{
    transform:rotate(180deg);
}
.gfp-settings-content{
    padding:16px 18px 18px;
}
.gfp-formulas ul{
    margin:10px 0 0 18px;
    padding:0;
}
.gfp-formulas li{
    margin-bottom:9px;
    line-height:1.45;
}


/* v6.1 - datos del usuario en ajustes */
.gfp-user-profile-box{
    display:grid;
    grid-template-columns:120px 1fr;
    gap:18px;
    align-items:start;
}
.gfp-user-photo{
    width:112px;
    height:112px;
    border-radius:22px;
    overflow:hidden;
    border:1px solid #e5edf7;
    background:#f8fafc;
    box-shadow:0 4px 14px rgba(15,23,42,.06);
}
.gfp-user-photo img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}
.gfp-user-fields{
    display:grid;
    gap:12px;
}
.gfp-user-fields label{
    display:grid;
    gap:6px;
    font-weight:700;
    color:#334155;
}
.gfp-user-fields input[type="text"],
.gfp-user-fields input[type="email"],
.gfp-user-fields input[type="file"]{
    width:100%;
    border:1px solid #dbe4f0;
    border-radius:12px;
    padding:10px 12px;
    background:#fff;
}
.gfp-user-fields input[readonly]{
    background:#f8fafc;
    color:#64748b;
}
@media (max-width:560px){
    .gfp-user-profile-box{
        grid-template-columns:1fr;
    }
}

/* v6.8 - suscripciones */
.gfp-fields textarea{
    min-height:90px;
    border:1px solid #dbe4f0;
    border-radius:12px;
    padding:10px 12px;
    resize:vertical;
}

/* v7.0 - suscripciones informativas */
.gfp-info-note{
    margin-bottom:22px !important;
}
.gfp-fields textarea{
    min-height:90px;
    border:1px solid #dbe4f0;
    border-radius:12px;
    padding:10px 12px;
    resize:vertical;
    background:#fff;
}

/* v7.2 - suscripciones en gastos fijos */
.gfp-subscription-row{
    background:#eef6ff !important;
}
.gfp-subscription-row td:first-child{
    font-weight:700;
}

.gfp-file-indicator{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:28px;
    height:28px;
    border-radius:999px;
    background:#eef5ff;
    font-size:17px;
}
.gfp-btn-secondary{
    text-decoration:none;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin-left:8px;
}
