/* Insuber móvil - estilo app */
:root{
  --blue1:#0b4b7a;
  --blue2:#0a3b67;
  --orange1:#ff7a18;
  --orange2:#ff5a1a;

  --bg:#eef3f9;
  --card:#ffffff;
  --text:#0f172a;
  --muted:#64748b;
  --border:#e5e7eb;
  --shadow:0 14px 40px rgba(2,8,23,.10);

  --radius:18px;
  --radius2:14px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  background: radial-gradient(1100px 500px at 50% -200px, rgba(11,75,122,.35), transparent 70%),
              linear-gradient(#f6f9ff, var(--bg));
  color:var(--text);
}

.app{min-height:100vh;display:flex;flex-direction:column}
.topbar{
  position:sticky; top:0; z-index:50;
  background: linear-gradient(180deg, var(--blue1), var(--blue2));
  color:#fff;
  box-shadow: 0 10px 30px rgba(2,8,23,.18);
}
.topbar-inner{padding:14px 14px 12px;display:flex;align-items:center;gap:10px}
.back{
  display:inline-flex; align-items:center; justify-content:center;
  width:36px;height:36px;border-radius:12px;
  border:1px solid rgba(255,255,255,.25);
  color:#fff; text-decoration:none;
}
.title{font-weight:900;letter-spacing:.2px;font-size:16px;line-height:1.1}
.subtitle{opacity:.85;font-size:12px;font-weight:700}
.content{flex:1;padding:14px;padding-bottom:78px}

.card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow: var(--shadow);
  padding:14px;
  margin-bottom:14px;
}
.row{display:flex; gap:10px; align-items:center}
.sp{justify-content:space-between}
.badge{
  display:inline-flex;align-items:center;gap:6px;
  padding:6px 10px;border-radius:999px;
  font-size:12px;font-weight:800;
  border:1px solid var(--border);
  background:#f8fafc;
  color:var(--muted);
}
.badge.ok{background:rgba(16,185,129,.10); border-color:rgba(16,185,129,.25); color:#047857}
.badge.no{background:rgba(239,68,68,.10); border-color:rgba(239,68,68,.25); color:#b91c1c}

.input, .textarea, select.input{
  width:100%;
  border:1px solid var(--border);
  background:#fff;
  border-radius:14px;
  padding:12px 12px;
  font-size:14px;
  outline:none;
}
.textarea{min-height:120px; resize:vertical}
.input:focus, .textarea:focus{
  border-color: rgba(11,75,122,.35);
  box-shadow: 0 0 0 4px rgba(11,75,122,.10);
}

.btn{
  border:0;border-radius:14px;padding:12px 14px;
  font-weight:900;font-size:14px;cursor:pointer;
}
.btn-primary{
  color:#fff;background: linear-gradient(180deg, var(--orange1), var(--orange2));
  box-shadow: 0 12px 26px rgba(255,122,24,.25);
}
.btn-blue{color:#fff;background: linear-gradient(180deg, #1c77c3, #0b4b7a);}
.btn-ghost{background:#fff;border:1px solid var(--border);color:var(--text);}
.btn-wide{width:100%}

.list{display:flex; flex-direction:column; gap:10px;}
.item{
  display:flex; gap:10px; align-items:center;
  padding:12px;border:1px solid var(--border);
  border-radius:16px;background:#fff;
  text-decoration:none;color:inherit;
}
.item:hover{border-color:rgba(11,75,122,.25)}
.item .name{font-weight:900}
.item .meta{color:var(--muted); font-size:12px; font-weight:700}
.chev{margin-left:auto; opacity:.55; font-weight:900}

.bottom{
  position:fixed; left:0; right:0; bottom:0;
  background:#fff;border-top:1px solid var(--border);
  padding:10px 10px 12px; z-index:60;
}
.nav{
  max-width:520px;margin:0 auto;
  display:flex;gap:8px;
}
.nav a{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:4px;padding:10px 8px;border-radius:16px;
  text-decoration:none;color:var(--muted);
  border:1px solid transparent;
  font-weight:800;font-size:12px;
}
.nav a.active{
  color:var(--blue1);
  background:rgba(11,75,122,.08);
  border-color:rgba(11,75,122,.15);
}
.nav a .ico{font-size:18px;line-height:1}
.nav a .lbl{font-size:11px;font-weight:900;letter-spacing:.2px}

.small{font-size:12px;color:var(--muted);font-weight:700}
.hr{height:1px;background:var(--border);margin:12px 0}
.center{text-align:center}
.logo{width:160px; max-width:70%; margin:10px auto 6px; display:block;}
.error{
  background:rgba(239,68,68,.08);
  border:1px solid rgba(239,68,68,.20);
  color:#b91c1c;
  border-radius:14px;
  padding:10px 12px;
  font-weight:800;
  font-size:13px;
}

/* Dashboard móvil profesional */
.dash-new{padding-bottom:92px}
.dash-hero{
  position:relative;overflow:hidden;
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:18px;border-radius:24px;color:#fff;
  background:
    radial-gradient(500px 220px at 86% 15%, rgba(255,122,24,.42), transparent 62%),
    linear-gradient(135deg,#06395f,#0b4b7a 58%,#0a3b67);
  box-shadow:0 18px 50px rgba(11,75,122,.24);
  margin-bottom:14px;
}
.dash-hero:before{content:"";position:absolute;inset:-80px -120px auto auto;width:220px;height:220px;border-radius:999px;background:rgba(255,255,255,.10)}
.dash-hero-text{position:relative;z-index:1;min-width:0}
.dash-kicker{font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.12em;opacity:.82}
.dash-hero h1{margin:6px 0 6px;font-size:25px;line-height:1.05;letter-spacing:-.04em}
.dash-hero p{margin:0;color:rgba(255,255,255,.86);font-size:13px;font-weight:750;line-height:1.35;max-width:520px}
.dash-period{display:inline-flex;margin-top:12px;padding:8px 10px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);font-size:12px;font-weight:850}
.dash-hero-logo{position:relative;z-index:1;width:72px;height:72px;object-fit:contain;background:rgba(255,255,255,.92);border-radius:22px;padding:10px;box-shadow:0 15px 38px rgba(2,8,23,.22)}
.dash-grid-kpi{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:14px}
.dash-kpi{display:block;text-decoration:none;color:var(--text);background:#fff;border:1px solid var(--border);border-radius:20px;padding:13px;box-shadow:0 12px 34px rgba(2,8,23,.07)}
.dash-kpi .dash-ico{display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;border-radius:14px;background:rgba(11,75,122,.09);font-size:18px;margin-bottom:9px}
.dash-kpi strong{display:block;font-size:20px;letter-spacing:-.03em;line-height:1.1;color:#0f172a}
.dash-kpi small{display:block;margin-top:4px;color:var(--muted);font-size:11px;font-weight:850;line-height:1.25}
.dash-kpi.warn .dash-ico{background:rgba(249,115,22,.12)}
.dash-kpi.support .dash-ico{background:rgba(37,99,235,.10)}
.dash-card{padding:14px;border-radius:22px}
.dash-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.dash-section-head h2{margin:0;font-size:16px;letter-spacing:-.02em}
.dash-section-head p{margin:3px 0 0;color:var(--muted);font-size:12px;font-weight:800}
.dash-section-head>a{flex:0 0 auto;text-decoration:none;font-size:12px;font-weight:950;color:#0b4b7a;background:rgba(11,75,122,.08);border:1px solid rgba(11,75,122,.12);border-radius:999px;padding:7px 10px}
.dash-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.dash-actions a{min-height:104px;text-decoration:none;color:var(--text);border:1px solid var(--border);border-radius:18px;background:linear-gradient(180deg,#fff,#f8fafc);padding:12px;display:flex;flex-direction:column;justify-content:space-between;gap:5px}
.dash-actions span{font-size:22px;line-height:1}
.dash-actions b{font-size:14px;line-height:1.1}
.dash-actions small{color:var(--muted);font-size:11px;font-weight:800;line-height:1.25}
.dash-two{display:grid;grid-template-columns:1fr;gap:0}
.dash-list{display:flex;flex-direction:column;gap:9px}
.dash-row{display:flex;align-items:center;justify-content:space-between;gap:12px;text-decoration:none;color:var(--text);border:1px solid var(--border);border-radius:16px;padding:11px;background:#fff}
.dash-row div{min-width:0}
.dash-row b{display:block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}
.dash-row small{display:block;margin-top:3px;color:var(--muted);font-size:11px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}
.dash-row strong{font-size:13px;white-space:nowrap;color:#0b4b7a}
.dash-mini-badge{font-size:11px;font-weight:950;color:#0b4b7a;background:rgba(11,75,122,.08);border-radius:999px;padding:6px 9px;white-space:nowrap}
.dash-empty{border:1px dashed #cbd5e1;border-radius:16px;padding:14px;color:var(--muted);font-size:12px;font-weight:850;background:#f8fafc;text-align:center}
.dash-footer-card{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#0f172a;color:#fff;border-radius:20px;padding:13px 14px;margin-bottom:10px;box-shadow:0 12px 30px rgba(15,23,42,.18)}
.dash-footer-card b{display:block;font-size:13px}
.dash-footer-card small{display:block;margin-top:3px;color:rgba(255,255,255,.72);font-size:11px;font-weight:800}
.dash-footer-card a{color:#fff;text-decoration:none;border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:8px 12px;font-size:12px;font-weight:950;background:rgba(255,255,255,.08)}
@media(min-width:760px){
  .dash-new{max-width:980px;margin:0 auto;width:100%}
  .dash-grid-kpi{grid-template-columns:repeat(4,minmax(0,1fr))}
  .dash-actions{grid-template-columns:repeat(3,minmax(0,1fr))}
  .dash-two{grid-template-columns:1fr 1fr;gap:14px}
  .dash-hero h1{font-size:31px}
}
@media(max-width:380px){
  .dash-hero{padding:15px;border-radius:22px}
  .dash-hero-logo{width:58px;height:58px;border-radius:18px}
  .dash-hero h1{font-size:22px}
  .dash-grid-kpi{gap:8px}
  .dash-kpi{padding:11px;border-radius:18px}
  .dash-actions{gap:8px}
  .dash-actions a{min-height:96px;padding:10px}
}

/* Ajustes app móvil: módulos nuevos y footer fijo */
body{padding-bottom:env(safe-area-inset-bottom)}
.content.module-page{max-width:860px;width:100%;margin:0 auto;padding-bottom:108px}
.bottom{padding-bottom:calc(12px + env(safe-area-inset-bottom));box-shadow:0 -12px 34px rgba(2,8,23,.10)}
.module-hero{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px;padding:18px;border-radius:24px;color:#fff;background:radial-gradient(480px 220px at 82% 10%, rgba(255,122,24,.45), transparent 62%),linear-gradient(135deg,#06395f,#0b4b7a 58%,#0a3b67);box-shadow:0 18px 50px rgba(11,75,122,.22)}
.module-hero h1{margin:5px 0 6px;font-size:27px;line-height:1.05;letter-spacing:-.04em}.module-hero p{margin:0;color:rgba(255,255,255,.86);font-size:13px;font-weight:750;line-height:1.35}.module-kicker{font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.12em;opacity:.82}.module-hero-icon{flex:0 0 auto;width:62px;height:62px;display:flex;align-items:center;justify-content:center;border-radius:22px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.20);font-size:30px;box-shadow:0 14px 36px rgba(2,8,23,.18)}
.module-kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.module-kpi{background:#fff;border:1px solid var(--border);border-radius:18px;padding:13px;box-shadow:0 10px 28px rgba(2,8,23,.07)}.module-kpi.wide{grid-column:1/-1}.module-kpi span{display:block;color:var(--muted);font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.03em}.module-kpi strong{display:block;margin-top:4px;font-size:21px;font-weight:950;letter-spacing:-.04em;color:#0f172a}.soft-card{border-radius:22px}.field-label{display:block;margin-bottom:7px;color:#334155;font-size:12px;font-weight:950;text-transform:uppercase;letter-spacing:.04em}.search-row{display:grid;grid-template-columns:1fr auto;gap:10px}.clear-link{display:inline-flex;margin-top:9px;color:#0b4b7a;text-decoration:none;font-size:12px;font-weight:900}.module-list{display:flex;flex-direction:column;gap:11px}.module-card{background:#fff;border:1px solid var(--border);border-radius:20px;box-shadow:0 12px 30px rgba(2,8,23,.07);padding:13px}.card-main-link{display:block;text-decoration:none;color:inherit}.module-card-title{font-weight:950;font-size:15px;line-height:1.18;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.module-card-meta{margin-top:4px;color:var(--muted);font-size:12px;font-weight:800;line-height:1.25}.quick-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.quick-actions a{display:flex;align-items:center;justify-content:center;text-align:center;min-height:38px;border-radius:13px;background:#f8fafc;border:1px solid var(--border);color:#0b4b7a;text-decoration:none;font-size:12px;font-weight:950}.quick-actions a:last-child:nth-child(odd){grid-column:1/-1}.clientes-hero{background:radial-gradient(480px 220px at 82% 10%, rgba(255,122,24,.38), transparent 62%),linear-gradient(135deg,#0b4b7a,#0a3b67)}.facturas-hero{background:radial-gradient(480px 220px at 82% 10%, rgba(34,197,94,.32), transparent 62%),linear-gradient(135deg,#06395f,#0b4b7a)}.cobranza-hero{background:radial-gradient(480px 220px at 82% 10%, rgba(249,115,22,.44), transparent 62%),linear-gradient(135deg,#092f4f,#0b4b7a)}
.invoiceCard,.debtCard{border-radius:20px!important;box-shadow:0 12px 30px rgba(2,8,23,.07)!important}.kpiGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.miniKpi{background:#fff;border:1px solid var(--border);border-radius:18px;padding:13px;box-shadow:0 10px 28px rgba(2,8,23,.07)}.miniKpi.wide{grid-column:1/-1}.miniKpi span{display:block;font-size:11px;color:var(--muted);font-weight:950;text-transform:uppercase;letter-spacing:.03em}.miniKpi strong{display:block;margin-top:4px;font-size:18px;font-weight:950;letter-spacing:-.03em}.miniKpi.danger strong{color:#b91c1c}.miniKpi.ok strong{color:#047857}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(min-width:760px){.module-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.module-kpi.wide{grid-column:auto}.module-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.search-row{grid-template-columns:1fr 130px}.kpiGrid{grid-template-columns:repeat(4,minmax(0,1fr))}.miniKpi.wide{grid-column:auto}}
@media(max-width:420px){.content.module-page{padding-left:12px;padding-right:12px}.module-hero{padding:16px;border-radius:22px}.module-hero h1{font-size:23px}.module-hero-icon{width:54px;height:54px;border-radius:18px;font-size:25px}.search-row{grid-template-columns:1fr}.search-row .btn{width:100%}.quick-actions{grid-template-columns:1fr 1fr}.bottom .nav{gap:5px}.bottom .nav a{padding:8px 4px}.bottom .nav a .lbl{font-size:10px}}

/* FIX footer fijo real + filtros clientes */
html{min-height:100%;scroll-padding-bottom:96px;}
body{min-height:100%;overflow-x:hidden;padding-bottom:calc(92px + env(safe-area-inset-bottom));}
.app{min-height:100dvh;padding-bottom:0;}
.content,.content.module-page,.dash-new{padding-bottom:calc(118px + env(safe-area-inset-bottom))!important;}
.bottom{
  position:fixed!important;
  left:0!important;right:0!important;bottom:0!important;
  width:100%!important;
  z-index:9999!important;
  background:rgba(255,255,255,.96)!important;
  border-top:1px solid rgba(226,232,240,.95)!important;
  box-shadow:0 -16px 40px rgba(15,23,42,.14)!important;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  padding:9px 10px calc(10px + env(safe-area-inset-bottom))!important;
}
.bottom .nav{max-width:720px;width:100%;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:7px;}
.bottom .nav a{min-width:0;}
.filter-grid{display:grid;grid-template-columns:1fr 150px auto;gap:10px;align-items:center;}
.filter-note{margin-top:9px;color:var(--muted);font-size:12px;font-weight:800;}
.kpi-link{text-decoration:none;color:inherit;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease;}
.kpi-link:active{transform:scale(.98);}
.kpi-link.selected{border-color:rgba(11,75,122,.32);box-shadow:0 0 0 4px rgba(11,75,122,.08),0 10px 28px rgba(2,8,23,.07);}
.inactive-card{background:linear-gradient(180deg,#fff,#f8fafc);opacity:.92;}
.inactive-card .module-card-title{color:#475569;}
@media(max-width:620px){.filter-grid{grid-template-columns:1fr;}.filter-grid .btn{width:100%;}}
@media(max-width:420px){
  body{padding-bottom:calc(96px + env(safe-area-inset-bottom));}
  .content,.content.module-page,.dash-new{padding-bottom:calc(126px + env(safe-area-inset-bottom))!important;}
  .bottom{padding-left:7px!important;padding-right:7px!important;}
  .bottom .nav{gap:5px;}
  .bottom .nav a{padding:8px 4px!important;border-radius:14px;}
}
.table,
table{
  width:100%;
  font-size:12px !important;
}

table th,
table td{
  padding:8px 7px !important;
  font-size:12px !important;
  line-height:1.25 !important;
}

.table-wrap,
.table-responsive,
.card{
  overflow-x:auto;
}

@media(max-width:520px){
  table{
    font-size:11px !important;
  }

  table th,
  table td{
    padding:7px 6px !important;
    font-size:11px !important;
    white-space:nowrap;
  }

  .btn,
  button,
  .badge{
    font-size:11px !important;
  }
}