
:root{
  --bg:#f7fafc;
  --surface:#ffffff;
  --surface2:#f1fbfa;
  --text:#132324;
  --muted:#647779;
  --line:#dce8e8;
  --primary:#19d6c7;
  --primary-dark:#0aa99e;
  --primary-soft:#e8fffc;
  --navy:#082322;
  --warning:#f5a623;
  --danger:#e5484d;
  --success:#16a085;
  --radius:18px;
  --shadow:0 18px 45px rgba(7,35,34,.10);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--text);
  background:linear-gradient(180deg,#ffffff 0%,#f7fafc 46%,#eef8f7 100%);
  font-family:"Inter","Segoe UI",Roboto,Arial,sans-serif;
  font-size:15px;
}
a{color:inherit}
.icp-head, header{
  min-height:96px;
  padding:18px 26px;
  display:flex;
  align-items:center;
  gap:16px;
  background:#ffffff;
  border-bottom:1px solid var(--line);
  color:var(--text);
  box-shadow:0 8px 26px rgba(7,35,34,.06);
  position:sticky;
  top:0;
  z-index:100;
}
.icp-head::before, header::before{display:none!important}
.icp-logo{
  width:82px;
  height:82px;
  object-fit:contain;
  border-radius:22px;
  background:#071918;
  padding:8px;
  box-shadow:0 0 0 1px rgba(25,214,199,.25),0 12px 28px rgba(25,214,199,.20);
}
header h2,.icp-head h2{
  margin:0 0 4px;
  font-size:clamp(22px,2.4vw,32px);
  letter-spacing:-.03em;
  color:var(--navy)!important;
}
.small,small{color:var(--muted);line-height:1.45}
header .small,header small,.icp-head .small{color:var(--muted)!important}
main{max-width:1500px;margin:26px auto;padding:0 18px}
.card{
  background:var(--surface)!important;
  color:var(--text)!important;
  border:1px solid var(--line)!important;
  border-radius:var(--radius)!important;
  padding:22px;
  margin-bottom:18px;
  box-shadow:var(--shadow)!important;
}
.card.soft{background:linear-gradient(135deg,#ffffff,#f0fffd)!important}
.card h3,.card h2,h2,h3{color:var(--navy)!important;margin-top:0}
.big-title{font-size:clamp(24px,3vw,38px);font-weight:900;letter-spacing:-.04em;color:var(--navy)}
.layout{display:grid;grid-template-columns:minmax(280px,360px) 1fr;gap:18px}.side{height:max-content;position:sticky;top:120px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
label{display:block;font-size:12px;font-weight:800;margin:10px 0 6px;color:#2c4c4d;text-transform:uppercase;letter-spacing:.04em}
input,textarea,select{
  width:100%;min-height:46px;padding:12px 14px;border:1px solid #cfe1e1;border-radius:14px;background:#fff;color:#102425;outline:none;transition:.18s;font-size:14px;
}
textarea{min-height:90px;resize:vertical}
input:focus,textarea:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 4px rgba(25,214,199,.16)}
button,.btn{
  display:inline-flex!important;align-items:center;justify-content:center;gap:8px;border:0!important;border-radius:999px!important;padding:12px 18px!important;margin:4px;
  background:linear-gradient(135deg,var(--primary),var(--primary-dark))!important;color:#052221!important;text-decoration:none!important;cursor:pointer;font-weight:900!important;
  box-shadow:0 12px 25px rgba(25,214,199,.23)!important;transition:transform .16s,box-shadow .16s,filter .16s;min-height:44px;white-space:nowrap;
}
button:hover,.btn:hover{transform:translateY(-1px);filter:brightness(1.03);box-shadow:0 16px 30px rgba(25,214,199,.30)!important}
.gray,.btn.gray{background:#eef5f5!important;color:#183536!important;box-shadow:none!important;border:1px solid var(--line)!important}.orange,.btn.orange{background:linear-gradient(135deg,#ffbd38,#f59e0b)!important;color:#211400!important}.green,.btn.green{background:linear-gradient(135deg,#19d6c7,#10b981)!important;color:#052221!important}.red,.btn.red{background:linear-gradient(135deg,#ff6b6b,#e5484d)!important;color:#fff!important}
.top-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:14px 0 0}.top-actions .btn{margin:2px}
.alert{background:#fff8e8;border-left:5px solid var(--warning)}.ok{background:#ecfff9;border:1px solid #b7f4df;border-left:5px solid var(--success);padding:14px;border-radius:16px;color:#075c49}.err{background:#fff0f0;border:1px solid #ffc9c9;border-left:5px solid var(--danger);padding:14px;border-radius:16px;color:#9d1c20}
.search{display:flex;gap:8px;align-items:center}.search input{flex:1}.list{max-height:560px;overflow:auto;margin-top:12px}.row{display:block;padding:13px 14px;border:1px solid var(--line);border-radius:16px;margin-bottom:10px;text-decoration:none;color:#1f3637;background:#fbfefe;transition:.16s}.row:hover{background:var(--primary-soft);border-color:#a8eeee;transform:translateX(2px)}
pre{background:#0b211f;color:#e2fffb;padding:14px;border-radius:16px;overflow:auto;max-height:460px}
table,.table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;margin-bottom:14px;overflow:hidden;border-radius:18px;border:1px solid var(--line);background:#fff;color:var(--text)}
th,td,.table th,.table td{border-bottom:1px solid var(--line);padding:12px 11px;text-align:left;vertical-align:top;color:var(--text)}
th,.table th{background:#f4fbfa;color:#24494a;font-size:12px;text-transform:uppercase;letter-spacing:.035em;font-weight:900}tr:hover td{background:#f8fffe}.table-responsive,.table-wrap{width:100%;overflow:auto;border-radius:18px}.pill{display:inline-flex;align-items:center;padding:8px 12px;border-radius:999px;background:var(--primary-soft);color:#08756d;margin:4px;font-weight:900;font-size:12px}
.autocomplete-wrap{position:relative}.autocomplete-box{display:none;position:absolute;left:0;right:0;top:50px;background:#fff;border:1px solid #cbd5e1;border-radius:18px;box-shadow:0 18px 45px rgba(15,23,42,.18);z-index:9999;max-height:360px;overflow:auto}.autocomplete-item{display:block;padding:12px 14px;text-decoration:none;color:#1f2937;border-bottom:1px solid #e5e7eb}.autocomplete-item:hover{background:#effdfa}.autocomplete-item b,.autocomplete-item span,.autocomplete-item small{display:block}.autocomplete-item small{color:#64748b;margin-top:2px}
.modern-wrap{display:grid;grid-template-columns:300px 1fr;gap:18px}.items-grid{display:grid;grid-template-columns:.9fr 2.2fr .55fr .75fr .45fr .45fr .55fr;gap:9px;align-items:end;margin-bottom:8px}.toolbar{display:flex;gap:8px;flex-wrap:wrap}.category-bar{display:flex;gap:10px;overflow-x:auto;padding:4px 2px 12px;scroll-snap-type:x mandatory}.category-card{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:#fff;border-radius:18px;padding:13px 15px;text-decoration:none;font-weight:900;box-shadow:0 10px 24px rgba(15,23,42,.08);scroll-snap-align:start;min-width:max-content}.category-card:hover{border-color:#9be8e2;background:#f8fffe}.module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}.module-card{display:block;text-decoration:none;background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px;box-shadow:0 12px 28px rgba(15,23,42,.08);transition:.16s}.module-card:hover{transform:translateY(-2px);border-color:#a7eeea;background:#fbfffe}.module-card b{display:block;font-size:17px;margin-bottom:5px;color:var(--navy)}.module-card span{color:var(--muted);font-size:13px}
.icp-login{max-width:480px;margin:35px auto}.dash{text-decoration:none;min-height:120px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;align-items:end}
@media(max-width:1100px){.layout,.modern-wrap{grid-template-columns:1fr}.side{position:static}.grid3{grid-template-columns:repeat(2,minmax(0,1fr))}.items-grid{grid-template-columns:1fr 1fr}.items-grid label{display:none}}
@media(max-width:760px){body{font-size:14px}.icp-head,header{position:relative;min-height:auto;padding:18px 14px;flex-direction:column;text-align:center}.icp-logo{width:118px;height:118px}main{padding:0 10px;margin:14px auto}.card{padding:15px;border-radius:18px}.grid,.grid3{grid-template-columns:1fr}.top-actions{display:grid;grid-template-columns:1fr 1fr}.top-actions .btn,.top-actions button{width:100%;margin:0}.search{flex-direction:column}.search button,.search .btn{width:100%}button,.btn{width:100%;white-space:normal}.side .btn{width:100%}table,.table{display:block;overflow-x:auto;white-space:nowrap;border-radius:14px}th,td,.table th,.table td{padding:9px 8px}.items-grid{grid-template-columns:1fr}.items-grid input,.items-grid select{min-height:42px}.big-title{font-size:24px}.module-grid{grid-template-columns:1fr}.category-bar{position:sticky;top:0;background:rgba(255,255,255,.96);z-index:50;border-radius:14px}.category-bar .btn{width:auto}}
@media print{header,.icp-head,.top-actions,.btn,button{display:none!important}body{background:#fff}.card{box-shadow:none;border:0;padding:0}main{margin:0;max-width:none}}

/* Menú superior compacto tipo acordeón para no ocupar espacio en PC ni móviles */
.app-header{justify-content:space-between;align-items:flex-start;flex-wrap:wrap}
.brand-block{display:flex;flex-direction:column;gap:4px;min-width:240px;flex:1}
.menu-accordion{margin-left:auto;max-width:760px;width:min(760px,100%)}
.menu-accordion summary{list-style:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;padding:12px 18px;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#052221;font-weight:900;cursor:pointer;box-shadow:0 12px 25px rgba(25,214,199,.23);user-select:none}
.menu-accordion summary::-webkit-details-marker{display:none}
.menu-accordion-body{margin-top:10px;display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;align-items:center;padding:10px;border:1px solid var(--line);background:#fbfffe;border-radius:18px;box-shadow:0 10px 24px rgba(7,35,34,.06)}
.menu-accordion-body .btn{margin:2px!important;min-height:40px;padding:10px 14px!important}
@media(max-width:760px){.app-header{position:sticky;top:0;text-align:left;align-items:stretch}.brand-block{min-width:0;text-align:left}.menu-accordion{width:100%;max-width:none;margin-left:0}.menu-accordion summary{width:100%;margin-top:10px}.menu-accordion-body{display:grid;grid-template-columns:1fr;gap:8px;justify-content:stretch}.menu-accordion-body .btn{width:100%;margin:0!important}.menu-accordion:not([open]){margin-bottom:0}}

/* Menú acordeón compacto */
.icp-nav-row{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap;margin:16px 0}
.icp-menu-acc{display:inline-block;min-width:230px;border:1px solid #d9e7e7;border-radius:22px;background:#eef7f7;box-shadow:0 8px 22px rgba(0,150,136,.08)}
.icp-menu-acc summary{cursor:pointer;list-style:none;padding:13px 20px;font-weight:800;color:#082b2a;user-select:none}
.icp-menu-acc summary::-webkit-details-marker{display:none}
.icp-menu-body{display:flex;gap:12px;flex-wrap:wrap;padding:0 14px 14px 14px}
.icp-salir{align-self:flex-start}
header .icp-nav-row{justify-content:flex-end;margin-top:8px}
@media(max-width:760px){header .icp-nav-row{justify-content:flex-start}.icp-menu-acc{width:100%}.icp-menu-body .btn{width:100%;text-align:center}.icp-salir{width:100%;text-align:center}}

/* Alertas críticas de resolución: rojo titilante */
@keyframes icpBlinkRed { 0%,100%{background:#fff1f1;border-color:#ff1f1f;color:#8b0000;box-shadow:0 0 0 4px rgba(255,0,0,.12)} 50%{background:#ff2020;border-color:#b00000;color:#fff;box-shadow:0 0 22px rgba(255,0,0,.55)} }
.icp-alerta-resolucion{animation:icpBlinkRed 1s infinite;font-weight:900;border:2px solid #ff1f1f!important;border-radius:16px!important;font-size:18px!important}

/* Orden visual y alerta fuerte para resoluciones vencidas o próximas a vencer */
.icp-alerta-resolucion,
.card.icp-alerta-resolucion{
  animation:icpBlinkRed 0.85s infinite!important;
  border:3px solid #ff0000!important;
  background:#ffecec!important;
  color:#8b0000!important;
  font-weight:900!important;
}
tr.icp-alerta-resolucion td{
  animation:icpBlinkRed 0.85s infinite!important;
  background:#ffecec!important;
  color:#8b0000!important;
  font-weight:900!important;
}
tr.icp-alerta-resolucion:hover td{background:#ff2020!important;color:#fff!important}
.card.icp-alerta-resolucion h3,.card.icp-alerta-resolucion b{color:inherit!important}

/* Ajustes 2026-05-17: portal cliente y módulo facturas amigable en celulares/tablets */
@media(max-width:900px){
  main{padding:0 10px!important;margin:12px auto!important;max-width:100%!important}
  .card{padding:14px!important;margin-bottom:12px!important;border-radius:18px!important}
  .grid,.grid3,.module-grid,.form-grid{grid-template-columns:1fr!important;gap:10px!important}
  header,.icp-head{position:relative!important;min-height:auto!important;padding:14px 12px!important;gap:10px!important}
  header h2,.icp-head h2{font-size:22px!important;line-height:1.1!important}
  .small,small{font-size:12px!important}
  .top-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important}
  .top-actions .btn,.top-actions button{width:100%!important;margin:0!important}
  .table-wrap,.table-responsive{overflow-x:auto!important;-webkit-overflow-scrolling:touch!important}
  table,.table{min-width:760px!important;font-size:12px!important}
  .dash{min-height:auto!important;padding:16px!important}
  input,select,textarea{font-size:16px!important;min-height:44px!important}
}
@media(max-width:560px){
  .top-actions{grid-template-columns:1fr!important}
  button,.btn{width:100%!important;margin:2px 0!important;white-space:normal!important}
  .icp-logo{width:92px!important;height:92px!important}
  .card h2,.card h3{font-size:18px!important}
  table,.table{min-width:680px!important}
}
.btn.danger,button.danger{background:linear-gradient(135deg,#ff6b6b,#e5484d)!important;color:#fff!important}


/* Corrección responsive 2026-05-18: contraseña grande, ojo pequeño y salir fijo en móvil/tablet */
.login-pass-wrap{display:flex!important;align-items:center!important;gap:6px!important;width:100%!important}
.login-pass-wrap input[type=password],.login-pass-wrap input[type=text]{flex:1 1 auto!important;width:100%!important;min-width:0!important;height:52px!important;font-size:17px!important}
.btn-eye-login{flex:0 0 38px!important;width:38px!important;min-width:38px!important;height:38px!important;min-height:38px!important;padding:0!important;border-radius:10px!important;font-size:16px!important;line-height:1!important}
@media(max-width:900px){
  .login-pass-wrap input[type=password],.login-pass-wrap input[type=text]{height:56px!important;font-size:18px!important}
  .btn-eye-login{flex-basis:34px!important;width:34px!important;min-width:34px!important;height:34px!important;min-height:34px!important;font-size:14px!important;border-radius:9px!important}
  .icp-salir{position:fixed!important;top:8px!important;right:8px!important;z-index:99998!important;width:auto!important;min-width:0!important;padding:8px 10px!important;border-radius:999px!important;font-size:12px!important;line-height:1!important;box-shadow:0 8px 24px rgba(229,72,77,.30)!important}
  header .icp-nav-row,.icp-nav-row{padding-right:78px!important}
}

/* Loader visual para autofiltros/consultas AJAX */
.icp-filter-loading{position:fixed;inset:0;background:rgba(8,35,34,.18);display:none;align-items:center;justify-content:center;z-index:99990;padding:18px}
.icp-filter-loading.show{display:flex}
.icp-filter-loading>div{background:#fff;border:1px solid #bfecea;border-radius:22px;padding:18px 24px;box-shadow:0 22px 60px rgba(7,35,34,.22);font-weight:900;color:#082b2a;text-align:center}
.icp-filter-loading>div:before{content:'⏳ ';}


/* Alertas de licencia portal cliente */
.lic-portal-alert{max-width:1180px;margin:14px auto 16px;padding:16px 18px;border-radius:22px;box-shadow:0 14px 40px rgba(0,0,0,.12);display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;font-weight:700;animation:licPulseIn .45s ease-out both}
.lic-portal-alert b{font-size:16px}.lic-portal-alert span{font-size:14px;line-height:1.45}.lic-portal-alert.lic-warn{background:linear-gradient(135deg,#fff7ed,#fed7aa);border:1px solid #fb923c;color:#7c2d12}.lic-portal-alert.lic-ok{background:linear-gradient(135deg,#ecfdf5,#bbf7d0);border:1px solid #22c55e;color:#064e3b}
@keyframes licPulseIn{from{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:none}}
.lic-expired-box{background:linear-gradient(135deg,#450a0a,#991b1b);color:#fff;border-radius:24px;padding:18px;margin:0 0 16px;box-shadow:0 18px 50px rgba(153,27,27,.28);border:1px solid rgba(255,255,255,.20);font-weight:800}.lic-expired-box small{display:block;color:#fee2e2;font-weight:600;margin-top:5px;line-height:1.45}


/* Optimización rendimiento visual 2026-05-25 */
img{max-width:100%;height:auto}
.grid,.grid3,.module-grid,.form-grid,.fb-wrap,.table-wrap{content-visibility:auto;contain-intrinsic-size:1px 700px}
.fb-pick,.card,.fb-card{content-visibility:auto;contain-intrinsic-size:1px 160px}
.icp-skeleton{position:relative;overflow:hidden;background:#eef8f7!important;border-radius:16px;min-height:80px}
.icp-skeleton:after{content:'';position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.62),transparent);animation:icpSkeleton 1.1s infinite}
@keyframes icpSkeleton{to{transform:translateX(100%)}}
@media(max-width:900px){.grid,.grid3,.module-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}.fb-pick,.card,.fb-card{contain-intrinsic-size:1px 120px}}
@media(max-width:560px){.grid,.grid3,.module-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}button,.btn{transition:none!important}.card,.fb-card{box-shadow:0 8px 22px rgba(7,35,34,.08)!important}}

/* Modernización global iClickPOS 2026-05-28: interfaz más limpia, compacta y responsive */
:root{--icp-glass:rgba(255,255,255,.86);--icp-blue:#0ea5e9;--icp-indigo:#2563eb;--icp-text:#0f172a;--icp-soft:#f8fafc;--icp-border:#e2e8f0}
body{min-height:100vh;background:radial-gradient(circle at top left,rgba(14,165,233,.10),transparent 34%),linear-gradient(180deg,#f8fafc 0%,#eef8f7 100%)!important;color:var(--icp-text)!important}
header,.icp-head{backdrop-filter:blur(14px);background:var(--icp-glass)!important;border-bottom:1px solid rgba(148,163,184,.25)!important;box-shadow:0 10px 35px rgba(15,23,42,.08)!important}
.card,.fb-card,.panel,.box,.invoice{border-radius:22px!important;border:1px solid rgba(148,163,184,.26)!important;box-shadow:0 18px 46px rgba(15,23,42,.08)!important;background:rgba(255,255,255,.94)!important}
button,.btn,input[type=submit],input[type=button]{min-height:38px!important;padding:9px 14px!important;font-size:13px!important;line-height:1.15!important;border-radius:13px!important;box-shadow:0 8px 20px rgba(15,118,110,.15)!important}
.btn.small,button.small,.table .btn,.table button,td .btn,td button{min-height:32px!important;padding:7px 10px!important;font-size:12px!important;margin:2px!important;border-radius:11px!important}
input,select,textarea{border-radius:14px!important;border-color:#dbe7e7!important;background:#fff!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.6)!important}
.table-wrap,.table-responsive,div[style*="overflow:auto"]{border-radius:18px!important;-webkit-overflow-scrolling:touch!important}
table,.table{border-radius:18px!important;overflow:hidden!important;background:#fff!important} th,.table th{position:sticky;top:0;z-index:3;background:linear-gradient(180deg,#f8fffe,#edf7f6)!important;color:#0f3b3a!important} tr:nth-child(even) td{background:#fcfdfd!important} tr:hover td{background:#eefdfa!important}
form.grid4,.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:end}.actions,.top-actions,.icp-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.actions .btn,.top-actions .btn,.icp-actions .btn{margin:0!important}
@media(max-width:1100px){form.grid4,.grid4{grid-template-columns:repeat(2,minmax(0,1fr))!important}.layout{grid-template-columns:1fr!important}.side{position:relative!important;top:auto!important}}
@media(max-width:760px){header,.icp-head{position:relative!important;display:block!important;padding:12px!important}main{width:100%!important;margin:10px auto!important;padding:0 8px!important}.card,.fb-card,.panel,.invoice{padding:14px!important;border-radius:18px!important}form.grid4,.grid4,.grid,.grid3,.form-grid{grid-template-columns:1fr!important}.actions,.top-actions,.icp-actions{display:grid!important;grid-template-columns:1fr 1fr!important}.actions .btn,.actions button,.top-actions .btn,.top-actions button,.icp-actions .btn,.icp-actions button{width:100%!important;margin:0!important;white-space:normal!important}button,.btn,input[type=submit],input[type=button]{width:auto!important;min-height:38px!important;padding:9px 11px!important;font-size:12.5px!important}td button,td .btn,.table button,.table .btn{width:auto!important;display:inline-flex!important}.table,table{min-width:720px!important;font-size:12px!important}input,select,textarea{font-size:16px!important}.invoice .top{display:block!important}.invoice .right{text-align:left!important;margin-top:10px!important}}
@media(max-width:430px){.actions,.top-actions,.icp-actions{grid-template-columns:1fr!important}.card h2,.card h3,header h2{font-size:18px!important}.small,small,label{font-size:11px!important}}


/* FIX iClickPOS shell: evita logo gigante y módulo Documento Soporte roto */
.app{display:grid!important;grid-template-columns:260px minmax(0,1fr)!important;min-height:100vh!important;width:100%!important}
.app>.side{position:sticky!important;top:0!important;height:100vh!important;overflow:auto!important;background:#071918!important;color:#eaffff!important;padding:16px!important;border-right:1px solid rgba(25,214,199,.18)!important;z-index:20!important}
.app>.side .brand{display:flex!important;align-items:center!important;gap:12px!important;margin-bottom:16px!important}
.app>.side .brand img{width:58px!important;height:58px!important;object-fit:contain!important;border-radius:16px!important;padding:6px!important;background:#061b20!important;box-shadow:0 0 0 1px rgba(25,214,199,.25)!important}
.app>.side .brand h1{font-size:18px!important;margin:0!important;color:#fff!important}.app>.side .brand p{font-size:12px!important;margin:3px 0 0!important;color:#9ee8e2!important}
.app>.side .nav{display:grid!important;gap:7px!important}.app>.side .nav a{display:block!important;text-decoration:none!important;color:#d8fffb!important;background:rgba(255,255,255,.06)!important;border:1px solid rgba(255,255,255,.08)!important;border-radius:13px!important;padding:10px 12px!important;font-weight:700!important;font-size:13px!important}.app>.side .nav a.active,.app>.side .nav a:hover{background:linear-gradient(135deg,#19d6c7,#10b981)!important;color:#052221!important}
.app>.main{min-width:0!important;width:100%!important;max-width:none!important;margin:0!important;padding:18px!important}.app>.main>.top{background:#fff!important;border:1px solid #dce8e8!important;border-radius:20px!important;padding:14px 18px!important;margin-bottom:14px!important;box-shadow:0 10px 28px rgba(7,35,34,.06)!important}.app>.main>.top h2{margin:0 0 3px!important}.app>.main>.top p{margin:0!important;color:#647779!important}
@media(max-width:900px){.app{display:block!important}.app>.side{position:relative!important;height:auto!important;max-height:none!important}.app>.side .nav{grid-template-columns:repeat(2,minmax(0,1fr))!important}.app>.main{padding:10px!important}}
@media(max-width:520px){.app>.side .nav{grid-template-columns:1fr!important}}

/* FIX 2026-05-29: checks pequeños y formularios compactos */
input[type="checkbox"]{width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;accent-color:#10c7ad!important;vertical-align:middle!important;}
.card label input[type="checkbox"], .fb-card label input[type="checkbox"]{margin-right:8px!important;}
.modulos-portal-cliente,.portal-modulos,.module-permissions{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))!important;gap:8px!important;}
.modulos-portal-cliente label,.portal-modulos label,.module-permissions label{display:flex!important;align-items:center!important;gap:8px!important;padding:8px 10px!important;border:1px solid var(--line,#d8eeee)!important;border-radius:12px!important;background:#f8fffe!important;font-size:12px!important;font-weight:800!important;line-height:1.2!important;}


/* FIX 2026-05-29 móvil/tablet: menú lateral tipo acordeón + loader visible */
.icp-mobile-menu-btn{display:none!important;align-items:center!important;justify-content:center!important;width:100%!important;margin:10px 0 4px!important;border-radius:16px!important;padding:12px 14px!important;background:linear-gradient(135deg,var(--primary,#19d6c7),var(--primary-dark,#0aa99e))!important;color:#052221!important;font-weight:900!important;box-shadow:0 12px 24px rgba(25,214,199,.24)!important;border:0!important;cursor:pointer!important}
.icp-sidebar-unificada .nav{transition:max-height .25s ease,opacity .2s ease,transform .2s ease}
@media(max-width:900px){
  .app{display:block!important}
  .app>.side.icp-sidebar-unificada{position:sticky!important;top:0!important;z-index:1000!important;width:100%!important;max-width:none!important;min-height:0!important;height:auto!important;border-radius:0 0 22px 22px!important;padding:10px 12px!important;box-shadow:0 12px 34px rgba(0,0,0,.20)!important}
  .icp-sidebar-unificada .brand{display:flex!important;align-items:center!important;gap:10px!important;margin-bottom:0!important}
  .icp-sidebar-unificada .brand img{width:42px!important;height:42px!important;border-radius:12px!important;padding:5px!important}
  .icp-sidebar-unificada .brand h1{font-size:18px!important;margin:0!important;line-height:1!important}
  .icp-sidebar-unificada .brand p{font-size:11px!important;margin:2px 0 0!important}
  .icp-mobile-menu-btn{display:flex!important}
  .icp-sidebar-unificada .nav{display:grid!important;grid-template-columns:1fr 1fr!important;gap:7px!important;max-height:0!important;opacity:0!important;overflow:hidden!important;transform:translateY(-4px)!important;margin-top:0!important;padding-top:0!important}
  .icp-sidebar-unificada.icp-menu-open .nav{max-height:70vh!important;opacity:1!important;overflow:auto!important;transform:translateY(0)!important;margin-top:8px!important;padding-bottom:4px!important}
  .icp-sidebar-unificada .nav a{min-height:38px!important;padding:10px 12px!important;margin:0!important;border-radius:13px!important;font-size:12px!important;line-height:1.15!important;display:flex!important;align-items:center!important;justify-content:flex-start!important}
  .app>.main{padding:10px!important;margin:0!important;width:100%!important;max-width:none!important}
  .app>.main>.top{margin-top:10px!important;padding:12px 14px!important;border-radius:18px!important}
  body.icp-menu-mobile-open{overflow:hidden!important}
  body.icp-menu-mobile-open .icp-sidebar-unificada.icp-menu-open .nav{max-height:calc(100vh - 120px)!important}
}
@media(max-width:520px){.icp-sidebar-unificada .nav{grid-template-columns:1fr!important}.icp-sidebar-unificada .nav a{font-size:12px!important}.icp-mobile-menu-btn{font-size:13px!important}}
@media(min-width:901px){.icp-sidebar-unificada .nav{max-height:none!important;opacity:1!important;overflow:visible!important}.icp-mobile-menu-btn{display:none!important}}
#icp-auto-loading,.icp-filter-loading{z-index:2147483000!important}
@media(max-width:900px){.icp-auto-card,.icp-filter-loading>div{width:min(92vw,440px)!important;padding:22px 20px!important;border-radius:22px!important}.icp-auto-text{font-size:15px!important}.icp-auto-note{font-size:12px!important}}

/* ==========================================================
   FIX RESPONSIVE 2026-05-29: menú móvil/tablet por categorías
   y acciones de informes funcionales en pantallas pequeñas.
   No modifica lógica PHP ni consultas; solo presentación/UX.
   ========================================================== */
@media (max-width:1024px){
  .icp-sidebar-unificada .nav.icp-nav-categorized > a.icp-original-link{display:none!important;}
  .icp-mobile-accordion{display:block;width:100%;padding:6px 0 10px;}
  .icp-mobile-accordion details{border:1px solid rgba(15,118,110,.16);border-radius:16px;background:#ffffff;margin:8px 0;box-shadow:0 8px 22px rgba(7,35,34,.06);overflow:hidden;}
  .icp-mobile-accordion summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 14px;font-weight:900;color:#083533;background:linear-gradient(135deg,#f7fffe,#e7fffb);}
  .icp-mobile-accordion summary::-webkit-details-marker{display:none;}
  .icp-mobile-accordion summary::after{content:'+';font-size:20px;line-height:1;color:#0aa99e;font-weight:900;}
  .icp-mobile-accordion details[open] summary::after{content:'–';}
  .icp-mobile-accordion .icp-acc-body{display:grid;grid-template-columns:1fr;gap:7px;padding:10px;background:#fbfffe;}
  .icp-mobile-accordion .icp-acc-body a{display:flex!important;width:100%!important;margin:0!important;border-radius:12px!important;padding:12px 13px!important;background:#fff!important;border:1px solid #dce8e8!important;color:#123536!important;box-shadow:none!important;text-decoration:none!important;font-weight:800!important;white-space:normal!important;line-height:1.25;}
  .icp-mobile-accordion .icp-acc-body a.active{background:linear-gradient(135deg,#19d6c7,#10b981)!important;color:#052221!important;border-color:transparent!important;}
  .icp-sidebar-unificada.icp-menu-open{overflow-y:auto!important;-webkit-overflow-scrolling:touch;}
  body.icp-menu-mobile-open{overflow:hidden!important;}
}
@media (min-width:1025px){.icp-mobile-accordion{display:none!important}.icp-sidebar-unificada .nav.icp-nav-categorized > a.icp-original-link{display:flex!important}}

/* Botones de acciones de informes: en celular/tablet se abren como panel fijo inferior. */
.doc-actions,.ds-actions,.table-actions,.acciones,.action-menu{position:relative;}
.action-menu summary{touch-action:manipulation;cursor:pointer;}
@media (max-width:900px){
  .table-wrap,.table-responsive,.ds-table-scroll{overflow-x:auto!important;overflow-y:visible!important;-webkit-overflow-scrolling:touch;}
  td:last-child, th:last-child{min-width:120px;}
  details.action-menu[open] > summary{position:relative;z-index:10002!important;}
  details.action-menu[open] > .action-panel{
    position:fixed!important;left:10px!important;right:10px!important;top:auto!important;bottom:12px!important;
    z-index:10001!important;min-width:0!important;width:auto!important;max-height:70vh!important;overflow:auto!important;
    display:grid!important;grid-template-columns:1fr!important;gap:8px!important;padding:14px!important;
    border-radius:22px!important;background:#ffffff!important;border:1px solid #cfe1e1!important;
    box-shadow:0 26px 80px rgba(7,35,34,.28)!important;
  }
  details.action-menu[open] > .action-panel::before{content:'Acciones del documento';display:block;font-weight:900;color:#082322;margin-bottom:2px;}
  details.action-menu[open] > .action-panel .btn,
  details.action-menu[open] > .action-panel button,
  details.action-menu[open] > .action-panel a{width:100%!important;margin:0!important;min-height:42px!important;white-space:normal!important;text-align:center!important;}
  body.icp-actions-open::before{content:'';position:fixed;inset:0;background:rgba(8,35,34,.30);z-index:10000;backdrop-filter:blur(2px);}
  .table td .btn,.table td button{white-space:normal!important;}
}

/* Acciones en histórico documento soporte y tablas sin action-menu: apiladas y tocables */
@media (max-width:760px){
  td[style*="white-space:nowrap"]{white-space:normal!important;min-width:180px;}
  td form[style*="display:inline"], td form[style*="display: inline"]{display:block!important;margin-bottom:6px!important;}
  td form[style*="display:inline"] button, td a.btn{width:100%!important;margin:4px 0!important;}
}


/* FIX acciones informes móvil/tablet 2026-05-29 */
.icp-actions-backdrop{display:none}
@media(max-width:1024px){
  .icp-mobile-menu-btn{font-weight:900!important;letter-spacing:.2px!important}
  .icp-mobile-menu-btn::after{content:'  ▾';font-weight:900}
  body.icp-actions-open{overflow:hidden!important}
  .icp-actions-backdrop{display:block!important;position:fixed!important;inset:0!important;background:rgba(2,18,20,.42)!important;z-index:999998!important;backdrop-filter:blur(2px)!important}
  details.action-menu[open]>.action-panel{position:fixed!important;left:12px!important;right:12px!important;bottom:14px!important;top:auto!important;width:auto!important;min-width:0!important;max-height:76vh!important;overflow:auto!important;z-index:1000000!important;display:grid!important;grid-template-columns:1fr!important;gap:9px!important;padding:16px!important;border-radius:22px!important;background:#fff!important;border:1px solid #cde8e8!important;box-shadow:0 25px 75px rgba(2,18,20,.38)!important;pointer-events:auto!important;transform:none!important}
  details.action-menu[open]>.action-panel:before{content:'Acciones del documento';font-weight:900;color:#082f2d;font-size:15px;padding-bottom:4px;border-bottom:1px solid #e5f3f3;margin-bottom:4px}
  details.action-menu[open]>.action-panel a,
  details.action-menu[open]>.action-panel button,
  details.action-menu[open]>.action-panel .btn{display:flex!important;align-items:center!important;justify-content:center!important;width:100%!important;min-height:46px!important;padding:11px 12px!important;margin:0!important;border-radius:14px!important;text-align:center!important;white-space:normal!important;line-height:1.2!important;font-size:13px!important;position:relative!important;z-index:1000001!important;pointer-events:auto!important;touch-action:manipulation!important}
  .report-table-wrap,.table-wrap{overflow-x:auto!important;-webkit-overflow-scrolling:touch!important}
  .doc-actions, details.action-menu, details.action-menu summary{position:relative!important;z-index:20!important;pointer-events:auto!important;touch-action:manipulation!important}
}

/* ==========================================================
   FIX FINAL MÓVIL/TABLET 2026-05-29
   Menús/categorías desplegables y botones táctiles sin bloqueo.
   ========================================================== */
@media(max-width:1024px){
  .icp-sidebar-unificada.icp-menu-open .nav{
    display:block!important;
    max-height:calc(100vh - 112px)!important;
    opacity:1!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    transform:none!important;
    padding:8px 2px 14px!important;
    -webkit-overflow-scrolling:touch!important;
  }
  .icp-sidebar-unificada .nav.icp-nav-categorized > a.icp-original-link{display:none!important;}
  .icp-mobile-accordion{display:block!important;width:100%!important;grid-column:1/-1!important;position:relative!important;z-index:1003!important;content-visibility:visible!important;contain-intrinsic-size:auto!important;}
  .icp-mobile-accordion details{display:block!important;width:100%!important;margin:8px 0!important;overflow:hidden!important;}
  .icp-mobile-accordion details[open] .icp-acc-body{display:grid!important;}
  .icp-mobile-accordion summary{touch-action:manipulation!important;pointer-events:auto!important;min-height:44px!important;}
  .icp-mobile-accordion .icp-acc-body a{pointer-events:auto!important;touch-action:manipulation!important;min-height:44px!important;}
  .icp-mobile-menu-btn{pointer-events:auto!important;touch-action:manipulation!important;position:relative!important;z-index:1004!important;}
  .fb-submenu button,.fb-row button[type="button"],button[type="button"],.fb-panel-tools button,.fb-action-mini button,.fb-action-mini a{pointer-events:auto!important;touch-action:manipulation!important;position:relative!important;z-index:5!important;}
  .fb-card,.card,.fb-pick,.fb-wrap,.fb-list-panel,.fb-submenu,.fb-row{content-visibility:visible!important;contain-intrinsic-size:auto!important;}
  .fb-list-panel.active{display:block!important;visibility:visible!important;opacity:1!important;}
  #fbProductoPanel:not(.fb-hidden),#fbClientePanel:not(.fb-hidden){display:block!important;visibility:visible!important;opacity:1!important;}
  .table-wrap,.table-responsive,div[style*="overflow:auto"]{overflow-x:auto!important;overflow-y:visible!important;-webkit-overflow-scrolling:touch!important;}
  td .btn,td button,td a.btn{pointer-events:auto!important;touch-action:manipulation!important;}
}


/* FIX REAL 2026-05-29: menú módulos visible en celulares y tablets hasta 1024px */
@media(max-width:1024px){
  .icp-mobile-menu-btn{display:flex!important;visibility:visible!important;opacity:1!important;pointer-events:auto!important;touch-action:manipulation!important;}
  .app>.side.icp-sidebar-unificada{position:sticky!important;top:0!important;z-index:1000!important;width:100%!important;max-width:none!important;min-height:0!important;height:auto!important;}
  .icp-sidebar-unificada .nav{display:block!important;max-height:0!important;opacity:0!important;overflow:hidden!important;transform:translateY(-4px)!important;}
  .icp-sidebar-unificada.icp-menu-open .nav{display:block!important;max-height:calc(100vh - 115px)!important;opacity:1!important;overflow-y:auto!important;overflow-x:hidden!important;transform:none!important;margin-top:8px!important;padding:8px 2px 14px!important;}
  .icp-sidebar-unificada .nav.icp-nav-categorized>a.icp-original-link{display:none!important;}
  .icp-mobile-accordion{display:block!important;width:100%!important;visibility:visible!important;opacity:1!important;}
  .icp-mobile-accordion details{display:block!important;width:100%!important;}
  .icp-mobile-accordion .icp-acc-body{display:none!important;grid-template-columns:1fr!important;gap:7px!important;padding:10px!important;}
  .icp-mobile-accordion details[open]>.icp-acc-body{display:grid!important;}
  .icp-mobile-accordion summary{display:flex!important;pointer-events:auto!important;touch-action:manipulation!important;user-select:none!important;}
  .icp-mobile-accordion .icp-acc-body a{display:flex!important;pointer-events:auto!important;touch-action:manipulation!important;min-height:44px!important;align-items:center!important;}
}
@media(min-width:1025px){.icp-mobile-menu-btn{display:none!important}}

/* FIX REAL 2026-05-29: crear/editar productos y clientes en móvil */
@media(max-width:900px){
  #fbProductoPanel:not(.fb-hidden),#fbClientePanel:not(.fb-hidden){display:block!important;position:relative!important;left:auto!important;top:auto!important;width:100%!important;max-width:100%!important;z-index:80!important;visibility:visible!important;opacity:1!important;transform:none!important;}
  #fbProductoPanel.fb-producto-floating{position:relative!important;left:auto!important;top:auto!important;width:100%!important;box-shadow:0 12px 30px rgba(12,74,66,.12)!important;}
  #fbProductoPanel .fb-grid,#fbClientePanel.fb-grid{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;}
  .fb-submenu{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;}
  .fb-submenu button,.fb-row button[type="button"],.fb-action-mini button,.fb-action-mini a{width:100%!important;min-height:44px!important;pointer-events:auto!important;touch-action:manipulation!important;}
  .fb-list-panel.active{display:block!important;visibility:visible!important;opacity:1!important;}
}

/* ==========================================================
   FIX 2026-05-29: contraste submenús móvil + botón Volver global
   ========================================================== */
@media(max-width:1024px){
  .icp-mobile-accordion details,
  .icp-menu-acc,
  .menu-accordion,
  details.icp-menu-acc{
    background:#073a3a!important;
    border-color:rgba(25,214,199,.42)!important;
    box-shadow:0 12px 28px rgba(0,0,0,.18)!important;
  }
  .icp-mobile-accordion summary,
  .icp-menu-acc>summary,
  .menu-accordion summary,
  details.icp-menu-acc>summary{
    background:linear-gradient(135deg,#062f31,#0b5f5a)!important;
    color:#ffffff!important;
    text-shadow:0 1px 1px rgba(0,0,0,.28)!important;
    border-bottom:1px solid rgba(255,255,255,.10)!important;
  }
  .icp-mobile-accordion summary::after,
  .menu-accordion summary::after,
  .icp-menu-acc>summary::after{
    color:#ffffff!important;
  }
  .icp-mobile-accordion .icp-acc-body,
  .icp-menu-body,
  .menu-accordion-body{
    background:#092f31!important;
    border-color:rgba(25,214,199,.20)!important;
  }
  .icp-mobile-accordion .icp-acc-body a,
  .icp-menu-body a,
  .icp-menu-body .btn,
  .menu-accordion-body a,
  .menu-accordion-body .btn{
    background:#0f4647!important;
    color:#ffffff!important;
    border:1px solid rgba(255,255,255,.18)!important;
    box-shadow:0 6px 14px rgba(0,0,0,.12)!important;
    font-weight:850!important;
  }
  .icp-mobile-accordion .icp-acc-body a:hover,
  .icp-menu-body a:hover,
  .icp-menu-body .btn:hover,
  .menu-accordion-body a:hover,
  .menu-accordion-body .btn:hover{
    background:#13635f!important;
    color:#ffffff!important;
  }
  .icp-mobile-accordion .icp-acc-body a.active,
  .icp-menu-body a.active,
  .menu-accordion-body a.active{
    background:linear-gradient(135deg,#13c8b5,#0ea5a0)!important;
    color:#062321!important;
  }
}
.icp-volver-global{
  position:fixed!important;
  left:14px!important;
  bottom:14px!important;
  z-index:99980!important;
  min-height:42px!important;
  padding:10px 14px!important;
  border-radius:999px!important;
  border:1px solid rgba(255,255,255,.30)!important;
  background:linear-gradient(135deg,#073a3a,#0aa99e)!important;
  color:#ffffff!important;
  font-weight:900!important;
  text-decoration:none!important;
  box-shadow:0 14px 30px rgba(0,0,0,.22)!important;
  display:inline-flex!important;
  align-items:center!important;
  gap:7px!important;
  line-height:1!important;
  cursor:pointer!important;
}
.icp-volver-global:hover{filter:brightness(1.08)!important;color:#fff!important;}
@media(min-width:1025px){.icp-volver-global{display:none!important;}}
@media(max-width:520px){.icp-volver-global{left:10px!important;bottom:10px!important;font-size:13px!important;padding:10px 12px!important;}}

/* FIX final: no overlay bloqueante en acciones informes */
@media(max-width:900px){body.icp-actions-open::before{display:none!important;content:none!important;pointer-events:none!important;opacity:0!important;visibility:hidden!important}#icp-actions-backdrop,.icp-actions-backdrop,#icpActionsSheet,.icp-actions-sheet{display:none!important;pointer-events:none!important;opacity:0!important;visibility:hidden!important}body.icp-actions-open,body.icp-action-sheet-open{overflow:auto!important;touch-action:auto!important}}
